<?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>150174</bug_id>
          
          <creation_ts>2015-10-15 09:43:15 -0700</creation_ts>
          <short_desc>WKView being inside WKWebView leads to weird API issues</short_desc>
          <delta_ts>2015-11-02 13:16:34 -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>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>150338</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>bdakin</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>mitz</cc>
    
    <cc>mkwst</cc>
    
    <cc>ossy</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1133491</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-15 09:43:15 -0700</bug_when>
    <thetext>Having a WKView nested inside a WKWebView causes fun but subtle troubles, most frequently regarding overriding NSResponder methods; if the WKView eats the event, the client&apos;s override on WKWebView has no effect. Also, I slightly fear clients noticing that there&apos;s a WKView in there and doing... things... to it that they otherwise shouldn&apos;t/can&apos;t.

As we all know, every problem in software can be solved by another layer of abstraction, so I propose we move all of the code backing WKView to a new class (I&apos;ve called it WebViewImpl for now), forwarding externally-facing WKView API *directly* to the new class, without any logic at all in WKView. Then, for whatever externally-facing WKWebView API we wish to expose, we can also call straight into WebViewImpl, and avoid duplication of any interesting logic.

WebViewImpl will be a C++ class, which confers two interesting benefits: 1) it will make mistakes during translation obvious, because &apos;self&apos; is meaningless, so we&apos;ll have to reason about each of those individually, and 2) WebViewImpl and PageClientImpl can eventually merge, which will allow a bit /less/ indirection in the case of WebPageProxy asking a question WebViewImpl knows how to answer directly.

This also provides an opportunity to take a careful stroll through the mass of code that is WKView and clean things up... yay?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133502</commentid>
    <comment_count>1</comment_count>
      <attachid>263166</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-15 10:01:11 -0700</bug_when>
    <thetext>Created attachment 263166
prelim

Attaching a patch that adds WebViewImpl and moves a few things from WKView so we can discuss approaches for different things.

I don&apos;t think it&apos;s possible (or, at least, worth it) to do a partial adoption in WKWebView; that will have to be done wholesale (because we have to get rid of the inner WKView).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133510</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-10-15 10:19:40 -0700</bug_when>
    <thetext>This may be an obvious comment, but we need to be super careful with notifications when moving things to C++. See bug 142945 for one example where notifications clashed between WKView and NSView; I think that we can have the same kind of problem between WKWebView and its subclasses.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133520</commentid>
    <comment_count>3</comment_count>
      <attachid>263166</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-10-15 10:34:22 -0700</bug_when>
    <thetext>Comment on attachment 263166
prelim

Attachment 263166 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/291987

Number of test failures exceeded the failure limit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1133521</commentid>
    <comment_count>4</comment_count>
      <attachid>263170</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-10-15 10:34:25 -0700</bug_when>
    <thetext>Created attachment 263170
Archive of layout-test-results from ews107 for mac-mavericks-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews107  Port: mac-mavericks-wk2  Platform: Mac OS X 10.9.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134078</commentid>
    <comment_count>5</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-16 15:28:48 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; This may be an obvious comment, but we need to be super careful with
&gt; notifications when moving things to C++. See bug 142945 for one example
&gt; where notifications clashed between WKView and NSView; I think that we can
&gt; have the same kind of problem between WKWebView and its subclasses.

In this model, in the interest of moving things to WebViewImpl, *all* notifications will end up being dispatched to a different object (similar to WKWindowVisibilityObserver) that lives in WebViewImpl, and *none* will be observed by WKWebView/WKView. So I think that will leave us even better off than we are now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134132</commentid>
    <comment_count>6</comment_count>
      <attachid>263354</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-16 17:51:58 -0700</bug_when>
    <thetext>Created attachment 263354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134133</commentid>
    <comment_count>7</comment_count>
      <attachid>263355</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-16 18:31:54 -0700</bug_when>
    <thetext>Created attachment 263355
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134370</commentid>
    <comment_count>8</comment_count>
      <attachid>263355</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-10-18 15:50:56 -0700</bug_when>
    <thetext>Comment on attachment 263355
Patch

Great refactoring. Not a big fan of the “word” impl. Could we find a name better than WebViewImpl?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134633</commentid>
    <comment_count>9</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-19 11:21:47 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Comment on attachment 263355 [details]
&gt; Patch
&gt; 
&gt; Great refactoring. Not a big fan of the “word” impl. Could we find a name
&gt; better than WebViewImpl?

Anders and I haven&apos;t come up with a better name, but we both agree we don&apos;t love &quot;impl&quot;. I&apos;m going to continue trucking along with this name; if we come up with something better, it will be a fairly trivial find-and-replace to change it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134661</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-19 12:24:54 -0700</bug_when>
    <thetext>Part 1: http://trac.webkit.org/changeset/191307</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134690</commentid>
    <comment_count>11</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2015-10-19 14:09:38 -0700</bug_when>
    <thetext>(In reply to comment #10)
&gt; Part 1: http://trac.webkit.org/changeset/191307

It broke the API tests everywhere, see http://build.webkit.org for details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134691</commentid>
    <comment_count>12</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-19 14:11:31 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; (In reply to comment #10)
&gt; &gt; Part 1: http://trac.webkit.org/changeset/191307
&gt; 
&gt; It broke the API tests everywhere, see http://build.webkit.org for details.

It was rolled out before this comment :D Going to see what&apos;s up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1134725</commentid>
    <comment_count>13</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-19 15:34:03 -0700</bug_when>
    <thetext>Let&apos;s try this again http://trac.webkit.org/changeset/191320</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135033</commentid>
    <comment_count>14</comment_count>
      <attachid>263626</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-20 15:50:47 -0700</bug_when>
    <thetext>Created attachment 263626
part 2 prelim</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135035</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-20 15:53:27 -0700</bug_when>
    <thetext>Attachment 263626 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm:408:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm:440:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:828:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 3 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135751</commentid>
    <comment_count>16</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2015-10-22 11:28:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/23221685&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135797</commentid>
    <comment_count>17</comment_count>
      <attachid>263851</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-22 13:19:53 -0700</bug_when>
    <thetext>Created attachment 263851
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135798</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-22 13:22:52 -0700</bug_when>
    <thetext>Attachment 263851 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm:408:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm:440:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:828:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 3 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135819</commentid>
    <comment_count>19</comment_count>
      <attachid>263856</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-22 13:55:05 -0700</bug_when>
    <thetext>Created attachment 263856
fix mavericks build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135823</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-22 13:58:07 -0700</bug_when>
    <thetext>Attachment 263856 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm:408:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm:440:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:828:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 3 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135857</commentid>
    <comment_count>21</comment_count>
      <attachid>263868</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-22 14:52:26 -0700</bug_when>
    <thetext>Created attachment 263868
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135858</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-22 14:54:30 -0700</bug_when>
    <thetext>Attachment 263868 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm:408:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm:440:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:828:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 3 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135887</commentid>
    <comment_count>23</comment_count>
      <attachid>263875</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-22 16:09:51 -0700</bug_when>
    <thetext>Created attachment 263875
Part 2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135888</commentid>
    <comment_count>24</comment_count>
      <attachid>263876</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-22 16:10:23 -0700</bug_when>
    <thetext>Created attachment 263876
Part 3 - plugin complex text</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135889</commentid>
    <comment_count>25</comment_count>
      <attachid>263877</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-22 16:10:43 -0700</bug_when>
    <thetext>Created attachment 263877
Part 4 - tooltips</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135891</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-22 16:11:45 -0700</bug_when>
    <thetext>Attachment 263875 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm:408:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/mac/WKImmediateActionController.mm:440:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:830:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 3 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1135911</commentid>
    <comment_count>27</comment_count>
      <attachid>263882</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-22 17:52:01 -0700</bug_when>
    <thetext>Created attachment 263882
Part 5 - compositing and thumbnail view</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136065</commentid>
    <comment_count>28</comment_count>
      <attachid>263875</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-10-23 10:31:13 -0700</bug_when>
    <thetext>Comment on attachment 263875
Part 2

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

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.h:231
&gt; +    CGRect m_contentPreparationRect { {0, 0}, {0, 0} };

Why not use CGRectZero?

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.h:242
&gt; +    CGSize m_resizeScrollOffset { 0, 0 };

CGSizeZero etc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136073</commentid>
    <comment_count>29</comment_count>
      <attachid>263932</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-23 11:00:06 -0700</bug_when>
    <thetext>Created attachment 263932
Part 3 - plugin complex text</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136074</commentid>
    <comment_count>30</comment_count>
      <attachid>263875</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-23 11:01:01 -0700</bug_when>
    <thetext>Comment on attachment 263875
Part 2

Part 2 -&gt; http://trac.webkit.org/changeset/191499</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136129</commentid>
    <comment_count>31</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-23 13:50:32 -0700</bug_when>
    <thetext>Part 3: http://trac.webkit.org/changeset/191508</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136130</commentid>
    <comment_count>32</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-23 13:51:30 -0700</bug_when>
    <thetext>Part 4: http://trac.webkit.org/changeset/191509</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136132</commentid>
    <comment_count>33</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-23 14:04:13 -0700</bug_when>
    <thetext>Part 5: http://trac.webkit.org/changeset/191510</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136589</commentid>
    <comment_count>34</comment_count>
      <attachid>264060</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-26 12:15:53 -0700</bug_when>
    <thetext>Created attachment 264060
Part 6 - dragging</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136592</commentid>
    <comment_count>35</comment_count>
      <attachid>264060</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-10-26 12:19:17 -0700</bug_when>
    <thetext>Comment on attachment 264060
Part 6 - dragging

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

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1806
&gt; +    RetainPtr&lt;NSMutableSet&gt; types = adoptNS([[NSMutableSet alloc] initWithArray:PasteboardTypes::forEditing()]);

auto!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136665</commentid>
    <comment_count>36</comment_count>
      <attachid>264084</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-26 15:46:47 -0700</bug_when>
    <thetext>Created attachment 264084
Part 7 - gestures and snapshots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136670</commentid>
    <comment_count>37</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-26 15:53:01 -0700</bug_when>
    <thetext>Part 6: http://trac.webkit.org/changeset/191606</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136672</commentid>
    <comment_count>38</comment_count>
      <attachid>264088</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-26 15:54:35 -0700</bug_when>
    <thetext>Created attachment 264088
Part 7 - gestures and snapshots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136716</commentid>
    <comment_count>39</comment_count>
      <attachid>264102</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-26 17:22:12 -0700</bug_when>
    <thetext>Created attachment 264102
Part 8 - accessibility and cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136720</commentid>
    <comment_count>40</comment_count>
      <attachid>264104</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-26 17:27:48 -0700</bug_when>
    <thetext>Created attachment 264104
Part 7 - gestures and snapshots</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136770</commentid>
    <comment_count>41</comment_count>
      <attachid>264120</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-26 22:25:51 -0700</bug_when>
    <thetext>Created attachment 264120
Part 9 - pasteboard and spellcheck</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136900</commentid>
    <comment_count>42</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-27 13:10:35 -0700</bug_when>
    <thetext>Part 7: http://trac.webkit.org/changeset/191634</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136901</commentid>
    <comment_count>43</comment_count>
      <attachid>264153</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-27 13:11:25 -0700</bug_when>
    <thetext>Created attachment 264153
Part 8 - accessibility and cleanup</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136902</commentid>
    <comment_count>44</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-27 13:13:48 -0700</bug_when>
    <thetext>Attachment 264153 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1551:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1553:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 2 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136905</commentid>
    <comment_count>45</comment_count>
      <attachid>264153</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2015-10-27 13:25:47 -0700</bug_when>
    <thetext>Comment on attachment 264153
Part 8 - accessibility and cleanup

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

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.h:247
&gt; +    void toolTipChanged(String oldToolTip, String newToolTip);

const String&amp; ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136919</commentid>
    <comment_count>46</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-27 13:56:37 -0700</bug_when>
    <thetext>Part 8: http://trac.webkit.org/changeset/191637</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136920</commentid>
    <comment_count>47</comment_count>
      <attachid>264157</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-27 13:57:28 -0700</bug_when>
    <thetext>Created attachment 264157
Part 9 - pasteboard and spellcheck</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1136923</commentid>
    <comment_count>48</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-27 14:00:45 -0700</bug_when>
    <thetext>Attachment 264157 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1936:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1937:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1938:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1939:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1940:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1941:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:2036:  One line control clauses should not use braces.  [whitespace/braces] [4]
Total errors found: 7 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137015</commentid>
    <comment_count>49</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-27 17:45:55 -0700</bug_when>
    <thetext>Part 9: http://trac.webkit.org/changeset/191648</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137274</commentid>
    <comment_count>50</comment_count>
      <attachid>264242</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-28 14:11:34 -0700</bug_when>
    <thetext>Created attachment 264242
Part 10 - WKViewInternal tidbits</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137277</commentid>
    <comment_count>51</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-28 14:16:11 -0700</bug_when>
    <thetext>Part 10: http://trac.webkit.org/changeset/191690</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137342</commentid>
    <comment_count>52</comment_count>
      <attachid>264263</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-28 16:07:09 -0700</bug_when>
    <thetext>Created attachment 264263
Part 11 - Get rid of wkView() getters</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137343</commentid>
    <comment_count>53</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-28 16:08:46 -0700</bug_when>
    <thetext>Attachment 264263 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:55:  Alphabetical sorting problem.  [build/include_order] [4]
ERROR: Source/WebKit2/UIProcess/WebPageProxy.h:88:  _WKRemoteObjectRegistry is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming/underscores] [4]
Total errors found: 2 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137346</commentid>
    <comment_count>54</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-28 16:19:02 -0700</bug_when>
    <thetext>Part 11: http://trac.webkit.org/changeset/191702</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137428</commentid>
    <comment_count>55</comment_count>
      <attachid>264289</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-28 19:28:00 -0700</bug_when>
    <thetext>Created attachment 264289
Part 12 - UI validation and others</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137553</commentid>
    <comment_count>56</comment_count>
      <attachid>264289</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-10-29 10:28:23 -0700</bug_when>
    <thetext>Comment on attachment 264289
Part 12 - UI validation and others

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

I reviewed all the code you moved and added comments for later consideration. Not relevant to just moving the code.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.h:185
&gt; +    // FIXME: Can&apos;t have antique API types here.

What does “can’t” mean?

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:696
&gt; +    if (DrawingAreaProxy* drawingArea = m_page.drawingArea())
&gt; +        return drawingArea-&gt;type() == DrawingAreaTypeRemoteLayerTree;
&gt; +    
&gt; +    return false;

I’d write this differently:

    auto* drawingArea = m_page.drawingArea();
    return drawingArea &amp;&amp; drawingArea-&gt;type() == DrawingAreaTypeRemoteLayerTree;

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:840
&gt; +    BOOL expandsToFit = minimumSizeForAutoLayout.width &gt; 0;

Should be bool, not BOOL.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1194
&gt; +    WTF::Optional&lt;WebCore::ScrollbarOverlayStyle&gt; coreScrollbarStyle;
&gt; +
&gt; +    switch (scrollbarStyle) {
&gt; +    case _WKOverlayScrollbarStyleDark:
&gt; +        coreScrollbarStyle = WebCore::ScrollbarOverlayStyleDark;
&gt; +        break;
&gt; +    case _WKOverlayScrollbarStyleLight:
&gt; +        coreScrollbarStyle = WebCore::ScrollbarOverlayStyleLight;
&gt; +        break;
&gt; +    case _WKOverlayScrollbarStyleDefault:
&gt; +        coreScrollbarStyle = WebCore::ScrollbarOverlayStyleDefault;
&gt; +        break;
&gt; +    case _WKOverlayScrollbarStyleAutomatic:
&gt; +    default:
&gt; +        break;
&gt; +    }
&gt; +
&gt; +    m_page.setOverlayScrollbarStyle(coreScrollbarStyle);

I’d like this better with a separate helper function to make the styles that can use &quot;return&quot;.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1199
&gt; +    WTF::Optional&lt;WebCore::ScrollbarOverlayStyle&gt; coreScrollbarStyle = m_page.overlayScrollbarStyle();

Maybe use auto here?

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1204
&gt; +    if (!coreScrollbarStyle)
&gt; +        return _WKOverlayScrollbarStyleAutomatic;
&gt; +
&gt; +    switch (coreScrollbarStyle.value()) {

Could use valueOr here instead of the explicit ! check. Then wouldn’t need the local variable.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1526
&gt; +static const SelectorNameMap* createSelectorExceptionMap()

In modern WebKit code we’d have this return the map, not a heap-allocated.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1538
&gt; +    map-&gt;add(@selector(insertNewlineIgnoringFieldEditor:), &quot;InsertNewline&quot;);
&gt; +    map-&gt;add(@selector(insertParagraphSeparator:), &quot;InsertNewline&quot;);
&gt; +    map-&gt;add(@selector(insertTabIgnoringFieldEditor:), &quot;InsertTab&quot;);
&gt; +    map-&gt;add(@selector(pageDown:), &quot;MovePageDown&quot;);
&gt; +    map-&gt;add(@selector(pageDownAndModifySelection:), &quot;MovePageDownAndModifySelection&quot;);
&gt; +    map-&gt;add(@selector(pageUp:), &quot;MovePageUp&quot;);
&gt; +    map-&gt;add(@selector(pageUpAndModifySelection:), &quot;MovePageUpAndModifySelection&quot;);
&gt; +    map-&gt;add(@selector(scrollPageDown:), &quot;ScrollPageForward&quot;);
&gt; +    map-&gt;add(@selector(scrollPageUp:), &quot;ScrollPageBackward&quot;);

This is an anti pattern in Modern WebKit code. In new code we try to use a loop instead of a sequence of unrolled add calls, since the code is huge. Also would be more efficient if we used ASCIILiteral here.

Also, if we changed executeEditCommand to take a StringView we could just use const char* or StringVIew for the map.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1546
&gt; +    static const SelectorNameMap* exceptionMap = createSelectorExceptionMap();

In modern WebKit code this would be a NeverDestroyed&lt;SelectorNameMap&gt;.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1768
&gt; +    size_t size = items.size();
&gt; +    for (size_t i = 0; i &lt; size; ++i) {
&gt; +        ValidationItem item = items[i].get();

Modern for loop?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137582</commentid>
    <comment_count>57</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-29 11:32:09 -0700</bug_when>
    <thetext>(In reply to comment #56)
&gt; Comment on attachment 264289 [details]
&gt; Part 12 - UI validation and others
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=264289&amp;action=review
&gt; 
&gt; I reviewed all the code you moved and added comments for later
&gt; consideration. Not relevant to just moving the code.

I did say:

&gt; This also provides an opportunity to take a careful stroll through the mass of code that is WKView and clean things up... yay?

So I&apos;m really glad you did actually review the moved code!


&gt; &gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.h:185
&gt; &gt; +    // FIXME: Can&apos;t have antique API types here.
&gt; 
&gt; What does “can’t” mean?

&quot;Can&apos;t&quot; means that because this class is going to be shared between the antique and modern API, we need to use internal types here, not API types. Not actually a problem yet, but it will be in a few days.

&gt; &gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:696
&gt; &gt; +    if (DrawingAreaProxy* drawingArea = m_page.drawingArea())
&gt; &gt; +        return drawingArea-&gt;type() == DrawingAreaTypeRemoteLayerTree;
&gt; &gt; +    
&gt; &gt; +    return false;
&gt; 
&gt; I’d write this differently:
&gt; 
&gt;     auto* drawingArea = m_page.drawingArea();
&gt;     return drawingArea &amp;&amp; drawingArea-&gt;type() ==
&gt; DrawingAreaTypeRemoteLayerTree;

Ok!

&gt; &gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:840
&gt; &gt; +    BOOL expandsToFit = minimumSizeForAutoLayout.width &gt; 0;
&gt; 
&gt; Should be bool, not BOOL.

Quite.

&gt; &gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1194
&gt; &gt; +    WTF::Optional&lt;WebCore::ScrollbarOverlayStyle&gt; coreScrollbarStyle;
&gt; &gt; +
&gt; &gt; +    switch (scrollbarStyle) {
&gt; &gt; +    case _WKOverlayScrollbarStyleDark:
&gt; &gt; +        coreScrollbarStyle = WebCore::ScrollbarOverlayStyleDark;
&gt; &gt; +        break;
&gt; &gt; +    case _WKOverlayScrollbarStyleLight:
&gt; &gt; +        coreScrollbarStyle = WebCore::ScrollbarOverlayStyleLight;
&gt; &gt; +        break;
&gt; &gt; +    case _WKOverlayScrollbarStyleDefault:
&gt; &gt; +        coreScrollbarStyle = WebCore::ScrollbarOverlayStyleDefault;
&gt; &gt; +        break;
&gt; &gt; +    case _WKOverlayScrollbarStyleAutomatic:
&gt; &gt; +    default:
&gt; &gt; +        break;
&gt; &gt; +    }
&gt; &gt; +
&gt; &gt; +    m_page.setOverlayScrollbarStyle(coreScrollbarStyle);
&gt; 
&gt; I’d like this better with a separate helper function to make the styles that
&gt; can use &quot;return&quot;.

Seems reasonable, but also this is going to end up somewhere else (this is one of those &quot;can&apos;t have API types here&quot; functions).

&gt; &gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1199
&gt; &gt; +    WTF::Optional&lt;WebCore::ScrollbarOverlayStyle&gt; coreScrollbarStyle = m_page.overlayScrollbarStyle();
&gt; 
&gt; Maybe use auto here?
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1204
&gt; &gt; +    if (!coreScrollbarStyle)
&gt; &gt; +        return _WKOverlayScrollbarStyleAutomatic;
&gt; &gt; +
&gt; &gt; +    switch (coreScrollbarStyle.value()) {
&gt; 
&gt; Could use valueOr here instead of the explicit ! check. Then wouldn’t need
&gt; the local variable.

Woah. Had not seen that before. Neat!

&gt; &gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1526
&gt; &gt; +static const SelectorNameMap* createSelectorExceptionMap()
&gt; 
&gt; In modern WebKit code we’d have this return the map, not a heap-allocated.
&gt; 
&gt; &gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1538
&gt; &gt; +    map-&gt;add(@selector(insertNewlineIgnoringFieldEditor:), &quot;InsertNewline&quot;);
&gt; &gt; +    map-&gt;add(@selector(insertParagraphSeparator:), &quot;InsertNewline&quot;);
&gt; &gt; +    map-&gt;add(@selector(insertTabIgnoringFieldEditor:), &quot;InsertTab&quot;);
&gt; &gt; +    map-&gt;add(@selector(pageDown:), &quot;MovePageDown&quot;);
&gt; &gt; +    map-&gt;add(@selector(pageDownAndModifySelection:), &quot;MovePageDownAndModifySelection&quot;);
&gt; &gt; +    map-&gt;add(@selector(pageUp:), &quot;MovePageUp&quot;);
&gt; &gt; +    map-&gt;add(@selector(pageUpAndModifySelection:), &quot;MovePageUpAndModifySelection&quot;);
&gt; &gt; +    map-&gt;add(@selector(scrollPageDown:), &quot;ScrollPageForward&quot;);
&gt; &gt; +    map-&gt;add(@selector(scrollPageUp:), &quot;ScrollPageBackward&quot;);
&gt; 
&gt; This is an anti pattern in Modern WebKit code. In new code we try to use a
&gt; loop instead of a sequence of unrolled add calls, since the code is huge.
&gt; Also would be more efficient if we used ASCIILiteral here.

A loop over what? Pairs in a Vector? That seems annoying. Maybe you meant something else? Or maybe that is worth it? I&apos;ll look around and see if there are other examples.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137588</commentid>
    <comment_count>58</comment_count>
      <attachid>264289</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-10-29 11:39:43 -0700</bug_when>
    <thetext>Comment on attachment 264289
Part 12 - UI validation and others

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

&gt;&gt;&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1526
&gt;&gt;&gt; +static const SelectorNameMap* createSelectorExceptionMap()
&gt;&gt; 
&gt;&gt; In modern WebKit code we’d have this return the map, not a heap-allocated.
&gt; 
&gt; A loop over what? Pairs in a Vector? That seems annoying. Maybe you meant something else? Or maybe that is worth it? I&apos;ll look around and see if there are other examples.

Typically we define a custom struct, and static const array and then loop over that:

    struct SelectorCommandName {
        SEL selector;
        ASCIILiteral commandName;
    };

    static const SelectorCommandName names[] = {
        // ...
    };

    for (auto&amp; name : names)
        map.add(name.selector, name.commandName);

Not too annoying.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137596</commentid>
    <comment_count>59</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-29 11:50:19 -0700</bug_when>
    <thetext>(In reply to comment #58)
&gt; Comment on attachment 264289 [details]
&gt; Part 12 - UI validation and others
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=264289&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1526
&gt; &gt;&gt;&gt; +static const SelectorNameMap* createSelectorExceptionMap()
&gt; &gt;&gt; 
&gt; &gt;&gt; In modern WebKit code we’d have this return the map, not a heap-allocated.
&gt; &gt; 
&gt; &gt; A loop over what? Pairs in a Vector? That seems annoying. Maybe you meant something else? Or maybe that is worth it? I&apos;ll look around and see if there are other examples.
&gt; 
&gt; Typically we define a custom struct, and static const array and then loop
&gt; over that:
&gt; 
&gt;     struct SelectorCommandName {
&gt;         SEL selector;
&gt;         ASCIILiteral commandName;
&gt;     };
&gt; 
&gt;     static const SelectorCommandName names[] = {
&gt;         // ...
&gt;     };
&gt; 
&gt;     for (auto&amp; name : names)
&gt;         map.add(name.selector, name.commandName);
&gt; 
&gt; Not too annoying.

Ah! Yes, that doesn&apos;t seem too bad. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137669</commentid>
    <comment_count>60</comment_count>
      <attachid>264289</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-29 15:08:51 -0700</bug_when>
    <thetext>Comment on attachment 264289
Part 12 - UI validation and others

Part 12: http://trac.webkit.org/changeset/191757</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137693</commentid>
    <comment_count>61</comment_count>
      <attachid>264359</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-29 16:06:56 -0700</bug_when>
    <thetext>Created attachment 264359
Part 13 - more spellcheck</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137696</commentid>
    <comment_count>62</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-29 16:08:39 -0700</bug_when>
    <thetext>Attachment 264359 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:1608:  Should have only a single space after a punctuation in a comment.  [whitespace/comments] [5]
Total errors found: 1 in 6 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137702</commentid>
    <comment_count>63</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-29 16:14:35 -0700</bug_when>
    <thetext>Part 13: http://trac.webkit.org/changeset/191761</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137743</commentid>
    <comment_count>64</comment_count>
      <attachid>264371</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-29 18:36:52 -0700</bug_when>
    <thetext>Created attachment 264371
Part 14 - NSTextInputClient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137744</commentid>
    <comment_count>65</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-29 18:39:08 -0700</bug_when>
    <thetext>Attachment 264371 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3161:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3336:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3378:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3831:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3890:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3906:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 6 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137754</commentid>
    <comment_count>66</comment_count>
      <attachid>264372</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-29 19:51:28 -0700</bug_when>
    <thetext>Created attachment 264372
Part 14 - NSTextInputClient</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137756</commentid>
    <comment_count>67</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-29 19:53:45 -0700</bug_when>
    <thetext>Attachment 264372 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3161:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3336:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3378:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3831:  One line control clauses should not use braces.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3890:  One space before end of line comments  [whitespace/comments] [5]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3906:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
Total errors found: 6 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137873</commentid>
    <comment_count>68</comment_count>
      <attachid>264372</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-10-30 09:15:27 -0700</bug_when>
    <thetext>Comment on attachment 264372
Part 14 - NSTextInputClient

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

Really unpleasant how repetitive the completion handler related code is. Also surprising how much of this file is logging!

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3106
&gt; +static void extractUnderlines(NSAttributedString *string, Vector&lt;WebCore::CompositionUnderline&gt;&amp; result)

Should return a Vector instead of using an out argument.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3111
&gt; +    int i = 0;
&gt; +    while (i &lt; length) {

Should be a for loop. Also, isn’t there a more efficient way to iterate an attributed string?

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3118
&gt; +                color = WebCore::colorFromNSColor([colorAttr colorUsingColorSpaceName:NSDeviceRGBColorSpace]);

Almost certain this colorUsingColorSpaceName call is not helpful since colorFromNSColor already deals with this, but I can fix this in my Color patches I suppose.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3128
&gt; +void WebViewImpl::collectKeyboardLayoutCommandsForEvent(NSEvent *event, Vector&lt;WebCore::KeypressCommand&gt;&amp; commands)

This should just return a vector instead of modifying an out argument.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3149
&gt; +        completionHandler(NO, Vector&lt;WebCore::KeypressCommand&gt;());

Could use { } instead of Vector&lt;WebCore::KeypressCommand&gt;().

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3232
&gt; +    Vector&lt;WebCore::KeypressCommand&gt;* keypressCommands = m_collectedKeypressCommands;

I don’t see any value in putting this into a local variable. If we did want to, I would use auto* instead of repeating the type and put it the local variable definition inside the if statement.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3252
&gt; +    RetainPtr&lt;id&gt; completionHandler = adoptNS([completionHandlerPtr copy]);

Maybe auto instead of RetainPtr&lt;id&gt;? Kind of strange how tricky it is to retain a block in a lambda. Maybe we should have these take std::function and let them get converted from a block to a function at the call site? Probably too risky to make that change at this time.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3273
&gt; +    RetainPtr&lt;id&gt; completionHandler = adoptNS([completionHandlerPtr copy]);

Ditto.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3294
&gt; +    RetainPtr&lt;id&gt; completionHandler = adoptNS([completionHandlerPtr copy]);

Ditto.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3312
&gt; +    RetainPtr&lt;id&gt; completionHandler = adoptNS([completionHandlerPtr copy]);

Ditto.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3329
&gt; +    RetainPtr&lt;id&gt; completionHandler = adoptNS([completionHandlerPtr copy]);

Ditto.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3365
&gt; +void WebViewImpl::characterIndexForPoint(NSPoint thePoint, void(^completionHandlerPtr)(NSUInteger))

Ditto.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3526
&gt; +void WebViewImpl::keyUp(NSEvent *theEvent)

Should just be &quot;event&quot;, not &quot;theEvent&quot;.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3539
&gt; +void WebViewImpl::keyDown(NSEvent *theEvent)

Should just be &quot;event&quot;, not &quot;theEvent&quot;.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3566
&gt; +void WebViewImpl::flagsChanged(NSEvent *theEvent)

Should just be &quot;event&quot;, not &quot;theEvent&quot;.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3577
&gt; +    // Don&apos;t make an event from the num lock and function keys
&gt; +    if (!keyCode || keyCode == 10 || keyCode == 63)
&gt; +        return;

Surprising that there is no constant for any of these three key codes. Comment mysteriously mentions two keys while the if statement covers three values!

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3624
&gt; +    WKViewInterpretKeyEventsParameters* parameters = m_interpretKeyEventsParameters;

I’d use auto* here. Might even put this into a reference instead of a pointer after the null check, not sure. Or maybe not bother using a local variable for this at all?

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3647
&gt; +    WKViewInterpretKeyEventsParameters* parameters = m_interpretKeyEventsParameters;

I’d use auto* here. Or maybe not bother using a local variable for this at all?

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3676
&gt; +    BOOL isAttributedString = [string isKindOfClass:[NSAttributedString class]];

Should be bool instead of BOOL.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3730
&gt; +    WKViewInterpretKeyEventsParameters* parameters = m_interpretKeyEventsParameters;

A little strange to put this into a local variable just to null check it one time below.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3786
&gt; +    // Use pointer to get parameters passed to us by the caller of interpretKeyEvents.

Comment doesn’t seem useful.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3787
&gt; +    WKViewInterpretKeyEventsParameters* parameters = m_interpretKeyEventsParameters;

I’d use auto* here. Or maybe not bother using a local variable for this at all?

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3806
&gt; +    // Use pointer to get parameters passed to us by the caller of interpretKeyEvents.

Comment doesn’t seem useful.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3807
&gt; +    WKViewInterpretKeyEventsParameters* parameters = m_interpretKeyEventsParameters;

I’d use auto* here. Or maybe not bother using a local variable for this at all?

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3855
&gt; +NSAttributedString *WebViewImpl::attributedSubstringForProposedRange(NSRange nsRange, NSRangePointer actualRange)

I would name the argument proposedRange or range, not nsRange.

The NSRangePointer typedef is peculiar. Is it just the same thing as NSRange*?

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3879
&gt; +NSUInteger WebViewImpl::characterIndexForPoint(NSPoint thePoint)

Should just be point, not thePoint.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3899
&gt; +NSRect WebViewImpl::firstRectForCharacterRange(NSRange theRange, NSRangePointer actualRange)

Should be proposedRange or range, not theRange.

The NSRangePointer typedef is peculiar. Is it just the same thing as NSRange*?

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3961
&gt; +        BOOL handledByInputMethod = interpretKeyEvent(event, commands);

Should be bool instead of BOOL.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:3979
&gt; +void WebViewImpl::keyDown(NSEvent *theEvent)

Should be event, not theEvent.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:4006
&gt; +    BOOL handledByInputMethod = interpretKeyEvent(theEvent, commands);

Should be bool instead of BOOL.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:4011
&gt; +        handledByInputMethod = NO;

Should be false instead NO.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:4017
&gt; +void WebViewImpl::flagsChanged(NSEvent *theEvent)

Should be event, not theEvent.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:4033
&gt; +    unsigned short keyCode = [theEvent keyCode];
&gt; +
&gt; +    // Don&apos;t make an event from the num lock and function keys
&gt; +    if (!keyCode || keyCode == 10 || keyCode == 63)
&gt; +        return;

Annoying to have this code repeated twice; I suggest factoring into a helper function.

&gt; Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:4035
&gt; +    m_page.handleKeyboardEvent(NativeWebKeyboardEvent(theEvent, false, Vector&lt;WebCore::KeypressCommand&gt;()));

Consider { } instead of Vector&lt;WebCore::KeypressCommand&gt;().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137876</commentid>
    <comment_count>69</comment_count>
      <attachid>264372</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-30 10:04:26 -0700</bug_when>
    <thetext>Comment on attachment 264372
Part 14 - NSTextInputClient

Part 14: http://trac.webkit.org/changeset/191791</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137905</commentid>
    <comment_count>70</comment_count>
      <attachid>264405</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-30 11:43:02 -0700</bug_when>
    <thetext>Created attachment 264405
Part 15 - printing and random bits</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137907</commentid>
    <comment_count>71</comment_count>
      <attachid>264405</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-30 11:53:23 -0700</bug_when>
    <thetext>Comment on attachment 264405
Part 15 - printing and random bits

Part 15: http://trac.webkit.org/changeset/191802</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137926</commentid>
    <comment_count>72</comment_count>
      <attachid>264409</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-30 12:34:32 -0700</bug_when>
    <thetext>Created attachment 264409
Part 16 - mouse event handling</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137931</commentid>
    <comment_count>73</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-30 12:37:32 -0700</bug_when>
    <thetext>Attachment 264409 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:4178:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:4186:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:4201:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:4209:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:4226:  Multi line control clauses should use braces.  [whitespace/braces] [4]
ERROR: Source/WebKit2/UIProcess/Cocoa/WebViewImpl.mm:4238:  Multi line control clauses should use braces.  [whitespace/braces] [4]
Total errors found: 6 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137936</commentid>
    <comment_count>74</comment_count>
      <attachid>264409</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-30 13:06:27 -0700</bug_when>
    <thetext>Comment on attachment 264409
Part 16 - mouse event handling

Part 16: http://trac.webkit.org/changeset/191806</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137966</commentid>
    <comment_count>75</comment_count>
      <attachid>264419</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-30 14:36:30 -0700</bug_when>
    <thetext>Created attachment 264419
Part 17 - move WebPageProxy and PageClientImpl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137969</commentid>
    <comment_count>76</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-30 14:38:36 -0700</bug_when>
    <thetext>Attachment 264419 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/PageClientImpl.mm:181:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137971</commentid>
    <comment_count>77</comment_count>
      <attachid>264420</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-30 14:41:01 -0700</bug_when>
    <thetext>Created attachment 264420
Part 17 - move WebPageProxy and PageClientImpl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137975</commentid>
    <comment_count>78</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-30 14:43:54 -0700</bug_when>
    <thetext>Attachment 264420 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/PageClientImpl.mm:181:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137998</commentid>
    <comment_count>79</comment_count>
      <attachid>264420</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-10-30 15:22:25 -0700</bug_when>
    <thetext>Comment on attachment 264420
Part 17 - move WebPageProxy and PageClientImpl

Attachment 264420 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/360141

Number of test failures exceeded the failure limit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137999</commentid>
    <comment_count>80</comment_count>
      <attachid>264427</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-10-30 15:22:30 -0700</bug_when>
    <thetext>Created attachment 264427
Archive of layout-test-results from ews105 for mac-mavericks-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews105  Port: mac-mavericks-wk2  Platform: Mac OS X 10.9.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138000</commentid>
    <comment_count>81</comment_count>
      <attachid>264428</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-30 15:28:25 -0700</bug_when>
    <thetext>Created attachment 264428
Part 17 - move WebPageProxy and PageClientImpl</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138003</commentid>
    <comment_count>82</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-10-30 15:31:36 -0700</bug_when>
    <thetext>Attachment 264428 did not pass style-queue:


ERROR: Source/WebKit2/UIProcess/mac/PageClientImpl.mm:185:  Weird number of spaces at line-start.  Are you using a 4-space indent?  [whitespace/indent] [3]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138012</commentid>
    <comment_count>83</comment_count>
      <attachid>264428</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-10-30 15:50:21 -0700</bug_when>
    <thetext>Comment on attachment 264428
Part 17 - move WebPageProxy and PageClientImpl

Part 17: http://trac.webkit.org/changeset/191824</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138627</commentid>
    <comment_count>84</comment_count>
      <attachid>264604</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-11-02 11:30:53 -0800</bug_when>
    <thetext>Created attachment 264604
Part 19 - remove WKView from inside of WKWebView</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138651</commentid>
    <comment_count>85</comment_count>
      <attachid>264604</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-11-02 12:06:00 -0800</bug_when>
    <thetext>Comment on attachment 264604
Part 19 - remove WKView from inside of WKWebView

Attachment 264604 did not pass mac-wk2-ews (mac-wk2):
Output: http://webkit-queues.webkit.org/results/373114

Number of test failures exceeded the failure limit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138652</commentid>
    <comment_count>86</comment_count>
      <attachid>264611</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2015-11-02 12:06:10 -0800</bug_when>
    <thetext>Created attachment 264611
Archive of layout-test-results from ews105 for mac-mavericks-wk2

The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: ews105  Port: mac-mavericks-wk2  Platform: Mac OS X 10.9.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138662</commentid>
    <comment_count>87</comment_count>
      <attachid>264617</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-11-02 13:09:13 -0800</bug_when>
    <thetext>Created attachment 264617
Part 19 - remove WKView from inside of WKWebView</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138670</commentid>
    <comment_count>88</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-11-02 13:16:34 -0800</bug_when>
    <thetext>Part 19 (and the end of this bug hopefully): http://trac.webkit.org/changeset/191907</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263166</attachid>
            <date>2015-10-15 10:01:11 -0700</date>
            <delta_ts>2015-10-16 17:51:54 -0700</delta_ts>
            <desc>prelim</desc>
            <filename>webviewimpl.diff</filename>
            <type>text/plain</type>
            <size>76560</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpp
bmRleCBhMjY4NGM1Li40ZGNjNDIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTE1LDYgKzExMTUsNyBAQAogCQkyQkU4RTJD
OTEyQTU4QTAxMDBGQUQ1NTAgLyogSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJCRThFMkM4MTJBNThBMDEwMEZB
RDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuY3BwICovOyB9OwogCQkyRDBCNEFBQjE4REEx
Q0NEMDA0MzRERTEgLyogSU9TdXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRDBCNEFBOTE4REExQ0NEMDA0MzRERTEgLyogSU9TdXJmYWNlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkQwQjRB
QUMxOERBMUNDRDAwNDM0REUxIC8qIElPU3VyZmFjZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMEI0QUFBMThEQTFDQ0QwMDQzNERFMSAvKiBJT1N1
cmZhY2UubW0gKi87IH07CisJCTJEMENGODE3MUJDRjVERTEwMDdBNDkzNyAvKiBOU1dpbmRvd1NQ
SS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQwQ0Y4
MTYxQkNGNURFMTAwN0E0OTM3IC8qIE5TV2luZG93U1BJLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkQyMzJDMDAxQTMyNkYwMjAwNkJGMkRCIC8q
IFRVQ2FsbFNQSS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMkQyMzJCRkYxQTMyNkVGOTAwNkJGMkRCIC8qIFRVQ2FsbFNQSS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTJEMjUzOTYyMThDRTdGNjIwMDI3
MDIyMiAvKiBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDI1Mzk2MDE4Q0U3RjYyMDAyNzAyMjIg
LyogSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3BwICovOyB9OwogCQkyRDI1Mzk2MzE4
Q0U3RjYyMDAyNzAyMjIgLyogSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMjUzOTYxMThDRTdGNjIw
MDI3MDIyMiAvKiBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oICovOyB9OwpAQCAtODQx
MSw2ICs4NDEyLDcgQEAKIAkJMkJFOEUyQzgxMkE1OEEwMTAwRkFENTUwIC8qIEhUTUxNZXRhQ2hh
cnNldFBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1M
TWV0YUNoYXJzZXRQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDBC
NEFBOTE4REExQ0NEMDA0MzRERTEgLyogSU9TdXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IElPU3VyZmFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQky
RDBCNEFBQTE4REExQ0NEMDA0MzRERTEgLyogSU9TdXJmYWNlLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gSU9TdXJmYWNlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQkyRDBDRjgxNjFCQ0Y1REUxMDA3QTQ5MzcgLyogTlNXaW5kb3dTUEkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTlNXaW5kb3dTUEkuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJMkQyMzJCRkYxQTMyNkVGOTAwNkJGMkRCIC8qIFRVQ2FsbFNQSS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUVUNhbGxTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkQyNTM5NjAxOENFN0Y2MjAwMjcwMjIyIC8qIEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50
TWFjLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlQ29udHJv
bHNCdXR0b25FbGVtZW50TWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQy
NTM5NjExOENFN0Y2MjAwMjcwMjIyIC8qIEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlQ29udHJvbHNCdXR0b25FbGVt
ZW50TWFjLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODQ3Miw2ICsxODQ3NCw3
IEBACiAJCQkJRjQwRUE4QUExQjg2N0Q2NTAwQ0U1NTgxIC8qIE5TU2Nyb2xsaW5nSW5wdXRGaWx0
ZXJTUEkuaCAqLywKIAkJCQkyRENCODM3NzE5Rjk5QkJBMDBBN0ZCRTQgLyogTlNTaGFyaW5nU2Vy
dmljZVBpY2tlclNQSS5oICovLAogCQkJCTJEQ0I4Mzc4MTlGOTlCQkEwMEE3RkJFNCAvKiBOU1No
YXJpbmdTZXJ2aWNlU1BJLmggKi8sCisJCQkJMkQwQ0Y4MTYxQkNGNURFMTAwN0E0OTM3IC8qIE5T
V2luZG93U1BJLmggKi8sCiAJCQkJOTM3RjRDQ0IxQTJENDhDMTAwQkIzOUY1IC8qIFF1aWNrTG9v
a01hY1NQSS5oICovLAogCQkJCTJEMjMyQkZGMUEzMjZFRjkwMDZCRjJEQiAvKiBUVUNhbGxTUEku
aCAqLywKIAkJCSk7CkBAIC0yNzc0Myw2ICsyNzc0Niw3IEBACiAJCQkJNDRBMjBEQjkwRjg0MTY2
QzAwQjNFMUZFIC8qIFdlYkNvcmVVUkxSZXNwb25zZUlPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
OTNGMTk5RjAwODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVWaWV3LmggaW4gSGVhZGVycyAqLywK
IAkJCQlBNUU2MTY3NDE4OTQ1ODFGMDA5QURGNTAgLyogV2ViRGVidWdnZXJBZ2VudC5oIGluIEhl
YWRlcnMgKi8sCisJCQkJMkQwQ0Y4MTcxQkNGNURFMTAwN0E0OTM3IC8qIE5TV2luZG93U1BJLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRTBEODRFOTEwNDg0MzQ4MDAxQTE3OUUgLyogV2ViRXZlbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTIyNUExNkI1MEQ1QzExRTkwMDA5MDI5NSAvKiBXZWJFdmVu
dFJlZ2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE5RDkzNDcxQTlGRUM3MjAwQjQ2QzI0IC8q
IFdlYkZpbHRlckV2YWx1YXRvclNQSS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvbWFjL05TV2luZG93U1BJLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9zcGkvbWFjL05TV2luZG93U1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uYzIzYmZiYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3NwaS9tYWMvTlNXaW5kb3dTUEkuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCA8d3RmL1BsYXRmb3JtLmg+CisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpZiBV
U0UoQVBQTEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxBcHBLaXQvTlNXaW5kb3dQcml2YXRl
Lmg+CisKKyNlbHNlCisKKyNpbXBvcnQgPEFwcEtpdC9OU1dpbmRvdy5oPgorCitAaW50ZXJmYWNl
IE5TV2luZG93ICgpCisKKy0gKGlkKV9uZXdGaXJzdFJlc3BvbmRlckFmdGVyUmVzaWduaW5nOwor
CitAZW5kCisKKyNlbmRpZgorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDllYTM2N2QuLjdhMDZmZmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTY1LDcgKzY1
LDYgQEAKICNpbXBvcnQgIldLU3RyaW5nQ0YuaCIKICNpbXBvcnQgIldLVGV4dElucHV0V2luZG93
Q29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tWaWV3SW50ZXJuYWwuaCIKLSNpbXBvcnQgIldLVmll
d0xheW91dFN0cmF0ZWd5LmgiCiAjaW1wb3J0ICJXS1ZpZXdQcml2YXRlLmgiCiAjaW1wb3J0ICJX
S1dlYlZpZXcuaCIKICNpbXBvcnQgIldlYkJhY2tGb3J3YXJkTGlzdC5oIgpAQCAtODAsNiArNzks
NyBAQAogI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94
eS5oIgogI2ltcG9ydCAiV2ViU3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0ICJXZWJWaWV3SW1w
bC5oIgogI2ltcG9ydCAiX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnlJbnRlcm5hbC5oIgogI2ltcG9y
dCAiX1dLVGh1bWJuYWlsVmlld0ludGVybmFsLmgiCiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0
ekNvcmUuaD4KQEAgLTEyOSwxMCArMTI5LDYgQEAKIC0gKHZvaWQpX3NldEN1cnJlbnRFdmVudDoo
TlNFdmVudCAqKWV2ZW50OwogQGVuZAogCi1AaW50ZXJmYWNlIE5TV2luZG93IChXS05TV2luZG93
RGV0YWlscykKLS0gKGlkKV9uZXdGaXJzdFJlc3BvbmRlckFmdGVyUmVzaWduaW5nOwotQGVuZAot
CiAjaWYgVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQogQGludGVyZmFjZSBOU1RleHRJbnB1
dENvbnRleHQgKFdLTlNUZXh0SW5wdXRDb250ZXh0RGV0YWlscykKIC0gKHZvaWQpaGFuZGxlRXZl
bnQ6KE5TRXZlbnQgKil0aGVFdmVudCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShCT09MIGhh
bmRsZWQpKWNvbXBsZXRpb25IYW5kbGVyOwpAQCAtMTgwLDYgKzE3Niw3IEBAIHN0cnVjdCBXS1Zp
ZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKIEBwdWJsaWMKICAgICBzdGQ6OnVuaXF1
ZV9wdHI8UGFnZUNsaWVudEltcGw+IF9wYWdlQ2xpZW50OwogICAgIFJlZlB0cjxXZWJQYWdlUHJv
eHk+IF9wYWdlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJWaWV3SW1wbD4gX2ltcGw7CiAKICNp
ZiBXS19BUElfRU5BQkxFRAogICAgIFJldGFpblB0cjxXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xs
ZXI+IF9icm93c2luZ0NvbnRleHRDb250cm9sbGVyOwpAQCAtMjE0LDE2ICsyMTEsMTIgQEAgc3Ry
dWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogICAgIFdLVmlld0ludGVy
cHJldEtleUV2ZW50c1BhcmFtZXRlcnMqIF9pbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzOwog
I2VuZGlmCiAKLSAgICBOU1NpemUgX3Jlc2l6ZVNjcm9sbE9mZnNldDsKLQogICAgIC8vIFRoZSBp
ZGVudGlmaWVyIG9mIHRoZSBwbHVnLWluIHdlIHdhbnQgdG8gc2VuZCBjb21wbGV4IHRleHQgaW5w
dXQgdG8sIG9yIDAgaWYgdGhlcmUgaXMgbm9uZS4KICAgICB1aW50NjRfdCBfcGx1Z2luQ29tcGxl
eFRleHRJbnB1dElkZW50aWZpZXI7CiAKICAgICAvLyBUaGUgc3RhdGUgb2YgY29tcGxleCB0ZXh0
IGlucHV0IGZvciB0aGUgcGx1Zy1pbi4KICAgICBQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUg
X3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZTsKIAotICAgIGJvb2wgX2luQmVjb21lRmlyc3RS
ZXNwb25kZXI7Ci0gICAgYm9vbCBfaW5SZXNpZ25GaXJzdFJlc3BvbmRlcjsKICAgICBCT09MIF93
aWxsQmVjb21lRmlyc3RSZXNwb25kZXJBZ2FpbjsKICAgICBOU0V2ZW50ICpfbW91c2VEb3duRXZl
bnQ7CiAgICAgTlNFdmVudCAqX3ByZXNzdXJlRXZlbnQ7CkBAIC0yMzEsMTUgKzIyNCw5IEBAIHN0
cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKIAogICAgIGlkIF9mbGFn
c0NoYW5nZWRFdmVudE1vbml0b3I7CiAKLSNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0gICAg
UmV0YWluUHRyPFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXI+IF9mdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlcjsKLSNlbmRpZgotCiAgICAgQk9PTCBfaGFzU3BlbGxDaGVja2VyRG9jdW1lbnRU
YWc7CiAgICAgTlNJbnRlZ2VyIF9zcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKIAotICAgIEJPT0wg
X2luU2VjdXJlSW5wdXRTdGF0ZTsKLQogICAgIEJPT0wgX3Nob3VsZERlZmVyVmlld0luV2luZG93
Q2hhbmdlczsKICAgICBOU1dpbmRvdyAqX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbjsK
IApAQCAtMjUzLDExICsyNDAsNyBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFy
YW1ldGVycyB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBfcHJvbWlzZWRJbWFnZTsKICAg
ICBTdHJpbmcgX3Byb21pc2VkRmlsZW5hbWU7CiAgICAgU3RyaW5nIF9wcm9taXNlZFVSTDsKLSAg
ICAKLSAgICBOU1NpemUgX2ludHJpbnNpY0NvbnRlbnRTaXplOwotICAgIEJPT0wgX2NsaXBzVG9W
aXNpYmxlUmVjdDsKLSAgICBOU1JlY3QgX2NvbnRlbnRQcmVwYXJhdGlvblJlY3Q7Ci0gICAgQk9P
TCBfdXNlQ29udGVudFByZXBhcmF0aW9uUmVjdEZvclZpc2libGVSZWN0OworCiAgICAgQk9PTCBf
d2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZDsKIAogICAgIFJldGFpblB0cjxXS1dpbmRv
d1Zpc2liaWxpdHlPYnNlcnZlcj4gX3dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlcjsKQEAgLTI2OSwx
MCArMjUyLDYgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewog
ICAgIEJPT0wgX2FsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzOwogICAgIEJPT0wg
X2FsbG93c0xpbmtQcmV2aWV3OwogCi0gICAgUmV0YWluUHRyPFdLVmlld0xheW91dFN0cmF0ZWd5
PiBfbGF5b3V0U3RyYXRlZ3k7Ci0gICAgV0tMYXlvdXRNb2RlIF9sYXN0UmVxdWVzdGVkTGF5b3V0
TW9kZTsKLSAgICBmbG9hdCBfbGFzdFJlcXVlc3RlZFZpZXdTY2FsZTsKLQogICAgIFJldGFpblB0
cjxDQUxheWVyPiBfcm9vdExheWVyOwogCiAgICAgQk9PTCBfZGlkU2NoZWR1bGVTZXRUb3BDb250
ZW50SW5zZXQ7CkBAIC0zODksNyArMzY4LDggQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2
ZW50c1BhcmFtZXRlcnMgewogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMDAwCiAgICAgW19kYXRhLT5faW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciB3aWxsRGVzdHJv
eVZpZXc6c2VsZl07CiAjZW5kaWYKLSAgICBbX2RhdGEtPl9sYXlvdXRTdHJhdGVneSB3aWxsRGVz
dHJveVZpZXc6c2VsZl07CisKKyAgICBfZGF0YS0+X2ltcGwgPSBudWxscHRyOwogCiAjaWYgV0tf
QVBJX0VOQUJMRUQKICAgICBpZiAoX2RhdGEtPl9yZW1vdGVPYmplY3RSZWdpc3RyeSkgewpAQCAt
NDAzLDcgKzM4Myw2IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJz
IHsKICNpZiBXS19BUElfRU5BQkxFRAogICAgIEFTU0VSVCghX2RhdGEtPl90aHVtYm5haWxWaWV3
KTsKICNlbmRpZgotICAgIEFTU0VSVCghX2RhdGEtPl9pblNlY3VyZUlucHV0U3RhdGUpOwogCiAg
ICAgW19kYXRhIHJlbGVhc2VdOwogICAgIF9kYXRhID0gbmlsOwpAQCAtNDMzLDEwNyArNDEyLDQ3
IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKIAogLSAodm9p
ZClzZXREcmF3c0JhY2tncm91bmQ6KEJPT0wpZHJhd3NCYWNrZ3JvdW5kCiB7Ci0gICAgX2RhdGEt
Pl9wYWdlLT5zZXREcmF3c0JhY2tncm91bmQoZHJhd3NCYWNrZ3JvdW5kKTsKKyAgICBfZGF0YS0+
X2ltcGwtPnNldERyYXdzQmFja2dyb3VuZChkcmF3c0JhY2tncm91bmQpOwogfQogCiAtIChCT09M
KWRyYXdzQmFja2dyb3VuZAogewotICAgIHJldHVybiBfZGF0YS0+X3BhZ2UtPmRyYXdzQmFja2dy
b3VuZCgpOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmRyYXdzQmFja2dyb3VuZCgpOwogfQog
CiAtICh2b2lkKXNldERyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kOihCT09MKWRyYXdzVHJhbnNw
YXJlbnRCYWNrZ3JvdW5kCiB7Ci0gICAgX2RhdGEtPl9wYWdlLT5zZXREcmF3c1RyYW5zcGFyZW50
QmFja2dyb3VuZChkcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCk7CisgICAgX2RhdGEtPl9pbXBs
LT5zZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZChkcmF3c1RyYW5zcGFyZW50QmFja2dyb3Vu
ZCk7CiB9CiAKIC0gKEJPT0wpZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQKIHsKLSAgICByZXR1
cm4gX2RhdGEtPl9wYWdlLT5kcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCgpOworICAgIHJldHVy
biBfZGF0YS0+X2ltcGwtPmRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKCk7CiB9CiAKIC0gKEJP
T0wpYWNjZXB0c0ZpcnN0UmVzcG9uZGVyCiB7Ci0gICAgcmV0dXJuIFlFUzsKKyAgICByZXR1cm4g
X2RhdGEtPl9pbXBsLT5hY2NlcHRzRmlyc3RSZXNwb25kZXIoKTsKIH0KIAogLSAoQk9PTCliZWNv
bWVGaXJzdFJlc3BvbmRlcgogewotICAgIC8vIElmIHdlIGp1c3QgYmVjYW1lIGZpcnN0IHJlc3Bv
bmRlciBhZ2FpbiwgdGhlcmUgaXMgbm8gbmVlZCB0byBkbyBhbnl0aGluZywKLSAgICAvLyBzaW5j
ZSByZXNpZ25GaXJzdFJlc3BvbmRlciBoYXMgY29ycmVjdGx5IGRldGVjdGVkIHRoaXMgc2l0dWF0
aW9uLgotICAgIGlmIChfZGF0YS0+X3dpbGxCZWNvbWVGaXJzdFJlc3BvbmRlckFnYWluKSB7Ci0g
ICAgICAgIF9kYXRhLT5fd2lsbEJlY29tZUZpcnN0UmVzcG9uZGVyQWdhaW4gPSBOTzsKLSAgICAg
ICAgcmV0dXJuIFlFUzsKLSAgICB9Ci0KLSAgICBOU1NlbGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rp
b24gPSBbW3NlbGYgd2luZG93XSBrZXlWaWV3U2VsZWN0aW9uRGlyZWN0aW9uXTsKLQotICAgIF9k
YXRhLT5faW5CZWNvbWVGaXJzdFJlc3BvbmRlciA9IHRydWU7Ci0gICAgCi0gICAgW3NlbGYgX3Vw
ZGF0ZVNlY3VyZUlucHV0U3RhdGVdOwotICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hh
bmdlKFZpZXdTdGF0ZTo6SXNGb2N1c2VkKTsKLSAgICAvLyBSZXN0b3JlIHRoZSBzZWxlY3Rpb24g
aW4gdGhlIGVkaXRhYmxlIHJlZ2lvbiBpZiByZXNpZ25pbmcgZmlyc3QgcmVzcG9uZGVyIGNsZWFy
ZWQgc2VsZWN0aW9uLgotICAgIF9kYXRhLT5fcGFnZS0+cmVzdG9yZVNlbGVjdGlvbkluRm9jdXNl
ZEVkaXRhYmxlRWxlbWVudCgpOwotCi0gICAgX2RhdGEtPl9pbkJlY29tZUZpcnN0UmVzcG9uZGVy
ID0gZmFsc2U7Ci0gICAgCi0gICAgaWYgKGRpcmVjdGlvbiAhPSBOU0RpcmVjdFNlbGVjdGlvbikg
ewotICAgICAgICBOU0V2ZW50ICpldmVudCA9IFtOU0FwcCBjdXJyZW50RXZlbnRdOwotICAgICAg
ICBOU0V2ZW50ICprZXlib2FyZEV2ZW50ID0gbmlsOwotICAgICAgICBpZiAoW2V2ZW50IHR5cGVd
ID09IE5TS2V5RG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNLZXlVcCkKLSAgICAgICAgICAgIGtl
eWJvYXJkRXZlbnQgPSBldmVudDsKLSAgICAgICAgX2RhdGEtPl9wYWdlLT5zZXRJbml0aWFsRm9j
dXMoZGlyZWN0aW9uID09IE5TU2VsZWN0aW5nTmV4dCwga2V5Ym9hcmRFdmVudCAhPSBuaWwsIE5h
dGl2ZVdlYktleWJvYXJkRXZlbnQoa2V5Ym9hcmRFdmVudCwgZmFsc2UsIFZlY3RvcjxLZXlwcmVz
c0NvbW1hbmQ+KCkpLCBbXShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IpIHsgfSk7Ci0gICAg
fQotICAgIHJldHVybiBZRVM7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+YmVjb21lRmlyc3RS
ZXNwb25kZXIoKTsKIH0KIAogLSAoQk9PTClyZXNpZ25GaXJzdFJlc3BvbmRlcgogewotI2lmIFdL
X0FQSV9FTkFCTEVECi0gICAgLy8gUHJlZGljdCB0aGUgY2FzZSB3aGVyZSB3ZSBhcmUgbG9zaW5n
IGZpcnN0IHJlc3BvbmRlciBzdGF0dXMgb25seSB0bwotICAgIC8vIGdhaW4gaXQgYmFjayBhZ2Fp
bi4gV2Ugd2FudCByZXNpZ25GaXJzdFJlc3BvbmRlciB0byBkbyBub3RoaW5nIGluIHRoYXQgY2Fz
ZS4KLSAgICBpZCBuZXh0UmVzcG9uZGVyID0gW1tzZWxmIHdpbmRvd10gX25ld0ZpcnN0UmVzcG9u
ZGVyQWZ0ZXJSZXNpZ25pbmddOwotICAgIGlmIChbbmV4dFJlc3BvbmRlciBpc0tpbmRPZkNsYXNz
OltXS1dlYlZpZXcgY2xhc3NdXSAmJiBzZWxmLnN1cGVydmlldyA9PSBuZXh0UmVzcG9uZGVyKSB7
Ci0gICAgICAgIF9kYXRhLT5fd2lsbEJlY29tZUZpcnN0UmVzcG9uZGVyQWdhaW4gPSBZRVM7Ci0g
ICAgICAgIHJldHVybiBZRVM7Ci0gICAgfQotI2VuZGlmCi0KLSAgICBfZGF0YS0+X3dpbGxCZWNv
bWVGaXJzdFJlc3BvbmRlckFnYWluID0gTk87Ci0gICAgX2RhdGEtPl9pblJlc2lnbkZpcnN0UmVz
cG9uZGVyID0gdHJ1ZTsKLQotI2lmIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKLSAgICBf
ZGF0YS0+X3BhZ2UtPmNvbmZpcm1Db21wb3NpdGlvbkFzeW5jKCk7Ci0jZWxzZQotICAgIGlmIChf
ZGF0YS0+X3BhZ2UtPmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb24gJiYgIV9kYXRhLT5fcGFn
ZS0+ZWRpdG9yU3RhdGUoKS5zaG91bGRJZ25vcmVDb21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZSkK
LSAgICAgICAgX2RhdGEtPl9wYWdlLT5jYW5jZWxDb21wb3NpdGlvbigpOwotI2VuZGlmCi0KLSAg
ICBbc2VsZiBfbm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbl07Ci0K
LSAgICBbc2VsZiBfcmVzZXRTZWN1cmVJbnB1dFN0YXRlXTsKLQotICAgIGlmICghX2RhdGEtPl9w
YWdlLT5tYWludGFpbnNJbmFjdGl2ZVNlbGVjdGlvbigpKQotICAgICAgICBfZGF0YS0+X3BhZ2Ut
PmNsZWFyU2VsZWN0aW9uKCk7Ci0gICAgCi0gICAgX2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRD
aGFuZ2UoVmlld1N0YXRlOjpJc0ZvY3VzZWQpOwotCi0gICAgX2RhdGEtPl9pblJlc2lnbkZpcnN0
UmVzcG9uZGVyID0gZmFsc2U7Ci0KLSAgICByZXR1cm4gWUVTOworICAgIHJldHVybiBfZGF0YS0+
X2ltcGwtPnJlc2lnbkZpcnN0UmVzcG9uZGVyKCk7CiB9CiAKIC0gKHZvaWQpdmlld1dpbGxTdGFy
dExpdmVSZXNpemUKIHsKLSAgICBfZGF0YS0+X3BhZ2UtPnZpZXdXaWxsU3RhcnRMaXZlUmVzaXpl
KCk7Ci0KLSAgICBbX2RhdGEtPl9sYXlvdXRTdHJhdGVneSB3aWxsU3RhcnRMaXZlUmVzaXplXTsK
KyAgICBfZGF0YS0+X2ltcGwtPnZpZXdXaWxsU3RhcnRMaXZlUmVzaXplKCk7CiB9CiAKIC0gKHZv
aWQpdmlld0RpZEVuZExpdmVSZXNpemUKIHsKLSAgICBfZGF0YS0+X3BhZ2UtPnZpZXdXaWxsRW5k
TGl2ZVJlc2l6ZSgpOwotCi0gICAgW19kYXRhLT5fbGF5b3V0U3RyYXRlZ3kgZGlkRW5kTGl2ZVJl
c2l6ZV07CisgICAgX2RhdGEtPl9pbXBsLT52aWV3RGlkRW5kTGl2ZVJlc2l6ZSgpOwogfQogCiAt
IChCT09MKWlzRmxpcHBlZApAQCAtNTQzLDM5ICs0NjIsMjUgQEAgc3RydWN0IFdLVmlld0ludGVy
cHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogCiAtIChOU1NpemUpaW50cmluc2ljQ29udGVudFNp
emUKIHsKLSAgICByZXR1cm4gX2RhdGEtPl9pbnRyaW5zaWNDb250ZW50U2l6ZTsKKyAgICByZXR1
cm4gTlNTaXplRnJvbUNHU2l6ZShfZGF0YS0+X2ltcGwtPmludHJpbnNpY0NvbnRlbnRTaXplKCkp
OwogfQogCiAtICh2b2lkKXByZXBhcmVDb250ZW50SW5SZWN0OihOU1JlY3QpcmVjdAogewotICAg
IF9kYXRhLT5fY29udGVudFByZXBhcmF0aW9uUmVjdCA9IHJlY3Q7Ci0gICAgX2RhdGEtPl91c2VD
b250ZW50UHJlcGFyYXRpb25SZWN0Rm9yVmlzaWJsZVJlY3QgPSBZRVM7Ci0KLSAgICBbc2VsZiBf
dXBkYXRlVmlld0V4cG9zZWRSZWN0XTsKLX0KLQotLSAodm9pZClfdXBkYXRlVmlld0V4cG9zZWRS
ZWN0Ci17Ci0gICAgTlNSZWN0IGV4cG9zZWRSZWN0ID0gW3NlbGYgdmlzaWJsZVJlY3RdOwotCi0g
ICAgaWYgKF9kYXRhLT5fdXNlQ29udGVudFByZXBhcmF0aW9uUmVjdEZvclZpc2libGVSZWN0KQot
ICAgICAgICBleHBvc2VkUmVjdCA9IE5TVW5pb25SZWN0KF9kYXRhLT5fY29udGVudFByZXBhcmF0
aW9uUmVjdCwgZXhwb3NlZFJlY3QpOwotCi0gICAgaWYgKGF1dG8gZHJhd2luZ0FyZWEgPSBfZGF0
YS0+X3BhZ2UtPmRyYXdpbmdBcmVhKCkpCi0gICAgICAgIGRyYXdpbmdBcmVhLT5zZXRFeHBvc2Vk
UmVjdChfZGF0YS0+X2NsaXBzVG9WaXNpYmxlUmVjdCA/IEZsb2F0UmVjdChleHBvc2VkUmVjdCkg
OiBGbG9hdFJlY3Q6OmluZmluaXRlUmVjdCgpKTsKKyAgICBfZGF0YS0+X2ltcGwtPnNldENvbnRl
bnRQcmVwYXJhdGlvblJlY3QoTlNSZWN0VG9DR1JlY3QocmVjdCkpOworICAgIF9kYXRhLT5faW1w
bC0+dXBkYXRlVmlld0V4cG9zZWRSZWN0KCk7CiB9CiAKIC0gKHZvaWQpc2V0RnJhbWVTaXplOihO
U1NpemUpc2l6ZQogewogICAgIFtzdXBlciBzZXRGcmFtZVNpemU6c2l6ZV07Ci0KLSAgICBbX2Rh
dGEtPl9sYXlvdXRTdHJhdGVneSBkaWRDaGFuZ2VGcmFtZVNpemVdOworICAgIF9kYXRhLT5faW1w
bC0+c2V0RnJhbWVTaXplKE5TU2l6ZVRvQ0dTaXplKHNpemUpKTsKIH0KIAogLSAodm9pZClfdXBk
YXRlV2luZG93QW5kVmlld0ZyYW1lcwogewotICAgIGlmIChfZGF0YS0+X2NsaXBzVG9WaXNpYmxl
UmVjdCkKLSAgICAgICAgW3NlbGYgX3VwZGF0ZVZpZXdFeHBvc2VkUmVjdF07CisgICAgaWYgKF9k
YXRhLT5faW1wbC0+Y2xpcHNUb1Zpc2libGVSZWN0KCkpCisgICAgICAgIF9kYXRhLT5faW1wbC0+
dXBkYXRlVmlld0V4cG9zZWRSZWN0KCk7CiAKICAgICBpZiAoX2RhdGEtPl9kaWRTY2hlZHVsZVdp
bmRvd0FuZFZpZXdGcmFtZVVwZGF0ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTc5MCw2ICsxNjk1
LDEyIEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAq
c3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAgICAgfSk7CiB9CiAKKy8vIEZJWE1FOiBX
aGF0IGlzIHRoZSByaWdodCB3YXkgdG8gZG8gdGhpcz8KKy0gKE5TVGV4dElucHV0Q29udGV4dCAq
KV9zdXBlcklucHV0Q29udGV4dAoreworICAgIHJldHVybiBbc3VwZXIgaW5wdXRDb250ZXh0XTsK
K30KKwogLSAoTlNUZXh0SW5wdXRDb250ZXh0ICopaW5wdXRDb250ZXh0CiB7CiAgICAgaWYgKF9k
YXRhLT5fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIpIHsKQEAgLTE4MjgsMTEgKzE3
MzksMTEgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5n
ICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKICAgICB9IGVsc2UKICAgICAgICAgdGV4
dCA9IHN0cmluZzsKIAotICAgIGlmIChfZGF0YS0+X2luU2VjdXJlSW5wdXRTdGF0ZSkgeworICAg
IGlmIChfZGF0YS0+X2ltcGwtPmluU2VjdXJlSW5wdXRTdGF0ZSgpKSB7CiAgICAgICAgIC8vIElu
IHBhc3N3b3JkIGZpZWxkcywgd2Ugb25seSBhbGxvdyBBU0NJSSBkZWFkIGtleXMsIGFuZCBkb24n
dCBhbGxvdyBpbmxpbmUgaW5wdXQsIG1hdGNoaW5nIE5TU2VjdXJlVGV4dElucHV0RmllbGQuCiAg
ICAgICAgIC8vIEFsbG93aW5nIEFTQ0lJIGRlYWQga2V5cyBpcyBuZWNlc3NhcnkgdG8gZW5hYmxl
IGZ1bGwgUm9tYW4gaW5wdXQgd2hlbiB1c2luZyBhIFZpZXRuYW1lc2Uga2V5Ym9hcmQuCiAgICAg
ICAgIEFTU0VSVCghX2RhdGEtPl9wYWdlLT5lZGl0b3JTdGF0ZSgpLmhhc0NvbXBvc2l0aW9uKTsK
LSAgICAgICAgW3NlbGYgX25vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRp
b25dOworICAgICAgICBfZGF0YS0+X2ltcGwtPm5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2Fy
ZGVkQ29tcG9zaXRpb24oKTsKICAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBzdG9yZSB0aGUg
Y29tbWFuZCB0byBoYW5kbGUgaXQgYWZ0ZXIgRE9NIGV2ZW50IHByb2Nlc3NpbmcsIGFzIGl0J3Mg
cmVndWxhciBrZXlib2FyZCBpbnB1dCBub3csIG5vdCBhIGNvbXBvc2l0aW9uLgogICAgICAgICBp
ZiAoW3RleHQgbGVuZ3RoXSA9PSAxICYmIGlzQVNDSUkoW3RleHQgY2hhcmFjdGVyQXRJbmRleDow
XSkpCiAgICAgICAgICAgICBfZGF0YS0+X3BhZ2UtPmluc2VydFRleHRBc3luYyh0ZXh0LCByZXBs
YWNlbWVudFJhbmdlKTsKQEAgLTIyMjQsNyArMjEzNSw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RV
bmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25V
bmRlCiAgICAgICAgIC8vIEluIHBhc3N3b3JkIGZpZWxkcywgd2Ugb25seSBhbGxvdyBBU0NJSSBk
ZWFkIGtleXMsIGFuZCBkb24ndCBhbGxvdyBpbmxpbmUgaW5wdXQsIG1hdGNoaW5nIE5TU2VjdXJl
VGV4dElucHV0RmllbGQuCiAgICAgICAgIC8vIEFsbG93aW5nIEFTQ0lJIGRlYWQga2V5cyBpcyBu
ZWNlc3NhcnkgdG8gZW5hYmxlIGZ1bGwgUm9tYW4gaW5wdXQgd2hlbiB1c2luZyBhIFZpZXRuYW1l
c2Uga2V5Ym9hcmQuCiAgICAgICAgIEFTU0VSVCghX2RhdGEtPl9wYWdlLT5lZGl0b3JTdGF0ZSgp
Lmhhc0NvbXBvc2l0aW9uKTsKLSAgICAgICAgW3NlbGYgX25vdGlmeUlucHV0Q29udGV4dEFib3V0
RGlzY2FyZGVkQ29tcG9zaXRpb25dOworICAgICAgICBfZGF0YS0+X2ltcGwtPm5vdGlmeUlucHV0
Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb24oKTsKICAgICAgICAgaWYgKFt0ZXh0IGxl
bmd0aF0gPT0gMSAmJiBbW3RleHQgZGVjb21wb3NlZFN0cmluZ1dpdGhDYW5vbmljYWxNYXBwaW5n
XSBjaGFyYWN0ZXJBdEluZGV4OjBdIDwgMHg4MCkgewogICAgICAgICAgICAgX2RhdGEtPl9wYWdl
LT5pbnNlcnRUZXh0KHRleHQsIHJlcGxhY2VtZW50UmFuZ2UpOwogICAgICAgICB9IGVsc2UKQEAg
LTI3NTYsNyArMjY2Nyw3IEBAIHN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQg
PSAma2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0OwogewogICAgIE5TV2luZG93ICprZXlXaW5kb3cg
PSBbbm90aWZpY2F0aW9uIG9iamVjdF07CiAgICAgaWYgKGtleVdpbmRvdyA9PSBbc2VsZiB3aW5k
b3ddIHx8IGtleVdpbmRvdyA9PSBbW3NlbGYgd2luZG93XSBhdHRhY2hlZFNoZWV0XSkgewotICAg
ICAgICBbc2VsZiBfdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZV07CisgICAgICAgIF9kYXRhLT5faW1w
bC0+dXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSgpOwogICAgICAgICBfZGF0YS0+X3BhZ2UtPnZpZXdT
dGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsKICAgICB9CiB9CkBAIC0y
Nzc1LDcgKzI2ODYsNyBAQCBzdGF0aWMgdm9pZCoga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0ID0g
JmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dDsKIHsKICAgICBOU1dpbmRvdyAqZm9ybWVyS2V5V2lu
ZG93ID0gW25vdGlmaWNhdGlvbiBvYmplY3RdOwogICAgIGlmIChmb3JtZXJLZXlXaW5kb3cgPT0g
W3NlbGYgd2luZG93XSB8fCBmb3JtZXJLZXlXaW5kb3cgPT0gW1tzZWxmIHdpbmRvd10gYXR0YWNo
ZWRTaGVldF0pIHsKLSAgICAgICAgW3NlbGYgX3VwZGF0ZVNlY3VyZUlucHV0U3RhdGVdOworICAg
ICAgICBfZGF0YS0+X2ltcGwtPnVwZGF0ZVNlY3VyZUlucHV0U3RhdGUoKTsKICAgICAgICAgX2Rh
dGEtPl9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpXaW5kb3dJc0FjdGl2ZSk7
CiAgICAgfQogfQpAQCAtMjk5OSwxNSArMjkxMCw2IEBAIHN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9i
c2VydmluZ0NvbnRleHQgPSAma2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0OwogICAgIHJldHVybiBb
W05TU2NyZWVuIG1haW5TY3JlZW5dIGJhY2tpbmdTY2FsZUZhY3Rvcl07CiB9CiAKLS0gKHZvaWQp
X3NldERyYXdpbmdBcmVhU2l6ZTooTlNTaXplKXNpemUKLXsKLSAgICBpZiAoIV9kYXRhLT5fcGFn
ZS0+ZHJhd2luZ0FyZWEoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIF9kYXRhLT5fcGFn
ZS0+ZHJhd2luZ0FyZWEoKS0+c2V0U2l6ZShJbnRTaXplKHNpemUpLCBJbnRTaXplKDAsIDApLCBJ
bnRTaXplKF9kYXRhLT5fcmVzaXplU2Nyb2xsT2Zmc2V0KSk7Ci0gICAgX2RhdGEtPl9yZXNpemVT
Y3JvbGxPZmZzZXQgPSBOU1plcm9TaXplOwotfQotCiAtICh2b2lkKXF1aWNrTG9va1dpdGhFdmVu
dDooTlNFdmVudCAqKWV2ZW50CiB7CiAgICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZl
bnRzKQpAQCAtMzAzMiwxNSArMjkzNCw2IEBAIHN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2Vydmlu
Z0NvbnRleHQgPSAma2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0OwogICAgIHJldHVybiBzdGQ6Om1h
a2VfdW5pcXVlPFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk+KCpfZGF0YS0+X3Bh
Z2UpOwogfQogCi0tIChCT09MKV9pc0ZvY3VzZWQKLXsKLSAgICBpZiAoX2RhdGEtPl9pbkJlY29t
ZUZpcnN0UmVzcG9uZGVyKQotICAgICAgICByZXR1cm4gWUVTOwotICAgIGlmIChfZGF0YS0+X2lu
UmVzaWduRmlyc3RSZXNwb25kZXIpCi0gICAgICAgIHJldHVybiBOTzsKLSAgICByZXR1cm4gW1tz
ZWxmIHdpbmRvd10gZmlyc3RSZXNwb25kZXJdID09IHNlbGY7Ci19Ci0KIC0gKFdlYktpdDo6Q29s
b3JTcGFjZURhdGEpX2NvbG9yU3BhY2UKIHsKICAgICBpZiAoIV9kYXRhLT5fY29sb3JTcGFjZSkg
ewpAQCAtMzA2MCw3ICsyOTUzLDcgQEAgc3RhdGljIHZvaWQqIGtleVZhbHVlT2JzZXJ2aW5nQ29u
dGV4dCA9ICZrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQ7CiAKIC0gKHZvaWQpX3Byb2Nlc3NEaWRF
eGl0CiB7Ci0gICAgW3NlbGYgX25vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9z
aXRpb25dOworICAgIF9kYXRhLT5faW1wbC0+bm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJk
ZWRDb21wb3NpdGlvbigpOwogCiAgICAgaWYgKF9kYXRhLT5fbGF5ZXJIb3N0aW5nVmlldykKICAg
ICAgICAgW3NlbGYgX3NldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlUm9vdExheWVyOm5pbF07
CkBAIC0zMjk1LDExICszMTg4LDYgQEAgc3RhdGljIHZvaWQqIGtleVZhbHVlT2JzZXJ2aW5nQ29u
dGV4dCA9ICZrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQ7CiAgICAgICAgIF9kYXRhLT5fdGV4dElu
ZGljYXRvcldpbmRvdy0+c2V0QW5pbWF0aW9uUHJvZ3Jlc3MocHJvZ3Jlc3MpOwogfQogCi0tIChD
QUxheWVyICopX3Jvb3RMYXllcgotewotICAgIHJldHVybiBbX2RhdGEtPl9sYXllckhvc3RpbmdW
aWV3IGxheWVyXTsKLX0KLQogLSAodm9pZClfc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVS
b290TGF5ZXI6KENBTGF5ZXIgKilyb290TGF5ZXIKIHsKICAgICBbcm9vdExheWVyIHdlYl9kaXNh
YmxlQWxsQWN0aW9uc107CkBAIC0zNjMxLDUzICszNTE5LDYgQEAgc3RhdGljIE5TU3RyaW5nICpw
YXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKICAgICByZXR1cm4g
W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0OltwYXRoIGxhc3RQYXRoQ29tcG9uZW50XV07CiB9CiAK
LS0gKHZvaWQpX3VwZGF0ZVNlY3VyZUlucHV0U3RhdGUKLXsKLSAgICBpZiAoIVtbc2VsZiB3aW5k
b3ddIGlzS2V5V2luZG93XSB8fCAhW3NlbGYgX2lzRm9jdXNlZF0pIHsKLSAgICAgICAgaWYgKF9k
YXRhLT5faW5TZWN1cmVJbnB1dFN0YXRlKSB7Ci0gICAgICAgICAgICBEaXNhYmxlU2VjdXJlRXZl
bnRJbnB1dCgpOwotICAgICAgICAgICAgX2RhdGEtPl9pblNlY3VyZUlucHV0U3RhdGUgPSBOTzsK
LSAgICAgICAgfQotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIC8vIFdLVmlldyBoYXMgYSBz
aW5nbGUgaW5wdXQgY29udGV4dCBmb3IgYWxsIGVkaXRhYmxlIGFyZWFzIChleGNlcHQgZm9yIHBs
dWctaW5zKS4KLSAgICBOU1RleHRJbnB1dENvbnRleHQgKmNvbnRleHQgPSBbc3VwZXIgaW5wdXRD
b250ZXh0XTsKLSAgICBib29sIGlzSW5QYXNzd29yZEZpZWxkID0gX2RhdGEtPl9wYWdlLT5lZGl0
b3JTdGF0ZSgpLmlzSW5QYXNzd29yZEZpZWxkOwotCi0gICAgaWYgKGlzSW5QYXNzd29yZEZpZWxk
KSB7Ci0gICAgICAgIGlmICghX2RhdGEtPl9pblNlY3VyZUlucHV0U3RhdGUpCi0gICAgICAgICAg
ICBFbmFibGVTZWN1cmVFdmVudElucHV0KCk7Ci0gICAgICAgIHN0YXRpYyBOU0FycmF5ICpyb21h
bklucHV0U291cmNlcyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOiZOU0FsbFJv
bWFuSW5wdXRTb3VyY2VzTG9jYWxlSWRlbnRpZmllciBjb3VudDoxXTsKLSAgICAgICAgTE9HKFRl
eHRJbnB1dCwgIi0+IHNldEFsbG93ZWRJbnB1dFNvdXJjZUxvY2FsZXM6cm9tYW5JbnB1dFNvdXJj
ZXMiKTsKLSAgICAgICAgW2NvbnRleHQgc2V0QWxsb3dlZElucHV0U291cmNlTG9jYWxlczpyb21h
bklucHV0U291cmNlc107Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKF9kYXRhLT5faW5TZWN1
cmVJbnB1dFN0YXRlKQotICAgICAgICAgICAgRGlzYWJsZVNlY3VyZUV2ZW50SW5wdXQoKTsKLSAg
ICAgICAgTE9HKFRleHRJbnB1dCwgIi0+IHNldEFsbG93ZWRJbnB1dFNvdXJjZUxvY2FsZXM6bmls
Iik7Ci0gICAgICAgIFtjb250ZXh0IHNldEFsbG93ZWRJbnB1dFNvdXJjZUxvY2FsZXM6bmlsXTsK
LSAgICB9Ci0gICAgX2RhdGEtPl9pblNlY3VyZUlucHV0U3RhdGUgPSBpc0luUGFzc3dvcmRGaWVs
ZDsKLX0KLQotLSAodm9pZClfcmVzZXRTZWN1cmVJbnB1dFN0YXRlCi17Ci0gICAgaWYgKF9kYXRh
LT5faW5TZWN1cmVJbnB1dFN0YXRlKSB7Ci0gICAgICAgIERpc2FibGVTZWN1cmVFdmVudElucHV0
KCk7Ci0gICAgICAgIF9kYXRhLT5faW5TZWN1cmVJbnB1dFN0YXRlID0gTk87Ci0gICAgfQotfQot
Ci0tICh2b2lkKV9ub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uCi17
Ci0gICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzkzNTkwNTU+OiAtZGlzY2FyZE1hcmtlZFRleHQgY2Fu
IG9ubHkgYmUgY2FsbGVkIGZvciBhY3RpdmUgY29udGV4dHMuCi0gICAgLy8gRklYTUU6IFdlIGZh
aWwgdG8gZXZlciBub3RpZnkgdGhlIGlucHV0IGNvbnRleHQgaWYgc29tZXRoaW5nIChlLmcuIGEg
bmF2aWdhdGlvbikgaGFwcGVucyB3aGlsZSB0aGUgd2luZG93IGlzIG5vdCBrZXkuCi0gICAgLy8g
VGhpcyBpcyBub3QgYSBwcm9ibGVtIHdoZW4gdGhlIHdpbmRvdyBpcyBrZXksIGJlY2F1c2Ugd2Ug
ZGlzY2FyZCBtYXJrZWQgdGV4dCBvbiByZXNpZ25pbmcgZmlyc3QgcmVzcG9uZGVyLgotICAgIGlm
ICghW1tzZWxmIHdpbmRvd10gaXNLZXlXaW5kb3ddIHx8IHNlbGYgIT0gW1tzZWxmIHdpbmRvd10g
Zmlyc3RSZXNwb25kZXJdKQotICAgICAgICByZXR1cm47Ci0KLSAgICBMT0coVGV4dElucHV0LCAi
LT4gZGlzY2FyZE1hcmtlZFRleHQiKTsKLSAgICBbW3N1cGVyIGlucHV0Q29udGV4dF0gZGlzY2Fy
ZE1hcmtlZFRleHRdOyAvLyBJbmZvcm0gdGhlIGlucHV0IG1ldGhvZCB0aGF0IHdlIHdvbid0IGhh
dmUgYW4gaW5saW5lIGlucHV0IGFyZWEgZGVzcGl0ZSBoYXZpbmcgYmVlbiBhc2tlZCB0by4KLX0K
IAogLSAoTlNXaW5kb3cgKilfdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uCiB7CkBAIC0z
Njg3LDI0ICszNTI4LDE3IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFt
ZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogLSAo
Qk9PTClfaGFzRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIKIHsKLSAgICByZXR1cm4gKGJvb2wp
X2RhdGEtPl9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcjsKKyAgICByZXR1cm4gX2RhdGEtPl9p
bXBsLT5oYXNGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpOwogfQogCiAtIChXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyICopX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyCiB7Ci0gICAg
aWYgKCFfZGF0YS0+X2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKQotICAgICAgICBfZGF0YS0+
X2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyID0gYWRvcHROUyhbW1dLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoV2luZG93OltzZWxmIGNyZWF0ZUZ1bGxTY3JlZW5X
aW5kb3ddIHdlYlZpZXc6c2VsZl0pOwotCi0gICAgcmV0dXJuIF9kYXRhLT5fZnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXIuZ2V0KCk7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+ZnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIoKTsKIH0KIAogLSAodm9pZClfY2xvc2VGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlcgogewotICAgIGlmICghX2RhdGEtPl9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
cikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgW19kYXRhLT5fZnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIgY2xvc2VdOwotICAgIF9kYXRhLT5fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgPSBu
dWxscHRyOworICAgIF9kYXRhLT5faW1wbC0+Y2xvc2VGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
cigpOwogfQogI2VuZGlmCiAKQEAgLTM3MjEsMTYgKzM1NTUsNyBAQCBzdGF0aWMgTlNTdHJpbmcg
KnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogCiAtICh2b2lk
KV9zZXRJbnRyaW5zaWNDb250ZW50U2l6ZTooTlNTaXplKWludHJpbnNpY0NvbnRlbnRTaXplCiB7
Ci0gICAgLy8gSWYgdGhlIGludHJpbnNpYyBjb250ZW50IHNpemUgaXMgbGVzcyB0aGFuIHRoZSBt
aW5pbXVtIGxheW91dCB3aWR0aCwgdGhlIGNvbnRlbnQgZmxvd2VkIHRvIGZpdCwKLSAgICAvLyBz
byB3ZSBjYW4gcmVwb3J0IHRoYXQgdGhhdCBkaW1lbnNpb24gaXMgZmxleGlibGUuIElmIG5vdCwg
d2UgbmVlZCB0byByZXBvcnQgb3VyIGludHJpbnNpYyB3aWR0aAotICAgIC8vIHNvIHRoYXQgYXV0
b2xheW91dCB3aWxsIGtub3cgdG8gcHJvdmlkZSBzcGFjZSBmb3IgdXMuCi0KLSAgICBOU1NpemUg
aW50cmluc2ljQ29udGVudFNpemVBY2tub3dsZWRnaW5nRmxleGlibGVXaWR0aCA9IGludHJpbnNp
Y0NvbnRlbnRTaXplOwotICAgIGlmIChpbnRyaW5zaWNDb250ZW50U2l6ZS53aWR0aCA8IF9kYXRh
LT5fcGFnZS0+bWluaW11bUxheW91dFNpemUoKS53aWR0aCgpKQotICAgICAgICBpbnRyaW5zaWND
b250ZW50U2l6ZUFja25vd2xlZGdpbmdGbGV4aWJsZVdpZHRoLndpZHRoID0gTlNWaWV3Tm9JbnN0
cmluc2ljTWV0cmljOwotCi0gICAgX2RhdGEtPl9pbnRyaW5zaWNDb250ZW50U2l6ZSA9IGludHJp
bnNpY0NvbnRlbnRTaXplQWNrbm93bGVkZ2luZ0ZsZXhpYmxlV2lkdGg7Ci0gICAgW3NlbGYgaW52
YWxpZGF0ZUludHJpbnNpY0NvbnRlbnRTaXplXTsKKyAgICBfZGF0YS0+X2ltcGwtPnNldEludHJp
bnNpY0NvbnRlbnRTaXplKE5TU2l6ZVRvQ0dTaXplKGludHJpbnNpY0NvbnRlbnRTaXplKSk7CiB9
CiAKIC0gKE5TSW50ZWdlcilzcGVsbENoZWNrZXJEb2N1bWVudFRhZwpAQCAtMzc5Miw2ICszNjE3
LDEwIEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNT
dHJpbmcgKnBhdGgpCiAKICAgICBfZGF0YS0+X3BhZ2VDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVl
PFBhZ2VDbGllbnRJbXBsPihzZWxmLCB3ZWJWaWV3KTsKICAgICBfZGF0YS0+X3BhZ2UgPSBwcm9j
ZXNzUG9vbC5jcmVhdGVXZWJQYWdlKCpfZGF0YS0+X3BhZ2VDbGllbnQsIFdURjo6bW92ZShjb25m
aWd1cmF0aW9uKSk7CisKKyAgICBfZGF0YS0+X2ltcGwgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYlZp
ZXdJbXBsPihzZWxmLCAqX2RhdGEtPl9wYWdlKTsKKyAgICBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50
SW1wbCo+KF9kYXRhLT5fcGFnZUNsaWVudC5nZXQoKSktPnNldEltcGwoKl9kYXRhLT5faW1wbCk7
CisKICAgICBfZGF0YS0+X3BhZ2UtPnNldEFkZHNWaXNpdGVkTGlua3MocHJvY2Vzc1Bvb2wuaGlz
dG9yeUNsaWVudCgpLmFkZHNWaXNpdGVkTGlua3MoKSk7CiAKICAgICBfZGF0YS0+X3BhZ2UtPnNl
dEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKFtzZWxmIF9pbnRyaW5zaWNEZXZpY2VTY2FsZUZh
Y3Rvcl0pOwpAQCAtMzgwMCwyMCArMzYyOSwxMiBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRo
VW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAgIF9kYXRhLT5fbW91c2VE
b3duRXZlbnQgPSBuaWw7CiAgICAgX2RhdGEtPl9wcmVzc3VyZUV2ZW50ID0gbmlsOwogICAgIF9k
YXRhLT5faWdub3JpbmdNb3VzZURyYWdnZWRFdmVudHMgPSBOTzsKLSAgICBfZGF0YS0+X2NsaXBz
VG9WaXNpYmxlUmVjdCA9IE5POwotICAgIF9kYXRhLT5fdXNlQ29udGVudFByZXBhcmF0aW9uUmVj
dEZvclZpc2libGVSZWN0ID0gTk87CiAgICAgX2RhdGEtPl93aW5kb3dPY2NsdXNpb25EZXRlY3Rp
b25FbmFibGVkID0gWUVTOwotICAgIF9kYXRhLT5fbGFzdFJlcXVlc3RlZExheW91dE1vZGUgPSBr
V0tMYXlvdXRNb2RlVmlld1NpemU7Ci0gICAgX2RhdGEtPl9sYXN0UmVxdWVzdGVkVmlld1NjYWxl
ID0gMTsKIAogICAgIF9kYXRhLT5fd2luZG93VmlzaWJpbGl0eU9ic2VydmVyID0gYWRvcHROUyhb
W1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIGFsbG9jXSBpbml0V2l0aFZpZXc6c2VsZl0pOwog
Ci0gICAgX2RhdGEtPl9pbnRyaW5zaWNDb250ZW50U2l6ZSA9IE5TTWFrZVNpemUoTlNWaWV3Tm9J
bnN0cmluc2ljTWV0cmljLCBOU1ZpZXdOb0luc3RyaW5zaWNNZXRyaWMpOwotCiAgICAgX2RhdGEt
Pl9uZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMgPSBfZGF0YS0+X3BhZ2UtPnByZWZl
cmVuY2VzKCkucGx1Z2luc0VuYWJsZWQoKTsKIAotICAgIF9kYXRhLT5fbGF5b3V0U3RyYXRlZ3kg
PSBbV0tWaWV3TGF5b3V0U3RyYXRlZ3kgbGF5b3V0U3RyYXRlZ3lXaXRoUGFnZToqX2RhdGEtPl9w
YWdlIHZpZXc6c2VsZiBtb2RlOmtXS0xheW91dE1vZGVWaWV3U2l6ZV07Ci0KICAgICBbc2VsZiBf
cmVnaXN0ZXJEcmFnZ2VkVHlwZXNdOwogCiAgICAgc2VsZi53YW50c0xheWVyID0gWUVTOwpAQCAt
MzkyMyw0NCArMzc0NCw2IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFt
ZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgICAgIF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xs
ZXItPmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpOwogfQogCi0t
IChCT09MKV9zdXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVzCi17Ci0gICAgaWYgKFtfZGF0YS0+
X2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGlzRnVsbFNjcmVlbl0pCi0gICAgICAgIHJldHVy
biBOTzsKLQotICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IF9kYXRhLT5fcGFnZS5nZXQoKTsKLSAg
ICBpZiAoIXBhZ2UpCi0gICAgICAgIHJldHVybiBZRVM7Ci0gICAgV2ViRnJhbWVQcm94eSogZnJh
bWUgPSBwYWdlLT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4g
WUVTOwotCi0gICAgLy8gSWYgd2UgaGF2ZSBhIHBsdWdpbiBkb2N1bWVudCBpbiB0aGUgbWFpbiBm
cmFtZSwgYXZvaWQgdXNpbmcgY3VzdG9tIFdLTGF5b3V0TW9kZXMKLSAgICAvLyBhbmQgZmFsbCBi
YWNrIHRvIHRoZSBkZWZhdWx0cywgYmVjYXVzZSB0aGVyZSdzIGEgZ29vZCBjaGFuY2UgdGhhdCBp
dCB3b24ndCB3b3JrIChlLmcuIHdpdGggUERGUGx1Z2luKS4KLSAgICBpZiAoZnJhbWUtPmNvbnRh
aW5zUGx1Z2luRG9jdW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIE5POwotCi0gICAgcmV0dXJuIFlF
UzsKLX0KLQotLSAodm9pZClfdXBkYXRlU3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2Rlcwotewot
ICAgIGlmICghW3NlbGYgX3N1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXNdKSB7Ci0gICAgICAg
IFdLTGF5b3V0TW9kZSBvbGRSZXF1ZXN0ZWRMYXlvdXRNb2RlID0gX2RhdGEtPl9sYXN0UmVxdWVz
dGVkTGF5b3V0TW9kZTsKLSAgICAgICAgZmxvYXQgb2xkUmVxdWVzdGVkVmlld1NjYWxlID0gX2Rh
dGEtPl9sYXN0UmVxdWVzdGVkVmlld1NjYWxlOwotICAgICAgICBbc2VsZiBfc2V0Vmlld1NjYWxl
OjFdOwotICAgICAgICBbc2VsZiBfc2V0TGF5b3V0TW9kZTprV0tMYXlvdXRNb2RlVmlld1NpemVd
OwotCi0gICAgICAgIC8vIFRoZSAnbGFzdCByZXF1ZXN0ZWQnIHBhcmFtZXRlcnMgd2lsbCBoYXZl
IGJlZW4gb3ZlcndyaXR0ZW4gYnkgc2V0dGluZyB0aGVtIGFib3ZlLCBidXQgd2UgZG9uJ3QKLSAg
ICAgICAgLy8gd2FudCB0aGlzIHRvIGNvdW50IGFzIGEgcmVxdWVzdCAob25seSBjaGFuZ2VzIGZy
b20gdGhlIGNsaWVudCBjb3VudCksIHNvIHJlc2V0IHRoZW0uCi0gICAgICAgIF9kYXRhLT5fbGFz
dFJlcXVlc3RlZExheW91dE1vZGUgPSBvbGRSZXF1ZXN0ZWRMYXlvdXRNb2RlOwotICAgICAgICBf
ZGF0YS0+X2xhc3RSZXF1ZXN0ZWRWaWV3U2NhbGUgPSBvbGRSZXF1ZXN0ZWRWaWV3U2NhbGU7Ci0g
ICAgfSBlbHNlIGlmIChfZGF0YS0+X2xhc3RSZXF1ZXN0ZWRMYXlvdXRNb2RlICE9IFtfZGF0YS0+
X2xheW91dFN0cmF0ZWd5IGxheW91dE1vZGVdKSB7Ci0gICAgICAgIFtzZWxmIF9zZXRWaWV3U2Nh
bGU6X2RhdGEtPl9sYXN0UmVxdWVzdGVkVmlld1NjYWxlXTsKLSAgICAgICAgW3NlbGYgX3NldExh
eW91dE1vZGU6X2RhdGEtPl9sYXN0UmVxdWVzdGVkTGF5b3V0TW9kZV07Ci0gICAgfQotfQotCiAj
aWYgV0tfQVBJX0VOQUJMRUQKIC0gKF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICopX3JlbW90ZU9i
amVjdFJlZ2lzdHJ5CiB7CkBAIC0zOTcxLDE1ICszNzU0LDggQEAgc3RhdGljIE5TU3RyaW5nICpw
YXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKIAogICAgIHJldHVy
biBfZGF0YS0+X3JlbW90ZU9iamVjdFJlZ2lzdHJ5LmdldCgpOwogfQotCiAjZW5kaWYKIAotCi0t
ICh2b2lkKV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lCi17Ci0gICAgW3NlbGYgX3VwZGF0ZVN1
cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXNdOwotfQotCiAtICh2b2lkKV9kaWRGaW5pc2hMb2Fk
Rm9yTWFpbkZyYW1lCiB7CiAgICAgaWYgKF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXIpCkBAIC00
MDIwLDYgKzM3OTYsMTIgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1l
Rm9yUGF0aChOU1N0cmluZyAqcGF0aCkKIH0KICNlbmRpZgogCisvLyBGSVhNRTogR2V0IHJpZCBv
ZiB0aGlzIHdoZW4gd2UgaGF2ZSBiZXR0ZXIgcGx1bWJpbmcgdG8gV0tWaWV3TGF5b3V0U3RyYXRl
Z3kuCistICh2b2lkKV91cGRhdGVWaWV3RXhwb3NlZFJlY3QKK3sKKyAgICBfZGF0YS0+X2ltcGwt
PnVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgpOworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBX
S1ZpZXcgKFByaXZhdGUpCkBAIC00MTA3LDI1ICszODg5LDIyIEBAIHN0YXRpYyBOU1N0cmluZyAq
cGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAKIC0gKHZvaWQp
c2V0RnJhbWU6KE5TUmVjdClyZWN0IGFuZFNjcm9sbEJ5OihOU1NpemUpb2Zmc2V0CiB7Ci0gICAg
QVNTRVJUKE5TRXF1YWxTaXplcyhfZGF0YS0+X3Jlc2l6ZVNjcm9sbE9mZnNldCwgTlNaZXJvU2l6
ZSkpOwotCi0gICAgX2RhdGEtPl9yZXNpemVTY3JvbGxPZmZzZXQgPSBvZmZzZXQ7Ci0gICAgW3Nl
bGYgc2V0RnJhbWU6cmVjdF07CisgICAgX2RhdGEtPl9pbXBsLT5zZXRGcmFtZUFuZFNjcm9sbEJ5
KE5TUmVjdFRvQ0dSZWN0KHJlY3QpLCBOU1NpemVUb0NHU2l6ZShvZmZzZXQpKTsKIH0KIAogLSAo
dm9pZClkaXNhYmxlRnJhbWVTaXplVXBkYXRlcwogewotICAgIFtfZGF0YS0+X2xheW91dFN0cmF0
ZWd5IGRpc2FibGVGcmFtZVNpemVVcGRhdGVzXTsKKyAgICBfZGF0YS0+X2ltcGwtPmRpc2FibGVG
cmFtZVNpemVVcGRhdGVzKCk7CiB9CiAKIC0gKHZvaWQpZW5hYmxlRnJhbWVTaXplVXBkYXRlcwog
ewotICAgIFtfZGF0YS0+X2xheW91dFN0cmF0ZWd5IGVuYWJsZUZyYW1lU2l6ZVVwZGF0ZXNdOwor
ICAgIF9kYXRhLT5faW1wbC0+ZW5hYmxlRnJhbWVTaXplVXBkYXRlcygpOwogfQogCiAtIChCT09M
KWZyYW1lU2l6ZVVwZGF0ZXNEaXNhYmxlZAogewotICAgIHJldHVybiBbX2RhdGEtPl9sYXlvdXRT
dHJhdGVneSBmcmFtZVNpemVVcGRhdGVzRGlzYWJsZWRdOworICAgIHJldHVybiBfZGF0YS0+X2lt
cGwtPmZyYW1lU2l6ZVVwZGF0ZXNEaXNhYmxlZCgpOwogfQogCiArICh2b2lkKWhpZGVXb3JkRGVm
aW5pdGlvbldpbmRvdwpAQCAtNDE2MCwxMyArMzkzOSwxMiBAQCBzdGF0aWMgTlNTdHJpbmcgKnBh
dGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogCiAtIChCT09MKXNo
b3VsZENsaXBUb1Zpc2libGVSZWN0CiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5fY2xpcHNUb1Zpc2li
bGVSZWN0OworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmNsaXBzVG9WaXNpYmxlUmVjdCgpOwog
fQogCiAtICh2b2lkKXNldFNob3VsZENsaXBUb1Zpc2libGVSZWN0OihCT09MKWNsaXBzVG9WaXNp
YmxlUmVjdAogewotICAgIF9kYXRhLT5fY2xpcHNUb1Zpc2libGVSZWN0ID0gY2xpcHNUb1Zpc2li
bGVSZWN0OwotICAgIFtzZWxmIF91cGRhdGVWaWV3RXhwb3NlZFJlY3RdOworICAgIF9kYXRhLT5f
aW1wbC0+c2V0Q2xpcHNUb1Zpc2libGVSZWN0KGNsaXBzVG9WaXNpYmxlUmVjdCk7CiB9CiAKIC0g
KE5TQ29sb3IgKil1bmRlcmxheUNvbG9yCkBAIC00MjAzLDIwICszOTgxLDEzIEBAIHN0YXRpYyBO
U1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAK
IC0gKE5TVmlldyAqKWZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcKIHsKLSNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCi0gICAgaWYgKF9kYXRhLT5fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIg
JiYgW19kYXRhLT5fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgaXNGdWxsU2NyZWVuXSkKLSAg
ICAgICAgcmV0dXJuIFtfZGF0YS0+X2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIHdlYlZpZXdQ
bGFjZWhvbGRlcl07Ci0jZW5kaWYKLSAgICByZXR1cm4gbmlsOworICAgIHJldHVybiBfZGF0YS0+
X2ltcGwtPmZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcoKTsKIH0KIAorLy8gRklYTUU6IFRoaXMg
cmV0dXJucyBhbiBhdXRvcmVsZWFzZWQgb2JqZWN0LiBTaG91bGQgaXQgcmVhbGx5IGJlIHByZWZp
eGVkICdjcmVhdGUnPwogLSAoTlNXaW5kb3cgKiljcmVhdGVGdWxsU2NyZWVuV2luZG93CiB7Ci0j
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIHJldHVybiBbW1tXZWJDb3JlRnVsbFNjcmVl
bldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbW05TU2NyZWVuIG1haW5TY3JlZW5d
IGZyYW1lXSBzdHlsZU1hc2s6KE5TQm9yZGVybGVzc1dpbmRvd01hc2sgfCBOU1Jlc2l6YWJsZVdp
bmRvd01hc2spIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10gYXV0b3Jl
bGVhc2VdOwotI2Vsc2UKLSAgICByZXR1cm4gbmlsOwotI2VuZGlmCisgICAgcmV0dXJuIF9kYXRh
LT5faW1wbC0+Y3JlYXRlRnVsbFNjcmVlbldpbmRvdygpOwogfQogCiAvLyBGSVhNRTogQWxsIG9m
IHRoZXNlICJEZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzIiBtZXRob2RzIHNob3VsZCBiZSBh
YmxlIHRvIGJlIHJlbW92ZWQgb25jZSBjbGllbnRzIGFyZSB3ZWFuZWQgb2ZmIG9mIHRoZW0uCkBA
IC00MzgyLDUwICs0MTUzLDMyIEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxl
bmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAKIC0gKFdLTGF5b3V0TW9kZSlfbGF5b3V0TW9k
ZQogewotICAgIHJldHVybiBbX2RhdGEtPl9sYXlvdXRTdHJhdGVneSBsYXlvdXRNb2RlXTsKKyAg
ICByZXR1cm4gX2RhdGEtPl9pbXBsLT5sYXlvdXRNb2RlKCk7CiB9CiAKIC0gKHZvaWQpX3NldExh
eW91dE1vZGU6KFdLTGF5b3V0TW9kZSlsYXlvdXRNb2RlCiB7Ci0gICAgX2RhdGEtPl9sYXN0UmVx
dWVzdGVkTGF5b3V0TW9kZSA9IGxheW91dE1vZGU7Ci0KLSAgICBpZiAoIVtzZWxmIF9zdXBwb3J0
c0FyYml0cmFyeUxheW91dE1vZGVzXSAmJiBsYXlvdXRNb2RlICE9IGtXS0xheW91dE1vZGVWaWV3
U2l6ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGxheW91dE1vZGUgPT0gW19kYXRhLT5f
bGF5b3V0U3RyYXRlZ3kgbGF5b3V0TW9kZV0pCi0gICAgICAgIHJldHVybjsKLQotICAgIFtfZGF0
YS0+X2xheW91dFN0cmF0ZWd5IHdpbGxDaGFuZ2VMYXlvdXRTdHJhdGVneV07Ci0gICAgX2RhdGEt
Pl9sYXlvdXRTdHJhdGVneSA9IFtXS1ZpZXdMYXlvdXRTdHJhdGVneSBsYXlvdXRTdHJhdGVneVdp
dGhQYWdlOipfZGF0YS0+X3BhZ2UgdmlldzpzZWxmIG1vZGU6bGF5b3V0TW9kZV07CisgICAgX2Rh
dGEtPl9pbXBsLT5zZXRMYXlvdXRNb2RlKGxheW91dE1vZGUpOwogfQogCiAtIChDR1NpemUpX2Zp
eGVkTGF5b3V0U2l6ZQogewotICAgIHJldHVybiBfZGF0YS0+X3BhZ2UtPmZpeGVkTGF5b3V0U2l6
ZSgpOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmZpeGVkTGF5b3V0U2l6ZSgpOwogfQogCiAt
ICh2b2lkKV9zZXRGaXhlZExheW91dFNpemU6KENHU2l6ZSlmaXhlZExheW91dFNpemUKIHsKLSAg
ICBfZGF0YS0+X3BhZ2UtPnNldEZpeGVkTGF5b3V0U2l6ZShleHBhbmRlZEludFNpemUoRmxvYXRT
aXplKGZpeGVkTGF5b3V0U2l6ZSkpKTsKKyAgICBfZGF0YS0+X2ltcGwtPnNldEZpeGVkTGF5b3V0
U2l6ZShOU1NpemVUb0NHU2l6ZShmaXhlZExheW91dFNpemUpKTsKIH0KIAogLSAoQ0dGbG9hdClf
dmlld1NjYWxlCiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5fcGFnZS0+dmlld1NjYWxlRmFjdG9yKCk7
CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+dmlld1NjYWxlKCk7CiB9CiAKIC0gKHZvaWQpX3Nl
dFZpZXdTY2FsZTooQ0dGbG9hdCl2aWV3U2NhbGUKIHsKLSAgICBfZGF0YS0+X2xhc3RSZXF1ZXN0
ZWRWaWV3U2NhbGUgPSB2aWV3U2NhbGU7Ci0KLSAgICBpZiAoIVtzZWxmIF9zdXBwb3J0c0FyYml0
cmFyeUxheW91dE1vZGVzXSAmJiB2aWV3U2NhbGUgIT0gMSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgaWYgKHZpZXdTY2FsZSA8PSAwIHx8IGlzbmFuKHZpZXdTY2FsZSkgfHwgaXNpbmYodmlld1Nj
YWxlKSkKLSAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0
aW9uIGZvcm1hdDpAIlZpZXcgc2NhbGUgc2hvdWxkIGJlIGEgcG9zaXRpdmUgbnVtYmVyIl07Ci0K
LSAgICBfZGF0YS0+X3BhZ2UtPnNjYWxlVmlldyh2aWV3U2NhbGUpOwotICAgIFtfZGF0YS0+X2xh
eW91dFN0cmF0ZWd5IGRpZENoYW5nZVZpZXdTY2FsZV07CisgICAgX2RhdGEtPl9pbXBsLT5zZXRW
aWV3U2NhbGUodmlld1NjYWxlKTsKIH0KIAogLSAodm9pZClfZGlzcGF0Y2hTZXRUb3BDb250ZW50
SW5zZXQKQEAgLTQ1MjYsOSArNDI3OSw5IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlx
dWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiB7CiAgICAgLy8gVGhpcyBTUEkgaXMg
b25seSB1c2VkIG9uIDEwLjkgYW5kIGJlbG93LCBhbmQgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhl
IGZlbmNlLWJhc2VkIGRyYXdpbmcgYXJlYSBzaXplIHN5bmNocm9uaXphdGlvbiBpbiAxMC4xMCsu
CiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDkwCi0gICAgaWYgKF9k
YXRhLT5fY2xpcHNUb1Zpc2libGVSZWN0KQotICAgICAgICBbc2VsZiBfdXBkYXRlVmlld0V4cG9z
ZWRSZWN0XTsKLSAgICBbc2VsZiBfc2V0RHJhd2luZ0FyZWFTaXplOnNpemVdOworICAgIGlmIChf
ZGF0YS0+X2ltcGwtPmNsaXBzVG9WaXNpYmxlUmVjdCgpKQorICAgICAgICBfZGF0YS0+X2ltcGwt
PnVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgpOworICAgIF9kYXRhLT5faW1wbC0+c2V0RHJhd2luZ0Fy
ZWFTaXplKE5TU2l6ZVRvQ0dTaXplKHNpemUpKTsKIAogICAgIC8vIElmIGEgZ2VvbWV0cnkgdXBk
YXRlIGlzIHBlbmRpbmcgdGhlIG5ldyB1cGRhdGUgd29uJ3QgYmUgc2VudC4gUG9sbCB3aXRob3V0
IHdhaXRpbmcgZm9yIGFueQogICAgIC8vIHBlbmRpbmcgZGlkLXVwZGF0ZSBtZXNzYWdlIG5vdywg
c3VjaCB0aGF0IHRoZSBuZXcgdXBkYXRlIGNhbiBiZSBzZW50LiBXZSBkbyBzbyBhZnRlciBzZXR0
aW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJ
bnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJu
YWwuaAppbmRleCAyZmFlN2E2Li45NzAwY2FmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKQEAgLTc3LDcgKzc3LDYgQEAgc3RydWN0
IEVkaXRvclN0YXRlOwogI2VuZGlmCiAKIC0gKHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OkRyYXdp
bmdBcmVhUHJveHk+KV9jcmVhdGVEcmF3aW5nQXJlYVByb3h5OwotLSAoQk9PTClfaXNGb2N1c2Vk
OwogLSAodm9pZClfcHJvY2Vzc0RpZEV4aXQ7CiAtICh2b2lkKV9wYWdlQ2xvc2VkOwogLSAodm9p
ZClfZGlkUmVsYXVuY2hQcm9jZXNzOwpAQCAtMTEwLDkgKzEwOSw2IEBAIHN0cnVjdCBFZGl0b3JT
dGF0ZTsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogLSAodm9pZClfc2V0UHJvbWlz
ZWREYXRhRm9yQXR0YWNobWVudDooTlNTdHJpbmcgKilmaWxlbmFtZSB3aXRoRXh0ZW5zaW9uOihO
U1N0cmluZyAqKWV4dGVuc2lvbiB3aXRoVGl0bGU6KE5TU3RyaW5nICopdGl0bGUgd2l0aFVSTDoo
TlNTdHJpbmcgKil1cmwgd2l0aFZpc2libGVVUkw6KE5TU3RyaW5nICopdmlzaWJsZVVybCBmb3JQ
YXN0ZWJvYXJkOihOU1N0cmluZyAqKXBhc3RlYm9hcmROYW1lOwogI2VuZGlmCi0tICh2b2lkKV91
cGRhdGVTZWN1cmVJbnB1dFN0YXRlOwotLSAodm9pZClfcmVzZXRTZWN1cmVJbnB1dFN0YXRlOwot
LSAodm9pZClfbm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbjsKIAog
LSAoV2ViS2l0OjpDb2xvclNwYWNlRGF0YSlfY29sb3JTcGFjZTsKIApAQCAtMTIzLDcgKzExOSw2
IEBAIHN0cnVjdCBFZGl0b3JTdGF0ZTsKIC0gKEJPT0wpX3N1cHByZXNzVmlzaWJpbGl0eVVwZGF0
ZXM7CiAKIC0gKHZvaWQpX2RpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFt
ZTsKLS0gKHZvaWQpX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWU7CiAtICh2b2lkKV9kaWRGaW5p
c2hMb2FkRm9yTWFpbkZyYW1lOwogLSAodm9pZClfZGlkRmFpbExvYWRGb3JNYWluRnJhbWU7CiAt
ICh2b2lkKV9kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lOihXZWJLaXQ6OlNh
bWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKXR5cGU7CkBAIC0xNTgsMTMgKzE1Myw2IEBAIHN0cnVj
dCBFZGl0b3JTdGF0ZTsKIAogQHByb3BlcnR5IChyZWFkb25seSkgTlNXaW5kb3cgKl90YXJnZXRX
aW5kb3dGb3JNb3ZlUHJlcGFyYXRpb247CiAKLS8vIEZvciBXS1ZpZXdMYXlvdXRTdHJhdGVneSBh
bmQgc3ViY2xhc3NlczoKLS0gKHZvaWQpX3NldERyYXdpbmdBcmVhU2l6ZTooTlNTaXplKXNpemU7
Ci0tICh2b2lkKV91cGRhdGVWaWV3RXhwb3NlZFJlY3Q7Ci0tIChDQUxheWVyICopX3Jvb3RMYXll
cjsKLQotLSAodm9pZClfdXBkYXRlU3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlczsKLQogI2lm
IFdLX0FQSV9FTkFCTEVECiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS1JlbW90
ZU9iamVjdFJlZ2lzdHJ5ICpfcmVtb3RlT2JqZWN0UmVnaXN0cnk7CiAjZW5kaWYKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMTZlOGRlNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC0wLDAgKzEsMTMxIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2lmbmRlZiBXZWJWaWV3SW1wbF9oCisjZGVmaW5lIFdlYlZpZXdJbXBsX2gKKwor
I2ltcG9ydCAiV0tMYXlvdXRNb2RlLmgiCisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK09C
SkNfQ0xBU1MgTlNWaWV3OworT0JKQ19DTEFTUyBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
OworT0JKQ19DTEFTUyBXS1ZpZXdMYXlvdXRTdHJhdGVneTsKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsKKworY2xhc3MgV2ViVmlld0ltcGwgeworICAgIFdURl9N
QUtFX0ZBU1RfQUxMT0NBVEVEOworICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYlZpZXdJbXBs
KTsKK3B1YmxpYzoKKyAgICBXZWJWaWV3SW1wbChOU1ZpZXcgKiwgV2ViUGFnZVByb3h5Jik7CisK
KyAgICB+V2ViVmlld0ltcGwoKTsKKworICAgIHZvaWQgc2V0RHJhd3NCYWNrZ3JvdW5kKGJvb2wp
OworICAgIGJvb2wgZHJhd3NCYWNrZ3JvdW5kKCkgY29uc3Q7CisgICAgdm9pZCBzZXREcmF3c1Ry
YW5zcGFyZW50QmFja2dyb3VuZChib29sKTsKKyAgICBib29sIGRyYXdzVHJhbnNwYXJlbnRCYWNr
Z3JvdW5kKCkgY29uc3Q7CisKKyAgICBib29sIGFjY2VwdHNGaXJzdFJlc3BvbmRlcigpOworICAg
IGJvb2wgYmVjb21lRmlyc3RSZXNwb25kZXIoKTsKKyAgICBib29sIHJlc2lnbkZpcnN0UmVzcG9u
ZGVyKCk7CisgICAgYm9vbCBpc0ZvY3VzZWQoKSBjb25zdDsKKworICAgIHZvaWQgdmlld1dpbGxT
dGFydExpdmVSZXNpemUoKTsKKyAgICB2b2lkIHZpZXdEaWRFbmRMaXZlUmVzaXplKCk7CisKKyAg
ICB2b2lkIHNldEZyYW1lU2l6ZShDR1NpemUpOworICAgIHZvaWQgZGlzYWJsZUZyYW1lU2l6ZVVw
ZGF0ZXMoKTsKKyAgICB2b2lkIGVuYWJsZUZyYW1lU2l6ZVVwZGF0ZXMoKTsKKyAgICBib29sIGZy
YW1lU2l6ZVVwZGF0ZXNEaXNhYmxlZCgpIGNvbnN0OworICAgIHZvaWQgc2V0RnJhbWVBbmRTY3Jv
bGxCeShDR1JlY3QsIENHU2l6ZSk7CisKKyAgICB2b2lkIHNldEZpeGVkTGF5b3V0U2l6ZShDR1Np
emUpOworICAgIENHU2l6ZSBmaXhlZExheW91dFNpemUoKSBjb25zdDsKKworICAgIHZvaWQgc2V0
RHJhd2luZ0FyZWFTaXplKENHU2l6ZSk7CisKKyAgICB2b2lkIHNldENvbnRlbnRQcmVwYXJhdGlv
blJlY3QoQ0dSZWN0KTsKKyAgICB2b2lkIHVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgpOworICAgIHZv
aWQgc2V0Q2xpcHNUb1Zpc2libGVSZWN0KGJvb2wpOworICAgIGJvb2wgY2xpcHNUb1Zpc2libGVS
ZWN0KCkgY29uc3QgeyByZXR1cm4gbV9jbGlwc1RvVmlzaWJsZVJlY3Q7IH0KKworICAgIHZvaWQg
c2V0SW50cmluc2ljQ29udGVudFNpemUoQ0dTaXplKTsKKyAgICBDR1NpemUgaW50cmluc2ljQ29u
dGVudFNpemUoKSBjb25zdDsKKworICAgIHZvaWQgc2V0Vmlld1NjYWxlKENHRmxvYXQpOworICAg
IENHRmxvYXQgdmlld1NjYWxlKCkgY29uc3Q7CisKKyAgICBXS0xheW91dE1vZGUgbGF5b3V0TW9k
ZSgpIGNvbnN0OworICAgIHZvaWQgc2V0TGF5b3V0TW9kZShXS0xheW91dE1vZGUpOworICAgIHZv
aWQgdXBkYXRlU3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcygpOworCisgICAgdm9pZCB1cGRh
dGVTZWN1cmVJbnB1dFN0YXRlKCk7CisgICAgdm9pZCByZXNldFNlY3VyZUlucHV0U3RhdGUoKTsK
KyAgICBib29sIGluU2VjdXJlSW5wdXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1faW5TZWN1cmVJ
bnB1dFN0YXRlOyB9CisgICAgdm9pZCBub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENv
bXBvc2l0aW9uKCk7CisKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgYm9vbCBoYXNG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpIGNvbnN0OworICAgIFdLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIgKmZ1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKCk7CisgICAgdm9pZCBjbG9z
ZUZ1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKCk7CisjZW5kaWYKKyAgICBOU1ZpZXcgKmZ1bGxT
Y3JlZW5QbGFjZWhvbGRlclZpZXcoKTsKKyAgICBOU1dpbmRvdyAqY3JlYXRlRnVsbFNjcmVlbldp
bmRvdygpOworCitwcml2YXRlOgorICAgIGJvb2wgc3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2Rl
cygpIGNvbnN0OworCisgICAgTlNWaWV3ICptX3ZpZXc7CisgICAgV2ViUGFnZVByb3h5JiBtX3Bh
Z2U7CisKKyAgICBib29sIG1fd2lsbEJlY29tZUZpcnN0UmVzcG9uZGVyQWdhaW4geyBmYWxzZSB9
OworICAgIGJvb2wgbV9pbkJlY29tZUZpcnN0UmVzcG9uZGVyIHsgZmFsc2UgfTsKKyAgICBib29s
IG1faW5SZXNpZ25GaXJzdFJlc3BvbmRlciB7IGZhbHNlIH07CisKKyAgICBDR1JlY3QgbV9jb250
ZW50UHJlcGFyYXRpb25SZWN0OworICAgIGJvb2wgbV91c2VDb250ZW50UHJlcGFyYXRpb25SZWN0
Rm9yVmlzaWJsZVJlY3QgeyBmYWxzZSB9OworICAgIGJvb2wgbV9jbGlwc1RvVmlzaWJsZVJlY3Qg
eyBmYWxzZSB9OworCisgICAgQ0dTaXplIG1fcmVzaXplU2Nyb2xsT2Zmc2V0OworCisgICAgQ0dT
aXplIG1faW50cmluc2ljQ29udGVudFNpemU7CisKKyAgICBSZXRhaW5QdHI8V0tWaWV3TGF5b3V0
U3RyYXRlZ3k+IG1fbGF5b3V0U3RyYXRlZ3k7CisgICAgV0tMYXlvdXRNb2RlIG1fbGFzdFJlcXVl
c3RlZExheW91dE1vZGUgeyBrV0tMYXlvdXRNb2RlVmlld1NpemUgfTsKKyAgICBDR0Zsb2F0IG1f
bGFzdFJlcXVlc3RlZFZpZXdTY2FsZSB7IDEgfTsKKworICAgIGJvb2wgbV9pblNlY3VyZUlucHV0
U3RhdGUgeyBmYWxzZSB9OworCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIFJldGFp
blB0cjxXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyPiBtX2Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyOworI2VuZGlmCit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBXZWJWaWV3SW1wbF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uODM5NmY3Mwot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbQpAQCAtMCwwICsxLDQzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5o
IgorI2ltcG9ydCAiV2ViVmlld0ltcGwuaCIKKworI2ltcG9ydCAiR2VuZXJpY0NhbGxiYWNrLmgi
CisjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50Lmgi
CisjaW1wb3J0ICJXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmgiCisjaW1wb3J0ICJXS1Zp
ZXdMYXlvdXRTdHJhdGVneS5oIgorI2ltcG9ydCAiV0tXZWJWaWV3LmgiCisjaW1wb3J0ICJXZWJQ
YWdlUHJveHkuaCIKKyNpbXBvcnQgPEhJVG9vbGJveC9DYXJib25FdmVudHNDb3JlLmg+CisjaW1w
b3J0IDxXZWJDb3JlL0tleXByZXNzQ29tbWFuZC5oPgorI2ltcG9ydCA8V2ViQ29yZS9OU1dpbmRv
d1NQSS5oPgorI2ltcG9ydCA8V2ViQ29yZS9WaWV3U3RhdGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
V2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2Vi
Q29yZUZ1bGxTY3JlZW5XaW5kb3cuaD4KKworQGludGVyZmFjZSBOU1ZpZXcgKFN0dXBpZEhhY2tV
bnRpbElGaWd1cmVPdXRIb3dUb1N1cGVyKQorLSAoTlNUZXh0SW5wdXRDb250ZXh0ICopX3N1cGVy
SW5wdXRDb250ZXh0OworQGVuZAorCituYW1lc3BhY2UgV2ViS2l0IHsKKworV2ViVmlld0ltcGw6
OldlYlZpZXdJbXBsKE5TVmlldyAqdmlldywgV2ViUGFnZVByb3h5JiBwYWdlKQorICAgIDogbV92
aWV3KHZpZXcpCisgICAgLCBtX3BhZ2UocGFnZSkKKyAgICAsIG1faW50cmluc2ljQ29udGVudFNp
emUoTlNNYWtlU2l6ZShOU1ZpZXdOb0luc3RyaW5zaWNNZXRyaWMsIE5TVmlld05vSW5zdHJpbnNp
Y01ldHJpYykpCisgICAgLCBtX2xheW91dFN0cmF0ZWd5KFtXS1ZpZXdMYXlvdXRTdHJhdGVneSBs
YXlvdXRTdHJhdGVneVdpdGhQYWdlOm1fcGFnZSB2aWV3Om1fdmlldyB2aWV3SW1wbDoqdGhpcyBt
b2RlOmtXS0xheW91dE1vZGVWaWV3U2l6ZV0pCit7Cit9CisKK1dlYlZpZXdJbXBsOjp+V2ViVmll
d0ltcGwoKQoreworICAgIEFTU0VSVCghbV9pblNlY3VyZUlucHV0U3RhdGUpOworCisgICAgW21f
bGF5b3V0U3RyYXRlZ3kgaW52YWxpZGF0ZV07Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldERy
YXdzQmFja2dyb3VuZChib29sIGRyYXdzQmFja2dyb3VuZCkKK3sKKyAgICBtX3BhZ2Uuc2V0RHJh
d3NCYWNrZ3JvdW5kKGRyYXdzQmFja2dyb3VuZCk7Cit9CisKK2Jvb2wgV2ViVmlld0ltcGw6OmRy
YXdzQmFja2dyb3VuZCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS5kcmF3c0JhY2tncm91
bmQoKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0RHJhd3NUcmFuc3BhcmVudEJhY2tncm91
bmQoYm9vbCBkcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCkKK3sKKyAgICBtX3BhZ2Uuc2V0RHJh
d3NUcmFuc3BhcmVudEJhY2tncm91bmQoZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQpOworfQor
Citib29sIFdlYlZpZXdJbXBsOjpkcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcGFnZS5kcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCgpOworfQorCiti
b29sIFdlYlZpZXdJbXBsOjphY2NlcHRzRmlyc3RSZXNwb25kZXIoKQoreworICAgIHJldHVybiB0
cnVlOworfQorCitib29sIFdlYlZpZXdJbXBsOjpiZWNvbWVGaXJzdFJlc3BvbmRlcigpCit7Cisg
ICAgLy8gSWYgd2UganVzdCBiZWNhbWUgZmlyc3QgcmVzcG9uZGVyIGFnYWluLCB0aGVyZSBpcyBu
byBuZWVkIHRvIGRvIGFueXRoaW5nLAorICAgIC8vIHNpbmNlIHJlc2lnbkZpcnN0UmVzcG9uZGVy
IGhhcyBjb3JyZWN0bHkgZGV0ZWN0ZWQgdGhpcyBzaXR1YXRpb24uCisgICAgaWYgKG1fd2lsbEJl
Y29tZUZpcnN0UmVzcG9uZGVyQWdhaW4pIHsKKyAgICAgICAgbV93aWxsQmVjb21lRmlyc3RSZXNw
b25kZXJBZ2FpbiA9IE5POworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisKKyAgICBOU1Nl
bGVjdGlvbkRpcmVjdGlvbiBkaXJlY3Rpb24gPSBbW21fdmlldyB3aW5kb3ddIGtleVZpZXdTZWxl
Y3Rpb25EaXJlY3Rpb25dOworCisgICAgbV9pbkJlY29tZUZpcnN0UmVzcG9uZGVyID0gdHJ1ZTsK
KworICAgIHVwZGF0ZVNlY3VyZUlucHV0U3RhdGUoKTsKKyAgICBtX3BhZ2Uudmlld1N0YXRlRGlk
Q2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNGb2N1c2VkKTsKKyAgICAvLyBSZXN0b3JlIHRo
ZSBzZWxlY3Rpb24gaW4gdGhlIGVkaXRhYmxlIHJlZ2lvbiBpZiByZXNpZ25pbmcgZmlyc3QgcmVz
cG9uZGVyIGNsZWFyZWQgc2VsZWN0aW9uLgorICAgIG1fcGFnZS5yZXN0b3JlU2VsZWN0aW9uSW5G
b2N1c2VkRWRpdGFibGVFbGVtZW50KCk7CisKKyAgICBtX2luQmVjb21lRmlyc3RSZXNwb25kZXIg
PSBmYWxzZTsKKworICAgIGlmIChkaXJlY3Rpb24gIT0gTlNEaXJlY3RTZWxlY3Rpb24pIHsKKyAg
ICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNBcHAgY3VycmVudEV2ZW50XTsKKyAgICAgICAgTlNF
dmVudCAqa2V5Ym9hcmRFdmVudCA9IG5pbDsKKyAgICAgICAgaWYgKFtldmVudCB0eXBlXSA9PSBO
U0tleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TS2V5VXApCisgICAgICAgICAgICBrZXlib2Fy
ZEV2ZW50ID0gZXZlbnQ7CisgICAgICAgIG1fcGFnZS5zZXRJbml0aWFsRm9jdXMoZGlyZWN0aW9u
ID09IE5TU2VsZWN0aW5nTmV4dCwga2V5Ym9hcmRFdmVudCAhPSBuaWwsIE5hdGl2ZVdlYktleWJv
YXJkRXZlbnQoa2V5Ym9hcmRFdmVudCwgZmFsc2UsIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0Nv
bW1hbmQ+KCkpLCBbXShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IpIHsgfSk7CisgICAgfQor
ICAgIHJldHVybiB0cnVlOworfQorCitib29sIFdlYlZpZXdJbXBsOjpyZXNpZ25GaXJzdFJlc3Bv
bmRlcigpCit7CisjaWYgV0tfQVBJX0VOQUJMRUQKKyAgICAvLyBQcmVkaWN0IHRoZSBjYXNlIHdo
ZXJlIHdlIGFyZSBsb3NpbmcgZmlyc3QgcmVzcG9uZGVyIHN0YXR1cyBvbmx5IHRvCisgICAgLy8g
Z2FpbiBpdCBiYWNrIGFnYWluLiBXZSB3YW50IHJlc2lnbkZpcnN0UmVzcG9uZGVyIHRvIGRvIG5v
dGhpbmcgaW4gdGhhdCBjYXNlLgorICAgIGlkIG5leHRSZXNwb25kZXIgPSBbW21fdmlldyB3aW5k
b3ddIF9uZXdGaXJzdFJlc3BvbmRlckFmdGVyUmVzaWduaW5nXTsKKworICAgIC8vIEZJWE1FOiBU
aGlzIHdpbGwgcHJvYmFibHkgbmVlZCB0byBjaGFuZ2Ugb25jZSBXS1dlYlZpZXcgZG9lc24ndCBj
b250YWluIGEgV0tWaWV3LgorICAgIGlmIChbbmV4dFJlc3BvbmRlciBpc0tpbmRPZkNsYXNzOltX
S1dlYlZpZXcgY2xhc3NdXSAmJiBtX3ZpZXcuc3VwZXJ2aWV3ID09IG5leHRSZXNwb25kZXIpIHsK
KyAgICAgICAgbV93aWxsQmVjb21lRmlyc3RSZXNwb25kZXJBZ2FpbiA9IHRydWU7CisgICAgICAg
IHJldHVybiB0cnVlOworICAgIH0KKyNlbmRpZgorCisgICAgbV93aWxsQmVjb21lRmlyc3RSZXNw
b25kZXJBZ2FpbiA9IE5POworICAgIG1faW5SZXNpZ25GaXJzdFJlc3BvbmRlciA9IHRydWU7CisK
KyNpZiBVU0UoQVNZTkNfTlNURVhUSU5QVVRDTElFTlQpCisgICAgbV9wYWdlLmNvbmZpcm1Db21w
b3NpdGlvbkFzeW5jKCk7CisjZWxzZQorICAgIGlmIChtX3BhZ2UuZWRpdG9yU3RhdGUoKS5oYXND
b21wb3NpdGlvbiAmJiAhbV9wYWdlLmVkaXRvclN0YXRlKCkuc2hvdWxkSWdub3JlQ29tcG9zaXRp
b25TZWxlY3Rpb25DaGFuZ2UpCisgICAgICAgIG1fcGFnZS5jYW5jZWxDb21wb3NpdGlvbigpOwor
I2VuZGlmCisKKyAgICBub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9u
KCk7CisKKyAgICByZXNldFNlY3VyZUlucHV0U3RhdGUoKTsKKworICAgIGlmICghbV9wYWdlLm1h
aW50YWluc0luYWN0aXZlU2VsZWN0aW9uKCkpCisgICAgICAgIG1fcGFnZS5jbGVhclNlbGVjdGlv
bigpOworCisgICAgbV9wYWdlLnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6
OklzRm9jdXNlZCk7CisgICAgCisgICAgbV9pblJlc2lnbkZpcnN0UmVzcG9uZGVyID0gZmFsc2U7
CisgICAgCisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgV2ViVmlld0ltcGw6OmlzRm9jdXNl
ZCgpIGNvbnN0Cit7CisgICAgaWYgKG1faW5CZWNvbWVGaXJzdFJlc3BvbmRlcikKKyAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgaWYgKG1faW5SZXNpZ25GaXJzdFJlc3BvbmRlcikKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiBtX3ZpZXcud2luZG93LmZpcnN0UmVzcG9uZGVyID09
IG1fdmlldzsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6dmlld1dpbGxTdGFydExpdmVSZXNpemUo
KQoreworICAgIG1fcGFnZS52aWV3V2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpOworCisgICAgW21fbGF5
b3V0U3RyYXRlZ3kgd2lsbFN0YXJ0TGl2ZVJlc2l6ZV07Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6
OnZpZXdEaWRFbmRMaXZlUmVzaXplKCkKK3sKKyAgICBtX3BhZ2Uudmlld1dpbGxFbmRMaXZlUmVz
aXplKCk7CisKKyAgICBbbV9sYXlvdXRTdHJhdGVneSBkaWRFbmRMaXZlUmVzaXplXTsKK30KKwor
dm9pZCBXZWJWaWV3SW1wbDo6c2V0RnJhbWVTaXplKENHU2l6ZSkKK3sKKyAgICBbbV9sYXlvdXRT
dHJhdGVneSBkaWRDaGFuZ2VGcmFtZVNpemVdOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpkaXNh
YmxlRnJhbWVTaXplVXBkYXRlcygpCit7CisgICAgW21fbGF5b3V0U3RyYXRlZ3kgZGlzYWJsZUZy
YW1lU2l6ZVVwZGF0ZXNdOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjplbmFibGVGcmFtZVNpemVV
cGRhdGVzKCkKK3sKKyAgICBbbV9sYXlvdXRTdHJhdGVneSBlbmFibGVGcmFtZVNpemVVcGRhdGVz
XTsKK30KKworYm9vbCBXZWJWaWV3SW1wbDo6ZnJhbWVTaXplVXBkYXRlc0Rpc2FibGVkKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gW21fbGF5b3V0U3RyYXRlZ3kgZnJhbWVTaXplVXBkYXRlc0Rpc2Fi
bGVkXTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0RnJhbWVBbmRTY3JvbGxCeShDR1JlY3Qg
ZnJhbWUsIENHU2l6ZSBvZmZzZXQpCit7CisgICAgQVNTRVJUKENHU2l6ZUVxdWFsVG9TaXplKG1f
cmVzaXplU2Nyb2xsT2Zmc2V0LCBDR1NpemVaZXJvKSk7CisKKyAgICBtX3Jlc2l6ZVNjcm9sbE9m
ZnNldCA9IG9mZnNldDsKKyAgICBtX3ZpZXcuZnJhbWUgPSBmcmFtZTsKK30KKwordm9pZCBXZWJW
aWV3SW1wbDo6c2V0Rml4ZWRMYXlvdXRTaXplKENHU2l6ZSBmaXhlZExheW91dFNpemUpCit7Cisg
ICAgbV9wYWdlLnNldEZpeGVkTGF5b3V0U2l6ZShXZWJDb3JlOjpleHBhbmRlZEludFNpemUoV2Vi
Q29yZTo6RmxvYXRTaXplKGZpeGVkTGF5b3V0U2l6ZSkpKTsKK30KKworQ0dTaXplIFdlYlZpZXdJ
bXBsOjpmaXhlZExheW91dFNpemUoKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UuZml4ZWRM
YXlvdXRTaXplKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldERyYXdpbmdBcmVhU2l6ZShD
R1NpemUgc2l6ZSkKK3sKKyAgICBpZiAoIW1fcGFnZS5kcmF3aW5nQXJlYSgpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBtX3BhZ2UuZHJhd2luZ0FyZWEoKS0+c2V0U2l6ZShXZWJDb3JlOjpJbnRT
aXplKHNpemUpLCBXZWJDb3JlOjpJbnRTaXplKCksIFdlYkNvcmU6OkludFNpemUobV9yZXNpemVT
Y3JvbGxPZmZzZXQpKTsKKyAgICBtX3Jlc2l6ZVNjcm9sbE9mZnNldCA9IENHU2l6ZVplcm87Cit9
CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldENvbnRlbnRQcmVwYXJhdGlvblJlY3QoQ0dSZWN0IHJl
Y3QpCit7CisgICAgbV9jb250ZW50UHJlcGFyYXRpb25SZWN0ID0gcmVjdDsKKyAgICBtX3VzZUNv
bnRlbnRQcmVwYXJhdGlvblJlY3RGb3JWaXNpYmxlUmVjdCA9IHRydWU7Cit9CisKK3ZvaWQgV2Vi
Vmlld0ltcGw6OnVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgpCit7CisgICAgTlNSZWN0IGV4cG9zZWRS
ZWN0ID0gW21fdmlldyB2aXNpYmxlUmVjdF07CisKKyAgICBpZiAobV91c2VDb250ZW50UHJlcGFy
YXRpb25SZWN0Rm9yVmlzaWJsZVJlY3QpCisgICAgICAgIGV4cG9zZWRSZWN0ID0gTlNVbmlvblJl
Y3QobV9jb250ZW50UHJlcGFyYXRpb25SZWN0LCBleHBvc2VkUmVjdCk7CisKKyAgICBpZiAoYXV0
byBkcmF3aW5nQXJlYSA9IG1fcGFnZS5kcmF3aW5nQXJlYSgpKQorICAgICAgICBkcmF3aW5nQXJl
YS0+c2V0RXhwb3NlZFJlY3QobV9jbGlwc1RvVmlzaWJsZVJlY3QgPyBXZWJDb3JlOjpGbG9hdFJl
Y3QoZXhwb3NlZFJlY3QpIDogV2ViQ29yZTo6RmxvYXRSZWN0OjppbmZpbml0ZVJlY3QoKSk7Cit9
CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldENsaXBzVG9WaXNpYmxlUmVjdChib29sIGNsaXBzVG9W
aXNpYmxlUmVjdCkKK3sKKyAgICBtX2NsaXBzVG9WaXNpYmxlUmVjdCA9IGNsaXBzVG9WaXNpYmxl
UmVjdDsKKyAgICB1cGRhdGVWaWV3RXhwb3NlZFJlY3QoKTsKK30KKwordm9pZCBXZWJWaWV3SW1w
bDo6c2V0SW50cmluc2ljQ29udGVudFNpemUoQ0dTaXplIGludHJpbnNpY0NvbnRlbnRTaXplKQor
eworICAgIC8vIElmIHRoZSBpbnRyaW5zaWMgY29udGVudCBzaXplIGlzIGxlc3MgdGhhbiB0aGUg
bWluaW11bSBsYXlvdXQgd2lkdGgsIHRoZSBjb250ZW50IGZsb3dlZCB0byBmaXQsCisgICAgLy8g
c28gd2UgY2FuIHJlcG9ydCB0aGF0IHRoYXQgZGltZW5zaW9uIGlzIGZsZXhpYmxlLiBJZiBub3Qs
IHdlIG5lZWQgdG8gcmVwb3J0IG91ciBpbnRyaW5zaWMgd2lkdGgKKyAgICAvLyBzbyB0aGF0IGF1
dG9sYXlvdXQgd2lsbCBrbm93IHRvIHByb3ZpZGUgc3BhY2UgZm9yIHVzLgorCisgICAgTlNTaXpl
IGludHJpbnNpY0NvbnRlbnRTaXplQWNrbm93bGVkZ2luZ0ZsZXhpYmxlV2lkdGggPSBpbnRyaW5z
aWNDb250ZW50U2l6ZTsKKyAgICBpZiAoaW50cmluc2ljQ29udGVudFNpemUud2lkdGggPCBtX3Bh
Z2UubWluaW11bUxheW91dFNpemUoKS53aWR0aCgpKQorICAgICAgICBpbnRyaW5zaWNDb250ZW50
U2l6ZUFja25vd2xlZGdpbmdGbGV4aWJsZVdpZHRoLndpZHRoID0gTlNWaWV3Tm9JbnN0cmluc2lj
TWV0cmljOworCisgICAgbV9pbnRyaW5zaWNDb250ZW50U2l6ZSA9IGludHJpbnNpY0NvbnRlbnRT
aXplQWNrbm93bGVkZ2luZ0ZsZXhpYmxlV2lkdGg7CisgICAgW21fdmlldyBpbnZhbGlkYXRlSW50
cmluc2ljQ29udGVudFNpemVdOworfQorCitDR1NpemUgV2ViVmlld0ltcGw6OmludHJpbnNpY0Nv
bnRlbnRTaXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9pbnRyaW5zaWNDb250ZW50U2l6ZTsK
K30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0Vmlld1NjYWxlKENHRmxvYXQgdmlld1NjYWxlKQor
eworICAgIG1fbGFzdFJlcXVlc3RlZFZpZXdTY2FsZSA9IHZpZXdTY2FsZTsKKworICAgIGlmICgh
c3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcygpICYmIHZpZXdTY2FsZSAhPSAxKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAodmlld1NjYWxlIDw9IDAgfHwgaXNuYW4odmlld1NjYWxlKSB8
fCBpc2luZih2aWV3U2NhbGUpKQorICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlk
QXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiVmlldyBzY2FsZSBzaG91bGQgYmUgYSBwb3NpdGl2
ZSBudW1iZXIiXTsKKworICAgIG1fcGFnZS5zY2FsZVZpZXcodmlld1NjYWxlKTsKKyAgICBbbV9s
YXlvdXRTdHJhdGVneSBkaWRDaGFuZ2VWaWV3U2NhbGVdOworfQorCitDR0Zsb2F0IFdlYlZpZXdJ
bXBsOjp2aWV3U2NhbGUoKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2Uudmlld1NjYWxlRmFj
dG9yKCk7Cit9CisKK1dLTGF5b3V0TW9kZSBXZWJWaWV3SW1wbDo6bGF5b3V0TW9kZSgpIGNvbnN0
Cit7CisgICAgcmV0dXJuIFttX2xheW91dFN0cmF0ZWd5IGxheW91dE1vZGVdOworfQorCit2b2lk
IFdlYlZpZXdJbXBsOjpzZXRMYXlvdXRNb2RlKFdLTGF5b3V0TW9kZSBsYXlvdXRNb2RlKQorewor
ICAgIG1fbGFzdFJlcXVlc3RlZExheW91dE1vZGUgPSBsYXlvdXRNb2RlOworCisgICAgaWYgKCFz
dXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCkgJiYgbGF5b3V0TW9kZSAhPSBrV0tMYXlvdXRN
b2RlVmlld1NpemUpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChsYXlvdXRNb2RlID09IFtt
X2xheW91dFN0cmF0ZWd5IGxheW91dE1vZGVdKQorICAgICAgICByZXR1cm47CisKKyAgICBbbV9s
YXlvdXRTdHJhdGVneSB3aWxsQ2hhbmdlTGF5b3V0U3RyYXRlZ3ldOworICAgIG1fbGF5b3V0U3Ry
YXRlZ3kgPSBbV0tWaWV3TGF5b3V0U3RyYXRlZ3kgbGF5b3V0U3RyYXRlZ3lXaXRoUGFnZTptX3Bh
Z2UgdmlldzptX3ZpZXcgdmlld0ltcGw6KnRoaXMgbW9kZTpsYXlvdXRNb2RlXTsKK30KKworYm9v
bCBXZWJWaWV3SW1wbDo6c3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcygpIGNvbnN0Cit7Cisg
ICAgaWYgKFttX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGlzRnVsbFNjcmVlbl0pCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wYWdlLm1h
aW5GcmFtZSgpOworICAgIGlmICghZnJhbWUpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAg
Ly8gSWYgd2UgaGF2ZSBhIHBsdWdpbiBkb2N1bWVudCBpbiB0aGUgbWFpbiBmcmFtZSwgYXZvaWQg
dXNpbmcgY3VzdG9tIFdLTGF5b3V0TW9kZXMKKyAgICAvLyBhbmQgZmFsbCBiYWNrIHRvIHRoZSBk
ZWZhdWx0cywgYmVjYXVzZSB0aGVyZSdzIGEgZ29vZCBjaGFuY2UgdGhhdCBpdCB3b24ndCB3b3Jr
IChlLmcuIHdpdGggUERGUGx1Z2luKS4KKyAgICBpZiAoZnJhbWUtPmNvbnRhaW5zUGx1Z2luRG9j
dW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisK
K3ZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZVN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMoKQor
eworICAgIGlmICghc3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcygpKSB7CisgICAgICAgIFdL
TGF5b3V0TW9kZSBvbGRSZXF1ZXN0ZWRMYXlvdXRNb2RlID0gbV9sYXN0UmVxdWVzdGVkTGF5b3V0
TW9kZTsKKyAgICAgICAgQ0dGbG9hdCBvbGRSZXF1ZXN0ZWRWaWV3U2NhbGUgPSBtX2xhc3RSZXF1
ZXN0ZWRWaWV3U2NhbGU7CisgICAgICAgIHNldFZpZXdTY2FsZSgxKTsKKyAgICAgICAgc2V0TGF5
b3V0TW9kZShrV0tMYXlvdXRNb2RlVmlld1NpemUpOworCisgICAgICAgIC8vIFRoZSAnbGFzdCBy
ZXF1ZXN0ZWQnIHBhcmFtZXRlcnMgd2lsbCBoYXZlIGJlZW4gb3ZlcndyaXR0ZW4gYnkgc2V0dGlu
ZyB0aGVtIGFib3ZlLCBidXQgd2UgZG9uJ3QKKyAgICAgICAgLy8gd2FudCB0aGlzIHRvIGNvdW50
IGFzIGEgcmVxdWVzdCAob25seSBjaGFuZ2VzIGZyb20gdGhlIGNsaWVudCBjb3VudCksIHNvIHJl
c2V0IHRoZW0uCisgICAgICAgIG1fbGFzdFJlcXVlc3RlZExheW91dE1vZGUgPSBvbGRSZXF1ZXN0
ZWRMYXlvdXRNb2RlOworICAgICAgICBtX2xhc3RSZXF1ZXN0ZWRWaWV3U2NhbGUgPSBvbGRSZXF1
ZXN0ZWRWaWV3U2NhbGU7CisgICAgfSBlbHNlIGlmIChtX2xhc3RSZXF1ZXN0ZWRMYXlvdXRNb2Rl
ICE9IFttX2xheW91dFN0cmF0ZWd5IGxheW91dE1vZGVdKSB7CisgICAgICAgIHNldFZpZXdTY2Fs
ZShtX2xhc3RSZXF1ZXN0ZWRWaWV3U2NhbGUpOworICAgICAgICBzZXRMYXlvdXRNb2RlKG1fbGFz
dFJlcXVlc3RlZExheW91dE1vZGUpOworICAgIH0KK30KKwordm9pZCBXZWJWaWV3SW1wbDo6dXBk
YXRlU2VjdXJlSW5wdXRTdGF0ZSgpCit7CisgICAgaWYgKCFbW21fdmlldyB3aW5kb3ddIGlzS2V5
V2luZG93XSB8fCAhaXNGb2N1c2VkKCkpIHsKKyAgICAgICAgaWYgKG1faW5TZWN1cmVJbnB1dFN0
YXRlKSB7CisgICAgICAgICAgICBEaXNhYmxlU2VjdXJlRXZlbnRJbnB1dCgpOworICAgICAgICAg
ICAgbV9pblNlY3VyZUlucHV0U3RhdGUgPSBmYWxzZTsKKyAgICAgICAgfQorICAgICAgICByZXR1
cm47CisgICAgfQorICAgIC8vIFdLVmlldyBoYXMgYSBzaW5nbGUgaW5wdXQgY29udGV4dCBmb3Ig
YWxsIGVkaXRhYmxlIGFyZWFzIChleGNlcHQgZm9yIHBsdWctaW5zKS4KKyAgICBOU1RleHRJbnB1
dENvbnRleHQgKmNvbnRleHQgPSBbbV92aWV3IF9zdXBlcklucHV0Q29udGV4dF07CisgICAgYm9v
bCBpc0luUGFzc3dvcmRGaWVsZCA9IG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlzSW5QYXNzd29yZEZp
ZWxkOworCisgICAgaWYgKGlzSW5QYXNzd29yZEZpZWxkKSB7CisgICAgICAgIGlmICghbV9pblNl
Y3VyZUlucHV0U3RhdGUpCisgICAgICAgICAgICBFbmFibGVTZWN1cmVFdmVudElucHV0KCk7Cisg
ICAgICAgIHN0YXRpYyBOU0FycmF5ICpyb21hbklucHV0U291cmNlcyA9IFtbTlNBcnJheSBhbGxv
Y10gaW5pdFdpdGhPYmplY3RzOiZOU0FsbFJvbWFuSW5wdXRTb3VyY2VzTG9jYWxlSWRlbnRpZmll
ciBjb3VudDoxXTsKKyAgICAgICAgTE9HKFRleHRJbnB1dCwgIi0+IHNldEFsbG93ZWRJbnB1dFNv
dXJjZUxvY2FsZXM6cm9tYW5JbnB1dFNvdXJjZXMiKTsKKyAgICAgICAgW2NvbnRleHQgc2V0QWxs
b3dlZElucHV0U291cmNlTG9jYWxlczpyb21hbklucHV0U291cmNlc107CisgICAgfSBlbHNlIHsK
KyAgICAgICAgaWYgKG1faW5TZWN1cmVJbnB1dFN0YXRlKQorICAgICAgICAgICAgRGlzYWJsZVNl
Y3VyZUV2ZW50SW5wdXQoKTsKKyAgICAgICAgTE9HKFRleHRJbnB1dCwgIi0+IHNldEFsbG93ZWRJ
bnB1dFNvdXJjZUxvY2FsZXM6bmlsIik7CisgICAgICAgIFtjb250ZXh0IHNldEFsbG93ZWRJbnB1
dFNvdXJjZUxvY2FsZXM6bmlsXTsKKyAgICB9CisgICAgbV9pblNlY3VyZUlucHV0U3RhdGUgPSBp
c0luUGFzc3dvcmRGaWVsZDsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6cmVzZXRTZWN1cmVJbnB1
dFN0YXRlKCkKK3sKKyAgICBpZiAobV9pblNlY3VyZUlucHV0U3RhdGUpIHsKKyAgICAgICAgRGlz
YWJsZVNlY3VyZUV2ZW50SW5wdXQoKTsKKyAgICAgICAgbV9pblNlY3VyZUlucHV0U3RhdGUgPSBm
YWxzZTsKKyAgICB9Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6Om5vdGlmeUlucHV0Q29udGV4dEFi
b3V0RGlzY2FyZGVkQ29tcG9zaXRpb24oKQoreworICAgIC8vIDxyZGFyOi8vcHJvYmxlbS85MzU5
MDU1PjogLWRpc2NhcmRNYXJrZWRUZXh0IGNhbiBvbmx5IGJlIGNhbGxlZCBmb3IgYWN0aXZlIGNv
bnRleHRzLgorICAgIC8vIEZJWE1FOiBXZSBmYWlsIHRvIGV2ZXIgbm90aWZ5IHRoZSBpbnB1dCBj
b250ZXh0IGlmIHNvbWV0aGluZyAoZS5nLiBhIG5hdmlnYXRpb24pIGhhcHBlbnMgd2hpbGUgdGhl
IHdpbmRvdyBpcyBub3Qga2V5LgorICAgIC8vIFRoaXMgaXMgbm90IGEgcHJvYmxlbSB3aGVuIHRo
ZSB3aW5kb3cgaXMga2V5LCBiZWNhdXNlIHdlIGRpc2NhcmQgbWFya2VkIHRleHQgb24gcmVzaWdu
aW5nIGZpcnN0IHJlc3BvbmRlci4KKyAgICBpZiAoIVtbbV92aWV3IHdpbmRvd10gaXNLZXlXaW5k
b3ddIHx8IG1fdmlldyAhPSBbW21fdmlldyB3aW5kb3ddIGZpcnN0UmVzcG9uZGVyXSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgTE9HKFRleHRJbnB1dCwgIi0+IGRpc2NhcmRNYXJrZWRUZXh0Iik7
CisKKyAgICBbW21fdmlldyBfc3VwZXJJbnB1dENvbnRleHRdIGRpc2NhcmRNYXJrZWRUZXh0XTsg
Ly8gSW5mb3JtIHRoZSBpbnB1dCBtZXRob2QgdGhhdCB3ZSB3b24ndCBoYXZlIGFuIGlubGluZSBp
bnB1dCBhcmVhIGRlc3BpdGUgaGF2aW5nIGJlZW4gYXNrZWQgdG8uCit9CisKKyNpZiBFTkFCTEUo
RlVMTFNDUkVFTl9BUEkpCitib29sIFdlYlZpZXdJbXBsOjpoYXNGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlcigpIGNvbnN0Cit7CisgICAgcmV0dXJuICEhbV9mdWxsU2NyZWVuV2luZG93Q29udHJv
bGxlcjsKK30KKworV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciAqV2ViVmlld0ltcGw6OmZ1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKCkKK3sKKyAgICBpZiAoIW1fZnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIpCisgICAgICAgIG1fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgPSBhZG9w
dE5TKFtbV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhXaW5kb3c6
Y3JlYXRlRnVsbFNjcmVlbldpbmRvdygpIHdlYlZpZXc6bV92aWV3IHBhZ2U6bV9wYWdlXSk7CisK
KyAgICByZXR1cm4gbV9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5nZXQoKTsKK30KKwordm9p
ZCBXZWJWaWV3SW1wbDo6Y2xvc2VGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpCit7CisgICAg
aWYgKCFtX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKQorICAgICAgICByZXR1cm47CisKKyAg
ICBbbV9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBjbG9zZV07CisgICAgbV9mdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlciA9IG51bGxwdHI7Cit9CisjZW5kaWYKKworTlNWaWV3ICpXZWJWaWV3
SW1wbDo6ZnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldygpCit7CisjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQorICAgIGlmIChtX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyICYmIFttX2Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyIGlzRnVsbFNjcmVlbl0pCisgICAgICAgIHJldHVybiBbbV9m
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlciB3ZWJWaWV3UGxhY2Vob2xkZXJdOworI2VuZGlmCisg
ICAgcmV0dXJuIG5pbDsKK30KKworTlNXaW5kb3cgKldlYlZpZXdJbXBsOjpjcmVhdGVGdWxsU2Ny
ZWVuV2luZG93KCkKK3sKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgcmV0dXJuIFtb
W1dlYkNvcmVGdWxsU2NyZWVuV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0OltbTlNT
Y3JlZW4gbWFpblNjcmVlbl0gZnJhbWVdIHN0eWxlTWFzazooTlNCb3JkZXJsZXNzV2luZG93TWFz
ayB8IE5TUmVzaXphYmxlV2luZG93TWFzaykgYmFja2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVk
IGRlZmVyOk5PXSBhdXRvcmVsZWFzZV07CisjZWxzZQorICAgIHJldHVybiBuaWw7CisjZW5kaWYK
K30KKworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGwuaAppbmRleCA2NzUxNWUwLi5kMGYxNzBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCkBAIC00Myw2ICs0Myw4
IEBAIGNsYXNzIEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcjsKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKK2NsYXNzIFdlYlZpZXdJbXBsOworCiBjbGFzcyBQYWdlQ2xpZW50SW1wbCBmaW5hbCA6
IHB1YmxpYyBQYWdlQ2xpZW50CiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgICwgcHVi
bGljIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQKQEAgLTUxLDcgKzUzLDEwIEBAIGNs
YXNzIFBhZ2VDbGllbnRJbXBsIGZpbmFsIDogcHVibGljIFBhZ2VDbGllbnQKIHB1YmxpYzoKICAg
ICBQYWdlQ2xpZW50SW1wbChXS1ZpZXcgKiwgV0tXZWJWaWV3ICopOwogICAgIHZpcnR1YWwgflBh
Z2VDbGllbnRJbXBsKCk7Ci0gICAgCisKKyAgICAvLyBGSVhNRTogRXZlbnR1YWxseSBXZWJWaWV3
SW1wbCBzaG91bGQgYmVjb21lIHRoZSBQYWdlQ2xpZW50LgorICAgIHZvaWQgc2V0SW1wbChXZWJW
aWV3SW1wbCYgaW1wbCkgeyBtX2ltcGwgPSAmaW1wbDsgfQorCiAgICAgdm9pZCB2aWV3V2lsbE1v
dmVUb0Fub3RoZXJXaW5kb3coKTsKIAogcHJpdmF0ZToKQEAgLTIwOCw2ICsyMTMsNyBAQCBwcml2
YXRlOgogCiAgICAgV0tWaWV3ICptX3drVmlldzsKICAgICBXS1dlYlZpZXcgKm1fd2ViVmlldzsK
KyAgICBXZWJWaWV3SW1wbCogbV9pbXBsIHsgbnVsbHB0ciB9OwogICAgIFJldGFpblB0cjxXS0Vk
aXRvclVuZG9UYXJnZXRPYmpDPiBtX3VuZG9UYXJnZXQ7CiAjaWYgVVNFKEFVVE9DT1JSRUNUSU9O
X1BBTkVMKQogICAgIENvcnJlY3Rpb25QYW5lbCBtX2NvcnJlY3Rpb25QYW5lbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCmluZGV4IGVkMjMwNDgu
Ljk2MDE2YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50
SW1wbC5tbQpAQCAtNDYsNiArNDYsNyBAQAogI2ltcG9ydCAiV2ViQ29udGV4dE1lbnVQcm94eU1h
Yy5oIgogI2ltcG9ydCAiV2ViRWRpdENvbW1hbmRQcm94eS5oIgogI2ltcG9ydCAiV2ViUG9wdXBN
ZW51UHJveHlNYWMuaCIKKyNpbXBvcnQgIldlYlZpZXdJbXBsLmgiCiAjaW1wb3J0ICJXaW5kb3dT
ZXJ2ZXJDb25uZWN0aW9uLmgiCiAjaW1wb3J0ICJfV0tEb3dubG9hZEludGVybmFsLmgiCiAjaW1w
b3J0ICJfV0tIaXRUZXN0UmVzdWx0SW50ZXJuYWwuaCIKQEAgLTIxOCw3ICsyMTksMTIgQEAgYm9v
bCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3V2luZG93QWN0aXZlKCkKIAogYm9vbCBQYWdlQ2xpZW50
SW1wbDo6aXNWaWV3Rm9jdXNlZCgpCiB7Ci0gICAgcmV0dXJuIFttX3drVmlldyBfaXNGb2N1c2Vk
XTsKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBjYWxsZWQgZnJvbSB0aGUgV2ViUGFnZVByb3h5IGNv
bnN0cnVjdG9yIGJlZm9yZSB3ZSBoYXZlIGEgV2ViVmlld0ltcGwuCisgICAgLy8gT25jZSBXZWJW
aWV3SW1wbCBhbmQgUGFnZUNsaWVudCBtZXJnZSwgdGhpcyB3b24ndCBiZSBhIHByb2JsZW0uCisg
ICAgaWYgKCFtX2ltcGwpCisgICAgICAgIHJldHVybiBOTzsKKworICAgIHJldHVybiBtX2ltcGwt
PmlzRm9jdXNlZCgpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjptYWtlRmlyc3RSZXNwb25k
ZXIoKQpAQCAtMzEwLDcgKzMxNiw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnRvb2xUaXBDaGFu
Z2VkKGNvbnN0IFN0cmluZyYgb2xkVG9vbFRpcCwgY29uc3QgU3RyaW5nJiBuZXdUCiAKIHZvaWQg
UGFnZUNsaWVudEltcGw6OmRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiBt
aW1lVHlwZSwgYm9vbCB1c2VDdXN0b21Db250ZW50UHJvdmlkZXIpCiB7Ci0gICAgW21fd2tWaWV3
IF9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lXTsKKyAgICBtX2ltcGwtPnVwZGF0ZVN1cHBvcnRz
QXJiaXRyYXJ5TGF5b3V0TW9kZXMoKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmlu
aXNoTG9hZGluZ0RhdGFGb3JDdXN0b21Db250ZW50UHJvdmlkZXIoY29uc3QgU3RyaW5nJiBzdWdn
ZXN0ZWRGaWxlbmFtZSwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlKQpA
QCAtNDMyLDE3ICs0MzgsMTcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0UHJvbWlzZWREYXRh
Rm9yQXR0YWNobWVudChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLAogCiB2b2lkIFBhZ2VD
bGllbnRJbXBsOjp1cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCkKIHsKLSAgICBbbV93a1ZpZXcgX3Vw
ZGF0ZVNlY3VyZUlucHV0U3RhdGVdOworICAgIG1faW1wbC0+dXBkYXRlU2VjdXJlSW5wdXRTdGF0
ZSgpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXNldFNlY3VyZUlucHV0U3RhdGUoKQog
ewotICAgIFttX3drVmlldyBfcmVzZXRTZWN1cmVJbnB1dFN0YXRlXTsKKyAgICBtX2ltcGwtPnJl
c2V0U2VjdXJlSW5wdXRTdGF0ZSgpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpub3RpZnlJ
bnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uKCkKIHsKLSAgICBbbV93a1ZpZXcg
X25vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb25dOworICAgIG1faW1w
bC0+bm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbigpOwogfQogCiAj
aWYgUExBVEZPUk0oTUFDKSAmJiAhVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQpAQCAtNzEw
LDEzICs3MTYsMTMgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZXhpdEZ1bGxTY3JlZW4oKQogdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6YmVnYW5FbnRlckZ1bGxTY3JlZW4oY29uc3QgSW50UmVjdCYgaW5p
dGlhbEZyYW1lLCBjb25zdCBJbnRSZWN0JiBmaW5hbEZyYW1lKQogewogICAgIFttX3drVmlldy5f
ZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgYmVnYW5FbnRlckZ1bGxTY3JlZW5XaXRoSW5pdGlh
bEZyYW1lOmluaXRpYWxGcmFtZSBmaW5hbEZyYW1lOmZpbmFsRnJhbWVdOwotICAgIFttX3drVmll
dyBfdXBkYXRlU3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2Rlc107CisgICAgbV9pbXBsLT51cGRh
dGVTdXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudElt
cGw6OmJlZ2FuRXhpdEZ1bGxTY3JlZW4oY29uc3QgSW50UmVjdCYgaW5pdGlhbEZyYW1lLCBjb25z
dCBJbnRSZWN0JiBmaW5hbEZyYW1lKQogewogICAgIFttX3drVmlldy5fZnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIgYmVnYW5FeGl0RnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6aW5pdGlhbEZy
YW1lIGZpbmFsRnJhbWU6ZmluYWxGcmFtZV07Ci0gICAgW21fd2tWaWV3IF91cGRhdGVTdXBwb3J0
c0FyYml0cmFyeUxheW91dE1vZGVzXTsKKyAgICBtX2ltcGwtPnVwZGF0ZVN1cHBvcnRzQXJiaXRy
YXJ5TGF5b3V0TW9kZXMoKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyLmgKaW5kZXggYzY2MzAwMi4uNTk2M2QzZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyLmgKQEAgLTMwLDYgKzMwLDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7IAogY2xh
c3MgTGF5ZXJUcmVlQ29udGV4dDsKK2NsYXNzIFdlYlBhZ2VQcm94eTsKIH0KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtNDQsNyArNDUsOCBAQCB0eXBlZGVmIGVudW0gRnVsbFNjcmVlblN0YXRl
IDogTlNJbnRlZ2VyIEZ1bGxTY3JlZW5TdGF0ZTsKIAogQGludGVyZmFjZSBXS0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVyIDogTlNXaW5kb3dDb250cm9sbGVyPE5TV2luZG93RGVsZWdhdGU+IHsK
IEBwcml2YXRlCi0gICAgV0tWaWV3ICpfd2ViVmlldzsgLy8gQ2Fubm90IGJlIHJldGFpbmVkLCBz
ZWUgPHJkYXI6Ly9wcm9ibGVtLzE0ODg0NjY2Pi4KKyAgICBOU1ZpZXcgKl93ZWJWaWV3OyAvLyBD
YW5ub3QgYmUgcmV0YWluZWQsIHNlZSA8cmRhcjovL3Byb2JsZW0vMTQ4ODQ2NjY+LgorICAgIFdl
YktpdDo6V2ViUGFnZVByb3h5KiBfcGFnZTsKICAgICBSZXRhaW5QdHI8V2ViQ29yZUZ1bGxTY3Jl
ZW5QbGFjZWhvbGRlclZpZXc+IF93ZWJWaWV3UGxhY2Vob2xkZXI7CiAgICAgUmV0YWluUHRyPE5T
Vmlldz4gX2NsaXBWaWV3OwogICAgIE5TUmVjdCBfaW5pdGlhbEZyYW1lOwpAQCAtNjAsNyArNjIs
NyBAQCB0eXBlZGVmIGVudW0gRnVsbFNjcmVlblN0YXRlIDogTlNJbnRlZ2VyIEZ1bGxTY3JlZW5T
dGF0ZTsKIEBwcm9wZXJ0eSAocmVhZG9ubHkpIE5TUmVjdCBpbml0aWFsRnJhbWU7CiBAcHJvcGVy
dHkgKHJlYWRvbmx5KSBOU1JlY3QgZmluYWxGcmFtZTsKIAotLSAoaWQpaW5pdFdpdGhXaW5kb3c6
KE5TV2luZG93ICopd2luZG93IHdlYlZpZXc6KFdLVmlldyAqKXdlYlZpZXc7CistIChpZClpbml0
V2l0aFdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cgd2ViVmlldzooTlNWaWV3ICopd2ViVmlldyBw
YWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZTsKIAogLSAoV2ViQ29yZUZ1bGxTY3JlZW5Q
bGFjZWhvbGRlclZpZXcqKXdlYlZpZXdQbGFjZWhvbGRlcjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
Lm1tCmluZGV4IDg2MjhhOWQuLjI0MGQ2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0KQEAg
LTYzLDkgKzYzLDggQEAgZW51bSBGdWxsU2NyZWVuU3RhdGUgOiBOU0ludGVnZXIgewogLSAodm9p
ZCllbnRlckZ1bGxTY3JlZW5Nb2RlOihpZClzZW5kZXI7CiBAZW5kCiAKLUBpbnRlcmZhY2UgV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlcihQcml2YXRlKTxOU0FuaW1hdGlvbkRlbGVnYXRlPgor
QGludGVyZmFjZSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIChQcml2YXRlKSA8TlNBbmlt
YXRpb25EZWxlZ2F0ZT4KIC0gKHZvaWQpX3JlcGxhY2VWaWV3OihOU1ZpZXcqKXZpZXcgd2l0aDoo
TlNWaWV3KilvdGhlclZpZXc7Ci0tIChXZWJQYWdlUHJveHkqKV9wYWdlOwogLSAoV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eSopX21hbmFnZXI7CiAtICh2b2lkKV9zdGFydEVudGVyRnVsbFNjcmVl
bkFuaW1hdGlvbldpdGhEdXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVyYXRpb247CiAtICh2b2lk
KV9zdGFydEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOihOU1RpbWVJbnRlcnZh
bClkdXJhdGlvbjsKQEAgLTg2LDcgKzg1LDcgQEAgc3RhdGljIHZvaWQgbWFrZVJlc3BvbmRlckZp
cnN0UmVzcG9uZGVySWZEZXNjZW5kYW50T2ZWaWV3KE5TV2luZG93ICp3aW5kb3csIE5TUmUKIAog
I3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBJbml0aWFsaXphdGlvbgotLSAoaWQpaW5pdFdp
dGhXaW5kb3c6KE5TV2luZG93ICopd2luZG93IHdlYlZpZXc6KFdLVmlldyAqKXdlYlZpZXcKKy0g
KGlkKWluaXRXaXRoV2luZG93OihOU1dpbmRvdyAqKXdpbmRvdyB3ZWJWaWV3OihOU1ZpZXcgKil3
ZWJWaWV3IHBhZ2U6KFdlYlBhZ2VQcm94eSYpcGFnZQogewogICAgIHNlbGYgPSBbc3VwZXIgaW5p
dFdpdGhXaW5kb3c6d2luZG93XTsKICAgICBpZiAoIXNlbGYpCkBAIC0xMDYsNiArMTA1LDcgQEAg
c3RhdGljIHZvaWQgbWFrZVJlc3BvbmRlckZpcnN0UmVzcG9uZGVySWZEZXNjZW5kYW50T2ZWaWV3
KE5TV2luZG93ICp3aW5kb3csIE5TUmUKIAogICAgIFtzZWxmIHdpbmRvd0RpZExvYWRdOwogICAg
IF93ZWJWaWV3ID0gd2ViVmlldzsKKyAgICBfcGFnZSA9ICZwYWdlOwogICAgIAogICAgIHJldHVy
biBzZWxmOwogfQpAQCAtMjQxLDcgKzI0MSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0dJbWFnZVJl
Zj4gY3JlYXRlSW1hZ2VXaXRoQ29waWVkRGF0YShDR0ltYWdlUmVmIHNvdXJjZUltYWdlKQogICAg
IC8vIHVubmVjZXNzYXJ5IGluIHRoZSBmdWxsLXNjcmVlbiBhbmltYXRpb24gY2FzZSwgYW5kIGNh
biBjYXVzZSBidWdzOyBzZWUKICAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODg5NDAgYW5kIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD04ODM3NAogICAgIC8vIFdlIHdpbGwgcmVzdW1lIHRoZSBub3JtYWwgYmVoYXZpb3IgaW4gX3N0
YXJ0RW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uV2l0aER1cmF0aW9uOgotICAgIFtfd2ViVmlldyBf
c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlczpZRVNdOworICAgIF9wYWdlLT5zZXRTdXBwcmVz
c1Zpc2liaWxpdHlVcGRhdGVzKHRydWUpOwogCiAgICAgLy8gU3dhcCB0aGUgd2ViVmlldyBwbGFj
ZWhvbGRlciBpbnRvIHBsYWNlLgogICAgIGlmICghX3dlYlZpZXdQbGFjZWhvbGRlcikgewpAQCAt
MjUzLDE0ICsyNTMsMTQgQEAgc3RhdGljIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjcmVhdGVJbWFn
ZVdpdGhDb3BpZWREYXRhKENHSW1hZ2VSZWYgc291cmNlSW1hZ2UpCiAgICAgW3NlbGYgX3JlcGxh
Y2VWaWV3Ol93ZWJWaWV3IHdpdGg6X3dlYlZpZXdQbGFjZWhvbGRlci5nZXQoKV07CiAgICAgCiAg
ICAgLy8gVGhlbiBpbnNlcnQgdGhlIFdlYlZpZXcgaW50byB0aGUgZnVsbCBzY3JlZW4gd2luZG93
Ci0gICAgTlNWaWV3KiBjb250ZW50VmlldyA9IFtbc2VsZiB3aW5kb3ddIGNvbnRlbnRWaWV3XTsK
KyAgICBOU1ZpZXcgKmNvbnRlbnRWaWV3ID0gW1tzZWxmIHdpbmRvd10gY29udGVudFZpZXddOwog
ICAgIFtfY2xpcFZpZXcgYWRkU3Vidmlldzpfd2ViVmlldyBwb3NpdGlvbmVkOk5TV2luZG93QmVs
b3cgcmVsYXRpdmVUbzpuaWxdOwogICAgIFtfd2ViVmlldyBzZXRGcmFtZTpbY29udGVudFZpZXcg
Ym91bmRzXV07CiAKICAgICBtYWtlUmVzcG9uZGVyRmlyc3RSZXNwb25kZXJJZkRlc2NlbmRhbnRP
ZlZpZXcoc2VsZi53aW5kb3csIHdlYldpbmRvd0ZpcnN0UmVzcG9uZGVyLCBfd2ViVmlldyk7CiAK
LSAgICBfc2F2ZWRTY2FsZSA9IFtzZWxmIF9wYWdlXS0+cGFnZVNjYWxlRmFjdG9yKCk7Ci0gICAg
W3NlbGYgX3BhZ2VdLT5zY2FsZVBhZ2UoMSwgSW50UG9pbnQoKSk7CisgICAgX3NhdmVkU2NhbGUg
PSBfcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7CisgICAgX3BhZ2UtPnNjYWxlUGFnZSgxLCBJbnRQ
b2ludCgpKTsKICAgICBbc2VsZiBfbWFuYWdlcl0tPnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4odHJ1
ZSk7CiAgICAgW3NlbGYgX21hbmFnZXJdLT53aWxsRW50ZXJGdWxsU2NyZWVuKCk7CiB9CkBAIC0z
MDksMTQgKzMwOSwxNCBAQCBzdGF0aWMgY29uc3QgZmxvYXQgbWluVmlkZW9XaWR0aCA9IDQ4MCAr
IDIwICsgMjA7IC8vIE5vdGU6IEtlZXAgaW4gc3luYyB3aXRoIG1lZAogICAgICAgICBfZnVsbFNj
cmVlblN0YXRlID0gTm90SW5GdWxsU2NyZWVuOwogCiAgICAgICAgIFtbc2VsZiB3aW5kb3ddIHNl
dEF1dG9kaXNwbGF5OllFU107Ci0gICAgICAgIFtfd2ViVmlldyBfc2V0U3VwcHJlc3NWaXNpYmls
aXR5VXBkYXRlczpOT107CisgICAgICAgIF9wYWdlLT5zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRh
dGVzKGZhbHNlKTsKIAogICAgICAgICBOU1Jlc3BvbmRlciAqZmlyc3RSZXNwb25kZXIgPSBbW3Nl
bGYgd2luZG93XSBmaXJzdFJlc3BvbmRlcl07CiAgICAgICAgIFtzZWxmIF9yZXBsYWNlVmlldzpf
d2ViVmlld1BsYWNlaG9sZGVyLmdldCgpIHdpdGg6X3dlYlZpZXddOwogICAgICAgICBtYWtlUmVz
cG9uZGVyRmlyc3RSZXNwb25kZXJJZkRlc2NlbmRhbnRPZlZpZXcoX3dlYlZpZXcud2luZG93LCBm
aXJzdFJlc3BvbmRlciwgX3dlYlZpZXcpOwogICAgICAgICBbW193ZWJWaWV3IHdpbmRvd10gbWFr
ZUtleUFuZE9yZGVyRnJvbnQ6c2VsZl07CiAKLSAgICAgICAgW3NlbGYgX3BhZ2VdLT5zY2FsZVBh
Z2UoX3NhdmVkU2NhbGUsIEludFBvaW50KCkpOworICAgICAgICBfcGFnZS0+c2NhbGVQYWdlKF9z
YXZlZFNjYWxlLCBJbnRQb2ludCgpKTsKICAgICAgICAgW3NlbGYgX21hbmFnZXJdLT5yZXN0b3Jl
U2Nyb2xsUG9zaXRpb24oKTsKICAgICAgICAgW3NlbGYgX21hbmFnZXJdLT5kaWRFeGl0RnVsbFNj
cmVlbigpOwogICAgICAgICBbc2VsZiBfbWFuYWdlcl0tPnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4o
ZmFsc2UpOwpAQCAtMzQ0LDcgKzM0NCw3IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBtaW5WaWRlb1dp
ZHRoID0gNDgwICsgMjAgKyAyMDsgLy8gTm90ZTogS2VlcCBpbiBzeW5jIHdpdGggbWVkCiAKICAg
ICAvLyBTZWUgdGhlIHJlbGF0ZWQgY29tbWVudCBpbiBlbnRlckZ1bGxTY3JlZW46CiAgICAgLy8g
V2Ugd2lsbCByZXN1bWUgdGhlIG5vcm1hbCBiZWhhdmlvciBpbiBfc3RhcnRFeGl0RnVsbFNjcmVl
bkFuaW1hdGlvbldpdGhEdXJhdGlvbjoKLSAgICBbX3dlYlZpZXcgX3NldFN1cHByZXNzVmlzaWJp
bGl0eVVwZGF0ZXM6WUVTXTsKKyAgICBfcGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRl
cyh0cnVlKTsKICAgICBbX3dlYlZpZXdQbGFjZWhvbGRlciBzZXRUYXJnZXQ6bmlsXTsKIAogICAg
IFtzZWxmIF9tYW5hZ2VyXS0+c2V0QW5pbWF0aW5nRnVsbFNjcmVlbih0cnVlKTsKQEAgLTM3OSw3
ICszNzksNyBAQCBzdGF0aWMgY29uc3QgZmxvYXQgbWluVmlkZW9XaWR0aCA9IDQ4MCArIDIwICsg
MjA7IC8vIE5vdGU6IEtlZXAgaW4gc3luYyB3aXRoIG1lZAogCiAgICAgLy8gU2NyZWVuIHVwZGF0
ZXMgdG8gYmUgcmUtZW5hYmxlZCBpbiBjb21wbGV0ZUZpbmlzaEV4aXRGdWxsU2NyZWVuQW5pbWF0
aW9uQWZ0ZXJSZXBhaW50LgogICAgIE5TRGlzYWJsZVNjcmVlblVwZGF0ZXMoKTsKLSAgICBbX3dl
YlZpZXcgX3NldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXM6WUVTXTsKKyAgICBfcGFnZS0+c2V0
U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyh0cnVlKTsKICAgICBbW3NlbGYgd2luZG93XSBvcmRl
ck91dDpzZWxmXTsKICAgICBOU1ZpZXcgKmNvbnRlbnRWaWV3ID0gW1tzZWxmIHdpbmRvd10gY29u
dGVudFZpZXddOwogICAgIGNvbnRlbnRWaWV3LmxheWVyLmhpZGRlbiA9IFlFUzsKQEAgLTM5NCw3
ICszOTQsNyBAQCBzdGF0aWMgY29uc3QgZmxvYXQgbWluVmlkZW9XaWR0aCA9IDQ4MCArIDIwICsg
MjA7IC8vIE5vdGU6IEtlZXAgaW4gc3luYyB3aXRoIG1lZAogICAgIC8vIFRoZXNlIG1lc3NhZ2Vz
IG11c3QgYmUgc2VudCBhZnRlciB0aGUgc3dhcCBvciBmbGFzaGluZyB3aWxsIG9jY3VyIGR1cmlu
ZyBmb3JjZVJlcGFpbnQ6CiAgICAgW3NlbGYgX21hbmFnZXJdLT5kaWRFeGl0RnVsbFNjcmVlbigp
OwogICAgIFtzZWxmIF9tYW5hZ2VyXS0+c2V0QW5pbWF0aW5nRnVsbFNjcmVlbihmYWxzZSk7Ci0g
ICAgW3NlbGYgX3BhZ2VdLT5zY2FsZVBhZ2UoX3NhdmVkU2NhbGUsIEludFBvaW50KCkpOworICAg
IF9wYWdlLT5zY2FsZVBhZ2UoX3NhdmVkU2NhbGUsIEludFBvaW50KCkpOwogICAgIFtzZWxmIF9t
YW5hZ2VyXS0+cmVzdG9yZVNjcm9sbFBvc2l0aW9uKCk7CiAKICAgICBpZiAoX3JlcGFpbnRDYWxs
YmFjaykgewpAQCAtNDA2LDcgKzQwNiw3IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBtaW5WaWRlb1dp
ZHRoID0gNDgwICsgMjAgKyAyMDsgLy8gTm90ZTogS2VlcCBpbiBzeW5jIHdpdGggbWVkCiAgICAg
X3JlcGFpbnRDYWxsYmFjayA9IFZvaWRDYWxsYmFjazo6Y3JlYXRlKFtzZWxmXShXZWJLaXQ6OkNh
bGxiYWNrQmFzZTo6RXJyb3IpIHsKICAgICAgICAgW3NlbGYgY29tcGxldGVGaW5pc2hFeGl0RnVs
bFNjcmVlbkFuaW1hdGlvbkFmdGVyUmVwYWludF07CiAgICAgfSk7Ci0gICAgW3NlbGYgX3BhZ2Vd
LT5mb3JjZVJlcGFpbnQoX3JlcGFpbnRDYWxsYmFjayk7CisgICAgX3BhZ2UtPmZvcmNlUmVwYWlu
dChfcmVwYWludENhbGxiYWNrKTsKIH0KIAogLSAodm9pZCljb21wbGV0ZUZpbmlzaEV4aXRGdWxs
U2NyZWVuQW5pbWF0aW9uQWZ0ZXJSZXBhaW50CkBAIC00MTQsNyArNDE0LDcgQEAgc3RhdGljIGNv
bnN0IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0ODAgKyAyMCArIDIwOyAvLyBOb3RlOiBLZWVwIGlu
IHN5bmMgd2l0aCBtZWQKICAgICBfcmVwYWludENhbGxiYWNrID0gbnVsbHB0cjsKICAgICBbW193
ZWJWaWV3IHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKICAgICBbW193ZWJWaWV3IHdpbmRv
d10gZGlzcGxheUlmTmVlZGVkXTsKLSAgICBbX3dlYlZpZXcgX3NldFN1cHByZXNzVmlzaWJpbGl0
eVVwZGF0ZXM6Tk9dOworICAgIF9wYWdlLT5zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzKGZh
bHNlKTsKICAgICBOU0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsKIH0KIApAQCAtNDg3LDE3ICs0ODcs
MTEgQEAgc3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0ODAgKyAyMCArIDIwOyAv
LyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKICNwcmFnbWEgbWFyayAtCiAjcHJhZ21hIG1h
cmsgSW50ZXJuYWwgSW50ZXJmYWNlCiAKLS0gKFdlYlBhZ2VQcm94eSopX3BhZ2UKLXsKLSAgICBy
ZXR1cm4gdG9JbXBsKFtfd2ViVmlldyBwYWdlUmVmXSk7Ci19Ci0KIC0gKFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHkqKV9tYW5hZ2VyCiB7Ci0gICAgV2ViUGFnZVByb3h5KiB3ZWJQYWdlID0gW3Nl
bGYgX3BhZ2VdOwotICAgIGlmICghd2ViUGFnZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0
dXJuIHdlYlBhZ2UtPmZ1bGxTY3JlZW5NYW5hZ2VyKCk7CisgICAgaWYgKCFfcGFnZSkKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgcmV0dXJuIF9wYWdlLT5mdWxsU2NyZWVuTWFuYWdlcigp
OwogfQogCiAtICh2b2lkKV9yZXBsYWNlVmlldzooTlNWaWV3Kil2aWV3IHdpdGg6KE5TVmlldyop
b3RoZXJWaWV3CkBAIC02MDQsNyArNTk4LDcgQEAgc3RhdGljIENBQW5pbWF0aW9uICpmYWRlQW5p
bWF0aW9uKENGVGltZUludGVydmFsIGR1cmF0aW9uLCBBbmltYXRpb25EaXJlY3Rpb24gZGkKICAg
ICBbd2luZG93IG1ha2VLZXlBbmRPcmRlckZyb250OnNlbGZdOwogICAgIFt3aW5kb3cgc2V0Q29s
bGVjdGlvbkJlaGF2aW9yOmJlaGF2aW9yXTsKIAotICAgIFtfd2ViVmlldyBfc2V0U3VwcHJlc3NW
aXNpYmlsaXR5VXBkYXRlczpOT107CisgICAgX3BhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVw
ZGF0ZXMoZmFsc2UpOwogICAgIFtbc2VsZiB3aW5kb3ddIHNldEF1dG9kaXNwbGF5OllFU107CiAg
ICAgW1tzZWxmIHdpbmRvd10gZGlzcGxheUlmTmVlZGVkXTsKICAgICBOU0VuYWJsZVNjcmVlblVw
ZGF0ZXMoKTsKQEAgLTYyNyw3ICs2MjEsNyBAQCBzdGF0aWMgQ0FBbmltYXRpb24gKmZhZGVBbmlt
YXRpb24oQ0ZUaW1lSW50ZXJ2YWwgZHVyYXRpb24sIEFuaW1hdGlvbkRpcmVjdGlvbiBkaQogICAg
IGNvbnRlbnRWaWV3LmxheWVyLmhpZGRlbiA9IE5POwogICAgIFtjb250ZW50Vmlldy5sYXllciBh
ZGRBbmltYXRpb246ZmFkZUFuaW1hdGlvbihkdXJhdGlvbiwgQW5pbWF0ZU91dCkgZm9yS2V5OkAi
ZnVsbHNjcmVlbiJdOwogCi0gICAgW193ZWJWaWV3IF9zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRh
dGVzOk5PXTsKKyAgICBfcGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxzZSk7
CiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKICAgICBbW3NlbGYgd2lu
ZG93XSBkaXNwbGF5SWZOZWVkZWRdOwogICAgIE5TRW5hYmxlU2NyZWVuVXBkYXRlcygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVn
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5o
CmluZGV4IDdiMzJiMjYuLjJkZjdlMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1dLVmlld0xheW91dFN0cmF0ZWd5LmgKQEAgLTMyLDIyICszMiwyNCBAQAogCiBu
YW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKK2NsYXNzIFdlYlZpZXdJbXBs
OwogfQogCi1AY2xhc3MgV0tWaWV3OworQGNsYXNzIE5TVmlldzsKIAogQGludGVyZmFjZSBXS1Zp
ZXdMYXlvdXRTdHJhdGVneSA6IE5TT2JqZWN0IHsKIEBwYWNrYWdlCi0gICAgV2ViS2l0OjpXZWJQ
YWdlUHJveHkgKl9wYWdlOwotICAgIFdLVmlldyAqX3drVmlldzsKKyAgICBXZWJLaXQ6OldlYlBh
Z2VQcm94eSogX3BhZ2U7CisgICAgV2ViS2l0OjpXZWJWaWV3SW1wbCogX3dlYlZpZXdJbXBsOwor
ICAgIE5TVmlldyAqX3ZpZXc7CiAKICAgICBXS0xheW91dE1vZGUgX2xheW91dE1vZGU7CiAgICAg
dW5zaWduZWQgX2ZyYW1lU2l6ZVVwZGF0ZXNEaXNhYmxlZENvdW50OwogfQogCi0rIChpbnN0YW5j
ZXR5cGUpbGF5b3V0U3RyYXRlZ3lXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2Ug
dmlldzooV0tWaWV3ICopd2tWaWV3IG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlOworKyAoaW5zdGFu
Y2V0eXBlKWxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdl
IHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKXdlYlZp
ZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlOwogCi0tICh2b2lkKXdpbGxEZXN0cm95Vmll
dzooV0tWaWV3ICopdmlldzsKKy0gKHZvaWQpaW52YWxpZGF0ZTsKIAogLSAodm9pZCllbmFibGVG
cmFtZVNpemVVcGRhdGVzOwogLSAodm9pZClkaXNhYmxlRnJhbWVTaXplVXBkYXRlczsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3ku
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0cmF0ZWd5Lm1t
CmluZGV4IDQ5ZWVhNmUuLjc1MzMwYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5tbQpAQCAtMjgsOCArMjgsOCBAQAogCiAj
aWYgUExBVEZPUk0oTUFDKQogCi0jaW1wb3J0ICJXS1ZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAi
V2ViUGFnZVByb3h5LmgiCisjaW1wb3J0ICJXZWJWaWV3SW1wbC5oIgogI2ltcG9ydCA8V2ViQ29y
ZS9NYWNoU2VuZFJpZ2h0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1F1YXJ0ekNvcmVTUEkuaD4KIApA
QCAtNTAsMjMgKzUwLDIzIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIEBpbXBsZW1lbnRh
dGlvbiBXS1ZpZXdMYXlvdXRTdHJhdGVneQogCi0rIChpbnN0YW5jZXR5cGUpbGF5b3V0U3RyYXRl
Z3lXaXRoUGFnZTooV2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KFdLVmlldyAqKXdrVmlldyBtb2Rl
OihXS0xheW91dE1vZGUpbW9kZQorKyAoaW5zdGFuY2V0eXBlKWxheW91dFN0cmF0ZWd5V2l0aFBh
Z2U6KFdlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihXZWJW
aWV3SW1wbCYpd2ViVmlld0ltcGwgbW9kZTooV0tMYXlvdXRNb2RlKW1vZGUKIHsKICAgICBXS1Zp
ZXdMYXlvdXRTdHJhdGVneSAqc3RyYXRlZ3k7CiAKICAgICBzd2l0Y2ggKG1vZGUpIHsKICAgICBj
YXNlIGtXS0xheW91dE1vZGVGaXhlZFNpemU6Ci0gICAgICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdG
aXhlZFNpemVMYXlvdXRTdHJhdGVneSBhbGxvY10gaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp3a1Zp
ZXcgbW9kZTptb2RlXTsKKyAgICAgICAgc3RyYXRlZ3kgPSBbW1dLVmlld0ZpeGVkU2l6ZUxheW91
dFN0cmF0ZWd5IGFsbG9jXSBpbml0V2l0aFBhZ2U6cGFnZSB2aWV3OnZpZXcgdmlld0ltcGw6d2Vi
Vmlld0ltcGwgbW9kZTptb2RlXTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBrV0tMYXlvdXRN
b2RlRHluYW1pY1NpemVDb21wdXRlZEZyb21WaWV3U2NhbGU6Ci0gICAgICAgIHN0cmF0ZWd5ID0g
W1tXS1ZpZXdEeW5hbWljU2l6ZUNvbXB1dGVkRnJvbVZpZXdTY2FsZUxheW91dFN0cmF0ZWd5IGFs
bG9jXSBpbml0V2l0aFBhZ2U6cGFnZSB2aWV3OndrVmlldyBtb2RlOm1vZGVdOworICAgICAgICBz
dHJhdGVneSA9IFtbV0tWaWV3RHluYW1pY1NpemVDb21wdXRlZEZyb21WaWV3U2NhbGVMYXlvdXRT
dHJhdGVneSBhbGxvY10gaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOndlYlZp
ZXdJbXBsIG1vZGU6bW9kZV07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Uga1dLTGF5b3V0TW9k
ZUR5bmFtaWNTaXplQ29tcHV0ZWRGcm9tTWluaW11bURvY3VtZW50U2l6ZToKLSAgICAgICAgc3Ry
YXRlZ3kgPSBbW1dLVmlld0R5bmFtaWNTaXplQ29tcHV0ZWRGcm9tTWluaW11bURvY3VtZW50U2l6
ZUxheW91dFN0cmF0ZWd5IGFsbG9jXSBpbml0V2l0aFBhZ2U6cGFnZSB2aWV3OndrVmlldyBtb2Rl
Om1vZGVdOworICAgICAgICBzdHJhdGVneSA9IFtbV0tWaWV3RHluYW1pY1NpemVDb21wdXRlZEZy
b21NaW5pbXVtRG9jdW1lbnRTaXplTGF5b3V0U3RyYXRlZ3kgYWxsb2NdIGluaXRXaXRoUGFnZTpw
YWdlIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbCBtb2RlOm1vZGVdOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIGtXS0xheW91dE1vZGVWaWV3U2l6ZToKICAgICBkZWZhdWx0OgotICAg
ICAgICBzdHJhdGVneSA9IFtbV0tWaWV3Vmlld1NpemVMYXlvdXRTdHJhdGVneSBhbGxvY10gaW5p
dFdpdGhQYWdlOnBhZ2Ugdmlldzp3a1ZpZXcgbW9kZTptb2RlXTsKKyAgICAgICAgc3RyYXRlZ3kg
PSBbW1dLVmlld1ZpZXdTaXplTGF5b3V0U3RyYXRlZ3kgYWxsb2NdIGluaXRXaXRoUGFnZTpwYWdl
IHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbCBtb2RlOm1vZGVdOwogICAgICAgICBicmVh
azsKICAgICB9CiAKQEAgLTc1LDcgKzc1LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAg
ICByZXR1cm4gW3N0cmF0ZWd5IGF1dG9yZWxlYXNlXTsKIH0KIAotLSAoaW5zdGFuY2V0eXBlKWlu
aXRXaXRoUGFnZTooV2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KFdLVmlldyAqKXdrVmlldyBtb2Rl
OihXS0xheW91dE1vZGUpbW9kZQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooV2ViUGFn
ZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KFdlYlZpZXdJbXBsJil3
ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1vZGUpbW9kZQogewogICAgIHNlbGYgPSBbc3VwZXIg
aW5pdF07CiAKQEAgLTgzLDE2ICs4MywxOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAg
ICAgICByZXR1cm4gbmlsOwogCiAgICAgX3BhZ2UgPSAmcGFnZTsKLSAgICBfd2tWaWV3ID0gd2tW
aWV3OworICAgIF93ZWJWaWV3SW1wbCA9ICZ3ZWJWaWV3SW1wbDsKKyAgICBfdmlldyA9IHZpZXc7
CiAgICAgX2xheW91dE1vZGUgPSBtb2RlOwogCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKLS0gKHZv
aWQpd2lsbERlc3Ryb3lWaWV3OihXS1ZpZXcgKil2aWV3CistICh2b2lkKWludmFsaWRhdGUKIHsK
ICAgICBfcGFnZSA9IG51bGxwdHI7Ci0gICAgX3drVmlldyA9IG5pbDsKKyAgICBfd2ViVmlld0lt
cGwgPSBudWxscHRyOworICAgIF92aWV3ID0gbmlsOwogfQogCiAtIChXS0xheW91dE1vZGUpbGF5
b3V0TW9kZQpAQCAtMTQwLDkgKzE0Miw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAg
aWYgKFtzZWxmIGZyYW1lU2l6ZVVwZGF0ZXNEaXNhYmxlZF0pCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGlmIChfd2tWaWV3LnNob3VsZENsaXBUb1Zpc2libGVSZWN0KQotICAgICAgICBbX3drVmll
dyBfdXBkYXRlVmlld0V4cG9zZWRSZWN0XTsKLSAgICBbX3drVmlldyBfc2V0RHJhd2luZ0FyZWFT
aXplOl93a1ZpZXcuZnJhbWUuc2l6ZV07CisgICAgaWYgKF93ZWJWaWV3SW1wbC0+Y2xpcHNUb1Zp
c2libGVSZWN0KCkpCisgICAgICAgIF93ZWJWaWV3SW1wbC0+dXBkYXRlVmlld0V4cG9zZWRSZWN0
KCk7CisgICAgX3dlYlZpZXdJbXBsLT5zZXREcmF3aW5nQXJlYVNpemUoTlNTaXplVG9DR1NpemUo
X3ZpZXcuZnJhbWUuc2l6ZSkpOwogfQogCiAtICh2b2lkKXdpbGxDaGFuZ2VMYXlvdXRTdHJhdGVn
eQpAQCAtMTUzLDkgKzE1NSw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIEBpbXBsZW1l
bnRhdGlvbiBXS1ZpZXdWaWV3U2l6ZUxheW91dFN0cmF0ZWd5CiAKLS0gKGluc3RhbmNldHlwZSlp
bml0V2l0aFBhZ2U6KFdlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihXS1ZpZXcgKil3a1ZpZXcgbW9k
ZTooV0tMYXlvdXRNb2RlKW1vZGUKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYlBh
Z2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihXZWJWaWV3SW1wbCYp
d2ViVmlld0ltcGwgbW9kZTooV0tMYXlvdXRNb2RlKW1vZGUKIHsKLSAgICBzZWxmID0gW3N1cGVy
IGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6d2tWaWV3IG1vZGU6bW9kZV07CisgICAgc2VsZiA9IFtz
dXBlciBpbml0V2l0aFBhZ2U6cGFnZSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwgbW9k
ZTptb2RlXTsKIAogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTE3Myw5
ICsxNzUsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBAaW1wbGVtZW50YXRpb24gV0tW
aWV3Rml4ZWRTaXplTGF5b3V0U3RyYXRlZ3kKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFn
ZTooV2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KFdLVmlldyAqKXdrVmlldyBtb2RlOihXS0xheW91
dE1vZGUpbW9kZQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooV2ViUGFnZVByb3h5Jilw
YWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KFdlYlZpZXdJbXBsJil3ZWJWaWV3SW1w
bCBtb2RlOihXS0xheW91dE1vZGUpbW9kZQogewotICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhQ
YWdlOnBhZ2Ugdmlldzp3a1ZpZXcgbW9kZTptb2RlXTsKKyAgICBzZWxmID0gW3N1cGVyIGluaXRX
aXRoUGFnZTpwYWdlIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbCBtb2RlOm1vZGVdOwog
CiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwpAQCAtMTkzLDkgKzE5NSw5IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIEBpbXBsZW1lbnRhdGlvbiBXS1ZpZXdEeW5hbWlj
U2l6ZUNvbXB1dGVkRnJvbVZpZXdTY2FsZUxheW91dFN0cmF0ZWd5CiAKLS0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aFBhZ2U6KFdlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihXS1ZpZXcgKil3a1ZpZXcg
bW9kZTooV0tMYXlvdXRNb2RlKW1vZGUKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdl
YlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihXZWJWaWV3SW1w
bCYpd2ViVmlld0ltcGwgbW9kZTooV0tMYXlvdXRNb2RlKW1vZGUKIHsKLSAgICBzZWxmID0gW3N1
cGVyIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6d2tWaWV3IG1vZGU6bW9kZV07CisgICAgc2VsZiA9
IFtzdXBlciBpbml0V2l0aFBhZ2U6cGFnZSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwg
bW9kZTptb2RlXTsKIAogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTIw
OCw3ICsyMTAsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogLSAodm9pZCl1cGRhdGVMYXlv
dXQKIHsKICAgICBDR0Zsb2F0IGludmVyc2VTY2FsZSA9IDEgLyBfcGFnZS0+dmlld1NjYWxlRmFj
dG9yKCk7Ci0gICAgW193a1ZpZXcgX3NldEZpeGVkTGF5b3V0U2l6ZTpDR1NpemVNYWtlKF93a1Zp
ZXcuZnJhbWUuc2l6ZS53aWR0aCAqIGludmVyc2VTY2FsZSwgX3drVmlldy5mcmFtZS5zaXplLmhl
aWdodCAqIGludmVyc2VTY2FsZSldOworICAgIF93ZWJWaWV3SW1wbC0+c2V0Rml4ZWRMYXlvdXRT
aXplKENHU2l6ZU1ha2UoX3ZpZXcuZnJhbWUuc2l6ZS53aWR0aCAqIGludmVyc2VTY2FsZSwgX3Zp
ZXcuZnJhbWUuc2l6ZS5oZWlnaHQgKiBpbnZlcnNlU2NhbGUpKTsKIH0KIAogLSAodm9pZClkaWRD
aGFuZ2VWaWV3U2NhbGUKQEAgLTIyMiw3ICsyMjQsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OwogewogICAgIFtzdXBlciBkaWRDaGFuZ2VGcmFtZVNpemVdOwogCi0gICAgaWYgKFtfd2tWaWV3
IGZyYW1lU2l6ZVVwZGF0ZXNEaXNhYmxlZF0pCisgICAgaWYgKHNlbGYuZnJhbWVTaXplVXBkYXRl
c0Rpc2FibGVkKQogICAgICAgICByZXR1cm47CiAKICAgICBbc2VsZiB1cGRhdGVMYXlvdXRdOwpA
QCAtMjMyLDkgKzIzNCw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIEBpbXBsZW1lbnRh
dGlvbiBXS1ZpZXdEeW5hbWljU2l6ZUNvbXB1dGVkRnJvbU1pbmltdW1Eb2N1bWVudFNpemVMYXlv
dXRTdHJhdGVneQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJQYWdlUHJveHkm
KXBhZ2UgdmlldzooV0tWaWV3ICopd2tWaWV3IG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlCistIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooTlNWaWV3
ICopdmlldyB2aWV3SW1wbDooV2ViVmlld0ltcGwmKXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0
TW9kZSltb2RlCiB7Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFBhZ2U6cGFnZSB2aWV3Ondr
VmlldyBtb2RlOm1vZGVdOworICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhQYWdlOnBhZ2Ugdmll
dzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsIG1vZGU6bW9kZV07CiAKICAgICBpZiAoIXNlbGYp
CiAgICAgICAgIHJldHVybiBuaWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTRkYTM2OS4uNjFjMTJlNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNjg5LDYg
KzY4OSw4IEBACiAJCTJERjlFRUU4MUE3ODI0NTUwMEI2Q0ZCRSAvKiBXS0ZyYW1lSW5mb0ludGVy
bmFsLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREY5
RUVFNzFBNzgyNDU1MDBCNkNGQkUgLyogV0tGcmFtZUluZm9JbnRlcm5hbC5oICovOyB9OwogCQky
REY5RUVFQzFBNzgzNkVFMDBCNkNGQkUgLyogQVBJTmF2aWdhdGlvbkFjdGlvbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRGOUVFRUExQTc4MzZFRTAw
QjZDRkJFIC8qIEFQSU5hdmlnYXRpb25BY3Rpb24uaCAqLzsgfTsKIAkJMkRGOUVFRUUxQTc4NkVB
RDAwQjZDRkJFIC8qIEFQSU5hdmlnYXRpb25SZXNwb25zZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRGOUVFRUQxQTc4NkVBRDAwQjZDRkJFIC8qIEFQ
SU5hdmlnYXRpb25SZXNwb25zZS5oICovOyB9OworCQkyREZDN0RCQjFCQ0NDMTk1MDBDMTU0OEMg
LyogV2ViVmlld0ltcGwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDJERkM3REI5MUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5oICovOyBzZXR0
aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7IH07IH07CisJCTJERkM3REJDMUJDQ0MxOTUwMEMxNTQ4
QyAvKiBXZWJWaWV3SW1wbC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJERkM3REJBMUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5tbSAqLzsg
c2V0dGluZ3MgPSB7QVNTRVRfVEFHUyA9ICgpOyB9OyB9OwogCQkzMTA5OTk3MzE0NkM3NUEyMDAy
OURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMDk5OTcxMTQ2Qzc1OUIwMDI5REVCOSAvKiBXZWJO
b3RpZmljYXRpb25DbGllbnQuY3BwICovOyB9OwogCQkzMTA5OTlDNzE0NkM5RTNEMDAyOURFQjkg
LyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAzMTA5OTk2ODE0NkM3MUY1MDAyOURFQjkgLyogV2ViTm90aWZpY2F0
aW9uQ2xpZW50LmggKi87IH07CiAJCTMxMkMwQzRBMTQ2RERDOEEwMDE2QzkxMSAvKiBXS05vdGlm
aWNhdGlvblByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSAzMTJDMEM0OTE0NkREQzhBMDAxNkM5MTEgLyogV0tOb3RpZmljYXRpb25Qcm92aWRl
ci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0y
ODQ1LDYgKzI4NDcsOCBAQAogCQkyREY5RUVFNzFBNzgyNDU1MDBCNkNGQkUgLyogV0tGcmFtZUlu
Zm9JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0ZyYW1lSW5m
b0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJERjlFRUVBMUE3ODM2
RUUwMEI2Q0ZCRSAvKiBBUElOYXZpZ2F0aW9uQWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEFQSU5hdmlnYXRpb25BY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMkRGOUVFRUQxQTc4NkVBRDAwQjZDRkJFIC8qIEFQSU5hdmlnYXRpb25SZXNwb25z
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElOYXZpZ2F0aW9uUmVzcG9u
c2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMkRGQzdEQjkxQkNDQzE5NTAwQzE1
NDhDIC8qIFdlYlZpZXdJbXBsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlZpZXdJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTJERkM3REJBMUJDQ0Mx
OTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYlZpZXdJbXBsLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQkzMTA5OTk2ODE0NkM3MUY1MDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkzMTA5OTk3MTE0NkM3NTlCMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xp
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYk5vdGlmaWNh
dGlvbkNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMkMwQzQ5MTQ2
RERDOEEwMDE2QzkxMSAvKiBXS05vdGlmaWNhdGlvblByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTQ5MjQsNiArNDkyOCw4IEBACiAJCQkJN0M0Njk0Q0IxQTRCNTEw
QTAwQUQ1ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1tICovLAogCQkJCTdDRTREMjE1
MUE0OTE0ODQwMEM3RjE1MiAvKiBXZWJQcm9jZXNzUG9vbENvY29hLm1tICovLAogCQkJCTFBMDRG
NjE3MUE0QTNBN0EwMEEyMUI2RSAvKiBXZWJQcm9jZXNzUHJveHlDb2NvYS5tbSAqLywKKwkJCQky
REZDN0RCOTFCQ0NDMTk1MDBDMTU0OEMgLyogV2ViVmlld0ltcGwuaCAqLywKKwkJCQkyREZDN0RC
QTFCQ0NDMTk1MDBDMTU0OEMgLyogV2ViVmlld0ltcGwubW0gKi8sCiAJCQkJMUFEMDFCQ0IxOTA1
RDU0OTAwQzlDNDVGIC8qIFdLUmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLmggKi8s
CiAJCQkJMUFEMDFCQ0ExOTA1RDU0OTAwQzlDNDVGIC8qIFdLUmVsb2FkRnJhbWVFcnJvclJlY292
ZXJ5QXR0ZW1wdGVyLm1tICovLAogCQkJCTJEN0FBRkQyMThDODY0MDYwMEE3QUNENCAvKiBXS1dl
YlZpZXdDb250ZW50UHJvdmlkZXIuaCAqLywKQEAgLTc2MzAsNiArNzYzNiw3IEBACiAJCQkJMUEy
RDk1NkYxMjg0ODU2NDAwMUVCOTYyIC8qIENoaWxkUHJvY2Vzcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQkM4MjgzN0ExNkIzNkE0RjAwQTI3OEZFIC8qIENoaWxkUHJvY2Vzc0VudHJ5UG9pbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxRkFFQzNBMUIwNjU3NjMwMDA5QzRFNyAvKiBDaGlsZFByb2Nl
c3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkRGQzdEQkIxQkNDQzE5NTAwQzE1NDhD
IC8qIFdlYlZpZXdJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTUxM0M2NzE2NkVBQkIyMDAx
NDlGQ0IgLyogQ2hpbGRQcm9jZXNzUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTI5MEY0Mjcy
MTcyQTBDNzQwMDkzOUZGMCAvKiBDaGlsZFByb2Nlc3NTdXBwbGVtZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTZGOUY5MDExRTEzRUZDMDBEQjEzNzEgLyogQ29tbWFuZExpbmUuaCBpbiBIZWFk
ZXJzICovLApAQCAtOTc2NSw2ICs5NzcyLDcgQEAKIAkJCQkxQThCNjZCMzFCQzQ1QjAxMDA4MkRG
NzcgLyogV0tCdW5kbGVNYWMubW0gaW4gU291cmNlcyAqLywKIAkJCQlCQzExMUE1QjExMkY0RkJC
MDAzMzdCQUIgLyogV2ViQ29udGV4dE1lbnVDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTEwMjFFOUMxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRleHRNZW51Q2xpZW50TWFjLm1tIGlu
IFNvdXJjZXMgKi8sCisJCQkJMkRGQzdEQkMxQkNDQzE5NTAwQzE1NDhDIC8qIFdlYlZpZXdJbXBs
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyOTM1RDcxMjg4RDE5NDAwQTRCNjk1IC8qIFdlYkNv
bnRleHRNZW51SXRlbS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTBGQkI5QTEyODhDOTVFMDBB
RkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1
MUE4NENFMzEyN0YzODZCMDBDQTZFQTQgLyogV2ViQ29udGV4dE1lbnVQcm94eS5jcHAgaW4gU291
cmNlcyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>263170</attachid>
            <date>2015-10-15 10:34:25 -0700</date>
            <delta_ts>2015-10-16 17:52:09 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews107 for mac-mavericks-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>423942</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
XI7l9n3dL4M6elWYJHQW2x/px2pmDt1c+tjJ/af0nE5sVd63dKt37PofnY50EhXzerPY5/no2Rh4
vu8+iN1R6upykKyGZ32p8b4zwP+NLfZzno36Y95dPbU65nhubIrH1P7wA7l42E64v1yf3Ws93Pjn
PDpL28eoJ3HryHJ3NbY649VHrI2m/FBKqRcqrXK7nQzeen5UmSfrqldlsumed+PHB1fvD+vj2bQW
e8N5TMzcs0zTec1Xb3W+WtY9EzM3YbOWZc4xB7b1cDUTK/cXg0Cx+znm53n6ag9UR42Xi5djMazN
uTKQRy9KUdeToDn8avWUuvXkmr/ZfFm7YZB5Fjs7V3NFF1im59m7ZLMseB05fdZabcUlmnK2evFZ
rDRlPP7miYGV4nXNPKjturlxY5l13c2X7qheWlYwH6DndasXLIej/cpdn2LfDOyxFZg9LCrLdAqn
utTvp81T7+RMX9fxw2N4MapixQYb33Uuw87MnTxuWyeJScuitHajQM4f3LP9xofOpdNTLqedqJbG
887g9sd1Ze7Gs6Lz4Ifhebe+pDORhddrkb600jy+JuYiuyyOncDz2YCpp4l3LXP16g36e3mQh6Wx
PGRKLabbd3E9TkJppDl6z9xPRlxYrfDp+SKfl8rLLEsm0mhhZG8n/jJezM/hxj1c3bU3784LMdGC
er3xgjEr3xbOUHY+wgf9tFxtWpbmv1TeYZhwua/E4+q6eRk7j+p+7n6U5271POycX8I3azMyvKf+
Zq/0y12Qpm/e5conZyG01mAeHKLhMFKlkk/N8eZjeEy7+bvmXzZ+pdY7r78u+vlp/zw28pFV//2N
nWy/9ys3/QNQSwMEFAACAAgA4lJPR0CMcobhCQAALhIAABEAHABfd3B0X2NlcnRzLzAyLnBlbVVU
CQAD9+AfVvfgH1Z1eAsAAQT1AQAABBQAAACdVtly4sgSfecreLwTTM9oXzJiHrQhMAgsFmN4K5VK
IHaQQOCvv5nqmW67jedGXIXsQLVkZZ3MPCc9cS7zLOesFNBo4uOzkn3/Rc+LOBf5YQ9Ntfkf6ab8
9mNiLM452zYHl10iztBUfp3Ol3tWXs6i6WyXh3NernbQLFZM0Y0ZfozGTrDn5/uxROM/NnWL4kLG
vMFflUi+HbeszA7n3bdSFGXx0yW2zdO8vP8YoGdwKJuuwNUCmkNeNmW9KZugqCCpTUXCrzCafNrg
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
vnnd//TpE7kEvSpKYY+CiKoisgE7VWyZcfbGUwxFsSzksV40Kxw/Th5/2/uFYOWoVZmQvZ8wy+w5
lmnbs8n69p9hg7USZjeJ0w8t/dDSDy390NIPLf3Q0g8t/dDSDy390NIPLf+LoQXBs/19kRZrIgkx
L6aRO0zlbXOIyol5qICMp0/zh/MPUEsDBBQAAgAIABRTT0cjrhn/fTIAAImvAAA5ABwAYWNjZXNz
aWJpbGl0eS9tYWMvc2VsZWN0LXRleHQvc2VsZWN0LXRleHQtMy1jcmFzaC1sb2cudHh0VVQJAANX
4R9WJuEfVnV4CwABBPUBAAAEFAAAAORbW5ebxrJ+Nr+Cpx2NbTR9obmtrGQBAsfH9niONY6zdlaW
Fpdmhm0JFIRsz/71p7rRBSQ0MyjOeYkeZiTRXfVVdVV1fQ26rsqEr1aOun194vGbvL7hq/rDuih4
pf5u65ZN/lCuo/puPwxel7+W8/WCry5/ff/247vg8vnl4VzldcqLOs9yXjn90pVfebXKy2IvGCl+
mXL15n7Jt1/+Zhmaoaujq6jOv/ALQFKBWPV6B/36vr4rC4kU0T+UD3y1LItVHs83IlZ36u/YZn8o
H1dg0OvJXhtDWFEmUc0vb/LFTiFBmGkYaZipGDmEOpSNDWKoGjIRUt5P1S7qd1Giwpe/weCxPWbq
CNMQY6pfAJJlWdWt4RgrblEW94tyvVI/fpRQ6MQN6cTAmm9MkKYz39LswGWaZwWG6/suogFRFMWv
otUdT9Wbu4pHKcxDqjrJV8uoTu7UP9d8DfCTcjGOlss5Hy+ivNBqOVRRgm8JX9aAYOvW4Dd/5n9w
p7+oo+nrV6734eaiNUgsALgVfUMHr5c93ymKCwrzJJJTp0uewHon6usiK6uF/NJRpKrXV6/Um2B6
46hRItYtj/N5Xt9fLqLkcsXnPKm1mn+r2+81Or6rF3Pl+fPn6g2vFnkBAotbFUxU0zVX61JdF0m0
vr2rVb6D/8PV9HXxJZrnqVvdQoAW9c60H16q4JGVWIoftN8/vfk151/V2Wq95NXrYrmu/bIQev9w
QG7Fk/K2yP8LLm8glRW8gbgDrXmxqqMi4eAPM8uooceIpBz9oEQxrPfoQk2i+ZynSt0C/TWv7/rg
lplaw6qoV9MdzBM+9aLkc11FoBY7Cqw+LFTFw3JdpM3A3lezYoAys6lFU8ISdTbbab+u+LJJI/WF
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
fWflrZJtrCwlFmOuctqFEvMF3xkaKjen0rJ6nwYGhrMuLILMpa9ZPFsOCny8WQ9b1/rJO/mZBWKX
n6FuytazyUi2TRFrkrudUPI42h3NDQxeWaagb0H/plS1HunM+uV16QIg2c7UxiZQTNY+ubbPcL8L
QpRHgEOwKG0JtmaC9lKLt9nsjSvtq4ubFwnq53iPN0Ib6zBawVZzdHRE3ltPZB4Xt6/sMTkfd1z3
ozev+58+fSKXoFdFKexREFFVJGvAqootGmdvPMVUFMsiO9aLZoXy4+Txt71fCHaOWpUJ2fsJWmbP
sUzbmU3Wt3+JA9aGUN4kTi9aetHSi5ZetPSipRctvWjpRUsvWnrR0ouW/4VoQXC5vy/SYk0kIeaF
GrnDUt6mQ1ROzEMFZDx90h/OP1BLAwQUAAIACAAUU09H2BNEIPsyAAA9sQAAOwAcAGFuaW1hdGlv
bnMvM2QvbWF0cml4LXRyYW5zZm9ybS10eXBlLWFuaW1hdGlvbi1jcmFzaC1sb2cudHh0VVQJAANX
4R9WF+EfVnV4CwABBPUBAAAEFAAAAORbW5ebxrJ+Nr+Cpx2NbTR9oYHWykoWQpD4+DbHGttZOytL
i0trhm0JFED2zP71p7qREEhoZqQ45yV6sDXQVH1VXV1VXze6KvJYlOVI334+i+h1Wl2LsvqwzjJR
6L9z07HtP7SrsLrdDYPP5ad8sV6K8vLT+zcf3/qXzy/3n9VeJSKr0nkqilG/dO2TKMo0z3aCkebl
idCv71die/E3xzIsUx+8C6v0q7gAJAWI1a8a6Ff31W2eKaSY/KF9EOUqz8o0WmxElLf675izP7SP
JRj0arLTxhDWtElYicvrdNkoJAgzAyMDMx2jEaEjgofYsXQD2Qhp76d6F/XbMNbh4m8weMiHTB9g
GmBMzQtAssqLqjUcY83N8ux+ma9L/eNHBYVO3IBOLGx41gQZJvMcg/suM8aOb7me5yLqE03TvCIs
b0WiX98WIkzgOaTrk7RchVV8q/+5FmuAH+fLYbhaLcRwGaaZUamhmubfxWJVAYKtW/3fvJn3wZ3+
qg+mr35xxx+uL1qD5ASAW9Ed2vu87LmmaS4oTONQPTpdiRjmO9ZfZfO8WKqLI02pevXuF/3an16P
9DBL6zvlJU0u4WuR3hlVEWalfMaoAKPRjBneVsuF9vz5c/1aFMs0g4vZjQ5G6sla6FWur7M4XN/c
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
0hmexg2cFAZDFupKl1hFWkBUz+vFHRAFxAHkz2m3DsGduI/2E9x7VFXfab8N3JwlMU/iNsQmRakw
XG/E9Tf225CK/cDrpR08mFHmz6D1YKXVRidCdILRH+0EYx0QUiFZ8hJhuixvLcgAHpxfDiFxB814
J4QY1DcI9rfqrUo8wIRhfheIGILZKwgDYrF4+FmfGTS+fJkZWGBm38KFznJ8g85lmLd9zHiLMuKj
hKyof9VKLFpRWRJhtWFBJ0JBRF8RUv+KSpxEyCTsxITCKyZ6PY3W4ch1iYi8aVAfpEIk80jJ1JUP
f3JxzsIRmkUnblZ50efHI86f0gTbal7MG9OW2fPBcDxlzGGdtc2lPkYmaZQik/ifM1EUe0vwxCRw
O10bN3qxAMNZtWLWxwCxsCJ0PBrw8KwSfzYwGYzEHL6DYYCVFhOng1SKR5sJBvIlsUlhrx4x19Pg
oeORduIhOGzi4XMoa2wvjsS4qSptbL1CPdHG/e+KT7vvtLzVstXKUWIpxiqnXShBKPhGaahcnUrL
6mMaKAxnXSLIVz59zeLZclTg4/Wy2frOT97JTxWJTX7Gpilbz0YD2RZFzEnud0LJ02SzmisYvLKM
wdyC+UXratnSmfMr6II4k2xjaGMRKEZLn3xXZ3jYBSHME8AmWJQuBVszUXupxduseudK++riFiSC
hjne460w1jmMVrDUHB4eko/WE5nHxd0rd0ze5w3X/fTd6/7u7i65AHNTlMIdBRFVRVQDbqpYM+Ps
DMcYimJRqCMzb25w/Dh+/G3nJ4KVo9ZlRnZ+wCyz4zmmbc8my9u/xAbrJJTXmbcdWrZDy3Zo2Q4t
26FlO7Rsh5bt0LIdWrZDy3Zo+V8MLQgu9/bErFgSyYh9MY3cYSqvm0N0TuxDBWQ4fpo/PO9vUEsD
BBQAAgAIABJTT0fDS1BpRwQAAFIaAAA8ABwAY29tcG9zaXRpbmcvY29sdW1ucy9hbmNlc3Rvci1j
bGlwcGVkLWluLXBhZ2luYXRlZC1zdGRlcnIudHh0VVQJAANT4R9WU+EfVnV4CwABBPUBAAAEFAAA
AO1X227jNhB9tr6Cb9ndNAFJ3fUSBG4CBG4dI05roIvAoMSRo40tqhSVS7++Q9m57drJVsUCLSC+
WJbNOWcO58LhlPkHjB4wnzCacDeh/iH3PDKDdFSYS6jNRVOWoD/HXuSHiU/DK3LweTb6vYA7Mq+b
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
cnRzL2xvY2FsaG9zdC5wZW1VVAUAA/fgH1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAADiUk9H
rLCUzwMAAAADAAAAEQAYAAAAAAABAAAApIErNAAAX3dwdF9jZXJ0cy9zZXJpYWxVVAUAA/fgH1Z1
eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAADiUk9H7YGP1gMAAAADAAAAFQAYAAAAAAABAAAApIF5
NAAAX3dwdF9jZXJ0cy9zZXJpYWwub2xkVVQFAAP34B9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAA4FJPRwAAAAAAAAAAAAAAAA4AGAAAAAAAAAAAAKSByzQAAGFjY2Vzc19sb2cudHh0VVQFAAP0
4B9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAADFNPRwAAAAAAAAAAAAAAAA4AGAAAAAAAAAAQ
AO1BEzUAAGFjY2Vzc2liaWxpdHkvVVQFAANI4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
6lJPRxYTGbvJMAAA7KgAAEAAGAAAAAAAAQAAAKSBWzUAAGFjY2Vzc2liaWxpdHkvYWNjZXNzaWJp
bGl0eS1ub2RlLW1lbW9yeS1tYW5hZ2VtZW50LWNyYXNoLWxvZy50eHRVVAUAAwjhH1Z1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADqUk9HK6OnIsMEAABtGwAAPQAYAAAAAAABAAAApIGeZgAAYWNj
ZXNzaWJpbGl0eS9hY2Nlc3NpYmlsaXR5LW5vZGUtbWVtb3J5LW1hbmFnZW1lbnQtc3RkZXJyLnR4
dFVUBQADCOEfVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABRTT0eNbuk8hDIAAIevAAA3ABgA
AAAAAAEAAACkgdhrAABhY2Nlc3NpYmlsaXR5L2FjY2Vzc2liaWxpdHktbm9kZS1yZXBhcmVudC1j
cmFzaC1sb2cudHh0VVQFAANX4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA8lJPRwHo+X9J
BAAAUhoAADQAGAAAAAAAAQAAAKSBzZ4AAGFjY2Vzc2liaWxpdHkvYWNjZXNzaWJpbGl0eS1ub2Rl
LXJlcGFyZW50LXN0ZGVyci50eHRVVAUAAxfhH1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAU
U09HkpVRJm4yAAAprwAAOQAYAAAAAAABAAAApIGEowAAYWNjZXNzaWJpbGl0eS9hY2Nlc3NpYmls
aXR5LW9iamVjdC1kZXRhY2hlZC1jcmFzaC1sb2cudHh0VVQFAANX4R9WdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA+VJPRy3PJPVIBAAAUhoAADYAGAAAAAAAAQAAAKSBZdYAAGFjY2Vzc2liaWxp
dHkvYWNjZXNzaWJpbGl0eS1vYmplY3QtZGV0YWNoZWQtc3RkZXJyLnR4dFVUBQADJuEfVnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIABRTT0fKNU/84zAAAPaoAABKABgAAAAAAAEAAACkgR3bAABh
Y2Nlc3NpYmlsaXR5L2FkamFjZW50LWNvbnRpbnVhdGlvbnMtY2F1c2UtYXNzZXJ0aW9uLWZhaWx1
cmUtY3Jhc2gtbG9nLnR4dFVUBQADV+EfVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAVTT0dI
zcSBSQQAAFIaAABHABgAAAAAAAEAAACkgYQMAQBhY2Nlc3NpYmlsaXR5L2FkamFjZW50LWNvbnRp
bnVhdGlvbnMtY2F1c2UtYXNzZXJ0aW9uLWZhaWx1cmUtc3RkZXJyLnR4dFVUBQADOeEfVnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIABRTT0dtIZgXiTIAAI+vAAA/ABgAAAAAAAEAAACkgU4RAQBh
Y2Nlc3NpYmlsaXR5L2FsdC10YWctb24taW1hZ2Utd2l0aC1ub25pbWFnZS1yb2xlLWNyYXNoLWxv
Zy50eHRVVAUAA1fhH1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAMU09H2AttYkwEAABSGgAA
PAAYAAAAAAABAAAApIFQRAEAYWNjZXNzaWJpbGl0eS9hbHQtdGFnLW9uLWltYWdlLXdpdGgtbm9u
aW1hZ2Utcm9sZS1zdGRlcnIudHh0VVQFAANI4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
DFNPRwAAAAAAAAAAAAAAABIAGAAAAAAAAAAQAO1BEkkBAGFjY2Vzc2liaWxpdHkvbWFjL1VUBQAD
SOEfVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOtST0eMeDUw0zAAAN2oAAAxABgAAAAAAAEA
AACkgV5JAQBhY2Nlc3NpYmlsaXR5L21hYy9hYmJyLWFjcm9ueW0tdGFncy1jcmFzaC1sb2cudHh0
VVQFAAMJ4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA61JPRwqHAIumBAAAChsAAC4AGAAA
AAAAAQAAAKSBnHoBAGFjY2Vzc2liaWxpdHkvbWFjL2FiYnItYWNyb255bS10YWdzLXN0ZGVyci50
eHRVVAUAAwnhH1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADxUk9HUU3uP/4yAAAwsQAAKQAY
AAAAAAABAAAApIGqfwEAYWNjZXNzaWJpbGl0eS9tYWMvYWNjZXNza2V5LWNyYXNoLWxvZy50eHRV
VAUAAxbhH1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADxUk9HYBbR4kkEAABSGgAAJgAYAAAA
AAABAAAApIELswEAYWNjZXNzaWJpbGl0eS9tYWMvYWNjZXNza2V5LXN0ZGVyci50eHRVVAUAAxbh
H1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAUU09HCgsczYAyAACDrwAAMwAYAAAAAAABAAAA
pIG0twEAYWNjZXNzaWJpbGl0eS9tYWMvYWx0LWZvci1jc3MtY29udGVudC1jcmFzaC1sb2cudHh0
VVQFAANX4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+VJPR6A7qvVJBAAAUhoAADAAGAAA
AAAAAQAAAKSBoeoBAGFjY2Vzc2liaWxpdHkvbWFjL2FsdC1mb3ItY3NzLWNvbnRlbnQtc3RkZXJy
LnR4dFVUBQADJuEfVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABRTT0f28upE1jAAAOCoAAA0
ABgAAAAAAAEAAACkgVTvAQBhY2Nlc3NpYmlsaXR5L21hYy9hcmVhLXdpdGgtYXJpYS1sYWJlbC1j
cmFzaC1sb2cudHh0VVQFAANX4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgABVNPRxO0VRtK
BAAAUhoAADEAGAAAAAAAAQAAAKSBmCACAGFjY2Vzc2liaWxpdHkvbWFjL2FyZWEtd2l0aC1hcmlh
LWxhYmVsLXN0ZGVyci50eHRVVAUAAznhH1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAUU09H
xq1FxYAyAAB7rwAAKwAYAAAAAAABAAAApIFNJQIAYWNjZXNzaWJpbGl0eS9tYWMvYXJpYS1hbGVy
dHMtY3Jhc2gtbG9nLnR4dFVUBQADV+EfVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAxTT0dw
4ip2SgQAAFIaAAAoABgAAAAAAAEAAACkgTJYAgBhY2Nlc3NpYmlsaXR5L21hYy9hcmlhLWFsZXJ0
cy1zdGRlcnIudHh0VVQFAANI4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAADVNPRwAAAAAA
AAAAAAAAAB4AGAAAAAAAAAAQAO1B3lwCAGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdC10ZXh0L1VU
BQADSeEfVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOpST0d3K9cxkjIAANmvAAA5ABgAAAAA
AAEAAACkgTZdAgBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3QtdGV4dC9zZWxlY3QtdGV4dC0xLWNy
YXNoLWxvZy50eHRVVAUAAwjhH1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADqUk9HKCcXMUgE
AABSGgAANgAYAAAAAAABAAAApIE7kAIAYWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0LXRleHQvc2Vs
ZWN0LXRleHQtMS1zdGRlcnIudHh0VVQFAAMI4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
8lJPR2w9MrN6MgAAia8AADkAGAAAAAAAAQAAAKSB85QCAGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVj
dC10ZXh0L3NlbGVjdC10ZXh0LTItY3Jhc2gtbG9nLnR4dFVUBQADF+EfVnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAPJST0ew6Ii4RwQAAFIaAAA2ABgAAAAAAAEAAACkgeDHAgBhY2Nlc3NpYmls
aXR5L21hYy9zZWxlY3QtdGV4dC9zZWxlY3QtdGV4dC0yLXN0ZGVyci50eHRVVAUAAxfhH1Z1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACAAUU09HI64Z/30yAACJrwAAOQAYAAAAAAABAAAApIGXzAIA
YWNjZXNzaWJpbGl0eS9tYWMvc2VsZWN0LXRleHQvc2VsZWN0LXRleHQtMy1jcmFzaC1sb2cudHh0
VVQFAANX4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+VJPRxHsZIdHBAAAUhoAADYAGAAA
AAAAAQAAAKSBh/8CAGFjY2Vzc2liaWxpdHkvbWFjL3NlbGVjdC10ZXh0L3NlbGVjdC10ZXh0LTMt
c3RkZXJyLnR4dFVUBQADJuEfVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABRTT0fSHprOfTIA
AImvAAA5ABgAAAAAAAEAAACkgT4EAwBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3QtdGV4dC9zZWxl
Y3QtdGV4dC00LWNyYXNoLWxvZy50eHRVVAUAA1fhH1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CAAFU09HoNrKAUkEAABSGgAANgAYAAAAAAABAAAApIEuNwMAYWNjZXNzaWJpbGl0eS9tYWMvc2Vs
ZWN0LXRleHQvc2VsZWN0LXRleHQtNC1zdGRlcnIudHh0VVQFAAM54R9WdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAFFNPR/85jRjRMAAA5agAADkAGAAAAAAAAQAAAKSB5zsDAGFjY2Vzc2liaWxp
dHkvbWFjL3NlbGVjdC10ZXh0L3NlbGVjdC10ZXh0LTUtY3Jhc2gtbG9nLnR4dFVUBQADV+EfVnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAA1TT0cdk9bnSAQAAFIaAAA2ABgAAAAAAAEAAACkgStt
AwBhY2Nlc3NpYmlsaXR5L21hYy9zZWxlY3QtdGV4dC9zZWxlY3QtdGV4dC01LXN0ZGVyci50eHRV
VAUAA0nhH1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAMU09HAAAAAAAAAAAAAAAACwAYAAAA
AAAAABAA7UHjcQMAYW5pbWF0aW9ucy9VVAUAA0fhH1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AAAMU09HAAAAAAAAAAAAAAAADgAYAAAAAAAAABAA7UEocgMAYW5pbWF0aW9ucy8zZC9VVAUAA0jh
H1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADrUk9Hgvu8NYYyAACJrwAAOQAYAAAAAAABAAAA
pIFwcgMAYW5pbWF0aW9ucy8zZC9jaGFuZ2UtdHJhbnNmb3JtLWluLWVuZC1ldmVudC1jcmFzaC1s
b2cudHh0VVQFAAMJ4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA61JPRwOxr1tHBAAAUhoA
ADYAGAAAAAAAAQAAAKSBaaUDAGFuaW1hdGlvbnMvM2QvY2hhbmdlLXRyYW5zZm9ybS1pbi1lbmQt
ZXZlbnQtc3RkZXJyLnR4dFVUBQADCeEfVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABRTT0fY
E0Qg+zIAAD2xAAA7ABgAAAAAAAEAAACkgSCqAwBhbmltYXRpb25zLzNkL21hdHJpeC10cmFuc2Zv
cm0tdHlwZS1hbmltYXRpb24tY3Jhc2gtbG9nLnR4dFVUBQADV+EfVnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAPJST0fX5IzUSQQAAFIaAAA4ABgAAAAAAAEAAACkgZDdAwBhbmltYXRpb25zLzNk
L21hdHJpeC10cmFuc2Zvcm0tdHlwZS1hbmltYXRpb24tc3RkZXJyLnR4dFVUBQADF+EfVnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIABRTT0fWXluY7zIAADmxAAA1ABgAAAAAAAEAAACkgUviAwBh
bmltYXRpb25zLzNkL3JlcGxhY2UtZmlsbGluZy10cmFuc2Zvcm0tY3Jhc2gtbG9nLnR4dFVUBQAD
V+EfVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPpST0djEeQQSgQAAFIaAAAyABgAAAAAAAEA
AACkgakVBABhbmltYXRpb25zLzNkL3JlcGxhY2UtZmlsbGluZy10cmFuc2Zvcm0tc3RkZXJyLnR4
dFVUBQADJ+EfVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABRTT0eVEexA+DIAAHixAAA4ABgA
AAAAAAEAAACkgV8aBABhbmltYXRpb25zLzNkL3N0YXRlLWF0LWVuZC1ldmVudC10cmFuc2Zvcm0t
Y3Jhc2gtbG9nLnR4dFVUBQADV+EfVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAAVTT0f8If4D
SgQAAFIaAAA1ABgAAAAAAAEAAACkgclNBABhbmltYXRpb25zLzNkL3N0YXRlLWF0LWVuZC1ldmVu
dC10cmFuc2Zvcm0tc3RkZXJyLnR4dFVUBQADOuEfVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ABRTT0dckxwCgTIAAImvAAA5ABgAAAAAAAEAAACkgYJSBABhbmltYXRpb25zLzNkL3RyYW5zZm9y
bS1vcmlnaW4tdnMtZnVuY3Rpb25zLWNyYXNoLWxvZy50eHRVVAUAA1fhH1Z1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACAAMU09HucRLHUcEAABSGgAANgAYAAAAAAABAAAApIF2hQQAYW5pbWF0aW9u
cy8zZC90cmFuc2Zvcm0tb3JpZ2luLXZzLWZ1bmN0aW9ucy1zdGRlcnIudHh0VVQFAANI4R9WdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6lJPR3KgFkJzMgAAfq8AAC4AGAAAAAAAAQAAAKSBLYoE
AGFuaW1hdGlvbnMvYWRkZWQtd2hpbGUtc3VzcGVuZGVkLWNyYXNoLWxvZy50eHRVVAUAAwjhH1Z1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADqUk9HbJ+54UgEAABSGgAAKwAYAAAAAAABAAAApIEI
vQQAYW5pbWF0aW9ucy9hZGRlZC13aGlsZS1zdXNwZW5kZWQtc3RkZXJyLnR4dFVUBQADCOEfVnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPJST0ffD/hggTIAAIavAAA2ABgAAAAAAAEAAACkgbXB
BABhbmltYXRpb25zL2FkZGl0aXZlLXRyYW5zZm9ybS1hbmltYXRpb25zLWNyYXNoLWxvZy50eHRV
VAUAAxfhH1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADyUk9H1gXcGkwEAABSGgAAMwAYAAAA
AAABAAAApIGm9AQAYW5pbWF0aW9ucy9hZGRpdGl2ZS10cmFuc2Zvcm0tYW5pbWF0aW9ucy1zdGRl
cnIudHh0VVQFAAMX4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAFFNPR0zsYl/OMAAA5KgA
ADgAGAAAAAAAAQAAAKSBX/kEAGFuaW1hdGlvbnMvYW5pbWF0aW9uLWFkZC1ldmVudHMtaW4taGFu
ZGxlci1jcmFzaC1sb2cudHh0VVQFAANX4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA+lJP
RwrVtaNIBAAAUhoAADUAGAAAAAAAAQAAAKSBnyoFAGFuaW1hdGlvbnMvYW5pbWF0aW9uLWFkZC1l
dmVudHMtaW4taGFuZGxlci1zdGRlcnIudHh0VVQFAAMn4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAFFNPRzyoPLGAMgAAgq8AADIAGAAAAAAAAQAAAKSBVi8FAGFuaW1hdGlvbnMvYW5pbWF0
aW9uLWJvcmRlci1vdmVyZmxvdy1jcmFzaC1sb2cudHh0VVQFAANX4R9WdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgABVNPR0askj1KBAAAUhoAAC8AGAAAAAAAAQAAAKSBQmIFAGFuaW1hdGlvbnMv
YW5pbWF0aW9uLWJvcmRlci1vdmVyZmxvdy1zdGRlcnIudHh0VVQFAAM54R9WdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAFFNPR3EyJCV8MgAAha8AADUAGAAAAAAAAQAAAKSB9WYFAGFuaW1hdGlv
bnMvYW5pbWF0aW9uLWNvbnRyb2xsZXItZHJ0LWFwaS1jcmFzaC1sb2cudHh0VVQFAANX4R9WdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgADFNPR4PXJQJGBAAAUhoAADIAGAAAAAAAAQAAAKSB4JkF
AGFuaW1hdGlvbnMvYW5pbWF0aW9uLWNvbnRyb2xsZXItZHJ0LWFwaS1zdGRlcnIudHh0VVQFAANH
4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAEVNPRwAAAAAAAAAAAAAAAAcAGAAAAAAAAAAQ
AO1Bkp4FAGNhbnZhcy9VVAUAA1LhH1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAARU09HAAAA
AAAAAAAAAAAADgAYAAAAAAAAABAA7UHTngUAY2FudmFzL3BoaWxpcC9VVAUAA1LhH1Z1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAAARU09HAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA7UEbnwUAY2Fu
dmFzL3BoaWxpcC90ZXN0cy9VVAUAA1LhH1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAARU09H
P7RNNmgEAACUGgAANAAYAAAAAAABAAAApIFpnwUAY2FudmFzL3BoaWxpcC90ZXN0cy8yZC5jYW52
YXMucmVhZG9ubHktY3Jhc2gtbG9nLnR4dFVUBQADUuEfVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIABFTT0c8xy/fSAQAAFIaAAAxABgAAAAAAAEAAACkgT+kBQBjYW52YXMvcGhpbGlwL3Rlc3Rz
LzJkLmNhbnZhcy5yZWFkb25seS1zdGRlcnIudHh0VVQFAANS4R9WdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAElNPRwAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1B8qgFAGNvbXBvc2l0aW5nL1VU
BQADU+EfVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABFTT0cyGJaOagQAAJQaAAA7ABgAAAAA
AAEAAACkgTipBQBjb21wb3NpdGluZy9hYnNvbHV0ZS1pbnNpZGUtb3V0LW9mLXZpZXctZml4ZWQt
Y3Jhc2gtbG9nLnR4dFVUBQADUuEfVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABFTT0eQJBA4
SwQAAFIaAAA4ABgAAAAAAAEAAACkgReuBQBjb21wb3NpdGluZy9hYnNvbHV0ZS1pbnNpZGUtb3V0
LW9mLXZpZXctZml4ZWQtc3RkZXJyLnR4dFVUBQADUuEfVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAABFTT0cAAAAAAAAAAAAAAAAWABgAAAAAAAAAEADtQdSyBQBjb21wb3NpdGluZy9hbmltYXRp
b24vVVQFAANS4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAEVNPR0ns7QpmBAAAlBoAAEUA
GAAAAAAAAQAAAKSBJLMFAGNvbXBvc2l0aW5nL2FuaW1hdGlvbi9hbmltYXRlZC1jb21wb3NpdGVk
LWluc2lkZS1oaWRkZW4tY3Jhc2gtbG9nLnR4dFVUBQADUuEfVnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIABFTT0dlWtORRgQAAFIaAABCABgAAAAAAAEAAACkgQm4BQBjb21wb3NpdGluZy9hbmlt
YXRpb24vYW5pbWF0ZWQtY29tcG9zaXRlZC1pbnNpZGUtaGlkZGVuLXN0ZGVyci50eHRVVAUAA1Lh
H1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAARU09HAAAAAAAAAAAAAAAAIAAYAAAAAAAAABAA
7UHLvAUAY29tcG9zaXRpbmcvYmFja2ZhY2UtdmlzaWJpbGl0eS9VVAUAA1LhH1Z1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAARU09HNLWEhmkEAACUGgAARAAYAAAAAAABAAAApIElvQUAY29tcG9z
aXRpbmcvYmFja2ZhY2UtdmlzaWJpbGl0eS9iYWNrZmFjZS12aXNpYmlsaXR5LTNkLWNyYXNoLWxv
Zy50eHRVVAUAA1LhH1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAARU09HEbhtn0kEAABSGgAA
QQAYAAAAAAABAAAApIEMwgUAY29tcG9zaXRpbmcvYmFja2ZhY2UtdmlzaWJpbGl0eS9iYWNrZmFj
ZS12aXNpYmlsaXR5LTNkLXN0ZGVyci50eHRVVAUAA1LhH1Z1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAAARU09HAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA7UHQxgUAY29tcG9zaXRpbmcvYmFja2lu
Zy9VVAUAA1LhH1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAARU09HIgzNrWgEAACUGgAAOgAY
AAAAAAABAAAApIEexwUAY29tcG9zaXRpbmcvYmFja2luZy9iYWNrZmFjZS12aXNpYmlsaXR5LWZs
aXAtY3Jhc2gtbG9nLnR4dFVUBQADUuEfVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABFTT0c6
IuTXSAQAAFIaAAA3ABgAAAAAAAEAAACkgfrLBQBjb21wb3NpdGluZy9iYWNraW5nL2JhY2tmYWNl
LXZpc2liaWxpdHktZmxpcC1zdGRlcnIudHh0VVQFAANS4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAElNPRwAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1Bs9AFAGNvbXBvc2l0aW5nL2NhbnZh
cy9VVAUAA1PhH1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAASU09HYfdYYWUEAACUGgAAPwAY
AAAAAAABAAAApIEA0QUAY29tcG9zaXRpbmcvY2FudmFzL2FjY2VsZXJhdGVkLWNhbnZhcy1jb21w
b3NpdGluZy1jcmFzaC1sb2cudHh0VVQFAANT4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
ElNPR2gvHiJGBAAAUhoAADwAGAAAAAAAAQAAAKSB3tUFAGNvbXBvc2l0aW5nL2NhbnZhcy9hY2Nl
bGVyYXRlZC1jYW52YXMtY29tcG9zaXRpbmctc3RkZXJyLnR4dFVUBQADU+EfVnV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAABJTT0cAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQZraBQBjb21wb3Np
dGluZy9jbGlwcGluZy9VVAUAA1PhH1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAASU09HbMhC
PmsEAACUGgAAUQAYAAAAAAABAAAApIHp2gUAY29tcG9zaXRpbmcvY2xpcHBpbmcvYm9yZGVyLXJh
ZGl1cy1vdmVyZmxvdy1oaWRkZW4tc3RhY2tpbmctY29udGV4dC1jcmFzaC1sb2cudHh0VVQFAANT
4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAElNPR3tGMolMBAAAUhoAAE4AGAAAAAAAAQAA
AKSB398FAGNvbXBvc2l0aW5nL2NsaXBwaW5nL2JvcmRlci1yYWRpdXMtb3ZlcmZsb3ctaGlkZGVu
LXN0YWNraW5nLWNvbnRleHQtc3RkZXJyLnR4dFVUBQADU+EfVnV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAABJTT0cAAAAAAAAAAAAAAAAbABgAAAAAAAAAEADtQbPkBQBjb21wb3NpdGluZy9jb2xv
ci1tYXRjaGluZy9VVAUAA1PhH1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAASU09HW8l4fWwE
AACUGgAAPQAYAAAAAAABAAAApIEI5QUAY29tcG9zaXRpbmcvY29sb3ItbWF0Y2hpbmcvaW1hZ2Ut
Y29sb3ItbWF0Y2hpbmctY3Jhc2gtbG9nLnR4dFVUBQADU+EfVnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIABJTT0dpDvXLTAQAAFIaAAA6ABgAAAAAAAEAAACkgevpBQBjb21wb3NpdGluZy9jb2xv
ci1tYXRjaGluZy9pbWFnZS1jb2xvci1tYXRjaGluZy1zdGRlcnIudHh0VVQFAANT4R9WdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAElNPRwAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1Bq+4FAGNv
bXBvc2l0aW5nL2NvbHVtbnMvVVQFAANT4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAElNP
R34X3AJnBAAAlBoAAD8AGAAAAAAAAQAAAKSB+e4FAGNvbXBvc2l0aW5nL2NvbHVtbnMvYW5jZXN0
b3ItY2xpcHBlZC1pbi1wYWdpbmF0ZWQtY3Jhc2gtbG9nLnR4dFVUBQADU+EfVnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIABJTT0fDS1BpRwQAAFIaAAA8ABgAAAAAAAEAAACkgdnzBQBjb21wb3Np
dGluZy9jb2x1bW5zL2FuY2VzdG9yLWNsaXBwZWQtaW4tcGFnaW5hdGVkLXN0ZGVyci50eHRVVAUA
A1PhH1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAASU09HAAAAAAAAAAAAAAAAHAAYAAAAAAAA
ABAA7UGW+AUAY29tcG9zaXRpbmcvY29udGVudHMtb3BhcXVlL1VUBQADU+EfVnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIABJTT0e7zrROZQQAAJQaAAA5ABgAAAAAAAEAAACkgez4BQBjb21wb3Np
dGluZy9jb250ZW50cy1vcGFxdWUvYmFja2dyb3VuZC1jbGlwLWNyYXNoLWxvZy50eHRVVAUAA1Ph
H1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAASU09HeTGv6UYEAABSGgAANgAYAAAAAAABAAAA
pIHE/QUAY29tcG9zaXRpbmcvY29udGVudHMtb3BhcXVlL2JhY2tncm91bmQtY2xpcC1zdGRlcnIu
dHh0VVQFAANT4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAElNPRwAAAAAAAAAAAAAAABsA
GAAAAAAAAAAQAO1BegIGAGNvbXBvc2l0aW5nL2NvbnRlbnRzLXNjYWxlL1VUBQADU+EfVnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIABJTT0fq6/5HZgQAAJQaAAAyABgAAAAAAAEAAACkgc8CBgBj
b21wb3NpdGluZy9jb250ZW50cy1zY2FsZS9hbmltYXRpbmctY3Jhc2gtbG9nLnR4dFVUBQADU+Ef
VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABJTT0eTkLB5RgQAAFIaAAAvABgAAAAAAAEAAACk
gaEHBgBjb21wb3NpdGluZy9jb250ZW50cy1zY2FsZS9hbmltYXRpbmctc3RkZXJyLnR4dFVUBQAD
U+EfVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIABJTT0f4gWKiyQAAAC4BAAANABgAAAAAAAEA
AACkgVAMBgBlcnJvcl9sb2cudHh0VVQFAANU4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
FFNPR+ux0HHIAgAAjg4AABEAGAAAAAAAAQAAAKSBYA0GAGZ1bGxfcmVzdWx0cy5qc29uVVQFAANY
4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4FJPR+qKfEJhBQAABQ8AAAoAGAAAAAAAAQAA
AKSBcxAGAGh0dHBkLmNvbmZVVAUAA/TgH1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADhUk9H
AAAAAAAAAAAAAAAAKwAYAAAAAAAAAAAApIEYFgYAcHl3ZWJzb2NrZXQud3MubG9nLTE1T2N0MjAx
NS0xMDIzMDEtZXJyLnR4dFVUBQAD9eAfVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAOFST0cA
AAAAAAAAAAAAAAArABgAAAAAAAAAAACkgX0WBgBweXdlYnNvY2tldC53cy5sb2ctMTVPY3QyMDE1
LTEwMjMwMS1vdXQudHh0VVQFAAP14B9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAFVNPR+R8
RaOeJgAA26QAAAwAGAAAAAAAAQAAAKSB4hYGAHJlc3VsdHMuaHRtbFVUBQADWeEfVnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIABRTT0flEeuEWAMAAHkJAAAKABgAAAAAAAEAAACkgcY9BgBzdGF0
cy5qc29uVVQFAANY4R9WdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA8VJPR/1L8yvKBAAAthkA
ABkAGAAAAAAAAAAAAKSBYkEGAHdwdHdrX3Byb2Nlc3NfbG9nLm91dC50eHRVVAUAAxXhH1Z1eAsA
AQT1AQAABBQAAABQSwUGAAAAAHAAcABxMQAAf0YGAAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263354</attachid>
            <date>2015-10-16 17:51:58 -0700</date>
            <delta_ts>2015-10-16 18:31:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150174-20151016175118.patch</filename>
            <type>text/plain</type>
            <size>85181</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxMjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzU2NTMxYjBlYzg5YzY2
ZmU4ZDdmODgyY2JhOTI3MDFkMzU1MTFlOS4uMTNkNDE0ZTExNGZlZjc3MWUwMDJiMTNlY2ZhZjE1
MTgzMTViM2VmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTEwLTE2ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFdLVmlldyBiZWlu
ZyBpbnNpZGUgV0tXZWJWaWV3IGxlYWRzIHRvIHdlaXJkIEFQSSBpc3N1ZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE3NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywganVzdCBt
b3ZpbmcgY29kZSBhcm91bmQuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vc3BpL21hYy9OU1dpbmRvd1NQSS5oOiBBZGRl
ZC4KKwogMjAxNS0xMC0xNiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQu
b3JnPgogCiAgICAgICAgIERpc2FibGVkIGNvbnRlbnQgYmxvY2tlcnMgc2hvdWxkIG5vdCBibG9j
ayBhbnkgbG9hZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBkZGM3NGFjNTQxZWJjNzAwOTMxOTc4ZmI5MWNjMmRl
ZmU0MWEwMWQwLi5hMjEzNzdlZGM4MzNlMTRhYWRmYTE3ZDUxYmJmNTAwYzIxYmRjMTE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTEwIEBACisyMDE1LTEwLTE2ICBUaW0gSG9ydG9uICA8dGltb3Ro
eV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFdLVmlldyBiZWluZyBpbnNpZGUgV0tXZWJW
aWV3IGxlYWRzIHRvIHdlaXJkIEFQSSBpc3N1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpXZWJWaWV3SW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp+V2ViVmlld0lt
cGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0RHJhd3NCYWNrZ3JvdW5kKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRyYXdzQmFja2dyb3VuZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphY2NlcHRzRmlyc3RSZXNwb25kZXIpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YmVjb21lRmlyc3RSZXNwb25kZXIpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cmVzaWduRmlyc3RSZXNwb25kZXIpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aXNGb2N1c2VkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OnZpZXdXaWxsU3RhcnRMaXZlUmVzaXplKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OnZpZXdEaWRFbmRMaXZlUmVzaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OnNldEZyYW1lU2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkaXNh
YmxlRnJhbWVTaXplVXBkYXRlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjplbmFi
bGVGcmFtZVNpemVVcGRhdGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmZyYW1l
U2l6ZVVwZGF0ZXNEaXNhYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRG
cmFtZUFuZFNjcm9sbEJ5KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEZpeGVk
TGF5b3V0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpmaXhlZExheW91dFNp
emUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0RHJhd2luZ0FyZWFTaXplKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldENvbnRlbnRQcmVwYXJhdGlvblJlY3Qp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlVmlld0V4cG9zZWRSZWN0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldENsaXBzVG9WaXNpYmxlUmVjdCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRJbnRyaW5zaWNDb250ZW50U2l6ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppbnRyaW5zaWNDb250ZW50U2l6ZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRWaWV3U2NhbGUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6dmlld1NjYWxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
OmxheW91dE1vZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGF5b3V0TW9k
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzdXBwb3J0c0FyYml0cmFyeUxheW91
dE1vZGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZVN1cHBvcnRzQXJi
aXRyYXJ5TGF5b3V0TW9kZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRl
U2VjdXJlSW5wdXRTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZXNldFNl
Y3VyZUlucHV0U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bm90aWZ5SW5w
dXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpoYXNGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcik6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpmdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjpjbG9zZUZ1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3JlYXRlRnVsbFNjcmVlbldpbmRvdyk6Cisg
ICAgICAgIE1vdmUgdGhlIGFjdHVhbCBpbXBsZW1lbnRhdGlvbiBvZiBhIG51bWJlciBvZiBXS1Zp
ZXcgbWV0aG9kcyBpbnRvIGEKKyAgICAgICAgQysrIGNsYXNzLCBXZWJWaWV3SW1wbCwgd2hpY2gg
V0tWaWV3IGNhbGxzIGRpcmVjdGx5IGludG8uCisgICAgICAgIEV2ZW50dWFsbHksIHdlIHdpbGwg
bW92ZSBhbGwgb2YgdGhlIGxvZ2ljIG9mIFdLVmlldyBpbnRvIFdlYlZpZXdJbXBsLAorICAgICAg
ICBhbmQgdGhlbiBkdXBsaWNhdGUgdGhlIG5lY2Vzc2FyeSBmb3J3YXJkaW5nIGluIFdLV2ViVmll
dyBhbmQgcmVtb3ZlCisgICAgICAgIFdLV2ViVmlldydzIGlubmVyIFdLVmlldy4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6
aXNWaWV3Rm9jdXNlZCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRDb21t
aXRMb2FkRm9yTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnVw
ZGF0ZVNlY3VyZUlucHV0U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6
cmVzZXRTZWN1cmVJbnB1dFN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6
Om5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb24pOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6YmVnYW5FbnRlckZ1bGxTY3JlZW4pOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6YmVnYW5FeGl0RnVsbFNjcmVlbik6CisgICAgICAgIEZv
ciBub3csIGZvcndhcmQgUGFnZUNsaWVudCByZXF1ZXN0cyB0aGF0IGNhbiBiZSBhbnN3ZXJlZCBi
eSBXZWJWaWV3SW1wbAorICAgICAgICB0byBXZWJWaWV3SW1wbC4gRXZlbnR1YWxseSwgd2UnbGwg
cHJvYmFibHkgZm9sZCBQYWdlQ2xpZW50SW1wbCBhbmQgV2ViVmlld0ltcGwKKyAgICAgICAgdG9n
ZXRoZXIgaW50byBvbmUgY2xhc3MsIGFuZCB0aGVzZSB0aGluZ3Mgd2lsbCBjb2xsYXBzZSBkb3du
LgorCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
Lm1tOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGluaXRXaXRoV2lu
ZG93OndlYlZpZXc6cGFnZTpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJv
bGxlciBlbnRlckZ1bGxTY3JlZW46XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIgZmluaXNoZWRFbnRlckZ1bGxTY3JlZW5BbmltYXRpb246XSk6CisgICAgICAgICgt
W1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZXhpdEZ1bGxTY3JlZW5dKToKKyAgICAgICAg
KC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBmaW5pc2hlZEV4aXRGdWxsU2NyZWVuQW5p
bWF0aW9uOl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGNvbXBs
ZXRlRmluaXNoRXhpdEZ1bGxTY3JlZW5BbmltYXRpb25BZnRlclJlcGFpbnRdKToKKyAgICAgICAg
KC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBfbWFuYWdlcl0pOgorICAgICAgICAoLVtX
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIF9zdGFydEVudGVyRnVsbFNjcmVlbkFuaW1hdGlv
bldpdGhEdXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
ciBfc3RhcnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjpdKToKKyAgICAgICAg
KC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBpbml0V2l0aFdpbmRvdzp3ZWJWaWV3Ol0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIF9wYWdl
XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVn
eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kubW06Cisg
ICAgICAgICgrW1dLVmlld0xheW91dFN0cmF0ZWd5IGxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6dmll
dzp2aWV3SW1wbDptb2RlOl0pOgorICAgICAgICAoLVtXS1ZpZXdMYXlvdXRTdHJhdGVneSBpbml0
V2l0aFBhZ2U6dmlldzp2aWV3SW1wbDptb2RlOl0pOgorICAgICAgICAoLVtXS1ZpZXdMYXlvdXRT
dHJhdGVneSBpbnZhbGlkYXRlXSk6CisgICAgICAgICgtW1dLVmlld0xheW91dFN0cmF0ZWd5IGRp
ZENoYW5nZUZyYW1lU2l6ZV0pOgorICAgICAgICAoLVtXS1ZpZXdWaWV3U2l6ZUxheW91dFN0cmF0
ZWd5IGluaXRXaXRoUGFnZTp2aWV3OnZpZXdJbXBsOm1vZGU6XSk6CisgICAgICAgICgtW1dLVmll
d0ZpeGVkU2l6ZUxheW91dFN0cmF0ZWd5IGluaXRXaXRoUGFnZTp2aWV3OnZpZXdJbXBsOm1vZGU6
XSk6CisgICAgICAgICgtW1dLVmlld0R5bmFtaWNTaXplQ29tcHV0ZWRGcm9tVmlld1NjYWxlTGF5
b3V0U3RyYXRlZ3kgaW5pdFdpdGhQYWdlOnZpZXc6dmlld0ltcGw6bW9kZTpdKToKKyAgICAgICAg
KC1bV0tWaWV3RHluYW1pY1NpemVDb21wdXRlZEZyb21WaWV3U2NhbGVMYXlvdXRTdHJhdGVneSB1
cGRhdGVMYXlvdXRdKToKKyAgICAgICAgKC1bV0tWaWV3RHluYW1pY1NpemVDb21wdXRlZEZyb21W
aWV3U2NhbGVMYXlvdXRTdHJhdGVneSBkaWRDaGFuZ2VGcmFtZVNpemVdKToKKyAgICAgICAgKC1b
V0tWaWV3RHluYW1pY1NpemVDb21wdXRlZEZyb21NaW5pbXVtRG9jdW1lbnRTaXplTGF5b3V0U3Ry
YXRlZ3kgaW5pdFdpdGhQYWdlOnZpZXc6dmlld0ltcGw6bW9kZTpdKToKKyAgICAgICAgKCtbV0tW
aWV3TGF5b3V0U3RyYXRlZ3kgbGF5b3V0U3RyYXRlZ3lXaXRoUGFnZTp2aWV3Om1vZGU6XSk6IERl
bGV0ZWQuCisgICAgICAgICgtW1dLVmlld0xheW91dFN0cmF0ZWd5IGluaXRXaXRoUGFnZTp2aWV3
Om1vZGU6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlld0xheW91dFN0cmF0ZWd5IHdpbGxE
ZXN0cm95VmlldzpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3Vmlld1NpemVMYXlvdXRT
dHJhdGVneSBpbml0V2l0aFBhZ2U6dmlldzptb2RlOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S1ZpZXdGaXhlZFNpemVMYXlvdXRTdHJhdGVneSBpbml0V2l0aFBhZ2U6dmlldzptb2RlOl0pOiBE
ZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXdEeW5hbWljU2l6ZUNvbXB1dGVkRnJvbVZpZXdTY2Fs
ZUxheW91dFN0cmF0ZWd5IGluaXRXaXRoUGFnZTp2aWV3Om1vZGU6XSk6IERlbGV0ZWQuCisgICAg
ICAgICgtW1dLVmlld0R5bmFtaWNTaXplQ29tcHV0ZWRGcm9tTWluaW11bURvY3VtZW50U2l6ZUxh
eW91dFN0cmF0ZWd5IGluaXRXaXRoUGFnZTp2aWV3Om1vZGU6XSk6IERlbGV0ZWQuCisgICAgICAg
IE1ha2UgV0tWaWV3TGF5b3V0U3RyYXRlZ3kgYW5kIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIgb3BlcmF0ZSBpbiB0ZXJtcyBvZiBnZW5lcmljCisgICAgICAgIE5TVmlld3MgaW5zdGVhZCBv
ZiBXS1ZpZXcsIHNvIHRoYXQgZXZlbnR1YWxseSB0aGV5IHdpbGwgYmUgYWJsZSB0byB3b3JrIGZv
ciBlaXRoZXIKKyAgICAgICAgV0tWaWV3IG9yIFdLV2ViVmlldywgYW5kIHNvIHRoYXQgdGhleSBj
YW4gc2l0IHVuZGVybmVhdGggV2ViVmlld0ltcGwuCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMTUtMTAtMTYgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBUZXh0U3RyZWFtIHRoZSBjYW5vbmlj
YWwgd2F5IHRvIGxvZyBjbGFzc2VzIGluIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhMDU5ZjM3ZDhhNzBlZDIzYTU5
YzQyMTdkNmZiMjQwM2E5OTAwZmE3Li41ZWRiMmM1NDNmZmQxYWM0OTlmNTg4NDliM2Q5MTBlZjEz
NTM2OWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xMTE3LDYgKzExMTcsNyBAQAogCQkyQkU4RTJDOTEyQTU4QTAxMDBGQUQ1
NTAgLyogSFRNTE1ldGFDaGFyc2V0UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJCRThFMkM4MTJBNThBMDEwMEZBRDU1MCAvKiBIVE1MTWV0
YUNoYXJzZXRQYXJzZXIuY3BwICovOyB9OwogCQkyRDBCNEFBQjE4REExQ0NEMDA0MzRERTEgLyog
SU9TdXJmYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyRDBCNEFBOTE4REExQ0NEMDA0MzRERTEgLyogSU9TdXJmYWNlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkQwQjRBQUMxOERBMUNDRDAwNDM0
REUxIC8qIElPU3VyZmFjZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJEMEI0QUFBMThEQTFDQ0QwMDQzNERFMSAvKiBJT1N1cmZhY2UubW0gKi87IH07
CisJCTJEMENGODE3MUJDRjVERTEwMDdBNDkzNyAvKiBOU1dpbmRvd1NQSS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQwQ0Y4MTYxQkNGNURFMTAwN0E0
OTM3IC8qIE5TV2luZG93U1BJLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJMkQyMzJDMDAxQTMyNkYwMjAwNkJGMkRCIC8qIFRVQ2FsbFNQSS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyMzJCRkYxQTMy
NkVGOTAwNkJGMkRCIC8qIFRVQ2FsbFNQSS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTJEMjUzOTYyMThDRTdGNjIwMDI3MDIyMiAvKiBJbWFnZUNv
bnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSAyRDI1Mzk2MDE4Q0U3RjYyMDAyNzAyMjIgLyogSW1hZ2VDb250cm9s
c0J1dHRvbkVsZW1lbnRNYWMuY3BwICovOyB9OwogCQkyRDI1Mzk2MzE4Q0U3RjYyMDAyNzAyMjIg
LyogSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMjUzOTYxMThDRTdGNjIwMDI3MDIyMiAvKiBJbWFn
ZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oICovOyB9OwpAQCAtODQxOSw2ICs4NDIwLDcgQEAK
IAkJMkJFOEUyQzgxMkE1OEEwMTAwRkFENTUwIC8qIEhUTUxNZXRhQ2hhcnNldFBhcnNlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIVE1MTWV0YUNoYXJzZXRQYXJz
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDBCNEFBOTE4REExQ0NEMDA0
MzRERTEgLyogSU9TdXJmYWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElP
U3VyZmFjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDBCNEFBQTE4REExQ0NE
MDA0MzRERTEgLyogSU9TdXJmYWNlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gSU9TdXJmYWNlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyRDBD
RjgxNjFCQ0Y1REUxMDA3QTQ5MzcgLyogTlNXaW5kb3dTUEkuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTlNXaW5kb3dTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkQyMzJCRkYxQTMyNkVGOTAwNkJGMkRCIC8qIFRVQ2FsbFNQSS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBUVUNhbGxTUEkuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyNTM5NjAxOENF
N0Y2MjAwMjcwMjIyIC8qIEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50
TWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkQyNTM5NjExOENFN0Y2MjAw
MjcwMjIyIC8qIEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODQ4NCw2ICsxODQ4Niw3IEBACiAJCQkJRjQwRUE4
QUExQjg2N0Q2NTAwQ0U1NTgxIC8qIE5TU2Nyb2xsaW5nSW5wdXRGaWx0ZXJTUEkuaCAqLywKIAkJ
CQkyRENCODM3NzE5Rjk5QkJBMDBBN0ZCRTQgLyogTlNTaGFyaW5nU2VydmljZVBpY2tlclNQSS5o
ICovLAogCQkJCTJEQ0I4Mzc4MTlGOTlCQkEwMEE3RkJFNCAvKiBOU1NoYXJpbmdTZXJ2aWNlU1BJ
LmggKi8sCisJCQkJMkQwQ0Y4MTYxQkNGNURFMTAwN0E0OTM3IC8qIE5TV2luZG93U1BJLmggKi8s
CiAJCQkJOTM3RjRDQ0IxQTJENDhDMTAwQkIzOUY1IC8qIFF1aWNrTG9va01hY1NQSS5oICovLAog
CQkJCTJEMjMyQkZGMUEzMjZFRjkwMDZCRjJEQiAvKiBUVUNhbGxTUEkuaCAqLywKIAkJCSk7CkBA
IC0yNzc2Myw2ICsyNzc2Niw3IEBACiAJCQkJNDRBMjBEQjkwRjg0MTY2QzAwQjNFMUZFIC8qIFdl
YkNvcmVVUkxSZXNwb25zZUlPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5RjAwODI0NUU1
OTAwMUU5QUJDIC8qIFdlYkNvcmVWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUU2MTY3NDE4
OTQ1ODFGMDA5QURGNTAgLyogV2ViRGVidWdnZXJBZ2VudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
MkQwQ0Y4MTcxQkNGNURFMTAwN0E0OTM3IC8qIE5TV2luZG93U1BJLmggaW4gSGVhZGVycyAqLywK
IAkJCQlGRTBEODRFOTEwNDg0MzQ4MDAxQTE3OUUgLyogV2ViRXZlbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCTIyNUExNkI1MEQ1QzExRTkwMDA5MDI5NSAvKiBXZWJFdmVudFJlZ2lvbi5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTE5RDkzNDcxQTlGRUM3MjAwQjQ2QzI0IC8qIFdlYkZpbHRlckV2YWx1
YXRvclNQSS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9zcGkvbWFjL05TV2luZG93U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkv
bWFjL05TV2luZG93U1BJLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDJjMzNmNzEzNTU3ZWFkYzVkMDYxMjdkOTky
OTA3YTY2NjRjMjY2ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3NwaS9tYWMvTlNXaW5kb3dTUEkuaApAQCAtMCwwICsxLDQ2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lt
cG9ydCA8d3RmL1BsYXRmb3JtLmg+CisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpZiBVU0UoQVBQ
TEVfSU5URVJOQUxfU0RLKQorCisjaW1wb3J0IDxBcHBLaXQvTlNXaW5kb3dfUHJpdmF0ZS5oPgor
CisjZWxzZQorCisjaW1wb3J0IDxBcHBLaXQvTlNXaW5kb3cuaD4KKworQGludGVyZmFjZSBOU1dp
bmRvdyAoKQorCistIChpZClfbmV3Rmlyc3RSZXNwb25kZXJBZnRlclJlc2lnbmluZzsKKworQGVu
ZAorCisjZW5kaWYKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCA5ZWEzNjdkYmY5YWY3Yzk2ZTU3YzE4NWUw
OTc2ZmZhNjJjMWU1OGI5Li45YmIwZGYzZjNhMWI1ODZjYzhlYTRmNmVmOTU0YmYxMWE3YTZiZDNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC02NSw3
ICs2NSw2IEBACiAjaW1wb3J0ICJXS1N0cmluZ0NGLmgiCiAjaW1wb3J0ICJXS1RleHRJbnB1dFdp
bmRvd0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLVmlld0ludGVybmFsLmgiCi0jaW1wb3J0ICJX
S1ZpZXdMYXlvdXRTdHJhdGVneS5oIgogI2ltcG9ydCAiV0tWaWV3UHJpdmF0ZS5oIgogI2ltcG9y
dCAiV0tXZWJWaWV3LmgiCiAjaW1wb3J0ICJXZWJCYWNrRm9yd2FyZExpc3QuaCIKQEAgLTgwLDYg
Kzc5LDcgQEAKICNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNz
UHJveHkuaCIKICNpbXBvcnQgIldlYlN5c3RlbUludGVyZmFjZS5oIgorI2ltcG9ydCAiV2ViVmll
d0ltcGwuaCIKICNpbXBvcnQgIl9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5SW50ZXJuYWwuaCIKICNp
bXBvcnQgIl9XS1RodW1ibmFpbFZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCA8UXVhcnR6Q29yZS9R
dWFydHpDb3JlLmg+CkBAIC0xMjksMTAgKzEyOSw2IEBACiAtICh2b2lkKV9zZXRDdXJyZW50RXZl
bnQ6KE5TRXZlbnQgKilldmVudDsKIEBlbmQKIAotQGludGVyZmFjZSBOU1dpbmRvdyAoV0tOU1dp
bmRvd0RldGFpbHMpCi0tIChpZClfbmV3Rmlyc3RSZXNwb25kZXJBZnRlclJlc2lnbmluZzsKLUBl
bmQKLQogI2lmIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKIEBpbnRlcmZhY2UgTlNUZXh0
SW5wdXRDb250ZXh0IChXS05TVGV4dElucHV0Q29udGV4dERldGFpbHMpCiAtICh2b2lkKWhhbmRs
ZUV2ZW50OihOU0V2ZW50ICopdGhlRXZlbnQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9P
TCBoYW5kbGVkKSljb21wbGV0aW9uSGFuZGxlcjsKQEAgLTE4MCw2ICsxNzYsNyBAQCBzdHJ1Y3Qg
V0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiBAcHVibGljCiAgICAgc3RkOjp1
bmlxdWVfcHRyPFBhZ2VDbGllbnRJbXBsPiBfcGFnZUNsaWVudDsKICAgICBSZWZQdHI8V2ViUGFn
ZVByb3h5PiBfcGFnZTsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViVmlld0ltcGw+IF9pbXBsOwog
CiAjaWYgV0tfQVBJX0VOQUJMRUQKICAgICBSZXRhaW5QdHI8V0tCcm93c2luZ0NvbnRleHRDb250
cm9sbGVyPiBfYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcjsKQEAgLTIxNCwxNiArMjExLDEyIEBA
IHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKICAgICBXS1ZpZXdJ
bnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzKiBfaW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVy
czsKICNlbmRpZgogCi0gICAgTlNTaXplIF9yZXNpemVTY3JvbGxPZmZzZXQ7Ci0KICAgICAvLyBU
aGUgaWRlbnRpZmllciBvZiB0aGUgcGx1Zy1pbiB3ZSB3YW50IHRvIHNlbmQgY29tcGxleCB0ZXh0
IGlucHV0IHRvLCBvciAwIGlmIHRoZXJlIGlzIG5vbmUuCiAgICAgdWludDY0X3QgX3BsdWdpbkNv
bXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyOwogCiAgICAgLy8gVGhlIHN0YXRlIG9mIGNvbXBsZXgg
dGV4dCBpbnB1dCBmb3IgdGhlIHBsdWctaW4uCiAgICAgUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0
YXRlIF9wbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGU7CiAKLSAgICBib29sIF9pbkJlY29tZUZp
cnN0UmVzcG9uZGVyOwotICAgIGJvb2wgX2luUmVzaWduRmlyc3RSZXNwb25kZXI7CiAgICAgQk9P
TCBfd2lsbEJlY29tZUZpcnN0UmVzcG9uZGVyQWdhaW47CiAgICAgTlNFdmVudCAqX21vdXNlRG93
bkV2ZW50OwogICAgIE5TRXZlbnQgKl9wcmVzc3VyZUV2ZW50OwpAQCAtMjMxLDE1ICsyMjQsOSBA
QCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiAKICAgICBpZCBf
ZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yOwogCi0jaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQot
ICAgIFJldGFpblB0cjxXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyPiBfZnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXI7Ci0jZW5kaWYKLQogICAgIEJPT0wgX2hhc1NwZWxsQ2hlY2tlckRvY3Vt
ZW50VGFnOwogICAgIE5TSW50ZWdlciBfc3BlbGxDaGVja2VyRG9jdW1lbnRUYWc7CiAKLSAgICBC
T09MIF9pblNlY3VyZUlucHV0U3RhdGU7Ci0KICAgICBCT09MIF9zaG91bGREZWZlclZpZXdJbldp
bmRvd0NoYW5nZXM7CiAgICAgTlNXaW5kb3cgKl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRp
b247CiAKQEAgLTI1MywxMSArMjQwLDcgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50
c1BhcmFtZXRlcnMgewogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gX3Byb21pc2VkSW1hZ2U7
CiAgICAgU3RyaW5nIF9wcm9taXNlZEZpbGVuYW1lOwogICAgIFN0cmluZyBfcHJvbWlzZWRVUkw7
Ci0gICAgCi0gICAgTlNTaXplIF9pbnRyaW5zaWNDb250ZW50U2l6ZTsKLSAgICBCT09MIF9jbGlw
c1RvVmlzaWJsZVJlY3Q7Ci0gICAgTlNSZWN0IF9jb250ZW50UHJlcGFyYXRpb25SZWN0OwotICAg
IEJPT0wgX3VzZUNvbnRlbnRQcmVwYXJhdGlvblJlY3RGb3JWaXNpYmxlUmVjdDsKKwogICAgIEJP
T0wgX3dpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQ7CiAKICAgICBSZXRhaW5QdHI8V0tX
aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXI+IF93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXI7CkBAIC0y
NjksMTAgKzI1Miw2IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJz
IHsKICAgICBCT09MIF9hbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlczsKICAgICBC
T09MIF9hbGxvd3NMaW5rUHJldmlldzsKIAotICAgIFJldGFpblB0cjxXS1ZpZXdMYXlvdXRTdHJh
dGVneT4gX2xheW91dFN0cmF0ZWd5OwotICAgIFdLTGF5b3V0TW9kZSBfbGFzdFJlcXVlc3RlZExh
eW91dE1vZGU7Ci0gICAgZmxvYXQgX2xhc3RSZXF1ZXN0ZWRWaWV3U2NhbGU7Ci0KICAgICBSZXRh
aW5QdHI8Q0FMYXllcj4gX3Jvb3RMYXllcjsKIAogICAgIEJPT0wgX2RpZFNjaGVkdWxlU2V0VG9w
Q29udGVudEluc2V0OwpAQCAtMzY4LDYgKzM0Nyw5IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRL
ZXlFdmVudHNQYXJhbWV0ZXJzIHsKIAogQGVuZAogCitAaW50ZXJmYWNlIFdLVmlldyAoKSA8V2Vi
Vmlld0ltcGxEZWxlZ2F0ZT4KK0BlbmQKKwogQGltcGxlbWVudGF0aW9uIFdLVmlldwogCiAjaWYg
V0tfQVBJX0VOQUJMRUQKQEAgLTM4OSw3ICszNzEsOCBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0
S2V5RXZlbnRzUGFyYW1ldGVycyB7CiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDEwMDAKICAgICBbX2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIHdpbGxE
ZXN0cm95VmlldzpzZWxmXTsKICNlbmRpZgotICAgIFtfZGF0YS0+X2xheW91dFN0cmF0ZWd5IHdp
bGxEZXN0cm95VmlldzpzZWxmXTsKKworICAgIF9kYXRhLT5faW1wbCA9IG51bGxwdHI7CiAKICNp
ZiBXS19BUElfRU5BQkxFRAogICAgIGlmIChfZGF0YS0+X3JlbW90ZU9iamVjdFJlZ2lzdHJ5KSB7
CkBAIC00MDMsNyArMzg2LDYgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFt
ZXRlcnMgewogI2lmIFdLX0FQSV9FTkFCTEVECiAgICAgQVNTRVJUKCFfZGF0YS0+X3RodW1ibmFp
bFZpZXcpOwogI2VuZGlmCi0gICAgQVNTRVJUKCFfZGF0YS0+X2luU2VjdXJlSW5wdXRTdGF0ZSk7
CiAKICAgICBbX2RhdGEgcmVsZWFzZV07CiAgICAgX2RhdGEgPSBuaWw7CkBAIC00MzMsMTA3ICs0
MTUsNDcgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogCiAt
ICh2b2lkKXNldERyYXdzQmFja2dyb3VuZDooQk9PTClkcmF3c0JhY2tncm91bmQKIHsKLSAgICBf
ZGF0YS0+X3BhZ2UtPnNldERyYXdzQmFja2dyb3VuZChkcmF3c0JhY2tncm91bmQpOworICAgIF9k
YXRhLT5faW1wbC0+c2V0RHJhd3NCYWNrZ3JvdW5kKGRyYXdzQmFja2dyb3VuZCk7CiB9CiAKIC0g
KEJPT0wpZHJhd3NCYWNrZ3JvdW5kCiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5fcGFnZS0+ZHJhd3NC
YWNrZ3JvdW5kKCk7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+ZHJhd3NCYWNrZ3JvdW5kKCk7
CiB9CiAKIC0gKHZvaWQpc2V0RHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQ6KEJPT0wpZHJhd3NU
cmFuc3BhcmVudEJhY2tncm91bmQKIHsKLSAgICBfZGF0YS0+X3BhZ2UtPnNldERyYXdzVHJhbnNw
YXJlbnRCYWNrZ3JvdW5kKGRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKTsKKyAgICBfZGF0YS0+
X2ltcGwtPnNldERyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKGRyYXdzVHJhbnNwYXJlbnRCYWNr
Z3JvdW5kKTsKIH0KIAogLSAoQk9PTClkcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZAogewotICAg
IHJldHVybiBfZGF0YS0+X3BhZ2UtPmRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKCk7CisgICAg
cmV0dXJuIF9kYXRhLT5faW1wbC0+ZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoKTsKIH0KIAog
LSAoQk9PTClhY2NlcHRzRmlyc3RSZXNwb25kZXIKIHsKLSAgICByZXR1cm4gWUVTOworICAgIHJl
dHVybiBfZGF0YS0+X2ltcGwtPmFjY2VwdHNGaXJzdFJlc3BvbmRlcigpOwogfQogCiAtIChCT09M
KWJlY29tZUZpcnN0UmVzcG9uZGVyCiB7Ci0gICAgLy8gSWYgd2UganVzdCBiZWNhbWUgZmlyc3Qg
cmVzcG9uZGVyIGFnYWluLCB0aGVyZSBpcyBubyBuZWVkIHRvIGRvIGFueXRoaW5nLAotICAgIC8v
IHNpbmNlIHJlc2lnbkZpcnN0UmVzcG9uZGVyIGhhcyBjb3JyZWN0bHkgZGV0ZWN0ZWQgdGhpcyBz
aXR1YXRpb24uCi0gICAgaWYgKF9kYXRhLT5fd2lsbEJlY29tZUZpcnN0UmVzcG9uZGVyQWdhaW4p
IHsKLSAgICAgICAgX2RhdGEtPl93aWxsQmVjb21lRmlyc3RSZXNwb25kZXJBZ2FpbiA9IE5POwot
ICAgICAgICByZXR1cm4gWUVTOwotICAgIH0KLQotICAgIE5TU2VsZWN0aW9uRGlyZWN0aW9uIGRp
cmVjdGlvbiA9IFtbc2VsZiB3aW5kb3ddIGtleVZpZXdTZWxlY3Rpb25EaXJlY3Rpb25dOwotCi0g
ICAgX2RhdGEtPl9pbkJlY29tZUZpcnN0UmVzcG9uZGVyID0gdHJ1ZTsKLSAgICAKLSAgICBbc2Vs
ZiBfdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZV07Ci0gICAgX2RhdGEtPl9wYWdlLT52aWV3U3RhdGVE
aWRDaGFuZ2UoVmlld1N0YXRlOjpJc0ZvY3VzZWQpOwotICAgIC8vIFJlc3RvcmUgdGhlIHNlbGVj
dGlvbiBpbiB0aGUgZWRpdGFibGUgcmVnaW9uIGlmIHJlc2lnbmluZyBmaXJzdCByZXNwb25kZXIg
Y2xlYXJlZCBzZWxlY3Rpb24uCi0gICAgX2RhdGEtPl9wYWdlLT5yZXN0b3JlU2VsZWN0aW9uSW5G
b2N1c2VkRWRpdGFibGVFbGVtZW50KCk7Ci0KLSAgICBfZGF0YS0+X2luQmVjb21lRmlyc3RSZXNw
b25kZXIgPSBmYWxzZTsKLSAgICAKLSAgICBpZiAoZGlyZWN0aW9uICE9IE5TRGlyZWN0U2VsZWN0
aW9uKSB7Ci0gICAgICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TQXBwIGN1cnJlbnRFdmVudF07Ci0g
ICAgICAgIE5TRXZlbnQgKmtleWJvYXJkRXZlbnQgPSBuaWw7Ci0gICAgICAgIGlmIChbZXZlbnQg
dHlwZV0gPT0gTlNLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKQotICAgICAgICAg
ICAga2V5Ym9hcmRFdmVudCA9IGV2ZW50OwotICAgICAgICBfZGF0YS0+X3BhZ2UtPnNldEluaXRp
YWxGb2N1cyhkaXJlY3Rpb24gPT0gTlNTZWxlY3RpbmdOZXh0LCBrZXlib2FyZEV2ZW50ICE9IG5p
bCwgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChrZXlib2FyZEV2ZW50LCBmYWxzZSwgVmVjdG9yPEtl
eXByZXNzQ29tbWFuZD4oKSksIFtdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgeyB9KTsK
LSAgICB9Ci0gICAgcmV0dXJuIFlFUzsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5iZWNvbWVG
aXJzdFJlc3BvbmRlcigpOwogfQogCiAtIChCT09MKXJlc2lnbkZpcnN0UmVzcG9uZGVyCiB7Ci0j
aWYgV0tfQVBJX0VOQUJMRUQKLSAgICAvLyBQcmVkaWN0IHRoZSBjYXNlIHdoZXJlIHdlIGFyZSBs
b3NpbmcgZmlyc3QgcmVzcG9uZGVyIHN0YXR1cyBvbmx5IHRvCi0gICAgLy8gZ2FpbiBpdCBiYWNr
IGFnYWluLiBXZSB3YW50IHJlc2lnbkZpcnN0UmVzcG9uZGVyIHRvIGRvIG5vdGhpbmcgaW4gdGhh
dCBjYXNlLgotICAgIGlkIG5leHRSZXNwb25kZXIgPSBbW3NlbGYgd2luZG93XSBfbmV3Rmlyc3RS
ZXNwb25kZXJBZnRlclJlc2lnbmluZ107Ci0gICAgaWYgKFtuZXh0UmVzcG9uZGVyIGlzS2luZE9m
Q2xhc3M6W1dLV2ViVmlldyBjbGFzc11dICYmIHNlbGYuc3VwZXJ2aWV3ID09IG5leHRSZXNwb25k
ZXIpIHsKLSAgICAgICAgX2RhdGEtPl93aWxsQmVjb21lRmlyc3RSZXNwb25kZXJBZ2FpbiA9IFlF
UzsKLSAgICAgICAgcmV0dXJuIFlFUzsKLSAgICB9Ci0jZW5kaWYKLQotICAgIF9kYXRhLT5fd2ls
bEJlY29tZUZpcnN0UmVzcG9uZGVyQWdhaW4gPSBOTzsKLSAgICBfZGF0YS0+X2luUmVzaWduRmly
c3RSZXNwb25kZXIgPSB0cnVlOwotCi0jaWYgVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQot
ICAgIF9kYXRhLT5fcGFnZS0+Y29uZmlybUNvbXBvc2l0aW9uQXN5bmMoKTsKLSNlbHNlCi0gICAg
aWYgKF9kYXRhLT5fcGFnZS0+ZWRpdG9yU3RhdGUoKS5oYXNDb21wb3NpdGlvbiAmJiAhX2RhdGEt
Pl9wYWdlLT5lZGl0b3JTdGF0ZSgpLnNob3VsZElnbm9yZUNvbXBvc2l0aW9uU2VsZWN0aW9uQ2hh
bmdlKQotICAgICAgICBfZGF0YS0+X3BhZ2UtPmNhbmNlbENvbXBvc2l0aW9uKCk7Ci0jZW5kaWYK
LQotICAgIFtzZWxmIF9ub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9u
XTsKLQotICAgIFtzZWxmIF9yZXNldFNlY3VyZUlucHV0U3RhdGVdOwotCi0gICAgaWYgKCFfZGF0
YS0+X3BhZ2UtPm1haW50YWluc0luYWN0aXZlU2VsZWN0aW9uKCkpCi0gICAgICAgIF9kYXRhLT5f
cGFnZS0+Y2xlYXJTZWxlY3Rpb24oKTsKLSAgICAKLSAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0
ZURpZENoYW5nZShWaWV3U3RhdGU6OklzRm9jdXNlZCk7Ci0KLSAgICBfZGF0YS0+X2luUmVzaWdu
Rmlyc3RSZXNwb25kZXIgPSBmYWxzZTsKLQotICAgIHJldHVybiBZRVM7CisgICAgcmV0dXJuIF9k
YXRhLT5faW1wbC0+cmVzaWduRmlyc3RSZXNwb25kZXIoKTsKIH0KIAogLSAodm9pZCl2aWV3V2ls
bFN0YXJ0TGl2ZVJlc2l6ZQogewotICAgIF9kYXRhLT5fcGFnZS0+dmlld1dpbGxTdGFydExpdmVS
ZXNpemUoKTsKLQotICAgIFtfZGF0YS0+X2xheW91dFN0cmF0ZWd5IHdpbGxTdGFydExpdmVSZXNp
emVdOworICAgIF9kYXRhLT5faW1wbC0+dmlld1dpbGxTdGFydExpdmVSZXNpemUoKTsKIH0KIAog
LSAodm9pZCl2aWV3RGlkRW5kTGl2ZVJlc2l6ZQogewotICAgIF9kYXRhLT5fcGFnZS0+dmlld1dp
bGxFbmRMaXZlUmVzaXplKCk7Ci0KLSAgICBbX2RhdGEtPl9sYXlvdXRTdHJhdGVneSBkaWRFbmRM
aXZlUmVzaXplXTsKKyAgICBfZGF0YS0+X2ltcGwtPnZpZXdEaWRFbmRMaXZlUmVzaXplKCk7CiB9
CiAKIC0gKEJPT0wpaXNGbGlwcGVkCkBAIC01NDMsMzkgKzQ2NSwyNSBAQCBzdHJ1Y3QgV0tWaWV3
SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiAKIC0gKE5TU2l6ZSlpbnRyaW5zaWNDb250
ZW50U2l6ZQogewotICAgIHJldHVybiBfZGF0YS0+X2ludHJpbnNpY0NvbnRlbnRTaXplOworICAg
IHJldHVybiBOU1NpemVGcm9tQ0dTaXplKF9kYXRhLT5faW1wbC0+aW50cmluc2ljQ29udGVudFNp
emUoKSk7CiB9CiAKIC0gKHZvaWQpcHJlcGFyZUNvbnRlbnRJblJlY3Q6KE5TUmVjdClyZWN0CiB7
Ci0gICAgX2RhdGEtPl9jb250ZW50UHJlcGFyYXRpb25SZWN0ID0gcmVjdDsKLSAgICBfZGF0YS0+
X3VzZUNvbnRlbnRQcmVwYXJhdGlvblJlY3RGb3JWaXNpYmxlUmVjdCA9IFlFUzsKLQotICAgIFtz
ZWxmIF91cGRhdGVWaWV3RXhwb3NlZFJlY3RdOwotfQotCi0tICh2b2lkKV91cGRhdGVWaWV3RXhw
b3NlZFJlY3QKLXsKLSAgICBOU1JlY3QgZXhwb3NlZFJlY3QgPSBbc2VsZiB2aXNpYmxlUmVjdF07
Ci0KLSAgICBpZiAoX2RhdGEtPl91c2VDb250ZW50UHJlcGFyYXRpb25SZWN0Rm9yVmlzaWJsZVJl
Y3QpCi0gICAgICAgIGV4cG9zZWRSZWN0ID0gTlNVbmlvblJlY3QoX2RhdGEtPl9jb250ZW50UHJl
cGFyYXRpb25SZWN0LCBleHBvc2VkUmVjdCk7Ci0KLSAgICBpZiAoYXV0byBkcmF3aW5nQXJlYSA9
IF9kYXRhLT5fcGFnZS0+ZHJhd2luZ0FyZWEoKSkKLSAgICAgICAgZHJhd2luZ0FyZWEtPnNldEV4
cG9zZWRSZWN0KF9kYXRhLT5fY2xpcHNUb1Zpc2libGVSZWN0ID8gRmxvYXRSZWN0KGV4cG9zZWRS
ZWN0KSA6IEZsb2F0UmVjdDo6aW5maW5pdGVSZWN0KCkpOworICAgIF9kYXRhLT5faW1wbC0+c2V0
Q29udGVudFByZXBhcmF0aW9uUmVjdChOU1JlY3RUb0NHUmVjdChyZWN0KSk7CisgICAgX2RhdGEt
Pl9pbXBsLT51cGRhdGVWaWV3RXhwb3NlZFJlY3QoKTsKIH0KIAogLSAodm9pZClzZXRGcmFtZVNp
emU6KE5TU2l6ZSlzaXplCiB7CiAgICAgW3N1cGVyIHNldEZyYW1lU2l6ZTpzaXplXTsKLQotICAg
IFtfZGF0YS0+X2xheW91dFN0cmF0ZWd5IGRpZENoYW5nZUZyYW1lU2l6ZV07CisgICAgX2RhdGEt
Pl9pbXBsLT5zZXRGcmFtZVNpemUoTlNTaXplVG9DR1NpemUoc2l6ZSkpOwogfQogCiAtICh2b2lk
KV91cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzCiB7Ci0gICAgaWYgKF9kYXRhLT5fY2xpcHNUb1Zp
c2libGVSZWN0KQotICAgICAgICBbc2VsZiBfdXBkYXRlVmlld0V4cG9zZWRSZWN0XTsKKyAgICBp
ZiAoX2RhdGEtPl9pbXBsLT5jbGlwc1RvVmlzaWJsZVJlY3QoKSkKKyAgICAgICAgX2RhdGEtPl9p
bXBsLT51cGRhdGVWaWV3RXhwb3NlZFJlY3QoKTsKIAogICAgIGlmIChfZGF0YS0+X2RpZFNjaGVk
dWxlV2luZG93QW5kVmlld0ZyYW1lVXBkYXRlKQogICAgICAgICByZXR1cm47CkBAIC0xODI4LDEx
ICsxNzM2LDExIEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0
cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAgICAgfSBlbHNlCiAgICAgICAg
IHRleHQgPSBzdHJpbmc7CiAKLSAgICBpZiAoX2RhdGEtPl9pblNlY3VyZUlucHV0U3RhdGUpIHsK
KyAgICBpZiAoX2RhdGEtPl9pbXBsLT5pblNlY3VyZUlucHV0U3RhdGUoKSkgewogICAgICAgICAv
LyBJbiBwYXNzd29yZCBmaWVsZHMsIHdlIG9ubHkgYWxsb3cgQVNDSUkgZGVhZCBrZXlzLCBhbmQg
ZG9uJ3QgYWxsb3cgaW5saW5lIGlucHV0LCBtYXRjaGluZyBOU1NlY3VyZVRleHRJbnB1dEZpZWxk
LgogICAgICAgICAvLyBBbGxvd2luZyBBU0NJSSBkZWFkIGtleXMgaXMgbmVjZXNzYXJ5IHRvIGVu
YWJsZSBmdWxsIFJvbWFuIGlucHV0IHdoZW4gdXNpbmcgYSBWaWV0bmFtZXNlIGtleWJvYXJkLgog
ICAgICAgICBBU1NFUlQoIV9kYXRhLT5fcGFnZS0+ZWRpdG9yU3RhdGUoKS5oYXNDb21wb3NpdGlv
bik7Ci0gICAgICAgIFtzZWxmIF9ub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBv
c2l0aW9uXTsKKyAgICAgICAgX2RhdGEtPl9pbXBsLT5ub3RpZnlJbnB1dENvbnRleHRBYm91dERp
c2NhcmRlZENvbXBvc2l0aW9uKCk7CiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgc3RvcmUg
dGhlIGNvbW1hbmQgdG8gaGFuZGxlIGl0IGFmdGVyIERPTSBldmVudCBwcm9jZXNzaW5nLCBhcyBp
dCdzIHJlZ3VsYXIga2V5Ym9hcmQgaW5wdXQgbm93LCBub3QgYSBjb21wb3NpdGlvbi4KICAgICAg
ICAgaWYgKFt0ZXh0IGxlbmd0aF0gPT0gMSAmJiBpc0FTQ0lJKFt0ZXh0IGNoYXJhY3RlckF0SW5k
ZXg6MF0pKQogICAgICAgICAgICAgX2RhdGEtPl9wYWdlLT5pbnNlcnRUZXh0QXN5bmModGV4dCwg
cmVwbGFjZW1lbnRSYW5nZSk7CkBAIC0yMjI0LDcgKzIxMzIsNyBAQCBzdGF0aWMgdm9pZCBleHRy
YWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0
aW9uVW5kZQogICAgICAgICAvLyBJbiBwYXNzd29yZCBmaWVsZHMsIHdlIG9ubHkgYWxsb3cgQVND
SUkgZGVhZCBrZXlzLCBhbmQgZG9uJ3QgYWxsb3cgaW5saW5lIGlucHV0LCBtYXRjaGluZyBOU1Nl
Y3VyZVRleHRJbnB1dEZpZWxkLgogICAgICAgICAvLyBBbGxvd2luZyBBU0NJSSBkZWFkIGtleXMg
aXMgbmVjZXNzYXJ5IHRvIGVuYWJsZSBmdWxsIFJvbWFuIGlucHV0IHdoZW4gdXNpbmcgYSBWaWV0
bmFtZXNlIGtleWJvYXJkLgogICAgICAgICBBU1NFUlQoIV9kYXRhLT5fcGFnZS0+ZWRpdG9yU3Rh
dGUoKS5oYXNDb21wb3NpdGlvbik7Ci0gICAgICAgIFtzZWxmIF9ub3RpZnlJbnB1dENvbnRleHRB
Ym91dERpc2NhcmRlZENvbXBvc2l0aW9uXTsKKyAgICAgICAgX2RhdGEtPl9pbXBsLT5ub3RpZnlJ
bnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uKCk7CiAgICAgICAgIGlmIChbdGV4
dCBsZW5ndGhdID09IDEgJiYgW1t0ZXh0IGRlY29tcG9zZWRTdHJpbmdXaXRoQ2Fub25pY2FsTWFw
cGluZ10gY2hhcmFjdGVyQXRJbmRleDowXSA8IDB4ODApIHsKICAgICAgICAgICAgIF9kYXRhLT5f
cGFnZS0+aW5zZXJ0VGV4dCh0ZXh0LCByZXBsYWNlbWVudFJhbmdlKTsKICAgICAgICAgfSBlbHNl
CkBAIC0yNDM2LDYgKzIzNDQsMTEgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNB
dHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKIAogI2VuZGlm
IC8vIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKIAorLSAoTlNUZXh0SW5wdXRDb250ZXh0
ICopX3N1cGVySW5wdXRDb250ZXh0Cit7CisgICAgcmV0dXJuIFtzdXBlciBpbnB1dENvbnRleHRd
OworfQorCiAtIChOU0FycmF5ICopdmFsaWRBdHRyaWJ1dGVzRm9yTWFya2VkVGV4dAogewogICAg
IHN0YXRpYyBOU0FycmF5ICp2YWxpZEF0dHJpYnV0ZXM7CkBAIC0yNzU2LDcgKzI2NjksNyBAQCBz
dGF0aWMgdm9pZCoga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0ID0gJmtleVZhbHVlT2JzZXJ2aW5n
Q29udGV4dDsKIHsKICAgICBOU1dpbmRvdyAqa2V5V2luZG93ID0gW25vdGlmaWNhdGlvbiBvYmpl
Y3RdOwogICAgIGlmIChrZXlXaW5kb3cgPT0gW3NlbGYgd2luZG93XSB8fCBrZXlXaW5kb3cgPT0g
W1tzZWxmIHdpbmRvd10gYXR0YWNoZWRTaGVldF0pIHsKLSAgICAgICAgW3NlbGYgX3VwZGF0ZVNl
Y3VyZUlucHV0U3RhdGVdOworICAgICAgICBfZGF0YS0+X2ltcGwtPnVwZGF0ZVNlY3VyZUlucHV0
U3RhdGUoKTsKICAgICAgICAgX2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0
YXRlOjpXaW5kb3dJc0FjdGl2ZSk7CiAgICAgfQogfQpAQCAtMjc3NSw3ICsyNjg4LDcgQEAgc3Rh
dGljIHZvaWQqIGtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dCA9ICZrZXlWYWx1ZU9ic2VydmluZ0Nv
bnRleHQ7CiB7CiAgICAgTlNXaW5kb3cgKmZvcm1lcktleVdpbmRvdyA9IFtub3RpZmljYXRpb24g
b2JqZWN0XTsKICAgICBpZiAoZm9ybWVyS2V5V2luZG93ID09IFtzZWxmIHdpbmRvd10gfHwgZm9y
bWVyS2V5V2luZG93ID09IFtbc2VsZiB3aW5kb3ddIGF0dGFjaGVkU2hlZXRdKSB7Ci0gICAgICAg
IFtzZWxmIF91cGRhdGVTZWN1cmVJbnB1dFN0YXRlXTsKKyAgICAgICAgX2RhdGEtPl9pbXBsLT51
cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCk7CiAgICAgICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0YXRl
RGlkQ2hhbmdlKFZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOwogICAgIH0KIH0KQEAgLTI5OTks
MTUgKzI5MTIsNiBAQCBzdGF0aWMgdm9pZCoga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0ID0gJmtl
eVZhbHVlT2JzZXJ2aW5nQ29udGV4dDsKICAgICByZXR1cm4gW1tOU1NjcmVlbiBtYWluU2NyZWVu
XSBiYWNraW5nU2NhbGVGYWN0b3JdOwogfQogCi0tICh2b2lkKV9zZXREcmF3aW5nQXJlYVNpemU6
KE5TU2l6ZSlzaXplCi17Ci0gICAgaWYgKCFfZGF0YS0+X3BhZ2UtPmRyYXdpbmdBcmVhKCkpCi0g
ICAgICAgIHJldHVybjsKLSAgICAKLSAgICBfZGF0YS0+X3BhZ2UtPmRyYXdpbmdBcmVhKCktPnNl
dFNpemUoSW50U2l6ZShzaXplKSwgSW50U2l6ZSgwLCAwKSwgSW50U2l6ZShfZGF0YS0+X3Jlc2l6
ZVNjcm9sbE9mZnNldCkpOwotICAgIF9kYXRhLT5fcmVzaXplU2Nyb2xsT2Zmc2V0ID0gTlNaZXJv
U2l6ZTsKLX0KLQogLSAodm9pZClxdWlja0xvb2tXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAog
ewogICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykKQEAgLTMwMzIsMTUgKzI5
MzYsNiBAQCBzdGF0aWMgdm9pZCoga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0ID0gJmtleVZhbHVl
T2JzZXJ2aW5nQ29udGV4dDsKICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxUaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYVByb3h5PigqX2RhdGEtPl9wYWdlKTsKIH0KIAotLSAoQk9PTClf
aXNGb2N1c2VkCi17Ci0gICAgaWYgKF9kYXRhLT5faW5CZWNvbWVGaXJzdFJlc3BvbmRlcikKLSAg
ICAgICAgcmV0dXJuIFlFUzsKLSAgICBpZiAoX2RhdGEtPl9pblJlc2lnbkZpcnN0UmVzcG9uZGVy
KQotICAgICAgICByZXR1cm4gTk87Ci0gICAgcmV0dXJuIFtbc2VsZiB3aW5kb3ddIGZpcnN0UmVz
cG9uZGVyXSA9PSBzZWxmOwotfQotCiAtIChXZWJLaXQ6OkNvbG9yU3BhY2VEYXRhKV9jb2xvclNw
YWNlCiB7CiAgICAgaWYgKCFfZGF0YS0+X2NvbG9yU3BhY2UpIHsKQEAgLTMwNjAsNyArMjk1NSw3
IEBAIHN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQgPSAma2V5VmFsdWVPYnNl
cnZpbmdDb250ZXh0OwogCiAtICh2b2lkKV9wcm9jZXNzRGlkRXhpdAogewotICAgIFtzZWxmIF9u
b3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uXTsKKyAgICBfZGF0YS0+
X2ltcGwtPm5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb24oKTsKIAog
ICAgIGlmIChfZGF0YS0+X2xheWVySG9zdGluZ1ZpZXcpCiAgICAgICAgIFtzZWxmIF9zZXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZVJvb3RMYXllcjpuaWxdOwpAQCAtMzI5NSwxMSArMzE5MCw2
IEBAIHN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQgPSAma2V5VmFsdWVPYnNl
cnZpbmdDb250ZXh0OwogICAgICAgICBfZGF0YS0+X3RleHRJbmRpY2F0b3JXaW5kb3ctPnNldEFu
aW1hdGlvblByb2dyZXNzKHByb2dyZXNzKTsKIH0KIAotLSAoQ0FMYXllciAqKV9yb290TGF5ZXIK
LXsKLSAgICByZXR1cm4gW19kYXRhLT5fbGF5ZXJIb3N0aW5nVmlldyBsYXllcl07Ci19Ci0KIC0g
KHZvaWQpX3NldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlUm9vdExheWVyOihDQUxheWVyICop
cm9vdExheWVyCiB7CiAgICAgW3Jvb3RMYXllciB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOwpAQCAt
MzYzMSw1MyArMzUyMSw2IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFt
ZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgcmV0dXJuIFtOU0FycmF5IGFycmF5V2l0aE9i
amVjdDpbcGF0aCBsYXN0UGF0aENvbXBvbmVudF1dOwogfQogCi0tICh2b2lkKV91cGRhdGVTZWN1
cmVJbnB1dFN0YXRlCi17Ci0gICAgaWYgKCFbW3NlbGYgd2luZG93XSBpc0tleVdpbmRvd10gfHwg
IVtzZWxmIF9pc0ZvY3VzZWRdKSB7Ci0gICAgICAgIGlmIChfZGF0YS0+X2luU2VjdXJlSW5wdXRT
dGF0ZSkgewotICAgICAgICAgICAgRGlzYWJsZVNlY3VyZUV2ZW50SW5wdXQoKTsKLSAgICAgICAg
ICAgIF9kYXRhLT5faW5TZWN1cmVJbnB1dFN0YXRlID0gTk87Ci0gICAgICAgIH0KLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLSAgICAvLyBXS1ZpZXcgaGFzIGEgc2luZ2xlIGlucHV0IGNvbnRleHQg
Zm9yIGFsbCBlZGl0YWJsZSBhcmVhcyAoZXhjZXB0IGZvciBwbHVnLWlucykuCi0gICAgTlNUZXh0
SW5wdXRDb250ZXh0ICpjb250ZXh0ID0gW3N1cGVyIGlucHV0Q29udGV4dF07Ci0gICAgYm9vbCBp
c0luUGFzc3dvcmRGaWVsZCA9IF9kYXRhLT5fcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0luUGFzc3dv
cmRGaWVsZDsKLQotICAgIGlmIChpc0luUGFzc3dvcmRGaWVsZCkgewotICAgICAgICBpZiAoIV9k
YXRhLT5faW5TZWN1cmVJbnB1dFN0YXRlKQotICAgICAgICAgICAgRW5hYmxlU2VjdXJlRXZlbnRJ
bnB1dCgpOwotICAgICAgICBzdGF0aWMgTlNBcnJheSAqcm9tYW5JbnB1dFNvdXJjZXMgPSBbW05T
QXJyYXkgYWxsb2NdIGluaXRXaXRoT2JqZWN0czomTlNBbGxSb21hbklucHV0U291cmNlc0xvY2Fs
ZUlkZW50aWZpZXIgY291bnQ6MV07Ci0gICAgICAgIExPRyhUZXh0SW5wdXQsICItPiBzZXRBbGxv
d2VkSW5wdXRTb3VyY2VMb2NhbGVzOnJvbWFuSW5wdXRTb3VyY2VzIik7Ci0gICAgICAgIFtjb250
ZXh0IHNldEFsbG93ZWRJbnB1dFNvdXJjZUxvY2FsZXM6cm9tYW5JbnB1dFNvdXJjZXNdOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIGlmIChfZGF0YS0+X2luU2VjdXJlSW5wdXRTdGF0ZSkKLSAgICAg
ICAgICAgIERpc2FibGVTZWN1cmVFdmVudElucHV0KCk7Ci0gICAgICAgIExPRyhUZXh0SW5wdXQs
ICItPiBzZXRBbGxvd2VkSW5wdXRTb3VyY2VMb2NhbGVzOm5pbCIpOwotICAgICAgICBbY29udGV4
dCBzZXRBbGxvd2VkSW5wdXRTb3VyY2VMb2NhbGVzOm5pbF07Ci0gICAgfQotICAgIF9kYXRhLT5f
aW5TZWN1cmVJbnB1dFN0YXRlID0gaXNJblBhc3N3b3JkRmllbGQ7Ci19Ci0KLS0gKHZvaWQpX3Jl
c2V0U2VjdXJlSW5wdXRTdGF0ZQotewotICAgIGlmIChfZGF0YS0+X2luU2VjdXJlSW5wdXRTdGF0
ZSkgewotICAgICAgICBEaXNhYmxlU2VjdXJlRXZlbnRJbnB1dCgpOwotICAgICAgICBfZGF0YS0+
X2luU2VjdXJlSW5wdXRTdGF0ZSA9IE5POwotICAgIH0KLX0KLQotLSAodm9pZClfbm90aWZ5SW5w
dXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbgotewotICAgIC8vIDxyZGFyOi8vcHJv
YmxlbS85MzU5MDU1PjogLWRpc2NhcmRNYXJrZWRUZXh0IGNhbiBvbmx5IGJlIGNhbGxlZCBmb3Ig
YWN0aXZlIGNvbnRleHRzLgotICAgIC8vIEZJWE1FOiBXZSBmYWlsIHRvIGV2ZXIgbm90aWZ5IHRo
ZSBpbnB1dCBjb250ZXh0IGlmIHNvbWV0aGluZyAoZS5nLiBhIG5hdmlnYXRpb24pIGhhcHBlbnMg
d2hpbGUgdGhlIHdpbmRvdyBpcyBub3Qga2V5LgotICAgIC8vIFRoaXMgaXMgbm90IGEgcHJvYmxl
bSB3aGVuIHRoZSB3aW5kb3cgaXMga2V5LCBiZWNhdXNlIHdlIGRpc2NhcmQgbWFya2VkIHRleHQg
b24gcmVzaWduaW5nIGZpcnN0IHJlc3BvbmRlci4KLSAgICBpZiAoIVtbc2VsZiB3aW5kb3ddIGlz
S2V5V2luZG93XSB8fCBzZWxmICE9IFtbc2VsZiB3aW5kb3ddIGZpcnN0UmVzcG9uZGVyXSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgTE9HKFRleHRJbnB1dCwgIi0+IGRpc2NhcmRNYXJrZWRUZXh0
Iik7Ci0gICAgW1tzdXBlciBpbnB1dENvbnRleHRdIGRpc2NhcmRNYXJrZWRUZXh0XTsgLy8gSW5m
b3JtIHRoZSBpbnB1dCBtZXRob2QgdGhhdCB3ZSB3b24ndCBoYXZlIGFuIGlubGluZSBpbnB1dCBh
cmVhIGRlc3BpdGUgaGF2aW5nIGJlZW4gYXNrZWQgdG8uCi19CiAKIC0gKE5TV2luZG93ICopX3Rh
cmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbgogewpAQCAtMzY4NywyNCArMzUzMCwxNyBAQCBz
dGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpw
YXRoKQogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKIC0gKEJPT0wpX2hhc0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVyCiB7Ci0gICAgcmV0dXJuIChib29sKV9kYXRhLT5fZnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXI7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+aGFzRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXIoKTsKIH0KIAogLSAoV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciAq
KV9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcgogewotICAgIGlmICghX2RhdGEtPl9mdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlcikKLSAgICAgICAgX2RhdGEtPl9mdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlciA9IGFkb3B0TlMoW1tXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGFsbG9jXSBp
bml0V2l0aFdpbmRvdzpbc2VsZiBjcmVhdGVGdWxsU2NyZWVuV2luZG93XSB3ZWJWaWV3OnNlbGZd
KTsKLQotICAgIHJldHVybiBfZGF0YS0+X2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmdldCgp
OworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmZ1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKCk7
CiB9CiAKIC0gKHZvaWQpX2Nsb3NlRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIKIHsKLSAgICBp
ZiAoIV9kYXRhLT5fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybjsK
LQotICAgIFtfZGF0YS0+X2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGNsb3NlXTsKLSAgICBf
ZGF0YS0+X2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyID0gbnVsbHB0cjsKKyAgICBfZGF0YS0+
X2ltcGwtPmNsb3NlRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKTsKIH0KICNlbmRpZgogCkBA
IC0zNzIxLDE2ICszNTU3LDcgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVu
YW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKIAogLSAodm9pZClfc2V0SW50cmluc2ljQ29udGVu
dFNpemU6KE5TU2l6ZSlpbnRyaW5zaWNDb250ZW50U2l6ZQogewotICAgIC8vIElmIHRoZSBpbnRy
aW5zaWMgY29udGVudCBzaXplIGlzIGxlc3MgdGhhbiB0aGUgbWluaW11bSBsYXlvdXQgd2lkdGgs
IHRoZSBjb250ZW50IGZsb3dlZCB0byBmaXQsCi0gICAgLy8gc28gd2UgY2FuIHJlcG9ydCB0aGF0
IHRoYXQgZGltZW5zaW9uIGlzIGZsZXhpYmxlLiBJZiBub3QsIHdlIG5lZWQgdG8gcmVwb3J0IG91
ciBpbnRyaW5zaWMgd2lkdGgKLSAgICAvLyBzbyB0aGF0IGF1dG9sYXlvdXQgd2lsbCBrbm93IHRv
IHByb3ZpZGUgc3BhY2UgZm9yIHVzLgotCi0gICAgTlNTaXplIGludHJpbnNpY0NvbnRlbnRTaXpl
QWNrbm93bGVkZ2luZ0ZsZXhpYmxlV2lkdGggPSBpbnRyaW5zaWNDb250ZW50U2l6ZTsKLSAgICBp
ZiAoaW50cmluc2ljQ29udGVudFNpemUud2lkdGggPCBfZGF0YS0+X3BhZ2UtPm1pbmltdW1MYXlv
dXRTaXplKCkud2lkdGgoKSkKLSAgICAgICAgaW50cmluc2ljQ29udGVudFNpemVBY2tub3dsZWRn
aW5nRmxleGlibGVXaWR0aC53aWR0aCA9IE5TVmlld05vSW5zdHJpbnNpY01ldHJpYzsKLQotICAg
IF9kYXRhLT5faW50cmluc2ljQ29udGVudFNpemUgPSBpbnRyaW5zaWNDb250ZW50U2l6ZUFja25v
d2xlZGdpbmdGbGV4aWJsZVdpZHRoOwotICAgIFtzZWxmIGludmFsaWRhdGVJbnRyaW5zaWNDb250
ZW50U2l6ZV07CisgICAgX2RhdGEtPl9pbXBsLT5zZXRJbnRyaW5zaWNDb250ZW50U2l6ZShOU1Np
emVUb0NHU2l6ZShpbnRyaW5zaWNDb250ZW50U2l6ZSkpOwogfQogCiAtIChOU0ludGVnZXIpc3Bl
bGxDaGVja2VyRG9jdW1lbnRUYWcKQEAgLTM3OTIsNiArMzYxOSwxMCBAQCBzdGF0aWMgTlNTdHJp
bmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogCiAgICAg
X2RhdGEtPl9wYWdlQ2xpZW50ID0gc3RkOjptYWtlX3VuaXF1ZTxQYWdlQ2xpZW50SW1wbD4oc2Vs
Ziwgd2ViVmlldyk7CiAgICAgX2RhdGEtPl9wYWdlID0gcHJvY2Vzc1Bvb2wuY3JlYXRlV2ViUGFn
ZSgqX2RhdGEtPl9wYWdlQ2xpZW50LCBXVEY6Om1vdmUoY29uZmlndXJhdGlvbikpOworCisgICAg
X2RhdGEtPl9pbXBsID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJWaWV3SW1wbD4oc2VsZiwgKl9kYXRh
LT5fcGFnZSk7CisgICAgc3RhdGljX2Nhc3Q8UGFnZUNsaWVudEltcGwqPihfZGF0YS0+X3BhZ2VD
bGllbnQuZ2V0KCkpLT5zZXRJbXBsKCpfZGF0YS0+X2ltcGwpOworCiAgICAgX2RhdGEtPl9wYWdl
LT5zZXRBZGRzVmlzaXRlZExpbmtzKHByb2Nlc3NQb29sLmhpc3RvcnlDbGllbnQoKS5hZGRzVmlz
aXRlZExpbmtzKCkpOwogCiAgICAgX2RhdGEtPl9wYWdlLT5zZXRJbnRyaW5zaWNEZXZpY2VTY2Fs
ZUZhY3Rvcihbc2VsZiBfaW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3JdKTsKQEAgLTM4MDAsMjAg
KzM2MzEsMTIgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0
aChOU1N0cmluZyAqcGF0aCkKICAgICBfZGF0YS0+X21vdXNlRG93bkV2ZW50ID0gbmlsOwogICAg
IF9kYXRhLT5fcHJlc3N1cmVFdmVudCA9IG5pbDsKICAgICBfZGF0YS0+X2lnbm9yaW5nTW91c2VE
cmFnZ2VkRXZlbnRzID0gTk87Ci0gICAgX2RhdGEtPl9jbGlwc1RvVmlzaWJsZVJlY3QgPSBOTzsK
LSAgICBfZGF0YS0+X3VzZUNvbnRlbnRQcmVwYXJhdGlvblJlY3RGb3JWaXNpYmxlUmVjdCA9IE5P
OwogICAgIF9kYXRhLT5fd2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZCA9IFlFUzsKLSAg
ICBfZGF0YS0+X2xhc3RSZXF1ZXN0ZWRMYXlvdXRNb2RlID0ga1dLTGF5b3V0TW9kZVZpZXdTaXpl
OwotICAgIF9kYXRhLT5fbGFzdFJlcXVlc3RlZFZpZXdTY2FsZSA9IDE7CiAKICAgICBfZGF0YS0+
X3dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciA9IGFkb3B0TlMoW1tXS1dpbmRvd1Zpc2liaWxpdHlP
YnNlcnZlciBhbGxvY10gaW5pdFdpdGhWaWV3OnNlbGZdKTsKIAotICAgIF9kYXRhLT5faW50cmlu
c2ljQ29udGVudFNpemUgPSBOU01ha2VTaXplKE5TVmlld05vSW5zdHJpbnNpY01ldHJpYywgTlNW
aWV3Tm9JbnN0cmluc2ljTWV0cmljKTsKLQogICAgIF9kYXRhLT5fbmVlZHNWaWV3RnJhbWVJbldp
bmRvd0Nvb3JkaW5hdGVzID0gX2RhdGEtPl9wYWdlLT5wcmVmZXJlbmNlcygpLnBsdWdpbnNFbmFi
bGVkKCk7CiAKLSAgICBfZGF0YS0+X2xheW91dFN0cmF0ZWd5ID0gW1dLVmlld0xheW91dFN0cmF0
ZWd5IGxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6Kl9kYXRhLT5fcGFnZSB2aWV3OnNlbGYgbW9kZTpr
V0tMYXlvdXRNb2RlVmlld1NpemVdOwotCiAgICAgW3NlbGYgX3JlZ2lzdGVyRHJhZ2dlZFR5cGVz
XTsKIAogICAgIHNlbGYud2FudHNMYXllciA9IFlFUzsKQEAgLTM5MjMsNDQgKzM3NDYsNiBAQCBz
dGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpw
YXRoKQogICAgICAgICBfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyLT5kaWRGaXJzdFZpc3VhbGx5
Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKTsKIH0KIAotLSAoQk9PTClfc3VwcG9ydHNBcmJp
dHJhcnlMYXlvdXRNb2RlcwotewotICAgIGlmIChbX2RhdGEtPl9mdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlciBpc0Z1bGxTY3JlZW5dKQotICAgICAgICByZXR1cm4gTk87Ci0KLSAgICBXZWJQYWdl
UHJveHkqIHBhZ2UgPSBfZGF0YS0+X3BhZ2UuZ2V0KCk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAg
ICByZXR1cm4gWUVTOwotICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gcGFnZS0+bWFpbkZyYW1l
KCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIFlFUzsKLQotICAgIC8vIElmIHdl
IGhhdmUgYSBwbHVnaW4gZG9jdW1lbnQgaW4gdGhlIG1haW4gZnJhbWUsIGF2b2lkIHVzaW5nIGN1
c3RvbSBXS0xheW91dE1vZGVzCi0gICAgLy8gYW5kIGZhbGwgYmFjayB0byB0aGUgZGVmYXVsdHMs
IGJlY2F1c2UgdGhlcmUncyBhIGdvb2QgY2hhbmNlIHRoYXQgaXQgd29uJ3Qgd29yayAoZS5nLiB3
aXRoIFBERlBsdWdpbikuCi0gICAgaWYgKGZyYW1lLT5jb250YWluc1BsdWdpbkRvY3VtZW50KCkp
Ci0gICAgICAgIHJldHVybiBOTzsKLQotICAgIHJldHVybiBZRVM7Ci19Ci0KLS0gKHZvaWQpX3Vw
ZGF0ZVN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMKLXsKLSAgICBpZiAoIVtzZWxmIF9zdXBw
b3J0c0FyYml0cmFyeUxheW91dE1vZGVzXSkgewotICAgICAgICBXS0xheW91dE1vZGUgb2xkUmVx
dWVzdGVkTGF5b3V0TW9kZSA9IF9kYXRhLT5fbGFzdFJlcXVlc3RlZExheW91dE1vZGU7Ci0gICAg
ICAgIGZsb2F0IG9sZFJlcXVlc3RlZFZpZXdTY2FsZSA9IF9kYXRhLT5fbGFzdFJlcXVlc3RlZFZp
ZXdTY2FsZTsKLSAgICAgICAgW3NlbGYgX3NldFZpZXdTY2FsZToxXTsKLSAgICAgICAgW3NlbGYg
X3NldExheW91dE1vZGU6a1dLTGF5b3V0TW9kZVZpZXdTaXplXTsKLQotICAgICAgICAvLyBUaGUg
J2xhc3QgcmVxdWVzdGVkJyBwYXJhbWV0ZXJzIHdpbGwgaGF2ZSBiZWVuIG92ZXJ3cml0dGVuIGJ5
IHNldHRpbmcgdGhlbSBhYm92ZSwgYnV0IHdlIGRvbid0Ci0gICAgICAgIC8vIHdhbnQgdGhpcyB0
byBjb3VudCBhcyBhIHJlcXVlc3QgKG9ubHkgY2hhbmdlcyBmcm9tIHRoZSBjbGllbnQgY291bnQp
LCBzbyByZXNldCB0aGVtLgotICAgICAgICBfZGF0YS0+X2xhc3RSZXF1ZXN0ZWRMYXlvdXRNb2Rl
ID0gb2xkUmVxdWVzdGVkTGF5b3V0TW9kZTsKLSAgICAgICAgX2RhdGEtPl9sYXN0UmVxdWVzdGVk
Vmlld1NjYWxlID0gb2xkUmVxdWVzdGVkVmlld1NjYWxlOwotICAgIH0gZWxzZSBpZiAoX2RhdGEt
Pl9sYXN0UmVxdWVzdGVkTGF5b3V0TW9kZSAhPSBbX2RhdGEtPl9sYXlvdXRTdHJhdGVneSBsYXlv
dXRNb2RlXSkgewotICAgICAgICBbc2VsZiBfc2V0Vmlld1NjYWxlOl9kYXRhLT5fbGFzdFJlcXVl
c3RlZFZpZXdTY2FsZV07Ci0gICAgICAgIFtzZWxmIF9zZXRMYXlvdXRNb2RlOl9kYXRhLT5fbGFz
dFJlcXVlc3RlZExheW91dE1vZGVdOwotICAgIH0KLX0KLQogI2lmIFdLX0FQSV9FTkFCTEVECiAt
IChfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqKV9yZW1vdGVPYmplY3RSZWdpc3RyeQogewpAQCAt
Mzk3MSwxNSArMzc1Niw4IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFt
ZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAKICAgICByZXR1cm4gX2RhdGEtPl9yZW1vdGVPYmpl
Y3RSZWdpc3RyeS5nZXQoKTsKIH0KLQogI2VuZGlmCiAKLQotLSAodm9pZClfZGlkQ29tbWl0TG9h
ZEZvck1haW5GcmFtZQotewotICAgIFtzZWxmIF91cGRhdGVTdXBwb3J0c0FyYml0cmFyeUxheW91
dE1vZGVzXTsKLX0KLQogLSAodm9pZClfZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZQogewogICAg
IGlmIChfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyKQpAQCAtNDAyMCw2ICszNzk4LDEyIEBAIHN0
YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBh
dGgpCiB9CiAjZW5kaWYKIAorLy8gRklYTUU6IEdldCByaWQgb2YgdGhpcyB3aGVuIHdlIGhhdmUg
YmV0dGVyIHBsdW1iaW5nIHRvIFdLVmlld0xheW91dFN0cmF0ZWd5LgorLSAodm9pZClfdXBkYXRl
Vmlld0V4cG9zZWRSZWN0Cit7CisgICAgX2RhdGEtPl9pbXBsLT51cGRhdGVWaWV3RXhwb3NlZFJl
Y3QoKTsKK30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tWaWV3IChQcml2YXRlKQpAQCAt
NDEwNywyNSArMzg5MSwyMiBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5h
bWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogCiAtICh2b2lkKXNldEZyYW1lOihOU1JlY3QpcmVj
dCBhbmRTY3JvbGxCeTooTlNTaXplKW9mZnNldAogewotICAgIEFTU0VSVChOU0VxdWFsU2l6ZXMo
X2RhdGEtPl9yZXNpemVTY3JvbGxPZmZzZXQsIE5TWmVyb1NpemUpKTsKLQotICAgIF9kYXRhLT5f
cmVzaXplU2Nyb2xsT2Zmc2V0ID0gb2Zmc2V0OwotICAgIFtzZWxmIHNldEZyYW1lOnJlY3RdOwor
ICAgIF9kYXRhLT5faW1wbC0+c2V0RnJhbWVBbmRTY3JvbGxCeShOU1JlY3RUb0NHUmVjdChyZWN0
KSwgTlNTaXplVG9DR1NpemUob2Zmc2V0KSk7CiB9CiAKIC0gKHZvaWQpZGlzYWJsZUZyYW1lU2l6
ZVVwZGF0ZXMKIHsKLSAgICBbX2RhdGEtPl9sYXlvdXRTdHJhdGVneSBkaXNhYmxlRnJhbWVTaXpl
VXBkYXRlc107CisgICAgX2RhdGEtPl9pbXBsLT5kaXNhYmxlRnJhbWVTaXplVXBkYXRlcygpOwog
fQogCiAtICh2b2lkKWVuYWJsZUZyYW1lU2l6ZVVwZGF0ZXMKIHsKLSAgICBbX2RhdGEtPl9sYXlv
dXRTdHJhdGVneSBlbmFibGVGcmFtZVNpemVVcGRhdGVzXTsKKyAgICBfZGF0YS0+X2ltcGwtPmVu
YWJsZUZyYW1lU2l6ZVVwZGF0ZXMoKTsKIH0KIAogLSAoQk9PTClmcmFtZVNpemVVcGRhdGVzRGlz
YWJsZWQKIHsKLSAgICByZXR1cm4gW19kYXRhLT5fbGF5b3V0U3RyYXRlZ3kgZnJhbWVTaXplVXBk
YXRlc0Rpc2FibGVkXTsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5mcmFtZVNpemVVcGRhdGVz
RGlzYWJsZWQoKTsKIH0KIAogKyAodm9pZCloaWRlV29yZERlZmluaXRpb25XaW5kb3cKQEAgLTQx
NjAsMTMgKzM5NDEsMTIgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1l
Rm9yUGF0aChOU1N0cmluZyAqcGF0aCkKIAogLSAoQk9PTClzaG91bGRDbGlwVG9WaXNpYmxlUmVj
dAogewotICAgIHJldHVybiBfZGF0YS0+X2NsaXBzVG9WaXNpYmxlUmVjdDsKKyAgICByZXR1cm4g
X2RhdGEtPl9pbXBsLT5jbGlwc1RvVmlzaWJsZVJlY3QoKTsKIH0KIAogLSAodm9pZClzZXRTaG91
bGRDbGlwVG9WaXNpYmxlUmVjdDooQk9PTCljbGlwc1RvVmlzaWJsZVJlY3QKIHsKLSAgICBfZGF0
YS0+X2NsaXBzVG9WaXNpYmxlUmVjdCA9IGNsaXBzVG9WaXNpYmxlUmVjdDsKLSAgICBbc2VsZiBf
dXBkYXRlVmlld0V4cG9zZWRSZWN0XTsKKyAgICBfZGF0YS0+X2ltcGwtPnNldENsaXBzVG9WaXNp
YmxlUmVjdChjbGlwc1RvVmlzaWJsZVJlY3QpOwogfQogCiAtIChOU0NvbG9yICopdW5kZXJsYXlD
b2xvcgpAQCAtNDIwMywyMCArMzk4MywxMyBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5p
cXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogCiAtIChOU1ZpZXcgKilmdWxsU2Ny
ZWVuUGxhY2Vob2xkZXJWaWV3CiB7Ci0jaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotICAgIGlm
IChfZGF0YS0+X2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyICYmIFtfZGF0YS0+X2Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyIGlzRnVsbFNjcmVlbl0pCi0gICAgICAgIHJldHVybiBbX2RhdGEt
Pl9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciB3ZWJWaWV3UGxhY2Vob2xkZXJdOwotI2VuZGlm
Ci0gICAgcmV0dXJuIG5pbDsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5mdWxsU2NyZWVuUGxh
Y2Vob2xkZXJWaWV3KCk7CiB9CiAKKy8vIEZJWE1FOiBUaGlzIHJldHVybnMgYW4gYXV0b3JlbGVh
c2VkIG9iamVjdC4gU2hvdWxkIGl0IHJlYWxseSBiZSBwcmVmaXhlZCAnY3JlYXRlJz8KIC0gKE5T
V2luZG93ICopY3JlYXRlRnVsbFNjcmVlbldpbmRvdwogewotI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKLSAgICByZXR1cm4gW1tbV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cgYWxsb2NdIGluaXRX
aXRoQ29udGVudFJlY3Q6W1tOU1NjcmVlbiBtYWluU2NyZWVuXSBmcmFtZV0gc3R5bGVNYXNrOihO
U0JvcmRlcmxlc3NXaW5kb3dNYXNrIHwgTlNSZXNpemFibGVXaW5kb3dNYXNrKSBiYWNraW5nOk5T
QmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dIGF1dG9yZWxlYXNlXTsKLSNlbHNlCi0gICAg
cmV0dXJuIG5pbDsKLSNlbmRpZgorICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmNyZWF0ZUZ1bGxT
Y3JlZW5XaW5kb3coKTsKIH0KIAogLy8gRklYTUU6IEFsbCBvZiB0aGVzZSAiRGVmZXJyaW5nVmll
d0luV2luZG93Q2hhbmdlcyIgbWV0aG9kcyBzaG91bGQgYmUgYWJsZSB0byBiZSByZW1vdmVkIG9u
Y2UgY2xpZW50cyBhcmUgd2VhbmVkIG9mZiBvZiB0aGVtLgpAQCAtNDM4Miw1MCArNDE1NSwzMiBA
QCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5n
ICpwYXRoKQogCiAtIChXS0xheW91dE1vZGUpX2xheW91dE1vZGUKIHsKLSAgICByZXR1cm4gW19k
YXRhLT5fbGF5b3V0U3RyYXRlZ3kgbGF5b3V0TW9kZV07CisgICAgcmV0dXJuIF9kYXRhLT5faW1w
bC0+bGF5b3V0TW9kZSgpOwogfQogCiAtICh2b2lkKV9zZXRMYXlvdXRNb2RlOihXS0xheW91dE1v
ZGUpbGF5b3V0TW9kZQogewotICAgIF9kYXRhLT5fbGFzdFJlcXVlc3RlZExheW91dE1vZGUgPSBs
YXlvdXRNb2RlOwotCi0gICAgaWYgKCFbc2VsZiBfc3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2Rl
c10gJiYgbGF5b3V0TW9kZSAhPSBrV0tMYXlvdXRNb2RlVmlld1NpemUpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGlmIChsYXlvdXRNb2RlID09IFtfZGF0YS0+X2xheW91dFN0cmF0ZWd5IGxheW91
dE1vZGVdKQotICAgICAgICByZXR1cm47Ci0KLSAgICBbX2RhdGEtPl9sYXlvdXRTdHJhdGVneSB3
aWxsQ2hhbmdlTGF5b3V0U3RyYXRlZ3ldOwotICAgIF9kYXRhLT5fbGF5b3V0U3RyYXRlZ3kgPSBb
V0tWaWV3TGF5b3V0U3RyYXRlZ3kgbGF5b3V0U3RyYXRlZ3lXaXRoUGFnZToqX2RhdGEtPl9wYWdl
IHZpZXc6c2VsZiBtb2RlOmxheW91dE1vZGVdOworICAgIF9kYXRhLT5faW1wbC0+c2V0TGF5b3V0
TW9kZShsYXlvdXRNb2RlKTsKIH0KIAogLSAoQ0dTaXplKV9maXhlZExheW91dFNpemUKIHsKLSAg
ICByZXR1cm4gX2RhdGEtPl9wYWdlLT5maXhlZExheW91dFNpemUoKTsKKyAgICByZXR1cm4gX2Rh
dGEtPl9pbXBsLT5maXhlZExheW91dFNpemUoKTsKIH0KIAogLSAodm9pZClfc2V0Rml4ZWRMYXlv
dXRTaXplOihDR1NpemUpZml4ZWRMYXlvdXRTaXplCiB7Ci0gICAgX2RhdGEtPl9wYWdlLT5zZXRG
aXhlZExheW91dFNpemUoZXhwYW5kZWRJbnRTaXplKEZsb2F0U2l6ZShmaXhlZExheW91dFNpemUp
KSk7CisgICAgX2RhdGEtPl9pbXBsLT5zZXRGaXhlZExheW91dFNpemUoTlNTaXplVG9DR1NpemUo
Zml4ZWRMYXlvdXRTaXplKSk7CiB9CiAKIC0gKENHRmxvYXQpX3ZpZXdTY2FsZQogewotICAgIHJl
dHVybiBfZGF0YS0+X3BhZ2UtPnZpZXdTY2FsZUZhY3RvcigpOworICAgIHJldHVybiBfZGF0YS0+
X2ltcGwtPnZpZXdTY2FsZSgpOwogfQogCiAtICh2b2lkKV9zZXRWaWV3U2NhbGU6KENHRmxvYXQp
dmlld1NjYWxlCiB7Ci0gICAgX2RhdGEtPl9sYXN0UmVxdWVzdGVkVmlld1NjYWxlID0gdmlld1Nj
YWxlOwotCi0gICAgaWYgKCFbc2VsZiBfc3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2Rlc10gJiYg
dmlld1NjYWxlICE9IDEpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICh2aWV3U2NhbGUgPD0g
MCB8fCBpc25hbih2aWV3U2NhbGUpIHx8IGlzaW5mKHZpZXdTY2FsZSkpCi0gICAgICAgIFtOU0V4
Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJWaWV3IHNj
YWxlIHNob3VsZCBiZSBhIHBvc2l0aXZlIG51bWJlciJdOwotCi0gICAgX2RhdGEtPl9wYWdlLT5z
Y2FsZVZpZXcodmlld1NjYWxlKTsKLSAgICBbX2RhdGEtPl9sYXlvdXRTdHJhdGVneSBkaWRDaGFu
Z2VWaWV3U2NhbGVdOworICAgIF9kYXRhLT5faW1wbC0+c2V0Vmlld1NjYWxlKHZpZXdTY2FsZSk7
CiB9CiAKIC0gKHZvaWQpX2Rpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0CkBAIC00NTI2LDkgKzQy
ODEsOSBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5T
U3RyaW5nICpwYXRoKQogewogICAgIC8vIFRoaXMgU1BJIGlzIG9ubHkgdXNlZCBvbiAxMC45IGFu
ZCBiZWxvdywgYW5kIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBmZW5jZS1iYXNlZCBkcmF3aW5n
IGFyZWEgc2l6ZSBzeW5jaHJvbml6YXRpb24gaW4gMTAuMTArLgogI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA5MAotICAgIGlmIChfZGF0YS0+X2NsaXBzVG9WaXNpYmxl
UmVjdCkKLSAgICAgICAgW3NlbGYgX3VwZGF0ZVZpZXdFeHBvc2VkUmVjdF07Ci0gICAgW3NlbGYg
X3NldERyYXdpbmdBcmVhU2l6ZTpzaXplXTsKKyAgICBpZiAoX2RhdGEtPl9pbXBsLT5jbGlwc1Rv
VmlzaWJsZVJlY3QoKSkKKyAgICAgICAgX2RhdGEtPl9pbXBsLT51cGRhdGVWaWV3RXhwb3NlZFJl
Y3QoKTsKKyAgICBfZGF0YS0+X2ltcGwtPnNldERyYXdpbmdBcmVhU2l6ZShOU1NpemVUb0NHU2l6
ZShzaXplKSk7CiAKICAgICAvLyBJZiBhIGdlb21ldHJ5IHVwZGF0ZSBpcyBwZW5kaW5nIHRoZSBu
ZXcgdXBkYXRlIHdvbid0IGJlIHNlbnQuIFBvbGwgd2l0aG91dCB3YWl0aW5nIGZvciBhbnkKICAg
ICAvLyBwZW5kaW5nIGRpZC11cGRhdGUgbWVzc2FnZSBub3csIHN1Y2ggdGhhdCB0aGUgbmV3IHVw
ZGF0ZSBjYW4gYmUgc2VudC4gV2UgZG8gc28gYWZ0ZXIgc2V0dGluZwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKaW5kZXggMmZhZTdhNjRi
ZGU2ZDJjN2VmZjQwMDk1OWM2OWM0NTVkYzQ5NzZiYy4uOTcwMGNhZmM3OWY1NzcxOTA2YmIwOTY1
ODFjNjgzMGU3NDJhZDFlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L21hYy9XS1ZpZXdJbnRlcm5hbC5oCkBAIC03Nyw3ICs3Nyw2IEBAIHN0cnVjdCBFZGl0b3JTdGF0
ZTsKICNlbmRpZgogCiAtIChzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5
PilfY3JlYXRlRHJhd2luZ0FyZWFQcm94eTsKLS0gKEJPT0wpX2lzRm9jdXNlZDsKIC0gKHZvaWQp
X3Byb2Nlc3NEaWRFeGl0OwogLSAodm9pZClfcGFnZUNsb3NlZDsKIC0gKHZvaWQpX2RpZFJlbGF1
bmNoUHJvY2VzczsKQEAgLTExMCw5ICsxMDksNiBAQCBzdHJ1Y3QgRWRpdG9yU3RhdGU7CiAjaWYg
RU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKIC0gKHZvaWQpX3NldFByb21pc2VkRGF0YUZvckF0
dGFjaG1lbnQ6KE5TU3RyaW5nICopZmlsZW5hbWUgd2l0aEV4dGVuc2lvbjooTlNTdHJpbmcgKill
eHRlbnNpb24gd2l0aFRpdGxlOihOU1N0cmluZyAqKXRpdGxlIHdpdGhVUkw6KE5TU3RyaW5nICop
dXJsIHdpdGhWaXNpYmxlVVJMOihOU1N0cmluZyAqKXZpc2libGVVcmwgZm9yUGFzdGVib2FyZDoo
TlNTdHJpbmcgKilwYXN0ZWJvYXJkTmFtZTsKICNlbmRpZgotLSAodm9pZClfdXBkYXRlU2VjdXJl
SW5wdXRTdGF0ZTsKLS0gKHZvaWQpX3Jlc2V0U2VjdXJlSW5wdXRTdGF0ZTsKLS0gKHZvaWQpX25v
dGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb247CiAKIC0gKFdlYktpdDo6
Q29sb3JTcGFjZURhdGEpX2NvbG9yU3BhY2U7CiAKQEAgLTEyMyw3ICsxMTksNiBAQCBzdHJ1Y3Qg
RWRpdG9yU3RhdGU7CiAtIChCT09MKV9zdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzOwogCiAtICh2
b2lkKV9kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWU7Ci0tICh2b2lk
KV9kaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lOwogLSAodm9pZClfZGlkRmluaXNoTG9hZEZvck1h
aW5GcmFtZTsKIC0gKHZvaWQpX2RpZEZhaWxMb2FkRm9yTWFpbkZyYW1lOwogLSAodm9pZClfZGlk
U2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTooV2ViS2l0OjpTYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uVHlwZSl0eXBlOwpAQCAtMTU4LDEzICsxNTMsNiBAQCBzdHJ1Y3QgRWRpdG9yU3Rh
dGU7CiAKIEBwcm9wZXJ0eSAocmVhZG9ubHkpIE5TV2luZG93ICpfdGFyZ2V0V2luZG93Rm9yTW92
ZVByZXBhcmF0aW9uOwogCi0vLyBGb3IgV0tWaWV3TGF5b3V0U3RyYXRlZ3kgYW5kIHN1YmNsYXNz
ZXM6Ci0tICh2b2lkKV9zZXREcmF3aW5nQXJlYVNpemU6KE5TU2l6ZSlzaXplOwotLSAodm9pZClf
dXBkYXRlVmlld0V4cG9zZWRSZWN0OwotLSAoQ0FMYXllciAqKV9yb290TGF5ZXI7Ci0KLS0gKHZv
aWQpX3VwZGF0ZVN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXM7Ci0KICNpZiBXS19BUElfRU5B
QkxFRAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tSZW1vdGVPYmplY3RSZWdp
c3RyeSAqX3JlbW90ZU9iamVjdFJlZ2lzdHJ5OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5MTI5ODIyMjc2NTA0NGMz
ZDRkY2M4N2NhMTdhYjI0ZmNkYThmOTYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtMCwwICsxLDE0MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgV2ViVmlld0ltcGxfaAorI2RlZmluZSBXZWJWaWV3SW1wbF9oCisKKyNp
ZiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQgIldLTGF5b3V0TW9kZS5oIgorI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgorCitPQkpDX0NMQVNTIE5TVGV4dElucHV0Q29udGV4dDsKK09CSkNfQ0xB
U1MgTlNWaWV3OworT0JKQ19DTEFTUyBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyOworT0JK
Q19DTEFTUyBXS1ZpZXdMYXlvdXRTdHJhdGVneTsKKworQHByb3RvY29sIFdlYlZpZXdJbXBsRGVs
ZWdhdGUKKworLSAoTlNUZXh0SW5wdXRDb250ZXh0ICopX3N1cGVySW5wdXRDb250ZXh0OworCitA
ZW5kCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBXZWJQYWdlUHJveHk7CisKK2NsYXNz
IFdlYlZpZXdJbXBsIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKKyAgICBXVEZfTUFL
RV9OT05DT1BZQUJMRShXZWJWaWV3SW1wbCk7CitwdWJsaWM6CisgICAgV2ViVmlld0ltcGwoTlNW
aWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAqLCBXZWJQYWdlUHJveHkmKTsKKworICAgIH5XZWJW
aWV3SW1wbCgpOworCisgICAgdm9pZCBzZXREcmF3c0JhY2tncm91bmQoYm9vbCk7CisgICAgYm9v
bCBkcmF3c0JhY2tncm91bmQoKSBjb25zdDsKKyAgICB2b2lkIHNldERyYXdzVHJhbnNwYXJlbnRC
YWNrZ3JvdW5kKGJvb2wpOworICAgIGJvb2wgZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoKSBj
b25zdDsKKworICAgIGJvb2wgYWNjZXB0c0ZpcnN0UmVzcG9uZGVyKCk7CisgICAgYm9vbCBiZWNv
bWVGaXJzdFJlc3BvbmRlcigpOworICAgIGJvb2wgcmVzaWduRmlyc3RSZXNwb25kZXIoKTsKKyAg
ICBib29sIGlzRm9jdXNlZCgpIGNvbnN0OworCisgICAgdm9pZCB2aWV3V2lsbFN0YXJ0TGl2ZVJl
c2l6ZSgpOworICAgIHZvaWQgdmlld0RpZEVuZExpdmVSZXNpemUoKTsKKworICAgIHZvaWQgc2V0
RnJhbWVTaXplKENHU2l6ZSk7CisgICAgdm9pZCBkaXNhYmxlRnJhbWVTaXplVXBkYXRlcygpOwor
ICAgIHZvaWQgZW5hYmxlRnJhbWVTaXplVXBkYXRlcygpOworICAgIGJvb2wgZnJhbWVTaXplVXBk
YXRlc0Rpc2FibGVkKCkgY29uc3Q7CisgICAgdm9pZCBzZXRGcmFtZUFuZFNjcm9sbEJ5KENHUmVj
dCwgQ0dTaXplKTsKKworICAgIHZvaWQgc2V0Rml4ZWRMYXlvdXRTaXplKENHU2l6ZSk7CisgICAg
Q0dTaXplIGZpeGVkTGF5b3V0U2l6ZSgpIGNvbnN0OworCisgICAgdm9pZCBzZXREcmF3aW5nQXJl
YVNpemUoQ0dTaXplKTsKKworICAgIHZvaWQgc2V0Q29udGVudFByZXBhcmF0aW9uUmVjdChDR1Jl
Y3QpOworICAgIHZvaWQgdXBkYXRlVmlld0V4cG9zZWRSZWN0KCk7CisgICAgdm9pZCBzZXRDbGlw
c1RvVmlzaWJsZVJlY3QoYm9vbCk7CisgICAgYm9vbCBjbGlwc1RvVmlzaWJsZVJlY3QoKSBjb25z
dCB7IHJldHVybiBtX2NsaXBzVG9WaXNpYmxlUmVjdDsgfQorCisgICAgdm9pZCBzZXRJbnRyaW5z
aWNDb250ZW50U2l6ZShDR1NpemUpOworICAgIENHU2l6ZSBpbnRyaW5zaWNDb250ZW50U2l6ZSgp
IGNvbnN0OworCisgICAgdm9pZCBzZXRWaWV3U2NhbGUoQ0dGbG9hdCk7CisgICAgQ0dGbG9hdCB2
aWV3U2NhbGUoKSBjb25zdDsKKworICAgIFdLTGF5b3V0TW9kZSBsYXlvdXRNb2RlKCkgY29uc3Q7
CisgICAgdm9pZCBzZXRMYXlvdXRNb2RlKFdLTGF5b3V0TW9kZSk7CisgICAgdm9pZCB1cGRhdGVT
dXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCk7CisKKyAgICB2b2lkIHVwZGF0ZVNlY3VyZUlu
cHV0U3RhdGUoKTsKKyAgICB2b2lkIHJlc2V0U2VjdXJlSW5wdXRTdGF0ZSgpOworICAgIGJvb2wg
aW5TZWN1cmVJbnB1dFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9pblNlY3VyZUlucHV0U3RhdGU7
IH0KKyAgICB2b2lkIG5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb24o
KTsKKworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICBib29sIGhhc0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVyKCkgY29uc3Q7CisgICAgV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
ciAqZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKTsKKyAgICB2b2lkIGNsb3NlRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIoKTsKKyNlbmRpZgorICAgIE5TVmlldyAqZnVsbFNjcmVlblBsYWNl
aG9sZGVyVmlldygpOworICAgIE5TV2luZG93ICpjcmVhdGVGdWxsU2NyZWVuV2luZG93KCk7CisK
K3ByaXZhdGU6CisgICAgYm9vbCBzdXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCkgY29uc3Q7
CisKKyAgICBOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICptX3ZpZXc7CisgICAgV2ViUGFn
ZVByb3h5JiBtX3BhZ2U7CisKKyAgICBib29sIG1fd2lsbEJlY29tZUZpcnN0UmVzcG9uZGVyQWdh
aW4geyBmYWxzZSB9OworICAgIGJvb2wgbV9pbkJlY29tZUZpcnN0UmVzcG9uZGVyIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1faW5SZXNpZ25GaXJzdFJlc3BvbmRlciB7IGZhbHNlIH07CisKKyAgICBD
R1JlY3QgbV9jb250ZW50UHJlcGFyYXRpb25SZWN0OworICAgIGJvb2wgbV91c2VDb250ZW50UHJl
cGFyYXRpb25SZWN0Rm9yVmlzaWJsZVJlY3QgeyBmYWxzZSB9OworICAgIGJvb2wgbV9jbGlwc1Rv
VmlzaWJsZVJlY3QgeyBmYWxzZSB9OworCisgICAgQ0dTaXplIG1fcmVzaXplU2Nyb2xsT2Zmc2V0
OworCisgICAgQ0dTaXplIG1faW50cmluc2ljQ29udGVudFNpemU7CisKKyAgICBSZXRhaW5QdHI8
V0tWaWV3TGF5b3V0U3RyYXRlZ3k+IG1fbGF5b3V0U3RyYXRlZ3k7CisgICAgV0tMYXlvdXRNb2Rl
IG1fbGFzdFJlcXVlc3RlZExheW91dE1vZGUgeyBrV0tMYXlvdXRNb2RlVmlld1NpemUgfTsKKyAg
ICBDR0Zsb2F0IG1fbGFzdFJlcXVlc3RlZFZpZXdTY2FsZSB7IDEgfTsKKworICAgIGJvb2wgbV9p
blNlY3VyZUlucHV0U3RhdGUgeyBmYWxzZSB9OworCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQorICAgIFJldGFpblB0cjxXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyPiBtX2Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyOworI2VuZGlmCit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCisKKyNlbmRpZiAvLyBXZWJWaWV3SW1wbF9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjc4ZWYzMDM1N2EyZTUzZTQwZTBhYWRjYjdiYTI1YzY5MDZmMjE0NgotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpA
QCAtMCwwICsxLDQzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9y
dCAiV2ViVmlld0ltcGwuaCIKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCAiR2VuZXJp
Y0NhbGxiYWNrLmgiCisjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJOYXRpdmVXZWJLZXli
b2FyZEV2ZW50LmgiCisjaW1wb3J0ICJXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmgiCisj
aW1wb3J0ICJXS1ZpZXdMYXlvdXRTdHJhdGVneS5oIgorI2ltcG9ydCAiV0tXZWJWaWV3LmgiCisj
aW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgPEhJVG9vbGJveC9DYXJib25FdmVudHND
b3JlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0tleXByZXNzQ29tbWFuZC5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9OU1dpbmRvd1NQSS5oPgorI2ltcG9ydCA8V2ViQ29yZS9WaWV3U3RhdGUuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcuaD4KKyNpbXBvcnQg
PFdlYkNvcmUvV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK1dlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+
ICp2aWV3LCBXZWJQYWdlUHJveHkmIHBhZ2UpCisgICAgOiBtX3ZpZXcodmlldykKKyAgICAsIG1f
cGFnZShwYWdlKQorICAgICwgbV9pbnRyaW5zaWNDb250ZW50U2l6ZShOU01ha2VTaXplKE5TVmll
d05vSW5zdHJpbnNpY01ldHJpYywgTlNWaWV3Tm9JbnN0cmluc2ljTWV0cmljKSkKKyAgICAsIG1f
bGF5b3V0U3RyYXRlZ3koW1dLVmlld0xheW91dFN0cmF0ZWd5IGxheW91dFN0cmF0ZWd5V2l0aFBh
Z2U6bV9wYWdlIHZpZXc6bV92aWV3IHZpZXdJbXBsOip0aGlzIG1vZGU6a1dLTGF5b3V0TW9kZVZp
ZXdTaXplXSkKK3sKK30KKworV2ViVmlld0ltcGw6On5XZWJWaWV3SW1wbCgpCit7CisgICAgQVNT
RVJUKCFtX2luU2VjdXJlSW5wdXRTdGF0ZSk7CisKKyAgICBbbV9sYXlvdXRTdHJhdGVneSBpbnZh
bGlkYXRlXTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0RHJhd3NCYWNrZ3JvdW5kKGJvb2wg
ZHJhd3NCYWNrZ3JvdW5kKQoreworICAgIG1fcGFnZS5zZXREcmF3c0JhY2tncm91bmQoZHJhd3NC
YWNrZ3JvdW5kKTsKK30KKworYm9vbCBXZWJWaWV3SW1wbDo6ZHJhd3NCYWNrZ3JvdW5kKCkgY29u
c3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLmRyYXdzQmFja2dyb3VuZCgpOworfQorCit2b2lkIFdl
YlZpZXdJbXBsOjpzZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZChib29sIGRyYXdzVHJhbnNw
YXJlbnRCYWNrZ3JvdW5kKQoreworICAgIG1fcGFnZS5zZXREcmF3c1RyYW5zcGFyZW50QmFja2dy
b3VuZChkcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCk7Cit9CisKK2Jvb2wgV2ViVmlld0ltcGw6
OmRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdl
LmRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKCk7Cit9CisKK2Jvb2wgV2ViVmlld0ltcGw6OmFj
Y2VwdHNGaXJzdFJlc3BvbmRlcigpCit7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK2Jvb2wgV2Vi
Vmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKCkKK3sKKyAgICAvLyBJZiB3ZSBqdXN0IGJl
Y2FtZSBmaXJzdCByZXNwb25kZXIgYWdhaW4sIHRoZXJlIGlzIG5vIG5lZWQgdG8gZG8gYW55dGhp
bmcsCisgICAgLy8gc2luY2UgcmVzaWduRmlyc3RSZXNwb25kZXIgaGFzIGNvcnJlY3RseSBkZXRl
Y3RlZCB0aGlzIHNpdHVhdGlvbi4KKyAgICBpZiAobV93aWxsQmVjb21lRmlyc3RSZXNwb25kZXJB
Z2FpbikgeworICAgICAgICBtX3dpbGxCZWNvbWVGaXJzdFJlc3BvbmRlckFnYWluID0gTk87Cisg
ICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIE5TU2VsZWN0aW9uRGlyZWN0aW9uIGRp
cmVjdGlvbiA9IFtbbV92aWV3IHdpbmRvd10ga2V5Vmlld1NlbGVjdGlvbkRpcmVjdGlvbl07CisK
KyAgICBtX2luQmVjb21lRmlyc3RSZXNwb25kZXIgPSB0cnVlOworCisgICAgdXBkYXRlU2VjdXJl
SW5wdXRTdGF0ZSgpOworICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmll
d1N0YXRlOjpJc0ZvY3VzZWQpOworICAgIC8vIFJlc3RvcmUgdGhlIHNlbGVjdGlvbiBpbiB0aGUg
ZWRpdGFibGUgcmVnaW9uIGlmIHJlc2lnbmluZyBmaXJzdCByZXNwb25kZXIgY2xlYXJlZCBzZWxl
Y3Rpb24uCisgICAgbV9wYWdlLnJlc3RvcmVTZWxlY3Rpb25JbkZvY3VzZWRFZGl0YWJsZUVsZW1l
bnQoKTsKKworICAgIG1faW5CZWNvbWVGaXJzdFJlc3BvbmRlciA9IGZhbHNlOworCisgICAgaWYg
KGRpcmVjdGlvbiAhPSBOU0RpcmVjdFNlbGVjdGlvbikgeworICAgICAgICBOU0V2ZW50ICpldmVu
dCA9IFtOU0FwcCBjdXJyZW50RXZlbnRdOworICAgICAgICBOU0V2ZW50ICprZXlib2FyZEV2ZW50
ID0gbmlsOworICAgICAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5TS2V5RG93biB8fCBbZXZlbnQg
dHlwZV0gPT0gTlNLZXlVcCkKKyAgICAgICAgICAgIGtleWJvYXJkRXZlbnQgPSBldmVudDsKKyAg
ICAgICAgbV9wYWdlLnNldEluaXRpYWxGb2N1cyhkaXJlY3Rpb24gPT0gTlNTZWxlY3RpbmdOZXh0
LCBrZXlib2FyZEV2ZW50ICE9IG5pbCwgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChrZXlib2FyZEV2
ZW50LCBmYWxzZSwgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4oKSksIFtdKFdlYktp
dDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgeyB9KTsKKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9
CisKK2Jvb2wgV2ViVmlld0ltcGw6OnJlc2lnbkZpcnN0UmVzcG9uZGVyKCkKK3sKKyNpZiBXS19B
UElfRU5BQkxFRAorICAgIC8vIFByZWRpY3QgdGhlIGNhc2Ugd2hlcmUgd2UgYXJlIGxvc2luZyBm
aXJzdCByZXNwb25kZXIgc3RhdHVzIG9ubHkgdG8KKyAgICAvLyBnYWluIGl0IGJhY2sgYWdhaW4u
IFdlIHdhbnQgcmVzaWduRmlyc3RSZXNwb25kZXIgdG8gZG8gbm90aGluZyBpbiB0aGF0IGNhc2Uu
CisgICAgaWQgbmV4dFJlc3BvbmRlciA9IFtbbV92aWV3IHdpbmRvd10gX25ld0ZpcnN0UmVzcG9u
ZGVyQWZ0ZXJSZXNpZ25pbmddOworCisgICAgLy8gRklYTUU6IFRoaXMgd2lsbCBwcm9iYWJseSBu
ZWVkIHRvIGNoYW5nZSBvbmNlIFdLV2ViVmlldyBkb2Vzbid0IGNvbnRhaW4gYSBXS1ZpZXcuCisg
ICAgaWYgKFtuZXh0UmVzcG9uZGVyIGlzS2luZE9mQ2xhc3M6W1dLV2ViVmlldyBjbGFzc11dICYm
IG1fdmlldy5zdXBlcnZpZXcgPT0gbmV4dFJlc3BvbmRlcikgeworICAgICAgICBtX3dpbGxCZWNv
bWVGaXJzdFJlc3BvbmRlckFnYWluID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorI2VuZGlmCisKKyAgICBtX3dpbGxCZWNvbWVGaXJzdFJlc3BvbmRlckFnYWluID0gTk87Cisg
ICAgbV9pblJlc2lnbkZpcnN0UmVzcG9uZGVyID0gdHJ1ZTsKKworI2lmIFVTRShBU1lOQ19OU1RF
WFRJTlBVVENMSUVOVCkKKyAgICBtX3BhZ2UuY29uZmlybUNvbXBvc2l0aW9uQXN5bmMoKTsKKyNl
bHNlCisgICAgaWYgKG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmhhc0NvbXBvc2l0aW9uICYmICFtX3Bh
Z2UuZWRpdG9yU3RhdGUoKS5zaG91bGRJZ25vcmVDb21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZSkK
KyAgICAgICAgbV9wYWdlLmNhbmNlbENvbXBvc2l0aW9uKCk7CisjZW5kaWYKKworICAgIG5vdGlm
eUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb24oKTsKKworICAgIHJlc2V0U2Vj
dXJlSW5wdXRTdGF0ZSgpOworCisgICAgaWYgKCFtX3BhZ2UubWFpbnRhaW5zSW5hY3RpdmVTZWxl
Y3Rpb24oKSkKKyAgICAgICAgbV9wYWdlLmNsZWFyU2VsZWN0aW9uKCk7CisKKyAgICBtX3BhZ2Uu
dmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNGb2N1c2VkKTsKKyAgICAK
KyAgICBtX2luUmVzaWduRmlyc3RSZXNwb25kZXIgPSBmYWxzZTsKKyAgICAKKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworYm9vbCBXZWJWaWV3SW1wbDo6aXNGb2N1c2VkKCkgY29uc3QKK3sKKyAgICBp
ZiAobV9pbkJlY29tZUZpcnN0UmVzcG9uZGVyKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBp
ZiAobV9pblJlc2lnbkZpcnN0UmVzcG9uZGVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIG1fdmlldy53aW5kb3cuZmlyc3RSZXNwb25kZXIgPT0gbV92aWV3OworfQorCit2b2lk
IFdlYlZpZXdJbXBsOjp2aWV3V2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpCit7CisgICAgbV9wYWdlLnZp
ZXdXaWxsU3RhcnRMaXZlUmVzaXplKCk7CisKKyAgICBbbV9sYXlvdXRTdHJhdGVneSB3aWxsU3Rh
cnRMaXZlUmVzaXplXTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6dmlld0RpZEVuZExpdmVSZXNp
emUoKQoreworICAgIG1fcGFnZS52aWV3V2lsbEVuZExpdmVSZXNpemUoKTsKKworICAgIFttX2xh
eW91dFN0cmF0ZWd5IGRpZEVuZExpdmVSZXNpemVdOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpz
ZXRGcmFtZVNpemUoQ0dTaXplKQoreworICAgIFttX2xheW91dFN0cmF0ZWd5IGRpZENoYW5nZUZy
YW1lU2l6ZV07Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmRpc2FibGVGcmFtZVNpemVVcGRhdGVz
KCkKK3sKKyAgICBbbV9sYXlvdXRTdHJhdGVneSBkaXNhYmxlRnJhbWVTaXplVXBkYXRlc107Cit9
CisKK3ZvaWQgV2ViVmlld0ltcGw6OmVuYWJsZUZyYW1lU2l6ZVVwZGF0ZXMoKQoreworICAgIFtt
X2xheW91dFN0cmF0ZWd5IGVuYWJsZUZyYW1lU2l6ZVVwZGF0ZXNdOworfQorCitib29sIFdlYlZp
ZXdJbXBsOjpmcmFtZVNpemVVcGRhdGVzRGlzYWJsZWQoKSBjb25zdAoreworICAgIHJldHVybiBb
bV9sYXlvdXRTdHJhdGVneSBmcmFtZVNpemVVcGRhdGVzRGlzYWJsZWRdOworfQorCit2b2lkIFdl
YlZpZXdJbXBsOjpzZXRGcmFtZUFuZFNjcm9sbEJ5KENHUmVjdCBmcmFtZSwgQ0dTaXplIG9mZnNl
dCkKK3sKKyAgICBBU1NFUlQoQ0dTaXplRXF1YWxUb1NpemUobV9yZXNpemVTY3JvbGxPZmZzZXQs
IENHU2l6ZVplcm8pKTsKKworICAgIG1fcmVzaXplU2Nyb2xsT2Zmc2V0ID0gb2Zmc2V0OworICAg
IG1fdmlldy5mcmFtZSA9IGZyYW1lOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRGaXhlZExh
eW91dFNpemUoQ0dTaXplIGZpeGVkTGF5b3V0U2l6ZSkKK3sKKyAgICBtX3BhZ2Uuc2V0Rml4ZWRM
YXlvdXRTaXplKFdlYkNvcmU6OmV4cGFuZGVkSW50U2l6ZShXZWJDb3JlOjpGbG9hdFNpemUoZml4
ZWRMYXlvdXRTaXplKSkpOworfQorCitDR1NpemUgV2ViVmlld0ltcGw6OmZpeGVkTGF5b3V0U2l6
ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS5maXhlZExheW91dFNpemUoKTsKK30KKwor
dm9pZCBXZWJWaWV3SW1wbDo6c2V0RHJhd2luZ0FyZWFTaXplKENHU2l6ZSBzaXplKQoreworICAg
IGlmICghbV9wYWdlLmRyYXdpbmdBcmVhKCkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFn
ZS5kcmF3aW5nQXJlYSgpLT5zZXRTaXplKFdlYkNvcmU6OkludFNpemUoc2l6ZSksIFdlYkNvcmU6
OkludFNpemUoKSwgV2ViQ29yZTo6SW50U2l6ZShtX3Jlc2l6ZVNjcm9sbE9mZnNldCkpOworICAg
IG1fcmVzaXplU2Nyb2xsT2Zmc2V0ID0gQ0dTaXplWmVybzsKK30KKwordm9pZCBXZWJWaWV3SW1w
bDo6c2V0Q29udGVudFByZXBhcmF0aW9uUmVjdChDR1JlY3QgcmVjdCkKK3sKKyAgICBtX2NvbnRl
bnRQcmVwYXJhdGlvblJlY3QgPSByZWN0OworICAgIG1fdXNlQ29udGVudFByZXBhcmF0aW9uUmVj
dEZvclZpc2libGVSZWN0ID0gdHJ1ZTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlVmll
d0V4cG9zZWRSZWN0KCkKK3sKKyAgICBOU1JlY3QgZXhwb3NlZFJlY3QgPSBbbV92aWV3IHZpc2li
bGVSZWN0XTsKKworICAgIGlmIChtX3VzZUNvbnRlbnRQcmVwYXJhdGlvblJlY3RGb3JWaXNpYmxl
UmVjdCkKKyAgICAgICAgZXhwb3NlZFJlY3QgPSBOU1VuaW9uUmVjdChtX2NvbnRlbnRQcmVwYXJh
dGlvblJlY3QsIGV4cG9zZWRSZWN0KTsKKworICAgIGlmIChhdXRvIGRyYXdpbmdBcmVhID0gbV9w
YWdlLmRyYXdpbmdBcmVhKCkpCisgICAgICAgIGRyYXdpbmdBcmVhLT5zZXRFeHBvc2VkUmVjdCht
X2NsaXBzVG9WaXNpYmxlUmVjdCA/IFdlYkNvcmU6OkZsb2F0UmVjdChleHBvc2VkUmVjdCkgOiBX
ZWJDb3JlOjpGbG9hdFJlY3Q6OmluZmluaXRlUmVjdCgpKTsKK30KKwordm9pZCBXZWJWaWV3SW1w
bDo6c2V0Q2xpcHNUb1Zpc2libGVSZWN0KGJvb2wgY2xpcHNUb1Zpc2libGVSZWN0KQoreworICAg
IG1fY2xpcHNUb1Zpc2libGVSZWN0ID0gY2xpcHNUb1Zpc2libGVSZWN0OworICAgIHVwZGF0ZVZp
ZXdFeHBvc2VkUmVjdCgpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRJbnRyaW5zaWNDb250
ZW50U2l6ZShDR1NpemUgaW50cmluc2ljQ29udGVudFNpemUpCit7CisgICAgLy8gSWYgdGhlIGlu
dHJpbnNpYyBjb250ZW50IHNpemUgaXMgbGVzcyB0aGFuIHRoZSBtaW5pbXVtIGxheW91dCB3aWR0
aCwgdGhlIGNvbnRlbnQgZmxvd2VkIHRvIGZpdCwKKyAgICAvLyBzbyB3ZSBjYW4gcmVwb3J0IHRo
YXQgdGhhdCBkaW1lbnNpb24gaXMgZmxleGlibGUuIElmIG5vdCwgd2UgbmVlZCB0byByZXBvcnQg
b3VyIGludHJpbnNpYyB3aWR0aAorICAgIC8vIHNvIHRoYXQgYXV0b2xheW91dCB3aWxsIGtub3cg
dG8gcHJvdmlkZSBzcGFjZSBmb3IgdXMuCisKKyAgICBOU1NpemUgaW50cmluc2ljQ29udGVudFNp
emVBY2tub3dsZWRnaW5nRmxleGlibGVXaWR0aCA9IGludHJpbnNpY0NvbnRlbnRTaXplOworICAg
IGlmIChpbnRyaW5zaWNDb250ZW50U2l6ZS53aWR0aCA8IG1fcGFnZS5taW5pbXVtTGF5b3V0U2l6
ZSgpLndpZHRoKCkpCisgICAgICAgIGludHJpbnNpY0NvbnRlbnRTaXplQWNrbm93bGVkZ2luZ0Zs
ZXhpYmxlV2lkdGgud2lkdGggPSBOU1ZpZXdOb0luc3RyaW5zaWNNZXRyaWM7CisKKyAgICBtX2lu
dHJpbnNpY0NvbnRlbnRTaXplID0gaW50cmluc2ljQ29udGVudFNpemVBY2tub3dsZWRnaW5nRmxl
eGlibGVXaWR0aDsKKyAgICBbbV92aWV3IGludmFsaWRhdGVJbnRyaW5zaWNDb250ZW50U2l6ZV07
Cit9CisKK0NHU2l6ZSBXZWJWaWV3SW1wbDo6aW50cmluc2ljQ29udGVudFNpemUoKSBjb25zdAor
eworICAgIHJldHVybiBtX2ludHJpbnNpY0NvbnRlbnRTaXplOworfQorCit2b2lkIFdlYlZpZXdJ
bXBsOjpzZXRWaWV3U2NhbGUoQ0dGbG9hdCB2aWV3U2NhbGUpCit7CisgICAgbV9sYXN0UmVxdWVz
dGVkVmlld1NjYWxlID0gdmlld1NjYWxlOworCisgICAgaWYgKCFzdXBwb3J0c0FyYml0cmFyeUxh
eW91dE1vZGVzKCkgJiYgdmlld1NjYWxlICE9IDEpCisgICAgICAgIHJldHVybjsKKworICAgIGlm
ICh2aWV3U2NhbGUgPD0gMCB8fCBpc25hbih2aWV3U2NhbGUpIHx8IGlzaW5mKHZpZXdTY2FsZSkp
CisgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBm
b3JtYXQ6QCJWaWV3IHNjYWxlIHNob3VsZCBiZSBhIHBvc2l0aXZlIG51bWJlciJdOworCisgICAg
bV9wYWdlLnNjYWxlVmlldyh2aWV3U2NhbGUpOworICAgIFttX2xheW91dFN0cmF0ZWd5IGRpZENo
YW5nZVZpZXdTY2FsZV07Cit9CisKK0NHRmxvYXQgV2ViVmlld0ltcGw6OnZpZXdTY2FsZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS52aWV3U2NhbGVGYWN0b3IoKTsKK30KKworV0tMYXlv
dXRNb2RlIFdlYlZpZXdJbXBsOjpsYXlvdXRNb2RlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gW21f
bGF5b3V0U3RyYXRlZ3kgbGF5b3V0TW9kZV07Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldExh
eW91dE1vZGUoV0tMYXlvdXRNb2RlIGxheW91dE1vZGUpCit7CisgICAgbV9sYXN0UmVxdWVzdGVk
TGF5b3V0TW9kZSA9IGxheW91dE1vZGU7CisKKyAgICBpZiAoIXN1cHBvcnRzQXJiaXRyYXJ5TGF5
b3V0TW9kZXMoKSAmJiBsYXlvdXRNb2RlICE9IGtXS0xheW91dE1vZGVWaWV3U2l6ZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKGxheW91dE1vZGUgPT0gW21fbGF5b3V0U3RyYXRlZ3kgbGF5
b3V0TW9kZV0pCisgICAgICAgIHJldHVybjsKKworICAgIFttX2xheW91dFN0cmF0ZWd5IHdpbGxD
aGFuZ2VMYXlvdXRTdHJhdGVneV07CisgICAgbV9sYXlvdXRTdHJhdGVneSA9IFtXS1ZpZXdMYXlv
dXRTdHJhdGVneSBsYXlvdXRTdHJhdGVneVdpdGhQYWdlOm1fcGFnZSB2aWV3Om1fdmlldyB2aWV3
SW1wbDoqdGhpcyBtb2RlOmxheW91dE1vZGVdOworfQorCitib29sIFdlYlZpZXdJbXBsOjpzdXBw
b3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCkgY29uc3QKK3sKKyAgICBpZiAoW21fZnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIgaXNGdWxsU2NyZWVuXSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwor
CisgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3BhZ2UubWFpbkZyYW1lKCk7CisgICAgaWYg
KCFmcmFtZSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAvLyBJZiB3ZSBoYXZlIGEgcGx1
Z2luIGRvY3VtZW50IGluIHRoZSBtYWluIGZyYW1lLCBhdm9pZCB1c2luZyBjdXN0b20gV0tMYXlv
dXRNb2RlcworICAgIC8vIGFuZCBmYWxsIGJhY2sgdG8gdGhlIGRlZmF1bHRzLCBiZWNhdXNlIHRo
ZXJlJ3MgYSBnb29kIGNoYW5jZSB0aGF0IGl0IHdvbid0IHdvcmsgKGUuZy4gd2l0aCBQREZQbHVn
aW4pLgorICAgIGlmIChmcmFtZS0+Y29udGFpbnNQbHVnaW5Eb2N1bWVudCgpKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6
dXBkYXRlU3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcygpCit7CisgICAgaWYgKCFzdXBwb3J0
c0FyYml0cmFyeUxheW91dE1vZGVzKCkpIHsKKyAgICAgICAgV0tMYXlvdXRNb2RlIG9sZFJlcXVl
c3RlZExheW91dE1vZGUgPSBtX2xhc3RSZXF1ZXN0ZWRMYXlvdXRNb2RlOworICAgICAgICBDR0Zs
b2F0IG9sZFJlcXVlc3RlZFZpZXdTY2FsZSA9IG1fbGFzdFJlcXVlc3RlZFZpZXdTY2FsZTsKKyAg
ICAgICAgc2V0Vmlld1NjYWxlKDEpOworICAgICAgICBzZXRMYXlvdXRNb2RlKGtXS0xheW91dE1v
ZGVWaWV3U2l6ZSk7CisKKyAgICAgICAgLy8gVGhlICdsYXN0IHJlcXVlc3RlZCcgcGFyYW1ldGVy
cyB3aWxsIGhhdmUgYmVlbiBvdmVyd3JpdHRlbiBieSBzZXR0aW5nIHRoZW0gYWJvdmUsIGJ1dCB3
ZSBkb24ndAorICAgICAgICAvLyB3YW50IHRoaXMgdG8gY291bnQgYXMgYSByZXF1ZXN0IChvbmx5
IGNoYW5nZXMgZnJvbSB0aGUgY2xpZW50IGNvdW50KSwgc28gcmVzZXQgdGhlbS4KKyAgICAgICAg
bV9sYXN0UmVxdWVzdGVkTGF5b3V0TW9kZSA9IG9sZFJlcXVlc3RlZExheW91dE1vZGU7CisgICAg
ICAgIG1fbGFzdFJlcXVlc3RlZFZpZXdTY2FsZSA9IG9sZFJlcXVlc3RlZFZpZXdTY2FsZTsKKyAg
ICB9IGVsc2UgaWYgKG1fbGFzdFJlcXVlc3RlZExheW91dE1vZGUgIT0gW21fbGF5b3V0U3RyYXRl
Z3kgbGF5b3V0TW9kZV0pIHsKKyAgICAgICAgc2V0Vmlld1NjYWxlKG1fbGFzdFJlcXVlc3RlZFZp
ZXdTY2FsZSk7CisgICAgICAgIHNldExheW91dE1vZGUobV9sYXN0UmVxdWVzdGVkTGF5b3V0TW9k
ZSk7CisgICAgfQorfQorCit2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVTZWN1cmVJbnB1dFN0YXRl
KCkKK3sKKyAgICBpZiAoIVtbbV92aWV3IHdpbmRvd10gaXNLZXlXaW5kb3ddIHx8ICFpc0ZvY3Vz
ZWQoKSkgeworICAgICAgICBpZiAobV9pblNlY3VyZUlucHV0U3RhdGUpIHsKKyAgICAgICAgICAg
IERpc2FibGVTZWN1cmVFdmVudElucHV0KCk7CisgICAgICAgICAgICBtX2luU2VjdXJlSW5wdXRT
dGF0ZSA9IGZhbHNlOworICAgICAgICB9CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgLy8g
V0tWaWV3IGhhcyBhIHNpbmdsZSBpbnB1dCBjb250ZXh0IGZvciBhbGwgZWRpdGFibGUgYXJlYXMg
KGV4Y2VwdCBmb3IgcGx1Zy1pbnMpLgorICAgIE5TVGV4dElucHV0Q29udGV4dCAqY29udGV4dCA9
IFttX3ZpZXcgX3N1cGVySW5wdXRDb250ZXh0XTsKKyAgICBib29sIGlzSW5QYXNzd29yZEZpZWxk
ID0gbV9wYWdlLmVkaXRvclN0YXRlKCkuaXNJblBhc3N3b3JkRmllbGQ7CisKKyAgICBpZiAoaXNJ
blBhc3N3b3JkRmllbGQpIHsKKyAgICAgICAgaWYgKCFtX2luU2VjdXJlSW5wdXRTdGF0ZSkKKyAg
ICAgICAgICAgIEVuYWJsZVNlY3VyZUV2ZW50SW5wdXQoKTsKKyAgICAgICAgc3RhdGljIE5TQXJy
YXkgKnJvbWFuSW5wdXRTb3VyY2VzID0gW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6
Jk5TQWxsUm9tYW5JbnB1dFNvdXJjZXNMb2NhbGVJZGVudGlmaWVyIGNvdW50OjFdOworICAgICAg
ICBMT0coVGV4dElucHV0LCAiLT4gc2V0QWxsb3dlZElucHV0U291cmNlTG9jYWxlczpyb21hbklu
cHV0U291cmNlcyIpOworICAgICAgICBbY29udGV4dCBzZXRBbGxvd2VkSW5wdXRTb3VyY2VMb2Nh
bGVzOnJvbWFuSW5wdXRTb3VyY2VzXTsKKyAgICB9IGVsc2UgeworICAgICAgICBpZiAobV9pblNl
Y3VyZUlucHV0U3RhdGUpCisgICAgICAgICAgICBEaXNhYmxlU2VjdXJlRXZlbnRJbnB1dCgpOwor
ICAgICAgICBMT0coVGV4dElucHV0LCAiLT4gc2V0QWxsb3dlZElucHV0U291cmNlTG9jYWxlczpu
aWwiKTsKKyAgICAgICAgW2NvbnRleHQgc2V0QWxsb3dlZElucHV0U291cmNlTG9jYWxlczpuaWxd
OworICAgIH0KKyAgICBtX2luU2VjdXJlSW5wdXRTdGF0ZSA9IGlzSW5QYXNzd29yZEZpZWxkOwor
fQorCit2b2lkIFdlYlZpZXdJbXBsOjpyZXNldFNlY3VyZUlucHV0U3RhdGUoKQoreworICAgIGlm
IChtX2luU2VjdXJlSW5wdXRTdGF0ZSkgeworICAgICAgICBEaXNhYmxlU2VjdXJlRXZlbnRJbnB1
dCgpOworICAgICAgICBtX2luU2VjdXJlSW5wdXRTdGF0ZSA9IGZhbHNlOworICAgIH0KK30KKwor
dm9pZCBXZWJWaWV3SW1wbDo6bm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3Np
dGlvbigpCit7CisgICAgLy8gPHJkYXI6Ly9wcm9ibGVtLzkzNTkwNTU+OiAtZGlzY2FyZE1hcmtl
ZFRleHQgY2FuIG9ubHkgYmUgY2FsbGVkIGZvciBhY3RpdmUgY29udGV4dHMuCisgICAgLy8gRklY
TUU6IFdlIGZhaWwgdG8gZXZlciBub3RpZnkgdGhlIGlucHV0IGNvbnRleHQgaWYgc29tZXRoaW5n
IChlLmcuIGEgbmF2aWdhdGlvbikgaGFwcGVucyB3aGlsZSB0aGUgd2luZG93IGlzIG5vdCBrZXku
CisgICAgLy8gVGhpcyBpcyBub3QgYSBwcm9ibGVtIHdoZW4gdGhlIHdpbmRvdyBpcyBrZXksIGJl
Y2F1c2Ugd2UgZGlzY2FyZCBtYXJrZWQgdGV4dCBvbiByZXNpZ25pbmcgZmlyc3QgcmVzcG9uZGVy
LgorICAgIGlmICghW1ttX3ZpZXcgd2luZG93XSBpc0tleVdpbmRvd10gfHwgbV92aWV3ICE9IFtb
bV92aWV3IHdpbmRvd10gZmlyc3RSZXNwb25kZXJdKQorICAgICAgICByZXR1cm47CisKKyAgICBM
T0coVGV4dElucHV0LCAiLT4gZGlzY2FyZE1hcmtlZFRleHQiKTsKKworICAgIFtbbV92aWV3IF9z
dXBlcklucHV0Q29udGV4dF0gZGlzY2FyZE1hcmtlZFRleHRdOyAvLyBJbmZvcm0gdGhlIGlucHV0
IG1ldGhvZCB0aGF0IHdlIHdvbid0IGhhdmUgYW4gaW5saW5lIGlucHV0IGFyZWEgZGVzcGl0ZSBo
YXZpbmcgYmVlbiBhc2tlZCB0by4KK30KKworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKK2Jv
b2wgV2ViVmlld0ltcGw6Omhhc0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gISFtX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyOworfQorCitXS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyICpXZWJWaWV3SW1wbDo6ZnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIoKQoreworICAgIGlmICghbV9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcikKKyAgICAg
ICAgbV9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciA9IGFkb3B0TlMoW1tXS0Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVyIGFsbG9jXSBpbml0V2l0aFdpbmRvdzpjcmVhdGVGdWxsU2NyZWVuV2lu
ZG93KCkgd2ViVmlldzptX3ZpZXcgcGFnZTptX3BhZ2VdKTsKKworICAgIHJldHVybiBtX2Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyLmdldCgpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpjbG9z
ZUZ1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKCkKK3sKKyAgICBpZiAoIW1fZnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIFttX2Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVyIGNsb3NlXTsKKyAgICBtX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyID0g
bnVsbHB0cjsKK30KKyNlbmRpZgorCitOU1ZpZXcgKldlYlZpZXdJbXBsOjpmdWxsU2NyZWVuUGxh
Y2Vob2xkZXJWaWV3KCkKK3sKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgaWYgKG1f
ZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgJiYgW21fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIgaXNGdWxsU2NyZWVuXSkKKyAgICAgICAgcmV0dXJuIFttX2Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyIHdlYlZpZXdQbGFjZWhvbGRlcl07CisjZW5kaWYKKyAgICByZXR1cm4gbmlsOworfQor
CitOU1dpbmRvdyAqV2ViVmlld0ltcGw6OmNyZWF0ZUZ1bGxTY3JlZW5XaW5kb3coKQoreworI2lm
IEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICByZXR1cm4gW1tbV2ViQ29yZUZ1bGxTY3JlZW5X
aW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W1tOU1NjcmVlbiBtYWluU2NyZWVuXSBm
cmFtZV0gc3R5bGVNYXNrOihOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIHwgTlNSZXNpemFibGVXaW5k
b3dNYXNrKSBiYWNraW5nOk5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dIGF1dG9yZWxl
YXNlXTsKKyNlbHNlCisgICAgcmV0dXJuIG5pbDsKKyNlbmRpZgorfQorCisKK30gLy8gbmFtZXNw
YWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IDQ3M2YyYzM5ODM4ZWEwMmNlOWFh
NDVjYmM0NTRjYzRmNTdiZWQ5ODcuLjZmZGYyMjBiYmE0MDc3N2Q1NDQxMzA0YmFhODI5YWU3OWUy
MmQ4OWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
LmgKQEAgLTQzLDYgKzQzLDggQEAgY2xhc3MgQWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyOwog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViVmlld0ltcGw7CisKIGNsYXNzIFBhZ2VD
bGllbnRJbXBsIGZpbmFsIDogcHVibGljIFBhZ2VDbGllbnQKICNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCiAgICAgLCBwdWJsaWMgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eUNsaWVudApAQCAt
NTEsNyArNTMsMTAgQEAgY2xhc3MgUGFnZUNsaWVudEltcGwgZmluYWwgOiBwdWJsaWMgUGFnZUNs
aWVudAogcHVibGljOgogICAgIFBhZ2VDbGllbnRJbXBsKFdLVmlldyAqLCBXS1dlYlZpZXcgKik7
CiAgICAgdmlydHVhbCB+UGFnZUNsaWVudEltcGwoKTsKLSAgICAKKworICAgIC8vIEZJWE1FOiBF
dmVudHVhbGx5IFdlYlZpZXdJbXBsIHNob3VsZCBiZWNvbWUgdGhlIFBhZ2VDbGllbnQuCisgICAg
dm9pZCBzZXRJbXBsKFdlYlZpZXdJbXBsJiBpbXBsKSB7IG1faW1wbCA9ICZpbXBsOyB9CisKICAg
ICB2b2lkIHZpZXdXaWxsTW92ZVRvQW5vdGhlcldpbmRvdygpOwogCiBwcml2YXRlOgpAQCAtMjEw
LDYgKzIxNSw3IEBAIHByaXZhdGU6CiAKICAgICBXS1ZpZXcgKm1fd2tWaWV3OwogICAgIFdLV2Vi
VmlldyAqbV93ZWJWaWV3OworICAgIFdlYlZpZXdJbXBsKiBtX2ltcGwgeyBudWxscHRyIH07CiAg
ICAgUmV0YWluUHRyPFdLRWRpdG9yVW5kb1RhcmdldE9iakM+IG1fdW5kb1RhcmdldDsKICNpZiBV
U0UoQVVUT0NPUlJFQ1RJT05fUEFORUwpCiAgICAgQ29ycmVjdGlvblBhbmVsIG1fY29ycmVjdGlv
blBhbmVsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwu
bW0KaW5kZXggMmM5NGIwMzU1ZDk5NDAwMDAyNjhiMWMxNzExYjBmOGNjZjFkN2I3Zi4uMjI1OGRj
YTRlMmVkNzdhNjlmODRhNzA4MWZlOTQ3YjRiZjIwZDgzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCkBAIC00Niw2ICs0Niw3IEBACiAjaW1w
b3J0ICJXZWJDb250ZXh0TWVudVByb3h5TWFjLmgiCiAjaW1wb3J0ICJXZWJFZGl0Q29tbWFuZFBy
b3h5LmgiCiAjaW1wb3J0ICJXZWJQb3B1cE1lbnVQcm94eU1hYy5oIgorI2ltcG9ydCAiV2ViVmll
d0ltcGwuaCIKICNpbXBvcnQgIldpbmRvd1NlcnZlckNvbm5lY3Rpb24uaCIKICNpbXBvcnQgIl9X
S0Rvd25sb2FkSW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0hpdFRlc3RSZXN1bHRJbnRlcm5hbC5o
IgpAQCAtMjE4LDcgKzIxOSwxMiBAQCBib29sIFBhZ2VDbGllbnRJbXBsOjppc1ZpZXdXaW5kb3dB
Y3RpdmUoKQogCiBib29sIFBhZ2VDbGllbnRJbXBsOjppc1ZpZXdGb2N1c2VkKCkKIHsKLSAgICBy
ZXR1cm4gW21fd2tWaWV3IF9pc0ZvY3VzZWRdOworICAgIC8vIEZJWE1FOiBUaGlzIGlzIGNhbGxl
ZCBmcm9tIHRoZSBXZWJQYWdlUHJveHkgY29uc3RydWN0b3IgYmVmb3JlIHdlIGhhdmUgYSBXZWJW
aWV3SW1wbC4KKyAgICAvLyBPbmNlIFdlYlZpZXdJbXBsIGFuZCBQYWdlQ2xpZW50IG1lcmdlLCB0
aGlzIHdvbid0IGJlIGEgcHJvYmxlbS4KKyAgICBpZiAoIW1faW1wbCkKKyAgICAgICAgcmV0dXJu
IE5POworCisgICAgcmV0dXJuIG1faW1wbC0+aXNGb2N1c2VkKCk7CiB9CiAKIHZvaWQgUGFnZUNs
aWVudEltcGw6Om1ha2VGaXJzdFJlc3BvbmRlcigpCkBAIC0zMTAsNyArMzE2LDcgQEAgdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6dG9vbFRpcENoYW5nZWQoY29uc3QgU3RyaW5nJiBvbGRUb29sVGlwLCBj
b25zdCBTdHJpbmcmIG5ld1QKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ29tbWl0TG9hZEZv
ck1haW5GcmFtZShjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCBib29sIHVzZUN1c3RvbUNvbnRlbnRQ
cm92aWRlcikKIHsKLSAgICBbbV93a1ZpZXcgX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWVdOwor
ICAgIG1faW1wbC0+dXBkYXRlU3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcygpOwogfQogCiB2
b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQ
cm92aWRlcihjb25zdCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBJUEM6OkRhdGFS
ZWZlcmVuY2UmIGRhdGFSZWZlcmVuY2UpCkBAIC00MzIsMTcgKzQzOCwxNyBAQCB2b2lkIFBhZ2VD
bGllbnRJbXBsOjpzZXRQcm9taXNlZERhdGFGb3JBdHRhY2htZW50KGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZE5hbWUsCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnVwZGF0ZVNlY3VyZUlucHV0U3Rh
dGUoKQogewotICAgIFttX3drVmlldyBfdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZV07CisgICAgbV9p
bXBsLT51cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6
OnJlc2V0U2VjdXJlSW5wdXRTdGF0ZSgpCiB7Ci0gICAgW21fd2tWaWV3IF9yZXNldFNlY3VyZUlu
cHV0U3RhdGVdOworICAgIG1faW1wbC0+cmVzZXRTZWN1cmVJbnB1dFN0YXRlKCk7CiB9CiAKIHZv
aWQgUGFnZUNsaWVudEltcGw6Om5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9z
aXRpb24oKQogewotICAgIFttX3drVmlldyBfbm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJk
ZWRDb21wb3NpdGlvbl07CisgICAgbV9pbXBsLT5ub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2Nh
cmRlZENvbXBvc2l0aW9uKCk7CiB9CiAKICNpZiBQTEFURk9STShNQUMpICYmICFVU0UoQVNZTkNf
TlNURVhUSU5QVVRDTElFTlQpCkBAIC03MTUsMTMgKzcyMSwxMyBAQCB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpleGl0RnVsbFNjcmVlbigpCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpiZWdhbkVudGVyRnVs
bFNjcmVlbihjb25zdCBJbnRSZWN0JiBpbml0aWFsRnJhbWUsIGNvbnN0IEludFJlY3QmIGZpbmFs
RnJhbWUpCiB7CiAgICAgW21fd2tWaWV3Ll9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBiZWdh
bkVudGVyRnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6aW5pdGlhbEZyYW1lIGZpbmFsRnJhbWU6
ZmluYWxGcmFtZV07Ci0gICAgW21fd2tWaWV3IF91cGRhdGVTdXBwb3J0c0FyYml0cmFyeUxheW91
dE1vZGVzXTsKKyAgICBtX2ltcGwtPnVwZGF0ZVN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMo
KTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6YmVnYW5FeGl0RnVsbFNjcmVlbihjb25zdCBJ
bnRSZWN0JiBpbml0aWFsRnJhbWUsIGNvbnN0IEludFJlY3QmIGZpbmFsRnJhbWUpCiB7CiAgICAg
W21fd2tWaWV3Ll9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBiZWdhbkV4aXRGdWxsU2NyZWVu
V2l0aEluaXRpYWxGcmFtZTppbml0aWFsRnJhbWUgZmluYWxGcmFtZTpmaW5hbEZyYW1lXTsKLSAg
ICBbbV93a1ZpZXcgX3VwZGF0ZVN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXNdOworICAgIG1f
aW1wbC0+dXBkYXRlU3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcygpOwogfQogCiAjZW5kaWYg
Ly8gRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaAppbmRleCBjNjYz
MDAyN2ViZDRjYjNiN2RkMzQ0ZGI3OWZiZmUwMGIyYTY0YzI1Li41OTYzZDNmM2Q2YzE3ODRlMDU0
NWI3NmM1NjdhYTYwMmVjMjc1ODVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaApAQCAtMzAsNiAr
MzAsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsgCiBjbGFzcyBMYXllclRyZWVDb250ZXh0Owor
Y2xhc3MgV2ViUGFnZVByb3h5OwogfQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00NCw3ICs0
NSw4IEBAIHR5cGVkZWYgZW51bSBGdWxsU2NyZWVuU3RhdGUgOiBOU0ludGVnZXIgRnVsbFNjcmVl
blN0YXRlOwogCiBAaW50ZXJmYWNlIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgOiBOU1dp
bmRvd0NvbnRyb2xsZXI8TlNXaW5kb3dEZWxlZ2F0ZT4gewogQHByaXZhdGUKLSAgICBXS1ZpZXcg
Kl93ZWJWaWV3OyAvLyBDYW5ub3QgYmUgcmV0YWluZWQsIHNlZSA8cmRhcjovL3Byb2JsZW0vMTQ4
ODQ2NjY+LgorICAgIE5TVmlldyAqX3dlYlZpZXc7IC8vIENhbm5vdCBiZSByZXRhaW5lZCwgc2Vl
IDxyZGFyOi8vcHJvYmxlbS8xNDg4NDY2Nj4uCisgICAgV2ViS2l0OjpXZWJQYWdlUHJveHkqIF9w
YWdlOwogICAgIFJldGFpblB0cjxXZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldz4gX3dl
YlZpZXdQbGFjZWhvbGRlcjsKICAgICBSZXRhaW5QdHI8TlNWaWV3PiBfY2xpcFZpZXc7CiAgICAg
TlNSZWN0IF9pbml0aWFsRnJhbWU7CkBAIC02MCw3ICs2Miw3IEBAIHR5cGVkZWYgZW51bSBGdWxs
U2NyZWVuU3RhdGUgOiBOU0ludGVnZXIgRnVsbFNjcmVlblN0YXRlOwogQHByb3BlcnR5IChyZWFk
b25seSkgTlNSZWN0IGluaXRpYWxGcmFtZTsKIEBwcm9wZXJ0eSAocmVhZG9ubHkpIE5TUmVjdCBm
aW5hbEZyYW1lOwogCi0tIChpZClpbml0V2l0aFdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cgd2Vi
VmlldzooV0tWaWV3ICopd2ViVmlldzsKKy0gKGlkKWluaXRXaXRoV2luZG93OihOU1dpbmRvdyAq
KXdpbmRvdyB3ZWJWaWV3OihOU1ZpZXcgKil3ZWJWaWV3IHBhZ2U6KFdlYktpdDo6V2ViUGFnZVBy
b3h5JilwYWdlOwogCiAtIChXZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldyopd2ViVmll
d1BsYWNlaG9sZGVyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0KaW5kZXggODYyOGE5ZDRlNWI5
OGQ5NzQ0ZTU2ZTYyZjNkMzQ3ZmJiYzAyMzAwZS4uMjQwZDYxMGYyNDFlZjk3N2NjMjQyNGZhOTg2
MmQ3YWYyZDNiYjBlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQpAQCAtNjMsOSArNjMsOCBA
QCBlbnVtIEZ1bGxTY3JlZW5TdGF0ZSA6IE5TSW50ZWdlciB7CiAtICh2b2lkKWVudGVyRnVsbFNj
cmVlbk1vZGU6KGlkKXNlbmRlcjsKIEBlbmQKIAotQGludGVyZmFjZSBXS0Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVyKFByaXZhdGUpPE5TQW5pbWF0aW9uRGVsZWdhdGU+CitAaW50ZXJmYWNlIFdL
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgKFByaXZhdGUpIDxOU0FuaW1hdGlvbkRlbGVnYXRl
PgogLSAodm9pZClfcmVwbGFjZVZpZXc6KE5TVmlldyopdmlldyB3aXRoOihOU1ZpZXcqKW90aGVy
VmlldzsKLS0gKFdlYlBhZ2VQcm94eSopX3BhZ2U7CiAtIChXZWJGdWxsU2NyZWVuTWFuYWdlclBy
b3h5KilfbWFuYWdlcjsKIC0gKHZvaWQpX3N0YXJ0RW50ZXJGdWxsU2NyZWVuQW5pbWF0aW9uV2l0
aER1cmF0aW9uOihOU1RpbWVJbnRlcnZhbClkdXJhdGlvbjsKIC0gKHZvaWQpX3N0YXJ0RXhpdEZ1
bGxTY3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246KE5TVGltZUludGVydmFsKWR1cmF0aW9uOwpA
QCAtODYsNyArODUsNyBAQCBzdGF0aWMgdm9pZCBtYWtlUmVzcG9uZGVyRmlyc3RSZXNwb25kZXJJ
ZkRlc2NlbmRhbnRPZlZpZXcoTlNXaW5kb3cgKndpbmRvdywgTlNSZQogCiAjcHJhZ21hIG1hcmsg
LQogI3ByYWdtYSBtYXJrIEluaXRpYWxpemF0aW9uCi0tIChpZClpbml0V2l0aFdpbmRvdzooTlNX
aW5kb3cgKil3aW5kb3cgd2ViVmlldzooV0tWaWV3ICopd2ViVmlldworLSAoaWQpaW5pdFdpdGhX
aW5kb3c6KE5TV2luZG93ICopd2luZG93IHdlYlZpZXc6KE5TVmlldyAqKXdlYlZpZXcgcGFnZToo
V2ViUGFnZVByb3h5JilwYWdlCiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFdpbmRvdzp3
aW5kb3ddOwogICAgIGlmICghc2VsZikKQEAgLTEwNiw2ICsxMDUsNyBAQCBzdGF0aWMgdm9pZCBt
YWtlUmVzcG9uZGVyRmlyc3RSZXNwb25kZXJJZkRlc2NlbmRhbnRPZlZpZXcoTlNXaW5kb3cgKndp
bmRvdywgTlNSZQogCiAgICAgW3NlbGYgd2luZG93RGlkTG9hZF07CiAgICAgX3dlYlZpZXcgPSB3
ZWJWaWV3OworICAgIF9wYWdlID0gJnBhZ2U7CiAgICAgCiAgICAgcmV0dXJuIHNlbGY7CiB9CkBA
IC0yNDEsNyArMjQxLDcgQEAgc3RhdGljIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjcmVhdGVJbWFn
ZVdpdGhDb3BpZWREYXRhKENHSW1hZ2VSZWYgc291cmNlSW1hZ2UpCiAgICAgLy8gdW5uZWNlc3Nh
cnkgaW4gdGhlIGZ1bGwtc2NyZWVuIGFuaW1hdGlvbiBjYXNlLCBhbmQgY2FuIGNhdXNlIGJ1Z3M7
IHNlZQogICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04ODk0
MCBhbmQgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg4Mzc0CiAgICAg
Ly8gV2Ugd2lsbCByZXN1bWUgdGhlIG5vcm1hbCBiZWhhdmlvciBpbiBfc3RhcnRFbnRlckZ1bGxT
Y3JlZW5BbmltYXRpb25XaXRoRHVyYXRpb246Ci0gICAgW193ZWJWaWV3IF9zZXRTdXBwcmVzc1Zp
c2liaWxpdHlVcGRhdGVzOllFU107CisgICAgX3BhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVw
ZGF0ZXModHJ1ZSk7CiAKICAgICAvLyBTd2FwIHRoZSB3ZWJWaWV3IHBsYWNlaG9sZGVyIGludG8g
cGxhY2UuCiAgICAgaWYgKCFfd2ViVmlld1BsYWNlaG9sZGVyKSB7CkBAIC0yNTMsMTQgKzI1Mywx
NCBAQCBzdGF0aWMgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNyZWF0ZUltYWdlV2l0aENvcGllZERh
dGEoQ0dJbWFnZVJlZiBzb3VyY2VJbWFnZSkKICAgICBbc2VsZiBfcmVwbGFjZVZpZXc6X3dlYlZp
ZXcgd2l0aDpfd2ViVmlld1BsYWNlaG9sZGVyLmdldCgpXTsKICAgICAKICAgICAvLyBUaGVuIGlu
c2VydCB0aGUgV2ViVmlldyBpbnRvIHRoZSBmdWxsIHNjcmVlbiB3aW5kb3cKLSAgICBOU1ZpZXcq
IGNvbnRlbnRWaWV3ID0gW1tzZWxmIHdpbmRvd10gY29udGVudFZpZXddOworICAgIE5TVmlldyAq
Y29udGVudFZpZXcgPSBbW3NlbGYgd2luZG93XSBjb250ZW50Vmlld107CiAgICAgW19jbGlwVmll
dyBhZGRTdWJ2aWV3Ol93ZWJWaWV3IHBvc2l0aW9uZWQ6TlNXaW5kb3dCZWxvdyByZWxhdGl2ZVRv
Om5pbF07CiAgICAgW193ZWJWaWV3IHNldEZyYW1lOltjb250ZW50VmlldyBib3VuZHNdXTsKIAog
ICAgIG1ha2VSZXNwb25kZXJGaXJzdFJlc3BvbmRlcklmRGVzY2VuZGFudE9mVmlldyhzZWxmLndp
bmRvdywgd2ViV2luZG93Rmlyc3RSZXNwb25kZXIsIF93ZWJWaWV3KTsKIAotICAgIF9zYXZlZFNj
YWxlID0gW3NlbGYgX3BhZ2VdLT5wYWdlU2NhbGVGYWN0b3IoKTsKLSAgICBbc2VsZiBfcGFnZV0t
PnNjYWxlUGFnZSgxLCBJbnRQb2ludCgpKTsKKyAgICBfc2F2ZWRTY2FsZSA9IF9wYWdlLT5wYWdl
U2NhbGVGYWN0b3IoKTsKKyAgICBfcGFnZS0+c2NhbGVQYWdlKDEsIEludFBvaW50KCkpOwogICAg
IFtzZWxmIF9tYW5hZ2VyXS0+c2V0QW5pbWF0aW5nRnVsbFNjcmVlbih0cnVlKTsKICAgICBbc2Vs
ZiBfbWFuYWdlcl0tPndpbGxFbnRlckZ1bGxTY3JlZW4oKTsKIH0KQEAgLTMwOSwxNCArMzA5LDE0
IEBAIHN0YXRpYyBjb25zdCBmbG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsgMjAgKyAyMDsgLy8g
Tm90ZTogS2VlcCBpbiBzeW5jIHdpdGggbWVkCiAgICAgICAgIF9mdWxsU2NyZWVuU3RhdGUgPSBO
b3RJbkZ1bGxTY3JlZW47CiAKICAgICAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6
WUVTXTsKLSAgICAgICAgW193ZWJWaWV3IF9zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzOk5P
XTsKKyAgICAgICAgX3BhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMoZmFsc2UpOwog
CiAgICAgICAgIE5TUmVzcG9uZGVyICpmaXJzdFJlc3BvbmRlciA9IFtbc2VsZiB3aW5kb3ddIGZp
cnN0UmVzcG9uZGVyXTsKICAgICAgICAgW3NlbGYgX3JlcGxhY2VWaWV3Ol93ZWJWaWV3UGxhY2Vo
b2xkZXIuZ2V0KCkgd2l0aDpfd2ViVmlld107CiAgICAgICAgIG1ha2VSZXNwb25kZXJGaXJzdFJl
c3BvbmRlcklmRGVzY2VuZGFudE9mVmlldyhfd2ViVmlldy53aW5kb3csIGZpcnN0UmVzcG9uZGVy
LCBfd2ViVmlldyk7CiAgICAgICAgIFtbX3dlYlZpZXcgd2luZG93XSBtYWtlS2V5QW5kT3JkZXJG
cm9udDpzZWxmXTsKIAotICAgICAgICBbc2VsZiBfcGFnZV0tPnNjYWxlUGFnZShfc2F2ZWRTY2Fs
ZSwgSW50UG9pbnQoKSk7CisgICAgICAgIF9wYWdlLT5zY2FsZVBhZ2UoX3NhdmVkU2NhbGUsIElu
dFBvaW50KCkpOwogICAgICAgICBbc2VsZiBfbWFuYWdlcl0tPnJlc3RvcmVTY3JvbGxQb3NpdGlv
bigpOwogICAgICAgICBbc2VsZiBfbWFuYWdlcl0tPmRpZEV4aXRGdWxsU2NyZWVuKCk7CiAgICAg
ICAgIFtzZWxmIF9tYW5hZ2VyXS0+c2V0QW5pbWF0aW5nRnVsbFNjcmVlbihmYWxzZSk7CkBAIC0z
NDQsNyArMzQ0LDcgQEAgc3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0ODAgKyAy
MCArIDIwOyAvLyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKIAogICAgIC8vIFNlZSB0aGUg
cmVsYXRlZCBjb21tZW50IGluIGVudGVyRnVsbFNjcmVlbjoKICAgICAvLyBXZSB3aWxsIHJlc3Vt
ZSB0aGUgbm9ybWFsIGJlaGF2aW9yIGluIF9zdGFydEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uV2l0
aER1cmF0aW9uOgotICAgIFtfd2ViVmlldyBfc2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlczpZ
RVNdOworICAgIF9wYWdlLT5zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzKHRydWUpOwogICAg
IFtfd2ViVmlld1BsYWNlaG9sZGVyIHNldFRhcmdldDpuaWxdOwogCiAgICAgW3NlbGYgX21hbmFn
ZXJdLT5zZXRBbmltYXRpbmdGdWxsU2NyZWVuKHRydWUpOwpAQCAtMzc5LDcgKzM3OSw3IEBAIHN0
YXRpYyBjb25zdCBmbG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsgMjAgKyAyMDsgLy8gTm90ZTog
S2VlcCBpbiBzeW5jIHdpdGggbWVkCiAKICAgICAvLyBTY3JlZW4gdXBkYXRlcyB0byBiZSByZS1l
bmFibGVkIGluIGNvbXBsZXRlRmluaXNoRXhpdEZ1bGxTY3JlZW5BbmltYXRpb25BZnRlclJlcGFp
bnQuCiAgICAgTlNEaXNhYmxlU2NyZWVuVXBkYXRlcygpOwotICAgIFtfd2ViVmlldyBfc2V0U3Vw
cHJlc3NWaXNpYmlsaXR5VXBkYXRlczpZRVNdOworICAgIF9wYWdlLT5zZXRTdXBwcmVzc1Zpc2li
aWxpdHlVcGRhdGVzKHRydWUpOwogICAgIFtbc2VsZiB3aW5kb3ddIG9yZGVyT3V0OnNlbGZdOwog
ICAgIE5TVmlldyAqY29udGVudFZpZXcgPSBbW3NlbGYgd2luZG93XSBjb250ZW50Vmlld107CiAg
ICAgY29udGVudFZpZXcubGF5ZXIuaGlkZGVuID0gWUVTOwpAQCAtMzk0LDcgKzM5NCw3IEBAIHN0
YXRpYyBjb25zdCBmbG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsgMjAgKyAyMDsgLy8gTm90ZTog
S2VlcCBpbiBzeW5jIHdpdGggbWVkCiAgICAgLy8gVGhlc2UgbWVzc2FnZXMgbXVzdCBiZSBzZW50
IGFmdGVyIHRoZSBzd2FwIG9yIGZsYXNoaW5nIHdpbGwgb2NjdXIgZHVyaW5nIGZvcmNlUmVwYWlu
dDoKICAgICBbc2VsZiBfbWFuYWdlcl0tPmRpZEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgW3NlbGYg
X21hbmFnZXJdLT5zZXRBbmltYXRpbmdGdWxsU2NyZWVuKGZhbHNlKTsKLSAgICBbc2VsZiBfcGFn
ZV0tPnNjYWxlUGFnZShfc2F2ZWRTY2FsZSwgSW50UG9pbnQoKSk7CisgICAgX3BhZ2UtPnNjYWxl
UGFnZShfc2F2ZWRTY2FsZSwgSW50UG9pbnQoKSk7CiAgICAgW3NlbGYgX21hbmFnZXJdLT5yZXN0
b3JlU2Nyb2xsUG9zaXRpb24oKTsKIAogICAgIGlmIChfcmVwYWludENhbGxiYWNrKSB7CkBAIC00
MDYsNyArNDA2LDcgQEAgc3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0ODAgKyAy
MCArIDIwOyAvLyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKICAgICBfcmVwYWludENhbGxi
YWNrID0gVm9pZENhbGxiYWNrOjpjcmVhdGUoW3NlbGZdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpF
cnJvcikgewogICAgICAgICBbc2VsZiBjb21wbGV0ZUZpbmlzaEV4aXRGdWxsU2NyZWVuQW5pbWF0
aW9uQWZ0ZXJSZXBhaW50XTsKICAgICB9KTsKLSAgICBbc2VsZiBfcGFnZV0tPmZvcmNlUmVwYWlu
dChfcmVwYWludENhbGxiYWNrKTsKKyAgICBfcGFnZS0+Zm9yY2VSZXBhaW50KF9yZXBhaW50Q2Fs
bGJhY2spOwogfQogCiAtICh2b2lkKWNvbXBsZXRlRmluaXNoRXhpdEZ1bGxTY3JlZW5BbmltYXRp
b25BZnRlclJlcGFpbnQKQEAgLTQxNCw3ICs0MTQsNyBAQCBzdGF0aWMgY29uc3QgZmxvYXQgbWlu
VmlkZW9XaWR0aCA9IDQ4MCArIDIwICsgMjA7IC8vIE5vdGU6IEtlZXAgaW4gc3luYyB3aXRoIG1l
ZAogICAgIF9yZXBhaW50Q2FsbGJhY2sgPSBudWxscHRyOwogICAgIFtbX3dlYlZpZXcgd2luZG93
XSBzZXRBdXRvZGlzcGxheTpZRVNdOwogICAgIFtbX3dlYlZpZXcgd2luZG93XSBkaXNwbGF5SWZO
ZWVkZWRdOwotICAgIFtfd2ViVmlldyBfc2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlczpOT107
CisgICAgX3BhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMoZmFsc2UpOwogICAgIE5T
RW5hYmxlU2NyZWVuVXBkYXRlcygpOwogfQogCkBAIC00ODcsMTcgKzQ4NywxMSBAQCBzdGF0aWMg
Y29uc3QgZmxvYXQgbWluVmlkZW9XaWR0aCA9IDQ4MCArIDIwICsgMjA7IC8vIE5vdGU6IEtlZXAg
aW4gc3luYyB3aXRoIG1lZAogI3ByYWdtYSBtYXJrIC0KICNwcmFnbWEgbWFyayBJbnRlcm5hbCBJ
bnRlcmZhY2UKIAotLSAoV2ViUGFnZVByb3h5KilfcGFnZQotewotICAgIHJldHVybiB0b0ltcGwo
W193ZWJWaWV3IHBhZ2VSZWZdKTsKLX0KLQogLSAoV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSop
X21hbmFnZXIKIHsKLSAgICBXZWJQYWdlUHJveHkqIHdlYlBhZ2UgPSBbc2VsZiBfcGFnZV07Ci0g
ICAgaWYgKCF3ZWJQYWdlKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gd2ViUGFnZS0+
ZnVsbFNjcmVlbk1hbmFnZXIoKTsKKyAgICBpZiAoIV9wYWdlKQorICAgICAgICByZXR1cm4gbnVs
bHB0cjsKKyAgICByZXR1cm4gX3BhZ2UtPmZ1bGxTY3JlZW5NYW5hZ2VyKCk7CiB9CiAKIC0gKHZv
aWQpX3JlcGxhY2VWaWV3OihOU1ZpZXcqKXZpZXcgd2l0aDooTlNWaWV3KilvdGhlclZpZXcKQEAg
LTYwNCw3ICs1OTgsNyBAQCBzdGF0aWMgQ0FBbmltYXRpb24gKmZhZGVBbmltYXRpb24oQ0ZUaW1l
SW50ZXJ2YWwgZHVyYXRpb24sIEFuaW1hdGlvbkRpcmVjdGlvbiBkaQogICAgIFt3aW5kb3cgbWFr
ZUtleUFuZE9yZGVyRnJvbnQ6c2VsZl07CiAgICAgW3dpbmRvdyBzZXRDb2xsZWN0aW9uQmVoYXZp
b3I6YmVoYXZpb3JdOwogCi0gICAgW193ZWJWaWV3IF9zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRh
dGVzOk5PXTsKKyAgICBfcGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxzZSk7
CiAgICAgW1tzZWxmIHdpbmRvd10gc2V0QXV0b2Rpc3BsYXk6WUVTXTsKICAgICBbW3NlbGYgd2lu
ZG93XSBkaXNwbGF5SWZOZWVkZWRdOwogICAgIE5TRW5hYmxlU2NyZWVuVXBkYXRlcygpOwpAQCAt
NjI3LDcgKzYyMSw3IEBAIHN0YXRpYyBDQUFuaW1hdGlvbiAqZmFkZUFuaW1hdGlvbihDRlRpbWVJ
bnRlcnZhbCBkdXJhdGlvbiwgQW5pbWF0aW9uRGlyZWN0aW9uIGRpCiAgICAgY29udGVudFZpZXcu
bGF5ZXIuaGlkZGVuID0gTk87CiAgICAgW2NvbnRlbnRWaWV3LmxheWVyIGFkZEFuaW1hdGlvbjpm
YWRlQW5pbWF0aW9uKGR1cmF0aW9uLCBBbmltYXRlT3V0KSBmb3JLZXk6QCJmdWxsc2NyZWVuIl07
CiAKLSAgICBbX3dlYlZpZXcgX3NldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXM6Tk9dOworICAg
IF9wYWdlLT5zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzKGZhbHNlKTsKICAgICBbW3NlbGYg
d2luZG93XSBzZXRBdXRvZGlzcGxheTpZRVNdOwogICAgIFtbc2VsZiB3aW5kb3ddIGRpc3BsYXlJ
Zk5lZWRlZF07CiAgICAgTlNFbmFibGVTY3JlZW5VcGRhdGVzKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0cmF0ZWd5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0cmF0ZWd5LmgKaW5kZXggN2IzMmIy
NjlhOGFlN2EwMjEyYzgzZTViMWIxMDMyMjY0MGM4NWM0Zi4uMmRmN2UwN2RiOWViYmNmN2ExMTEx
MmU1NjI3MGU0MDY3YzU4ODk4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaApAQCAtMzIsMjIgKzMyLDI0IEBACiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogY2xhc3MgV2ViUGFnZVByb3h5OworY2xhc3MgV2ViVmlld0ltcGw7CiB9
CiAKLUBjbGFzcyBXS1ZpZXc7CitAY2xhc3MgTlNWaWV3OwogCiBAaW50ZXJmYWNlIFdLVmlld0xh
eW91dFN0cmF0ZWd5IDogTlNPYmplY3QgewogQHBhY2thZ2UKLSAgICBXZWJLaXQ6OldlYlBhZ2VQ
cm94eSAqX3BhZ2U7Ci0gICAgV0tWaWV3ICpfd2tWaWV3OworICAgIFdlYktpdDo6V2ViUGFnZVBy
b3h5KiBfcGFnZTsKKyAgICBXZWJLaXQ6OldlYlZpZXdJbXBsKiBfd2ViVmlld0ltcGw7CisgICAg
TlNWaWV3ICpfdmlldzsKIAogICAgIFdLTGF5b3V0TW9kZSBfbGF5b3V0TW9kZTsKICAgICB1bnNp
Z25lZCBfZnJhbWVTaXplVXBkYXRlc0Rpc2FibGVkQ291bnQ7CiB9CiAKLSsgKGluc3RhbmNldHlw
ZSlsYXlvdXRTdHJhdGVneVdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3
OihXS1ZpZXcgKil3a1ZpZXcgbW9kZTooV0tMYXlvdXRNb2RlKW1vZGU7CisrIChpbnN0YW5jZXR5
cGUpbGF5b3V0U3RyYXRlZ3lXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2Ugdmll
dzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpd2ViVmlld0lt
cGwgbW9kZTooV0tMYXlvdXRNb2RlKW1vZGU7CiAKLS0gKHZvaWQpd2lsbERlc3Ryb3lWaWV3OihX
S1ZpZXcgKil2aWV3OworLSAodm9pZClpbnZhbGlkYXRlOwogCiAtICh2b2lkKWVuYWJsZUZyYW1l
U2l6ZVVwZGF0ZXM7CiAtICh2b2lkKWRpc2FibGVGcmFtZVNpemVVcGRhdGVzOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kubW0KaW5k
ZXggNDllZWE2ZWY1NjBlYzUyZGYyZThjYTdiYzI5OTI1ZTA4Y2E4ZDVjMC4uNzUzMzBiMDQyMjFm
MGMzZDk3NjRmYTk4ZWZhNWE4OTE4NTM5YTdmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0cmF0ZWd5Lm1tCkBAIC0yOCw4ICsyOCw4IEBA
CiAKICNpZiBQTEFURk9STShNQUMpCiAKLSNpbXBvcnQgIldLVmlld0ludGVybmFsLmgiCiAjaW1w
b3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgIldlYlZpZXdJbXBsLmgiCiAjaW1wb3J0IDxX
ZWJDb3JlL01hY2hTZW5kUmlnaHQuaD4KICNpbXBvcnQgPFdlYkNvcmUvUXVhcnR6Q29yZVNQSS5o
PgogCkBAIC01MCwyMyArNTAsMjMgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogQGltcGxl
bWVudGF0aW9uIFdLVmlld0xheW91dFN0cmF0ZWd5CiAKLSsgKGluc3RhbmNldHlwZSlsYXlvdXRT
dHJhdGVneVdpdGhQYWdlOihXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooV0tWaWV3ICopd2tWaWV3
IG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlCisrIChpbnN0YW5jZXR5cGUpbGF5b3V0U3RyYXRlZ3lX
aXRoUGFnZTooV2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6
KFdlYlZpZXdJbXBsJil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1vZGUpbW9kZQogewogICAg
IFdLVmlld0xheW91dFN0cmF0ZWd5ICpzdHJhdGVneTsKIAogICAgIHN3aXRjaCAobW9kZSkgewog
ICAgIGNhc2Uga1dLTGF5b3V0TW9kZUZpeGVkU2l6ZToKLSAgICAgICAgc3RyYXRlZ3kgPSBbW1dL
Vmlld0ZpeGVkU2l6ZUxheW91dFN0cmF0ZWd5IGFsbG9jXSBpbml0V2l0aFBhZ2U6cGFnZSB2aWV3
OndrVmlldyBtb2RlOm1vZGVdOworICAgICAgICBzdHJhdGVneSA9IFtbV0tWaWV3Rml4ZWRTaXpl
TGF5b3V0U3RyYXRlZ3kgYWxsb2NdIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6dmlldyB2aWV3SW1w
bDp3ZWJWaWV3SW1wbCBtb2RlOm1vZGVdOwogICAgICAgICBicmVhazsKICAgICBjYXNlIGtXS0xh
eW91dE1vZGVEeW5hbWljU2l6ZUNvbXB1dGVkRnJvbVZpZXdTY2FsZToKLSAgICAgICAgc3RyYXRl
Z3kgPSBbW1dLVmlld0R5bmFtaWNTaXplQ29tcHV0ZWRGcm9tVmlld1NjYWxlTGF5b3V0U3RyYXRl
Z3kgYWxsb2NdIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6d2tWaWV3IG1vZGU6bW9kZV07CisgICAg
ICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdEeW5hbWljU2l6ZUNvbXB1dGVkRnJvbVZpZXdTY2FsZUxh
eW91dFN0cmF0ZWd5IGFsbG9jXSBpbml0V2l0aFBhZ2U6cGFnZSB2aWV3OnZpZXcgdmlld0ltcGw6
d2ViVmlld0ltcGwgbW9kZTptb2RlXTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBrV0tMYXlv
dXRNb2RlRHluYW1pY1NpemVDb21wdXRlZEZyb21NaW5pbXVtRG9jdW1lbnRTaXplOgotICAgICAg
ICBzdHJhdGVneSA9IFtbV0tWaWV3RHluYW1pY1NpemVDb21wdXRlZEZyb21NaW5pbXVtRG9jdW1l
bnRTaXplTGF5b3V0U3RyYXRlZ3kgYWxsb2NdIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6d2tWaWV3
IG1vZGU6bW9kZV07CisgICAgICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdEeW5hbWljU2l6ZUNvbXB1
dGVkRnJvbU1pbmltdW1Eb2N1bWVudFNpemVMYXlvdXRTdHJhdGVneSBhbGxvY10gaW5pdFdpdGhQ
YWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsIG1vZGU6bW9kZV07CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2Uga1dLTGF5b3V0TW9kZVZpZXdTaXplOgogICAgIGRlZmF1bHQ6
Ci0gICAgICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdWaWV3U2l6ZUxheW91dFN0cmF0ZWd5IGFsbG9j
XSBpbml0V2l0aFBhZ2U6cGFnZSB2aWV3OndrVmlldyBtb2RlOm1vZGVdOworICAgICAgICBzdHJh
dGVneSA9IFtbV0tWaWV3Vmlld1NpemVMYXlvdXRTdHJhdGVneSBhbGxvY10gaW5pdFdpdGhQYWdl
OnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsIG1vZGU6bW9kZV07CiAgICAgICAg
IGJyZWFrOwogICAgIH0KIApAQCAtNzUsNyArNzUsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OwogICAgIHJldHVybiBbc3RyYXRlZ3kgYXV0b3JlbGVhc2VdOwogfQogCi0tIChpbnN0YW5jZXR5
cGUpaW5pdFdpdGhQYWdlOihXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooV0tWaWV3ICopd2tWaWV3
IG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihX
ZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDooV2ViVmlld0lt
cGwmKXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlCiB7CiAgICAgc2VsZiA9IFtz
dXBlciBpbml0XTsKIApAQCAtODMsMTYgKzgzLDE4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBfcGFnZSA9ICZwYWdlOwotICAgIF93a1ZpZXcg
PSB3a1ZpZXc7CisgICAgX3dlYlZpZXdJbXBsID0gJndlYlZpZXdJbXBsOworICAgIF92aWV3ID0g
dmlldzsKICAgICBfbGF5b3V0TW9kZSA9IG1vZGU7CiAKICAgICByZXR1cm4gc2VsZjsKIH0KIAot
LSAodm9pZCl3aWxsRGVzdHJveVZpZXc6KFdLVmlldyAqKXZpZXcKKy0gKHZvaWQpaW52YWxpZGF0
ZQogewogICAgIF9wYWdlID0gbnVsbHB0cjsKLSAgICBfd2tWaWV3ID0gbmlsOworICAgIF93ZWJW
aWV3SW1wbCA9IG51bGxwdHI7CisgICAgX3ZpZXcgPSBuaWw7CiB9CiAKIC0gKFdLTGF5b3V0TW9k
ZSlsYXlvdXRNb2RlCkBAIC0xNDAsOSArMTQyLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
ICAgICBpZiAoW3NlbGYgZnJhbWVTaXplVXBkYXRlc0Rpc2FibGVkXSkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgaWYgKF93a1ZpZXcuc2hvdWxkQ2xpcFRvVmlzaWJsZVJlY3QpCi0gICAgICAgIFtf
d2tWaWV3IF91cGRhdGVWaWV3RXhwb3NlZFJlY3RdOwotICAgIFtfd2tWaWV3IF9zZXREcmF3aW5n
QXJlYVNpemU6X3drVmlldy5mcmFtZS5zaXplXTsKKyAgICBpZiAoX3dlYlZpZXdJbXBsLT5jbGlw
c1RvVmlzaWJsZVJlY3QoKSkKKyAgICAgICAgX3dlYlZpZXdJbXBsLT51cGRhdGVWaWV3RXhwb3Nl
ZFJlY3QoKTsKKyAgICBfd2ViVmlld0ltcGwtPnNldERyYXdpbmdBcmVhU2l6ZShOU1NpemVUb0NH
U2l6ZShfdmlldy5mcmFtZS5zaXplKSk7CiB9CiAKIC0gKHZvaWQpd2lsbENoYW5nZUxheW91dFN0
cmF0ZWd5CkBAIC0xNTMsOSArMTU1LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogQGlt
cGxlbWVudGF0aW9uIFdLVmlld1ZpZXdTaXplTGF5b3V0U3RyYXRlZ3kKIAotLSAoaW5zdGFuY2V0
eXBlKWluaXRXaXRoUGFnZTooV2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KFdLVmlldyAqKXdrVmll
dyBtb2RlOihXS0xheW91dE1vZGUpbW9kZQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZToo
V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KFdlYlZpZXdJ
bXBsJil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1vZGUpbW9kZQogewotICAgIHNlbGYgPSBb
c3VwZXIgaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp3a1ZpZXcgbW9kZTptb2RlXTsKKyAgICBzZWxm
ID0gW3N1cGVyIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1w
bCBtb2RlOm1vZGVdOwogCiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwpAQCAt
MTczLDkgKzE3NSw5IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIEBpbXBsZW1lbnRhdGlv
biBXS1ZpZXdGaXhlZFNpemVMYXlvdXRTdHJhdGVneQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhQYWdlOihXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooV0tWaWV3ICopd2tWaWV3IG1vZGU6KFdL
TGF5b3V0TW9kZSltb2RlCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJQYWdlUHJv
eHkmKXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDooV2ViVmlld0ltcGwmKXdlYlZp
ZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlCiB7Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0
V2l0aFBhZ2U6cGFnZSB2aWV3OndrVmlldyBtb2RlOm1vZGVdOworICAgIHNlbGYgPSBbc3VwZXIg
aW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOndlYlZpZXdJbXBsIG1vZGU6bW9k
ZV07CiAKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBuaWw7CkBAIC0xOTMsOSArMTk1
LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogQGltcGxlbWVudGF0aW9uIFdLVmlld0R5
bmFtaWNTaXplQ29tcHV0ZWRGcm9tVmlld1NjYWxlTGF5b3V0U3RyYXRlZ3kKIAotLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoUGFnZTooV2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KFdLVmlldyAqKXdr
VmlldyBtb2RlOihXS0xheW91dE1vZGUpbW9kZQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFn
ZTooV2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KFdlYlZp
ZXdJbXBsJil3ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1vZGUpbW9kZQogewotICAgIHNlbGYg
PSBbc3VwZXIgaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp3a1ZpZXcgbW9kZTptb2RlXTsKKyAgICBz
ZWxmID0gW3N1cGVyIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3
SW1wbCBtb2RlOm1vZGVdOwogCiAgICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwpA
QCAtMjA4LDcgKzIxMCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAtICh2b2lkKXVwZGF0
ZUxheW91dAogewogICAgIENHRmxvYXQgaW52ZXJzZVNjYWxlID0gMSAvIF9wYWdlLT52aWV3U2Nh
bGVGYWN0b3IoKTsKLSAgICBbX3drVmlldyBfc2V0Rml4ZWRMYXlvdXRTaXplOkNHU2l6ZU1ha2Uo
X3drVmlldy5mcmFtZS5zaXplLndpZHRoICogaW52ZXJzZVNjYWxlLCBfd2tWaWV3LmZyYW1lLnNp
emUuaGVpZ2h0ICogaW52ZXJzZVNjYWxlKV07CisgICAgX3dlYlZpZXdJbXBsLT5zZXRGaXhlZExh
eW91dFNpemUoQ0dTaXplTWFrZShfdmlldy5mcmFtZS5zaXplLndpZHRoICogaW52ZXJzZVNjYWxl
LCBfdmlldy5mcmFtZS5zaXplLmhlaWdodCAqIGludmVyc2VTY2FsZSkpOwogfQogCiAtICh2b2lk
KWRpZENoYW5nZVZpZXdTY2FsZQpAQCAtMjIyLDcgKzIyNCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CiB7CiAgICAgW3N1cGVyIGRpZENoYW5nZUZyYW1lU2l6ZV07CiAKLSAgICBpZiAoW193
a1ZpZXcgZnJhbWVTaXplVXBkYXRlc0Rpc2FibGVkXSkKKyAgICBpZiAoc2VsZi5mcmFtZVNpemVV
cGRhdGVzRGlzYWJsZWQpCiAgICAgICAgIHJldHVybjsKIAogICAgIFtzZWxmIHVwZGF0ZUxheW91
dF07CkBAIC0yMzIsOSArMjM0LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogQGltcGxl
bWVudGF0aW9uIFdLVmlld0R5bmFtaWNTaXplQ29tcHV0ZWRGcm9tTWluaW11bURvY3VtZW50U2l6
ZUxheW91dFN0cmF0ZWd5CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYlBhZ2VQ
cm94eSYpcGFnZSB2aWV3OihXS1ZpZXcgKil3a1ZpZXcgbW9kZTooV0tMYXlvdXRNb2RlKW1vZGUK
Ky0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihO
U1ZpZXcgKil2aWV3IHZpZXdJbXBsOihXZWJWaWV3SW1wbCYpd2ViVmlld0ltcGwgbW9kZTooV0tM
YXlvdXRNb2RlKW1vZGUKIHsKLSAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoUGFnZTpwYWdlIHZp
ZXc6d2tWaWV3IG1vZGU6bW9kZV07CisgICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFBhZ2U6cGFn
ZSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwgbW9kZTptb2RlXTsKIAogICAgIGlmICgh
c2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwMGZhNWU5ZDVhMmZkMDkzOWZjZjI4ZDJm
YjI3NzA2YjU3YmE3NmE3Li45YTVmOWFlNmE1MzE3ZGJjZTFiOGRkYzA1ZmM0ZGE1NWFlMDg2Yjc3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCkBAIC02OTAsNiArNjkwLDggQEAKIAkJMkRGOUVFRTgxQTc4MjQ1NTAwQjZDRkJFIC8qIFdL
RnJhbWVJbmZvSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJERjlFRUU3MUE3ODI0NTUwMEI2Q0ZCRSAvKiBXS0ZyYW1lSW5mb0ludGVybmFs
LmggKi87IH07CiAJCTJERjlFRUVDMUE3ODM2RUUwMEI2Q0ZCRSAvKiBBUElOYXZpZ2F0aW9uQWN0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREY5
RUVFQTFBNzgzNkVFMDBCNkNGQkUgLyogQVBJTmF2aWdhdGlvbkFjdGlvbi5oICovOyB9OwogCQky
REY5RUVFRTFBNzg2RUFEMDBCNkNGQkUgLyogQVBJTmF2aWdhdGlvblJlc3BvbnNlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREY5RUVFRDFBNzg2RUFE
MDBCNkNGQkUgLyogQVBJTmF2aWdhdGlvblJlc3BvbnNlLmggKi87IH07CisJCTJERkM3REJCMUJD
Q0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMkRGQzdEQjkxQkNDQzE5NTAwQzE1NDhDIC8qIFdlYlZpZXdJ
bXBsLmggKi87IHNldHRpbmdzID0ge0FTU0VUX1RBR1MgPSAoKTsgfTsgfTsKKwkJMkRGQzdEQkMx
QkNDQzE5NTAwQzE1NDhDIC8qIFdlYlZpZXdJbXBsLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRGQzdEQkExQkNDQzE5NTAwQzE1NDhDIC8qIFdlYlZp
ZXdJbXBsLm1tICovOyBzZXR0aW5ncyA9IHtBU1NFVF9UQUdTID0gKCk7IH07IH07CiAJCTMxMDk5
OTczMTQ2Qzc1QTIwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEwOTk5NzExNDZDNzU5QjAw
MjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHAgKi87IH07CiAJCTMxMDk5OUM3MTQ2
QzlFM0QwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMDk5OTY4MTQ2QzcxRjUwMDI5REVCOSAv
KiBXZWJOb3RpZmljYXRpb25DbGllbnQuaCAqLzsgfTsKIAkJMzEyQzBDNEExNDZEREM4QTAwMTZD
OTExIC8qIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDMxMkMwQzQ5MTQ2RERDOEEwMDE2QzkxMSAvKiBXS05vdGlm
aWNhdGlvblByb3ZpZGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKQEAgLTI4NDcsNiArMjg0OSw4IEBACiAJCTJERjlFRUU3MUE3ODI0NTUwMEI2Q0ZC
RSAvKiBXS0ZyYW1lSW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLRnJhbWVJbmZvSW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
MkRGOUVFRUExQTc4MzZFRTAwQjZDRkJFIC8qIEFQSU5hdmlnYXRpb25BY3Rpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJTmF2aWdhdGlvbkFjdGlvbi5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkyREY5RUVFRDFBNzg2RUFEMDBCNkNGQkUgLyogQVBJTmF2
aWdhdGlvblJlc3BvbnNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSU5h
dmlnYXRpb25SZXNwb25zZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkyREZDN0RC
OTFCQ0NDMTk1MDBDMTU0OEMgLyogV2ViVmlld0ltcGwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViVmlld0ltcGwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MkRGQzdEQkExQkNDQzE5NTAwQzE1NDhDIC8qIFdlYlZpZXdJbXBsLm1tICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViVmlld0ltcGwubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTMxMDk5OTY4MTQ2QzcxRjUwMDI5REVCOSAvKiBXZWJOb3RpZmljYXRp
b25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViTm90aWZpY2F0aW9uQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTMxMDk5OTcxMTQ2Qzc1OUIwMDI5REVCOSAvKiBXZWJO
b3RpZmljYXRpb25DbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMzEyQzBDNDkxNDZEREM4QTAwMTZDOTExIC8qIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tOb3RpZmljYXRpb25Qcm92aWRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDkyNiw2ICs0OTMwLDggQEAKIAkJCQk3
QzQ2OTRDQjFBNEI1MTBBMDBBRDU4NDUgLyogV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0gKi8s
CiAJCQkJN0NFNEQyMTUxQTQ5MTQ4NDAwQzdGMTUyIC8qIFdlYlByb2Nlc3NQb29sQ29jb2EubW0g
Ki8sCiAJCQkJMUEwNEY2MTcxQTRBM0E3QTAwQTIxQjZFIC8qIFdlYlByb2Nlc3NQcm94eUNvY29h
Lm1tICovLAorCQkJCTJERkM3REI5MUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5oICov
LAorCQkJCTJERkM3REJBMUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5tbSAqLywKIAkJ
CQkxQUQwMUJDQjE5MDVENTQ5MDBDOUM0NUYgLyogV0tSZWxvYWRGcmFtZUVycm9yUmVjb3ZlcnlB
dHRlbXB0ZXIuaCAqLywKIAkJCQkxQUQwMUJDQTE5MDVENTQ5MDBDOUM0NUYgLyogV0tSZWxvYWRG
cmFtZUVycm9yUmVjb3ZlcnlBdHRlbXB0ZXIubW0gKi8sCiAJCQkJMkQ3QUFGRDIxOEM4NjQwNjAw
QTdBQ0Q0IC8qIFdLV2ViVmlld0NvbnRlbnRQcm92aWRlci5oICovLApAQCAtNzYzMyw2ICs3NjM5
LDcgQEAKIAkJCQkxQTJEOTU2RjEyODQ4NTY0MDAxRUI5NjIgLyogQ2hpbGRQcm9jZXNzLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzgyODM3QTE2QjM2QTRGMDBBMjc4RkUgLyogQ2hpbGRQcm9jZXNz
RW50cnlQb2ludC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFGQUVDM0ExQjA2NTc2MzAwMDlDNEU3
IC8qIENoaWxkUHJvY2Vzc01lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKKwkJCQkyREZDN0RCQjFC
Q0NDMTk1MDBDMTU0OEMgLyogV2ViVmlld0ltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxNTEz
QzY3MTY2RUFCQjIwMDE0OUZDQiAvKiBDaGlsZFByb2Nlc3NQcm94eS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMjkwRjQyNzIxNzJBMEM3NDAwOTM5RkYwIC8qIENoaWxkUHJvY2Vzc1N1cHBsZW1lbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBNkY5RjkwMTFFMTNFRkMwMERCMTM3MSAvKiBDb21tYW5k
TGluZS5oIGluIEhlYWRlcnMgKi8sCkBAIC05NzY5LDYgKzk3NzYsNyBAQAogCQkJCTFBOEI2NkIz
MUJDNDVCMDEwMDgyREY3NyAvKiBXS0J1bmRsZU1hYy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJD
MTExQTVCMTEyRjRGQkIwMDMzN0JBQiAvKiBXZWJDb250ZXh0TWVudUNsaWVudC5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MTAyMUU5QzEyQjE2Nzg4MDA1QzAzM0MgLyogV2ViQ29udGV4dE1lbnVD
bGllbnRNYWMubW0gaW4gU291cmNlcyAqLywKKwkJCQkyREZDN0RCQzFCQ0NDMTk1MDBDMTU0OEMg
LyogV2ViVmlld0ltcGwubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTI5MzVENzEyODhEMTk0MDBB
NEI2OTUgLyogV2ViQ29udGV4dE1lbnVJdGVtLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMEZC
QjlBMTI4OEM5NUUwMEFGRkRGNCAvKiBXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxQTg0Q0UzMTI3RjM4NkIwMENBNkVBNCAvKiBXZWJDb250ZXh0TWVudVBy
b3h5LmNwcCBpbiBTb3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263355</attachid>
            <date>2015-10-16 18:31:54 -0700</date>
            <delta_ts>2015-10-19 12:25:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150174-20151016183115.patch</filename>
            <type>text/plain</type>
            <size>85188</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxMjMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmJiYTU1Y2FjMzgzNjNi
NzIwNjU4ZmJiZmExNDI5ZmI1ZWMwMGZkOS4uY2U4NmRiODY4ZGNmYzBhODdjY2E2Mjc0NTdjNTIx
N2Y3ZWFmODU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTEwLTE2ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFdLVmlldyBiZWlu
ZyBpbnNpZGUgV0tXZWJWaWV3IGxlYWRzIHRvIHdlaXJkIEFQSSBpc3N1ZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE3NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywganVzdCBt
b3ZpbmcgY29kZSBhcm91bmQuCisKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgICogcGxhdGZvcm0vc3BpL21hYy9OU1dpbmRvd1NQSS5oOiBBZGRl
ZC4KKwogMjAxNS0xMC0xNiAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE5MTIwNC4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRl
eCBhMDdlZDk4MjA4OTFkNzdkMDQzNmJhZTJkODA2ZWI1NWEyZWI0Njg2Li43OWNhNThkMjA0YzRm
OTZlYjk3NmYxZjJmMTRlMWM5MjBmMDYzNzllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTEwIEBA
CisyMDE1LTEwLTE2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisg
ICAgICAgIFdLVmlldyBiZWluZyBpbnNpZGUgV0tXZWJWaWV3IGxlYWRzIHRvIHdlaXJkIEFQSSBp
c3N1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1
MDE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbTogQWRk
ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjp+V2ViVmlld0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6c2V0RHJhd3NCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OmRyYXdzQmFja2dyb3VuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpz
ZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpkcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjphY2NlcHRzRmlyc3RSZXNwb25kZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6YmVjb21lRmlyc3RSZXNwb25kZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6cmVzaWduRmlyc3RSZXNwb25kZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
aXNGb2N1c2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZpZXdXaWxsU3RhcnRM
aXZlUmVzaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZpZXdEaWRFbmRMaXZl
UmVzaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEZyYW1lU2l6ZSk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkaXNhYmxlRnJhbWVTaXplVXBkYXRlcyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjplbmFibGVGcmFtZVNpemVVcGRhdGVzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmZyYW1lU2l6ZVVwZGF0ZXNEaXNhYmxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRGcmFtZUFuZFNjcm9sbEJ5KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEZpeGVkTGF5b3V0U2l6ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjpmaXhlZExheW91dFNpemUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6c2V0RHJhd2luZ0FyZWFTaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OnNldENvbnRlbnRQcmVwYXJhdGlvblJlY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6dXBkYXRlVmlld0V4cG9zZWRSZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OnNldENsaXBzVG9WaXNpYmxlUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpzZXRJbnRyaW5zaWNDb250ZW50U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjppbnRyaW5zaWNDb250ZW50U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpzZXRWaWV3U2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dmlld1NjYWxl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmxheW91dE1vZGUpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TGF5b3V0TW9kZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpzdXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVzKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OnVwZGF0ZVN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZXNldFNlY3VyZUlucHV0U3RhdGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRD
b21wb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoYXNGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpmdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjbG9z
ZUZ1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OmZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6Y3JlYXRlRnVsbFNjcmVlbldpbmRvdyk6CisgICAgICAgIE1vdmUgdGhlIGFjdHVhbCBp
bXBsZW1lbnRhdGlvbiBvZiBhIG51bWJlciBvZiBXS1ZpZXcgbWV0aG9kcyBpbnRvIGEKKyAgICAg
ICAgQysrIGNsYXNzLCBXZWJWaWV3SW1wbCwgd2hpY2ggV0tWaWV3IGNhbGxzIGRpcmVjdGx5IGlu
dG8uCisgICAgICAgIEV2ZW50dWFsbHksIHdlIHdpbGwgbW92ZSBhbGwgb2YgdGhlIGxvZ2ljIG9m
IFdLVmlldyBpbnRvIFdlYlZpZXdJbXBsLAorICAgICAgICBhbmQgdGhlbiBkdXBsaWNhdGUgdGhl
IG5lY2Vzc2FyeSBmb3J3YXJkaW5nIGluIFdLV2ViVmlldyBhbmQgcmVtb3ZlCisgICAgICAgIFdL
V2ViVmlldydzIGlubmVyIFdLVmlldy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6aXNWaWV3Rm9jdXNlZCk6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRDb21taXRMb2FkRm9yTWFpbkZyYW1lKToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnVwZGF0ZVNlY3VyZUlucHV0U3RhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVzZXRTZWN1cmVJbnB1dFN0YXRlKToK
KyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6Om5vdGlmeUlucHV0Q29udGV4dEFib3V0
RGlzY2FyZGVkQ29tcG9zaXRpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6
YmVnYW5FbnRlckZ1bGxTY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6
YmVnYW5FeGl0RnVsbFNjcmVlbik6CisgICAgICAgIEZvciBub3csIGZvcndhcmQgUGFnZUNsaWVu
dCByZXF1ZXN0cyB0aGF0IGNhbiBiZSBhbnN3ZXJlZCBieSBXZWJWaWV3SW1wbAorICAgICAgICB0
byBXZWJWaWV3SW1wbC4gRXZlbnR1YWxseSwgd2UnbGwgcHJvYmFibHkgZm9sZCBQYWdlQ2xpZW50
SW1wbCBhbmQgV2ViVmlld0ltcGwKKyAgICAgICAgdG9nZXRoZXIgaW50byBvbmUgY2xhc3MsIGFu
ZCB0aGVzZSB0aGluZ3Mgd2lsbCBjb2xsYXBzZSBkb3duLgorCisgICAgICAgICogVUlQcm9jZXNz
L21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNz
L21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tOgorICAgICAgICAoLVtXS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyIGluaXRXaXRoV2luZG93OndlYlZpZXc6cGFnZTpdKToKKyAg
ICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBlbnRlckZ1bGxTY3JlZW46XSk6
CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgZmluaXNoZWRFbnRlckZ1
bGxTY3JlZW5BbmltYXRpb246XSk6CisgICAgICAgICgtW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIgZXhpdEZ1bGxTY3JlZW5dKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlciBmaW5pc2hlZEV4aXRGdWxsU2NyZWVuQW5pbWF0aW9uOl0pOgorICAgICAgICAoLVtX
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGNvbXBsZXRlRmluaXNoRXhpdEZ1bGxTY3JlZW5B
bmltYXRpb25BZnRlclJlcGFpbnRdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlciBfbWFuYWdlcl0pOgorICAgICAgICAoLVtXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyIF9zdGFydEVudGVyRnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjpdKToKKyAgICAg
ICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBfc3RhcnRFeGl0RnVsbFNjcmVlbkFu
aW1hdGlvbldpdGhEdXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tGdWxsU2NyZWVuV2luZG93Q29u
dHJvbGxlciBpbml0V2l0aFdpbmRvdzp3ZWJWaWV3Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIF9wYWdlXSk6IERlbGV0ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kubW06CisgICAgICAgICgrW1dLVmlld0xheW91dFN0
cmF0ZWd5IGxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6dmlldzp2aWV3SW1wbDptb2RlOl0pOgorICAg
ICAgICAoLVtXS1ZpZXdMYXlvdXRTdHJhdGVneSBpbml0V2l0aFBhZ2U6dmlldzp2aWV3SW1wbDpt
b2RlOl0pOgorICAgICAgICAoLVtXS1ZpZXdMYXlvdXRTdHJhdGVneSBpbnZhbGlkYXRlXSk6Cisg
ICAgICAgICgtW1dLVmlld0xheW91dFN0cmF0ZWd5IGRpZENoYW5nZUZyYW1lU2l6ZV0pOgorICAg
ICAgICAoLVtXS1ZpZXdWaWV3U2l6ZUxheW91dFN0cmF0ZWd5IGluaXRXaXRoUGFnZTp2aWV3OnZp
ZXdJbXBsOm1vZGU6XSk6CisgICAgICAgICgtW1dLVmlld0ZpeGVkU2l6ZUxheW91dFN0cmF0ZWd5
IGluaXRXaXRoUGFnZTp2aWV3OnZpZXdJbXBsOm1vZGU6XSk6CisgICAgICAgICgtW1dLVmlld0R5
bmFtaWNTaXplQ29tcHV0ZWRGcm9tVmlld1NjYWxlTGF5b3V0U3RyYXRlZ3kgaW5pdFdpdGhQYWdl
OnZpZXc6dmlld0ltcGw6bW9kZTpdKToKKyAgICAgICAgKC1bV0tWaWV3RHluYW1pY1NpemVDb21w
dXRlZEZyb21WaWV3U2NhbGVMYXlvdXRTdHJhdGVneSB1cGRhdGVMYXlvdXRdKToKKyAgICAgICAg
KC1bV0tWaWV3RHluYW1pY1NpemVDb21wdXRlZEZyb21WaWV3U2NhbGVMYXlvdXRTdHJhdGVneSBk
aWRDaGFuZ2VGcmFtZVNpemVdKToKKyAgICAgICAgKC1bV0tWaWV3RHluYW1pY1NpemVDb21wdXRl
ZEZyb21NaW5pbXVtRG9jdW1lbnRTaXplTGF5b3V0U3RyYXRlZ3kgaW5pdFdpdGhQYWdlOnZpZXc6
dmlld0ltcGw6bW9kZTpdKToKKyAgICAgICAgKCtbV0tWaWV3TGF5b3V0U3RyYXRlZ3kgbGF5b3V0
U3RyYXRlZ3lXaXRoUGFnZTp2aWV3Om1vZGU6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmll
d0xheW91dFN0cmF0ZWd5IGluaXRXaXRoUGFnZTp2aWV3Om1vZGU6XSk6IERlbGV0ZWQuCisgICAg
ICAgICgtW1dLVmlld0xheW91dFN0cmF0ZWd5IHdpbGxEZXN0cm95VmlldzpdKTogRGVsZXRlZC4K
KyAgICAgICAgKC1bV0tWaWV3Vmlld1NpemVMYXlvdXRTdHJhdGVneSBpbml0V2l0aFBhZ2U6dmll
dzptb2RlOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXdGaXhlZFNpemVMYXlvdXRTdHJh
dGVneSBpbml0V2l0aFBhZ2U6dmlldzptb2RlOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1Zp
ZXdEeW5hbWljU2l6ZUNvbXB1dGVkRnJvbVZpZXdTY2FsZUxheW91dFN0cmF0ZWd5IGluaXRXaXRo
UGFnZTp2aWV3Om1vZGU6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlld0R5bmFtaWNTaXpl
Q29tcHV0ZWRGcm9tTWluaW11bURvY3VtZW50U2l6ZUxheW91dFN0cmF0ZWd5IGluaXRXaXRoUGFn
ZTp2aWV3Om1vZGU6XSk6IERlbGV0ZWQuCisgICAgICAgIE1ha2UgV0tWaWV3TGF5b3V0U3RyYXRl
Z3kgYW5kIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgb3BlcmF0ZSBpbiB0ZXJtcyBvZiBn
ZW5lcmljCisgICAgICAgIE5TVmlld3MgaW5zdGVhZCBvZiBXS1ZpZXcsIHNvIHRoYXQgZXZlbnR1
YWxseSB0aGV5IHdpbGwgYmUgYWJsZSB0byB3b3JrIGZvciBlaXRoZXIKKyAgICAgICAgV0tWaWV3
IG9yIFdLV2ViVmlldywgYW5kIHNvIHRoYXQgdGhleSBjYW4gc2l0IHVuZGVybmVhdGggV2ViVmll
d0ltcGwuCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisK
IDIwMTUtMTAtMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgQWRkIGEgV0tXZWJWaWV3IGlucHV0IGRlbGVnYXRlIFNQSQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGEwNTlmMzdkOGE3
MGVkMjNhNTljNDIxN2Q2ZmIyNDAzYTk5MDBmYTcuLjVlZGIyYzU0M2ZmZDFhYzQ5OWY1ODg0OWIz
ZDkxMGVmMTM1MzY5ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTExMTcsNiArMTExNyw3IEBACiAJCTJCRThFMkM5MTJBNThB
MDEwMEZBRDU1MCAvKiBIVE1MTWV0YUNoYXJzZXRQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkJFOEUyQzgxMkE1OEEwMTAwRkFENTUwIC8q
IEhUTUxNZXRhQ2hhcnNldFBhcnNlci5jcHAgKi87IH07CiAJCTJEMEI0QUFCMThEQTFDQ0QwMDQz
NERFMSAvKiBJT1N1cmZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDJEMEI0QUE5MThEQTFDQ0QwMDQzNERFMSAvKiBJT1N1cmZhY2UuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRDBCNEFBQzE4REEx
Q0NEMDA0MzRERTEgLyogSU9TdXJmYWNlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkQwQjRBQUExOERBMUNDRDAwNDM0REUxIC8qIElPU3VyZmFjZS5t
bSAqLzsgfTsKKwkJMkQwQ0Y4MTcxQkNGNURFMTAwN0E0OTM3IC8qIE5TV2luZG93U1BJLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDBDRjgxNjFCQ0Y1
REUxMDA3QTQ5MzcgLyogTlNXaW5kb3dTUEkuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQkyRDIzMkMwMDFBMzI2RjAyMDA2QkYyREIgLyogVFVDYWxs
U1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRDIz
MkJGRjFBMzI2RUY5MDA2QkYyREIgLyogVFVDYWxsU1BJLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMkQyNTM5NjIxOENFN0Y2MjAwMjcwMjIyIC8q
IEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEMjUzOTYwMThDRTdGNjIwMDI3MDIyMiAvKiBJbWFn
ZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5jcHAgKi87IH07CiAJCTJEMjUzOTYzMThDRTdGNjIw
MDI3MDIyMiAvKiBJbWFnZUNvbnRyb2xzQnV0dG9uRWxlbWVudE1hYy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkQyNTM5NjExOENFN0Y2MjAwMjcwMjIy
IC8qIEltYWdlQ29udHJvbHNCdXR0b25FbGVtZW50TWFjLmggKi87IH07CkBAIC04NDE5LDYgKzg0
MjAsNyBAQAogCQkyQkU4RTJDODEyQTU4QTAxMDBGQUQ1NTAgLyogSFRNTE1ldGFDaGFyc2V0UGFy
c2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxNZXRhQ2hh
cnNldFBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMEI0QUE5MThE
QTFDQ0QwMDQzNERFMSAvKiBJT1N1cmZhY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSU9TdXJmYWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEMEI0QUFB
MThEQTFDQ0QwMDQzNERFMSAvKiBJT1N1cmZhY2UubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBJT1N1cmZhY2UubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTJEMENGODE2MUJDRjVERTEwMDdBNDkzNyAvKiBOU1dpbmRvd1NQSS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBOU1dpbmRvd1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQkyRDIzMkJGRjFBMzI2RUY5MDA2QkYyREIgLyogVFVDYWxsU1BJLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFRVQ2FsbFNQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI1
Mzk2MDE4Q0U3RjYyMDAyNzAyMjIgLyogSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW1hZ2VDb250cm9sc0J1dHRv
bkVsZW1lbnRNYWMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyRDI1Mzk2MTE4
Q0U3RjYyMDAyNzAyMjIgLyogSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW1hZ2VDb250cm9sc0J1dHRvbkVsZW1lbnRNYWMu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4NDg0LDYgKzE4NDg2LDcgQEAKIAkJ
CQlGNDBFQThBQTFCODY3RDY1MDBDRTU1ODEgLyogTlNTY3JvbGxpbmdJbnB1dEZpbHRlclNQSS5o
ICovLAogCQkJCTJEQ0I4Mzc3MTlGOTlCQkEwMEE3RkJFNCAvKiBOU1NoYXJpbmdTZXJ2aWNlUGlj
a2VyU1BJLmggKi8sCiAJCQkJMkRDQjgzNzgxOUY5OUJCQTAwQTdGQkU0IC8qIE5TU2hhcmluZ1Nl
cnZpY2VTUEkuaCAqLywKKwkJCQkyRDBDRjgxNjFCQ0Y1REUxMDA3QTQ5MzcgLyogTlNXaW5kb3dT
UEkuaCAqLywKIAkJCQk5MzdGNENDQjFBMkQ0OEMxMDBCQjM5RjUgLyogUXVpY2tMb29rTWFjU1BJ
LmggKi8sCiAJCQkJMkQyMzJCRkYxQTMyNkVGOTAwNkJGMkRCIC8qIFRVQ2FsbFNQSS5oICovLAog
CQkJKTsKQEAgLTI3NzYzLDYgKzI3NzY2LDcgQEAKIAkJCQk0NEEyMERCOTBGODQxNjZDMDBCM0Ux
RkUgLyogV2ViQ29yZVVSTFJlc3BvbnNlSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0YxOTlG
MDA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZVZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1
RTYxNjc0MTg5NDU4MUYwMDlBREY1MCAvKiBXZWJEZWJ1Z2dlckFnZW50LmggaW4gSGVhZGVycyAq
LywKKwkJCQkyRDBDRjgxNzFCQ0Y1REUxMDA3QTQ5MzcgLyogTlNXaW5kb3dTUEkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUZFMEQ4NEU5MTA0ODQzNDgwMDFBMTc5RSAvKiBXZWJFdmVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMjI1QTE2QjUwRDVDMTFFOTAwMDkwMjk1IC8qIFdlYkV2ZW50UmVnaW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTlEOTM0NzFBOUZFQzcyMDBCNDZDMjQgLyogV2ViRmls
dGVyRXZhbHVhdG9yU1BJLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3NwaS9tYWMvTlNXaW5kb3dTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NwaS9tYWMvTlNXaW5kb3dTUEkuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMmMzM2Y3MTM1NTdlYWRjNWQw
NjEyN2Q5OTI5MDdhNjY2NGMyNjZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc3BpL21hYy9OU1dpbmRvd1NQSS5oCkBAIC0wLDAgKzEsNDYgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0IDx3dGYvUGxhdGZvcm0uaD4KKworI2lmIFBMQVRGT1JNKE1BQykKKworI2lm
IFVTRShBUFBMRV9JTlRFUk5BTF9TREspCisKKyNpbXBvcnQgPEFwcEtpdC9OU1dpbmRvd19Qcml2
YXRlLmg+CisKKyNlbHNlCisKKyNpbXBvcnQgPEFwcEtpdC9OU1dpbmRvdy5oPgorCitAaW50ZXJm
YWNlIE5TV2luZG93ICgpCisKKy0gKGlkKV9uZXdGaXJzdFJlc3BvbmRlckFmdGVyUmVzaWduaW5n
OworCitAZW5kCisKKyNlbmRpZgorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDllYTM2N2RiZjlhZjdjOTZl
NTdjMTg1ZTA5NzZmZmE2MmMxZTU4YjkuLjliYjBkZjNmM2ExYjU4NmNjOGVhNGY2ZWY5NTRiZjEx
YTdhNmJkM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dL
Vmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0K
QEAgLTY1LDcgKzY1LDYgQEAKICNpbXBvcnQgIldLU3RyaW5nQ0YuaCIKICNpbXBvcnQgIldLVGV4
dElucHV0V2luZG93Q29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tWaWV3SW50ZXJuYWwuaCIKLSNp
bXBvcnQgIldLVmlld0xheW91dFN0cmF0ZWd5LmgiCiAjaW1wb3J0ICJXS1ZpZXdQcml2YXRlLmgi
CiAjaW1wb3J0ICJXS1dlYlZpZXcuaCIKICNpbXBvcnQgIldlYkJhY2tGb3J3YXJkTGlzdC5oIgpA
QCAtODAsNiArNzksNyBAQAogI2ltcG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbXBvcnQgIldl
YlByb2Nlc3NQcm94eS5oIgogI2ltcG9ydCAiV2ViU3lzdGVtSW50ZXJmYWNlLmgiCisjaW1wb3J0
ICJXZWJWaWV3SW1wbC5oIgogI2ltcG9ydCAiX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnlJbnRlcm5h
bC5oIgogI2ltcG9ydCAiX1dLVGh1bWJuYWlsVmlld0ludGVybmFsLmgiCiAjaW1wb3J0IDxRdWFy
dHpDb3JlL1F1YXJ0ekNvcmUuaD4KQEAgLTEyOSwxMCArMTI5LDYgQEAKIC0gKHZvaWQpX3NldEN1
cnJlbnRFdmVudDooTlNFdmVudCAqKWV2ZW50OwogQGVuZAogCi1AaW50ZXJmYWNlIE5TV2luZG93
IChXS05TV2luZG93RGV0YWlscykKLS0gKGlkKV9uZXdGaXJzdFJlc3BvbmRlckFmdGVyUmVzaWdu
aW5nOwotQGVuZAotCiAjaWYgVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQogQGludGVyZmFj
ZSBOU1RleHRJbnB1dENvbnRleHQgKFdLTlNUZXh0SW5wdXRDb250ZXh0RGV0YWlscykKIC0gKHZv
aWQpaGFuZGxlRXZlbnQ6KE5TRXZlbnQgKil0aGVFdmVudCBjb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCheKShCT09MIGhhbmRsZWQpKWNvbXBsZXRpb25IYW5kbGVyOwpAQCAtMTgwLDYgKzE3Niw3IEBA
IHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKIEBwdWJsaWMKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZUNsaWVudEltcGw+IF9wYWdlQ2xpZW50OwogICAgIFJlZlB0
cjxXZWJQYWdlUHJveHk+IF9wYWdlOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJWaWV3SW1wbD4g
X2ltcGw7CiAKICNpZiBXS19BUElfRU5BQkxFRAogICAgIFJldGFpblB0cjxXS0Jyb3dzaW5nQ29u
dGV4dENvbnRyb2xsZXI+IF9icm93c2luZ0NvbnRleHRDb250cm9sbGVyOwpAQCAtMjE0LDE2ICsy
MTEsMTIgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogICAg
IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMqIF9pbnRlcnByZXRLZXlFdmVudHNQ
YXJhbWV0ZXJzOwogI2VuZGlmCiAKLSAgICBOU1NpemUgX3Jlc2l6ZVNjcm9sbE9mZnNldDsKLQog
ICAgIC8vIFRoZSBpZGVudGlmaWVyIG9mIHRoZSBwbHVnLWluIHdlIHdhbnQgdG8gc2VuZCBjb21w
bGV4IHRleHQgaW5wdXQgdG8sIG9yIDAgaWYgdGhlcmUgaXMgbm9uZS4KICAgICB1aW50NjRfdCBf
cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXI7CiAKICAgICAvLyBUaGUgc3RhdGUgb2Yg
Y29tcGxleCB0ZXh0IGlucHV0IGZvciB0aGUgcGx1Zy1pbi4KICAgICBQbHVnaW5Db21wbGV4VGV4
dElucHV0U3RhdGUgX3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZTsKIAotICAgIGJvb2wgX2lu
QmVjb21lRmlyc3RSZXNwb25kZXI7Ci0gICAgYm9vbCBfaW5SZXNpZ25GaXJzdFJlc3BvbmRlcjsK
ICAgICBCT09MIF93aWxsQmVjb21lRmlyc3RSZXNwb25kZXJBZ2FpbjsKICAgICBOU0V2ZW50ICpf
bW91c2VEb3duRXZlbnQ7CiAgICAgTlNFdmVudCAqX3ByZXNzdXJlRXZlbnQ7CkBAIC0yMzEsMTUg
KzIyNCw5IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKIAog
ICAgIGlkIF9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3I7CiAKLSNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCi0gICAgUmV0YWluUHRyPFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXI+IF9mdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlcjsKLSNlbmRpZgotCiAgICAgQk9PTCBfaGFzU3BlbGxDaGVj
a2VyRG9jdW1lbnRUYWc7CiAgICAgTlNJbnRlZ2VyIF9zcGVsbENoZWNrZXJEb2N1bWVudFRhZzsK
IAotICAgIEJPT0wgX2luU2VjdXJlSW5wdXRTdGF0ZTsKLQogICAgIEJPT0wgX3Nob3VsZERlZmVy
Vmlld0luV2luZG93Q2hhbmdlczsKICAgICBOU1dpbmRvdyAqX3RhcmdldFdpbmRvd0Zvck1vdmVQ
cmVwYXJhdGlvbjsKIApAQCAtMjUzLDExICsyNDAsNyBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0
S2V5RXZlbnRzUGFyYW1ldGVycyB7CiAgICAgUmVmUHRyPFdlYkNvcmU6OkltYWdlPiBfcHJvbWlz
ZWRJbWFnZTsKICAgICBTdHJpbmcgX3Byb21pc2VkRmlsZW5hbWU7CiAgICAgU3RyaW5nIF9wcm9t
aXNlZFVSTDsKLSAgICAKLSAgICBOU1NpemUgX2ludHJpbnNpY0NvbnRlbnRTaXplOwotICAgIEJP
T0wgX2NsaXBzVG9WaXNpYmxlUmVjdDsKLSAgICBOU1JlY3QgX2NvbnRlbnRQcmVwYXJhdGlvblJl
Y3Q7Ci0gICAgQk9PTCBfdXNlQ29udGVudFByZXBhcmF0aW9uUmVjdEZvclZpc2libGVSZWN0Owor
CiAgICAgQk9PTCBfd2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZDsKIAogICAgIFJldGFp
blB0cjxXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlcj4gX3dpbmRvd1Zpc2liaWxpdHlPYnNlcnZl
cjsKQEAgLTI2OSwxMCArMjUyLDYgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1Bh
cmFtZXRlcnMgewogICAgIEJPT0wgX2FsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVz
OwogICAgIEJPT0wgX2FsbG93c0xpbmtQcmV2aWV3OwogCi0gICAgUmV0YWluUHRyPFdLVmlld0xh
eW91dFN0cmF0ZWd5PiBfbGF5b3V0U3RyYXRlZ3k7Ci0gICAgV0tMYXlvdXRNb2RlIF9sYXN0UmVx
dWVzdGVkTGF5b3V0TW9kZTsKLSAgICBmbG9hdCBfbGFzdFJlcXVlc3RlZFZpZXdTY2FsZTsKLQog
ICAgIFJldGFpblB0cjxDQUxheWVyPiBfcm9vdExheWVyOwogCiAgICAgQk9PTCBfZGlkU2NoZWR1
bGVTZXRUb3BDb250ZW50SW5zZXQ7CkBAIC0zNjgsNiArMzQ3LDkgQEAgc3RydWN0IFdLVmlld0lu
dGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogCiBAZW5kCiAKK0BpbnRlcmZhY2UgV0tWaWV3
ICgpIDxXZWJWaWV3SW1wbERlbGVnYXRlPgorQGVuZAorCiBAaW1wbGVtZW50YXRpb24gV0tWaWV3
CiAKICNpZiBXS19BUElfRU5BQkxFRApAQCAtMzg5LDcgKzM3MSw4IEBAIHN0cnVjdCBXS1ZpZXdJ
bnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTAwMAogICAgIFtfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xs
ZXIgd2lsbERlc3Ryb3lWaWV3OnNlbGZdOwogI2VuZGlmCi0gICAgW19kYXRhLT5fbGF5b3V0U3Ry
YXRlZ3kgd2lsbERlc3Ryb3lWaWV3OnNlbGZdOworCisgICAgX2RhdGEtPl9pbXBsID0gbnVsbHB0
cjsKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAgICAgaWYgKF9kYXRhLT5fcmVtb3RlT2JqZWN0UmVn
aXN0cnkpIHsKQEAgLTQwMyw3ICszODYsNiBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZl
bnRzUGFyYW1ldGVycyB7CiAjaWYgV0tfQVBJX0VOQUJMRUQKICAgICBBU1NFUlQoIV9kYXRhLT5f
dGh1bWJuYWlsVmlldyk7CiAjZW5kaWYKLSAgICBBU1NFUlQoIV9kYXRhLT5faW5TZWN1cmVJbnB1
dFN0YXRlKTsKIAogICAgIFtfZGF0YSByZWxlYXNlXTsKICAgICBfZGF0YSA9IG5pbDsKQEAgLTQz
MywxMDcgKzQxNSw0NyBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVy
cyB7CiAKIC0gKHZvaWQpc2V0RHJhd3NCYWNrZ3JvdW5kOihCT09MKWRyYXdzQmFja2dyb3VuZAog
ewotICAgIF9kYXRhLT5fcGFnZS0+c2V0RHJhd3NCYWNrZ3JvdW5kKGRyYXdzQmFja2dyb3VuZCk7
CisgICAgX2RhdGEtPl9pbXBsLT5zZXREcmF3c0JhY2tncm91bmQoZHJhd3NCYWNrZ3JvdW5kKTsK
IH0KIAogLSAoQk9PTClkcmF3c0JhY2tncm91bmQKIHsKLSAgICByZXR1cm4gX2RhdGEtPl9wYWdl
LT5kcmF3c0JhY2tncm91bmQoKTsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5kcmF3c0JhY2tn
cm91bmQoKTsKIH0KIAogLSAodm9pZClzZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZDooQk9P
TClkcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZAogewotICAgIF9kYXRhLT5fcGFnZS0+c2V0RHJh
d3NUcmFuc3BhcmVudEJhY2tncm91bmQoZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQpOworICAg
IF9kYXRhLT5faW1wbC0+c2V0RHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoZHJhd3NUcmFuc3Bh
cmVudEJhY2tncm91bmQpOwogfQogCiAtIChCT09MKWRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5k
CiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5fcGFnZS0+ZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQo
KTsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5kcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCgp
OwogfQogCiAtIChCT09MKWFjY2VwdHNGaXJzdFJlc3BvbmRlcgogewotICAgIHJldHVybiBZRVM7
CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+YWNjZXB0c0ZpcnN0UmVzcG9uZGVyKCk7CiB9CiAK
IC0gKEJPT0wpYmVjb21lRmlyc3RSZXNwb25kZXIKIHsKLSAgICAvLyBJZiB3ZSBqdXN0IGJlY2Ft
ZSBmaXJzdCByZXNwb25kZXIgYWdhaW4sIHRoZXJlIGlzIG5vIG5lZWQgdG8gZG8gYW55dGhpbmcs
Ci0gICAgLy8gc2luY2UgcmVzaWduRmlyc3RSZXNwb25kZXIgaGFzIGNvcnJlY3RseSBkZXRlY3Rl
ZCB0aGlzIHNpdHVhdGlvbi4KLSAgICBpZiAoX2RhdGEtPl93aWxsQmVjb21lRmlyc3RSZXNwb25k
ZXJBZ2FpbikgewotICAgICAgICBfZGF0YS0+X3dpbGxCZWNvbWVGaXJzdFJlc3BvbmRlckFnYWlu
ID0gTk87Ci0gICAgICAgIHJldHVybiBZRVM7Ci0gICAgfQotCi0gICAgTlNTZWxlY3Rpb25EaXJl
Y3Rpb24gZGlyZWN0aW9uID0gW1tzZWxmIHdpbmRvd10ga2V5Vmlld1NlbGVjdGlvbkRpcmVjdGlv
bl07Ci0KLSAgICBfZGF0YS0+X2luQmVjb21lRmlyc3RSZXNwb25kZXIgPSB0cnVlOwotICAgIAot
ICAgIFtzZWxmIF91cGRhdGVTZWN1cmVJbnB1dFN0YXRlXTsKLSAgICBfZGF0YS0+X3BhZ2UtPnZp
ZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OklzRm9jdXNlZCk7Ci0gICAgLy8gUmVzdG9yZSB0
aGUgc2VsZWN0aW9uIGluIHRoZSBlZGl0YWJsZSByZWdpb24gaWYgcmVzaWduaW5nIGZpcnN0IHJl
c3BvbmRlciBjbGVhcmVkIHNlbGVjdGlvbi4KLSAgICBfZGF0YS0+X3BhZ2UtPnJlc3RvcmVTZWxl
Y3Rpb25JbkZvY3VzZWRFZGl0YWJsZUVsZW1lbnQoKTsKLQotICAgIF9kYXRhLT5faW5CZWNvbWVG
aXJzdFJlc3BvbmRlciA9IGZhbHNlOwotICAgIAotICAgIGlmIChkaXJlY3Rpb24gIT0gTlNEaXJl
Y3RTZWxlY3Rpb24pIHsKLSAgICAgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNBcHAgY3VycmVudEV2
ZW50XTsKLSAgICAgICAgTlNFdmVudCAqa2V5Ym9hcmRFdmVudCA9IG5pbDsKLSAgICAgICAgaWYg
KFtldmVudCB0eXBlXSA9PSBOU0tleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5TS2V5VXApCi0g
ICAgICAgICAgICBrZXlib2FyZEV2ZW50ID0gZXZlbnQ7Ci0gICAgICAgIF9kYXRhLT5fcGFnZS0+
c2V0SW5pdGlhbEZvY3VzKGRpcmVjdGlvbiA9PSBOU1NlbGVjdGluZ05leHQsIGtleWJvYXJkRXZl
bnQgIT0gbmlsLCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGtleWJvYXJkRXZlbnQsIGZhbHNlLCBW
ZWN0b3I8S2V5cHJlc3NDb21tYW5kPigpKSwgW10oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9y
KSB7IH0pOwotICAgIH0KLSAgICByZXR1cm4gWUVTOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwt
PmJlY29tZUZpcnN0UmVzcG9uZGVyKCk7CiB9CiAKIC0gKEJPT0wpcmVzaWduRmlyc3RSZXNwb25k
ZXIKIHsKLSNpZiBXS19BUElfRU5BQkxFRAotICAgIC8vIFByZWRpY3QgdGhlIGNhc2Ugd2hlcmUg
d2UgYXJlIGxvc2luZyBmaXJzdCByZXNwb25kZXIgc3RhdHVzIG9ubHkgdG8KLSAgICAvLyBnYWlu
IGl0IGJhY2sgYWdhaW4uIFdlIHdhbnQgcmVzaWduRmlyc3RSZXNwb25kZXIgdG8gZG8gbm90aGlu
ZyBpbiB0aGF0IGNhc2UuCi0gICAgaWQgbmV4dFJlc3BvbmRlciA9IFtbc2VsZiB3aW5kb3ddIF9u
ZXdGaXJzdFJlc3BvbmRlckFmdGVyUmVzaWduaW5nXTsKLSAgICBpZiAoW25leHRSZXNwb25kZXIg
aXNLaW5kT2ZDbGFzczpbV0tXZWJWaWV3IGNsYXNzXV0gJiYgc2VsZi5zdXBlcnZpZXcgPT0gbmV4
dFJlc3BvbmRlcikgewotICAgICAgICBfZGF0YS0+X3dpbGxCZWNvbWVGaXJzdFJlc3BvbmRlckFn
YWluID0gWUVTOwotICAgICAgICByZXR1cm4gWUVTOwotICAgIH0KLSNlbmRpZgotCi0gICAgX2Rh
dGEtPl93aWxsQmVjb21lRmlyc3RSZXNwb25kZXJBZ2FpbiA9IE5POwotICAgIF9kYXRhLT5faW5S
ZXNpZ25GaXJzdFJlc3BvbmRlciA9IHRydWU7Ci0KLSNpZiBVU0UoQVNZTkNfTlNURVhUSU5QVVRD
TElFTlQpCi0gICAgX2RhdGEtPl9wYWdlLT5jb25maXJtQ29tcG9zaXRpb25Bc3luYygpOwotI2Vs
c2UKLSAgICBpZiAoX2RhdGEtPl9wYWdlLT5lZGl0b3JTdGF0ZSgpLmhhc0NvbXBvc2l0aW9uICYm
ICFfZGF0YS0+X3BhZ2UtPmVkaXRvclN0YXRlKCkuc2hvdWxkSWdub3JlQ29tcG9zaXRpb25TZWxl
Y3Rpb25DaGFuZ2UpCi0gICAgICAgIF9kYXRhLT5fcGFnZS0+Y2FuY2VsQ29tcG9zaXRpb24oKTsK
LSNlbmRpZgotCi0gICAgW3NlbGYgX25vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29t
cG9zaXRpb25dOwotCi0gICAgW3NlbGYgX3Jlc2V0U2VjdXJlSW5wdXRTdGF0ZV07Ci0KLSAgICBp
ZiAoIV9kYXRhLT5fcGFnZS0+bWFpbnRhaW5zSW5hY3RpdmVTZWxlY3Rpb24oKSkKLSAgICAgICAg
X2RhdGEtPl9wYWdlLT5jbGVhclNlbGVjdGlvbigpOwotICAgIAotICAgIF9kYXRhLT5fcGFnZS0+
dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6SXNGb2N1c2VkKTsKLQotICAgIF9kYXRhLT5f
aW5SZXNpZ25GaXJzdFJlc3BvbmRlciA9IGZhbHNlOwotCi0gICAgcmV0dXJuIFlFUzsKKyAgICBy
ZXR1cm4gX2RhdGEtPl9pbXBsLT5yZXNpZ25GaXJzdFJlc3BvbmRlcigpOwogfQogCiAtICh2b2lk
KXZpZXdXaWxsU3RhcnRMaXZlUmVzaXplCiB7Ci0gICAgX2RhdGEtPl9wYWdlLT52aWV3V2lsbFN0
YXJ0TGl2ZVJlc2l6ZSgpOwotCi0gICAgW19kYXRhLT5fbGF5b3V0U3RyYXRlZ3kgd2lsbFN0YXJ0
TGl2ZVJlc2l6ZV07CisgICAgX2RhdGEtPl9pbXBsLT52aWV3V2lsbFN0YXJ0TGl2ZVJlc2l6ZSgp
OwogfQogCiAtICh2b2lkKXZpZXdEaWRFbmRMaXZlUmVzaXplCiB7Ci0gICAgX2RhdGEtPl9wYWdl
LT52aWV3V2lsbEVuZExpdmVSZXNpemUoKTsKLQotICAgIFtfZGF0YS0+X2xheW91dFN0cmF0ZWd5
IGRpZEVuZExpdmVSZXNpemVdOworICAgIF9kYXRhLT5faW1wbC0+dmlld0RpZEVuZExpdmVSZXNp
emUoKTsKIH0KIAogLSAoQk9PTClpc0ZsaXBwZWQKQEAgLTU0MywzOSArNDY1LDI1IEBAIHN0cnVj
dCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKIAogLSAoTlNTaXplKWludHJp
bnNpY0NvbnRlbnRTaXplCiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5faW50cmluc2ljQ29udGVudFNp
emU7CisgICAgcmV0dXJuIE5TU2l6ZUZyb21DR1NpemUoX2RhdGEtPl9pbXBsLT5pbnRyaW5zaWND
b250ZW50U2l6ZSgpKTsKIH0KIAogLSAodm9pZClwcmVwYXJlQ29udGVudEluUmVjdDooTlNSZWN0
KXJlY3QKIHsKLSAgICBfZGF0YS0+X2NvbnRlbnRQcmVwYXJhdGlvblJlY3QgPSByZWN0OwotICAg
IF9kYXRhLT5fdXNlQ29udGVudFByZXBhcmF0aW9uUmVjdEZvclZpc2libGVSZWN0ID0gWUVTOwot
Ci0gICAgW3NlbGYgX3VwZGF0ZVZpZXdFeHBvc2VkUmVjdF07Ci19Ci0KLS0gKHZvaWQpX3VwZGF0
ZVZpZXdFeHBvc2VkUmVjdAotewotICAgIE5TUmVjdCBleHBvc2VkUmVjdCA9IFtzZWxmIHZpc2li
bGVSZWN0XTsKLQotICAgIGlmIChfZGF0YS0+X3VzZUNvbnRlbnRQcmVwYXJhdGlvblJlY3RGb3JW
aXNpYmxlUmVjdCkKLSAgICAgICAgZXhwb3NlZFJlY3QgPSBOU1VuaW9uUmVjdChfZGF0YS0+X2Nv
bnRlbnRQcmVwYXJhdGlvblJlY3QsIGV4cG9zZWRSZWN0KTsKLQotICAgIGlmIChhdXRvIGRyYXdp
bmdBcmVhID0gX2RhdGEtPl9wYWdlLT5kcmF3aW5nQXJlYSgpKQotICAgICAgICBkcmF3aW5nQXJl
YS0+c2V0RXhwb3NlZFJlY3QoX2RhdGEtPl9jbGlwc1RvVmlzaWJsZVJlY3QgPyBGbG9hdFJlY3Qo
ZXhwb3NlZFJlY3QpIDogRmxvYXRSZWN0OjppbmZpbml0ZVJlY3QoKSk7CisgICAgX2RhdGEtPl9p
bXBsLT5zZXRDb250ZW50UHJlcGFyYXRpb25SZWN0KE5TUmVjdFRvQ0dSZWN0KHJlY3QpKTsKKyAg
ICBfZGF0YS0+X2ltcGwtPnVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgpOwogfQogCiAtICh2b2lkKXNl
dEZyYW1lU2l6ZTooTlNTaXplKXNpemUKIHsKICAgICBbc3VwZXIgc2V0RnJhbWVTaXplOnNpemVd
OwotCi0gICAgW19kYXRhLT5fbGF5b3V0U3RyYXRlZ3kgZGlkQ2hhbmdlRnJhbWVTaXplXTsKKyAg
ICBfZGF0YS0+X2ltcGwtPnNldEZyYW1lU2l6ZShOU1NpemVUb0NHU2l6ZShzaXplKSk7CiB9CiAK
IC0gKHZvaWQpX3VwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXMKIHsKLSAgICBpZiAoX2RhdGEtPl9j
bGlwc1RvVmlzaWJsZVJlY3QpCi0gICAgICAgIFtzZWxmIF91cGRhdGVWaWV3RXhwb3NlZFJlY3Rd
OworICAgIGlmIChfZGF0YS0+X2ltcGwtPmNsaXBzVG9WaXNpYmxlUmVjdCgpKQorICAgICAgICBf
ZGF0YS0+X2ltcGwtPnVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgpOwogCiAgICAgaWYgKF9kYXRhLT5f
ZGlkU2NoZWR1bGVXaW5kb3dBbmRWaWV3RnJhbWVVcGRhdGUpCiAgICAgICAgIHJldHVybjsKQEAg
LTE4MjgsMTEgKzE3MzYsMTEgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRy
aWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKICAgICB9IGVsc2UK
ICAgICAgICAgdGV4dCA9IHN0cmluZzsKIAotICAgIGlmIChfZGF0YS0+X2luU2VjdXJlSW5wdXRT
dGF0ZSkgeworICAgIGlmIChfZGF0YS0+X2ltcGwtPmluU2VjdXJlSW5wdXRTdGF0ZSgpKSB7CiAg
ICAgICAgIC8vIEluIHBhc3N3b3JkIGZpZWxkcywgd2Ugb25seSBhbGxvdyBBU0NJSSBkZWFkIGtl
eXMsIGFuZCBkb24ndCBhbGxvdyBpbmxpbmUgaW5wdXQsIG1hdGNoaW5nIE5TU2VjdXJlVGV4dElu
cHV0RmllbGQuCiAgICAgICAgIC8vIEFsbG93aW5nIEFTQ0lJIGRlYWQga2V5cyBpcyBuZWNlc3Nh
cnkgdG8gZW5hYmxlIGZ1bGwgUm9tYW4gaW5wdXQgd2hlbiB1c2luZyBhIFZpZXRuYW1lc2Uga2V5
Ym9hcmQuCiAgICAgICAgIEFTU0VSVCghX2RhdGEtPl9wYWdlLT5lZGl0b3JTdGF0ZSgpLmhhc0Nv
bXBvc2l0aW9uKTsKLSAgICAgICAgW3NlbGYgX25vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2Fy
ZGVkQ29tcG9zaXRpb25dOworICAgICAgICBfZGF0YS0+X2ltcGwtPm5vdGlmeUlucHV0Q29udGV4
dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb24oKTsKICAgICAgICAgLy8gRklYTUU6IFdlIHNob3Vs
ZCBzdG9yZSB0aGUgY29tbWFuZCB0byBoYW5kbGUgaXQgYWZ0ZXIgRE9NIGV2ZW50IHByb2Nlc3Np
bmcsIGFzIGl0J3MgcmVndWxhciBrZXlib2FyZCBpbnB1dCBub3csIG5vdCBhIGNvbXBvc2l0aW9u
LgogICAgICAgICBpZiAoW3RleHQgbGVuZ3RoXSA9PSAxICYmIGlzQVNDSUkoW3RleHQgY2hhcmFj
dGVyQXRJbmRleDowXSkpCiAgICAgICAgICAgICBfZGF0YS0+X3BhZ2UtPmluc2VydFRleHRBc3lu
Yyh0ZXh0LCByZXBsYWNlbWVudFJhbmdlKTsKQEAgLTIyMjQsNyArMjEzMiw3IEBAIHN0YXRpYyB2
b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8
Q29tcG9zaXRpb25VbmRlCiAgICAgICAgIC8vIEluIHBhc3N3b3JkIGZpZWxkcywgd2Ugb25seSBh
bGxvdyBBU0NJSSBkZWFkIGtleXMsIGFuZCBkb24ndCBhbGxvdyBpbmxpbmUgaW5wdXQsIG1hdGNo
aW5nIE5TU2VjdXJlVGV4dElucHV0RmllbGQuCiAgICAgICAgIC8vIEFsbG93aW5nIEFTQ0lJIGRl
YWQga2V5cyBpcyBuZWNlc3NhcnkgdG8gZW5hYmxlIGZ1bGwgUm9tYW4gaW5wdXQgd2hlbiB1c2lu
ZyBhIFZpZXRuYW1lc2Uga2V5Ym9hcmQuCiAgICAgICAgIEFTU0VSVCghX2RhdGEtPl9wYWdlLT5l
ZGl0b3JTdGF0ZSgpLmhhc0NvbXBvc2l0aW9uKTsKLSAgICAgICAgW3NlbGYgX25vdGlmeUlucHV0
Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb25dOworICAgICAgICBfZGF0YS0+X2ltcGwt
Pm5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb24oKTsKICAgICAgICAg
aWYgKFt0ZXh0IGxlbmd0aF0gPT0gMSAmJiBbW3RleHQgZGVjb21wb3NlZFN0cmluZ1dpdGhDYW5v
bmljYWxNYXBwaW5nXSBjaGFyYWN0ZXJBdEluZGV4OjBdIDwgMHg4MCkgewogICAgICAgICAgICAg
X2RhdGEtPl9wYWdlLT5pbnNlcnRUZXh0KHRleHQsIHJlcGxhY2VtZW50UmFuZ2UpOwogICAgICAg
ICB9IGVsc2UKQEAgLTI0MzYsNiArMjM0NCwxMSBAQCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJs
aW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQog
CiAjZW5kaWYgLy8gVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQogCistIChOU1RleHRJbnB1
dENvbnRleHQgKilfc3VwZXJJbnB1dENvbnRleHQKK3sKKyAgICByZXR1cm4gW3N1cGVyIGlucHV0
Q29udGV4dF07Cit9CisKIC0gKE5TQXJyYXkgKil2YWxpZEF0dHJpYnV0ZXNGb3JNYXJrZWRUZXh0
CiB7CiAgICAgc3RhdGljIE5TQXJyYXkgKnZhbGlkQXR0cmlidXRlczsKQEAgLTI3NTYsNyArMjY2
OSw3IEBAIHN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQgPSAma2V5VmFsdWVP
YnNlcnZpbmdDb250ZXh0OwogewogICAgIE5TV2luZG93ICprZXlXaW5kb3cgPSBbbm90aWZpY2F0
aW9uIG9iamVjdF07CiAgICAgaWYgKGtleVdpbmRvdyA9PSBbc2VsZiB3aW5kb3ddIHx8IGtleVdp
bmRvdyA9PSBbW3NlbGYgd2luZG93XSBhdHRhY2hlZFNoZWV0XSkgewotICAgICAgICBbc2VsZiBf
dXBkYXRlU2VjdXJlSW5wdXRTdGF0ZV07CisgICAgICAgIF9kYXRhLT5faW1wbC0+dXBkYXRlU2Vj
dXJlSW5wdXRTdGF0ZSgpOwogICAgICAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5n
ZShWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsKICAgICB9CiB9CkBAIC0yNzc1LDcgKzI2ODgs
NyBAQCBzdGF0aWMgdm9pZCoga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0ID0gJmtleVZhbHVlT2Jz
ZXJ2aW5nQ29udGV4dDsKIHsKICAgICBOU1dpbmRvdyAqZm9ybWVyS2V5V2luZG93ID0gW25vdGlm
aWNhdGlvbiBvYmplY3RdOwogICAgIGlmIChmb3JtZXJLZXlXaW5kb3cgPT0gW3NlbGYgd2luZG93
XSB8fCBmb3JtZXJLZXlXaW5kb3cgPT0gW1tzZWxmIHdpbmRvd10gYXR0YWNoZWRTaGVldF0pIHsK
LSAgICAgICAgW3NlbGYgX3VwZGF0ZVNlY3VyZUlucHV0U3RhdGVdOworICAgICAgICBfZGF0YS0+
X2ltcGwtPnVwZGF0ZVNlY3VyZUlucHV0U3RhdGUoKTsKICAgICAgICAgX2RhdGEtPl9wYWdlLT52
aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpXaW5kb3dJc0FjdGl2ZSk7CiAgICAgfQogfQpA
QCAtMjk5OSwxNSArMjkxMiw2IEBAIHN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRl
eHQgPSAma2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0OwogICAgIHJldHVybiBbW05TU2NyZWVuIG1h
aW5TY3JlZW5dIGJhY2tpbmdTY2FsZUZhY3Rvcl07CiB9CiAKLS0gKHZvaWQpX3NldERyYXdpbmdB
cmVhU2l6ZTooTlNTaXplKXNpemUKLXsKLSAgICBpZiAoIV9kYXRhLT5fcGFnZS0+ZHJhd2luZ0Fy
ZWEoKSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIF9kYXRhLT5fcGFnZS0+ZHJhd2luZ0Fy
ZWEoKS0+c2V0U2l6ZShJbnRTaXplKHNpemUpLCBJbnRTaXplKDAsIDApLCBJbnRTaXplKF9kYXRh
LT5fcmVzaXplU2Nyb2xsT2Zmc2V0KSk7Ci0gICAgX2RhdGEtPl9yZXNpemVTY3JvbGxPZmZzZXQg
PSBOU1plcm9TaXplOwotfQotCiAtICh2b2lkKXF1aWNrTG9va1dpdGhFdmVudDooTlNFdmVudCAq
KWV2ZW50CiB7CiAgICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRzKQpAQCAtMzAz
MiwxNSArMjkzNiw2IEBAIHN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQgPSAm
a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0OwogICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFRp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk+KCpfZGF0YS0+X3BhZ2UpOwogfQogCi0t
IChCT09MKV9pc0ZvY3VzZWQKLXsKLSAgICBpZiAoX2RhdGEtPl9pbkJlY29tZUZpcnN0UmVzcG9u
ZGVyKQotICAgICAgICByZXR1cm4gWUVTOwotICAgIGlmIChfZGF0YS0+X2luUmVzaWduRmlyc3RS
ZXNwb25kZXIpCi0gICAgICAgIHJldHVybiBOTzsKLSAgICByZXR1cm4gW1tzZWxmIHdpbmRvd10g
Zmlyc3RSZXNwb25kZXJdID09IHNlbGY7Ci19Ci0KIC0gKFdlYktpdDo6Q29sb3JTcGFjZURhdGEp
X2NvbG9yU3BhY2UKIHsKICAgICBpZiAoIV9kYXRhLT5fY29sb3JTcGFjZSkgewpAQCAtMzA2MCw3
ICsyOTU1LDcgQEAgc3RhdGljIHZvaWQqIGtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dCA9ICZrZXlW
YWx1ZU9ic2VydmluZ0NvbnRleHQ7CiAKIC0gKHZvaWQpX3Byb2Nlc3NEaWRFeGl0CiB7Ci0gICAg
W3NlbGYgX25vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb25dOworICAg
IF9kYXRhLT5faW1wbC0+bm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlv
bigpOwogCiAgICAgaWYgKF9kYXRhLT5fbGF5ZXJIb3N0aW5nVmlldykKICAgICAgICAgW3NlbGYg
X3NldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlUm9vdExheWVyOm5pbF07CkBAIC0zMjk1LDEx
ICszMTkwLDYgQEAgc3RhdGljIHZvaWQqIGtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dCA9ICZrZXlW
YWx1ZU9ic2VydmluZ0NvbnRleHQ7CiAgICAgICAgIF9kYXRhLT5fdGV4dEluZGljYXRvcldpbmRv
dy0+c2V0QW5pbWF0aW9uUHJvZ3Jlc3MocHJvZ3Jlc3MpOwogfQogCi0tIChDQUxheWVyICopX3Jv
b3RMYXllcgotewotICAgIHJldHVybiBbX2RhdGEtPl9sYXllckhvc3RpbmdWaWV3IGxheWVyXTsK
LX0KLQogLSAodm9pZClfc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVSb290TGF5ZXI6KENB
TGF5ZXIgKilyb290TGF5ZXIKIHsKICAgICBbcm9vdExheWVyIHdlYl9kaXNhYmxlQWxsQWN0aW9u
c107CkBAIC0zNjMxLDUzICszNTIxLDYgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1
ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKICAgICByZXR1cm4gW05TQXJyYXkgYXJy
YXlXaXRoT2JqZWN0OltwYXRoIGxhc3RQYXRoQ29tcG9uZW50XV07CiB9CiAKLS0gKHZvaWQpX3Vw
ZGF0ZVNlY3VyZUlucHV0U3RhdGUKLXsKLSAgICBpZiAoIVtbc2VsZiB3aW5kb3ddIGlzS2V5V2lu
ZG93XSB8fCAhW3NlbGYgX2lzRm9jdXNlZF0pIHsKLSAgICAgICAgaWYgKF9kYXRhLT5faW5TZWN1
cmVJbnB1dFN0YXRlKSB7Ci0gICAgICAgICAgICBEaXNhYmxlU2VjdXJlRXZlbnRJbnB1dCgpOwot
ICAgICAgICAgICAgX2RhdGEtPl9pblNlY3VyZUlucHV0U3RhdGUgPSBOTzsKLSAgICAgICAgfQot
ICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIC8vIFdLVmlldyBoYXMgYSBzaW5nbGUgaW5wdXQg
Y29udGV4dCBmb3IgYWxsIGVkaXRhYmxlIGFyZWFzIChleGNlcHQgZm9yIHBsdWctaW5zKS4KLSAg
ICBOU1RleHRJbnB1dENvbnRleHQgKmNvbnRleHQgPSBbc3VwZXIgaW5wdXRDb250ZXh0XTsKLSAg
ICBib29sIGlzSW5QYXNzd29yZEZpZWxkID0gX2RhdGEtPl9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlz
SW5QYXNzd29yZEZpZWxkOwotCi0gICAgaWYgKGlzSW5QYXNzd29yZEZpZWxkKSB7Ci0gICAgICAg
IGlmICghX2RhdGEtPl9pblNlY3VyZUlucHV0U3RhdGUpCi0gICAgICAgICAgICBFbmFibGVTZWN1
cmVFdmVudElucHV0KCk7Ci0gICAgICAgIHN0YXRpYyBOU0FycmF5ICpyb21hbklucHV0U291cmNl
cyA9IFtbTlNBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOiZOU0FsbFJvbWFuSW5wdXRTb3Vy
Y2VzTG9jYWxlSWRlbnRpZmllciBjb3VudDoxXTsKLSAgICAgICAgTE9HKFRleHRJbnB1dCwgIi0+
IHNldEFsbG93ZWRJbnB1dFNvdXJjZUxvY2FsZXM6cm9tYW5JbnB1dFNvdXJjZXMiKTsKLSAgICAg
ICAgW2NvbnRleHQgc2V0QWxsb3dlZElucHV0U291cmNlTG9jYWxlczpyb21hbklucHV0U291cmNl
c107Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKF9kYXRhLT5faW5TZWN1cmVJbnB1dFN0YXRl
KQotICAgICAgICAgICAgRGlzYWJsZVNlY3VyZUV2ZW50SW5wdXQoKTsKLSAgICAgICAgTE9HKFRl
eHRJbnB1dCwgIi0+IHNldEFsbG93ZWRJbnB1dFNvdXJjZUxvY2FsZXM6bmlsIik7Ci0gICAgICAg
IFtjb250ZXh0IHNldEFsbG93ZWRJbnB1dFNvdXJjZUxvY2FsZXM6bmlsXTsKLSAgICB9Ci0gICAg
X2RhdGEtPl9pblNlY3VyZUlucHV0U3RhdGUgPSBpc0luUGFzc3dvcmRGaWVsZDsKLX0KLQotLSAo
dm9pZClfcmVzZXRTZWN1cmVJbnB1dFN0YXRlCi17Ci0gICAgaWYgKF9kYXRhLT5faW5TZWN1cmVJ
bnB1dFN0YXRlKSB7Ci0gICAgICAgIERpc2FibGVTZWN1cmVFdmVudElucHV0KCk7Ci0gICAgICAg
IF9kYXRhLT5faW5TZWN1cmVJbnB1dFN0YXRlID0gTk87Ci0gICAgfQotfQotCi0tICh2b2lkKV9u
b3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uCi17Ci0gICAgLy8gPHJk
YXI6Ly9wcm9ibGVtLzkzNTkwNTU+OiAtZGlzY2FyZE1hcmtlZFRleHQgY2FuIG9ubHkgYmUgY2Fs
bGVkIGZvciBhY3RpdmUgY29udGV4dHMuCi0gICAgLy8gRklYTUU6IFdlIGZhaWwgdG8gZXZlciBu
b3RpZnkgdGhlIGlucHV0IGNvbnRleHQgaWYgc29tZXRoaW5nIChlLmcuIGEgbmF2aWdhdGlvbikg
aGFwcGVucyB3aGlsZSB0aGUgd2luZG93IGlzIG5vdCBrZXkuCi0gICAgLy8gVGhpcyBpcyBub3Qg
YSBwcm9ibGVtIHdoZW4gdGhlIHdpbmRvdyBpcyBrZXksIGJlY2F1c2Ugd2UgZGlzY2FyZCBtYXJr
ZWQgdGV4dCBvbiByZXNpZ25pbmcgZmlyc3QgcmVzcG9uZGVyLgotICAgIGlmICghW1tzZWxmIHdp
bmRvd10gaXNLZXlXaW5kb3ddIHx8IHNlbGYgIT0gW1tzZWxmIHdpbmRvd10gZmlyc3RSZXNwb25k
ZXJdKQotICAgICAgICByZXR1cm47Ci0KLSAgICBMT0coVGV4dElucHV0LCAiLT4gZGlzY2FyZE1h
cmtlZFRleHQiKTsKLSAgICBbW3N1cGVyIGlucHV0Q29udGV4dF0gZGlzY2FyZE1hcmtlZFRleHRd
OyAvLyBJbmZvcm0gdGhlIGlucHV0IG1ldGhvZCB0aGF0IHdlIHdvbid0IGhhdmUgYW4gaW5saW5l
IGlucHV0IGFyZWEgZGVzcGl0ZSBoYXZpbmcgYmVlbiBhc2tlZCB0by4KLX0KIAogLSAoTlNXaW5k
b3cgKilfdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uCiB7CkBAIC0zNjg3LDI0ICszNTMw
LDE3IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNT
dHJpbmcgKnBhdGgpCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogLSAoQk9PTClfaGFzRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIKIHsKLSAgICByZXR1cm4gKGJvb2wpX2RhdGEtPl9mdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlcjsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5oYXNGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlcigpOwogfQogCiAtIChXS0Z1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyICopX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyCiB7Ci0gICAgaWYgKCFfZGF0YS0+
X2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKQotICAgICAgICBfZGF0YS0+X2Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVyID0gYWRvcHROUyhbW1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIg
YWxsb2NdIGluaXRXaXRoV2luZG93OltzZWxmIGNyZWF0ZUZ1bGxTY3JlZW5XaW5kb3ddIHdlYlZp
ZXc6c2VsZl0pOwotCi0gICAgcmV0dXJuIF9kYXRhLT5fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIuZ2V0KCk7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+ZnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIoKTsKIH0KIAogLSAodm9pZClfY2xvc2VGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcgog
ewotICAgIGlmICghX2RhdGEtPl9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcikKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgW19kYXRhLT5fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgY2xvc2Vd
OwotICAgIF9kYXRhLT5fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgPSBudWxscHRyOworICAg
IF9kYXRhLT5faW1wbC0+Y2xvc2VGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpOwogfQogI2Vu
ZGlmCiAKQEAgLTM3MjEsMTYgKzM1NTcsNyBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5p
cXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogCiAtICh2b2lkKV9zZXRJbnRyaW5z
aWNDb250ZW50U2l6ZTooTlNTaXplKWludHJpbnNpY0NvbnRlbnRTaXplCiB7Ci0gICAgLy8gSWYg
dGhlIGludHJpbnNpYyBjb250ZW50IHNpemUgaXMgbGVzcyB0aGFuIHRoZSBtaW5pbXVtIGxheW91
dCB3aWR0aCwgdGhlIGNvbnRlbnQgZmxvd2VkIHRvIGZpdCwKLSAgICAvLyBzbyB3ZSBjYW4gcmVw
b3J0IHRoYXQgdGhhdCBkaW1lbnNpb24gaXMgZmxleGlibGUuIElmIG5vdCwgd2UgbmVlZCB0byBy
ZXBvcnQgb3VyIGludHJpbnNpYyB3aWR0aAotICAgIC8vIHNvIHRoYXQgYXV0b2xheW91dCB3aWxs
IGtub3cgdG8gcHJvdmlkZSBzcGFjZSBmb3IgdXMuCi0KLSAgICBOU1NpemUgaW50cmluc2ljQ29u
dGVudFNpemVBY2tub3dsZWRnaW5nRmxleGlibGVXaWR0aCA9IGludHJpbnNpY0NvbnRlbnRTaXpl
OwotICAgIGlmIChpbnRyaW5zaWNDb250ZW50U2l6ZS53aWR0aCA8IF9kYXRhLT5fcGFnZS0+bWlu
aW11bUxheW91dFNpemUoKS53aWR0aCgpKQotICAgICAgICBpbnRyaW5zaWNDb250ZW50U2l6ZUFj
a25vd2xlZGdpbmdGbGV4aWJsZVdpZHRoLndpZHRoID0gTlNWaWV3Tm9JbnN0cmluc2ljTWV0cmlj
OwotCi0gICAgX2RhdGEtPl9pbnRyaW5zaWNDb250ZW50U2l6ZSA9IGludHJpbnNpY0NvbnRlbnRT
aXplQWNrbm93bGVkZ2luZ0ZsZXhpYmxlV2lkdGg7Ci0gICAgW3NlbGYgaW52YWxpZGF0ZUludHJp
bnNpY0NvbnRlbnRTaXplXTsKKyAgICBfZGF0YS0+X2ltcGwtPnNldEludHJpbnNpY0NvbnRlbnRT
aXplKE5TU2l6ZVRvQ0dTaXplKGludHJpbnNpY0NvbnRlbnRTaXplKSk7CiB9CiAKIC0gKE5TSW50
ZWdlcilzcGVsbENoZWNrZXJEb2N1bWVudFRhZwpAQCAtMzc5Miw2ICszNjE5LDEwIEBAIHN0YXRp
YyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgp
CiAKICAgICBfZGF0YS0+X3BhZ2VDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VDbGllbnRJ
bXBsPihzZWxmLCB3ZWJWaWV3KTsKICAgICBfZGF0YS0+X3BhZ2UgPSBwcm9jZXNzUG9vbC5jcmVh
dGVXZWJQYWdlKCpfZGF0YS0+X3BhZ2VDbGllbnQsIFdURjo6bW92ZShjb25maWd1cmF0aW9uKSk7
CisKKyAgICBfZGF0YS0+X2ltcGwgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYlZpZXdJbXBsPihzZWxm
LCAqX2RhdGEtPl9wYWdlKTsKKyAgICBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50SW1wbCo+KF9kYXRh
LT5fcGFnZUNsaWVudC5nZXQoKSktPnNldEltcGwoKl9kYXRhLT5faW1wbCk7CisKICAgICBfZGF0
YS0+X3BhZ2UtPnNldEFkZHNWaXNpdGVkTGlua3MocHJvY2Vzc1Bvb2wuaGlzdG9yeUNsaWVudCgp
LmFkZHNWaXNpdGVkTGlua3MoKSk7CiAKICAgICBfZGF0YS0+X3BhZ2UtPnNldEludHJpbnNpY0Rl
dmljZVNjYWxlRmFjdG9yKFtzZWxmIF9pbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3Rvcl0pOwpAQCAt
MzgwMCwyMCArMzYzMSwxMiBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5h
bWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAgIF9kYXRhLT5fbW91c2VEb3duRXZlbnQgPSBu
aWw7CiAgICAgX2RhdGEtPl9wcmVzc3VyZUV2ZW50ID0gbmlsOwogICAgIF9kYXRhLT5faWdub3Jp
bmdNb3VzZURyYWdnZWRFdmVudHMgPSBOTzsKLSAgICBfZGF0YS0+X2NsaXBzVG9WaXNpYmxlUmVj
dCA9IE5POwotICAgIF9kYXRhLT5fdXNlQ29udGVudFByZXBhcmF0aW9uUmVjdEZvclZpc2libGVS
ZWN0ID0gTk87CiAgICAgX2RhdGEtPl93aW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkID0g
WUVTOwotICAgIF9kYXRhLT5fbGFzdFJlcXVlc3RlZExheW91dE1vZGUgPSBrV0tMYXlvdXRNb2Rl
Vmlld1NpemU7Ci0gICAgX2RhdGEtPl9sYXN0UmVxdWVzdGVkVmlld1NjYWxlID0gMTsKIAogICAg
IF9kYXRhLT5fd2luZG93VmlzaWJpbGl0eU9ic2VydmVyID0gYWRvcHROUyhbW1dLV2luZG93Vmlz
aWJpbGl0eU9ic2VydmVyIGFsbG9jXSBpbml0V2l0aFZpZXc6c2VsZl0pOwogCi0gICAgX2RhdGEt
Pl9pbnRyaW5zaWNDb250ZW50U2l6ZSA9IE5TTWFrZVNpemUoTlNWaWV3Tm9JbnN0cmluc2ljTWV0
cmljLCBOU1ZpZXdOb0luc3RyaW5zaWNNZXRyaWMpOwotCiAgICAgX2RhdGEtPl9uZWVkc1ZpZXdG
cmFtZUluV2luZG93Q29vcmRpbmF0ZXMgPSBfZGF0YS0+X3BhZ2UtPnByZWZlcmVuY2VzKCkucGx1
Z2luc0VuYWJsZWQoKTsKIAotICAgIF9kYXRhLT5fbGF5b3V0U3RyYXRlZ3kgPSBbV0tWaWV3TGF5
b3V0U3RyYXRlZ3kgbGF5b3V0U3RyYXRlZ3lXaXRoUGFnZToqX2RhdGEtPl9wYWdlIHZpZXc6c2Vs
ZiBtb2RlOmtXS0xheW91dE1vZGVWaWV3U2l6ZV07Ci0KICAgICBbc2VsZiBfcmVnaXN0ZXJEcmFn
Z2VkVHlwZXNdOwogCiAgICAgc2VsZi53YW50c0xheWVyID0gWUVTOwpAQCAtMzkyMyw0NCArMzc0
Niw2IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNT
dHJpbmcgKnBhdGgpCiAgICAgICAgIF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZpcnN0
VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpOwogfQogCi0tIChCT09MKV9zdXBw
b3J0c0FyYml0cmFyeUxheW91dE1vZGVzCi17Ci0gICAgaWYgKFtfZGF0YS0+X2Z1bGxTY3JlZW5X
aW5kb3dDb250cm9sbGVyIGlzRnVsbFNjcmVlbl0pCi0gICAgICAgIHJldHVybiBOTzsKLQotICAg
IFdlYlBhZ2VQcm94eSogcGFnZSA9IF9kYXRhLT5fcGFnZS5nZXQoKTsKLSAgICBpZiAoIXBhZ2Up
Ci0gICAgICAgIHJldHVybiBZRVM7Ci0gICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBwYWdlLT5t
YWluRnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gWUVTOwotCi0gICAg
Ly8gSWYgd2UgaGF2ZSBhIHBsdWdpbiBkb2N1bWVudCBpbiB0aGUgbWFpbiBmcmFtZSwgYXZvaWQg
dXNpbmcgY3VzdG9tIFdLTGF5b3V0TW9kZXMKLSAgICAvLyBhbmQgZmFsbCBiYWNrIHRvIHRoZSBk
ZWZhdWx0cywgYmVjYXVzZSB0aGVyZSdzIGEgZ29vZCBjaGFuY2UgdGhhdCBpdCB3b24ndCB3b3Jr
IChlLmcuIHdpdGggUERGUGx1Z2luKS4KLSAgICBpZiAoZnJhbWUtPmNvbnRhaW5zUGx1Z2luRG9j
dW1lbnQoKSkKLSAgICAgICAgcmV0dXJuIE5POwotCi0gICAgcmV0dXJuIFlFUzsKLX0KLQotLSAo
dm9pZClfdXBkYXRlU3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcwotewotICAgIGlmICghW3Nl
bGYgX3N1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXNdKSB7Ci0gICAgICAgIFdLTGF5b3V0TW9k
ZSBvbGRSZXF1ZXN0ZWRMYXlvdXRNb2RlID0gX2RhdGEtPl9sYXN0UmVxdWVzdGVkTGF5b3V0TW9k
ZTsKLSAgICAgICAgZmxvYXQgb2xkUmVxdWVzdGVkVmlld1NjYWxlID0gX2RhdGEtPl9sYXN0UmVx
dWVzdGVkVmlld1NjYWxlOwotICAgICAgICBbc2VsZiBfc2V0Vmlld1NjYWxlOjFdOwotICAgICAg
ICBbc2VsZiBfc2V0TGF5b3V0TW9kZTprV0tMYXlvdXRNb2RlVmlld1NpemVdOwotCi0gICAgICAg
IC8vIFRoZSAnbGFzdCByZXF1ZXN0ZWQnIHBhcmFtZXRlcnMgd2lsbCBoYXZlIGJlZW4gb3Zlcndy
aXR0ZW4gYnkgc2V0dGluZyB0aGVtIGFib3ZlLCBidXQgd2UgZG9uJ3QKLSAgICAgICAgLy8gd2Fu
dCB0aGlzIHRvIGNvdW50IGFzIGEgcmVxdWVzdCAob25seSBjaGFuZ2VzIGZyb20gdGhlIGNsaWVu
dCBjb3VudCksIHNvIHJlc2V0IHRoZW0uCi0gICAgICAgIF9kYXRhLT5fbGFzdFJlcXVlc3RlZExh
eW91dE1vZGUgPSBvbGRSZXF1ZXN0ZWRMYXlvdXRNb2RlOwotICAgICAgICBfZGF0YS0+X2xhc3RS
ZXF1ZXN0ZWRWaWV3U2NhbGUgPSBvbGRSZXF1ZXN0ZWRWaWV3U2NhbGU7Ci0gICAgfSBlbHNlIGlm
IChfZGF0YS0+X2xhc3RSZXF1ZXN0ZWRMYXlvdXRNb2RlICE9IFtfZGF0YS0+X2xheW91dFN0cmF0
ZWd5IGxheW91dE1vZGVdKSB7Ci0gICAgICAgIFtzZWxmIF9zZXRWaWV3U2NhbGU6X2RhdGEtPl9s
YXN0UmVxdWVzdGVkVmlld1NjYWxlXTsKLSAgICAgICAgW3NlbGYgX3NldExheW91dE1vZGU6X2Rh
dGEtPl9sYXN0UmVxdWVzdGVkTGF5b3V0TW9kZV07Ci0gICAgfQotfQotCiAjaWYgV0tfQVBJX0VO
QUJMRUQKIC0gKF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICopX3JlbW90ZU9iamVjdFJlZ2lzdHJ5
CiB7CkBAIC0zOTcxLDE1ICszNzU2LDggQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1
ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKIAogICAgIHJldHVybiBfZGF0YS0+X3Jl
bW90ZU9iamVjdFJlZ2lzdHJ5LmdldCgpOwogfQotCiAjZW5kaWYKIAotCi0tICh2b2lkKV9kaWRD
b21taXRMb2FkRm9yTWFpbkZyYW1lCi17Ci0gICAgW3NlbGYgX3VwZGF0ZVN1cHBvcnRzQXJiaXRy
YXJ5TGF5b3V0TW9kZXNdOwotfQotCiAtICh2b2lkKV9kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1l
CiB7CiAgICAgaWYgKF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXIpCkBAIC00MDIwLDYgKzM3OTgs
MTIgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0
cmluZyAqcGF0aCkKIH0KICNlbmRpZgogCisvLyBGSVhNRTogR2V0IHJpZCBvZiB0aGlzIHdoZW4g
d2UgaGF2ZSBiZXR0ZXIgcGx1bWJpbmcgdG8gV0tWaWV3TGF5b3V0U3RyYXRlZ3kuCistICh2b2lk
KV91cGRhdGVWaWV3RXhwb3NlZFJlY3QKK3sKKyAgICBfZGF0YS0+X2ltcGwtPnVwZGF0ZVZpZXdF
eHBvc2VkUmVjdCgpOworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1ZpZXcgKFByaXZh
dGUpCkBAIC00MTA3LDI1ICszODkxLDIyIEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlx
dWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAKIC0gKHZvaWQpc2V0RnJhbWU6KE5T
UmVjdClyZWN0IGFuZFNjcm9sbEJ5OihOU1NpemUpb2Zmc2V0CiB7Ci0gICAgQVNTRVJUKE5TRXF1
YWxTaXplcyhfZGF0YS0+X3Jlc2l6ZVNjcm9sbE9mZnNldCwgTlNaZXJvU2l6ZSkpOwotCi0gICAg
X2RhdGEtPl9yZXNpemVTY3JvbGxPZmZzZXQgPSBvZmZzZXQ7Ci0gICAgW3NlbGYgc2V0RnJhbWU6
cmVjdF07CisgICAgX2RhdGEtPl9pbXBsLT5zZXRGcmFtZUFuZFNjcm9sbEJ5KE5TUmVjdFRvQ0dS
ZWN0KHJlY3QpLCBOU1NpemVUb0NHU2l6ZShvZmZzZXQpKTsKIH0KIAogLSAodm9pZClkaXNhYmxl
RnJhbWVTaXplVXBkYXRlcwogewotICAgIFtfZGF0YS0+X2xheW91dFN0cmF0ZWd5IGRpc2FibGVG
cmFtZVNpemVVcGRhdGVzXTsKKyAgICBfZGF0YS0+X2ltcGwtPmRpc2FibGVGcmFtZVNpemVVcGRh
dGVzKCk7CiB9CiAKIC0gKHZvaWQpZW5hYmxlRnJhbWVTaXplVXBkYXRlcwogewotICAgIFtfZGF0
YS0+X2xheW91dFN0cmF0ZWd5IGVuYWJsZUZyYW1lU2l6ZVVwZGF0ZXNdOworICAgIF9kYXRhLT5f
aW1wbC0+ZW5hYmxlRnJhbWVTaXplVXBkYXRlcygpOwogfQogCiAtIChCT09MKWZyYW1lU2l6ZVVw
ZGF0ZXNEaXNhYmxlZAogewotICAgIHJldHVybiBbX2RhdGEtPl9sYXlvdXRTdHJhdGVneSBmcmFt
ZVNpemVVcGRhdGVzRGlzYWJsZWRdOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmZyYW1lU2l6
ZVVwZGF0ZXNEaXNhYmxlZCgpOwogfQogCiArICh2b2lkKWhpZGVXb3JkRGVmaW5pdGlvbldpbmRv
dwpAQCAtNDE2MCwxMyArMzk0MSwxMiBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVl
RmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogCiAtIChCT09MKXNob3VsZENsaXBUb1Zp
c2libGVSZWN0CiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5fY2xpcHNUb1Zpc2libGVSZWN0OworICAg
IHJldHVybiBfZGF0YS0+X2ltcGwtPmNsaXBzVG9WaXNpYmxlUmVjdCgpOwogfQogCiAtICh2b2lk
KXNldFNob3VsZENsaXBUb1Zpc2libGVSZWN0OihCT09MKWNsaXBzVG9WaXNpYmxlUmVjdAogewot
ICAgIF9kYXRhLT5fY2xpcHNUb1Zpc2libGVSZWN0ID0gY2xpcHNUb1Zpc2libGVSZWN0OwotICAg
IFtzZWxmIF91cGRhdGVWaWV3RXhwb3NlZFJlY3RdOworICAgIF9kYXRhLT5faW1wbC0+c2V0Q2xp
cHNUb1Zpc2libGVSZWN0KGNsaXBzVG9WaXNpYmxlUmVjdCk7CiB9CiAKIC0gKE5TQ29sb3IgKil1
bmRlcmxheUNvbG9yCkBAIC00MjAzLDIwICszOTgzLDEzIEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0
aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAKIC0gKE5TVmlldyAq
KWZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcKIHsKLSNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkp
Ci0gICAgaWYgKF9kYXRhLT5fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgJiYgW19kYXRhLT5f
ZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgaXNGdWxsU2NyZWVuXSkKLSAgICAgICAgcmV0dXJu
IFtfZGF0YS0+X2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIHdlYlZpZXdQbGFjZWhvbGRlcl07
Ci0jZW5kaWYKLSAgICByZXR1cm4gbmlsOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmZ1bGxT
Y3JlZW5QbGFjZWhvbGRlclZpZXcoKTsKIH0KIAorLy8gRklYTUU6IFRoaXMgcmV0dXJucyBhbiBh
dXRvcmVsZWFzZWQgb2JqZWN0LiBTaG91bGQgaXQgcmVhbGx5IGJlIHByZWZpeGVkICdjcmVhdGUn
PwogLSAoTlNXaW5kb3cgKiljcmVhdGVGdWxsU2NyZWVuV2luZG93CiB7Ci0jaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQotICAgIHJldHVybiBbW1tXZWJDb3JlRnVsbFNjcmVlbldpbmRvdyBhbGxv
Y10gaW5pdFdpdGhDb250ZW50UmVjdDpbW05TU2NyZWVuIG1haW5TY3JlZW5dIGZyYW1lXSBzdHls
ZU1hc2s6KE5TQm9yZGVybGVzc1dpbmRvd01hc2sgfCBOU1Jlc2l6YWJsZVdpbmRvd01hc2spIGJh
Y2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10gYXV0b3JlbGVhc2VdOwotI2Vs
c2UKLSAgICByZXR1cm4gbmlsOwotI2VuZGlmCisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+Y3Jl
YXRlRnVsbFNjcmVlbldpbmRvdygpOwogfQogCiAvLyBGSVhNRTogQWxsIG9mIHRoZXNlICJEZWZl
cnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzIiBtZXRob2RzIHNob3VsZCBiZSBhYmxlIHRvIGJlIHJl
bW92ZWQgb25jZSBjbGllbnRzIGFyZSB3ZWFuZWQgb2ZmIG9mIHRoZW0uCkBAIC00MzgyLDUwICs0
MTU1LDMyIEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgo
TlNTdHJpbmcgKnBhdGgpCiAKIC0gKFdLTGF5b3V0TW9kZSlfbGF5b3V0TW9kZQogewotICAgIHJl
dHVybiBbX2RhdGEtPl9sYXlvdXRTdHJhdGVneSBsYXlvdXRNb2RlXTsKKyAgICByZXR1cm4gX2Rh
dGEtPl9pbXBsLT5sYXlvdXRNb2RlKCk7CiB9CiAKIC0gKHZvaWQpX3NldExheW91dE1vZGU6KFdL
TGF5b3V0TW9kZSlsYXlvdXRNb2RlCiB7Ci0gICAgX2RhdGEtPl9sYXN0UmVxdWVzdGVkTGF5b3V0
TW9kZSA9IGxheW91dE1vZGU7Ci0KLSAgICBpZiAoIVtzZWxmIF9zdXBwb3J0c0FyYml0cmFyeUxh
eW91dE1vZGVzXSAmJiBsYXlvdXRNb2RlICE9IGtXS0xheW91dE1vZGVWaWV3U2l6ZSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgaWYgKGxheW91dE1vZGUgPT0gW19kYXRhLT5fbGF5b3V0U3RyYXRl
Z3kgbGF5b3V0TW9kZV0pCi0gICAgICAgIHJldHVybjsKLQotICAgIFtfZGF0YS0+X2xheW91dFN0
cmF0ZWd5IHdpbGxDaGFuZ2VMYXlvdXRTdHJhdGVneV07Ci0gICAgX2RhdGEtPl9sYXlvdXRTdHJh
dGVneSA9IFtXS1ZpZXdMYXlvdXRTdHJhdGVneSBsYXlvdXRTdHJhdGVneVdpdGhQYWdlOipfZGF0
YS0+X3BhZ2UgdmlldzpzZWxmIG1vZGU6bGF5b3V0TW9kZV07CisgICAgX2RhdGEtPl9pbXBsLT5z
ZXRMYXlvdXRNb2RlKGxheW91dE1vZGUpOwogfQogCiAtIChDR1NpemUpX2ZpeGVkTGF5b3V0U2l6
ZQogewotICAgIHJldHVybiBfZGF0YS0+X3BhZ2UtPmZpeGVkTGF5b3V0U2l6ZSgpOworICAgIHJl
dHVybiBfZGF0YS0+X2ltcGwtPmZpeGVkTGF5b3V0U2l6ZSgpOwogfQogCiAtICh2b2lkKV9zZXRG
aXhlZExheW91dFNpemU6KENHU2l6ZSlmaXhlZExheW91dFNpemUKIHsKLSAgICBfZGF0YS0+X3Bh
Z2UtPnNldEZpeGVkTGF5b3V0U2l6ZShleHBhbmRlZEludFNpemUoRmxvYXRTaXplKGZpeGVkTGF5
b3V0U2l6ZSkpKTsKKyAgICBfZGF0YS0+X2ltcGwtPnNldEZpeGVkTGF5b3V0U2l6ZShOU1NpemVU
b0NHU2l6ZShmaXhlZExheW91dFNpemUpKTsKIH0KIAogLSAoQ0dGbG9hdClfdmlld1NjYWxlCiB7
Ci0gICAgcmV0dXJuIF9kYXRhLT5fcGFnZS0+dmlld1NjYWxlRmFjdG9yKCk7CisgICAgcmV0dXJu
IF9kYXRhLT5faW1wbC0+dmlld1NjYWxlKCk7CiB9CiAKIC0gKHZvaWQpX3NldFZpZXdTY2FsZToo
Q0dGbG9hdCl2aWV3U2NhbGUKIHsKLSAgICBfZGF0YS0+X2xhc3RSZXF1ZXN0ZWRWaWV3U2NhbGUg
PSB2aWV3U2NhbGU7Ci0KLSAgICBpZiAoIVtzZWxmIF9zdXBwb3J0c0FyYml0cmFyeUxheW91dE1v
ZGVzXSAmJiB2aWV3U2NhbGUgIT0gMSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKHZpZXdT
Y2FsZSA8PSAwIHx8IGlzbmFuKHZpZXdTY2FsZSkgfHwgaXNpbmYodmlld1NjYWxlKSkKLSAgICAg
ICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpA
IlZpZXcgc2NhbGUgc2hvdWxkIGJlIGEgcG9zaXRpdmUgbnVtYmVyIl07Ci0KLSAgICBfZGF0YS0+
X3BhZ2UtPnNjYWxlVmlldyh2aWV3U2NhbGUpOwotICAgIFtfZGF0YS0+X2xheW91dFN0cmF0ZWd5
IGRpZENoYW5nZVZpZXdTY2FsZV07CisgICAgX2RhdGEtPl9pbXBsLT5zZXRWaWV3U2NhbGUodmll
d1NjYWxlKTsKIH0KIAogLSAodm9pZClfZGlzcGF0Y2hTZXRUb3BDb250ZW50SW5zZXQKQEAgLTQ1
MjYsOSArNDI4MSw5IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZv
clBhdGgoTlNTdHJpbmcgKnBhdGgpCiB7CiAgICAgLy8gVGhpcyBTUEkgaXMgb25seSB1c2VkIG9u
IDEwLjkgYW5kIGJlbG93LCBhbmQgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGZlbmNlLWJhc2Vk
IGRyYXdpbmcgYXJlYSBzaXplIHN5bmNocm9uaXphdGlvbiBpbiAxMC4xMCsuCiAjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDkwCi0gICAgaWYgKF9kYXRhLT5fY2xpcHNU
b1Zpc2libGVSZWN0KQotICAgICAgICBbc2VsZiBfdXBkYXRlVmlld0V4cG9zZWRSZWN0XTsKLSAg
ICBbc2VsZiBfc2V0RHJhd2luZ0FyZWFTaXplOnNpemVdOworICAgIGlmIChfZGF0YS0+X2ltcGwt
PmNsaXBzVG9WaXNpYmxlUmVjdCgpKQorICAgICAgICBfZGF0YS0+X2ltcGwtPnVwZGF0ZVZpZXdF
eHBvc2VkUmVjdCgpOworICAgIF9kYXRhLT5faW1wbC0+c2V0RHJhd2luZ0FyZWFTaXplKE5TU2l6
ZVRvQ0dTaXplKHNpemUpKTsKIAogICAgIC8vIElmIGEgZ2VvbWV0cnkgdXBkYXRlIGlzIHBlbmRp
bmcgdGhlIG5ldyB1cGRhdGUgd29uJ3QgYmUgc2VudC4gUG9sbCB3aXRob3V0IHdhaXRpbmcgZm9y
IGFueQogICAgIC8vIHBlbmRpbmcgZGlkLXVwZGF0ZSBtZXNzYWdlIG5vdywgc3VjaCB0aGF0IHRo
ZSBuZXcgdXBkYXRlIGNhbiBiZSBzZW50LiBXZSBkbyBzbyBhZnRlciBzZXR0aW5nCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAppbmRleCAy
ZmFlN2E2NGJkZTZkMmM3ZWZmNDAwOTU5YzY5YzQ1NWRjNDk3NmJjLi45NzAwY2FmYzc5ZjU3NzE5
MDZiYjA5NjU4MWM2ODMwZTc0MmFkMWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKQEAgLTc3LDcgKzc3LDYgQEAgc3RydWN0IEVk
aXRvclN0YXRlOwogI2VuZGlmCiAKIC0gKHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OkRyYXdpbmdB
cmVhUHJveHk+KV9jcmVhdGVEcmF3aW5nQXJlYVByb3h5OwotLSAoQk9PTClfaXNGb2N1c2VkOwog
LSAodm9pZClfcHJvY2Vzc0RpZEV4aXQ7CiAtICh2b2lkKV9wYWdlQ2xvc2VkOwogLSAodm9pZClf
ZGlkUmVsYXVuY2hQcm9jZXNzOwpAQCAtMTEwLDkgKzEwOSw2IEBAIHN0cnVjdCBFZGl0b3JTdGF0
ZTsKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQogLSAodm9pZClfc2V0UHJvbWlzZWRE
YXRhRm9yQXR0YWNobWVudDooTlNTdHJpbmcgKilmaWxlbmFtZSB3aXRoRXh0ZW5zaW9uOihOU1N0
cmluZyAqKWV4dGVuc2lvbiB3aXRoVGl0bGU6KE5TU3RyaW5nICopdGl0bGUgd2l0aFVSTDooTlNT
dHJpbmcgKil1cmwgd2l0aFZpc2libGVVUkw6KE5TU3RyaW5nICopdmlzaWJsZVVybCBmb3JQYXN0
ZWJvYXJkOihOU1N0cmluZyAqKXBhc3RlYm9hcmROYW1lOwogI2VuZGlmCi0tICh2b2lkKV91cGRh
dGVTZWN1cmVJbnB1dFN0YXRlOwotLSAodm9pZClfcmVzZXRTZWN1cmVJbnB1dFN0YXRlOwotLSAo
dm9pZClfbm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbjsKIAogLSAo
V2ViS2l0OjpDb2xvclNwYWNlRGF0YSlfY29sb3JTcGFjZTsKIApAQCAtMTIzLDcgKzExOSw2IEBA
IHN0cnVjdCBFZGl0b3JTdGF0ZTsKIC0gKEJPT0wpX3N1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXM7
CiAKIC0gKHZvaWQpX2RpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZTsK
LS0gKHZvaWQpX2RpZENvbW1pdExvYWRGb3JNYWluRnJhbWU7CiAtICh2b2lkKV9kaWRGaW5pc2hM
b2FkRm9yTWFpbkZyYW1lOwogLSAodm9pZClfZGlkRmFpbExvYWRGb3JNYWluRnJhbWU7CiAtICh2
b2lkKV9kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lOihXZWJLaXQ6OlNhbWVE
b2N1bWVudE5hdmlnYXRpb25UeXBlKXR5cGU7CkBAIC0xNTgsMTMgKzE1Myw2IEBAIHN0cnVjdCBF
ZGl0b3JTdGF0ZTsKIAogQHByb3BlcnR5IChyZWFkb25seSkgTlNXaW5kb3cgKl90YXJnZXRXaW5k
b3dGb3JNb3ZlUHJlcGFyYXRpb247CiAKLS8vIEZvciBXS1ZpZXdMYXlvdXRTdHJhdGVneSBhbmQg
c3ViY2xhc3NlczoKLS0gKHZvaWQpX3NldERyYXdpbmdBcmVhU2l6ZTooTlNTaXplKXNpemU7Ci0t
ICh2b2lkKV91cGRhdGVWaWV3RXhwb3NlZFJlY3Q7Ci0tIChDQUxheWVyICopX3Jvb3RMYXllcjsK
LQotLSAodm9pZClfdXBkYXRlU3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlczsKLQogI2lmIFdL
X0FQSV9FTkFCTEVECiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS1JlbW90ZU9i
amVjdFJlZ2lzdHJ5ICpfcmVtb3RlT2JqZWN0UmVnaXN0cnk7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDkxMjk4MjIy
NzY1MDQ0YzNkNGRjYzg3Y2ExN2FiMjRmY2RhOGY5NgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC0wLDAgKzEsMTQyIEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJWaWV3SW1wbF9oCisjZGVmaW5lIFdlYlZpZXdJbXBs
X2gKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCAiV0tMYXlvdXRNb2RlLmgiCisjaW1w
b3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK09CSkNfQ0xBU1MgTlNUZXh0SW5wdXRDb250ZXh0Owor
T0JKQ19DTEFTUyBOU1ZpZXc7CitPQkpDX0NMQVNTIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXI7CitPQkpDX0NMQVNTIFdLVmlld0xheW91dFN0cmF0ZWd5OworCitAcHJvdG9jb2wgV2ViVmll
d0ltcGxEZWxlZ2F0ZQorCistIChOU1RleHRJbnB1dENvbnRleHQgKilfc3VwZXJJbnB1dENvbnRl
eHQ7CisKK0BlbmQKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFdlYlBhZ2VQcm94eTsK
KworY2xhc3MgV2ViVmlld0ltcGwgeworICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOworICAg
IFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYlZpZXdJbXBsKTsKK3B1YmxpYzoKKyAgICBXZWJWaWV3
SW1wbChOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICosIFdlYlBhZ2VQcm94eSYpOworCisg
ICAgfldlYlZpZXdJbXBsKCk7CisKKyAgICB2b2lkIHNldERyYXdzQmFja2dyb3VuZChib29sKTsK
KyAgICBib29sIGRyYXdzQmFja2dyb3VuZCgpIGNvbnN0OworICAgIHZvaWQgc2V0RHJhd3NUcmFu
c3BhcmVudEJhY2tncm91bmQoYm9vbCk7CisgICAgYm9vbCBkcmF3c1RyYW5zcGFyZW50QmFja2dy
b3VuZCgpIGNvbnN0OworCisgICAgYm9vbCBhY2NlcHRzRmlyc3RSZXNwb25kZXIoKTsKKyAgICBi
b29sIGJlY29tZUZpcnN0UmVzcG9uZGVyKCk7CisgICAgYm9vbCByZXNpZ25GaXJzdFJlc3BvbmRl
cigpOworICAgIGJvb2wgaXNGb2N1c2VkKCkgY29uc3Q7CisKKyAgICB2b2lkIHZpZXdXaWxsU3Rh
cnRMaXZlUmVzaXplKCk7CisgICAgdm9pZCB2aWV3RGlkRW5kTGl2ZVJlc2l6ZSgpOworCisgICAg
dm9pZCBzZXRGcmFtZVNpemUoQ0dTaXplKTsKKyAgICB2b2lkIGRpc2FibGVGcmFtZVNpemVVcGRh
dGVzKCk7CisgICAgdm9pZCBlbmFibGVGcmFtZVNpemVVcGRhdGVzKCk7CisgICAgYm9vbCBmcmFt
ZVNpemVVcGRhdGVzRGlzYWJsZWQoKSBjb25zdDsKKyAgICB2b2lkIHNldEZyYW1lQW5kU2Nyb2xs
QnkoQ0dSZWN0LCBDR1NpemUpOworCisgICAgdm9pZCBzZXRGaXhlZExheW91dFNpemUoQ0dTaXpl
KTsKKyAgICBDR1NpemUgZml4ZWRMYXlvdXRTaXplKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldERy
YXdpbmdBcmVhU2l6ZShDR1NpemUpOworCisgICAgdm9pZCBzZXRDb250ZW50UHJlcGFyYXRpb25S
ZWN0KENHUmVjdCk7CisgICAgdm9pZCB1cGRhdGVWaWV3RXhwb3NlZFJlY3QoKTsKKyAgICB2b2lk
IHNldENsaXBzVG9WaXNpYmxlUmVjdChib29sKTsKKyAgICBib29sIGNsaXBzVG9WaXNpYmxlUmVj
dCgpIGNvbnN0IHsgcmV0dXJuIG1fY2xpcHNUb1Zpc2libGVSZWN0OyB9CisKKyAgICB2b2lkIHNl
dEludHJpbnNpY0NvbnRlbnRTaXplKENHU2l6ZSk7CisgICAgQ0dTaXplIGludHJpbnNpY0NvbnRl
bnRTaXplKCkgY29uc3Q7CisKKyAgICB2b2lkIHNldFZpZXdTY2FsZShDR0Zsb2F0KTsKKyAgICBD
R0Zsb2F0IHZpZXdTY2FsZSgpIGNvbnN0OworCisgICAgV0tMYXlvdXRNb2RlIGxheW91dE1vZGUo
KSBjb25zdDsKKyAgICB2b2lkIHNldExheW91dE1vZGUoV0tMYXlvdXRNb2RlKTsKKyAgICB2b2lk
IHVwZGF0ZVN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMoKTsKKworICAgIHZvaWQgdXBkYXRl
U2VjdXJlSW5wdXRTdGF0ZSgpOworICAgIHZvaWQgcmVzZXRTZWN1cmVJbnB1dFN0YXRlKCk7Cisg
ICAgYm9vbCBpblNlY3VyZUlucHV0U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2luU2VjdXJlSW5w
dXRTdGF0ZTsgfQorICAgIHZvaWQgbm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21w
b3NpdGlvbigpOworCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIGJvb2wgaGFzRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKSBjb25zdDsKKyAgICBXS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyICpmdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpOworICAgIHZvaWQgY2xvc2VG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpOworI2VuZGlmCisgICAgTlNWaWV3ICpmdWxsU2Ny
ZWVuUGxhY2Vob2xkZXJWaWV3KCk7CisgICAgTlNXaW5kb3cgKmNyZWF0ZUZ1bGxTY3JlZW5XaW5k
b3coKTsKKworcHJpdmF0ZToKKyAgICBib29sIHN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMo
KSBjb25zdDsKKworICAgIE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKm1fdmlldzsKKyAg
ICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKKworICAgIGJvb2wgbV93aWxsQmVjb21lRmlyc3RSZXNw
b25kZXJBZ2FpbiB7IGZhbHNlIH07CisgICAgYm9vbCBtX2luQmVjb21lRmlyc3RSZXNwb25kZXIg
eyBmYWxzZSB9OworICAgIGJvb2wgbV9pblJlc2lnbkZpcnN0UmVzcG9uZGVyIHsgZmFsc2UgfTsK
KworICAgIENHUmVjdCBtX2NvbnRlbnRQcmVwYXJhdGlvblJlY3Q7CisgICAgYm9vbCBtX3VzZUNv
bnRlbnRQcmVwYXJhdGlvblJlY3RGb3JWaXNpYmxlUmVjdCB7IGZhbHNlIH07CisgICAgYm9vbCBt
X2NsaXBzVG9WaXNpYmxlUmVjdCB7IGZhbHNlIH07CisKKyAgICBDR1NpemUgbV9yZXNpemVTY3Jv
bGxPZmZzZXQ7CisKKyAgICBDR1NpemUgbV9pbnRyaW5zaWNDb250ZW50U2l6ZTsKKworICAgIFJl
dGFpblB0cjxXS1ZpZXdMYXlvdXRTdHJhdGVneT4gbV9sYXlvdXRTdHJhdGVneTsKKyAgICBXS0xh
eW91dE1vZGUgbV9sYXN0UmVxdWVzdGVkTGF5b3V0TW9kZSB7IGtXS0xheW91dE1vZGVWaWV3U2l6
ZSB9OworICAgIENHRmxvYXQgbV9sYXN0UmVxdWVzdGVkVmlld1NjYWxlIHsgMSB9OworCisgICAg
Ym9vbCBtX2luU2VjdXJlSW5wdXRTdGF0ZSB7IGZhbHNlIH07CisKKyNpZiBFTkFCTEUoRlVMTFND
UkVFTl9BUEkpCisgICAgUmV0YWluUHRyPFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXI+IG1f
ZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXI7CisjZW5kaWYKK307CisgICAgCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKKworI2VuZGlmIC8vIFdlYlZp
ZXdJbXBsX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yNzhlZjMwMzU3YTJlNTNlNDBlMGFhZGNiN2JhMjVjNjkwNmYyMTQ2Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tCkBAIC0wLDAgKzEsNDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgi
CisjaW1wb3J0ICJXZWJWaWV3SW1wbC5oIgorCisjaWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0
ICJHZW5lcmljQ2FsbGJhY2suaCIKKyNpbXBvcnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgIk5hdGl2
ZVdlYktleWJvYXJkRXZlbnQuaCIKKyNpbXBvcnQgIldLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIuaCIKKyNpbXBvcnQgIldLVmlld0xheW91dFN0cmF0ZWd5LmgiCisjaW1wb3J0ICJXS1dlYlZp
ZXcuaCIKKyNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgorI2ltcG9ydCA8SElUb29sYm94L0NhcmJv
bkV2ZW50c0NvcmUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvS2V5cHJlc3NDb21tYW5kLmg+CisjaW1w
b3J0IDxXZWJDb3JlL05TV2luZG93U1BJLmg+CisjaW1wb3J0IDxXZWJDb3JlL1ZpZXdTdGF0ZS5o
PgorI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlRnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldy5oPgor
I2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmlld0ltcGxE
ZWxlZ2F0ZT4gKnZpZXcsIFdlYlBhZ2VQcm94eSYgcGFnZSkKKyAgICA6IG1fdmlldyh2aWV3KQor
ICAgICwgbV9wYWdlKHBhZ2UpCisgICAgLCBtX2ludHJpbnNpY0NvbnRlbnRTaXplKE5TTWFrZVNp
emUoTlNWaWV3Tm9JbnN0cmluc2ljTWV0cmljLCBOU1ZpZXdOb0luc3RyaW5zaWNNZXRyaWMpKQor
ICAgICwgbV9sYXlvdXRTdHJhdGVneShbV0tWaWV3TGF5b3V0U3RyYXRlZ3kgbGF5b3V0U3RyYXRl
Z3lXaXRoUGFnZTptX3BhZ2UgdmlldzptX3ZpZXcgdmlld0ltcGw6KnRoaXMgbW9kZTprV0tMYXlv
dXRNb2RlVmlld1NpemVdKQoreworfQorCitXZWJWaWV3SW1wbDo6fldlYlZpZXdJbXBsKCkKK3sK
KyAgICBBU1NFUlQoIW1faW5TZWN1cmVJbnB1dFN0YXRlKTsKKworICAgIFttX2xheW91dFN0cmF0
ZWd5IGludmFsaWRhdGVdOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXREcmF3c0JhY2tncm91
bmQoYm9vbCBkcmF3c0JhY2tncm91bmQpCit7CisgICAgbV9wYWdlLnNldERyYXdzQmFja2dyb3Vu
ZChkcmF3c0JhY2tncm91bmQpOworfQorCitib29sIFdlYlZpZXdJbXBsOjpkcmF3c0JhY2tncm91
bmQoKSBjb25zdAoreworICAgIHJldHVybiBtX3BhZ2UuZHJhd3NCYWNrZ3JvdW5kKCk7Cit9CisK
K3ZvaWQgV2ViVmlld0ltcGw6OnNldERyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKGJvb2wgZHJh
d3NUcmFuc3BhcmVudEJhY2tncm91bmQpCit7CisgICAgbV9wYWdlLnNldERyYXdzVHJhbnNwYXJl
bnRCYWNrZ3JvdW5kKGRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKTsKK30KKworYm9vbCBXZWJW
aWV3SW1wbDo6ZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoKSBjb25zdAoreworICAgIHJldHVy
biBtX3BhZ2UuZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoKTsKK30KKworYm9vbCBXZWJWaWV3
SW1wbDo6YWNjZXB0c0ZpcnN0UmVzcG9uZGVyKCkKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwor
Ym9vbCBXZWJWaWV3SW1wbDo6YmVjb21lRmlyc3RSZXNwb25kZXIoKQoreworICAgIC8vIElmIHdl
IGp1c3QgYmVjYW1lIGZpcnN0IHJlc3BvbmRlciBhZ2FpbiwgdGhlcmUgaXMgbm8gbmVlZCB0byBk
byBhbnl0aGluZywKKyAgICAvLyBzaW5jZSByZXNpZ25GaXJzdFJlc3BvbmRlciBoYXMgY29ycmVj
dGx5IGRldGVjdGVkIHRoaXMgc2l0dWF0aW9uLgorICAgIGlmIChtX3dpbGxCZWNvbWVGaXJzdFJl
c3BvbmRlckFnYWluKSB7CisgICAgICAgIG1fd2lsbEJlY29tZUZpcnN0UmVzcG9uZGVyQWdhaW4g
PSBOTzsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgTlNTZWxlY3Rpb25EaXJl
Y3Rpb24gZGlyZWN0aW9uID0gW1ttX3ZpZXcgd2luZG93XSBrZXlWaWV3U2VsZWN0aW9uRGlyZWN0
aW9uXTsKKworICAgIG1faW5CZWNvbWVGaXJzdFJlc3BvbmRlciA9IHRydWU7CisKKyAgICB1cGRh
dGVTZWN1cmVJbnB1dFN0YXRlKCk7CisgICAgbV9wYWdlLnZpZXdTdGF0ZURpZENoYW5nZShXZWJD
b3JlOjpWaWV3U3RhdGU6OklzRm9jdXNlZCk7CisgICAgLy8gUmVzdG9yZSB0aGUgc2VsZWN0aW9u
IGluIHRoZSBlZGl0YWJsZSByZWdpb24gaWYgcmVzaWduaW5nIGZpcnN0IHJlc3BvbmRlciBjbGVh
cmVkIHNlbGVjdGlvbi4KKyAgICBtX3BhZ2UucmVzdG9yZVNlbGVjdGlvbkluRm9jdXNlZEVkaXRh
YmxlRWxlbWVudCgpOworCisgICAgbV9pbkJlY29tZUZpcnN0UmVzcG9uZGVyID0gZmFsc2U7CisK
KyAgICBpZiAoZGlyZWN0aW9uICE9IE5TRGlyZWN0U2VsZWN0aW9uKSB7CisgICAgICAgIE5TRXZl
bnQgKmV2ZW50ID0gW05TQXBwIGN1cnJlbnRFdmVudF07CisgICAgICAgIE5TRXZlbnQgKmtleWJv
YXJkRXZlbnQgPSBuaWw7CisgICAgICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNLZXlEb3duIHx8
IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKQorICAgICAgICAgICAga2V5Ym9hcmRFdmVudCA9IGV2
ZW50OworICAgICAgICBtX3BhZ2Uuc2V0SW5pdGlhbEZvY3VzKGRpcmVjdGlvbiA9PSBOU1NlbGVj
dGluZ05leHQsIGtleWJvYXJkRXZlbnQgIT0gbmlsLCBOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGtl
eWJvYXJkRXZlbnQsIGZhbHNlLCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPigpKSwg
W10oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7IH0pOworICAgIH0KKyAgICByZXR1cm4g
dHJ1ZTsKK30KKworYm9vbCBXZWJWaWV3SW1wbDo6cmVzaWduRmlyc3RSZXNwb25kZXIoKQorewor
I2lmIFdLX0FQSV9FTkFCTEVECisgICAgLy8gUHJlZGljdCB0aGUgY2FzZSB3aGVyZSB3ZSBhcmUg
bG9zaW5nIGZpcnN0IHJlc3BvbmRlciBzdGF0dXMgb25seSB0bworICAgIC8vIGdhaW4gaXQgYmFj
ayBhZ2Fpbi4gV2Ugd2FudCByZXNpZ25GaXJzdFJlc3BvbmRlciB0byBkbyBub3RoaW5nIGluIHRo
YXQgY2FzZS4KKyAgICBpZCBuZXh0UmVzcG9uZGVyID0gW1ttX3ZpZXcgd2luZG93XSBfbmV3Rmly
c3RSZXNwb25kZXJBZnRlclJlc2lnbmluZ107CisKKyAgICAvLyBGSVhNRTogVGhpcyB3aWxsIHBy
b2JhYmx5IG5lZWQgdG8gY2hhbmdlIG9uY2UgV0tXZWJWaWV3IGRvZXNuJ3QgY29udGFpbiBhIFdL
Vmlldy4KKyAgICBpZiAoW25leHRSZXNwb25kZXIgaXNLaW5kT2ZDbGFzczpbV0tXZWJWaWV3IGNs
YXNzXV0gJiYgbV92aWV3LnN1cGVydmlldyA9PSBuZXh0UmVzcG9uZGVyKSB7CisgICAgICAgIG1f
d2lsbEJlY29tZUZpcnN0UmVzcG9uZGVyQWdhaW4gPSB0cnVlOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisjZW5kaWYKKworICAgIG1fd2lsbEJlY29tZUZpcnN0UmVzcG9uZGVyQWdhaW4g
PSBOTzsKKyAgICBtX2luUmVzaWduRmlyc3RSZXNwb25kZXIgPSB0cnVlOworCisjaWYgVVNFKEFT
WU5DX05TVEVYVElOUFVUQ0xJRU5UKQorICAgIG1fcGFnZS5jb25maXJtQ29tcG9zaXRpb25Bc3lu
YygpOworI2Vsc2UKKyAgICBpZiAobV9wYWdlLmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb24g
JiYgIW1fcGFnZS5lZGl0b3JTdGF0ZSgpLnNob3VsZElnbm9yZUNvbXBvc2l0aW9uU2VsZWN0aW9u
Q2hhbmdlKQorICAgICAgICBtX3BhZ2UuY2FuY2VsQ29tcG9zaXRpb24oKTsKKyNlbmRpZgorCisg
ICAgbm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbigpOworCisgICAg
cmVzZXRTZWN1cmVJbnB1dFN0YXRlKCk7CisKKyAgICBpZiAoIW1fcGFnZS5tYWludGFpbnNJbmFj
dGl2ZVNlbGVjdGlvbigpKQorICAgICAgICBtX3BhZ2UuY2xlYXJTZWxlY3Rpb24oKTsKKworICAg
IG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0ZvY3VzZWQp
OworICAgIAorICAgIG1faW5SZXNpZ25GaXJzdFJlc3BvbmRlciA9IGZhbHNlOworICAgIAorICAg
IHJldHVybiB0cnVlOworfQorCitib29sIFdlYlZpZXdJbXBsOjppc0ZvY3VzZWQoKSBjb25zdAor
eworICAgIGlmIChtX2luQmVjb21lRmlyc3RSZXNwb25kZXIpCisgICAgICAgIHJldHVybiB0cnVl
OworICAgIGlmIChtX2luUmVzaWduRmlyc3RSZXNwb25kZXIpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gbV92aWV3LndpbmRvdy5maXJzdFJlc3BvbmRlciA9PSBtX3ZpZXc7Cit9
CisKK3ZvaWQgV2ViVmlld0ltcGw6OnZpZXdXaWxsU3RhcnRMaXZlUmVzaXplKCkKK3sKKyAgICBt
X3BhZ2Uudmlld1dpbGxTdGFydExpdmVSZXNpemUoKTsKKworICAgIFttX2xheW91dFN0cmF0ZWd5
IHdpbGxTdGFydExpdmVSZXNpemVdOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp2aWV3RGlkRW5k
TGl2ZVJlc2l6ZSgpCit7CisgICAgbV9wYWdlLnZpZXdXaWxsRW5kTGl2ZVJlc2l6ZSgpOworCisg
ICAgW21fbGF5b3V0U3RyYXRlZ3kgZGlkRW5kTGl2ZVJlc2l6ZV07Cit9CisKK3ZvaWQgV2ViVmll
d0ltcGw6OnNldEZyYW1lU2l6ZShDR1NpemUpCit7CisgICAgW21fbGF5b3V0U3RyYXRlZ3kgZGlk
Q2hhbmdlRnJhbWVTaXplXTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6ZGlzYWJsZUZyYW1lU2l6
ZVVwZGF0ZXMoKQoreworICAgIFttX2xheW91dFN0cmF0ZWd5IGRpc2FibGVGcmFtZVNpemVVcGRh
dGVzXTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6ZW5hYmxlRnJhbWVTaXplVXBkYXRlcygpCit7
CisgICAgW21fbGF5b3V0U3RyYXRlZ3kgZW5hYmxlRnJhbWVTaXplVXBkYXRlc107Cit9CisKK2Jv
b2wgV2ViVmlld0ltcGw6OmZyYW1lU2l6ZVVwZGF0ZXNEaXNhYmxlZCgpIGNvbnN0Cit7CisgICAg
cmV0dXJuIFttX2xheW91dFN0cmF0ZWd5IGZyYW1lU2l6ZVVwZGF0ZXNEaXNhYmxlZF07Cit9CisK
K3ZvaWQgV2ViVmlld0ltcGw6OnNldEZyYW1lQW5kU2Nyb2xsQnkoQ0dSZWN0IGZyYW1lLCBDR1Np
emUgb2Zmc2V0KQoreworICAgIEFTU0VSVChDR1NpemVFcXVhbFRvU2l6ZShtX3Jlc2l6ZVNjcm9s
bE9mZnNldCwgQ0dTaXplWmVybykpOworCisgICAgbV9yZXNpemVTY3JvbGxPZmZzZXQgPSBvZmZz
ZXQ7CisgICAgbV92aWV3LmZyYW1lID0gZnJhbWU7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNl
dEZpeGVkTGF5b3V0U2l6ZShDR1NpemUgZml4ZWRMYXlvdXRTaXplKQoreworICAgIG1fcGFnZS5z
ZXRGaXhlZExheW91dFNpemUoV2ViQ29yZTo6ZXhwYW5kZWRJbnRTaXplKFdlYkNvcmU6OkZsb2F0
U2l6ZShmaXhlZExheW91dFNpemUpKSk7Cit9CisKK0NHU2l6ZSBXZWJWaWV3SW1wbDo6Zml4ZWRM
YXlvdXRTaXplKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLmZpeGVkTGF5b3V0U2l6ZSgp
OworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXREcmF3aW5nQXJlYVNpemUoQ0dTaXplIHNpemUp
Cit7CisgICAgaWYgKCFtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9wYWdlLmRyYXdpbmdBcmVhKCktPnNldFNpemUoV2ViQ29yZTo6SW50U2l6ZShzaXplKSwg
V2ViQ29yZTo6SW50U2l6ZSgpLCBXZWJDb3JlOjpJbnRTaXplKG1fcmVzaXplU2Nyb2xsT2Zmc2V0
KSk7CisgICAgbV9yZXNpemVTY3JvbGxPZmZzZXQgPSBDR1NpemVaZXJvOworfQorCit2b2lkIFdl
YlZpZXdJbXBsOjpzZXRDb250ZW50UHJlcGFyYXRpb25SZWN0KENHUmVjdCByZWN0KQoreworICAg
IG1fY29udGVudFByZXBhcmF0aW9uUmVjdCA9IHJlY3Q7CisgICAgbV91c2VDb250ZW50UHJlcGFy
YXRpb25SZWN0Rm9yVmlzaWJsZVJlY3QgPSB0cnVlOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp1
cGRhdGVWaWV3RXhwb3NlZFJlY3QoKQoreworICAgIE5TUmVjdCBleHBvc2VkUmVjdCA9IFttX3Zp
ZXcgdmlzaWJsZVJlY3RdOworCisgICAgaWYgKG1fdXNlQ29udGVudFByZXBhcmF0aW9uUmVjdEZv
clZpc2libGVSZWN0KQorICAgICAgICBleHBvc2VkUmVjdCA9IE5TVW5pb25SZWN0KG1fY29udGVu
dFByZXBhcmF0aW9uUmVjdCwgZXhwb3NlZFJlY3QpOworCisgICAgaWYgKGF1dG8gZHJhd2luZ0Fy
ZWEgPSBtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKKyAgICAgICAgZHJhd2luZ0FyZWEtPnNldEV4cG9z
ZWRSZWN0KG1fY2xpcHNUb1Zpc2libGVSZWN0ID8gV2ViQ29yZTo6RmxvYXRSZWN0KGV4cG9zZWRS
ZWN0KSA6IFdlYkNvcmU6OkZsb2F0UmVjdDo6aW5maW5pdGVSZWN0KCkpOworfQorCit2b2lkIFdl
YlZpZXdJbXBsOjpzZXRDbGlwc1RvVmlzaWJsZVJlY3QoYm9vbCBjbGlwc1RvVmlzaWJsZVJlY3Qp
Cit7CisgICAgbV9jbGlwc1RvVmlzaWJsZVJlY3QgPSBjbGlwc1RvVmlzaWJsZVJlY3Q7CisgICAg
dXBkYXRlVmlld0V4cG9zZWRSZWN0KCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldEludHJp
bnNpY0NvbnRlbnRTaXplKENHU2l6ZSBpbnRyaW5zaWNDb250ZW50U2l6ZSkKK3sKKyAgICAvLyBJ
ZiB0aGUgaW50cmluc2ljIGNvbnRlbnQgc2l6ZSBpcyBsZXNzIHRoYW4gdGhlIG1pbmltdW0gbGF5
b3V0IHdpZHRoLCB0aGUgY29udGVudCBmbG93ZWQgdG8gZml0LAorICAgIC8vIHNvIHdlIGNhbiBy
ZXBvcnQgdGhhdCB0aGF0IGRpbWVuc2lvbiBpcyBmbGV4aWJsZS4gSWYgbm90LCB3ZSBuZWVkIHRv
IHJlcG9ydCBvdXIgaW50cmluc2ljIHdpZHRoCisgICAgLy8gc28gdGhhdCBhdXRvbGF5b3V0IHdp
bGwga25vdyB0byBwcm92aWRlIHNwYWNlIGZvciB1cy4KKworICAgIE5TU2l6ZSBpbnRyaW5zaWND
b250ZW50U2l6ZUFja25vd2xlZGdpbmdGbGV4aWJsZVdpZHRoID0gaW50cmluc2ljQ29udGVudFNp
emU7CisgICAgaWYgKGludHJpbnNpY0NvbnRlbnRTaXplLndpZHRoIDwgbV9wYWdlLm1pbmltdW1M
YXlvdXRTaXplKCkud2lkdGgoKSkKKyAgICAgICAgaW50cmluc2ljQ29udGVudFNpemVBY2tub3ds
ZWRnaW5nRmxleGlibGVXaWR0aC53aWR0aCA9IE5TVmlld05vSW5zdHJpbnNpY01ldHJpYzsKKwor
ICAgIG1faW50cmluc2ljQ29udGVudFNpemUgPSBpbnRyaW5zaWNDb250ZW50U2l6ZUFja25vd2xl
ZGdpbmdGbGV4aWJsZVdpZHRoOworICAgIFttX3ZpZXcgaW52YWxpZGF0ZUludHJpbnNpY0NvbnRl
bnRTaXplXTsKK30KKworQ0dTaXplIFdlYlZpZXdJbXBsOjppbnRyaW5zaWNDb250ZW50U2l6ZSgp
IGNvbnN0Cit7CisgICAgcmV0dXJuIG1faW50cmluc2ljQ29udGVudFNpemU7Cit9CisKK3ZvaWQg
V2ViVmlld0ltcGw6OnNldFZpZXdTY2FsZShDR0Zsb2F0IHZpZXdTY2FsZSkKK3sKKyAgICBtX2xh
c3RSZXF1ZXN0ZWRWaWV3U2NhbGUgPSB2aWV3U2NhbGU7CisKKyAgICBpZiAoIXN1cHBvcnRzQXJi
aXRyYXJ5TGF5b3V0TW9kZXMoKSAmJiB2aWV3U2NhbGUgIT0gMSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgaWYgKHZpZXdTY2FsZSA8PSAwIHx8IGlzbmFuKHZpZXdTY2FsZSkgfHwgaXNpbmYodmll
d1NjYWxlKSkKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhj
ZXB0aW9uIGZvcm1hdDpAIlZpZXcgc2NhbGUgc2hvdWxkIGJlIGEgcG9zaXRpdmUgbnVtYmVyIl07
CisKKyAgICBtX3BhZ2Uuc2NhbGVWaWV3KHZpZXdTY2FsZSk7CisgICAgW21fbGF5b3V0U3RyYXRl
Z3kgZGlkQ2hhbmdlVmlld1NjYWxlXTsKK30KKworQ0dGbG9hdCBXZWJWaWV3SW1wbDo6dmlld1Nj
YWxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLnZpZXdTY2FsZUZhY3RvcigpOworfQor
CitXS0xheW91dE1vZGUgV2ViVmlld0ltcGw6OmxheW91dE1vZGUoKSBjb25zdAoreworICAgIHJl
dHVybiBbbV9sYXlvdXRTdHJhdGVneSBsYXlvdXRNb2RlXTsKK30KKwordm9pZCBXZWJWaWV3SW1w
bDo6c2V0TGF5b3V0TW9kZShXS0xheW91dE1vZGUgbGF5b3V0TW9kZSkKK3sKKyAgICBtX2xhc3RS
ZXF1ZXN0ZWRMYXlvdXRNb2RlID0gbGF5b3V0TW9kZTsKKworICAgIGlmICghc3VwcG9ydHNBcmJp
dHJhcnlMYXlvdXRNb2RlcygpICYmIGxheW91dE1vZGUgIT0ga1dLTGF5b3V0TW9kZVZpZXdTaXpl
KQorICAgICAgICByZXR1cm47CisKKyAgICBpZiAobGF5b3V0TW9kZSA9PSBbbV9sYXlvdXRTdHJh
dGVneSBsYXlvdXRNb2RlXSkKKyAgICAgICAgcmV0dXJuOworCisgICAgW21fbGF5b3V0U3RyYXRl
Z3kgd2lsbENoYW5nZUxheW91dFN0cmF0ZWd5XTsKKyAgICBtX2xheW91dFN0cmF0ZWd5ID0gW1dL
Vmlld0xheW91dFN0cmF0ZWd5IGxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6bV9wYWdlIHZpZXc6bV92
aWV3IHZpZXdJbXBsOip0aGlzIG1vZGU6bGF5b3V0TW9kZV07Cit9CisKK2Jvb2wgV2ViVmlld0lt
cGw6OnN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMoKSBjb25zdAoreworICAgIGlmIChbbV9m
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBpc0Z1bGxTY3JlZW5dKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBXZWJGcmFtZVByb3h5KiBmcmFtZSA9IG1fcGFnZS5tYWluRnJhbWUoKTsK
KyAgICBpZiAoIWZyYW1lKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIC8vIElmIHdlIGhh
dmUgYSBwbHVnaW4gZG9jdW1lbnQgaW4gdGhlIG1haW4gZnJhbWUsIGF2b2lkIHVzaW5nIGN1c3Rv
bSBXS0xheW91dE1vZGVzCisgICAgLy8gYW5kIGZhbGwgYmFjayB0byB0aGUgZGVmYXVsdHMsIGJl
Y2F1c2UgdGhlcmUncyBhIGdvb2QgY2hhbmNlIHRoYXQgaXQgd29uJ3Qgd29yayAoZS5nLiB3aXRo
IFBERlBsdWdpbikuCisgICAgaWYgKGZyYW1lLT5jb250YWluc1BsdWdpbkRvY3VtZW50KCkpCisg
ICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOworfQorCit2b2lkIFdlYlZp
ZXdJbXBsOjp1cGRhdGVTdXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCkKK3sKKyAgICBpZiAo
IXN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMoKSkgeworICAgICAgICBXS0xheW91dE1vZGUg
b2xkUmVxdWVzdGVkTGF5b3V0TW9kZSA9IG1fbGFzdFJlcXVlc3RlZExheW91dE1vZGU7CisgICAg
ICAgIENHRmxvYXQgb2xkUmVxdWVzdGVkVmlld1NjYWxlID0gbV9sYXN0UmVxdWVzdGVkVmlld1Nj
YWxlOworICAgICAgICBzZXRWaWV3U2NhbGUoMSk7CisgICAgICAgIHNldExheW91dE1vZGUoa1dL
TGF5b3V0TW9kZVZpZXdTaXplKTsKKworICAgICAgICAvLyBUaGUgJ2xhc3QgcmVxdWVzdGVkJyBw
YXJhbWV0ZXJzIHdpbGwgaGF2ZSBiZWVuIG92ZXJ3cml0dGVuIGJ5IHNldHRpbmcgdGhlbSBhYm92
ZSwgYnV0IHdlIGRvbid0CisgICAgICAgIC8vIHdhbnQgdGhpcyB0byBjb3VudCBhcyBhIHJlcXVl
c3QgKG9ubHkgY2hhbmdlcyBmcm9tIHRoZSBjbGllbnQgY291bnQpLCBzbyByZXNldCB0aGVtLgor
ICAgICAgICBtX2xhc3RSZXF1ZXN0ZWRMYXlvdXRNb2RlID0gb2xkUmVxdWVzdGVkTGF5b3V0TW9k
ZTsKKyAgICAgICAgbV9sYXN0UmVxdWVzdGVkVmlld1NjYWxlID0gb2xkUmVxdWVzdGVkVmlld1Nj
YWxlOworICAgIH0gZWxzZSBpZiAobV9sYXN0UmVxdWVzdGVkTGF5b3V0TW9kZSAhPSBbbV9sYXlv
dXRTdHJhdGVneSBsYXlvdXRNb2RlXSkgeworICAgICAgICBzZXRWaWV3U2NhbGUobV9sYXN0UmVx
dWVzdGVkVmlld1NjYWxlKTsKKyAgICAgICAgc2V0TGF5b3V0TW9kZShtX2xhc3RSZXF1ZXN0ZWRM
YXlvdXRNb2RlKTsKKyAgICB9Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZVNlY3VyZUlu
cHV0U3RhdGUoKQoreworICAgIGlmICghW1ttX3ZpZXcgd2luZG93XSBpc0tleVdpbmRvd10gfHwg
IWlzRm9jdXNlZCgpKSB7CisgICAgICAgIGlmIChtX2luU2VjdXJlSW5wdXRTdGF0ZSkgeworICAg
ICAgICAgICAgRGlzYWJsZVNlY3VyZUV2ZW50SW5wdXQoKTsKKyAgICAgICAgICAgIG1faW5TZWN1
cmVJbnB1dFN0YXRlID0gZmFsc2U7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICAvLyBXS1ZpZXcgaGFzIGEgc2luZ2xlIGlucHV0IGNvbnRleHQgZm9yIGFsbCBlZGl0YWJs
ZSBhcmVhcyAoZXhjZXB0IGZvciBwbHVnLWlucykuCisgICAgTlNUZXh0SW5wdXRDb250ZXh0ICpj
b250ZXh0ID0gW21fdmlldyBfc3VwZXJJbnB1dENvbnRleHRdOworICAgIGJvb2wgaXNJblBhc3N3
b3JkRmllbGQgPSBtX3BhZ2UuZWRpdG9yU3RhdGUoKS5pc0luUGFzc3dvcmRGaWVsZDsKKworICAg
IGlmIChpc0luUGFzc3dvcmRGaWVsZCkgeworICAgICAgICBpZiAoIW1faW5TZWN1cmVJbnB1dFN0
YXRlKQorICAgICAgICAgICAgRW5hYmxlU2VjdXJlRXZlbnRJbnB1dCgpOworICAgICAgICBzdGF0
aWMgTlNBcnJheSAqcm9tYW5JbnB1dFNvdXJjZXMgPSBbW05TQXJyYXkgYWxsb2NdIGluaXRXaXRo
T2JqZWN0czomTlNBbGxSb21hbklucHV0U291cmNlc0xvY2FsZUlkZW50aWZpZXIgY291bnQ6MV07
CisgICAgICAgIExPRyhUZXh0SW5wdXQsICItPiBzZXRBbGxvd2VkSW5wdXRTb3VyY2VMb2NhbGVz
OnJvbWFuSW5wdXRTb3VyY2VzIik7CisgICAgICAgIFtjb250ZXh0IHNldEFsbG93ZWRJbnB1dFNv
dXJjZUxvY2FsZXM6cm9tYW5JbnB1dFNvdXJjZXNdOworICAgIH0gZWxzZSB7CisgICAgICAgIGlm
IChtX2luU2VjdXJlSW5wdXRTdGF0ZSkKKyAgICAgICAgICAgIERpc2FibGVTZWN1cmVFdmVudElu
cHV0KCk7CisgICAgICAgIExPRyhUZXh0SW5wdXQsICItPiBzZXRBbGxvd2VkSW5wdXRTb3VyY2VM
b2NhbGVzOm5pbCIpOworICAgICAgICBbY29udGV4dCBzZXRBbGxvd2VkSW5wdXRTb3VyY2VMb2Nh
bGVzOm5pbF07CisgICAgfQorICAgIG1faW5TZWN1cmVJbnB1dFN0YXRlID0gaXNJblBhc3N3b3Jk
RmllbGQ7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnJlc2V0U2VjdXJlSW5wdXRTdGF0ZSgpCit7
CisgICAgaWYgKG1faW5TZWN1cmVJbnB1dFN0YXRlKSB7CisgICAgICAgIERpc2FibGVTZWN1cmVF
dmVudElucHV0KCk7CisgICAgICAgIG1faW5TZWN1cmVJbnB1dFN0YXRlID0gZmFsc2U7CisgICAg
fQorfQorCit2b2lkIFdlYlZpZXdJbXBsOjpub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRl
ZENvbXBvc2l0aW9uKCkKK3sKKyAgICAvLyA8cmRhcjovL3Byb2JsZW0vOTM1OTA1NT46IC1kaXNj
YXJkTWFya2VkVGV4dCBjYW4gb25seSBiZSBjYWxsZWQgZm9yIGFjdGl2ZSBjb250ZXh0cy4KKyAg
ICAvLyBGSVhNRTogV2UgZmFpbCB0byBldmVyIG5vdGlmeSB0aGUgaW5wdXQgY29udGV4dCBpZiBz
b21ldGhpbmcgKGUuZy4gYSBuYXZpZ2F0aW9uKSBoYXBwZW5zIHdoaWxlIHRoZSB3aW5kb3cgaXMg
bm90IGtleS4KKyAgICAvLyBUaGlzIGlzIG5vdCBhIHByb2JsZW0gd2hlbiB0aGUgd2luZG93IGlz
IGtleSwgYmVjYXVzZSB3ZSBkaXNjYXJkIG1hcmtlZCB0ZXh0IG9uIHJlc2lnbmluZyBmaXJzdCBy
ZXNwb25kZXIuCisgICAgaWYgKCFbW21fdmlldyB3aW5kb3ddIGlzS2V5V2luZG93XSB8fCBtX3Zp
ZXcgIT0gW1ttX3ZpZXcgd2luZG93XSBmaXJzdFJlc3BvbmRlcl0pCisgICAgICAgIHJldHVybjsK
KworICAgIExPRyhUZXh0SW5wdXQsICItPiBkaXNjYXJkTWFya2VkVGV4dCIpOworCisgICAgW1tt
X3ZpZXcgX3N1cGVySW5wdXRDb250ZXh0XSBkaXNjYXJkTWFya2VkVGV4dF07IC8vIEluZm9ybSB0
aGUgaW5wdXQgbWV0aG9kIHRoYXQgd2Ugd29uJ3QgaGF2ZSBhbiBpbmxpbmUgaW5wdXQgYXJlYSBk
ZXNwaXRlIGhhdmluZyBiZWVuIGFza2VkIHRvLgorfQorCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5f
QVBJKQorYm9vbCBXZWJWaWV3SW1wbDo6aGFzRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKSBj
b25zdAoreworICAgIHJldHVybiAhIW1fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXI7Cit9CisK
K1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgKldlYlZpZXdJbXBsOjpmdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlcigpCit7CisgICAgaWYgKCFtX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVy
KQorICAgICAgICBtX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyID0gYWRvcHROUyhbW1dLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoV2luZG93OmNyZWF0ZUZ1bGxT
Y3JlZW5XaW5kb3coKSB3ZWJWaWV3Om1fdmlldyBwYWdlOm1fcGFnZV0pOworCisgICAgcmV0dXJu
IG1fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuZ2V0KCk7Cit9CisKK3ZvaWQgV2ViVmlld0lt
cGw6OmNsb3NlRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKQoreworICAgIGlmICghbV9mdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworCisgICAgW21fZnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIgY2xvc2VdOworICAgIG1fZnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIgPSBudWxscHRyOworfQorI2VuZGlmCisKK05TVmlldyAqV2ViVmlld0ltcGw6OmZ1bGxT
Y3JlZW5QbGFjZWhvbGRlclZpZXcoKQoreworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAg
ICBpZiAobV9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciAmJiBbbV9mdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlciBpc0Z1bGxTY3JlZW5dKQorICAgICAgICByZXR1cm4gW21fZnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXIgd2ViVmlld1BsYWNlaG9sZGVyXTsKKyNlbmRpZgorICAgIHJldHVybiBu
aWw7Cit9CisKK05TV2luZG93ICpXZWJWaWV3SW1wbDo6Y3JlYXRlRnVsbFNjcmVlbldpbmRvdygp
Cit7CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIHJldHVybiBbW1tXZWJDb3JlRnVs
bFNjcmVlbldpbmRvdyBhbGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpbW05TU2NyZWVuIG1haW5T
Y3JlZW5dIGZyYW1lXSBzdHlsZU1hc2s6KE5TQm9yZGVybGVzc1dpbmRvd01hc2sgfCBOU1Jlc2l6
YWJsZVdpbmRvd01hc2spIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10g
YXV0b3JlbGVhc2VdOworI2Vsc2UKKyAgICByZXR1cm4gbmlsOworI2VuZGlmCit9CisKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggNDczZjJjMzk4Mzhl
YTAyY2U5YWE0NWNiYzQ1NGNjNGY1N2JlZDk4Ny4uNmZkZjIyMGJiYTQwNzc3ZDU0NDEzMDRiYWE4
MjlhZTc5ZTIyZDg5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGwuaApAQCAtNDMsNiArNDMsOCBAQCBjbGFzcyBBbHRlcm5hdGl2ZVRleHRVSUNvbnRy
b2xsZXI7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBXZWJWaWV3SW1wbDsKKwogY2xh
c3MgUGFnZUNsaWVudEltcGwgZmluYWwgOiBwdWJsaWMgUGFnZUNsaWVudAogI2lmIEVOQUJMRShG
VUxMU0NSRUVOX0FQSSkKICAgICAsIHB1YmxpYyBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Q2xp
ZW50CkBAIC01MSw3ICs1MywxMCBAQCBjbGFzcyBQYWdlQ2xpZW50SW1wbCBmaW5hbCA6IHB1Ymxp
YyBQYWdlQ2xpZW50CiBwdWJsaWM6CiAgICAgUGFnZUNsaWVudEltcGwoV0tWaWV3ICosIFdLV2Vi
VmlldyAqKTsKICAgICB2aXJ0dWFsIH5QYWdlQ2xpZW50SW1wbCgpOwotICAgIAorCisgICAgLy8g
RklYTUU6IEV2ZW50dWFsbHkgV2ViVmlld0ltcGwgc2hvdWxkIGJlY29tZSB0aGUgUGFnZUNsaWVu
dC4KKyAgICB2b2lkIHNldEltcGwoV2ViVmlld0ltcGwmIGltcGwpIHsgbV9pbXBsID0gJmltcGw7
IH0KKwogICAgIHZvaWQgdmlld1dpbGxNb3ZlVG9Bbm90aGVyV2luZG93KCk7CiAKIHByaXZhdGU6
CkBAIC0yMTAsNiArMjE1LDcgQEAgcHJpdmF0ZToKIAogICAgIFdLVmlldyAqbV93a1ZpZXc7CiAg
ICAgV0tXZWJWaWV3ICptX3dlYlZpZXc7CisgICAgV2ViVmlld0ltcGwqIG1faW1wbCB7IG51bGxw
dHIgfTsKICAgICBSZXRhaW5QdHI8V0tFZGl0b3JVbmRvVGFyZ2V0T2JqQz4gbV91bmRvVGFyZ2V0
OwogI2lmIFVTRShBVVRPQ09SUkVDVElPTl9QQU5FTCkKICAgICBDb3JyZWN0aW9uUGFuZWwgbV9j
b3JyZWN0aW9uUGFuZWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbC5tbQppbmRleCAyYzk0YjAzNTVkOTk0MDAwMDI2OGIxYzE3MTFiMGY4Y2NmMWQ3Yjdm
Li4yMjU4ZGNhNGUyZWQ3N2E2OWY4NGE3MDgxZmU5NDdiNGJmMjBkODNlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KQEAgLTQ2LDYgKzQ2LDcg
QEAKICNpbXBvcnQgIldlYkNvbnRleHRNZW51UHJveHlNYWMuaCIKICNpbXBvcnQgIldlYkVkaXRD
b21tYW5kUHJveHkuaCIKICNpbXBvcnQgIldlYlBvcHVwTWVudVByb3h5TWFjLmgiCisjaW1wb3J0
ICJXZWJWaWV3SW1wbC5oIgogI2ltcG9ydCAiV2luZG93U2VydmVyQ29ubmVjdGlvbi5oIgogI2lt
cG9ydCAiX1dLRG93bmxvYWRJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLSGl0VGVzdFJlc3VsdElu
dGVybmFsLmgiCkBAIC0yMTgsNyArMjE5LDEyIEBAIGJvb2wgUGFnZUNsaWVudEltcGw6OmlzVmll
d1dpbmRvd0FjdGl2ZSgpCiAKIGJvb2wgUGFnZUNsaWVudEltcGw6OmlzVmlld0ZvY3VzZWQoKQog
ewotICAgIHJldHVybiBbbV93a1ZpZXcgX2lzRm9jdXNlZF07CisgICAgLy8gRklYTUU6IFRoaXMg
aXMgY2FsbGVkIGZyb20gdGhlIFdlYlBhZ2VQcm94eSBjb25zdHJ1Y3RvciBiZWZvcmUgd2UgaGF2
ZSBhIFdlYlZpZXdJbXBsLgorICAgIC8vIE9uY2UgV2ViVmlld0ltcGwgYW5kIFBhZ2VDbGllbnQg
bWVyZ2UsIHRoaXMgd29uJ3QgYmUgYSBwcm9ibGVtLgorICAgIGlmICghbV9pbXBsKQorICAgICAg
ICByZXR1cm4gTk87CisKKyAgICByZXR1cm4gbV9pbXBsLT5pc0ZvY3VzZWQoKTsKIH0KIAogdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6bWFrZUZpcnN0UmVzcG9uZGVyKCkKQEAgLTMxMCw3ICszMTYsNyBA
QCB2b2lkIFBhZ2VDbGllbnRJbXBsOjp0b29sVGlwQ2hhbmdlZChjb25zdCBTdHJpbmcmIG9sZFRv
b2xUaXAsIGNvbnN0IFN0cmluZyYgbmV3VAogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDb21t
aXRMb2FkRm9yTWFpbkZyYW1lKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGJvb2wgdXNlQ3VzdG9t
Q29udGVudFByb3ZpZGVyKQogewotICAgIFttX3drVmlldyBfZGlkQ29tbWl0TG9hZEZvck1haW5G
cmFtZV07CisgICAgbV9pbXBsLT51cGRhdGVTdXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCk7
CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpbmlzaExvYWRpbmdEYXRhRm9yQ3VzdG9t
Q29udGVudFByb3ZpZGVyKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkRmlsZW5hbWUsIGNvbnN0IElQ
Qzo6RGF0YVJlZmVyZW5jZSYgZGF0YVJlZmVyZW5jZSkKQEAgLTQzMiwxNyArNDM4LDE3IEBAIHZv
aWQgUGFnZUNsaWVudEltcGw6OnNldFByb21pc2VkRGF0YUZvckF0dGFjaG1lbnQoY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkTmFtZSwKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6dXBkYXRlU2VjdXJl
SW5wdXRTdGF0ZSgpCiB7Ci0gICAgW21fd2tWaWV3IF91cGRhdGVTZWN1cmVJbnB1dFN0YXRlXTsK
KyAgICBtX2ltcGwtPnVwZGF0ZVNlY3VyZUlucHV0U3RhdGUoKTsKIH0KIAogdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6cmVzZXRTZWN1cmVJbnB1dFN0YXRlKCkKIHsKLSAgICBbbV93a1ZpZXcgX3Jlc2V0
U2VjdXJlSW5wdXRTdGF0ZV07CisgICAgbV9pbXBsLT5yZXNldFNlY3VyZUlucHV0U3RhdGUoKTsK
IH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6bm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJk
ZWRDb21wb3NpdGlvbigpCiB7Ci0gICAgW21fd2tWaWV3IF9ub3RpZnlJbnB1dENvbnRleHRBYm91
dERpc2NhcmRlZENvbXBvc2l0aW9uXTsKKyAgICBtX2ltcGwtPm5vdGlmeUlucHV0Q29udGV4dEFi
b3V0RGlzY2FyZGVkQ29tcG9zaXRpb24oKTsKIH0KIAogI2lmIFBMQVRGT1JNKE1BQykgJiYgIVVT
RShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKQEAgLTcxNSwxMyArNzIxLDEzIEBAIHZvaWQgUGFn
ZUNsaWVudEltcGw6OmV4aXRGdWxsU2NyZWVuKCkKIHZvaWQgUGFnZUNsaWVudEltcGw6OmJlZ2Fu
RW50ZXJGdWxsU2NyZWVuKGNvbnN0IEludFJlY3QmIGluaXRpYWxGcmFtZSwgY29uc3QgSW50UmVj
dCYgZmluYWxGcmFtZSkKIHsKICAgICBbbV93a1ZpZXcuX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyIGJlZ2FuRW50ZXJGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTppbml0aWFsRnJhbWUgZmlu
YWxGcmFtZTpmaW5hbEZyYW1lXTsKLSAgICBbbV93a1ZpZXcgX3VwZGF0ZVN1cHBvcnRzQXJiaXRy
YXJ5TGF5b3V0TW9kZXNdOworICAgIG1faW1wbC0+dXBkYXRlU3VwcG9ydHNBcmJpdHJhcnlMYXlv
dXRNb2RlcygpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpiZWdhbkV4aXRGdWxsU2NyZWVu
KGNvbnN0IEludFJlY3QmIGluaXRpYWxGcmFtZSwgY29uc3QgSW50UmVjdCYgZmluYWxGcmFtZSkK
IHsKICAgICBbbV93a1ZpZXcuX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGJlZ2FuRXhpdEZ1
bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmluaXRpYWxGcmFtZSBmaW5hbEZyYW1lOmZpbmFsRnJh
bWVdOwotICAgIFttX3drVmlldyBfdXBkYXRlU3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2Rlc107
CisgICAgbV9pbXBsLT51cGRhdGVTdXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCk7CiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oCmlu
ZGV4IGM2NjMwMDI3ZWJkNGNiM2I3ZGQzNDRkYjc5ZmJmZTAwYjJhNjRjMjUuLjU5NjNkM2YzZDZj
MTc4NGUwNTQ1Yjc2YzU2N2FhNjAyZWMyNzU4NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oCkBA
IC0zMCw2ICszMCw3IEBACiAKIG5hbWVzcGFjZSBXZWJLaXQgeyAKIGNsYXNzIExheWVyVHJlZUNv
bnRleHQ7CitjbGFzcyBXZWJQYWdlUHJveHk7CiB9CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAg
LTQ0LDcgKzQ1LDggQEAgdHlwZWRlZiBlbnVtIEZ1bGxTY3JlZW5TdGF0ZSA6IE5TSW50ZWdlciBG
dWxsU2NyZWVuU3RhdGU7CiAKIEBpbnRlcmZhY2UgV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxl
ciA6IE5TV2luZG93Q29udHJvbGxlcjxOU1dpbmRvd0RlbGVnYXRlPiB7CiBAcHJpdmF0ZQotICAg
IFdLVmlldyAqX3dlYlZpZXc7IC8vIENhbm5vdCBiZSByZXRhaW5lZCwgc2VlIDxyZGFyOi8vcHJv
YmxlbS8xNDg4NDY2Nj4uCisgICAgTlNWaWV3ICpfd2ViVmlldzsgLy8gQ2Fubm90IGJlIHJldGFp
bmVkLCBzZWUgPHJkYXI6Ly9wcm9ibGVtLzE0ODg0NjY2Pi4KKyAgICBXZWJLaXQ6OldlYlBhZ2VQ
cm94eSogX3BhZ2U7CiAgICAgUmV0YWluUHRyPFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJW
aWV3PiBfd2ViVmlld1BsYWNlaG9sZGVyOwogICAgIFJldGFpblB0cjxOU1ZpZXc+IF9jbGlwVmll
dzsKICAgICBOU1JlY3QgX2luaXRpYWxGcmFtZTsKQEAgLTYwLDcgKzYyLDcgQEAgdHlwZWRlZiBl
bnVtIEZ1bGxTY3JlZW5TdGF0ZSA6IE5TSW50ZWdlciBGdWxsU2NyZWVuU3RhdGU7CiBAcHJvcGVy
dHkgKHJlYWRvbmx5KSBOU1JlY3QgaW5pdGlhbEZyYW1lOwogQHByb3BlcnR5IChyZWFkb25seSkg
TlNSZWN0IGZpbmFsRnJhbWU7CiAKLS0gKGlkKWluaXRXaXRoV2luZG93OihOU1dpbmRvdyAqKXdp
bmRvdyB3ZWJWaWV3OihXS1ZpZXcgKil3ZWJWaWV3OworLSAoaWQpaW5pdFdpdGhXaW5kb3c6KE5T
V2luZG93ICopd2luZG93IHdlYlZpZXc6KE5TVmlldyAqKXdlYlZpZXcgcGFnZTooV2ViS2l0OjpX
ZWJQYWdlUHJveHkmKXBhZ2U7CiAKIC0gKFdlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3
Kil3ZWJWaWV3UGxhY2Vob2xkZXI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5tbQppbmRleCA4NjI4
YTlkNGU1Yjk4ZDk3NDRlNTZlNjJmM2QzNDdmYmJjMDIzMDBlLi4yNDBkNjEwZjI0MWVmOTc3Y2My
NDI0ZmE5ODYyZDdhZjJkM2JiMGUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLm1tCkBAIC02Myw5
ICs2Myw4IEBAIGVudW0gRnVsbFNjcmVlblN0YXRlIDogTlNJbnRlZ2VyIHsKIC0gKHZvaWQpZW50
ZXJGdWxsU2NyZWVuTW9kZTooaWQpc2VuZGVyOwogQGVuZAogCi1AaW50ZXJmYWNlIFdLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIoUHJpdmF0ZSk8TlNBbmltYXRpb25EZWxlZ2F0ZT4KK0BpbnRl
cmZhY2UgV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciAoUHJpdmF0ZSkgPE5TQW5pbWF0aW9u
RGVsZWdhdGU+CiAtICh2b2lkKV9yZXBsYWNlVmlldzooTlNWaWV3Kil2aWV3IHdpdGg6KE5TVmll
dyopb3RoZXJWaWV3OwotLSAoV2ViUGFnZVByb3h5KilfcGFnZTsKIC0gKFdlYkZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHkqKV9tYW5hZ2VyOwogLSAodm9pZClfc3RhcnRFbnRlckZ1bGxTY3JlZW5Bbmlt
YXRpb25XaXRoRHVyYXRpb246KE5TVGltZUludGVydmFsKWR1cmF0aW9uOwogLSAodm9pZClfc3Rh
cnRFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjooTlNUaW1lSW50ZXJ2YWwpZHVy
YXRpb247CkBAIC04Niw3ICs4NSw3IEBAIHN0YXRpYyB2b2lkIG1ha2VSZXNwb25kZXJGaXJzdFJl
c3BvbmRlcklmRGVzY2VuZGFudE9mVmlldyhOU1dpbmRvdyAqd2luZG93LCBOU1JlCiAKICNwcmFn
bWEgbWFyayAtCiAjcHJhZ21hIG1hcmsgSW5pdGlhbGl6YXRpb24KLS0gKGlkKWluaXRXaXRoV2lu
ZG93OihOU1dpbmRvdyAqKXdpbmRvdyB3ZWJWaWV3OihXS1ZpZXcgKil3ZWJWaWV3CistIChpZClp
bml0V2l0aFdpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cgd2ViVmlldzooTlNWaWV3ICopd2ViVmll
dyBwYWdlOihXZWJQYWdlUHJveHkmKXBhZ2UKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRo
V2luZG93OndpbmRvd107CiAgICAgaWYgKCFzZWxmKQpAQCAtMTA2LDYgKzEwNSw3IEBAIHN0YXRp
YyB2b2lkIG1ha2VSZXNwb25kZXJGaXJzdFJlc3BvbmRlcklmRGVzY2VuZGFudE9mVmlldyhOU1dp
bmRvdyAqd2luZG93LCBOU1JlCiAKICAgICBbc2VsZiB3aW5kb3dEaWRMb2FkXTsKICAgICBfd2Vi
VmlldyA9IHdlYlZpZXc7CisgICAgX3BhZ2UgPSAmcGFnZTsKICAgICAKICAgICByZXR1cm4gc2Vs
ZjsKIH0KQEAgLTI0MSw3ICsyNDEsNyBAQCBzdGF0aWMgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNy
ZWF0ZUltYWdlV2l0aENvcGllZERhdGEoQ0dJbWFnZVJlZiBzb3VyY2VJbWFnZSkKICAgICAvLyB1
bm5lY2Vzc2FyeSBpbiB0aGUgZnVsbC1zY3JlZW4gYW5pbWF0aW9uIGNhc2UsIGFuZCBjYW4gY2F1
c2UgYnVnczsgc2VlCiAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTg4OTQwIGFuZCBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODgz
NzQKICAgICAvLyBXZSB3aWxsIHJlc3VtZSB0aGUgbm9ybWFsIGJlaGF2aW9yIGluIF9zdGFydEVu
dGVyRnVsbFNjcmVlbkFuaW1hdGlvbldpdGhEdXJhdGlvbjoKLSAgICBbX3dlYlZpZXcgX3NldFN1
cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXM6WUVTXTsKKyAgICBfcGFnZS0+c2V0U3VwcHJlc3NWaXNp
YmlsaXR5VXBkYXRlcyh0cnVlKTsKIAogICAgIC8vIFN3YXAgdGhlIHdlYlZpZXcgcGxhY2Vob2xk
ZXIgaW50byBwbGFjZS4KICAgICBpZiAoIV93ZWJWaWV3UGxhY2Vob2xkZXIpIHsKQEAgLTI1Mywx
NCArMjUzLDE0IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY3JlYXRlSW1hZ2VXaXRo
Q29waWVkRGF0YShDR0ltYWdlUmVmIHNvdXJjZUltYWdlKQogICAgIFtzZWxmIF9yZXBsYWNlVmll
dzpfd2ViVmlldyB3aXRoOl93ZWJWaWV3UGxhY2Vob2xkZXIuZ2V0KCldOwogICAgIAogICAgIC8v
IFRoZW4gaW5zZXJ0IHRoZSBXZWJWaWV3IGludG8gdGhlIGZ1bGwgc2NyZWVuIHdpbmRvdwotICAg
IE5TVmlldyogY29udGVudFZpZXcgPSBbW3NlbGYgd2luZG93XSBjb250ZW50Vmlld107CisgICAg
TlNWaWV3ICpjb250ZW50VmlldyA9IFtbc2VsZiB3aW5kb3ddIGNvbnRlbnRWaWV3XTsKICAgICBb
X2NsaXBWaWV3IGFkZFN1YnZpZXc6X3dlYlZpZXcgcG9zaXRpb25lZDpOU1dpbmRvd0JlbG93IHJl
bGF0aXZlVG86bmlsXTsKICAgICBbX3dlYlZpZXcgc2V0RnJhbWU6W2NvbnRlbnRWaWV3IGJvdW5k
c11dOwogCiAgICAgbWFrZVJlc3BvbmRlckZpcnN0UmVzcG9uZGVySWZEZXNjZW5kYW50T2ZWaWV3
KHNlbGYud2luZG93LCB3ZWJXaW5kb3dGaXJzdFJlc3BvbmRlciwgX3dlYlZpZXcpOwogCi0gICAg
X3NhdmVkU2NhbGUgPSBbc2VsZiBfcGFnZV0tPnBhZ2VTY2FsZUZhY3RvcigpOwotICAgIFtzZWxm
IF9wYWdlXS0+c2NhbGVQYWdlKDEsIEludFBvaW50KCkpOworICAgIF9zYXZlZFNjYWxlID0gX3Bh
Z2UtPnBhZ2VTY2FsZUZhY3RvcigpOworICAgIF9wYWdlLT5zY2FsZVBhZ2UoMSwgSW50UG9pbnQo
KSk7CiAgICAgW3NlbGYgX21hbmFnZXJdLT5zZXRBbmltYXRpbmdGdWxsU2NyZWVuKHRydWUpOwog
ICAgIFtzZWxmIF9tYW5hZ2VyXS0+d2lsbEVudGVyRnVsbFNjcmVlbigpOwogfQpAQCAtMzA5LDE0
ICszMDksMTQgQEAgc3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0ODAgKyAyMCAr
IDIwOyAvLyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKICAgICAgICAgX2Z1bGxTY3JlZW5T
dGF0ZSA9IE5vdEluRnVsbFNjcmVlbjsKIAogICAgICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRv
ZGlzcGxheTpZRVNdOwotICAgICAgICBbX3dlYlZpZXcgX3NldFN1cHByZXNzVmlzaWJpbGl0eVVw
ZGF0ZXM6Tk9dOworICAgICAgICBfcGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhm
YWxzZSk7CiAKICAgICAgICAgTlNSZXNwb25kZXIgKmZpcnN0UmVzcG9uZGVyID0gW1tzZWxmIHdp
bmRvd10gZmlyc3RSZXNwb25kZXJdOwogICAgICAgICBbc2VsZiBfcmVwbGFjZVZpZXc6X3dlYlZp
ZXdQbGFjZWhvbGRlci5nZXQoKSB3aXRoOl93ZWJWaWV3XTsKICAgICAgICAgbWFrZVJlc3BvbmRl
ckZpcnN0UmVzcG9uZGVySWZEZXNjZW5kYW50T2ZWaWV3KF93ZWJWaWV3LndpbmRvdywgZmlyc3RS
ZXNwb25kZXIsIF93ZWJWaWV3KTsKICAgICAgICAgW1tfd2ViVmlldyB3aW5kb3ddIG1ha2VLZXlB
bmRPcmRlckZyb250OnNlbGZdOwogCi0gICAgICAgIFtzZWxmIF9wYWdlXS0+c2NhbGVQYWdlKF9z
YXZlZFNjYWxlLCBJbnRQb2ludCgpKTsKKyAgICAgICAgX3BhZ2UtPnNjYWxlUGFnZShfc2F2ZWRT
Y2FsZSwgSW50UG9pbnQoKSk7CiAgICAgICAgIFtzZWxmIF9tYW5hZ2VyXS0+cmVzdG9yZVNjcm9s
bFBvc2l0aW9uKCk7CiAgICAgICAgIFtzZWxmIF9tYW5hZ2VyXS0+ZGlkRXhpdEZ1bGxTY3JlZW4o
KTsKICAgICAgICAgW3NlbGYgX21hbmFnZXJdLT5zZXRBbmltYXRpbmdGdWxsU2NyZWVuKGZhbHNl
KTsKQEAgLTM0NCw3ICszNDQsNyBAQCBzdGF0aWMgY29uc3QgZmxvYXQgbWluVmlkZW9XaWR0aCA9
IDQ4MCArIDIwICsgMjA7IC8vIE5vdGU6IEtlZXAgaW4gc3luYyB3aXRoIG1lZAogCiAgICAgLy8g
U2VlIHRoZSByZWxhdGVkIGNvbW1lbnQgaW4gZW50ZXJGdWxsU2NyZWVuOgogICAgIC8vIFdlIHdp
bGwgcmVzdW1lIHRoZSBub3JtYWwgYmVoYXZpb3IgaW4gX3N0YXJ0RXhpdEZ1bGxTY3JlZW5Bbmlt
YXRpb25XaXRoRHVyYXRpb246Ci0gICAgW193ZWJWaWV3IF9zZXRTdXBwcmVzc1Zpc2liaWxpdHlV
cGRhdGVzOllFU107CisgICAgX3BhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXModHJ1
ZSk7CiAgICAgW193ZWJWaWV3UGxhY2Vob2xkZXIgc2V0VGFyZ2V0Om5pbF07CiAKICAgICBbc2Vs
ZiBfbWFuYWdlcl0tPnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4odHJ1ZSk7CkBAIC0zNzksNyArMzc5
LDcgQEAgc3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0ODAgKyAyMCArIDIwOyAv
LyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKIAogICAgIC8vIFNjcmVlbiB1cGRhdGVzIHRv
IGJlIHJlLWVuYWJsZWQgaW4gY29tcGxldGVGaW5pc2hFeGl0RnVsbFNjcmVlbkFuaW1hdGlvbkFm
dGVyUmVwYWludC4KICAgICBOU0Rpc2FibGVTY3JlZW5VcGRhdGVzKCk7Ci0gICAgW193ZWJWaWV3
IF9zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzOllFU107CisgICAgX3BhZ2UtPnNldFN1cHBy
ZXNzVmlzaWJpbGl0eVVwZGF0ZXModHJ1ZSk7CiAgICAgW1tzZWxmIHdpbmRvd10gb3JkZXJPdXQ6
c2VsZl07CiAgICAgTlNWaWV3ICpjb250ZW50VmlldyA9IFtbc2VsZiB3aW5kb3ddIGNvbnRlbnRW
aWV3XTsKICAgICBjb250ZW50Vmlldy5sYXllci5oaWRkZW4gPSBZRVM7CkBAIC0zOTQsNyArMzk0
LDcgQEAgc3RhdGljIGNvbnN0IGZsb2F0IG1pblZpZGVvV2lkdGggPSA0ODAgKyAyMCArIDIwOyAv
LyBOb3RlOiBLZWVwIGluIHN5bmMgd2l0aCBtZWQKICAgICAvLyBUaGVzZSBtZXNzYWdlcyBtdXN0
IGJlIHNlbnQgYWZ0ZXIgdGhlIHN3YXAgb3IgZmxhc2hpbmcgd2lsbCBvY2N1ciBkdXJpbmcgZm9y
Y2VSZXBhaW50OgogICAgIFtzZWxmIF9tYW5hZ2VyXS0+ZGlkRXhpdEZ1bGxTY3JlZW4oKTsKICAg
ICBbc2VsZiBfbWFuYWdlcl0tPnNldEFuaW1hdGluZ0Z1bGxTY3JlZW4oZmFsc2UpOwotICAgIFtz
ZWxmIF9wYWdlXS0+c2NhbGVQYWdlKF9zYXZlZFNjYWxlLCBJbnRQb2ludCgpKTsKKyAgICBfcGFn
ZS0+c2NhbGVQYWdlKF9zYXZlZFNjYWxlLCBJbnRQb2ludCgpKTsKICAgICBbc2VsZiBfbWFuYWdl
cl0tPnJlc3RvcmVTY3JvbGxQb3NpdGlvbigpOwogCiAgICAgaWYgKF9yZXBhaW50Q2FsbGJhY2sp
IHsKQEAgLTQwNiw3ICs0MDYsNyBAQCBzdGF0aWMgY29uc3QgZmxvYXQgbWluVmlkZW9XaWR0aCA9
IDQ4MCArIDIwICsgMjA7IC8vIE5vdGU6IEtlZXAgaW4gc3luYyB3aXRoIG1lZAogICAgIF9yZXBh
aW50Q2FsbGJhY2sgPSBWb2lkQ2FsbGJhY2s6OmNyZWF0ZShbc2VsZl0oV2ViS2l0OjpDYWxsYmFj
a0Jhc2U6OkVycm9yKSB7CiAgICAgICAgIFtzZWxmIGNvbXBsZXRlRmluaXNoRXhpdEZ1bGxTY3Jl
ZW5BbmltYXRpb25BZnRlclJlcGFpbnRdOwogICAgIH0pOwotICAgIFtzZWxmIF9wYWdlXS0+Zm9y
Y2VSZXBhaW50KF9yZXBhaW50Q2FsbGJhY2spOworICAgIF9wYWdlLT5mb3JjZVJlcGFpbnQoX3Jl
cGFpbnRDYWxsYmFjayk7CiB9CiAKIC0gKHZvaWQpY29tcGxldGVGaW5pc2hFeGl0RnVsbFNjcmVl
bkFuaW1hdGlvbkFmdGVyUmVwYWludApAQCAtNDE0LDcgKzQxNCw3IEBAIHN0YXRpYyBjb25zdCBm
bG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsgMjAgKyAyMDsgLy8gTm90ZTogS2VlcCBpbiBzeW5j
IHdpdGggbWVkCiAgICAgX3JlcGFpbnRDYWxsYmFjayA9IG51bGxwdHI7CiAgICAgW1tfd2ViVmll
dyB3aW5kb3ddIHNldEF1dG9kaXNwbGF5OllFU107CiAgICAgW1tfd2ViVmlldyB3aW5kb3ddIGRp
c3BsYXlJZk5lZWRlZF07Ci0gICAgW193ZWJWaWV3IF9zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRh
dGVzOk5PXTsKKyAgICBfcGFnZS0+c2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlcyhmYWxzZSk7
CiAgICAgTlNFbmFibGVTY3JlZW5VcGRhdGVzKCk7CiB9CiAKQEAgLTQ4NywxNyArNDg3LDExIEBA
IHN0YXRpYyBjb25zdCBmbG9hdCBtaW5WaWRlb1dpZHRoID0gNDgwICsgMjAgKyAyMDsgLy8gTm90
ZTogS2VlcCBpbiBzeW5jIHdpdGggbWVkCiAjcHJhZ21hIG1hcmsgLQogI3ByYWdtYSBtYXJrIElu
dGVybmFsIEludGVyZmFjZQogCi0tIChXZWJQYWdlUHJveHkqKV9wYWdlCi17Ci0gICAgcmV0dXJu
IHRvSW1wbChbX3dlYlZpZXcgcGFnZVJlZl0pOwotfQotCiAtIChXZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5KilfbWFuYWdlcgogewotICAgIFdlYlBhZ2VQcm94eSogd2ViUGFnZSA9IFtzZWxmIF9w
YWdlXTsKLSAgICBpZiAoIXdlYlBhZ2UpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiB3
ZWJQYWdlLT5mdWxsU2NyZWVuTWFuYWdlcigpOworICAgIGlmICghX3BhZ2UpCisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIHJldHVybiBfcGFnZS0+ZnVsbFNjcmVlbk1hbmFnZXIoKTsKIH0K
IAogLSAodm9pZClfcmVwbGFjZVZpZXc6KE5TVmlldyopdmlldyB3aXRoOihOU1ZpZXcqKW90aGVy
VmlldwpAQCAtNjA0LDcgKzU5OCw3IEBAIHN0YXRpYyBDQUFuaW1hdGlvbiAqZmFkZUFuaW1hdGlv
bihDRlRpbWVJbnRlcnZhbCBkdXJhdGlvbiwgQW5pbWF0aW9uRGlyZWN0aW9uIGRpCiAgICAgW3dp
bmRvdyBtYWtlS2V5QW5kT3JkZXJGcm9udDpzZWxmXTsKICAgICBbd2luZG93IHNldENvbGxlY3Rp
b25CZWhhdmlvcjpiZWhhdmlvcl07CiAKLSAgICBbX3dlYlZpZXcgX3NldFN1cHByZXNzVmlzaWJp
bGl0eVVwZGF0ZXM6Tk9dOworICAgIF9wYWdlLT5zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVz
KGZhbHNlKTsKICAgICBbW3NlbGYgd2luZG93XSBzZXRBdXRvZGlzcGxheTpZRVNdOwogICAgIFtb
c2VsZiB3aW5kb3ddIGRpc3BsYXlJZk5lZWRlZF07CiAgICAgTlNFbmFibGVTY3JlZW5VcGRhdGVz
KCk7CkBAIC02MjcsNyArNjIxLDcgQEAgc3RhdGljIENBQW5pbWF0aW9uICpmYWRlQW5pbWF0aW9u
KENGVGltZUludGVydmFsIGR1cmF0aW9uLCBBbmltYXRpb25EaXJlY3Rpb24gZGkKICAgICBjb250
ZW50Vmlldy5sYXllci5oaWRkZW4gPSBOTzsKICAgICBbY29udGVudFZpZXcubGF5ZXIgYWRkQW5p
bWF0aW9uOmZhZGVBbmltYXRpb24oZHVyYXRpb24sIEFuaW1hdGVPdXQpIGZvcktleTpAImZ1bGxz
Y3JlZW4iXTsKIAotICAgIFtfd2ViVmlldyBfc2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlczpO
T107CisgICAgX3BhZ2UtPnNldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMoZmFsc2UpOwogICAg
IFtbc2VsZiB3aW5kb3ddIHNldEF1dG9kaXNwbGF5OllFU107CiAgICAgW1tzZWxmIHdpbmRvd10g
ZGlzcGxheUlmTmVlZGVkXTsKICAgICBOU0VuYWJsZVNjcmVlblVwZGF0ZXMoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaAppbmRl
eCA3YjMyYjI2OWE4YWU3YTAyMTJjODNlNWIxYjEwMzIyNjQwYzg1YzRmLi4yZGY3ZTA3ZGI5ZWJi
Y2Y3YTExMTEyZTU2MjcwZTQwNjdjNTg4OTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVneS5oCkBAIC0zMiwyMiArMzIsMjQgQEAK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJQYWdlUHJveHk7CitjbGFzcyBXZWJWaWV3
SW1wbDsKIH0KIAotQGNsYXNzIFdLVmlldzsKK0BjbGFzcyBOU1ZpZXc7CiAKIEBpbnRlcmZhY2Ug
V0tWaWV3TGF5b3V0U3RyYXRlZ3kgOiBOU09iamVjdCB7CiBAcGFja2FnZQotICAgIFdlYktpdDo6
V2ViUGFnZVByb3h5ICpfcGFnZTsKLSAgICBXS1ZpZXcgKl93a1ZpZXc7CisgICAgV2ViS2l0OjpX
ZWJQYWdlUHJveHkqIF9wYWdlOworICAgIFdlYktpdDo6V2ViVmlld0ltcGwqIF93ZWJWaWV3SW1w
bDsKKyAgICBOU1ZpZXcgKl92aWV3OwogCiAgICAgV0tMYXlvdXRNb2RlIF9sYXlvdXRNb2RlOwog
ICAgIHVuc2lnbmVkIF9mcmFtZVNpemVVcGRhdGVzRGlzYWJsZWRDb3VudDsKIH0KIAotKyAoaW5z
dGFuY2V0eXBlKWxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5Jilw
YWdlIHZpZXc6KFdLVmlldyAqKXdrVmlldyBtb2RlOihXS0xheW91dE1vZGUpbW9kZTsKKysgKGlu
c3RhbmNldHlwZSlsYXlvdXRTdHJhdGVneVdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYp
cGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJil3
ZWJWaWV3SW1wbCBtb2RlOihXS0xheW91dE1vZGUpbW9kZTsKIAotLSAodm9pZCl3aWxsRGVzdHJv
eVZpZXc6KFdLVmlldyAqKXZpZXc7CistICh2b2lkKWludmFsaWRhdGU7CiAKIC0gKHZvaWQpZW5h
YmxlRnJhbWVTaXplVXBkYXRlczsKIC0gKHZvaWQpZGlzYWJsZUZyYW1lU2l6ZVVwZGF0ZXM7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0cmF0
ZWd5Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS1ZpZXdMYXlvdXRTdHJhdGVn
eS5tbQppbmRleCA0OWVlYTZlZjU2MGVjNTJkZjJlOGNhN2JjMjk5MjVlMDhjYThkNWMwLi43NTMz
MGIwNDIyMWYwYzNkOTc2NGZhOThlZmE1YTg5MTg1MzlhN2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLVmlld0xheW91dFN0cmF0ZWd5Lm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tWaWV3TGF5b3V0U3RyYXRlZ3kubW0KQEAgLTI4LDgg
KzI4LDggQEAKIAogI2lmIFBMQVRGT1JNKE1BQykKIAotI2ltcG9ydCAiV0tWaWV3SW50ZXJuYWwu
aCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgorI2ltcG9ydCAiV2ViVmlld0ltcGwuaCIKICNp
bXBvcnQgPFdlYkNvcmUvTWFjaFNlbmRSaWdodC5oPgogI2ltcG9ydCA8V2ViQ29yZS9RdWFydHpD
b3JlU1BJLmg+CiAKQEAgLTUwLDIzICs1MCwyMyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0Owog
CiBAaW1wbGVtZW50YXRpb24gV0tWaWV3TGF5b3V0U3RyYXRlZ3kKIAotKyAoaW5zdGFuY2V0eXBl
KWxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6KFdlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihXS1ZpZXcg
Kil3a1ZpZXcgbW9kZTooV0tMYXlvdXRNb2RlKW1vZGUKKysgKGluc3RhbmNldHlwZSlsYXlvdXRT
dHJhdGVneVdpdGhQYWdlOihXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2
aWV3SW1wbDooV2ViVmlld0ltcGwmKXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2Rl
CiB7CiAgICAgV0tWaWV3TGF5b3V0U3RyYXRlZ3kgKnN0cmF0ZWd5OwogCiAgICAgc3dpdGNoICht
b2RlKSB7CiAgICAgY2FzZSBrV0tMYXlvdXRNb2RlRml4ZWRTaXplOgotICAgICAgICBzdHJhdGVn
eSA9IFtbV0tWaWV3Rml4ZWRTaXplTGF5b3V0U3RyYXRlZ3kgYWxsb2NdIGluaXRXaXRoUGFnZTpw
YWdlIHZpZXc6d2tWaWV3IG1vZGU6bW9kZV07CisgICAgICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdG
aXhlZFNpemVMYXlvdXRTdHJhdGVneSBhbGxvY10gaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3
IHZpZXdJbXBsOndlYlZpZXdJbXBsIG1vZGU6bW9kZV07CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2Uga1dLTGF5b3V0TW9kZUR5bmFtaWNTaXplQ29tcHV0ZWRGcm9tVmlld1NjYWxlOgotICAgICAg
ICBzdHJhdGVneSA9IFtbV0tWaWV3RHluYW1pY1NpemVDb21wdXRlZEZyb21WaWV3U2NhbGVMYXlv
dXRTdHJhdGVneSBhbGxvY10gaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp3a1ZpZXcgbW9kZTptb2Rl
XTsKKyAgICAgICAgc3RyYXRlZ3kgPSBbW1dLVmlld0R5bmFtaWNTaXplQ29tcHV0ZWRGcm9tVmll
d1NjYWxlTGF5b3V0U3RyYXRlZ3kgYWxsb2NdIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6dmlldyB2
aWV3SW1wbDp3ZWJWaWV3SW1wbCBtb2RlOm1vZGVdOwogICAgICAgICBicmVhazsKICAgICBjYXNl
IGtXS0xheW91dE1vZGVEeW5hbWljU2l6ZUNvbXB1dGVkRnJvbU1pbmltdW1Eb2N1bWVudFNpemU6
Ci0gICAgICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdEeW5hbWljU2l6ZUNvbXB1dGVkRnJvbU1pbmlt
dW1Eb2N1bWVudFNpemVMYXlvdXRTdHJhdGVneSBhbGxvY10gaW5pdFdpdGhQYWdlOnBhZ2Ugdmll
dzp3a1ZpZXcgbW9kZTptb2RlXTsKKyAgICAgICAgc3RyYXRlZ3kgPSBbW1dLVmlld0R5bmFtaWNT
aXplQ29tcHV0ZWRGcm9tTWluaW11bURvY3VtZW50U2l6ZUxheW91dFN0cmF0ZWd5IGFsbG9jXSBp
bml0V2l0aFBhZ2U6cGFnZSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwgbW9kZTptb2Rl
XTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBrV0tMYXlvdXRNb2RlVmlld1NpemU6CiAgICAg
ZGVmYXVsdDoKLSAgICAgICAgc3RyYXRlZ3kgPSBbW1dLVmlld1ZpZXdTaXplTGF5b3V0U3RyYXRl
Z3kgYWxsb2NdIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6d2tWaWV3IG1vZGU6bW9kZV07CisgICAg
ICAgIHN0cmF0ZWd5ID0gW1tXS1ZpZXdWaWV3U2l6ZUxheW91dFN0cmF0ZWd5IGFsbG9jXSBpbml0
V2l0aFBhZ2U6cGFnZSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwgbW9kZTptb2RlXTsK
ICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC03NSw3ICs3NSw3IEBAIHVzaW5nIG5hbWVzcGFj
ZSBXZWJLaXQ7CiAgICAgcmV0dXJuIFtzdHJhdGVneSBhdXRvcmVsZWFzZV07CiB9CiAKLS0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihXS1ZpZXcg
Kil3a1ZpZXcgbW9kZTooV0tMYXlvdXRNb2RlKW1vZGUKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0
aFBhZ2U6KFdlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihX
ZWJWaWV3SW1wbCYpd2ViVmlld0ltcGwgbW9kZTooV0tMYXlvdXRNb2RlKW1vZGUKIHsKICAgICBz
ZWxmID0gW3N1cGVyIGluaXRdOwogCkBAIC04MywxNiArODMsMTggQEAgdXNpbmcgbmFtZXNwYWNl
IFdlYktpdDsKICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIF9wYWdlID0gJnBhZ2U7Ci0gICAg
X3drVmlldyA9IHdrVmlldzsKKyAgICBfd2ViVmlld0ltcGwgPSAmd2ViVmlld0ltcGw7CisgICAg
X3ZpZXcgPSB2aWV3OwogICAgIF9sYXlvdXRNb2RlID0gbW9kZTsKIAogICAgIHJldHVybiBzZWxm
OwogfQogCi0tICh2b2lkKXdpbGxEZXN0cm95VmlldzooV0tWaWV3ICopdmlldworLSAodm9pZClp
bnZhbGlkYXRlCiB7CiAgICAgX3BhZ2UgPSBudWxscHRyOwotICAgIF93a1ZpZXcgPSBuaWw7Cisg
ICAgX3dlYlZpZXdJbXBsID0gbnVsbHB0cjsKKyAgICBfdmlldyA9IG5pbDsKIH0KIAogLSAoV0tM
YXlvdXRNb2RlKWxheW91dE1vZGUKQEAgLTE0MCw5ICsxNDIsOSBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwogICAgIGlmIChbc2VsZiBmcmFtZVNpemVVcGRhdGVzRGlzYWJsZWRdKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAoX3drVmlldy5zaG91bGRDbGlwVG9WaXNpYmxlUmVjdCkKLSAg
ICAgICAgW193a1ZpZXcgX3VwZGF0ZVZpZXdFeHBvc2VkUmVjdF07Ci0gICAgW193a1ZpZXcgX3Nl
dERyYXdpbmdBcmVhU2l6ZTpfd2tWaWV3LmZyYW1lLnNpemVdOworICAgIGlmIChfd2ViVmlld0lt
cGwtPmNsaXBzVG9WaXNpYmxlUmVjdCgpKQorICAgICAgICBfd2ViVmlld0ltcGwtPnVwZGF0ZVZp
ZXdFeHBvc2VkUmVjdCgpOworICAgIF93ZWJWaWV3SW1wbC0+c2V0RHJhd2luZ0FyZWFTaXplKE5T
U2l6ZVRvQ0dTaXplKF92aWV3LmZyYW1lLnNpemUpKTsKIH0KIAogLSAodm9pZCl3aWxsQ2hhbmdl
TGF5b3V0U3RyYXRlZ3kKQEAgLTE1Myw5ICsxNTUsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OwogCiBAaW1wbGVtZW50YXRpb24gV0tWaWV3Vmlld1NpemVMYXlvdXRTdHJhdGVneQogCi0tIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooV0tWaWV3
ICopd2tWaWV3IG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlCistIChpbnN0YW5jZXR5cGUpaW5pdFdp
dGhQYWdlOihXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDoo
V2ViVmlld0ltcGwmKXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlCiB7Ci0gICAg
c2VsZiA9IFtzdXBlciBpbml0V2l0aFBhZ2U6cGFnZSB2aWV3OndrVmlldyBtb2RlOm1vZGVdOwor
ICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBsOndl
YlZpZXdJbXBsIG1vZGU6bW9kZV07CiAKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVybiBu
aWw7CkBAIC0xNzMsOSArMTc1LDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogQGltcGxl
bWVudGF0aW9uIFdLVmlld0ZpeGVkU2l6ZUxheW91dFN0cmF0ZWd5CiAKLS0gKGluc3RhbmNldHlw
ZSlpbml0V2l0aFBhZ2U6KFdlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihXS1ZpZXcgKil3a1ZpZXcg
bW9kZTooV0tMYXlvdXRNb2RlKW1vZGUKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdl
YlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihXZWJWaWV3SW1w
bCYpd2ViVmlld0ltcGwgbW9kZTooV0tMYXlvdXRNb2RlKW1vZGUKIHsKLSAgICBzZWxmID0gW3N1
cGVyIGluaXRXaXRoUGFnZTpwYWdlIHZpZXc6d2tWaWV3IG1vZGU6bW9kZV07CisgICAgc2VsZiA9
IFtzdXBlciBpbml0V2l0aFBhZ2U6cGFnZSB2aWV3OnZpZXcgdmlld0ltcGw6d2ViVmlld0ltcGwg
bW9kZTptb2RlXTsKIAogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKQEAgLTE5
Myw5ICsxOTUsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBAaW1wbGVtZW50YXRpb24g
V0tWaWV3RHluYW1pY1NpemVDb21wdXRlZEZyb21WaWV3U2NhbGVMYXlvdXRTdHJhdGVneQogCi0t
IChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooV0tW
aWV3ICopd2tWaWV3IG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlCistIChpbnN0YW5jZXR5cGUpaW5p
dFdpdGhQYWdlOihXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1w
bDooV2ViVmlld0ltcGwmKXdlYlZpZXdJbXBsIG1vZGU6KFdLTGF5b3V0TW9kZSltb2RlCiB7Ci0g
ICAgc2VsZiA9IFtzdXBlciBpbml0V2l0aFBhZ2U6cGFnZSB2aWV3OndrVmlldyBtb2RlOm1vZGVd
OworICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhQYWdlOnBhZ2Ugdmlldzp2aWV3IHZpZXdJbXBs
OndlYlZpZXdJbXBsIG1vZGU6bW9kZV07CiAKICAgICBpZiAoIXNlbGYpCiAgICAgICAgIHJldHVy
biBuaWw7CkBAIC0yMDgsNyArMjEwLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIC0gKHZv
aWQpdXBkYXRlTGF5b3V0CiB7CiAgICAgQ0dGbG9hdCBpbnZlcnNlU2NhbGUgPSAxIC8gX3BhZ2Ut
PnZpZXdTY2FsZUZhY3RvcigpOwotICAgIFtfd2tWaWV3IF9zZXRGaXhlZExheW91dFNpemU6Q0dT
aXplTWFrZShfd2tWaWV3LmZyYW1lLnNpemUud2lkdGggKiBpbnZlcnNlU2NhbGUsIF93a1ZpZXcu
ZnJhbWUuc2l6ZS5oZWlnaHQgKiBpbnZlcnNlU2NhbGUpXTsKKyAgICBfd2ViVmlld0ltcGwtPnNl
dEZpeGVkTGF5b3V0U2l6ZShDR1NpemVNYWtlKF92aWV3LmZyYW1lLnNpemUud2lkdGggKiBpbnZl
cnNlU2NhbGUsIF92aWV3LmZyYW1lLnNpemUuaGVpZ2h0ICogaW52ZXJzZVNjYWxlKSk7CiB9CiAK
IC0gKHZvaWQpZGlkQ2hhbmdlVmlld1NjYWxlCkBAIC0yMjIsNyArMjI0LDcgQEAgdXNpbmcgbmFt
ZXNwYWNlIFdlYktpdDsKIHsKICAgICBbc3VwZXIgZGlkQ2hhbmdlRnJhbWVTaXplXTsKIAotICAg
IGlmIChbX3drVmlldyBmcmFtZVNpemVVcGRhdGVzRGlzYWJsZWRdKQorICAgIGlmIChzZWxmLmZy
YW1lU2l6ZVVwZGF0ZXNEaXNhYmxlZCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgW3NlbGYgdXBk
YXRlTGF5b3V0XTsKQEAgLTIzMiw5ICsyMzQsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0Owog
CiBAaW1wbGVtZW50YXRpb24gV0tWaWV3RHluYW1pY1NpemVDb21wdXRlZEZyb21NaW5pbXVtRG9j
dW1lbnRTaXplTGF5b3V0U3RyYXRlZ3kKIAotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZToo
V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KFdLVmlldyAqKXdrVmlldyBtb2RlOihXS0xheW91dE1v
ZGUpbW9kZQorLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooV2ViUGFnZVByb3h5JilwYWdl
IHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0ltcGw6KFdlYlZpZXdJbXBsJil3ZWJWaWV3SW1wbCBt
b2RlOihXS0xheW91dE1vZGUpbW9kZQogewotICAgIHNlbGYgPSBbc3VwZXIgaW5pdFdpdGhQYWdl
OnBhZ2Ugdmlldzp3a1ZpZXcgbW9kZTptb2RlXTsKKyAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRo
UGFnZTpwYWdlIHZpZXc6dmlldyB2aWV3SW1wbDp3ZWJWaWV3SW1wbCBtb2RlOm1vZGVdOwogCiAg
ICAgaWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdDIv
V2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQwNWRlMWY2MTE4OTBmODFm
MTZjMzE4MjJjMWNiMmZhNmNmOWVkNzQuLmVlNmMwZWFhNjA2NGRiZDRiMzRlODE3ODM1NDhhMTMz
MDI2MTQ2MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKQEAgLTY5Miw2ICs2OTIsOCBAQAogCQkyREY5RUVFRTFBNzg2RUFEMDBCNkNG
QkUgLyogQVBJTmF2aWdhdGlvblJlc3BvbnNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAyREY5RUVFRDFBNzg2RUFEMDBCNkNGQkUgLyogQVBJTmF2aWdh
dGlvblJlc3BvbnNlLmggKi87IH07CiAJCTJFMEI4QTdBMUJDNTlBNTkwMDQ0QjMyRCAvKiBfV0tG
b3JtRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDJFMEI4QTc5MUJDNTlBNTkwMDQ0QjMyRCAvKiBfV0tGb3JtRGVsZWdhdGUuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkyRTdBOTQ0QTFCQkQ5
N0MzMDA5NDU1NDcgLyogX1dLRm9jdXNlZEVsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyRTdBOTQ0OTFCQkQ5NUM2MDA5NDU1NDcgLyog
X1dLRm9jdXNlZEVsZW1lbnRJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKKwkJMkRGQzdEQkIxQkNDQzE5NTAwQzE1NDhDIC8qIFdlYlZpZXdJbXBs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREZDN0RC
OTFCQ0NDMTk1MDBDMTU0OEMgLyogV2ViVmlld0ltcGwuaCAqLzsgc2V0dGluZ3MgPSB7QVNTRVRf
VEFHUyA9ICgpOyB9OyB9OworCQkyREZDN0RCQzFCQ0NDMTk1MDBDMTU0OEMgLyogV2ViVmlld0lt
cGwubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREZD
N0RCQTFCQ0NDMTk1MDBDMTU0OEMgLyogV2ViVmlld0ltcGwubW0gKi87IHNldHRpbmdzID0ge0FT
U0VUX1RBR1MgPSAoKTsgfTsgfTsKIAkJMzEwOTk5NzMxNDZDNzVBMjAwMjlERUI5IC8qIFdlYk5v
dGlmaWNhdGlvbkNsaWVudC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAzMTA5OTk3MTE0NkM3NTlCMDAyOURFQjkgLyogV2ViTm90aWZpY2F0aW9uQ2xp
ZW50LmNwcCAqLzsgfTsKIAkJMzEwOTk5QzcxNDZDOUUzRDAwMjlERUI5IC8qIFdlYk5vdGlmaWNh
dGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gMzEwOTk5NjgxNDZDNzFGNTAwMjlERUI5IC8qIFdlYk5vdGlmaWNhdGlvbkNsaWVudC5oICov
OyB9OwogCQkzMTJDMEM0QTE0NkREQzhBMDAxNkM5MTEgLyogV0tOb3RpZmljYXRpb25Qcm92aWRl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyQzBD
NDkxNDZEREM4QTAwMTZDOTExIC8qIFdLTm90aWZpY2F0aW9uUHJvdmlkZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMjg1MSw2ICsyODUzLDgg
QEAKIAkJMkRGOUVFRUQxQTc4NkVBRDAwQjZDRkJFIC8qIEFQSU5hdmlnYXRpb25SZXNwb25zZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElOYXZpZ2F0aW9uUmVzcG9uc2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkUwQjhBNzkxQkM1OUE1OTAwNDRCMzJE
IC8qIF9XS0Zvcm1EZWxlZ2F0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBf
V0tGb3JtRGVsZWdhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkU3QTk0NDkx
QkJEOTVDNjAwOTQ1NTQ3IC8qIF9XS0ZvY3VzZWRFbGVtZW50SW5mby5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBfV0tGb2N1c2VkRWxlbWVudEluZm8uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
MkRGQzdEQjkxQkNDQzE5NTAwQzE1NDhDIC8qIFdlYlZpZXdJbXBsLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlZpZXdJbXBsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTJERkM3REJBMUJDQ0MxOTUwMEMxNTQ4QyAvKiBXZWJWaWV3SW1wbC5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlZpZXdJbXBsLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkzMTA5OTk2ODE0NkM3MUY1MDAyOURFQjkgLyogV2ViTm90
aWZpY2F0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbkNsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkzMTA5OTk3MTE0NkM3NTlCMDAyOURFQjkg
LyogV2ViTm90aWZpY2F0aW9uQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFdlYk5vdGlmaWNhdGlvbkNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTMxMkMwQzQ5MTQ2RERDOEEwMDE2QzkxMSAvKiBXS05vdGlmaWNhdGlvblByb3Zp
ZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTm90aWZpY2F0aW9uUHJv
dmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ5MzAsNiArNDkzNCw4IEBA
CiAJCQkJN0M0Njk0Q0IxQTRCNTEwQTAwQUQ1ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eUNvY29h
Lm1tICovLAogCQkJCTdDRTREMjE1MUE0OTE0ODQwMEM3RjE1MiAvKiBXZWJQcm9jZXNzUG9vbENv
Y29hLm1tICovLAogCQkJCTFBMDRGNjE3MUE0QTNBN0EwMEEyMUI2RSAvKiBXZWJQcm9jZXNzUHJv
eHlDb2NvYS5tbSAqLywKKwkJCQkyREZDN0RCOTFCQ0NDMTk1MDBDMTU0OEMgLyogV2ViVmlld0lt
cGwuaCAqLywKKwkJCQkyREZDN0RCQTFCQ0NDMTk1MDBDMTU0OEMgLyogV2ViVmlld0ltcGwubW0g
Ki8sCiAJCQkJMUFEMDFCQ0IxOTA1RDU0OTAwQzlDNDVGIC8qIFdLUmVsb2FkRnJhbWVFcnJvclJl
Y292ZXJ5QXR0ZW1wdGVyLmggKi8sCiAJCQkJMUFEMDFCQ0ExOTA1RDU0OTAwQzlDNDVGIC8qIFdL
UmVsb2FkRnJhbWVFcnJvclJlY292ZXJ5QXR0ZW1wdGVyLm1tICovLAogCQkJCTJEN0FBRkQyMThD
ODY0MDYwMEE3QUNENCAvKiBXS1dlYlZpZXdDb250ZW50UHJvdmlkZXIuaCAqLywKQEAgLTc2NDEs
NiArNzY0Nyw3IEBACiAJCQkJMUEyRDk1NkYxMjg0ODU2NDAwMUVCOTYyIC8qIENoaWxkUHJvY2Vz
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM4MjgzN0ExNkIzNkE0RjAwQTI3OEZFIC8qIENoaWxk
UHJvY2Vzc0VudHJ5UG9pbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxRkFFQzNBMUIwNjU3NjMw
MDA5QzRFNyAvKiBDaGlsZFByb2Nlc3NNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJMkRG
QzdEQkIxQkNDQzE5NTAwQzE1NDhDIC8qIFdlYlZpZXdJbXBsLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlFMTUxM0M2NzE2NkVBQkIyMDAxNDlGQ0IgLyogQ2hpbGRQcm9jZXNzUHJveHkuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTI5MEY0MjcyMTcyQTBDNzQwMDkzOUZGMCAvKiBDaGlsZFByb2Nlc3NTdXBw
bGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTZGOUY5MDExRTEzRUZDMDBEQjEzNzEgLyog
Q29tbWFuZExpbmUuaCBpbiBIZWFkZXJzICovLApAQCAtOTc3Nyw2ICs5Nzg0LDcgQEAKIAkJCQkx
QThCNjZCMzFCQzQ1QjAxMDA4MkRGNzcgLyogV0tCdW5kbGVNYWMubW0gaW4gU291cmNlcyAqLywK
IAkJCQlCQzExMUE1QjExMkY0RkJCMDAzMzdCQUIgLyogV2ViQ29udGV4dE1lbnVDbGllbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTEwMjFFOUMxMkIxNjc4ODAwNUMwMzNDIC8qIFdlYkNvbnRl
eHRNZW51Q2xpZW50TWFjLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJMkRGQzdEQkMxQkNDQzE5NTAw
QzE1NDhDIC8qIFdlYlZpZXdJbXBsLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyOTM1RDcxMjg4
RDE5NDAwQTRCNjk1IC8qIFdlYkNvbnRleHRNZW51SXRlbS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MTBGQkI5QTEyODhDOTVFMDBBRkZERjQgLyogV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1MUE4NENFMzEyN0YzODZCMDBDQTZFQTQgLyogV2ViQ29udGV4
dE1lbnVQcm94eS5jcHAgaW4gU291cmNlcyAqLywK
</data>
<flag name="review"
          id="288510"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263626</attachid>
            <date>2015-10-20 15:50:47 -0700</date>
            <delta_ts>2015-10-22 13:19:48 -0700</delta_ts>
            <desc>part 2 prelim</desc>
            <filename>bug-150174-20151020155005.patch</filename>
            <type>text/plain</type>
            <size>128126</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxMzQ0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZjc0MjU1OWJlYjUyZGYz
ZWM4M2ViOTcyOWY2NzczZjhiNWVlOGVlYS4uMzVmZGQ4MzZlOGIwYWMwYzE3OGVhYjkyZGEyZTZk
NmQ4MjY0YWQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIyOCBAQAogMjAxNS0xMC0yMCAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAorICAgICAgICBXS1ZpZXcgYmVp
bmcgaW5zaWRlIFdLV2ViVmlldyBsZWFkcyB0byB3ZWlyZCBBUEkgaXNzdWVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAxNzQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IHJlbmV3R1N0YXRlXSk6CisgICAgICAgICgt
W1dLVmlldyB3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZDp0eXBlczpdKToKKyAgICAgICAgKC1b
V0tWaWV3IGNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWE6XSk6CisgICAgICAgICgtW1dLVmll
dyBzY3JvbGxXaGVlbDpdKToKKyAgICAgICAgKC1bV0tWaWV3IHN3aXBlV2l0aEV2ZW50Ol0pOgor
ICAgICAgICAoLVtXS1ZpZXcgbW91c2VNb3ZlZDpdKToKKyAgICAgICAgKC1bV0tWaWV3IG1vdXNl
RG93bjpdKToKKyAgICAgICAgKC1bV0tWaWV3IG1vdXNlVXA6XSk6CisgICAgICAgICgtW1dLVmll
dyBtb3VzZURyYWdnZWQ6XSk6CisgICAgICAgICgtW1dLVmlldyBwcmVzc3VyZUNoYW5nZVdpdGhF
dmVudDpdKToKKyAgICAgICAgKC1bV0tWaWV3IGFjY2VwdHNGaXJzdE1vdXNlOl0pOgorICAgICAg
ICAoLVtXS1ZpZXcgc2hvdWxkRGVsYXlXaW5kb3dPcmRlcmluZ0ZvckV2ZW50Ol0pOgorICAgICAg
ICAoLVtXS1ZpZXcgcGVyZm9ybUtleUVxdWl2YWxlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBr
ZXlVcDpdKToKKyAgICAgICAgKC1bV0tWaWV3IGtleURvd246XSk6CisgICAgICAgICgtW1dLVmll
dyBmbGFnc0NoYW5nZWQ6XSk6CisgICAgICAgICgtW1dLVmlldyBfc3VwZXJRdWlja0xvb2tXaXRo
RXZlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBfYWRkRm9udFBhbmVsT2JzZXJ2ZXJdKToKKyAg
ICAgICAgKC1bV0tWaWV3IHZpZXdXaWxsTW92ZVRvV2luZG93Ol0pOgorICAgICAgICAoLVtXS1Zp
ZXcgdmlld0RpZE1vdmVUb1dpbmRvd10pOgorICAgICAgICAoLVtXS1ZpZXcgdmlld0RpZENoYW5n
ZUJhY2tpbmdQcm9wZXJ0aWVzXSk6CisgICAgICAgICgtW1dLVmlldyBlbmFibGVBY2Nlc3NpYmls
aXR5SWZOZWNlc3NhcnldKToKKyAgICAgICAgKC1bV0tWaWV3IHF1aWNrTG9va1dpdGhFdmVudDpd
KToKKyAgICAgICAgKC1bV0tWaWV3IF9jb2xvclNwYWNlXSk6CisgICAgICAgICgtW1dLVmlldyBf
ZGlkUmVsYXVuY2hQcm9jZXNzXSk6CisgICAgICAgICgtW1dLVmlldyBfc2V0VGV4dEluZGljYXRv
cjpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOndpdGhMaWZldGltZTpd
KToKKyAgICAgICAgKC1bV0tWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOl0p
OgorICAgICAgICAoLVtXS1ZpZXcgX3NldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczpd
KToKKyAgICAgICAgKC1bV0tWaWV3IGluaXRXaXRoRnJhbWU6cHJvY2Vzc1Bvb2w6Y29uZmlndXJh
dGlvbjp3ZWJWaWV3Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgX2RpZFBlcmZvcm1JbW1lZGlhdGVB
Y3Rpb25IaXRUZXN0OmNvbnRlbnRQcmV2ZW50c0RlZmF1bHQ6dXNlckRhdGE6XSk6CisgICAgICAg
ICgtW1dLVmlldyBfaW50ZXJuYWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9y
SGl0VGVzdFJlc3VsdDp3aXRoVHlwZTp1c2VyRGF0YTpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9p
bnRlcm5hbFByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25dKToKKyAgICAgICAgKC1b
V0tWaWV3IF9pbnRlcm5hbENhbmNlbEltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl0pOgorICAgICAg
ICAoLVtXS1ZpZXcgX2ludGVybmFsQ29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25dKToK
KyAgICAgICAgKC1bV0tWaWV3IF9pbnRlcm5hbERpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdp
bmRvd3NXaXRoQW5pbWF0aW9uOl0pOgorICAgICAgICAoLVtXS1ZpZXcgYmVnaW5EZWZlcnJpbmdW
aWV3SW5XaW5kb3dDaGFuZ2VzXSk6CisgICAgICAgICgtW1dLVmlldyBlbmREZWZlcnJpbmdWaWV3
SW5XaW5kb3dDaGFuZ2VzXSk6CisgICAgICAgICgtW1dLVmlldyBlbmREZWZlcnJpbmdWaWV3SW5X
aW5kb3dDaGFuZ2VzU3luY10pOgorICAgICAgICAoLVtXS1ZpZXcgX3ByZXBhcmVGb3JNb3ZlVG9X
aW5kb3c6d2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS1ZpZXcgaXNEZWZl
cnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzXSk6CisgICAgICAgICgtW1dLVmlldyBhbGxvd3NMaW5r
UHJldmlld10pOgorICAgICAgICAoLVtXS1ZpZXcgc2V0QWxsb3dzTGlua1ByZXZpZXc6XSk6Cisg
ICAgICAgICgtW1dLVmlldyBfc2V0SWdub3Jlc0FsbEV2ZW50czpdKToKKyAgICAgICAgKC1bV0tW
aWV3IF9zZXRJZ25vcmVzTm9uV2hlZWxNb3VzZUV2ZW50czpdKToKKyAgICAgICAgKC1bV0tWaWV3
IF9zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHM6XSk6CisgICAgICAgICgtW1dLVmlldyBfaWdub3Jl
c05vbldoZWVsRXZlbnRzXSk6CisgICAgICAgICgtW1dLVmlldyBfaWdub3Jlc0FsbEV2ZW50c10p
OgorICAgICAgICAoLVtXS1ZpZXcgX3NldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I6XSk6Cisg
ICAgICAgICgtW1dLVmlldyBfb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3Rvcl0pOgorICAgICAgICAo
LVtXS1ZpZXcgX3NldFRvcENvbnRlbnRJbnNldDpdKToKKyAgICAgICAgKC1bV0tWaWV3IF90b3BD
b250ZW50SW5zZXRdKToKKyAgICAgICAgKC1bV0tWaWV3IF9kaXNtaXNzQ29udGVudFJlbGF0aXZl
Q2hpbGRXaW5kb3dzXSk6CisgICAgICAgICgtW1dLVmlldyBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2
ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb246XSk6CisgICAgICAgICgtW1dLVmlldyBfc2V0QXV0
b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX2F1
dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0c10pOgorICAgICAgICAoLVtXS1dpbmRvd1Zp
c2liaWxpdHlPYnNlcnZlciBpbml0V2l0aFZpZXc6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dL
V2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0YXJ0T2JzZXJ2aW5nOl0pOiBEZWxldGVkLgorICAg
ICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBzdG9wT2JzZXJ2aW5nOl0pOiBEZWxl
dGVkLgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBfd2luZG93RGlkT3Jk
ZXJPblNjcmVlbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2Jz
ZXJ2ZXIgX3dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S1ZpZXcgZGVhbGxvY10pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3VwZGF0ZVdpbmRv
d0FuZFZpZXdGcmFtZXNdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IHVwZGF0ZUZvbnRQ
YW5lbElmTmVlZGVkXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfc2VsZWN0aW9uQ2hh
bmdlZF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgYWRkV2luZG93T2JzZXJ2ZXJzRm9y
V2luZG93Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgcmVtb3ZlV2luZG93T2JzZXJ2
ZXJzXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBkb1dpbmRvd0RpZENoYW5nZVNjcmVl
bl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZEJlY29tZUtleTpdKTog
RGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWRDaGFuZ2VTY3JlZW46XSk6IERl
bGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfd2luZG93RGlkQ2hhbmdlTGF5ZXJIb3N0aW5nOl0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZFJlc2lnbktleTpdKTogRGVs
ZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWRNaW5pYXR1cml6ZTpdKTogRGVsZXRl
ZC4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWREZW1pbmlhdHVyaXplOl0pOiBEZWxldGVk
LgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZE1vdmU6XSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dLVmlldyBfd2luZG93RGlkUmVzaXplOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1Zp
ZXcgX3dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1Zp
ZXcgX3dpbmRvd0RpZE9yZGVyT25TY3JlZW46XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmll
dyBfd2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXM6XSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dLVmlldyBfd2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3RhdGU6XSk6IERlbGV0ZWQuCisg
ICAgICAgICgtW1dLVmlldyBfcHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXBdKTogRGVsZXRlZC4K
KyAgICAgICAgKC1bV0tWaWV3IF9kaWN0aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTpdKTog
RGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9hY2Nlc3NpYmlsaXR5UmVnaXN0ZXJVSVByb2Nl
c3NUb2tlbnNdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9wb3N0RmFrZU1vdXNlTW92
ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1Zp
ZXcgX2ludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dL
VmlldyBfcHJlZmVyZW5jZXNEaWRDaGFuZ2VdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3
IF90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb25dKTogRGVsZXRlZC4KKyAgICAgICAgKC1b
V0tWaWV3IF91cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWNdKTogRGVsZXRlZC4KKyAgICAg
ICAgKC1bV0tWaWV3IG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRl
eHQ6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfZGlzcGF0Y2hTZXRUb3BDb250ZW50
SW5zZXRdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRl
cm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRvcENvbnRlbnRJbnNldCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpvdmVycmlkZURldmljZVNjYWxlRmFjdG9yKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmlzRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdl
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp0YXJnZXRXaW5kb3dGb3JNb3ZlUHJl
cGFyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bGFzdFByZXNzdXJlRXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YWxsb3dzTGlua1ByZXZpZXcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aWdub3Jlc05vbldoZWVsRXZlbnRzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omlnbm9yZXNBbGxFdmVudHMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoU09GVF9MSU5LX0NPTlNUQU5UX01BWV9G
QUlMKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgaW5pdFdpdGhWaWV3
OmltcGw6XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIGRlYWxsb2Nd
KToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3RhcnRPYnNlcnZpbmc6
XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0b3BPYnNlcnZpbmc6
XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0YXJ0T2JzZXJ2aW5n
Rm9udFBhbmVsXSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0YXJ0
T2JzZXJ2aW5nTG9va3VwRGlzbWlzc2FsXSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0
eU9ic2VydmVyIF93aW5kb3dEaWRPcmRlck9uU2NyZWVuOl0pOgorICAgICAgICAoLVtXS1dpbmRv
d1Zpc2liaWxpdHlPYnNlcnZlciBfd2luZG93RGlkT3JkZXJPZmZTY3JlZW46XSk6CisgICAgICAg
ICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRCZWNvbWVLZXk6XSk6Cisg
ICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRSZXNpZ25LZXk6
XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRNaW5p
YXR1cml6ZTpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgX3dpbmRv
d0RpZERlbWluaWF0dXJpemU6XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2Vy
dmVyIF93aW5kb3dEaWRNb3ZlOl0pOgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNl
cnZlciBfd2luZG93RGlkUmVzaXplOl0pOgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlP
YnNlcnZlciBfd2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXM6XSk6CisgICAgICAgICgt
W1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRDaGFuZ2VTY3JlZW46XSk6Cisg
ICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRDaGFuZ2VMYXll
ckhvc3Rpbmc6XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5k
b3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0ZTpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmls
aXR5T2JzZXJ2ZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29udGV4
dDpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgX2RpY3Rpb25hcnlM
b29rdXBQb3BvdmVyV2lsbENsb3NlOl0pOgorICAgICAgICAoLVtXS0VkaXRDb21tYW5kT2JqQyBp
bml0V2l0aFdlYkVkaXRDb21tYW5kUHJveHk6XSk6CisgICAgICAgICgtW1dLRWRpdENvbW1hbmRP
YmpDIGNvbW1hbmRdKToKKyAgICAgICAgKC1bV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQyB1bmRvRWRp
dGluZzpdKToKKyAgICAgICAgKC1bV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQyByZWRvRWRpdGluZzpd
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6On5XZWJWaWV3SW1wbCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpiZWNvbWVGaXJzdFJlc3BvbmRlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpyZXNpZ25GaXJzdFJlc3BvbmRlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpyZW5ld0dTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVX
aW5kb3dBbmRWaWV3RnJhbWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEF1
dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjp1cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6c2V0VG9wQ29udGVudEluc2V0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmRpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6aW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkT3JkZXJPZmZTY3JlZW4pOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkT3JkZXJPblNjcmVlbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRCZWNvbWVLZXkpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkUmVzaWduS2V5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OndpbmRvd0RpZE1pbmlhdHVyaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OndpbmRvd0RpZERlbWluaWF0dXJpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6d2luZG93RGlkTW92ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5k
b3dEaWRSZXNpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkQ2hh
bmdlQmFja2luZ1Byb3BlcnRpZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2lu
ZG93RGlkQ2hhbmdlU2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OndpbmRv
d0RpZENoYW5nZUxheWVySG9zdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3
aW5kb3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjp2aWV3V2lsbE1vdmVUb1dpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojp2aWV3RGlkTW92ZVRvV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZp
ZXdEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpwb3N0RmFrZU1vdXNlTW92ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNvbG9yU3BhY2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6YmVnaW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hh
bmdlc1N5bmMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cHJlcGFyZUZvck1vdmVU
b1dpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwcmVzc3VyZUNoYW5nZVdp
dGhFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppc0VkaXRhYmxlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmV4ZWN1dGVFZGl0Q29tbWFuZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZWdpc3RlckVkaXRDb21tYW5kKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmNsZWFyQWxsRWRpdENvbW1hbmRzKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OndyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2VsZWN0aW9uRGlkQ2hhbmdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnN0YXJ0T2JzZXJ2aW5nRm9udFBhbmVsKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUZvbnRQYW5lbElmTmVlZGVkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2lu
ZG93cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpxdWlja0xvb2tXaXRoRXZlbnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cHJlcGFyZUZvckRpY3Rpb25hcnlMb29r
dXApOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0QWxsb3dzTGlua1ByZXZpZXcp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9u
Q29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6cHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpjYW5jZWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SWdub3Jlc05vbldoZWVsRXZlbnRzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldElnbm9yZXNBbGxFdmVudHMpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YWNjZXNzaWJpbGl0eVJlZ2lzdGVyVUlQcm9jZXNz
VG9rZW5zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OmFjdGl2ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpwcmVmZXJlbmNlc0RpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpyZWdpc3RlckVkaXRDb21tYW5kKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OmNsZWFyQWxsRWRpdENvbW1hbmRzKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OnNlbGVjdGlvbkRpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjpkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cCk6CisgICAgICAgICgtW1dLRWRpdENvbW1h
bmRPYmpDIGluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTpdKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bV0tFZGl0Q29tbWFuZE9iakMgY29tbWFuZF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0Vk
aXRvclVuZG9UYXJnZXRPYmpDIHVuZG9FZGl0aW5nOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S0VkaXRvclVuZG9UYXJnZXRPYmpDIHJlZG9FZGl0aW5nOl0pOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6UGFnZUNsaWVudEltcGwpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmg6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW06CisgICAgICAg
ICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBpbml0V2l0aFBhZ2U6dmlldzp2aWV3SW1w
bDpyZWNvZ25pemVyOl0pOgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIg
d2lsbERlc3Ryb3lWaWV3Ol0pOgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xs
ZXIgaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcldpbGxQcmVwYXJlOl0pOgorICAgICAgICAoLVtX
S0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplckRpZENh
bmNlbEFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVy
IGltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJEaWRDb21wbGV0ZUFuaW1hdGlvbjpdKToKKyAgICAg
ICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIG1lbnVJdGVtOnZpZXdBdFNjcmVlblBv
aW50Ol0pOgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgbWVudUl0ZW06
cHJldmlld0l0ZW1BdFBvaW50Ol0pOgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRy
b2xsZXIgbWVudUl0ZW06aXRlbUZyYW1lRm9yUG9pbnQ6XSk6CisgICAgICAgICgtW1dLSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlciBtZW51SXRlbTptYXhTaXplRm9yUG9pbnQ6XSk6CisgICAgICAg
ICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBfYW5pbWF0aW9uQ29udHJvbGxlckZvckRh
dGFEZXRlY3RlZFRleHRdKToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVy
IF9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkTGlua10pOgorICAgICAgICAoLVtX
S0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JUZXh0XSk6
CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBpbml0V2l0aFBhZ2U6dmll
dzpyZWNvZ25pemVyOl0pOiBEZWxldGVkLgorCisyMDE1LTEwLTIwICBUaW0gSG9ydG9uICA8dGlt
b3RoeV9ob3J0b25AYXBwbGUuY29tPgorCiAgICAgICAgIFRyeSB0byBmaXggdGhlIGJ1aWxkIGJ5
IGRpc2FibGluZyBNQUNfR0VTVFVSRV9FVkVOVFMgb24gMTAuOSBhbmQgMTAuMTAKIAogICAgICAg
ICAqIENvbmZpZ3VyYXRpb25zL0ZlYXR1cmVEZWZpbmVzLnhjY29uZmlnOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDhjNjI1ZTlmMWY5NDUyMjVlNmM0
YzE2NTNmYjdkZTYyZjhiY2IwNjIuLmI2NTgzZTgxNGM2MDlmNWY5MjAxMzM3MWVkNmE5ZWIyZjBm
Y2E4NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAg
LTM2LDcgKzM2LDYgQEAKICNpbXBvcnQgIkFQSUxlZ2FjeUNvbnRleHRIaXN0b3J5Q2xpZW50Lmgi
CiAjaW1wb3J0ICJBUElQYWdlQ29uZmlndXJhdGlvbi5oIgogI2ltcG9ydCAiQXR0cmlidXRlZFN0
cmluZy5oIgotI2ltcG9ydCAiQ29sb3JTcGFjZURhdGEuaCIKICNpbXBvcnQgIkRhdGFSZWZlcmVu
Y2UuaCIKICNpbXBvcnQgIkVkaXRpbmdSYW5nZS5oIgogI2ltcG9ydCAiRWRpdG9yU3RhdGUuaCIK
QEAgLTU5LDcgKzU4LDYgQEAKICNpbXBvcnQgIlZpZXdTbmFwc2hvdFN0b3JlLmgiCiAjaW1wb3J0
ICJXS0FQSUNhc3QuaCIKICNpbXBvcnQgIldLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCIK
LSNpbXBvcnQgIldLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tMYXlv
dXRNb2RlLmgiCiAjaW1wb3J0ICJXS1ByaW50aW5nVmlldy5oIgogI2ltcG9ydCAiV0tQcm9jZXNz
UG9vbEludGVybmFsLmgiCkBAIC05NiwxNSArOTQsMTIgQEAKICNpbXBvcnQgPFdlYkNvcmUvRmls
ZVN5c3RlbS5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KLSNpbXBvcnQgPFdlYkNvcmUvTG9va3VwU1BJLmg+
Ci0jaW1wb3J0IDxXZWJDb3JlL05TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXJTUEku
aD4KICNpbXBvcnQgPFdlYkNvcmUvTlNNZW51U1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRm
b3JtRXZlbnRGYWN0b3J5TWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1JlZ2lvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBw
bGljYXRpb25DaGVja3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+Ci0jaW1w
b3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRBbHRlcm5h
dGl2ZVdpdGhSYW5nZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KQEAgLTE0OSw4ICsxNDQsNiBAQCBD
R1NDb25uZWN0aW9uSUQgQ0dTTWFpbkNvbm5lY3Rpb25JRCh2b2lkKTsKIENHRXJyb3IgQ0dTR2V0
U2NyZWVuUmVjdEZvcldpbmRvdyhDR1NDb25uZWN0aW9uSUQgY2lkLCBDR1NXaW5kb3dJRCB3aWQs
IENHUmVjdCAqcmVjdCk7CiB9OwogCi1TT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUwoTG9va3Vw
LCBMVU5vdGlmaWNhdGlvblBvcG92ZXJXaWxsQ2xvc2UsIE5TU3RyaW5nICopCi0KIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTcxLDggKzE2
NCw2IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKIH07CiAj
ZW5kaWYKIAotQGNsYXNzIFdLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyOwotCiBAaW50ZXJmYWNl
IFdLVmlld0RhdGEgOiBOU09iamVjdCB7CiBAcHVibGljCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBh
Z2VDbGllbnRJbXBsPiBfcGFnZUNsaWVudDsKQEAgLTIwMCw4ICsxOTEsNiBAQCBzdHJ1Y3QgV0tW
aWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiAgICAgLy8gRm9yIGFzeW5jaHJvbm91
cyB2YWxpZGF0aW9uLgogICAgIFZhbGlkYXRpb25NYXAgX3ZhbGlkYXRpb25NYXA7CiAKLSAgICBz
dGQ6OnVuaXF1ZV9wdHI8VGV4dEluZGljYXRvcldpbmRvdz4gX3RleHRJbmRpY2F0b3JXaW5kb3c7
Ci0KICAgICAvLyBXZSBrZWVwIGhlcmUgdGhlIGV2ZW50IHdoZW4gcmVzZW5kaW5nIGl0IHRvCiAg
ICAgLy8gdGhlIGFwcGxpY2F0aW9uIHRvIGRpc3Rpbmd1aXNoIHRoZSBjYXNlIG9mIGEgbmV3IGV2
ZW50IGZyb20gb25lIAogICAgIC8vIHRoYXQgaGFzIGJlZW4gYWxyZWFkeSBzZW50IHRvIFdlYkNv
cmUuCkBAIC0yMjMsNTIgKzIxMiwyMyBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRz
UGFyYW1ldGVycyB7CiAgICAgTlNFdmVudCAqX3ByZXNzdXJlRXZlbnQ7CiAgICAgQk9PTCBfaWdu
b3JpbmdNb3VzZURyYWdnZWRFdmVudHM7CiAKLSAgICBpZCBfZmxhZ3NDaGFuZ2VkRXZlbnRNb25p
dG9yOwotCiAgICAgQk9PTCBfaGFzU3BlbGxDaGVja2VyRG9jdW1lbnRUYWc7CiAgICAgTlNJbnRl
Z2VyIF9zcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKIAotICAgIEJPT0wgX3Nob3VsZERlZmVyVmll
d0luV2luZG93Q2hhbmdlczsKLSAgICBOU1dpbmRvdyAqX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVw
YXJhdGlvbjsKLQotICAgIEJPT0wgX3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVkOwotCi0g
ICAgQk9PTCBfbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzOwotICAgIEJPT0wgX2Rp
ZFNjaGVkdWxlV2luZG93QW5kVmlld0ZyYW1lVXBkYXRlOwotCi0gICAgUmV0YWluUHRyPE5TQ29s
b3JTcGFjZT4gX2NvbG9yU3BhY2U7Ci0KICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IF9wcm9t
aXNlZEltYWdlOwogICAgIFN0cmluZyBfcHJvbWlzZWRGaWxlbmFtZTsKICAgICBTdHJpbmcgX3By
b21pc2VkVVJMOwogCiAgICAgQk9PTCBfd2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZDsK
IAotICAgIFJldGFpblB0cjxXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlcj4gX3dpbmRvd1Zpc2li
aWxpdHlPYnNlcnZlcjsKLQogICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWV3R2VzdHVyZUNvbnRyb2xs
ZXI+IF9nZXN0dXJlQ29udHJvbGxlcjsKICAgICBCT09MIF9hbGxvd3NNYWduaWZpY2F0aW9uOwot
ICAgIEJPT0wgX2lnbm9yZXNOb25XaGVlbEV2ZW50czsKLSAgICBCT09MIF9pZ25vcmVzQWxsRXZl
bnRzOwogICAgIEJPT0wgX2FsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzOwotICAg
IEJPT0wgX2FsbG93c0xpbmtQcmV2aWV3OwogCiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IF9yb290
TGF5ZXI7CiAKLSAgICBCT09MIF9kaWRTY2hlZHVsZVNldFRvcENvbnRlbnRJbnNldDsKLSAgICBD
R0Zsb2F0IF90b3BDb250ZW50SW5zZXQ7CiAgICAgQ0dGbG9hdCBfdG90YWxIZWlnaHRPZkJhbm5l
cnM7CiAKLSAgICBDR0Zsb2F0IF9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yOwotCi0gICAgQk9P
TCBfZGlkUmVnaXN0ZXJGb3JMb29rdXBQb3BvdmVyQ2xvc2VOb3RpZmljYXRpb25zOwotCi0jaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICBCT09MIF9hdXRv
bWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHM7Ci0gICAgUmV0YWluUHRyPFdLSW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlcj4gX2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXI7Ci0gICAgUmV0YWlu
UHRyPE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXI+IF9pbW1lZGlhdGVBY3Rpb25H
ZXN0dXJlUmVjb2duaXplcjsKLSNlbmRpZgotCiAjaWYgV0tfQVBJX0VOQUJMRUQKICAgICBfV0tU
aHVtYm5haWxWaWV3ICpfdGh1bWJuYWlsVmlldzsKICNlbmRpZgpAQCAtMjc5LDU0ICsyMzksNiBA
QCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiBAaW1wbGVtZW50
YXRpb24gV0tWaWV3RGF0YQogQGVuZAogCi1AaW50ZXJmYWNlIFdLV2luZG93VmlzaWJpbGl0eU9i
c2VydmVyIDogTlNPYmplY3QgewotICAgIFdLVmlldyAqX3ZpZXc7Ci19Ci0KLS0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aFZpZXc6KFdLVmlldyAqKXZpZXc7Ci0tICh2b2lkKXN0YXJ0T2JzZXJ2aW5n
OihOU1dpbmRvdyAqKXdpbmRvdzsKLS0gKHZvaWQpc3RvcE9ic2VydmluZzooTlNXaW5kb3cgKil3
aW5kb3c7Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZl
cgotCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihXS1ZpZXcgKil2aWV3Ci17Ci0gICAg
c2VsZiA9IFtzdXBlciBpbml0XTsKLSAgICBpZiAoIXNlbGYpCi0gICAgICAgIHJldHVybiBuaWw7
Ci0KLSAgICBfdmlldyA9IHZpZXc7Ci0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KLS0gKHZvaWQpc3Rh
cnRPYnNlcnZpbmc6KE5TV2luZG93ICopd2luZG93Ci17Ci0gICAgLy8gQW4gTlNWaWV3IGRlcml2
ZWQgb2JqZWN0IHN1Y2ggYXMgV0tWaWV3IGNhbm5vdCBvYnNlcnZlIHRoZXNlIG5vdGlmaWNhdGlv
bnMsIGJlY2F1c2UgTlNWaWV3IGl0c2VsZiBvYnNlcnZlcyB0aGVtLgotICAgIFtbTlNOb3RpZmlj
YXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2Vs
ZWN0b3IoX3dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuOikKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOkAiTlNXaW5kb3dEaWRPcmRlck9mZlNjcmVl
bk5vdGlmaWNhdGlvbiIgb2JqZWN0OndpbmRvd107Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRl
ciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2lu
ZG93RGlkT3JkZXJPblNjcmVlbjopIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5hbWU6QCJfTlNXaW5kb3dEaWRCZWNvbWVWaXNpYmxlIiBvYmplY3Q6
d2luZG93XTsKLX0KLQotLSAodm9pZClzdG9wT2JzZXJ2aW5nOihOU1dpbmRvdyAqKXdpbmRvdwot
ewotICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2
ZXI6c2VsZiBuYW1lOkAiTlNXaW5kb3dEaWRPcmRlck9mZlNjcmVlbk5vdGlmaWNhdGlvbiIgb2Jq
ZWN0OndpbmRvd107Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBy
ZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6QCJfTlNXaW5kb3dEaWRCZWNvbWVWaXNpYmxlIiBvYmpl
Y3Q6d2luZG93XTsKLX0KLQotLSAodm9pZClfd2luZG93RGlkT3JkZXJPblNjcmVlbjooTlNOb3Rp
ZmljYXRpb24gKilub3RpZmljYXRpb24KLXsKLSAgICBbX3ZpZXcgX3dpbmRvd0RpZE9yZGVyT25T
Y3JlZW46bm90aWZpY2F0aW9uXTsKLX0KLQotLSAodm9pZClfd2luZG93RGlkT3JkZXJPZmZTY3Jl
ZW46KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCi17Ci0gICAgW192aWV3IF93aW5kb3dE
aWRPcmRlck9mZlNjcmVlbjpub3RpZmljYXRpb25dOwotfQotCi1AZW5kCi0KIEBpbnRlcmZhY2Ug
V0tSZXNwb25kZXJDaGFpblNpbmsgOiBOU1Jlc3BvbmRlciB7CiAgICAgTlNSZXNwb25kZXIgKl9s
YXN0UmVzcG9uZGVySW5DaGFpbjsKICAgICBib29sIF9kaWRSZWNlaXZlVW5oYW5kbGVkQ29tbWFu
ZDsKQEAgLTM2OSwxMCArMjgxLDYgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1Bh
cmFtZXRlcnMgewogCiAtICh2b2lkKWRlYWxsb2MKIHsKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTAwMAotICAgIFtfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkNvbnRy
b2xsZXIgd2lsbERlc3Ryb3lWaWV3OnNlbGZdOwotI2VuZGlmCi0KICNpZiBXS19BUElfRU5BQkxF
RAogICAgIGlmIChfZGF0YS0+X3JlbW90ZU9iamVjdFJlZ2lzdHJ5KSB7CiAgICAgICAgIF9kYXRh
LT5fcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBfZGF0
YS0+X3BhZ2UtPnBhZ2VJRCgpKTsKQEAgLTM5NCw5ICszMDIsNiBAQCBzdHJ1Y3QgV0tWaWV3SW50
ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiAgICAgTlNOb3RpZmljYXRpb25DZW50ZXIqIHdv
cmtzcGFjZU5vdGlmaWNhdGlvbkNlbnRlciA9IFtbTlNXb3Jrc3BhY2Ugc2hhcmVkV29ya3NwYWNl
XSBub3RpZmljYXRpb25DZW50ZXJdOwogICAgIFt3b3Jrc3BhY2VOb3RpZmljYXRpb25DZW50ZXIg
cmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV29ya3NwYWNlQWN0aXZlU3BhY2VEaWRDaGFuZ2VO
b3RpZmljYXRpb24gb2JqZWN0Om5pbF07CiAKLSAgICBpZiAoY2FuTG9hZExVTm90aWZpY2F0aW9u
UG9wb3ZlcldpbGxDbG9zZSgpKQotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1
bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpnZXRMVU5vdGlmaWNhdGlvblBvcG92
ZXJXaWxsQ2xvc2UoKSBvYmplY3Q6bmlsXTsKLQogICAgIFdlYlByb2Nlc3NQb29sOjpzdGF0aXN0
aWNzKCkud2tWaWV3Q291bnQtLTsKIAogICAgIFtzdXBlciBkZWFsbG9jXTsKQEAgLTQ4MSw0OCAr
Mzg2LDkgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogICAg
IF9kYXRhLT5faW1wbC0+c2V0RnJhbWVTaXplKE5TU2l6ZVRvQ0dTaXplKHNpemUpKTsKIH0KIAot
LSAodm9pZClfdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lcwotewotICAgIGlmIChfZGF0YS0+X2lt
cGwtPmNsaXBzVG9WaXNpYmxlUmVjdCgpKQotICAgICAgICBfZGF0YS0+X2ltcGwtPnVwZGF0ZVZp
ZXdFeHBvc2VkUmVjdCgpOwotCi0gICAgaWYgKF9kYXRhLT5fZGlkU2NoZWR1bGVXaW5kb3dBbmRW
aWV3RnJhbWVVcGRhdGUpCi0gICAgICAgIHJldHVybjsKLQotICAgIF9kYXRhLT5fZGlkU2NoZWR1
bGVXaW5kb3dBbmRWaWV3RnJhbWVVcGRhdGUgPSBZRVM7Ci0KLSAgICBkaXNwYXRjaF9hc3luYyhk
aXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBeewotICAgICAgICBfZGF0YS0+X2RpZFNjaGVkdWxl
V2luZG93QW5kVmlld0ZyYW1lVXBkYXRlID0gTk87Ci0KLSAgICAgICAgTlNSZWN0IHZpZXdGcmFt
ZUluV2luZG93Q29vcmRpbmF0ZXMgPSBOU1plcm9SZWN0OwotICAgICAgICBOU1BvaW50IGFjY2Vz
c2liaWxpdHlQb3NpdGlvbiA9IE5TWmVyb1BvaW50OwotCi0gICAgICAgIGlmIChfZGF0YS0+X25l
ZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcykKLSAgICAgICAgICAgIHZpZXdGcmFtZUlu
V2luZG93Q29vcmRpbmF0ZXMgPSBbc2VsZiBjb252ZXJ0UmVjdDpzZWxmLmZyYW1lIHRvVmlldzpu
aWxdOwotCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGlmIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICAg
ICAgYWNjZXNzaWJpbGl0eVBvc2l0aW9uID0gW1tzZWxmIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVW
YWx1ZTpOU0FjY2Vzc2liaWxpdHlQb3NpdGlvbkF0dHJpYnV0ZV0gcG9pbnRWYWx1ZV07Ci0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0KLSAgICAgICAgX2RhdGEtPl9wYWdlLT53aW5kb3dB
bmRWaWV3RnJhbWVzQ2hhbmdlZCh2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzLCBhY2Nlc3Np
YmlsaXR5UG9zaXRpb24pOwotICAgIH0pOwotfQotCiAtICh2b2lkKXJlbmV3R1N0YXRlCiB7Ci0g
ICAgaWYgKF9kYXRhLT5fdGV4dEluZGljYXRvcldpbmRvdykKLSAgICAgICAgW3NlbGYgX2Rpc21p
c3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uOk5PXTsKLQotICAgIC8v
IFVwZGF0ZSB0aGUgdmlldyBmcmFtZS4KLSAgICBpZiAoW3NlbGYgd2luZG93XSkKLSAgICAgICAg
W3NlbGYgX3VwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXNdOwotCi0jaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICBbc2VsZiBfdXBkYXRlQ29udGVudEluc2V0
c0lmQXV0b21hdGljXTsKLSNlbmRpZgotCisgICAgX2RhdGEtPl9pbXBsLT5yZW5ld0dTdGF0ZSgp
OwogICAgIFtzdXBlciByZW5ld0dTdGF0ZV07CiB9CiAKQEAgLTU3OCw3ICs0NDQsNyBAQCBzdGF0
aWMgU3RyaW5nIGNvbW1hbmROYW1lRm9yU2VsZWN0b3IoU0VMIHNlbGVjdG9yKQogCiAvLyBFZGl0
aW5nIGNvbW1hbmRzCiAKLSNkZWZpbmUgV0VCQ09SRV9DT01NQU5EKGNvbW1hbmQpIC0gKHZvaWQp
Y29tbWFuZDooaWQpc2VuZGVyIHsgX2RhdGEtPl9wYWdlLT5leGVjdXRlRWRpdENvbW1hbmQoY29t
bWFuZE5hbWVGb3JTZWxlY3RvcihfY21kKSk7IH0KKyNkZWZpbmUgV0VCQ09SRV9DT01NQU5EKGNv
bW1hbmQpIC0gKHZvaWQpY29tbWFuZDooaWQpc2VuZGVyIHsgX2RhdGEtPl9pbXBsLT5leGVjdXRl
RWRpdENvbW1hbmQoY29tbWFuZE5hbWVGb3JTZWxlY3RvcihfY21kKSk7IH0KIAogV0VCQ09SRV9D
T01NQU5EKGFsaWduQ2VudGVyKQogV0VCQ09SRV9DT01NQU5EKGFsaWduSnVzdGlmaWVkKQpAQCAt
Njg3LDIyICs1NTMsMTIgQEAgV0VCQ09SRV9DT01NQU5EKHlhbmtBbmRTZWxlY3QpCiAKIC0gKEJP
T0wpd3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm9hcmQg
dHlwZXM6KE5TQXJyYXkgKil0eXBlcwogewotICAgIHNpemVfdCBudW1UeXBlcyA9IFt0eXBlcyBj
b3VudF07Ci0gICAgW3Bhc3RlYm9hcmQgZGVjbGFyZVR5cGVzOnR5cGVzIG93bmVyOm5pbF07Ci0g
ICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1UeXBlczsgKytpKSB7Ci0gICAgICAgIGlmIChb
W3R5cGVzIG9iamVjdEF0SW5kZXg6aV0gaXNFcXVhbFRvOk5TU3RyaW5nUGJvYXJkVHlwZV0pCi0g
ICAgICAgICAgICBbcGFzdGVib2FyZCBzZXRTdHJpbmc6X2RhdGEtPl9wYWdlLT5zdHJpbmdTZWxl
Y3Rpb25Gb3JQYXN0ZWJvYXJkKCkgZm9yVHlwZTpOU1N0cmluZ1Bib2FyZFR5cGVdOwotICAgICAg
ICBlbHNlIHsKLSAgICAgICAgICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IF9kYXRh
LT5fcGFnZS0+ZGF0YVNlbGVjdGlvbkZvclBhc3RlYm9hcmQoW3R5cGVzIG9iamVjdEF0SW5kZXg6
aV0pOwotICAgICAgICAgICAgW3Bhc3RlYm9hcmQgc2V0RGF0YTpidWZmZXIgPyBidWZmZXItPmNy
ZWF0ZU5TRGF0YSgpLmdldCgpIDogbmlsIGZvclR5cGU6W3R5cGVzIG9iamVjdEF0SW5kZXg6aV1d
OwotICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIFlFUzsKKyAgICByZXR1cm4gX2RhdGEtPl9p
bXBsLT53cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChwYXN0ZWJvYXJkLCB0eXBlcyk7CiB9CiAK
IC0gKHZvaWQpY2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYTooaWQpc2VuZGVyIAogeyAKLSAg
ICBfZGF0YS0+X3BhZ2UtPmNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEoKTsKKyAgICBfZGF0
YS0+X2ltcGwtPmNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEoKTsKIH0KIAogLy8gVGhpcyBt
ZXRob2QgaXMgbmVlZGVkIHRvIHN1cHBvcnQgTWFjIE9TIFggc2VydmljZXMuCkBAIC03NDAsMjUg
KzU5Niw2IEBAIFdFQkNPUkVfQ09NTUFORCh5YW5rQW5kU2VsZWN0KQogCiAvLyBGb250IHBhbmVs
IHN1cHBvcnQuCiAKLS0gKHZvaWQpdXBkYXRlRm9udFBhbmVsSWZOZWVkZWQKLXsKLSAgICBjb25z
dCBFZGl0b3JTdGF0ZSYgZWRpdG9yU3RhdGUgPSBfZGF0YS0+X3BhZ2UtPmVkaXRvclN0YXRlKCk7
Ci0gICAgaWYgKGVkaXRvclN0YXRlLnNlbGVjdGlvbklzTm9uZSB8fCAhZWRpdG9yU3RhdGUuaXND
b250ZW50RWRpdGFibGUpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAoW05TRm9udFBhbmVsIHNo
YXJlZEZvbnRQYW5lbEV4aXN0c10gJiYgW1tOU0ZvbnRQYW5lbCBzaGFyZWRGb250UGFuZWxdIGlz
VmlzaWJsZV0pIHsKLSAgICAgICAgX2RhdGEtPl9wYWdlLT5mb250QXRTZWxlY3Rpb24oW10oY29u
c3QgU3RyaW5nJiBmb250TmFtZSwgZG91YmxlIGZvbnRTaXplLCBib29sIHNlbGVjdGlvbkhhc011
bHRpcGxlRm9udHMsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewotICAgICAg
ICAgICAgTlNGb250ICpmb250ID0gW05TRm9udCBmb250V2l0aE5hbWU6Zm9udE5hbWUgc2l6ZTpm
b250U2l6ZV07Ci0gICAgICAgICAgICBpZiAoZm9udCkKLSAgICAgICAgICAgICAgICBbW05TRm9u
dE1hbmFnZXIgc2hhcmVkRm9udE1hbmFnZXJdIHNldFNlbGVjdGVkRm9udDpmb250IGlzTXVsdGlw
bGU6c2VsZWN0aW9uSGFzTXVsdGlwbGVGb250c107Ci0gICAgICAgIH0pOwotICAgIH0KLX0KLQot
LSAodm9pZClfc2VsZWN0aW9uQ2hhbmdlZAotewotICAgIFtzZWxmIHVwZGF0ZUZvbnRQYW5lbElm
TmVlZGVkXTsKLX0KLQogLSAodm9pZCljaGFuZ2VGb250OihpZClzZW5kZXIKIHsKICAgICBOU0Zv
bnRNYW5hZ2VyICpmb250TWFuYWdlciA9IFtOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZvbnRNYW5hZ2Vy
XTsKQEAgLTExNDUsNjQgKzk4Miw2NCBAQCBzdGF0aWMgTlNUb29sYmFySXRlbSAqdG9vbGJhckl0
ZW0oaWQgPE5TVmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+IGl0ZW0pCiAjZGVmaW5lIE5BVElW
RV9NT1VTRV9FVkVOVF9IQU5ETEVSKFNlbGVjdG9yKSBcCiAgICAgLSAodm9pZClTZWxlY3Rvcjoo
TlNFdmVudCAqKXRoZUV2ZW50IFwKICAgICB7IFwKLSAgICAgICAgaWYgKF9kYXRhLT5faWdub3Jl
c05vbldoZWVsRXZlbnRzKSBcCisgICAgICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25X
aGVlbEV2ZW50cygpKSBcCiAgICAgICAgICAgICByZXR1cm47IFwKICAgICAgICAgaWYgKE5TVGV4
dElucHV0Q29udGV4dCAqY29udGV4dCA9IFtzZWxmIGlucHV0Q29udGV4dF0pIHsgXAogICAgICAg
ICAgICAgW2NvbnRleHQgaGFuZGxlRXZlbnQ6dGhlRXZlbnQgY29tcGxldGlvbkhhbmRsZXI6XihC
T09MIGhhbmRsZWQpIHsgXAogICAgICAgICAgICAgICAgIGlmIChoYW5kbGVkKSBcCiAgICAgICAg
ICAgICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIlcyB3YXMgaGFuZGxlZCBieSB0ZXh0IGlucHV0
IGNvbnRleHQiLCBTdHJpbmcoI1NlbGVjdG9yKS5zdWJzdHJpbmcoMCwgU3RyaW5nKCNTZWxlY3Rv
cikuZmluZCgiSW50ZXJuYWwiKSkuYXNjaWkoKS5kYXRhKCkpOyBcCiAgICAgICAgICAgICAgICAg
ZWxzZSB7IFwKLSAgICAgICAgICAgICAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVu
dCh0aGVFdmVudCwgX2RhdGEtPl9wcmVzc3VyZUV2ZW50LCBzZWxmKTsgXAorICAgICAgICAgICAg
ICAgICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KHRoZUV2ZW50LCBfZGF0YS0+X2lt
cGwtPmxhc3RQcmVzc3VyZUV2ZW50KCksIHNlbGYpOyBcCiAgICAgICAgICAgICAgICAgICAgIF9k
YXRhLT5fcGFnZS0+aGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7IFwKICAgICAgICAgICAgICAg
ICB9IFwKICAgICAgICAgICAgIH1dOyBcCiAgICAgICAgICAgICByZXR1cm47IFwKICAgICAgICAg
fSBcCi0gICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQodGhlRXZlbnQsIF9kYXRh
LT5fcHJlc3N1cmVFdmVudCwgc2VsZik7IFwKKyAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3
ZWJFdmVudCh0aGVFdmVudCwgX2RhdGEtPl9pbXBsLT5sYXN0UHJlc3N1cmVFdmVudCgpLCBzZWxm
KTsgXAogICAgICAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOyBc
CiAgICAgfQogI2RlZmluZSBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRFUk5BTChTZWxl
Y3RvcikgXAogICAgIC0gKHZvaWQpU2VsZWN0b3I6KE5TRXZlbnQgKil0aGVFdmVudCBcCiAgICAg
eyBcCi0gICAgICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykgXAorICAgICAg
ICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMoKSkgXAogICAgICAgICAg
ICAgcmV0dXJuOyBcCiAgICAgICAgIGlmIChOU1RleHRJbnB1dENvbnRleHQgKmNvbnRleHQgPSBb
c2VsZiBpbnB1dENvbnRleHRdKSB7IFwKICAgICAgICAgICAgIFtjb250ZXh0IGhhbmRsZUV2ZW50
OnRoZUV2ZW50IGNvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCBoYW5kbGVkKSB7IFwKICAgICAgICAg
ICAgICAgICBpZiAoaGFuZGxlZCkgXAogICAgICAgICAgICAgICAgICAgICBMT0coVGV4dElucHV0
LCAiJXMgd2FzIGhhbmRsZWQgYnkgdGV4dCBpbnB1dCBjb250ZXh0IiwgU3RyaW5nKCNTZWxlY3Rv
cikuc3Vic3RyaW5nKDAsIFN0cmluZygjU2VsZWN0b3IpLmZpbmQoIkludGVybmFsIikpLmFzY2lp
KCkuZGF0YSgpKTsgXAogICAgICAgICAgICAgICAgIGVsc2UgeyBcCi0gICAgICAgICAgICAgICAg
ICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQodGhlRXZlbnQsIF9kYXRhLT5fcHJlc3N1
cmVFdmVudCwgc2VsZik7IFwKKyAgICAgICAgICAgICAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVu
dCB3ZWJFdmVudCh0aGVFdmVudCwgX2RhdGEtPl9pbXBsLT5sYXN0UHJlc3N1cmVFdmVudCgpLCBz
ZWxmKTsgXAogICAgICAgICAgICAgICAgICAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZU1vdXNlRXZl
bnQod2ViRXZlbnQpOyBcCiAgICAgICAgICAgICAgICAgfSBcCiAgICAgICAgICAgICB9XTsgXAog
ICAgICAgICAgICAgcmV0dXJuOyBcCiAgICAgICAgIH0gXAotICAgICAgICBOYXRpdmVXZWJNb3Vz
ZUV2ZW50IHdlYkV2ZW50KHRoZUV2ZW50LCBfZGF0YS0+X3ByZXNzdXJlRXZlbnQsIHNlbGYpOyBc
CisgICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQodGhlRXZlbnQsIF9kYXRhLT5f
aW1wbC0+bGFzdFByZXNzdXJlRXZlbnQoKSwgc2VsZik7IFwKICAgICAgICAgX2RhdGEtPl9wYWdl
LT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsgXAogICAgIH0KICNlbHNlCiAjZGVmaW5lIE5B
VElWRV9NT1VTRV9FVkVOVF9IQU5ETEVSKFNlbGVjdG9yKSBcCiAgICAgLSAodm9pZClTZWxlY3Rv
cjooTlNFdmVudCAqKXRoZUV2ZW50IFwKICAgICB7IFwKLSAgICAgICAgaWYgKF9kYXRhLT5faWdu
b3Jlc05vbldoZWVsRXZlbnRzKSBcCisgICAgICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNO
b25XaGVlbEV2ZW50cygpKSBcCiAgICAgICAgICAgICByZXR1cm47IFwKICAgICAgICAgaWYgKFtb
c2VsZiBpbnB1dENvbnRleHRdIGhhbmRsZUV2ZW50OnRoZUV2ZW50XSkgeyBcCiAgICAgICAgICAg
ICBMT0coVGV4dElucHV0LCAiJXMgd2FzIGhhbmRsZWQgYnkgdGV4dCBpbnB1dCBjb250ZXh0Iiwg
U3RyaW5nKCNTZWxlY3Rvcikuc3Vic3RyaW5nKDAsIFN0cmluZygjU2VsZWN0b3IpLmZpbmQoIklu
dGVybmFsIikpLmFzY2lpKCkuZGF0YSgpKTsgXAogICAgICAgICAgICAgcmV0dXJuOyBcCiAgICAg
ICAgIH0gXAotICAgICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KHRoZUV2ZW50LCBf
ZGF0YS0+X3ByZXNzdXJlRXZlbnQsIHNlbGYpOyBcCisgICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZl
bnQgd2ViRXZlbnQodGhlRXZlbnQsIF9kYXRhLT5faW1wbC0+bGFzdFByZXNzdXJlRXZlbnQoKSwg
c2VsZik7IFwKICAgICAgICAgX2RhdGEtPl9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50
KTsgXAogICAgIH0KICNkZWZpbmUgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwo
U2VsZWN0b3IpIFwKICAgICAtICh2b2lkKVNlbGVjdG9yOihOU0V2ZW50ICopdGhlRXZlbnQgXAog
ICAgIHsgXAotICAgICAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpIFwKKyAg
ICAgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpIFwKICAgICAg
ICAgICAgIHJldHVybjsgXAogICAgICAgICBpZiAoW1tzZWxmIGlucHV0Q29udGV4dF0gaGFuZGxl
RXZlbnQ6dGhlRXZlbnRdKSB7IFwKICAgICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIlcyB3YXMg
aGFuZGxlZCBieSB0ZXh0IGlucHV0IGNvbnRleHQiLCBTdHJpbmcoI1NlbGVjdG9yKS5zdWJzdHJp
bmcoMCwgU3RyaW5nKCNTZWxlY3RvcikuZmluZCgiSW50ZXJuYWwiKSkuYXNjaWkoKS5kYXRhKCkp
OyBcCiAgICAgICAgICAgICByZXR1cm47IFwKICAgICAgICAgfSBcCi0gICAgICAgIE5hdGl2ZVdl
Yk1vdXNlRXZlbnQgd2ViRXZlbnQodGhlRXZlbnQsIF9kYXRhLT5fcHJlc3N1cmVFdmVudCwgc2Vs
Zik7IFwKKyAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudCh0aGVFdmVudCwgX2Rh
dGEtPl9pbXBsLT5sYXN0UHJlc3N1cmVFdmVudCgpLCBzZWxmKTsgXAogICAgICAgICBfZGF0YS0+
X3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOyBcCiAgICAgfQogI2VuZGlmCkBAIC0x
MjMzLDcgKzEwNzAsNyBAQCBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRFUk5BTChtb3Vz
ZURyYWdnZWRJbnRlcm5hbCkKIAogLSAodm9pZClzY3JvbGxXaGVlbDooTlNFdmVudCAqKWV2ZW50
CiB7Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc0FsbEV2ZW50cykKKyAgICBpZiAoX2RhdGEtPl9p
bXBsLT5pZ25vcmVzQWxsRXZlbnRzKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChldmVu
dC5waGFzZSA9PSBOU0V2ZW50UGhhc2VCZWdhbikKQEAgLTEyNTEsNyArMTA4OCw3IEBAIE5BVElW
RV9NT1VTRV9FVkVOVF9IQU5ETEVSX0lOVEVSTkFMKG1vdXNlRHJhZ2dlZEludGVybmFsKQogCiAt
ICh2b2lkKXN3aXBlV2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBpZiAoX2RhdGEt
Pl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05v
bldoZWVsRXZlbnRzKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmICghX2RhdGEtPl9hbGxv
d3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcykgewpAQCAtMTI2OSw3ICsxMTA2LDcgQEAg
TkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwp
CiAKIC0gKHZvaWQpbW91c2VNb3ZlZDooTlNFdmVudCAqKWV2ZW50CiB7Ci0gICAgaWYgKF9kYXRh
LT5faWdub3Jlc05vbldoZWVsRXZlbnRzKQorICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNO
b25XaGVlbEV2ZW50cygpKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBXaGVuIGEgdmlldyBp
cyBmaXJzdCByZXNwb25kZXIsIGl0IGdldHMgbW91c2UgbW92ZWQgZXZlbnRzIGV2ZW4gd2hlbiB0
aGUgbW91c2UgaXMgb3V0c2lkZSBpdHMgdmlzaWJsZSByZWN0LgpAQCAtMTI4MSw3ICsxMTE4LDcg
QEAgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJu
YWwpCiAKIC0gKHZvaWQpbW91c2VEb3duOihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBpZiAoX2Rh
dGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jl
c05vbldoZWVsRXZlbnRzKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIFtzZWxmIF9zZXRNb3Vz
ZURvd25FdmVudDpldmVudF07CkBAIC0xMjkyLDcgKzExMjksNyBAQCBOQVRJVkVfTU9VU0VfRVZF
TlRfSEFORExFUl9JTlRFUk5BTChtb3VzZURyYWdnZWRJbnRlcm5hbCkKIAogLSAodm9pZCltb3Vz
ZVVwOihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxF
dmVudHMpCisgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIFtzZWxmIF9zZXRNb3VzZURvd25FdmVudDpuaWxdOwpAQCAt
MTMwMSw3ICsxMTM4LDcgQEAgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwobW91
c2VEcmFnZ2VkSW50ZXJuYWwpCiAKIC0gKHZvaWQpbW91c2VEcmFnZ2VkOihOU0V2ZW50ICopZXZl
bnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAgaWYgKF9k
YXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGlmIChfZGF0YS0+X2lnbm9yaW5nTW91c2VEcmFnZ2VkRXZlbnRzKQpAQCAtMTMxMSwyMiAr
MTE0OCw3IEBAIE5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVSX0lOVEVSTkFMKG1vdXNlRHJhZ2dl
ZEludGVybmFsKQogCiAtICh2b2lkKXByZXNzdXJlQ2hhbmdlV2l0aEV2ZW50OihOU0V2ZW50ICop
ZXZlbnQKIHsKLSNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFY
X0FMTE9XRUQgPj0gMTAxMDAzCi0gICAgaWYgKGV2ZW50ID09IF9kYXRhLT5fcHJlc3N1cmVFdmVu
dCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZl
bnRzKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoZXZlbnQucGhhc2UgIT0gTlNFdmVudFBo
YXNlQ2hhbmdlZCAmJiBldmVudC5waGFzZSAhPSBOU0V2ZW50UGhhc2VCZWdhbiAmJiBldmVudC5w
aGFzZSAhPSBOU0V2ZW50UGhhc2VFbmRlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgTmF0aXZl
V2ViTW91c2VFdmVudCB3ZWJFdmVudChldmVudCwgX2RhdGEtPl9wcmVzc3VyZUV2ZW50LCBzZWxm
KTsKLSAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOwotCi0gICAg
W19kYXRhLT5fcHJlc3N1cmVFdmVudCByZWxlYXNlXTsKLSAgICBfZGF0YS0+X3ByZXNzdXJlRXZl
bnQgPSBbZXZlbnQgcmV0YWluXTsKLSNlbmRpZgorICAgIF9kYXRhLT5faW1wbC0+cHJlc3N1cmVD
aGFuZ2VXaXRoRXZlbnQoZXZlbnQpOwogfQogCiAtIChCT09MKWFjY2VwdHNGaXJzdE1vdXNlOihO
U0V2ZW50ICopZXZlbnQKQEAgLTEzNDAsNyArMTE2Miw3IEBAIE5BVElWRV9NT1VTRV9FVkVOVF9I
QU5ETEVSX0lOVEVSTkFMKG1vdXNlRHJhZ2dlZEludGVybmFsKQogICAgICAgICByZXR1cm4gTk87
CiAgICAgCiAgICAgW3NlbGYgX3NldE1vdXNlRG93bkV2ZW50OmV2ZW50XTsKLSAgICBib29sIHJl
c3VsdCA9IF9kYXRhLT5fcGFnZS0+YWNjZXB0c0ZpcnN0TW91c2UoW2V2ZW50IGV2ZW50TnVtYmVy
XSwgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBfZGF0YS0+X3By
ZXNzdXJlRXZlbnQsIHNlbGYpKTsKKyAgICBib29sIHJlc3VsdCA9IF9kYXRhLT5fcGFnZS0+YWNj
ZXB0c0ZpcnN0TW91c2UoW2V2ZW50IGV2ZW50TnVtYmVyXSwgV2ViRXZlbnRGYWN0b3J5OjpjcmVh
dGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBfZGF0YS0+X2ltcGwtPmxhc3RQcmVzc3VyZUV2ZW50KCks
IHNlbGYpKTsKICAgICBbc2VsZiBfc2V0TW91c2VEb3duRXZlbnQ6bmlsXTsKICAgICByZXR1cm4g
cmVzdWx0OwogfQpAQCAtMTM2MSw3ICsxMTgzLDcgQEAgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRM
RVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCiAgICAgICAgIHJldHVybiBOTzsKICAg
ICAKICAgICBbc2VsZiBfc2V0TW91c2VEb3duRXZlbnQ6ZXZlbnRdOwotICAgIGJvb2wgcmVzdWx0
ID0gX2RhdGEtPl9wYWdlLT5zaG91bGREZWxheVdpbmRvd09yZGVyaW5nRm9yRXZlbnQoV2ViRXZl
bnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBfZGF0YS0+X3ByZXNzdXJlRXZl
bnQsIHNlbGYpKTsKKyAgICBib29sIHJlc3VsdCA9IF9kYXRhLT5fcGFnZS0+c2hvdWxkRGVsYXlX
aW5kb3dPcmRlcmluZ0ZvckV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVu
dChldmVudCwgX2RhdGEtPl9pbXBsLT5sYXN0UHJlc3N1cmVFdmVudCgpLCBzZWxmKSk7CiAgICAg
W3NlbGYgX3NldE1vdXNlRG93bkV2ZW50Om5pbF07CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAg
LTE3OTMsNyArMTYxNSw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmli
dXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKIC0gKEJPT0wpcGVy
Zm9ybUtleUVxdWl2YWxlbnQ6KE5TRXZlbnQgKilldmVudAogewotICAgIGlmIChfZGF0YS0+X2ln
bm9yZXNOb25XaGVlbEV2ZW50cykKKyAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hl
ZWxFdmVudHMoKSkKICAgICAgICAgcmV0dXJuIE5POwogCiAgICAgLy8gVGhlcmUncyBhIGNoYW5j
ZSB0aGF0IHJlc3BvbmRpbmcgdG8gdGhpcyBldmVudCB3aWxsIHJ1biBhIG5lc3RlZCBldmVudCBs
b29wLCBhbmQKQEAgLTE4MzMsNyArMTY1NSw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxp
bmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAK
IC0gKHZvaWQpa2V5VXA6KE5TRXZlbnQgKil0aGVFdmVudAogewotICAgIGlmIChfZGF0YS0+X2ln
bm9yZXNOb25XaGVlbEV2ZW50cykKKyAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hl
ZWxFdmVudHMoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTE9HKFRleHRJbnB1dCwgImtleVVw
OiVwICVAIiwgdGhlRXZlbnQsIHRoZUV2ZW50KTsKQEAgLTE4NDYsNyArMTY2OCw3IEBAIHN0YXRp
YyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0
b3I8Q29tcG9zaXRpb25VbmRlCiAKIC0gKHZvaWQpa2V5RG93bjooTlNFdmVudCAqKXRoZUV2ZW50
CiB7Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRzKQorICAgIGlmIChfZGF0
YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBMT0coVGV4dElucHV0LCAia2V5RG93bjolcCAlQCVzIiwgdGhlRXZlbnQsIHRoZUV2ZW50LCAo
dGhlRXZlbnQgPT0gX2RhdGEtPl9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCkgPyAiIChyZS1zZW50
KSIgOiAiIik7CkBAIC0xODczLDcgKzE2OTUsNyBAQCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJs
aW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQog
CiAtICh2b2lkKWZsYWdzQ2hhbmdlZDooTlNFdmVudCAqKXRoZUV2ZW50CiB7Ci0gICAgaWYgKF9k
YXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRzKQorICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9y
ZXNOb25XaGVlbEV2ZW50cygpKQogICAgICAgICByZXR1cm47CiAKICAgICBMT0coVGV4dElucHV0
LCAiZmxhZ3NDaGFuZ2VkOiVwICVAIiwgdGhlRXZlbnQsIHRoZUV2ZW50KTsKQEAgLTIyMzYsNyAr
MjA1OCw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmlu
ZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKIC0gKEJPT0wpcGVyZm9ybUtleUVx
dWl2YWxlbnQ6KE5TRXZlbnQgKilldmVudAogewotICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25X
aGVlbEV2ZW50cykKKyAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMo
KSkKICAgICAgICAgcmV0dXJuIE5POwogCiAgICAgLy8gVGhlcmUncyBhIGNoYW5jZSB0aGF0IHJl
c3BvbmRpbmcgdG8gdGhpcyBldmVudCB3aWxsIHJ1biBhIG5lc3RlZCBldmVudCBsb29wLCBhbmQK
QEAgLTIyNzYsNyArMjA5OCw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0
cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKIC0gKHZvaWQp
a2V5VXA6KE5TRXZlbnQgKil0aGVFdmVudAogewotICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25X
aGVlbEV2ZW50cykKKyAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMo
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTE9HKFRleHRJbnB1dCwgImtleVVwOiVwICVAIiwg
dGhlRXZlbnQsIHRoZUV2ZW50KTsKQEAgLTIyODYsNyArMjEwOCw3IEBAIHN0YXRpYyB2b2lkIGV4
dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9z
aXRpb25VbmRlCiAKIC0gKHZvaWQpa2V5RG93bjooTlNFdmVudCAqKXRoZUV2ZW50CiB7Ci0gICAg
aWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRzKQorICAgIGlmIChfZGF0YS0+X2ltcGwt
Pmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQogICAgICAgICByZXR1cm47CiAKICAgICBMT0coVGV4
dElucHV0LCAia2V5RG93bjolcCAlQCVzIiwgdGhlRXZlbnQsIHRoZUV2ZW50LCAodGhlRXZlbnQg
PT0gX2RhdGEtPl9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCkgPyAiIChyZS1zZW50KSIgOiAiIik7
CkBAIC0yMzI0LDcgKzIxNDYsNyBAQCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0
dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogCiAtICh2b2lk
KWZsYWdzQ2hhbmdlZDooTlNFdmVudCAqKXRoZUV2ZW50CiB7Ci0gICAgaWYgKF9kYXRhLT5faWdu
b3Jlc05vbldoZWVsRXZlbnRzKQorICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVl
bEV2ZW50cygpKQogICAgICAgICByZXR1cm47CiAKICAgICBMT0coVGV4dElucHV0LCAiZmxhZ3ND
aGFuZ2VkOiVwICVAIiwgdGhlRXZlbnQsIHRoZUV2ZW50KTsKQEAgLTIzNTAsNiArMjE3MiwxMSBA
QCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmlu
ZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogICAgIHJldHVybiBbc3VwZXIgaW5wdXRDb250ZXh0
XTsKIH0KIAorLSAodm9pZClfc3VwZXJRdWlja0xvb2tXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVu
dAoreworICAgIFtzdXBlciBxdWlja0xvb2tXaXRoRXZlbnQ6ZXZlbnRdOworfQorCiAtIChOU0Fy
cmF5ICopdmFsaWRBdHRyaWJ1dGVzRm9yTWFya2VkVGV4dAogewogICAgIHN0YXRpYyBOU0FycmF5
ICp2YWxpZEF0dHJpYnV0ZXM7CkBAIC0yNTI0LDIxOSArMjM1MSwxOSBAQCBzdGF0aWMgdm9pZCBj
cmVhdGVTYW5kYm94RXh0ZW5zaW9uc0ZvckZpbGVVcGxvYWQoTlNQYXN0ZWJvYXJkICpwYXN0ZWJv
YXJkLCBTYW5kYgogICAgIHJldHVybiBOU01vdXNlSW5SZWN0KGxvY2FsUG9pbnQsIHZpc2libGVU
aHVtYlJlY3QsIFtzZWxmIGlzRmxpcHBlZF0pOwogfQogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLXN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0Nv
bnRleHQgPSAma2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0OwotI2VuZGlmCi0KLS0gKHZvaWQpYWRk
V2luZG93T2JzZXJ2ZXJzRm9yV2luZG93OihOU1dpbmRvdyAqKXdpbmRvdwotewotICAgIGlmICh3
aW5kb3cpIHsKLSAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBh
ZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkQmVjb21lS2V5OikK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFt
ZTpOU1dpbmRvd0RpZEJlY29tZUtleU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKLSAgICAgICAg
W1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNl
bGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkUmVzaWduS2V5OikKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTpOU1dpbmRvd0RpZFJlc2ln
bktleU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKLSAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNl
bnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihf
d2luZG93RGlkTWluaWF0dXJpemU6KSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbmFtZTpOU1dpbmRvd0RpZE1pbmlhdHVyaXplTm90aWZpY2F0
aW9uIG9iamVjdDp3aW5kb3ddOwotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1
bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRE
ZW1pbmlhdHVyaXplOikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgbmFtZTpOU1dpbmRvd0RpZERlbWluaWF0dXJpemVOb3RpZmljYXRpb24gb2Jq
ZWN0OndpbmRvd107Ci0gICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZE1vdmU6KQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1l
Ok5TV2luZG93RGlkTW92ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKLSAgICAgICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVj
dG9yOkBzZWxlY3Rvcihfd2luZG93RGlkUmVzaXplOikgCi0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6TlNXaW5kb3dEaWRSZXNpemVOb3Rp
ZmljYXRpb24gb2JqZWN0OndpbmRvd107Ci0gICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIg
ZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRv
d0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzOikKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTpOU1dpbmRvd0RpZENoYW5nZUJhY2tpbmdQ
cm9wZXJ0aWVzTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwotICAgICAgICBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNl
bGVjdG9yKF93aW5kb3dEaWRDaGFuZ2VTY3JlZW46KQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkQ2hhbmdlU2NyZWVu
Tm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2Vu
dGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93
aW5kb3dEaWRDaGFuZ2VMYXllckhvc3Rpbmc6KQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOkAiX05TV2luZG93RGlkQ2hhbmdlQ29udGVu
dHNIb3N0ZWRJbkxheWVyU3VyZmFjZU5vdGlmaWNhdGlvbiIgb2JqZWN0OndpbmRvd107Ci0gICAg
ICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2Vs
ZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZENoYW5nZU9jY2x1c2lvblN0YXRlOikKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTpO
U1dpbmRvd0RpZENoYW5nZU9jY2x1c2lvblN0YXRlTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3dd
OwotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgICAg
IFt3aW5kb3cgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiY29udGVudExheW91dFJlY3Qi
IG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbkluaXRpYWwgY29udGV4dDprZXlWYWx1
ZU9ic2VydmluZ0NvbnRleHRdOwotICAgICAgICBbd2luZG93IGFkZE9ic2VydmVyOnNlbGYgZm9y
S2V5UGF0aDpAInRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50IiBvcHRpb25zOk5TS2V5VmFsdWVP
YnNlcnZpbmdPcHRpb25Jbml0aWFsIGNvbnRleHQ6a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0XTsK
LSNlbmRpZgotICAgICAgICBbX2RhdGEtPl93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3RhcnRP
YnNlcnZpbmc6d2luZG93XTsKLSAgICB9Ci19Ci0KIC0gKHZvaWQpX2FkZEZvbnRQYW5lbE9ic2Vy
dmVyCiB7Ci0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAg
ICBbW05TRm9udFBhbmVsIHNoYXJlZEZvbnRQYW5lbF0gYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQ
YXRoOkAidmlzaWJsZSIgb3B0aW9uczowIGNvbnRleHQ6a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0
XTsKLSNlbmRpZgotfQotCi0tICh2b2lkKXJlbW92ZVdpbmRvd09ic2VydmVycwotewotICAgIE5T
V2luZG93ICp3aW5kb3cgPSBfZGF0YS0+X3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA/
IF9kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uIDogW3NlbGYgd2luZG93XTsK
LSAgICBpZiAoIXdpbmRvdykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgW1tOU05vdGlmaWNhdGlv
bkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dE
aWRCZWNvbWVLZXlOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07Ci0gICAgW1tOU05vdGlmaWNhdGlv
bkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dE
aWRSZXNpZ25LZXlOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07Ci0gICAgW1tOU05vdGlmaWNhdGlv
bkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dE
aWRNaW5pYXR1cml6ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKLSAgICBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dp
bmRvd0RpZERlbWluaWF0dXJpemVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Ci0gICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5h
bWU6TlNXaW5kb3dEaWRNb3ZlTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwotICAgIFtbTlNO
b3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1l
Ok5TV2luZG93RGlkUmVzaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwotICAgIFtbTlNO
b3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1l
Ok5TV2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXNOb3RpZmljYXRpb24gb2JqZWN0Ondp
bmRvd107Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVP
YnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRDaGFuZ2VTY3JlZW5Ob3RpZmljYXRpb24gb2Jq
ZWN0OndpbmRvd107Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBy
ZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6QCJfTlNXaW5kb3dEaWRDaGFuZ2VDb250ZW50c0hvc3Rl
ZEluTGF5ZXJTdXJmYWNlTm90aWZpY2F0aW9uIiBvYmplY3Q6d2luZG93XTsKLSAgICBbW05TTm90
aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpO
U1dpbmRvd0RpZENoYW5nZU9jY2x1c2lvblN0YXRlTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3dd
OwotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgaWYg
KF9kYXRhLT5fcGFnZS0+aXNFZGl0YWJsZSgpKQotICAgICAgICBbW05TRm9udFBhbmVsIHNoYXJl
ZEZvbnRQYW5lbF0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidmlzaWJsZSIgY29u
dGV4dDprZXlWYWx1ZU9ic2VydmluZ0NvbnRleHRdOwotICAgIFt3aW5kb3cgcmVtb3ZlT2JzZXJ2
ZXI6c2VsZiBmb3JLZXlQYXRoOkAiY29udGVudExheW91dFJlY3QiIGNvbnRleHQ6a2V5VmFsdWVP
YnNlcnZpbmdDb250ZXh0XTsKLSAgICBbd2luZG93IHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5
UGF0aDpAInRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50IiBjb250ZXh0OmtleVZhbHVlT2JzZXJ2
aW5nQ29udGV4dF07Ci0jZW5kaWYKLSAgICBbX2RhdGEtPl93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2
ZXIgc3RvcE9ic2VydmluZzp3aW5kb3ddOworICAgIF9kYXRhLT5faW1wbC0+c3RhcnRPYnNlcnZp
bmdGb250UGFuZWwoKTsKIH0KIAogLSAodm9pZCl2aWV3V2lsbE1vdmVUb1dpbmRvdzooTlNXaW5k
b3cgKil3aW5kb3cKIHsKLSAgICAvLyBJZiB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIHByZXBhcmlu
ZyB0byBtb3ZlIHRvIGEgd2luZG93LCB3ZSBzaG91bGQgb25seSBiZSBtb3ZlZCB0byB0aGF0IHdp
bmRvdy4KLSAgICBBU1NFUlQoIV9kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9u
IHx8IChfZGF0YS0+X3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA9PSB3aW5kb3cpKTsK
LQotICAgIE5TV2luZG93ICpjdXJyZW50V2luZG93ID0gW3NlbGYgd2luZG93XTsKLSAgICBpZiAo
d2luZG93ID09IGN1cnJlbnRXaW5kb3cpCi0gICAgICAgIHJldHVybjsKLQotICAgIF9kYXRhLT5f
cGFnZUNsaWVudC0+dmlld1dpbGxNb3ZlVG9Bbm90aGVyV2luZG93KCk7Ci0gICAgCi0gICAgW3Nl
bGYgcmVtb3ZlV2luZG93T2JzZXJ2ZXJzXTsKLSAgICBbc2VsZiBhZGRXaW5kb3dPYnNlcnZlcnNG
b3JXaW5kb3c6d2luZG93XTsKKyAgICBfZGF0YS0+X2ltcGwtPnZpZXdXaWxsTW92ZVRvV2luZG93
KHdpbmRvdyk7CiB9CiAKIC0gKHZvaWQpdmlld0RpZE1vdmVUb1dpbmRvdwogewotICAgIE5TV2lu
ZG93ICp3aW5kb3cgPSBfZGF0YS0+X3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA/IF9k
YXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uIDogc2VsZi53aW5kb3c7Ci0KLSAg
ICBpZiAod2luZG93KSB7Ci0gICAgICAgIFtzZWxmIGRvV2luZG93RGlkQ2hhbmdlU2NyZWVuXTsK
LQotICAgICAgICBWaWV3U3RhdGU6OkZsYWdzIHZpZXdTdGF0ZUNoYW5nZXMgPSBWaWV3U3RhdGU6
OldpbmRvd0lzQWN0aXZlIHwgVmlld1N0YXRlOjpJc1Zpc2libGU7Ci0gICAgICAgIGlmIChbc2Vs
ZiBpc0RlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNdKQotICAgICAgICAgICAgX2RhdGEtPl92
aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9IFlFUzsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgdmlld1N0YXRlQ2hhbmdlcyB8PSBWaWV3U3RhdGU6OklzSW5XaW5kb3c7Ci0gICAgICAg
IF9kYXRhLT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKHZpZXdTdGF0ZUNoYW5nZXMpOwotCi0g
ICAgICAgIFtzZWxmIF91cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzXTsKLQotICAgICAgICAvLyBG
SVhNRSgxMzU1MDkpIFRoaXMgY2FsbCBiZWNvbWVzIHVubmVjZXNzYXJ5IG9uY2UgMTM1NTA5IGlz
IGZpeGVkOyByZW1vdmUuCi0gICAgICAgIF9kYXRhLT5fcGFnZS0+bGF5ZXJIb3N0aW5nTW9kZURp
ZENoYW5nZSgpOwotCi0gICAgICAgIGlmICghX2RhdGEtPl9mbGFnc0NoYW5nZWRFdmVudE1vbml0
b3IpIHsKLSAgICAgICAgICAgIF9kYXRhLT5fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gW05T
RXZlbnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5TRmxhZ3NDaGFuZ2Vk
TWFzayBoYW5kbGVyOl4oTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpIHsKLSAgICAgICAgICAg
ICAgICBbc2VsZiBfcG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudDpm
bGFnc0NoYW5nZWRFdmVudF07Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGZsYWdzQ2hhbmdlZEV2
ZW50OwotICAgICAgICAgICAgfV07Ci0gICAgICAgIH0KLQotICAgICAgICBbc2VsZiBfYWNjZXNz
aWJpbGl0eVJlZ2lzdGVyVUlQcm9jZXNzVG9rZW5zXTsKLQotI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgICAgIGlmIChfZGF0YS0+X2ltbWVkaWF0ZUFj
dGlvbkdlc3R1cmVSZWNvZ25pemVyICYmICFbW3NlbGYgZ2VzdHVyZVJlY29nbml6ZXJzXSBjb250
YWluc09iamVjdDpfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgp
XSAmJiAhX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMgJiYgX2RhdGEtPl9hbGxvd3NMaW5r
UHJldmlldykKLSAgICAgICAgICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9kYXRhLT5f
aW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwotI2VuZGlmCi0gICAgfSBl
bHNlIHsKLSAgICAgICAgVmlld1N0YXRlOjpGbGFncyB2aWV3U3RhdGVDaGFuZ2VzID0gVmlld1N0
YXRlOjpXaW5kb3dJc0FjdGl2ZSB8IFZpZXdTdGF0ZTo6SXNWaXNpYmxlOwotICAgICAgICBpZiAo
W3NlbGYgaXNEZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzXSkKLSAgICAgICAgICAgIF9kYXRh
LT5fdmlld0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQgPSBZRVM7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIHZpZXdTdGF0ZUNoYW5nZXMgfD0gVmlld1N0YXRlOjpJc0luV2luZG93OwotICAg
ICAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZSh2aWV3U3RhdGVDaGFuZ2VzKTsK
LQotICAgICAgICBbTlNFdmVudCByZW1vdmVNb25pdG9yOl9kYXRhLT5fZmxhZ3NDaGFuZ2VkRXZl
bnRNb25pdG9yXTsKLSAgICAgICAgX2RhdGEtPl9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IgPSBu
aWw7Ci0KLSAgICAgICAgW3NlbGYgX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NX
aXRoQW5pbWF0aW9uOk5PXTsKLQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxMDAwCi0gICAgICAgIGlmIChfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNv
Z25pemVyKQotICAgICAgICAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X2RhdGEt
Pl9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQoKV07Ci0jZW5kaWYKLSAgICB9
Ci0KLSAgICBfZGF0YS0+X3BhZ2UtPnNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKFtzZWxm
IF9pbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3Rvcl0pOwotfQotCi0tICh2b2lkKWRvV2luZG93RGlk
Q2hhbmdlU2NyZWVuCi17Ci0gICAgTlNXaW5kb3cgKndpbmRvdyA9IF9kYXRhLT5fdGFyZ2V0V2lu
ZG93Rm9yTW92ZVByZXBhcmF0aW9uID8gX2RhdGEtPl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFy
YXRpb24gOiBzZWxmLndpbmRvdzsKLSAgICBfZGF0YS0+X3BhZ2UtPndpbmRvd1NjcmVlbkRpZENo
YW5nZSgoUGxhdGZvcm1EaXNwbGF5SUQpW1tbW3dpbmRvdyBzY3JlZW5dIGRldmljZURlc2NyaXB0
aW9uXSBvYmplY3RGb3JLZXk6QCJOU1NjcmVlbk51bWJlciJdIGludFZhbHVlXSk7Ci19Ci0KLS0g
KHZvaWQpX3dpbmRvd0RpZEJlY29tZUtleTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24K
LXsKLSAgICBOU1dpbmRvdyAqa2V5V2luZG93ID0gW25vdGlmaWNhdGlvbiBvYmplY3RdOwotICAg
IGlmIChrZXlXaW5kb3cgPT0gW3NlbGYgd2luZG93XSB8fCBrZXlXaW5kb3cgPT0gW1tzZWxmIHdp
bmRvd10gYXR0YWNoZWRTaGVldF0pIHsKLSAgICAgICAgX2RhdGEtPl9pbXBsLT51cGRhdGVTZWN1
cmVJbnB1dFN0YXRlKCk7Ci0gICAgICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdl
KFZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOwotICAgIH0KLX0KLQotLSAodm9pZClfd2luZG93
RGlkQ2hhbmdlU2NyZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIFtz
ZWxmIGRvV2luZG93RGlkQ2hhbmdlU2NyZWVuXTsKLX0KLQotLSAodm9pZClfd2luZG93RGlkQ2hh
bmdlTGF5ZXJIb3N0aW5nOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIF9k
YXRhLT5fcGFnZS0+bGF5ZXJIb3N0aW5nTW9kZURpZENoYW5nZSgpOwotfQotCi0tICh2b2lkKV93
aW5kb3dEaWRSZXNpZ25LZXk6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCi17Ci0gICAg
TlNXaW5kb3cgKmZvcm1lcktleVdpbmRvdyA9IFtub3RpZmljYXRpb24gb2JqZWN0XTsKLSAgICBp
ZiAoZm9ybWVyS2V5V2luZG93ID09IFtzZWxmIHdpbmRvd10gfHwgZm9ybWVyS2V5V2luZG93ID09
IFtbc2VsZiB3aW5kb3ddIGF0dGFjaGVkU2hlZXRdKSB7Ci0gICAgICAgIF9kYXRhLT5faW1wbC0+
dXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSgpOwotICAgICAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0
ZURpZENoYW5nZShWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsKLSAgICB9Ci19Ci0KLS0gKHZv
aWQpX3dpbmRvd0RpZE1pbmlhdHVyaXplOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgot
ewotICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6SXNWaXNp
YmxlKTsKLX0KLQotLSAodm9pZClfd2luZG93RGlkRGVtaW5pYXR1cml6ZTooTlNOb3RpZmljYXRp
b24gKilub3RpZmljYXRpb24KLXsKLSAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5n
ZShWaWV3U3RhdGU6OklzVmlzaWJsZSk7Ci19Ci0KLS0gKHZvaWQpX3dpbmRvd0RpZE1vdmU6KE5T
Tm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCi17Ci0gICAgW3NlbGYgX3VwZGF0ZVdpbmRvd0Fu
ZFZpZXdGcmFtZXNdOyAgICAKLX0KLQotLSAodm9pZClfd2luZG93RGlkUmVzaXplOihOU05vdGlm
aWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIFtzZWxmIF91cGRhdGVXaW5kb3dBbmRWaWV3
RnJhbWVzXTsKLX0KLQotLSAodm9pZClfd2luZG93RGlkT3JkZXJPZmZTY3JlZW46KE5TTm90aWZp
Y2F0aW9uICopbm90aWZpY2F0aW9uCi17Ci0gICAgX2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRD
aGFuZ2UoVmlld1N0YXRlOjpJc1Zpc2libGUgfCBWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsK
LX0KLQotLSAodm9pZClfd2luZG93RGlkT3JkZXJPblNjcmVlbjooTlNOb3RpZmljYXRpb24gKilu
b3RpZmljYXRpb24KLXsKLSAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3
U3RhdGU6OklzVmlzaWJsZSB8IFZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOwotfQotCi0tICh2
b2lkKV93aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllczooTlNOb3RpZmljYXRpb24gKilu
b3RpZmljYXRpb24KLXsKLSAgICBDR0Zsb2F0IG9sZEJhY2tpbmdTY2FsZUZhY3RvciA9IFtbbm90
aWZpY2F0aW9uLnVzZXJJbmZvIG9iamVjdEZvcktleTpOU0JhY2tpbmdQcm9wZXJ0eU9sZFNjYWxl
RmFjdG9yS2V5XSBkb3VibGVWYWx1ZV07Ci0gICAgQ0dGbG9hdCBuZXdCYWNraW5nU2NhbGVGYWN0
b3IgPSBbc2VsZiBfaW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3JdOyAKLSAgICBpZiAob2xkQmFj
a2luZ1NjYWxlRmFjdG9yID09IG5ld0JhY2tpbmdTY2FsZUZhY3RvcikKLSAgICAgICAgcmV0dXJu
OyAKLQotICAgIF9kYXRhLT5fcGFnZS0+c2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IobmV3
QmFja2luZ1NjYWxlRmFjdG9yKTsKLX0KLQotLSAodm9pZClfd2luZG93RGlkQ2hhbmdlT2NjbHVz
aW9uU3RhdGU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCi17Ci0gICAgX2RhdGEtPl9w
YWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpJc1Zpc2libGUpOworICAgIF9kYXRh
LT5faW1wbC0+dmlld0RpZE1vdmVUb1dpbmRvdygpOwogfQogCiAtICh2b2lkKWRyYXdSZWN0OihO
U1JlY3QpcmVjdApAQCAtMjc2OSwxMyArMjM5Niw3IEBAIHN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9i
c2VydmluZ0NvbnRleHQgPSAma2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0OwogCiAtICh2b2lkKXZp
ZXdEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllcwogewotICAgIE5TQ29sb3JTcGFjZSAqY29sb3JT
cGFjZSA9IFtbc2VsZiB3aW5kb3ddIGNvbG9yU3BhY2VdOwotICAgIGlmIChbY29sb3JTcGFjZSBp
c0VxdWFsVG86X2RhdGEtPl9jb2xvclNwYWNlLmdldCgpXSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgX2RhdGEtPl9jb2xvclNwYWNlID0gbnVsbHB0cjsKLSAgICBpZiAoRHJhd2luZ0FyZWFQcm94
eSAqZHJhd2luZ0FyZWEgPSBfZGF0YS0+X3BhZ2UtPmRyYXdpbmdBcmVhKCkpCi0gICAgICAgIGRy
YXdpbmdBcmVhLT5jb2xvclNwYWNlRGlkQ2hhbmdlKCk7CisgICAgX2RhdGEtPl9pbXBsLT52aWV3
RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXMoKTsKIH0KIAogLSAodm9pZClfYWN0aXZlU3BhY2VE
aWRDaGFuZ2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCkBAIC0yNzgzLDMyICsyNDA0
LDYgQEAgc3RhdGljIHZvaWQqIGtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dCA9ICZrZXlWYWx1ZU9i
c2VydmluZ0NvbnRleHQ7CiAgICAgX2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoVmll
d1N0YXRlOjpJc1Zpc2libGUpOwogfQogCi0tICh2b2lkKV9wcmVwYXJlRm9yRGljdGlvbmFyeUxv
b2t1cAotewotICAgIGlmIChfZGF0YS0+X2RpZFJlZ2lzdGVyRm9yTG9va3VwUG9wb3ZlckNsb3Nl
Tm90aWZpY2F0aW9ucykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgX2RhdGEtPl9kaWRSZWdpc3Rl
ckZvckxvb2t1cFBvcG92ZXJDbG9zZU5vdGlmaWNhdGlvbnMgPSBZRVM7Ci0KLSAgICBpZiAoY2Fu
TG9hZExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9zZSgpKQotICAgICAgICBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNl
bGVjdG9yKF9kaWN0aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTopIG5hbWU6Z2V0TFVOb3Rp
ZmljYXRpb25Qb3BvdmVyV2lsbENsb3NlKCkgb2JqZWN0Om5pbF07Ci19Ci0KLS0gKHZvaWQpX2Rp
Y3Rpb25hcnlMb29rdXBQb3BvdmVyV2lsbENsb3NlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNh
dGlvbgotewotICAgIFtzZWxmIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOlRleHRJ
bmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmVdOwotfQotCi0tICh2b2lkKV9h
Y2Nlc3NpYmlsaXR5UmVnaXN0ZXJVSVByb2Nlc3NUb2tlbnMKLXsKLSAgICAvLyBJbml0aWFsaXpl
IHJlbW90ZSBhY2Nlc3NpYmlsaXR5IHdoZW4gdGhlIHdpbmRvdyBjb25uZWN0aW9uIGhhcyBiZWVu
IGVzdGFibGlzaGVkLgotICAgIE5TRGF0YSAqcmVtb3RlRWxlbWVudFRva2VuID0gV0tBWFJlbW90
ZVRva2VuRm9yRWxlbWVudChzZWxmKTsKLSAgICBOU0RhdGEgKnJlbW90ZVdpbmRvd1Rva2VuID0g
V0tBWFJlbW90ZVRva2VuRm9yRWxlbWVudChbc2VsZiB3aW5kb3ddKTsKLSAgICBJUEM6OkRhdGFS
ZWZlcmVuY2UgZWxlbWVudFRva2VuID0gSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgdWludDhfdCo+KFtyZW1vdGVFbGVtZW50VG9rZW4gYnl0ZXNdKSwgW3JlbW90ZUVs
ZW1lbnRUb2tlbiBsZW5ndGhdKTsKLSAgICBJUEM6OkRhdGFSZWZlcmVuY2Ugd2luZG93VG9rZW4g
PSBJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oW3Jl
bW90ZVdpbmRvd1Rva2VuIGJ5dGVzXSksIFtyZW1vdGVXaW5kb3dUb2tlbiBsZW5ndGhdKTsKLSAg
ICBfZGF0YS0+X3BhZ2UtPnJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNzaWJpbGl0eVRva2VucyhlbGVt
ZW50VG9rZW4sIHdpbmRvd1Rva2VuKTsKLX0KLQogLSAodm9pZClfdXBkYXRlUmVtb3RlQWNjZXNz
aWJpbGl0eVJlZ2lzdHJhdGlvbjooQk9PTClyZWdpc3RlclByb2Nlc3MKIHsKICAgICAvLyBXaGVu
IHRoZSB0cmVlIGlzIGNvbm5lY3RlZC9kaXNjb25uZWN0ZWQsIHRoZSByZW1vdGUgYWNjZXNzaWJp
bGl0eSByZWdpc3RyYXRpb24KQEAgLTI4MzMsNyArMjQyOCw3IEBAIHN0YXRpYyB2b2lkKiBrZXlW
YWx1ZU9ic2VydmluZ0NvbnRleHQgPSAma2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0OwogICAgIC8v
IEFmdGVyIGVuYWJsaW5nIGFjY2Vzc2liaWxpdHkgdXBkYXRlIHRoZSB3aW5kb3cgZnJhbWUgb24g
dGhlIHdlYiBwcm9jZXNzIHNvIHRoYXQgdGhlCiAgICAgLy8gY29ycmVjdCBhY2Nlc3NpYmlsaXR5
IHBvc2l0aW9uIGlzIHRyYW5zbWl0dGVkICh3aGVuIEFYIGlzIG9mZiwgdGhhdCBwb3NpdGlvbiBp
cyBub3QgY2FsY3VsYXRlZCkuCiAgICAgV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZW5hYmxlQWNj
ZXNzaWJpbGl0eSgpOwotICAgIFtzZWxmIF91cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzXTsKKyAg
ICBfZGF0YS0+X2ltcGwtPnVwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXMoKTsKIH0KIAogLSAoaWQp
YWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQKQEAgLTI4ODgsNDUgKzI0ODMsMTQgQEAgc3Rh
dGljIHZvaWQqIGtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dCA9ICZrZXlWYWx1ZU9ic2VydmluZ0Nv
bnRleHQ7CiAgICAgcmV0dXJuIGhpdFZpZXc7CiB9CiAKLS0gKHZvaWQpX3Bvc3RGYWtlTW91c2VN
b3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6KE5TRXZlbnQgKilmbGFnc0NoYW5nZWRFdmVu
dAotewotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpOU01vdXNlTW92ZWQgbG9jYXRpb246W1tmbGFnc0NoYW5nZWRFdmVudCB3aW5kb3ddIG1vdXNl
TG9jYXRpb25PdXRzaWRlT2ZFdmVudFN0cmVhbV0KLSAgICAgICAgbW9kaWZpZXJGbGFnczpbZmxh
Z3NDaGFuZ2VkRXZlbnQgbW9kaWZpZXJGbGFnc10gdGltZXN0YW1wOltmbGFnc0NoYW5nZWRFdmVu
dCB0aW1lc3RhbXBdIHdpbmRvd051bWJlcjpbZmxhZ3NDaGFuZ2VkRXZlbnQgd2luZG93TnVtYmVy
XQotICAgICAgICBjb250ZXh0OltmbGFnc0NoYW5nZWRFdmVudCBjb250ZXh0XSBldmVudE51bWJl
cjowIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowXTsKLSAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdl
YkV2ZW50KGZha2VFdmVudCwgX2RhdGEtPl9wcmVzc3VyZUV2ZW50LCBzZWxmKTsKLSAgICBfZGF0
YS0+X3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOwotfQotCiAtIChOU0ludGVnZXIp
Y29udmVyc2F0aW9uSWRlbnRpZmllcgogewogICAgIHJldHVybiAoTlNJbnRlZ2VyKXNlbGY7CiB9
CiAKLS0gKGZsb2F0KV9pbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcgotewotICAgIGlmIChfZGF0
YS0+X292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IpCi0gICAgICAgIHJldHVybiBfZGF0YS0+X292
ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I7Ci0gICAgaWYgKF9kYXRhLT5fdGFyZ2V0V2luZG93Rm9y
TW92ZVByZXBhcmF0aW9uKQotICAgICAgICByZXR1cm4gW19kYXRhLT5fdGFyZ2V0V2luZG93Rm9y
TW92ZVByZXBhcmF0aW9uIGJhY2tpbmdTY2FsZUZhY3Rvcl07Ci0gICAgaWYgKE5TV2luZG93ICp3
aW5kb3cgPSBbc2VsZiB3aW5kb3ddKQotICAgICAgICByZXR1cm4gW3dpbmRvdyBiYWNraW5nU2Nh
bGVGYWN0b3JdOwotICAgIHJldHVybiBbW05TU2NyZWVuIG1haW5TY3JlZW5dIGJhY2tpbmdTY2Fs
ZUZhY3Rvcl07Ci19Ci0KIC0gKHZvaWQpcXVpY2tMb29rV2l0aEV2ZW50OihOU0V2ZW50ICopZXZl
bnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCi0gICAgICAgIHJl
dHVybjsKLQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0g
ICAgaWYgKF9kYXRhLT5faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIpIHsKLSAgICAg
ICAgW3N1cGVyIHF1aWNrTG9va1dpdGhFdmVudDpldmVudF07Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0jZW5kaWYKLQotICAgIE5TUG9pbnQgbG9jYXRpb25JblZpZXdDb29yZGluYXRlcyA9IFtz
ZWxmIGNvbnZlcnRQb2ludDpbZXZlbnQgbG9jYXRpb25JbldpbmRvd10gZnJvbVZpZXc6bmlsXTsK
LSAgICBfZGF0YS0+X3BhZ2UtPnBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwQXRMb2NhdGlvbihGbG9h
dFBvaW50KGxvY2F0aW9uSW5WaWV3Q29vcmRpbmF0ZXMueCwgbG9jYXRpb25JblZpZXdDb29yZGlu
YXRlcy55KSk7CisgICAgX2RhdGEtPl9pbXBsLT5xdWlja0xvb2tXaXRoRXZlbnQoZXZlbnQpOwog
fQogCiAtIChzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5PilfY3JlYXRl
RHJhd2luZ0FyZWFQcm94eQpAQCAtMjkzOSwxOSArMjUwMyw3IEBAIHN0YXRpYyB2b2lkKiBrZXlW
YWx1ZU9ic2VydmluZ0NvbnRleHQgPSAma2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0OwogCiAtIChX
ZWJLaXQ6OkNvbG9yU3BhY2VEYXRhKV9jb2xvclNwYWNlCiB7Ci0gICAgaWYgKCFfZGF0YS0+X2Nv
bG9yU3BhY2UpIHsKLSAgICAgICAgaWYgKF9kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBh
cmF0aW9uKQotICAgICAgICAgICAgX2RhdGEtPl9jb2xvclNwYWNlID0gW19kYXRhLT5fdGFyZ2V0
V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uIGNvbG9yU3BhY2VdOwotICAgICAgICBlbHNlIGlmIChO
U1dpbmRvdyAqd2luZG93ID0gW3NlbGYgd2luZG93XSkKLSAgICAgICAgICAgIF9kYXRhLT5fY29s
b3JTcGFjZSA9IFt3aW5kb3cgY29sb3JTcGFjZV07Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IF9kYXRhLT5fY29sb3JTcGFjZSA9IFtbTlNTY3JlZW4gbWFpblNjcmVlbl0gY29sb3JTcGFjZV07
Ci0gICAgfQotICAgICAgICAKLSAgICBDb2xvclNwYWNlRGF0YSBjb2xvclNwYWNlRGF0YTsKLSAg
ICBjb2xvclNwYWNlRGF0YS5jZ0NvbG9yU3BhY2UgPSBbX2RhdGEtPl9jb2xvclNwYWNlIENHQ29s
b3JTcGFjZV07Ci0KLSAgICByZXR1cm4gY29sb3JTcGFjZURhdGE7ICAgIAorICAgIHJldHVybiBf
ZGF0YS0+X2ltcGwtPmNvbG9yU3BhY2UoKTsKIH0KIAogLSAodm9pZClfcHJvY2Vzc0RpZEV4aXQK
QEAgLTI5NzMsMTkgKzI1MjUsNyBAQCBzdGF0aWMgdm9pZCoga2V5VmFsdWVPYnNlcnZpbmdDb250
ZXh0ID0gJmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dDsKIAogLSAodm9pZClfZGlkUmVsYXVuY2hQ
cm9jZXNzCiB7Ci0gICAgW3NlbGYgX2FjY2Vzc2liaWxpdHlSZWdpc3RlclVJUHJvY2Vzc1Rva2Vu
c107Ci19Ci0KLS0gKHZvaWQpX3ByZWZlcmVuY2VzRGlkQ2hhbmdlCi17Ci0gICAgQk9PTCBuZWVk
c1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMgPSBfZGF0YS0+X3BhZ2UtPnByZWZlcmVuY2Vz
KCkucGx1Z2luc0VuYWJsZWQoKTsKLQotICAgIGlmICghIW5lZWRzVmlld0ZyYW1lSW5XaW5kb3dD
b29yZGluYXRlcyA9PSAhIV9kYXRhLT5fbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVz
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBfZGF0YS0+X25lZWRzVmlld0ZyYW1lSW5XaW5kb3dD
b29yZGluYXRlcyA9IG5lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlczsKLSAgICBpZiAo
W3NlbGYgd2luZG93XSkKLSAgICAgICAgW3NlbGYgX3VwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXNd
OworICAgIF9kYXRhLT5faW1wbC0+YWNjZXNzaWJpbGl0eVJlZ2lzdGVyVUlQcm9jZXNzVG9rZW5z
KCk7CiB9CiAKIC0gKHZvaWQpX3NldFVzZXJJbnRlcmZhY2VJdGVtU3RhdGU6KE5TU3RyaW5nICop
Y29tbWFuZE5hbWUgZW5hYmxlZDooQk9PTClpc0VuYWJsZWQgc3RhdGU6KGludCluZXdTdGF0ZQpA
QCAtMzE2NCwzMSArMjcwNCwyNSBAQCBzdGF0aWMgdm9pZCoga2V5VmFsdWVPYnNlcnZpbmdDb250
ZXh0ID0gJmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dDsKICAgICB9CiB9CiAKKy8vIEZJWE1FOiBU
aGVzZSBhcmUgaW50ZXJuYWwgc28gdGhleSBzaG91bGRuJ3QgYmUgaGVyZS4KIC0gKHZvaWQpX3Nl
dFRleHRJbmRpY2F0b3I6KFRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3IKIHsKLSAgICBbc2Vs
ZiBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpUZXh0SW5kaWNh
dG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgX2RhdGEtPl9pbXBsLT5zZXRUZXh0
SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IpOwogfQogCiAtICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9y
OihUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooVGV4dEluZGljYXRv
cldpbmRvd0xpZmV0aW1lKWxpZmV0aW1lCiB7Ci0gICAgaWYgKCFfZGF0YS0+X3RleHRJbmRpY2F0
b3JXaW5kb3cpCi0gICAgICAgIF9kYXRhLT5fdGV4dEluZGljYXRvcldpbmRvdyA9IHN0ZDo6bWFr
ZV91bmlxdWU8VGV4dEluZGljYXRvcldpbmRvdz4oc2VsZik7Ci0KLSAgICBOU1JlY3QgdGV4dEJv
dW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMgPSBbc2VsZi53aW5kb3cgY29udmVydFJlY3RU
b1NjcmVlbjpbc2VsZiBjb252ZXJ0UmVjdDp0ZXh0SW5kaWNhdG9yLnRleHRCb3VuZGluZ1JlY3RJ
blJvb3RWaWV3Q29vcmRpbmF0ZXMoKSB0b1ZpZXc6bmlsXV07Ci0gICAgX2RhdGEtPl90ZXh0SW5k
aWNhdG9yV2luZG93LT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIE5TUmVjdFRvQ0dS
ZWN0KHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzKSwgbGlmZXRpbWUpOworICAg
IF9kYXRhLT5faW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBsaWZldGltZSk7
CiB9CiAKIC0gKHZvaWQpX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246KFRleHRJbmRp
Y2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uCiB7Ci0gICAgaWYgKF9kYXRh
LT5fdGV4dEluZGljYXRvcldpbmRvdykKLSAgICAgICAgX2RhdGEtPl90ZXh0SW5kaWNhdG9yV2lu
ZG93LT5jbGVhclRleHRJbmRpY2F0b3IoYW5pbWF0aW9uKTsKLSAgICBfZGF0YS0+X3RleHRJbmRp
Y2F0b3JXaW5kb3cgPSBudWxscHRyOworICAgIF9kYXRhLT5faW1wbC0+Y2xlYXJUZXh0SW5kaWNh
dG9yV2l0aEFuaW1hdGlvbihhbmltYXRpb24pOwogfQogCiAtICh2b2lkKV9zZXRUZXh0SW5kaWNh
dG9yQW5pbWF0aW9uUHJvZ3Jlc3M6KGZsb2F0KXByb2dyZXNzCiB7Ci0gICAgaWYgKF9kYXRhLT5f
dGV4dEluZGljYXRvcldpbmRvdykKLSAgICAgICAgX2RhdGEtPl90ZXh0SW5kaWNhdG9yV2luZG93
LT5zZXRBbmltYXRpb25Qcm9ncmVzcyhwcm9ncmVzcyk7CisgICAgX2RhdGEtPl9pbXBsLT5zZXRU
ZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MocHJvZ3Jlc3MpOwogfQogCiAtICh2b2lkKV9z
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZVJvb3RMYXllcjooQ0FMYXllciAqKXJvb3RMYXll
cgpAQCAtMzUyMiwxMiArMzA1Niw2IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVG
aWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgcmV0dXJuIFtOU0FycmF5IGFycmF5
V2l0aE9iamVjdDpbcGF0aCBsYXN0UGF0aENvbXBvbmVudF1dOwogfQogCi0KLS0gKE5TV2luZG93
ICopX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbgotewotICAgIHJldHVybiBfZGF0YS0+
X3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbjsKLX0KLQogI2lmIEVOQUJMRShGVUxMU0NS
RUVOX0FQSSkKIC0gKEJPT0wpX2hhc0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyCiB7CkBAIC0z
NjIxLDIzICszMTQ5LDE3IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFt
ZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgX2RhdGEtPl9wYWdlQ2xpZW50ID0gc3RkOjpt
YWtlX3VuaXF1ZTxQYWdlQ2xpZW50SW1wbD4oc2VsZiwgd2ViVmlldyk7CiAgICAgX2RhdGEtPl9w
YWdlID0gcHJvY2Vzc1Bvb2wuY3JlYXRlV2ViUGFnZSgqX2RhdGEtPl9wYWdlQ2xpZW50LCBXVEY6
Om1vdmUoY29uZmlndXJhdGlvbikpOwogCi0gICAgX2RhdGEtPl9pbXBsID0gc3RkOjptYWtlX3Vu
aXF1ZTxXZWJWaWV3SW1wbD4oc2VsZiwgKl9kYXRhLT5fcGFnZSk7Ci0gICAgc3RhdGljX2Nhc3Q8
UGFnZUNsaWVudEltcGwqPihfZGF0YS0+X3BhZ2VDbGllbnQuZ2V0KCkpLT5zZXRJbXBsKCpfZGF0
YS0+X2ltcGwpOworICAgIF9kYXRhLT5faW1wbCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViVmlld0lt
cGw+KHNlbGYsICpfZGF0YS0+X3BhZ2UsICpfZGF0YS0+X3BhZ2VDbGllbnQpOworICAgIHN0YXRp
Y19jYXN0PFBhZ2VDbGllbnRJbXBsJj4oKl9kYXRhLT5fcGFnZUNsaWVudCkuc2V0SW1wbCgqX2Rh
dGEtPl9pbXBsKTsKIAogICAgIF9kYXRhLT5fcGFnZS0+c2V0QWRkc1Zpc2l0ZWRMaW5rcyhwcm9j
ZXNzUG9vbC5oaXN0b3J5Q2xpZW50KCkuYWRkc1Zpc2l0ZWRMaW5rcygpKTsKIAotICAgIF9kYXRh
LT5fcGFnZS0+c2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoW3NlbGYgX2ludHJpbnNpY0Rl
dmljZVNjYWxlRmFjdG9yXSk7CiAgICAgX2RhdGEtPl9wYWdlLT5pbml0aWFsaXplV2ViUGFnZSgp
OwogCiAgICAgX2RhdGEtPl9tb3VzZURvd25FdmVudCA9IG5pbDsKLSAgICBfZGF0YS0+X3ByZXNz
dXJlRXZlbnQgPSBuaWw7CiAgICAgX2RhdGEtPl9pZ25vcmluZ01vdXNlRHJhZ2dlZEV2ZW50cyA9
IE5POwogICAgIF9kYXRhLT5fd2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZCA9IFlFUzsK
IAotICAgIF9kYXRhLT5fd2luZG93VmlzaWJpbGl0eU9ic2VydmVyID0gYWRvcHROUyhbW1dLV2lu
ZG93VmlzaWJpbGl0eU9ic2VydmVyIGFsbG9jXSBpbml0V2l0aFZpZXc6c2VsZl0pOwotCi0gICAg
X2RhdGEtPl9uZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMgPSBfZGF0YS0+X3BhZ2Ut
PnByZWZlcmVuY2VzKCkucGx1Z2luc0VuYWJsZWQoKTsKLQogICAgIFtzZWxmIF9yZWdpc3RlckRy
YWdnZWRUeXBlc107CiAKICAgICBzZWxmLndhbnRzTGF5ZXIgPSBZRVM7CkBAIC0zNjUwLDE3ICsz
MTcyLDYgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChO
U1N0cmluZyAqcGF0aCkKICAgICBOU05vdGlmaWNhdGlvbkNlbnRlciogd29ya3NwYWNlTm90aWZp
Y2F0aW9uQ2VudGVyID0gW1tOU1dvcmtzcGFjZSBzaGFyZWRXb3Jrc3BhY2VdIG5vdGlmaWNhdGlv
bkNlbnRlcl07CiAgICAgW3dvcmtzcGFjZU5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpz
ZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfYWN0aXZlU3BhY2VEaWRDaGFuZ2U6KSBuYW1lOk5TV29y
a3NwYWNlQWN0aXZlU3BhY2VEaWRDaGFuZ2VOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CiAKLSNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAotICAgIF9kYXRhLT5f
YWxsb3dzTGlua1ByZXZpZXcgPSBZRVM7Ci0KLSAgICBpZiAoQ2xhc3MgZ2VzdHVyZUNsYXNzID0g
TlNDbGFzc0Zyb21TdHJpbmcoQCJOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyIikp
IHsKLSAgICAgICAgX2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciA9IGFk
b3B0TlMoWyhOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICopW2dlc3R1cmVDbGFz
cyBhbGxvY10gaW5pdF0pOwotICAgICAgICBfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xs
ZXIgPSBhZG9wdE5TKFtbV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGFsbG9jXSBpbml0V2l0
aFBhZ2U6Kl9kYXRhLT5fcGFnZSB2aWV3OnNlbGYgcmVjb2duaXplcjpfZGF0YS0+X2ltbWVkaWF0
ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgpXSk7Ci0gICAgICAgIFtfZGF0YS0+X2ltbWVk
aWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyIHNldERlbGVnYXRlOl9kYXRhLT5faW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlci5nZXQoKV07Ci0gICAgICAgIFtfZGF0YS0+X2ltbWVkaWF0ZUFjdGlv
bkdlc3R1cmVSZWNvZ25pemVyIHNldERlbGF5c1ByaW1hcnlNb3VzZUJ1dHRvbkV2ZW50czpOT107
Ci0gICAgfQotI2VuZGlmCi0KICAgICByZXR1cm4gc2VsZjsKIH0KIApAQCAtMzcwNSw0MiArMzIx
Niw2IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNT
dHJpbmcgKnBhdGgpCiB9CiAjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKIAotI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0KLS0gKHZvaWQpX3VwZGF0ZUNvbnRl
bnRJbnNldHNJZkF1dG9tYXRpYwotewotICAgIGlmICghc2VsZi5fYXV0b21hdGljYWxseUFkanVz
dHNDb250ZW50SW5zZXRzKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoKHNlbGYud2luZG93
LnN0eWxlTWFzayAmIE5TRnVsbFNpemVDb250ZW50Vmlld1dpbmRvd01hc2spICYmICFzZWxmLndp
bmRvdy50aXRsZWJhckFwcGVhcnNUcmFuc3BhcmVudCAmJiAhW3NlbGYgZW5jbG9zaW5nU2Nyb2xs
Vmlld10pIHsKLSAgICAgICAgTlNSZWN0IGNvbnRlbnRMYXlvdXRSZWN0ID0gW3NlbGYgY29udmVy
dFJlY3Q6c2VsZi53aW5kb3cuY29udGVudExheW91dFJlY3QgZnJvbVZpZXc6bmlsXTsKLSAgICAg
ICAgQ0dGbG9hdCBuZXdUb3BDb250ZW50SW5zZXQgPSBOU01heFkoY29udGVudExheW91dFJlY3Qp
IC0gTlNIZWlnaHQoY29udGVudExheW91dFJlY3QpOwotICAgICAgICBpZiAoc2VsZi5fdG9wQ29u
dGVudEluc2V0ICE9IG5ld1RvcENvbnRlbnRJbnNldCkKLSAgICAgICAgICAgIHNlbGYuX3RvcENv
bnRlbnRJbnNldCA9IG5ld1RvcENvbnRlbnRJbnNldDsKLSAgICB9IGVsc2UKLSAgICAgICAgc2Vs
Zi5fdG9wQ29udGVudEluc2V0ID0gMDsKLX0KLQotI2VuZGlmCi0KLS0gKHZvaWQpb2JzZXJ2ZVZh
bHVlRm9yS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0OihpZClvYmplY3QgY2hh
bmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4dDoodm9pZCAqKWNvbnRleHQKLXsKLSNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAotICAgIGlmIChjb250
ZXh0ICE9IGtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dCkgewotICAgICAgICBbc3VwZXIgb2JzZXJ2
ZVZhbHVlRm9yS2V5UGF0aDprZXlQYXRoIG9mT2JqZWN0Om9iamVjdCBjaGFuZ2U6Y2hhbmdlIGNv
bnRleHQ6Y29udGV4dF07Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoW2tleVBh
dGggaXNFcXVhbFRvU3RyaW5nOkAidmlzaWJsZSJdICYmIFtOU0ZvbnRQYW5lbCBzaGFyZWRGb250
UGFuZWxFeGlzdHNdICYmIG9iamVjdCA9PSBbTlNGb250UGFuZWwgc2hhcmVkRm9udFBhbmVsXSkg
ewotICAgICAgICBbc2VsZiB1cGRhdGVGb250UGFuZWxJZk5lZWRlZF07Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0gICAgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAImNvbnRlbnRMYXlv
dXRSZWN0Il0gfHwgW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAidGl0bGViYXJBcHBlYXJzVHJh
bnNwYXJlbnQiXSkKLSAgICAgICAgW3NlbGYgX3VwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9tYXRp
Y107Ci0jZW5kaWYKLX0KLQotCiAtICh2b2lkKV9kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGb3JNYWluRnJhbWUKIHsKICAgICBpZiAoX2RhdGEtPl9nZXN0dXJlQ29udHJvbGxlcikKQEAg
LTM3ODcsNyArMzI2Miw4IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFt
ZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAKIC0gKHZvaWQpX2RpZFBlcmZvcm1JbW1lZGlhdGVB
Y3Rpb25IaXRUZXN0Oihjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYpaGl0VGVzdFJlc3VsdCBj
b250ZW50UHJldmVudHNEZWZhdWx0OihCT09MKWNvbnRlbnRQcmV2ZW50c0RlZmF1bHQgdXNlckRh
dGE6KEFQSTo6T2JqZWN0Kil1c2VyRGF0YQogewotICAgIFtfZGF0YS0+X2ltbWVkaWF0ZUFjdGlv
bkNvbnRyb2xsZXIgZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3Q6aGl0VGVzdFJlc3Vs
dCBjb250ZW50UHJldmVudHNEZWZhdWx0OmNvbnRlbnRQcmV2ZW50c0RlZmF1bHQgdXNlckRhdGE6
dXNlckRhdGFdOworICAgIC8vIEZJWE1FOgorLy8gICAgW19kYXRhLT5faW1tZWRpYXRlQWN0aW9u
Q29udHJvbGxlciBkaWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9uSGl0VGVzdDpoaXRUZXN0UmVzdWx0
IGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQ6Y29udGVudFByZXZlbnRzRGVmYXVsdCB1c2VyRGF0YTp1
c2VyRGF0YV07CiB9CiAKICNlbmRpZiAvLyBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTAwMApAQCAtMzgwNSw2ICszMjgxLDMxIEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdp
dGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgX2RhdGEtPl9pbXBs
LT51cGRhdGVWaWV3RXhwb3NlZFJlY3QoKTsKIH0KIAorLSAoaWQpX2ludGVybmFsSW1tZWRpYXRl
QWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6KFdLSGl0VGVzdFJlc3Vs
dFJlZiloaXRUZXN0UmVzdWx0IHdpdGhUeXBlOih1aW50MzJfdCl0eXBlIHVzZXJEYXRhOihXS1R5
cGVSZWYpdXNlckRhdGEKK3sKKyAgICByZXR1cm4gW3NlbGYgX2ltbWVkaWF0ZUFjdGlvbkFuaW1h
dGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0OmhpdFRlc3RSZXN1bHQgd2l0aFR5cGU6dHlw
ZSB1c2VyRGF0YTp1c2VyRGF0YV07Cit9CisKKy0gKHZvaWQpX2ludGVybmFsUHJlcGFyZUZvcklt
bWVkaWF0ZUFjdGlvbkFuaW1hdGlvbgoreworICAgIFtzZWxmIF9wcmVwYXJlRm9ySW1tZWRpYXRl
QWN0aW9uQW5pbWF0aW9uXTsKK30KKworLSAodm9pZClfaW50ZXJuYWxDYW5jZWxJbW1lZGlhdGVB
Y3Rpb25BbmltYXRpb24KK3sKKyAgICBbc2VsZiBfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0
aW9uXTsKK30KKworLSAodm9pZClfaW50ZXJuYWxDb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1h
dGlvbgoreworICAgIFtzZWxmIF9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl07Cit9
CisKKy0gKHZvaWQpX2ludGVybmFsRGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dp
dGhBbmltYXRpb246KEJPT0wpYW5pbWF0ZQoreworICAgIFtzZWxmIF9kaXNtaXNzQ29udGVudFJl
bGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbjphbmltYXRlXTsKK30KKwogQGVuZAogCiBA
aW1wbGVtZW50YXRpb24gV0tWaWV3IChQcml2YXRlKQpAQCAtMzk5Myw3MiArMzQ5NCwyOSBAQCBz
dGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpw
YXRoKQogICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmNyZWF0ZUZ1bGxTY3JlZW5XaW5kb3coKTsK
IH0KIAotLy8gRklYTUU6IEFsbCBvZiB0aGVzZSAiRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdl
cyIgbWV0aG9kcyBzaG91bGQgYmUgYWJsZSB0byBiZSByZW1vdmVkIG9uY2UgY2xpZW50cyBhcmUg
d2VhbmVkIG9mZiBvZiB0aGVtLgogLSAodm9pZCliZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRvd0No
YW5nZXMKIHsKLSAgICBpZiAoX2RhdGEtPl9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMp
IHsKLSAgICAgICAgTlNMb2coQCJiZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMgd2Fz
IGNhbGxlZCB3aGlsZSBhbHJlYWR5IGRlZmVycmluZyB2aWV3LWluLXdpbmRvdyBjaGFuZ2VzISIp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgX2RhdGEtPl9zaG91bGREZWZlclZpZXdJ
bldpbmRvd0NoYW5nZXMgPSBZRVM7CisgICAgX2RhdGEtPl9pbXBsLT5iZWdpbkRlZmVycmluZ1Zp
ZXdJbldpbmRvd0NoYW5nZXMoKTsKIH0KIAogLSAodm9pZCllbmREZWZlcnJpbmdWaWV3SW5XaW5k
b3dDaGFuZ2VzCiB7Ci0gICAgaWYgKCFfZGF0YS0+X3Nob3VsZERlZmVyVmlld0luV2luZG93Q2hh
bmdlcykgewotICAgICAgICBOU0xvZyhAImVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMg
d2FzIGNhbGxlZCB3aXRob3V0IGJlZ2luRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcyEiKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIF9kYXRhLT5fc2hvdWxkRGVmZXJWaWV3SW5X
aW5kb3dDaGFuZ2VzID0gTk87Ci0KLSAgICBpZiAoX2RhdGEtPl92aWV3SW5XaW5kb3dDaGFuZ2VX
YXNEZWZlcnJlZCkgewotICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRUb3BDb250ZW50SW5zZXRd
OwotICAgICAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6Oklz
SW5XaW5kb3cpOwotICAgICAgICBfZGF0YS0+X3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVk
ID0gTk87Ci0gICAgfQorICAgIF9kYXRhLT5faW1wbC0+ZW5kRGVmZXJyaW5nVmlld0luV2luZG93
Q2hhbmdlcygpOwogfQogCiAtICh2b2lkKWVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNT
eW5jCiB7Ci0gICAgaWYgKCFfZGF0YS0+X3Nob3VsZERlZmVyVmlld0luV2luZG93Q2hhbmdlcykg
ewotICAgICAgICBOU0xvZyhAImVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNTeW5jIHdh
cyBjYWxsZWQgd2l0aG91dCBiZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMhIik7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBfZGF0YS0+X3Nob3VsZERlZmVyVmlld0luV2lu
ZG93Q2hhbmdlcyA9IE5POwotCi0gICAgaWYgKF9kYXRhLT5fdmlld0luV2luZG93Q2hhbmdlV2Fz
RGVmZXJyZWQpIHsKLSAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0XTsK
LSAgICAgICAgX2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpJc0lu
V2luZG93KTsKLSAgICAgICAgX2RhdGEtPl92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9
IE5POwotICAgIH0KKyAgICBfZGF0YS0+X2ltcGwtPmVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0No
YW5nZXNTeW5jKCk7CiB9CiAKIC0gKHZvaWQpX3ByZXBhcmVGb3JNb3ZlVG9XaW5kb3c6KE5TV2lu
ZG93ICopdGFyZ2V0V2luZG93IHdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSlj
b21wbGV0aW9uSGFuZGxlcgogewotICAgIF9kYXRhLT5fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dD
aGFuZ2VzID0gWUVTOwotICAgIFtzZWxmIHZpZXdXaWxsTW92ZVRvV2luZG93OnRhcmdldFdpbmRv
d107Ci0gICAgX2RhdGEtPl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gPSB0YXJnZXRX
aW5kb3c7Ci0gICAgW3NlbGYgdmlld0RpZE1vdmVUb1dpbmRvd107Ci0KLSAgICBfZGF0YS0+X3No
b3VsZERlZmVyVmlld0luV2luZG93Q2hhbmdlcyA9IE5POwotCi0gICAgX2RhdGEtPl9wYWdlLT5p
bnN0YWxsVmlld1N0YXRlQ2hhbmdlQ29tcGxldGlvbkhhbmRsZXIoXigpIHsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgQVNTRVJUKHNlbGYud2luZG93ID09IF9kYXRhLT5f
dGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uKTsKLSAgICAgICAgX2RhdGEtPl90YXJnZXRX
aW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gPSBuaWw7Ci0gICAgfSk7Ci0KLSAgICBbc2VsZiBfZGlz
cGF0Y2hTZXRUb3BDb250ZW50SW5zZXRdOwotICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0YXRlRGlk
Q2hhbmdlKFZpZXdTdGF0ZTo6SXNJbldpbmRvdywgZmFsc2UsIFdlYlBhZ2VQcm94eTo6Vmlld1N0
YXRlQ2hhbmdlRGlzcGF0Y2hNb2RlOjpJbW1lZGlhdGUpOwotICAgIF9kYXRhLT5fdmlld0luV2lu
ZG93Q2hhbmdlV2FzRGVmZXJyZWQgPSBOTzsKKyAgICBfZGF0YS0+X2ltcGwtPnByZXBhcmVGb3JN
b3ZlVG9XaW5kb3codGFyZ2V0V2luZG93LCBjb21wbGV0aW9uSGFuZGxlcik7CiB9CiAKIC0gKEJP
T0wpaXNEZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzCiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5f
c2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwt
PmlzRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcygpOwogfQogCiAtIChCT09MKXdpbmRvd09j
Y2x1c2lvbkRldGVjdGlvbkVuYWJsZWQKQEAgLTQwODUsNzMgKzM1NDMsNDggQEAgc3RhdGljIE5T
U3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKIAog
LSAoQk9PTClhbGxvd3NMaW5rUHJldmlldwogewotICAgIHJldHVybiBfZGF0YS0+X2FsbG93c0xp
bmtQcmV2aWV3OworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmFsbG93c0xpbmtQcmV2aWV3KCk7
CiB9CiAKIC0gKHZvaWQpc2V0QWxsb3dzTGlua1ByZXZpZXc6KEJPT0wpYWxsb3dzTGlua1ByZXZp
ZXcKIHsKLSAgICBpZiAoX2RhdGEtPl9hbGxvd3NMaW5rUHJldmlldyA9PSBhbGxvd3NMaW5rUHJl
dmlldykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgX2RhdGEtPl9hbGxvd3NMaW5rUHJldmlldyA9
IGFsbG93c0xpbmtQcmV2aWV3OwotICAgIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMDAwCi0gICAgaWYgKCFhbGxvd3NMaW5rUHJldmlldykKLSAgICAgICAgW3Nl
bGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25HZXN0dXJl
UmVjb2duaXplci5nZXQoKV07Ci0gICAgZWxzZSBpZiAoTlNHZXN0dXJlUmVjb2duaXplciAqaW1t
ZWRpYXRlQWN0aW9uUmVjb2duaXplciA9IF9kYXRhLT5faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJl
Y29nbml6ZXIuZ2V0KCkpCi0gICAgICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOmltbWVk
aWF0ZUFjdGlvblJlY29nbml6ZXJdOwotI2VuZGlmCisgICAgX2RhdGEtPl9pbXBsLT5zZXRBbGxv
d3NMaW5rUHJldmlldyhhbGxvd3NMaW5rUHJldmlldyk7CiB9CiAKIC0gKHZvaWQpX3NldElnbm9y
ZXNBbGxFdmVudHM6KEJPT0wpaWdub3Jlc0FsbEV2ZW50cwogewotICAgIF9kYXRhLT5faWdub3Jl
c0FsbEV2ZW50cyA9IGlnbm9yZXNBbGxFdmVudHM7Ci0gICAgW3NlbGYgX3NldElnbm9yZXNOb25X
aGVlbEV2ZW50czppZ25vcmVzQWxsRXZlbnRzXTsKKyAgICBfZGF0YS0+X2ltcGwtPnNldElnbm9y
ZXNBbGxFdmVudHMoaWdub3Jlc0FsbEV2ZW50cyk7CiB9CiAKIC8vIEZvcndhcmQgX3NldElnbm9y
ZXNOb25XaGVlbE1vdXNlRXZlbnRzIHRvIF9zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHMgdG8gYXZv
aWQgYnJlYWtpbmcgZXhpc3RpbmcgY2xpZW50cy4KIC0gKHZvaWQpX3NldElnbm9yZXNOb25XaGVl
bE1vdXNlRXZlbnRzOihCT09MKWlnbm9yZXNOb25XaGVlbE1vdXNlRXZlbnRzCiB7Ci0gICAgW3Nl
bGYgX3NldElnbm9yZXNOb25XaGVlbEV2ZW50czppZ25vcmVzTm9uV2hlZWxNb3VzZUV2ZW50c107
CisgICAgX2RhdGEtPl9pbXBsLT5zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHMoaWdub3Jlc05vbldo
ZWVsTW91c2VFdmVudHMpOwogfQogCiAtICh2b2lkKV9zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHM6
KEJPT0wpaWdub3Jlc05vbldoZWVsRXZlbnRzCiB7Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05v
bldoZWVsRXZlbnRzID09IGlnbm9yZXNOb25XaGVlbEV2ZW50cykKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMgPSBpZ25vcmVzTm9uV2hlZWxFdmVu
dHM7Ci0gICAgX2RhdGEtPl9wYWdlLT5zZXRTaG91bGREaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVu
dHMoIWlnbm9yZXNOb25XaGVlbEV2ZW50cyk7Ci0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTAwMAotICAgIGlmIChpZ25vcmVzTm9uV2hlZWxFdmVudHMpCi0gICAg
ICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9kYXRhLT5faW1tZWRpYXRlQWN0aW9u
R2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwotICAgIGVsc2UgaWYgKE5TR2VzdHVyZVJlY29nbml6
ZXIgKmltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXIgPSBfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkdl
c3R1cmVSZWNvZ25pemVyLmdldCgpKSB7Ci0gICAgICAgIGlmIChfZGF0YS0+X2FsbG93c0xpbmtQ
cmV2aWV3KQotICAgICAgICAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6aW1tZWRpYXRl
QWN0aW9uUmVjb2duaXplcl07Ci0gICAgfQotI2VuZGlmCisgICAgX2RhdGEtPl9pbXBsLT5zZXRJ
Z25vcmVzTm9uV2hlZWxFdmVudHMoaWdub3Jlc05vbldoZWVsRXZlbnRzKTsKIH0KIAogLSAoQk9P
TClfaWdub3Jlc05vbldoZWVsRXZlbnRzCiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5faWdub3Jlc05v
bldoZWVsRXZlbnRzOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2
ZW50cygpOwogfQogCiAtIChCT09MKV9pZ25vcmVzQWxsRXZlbnRzCiB7Ci0gICAgcmV0dXJuIF9k
YXRhLT5faWdub3Jlc0FsbEV2ZW50czsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5pZ25vcmVz
QWxsRXZlbnRzKCk7CiB9CiAKIC0gKHZvaWQpX3NldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I6
KENHRmxvYXQpZGV2aWNlU2NhbGVGYWN0b3IKIHsKLSAgICBfZGF0YS0+X292ZXJyaWRlRGV2aWNl
U2NhbGVGYWN0b3IgPSBkZXZpY2VTY2FsZUZhY3RvcjsKLSAgICBfZGF0YS0+X3BhZ2UtPnNldElu
dHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKFtzZWxmIF9pbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3Rv
cl0pOworICAgIF9kYXRhLT5faW1wbC0+c2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcihkZXZp
Y2VTY2FsZUZhY3Rvcik7CiB9CiAKIC0gKENHRmxvYXQpX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0
b3IKIHsKLSAgICByZXR1cm4gX2RhdGEtPl9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yOworICAg
IHJldHVybiBfZGF0YS0+X2ltcGwtPm92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IoKTsKIH0KIAog
LSAoV0tMYXlvdXRNb2RlKV9sYXlvdXRNb2RlCkBAIC00MTg0LDMyICszNjE3LDE0IEBAIHN0YXRp
YyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgp
CiAgICAgX2RhdGEtPl9pbXBsLT5zZXRWaWV3U2NhbGUodmlld1NjYWxlKTsKIH0KIAotLSAodm9p
ZClfZGlzcGF0Y2hTZXRUb3BDb250ZW50SW5zZXQKLXsKLSAgICBpZiAoIV9kYXRhLT5fZGlkU2No
ZWR1bGVTZXRUb3BDb250ZW50SW5zZXQpCi0gICAgICAgIHJldHVybjsKLQotICAgIF9kYXRhLT5f
ZGlkU2NoZWR1bGVTZXRUb3BDb250ZW50SW5zZXQgPSBOTzsKLSAgICBfZGF0YS0+X3BhZ2UtPnNl
dFRvcENvbnRlbnRJbnNldChfZGF0YS0+X3RvcENvbnRlbnRJbnNldCk7Ci19Ci0KIC0gKHZvaWQp
X3NldFRvcENvbnRlbnRJbnNldDooQ0dGbG9hdCljb250ZW50SW5zZXQKIHsKLSAgICBfZGF0YS0+
X3RvcENvbnRlbnRJbnNldCA9IGNvbnRlbnRJbnNldDsKLQotICAgIGlmIChfZGF0YS0+X2RpZFNj
aGVkdWxlU2V0VG9wQ29udGVudEluc2V0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBfZGF0YS0+
X2RpZFNjaGVkdWxlU2V0VG9wQ29udGVudEluc2V0ID0gWUVTOwotCi0gICAgZGlzcGF0Y2hfYXN5
bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKLSAgICAgICAgW3NlbGYgX2Rpc3BhdGNo
U2V0VG9wQ29udGVudEluc2V0XTsKLSAgICB9KTsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5z
ZXRUb3BDb250ZW50SW5zZXQoY29udGVudEluc2V0KTsKIH0KIAogLSAoQ0dGbG9hdClfdG9wQ29u
dGVudEluc2V0CiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5fdG9wQ29udGVudEluc2V0OworICAgIHJl
dHVybiBfZGF0YS0+X2ltcGwtPnRvcENvbnRlbnRJbnNldCgpOwogfQogCiAtICh2b2lkKV9zZXRU
b3RhbEhlaWdodE9mQmFubmVyczooQ0dGbG9hdCl0b3RhbEhlaWdodE9mQmFubmVycwpAQCAtNDQ4
NywzNSArMzkwMiwxNSBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVG
b3JQYXRoKE5TU3RyaW5nICpwYXRoKQogCiAtICh2b2lkKV9kaXNtaXNzQ29udGVudFJlbGF0aXZl
Q2hpbGRXaW5kb3dzCiB7Ci0gICAgLy8gRklYTUU6IFdlIGRvbid0IGtub3cgd2hpY2ggcGFuZWwg
d2UgYXJlIGRpc21pc3NpbmcsIGl0IG1heSBub3QgZXZlbiBiZSBpbiB0aGUgY3VycmVudCBwYWdl
IChzZWUgPHJkYXI6Ly9wcm9ibGVtLzEzODc1NzY2PikuCi0gICAgaWYgKFtbc2VsZiB3aW5kb3dd
IGlzS2V5V2luZG93XQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MDAwCi0gICAgICAgIHx8IFtfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgaGFzQWN0
aXZlSW1tZWRpYXRlQWN0aW9uXQotI2VuZGlmCi0gICAgICAgICkgewotICAgICAgICBEaWN0aW9u
YXJ5TG9va3VwOjpoaWRlUG9wdXAoKTsKLQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMDAwCi0gICAgICAgIEREQWN0aW9uc01hbmFnZXIgKmFjdGlvbnNNYW5hZ2Vy
ID0gW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJdOwotICAgICAgICBp
ZiAoW2FjdGlvbnNNYW5hZ2VyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocmVxdWVzdEJ1
YmJsZUNsb3N1cmVVbmFuY2hvck9uRmFpbHVyZTopXSkKLSAgICAgICAgICAgIFthY3Rpb25zTWFu
YWdlciByZXF1ZXN0QnViYmxlQ2xvc3VyZVVuYW5jaG9yT25GYWlsdXJlOllFU107Ci0jZW5kaWYK
LSAgICB9Ci0KLSAgICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpUZXh0
SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKLQotI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgW19kYXRhLT5faW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlciBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXTsK
LSNlbmRpZgotCi0gICAgc3RhdGljX2Nhc3Q8UGFnZUNsaWVudCY+KCpfZGF0YS0+X3BhZ2VDbGll
bnQpLmRpc21pc3NDb3JyZWN0aW9uUGFuZWwoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZl
VGV4dElnbm9yZWQpOworICAgIF9kYXRhLT5faW1wbC0+ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNo
aWxkV2luZG93cygpOwogfQogCiAtICh2b2lkKV9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRX
aW5kb3dzV2l0aEFuaW1hdGlvbjooQk9PTCl3aXRoQW5pbWF0aW9uCiB7CiAgICAgLy8gQ2FsbGlu
ZyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbiBoZXJlIHdpbGwgd2luIG91dCBvdmVy
IHRoZSBhbmltYXRlZCBjbGVhciBpbiBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93
cy4KICAgICAvLyBXZSBjYW4ndCBpbnZlcnQgdGhlc2UgYmVjYXVzZSBjbGllbnRzIGNhbiBvdmVy
cmlkZSAoYW5kIGhhdmUgb3ZlcnJpZGRlbikgX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdp
bmRvd3MsIHNvIGl0IG5lZWRzIHRvIGJlIGNhbGxlZC4KLSAgICBbc2VsZiBfY2xlYXJUZXh0SW5k
aWNhdG9yV2l0aEFuaW1hdGlvbjp3aXRoQW5pbWF0aW9uID8gVGV4dEluZGljYXRvcldpbmRvd0Rp
c21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCA6IFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxB
bmltYXRpb246Ok5vbmVdOworICAgIC8vIEZvciB0aGlzIHNhbWUgcmVhc29uLCB0aGlzIGNhbid0
IGJlIG1vdmVkIHRvIFdlYlZpZXdJbXBsIHdpdGhvdXQgY2FyZS4KKyAgICBfZGF0YS0+X2ltcGwt
PmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24od2l0aEFuaW1hdGlvbiA/IFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQgOiBXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKICAgICBbc2Vs
ZiBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c107CiB9CiAKQEAgLTQ1MjMsMTMg
KzM5MTgsMTIgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0
aChOU1N0cmluZyAqcGF0aCkKIAogLSAodm9pZClfc2V0QXV0b21hdGljYWxseUFkanVzdHNDb250
ZW50SW5zZXRzOihCT09MKWF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cwogewotICAg
IF9kYXRhLT5fYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzID0gYXV0b21hdGljYWxs
eUFkanVzdHNDb250ZW50SW5zZXRzOwotICAgIFtzZWxmIF91cGRhdGVDb250ZW50SW5zZXRzSWZB
dXRvbWF0aWNdOworICAgIF9kYXRhLT5faW1wbC0+c2V0QXV0b21hdGljYWxseUFkanVzdHNDb250
ZW50SW5zZXRzKGF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cyk7CiB9CiAKIC0gKEJP
T0wpX2F1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cwogewotICAgIHJldHVybiBfZGF0
YS0+X2F1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0czsKKyAgICByZXR1cm4gX2RhdGEt
Pl9pbXBsLT5hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHMoKTsKIH0KIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRl
cm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwu
aAppbmRleCA5NzAwY2FmYzc5ZjU3NzE5MDZiYjA5NjU4MWM2ODMwZTc0MmFkMWVkLi43YzE2MmI0
ZWZhZDQyOTZkNWMzZTVkZTg4MmZjYTZjZDhmY2VlN2RkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKQEAgLTgwLDcgKzgwLDYgQEAg
c3RydWN0IEVkaXRvclN0YXRlOwogLSAodm9pZClfcHJvY2Vzc0RpZEV4aXQ7CiAtICh2b2lkKV9w
YWdlQ2xvc2VkOwogLSAodm9pZClfZGlkUmVsYXVuY2hQcm9jZXNzOwotLSAodm9pZClfcHJlZmVy
ZW5jZXNEaWRDaGFuZ2U7CiAtICh2b2lkKV90b29sVGlwQ2hhbmdlZEZyb206KE5TU3RyaW5nICop
b2xkVG9vbFRpcCB0bzooTlNTdHJpbmcgKiluZXdUb29sVGlwOwogLSAodm9pZClfc2V0VXNlcklu
dGVyZmFjZUl0ZW1TdGF0ZTooTlNTdHJpbmcgKiljb21tYW5kTmFtZSBlbmFibGVkOihCT09MKWlz
RW5hYmxlZCBzdGF0ZTooaW50KW5ld1N0YXRlOwogLSAodm9pZClfZG9uZVdpdGhLZXlFdmVudDoo
TlNFdmVudCAqKWV2ZW50IGV2ZW50V2FzSGFuZGxlZDooQk9PTClldmVudFdhc0hhbmRsZWQ7CkBA
IC05Miw3ICs5MSw2IEBAIHN0cnVjdCBFZGl0b3JTdGF0ZTsKIC0gKHZvaWQpX3NldFRleHRJbmRp
Y2F0b3I6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1l
OihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUpbGlmZXRpbWU7CiAtICh2b2lk
KV9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9y
V2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbjsKIC0gKHZvaWQpX3NldFRleHRJbmRp
Y2F0b3JBbmltYXRpb25Qcm9ncmVzczooZmxvYXQpcHJvZ3Jlc3M7Ci0tICh2b2lkKV9zZWxlY3Rp
b25DaGFuZ2VkOwogCiAtICh2b2lkKV9zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZVJvb3RM
YXllcjooQ0FMYXllciAqKXJvb3RMYXllcjsKIC0gKENBTGF5ZXIgKilfYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGVSb290TGF5ZXI7CkBAIC0xMjksOSArMTI3LDYgQEAgc3RydWN0IEVkaXRvclN0
YXRlOwogLSAodm9pZClfcmVwYXJlbnRMYXllclRyZWVJblRodW1ibmFpbFZpZXc7CiAjZW5kaWYK
IAotLSAodm9pZClfd2luZG93RGlkT3JkZXJPblNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3Rp
ZmljYXRpb247Ci0tICh2b2lkKV93aW5kb3dEaWRPcmRlck9mZlNjcmVlbjooTlNOb3RpZmljYXRp
b24gKilub3RpZmljYXRpb247Ci0KIC0gKHZvaWQpX2FkZEZvbnRQYW5lbE9ic2VydmVyOwogLy8g
RnVsbFNjcmVlbgogCkBAIC0xMzksOCArMTM0LDYgQEAgc3RydWN0IEVkaXRvclN0YXRlOwogQHBy
b3BlcnR5IChyZWFkb25seSkgV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlciAqX2Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyOwogLSAodm9pZClfY2xvc2VGdWxsU2NyZWVuV2luZG93Q29udHJv
bGxlcjsKIAotLSAodm9pZClfcHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXA7Ci0KICNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAogLSAodm9pZClfZGlkUGVyZm9y
bUltbWVkaWF0ZUFjdGlvbkhpdFRlc3Q6KGNvbnN0IFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdERh
dGEmKWhpdFRlc3RSZXN1bHQgY29udGVudFByZXZlbnRzRGVmYXVsdDooQk9PTCljb250ZW50UHJl
dmVudHNEZWZhdWx0IHVzZXJEYXRhOihBUEk6Ok9iamVjdCopdXNlckRhdGE7CiAjZW5kaWYKQEAg
LTE1MSw4ICsxNDQsNiBAQCBzdHJ1Y3QgRWRpdG9yU3RhdGU7CiAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZXRhaW4sIHNldHRlcj1fc2V0UHJpbWFyeVRyYWNraW5nQXJlYTopIE5TVHJhY2tpbmdB
cmVhICpfcHJpbWFyeVRyYWNraW5nQXJlYTsKIAotQHByb3BlcnR5IChyZWFkb25seSkgTlNXaW5k
b3cgKl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb247Ci0KICNpZiBXS19BUElfRU5BQkxF
RAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tSZW1vdGVPYmplY3RSZWdpc3Ry
eSAqX3JlbW90ZU9iamVjdFJlZ2lzdHJ5OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IDQ5MTI5ODIyMjc2NTA0NGMzZDRkY2M4N2Nh
MTdhYjI0ZmNkYThmOTYuLjczNDRlMjYyNmM5MmE0MTFmOTEzNWIyNDI4OGE0MmUxZGI1ZDI0ZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC0y
OCwyOSArMjgsNDggQEAKIAogI2lmIFBMQVRGT1JNKE1BQykKIAotI2ltcG9ydCAiV0tMYXlvdXRN
b2RlLmgiCi0jaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Ci0KKyNpbmNsdWRlICJXS0xheW91dE1v
ZGUuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRJ
bmRpY2F0b3JXaW5kb3cuaD4KKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1ZGUgPHd0Zi9S
ZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0
L1dURlN0cmluZy5oPgorCitPQkpDX0NMQVNTIE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29n
bml6ZXI7CiBPQkpDX0NMQVNTIE5TVGV4dElucHV0Q29udGV4dDsKIE9CSkNfQ0xBU1MgTlNWaWV3
OworT0JKQ19DTEFTUyBXS0VkaXRvclVuZG9UYXJnZXRPYmpDOwogT0JKQ19DTEFTUyBXS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyOworT0JKQ19DTEFTUyBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRy
b2xsZXI7CiBPQkpDX0NMQVNTIFdLVmlld0xheW91dFN0cmF0ZWd5OworT0JKQ19DTEFTUyBXS1dp
bmRvd1Zpc2liaWxpdHlPYnNlcnZlcjsKIAogQHByb3RvY29sIFdlYlZpZXdJbXBsRGVsZWdhdGUK
IAogLSAoTlNUZXh0SW5wdXRDb250ZXh0ICopX3N1cGVySW5wdXRDb250ZXh0OworLSAodm9pZClf
c3VwZXJRdWlja0xvb2tXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudDsKKworLy8gRklYTUU6IFRo
ZXNlIHNob3VsZCBwcm9iYWJseSBtb3ZlIHRvIHRoZSBVSURlbGVnYXRlLgorLSAoaWQpX2ludGVy
bmFsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6KFdL
SGl0VGVzdFJlc3VsdFJlZiloaXRUZXN0UmVzdWx0IHdpdGhUeXBlOih1aW50MzJfdCl0eXBlIHVz
ZXJEYXRhOihXS1R5cGVSZWYpdXNlckRhdGE7CistICh2b2lkKV9pbnRlcm5hbFByZXBhcmVGb3JJ
bW1lZGlhdGVBY3Rpb25BbmltYXRpb247CistICh2b2lkKV9pbnRlcm5hbENhbmNlbEltbWVkaWF0
ZUFjdGlvbkFuaW1hdGlvbjsKKy0gKHZvaWQpX2ludGVybmFsQ29tcGxldGVJbW1lZGlhdGVBY3Rp
b25BbmltYXRpb247CistICh2b2lkKV9pbnRlcm5hbERpc21pc3NDb250ZW50UmVsYXRpdmVDaGls
ZFdpbmRvd3NXaXRoQW5pbWF0aW9uOihCT09MKWFuaW1hdGU7CiAKIEBlbmQKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKK2NsYXNzIFdlYkVkaXRDb21tYW5kUHJveHk7CiBjbGFzcyBXZWJQYWdlUHJv
eHk7CitzdHJ1Y3QgQ29sb3JTcGFjZURhdGE7CiAKIGNsYXNzIFdlYlZpZXdJbXBsIHsKICAgICBX
VEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJWaWV3
SW1wbCk7CiBwdWJsaWM6Ci0gICAgV2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVn
YXRlPiAqLCBXZWJQYWdlUHJveHkmKTsKKyAgICBXZWJWaWV3SW1wbChOU1ZpZXcgPFdlYlZpZXdJ
bXBsRGVsZWdhdGU+ICosIFdlYlBhZ2VQcm94eSYsIFBhZ2VDbGllbnQmKTsKIAogICAgIH5XZWJW
aWV3SW1wbCgpOwogCkBAIC02NywxNyArODYsMjUgQEAgcHVibGljOgogICAgIHZvaWQgdmlld1dp
bGxTdGFydExpdmVSZXNpemUoKTsKICAgICB2b2lkIHZpZXdEaWRFbmRMaXZlUmVzaXplKCk7CiAK
KyAgICB2b2lkIHJlbmV3R1N0YXRlKCk7CiAgICAgdm9pZCBzZXRGcmFtZVNpemUoQ0dTaXplKTsK
ICAgICB2b2lkIGRpc2FibGVGcmFtZVNpemVVcGRhdGVzKCk7CiAgICAgdm9pZCBlbmFibGVGcmFt
ZVNpemVVcGRhdGVzKCk7CiAgICAgYm9vbCBmcmFtZVNpemVVcGRhdGVzRGlzYWJsZWQoKSBjb25z
dDsKICAgICB2b2lkIHNldEZyYW1lQW5kU2Nyb2xsQnkoQ0dSZWN0LCBDR1NpemUpOworICAgIHZv
aWQgdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lcygpOwogCiAgICAgdm9pZCBzZXRGaXhlZExheW91
dFNpemUoQ0dTaXplKTsKICAgICBDR1NpemUgZml4ZWRMYXlvdXRTaXplKCkgY29uc3Q7CiAKICAg
ICB2b2lkIHNldERyYXdpbmdBcmVhU2l6ZShDR1NpemUpOwogCisgICAgdm9pZCBzZXRBdXRvbWF0
aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHMoYm9vbCk7CisgICAgYm9vbCBhdXRvbWF0aWNhbGx5
QWRqdXN0c0NvbnRlbnRJbnNldHMoKSBjb25zdCB7IHJldHVybiBtX2F1dG9tYXRpY2FsbHlBZGp1
c3RzQ29udGVudEluc2V0czsgfQorICAgIHZvaWQgdXBkYXRlQ29udGVudEluc2V0c0lmQXV0b21h
dGljKCk7CisgICAgdm9pZCBzZXRUb3BDb250ZW50SW5zZXQoQ0dGbG9hdCk7CisgICAgQ0dGbG9h
dCB0b3BDb250ZW50SW5zZXQoKSBjb25zdCB7IHJldHVybiBtX3RvcENvbnRlbnRJbnNldDsgfQor
CiAgICAgdm9pZCBzZXRDb250ZW50UHJlcGFyYXRpb25SZWN0KENHUmVjdCk7CiAgICAgdm9pZCB1
cGRhdGVWaWV3RXhwb3NlZFJlY3QoKTsKICAgICB2b2lkIHNldENsaXBzVG9WaXNpYmxlUmVjdChi
b29sKTsKQEAgLTkzLDExICsxMjAsNDUgQEAgcHVibGljOgogICAgIHZvaWQgc2V0TGF5b3V0TW9k
ZShXS0xheW91dE1vZGUpOwogICAgIHZvaWQgdXBkYXRlU3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRN
b2RlcygpOwogCisgICAgdm9pZCBzZXRPdmVycmlkZURldmljZVNjYWxlRmFjdG9yKENHRmxvYXQp
OworICAgIENHRmxvYXQgb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0IHsgcmV0dXJu
IG1fb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjsgfQorCisgICAgdm9pZCB3aW5kb3dEaWRPcmRl
ck9mZlNjcmVlbigpOworICAgIHZvaWQgd2luZG93RGlkT3JkZXJPblNjcmVlbigpOworICAgIHZv
aWQgd2luZG93RGlkQmVjb21lS2V5KE5TV2luZG93ICopOworICAgIHZvaWQgd2luZG93RGlkUmVz
aWduS2V5KE5TV2luZG93ICopOworICAgIHZvaWQgd2luZG93RGlkTWluaWF0dXJpemUoKTsKKyAg
ICB2b2lkIHdpbmRvd0RpZERlbWluaWF0dXJpemUoKTsKKyAgICB2b2lkIHdpbmRvd0RpZE1vdmUo
KTsKKyAgICB2b2lkIHdpbmRvd0RpZFJlc2l6ZSgpOworICAgIHZvaWQgd2luZG93RGlkQ2hhbmdl
QmFja2luZ1Byb3BlcnRpZXMoQ0dGbG9hdCBvbGRCYWNraW5nU2NhbGVGYWN0b3IpOworICAgIHZv
aWQgd2luZG93RGlkQ2hhbmdlU2NyZWVuKCk7CisgICAgdm9pZCB3aW5kb3dEaWRDaGFuZ2VMYXll
ckhvc3RpbmcoKTsKKyAgICB2b2lkIHdpbmRvd0RpZENoYW5nZU9jY2x1c2lvblN0YXRlKCk7CisK
KyAgICB2b2lkIHZpZXdXaWxsTW92ZVRvV2luZG93KE5TV2luZG93ICopOworICAgIHZvaWQgdmll
d0RpZE1vdmVUb1dpbmRvdygpOworICAgIHZvaWQgdmlld0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0
aWVzKCk7CisKKyAgICBDb2xvclNwYWNlRGF0YSBjb2xvclNwYWNlKCk7CisKKyAgICB2b2lkIGJl
Z2luRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcygpOworICAgIC8vIEZJWE1FOiBNZXJnZSB0
aGVzZSB0d28/CisgICAgdm9pZCBlbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzKCk7Cisg
ICAgdm9pZCBlbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzU3luYygpOworICAgIGJvb2wg
aXNEZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRE
ZWZlclZpZXdJbldpbmRvd0NoYW5nZXM7IH0KKworICAgIHZvaWQgcHJlcGFyZUZvck1vdmVUb1dp
bmRvdyhOU1dpbmRvdyAqdGFyZ2V0V2luZG93LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxl
dGlvbkhhbmRsZXIpOworICAgIE5TV2luZG93ICp0YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRp
b24oKSBjb25zdCB7IHJldHVybiBtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbjsgfQor
CiAgICAgdm9pZCB1cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCk7CiAgICAgdm9pZCByZXNldFNlY3Vy
ZUlucHV0U3RhdGUoKTsKICAgICBib29sIGluU2VjdXJlSW5wdXRTdGF0ZSgpIGNvbnN0IHsgcmV0
dXJuIG1faW5TZWN1cmVJbnB1dFN0YXRlOyB9CiAgICAgdm9pZCBub3RpZnlJbnB1dENvbnRleHRB
Ym91dERpc2NhcmRlZENvbXBvc2l0aW9uKCk7CiAKKyAgICB2b2lkIHByZXNzdXJlQ2hhbmdlV2l0
aEV2ZW50KE5TRXZlbnQgKik7CisgICAgTlNFdmVudCAqbGFzdFByZXNzdXJlRXZlbnQoKSB7IHJl
dHVybiBtX2xhc3RQcmVzc3VyZUV2ZW50LmdldCgpOyB9CisKICNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCiAgICAgYm9vbCBoYXNGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpIGNvbnN0Owog
ICAgIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgKmZ1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyKCk7CkBAIC0xMDYsMzMgKzE2NywxMDkgQEAgcHVibGljOgogICAgIE5TVmlldyAqZnVsbFNj
cmVlblBsYWNlaG9sZGVyVmlldygpOwogICAgIE5TV2luZG93ICpjcmVhdGVGdWxsU2NyZWVuV2lu
ZG93KCk7CiAKKyAgICBib29sIGlzRWRpdGFibGUoKSBjb25zdDsKKyAgICB2b2lkIGV4ZWN1dGVF
ZGl0Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBjb25zdCBTdHJpbmcmIGFyZ3Vt
ZW50ID0gU3RyaW5nKCkpOworICAgIHZvaWQgcmVnaXN0ZXJFZGl0Q29tbWFuZChSZWZQdHI8V2Vi
RWRpdENvbW1hbmRQcm94eT4sIFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbyk7CisgICAgdm9pZCBj
bGVhckFsbEVkaXRDb21tYW5kcygpOworICAgIGJvb2wgd3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9h
cmQoTlNQYXN0ZWJvYXJkICosIE5TQXJyYXkgKnR5cGVzKTsKKyAgICB2b2lkIGNlbnRlclNlbGVj
dGlvbkluVmlzaWJsZUFyZWEoKTsKKyAgICB2b2lkIHNlbGVjdGlvbkRpZENoYW5nZSgpOworICAg
IHZvaWQgc3RhcnRPYnNlcnZpbmdGb250UGFuZWwoKTsKKyAgICB2b2lkIHVwZGF0ZUZvbnRQYW5l
bElmTmVlZGVkKCk7CisKKyAgICB2b2lkIHByZWZlcmVuY2VzRGlkQ2hhbmdlKCk7CisKKyAgICB2
b2lkIHNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvciYsIFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSA9IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dM
aWZldGltZTo6UGVybWFuZW50KTsKKyAgICB2b2lkIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmlt
YXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbik7Cisg
ICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQpOworICAgIHZv
aWQgZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93cygpOworCisgICAgdm9pZCBxdWlj
a0xvb2tXaXRoRXZlbnQoTlNFdmVudCAqKTsKKyAgICB2b2lkIHByZXBhcmVGb3JEaWN0aW9uYXJ5
TG9va3VwKCk7CisgICAgdm9pZCBzZXRBbGxvd3NMaW5rUHJldmlldyhib29sKTsKKyAgICBib29s
IGFsbG93c0xpbmtQcmV2aWV3KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NMaW5rUHJldmlldzsg
fQorICAgIHZvaWQgaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RS
ZXN1bHQoV0tIaXRUZXN0UmVzdWx0UmVmLCB1aW50MzJfdCB0eXBlLCBXS1R5cGVSZWYgdXNlckRh
dGEpOworICAgIHZvaWQgcHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbigpOworICAg
IHZvaWQgY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uKCk7CisgICAgdm9pZCBjb21wbGV0
ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbigpOworCisgICAgdm9pZCBzZXRJZ25vcmVzTm9uV2hl
ZWxFdmVudHMoYm9vbCk7CisgICAgYm9vbCBpZ25vcmVzTm9uV2hlZWxFdmVudHMoKSBjb25zdCB7
IHJldHVybiBtX2lnbm9yZXNOb25XaGVlbEV2ZW50czsgfQorICAgIHZvaWQgc2V0SWdub3Jlc0Fs
bEV2ZW50cyhib29sKTsKKyAgICBib29sIGlnbm9yZXNBbGxFdmVudHMoKSBjb25zdCB7IHJldHVy
biBtX2lnbm9yZXNBbGxFdmVudHM7IH0KKworICAgIHZvaWQgYWNjZXNzaWJpbGl0eVJlZ2lzdGVy
VUlQcm9jZXNzVG9rZW5zKCk7CisKIHByaXZhdGU6CisgICAgV2Vha1B0cjxXZWJWaWV3SW1wbD4g
Y3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigp
OyB9CisKICAgICBib29sIHN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMoKSBjb25zdDsKKyAg
ICBmbG9hdCBpbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0OworICAgIHZvaWQgZGlz
cGF0Y2hTZXRUb3BDb250ZW50SW5zZXQoKTsKKworICAgIHZvaWQgcG9zdEZha2VNb3VzZU1vdmVk
RXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudChOU0V2ZW50ICopOwogCiAgICAgTlNWaWV3IDxXZWJW
aWV3SW1wbERlbGVnYXRlPiAqbV92aWV3OwogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOworICAg
IFBhZ2VDbGllbnQmIG1fcGFnZUNsaWVudDsKKworICAgIFdlYWtQdHJGYWN0b3J5PFdlYlZpZXdJ
bXBsPiBtX3dlYWtQdHJGYWN0b3J5OwogCiAgICAgYm9vbCBtX3dpbGxCZWNvbWVGaXJzdFJlc3Bv
bmRlckFnYWluIHsgZmFsc2UgfTsKICAgICBib29sIG1faW5CZWNvbWVGaXJzdFJlc3BvbmRlciB7
IGZhbHNlIH07CiAgICAgYm9vbCBtX2luUmVzaWduRmlyc3RSZXNwb25kZXIgeyBmYWxzZSB9Owog
Ci0gICAgQ0dSZWN0IG1fY29udGVudFByZXBhcmF0aW9uUmVjdDsKKyAgICBDR1JlY3QgbV9jb250
ZW50UHJlcGFyYXRpb25SZWN0IHsgezAsIDB9LCB7MCwgMH0gfTsKICAgICBib29sIG1fdXNlQ29u
dGVudFByZXBhcmF0aW9uUmVjdEZvclZpc2libGVSZWN0IHsgZmFsc2UgfTsKICAgICBib29sIG1f
Y2xpcHNUb1Zpc2libGVSZWN0IHsgZmFsc2UgfTsKKyAgICBib29sIG1fbmVlZHNWaWV3RnJhbWVJ
bldpbmRvd0Nvb3JkaW5hdGVzOworICAgIGJvb2wgbV9kaWRTY2hlZHVsZVdpbmRvd0FuZFZpZXdG
cmFtZVVwZGF0ZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzRGVmZXJyaW5nVmlld0luV2luZG93
Q2hhbmdlcyB7IGZhbHNlIH07CisKKyAgICBib29sIG1fYXV0b21hdGljYWxseUFkanVzdHNDb250
ZW50SW5zZXRzIHsgZmFsc2UgfTsKKyAgICBDR0Zsb2F0IG1fdG9wQ29udGVudEluc2V0IHsgMCB9
OworICAgIGJvb2wgbV9kaWRTY2hlZHVsZVNldFRvcENvbnRlbnRJbnNldCB7IGZhbHNlIH07CiAK
LSAgICBDR1NpemUgbV9yZXNpemVTY3JvbGxPZmZzZXQ7CisgICAgQ0dTaXplIG1fcmVzaXplU2Ny
b2xsT2Zmc2V0IHsgMCwgMCB9OwogCi0gICAgQ0dTaXplIG1faW50cmluc2ljQ29udGVudFNpemU7
CisgICAgQ0dTaXplIG1faW50cmluc2ljQ29udGVudFNpemUgeyAwLCAwIH07CisgICAgQ0dGbG9h
dCBtX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IgeyAwIH07CiAKICAgICBSZXRhaW5QdHI8V0tW
aWV3TGF5b3V0U3RyYXRlZ3k+IG1fbGF5b3V0U3RyYXRlZ3k7CiAgICAgV0tMYXlvdXRNb2RlIG1f
bGFzdFJlcXVlc3RlZExheW91dE1vZGUgeyBrV0tMYXlvdXRNb2RlVmlld1NpemUgfTsKICAgICBD
R0Zsb2F0IG1fbGFzdFJlcXVlc3RlZFZpZXdTY2FsZSB7IDEgfTsKIAogICAgIGJvb2wgbV9pblNl
Y3VyZUlucHV0U3RhdGUgeyBmYWxzZSB9OworICAgIFJldGFpblB0cjxXS0VkaXRvclVuZG9UYXJn
ZXRPYmpDPiBtX3VuZG9UYXJnZXQ7CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAg
UmV0YWluUHRyPFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXI+IG1fZnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXI7CiAjZW5kaWYKKworICAgIFJldGFpblB0cjxXS1dpbmRvd1Zpc2liaWxpdHlP
YnNlcnZlcj4gbV93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXI7CisKKyAgICBib29sIG1fc2hvdWxk
RGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzIHsgZmFsc2UgfTsKKyAgICBib29sIG1fdmlld0luV2lu
ZG93Q2hhbmdlV2FzRGVmZXJyZWQgeyBmYWxzZSB9OworICAgIE5TV2luZG93ICptX3RhcmdldFdp
bmRvd0Zvck1vdmVQcmVwYXJhdGlvbiB7IG51bGxwdHIgfTsKKworICAgIGlkIG1fZmxhZ3NDaGFu
Z2VkRXZlbnRNb25pdG9yIHsgbnVsbHB0ciB9OworCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JXaW5kb3c+IG1fdGV4dEluZGljYXRvcldpbmRvdzsKKworICAgIFJl
dGFpblB0cjxOU0NvbG9yU3BhY2U+IG1fY29sb3JTcGFjZTsKKworICAgIFJldGFpblB0cjxOU0V2
ZW50PiBtX2xhc3RQcmVzc3VyZUV2ZW50OworCisgICAgYm9vbCBtX2lnbm9yZXNOb25XaGVlbEV2
ZW50cyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lnbm9yZXNBbGxFdmVudHMgeyBmYWxzZSB9Owor
CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICBSZXRh
aW5QdHI8V0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyPiBtX2ltbWVkaWF0ZUFjdGlvbkNvbnRy
b2xsZXI7CisgICAgUmV0YWluUHRyPE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXI+
IG1faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXI7CisjZW5kaWYKKworICAgIGJvb2wg
bV9hbGxvd3NMaW5rUHJldmlldyB7IHRydWUgfTsKKyAgICBib29sIG1fZGlkUmVnaXN0ZXJGb3JM
b29rdXBQb3BvdmVyQ2xvc2VOb3RpZmljYXRpb25zIHsgZmFsc2UgfTsKIH07CiAgICAgCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQppbmRleCA5YjJlNmUyZWQ3YzE2ZDQ5ODJkMDBlMTU1ZDE1MDkzMjc5NzJjMTIy
Li5hNGY0NjFhYTc3ZjgwZmViMDZjZWE5NzIyMjBmNjMxYTA4ZDM2MzRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0yOCwyOCArMjgsMjk1
IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAKKyNpbXBvcnQgIkNvbG9yU3BhY2VEYXRhLmgiCiAj
aW1wb3J0ICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQg
Ik5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKKyNpbXBvcnQgIk5hdGl2ZVdlYk1vdXNlRXZlbnQu
aCIKKyNpbXBvcnQgIlBhZ2VDbGllbnQuaCIKICNpbXBvcnQgIldLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIuaCIKKyNpbXBvcnQgIldLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oIgogI2lt
cG9ydCAiV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaCIKICNpbXBvcnQgIldLV2ViVmlldy5oIgorI2lt
cG9ydCAiV2ViRWRpdENvbW1hbmRQcm94eS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAj
aW1wb3J0IDxISVRvb2xib3gvQ2FyYm9uRXZlbnRzQ29yZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9B
WE9iamVjdENhY2hlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RhdGFEZXRlY3RvcnNTUEkuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvRGljdGlvbmFyeUxvb2t1cC5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlw
cmVzc0NvbW1hbmQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTG9va3VwU1BJLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL05TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXJTUEkuaD4KICNpbXBvcnQg
PFdlYkNvcmUvTlNXaW5kb3dTUEkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvVmlld1N0YXRlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVG
dWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVGdWxs
U2NyZWVuV2luZG93Lmg+CisjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKworU09G
VF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMKExvb2t1cCwgTFVOb3RpZmljYXRpb25Qb3BvdmVyV2ls
bENsb3NlLCBOU1N0cmluZyAqKQorCitAaW50ZXJmYWNlIFdLV2luZG93VmlzaWJpbGl0eU9ic2Vy
dmVyIDogTlNPYmplY3QgeworICAgIE5TVmlldyAqX3ZpZXc7CisgICAgV2ViS2l0OjpXZWJWaWV3
SW1wbCAqX2ltcGw7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFZpZXc6KE5TVmlldyAq
KXZpZXcgaW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpaW1wbDsKKy0gKHZvaWQpc3RhcnRPYnNl
cnZpbmc6KE5TV2luZG93ICopd2luZG93OworLSAodm9pZClzdG9wT2JzZXJ2aW5nOihOU1dpbmRv
dyAqKXdpbmRvdzsKKy0gKHZvaWQpc3RhcnRPYnNlcnZpbmdGb250UGFuZWw7CistICh2b2lkKXN0
YXJ0T2JzZXJ2aW5nTG9va3VwRGlzbWlzc2FsOworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tX
aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVmlldzoo
TlNWaWV3ICopdmlldyBpbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJilpbXBsCit7CisgICAgc2Vs
ZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7CisK
KyAgICBfdmlldyA9IHZpZXc7CisgICAgX2ltcGwgPSAmaW1wbDsKKworICAgIHJldHVybiBzZWxm
OworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBpZiAoY2FuTG9hZExVTm90aWZpY2F0aW9u
UG9wb3ZlcldpbGxDbG9zZSgpKQorICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1
bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpnZXRMVU5vdGlmaWNhdGlvblBvcG92
ZXJXaWxsQ2xvc2UoKSBvYmplY3Q6bmlsXTsKKworICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKwor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCitzdGF0aWMgdm9p
ZCoga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0ID0gJmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dDsK
KyNlbmRpZgorCistICh2b2lkKXN0YXJ0T2JzZXJ2aW5nOihOU1dpbmRvdyAqKXdpbmRvdworewor
ICAgIGlmICghd2luZG93KQorICAgICAgICByZXR1cm47CisKKyAgICBOU05vdGlmaWNhdGlvbkNl
bnRlciAqZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciA9IFtOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXTsKKworICAgIC8vIEFuIE5TVmlldyBkZXJpdmVkIG9iamVjdCBzdWNoIGFz
IFdLVmlldyBjYW5ub3Qgb2JzZXJ2ZSB0aGVzZSBub3RpZmljYXRpb25zLCBiZWNhdXNlIE5TVmll
dyBpdHNlbGYgb2JzZXJ2ZXMgdGhlbS4KKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBh
ZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkT3JkZXJPZmZTY3Jl
ZW46KSBuYW1lOkAiTlNXaW5kb3dEaWRPcmRlck9mZlNjcmVlbk5vdGlmaWNhdGlvbiIgb2JqZWN0
OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgYWRkT2JzZXJ2ZXI6c2Vs
ZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZE9yZGVyT25TY3JlZW46KSBuYW1lOkAiX05T
V2luZG93RGlkQmVjb21lVmlzaWJsZSIgb2JqZWN0OndpbmRvd107CisKKyAgICBbZGVmYXVsdE5v
dGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2lu
ZG93RGlkQmVjb21lS2V5OikgbmFtZTpOU1dpbmRvd0RpZEJlY29tZUtleU5vdGlmaWNhdGlvbiBv
YmplY3Q6bmlsXTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpz
ZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkUmVzaWduS2V5OikgbmFtZTpOU1dpbmRv
d0RpZFJlc2lnbktleU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKKyAgICBbZGVmYXVsdE5vdGlm
aWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93
RGlkTWluaWF0dXJpemU6KSBuYW1lOk5TV2luZG93RGlkTWluaWF0dXJpemVOb3RpZmljYXRpb24g
b2JqZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgYWRkT2JzZXJ2
ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZERlbWluaWF0dXJpemU6KSBuYW1l
Ok5TV2luZG93RGlkRGVtaW5pYXR1cml6ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAg
ICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBz
ZWxlY3Rvcihfd2luZG93RGlkTW92ZTopIG5hbWU6TlNXaW5kb3dEaWRNb3ZlTm90aWZpY2F0aW9u
IG9iamVjdDp3aW5kb3ddOworICAgIFtkZWZhdWx0Tm90aWZpY2F0aW9uQ2VudGVyIGFkZE9ic2Vy
dmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRSZXNpemU6KSBuYW1lOk5TV2lu
ZG93RGlkUmVzaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOworICAgIFtkZWZhdWx0Tm90
aWZpY2F0aW9uQ2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5k
b3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllczopIG5hbWU6TlNXaW5kb3dEaWRDaGFuZ2VCYWNr
aW5nUHJvcGVydGllc05vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVmYXVsdE5v
dGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2lu
ZG93RGlkQ2hhbmdlU2NyZWVuOikgbmFtZTpOU1dpbmRvd0RpZENoYW5nZVNjcmVlbk5vdGlmaWNh
dGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBhZGRP
YnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkQ2hhbmdlTGF5ZXJIb3N0
aW5nOikgbmFtZTpAIl9OU1dpbmRvd0RpZENoYW5nZUNvbnRlbnRzSG9zdGVkSW5MYXllclN1cmZh
Y2VOb3RpZmljYXRpb24iIG9iamVjdDp3aW5kb3ddOworICAgIFtkZWZhdWx0Tm90aWZpY2F0aW9u
Q2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRDaGFu
Z2VPY2NsdXNpb25TdGF0ZTopIG5hbWU6TlNXaW5kb3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0ZU5v
dGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTAwMAorICAgIFt3aW5kb3cgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRo
OkAiY29udGVudExheW91dFJlY3QiIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbklu
aXRpYWwgY29udGV4dDprZXlWYWx1ZU9ic2VydmluZ0NvbnRleHRdOworICAgIFt3aW5kb3cgYWRk
T2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidGl0bGViYXJBcHBlYXJzVHJhbnNwYXJlbnQiIG9w
dGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbkluaXRpYWwgY29udGV4dDprZXlWYWx1ZU9i
c2VydmluZ0NvbnRleHRdOworI2VuZGlmCit9CisKKy0gKHZvaWQpc3RvcE9ic2VydmluZzooTlNX
aW5kb3cgKil3aW5kb3cKK3sKKyAgICBpZiAoIXdpbmRvdykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgTlNOb3RpZmljYXRpb25DZW50ZXIgKmRlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgPSBbTlNO
b3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl07CisKKyAgICBbZGVmYXVsdE5vdGlmaWNh
dGlvbkNlbnRlciByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6QCJOU1dpbmRvd0RpZE9yZGVyT2Zm
U2NyZWVuTm90aWZpY2F0aW9uIiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNh
dGlvbkNlbnRlciByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6QCJfTlNXaW5kb3dEaWRCZWNvbWVW
aXNpYmxlIiBvYmplY3Q6d2luZG93XTsKKworICAgIFtkZWZhdWx0Tm90aWZpY2F0aW9uQ2VudGVy
IHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZEJlY29tZUtleU5vdGlmaWNhdGlv
biBvYmplY3Q6bmlsXTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciByZW1vdmVPYnNl
cnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRSZXNpZ25LZXlOb3RpZmljYXRpb24gb2JqZWN0Om5p
bF07CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBu
YW1lOk5TV2luZG93RGlkTWluaWF0dXJpemVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Cisg
ICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOk5T
V2luZG93RGlkRGVtaW5pYXR1cml6ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICBb
ZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5k
b3dEaWRNb3ZlTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOworICAgIFtkZWZhdWx0Tm90aWZp
Y2F0aW9uQ2VudGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZFJlc2l6ZU5v
dGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRl
ciByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVy
dGllc05vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlv
bkNlbnRlciByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRDaGFuZ2VTY3JlZW5O
b3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50
ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOkAiX05TV2luZG93RGlkQ2hhbmdlQ29udGVudHNI
b3N0ZWRJbkxheWVyU3VyZmFjZU5vdGlmaWNhdGlvbiIgb2JqZWN0OndpbmRvd107CisgICAgW2Rl
ZmF1bHROb3RpZmljYXRpb25DZW50ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93
RGlkQ2hhbmdlT2NjbHVzaW9uU3RhdGVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CisjaWYg
X19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICBpZiAoX2ltcGwt
PmlzRWRpdGFibGUoKSkKKyAgICAgICAgW1tOU0ZvbnRQYW5lbCBzaGFyZWRGb250UGFuZWxdIHJl
bW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAInZpc2libGUiIGNvbnRleHQ6a2V5VmFsdWVP
YnNlcnZpbmdDb250ZXh0XTsKKyAgICBbd2luZG93IHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5
UGF0aDpAImNvbnRlbnRMYXlvdXRSZWN0IiBjb250ZXh0OmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4
dF07CisgICAgW3dpbmRvdyByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJ0aXRsZWJh
ckFwcGVhcnNUcmFuc3BhcmVudCIgY29udGV4dDprZXlWYWx1ZU9ic2VydmluZ0NvbnRleHRdOwor
I2VuZGlmCit9CisKKy0gKHZvaWQpc3RhcnRPYnNlcnZpbmdGb250UGFuZWwKK3sKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAorICAgIFtbTlNGb250UGFuZWwg
c2hhcmVkRm9udFBhbmVsXSBhZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJ2aXNpYmxlIiBv
cHRpb25zOjAgY29udGV4dDprZXlWYWx1ZU9ic2VydmluZ0NvbnRleHRdOworI2VuZGlmCit9CisK
Ky0gKHZvaWQpc3RhcnRPYnNlcnZpbmdMb29rdXBEaXNtaXNzYWwKK3sKKyAgICBpZiAoY2FuTG9h
ZExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9zZSgpKQorICAgICAgICBbW05TTm90aWZpY2F0
aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVj
dG9yKF9kaWN0aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTopIG5hbWU6Z2V0TFVOb3RpZmlj
YXRpb25Qb3BvdmVyV2lsbENsb3NlKCkgb2JqZWN0Om5pbF07Cit9CisKKy0gKHZvaWQpX3dpbmRv
d0RpZE9yZGVyT25TY3JlZW46KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAg
X2ltcGwtPndpbmRvd0RpZE9yZGVyT25TY3JlZW4oKTsKK30KKworLSAodm9pZClfd2luZG93RGlk
T3JkZXJPZmZTY3JlZW46KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgX2lt
cGwtPndpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuKCk7Cit9CisKKy0gKHZvaWQpX3dpbmRvd0RpZEJl
Y29tZUtleTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBfaW1wbC0+d2lu
ZG93RGlkQmVjb21lS2V5KFtub3RpZmljYXRpb24gb2JqZWN0XSk7Cit9CisKKy0gKHZvaWQpX3dp
bmRvd0RpZFJlc2lnbktleTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBf
aW1wbC0+d2luZG93RGlkUmVzaWduS2V5KFtub3RpZmljYXRpb24gb2JqZWN0XSk7Cit9CisKKy0g
KHZvaWQpX3dpbmRvd0RpZE1pbmlhdHVyaXplOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlv
bgoreworICAgIF9pbXBsLT53aW5kb3dEaWRNaW5pYXR1cml6ZSgpOworfQorCistICh2b2lkKV93
aW5kb3dEaWREZW1pbmlhdHVyaXplOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgorewor
ICAgIF9pbXBsLT53aW5kb3dEaWREZW1pbmlhdHVyaXplKCk7Cit9CisKKy0gKHZvaWQpX3dpbmRv
d0RpZE1vdmU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgX2ltcGwtPndp
bmRvd0RpZE1vdmUoKTsKK30KKworLSAodm9pZClfd2luZG93RGlkUmVzaXplOihOU05vdGlmaWNh
dGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIF9pbXBsLT53aW5kb3dEaWRSZXNpemUoKTsKK30K
KworLSAodm9pZClfd2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXM6KE5TTm90aWZpY2F0
aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgQ0dGbG9hdCBvbGRCYWNraW5nU2NhbGVGYWN0b3Ig
PSBbW25vdGlmaWNhdGlvbi51c2VySW5mbyBvYmplY3RGb3JLZXk6TlNCYWNraW5nUHJvcGVydHlP
bGRTY2FsZUZhY3RvcktleV0gZG91YmxlVmFsdWVdOworICAgIF9pbXBsLT53aW5kb3dEaWRDaGFu
Z2VCYWNraW5nUHJvcGVydGllcyhvbGRCYWNraW5nU2NhbGVGYWN0b3IpOworfQorCistICh2b2lk
KV93aW5kb3dEaWRDaGFuZ2VTY3JlZW46KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7
CisgICAgX2ltcGwtPndpbmRvd0RpZENoYW5nZVNjcmVlbigpOworfQorCistICh2b2lkKV93aW5k
b3dEaWRDaGFuZ2VMYXllckhvc3Rpbmc6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7
CisgICAgX2ltcGwtPndpbmRvd0RpZENoYW5nZUxheWVySG9zdGluZygpOworfQorCistICh2b2lk
KV93aW5kb3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmlj
YXRpb24KK3sKKyAgICBfaW1wbC0+d2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3RhdGUoKTsKK30K
KworLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZP
YmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2
b2lkICopY29udGV4dAoreworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMDAwCisgICAgaWYgKGNvbnRleHQgIT0ga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0KSB7Cisg
ICAgICAgIFtzdXBlciBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOmtleVBhdGggb2ZPYmplY3Q6b2Jq
ZWN0IGNoYW5nZTpjaGFuZ2UgY29udGV4dDpjb250ZXh0XTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIGlmIChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJ2aXNpYmxlIl0gJiYgW05T
Rm9udFBhbmVsIHNoYXJlZEZvbnRQYW5lbEV4aXN0c10gJiYgb2JqZWN0ID09IFtOU0ZvbnRQYW5l
bCBzaGFyZWRGb250UGFuZWxdKSB7CisgICAgICAgIF9pbXBsLT51cGRhdGVGb250UGFuZWxJZk5l
ZWRlZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChba2V5UGF0aCBpc0VxdWFs
VG9TdHJpbmc6QCJjb250ZW50TGF5b3V0UmVjdCJdIHx8IFtrZXlQYXRoIGlzRXF1YWxUb1N0cmlu
ZzpAInRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50Il0pCisgICAgICAgIF9pbXBsLT51cGRhdGVD
b250ZW50SW5zZXRzSWZBdXRvbWF0aWMoKTsKKyNlbmRpZgorfQorCistICh2b2lkKV9kaWN0aW9u
YXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24K
K3sKKyAgICBfaW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKK30KKworQGVuZAor
CitAaW50ZXJmYWNlIFdLRWRpdENvbW1hbmRPYmpDIDogTlNPYmplY3QgeworICAgIFJlZlB0cjxX
ZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk+IG1fY29tbWFuZDsKK30KKy0gKGlkKWluaXRXaXRo
V2ViRWRpdENvbW1hbmRQcm94eTooUmVmUHRyPFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eT4p
Y29tbWFuZDsKKy0gKFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eSopY29tbWFuZDsKK0BlbmQK
KworQGludGVyZmFjZSBXS0VkaXRvclVuZG9UYXJnZXRPYmpDIDogTlNPYmplY3QKKy0gKHZvaWQp
dW5kb0VkaXRpbmc6KGlkKXNlbmRlcjsKKy0gKHZvaWQpcmVkb0VkaXRpbmc6KGlkKXNlbmRlcjsK
K0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLRWRpdENvbW1hbmRPYmpDCisKKy0gKGlkKWluaXRX
aXRoV2ViRWRpdENvbW1hbmRQcm94eTooUmVmUHRyPFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94
eT4pY29tbWFuZAoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQor
ICAgICAgICByZXR1cm4gbmlsOworCisgICAgbV9jb21tYW5kID0gY29tbWFuZDsKKyAgICByZXR1
cm4gc2VsZjsKK30KKworLSAoV2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5Kiljb21tYW5kCit7
CisgICAgcmV0dXJuIG1fY29tbWFuZC5nZXQoKTsKK30KKworQGVuZAorCitAaW1wbGVtZW50YXRp
b24gV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQworCistICh2b2lkKXVuZG9FZGl0aW5nOihpZClzZW5k
ZXIKK3sKKyAgICBBU1NFUlQoW3NlbmRlciBpc0tpbmRPZkNsYXNzOltXS0VkaXRDb21tYW5kT2Jq
QyBjbGFzc11dKTsKKyAgICBbc2VuZGVyIGNvbW1hbmRdLT51bmFwcGx5KCk7Cit9CisKKy0gKHZv
aWQpcmVkb0VkaXRpbmc6KGlkKXNlbmRlcgoreworICAgIEFTU0VSVChbc2VuZGVyIGlzS2luZE9m
Q2xhc3M6W1dLRWRpdENvbW1hbmRPYmpDIGNsYXNzXV0pOworICAgIFtzZW5kZXIgY29tbWFuZF0t
PnJlYXBwbHkoKTsKK30KKworQGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViVmlld0lt
cGw6OldlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKnZpZXcsIFdlYlBh
Z2VQcm94eSYgcGFnZSkKK1dlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChOU1ZpZXcgPFdlYlZpZXdJ
bXBsRGVsZWdhdGU+ICp2aWV3LCBXZWJQYWdlUHJveHkmIHBhZ2UsIFBhZ2VDbGllbnQmIHBhZ2VD
bGllbnQpCiAgICAgOiBtX3ZpZXcodmlldykKICAgICAsIG1fcGFnZShwYWdlKQorICAgICwgbV9w
YWdlQ2xpZW50KHBhZ2VDbGllbnQpCisgICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCisgICAg
LCBtX25lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyhtX3BhZ2UucHJlZmVyZW5jZXMo
KS5wbHVnaW5zRW5hYmxlZCgpKQogICAgICwgbV9pbnRyaW5zaWNDb250ZW50U2l6ZShDR1NpemVN
YWtlKE5TVmlld05vSW5zdHJpbnNpY01ldHJpYywgTlNWaWV3Tm9JbnN0cmluc2ljTWV0cmljKSkK
ICAgICAsIG1fbGF5b3V0U3RyYXRlZ3koW1dLVmlld0xheW91dFN0cmF0ZWd5IGxheW91dFN0cmF0
ZWd5V2l0aFBhZ2U6bV9wYWdlIHZpZXc6bV92aWV3IHZpZXdJbXBsOip0aGlzIG1vZGU6a1dLTGF5
b3V0TW9kZVZpZXdTaXplXSkKKyAgICAsIG1fdW5kb1RhcmdldChhZG9wdE5TKFtbV0tFZGl0b3JV
bmRvVGFyZ2V0T2JqQyBhbGxvY10gaW5pdF0pKQorICAgICwgbV93aW5kb3dWaXNpYmlsaXR5T2Jz
ZXJ2ZXIoYWRvcHROUyhbW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIGFsbG9jXSBpbml0V2l0
aFZpZXc6dmlldyBpbXBsOip0aGlzXSkpCiB7CisgICAgbV9wYWdlLnNldEludHJpbnNpY0Rldmlj
ZVNjYWxlRmFjdG9yKGludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKCkpOworCisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICBpZiAoQ2xhc3MgZ2VzdHVy
ZUNsYXNzID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNv
Z25pemVyIikpIHsKKyAgICAgICAgbV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciA9
IGFkb3B0TlMoWyhOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICopW2dlc3R1cmVD
bGFzcyBhbGxvY10gaW5pdF0pOworICAgICAgICBtX2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIg
PSBhZG9wdE5TKFtbV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGFsbG9jXSBpbml0V2l0aFBh
Z2U6bV9wYWdlIHZpZXc6bV92aWV3IHZpZXdJbXBsOip0aGlzIHJlY29nbml6ZXI6bV9pbW1lZGlh
dGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQoKV0pOworICAgICAgICBbbV9pbW1lZGlhdGVB
Y3Rpb25HZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTptX2ltbWVkaWF0ZUFjdGlvbkNvbnRy
b2xsZXIuZ2V0KCldOworICAgICAgICBbbV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXpl
ciBzZXREZWxheXNQcmltYXJ5TW91c2VCdXR0b25FdmVudHM6Tk9dOworICAgIH0KKyNlbmRpZgog
fQogCiBXZWJWaWV3SW1wbDo6fldlYlZpZXdJbXBsKCkKQEAgLTU3LDYgKzMyNCwxMCBAQCBXZWJW
aWV3SW1wbDo6fldlYlZpZXdJbXBsKCkKICAgICBBU1NFUlQoIW1faW5TZWN1cmVJbnB1dFN0YXRl
KTsKIAogICAgIFttX2xheW91dFN0cmF0ZWd5IGludmFsaWRhdGVdOworCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICBbbV9pbW1lZGlhdGVBY3Rpb25D
b250cm9sbGVyIHdpbGxEZXN0cm95VmlldzptX3ZpZXddOworI2VuZGlmCiB9CiAKIHZvaWQgV2Vi
Vmlld0ltcGw6OnNldERyYXdzQmFja2dyb3VuZChib29sIGRyYXdzQmFja2dyb3VuZCkKQEAgLTg5
LDcgKzM2MCw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKCkKICAg
ICAvLyBJZiB3ZSBqdXN0IGJlY2FtZSBmaXJzdCByZXNwb25kZXIgYWdhaW4sIHRoZXJlIGlzIG5v
IG5lZWQgdG8gZG8gYW55dGhpbmcsCiAgICAgLy8gc2luY2UgcmVzaWduRmlyc3RSZXNwb25kZXIg
aGFzIGNvcnJlY3RseSBkZXRlY3RlZCB0aGlzIHNpdHVhdGlvbi4KICAgICBpZiAobV93aWxsQmVj
b21lRmlyc3RSZXNwb25kZXJBZ2FpbikgewotICAgICAgICBtX3dpbGxCZWNvbWVGaXJzdFJlc3Bv
bmRlckFnYWluID0gTk87CisgICAgICAgIG1fd2lsbEJlY29tZUZpcnN0UmVzcG9uZGVyQWdhaW4g
PSBmYWxzZTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0xMjgsNyArMzk5LDcg
QEAgYm9vbCBXZWJWaWV3SW1wbDo6cmVzaWduRmlyc3RSZXNwb25kZXIoKQogICAgIH0KICNlbmRp
ZgogCi0gICAgbV93aWxsQmVjb21lRmlyc3RSZXNwb25kZXJBZ2FpbiA9IE5POworICAgIG1fd2ls
bEJlY29tZUZpcnN0UmVzcG9uZGVyQWdhaW4gPSBmYWxzZTsKICAgICBtX2luUmVzaWduRmlyc3RS
ZXNwb25kZXIgPSB0cnVlOwogCiAjaWYgVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQpAQCAt
MTc1LDYgKzQ0NiwxOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjp2aWV3RGlkRW5kTGl2ZVJlc2l6ZSgp
CiAgICAgW21fbGF5b3V0U3RyYXRlZ3kgZGlkRW5kTGl2ZVJlc2l6ZV07CiB9CiAKK3ZvaWQgV2Vi
Vmlld0ltcGw6OnJlbmV3R1N0YXRlKCkKK3sKKyAgICBpZiAobV90ZXh0SW5kaWNhdG9yV2luZG93
KQorICAgICAgICBbbV92aWV3IF9pbnRlcm5hbERpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdp
bmRvd3NXaXRoQW5pbWF0aW9uOk5PXTsKKworICAgIC8vIFVwZGF0ZSB0aGUgdmlldyBmcmFtZS4K
KyAgICBpZiAobV92aWV3LndpbmRvdykKKyAgICAgICAgdXBkYXRlV2luZG93QW5kVmlld0ZyYW1l
cygpOworCisgICAgdXBkYXRlQ29udGVudEluc2V0c0lmQXV0b21hdGljKCk7Cit9CisKIHZvaWQg
V2ViVmlld0ltcGw6OnNldEZyYW1lU2l6ZShDR1NpemUpCiB7CiAgICAgW21fbGF5b3V0U3RyYXRl
Z3kgZGlkQ2hhbmdlRnJhbWVTaXplXTsKQEAgLTIwMyw2ICs0ODYsMzkgQEAgdm9pZCBXZWJWaWV3
SW1wbDo6c2V0RnJhbWVBbmRTY3JvbGxCeShDR1JlY3QgZnJhbWUsIENHU2l6ZSBvZmZzZXQpCiAg
ICAgbV92aWV3LmZyYW1lID0gTlNSZWN0RnJvbUNHUmVjdChmcmFtZSk7CiB9CiAKK3ZvaWQgV2Vi
Vmlld0ltcGw6OnVwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXMoKQoreworICAgIGlmIChjbGlwc1Rv
VmlzaWJsZVJlY3QoKSkKKyAgICAgICAgdXBkYXRlVmlld0V4cG9zZWRSZWN0KCk7CisKKyAgICBp
ZiAobV9kaWRTY2hlZHVsZVdpbmRvd0FuZFZpZXdGcmFtZVVwZGF0ZSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbV9kaWRTY2hlZHVsZVdpbmRvd0FuZFZpZXdGcmFtZVVwZGF0ZSA9IHRydWU7CisK
KyAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgIGRpc3BhdGNoX2FzeW5j
KGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIFt3ZWFrVGhpc10geworICAgICAgICBpZiAoIXdl
YWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIHdlYWtUaGlzLT5tX2RpZFNj
aGVkdWxlV2luZG93QW5kVmlld0ZyYW1lVXBkYXRlID0gZmFsc2U7CisKKyAgICAgICAgTlNSZWN0
IHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMgPSBOU1plcm9SZWN0OworICAgICAgICBOU1Bv
aW50IGFjY2Vzc2liaWxpdHlQb3NpdGlvbiA9IE5TWmVyb1BvaW50OworCisgICAgICAgIGlmICh3
ZWFrVGhpcy0+bV9uZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMpCisgICAgICAgICAg
ICB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzID0gW3dlYWtUaGlzLT5tX3ZpZXcgY29udmVy
dFJlY3Q6d2Vha1RoaXMtPm1fdmlldy5mcmFtZSB0b1ZpZXc6bmlsXTsKKworI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2Rl
cHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgICAgICBpZiAoV2ViQ29yZTo6QVhPYmplY3RDYWNo
ZTo6YWNjZXNzaWJpbGl0eUVuYWJsZWQoKSkKKyAgICAgICAgICAgIGFjY2Vzc2liaWxpdHlQb3Np
dGlvbiA9IFtbd2Vha1RoaXMtPm1fdmlldyBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNB
Y2Nlc3NpYmlsaXR5UG9zaXRpb25BdHRyaWJ1dGVdIHBvaW50VmFsdWVdOworI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHBvcAorICAgICAgICAKKyAgICAgICAgd2Vha1RoaXMtPm1fcGFnZS53aW5k
b3dBbmRWaWV3RnJhbWVzQ2hhbmdlZCh2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzLCBhY2Nl
c3NpYmlsaXR5UG9zaXRpb24pOworICAgIH0pOworfQorCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRG
aXhlZExheW91dFNpemUoQ0dTaXplIGZpeGVkTGF5b3V0U2l6ZSkKIHsKICAgICBtX3BhZ2Uuc2V0
Rml4ZWRMYXlvdXRTaXplKFdlYkNvcmU6OmV4cGFuZGVkSW50U2l6ZShXZWJDb3JlOjpGbG9hdFNp
emUoZml4ZWRMYXlvdXRTaXplKSkpOwpAQCAtMjIyLDYgKzUzOCw1MyBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpzZXREcmF3aW5nQXJlYVNpemUoQ0dTaXplIHNpemUpCiAgICAgbV9yZXNpemVTY3JvbGxP
ZmZzZXQgPSBDR1NpemVaZXJvOwogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRBdXRvbWF0aWNh
bGx5QWRqdXN0c0NvbnRlbnRJbnNldHMoYm9vbCBhdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJ
bnNldHMpCit7CisgICAgbV9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHMgPSBhdXRv
bWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHM7CisgICAgdXBkYXRlQ29udGVudEluc2V0c0lm
QXV0b21hdGljKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJ
ZkF1dG9tYXRpYygpCit7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDEwMDAKKyAgICBpZiAoIW1fYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzKQorICAg
ICAgICByZXR1cm47CisKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gbV92aWV3LndpbmRvdzsKKyAg
ICBpZiAoKHdpbmRvdy5zdHlsZU1hc2sgJiBOU0Z1bGxTaXplQ29udGVudFZpZXdXaW5kb3dNYXNr
KSAmJiAhd2luZG93LnRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50ICYmICFbbV92aWV3IGVuY2xv
c2luZ1Njcm9sbFZpZXddKSB7CisgICAgICAgIE5TUmVjdCBjb250ZW50TGF5b3V0UmVjdCA9IFtt
X3ZpZXcgY29udmVydFJlY3Q6d2luZG93LmNvbnRlbnRMYXlvdXRSZWN0IGZyb21WaWV3Om5pbF07
CisgICAgICAgIENHRmxvYXQgbmV3VG9wQ29udGVudEluc2V0ID0gTlNNYXhZKGNvbnRlbnRMYXlv
dXRSZWN0KSAtIE5TSGVpZ2h0KGNvbnRlbnRMYXlvdXRSZWN0KTsKKyAgICAgICAgaWYgKG1fdG9w
Q29udGVudEluc2V0ICE9IG5ld1RvcENvbnRlbnRJbnNldCkKKyAgICAgICAgICAgIHNldFRvcENv
bnRlbnRJbnNldChuZXdUb3BDb250ZW50SW5zZXQpOworICAgIH0gZWxzZQorICAgICAgICBzZXRU
b3BDb250ZW50SW5zZXQoMCk7CisjZW5kaWYKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0VG9w
Q29udGVudEluc2V0KENHRmxvYXQgY29udGVudEluc2V0KQoreworICAgIG1fdG9wQ29udGVudElu
c2V0ID0gY29udGVudEluc2V0OworCisgICAgaWYgKG1fZGlkU2NoZWR1bGVTZXRUb3BDb250ZW50
SW5zZXQpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZGlkU2NoZWR1bGVTZXRUb3BDb250ZW50
SW5zZXQgPSB0cnVlOworCisgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAg
ICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbd2Vha1RoaXNdIHsK
KyAgICAgICAgd2Vha1RoaXMtPmRpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0KCk7CisgICAgfSk7
Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmRpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0KCkKK3sK
KyAgICBpZiAoIW1fZGlkU2NoZWR1bGVTZXRUb3BDb250ZW50SW5zZXQpCisgICAgICAgIHJldHVy
bjsKKworICAgIG1fZGlkU2NoZWR1bGVTZXRUb3BDb250ZW50SW5zZXQgPSBmYWxzZTsKKyAgICBt
X3BhZ2Uuc2V0VG9wQ29udGVudEluc2V0KG1fdG9wQ29udGVudEluc2V0KTsKK30KKwogdm9pZCBX
ZWJWaWV3SW1wbDo6c2V0Q29udGVudFByZXBhcmF0aW9uUmVjdChDR1JlY3QgcmVjdCkKIHsKICAg
ICBtX2NvbnRlbnRQcmVwYXJhdGlvblJlY3QgPSByZWN0OwpAQCAtMzM3LDYgKzcwMCwyNzAgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlU3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcygpCiAg
ICAgfQogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRPdmVycmlkZURldmljZVNjYWxlRmFjdG9y
KENHRmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCit7CisgICAgbV9vdmVycmlkZURldmljZVNjYWxl
RmFjdG9yID0gZGV2aWNlU2NhbGVGYWN0b3I7CisgICAgbV9wYWdlLnNldEludHJpbnNpY0Rldmlj
ZVNjYWxlRmFjdG9yKGludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKCkpOworfQorCitmbG9hdCBX
ZWJWaWV3SW1wbDo6aW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdAoreworICAgIGlm
IChtX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IpCisgICAgICAgIHJldHVybiBtX292ZXJyaWRl
RGV2aWNlU2NhbGVGYWN0b3I7CisgICAgaWYgKG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0
aW9uKQorICAgICAgICByZXR1cm4gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24uYmFj
a2luZ1NjYWxlRmFjdG9yOworICAgIGlmIChOU1dpbmRvdyAqd2luZG93ID0gbV92aWV3LndpbmRv
dykKKyAgICAgICAgcmV0dXJuIHdpbmRvdy5iYWNraW5nU2NhbGVGYWN0b3I7CisgICAgcmV0dXJu
IFtOU1NjcmVlbiBtYWluU2NyZWVuXS5iYWNraW5nU2NhbGVGYWN0b3I7Cit9CisKK3ZvaWQgV2Vi
Vmlld0ltcGw6OndpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuKCkKK3sKKyAgICBtX3BhZ2Uudmlld1N0
YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlIHwgV2ViQ29yZTo6Vmll
d1N0YXRlOjpXaW5kb3dJc0FjdGl2ZSk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0Rp
ZE9yZGVyT25TY3JlZW4oKQoreworICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29y
ZTo6Vmlld1N0YXRlOjpJc1Zpc2libGUgfCBXZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRvd0lzQWN0
aXZlKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkQmVjb21lS2V5KE5TV2luZG93
ICprZXlXaW5kb3cpCit7CisgICAgaWYgKGtleVdpbmRvdyA9PSBtX3ZpZXcud2luZG93IHx8IGtl
eVdpbmRvdyA9PSBtX3ZpZXcud2luZG93LmF0dGFjaGVkU2hlZXQpIHsKKyAgICAgICAgdXBkYXRl
U2VjdXJlSW5wdXRTdGF0ZSgpOworICAgICAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdl
YkNvcmU6OlZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOworICAgIH0KK30KKwordm9pZCBXZWJW
aWV3SW1wbDo6d2luZG93RGlkUmVzaWduS2V5KE5TV2luZG93ICpmb3JtZXJLZXlXaW5kb3cpCit7
CisgICAgaWYgKGZvcm1lcktleVdpbmRvdyA9PSBtX3ZpZXcud2luZG93IHx8IGZvcm1lcktleVdp
bmRvdyA9PSBtX3ZpZXcud2luZG93LmF0dGFjaGVkU2hlZXQpIHsKKyAgICAgICAgdXBkYXRlU2Vj
dXJlSW5wdXRTdGF0ZSgpOworICAgICAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNv
cmU6OlZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOworICAgIH0KK30KKwordm9pZCBXZWJWaWV3
SW1wbDo6d2luZG93RGlkTWluaWF0dXJpemUoKQoreworICAgIG1fcGFnZS52aWV3U3RhdGVEaWRD
aGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc1Zpc2libGUpOworfQorCit2b2lkIFdlYlZpZXdJ
bXBsOjp3aW5kb3dEaWREZW1pbmlhdHVyaXplKCkKK3sKKyAgICBtX3BhZ2Uudmlld1N0YXRlRGlk
Q2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsKK30KKwordm9pZCBXZWJWaWV3
SW1wbDo6d2luZG93RGlkTW92ZSgpCit7CisgICAgdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lcygp
OworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRSZXNpemUoKQoreworICAgIHVwZGF0
ZVdpbmRvd0FuZFZpZXdGcmFtZXMoKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlk
Q2hhbmdlQmFja2luZ1Byb3BlcnRpZXMoQ0dGbG9hdCBvbGRCYWNraW5nU2NhbGVGYWN0b3IpCit7
CisgICAgQ0dGbG9hdCBuZXdCYWNraW5nU2NhbGVGYWN0b3IgPSBpbnRyaW5zaWNEZXZpY2VTY2Fs
ZUZhY3RvcigpOworICAgIGlmIChvbGRCYWNraW5nU2NhbGVGYWN0b3IgPT0gbmV3QmFja2luZ1Nj
YWxlRmFjdG9yKQorICAgICAgICByZXR1cm47CisKKyAgICBtX3BhZ2Uuc2V0SW50cmluc2ljRGV2
aWNlU2NhbGVGYWN0b3IobmV3QmFja2luZ1NjYWxlRmFjdG9yKTsKK30KKwordm9pZCBXZWJWaWV3
SW1wbDo6d2luZG93RGlkQ2hhbmdlU2NyZWVuKCkKK3sKKyAgICBOU1dpbmRvdyAqd2luZG93ID0g
bV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gPyBtX3RhcmdldFdpbmRvd0Zvck1vdmVQ
cmVwYXJhdGlvbiA6IG1fdmlldy53aW5kb3c7CisgICAgbV9wYWdlLndpbmRvd1NjcmVlbkRpZENo
YW5nZSgoUGxhdGZvcm1EaXNwbGF5SUQpW1tbW3dpbmRvdyBzY3JlZW5dIGRldmljZURlc2NyaXB0
aW9uXSBvYmplY3RGb3JLZXk6QCJOU1NjcmVlbk51bWJlciJdIGludFZhbHVlXSk7Cit9CisKK3Zv
aWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZENoYW5nZUxheWVySG9zdGluZygpCit7CisgICAgbV9w
YWdlLmxheWVySG9zdGluZ01vZGVEaWRDaGFuZ2UoKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6
d2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3RhdGUoKQoreworICAgIG1fcGFnZS52aWV3U3RhdGVE
aWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc1Zpc2libGUpOworfQorCit2b2lkIFdlYlZp
ZXdJbXBsOjp2aWV3V2lsbE1vdmVUb1dpbmRvdyhOU1dpbmRvdyAqd2luZG93KQoreworICAgIC8v
IElmIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgcHJlcGFyaW5nIHRvIG1vdmUgdG8gYSB3aW5kb3cs
IHdlIHNob3VsZCBvbmx5IGJlIG1vdmVkIHRvIHRoYXQgd2luZG93LgorICAgIEFTU0VSVCghbV90
YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gfHwgKG1fdGFyZ2V0V2luZG93Rm9yTW92ZVBy
ZXBhcmF0aW9uID09IHdpbmRvdykpOworCisgICAgTlNXaW5kb3cgKmN1cnJlbnRXaW5kb3cgPSBt
X3ZpZXcud2luZG93OworICAgIGlmICh3aW5kb3cgPT0gY3VycmVudFdpbmRvdykKKyAgICAgICAg
cmV0dXJuOworCisgICAgY2xlYXJBbGxFZGl0Q29tbWFuZHMoKTsKKworICAgIE5TV2luZG93ICpz
dG9wT2JzZXJ2aW5nV2luZG93ID0gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gPyBt
X3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA6IG1fdmlldy53aW5kb3c7CisgICAgW21f
d2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0b3BPYnNlcnZpbmc6c3RvcE9ic2VydmluZ1dpbmRv
d107CisgICAgW21fd2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0YXJ0T2JzZXJ2aW5nOndpbmRv
d107Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnZpZXdEaWRNb3ZlVG9XaW5kb3coKQoreworICAg
IE5TV2luZG93ICp3aW5kb3cgPSBtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA/IG1f
dGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uIDogbV92aWV3LndpbmRvdzsKKworICAgIGlm
ICh3aW5kb3cpIHsKKyAgICAgICAgd2luZG93RGlkQ2hhbmdlU2NyZWVuKCk7CisKKyAgICAgICAg
V2ViQ29yZTo6Vmlld1N0YXRlOjpGbGFncyB2aWV3U3RhdGVDaGFuZ2VzID0gV2ViQ29yZTo6Vmll
d1N0YXRlOjpXaW5kb3dJc0FjdGl2ZSB8IFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlOwor
ICAgICAgICBpZiAobV9pc0RlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMpCisgICAgICAgICAg
ICBtX3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVkID0gdHJ1ZTsKKyAgICAgICAgZWxzZQor
ICAgICAgICAgICAgdmlld1N0YXRlQ2hhbmdlcyB8PSBXZWJDb3JlOjpWaWV3U3RhdGU6OklzSW5X
aW5kb3c7CisgICAgICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2Uodmlld1N0YXRlQ2hhbmdl
cyk7CisKKyAgICAgICAgdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lcygpOworCisgICAgICAgIC8v
IEZJWE1FKDEzNTUwOSkgVGhpcyBjYWxsIGJlY29tZXMgdW5uZWNlc3Nhcnkgb25jZSAxMzU1MDkg
aXMgZml4ZWQ7IHJlbW92ZS4KKyAgICAgICAgbV9wYWdlLmxheWVySG9zdGluZ01vZGVEaWRDaGFu
Z2UoKTsKKworICAgICAgICBpZiAoIW1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yKSB7CisgICAg
ICAgICAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgICAgICAgICAgbV9m
bGFnc0NoYW5nZWRFdmVudE1vbml0b3IgPSBbTlNFdmVudCBhZGRMb2NhbE1vbml0b3JGb3JFdmVu
dHNNYXRjaGluZ01hc2s6TlNGbGFnc0NoYW5nZWRNYXNrIGhhbmRsZXI6W3dlYWtUaGlzXSAoTlNF
dmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpIHsKKyAgICAgICAgICAgICAgICBpZiAod2Vha1RoaXMp
CisgICAgICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5wb3N0RmFrZU1vdXNlTW92ZWRFdmVudEZv
ckZsYWdzQ2hhbmdlZEV2ZW50KGZsYWdzQ2hhbmdlZEV2ZW50KTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gZmxhZ3NDaGFuZ2VkRXZlbnQ7CisgICAgICAgICAgICB9XTsKKyAgICAgICAgfQorCisg
ICAgICAgIGFjY2Vzc2liaWxpdHlSZWdpc3RlclVJUHJvY2Vzc1Rva2VucygpOworCisjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICAgICAgaWYgKG1faW1t
ZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgJiYgIVtbbV92aWV3IGdlc3R1cmVSZWNvZ25p
emVyc10gY29udGFpbnNPYmplY3Q6bV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5n
ZXQoKV0gJiYgIW1faWdub3Jlc05vbldoZWVsRXZlbnRzICYmIG1fYWxsb3dzTGlua1ByZXZpZXcp
CisgICAgICAgICAgICBbbV92aWV3IGFkZEdlc3R1cmVSZWNvZ25pemVyOm1faW1tZWRpYXRlQWN0
aW9uR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOworI2VuZGlmCisgICAgfSBlbHNlIHsKKyAgICAg
ICAgV2ViQ29yZTo6Vmlld1N0YXRlOjpGbGFncyB2aWV3U3RhdGVDaGFuZ2VzID0gV2ViQ29yZTo6
Vmlld1N0YXRlOjpXaW5kb3dJc0FjdGl2ZSB8IFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxl
OworICAgICAgICBpZiAobV9pc0RlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMpCisgICAgICAg
ICAgICBtX3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVkID0gdHJ1ZTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgdmlld1N0YXRlQ2hhbmdlcyB8PSBXZWJDb3JlOjpWaWV3U3RhdGU6Oklz
SW5XaW5kb3c7CisgICAgICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2Uodmlld1N0YXRlQ2hh
bmdlcyk7CisKKyAgICAgICAgW05TRXZlbnQgcmVtb3ZlTW9uaXRvcjptX2ZsYWdzQ2hhbmdlZEV2
ZW50TW9uaXRvcl07CisgICAgICAgIG1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gbmlsOwor
CisgICAgICAgIFttX3ZpZXcgX2ludGVybmFsRGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2lu
ZG93c1dpdGhBbmltYXRpb246Tk9dOworCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDEwMDAKKyAgICAgICAgaWYgKG1faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29n
bml6ZXIpCisgICAgICAgICAgICBbbV92aWV3IHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOm1faW1t
ZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOworI2VuZGlmCisgICAgfQorCisg
ICAgbV9wYWdlLnNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKGludHJpbnNpY0RldmljZVNj
YWxlRmFjdG9yKCkpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp2aWV3RGlkQ2hhbmdlQmFja2lu
Z1Byb3BlcnRpZXMoKQoreworICAgIE5TQ29sb3JTcGFjZSAqY29sb3JTcGFjZSA9IG1fdmlldy53
aW5kb3cuY29sb3JTcGFjZTsKKyAgICBpZiAoW2NvbG9yU3BhY2UgaXNFcXVhbFRvOm1fY29sb3JT
cGFjZS5nZXQoKV0pCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29sb3JTcGFjZSA9IG51bGxw
dHI7CisgICAgaWYgKERyYXdpbmdBcmVhUHJveHkgKmRyYXdpbmdBcmVhID0gbV9wYWdlLmRyYXdp
bmdBcmVhKCkpCisgICAgICAgIGRyYXdpbmdBcmVhLT5jb2xvclNwYWNlRGlkQ2hhbmdlKCk7Cit9
CisKK3ZvaWQgV2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFu
Z2VkRXZlbnQoTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpCit7CisgICAgTlNFdmVudCAqZmFr
ZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZCBsb2NhdGlv
bjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3cubW91c2VMb2NhdGlvbk91dHNpZGVPZkV2ZW50U3Ry
ZWFtCisgICAgICAgIG1vZGlmaWVyRmxhZ3M6ZmxhZ3NDaGFuZ2VkRXZlbnQubW9kaWZpZXJGbGFn
cyB0aW1lc3RhbXA6ZmxhZ3NDaGFuZ2VkRXZlbnQudGltZXN0YW1wIHdpbmRvd051bWJlcjpmbGFn
c0NoYW5nZWRFdmVudC53aW5kb3dOdW1iZXIKKyAgICAgICAgY29udGV4dDpmbGFnc0NoYW5nZWRF
dmVudC5jb250ZXh0IGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOworICAg
IE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQoZmFrZUV2ZW50LCBtX2xhc3RQcmVzc3VyZUV2
ZW50LmdldCgpLCBtX3ZpZXcpOworICAgIG1fcGFnZS5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50
KTsKK30KKworQ29sb3JTcGFjZURhdGEgV2ViVmlld0ltcGw6OmNvbG9yU3BhY2UoKQoreworICAg
IGlmICghbV9jb2xvclNwYWNlKSB7CisgICAgICAgIGlmIChtX3RhcmdldFdpbmRvd0Zvck1vdmVQ
cmVwYXJhdGlvbikKKyAgICAgICAgICAgIG1fY29sb3JTcGFjZSA9IG1fdGFyZ2V0V2luZG93Rm9y
TW92ZVByZXBhcmF0aW9uLmNvbG9yU3BhY2U7CisgICAgICAgIGVsc2UgaWYgKE5TV2luZG93ICp3
aW5kb3cgPSBtX3ZpZXcud2luZG93KQorICAgICAgICAgICAgbV9jb2xvclNwYWNlID0gd2luZG93
LmNvbG9yU3BhY2U7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1fY29sb3JTcGFjZSA9IFtO
U1NjcmVlbiBtYWluU2NyZWVuXS5jb2xvclNwYWNlOworICAgIH0KKworICAgIENvbG9yU3BhY2VE
YXRhIGNvbG9yU3BhY2VEYXRhOworICAgIGNvbG9yU3BhY2VEYXRhLmNnQ29sb3JTcGFjZSA9IFtt
X2NvbG9yU3BhY2UgQ0dDb2xvclNwYWNlXTsKKyAgICAKKyAgICByZXR1cm4gY29sb3JTcGFjZURh
dGE7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmJlZ2luRGVmZXJyaW5nVmlld0luV2luZG93Q2hh
bmdlcygpCit7CisgICAgaWYgKG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzKSB7Cisg
ICAgICAgIE5TTG9nKEAiYmVnaW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzIHdhcyBjYWxs
ZWQgd2hpbGUgYWxyZWFkeSBkZWZlcnJpbmcgdmlldy1pbi13aW5kb3cgY2hhbmdlcyEiKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFu
Z2VzID0gdHJ1ZTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6ZW5kRGVmZXJyaW5nVmlld0luV2lu
ZG93Q2hhbmdlcygpCit7CisgICAgaWYgKCFtX3Nob3VsZERlZmVyVmlld0luV2luZG93Q2hhbmdl
cykgeworICAgICAgICBOU0xvZyhAImVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMgd2Fz
IGNhbGxlZCB3aXRob3V0IGJlZ2luRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcyEiKTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFu
Z2VzID0gZmFsc2U7CisKKyAgICBpZiAobV92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCkg
eworICAgICAgICBkaXNwYXRjaFNldFRvcENvbnRlbnRJbnNldCgpOworICAgICAgICBtX3BhZ2Uu
dmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNJbldpbmRvdyk7CisgICAg
ICAgIG1fdmlld0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQgPSBmYWxzZTsKKyAgICB9Cit9CisK
K3ZvaWQgV2ViVmlld0ltcGw6OmVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNTeW5jKCkK
K3sKKyAgICBpZiAoIW1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzKSB7CisgICAgICAg
IE5TTG9nKEAiZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlc1N5bmMgd2FzIGNhbGxlZCB3
aXRob3V0IGJlZ2luRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcyEiKTsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKworICAgIG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzID0gZmFs
c2U7CisKKyAgICBpZiAobV92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCkgeworICAgICAg
ICBkaXNwYXRjaFNldFRvcENvbnRlbnRJbnNldCgpOworICAgICAgICBtX3BhZ2Uudmlld1N0YXRl
RGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNJbldpbmRvdyk7CisgICAgICAgIG1fdmll
d0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQgPSBmYWxzZTsKKyAgICB9Cit9CisKK3ZvaWQgV2Vi
Vmlld0ltcGw6OnByZXBhcmVGb3JNb3ZlVG9XaW5kb3coTlNXaW5kb3cgKnRhcmdldFdpbmRvdywg
c3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIG1fc2hvdWxk
RGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzID0gdHJ1ZTsKKyAgICB2aWV3V2lsbE1vdmVUb1dpbmRv
dyh0YXJnZXRXaW5kb3cpOworICAgIG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uID0g
dGFyZ2V0V2luZG93OworICAgIHZpZXdEaWRNb3ZlVG9XaW5kb3coKTsKKworICAgIG1fc2hvdWxk
RGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzID0gZmFsc2U7CisKKyAgICBhdXRvIHdlYWtUaGlzID0g
Y3JlYXRlV2Vha1B0cigpOworICAgIG1fcGFnZS5pbnN0YWxsVmlld1N0YXRlQ2hhbmdlQ29tcGxl
dGlvbkhhbmRsZXIoW3dlYWtUaGlzLCBjb21wbGV0aW9uSGFuZGxlcl0oKSB7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7CisKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAg
IHJldHVybjsKKworICAgICAgICBBU1NFUlQod2Vha1RoaXMtPm1fdmlldy53aW5kb3cgPT0gd2Vh
a1RoaXMtPm1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uKTsKKyAgICAgICAgd2Vha1Ro
aXMtPm1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uID0gbmlsOworICAgIH0pOworCisg
ICAgZGlzcGF0Y2hTZXRUb3BDb250ZW50SW5zZXQoKTsKKyAgICBtX3BhZ2Uudmlld1N0YXRlRGlk
Q2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNJbldpbmRvdywgZmFsc2UsIFdlYlBhZ2VQcm94
eTo6Vmlld1N0YXRlQ2hhbmdlRGlzcGF0Y2hNb2RlOjpJbW1lZGlhdGUpOworICAgIG1fdmlld0lu
V2luZG93Q2hhbmdlV2FzRGVmZXJyZWQgPSBmYWxzZTsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6
dXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSgpCiB7CiAgICAgaWYgKCFbW21fdmlldyB3aW5kb3ddIGlz
S2V5V2luZG93XSB8fCAhaXNGb2N1c2VkKCkpIHsKQEAgLTM4Niw2ICsxMDEzLDI1IEBAIHZvaWQg
V2ViVmlld0ltcGw6Om5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb24o
KQogICAgIFtbbV92aWV3IF9zdXBlcklucHV0Q29udGV4dF0gZGlzY2FyZE1hcmtlZFRleHRdOyAv
LyBJbmZvcm0gdGhlIGlucHV0IG1ldGhvZCB0aGF0IHdlIHdvbid0IGhhdmUgYW4gaW5saW5lIGlu
cHV0IGFyZWEgZGVzcGl0ZSBoYXZpbmcgYmVlbiBhc2tlZCB0by4KIH0KIAordm9pZCBXZWJWaWV3
SW1wbDo6cHJlc3N1cmVDaGFuZ2VXaXRoRXZlbnQoTlNFdmVudCAqZXZlbnQpCit7CisjaWYgZGVm
aW5lZChfX0xQNjRfXykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9BTExPV0VEID49IDEwMTAw
MworICAgIGlmIChldmVudCA9PSBtX2xhc3RQcmVzc3VyZUV2ZW50KQorICAgICAgICByZXR1cm47
CisKKyAgICBpZiAobV9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmIChldmVudC5waGFzZSAhPSBOU0V2ZW50UGhhc2VDaGFuZ2VkICYmIGV2ZW50LnBoYXNl
ICE9IE5TRXZlbnRQaGFzZUJlZ2FuICYmIGV2ZW50LnBoYXNlICE9IE5TRXZlbnRQaGFzZUVuZGVk
KQorICAgICAgICByZXR1cm47CisKKyAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KGV2
ZW50LCBtX2xhc3RQcmVzc3VyZUV2ZW50LmdldCgpLCBtX3ZpZXcpOworICAgIG1fcGFnZS5oYW5k
bGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsKKworICAgIG1fbGFzdFByZXNzdXJlRXZlbnQgPSBldmVu
dDsKKyNlbmRpZgorfQorCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogYm9vbCBXZWJWaWV3
SW1wbDo6aGFzRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKSBjb25zdAogewpAQCAtNDI4LDYg
KzEwNzQsMjMzIEBAIE5TV2luZG93ICpXZWJWaWV3SW1wbDo6Y3JlYXRlRnVsbFNjcmVlbldpbmRv
dygpCiAjZW5kaWYKIH0KIAorYm9vbCBXZWJWaWV3SW1wbDo6aXNFZGl0YWJsZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuIG1fcGFnZS5pc0VkaXRhYmxlKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6
OmV4ZWN1dGVFZGl0Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBjb25zdCBTdHJp
bmcmIGFyZ3VtZW50KQoreworICAgIG1fcGFnZS5leGVjdXRlRWRpdENvbW1hbmQoY29tbWFuZE5h
bWUsIGFyZ3VtZW50KTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6cmVnaXN0ZXJFZGl0Q29tbWFu
ZChSZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4gcHJwQ29tbWFuZCwgV2ViUGFnZVByb3h5OjpV
bmRvT3JSZWRvIHVuZG9PclJlZG8pCit7CisgICAgUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+
IGNvbW1hbmQgPSBwcnBDb21tYW5kOworCisgICAgUmV0YWluUHRyPFdLRWRpdENvbW1hbmRPYmpD
PiBjb21tYW5kT2JqQyA9IGFkb3B0TlMoW1tXS0VkaXRDb21tYW5kT2JqQyBhbGxvY10gaW5pdFdp
dGhXZWJFZGl0Q29tbWFuZFByb3h5OmNvbW1hbmRdKTsKKyAgICBTdHJpbmcgYWN0aW9uTmFtZSA9
IFdlYkVkaXRDb21tYW5kUHJveHk6Om5hbWVGb3JFZGl0QWN0aW9uKGNvbW1hbmQtPmVkaXRBY3Rp
b24oKSk7CisKKyAgICBOU1VuZG9NYW5hZ2VyICp1bmRvTWFuYWdlciA9IFttX3ZpZXcgdW5kb01h
bmFnZXJdOworICAgIFt1bmRvTWFuYWdlciByZWdpc3RlclVuZG9XaXRoVGFyZ2V0Om1fdW5kb1Rh
cmdldC5nZXQoKSBzZWxlY3RvcjooKHVuZG9PclJlZG8gPT0gV2ViUGFnZVByb3h5OjpVbmRvKSA/
IEBzZWxlY3Rvcih1bmRvRWRpdGluZzopIDogQHNlbGVjdG9yKHJlZG9FZGl0aW5nOikpIG9iamVj
dDpjb21tYW5kT2JqQy5nZXQoKV07CisgICAgaWYgKCFhY3Rpb25OYW1lLmlzRW1wdHkoKSkKKyAg
ICAgICAgW3VuZG9NYW5hZ2VyIHNldEFjdGlvbk5hbWU6KE5TU3RyaW5nICopYWN0aW9uTmFtZV07
Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmNsZWFyQWxsRWRpdENvbW1hbmRzKCkKK3sKKyAgICBb
W21fdmlldyB1bmRvTWFuYWdlcl0gcmVtb3ZlQWxsQWN0aW9uc1dpdGhUYXJnZXQ6bV91bmRvVGFy
Z2V0LmdldCgpXTsKK30KKworYm9vbCBXZWJWaWV3SW1wbDo6d3JpdGVTZWxlY3Rpb25Ub1Bhc3Rl
Ym9hcmQoTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkLCBOU0FycmF5ICp0eXBlcykKK3sKKyAgICBz
aXplX3QgbnVtVHlwZXMgPSB0eXBlcy5jb3VudDsKKyAgICBbcGFzdGVib2FyZCBkZWNsYXJlVHlw
ZXM6dHlwZXMgb3duZXI6bmlsXTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bVR5cGVz
OyArK2kpIHsKKyAgICAgICAgaWYgKFtbdHlwZXMgb2JqZWN0QXRJbmRleDppXSBpc0VxdWFsVG86
TlNTdHJpbmdQYm9hcmRUeXBlXSkKKyAgICAgICAgICAgIFtwYXN0ZWJvYXJkIHNldFN0cmluZzpt
X3BhZ2Uuc3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVib2FyZCgpIGZvclR5cGU6TlNTdHJpbmdQYm9h
cmRUeXBlXTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBSZWZQdHI8V2ViQ29yZTo6U2hh
cmVkQnVmZmVyPiBidWZmZXIgPSBtX3BhZ2UuZGF0YVNlbGVjdGlvbkZvclBhc3RlYm9hcmQoW3R5
cGVzIG9iamVjdEF0SW5kZXg6aV0pOworICAgICAgICAgICAgW3Bhc3RlYm9hcmQgc2V0RGF0YTpi
dWZmZXIgPyBidWZmZXItPmNyZWF0ZU5TRGF0YSgpLmdldCgpIDogbmlsIGZvclR5cGU6W3R5cGVz
IG9iamVjdEF0SW5kZXg6aV1dOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiB0cnVlOwor
fQorCit2b2lkIFdlYlZpZXdJbXBsOjpjZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhKCkKK3sK
KyAgICBtX3BhZ2UuY2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYSgpOworfQorCit2b2lkIFdl
YlZpZXdJbXBsOjpzZWxlY3Rpb25EaWRDaGFuZ2UoKQoreworICAgIHVwZGF0ZUZvbnRQYW5lbElm
TmVlZGVkKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0T2JzZXJ2aW5nRm9udFBhbmVs
KCkKK3sKKyAgICBbbV93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3RhcnRPYnNlcnZpbmdGb250
UGFuZWxdOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVGb250UGFuZWxJZk5lZWRlZCgp
Cit7CisgICAgY29uc3QgRWRpdG9yU3RhdGUmIGVkaXRvclN0YXRlID0gbV9wYWdlLmVkaXRvclN0
YXRlKCk7CisgICAgaWYgKGVkaXRvclN0YXRlLnNlbGVjdGlvbklzTm9uZSB8fCAhZWRpdG9yU3Rh
dGUuaXNDb250ZW50RWRpdGFibGUpCisgICAgICAgIHJldHVybjsKKyAgICBpZiAoW05TRm9udFBh
bmVsIHNoYXJlZEZvbnRQYW5lbEV4aXN0c10gJiYgW1tOU0ZvbnRQYW5lbCBzaGFyZWRGb250UGFu
ZWxdIGlzVmlzaWJsZV0pIHsKKyAgICAgICAgbV9wYWdlLmZvbnRBdFNlbGVjdGlvbihbXShjb25z
dCBTdHJpbmcmIGZvbnROYW1lLCBkb3VibGUgZm9udFNpemUsIGJvb2wgc2VsZWN0aW9uSGFzTXVs
dGlwbGVGb250cywgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CisgICAgICAg
ICAgICBOU0ZvbnQgKmZvbnQgPSBbTlNGb250IGZvbnRXaXRoTmFtZTpmb250TmFtZSBzaXplOmZv
bnRTaXplXTsKKyAgICAgICAgICAgIGlmIChmb250KQorICAgICAgICAgICAgICAgIFtbTlNGb250
TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl0gc2V0U2VsZWN0ZWRGb250OmZvbnQgaXNNdWx0aXBs
ZTpzZWxlY3Rpb25IYXNNdWx0aXBsZUZvbnRzXTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCit2
b2lkIFdlYlZpZXdJbXBsOjpwcmVmZXJlbmNlc0RpZENoYW5nZSgpCit7CisgICAgQk9PTCBuZWVk
c1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMgPSBtX3BhZ2UucHJlZmVyZW5jZXMoKS5wbHVn
aW5zRW5hYmxlZCgpOworCisgICAgaWYgKCEhbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5h
dGVzID09ICEhbV9uZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMpCisgICAgICAgIHJl
dHVybjsKKworICAgIG1fbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzID0gbmVlZHNW
aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzOworICAgIGlmIChtX3ZpZXcud2luZG93KQorICAg
ICAgICB1cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6
OnNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvciwg
V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lIGxpZmV0aW1lKQoreworICAgIGlm
ICghbV90ZXh0SW5kaWNhdG9yV2luZG93KQorICAgICAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3cg
PSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3c+KG1fdmlldyk7
CisKKyAgICBOU1JlY3QgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMgPSBbbV92
aWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOlttX3ZpZXcgY29udmVydFJlY3Q6dGV4dElu
ZGljYXRvci50ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5hdGVzKCkgdG9WaWV3Om5p
bF1dOworICAgIG1fdGV4dEluZGljYXRvcldpbmRvdy0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5k
aWNhdG9yLCBOU1JlY3RUb0NHUmVjdCh0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRl
cyksIGxpZmV0aW1lKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9y
V2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0
aW9uIGFuaW1hdGlvbikKK3sKKyAgICBpZiAobV90ZXh0SW5kaWNhdG9yV2luZG93KQorICAgICAg
ICBtX3RleHRJbmRpY2F0b3JXaW5kb3ctPmNsZWFyVGV4dEluZGljYXRvcihhbmltYXRpb24pOwor
ICAgIG1fdGV4dEluZGljYXRvcldpbmRvdyA9IG51bGxwdHI7Cit9CisKK3ZvaWQgV2ViVmlld0lt
cGw6OnNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCBwcm9ncmVzcykKK3sK
KyAgICBpZiAobV90ZXh0SW5kaWNhdG9yV2luZG93KQorICAgICAgICBtX3RleHRJbmRpY2F0b3JX
aW5kb3ctPnNldEFuaW1hdGlvblByb2dyZXNzKHByb2dyZXNzKTsKK30KKwordm9pZCBXZWJWaWV3
SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93cygpCit7CisgICAgYm9vbCBo
YXNBY3RpdmVJbW1lZGlhdGVBY3Rpb24gPSBmYWxzZTsKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTAwMAorICAgIGhhc0FjdGl2ZUltbWVkaWF0ZUFjdGlvbiA9IFtt
X2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgaGFzQWN0aXZlSW1tZWRpYXRlQWN0aW9uXTsKKyNl
bmRpZgorCisgICAgLy8gRklYTUU6IFdlIGRvbid0IGtub3cgd2hpY2ggcGFuZWwgd2UgYXJlIGRp
c21pc3NpbmcsIGl0IG1heSBub3QgZXZlbiBiZSBpbiB0aGUgY3VycmVudCBwYWdlIChzZWUgPHJk
YXI6Ly9wcm9ibGVtLzEzODc1NzY2PikuCisgICAgaWYgKG1fdmlldy53aW5kb3cuaXNLZXlXaW5k
b3cgfHwgaGFzQWN0aXZlSW1tZWRpYXRlQWN0aW9uKSB7CisgICAgICAgIFdlYkNvcmU6OkRpY3Rp
b25hcnlMb29rdXA6OmhpZGVQb3B1cCgpOworCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDEwMDAKKyAgICAgICAgRERBY3Rpb25zTWFuYWdlciAqYWN0aW9uc01hbmFn
ZXIgPSBbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl07CisgICAgICAg
IGlmIChbYWN0aW9uc01hbmFnZXIgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihyZXF1ZXN0
QnViYmxlQ2xvc3VyZVVuYW5jaG9yT25GYWlsdXJlOildKQorICAgICAgICAgICAgW2FjdGlvbnNN
YW5hZ2VyIHJlcXVlc3RCdWJibGVDbG9zdXJlVW5hbmNob3JPbkZhaWx1cmU6WUVTXTsKKyNlbmRp
ZgorICAgIH0KKworICAgIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6
VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CisKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAorICAgIFttX2ltbWVkaWF0
ZUFjdGlvbkNvbnRyb2xsZXIgZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c107Cisj
ZW5kaWYKKyAgICAKKyAgICBtX3BhZ2VDbGllbnQuZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChXZWJD
b3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7Cit9CisKK3Zv
aWQgV2ViVmlld0ltcGw6OnF1aWNrTG9va1dpdGhFdmVudChOU0V2ZW50ICpldmVudCkKK3sKKyAg
ICBpZiAoaWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCisgICAgICAgIHJldHVybjsKKworI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCisgICAgaWYgKG1faW1tZWRp
YXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIpIHsKKyAgICAgICAgW21fdmlldyBfc3VwZXJRdWlj
a0xvb2tXaXRoRXZlbnQ6ZXZlbnRdOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisK
KyAgICBOU1BvaW50IGxvY2F0aW9uSW5WaWV3Q29vcmRpbmF0ZXMgPSBbbV92aWV3IGNvbnZlcnRQ
b2ludDpbZXZlbnQgbG9jYXRpb25JbldpbmRvd10gZnJvbVZpZXc6bmlsXTsKKyAgICBtX3BhZ2Uu
cGVyZm9ybURpY3Rpb25hcnlMb29rdXBBdExvY2F0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQobG9j
YXRpb25JblZpZXdDb29yZGluYXRlcykpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpwcmVwYXJl
Rm9yRGljdGlvbmFyeUxvb2t1cCgpCit7CisgICAgaWYgKG1fZGlkUmVnaXN0ZXJGb3JMb29rdXBQ
b3BvdmVyQ2xvc2VOb3RpZmljYXRpb25zKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2RpZFJl
Z2lzdGVyRm9yTG9va3VwUG9wb3ZlckNsb3NlTm90aWZpY2F0aW9ucyA9IHRydWU7CisKKyAgICBb
bV93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3RhcnRPYnNlcnZpbmdMb29rdXBEaXNtaXNzYWxd
OworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRBbGxvd3NMaW5rUHJldmlldyhib29sIGFsbG93
c0xpbmtQcmV2aWV3KQoreworICAgIGlmIChtX2FsbG93c0xpbmtQcmV2aWV3ID09IGFsbG93c0xp
bmtQcmV2aWV3KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2FsbG93c0xpbmtQcmV2aWV3ID0g
YWxsb3dzTGlua1ByZXZpZXc7CisKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTAwMAorICAgIGlmICghYWxsb3dzTGlua1ByZXZpZXcpCisgICAgICAgIFttX3ZpZXcg
cmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6bV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXpl
ci5nZXQoKV07CisgICAgZWxzZSBpZiAoTlNHZXN0dXJlUmVjb2duaXplciAqaW1tZWRpYXRlQWN0
aW9uUmVjb2duaXplciA9IG1faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCkp
CisgICAgICAgIFttX3ZpZXcgYWRkR2VzdHVyZVJlY29nbml6ZXI6aW1tZWRpYXRlQWN0aW9uUmVj
b2duaXplcl07CisjZW5kaWYKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6aW1tZWRpYXRlQWN0aW9u
QW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQoV0tIaXRUZXN0UmVzdWx0UmVmIGhp
dFRlc3RSZXN1bHQsIHVpbnQzMl90IHR5cGUsIFdLVHlwZVJlZiB1c2VyRGF0YSkKK3sKKyAgICBb
bV92aWV3IF9pbnRlcm5hbEltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRU
ZXN0UmVzdWx0OmhpdFRlc3RSZXN1bHQgd2l0aFR5cGU6dHlwZSB1c2VyRGF0YTp1c2VyRGF0YV07
Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb25BbmltYXRp
b24oKQoreworICAgIFttX3ZpZXcgX2ludGVybmFsUHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFu
aW1hdGlvbl07Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmNhbmNlbEltbWVkaWF0ZUFjdGlvbkFu
aW1hdGlvbigpCit7CisgICAgW21fdmlldyBfaW50ZXJuYWxDYW5jZWxJbW1lZGlhdGVBY3Rpb25B
bmltYXRpb25dOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpjb21wbGV0ZUltbWVkaWF0ZUFjdGlv
bkFuaW1hdGlvbigpCit7CisgICAgW21fdmlldyBfaW50ZXJuYWxDb21wbGV0ZUltbWVkaWF0ZUFj
dGlvbkFuaW1hdGlvbl07Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldElnbm9yZXNOb25XaGVl
bEV2ZW50cyhib29sIGlnbm9yZXNOb25XaGVlbEV2ZW50cykKK3sKKyAgICBpZiAobV9pZ25vcmVz
Tm9uV2hlZWxFdmVudHMgPT0gaWdub3Jlc05vbldoZWVsRXZlbnRzKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2lnbm9yZXNOb25XaGVlbEV2ZW50cyA9IGlnbm9yZXNOb25XaGVlbEV2ZW50czsK
KyAgICBtX3BhZ2Uuc2V0U2hvdWxkRGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRzKCFpZ25vcmVz
Tm9uV2hlZWxFdmVudHMpOworCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDEwMDAKKyAgICBpZiAoaWdub3Jlc05vbldoZWVsRXZlbnRzKQorICAgICAgICBbbV92aWV3
IHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOm1faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6
ZXIuZ2V0KCldOworICAgIGVsc2UgaWYgKE5TR2VzdHVyZVJlY29nbml6ZXIgKmltbWVkaWF0ZUFj
dGlvblJlY29nbml6ZXIgPSBtX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgp
KSB7CisgICAgICAgIGlmIChtX2FsbG93c0xpbmtQcmV2aWV3KQorICAgICAgICAgICAgW21fdmll
dyBhZGRHZXN0dXJlUmVjb2duaXplcjppbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyXTsKKyAgICB9
CisjZW5kaWYKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0SWdub3Jlc0FsbEV2ZW50cyhib29s
IGlnbm9yZXNBbGxFdmVudHMpCit7CisgICAgbV9pZ25vcmVzQWxsRXZlbnRzID0gaWdub3Jlc0Fs
bEV2ZW50czsKKyAgICBzZXRJZ25vcmVzTm9uV2hlZWxFdmVudHMoaWdub3Jlc0FsbEV2ZW50cyk7
Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmFjY2Vzc2liaWxpdHlSZWdpc3RlclVJUHJvY2Vzc1Rv
a2VucygpCit7CisgICAgLy8gSW5pdGlhbGl6ZSByZW1vdGUgYWNjZXNzaWJpbGl0eSB3aGVuIHRo
ZSB3aW5kb3cgY29ubmVjdGlvbiBoYXMgYmVlbiBlc3RhYmxpc2hlZC4KKyAgICBOU0RhdGEgKnJl
bW90ZUVsZW1lbnRUb2tlbiA9IFdLQVhSZW1vdGVUb2tlbkZvckVsZW1lbnQobV92aWV3KTsKKyAg
ICBOU0RhdGEgKnJlbW90ZVdpbmRvd1Rva2VuID0gV0tBWFJlbW90ZVRva2VuRm9yRWxlbWVudCht
X3ZpZXcud2luZG93KTsKKyAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZWxlbWVudFRva2VuID0gSVBD
OjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KFtyZW1vdGVF
bGVtZW50VG9rZW4gYnl0ZXNdKSwgW3JlbW90ZUVsZW1lbnRUb2tlbiBsZW5ndGhdKTsKKyAgICBJ
UEM6OkRhdGFSZWZlcmVuY2Ugd2luZG93VG9rZW4gPSBJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRl
cnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oW3JlbW90ZVdpbmRvd1Rva2VuIGJ5dGVzXSksIFty
ZW1vdGVXaW5kb3dUb2tlbiBsZW5ndGhdKTsKKyAgICBtX3BhZ2UucmVnaXN0ZXJVSVByb2Nlc3NB
Y2Nlc3NpYmlsaXR5VG9rZW5zKGVsZW1lbnRUb2tlbiwgd2luZG93VG9rZW4pOworfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbC5oCmluZGV4IGQzMDJmMTE2YTZjMDVhODc4NDE1Mzk1ZDFjOTJhOWIxMDQ0YWJk
MjkuLjhjMzBiMDVhOWEwYzgyOWIzMzhmYTFkNDRhMGM1ZTExOTllYmUxMjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKQEAgLTIyMCw3ICsyMjAs
NiBAQCBwcml2YXRlOgogICAgIFdLVmlldyAqbV93a1ZpZXc7CiAgICAgV0tXZWJWaWV3ICptX3dl
YlZpZXc7CiAgICAgV2ViVmlld0ltcGwqIG1faW1wbCB7IG51bGxwdHIgfTsKLSAgICBSZXRhaW5Q
dHI8V0tFZGl0b3JVbmRvVGFyZ2V0T2JqQz4gbV91bmRvVGFyZ2V0OwogI2lmIFVTRShBVVRPQ09S
UkVDVElPTl9QQU5FTCkKICAgICBDb3JyZWN0aW9uUGFuZWwgbV9jb3JyZWN0aW9uUGFuZWw7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1t
CmluZGV4IGQyNzk3MWQ3YTZlYzE3NGRmYzg1Y2Y5NzUwYWFmZTM5ZmJmNWMxZDIuLmI2OTExMjk3
NzczNzA3NmFhM2Y5NjI5YmFhZGUwMGEzZjQyMGJhNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQpAQCAtOTAsNjAgKzkwLDExIEBACiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKLUBpbnRlcmZh
Y2UgV0tFZGl0Q29tbWFuZE9iakMgOiBOU09iamVjdAotewotICAgIFJlZlB0cjxXZWJFZGl0Q29t
bWFuZFByb3h5PiBtX2NvbW1hbmQ7Ci19Ci0tIChpZClpbml0V2l0aFdlYkVkaXRDb21tYW5kUHJv
eHk6KFBhc3NSZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4pY29tbWFuZDsKLS0gKFdlYkVkaXRD
b21tYW5kUHJveHkqKWNvbW1hbmQ7Ci1AZW5kCi0KLUBpbnRlcmZhY2UgV0tFZGl0b3JVbmRvVGFy
Z2V0T2JqQyA6IE5TT2JqZWN0Ci0tICh2b2lkKXVuZG9FZGl0aW5nOihpZClzZW5kZXI7Ci0tICh2
b2lkKXJlZG9FZGl0aW5nOihpZClzZW5kZXI7Ci1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBXS0Vk
aXRDb21tYW5kT2JqQwotCi0tIChpZClpbml0V2l0aFdlYkVkaXRDb21tYW5kUHJveHk6KFBhc3NS
ZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4pY29tbWFuZAotewotICAgIHNlbGYgPSBbc3VwZXIg
aW5pdF07Ci0gICAgaWYgKCFzZWxmKQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgbV9jb21t
YW5kID0gY29tbWFuZDsKLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAoV2ViRWRpdENvbW1hbmRQ
cm94eSopY29tbWFuZAotewotICAgIHJldHVybiBtX2NvbW1hbmQuZ2V0KCk7Ci19Ci0KLUBlbmQK
LQotQGltcGxlbWVudGF0aW9uIFdLRWRpdG9yVW5kb1RhcmdldE9iakMKLQotLSAodm9pZCl1bmRv
RWRpdGluZzooaWQpc2VuZGVyCi17Ci0gICAgQVNTRVJUKFtzZW5kZXIgaXNLaW5kT2ZDbGFzczpb
V0tFZGl0Q29tbWFuZE9iakMgY2xhc3NdXSk7Ci0gICAgW3NlbmRlciBjb21tYW5kXS0+dW5hcHBs
eSgpOwotfQotCi0tICh2b2lkKXJlZG9FZGl0aW5nOihpZClzZW5kZXIKLXsKLSAgICBBU1NFUlQo
W3NlbmRlciBpc0tpbmRPZkNsYXNzOltXS0VkaXRDb21tYW5kT2JqQyBjbGFzc11dKTsKLSAgICBb
c2VuZGVyIGNvbW1hbmRdLT5yZWFwcGx5KCk7Ci19Ci0KLUBlbmQKLQogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIFBhZ2VDbGllbnRJbXBsOjpQYWdlQ2xpZW50SW1wbChXS1ZpZXcqIHdrVmlldywgV0tX
ZWJWaWV3ICp3ZWJWaWV3KQogICAgIDogbV93a1ZpZXcod2tWaWV3KQogICAgICwgbV93ZWJWaWV3
KHdlYlZpZXcpCi0gICAgLCBtX3VuZG9UYXJnZXQoYWRvcHROUyhbW1dLRWRpdG9yVW5kb1Rhcmdl
dE9iakMgYWxsb2NdIGluaXRdKSkKICNpZiBVU0UoRElDVEFUSU9OX0FMVEVSTkFUSVZFUykKICAg
ICAsIG1fYWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8QWx0ZXJu
YXRpdmVUZXh0VUlDb250cm9sbGVyPigpKQogI2VuZGlmCkBAIC0yMDcsOCArMTU4LDggQEAgTlNX
aW5kb3cgKlBhZ2VDbGllbnRJbXBsOjphY3RpdmVXaW5kb3coKSBjb25zdAogICAgIGlmIChtX3dr
Vmlldy5fdGh1bWJuYWlsVmlldykKICAgICAgICAgcmV0dXJuIG1fd2tWaWV3Ll90aHVtYm5haWxW
aWV3LndpbmRvdzsKICNlbmRpZgotICAgIGlmIChtX3drVmlldy5fdGFyZ2V0V2luZG93Rm9yTW92
ZVByZXBhcmF0aW9uKQotICAgICAgICByZXR1cm4gbV93a1ZpZXcuX3RhcmdldFdpbmRvd0Zvck1v
dmVQcmVwYXJhdGlvbjsKKyAgICBpZiAobV9pbXBsICYmIG1faW1wbC0+dGFyZ2V0V2luZG93Rm9y
TW92ZVByZXBhcmF0aW9uKCkpCisgICAgICAgIHJldHVybiBtX2ltcGwtPnRhcmdldFdpbmRvd0Zv
ck1vdmVQcmVwYXJhdGlvbigpOwogICAgIHJldHVybiBtX3drVmlldy53aW5kb3c7CiB9CiAKQEAg
LTMwNyw3ICsyNTgsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZWxhdW5jaFByb2Nlc3Mo
KQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpwcmVmZXJlbmNlc0RpZENoYW5nZSgpCiB7Ci0gICAg
W21fd2tWaWV3IF9wcmVmZXJlbmNlc0RpZENoYW5nZV07CisgICAgbV9pbXBsLT5wcmVmZXJlbmNl
c0RpZENoYW5nZSgpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjp0b29sVGlwQ2hhbmdlZChj
b25zdCBTdHJpbmcmIG9sZFRvb2xUaXAsIGNvbnN0IFN0cmluZyYgbmV3VG9vbFRpcCkKQEAgLTM3
MywxNSArMzI0LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9w
ZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXR0cmlidXQKIAogdm9pZCBQYWdlQ2xpZW50
SW1wbDo6cmVnaXN0ZXJFZGl0Q29tbWFuZChQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+
IHBycENvbW1hbmQsIFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbyB1bmRvT3JSZWRvKQogewotICAg
IFJlZlB0cjxXZWJFZGl0Q29tbWFuZFByb3h5PiBjb21tYW5kID0gcHJwQ29tbWFuZDsKLQotICAg
IFJldGFpblB0cjxXS0VkaXRDb21tYW5kT2JqQz4gY29tbWFuZE9iakMgPSBhZG9wdE5TKFtbV0tF
ZGl0Q29tbWFuZE9iakMgYWxsb2NdIGluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTpjb21tYW5k
XSk7Ci0gICAgU3RyaW5nIGFjdGlvbk5hbWUgPSBXZWJFZGl0Q29tbWFuZFByb3h5OjpuYW1lRm9y
RWRpdEFjdGlvbihjb21tYW5kLT5lZGl0QWN0aW9uKCkpOwotCi0gICAgTlNVbmRvTWFuYWdlciAq
dW5kb01hbmFnZXIgPSBbbV93a1ZpZXcgdW5kb01hbmFnZXJdOwotICAgIFt1bmRvTWFuYWdlciBy
ZWdpc3RlclVuZG9XaXRoVGFyZ2V0Om1fdW5kb1RhcmdldC5nZXQoKSBzZWxlY3RvcjooKHVuZG9P
clJlZG8gPT0gV2ViUGFnZVByb3h5OjpVbmRvKSA/IEBzZWxlY3Rvcih1bmRvRWRpdGluZzopIDog
QHNlbGVjdG9yKHJlZG9FZGl0aW5nOikpIG9iamVjdDpjb21tYW5kT2JqQy5nZXQoKV07Ci0gICAg
aWYgKCFhY3Rpb25OYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgW3VuZG9NYW5hZ2VyIHNldEFjdGlv
bk5hbWU6KE5TU3RyaW5nICopYWN0aW9uTmFtZV07CisgICAgbV9pbXBsLT5yZWdpc3RlckVkaXRD
b21tYW5kKHBycENvbW1hbmQsIHVuZG9PclJlZG8pOwogfQogCiAjaWYgVVNFKElOU0VSVElPTl9V
TkRPX0dST1VQSU5HKQpAQCAtMzkzLDcgKzMzNiw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnJl
Z2lzdGVySW5zZXJ0aW9uVW5kb0dyb3VwaW5nKCkKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xl
YXJBbGxFZGl0Q29tbWFuZHMoKQogewotICAgIFtbbV93a1ZpZXcgdW5kb01hbmFnZXJdIHJlbW92
ZUFsbEFjdGlvbnNXaXRoVGFyZ2V0Om1fdW5kb1RhcmdldC5nZXQoKV07CisgICAgbV9pbXBsLT5j
bGVhckFsbEVkaXRDb21tYW5kcygpOwogfQogCiBib29sIFBhZ2VDbGllbnRJbXBsOjpjYW5VbmRv
UmVkbyhXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8gdW5kb09yUmVkbykKQEAgLTU3Niw3ICs1MTks
NyBAQCBQYXNzUmVmUHRyPFZpZXdTbmFwc2hvdD4gUGFnZUNsaWVudEltcGw6OnRha2VWaWV3U25h
cHNob3QoKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZWxlY3Rpb25EaWRDaGFuZ2UoKQogewot
ICAgIFttX3drVmlldyBfc2VsZWN0aW9uQ2hhbmdlZF07CisgICAgbV9pbXBsLT5zZWxlY3Rpb25E
aWRDaGFuZ2UoKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6d2hlZWxFdmVudFdhc05vdEhh
bmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYgZXZlbnQpCkBAIC02MDMs
NyArNTQ2LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1
dFN0YXRlKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW4KIAogdm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYg
ZGljdGlvbmFyeVBvcHVwSW5mbykKIHsKLSAgICBbbV93a1ZpZXcgX3ByZXBhcmVGb3JEaWN0aW9u
YXJ5TG9va3VwXTsKKyAgICBtX2ltcGwtPnByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwKCk7CiAK
ICAgICBEaWN0aW9uYXJ5TG9va3VwOjpzaG93UG9wdXAoZGljdGlvbmFyeVBvcHVwSW5mbywgbV93
a1ZpZXcsIFt0aGlzXShUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7CiAgICAgICAgIFtt
X3drVmlldyBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTpUZXh0
SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaApp
bmRleCBlMTg0ZWE3MDE0YjRlMzk5ZGUxZTBkYWY3Yjg2ZjFkNTk3MmQwMWZjLi4zZjZhOTg1YzVm
YTZhNmE5ZmZhYWM1OGFhZWQ2MDllYWFjMWNiMTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmgKQEAg
LTM1LDYgKzM1LDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJQYWdlUHJveHk7
CitjbGFzcyBXZWJWaWV3SW1wbDsKIAogZW51bSBjbGFzcyBJbW1lZGlhdGVBY3Rpb25TdGF0ZSB7
CiAgICAgTm9uZSA9IDAsCkBAIC00NiwxMiArNDcsMTIgQEAgZW51bSBjbGFzcyBJbW1lZGlhdGVB
Y3Rpb25TdGF0ZSB7CiAKIEBjbGFzcyBEREFjdGlvbkNvbnRleHQ7CiBAY2xhc3MgUUxQcmV2aWV3
TWVudUl0ZW07Ci1AY2xhc3MgV0tWaWV3OwogCiBAaW50ZXJmYWNlIFdLSW1tZWRpYXRlQWN0aW9u
Q29udHJvbGxlciA6IE5TT2JqZWN0IDxOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
RGVsZWdhdGU+IHsKIEBwcml2YXRlCi0gICAgV2ViS2l0OjpXZWJQYWdlUHJveHkgKl9wYWdlOwot
ICAgIFdLVmlldyAqX3drVmlldzsKKyAgICBXZWJLaXQ6OldlYlBhZ2VQcm94eSogX3BhZ2U7Cisg
ICAgTlNWaWV3ICpfdmlldzsKKyAgICBXZWJLaXQ6OldlYlZpZXdJbXBsKiBfdmlld0ltcGw7CiAK
ICAgICBXZWJLaXQ6OkltbWVkaWF0ZUFjdGlvblN0YXRlIF9zdGF0ZTsKICAgICBXZWJLaXQ6Oldl
YkhpdFRlc3RSZXN1bHREYXRhIF9oaXRUZXN0UmVzdWx0RGF0YTsKQEAgLTY3LDggKzY4LDggQEAg
ZW51bSBjbGFzcyBJbW1lZGlhdGVBY3Rpb25TdGF0ZSB7CiAgICAgQk9PTCBfaGFzQWN0aXZlSW1t
ZWRpYXRlQWN0aW9uOwogfQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6
OldlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihXS1ZpZXcgKil3a1ZpZXcgcmVjb2duaXplcjooTlNJ
bW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWltbWVkaWF0ZUFjdGlvblJlY29nbml6
ZXI7Ci0tICh2b2lkKXdpbGxEZXN0cm95VmlldzooV0tWaWV3ICopdmlldzsKKy0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmll
dyAqKXZpZXcgdmlld0ltcGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKXZpZXdJbXBsIHJlY29nbml6
ZXI6KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilpbW1lZGlhdGVBY3Rpb25S
ZWNvZ25pemVyOworLSAodm9pZCl3aWxsRGVzdHJveVZpZXc6KE5TVmlldyAqKXZpZXc7CiAtICh2
b2lkKWRpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0Oihjb25zdCBXZWJLaXQ6OldlYkhp
dFRlc3RSZXN1bHREYXRhJiloaXRUZXN0UmVzdWx0IGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQ6KEJP
T0wpY29udGVudFByZXZlbnRzRGVmYXVsdCB1c2VyRGF0YTooQVBJOjpPYmplY3QqKXVzZXJEYXRh
OwogLSAodm9pZClkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzOwogLSAoQk9PTClo
YXNBY3RpdmVJbW1lZGlhdGVBY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCmluZGV4IDBlOGQ4
ZjRlZDEzY2FlMzcxZTI2YjVhMGM3YmY3Yjc3Y2I1MWJiNzUuLjM1NTU3MGM2NmY3MzY2OWM2MTMw
MmQ2ZDM2NTgwMGQwZjhhMDNjODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCkBAIC0zMCwxMSAr
MzAsMTEgQEAKIAogI2ltcG9ydCAiQVBJSGl0VGVzdFJlc3VsdC5oIgogI2ltcG9ydCAiV0tOU1VS
TEV4dHJhcy5oIgotI2ltcG9ydCAiV0tWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYlBhZ2VN
ZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJv
eHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW1wb3J0ICJXZWJW
aWV3SW1wbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9EYXRhRGV0ZWN0b3JzU1BJLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0RpY3Rpb25hcnlMb29rdXAuaD4KICNpbXBvcnQgPFdlYkNvcmUvR2VvbWV0cnlV
dGlsaXRpZXMuaD4KQEAgLTY0LDcgKzY0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAog
QGltcGxlbWVudGF0aW9uIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlcgogCi0tIChpbnN0YW5j
ZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooV0tWaWV3ICopd2tW
aWV3IHJlY29nbml6ZXI6KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilpbW1l
ZGlhdGVBY3Rpb25SZWNvZ25pemVyCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJQ
YWdlUHJveHkmKXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDooV2ViVmlld0ltcGwm
KXZpZXdJbXBsIHJlY29nbml6ZXI6KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIg
KilpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyCiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsK
IApAQCAtNzIsNyArNzIsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgICAgICByZXR1
cm4gbmlsOwogCiAgICAgX3BhZ2UgPSAmcGFnZTsKLSAgICBfd2tWaWV3ID0gd2tWaWV3OworICAg
IF92aWV3ID0gdmlldzsKKyAgICBfdmlld0ltcGwgPSAmdmlld0ltcGw7CiAgICAgX3R5cGUgPSBr
V0tJbW1lZGlhdGVBY3Rpb25Ob25lOwogICAgIF9pbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyID0g
aW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcjsKICAgICBfaGFzQWN0aXZlSW1tZWRpYXRlQWN0aW9u
ID0gTk87CkBAIC04MCwxMCArODEsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICBy
ZXR1cm4gc2VsZjsKIH0KIAotLSAodm9pZCl3aWxsRGVzdHJveVZpZXc6KFdLVmlldyAqKXZpZXcK
Ky0gKHZvaWQpd2lsbERlc3Ryb3lWaWV3OihOU1ZpZXcgKil2aWV3CiB7CiAgICAgX3BhZ2UgPSBu
dWxscHRyOwotICAgIF93a1ZpZXcgPSBuaWw7CisgICAgX3ZpZXcgPSBuaWw7CisgICAgX3ZpZXdJ
bXBsID0gbnVsbHB0cjsKICAgICBfaGl0VGVzdFJlc3VsdERhdGEgPSBXZWJIaXRUZXN0UmVzdWx0
RGF0YSgpOwogICAgIF9jb250ZW50UHJldmVudHNEZWZhdWx0ID0gTk87CiAgICAgCkBAIC0xNjgs
OSArMTcwLDkgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICBpZiAoaW1tZWRpYXRlQWN0
aW9uUmVjb2duaXplciAhPSBfaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcikKICAgICAgICAgcmV0
dXJuOwogCi0gICAgW193a1ZpZXcgX3ByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25d
OworICAgIF92aWV3SW1wbC0+cHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbigpOwog
Ci0gICAgW193a1ZpZXcgX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdOworICAg
IF92aWV3SW1wbC0+ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93cygpOwogCiAgICAg
X3BhZ2UtPnNldE1haW50YWluc0luYWN0aXZlU2VsZWN0aW9uKHRydWUpOwogCkBAIC0yMzEsNyAr
MjMzLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogICAgIF9wYWdlLT5pbW1lZGlhdGVB
Y3Rpb25EaWRDYW5jZWwoKTsKIAotICAgIFtfd2tWaWV3IF9jYW5jZWxJbW1lZGlhdGVBY3Rpb25B
bmltYXRpb25dOworICAgIF92aWV3SW1wbC0+Y2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9u
KCk7CiAKICAgICBfcGFnZS0+c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKDApOwog
ICAgIFtzZWxmIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRlXTsKQEAgLTI0NSw3ICsyNDcsNyBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiAgICAgX3BhZ2UtPmltbWVkaWF0ZUFjdGlvbkRp
ZENvbXBsZXRlKCk7CiAKLSAgICBbX3drVmlldyBfY29tcGxldGVJbW1lZGlhdGVBY3Rpb25Bbmlt
YXRpb25dOworICAgIF92aWV3SW1wbC0+Y29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24o
KTsKIAogICAgIF9wYWdlLT5zZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoMSk7CiB9
CkBAIC0zNDUsMTIgKzM0NywxMiBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiAtIChOU1Zp
ZXcgKiltZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtIHZpZXdBdFNjcmVlblBvaW50OihO
U1BvaW50KXNjcmVlblBvaW50CiB7Ci0gICAgcmV0dXJuIF93a1ZpZXc7CisgICAgcmV0dXJuIF92
aWV3OwogfQogCiAtIChpZDxRTFByZXZpZXdJdGVtPiltZW51SXRlbTooTlNNZW51SXRlbSAqKW1l
bnVJdGVtIHByZXZpZXdJdGVtQXRQb2ludDooTlNQb2ludClwb2ludAogewotICAgIGlmICghX3dr
VmlldykKKyAgICBpZiAoIV92aWV3KQogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAgUmVmUHRy
PEFQSTo6SGl0VGVzdFJlc3VsdD4gaGl0VGVzdFJlc3VsdCA9IFtzZWxmIF93ZWJIaXRUZXN0UmVz
dWx0XTsKQEAgLTM2OSwyMCArMzcxLDIwIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIC0g
KE5TUmVjdCltZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtIGl0ZW1GcmFtZUZvclBvaW50
OihOU1BvaW50KXBvaW50CiB7Ci0gICAgaWYgKCFfd2tWaWV3KQorICAgIGlmICghX3ZpZXcpCiAg
ICAgICAgIHJldHVybiBOU1plcm9SZWN0OwogCiAgICAgUmVmUHRyPEFQSTo6SGl0VGVzdFJlc3Vs
dD4gaGl0VGVzdFJlc3VsdCA9IFtzZWxmIF93ZWJIaXRUZXN0UmVzdWx0XTsKLSAgICByZXR1cm4g
W193a1ZpZXcgY29udmVydFJlY3Q6aGl0VGVzdFJlc3VsdC0+ZWxlbWVudEJvdW5kaW5nQm94KCkg
dG9WaWV3Om5pbF07CisgICAgcmV0dXJuIFtfdmlldyBjb252ZXJ0UmVjdDpoaXRUZXN0UmVzdWx0
LT5lbGVtZW50Qm91bmRpbmdCb3goKSB0b1ZpZXc6bmlsXTsKIH0KIAogLSAoTlNTaXplKW1lbnVJ
dGVtOihOU01lbnVJdGVtICopbWVudUl0ZW0gbWF4U2l6ZUZvclBvaW50OihOU1BvaW50KXBvaW50
CiB7Ci0gICAgaWYgKCFfd2tWaWV3KQorICAgIGlmICghX3ZpZXcpCiAgICAgICAgIHJldHVybiBO
U1plcm9TaXplOwogCi0gICAgTlNTaXplIHNjcmVlblNpemUgPSBfd2tWaWV3LndpbmRvdy5zY3Jl
ZW4uZnJhbWUuc2l6ZTsKLSAgICBGbG9hdFJlY3QgbGFyZ2VzdFJlY3QgPSBsYXJnZXN0UmVjdFdp
dGhBc3BlY3RSYXRpb0luc2lkZVJlY3Qoc2NyZWVuU2l6ZS53aWR0aCAvIHNjcmVlblNpemUuaGVp
Z2h0LCBfd2tWaWV3LmJvdW5kcyk7CisgICAgTlNTaXplIHNjcmVlblNpemUgPSBfdmlldy53aW5k
b3cuc2NyZWVuLmZyYW1lLnNpemU7CisgICAgRmxvYXRSZWN0IGxhcmdlc3RSZWN0ID0gbGFyZ2Vz
dFJlY3RXaXRoQXNwZWN0UmF0aW9JbnNpZGVSZWN0KHNjcmVlblNpemUud2lkdGggLyBzY3JlZW5T
aXplLmhlaWdodCwgX3ZpZXcuYm91bmRzKTsKICAgICByZXR1cm4gTlNNYWtlU2l6ZShsYXJnZXN0
UmVjdC53aWR0aCgpICogMC43NSwgbGFyZ2VzdFJlY3QuaGVpZ2h0KCkgKiAwLjc1KTsKIH0KIApA
QCAtNDAzLDcgKzQwNSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKICAgICBSZWZQdHI8
V2ViUGFnZVByb3h5PiBwYWdlID0gX3BhZ2U7CiAgICAgUGFnZU92ZXJsYXk6OlBhZ2VPdmVybGF5
SUQgb3ZlcmxheUlEID0gX2hpdFRlc3RSZXN1bHREYXRhLmRldGVjdGVkRGF0YU9yaWdpbmF0aW5n
UGFnZU92ZXJsYXk7Ci0gICAgX2N1cnJlbnRBY3Rpb25Db250ZXh0ID0gW2FjdGlvbkNvbnRleHQg
Y29udGV4dEZvclZpZXc6X3drVmlldyBhbHRNb2RlOllFUyBpbnRlcmFjdGlvblN0YXJ0ZWRIYW5k
bGVyOl4oKSB7CisgICAgX2N1cnJlbnRBY3Rpb25Db250ZXh0ID0gW2FjdGlvbkNvbnRleHQgY29u
dGV4dEZvclZpZXc6X3ZpZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25TdGFydGVkSGFuZGxlcjpe
KCkgewogICAgICAgICBwYWdlLT5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEYXRhRGV0ZWN0b3Jz
RGlkUHJlc2VudFVJKG92ZXJsYXlJRCkpOwogICAgIH0gaW50ZXJhY3Rpb25DaGFuZ2VkSGFuZGxl
cjpeKCkgewogICAgICAgICBpZiAoX2hpdFRlc3RSZXN1bHREYXRhLmRldGVjdGVkRGF0YVRleHRJ
bmRpY2F0b3IpCkBAIC00MTQsNyArNDE2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAg
ICAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdOwogICAgIH1dOwogCi0gICAg
W19jdXJyZW50QWN0aW9uQ29udGV4dCBzZXRIaWdobGlnaHRGcmFtZTpbX3drVmlldy53aW5kb3cg
Y29udmVydFJlY3RUb1NjcmVlbjpbX3drVmlldyBjb252ZXJ0UmVjdDpfaGl0VGVzdFJlc3VsdERh
dGEuZGV0ZWN0ZWREYXRhQm91bmRpbmdCb3ggdG9WaWV3Om5pbF1dXTsKKyAgICBbX2N1cnJlbnRB
Y3Rpb25Db250ZXh0IHNldEhpZ2hsaWdodEZyYW1lOltfdmlldy53aW5kb3cgY29udmVydFJlY3RU
b1NjcmVlbjpbX3ZpZXcgY29udmVydFJlY3Q6X2hpdFRlc3RSZXN1bHREYXRhLmRldGVjdGVkRGF0
YUJvdW5kaW5nQm94IHRvVmlldzpuaWxdXV07CiAKICAgICBOU0FycmF5ICptZW51SXRlbXMgPSBb
W2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJdIG1lbnVJdGVtc0ZvclJl
c3VsdDpbX2N1cnJlbnRBY3Rpb25Db250ZXh0IG1haW5SZXN1bHRdIGFjdGlvbkNvbnRleHQ6X2N1
cnJlbnRBY3Rpb25Db250ZXh0LmdldCgpXTsKIApAQCAtNDM1LDcgKzQzNyw3IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7CiAgICAgW2FjdGlvbkNvbnRleHQgc2V0SW1tZWRpYXRlOllFU107CiAK
ICAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBwYWdlID0gX3BhZ2U7Ci0gICAgX2N1cnJlbnRBY3Rp
b25Db250ZXh0ID0gW2FjdGlvbkNvbnRleHQgY29udGV4dEZvclZpZXc6X3drVmlldyBhbHRNb2Rl
OllFUyBpbnRlcmFjdGlvblN0YXJ0ZWRIYW5kbGVyOl4oKSB7CisgICAgX2N1cnJlbnRBY3Rpb25D
b250ZXh0ID0gW2FjdGlvbkNvbnRleHQgY29udGV4dEZvclZpZXc6X3ZpZXcgYWx0TW9kZTpZRVMg
aW50ZXJhY3Rpb25TdGFydGVkSGFuZGxlcjpeKCkgewogICAgIH0gaW50ZXJhY3Rpb25DaGFuZ2Vk
SGFuZGxlcjpeKCkgewogICAgICAgICBpZiAoX2hpdFRlc3RSZXN1bHREYXRhLmxpbmtUZXh0SW5k
aWNhdG9yKQogICAgICAgICAgICAgcGFnZS0+c2V0VGV4dEluZGljYXRvcihfaGl0VGVzdFJlc3Vs
dERhdGEubGlua1RleHRJbmRpY2F0b3ItPmRhdGEoKSk7CkBAIC00NDMsNyArNDQ1LDcgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9u
U3RhdGVdOwogICAgIH1dOwogCi0gICAgW19jdXJyZW50QWN0aW9uQ29udGV4dCBzZXRIaWdobGln
aHRGcmFtZTpbX3drVmlldy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpbX3drVmlldyBjb252
ZXJ0UmVjdDpfaGl0VGVzdFJlc3VsdERhdGEuZWxlbWVudEJvdW5kaW5nQm94IHRvVmlldzpuaWxd
XV07CisgICAgW19jdXJyZW50QWN0aW9uQ29udGV4dCBzZXRIaWdobGlnaHRGcmFtZTpbX3ZpZXcu
d2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46W192aWV3IGNvbnZlcnRSZWN0Ol9oaXRUZXN0UmVz
dWx0RGF0YS5lbGVtZW50Qm91bmRpbmdCb3ggdG9WaWV3Om5pbF1dXTsKIAogICAgIFJlZlB0cjxB
UEk6OkhpdFRlc3RSZXN1bHQ+IGhpdFRlc3RSZXN1bHQgPSBbc2VsZiBfd2ViSGl0VGVzdFJlc3Vs
dF07CiAgICAgTlNBcnJheSAqbWVudUl0ZW1zID0gW1tnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3Mo
KSBzaGFyZWRNYW5hZ2VyXSBtZW51SXRlbXNGb3JUYXJnZXRVUkw6aGl0VGVzdFJlc3VsdC0+YWJz
b2x1dGVMaW5rVVJMKCkgYWN0aW9uQ29udGV4dDpfY3VycmVudEFjdGlvbkNvbnRleHQuZ2V0KCld
OwpAQCAtNDY1LDEwICs0NjcsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICBpZiAo
IWRpY3Rpb25hcnlQb3B1cEluZm8uYXR0cmlidXRlZFN0cmluZykKICAgICAgICAgcmV0dXJuIG5p
bDsKIAotICAgIFtfd2tWaWV3IF9wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cF07CisgICAgX3Zp
ZXdJbXBsLT5wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cCgpOwogCi0gICAgcmV0dXJuIERpY3Rp
b25hcnlMb29rdXA6OmFuaW1hdGlvbkNvbnRyb2xsZXJGb3JQb3B1cChkaWN0aW9uYXJ5UG9wdXBJ
bmZvLCBfd2tWaWV3LCBbc2VsZl0oVGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgewotICAg
ICAgICBbX3drVmlldyBfc2V0VGV4dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGlt
ZTpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudF07CisgICAgcmV0dXJuIERp
Y3Rpb25hcnlMb29rdXA6OmFuaW1hdGlvbkNvbnRyb2xsZXJGb3JQb3B1cChkaWN0aW9uYXJ5UG9w
dXBJbmZvLCBfdmlldywgW3NlbGZdKFRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IpIHsKKyAg
ICAgICAgX3ZpZXdJbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIFRleHRJbmRp
Y2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50KTsKICAgICB9KTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263851</attachid>
            <date>2015-10-22 13:19:53 -0700</date>
            <delta_ts>2015-10-22 13:55:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150174-20151022131908.patch</filename>
            <type>text/plain</type>
            <size>132579</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxNDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWM3MDEzODcxYzAyMGRh
ZmYzZWNiYzFiNjE2ZWUzZTc3NmM4YWQ1OC4uNzJhMWU5OTcxMTIyZjAxZDkzZTg0OTkzNGUxZjQ3
NzJmNjAxODg2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzNyBAQAorMjAxNS0xMC0yMiAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBXS1ZpZXcgYmVp
bmcgaW5zaWRlIFdLV2ViVmlldyBsZWFkcyB0byB3ZWlyZCBBUEkgaXNzdWVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAxNzQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IHJlbmV3R1N0YXRlXSk6CisgICAgICAgICgt
W1dLVmlldyB3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZDp0eXBlczpdKToKKyAgICAgICAgKC1b
V0tWaWV3IGNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWE6XSk6CisgICAgICAgICgtW1dLVmll
dyBzY3JvbGxXaGVlbDpdKToKKyAgICAgICAgKC1bV0tWaWV3IHN3aXBlV2l0aEV2ZW50Ol0pOgor
ICAgICAgICAoLVtXS1ZpZXcgbW91c2VNb3ZlZDpdKToKKyAgICAgICAgKC1bV0tWaWV3IG1vdXNl
RG93bjpdKToKKyAgICAgICAgKC1bV0tWaWV3IG1vdXNlVXA6XSk6CisgICAgICAgICgtW1dLVmll
dyBtb3VzZURyYWdnZWQ6XSk6CisgICAgICAgICgtW1dLVmlldyBwcmVzc3VyZUNoYW5nZVdpdGhF
dmVudDpdKToKKyAgICAgICAgKC1bV0tWaWV3IGFjY2VwdHNGaXJzdE1vdXNlOl0pOgorICAgICAg
ICAoLVtXS1ZpZXcgc2hvdWxkRGVsYXlXaW5kb3dPcmRlcmluZ0ZvckV2ZW50Ol0pOgorICAgICAg
ICAoLVtXS1ZpZXcgcGVyZm9ybUtleUVxdWl2YWxlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBr
ZXlVcDpdKToKKyAgICAgICAgKC1bV0tWaWV3IGtleURvd246XSk6CisgICAgICAgICgtW1dLVmll
dyBmbGFnc0NoYW5nZWQ6XSk6CisgICAgICAgICgtW1dLVmlldyBfc3VwZXJRdWlja0xvb2tXaXRo
RXZlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBfYWRkRm9udFBhbmVsT2JzZXJ2ZXJdKToKKyAg
ICAgICAgKC1bV0tWaWV3IHZpZXdXaWxsTW92ZVRvV2luZG93Ol0pOgorICAgICAgICAoLVtXS1Zp
ZXcgdmlld0RpZE1vdmVUb1dpbmRvd10pOgorICAgICAgICAoLVtXS1ZpZXcgdmlld0RpZENoYW5n
ZUJhY2tpbmdQcm9wZXJ0aWVzXSk6CisgICAgICAgICgtW1dLVmlldyBlbmFibGVBY2Nlc3NpYmls
aXR5SWZOZWNlc3NhcnldKToKKyAgICAgICAgKC1bV0tWaWV3IHF1aWNrTG9va1dpdGhFdmVudDpd
KToKKyAgICAgICAgKC1bV0tWaWV3IF9jb2xvclNwYWNlXSk6CisgICAgICAgICgtW1dLVmlldyBf
ZGlkUmVsYXVuY2hQcm9jZXNzXSk6CisgICAgICAgICgtW1dLVmlldyBfc2V0VGV4dEluZGljYXRv
cjpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOndpdGhMaWZldGltZTpd
KToKKyAgICAgICAgKC1bV0tWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOl0p
OgorICAgICAgICAoLVtXS1ZpZXcgX3NldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczpd
KToKKyAgICAgICAgKC1bV0tWaWV3IGluaXRXaXRoRnJhbWU6cHJvY2Vzc1Bvb2w6Y29uZmlndXJh
dGlvbjp3ZWJWaWV3Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgX2RpZFBlcmZvcm1JbW1lZGlhdGVB
Y3Rpb25IaXRUZXN0OmNvbnRlbnRQcmV2ZW50c0RlZmF1bHQ6dXNlckRhdGE6XSk6CisgICAgICAg
ICgtW1dLVmlldyBfaW50ZXJuYWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9y
SGl0VGVzdFJlc3VsdDp3aXRoVHlwZTp1c2VyRGF0YTpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9p
bnRlcm5hbFByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25dKToKKyAgICAgICAgKC1b
V0tWaWV3IF9pbnRlcm5hbENhbmNlbEltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl0pOgorICAgICAg
ICAoLVtXS1ZpZXcgX2ludGVybmFsQ29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25dKToK
KyAgICAgICAgKC1bV0tWaWV3IF9pbnRlcm5hbERpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdp
bmRvd3NXaXRoQW5pbWF0aW9uOl0pOgorICAgICAgICAoLVtXS1ZpZXcgYmVnaW5EZWZlcnJpbmdW
aWV3SW5XaW5kb3dDaGFuZ2VzXSk6CisgICAgICAgICgtW1dLVmlldyBlbmREZWZlcnJpbmdWaWV3
SW5XaW5kb3dDaGFuZ2VzXSk6CisgICAgICAgICgtW1dLVmlldyBlbmREZWZlcnJpbmdWaWV3SW5X
aW5kb3dDaGFuZ2VzU3luY10pOgorICAgICAgICAoLVtXS1ZpZXcgX3ByZXBhcmVGb3JNb3ZlVG9X
aW5kb3c6d2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS1ZpZXcgaXNEZWZl
cnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzXSk6CisgICAgICAgICgtW1dLVmlldyBhbGxvd3NMaW5r
UHJldmlld10pOgorICAgICAgICAoLVtXS1ZpZXcgc2V0QWxsb3dzTGlua1ByZXZpZXc6XSk6Cisg
ICAgICAgICgtW1dLVmlldyBfc2V0SWdub3Jlc0FsbEV2ZW50czpdKToKKyAgICAgICAgKC1bV0tW
aWV3IF9zZXRJZ25vcmVzTm9uV2hlZWxNb3VzZUV2ZW50czpdKToKKyAgICAgICAgKC1bV0tWaWV3
IF9zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHM6XSk6CisgICAgICAgICgtW1dLVmlldyBfaWdub3Jl
c05vbldoZWVsRXZlbnRzXSk6CisgICAgICAgICgtW1dLVmlldyBfaWdub3Jlc0FsbEV2ZW50c10p
OgorICAgICAgICAoLVtXS1ZpZXcgX3NldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I6XSk6Cisg
ICAgICAgICgtW1dLVmlldyBfb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3Rvcl0pOgorICAgICAgICAo
LVtXS1ZpZXcgX3NldFRvcENvbnRlbnRJbnNldDpdKToKKyAgICAgICAgKC1bV0tWaWV3IF90b3BD
b250ZW50SW5zZXRdKToKKyAgICAgICAgKC1bV0tWaWV3IF9kaXNtaXNzQ29udGVudFJlbGF0aXZl
Q2hpbGRXaW5kb3dzXSk6CisgICAgICAgICgtW1dLVmlldyBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2
ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb246XSk6CisgICAgICAgICgtW1dLVmlldyBfc2V0QXV0
b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX2F1
dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0c10pOgorICAgICAgICAoLVtXS1dpbmRvd1Zp
c2liaWxpdHlPYnNlcnZlciBpbml0V2l0aFZpZXc6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dL
V2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0YXJ0T2JzZXJ2aW5nOl0pOiBEZWxldGVkLgorICAg
ICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBzdG9wT2JzZXJ2aW5nOl0pOiBEZWxl
dGVkLgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBfd2luZG93RGlkT3Jk
ZXJPblNjcmVlbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2Jz
ZXJ2ZXIgX3dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S1ZpZXcgZGVhbGxvY10pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3VwZGF0ZVdpbmRv
d0FuZFZpZXdGcmFtZXNdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IHVwZGF0ZUZvbnRQ
YW5lbElmTmVlZGVkXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfc2VsZWN0aW9uQ2hh
bmdlZF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgYWRkV2luZG93T2JzZXJ2ZXJzRm9y
V2luZG93Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgcmVtb3ZlV2luZG93T2JzZXJ2
ZXJzXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBkb1dpbmRvd0RpZENoYW5nZVNjcmVl
bl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZEJlY29tZUtleTpdKTog
RGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWRDaGFuZ2VTY3JlZW46XSk6IERl
bGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfd2luZG93RGlkQ2hhbmdlTGF5ZXJIb3N0aW5nOl0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZFJlc2lnbktleTpdKTogRGVs
ZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWRNaW5pYXR1cml6ZTpdKTogRGVsZXRl
ZC4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWREZW1pbmlhdHVyaXplOl0pOiBEZWxldGVk
LgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZE1vdmU6XSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dLVmlldyBfd2luZG93RGlkUmVzaXplOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1Zp
ZXcgX3dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1Zp
ZXcgX3dpbmRvd0RpZE9yZGVyT25TY3JlZW46XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmll
dyBfd2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXM6XSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dLVmlldyBfd2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3RhdGU6XSk6IERlbGV0ZWQuCisg
ICAgICAgICgtW1dLVmlldyBfcHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXBdKTogRGVsZXRlZC4K
KyAgICAgICAgKC1bV0tWaWV3IF9kaWN0aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTpdKTog
RGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9hY2Nlc3NpYmlsaXR5UmVnaXN0ZXJVSVByb2Nl
c3NUb2tlbnNdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9wb3N0RmFrZU1vdXNlTW92
ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1Zp
ZXcgX2ludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dL
VmlldyBfcHJlZmVyZW5jZXNEaWRDaGFuZ2VdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3
IF90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb25dKTogRGVsZXRlZC4KKyAgICAgICAgKC1b
V0tWaWV3IF91cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWNdKTogRGVsZXRlZC4KKyAgICAg
ICAgKC1bV0tWaWV3IG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRl
eHQ6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfZGlzcGF0Y2hTZXRUb3BDb250ZW50
SW5zZXRdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRl
cm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRvcENvbnRlbnRJbnNldCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpvdmVycmlkZURldmljZVNjYWxlRmFjdG9yKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmlzRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdl
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp0YXJnZXRXaW5kb3dGb3JNb3ZlUHJl
cGFyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bGFzdFByZXNzdXJlRXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YWxsb3dzTGlua1ByZXZpZXcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aWdub3Jlc05vbldoZWVsRXZlbnRzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omlnbm9yZXNBbGxFdmVudHMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoU09GVF9MSU5LX0NPTlNUQU5UX01BWV9G
QUlMKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgaW5pdFdpdGhWaWV3
OmltcGw6XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIGRlYWxsb2Nd
KToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3RhcnRPYnNlcnZpbmc6
XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0b3BPYnNlcnZpbmc6
XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0YXJ0T2JzZXJ2aW5n
Rm9udFBhbmVsXSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0YXJ0
T2JzZXJ2aW5nTG9va3VwRGlzbWlzc2FsXSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0
eU9ic2VydmVyIF93aW5kb3dEaWRPcmRlck9uU2NyZWVuOl0pOgorICAgICAgICAoLVtXS1dpbmRv
d1Zpc2liaWxpdHlPYnNlcnZlciBfd2luZG93RGlkT3JkZXJPZmZTY3JlZW46XSk6CisgICAgICAg
ICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRCZWNvbWVLZXk6XSk6Cisg
ICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRSZXNpZ25LZXk6
XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRNaW5p
YXR1cml6ZTpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgX3dpbmRv
d0RpZERlbWluaWF0dXJpemU6XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2Vy
dmVyIF93aW5kb3dEaWRNb3ZlOl0pOgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNl
cnZlciBfd2luZG93RGlkUmVzaXplOl0pOgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlP
YnNlcnZlciBfd2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXM6XSk6CisgICAgICAgICgt
W1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRDaGFuZ2VTY3JlZW46XSk6Cisg
ICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRDaGFuZ2VMYXll
ckhvc3Rpbmc6XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5k
b3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0ZTpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmls
aXR5T2JzZXJ2ZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29udGV4
dDpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgX2RpY3Rpb25hcnlM
b29rdXBQb3BvdmVyV2lsbENsb3NlOl0pOgorICAgICAgICAoLVtXS0VkaXRDb21tYW5kT2JqQyBp
bml0V2l0aFdlYkVkaXRDb21tYW5kUHJveHk6XSk6CisgICAgICAgICgtW1dLRWRpdENvbW1hbmRP
YmpDIGNvbW1hbmRdKToKKyAgICAgICAgKC1bV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQyB1bmRvRWRp
dGluZzpdKToKKyAgICAgICAgKC1bV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQyByZWRvRWRpdGluZzpd
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6On5XZWJWaWV3SW1wbCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpiZWNvbWVGaXJzdFJlc3BvbmRlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpyZXNpZ25GaXJzdFJlc3BvbmRlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpyZW5ld0dTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVX
aW5kb3dBbmRWaWV3RnJhbWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEF1
dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjp1cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6c2V0VG9wQ29udGVudEluc2V0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmRpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6aW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkT3JkZXJPZmZTY3JlZW4pOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkT3JkZXJPblNjcmVlbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRCZWNvbWVLZXkpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkUmVzaWduS2V5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OndpbmRvd0RpZE1pbmlhdHVyaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OndpbmRvd0RpZERlbWluaWF0dXJpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6d2luZG93RGlkTW92ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5k
b3dEaWRSZXNpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkQ2hh
bmdlQmFja2luZ1Byb3BlcnRpZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2lu
ZG93RGlkQ2hhbmdlU2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OndpbmRv
d0RpZENoYW5nZUxheWVySG9zdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3
aW5kb3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjp2aWV3V2lsbE1vdmVUb1dpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojp2aWV3RGlkTW92ZVRvV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZp
ZXdEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpwb3N0RmFrZU1vdXNlTW92ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNvbG9yU3BhY2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6YmVnaW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hh
bmdlc1N5bmMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cHJlcGFyZUZvck1vdmVU
b1dpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwcmVzc3VyZUNoYW5nZVdp
dGhFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppc0VkaXRhYmxlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmV4ZWN1dGVFZGl0Q29tbWFuZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZWdpc3RlckVkaXRDb21tYW5kKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmNsZWFyQWxsRWRpdENvbW1hbmRzKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OndyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2VsZWN0aW9uRGlkQ2hhbmdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnN0YXJ0T2JzZXJ2aW5nRm9udFBhbmVsKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUZvbnRQYW5lbElmTmVlZGVkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2lu
ZG93cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpxdWlja0xvb2tXaXRoRXZlbnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cHJlcGFyZUZvckRpY3Rpb25hcnlMb29r
dXApOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0QWxsb3dzTGlua1ByZXZpZXcp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9u
Q29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6cHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpjYW5jZWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SWdub3Jlc05vbldoZWVsRXZlbnRzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldElnbm9yZXNBbGxFdmVudHMpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YWNjZXNzaWJpbGl0eVJlZ2lzdGVyVUlQcm9jZXNz
VG9rZW5zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OmFjdGl2ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpwcmVmZXJlbmNlc0RpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpyZWdpc3RlckVkaXRDb21tYW5kKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OmNsZWFyQWxsRWRpdENvbW1hbmRzKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OnNlbGVjdGlvbkRpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjpkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cCk6CisgICAgICAgICgtW1dLRWRpdENvbW1h
bmRPYmpDIGluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTpdKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bV0tFZGl0Q29tbWFuZE9iakMgY29tbWFuZF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0Vk
aXRvclVuZG9UYXJnZXRPYmpDIHVuZG9FZGl0aW5nOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S0VkaXRvclVuZG9UYXJnZXRPYmpDIHJlZG9FZGl0aW5nOl0pOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6UGFnZUNsaWVudEltcGwpOiBEZWxldGVkLgorICAgICAg
ICBNb3ZlIG1vcmUgdGhpbmdzIHRvIFdlYlZpZXdJbXBsLgorICAgICAgICBUaGlzIGFsc28gaW50
cm9kdWNlcyBhbiB1bmZvcnR1bmF0ZSBwYXR0ZXJuIHRoYXQgaXMgcmVxdWlyZWQgZm9yIHRoaW5n
cyB3aGljaAorICAgICAgICBjbGllbnRzIG92ZXJyaWRlIG9uIFdLVmlldywgd2hlcmUgd2UgaGF2
ZSBhIGZsb3cgbGlrZSB0aGlzOgorICAgICAgICAgICAgICAgIC0gc29tZWJvZHkgKFBhZ2VDbGll
bnQsIGV0Yy4pIGNhbGxzIFdlYlZpZXdJbXBsOjp4CisgICAgICAgICAgICAgICAgLSBXZWJWaWV3
SW1wbDo6eCBkb2VzIG5vdGhpbmcgZXhjZXB0IGNhbGwgW1dLVmlldyBfeF0KKyAgICAgICAgICAg
ICAgICAtIFtXS1ZpZXcgX3hdIGNhbGxzIFdlYlZpZXdJbXBsOjp4RnJvbVZpZXdPbmx5LCB3aGlj
aCBkb2VzIHRoZSByZWFsIHdvcmsKKyAgICAgICAgQXMgbG9uZyBhcyBubyBjbGllbnRzIGNhbGwg
dGhlIC1Gcm9tVmlld09ubHkgdmFyaWFudCwgdGhpcyB3aWxsIG1lYW4gdGhhdAorICAgICAgICBh
bGwgY2FsbGVycyBhcmUgYm90dGxlbmVja2VkIHRocm91Z2ggdGhlIG92ZXJyaWRhYmxlIFdLVmll
dyBtZXRob2QuCisgICAgICAgIEhvdyB0aGlzIHdvcmtzIHdpdGggV0tXZWJWaWV3LCBJIGFtIG5v
dCBzdXJlIHlldC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25D
b250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNv
bnRyb2xsZXIubW06CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBpbml0
V2l0aFBhZ2U6dmlldzp2aWV3SW1wbDpyZWNvZ25pemVyOl0pOgorICAgICAgICAoLVtXS0ltbWVk
aWF0ZUFjdGlvbkNvbnRyb2xsZXIgd2lsbERlc3Ryb3lWaWV3Ol0pOgorICAgICAgICAoLVtXS0lt
bWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcldpbGxQcmVw
YXJlOl0pOgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgaW1tZWRpYXRl
QWN0aW9uUmVjb2duaXplckRpZENhbmNlbEFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tJbW1l
ZGlhdGVBY3Rpb25Db250cm9sbGVyIGltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJEaWRDb21wbGV0
ZUFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIG1l
bnVJdGVtOnZpZXdBdFNjcmVlblBvaW50Ol0pOgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlv
bkNvbnRyb2xsZXIgbWVudUl0ZW06cHJldmlld0l0ZW1BdFBvaW50Ol0pOgorICAgICAgICAoLVtX
S0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgbWVudUl0ZW06aXRlbUZyYW1lRm9yUG9pbnQ6XSk6
CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBtZW51SXRlbTptYXhTaXpl
Rm9yUG9pbnQ6XSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBfYW5p
bWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZFRleHRdKToKKyAgICAgICAgKC1bV0tJbW1l
ZGlhdGVBY3Rpb25Db250cm9sbGVyIF9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVk
TGlua10pOgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgX2FuaW1hdGlv
bkNvbnRyb2xsZXJGb3JUZXh0XSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlciBpbml0V2l0aFBhZ2U6dmlldzpyZWNvZ25pemVyOl0pOiBEZWxldGVkLgorICAgICAgICBL
ZWVwIGEgZ2VuZXJpYyBOU1ZpZXcsIHVzZSB0aGUgV2ViVmlld0ltcGwgZm9yIFdLKlZpZXcgcmVs
YXRlZCB0aGluZ3MuCisKIDIwMTUtMTAtMjIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBJbml0aWFsIE5TVVJMU2Vzc2lvbiBXZWJSZXNvdXJj
ZUxvYWRlciBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tCmluZGV4IDhjNjI1ZTlmMWY5NDUyMjVlNmM0YzE2NTNmYjdkZTYyZjhiY2IwNjIu
LmQ5OTQ2ODY5Yzc1ODdlNGY1YWNkMmFlOTFkYmUxMjFmMWNiN2M2MTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTM2LDcgKzM2LDYgQEAKICNpbXBv
cnQgIkFQSUxlZ2FjeUNvbnRleHRIaXN0b3J5Q2xpZW50LmgiCiAjaW1wb3J0ICJBUElQYWdlQ29u
ZmlndXJhdGlvbi5oIgogI2ltcG9ydCAiQXR0cmlidXRlZFN0cmluZy5oIgotI2ltcG9ydCAiQ29s
b3JTcGFjZURhdGEuaCIKICNpbXBvcnQgIkRhdGFSZWZlcmVuY2UuaCIKICNpbXBvcnQgIkVkaXRp
bmdSYW5nZS5oIgogI2ltcG9ydCAiRWRpdG9yU3RhdGUuaCIKQEAgLTU5LDcgKzU4LDYgQEAKICNp
bXBvcnQgIlZpZXdTbmFwc2hvdFN0b3JlLmgiCiAjaW1wb3J0ICJXS0FQSUNhc3QuaCIKICNpbXBv
cnQgIldLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCIKLSNpbXBvcnQgIldLSW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tMYXlvdXRNb2RlLmgiCiAjaW1wb3J0ICJX
S1ByaW50aW5nVmlldy5oIgogI2ltcG9ydCAiV0tQcm9jZXNzUG9vbEludGVybmFsLmgiCkBAIC05
NiwxNSArOTQsMTIgQEAKICNpbXBvcnQgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmlu
Z3MuaD4KLSNpbXBvcnQgPFdlYkNvcmUvTG9va3VwU1BJLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL05T
SW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXJTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUv
TlNNZW51U1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jl
Z2lvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNp
bXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5r
aW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRp
Y2F0b3JXaW5kb3cuaD4KQEAgLTE0OSw4ICsxNDQsNiBAQCBDR1NDb25uZWN0aW9uSUQgQ0dTTWFp
bkNvbm5lY3Rpb25JRCh2b2lkKTsKIENHRXJyb3IgQ0dTR2V0U2NyZWVuUmVjdEZvcldpbmRvdyhD
R1NDb25uZWN0aW9uSUQgY2lkLCBDR1NXaW5kb3dJRCB3aWQsIENHUmVjdCAqcmVjdCk7CiB9Owog
Ci1TT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUwoTG9va3VwLCBMVU5vdGlmaWNhdGlvblBvcG92
ZXJXaWxsQ2xvc2UsIE5TU3RyaW5nICopCi0KIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTcxLDggKzE2NCw2IEBAIHN0cnVjdCBXS1ZpZXdJ
bnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKIH07CiAjZW5kaWYKIAotQGNsYXNzIFdLV2lu
ZG93VmlzaWJpbGl0eU9ic2VydmVyOwotCiBAaW50ZXJmYWNlIFdLVmlld0RhdGEgOiBOU09iamVj
dCB7CiBAcHVibGljCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBhZ2VDbGllbnRJbXBsPiBfcGFnZUNs
aWVudDsKQEAgLTIwMCw4ICsxOTEsNiBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRz
UGFyYW1ldGVycyB7CiAgICAgLy8gRm9yIGFzeW5jaHJvbm91cyB2YWxpZGF0aW9uLgogICAgIFZh
bGlkYXRpb25NYXAgX3ZhbGlkYXRpb25NYXA7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8VGV4dElu
ZGljYXRvcldpbmRvdz4gX3RleHRJbmRpY2F0b3JXaW5kb3c7Ci0KICAgICAvLyBXZSBrZWVwIGhl
cmUgdGhlIGV2ZW50IHdoZW4gcmVzZW5kaW5nIGl0IHRvCiAgICAgLy8gdGhlIGFwcGxpY2F0aW9u
IHRvIGRpc3Rpbmd1aXNoIHRoZSBjYXNlIG9mIGEgbmV3IGV2ZW50IGZyb20gb25lIAogICAgIC8v
IHRoYXQgaGFzIGJlZW4gYWxyZWFkeSBzZW50IHRvIFdlYkNvcmUuCkBAIC0yMjMsNTIgKzIxMiwy
MyBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiAgICAgTlNF
dmVudCAqX3ByZXNzdXJlRXZlbnQ7CiAgICAgQk9PTCBfaWdub3JpbmdNb3VzZURyYWdnZWRFdmVu
dHM7CiAKLSAgICBpZCBfZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yOwotCiAgICAgQk9PTCBfaGFz
U3BlbGxDaGVja2VyRG9jdW1lbnRUYWc7CiAgICAgTlNJbnRlZ2VyIF9zcGVsbENoZWNrZXJEb2N1
bWVudFRhZzsKIAotICAgIEJPT0wgX3Nob3VsZERlZmVyVmlld0luV2luZG93Q2hhbmdlczsKLSAg
ICBOU1dpbmRvdyAqX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbjsKLQotICAgIEJPT0wg
X3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVkOwotCi0gICAgQk9PTCBfbmVlZHNWaWV3RnJh
bWVJbldpbmRvd0Nvb3JkaW5hdGVzOwotICAgIEJPT0wgX2RpZFNjaGVkdWxlV2luZG93QW5kVmll
d0ZyYW1lVXBkYXRlOwotCi0gICAgUmV0YWluUHRyPE5TQ29sb3JTcGFjZT4gX2NvbG9yU3BhY2U7
Ci0KICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IF9wcm9taXNlZEltYWdlOwogICAgIFN0cmlu
ZyBfcHJvbWlzZWRGaWxlbmFtZTsKICAgICBTdHJpbmcgX3Byb21pc2VkVVJMOwogCiAgICAgQk9P
TCBfd2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZDsKIAotICAgIFJldGFpblB0cjxXS1dp
bmRvd1Zpc2liaWxpdHlPYnNlcnZlcj4gX3dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlcjsKLQogICAg
IHN0ZDo6dW5pcXVlX3B0cjxWaWV3R2VzdHVyZUNvbnRyb2xsZXI+IF9nZXN0dXJlQ29udHJvbGxl
cjsKICAgICBCT09MIF9hbGxvd3NNYWduaWZpY2F0aW9uOwotICAgIEJPT0wgX2lnbm9yZXNOb25X
aGVlbEV2ZW50czsKLSAgICBCT09MIF9pZ25vcmVzQWxsRXZlbnRzOwogICAgIEJPT0wgX2FsbG93
c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzOwotICAgIEJPT0wgX2FsbG93c0xpbmtQcmV2
aWV3OwogCiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IF9yb290TGF5ZXI7CiAKLSAgICBCT09MIF9k
aWRTY2hlZHVsZVNldFRvcENvbnRlbnRJbnNldDsKLSAgICBDR0Zsb2F0IF90b3BDb250ZW50SW5z
ZXQ7CiAgICAgQ0dGbG9hdCBfdG90YWxIZWlnaHRPZkJhbm5lcnM7CiAKLSAgICBDR0Zsb2F0IF9v
dmVycmlkZURldmljZVNjYWxlRmFjdG9yOwotCi0gICAgQk9PTCBfZGlkUmVnaXN0ZXJGb3JMb29r
dXBQb3BvdmVyQ2xvc2VOb3RpZmljYXRpb25zOwotCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICBCT09MIF9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRl
bnRJbnNldHM7Ci0gICAgUmV0YWluUHRyPFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlcj4gX2lt
bWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXI7Ci0gICAgUmV0YWluUHRyPE5TSW1tZWRpYXRlQWN0aW9u
R2VzdHVyZVJlY29nbml6ZXI+IF9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplcjsKLSNl
bmRpZgotCiAjaWYgV0tfQVBJX0VOQUJMRUQKICAgICBfV0tUaHVtYm5haWxWaWV3ICpfdGh1bWJu
YWlsVmlldzsKICNlbmRpZgpAQCAtMjc5LDU0ICsyMzksNiBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJw
cmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiBAaW1wbGVtZW50YXRpb24gV0tWaWV3RGF0YQogQGVu
ZAogCi1AaW50ZXJmYWNlIFdLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIDogTlNPYmplY3Qgewot
ICAgIFdLVmlldyAqX3ZpZXc7Ci19Ci0KLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFZpZXc6KFdL
VmlldyAqKXZpZXc7Ci0tICh2b2lkKXN0YXJ0T2JzZXJ2aW5nOihOU1dpbmRvdyAqKXdpbmRvdzsK
LS0gKHZvaWQpc3RvcE9ic2VydmluZzooTlNXaW5kb3cgKil3aW5kb3c7Ci1AZW5kCi0KLUBpbXBs
ZW1lbnRhdGlvbiBXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlcgotCi0tIChpbnN0YW5jZXR5cGUp
aW5pdFdpdGhWaWV3OihXS1ZpZXcgKil2aWV3Ci17Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0XTsK
LSAgICBpZiAoIXNlbGYpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBfdmlldyA9IHZpZXc7
Ci0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KLS0gKHZvaWQpc3RhcnRPYnNlcnZpbmc6KE5TV2luZG93
ICopd2luZG93Ci17Ci0gICAgLy8gQW4gTlNWaWV3IGRlcml2ZWQgb2JqZWN0IHN1Y2ggYXMgV0tW
aWV3IGNhbm5vdCBvYnNlcnZlIHRoZXNlIG5vdGlmaWNhdGlvbnMsIGJlY2F1c2UgTlNWaWV3IGl0
c2VsZiBvYnNlcnZlcyB0aGVtLgotICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENl
bnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZE9yZGVy
T2ZmU2NyZWVuOikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBuYW1lOkAiTlNXaW5kb3dEaWRPcmRlck9mZlNjcmVlbk5vdGlmaWNhdGlvbiIgb2JqZWN0
OndpbmRvd107Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRP
YnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkT3JkZXJPblNjcmVlbjop
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6
QCJfTlNXaW5kb3dEaWRCZWNvbWVWaXNpYmxlIiBvYmplY3Q6d2luZG93XTsKLX0KLQotLSAodm9p
ZClzdG9wT2JzZXJ2aW5nOihOU1dpbmRvdyAqKXdpbmRvdwotewotICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOkAiTlNXaW5k
b3dEaWRPcmRlck9mZlNjcmVlbk5vdGlmaWNhdGlvbiIgb2JqZWN0OndpbmRvd107Ci0gICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5h
bWU6QCJfTlNXaW5kb3dEaWRCZWNvbWVWaXNpYmxlIiBvYmplY3Q6d2luZG93XTsKLX0KLQotLSAo
dm9pZClfd2luZG93RGlkT3JkZXJPblNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRp
b24KLXsKLSAgICBbX3ZpZXcgX3dpbmRvd0RpZE9yZGVyT25TY3JlZW46bm90aWZpY2F0aW9uXTsK
LX0KLQotLSAodm9pZClfd2luZG93RGlkT3JkZXJPZmZTY3JlZW46KE5TTm90aWZpY2F0aW9uICop
bm90aWZpY2F0aW9uCi17Ci0gICAgW192aWV3IF93aW5kb3dEaWRPcmRlck9mZlNjcmVlbjpub3Rp
ZmljYXRpb25dOwotfQotCi1AZW5kCi0KIEBpbnRlcmZhY2UgV0tSZXNwb25kZXJDaGFpblNpbmsg
OiBOU1Jlc3BvbmRlciB7CiAgICAgTlNSZXNwb25kZXIgKl9sYXN0UmVzcG9uZGVySW5DaGFpbjsK
ICAgICBib29sIF9kaWRSZWNlaXZlVW5oYW5kbGVkQ29tbWFuZDsKQEAgLTM2OSwxMCArMjgxLDYg
QEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogCiAtICh2b2lk
KWRlYWxsb2MKIHsKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAw
MAotICAgIFtfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgd2lsbERlc3Ryb3lWaWV3
OnNlbGZdOwotI2VuZGlmCi0KICNpZiBXS19BUElfRU5BQkxFRAogICAgIGlmIChfZGF0YS0+X3Jl
bW90ZU9iamVjdFJlZ2lzdHJ5KSB7CiAgICAgICAgIF9kYXRhLT5fcGFnZS0+cHJvY2VzcygpLnBy
b2Nlc3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RS
ZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBfZGF0YS0+X3BhZ2UtPnBhZ2VJRCgpKTsK
QEAgLTM5NCw5ICszMDIsNiBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1l
dGVycyB7CiAgICAgTlNOb3RpZmljYXRpb25DZW50ZXIqIHdvcmtzcGFjZU5vdGlmaWNhdGlvbkNl
bnRlciA9IFtbTlNXb3Jrc3BhY2Ugc2hhcmVkV29ya3NwYWNlXSBub3RpZmljYXRpb25DZW50ZXJd
OwogICAgIFt3b3Jrc3BhY2VOb3RpZmljYXRpb25DZW50ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBu
YW1lOk5TV29ya3NwYWNlQWN0aXZlU3BhY2VEaWRDaGFuZ2VOb3RpZmljYXRpb24gb2JqZWN0Om5p
bF07CiAKLSAgICBpZiAoY2FuTG9hZExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9zZSgpKQot
ICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2Vy
dmVyOnNlbGYgbmFtZTpnZXRMVU5vdGlmaWNhdGlvblBvcG92ZXJXaWxsQ2xvc2UoKSBvYmplY3Q6
bmlsXTsKLQogICAgIFdlYlByb2Nlc3NQb29sOjpzdGF0aXN0aWNzKCkud2tWaWV3Q291bnQtLTsK
IAogICAgIFtzdXBlciBkZWFsbG9jXTsKQEAgLTQ4MSw0OCArMzg2LDkgQEAgc3RydWN0IFdLVmll
d0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogICAgIF9kYXRhLT5faW1wbC0+c2V0RnJh
bWVTaXplKE5TU2l6ZVRvQ0dTaXplKHNpemUpKTsKIH0KIAotLSAodm9pZClfdXBkYXRlV2luZG93
QW5kVmlld0ZyYW1lcwotewotICAgIGlmIChfZGF0YS0+X2ltcGwtPmNsaXBzVG9WaXNpYmxlUmVj
dCgpKQotICAgICAgICBfZGF0YS0+X2ltcGwtPnVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgpOwotCi0g
ICAgaWYgKF9kYXRhLT5fZGlkU2NoZWR1bGVXaW5kb3dBbmRWaWV3RnJhbWVVcGRhdGUpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIF9kYXRhLT5fZGlkU2NoZWR1bGVXaW5kb3dBbmRWaWV3RnJhbWVV
cGRhdGUgPSBZRVM7Ci0KLSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1
ZSgpLCBeewotICAgICAgICBfZGF0YS0+X2RpZFNjaGVkdWxlV2luZG93QW5kVmlld0ZyYW1lVXBk
YXRlID0gTk87Ci0KLSAgICAgICAgTlNSZWN0IHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMg
PSBOU1plcm9SZWN0OwotICAgICAgICBOU1BvaW50IGFjY2Vzc2liaWxpdHlQb3NpdGlvbiA9IE5T
WmVyb1BvaW50OwotCi0gICAgICAgIGlmIChfZGF0YS0+X25lZWRzVmlld0ZyYW1lSW5XaW5kb3dD
b29yZGluYXRlcykKLSAgICAgICAgICAgIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMgPSBb
c2VsZiBjb252ZXJ0UmVjdDpzZWxmLmZyYW1lIHRvVmlldzpuaWxdOwotCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGlmIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
OjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICAgICAgYWNjZXNzaWJpbGl0eVBvc2l0
aW9uID0gW1tzZWxmIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlQ
b3NpdGlvbkF0dHJpYnV0ZV0gcG9pbnRWYWx1ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCi0KLSAgICAgICAgX2RhdGEtPl9wYWdlLT53aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZCh2
aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzLCBhY2Nlc3NpYmlsaXR5UG9zaXRpb24pOwotICAg
IH0pOwotfQotCiAtICh2b2lkKXJlbmV3R1N0YXRlCiB7Ci0gICAgaWYgKF9kYXRhLT5fdGV4dElu
ZGljYXRvcldpbmRvdykKLSAgICAgICAgW3NlbGYgX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGls
ZFdpbmRvd3NXaXRoQW5pbWF0aW9uOk5PXTsKLQotICAgIC8vIFVwZGF0ZSB0aGUgdmlldyBmcmFt
ZS4KLSAgICBpZiAoW3NlbGYgd2luZG93XSkKLSAgICAgICAgW3NlbGYgX3VwZGF0ZVdpbmRvd0Fu
ZFZpZXdGcmFtZXNdOwotCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDEwMDAKLSAgICBbc2VsZiBfdXBkYXRlQ29udGVudEluc2V0c0lmQXV0b21hdGljXTsKLSNlbmRp
ZgotCisgICAgX2RhdGEtPl9pbXBsLT5yZW5ld0dTdGF0ZSgpOwogICAgIFtzdXBlciByZW5ld0dT
dGF0ZV07CiB9CiAKQEAgLTU3OCw3ICs0NDQsNyBAQCBzdGF0aWMgU3RyaW5nIGNvbW1hbmROYW1l
Rm9yU2VsZWN0b3IoU0VMIHNlbGVjdG9yKQogCiAvLyBFZGl0aW5nIGNvbW1hbmRzCiAKLSNkZWZp
bmUgV0VCQ09SRV9DT01NQU5EKGNvbW1hbmQpIC0gKHZvaWQpY29tbWFuZDooaWQpc2VuZGVyIHsg
X2RhdGEtPl9wYWdlLT5leGVjdXRlRWRpdENvbW1hbmQoY29tbWFuZE5hbWVGb3JTZWxlY3Rvcihf
Y21kKSk7IH0KKyNkZWZpbmUgV0VCQ09SRV9DT01NQU5EKGNvbW1hbmQpIC0gKHZvaWQpY29tbWFu
ZDooaWQpc2VuZGVyIHsgX2RhdGEtPl9pbXBsLT5leGVjdXRlRWRpdENvbW1hbmQoY29tbWFuZE5h
bWVGb3JTZWxlY3RvcihfY21kKSk7IH0KIAogV0VCQ09SRV9DT01NQU5EKGFsaWduQ2VudGVyKQog
V0VCQ09SRV9DT01NQU5EKGFsaWduSnVzdGlmaWVkKQpAQCAtNjg3LDIyICs1NTMsMTIgQEAgV0VC
Q09SRV9DT01NQU5EKHlhbmtBbmRTZWxlY3QpCiAKIC0gKEJPT0wpd3JpdGVTZWxlY3Rpb25Ub1Bh
c3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm9hcmQgdHlwZXM6KE5TQXJyYXkgKil0eXBl
cwogewotICAgIHNpemVfdCBudW1UeXBlcyA9IFt0eXBlcyBjb3VudF07Ci0gICAgW3Bhc3RlYm9h
cmQgZGVjbGFyZVR5cGVzOnR5cGVzIG93bmVyOm5pbF07Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBudW1UeXBlczsgKytpKSB7Ci0gICAgICAgIGlmIChbW3R5cGVzIG9iamVjdEF0SW5kZXg6
aV0gaXNFcXVhbFRvOk5TU3RyaW5nUGJvYXJkVHlwZV0pCi0gICAgICAgICAgICBbcGFzdGVib2Fy
ZCBzZXRTdHJpbmc6X2RhdGEtPl9wYWdlLT5zdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKCkg
Zm9yVHlwZTpOU1N0cmluZ1Bib2FyZFR5cGVdOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IF9kYXRhLT5fcGFnZS0+ZGF0YVNlbGVjdGlv
bkZvclBhc3RlYm9hcmQoW3R5cGVzIG9iamVjdEF0SW5kZXg6aV0pOwotICAgICAgICAgICAgW3Bh
c3RlYm9hcmQgc2V0RGF0YTpidWZmZXIgPyBidWZmZXItPmNyZWF0ZU5TRGF0YSgpLmdldCgpIDog
bmlsIGZvclR5cGU6W3R5cGVzIG9iamVjdEF0SW5kZXg6aV1dOwotICAgICAgIH0KLSAgICB9Ci0g
ICAgcmV0dXJuIFlFUzsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT53cml0ZVNlbGVjdGlvblRv
UGFzdGVib2FyZChwYXN0ZWJvYXJkLCB0eXBlcyk7CiB9CiAKIC0gKHZvaWQpY2VudGVyU2VsZWN0
aW9uSW5WaXNpYmxlQXJlYTooaWQpc2VuZGVyIAogeyAKLSAgICBfZGF0YS0+X3BhZ2UtPmNlbnRl
clNlbGVjdGlvbkluVmlzaWJsZUFyZWEoKTsKKyAgICBfZGF0YS0+X2ltcGwtPmNlbnRlclNlbGVj
dGlvbkluVmlzaWJsZUFyZWEoKTsKIH0KIAogLy8gVGhpcyBtZXRob2QgaXMgbmVlZGVkIHRvIHN1
cHBvcnQgTWFjIE9TIFggc2VydmljZXMuCkBAIC03NDAsMjUgKzU5Niw2IEBAIFdFQkNPUkVfQ09N
TUFORCh5YW5rQW5kU2VsZWN0KQogCiAvLyBGb250IHBhbmVsIHN1cHBvcnQuCiAKLS0gKHZvaWQp
dXBkYXRlRm9udFBhbmVsSWZOZWVkZWQKLXsKLSAgICBjb25zdCBFZGl0b3JTdGF0ZSYgZWRpdG9y
U3RhdGUgPSBfZGF0YS0+X3BhZ2UtPmVkaXRvclN0YXRlKCk7Ci0gICAgaWYgKGVkaXRvclN0YXRl
LnNlbGVjdGlvbklzTm9uZSB8fCAhZWRpdG9yU3RhdGUuaXNDb250ZW50RWRpdGFibGUpCi0gICAg
ICAgIHJldHVybjsKLSAgICBpZiAoW05TRm9udFBhbmVsIHNoYXJlZEZvbnRQYW5lbEV4aXN0c10g
JiYgW1tOU0ZvbnRQYW5lbCBzaGFyZWRGb250UGFuZWxdIGlzVmlzaWJsZV0pIHsKLSAgICAgICAg
X2RhdGEtPl9wYWdlLT5mb250QXRTZWxlY3Rpb24oW10oY29uc3QgU3RyaW5nJiBmb250TmFtZSwg
ZG91YmxlIGZvbnRTaXplLCBib29sIHNlbGVjdGlvbkhhc011bHRpcGxlRm9udHMsIFdlYktpdDo6
Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewotICAgICAgICAgICAgTlNGb250ICpmb250ID0g
W05TRm9udCBmb250V2l0aE5hbWU6Zm9udE5hbWUgc2l6ZTpmb250U2l6ZV07Ci0gICAgICAgICAg
ICBpZiAoZm9udCkKLSAgICAgICAgICAgICAgICBbW05TRm9udE1hbmFnZXIgc2hhcmVkRm9udE1h
bmFnZXJdIHNldFNlbGVjdGVkRm9udDpmb250IGlzTXVsdGlwbGU6c2VsZWN0aW9uSGFzTXVsdGlw
bGVGb250c107Ci0gICAgICAgIH0pOwotICAgIH0KLX0KLQotLSAodm9pZClfc2VsZWN0aW9uQ2hh
bmdlZAotewotICAgIFtzZWxmIHVwZGF0ZUZvbnRQYW5lbElmTmVlZGVkXTsKLX0KLQogLSAodm9p
ZCljaGFuZ2VGb250OihpZClzZW5kZXIKIHsKICAgICBOU0ZvbnRNYW5hZ2VyICpmb250TWFuYWdl
ciA9IFtOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZvbnRNYW5hZ2VyXTsKQEAgLTExNDUsNjQgKzk4Miw2
NCBAQCBzdGF0aWMgTlNUb29sYmFySXRlbSAqdG9vbGJhckl0ZW0oaWQgPE5TVmFsaWRhdGVkVXNl
ckludGVyZmFjZUl0ZW0+IGl0ZW0pCiAjZGVmaW5lIE5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVS
KFNlbGVjdG9yKSBcCiAgICAgLSAodm9pZClTZWxlY3RvcjooTlNFdmVudCAqKXRoZUV2ZW50IFwK
ICAgICB7IFwKLSAgICAgICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRzKSBcCisg
ICAgICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKSBcCiAgICAg
ICAgICAgICByZXR1cm47IFwKICAgICAgICAgaWYgKE5TVGV4dElucHV0Q29udGV4dCAqY29udGV4
dCA9IFtzZWxmIGlucHV0Q29udGV4dF0pIHsgXAogICAgICAgICAgICAgW2NvbnRleHQgaGFuZGxl
RXZlbnQ6dGhlRXZlbnQgY29tcGxldGlvbkhhbmRsZXI6XihCT09MIGhhbmRsZWQpIHsgXAogICAg
ICAgICAgICAgICAgIGlmIChoYW5kbGVkKSBcCiAgICAgICAgICAgICAgICAgICAgIExPRyhUZXh0
SW5wdXQsICIlcyB3YXMgaGFuZGxlZCBieSB0ZXh0IGlucHV0IGNvbnRleHQiLCBTdHJpbmcoI1Nl
bGVjdG9yKS5zdWJzdHJpbmcoMCwgU3RyaW5nKCNTZWxlY3RvcikuZmluZCgiSW50ZXJuYWwiKSku
YXNjaWkoKS5kYXRhKCkpOyBcCiAgICAgICAgICAgICAgICAgZWxzZSB7IFwKLSAgICAgICAgICAg
ICAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudCh0aGVFdmVudCwgX2RhdGEtPl9w
cmVzc3VyZUV2ZW50LCBzZWxmKTsgXAorICAgICAgICAgICAgICAgICAgICBOYXRpdmVXZWJNb3Vz
ZUV2ZW50IHdlYkV2ZW50KHRoZUV2ZW50LCBfZGF0YS0+X2ltcGwtPmxhc3RQcmVzc3VyZUV2ZW50
KCksIHNlbGYpOyBcCiAgICAgICAgICAgICAgICAgICAgIF9kYXRhLT5fcGFnZS0+aGFuZGxlTW91
c2VFdmVudCh3ZWJFdmVudCk7IFwKICAgICAgICAgICAgICAgICB9IFwKICAgICAgICAgICAgIH1d
OyBcCiAgICAgICAgICAgICByZXR1cm47IFwKICAgICAgICAgfSBcCi0gICAgICAgIE5hdGl2ZVdl
Yk1vdXNlRXZlbnQgd2ViRXZlbnQodGhlRXZlbnQsIF9kYXRhLT5fcHJlc3N1cmVFdmVudCwgc2Vs
Zik7IFwKKyAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudCh0aGVFdmVudCwgX2Rh
dGEtPl9pbXBsLT5sYXN0UHJlc3N1cmVFdmVudCgpLCBzZWxmKTsgXAogICAgICAgICBfZGF0YS0+
X3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOyBcCiAgICAgfQogI2RlZmluZSBOQVRJ
VkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRFUk5BTChTZWxlY3RvcikgXAogICAgIC0gKHZvaWQp
U2VsZWN0b3I6KE5TRXZlbnQgKil0aGVFdmVudCBcCiAgICAgeyBcCi0gICAgICAgIGlmIChfZGF0
YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykgXAorICAgICAgICBpZiAoX2RhdGEtPl9pbXBsLT5p
Z25vcmVzTm9uV2hlZWxFdmVudHMoKSkgXAogICAgICAgICAgICAgcmV0dXJuOyBcCiAgICAgICAg
IGlmIChOU1RleHRJbnB1dENvbnRleHQgKmNvbnRleHQgPSBbc2VsZiBpbnB1dENvbnRleHRdKSB7
IFwKICAgICAgICAgICAgIFtjb250ZXh0IGhhbmRsZUV2ZW50OnRoZUV2ZW50IGNvbXBsZXRpb25I
YW5kbGVyOl4oQk9PTCBoYW5kbGVkKSB7IFwKICAgICAgICAgICAgICAgICBpZiAoaGFuZGxlZCkg
XAogICAgICAgICAgICAgICAgICAgICBMT0coVGV4dElucHV0LCAiJXMgd2FzIGhhbmRsZWQgYnkg
dGV4dCBpbnB1dCBjb250ZXh0IiwgU3RyaW5nKCNTZWxlY3Rvcikuc3Vic3RyaW5nKDAsIFN0cmlu
ZygjU2VsZWN0b3IpLmZpbmQoIkludGVybmFsIikpLmFzY2lpKCkuZGF0YSgpKTsgXAogICAgICAg
ICAgICAgICAgIGVsc2UgeyBcCi0gICAgICAgICAgICAgICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZl
bnQgd2ViRXZlbnQodGhlRXZlbnQsIF9kYXRhLT5fcHJlc3N1cmVFdmVudCwgc2VsZik7IFwKKyAg
ICAgICAgICAgICAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudCh0aGVFdmVudCwg
X2RhdGEtPl9pbXBsLT5sYXN0UHJlc3N1cmVFdmVudCgpLCBzZWxmKTsgXAogICAgICAgICAgICAg
ICAgICAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOyBcCiAgICAg
ICAgICAgICAgICAgfSBcCiAgICAgICAgICAgICB9XTsgXAogICAgICAgICAgICAgcmV0dXJuOyBc
CiAgICAgICAgIH0gXAotICAgICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KHRoZUV2
ZW50LCBfZGF0YS0+X3ByZXNzdXJlRXZlbnQsIHNlbGYpOyBcCisgICAgICAgIE5hdGl2ZVdlYk1v
dXNlRXZlbnQgd2ViRXZlbnQodGhlRXZlbnQsIF9kYXRhLT5faW1wbC0+bGFzdFByZXNzdXJlRXZl
bnQoKSwgc2VsZik7IFwKICAgICAgICAgX2RhdGEtPl9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KHdl
YkV2ZW50KTsgXAogICAgIH0KICNlbHNlCiAjZGVmaW5lIE5BVElWRV9NT1VTRV9FVkVOVF9IQU5E
TEVSKFNlbGVjdG9yKSBcCiAgICAgLSAodm9pZClTZWxlY3RvcjooTlNFdmVudCAqKXRoZUV2ZW50
IFwKICAgICB7IFwKLSAgICAgICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRzKSBc
CisgICAgICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKSBcCiAg
ICAgICAgICAgICByZXR1cm47IFwKICAgICAgICAgaWYgKFtbc2VsZiBpbnB1dENvbnRleHRdIGhh
bmRsZUV2ZW50OnRoZUV2ZW50XSkgeyBcCiAgICAgICAgICAgICBMT0coVGV4dElucHV0LCAiJXMg
d2FzIGhhbmRsZWQgYnkgdGV4dCBpbnB1dCBjb250ZXh0IiwgU3RyaW5nKCNTZWxlY3Rvcikuc3Vi
c3RyaW5nKDAsIFN0cmluZygjU2VsZWN0b3IpLmZpbmQoIkludGVybmFsIikpLmFzY2lpKCkuZGF0
YSgpKTsgXAogICAgICAgICAgICAgcmV0dXJuOyBcCiAgICAgICAgIH0gXAotICAgICAgICBOYXRp
dmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KHRoZUV2ZW50LCBfZGF0YS0+X3ByZXNzdXJlRXZlbnQs
IHNlbGYpOyBcCisgICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQodGhlRXZlbnQs
IF9kYXRhLT5faW1wbC0+bGFzdFByZXNzdXJlRXZlbnQoKSwgc2VsZik7IFwKICAgICAgICAgX2Rh
dGEtPl9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsgXAogICAgIH0KICNkZWZpbmUg
TkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwoU2VsZWN0b3IpIFwKICAgICAtICh2
b2lkKVNlbGVjdG9yOihOU0V2ZW50ICopdGhlRXZlbnQgXAogICAgIHsgXAotICAgICAgICBpZiAo
X2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpIFwKKyAgICAgICAgaWYgKF9kYXRhLT5faW1w
bC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpIFwKICAgICAgICAgICAgIHJldHVybjsgXAogICAg
ICAgICBpZiAoW1tzZWxmIGlucHV0Q29udGV4dF0gaGFuZGxlRXZlbnQ6dGhlRXZlbnRdKSB7IFwK
ICAgICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIlcyB3YXMgaGFuZGxlZCBieSB0ZXh0IGlucHV0
IGNvbnRleHQiLCBTdHJpbmcoI1NlbGVjdG9yKS5zdWJzdHJpbmcoMCwgU3RyaW5nKCNTZWxlY3Rv
cikuZmluZCgiSW50ZXJuYWwiKSkuYXNjaWkoKS5kYXRhKCkpOyBcCiAgICAgICAgICAgICByZXR1
cm47IFwKICAgICAgICAgfSBcCi0gICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQo
dGhlRXZlbnQsIF9kYXRhLT5fcHJlc3N1cmVFdmVudCwgc2VsZik7IFwKKyAgICAgICAgTmF0aXZl
V2ViTW91c2VFdmVudCB3ZWJFdmVudCh0aGVFdmVudCwgX2RhdGEtPl9pbXBsLT5sYXN0UHJlc3N1
cmVFdmVudCgpLCBzZWxmKTsgXAogICAgICAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZU1vdXNlRXZl
bnQod2ViRXZlbnQpOyBcCiAgICAgfQogI2VuZGlmCkBAIC0xMjMzLDcgKzEwNzAsNyBAQCBOQVRJ
VkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRFUk5BTChtb3VzZURyYWdnZWRJbnRlcm5hbCkKIAog
LSAodm9pZClzY3JvbGxXaGVlbDooTlNFdmVudCAqKWV2ZW50CiB7Ci0gICAgaWYgKF9kYXRhLT5f
aWdub3Jlc0FsbEV2ZW50cykKKyAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzQWxsRXZlbnRz
KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChldmVudC5waGFzZSA9PSBOU0V2ZW50UGhh
c2VCZWdhbikKQEAgLTEyNTEsNyArMTA4OCw3IEBAIE5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVS
X0lOVEVSTkFMKG1vdXNlRHJhZ2dlZEludGVybmFsKQogCiAtICh2b2lkKXN3aXBlV2l0aEV2ZW50
OihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVu
dHMpCisgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmICghX2RhdGEtPl9hbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRp
b25HZXN0dXJlcykgewpAQCAtMTI2OSw3ICsxMTA2LDcgQEAgTkFUSVZFX01PVVNFX0VWRU5UX0hB
TkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCiAKIC0gKHZvaWQpbW91c2VNb3Zl
ZDooTlNFdmVudCAqKWV2ZW50CiB7Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZl
bnRzKQorICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQogICAg
ICAgICByZXR1cm47CiAKICAgICAvLyBXaGVuIGEgdmlldyBpcyBmaXJzdCByZXNwb25kZXIsIGl0
IGdldHMgbW91c2UgbW92ZWQgZXZlbnRzIGV2ZW4gd2hlbiB0aGUgbW91c2UgaXMgb3V0c2lkZSBp
dHMgdmlzaWJsZSByZWN0LgpAQCAtMTI4MSw3ICsxMTE4LDcgQEAgTkFUSVZFX01PVVNFX0VWRU5U
X0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCiAKIC0gKHZvaWQpbW91c2VE
b3duOihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxF
dmVudHMpCisgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIFtzZWxmIF9zZXRNb3VzZURvd25FdmVudDpldmVudF07CkBA
IC0xMjkyLDcgKzExMjksNyBAQCBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRFUk5BTCht
b3VzZURyYWdnZWRJbnRlcm5hbCkKIAogLSAodm9pZCltb3VzZVVwOihOU0V2ZW50ICopZXZlbnQK
IHsKLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAgaWYgKF9kYXRh
LT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IFtzZWxmIF9zZXRNb3VzZURvd25FdmVudDpuaWxdOwpAQCAtMTMwMSw3ICsxMTM4LDcgQEAgTkFU
SVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCiAK
IC0gKHZvaWQpbW91c2VEcmFnZ2VkOihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBpZiAoX2RhdGEt
Pl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05v
bldoZWVsRXZlbnRzKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChfZGF0YS0+X2lnbm9y
aW5nTW91c2VEcmFnZ2VkRXZlbnRzKQpAQCAtMTMxMSwyMiArMTE0OCw3IEBAIE5BVElWRV9NT1VT
RV9FVkVOVF9IQU5ETEVSX0lOVEVSTkFMKG1vdXNlRHJhZ2dlZEludGVybmFsKQogCiAtICh2b2lk
KXByZXNzdXJlQ2hhbmdlV2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKIHsKLSNpZiBkZWZpbmVk
KF9fTFA2NF9fKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMDAzCi0g
ICAgaWYgKGV2ZW50ID09IF9kYXRhLT5fcHJlc3N1cmVFdmVudCkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRzKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBpZiAoZXZlbnQucGhhc2UgIT0gTlNFdmVudFBoYXNlQ2hhbmdlZCAmJiBldmVudC5w
aGFzZSAhPSBOU0V2ZW50UGhhc2VCZWdhbiAmJiBldmVudC5waGFzZSAhPSBOU0V2ZW50UGhhc2VF
bmRlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVu
dChldmVudCwgX2RhdGEtPl9wcmVzc3VyZUV2ZW50LCBzZWxmKTsKLSAgICBfZGF0YS0+X3BhZ2Ut
PmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOwotCi0gICAgW19kYXRhLT5fcHJlc3N1cmVFdmVu
dCByZWxlYXNlXTsKLSAgICBfZGF0YS0+X3ByZXNzdXJlRXZlbnQgPSBbZXZlbnQgcmV0YWluXTsK
LSNlbmRpZgorICAgIF9kYXRhLT5faW1wbC0+cHJlc3N1cmVDaGFuZ2VXaXRoRXZlbnQoZXZlbnQp
OwogfQogCiAtIChCT09MKWFjY2VwdHNGaXJzdE1vdXNlOihOU0V2ZW50ICopZXZlbnQKQEAgLTEz
NDAsNyArMTE2Miw3IEBAIE5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVSX0lOVEVSTkFMKG1vdXNl
RHJhZ2dlZEludGVybmFsKQogICAgICAgICByZXR1cm4gTk87CiAgICAgCiAgICAgW3NlbGYgX3Nl
dE1vdXNlRG93bkV2ZW50OmV2ZW50XTsKLSAgICBib29sIHJlc3VsdCA9IF9kYXRhLT5fcGFnZS0+
YWNjZXB0c0ZpcnN0TW91c2UoW2V2ZW50IGV2ZW50TnVtYmVyXSwgV2ViRXZlbnRGYWN0b3J5Ojpj
cmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBfZGF0YS0+X3ByZXNzdXJlRXZlbnQsIHNlbGYpKTsK
KyAgICBib29sIHJlc3VsdCA9IF9kYXRhLT5fcGFnZS0+YWNjZXB0c0ZpcnN0TW91c2UoW2V2ZW50
IGV2ZW50TnVtYmVyXSwgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50
LCBfZGF0YS0+X2ltcGwtPmxhc3RQcmVzc3VyZUV2ZW50KCksIHNlbGYpKTsKICAgICBbc2VsZiBf
c2V0TW91c2VEb3duRXZlbnQ6bmlsXTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtMTM2MSw3
ICsxMTgzLDcgQEAgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFn
Z2VkSW50ZXJuYWwpCiAgICAgICAgIHJldHVybiBOTzsKICAgICAKICAgICBbc2VsZiBfc2V0TW91
c2VEb3duRXZlbnQ6ZXZlbnRdOwotICAgIGJvb2wgcmVzdWx0ID0gX2RhdGEtPl9wYWdlLT5zaG91
bGREZWxheVdpbmRvd09yZGVyaW5nRm9yRXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJN
b3VzZUV2ZW50KGV2ZW50LCBfZGF0YS0+X3ByZXNzdXJlRXZlbnQsIHNlbGYpKTsKKyAgICBib29s
IHJlc3VsdCA9IF9kYXRhLT5fcGFnZS0+c2hvdWxkRGVsYXlXaW5kb3dPcmRlcmluZ0ZvckV2ZW50
KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChldmVudCwgX2RhdGEtPl9pbXBs
LT5sYXN0UHJlc3N1cmVFdmVudCgpLCBzZWxmKSk7CiAgICAgW3NlbGYgX3NldE1vdXNlRG93bkV2
ZW50Om5pbF07CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTE3OTMsNyArMTYxNSw3IEBAIHN0
YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBW
ZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKIC0gKEJPT0wpcGVyZm9ybUtleUVxdWl2YWxlbnQ6KE5T
RXZlbnQgKilldmVudAogewotICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykK
KyAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMoKSkKICAgICAgICAg
cmV0dXJuIE5POwogCiAgICAgLy8gVGhlcmUncyBhIGNoYW5jZSB0aGF0IHJlc3BvbmRpbmcgdG8g
dGhpcyBldmVudCB3aWxsIHJ1biBhIG5lc3RlZCBldmVudCBsb29wLCBhbmQKQEAgLTE4MzMsNyAr
MTY1NSw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmlu
ZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKIC0gKHZvaWQpa2V5VXA6KE5TRXZl
bnQgKil0aGVFdmVudAogewotICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykK
KyAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMoKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgTE9HKFRleHRJbnB1dCwgImtleVVwOiVwICVAIiwgdGhlRXZlbnQsIHRo
ZUV2ZW50KTsKQEAgLTE4NDYsNyArMTY2OCw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxp
bmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAK
IC0gKHZvaWQpa2V5RG93bjooTlNFdmVudCAqKXRoZUV2ZW50CiB7Ci0gICAgaWYgKF9kYXRhLT5f
aWdub3Jlc05vbldoZWVsRXZlbnRzKQorICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25X
aGVlbEV2ZW50cygpKQogICAgICAgICByZXR1cm47CiAKICAgICBMT0coVGV4dElucHV0LCAia2V5
RG93bjolcCAlQCVzIiwgdGhlRXZlbnQsIHRoZUV2ZW50LCAodGhlRXZlbnQgPT0gX2RhdGEtPl9r
ZXlEb3duRXZlbnRCZWluZ1Jlc2VudCkgPyAiIChyZS1zZW50KSIgOiAiIik7CkBAIC0xODczLDcg
KzE2OTUsNyBAQCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJp
bmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogCiAtICh2b2lkKWZsYWdzQ2hhbmdl
ZDooTlNFdmVudCAqKXRoZUV2ZW50CiB7Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVs
RXZlbnRzKQorICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBMT0coVGV4dElucHV0LCAiZmxhZ3NDaGFuZ2VkOiVwICVA
IiwgdGhlRXZlbnQsIHRoZUV2ZW50KTsKQEAgLTIyMzYsNyArMjA1OCw3IEBAIHN0YXRpYyB2b2lk
IGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29t
cG9zaXRpb25VbmRlCiAKIC0gKEJPT0wpcGVyZm9ybUtleUVxdWl2YWxlbnQ6KE5TRXZlbnQgKill
dmVudAogewotICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykKKyAgICBpZiAo
X2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMoKSkKICAgICAgICAgcmV0dXJuIE5P
OwogCiAgICAgLy8gVGhlcmUncyBhIGNoYW5jZSB0aGF0IHJlc3BvbmRpbmcgdG8gdGhpcyBldmVu
dCB3aWxsIHJ1biBhIG5lc3RlZCBldmVudCBsb29wLCBhbmQKQEAgLTIyNzYsNyArMjA5OCw3IEBA
IHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5n
LCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKIC0gKHZvaWQpa2V5VXA6KE5TRXZlbnQgKil0aGVF
dmVudAogewotICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykKKyAgICBpZiAo
X2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMoKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgTE9HKFRleHRJbnB1dCwgImtleVVwOiVwICVAIiwgdGhlRXZlbnQsIHRoZUV2ZW50KTsK
QEAgLTIyODYsNyArMjEwOCw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0
cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKIC0gKHZvaWQp
a2V5RG93bjooTlNFdmVudCAqKXRoZUV2ZW50CiB7Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05v
bldoZWVsRXZlbnRzKQorICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50
cygpKQogICAgICAgICByZXR1cm47CiAKICAgICBMT0coVGV4dElucHV0LCAia2V5RG93bjolcCAl
QCVzIiwgdGhlRXZlbnQsIHRoZUV2ZW50LCAodGhlRXZlbnQgPT0gX2RhdGEtPl9rZXlEb3duRXZl
bnRCZWluZ1Jlc2VudCkgPyAiIChyZS1zZW50KSIgOiAiIik7CkBAIC0yMzI0LDcgKzIxNDYsNyBA
QCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmlu
ZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogCiAtICh2b2lkKWZsYWdzQ2hhbmdlZDooTlNFdmVu
dCAqKXRoZUV2ZW50CiB7Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRzKQor
ICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBMT0coVGV4dElucHV0LCAiZmxhZ3NDaGFuZ2VkOiVwICVAIiwgdGhlRXZl
bnQsIHRoZUV2ZW50KTsKQEAgLTIzNTAsNiArMjE3MiwxMSBAQCBzdGF0aWMgdm9pZCBleHRyYWN0
VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9u
VW5kZQogICAgIHJldHVybiBbc3VwZXIgaW5wdXRDb250ZXh0XTsKIH0KIAorLSAodm9pZClfc3Vw
ZXJRdWlja0xvb2tXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAoreworICAgIFtzdXBlciBxdWlj
a0xvb2tXaXRoRXZlbnQ6ZXZlbnRdOworfQorCiAtIChOU0FycmF5ICopdmFsaWRBdHRyaWJ1dGVz
Rm9yTWFya2VkVGV4dAogewogICAgIHN0YXRpYyBOU0FycmF5ICp2YWxpZEF0dHJpYnV0ZXM7CkBA
IC0yNTI0LDIxOSArMjM1MSwxOSBAQCBzdGF0aWMgdm9pZCBjcmVhdGVTYW5kYm94RXh0ZW5zaW9u
c0ZvckZpbGVVcGxvYWQoTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkLCBTYW5kYgogICAgIHJldHVy
biBOU01vdXNlSW5SZWN0KGxvY2FsUG9pbnQsIHZpc2libGVUaHVtYlJlY3QsIFtzZWxmIGlzRmxp
cHBlZF0pOwogfQogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEw
MDAKLXN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQgPSAma2V5VmFsdWVPYnNl
cnZpbmdDb250ZXh0OwotI2VuZGlmCi0KLS0gKHZvaWQpYWRkV2luZG93T2JzZXJ2ZXJzRm9yV2lu
ZG93OihOU1dpbmRvdyAqKXdpbmRvdwotewotICAgIGlmICh3aW5kb3cpIHsKLSAgICAgICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVj
dG9yOkBzZWxlY3Rvcihfd2luZG93RGlkQmVjb21lS2V5OikKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTpOU1dpbmRvd0RpZEJlY29tZUtl
eU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKLSAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRl
ciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2lu
ZG93RGlkUmVzaWduS2V5OikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbmFtZTpOU1dpbmRvd0RpZFJlc2lnbktleU5vdGlmaWNhdGlvbiBvYmpl
Y3Q6bmlsXTsKLSAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBh
ZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkTWluaWF0dXJpemU6
KSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bmFtZTpOU1dpbmRvd0RpZE1pbmlhdHVyaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwot
ICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVy
OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWREZW1pbmlhdHVyaXplOikKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTpOU1dp
bmRvd0RpZERlbWluaWF0dXJpemVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Ci0gICAgICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBz
ZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZE1vdmU6KQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkTW92ZU5vdGlm
aWNhdGlvbiBvYmplY3Q6d2luZG93XTsKLSAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93
RGlkUmVzaXplOikgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG5hbWU6TlNXaW5kb3dEaWRSZXNpemVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRv
d107Ci0gICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2Jz
ZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZENoYW5nZUJhY2tpbmdQcm9w
ZXJ0aWVzOikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbmFtZTpOU1dpbmRvd0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzTm90aWZpY2F0aW9u
IG9iamVjdDp3aW5kb3ddOwotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRDaGFu
Z2VTY3JlZW46KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBuYW1lOk5TV2luZG93RGlkQ2hhbmdlU2NyZWVuTm90aWZpY2F0aW9uIG9iamVjdDp3
aW5kb3ddOwotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFk
ZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRDaGFuZ2VMYXllckhv
c3Rpbmc6KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBuYW1lOkAiX05TV2luZG93RGlkQ2hhbmdlQ29udGVudHNIb3N0ZWRJbkxheWVyU3VyZmFj
ZU5vdGlmaWNhdGlvbiIgb2JqZWN0OndpbmRvd107Ci0gICAgICAgIFtbTlNOb3RpZmljYXRpb25D
ZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3Io
X3dpbmRvd0RpZENoYW5nZU9jY2x1c2lvblN0YXRlOikKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTpOU1dpbmRvd0RpZENoYW5nZU9jY2x1
c2lvblN0YXRlTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwotI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgICAgIFt3aW5kb3cgYWRkT2JzZXJ2ZXI6
c2VsZiBmb3JLZXlQYXRoOkAiY29udGVudExheW91dFJlY3QiIG9wdGlvbnM6TlNLZXlWYWx1ZU9i
c2VydmluZ09wdGlvbkluaXRpYWwgY29udGV4dDprZXlWYWx1ZU9ic2VydmluZ0NvbnRleHRdOwot
ICAgICAgICBbd2luZG93IGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAInRpdGxlYmFyQXBw
ZWFyc1RyYW5zcGFyZW50IiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25Jbml0aWFs
IGNvbnRleHQ6a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0XTsKLSNlbmRpZgotICAgICAgICBbX2Rh
dGEtPl93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3RhcnRPYnNlcnZpbmc6d2luZG93XTsKLSAg
ICB9Ci19Ci0KIC0gKHZvaWQpX2FkZEZvbnRQYW5lbE9ic2VydmVyCiB7Ci0jaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICBbW05TRm9udFBhbmVsIHNoYXJl
ZEZvbnRQYW5lbF0gYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidmlzaWJsZSIgb3B0aW9u
czowIGNvbnRleHQ6a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0XTsKLSNlbmRpZgotfQotCi0tICh2
b2lkKXJlbW92ZVdpbmRvd09ic2VydmVycwotewotICAgIE5TV2luZG93ICp3aW5kb3cgPSBfZGF0
YS0+X3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA/IF9kYXRhLT5fdGFyZ2V0V2luZG93
Rm9yTW92ZVByZXBhcmF0aW9uIDogW3NlbGYgd2luZG93XTsKLSAgICBpZiAoIXdpbmRvdykKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVy
XSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRCZWNvbWVLZXlOb3RpZmljYXRp
b24gb2JqZWN0Om5pbF07Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVy
XSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRSZXNpZ25LZXlOb3RpZmljYXRp
b24gb2JqZWN0Om5pbF07Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVy
XSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRNaW5pYXR1cml6ZU5vdGlmaWNh
dGlvbiBvYmplY3Q6d2luZG93XTsKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZERlbWluaWF0dXJpemVO
b3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRNb3ZlTm90
aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwotICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVm
YXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkUmVzaXplTm90
aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwotICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVm
YXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkQ2hhbmdlQmFj
a2luZ1Byb3BlcnRpZXNOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Ci0gICAgW1tOU05vdGlm
aWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNX
aW5kb3dEaWRDaGFuZ2VTY3JlZW5Ob3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Ci0gICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5h
bWU6QCJfTlNXaW5kb3dEaWRDaGFuZ2VDb250ZW50c0hvc3RlZEluTGF5ZXJTdXJmYWNlTm90aWZp
Y2F0aW9uIiBvYmplY3Q6d2luZG93XTsKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1
bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZENoYW5nZU9jY2x1
c2lvblN0YXRlTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwotI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgaWYgKF9kYXRhLT5fcGFnZS0+aXNFZGl0
YWJsZSgpKQotICAgICAgICBbW05TRm9udFBhbmVsIHNoYXJlZEZvbnRQYW5lbF0gcmVtb3ZlT2Jz
ZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidmlzaWJsZSIgY29udGV4dDprZXlWYWx1ZU9ic2Vydmlu
Z0NvbnRleHRdOwotICAgIFt3aW5kb3cgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAi
Y29udGVudExheW91dFJlY3QiIGNvbnRleHQ6a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0XTsKLSAg
ICBbd2luZG93IHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAInRpdGxlYmFyQXBwZWFy
c1RyYW5zcGFyZW50IiBjb250ZXh0OmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dF07Ci0jZW5kaWYK
LSAgICBbX2RhdGEtPl93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3RvcE9ic2VydmluZzp3aW5k
b3ddOworICAgIF9kYXRhLT5faW1wbC0+c3RhcnRPYnNlcnZpbmdGb250UGFuZWwoKTsKIH0KIAog
LSAodm9pZCl2aWV3V2lsbE1vdmVUb1dpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cKIHsKLSAgICAv
LyBJZiB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIHByZXBhcmluZyB0byBtb3ZlIHRvIGEgd2luZG93
LCB3ZSBzaG91bGQgb25seSBiZSBtb3ZlZCB0byB0aGF0IHdpbmRvdy4KLSAgICBBU1NFUlQoIV9k
YXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uIHx8IChfZGF0YS0+X3RhcmdldFdp
bmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA9PSB3aW5kb3cpKTsKLQotICAgIE5TV2luZG93ICpjdXJy
ZW50V2luZG93ID0gW3NlbGYgd2luZG93XTsKLSAgICBpZiAod2luZG93ID09IGN1cnJlbnRXaW5k
b3cpCi0gICAgICAgIHJldHVybjsKLQotICAgIF9kYXRhLT5fcGFnZUNsaWVudC0+dmlld1dpbGxN
b3ZlVG9Bbm90aGVyV2luZG93KCk7Ci0gICAgCi0gICAgW3NlbGYgcmVtb3ZlV2luZG93T2JzZXJ2
ZXJzXTsKLSAgICBbc2VsZiBhZGRXaW5kb3dPYnNlcnZlcnNGb3JXaW5kb3c6d2luZG93XTsKKyAg
ICBfZGF0YS0+X2ltcGwtPnZpZXdXaWxsTW92ZVRvV2luZG93KHdpbmRvdyk7CiB9CiAKIC0gKHZv
aWQpdmlld0RpZE1vdmVUb1dpbmRvdwogewotICAgIE5TV2luZG93ICp3aW5kb3cgPSBfZGF0YS0+
X3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA/IF9kYXRhLT5fdGFyZ2V0V2luZG93Rm9y
TW92ZVByZXBhcmF0aW9uIDogc2VsZi53aW5kb3c7Ci0KLSAgICBpZiAod2luZG93KSB7Ci0gICAg
ICAgIFtzZWxmIGRvV2luZG93RGlkQ2hhbmdlU2NyZWVuXTsKLQotICAgICAgICBWaWV3U3RhdGU6
OkZsYWdzIHZpZXdTdGF0ZUNoYW5nZXMgPSBWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlIHwgVmll
d1N0YXRlOjpJc1Zpc2libGU7Ci0gICAgICAgIGlmIChbc2VsZiBpc0RlZmVycmluZ1ZpZXdJbldp
bmRvd0NoYW5nZXNdKQotICAgICAgICAgICAgX2RhdGEtPl92aWV3SW5XaW5kb3dDaGFuZ2VXYXNE
ZWZlcnJlZCA9IFlFUzsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdmlld1N0YXRlQ2hhbmdl
cyB8PSBWaWV3U3RhdGU6OklzSW5XaW5kb3c7Ci0gICAgICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0
YXRlRGlkQ2hhbmdlKHZpZXdTdGF0ZUNoYW5nZXMpOwotCi0gICAgICAgIFtzZWxmIF91cGRhdGVX
aW5kb3dBbmRWaWV3RnJhbWVzXTsKLQotICAgICAgICAvLyBGSVhNRSgxMzU1MDkpIFRoaXMgY2Fs
bCBiZWNvbWVzIHVubmVjZXNzYXJ5IG9uY2UgMTM1NTA5IGlzIGZpeGVkOyByZW1vdmUuCi0gICAg
ICAgIF9kYXRhLT5fcGFnZS0+bGF5ZXJIb3N0aW5nTW9kZURpZENoYW5nZSgpOwotCi0gICAgICAg
IGlmICghX2RhdGEtPl9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IpIHsKLSAgICAgICAgICAgIF9k
YXRhLT5fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRkTG9jYWxNb25pdG9y
Rm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5TRmxhZ3NDaGFuZ2VkTWFzayBoYW5kbGVyOl4oTlNFdmVu
dCAqZmxhZ3NDaGFuZ2VkRXZlbnQpIHsKLSAgICAgICAgICAgICAgICBbc2VsZiBfcG9zdEZha2VN
b3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudDpmbGFnc0NoYW5nZWRFdmVudF07Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIGZsYWdzQ2hhbmdlZEV2ZW50OwotICAgICAgICAgICAgfV07
Ci0gICAgICAgIH0KLQotICAgICAgICBbc2VsZiBfYWNjZXNzaWJpbGl0eVJlZ2lzdGVyVUlQcm9j
ZXNzVG9rZW5zXTsKLQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MDAwCi0gICAgICAgIGlmIChfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
ICYmICFbW3NlbGYgZ2VzdHVyZVJlY29nbml6ZXJzXSBjb250YWluc09iamVjdDpfZGF0YS0+X2lt
bWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgpXSAmJiAhX2RhdGEtPl9pZ25vcmVz
Tm9uV2hlZWxFdmVudHMgJiYgX2RhdGEtPl9hbGxvd3NMaW5rUHJldmlldykKLSAgICAgICAgICAg
IFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9kYXRhLT5faW1tZWRpYXRlQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXIuZ2V0KCldOwotI2VuZGlmCi0gICAgfSBlbHNlIHsKLSAgICAgICAgVmlld1N0
YXRlOjpGbGFncyB2aWV3U3RhdGVDaGFuZ2VzID0gVmlld1N0YXRlOjpXaW5kb3dJc0FjdGl2ZSB8
IFZpZXdTdGF0ZTo6SXNWaXNpYmxlOwotICAgICAgICBpZiAoW3NlbGYgaXNEZWZlcnJpbmdWaWV3
SW5XaW5kb3dDaGFuZ2VzXSkKLSAgICAgICAgICAgIF9kYXRhLT5fdmlld0luV2luZG93Q2hhbmdl
V2FzRGVmZXJyZWQgPSBZRVM7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZpZXdTdGF0ZUNo
YW5nZXMgfD0gVmlld1N0YXRlOjpJc0luV2luZG93OwotICAgICAgICBfZGF0YS0+X3BhZ2UtPnZp
ZXdTdGF0ZURpZENoYW5nZSh2aWV3U3RhdGVDaGFuZ2VzKTsKLQotICAgICAgICBbTlNFdmVudCBy
ZW1vdmVNb25pdG9yOl9kYXRhLT5fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yXTsKLSAgICAgICAg
X2RhdGEtPl9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IgPSBuaWw7Ci0KLSAgICAgICAgW3NlbGYg
X2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uOk5PXTsKLQot
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgICAgIGlm
IChfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyKQotICAgICAgICAgICAg
W3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25HZXN0
dXJlUmVjb2duaXplci5nZXQoKV07Ci0jZW5kaWYKLSAgICB9Ci0KLSAgICBfZGF0YS0+X3BhZ2Ut
PnNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKFtzZWxmIF9pbnRyaW5zaWNEZXZpY2VTY2Fs
ZUZhY3Rvcl0pOwotfQotCi0tICh2b2lkKWRvV2luZG93RGlkQ2hhbmdlU2NyZWVuCi17Ci0gICAg
TlNXaW5kb3cgKndpbmRvdyA9IF9kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9u
ID8gX2RhdGEtPl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gOiBzZWxmLndpbmRvdzsK
LSAgICBfZGF0YS0+X3BhZ2UtPndpbmRvd1NjcmVlbkRpZENoYW5nZSgoUGxhdGZvcm1EaXNwbGF5
SUQpW1tbW3dpbmRvdyBzY3JlZW5dIGRldmljZURlc2NyaXB0aW9uXSBvYmplY3RGb3JLZXk6QCJO
U1NjcmVlbk51bWJlciJdIGludFZhbHVlXSk7Ci19Ci0KLS0gKHZvaWQpX3dpbmRvd0RpZEJlY29t
ZUtleTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KLXsKLSAgICBOU1dpbmRvdyAqa2V5
V2luZG93ID0gW25vdGlmaWNhdGlvbiBvYmplY3RdOwotICAgIGlmIChrZXlXaW5kb3cgPT0gW3Nl
bGYgd2luZG93XSB8fCBrZXlXaW5kb3cgPT0gW1tzZWxmIHdpbmRvd10gYXR0YWNoZWRTaGVldF0p
IHsKLSAgICAgICAgX2RhdGEtPl9pbXBsLT51cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCk7Ci0gICAg
ICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6V2luZG93SXNB
Y3RpdmUpOwotICAgIH0KLX0KLQotLSAodm9pZClfd2luZG93RGlkQ2hhbmdlU2NyZWVuOihOU05v
dGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIFtzZWxmIGRvV2luZG93RGlkQ2hhbmdl
U2NyZWVuXTsKLX0KLQotLSAodm9pZClfd2luZG93RGlkQ2hhbmdlTGF5ZXJIb3N0aW5nOihOU05v
dGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIF9kYXRhLT5fcGFnZS0+bGF5ZXJIb3N0
aW5nTW9kZURpZENoYW5nZSgpOwotfQotCi0tICh2b2lkKV93aW5kb3dEaWRSZXNpZ25LZXk6KE5T
Tm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCi17Ci0gICAgTlNXaW5kb3cgKmZvcm1lcktleVdp
bmRvdyA9IFtub3RpZmljYXRpb24gb2JqZWN0XTsKLSAgICBpZiAoZm9ybWVyS2V5V2luZG93ID09
IFtzZWxmIHdpbmRvd10gfHwgZm9ybWVyS2V5V2luZG93ID09IFtbc2VsZiB3aW5kb3ddIGF0dGFj
aGVkU2hlZXRdKSB7Ci0gICAgICAgIF9kYXRhLT5faW1wbC0+dXBkYXRlU2VjdXJlSW5wdXRTdGF0
ZSgpOwotICAgICAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6
OldpbmRvd0lzQWN0aXZlKTsKLSAgICB9Ci19Ci0KLS0gKHZvaWQpX3dpbmRvd0RpZE1pbmlhdHVy
aXplOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIF9kYXRhLT5fcGFnZS0+
dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsKLX0KLQotLSAodm9pZClf
d2luZG93RGlkRGVtaW5pYXR1cml6ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KLXsK
LSAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OklzVmlzaWJs
ZSk7Ci19Ci0KLS0gKHZvaWQpX3dpbmRvd0RpZE1vdmU6KE5TTm90aWZpY2F0aW9uICopbm90aWZp
Y2F0aW9uCi17Ci0gICAgW3NlbGYgX3VwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXNdOyAgICAKLX0K
LQotLSAodm9pZClfd2luZG93RGlkUmVzaXplOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlv
bgotewotICAgIFtzZWxmIF91cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzXTsKLX0KLQotLSAodm9p
ZClfd2luZG93RGlkT3JkZXJPZmZTY3JlZW46KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9u
Ci17Ci0gICAgX2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpJc1Zp
c2libGUgfCBWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsKLX0KLQotLSAodm9pZClfd2luZG93
RGlkT3JkZXJPblNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KLXsKLSAgICBf
ZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OklzVmlzaWJsZSB8IFZp
ZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOwotfQotCi0tICh2b2lkKV93aW5kb3dEaWRDaGFuZ2VC
YWNraW5nUHJvcGVydGllczooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KLXsKLSAgICBD
R0Zsb2F0IG9sZEJhY2tpbmdTY2FsZUZhY3RvciA9IFtbbm90aWZpY2F0aW9uLnVzZXJJbmZvIG9i
amVjdEZvcktleTpOU0JhY2tpbmdQcm9wZXJ0eU9sZFNjYWxlRmFjdG9yS2V5XSBkb3VibGVWYWx1
ZV07Ci0gICAgQ0dGbG9hdCBuZXdCYWNraW5nU2NhbGVGYWN0b3IgPSBbc2VsZiBfaW50cmluc2lj
RGV2aWNlU2NhbGVGYWN0b3JdOyAKLSAgICBpZiAob2xkQmFja2luZ1NjYWxlRmFjdG9yID09IG5l
d0JhY2tpbmdTY2FsZUZhY3RvcikKLSAgICAgICAgcmV0dXJuOyAKLQotICAgIF9kYXRhLT5fcGFn
ZS0+c2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IobmV3QmFja2luZ1NjYWxlRmFjdG9yKTsK
LX0KLQotLSAodm9pZClfd2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3RhdGU6KE5TTm90aWZpY2F0
aW9uICopbm90aWZpY2F0aW9uCi17Ci0gICAgX2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRDaGFu
Z2UoVmlld1N0YXRlOjpJc1Zpc2libGUpOworICAgIF9kYXRhLT5faW1wbC0+dmlld0RpZE1vdmVU
b1dpbmRvdygpOwogfQogCiAtICh2b2lkKWRyYXdSZWN0OihOU1JlY3QpcmVjdApAQCAtMjc2OSwx
MyArMjM5Niw3IEBAIHN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQgPSAma2V5
VmFsdWVPYnNlcnZpbmdDb250ZXh0OwogCiAtICh2b2lkKXZpZXdEaWRDaGFuZ2VCYWNraW5nUHJv
cGVydGllcwogewotICAgIE5TQ29sb3JTcGFjZSAqY29sb3JTcGFjZSA9IFtbc2VsZiB3aW5kb3dd
IGNvbG9yU3BhY2VdOwotICAgIGlmIChbY29sb3JTcGFjZSBpc0VxdWFsVG86X2RhdGEtPl9jb2xv
clNwYWNlLmdldCgpXSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgX2RhdGEtPl9jb2xvclNwYWNl
ID0gbnVsbHB0cjsKLSAgICBpZiAoRHJhd2luZ0FyZWFQcm94eSAqZHJhd2luZ0FyZWEgPSBfZGF0
YS0+X3BhZ2UtPmRyYXdpbmdBcmVhKCkpCi0gICAgICAgIGRyYXdpbmdBcmVhLT5jb2xvclNwYWNl
RGlkQ2hhbmdlKCk7CisgICAgX2RhdGEtPl9pbXBsLT52aWV3RGlkQ2hhbmdlQmFja2luZ1Byb3Bl
cnRpZXMoKTsKIH0KIAogLSAodm9pZClfYWN0aXZlU3BhY2VEaWRDaGFuZ2U6KE5TTm90aWZpY2F0
aW9uICopbm90aWZpY2F0aW9uCkBAIC0yNzgzLDMyICsyNDA0LDYgQEAgc3RhdGljIHZvaWQqIGtl
eVZhbHVlT2JzZXJ2aW5nQ29udGV4dCA9ICZrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQ7CiAgICAg
X2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpJc1Zpc2libGUpOwog
fQogCi0tICh2b2lkKV9wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cAotewotICAgIGlmIChfZGF0
YS0+X2RpZFJlZ2lzdGVyRm9yTG9va3VwUG9wb3ZlckNsb3NlTm90aWZpY2F0aW9ucykKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgX2RhdGEtPl9kaWRSZWdpc3RlckZvckxvb2t1cFBvcG92ZXJDbG9z
ZU5vdGlmaWNhdGlvbnMgPSBZRVM7Ci0KLSAgICBpZiAoY2FuTG9hZExVTm90aWZpY2F0aW9uUG9w
b3ZlcldpbGxDbG9zZSgpKQotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9kaWN0aW9uYXJ5TG9v
a3VwUG9wb3ZlcldpbGxDbG9zZTopIG5hbWU6Z2V0TFVOb3RpZmljYXRpb25Qb3BvdmVyV2lsbENs
b3NlKCkgb2JqZWN0Om5pbF07Ci19Ci0KLS0gKHZvaWQpX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVy
V2lsbENsb3NlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIFtzZWxmIF9j
bGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNz
YWxBbmltYXRpb246Ok5vbmVdOwotfQotCi0tICh2b2lkKV9hY2Nlc3NpYmlsaXR5UmVnaXN0ZXJV
SVByb2Nlc3NUb2tlbnMKLXsKLSAgICAvLyBJbml0aWFsaXplIHJlbW90ZSBhY2Nlc3NpYmlsaXR5
IHdoZW4gdGhlIHdpbmRvdyBjb25uZWN0aW9uIGhhcyBiZWVuIGVzdGFibGlzaGVkLgotICAgIE5T
RGF0YSAqcmVtb3RlRWxlbWVudFRva2VuID0gV0tBWFJlbW90ZVRva2VuRm9yRWxlbWVudChzZWxm
KTsKLSAgICBOU0RhdGEgKnJlbW90ZVdpbmRvd1Rva2VuID0gV0tBWFJlbW90ZVRva2VuRm9yRWxl
bWVudChbc2VsZiB3aW5kb3ddKTsKLSAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZWxlbWVudFRva2Vu
ID0gSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KFty
ZW1vdGVFbGVtZW50VG9rZW4gYnl0ZXNdKSwgW3JlbW90ZUVsZW1lbnRUb2tlbiBsZW5ndGhdKTsK
LSAgICBJUEM6OkRhdGFSZWZlcmVuY2Ugd2luZG93VG9rZW4gPSBJUEM6OkRhdGFSZWZlcmVuY2Uo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oW3JlbW90ZVdpbmRvd1Rva2VuIGJ5dGVz
XSksIFtyZW1vdGVXaW5kb3dUb2tlbiBsZW5ndGhdKTsKLSAgICBfZGF0YS0+X3BhZ2UtPnJlZ2lz
dGVyVUlQcm9jZXNzQWNjZXNzaWJpbGl0eVRva2VucyhlbGVtZW50VG9rZW4sIHdpbmRvd1Rva2Vu
KTsKLX0KLQogLSAodm9pZClfdXBkYXRlUmVtb3RlQWNjZXNzaWJpbGl0eVJlZ2lzdHJhdGlvbjoo
Qk9PTClyZWdpc3RlclByb2Nlc3MKIHsKICAgICAvLyBXaGVuIHRoZSB0cmVlIGlzIGNvbm5lY3Rl
ZC9kaXNjb25uZWN0ZWQsIHRoZSByZW1vdGUgYWNjZXNzaWJpbGl0eSByZWdpc3RyYXRpb24KQEAg
LTI4MzMsNyArMjQyOCw3IEBAIHN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQg
PSAma2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0OwogICAgIC8vIEFmdGVyIGVuYWJsaW5nIGFjY2Vz
c2liaWxpdHkgdXBkYXRlIHRoZSB3aW5kb3cgZnJhbWUgb24gdGhlIHdlYiBwcm9jZXNzIHNvIHRo
YXQgdGhlCiAgICAgLy8gY29ycmVjdCBhY2Nlc3NpYmlsaXR5IHBvc2l0aW9uIGlzIHRyYW5zbWl0
dGVkICh3aGVuIEFYIGlzIG9mZiwgdGhhdCBwb3NpdGlvbiBpcyBub3QgY2FsY3VsYXRlZCkuCiAg
ICAgV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZW5hYmxlQWNjZXNzaWJpbGl0eSgpOwotICAgIFtz
ZWxmIF91cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzXTsKKyAgICBfZGF0YS0+X2ltcGwtPnVwZGF0
ZVdpbmRvd0FuZFZpZXdGcmFtZXMoKTsKIH0KIAogLSAoaWQpYWNjZXNzaWJpbGl0eUZvY3VzZWRV
SUVsZW1lbnQKQEAgLTI4ODgsNDUgKzI0ODMsMTQgQEAgc3RhdGljIHZvaWQqIGtleVZhbHVlT2Jz
ZXJ2aW5nQ29udGV4dCA9ICZrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQ7CiAgICAgcmV0dXJuIGhp
dFZpZXc7CiB9CiAKLS0gKHZvaWQpX3Bvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFu
Z2VkRXZlbnQ6KE5TRXZlbnQgKilmbGFnc0NoYW5nZWRFdmVudAotewotICAgIE5TRXZlbnQgKmZh
a2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQgbG9jYXRp
b246W1tmbGFnc0NoYW5nZWRFdmVudCB3aW5kb3ddIG1vdXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVu
dFN0cmVhbV0KLSAgICAgICAgbW9kaWZpZXJGbGFnczpbZmxhZ3NDaGFuZ2VkRXZlbnQgbW9kaWZp
ZXJGbGFnc10gdGltZXN0YW1wOltmbGFnc0NoYW5nZWRFdmVudCB0aW1lc3RhbXBdIHdpbmRvd051
bWJlcjpbZmxhZ3NDaGFuZ2VkRXZlbnQgd2luZG93TnVtYmVyXQotICAgICAgICBjb250ZXh0Oltm
bGFnc0NoYW5nZWRFdmVudCBjb250ZXh0XSBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVz
c3VyZTowXTsKLSAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KGZha2VFdmVudCwgX2Rh
dGEtPl9wcmVzc3VyZUV2ZW50LCBzZWxmKTsKLSAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZU1vdXNl
RXZlbnQod2ViRXZlbnQpOwotfQotCiAtIChOU0ludGVnZXIpY29udmVyc2F0aW9uSWRlbnRpZmll
cgogewogICAgIHJldHVybiAoTlNJbnRlZ2VyKXNlbGY7CiB9CiAKLS0gKGZsb2F0KV9pbnRyaW5z
aWNEZXZpY2VTY2FsZUZhY3RvcgotewotICAgIGlmIChfZGF0YS0+X292ZXJyaWRlRGV2aWNlU2Nh
bGVGYWN0b3IpCi0gICAgICAgIHJldHVybiBfZGF0YS0+X292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0
b3I7Ci0gICAgaWYgKF9kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uKQotICAg
ICAgICByZXR1cm4gW19kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uIGJhY2tp
bmdTY2FsZUZhY3Rvcl07Ci0gICAgaWYgKE5TV2luZG93ICp3aW5kb3cgPSBbc2VsZiB3aW5kb3dd
KQotICAgICAgICByZXR1cm4gW3dpbmRvdyBiYWNraW5nU2NhbGVGYWN0b3JdOwotICAgIHJldHVy
biBbW05TU2NyZWVuIG1haW5TY3JlZW5dIGJhY2tpbmdTY2FsZUZhY3Rvcl07Ci19Ci0KIC0gKHZv
aWQpcXVpY2tMb29rV2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBpZiAoX2RhdGEt
Pl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCi0gICAgICAgIHJldHVybjsKLQotI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgaWYgKF9kYXRhLT5faW1tZWRp
YXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIpIHsKLSAgICAgICAgW3N1cGVyIHF1aWNrTG9va1dp
dGhFdmVudDpldmVudF07Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLQotICAgIE5T
UG9pbnQgbG9jYXRpb25JblZpZXdDb29yZGluYXRlcyA9IFtzZWxmIGNvbnZlcnRQb2ludDpbZXZl
bnQgbG9jYXRpb25JbldpbmRvd10gZnJvbVZpZXc6bmlsXTsKLSAgICBfZGF0YS0+X3BhZ2UtPnBl
cmZvcm1EaWN0aW9uYXJ5TG9va3VwQXRMb2NhdGlvbihGbG9hdFBvaW50KGxvY2F0aW9uSW5WaWV3
Q29vcmRpbmF0ZXMueCwgbG9jYXRpb25JblZpZXdDb29yZGluYXRlcy55KSk7CisgICAgX2RhdGEt
Pl9pbXBsLT5xdWlja0xvb2tXaXRoRXZlbnQoZXZlbnQpOwogfQogCiAtIChzdGQ6OnVuaXF1ZV9w
dHI8V2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5PilfY3JlYXRlRHJhd2luZ0FyZWFQcm94eQpAQCAt
MjkzOSwxOSArMjUwMyw3IEBAIHN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQg
PSAma2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0OwogCiAtIChXZWJLaXQ6OkNvbG9yU3BhY2VEYXRh
KV9jb2xvclNwYWNlCiB7Ci0gICAgaWYgKCFfZGF0YS0+X2NvbG9yU3BhY2UpIHsKLSAgICAgICAg
aWYgKF9kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uKQotICAgICAgICAgICAg
X2RhdGEtPl9jb2xvclNwYWNlID0gW19kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0
aW9uIGNvbG9yU3BhY2VdOwotICAgICAgICBlbHNlIGlmIChOU1dpbmRvdyAqd2luZG93ID0gW3Nl
bGYgd2luZG93XSkKLSAgICAgICAgICAgIF9kYXRhLT5fY29sb3JTcGFjZSA9IFt3aW5kb3cgY29s
b3JTcGFjZV07Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIF9kYXRhLT5fY29sb3JTcGFjZSA9
IFtbTlNTY3JlZW4gbWFpblNjcmVlbl0gY29sb3JTcGFjZV07Ci0gICAgfQotICAgICAgICAKLSAg
ICBDb2xvclNwYWNlRGF0YSBjb2xvclNwYWNlRGF0YTsKLSAgICBjb2xvclNwYWNlRGF0YS5jZ0Nv
bG9yU3BhY2UgPSBbX2RhdGEtPl9jb2xvclNwYWNlIENHQ29sb3JTcGFjZV07Ci0KLSAgICByZXR1
cm4gY29sb3JTcGFjZURhdGE7ICAgIAorICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmNvbG9yU3Bh
Y2UoKTsKIH0KIAogLSAodm9pZClfcHJvY2Vzc0RpZEV4aXQKQEAgLTI5NzMsMTkgKzI1MjUsNyBA
QCBzdGF0aWMgdm9pZCoga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0ID0gJmtleVZhbHVlT2JzZXJ2
aW5nQ29udGV4dDsKIAogLSAodm9pZClfZGlkUmVsYXVuY2hQcm9jZXNzCiB7Ci0gICAgW3NlbGYg
X2FjY2Vzc2liaWxpdHlSZWdpc3RlclVJUHJvY2Vzc1Rva2Vuc107Ci19Ci0KLS0gKHZvaWQpX3By
ZWZlcmVuY2VzRGlkQ2hhbmdlCi17Ci0gICAgQk9PTCBuZWVkc1ZpZXdGcmFtZUluV2luZG93Q29v
cmRpbmF0ZXMgPSBfZGF0YS0+X3BhZ2UtPnByZWZlcmVuY2VzKCkucGx1Z2luc0VuYWJsZWQoKTsK
LQotICAgIGlmICghIW5lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9PSAhIV9kYXRh
LT5fbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBfZGF0YS0+X25lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9IG5lZWRzVmll
d0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlczsKLSAgICBpZiAoW3NlbGYgd2luZG93XSkKLSAgICAg
ICAgW3NlbGYgX3VwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXNdOworICAgIF9kYXRhLT5faW1wbC0+
YWNjZXNzaWJpbGl0eVJlZ2lzdGVyVUlQcm9jZXNzVG9rZW5zKCk7CiB9CiAKIC0gKHZvaWQpX3Nl
dFVzZXJJbnRlcmZhY2VJdGVtU3RhdGU6KE5TU3RyaW5nICopY29tbWFuZE5hbWUgZW5hYmxlZDoo
Qk9PTClpc0VuYWJsZWQgc3RhdGU6KGludCluZXdTdGF0ZQpAQCAtMzE2NCwzMyArMjcwNCw2IEBA
IHN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQgPSAma2V5VmFsdWVPYnNlcnZp
bmdDb250ZXh0OwogICAgIH0KIH0KIAotLSAodm9pZClfc2V0VGV4dEluZGljYXRvcjooVGV4dElu
ZGljYXRvciYpdGV4dEluZGljYXRvcgotewotICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRl
eHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVy
bWFuZW50XTsKLX0KLQotLSAodm9pZClfc2V0VGV4dEluZGljYXRvcjooVGV4dEluZGljYXRvciYp
dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6KFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSls
aWZldGltZQotewotICAgIGlmICghX2RhdGEtPl90ZXh0SW5kaWNhdG9yV2luZG93KQotICAgICAg
ICBfZGF0YS0+X3RleHRJbmRpY2F0b3JXaW5kb3cgPSBzdGQ6Om1ha2VfdW5pcXVlPFRleHRJbmRp
Y2F0b3JXaW5kb3c+KHNlbGYpOwotCi0gICAgTlNSZWN0IHRleHRCb3VuZGluZ1JlY3RJblNjcmVl
bkNvb3JkaW5hdGVzID0gW3NlbGYud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46W3NlbGYgY29u
dmVydFJlY3Q6dGV4dEluZGljYXRvci50ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5h
dGVzKCkgdG9WaWV3Om5pbF1dOwotICAgIF9kYXRhLT5fdGV4dEluZGljYXRvcldpbmRvdy0+c2V0
VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBOU1JlY3RUb0NHUmVjdCh0ZXh0Qm91bmRpbmdS
ZWN0SW5TY3JlZW5Db29yZGluYXRlcyksIGxpZmV0aW1lKTsKLX0KLQotLSAodm9pZClfY2xlYXJU
ZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjooVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFu
aW1hdGlvbilhbmltYXRpb24KLXsKLSAgICBpZiAoX2RhdGEtPl90ZXh0SW5kaWNhdG9yV2luZG93
KQotICAgICAgICBfZGF0YS0+X3RleHRJbmRpY2F0b3JXaW5kb3ctPmNsZWFyVGV4dEluZGljYXRv
cihhbmltYXRpb24pOwotICAgIF9kYXRhLT5fdGV4dEluZGljYXRvcldpbmRvdyA9IG51bGxwdHI7
Ci19Ci0KLS0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczooZmxvYXQp
cHJvZ3Jlc3MKLXsKLSAgICBpZiAoX2RhdGEtPl90ZXh0SW5kaWNhdG9yV2luZG93KQotICAgICAg
ICBfZGF0YS0+X3RleHRJbmRpY2F0b3JXaW5kb3ctPnNldEFuaW1hdGlvblByb2dyZXNzKHByb2dy
ZXNzKTsKLX0KLQogLSAodm9pZClfc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVSb290TGF5
ZXI6KENBTGF5ZXIgKilyb290TGF5ZXIKIHsKICAgICBbcm9vdExheWVyIHdlYl9kaXNhYmxlQWxs
QWN0aW9uc107CkBAIC0zNTIyLDEyICszMDM1LDYgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0
aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKICAgICByZXR1cm4gW05TQXJy
YXkgYXJyYXlXaXRoT2JqZWN0OltwYXRoIGxhc3RQYXRoQ29tcG9uZW50XV07CiB9CiAKLQotLSAo
TlNXaW5kb3cgKilfdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uCi17Ci0gICAgcmV0dXJu
IF9kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uOwotfQotCiAjaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQogLSAoQk9PTClfaGFzRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIK
IHsKQEAgLTM1NTYsMTEgKzMwNjMsNiBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVl
RmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAgIHJldHVybiAhW3NpbmsgZGlkUmVj
ZWl2ZVVuaGFuZGxlZENvbW1hbmRdOwogfQogCi0tICh2b2lkKV9zZXRJbnRyaW5zaWNDb250ZW50
U2l6ZTooTlNTaXplKWludHJpbnNpY0NvbnRlbnRTaXplCi17Ci0gICAgX2RhdGEtPl9pbXBsLT5z
ZXRJbnRyaW5zaWNDb250ZW50U2l6ZShOU1NpemVUb0NHU2l6ZShpbnRyaW5zaWNDb250ZW50U2l6
ZSkpOwotfQotCiAtIChOU0ludGVnZXIpc3BlbGxDaGVja2VyRG9jdW1lbnRUYWcKIHsKICAgICBp
ZiAoIV9kYXRhLT5faGFzU3BlbGxDaGVja2VyRG9jdW1lbnRUYWcpIHsKQEAgLTM2MjEsMjMgKzMx
MjMsMTcgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChO
U1N0cmluZyAqcGF0aCkKICAgICBfZGF0YS0+X3BhZ2VDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVl
PFBhZ2VDbGllbnRJbXBsPihzZWxmLCB3ZWJWaWV3KTsKICAgICBfZGF0YS0+X3BhZ2UgPSBwcm9j
ZXNzUG9vbC5jcmVhdGVXZWJQYWdlKCpfZGF0YS0+X3BhZ2VDbGllbnQsIFdURjo6bW92ZShjb25m
aWd1cmF0aW9uKSk7CiAKLSAgICBfZGF0YS0+X2ltcGwgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYlZp
ZXdJbXBsPihzZWxmLCAqX2RhdGEtPl9wYWdlKTsKLSAgICBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50
SW1wbCo+KF9kYXRhLT5fcGFnZUNsaWVudC5nZXQoKSktPnNldEltcGwoKl9kYXRhLT5faW1wbCk7
CisgICAgX2RhdGEtPl9pbXBsID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJWaWV3SW1wbD4oc2VsZiwg
Kl9kYXRhLT5fcGFnZSwgKl9kYXRhLT5fcGFnZUNsaWVudCk7CisgICAgc3RhdGljX2Nhc3Q8UGFn
ZUNsaWVudEltcGwmPigqX2RhdGEtPl9wYWdlQ2xpZW50KS5zZXRJbXBsKCpfZGF0YS0+X2ltcGwp
OwogCiAgICAgX2RhdGEtPl9wYWdlLT5zZXRBZGRzVmlzaXRlZExpbmtzKHByb2Nlc3NQb29sLmhp
c3RvcnlDbGllbnQoKS5hZGRzVmlzaXRlZExpbmtzKCkpOwogCi0gICAgX2RhdGEtPl9wYWdlLT5z
ZXRJbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3Rvcihbc2VsZiBfaW50cmluc2ljRGV2aWNlU2NhbGVG
YWN0b3JdKTsKICAgICBfZGF0YS0+X3BhZ2UtPmluaXRpYWxpemVXZWJQYWdlKCk7CiAKICAgICBf
ZGF0YS0+X21vdXNlRG93bkV2ZW50ID0gbmlsOwotICAgIF9kYXRhLT5fcHJlc3N1cmVFdmVudCA9
IG5pbDsKICAgICBfZGF0YS0+X2lnbm9yaW5nTW91c2VEcmFnZ2VkRXZlbnRzID0gTk87CiAgICAg
X2RhdGEtPl93aW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkID0gWUVTOwogCi0gICAgX2Rh
dGEtPl93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgPSBhZG9wdE5TKFtbV0tXaW5kb3dWaXNpYmls
aXR5T2JzZXJ2ZXIgYWxsb2NdIGluaXRXaXRoVmlldzpzZWxmXSk7Ci0KLSAgICBfZGF0YS0+X25l
ZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9IF9kYXRhLT5fcGFnZS0+cHJlZmVyZW5j
ZXMoKS5wbHVnaW5zRW5hYmxlZCgpOwotCiAgICAgW3NlbGYgX3JlZ2lzdGVyRHJhZ2dlZFR5cGVz
XTsKIAogICAgIHNlbGYud2FudHNMYXllciA9IFlFUzsKQEAgLTM2NTAsMTcgKzMxNDYsNiBAQCBz
dGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpw
YXRoKQogICAgIE5TTm90aWZpY2F0aW9uQ2VudGVyKiB3b3Jrc3BhY2VOb3RpZmljYXRpb25DZW50
ZXIgPSBbW05TV29ya3NwYWNlIHNoYXJlZFdvcmtzcGFjZV0gbm90aWZpY2F0aW9uQ2VudGVyXTsK
ICAgICBbd29ya3NwYWNlTm90aWZpY2F0aW9uQ2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0
b3I6QHNlbGVjdG9yKF9hY3RpdmVTcGFjZURpZENoYW5nZTopIG5hbWU6TlNXb3Jrc3BhY2VBY3Rp
dmVTcGFjZURpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKIAotI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgX2RhdGEtPl9hbGxvd3NMaW5r
UHJldmlldyA9IFlFUzsKLQotICAgIGlmIChDbGFzcyBnZXN0dXJlQ2xhc3MgPSBOU0NsYXNzRnJv
bVN0cmluZyhAIk5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIiKSkgewotICAgICAg
ICBfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyID0gYWRvcHROUyhbKE5T
SW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilbZ2VzdHVyZUNsYXNzIGFsbG9jXSBp
bml0XSk7Ci0gICAgICAgIF9kYXRhLT5faW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciA9IGFkb3B0
TlMoW1tXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoUGFnZToqX2Rh
dGEtPl9wYWdlIHZpZXc6c2VsZiByZWNvZ25pemVyOl9kYXRhLT5faW1tZWRpYXRlQWN0aW9uR2Vz
dHVyZVJlY29nbml6ZXIuZ2V0KCldKTsKLSAgICAgICAgW19kYXRhLT5faW1tZWRpYXRlQWN0aW9u
R2VzdHVyZVJlY29nbml6ZXIgc2V0RGVsZWdhdGU6X2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyLmdldCgpXTsKLSAgICAgICAgW19kYXRhLT5faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJl
Y29nbml6ZXIgc2V0RGVsYXlzUHJpbWFyeU1vdXNlQnV0dG9uRXZlbnRzOk5PXTsKLSAgICB9Ci0j
ZW5kaWYKLQogICAgIHJldHVybiBzZWxmOwogfQogCkBAIC0zNzA1LDQyICszMTkwLDYgQEAgc3Rh
dGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0
aCkKIH0KICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRAogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLQotLSAodm9pZClfdXBkYXRlQ29udGVudEluc2V0c0lm
QXV0b21hdGljCi17Ci0gICAgaWYgKCFzZWxmLl9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJ
bnNldHMpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICgoc2VsZi53aW5kb3cuc3R5bGVNYXNr
ICYgTlNGdWxsU2l6ZUNvbnRlbnRWaWV3V2luZG93TWFzaykgJiYgIXNlbGYud2luZG93LnRpdGxl
YmFyQXBwZWFyc1RyYW5zcGFyZW50ICYmICFbc2VsZiBlbmNsb3NpbmdTY3JvbGxWaWV3XSkgewot
ICAgICAgICBOU1JlY3QgY29udGVudExheW91dFJlY3QgPSBbc2VsZiBjb252ZXJ0UmVjdDpzZWxm
LndpbmRvdy5jb250ZW50TGF5b3V0UmVjdCBmcm9tVmlldzpuaWxdOwotICAgICAgICBDR0Zsb2F0
IG5ld1RvcENvbnRlbnRJbnNldCA9IE5TTWF4WShjb250ZW50TGF5b3V0UmVjdCkgLSBOU0hlaWdo
dChjb250ZW50TGF5b3V0UmVjdCk7Ci0gICAgICAgIGlmIChzZWxmLl90b3BDb250ZW50SW5zZXQg
IT0gbmV3VG9wQ29udGVudEluc2V0KQotICAgICAgICAgICAgc2VsZi5fdG9wQ29udGVudEluc2V0
ID0gbmV3VG9wQ29udGVudEluc2V0OwotICAgIH0gZWxzZQotICAgICAgICBzZWxmLl90b3BDb250
ZW50SW5zZXQgPSAwOwotfQotCi0jZW5kaWYKLQotLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQ
YXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGlj
dGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4dAotewotI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgaWYgKGNvbnRleHQgIT0ga2V5
VmFsdWVPYnNlcnZpbmdDb250ZXh0KSB7Ci0gICAgICAgIFtzdXBlciBvYnNlcnZlVmFsdWVGb3JL
ZXlQYXRoOmtleVBhdGggb2ZPYmplY3Q6b2JqZWN0IGNoYW5nZTpjaGFuZ2UgY29udGV4dDpjb250
ZXh0XTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChba2V5UGF0aCBpc0VxdWFs
VG9TdHJpbmc6QCJ2aXNpYmxlIl0gJiYgW05TRm9udFBhbmVsIHNoYXJlZEZvbnRQYW5lbEV4aXN0
c10gJiYgb2JqZWN0ID09IFtOU0ZvbnRQYW5lbCBzaGFyZWRGb250UGFuZWxdKSB7Ci0gICAgICAg
IFtzZWxmIHVwZGF0ZUZvbnRQYW5lbElmTmVlZGVkXTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAiY29udGVudExheW91dFJlY3QiXSB8
fCBba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJ0aXRsZWJhckFwcGVhcnNUcmFuc3BhcmVudCJd
KQotICAgICAgICBbc2VsZiBfdXBkYXRlQ29udGVudEluc2V0c0lmQXV0b21hdGljXTsKLSNlbmRp
ZgotfQotCi0KIC0gKHZvaWQpX2RpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5G
cmFtZQogewogICAgIGlmIChfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyKQpAQCAtMzc4MywxNSAr
MzIzMiw2IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgo
TlNTdHJpbmcgKnBhdGgpCiAgICAgICAgIF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXItPnJlbW92
ZVN3aXBlU25hcHNob3QoKTsKIH0KIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMDAwCi0KLS0gKHZvaWQpX2RpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0
Oihjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYpaGl0VGVzdFJlc3VsdCBjb250ZW50UHJldmVu
dHNEZWZhdWx0OihCT09MKWNvbnRlbnRQcmV2ZW50c0RlZmF1bHQgdXNlckRhdGE6KEFQSTo6T2Jq
ZWN0Kil1c2VyRGF0YQotewotICAgIFtfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIg
ZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3Q6aGl0VGVzdFJlc3VsdCBjb250ZW50UHJl
dmVudHNEZWZhdWx0OmNvbnRlbnRQcmV2ZW50c0RlZmF1bHQgdXNlckRhdGE6dXNlckRhdGFdOwot
fQotCi0jZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAK
LQogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCiAtICh2b2lk
KV9zdGFydFdpbmRvd0RyYWcKIHsKQEAgLTM5OTMsNzIgKzM0MzMsMjkgQEAgc3RhdGljIE5TU3Ry
aW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKICAgICBy
ZXR1cm4gX2RhdGEtPl9pbXBsLT5jcmVhdGVGdWxsU2NyZWVuV2luZG93KCk7CiB9CiAKLS8vIEZJ
WE1FOiBBbGwgb2YgdGhlc2UgIkRlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMiIG1ldGhvZHMg
c2hvdWxkIGJlIGFibGUgdG8gYmUgcmVtb3ZlZCBvbmNlIGNsaWVudHMgYXJlIHdlYW5lZCBvZmYg
b2YgdGhlbS4KIC0gKHZvaWQpYmVnaW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzCiB7Ci0g
ICAgaWYgKF9kYXRhLT5fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzKSB7Ci0gICAgICAg
IE5TTG9nKEAiYmVnaW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzIHdhcyBjYWxsZWQgd2hp
bGUgYWxyZWFkeSBkZWZlcnJpbmcgdmlldy1pbi13aW5kb3cgY2hhbmdlcyEiKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIF9kYXRhLT5fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFu
Z2VzID0gWUVTOworICAgIF9kYXRhLT5faW1wbC0+YmVnaW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dD
aGFuZ2VzKCk7CiB9CiAKIC0gKHZvaWQpZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcwog
ewotICAgIGlmICghX2RhdGEtPl9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMpIHsKLSAg
ICAgICAgTlNMb2coQCJlbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzIHdhcyBjYWxsZWQg
d2l0aG91dCBiZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMhIik7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBfZGF0YS0+X3Nob3VsZERlZmVyVmlld0luV2luZG93Q2hhbmdl
cyA9IE5POwotCi0gICAgaWYgKF9kYXRhLT5fdmlld0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQp
IHsKLSAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0XTsKLSAgICAgICAg
X2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpJc0luV2luZG93KTsK
LSAgICAgICAgX2RhdGEtPl92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9IE5POwotICAg
IH0KKyAgICBfZGF0YS0+X2ltcGwtPmVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMoKTsK
IH0KIAogLSAodm9pZCllbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzU3luYwogewotICAg
IGlmICghX2RhdGEtPl9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMpIHsKLSAgICAgICAg
TlNMb2coQCJlbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzU3luYyB3YXMgY2FsbGVkIHdp
dGhvdXQgYmVnaW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzISIpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgX2RhdGEtPl9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMg
PSBOTzsKLQotICAgIGlmIChfZGF0YS0+X3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVkKSB7
Ci0gICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldFRvcENvbnRlbnRJbnNldF07Ci0gICAgICAgIF9k
YXRhLT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6SXNJbldpbmRvdyk7Ci0g
ICAgICAgIF9kYXRhLT5fdmlld0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQgPSBOTzsKLSAgICB9
CisgICAgX2RhdGEtPl9pbXBsLT5lbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzU3luYygp
OwogfQogCiAtICh2b2lkKV9wcmVwYXJlRm9yTW92ZVRvV2luZG93OihOU1dpbmRvdyAqKXRhcmdl
dFdpbmRvdyB3aXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhh
bmRsZXIKIHsKLSAgICBfZGF0YS0+X3Nob3VsZERlZmVyVmlld0luV2luZG93Q2hhbmdlcyA9IFlF
UzsKLSAgICBbc2VsZiB2aWV3V2lsbE1vdmVUb1dpbmRvdzp0YXJnZXRXaW5kb3ddOwotICAgIF9k
YXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uID0gdGFyZ2V0V2luZG93OwotICAg
IFtzZWxmIHZpZXdEaWRNb3ZlVG9XaW5kb3ddOwotCi0gICAgX2RhdGEtPl9zaG91bGREZWZlclZp
ZXdJbldpbmRvd0NoYW5nZXMgPSBOTzsKLQotICAgIF9kYXRhLT5fcGFnZS0+aW5zdGFsbFZpZXdT
dGF0ZUNoYW5nZUNvbXBsZXRpb25IYW5kbGVyKF4oKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7Ci0gICAgICAgIEFTU0VSVChzZWxmLndpbmRvdyA9PSBfZGF0YS0+X3RhcmdldFdpbmRv
d0Zvck1vdmVQcmVwYXJhdGlvbik7Ci0gICAgICAgIF9kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92
ZVByZXBhcmF0aW9uID0gbmlsOwotICAgIH0pOwotCi0gICAgW3NlbGYgX2Rpc3BhdGNoU2V0VG9w
Q29udGVudEluc2V0XTsKLSAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3
U3RhdGU6OklzSW5XaW5kb3csIGZhbHNlLCBXZWJQYWdlUHJveHk6OlZpZXdTdGF0ZUNoYW5nZURp
c3BhdGNoTW9kZTo6SW1tZWRpYXRlKTsKLSAgICBfZGF0YS0+X3ZpZXdJbldpbmRvd0NoYW5nZVdh
c0RlZmVycmVkID0gTk87CisgICAgX2RhdGEtPl9pbXBsLT5wcmVwYXJlRm9yTW92ZVRvV2luZG93
KHRhcmdldFdpbmRvdywgY29tcGxldGlvbkhhbmRsZXIpOwogfQogCiAtIChCT09MKWlzRGVmZXJy
aW5nVmlld0luV2luZG93Q2hhbmdlcwogewotICAgIHJldHVybiBfZGF0YS0+X3Nob3VsZERlZmVy
Vmlld0luV2luZG93Q2hhbmdlczsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5pc0RlZmVycmlu
Z1ZpZXdJbldpbmRvd0NoYW5nZXMoKTsKIH0KIAogLSAoQk9PTCl3aW5kb3dPY2NsdXNpb25EZXRl
Y3Rpb25FbmFibGVkCkBAIC00MDg1LDczICszNDgyLDQ4IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0
aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAKIC0gKEJPT0wpYWxs
b3dzTGlua1ByZXZpZXcKIHsKLSAgICByZXR1cm4gX2RhdGEtPl9hbGxvd3NMaW5rUHJldmlldzsK
KyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5hbGxvd3NMaW5rUHJldmlldygpOwogfQogCiAtICh2
b2lkKXNldEFsbG93c0xpbmtQcmV2aWV3OihCT09MKWFsbG93c0xpbmtQcmV2aWV3CiB7Ci0gICAg
aWYgKF9kYXRhLT5fYWxsb3dzTGlua1ByZXZpZXcgPT0gYWxsb3dzTGlua1ByZXZpZXcpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIF9kYXRhLT5fYWxsb3dzTGlua1ByZXZpZXcgPSBhbGxvd3NMaW5r
UHJldmlldzsKLSAgICAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTAwMAotICAgIGlmICghYWxsb3dzTGlua1ByZXZpZXcpCi0gICAgICAgIFtzZWxmIHJlbW92ZUdl
c3R1cmVSZWNvZ25pemVyOl9kYXRhLT5faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIu
Z2V0KCldOwotICAgIGVsc2UgaWYgKE5TR2VzdHVyZVJlY29nbml6ZXIgKmltbWVkaWF0ZUFjdGlv
blJlY29nbml6ZXIgPSBfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdl
dCgpKQotICAgICAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjppbW1lZGlhdGVBY3Rpb25S
ZWNvZ25pemVyXTsKLSNlbmRpZgorICAgIF9kYXRhLT5faW1wbC0+c2V0QWxsb3dzTGlua1ByZXZp
ZXcoYWxsb3dzTGlua1ByZXZpZXcpOwogfQogCiAtICh2b2lkKV9zZXRJZ25vcmVzQWxsRXZlbnRz
OihCT09MKWlnbm9yZXNBbGxFdmVudHMKIHsKLSAgICBfZGF0YS0+X2lnbm9yZXNBbGxFdmVudHMg
PSBpZ25vcmVzQWxsRXZlbnRzOwotICAgIFtzZWxmIF9zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHM6
aWdub3Jlc0FsbEV2ZW50c107CisgICAgX2RhdGEtPl9pbXBsLT5zZXRJZ25vcmVzQWxsRXZlbnRz
KGlnbm9yZXNBbGxFdmVudHMpOwogfQogCiAvLyBGb3J3YXJkIF9zZXRJZ25vcmVzTm9uV2hlZWxN
b3VzZUV2ZW50cyB0byBfc2V0SWdub3Jlc05vbldoZWVsRXZlbnRzIHRvIGF2b2lkIGJyZWFraW5n
IGV4aXN0aW5nIGNsaWVudHMuCiAtICh2b2lkKV9zZXRJZ25vcmVzTm9uV2hlZWxNb3VzZUV2ZW50
czooQk9PTClpZ25vcmVzTm9uV2hlZWxNb3VzZUV2ZW50cwogewotICAgIFtzZWxmIF9zZXRJZ25v
cmVzTm9uV2hlZWxFdmVudHM6aWdub3Jlc05vbldoZWVsTW91c2VFdmVudHNdOworICAgIF9kYXRh
LT5faW1wbC0+c2V0SWdub3Jlc05vbldoZWVsRXZlbnRzKGlnbm9yZXNOb25XaGVlbE1vdXNlRXZl
bnRzKTsKIH0KIAogLSAodm9pZClfc2V0SWdub3Jlc05vbldoZWVsRXZlbnRzOihCT09MKWlnbm9y
ZXNOb25XaGVlbEV2ZW50cwogewotICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50
cyA9PSBpZ25vcmVzTm9uV2hlZWxFdmVudHMpCi0gICAgICAgIHJldHVybjsKLQotICAgIF9kYXRh
LT5faWdub3Jlc05vbldoZWVsRXZlbnRzID0gaWdub3Jlc05vbldoZWVsRXZlbnRzOwotICAgIF9k
YXRhLT5fcGFnZS0+c2V0U2hvdWxkRGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRzKCFpZ25vcmVz
Tm9uV2hlZWxFdmVudHMpOwotCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDEwMDAKLSAgICBpZiAoaWdub3Jlc05vbldoZWVsRXZlbnRzKQotICAgICAgICBbc2VsZiBy
ZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNv
Z25pemVyLmdldCgpXTsKLSAgICBlbHNlIGlmIChOU0dlc3R1cmVSZWNvZ25pemVyICppbW1lZGlh
dGVBY3Rpb25SZWNvZ25pemVyID0gX2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2du
aXplci5nZXQoKSkgewotICAgICAgICBpZiAoX2RhdGEtPl9hbGxvd3NMaW5rUHJldmlldykKLSAg
ICAgICAgICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOmltbWVkaWF0ZUFjdGlvblJlY29n
bml6ZXJdOwotICAgIH0KLSNlbmRpZgorICAgIF9kYXRhLT5faW1wbC0+c2V0SWdub3Jlc05vbldo
ZWVsRXZlbnRzKGlnbm9yZXNOb25XaGVlbEV2ZW50cyk7CiB9CiAKIC0gKEJPT0wpX2lnbm9yZXNO
b25XaGVlbEV2ZW50cwogewotICAgIHJldHVybiBfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50
czsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMoKTsKIH0K
IAogLSAoQk9PTClfaWdub3Jlc0FsbEV2ZW50cwogewotICAgIHJldHVybiBfZGF0YS0+X2lnbm9y
ZXNBbGxFdmVudHM7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+aWdub3Jlc0FsbEV2ZW50cygp
OwogfQogCiAtICh2b2lkKV9zZXRPdmVycmlkZURldmljZVNjYWxlRmFjdG9yOihDR0Zsb2F0KWRl
dmljZVNjYWxlRmFjdG9yCiB7Ci0gICAgX2RhdGEtPl9vdmVycmlkZURldmljZVNjYWxlRmFjdG9y
ID0gZGV2aWNlU2NhbGVGYWN0b3I7Ci0gICAgX2RhdGEtPl9wYWdlLT5zZXRJbnRyaW5zaWNEZXZp
Y2VTY2FsZUZhY3Rvcihbc2VsZiBfaW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3JdKTsKKyAgICBf
ZGF0YS0+X2ltcGwtPnNldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IoZGV2aWNlU2NhbGVGYWN0
b3IpOwogfQogCiAtIChDR0Zsb2F0KV9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yCiB7Ci0gICAg
cmV0dXJuIF9kYXRhLT5fb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjsKKyAgICByZXR1cm4gX2Rh
dGEtPl9pbXBsLT5vdmVycmlkZURldmljZVNjYWxlRmFjdG9yKCk7CiB9CiAKIC0gKFdLTGF5b3V0
TW9kZSlfbGF5b3V0TW9kZQpAQCAtNDE4NCwzMiArMzU1NiwxNCBAQCBzdGF0aWMgTlNTdHJpbmcg
KnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAgIF9kYXRh
LT5faW1wbC0+c2V0Vmlld1NjYWxlKHZpZXdTY2FsZSk7CiB9CiAKLS0gKHZvaWQpX2Rpc3BhdGNo
U2V0VG9wQ29udGVudEluc2V0Ci17Ci0gICAgaWYgKCFfZGF0YS0+X2RpZFNjaGVkdWxlU2V0VG9w
Q29udGVudEluc2V0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBfZGF0YS0+X2RpZFNjaGVkdWxl
U2V0VG9wQ29udGVudEluc2V0ID0gTk87Ci0gICAgX2RhdGEtPl9wYWdlLT5zZXRUb3BDb250ZW50
SW5zZXQoX2RhdGEtPl90b3BDb250ZW50SW5zZXQpOwotfQotCiAtICh2b2lkKV9zZXRUb3BDb250
ZW50SW5zZXQ6KENHRmxvYXQpY29udGVudEluc2V0CiB7Ci0gICAgX2RhdGEtPl90b3BDb250ZW50
SW5zZXQgPSBjb250ZW50SW5zZXQ7Ci0KLSAgICBpZiAoX2RhdGEtPl9kaWRTY2hlZHVsZVNldFRv
cENvbnRlbnRJbnNldCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgX2RhdGEtPl9kaWRTY2hlZHVs
ZVNldFRvcENvbnRlbnRJbnNldCA9IFlFUzsKLQotICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNo
X2dldF9tYWluX3F1ZXVlKCksIF57Ci0gICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldFRvcENvbnRl
bnRJbnNldF07Ci0gICAgfSk7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+c2V0VG9wQ29udGVu
dEluc2V0KGNvbnRlbnRJbnNldCk7CiB9CiAKIC0gKENHRmxvYXQpX3RvcENvbnRlbnRJbnNldAog
ewotICAgIHJldHVybiBfZGF0YS0+X3RvcENvbnRlbnRJbnNldDsKKyAgICByZXR1cm4gX2RhdGEt
Pl9pbXBsLT50b3BDb250ZW50SW5zZXQoKTsKIH0KIAogLSAodm9pZClfc2V0VG90YWxIZWlnaHRP
ZkJhbm5lcnM6KENHRmxvYXQpdG90YWxIZWlnaHRPZkJhbm5lcnMKQEAgLTQ0ODcsNDkgKzM4NDEs
MjQgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0
cmluZyAqcGF0aCkKIAogLSAodm9pZClfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93
cwogewotICAgIC8vIEZJWE1FOiBXZSBkb24ndCBrbm93IHdoaWNoIHBhbmVsIHdlIGFyZSBkaXNt
aXNzaW5nLCBpdCBtYXkgbm90IGV2ZW4gYmUgaW4gdGhlIGN1cnJlbnQgcGFnZSAoc2VlIDxyZGFy
Oi8vcHJvYmxlbS8xMzg3NTc2Nj4pLgotICAgIGlmIChbW3NlbGYgd2luZG93XSBpc0tleVdpbmRv
d10KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAotICAgICAg
ICB8fCBbX2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGhhc0FjdGl2ZUltbWVkaWF0
ZUFjdGlvbl0KLSNlbmRpZgotICAgICAgICApIHsKLSAgICAgICAgRGljdGlvbmFyeUxvb2t1cDo6
aGlkZVBvcHVwKCk7Ci0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTAwMAotICAgICAgICBEREFjdGlvbnNNYW5hZ2VyICphY3Rpb25zTWFuYWdlciA9IFtnZXREREFj
dGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXTsKLSAgICAgICAgaWYgKFthY3Rpb25z
TWFuYWdlciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHJlcXVlc3RCdWJibGVDbG9zdXJl
VW5hbmNob3JPbkZhaWx1cmU6KV0pCi0gICAgICAgICAgICBbYWN0aW9uc01hbmFnZXIgcmVxdWVz
dEJ1YmJsZUNsb3N1cmVVbmFuY2hvck9uRmFpbHVyZTpZRVNdOwotI2VuZGlmCi0gICAgfQotCi0g
ICAgW3NlbGYgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246VGV4dEluZGljYXRvcldp
bmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07Ci0KLSNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAotICAgIFtfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkNv
bnRyb2xsZXIgZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c107Ci0jZW5kaWYKLQot
ICAgIHN0YXRpY19jYXN0PFBhZ2VDbGllbnQmPigqX2RhdGEtPl9wYWdlQ2xpZW50KS5kaXNtaXNz
Q29ycmVjdGlvblBhbmVsKFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25vcmVk
KTsKKyAgICBfZGF0YS0+X2ltcGwtPmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NG
cm9tVmlld09ubHkoKTsKIH0KIAogLSAodm9pZClfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxk
V2luZG93c1dpdGhBbmltYXRpb246KEJPT0wpd2l0aEFuaW1hdGlvbgogewotICAgIC8vIENhbGxp
bmcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24gaGVyZSB3aWxsIHdpbiBvdXQgb3Zl
ciB0aGUgYW5pbWF0ZWQgY2xlYXIgaW4gX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRv
d3MuCi0gICAgLy8gV2UgY2FuJ3QgaW52ZXJ0IHRoZXNlIGJlY2F1c2UgY2xpZW50cyBjYW4gb3Zl
cnJpZGUgKGFuZCBoYXZlIG92ZXJyaWRkZW4pIF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRX
aW5kb3dzLCBzbyBpdCBuZWVkcyB0byBiZSBjYWxsZWQuCi0gICAgW3NlbGYgX2NsZWFyVGV4dElu
ZGljYXRvcldpdGhBbmltYXRpb246d2l0aEFuaW1hdGlvbiA/IFRleHRJbmRpY2F0b3JXaW5kb3dE
aXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQgOiBUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpOb25lXTsKLSAgICBbc2VsZiBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxk
V2luZG93c107CisgICAgX2RhdGEtPl9pbXBsLT5kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRX
aW5kb3dzV2l0aEFuaW1hdGlvbkZyb21WaWV3T25seSh3aXRoQW5pbWF0aW9uKTsKIH0KIAogI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCiAKIC0gKHZvaWQpX3Nl
dEF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0czooQk9PTClhdXRvbWF0aWNhbGx5QWRq
dXN0c0NvbnRlbnRJbnNldHMKIHsKLSAgICBfZGF0YS0+X2F1dG9tYXRpY2FsbHlBZGp1c3RzQ29u
dGVudEluc2V0cyA9IGF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0czsKLSAgICBbc2Vs
ZiBfdXBkYXRlQ29udGVudEluc2V0c0lmQXV0b21hdGljXTsKKyAgICBfZGF0YS0+X2ltcGwtPnNl
dEF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cyhhdXRvbWF0aWNhbGx5QWRqdXN0c0Nv
bnRlbnRJbnNldHMpOwogfQogCiAtIChCT09MKV9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJ
bnNldHMKIHsKLSAgICByZXR1cm4gX2RhdGEtPl9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJ
bnNldHM7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+YXV0b21hdGljYWxseUFkanVzdHNDb250
ZW50SW5zZXRzKCk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKaW5kZXggOTcwMGNhZmM3OWY1NzcxOTA2YmIwOTY1
ODFjNjgzMGU3NDJhZDFlZC4uMjhlNWI3NzJmMTdmMzEwZDZlZjk5ZWQ5NjdlODVmYjMwNGNjMTZl
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50
ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRl
cm5hbC5oCkBAIC04MCwxOSArODAsMTIgQEAgc3RydWN0IEVkaXRvclN0YXRlOwogLSAodm9pZClf
cHJvY2Vzc0RpZEV4aXQ7CiAtICh2b2lkKV9wYWdlQ2xvc2VkOwogLSAodm9pZClfZGlkUmVsYXVu
Y2hQcm9jZXNzOwotLSAodm9pZClfcHJlZmVyZW5jZXNEaWRDaGFuZ2U7CiAtICh2b2lkKV90b29s
VGlwQ2hhbmdlZEZyb206KE5TU3RyaW5nICopb2xkVG9vbFRpcCB0bzooTlNTdHJpbmcgKiluZXdU
b29sVGlwOwogLSAodm9pZClfc2V0VXNlckludGVyZmFjZUl0ZW1TdGF0ZTooTlNTdHJpbmcgKilj
b21tYW5kTmFtZSBlbmFibGVkOihCT09MKWlzRW5hYmxlZCBzdGF0ZTooaW50KW5ld1N0YXRlOwog
LSAodm9pZClfZG9uZVdpdGhLZXlFdmVudDooTlNFdmVudCAqKWV2ZW50IGV2ZW50V2FzSGFuZGxl
ZDooQk9PTClldmVudFdhc0hhbmRsZWQ7CiAtIChib29sKV9leGVjdXRlU2F2ZWRDb21tYW5kQnlT
ZWxlY3RvcjooU0VMKXNlbGVjdG9yOwotLSAodm9pZClfc2V0SW50cmluc2ljQ29udGVudFNpemU6
KE5TU2l6ZSlpbnRyaW5zaWNDb250ZW50U2l6ZTsKIC0gKE5TUmVjdClfY29udmVydFRvRGV2aWNl
U3BhY2U6KE5TUmVjdClyZWN0OwogLSAoTlNSZWN0KV9jb252ZXJ0VG9Vc2VyU3BhY2U6KE5TUmVj
dClyZWN0OwotLSAodm9pZClfc2V0VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRv
ciYpdGV4dEluZGljYXRvcjsKLS0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOihXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yV2luZG93TGlmZXRpbWUpbGlmZXRpbWU7Ci0tICh2b2lkKV9jbGVhclRleHRJbmRpY2F0
b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5p
bWF0aW9uKWFuaW1hdGlvbjsKLS0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9n
cmVzczooZmxvYXQpcHJvZ3Jlc3M7Ci0tICh2b2lkKV9zZWxlY3Rpb25DaGFuZ2VkOwogCiAtICh2
b2lkKV9zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZVJvb3RMYXllcjooQ0FMYXllciAqKXJv
b3RMYXllcjsKIC0gKENBTGF5ZXIgKilfYWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVSb290TGF5
ZXI7CkBAIC0xMjksOSArMTIyLDYgQEAgc3RydWN0IEVkaXRvclN0YXRlOwogLSAodm9pZClfcmVw
YXJlbnRMYXllclRyZWVJblRodW1ibmFpbFZpZXc7CiAjZW5kaWYKIAotLSAodm9pZClfd2luZG93
RGlkT3JkZXJPblNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb247Ci0tICh2b2lk
KV93aW5kb3dEaWRPcmRlck9mZlNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb247
Ci0KIC0gKHZvaWQpX2FkZEZvbnRQYW5lbE9ic2VydmVyOwogLy8gRnVsbFNjcmVlbgogCkBAIC0x
MzksMjAgKzEyOSwxMiBAQCBzdHJ1Y3QgRWRpdG9yU3RhdGU7CiBAcHJvcGVydHkgKHJlYWRvbmx5
KSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyICpfZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXI7CiAtICh2b2lkKV9jbG9zZUZ1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyOwogCi0tICh2b2lk
KV9wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cDsKLQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0tICh2b2lkKV9kaWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9u
SGl0VGVzdDooY29uc3QgV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0RGF0YSYpaGl0VGVzdFJlc3Vs
dCBjb250ZW50UHJldmVudHNEZWZhdWx0OihCT09MKWNvbnRlbnRQcmV2ZW50c0RlZmF1bHQgdXNl
ckRhdGE6KEFQSTo6T2JqZWN0Kil1c2VyRGF0YTsKLSNlbmRpZgotCiAjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKIC0gKHZvaWQpX3N0YXJ0V2luZG93RHJhZzsK
ICNlbmRpZgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluLCBzZXR0ZXI9X3NldFByaW1h
cnlUcmFja2luZ0FyZWE6KSBOU1RyYWNraW5nQXJlYSAqX3ByaW1hcnlUcmFja2luZ0FyZWE7CiAK
LUBwcm9wZXJ0eSAocmVhZG9ubHkpIE5TV2luZG93ICpfdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBh
cmF0aW9uOwotCiAjaWYgV0tfQVBJX0VOQUJMRUQKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKl9yZW1vdGVPYmplY3RSZWdpc3RyeTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRl
eCA0OTEyOTgyMjI3NjUwNDRjM2Q0ZGNjODdjYTE3YWIyNGZjZGE4Zjk2Li5lMDAxNWVhODE3YmNj
NWM1YzY5YmQzZDE2MGI3YmYwNzdlNGIxYTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtMjgsMjkgKzI4LDUyIEBACiAKICNpZiBQTEFURk9S
TShNQUMpCiAKLSNpbXBvcnQgIldLTGF5b3V0TW9kZS5oIgotI2ltcG9ydCA8d3RmL1JldGFpblB0
ci5oPgotCisjaW5jbHVkZSAiV0tMYXlvdXRNb2RlLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yV2luZG93Lmg+CisjaW5jbHVkZSA8
ZnVuY3Rpb25hbD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworT0JKQ19DTEFTUyBO
U0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyOwogT0JKQ19DTEFTUyBOU1RleHRJbnB1
dENvbnRleHQ7CiBPQkpDX0NMQVNTIE5TVmlldzsKK09CSkNfQ0xBU1MgV0tFZGl0b3JVbmRvVGFy
Z2V0T2JqQzsKIE9CSkNfQ0xBU1MgV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcjsKK09CSkNf
Q0xBU1MgV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyOwogT0JKQ19DTEFTUyBXS1ZpZXdMYXlv
dXRTdHJhdGVneTsKK09CSkNfQ0xBU1MgV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXI7CiAKIEBw
cm90b2NvbCBXZWJWaWV3SW1wbERlbGVnYXRlCiAKIC0gKE5TVGV4dElucHV0Q29udGV4dCAqKV9z
dXBlcklucHV0Q29udGV4dDsKKy0gKHZvaWQpX3N1cGVyUXVpY2tMb29rV2l0aEV2ZW50OihOU0V2
ZW50ICopZXZlbnQ7CisKKy8vIFRoaXMgaXMgYSBoYWNrOyB0aGVzZSB0aGluZ3MgbGl2ZSBjYW4g
bGl2ZSBvbiBhIGNhdGVnb3J5IChlLmcuIFdLVmlldyAoUHJpdmF0ZSkpIGJ1dCBXS1ZpZXcgaXRz
ZWxmIGNvbmZvcm1zIHRvIHRoaXMgcHJvdG9jb2wuCisvLyBUaGV5J3JlIG5vdCBhY3R1YWxseSBv
cHRpb25hbC4KK0BvcHRpb25hbAorCistIChpZClfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29u
dHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6KFdLSGl0VGVzdFJlc3VsdFJlZiloaXRUZXN0UmVzdWx0
IHdpdGhUeXBlOih1aW50MzJfdCl0eXBlIHVzZXJEYXRhOihXS1R5cGVSZWYpdXNlckRhdGE7Cist
ICh2b2lkKV9wcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uOworLSAodm9pZClfY2Fu
Y2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uOworLSAodm9pZClfY29tcGxldGVJbW1lZGlhdGVB
Y3Rpb25BbmltYXRpb247CistICh2b2lkKV9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5k
b3dzOworLSAodm9pZClfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmlt
YXRpb246KEJPT0wpYW5pbWF0ZTsKIAogQGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xh
c3MgV2ViRWRpdENvbW1hbmRQcm94eTsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKK3N0cnVjdCBDb2xv
clNwYWNlRGF0YTsKIAogY2xhc3MgV2ViVmlld0ltcGwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYlZpZXdJbXBsKTsKIHB1YmxpYzoK
LSAgICBXZWJWaWV3SW1wbChOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICosIFdlYlBhZ2VQ
cm94eSYpOworICAgIFdlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKiwg
V2ViUGFnZVByb3h5JiwgUGFnZUNsaWVudCYpOwogCiAgICAgfldlYlZpZXdJbXBsKCk7CiAKQEAg
LTY3LDE3ICs5MCwyNSBAQCBwdWJsaWM6CiAgICAgdm9pZCB2aWV3V2lsbFN0YXJ0TGl2ZVJlc2l6
ZSgpOwogICAgIHZvaWQgdmlld0RpZEVuZExpdmVSZXNpemUoKTsKIAorICAgIHZvaWQgcmVuZXdH
U3RhdGUoKTsKICAgICB2b2lkIHNldEZyYW1lU2l6ZShDR1NpemUpOwogICAgIHZvaWQgZGlzYWJs
ZUZyYW1lU2l6ZVVwZGF0ZXMoKTsKICAgICB2b2lkIGVuYWJsZUZyYW1lU2l6ZVVwZGF0ZXMoKTsK
ICAgICBib29sIGZyYW1lU2l6ZVVwZGF0ZXNEaXNhYmxlZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0
RnJhbWVBbmRTY3JvbGxCeShDR1JlY3QsIENHU2l6ZSk7CisgICAgdm9pZCB1cGRhdGVXaW5kb3dB
bmRWaWV3RnJhbWVzKCk7CiAKICAgICB2b2lkIHNldEZpeGVkTGF5b3V0U2l6ZShDR1NpemUpOwog
ICAgIENHU2l6ZSBmaXhlZExheW91dFNpemUoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0RHJhd2lu
Z0FyZWFTaXplKENHU2l6ZSk7CiAKKyAgICB2b2lkIHNldEF1dG9tYXRpY2FsbHlBZGp1c3RzQ29u
dGVudEluc2V0cyhib29sKTsKKyAgICBib29sIGF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudElu
c2V0cygpIGNvbnN0IHsgcmV0dXJuIG1fYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRz
OyB9CisgICAgdm9pZCB1cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWMoKTsKKyAgICB2b2lk
IHNldFRvcENvbnRlbnRJbnNldChDR0Zsb2F0KTsKKyAgICBDR0Zsb2F0IHRvcENvbnRlbnRJbnNl
dCgpIGNvbnN0IHsgcmV0dXJuIG1fdG9wQ29udGVudEluc2V0OyB9CisKICAgICB2b2lkIHNldENv
bnRlbnRQcmVwYXJhdGlvblJlY3QoQ0dSZWN0KTsKICAgICB2b2lkIHVwZGF0ZVZpZXdFeHBvc2Vk
UmVjdCgpOwogICAgIHZvaWQgc2V0Q2xpcHNUb1Zpc2libGVSZWN0KGJvb2wpOwpAQCAtOTMsMTEg
KzEyNCw0NSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRMYXlvdXRNb2RlKFdLTGF5b3V0TW9kZSk7
CiAgICAgdm9pZCB1cGRhdGVTdXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCk7CiAKKyAgICB2
b2lkIHNldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IoQ0dGbG9hdCk7CisgICAgQ0dGbG9hdCBv
dmVycmlkZURldmljZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9vdmVycmlkZURldmlj
ZVNjYWxlRmFjdG9yOyB9CisKKyAgICB2b2lkIHdpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuKCk7Cisg
ICAgdm9pZCB3aW5kb3dEaWRPcmRlck9uU2NyZWVuKCk7CisgICAgdm9pZCB3aW5kb3dEaWRCZWNv
bWVLZXkoTlNXaW5kb3cgKik7CisgICAgdm9pZCB3aW5kb3dEaWRSZXNpZ25LZXkoTlNXaW5kb3cg
Kik7CisgICAgdm9pZCB3aW5kb3dEaWRNaW5pYXR1cml6ZSgpOworICAgIHZvaWQgd2luZG93RGlk
RGVtaW5pYXR1cml6ZSgpOworICAgIHZvaWQgd2luZG93RGlkTW92ZSgpOworICAgIHZvaWQgd2lu
ZG93RGlkUmVzaXplKCk7CisgICAgdm9pZCB3aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGll
cyhDR0Zsb2F0IG9sZEJhY2tpbmdTY2FsZUZhY3Rvcik7CisgICAgdm9pZCB3aW5kb3dEaWRDaGFu
Z2VTY3JlZW4oKTsKKyAgICB2b2lkIHdpbmRvd0RpZENoYW5nZUxheWVySG9zdGluZygpOworICAg
IHZvaWQgd2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3RhdGUoKTsKKworICAgIHZvaWQgdmlld1dp
bGxNb3ZlVG9XaW5kb3coTlNXaW5kb3cgKik7CisgICAgdm9pZCB2aWV3RGlkTW92ZVRvV2luZG93
KCk7CisgICAgdm9pZCB2aWV3RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXMoKTsKKworICAgIENv
bG9yU3BhY2VEYXRhIGNvbG9yU3BhY2UoKTsKKworICAgIHZvaWQgYmVnaW5EZWZlcnJpbmdWaWV3
SW5XaW5kb3dDaGFuZ2VzKCk7CisgICAgLy8gRklYTUU6IE1lcmdlIHRoZXNlIHR3bz8KKyAgICB2
b2lkIGVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMoKTsKKyAgICB2b2lkIGVuZERlZmVy
cmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNTeW5jKCk7CisgICAgYm9vbCBpc0RlZmVycmluZ1ZpZXdJ
bldpbmRvd0NoYW5nZXMoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZERlZmVyVmlld0luV2luZG93
Q2hhbmdlczsgfQorCisgICAgdm9pZCBwcmVwYXJlRm9yTW92ZVRvV2luZG93KE5TV2luZG93ICp0
YXJnZXRXaW5kb3csIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uSGFuZGxlcik7Cisg
ICAgTlNXaW5kb3cgKnRhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uOyB9CisKICAgICB2b2lkIHVwZGF0
ZVNlY3VyZUlucHV0U3RhdGUoKTsKICAgICB2b2lkIHJlc2V0U2VjdXJlSW5wdXRTdGF0ZSgpOwog
ICAgIGJvb2wgaW5TZWN1cmVJbnB1dFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9pblNlY3VyZUlu
cHV0U3RhdGU7IH0KICAgICB2b2lkIG5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29t
cG9zaXRpb24oKTsKIAorICAgIHZvaWQgcHJlc3N1cmVDaGFuZ2VXaXRoRXZlbnQoTlNFdmVudCAq
KTsKKyAgICBOU0V2ZW50ICpsYXN0UHJlc3N1cmVFdmVudCgpIHsgcmV0dXJuIG1fbGFzdFByZXNz
dXJlRXZlbnQuZ2V0KCk7IH0KKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBib29s
IGhhc0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKCkgY29uc3Q7CiAgICAgV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlciAqZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKTsKQEAgLTEwNiwz
MyArMTcxLDExNCBAQCBwdWJsaWM6CiAgICAgTlNWaWV3ICpmdWxsU2NyZWVuUGxhY2Vob2xkZXJW
aWV3KCk7CiAgICAgTlNXaW5kb3cgKmNyZWF0ZUZ1bGxTY3JlZW5XaW5kb3coKTsKIAorICAgIGJv
b2wgaXNFZGl0YWJsZSgpIGNvbnN0OworICAgIHZvaWQgZXhlY3V0ZUVkaXRDb21tYW5kKGNvbnN0
IFN0cmluZyYgY29tbWFuZE5hbWUsIGNvbnN0IFN0cmluZyYgYXJndW1lbnQgPSBTdHJpbmcoKSk7
CisgICAgdm9pZCByZWdpc3RlckVkaXRDb21tYW5kKFJlZlB0cjxXZWJFZGl0Q29tbWFuZFByb3h5
PiwgV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKTsKKyAgICB2b2lkIGNsZWFyQWxsRWRpdENvbW1h
bmRzKCk7CisgICAgYm9vbCB3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChOU1Bhc3RlYm9hcmQg
KiwgTlNBcnJheSAqdHlwZXMpOworICAgIHZvaWQgY2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJl
YSgpOworICAgIHZvaWQgc2VsZWN0aW9uRGlkQ2hhbmdlKCk7CisgICAgdm9pZCBzdGFydE9ic2Vy
dmluZ0ZvbnRQYW5lbCgpOworICAgIHZvaWQgdXBkYXRlRm9udFBhbmVsSWZOZWVkZWQoKTsKKwor
ICAgIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsKKworICAgIHZvaWQgc2V0VGV4dEluZGlj
YXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0xpZmV0aW1lID0gV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5l
bnQpOworICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKTsKKyAgICB2b2lkIHNldFRleHRJ
bmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCk7CisgICAgdm9pZCBkaXNtaXNzQ29udGVu
dFJlbGF0aXZlQ2hpbGRXaW5kb3dzKCk7CisgICAgdm9pZCBkaXNtaXNzQ29udGVudFJlbGF0aXZl
Q2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5KCk7CisgICAgdm9pZCBkaXNtaXNzQ29udGVudFJlbGF0
aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbihib29sKTsKKyAgICB2b2lkIGRpc21pc3NDb250
ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uRnJvbVZpZXdPbmx5KGJvb2wpOwor
CisgICAgdm9pZCBxdWlja0xvb2tXaXRoRXZlbnQoTlNFdmVudCAqKTsKKyAgICB2b2lkIHByZXBh
cmVGb3JEaWN0aW9uYXJ5TG9va3VwKCk7CisgICAgdm9pZCBzZXRBbGxvd3NMaW5rUHJldmlldyhi
b29sKTsKKyAgICBib29sIGFsbG93c0xpbmtQcmV2aWV3KCkgY29uc3QgeyByZXR1cm4gbV9hbGxv
d3NMaW5rUHJldmlldzsgfQorICAgIHZvaWQqIGltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRy
b2xsZXJGb3JIaXRUZXN0UmVzdWx0KFdLSGl0VGVzdFJlc3VsdFJlZiwgdWludDMyX3QgdHlwZSwg
V0tUeXBlUmVmIHVzZXJEYXRhKTsKKyAgICB2b2lkKiBpbW1lZGlhdGVBY3Rpb25BbmltYXRpb25D
b250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdEZyb21WaWV3T25seShXS0hpdFRlc3RSZXN1bHRSZWYs
IHVpbnQzMl90IHR5cGUsIFdLVHlwZVJlZiB1c2VyRGF0YSk7CisgICAgdm9pZCBkaWRQZXJmb3Jt
SW1tZWRpYXRlQWN0aW9uSGl0VGVzdChjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYsIGJvb2wg
Y29udGVudFByZXZlbnRzRGVmYXVsdCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKTsKKyAgICB2b2lk
IHByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24oKTsKKyAgICB2b2lkIGNhbmNlbElt
bWVkaWF0ZUFjdGlvbkFuaW1hdGlvbigpOworICAgIHZvaWQgY29tcGxldGVJbW1lZGlhdGVBY3Rp
b25BbmltYXRpb24oKTsKKworICAgIHZvaWQgc2V0SWdub3Jlc05vbldoZWVsRXZlbnRzKGJvb2wp
OworICAgIGJvb2wgaWdub3Jlc05vbldoZWVsRXZlbnRzKCkgY29uc3QgeyByZXR1cm4gbV9pZ25v
cmVzTm9uV2hlZWxFdmVudHM7IH0KKyAgICB2b2lkIHNldElnbm9yZXNBbGxFdmVudHMoYm9vbCk7
CisgICAgYm9vbCBpZ25vcmVzQWxsRXZlbnRzKCkgY29uc3QgeyByZXR1cm4gbV9pZ25vcmVzQWxs
RXZlbnRzOyB9CisKKyAgICB2b2lkIGFjY2Vzc2liaWxpdHlSZWdpc3RlclVJUHJvY2Vzc1Rva2Vu
cygpOworCiBwcml2YXRlOgorICAgIFdlYWtQdHI8V2ViVmlld0ltcGw+IGNyZWF0ZVdlYWtQdHIo
KSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorCiAgICAgYm9v
bCBzdXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCkgY29uc3Q7CisgICAgZmxvYXQgaW50cmlu
c2ljRGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdDsKKyAgICB2b2lkIGRpc3BhdGNoU2V0VG9wQ29u
dGVudEluc2V0KCk7CisKKyAgICB2b2lkIHBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3ND
aGFuZ2VkRXZlbnQoTlNFdmVudCAqKTsKIAogICAgIE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0
ZT4gKm1fdmlldzsKICAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKKyAgICBQYWdlQ2xpZW50JiBt
X3BhZ2VDbGllbnQ7CisKKyAgICBXZWFrUHRyRmFjdG9yeTxXZWJWaWV3SW1wbD4gbV93ZWFrUHRy
RmFjdG9yeTsKIAogICAgIGJvb2wgbV93aWxsQmVjb21lRmlyc3RSZXNwb25kZXJBZ2FpbiB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2luQmVjb21lRmlyc3RSZXNwb25kZXIgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9pblJlc2lnbkZpcnN0UmVzcG9uZGVyIHsgZmFsc2UgfTsKIAotICAgIENHUmVjdCBt
X2NvbnRlbnRQcmVwYXJhdGlvblJlY3Q7CisgICAgQ0dSZWN0IG1fY29udGVudFByZXBhcmF0aW9u
UmVjdCB7IHswLCAwfSwgezAsIDB9IH07CiAgICAgYm9vbCBtX3VzZUNvbnRlbnRQcmVwYXJhdGlv
blJlY3RGb3JWaXNpYmxlUmVjdCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2NsaXBzVG9WaXNpYmxl
UmVjdCB7IGZhbHNlIH07CisgICAgYm9vbCBtX25lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGlu
YXRlczsKKyAgICBib29sIG1fZGlkU2NoZWR1bGVXaW5kb3dBbmRWaWV3RnJhbWVVcGRhdGUgeyBm
YWxzZSB9OworICAgIGJvb2wgbV9pc0RlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMgeyBmYWxz
ZSB9OworCisgICAgYm9vbCBtX2F1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cyB7IGZh
bHNlIH07CisgICAgQ0dGbG9hdCBtX3RvcENvbnRlbnRJbnNldCB7IDAgfTsKKyAgICBib29sIG1f
ZGlkU2NoZWR1bGVTZXRUb3BDb250ZW50SW5zZXQgeyBmYWxzZSB9OwogCi0gICAgQ0dTaXplIG1f
cmVzaXplU2Nyb2xsT2Zmc2V0OworICAgIENHU2l6ZSBtX3Jlc2l6ZVNjcm9sbE9mZnNldCB7IDAs
IDAgfTsKIAotICAgIENHU2l6ZSBtX2ludHJpbnNpY0NvbnRlbnRTaXplOworICAgIENHU2l6ZSBt
X2ludHJpbnNpY0NvbnRlbnRTaXplIHsgMCwgMCB9OworICAgIENHRmxvYXQgbV9vdmVycmlkZURl
dmljZVNjYWxlRmFjdG9yIHsgMCB9OwogCiAgICAgUmV0YWluUHRyPFdLVmlld0xheW91dFN0cmF0
ZWd5PiBtX2xheW91dFN0cmF0ZWd5OwogICAgIFdLTGF5b3V0TW9kZSBtX2xhc3RSZXF1ZXN0ZWRM
YXlvdXRNb2RlIHsga1dLTGF5b3V0TW9kZVZpZXdTaXplIH07CiAgICAgQ0dGbG9hdCBtX2xhc3RS
ZXF1ZXN0ZWRWaWV3U2NhbGUgeyAxIH07CiAKICAgICBib29sIG1faW5TZWN1cmVJbnB1dFN0YXRl
IHsgZmFsc2UgfTsKKyAgICBSZXRhaW5QdHI8V0tFZGl0b3JVbmRvVGFyZ2V0T2JqQz4gbV91bmRv
VGFyZ2V0OwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIFJldGFpblB0cjxXS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyPiBtX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyOwog
I2VuZGlmCisKKyAgICBSZXRhaW5QdHI8V0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXI+IG1fd2lu
ZG93VmlzaWJpbGl0eU9ic2VydmVyOworCisgICAgYm9vbCBtX3Nob3VsZERlZmVyVmlld0luV2lu
ZG93Q2hhbmdlcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX3ZpZXdJbldpbmRvd0NoYW5nZVdhc0Rl
ZmVycmVkIHsgZmFsc2UgfTsKKyAgICBOU1dpbmRvdyAqbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJl
cGFyYXRpb24geyBudWxscHRyIH07CisKKyAgICBpZCBtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRv
ciB7IG51bGxwdHIgfTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yV2luZG93PiBtX3RleHRJbmRpY2F0b3JXaW5kb3c7CisKKyAgICBSZXRhaW5QdHI8TlNDb2xv
clNwYWNlPiBtX2NvbG9yU3BhY2U7CisKKyAgICBSZXRhaW5QdHI8TlNFdmVudD4gbV9sYXN0UHJl
c3N1cmVFdmVudDsKKworICAgIGJvb2wgbV9pZ25vcmVzTm9uV2hlZWxFdmVudHMgeyBmYWxzZSB9
OworICAgIGJvb2wgbV9pZ25vcmVzQWxsRXZlbnRzIHsgZmFsc2UgfTsKKworI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCisgICAgUmV0YWluUHRyPFdLSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlcj4gbV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyOworICAgIFJl
dGFpblB0cjxOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyPiBtX2ltbWVkaWF0ZUFj
dGlvbkdlc3R1cmVSZWNvZ25pemVyOworI2VuZGlmCisKKyAgICBib29sIG1fYWxsb3dzTGlua1By
ZXZpZXcgeyB0cnVlIH07CisgICAgYm9vbCBtX2RpZFJlZ2lzdGVyRm9yTG9va3VwUG9wb3ZlckNs
b3NlTm90aWZpY2F0aW9ucyB7IGZhbHNlIH07CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5k
ZXggOWIyZTZlMmVkN2MxNmQ0OTgyZDAwZTE1NWQxNTA5MzI3OTcyYzEyMi4uOTg3NzRjODJjODVj
MWNmZDZjYWFlODdmM2I3Y2NiY2ZiZjEwNmE3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMjgsMjggKzI4LDI5NSBAQAogCiAjaWYgUExB
VEZPUk0oTUFDKQogCisjaW1wb3J0ICJDb2xvclNwYWNlRGF0YS5oIgogI2ltcG9ydCAiR2VuZXJp
Y0NhbGxiYWNrLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJOYXRpdmVXZWJLZXli
b2FyZEV2ZW50LmgiCisjaW1wb3J0ICJOYXRpdmVXZWJNb3VzZUV2ZW50LmgiCisjaW1wb3J0ICJQ
YWdlQ2xpZW50LmgiCiAjaW1wb3J0ICJXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmgiCisj
aW1wb3J0ICJXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLVmlld0xh
eW91dFN0cmF0ZWd5LmgiCiAjaW1wb3J0ICJXS1dlYlZpZXcuaCIKKyNpbXBvcnQgIldlYkVkaXRD
b21tYW5kUHJveHkuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCA8SElUb29s
Ym94L0NhcmJvbkV2ZW50c0NvcmUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQVhPYmplY3RDYWNoZS5o
PgorI2ltcG9ydCA8V2ViQ29yZS9EYXRhRGV0ZWN0b3JzU1BJLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0RpY3Rpb25hcnlMb29rdXAuaD4KICNpbXBvcnQgPFdlYkNvcmUvS2V5cHJlc3NDb21tYW5kLmg+
CisjaW1wb3J0IDxXZWJDb3JlL0xvb2t1cFNQSS5oPgorI2ltcG9ydCA8V2ViQ29yZS9OU0ltbWVk
aWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05TV2lu
ZG93U1BJLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1ZpZXdTdGF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlRnVsbFNjcmVlblBsYWNl
aG9sZGVyVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5o
PgorI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisKK1NPRlRfTElOS19DT05TVEFO
VF9NQVlfRkFJTChMb29rdXAsIExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9zZSwgTlNTdHJp
bmcgKikKKworQGludGVyZmFjZSBXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciA6IE5TT2JqZWN0
IHsKKyAgICBOU1ZpZXcgKl92aWV3OworICAgIFdlYktpdDo6V2ViVmlld0ltcGwgKl9pbXBsOwor
fQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihOU1ZpZXcgKil2aWV3IGltcGw6KFdl
YktpdDo6V2ViVmlld0ltcGwmKWltcGw7CistICh2b2lkKXN0YXJ0T2JzZXJ2aW5nOihOU1dpbmRv
dyAqKXdpbmRvdzsKKy0gKHZvaWQpc3RvcE9ic2VydmluZzooTlNXaW5kb3cgKil3aW5kb3c7Cist
ICh2b2lkKXN0YXJ0T2JzZXJ2aW5nRm9udFBhbmVsOworLSAodm9pZClzdGFydE9ic2VydmluZ0xv
b2t1cERpc21pc3NhbDsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLV2luZG93VmlzaWJpbGl0
eU9ic2VydmVyCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFZpZXc6KE5TVmlldyAqKXZpZXcg
aW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpaW1wbAoreworICAgIHNlbGYgPSBbc3VwZXIgaW5p
dF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX3ZpZXcgPSB2
aWV3OworICAgIF9pbXBsID0gJmltcGw7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9p
ZClkZWFsbG9jCit7CisgICAgaWYgKGNhbkxvYWRMVU5vdGlmaWNhdGlvblBvcG92ZXJXaWxsQ2xv
c2UoKSkKKyAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1v
dmVPYnNlcnZlcjpzZWxmIG5hbWU6Z2V0TFVOb3RpZmljYXRpb25Qb3BvdmVyV2lsbENsb3NlKCkg
b2JqZWN0Om5pbF07CisKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAorc3RhdGljIHZvaWQqIGtleVZhbHVlT2Jz
ZXJ2aW5nQ29udGV4dCA9ICZrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQ7CisjZW5kaWYKKworLSAo
dm9pZClzdGFydE9ic2VydmluZzooTlNXaW5kb3cgKil3aW5kb3cKK3sKKyAgICBpZiAoIXdpbmRv
dykKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNOb3RpZmljYXRpb25DZW50ZXIgKmRlZmF1bHRO
b3RpZmljYXRpb25DZW50ZXIgPSBbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl07
CisKKyAgICAvLyBBbiBOU1ZpZXcgZGVyaXZlZCBvYmplY3Qgc3VjaCBhcyBXS1ZpZXcgY2Fubm90
IG9ic2VydmUgdGhlc2Ugbm90aWZpY2F0aW9ucywgYmVjYXVzZSBOU1ZpZXcgaXRzZWxmIG9ic2Vy
dmVzIHRoZW0uCisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgYWRkT2JzZXJ2ZXI6c2Vs
ZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuOikgbmFtZTpAIk5T
V2luZG93RGlkT3JkZXJPZmZTY3JlZW5Ob3RpZmljYXRpb24iIG9iamVjdDp3aW5kb3ddOworICAg
IFtkZWZhdWx0Tm90aWZpY2F0aW9uQ2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNl
bGVjdG9yKF93aW5kb3dEaWRPcmRlck9uU2NyZWVuOikgbmFtZTpAIl9OU1dpbmRvd0RpZEJlY29t
ZVZpc2libGUiIG9iamVjdDp3aW5kb3ddOworCisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50
ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZEJlY29tZUtl
eTopIG5hbWU6TlNXaW5kb3dEaWRCZWNvbWVLZXlOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07Cisg
ICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpA
c2VsZWN0b3IoX3dpbmRvd0RpZFJlc2lnbktleTopIG5hbWU6TlNXaW5kb3dEaWRSZXNpZ25LZXlO
b3RpZmljYXRpb24gb2JqZWN0Om5pbF07CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIg
YWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZE1pbmlhdHVyaXpl
OikgbmFtZTpOU1dpbmRvd0RpZE1pbmlhdHVyaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3dd
OworICAgIFtkZWZhdWx0Tm90aWZpY2F0aW9uQ2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0
b3I6QHNlbGVjdG9yKF93aW5kb3dEaWREZW1pbmlhdHVyaXplOikgbmFtZTpOU1dpbmRvd0RpZERl
bWluaWF0dXJpemVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3Rp
ZmljYXRpb25DZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRv
d0RpZE1vdmU6KSBuYW1lOk5TV2luZG93RGlkTW92ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93
XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVj
dG9yOkBzZWxlY3Rvcihfd2luZG93RGlkUmVzaXplOikgbmFtZTpOU1dpbmRvd0RpZFJlc2l6ZU5v
dGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRl
ciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkQ2hhbmdlQmFj
a2luZ1Byb3BlcnRpZXM6KSBuYW1lOk5TV2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXNO
b3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50
ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZENoYW5nZVNj
cmVlbjopIG5hbWU6TlNXaW5kb3dEaWRDaGFuZ2VTY3JlZW5Ob3RpZmljYXRpb24gb2JqZWN0Ondp
bmRvd107CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBz
ZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZENoYW5nZUxheWVySG9zdGluZzopIG5hbWU6QCJf
TlNXaW5kb3dEaWRDaGFuZ2VDb250ZW50c0hvc3RlZEluTGF5ZXJTdXJmYWNlTm90aWZpY2F0aW9u
IiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNl
cnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3Rh
dGU6KSBuYW1lOk5TV2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3RhdGVOb3RpZmljYXRpb24gb2Jq
ZWN0OndpbmRvd107CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEw
MDAKKyAgICBbd2luZG93IGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImNvbnRlbnRMYXlv
dXRSZWN0IiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25Jbml0aWFsIGNvbnRleHQ6
a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0XTsKKyAgICBbd2luZG93IGFkZE9ic2VydmVyOnNlbGYg
Zm9yS2V5UGF0aDpAInRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50IiBvcHRpb25zOk5TS2V5VmFs
dWVPYnNlcnZpbmdPcHRpb25Jbml0aWFsIGNvbnRleHQ6a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0
XTsKKyNlbmRpZgorfQorCistICh2b2lkKXN0b3BPYnNlcnZpbmc6KE5TV2luZG93ICopd2luZG93
Cit7CisgICAgaWYgKCF3aW5kb3cpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTm90aWZpY2F0
aW9uQ2VudGVyICpkZWZhdWx0Tm90aWZpY2F0aW9uQ2VudGVyID0gW05TTm90aWZpY2F0aW9uQ2Vu
dGVyIGRlZmF1bHRDZW50ZXJdOworCisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgcmVt
b3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOkAiTlNXaW5kb3dEaWRPcmRlck9mZlNjcmVlbk5vdGlmaWNh
dGlvbiIgb2JqZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgcmVt
b3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOkAiX05TV2luZG93RGlkQmVjb21lVmlzaWJsZSIgb2JqZWN0
OndpbmRvd107CisKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciByZW1vdmVPYnNlcnZl
cjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRCZWNvbWVLZXlOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07
CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1l
Ok5TV2luZG93RGlkUmVzaWduS2V5Tm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOworICAgIFtkZWZh
dWx0Tm90aWZpY2F0aW9uQ2VudGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0Rp
ZE1pbmlhdHVyaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOworICAgIFtkZWZhdWx0Tm90
aWZpY2F0aW9uQ2VudGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZERlbWlu
aWF0dXJpemVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmlj
YXRpb25DZW50ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkTW92ZU5vdGlm
aWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBy
ZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRSZXNpemVOb3RpZmljYXRpb24gb2Jq
ZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgcmVtb3ZlT2JzZXJ2
ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXNOb3RpZmljYXRp
b24gb2JqZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgcmVtb3Zl
T2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkQ2hhbmdlU2NyZWVuTm90aWZpY2F0aW9uIG9i
amVjdDp3aW5kb3ddOworICAgIFtkZWZhdWx0Tm90aWZpY2F0aW9uQ2VudGVyIHJlbW92ZU9ic2Vy
dmVyOnNlbGYgbmFtZTpAIl9OU1dpbmRvd0RpZENoYW5nZUNvbnRlbnRzSG9zdGVkSW5MYXllclN1
cmZhY2VOb3RpZmljYXRpb24iIG9iamVjdDp3aW5kb3ddOworICAgIFtkZWZhdWx0Tm90aWZpY2F0
aW9uQ2VudGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZENoYW5nZU9jY2x1
c2lvblN0YXRlTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOworI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCisgICAgaWYgKF9pbXBsLT5pc0VkaXRhYmxlKCkp
CisgICAgICAgIFtbTlNGb250UGFuZWwgc2hhcmVkRm9udFBhbmVsXSByZW1vdmVPYnNlcnZlcjpz
ZWxmIGZvcktleVBhdGg6QCJ2aXNpYmxlIiBjb250ZXh0OmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4
dF07CisgICAgW3dpbmRvdyByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJjb250ZW50
TGF5b3V0UmVjdCIgY29udGV4dDprZXlWYWx1ZU9ic2VydmluZ0NvbnRleHRdOworICAgIFt3aW5k
b3cgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidGl0bGViYXJBcHBlYXJzVHJhbnNw
YXJlbnQiIGNvbnRleHQ6a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0XTsKKyNlbmRpZgorfQorCist
ICh2b2lkKXN0YXJ0T2JzZXJ2aW5nRm9udFBhbmVsCit7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICBbW05TRm9udFBhbmVsIHNoYXJlZEZvbnRQYW5l
bF0gYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidmlzaWJsZSIgb3B0aW9uczowIGNvbnRl
eHQ6a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0XTsKKyNlbmRpZgorfQorCistICh2b2lkKXN0YXJ0
T2JzZXJ2aW5nTG9va3VwRGlzbWlzc2FsCit7CisgICAgaWYgKGNhbkxvYWRMVU5vdGlmaWNhdGlv
blBvcG92ZXJXaWxsQ2xvc2UoKSkKKyAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZh
dWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfZGljdGlvbmFy
eUxvb2t1cFBvcG92ZXJXaWxsQ2xvc2U6KSBuYW1lOmdldExVTm90aWZpY2F0aW9uUG9wb3Zlcldp
bGxDbG9zZSgpIG9iamVjdDpuaWxdOworfQorCistICh2b2lkKV93aW5kb3dEaWRPcmRlck9uU2Ny
ZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIF9pbXBsLT53aW5kb3dE
aWRPcmRlck9uU2NyZWVuKCk7Cit9CisKKy0gKHZvaWQpX3dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVu
OihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIF9pbXBsLT53aW5kb3dEaWRP
cmRlck9mZlNjcmVlbigpOworfQorCistICh2b2lkKV93aW5kb3dEaWRCZWNvbWVLZXk6KE5TTm90
aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgX2ltcGwtPndpbmRvd0RpZEJlY29tZUtl
eShbbm90aWZpY2F0aW9uIG9iamVjdF0pOworfQorCistICh2b2lkKV93aW5kb3dEaWRSZXNpZ25L
ZXk6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgX2ltcGwtPndpbmRvd0Rp
ZFJlc2lnbktleShbbm90aWZpY2F0aW9uIG9iamVjdF0pOworfQorCistICh2b2lkKV93aW5kb3dE
aWRNaW5pYXR1cml6ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBfaW1w
bC0+d2luZG93RGlkTWluaWF0dXJpemUoKTsKK30KKworLSAodm9pZClfd2luZG93RGlkRGVtaW5p
YXR1cml6ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBfaW1wbC0+d2lu
ZG93RGlkRGVtaW5pYXR1cml6ZSgpOworfQorCistICh2b2lkKV93aW5kb3dEaWRNb3ZlOihOU05v
dGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIF9pbXBsLT53aW5kb3dEaWRNb3ZlKCk7
Cit9CisKKy0gKHZvaWQpX3dpbmRvd0RpZFJlc2l6ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmlj
YXRpb24KK3sKKyAgICBfaW1wbC0+d2luZG93RGlkUmVzaXplKCk7Cit9CisKKy0gKHZvaWQpX3dp
bmRvd0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNh
dGlvbgoreworICAgIENHRmxvYXQgb2xkQmFja2luZ1NjYWxlRmFjdG9yID0gW1tub3RpZmljYXRp
b24udXNlckluZm8gb2JqZWN0Rm9yS2V5Ok5TQmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JL
ZXldIGRvdWJsZVZhbHVlXTsKKyAgICBfaW1wbC0+d2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3Bl
cnRpZXMob2xkQmFja2luZ1NjYWxlRmFjdG9yKTsKK30KKworLSAodm9pZClfd2luZG93RGlkQ2hh
bmdlU2NyZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIF9pbXBsLT53
aW5kb3dEaWRDaGFuZ2VTY3JlZW4oKTsKK30KKworLSAodm9pZClfd2luZG93RGlkQ2hhbmdlTGF5
ZXJIb3N0aW5nOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIF9pbXBsLT53
aW5kb3dEaWRDaGFuZ2VMYXllckhvc3RpbmcoKTsKK30KKworLSAodm9pZClfd2luZG93RGlkQ2hh
bmdlT2NjbHVzaW9uU3RhdGU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAg
X2ltcGwtPndpbmRvd0RpZENoYW5nZU9jY2x1c2lvblN0YXRlKCk7Cit9CisKKy0gKHZvaWQpb2Jz
ZXJ2ZVZhbHVlRm9yS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0OihpZClvYmpl
Y3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4dDoodm9pZCAqKWNvbnRleHQK
K3sKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAorICAgIGlm
IChjb250ZXh0ICE9IGtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dCkgeworICAgICAgICBbc3VwZXIg
b2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDprZXlQYXRoIG9mT2JqZWN0Om9iamVjdCBjaGFuZ2U6Y2hh
bmdlIGNvbnRleHQ6Y29udGV4dF07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAo
W2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAidmlzaWJsZSJdICYmIFtOU0ZvbnRQYW5lbCBzaGFy
ZWRGb250UGFuZWxFeGlzdHNdICYmIG9iamVjdCA9PSBbTlNGb250UGFuZWwgc2hhcmVkRm9udFBh
bmVsXSkgeworICAgICAgICBfaW1wbC0+dXBkYXRlRm9udFBhbmVsSWZOZWVkZWQoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAiY29u
dGVudExheW91dFJlY3QiXSB8fCBba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJ0aXRsZWJhckFw
cGVhcnNUcmFuc3BhcmVudCJdKQorICAgICAgICBfaW1wbC0+dXBkYXRlQ29udGVudEluc2V0c0lm
QXV0b21hdGljKCk7CisjZW5kaWYKK30KKworLSAodm9pZClfZGljdGlvbmFyeUxvb2t1cFBvcG92
ZXJXaWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgX2ltcGwt
PmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldp
bmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7Cit9CisKK0BlbmQKKworQGludGVyZmFjZSBX
S0VkaXRDb21tYW5kT2JqQyA6IE5TT2JqZWN0IHsKKyAgICBSZWZQdHI8V2ViS2l0OjpXZWJFZGl0
Q29tbWFuZFByb3h5PiBtX2NvbW1hbmQ7Cit9CistIChpZClpbml0V2l0aFdlYkVkaXRDb21tYW5k
UHJveHk6KFJlZlB0cjxXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk+KWNvbW1hbmQ7CistIChX
ZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHkqKWNvbW1hbmQ7CitAZW5kCisKK0BpbnRlcmZhY2Ug
V0tFZGl0b3JVbmRvVGFyZ2V0T2JqQyA6IE5TT2JqZWN0CistICh2b2lkKXVuZG9FZGl0aW5nOihp
ZClzZW5kZXI7CistICh2b2lkKXJlZG9FZGl0aW5nOihpZClzZW5kZXI7CitAZW5kCisKK0BpbXBs
ZW1lbnRhdGlvbiBXS0VkaXRDb21tYW5kT2JqQworCistIChpZClpbml0V2l0aFdlYkVkaXRDb21t
YW5kUHJveHk6KFJlZlB0cjxXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk+KWNvbW1hbmQKK3sK
KyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJu
IG5pbDsKKworICAgIG1fY29tbWFuZCA9IGNvbW1hbmQ7CisgICAgcmV0dXJuIHNlbGY7Cit9CisK
Ky0gKFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eSopY29tbWFuZAoreworICAgIHJldHVybiBt
X2NvbW1hbmQuZ2V0KCk7Cit9CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLRWRpdG9yVW5k
b1RhcmdldE9iakMKKworLSAodm9pZCl1bmRvRWRpdGluZzooaWQpc2VuZGVyCit7CisgICAgQVNT
RVJUKFtzZW5kZXIgaXNLaW5kT2ZDbGFzczpbV0tFZGl0Q29tbWFuZE9iakMgY2xhc3NdXSk7Cisg
ICAgW3NlbmRlciBjb21tYW5kXS0+dW5hcHBseSgpOworfQorCistICh2b2lkKXJlZG9FZGl0aW5n
OihpZClzZW5kZXIKK3sKKyAgICBBU1NFUlQoW3NlbmRlciBpc0tpbmRPZkNsYXNzOltXS0VkaXRD
b21tYW5kT2JqQyBjbGFzc11dKTsKKyAgICBbc2VuZGVyIGNvbW1hbmRdLT5yZWFwcGx5KCk7Cit9
CisKK0BlbmQKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYlZpZXdJbXBsOjpXZWJWaWV3SW1w
bChOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICp2aWV3LCBXZWJQYWdlUHJveHkmIHBhZ2Up
CitXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAq
dmlldywgV2ViUGFnZVByb3h5JiBwYWdlLCBQYWdlQ2xpZW50JiBwYWdlQ2xpZW50KQogICAgIDog
bV92aWV3KHZpZXcpCiAgICAgLCBtX3BhZ2UocGFnZSkKKyAgICAsIG1fcGFnZUNsaWVudChwYWdl
Q2xpZW50KQorICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQorICAgICwgbV9uZWVkc1ZpZXdG
cmFtZUluV2luZG93Q29vcmRpbmF0ZXMobV9wYWdlLnByZWZlcmVuY2VzKCkucGx1Z2luc0VuYWJs
ZWQoKSkKICAgICAsIG1faW50cmluc2ljQ29udGVudFNpemUoQ0dTaXplTWFrZShOU1ZpZXdOb0lu
c3RyaW5zaWNNZXRyaWMsIE5TVmlld05vSW5zdHJpbnNpY01ldHJpYykpCiAgICAgLCBtX2xheW91
dFN0cmF0ZWd5KFtXS1ZpZXdMYXlvdXRTdHJhdGVneSBsYXlvdXRTdHJhdGVneVdpdGhQYWdlOm1f
cGFnZSB2aWV3Om1fdmlldyB2aWV3SW1wbDoqdGhpcyBtb2RlOmtXS0xheW91dE1vZGVWaWV3U2l6
ZV0pCisgICAgLCBtX3VuZG9UYXJnZXQoYWRvcHROUyhbW1dLRWRpdG9yVW5kb1RhcmdldE9iakMg
YWxsb2NdIGluaXRdKSkKKyAgICAsIG1fd2luZG93VmlzaWJpbGl0eU9ic2VydmVyKGFkb3B0TlMo
W1tXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhWaWV3OnZpZXcgaW1w
bDoqdGhpc10pKQogeworICAgIG1fcGFnZS5zZXRJbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3Rvcihp
bnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcigpKTsKKworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMDAwCisgICAgaWYgKENsYXNzIGdlc3R1cmVDbGFzcyA9IE5TQ2xh
c3NGcm9tU3RyaW5nKEAiTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciIpKSB7Cisg
ICAgICAgIG1faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFsoTlNJ
bW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKVtnZXN0dXJlQ2xhc3MgYWxsb2NdIGlu
aXRdKTsKKyAgICAgICAgbV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyID0gYWRvcHROUyhbW1dL
SW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhQYWdlOm1fcGFnZSB2aWV3
Om1fdmlldyB2aWV3SW1wbDoqdGhpcyByZWNvZ25pemVyOm1faW1tZWRpYXRlQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXIuZ2V0KCldKTsKKyAgICAgICAgW21faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJl
Y29nbml6ZXIgc2V0RGVsZWdhdGU6bV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmdldCgpXTsK
KyAgICAgICAgW21faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgc2V0RGVsYXlzUHJp
bWFyeU1vdXNlQnV0dG9uRXZlbnRzOk5PXTsKKyAgICB9CisjZW5kaWYKIH0KIAogV2ViVmlld0lt
cGw6On5XZWJWaWV3SW1wbCgpCkBAIC01Nyw2ICszMjQsMTAgQEAgV2ViVmlld0ltcGw6On5XZWJW
aWV3SW1wbCgpCiAgICAgQVNTRVJUKCFtX2luU2VjdXJlSW5wdXRTdGF0ZSk7CiAKICAgICBbbV9s
YXlvdXRTdHJhdGVneSBpbnZhbGlkYXRlXTsKKworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxMDAwCisgICAgW21faW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciB3aWxs
RGVzdHJveVZpZXc6bV92aWV3XTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRE
cmF3c0JhY2tncm91bmQoYm9vbCBkcmF3c0JhY2tncm91bmQpCkBAIC04OSw3ICszNjAsNyBAQCBi
b29sIFdlYlZpZXdJbXBsOjpiZWNvbWVGaXJzdFJlc3BvbmRlcigpCiAgICAgLy8gSWYgd2UganVz
dCBiZWNhbWUgZmlyc3QgcmVzcG9uZGVyIGFnYWluLCB0aGVyZSBpcyBubyBuZWVkIHRvIGRvIGFu
eXRoaW5nLAogICAgIC8vIHNpbmNlIHJlc2lnbkZpcnN0UmVzcG9uZGVyIGhhcyBjb3JyZWN0bHkg
ZGV0ZWN0ZWQgdGhpcyBzaXR1YXRpb24uCiAgICAgaWYgKG1fd2lsbEJlY29tZUZpcnN0UmVzcG9u
ZGVyQWdhaW4pIHsKLSAgICAgICAgbV93aWxsQmVjb21lRmlyc3RSZXNwb25kZXJBZ2FpbiA9IE5P
OworICAgICAgICBtX3dpbGxCZWNvbWVGaXJzdFJlc3BvbmRlckFnYWluID0gZmFsc2U7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMTI4LDcgKzM5OSw3IEBAIGJvb2wgV2ViVmll
d0ltcGw6OnJlc2lnbkZpcnN0UmVzcG9uZGVyKCkKICAgICB9CiAjZW5kaWYKIAotICAgIG1fd2ls
bEJlY29tZUZpcnN0UmVzcG9uZGVyQWdhaW4gPSBOTzsKKyAgICBtX3dpbGxCZWNvbWVGaXJzdFJl
c3BvbmRlckFnYWluID0gZmFsc2U7CiAgICAgbV9pblJlc2lnbkZpcnN0UmVzcG9uZGVyID0gdHJ1
ZTsKIAogI2lmIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKQEAgLTE3NSw2ICs0NDYsMTgg
QEAgdm9pZCBXZWJWaWV3SW1wbDo6dmlld0RpZEVuZExpdmVSZXNpemUoKQogICAgIFttX2xheW91
dFN0cmF0ZWd5IGRpZEVuZExpdmVSZXNpemVdOwogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpyZW5l
d0dTdGF0ZSgpCit7CisgICAgaWYgKG1fdGV4dEluZGljYXRvcldpbmRvdykKKyAgICAgICAgZGlz
bWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb24oZmFsc2UpOworCisg
ICAgLy8gVXBkYXRlIHRoZSB2aWV3IGZyYW1lLgorICAgIGlmIChtX3ZpZXcud2luZG93KQorICAg
ICAgICB1cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzKCk7CisKKyAgICB1cGRhdGVDb250ZW50SW5z
ZXRzSWZBdXRvbWF0aWMoKTsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6c2V0RnJhbWVTaXplKENH
U2l6ZSkKIHsKICAgICBbbV9sYXlvdXRTdHJhdGVneSBkaWRDaGFuZ2VGcmFtZVNpemVdOwpAQCAt
MjAzLDYgKzQ4NiwzOSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRGcmFtZUFuZFNjcm9sbEJ5KENH
UmVjdCBmcmFtZSwgQ0dTaXplIG9mZnNldCkKICAgICBtX3ZpZXcuZnJhbWUgPSBOU1JlY3RGcm9t
Q0dSZWN0KGZyYW1lKTsKIH0KIAordm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlV2luZG93QW5kVmll
d0ZyYW1lcygpCit7CisgICAgaWYgKGNsaXBzVG9WaXNpYmxlUmVjdCgpKQorICAgICAgICB1cGRh
dGVWaWV3RXhwb3NlZFJlY3QoKTsKKworICAgIGlmIChtX2RpZFNjaGVkdWxlV2luZG93QW5kVmll
d0ZyYW1lVXBkYXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2RpZFNjaGVkdWxlV2luZG93
QW5kVmlld0ZyYW1lVXBkYXRlID0gdHJ1ZTsKKworICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVX
ZWFrUHRyKCk7CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwg
W3dlYWtUaGlzXSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgd2Vha1RoaXMtPm1fZGlkU2NoZWR1bGVXaW5kb3dBbmRWaWV3RnJhbWVVcGRh
dGUgPSBmYWxzZTsKKworICAgICAgICBOU1JlY3Qgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRl
cyA9IE5TWmVyb1JlY3Q7CisgICAgICAgIE5TUG9pbnQgYWNjZXNzaWJpbGl0eVBvc2l0aW9uID0g
TlNaZXJvUG9pbnQ7CisKKyAgICAgICAgaWYgKHdlYWtUaGlzLT5tX25lZWRzVmlld0ZyYW1lSW5X
aW5kb3dDb29yZGluYXRlcykKKyAgICAgICAgICAgIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0
ZXMgPSBbd2Vha1RoaXMtPm1fdmlldyBjb252ZXJ0UmVjdDp3ZWFrVGhpcy0+bV92aWV3LmZyYW1l
IHRvVmlldzpuaWxdOworCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
ICAgIGlmIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQor
ICAgICAgICAgICAgYWNjZXNzaWJpbGl0eVBvc2l0aW9uID0gW1t3ZWFrVGhpcy0+bV92aWV3IGFj
Y2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlQb3NpdGlvbkF0dHJpYnV0
ZV0gcG9pbnRWYWx1ZV07CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIAor
ICAgICAgICB3ZWFrVGhpcy0+bV9wYWdlLndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKHZpZXdG
cmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIGFjY2Vzc2liaWxpdHlQb3NpdGlvbik7CisgICAgfSk7
Cit9CisKIHZvaWQgV2ViVmlld0ltcGw6OnNldEZpeGVkTGF5b3V0U2l6ZShDR1NpemUgZml4ZWRM
YXlvdXRTaXplKQogewogICAgIG1fcGFnZS5zZXRGaXhlZExheW91dFNpemUoV2ViQ29yZTo6ZXhw
YW5kZWRJbnRTaXplKFdlYkNvcmU6OkZsb2F0U2l6ZShmaXhlZExheW91dFNpemUpKSk7CkBAIC0y
MjIsNiArNTM4LDUzIEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldERyYXdpbmdBcmVhU2l6ZShDR1Np
emUgc2l6ZSkKICAgICBtX3Jlc2l6ZVNjcm9sbE9mZnNldCA9IENHU2l6ZVplcm87CiB9CiAKK3Zv
aWQgV2ViVmlld0ltcGw6OnNldEF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cyhib29s
IGF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cykKK3sKKyAgICBtX2F1dG9tYXRpY2Fs
bHlBZGp1c3RzQ29udGVudEluc2V0cyA9IGF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0
czsKKyAgICB1cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWMoKTsKK30KKwordm9pZCBXZWJW
aWV3SW1wbDo6dXBkYXRlQ29udGVudEluc2V0c0lmQXV0b21hdGljKCkKK3sKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAorICAgIGlmICghbV9hdXRvbWF0aWNh
bGx5QWRqdXN0c0NvbnRlbnRJbnNldHMpCisgICAgICAgIHJldHVybjsKKworICAgIE5TV2luZG93
ICp3aW5kb3cgPSBtX3ZpZXcud2luZG93OworICAgIGlmICgod2luZG93LnN0eWxlTWFzayAmIE5T
RnVsbFNpemVDb250ZW50Vmlld1dpbmRvd01hc2spICYmICF3aW5kb3cudGl0bGViYXJBcHBlYXJz
VHJhbnNwYXJlbnQgJiYgIVttX3ZpZXcgZW5jbG9zaW5nU2Nyb2xsVmlld10pIHsKKyAgICAgICAg
TlNSZWN0IGNvbnRlbnRMYXlvdXRSZWN0ID0gW21fdmlldyBjb252ZXJ0UmVjdDp3aW5kb3cuY29u
dGVudExheW91dFJlY3QgZnJvbVZpZXc6bmlsXTsKKyAgICAgICAgQ0dGbG9hdCBuZXdUb3BDb250
ZW50SW5zZXQgPSBOU01heFkoY29udGVudExheW91dFJlY3QpIC0gTlNIZWlnaHQoY29udGVudExh
eW91dFJlY3QpOworICAgICAgICBpZiAobV90b3BDb250ZW50SW5zZXQgIT0gbmV3VG9wQ29udGVu
dEluc2V0KQorICAgICAgICAgICAgc2V0VG9wQ29udGVudEluc2V0KG5ld1RvcENvbnRlbnRJbnNl
dCk7CisgICAgfSBlbHNlCisgICAgICAgIHNldFRvcENvbnRlbnRJbnNldCgwKTsKKyNlbmRpZgor
fQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRUb3BDb250ZW50SW5zZXQoQ0dGbG9hdCBjb250ZW50
SW5zZXQpCit7CisgICAgbV90b3BDb250ZW50SW5zZXQgPSBjb250ZW50SW5zZXQ7CisKKyAgICBp
ZiAobV9kaWRTY2hlZHVsZVNldFRvcENvbnRlbnRJbnNldCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9kaWRTY2hlZHVsZVNldFRvcENvbnRlbnRJbnNldCA9IHRydWU7CisKKyAgICBhdXRvIHdl
YWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIFt3ZWFrVGhpc10geworICAgICAgICB3ZWFrVGhpcy0+ZGlzcGF0Y2hT
ZXRUb3BDb250ZW50SW5zZXQoKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6ZGlz
cGF0Y2hTZXRUb3BDb250ZW50SW5zZXQoKQoreworICAgIGlmICghbV9kaWRTY2hlZHVsZVNldFRv
cENvbnRlbnRJbnNldCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9kaWRTY2hlZHVsZVNldFRv
cENvbnRlbnRJbnNldCA9IGZhbHNlOworICAgIG1fcGFnZS5zZXRUb3BDb250ZW50SW5zZXQobV90
b3BDb250ZW50SW5zZXQpOworfQorCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRDb250ZW50UHJlcGFy
YXRpb25SZWN0KENHUmVjdCByZWN0KQogewogICAgIG1fY29udGVudFByZXBhcmF0aW9uUmVjdCA9
IHJlY3Q7CkBAIC0zMzcsNiArNzAwLDI3MCBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVTdXBw
b3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCkKICAgICB9CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6
OnNldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IoQ0dGbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikK
K3sKKyAgICBtX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IgPSBkZXZpY2VTY2FsZUZhY3RvcjsK
KyAgICBtX3BhZ2Uuc2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoaW50cmluc2ljRGV2aWNl
U2NhbGVGYWN0b3IoKSk7Cit9CisKK2Zsb2F0IFdlYlZpZXdJbXBsOjppbnRyaW5zaWNEZXZpY2VT
Y2FsZUZhY3RvcigpIGNvbnN0Cit7CisgICAgaWYgKG1fb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3Rv
cikKKyAgICAgICAgcmV0dXJuIG1fb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjsKKyAgICBpZiAo
bV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24pCisgICAgICAgIHJldHVybiBtX3Rhcmdl
dFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbi5iYWNraW5nU2NhbGVGYWN0b3I7CisgICAgaWYgKE5T
V2luZG93ICp3aW5kb3cgPSBtX3ZpZXcud2luZG93KQorICAgICAgICByZXR1cm4gd2luZG93LmJh
Y2tpbmdTY2FsZUZhY3RvcjsKKyAgICByZXR1cm4gW05TU2NyZWVuIG1haW5TY3JlZW5dLmJhY2tp
bmdTY2FsZUZhY3RvcjsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkT3JkZXJPZmZT
Y3JlZW4oKQoreworICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0
YXRlOjpJc1Zpc2libGUgfCBXZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsKK30K
Kwordm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkT3JkZXJPblNjcmVlbigpCit7CisgICAgbV9w
YWdlLnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OklzVmlzaWJsZSB8IFdl
YkNvcmU6OlZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOworfQorCit2b2lkIFdlYlZpZXdJbXBs
Ojp3aW5kb3dEaWRCZWNvbWVLZXkoTlNXaW5kb3cgKmtleVdpbmRvdykKK3sKKyAgICBpZiAoa2V5
V2luZG93ID09IG1fdmlldy53aW5kb3cgfHwga2V5V2luZG93ID09IG1fdmlldy53aW5kb3cuYXR0
YWNoZWRTaGVldCkgeworICAgICAgICB1cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCk7CisgICAgICAg
IG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpXaW5kb3dJc0Fj
dGl2ZSk7CisgICAgfQorfQorCit2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRSZXNpZ25LZXko
TlNXaW5kb3cgKmZvcm1lcktleVdpbmRvdykKK3sKKyAgICBpZiAoZm9ybWVyS2V5V2luZG93ID09
IG1fdmlldy53aW5kb3cgfHwgZm9ybWVyS2V5V2luZG93ID09IG1fdmlldy53aW5kb3cuYXR0YWNo
ZWRTaGVldCkgeworICAgICAgICB1cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCk7CisgICAgICAgIG1f
cGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpXaW5kb3dJc0FjdGl2
ZSk7CisgICAgfQorfQorCit2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRNaW5pYXR1cml6ZSgp
Cit7CisgICAgbV9wYWdlLnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6Oklz
VmlzaWJsZSk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZERlbWluaWF0dXJpemUo
KQoreworICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJ
c1Zpc2libGUpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRNb3ZlKCkKK3sKKyAg
ICB1cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6Ondp
bmRvd0RpZFJlc2l6ZSgpCit7CisgICAgdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lcygpOworfQor
Cit2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllcyhDR0Zs
b2F0IG9sZEJhY2tpbmdTY2FsZUZhY3RvcikKK3sKKyAgICBDR0Zsb2F0IG5ld0JhY2tpbmdTY2Fs
ZUZhY3RvciA9IGludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKCk7CisgICAgaWYgKG9sZEJhY2tp
bmdTY2FsZUZhY3RvciA9PSBuZXdCYWNraW5nU2NhbGVGYWN0b3IpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fcGFnZS5zZXRJbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcihuZXdCYWNraW5nU2Nh
bGVGYWN0b3IpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VTY3JlZW4o
KQoreworICAgIE5TV2luZG93ICp3aW5kb3cgPSBtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJh
dGlvbiA/IG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uIDogbV92aWV3LndpbmRvdzsK
KyAgICBtX3BhZ2Uud2luZG93U2NyZWVuRGlkQ2hhbmdlKChQbGF0Zm9ybURpc3BsYXlJRClbW1tb
d2luZG93IHNjcmVlbl0gZGV2aWNlRGVzY3JpcHRpb25dIG9iamVjdEZvcktleTpAIk5TU2NyZWVu
TnVtYmVyIl0gaW50VmFsdWVdKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkQ2hh
bmdlTGF5ZXJIb3N0aW5nKCkKK3sKKyAgICBtX3BhZ2UubGF5ZXJIb3N0aW5nTW9kZURpZENoYW5n
ZSgpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0
ZSgpCit7CisgICAgbV9wYWdlLnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6
OklzVmlzaWJsZSk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnZpZXdXaWxsTW92ZVRvV2luZG93
KE5TV2luZG93ICp3aW5kb3cpCit7CisgICAgLy8gSWYgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBw
cmVwYXJpbmcgdG8gbW92ZSB0byBhIHdpbmRvdywgd2Ugc2hvdWxkIG9ubHkgYmUgbW92ZWQgdG8g
dGhhdCB3aW5kb3cuCisgICAgQVNTRVJUKCFtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlv
biB8fCAobV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gPT0gd2luZG93KSk7CisKKyAg
ICBOU1dpbmRvdyAqY3VycmVudFdpbmRvdyA9IG1fdmlldy53aW5kb3c7CisgICAgaWYgKHdpbmRv
dyA9PSBjdXJyZW50V2luZG93KQorICAgICAgICByZXR1cm47CisKKyAgICBjbGVhckFsbEVkaXRD
b21tYW5kcygpOworCisgICAgTlNXaW5kb3cgKnN0b3BPYnNlcnZpbmdXaW5kb3cgPSBtX3Rhcmdl
dFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA/IG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0
aW9uIDogbV92aWV3LndpbmRvdzsKKyAgICBbbV93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3Rv
cE9ic2VydmluZzpzdG9wT2JzZXJ2aW5nV2luZG93XTsKKyAgICBbbV93aW5kb3dWaXNpYmlsaXR5
T2JzZXJ2ZXIgc3RhcnRPYnNlcnZpbmc6d2luZG93XTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6
dmlld0RpZE1vdmVUb1dpbmRvdygpCit7CisgICAgTlNXaW5kb3cgKndpbmRvdyA9IG1fdGFyZ2V0
V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uID8gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRp
b24gOiBtX3ZpZXcud2luZG93OworCisgICAgaWYgKHdpbmRvdykgeworICAgICAgICB3aW5kb3dE
aWRDaGFuZ2VTY3JlZW4oKTsKKworICAgICAgICBXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIHZp
ZXdTdGF0ZUNoYW5nZXMgPSBXZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlIHwgV2Vi
Q29yZTo6Vmlld1N0YXRlOjpJc1Zpc2libGU7CisgICAgICAgIGlmIChtX2lzRGVmZXJyaW5nVmll
d0luV2luZG93Q2hhbmdlcykKKyAgICAgICAgICAgIG1fdmlld0luV2luZG93Q2hhbmdlV2FzRGVm
ZXJyZWQgPSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2aWV3U3RhdGVDaGFuZ2Vz
IHw9IFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNJbldpbmRvdzsKKyAgICAgICAgbV9wYWdlLnZpZXdT
dGF0ZURpZENoYW5nZSh2aWV3U3RhdGVDaGFuZ2VzKTsKKworICAgICAgICB1cGRhdGVXaW5kb3dB
bmRWaWV3RnJhbWVzKCk7CisKKyAgICAgICAgLy8gRklYTUUoMTM1NTA5KSBUaGlzIGNhbGwgYmVj
b21lcyB1bm5lY2Vzc2FyeSBvbmNlIDEzNTUwOSBpcyBmaXhlZDsgcmVtb3ZlLgorICAgICAgICBt
X3BhZ2UubGF5ZXJIb3N0aW5nTW9kZURpZENoYW5nZSgpOworCisgICAgICAgIGlmICghbV9mbGFn
c0NoYW5nZWRFdmVudE1vbml0b3IpIHsKKyAgICAgICAgICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVh
dGVXZWFrUHRyKCk7CisgICAgICAgICAgICBtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IFtO
U0V2ZW50IGFkZExvY2FsTW9uaXRvckZvckV2ZW50c01hdGNoaW5nTWFzazpOU0ZsYWdzQ2hhbmdl
ZE1hc2sgaGFuZGxlcjpbd2Vha1RoaXNdIChOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVudCkgewor
ICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICAgICAgd2Vha1Ro
aXMtPnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQoZmxhZ3NDaGFu
Z2VkRXZlbnQpOworICAgICAgICAgICAgICAgIHJldHVybiBmbGFnc0NoYW5nZWRFdmVudDsKKyAg
ICAgICAgICAgIH1dOworICAgICAgICB9CisKKyAgICAgICAgYWNjZXNzaWJpbGl0eVJlZ2lzdGVy
VUlQcm9jZXNzVG9rZW5zKCk7CisKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTAwMAorICAgICAgICBpZiAobV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXpl
ciAmJiAhW1ttX3ZpZXcgZ2VzdHVyZVJlY29nbml6ZXJzXSBjb250YWluc09iamVjdDptX2ltbWVk
aWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgpXSAmJiAhbV9pZ25vcmVzTm9uV2hlZWxF
dmVudHMgJiYgbV9hbGxvd3NMaW5rUHJldmlldykKKyAgICAgICAgICAgIFttX3ZpZXcgYWRkR2Vz
dHVyZVJlY29nbml6ZXI6bV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQoKV07
CisjZW5kaWYKKyAgICB9IGVsc2UgeworICAgICAgICBXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdz
IHZpZXdTdGF0ZUNoYW5nZXMgPSBXZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlIHwg
V2ViQ29yZTo6Vmlld1N0YXRlOjpJc1Zpc2libGU7CisgICAgICAgIGlmIChtX2lzRGVmZXJyaW5n
Vmlld0luV2luZG93Q2hhbmdlcykKKyAgICAgICAgICAgIG1fdmlld0luV2luZG93Q2hhbmdlV2Fz
RGVmZXJyZWQgPSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2aWV3U3RhdGVDaGFu
Z2VzIHw9IFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNJbldpbmRvdzsKKyAgICAgICAgbV9wYWdlLnZp
ZXdTdGF0ZURpZENoYW5nZSh2aWV3U3RhdGVDaGFuZ2VzKTsKKworICAgICAgICBbTlNFdmVudCBy
ZW1vdmVNb25pdG9yOm1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yXTsKKyAgICAgICAgbV9mbGFn
c0NoYW5nZWRFdmVudE1vbml0b3IgPSBuaWw7CisKKyAgICAgICAgZGlzbWlzc0NvbnRlbnRSZWxh
dGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb24oZmFsc2UpOworCisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICAgICAgaWYgKG1faW1tZWRpYXRlQWN0
aW9uR2VzdHVyZVJlY29nbml6ZXIpCisgICAgICAgICAgICBbbV92aWV3IHJlbW92ZUdlc3R1cmVS
ZWNvZ25pemVyOm1faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOworI2Vu
ZGlmCisgICAgfQorCisgICAgbV9wYWdlLnNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKGlu
dHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKCkpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp2aWV3
RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXMoKQoreworICAgIE5TQ29sb3JTcGFjZSAqY29sb3JT
cGFjZSA9IG1fdmlldy53aW5kb3cuY29sb3JTcGFjZTsKKyAgICBpZiAoW2NvbG9yU3BhY2UgaXNF
cXVhbFRvOm1fY29sb3JTcGFjZS5nZXQoKV0pCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29s
b3JTcGFjZSA9IG51bGxwdHI7CisgICAgaWYgKERyYXdpbmdBcmVhUHJveHkgKmRyYXdpbmdBcmVh
ID0gbV9wYWdlLmRyYXdpbmdBcmVhKCkpCisgICAgICAgIGRyYXdpbmdBcmVhLT5jb2xvclNwYWNl
RGlkQ2hhbmdlKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2
ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQoTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpCit7Cisg
ICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91
c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3cubW91c2VMb2NhdGlvbk91
dHNpZGVPZkV2ZW50U3RyZWFtCisgICAgICAgIG1vZGlmaWVyRmxhZ3M6ZmxhZ3NDaGFuZ2VkRXZl
bnQubW9kaWZpZXJGbGFncyB0aW1lc3RhbXA6ZmxhZ3NDaGFuZ2VkRXZlbnQudGltZXN0YW1wIHdp
bmRvd051bWJlcjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3dOdW1iZXIKKyAgICAgICAgY29udGV4
dDpmbGFnc0NoYW5nZWRFdmVudC5jb250ZXh0IGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHBy
ZXNzdXJlOjBdOworICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQoZmFrZUV2ZW50LCBt
X2xhc3RQcmVzc3VyZUV2ZW50LmdldCgpLCBtX3ZpZXcpOworICAgIG1fcGFnZS5oYW5kbGVNb3Vz
ZUV2ZW50KHdlYkV2ZW50KTsKK30KKworQ29sb3JTcGFjZURhdGEgV2ViVmlld0ltcGw6OmNvbG9y
U3BhY2UoKQoreworICAgIGlmICghbV9jb2xvclNwYWNlKSB7CisgICAgICAgIGlmIChtX3Rhcmdl
dFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbikKKyAgICAgICAgICAgIG1fY29sb3JTcGFjZSA9IG1f
dGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uLmNvbG9yU3BhY2U7CisgICAgICAgIGVsc2Ug
aWYgKE5TV2luZG93ICp3aW5kb3cgPSBtX3ZpZXcud2luZG93KQorICAgICAgICAgICAgbV9jb2xv
clNwYWNlID0gd2luZG93LmNvbG9yU3BhY2U7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1f
Y29sb3JTcGFjZSA9IFtOU1NjcmVlbiBtYWluU2NyZWVuXS5jb2xvclNwYWNlOworICAgIH0KKwor
ICAgIENvbG9yU3BhY2VEYXRhIGNvbG9yU3BhY2VEYXRhOworICAgIGNvbG9yU3BhY2VEYXRhLmNn
Q29sb3JTcGFjZSA9IFttX2NvbG9yU3BhY2UgQ0dDb2xvclNwYWNlXTsKKyAgICAKKyAgICByZXR1
cm4gY29sb3JTcGFjZURhdGE7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmJlZ2luRGVmZXJyaW5n
Vmlld0luV2luZG93Q2hhbmdlcygpCit7CisgICAgaWYgKG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5k
b3dDaGFuZ2VzKSB7CisgICAgICAgIE5TTG9nKEAiYmVnaW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dD
aGFuZ2VzIHdhcyBjYWxsZWQgd2hpbGUgYWxyZWFkeSBkZWZlcnJpbmcgdmlldy1pbi13aW5kb3cg
Y2hhbmdlcyEiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc2hvdWxkRGVmZXJW
aWV3SW5XaW5kb3dDaGFuZ2VzID0gdHJ1ZTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6ZW5kRGVm
ZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcygpCit7CisgICAgaWYgKCFtX3Nob3VsZERlZmVyVmll
d0luV2luZG93Q2hhbmdlcykgeworICAgICAgICBOU0xvZyhAImVuZERlZmVycmluZ1ZpZXdJbldp
bmRvd0NoYW5nZXMgd2FzIGNhbGxlZCB3aXRob3V0IGJlZ2luRGVmZXJyaW5nVmlld0luV2luZG93
Q2hhbmdlcyEiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc2hvdWxkRGVmZXJW
aWV3SW5XaW5kb3dDaGFuZ2VzID0gZmFsc2U7CisKKyAgICBpZiAobV92aWV3SW5XaW5kb3dDaGFu
Z2VXYXNEZWZlcnJlZCkgeworICAgICAgICBkaXNwYXRjaFNldFRvcENvbnRlbnRJbnNldCgpOwor
ICAgICAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNJ
bldpbmRvdyk7CisgICAgICAgIG1fdmlld0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQgPSBmYWxz
ZTsKKyAgICB9Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmVuZERlZmVycmluZ1ZpZXdJbldpbmRv
d0NoYW5nZXNTeW5jKCkKK3sKKyAgICBpZiAoIW1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFu
Z2VzKSB7CisgICAgICAgIE5TTG9nKEAiZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlc1N5
bmMgd2FzIGNhbGxlZCB3aXRob3V0IGJlZ2luRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcyEi
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5k
b3dDaGFuZ2VzID0gZmFsc2U7CisKKyAgICBpZiAobV92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZl
cnJlZCkgeworICAgICAgICBkaXNwYXRjaFNldFRvcENvbnRlbnRJbnNldCgpOworICAgICAgICBt
X3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNJbldpbmRvdyk7
CisgICAgICAgIG1fdmlld0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQgPSBmYWxzZTsKKyAgICB9
Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnByZXBhcmVGb3JNb3ZlVG9XaW5kb3coTlNXaW5kb3cg
KnRhcmdldFdpbmRvdywgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzID0gdHJ1ZTsKKyAgICB2aWV3
V2lsbE1vdmVUb1dpbmRvdyh0YXJnZXRXaW5kb3cpOworICAgIG1fdGFyZ2V0V2luZG93Rm9yTW92
ZVByZXBhcmF0aW9uID0gdGFyZ2V0V2luZG93OworICAgIHZpZXdEaWRNb3ZlVG9XaW5kb3coKTsK
KworICAgIG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzID0gZmFsc2U7CisKKyAgICBh
dXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgIG1fcGFnZS5pbnN0YWxsVmlld1N0
YXRlQ2hhbmdlQ29tcGxldGlvbkhhbmRsZXIoW3dlYWtUaGlzLCBjb21wbGV0aW9uSGFuZGxlcl0o
KSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisKKyAgICAgICAgaWYgKCF3ZWFrVGhp
cykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBBU1NFUlQod2Vha1RoaXMtPm1fdmll
dy53aW5kb3cgPT0gd2Vha1RoaXMtPm1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uKTsK
KyAgICAgICAgd2Vha1RoaXMtPm1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uID0gbmls
OworICAgIH0pOworCisgICAgZGlzcGF0Y2hTZXRUb3BDb250ZW50SW5zZXQoKTsKKyAgICBtX3Bh
Z2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNJbldpbmRvdywgZmFs
c2UsIFdlYlBhZ2VQcm94eTo6Vmlld1N0YXRlQ2hhbmdlRGlzcGF0Y2hNb2RlOjpJbW1lZGlhdGUp
OworICAgIG1fdmlld0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQgPSBmYWxzZTsKK30KKwogdm9p
ZCBXZWJWaWV3SW1wbDo6dXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSgpCiB7CiAgICAgaWYgKCFbW21f
dmlldyB3aW5kb3ddIGlzS2V5V2luZG93XSB8fCAhaXNGb2N1c2VkKCkpIHsKQEAgLTM4Niw2ICsx
MDEzLDI1IEBAIHZvaWQgV2ViVmlld0ltcGw6Om5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2Fy
ZGVkQ29tcG9zaXRpb24oKQogICAgIFtbbV92aWV3IF9zdXBlcklucHV0Q29udGV4dF0gZGlzY2Fy
ZE1hcmtlZFRleHRdOyAvLyBJbmZvcm0gdGhlIGlucHV0IG1ldGhvZCB0aGF0IHdlIHdvbid0IGhh
dmUgYW4gaW5saW5lIGlucHV0IGFyZWEgZGVzcGl0ZSBoYXZpbmcgYmVlbiBhc2tlZCB0by4KIH0K
IAordm9pZCBXZWJWaWV3SW1wbDo6cHJlc3N1cmVDaGFuZ2VXaXRoRXZlbnQoTlNFdmVudCAqZXZl
bnQpCit7CisjaWYgZGVmaW5lZChfX0xQNjRfXykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9B
TExPV0VEID49IDEwMTAwMworICAgIGlmIChldmVudCA9PSBtX2xhc3RQcmVzc3VyZUV2ZW50KQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChldmVudC5waGFzZSAhPSBOU0V2ZW50UGhhc2VDaGFuZ2Vk
ICYmIGV2ZW50LnBoYXNlICE9IE5TRXZlbnRQaGFzZUJlZ2FuICYmIGV2ZW50LnBoYXNlICE9IE5T
RXZlbnRQaGFzZUVuZGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBOYXRpdmVXZWJNb3VzZUV2
ZW50IHdlYkV2ZW50KGV2ZW50LCBtX2xhc3RQcmVzc3VyZUV2ZW50LmdldCgpLCBtX3ZpZXcpOwor
ICAgIG1fcGFnZS5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsKKworICAgIG1fbGFzdFByZXNz
dXJlRXZlbnQgPSBldmVudDsKKyNlbmRpZgorfQorCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogYm9vbCBXZWJWaWV3SW1wbDo6aGFzRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKSBjb25z
dAogewpAQCAtNDI4LDYgKzEwNzQsMjU3IEBAIE5TV2luZG93ICpXZWJWaWV3SW1wbDo6Y3JlYXRl
RnVsbFNjcmVlbldpbmRvdygpCiAjZW5kaWYKIH0KIAorYm9vbCBXZWJWaWV3SW1wbDo6aXNFZGl0
YWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS5pc0VkaXRhYmxlKCk7Cit9CisKK3Zv
aWQgV2ViVmlld0ltcGw6OmV4ZWN1dGVFZGl0Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmRO
YW1lLCBjb25zdCBTdHJpbmcmIGFyZ3VtZW50KQoreworICAgIG1fcGFnZS5leGVjdXRlRWRpdENv
bW1hbmQoY29tbWFuZE5hbWUsIGFyZ3VtZW50KTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6cmVn
aXN0ZXJFZGl0Q29tbWFuZChSZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4gcHJwQ29tbWFuZCwg
V2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvIHVuZG9PclJlZG8pCit7CisgICAgUmVmUHRyPFdlYkVk
aXRDb21tYW5kUHJveHk+IGNvbW1hbmQgPSBwcnBDb21tYW5kOworCisgICAgUmV0YWluUHRyPFdL
RWRpdENvbW1hbmRPYmpDPiBjb21tYW5kT2JqQyA9IGFkb3B0TlMoW1tXS0VkaXRDb21tYW5kT2Jq
QyBhbGxvY10gaW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5OmNvbW1hbmRdKTsKKyAgICBTdHJp
bmcgYWN0aW9uTmFtZSA9IFdlYkVkaXRDb21tYW5kUHJveHk6Om5hbWVGb3JFZGl0QWN0aW9uKGNv
bW1hbmQtPmVkaXRBY3Rpb24oKSk7CisKKyAgICBOU1VuZG9NYW5hZ2VyICp1bmRvTWFuYWdlciA9
IFttX3ZpZXcgdW5kb01hbmFnZXJdOworICAgIFt1bmRvTWFuYWdlciByZWdpc3RlclVuZG9XaXRo
VGFyZ2V0Om1fdW5kb1RhcmdldC5nZXQoKSBzZWxlY3RvcjooKHVuZG9PclJlZG8gPT0gV2ViUGFn
ZVByb3h5OjpVbmRvKSA/IEBzZWxlY3Rvcih1bmRvRWRpdGluZzopIDogQHNlbGVjdG9yKHJlZG9F
ZGl0aW5nOikpIG9iamVjdDpjb21tYW5kT2JqQy5nZXQoKV07CisgICAgaWYgKCFhY3Rpb25OYW1l
LmlzRW1wdHkoKSkKKyAgICAgICAgW3VuZG9NYW5hZ2VyIHNldEFjdGlvbk5hbWU6KE5TU3RyaW5n
ICopYWN0aW9uTmFtZV07Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmNsZWFyQWxsRWRpdENvbW1h
bmRzKCkKK3sKKyAgICBbW21fdmlldyB1bmRvTWFuYWdlcl0gcmVtb3ZlQWxsQWN0aW9uc1dpdGhU
YXJnZXQ6bV91bmRvVGFyZ2V0LmdldCgpXTsKK30KKworYm9vbCBXZWJWaWV3SW1wbDo6d3JpdGVT
ZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkLCBOU0FycmF5ICp0
eXBlcykKK3sKKyAgICBzaXplX3QgbnVtVHlwZXMgPSB0eXBlcy5jb3VudDsKKyAgICBbcGFzdGVi
b2FyZCBkZWNsYXJlVHlwZXM6dHlwZXMgb3duZXI6bmlsXTsKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG51bVR5cGVzOyArK2kpIHsKKyAgICAgICAgaWYgKFtbdHlwZXMgb2JqZWN0QXRJbmRl
eDppXSBpc0VxdWFsVG86TlNTdHJpbmdQYm9hcmRUeXBlXSkKKyAgICAgICAgICAgIFtwYXN0ZWJv
YXJkIHNldFN0cmluZzptX3BhZ2Uuc3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVib2FyZCgpIGZvclR5
cGU6TlNTdHJpbmdQYm9hcmRUeXBlXTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBSZWZQ
dHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBtX3BhZ2UuZGF0YVNlbGVjdGlvbkZv
clBhc3RlYm9hcmQoW3R5cGVzIG9iamVjdEF0SW5kZXg6aV0pOworICAgICAgICAgICAgW3Bhc3Rl
Ym9hcmQgc2V0RGF0YTpidWZmZXIgPyBidWZmZXItPmNyZWF0ZU5TRGF0YSgpLmdldCgpIDogbmls
IGZvclR5cGU6W3R5cGVzIG9iamVjdEF0SW5kZXg6aV1dOworICAgICAgICB9CisgICAgfQorICAg
IHJldHVybiB0cnVlOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpjZW50ZXJTZWxlY3Rpb25JblZp
c2libGVBcmVhKCkKK3sKKyAgICBtX3BhZ2UuY2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYSgp
OworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZWxlY3Rpb25EaWRDaGFuZ2UoKQoreworICAgIHVw
ZGF0ZUZvbnRQYW5lbElmTmVlZGVkKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0T2Jz
ZXJ2aW5nRm9udFBhbmVsKCkKK3sKKyAgICBbbV93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3Rh
cnRPYnNlcnZpbmdGb250UGFuZWxdOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVGb250
UGFuZWxJZk5lZWRlZCgpCit7CisgICAgY29uc3QgRWRpdG9yU3RhdGUmIGVkaXRvclN0YXRlID0g
bV9wYWdlLmVkaXRvclN0YXRlKCk7CisgICAgaWYgKGVkaXRvclN0YXRlLnNlbGVjdGlvbklzTm9u
ZSB8fCAhZWRpdG9yU3RhdGUuaXNDb250ZW50RWRpdGFibGUpCisgICAgICAgIHJldHVybjsKKyAg
ICBpZiAoW05TRm9udFBhbmVsIHNoYXJlZEZvbnRQYW5lbEV4aXN0c10gJiYgW1tOU0ZvbnRQYW5l
bCBzaGFyZWRGb250UGFuZWxdIGlzVmlzaWJsZV0pIHsKKyAgICAgICAgbV9wYWdlLmZvbnRBdFNl
bGVjdGlvbihbXShjb25zdCBTdHJpbmcmIGZvbnROYW1lLCBkb3VibGUgZm9udFNpemUsIGJvb2wg
c2VsZWN0aW9uSGFzTXVsdGlwbGVGb250cywgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVy
cm9yKSB7CisgICAgICAgICAgICBOU0ZvbnQgKmZvbnQgPSBbTlNGb250IGZvbnRXaXRoTmFtZTpm
b250TmFtZSBzaXplOmZvbnRTaXplXTsKKyAgICAgICAgICAgIGlmIChmb250KQorICAgICAgICAg
ICAgICAgIFtbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl0gc2V0U2VsZWN0ZWRGb250
OmZvbnQgaXNNdWx0aXBsZTpzZWxlY3Rpb25IYXNNdWx0aXBsZUZvbnRzXTsKKyAgICAgICAgfSk7
CisgICAgfQorfQorCit2b2lkIFdlYlZpZXdJbXBsOjpwcmVmZXJlbmNlc0RpZENoYW5nZSgpCit7
CisgICAgQk9PTCBuZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMgPSBtX3BhZ2UucHJl
ZmVyZW5jZXMoKS5wbHVnaW5zRW5hYmxlZCgpOworCisgICAgaWYgKCEhbmVlZHNWaWV3RnJhbWVJ
bldpbmRvd0Nvb3JkaW5hdGVzID09ICEhbV9uZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0
ZXMpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3Jk
aW5hdGVzID0gbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzOworICAgIGlmIChtX3Zp
ZXcud2luZG93KQorICAgICAgICB1cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzKCk7Cit9CisKK3Zv
aWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvciYg
dGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lIGxpZmV0
aW1lKQoreworICAgIGlmICghbV90ZXh0SW5kaWNhdG9yV2luZG93KQorICAgICAgICBtX3RleHRJ
bmRpY2F0b3JXaW5kb3cgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JX
aW5kb3c+KG1fdmlldyk7CisKKyAgICBOU1JlY3QgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29v
cmRpbmF0ZXMgPSBbbV92aWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOlttX3ZpZXcgY29u
dmVydFJlY3Q6dGV4dEluZGljYXRvci50ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5h
dGVzKCkgdG9WaWV3Om5pbF1dOworICAgIG1fdGV4dEluZGljYXRvcldpbmRvdy0+c2V0VGV4dElu
ZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBOU1JlY3RUb0NHUmVjdCh0ZXh0Qm91bmRpbmdSZWN0SW5T
Y3JlZW5Db29yZGluYXRlcyksIGxpZmV0aW1lKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6Y2xl
YXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
RGlzbWlzc2FsQW5pbWF0aW9uIGFuaW1hdGlvbikKK3sKKyAgICBpZiAobV90ZXh0SW5kaWNhdG9y
V2luZG93KQorICAgICAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3ctPmNsZWFyVGV4dEluZGljYXRv
cihhbmltYXRpb24pOworICAgIG1fdGV4dEluZGljYXRvcldpbmRvdyA9IG51bGxwdHI7Cit9CisK
K3ZvaWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9h
dCBwcm9ncmVzcykKK3sKKyAgICBpZiAobV90ZXh0SW5kaWNhdG9yV2luZG93KQorICAgICAgICBt
X3RleHRJbmRpY2F0b3JXaW5kb3ctPnNldEFuaW1hdGlvblByb2dyZXNzKHByb2dyZXNzKTsKK30K
Kwordm9pZCBXZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dp
dGhBbmltYXRpb24oYm9vbCBhbmltYXRlKQoreworICAgIFttX3ZpZXcgX2Rpc21pc3NDb250ZW50
UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uOmFuaW1hdGVdOworfQorCit2b2lkIFdl
YlZpZXdJbXBsOjpkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlv
bkZyb21WaWV3T25seShib29sIGFuaW1hdGUpCit7CisgICAgLy8gQ2FsbGluZyBfY2xlYXJUZXh0
SW5kaWNhdG9yV2l0aEFuaW1hdGlvbiBoZXJlIHdpbGwgd2luIG91dCBvdmVyIHRoZSBhbmltYXRl
ZCBjbGVhciBpbiBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5
LgorICAgIC8vIFdlIGNhbid0IGludmVydCB0aGVzZSBiZWNhdXNlIGNsaWVudHMgY2FuIG92ZXJy
aWRlIChhbmQgaGF2ZSBvdmVycmlkZGVuKSBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2lu
ZG93cywgc28gaXQgbmVlZHMgdG8gYmUgY2FsbGVkLgorICAgIC8vIEZvciB0aGlzIHNhbWUgcmVh
c29uLCB0aGlzIGNhbid0IGJlIG1vdmVkIHRvIFdlYlZpZXdJbXBsIHdpdGhvdXQgY2FyZS4KKyAg
ICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKGFuaW1hdGUgPyBXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0IDogV2ViQ29yZTo6VGV4
dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CisgICAgW21fdmlldyBf
ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c107Cit9CisKK3ZvaWQgV2ViVmlld0lt
cGw6OmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHkoKQorewor
ICAgIGJvb2wgaGFzQWN0aXZlSW1tZWRpYXRlQWN0aW9uID0gZmFsc2U7CisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICBoYXNBY3RpdmVJbW1lZGlhdGVB
Y3Rpb24gPSBbbV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGhhc0FjdGl2ZUltbWVkaWF0ZUFj
dGlvbl07CisjZW5kaWYKKworICAgIC8vIEZJWE1FOiBXZSBkb24ndCBrbm93IHdoaWNoIHBhbmVs
IHdlIGFyZSBkaXNtaXNzaW5nLCBpdCBtYXkgbm90IGV2ZW4gYmUgaW4gdGhlIGN1cnJlbnQgcGFn
ZSAoc2VlIDxyZGFyOi8vcHJvYmxlbS8xMzg3NTc2Nj4pLgorICAgIGlmIChtX3ZpZXcud2luZG93
LmlzS2V5V2luZG93IHx8IGhhc0FjdGl2ZUltbWVkaWF0ZUFjdGlvbikgeworICAgICAgICBXZWJD
b3JlOjpEaWN0aW9uYXJ5TG9va3VwOjpoaWRlUG9wdXAoKTsKKworI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCisgICAgICAgIEREQWN0aW9uc01hbmFnZXIgKmFj
dGlvbnNNYW5hZ2VyID0gW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJd
OworICAgICAgICBpZiAoW2FjdGlvbnNNYW5hZ2VyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IocmVxdWVzdEJ1YmJsZUNsb3N1cmVVbmFuY2hvck9uRmFpbHVyZTopXSkKKyAgICAgICAgICAg
IFthY3Rpb25zTWFuYWdlciByZXF1ZXN0QnViYmxlQ2xvc3VyZVVuYW5jaG9yT25GYWlsdXJlOllF
U107CisjZW5kaWYKKyAgICB9CisKKyAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9u
KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQp
OworCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICBb
bV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdp
bmRvd3NdOworI2VuZGlmCisgICAgCisgICAgbV9wYWdlQ2xpZW50LmRpc21pc3NDb3JyZWN0aW9u
UGFuZWwoV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9yZWQp
OworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpxdWlja0xvb2tXaXRoRXZlbnQoTlNFdmVudCAqZXZl
bnQpCit7CisgICAgaWYgKGlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQorICAgICAgICByZXR1cm47
CisKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAorICAgIGlm
IChtX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyKSB7CisgICAgICAgIFttX3ZpZXcg
X3N1cGVyUXVpY2tMb29rV2l0aEV2ZW50OmV2ZW50XTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyNlbmRpZgorCisgICAgTlNQb2ludCBsb2NhdGlvbkluVmlld0Nvb3JkaW5hdGVzID0gW21fdmll
dyBjb252ZXJ0UG9pbnQ6W2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddIGZyb21WaWV3Om5pbF07Cisg
ICAgbV9wYWdlLnBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwQXRMb2NhdGlvbihXZWJDb3JlOjpGbG9h
dFBvaW50KGxvY2F0aW9uSW5WaWV3Q29vcmRpbmF0ZXMpKTsKK30KKwordm9pZCBXZWJWaWV3SW1w
bDo6cHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXAoKQoreworICAgIGlmIChtX2RpZFJlZ2lzdGVy
Rm9yTG9va3VwUG9wb3ZlckNsb3NlTm90aWZpY2F0aW9ucykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9kaWRSZWdpc3RlckZvckxvb2t1cFBvcG92ZXJDbG9zZU5vdGlmaWNhdGlvbnMgPSB0cnVl
OworCisgICAgW21fd2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0YXJ0T2JzZXJ2aW5nTG9va3Vw
RGlzbWlzc2FsXTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0QWxsb3dzTGlua1ByZXZpZXco
Ym9vbCBhbGxvd3NMaW5rUHJldmlldykKK3sKKyAgICBpZiAobV9hbGxvd3NMaW5rUHJldmlldyA9
PSBhbGxvd3NMaW5rUHJldmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9hbGxvd3NMaW5r
UHJldmlldyA9IGFsbG93c0xpbmtQcmV2aWV3OworCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICBpZiAoIWFsbG93c0xpbmtQcmV2aWV3KQorICAgICAg
ICBbbV92aWV3IHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOm1faW1tZWRpYXRlQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXIuZ2V0KCldOworICAgIGVsc2UgaWYgKE5TR2VzdHVyZVJlY29nbml6ZXIgKmlt
bWVkaWF0ZUFjdGlvblJlY29nbml6ZXIgPSBtX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25p
emVyLmdldCgpKQorICAgICAgICBbbV92aWV3IGFkZEdlc3R1cmVSZWNvZ25pemVyOmltbWVkaWF0
ZUFjdGlvblJlY29nbml6ZXJdOworI2VuZGlmCit9CisKK3ZvaWQqIFdlYlZpZXdJbXBsOjppbW1l
ZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdChXS0hpdFRlc3RS
ZXN1bHRSZWYgaGl0VGVzdFJlc3VsdCwgdWludDMyX3QgdHlwZSwgV0tUeXBlUmVmIHVzZXJEYXRh
KQoreworICAgIHJldHVybiBbbV92aWV3IF9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9s
bGVyRm9ySGl0VGVzdFJlc3VsdDpoaXRUZXN0UmVzdWx0IHdpdGhUeXBlOnR5cGUgdXNlckRhdGE6
dXNlckRhdGFdOworfQorCit2b2lkKiBXZWJWaWV3SW1wbDo6aW1tZWRpYXRlQWN0aW9uQW5pbWF0
aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHRGcm9tVmlld09ubHkoV0tIaXRUZXN0UmVzdWx0
UmVmIGhpdFRlc3RSZXN1bHQsIHVpbnQzMl90IHR5cGUsIFdLVHlwZVJlZiB1c2VyRGF0YSkKK3sK
KyAgICByZXR1cm4gbmlsOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpkaWRQZXJmb3JtSW1tZWRp
YXRlQWN0aW9uSGl0VGVzdChjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYgcmVzdWx0LCBib29s
IGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkKK3sKKyAgICBb
bV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGRpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRU
ZXN0OnJlc3VsdCBjb250ZW50UHJldmVudHNEZWZhdWx0OmNvbnRlbnRQcmV2ZW50c0RlZmF1bHQg
dXNlckRhdGE6dXNlckRhdGFdOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpwcmVwYXJlRm9ySW1t
ZWRpYXRlQWN0aW9uQW5pbWF0aW9uKCkKK3sKKyAgICBbbV92aWV3IF9wcmVwYXJlRm9ySW1tZWRp
YXRlQWN0aW9uQW5pbWF0aW9uXTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6Y2FuY2VsSW1tZWRp
YXRlQWN0aW9uQW5pbWF0aW9uKCkKK3sKKyAgICBbbV92aWV3IF9jYW5jZWxJbW1lZGlhdGVBY3Rp
b25BbmltYXRpb25dOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpjb21wbGV0ZUltbWVkaWF0ZUFj
dGlvbkFuaW1hdGlvbigpCit7CisgICAgW21fdmlldyBfY29tcGxldGVJbW1lZGlhdGVBY3Rpb25B
bmltYXRpb25dOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRJZ25vcmVzTm9uV2hlZWxFdmVu
dHMoYm9vbCBpZ25vcmVzTm9uV2hlZWxFdmVudHMpCit7CisgICAgaWYgKG1faWdub3Jlc05vbldo
ZWVsRXZlbnRzID09IGlnbm9yZXNOb25XaGVlbEV2ZW50cykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9pZ25vcmVzTm9uV2hlZWxFdmVudHMgPSBpZ25vcmVzTm9uV2hlZWxFdmVudHM7CisgICAg
bV9wYWdlLnNldFNob3VsZERpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50cyghaWdub3Jlc05vbldo
ZWVsRXZlbnRzKTsKKworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MDAwCisgICAgaWYgKGlnbm9yZXNOb25XaGVlbEV2ZW50cykKKyAgICAgICAgW21fdmlldyByZW1v
dmVHZXN0dXJlUmVjb2duaXplcjptX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdl
dCgpXTsKKyAgICBlbHNlIGlmIChOU0dlc3R1cmVSZWNvZ25pemVyICppbW1lZGlhdGVBY3Rpb25S
ZWNvZ25pemVyID0gbV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQoKSkgewor
ICAgICAgICBpZiAobV9hbGxvd3NMaW5rUHJldmlldykKKyAgICAgICAgICAgIFttX3ZpZXcgYWRk
R2VzdHVyZVJlY29nbml6ZXI6aW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcl07CisgICAgfQorI2Vu
ZGlmCit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldElnbm9yZXNBbGxFdmVudHMoYm9vbCBpZ25v
cmVzQWxsRXZlbnRzKQoreworICAgIG1faWdub3Jlc0FsbEV2ZW50cyA9IGlnbm9yZXNBbGxFdmVu
dHM7CisgICAgc2V0SWdub3Jlc05vbldoZWVsRXZlbnRzKGlnbm9yZXNBbGxFdmVudHMpOworfQor
Cit2b2lkIFdlYlZpZXdJbXBsOjphY2Nlc3NpYmlsaXR5UmVnaXN0ZXJVSVByb2Nlc3NUb2tlbnMo
KQoreworICAgIC8vIEluaXRpYWxpemUgcmVtb3RlIGFjY2Vzc2liaWxpdHkgd2hlbiB0aGUgd2lu
ZG93IGNvbm5lY3Rpb24gaGFzIGJlZW4gZXN0YWJsaXNoZWQuCisgICAgTlNEYXRhICpyZW1vdGVF
bGVtZW50VG9rZW4gPSBXS0FYUmVtb3RlVG9rZW5Gb3JFbGVtZW50KG1fdmlldyk7CisgICAgTlNE
YXRhICpyZW1vdGVXaW5kb3dUb2tlbiA9IFdLQVhSZW1vdGVUb2tlbkZvckVsZW1lbnQobV92aWV3
LndpbmRvdyk7CisgICAgSVBDOjpEYXRhUmVmZXJlbmNlIGVsZW1lbnRUb2tlbiA9IElQQzo6RGF0
YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihbcmVtb3RlRWxlbWVu
dFRva2VuIGJ5dGVzXSksIFtyZW1vdGVFbGVtZW50VG9rZW4gbGVuZ3RoXSk7CisgICAgSVBDOjpE
YXRhUmVmZXJlbmNlIHdpbmRvd1Rva2VuID0gSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgdWludDhfdCo+KFtyZW1vdGVXaW5kb3dUb2tlbiBieXRlc10pLCBbcmVtb3Rl
V2luZG93VG9rZW4gbGVuZ3RoXSk7CisgICAgbV9wYWdlLnJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNz
aWJpbGl0eVRva2VucyhlbGVtZW50VG9rZW4sIHdpbmRvd1Rva2VuKTsKK30KIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGwuaAppbmRleCA0NmFhNTIwZWMzMTE0ZDQyM2I3OGFmNzE4YjU3ZGI0MmViM2RiNTZjLi5j
MjQ2MmMxMzUwOGM4NDZiYmZlMTA3MDlmNmRkZTBmM2YyOGE4YTJiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCkBAIC0yMjAsNyArMjIwLDYgQEAg
cHJpdmF0ZToKICAgICBXS1ZpZXcgKm1fd2tWaWV3OwogICAgIFdLV2ViVmlldyAqbV93ZWJWaWV3
OwogICAgIFdlYlZpZXdJbXBsKiBtX2ltcGwgeyBudWxscHRyIH07Ci0gICAgUmV0YWluUHRyPFdL
RWRpdG9yVW5kb1RhcmdldE9iakM+IG1fdW5kb1RhcmdldDsKICNpZiBVU0UoQVVUT0NPUlJFQ1RJ
T05fUEFORUwpCiAgICAgQ29ycmVjdGlvblBhbmVsIG1fY29ycmVjdGlvblBhbmVsOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQppbmRl
eCA0YzNkNjA2ZmU4MmY2MDEyOTU5ODhhNGRlZGU0OWVjYTU3OWU0NmVhLi5iYjMzYTIyYmE1ZGQy
OGEzN2Y5NzQxZWQxZTY0NTcxNzczOWNiYjBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KQEAgLTkwLDYwICs5MCwxMSBAQAogdXNpbmcgbmFt
ZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1AaW50ZXJmYWNlIFdL
RWRpdENvbW1hbmRPYmpDIDogTlNPYmplY3QKLXsKLSAgICBSZWZQdHI8V2ViRWRpdENvbW1hbmRQ
cm94eT4gbV9jb21tYW5kOwotfQotLSAoaWQpaW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5OihQ
YXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+KWNvbW1hbmQ7Ci0tIChXZWJFZGl0Q29tbWFu
ZFByb3h5Kiljb21tYW5kOwotQGVuZAotCi1AaW50ZXJmYWNlIFdLRWRpdG9yVW5kb1RhcmdldE9i
akMgOiBOU09iamVjdAotLSAodm9pZCl1bmRvRWRpdGluZzooaWQpc2VuZGVyOwotLSAodm9pZCly
ZWRvRWRpdGluZzooaWQpc2VuZGVyOwotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gV0tFZGl0Q29t
bWFuZE9iakMKLQotLSAoaWQpaW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5OihQYXNzUmVmUHRy
PFdlYkVkaXRDb21tYW5kUHJveHk+KWNvbW1hbmQKLXsKLSAgICBzZWxmID0gW3N1cGVyIGluaXRd
OwotICAgIGlmICghc2VsZikKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIG1fY29tbWFuZCA9
IGNvbW1hbmQ7Ci0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KLS0gKFdlYkVkaXRDb21tYW5kUHJveHkq
KWNvbW1hbmQKLXsKLSAgICByZXR1cm4gbV9jb21tYW5kLmdldCgpOwotfQotCi1AZW5kCi0KLUBp
bXBsZW1lbnRhdGlvbiBXS0VkaXRvclVuZG9UYXJnZXRPYmpDCi0KLS0gKHZvaWQpdW5kb0VkaXRp
bmc6KGlkKXNlbmRlcgotewotICAgIEFTU0VSVChbc2VuZGVyIGlzS2luZE9mQ2xhc3M6W1dLRWRp
dENvbW1hbmRPYmpDIGNsYXNzXV0pOwotICAgIFtzZW5kZXIgY29tbWFuZF0tPnVuYXBwbHkoKTsK
LX0KLQotLSAodm9pZClyZWRvRWRpdGluZzooaWQpc2VuZGVyCi17Ci0gICAgQVNTRVJUKFtzZW5k
ZXIgaXNLaW5kT2ZDbGFzczpbV0tFZGl0Q29tbWFuZE9iakMgY2xhc3NdXSk7Ci0gICAgW3NlbmRl
ciBjb21tYW5kXS0+cmVhcHBseSgpOwotfQotCi1AZW5kCi0KIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBQYWdlQ2xpZW50SW1wbDo6UGFnZUNsaWVudEltcGwoV0tWaWV3KiB3a1ZpZXcsIFdLV2ViVmll
dyAqd2ViVmlldykKICAgICA6IG1fd2tWaWV3KHdrVmlldykKICAgICAsIG1fd2ViVmlldyh3ZWJW
aWV3KQotICAgICwgbV91bmRvVGFyZ2V0KGFkb3B0TlMoW1tXS0VkaXRvclVuZG9UYXJnZXRPYmpD
IGFsbG9jXSBpbml0XSkpCiAjaWYgVVNFKERJQ1RBVElPTl9BTFRFUk5BVElWRVMpCiAgICAgLCBt
X2FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPEFsdGVybmF0aXZl
VGV4dFVJQ29udHJvbGxlcj4oKSkKICNlbmRpZgpAQCAtMjA3LDggKzE1OCw4IEBAIE5TV2luZG93
ICpQYWdlQ2xpZW50SW1wbDo6YWN0aXZlV2luZG93KCkgY29uc3QKICAgICBpZiAobV93a1ZpZXcu
X3RodW1ibmFpbFZpZXcpCiAgICAgICAgIHJldHVybiBtX3drVmlldy5fdGh1bWJuYWlsVmlldy53
aW5kb3c7CiAjZW5kaWYKLSAgICBpZiAobV93a1ZpZXcuX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVw
YXJhdGlvbikKLSAgICAgICAgcmV0dXJuIG1fd2tWaWV3Ll90YXJnZXRXaW5kb3dGb3JNb3ZlUHJl
cGFyYXRpb247CisgICAgaWYgKG1faW1wbCAmJiBtX2ltcGwtPnRhcmdldFdpbmRvd0Zvck1vdmVQ
cmVwYXJhdGlvbigpKQorICAgICAgICByZXR1cm4gbV9pbXBsLT50YXJnZXRXaW5kb3dGb3JNb3Zl
UHJlcGFyYXRpb24oKTsKICAgICByZXR1cm4gbV93a1ZpZXcud2luZG93OwogfQogCkBAIC0zMDcs
NyArMjU4LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUmVsYXVuY2hQcm9jZXNzKCkKIAog
dm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQogewotICAgIFttX3dr
VmlldyBfcHJlZmVyZW5jZXNEaWRDaGFuZ2VdOworICAgIG1faW1wbC0+cHJlZmVyZW5jZXNEaWRD
aGFuZ2UoKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6dG9vbFRpcENoYW5nZWQoY29uc3Qg
U3RyaW5nJiBvbGRUb29sVGlwLCBjb25zdCBTdHJpbmcmIG5ld1Rvb2xUaXApCkBAIC0zNzMsMTUg
KzMyNCw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGll
cyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6
OnJlZ2lzdGVyRWRpdENvbW1hbmQoUGFzc1JlZlB0cjxXZWJFZGl0Q29tbWFuZFByb3h5PiBwcnBD
b21tYW5kLCBXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8gdW5kb09yUmVkbykKIHsKLSAgICBSZWZQ
dHI8V2ViRWRpdENvbW1hbmRQcm94eT4gY29tbWFuZCA9IHBycENvbW1hbmQ7Ci0KLSAgICBSZXRh
aW5QdHI8V0tFZGl0Q29tbWFuZE9iakM+IGNvbW1hbmRPYmpDID0gYWRvcHROUyhbW1dLRWRpdENv
bW1hbmRPYmpDIGFsbG9jXSBpbml0V2l0aFdlYkVkaXRDb21tYW5kUHJveHk6Y29tbWFuZF0pOwot
ICAgIFN0cmluZyBhY3Rpb25OYW1lID0gV2ViRWRpdENvbW1hbmRQcm94eTo6bmFtZUZvckVkaXRB
Y3Rpb24oY29tbWFuZC0+ZWRpdEFjdGlvbigpKTsKLQotICAgIE5TVW5kb01hbmFnZXIgKnVuZG9N
YW5hZ2VyID0gW21fd2tWaWV3IHVuZG9NYW5hZ2VyXTsKLSAgICBbdW5kb01hbmFnZXIgcmVnaXN0
ZXJVbmRvV2l0aFRhcmdldDptX3VuZG9UYXJnZXQuZ2V0KCkgc2VsZWN0b3I6KCh1bmRvT3JSZWRv
ID09IFdlYlBhZ2VQcm94eTo6VW5kbykgPyBAc2VsZWN0b3IodW5kb0VkaXRpbmc6KSA6IEBzZWxl
Y3RvcihyZWRvRWRpdGluZzopKSBvYmplY3Q6Y29tbWFuZE9iakMuZ2V0KCldOwotICAgIGlmICgh
YWN0aW9uTmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIFt1bmRvTWFuYWdlciBzZXRBY3Rpb25OYW1l
OihOU1N0cmluZyAqKWFjdGlvbk5hbWVdOworICAgIG1faW1wbC0+cmVnaXN0ZXJFZGl0Q29tbWFu
ZChwcnBDb21tYW5kLCB1bmRvT3JSZWRvKTsKIH0KIAogI2lmIFVTRShJTlNFUlRJT05fVU5ET19H
Uk9VUElORykKQEAgLTM5Myw3ICszMzYsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZWdpc3Rl
ckluc2VydGlvblVuZG9Hcm91cGluZygpCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyQWxs
RWRpdENvbW1hbmRzKCkKIHsKLSAgICBbW21fd2tWaWV3IHVuZG9NYW5hZ2VyXSByZW1vdmVBbGxB
Y3Rpb25zV2l0aFRhcmdldDptX3VuZG9UYXJnZXQuZ2V0KCldOworICAgIG1faW1wbC0+Y2xlYXJB
bGxFZGl0Q29tbWFuZHMoKTsKIH0KIAogYm9vbCBQYWdlQ2xpZW50SW1wbDo6Y2FuVW5kb1JlZG8o
V2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvIHVuZG9PclJlZG8pCkBAIC01MTUsMTcgKzQ1OCwxNyBA
QCBSZWZQdHI8V2ViQ29sb3JQaWNrZXI+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVDb2xvclBpY2tl
cihXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbgogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0
SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgbGlmZXRpbWUpCiB7Ci0gICAgW21fd2tWaWV3IF9zZXRU
ZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3IuZ2V0KCkgd2l0aExpZmV0aW1lOmxpZmV0aW1lXTsK
KyAgICBtX2ltcGwtPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvci5nZXQoKSwgbGlmZXRp
bWUpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29y
ZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbiBkaXNtaXNzYWxBbmltYXRp
b24pCiB7Ci0gICAgW21fd2tWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOmRp
c21pc3NhbEFuaW1hdGlvbl07CisgICAgbV9pbXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5p
bWF0aW9uKGRpc21pc3NhbEFuaW1hdGlvbik7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnNl
dFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCBwcm9ncmVzcykKIHsKLSAgICBb
bV93a1ZpZXcgX3NldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczpwcm9ncmVzc107Cisg
ICAgbV9pbXBsLT5zZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MocHJvZ3Jlc3MpOwog
fQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjphY2Nlc3NpYmlsaXR5V2ViUHJvY2Vzc1Rva2VuUmVj
ZWl2ZWQoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhKQpAQCAtNTc2LDcgKzUxOSw3IEBA
IFBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiBQYWdlQ2xpZW50SW1wbDo6dGFrZVZpZXdTbmFwc2hv
dCgpCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnNlbGVjdGlvbkRpZENoYW5nZSgpCiB7Ci0gICAg
W21fd2tWaWV3IF9zZWxlY3Rpb25DaGFuZ2VkXTsKKyAgICBtX2ltcGwtPnNlbGVjdGlvbkRpZENo
YW5nZSgpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjp3aGVlbEV2ZW50V2FzTm90SGFuZGxl
ZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50JiBldmVudCkKQEAgLTYwMywxMCAr
NTQ2LDEwIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRT
dGF0ZSh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dEluCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6
OmRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwKGNvbnN0IERpY3Rpb25hcnlQb3B1cEluZm8mIGRp
Y3Rpb25hcnlQb3B1cEluZm8pCiB7Ci0gICAgW21fd2tWaWV3IF9wcmVwYXJlRm9yRGljdGlvbmFy
eUxvb2t1cF07CisgICAgbV9pbXBsLT5wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cCgpOwogCiAg
ICAgRGljdGlvbmFyeUxvb2t1cDo6c2hvd1BvcHVwKGRpY3Rpb25hcnlQb3B1cEluZm8sIG1fd2tW
aWV3LCBbdGhpc10oVGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgewotICAgICAgICBbbV93
a1ZpZXcgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6VGV4dElu
ZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAgICAgICBtX2ltcGwtPnNldFRl
eHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQ
ZXJtYW5lbnQpOwogICAgIH0pOwogfQogCkBAIC02NjQsNyArNjA3LDcgQEAgdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6aW50cmluc2ljQ29udGVudFNpemVEaWRDaGFuZ2UoY29uc3QgSW50U2l6ZSYgaW50
cmluc2ljQ29udGUKICAgICBpZiAobV93ZWJWaWV3KQogICAgICAgICBbbV93ZWJWaWV3IF9zZXRJ
bnRyaW5zaWNDb250ZW50U2l6ZTppbnRyaW5zaWNDb250ZW50U2l6ZV07CiAgICAgZWxzZQotICAg
ICAgICBbbV93a1ZpZXcgX3NldEludHJpbnNpY0NvbnRlbnRTaXplOmludHJpbnNpY0NvbnRlbnRT
aXplXTsKKyAgICAgICAgbV9pbXBsLT5zZXRJbnRyaW5zaWNDb250ZW50U2l6ZShpbnRyaW5zaWND
b250ZW50U2l6ZSk7CiB9CiAKIGJvb2wgUGFnZUNsaWVudEltcGw6OmV4ZWN1dGVTYXZlZENvbW1h
bmRCeVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3JTdHJpbmcpCkBAIC04MzksNyArNzgy
LDcgQEAgQ0dSZWN0IFBhZ2VDbGllbnRJbXBsOjpib3VuZHNPZkxheWVySW5MYXllckJhY2tlZFdp
bmRvd0Nvb3JkaW5hdGVzKENBTGF5ZXIgKmxheWUKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFBl
cmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHREYXRhJiBy
ZXN1bHQsIGJvb2wgY29udGVudFByZXZlbnRzRGVmYXVsdCwgQVBJOjpPYmplY3QqIHVzZXJEYXRh
KQogewogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAg
W21fd2tWaWV3IF9kaWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9uSGl0VGVzdDpyZXN1bHQgY29udGVu
dFByZXZlbnRzRGVmYXVsdDpjb250ZW50UHJldmVudHNEZWZhdWx0IHVzZXJEYXRhOnVzZXJEYXRh
XTsKKyAgICBtX2ltcGwtPmRpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0KHJlc3VsdCwg
Y29udGVudFByZXZlbnRzRGVmYXVsdCwgdXNlckRhdGEpOwogI2VuZGlmCiB9CiAKQEAgLTg0OSw3
ICs3OTIsNyBAQCB2b2lkKiBQYWdlQ2xpZW50SW1wbDo6aW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9u
Q29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQoUmVmUHRyPAogICAgIGlmIChtX3dlYlZpZXcpCiAg
ICAgICAgIHJldHVybiBbbV93ZWJWaWV3IF9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9s
bGVyRm9ySGl0VGVzdFJlc3VsdDp3cmFwcGVyKCpoaXRUZXN0UmVzdWx0KSB3aXRoVHlwZTooX1dL
SW1tZWRpYXRlQWN0aW9uVHlwZSl0eXBlIHVzZXJEYXRhOihpZCkodXNlckRhdGEuZ2V0KCkpXTsK
ICNlbmRpZgotICAgIHJldHVybiBbbV93a1ZpZXcgX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNv
bnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0OnRvQVBJKGhpdFRlc3RSZXN1bHQuZ2V0KCkpIHdpdGhU
eXBlOnR5cGUgdXNlckRhdGE6dG9BUEkodXNlckRhdGEuZ2V0KCkpXTsKKyAgICByZXR1cm4gbV9p
bXBsLT5pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdCh0
b0FQSShoaXRUZXN0UmVzdWx0LmdldCgpKSwgdHlwZSwgdG9BUEkodXNlckRhdGEuZ2V0KCkpKTsK
IH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd1BsYXRmb3JtQ29udGV4dE1lbnUoTlNNZW51
ICptZW51LCBJbnRQb2ludCBsb2NhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oCmluZGV4IGUxODRl
YTcwMTRiNGUzOTlkZTFlMGRhZjdiODZmMWQ1OTcyZDAxZmMuLjNmNmE5ODVjNWZhNmE2YTlmZmFh
YzU4YWFlZDYwOWVhYWMxY2IxNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaApAQCAtMzUsNiArMzUs
NyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKK2NsYXNzIFdl
YlZpZXdJbXBsOwogCiBlbnVtIGNsYXNzIEltbWVkaWF0ZUFjdGlvblN0YXRlIHsKICAgICBOb25l
ID0gMCwKQEAgLTQ2LDEyICs0NywxMiBAQCBlbnVtIGNsYXNzIEltbWVkaWF0ZUFjdGlvblN0YXRl
IHsKIAogQGNsYXNzIEREQWN0aW9uQ29udGV4dDsKIEBjbGFzcyBRTFByZXZpZXdNZW51SXRlbTsK
LUBjbGFzcyBXS1ZpZXc7CiAKIEBpbnRlcmZhY2UgV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVy
IDogTlNPYmplY3QgPE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4g
ewogQHByaXZhdGUKLSAgICBXZWJLaXQ6OldlYlBhZ2VQcm94eSAqX3BhZ2U7Ci0gICAgV0tWaWV3
ICpfd2tWaWV3OworICAgIFdlYktpdDo6V2ViUGFnZVByb3h5KiBfcGFnZTsKKyAgICBOU1ZpZXcg
Kl92aWV3OworICAgIFdlYktpdDo6V2ViVmlld0ltcGwqIF92aWV3SW1wbDsKIAogICAgIFdlYktp
dDo6SW1tZWRpYXRlQWN0aW9uU3RhdGUgX3N0YXRlOwogICAgIFdlYktpdDo6V2ViSGl0VGVzdFJl
c3VsdERhdGEgX2hpdFRlc3RSZXN1bHREYXRhOwpAQCAtNjcsOCArNjgsOCBAQCBlbnVtIGNsYXNz
IEltbWVkaWF0ZUFjdGlvblN0YXRlIHsKICAgICBCT09MIF9oYXNBY3RpdmVJbW1lZGlhdGVBY3Rp
b247CiB9CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVBy
b3h5JilwYWdlIHZpZXc6KFdLVmlldyAqKXdrVmlldyByZWNvZ25pemVyOihOU0ltbWVkaWF0ZUFj
dGlvbkdlc3R1cmVSZWNvZ25pemVyICopaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcjsKLS0gKHZv
aWQpd2lsbERlc3Ryb3lWaWV3OihXS1ZpZXcgKil2aWV3OworLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2
aWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpdmlld0ltcGwgcmVjb2duaXplcjooTlNJbW1l
ZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXI7
CistICh2b2lkKXdpbGxEZXN0cm95VmlldzooTlNWaWV3ICopdmlldzsKIC0gKHZvaWQpZGlkUGVy
Zm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3Q6KGNvbnN0IFdlYktpdDo6V2ViSGl0VGVzdFJlc3Vs
dERhdGEmKWhpdFRlc3RSZXN1bHQgY29udGVudFByZXZlbnRzRGVmYXVsdDooQk9PTCljb250ZW50
UHJldmVudHNEZWZhdWx0IHVzZXJEYXRhOihBUEk6Ok9iamVjdCopdXNlckRhdGE7CiAtICh2b2lk
KWRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3M7CiAtIChCT09MKWhhc0FjdGl2ZUlt
bWVkaWF0ZUFjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
V0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KaW5kZXggMGU4ZDhmNGVkMTNjYWUz
NzFlMjZiNWEwYzdiZjdiNzdjYjUxYmI3NS4uNDdiNDFkNjFhZmNlZGY2NWY1NDc4ZDg3YTNjN2Iy
ZDRiNTE1NzU4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0lt
bWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KQEAgLTMwLDExICszMCwxMSBAQAog
CiAjaW1wb3J0ICJBUElIaXRUZXN0UmVzdWx0LmgiCiAjaW1wb3J0ICJXS05TVVJMRXh0cmFzLmgi
Ci0jaW1wb3J0ICJXS1ZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViUGFnZU1lc3NhZ2VzLmgi
CiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3NhZ2Vz
LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbXBvcnQgIldlYlZpZXdJbXBsLmgi
CiAjaW1wb3J0IDxXZWJDb3JlL0RhdGFEZXRlY3RvcnNTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUv
RGljdGlvbmFyeUxvb2t1cC5oPgogI2ltcG9ydCA8V2ViQ29yZS9HZW9tZXRyeVV0aWxpdGllcy5o
PgpAQCAtNjQsNyArNjQsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBAaW1wbGVtZW50
YXRpb24gV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyCiAKLS0gKGluc3RhbmNldHlwZSlpbml0
V2l0aFBhZ2U6KFdlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihXS1ZpZXcgKil3a1ZpZXcgcmVjb2du
aXplcjooTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWltbWVkaWF0ZUFjdGlv
blJlY29nbml6ZXIKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYlBhZ2VQcm94eSYp
cGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihXZWJWaWV3SW1wbCYpdmlld0ltcGwg
cmVjb2duaXplcjooTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWltbWVkaWF0
ZUFjdGlvblJlY29nbml6ZXIKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogCkBAIC03Miw3
ICs3Miw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgICAgIHJldHVybiBuaWw7CiAK
ICAgICBfcGFnZSA9ICZwYWdlOwotICAgIF93a1ZpZXcgPSB3a1ZpZXc7CisgICAgX3ZpZXcgPSB2
aWV3OworICAgIF92aWV3SW1wbCA9ICZ2aWV3SW1wbDsKICAgICBfdHlwZSA9IGtXS0ltbWVkaWF0
ZUFjdGlvbk5vbmU7CiAgICAgX2ltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXIgPSBpbW1lZGlhdGVB
Y3Rpb25SZWNvZ25pemVyOwogICAgIF9oYXNBY3RpdmVJbW1lZGlhdGVBY3Rpb24gPSBOTzsKQEAg
LTgwLDEwICs4MSwxMSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIHJldHVybiBzZWxm
OwogfQogCi0tICh2b2lkKXdpbGxEZXN0cm95VmlldzooV0tWaWV3ICopdmlldworLSAodm9pZCl3
aWxsRGVzdHJveVZpZXc6KE5TVmlldyAqKXZpZXcKIHsKICAgICBfcGFnZSA9IG51bGxwdHI7Ci0g
ICAgX3drVmlldyA9IG5pbDsKKyAgICBfdmlldyA9IG5pbDsKKyAgICBfdmlld0ltcGwgPSBudWxs
cHRyOwogICAgIF9oaXRUZXN0UmVzdWx0RGF0YSA9IFdlYkhpdFRlc3RSZXN1bHREYXRhKCk7CiAg
ICAgX2NvbnRlbnRQcmV2ZW50c0RlZmF1bHQgPSBOTzsKICAgICAKQEAgLTE2OCw5ICsxNzAsOSBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIGlmIChpbW1lZGlhdGVBY3Rpb25SZWNvZ25p
emVyICE9IF9pbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBbX3drVmlldyBfcHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl07CisgICAgX3Zp
ZXdJbXBsLT5wcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uKCk7CiAKLSAgICBbX3dr
VmlldyBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c107CisgICAgX3ZpZXdJbXBs
LT5kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbih0cnVlKTsK
IAogICAgIF9wYWdlLT5zZXRNYWludGFpbnNJbmFjdGl2ZVNlbGVjdGlvbih0cnVlKTsKIApAQCAt
MjMxLDcgKzIzMyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKICAgICBfcGFnZS0+aW1t
ZWRpYXRlQWN0aW9uRGlkQ2FuY2VsKCk7CiAKLSAgICBbX3drVmlldyBfY2FuY2VsSW1tZWRpYXRl
QWN0aW9uQW5pbWF0aW9uXTsKKyAgICBfdmlld0ltcGwtPmNhbmNlbEltbWVkaWF0ZUFjdGlvbkFu
aW1hdGlvbigpOwogCiAgICAgX3BhZ2UtPnNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVz
cygwKTsKICAgICBbc2VsZiBfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZV07CkBAIC0yNDUsNyAr
MjQ3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogICAgIF9wYWdlLT5pbW1lZGlhdGVB
Y3Rpb25EaWRDb21wbGV0ZSgpOwogCi0gICAgW193a1ZpZXcgX2NvbXBsZXRlSW1tZWRpYXRlQWN0
aW9uQW5pbWF0aW9uXTsKKyAgICBfdmlld0ltcGwtPmNvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5p
bWF0aW9uKCk7CiAKICAgICBfcGFnZS0+c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNz
KDEpOwogfQpAQCAtMzQ1LDEyICszNDcsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAog
LSAoTlNWaWV3ICopbWVudUl0ZW06KE5TTWVudUl0ZW0gKiltZW51SXRlbSB2aWV3QXRTY3JlZW5Q
b2ludDooTlNQb2ludClzY3JlZW5Qb2ludAogewotICAgIHJldHVybiBfd2tWaWV3OworICAgIHJl
dHVybiBfdmlldzsKIH0KIAogLSAoaWQ8UUxQcmV2aWV3SXRlbT4pbWVudUl0ZW06KE5TTWVudUl0
ZW0gKiltZW51SXRlbSBwcmV2aWV3SXRlbUF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQKIHsKLSAgICBp
ZiAoIV93a1ZpZXcpCisgICAgaWYgKCFfdmlldykKICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAg
IFJlZlB0cjxBUEk6OkhpdFRlc3RSZXN1bHQ+IGhpdFRlc3RSZXN1bHQgPSBbc2VsZiBfd2ViSGl0
VGVzdFJlc3VsdF07CkBAIC0zNjksMjAgKzM3MSwyMCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0
OwogCiAtIChOU1JlY3QpbWVudUl0ZW06KE5TTWVudUl0ZW0gKiltZW51SXRlbSBpdGVtRnJhbWVG
b3JQb2ludDooTlNQb2ludClwb2ludAogewotICAgIGlmICghX3drVmlldykKKyAgICBpZiAoIV92
aWV3KQogICAgICAgICByZXR1cm4gTlNaZXJvUmVjdDsKIAogICAgIFJlZlB0cjxBUEk6OkhpdFRl
c3RSZXN1bHQ+IGhpdFRlc3RSZXN1bHQgPSBbc2VsZiBfd2ViSGl0VGVzdFJlc3VsdF07Ci0gICAg
cmV0dXJuIFtfd2tWaWV3IGNvbnZlcnRSZWN0OmhpdFRlc3RSZXN1bHQtPmVsZW1lbnRCb3VuZGlu
Z0JveCgpIHRvVmlldzpuaWxdOworICAgIHJldHVybiBbX3ZpZXcgY29udmVydFJlY3Q6aGl0VGVz
dFJlc3VsdC0+ZWxlbWVudEJvdW5kaW5nQm94KCkgdG9WaWV3Om5pbF07CiB9CiAKIC0gKE5TU2l6
ZSltZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtIG1heFNpemVGb3JQb2ludDooTlNQb2lu
dClwb2ludAogewotICAgIGlmICghX3drVmlldykKKyAgICBpZiAoIV92aWV3KQogICAgICAgICBy
ZXR1cm4gTlNaZXJvU2l6ZTsKIAotICAgIE5TU2l6ZSBzY3JlZW5TaXplID0gX3drVmlldy53aW5k
b3cuc2NyZWVuLmZyYW1lLnNpemU7Ci0gICAgRmxvYXRSZWN0IGxhcmdlc3RSZWN0ID0gbGFyZ2Vz
dFJlY3RXaXRoQXNwZWN0UmF0aW9JbnNpZGVSZWN0KHNjcmVlblNpemUud2lkdGggLyBzY3JlZW5T
aXplLmhlaWdodCwgX3drVmlldy5ib3VuZHMpOworICAgIE5TU2l6ZSBzY3JlZW5TaXplID0gX3Zp
ZXcud2luZG93LnNjcmVlbi5mcmFtZS5zaXplOworICAgIEZsb2F0UmVjdCBsYXJnZXN0UmVjdCA9
IGxhcmdlc3RSZWN0V2l0aEFzcGVjdFJhdGlvSW5zaWRlUmVjdChzY3JlZW5TaXplLndpZHRoIC8g
c2NyZWVuU2l6ZS5oZWlnaHQsIF92aWV3LmJvdW5kcyk7CiAgICAgcmV0dXJuIE5TTWFrZVNpemUo
bGFyZ2VzdFJlY3Qud2lkdGgoKSAqIDAuNzUsIGxhcmdlc3RSZWN0LmhlaWdodCgpICogMC43NSk7
CiB9CiAKQEAgLTQwMyw3ICs0MDUsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiAgICAg
UmVmUHRyPFdlYlBhZ2VQcm94eT4gcGFnZSA9IF9wYWdlOwogICAgIFBhZ2VPdmVybGF5OjpQYWdl
T3ZlcmxheUlEIG92ZXJsYXlJRCA9IF9oaXRUZXN0UmVzdWx0RGF0YS5kZXRlY3RlZERhdGFPcmln
aW5hdGluZ1BhZ2VPdmVybGF5OwotICAgIF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IFthY3Rpb25D
b250ZXh0IGNvbnRleHRGb3JWaWV3Ol93a1ZpZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25TdGFy
dGVkSGFuZGxlcjpeKCkgeworICAgIF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IFthY3Rpb25Db250
ZXh0IGNvbnRleHRGb3JWaWV3Ol92aWV3IGFsdE1vZGU6WUVTIGludGVyYWN0aW9uU3RhcnRlZEhh
bmRsZXI6XigpIHsKICAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGF0YURl
dGVjdG9yc0RpZFByZXNlbnRVSShvdmVybGF5SUQpKTsKICAgICB9IGludGVyYWN0aW9uQ2hhbmdl
ZEhhbmRsZXI6XigpIHsKICAgICAgICAgaWYgKF9oaXRUZXN0UmVzdWx0RGF0YS5kZXRlY3RlZERh
dGFUZXh0SW5kaWNhdG9yKQpAQCAtNDE0LDcgKzQxNiw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CiAgICAgICAgIFtzZWxmIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRlXTsKICAgICB9XTsK
IAotICAgIFtfY3VycmVudEFjdGlvbkNvbnRleHQgc2V0SGlnaGxpZ2h0RnJhbWU6W193a1ZpZXcu
d2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46W193a1ZpZXcgY29udmVydFJlY3Q6X2hpdFRlc3RS
ZXN1bHREYXRhLmRldGVjdGVkRGF0YUJvdW5kaW5nQm94IHRvVmlldzpuaWxdXV07CisgICAgW19j
dXJyZW50QWN0aW9uQ29udGV4dCBzZXRIaWdobGlnaHRGcmFtZTpbX3ZpZXcud2luZG93IGNvbnZl
cnRSZWN0VG9TY3JlZW46W192aWV3IGNvbnZlcnRSZWN0Ol9oaXRUZXN0UmVzdWx0RGF0YS5kZXRl
Y3RlZERhdGFCb3VuZGluZ0JveCB0b1ZpZXc6bmlsXV1dOwogCiAgICAgTlNBcnJheSAqbWVudUl0
ZW1zID0gW1tnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXSBtZW51SXRl
bXNGb3JSZXN1bHQ6W19jdXJyZW50QWN0aW9uQ29udGV4dCBtYWluUmVzdWx0XSBhY3Rpb25Db250
ZXh0Ol9jdXJyZW50QWN0aW9uQ29udGV4dC5nZXQoKV07CiAKQEAgLTQzNSw3ICs0MzcsNyBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIFthY3Rpb25Db250ZXh0IHNldEltbWVkaWF0ZTpZ
RVNdOwogCiAgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gcGFnZSA9IF9wYWdlOwotICAgIF9jdXJy
ZW50QWN0aW9uQ29udGV4dCA9IFthY3Rpb25Db250ZXh0IGNvbnRleHRGb3JWaWV3Ol93a1ZpZXcg
YWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25TdGFydGVkSGFuZGxlcjpeKCkgeworICAgIF9jdXJyZW50
QWN0aW9uQ29udGV4dCA9IFthY3Rpb25Db250ZXh0IGNvbnRleHRGb3JWaWV3Ol92aWV3IGFsdE1v
ZGU6WUVTIGludGVyYWN0aW9uU3RhcnRlZEhhbmRsZXI6XigpIHsKICAgICB9IGludGVyYWN0aW9u
Q2hhbmdlZEhhbmRsZXI6XigpIHsKICAgICAgICAgaWYgKF9oaXRUZXN0UmVzdWx0RGF0YS5saW5r
VGV4dEluZGljYXRvcikKICAgICAgICAgICAgIHBhZ2UtPnNldFRleHRJbmRpY2F0b3IoX2hpdFRl
c3RSZXN1bHREYXRhLmxpbmtUZXh0SW5kaWNhdG9yLT5kYXRhKCkpOwpAQCAtNDQzLDcgKzQ0NSw3
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgICAgIFtzZWxmIF9jbGVhckltbWVkaWF0
ZUFjdGlvblN0YXRlXTsKICAgICB9XTsKIAotICAgIFtfY3VycmVudEFjdGlvbkNvbnRleHQgc2V0
SGlnaGxpZ2h0RnJhbWU6W193a1ZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46W193a1Zp
ZXcgY29udmVydFJlY3Q6X2hpdFRlc3RSZXN1bHREYXRhLmVsZW1lbnRCb3VuZGluZ0JveCB0b1Zp
ZXc6bmlsXV1dOworICAgIFtfY3VycmVudEFjdGlvbkNvbnRleHQgc2V0SGlnaGxpZ2h0RnJhbWU6
W192aWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOltfdmlldyBjb252ZXJ0UmVjdDpfaGl0
VGVzdFJlc3VsdERhdGEuZWxlbWVudEJvdW5kaW5nQm94IHRvVmlldzpuaWxdXV07CiAKICAgICBS
ZWZQdHI8QVBJOjpIaXRUZXN0UmVzdWx0PiBoaXRUZXN0UmVzdWx0ID0gW3NlbGYgX3dlYkhpdFRl
c3RSZXN1bHRdOwogICAgIE5TQXJyYXkgKm1lbnVJdGVtcyA9IFtbZ2V0RERBY3Rpb25zTWFuYWdl
ckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gbWVudUl0ZW1zRm9yVGFyZ2V0VVJMOmhpdFRlc3RSZXN1
bHQtPmFic29sdXRlTGlua1VSTCgpIGFjdGlvbkNvbnRleHQ6X2N1cnJlbnRBY3Rpb25Db250ZXh0
LmdldCgpXTsKQEAgLTQ2NSwxMCArNDY3LDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAg
ICAgaWYgKCFkaWN0aW9uYXJ5UG9wdXBJbmZvLmF0dHJpYnV0ZWRTdHJpbmcpCiAgICAgICAgIHJl
dHVybiBuaWw7CiAKLSAgICBbX3drVmlldyBfcHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXBdOwor
ICAgIF92aWV3SW1wbC0+cHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXAoKTsKIAotICAgIHJldHVy
biBEaWN0aW9uYXJ5TG9va3VwOjphbmltYXRpb25Db250cm9sbGVyRm9yUG9wdXAoZGljdGlvbmFy
eVBvcHVwSW5mbywgX3drVmlldywgW3NlbGZdKFRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3Ip
IHsKLSAgICAgICAgW193a1ZpZXcgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRo
TGlmZXRpbWU6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAgIHJl
dHVybiBEaWN0aW9uYXJ5TG9va3VwOjphbmltYXRpb25Db250cm9sbGVyRm9yUG9wdXAoZGljdGlv
bmFyeVBvcHVwSW5mbywgX3ZpZXcsIFtzZWxmXShUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9y
KSB7CisgICAgICAgIF92aWV3SW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBU
ZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudCk7CiAgICAgfSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263856</attachid>
            <date>2015-10-22 13:55:05 -0700</date>
            <delta_ts>2015-10-22 14:52:21 -0700</delta_ts>
            <desc>fix mavericks build</desc>
            <filename>a.diff</filename>
            <type>text/plain</type>
            <size>132012</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA5YzcwMTM4Li43MmExZTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjM3
IEBACisyMDE1LTEwLTIyICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIFdLVmlldyBiZWluZyBpbnNpZGUgV0tXZWJWaWV3IGxlYWRzIHRvIHdlaXJkIEFQ
SSBpc3N1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1MDE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgcmVuZXdH
U3RhdGVdKToKKyAgICAgICAgKC1bV0tWaWV3IHdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkOnR5
cGVzOl0pOgorICAgICAgICAoLVtXS1ZpZXcgY2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYTpd
KToKKyAgICAgICAgKC1bV0tWaWV3IHNjcm9sbFdoZWVsOl0pOgorICAgICAgICAoLVtXS1ZpZXcg
c3dpcGVXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBtb3VzZU1vdmVkOl0pOgorICAg
ICAgICAoLVtXS1ZpZXcgbW91c2VEb3duOl0pOgorICAgICAgICAoLVtXS1ZpZXcgbW91c2VVcDpd
KToKKyAgICAgICAgKC1bV0tWaWV3IG1vdXNlRHJhZ2dlZDpdKToKKyAgICAgICAgKC1bV0tWaWV3
IHByZXNzdXJlQ2hhbmdlV2l0aEV2ZW50Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgYWNjZXB0c0Zp
cnN0TW91c2U6XSk6CisgICAgICAgICgtW1dLVmlldyBzaG91bGREZWxheVdpbmRvd09yZGVyaW5n
Rm9yRXZlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToK
KyAgICAgICAgKC1bV0tWaWV3IGtleVVwOl0pOgorICAgICAgICAoLVtXS1ZpZXcga2V5RG93bjpd
KToKKyAgICAgICAgKC1bV0tWaWV3IGZsYWdzQ2hhbmdlZDpdKToKKyAgICAgICAgKC1bV0tWaWV3
IF9zdXBlclF1aWNrTG9va1dpdGhFdmVudDpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9hZGRGb250
UGFuZWxPYnNlcnZlcl0pOgorICAgICAgICAoLVtXS1ZpZXcgdmlld1dpbGxNb3ZlVG9XaW5kb3c6
XSk6CisgICAgICAgICgtW1dLVmlldyB2aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgt
W1dLVmlldyB2aWV3RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXNdKToKKyAgICAgICAgKC1bV0tW
aWV3IGVuYWJsZUFjY2Vzc2liaWxpdHlJZk5lY2Vzc2FyeV0pOgorICAgICAgICAoLVtXS1ZpZXcg
cXVpY2tMb29rV2l0aEV2ZW50Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgX2NvbG9yU3BhY2VdKToK
KyAgICAgICAgKC1bV0tWaWV3IF9kaWRSZWxhdW5jaFByb2Nlc3NdKToKKyAgICAgICAgKC1bV0tW
aWV3IF9zZXRUZXh0SW5kaWNhdG9yOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX3NldFRleHRJbmRp
Y2F0b3I6d2l0aExpZmV0aW1lOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX2NsZWFyVGV4dEluZGlj
YXRvcldpdGhBbmltYXRpb246XSk6CisgICAgICAgICgtW1dLVmlldyBfc2V0VGV4dEluZGljYXRv
ckFuaW1hdGlvblByb2dyZXNzOl0pOgorICAgICAgICAoLVtXS1ZpZXcgaW5pdFdpdGhGcmFtZTpw
cm9jZXNzUG9vbDpjb25maWd1cmF0aW9uOndlYlZpZXc6XSk6CisgICAgICAgICgtW1dLVmlldyBf
ZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3Q6Y29udGVudFByZXZlbnRzRGVmYXVsdDp1
c2VyRGF0YTpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9pbnRlcm5hbEltbWVkaWF0ZUFjdGlvbkFu
aW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0OndpdGhUeXBlOnVzZXJEYXRhOl0pOgor
ICAgICAgICAoLVtXS1ZpZXcgX2ludGVybmFsUHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1h
dGlvbl0pOgorICAgICAgICAoLVtXS1ZpZXcgX2ludGVybmFsQ2FuY2VsSW1tZWRpYXRlQWN0aW9u
QW5pbWF0aW9uXSk6CisgICAgICAgICgtW1dLVmlldyBfaW50ZXJuYWxDb21wbGV0ZUltbWVkaWF0
ZUFjdGlvbkFuaW1hdGlvbl0pOgorICAgICAgICAoLVtXS1ZpZXcgX2ludGVybmFsRGlzbWlzc0Nv
bnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb246XSk6CisgICAgICAgICgtW1dL
VmlldyBiZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNdKToKKyAgICAgICAgKC1bV0tW
aWV3IGVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNdKToKKyAgICAgICAgKC1bV0tWaWV3
IGVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNTeW5jXSk6CisgICAgICAgICgtW1dLVmll
dyBfcHJlcGFyZUZvck1vdmVUb1dpbmRvdzp3aXRoQ29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAg
ICAgICgtW1dLVmlldyBpc0RlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNdKToKKyAgICAgICAg
KC1bV0tWaWV3IGFsbG93c0xpbmtQcmV2aWV3XSk6CisgICAgICAgICgtW1dLVmlldyBzZXRBbGxv
d3NMaW5rUHJldmlldzpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9zZXRJZ25vcmVzQWxsRXZlbnRz
Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgX3NldElnbm9yZXNOb25XaGVlbE1vdXNlRXZlbnRzOl0p
OgorICAgICAgICAoLVtXS1ZpZXcgX3NldElnbm9yZXNOb25XaGVlbEV2ZW50czpdKToKKyAgICAg
ICAgKC1bV0tWaWV3IF9pZ25vcmVzTm9uV2hlZWxFdmVudHNdKToKKyAgICAgICAgKC1bV0tWaWV3
IF9pZ25vcmVzQWxsRXZlbnRzXSk6CisgICAgICAgICgtW1dLVmlldyBfc2V0T3ZlcnJpZGVEZXZp
Y2VTY2FsZUZhY3RvcjpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9vdmVycmlkZURldmljZVNjYWxl
RmFjdG9yXSk6CisgICAgICAgICgtW1dLVmlldyBfc2V0VG9wQ29udGVudEluc2V0Ol0pOgorICAg
ICAgICAoLVtXS1ZpZXcgX3RvcENvbnRlbnRJbnNldF0pOgorICAgICAgICAoLVtXS1ZpZXcgX2Rp
c21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdKToKKyAgICAgICAgKC1bV0tWaWV3IF9k
aXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbjpdKToKKyAgICAg
ICAgKC1bV0tWaWV3IF9zZXRBdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHM6XSk6Cisg
ICAgICAgICgtW1dLVmlldyBfYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzXSk6Cisg
ICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIGluaXRXaXRoVmlldzpdKTogRGVs
ZXRlZC4KKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3RhcnRPYnNlcnZp
bmc6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0
b3BPYnNlcnZpbmc6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9i
c2VydmVyIF93aW5kb3dEaWRPcmRlck9uU2NyZWVuOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBfd2luZG93RGlkT3JkZXJPZmZTY3JlZW46XSk6IERl
bGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBkZWFsbG9jXSk6IERlbGV0ZWQuCisgICAgICAgICgt
W1dLVmlldyBfdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lc10pOiBEZWxldGVkLgorICAgICAgICAo
LVtXS1ZpZXcgdXBkYXRlRm9udFBhbmVsSWZOZWVkZWRdKTogRGVsZXRlZC4KKyAgICAgICAgKC1b
V0tWaWV3IF9zZWxlY3Rpb25DaGFuZ2VkXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBh
ZGRXaW5kb3dPYnNlcnZlcnNGb3JXaW5kb3c6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmll
dyByZW1vdmVXaW5kb3dPYnNlcnZlcnNdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IGRv
V2luZG93RGlkQ2hhbmdlU2NyZWVuXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfd2lu
ZG93RGlkQmVjb21lS2V5Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0Rp
ZENoYW5nZVNjcmVlbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWRD
aGFuZ2VMYXllckhvc3Rpbmc6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfd2luZG93
RGlkUmVzaWduS2V5Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZE1p
bmlhdHVyaXplOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZERlbWlu
aWF0dXJpemU6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfd2luZG93RGlkTW92ZTpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWRSZXNpemU6XSk6IERlbGV0
ZWQuCisgICAgICAgICgtW1dLVmlldyBfd2luZG93RGlkT3JkZXJPZmZTY3JlZW46XSk6IERlbGV0
ZWQuCisgICAgICAgICgtW1dLVmlldyBfd2luZG93RGlkT3JkZXJPblNjcmVlbjpdKTogRGVsZXRl
ZC4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllczpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWRDaGFuZ2VPY2NsdXNpb25T
dGF0ZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9wcmVwYXJlRm9yRGljdGlvbmFy
eUxvb2t1cF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX2RpY3Rpb25hcnlMb29rdXBQ
b3BvdmVyV2lsbENsb3NlOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX2FjY2Vzc2li
aWxpdHlSZWdpc3RlclVJUHJvY2Vzc1Rva2Vuc10pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1Zp
ZXcgX3Bvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6IERlbGV0
ZWQuCisgICAgICAgICgtW1dLVmlldyBfaW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3JdKTogRGVs
ZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9wcmVmZXJlbmNlc0RpZENoYW5nZV0pOiBEZWxldGVk
LgorICAgICAgICAoLVtXS1ZpZXcgX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbl0pOiBE
ZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3VwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9tYXRp
Y10pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpv
Zk9iamVjdDpjaGFuZ2U6Y29udGV4dDpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9k
aXNwYXRjaFNldFRvcENvbnRlbnRJbnNldF0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphdXRvbWF0aWNhbGx5
QWRqdXN0c0NvbnRlbnRJbnNldHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dG9w
Q29udGVudEluc2V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Om92ZXJyaWRlRGV2
aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aXNEZWZlcnJp
bmdWaWV3SW5XaW5kb3dDaGFuZ2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRh
cmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpsYXN0UHJlc3N1cmVFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjph
bGxvd3NMaW5rUHJldmlldyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppZ25vcmVz
Tm9uV2hlZWxFdmVudHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aWdub3Jlc0Fs
bEV2ZW50cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjcmVhdGVXZWFrUHRyKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChTT0ZU
X0xJTktfQ09OU1RBTlRfTUFZX0ZBSUwpOgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlP
YnNlcnZlciBpbml0V2l0aFZpZXc6aW1wbDpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmls
aXR5T2JzZXJ2ZXIgZGVhbGxvY10pOgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNl
cnZlciBzdGFydE9ic2VydmluZzpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2Jz
ZXJ2ZXIgc3RvcE9ic2VydmluZzpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2Jz
ZXJ2ZXIgc3RhcnRPYnNlcnZpbmdGb250UGFuZWxdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNp
YmlsaXR5T2JzZXJ2ZXIgc3RhcnRPYnNlcnZpbmdMb29rdXBEaXNtaXNzYWxdKToKKyAgICAgICAg
KC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgX3dpbmRvd0RpZE9yZGVyT25TY3JlZW46XSk6
CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRPcmRlck9m
ZlNjcmVlbjpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgX3dpbmRv
d0RpZEJlY29tZUtleTpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIg
X3dpbmRvd0RpZFJlc2lnbktleTpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2Jz
ZXJ2ZXIgX3dpbmRvd0RpZE1pbmlhdHVyaXplOl0pOgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2li
aWxpdHlPYnNlcnZlciBfd2luZG93RGlkRGVtaW5pYXR1cml6ZTpdKToKKyAgICAgICAgKC1bV0tX
aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgX3dpbmRvd0RpZE1vdmU6XSk6CisgICAgICAgICgtW1dL
V2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRSZXNpemU6XSk6CisgICAgICAgICgt
W1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVy
dGllczpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgX3dpbmRvd0Rp
ZENoYW5nZVNjcmVlbjpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIg
X3dpbmRvd0RpZENoYW5nZUxheWVySG9zdGluZzpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNp
YmlsaXR5T2JzZXJ2ZXIgX3dpbmRvd0RpZENoYW5nZU9jY2x1c2lvblN0YXRlOl0pOgorICAgICAg
ICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9m
T2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0pOgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlP
YnNlcnZlciBfZGljdGlvbmFyeUxvb2t1cFBvcG92ZXJXaWxsQ2xvc2U6XSk6CisgICAgICAgICgt
W1dLRWRpdENvbW1hbmRPYmpDIGluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTpdKToKKyAgICAg
ICAgKC1bV0tFZGl0Q29tbWFuZE9iakMgY29tbWFuZF0pOgorICAgICAgICAoLVtXS0VkaXRvclVu
ZG9UYXJnZXRPYmpDIHVuZG9FZGl0aW5nOl0pOgorICAgICAgICAoLVtXS0VkaXRvclVuZG9UYXJn
ZXRPYmpDIHJlZG9FZGl0aW5nOl0pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2Vi
Vmlld0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6fldlYlZpZXdJbXBsKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlc2lnbkZpcnN0UmVzcG9uZGVyKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlbmV3R1N0YXRlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnVwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6c2V0QXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9tYXRp
Yyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRUb3BDb250ZW50SW5zZXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZGlzcGF0Y2hTZXRUb3BDb250ZW50SW5zZXQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZh
Y3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppbnRyaW5zaWNEZXZpY2VTY2Fs
ZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRPcmRlck9m
ZlNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRPcmRlck9u
U2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OndpbmRvd0RpZEJlY29tZUtl
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRSZXNpZ25LZXkpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkTWluaWF0dXJpemUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkRGVtaW5pYXR1cml6ZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRNb3ZlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OndpbmRvd0RpZFJlc2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllcyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VTY3JlZW4pOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkQ2hhbmdlTGF5ZXJIb3N0aW5nKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OndpbmRvd0RpZENoYW5nZU9jY2x1c2lvblN0YXRlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZpZXdXaWxsTW92ZVRvV2luZG93KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnZpZXdEaWRNb3ZlVG9XaW5kb3cpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6dmlld0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3ND
aGFuZ2VkRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29sb3JTcGFjZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpiZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRv
d0NoYW5nZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZW5kRGVmZXJyaW5nVmll
d0luV2luZG93Q2hhbmdlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjplbmREZWZl
cnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzU3luYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpwcmVwYXJlRm9yTW92ZVRvV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnByZXNzdXJlQ2hhbmdlV2l0aEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OmlzRWRpdGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZXhlY3V0ZUVk
aXRDb21tYW5kKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlZ2lzdGVyRWRpdENv
bW1hbmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y2xlYXJBbGxFZGl0Q29tbWFu
ZHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d3JpdGVTZWxlY3Rpb25Ub1Bhc3Rl
Ym9hcmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y2VudGVyU2VsZWN0aW9uSW5W
aXNpYmxlQXJlYSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZWxlY3Rpb25EaWRD
aGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c3RhcnRPYnNlcnZpbmdGb250
UGFuZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlRm9udFBhbmVsSWZO
ZWVkZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cHJlZmVyZW5jZXNEaWRDaGFu
Z2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0VGV4dEluZGljYXRvcik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3JBbmlt
YXRpb25Qcm9ncmVzcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkaXNtaXNzQ29u
dGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
OnF1aWNrTG9va1dpdGhFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwcmVw
YXJlRm9yRGljdGlvbmFyeUxvb2t1cCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpz
ZXRBbGxvd3NMaW5rUHJldmlldyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppbW1l
ZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9u
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNhbmNlbEltbWVkaWF0ZUFjdGlvbkFu
aW1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjb21wbGV0ZUltbWVkaWF0
ZUFjdGlvbkFuaW1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRJZ25v
cmVzTm9uV2hlZWxFdmVudHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SWdu
b3Jlc0FsbEV2ZW50cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphY2Nlc3NpYmls
aXR5UmVnaXN0ZXJVSVByb2Nlc3NUb2tlbnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFn
ZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1t
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6YWN0aXZlV2luZG93KToKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKToKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQpOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y2xlYXJBbGxFZGl0Q29tbWFuZHMpOgorICAgICAg
ICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2VsZWN0aW9uRGlkQ2hhbmdlKToKKyAgICAgICAg
KFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwKToKKyAg
ICAgICAgKC1bV0tFZGl0Q29tbWFuZE9iakMgaW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5Ol0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXS0VkaXRDb21tYW5kT2JqQyBjb21tYW5kXSk6IERlbGV0
ZWQuCisgICAgICAgICgtW1dLRWRpdG9yVW5kb1RhcmdldE9iakMgdW5kb0VkaXRpbmc6XSk6IERl
bGV0ZWQuCisgICAgICAgICgtW1dLRWRpdG9yVW5kb1RhcmdldE9iakMgcmVkb0VkaXRpbmc6XSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpQYWdlQ2xpZW50SW1w
bCk6IERlbGV0ZWQuCisgICAgICAgIE1vdmUgbW9yZSB0aGluZ3MgdG8gV2ViVmlld0ltcGwuCisg
ICAgICAgIFRoaXMgYWxzbyBpbnRyb2R1Y2VzIGFuIHVuZm9ydHVuYXRlIHBhdHRlcm4gdGhhdCBp
cyByZXF1aXJlZCBmb3IgdGhpbmdzIHdoaWNoCisgICAgICAgIGNsaWVudHMgb3ZlcnJpZGUgb24g
V0tWaWV3LCB3aGVyZSB3ZSBoYXZlIGEgZmxvdyBsaWtlIHRoaXM6CisgICAgICAgICAgICAgICAg
LSBzb21lYm9keSAoUGFnZUNsaWVudCwgZXRjLikgY2FsbHMgV2ViVmlld0ltcGw6OngKKyAgICAg
ICAgICAgICAgICAtIFdlYlZpZXdJbXBsOjp4IGRvZXMgbm90aGluZyBleGNlcHQgY2FsbCBbV0tW
aWV3IF94XQorICAgICAgICAgICAgICAgIC0gW1dLVmlldyBfeF0gY2FsbHMgV2ViVmlld0ltcGw6
OnhGcm9tVmlld09ubHksIHdoaWNoIGRvZXMgdGhlIHJlYWwgd29yaworICAgICAgICBBcyBsb25n
IGFzIG5vIGNsaWVudHMgY2FsbCB0aGUgLUZyb21WaWV3T25seSB2YXJpYW50LCB0aGlzIHdpbGwg
bWVhbiB0aGF0CisgICAgICAgIGFsbCBjYWxsZXJzIGFyZSBib3R0bGVuZWNrZWQgdGhyb3VnaCB0
aGUgb3ZlcnJpZGFibGUgV0tWaWV3IG1ldGhvZC4KKyAgICAgICAgSG93IHRoaXMgd29ya3Mgd2l0
aCBXS1dlYlZpZXcsIEkgYW0gbm90IHN1cmUgeWV0LgorCisgICAgICAgICogVUlQcm9jZXNzL21h
Yy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVB
Y3Rpb25Db250cm9sbGVyIGluaXRXaXRoUGFnZTp2aWV3OnZpZXdJbXBsOnJlY29nbml6ZXI6XSk6
CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciB3aWxsRGVzdHJveVZpZXc6
XSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBpbW1lZGlhdGVBY3Rp
b25SZWNvZ25pemVyV2lsbFByZXBhcmU6XSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9u
Q29udHJvbGxlciBpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyRGlkQ2FuY2VsQW5pbWF0aW9uOl0p
OgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgaW1tZWRpYXRlQWN0aW9u
UmVjb2duaXplckRpZENvbXBsZXRlQW5pbWF0aW9uOl0pOgorICAgICAgICAoLVtXS0ltbWVkaWF0
ZUFjdGlvbkNvbnRyb2xsZXIgbWVudUl0ZW06dmlld0F0U2NyZWVuUG9pbnQ6XSk6CisgICAgICAg
ICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBtZW51SXRlbTpwcmV2aWV3SXRlbUF0UG9p
bnQ6XSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBtZW51SXRlbTpp
dGVtRnJhbWVGb3JQb2ludDpdKToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyIG1lbnVJdGVtOm1heFNpemVGb3JQb2ludDpdKToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVB
Y3Rpb25Db250cm9sbGVyIF9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkVGV4dF0p
OgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgX2FuaW1hdGlvbkNvbnRy
b2xsZXJGb3JEYXRhRGV0ZWN0ZWRMaW5rXSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9u
Q29udHJvbGxlciBfYW5pbWF0aW9uQ29udHJvbGxlckZvclRleHRdKToKKyAgICAgICAgKC1bV0tJ
bW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGluaXRXaXRoUGFnZTp2aWV3OnJlY29nbml6ZXI6XSk6
IERlbGV0ZWQuCisgICAgICAgIEtlZXAgYSBnZW5lcmljIE5TVmlldywgdXNlIHRoZSBXZWJWaWV3
SW1wbCBmb3IgV0sqVmlldyByZWxhdGVkIHRoaW5ncy4KKwogMjAxNS0xMC0yMiAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEluaXRpYWwgTlNV
UkxTZXNzaW9uIFdlYlJlc291cmNlTG9hZGVyIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggOGM2MjVlOS4uZDk5NDY4NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtMzYsNyArMzYs
NiBAQAogI2ltcG9ydCAiQVBJTGVnYWN5Q29udGV4dEhpc3RvcnlDbGllbnQuaCIKICNpbXBvcnQg
IkFQSVBhZ2VDb25maWd1cmF0aW9uLmgiCiAjaW1wb3J0ICJBdHRyaWJ1dGVkU3RyaW5nLmgiCi0j
aW1wb3J0ICJDb2xvclNwYWNlRGF0YS5oIgogI2ltcG9ydCAiRGF0YVJlZmVyZW5jZS5oIgogI2lt
cG9ydCAiRWRpdGluZ1JhbmdlLmgiCiAjaW1wb3J0ICJFZGl0b3JTdGF0ZS5oIgpAQCAtNTksNyAr
NTgsNiBAQAogI2ltcG9ydCAiVmlld1NuYXBzaG90U3RvcmUuaCIKICNpbXBvcnQgIldLQVBJQ2Fz
dC5oIgogI2ltcG9ydCAiV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oIgotI2ltcG9ydCAi
V0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS0xheW91dE1vZGUuaCIK
ICNpbXBvcnQgIldLUHJpbnRpbmdWaWV3LmgiCiAjaW1wb3J0ICJXS1Byb2Nlc3NQb29sSW50ZXJu
YWwuaCIKQEAgLTk2LDE1ICs5NCwxMiBAQAogI2ltcG9ydCA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9j
YWxpemVkU3RyaW5ncy5oPgotI2ltcG9ydCA8V2ViQ29yZS9Mb29rdXBTUEkuaD4KLSNpbXBvcnQg
PFdlYkNvcmUvTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplclNQSS5oPgogI2ltcG9y
dCA8V2ViQ29yZS9OU01lbnVTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZh
Y3RvcnlNYWMuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbXBvcnQg
PFdlYkNvcmUvUmVnaW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9TaGFyZWRCdWZmZXIuaD4KLSNpbXBvcnQgPFdlYkNv
cmUvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEFsdGVybmF0aXZlV2l0aFJh
bmdlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRpY2F0b3IuaD4KICNpbXBvcnQgPFdlYkNv
cmUvVGV4dEluZGljYXRvcldpbmRvdy5oPgpAQCAtMTQ5LDggKzE0NCw2IEBAIENHU0Nvbm5lY3Rp
b25JRCBDR1NNYWluQ29ubmVjdGlvbklEKHZvaWQpOwogQ0dFcnJvciBDR1NHZXRTY3JlZW5SZWN0
Rm9yV2luZG93KENHU0Nvbm5lY3Rpb25JRCBjaWQsIENHU1dpbmRvd0lEIHdpZCwgQ0dSZWN0ICpy
ZWN0KTsKIH07CiAKLVNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTChMb29rdXAsIExVTm90aWZp
Y2F0aW9uUG9wb3ZlcldpbGxDbG9zZSwgTlNTdHJpbmcgKikKLQogdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xNzEsOCArMTY0LDYgQEAgc3Ry
dWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogfTsKICNlbmRpZgogCi1A
Y2xhc3MgV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXI7Ci0KIEBpbnRlcmZhY2UgV0tWaWV3RGF0
YSA6IE5TT2JqZWN0IHsKIEBwdWJsaWMKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZUNsaWVudElt
cGw+IF9wYWdlQ2xpZW50OwpAQCAtMjAwLDggKzE5MSw2IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnBy
ZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKICAgICAvLyBGb3IgYXN5bmNocm9ub3VzIHZhbGlkYXRp
b24uCiAgICAgVmFsaWRhdGlvbk1hcCBfdmFsaWRhdGlvbk1hcDsKIAotICAgIHN0ZDo6dW5pcXVl
X3B0cjxUZXh0SW5kaWNhdG9yV2luZG93PiBfdGV4dEluZGljYXRvcldpbmRvdzsKLQogICAgIC8v
IFdlIGtlZXAgaGVyZSB0aGUgZXZlbnQgd2hlbiByZXNlbmRpbmcgaXQgdG8KICAgICAvLyB0aGUg
YXBwbGljYXRpb24gdG8gZGlzdGluZ3Vpc2ggdGhlIGNhc2Ugb2YgYSBuZXcgZXZlbnQgZnJvbSBv
bmUgCiAgICAgLy8gdGhhdCBoYXMgYmVlbiBhbHJlYWR5IHNlbnQgdG8gV2ViQ29yZS4KQEAgLTIy
Myw1MiArMjEyLDIzIEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJz
IHsKICAgICBOU0V2ZW50ICpfcHJlc3N1cmVFdmVudDsKICAgICBCT09MIF9pZ25vcmluZ01vdXNl
RHJhZ2dlZEV2ZW50czsKIAotICAgIGlkIF9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3I7Ci0KICAg
ICBCT09MIF9oYXNTcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKICAgICBOU0ludGVnZXIgX3NwZWxs
Q2hlY2tlckRvY3VtZW50VGFnOwogCi0gICAgQk9PTCBfc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dD
aGFuZ2VzOwotICAgIE5TV2luZG93ICpfdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uOwot
Ci0gICAgQk9PTCBfdmlld0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQ7Ci0KLSAgICBCT09MIF9u
ZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXM7Ci0gICAgQk9PTCBfZGlkU2NoZWR1bGVX
aW5kb3dBbmRWaWV3RnJhbWVVcGRhdGU7Ci0KLSAgICBSZXRhaW5QdHI8TlNDb2xvclNwYWNlPiBf
Y29sb3JTcGFjZTsKLQogICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gX3Byb21pc2VkSW1hZ2U7
CiAgICAgU3RyaW5nIF9wcm9taXNlZEZpbGVuYW1lOwogICAgIFN0cmluZyBfcHJvbWlzZWRVUkw7
CiAKICAgICBCT09MIF93aW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOwogCi0gICAgUmV0
YWluUHRyPFdLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyPiBfd2luZG93VmlzaWJpbGl0eU9ic2Vy
dmVyOwotCiAgICAgc3RkOjp1bmlxdWVfcHRyPFZpZXdHZXN0dXJlQ29udHJvbGxlcj4gX2dlc3R1
cmVDb250cm9sbGVyOwogICAgIEJPT0wgX2FsbG93c01hZ25pZmljYXRpb247Ci0gICAgQk9PTCBf
aWdub3Jlc05vbldoZWVsRXZlbnRzOwotICAgIEJPT0wgX2lnbm9yZXNBbGxFdmVudHM7CiAgICAg
Qk9PTCBfYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXM7Ci0gICAgQk9PTCBfYWxs
b3dzTGlua1ByZXZpZXc7CiAKICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gX3Jvb3RMYXllcjsKIAot
ICAgIEJPT0wgX2RpZFNjaGVkdWxlU2V0VG9wQ29udGVudEluc2V0OwotICAgIENHRmxvYXQgX3Rv
cENvbnRlbnRJbnNldDsKICAgICBDR0Zsb2F0IF90b3RhbEhlaWdodE9mQmFubmVyczsKIAotICAg
IENHRmxvYXQgX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I7Ci0KLSAgICBCT09MIF9kaWRSZWdp
c3RlckZvckxvb2t1cFBvcG92ZXJDbG9zZU5vdGlmaWNhdGlvbnM7Ci0KLSNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAotICAgIEJPT0wgX2F1dG9tYXRpY2FsbHlB
ZGp1c3RzQ29udGVudEluc2V0czsKLSAgICBSZXRhaW5QdHI8V0tJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyPiBfaW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlcjsKLSAgICBSZXRhaW5QdHI8TlNJbW1l
ZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplcj4gX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNv
Z25pemVyOwotI2VuZGlmCi0KICNpZiBXS19BUElfRU5BQkxFRAogICAgIF9XS1RodW1ibmFpbFZp
ZXcgKl90aHVtYm5haWxWaWV3OwogI2VuZGlmCkBAIC0yNzksNTQgKzIzOSw2IEBAIHN0cnVjdCBX
S1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKIEBpbXBsZW1lbnRhdGlvbiBXS1Zp
ZXdEYXRhCiBAZW5kCiAKLUBpbnRlcmZhY2UgV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgOiBO
U09iamVjdCB7Ci0gICAgV0tWaWV3ICpfdmlldzsKLX0KLQotLSAoaW5zdGFuY2V0eXBlKWluaXRX
aXRoVmlldzooV0tWaWV3ICopdmlldzsKLS0gKHZvaWQpc3RhcnRPYnNlcnZpbmc6KE5TV2luZG93
ICopd2luZG93OwotLSAodm9pZClzdG9wT2JzZXJ2aW5nOihOU1dpbmRvdyAqKXdpbmRvdzsKLUBl
bmQKLQotQGltcGxlbWVudGF0aW9uIFdLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyCi0KLS0gKGlu
c3RhbmNldHlwZSlpbml0V2l0aFZpZXc6KFdLVmlldyAqKXZpZXcKLXsKLSAgICBzZWxmID0gW3N1
cGVyIGluaXRdOwotICAgIGlmICghc2VsZikKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIF92
aWV3ID0gdmlldzsKLSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAodm9pZClzdGFydE9ic2Vydmlu
ZzooTlNXaW5kb3cgKil3aW5kb3cKLXsKLSAgICAvLyBBbiBOU1ZpZXcgZGVyaXZlZCBvYmplY3Qg
c3VjaCBhcyBXS1ZpZXcgY2Fubm90IG9ic2VydmUgdGhlc2Ugbm90aWZpY2F0aW9ucywgYmVjYXVz
ZSBOU1ZpZXcgaXRzZWxmIG9ic2VydmVzIHRoZW0uCi0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRl
ciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2lu
ZG93RGlkT3JkZXJPZmZTY3JlZW46KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5hbWU6QCJOU1dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0
aW9uIiBvYmplY3Q6d2luZG93XTsKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRPcmRl
ck9uU2NyZWVuOikgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbmFtZTpAIl9OU1dpbmRvd0RpZEJlY29tZVZpc2libGUiIG9iamVjdDp3aW5kb3ddOwot
fQotCi0tICh2b2lkKXN0b3BPYnNlcnZpbmc6KE5TV2luZG93ICopd2luZG93Ci17Ci0gICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5h
bWU6QCJOU1dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uIiBvYmplY3Q6d2luZG93
XTsKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2Vy
dmVyOnNlbGYgbmFtZTpAIl9OU1dpbmRvd0RpZEJlY29tZVZpc2libGUiIG9iamVjdDp3aW5kb3dd
OwotfQotCi0tICh2b2lkKV93aW5kb3dEaWRPcmRlck9uU2NyZWVuOihOU05vdGlmaWNhdGlvbiAq
KW5vdGlmaWNhdGlvbgotewotICAgIFtfdmlldyBfd2luZG93RGlkT3JkZXJPblNjcmVlbjpub3Rp
ZmljYXRpb25dOwotfQotCi0tICh2b2lkKV93aW5kb3dEaWRPcmRlck9mZlNjcmVlbjooTlNOb3Rp
ZmljYXRpb24gKilub3RpZmljYXRpb24KLXsKLSAgICBbX3ZpZXcgX3dpbmRvd0RpZE9yZGVyT2Zm
U2NyZWVuOm5vdGlmaWNhdGlvbl07Ci19Ci0KLUBlbmQKLQogQGludGVyZmFjZSBXS1Jlc3BvbmRl
ckNoYWluU2luayA6IE5TUmVzcG9uZGVyIHsKICAgICBOU1Jlc3BvbmRlciAqX2xhc3RSZXNwb25k
ZXJJbkNoYWluOwogICAgIGJvb2wgX2RpZFJlY2VpdmVVbmhhbmRsZWRDb21tYW5kOwpAQCAtMzY5
LDEwICsyODEsNiBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7
CiAKIC0gKHZvaWQpZGVhbGxvYwogewotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMDAwCi0gICAgW19kYXRhLT5faW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciB3aWxs
RGVzdHJveVZpZXc6c2VsZl07Ci0jZW5kaWYKLQogI2lmIFdLX0FQSV9FTkFCTEVECiAgICAgaWYg
KF9kYXRhLT5fcmVtb3RlT2JqZWN0UmVnaXN0cnkpIHsKICAgICAgICAgX2RhdGEtPl9wYWdlLT5w
cm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJl
bW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIF9kYXRhLT5fcGFnZS0+
cGFnZUlEKCkpOwpAQCAtMzk0LDkgKzMwMiw2IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlF
dmVudHNQYXJhbWV0ZXJzIHsKICAgICBOU05vdGlmaWNhdGlvbkNlbnRlciogd29ya3NwYWNlTm90
aWZpY2F0aW9uQ2VudGVyID0gW1tOU1dvcmtzcGFjZSBzaGFyZWRXb3Jrc3BhY2VdIG5vdGlmaWNh
dGlvbkNlbnRlcl07CiAgICAgW3dvcmtzcGFjZU5vdGlmaWNhdGlvbkNlbnRlciByZW1vdmVPYnNl
cnZlcjpzZWxmIG5hbWU6TlNXb3Jrc3BhY2VBY3RpdmVTcGFjZURpZENoYW5nZU5vdGlmaWNhdGlv
biBvYmplY3Q6bmlsXTsKIAotICAgIGlmIChjYW5Mb2FkTFVOb3RpZmljYXRpb25Qb3BvdmVyV2ls
bENsb3NlKCkpCi0gICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
cmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOmdldExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9z
ZSgpIG9iamVjdDpuaWxdOwotCiAgICAgV2ViUHJvY2Vzc1Bvb2w6OnN0YXRpc3RpY3MoKS53a1Zp
ZXdDb3VudC0tOwogCiAgICAgW3N1cGVyIGRlYWxsb2NdOwpAQCAtNDgxLDQ4ICszODYsOSBAQCBz
dHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiAgICAgX2RhdGEtPl9p
bXBsLT5zZXRGcmFtZVNpemUoTlNTaXplVG9DR1NpemUoc2l6ZSkpOwogfQogCi0tICh2b2lkKV91
cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzCi17Ci0gICAgaWYgKF9kYXRhLT5faW1wbC0+Y2xpcHNU
b1Zpc2libGVSZWN0KCkpCi0gICAgICAgIF9kYXRhLT5faW1wbC0+dXBkYXRlVmlld0V4cG9zZWRS
ZWN0KCk7Ci0KLSAgICBpZiAoX2RhdGEtPl9kaWRTY2hlZHVsZVdpbmRvd0FuZFZpZXdGcmFtZVVw
ZGF0ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgX2RhdGEtPl9kaWRTY2hlZHVsZVdpbmRvd0Fu
ZFZpZXdGcmFtZVVwZGF0ZSA9IFlFUzsKLQotICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIF57Ci0gICAgICAgIF9kYXRhLT5fZGlkU2NoZWR1bGVXaW5kb3dBbmRW
aWV3RnJhbWVVcGRhdGUgPSBOTzsKLQotICAgICAgICBOU1JlY3Qgdmlld0ZyYW1lSW5XaW5kb3dD
b29yZGluYXRlcyA9IE5TWmVyb1JlY3Q7Ci0gICAgICAgIE5TUG9pbnQgYWNjZXNzaWJpbGl0eVBv
c2l0aW9uID0gTlNaZXJvUG9pbnQ7Ci0KLSAgICAgICAgaWYgKF9kYXRhLT5fbmVlZHNWaWV3RnJh
bWVJbldpbmRvd0Nvb3JkaW5hdGVzKQotICAgICAgICAgICAgdmlld0ZyYW1lSW5XaW5kb3dDb29y
ZGluYXRlcyA9IFtzZWxmIGNvbnZlcnRSZWN0OnNlbGYuZnJhbWUgdG9WaWV3Om5pbF07Ci0KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICAgICAgaWYgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgICAgICBhY2Nlc3Np
YmlsaXR5UG9zaXRpb24gPSBbW3NlbGYgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNj
ZXNzaWJpbGl0eVBvc2l0aW9uQXR0cmlidXRlXSBwb2ludFZhbHVlXTsKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwb3AKLQotICAgICAgICBfZGF0YS0+X3BhZ2UtPndpbmRvd0FuZFZpZXdGcmFt
ZXNDaGFuZ2VkKHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIGFjY2Vzc2liaWxpdHlQb3Np
dGlvbik7Ci0gICAgfSk7Ci19Ci0KIC0gKHZvaWQpcmVuZXdHU3RhdGUKIHsKLSAgICBpZiAoX2Rh
dGEtPl90ZXh0SW5kaWNhdG9yV2luZG93KQotICAgICAgICBbc2VsZiBfZGlzbWlzc0NvbnRlbnRS
ZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb246Tk9dOwotCi0gICAgLy8gVXBkYXRlIHRo
ZSB2aWV3IGZyYW1lLgotICAgIGlmIChbc2VsZiB3aW5kb3ddKQotICAgICAgICBbc2VsZiBfdXBk
YXRlV2luZG93QW5kVmlld0ZyYW1lc107Ci0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTAwMAotICAgIFtzZWxmIF91cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0
aWNdOwotI2VuZGlmCi0KKyAgICBfZGF0YS0+X2ltcGwtPnJlbmV3R1N0YXRlKCk7CiAgICAgW3N1
cGVyIHJlbmV3R1N0YXRlXTsKIH0KIApAQCAtNTc4LDcgKzQ0NCw3IEBAIHN0YXRpYyBTdHJpbmcg
Y29tbWFuZE5hbWVGb3JTZWxlY3RvcihTRUwgc2VsZWN0b3IpCiAKIC8vIEVkaXRpbmcgY29tbWFu
ZHMKIAotI2RlZmluZSBXRUJDT1JFX0NPTU1BTkQoY29tbWFuZCkgLSAodm9pZCljb21tYW5kOihp
ZClzZW5kZXIgeyBfZGF0YS0+X3BhZ2UtPmV4ZWN1dGVFZGl0Q29tbWFuZChjb21tYW5kTmFtZUZv
clNlbGVjdG9yKF9jbWQpKTsgfQorI2RlZmluZSBXRUJDT1JFX0NPTU1BTkQoY29tbWFuZCkgLSAo
dm9pZCljb21tYW5kOihpZClzZW5kZXIgeyBfZGF0YS0+X2ltcGwtPmV4ZWN1dGVFZGl0Q29tbWFu
ZChjb21tYW5kTmFtZUZvclNlbGVjdG9yKF9jbWQpKTsgfQogCiBXRUJDT1JFX0NPTU1BTkQoYWxp
Z25DZW50ZXIpCiBXRUJDT1JFX0NPTU1BTkQoYWxpZ25KdXN0aWZpZWQpCkBAIC02ODcsMjIgKzU1
MywxMiBAQCBXRUJDT1JFX0NPTU1BTkQoeWFua0FuZFNlbGVjdCkKIAogLSAoQk9PTCl3cml0ZVNl
bGVjdGlvblRvUGFzdGVib2FyZDooTlNQYXN0ZWJvYXJkICopcGFzdGVib2FyZCB0eXBlczooTlNB
cnJheSAqKXR5cGVzCiB7Ci0gICAgc2l6ZV90IG51bVR5cGVzID0gW3R5cGVzIGNvdW50XTsKLSAg
ICBbcGFzdGVib2FyZCBkZWNsYXJlVHlwZXM6dHlwZXMgb3duZXI6bmlsXTsKLSAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG51bVR5cGVzOyArK2kpIHsKLSAgICAgICAgaWYgKFtbdHlwZXMgb2Jq
ZWN0QXRJbmRleDppXSBpc0VxdWFsVG86TlNTdHJpbmdQYm9hcmRUeXBlXSkKLSAgICAgICAgICAg
IFtwYXN0ZWJvYXJkIHNldFN0cmluZzpfZGF0YS0+X3BhZ2UtPnN0cmluZ1NlbGVjdGlvbkZvclBh
c3RlYm9hcmQoKSBmb3JUeXBlOk5TU3RyaW5nUGJvYXJkVHlwZV07Ci0gICAgICAgIGVsc2Ugewot
ICAgICAgICAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gX2RhdGEtPl9wYWdlLT5k
YXRhU2VsZWN0aW9uRm9yUGFzdGVib2FyZChbdHlwZXMgb2JqZWN0QXRJbmRleDppXSk7Ci0gICAg
ICAgICAgICBbcGFzdGVib2FyZCBzZXREYXRhOmJ1ZmZlciA/IGJ1ZmZlci0+Y3JlYXRlTlNEYXRh
KCkuZ2V0KCkgOiBuaWwgZm9yVHlwZTpbdHlwZXMgb2JqZWN0QXRJbmRleDppXV07Ci0gICAgICAg
fQotICAgIH0KLSAgICByZXR1cm4gWUVTOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPndyaXRl
U2VsZWN0aW9uVG9QYXN0ZWJvYXJkKHBhc3RlYm9hcmQsIHR5cGVzKTsKIH0KIAogLSAodm9pZClj
ZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhOihpZClzZW5kZXIgCiB7IAotICAgIF9kYXRhLT5f
cGFnZS0+Y2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYSgpOworICAgIF9kYXRhLT5faW1wbC0+
Y2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYSgpOwogfQogCiAvLyBUaGlzIG1ldGhvZCBpcyBu
ZWVkZWQgdG8gc3VwcG9ydCBNYWMgT1MgWCBzZXJ2aWNlcy4KQEAgLTc0MCwyNSArNTk2LDYgQEAg
V0VCQ09SRV9DT01NQU5EKHlhbmtBbmRTZWxlY3QpCiAKIC8vIEZvbnQgcGFuZWwgc3VwcG9ydC4K
IAotLSAodm9pZCl1cGRhdGVGb250UGFuZWxJZk5lZWRlZAotewotICAgIGNvbnN0IEVkaXRvclN0
YXRlJiBlZGl0b3JTdGF0ZSA9IF9kYXRhLT5fcGFnZS0+ZWRpdG9yU3RhdGUoKTsKLSAgICBpZiAo
ZWRpdG9yU3RhdGUuc2VsZWN0aW9uSXNOb25lIHx8ICFlZGl0b3JTdGF0ZS5pc0NvbnRlbnRFZGl0
YWJsZSkKLSAgICAgICAgcmV0dXJuOwotICAgIGlmIChbTlNGb250UGFuZWwgc2hhcmVkRm9udFBh
bmVsRXhpc3RzXSAmJiBbW05TRm9udFBhbmVsIHNoYXJlZEZvbnRQYW5lbF0gaXNWaXNpYmxlXSkg
ewotICAgICAgICBfZGF0YS0+X3BhZ2UtPmZvbnRBdFNlbGVjdGlvbihbXShjb25zdCBTdHJpbmcm
IGZvbnROYW1lLCBkb3VibGUgZm9udFNpemUsIGJvb2wgc2VsZWN0aW9uSGFzTXVsdGlwbGVGb250
cywgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7Ci0gICAgICAgICAgICBOU0Zv
bnQgKmZvbnQgPSBbTlNGb250IGZvbnRXaXRoTmFtZTpmb250TmFtZSBzaXplOmZvbnRTaXplXTsK
LSAgICAgICAgICAgIGlmIChmb250KQotICAgICAgICAgICAgICAgIFtbTlNGb250TWFuYWdlciBz
aGFyZWRGb250TWFuYWdlcl0gc2V0U2VsZWN0ZWRGb250OmZvbnQgaXNNdWx0aXBsZTpzZWxlY3Rp
b25IYXNNdWx0aXBsZUZvbnRzXTsKLSAgICAgICAgfSk7Ci0gICAgfQotfQotCi0tICh2b2lkKV9z
ZWxlY3Rpb25DaGFuZ2VkCi17Ci0gICAgW3NlbGYgdXBkYXRlRm9udFBhbmVsSWZOZWVkZWRdOwot
fQotCiAtICh2b2lkKWNoYW5nZUZvbnQ6KGlkKXNlbmRlcgogewogICAgIE5TRm9udE1hbmFnZXIg
KmZvbnRNYW5hZ2VyID0gW05TRm9udE1hbmFnZXIgc2hhcmVkRm9udE1hbmFnZXJdOwpAQCAtMTE0
NSw2NCArOTgyLDY0IEBAIHN0YXRpYyBOU1Rvb2xiYXJJdGVtICp0b29sYmFySXRlbShpZCA8TlNW
YWxpZGF0ZWRVc2VySW50ZXJmYWNlSXRlbT4gaXRlbSkKICNkZWZpbmUgTkFUSVZFX01PVVNFX0VW
RU5UX0hBTkRMRVIoU2VsZWN0b3IpIFwKICAgICAtICh2b2lkKVNlbGVjdG9yOihOU0V2ZW50ICop
dGhlRXZlbnQgXAogICAgIHsgXAotICAgICAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxF
dmVudHMpIFwKKyAgICAgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRz
KCkpIFwKICAgICAgICAgICAgIHJldHVybjsgXAogICAgICAgICBpZiAoTlNUZXh0SW5wdXRDb250
ZXh0ICpjb250ZXh0ID0gW3NlbGYgaW5wdXRDb250ZXh0XSkgeyBcCiAgICAgICAgICAgICBbY29u
dGV4dCBoYW5kbGVFdmVudDp0aGVFdmVudCBjb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wgaGFuZGxl
ZCkgeyBcCiAgICAgICAgICAgICAgICAgaWYgKGhhbmRsZWQpIFwKICAgICAgICAgICAgICAgICAg
ICAgTE9HKFRleHRJbnB1dCwgIiVzIHdhcyBoYW5kbGVkIGJ5IHRleHQgaW5wdXQgY29udGV4dCIs
IFN0cmluZygjU2VsZWN0b3IpLnN1YnN0cmluZygwLCBTdHJpbmcoI1NlbGVjdG9yKS5maW5kKCJJ
bnRlcm5hbCIpKS5hc2NpaSgpLmRhdGEoKSk7IFwKICAgICAgICAgICAgICAgICBlbHNlIHsgXAot
ICAgICAgICAgICAgICAgICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KHRoZUV2ZW50
LCBfZGF0YS0+X3ByZXNzdXJlRXZlbnQsIHNlbGYpOyBcCisgICAgICAgICAgICAgICAgICAgIE5h
dGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQodGhlRXZlbnQsIF9kYXRhLT5faW1wbC0+bGFzdFBy
ZXNzdXJlRXZlbnQoKSwgc2VsZik7IFwKICAgICAgICAgICAgICAgICAgICAgX2RhdGEtPl9wYWdl
LT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsgXAogICAgICAgICAgICAgICAgIH0gXAogICAg
ICAgICAgICAgfV07IFwKICAgICAgICAgICAgIHJldHVybjsgXAogICAgICAgICB9IFwKLSAgICAg
ICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudCh0aGVFdmVudCwgX2RhdGEtPl9wcmVzc3Vy
ZUV2ZW50LCBzZWxmKTsgXAorICAgICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KHRo
ZUV2ZW50LCBfZGF0YS0+X2ltcGwtPmxhc3RQcmVzc3VyZUV2ZW50KCksIHNlbGYpOyBcCiAgICAg
ICAgIF9kYXRhLT5fcGFnZS0+aGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7IFwKICAgICB9CiAj
ZGVmaW5lIE5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVSX0lOVEVSTkFMKFNlbGVjdG9yKSBcCiAg
ICAgLSAodm9pZClTZWxlY3RvcjooTlNFdmVudCAqKXRoZUV2ZW50IFwKICAgICB7IFwKLSAgICAg
ICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRzKSBcCisgICAgICAgIGlmIChfZGF0
YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKSBcCiAgICAgICAgICAgICByZXR1cm47
IFwKICAgICAgICAgaWYgKE5TVGV4dElucHV0Q29udGV4dCAqY29udGV4dCA9IFtzZWxmIGlucHV0
Q29udGV4dF0pIHsgXAogICAgICAgICAgICAgW2NvbnRleHQgaGFuZGxlRXZlbnQ6dGhlRXZlbnQg
Y29tcGxldGlvbkhhbmRsZXI6XihCT09MIGhhbmRsZWQpIHsgXAogICAgICAgICAgICAgICAgIGlm
IChoYW5kbGVkKSBcCiAgICAgICAgICAgICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIlcyB3YXMg
aGFuZGxlZCBieSB0ZXh0IGlucHV0IGNvbnRleHQiLCBTdHJpbmcoI1NlbGVjdG9yKS5zdWJzdHJp
bmcoMCwgU3RyaW5nKCNTZWxlY3RvcikuZmluZCgiSW50ZXJuYWwiKSkuYXNjaWkoKS5kYXRhKCkp
OyBcCiAgICAgICAgICAgICAgICAgZWxzZSB7IFwKLSAgICAgICAgICAgICAgICAgICAgTmF0aXZl
V2ViTW91c2VFdmVudCB3ZWJFdmVudCh0aGVFdmVudCwgX2RhdGEtPl9wcmVzc3VyZUV2ZW50LCBz
ZWxmKTsgXAorICAgICAgICAgICAgICAgICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50
KHRoZUV2ZW50LCBfZGF0YS0+X2ltcGwtPmxhc3RQcmVzc3VyZUV2ZW50KCksIHNlbGYpOyBcCiAg
ICAgICAgICAgICAgICAgICAgIF9kYXRhLT5fcGFnZS0+aGFuZGxlTW91c2VFdmVudCh3ZWJFdmVu
dCk7IFwKICAgICAgICAgICAgICAgICB9IFwKICAgICAgICAgICAgIH1dOyBcCiAgICAgICAgICAg
ICByZXR1cm47IFwKICAgICAgICAgfSBcCi0gICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2Vi
RXZlbnQodGhlRXZlbnQsIF9kYXRhLT5fcHJlc3N1cmVFdmVudCwgc2VsZik7IFwKKyAgICAgICAg
TmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudCh0aGVFdmVudCwgX2RhdGEtPl9pbXBsLT5sYXN0
UHJlc3N1cmVFdmVudCgpLCBzZWxmKTsgXAogICAgICAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZU1v
dXNlRXZlbnQod2ViRXZlbnQpOyBcCiAgICAgfQogI2Vsc2UKICNkZWZpbmUgTkFUSVZFX01PVVNF
X0VWRU5UX0hBTkRMRVIoU2VsZWN0b3IpIFwKICAgICAtICh2b2lkKVNlbGVjdG9yOihOU0V2ZW50
ICopdGhlRXZlbnQgXAogICAgIHsgXAotICAgICAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hl
ZWxFdmVudHMpIFwKKyAgICAgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZl
bnRzKCkpIFwKICAgICAgICAgICAgIHJldHVybjsgXAogICAgICAgICBpZiAoW1tzZWxmIGlucHV0
Q29udGV4dF0gaGFuZGxlRXZlbnQ6dGhlRXZlbnRdKSB7IFwKICAgICAgICAgICAgIExPRyhUZXh0
SW5wdXQsICIlcyB3YXMgaGFuZGxlZCBieSB0ZXh0IGlucHV0IGNvbnRleHQiLCBTdHJpbmcoI1Nl
bGVjdG9yKS5zdWJzdHJpbmcoMCwgU3RyaW5nKCNTZWxlY3RvcikuZmluZCgiSW50ZXJuYWwiKSku
YXNjaWkoKS5kYXRhKCkpOyBcCiAgICAgICAgICAgICByZXR1cm47IFwKICAgICAgICAgfSBcCi0g
ICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQodGhlRXZlbnQsIF9kYXRhLT5fcHJl
c3N1cmVFdmVudCwgc2VsZik7IFwKKyAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVu
dCh0aGVFdmVudCwgX2RhdGEtPl9pbXBsLT5sYXN0UHJlc3N1cmVFdmVudCgpLCBzZWxmKTsgXAog
ICAgICAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOyBcCiAgICAg
fQogI2RlZmluZSBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRFUk5BTChTZWxlY3Rvcikg
XAogICAgIC0gKHZvaWQpU2VsZWN0b3I6KE5TRXZlbnQgKil0aGVFdmVudCBcCiAgICAgeyBcCi0g
ICAgICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykgXAorICAgICAgICBpZiAo
X2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMoKSkgXAogICAgICAgICAgICAgcmV0
dXJuOyBcCiAgICAgICAgIGlmIChbW3NlbGYgaW5wdXRDb250ZXh0XSBoYW5kbGVFdmVudDp0aGVF
dmVudF0pIHsgXAogICAgICAgICAgICAgTE9HKFRleHRJbnB1dCwgIiVzIHdhcyBoYW5kbGVkIGJ5
IHRleHQgaW5wdXQgY29udGV4dCIsIFN0cmluZygjU2VsZWN0b3IpLnN1YnN0cmluZygwLCBTdHJp
bmcoI1NlbGVjdG9yKS5maW5kKCJJbnRlcm5hbCIpKS5hc2NpaSgpLmRhdGEoKSk7IFwKICAgICAg
ICAgICAgIHJldHVybjsgXAogICAgICAgICB9IFwKLSAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVu
dCB3ZWJFdmVudCh0aGVFdmVudCwgX2RhdGEtPl9wcmVzc3VyZUV2ZW50LCBzZWxmKTsgXAorICAg
ICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KHRoZUV2ZW50LCBfZGF0YS0+X2ltcGwt
Pmxhc3RQcmVzc3VyZUV2ZW50KCksIHNlbGYpOyBcCiAgICAgICAgIF9kYXRhLT5fcGFnZS0+aGFu
ZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7IFwKICAgICB9CiAjZW5kaWYKQEAgLTEyMzMsNyArMTA3
MCw3IEBAIE5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVSX0lOVEVSTkFMKG1vdXNlRHJhZ2dlZElu
dGVybmFsKQogCiAtICh2b2lkKXNjcm9sbFdoZWVsOihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBp
ZiAoX2RhdGEtPl9pZ25vcmVzQWxsRXZlbnRzKQorICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9y
ZXNBbGxFdmVudHMoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKGV2ZW50LnBoYXNlID09
IE5TRXZlbnRQaGFzZUJlZ2FuKQpAQCAtMTI1MSw3ICsxMDg4LDcgQEAgTkFUSVZFX01PVVNFX0VW
RU5UX0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCiAKIC0gKHZvaWQpc3dp
cGVXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAogewotICAgIGlmIChfZGF0YS0+X2lnbm9yZXNO
b25XaGVlbEV2ZW50cykKKyAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVu
dHMoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFfZGF0YS0+X2FsbG93c0JhY2tGb3J3
YXJkTmF2aWdhdGlvbkdlc3R1cmVzKSB7CkBAIC0xMjY5LDcgKzExMDYsNyBAQCBOQVRJVkVfTU9V
U0VfRVZFTlRfSEFORExFUl9JTlRFUk5BTChtb3VzZURyYWdnZWRJbnRlcm5hbCkKIAogLSAodm9p
ZCltb3VzZU1vdmVkOihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVz
Tm9uV2hlZWxFdmVudHMpCisgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZl
bnRzKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIC8vIFdoZW4gYSB2aWV3IGlzIGZpcnN0IHJl
c3BvbmRlciwgaXQgZ2V0cyBtb3VzZSBtb3ZlZCBldmVudHMgZXZlbiB3aGVuIHRoZSBtb3VzZSBp
cyBvdXRzaWRlIGl0cyB2aXNpYmxlIHJlY3QuCkBAIC0xMjgxLDcgKzExMTgsNyBAQCBOQVRJVkVf
TU9VU0VfRVZFTlRfSEFORExFUl9JTlRFUk5BTChtb3VzZURyYWdnZWRJbnRlcm5hbCkKIAogLSAo
dm9pZCltb3VzZURvd246KE5TRXZlbnQgKilldmVudAogewotICAgIGlmIChfZGF0YS0+X2lnbm9y
ZXNOb25XaGVlbEV2ZW50cykKKyAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxF
dmVudHMoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgW3NlbGYgX3NldE1vdXNlRG93bkV2ZW50
OmV2ZW50XTsKQEAgLTEyOTIsNyArMTEyOSw3IEBAIE5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVS
X0lOVEVSTkFMKG1vdXNlRHJhZ2dlZEludGVybmFsKQogCiAtICh2b2lkKW1vdXNlVXA6KE5TRXZl
bnQgKilldmVudAogewotICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykKKyAg
ICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMoKSkKICAgICAgICAgcmV0
dXJuOwogCiAgICAgW3NlbGYgX3NldE1vdXNlRG93bkV2ZW50Om5pbF07CkBAIC0xMzAxLDcgKzEx
MzgsNyBAQCBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRFUk5BTChtb3VzZURyYWdnZWRJ
bnRlcm5hbCkKIAogLSAodm9pZCltb3VzZURyYWdnZWQ6KE5TRXZlbnQgKilldmVudAogewotICAg
IGlmIChfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykKKyAgICBpZiAoX2RhdGEtPl9pbXBs
LT5pZ25vcmVzTm9uV2hlZWxFdmVudHMoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKF9k
YXRhLT5faWdub3JpbmdNb3VzZURyYWdnZWRFdmVudHMpCkBAIC0xMzExLDIyICsxMTQ4LDcgQEAg
TkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwp
CiAKIC0gKHZvaWQpcHJlc3N1cmVDaGFuZ2VXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAogewot
I2lmIGRlZmluZWQoX19MUDY0X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+
PSAxMDEwMDMKLSAgICBpZiAoZXZlbnQgPT0gX2RhdGEtPl9wcmVzc3VyZUV2ZW50KQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIGlmIChldmVudC5waGFzZSAhPSBOU0V2ZW50UGhhc2VDaGFuZ2Vk
ICYmIGV2ZW50LnBoYXNlICE9IE5TRXZlbnRQaGFzZUJlZ2FuICYmIGV2ZW50LnBoYXNlICE9IE5T
RXZlbnRQaGFzZUVuZGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICBOYXRpdmVXZWJNb3VzZUV2
ZW50IHdlYkV2ZW50KGV2ZW50LCBfZGF0YS0+X3ByZXNzdXJlRXZlbnQsIHNlbGYpOwotICAgIF9k
YXRhLT5fcGFnZS0+aGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7Ci0KLSAgICBbX2RhdGEtPl9w
cmVzc3VyZUV2ZW50IHJlbGVhc2VdOwotICAgIF9kYXRhLT5fcHJlc3N1cmVFdmVudCA9IFtldmVu
dCByZXRhaW5dOwotI2VuZGlmCisgICAgX2RhdGEtPl9pbXBsLT5wcmVzc3VyZUNoYW5nZVdpdGhF
dmVudChldmVudCk7CiB9CiAKIC0gKEJPT0wpYWNjZXB0c0ZpcnN0TW91c2U6KE5TRXZlbnQgKill
dmVudApAQCAtMTM0MCw3ICsxMTYyLDcgQEAgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5U
RVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCiAgICAgICAgIHJldHVybiBOTzsKICAgICAKICAg
ICBbc2VsZiBfc2V0TW91c2VEb3duRXZlbnQ6ZXZlbnRdOwotICAgIGJvb2wgcmVzdWx0ID0gX2Rh
dGEtPl9wYWdlLT5hY2NlcHRzRmlyc3RNb3VzZShbZXZlbnQgZXZlbnROdW1iZXJdLCBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoZXZlbnQsIF9kYXRhLT5fcHJlc3N1cmVFdmVu
dCwgc2VsZikpOworICAgIGJvb2wgcmVzdWx0ID0gX2RhdGEtPl9wYWdlLT5hY2NlcHRzRmlyc3RN
b3VzZShbZXZlbnQgZXZlbnROdW1iZXJdLCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNl
RXZlbnQoZXZlbnQsIF9kYXRhLT5faW1wbC0+bGFzdFByZXNzdXJlRXZlbnQoKSwgc2VsZikpOwog
ICAgIFtzZWxmIF9zZXRNb3VzZURvd25FdmVudDpuaWxdOwogICAgIHJldHVybiByZXN1bHQ7CiB9
CkBAIC0xMzYxLDcgKzExODMsNyBAQCBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRFUk5B
TChtb3VzZURyYWdnZWRJbnRlcm5hbCkKICAgICAgICAgcmV0dXJuIE5POwogICAgIAogICAgIFtz
ZWxmIF9zZXRNb3VzZURvd25FdmVudDpldmVudF07Ci0gICAgYm9vbCByZXN1bHQgPSBfZGF0YS0+
X3BhZ2UtPnNob3VsZERlbGF5V2luZG93T3JkZXJpbmdGb3JFdmVudChXZWJFdmVudEZhY3Rvcnk6
OmNyZWF0ZVdlYk1vdXNlRXZlbnQoZXZlbnQsIF9kYXRhLT5fcHJlc3N1cmVFdmVudCwgc2VsZikp
OworICAgIGJvb2wgcmVzdWx0ID0gX2RhdGEtPl9wYWdlLT5zaG91bGREZWxheVdpbmRvd09yZGVy
aW5nRm9yRXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBf
ZGF0YS0+X2ltcGwtPmxhc3RQcmVzc3VyZUV2ZW50KCksIHNlbGYpKTsKICAgICBbc2VsZiBfc2V0
TW91c2VEb3duRXZlbnQ6bmlsXTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtMTc5Myw3ICsx
NjE1LDcgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5n
ICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKIAogLSAoQk9PTClwZXJmb3JtS2V5RXF1
aXZhbGVudDooTlNFdmVudCAqKWV2ZW50CiB7Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldo
ZWVsRXZlbnRzKQorICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygp
KQogICAgICAgICByZXR1cm4gTk87CiAKICAgICAvLyBUaGVyZSdzIGEgY2hhbmNlIHRoYXQgcmVz
cG9uZGluZyB0byB0aGlzIGV2ZW50IHdpbGwgcnVuIGEgbmVzdGVkIGV2ZW50IGxvb3AsIGFuZApA
QCAtMTgzMyw3ICsxNjU1LDcgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRy
aWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKIAogLSAodm9pZClr
ZXlVcDooTlNFdmVudCAqKXRoZUV2ZW50CiB7Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldo
ZWVsRXZlbnRzKQorICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygp
KQogICAgICAgICByZXR1cm47CiAKICAgICBMT0coVGV4dElucHV0LCAia2V5VXA6JXAgJUAiLCB0
aGVFdmVudCwgdGhlRXZlbnQpOwpAQCAtMTg0Niw3ICsxNjY4LDcgQEAgc3RhdGljIHZvaWQgZXh0
cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3Np
dGlvblVuZGUKIAogLSAodm9pZClrZXlEb3duOihOU0V2ZW50ICopdGhlRXZlbnQKIHsKLSAgICBp
ZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAgaWYgKF9kYXRhLT5faW1wbC0+
aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIExPRyhUZXh0
SW5wdXQsICJrZXlEb3duOiVwICVAJXMiLCB0aGVFdmVudCwgdGhlRXZlbnQsICh0aGVFdmVudCA9
PSBfZGF0YS0+X2tleURvd25FdmVudEJlaW5nUmVzZW50KSA/ICIgKHJlLXNlbnQpIiA6ICIiKTsK
QEAgLTE4NzMsNyArMTY5NSw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0
cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKIC0gKHZvaWQp
ZmxhZ3NDaGFuZ2VkOihOU0V2ZW50ICopdGhlRXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pZ25v
cmVzTm9uV2hlZWxFdmVudHMpCisgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVs
RXZlbnRzKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIExPRyhUZXh0SW5wdXQsICJmbGFnc0No
YW5nZWQ6JXAgJUAiLCB0aGVFdmVudCwgdGhlRXZlbnQpOwpAQCAtMjIzNiw3ICsyMDU4LDcgQEAg
c3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcs
IFZlY3RvcjxDb21wb3NpdGlvblVuZGUKIAogLSAoQk9PTClwZXJmb3JtS2V5RXF1aXZhbGVudDoo
TlNFdmVudCAqKWV2ZW50CiB7Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRz
KQorICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQogICAgICAg
ICByZXR1cm4gTk87CiAKICAgICAvLyBUaGVyZSdzIGEgY2hhbmNlIHRoYXQgcmVzcG9uZGluZyB0
byB0aGlzIGV2ZW50IHdpbGwgcnVuIGEgbmVzdGVkIGV2ZW50IGxvb3AsIGFuZApAQCAtMjI3Niw3
ICsyMDk4LDcgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3Ry
aW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKIAogLSAodm9pZClrZXlVcDooTlNF
dmVudCAqKXRoZUV2ZW50CiB7Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRz
KQorICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQogICAgICAg
ICByZXR1cm47CiAKICAgICBMT0coVGV4dElucHV0LCAia2V5VXA6JXAgJUAiLCB0aGVFdmVudCwg
dGhlRXZlbnQpOwpAQCAtMjI4Niw3ICsyMTA4LDcgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVy
bGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUK
IAogLSAodm9pZClrZXlEb3duOihOU0V2ZW50ICopdGhlRXZlbnQKIHsKLSAgICBpZiAoX2RhdGEt
Pl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05v
bldoZWVsRXZlbnRzKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIExPRyhUZXh0SW5wdXQsICJr
ZXlEb3duOiVwICVAJXMiLCB0aGVFdmVudCwgdGhlRXZlbnQsICh0aGVFdmVudCA9PSBfZGF0YS0+
X2tleURvd25FdmVudEJlaW5nUmVzZW50KSA/ICIgKHJlLXNlbnQpIiA6ICIiKTsKQEAgLTIzMjQs
NyArMjE0Niw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0
cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKIC0gKHZvaWQpZmxhZ3NDaGFu
Z2VkOihOU0V2ZW50ICopdGhlRXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hl
ZWxFdmVudHMpCisgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkp
CiAgICAgICAgIHJldHVybjsKIAogICAgIExPRyhUZXh0SW5wdXQsICJmbGFnc0NoYW5nZWQ6JXAg
JUAiLCB0aGVFdmVudCwgdGhlRXZlbnQpOwpAQCAtMjM1MCw2ICsyMTcyLDExIEBAIHN0YXRpYyB2
b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8
Q29tcG9zaXRpb25VbmRlCiAgICAgcmV0dXJuIFtzdXBlciBpbnB1dENvbnRleHRdOwogfQogCist
ICh2b2lkKV9zdXBlclF1aWNrTG9va1dpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50Cit7CisgICAg
W3N1cGVyIHF1aWNrTG9va1dpdGhFdmVudDpldmVudF07Cit9CisKIC0gKE5TQXJyYXkgKil2YWxp
ZEF0dHJpYnV0ZXNGb3JNYXJrZWRUZXh0CiB7CiAgICAgc3RhdGljIE5TQXJyYXkgKnZhbGlkQXR0
cmlidXRlczsKQEAgLTI1MjQsMjE5ICsyMzUxLDE5IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZVNhbmRi
b3hFeHRlbnNpb25zRm9yRmlsZVVwbG9hZChOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIFNhbmRi
CiAgICAgcmV0dXJuIE5TTW91c2VJblJlY3QobG9jYWxQb2ludCwgdmlzaWJsZVRodW1iUmVjdCwg
W3NlbGYgaXNGbGlwcGVkXSk7CiB9CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTAwMAotc3RhdGljIHZvaWQqIGtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dCA9ICZr
ZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQ7Ci0jZW5kaWYKLQotLSAodm9pZClhZGRXaW5kb3dPYnNl
cnZlcnNGb3JXaW5kb3c6KE5TV2luZG93ICopd2luZG93Ci17Ci0gICAgaWYgKHdpbmRvdykgewot
ICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVy
OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRCZWNvbWVLZXk6KQotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOk5TV2luZG93
RGlkQmVjb21lS2V5Tm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwotICAgICAgICBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNl
bGVjdG9yKF93aW5kb3dEaWRSZXNpZ25LZXk6KQotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkUmVzaWduS2V5Tm90aWZp
Y2F0aW9uIG9iamVjdDpuaWxdOwotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1
bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRN
aW5pYXR1cml6ZTopIAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkTWluaWF0dXJpemVOb3RpZmljYXRpb24gb2JqZWN0
OndpbmRvd107Ci0gICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0g
YWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZERlbWluaWF0dXJp
emU6KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBuYW1lOk5TV2luZG93RGlkRGVtaW5pYXR1cml6ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93
XTsKLSAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNl
cnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkTW92ZTopCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6TlNXaW5kb3dE
aWRNb3ZlTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwotICAgICAgICBbW05TTm90aWZpY2F0
aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVj
dG9yKF93aW5kb3dEaWRSZXNpemU6KSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbmFtZTpOU1dpbmRvd0RpZFJlc2l6ZU5vdGlmaWNhdGlvbiBv
YmplY3Q6d2luZG93XTsKLSAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2Vu
dGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkQ2hhbmdl
QmFja2luZ1Byb3BlcnRpZXM6KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXNO
b3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Ci0gICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50
ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dp
bmRvd0RpZENoYW5nZVNjcmVlbjopCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG5hbWU6TlNXaW5kb3dEaWRDaGFuZ2VTY3JlZW5Ob3RpZmljYXRp
b24gb2JqZWN0OndpbmRvd107Ci0gICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVs
dENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZENo
YW5nZUxheWVySG9zdGluZzopCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIG5hbWU6QCJfTlNXaW5kb3dEaWRDaGFuZ2VDb250ZW50c0hvc3RlZElu
TGF5ZXJTdXJmYWNlTm90aWZpY2F0aW9uIiBvYmplY3Q6d2luZG93XTsKLSAgICAgICAgW1tOU05v
dGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9y
OkBzZWxlY3Rvcihfd2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3RhdGU6KQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlk
Q2hhbmdlT2NjbHVzaW9uU3RhdGVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Ci0jaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICAgICAgW3dpbmRvdyBh
ZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJjb250ZW50TGF5b3V0UmVjdCIgb3B0aW9uczpO
U0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9uSW5pdGlhbCBjb250ZXh0OmtleVZhbHVlT2JzZXJ2aW5n
Q29udGV4dF07Ci0gICAgICAgIFt3aW5kb3cgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAi
dGl0bGViYXJBcHBlYXJzVHJhbnNwYXJlbnQiIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09w
dGlvbkluaXRpYWwgY29udGV4dDprZXlWYWx1ZU9ic2VydmluZ0NvbnRleHRdOwotI2VuZGlmCi0g
ICAgICAgIFtfZGF0YS0+X3dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBzdGFydE9ic2VydmluZzp3
aW5kb3ddOwotICAgIH0KLX0KLQogLSAodm9pZClfYWRkRm9udFBhbmVsT2JzZXJ2ZXIKIHsKLSNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAotICAgIFtbTlNGb250
UGFuZWwgc2hhcmVkRm9udFBhbmVsXSBhZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJ2aXNp
YmxlIiBvcHRpb25zOjAgY29udGV4dDprZXlWYWx1ZU9ic2VydmluZ0NvbnRleHRdOwotI2VuZGlm
Ci19Ci0KLS0gKHZvaWQpcmVtb3ZlV2luZG93T2JzZXJ2ZXJzCi17Ci0gICAgTlNXaW5kb3cgKndp
bmRvdyA9IF9kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uID8gX2RhdGEtPl90
YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gOiBbc2VsZiB3aW5kb3ddOwotICAgIGlmICgh
d2luZG93KQotICAgICAgICByZXR1cm47Ci0KLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRl
ZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZEJlY29tZUtl
eU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRl
ZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZFJlc2lnbktl
eU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRl
ZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZE1pbmlhdHVy
aXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwotICAgIFtbTlNOb3RpZmljYXRpb25DZW50
ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkRGVt
aW5pYXR1cml6ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKLSAgICBbW05TTm90aWZpY2F0
aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRv
d0RpZE1vdmVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Ci0gICAgW1tOU05vdGlmaWNhdGlv
bkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dE
aWRSZXNpemVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Ci0gICAgW1tOU05vdGlmaWNhdGlv
bkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dE
aWRDaGFuZ2VCYWNraW5nUHJvcGVydGllc05vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKLSAg
ICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNl
bGYgbmFtZTpOU1dpbmRvd0RpZENoYW5nZVNjcmVlbk5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93
XTsKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2Vy
dmVyOnNlbGYgbmFtZTpAIl9OU1dpbmRvd0RpZENoYW5nZUNvbnRlbnRzSG9zdGVkSW5MYXllclN1
cmZhY2VOb3RpZmljYXRpb24iIG9iamVjdDp3aW5kb3ddOwotICAgIFtbTlNOb3RpZmljYXRpb25D
ZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlk
Q2hhbmdlT2NjbHVzaW9uU3RhdGVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Ci0jaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICBpZiAoX2RhdGEtPl9w
YWdlLT5pc0VkaXRhYmxlKCkpCi0gICAgICAgIFtbTlNGb250UGFuZWwgc2hhcmVkRm9udFBhbmVs
XSByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJ2aXNpYmxlIiBjb250ZXh0OmtleVZh
bHVlT2JzZXJ2aW5nQ29udGV4dF07Ci0gICAgW3dpbmRvdyByZW1vdmVPYnNlcnZlcjpzZWxmIGZv
cktleVBhdGg6QCJjb250ZW50TGF5b3V0UmVjdCIgY29udGV4dDprZXlWYWx1ZU9ic2VydmluZ0Nv
bnRleHRdOwotICAgIFt3aW5kb3cgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidGl0
bGViYXJBcHBlYXJzVHJhbnNwYXJlbnQiIGNvbnRleHQ6a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0
XTsKLSNlbmRpZgotICAgIFtfZGF0YS0+X3dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBzdG9wT2Jz
ZXJ2aW5nOndpbmRvd107CisgICAgX2RhdGEtPl9pbXBsLT5zdGFydE9ic2VydmluZ0ZvbnRQYW5l
bCgpOwogfQogCiAtICh2b2lkKXZpZXdXaWxsTW92ZVRvV2luZG93OihOU1dpbmRvdyAqKXdpbmRv
dwogewotICAgIC8vIElmIHdlJ3JlIGluIHRoZSBtaWRkbGUgb2YgcHJlcGFyaW5nIHRvIG1vdmUg
dG8gYSB3aW5kb3csIHdlIHNob3VsZCBvbmx5IGJlIG1vdmVkIHRvIHRoYXQgd2luZG93LgotICAg
IEFTU0VSVCghX2RhdGEtPl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gfHwgKF9kYXRh
LT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uID09IHdpbmRvdykpOwotCi0gICAgTlNX
aW5kb3cgKmN1cnJlbnRXaW5kb3cgPSBbc2VsZiB3aW5kb3ddOwotICAgIGlmICh3aW5kb3cgPT0g
Y3VycmVudFdpbmRvdykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgX2RhdGEtPl9wYWdlQ2xpZW50
LT52aWV3V2lsbE1vdmVUb0Fub3RoZXJXaW5kb3coKTsKLSAgICAKLSAgICBbc2VsZiByZW1vdmVX
aW5kb3dPYnNlcnZlcnNdOwotICAgIFtzZWxmIGFkZFdpbmRvd09ic2VydmVyc0ZvcldpbmRvdzp3
aW5kb3ddOworICAgIF9kYXRhLT5faW1wbC0+dmlld1dpbGxNb3ZlVG9XaW5kb3cod2luZG93KTsK
IH0KIAogLSAodm9pZCl2aWV3RGlkTW92ZVRvV2luZG93CiB7Ci0gICAgTlNXaW5kb3cgKndpbmRv
dyA9IF9kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uID8gX2RhdGEtPl90YXJn
ZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gOiBzZWxmLndpbmRvdzsKLQotICAgIGlmICh3aW5k
b3cpIHsKLSAgICAgICAgW3NlbGYgZG9XaW5kb3dEaWRDaGFuZ2VTY3JlZW5dOwotCi0gICAgICAg
IFZpZXdTdGF0ZTo6RmxhZ3Mgdmlld1N0YXRlQ2hhbmdlcyA9IFZpZXdTdGF0ZTo6V2luZG93SXNB
Y3RpdmUgfCBWaWV3U3RhdGU6OklzVmlzaWJsZTsKLSAgICAgICAgaWYgKFtzZWxmIGlzRGVmZXJy
aW5nVmlld0luV2luZG93Q2hhbmdlc10pCi0gICAgICAgICAgICBfZGF0YS0+X3ZpZXdJbldpbmRv
d0NoYW5nZVdhc0RlZmVycmVkID0gWUVTOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB2aWV3
U3RhdGVDaGFuZ2VzIHw9IFZpZXdTdGF0ZTo6SXNJbldpbmRvdzsKLSAgICAgICAgX2RhdGEtPl9w
YWdlLT52aWV3U3RhdGVEaWRDaGFuZ2Uodmlld1N0YXRlQ2hhbmdlcyk7Ci0KLSAgICAgICAgW3Nl
bGYgX3VwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXNdOwotCi0gICAgICAgIC8vIEZJWE1FKDEzNTUw
OSkgVGhpcyBjYWxsIGJlY29tZXMgdW5uZWNlc3Nhcnkgb25jZSAxMzU1MDkgaXMgZml4ZWQ7IHJl
bW92ZS4KLSAgICAgICAgX2RhdGEtPl9wYWdlLT5sYXllckhvc3RpbmdNb2RlRGlkQ2hhbmdlKCk7
Ci0KLSAgICAgICAgaWYgKCFfZGF0YS0+X2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvcikgewotICAg
ICAgICAgICAgX2RhdGEtPl9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IgPSBbTlNFdmVudCBhZGRM
b2NhbE1vbml0b3JGb3JFdmVudHNNYXRjaGluZ01hc2s6TlNGbGFnc0NoYW5nZWRNYXNrIGhhbmRs
ZXI6XihOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVudCkgewotICAgICAgICAgICAgICAgIFtzZWxm
IF9wb3N0RmFrZU1vdXNlTW92ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50OmZsYWdzQ2hhbmdl
ZEV2ZW50XTsKLSAgICAgICAgICAgICAgICByZXR1cm4gZmxhZ3NDaGFuZ2VkRXZlbnQ7Ci0gICAg
ICAgICAgICB9XTsKLSAgICAgICAgfQotCi0gICAgICAgIFtzZWxmIF9hY2Nlc3NpYmlsaXR5UmVn
aXN0ZXJVSVByb2Nlc3NUb2tlbnNdOwotCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDEwMDAKLSAgICAgICAgaWYgKF9kYXRhLT5faW1tZWRpYXRlQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXIgJiYgIVtbc2VsZiBnZXN0dXJlUmVjb2duaXplcnNdIGNvbnRhaW5zT2JqZWN0
Ol9kYXRhLT5faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldICYmICFfZGF0
YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cyAmJiBfZGF0YS0+X2FsbG93c0xpbmtQcmV2aWV3KQot
ICAgICAgICAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6X2RhdGEtPl9pbW1lZGlhdGVB
Y3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQoKV07Ci0jZW5kaWYKLSAgICB9IGVsc2UgewotICAg
ICAgICBWaWV3U3RhdGU6OkZsYWdzIHZpZXdTdGF0ZUNoYW5nZXMgPSBWaWV3U3RhdGU6OldpbmRv
d0lzQWN0aXZlIHwgVmlld1N0YXRlOjpJc1Zpc2libGU7Ci0gICAgICAgIGlmIChbc2VsZiBpc0Rl
ZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNdKQotICAgICAgICAgICAgX2RhdGEtPl92aWV3SW5X
aW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9IFlFUzsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
dmlld1N0YXRlQ2hhbmdlcyB8PSBWaWV3U3RhdGU6OklzSW5XaW5kb3c7Ci0gICAgICAgIF9kYXRh
LT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKHZpZXdTdGF0ZUNoYW5nZXMpOwotCi0gICAgICAg
IFtOU0V2ZW50IHJlbW92ZU1vbml0b3I6X2RhdGEtPl9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3Jd
OwotICAgICAgICBfZGF0YS0+X2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IG5pbDsKLQotICAg
ICAgICBbc2VsZiBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRp
b246Tk9dOwotCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAK
LSAgICAgICAgaWYgKF9kYXRhLT5faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIpCi0g
ICAgICAgICAgICBbc2VsZiByZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfZGF0YS0+X2ltbWVkaWF0
ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKLSNlbmRpZgotICAgIH0KLQotICAgIF9k
YXRhLT5fcGFnZS0+c2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoW3NlbGYgX2ludHJpbnNp
Y0RldmljZVNjYWxlRmFjdG9yXSk7Ci19Ci0KLS0gKHZvaWQpZG9XaW5kb3dEaWRDaGFuZ2VTY3Jl
ZW4KLXsKLSAgICBOU1dpbmRvdyAqd2luZG93ID0gX2RhdGEtPl90YXJnZXRXaW5kb3dGb3JNb3Zl
UHJlcGFyYXRpb24gPyBfZGF0YS0+X3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA6IHNl
bGYud2luZG93OwotICAgIF9kYXRhLT5fcGFnZS0+d2luZG93U2NyZWVuRGlkQ2hhbmdlKChQbGF0
Zm9ybURpc3BsYXlJRClbW1tbd2luZG93IHNjcmVlbl0gZGV2aWNlRGVzY3JpcHRpb25dIG9iamVj
dEZvcktleTpAIk5TU2NyZWVuTnVtYmVyIl0gaW50VmFsdWVdKTsKLX0KLQotLSAodm9pZClfd2lu
ZG93RGlkQmVjb21lS2V5OihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIE5T
V2luZG93ICprZXlXaW5kb3cgPSBbbm90aWZpY2F0aW9uIG9iamVjdF07Ci0gICAgaWYgKGtleVdp
bmRvdyA9PSBbc2VsZiB3aW5kb3ddIHx8IGtleVdpbmRvdyA9PSBbW3NlbGYgd2luZG93XSBhdHRh
Y2hlZFNoZWV0XSkgewotICAgICAgICBfZGF0YS0+X2ltcGwtPnVwZGF0ZVNlY3VyZUlucHV0U3Rh
dGUoKTsKLSAgICAgICAgX2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRl
OjpXaW5kb3dJc0FjdGl2ZSk7Ci0gICAgfQotfQotCi0tICh2b2lkKV93aW5kb3dEaWRDaGFuZ2VT
Y3JlZW46KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCi17Ci0gICAgW3NlbGYgZG9XaW5k
b3dEaWRDaGFuZ2VTY3JlZW5dOwotfQotCi0tICh2b2lkKV93aW5kb3dEaWRDaGFuZ2VMYXllckhv
c3Rpbmc6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCi17Ci0gICAgX2RhdGEtPl9wYWdl
LT5sYXllckhvc3RpbmdNb2RlRGlkQ2hhbmdlKCk7Ci19Ci0KLS0gKHZvaWQpX3dpbmRvd0RpZFJl
c2lnbktleTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KLXsKLSAgICBOU1dpbmRvdyAq
Zm9ybWVyS2V5V2luZG93ID0gW25vdGlmaWNhdGlvbiBvYmplY3RdOwotICAgIGlmIChmb3JtZXJL
ZXlXaW5kb3cgPT0gW3NlbGYgd2luZG93XSB8fCBmb3JtZXJLZXlXaW5kb3cgPT0gW1tzZWxmIHdp
bmRvd10gYXR0YWNoZWRTaGVldF0pIHsKLSAgICAgICAgX2RhdGEtPl9pbXBsLT51cGRhdGVTZWN1
cmVJbnB1dFN0YXRlKCk7Ci0gICAgICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdl
KFZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOwotICAgIH0KLX0KLQotLSAodm9pZClfd2luZG93
RGlkTWluaWF0dXJpemU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCi17Ci0gICAgX2Rh
dGEtPl9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpJc1Zpc2libGUpOwotfQot
Ci0tICh2b2lkKV93aW5kb3dEaWREZW1pbmlhdHVyaXplOihOU05vdGlmaWNhdGlvbiAqKW5vdGlm
aWNhdGlvbgotewotICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0
ZTo6SXNWaXNpYmxlKTsKLX0KLQotLSAodm9pZClfd2luZG93RGlkTW92ZTooTlNOb3RpZmljYXRp
b24gKilub3RpZmljYXRpb24KLXsKLSAgICBbc2VsZiBfdXBkYXRlV2luZG93QW5kVmlld0ZyYW1l
c107ICAgIAotfQotCi0tICh2b2lkKV93aW5kb3dEaWRSZXNpemU6KE5TTm90aWZpY2F0aW9uICop
bm90aWZpY2F0aW9uCi17Ci0gICAgW3NlbGYgX3VwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXNdOwot
fQotCi0tICh2b2lkKV93aW5kb3dEaWRPcmRlck9mZlNjcmVlbjooTlNOb3RpZmljYXRpb24gKilu
b3RpZmljYXRpb24KLXsKLSAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3
U3RhdGU6OklzVmlzaWJsZSB8IFZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOwotfQotCi0tICh2
b2lkKV93aW5kb3dEaWRPcmRlck9uU2NyZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlv
bgotewotICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6SXNW
aXNpYmxlIHwgVmlld1N0YXRlOjpXaW5kb3dJc0FjdGl2ZSk7Ci19Ci0KLS0gKHZvaWQpX3dpbmRv
d0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlv
bgotewotICAgIENHRmxvYXQgb2xkQmFja2luZ1NjYWxlRmFjdG9yID0gW1tub3RpZmljYXRpb24u
dXNlckluZm8gb2JqZWN0Rm9yS2V5Ok5TQmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXld
IGRvdWJsZVZhbHVlXTsKLSAgICBDR0Zsb2F0IG5ld0JhY2tpbmdTY2FsZUZhY3RvciA9IFtzZWxm
IF9pbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3Rvcl07IAotICAgIGlmIChvbGRCYWNraW5nU2NhbGVG
YWN0b3IgPT0gbmV3QmFja2luZ1NjYWxlRmFjdG9yKQotICAgICAgICByZXR1cm47IAotCi0gICAg
X2RhdGEtPl9wYWdlLT5zZXRJbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcihuZXdCYWNraW5nU2Nh
bGVGYWN0b3IpOwotfQotCi0tICh2b2lkKV93aW5kb3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0ZToo
TlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KLXsKLSAgICBfZGF0YS0+X3BhZ2UtPnZpZXdT
dGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OklzVmlzaWJsZSk7CisgICAgX2RhdGEtPl9pbXBsLT52
aWV3RGlkTW92ZVRvV2luZG93KCk7CiB9CiAKIC0gKHZvaWQpZHJhd1JlY3Q6KE5TUmVjdClyZWN0
CkBAIC0yNzY5LDEzICsyMzk2LDcgQEAgc3RhdGljIHZvaWQqIGtleVZhbHVlT2JzZXJ2aW5nQ29u
dGV4dCA9ICZrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQ7CiAKIC0gKHZvaWQpdmlld0RpZENoYW5n
ZUJhY2tpbmdQcm9wZXJ0aWVzCiB7Ci0gICAgTlNDb2xvclNwYWNlICpjb2xvclNwYWNlID0gW1tz
ZWxmIHdpbmRvd10gY29sb3JTcGFjZV07Ci0gICAgaWYgKFtjb2xvclNwYWNlIGlzRXF1YWxUbzpf
ZGF0YS0+X2NvbG9yU3BhY2UuZ2V0KCldKQotICAgICAgICByZXR1cm47Ci0KLSAgICBfZGF0YS0+
X2NvbG9yU3BhY2UgPSBudWxscHRyOwotICAgIGlmIChEcmF3aW5nQXJlYVByb3h5ICpkcmF3aW5n
QXJlYSA9IF9kYXRhLT5fcGFnZS0+ZHJhd2luZ0FyZWEoKSkKLSAgICAgICAgZHJhd2luZ0FyZWEt
PmNvbG9yU3BhY2VEaWRDaGFuZ2UoKTsKKyAgICBfZGF0YS0+X2ltcGwtPnZpZXdEaWRDaGFuZ2VC
YWNraW5nUHJvcGVydGllcygpOwogfQogCiAtICh2b2lkKV9hY3RpdmVTcGFjZURpZENoYW5nZToo
TlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KQEAgLTI3ODMsMzIgKzI0MDQsNiBAQCBzdGF0
aWMgdm9pZCoga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0ID0gJmtleVZhbHVlT2JzZXJ2aW5nQ29u
dGV4dDsKICAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6Oklz
VmlzaWJsZSk7CiB9CiAKLS0gKHZvaWQpX3ByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwCi17Ci0g
ICAgaWYgKF9kYXRhLT5fZGlkUmVnaXN0ZXJGb3JMb29rdXBQb3BvdmVyQ2xvc2VOb3RpZmljYXRp
b25zKQotICAgICAgICByZXR1cm47Ci0KLSAgICBfZGF0YS0+X2RpZFJlZ2lzdGVyRm9yTG9va3Vw
UG9wb3ZlckNsb3NlTm90aWZpY2F0aW9ucyA9IFlFUzsKLQotICAgIGlmIChjYW5Mb2FkTFVOb3Rp
ZmljYXRpb25Qb3BvdmVyV2lsbENsb3NlKCkpCi0gICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50
ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2Rp
Y3Rpb25hcnlMb29rdXBQb3BvdmVyV2lsbENsb3NlOikgbmFtZTpnZXRMVU5vdGlmaWNhdGlvblBv
cG92ZXJXaWxsQ2xvc2UoKSBvYmplY3Q6bmlsXTsKLX0KLQotLSAodm9pZClfZGljdGlvbmFyeUxv
b2t1cFBvcG92ZXJXaWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCi17Ci0g
ICAgW3NlbGYgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246VGV4dEluZGljYXRvcldp
bmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZV07Ci19Ci0KLS0gKHZvaWQpX2FjY2Vzc2liaWxp
dHlSZWdpc3RlclVJUHJvY2Vzc1Rva2VucwotewotICAgIC8vIEluaXRpYWxpemUgcmVtb3RlIGFj
Y2Vzc2liaWxpdHkgd2hlbiB0aGUgd2luZG93IGNvbm5lY3Rpb24gaGFzIGJlZW4gZXN0YWJsaXNo
ZWQuCi0gICAgTlNEYXRhICpyZW1vdGVFbGVtZW50VG9rZW4gPSBXS0FYUmVtb3RlVG9rZW5Gb3JF
bGVtZW50KHNlbGYpOwotICAgIE5TRGF0YSAqcmVtb3RlV2luZG93VG9rZW4gPSBXS0FYUmVtb3Rl
VG9rZW5Gb3JFbGVtZW50KFtzZWxmIHdpbmRvd10pOwotICAgIElQQzo6RGF0YVJlZmVyZW5jZSBl
bGVtZW50VG9rZW4gPSBJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1
aW50OF90Kj4oW3JlbW90ZUVsZW1lbnRUb2tlbiBieXRlc10pLCBbcmVtb3RlRWxlbWVudFRva2Vu
IGxlbmd0aF0pOwotICAgIElQQzo6RGF0YVJlZmVyZW5jZSB3aW5kb3dUb2tlbiA9IElQQzo6RGF0
YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihbcmVtb3RlV2luZG93
VG9rZW4gYnl0ZXNdKSwgW3JlbW90ZVdpbmRvd1Rva2VuIGxlbmd0aF0pOwotICAgIF9kYXRhLT5f
cGFnZS0+cmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW5zKGVsZW1lbnRUb2tlbiwg
d2luZG93VG9rZW4pOwotfQotCiAtICh2b2lkKV91cGRhdGVSZW1vdGVBY2Nlc3NpYmlsaXR5UmVn
aXN0cmF0aW9uOihCT09MKXJlZ2lzdGVyUHJvY2VzcwogewogICAgIC8vIFdoZW4gdGhlIHRyZWUg
aXMgY29ubmVjdGVkL2Rpc2Nvbm5lY3RlZCwgdGhlIHJlbW90ZSBhY2Nlc3NpYmlsaXR5IHJlZ2lz
dHJhdGlvbgpAQCAtMjgzMyw3ICsyNDI4LDcgQEAgc3RhdGljIHZvaWQqIGtleVZhbHVlT2JzZXJ2
aW5nQ29udGV4dCA9ICZrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQ7CiAgICAgLy8gQWZ0ZXIgZW5h
YmxpbmcgYWNjZXNzaWJpbGl0eSB1cGRhdGUgdGhlIHdpbmRvdyBmcmFtZSBvbiB0aGUgd2ViIHBy
b2Nlc3Mgc28gdGhhdCB0aGUKICAgICAvLyBjb3JyZWN0IGFjY2Vzc2liaWxpdHkgcG9zaXRpb24g
aXMgdHJhbnNtaXR0ZWQgKHdoZW4gQVggaXMgb2ZmLCB0aGF0IHBvc2l0aW9uIGlzIG5vdCBjYWxj
dWxhdGVkKS4KICAgICBXZWJDb3JlOjpBWE9iamVjdENhY2hlOjplbmFibGVBY2Nlc3NpYmlsaXR5
KCk7Ci0gICAgW3NlbGYgX3VwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXNdOworICAgIF9kYXRhLT5f
aW1wbC0+dXBkYXRlV2luZG93QW5kVmlld0ZyYW1lcygpOwogfQogCiAtIChpZClhY2Nlc3NpYmls
aXR5Rm9jdXNlZFVJRWxlbWVudApAQCAtMjg4OCw0NSArMjQ4MywxNCBAQCBzdGF0aWMgdm9pZCog
a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0ID0gJmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dDsKICAg
ICByZXR1cm4gaGl0VmlldzsKIH0KIAotLSAodm9pZClfcG9zdEZha2VNb3VzZU1vdmVkRXZlbnRG
b3JGbGFnc0NoYW5nZWRFdmVudDooTlNFdmVudCAqKWZsYWdzQ2hhbmdlZEV2ZW50Ci17Ci0gICAg
TlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VN
b3ZlZCBsb2NhdGlvbjpbW2ZsYWdzQ2hhbmdlZEV2ZW50IHdpbmRvd10gbW91c2VMb2NhdGlvbk91
dHNpZGVPZkV2ZW50U3RyZWFtXQotICAgICAgICBtb2RpZmllckZsYWdzOltmbGFnc0NoYW5nZWRF
dmVudCBtb2RpZmllckZsYWdzXSB0aW1lc3RhbXA6W2ZsYWdzQ2hhbmdlZEV2ZW50IHRpbWVzdGFt
cF0gd2luZG93TnVtYmVyOltmbGFnc0NoYW5nZWRFdmVudCB3aW5kb3dOdW1iZXJdCi0gICAgICAg
IGNvbnRleHQ6W2ZsYWdzQ2hhbmdlZEV2ZW50IGNvbnRleHRdIGV2ZW50TnVtYmVyOjAgY2xpY2tD
b3VudDowIHByZXNzdXJlOjBdOwotICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQoZmFr
ZUV2ZW50LCBfZGF0YS0+X3ByZXNzdXJlRXZlbnQsIHNlbGYpOwotICAgIF9kYXRhLT5fcGFnZS0+
aGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7Ci19Ci0KIC0gKE5TSW50ZWdlciljb252ZXJzYXRp
b25JZGVudGlmaWVyCiB7CiAgICAgcmV0dXJuIChOU0ludGVnZXIpc2VsZjsKIH0KIAotLSAoZmxv
YXQpX2ludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yCi17Ci0gICAgaWYgKF9kYXRhLT5fb3ZlcnJp
ZGVEZXZpY2VTY2FsZUZhY3RvcikKLSAgICAgICAgcmV0dXJuIF9kYXRhLT5fb3ZlcnJpZGVEZXZp
Y2VTY2FsZUZhY3RvcjsKLSAgICBpZiAoX2RhdGEtPl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFy
YXRpb24pCi0gICAgICAgIHJldHVybiBbX2RhdGEtPl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFy
YXRpb24gYmFja2luZ1NjYWxlRmFjdG9yXTsKLSAgICBpZiAoTlNXaW5kb3cgKndpbmRvdyA9IFtz
ZWxmIHdpbmRvd10pCi0gICAgICAgIHJldHVybiBbd2luZG93IGJhY2tpbmdTY2FsZUZhY3Rvcl07
Ci0gICAgcmV0dXJuIFtbTlNTY3JlZW4gbWFpblNjcmVlbl0gYmFja2luZ1NjYWxlRmFjdG9yXTsK
LX0KLQogLSAodm9pZClxdWlja0xvb2tXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAogewotICAg
IGlmIChfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykKLSAgICAgICAgcmV0dXJuOwotCi0j
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICBpZiAoX2Rh
dGEtPl9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplcikgewotICAgICAgICBbc3VwZXIg
cXVpY2tMb29rV2l0aEV2ZW50OmV2ZW50XTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRp
ZgotCi0gICAgTlNQb2ludCBsb2NhdGlvbkluVmlld0Nvb3JkaW5hdGVzID0gW3NlbGYgY29udmVy
dFBvaW50OltldmVudCBsb2NhdGlvbkluV2luZG93XSBmcm9tVmlldzpuaWxdOwotICAgIF9kYXRh
LT5fcGFnZS0+cGVyZm9ybURpY3Rpb25hcnlMb29rdXBBdExvY2F0aW9uKEZsb2F0UG9pbnQobG9j
YXRpb25JblZpZXdDb29yZGluYXRlcy54LCBsb2NhdGlvbkluVmlld0Nvb3JkaW5hdGVzLnkpKTsK
KyAgICBfZGF0YS0+X2ltcGwtPnF1aWNrTG9va1dpdGhFdmVudChldmVudCk7CiB9CiAKIC0gKHN0
ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk+KV9jcmVhdGVEcmF3aW5nQXJl
YVByb3h5CkBAIC0yOTM5LDE5ICsyNTAzLDcgQEAgc3RhdGljIHZvaWQqIGtleVZhbHVlT2JzZXJ2
aW5nQ29udGV4dCA9ICZrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQ7CiAKIC0gKFdlYktpdDo6Q29s
b3JTcGFjZURhdGEpX2NvbG9yU3BhY2UKIHsKLSAgICBpZiAoIV9kYXRhLT5fY29sb3JTcGFjZSkg
ewotICAgICAgICBpZiAoX2RhdGEtPl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24pCi0g
ICAgICAgICAgICBfZGF0YS0+X2NvbG9yU3BhY2UgPSBbX2RhdGEtPl90YXJnZXRXaW5kb3dGb3JN
b3ZlUHJlcGFyYXRpb24gY29sb3JTcGFjZV07Ci0gICAgICAgIGVsc2UgaWYgKE5TV2luZG93ICp3
aW5kb3cgPSBbc2VsZiB3aW5kb3ddKQotICAgICAgICAgICAgX2RhdGEtPl9jb2xvclNwYWNlID0g
W3dpbmRvdyBjb2xvclNwYWNlXTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgX2RhdGEtPl9j
b2xvclNwYWNlID0gW1tOU1NjcmVlbiBtYWluU2NyZWVuXSBjb2xvclNwYWNlXTsKLSAgICB9Ci0g
ICAgICAgIAotICAgIENvbG9yU3BhY2VEYXRhIGNvbG9yU3BhY2VEYXRhOwotICAgIGNvbG9yU3Bh
Y2VEYXRhLmNnQ29sb3JTcGFjZSA9IFtfZGF0YS0+X2NvbG9yU3BhY2UgQ0dDb2xvclNwYWNlXTsK
LQotICAgIHJldHVybiBjb2xvclNwYWNlRGF0YTsgICAgCisgICAgcmV0dXJuIF9kYXRhLT5faW1w
bC0+Y29sb3JTcGFjZSgpOwogfQogCiAtICh2b2lkKV9wcm9jZXNzRGlkRXhpdApAQCAtMjk3Mywx
OSArMjUyNSw3IEBAIHN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQgPSAma2V5
VmFsdWVPYnNlcnZpbmdDb250ZXh0OwogCiAtICh2b2lkKV9kaWRSZWxhdW5jaFByb2Nlc3MKIHsK
LSAgICBbc2VsZiBfYWNjZXNzaWJpbGl0eVJlZ2lzdGVyVUlQcm9jZXNzVG9rZW5zXTsKLX0KLQot
LSAodm9pZClfcHJlZmVyZW5jZXNEaWRDaGFuZ2UKLXsKLSAgICBCT09MIG5lZWRzVmlld0ZyYW1l
SW5XaW5kb3dDb29yZGluYXRlcyA9IF9kYXRhLT5fcGFnZS0+cHJlZmVyZW5jZXMoKS5wbHVnaW5z
RW5hYmxlZCgpOwotCi0gICAgaWYgKCEhbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVz
ID09ICEhX2RhdGEtPl9uZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMpCi0gICAgICAg
IHJldHVybjsKLQotICAgIF9kYXRhLT5fbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVz
ID0gbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzOwotICAgIGlmIChbc2VsZiB3aW5k
b3ddKQotICAgICAgICBbc2VsZiBfdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lc107CisgICAgX2Rh
dGEtPl9pbXBsLT5hY2Nlc3NpYmlsaXR5UmVnaXN0ZXJVSVByb2Nlc3NUb2tlbnMoKTsKIH0KIAog
LSAodm9pZClfc2V0VXNlckludGVyZmFjZUl0ZW1TdGF0ZTooTlNTdHJpbmcgKiljb21tYW5kTmFt
ZSBlbmFibGVkOihCT09MKWlzRW5hYmxlZCBzdGF0ZTooaW50KW5ld1N0YXRlCkBAIC0zMTY0LDMz
ICsyNzA0LDYgQEAgc3RhdGljIHZvaWQqIGtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dCA9ICZrZXlW
YWx1ZU9ic2VydmluZ0NvbnRleHQ7CiAgICAgfQogfQogCi0tICh2b2lkKV9zZXRUZXh0SW5kaWNh
dG9yOihUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yCi17Ci0gICAgW3NlbGYgX3NldFRleHRJ
bmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6VGV4dEluZGljYXRvcldpbmRvd0xp
ZmV0aW1lOjpQZXJtYW5lbnRdOwotfQotCi0tICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihUZXh0
SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yIHdpdGhMaWZldGltZTooVGV4dEluZGljYXRvcldpbmRv
d0xpZmV0aW1lKWxpZmV0aW1lCi17Ci0gICAgaWYgKCFfZGF0YS0+X3RleHRJbmRpY2F0b3JXaW5k
b3cpCi0gICAgICAgIF9kYXRhLT5fdGV4dEluZGljYXRvcldpbmRvdyA9IHN0ZDo6bWFrZV91bmlx
dWU8VGV4dEluZGljYXRvcldpbmRvdz4oc2VsZik7Ci0KLSAgICBOU1JlY3QgdGV4dEJvdW5kaW5n
UmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMgPSBbc2VsZi53aW5kb3cgY29udmVydFJlY3RUb1NjcmVl
bjpbc2VsZiBjb252ZXJ0UmVjdDp0ZXh0SW5kaWNhdG9yLnRleHRCb3VuZGluZ1JlY3RJblJvb3RW
aWV3Q29vcmRpbmF0ZXMoKSB0b1ZpZXc6bmlsXV07Ci0gICAgX2RhdGEtPl90ZXh0SW5kaWNhdG9y
V2luZG93LT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIE5TUmVjdFRvQ0dSZWN0KHRl
eHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVzKSwgbGlmZXRpbWUpOwotfQotCi0tICh2
b2lkKV9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOihUZXh0SW5kaWNhdG9yV2luZG93
RGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1hdGlvbgotewotICAgIGlmIChfZGF0YS0+X3RleHRJbmRp
Y2F0b3JXaW5kb3cpCi0gICAgICAgIF9kYXRhLT5fdGV4dEluZGljYXRvcldpbmRvdy0+Y2xlYXJU
ZXh0SW5kaWNhdG9yKGFuaW1hdGlvbik7Ci0gICAgX2RhdGEtPl90ZXh0SW5kaWNhdG9yV2luZG93
ID0gbnVsbHB0cjsKLX0KLQotLSAodm9pZClfc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dy
ZXNzOihmbG9hdClwcm9ncmVzcwotewotICAgIGlmIChfZGF0YS0+X3RleHRJbmRpY2F0b3JXaW5k
b3cpCi0gICAgICAgIF9kYXRhLT5fdGV4dEluZGljYXRvcldpbmRvdy0+c2V0QW5pbWF0aW9uUHJv
Z3Jlc3MocHJvZ3Jlc3MpOwotfQotCiAtICh2b2lkKV9zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
TW9kZVJvb3RMYXllcjooQ0FMYXllciAqKXJvb3RMYXllcgogewogICAgIFtyb290TGF5ZXIgd2Vi
X2Rpc2FibGVBbGxBY3Rpb25zXTsKQEAgLTM1MjIsMTIgKzMwMzUsNiBAQCBzdGF0aWMgTlNTdHJp
bmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAgIHJl
dHVybiBbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6W3BhdGggbGFzdFBhdGhDb21wb25lbnRdXTsK
IH0KIAotCi0tIChOU1dpbmRvdyAqKV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24KLXsK
LSAgICByZXR1cm4gX2RhdGEtPl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb247Ci19Ci0K
ICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAtIChCT09MKV9oYXNGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlcgogewpAQCAtMzU1NiwxMSArMzA2Myw2IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0
aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgcmV0dXJuICFb
c2luayBkaWRSZWNlaXZlVW5oYW5kbGVkQ29tbWFuZF07CiB9CiAKLS0gKHZvaWQpX3NldEludHJp
bnNpY0NvbnRlbnRTaXplOihOU1NpemUpaW50cmluc2ljQ29udGVudFNpemUKLXsKLSAgICBfZGF0
YS0+X2ltcGwtPnNldEludHJpbnNpY0NvbnRlbnRTaXplKE5TU2l6ZVRvQ0dTaXplKGludHJpbnNp
Y0NvbnRlbnRTaXplKSk7Ci19Ci0KIC0gKE5TSW50ZWdlcilzcGVsbENoZWNrZXJEb2N1bWVudFRh
ZwogewogICAgIGlmICghX2RhdGEtPl9oYXNTcGVsbENoZWNrZXJEb2N1bWVudFRhZykgewpAQCAt
MzYyMSwyMyArMzEyMywxNyBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5h
bWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAgIF9kYXRhLT5fcGFnZUNsaWVudCA9IHN0ZDo6
bWFrZV91bmlxdWU8UGFnZUNsaWVudEltcGw+KHNlbGYsIHdlYlZpZXcpOwogICAgIF9kYXRhLT5f
cGFnZSA9IHByb2Nlc3NQb29sLmNyZWF0ZVdlYlBhZ2UoKl9kYXRhLT5fcGFnZUNsaWVudCwgV1RG
Ojptb3ZlKGNvbmZpZ3VyYXRpb24pKTsKIAotICAgIF9kYXRhLT5faW1wbCA9IHN0ZDo6bWFrZV91
bmlxdWU8V2ViVmlld0ltcGw+KHNlbGYsICpfZGF0YS0+X3BhZ2UpOwotICAgIHN0YXRpY19jYXN0
PFBhZ2VDbGllbnRJbXBsKj4oX2RhdGEtPl9wYWdlQ2xpZW50LmdldCgpKS0+c2V0SW1wbCgqX2Rh
dGEtPl9pbXBsKTsKKyAgICBfZGF0YS0+X2ltcGwgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYlZpZXdJ
bXBsPihzZWxmLCAqX2RhdGEtPl9wYWdlLCAqX2RhdGEtPl9wYWdlQ2xpZW50KTsKKyAgICBzdGF0
aWNfY2FzdDxQYWdlQ2xpZW50SW1wbCY+KCpfZGF0YS0+X3BhZ2VDbGllbnQpLnNldEltcGwoKl9k
YXRhLT5faW1wbCk7CiAKICAgICBfZGF0YS0+X3BhZ2UtPnNldEFkZHNWaXNpdGVkTGlua3MocHJv
Y2Vzc1Bvb2wuaGlzdG9yeUNsaWVudCgpLmFkZHNWaXNpdGVkTGlua3MoKSk7CiAKLSAgICBfZGF0
YS0+X3BhZ2UtPnNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKFtzZWxmIF9pbnRyaW5zaWNE
ZXZpY2VTY2FsZUZhY3Rvcl0pOwogICAgIF9kYXRhLT5fcGFnZS0+aW5pdGlhbGl6ZVdlYlBhZ2Uo
KTsKIAogICAgIF9kYXRhLT5fbW91c2VEb3duRXZlbnQgPSBuaWw7Ci0gICAgX2RhdGEtPl9wcmVz
c3VyZUV2ZW50ID0gbmlsOwogICAgIF9kYXRhLT5faWdub3JpbmdNb3VzZURyYWdnZWRFdmVudHMg
PSBOTzsKICAgICBfZGF0YS0+X3dpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQgPSBZRVM7
CiAKLSAgICBfZGF0YS0+X3dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciA9IGFkb3B0TlMoW1tXS1dp
bmRvd1Zpc2liaWxpdHlPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhWaWV3OnNlbGZdKTsKLQotICAg
IF9kYXRhLT5fbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzID0gX2RhdGEtPl9wYWdl
LT5wcmVmZXJlbmNlcygpLnBsdWdpbnNFbmFibGVkKCk7Ci0KICAgICBbc2VsZiBfcmVnaXN0ZXJE
cmFnZ2VkVHlwZXNdOwogCiAgICAgc2VsZi53YW50c0xheWVyID0gWUVTOwpAQCAtMzY1MCwxNyAr
MzE0Niw2IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgo
TlNTdHJpbmcgKnBhdGgpCiAgICAgTlNOb3RpZmljYXRpb25DZW50ZXIqIHdvcmtzcGFjZU5vdGlm
aWNhdGlvbkNlbnRlciA9IFtbTlNXb3Jrc3BhY2Ugc2hhcmVkV29ya3NwYWNlXSBub3RpZmljYXRp
b25DZW50ZXJdOwogICAgIFt3b3Jrc3BhY2VOb3RpZmljYXRpb25DZW50ZXIgYWRkT2JzZXJ2ZXI6
c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FjdGl2ZVNwYWNlRGlkQ2hhbmdlOikgbmFtZTpOU1dv
cmtzcGFjZUFjdGl2ZVNwYWNlRGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwogCi0j
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICBfZGF0YS0+
X2FsbG93c0xpbmtQcmV2aWV3ID0gWUVTOwotCi0gICAgaWYgKENsYXNzIGdlc3R1cmVDbGFzcyA9
IE5TQ2xhc3NGcm9tU3RyaW5nKEAiTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciIp
KSB7Ci0gICAgICAgIF9kYXRhLT5faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgPSBh
ZG9wdE5TKFsoTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKVtnZXN0dXJlQ2xh
c3MgYWxsb2NdIGluaXRdKTsKLSAgICAgICAgX2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyID0gYWRvcHROUyhbW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBhbGxvY10gaW5pdFdp
dGhQYWdlOipfZGF0YS0+X3BhZ2UgdmlldzpzZWxmIHJlY29nbml6ZXI6X2RhdGEtPl9pbW1lZGlh
dGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQoKV0pOwotICAgICAgICBbX2RhdGEtPl9pbW1l
ZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTpfZGF0YS0+X2ltbWVkaWF0
ZUFjdGlvbkNvbnRyb2xsZXIuZ2V0KCldOwotICAgICAgICBbX2RhdGEtPl9pbW1lZGlhdGVBY3Rp
b25HZXN0dXJlUmVjb2duaXplciBzZXREZWxheXNQcmltYXJ5TW91c2VCdXR0b25FdmVudHM6Tk9d
OwotICAgIH0KLSNlbmRpZgotCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKQEAgLTM3MDUsNDIgKzMx
OTAsNiBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5T
U3RyaW5nICpwYXRoKQogfQogI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECiAKLSNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAotCi0tICh2b2lkKV91cGRhdGVDb250
ZW50SW5zZXRzSWZBdXRvbWF0aWMKLXsKLSAgICBpZiAoIXNlbGYuX2F1dG9tYXRpY2FsbHlBZGp1
c3RzQ29udGVudEluc2V0cykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKChzZWxmLndpbmRv
dy5zdHlsZU1hc2sgJiBOU0Z1bGxTaXplQ29udGVudFZpZXdXaW5kb3dNYXNrKSAmJiAhc2VsZi53
aW5kb3cudGl0bGViYXJBcHBlYXJzVHJhbnNwYXJlbnQgJiYgIVtzZWxmIGVuY2xvc2luZ1Njcm9s
bFZpZXddKSB7Ci0gICAgICAgIE5TUmVjdCBjb250ZW50TGF5b3V0UmVjdCA9IFtzZWxmIGNvbnZl
cnRSZWN0OnNlbGYud2luZG93LmNvbnRlbnRMYXlvdXRSZWN0IGZyb21WaWV3Om5pbF07Ci0gICAg
ICAgIENHRmxvYXQgbmV3VG9wQ29udGVudEluc2V0ID0gTlNNYXhZKGNvbnRlbnRMYXlvdXRSZWN0
KSAtIE5TSGVpZ2h0KGNvbnRlbnRMYXlvdXRSZWN0KTsKLSAgICAgICAgaWYgKHNlbGYuX3RvcENv
bnRlbnRJbnNldCAhPSBuZXdUb3BDb250ZW50SW5zZXQpCi0gICAgICAgICAgICBzZWxmLl90b3BD
b250ZW50SW5zZXQgPSBuZXdUb3BDb250ZW50SW5zZXQ7Ci0gICAgfSBlbHNlCi0gICAgICAgIHNl
bGYuX3RvcENvbnRlbnRJbnNldCA9IDA7Ci19Ci0KLSNlbmRpZgotCi0tICh2b2lkKW9ic2VydmVW
YWx1ZUZvcktleVBhdGg6KE5TU3RyaW5nICopa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNo
YW5nZTooTlNEaWN0aW9uYXJ5ICopY2hhbmdlIGNvbnRleHQ6KHZvaWQgKiljb250ZXh0Ci17Ci0j
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICBpZiAoY29u
dGV4dCAhPSBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQpIHsKLSAgICAgICAgW3N1cGVyIG9ic2Vy
dmVWYWx1ZUZvcktleVBhdGg6a2V5UGF0aCBvZk9iamVjdDpvYmplY3QgY2hhbmdlOmNoYW5nZSBj
b250ZXh0OmNvbnRleHRdOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKFtrZXlQ
YXRoIGlzRXF1YWxUb1N0cmluZzpAInZpc2libGUiXSAmJiBbTlNGb250UGFuZWwgc2hhcmVkRm9u
dFBhbmVsRXhpc3RzXSAmJiBvYmplY3QgPT0gW05TRm9udFBhbmVsIHNoYXJlZEZvbnRQYW5lbF0p
IHsKLSAgICAgICAgW3NlbGYgdXBkYXRlRm9udFBhbmVsSWZOZWVkZWRdOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotICAgIGlmIChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJjb250ZW50TGF5
b3V0UmVjdCJdIHx8IFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAInRpdGxlYmFyQXBwZWFyc1Ry
YW5zcGFyZW50Il0pCi0gICAgICAgIFtzZWxmIF91cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0
aWNdOwotI2VuZGlmCi19Ci0KLQogLSAodm9pZClfZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0Rm9yTWFpbkZyYW1lCiB7CiAgICAgaWYgKF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXIpCkBA
IC0zNzgzLDE1ICszMjMyLDYgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVu
YW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKICAgICAgICAgX2RhdGEtPl9nZXN0dXJlQ29udHJv
bGxlci0+cmVtb3ZlU3dpcGVTbmFwc2hvdCgpOwogfQogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLQotLSAodm9pZClfZGlkUGVyZm9ybUltbWVkaWF0ZUFj
dGlvbkhpdFRlc3Q6KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHREYXRhJiloaXRUZXN0UmVzdWx0IGNv
bnRlbnRQcmV2ZW50c0RlZmF1bHQ6KEJPT0wpY29udGVudFByZXZlbnRzRGVmYXVsdCB1c2VyRGF0
YTooQVBJOjpPYmplY3QqKXVzZXJEYXRhCi17Ci0gICAgW19kYXRhLT5faW1tZWRpYXRlQWN0aW9u
Q29udHJvbGxlciBkaWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9uSGl0VGVzdDpoaXRUZXN0UmVzdWx0
IGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQ6Y29udGVudFByZXZlbnRzRGVmYXVsdCB1c2VyRGF0YTp1
c2VyRGF0YV07Ci19Ci0KLSNlbmRpZiAvLyBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTAwMAotCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEx
MDAKIC0gKHZvaWQpX3N0YXJ0V2luZG93RHJhZwogewpAQCAtMzk5Myw3MiArMzQzMywyOSBAQCBz
dGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpw
YXRoKQogICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmNyZWF0ZUZ1bGxTY3JlZW5XaW5kb3coKTsK
IH0KIAotLy8gRklYTUU6IEFsbCBvZiB0aGVzZSAiRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdl
cyIgbWV0aG9kcyBzaG91bGQgYmUgYWJsZSB0byBiZSByZW1vdmVkIG9uY2UgY2xpZW50cyBhcmUg
d2VhbmVkIG9mZiBvZiB0aGVtLgogLSAodm9pZCliZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRvd0No
YW5nZXMKIHsKLSAgICBpZiAoX2RhdGEtPl9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMp
IHsKLSAgICAgICAgTlNMb2coQCJiZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMgd2Fz
IGNhbGxlZCB3aGlsZSBhbHJlYWR5IGRlZmVycmluZyB2aWV3LWluLXdpbmRvdyBjaGFuZ2VzISIp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgX2RhdGEtPl9zaG91bGREZWZlclZpZXdJ
bldpbmRvd0NoYW5nZXMgPSBZRVM7CisgICAgX2RhdGEtPl9pbXBsLT5iZWdpbkRlZmVycmluZ1Zp
ZXdJbldpbmRvd0NoYW5nZXMoKTsKIH0KIAogLSAodm9pZCllbmREZWZlcnJpbmdWaWV3SW5XaW5k
b3dDaGFuZ2VzCiB7Ci0gICAgaWYgKCFfZGF0YS0+X3Nob3VsZERlZmVyVmlld0luV2luZG93Q2hh
bmdlcykgewotICAgICAgICBOU0xvZyhAImVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMg
d2FzIGNhbGxlZCB3aXRob3V0IGJlZ2luRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcyEiKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIF9kYXRhLT5fc2hvdWxkRGVmZXJWaWV3SW5X
aW5kb3dDaGFuZ2VzID0gTk87Ci0KLSAgICBpZiAoX2RhdGEtPl92aWV3SW5XaW5kb3dDaGFuZ2VX
YXNEZWZlcnJlZCkgewotICAgICAgICBbc2VsZiBfZGlzcGF0Y2hTZXRUb3BDb250ZW50SW5zZXRd
OwotICAgICAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6Oklz
SW5XaW5kb3cpOwotICAgICAgICBfZGF0YS0+X3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVk
ID0gTk87Ci0gICAgfQorICAgIF9kYXRhLT5faW1wbC0+ZW5kRGVmZXJyaW5nVmlld0luV2luZG93
Q2hhbmdlcygpOwogfQogCiAtICh2b2lkKWVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNT
eW5jCiB7Ci0gICAgaWYgKCFfZGF0YS0+X3Nob3VsZERlZmVyVmlld0luV2luZG93Q2hhbmdlcykg
ewotICAgICAgICBOU0xvZyhAImVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNTeW5jIHdh
cyBjYWxsZWQgd2l0aG91dCBiZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMhIik7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBfZGF0YS0+X3Nob3VsZERlZmVyVmlld0luV2lu
ZG93Q2hhbmdlcyA9IE5POwotCi0gICAgaWYgKF9kYXRhLT5fdmlld0luV2luZG93Q2hhbmdlV2Fz
RGVmZXJyZWQpIHsKLSAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0XTsK
LSAgICAgICAgX2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpJc0lu
V2luZG93KTsKLSAgICAgICAgX2RhdGEtPl92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9
IE5POwotICAgIH0KKyAgICBfZGF0YS0+X2ltcGwtPmVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0No
YW5nZXNTeW5jKCk7CiB9CiAKIC0gKHZvaWQpX3ByZXBhcmVGb3JNb3ZlVG9XaW5kb3c6KE5TV2lu
ZG93ICopdGFyZ2V0V2luZG93IHdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSlj
b21wbGV0aW9uSGFuZGxlcgogewotICAgIF9kYXRhLT5fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dD
aGFuZ2VzID0gWUVTOwotICAgIFtzZWxmIHZpZXdXaWxsTW92ZVRvV2luZG93OnRhcmdldFdpbmRv
d107Ci0gICAgX2RhdGEtPl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gPSB0YXJnZXRX
aW5kb3c7Ci0gICAgW3NlbGYgdmlld0RpZE1vdmVUb1dpbmRvd107Ci0KLSAgICBfZGF0YS0+X3No
b3VsZERlZmVyVmlld0luV2luZG93Q2hhbmdlcyA9IE5POwotCi0gICAgX2RhdGEtPl9wYWdlLT5p
bnN0YWxsVmlld1N0YXRlQ2hhbmdlQ29tcGxldGlvbkhhbmRsZXIoXigpIHsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgQVNTRVJUKHNlbGYud2luZG93ID09IF9kYXRhLT5f
dGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uKTsKLSAgICAgICAgX2RhdGEtPl90YXJnZXRX
aW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gPSBuaWw7Ci0gICAgfSk7Ci0KLSAgICBbc2VsZiBfZGlz
cGF0Y2hTZXRUb3BDb250ZW50SW5zZXRdOwotICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0YXRlRGlk
Q2hhbmdlKFZpZXdTdGF0ZTo6SXNJbldpbmRvdywgZmFsc2UsIFdlYlBhZ2VQcm94eTo6Vmlld1N0
YXRlQ2hhbmdlRGlzcGF0Y2hNb2RlOjpJbW1lZGlhdGUpOwotICAgIF9kYXRhLT5fdmlld0luV2lu
ZG93Q2hhbmdlV2FzRGVmZXJyZWQgPSBOTzsKKyAgICBfZGF0YS0+X2ltcGwtPnByZXBhcmVGb3JN
b3ZlVG9XaW5kb3codGFyZ2V0V2luZG93LCBjb21wbGV0aW9uSGFuZGxlcik7CiB9CiAKIC0gKEJP
T0wpaXNEZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzCiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5f
c2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwt
PmlzRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcygpOwogfQogCiAtIChCT09MKXdpbmRvd09j
Y2x1c2lvbkRldGVjdGlvbkVuYWJsZWQKQEAgLTQwODUsNzMgKzM0ODIsNDggQEAgc3RhdGljIE5T
U3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKIAog
LSAoQk9PTClhbGxvd3NMaW5rUHJldmlldwogewotICAgIHJldHVybiBfZGF0YS0+X2FsbG93c0xp
bmtQcmV2aWV3OworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmFsbG93c0xpbmtQcmV2aWV3KCk7
CiB9CiAKIC0gKHZvaWQpc2V0QWxsb3dzTGlua1ByZXZpZXc6KEJPT0wpYWxsb3dzTGlua1ByZXZp
ZXcKIHsKLSAgICBpZiAoX2RhdGEtPl9hbGxvd3NMaW5rUHJldmlldyA9PSBhbGxvd3NMaW5rUHJl
dmlldykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgX2RhdGEtPl9hbGxvd3NMaW5rUHJldmlldyA9
IGFsbG93c0xpbmtQcmV2aWV3OwotICAgIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMDAwCi0gICAgaWYgKCFhbGxvd3NMaW5rUHJldmlldykKLSAgICAgICAgW3Nl
bGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25HZXN0dXJl
UmVjb2duaXplci5nZXQoKV07Ci0gICAgZWxzZSBpZiAoTlNHZXN0dXJlUmVjb2duaXplciAqaW1t
ZWRpYXRlQWN0aW9uUmVjb2duaXplciA9IF9kYXRhLT5faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJl
Y29nbml6ZXIuZ2V0KCkpCi0gICAgICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOmltbWVk
aWF0ZUFjdGlvblJlY29nbml6ZXJdOwotI2VuZGlmCisgICAgX2RhdGEtPl9pbXBsLT5zZXRBbGxv
d3NMaW5rUHJldmlldyhhbGxvd3NMaW5rUHJldmlldyk7CiB9CiAKIC0gKHZvaWQpX3NldElnbm9y
ZXNBbGxFdmVudHM6KEJPT0wpaWdub3Jlc0FsbEV2ZW50cwogewotICAgIF9kYXRhLT5faWdub3Jl
c0FsbEV2ZW50cyA9IGlnbm9yZXNBbGxFdmVudHM7Ci0gICAgW3NlbGYgX3NldElnbm9yZXNOb25X
aGVlbEV2ZW50czppZ25vcmVzQWxsRXZlbnRzXTsKKyAgICBfZGF0YS0+X2ltcGwtPnNldElnbm9y
ZXNBbGxFdmVudHMoaWdub3Jlc0FsbEV2ZW50cyk7CiB9CiAKIC8vIEZvcndhcmQgX3NldElnbm9y
ZXNOb25XaGVlbE1vdXNlRXZlbnRzIHRvIF9zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHMgdG8gYXZv
aWQgYnJlYWtpbmcgZXhpc3RpbmcgY2xpZW50cy4KIC0gKHZvaWQpX3NldElnbm9yZXNOb25XaGVl
bE1vdXNlRXZlbnRzOihCT09MKWlnbm9yZXNOb25XaGVlbE1vdXNlRXZlbnRzCiB7Ci0gICAgW3Nl
bGYgX3NldElnbm9yZXNOb25XaGVlbEV2ZW50czppZ25vcmVzTm9uV2hlZWxNb3VzZUV2ZW50c107
CisgICAgX2RhdGEtPl9pbXBsLT5zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHMoaWdub3Jlc05vbldo
ZWVsTW91c2VFdmVudHMpOwogfQogCiAtICh2b2lkKV9zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHM6
KEJPT0wpaWdub3Jlc05vbldoZWVsRXZlbnRzCiB7Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05v
bldoZWVsRXZlbnRzID09IGlnbm9yZXNOb25XaGVlbEV2ZW50cykKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMgPSBpZ25vcmVzTm9uV2hlZWxFdmVu
dHM7Ci0gICAgX2RhdGEtPl9wYWdlLT5zZXRTaG91bGREaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVu
dHMoIWlnbm9yZXNOb25XaGVlbEV2ZW50cyk7Ci0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTAwMAotICAgIGlmIChpZ25vcmVzTm9uV2hlZWxFdmVudHMpCi0gICAg
ICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOl9kYXRhLT5faW1tZWRpYXRlQWN0aW9u
R2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOwotICAgIGVsc2UgaWYgKE5TR2VzdHVyZVJlY29nbml6
ZXIgKmltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXIgPSBfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkdl
c3R1cmVSZWNvZ25pemVyLmdldCgpKSB7Ci0gICAgICAgIGlmIChfZGF0YS0+X2FsbG93c0xpbmtQ
cmV2aWV3KQotICAgICAgICAgICAgW3NlbGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6aW1tZWRpYXRl
QWN0aW9uUmVjb2duaXplcl07Ci0gICAgfQotI2VuZGlmCisgICAgX2RhdGEtPl9pbXBsLT5zZXRJ
Z25vcmVzTm9uV2hlZWxFdmVudHMoaWdub3Jlc05vbldoZWVsRXZlbnRzKTsKIH0KIAogLSAoQk9P
TClfaWdub3Jlc05vbldoZWVsRXZlbnRzCiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5faWdub3Jlc05v
bldoZWVsRXZlbnRzOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2
ZW50cygpOwogfQogCiAtIChCT09MKV9pZ25vcmVzQWxsRXZlbnRzCiB7Ci0gICAgcmV0dXJuIF9k
YXRhLT5faWdub3Jlc0FsbEV2ZW50czsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5pZ25vcmVz
QWxsRXZlbnRzKCk7CiB9CiAKIC0gKHZvaWQpX3NldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I6
KENHRmxvYXQpZGV2aWNlU2NhbGVGYWN0b3IKIHsKLSAgICBfZGF0YS0+X292ZXJyaWRlRGV2aWNl
U2NhbGVGYWN0b3IgPSBkZXZpY2VTY2FsZUZhY3RvcjsKLSAgICBfZGF0YS0+X3BhZ2UtPnNldElu
dHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKFtzZWxmIF9pbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3Rv
cl0pOworICAgIF9kYXRhLT5faW1wbC0+c2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcihkZXZp
Y2VTY2FsZUZhY3Rvcik7CiB9CiAKIC0gKENHRmxvYXQpX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0
b3IKIHsKLSAgICByZXR1cm4gX2RhdGEtPl9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yOworICAg
IHJldHVybiBfZGF0YS0+X2ltcGwtPm92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IoKTsKIH0KIAog
LSAoV0tMYXlvdXRNb2RlKV9sYXlvdXRNb2RlCkBAIC00MTg0LDMyICszNTU2LDE0IEBAIHN0YXRp
YyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgp
CiAgICAgX2RhdGEtPl9pbXBsLT5zZXRWaWV3U2NhbGUodmlld1NjYWxlKTsKIH0KIAotLSAodm9p
ZClfZGlzcGF0Y2hTZXRUb3BDb250ZW50SW5zZXQKLXsKLSAgICBpZiAoIV9kYXRhLT5fZGlkU2No
ZWR1bGVTZXRUb3BDb250ZW50SW5zZXQpCi0gICAgICAgIHJldHVybjsKLQotICAgIF9kYXRhLT5f
ZGlkU2NoZWR1bGVTZXRUb3BDb250ZW50SW5zZXQgPSBOTzsKLSAgICBfZGF0YS0+X3BhZ2UtPnNl
dFRvcENvbnRlbnRJbnNldChfZGF0YS0+X3RvcENvbnRlbnRJbnNldCk7Ci19Ci0KIC0gKHZvaWQp
X3NldFRvcENvbnRlbnRJbnNldDooQ0dGbG9hdCljb250ZW50SW5zZXQKIHsKLSAgICBfZGF0YS0+
X3RvcENvbnRlbnRJbnNldCA9IGNvbnRlbnRJbnNldDsKLQotICAgIGlmIChfZGF0YS0+X2RpZFNj
aGVkdWxlU2V0VG9wQ29udGVudEluc2V0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBfZGF0YS0+
X2RpZFNjaGVkdWxlU2V0VG9wQ29udGVudEluc2V0ID0gWUVTOwotCi0gICAgZGlzcGF0Y2hfYXN5
bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgXnsKLSAgICAgICAgW3NlbGYgX2Rpc3BhdGNo
U2V0VG9wQ29udGVudEluc2V0XTsKLSAgICB9KTsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5z
ZXRUb3BDb250ZW50SW5zZXQoY29udGVudEluc2V0KTsKIH0KIAogLSAoQ0dGbG9hdClfdG9wQ29u
dGVudEluc2V0CiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5fdG9wQ29udGVudEluc2V0OworICAgIHJl
dHVybiBfZGF0YS0+X2ltcGwtPnRvcENvbnRlbnRJbnNldCgpOwogfQogCiAtICh2b2lkKV9zZXRU
b3RhbEhlaWdodE9mQmFubmVyczooQ0dGbG9hdCl0b3RhbEhlaWdodE9mQmFubmVycwpAQCAtNDQ4
Nyw0OSArMzg0MSwyNCBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVG
b3JQYXRoKE5TU3RyaW5nICpwYXRoKQogCiAtICh2b2lkKV9kaXNtaXNzQ29udGVudFJlbGF0aXZl
Q2hpbGRXaW5kb3dzCiB7Ci0gICAgLy8gRklYTUU6IFdlIGRvbid0IGtub3cgd2hpY2ggcGFuZWwg
d2UgYXJlIGRpc21pc3NpbmcsIGl0IG1heSBub3QgZXZlbiBiZSBpbiB0aGUgY3VycmVudCBwYWdl
IChzZWUgPHJkYXI6Ly9wcm9ibGVtLzEzODc1NzY2PikuCi0gICAgaWYgKFtbc2VsZiB3aW5kb3dd
IGlzS2V5V2luZG93XQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MDAwCi0gICAgICAgIHx8IFtfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgaGFzQWN0
aXZlSW1tZWRpYXRlQWN0aW9uXQotI2VuZGlmCi0gICAgICAgICkgewotICAgICAgICBEaWN0aW9u
YXJ5TG9va3VwOjpoaWRlUG9wdXAoKTsKLQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMDAwCi0gICAgICAgIEREQWN0aW9uc01hbmFnZXIgKmFjdGlvbnNNYW5hZ2Vy
ID0gW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJdOwotICAgICAgICBp
ZiAoW2FjdGlvbnNNYW5hZ2VyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocmVxdWVzdEJ1
YmJsZUNsb3N1cmVVbmFuY2hvck9uRmFpbHVyZTopXSkKLSAgICAgICAgICAgIFthY3Rpb25zTWFu
YWdlciByZXF1ZXN0QnViYmxlQ2xvc3VyZVVuYW5jaG9yT25GYWlsdXJlOllFU107Ci0jZW5kaWYK
LSAgICB9Ci0KLSAgICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpUZXh0
SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0XTsKLQotI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgW19kYXRhLT5faW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlciBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXTsK
LSNlbmRpZgotCi0gICAgc3RhdGljX2Nhc3Q8UGFnZUNsaWVudCY+KCpfZGF0YS0+X3BhZ2VDbGll
bnQpLmRpc21pc3NDb3JyZWN0aW9uUGFuZWwoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZl
VGV4dElnbm9yZWQpOworICAgIF9kYXRhLT5faW1wbC0+ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNo
aWxkV2luZG93c0Zyb21WaWV3T25seSgpOwogfQogCiAtICh2b2lkKV9kaXNtaXNzQ29udGVudFJl
bGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbjooQk9PTCl3aXRoQW5pbWF0aW9uCiB7Ci0g
ICAgLy8gQ2FsbGluZyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbiBoZXJlIHdpbGwg
d2luIG91dCBvdmVyIHRoZSBhbmltYXRlZCBjbGVhciBpbiBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2
ZUNoaWxkV2luZG93cy4KLSAgICAvLyBXZSBjYW4ndCBpbnZlcnQgdGhlc2UgYmVjYXVzZSBjbGll
bnRzIGNhbiBvdmVycmlkZSAoYW5kIGhhdmUgb3ZlcnJpZGRlbikgX2Rpc21pc3NDb250ZW50UmVs
YXRpdmVDaGlsZFdpbmRvd3MsIHNvIGl0IG5lZWRzIHRvIGJlIGNhbGxlZC4KLSAgICBbc2VsZiBf
Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjp3aXRoQW5pbWF0aW9uID8gVGV4dEluZGlj
YXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCA6IFRleHRJbmRpY2F0b3JXaW5k
b3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmVdOwotICAgIFtzZWxmIF9kaXNtaXNzQ29udGVudFJl
bGF0aXZlQ2hpbGRXaW5kb3dzXTsKKyAgICBfZGF0YS0+X2ltcGwtPmRpc21pc3NDb250ZW50UmVs
YXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uRnJvbVZpZXdPbmx5KHdpdGhBbmltYXRpb24p
OwogfQogCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKIAog
LSAodm9pZClfc2V0QXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzOihCT09MKWF1dG9t
YXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cwogewotICAgIF9kYXRhLT5fYXV0b21hdGljYWxs
eUFkanVzdHNDb250ZW50SW5zZXRzID0gYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRz
OwotICAgIFtzZWxmIF91cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWNdOworICAgIF9kYXRh
LT5faW1wbC0+c2V0QXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzKGF1dG9tYXRpY2Fs
bHlBZGp1c3RzQ29udGVudEluc2V0cyk7CiB9CiAKIC0gKEJPT0wpX2F1dG9tYXRpY2FsbHlBZGp1
c3RzQ29udGVudEluc2V0cwogewotICAgIHJldHVybiBfZGF0YS0+X2F1dG9tYXRpY2FsbHlBZGp1
c3RzQ29udGVudEluc2V0czsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5hdXRvbWF0aWNhbGx5
QWRqdXN0c0NvbnRlbnRJbnNldHMoKTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAppbmRleCA5NzAwY2FmLi4yOGU1
Yjc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJ
bnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0lu
dGVybmFsLmgKQEAgLTgwLDE5ICs4MCwxMiBAQCBzdHJ1Y3QgRWRpdG9yU3RhdGU7CiAtICh2b2lk
KV9wcm9jZXNzRGlkRXhpdDsKIC0gKHZvaWQpX3BhZ2VDbG9zZWQ7CiAtICh2b2lkKV9kaWRSZWxh
dW5jaFByb2Nlc3M7Ci0tICh2b2lkKV9wcmVmZXJlbmNlc0RpZENoYW5nZTsKIC0gKHZvaWQpX3Rv
b2xUaXBDaGFuZ2VkRnJvbTooTlNTdHJpbmcgKilvbGRUb29sVGlwIHRvOihOU1N0cmluZyAqKW5l
d1Rvb2xUaXA7CiAtICh2b2lkKV9zZXRVc2VySW50ZXJmYWNlSXRlbVN0YXRlOihOU1N0cmluZyAq
KWNvbW1hbmROYW1lIGVuYWJsZWQ6KEJPT0wpaXNFbmFibGVkIHN0YXRlOihpbnQpbmV3U3RhdGU7
CiAtICh2b2lkKV9kb25lV2l0aEtleUV2ZW50OihOU0V2ZW50ICopZXZlbnQgZXZlbnRXYXNIYW5k
bGVkOihCT09MKWV2ZW50V2FzSGFuZGxlZDsKIC0gKGJvb2wpX2V4ZWN1dGVTYXZlZENvbW1hbmRC
eVNlbGVjdG9yOihTRUwpc2VsZWN0b3I7Ci0tICh2b2lkKV9zZXRJbnRyaW5zaWNDb250ZW50U2l6
ZTooTlNTaXplKWludHJpbnNpY0NvbnRlbnRTaXplOwogLSAoTlNSZWN0KV9jb252ZXJ0VG9EZXZp
Y2VTcGFjZTooTlNSZWN0KXJlY3Q7CiAtIChOU1JlY3QpX2NvbnZlcnRUb1VzZXJTcGFjZTooTlNS
ZWN0KXJlY3Q7Ci0tICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yJil0ZXh0SW5kaWNhdG9yOwotLSAodm9pZClfc2V0VGV4dEluZGljYXRvcjooV2ViQ29yZTo6
VGV4dEluZGljYXRvciYpdGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6KFdlYkNvcmU6OlRleHRJ
bmRpY2F0b3JXaW5kb3dMaWZldGltZSlsaWZldGltZTsKLS0gKHZvaWQpX2NsZWFyVGV4dEluZGlj
YXRvcldpdGhBbmltYXRpb246KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxB
bmltYXRpb24pYW5pbWF0aW9uOwotLSAodm9pZClfc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblBy
b2dyZXNzOihmbG9hdClwcm9ncmVzczsKLS0gKHZvaWQpX3NlbGVjdGlvbkNoYW5nZWQ7CiAKIC0g
KHZvaWQpX3NldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlUm9vdExheWVyOihDQUxheWVyICop
cm9vdExheWVyOwogLSAoQ0FMYXllciAqKV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZVJvb3RM
YXllcjsKQEAgLTEyOSw5ICsxMjIsNiBAQCBzdHJ1Y3QgRWRpdG9yU3RhdGU7CiAtICh2b2lkKV9y
ZXBhcmVudExheWVyVHJlZUluVGh1bWJuYWlsVmlldzsKICNlbmRpZgogCi0tICh2b2lkKV93aW5k
b3dEaWRPcmRlck9uU2NyZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbjsKLS0gKHZv
aWQpX3dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlv
bjsKLQogLSAodm9pZClfYWRkRm9udFBhbmVsT2JzZXJ2ZXI7CiAvLyBGdWxsU2NyZWVuCiAKQEAg
LTEzOSwyMCArMTI5LDEyIEBAIHN0cnVjdCBFZGl0b3JTdGF0ZTsKIEBwcm9wZXJ0eSAocmVhZG9u
bHkpIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgKl9mdWxsU2NyZWVuV2luZG93Q29udHJv
bGxlcjsKIC0gKHZvaWQpX2Nsb3NlRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXI7CiAKLS0gKHZv
aWQpX3ByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwOwotCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLS0gKHZvaWQpX2RpZFBlcmZvcm1JbW1lZGlhdGVBY3Rp
b25IaXRUZXN0Oihjb25zdCBXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRhJiloaXRUZXN0UmVz
dWx0IGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQ6KEJPT0wpY29udGVudFByZXZlbnRzRGVmYXVsdCB1
c2VyRGF0YTooQVBJOjpPYmplY3QqKXVzZXJEYXRhOwotI2VuZGlmCi0KICNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAogLSAodm9pZClfc3RhcnRXaW5kb3dEcmFn
OwogI2VuZGlmCiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZXRhaW4sIHNldHRlcj1fc2V0UHJp
bWFyeVRyYWNraW5nQXJlYTopIE5TVHJhY2tpbmdBcmVhICpfcHJpbWFyeVRyYWNraW5nQXJlYTsK
IAotQHByb3BlcnR5IChyZWFkb25seSkgTlNXaW5kb3cgKl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJl
cGFyYXRpb247Ci0KICNpZiBXS19BUElfRU5BQkxFRAogQHByb3BlcnR5IChub25hdG9taWMsIHJl
YWRvbmx5KSBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqX3JlbW90ZU9iamVjdFJlZ2lzdHJ5Owog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmlu
ZGV4IDQ5MTI5ODIuLmUwMDE1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5oCkBAIC0yOCwyOSArMjgsNTIgQEAKIAogI2lmIFBMQVRGT1JNKE1BQykK
IAotI2ltcG9ydCAiV0tMYXlvdXRNb2RlLmgiCi0jaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Ci0K
KyNpbmNsdWRlICJXS0xheW91dE1vZGUuaCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KKyNpbmNsdWRlIDxmdW5jdGlv
bmFsPgorI2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCitPQkpDX0NMQVNTIE5TSW1tZWRp
YXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXI7CiBPQkpDX0NMQVNTIE5TVGV4dElucHV0Q29udGV4
dDsKIE9CSkNfQ0xBU1MgTlNWaWV3OworT0JKQ19DTEFTUyBXS0VkaXRvclVuZG9UYXJnZXRPYmpD
OwogT0JKQ19DTEFTUyBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyOworT0JKQ19DTEFTUyBX
S0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXI7CiBPQkpDX0NMQVNTIFdLVmlld0xheW91dFN0cmF0
ZWd5OworT0JKQ19DTEFTUyBXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlcjsKIAogQHByb3RvY29s
IFdlYlZpZXdJbXBsRGVsZWdhdGUKIAogLSAoTlNUZXh0SW5wdXRDb250ZXh0ICopX3N1cGVySW5w
dXRDb250ZXh0OworLSAodm9pZClfc3VwZXJRdWlja0xvb2tXaXRoRXZlbnQ6KE5TRXZlbnQgKill
dmVudDsKKworLy8gVGhpcyBpcyBhIGhhY2s7IHRoZXNlIHRoaW5ncyBsaXZlIGNhbiBsaXZlIG9u
IGEgY2F0ZWdvcnkgKGUuZy4gV0tWaWV3IChQcml2YXRlKSkgYnV0IFdLVmlldyBpdHNlbGYgY29u
Zm9ybXMgdG8gdGhpcyBwcm90b2NvbC4KKy8vIFRoZXkncmUgbm90IGFjdHVhbGx5IG9wdGlvbmFs
LgorQG9wdGlvbmFsCisKKy0gKGlkKV9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVy
Rm9ySGl0VGVzdFJlc3VsdDooV0tIaXRUZXN0UmVzdWx0UmVmKWhpdFRlc3RSZXN1bHQgd2l0aFR5
cGU6KHVpbnQzMl90KXR5cGUgdXNlckRhdGE6KFdLVHlwZVJlZil1c2VyRGF0YTsKKy0gKHZvaWQp
X3ByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb25BbmltYXRpb247CistICh2b2lkKV9jYW5jZWxJbW1l
ZGlhdGVBY3Rpb25BbmltYXRpb247CistICh2b2lkKV9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFu
aW1hdGlvbjsKKy0gKHZvaWQpX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3M7Cist
ICh2b2lkKV9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbjoo
Qk9PTClhbmltYXRlOwogCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBXZWJF
ZGl0Q29tbWFuZFByb3h5OwogY2xhc3MgV2ViUGFnZVByb3h5Oworc3RydWN0IENvbG9yU3BhY2VE
YXRhOwogCiBjbGFzcyBXZWJWaWV3SW1wbCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7
CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoV2ViVmlld0ltcGwpOwogcHVibGljOgotICAgIFdl
YlZpZXdJbXBsKE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKiwgV2ViUGFnZVByb3h5Jik7
CisgICAgV2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAqLCBXZWJQYWdl
UHJveHkmLCBQYWdlQ2xpZW50Jik7CiAKICAgICB+V2ViVmlld0ltcGwoKTsKIApAQCAtNjcsMTcg
KzkwLDI1IEBAIHB1YmxpYzoKICAgICB2b2lkIHZpZXdXaWxsU3RhcnRMaXZlUmVzaXplKCk7CiAg
ICAgdm9pZCB2aWV3RGlkRW5kTGl2ZVJlc2l6ZSgpOwogCisgICAgdm9pZCByZW5ld0dTdGF0ZSgp
OwogICAgIHZvaWQgc2V0RnJhbWVTaXplKENHU2l6ZSk7CiAgICAgdm9pZCBkaXNhYmxlRnJhbWVT
aXplVXBkYXRlcygpOwogICAgIHZvaWQgZW5hYmxlRnJhbWVTaXplVXBkYXRlcygpOwogICAgIGJv
b2wgZnJhbWVTaXplVXBkYXRlc0Rpc2FibGVkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRGcmFtZUFu
ZFNjcm9sbEJ5KENHUmVjdCwgQ0dTaXplKTsKKyAgICB2b2lkIHVwZGF0ZVdpbmRvd0FuZFZpZXdG
cmFtZXMoKTsKIAogICAgIHZvaWQgc2V0Rml4ZWRMYXlvdXRTaXplKENHU2l6ZSk7CiAgICAgQ0dT
aXplIGZpeGVkTGF5b3V0U2l6ZSgpIGNvbnN0OwogCiAgICAgdm9pZCBzZXREcmF3aW5nQXJlYVNp
emUoQ0dTaXplKTsKIAorICAgIHZvaWQgc2V0QXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5z
ZXRzKGJvb2wpOworICAgIGJvb2wgYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzKCkg
Y29uc3QgeyByZXR1cm4gbV9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHM7IH0KKyAg
ICB2b2lkIHVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9tYXRpYygpOworICAgIHZvaWQgc2V0VG9w
Q29udGVudEluc2V0KENHRmxvYXQpOworICAgIENHRmxvYXQgdG9wQ29udGVudEluc2V0KCkgY29u
c3QgeyByZXR1cm4gbV90b3BDb250ZW50SW5zZXQ7IH0KKwogICAgIHZvaWQgc2V0Q29udGVudFBy
ZXBhcmF0aW9uUmVjdChDR1JlY3QpOwogICAgIHZvaWQgdXBkYXRlVmlld0V4cG9zZWRSZWN0KCk7
CiAgICAgdm9pZCBzZXRDbGlwc1RvVmlzaWJsZVJlY3QoYm9vbCk7CkBAIC05MywxMSArMTI0LDQ1
IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldExheW91dE1vZGUoV0tMYXlvdXRNb2RlKTsKICAgICB2
b2lkIHVwZGF0ZVN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMoKTsKIAorICAgIHZvaWQgc2V0
T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcihDR0Zsb2F0KTsKKyAgICBDR0Zsb2F0IG92ZXJyaWRl
RGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX292ZXJyaWRlRGV2aWNlU2NhbGVG
YWN0b3I7IH0KKworICAgIHZvaWQgd2luZG93RGlkT3JkZXJPZmZTY3JlZW4oKTsKKyAgICB2b2lk
IHdpbmRvd0RpZE9yZGVyT25TY3JlZW4oKTsKKyAgICB2b2lkIHdpbmRvd0RpZEJlY29tZUtleShO
U1dpbmRvdyAqKTsKKyAgICB2b2lkIHdpbmRvd0RpZFJlc2lnbktleShOU1dpbmRvdyAqKTsKKyAg
ICB2b2lkIHdpbmRvd0RpZE1pbmlhdHVyaXplKCk7CisgICAgdm9pZCB3aW5kb3dEaWREZW1pbmlh
dHVyaXplKCk7CisgICAgdm9pZCB3aW5kb3dEaWRNb3ZlKCk7CisgICAgdm9pZCB3aW5kb3dEaWRS
ZXNpemUoKTsKKyAgICB2b2lkIHdpbmRvd0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzKENHRmxv
YXQgb2xkQmFja2luZ1NjYWxlRmFjdG9yKTsKKyAgICB2b2lkIHdpbmRvd0RpZENoYW5nZVNjcmVl
bigpOworICAgIHZvaWQgd2luZG93RGlkQ2hhbmdlTGF5ZXJIb3N0aW5nKCk7CisgICAgdm9pZCB3
aW5kb3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0ZSgpOworCisgICAgdm9pZCB2aWV3V2lsbE1vdmVU
b1dpbmRvdyhOU1dpbmRvdyAqKTsKKyAgICB2b2lkIHZpZXdEaWRNb3ZlVG9XaW5kb3coKTsKKyAg
ICB2b2lkIHZpZXdEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllcygpOworCisgICAgQ29sb3JTcGFj
ZURhdGEgY29sb3JTcGFjZSgpOworCisgICAgdm9pZCBiZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRv
d0NoYW5nZXMoKTsKKyAgICAvLyBGSVhNRTogTWVyZ2UgdGhlc2UgdHdvPworICAgIHZvaWQgZW5k
RGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcygpOworICAgIHZvaWQgZW5kRGVmZXJyaW5nVmll
d0luV2luZG93Q2hhbmdlc1N5bmMoKTsKKyAgICBib29sIGlzRGVmZXJyaW5nVmlld0luV2luZG93
Q2hhbmdlcygpIGNvbnN0IHsgcmV0dXJuIG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2Vz
OyB9CisKKyAgICB2b2lkIHByZXBhcmVGb3JNb3ZlVG9XaW5kb3coTlNXaW5kb3cgKnRhcmdldFdp
bmRvdywgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICBOU1dp
bmRvdyAqdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90
YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb247IH0KKwogICAgIHZvaWQgdXBkYXRlU2VjdXJl
SW5wdXRTdGF0ZSgpOwogICAgIHZvaWQgcmVzZXRTZWN1cmVJbnB1dFN0YXRlKCk7CiAgICAgYm9v
bCBpblNlY3VyZUlucHV0U3RhdGUoKSBjb25zdCB7IHJldHVybiBtX2luU2VjdXJlSW5wdXRTdGF0
ZTsgfQogICAgIHZvaWQgbm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlv
bigpOwogCisgICAgdm9pZCBwcmVzc3VyZUNoYW5nZVdpdGhFdmVudChOU0V2ZW50ICopOworICAg
IE5TRXZlbnQgKmxhc3RQcmVzc3VyZUV2ZW50KCkgeyByZXR1cm4gbV9sYXN0UHJlc3N1cmVFdmVu
dC5nZXQoKTsgfQorCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIGJvb2wgaGFzRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKSBjb25zdDsKICAgICBXS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyICpmdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpOwpAQCAtMTA2LDMzICsxNzEs
MTE0IEBAIHB1YmxpYzoKICAgICBOU1ZpZXcgKmZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcoKTsK
ICAgICBOU1dpbmRvdyAqY3JlYXRlRnVsbFNjcmVlbldpbmRvdygpOwogCisgICAgYm9vbCBpc0Vk
aXRhYmxlKCkgY29uc3Q7CisgICAgdm9pZCBleGVjdXRlRWRpdENvbW1hbmQoY29uc3QgU3RyaW5n
JiBjb21tYW5kTmFtZSwgY29uc3QgU3RyaW5nJiBhcmd1bWVudCA9IFN0cmluZygpKTsKKyAgICB2
b2lkIHJlZ2lzdGVyRWRpdENvbW1hbmQoUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQ
YWdlUHJveHk6OlVuZG9PclJlZG8pOworICAgIHZvaWQgY2xlYXJBbGxFZGl0Q29tbWFuZHMoKTsK
KyAgICBib29sIHdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKE5TUGFzdGVib2FyZCAqLCBOU0Fy
cmF5ICp0eXBlcyk7CisgICAgdm9pZCBjZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhKCk7Cisg
ICAgdm9pZCBzZWxlY3Rpb25EaWRDaGFuZ2UoKTsKKyAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nRm9u
dFBhbmVsKCk7CisgICAgdm9pZCB1cGRhdGVGb250UGFuZWxJZk5lZWRlZCgpOworCisgICAgdm9p
ZCBwcmVmZXJlbmNlc0RpZENoYW5nZSgpOworCisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFdl
YkNvcmU6OlRleHRJbmRpY2F0b3ImLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRp
bWUgPSBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudCk7Cisg
ICAgdm9pZCBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRp
Y2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRv
ckFuaW1hdGlvblByb2dyZXNzKGZsb2F0KTsKKyAgICB2b2lkIGRpc21pc3NDb250ZW50UmVsYXRp
dmVDaGlsZFdpbmRvd3MoKTsKKyAgICB2b2lkIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdp
bmRvd3NGcm9tVmlld09ubHkoKTsKKyAgICB2b2lkIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGls
ZFdpbmRvd3NXaXRoQW5pbWF0aW9uKGJvb2wpOworICAgIHZvaWQgZGlzbWlzc0NvbnRlbnRSZWxh
dGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb25Gcm9tVmlld09ubHkoYm9vbCk7CisKKyAgICB2
b2lkIHF1aWNrTG9va1dpdGhFdmVudChOU0V2ZW50ICopOworICAgIHZvaWQgcHJlcGFyZUZvckRp
Y3Rpb25hcnlMb29rdXAoKTsKKyAgICB2b2lkIHNldEFsbG93c0xpbmtQcmV2aWV3KGJvb2wpOwor
ICAgIGJvb2wgYWxsb3dzTGlua1ByZXZpZXcoKSBjb25zdCB7IHJldHVybiBtX2FsbG93c0xpbmtQ
cmV2aWV3OyB9CisgICAgdm9pZCogaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZv
ckhpdFRlc3RSZXN1bHQoV0tIaXRUZXN0UmVzdWx0UmVmLCB1aW50MzJfdCB0eXBlLCBXS1R5cGVS
ZWYgdXNlckRhdGEpOworICAgIHZvaWQqIGltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xs
ZXJGb3JIaXRUZXN0UmVzdWx0RnJvbVZpZXdPbmx5KFdLSGl0VGVzdFJlc3VsdFJlZiwgdWludDMy
X3QgdHlwZSwgV0tUeXBlUmVmIHVzZXJEYXRhKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1JbW1lZGlh
dGVBY3Rpb25IaXRUZXN0KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHREYXRhJiwgYm9vbCBjb250ZW50
UHJldmVudHNEZWZhdWx0LCBBUEk6Ok9iamVjdCogdXNlckRhdGEpOworICAgIHZvaWQgcHJlcGFy
ZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbigpOworICAgIHZvaWQgY2FuY2VsSW1tZWRpYXRl
QWN0aW9uQW5pbWF0aW9uKCk7CisgICAgdm9pZCBjb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1h
dGlvbigpOworCisgICAgdm9pZCBzZXRJZ25vcmVzTm9uV2hlZWxFdmVudHMoYm9vbCk7CisgICAg
Ym9vbCBpZ25vcmVzTm9uV2hlZWxFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX2lnbm9yZXNOb25X
aGVlbEV2ZW50czsgfQorICAgIHZvaWQgc2V0SWdub3Jlc0FsbEV2ZW50cyhib29sKTsKKyAgICBi
b29sIGlnbm9yZXNBbGxFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX2lnbm9yZXNBbGxFdmVudHM7
IH0KKworICAgIHZvaWQgYWNjZXNzaWJpbGl0eVJlZ2lzdGVyVUlQcm9jZXNzVG9rZW5zKCk7CisK
IHByaXZhdGU6CisgICAgV2Vha1B0cjxXZWJWaWV3SW1wbD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0
dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CisKICAgICBib29sIHN1cHBv
cnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMoKSBjb25zdDsKKyAgICBmbG9hdCBpbnRyaW5zaWNEZXZp
Y2VTY2FsZUZhY3RvcigpIGNvbnN0OworICAgIHZvaWQgZGlzcGF0Y2hTZXRUb3BDb250ZW50SW5z
ZXQoKTsKKworICAgIHZvaWQgcG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRF
dmVudChOU0V2ZW50ICopOwogCiAgICAgTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAqbV92
aWV3OwogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOworICAgIFBhZ2VDbGllbnQmIG1fcGFnZUNs
aWVudDsKKworICAgIFdlYWtQdHJGYWN0b3J5PFdlYlZpZXdJbXBsPiBtX3dlYWtQdHJGYWN0b3J5
OwogCiAgICAgYm9vbCBtX3dpbGxCZWNvbWVGaXJzdFJlc3BvbmRlckFnYWluIHsgZmFsc2UgfTsK
ICAgICBib29sIG1faW5CZWNvbWVGaXJzdFJlc3BvbmRlciB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2luUmVzaWduRmlyc3RSZXNwb25kZXIgeyBmYWxzZSB9OwogCi0gICAgQ0dSZWN0IG1fY29udGVu
dFByZXBhcmF0aW9uUmVjdDsKKyAgICBDR1JlY3QgbV9jb250ZW50UHJlcGFyYXRpb25SZWN0IHsg
ezAsIDB9LCB7MCwgMH0gfTsKICAgICBib29sIG1fdXNlQ29udGVudFByZXBhcmF0aW9uUmVjdEZv
clZpc2libGVSZWN0IHsgZmFsc2UgfTsKICAgICBib29sIG1fY2xpcHNUb1Zpc2libGVSZWN0IHsg
ZmFsc2UgfTsKKyAgICBib29sIG1fbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzOwor
ICAgIGJvb2wgbV9kaWRTY2hlZHVsZVdpbmRvd0FuZFZpZXdGcmFtZVVwZGF0ZSB7IGZhbHNlIH07
CisgICAgYm9vbCBtX2lzRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcyB7IGZhbHNlIH07CisK
KyAgICBib29sIG1fYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzIHsgZmFsc2UgfTsK
KyAgICBDR0Zsb2F0IG1fdG9wQ29udGVudEluc2V0IHsgMCB9OworICAgIGJvb2wgbV9kaWRTY2hl
ZHVsZVNldFRvcENvbnRlbnRJbnNldCB7IGZhbHNlIH07CiAKLSAgICBDR1NpemUgbV9yZXNpemVT
Y3JvbGxPZmZzZXQ7CisgICAgQ0dTaXplIG1fcmVzaXplU2Nyb2xsT2Zmc2V0IHsgMCwgMCB9Owog
Ci0gICAgQ0dTaXplIG1faW50cmluc2ljQ29udGVudFNpemU7CisgICAgQ0dTaXplIG1faW50cmlu
c2ljQ29udGVudFNpemUgeyAwLCAwIH07CisgICAgQ0dGbG9hdCBtX292ZXJyaWRlRGV2aWNlU2Nh
bGVGYWN0b3IgeyAwIH07CiAKICAgICBSZXRhaW5QdHI8V0tWaWV3TGF5b3V0U3RyYXRlZ3k+IG1f
bGF5b3V0U3RyYXRlZ3k7CiAgICAgV0tMYXlvdXRNb2RlIG1fbGFzdFJlcXVlc3RlZExheW91dE1v
ZGUgeyBrV0tMYXlvdXRNb2RlVmlld1NpemUgfTsKICAgICBDR0Zsb2F0IG1fbGFzdFJlcXVlc3Rl
ZFZpZXdTY2FsZSB7IDEgfTsKIAogICAgIGJvb2wgbV9pblNlY3VyZUlucHV0U3RhdGUgeyBmYWxz
ZSB9OworICAgIFJldGFpblB0cjxXS0VkaXRvclVuZG9UYXJnZXRPYmpDPiBtX3VuZG9UYXJnZXQ7
CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgUmV0YWluUHRyPFdLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXI+IG1fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXI7CiAjZW5kaWYK
KworICAgIFJldGFpblB0cjxXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlcj4gbV93aW5kb3dWaXNp
YmlsaXR5T2JzZXJ2ZXI7CisKKyAgICBib29sIG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFu
Z2VzIHsgZmFsc2UgfTsKKyAgICBib29sIG1fdmlld0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQg
eyBmYWxzZSB9OworICAgIE5TV2luZG93ICptX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlv
biB7IG51bGxwdHIgfTsKKworICAgIGlkIG1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yIHsgbnVs
bHB0ciB9OworCisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5k
b3c+IG1fdGV4dEluZGljYXRvcldpbmRvdzsKKworICAgIFJldGFpblB0cjxOU0NvbG9yU3BhY2U+
IG1fY29sb3JTcGFjZTsKKworICAgIFJldGFpblB0cjxOU0V2ZW50PiBtX2xhc3RQcmVzc3VyZUV2
ZW50OworCisgICAgYm9vbCBtX2lnbm9yZXNOb25XaGVlbEV2ZW50cyB7IGZhbHNlIH07CisgICAg
Ym9vbCBtX2lnbm9yZXNBbGxFdmVudHMgeyBmYWxzZSB9OworCisjaWYgX19NQUNfT1NfWF9WRVJT
SU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICBSZXRhaW5QdHI8V0tJbW1lZGlhdGVBY3Rp
b25Db250cm9sbGVyPiBtX2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXI7CisgICAgUmV0YWluUHRy
PE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXI+IG1faW1tZWRpYXRlQWN0aW9uR2Vz
dHVyZVJlY29nbml6ZXI7CisjZW5kaWYKKworICAgIGJvb2wgbV9hbGxvd3NMaW5rUHJldmlldyB7
IHRydWUgfTsKKyAgICBib29sIG1fZGlkUmVnaXN0ZXJGb3JMb29rdXBQb3BvdmVyQ2xvc2VOb3Rp
ZmljYXRpb25zIHsgZmFsc2UgfTsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA5YjJl
NmUyLi42NTVkNmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tCkBAIC0yOCwyOCArMjgsMjk1IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAKKyNp
bXBvcnQgIkNvbG9yU3BhY2VEYXRhLmgiCiAjaW1wb3J0ICJHZW5lcmljQ2FsbGJhY2suaCIKICNp
bXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKKyNp
bXBvcnQgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKKyNpbXBvcnQgIlBhZ2VDbGllbnQuaCIKICNp
bXBvcnQgIldLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCIKKyNpbXBvcnQgIldLSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaCIK
ICNpbXBvcnQgIldLV2ViVmlldy5oIgorI2ltcG9ydCAiV2ViRWRpdENvbW1hbmRQcm94eS5oIgog
I2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0IDxISVRvb2xib3gvQ2FyYm9uRXZlbnRz
Q29yZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9BWE9iamVjdENhY2hlLmg+CisjaW1wb3J0IDxXZWJD
b3JlL0RhdGFEZXRlY3RvcnNTUEkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRGljdGlvbmFyeUxvb2t1
cC5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlwcmVzc0NvbW1hbmQuaD4KKyNpbXBvcnQgPFdlYkNv
cmUvTG9va3VwU1BJLmg+CisjaW1wb3J0IDxXZWJDb3JlL05TSW1tZWRpYXRlQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXJTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvTlNXaW5kb3dTUEkuaD4KKyNpbXBv
cnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmlld1N0YXRlLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3Lmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVGdWxsU2NyZWVuV2luZG93Lmg+CisjaW1wb3J0IDxXZWJL
aXRTeXN0ZW1JbnRlcmZhY2UuaD4KKworU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMKExvb2t1
cCwgTFVOb3RpZmljYXRpb25Qb3BvdmVyV2lsbENsb3NlLCBOU1N0cmluZyAqKQorCitAaW50ZXJm
YWNlIFdLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIDogTlNPYmplY3QgeworICAgIE5TVmlldyAq
X3ZpZXc7CisgICAgV2ViS2l0OjpXZWJWaWV3SW1wbCAqX2ltcGw7Cit9CisKKy0gKGluc3RhbmNl
dHlwZSlpbml0V2l0aFZpZXc6KE5TVmlldyAqKXZpZXcgaW1wbDooV2ViS2l0OjpXZWJWaWV3SW1w
bCYpaW1wbDsKKy0gKHZvaWQpc3RhcnRPYnNlcnZpbmc6KE5TV2luZG93ICopd2luZG93OworLSAo
dm9pZClzdG9wT2JzZXJ2aW5nOihOU1dpbmRvdyAqKXdpbmRvdzsKKy0gKHZvaWQpc3RhcnRPYnNl
cnZpbmdGb250UGFuZWw7CistICh2b2lkKXN0YXJ0T2JzZXJ2aW5nTG9va3VwRGlzbWlzc2FsOwor
QGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIKKworLSAo
aW5zdGFuY2V0eXBlKWluaXRXaXRoVmlldzooTlNWaWV3ICopdmlldyBpbXBsOihXZWJLaXQ6Oldl
YlZpZXdJbXBsJilpbXBsCit7CisgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoIXNl
bGYpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBfdmlldyA9IHZpZXc7CisgICAgX2ltcGwg
PSAmaW1wbDsKKworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAg
ICBpZiAoY2FuTG9hZExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9zZSgpKQorICAgICAgICBb
W05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYg
bmFtZTpnZXRMVU5vdGlmaWNhdGlvblBvcG92ZXJXaWxsQ2xvc2UoKSBvYmplY3Q6bmlsXTsKKwor
ICAgIFtzdXBlciBkZWFsbG9jXTsKK30KKworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMDAwCitzdGF0aWMgdm9pZCoga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0ID0g
JmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dDsKKyNlbmRpZgorCistICh2b2lkKXN0YXJ0T2JzZXJ2
aW5nOihOU1dpbmRvdyAqKXdpbmRvdworeworICAgIGlmICghd2luZG93KQorICAgICAgICByZXR1
cm47CisKKyAgICBOU05vdGlmaWNhdGlvbkNlbnRlciAqZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRl
ciA9IFtOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXTsKKworICAgIC8vIEFuIE5T
VmlldyBkZXJpdmVkIG9iamVjdCBzdWNoIGFzIFdLVmlldyBjYW5ub3Qgb2JzZXJ2ZSB0aGVzZSBu
b3RpZmljYXRpb25zLCBiZWNhdXNlIE5TVmlldyBpdHNlbGYgb2JzZXJ2ZXMgdGhlbS4KKyAgICBb
ZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxl
Y3Rvcihfd2luZG93RGlkT3JkZXJPZmZTY3JlZW46KSBuYW1lOkAiTlNXaW5kb3dEaWRPcmRlck9m
ZlNjcmVlbk5vdGlmaWNhdGlvbiIgb2JqZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmlj
YXRpb25DZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0Rp
ZE9yZGVyT25TY3JlZW46KSBuYW1lOkAiX05TV2luZG93RGlkQmVjb21lVmlzaWJsZSIgb2JqZWN0
OndpbmRvd107CisKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpz
ZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkQmVjb21lS2V5OikgbmFtZTpOU1dpbmRv
d0RpZEJlY29tZUtleU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKKyAgICBbZGVmYXVsdE5vdGlm
aWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93
RGlkUmVzaWduS2V5OikgbmFtZTpOU1dpbmRvd0RpZFJlc2lnbktleU5vdGlmaWNhdGlvbiBvYmpl
Y3Q6bmlsXTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpzZWxm
IHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkTWluaWF0dXJpemU6KSBuYW1lOk5TV2luZG93
RGlkTWluaWF0dXJpemVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CisgICAgW2RlZmF1bHRO
b3RpZmljYXRpb25DZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dp
bmRvd0RpZERlbWluaWF0dXJpemU6KSBuYW1lOk5TV2luZG93RGlkRGVtaW5pYXR1cml6ZU5vdGlm
aWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBh
ZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkTW92ZTopIG5hbWU6
TlNXaW5kb3dEaWRNb3ZlTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOworICAgIFtkZWZhdWx0
Tm90aWZpY2F0aW9uQ2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93
aW5kb3dEaWRSZXNpemU6KSBuYW1lOk5TV2luZG93RGlkUmVzaXplTm90aWZpY2F0aW9uIG9iamVj
dDp3aW5kb3ddOworICAgIFtkZWZhdWx0Tm90aWZpY2F0aW9uQ2VudGVyIGFkZE9ic2VydmVyOnNl
bGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllczop
IG5hbWU6TlNXaW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllc05vdGlmaWNhdGlvbiBvYmpl
Y3Q6d2luZG93XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpz
ZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkQ2hhbmdlU2NyZWVuOikgbmFtZTpOU1dp
bmRvd0RpZENoYW5nZVNjcmVlbk5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVm
YXVsdE5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rv
cihfd2luZG93RGlkQ2hhbmdlTGF5ZXJIb3N0aW5nOikgbmFtZTpAIl9OU1dpbmRvd0RpZENoYW5n
ZUNvbnRlbnRzSG9zdGVkSW5MYXllclN1cmZhY2VOb3RpZmljYXRpb24iIG9iamVjdDp3aW5kb3dd
OworICAgIFtkZWZhdWx0Tm90aWZpY2F0aW9uQ2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0
b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0ZTopIG5hbWU6TlNXaW5k
b3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAorICAgIFt3aW5kb3cg
YWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAiY29udGVudExheW91dFJlY3QiIG9wdGlvbnM6
TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbkluaXRpYWwgY29udGV4dDprZXlWYWx1ZU9ic2Vydmlu
Z0NvbnRleHRdOworICAgIFt3aW5kb3cgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidGl0
bGViYXJBcHBlYXJzVHJhbnNwYXJlbnQiIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlv
bkluaXRpYWwgY29udGV4dDprZXlWYWx1ZU9ic2VydmluZ0NvbnRleHRdOworI2VuZGlmCit9CisK
Ky0gKHZvaWQpc3RvcE9ic2VydmluZzooTlNXaW5kb3cgKil3aW5kb3cKK3sKKyAgICBpZiAoIXdp
bmRvdykKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNOb3RpZmljYXRpb25DZW50ZXIgKmRlZmF1
bHROb3RpZmljYXRpb25DZW50ZXIgPSBbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRl
cl07CisKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciByZW1vdmVPYnNlcnZlcjpzZWxm
IG5hbWU6QCJOU1dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uIiBvYmplY3Q6d2lu
ZG93XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciByZW1vdmVPYnNlcnZlcjpzZWxm
IG5hbWU6QCJfTlNXaW5kb3dEaWRCZWNvbWVWaXNpYmxlIiBvYmplY3Q6d2luZG93XTsKKworICAg
IFtkZWZhdWx0Tm90aWZpY2F0aW9uQ2VudGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dp
bmRvd0RpZEJlY29tZUtleU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKKyAgICBbZGVmYXVsdE5v
dGlmaWNhdGlvbkNlbnRlciByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRSZXNp
Z25LZXlOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25D
ZW50ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkTWluaWF0dXJpemVOb3Rp
ZmljYXRpb24gb2JqZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIg
cmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkRGVtaW5pYXR1cml6ZU5vdGlmaWNh
dGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciByZW1v
dmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRNb3ZlTm90aWZpY2F0aW9uIG9iamVjdDp3
aW5kb3ddOworICAgIFtkZWZhdWx0Tm90aWZpY2F0aW9uQ2VudGVyIHJlbW92ZU9ic2VydmVyOnNl
bGYgbmFtZTpOU1dpbmRvd0RpZFJlc2l6ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAg
ICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNX
aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllc05vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93
XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciByZW1vdmVPYnNlcnZlcjpzZWxmIG5h
bWU6TlNXaW5kb3dEaWRDaGFuZ2VTY3JlZW5Ob3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Cisg
ICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOkAi
X05TV2luZG93RGlkQ2hhbmdlQ29udGVudHNIb3N0ZWRJbkxheWVyU3VyZmFjZU5vdGlmaWNhdGlv
biIgb2JqZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgcmVtb3Zl
T2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3RhdGVOb3RpZmlj
YXRpb24gb2JqZWN0OndpbmRvd107CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDEwMDAKKyAgICBpZiAoX2ltcGwtPmlzRWRpdGFibGUoKSkKKyAgICAgICAgW1tOU0Zv
bnRQYW5lbCBzaGFyZWRGb250UGFuZWxdIHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpA
InZpc2libGUiIGNvbnRleHQ6a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0XTsKKyAgICBbd2luZG93
IHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImNvbnRlbnRMYXlvdXRSZWN0IiBjb250
ZXh0OmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dF07CisgICAgW3dpbmRvdyByZW1vdmVPYnNlcnZl
cjpzZWxmIGZvcktleVBhdGg6QCJ0aXRsZWJhckFwcGVhcnNUcmFuc3BhcmVudCIgY29udGV4dDpr
ZXlWYWx1ZU9ic2VydmluZ0NvbnRleHRdOworI2VuZGlmCit9CisKKy0gKHZvaWQpc3RhcnRPYnNl
cnZpbmdGb250UGFuZWwKK3sKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTAwMAorICAgIFtbTlNGb250UGFuZWwgc2hhcmVkRm9udFBhbmVsXSBhZGRPYnNlcnZlcjpz
ZWxmIGZvcktleVBhdGg6QCJ2aXNpYmxlIiBvcHRpb25zOjAgY29udGV4dDprZXlWYWx1ZU9ic2Vy
dmluZ0NvbnRleHRdOworI2VuZGlmCit9CisKKy0gKHZvaWQpc3RhcnRPYnNlcnZpbmdMb29rdXBE
aXNtaXNzYWwKK3sKKyAgICBpZiAoY2FuTG9hZExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9z
ZSgpKQorICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9i
c2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9kaWN0aW9uYXJ5TG9va3VwUG9wb3Zlcldp
bGxDbG9zZTopIG5hbWU6Z2V0TFVOb3RpZmljYXRpb25Qb3BvdmVyV2lsbENsb3NlKCkgb2JqZWN0
Om5pbF07Cit9CisKKy0gKHZvaWQpX3dpbmRvd0RpZE9yZGVyT25TY3JlZW46KE5TTm90aWZpY2F0
aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgX2ltcGwtPndpbmRvd0RpZE9yZGVyT25TY3JlZW4o
KTsKK30KKworLSAodm9pZClfd2luZG93RGlkT3JkZXJPZmZTY3JlZW46KE5TTm90aWZpY2F0aW9u
ICopbm90aWZpY2F0aW9uCit7CisgICAgX2ltcGwtPndpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuKCk7
Cit9CisKKy0gKHZvaWQpX3dpbmRvd0RpZEJlY29tZUtleTooTlNOb3RpZmljYXRpb24gKilub3Rp
ZmljYXRpb24KK3sKKyAgICBfaW1wbC0+d2luZG93RGlkQmVjb21lS2V5KFtub3RpZmljYXRpb24g
b2JqZWN0XSk7Cit9CisKKy0gKHZvaWQpX3dpbmRvd0RpZFJlc2lnbktleTooTlNOb3RpZmljYXRp
b24gKilub3RpZmljYXRpb24KK3sKKyAgICBfaW1wbC0+d2luZG93RGlkUmVzaWduS2V5KFtub3Rp
ZmljYXRpb24gb2JqZWN0XSk7Cit9CisKKy0gKHZvaWQpX3dpbmRvd0RpZE1pbmlhdHVyaXplOihO
U05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIF9pbXBsLT53aW5kb3dEaWRNaW5p
YXR1cml6ZSgpOworfQorCistICh2b2lkKV93aW5kb3dEaWREZW1pbmlhdHVyaXplOihOU05vdGlm
aWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIF9pbXBsLT53aW5kb3dEaWREZW1pbmlhdHVy
aXplKCk7Cit9CisKKy0gKHZvaWQpX3dpbmRvd0RpZE1vdmU6KE5TTm90aWZpY2F0aW9uICopbm90
aWZpY2F0aW9uCit7CisgICAgX2ltcGwtPndpbmRvd0RpZE1vdmUoKTsKK30KKworLSAodm9pZClf
d2luZG93RGlkUmVzaXplOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIF9p
bXBsLT53aW5kb3dEaWRSZXNpemUoKTsKK30KKworLSAodm9pZClfd2luZG93RGlkQ2hhbmdlQmFj
a2luZ1Byb3BlcnRpZXM6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgQ0dG
bG9hdCBvbGRCYWNraW5nU2NhbGVGYWN0b3IgPSBbW25vdGlmaWNhdGlvbi51c2VySW5mbyBvYmpl
Y3RGb3JLZXk6TlNCYWNraW5nUHJvcGVydHlPbGRTY2FsZUZhY3RvcktleV0gZG91YmxlVmFsdWVd
OworICAgIF9pbXBsLT53aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllcyhvbGRCYWNraW5n
U2NhbGVGYWN0b3IpOworfQorCistICh2b2lkKV93aW5kb3dEaWRDaGFuZ2VTY3JlZW46KE5TTm90
aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgX2ltcGwtPndpbmRvd0RpZENoYW5nZVNj
cmVlbigpOworfQorCistICh2b2lkKV93aW5kb3dEaWRDaGFuZ2VMYXllckhvc3Rpbmc6KE5TTm90
aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgX2ltcGwtPndpbmRvd0RpZENoYW5nZUxh
eWVySG9zdGluZygpOworfQorCistICh2b2lkKV93aW5kb3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0
ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBfaW1wbC0+d2luZG93RGlk
Q2hhbmdlT2NjbHVzaW9uU3RhdGUoKTsKK30KKworLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQ
YXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGlj
dGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4dAoreworI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCisgICAgaWYgKGNvbnRleHQgIT0ga2V5
VmFsdWVPYnNlcnZpbmdDb250ZXh0KSB7CisgICAgICAgIFtzdXBlciBvYnNlcnZlVmFsdWVGb3JL
ZXlQYXRoOmtleVBhdGggb2ZPYmplY3Q6b2JqZWN0IGNoYW5nZTpjaGFuZ2UgY29udGV4dDpjb250
ZXh0XTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChba2V5UGF0aCBpc0VxdWFs
VG9TdHJpbmc6QCJ2aXNpYmxlIl0gJiYgW05TRm9udFBhbmVsIHNoYXJlZEZvbnRQYW5lbEV4aXN0
c10gJiYgb2JqZWN0ID09IFtOU0ZvbnRQYW5lbCBzaGFyZWRGb250UGFuZWxdKSB7CisgICAgICAg
IF9pbXBsLT51cGRhdGVGb250UGFuZWxJZk5lZWRlZCgpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIGlmIChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJjb250ZW50TGF5b3V0UmVjdCJd
IHx8IFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAInRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50
Il0pCisgICAgICAgIF9pbXBsLT51cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWMoKTsKKyNl
bmRpZgorfQorCistICh2b2lkKV9kaWN0aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTooTlNO
b3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBfaW1wbC0+Y2xlYXJUZXh0SW5kaWNh
dG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5p
bWF0aW9uOjpOb25lKTsKK30KKworQGVuZAorCitAaW50ZXJmYWNlIFdLRWRpdENvbW1hbmRPYmpD
IDogTlNPYmplY3QgeworICAgIFJlZlB0cjxXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk+IG1f
Y29tbWFuZDsKK30KKy0gKGlkKWluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTooUmVmUHRyPFdl
YktpdDo6V2ViRWRpdENvbW1hbmRQcm94eT4pY29tbWFuZDsKKy0gKFdlYktpdDo6V2ViRWRpdENv
bW1hbmRQcm94eSopY29tbWFuZDsKK0BlbmQKKworQGludGVyZmFjZSBXS0VkaXRvclVuZG9UYXJn
ZXRPYmpDIDogTlNPYmplY3QKKy0gKHZvaWQpdW5kb0VkaXRpbmc6KGlkKXNlbmRlcjsKKy0gKHZv
aWQpcmVkb0VkaXRpbmc6KGlkKXNlbmRlcjsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLRWRp
dENvbW1hbmRPYmpDCisKKy0gKGlkKWluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTooUmVmUHRy
PFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eT4pY29tbWFuZAoreworICAgIHNlbGYgPSBbc3Vw
ZXIgaW5pdF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgbV9j
b21tYW5kID0gY29tbWFuZDsKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAoV2ViS2l0OjpXZWJF
ZGl0Q29tbWFuZFByb3h5Kiljb21tYW5kCit7CisgICAgcmV0dXJuIG1fY29tbWFuZC5nZXQoKTsK
K30KKworQGVuZAorCitAaW1wbGVtZW50YXRpb24gV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQworCist
ICh2b2lkKXVuZG9FZGl0aW5nOihpZClzZW5kZXIKK3sKKyAgICBBU1NFUlQoW3NlbmRlciBpc0tp
bmRPZkNsYXNzOltXS0VkaXRDb21tYW5kT2JqQyBjbGFzc11dKTsKKyAgICBbc2VuZGVyIGNvbW1h
bmRdLT51bmFwcGx5KCk7Cit9CisKKy0gKHZvaWQpcmVkb0VkaXRpbmc6KGlkKXNlbmRlcgorewor
ICAgIEFTU0VSVChbc2VuZGVyIGlzS2luZE9mQ2xhc3M6W1dLRWRpdENvbW1hbmRPYmpDIGNsYXNz
XV0pOworICAgIFtzZW5kZXIgY29tbWFuZF0tPnJlYXBwbHkoKTsKK30KKworQGVuZAogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAotV2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmll
d0ltcGxEZWxlZ2F0ZT4gKnZpZXcsIFdlYlBhZ2VQcm94eSYgcGFnZSkKK1dlYlZpZXdJbXBsOjpX
ZWJWaWV3SW1wbChOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICp2aWV3LCBXZWJQYWdlUHJv
eHkmIHBhZ2UsIFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQpCiAgICAgOiBtX3ZpZXcodmlldykKICAg
ICAsIG1fcGFnZShwYWdlKQorICAgICwgbV9wYWdlQ2xpZW50KHBhZ2VDbGllbnQpCisgICAgLCBt
X3dlYWtQdHJGYWN0b3J5KHRoaXMpCisgICAgLCBtX25lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29y
ZGluYXRlcyhtX3BhZ2UucHJlZmVyZW5jZXMoKS5wbHVnaW5zRW5hYmxlZCgpKQogICAgICwgbV9p
bnRyaW5zaWNDb250ZW50U2l6ZShDR1NpemVNYWtlKE5TVmlld05vSW5zdHJpbnNpY01ldHJpYywg
TlNWaWV3Tm9JbnN0cmluc2ljTWV0cmljKSkKICAgICAsIG1fbGF5b3V0U3RyYXRlZ3koW1dLVmll
d0xheW91dFN0cmF0ZWd5IGxheW91dFN0cmF0ZWd5V2l0aFBhZ2U6bV9wYWdlIHZpZXc6bV92aWV3
IHZpZXdJbXBsOip0aGlzIG1vZGU6a1dLTGF5b3V0TW9kZVZpZXdTaXplXSkKKyAgICAsIG1fdW5k
b1RhcmdldChhZG9wdE5TKFtbV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQyBhbGxvY10gaW5pdF0pKQor
ICAgICwgbV93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIoYWRvcHROUyhbW1dLV2luZG93VmlzaWJp
bGl0eU9ic2VydmVyIGFsbG9jXSBpbml0V2l0aFZpZXc6dmlldyBpbXBsOip0aGlzXSkpCiB7Cisg
ICAgbV9wYWdlLnNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKGludHJpbnNpY0RldmljZVNj
YWxlRmFjdG9yKCkpOworCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDEwMDAKKyAgICBpZiAoQ2xhc3MgZ2VzdHVyZUNsYXNzID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJO
U0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyIikpIHsKKyAgICAgICAgbV9pbW1lZGlh
dGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciA9IGFkb3B0TlMoWyhOU0ltbWVkaWF0ZUFjdGlvbkdl
c3R1cmVSZWNvZ25pemVyICopW2dlc3R1cmVDbGFzcyBhbGxvY10gaW5pdF0pOworICAgICAgICBt
X2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tJbW1lZGlhdGVBY3Rpb25D
b250cm9sbGVyIGFsbG9jXSBpbml0V2l0aFBhZ2U6bV9wYWdlIHZpZXc6bV92aWV3IHZpZXdJbXBs
Oip0aGlzIHJlY29nbml6ZXI6bV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQo
KV0pOworICAgICAgICBbbV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciBzZXREZWxl
Z2F0ZTptX2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuZ2V0KCldOworICAgICAgICBbbV9pbW1l
ZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciBzZXREZWxheXNQcmltYXJ5TW91c2VCdXR0b25F
dmVudHM6Tk9dOworICAgIH0KKyNlbmRpZgogfQogCiBXZWJWaWV3SW1wbDo6fldlYlZpZXdJbXBs
KCkKQEAgLTU3LDYgKzMyNCwxMCBAQCBXZWJWaWV3SW1wbDo6fldlYlZpZXdJbXBsKCkKICAgICBB
U1NFUlQoIW1faW5TZWN1cmVJbnB1dFN0YXRlKTsKIAogICAgIFttX2xheW91dFN0cmF0ZWd5IGlu
dmFsaWRhdGVdOworCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEw
MDAKKyAgICBbbV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIHdpbGxEZXN0cm95VmlldzptX3Zp
ZXddOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldERyYXdzQmFja2dyb3VuZChi
b29sIGRyYXdzQmFja2dyb3VuZCkKQEAgLTg5LDcgKzM2MCw3IEBAIGJvb2wgV2ViVmlld0ltcGw6
OmJlY29tZUZpcnN0UmVzcG9uZGVyKCkKICAgICAvLyBJZiB3ZSBqdXN0IGJlY2FtZSBmaXJzdCBy
ZXNwb25kZXIgYWdhaW4sIHRoZXJlIGlzIG5vIG5lZWQgdG8gZG8gYW55dGhpbmcsCiAgICAgLy8g
c2luY2UgcmVzaWduRmlyc3RSZXNwb25kZXIgaGFzIGNvcnJlY3RseSBkZXRlY3RlZCB0aGlzIHNp
dHVhdGlvbi4KICAgICBpZiAobV93aWxsQmVjb21lRmlyc3RSZXNwb25kZXJBZ2FpbikgewotICAg
ICAgICBtX3dpbGxCZWNvbWVGaXJzdFJlc3BvbmRlckFnYWluID0gTk87CisgICAgICAgIG1fd2ls
bEJlY29tZUZpcnN0UmVzcG9uZGVyQWdhaW4gPSBmYWxzZTsKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogCkBAIC0xMjgsNyArMzk5LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6cmVzaWduRmly
c3RSZXNwb25kZXIoKQogICAgIH0KICNlbmRpZgogCi0gICAgbV93aWxsQmVjb21lRmlyc3RSZXNw
b25kZXJBZ2FpbiA9IE5POworICAgIG1fd2lsbEJlY29tZUZpcnN0UmVzcG9uZGVyQWdhaW4gPSBm
YWxzZTsKICAgICBtX2luUmVzaWduRmlyc3RSZXNwb25kZXIgPSB0cnVlOwogCiAjaWYgVVNFKEFT
WU5DX05TVEVYVElOUFVUQ0xJRU5UKQpAQCAtMTc1LDYgKzQ0NiwxOCBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjp2aWV3RGlkRW5kTGl2ZVJlc2l6ZSgpCiAgICAgW21fbGF5b3V0U3RyYXRlZ3kgZGlkRW5k
TGl2ZVJlc2l6ZV07CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OnJlbmV3R1N0YXRlKCkKK3sKKyAg
ICBpZiAobV90ZXh0SW5kaWNhdG9yV2luZG93KQorICAgICAgICBkaXNtaXNzQ29udGVudFJlbGF0
aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbihmYWxzZSk7CisKKyAgICAvLyBVcGRhdGUgdGhl
IHZpZXcgZnJhbWUuCisgICAgaWYgKG1fdmlldy53aW5kb3cpCisgICAgICAgIHVwZGF0ZVdpbmRv
d0FuZFZpZXdGcmFtZXMoKTsKKworICAgIHVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9tYXRpYygp
OworfQorCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRGcmFtZVNpemUoQ0dTaXplKQogewogICAgIFtt
X2xheW91dFN0cmF0ZWd5IGRpZENoYW5nZUZyYW1lU2l6ZV07CkBAIC0yMDMsNiArNDg2LDM5IEBA
IHZvaWQgV2ViVmlld0ltcGw6OnNldEZyYW1lQW5kU2Nyb2xsQnkoQ0dSZWN0IGZyYW1lLCBDR1Np
emUgb2Zmc2V0KQogICAgIG1fdmlldy5mcmFtZSA9IE5TUmVjdEZyb21DR1JlY3QoZnJhbWUpOwog
fQogCit2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzKCkKK3sKKyAg
ICBpZiAoY2xpcHNUb1Zpc2libGVSZWN0KCkpCisgICAgICAgIHVwZGF0ZVZpZXdFeHBvc2VkUmVj
dCgpOworCisgICAgaWYgKG1fZGlkU2NoZWR1bGVXaW5kb3dBbmRWaWV3RnJhbWVVcGRhdGUpCisg
ICAgICAgIHJldHVybjsKKworICAgIG1fZGlkU2NoZWR1bGVXaW5kb3dBbmRWaWV3RnJhbWVVcGRh
dGUgPSB0cnVlOworCisgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICBk
aXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1ZSgpLCBbd2Vha1RoaXNdIHsKKyAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB3ZWFr
VGhpcy0+bV9kaWRTY2hlZHVsZVdpbmRvd0FuZFZpZXdGcmFtZVVwZGF0ZSA9IGZhbHNlOworCisg
ICAgICAgIE5TUmVjdCB2aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzID0gTlNaZXJvUmVjdDsK
KyAgICAgICAgTlNQb2ludCBhY2Nlc3NpYmlsaXR5UG9zaXRpb24gPSBOU1plcm9Qb2ludDsKKwor
ICAgICAgICBpZiAod2Vha1RoaXMtPm1fbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVz
KQorICAgICAgICAgICAgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9IFt3ZWFrVGhpcy0+
bV92aWV3IGNvbnZlcnRSZWN0OndlYWtUaGlzLT5tX3ZpZXcuZnJhbWUgdG9WaWV3Om5pbF07CisK
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
aWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgaWYgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCisgICAgICAgICAgICBhY2Nl
c3NpYmlsaXR5UG9zaXRpb24gPSBbW3dlYWtUaGlzLT5tX3ZpZXcgYWNjZXNzaWJpbGl0eUF0dHJp
YnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVBvc2l0aW9uQXR0cmlidXRlXSBwb2ludFZhbHVlXTsK
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyAgICAgICAgCisgICAgICAgIHdlYWtUaGlz
LT5tX3BhZ2Uud2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQodmlld0ZyYW1lSW5XaW5kb3dDb29y
ZGluYXRlcywgYWNjZXNzaWJpbGl0eVBvc2l0aW9uKTsKKyAgICB9KTsKK30KKwogdm9pZCBXZWJW
aWV3SW1wbDo6c2V0Rml4ZWRMYXlvdXRTaXplKENHU2l6ZSBmaXhlZExheW91dFNpemUpCiB7CiAg
ICAgbV9wYWdlLnNldEZpeGVkTGF5b3V0U2l6ZShXZWJDb3JlOjpleHBhbmRlZEludFNpemUoV2Vi
Q29yZTo6RmxvYXRTaXplKGZpeGVkTGF5b3V0U2l6ZSkpKTsKQEAgLTIyMiw2ICs1MzgsNTMgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6c2V0RHJhd2luZ0FyZWFTaXplKENHU2l6ZSBzaXplKQogICAgIG1f
cmVzaXplU2Nyb2xsT2Zmc2V0ID0gQ0dTaXplWmVybzsKIH0KIAordm9pZCBXZWJWaWV3SW1wbDo6
c2V0QXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzKGJvb2wgYXV0b21hdGljYWxseUFk
anVzdHNDb250ZW50SW5zZXRzKQoreworICAgIG1fYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50
SW5zZXRzID0gYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzOworICAgIHVwZGF0ZUNv
bnRlbnRJbnNldHNJZkF1dG9tYXRpYygpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVD
b250ZW50SW5zZXRzSWZBdXRvbWF0aWMoKQoreworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxMDAwCisgICAgaWYgKCFtX2F1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVu
dEluc2V0cykKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNXaW5kb3cgKndpbmRvdyA9IG1fdmll
dy53aW5kb3c7CisgICAgaWYgKCh3aW5kb3cuc3R5bGVNYXNrICYgTlNGdWxsU2l6ZUNvbnRlbnRW
aWV3V2luZG93TWFzaykgJiYgIXdpbmRvdy50aXRsZWJhckFwcGVhcnNUcmFuc3BhcmVudCAmJiAh
W21fdmlldyBlbmNsb3NpbmdTY3JvbGxWaWV3XSkgeworICAgICAgICBOU1JlY3QgY29udGVudExh
eW91dFJlY3QgPSBbbV92aWV3IGNvbnZlcnRSZWN0OndpbmRvdy5jb250ZW50TGF5b3V0UmVjdCBm
cm9tVmlldzpuaWxdOworICAgICAgICBDR0Zsb2F0IG5ld1RvcENvbnRlbnRJbnNldCA9IE5TTWF4
WShjb250ZW50TGF5b3V0UmVjdCkgLSBOU0hlaWdodChjb250ZW50TGF5b3V0UmVjdCk7CisgICAg
ICAgIGlmIChtX3RvcENvbnRlbnRJbnNldCAhPSBuZXdUb3BDb250ZW50SW5zZXQpCisgICAgICAg
ICAgICBzZXRUb3BDb250ZW50SW5zZXQobmV3VG9wQ29udGVudEluc2V0KTsKKyAgICB9IGVsc2UK
KyAgICAgICAgc2V0VG9wQ29udGVudEluc2V0KDApOworI2VuZGlmCit9CisKK3ZvaWQgV2ViVmll
d0ltcGw6OnNldFRvcENvbnRlbnRJbnNldChDR0Zsb2F0IGNvbnRlbnRJbnNldCkKK3sKKyAgICBt
X3RvcENvbnRlbnRJbnNldCA9IGNvbnRlbnRJbnNldDsKKworICAgIGlmIChtX2RpZFNjaGVkdWxl
U2V0VG9wQ29udGVudEluc2V0KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2RpZFNjaGVkdWxl
U2V0VG9wQ29udGVudEluc2V0ID0gdHJ1ZTsKKworICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVX
ZWFrUHRyKCk7CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwg
W3dlYWtUaGlzXSB7CisgICAgICAgIHdlYWtUaGlzLT5kaXNwYXRjaFNldFRvcENvbnRlbnRJbnNl
dCgpOworICAgIH0pOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpkaXNwYXRjaFNldFRvcENvbnRl
bnRJbnNldCgpCit7CisgICAgaWYgKCFtX2RpZFNjaGVkdWxlU2V0VG9wQ29udGVudEluc2V0KQor
ICAgICAgICByZXR1cm47CisKKyAgICBtX2RpZFNjaGVkdWxlU2V0VG9wQ29udGVudEluc2V0ID0g
ZmFsc2U7CisgICAgbV9wYWdlLnNldFRvcENvbnRlbnRJbnNldChtX3RvcENvbnRlbnRJbnNldCk7
Cit9CisKIHZvaWQgV2ViVmlld0ltcGw6OnNldENvbnRlbnRQcmVwYXJhdGlvblJlY3QoQ0dSZWN0
IHJlY3QpCiB7CiAgICAgbV9jb250ZW50UHJlcGFyYXRpb25SZWN0ID0gcmVjdDsKQEAgLTMzNyw2
ICs3MDAsMjcwIEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZVN1cHBvcnRzQXJiaXRyYXJ5TGF5
b3V0TW9kZXMoKQogICAgIH0KIH0KIAordm9pZCBXZWJWaWV3SW1wbDo6c2V0T3ZlcnJpZGVEZXZp
Y2VTY2FsZUZhY3RvcihDR0Zsb2F0IGRldmljZVNjYWxlRmFjdG9yKQoreworICAgIG1fb3ZlcnJp
ZGVEZXZpY2VTY2FsZUZhY3RvciA9IGRldmljZVNjYWxlRmFjdG9yOworICAgIG1fcGFnZS5zZXRJ
bnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcihpbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcigpKTsK
K30KKworZmxvYXQgV2ViVmlld0ltcGw6OmludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKCkgY29u
c3QKK3sKKyAgICBpZiAobV9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yKQorICAgICAgICByZXR1
cm4gbV9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yOworICAgIGlmIChtX3RhcmdldFdpbmRvd0Zv
ck1vdmVQcmVwYXJhdGlvbikKKyAgICAgICAgcmV0dXJuIG1fdGFyZ2V0V2luZG93Rm9yTW92ZVBy
ZXBhcmF0aW9uLmJhY2tpbmdTY2FsZUZhY3RvcjsKKyAgICBpZiAoTlNXaW5kb3cgKndpbmRvdyA9
IG1fdmlldy53aW5kb3cpCisgICAgICAgIHJldHVybiB3aW5kb3cuYmFja2luZ1NjYWxlRmFjdG9y
OworICAgIHJldHVybiBbTlNTY3JlZW4gbWFpblNjcmVlbl0uYmFja2luZ1NjYWxlRmFjdG9yOwor
fQorCit2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRPcmRlck9mZlNjcmVlbigpCit7CisgICAg
bV9wYWdlLnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OklzVmlzaWJsZSB8
IFdlYkNvcmU6OlZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOworfQorCit2b2lkIFdlYlZpZXdJ
bXBsOjp3aW5kb3dEaWRPcmRlck9uU2NyZWVuKCkKK3sKKyAgICBtX3BhZ2Uudmlld1N0YXRlRGlk
Q2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlIHwgV2ViQ29yZTo6Vmlld1N0YXRl
OjpXaW5kb3dJc0FjdGl2ZSk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZEJlY29t
ZUtleShOU1dpbmRvdyAqa2V5V2luZG93KQoreworICAgIGlmIChrZXlXaW5kb3cgPT0gbV92aWV3
LndpbmRvdyB8fCBrZXlXaW5kb3cgPT0gbV92aWV3LndpbmRvdy5hdHRhY2hlZFNoZWV0KSB7Cisg
ICAgICAgIHVwZGF0ZVNlY3VyZUlucHV0U3RhdGUoKTsKKyAgICAgICAgbV9wYWdlLnZpZXdTdGF0
ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsKKyAgICB9Cit9
CisKK3ZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZFJlc2lnbktleShOU1dpbmRvdyAqZm9ybWVy
S2V5V2luZG93KQoreworICAgIGlmIChmb3JtZXJLZXlXaW5kb3cgPT0gbV92aWV3LndpbmRvdyB8
fCBmb3JtZXJLZXlXaW5kb3cgPT0gbV92aWV3LndpbmRvdy5hdHRhY2hlZFNoZWV0KSB7CisgICAg
ICAgIHVwZGF0ZVNlY3VyZUlucHV0U3RhdGUoKTsKKyAgICAgICAgbV9wYWdlLnZpZXdTdGF0ZURp
ZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsKKyAgICB9Cit9CisK
K3ZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZE1pbmlhdHVyaXplKCkKK3sKKyAgICBtX3BhZ2Uu
dmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsKK30KKwor
dm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkRGVtaW5pYXR1cml6ZSgpCit7CisgICAgbV9wYWdl
LnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OklzVmlzaWJsZSk7Cit9CisK
K3ZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZE1vdmUoKQoreworICAgIHVwZGF0ZVdpbmRvd0Fu
ZFZpZXdGcmFtZXMoKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkUmVzaXplKCkK
K3sKKyAgICB1cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzKCk7Cit9CisKK3ZvaWQgV2ViVmlld0lt
cGw6OndpbmRvd0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzKENHRmxvYXQgb2xkQmFja2luZ1Nj
YWxlRmFjdG9yKQoreworICAgIENHRmxvYXQgbmV3QmFja2luZ1NjYWxlRmFjdG9yID0gaW50cmlu
c2ljRGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICBpZiAob2xkQmFja2luZ1NjYWxlRmFjdG9yID09
IG5ld0JhY2tpbmdTY2FsZUZhY3RvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9wYWdlLnNl
dEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKG5ld0JhY2tpbmdTY2FsZUZhY3Rvcik7Cit9CisK
K3ZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZENoYW5nZVNjcmVlbigpCit7CisgICAgTlNXaW5k
b3cgKndpbmRvdyA9IG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uID8gbV90YXJnZXRX
aW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gOiBtX3ZpZXcud2luZG93OworICAgIG1fcGFnZS53aW5k
b3dTY3JlZW5EaWRDaGFuZ2UoKFBsYXRmb3JtRGlzcGxheUlEKVtbW1t3aW5kb3cgc2NyZWVuXSBk
ZXZpY2VEZXNjcmlwdGlvbl0gb2JqZWN0Rm9yS2V5OkAiTlNTY3JlZW5OdW1iZXIiXSBpbnRWYWx1
ZV0pOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VMYXllckhvc3Rpbmco
KQoreworICAgIG1fcGFnZS5sYXllckhvc3RpbmdNb2RlRGlkQ2hhbmdlKCk7Cit9CisKK3ZvaWQg
V2ViVmlld0ltcGw6OndpbmRvd0RpZENoYW5nZU9jY2x1c2lvblN0YXRlKCkKK3sKKyAgICBtX3Bh
Z2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsKK30K
Kwordm9pZCBXZWJWaWV3SW1wbDo6dmlld1dpbGxNb3ZlVG9XaW5kb3coTlNXaW5kb3cgKndpbmRv
dykKK3sKKyAgICAvLyBJZiB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIHByZXBhcmluZyB0byBtb3Zl
IHRvIGEgd2luZG93LCB3ZSBzaG91bGQgb25seSBiZSBtb3ZlZCB0byB0aGF0IHdpbmRvdy4KKyAg
ICBBU1NFUlQoIW1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uIHx8IChtX3RhcmdldFdp
bmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA9PSB3aW5kb3cpKTsKKworICAgIE5TV2luZG93ICpjdXJy
ZW50V2luZG93ID0gbV92aWV3LndpbmRvdzsKKyAgICBpZiAod2luZG93ID09IGN1cnJlbnRXaW5k
b3cpCisgICAgICAgIHJldHVybjsKKworICAgIGNsZWFyQWxsRWRpdENvbW1hbmRzKCk7CisKKyAg
ICBOU1dpbmRvdyAqc3RvcE9ic2VydmluZ1dpbmRvdyA9IG1fdGFyZ2V0V2luZG93Rm9yTW92ZVBy
ZXBhcmF0aW9uID8gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gOiBtX3ZpZXcud2lu
ZG93OworICAgIFttX3dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBzdG9wT2JzZXJ2aW5nOnN0b3BP
YnNlcnZpbmdXaW5kb3ddOworICAgIFttX3dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBzdGFydE9i
c2VydmluZzp3aW5kb3ddOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp2aWV3RGlkTW92ZVRvV2lu
ZG93KCkKK3sKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJl
cGFyYXRpb24gPyBtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA6IG1fdmlldy53aW5k
b3c7CisKKyAgICBpZiAod2luZG93KSB7CisgICAgICAgIHdpbmRvd0RpZENoYW5nZVNjcmVlbigp
OworCisgICAgICAgIFdlYkNvcmU6OlZpZXdTdGF0ZTo6RmxhZ3Mgdmlld1N0YXRlQ2hhbmdlcyA9
IFdlYkNvcmU6OlZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUgfCBXZWJDb3JlOjpWaWV3U3RhdGU6
OklzVmlzaWJsZTsKKyAgICAgICAgaWYgKG1faXNEZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2Vz
KQorICAgICAgICAgICAgbV92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9IHRydWU7Cisg
ICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZpZXdTdGF0ZUNoYW5nZXMgfD0gV2ViQ29yZTo6Vmll
d1N0YXRlOjpJc0luV2luZG93OworICAgICAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKHZp
ZXdTdGF0ZUNoYW5nZXMpOworCisgICAgICAgIHVwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXMoKTsK
KworICAgICAgICAvLyBGSVhNRSgxMzU1MDkpIFRoaXMgY2FsbCBiZWNvbWVzIHVubmVjZXNzYXJ5
IG9uY2UgMTM1NTA5IGlzIGZpeGVkOyByZW1vdmUuCisgICAgICAgIG1fcGFnZS5sYXllckhvc3Rp
bmdNb2RlRGlkQ2hhbmdlKCk7CisKKyAgICAgICAgaWYgKCFtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9u
aXRvcikgeworICAgICAgICAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAg
ICAgICAgICAgIG1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRkTG9jYWxN
b25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5TRmxhZ3NDaGFuZ2VkTWFzayBoYW5kbGVyOlt3
ZWFrVGhpc10gKE5TRXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50KSB7CisgICAgICAgICAgICAgICAg
aWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+cG9zdEZha2VNb3Vz
ZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudChmbGFnc0NoYW5nZWRFdmVudCk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuIGZsYWdzQ2hhbmdlZEV2ZW50OworICAgICAgICAgICAgfV07Cisg
ICAgICAgIH0KKworICAgICAgICBhY2Nlc3NpYmlsaXR5UmVnaXN0ZXJVSVByb2Nlc3NUb2tlbnMo
KTsKKworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCisgICAg
ICAgIGlmIChtX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICYmICFbW21fdmlldyBn
ZXN0dXJlUmVjb2duaXplcnNdIGNvbnRhaW5zT2JqZWN0Om1faW1tZWRpYXRlQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXIuZ2V0KCldICYmICFtX2lnbm9yZXNOb25XaGVlbEV2ZW50cyAmJiBtX2FsbG93
c0xpbmtQcmV2aWV3KQorICAgICAgICAgICAgW21fdmlldyBhZGRHZXN0dXJlUmVjb2duaXplcjpt
X2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKKyNlbmRpZgorICAgIH0g
ZWxzZSB7CisgICAgICAgIFdlYkNvcmU6OlZpZXdTdGF0ZTo6RmxhZ3Mgdmlld1N0YXRlQ2hhbmdl
cyA9IFdlYkNvcmU6OlZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUgfCBXZWJDb3JlOjpWaWV3U3Rh
dGU6OklzVmlzaWJsZTsKKyAgICAgICAgaWYgKG1faXNEZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFu
Z2VzKQorICAgICAgICAgICAgbV92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9IHRydWU7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZpZXdTdGF0ZUNoYW5nZXMgfD0gV2ViQ29yZTo6
Vmlld1N0YXRlOjpJc0luV2luZG93OworICAgICAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdl
KHZpZXdTdGF0ZUNoYW5nZXMpOworCisgICAgICAgIFtOU0V2ZW50IHJlbW92ZU1vbml0b3I6bV9m
bGFnc0NoYW5nZWRFdmVudE1vbml0b3JdOworICAgICAgICBtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9u
aXRvciA9IG5pbDsKKworICAgICAgICBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dz
V2l0aEFuaW1hdGlvbihmYWxzZSk7CisKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTAwMAorICAgICAgICBpZiAobV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2du
aXplcikKKyAgICAgICAgICAgIFttX3ZpZXcgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6bV9pbW1l
ZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQoKV07CisjZW5kaWYKKyAgICB9CisKKyAg
ICBtX3BhZ2Uuc2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoaW50cmluc2ljRGV2aWNlU2Nh
bGVGYWN0b3IoKSk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnZpZXdEaWRDaGFuZ2VCYWNraW5n
UHJvcGVydGllcygpCit7CisgICAgTlNDb2xvclNwYWNlICpjb2xvclNwYWNlID0gbV92aWV3Lndp
bmRvdy5jb2xvclNwYWNlOworICAgIGlmIChbY29sb3JTcGFjZSBpc0VxdWFsVG86bV9jb2xvclNw
YWNlLmdldCgpXSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9jb2xvclNwYWNlID0gbnVsbHB0
cjsKKyAgICBpZiAoRHJhd2luZ0FyZWFQcm94eSAqZHJhd2luZ0FyZWEgPSBtX3BhZ2UuZHJhd2lu
Z0FyZWEoKSkKKyAgICAgICAgZHJhd2luZ0FyZWEtPmNvbG9yU3BhY2VEaWRDaGFuZ2UoKTsKK30K
Kwordm9pZCBXZWJWaWV3SW1wbDo6cG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5n
ZWRFdmVudChOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVudCkKK3sKKyAgICBOU0V2ZW50ICpmYWtl
RXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNNb3VzZU1vdmVkIGxvY2F0aW9u
OmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvdy5tb3VzZUxvY2F0aW9uT3V0c2lkZU9mRXZlbnRTdHJl
YW0KKyAgICAgICAgbW9kaWZpZXJGbGFnczpmbGFnc0NoYW5nZWRFdmVudC5tb2RpZmllckZsYWdz
IHRpbWVzdGFtcDpmbGFnc0NoYW5nZWRFdmVudC50aW1lc3RhbXAgd2luZG93TnVtYmVyOmZsYWdz
Q2hhbmdlZEV2ZW50LndpbmRvd051bWJlcgorICAgICAgICBjb250ZXh0OmZsYWdzQ2hhbmdlZEV2
ZW50LmNvbnRleHQgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07CisgICAg
TmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudChmYWtlRXZlbnQsIG1fbGFzdFByZXNzdXJlRXZl
bnQuZ2V0KCksIG1fdmlldyk7CisgICAgbV9wYWdlLmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQp
OworfQorCitDb2xvclNwYWNlRGF0YSBXZWJWaWV3SW1wbDo6Y29sb3JTcGFjZSgpCit7CisgICAg
aWYgKCFtX2NvbG9yU3BhY2UpIHsKKyAgICAgICAgaWYgKG1fdGFyZ2V0V2luZG93Rm9yTW92ZVBy
ZXBhcmF0aW9uKQorICAgICAgICAgICAgbV9jb2xvclNwYWNlID0gbV90YXJnZXRXaW5kb3dGb3JN
b3ZlUHJlcGFyYXRpb24uY29sb3JTcGFjZTsKKyAgICAgICAgZWxzZSBpZiAoTlNXaW5kb3cgKndp
bmRvdyA9IG1fdmlldy53aW5kb3cpCisgICAgICAgICAgICBtX2NvbG9yU3BhY2UgPSB3aW5kb3cu
Y29sb3JTcGFjZTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbV9jb2xvclNwYWNlID0gW05T
U2NyZWVuIG1haW5TY3JlZW5dLmNvbG9yU3BhY2U7CisgICAgfQorCisgICAgQ29sb3JTcGFjZURh
dGEgY29sb3JTcGFjZURhdGE7CisgICAgY29sb3JTcGFjZURhdGEuY2dDb2xvclNwYWNlID0gW21f
Y29sb3JTcGFjZSBDR0NvbG9yU3BhY2VdOworICAgIAorICAgIHJldHVybiBjb2xvclNwYWNlRGF0
YTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6YmVnaW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFu
Z2VzKCkKK3sKKyAgICBpZiAobV9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMpIHsKKyAg
ICAgICAgTlNMb2coQCJiZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMgd2FzIGNhbGxl
ZCB3aGlsZSBhbHJlYWR5IGRlZmVycmluZyB2aWV3LWluLXdpbmRvdyBjaGFuZ2VzISIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5n
ZXMgPSB0cnVlOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjplbmREZWZlcnJpbmdWaWV3SW5XaW5k
b3dDaGFuZ2VzKCkKK3sKKyAgICBpZiAoIW1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2Vz
KSB7CisgICAgICAgIE5TTG9nKEAiZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcyB3YXMg
Y2FsbGVkIHdpdGhvdXQgYmVnaW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzISIpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5n
ZXMgPSBmYWxzZTsKKworICAgIGlmIChtX3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVkKSB7
CisgICAgICAgIGRpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0KCk7CisgICAgICAgIG1fcGFnZS52
aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0luV2luZG93KTsKKyAgICAg
ICAgbV92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9IGZhbHNlOworICAgIH0KK30KKwor
dm9pZCBXZWJWaWV3SW1wbDo6ZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlc1N5bmMoKQor
eworICAgIGlmICghbV9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMpIHsKKyAgICAgICAg
TlNMb2coQCJlbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzU3luYyB3YXMgY2FsbGVkIHdp
dGhvdXQgYmVnaW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzISIpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgbV9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMgPSBmYWxz
ZTsKKworICAgIGlmIChtX3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVkKSB7CisgICAgICAg
IGRpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0KCk7CisgICAgICAgIG1fcGFnZS52aWV3U3RhdGVE
aWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0luV2luZG93KTsKKyAgICAgICAgbV92aWV3
SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9IGZhbHNlOworICAgIH0KK30KKwordm9pZCBXZWJW
aWV3SW1wbDo6cHJlcGFyZUZvck1vdmVUb1dpbmRvdyhOU1dpbmRvdyAqdGFyZ2V0V2luZG93LCBz
dGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgbV9zaG91bGRE
ZWZlclZpZXdJbldpbmRvd0NoYW5nZXMgPSB0cnVlOworICAgIHZpZXdXaWxsTW92ZVRvV2luZG93
KHRhcmdldFdpbmRvdyk7CisgICAgbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gPSB0
YXJnZXRXaW5kb3c7CisgICAgdmlld0RpZE1vdmVUb1dpbmRvdygpOworCisgICAgbV9zaG91bGRE
ZWZlclZpZXdJbldpbmRvd0NoYW5nZXMgPSBmYWxzZTsKKworICAgIGF1dG8gd2Vha1RoaXMgPSBj
cmVhdGVXZWFrUHRyKCk7CisgICAgbV9wYWdlLmluc3RhbGxWaWV3U3RhdGVDaGFuZ2VDb21wbGV0
aW9uSGFuZGxlcihbd2Vha1RoaXMsIGNvbXBsZXRpb25IYW5kbGVyXSgpIHsKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKKworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAg
cmV0dXJuOworCisgICAgICAgIEFTU0VSVCh3ZWFrVGhpcy0+bV92aWV3LndpbmRvdyA9PSB3ZWFr
VGhpcy0+bV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24pOworICAgICAgICB3ZWFrVGhp
cy0+bV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gPSBuaWw7CisgICAgfSk7CisKKyAg
ICBkaXNwYXRjaFNldFRvcENvbnRlbnRJbnNldCgpOworICAgIG1fcGFnZS52aWV3U3RhdGVEaWRD
aGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0luV2luZG93LCBmYWxzZSwgV2ViUGFnZVByb3h5
OjpWaWV3U3RhdGVDaGFuZ2VEaXNwYXRjaE1vZGU6OkltbWVkaWF0ZSk7CisgICAgbV92aWV3SW5X
aW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9IGZhbHNlOworfQorCiB2b2lkIFdlYlZpZXdJbXBsOjp1
cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCkKIHsKICAgICBpZiAoIVtbbV92aWV3IHdpbmRvd10gaXNL
ZXlXaW5kb3ddIHx8ICFpc0ZvY3VzZWQoKSkgewpAQCAtMzg2LDYgKzEwMTMsMjUgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6bm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbigp
CiAgICAgW1ttX3ZpZXcgX3N1cGVySW5wdXRDb250ZXh0XSBkaXNjYXJkTWFya2VkVGV4dF07IC8v
IEluZm9ybSB0aGUgaW5wdXQgbWV0aG9kIHRoYXQgd2Ugd29uJ3QgaGF2ZSBhbiBpbmxpbmUgaW5w
dXQgYXJlYSBkZXNwaXRlIGhhdmluZyBiZWVuIGFza2VkIHRvLgogfQogCit2b2lkIFdlYlZpZXdJ
bXBsOjpwcmVzc3VyZUNoYW5nZVdpdGhFdmVudChOU0V2ZW50ICpldmVudCkKK3sKKyNpZiBkZWZp
bmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMDAz
CisgICAgaWYgKGV2ZW50ID09IG1fbGFzdFByZXNzdXJlRXZlbnQpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmIChtX2lnbm9yZXNOb25XaGVlbEV2ZW50cykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgaWYgKGV2ZW50LnBoYXNlICE9IE5TRXZlbnRQaGFzZUNoYW5nZWQgJiYgZXZlbnQucGhhc2Ug
IT0gTlNFdmVudFBoYXNlQmVnYW4gJiYgZXZlbnQucGhhc2UgIT0gTlNFdmVudFBoYXNlRW5kZWQp
CisgICAgICAgIHJldHVybjsKKworICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQoZXZl
bnQsIG1fbGFzdFByZXNzdXJlRXZlbnQuZ2V0KCksIG1fdmlldyk7CisgICAgbV9wYWdlLmhhbmRs
ZU1vdXNlRXZlbnQod2ViRXZlbnQpOworCisgICAgbV9sYXN0UHJlc3N1cmVFdmVudCA9IGV2ZW50
OworI2VuZGlmCit9CisKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiBib29sIFdlYlZpZXdJ
bXBsOjpoYXNGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpIGNvbnN0CiB7CkBAIC00MjgsNiAr
MTA3NCwyNTkgQEAgTlNXaW5kb3cgKldlYlZpZXdJbXBsOjpjcmVhdGVGdWxsU2NyZWVuV2luZG93
KCkKICNlbmRpZgogfQogCitib29sIFdlYlZpZXdJbXBsOjppc0VkaXRhYmxlKCkgY29uc3QKK3sK
KyAgICByZXR1cm4gbV9wYWdlLmlzRWRpdGFibGUoKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6
ZXhlY3V0ZUVkaXRDb21tYW5kKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUsIGNvbnN0IFN0cmlu
ZyYgYXJndW1lbnQpCit7CisgICAgbV9wYWdlLmV4ZWN1dGVFZGl0Q29tbWFuZChjb21tYW5kTmFt
ZSwgYXJndW1lbnQpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpyZWdpc3RlckVkaXRDb21tYW5k
KFJlZlB0cjxXZWJFZGl0Q29tbWFuZFByb3h5PiBwcnBDb21tYW5kLCBXZWJQYWdlUHJveHk6OlVu
ZG9PclJlZG8gdW5kb09yUmVkbykKK3sKKyAgICBSZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4g
Y29tbWFuZCA9IHBycENvbW1hbmQ7CisKKyAgICBSZXRhaW5QdHI8V0tFZGl0Q29tbWFuZE9iakM+
IGNvbW1hbmRPYmpDID0gYWRvcHROUyhbW1dLRWRpdENvbW1hbmRPYmpDIGFsbG9jXSBpbml0V2l0
aFdlYkVkaXRDb21tYW5kUHJveHk6Y29tbWFuZF0pOworICAgIFN0cmluZyBhY3Rpb25OYW1lID0g
V2ViRWRpdENvbW1hbmRQcm94eTo6bmFtZUZvckVkaXRBY3Rpb24oY29tbWFuZC0+ZWRpdEFjdGlv
bigpKTsKKworICAgIE5TVW5kb01hbmFnZXIgKnVuZG9NYW5hZ2VyID0gW21fdmlldyB1bmRvTWFu
YWdlcl07CisgICAgW3VuZG9NYW5hZ2VyIHJlZ2lzdGVyVW5kb1dpdGhUYXJnZXQ6bV91bmRvVGFy
Z2V0LmdldCgpIHNlbGVjdG9yOigodW5kb09yUmVkbyA9PSBXZWJQYWdlUHJveHk6OlVuZG8pID8g
QHNlbGVjdG9yKHVuZG9FZGl0aW5nOikgOiBAc2VsZWN0b3IocmVkb0VkaXRpbmc6KSkgb2JqZWN0
OmNvbW1hbmRPYmpDLmdldCgpXTsKKyAgICBpZiAoIWFjdGlvbk5hbWUuaXNFbXB0eSgpKQorICAg
ICAgICBbdW5kb01hbmFnZXIgc2V0QWN0aW9uTmFtZTooTlNTdHJpbmcgKilhY3Rpb25OYW1lXTsK
K30KKwordm9pZCBXZWJWaWV3SW1wbDo6Y2xlYXJBbGxFZGl0Q29tbWFuZHMoKQoreworICAgIFtb
bV92aWV3IHVuZG9NYW5hZ2VyXSByZW1vdmVBbGxBY3Rpb25zV2l0aFRhcmdldDptX3VuZG9UYXJn
ZXQuZ2V0KCldOworfQorCitib29sIFdlYlZpZXdJbXBsOjp3cml0ZVNlbGVjdGlvblRvUGFzdGVi
b2FyZChOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIE5TQXJyYXkgKnR5cGVzKQoreworICAgIHNp
emVfdCBudW1UeXBlcyA9IHR5cGVzLmNvdW50OworICAgIFtwYXN0ZWJvYXJkIGRlY2xhcmVUeXBl
czp0eXBlcyBvd25lcjpuaWxdOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbnVtVHlwZXM7
ICsraSkgeworICAgICAgICBpZiAoW1t0eXBlcyBvYmplY3RBdEluZGV4OmldIGlzRXF1YWxUbzpO
U1N0cmluZ1Bib2FyZFR5cGVdKQorICAgICAgICAgICAgW3Bhc3RlYm9hcmQgc2V0U3RyaW5nOm1f
cGFnZS5zdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKCkgZm9yVHlwZTpOU1N0cmluZ1Bib2Fy
ZFR5cGVdOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFy
ZWRCdWZmZXI+IGJ1ZmZlciA9IG1fcGFnZS5kYXRhU2VsZWN0aW9uRm9yUGFzdGVib2FyZChbdHlw
ZXMgb2JqZWN0QXRJbmRleDppXSk7CisgICAgICAgICAgICBbcGFzdGVib2FyZCBzZXREYXRhOmJ1
ZmZlciA/IGJ1ZmZlci0+Y3JlYXRlTlNEYXRhKCkuZ2V0KCkgOiBuaWwgZm9yVHlwZTpbdHlwZXMg
b2JqZWN0QXRJbmRleDppXV07CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHRydWU7Cit9
CisKK3ZvaWQgV2ViVmlld0ltcGw6OmNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEoKQorewor
ICAgIG1fcGFnZS5jZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhKCk7Cit9CisKK3ZvaWQgV2Vi
Vmlld0ltcGw6OnNlbGVjdGlvbkRpZENoYW5nZSgpCit7CisgICAgdXBkYXRlRm9udFBhbmVsSWZO
ZWVkZWQoKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c3RhcnRPYnNlcnZpbmdGb250UGFuZWwo
KQoreworICAgIFttX3dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBzdGFydE9ic2VydmluZ0ZvbnRQ
YW5lbF07Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZUZvbnRQYW5lbElmTmVlZGVkKCkK
K3sKKyAgICBjb25zdCBFZGl0b3JTdGF0ZSYgZWRpdG9yU3RhdGUgPSBtX3BhZ2UuZWRpdG9yU3Rh
dGUoKTsKKyAgICBpZiAoZWRpdG9yU3RhdGUuc2VsZWN0aW9uSXNOb25lIHx8ICFlZGl0b3JTdGF0
ZS5pc0NvbnRlbnRFZGl0YWJsZSkKKyAgICAgICAgcmV0dXJuOworICAgIGlmIChbTlNGb250UGFu
ZWwgc2hhcmVkRm9udFBhbmVsRXhpc3RzXSAmJiBbW05TRm9udFBhbmVsIHNoYXJlZEZvbnRQYW5l
bF0gaXNWaXNpYmxlXSkgeworICAgICAgICBtX3BhZ2UuZm9udEF0U2VsZWN0aW9uKFtdKGNvbnN0
IFN0cmluZyYgZm9udE5hbWUsIGRvdWJsZSBmb250U2l6ZSwgYm9vbCBzZWxlY3Rpb25IYXNNdWx0
aXBsZUZvbnRzLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICAgICAg
ICAgIE5TRm9udCAqZm9udCA9IFtOU0ZvbnQgZm9udFdpdGhOYW1lOmZvbnROYW1lIHNpemU6Zm9u
dFNpemVdOworICAgICAgICAgICAgaWYgKGZvbnQpCisgICAgICAgICAgICAgICAgW1tOU0ZvbnRN
YW5hZ2VyIHNoYXJlZEZvbnRNYW5hZ2VyXSBzZXRTZWxlY3RlZEZvbnQ6Zm9udCBpc011bHRpcGxl
OnNlbGVjdGlvbkhhc011bHRpcGxlRm9udHNdOworICAgICAgICB9KTsKKyAgICB9Cit9CisKK3Zv
aWQgV2ViVmlld0ltcGw6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkKK3sKKyAgICBCT09MIG5lZWRz
Vmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9IG1fcGFnZS5wcmVmZXJlbmNlcygpLnBsdWdp
bnNFbmFibGVkKCk7CisKKyAgICBpZiAoISFuZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0
ZXMgPT0gISFtX25lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcykKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9uZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMgPSBuZWVkc1Zp
ZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXM7CisgICAgaWYgKG1fdmlldy53aW5kb3cpCisgICAg
ICAgIHVwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXMoKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6
c2V0VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yLCBX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgbGlmZXRpbWUpCit7CisgICAgaWYg
KCFtX3RleHRJbmRpY2F0b3JXaW5kb3cpCisgICAgICAgIG1fdGV4dEluZGljYXRvcldpbmRvdyA9
IHN0ZDo6bWFrZV91bmlxdWU8V2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvdz4obV92aWV3KTsK
KworICAgIE5TUmVjdCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3JlZW5Db29yZGluYXRlcyA9IFttX3Zp
ZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46W21fdmlldyBjb252ZXJ0UmVjdDp0ZXh0SW5k
aWNhdG9yLnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKSB0b1ZpZXc6bmls
XV07CisgICAgbV90ZXh0SW5kaWNhdG9yV2luZG93LT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRp
Y2F0b3IsIE5TUmVjdFRvQ0dSZWN0KHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNvb3JkaW5hdGVz
KSwgbGlmZXRpbWUpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpjbGVhclRleHRJbmRpY2F0b3JX
aXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRp
b24gYW5pbWF0aW9uKQoreworICAgIGlmIChtX3RleHRJbmRpY2F0b3JXaW5kb3cpCisgICAgICAg
IG1fdGV4dEluZGljYXRvcldpbmRvdy0+Y2xlYXJUZXh0SW5kaWNhdG9yKGFuaW1hdGlvbik7Cisg
ICAgbV90ZXh0SW5kaWNhdG9yV2luZG93ID0gbnVsbHB0cjsKK30KKwordm9pZCBXZWJWaWV3SW1w
bDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0IHByb2dyZXNzKQorewor
ICAgIGlmIChtX3RleHRJbmRpY2F0b3JXaW5kb3cpCisgICAgICAgIG1fdGV4dEluZGljYXRvcldp
bmRvdy0+c2V0QW5pbWF0aW9uUHJvZ3Jlc3MocHJvZ3Jlc3MpOworfQorCit2b2lkIFdlYlZpZXdJ
bXBsOjpkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbihib29s
IGFuaW1hdGUpCit7CisgICAgW21fdmlldyBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2lu
ZG93c1dpdGhBbmltYXRpb246YW5pbWF0ZV07Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmRpc21p
c3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uRnJvbVZpZXdPbmx5KGJv
b2wgYW5pbWF0ZSkKK3sKKyAgICAvLyBDYWxsaW5nIF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5p
bWF0aW9uIGhlcmUgd2lsbCB3aW4gb3V0IG92ZXIgdGhlIGFuaW1hdGVkIGNsZWFyIGluIGRpc21p
c3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHkuCisgICAgLy8gV2UgY2Fu
J3QgaW52ZXJ0IHRoZXNlIGJlY2F1c2UgY2xpZW50cyBjYW4gb3ZlcnJpZGUgKGFuZCBoYXZlIG92
ZXJyaWRkZW4pIF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzLCBzbyBpdCBuZWVk
cyB0byBiZSBjYWxsZWQuCisgICAgLy8gRm9yIHRoaXMgc2FtZSByZWFzb24sIHRoaXMgY2FuJ3Qg
YmUgbW92ZWQgdG8gV2ViVmlld0ltcGwgd2l0aG91dCBjYXJlLgorICAgIGNsZWFyVGV4dEluZGlj
YXRvcldpdGhBbmltYXRpb24oYW5pbWF0ZSA/IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dE
aXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQgOiBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKKyAgICBbbV92aWV3IF9kaXNtaXNzQ29udGVudFJl
bGF0aXZlQ2hpbGRXaW5kb3dzXTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRl
bnRSZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seSgpCit7CisgICAgYm9vbCBoYXNBY3Rp
dmVJbW1lZGlhdGVBY3Rpb24gPSBmYWxzZTsKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTAwMAorICAgIGhhc0FjdGl2ZUltbWVkaWF0ZUFjdGlvbiA9IFttX2ltbWVk
aWF0ZUFjdGlvbkNvbnRyb2xsZXIgaGFzQWN0aXZlSW1tZWRpYXRlQWN0aW9uXTsKKyNlbmRpZgor
CisgICAgLy8gRklYTUU6IFdlIGRvbid0IGtub3cgd2hpY2ggcGFuZWwgd2UgYXJlIGRpc21pc3Np
bmcsIGl0IG1heSBub3QgZXZlbiBiZSBpbiB0aGUgY3VycmVudCBwYWdlIChzZWUgPHJkYXI6Ly9w
cm9ibGVtLzEzODc1NzY2PikuCisgICAgaWYgKG1fdmlldy53aW5kb3cuaXNLZXlXaW5kb3cgfHwg
aGFzQWN0aXZlSW1tZWRpYXRlQWN0aW9uKSB7CisgICAgICAgIFdlYkNvcmU6OkRpY3Rpb25hcnlM
b29rdXA6OmhpZGVQb3B1cCgpOworCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJF
RCA+PSAxMDEwMDAKKyAgICAgICAgRERBY3Rpb25zTWFuYWdlciAqYWN0aW9uc01hbmFnZXIgPSBb
Z2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl07CisgICAgICAgIGlmIChb
YWN0aW9uc01hbmFnZXIgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihyZXF1ZXN0QnViYmxl
Q2xvc3VyZVVuYW5jaG9yT25GYWlsdXJlOildKQorICAgICAgICAgICAgW2FjdGlvbnNNYW5hZ2Vy
IHJlcXVlc3RCdWJibGVDbG9zdXJlVW5hbmNob3JPbkZhaWx1cmU6WUVTXTsKKyNlbmRpZgorICAg
IH0KKworICAgIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dElu
ZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCk7CisKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAorICAgIFttX2ltbWVkaWF0ZUFjdGlv
bkNvbnRyb2xsZXIgZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c107CisjZW5kaWYK
KyAgICAKKyAgICBtX3BhZ2VDbGllbnQuZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpS
ZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdub3JlZCk7Cit9CisKK3ZvaWQgV2Vi
Vmlld0ltcGw6OnF1aWNrTG9va1dpdGhFdmVudChOU0V2ZW50ICpldmVudCkKK3sKKyAgICBpZiAo
aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCisgICAgICAgIHJldHVybjsKKworI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCisgICAgaWYgKG1faW1tZWRpYXRlQWN0
aW9uR2VzdHVyZVJlY29nbml6ZXIpIHsKKyAgICAgICAgW21fdmlldyBfc3VwZXJRdWlja0xvb2tX
aXRoRXZlbnQ6ZXZlbnRdOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCisKKyAgICBO
U1BvaW50IGxvY2F0aW9uSW5WaWV3Q29vcmRpbmF0ZXMgPSBbbV92aWV3IGNvbnZlcnRQb2ludDpb
ZXZlbnQgbG9jYXRpb25JbldpbmRvd10gZnJvbVZpZXc6bmlsXTsKKyAgICBtX3BhZ2UucGVyZm9y
bURpY3Rpb25hcnlMb29rdXBBdExvY2F0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQobG9jYXRpb25J
blZpZXdDb29yZGluYXRlcykpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpwcmVwYXJlRm9yRGlj
dGlvbmFyeUxvb2t1cCgpCit7CisgICAgaWYgKG1fZGlkUmVnaXN0ZXJGb3JMb29rdXBQb3BvdmVy
Q2xvc2VOb3RpZmljYXRpb25zKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2RpZFJlZ2lzdGVy
Rm9yTG9va3VwUG9wb3ZlckNsb3NlTm90aWZpY2F0aW9ucyA9IHRydWU7CisKKyAgICBbbV93aW5k
b3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3RhcnRPYnNlcnZpbmdMb29rdXBEaXNtaXNzYWxdOworfQor
Cit2b2lkIFdlYlZpZXdJbXBsOjpzZXRBbGxvd3NMaW5rUHJldmlldyhib29sIGFsbG93c0xpbmtQ
cmV2aWV3KQoreworICAgIGlmIChtX2FsbG93c0xpbmtQcmV2aWV3ID09IGFsbG93c0xpbmtQcmV2
aWV3KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2FsbG93c0xpbmtQcmV2aWV3ID0gYWxsb3dz
TGlua1ByZXZpZXc7CisKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTAwMAorICAgIGlmICghYWxsb3dzTGlua1ByZXZpZXcpCisgICAgICAgIFttX3ZpZXcgcmVtb3Zl
R2VzdHVyZVJlY29nbml6ZXI6bV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQo
KV07CisgICAgZWxzZSBpZiAoTlNHZXN0dXJlUmVjb2duaXplciAqaW1tZWRpYXRlQWN0aW9uUmVj
b2duaXplciA9IG1faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCkpCisgICAg
ICAgIFttX3ZpZXcgYWRkR2VzdHVyZVJlY29nbml6ZXI6aW1tZWRpYXRlQWN0aW9uUmVjb2duaXpl
cl07CisjZW5kaWYKK30KKwordm9pZCogV2ViVmlld0ltcGw6OmltbWVkaWF0ZUFjdGlvbkFuaW1h
dGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0KFdLSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0
UmVzdWx0LCB1aW50MzJfdCB0eXBlLCBXS1R5cGVSZWYgdXNlckRhdGEpCit7CisgICAgcmV0dXJu
IFttX3ZpZXcgX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVz
dWx0OmhpdFRlc3RSZXN1bHQgd2l0aFR5cGU6dHlwZSB1c2VyRGF0YTp1c2VyRGF0YV07Cit9CisK
K3ZvaWQqIFdlYlZpZXdJbXBsOjppbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9y
SGl0VGVzdFJlc3VsdEZyb21WaWV3T25seShXS0hpdFRlc3RSZXN1bHRSZWYgaGl0VGVzdFJlc3Vs
dCwgdWludDMyX3QgdHlwZSwgV0tUeXBlUmVmIHVzZXJEYXRhKQoreworICAgIHJldHVybiBuaWw7
Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmRpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0
KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHREYXRhJiByZXN1bHQsIGJvb2wgY29udGVudFByZXZlbnRz
RGVmYXVsdCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKQoreworI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCisgICAgW21faW1tZWRpYXRlQWN0aW9uQ29udHJvbGxl
ciBkaWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9uSGl0VGVzdDpyZXN1bHQgY29udGVudFByZXZlbnRz
RGVmYXVsdDpjb250ZW50UHJldmVudHNEZWZhdWx0IHVzZXJEYXRhOnVzZXJEYXRhXTsKKyNlbmRp
ZgorfQorCit2b2lkIFdlYlZpZXdJbXBsOjpwcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0
aW9uKCkKK3sKKyAgICBbbV92aWV3IF9wcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9u
XTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6Y2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9u
KCkKK3sKKyAgICBbbV92aWV3IF9jYW5jZWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25dOworfQor
Cit2b2lkIFdlYlZpZXdJbXBsOjpjb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbigpCit7
CisgICAgW21fdmlldyBfY29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25dOworfQorCit2
b2lkIFdlYlZpZXdJbXBsOjpzZXRJZ25vcmVzTm9uV2hlZWxFdmVudHMoYm9vbCBpZ25vcmVzTm9u
V2hlZWxFdmVudHMpCit7CisgICAgaWYgKG1faWdub3Jlc05vbldoZWVsRXZlbnRzID09IGlnbm9y
ZXNOb25XaGVlbEV2ZW50cykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9pZ25vcmVzTm9uV2hl
ZWxFdmVudHMgPSBpZ25vcmVzTm9uV2hlZWxFdmVudHM7CisgICAgbV9wYWdlLnNldFNob3VsZERp
c3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50cyghaWdub3Jlc05vbldoZWVsRXZlbnRzKTsKKworI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCisgICAgaWYgKGlnbm9y
ZXNOb25XaGVlbEV2ZW50cykKKyAgICAgICAgW21fdmlldyByZW1vdmVHZXN0dXJlUmVjb2duaXpl
cjptX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgpXTsKKyAgICBlbHNlIGlm
IChOU0dlc3R1cmVSZWNvZ25pemVyICppbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyID0gbV9pbW1l
ZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQoKSkgeworICAgICAgICBpZiAobV9hbGxv
d3NMaW5rUHJldmlldykKKyAgICAgICAgICAgIFttX3ZpZXcgYWRkR2VzdHVyZVJlY29nbml6ZXI6
aW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcl07CisgICAgfQorI2VuZGlmCit9CisKK3ZvaWQgV2Vi
Vmlld0ltcGw6OnNldElnbm9yZXNBbGxFdmVudHMoYm9vbCBpZ25vcmVzQWxsRXZlbnRzKQorewor
ICAgIG1faWdub3Jlc0FsbEV2ZW50cyA9IGlnbm9yZXNBbGxFdmVudHM7CisgICAgc2V0SWdub3Jl
c05vbldoZWVsRXZlbnRzKGlnbm9yZXNBbGxFdmVudHMpOworfQorCit2b2lkIFdlYlZpZXdJbXBs
OjphY2Nlc3NpYmlsaXR5UmVnaXN0ZXJVSVByb2Nlc3NUb2tlbnMoKQoreworICAgIC8vIEluaXRp
YWxpemUgcmVtb3RlIGFjY2Vzc2liaWxpdHkgd2hlbiB0aGUgd2luZG93IGNvbm5lY3Rpb24gaGFz
IGJlZW4gZXN0YWJsaXNoZWQuCisgICAgTlNEYXRhICpyZW1vdGVFbGVtZW50VG9rZW4gPSBXS0FY
UmVtb3RlVG9rZW5Gb3JFbGVtZW50KG1fdmlldyk7CisgICAgTlNEYXRhICpyZW1vdGVXaW5kb3dU
b2tlbiA9IFdLQVhSZW1vdGVUb2tlbkZvckVsZW1lbnQobV92aWV3LndpbmRvdyk7CisgICAgSVBD
OjpEYXRhUmVmZXJlbmNlIGVsZW1lbnRUb2tlbiA9IElQQzo6RGF0YVJlZmVyZW5jZShyZWludGVy
cHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihbcmVtb3RlRWxlbWVudFRva2VuIGJ5dGVzXSksIFty
ZW1vdGVFbGVtZW50VG9rZW4gbGVuZ3RoXSk7CisgICAgSVBDOjpEYXRhUmVmZXJlbmNlIHdpbmRv
d1Rva2VuID0gSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhf
dCo+KFtyZW1vdGVXaW5kb3dUb2tlbiBieXRlc10pLCBbcmVtb3RlV2luZG93VG9rZW4gbGVuZ3Ro
XSk7CisgICAgbV9wYWdlLnJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNzaWJpbGl0eVRva2VucyhlbGVt
ZW50VG9rZW4sIHdpbmRvd1Rva2VuKTsKK30KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaAppbmRleCA0NmFh
NTIwLi5jMjQ2MmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbC5oCkBAIC0yMjAsNyArMjIwLDYgQEAgcHJpdmF0ZToKICAgICBXS1ZpZXcgKm1fd2tW
aWV3OwogICAgIFdLV2ViVmlldyAqbV93ZWJWaWV3OwogICAgIFdlYlZpZXdJbXBsKiBtX2ltcGwg
eyBudWxscHRyIH07Ci0gICAgUmV0YWluUHRyPFdLRWRpdG9yVW5kb1RhcmdldE9iakM+IG1fdW5k
b1RhcmdldDsKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFORUwpCiAgICAgQ29ycmVjdGlvblBh
bmVsIG1fY29ycmVjdGlvblBhbmVsOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQppbmRleCA0YzNkNjA2Li5iYjMzYTIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KQEAgLTkwLDYw
ICs5MCwxMSBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OwogCi1AaW50ZXJmYWNlIFdLRWRpdENvbW1hbmRPYmpDIDogTlNPYmplY3QKLXsKLSAgICBS
ZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4gbV9jb21tYW5kOwotfQotLSAoaWQpaW5pdFdpdGhX
ZWJFZGl0Q29tbWFuZFByb3h5OihQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+KWNvbW1h
bmQ7Ci0tIChXZWJFZGl0Q29tbWFuZFByb3h5Kiljb21tYW5kOwotQGVuZAotCi1AaW50ZXJmYWNl
IFdLRWRpdG9yVW5kb1RhcmdldE9iakMgOiBOU09iamVjdAotLSAodm9pZCl1bmRvRWRpdGluZzoo
aWQpc2VuZGVyOwotLSAodm9pZClyZWRvRWRpdGluZzooaWQpc2VuZGVyOwotQGVuZAotCi1AaW1w
bGVtZW50YXRpb24gV0tFZGl0Q29tbWFuZE9iakMKLQotLSAoaWQpaW5pdFdpdGhXZWJFZGl0Q29t
bWFuZFByb3h5OihQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+KWNvbW1hbmQKLXsKLSAg
ICBzZWxmID0gW3N1cGVyIGluaXRdOwotICAgIGlmICghc2VsZikKLSAgICAgICAgcmV0dXJuIG5p
bDsKLQotICAgIG1fY29tbWFuZCA9IGNvbW1hbmQ7Ci0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KLS0g
KFdlYkVkaXRDb21tYW5kUHJveHkqKWNvbW1hbmQKLXsKLSAgICByZXR1cm4gbV9jb21tYW5kLmdl
dCgpOwotfQotCi1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBXS0VkaXRvclVuZG9UYXJnZXRPYmpD
Ci0KLS0gKHZvaWQpdW5kb0VkaXRpbmc6KGlkKXNlbmRlcgotewotICAgIEFTU0VSVChbc2VuZGVy
IGlzS2luZE9mQ2xhc3M6W1dLRWRpdENvbW1hbmRPYmpDIGNsYXNzXV0pOwotICAgIFtzZW5kZXIg
Y29tbWFuZF0tPnVuYXBwbHkoKTsKLX0KLQotLSAodm9pZClyZWRvRWRpdGluZzooaWQpc2VuZGVy
Ci17Ci0gICAgQVNTRVJUKFtzZW5kZXIgaXNLaW5kT2ZDbGFzczpbV0tFZGl0Q29tbWFuZE9iakMg
Y2xhc3NdXSk7Ci0gICAgW3NlbmRlciBjb21tYW5kXS0+cmVhcHBseSgpOwotfQotCi1AZW5kCi0K
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBQYWdlQ2xpZW50SW1wbDo6UGFnZUNsaWVudEltcGwoV0tW
aWV3KiB3a1ZpZXcsIFdLV2ViVmlldyAqd2ViVmlldykKICAgICA6IG1fd2tWaWV3KHdrVmlldykK
ICAgICAsIG1fd2ViVmlldyh3ZWJWaWV3KQotICAgICwgbV91bmRvVGFyZ2V0KGFkb3B0TlMoW1tX
S0VkaXRvclVuZG9UYXJnZXRPYmpDIGFsbG9jXSBpbml0XSkpCiAjaWYgVVNFKERJQ1RBVElPTl9B
TFRFUk5BVElWRVMpCiAgICAgLCBtX2FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcihzdGQ6Om1h
a2VfdW5pcXVlPEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcj4oKSkKICNlbmRpZgpAQCAtMjA3
LDggKzE1OCw4IEBAIE5TV2luZG93ICpQYWdlQ2xpZW50SW1wbDo6YWN0aXZlV2luZG93KCkgY29u
c3QKICAgICBpZiAobV93a1ZpZXcuX3RodW1ibmFpbFZpZXcpCiAgICAgICAgIHJldHVybiBtX3dr
Vmlldy5fdGh1bWJuYWlsVmlldy53aW5kb3c7CiAjZW5kaWYKLSAgICBpZiAobV93a1ZpZXcuX3Rh
cmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbikKLSAgICAgICAgcmV0dXJuIG1fd2tWaWV3Ll90
YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb247CisgICAgaWYgKG1faW1wbCAmJiBtX2ltcGwt
PnRhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbigpKQorICAgICAgICByZXR1cm4gbV9pbXBs
LT50YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24oKTsKICAgICByZXR1cm4gbV93a1ZpZXcu
d2luZG93OwogfQogCkBAIC0zMDcsNyArMjU4LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlk
UmVsYXVuY2hQcm9jZXNzKCkKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJlZmVyZW5jZXNEaWRD
aGFuZ2UoKQogewotICAgIFttX3drVmlldyBfcHJlZmVyZW5jZXNEaWRDaGFuZ2VdOworICAgIG1f
aW1wbC0+cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6
dG9vbFRpcENoYW5nZWQoY29uc3QgU3RyaW5nJiBvbGRUb29sVGlwLCBjb25zdCBTdHJpbmcmIG5l
d1Rvb2xUaXApCkBAIC0zNzMsMTUgKzMyNCw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENo
YW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0CiAK
IHZvaWQgUGFnZUNsaWVudEltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQoUGFzc1JlZlB0cjxXZWJF
ZGl0Q29tbWFuZFByb3h5PiBwcnBDb21tYW5kLCBXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8gdW5k
b09yUmVkbykKIHsKLSAgICBSZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4gY29tbWFuZCA9IHBy
cENvbW1hbmQ7Ci0KLSAgICBSZXRhaW5QdHI8V0tFZGl0Q29tbWFuZE9iakM+IGNvbW1hbmRPYmpD
ID0gYWRvcHROUyhbW1dLRWRpdENvbW1hbmRPYmpDIGFsbG9jXSBpbml0V2l0aFdlYkVkaXRDb21t
YW5kUHJveHk6Y29tbWFuZF0pOwotICAgIFN0cmluZyBhY3Rpb25OYW1lID0gV2ViRWRpdENvbW1h
bmRQcm94eTo6bmFtZUZvckVkaXRBY3Rpb24oY29tbWFuZC0+ZWRpdEFjdGlvbigpKTsKLQotICAg
IE5TVW5kb01hbmFnZXIgKnVuZG9NYW5hZ2VyID0gW21fd2tWaWV3IHVuZG9NYW5hZ2VyXTsKLSAg
ICBbdW5kb01hbmFnZXIgcmVnaXN0ZXJVbmRvV2l0aFRhcmdldDptX3VuZG9UYXJnZXQuZ2V0KCkg
c2VsZWN0b3I6KCh1bmRvT3JSZWRvID09IFdlYlBhZ2VQcm94eTo6VW5kbykgPyBAc2VsZWN0b3Io
dW5kb0VkaXRpbmc6KSA6IEBzZWxlY3RvcihyZWRvRWRpdGluZzopKSBvYmplY3Q6Y29tbWFuZE9i
akMuZ2V0KCldOwotICAgIGlmICghYWN0aW9uTmFtZS5pc0VtcHR5KCkpCi0gICAgICAgIFt1bmRv
TWFuYWdlciBzZXRBY3Rpb25OYW1lOihOU1N0cmluZyAqKWFjdGlvbk5hbWVdOworICAgIG1faW1w
bC0+cmVnaXN0ZXJFZGl0Q29tbWFuZChwcnBDb21tYW5kLCB1bmRvT3JSZWRvKTsKIH0KIAogI2lm
IFVTRShJTlNFUlRJT05fVU5ET19HUk9VUElORykKQEAgLTM5Myw3ICszMzYsNyBAQCB2b2lkIFBh
Z2VDbGllbnRJbXBsOjpyZWdpc3Rlckluc2VydGlvblVuZG9Hcm91cGluZygpCiAKIHZvaWQgUGFn
ZUNsaWVudEltcGw6OmNsZWFyQWxsRWRpdENvbW1hbmRzKCkKIHsKLSAgICBbW21fd2tWaWV3IHVu
ZG9NYW5hZ2VyXSByZW1vdmVBbGxBY3Rpb25zV2l0aFRhcmdldDptX3VuZG9UYXJnZXQuZ2V0KCld
OworICAgIG1faW1wbC0+Y2xlYXJBbGxFZGl0Q29tbWFuZHMoKTsKIH0KIAogYm9vbCBQYWdlQ2xp
ZW50SW1wbDo6Y2FuVW5kb1JlZG8oV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvIHVuZG9PclJlZG8p
CkBAIC01MTUsMTcgKzQ1OCwxNyBAQCBSZWZQdHI8V2ViQ29sb3JQaWNrZXI+IFBhZ2VDbGllbnRJ
bXBsOjpjcmVhdGVDb2xvclBpY2tlcihXZWJQYWdlUHJveHkqIHBhZ2UsIGNvbgogCiB2b2lkIFBh
Z2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxUZXh0SW5kaWNhdG9yPiB0ZXh0SW5k
aWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgbGlmZXRpbWUpCiB7
Ci0gICAgW21fd2tWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3IuZ2V0KCkgd2l0
aExpZmV0aW1lOmxpZmV0aW1lXTsKKyAgICBtX2ltcGwtPnNldFRleHRJbmRpY2F0b3IodGV4dElu
ZGljYXRvci5nZXQoKSwgbGlmZXRpbWUpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpjbGVh
clRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1h
dGlvbiBkaXNtaXNzYWxBbmltYXRpb24pCiB7Ci0gICAgW21fd2tWaWV3IF9jbGVhclRleHRJbmRp
Y2F0b3JXaXRoQW5pbWF0aW9uOmRpc21pc3NhbEFuaW1hdGlvbl07CisgICAgbV9pbXBsLT5jbGVh
clRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKGRpc21pc3NhbEFuaW1hdGlvbik7CiB9CiAKIHZv
aWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9h
dCBwcm9ncmVzcykKIHsKLSAgICBbbV93a1ZpZXcgX3NldFRleHRJbmRpY2F0b3JBbmltYXRpb25Q
cm9ncmVzczpwcm9ncmVzc107CisgICAgbV9pbXBsLT5zZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9u
UHJvZ3Jlc3MocHJvZ3Jlc3MpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjphY2Nlc3NpYmls
aXR5V2ViUHJvY2Vzc1Rva2VuUmVjZWl2ZWQoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRh
KQpAQCAtNTc2LDcgKzUxOSw3IEBAIFBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiBQYWdlQ2xpZW50
SW1wbDo6dGFrZVZpZXdTbmFwc2hvdCgpCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnNlbGVjdGlv
bkRpZENoYW5nZSgpCiB7Ci0gICAgW21fd2tWaWV3IF9zZWxlY3Rpb25DaGFuZ2VkXTsKKyAgICBt
X2ltcGwtPnNlbGVjdGlvbkRpZENoYW5nZSgpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjp3
aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50
JiBldmVudCkKQEAgLTYwMywxMCArNTQ2LDEwIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFBs
dWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dEluCiAK
IHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwKGNvbnN0IERp
Y3Rpb25hcnlQb3B1cEluZm8mIGRpY3Rpb25hcnlQb3B1cEluZm8pCiB7Ci0gICAgW21fd2tWaWV3
IF9wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cF07CisgICAgbV9pbXBsLT5wcmVwYXJlRm9yRGlj
dGlvbmFyeUxvb2t1cCgpOwogCiAgICAgRGljdGlvbmFyeUxvb2t1cDo6c2hvd1BvcHVwKGRpY3Rp
b25hcnlQb3B1cEluZm8sIG1fd2tWaWV3LCBbdGhpc10oVGV4dEluZGljYXRvciYgdGV4dEluZGlj
YXRvcikgewotICAgICAgICBbbV93a1ZpZXcgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRv
ciB3aXRoTGlmZXRpbWU6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOwor
ICAgICAgICBtX2ltcGwtPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgVGV4dEluZGlj
YXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQpOwogICAgIH0pOwogfQogCkBAIC02NjQsNyAr
NjA3LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6aW50cmluc2ljQ29udGVudFNpemVEaWRDaGFu
Z2UoY29uc3QgSW50U2l6ZSYgaW50cmluc2ljQ29udGUKICAgICBpZiAobV93ZWJWaWV3KQogICAg
ICAgICBbbV93ZWJWaWV3IF9zZXRJbnRyaW5zaWNDb250ZW50U2l6ZTppbnRyaW5zaWNDb250ZW50
U2l6ZV07CiAgICAgZWxzZQotICAgICAgICBbbV93a1ZpZXcgX3NldEludHJpbnNpY0NvbnRlbnRT
aXplOmludHJpbnNpY0NvbnRlbnRTaXplXTsKKyAgICAgICAgbV9pbXBsLT5zZXRJbnRyaW5zaWND
b250ZW50U2l6ZShpbnRyaW5zaWNDb250ZW50U2l6ZSk7CiB9CiAKIGJvb2wgUGFnZUNsaWVudElt
cGw6OmV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3JT
dHJpbmcpCkBAIC04MzksNyArNzgyLDcgQEAgQ0dSZWN0IFBhZ2VDbGllbnRJbXBsOjpib3VuZHNP
ZkxheWVySW5MYXllckJhY2tlZFdpbmRvd0Nvb3JkaW5hdGVzKENBTGF5ZXIgKmxheWUKIHZvaWQg
UGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0KGNvbnN0IFdl
YkhpdFRlc3RSZXN1bHREYXRhJiByZXN1bHQsIGJvb2wgY29udGVudFByZXZlbnRzRGVmYXVsdCwg
QVBJOjpPYmplY3QqIHVzZXJEYXRhKQogewogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMDAwCi0gICAgW21fd2tWaWV3IF9kaWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9u
SGl0VGVzdDpyZXN1bHQgY29udGVudFByZXZlbnRzRGVmYXVsdDpjb250ZW50UHJldmVudHNEZWZh
dWx0IHVzZXJEYXRhOnVzZXJEYXRhXTsKKyAgICBtX2ltcGwtPmRpZFBlcmZvcm1JbW1lZGlhdGVB
Y3Rpb25IaXRUZXN0KHJlc3VsdCwgY29udGVudFByZXZlbnRzRGVmYXVsdCwgdXNlckRhdGEpOwog
I2VuZGlmCiB9CiAKQEAgLTg0OSw3ICs3OTIsNyBAQCB2b2lkKiBQYWdlQ2xpZW50SW1wbDo6aW1t
ZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQoUmVmUHRyPAog
ICAgIGlmIChtX3dlYlZpZXcpCiAgICAgICAgIHJldHVybiBbbV93ZWJWaWV3IF9pbW1lZGlhdGVB
Y3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdDp3cmFwcGVyKCpoaXRUZXN0
UmVzdWx0KSB3aXRoVHlwZTooX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSl0eXBlIHVzZXJEYXRhOihp
ZCkodXNlckRhdGEuZ2V0KCkpXTsKICNlbmRpZgotICAgIHJldHVybiBbbV93a1ZpZXcgX2ltbWVk
aWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0OnRvQVBJKGhpdFRl
c3RSZXN1bHQuZ2V0KCkpIHdpdGhUeXBlOnR5cGUgdXNlckRhdGE6dG9BUEkodXNlckRhdGEuZ2V0
KCkpXTsKKyAgICByZXR1cm4gbV9pbXBsLT5pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9s
bGVyRm9ySGl0VGVzdFJlc3VsdCh0b0FQSShoaXRUZXN0UmVzdWx0LmdldCgpKSwgdHlwZSwgdG9B
UEkodXNlckRhdGEuZ2V0KCkpKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd1BsYXRm
b3JtQ29udGV4dE1lbnUoTlNNZW51ICptZW51LCBJbnRQb2ludCBsb2NhdGlvbikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29u
dHJvbGxlci5oCmluZGV4IGUxODRlYTcuLjNmNmE5ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaApA
QCAtMzUsNiArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYlBhZ2VQcm94
eTsKK2NsYXNzIFdlYlZpZXdJbXBsOwogCiBlbnVtIGNsYXNzIEltbWVkaWF0ZUFjdGlvblN0YXRl
IHsKICAgICBOb25lID0gMCwKQEAgLTQ2LDEyICs0NywxMiBAQCBlbnVtIGNsYXNzIEltbWVkaWF0
ZUFjdGlvblN0YXRlIHsKIAogQGNsYXNzIEREQWN0aW9uQ29udGV4dDsKIEBjbGFzcyBRTFByZXZp
ZXdNZW51SXRlbTsKLUBjbGFzcyBXS1ZpZXc7CiAKIEBpbnRlcmZhY2UgV0tJbW1lZGlhdGVBY3Rp
b25Db250cm9sbGVyIDogTlNPYmplY3QgPE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6
ZXJEZWxlZ2F0ZT4gewogQHByaXZhdGUKLSAgICBXZWJLaXQ6OldlYlBhZ2VQcm94eSAqX3BhZ2U7
Ci0gICAgV0tWaWV3ICpfd2tWaWV3OworICAgIFdlYktpdDo6V2ViUGFnZVByb3h5KiBfcGFnZTsK
KyAgICBOU1ZpZXcgKl92aWV3OworICAgIFdlYktpdDo6V2ViVmlld0ltcGwqIF92aWV3SW1wbDsK
IAogICAgIFdlYktpdDo6SW1tZWRpYXRlQWN0aW9uU3RhdGUgX3N0YXRlOwogICAgIFdlYktpdDo6
V2ViSGl0VGVzdFJlc3VsdERhdGEgX2hpdFRlc3RSZXN1bHREYXRhOwpAQCAtNjcsOCArNjgsOCBA
QCBlbnVtIGNsYXNzIEltbWVkaWF0ZUFjdGlvblN0YXRlIHsKICAgICBCT09MIF9oYXNBY3RpdmVJ
bW1lZGlhdGVBY3Rpb247CiB9CiAKLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYktp
dDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KFdLVmlldyAqKXdrVmlldyByZWNvZ25pemVyOihO
U0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICopaW1tZWRpYXRlQWN0aW9uUmVjb2du
aXplcjsKLS0gKHZvaWQpd2lsbERlc3Ryb3lWaWV3OihXS1ZpZXcgKil2aWV3OworLSAoaW5zdGFu
Y2V0eXBlKWluaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooTlNW
aWV3ICopdmlldyB2aWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpdmlld0ltcGwgcmVjb2du
aXplcjooTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWltbWVkaWF0ZUFjdGlv
blJlY29nbml6ZXI7CistICh2b2lkKXdpbGxEZXN0cm95VmlldzooTlNWaWV3ICopdmlldzsKIC0g
KHZvaWQpZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3Q6KGNvbnN0IFdlYktpdDo6V2Vi
SGl0VGVzdFJlc3VsdERhdGEmKWhpdFRlc3RSZXN1bHQgY29udGVudFByZXZlbnRzRGVmYXVsdDoo
Qk9PTCljb250ZW50UHJldmVudHNEZWZhdWx0IHVzZXJEYXRhOihBUEk6Ok9iamVjdCopdXNlckRh
dGE7CiAtICh2b2lkKWRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3M7CiAtIChCT09M
KWhhc0FjdGl2ZUltbWVkaWF0ZUFjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KaW5kZXggMGU4
ZDhmNC4uNDdiNDFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
S0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KQEAgLTMwLDExICszMCwxMSBA
QAogCiAjaW1wb3J0ICJBUElIaXRUZXN0UmVzdWx0LmgiCiAjaW1wb3J0ICJXS05TVVJMRXh0cmFz
LmgiCi0jaW1wb3J0ICJXS1ZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViUGFnZU1lc3NhZ2Vz
LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eU1lc3Nh
Z2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNpbXBvcnQgIldlYlZpZXdJbXBs
LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0RhdGFEZXRlY3RvcnNTUEkuaD4KICNpbXBvcnQgPFdlYkNv
cmUvRGljdGlvbmFyeUxvb2t1cC5oPgogI2ltcG9ydCA8V2ViQ29yZS9HZW9tZXRyeVV0aWxpdGll
cy5oPgpAQCAtNjQsNyArNjQsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBAaW1wbGVt
ZW50YXRpb24gV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyCiAKLS0gKGluc3RhbmNldHlwZSlp
bml0V2l0aFBhZ2U6KFdlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihXS1ZpZXcgKil3a1ZpZXcgcmVj
b2duaXplcjooTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWltbWVkaWF0ZUFj
dGlvblJlY29nbml6ZXIKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYlBhZ2VQcm94
eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihXZWJWaWV3SW1wbCYpdmlld0lt
cGwgcmVjb2duaXplcjooTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKWltbWVk
aWF0ZUFjdGlvblJlY29nbml6ZXIKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRdOwogCkBAIC03
Miw3ICs3Miw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgICAgIHJldHVybiBuaWw7
CiAKICAgICBfcGFnZSA9ICZwYWdlOwotICAgIF93a1ZpZXcgPSB3a1ZpZXc7CisgICAgX3ZpZXcg
PSB2aWV3OworICAgIF92aWV3SW1wbCA9ICZ2aWV3SW1wbDsKICAgICBfdHlwZSA9IGtXS0ltbWVk
aWF0ZUFjdGlvbk5vbmU7CiAgICAgX2ltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXIgPSBpbW1lZGlh
dGVBY3Rpb25SZWNvZ25pemVyOwogICAgIF9oYXNBY3RpdmVJbW1lZGlhdGVBY3Rpb24gPSBOTzsK
QEAgLTgwLDEwICs4MSwxMSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIHJldHVybiBz
ZWxmOwogfQogCi0tICh2b2lkKXdpbGxEZXN0cm95VmlldzooV0tWaWV3ICopdmlldworLSAodm9p
ZCl3aWxsRGVzdHJveVZpZXc6KE5TVmlldyAqKXZpZXcKIHsKICAgICBfcGFnZSA9IG51bGxwdHI7
Ci0gICAgX3drVmlldyA9IG5pbDsKKyAgICBfdmlldyA9IG5pbDsKKyAgICBfdmlld0ltcGwgPSBu
dWxscHRyOwogICAgIF9oaXRUZXN0UmVzdWx0RGF0YSA9IFdlYkhpdFRlc3RSZXN1bHREYXRhKCk7
CiAgICAgX2NvbnRlbnRQcmV2ZW50c0RlZmF1bHQgPSBOTzsKICAgICAKQEAgLTE2OCw5ICsxNzAs
OSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIGlmIChpbW1lZGlhdGVBY3Rpb25SZWNv
Z25pemVyICE9IF9pbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyKQogICAgICAgICByZXR1cm47CiAK
LSAgICBbX3drVmlldyBfcHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl07CisgICAg
X3ZpZXdJbXBsLT5wcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uKCk7CiAKLSAgICBb
X3drVmlldyBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c107CisgICAgX3ZpZXdJ
bXBsLT5kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbih0cnVl
KTsKIAogICAgIF9wYWdlLT5zZXRNYWludGFpbnNJbmFjdGl2ZVNlbGVjdGlvbih0cnVlKTsKIApA
QCAtMjMxLDcgKzIzMyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKICAgICBfcGFnZS0+
aW1tZWRpYXRlQWN0aW9uRGlkQ2FuY2VsKCk7CiAKLSAgICBbX3drVmlldyBfY2FuY2VsSW1tZWRp
YXRlQWN0aW9uQW5pbWF0aW9uXTsKKyAgICBfdmlld0ltcGwtPmNhbmNlbEltbWVkaWF0ZUFjdGlv
bkFuaW1hdGlvbigpOwogCiAgICAgX3BhZ2UtPnNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9n
cmVzcygwKTsKICAgICBbc2VsZiBfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZV07CkBAIC0yNDUs
NyArMjQ3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogICAgIF9wYWdlLT5pbW1lZGlh
dGVBY3Rpb25EaWRDb21wbGV0ZSgpOwogCi0gICAgW193a1ZpZXcgX2NvbXBsZXRlSW1tZWRpYXRl
QWN0aW9uQW5pbWF0aW9uXTsKKyAgICBfdmlld0ltcGwtPmNvbXBsZXRlSW1tZWRpYXRlQWN0aW9u
QW5pbWF0aW9uKCk7CiAKICAgICBfcGFnZS0+c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dy
ZXNzKDEpOwogfQpAQCAtMzQ1LDEyICszNDcsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsK
IAogLSAoTlNWaWV3ICopbWVudUl0ZW06KE5TTWVudUl0ZW0gKiltZW51SXRlbSB2aWV3QXRTY3Jl
ZW5Qb2ludDooTlNQb2ludClzY3JlZW5Qb2ludAogewotICAgIHJldHVybiBfd2tWaWV3OworICAg
IHJldHVybiBfdmlldzsKIH0KIAogLSAoaWQ8UUxQcmV2aWV3SXRlbT4pbWVudUl0ZW06KE5TTWVu
dUl0ZW0gKiltZW51SXRlbSBwcmV2aWV3SXRlbUF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQKIHsKLSAg
ICBpZiAoIV93a1ZpZXcpCisgICAgaWYgKCFfdmlldykKICAgICAgICAgcmV0dXJuIG5pbDsKIAog
ICAgIFJlZlB0cjxBUEk6OkhpdFRlc3RSZXN1bHQ+IGhpdFRlc3RSZXN1bHQgPSBbc2VsZiBfd2Vi
SGl0VGVzdFJlc3VsdF07CkBAIC0zNjksMjAgKzM3MSwyMCBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OwogCiAtIChOU1JlY3QpbWVudUl0ZW06KE5TTWVudUl0ZW0gKiltZW51SXRlbSBpdGVtRnJh
bWVGb3JQb2ludDooTlNQb2ludClwb2ludAogewotICAgIGlmICghX3drVmlldykKKyAgICBpZiAo
IV92aWV3KQogICAgICAgICByZXR1cm4gTlNaZXJvUmVjdDsKIAogICAgIFJlZlB0cjxBUEk6Okhp
dFRlc3RSZXN1bHQ+IGhpdFRlc3RSZXN1bHQgPSBbc2VsZiBfd2ViSGl0VGVzdFJlc3VsdF07Ci0g
ICAgcmV0dXJuIFtfd2tWaWV3IGNvbnZlcnRSZWN0OmhpdFRlc3RSZXN1bHQtPmVsZW1lbnRCb3Vu
ZGluZ0JveCgpIHRvVmlldzpuaWxdOworICAgIHJldHVybiBbX3ZpZXcgY29udmVydFJlY3Q6aGl0
VGVzdFJlc3VsdC0+ZWxlbWVudEJvdW5kaW5nQm94KCkgdG9WaWV3Om5pbF07CiB9CiAKIC0gKE5T
U2l6ZSltZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtIG1heFNpemVGb3JQb2ludDooTlNQ
b2ludClwb2ludAogewotICAgIGlmICghX3drVmlldykKKyAgICBpZiAoIV92aWV3KQogICAgICAg
ICByZXR1cm4gTlNaZXJvU2l6ZTsKIAotICAgIE5TU2l6ZSBzY3JlZW5TaXplID0gX3drVmlldy53
aW5kb3cuc2NyZWVuLmZyYW1lLnNpemU7Ci0gICAgRmxvYXRSZWN0IGxhcmdlc3RSZWN0ID0gbGFy
Z2VzdFJlY3RXaXRoQXNwZWN0UmF0aW9JbnNpZGVSZWN0KHNjcmVlblNpemUud2lkdGggLyBzY3Jl
ZW5TaXplLmhlaWdodCwgX3drVmlldy5ib3VuZHMpOworICAgIE5TU2l6ZSBzY3JlZW5TaXplID0g
X3ZpZXcud2luZG93LnNjcmVlbi5mcmFtZS5zaXplOworICAgIEZsb2F0UmVjdCBsYXJnZXN0UmVj
dCA9IGxhcmdlc3RSZWN0V2l0aEFzcGVjdFJhdGlvSW5zaWRlUmVjdChzY3JlZW5TaXplLndpZHRo
IC8gc2NyZWVuU2l6ZS5oZWlnaHQsIF92aWV3LmJvdW5kcyk7CiAgICAgcmV0dXJuIE5TTWFrZVNp
emUobGFyZ2VzdFJlY3Qud2lkdGgoKSAqIDAuNzUsIGxhcmdlc3RSZWN0LmhlaWdodCgpICogMC43
NSk7CiB9CiAKQEAgLTQwMyw3ICs0MDUsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiAg
ICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gcGFnZSA9IF9wYWdlOwogICAgIFBhZ2VPdmVybGF5OjpQ
YWdlT3ZlcmxheUlEIG92ZXJsYXlJRCA9IF9oaXRUZXN0UmVzdWx0RGF0YS5kZXRlY3RlZERhdGFP
cmlnaW5hdGluZ1BhZ2VPdmVybGF5OwotICAgIF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IFthY3Rp
b25Db250ZXh0IGNvbnRleHRGb3JWaWV3Ol93a1ZpZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25T
dGFydGVkSGFuZGxlcjpeKCkgeworICAgIF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IFthY3Rpb25D
b250ZXh0IGNvbnRleHRGb3JWaWV3Ol92aWV3IGFsdE1vZGU6WUVTIGludGVyYWN0aW9uU3RhcnRl
ZEhhbmRsZXI6XigpIHsKICAgICAgICAgcGFnZS0+c2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGF0
YURldGVjdG9yc0RpZFByZXNlbnRVSShvdmVybGF5SUQpKTsKICAgICB9IGludGVyYWN0aW9uQ2hh
bmdlZEhhbmRsZXI6XigpIHsKICAgICAgICAgaWYgKF9oaXRUZXN0UmVzdWx0RGF0YS5kZXRlY3Rl
ZERhdGFUZXh0SW5kaWNhdG9yKQpAQCAtNDE0LDcgKzQxNiw3IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJLaXQ7CiAgICAgICAgIFtzZWxmIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRlXTsKICAgICB9
XTsKIAotICAgIFtfY3VycmVudEFjdGlvbkNvbnRleHQgc2V0SGlnaGxpZ2h0RnJhbWU6W193a1Zp
ZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46W193a1ZpZXcgY29udmVydFJlY3Q6X2hpdFRl
c3RSZXN1bHREYXRhLmRldGVjdGVkRGF0YUJvdW5kaW5nQm94IHRvVmlldzpuaWxdXV07CisgICAg
W19jdXJyZW50QWN0aW9uQ29udGV4dCBzZXRIaWdobGlnaHRGcmFtZTpbX3ZpZXcud2luZG93IGNv
bnZlcnRSZWN0VG9TY3JlZW46W192aWV3IGNvbnZlcnRSZWN0Ol9oaXRUZXN0UmVzdWx0RGF0YS5k
ZXRlY3RlZERhdGFCb3VuZGluZ0JveCB0b1ZpZXc6bmlsXV1dOwogCiAgICAgTlNBcnJheSAqbWVu
dUl0ZW1zID0gW1tnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXSBtZW51
SXRlbXNGb3JSZXN1bHQ6W19jdXJyZW50QWN0aW9uQ29udGV4dCBtYWluUmVzdWx0XSBhY3Rpb25D
b250ZXh0Ol9jdXJyZW50QWN0aW9uQ29udGV4dC5nZXQoKV07CiAKQEAgLTQzNSw3ICs0MzcsNyBA
QCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIFthY3Rpb25Db250ZXh0IHNldEltbWVkaWF0
ZTpZRVNdOwogCiAgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gcGFnZSA9IF9wYWdlOwotICAgIF9j
dXJyZW50QWN0aW9uQ29udGV4dCA9IFthY3Rpb25Db250ZXh0IGNvbnRleHRGb3JWaWV3Ol93a1Zp
ZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25TdGFydGVkSGFuZGxlcjpeKCkgeworICAgIF9jdXJy
ZW50QWN0aW9uQ29udGV4dCA9IFthY3Rpb25Db250ZXh0IGNvbnRleHRGb3JWaWV3Ol92aWV3IGFs
dE1vZGU6WUVTIGludGVyYWN0aW9uU3RhcnRlZEhhbmRsZXI6XigpIHsKICAgICB9IGludGVyYWN0
aW9uQ2hhbmdlZEhhbmRsZXI6XigpIHsKICAgICAgICAgaWYgKF9oaXRUZXN0UmVzdWx0RGF0YS5s
aW5rVGV4dEluZGljYXRvcikKICAgICAgICAgICAgIHBhZ2UtPnNldFRleHRJbmRpY2F0b3IoX2hp
dFRlc3RSZXN1bHREYXRhLmxpbmtUZXh0SW5kaWNhdG9yLT5kYXRhKCkpOwpAQCAtNDQzLDcgKzQ0
NSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgICAgIFtzZWxmIF9jbGVhckltbWVk
aWF0ZUFjdGlvblN0YXRlXTsKICAgICB9XTsKIAotICAgIFtfY3VycmVudEFjdGlvbkNvbnRleHQg
c2V0SGlnaGxpZ2h0RnJhbWU6W193a1ZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46W193
a1ZpZXcgY29udmVydFJlY3Q6X2hpdFRlc3RSZXN1bHREYXRhLmVsZW1lbnRCb3VuZGluZ0JveCB0
b1ZpZXc6bmlsXV1dOworICAgIFtfY3VycmVudEFjdGlvbkNvbnRleHQgc2V0SGlnaGxpZ2h0RnJh
bWU6W192aWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOltfdmlldyBjb252ZXJ0UmVjdDpf
aGl0VGVzdFJlc3VsdERhdGEuZWxlbWVudEJvdW5kaW5nQm94IHRvVmlldzpuaWxdXV07CiAKICAg
ICBSZWZQdHI8QVBJOjpIaXRUZXN0UmVzdWx0PiBoaXRUZXN0UmVzdWx0ID0gW3NlbGYgX3dlYkhp
dFRlc3RSZXN1bHRdOwogICAgIE5TQXJyYXkgKm1lbnVJdGVtcyA9IFtbZ2V0RERBY3Rpb25zTWFu
YWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gbWVudUl0ZW1zRm9yVGFyZ2V0VVJMOmhpdFRlc3RS
ZXN1bHQtPmFic29sdXRlTGlua1VSTCgpIGFjdGlvbkNvbnRleHQ6X2N1cnJlbnRBY3Rpb25Db250
ZXh0LmdldCgpXTsKQEAgLTQ2NSwxMCArNDY3LDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7
CiAgICAgaWYgKCFkaWN0aW9uYXJ5UG9wdXBJbmZvLmF0dHJpYnV0ZWRTdHJpbmcpCiAgICAgICAg
IHJldHVybiBuaWw7CiAKLSAgICBbX3drVmlldyBfcHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXBd
OworICAgIF92aWV3SW1wbC0+cHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXAoKTsKIAotICAgIHJl
dHVybiBEaWN0aW9uYXJ5TG9va3VwOjphbmltYXRpb25Db250cm9sbGVyRm9yUG9wdXAoZGljdGlv
bmFyeVBvcHVwSW5mbywgX3drVmlldywgW3NlbGZdKFRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0
b3IpIHsKLSAgICAgICAgW193a1ZpZXcgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3
aXRoTGlmZXRpbWU6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOworICAg
IHJldHVybiBEaWN0aW9uYXJ5TG9va3VwOjphbmltYXRpb25Db250cm9sbGVyRm9yUG9wdXAoZGlj
dGlvbmFyeVBvcHVwSW5mbywgX3ZpZXcsIFtzZWxmXShUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNh
dG9yKSB7CisgICAgICAgIF92aWV3SW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9y
LCBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudCk7CiAgICAgfSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263868</attachid>
            <date>2015-10-22 14:52:26 -0700</date>
            <delta_ts>2015-10-22 16:09:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-150174-20151022145141.patch</filename>
            <type>text/plain</type>
            <size>132802</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxNDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggOWM3MDEzODcxYzAyMGRh
ZmYzZWNiYzFiNjE2ZWUzZTc3NmM4YWQ1OC4uNzJhMWU5OTcxMTIyZjAxZDkzZTg0OTkzNGUxZjQ3
NzJmNjAxODg2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzNyBAQAorMjAxNS0xMC0yMiAgVGlt
IEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBXS1ZpZXcgYmVp
bmcgaW5zaWRlIFdLV2ViVmlldyBsZWFkcyB0byB3ZWlyZCBBUEkgaXNzdWVzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAxNzQKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IHJlbmV3R1N0YXRlXSk6CisgICAgICAgICgt
W1dLVmlldyB3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZDp0eXBlczpdKToKKyAgICAgICAgKC1b
V0tWaWV3IGNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWE6XSk6CisgICAgICAgICgtW1dLVmll
dyBzY3JvbGxXaGVlbDpdKToKKyAgICAgICAgKC1bV0tWaWV3IHN3aXBlV2l0aEV2ZW50Ol0pOgor
ICAgICAgICAoLVtXS1ZpZXcgbW91c2VNb3ZlZDpdKToKKyAgICAgICAgKC1bV0tWaWV3IG1vdXNl
RG93bjpdKToKKyAgICAgICAgKC1bV0tWaWV3IG1vdXNlVXA6XSk6CisgICAgICAgICgtW1dLVmll
dyBtb3VzZURyYWdnZWQ6XSk6CisgICAgICAgICgtW1dLVmlldyBwcmVzc3VyZUNoYW5nZVdpdGhF
dmVudDpdKToKKyAgICAgICAgKC1bV0tWaWV3IGFjY2VwdHNGaXJzdE1vdXNlOl0pOgorICAgICAg
ICAoLVtXS1ZpZXcgc2hvdWxkRGVsYXlXaW5kb3dPcmRlcmluZ0ZvckV2ZW50Ol0pOgorICAgICAg
ICAoLVtXS1ZpZXcgcGVyZm9ybUtleUVxdWl2YWxlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBr
ZXlVcDpdKToKKyAgICAgICAgKC1bV0tWaWV3IGtleURvd246XSk6CisgICAgICAgICgtW1dLVmll
dyBmbGFnc0NoYW5nZWQ6XSk6CisgICAgICAgICgtW1dLVmlldyBfc3VwZXJRdWlja0xvb2tXaXRo
RXZlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBfYWRkRm9udFBhbmVsT2JzZXJ2ZXJdKToKKyAg
ICAgICAgKC1bV0tWaWV3IHZpZXdXaWxsTW92ZVRvV2luZG93Ol0pOgorICAgICAgICAoLVtXS1Zp
ZXcgdmlld0RpZE1vdmVUb1dpbmRvd10pOgorICAgICAgICAoLVtXS1ZpZXcgdmlld0RpZENoYW5n
ZUJhY2tpbmdQcm9wZXJ0aWVzXSk6CisgICAgICAgICgtW1dLVmlldyBlbmFibGVBY2Nlc3NpYmls
aXR5SWZOZWNlc3NhcnldKToKKyAgICAgICAgKC1bV0tWaWV3IHF1aWNrTG9va1dpdGhFdmVudDpd
KToKKyAgICAgICAgKC1bV0tWaWV3IF9jb2xvclNwYWNlXSk6CisgICAgICAgICgtW1dLVmlldyBf
ZGlkUmVsYXVuY2hQcm9jZXNzXSk6CisgICAgICAgICgtW1dLVmlldyBfc2V0VGV4dEluZGljYXRv
cjpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOndpdGhMaWZldGltZTpd
KToKKyAgICAgICAgKC1bV0tWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOl0p
OgorICAgICAgICAoLVtXS1ZpZXcgX3NldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczpd
KToKKyAgICAgICAgKC1bV0tWaWV3IGluaXRXaXRoRnJhbWU6cHJvY2Vzc1Bvb2w6Y29uZmlndXJh
dGlvbjp3ZWJWaWV3Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgX2RpZFBlcmZvcm1JbW1lZGlhdGVB
Y3Rpb25IaXRUZXN0OmNvbnRlbnRQcmV2ZW50c0RlZmF1bHQ6dXNlckRhdGE6XSk6CisgICAgICAg
ICgtW1dLVmlldyBfaW50ZXJuYWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9y
SGl0VGVzdFJlc3VsdDp3aXRoVHlwZTp1c2VyRGF0YTpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9p
bnRlcm5hbFByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25dKToKKyAgICAgICAgKC1b
V0tWaWV3IF9pbnRlcm5hbENhbmNlbEltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl0pOgorICAgICAg
ICAoLVtXS1ZpZXcgX2ludGVybmFsQ29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25dKToK
KyAgICAgICAgKC1bV0tWaWV3IF9pbnRlcm5hbERpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdp
bmRvd3NXaXRoQW5pbWF0aW9uOl0pOgorICAgICAgICAoLVtXS1ZpZXcgYmVnaW5EZWZlcnJpbmdW
aWV3SW5XaW5kb3dDaGFuZ2VzXSk6CisgICAgICAgICgtW1dLVmlldyBlbmREZWZlcnJpbmdWaWV3
SW5XaW5kb3dDaGFuZ2VzXSk6CisgICAgICAgICgtW1dLVmlldyBlbmREZWZlcnJpbmdWaWV3SW5X
aW5kb3dDaGFuZ2VzU3luY10pOgorICAgICAgICAoLVtXS1ZpZXcgX3ByZXBhcmVGb3JNb3ZlVG9X
aW5kb3c6d2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS1ZpZXcgaXNEZWZl
cnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzXSk6CisgICAgICAgICgtW1dLVmlldyBhbGxvd3NMaW5r
UHJldmlld10pOgorICAgICAgICAoLVtXS1ZpZXcgc2V0QWxsb3dzTGlua1ByZXZpZXc6XSk6Cisg
ICAgICAgICgtW1dLVmlldyBfc2V0SWdub3Jlc0FsbEV2ZW50czpdKToKKyAgICAgICAgKC1bV0tW
aWV3IF9zZXRJZ25vcmVzTm9uV2hlZWxNb3VzZUV2ZW50czpdKToKKyAgICAgICAgKC1bV0tWaWV3
IF9zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHM6XSk6CisgICAgICAgICgtW1dLVmlldyBfaWdub3Jl
c05vbldoZWVsRXZlbnRzXSk6CisgICAgICAgICgtW1dLVmlldyBfaWdub3Jlc0FsbEV2ZW50c10p
OgorICAgICAgICAoLVtXS1ZpZXcgX3NldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I6XSk6Cisg
ICAgICAgICgtW1dLVmlldyBfb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3Rvcl0pOgorICAgICAgICAo
LVtXS1ZpZXcgX3NldFRvcENvbnRlbnRJbnNldDpdKToKKyAgICAgICAgKC1bV0tWaWV3IF90b3BD
b250ZW50SW5zZXRdKToKKyAgICAgICAgKC1bV0tWaWV3IF9kaXNtaXNzQ29udGVudFJlbGF0aXZl
Q2hpbGRXaW5kb3dzXSk6CisgICAgICAgICgtW1dLVmlldyBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2
ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb246XSk6CisgICAgICAgICgtW1dLVmlldyBfc2V0QXV0
b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX2F1
dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0c10pOgorICAgICAgICAoLVtXS1dpbmRvd1Zp
c2liaWxpdHlPYnNlcnZlciBpbml0V2l0aFZpZXc6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dL
V2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0YXJ0T2JzZXJ2aW5nOl0pOiBEZWxldGVkLgorICAg
ICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBzdG9wT2JzZXJ2aW5nOl0pOiBEZWxl
dGVkLgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBfd2luZG93RGlkT3Jk
ZXJPblNjcmVlbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2Jz
ZXJ2ZXIgX3dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S1ZpZXcgZGVhbGxvY10pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3VwZGF0ZVdpbmRv
d0FuZFZpZXdGcmFtZXNdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IHVwZGF0ZUZvbnRQ
YW5lbElmTmVlZGVkXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfc2VsZWN0aW9uQ2hh
bmdlZF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgYWRkV2luZG93T2JzZXJ2ZXJzRm9y
V2luZG93Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgcmVtb3ZlV2luZG93T2JzZXJ2
ZXJzXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBkb1dpbmRvd0RpZENoYW5nZVNjcmVl
bl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZEJlY29tZUtleTpdKTog
RGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWRDaGFuZ2VTY3JlZW46XSk6IERl
bGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfd2luZG93RGlkQ2hhbmdlTGF5ZXJIb3N0aW5nOl0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZFJlc2lnbktleTpdKTogRGVs
ZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWRNaW5pYXR1cml6ZTpdKTogRGVsZXRl
ZC4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWREZW1pbmlhdHVyaXplOl0pOiBEZWxldGVk
LgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZE1vdmU6XSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dLVmlldyBfd2luZG93RGlkUmVzaXplOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1Zp
ZXcgX3dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1Zp
ZXcgX3dpbmRvd0RpZE9yZGVyT25TY3JlZW46XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmll
dyBfd2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXM6XSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dLVmlldyBfd2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3RhdGU6XSk6IERlbGV0ZWQuCisg
ICAgICAgICgtW1dLVmlldyBfcHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXBdKTogRGVsZXRlZC4K
KyAgICAgICAgKC1bV0tWaWV3IF9kaWN0aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTpdKTog
RGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9hY2Nlc3NpYmlsaXR5UmVnaXN0ZXJVSVByb2Nl
c3NUb2tlbnNdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9wb3N0RmFrZU1vdXNlTW92
ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1Zp
ZXcgX2ludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dL
VmlldyBfcHJlZmVyZW5jZXNEaWRDaGFuZ2VdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3
IF90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb25dKTogRGVsZXRlZC4KKyAgICAgICAgKC1b
V0tWaWV3IF91cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWNdKTogRGVsZXRlZC4KKyAgICAg
ICAgKC1bV0tWaWV3IG9ic2VydmVWYWx1ZUZvcktleVBhdGg6b2ZPYmplY3Q6Y2hhbmdlOmNvbnRl
eHQ6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfZGlzcGF0Y2hTZXRUb3BDb250ZW50
SW5zZXRdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRl
cm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRvcENvbnRlbnRJbnNldCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpvdmVycmlkZURldmljZVNjYWxlRmFjdG9yKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmlzRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdl
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp0YXJnZXRXaW5kb3dGb3JNb3ZlUHJl
cGFyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bGFzdFByZXNzdXJlRXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YWxsb3dzTGlua1ByZXZpZXcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aWdub3Jlc05vbldoZWVsRXZlbnRzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omlnbm9yZXNBbGxFdmVudHMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3JlYXRlV2Vha1B0cik6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoU09GVF9MSU5LX0NPTlNUQU5UX01BWV9G
QUlMKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgaW5pdFdpdGhWaWV3
OmltcGw6XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIGRlYWxsb2Nd
KToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3RhcnRPYnNlcnZpbmc6
XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0b3BPYnNlcnZpbmc6
XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0YXJ0T2JzZXJ2aW5n
Rm9udFBhbmVsXSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0YXJ0
T2JzZXJ2aW5nTG9va3VwRGlzbWlzc2FsXSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0
eU9ic2VydmVyIF93aW5kb3dEaWRPcmRlck9uU2NyZWVuOl0pOgorICAgICAgICAoLVtXS1dpbmRv
d1Zpc2liaWxpdHlPYnNlcnZlciBfd2luZG93RGlkT3JkZXJPZmZTY3JlZW46XSk6CisgICAgICAg
ICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRCZWNvbWVLZXk6XSk6Cisg
ICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRSZXNpZ25LZXk6
XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRNaW5p
YXR1cml6ZTpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgX3dpbmRv
d0RpZERlbWluaWF0dXJpemU6XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2Vy
dmVyIF93aW5kb3dEaWRNb3ZlOl0pOgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNl
cnZlciBfd2luZG93RGlkUmVzaXplOl0pOgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlP
YnNlcnZlciBfd2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXM6XSk6CisgICAgICAgICgt
W1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRDaGFuZ2VTY3JlZW46XSk6Cisg
ICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRDaGFuZ2VMYXll
ckhvc3Rpbmc6XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5k
b3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0ZTpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmls
aXR5T2JzZXJ2ZXIgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29udGV4
dDpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgX2RpY3Rpb25hcnlM
b29rdXBQb3BvdmVyV2lsbENsb3NlOl0pOgorICAgICAgICAoLVtXS0VkaXRDb21tYW5kT2JqQyBp
bml0V2l0aFdlYkVkaXRDb21tYW5kUHJveHk6XSk6CisgICAgICAgICgtW1dLRWRpdENvbW1hbmRP
YmpDIGNvbW1hbmRdKToKKyAgICAgICAgKC1bV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQyB1bmRvRWRp
dGluZzpdKToKKyAgICAgICAgKC1bV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQyByZWRvRWRpdGluZzpd
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZpZXdJbXBsKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6On5XZWJWaWV3SW1wbCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpiZWNvbWVGaXJzdFJlc3BvbmRlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpyZXNpZ25GaXJzdFJlc3BvbmRlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpyZW5ld0dTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVX
aW5kb3dBbmRWaWV3RnJhbWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEF1
dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjp1cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWMpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6c2V0VG9wQ29udGVudEluc2V0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmRpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6aW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkT3JkZXJPZmZTY3JlZW4pOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkT3JkZXJPblNjcmVlbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRCZWNvbWVLZXkpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkUmVzaWduS2V5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OndpbmRvd0RpZE1pbmlhdHVyaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OndpbmRvd0RpZERlbWluaWF0dXJpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6d2luZG93RGlkTW92ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5k
b3dEaWRSZXNpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkQ2hh
bmdlQmFja2luZ1Byb3BlcnRpZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2lu
ZG93RGlkQ2hhbmdlU2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OndpbmRv
d0RpZENoYW5nZUxheWVySG9zdGluZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3
aW5kb3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjp2aWV3V2lsbE1vdmVUb1dpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojp2aWV3RGlkTW92ZVRvV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZp
ZXdEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpwb3N0RmFrZU1vdXNlTW92ZWRFdmVudEZvckZsYWdzQ2hhbmdlZEV2ZW50KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNvbG9yU3BhY2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6YmVnaW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hh
bmdlc1N5bmMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cHJlcGFyZUZvck1vdmVU
b1dpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwcmVzc3VyZUNoYW5nZVdp
dGhFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppc0VkaXRhYmxlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmV4ZWN1dGVFZGl0Q29tbWFuZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZWdpc3RlckVkaXRDb21tYW5kKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmNsZWFyQWxsRWRpdENvbW1hbmRzKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OndyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2VsZWN0aW9uRGlkQ2hhbmdlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnN0YXJ0T2JzZXJ2aW5nRm9udFBhbmVsKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZUZvbnRQYW5lbElmTmVlZGVkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2lu
ZG93cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpxdWlja0xvb2tXaXRoRXZlbnQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cHJlcGFyZUZvckRpY3Rpb25hcnlMb29r
dXApOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0QWxsb3dzTGlua1ByZXZpZXcp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9u
Q29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6cHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpjYW5jZWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24pOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SWdub3Jlc05vbldoZWVsRXZlbnRzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldElnbm9yZXNBbGxFdmVudHMpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YWNjZXNzaWJpbGl0eVJlZ2lzdGVyVUlQcm9jZXNz
VG9rZW5zKToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OmFjdGl2ZVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpwcmVmZXJlbmNlc0RpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGll
bnRJbXBsOjpyZWdpc3RlckVkaXRDb21tYW5kKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OmNsZWFyQWxsRWRpdENvbW1hbmRzKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OnNlbGVjdGlvbkRpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjpkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cCk6CisgICAgICAgICgtW1dLRWRpdENvbW1h
bmRPYmpDIGluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTpdKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bV0tFZGl0Q29tbWFuZE9iakMgY29tbWFuZF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS0Vk
aXRvclVuZG9UYXJnZXRPYmpDIHVuZG9FZGl0aW5nOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S0VkaXRvclVuZG9UYXJnZXRPYmpDIHJlZG9FZGl0aW5nOl0pOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6UGFnZUNsaWVudEltcGwpOiBEZWxldGVkLgorICAgICAg
ICBNb3ZlIG1vcmUgdGhpbmdzIHRvIFdlYlZpZXdJbXBsLgorICAgICAgICBUaGlzIGFsc28gaW50
cm9kdWNlcyBhbiB1bmZvcnR1bmF0ZSBwYXR0ZXJuIHRoYXQgaXMgcmVxdWlyZWQgZm9yIHRoaW5n
cyB3aGljaAorICAgICAgICBjbGllbnRzIG92ZXJyaWRlIG9uIFdLVmlldywgd2hlcmUgd2UgaGF2
ZSBhIGZsb3cgbGlrZSB0aGlzOgorICAgICAgICAgICAgICAgIC0gc29tZWJvZHkgKFBhZ2VDbGll
bnQsIGV0Yy4pIGNhbGxzIFdlYlZpZXdJbXBsOjp4CisgICAgICAgICAgICAgICAgLSBXZWJWaWV3
SW1wbDo6eCBkb2VzIG5vdGhpbmcgZXhjZXB0IGNhbGwgW1dLVmlldyBfeF0KKyAgICAgICAgICAg
ICAgICAtIFtXS1ZpZXcgX3hdIGNhbGxzIFdlYlZpZXdJbXBsOjp4RnJvbVZpZXdPbmx5LCB3aGlj
aCBkb2VzIHRoZSByZWFsIHdvcmsKKyAgICAgICAgQXMgbG9uZyBhcyBubyBjbGllbnRzIGNhbGwg
dGhlIC1Gcm9tVmlld09ubHkgdmFyaWFudCwgdGhpcyB3aWxsIG1lYW4gdGhhdAorICAgICAgICBh
bGwgY2FsbGVycyBhcmUgYm90dGxlbmVja2VkIHRocm91Z2ggdGhlIG92ZXJyaWRhYmxlIFdLVmll
dyBtZXRob2QuCisgICAgICAgIEhvdyB0aGlzIHdvcmtzIHdpdGggV0tXZWJWaWV3LCBJIGFtIG5v
dCBzdXJlIHlldC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25D
b250cm9sbGVyLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNv
bnRyb2xsZXIubW06CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBpbml0
V2l0aFBhZ2U6dmlldzp2aWV3SW1wbDpyZWNvZ25pemVyOl0pOgorICAgICAgICAoLVtXS0ltbWVk
aWF0ZUFjdGlvbkNvbnRyb2xsZXIgd2lsbERlc3Ryb3lWaWV3Ol0pOgorICAgICAgICAoLVtXS0lt
bWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcldpbGxQcmVw
YXJlOl0pOgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgaW1tZWRpYXRl
QWN0aW9uUmVjb2duaXplckRpZENhbmNlbEFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tJbW1l
ZGlhdGVBY3Rpb25Db250cm9sbGVyIGltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJEaWRDb21wbGV0
ZUFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIG1l
bnVJdGVtOnZpZXdBdFNjcmVlblBvaW50Ol0pOgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlv
bkNvbnRyb2xsZXIgbWVudUl0ZW06cHJldmlld0l0ZW1BdFBvaW50Ol0pOgorICAgICAgICAoLVtX
S0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgbWVudUl0ZW06aXRlbUZyYW1lRm9yUG9pbnQ6XSk6
CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBtZW51SXRlbTptYXhTaXpl
Rm9yUG9pbnQ6XSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBfYW5p
bWF0aW9uQ29udHJvbGxlckZvckRhdGFEZXRlY3RlZFRleHRdKToKKyAgICAgICAgKC1bV0tJbW1l
ZGlhdGVBY3Rpb25Db250cm9sbGVyIF9hbmltYXRpb25Db250cm9sbGVyRm9yRGF0YURldGVjdGVk
TGlua10pOgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgX2FuaW1hdGlv
bkNvbnRyb2xsZXJGb3JUZXh0XSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlciBpbml0V2l0aFBhZ2U6dmlldzpyZWNvZ25pemVyOl0pOiBEZWxldGVkLgorICAgICAgICBL
ZWVwIGEgZ2VuZXJpYyBOU1ZpZXcsIHVzZSB0aGUgV2ViVmlld0ltcGwgZm9yIFdLKlZpZXcgcmVs
YXRlZCB0aGluZ3MuCisKIDIwMTUtMTAtMjIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5z
ZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBJbml0aWFsIE5TVVJMU2Vzc2lvbiBXZWJSZXNvdXJj
ZUxvYWRlciBpbXBsZW1lbnRhdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tCmluZGV4IDhjNjI1ZTlmMWY5NDUyMjVlNmM0YzE2NTNmYjdkZTYyZjhiY2IwNjIu
LmQ5OTQ2ODY5Yzc1ODdlNGY1YWNkMmFlOTFkYmUxMjFmMWNiN2M2MTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTM2LDcgKzM2LDYgQEAKICNpbXBv
cnQgIkFQSUxlZ2FjeUNvbnRleHRIaXN0b3J5Q2xpZW50LmgiCiAjaW1wb3J0ICJBUElQYWdlQ29u
ZmlndXJhdGlvbi5oIgogI2ltcG9ydCAiQXR0cmlidXRlZFN0cmluZy5oIgotI2ltcG9ydCAiQ29s
b3JTcGFjZURhdGEuaCIKICNpbXBvcnQgIkRhdGFSZWZlcmVuY2UuaCIKICNpbXBvcnQgIkVkaXRp
bmdSYW5nZS5oIgogI2ltcG9ydCAiRWRpdG9yU3RhdGUuaCIKQEAgLTU5LDcgKzU4LDYgQEAKICNp
bXBvcnQgIlZpZXdTbmFwc2hvdFN0b3JlLmgiCiAjaW1wb3J0ICJXS0FQSUNhc3QuaCIKICNpbXBv
cnQgIldLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCIKLSNpbXBvcnQgIldLSW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tMYXlvdXRNb2RlLmgiCiAjaW1wb3J0ICJX
S1ByaW50aW5nVmlldy5oIgogI2ltcG9ydCAiV0tQcm9jZXNzUG9vbEludGVybmFsLmgiCkBAIC05
NiwxNSArOTQsMTIgQEAKICNpbXBvcnQgPFdlYkNvcmUvRmlsZVN5c3RlbS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvY2FsaXplZFN0cmlu
Z3MuaD4KLSNpbXBvcnQgPFdlYkNvcmUvTG9va3VwU1BJLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL05T
SW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXJTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUv
TlNNZW51U1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtU2NyZWVuLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1Jl
Z2lvbi5oPgogI2ltcG9ydCA8V2ViQ29yZS9SdW50aW1lQXBwbGljYXRpb25DaGVja3MuaD4KICNp
bXBvcnQgPFdlYkNvcmUvU2hhcmVkQnVmZmVyLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5r
aW5nLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZS5oPgogI2lt
cG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRJbmRp
Y2F0b3JXaW5kb3cuaD4KQEAgLTE0OSw4ICsxNDQsNiBAQCBDR1NDb25uZWN0aW9uSUQgQ0dTTWFp
bkNvbm5lY3Rpb25JRCh2b2lkKTsKIENHRXJyb3IgQ0dTR2V0U2NyZWVuUmVjdEZvcldpbmRvdyhD
R1NDb25uZWN0aW9uSUQgY2lkLCBDR1NXaW5kb3dJRCB3aWQsIENHUmVjdCAqcmVjdCk7CiB9Owog
Ci1TT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUwoTG9va3VwLCBMVU5vdGlmaWNhdGlvblBvcG92
ZXJXaWxsQ2xvc2UsIE5TU3RyaW5nICopCi0KIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiB1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTcxLDggKzE2NCw2IEBAIHN0cnVjdCBXS1ZpZXdJ
bnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKIH07CiAjZW5kaWYKIAotQGNsYXNzIFdLV2lu
ZG93VmlzaWJpbGl0eU9ic2VydmVyOwotCiBAaW50ZXJmYWNlIFdLVmlld0RhdGEgOiBOU09iamVj
dCB7CiBAcHVibGljCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBhZ2VDbGllbnRJbXBsPiBfcGFnZUNs
aWVudDsKQEAgLTIwMCw4ICsxOTEsNiBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRz
UGFyYW1ldGVycyB7CiAgICAgLy8gRm9yIGFzeW5jaHJvbm91cyB2YWxpZGF0aW9uLgogICAgIFZh
bGlkYXRpb25NYXAgX3ZhbGlkYXRpb25NYXA7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8VGV4dElu
ZGljYXRvcldpbmRvdz4gX3RleHRJbmRpY2F0b3JXaW5kb3c7Ci0KICAgICAvLyBXZSBrZWVwIGhl
cmUgdGhlIGV2ZW50IHdoZW4gcmVzZW5kaW5nIGl0IHRvCiAgICAgLy8gdGhlIGFwcGxpY2F0aW9u
IHRvIGRpc3Rpbmd1aXNoIHRoZSBjYXNlIG9mIGEgbmV3IGV2ZW50IGZyb20gb25lIAogICAgIC8v
IHRoYXQgaGFzIGJlZW4gYWxyZWFkeSBzZW50IHRvIFdlYkNvcmUuCkBAIC0yMjMsNTIgKzIxMiwy
MyBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiAgICAgTlNF
dmVudCAqX3ByZXNzdXJlRXZlbnQ7CiAgICAgQk9PTCBfaWdub3JpbmdNb3VzZURyYWdnZWRFdmVu
dHM7CiAKLSAgICBpZCBfZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yOwotCiAgICAgQk9PTCBfaGFz
U3BlbGxDaGVja2VyRG9jdW1lbnRUYWc7CiAgICAgTlNJbnRlZ2VyIF9zcGVsbENoZWNrZXJEb2N1
bWVudFRhZzsKIAotICAgIEJPT0wgX3Nob3VsZERlZmVyVmlld0luV2luZG93Q2hhbmdlczsKLSAg
ICBOU1dpbmRvdyAqX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbjsKLQotICAgIEJPT0wg
X3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVkOwotCi0gICAgQk9PTCBfbmVlZHNWaWV3RnJh
bWVJbldpbmRvd0Nvb3JkaW5hdGVzOwotICAgIEJPT0wgX2RpZFNjaGVkdWxlV2luZG93QW5kVmll
d0ZyYW1lVXBkYXRlOwotCi0gICAgUmV0YWluUHRyPE5TQ29sb3JTcGFjZT4gX2NvbG9yU3BhY2U7
Ci0KICAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+IF9wcm9taXNlZEltYWdlOwogICAgIFN0cmlu
ZyBfcHJvbWlzZWRGaWxlbmFtZTsKICAgICBTdHJpbmcgX3Byb21pc2VkVVJMOwogCiAgICAgQk9P
TCBfd2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZDsKIAotICAgIFJldGFpblB0cjxXS1dp
bmRvd1Zpc2liaWxpdHlPYnNlcnZlcj4gX3dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlcjsKLQogICAg
IHN0ZDo6dW5pcXVlX3B0cjxWaWV3R2VzdHVyZUNvbnRyb2xsZXI+IF9nZXN0dXJlQ29udHJvbGxl
cjsKICAgICBCT09MIF9hbGxvd3NNYWduaWZpY2F0aW9uOwotICAgIEJPT0wgX2lnbm9yZXNOb25X
aGVlbEV2ZW50czsKLSAgICBCT09MIF9pZ25vcmVzQWxsRXZlbnRzOwogICAgIEJPT0wgX2FsbG93
c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzOwotICAgIEJPT0wgX2FsbG93c0xpbmtQcmV2
aWV3OwogCiAgICAgUmV0YWluUHRyPENBTGF5ZXI+IF9yb290TGF5ZXI7CiAKLSAgICBCT09MIF9k
aWRTY2hlZHVsZVNldFRvcENvbnRlbnRJbnNldDsKLSAgICBDR0Zsb2F0IF90b3BDb250ZW50SW5z
ZXQ7CiAgICAgQ0dGbG9hdCBfdG90YWxIZWlnaHRPZkJhbm5lcnM7CiAKLSAgICBDR0Zsb2F0IF9v
dmVycmlkZURldmljZVNjYWxlRmFjdG9yOwotCi0gICAgQk9PTCBfZGlkUmVnaXN0ZXJGb3JMb29r
dXBQb3BvdmVyQ2xvc2VOb3RpZmljYXRpb25zOwotCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICBCT09MIF9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRl
bnRJbnNldHM7Ci0gICAgUmV0YWluUHRyPFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlcj4gX2lt
bWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXI7Ci0gICAgUmV0YWluUHRyPE5TSW1tZWRpYXRlQWN0aW9u
R2VzdHVyZVJlY29nbml6ZXI+IF9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplcjsKLSNl
bmRpZgotCiAjaWYgV0tfQVBJX0VOQUJMRUQKICAgICBfV0tUaHVtYm5haWxWaWV3ICpfdGh1bWJu
YWlsVmlldzsKICNlbmRpZgpAQCAtMjc5LDU0ICsyMzksNiBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJw
cmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiBAaW1wbGVtZW50YXRpb24gV0tWaWV3RGF0YQogQGVu
ZAogCi1AaW50ZXJmYWNlIFdLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIDogTlNPYmplY3Qgewot
ICAgIFdLVmlldyAqX3ZpZXc7Ci19Ci0KLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFZpZXc6KFdL
VmlldyAqKXZpZXc7Ci0tICh2b2lkKXN0YXJ0T2JzZXJ2aW5nOihOU1dpbmRvdyAqKXdpbmRvdzsK
LS0gKHZvaWQpc3RvcE9ic2VydmluZzooTlNXaW5kb3cgKil3aW5kb3c7Ci1AZW5kCi0KLUBpbXBs
ZW1lbnRhdGlvbiBXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlcgotCi0tIChpbnN0YW5jZXR5cGUp
aW5pdFdpdGhWaWV3OihXS1ZpZXcgKil2aWV3Ci17Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0XTsK
LSAgICBpZiAoIXNlbGYpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBfdmlldyA9IHZpZXc7
Ci0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KLS0gKHZvaWQpc3RhcnRPYnNlcnZpbmc6KE5TV2luZG93
ICopd2luZG93Ci17Ci0gICAgLy8gQW4gTlNWaWV3IGRlcml2ZWQgb2JqZWN0IHN1Y2ggYXMgV0tW
aWV3IGNhbm5vdCBvYnNlcnZlIHRoZXNlIG5vdGlmaWNhdGlvbnMsIGJlY2F1c2UgTlNWaWV3IGl0
c2VsZiBvYnNlcnZlcyB0aGVtLgotICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENl
bnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZE9yZGVy
T2ZmU2NyZWVuOikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBuYW1lOkAiTlNXaW5kb3dEaWRPcmRlck9mZlNjcmVlbk5vdGlmaWNhdGlvbiIgb2JqZWN0
OndpbmRvd107Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRP
YnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkT3JkZXJPblNjcmVlbjop
IAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6
QCJfTlNXaW5kb3dEaWRCZWNvbWVWaXNpYmxlIiBvYmplY3Q6d2luZG93XTsKLX0KLQotLSAodm9p
ZClzdG9wT2JzZXJ2aW5nOihOU1dpbmRvdyAqKXdpbmRvdwotewotICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOkAiTlNXaW5k
b3dEaWRPcmRlck9mZlNjcmVlbk5vdGlmaWNhdGlvbiIgb2JqZWN0OndpbmRvd107Ci0gICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5h
bWU6QCJfTlNXaW5kb3dEaWRCZWNvbWVWaXNpYmxlIiBvYmplY3Q6d2luZG93XTsKLX0KLQotLSAo
dm9pZClfd2luZG93RGlkT3JkZXJPblNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRp
b24KLXsKLSAgICBbX3ZpZXcgX3dpbmRvd0RpZE9yZGVyT25TY3JlZW46bm90aWZpY2F0aW9uXTsK
LX0KLQotLSAodm9pZClfd2luZG93RGlkT3JkZXJPZmZTY3JlZW46KE5TTm90aWZpY2F0aW9uICop
bm90aWZpY2F0aW9uCi17Ci0gICAgW192aWV3IF93aW5kb3dEaWRPcmRlck9mZlNjcmVlbjpub3Rp
ZmljYXRpb25dOwotfQotCi1AZW5kCi0KIEBpbnRlcmZhY2UgV0tSZXNwb25kZXJDaGFpblNpbmsg
OiBOU1Jlc3BvbmRlciB7CiAgICAgTlNSZXNwb25kZXIgKl9sYXN0UmVzcG9uZGVySW5DaGFpbjsK
ICAgICBib29sIF9kaWRSZWNlaXZlVW5oYW5kbGVkQ29tbWFuZDsKQEAgLTM2OSwxMCArMjgxLDYg
QEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogCiAtICh2b2lk
KWRlYWxsb2MKIHsKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAw
MAotICAgIFtfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgd2lsbERlc3Ryb3lWaWV3
OnNlbGZdOwotI2VuZGlmCi0KICNpZiBXS19BUElfRU5BQkxFRAogICAgIGlmIChfZGF0YS0+X3Jl
bW90ZU9iamVjdFJlZ2lzdHJ5KSB7CiAgICAgICAgIF9kYXRhLT5fcGFnZS0+cHJvY2VzcygpLnBy
b2Nlc3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RS
ZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBfZGF0YS0+X3BhZ2UtPnBhZ2VJRCgpKTsK
QEAgLTM5NCw5ICszMDIsNiBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1l
dGVycyB7CiAgICAgTlNOb3RpZmljYXRpb25DZW50ZXIqIHdvcmtzcGFjZU5vdGlmaWNhdGlvbkNl
bnRlciA9IFtbTlNXb3Jrc3BhY2Ugc2hhcmVkV29ya3NwYWNlXSBub3RpZmljYXRpb25DZW50ZXJd
OwogICAgIFt3b3Jrc3BhY2VOb3RpZmljYXRpb25DZW50ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBu
YW1lOk5TV29ya3NwYWNlQWN0aXZlU3BhY2VEaWRDaGFuZ2VOb3RpZmljYXRpb24gb2JqZWN0Om5p
bF07CiAKLSAgICBpZiAoY2FuTG9hZExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9zZSgpKQot
ICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2Vy
dmVyOnNlbGYgbmFtZTpnZXRMVU5vdGlmaWNhdGlvblBvcG92ZXJXaWxsQ2xvc2UoKSBvYmplY3Q6
bmlsXTsKLQogICAgIFdlYlByb2Nlc3NQb29sOjpzdGF0aXN0aWNzKCkud2tWaWV3Q291bnQtLTsK
IAogICAgIFtzdXBlciBkZWFsbG9jXTsKQEAgLTQ4MSw0OCArMzg2LDkgQEAgc3RydWN0IFdLVmll
d0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogICAgIF9kYXRhLT5faW1wbC0+c2V0RnJh
bWVTaXplKE5TU2l6ZVRvQ0dTaXplKHNpemUpKTsKIH0KIAotLSAodm9pZClfdXBkYXRlV2luZG93
QW5kVmlld0ZyYW1lcwotewotICAgIGlmIChfZGF0YS0+X2ltcGwtPmNsaXBzVG9WaXNpYmxlUmVj
dCgpKQotICAgICAgICBfZGF0YS0+X2ltcGwtPnVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgpOwotCi0g
ICAgaWYgKF9kYXRhLT5fZGlkU2NoZWR1bGVXaW5kb3dBbmRWaWV3RnJhbWVVcGRhdGUpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIF9kYXRhLT5fZGlkU2NoZWR1bGVXaW5kb3dBbmRWaWV3RnJhbWVV
cGRhdGUgPSBZRVM7Ci0KLSAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9nZXRfbWFpbl9xdWV1
ZSgpLCBeewotICAgICAgICBfZGF0YS0+X2RpZFNjaGVkdWxlV2luZG93QW5kVmlld0ZyYW1lVXBk
YXRlID0gTk87Ci0KLSAgICAgICAgTlNSZWN0IHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMg
PSBOU1plcm9SZWN0OwotICAgICAgICBOU1BvaW50IGFjY2Vzc2liaWxpdHlQb3NpdGlvbiA9IE5T
WmVyb1BvaW50OwotCi0gICAgICAgIGlmIChfZGF0YS0+X25lZWRzVmlld0ZyYW1lSW5XaW5kb3dD
b29yZGluYXRlcykKLSAgICAgICAgICAgIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMgPSBb
c2VsZiBjb252ZXJ0UmVjdDpzZWxmLmZyYW1lIHRvVmlldzpuaWxdOwotCi0jcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVw
cmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgICAgIGlmIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
OjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQotICAgICAgICAgICAgYWNjZXNzaWJpbGl0eVBvc2l0
aW9uID0gW1tzZWxmIGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlQ
b3NpdGlvbkF0dHJpYnV0ZV0gcG9pbnRWYWx1ZV07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cG9wCi0KLSAgICAgICAgX2RhdGEtPl9wYWdlLT53aW5kb3dBbmRWaWV3RnJhbWVzQ2hhbmdlZCh2
aWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzLCBhY2Nlc3NpYmlsaXR5UG9zaXRpb24pOwotICAg
IH0pOwotfQotCiAtICh2b2lkKXJlbmV3R1N0YXRlCiB7Ci0gICAgaWYgKF9kYXRhLT5fdGV4dElu
ZGljYXRvcldpbmRvdykKLSAgICAgICAgW3NlbGYgX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGls
ZFdpbmRvd3NXaXRoQW5pbWF0aW9uOk5PXTsKLQotICAgIC8vIFVwZGF0ZSB0aGUgdmlldyBmcmFt
ZS4KLSAgICBpZiAoW3NlbGYgd2luZG93XSkKLSAgICAgICAgW3NlbGYgX3VwZGF0ZVdpbmRvd0Fu
ZFZpZXdGcmFtZXNdOwotCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDEwMDAKLSAgICBbc2VsZiBfdXBkYXRlQ29udGVudEluc2V0c0lmQXV0b21hdGljXTsKLSNlbmRp
ZgotCisgICAgX2RhdGEtPl9pbXBsLT5yZW5ld0dTdGF0ZSgpOwogICAgIFtzdXBlciByZW5ld0dT
dGF0ZV07CiB9CiAKQEAgLTU3OCw3ICs0NDQsNyBAQCBzdGF0aWMgU3RyaW5nIGNvbW1hbmROYW1l
Rm9yU2VsZWN0b3IoU0VMIHNlbGVjdG9yKQogCiAvLyBFZGl0aW5nIGNvbW1hbmRzCiAKLSNkZWZp
bmUgV0VCQ09SRV9DT01NQU5EKGNvbW1hbmQpIC0gKHZvaWQpY29tbWFuZDooaWQpc2VuZGVyIHsg
X2RhdGEtPl9wYWdlLT5leGVjdXRlRWRpdENvbW1hbmQoY29tbWFuZE5hbWVGb3JTZWxlY3Rvcihf
Y21kKSk7IH0KKyNkZWZpbmUgV0VCQ09SRV9DT01NQU5EKGNvbW1hbmQpIC0gKHZvaWQpY29tbWFu
ZDooaWQpc2VuZGVyIHsgX2RhdGEtPl9pbXBsLT5leGVjdXRlRWRpdENvbW1hbmQoY29tbWFuZE5h
bWVGb3JTZWxlY3RvcihfY21kKSk7IH0KIAogV0VCQ09SRV9DT01NQU5EKGFsaWduQ2VudGVyKQog
V0VCQ09SRV9DT01NQU5EKGFsaWduSnVzdGlmaWVkKQpAQCAtNjg3LDIyICs1NTMsMTIgQEAgV0VC
Q09SRV9DT01NQU5EKHlhbmtBbmRTZWxlY3QpCiAKIC0gKEJPT0wpd3JpdGVTZWxlY3Rpb25Ub1Bh
c3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm9hcmQgdHlwZXM6KE5TQXJyYXkgKil0eXBl
cwogewotICAgIHNpemVfdCBudW1UeXBlcyA9IFt0eXBlcyBjb3VudF07Ci0gICAgW3Bhc3RlYm9h
cmQgZGVjbGFyZVR5cGVzOnR5cGVzIG93bmVyOm5pbF07Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBudW1UeXBlczsgKytpKSB7Ci0gICAgICAgIGlmIChbW3R5cGVzIG9iamVjdEF0SW5kZXg6
aV0gaXNFcXVhbFRvOk5TU3RyaW5nUGJvYXJkVHlwZV0pCi0gICAgICAgICAgICBbcGFzdGVib2Fy
ZCBzZXRTdHJpbmc6X2RhdGEtPl9wYWdlLT5zdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKCkg
Zm9yVHlwZTpOU1N0cmluZ1Bib2FyZFR5cGVdOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAg
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IF9kYXRhLT5fcGFnZS0+ZGF0YVNlbGVjdGlv
bkZvclBhc3RlYm9hcmQoW3R5cGVzIG9iamVjdEF0SW5kZXg6aV0pOwotICAgICAgICAgICAgW3Bh
c3RlYm9hcmQgc2V0RGF0YTpidWZmZXIgPyBidWZmZXItPmNyZWF0ZU5TRGF0YSgpLmdldCgpIDog
bmlsIGZvclR5cGU6W3R5cGVzIG9iamVjdEF0SW5kZXg6aV1dOwotICAgICAgIH0KLSAgICB9Ci0g
ICAgcmV0dXJuIFlFUzsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT53cml0ZVNlbGVjdGlvblRv
UGFzdGVib2FyZChwYXN0ZWJvYXJkLCB0eXBlcyk7CiB9CiAKIC0gKHZvaWQpY2VudGVyU2VsZWN0
aW9uSW5WaXNpYmxlQXJlYTooaWQpc2VuZGVyIAogeyAKLSAgICBfZGF0YS0+X3BhZ2UtPmNlbnRl
clNlbGVjdGlvbkluVmlzaWJsZUFyZWEoKTsKKyAgICBfZGF0YS0+X2ltcGwtPmNlbnRlclNlbGVj
dGlvbkluVmlzaWJsZUFyZWEoKTsKIH0KIAogLy8gVGhpcyBtZXRob2QgaXMgbmVlZGVkIHRvIHN1
cHBvcnQgTWFjIE9TIFggc2VydmljZXMuCkBAIC03NDAsMjUgKzU5Niw2IEBAIFdFQkNPUkVfQ09N
TUFORCh5YW5rQW5kU2VsZWN0KQogCiAvLyBGb250IHBhbmVsIHN1cHBvcnQuCiAKLS0gKHZvaWQp
dXBkYXRlRm9udFBhbmVsSWZOZWVkZWQKLXsKLSAgICBjb25zdCBFZGl0b3JTdGF0ZSYgZWRpdG9y
U3RhdGUgPSBfZGF0YS0+X3BhZ2UtPmVkaXRvclN0YXRlKCk7Ci0gICAgaWYgKGVkaXRvclN0YXRl
LnNlbGVjdGlvbklzTm9uZSB8fCAhZWRpdG9yU3RhdGUuaXNDb250ZW50RWRpdGFibGUpCi0gICAg
ICAgIHJldHVybjsKLSAgICBpZiAoW05TRm9udFBhbmVsIHNoYXJlZEZvbnRQYW5lbEV4aXN0c10g
JiYgW1tOU0ZvbnRQYW5lbCBzaGFyZWRGb250UGFuZWxdIGlzVmlzaWJsZV0pIHsKLSAgICAgICAg
X2RhdGEtPl9wYWdlLT5mb250QXRTZWxlY3Rpb24oW10oY29uc3QgU3RyaW5nJiBmb250TmFtZSwg
ZG91YmxlIGZvbnRTaXplLCBib29sIHNlbGVjdGlvbkhhc011bHRpcGxlRm9udHMsIFdlYktpdDo6
Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewotICAgICAgICAgICAgTlNGb250ICpmb250ID0g
W05TRm9udCBmb250V2l0aE5hbWU6Zm9udE5hbWUgc2l6ZTpmb250U2l6ZV07Ci0gICAgICAgICAg
ICBpZiAoZm9udCkKLSAgICAgICAgICAgICAgICBbW05TRm9udE1hbmFnZXIgc2hhcmVkRm9udE1h
bmFnZXJdIHNldFNlbGVjdGVkRm9udDpmb250IGlzTXVsdGlwbGU6c2VsZWN0aW9uSGFzTXVsdGlw
bGVGb250c107Ci0gICAgICAgIH0pOwotICAgIH0KLX0KLQotLSAodm9pZClfc2VsZWN0aW9uQ2hh
bmdlZAotewotICAgIFtzZWxmIHVwZGF0ZUZvbnRQYW5lbElmTmVlZGVkXTsKLX0KLQogLSAodm9p
ZCljaGFuZ2VGb250OihpZClzZW5kZXIKIHsKICAgICBOU0ZvbnRNYW5hZ2VyICpmb250TWFuYWdl
ciA9IFtOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZvbnRNYW5hZ2VyXTsKQEAgLTExNDUsNjQgKzk4Miw2
NCBAQCBzdGF0aWMgTlNUb29sYmFySXRlbSAqdG9vbGJhckl0ZW0oaWQgPE5TVmFsaWRhdGVkVXNl
ckludGVyZmFjZUl0ZW0+IGl0ZW0pCiAjZGVmaW5lIE5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVS
KFNlbGVjdG9yKSBcCiAgICAgLSAodm9pZClTZWxlY3RvcjooTlNFdmVudCAqKXRoZUV2ZW50IFwK
ICAgICB7IFwKLSAgICAgICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRzKSBcCisg
ICAgICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKSBcCiAgICAg
ICAgICAgICByZXR1cm47IFwKICAgICAgICAgaWYgKE5TVGV4dElucHV0Q29udGV4dCAqY29udGV4
dCA9IFtzZWxmIGlucHV0Q29udGV4dF0pIHsgXAogICAgICAgICAgICAgW2NvbnRleHQgaGFuZGxl
RXZlbnQ6dGhlRXZlbnQgY29tcGxldGlvbkhhbmRsZXI6XihCT09MIGhhbmRsZWQpIHsgXAogICAg
ICAgICAgICAgICAgIGlmIChoYW5kbGVkKSBcCiAgICAgICAgICAgICAgICAgICAgIExPRyhUZXh0
SW5wdXQsICIlcyB3YXMgaGFuZGxlZCBieSB0ZXh0IGlucHV0IGNvbnRleHQiLCBTdHJpbmcoI1Nl
bGVjdG9yKS5zdWJzdHJpbmcoMCwgU3RyaW5nKCNTZWxlY3RvcikuZmluZCgiSW50ZXJuYWwiKSku
YXNjaWkoKS5kYXRhKCkpOyBcCiAgICAgICAgICAgICAgICAgZWxzZSB7IFwKLSAgICAgICAgICAg
ICAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudCh0aGVFdmVudCwgX2RhdGEtPl9w
cmVzc3VyZUV2ZW50LCBzZWxmKTsgXAorICAgICAgICAgICAgICAgICAgICBOYXRpdmVXZWJNb3Vz
ZUV2ZW50IHdlYkV2ZW50KHRoZUV2ZW50LCBfZGF0YS0+X2ltcGwtPmxhc3RQcmVzc3VyZUV2ZW50
KCksIHNlbGYpOyBcCiAgICAgICAgICAgICAgICAgICAgIF9kYXRhLT5fcGFnZS0+aGFuZGxlTW91
c2VFdmVudCh3ZWJFdmVudCk7IFwKICAgICAgICAgICAgICAgICB9IFwKICAgICAgICAgICAgIH1d
OyBcCiAgICAgICAgICAgICByZXR1cm47IFwKICAgICAgICAgfSBcCi0gICAgICAgIE5hdGl2ZVdl
Yk1vdXNlRXZlbnQgd2ViRXZlbnQodGhlRXZlbnQsIF9kYXRhLT5fcHJlc3N1cmVFdmVudCwgc2Vs
Zik7IFwKKyAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudCh0aGVFdmVudCwgX2Rh
dGEtPl9pbXBsLT5sYXN0UHJlc3N1cmVFdmVudCgpLCBzZWxmKTsgXAogICAgICAgICBfZGF0YS0+
X3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOyBcCiAgICAgfQogI2RlZmluZSBOQVRJ
VkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRFUk5BTChTZWxlY3RvcikgXAogICAgIC0gKHZvaWQp
U2VsZWN0b3I6KE5TRXZlbnQgKil0aGVFdmVudCBcCiAgICAgeyBcCi0gICAgICAgIGlmIChfZGF0
YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykgXAorICAgICAgICBpZiAoX2RhdGEtPl9pbXBsLT5p
Z25vcmVzTm9uV2hlZWxFdmVudHMoKSkgXAogICAgICAgICAgICAgcmV0dXJuOyBcCiAgICAgICAg
IGlmIChOU1RleHRJbnB1dENvbnRleHQgKmNvbnRleHQgPSBbc2VsZiBpbnB1dENvbnRleHRdKSB7
IFwKICAgICAgICAgICAgIFtjb250ZXh0IGhhbmRsZUV2ZW50OnRoZUV2ZW50IGNvbXBsZXRpb25I
YW5kbGVyOl4oQk9PTCBoYW5kbGVkKSB7IFwKICAgICAgICAgICAgICAgICBpZiAoaGFuZGxlZCkg
XAogICAgICAgICAgICAgICAgICAgICBMT0coVGV4dElucHV0LCAiJXMgd2FzIGhhbmRsZWQgYnkg
dGV4dCBpbnB1dCBjb250ZXh0IiwgU3RyaW5nKCNTZWxlY3Rvcikuc3Vic3RyaW5nKDAsIFN0cmlu
ZygjU2VsZWN0b3IpLmZpbmQoIkludGVybmFsIikpLmFzY2lpKCkuZGF0YSgpKTsgXAogICAgICAg
ICAgICAgICAgIGVsc2UgeyBcCi0gICAgICAgICAgICAgICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZl
bnQgd2ViRXZlbnQodGhlRXZlbnQsIF9kYXRhLT5fcHJlc3N1cmVFdmVudCwgc2VsZik7IFwKKyAg
ICAgICAgICAgICAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudCh0aGVFdmVudCwg
X2RhdGEtPl9pbXBsLT5sYXN0UHJlc3N1cmVFdmVudCgpLCBzZWxmKTsgXAogICAgICAgICAgICAg
ICAgICAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOyBcCiAgICAg
ICAgICAgICAgICAgfSBcCiAgICAgICAgICAgICB9XTsgXAogICAgICAgICAgICAgcmV0dXJuOyBc
CiAgICAgICAgIH0gXAotICAgICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KHRoZUV2
ZW50LCBfZGF0YS0+X3ByZXNzdXJlRXZlbnQsIHNlbGYpOyBcCisgICAgICAgIE5hdGl2ZVdlYk1v
dXNlRXZlbnQgd2ViRXZlbnQodGhlRXZlbnQsIF9kYXRhLT5faW1wbC0+bGFzdFByZXNzdXJlRXZl
bnQoKSwgc2VsZik7IFwKICAgICAgICAgX2RhdGEtPl9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KHdl
YkV2ZW50KTsgXAogICAgIH0KICNlbHNlCiAjZGVmaW5lIE5BVElWRV9NT1VTRV9FVkVOVF9IQU5E
TEVSKFNlbGVjdG9yKSBcCiAgICAgLSAodm9pZClTZWxlY3RvcjooTlNFdmVudCAqKXRoZUV2ZW50
IFwKICAgICB7IFwKLSAgICAgICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRzKSBc
CisgICAgICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKSBcCiAg
ICAgICAgICAgICByZXR1cm47IFwKICAgICAgICAgaWYgKFtbc2VsZiBpbnB1dENvbnRleHRdIGhh
bmRsZUV2ZW50OnRoZUV2ZW50XSkgeyBcCiAgICAgICAgICAgICBMT0coVGV4dElucHV0LCAiJXMg
d2FzIGhhbmRsZWQgYnkgdGV4dCBpbnB1dCBjb250ZXh0IiwgU3RyaW5nKCNTZWxlY3Rvcikuc3Vi
c3RyaW5nKDAsIFN0cmluZygjU2VsZWN0b3IpLmZpbmQoIkludGVybmFsIikpLmFzY2lpKCkuZGF0
YSgpKTsgXAogICAgICAgICAgICAgcmV0dXJuOyBcCiAgICAgICAgIH0gXAotICAgICAgICBOYXRp
dmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KHRoZUV2ZW50LCBfZGF0YS0+X3ByZXNzdXJlRXZlbnQs
IHNlbGYpOyBcCisgICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQodGhlRXZlbnQs
IF9kYXRhLT5faW1wbC0+bGFzdFByZXNzdXJlRXZlbnQoKSwgc2VsZik7IFwKICAgICAgICAgX2Rh
dGEtPl9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsgXAogICAgIH0KICNkZWZpbmUg
TkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwoU2VsZWN0b3IpIFwKICAgICAtICh2
b2lkKVNlbGVjdG9yOihOU0V2ZW50ICopdGhlRXZlbnQgXAogICAgIHsgXAotICAgICAgICBpZiAo
X2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpIFwKKyAgICAgICAgaWYgKF9kYXRhLT5faW1w
bC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpIFwKICAgICAgICAgICAgIHJldHVybjsgXAogICAg
ICAgICBpZiAoW1tzZWxmIGlucHV0Q29udGV4dF0gaGFuZGxlRXZlbnQ6dGhlRXZlbnRdKSB7IFwK
ICAgICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIlcyB3YXMgaGFuZGxlZCBieSB0ZXh0IGlucHV0
IGNvbnRleHQiLCBTdHJpbmcoI1NlbGVjdG9yKS5zdWJzdHJpbmcoMCwgU3RyaW5nKCNTZWxlY3Rv
cikuZmluZCgiSW50ZXJuYWwiKSkuYXNjaWkoKS5kYXRhKCkpOyBcCiAgICAgICAgICAgICByZXR1
cm47IFwKICAgICAgICAgfSBcCi0gICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQo
dGhlRXZlbnQsIF9kYXRhLT5fcHJlc3N1cmVFdmVudCwgc2VsZik7IFwKKyAgICAgICAgTmF0aXZl
V2ViTW91c2VFdmVudCB3ZWJFdmVudCh0aGVFdmVudCwgX2RhdGEtPl9pbXBsLT5sYXN0UHJlc3N1
cmVFdmVudCgpLCBzZWxmKTsgXAogICAgICAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZU1vdXNlRXZl
bnQod2ViRXZlbnQpOyBcCiAgICAgfQogI2VuZGlmCkBAIC0xMjMzLDcgKzEwNzAsNyBAQCBOQVRJ
VkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRFUk5BTChtb3VzZURyYWdnZWRJbnRlcm5hbCkKIAog
LSAodm9pZClzY3JvbGxXaGVlbDooTlNFdmVudCAqKWV2ZW50CiB7Ci0gICAgaWYgKF9kYXRhLT5f
aWdub3Jlc0FsbEV2ZW50cykKKyAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzQWxsRXZlbnRz
KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChldmVudC5waGFzZSA9PSBOU0V2ZW50UGhh
c2VCZWdhbikKQEAgLTEyNTEsNyArMTA4OCw3IEBAIE5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVS
X0lOVEVSTkFMKG1vdXNlRHJhZ2dlZEludGVybmFsKQogCiAtICh2b2lkKXN3aXBlV2l0aEV2ZW50
OihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVu
dHMpCisgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmICghX2RhdGEtPl9hbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRp
b25HZXN0dXJlcykgewpAQCAtMTI2OSw3ICsxMTA2LDcgQEAgTkFUSVZFX01PVVNFX0VWRU5UX0hB
TkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCiAKIC0gKHZvaWQpbW91c2VNb3Zl
ZDooTlNFdmVudCAqKWV2ZW50CiB7Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZl
bnRzKQorICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQogICAg
ICAgICByZXR1cm47CiAKICAgICAvLyBXaGVuIGEgdmlldyBpcyBmaXJzdCByZXNwb25kZXIsIGl0
IGdldHMgbW91c2UgbW92ZWQgZXZlbnRzIGV2ZW4gd2hlbiB0aGUgbW91c2UgaXMgb3V0c2lkZSBp
dHMgdmlzaWJsZSByZWN0LgpAQCAtMTI4MSw3ICsxMTE4LDcgQEAgTkFUSVZFX01PVVNFX0VWRU5U
X0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCiAKIC0gKHZvaWQpbW91c2VE
b3duOihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxF
dmVudHMpCisgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIFtzZWxmIF9zZXRNb3VzZURvd25FdmVudDpldmVudF07CkBA
IC0xMjkyLDcgKzExMjksNyBAQCBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRFUk5BTCht
b3VzZURyYWdnZWRJbnRlcm5hbCkKIAogLSAodm9pZCltb3VzZVVwOihOU0V2ZW50ICopZXZlbnQK
IHsKLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAgaWYgKF9kYXRh
LT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IFtzZWxmIF9zZXRNb3VzZURvd25FdmVudDpuaWxdOwpAQCAtMTMwMSw3ICsxMTM4LDcgQEAgTkFU
SVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCiAK
IC0gKHZvaWQpbW91c2VEcmFnZ2VkOihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBpZiAoX2RhdGEt
Pl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05v
bldoZWVsRXZlbnRzKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChfZGF0YS0+X2lnbm9y
aW5nTW91c2VEcmFnZ2VkRXZlbnRzKQpAQCAtMTMxMSwyMiArMTE0OCw3IEBAIE5BVElWRV9NT1VT
RV9FVkVOVF9IQU5ETEVSX0lOVEVSTkFMKG1vdXNlRHJhZ2dlZEludGVybmFsKQogCiAtICh2b2lk
KXByZXNzdXJlQ2hhbmdlV2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKIHsKLSNpZiBkZWZpbmVk
KF9fTFA2NF9fKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMDAzCi0g
ICAgaWYgKGV2ZW50ID09IF9kYXRhLT5fcHJlc3N1cmVFdmVudCkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRzKQotICAgICAgICByZXR1cm47
Ci0KLSAgICBpZiAoZXZlbnQucGhhc2UgIT0gTlNFdmVudFBoYXNlQ2hhbmdlZCAmJiBldmVudC5w
aGFzZSAhPSBOU0V2ZW50UGhhc2VCZWdhbiAmJiBldmVudC5waGFzZSAhPSBOU0V2ZW50UGhhc2VF
bmRlZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVu
dChldmVudCwgX2RhdGEtPl9wcmVzc3VyZUV2ZW50LCBzZWxmKTsKLSAgICBfZGF0YS0+X3BhZ2Ut
PmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOwotCi0gICAgW19kYXRhLT5fcHJlc3N1cmVFdmVu
dCByZWxlYXNlXTsKLSAgICBfZGF0YS0+X3ByZXNzdXJlRXZlbnQgPSBbZXZlbnQgcmV0YWluXTsK
LSNlbmRpZgorICAgIF9kYXRhLT5faW1wbC0+cHJlc3N1cmVDaGFuZ2VXaXRoRXZlbnQoZXZlbnQp
OwogfQogCiAtIChCT09MKWFjY2VwdHNGaXJzdE1vdXNlOihOU0V2ZW50ICopZXZlbnQKQEAgLTEz
NDAsNyArMTE2Miw3IEBAIE5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVSX0lOVEVSTkFMKG1vdXNl
RHJhZ2dlZEludGVybmFsKQogICAgICAgICByZXR1cm4gTk87CiAgICAgCiAgICAgW3NlbGYgX3Nl
dE1vdXNlRG93bkV2ZW50OmV2ZW50XTsKLSAgICBib29sIHJlc3VsdCA9IF9kYXRhLT5fcGFnZS0+
YWNjZXB0c0ZpcnN0TW91c2UoW2V2ZW50IGV2ZW50TnVtYmVyXSwgV2ViRXZlbnRGYWN0b3J5Ojpj
cmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBfZGF0YS0+X3ByZXNzdXJlRXZlbnQsIHNlbGYpKTsK
KyAgICBib29sIHJlc3VsdCA9IF9kYXRhLT5fcGFnZS0+YWNjZXB0c0ZpcnN0TW91c2UoW2V2ZW50
IGV2ZW50TnVtYmVyXSwgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50
LCBfZGF0YS0+X2ltcGwtPmxhc3RQcmVzc3VyZUV2ZW50KCksIHNlbGYpKTsKICAgICBbc2VsZiBf
c2V0TW91c2VEb3duRXZlbnQ6bmlsXTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtMTM2MSw3
ICsxMTgzLDcgQEAgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFn
Z2VkSW50ZXJuYWwpCiAgICAgICAgIHJldHVybiBOTzsKICAgICAKICAgICBbc2VsZiBfc2V0TW91
c2VEb3duRXZlbnQ6ZXZlbnRdOwotICAgIGJvb2wgcmVzdWx0ID0gX2RhdGEtPl9wYWdlLT5zaG91
bGREZWxheVdpbmRvd09yZGVyaW5nRm9yRXZlbnQoV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJN
b3VzZUV2ZW50KGV2ZW50LCBfZGF0YS0+X3ByZXNzdXJlRXZlbnQsIHNlbGYpKTsKKyAgICBib29s
IHJlc3VsdCA9IF9kYXRhLT5fcGFnZS0+c2hvdWxkRGVsYXlXaW5kb3dPcmRlcmluZ0ZvckV2ZW50
KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChldmVudCwgX2RhdGEtPl9pbXBs
LT5sYXN0UHJlc3N1cmVFdmVudCgpLCBzZWxmKSk7CiAgICAgW3NlbGYgX3NldE1vdXNlRG93bkV2
ZW50Om5pbF07CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTE3OTMsNyArMTYxNSw3IEBAIHN0
YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBW
ZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKIC0gKEJPT0wpcGVyZm9ybUtleUVxdWl2YWxlbnQ6KE5T
RXZlbnQgKilldmVudAogewotICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykK
KyAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMoKSkKICAgICAgICAg
cmV0dXJuIE5POwogCiAgICAgLy8gVGhlcmUncyBhIGNoYW5jZSB0aGF0IHJlc3BvbmRpbmcgdG8g
dGhpcyBldmVudCB3aWxsIHJ1biBhIG5lc3RlZCBldmVudCBsb29wLCBhbmQKQEAgLTE4MzMsNyAr
MTY1NSw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmlu
ZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKIC0gKHZvaWQpa2V5VXA6KE5TRXZl
bnQgKil0aGVFdmVudAogewotICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykK
KyAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMoKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgTE9HKFRleHRJbnB1dCwgImtleVVwOiVwICVAIiwgdGhlRXZlbnQsIHRo
ZUV2ZW50KTsKQEAgLTE4NDYsNyArMTY2OCw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxp
bmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAK
IC0gKHZvaWQpa2V5RG93bjooTlNFdmVudCAqKXRoZUV2ZW50CiB7Ci0gICAgaWYgKF9kYXRhLT5f
aWdub3Jlc05vbldoZWVsRXZlbnRzKQorICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25X
aGVlbEV2ZW50cygpKQogICAgICAgICByZXR1cm47CiAKICAgICBMT0coVGV4dElucHV0LCAia2V5
RG93bjolcCAlQCVzIiwgdGhlRXZlbnQsIHRoZUV2ZW50LCAodGhlRXZlbnQgPT0gX2RhdGEtPl9r
ZXlEb3duRXZlbnRCZWluZ1Jlc2VudCkgPyAiIChyZS1zZW50KSIgOiAiIik7CkBAIC0xODczLDcg
KzE2OTUsNyBAQCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJp
bmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogCiAtICh2b2lkKWZsYWdzQ2hhbmdl
ZDooTlNFdmVudCAqKXRoZUV2ZW50CiB7Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVs
RXZlbnRzKQorICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBMT0coVGV4dElucHV0LCAiZmxhZ3NDaGFuZ2VkOiVwICVA
IiwgdGhlRXZlbnQsIHRoZUV2ZW50KTsKQEAgLTIyMzYsNyArMjA1OCw3IEBAIHN0YXRpYyB2b2lk
IGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29t
cG9zaXRpb25VbmRlCiAKIC0gKEJPT0wpcGVyZm9ybUtleUVxdWl2YWxlbnQ6KE5TRXZlbnQgKill
dmVudAogewotICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykKKyAgICBpZiAo
X2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMoKSkKICAgICAgICAgcmV0dXJuIE5P
OwogCiAgICAgLy8gVGhlcmUncyBhIGNoYW5jZSB0aGF0IHJlc3BvbmRpbmcgdG8gdGhpcyBldmVu
dCB3aWxsIHJ1biBhIG5lc3RlZCBldmVudCBsb29wLCBhbmQKQEAgLTIyNzYsNyArMjA5OCw3IEBA
IHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5n
LCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKIC0gKHZvaWQpa2V5VXA6KE5TRXZlbnQgKil0aGVF
dmVudAogewotICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykKKyAgICBpZiAo
X2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMoKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgTE9HKFRleHRJbnB1dCwgImtleVVwOiVwICVAIiwgdGhlRXZlbnQsIHRoZUV2ZW50KTsK
QEAgLTIyODYsNyArMjEwOCw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0
cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKIC0gKHZvaWQp
a2V5RG93bjooTlNFdmVudCAqKXRoZUV2ZW50CiB7Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05v
bldoZWVsRXZlbnRzKQorICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50
cygpKQogICAgICAgICByZXR1cm47CiAKICAgICBMT0coVGV4dElucHV0LCAia2V5RG93bjolcCAl
QCVzIiwgdGhlRXZlbnQsIHRoZUV2ZW50LCAodGhlRXZlbnQgPT0gX2RhdGEtPl9rZXlEb3duRXZl
bnRCZWluZ1Jlc2VudCkgPyAiIChyZS1zZW50KSIgOiAiIik7CkBAIC0yMzI0LDcgKzIxNDYsNyBA
QCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmlu
ZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogCiAtICh2b2lkKWZsYWdzQ2hhbmdlZDooTlNFdmVu
dCAqKXRoZUV2ZW50CiB7Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRzKQor
ICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBMT0coVGV4dElucHV0LCAiZmxhZ3NDaGFuZ2VkOiVwICVAIiwgdGhlRXZl
bnQsIHRoZUV2ZW50KTsKQEAgLTIzNTAsNiArMjE3MiwxMSBAQCBzdGF0aWMgdm9pZCBleHRyYWN0
VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9u
VW5kZQogICAgIHJldHVybiBbc3VwZXIgaW5wdXRDb250ZXh0XTsKIH0KIAorLSAodm9pZClfc3Vw
ZXJRdWlja0xvb2tXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAoreworICAgIFtzdXBlciBxdWlj
a0xvb2tXaXRoRXZlbnQ6ZXZlbnRdOworfQorCiAtIChOU0FycmF5ICopdmFsaWRBdHRyaWJ1dGVz
Rm9yTWFya2VkVGV4dAogewogICAgIHN0YXRpYyBOU0FycmF5ICp2YWxpZEF0dHJpYnV0ZXM7CkBA
IC0yNTI0LDIxOSArMjM1MSwxOSBAQCBzdGF0aWMgdm9pZCBjcmVhdGVTYW5kYm94RXh0ZW5zaW9u
c0ZvckZpbGVVcGxvYWQoTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkLCBTYW5kYgogICAgIHJldHVy
biBOU01vdXNlSW5SZWN0KGxvY2FsUG9pbnQsIHZpc2libGVUaHVtYlJlY3QsIFtzZWxmIGlzRmxp
cHBlZF0pOwogfQogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEw
MDAKLXN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQgPSAma2V5VmFsdWVPYnNl
cnZpbmdDb250ZXh0OwotI2VuZGlmCi0KLS0gKHZvaWQpYWRkV2luZG93T2JzZXJ2ZXJzRm9yV2lu
ZG93OihOU1dpbmRvdyAqKXdpbmRvdwotewotICAgIGlmICh3aW5kb3cpIHsKLSAgICAgICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVj
dG9yOkBzZWxlY3Rvcihfd2luZG93RGlkQmVjb21lS2V5OikKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTpOU1dpbmRvd0RpZEJlY29tZUtl
eU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKLSAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRl
ciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2lu
ZG93RGlkUmVzaWduS2V5OikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbmFtZTpOU1dpbmRvd0RpZFJlc2lnbktleU5vdGlmaWNhdGlvbiBvYmpl
Y3Q6bmlsXTsKLSAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBh
ZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkTWluaWF0dXJpemU6
KSAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
bmFtZTpOU1dpbmRvd0RpZE1pbmlhdHVyaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwot
ICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVy
OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWREZW1pbmlhdHVyaXplOikKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTpOU1dp
bmRvd0RpZERlbWluaWF0dXJpemVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Ci0gICAgICAg
IFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBz
ZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZE1vdmU6KQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkTW92ZU5vdGlm
aWNhdGlvbiBvYmplY3Q6d2luZG93XTsKLSAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93
RGlkUmVzaXplOikgCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIG5hbWU6TlNXaW5kb3dEaWRSZXNpemVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRv
d107Ci0gICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2Jz
ZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZENoYW5nZUJhY2tpbmdQcm9w
ZXJ0aWVzOikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgbmFtZTpOU1dpbmRvd0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzTm90aWZpY2F0aW9u
IG9iamVjdDp3aW5kb3ddOwotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRDaGFu
Z2VTY3JlZW46KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBuYW1lOk5TV2luZG93RGlkQ2hhbmdlU2NyZWVuTm90aWZpY2F0aW9uIG9iamVjdDp3
aW5kb3ddOwotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFk
ZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRDaGFuZ2VMYXllckhv
c3Rpbmc6KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBuYW1lOkAiX05TV2luZG93RGlkQ2hhbmdlQ29udGVudHNIb3N0ZWRJbkxheWVyU3VyZmFj
ZU5vdGlmaWNhdGlvbiIgb2JqZWN0OndpbmRvd107Ci0gICAgICAgIFtbTlNOb3RpZmljYXRpb25D
ZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3Io
X3dpbmRvd0RpZENoYW5nZU9jY2x1c2lvblN0YXRlOikKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTpOU1dpbmRvd0RpZENoYW5nZU9jY2x1
c2lvblN0YXRlTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwotI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgICAgIFt3aW5kb3cgYWRkT2JzZXJ2ZXI6
c2VsZiBmb3JLZXlQYXRoOkAiY29udGVudExheW91dFJlY3QiIG9wdGlvbnM6TlNLZXlWYWx1ZU9i
c2VydmluZ09wdGlvbkluaXRpYWwgY29udGV4dDprZXlWYWx1ZU9ic2VydmluZ0NvbnRleHRdOwot
ICAgICAgICBbd2luZG93IGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAInRpdGxlYmFyQXBw
ZWFyc1RyYW5zcGFyZW50IiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25Jbml0aWFs
IGNvbnRleHQ6a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0XTsKLSNlbmRpZgotICAgICAgICBbX2Rh
dGEtPl93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3RhcnRPYnNlcnZpbmc6d2luZG93XTsKLSAg
ICB9Ci19Ci0KIC0gKHZvaWQpX2FkZEZvbnRQYW5lbE9ic2VydmVyCiB7Ci0jaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICBbW05TRm9udFBhbmVsIHNoYXJl
ZEZvbnRQYW5lbF0gYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidmlzaWJsZSIgb3B0aW9u
czowIGNvbnRleHQ6a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0XTsKLSNlbmRpZgotfQotCi0tICh2
b2lkKXJlbW92ZVdpbmRvd09ic2VydmVycwotewotICAgIE5TV2luZG93ICp3aW5kb3cgPSBfZGF0
YS0+X3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA/IF9kYXRhLT5fdGFyZ2V0V2luZG93
Rm9yTW92ZVByZXBhcmF0aW9uIDogW3NlbGYgd2luZG93XTsKLSAgICBpZiAoIXdpbmRvdykKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVy
XSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRCZWNvbWVLZXlOb3RpZmljYXRp
b24gb2JqZWN0Om5pbF07Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVy
XSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRSZXNpZ25LZXlOb3RpZmljYXRp
b24gb2JqZWN0Om5pbF07Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVy
XSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRNaW5pYXR1cml6ZU5vdGlmaWNh
dGlvbiBvYmplY3Q6d2luZG93XTsKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZERlbWluaWF0dXJpemVO
b3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBk
ZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRNb3ZlTm90
aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwotICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVm
YXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkUmVzaXplTm90
aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwotICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVm
YXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkQ2hhbmdlQmFj
a2luZ1Byb3BlcnRpZXNOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Ci0gICAgW1tOU05vdGlm
aWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNX
aW5kb3dEaWRDaGFuZ2VTY3JlZW5Ob3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Ci0gICAgW1tO
U05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5h
bWU6QCJfTlNXaW5kb3dEaWRDaGFuZ2VDb250ZW50c0hvc3RlZEluTGF5ZXJTdXJmYWNlTm90aWZp
Y2F0aW9uIiBvYmplY3Q6d2luZG93XTsKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1
bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZENoYW5nZU9jY2x1
c2lvblN0YXRlTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOwotI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgaWYgKF9kYXRhLT5fcGFnZS0+aXNFZGl0
YWJsZSgpKQotICAgICAgICBbW05TRm9udFBhbmVsIHNoYXJlZEZvbnRQYW5lbF0gcmVtb3ZlT2Jz
ZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidmlzaWJsZSIgY29udGV4dDprZXlWYWx1ZU9ic2Vydmlu
Z0NvbnRleHRdOwotICAgIFt3aW5kb3cgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAi
Y29udGVudExheW91dFJlY3QiIGNvbnRleHQ6a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0XTsKLSAg
ICBbd2luZG93IHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAInRpdGxlYmFyQXBwZWFy
c1RyYW5zcGFyZW50IiBjb250ZXh0OmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dF07Ci0jZW5kaWYK
LSAgICBbX2RhdGEtPl93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3RvcE9ic2VydmluZzp3aW5k
b3ddOworICAgIF9kYXRhLT5faW1wbC0+c3RhcnRPYnNlcnZpbmdGb250UGFuZWwoKTsKIH0KIAog
LSAodm9pZCl2aWV3V2lsbE1vdmVUb1dpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cKIHsKLSAgICAv
LyBJZiB3ZSdyZSBpbiB0aGUgbWlkZGxlIG9mIHByZXBhcmluZyB0byBtb3ZlIHRvIGEgd2luZG93
LCB3ZSBzaG91bGQgb25seSBiZSBtb3ZlZCB0byB0aGF0IHdpbmRvdy4KLSAgICBBU1NFUlQoIV9k
YXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uIHx8IChfZGF0YS0+X3RhcmdldFdp
bmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA9PSB3aW5kb3cpKTsKLQotICAgIE5TV2luZG93ICpjdXJy
ZW50V2luZG93ID0gW3NlbGYgd2luZG93XTsKLSAgICBpZiAod2luZG93ID09IGN1cnJlbnRXaW5k
b3cpCi0gICAgICAgIHJldHVybjsKLQotICAgIF9kYXRhLT5fcGFnZUNsaWVudC0+dmlld1dpbGxN
b3ZlVG9Bbm90aGVyV2luZG93KCk7Ci0gICAgCi0gICAgW3NlbGYgcmVtb3ZlV2luZG93T2JzZXJ2
ZXJzXTsKLSAgICBbc2VsZiBhZGRXaW5kb3dPYnNlcnZlcnNGb3JXaW5kb3c6d2luZG93XTsKKyAg
ICBfZGF0YS0+X2ltcGwtPnZpZXdXaWxsTW92ZVRvV2luZG93KHdpbmRvdyk7CiB9CiAKIC0gKHZv
aWQpdmlld0RpZE1vdmVUb1dpbmRvdwogewotICAgIE5TV2luZG93ICp3aW5kb3cgPSBfZGF0YS0+
X3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA/IF9kYXRhLT5fdGFyZ2V0V2luZG93Rm9y
TW92ZVByZXBhcmF0aW9uIDogc2VsZi53aW5kb3c7Ci0KLSAgICBpZiAod2luZG93KSB7Ci0gICAg
ICAgIFtzZWxmIGRvV2luZG93RGlkQ2hhbmdlU2NyZWVuXTsKLQotICAgICAgICBWaWV3U3RhdGU6
OkZsYWdzIHZpZXdTdGF0ZUNoYW5nZXMgPSBWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlIHwgVmll
d1N0YXRlOjpJc1Zpc2libGU7Ci0gICAgICAgIGlmIChbc2VsZiBpc0RlZmVycmluZ1ZpZXdJbldp
bmRvd0NoYW5nZXNdKQotICAgICAgICAgICAgX2RhdGEtPl92aWV3SW5XaW5kb3dDaGFuZ2VXYXNE
ZWZlcnJlZCA9IFlFUzsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdmlld1N0YXRlQ2hhbmdl
cyB8PSBWaWV3U3RhdGU6OklzSW5XaW5kb3c7Ci0gICAgICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0
YXRlRGlkQ2hhbmdlKHZpZXdTdGF0ZUNoYW5nZXMpOwotCi0gICAgICAgIFtzZWxmIF91cGRhdGVX
aW5kb3dBbmRWaWV3RnJhbWVzXTsKLQotICAgICAgICAvLyBGSVhNRSgxMzU1MDkpIFRoaXMgY2Fs
bCBiZWNvbWVzIHVubmVjZXNzYXJ5IG9uY2UgMTM1NTA5IGlzIGZpeGVkOyByZW1vdmUuCi0gICAg
ICAgIF9kYXRhLT5fcGFnZS0+bGF5ZXJIb3N0aW5nTW9kZURpZENoYW5nZSgpOwotCi0gICAgICAg
IGlmICghX2RhdGEtPl9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IpIHsKLSAgICAgICAgICAgIF9k
YXRhLT5fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gW05TRXZlbnQgYWRkTG9jYWxNb25pdG9y
Rm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5TRmxhZ3NDaGFuZ2VkTWFzayBoYW5kbGVyOl4oTlNFdmVu
dCAqZmxhZ3NDaGFuZ2VkRXZlbnQpIHsKLSAgICAgICAgICAgICAgICBbc2VsZiBfcG9zdEZha2VN
b3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudDpmbGFnc0NoYW5nZWRFdmVudF07Ci0g
ICAgICAgICAgICAgICAgcmV0dXJuIGZsYWdzQ2hhbmdlZEV2ZW50OwotICAgICAgICAgICAgfV07
Ci0gICAgICAgIH0KLQotICAgICAgICBbc2VsZiBfYWNjZXNzaWJpbGl0eVJlZ2lzdGVyVUlQcm9j
ZXNzVG9rZW5zXTsKLQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MDAwCi0gICAgICAgIGlmIChfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
ICYmICFbW3NlbGYgZ2VzdHVyZVJlY29nbml6ZXJzXSBjb250YWluc09iamVjdDpfZGF0YS0+X2lt
bWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgpXSAmJiAhX2RhdGEtPl9pZ25vcmVz
Tm9uV2hlZWxFdmVudHMgJiYgX2RhdGEtPl9hbGxvd3NMaW5rUHJldmlldykKLSAgICAgICAgICAg
IFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOl9kYXRhLT5faW1tZWRpYXRlQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXIuZ2V0KCldOwotI2VuZGlmCi0gICAgfSBlbHNlIHsKLSAgICAgICAgVmlld1N0
YXRlOjpGbGFncyB2aWV3U3RhdGVDaGFuZ2VzID0gVmlld1N0YXRlOjpXaW5kb3dJc0FjdGl2ZSB8
IFZpZXdTdGF0ZTo6SXNWaXNpYmxlOwotICAgICAgICBpZiAoW3NlbGYgaXNEZWZlcnJpbmdWaWV3
SW5XaW5kb3dDaGFuZ2VzXSkKLSAgICAgICAgICAgIF9kYXRhLT5fdmlld0luV2luZG93Q2hhbmdl
V2FzRGVmZXJyZWQgPSBZRVM7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZpZXdTdGF0ZUNo
YW5nZXMgfD0gVmlld1N0YXRlOjpJc0luV2luZG93OwotICAgICAgICBfZGF0YS0+X3BhZ2UtPnZp
ZXdTdGF0ZURpZENoYW5nZSh2aWV3U3RhdGVDaGFuZ2VzKTsKLQotICAgICAgICBbTlNFdmVudCBy
ZW1vdmVNb25pdG9yOl9kYXRhLT5fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yXTsKLSAgICAgICAg
X2RhdGEtPl9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IgPSBuaWw7Ci0KLSAgICAgICAgW3NlbGYg
X2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uOk5PXTsKLQot
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgICAgIGlm
IChfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyKQotICAgICAgICAgICAg
W3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6X2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25HZXN0
dXJlUmVjb2duaXplci5nZXQoKV07Ci0jZW5kaWYKLSAgICB9Ci0KLSAgICBfZGF0YS0+X3BhZ2Ut
PnNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKFtzZWxmIF9pbnRyaW5zaWNEZXZpY2VTY2Fs
ZUZhY3Rvcl0pOwotfQotCi0tICh2b2lkKWRvV2luZG93RGlkQ2hhbmdlU2NyZWVuCi17Ci0gICAg
TlNXaW5kb3cgKndpbmRvdyA9IF9kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9u
ID8gX2RhdGEtPl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gOiBzZWxmLndpbmRvdzsK
LSAgICBfZGF0YS0+X3BhZ2UtPndpbmRvd1NjcmVlbkRpZENoYW5nZSgoUGxhdGZvcm1EaXNwbGF5
SUQpW1tbW3dpbmRvdyBzY3JlZW5dIGRldmljZURlc2NyaXB0aW9uXSBvYmplY3RGb3JLZXk6QCJO
U1NjcmVlbk51bWJlciJdIGludFZhbHVlXSk7Ci19Ci0KLS0gKHZvaWQpX3dpbmRvd0RpZEJlY29t
ZUtleTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KLXsKLSAgICBOU1dpbmRvdyAqa2V5
V2luZG93ID0gW25vdGlmaWNhdGlvbiBvYmplY3RdOwotICAgIGlmIChrZXlXaW5kb3cgPT0gW3Nl
bGYgd2luZG93XSB8fCBrZXlXaW5kb3cgPT0gW1tzZWxmIHdpbmRvd10gYXR0YWNoZWRTaGVldF0p
IHsKLSAgICAgICAgX2RhdGEtPl9pbXBsLT51cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCk7Ci0gICAg
ICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6V2luZG93SXNB
Y3RpdmUpOwotICAgIH0KLX0KLQotLSAodm9pZClfd2luZG93RGlkQ2hhbmdlU2NyZWVuOihOU05v
dGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIFtzZWxmIGRvV2luZG93RGlkQ2hhbmdl
U2NyZWVuXTsKLX0KLQotLSAodm9pZClfd2luZG93RGlkQ2hhbmdlTGF5ZXJIb3N0aW5nOihOU05v
dGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIF9kYXRhLT5fcGFnZS0+bGF5ZXJIb3N0
aW5nTW9kZURpZENoYW5nZSgpOwotfQotCi0tICh2b2lkKV93aW5kb3dEaWRSZXNpZ25LZXk6KE5T
Tm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCi17Ci0gICAgTlNXaW5kb3cgKmZvcm1lcktleVdp
bmRvdyA9IFtub3RpZmljYXRpb24gb2JqZWN0XTsKLSAgICBpZiAoZm9ybWVyS2V5V2luZG93ID09
IFtzZWxmIHdpbmRvd10gfHwgZm9ybWVyS2V5V2luZG93ID09IFtbc2VsZiB3aW5kb3ddIGF0dGFj
aGVkU2hlZXRdKSB7Ci0gICAgICAgIF9kYXRhLT5faW1wbC0+dXBkYXRlU2VjdXJlSW5wdXRTdGF0
ZSgpOwotICAgICAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6
OldpbmRvd0lzQWN0aXZlKTsKLSAgICB9Ci19Ci0KLS0gKHZvaWQpX3dpbmRvd0RpZE1pbmlhdHVy
aXplOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIF9kYXRhLT5fcGFnZS0+
dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsKLX0KLQotLSAodm9pZClf
d2luZG93RGlkRGVtaW5pYXR1cml6ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KLXsK
LSAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OklzVmlzaWJs
ZSk7Ci19Ci0KLS0gKHZvaWQpX3dpbmRvd0RpZE1vdmU6KE5TTm90aWZpY2F0aW9uICopbm90aWZp
Y2F0aW9uCi17Ci0gICAgW3NlbGYgX3VwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXNdOyAgICAKLX0K
LQotLSAodm9pZClfd2luZG93RGlkUmVzaXplOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlv
bgotewotICAgIFtzZWxmIF91cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzXTsKLX0KLQotLSAodm9p
ZClfd2luZG93RGlkT3JkZXJPZmZTY3JlZW46KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9u
Ci17Ci0gICAgX2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpJc1Zp
c2libGUgfCBWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsKLX0KLQotLSAodm9pZClfd2luZG93
RGlkT3JkZXJPblNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KLXsKLSAgICBf
ZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OklzVmlzaWJsZSB8IFZp
ZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOwotfQotCi0tICh2b2lkKV93aW5kb3dEaWRDaGFuZ2VC
YWNraW5nUHJvcGVydGllczooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KLXsKLSAgICBD
R0Zsb2F0IG9sZEJhY2tpbmdTY2FsZUZhY3RvciA9IFtbbm90aWZpY2F0aW9uLnVzZXJJbmZvIG9i
amVjdEZvcktleTpOU0JhY2tpbmdQcm9wZXJ0eU9sZFNjYWxlRmFjdG9yS2V5XSBkb3VibGVWYWx1
ZV07Ci0gICAgQ0dGbG9hdCBuZXdCYWNraW5nU2NhbGVGYWN0b3IgPSBbc2VsZiBfaW50cmluc2lj
RGV2aWNlU2NhbGVGYWN0b3JdOyAKLSAgICBpZiAob2xkQmFja2luZ1NjYWxlRmFjdG9yID09IG5l
d0JhY2tpbmdTY2FsZUZhY3RvcikKLSAgICAgICAgcmV0dXJuOyAKLQotICAgIF9kYXRhLT5fcGFn
ZS0+c2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IobmV3QmFja2luZ1NjYWxlRmFjdG9yKTsK
LX0KLQotLSAodm9pZClfd2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3RhdGU6KE5TTm90aWZpY2F0
aW9uICopbm90aWZpY2F0aW9uCi17Ci0gICAgX2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRDaGFu
Z2UoVmlld1N0YXRlOjpJc1Zpc2libGUpOworICAgIF9kYXRhLT5faW1wbC0+dmlld0RpZE1vdmVU
b1dpbmRvdygpOwogfQogCiAtICh2b2lkKWRyYXdSZWN0OihOU1JlY3QpcmVjdApAQCAtMjc2OSwx
MyArMjM5Niw3IEBAIHN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQgPSAma2V5
VmFsdWVPYnNlcnZpbmdDb250ZXh0OwogCiAtICh2b2lkKXZpZXdEaWRDaGFuZ2VCYWNraW5nUHJv
cGVydGllcwogewotICAgIE5TQ29sb3JTcGFjZSAqY29sb3JTcGFjZSA9IFtbc2VsZiB3aW5kb3dd
IGNvbG9yU3BhY2VdOwotICAgIGlmIChbY29sb3JTcGFjZSBpc0VxdWFsVG86X2RhdGEtPl9jb2xv
clNwYWNlLmdldCgpXSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgX2RhdGEtPl9jb2xvclNwYWNl
ID0gbnVsbHB0cjsKLSAgICBpZiAoRHJhd2luZ0FyZWFQcm94eSAqZHJhd2luZ0FyZWEgPSBfZGF0
YS0+X3BhZ2UtPmRyYXdpbmdBcmVhKCkpCi0gICAgICAgIGRyYXdpbmdBcmVhLT5jb2xvclNwYWNl
RGlkQ2hhbmdlKCk7CisgICAgX2RhdGEtPl9pbXBsLT52aWV3RGlkQ2hhbmdlQmFja2luZ1Byb3Bl
cnRpZXMoKTsKIH0KIAogLSAodm9pZClfYWN0aXZlU3BhY2VEaWRDaGFuZ2U6KE5TTm90aWZpY2F0
aW9uICopbm90aWZpY2F0aW9uCkBAIC0yNzgzLDMyICsyNDA0LDYgQEAgc3RhdGljIHZvaWQqIGtl
eVZhbHVlT2JzZXJ2aW5nQ29udGV4dCA9ICZrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQ7CiAgICAg
X2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpJc1Zpc2libGUpOwog
fQogCi0tICh2b2lkKV9wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cAotewotICAgIGlmIChfZGF0
YS0+X2RpZFJlZ2lzdGVyRm9yTG9va3VwUG9wb3ZlckNsb3NlTm90aWZpY2F0aW9ucykKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgX2RhdGEtPl9kaWRSZWdpc3RlckZvckxvb2t1cFBvcG92ZXJDbG9z
ZU5vdGlmaWNhdGlvbnMgPSBZRVM7Ci0KLSAgICBpZiAoY2FuTG9hZExVTm90aWZpY2F0aW9uUG9w
b3ZlcldpbGxDbG9zZSgpKQotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRD
ZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF9kaWN0aW9uYXJ5TG9v
a3VwUG9wb3ZlcldpbGxDbG9zZTopIG5hbWU6Z2V0TFVOb3RpZmljYXRpb25Qb3BvdmVyV2lsbENs
b3NlKCkgb2JqZWN0Om5pbF07Ci19Ci0KLS0gKHZvaWQpX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVy
V2lsbENsb3NlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIFtzZWxmIF9j
bGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNz
YWxBbmltYXRpb246Ok5vbmVdOwotfQotCi0tICh2b2lkKV9hY2Nlc3NpYmlsaXR5UmVnaXN0ZXJV
SVByb2Nlc3NUb2tlbnMKLXsKLSAgICAvLyBJbml0aWFsaXplIHJlbW90ZSBhY2Nlc3NpYmlsaXR5
IHdoZW4gdGhlIHdpbmRvdyBjb25uZWN0aW9uIGhhcyBiZWVuIGVzdGFibGlzaGVkLgotICAgIE5T
RGF0YSAqcmVtb3RlRWxlbWVudFRva2VuID0gV0tBWFJlbW90ZVRva2VuRm9yRWxlbWVudChzZWxm
KTsKLSAgICBOU0RhdGEgKnJlbW90ZVdpbmRvd1Rva2VuID0gV0tBWFJlbW90ZVRva2VuRm9yRWxl
bWVudChbc2VsZiB3aW5kb3ddKTsKLSAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZWxlbWVudFRva2Vu
ID0gSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KFty
ZW1vdGVFbGVtZW50VG9rZW4gYnl0ZXNdKSwgW3JlbW90ZUVsZW1lbnRUb2tlbiBsZW5ndGhdKTsK
LSAgICBJUEM6OkRhdGFSZWZlcmVuY2Ugd2luZG93VG9rZW4gPSBJUEM6OkRhdGFSZWZlcmVuY2Uo
cmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oW3JlbW90ZVdpbmRvd1Rva2VuIGJ5dGVz
XSksIFtyZW1vdGVXaW5kb3dUb2tlbiBsZW5ndGhdKTsKLSAgICBfZGF0YS0+X3BhZ2UtPnJlZ2lz
dGVyVUlQcm9jZXNzQWNjZXNzaWJpbGl0eVRva2VucyhlbGVtZW50VG9rZW4sIHdpbmRvd1Rva2Vu
KTsKLX0KLQogLSAodm9pZClfdXBkYXRlUmVtb3RlQWNjZXNzaWJpbGl0eVJlZ2lzdHJhdGlvbjoo
Qk9PTClyZWdpc3RlclByb2Nlc3MKIHsKICAgICAvLyBXaGVuIHRoZSB0cmVlIGlzIGNvbm5lY3Rl
ZC9kaXNjb25uZWN0ZWQsIHRoZSByZW1vdGUgYWNjZXNzaWJpbGl0eSByZWdpc3RyYXRpb24KQEAg
LTI4MzMsNyArMjQyOCw3IEBAIHN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQg
PSAma2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0OwogICAgIC8vIEFmdGVyIGVuYWJsaW5nIGFjY2Vz
c2liaWxpdHkgdXBkYXRlIHRoZSB3aW5kb3cgZnJhbWUgb24gdGhlIHdlYiBwcm9jZXNzIHNvIHRo
YXQgdGhlCiAgICAgLy8gY29ycmVjdCBhY2Nlc3NpYmlsaXR5IHBvc2l0aW9uIGlzIHRyYW5zbWl0
dGVkICh3aGVuIEFYIGlzIG9mZiwgdGhhdCBwb3NpdGlvbiBpcyBub3QgY2FsY3VsYXRlZCkuCiAg
ICAgV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZW5hYmxlQWNjZXNzaWJpbGl0eSgpOwotICAgIFtz
ZWxmIF91cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzXTsKKyAgICBfZGF0YS0+X2ltcGwtPnVwZGF0
ZVdpbmRvd0FuZFZpZXdGcmFtZXMoKTsKIH0KIAogLSAoaWQpYWNjZXNzaWJpbGl0eUZvY3VzZWRV
SUVsZW1lbnQKQEAgLTI4ODgsNDUgKzI0ODMsMTQgQEAgc3RhdGljIHZvaWQqIGtleVZhbHVlT2Jz
ZXJ2aW5nQ29udGV4dCA9ICZrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQ7CiAgICAgcmV0dXJuIGhp
dFZpZXc7CiB9CiAKLS0gKHZvaWQpX3Bvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFu
Z2VkRXZlbnQ6KE5TRXZlbnQgKilmbGFnc0NoYW5nZWRFdmVudAotewotICAgIE5TRXZlbnQgKmZh
a2VFdmVudCA9IFtOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpOU01vdXNlTW92ZWQgbG9jYXRp
b246W1tmbGFnc0NoYW5nZWRFdmVudCB3aW5kb3ddIG1vdXNlTG9jYXRpb25PdXRzaWRlT2ZFdmVu
dFN0cmVhbV0KLSAgICAgICAgbW9kaWZpZXJGbGFnczpbZmxhZ3NDaGFuZ2VkRXZlbnQgbW9kaWZp
ZXJGbGFnc10gdGltZXN0YW1wOltmbGFnc0NoYW5nZWRFdmVudCB0aW1lc3RhbXBdIHdpbmRvd051
bWJlcjpbZmxhZ3NDaGFuZ2VkRXZlbnQgd2luZG93TnVtYmVyXQotICAgICAgICBjb250ZXh0Oltm
bGFnc0NoYW5nZWRFdmVudCBjb250ZXh0XSBldmVudE51bWJlcjowIGNsaWNrQ291bnQ6MCBwcmVz
c3VyZTowXTsKLSAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KGZha2VFdmVudCwgX2Rh
dGEtPl9wcmVzc3VyZUV2ZW50LCBzZWxmKTsKLSAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZU1vdXNl
RXZlbnQod2ViRXZlbnQpOwotfQotCiAtIChOU0ludGVnZXIpY29udmVyc2F0aW9uSWRlbnRpZmll
cgogewogICAgIHJldHVybiAoTlNJbnRlZ2VyKXNlbGY7CiB9CiAKLS0gKGZsb2F0KV9pbnRyaW5z
aWNEZXZpY2VTY2FsZUZhY3RvcgotewotICAgIGlmIChfZGF0YS0+X292ZXJyaWRlRGV2aWNlU2Nh
bGVGYWN0b3IpCi0gICAgICAgIHJldHVybiBfZGF0YS0+X292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0
b3I7Ci0gICAgaWYgKF9kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uKQotICAg
ICAgICByZXR1cm4gW19kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uIGJhY2tp
bmdTY2FsZUZhY3Rvcl07Ci0gICAgaWYgKE5TV2luZG93ICp3aW5kb3cgPSBbc2VsZiB3aW5kb3dd
KQotICAgICAgICByZXR1cm4gW3dpbmRvdyBiYWNraW5nU2NhbGVGYWN0b3JdOwotICAgIHJldHVy
biBbW05TU2NyZWVuIG1haW5TY3JlZW5dIGJhY2tpbmdTY2FsZUZhY3Rvcl07Ci19Ci0KIC0gKHZv
aWQpcXVpY2tMb29rV2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBpZiAoX2RhdGEt
Pl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCi0gICAgICAgIHJldHVybjsKLQotI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgaWYgKF9kYXRhLT5faW1tZWRp
YXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIpIHsKLSAgICAgICAgW3N1cGVyIHF1aWNrTG9va1dp
dGhFdmVudDpldmVudF07Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLQotICAgIE5T
UG9pbnQgbG9jYXRpb25JblZpZXdDb29yZGluYXRlcyA9IFtzZWxmIGNvbnZlcnRQb2ludDpbZXZl
bnQgbG9jYXRpb25JbldpbmRvd10gZnJvbVZpZXc6bmlsXTsKLSAgICBfZGF0YS0+X3BhZ2UtPnBl
cmZvcm1EaWN0aW9uYXJ5TG9va3VwQXRMb2NhdGlvbihGbG9hdFBvaW50KGxvY2F0aW9uSW5WaWV3
Q29vcmRpbmF0ZXMueCwgbG9jYXRpb25JblZpZXdDb29yZGluYXRlcy55KSk7CisgICAgX2RhdGEt
Pl9pbXBsLT5xdWlja0xvb2tXaXRoRXZlbnQoZXZlbnQpOwogfQogCiAtIChzdGQ6OnVuaXF1ZV9w
dHI8V2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5PilfY3JlYXRlRHJhd2luZ0FyZWFQcm94eQpAQCAt
MjkzOSwxOSArMjUwMyw3IEBAIHN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQg
PSAma2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0OwogCiAtIChXZWJLaXQ6OkNvbG9yU3BhY2VEYXRh
KV9jb2xvclNwYWNlCiB7Ci0gICAgaWYgKCFfZGF0YS0+X2NvbG9yU3BhY2UpIHsKLSAgICAgICAg
aWYgKF9kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uKQotICAgICAgICAgICAg
X2RhdGEtPl9jb2xvclNwYWNlID0gW19kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0
aW9uIGNvbG9yU3BhY2VdOwotICAgICAgICBlbHNlIGlmIChOU1dpbmRvdyAqd2luZG93ID0gW3Nl
bGYgd2luZG93XSkKLSAgICAgICAgICAgIF9kYXRhLT5fY29sb3JTcGFjZSA9IFt3aW5kb3cgY29s
b3JTcGFjZV07Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIF9kYXRhLT5fY29sb3JTcGFjZSA9
IFtbTlNTY3JlZW4gbWFpblNjcmVlbl0gY29sb3JTcGFjZV07Ci0gICAgfQotICAgICAgICAKLSAg
ICBDb2xvclNwYWNlRGF0YSBjb2xvclNwYWNlRGF0YTsKLSAgICBjb2xvclNwYWNlRGF0YS5jZ0Nv
bG9yU3BhY2UgPSBbX2RhdGEtPl9jb2xvclNwYWNlIENHQ29sb3JTcGFjZV07Ci0KLSAgICByZXR1
cm4gY29sb3JTcGFjZURhdGE7ICAgIAorICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmNvbG9yU3Bh
Y2UoKTsKIH0KIAogLSAodm9pZClfcHJvY2Vzc0RpZEV4aXQKQEAgLTI5NzMsMTkgKzI1MjUsNyBA
QCBzdGF0aWMgdm9pZCoga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0ID0gJmtleVZhbHVlT2JzZXJ2
aW5nQ29udGV4dDsKIAogLSAodm9pZClfZGlkUmVsYXVuY2hQcm9jZXNzCiB7Ci0gICAgW3NlbGYg
X2FjY2Vzc2liaWxpdHlSZWdpc3RlclVJUHJvY2Vzc1Rva2Vuc107Ci19Ci0KLS0gKHZvaWQpX3By
ZWZlcmVuY2VzRGlkQ2hhbmdlCi17Ci0gICAgQk9PTCBuZWVkc1ZpZXdGcmFtZUluV2luZG93Q29v
cmRpbmF0ZXMgPSBfZGF0YS0+X3BhZ2UtPnByZWZlcmVuY2VzKCkucGx1Z2luc0VuYWJsZWQoKTsK
LQotICAgIGlmICghIW5lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9PSAhIV9kYXRh
LT5fbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBfZGF0YS0+X25lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9IG5lZWRzVmll
d0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlczsKLSAgICBpZiAoW3NlbGYgd2luZG93XSkKLSAgICAg
ICAgW3NlbGYgX3VwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXNdOworICAgIF9kYXRhLT5faW1wbC0+
YWNjZXNzaWJpbGl0eVJlZ2lzdGVyVUlQcm9jZXNzVG9rZW5zKCk7CiB9CiAKIC0gKHZvaWQpX3Nl
dFVzZXJJbnRlcmZhY2VJdGVtU3RhdGU6KE5TU3RyaW5nICopY29tbWFuZE5hbWUgZW5hYmxlZDoo
Qk9PTClpc0VuYWJsZWQgc3RhdGU6KGludCluZXdTdGF0ZQpAQCAtMzE2NCwzMyArMjcwNCw2IEBA
IHN0YXRpYyB2b2lkKiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQgPSAma2V5VmFsdWVPYnNlcnZp
bmdDb250ZXh0OwogICAgIH0KIH0KIAotLSAodm9pZClfc2V0VGV4dEluZGljYXRvcjooVGV4dElu
ZGljYXRvciYpdGV4dEluZGljYXRvcgotewotICAgIFtzZWxmIF9zZXRUZXh0SW5kaWNhdG9yOnRl
eHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVy
bWFuZW50XTsKLX0KLQotLSAodm9pZClfc2V0VGV4dEluZGljYXRvcjooVGV4dEluZGljYXRvciYp
dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6KFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSls
aWZldGltZQotewotICAgIGlmICghX2RhdGEtPl90ZXh0SW5kaWNhdG9yV2luZG93KQotICAgICAg
ICBfZGF0YS0+X3RleHRJbmRpY2F0b3JXaW5kb3cgPSBzdGQ6Om1ha2VfdW5pcXVlPFRleHRJbmRp
Y2F0b3JXaW5kb3c+KHNlbGYpOwotCi0gICAgTlNSZWN0IHRleHRCb3VuZGluZ1JlY3RJblNjcmVl
bkNvb3JkaW5hdGVzID0gW3NlbGYud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46W3NlbGYgY29u
dmVydFJlY3Q6dGV4dEluZGljYXRvci50ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5h
dGVzKCkgdG9WaWV3Om5pbF1dOwotICAgIF9kYXRhLT5fdGV4dEluZGljYXRvcldpbmRvdy0+c2V0
VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBOU1JlY3RUb0NHUmVjdCh0ZXh0Qm91bmRpbmdS
ZWN0SW5TY3JlZW5Db29yZGluYXRlcyksIGxpZmV0aW1lKTsKLX0KLQotLSAodm9pZClfY2xlYXJU
ZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjooVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFu
aW1hdGlvbilhbmltYXRpb24KLXsKLSAgICBpZiAoX2RhdGEtPl90ZXh0SW5kaWNhdG9yV2luZG93
KQotICAgICAgICBfZGF0YS0+X3RleHRJbmRpY2F0b3JXaW5kb3ctPmNsZWFyVGV4dEluZGljYXRv
cihhbmltYXRpb24pOwotICAgIF9kYXRhLT5fdGV4dEluZGljYXRvcldpbmRvdyA9IG51bGxwdHI7
Ci19Ci0KLS0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczooZmxvYXQp
cHJvZ3Jlc3MKLXsKLSAgICBpZiAoX2RhdGEtPl90ZXh0SW5kaWNhdG9yV2luZG93KQotICAgICAg
ICBfZGF0YS0+X3RleHRJbmRpY2F0b3JXaW5kb3ctPnNldEFuaW1hdGlvblByb2dyZXNzKHByb2dy
ZXNzKTsKLX0KLQogLSAodm9pZClfc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVSb290TGF5
ZXI6KENBTGF5ZXIgKilyb290TGF5ZXIKIHsKICAgICBbcm9vdExheWVyIHdlYl9kaXNhYmxlQWxs
QWN0aW9uc107CkBAIC0zNTIyLDEyICszMDM1LDYgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0
aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKICAgICByZXR1cm4gW05TQXJy
YXkgYXJyYXlXaXRoT2JqZWN0OltwYXRoIGxhc3RQYXRoQ29tcG9uZW50XV07CiB9CiAKLQotLSAo
TlNXaW5kb3cgKilfdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uCi17Ci0gICAgcmV0dXJu
IF9kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uOwotfQotCiAjaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQogLSAoQk9PTClfaGFzRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIK
IHsKQEAgLTM1NTYsMTEgKzMwNjMsNiBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVl
RmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAgIHJldHVybiAhW3NpbmsgZGlkUmVj
ZWl2ZVVuaGFuZGxlZENvbW1hbmRdOwogfQogCi0tICh2b2lkKV9zZXRJbnRyaW5zaWNDb250ZW50
U2l6ZTooTlNTaXplKWludHJpbnNpY0NvbnRlbnRTaXplCi17Ci0gICAgX2RhdGEtPl9pbXBsLT5z
ZXRJbnRyaW5zaWNDb250ZW50U2l6ZShOU1NpemVUb0NHU2l6ZShpbnRyaW5zaWNDb250ZW50U2l6
ZSkpOwotfQotCiAtIChOU0ludGVnZXIpc3BlbGxDaGVja2VyRG9jdW1lbnRUYWcKIHsKICAgICBp
ZiAoIV9kYXRhLT5faGFzU3BlbGxDaGVja2VyRG9jdW1lbnRUYWcpIHsKQEAgLTM2MjEsMjMgKzMx
MjMsMTcgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChO
U1N0cmluZyAqcGF0aCkKICAgICBfZGF0YS0+X3BhZ2VDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVl
PFBhZ2VDbGllbnRJbXBsPihzZWxmLCB3ZWJWaWV3KTsKICAgICBfZGF0YS0+X3BhZ2UgPSBwcm9j
ZXNzUG9vbC5jcmVhdGVXZWJQYWdlKCpfZGF0YS0+X3BhZ2VDbGllbnQsIFdURjo6bW92ZShjb25m
aWd1cmF0aW9uKSk7CiAKLSAgICBfZGF0YS0+X2ltcGwgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYlZp
ZXdJbXBsPihzZWxmLCAqX2RhdGEtPl9wYWdlKTsKLSAgICBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50
SW1wbCo+KF9kYXRhLT5fcGFnZUNsaWVudC5nZXQoKSktPnNldEltcGwoKl9kYXRhLT5faW1wbCk7
CisgICAgX2RhdGEtPl9pbXBsID0gc3RkOjptYWtlX3VuaXF1ZTxXZWJWaWV3SW1wbD4oc2VsZiwg
Kl9kYXRhLT5fcGFnZSwgKl9kYXRhLT5fcGFnZUNsaWVudCk7CisgICAgc3RhdGljX2Nhc3Q8UGFn
ZUNsaWVudEltcGwmPigqX2RhdGEtPl9wYWdlQ2xpZW50KS5zZXRJbXBsKCpfZGF0YS0+X2ltcGwp
OwogCiAgICAgX2RhdGEtPl9wYWdlLT5zZXRBZGRzVmlzaXRlZExpbmtzKHByb2Nlc3NQb29sLmhp
c3RvcnlDbGllbnQoKS5hZGRzVmlzaXRlZExpbmtzKCkpOwogCi0gICAgX2RhdGEtPl9wYWdlLT5z
ZXRJbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3Rvcihbc2VsZiBfaW50cmluc2ljRGV2aWNlU2NhbGVG
YWN0b3JdKTsKICAgICBfZGF0YS0+X3BhZ2UtPmluaXRpYWxpemVXZWJQYWdlKCk7CiAKICAgICBf
ZGF0YS0+X21vdXNlRG93bkV2ZW50ID0gbmlsOwotICAgIF9kYXRhLT5fcHJlc3N1cmVFdmVudCA9
IG5pbDsKICAgICBfZGF0YS0+X2lnbm9yaW5nTW91c2VEcmFnZ2VkRXZlbnRzID0gTk87CiAgICAg
X2RhdGEtPl93aW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkID0gWUVTOwogCi0gICAgX2Rh
dGEtPl93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgPSBhZG9wdE5TKFtbV0tXaW5kb3dWaXNpYmls
aXR5T2JzZXJ2ZXIgYWxsb2NdIGluaXRXaXRoVmlldzpzZWxmXSk7Ci0KLSAgICBfZGF0YS0+X25l
ZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9IF9kYXRhLT5fcGFnZS0+cHJlZmVyZW5j
ZXMoKS5wbHVnaW5zRW5hYmxlZCgpOwotCiAgICAgW3NlbGYgX3JlZ2lzdGVyRHJhZ2dlZFR5cGVz
XTsKIAogICAgIHNlbGYud2FudHNMYXllciA9IFlFUzsKQEAgLTM2NTAsMTcgKzMxNDYsNiBAQCBz
dGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpw
YXRoKQogICAgIE5TTm90aWZpY2F0aW9uQ2VudGVyKiB3b3Jrc3BhY2VOb3RpZmljYXRpb25DZW50
ZXIgPSBbW05TV29ya3NwYWNlIHNoYXJlZFdvcmtzcGFjZV0gbm90aWZpY2F0aW9uQ2VudGVyXTsK
ICAgICBbd29ya3NwYWNlTm90aWZpY2F0aW9uQ2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0
b3I6QHNlbGVjdG9yKF9hY3RpdmVTcGFjZURpZENoYW5nZTopIG5hbWU6TlNXb3Jrc3BhY2VBY3Rp
dmVTcGFjZURpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKIAotI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgX2RhdGEtPl9hbGxvd3NMaW5r
UHJldmlldyA9IFlFUzsKLQotICAgIGlmIChDbGFzcyBnZXN0dXJlQ2xhc3MgPSBOU0NsYXNzRnJv
bVN0cmluZyhAIk5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIiKSkgewotICAgICAg
ICBfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyID0gYWRvcHROUyhbKE5T
SW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilbZ2VzdHVyZUNsYXNzIGFsbG9jXSBp
bml0XSk7Ci0gICAgICAgIF9kYXRhLT5faW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciA9IGFkb3B0
TlMoW1tXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoUGFnZToqX2Rh
dGEtPl9wYWdlIHZpZXc6c2VsZiByZWNvZ25pemVyOl9kYXRhLT5faW1tZWRpYXRlQWN0aW9uR2Vz
dHVyZVJlY29nbml6ZXIuZ2V0KCldKTsKLSAgICAgICAgW19kYXRhLT5faW1tZWRpYXRlQWN0aW9u
R2VzdHVyZVJlY29nbml6ZXIgc2V0RGVsZWdhdGU6X2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyLmdldCgpXTsKLSAgICAgICAgW19kYXRhLT5faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJl
Y29nbml6ZXIgc2V0RGVsYXlzUHJpbWFyeU1vdXNlQnV0dG9uRXZlbnRzOk5PXTsKLSAgICB9Ci0j
ZW5kaWYKLQogICAgIHJldHVybiBzZWxmOwogfQogCkBAIC0zNzA1LDQyICszMTkwLDYgQEAgc3Rh
dGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0
aCkKIH0KICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRAogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLQotLSAodm9pZClfdXBkYXRlQ29udGVudEluc2V0c0lm
QXV0b21hdGljCi17Ci0gICAgaWYgKCFzZWxmLl9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJ
bnNldHMpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmICgoc2VsZi53aW5kb3cuc3R5bGVNYXNr
ICYgTlNGdWxsU2l6ZUNvbnRlbnRWaWV3V2luZG93TWFzaykgJiYgIXNlbGYud2luZG93LnRpdGxl
YmFyQXBwZWFyc1RyYW5zcGFyZW50ICYmICFbc2VsZiBlbmNsb3NpbmdTY3JvbGxWaWV3XSkgewot
ICAgICAgICBOU1JlY3QgY29udGVudExheW91dFJlY3QgPSBbc2VsZiBjb252ZXJ0UmVjdDpzZWxm
LndpbmRvdy5jb250ZW50TGF5b3V0UmVjdCBmcm9tVmlldzpuaWxdOwotICAgICAgICBDR0Zsb2F0
IG5ld1RvcENvbnRlbnRJbnNldCA9IE5TTWF4WShjb250ZW50TGF5b3V0UmVjdCkgLSBOU0hlaWdo
dChjb250ZW50TGF5b3V0UmVjdCk7Ci0gICAgICAgIGlmIChzZWxmLl90b3BDb250ZW50SW5zZXQg
IT0gbmV3VG9wQ29udGVudEluc2V0KQotICAgICAgICAgICAgc2VsZi5fdG9wQ29udGVudEluc2V0
ID0gbmV3VG9wQ29udGVudEluc2V0OwotICAgIH0gZWxzZQotICAgICAgICBzZWxmLl90b3BDb250
ZW50SW5zZXQgPSAwOwotfQotCi0jZW5kaWYKLQotLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQ
YXRoOihOU1N0cmluZyAqKWtleVBhdGggb2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGlj
dGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0Oih2b2lkICopY29udGV4dAotewotI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgaWYgKGNvbnRleHQgIT0ga2V5
VmFsdWVPYnNlcnZpbmdDb250ZXh0KSB7Ci0gICAgICAgIFtzdXBlciBvYnNlcnZlVmFsdWVGb3JL
ZXlQYXRoOmtleVBhdGggb2ZPYmplY3Q6b2JqZWN0IGNoYW5nZTpjaGFuZ2UgY29udGV4dDpjb250
ZXh0XTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIGlmIChba2V5UGF0aCBpc0VxdWFs
VG9TdHJpbmc6QCJ2aXNpYmxlIl0gJiYgW05TRm9udFBhbmVsIHNoYXJlZEZvbnRQYW5lbEV4aXN0
c10gJiYgb2JqZWN0ID09IFtOU0ZvbnRQYW5lbCBzaGFyZWRGb250UGFuZWxdKSB7Ci0gICAgICAg
IFtzZWxmIHVwZGF0ZUZvbnRQYW5lbElmTmVlZGVkXTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAiY29udGVudExheW91dFJlY3QiXSB8
fCBba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJ0aXRsZWJhckFwcGVhcnNUcmFuc3BhcmVudCJd
KQotICAgICAgICBbc2VsZiBfdXBkYXRlQ29udGVudEluc2V0c0lmQXV0b21hdGljXTsKLSNlbmRp
ZgotfQotCi0KIC0gKHZvaWQpX2RpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5G
cmFtZQogewogICAgIGlmIChfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyKQpAQCAtMzc4MywxNSAr
MzIzMiw2IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgo
TlNTdHJpbmcgKnBhdGgpCiAgICAgICAgIF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXItPnJlbW92
ZVN3aXBlU25hcHNob3QoKTsKIH0KIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMDAwCi0KLS0gKHZvaWQpX2RpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0
Oihjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYpaGl0VGVzdFJlc3VsdCBjb250ZW50UHJldmVu
dHNEZWZhdWx0OihCT09MKWNvbnRlbnRQcmV2ZW50c0RlZmF1bHQgdXNlckRhdGE6KEFQSTo6T2Jq
ZWN0Kil1c2VyRGF0YQotewotICAgIFtfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIg
ZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3Q6aGl0VGVzdFJlc3VsdCBjb250ZW50UHJl
dmVudHNEZWZhdWx0OmNvbnRlbnRQcmV2ZW50c0RlZmF1bHQgdXNlckRhdGE6dXNlckRhdGFdOwot
fQotCi0jZW5kaWYgLy8gX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAK
LQogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCiAtICh2b2lk
KV9zdGFydFdpbmRvd0RyYWcKIHsKQEAgLTM5OTMsNzIgKzM0MzMsMjkgQEAgc3RhdGljIE5TU3Ry
aW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKICAgICBy
ZXR1cm4gX2RhdGEtPl9pbXBsLT5jcmVhdGVGdWxsU2NyZWVuV2luZG93KCk7CiB9CiAKLS8vIEZJ
WE1FOiBBbGwgb2YgdGhlc2UgIkRlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMiIG1ldGhvZHMg
c2hvdWxkIGJlIGFibGUgdG8gYmUgcmVtb3ZlZCBvbmNlIGNsaWVudHMgYXJlIHdlYW5lZCBvZmYg
b2YgdGhlbS4KIC0gKHZvaWQpYmVnaW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzCiB7Ci0g
ICAgaWYgKF9kYXRhLT5fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzKSB7Ci0gICAgICAg
IE5TTG9nKEAiYmVnaW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzIHdhcyBjYWxsZWQgd2hp
bGUgYWxyZWFkeSBkZWZlcnJpbmcgdmlldy1pbi13aW5kb3cgY2hhbmdlcyEiKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIF9kYXRhLT5fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFu
Z2VzID0gWUVTOworICAgIF9kYXRhLT5faW1wbC0+YmVnaW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dD
aGFuZ2VzKCk7CiB9CiAKIC0gKHZvaWQpZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcwog
ewotICAgIGlmICghX2RhdGEtPl9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMpIHsKLSAg
ICAgICAgTlNMb2coQCJlbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzIHdhcyBjYWxsZWQg
d2l0aG91dCBiZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMhIik7Ci0gICAgICAgIHJl
dHVybjsKLSAgICB9Ci0KLSAgICBfZGF0YS0+X3Nob3VsZERlZmVyVmlld0luV2luZG93Q2hhbmdl
cyA9IE5POwotCi0gICAgaWYgKF9kYXRhLT5fdmlld0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQp
IHsKLSAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0XTsKLSAgICAgICAg
X2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpJc0luV2luZG93KTsK
LSAgICAgICAgX2RhdGEtPl92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9IE5POwotICAg
IH0KKyAgICBfZGF0YS0+X2ltcGwtPmVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMoKTsK
IH0KIAogLSAodm9pZCllbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzU3luYwogewotICAg
IGlmICghX2RhdGEtPl9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMpIHsKLSAgICAgICAg
TlNMb2coQCJlbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzU3luYyB3YXMgY2FsbGVkIHdp
dGhvdXQgYmVnaW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzISIpOwotICAgICAgICByZXR1
cm47Ci0gICAgfQotCi0gICAgX2RhdGEtPl9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMg
PSBOTzsKLQotICAgIGlmIChfZGF0YS0+X3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVkKSB7
Ci0gICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldFRvcENvbnRlbnRJbnNldF07Ci0gICAgICAgIF9k
YXRhLT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6SXNJbldpbmRvdyk7Ci0g
ICAgICAgIF9kYXRhLT5fdmlld0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQgPSBOTzsKLSAgICB9
CisgICAgX2RhdGEtPl9pbXBsLT5lbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzU3luYygp
OwogfQogCiAtICh2b2lkKV9wcmVwYXJlRm9yTW92ZVRvV2luZG93OihOU1dpbmRvdyAqKXRhcmdl
dFdpbmRvdyB3aXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikodm9pZCkpY29tcGxldGlvbkhh
bmRsZXIKIHsKLSAgICBfZGF0YS0+X3Nob3VsZERlZmVyVmlld0luV2luZG93Q2hhbmdlcyA9IFlF
UzsKLSAgICBbc2VsZiB2aWV3V2lsbE1vdmVUb1dpbmRvdzp0YXJnZXRXaW5kb3ddOwotICAgIF9k
YXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uID0gdGFyZ2V0V2luZG93OwotICAg
IFtzZWxmIHZpZXdEaWRNb3ZlVG9XaW5kb3ddOwotCi0gICAgX2RhdGEtPl9zaG91bGREZWZlclZp
ZXdJbldpbmRvd0NoYW5nZXMgPSBOTzsKLQotICAgIF9kYXRhLT5fcGFnZS0+aW5zdGFsbFZpZXdT
dGF0ZUNoYW5nZUNvbXBsZXRpb25IYW5kbGVyKF4oKSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7Ci0gICAgICAgIEFTU0VSVChzZWxmLndpbmRvdyA9PSBfZGF0YS0+X3RhcmdldFdpbmRv
d0Zvck1vdmVQcmVwYXJhdGlvbik7Ci0gICAgICAgIF9kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92
ZVByZXBhcmF0aW9uID0gbmlsOwotICAgIH0pOwotCi0gICAgW3NlbGYgX2Rpc3BhdGNoU2V0VG9w
Q29udGVudEluc2V0XTsKLSAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3
U3RhdGU6OklzSW5XaW5kb3csIGZhbHNlLCBXZWJQYWdlUHJveHk6OlZpZXdTdGF0ZUNoYW5nZURp
c3BhdGNoTW9kZTo6SW1tZWRpYXRlKTsKLSAgICBfZGF0YS0+X3ZpZXdJbldpbmRvd0NoYW5nZVdh
c0RlZmVycmVkID0gTk87CisgICAgX2RhdGEtPl9pbXBsLT5wcmVwYXJlRm9yTW92ZVRvV2luZG93
KHRhcmdldFdpbmRvdywgY29tcGxldGlvbkhhbmRsZXIpOwogfQogCiAtIChCT09MKWlzRGVmZXJy
aW5nVmlld0luV2luZG93Q2hhbmdlcwogewotICAgIHJldHVybiBfZGF0YS0+X3Nob3VsZERlZmVy
Vmlld0luV2luZG93Q2hhbmdlczsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5pc0RlZmVycmlu
Z1ZpZXdJbldpbmRvd0NoYW5nZXMoKTsKIH0KIAogLSAoQk9PTCl3aW5kb3dPY2NsdXNpb25EZXRl
Y3Rpb25FbmFibGVkCkBAIC00MDg1LDczICszNDgyLDQ4IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0
aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAKIC0gKEJPT0wpYWxs
b3dzTGlua1ByZXZpZXcKIHsKLSAgICByZXR1cm4gX2RhdGEtPl9hbGxvd3NMaW5rUHJldmlldzsK
KyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5hbGxvd3NMaW5rUHJldmlldygpOwogfQogCiAtICh2
b2lkKXNldEFsbG93c0xpbmtQcmV2aWV3OihCT09MKWFsbG93c0xpbmtQcmV2aWV3CiB7Ci0gICAg
aWYgKF9kYXRhLT5fYWxsb3dzTGlua1ByZXZpZXcgPT0gYWxsb3dzTGlua1ByZXZpZXcpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIF9kYXRhLT5fYWxsb3dzTGlua1ByZXZpZXcgPSBhbGxvd3NMaW5r
UHJldmlldzsKLSAgICAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTAwMAotICAgIGlmICghYWxsb3dzTGlua1ByZXZpZXcpCi0gICAgICAgIFtzZWxmIHJlbW92ZUdl
c3R1cmVSZWNvZ25pemVyOl9kYXRhLT5faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIu
Z2V0KCldOwotICAgIGVsc2UgaWYgKE5TR2VzdHVyZVJlY29nbml6ZXIgKmltbWVkaWF0ZUFjdGlv
blJlY29nbml6ZXIgPSBfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdl
dCgpKQotICAgICAgICBbc2VsZiBhZGRHZXN0dXJlUmVjb2duaXplcjppbW1lZGlhdGVBY3Rpb25S
ZWNvZ25pemVyXTsKLSNlbmRpZgorICAgIF9kYXRhLT5faW1wbC0+c2V0QWxsb3dzTGlua1ByZXZp
ZXcoYWxsb3dzTGlua1ByZXZpZXcpOwogfQogCiAtICh2b2lkKV9zZXRJZ25vcmVzQWxsRXZlbnRz
OihCT09MKWlnbm9yZXNBbGxFdmVudHMKIHsKLSAgICBfZGF0YS0+X2lnbm9yZXNBbGxFdmVudHMg
PSBpZ25vcmVzQWxsRXZlbnRzOwotICAgIFtzZWxmIF9zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHM6
aWdub3Jlc0FsbEV2ZW50c107CisgICAgX2RhdGEtPl9pbXBsLT5zZXRJZ25vcmVzQWxsRXZlbnRz
KGlnbm9yZXNBbGxFdmVudHMpOwogfQogCiAvLyBGb3J3YXJkIF9zZXRJZ25vcmVzTm9uV2hlZWxN
b3VzZUV2ZW50cyB0byBfc2V0SWdub3Jlc05vbldoZWVsRXZlbnRzIHRvIGF2b2lkIGJyZWFraW5n
IGV4aXN0aW5nIGNsaWVudHMuCiAtICh2b2lkKV9zZXRJZ25vcmVzTm9uV2hlZWxNb3VzZUV2ZW50
czooQk9PTClpZ25vcmVzTm9uV2hlZWxNb3VzZUV2ZW50cwogewotICAgIFtzZWxmIF9zZXRJZ25v
cmVzTm9uV2hlZWxFdmVudHM6aWdub3Jlc05vbldoZWVsTW91c2VFdmVudHNdOworICAgIF9kYXRh
LT5faW1wbC0+c2V0SWdub3Jlc05vbldoZWVsRXZlbnRzKGlnbm9yZXNOb25XaGVlbE1vdXNlRXZl
bnRzKTsKIH0KIAogLSAodm9pZClfc2V0SWdub3Jlc05vbldoZWVsRXZlbnRzOihCT09MKWlnbm9y
ZXNOb25XaGVlbEV2ZW50cwogewotICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50
cyA9PSBpZ25vcmVzTm9uV2hlZWxFdmVudHMpCi0gICAgICAgIHJldHVybjsKLQotICAgIF9kYXRh
LT5faWdub3Jlc05vbldoZWVsRXZlbnRzID0gaWdub3Jlc05vbldoZWVsRXZlbnRzOwotICAgIF9k
YXRhLT5fcGFnZS0+c2V0U2hvdWxkRGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRzKCFpZ25vcmVz
Tm9uV2hlZWxFdmVudHMpOwotCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDEwMDAKLSAgICBpZiAoaWdub3Jlc05vbldoZWVsRXZlbnRzKQotICAgICAgICBbc2VsZiBy
ZW1vdmVHZXN0dXJlUmVjb2duaXplcjpfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNv
Z25pemVyLmdldCgpXTsKLSAgICBlbHNlIGlmIChOU0dlc3R1cmVSZWNvZ25pemVyICppbW1lZGlh
dGVBY3Rpb25SZWNvZ25pemVyID0gX2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2du
aXplci5nZXQoKSkgewotICAgICAgICBpZiAoX2RhdGEtPl9hbGxvd3NMaW5rUHJldmlldykKLSAg
ICAgICAgICAgIFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOmltbWVkaWF0ZUFjdGlvblJlY29n
bml6ZXJdOwotICAgIH0KLSNlbmRpZgorICAgIF9kYXRhLT5faW1wbC0+c2V0SWdub3Jlc05vbldo
ZWVsRXZlbnRzKGlnbm9yZXNOb25XaGVlbEV2ZW50cyk7CiB9CiAKIC0gKEJPT0wpX2lnbm9yZXNO
b25XaGVlbEV2ZW50cwogewotICAgIHJldHVybiBfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50
czsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMoKTsKIH0K
IAogLSAoQk9PTClfaWdub3Jlc0FsbEV2ZW50cwogewotICAgIHJldHVybiBfZGF0YS0+X2lnbm9y
ZXNBbGxFdmVudHM7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+aWdub3Jlc0FsbEV2ZW50cygp
OwogfQogCiAtICh2b2lkKV9zZXRPdmVycmlkZURldmljZVNjYWxlRmFjdG9yOihDR0Zsb2F0KWRl
dmljZVNjYWxlRmFjdG9yCiB7Ci0gICAgX2RhdGEtPl9vdmVycmlkZURldmljZVNjYWxlRmFjdG9y
ID0gZGV2aWNlU2NhbGVGYWN0b3I7Ci0gICAgX2RhdGEtPl9wYWdlLT5zZXRJbnRyaW5zaWNEZXZp
Y2VTY2FsZUZhY3Rvcihbc2VsZiBfaW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3JdKTsKKyAgICBf
ZGF0YS0+X2ltcGwtPnNldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IoZGV2aWNlU2NhbGVGYWN0
b3IpOwogfQogCiAtIChDR0Zsb2F0KV9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yCiB7Ci0gICAg
cmV0dXJuIF9kYXRhLT5fb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjsKKyAgICByZXR1cm4gX2Rh
dGEtPl9pbXBsLT5vdmVycmlkZURldmljZVNjYWxlRmFjdG9yKCk7CiB9CiAKIC0gKFdLTGF5b3V0
TW9kZSlfbGF5b3V0TW9kZQpAQCAtNDE4NCwzMiArMzU1NiwxNCBAQCBzdGF0aWMgTlNTdHJpbmcg
KnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAgIF9kYXRh
LT5faW1wbC0+c2V0Vmlld1NjYWxlKHZpZXdTY2FsZSk7CiB9CiAKLS0gKHZvaWQpX2Rpc3BhdGNo
U2V0VG9wQ29udGVudEluc2V0Ci17Ci0gICAgaWYgKCFfZGF0YS0+X2RpZFNjaGVkdWxlU2V0VG9w
Q29udGVudEluc2V0KQotICAgICAgICByZXR1cm47Ci0KLSAgICBfZGF0YS0+X2RpZFNjaGVkdWxl
U2V0VG9wQ29udGVudEluc2V0ID0gTk87Ci0gICAgX2RhdGEtPl9wYWdlLT5zZXRUb3BDb250ZW50
SW5zZXQoX2RhdGEtPl90b3BDb250ZW50SW5zZXQpOwotfQotCiAtICh2b2lkKV9zZXRUb3BDb250
ZW50SW5zZXQ6KENHRmxvYXQpY29udGVudEluc2V0CiB7Ci0gICAgX2RhdGEtPl90b3BDb250ZW50
SW5zZXQgPSBjb250ZW50SW5zZXQ7Ci0KLSAgICBpZiAoX2RhdGEtPl9kaWRTY2hlZHVsZVNldFRv
cENvbnRlbnRJbnNldCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgX2RhdGEtPl9kaWRTY2hlZHVs
ZVNldFRvcENvbnRlbnRJbnNldCA9IFlFUzsKLQotICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNo
X2dldF9tYWluX3F1ZXVlKCksIF57Ci0gICAgICAgIFtzZWxmIF9kaXNwYXRjaFNldFRvcENvbnRl
bnRJbnNldF07Ci0gICAgfSk7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+c2V0VG9wQ29udGVu
dEluc2V0KGNvbnRlbnRJbnNldCk7CiB9CiAKIC0gKENHRmxvYXQpX3RvcENvbnRlbnRJbnNldAog
ewotICAgIHJldHVybiBfZGF0YS0+X3RvcENvbnRlbnRJbnNldDsKKyAgICByZXR1cm4gX2RhdGEt
Pl9pbXBsLT50b3BDb250ZW50SW5zZXQoKTsKIH0KIAogLSAodm9pZClfc2V0VG90YWxIZWlnaHRP
ZkJhbm5lcnM6KENHRmxvYXQpdG90YWxIZWlnaHRPZkJhbm5lcnMKQEAgLTQ0ODcsNDkgKzM4NDEs
MjQgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0
cmluZyAqcGF0aCkKIAogLSAodm9pZClfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93
cwogewotICAgIC8vIEZJWE1FOiBXZSBkb24ndCBrbm93IHdoaWNoIHBhbmVsIHdlIGFyZSBkaXNt
aXNzaW5nLCBpdCBtYXkgbm90IGV2ZW4gYmUgaW4gdGhlIGN1cnJlbnQgcGFnZSAoc2VlIDxyZGFy
Oi8vcHJvYmxlbS8xMzg3NTc2Nj4pLgotICAgIGlmIChbW3NlbGYgd2luZG93XSBpc0tleVdpbmRv
d10KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAotICAgICAg
ICB8fCBbX2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGhhc0FjdGl2ZUltbWVkaWF0
ZUFjdGlvbl0KLSNlbmRpZgotICAgICAgICApIHsKLSAgICAgICAgRGljdGlvbmFyeUxvb2t1cDo6
aGlkZVBvcHVwKCk7Ci0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEw
MTAwMAotICAgICAgICBEREFjdGlvbnNNYW5hZ2VyICphY3Rpb25zTWFuYWdlciA9IFtnZXREREFj
dGlvbnNNYW5hZ2VyQ2xhc3MoKSBzaGFyZWRNYW5hZ2VyXTsKLSAgICAgICAgaWYgKFthY3Rpb25z
TWFuYWdlciByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHJlcXVlc3RCdWJibGVDbG9zdXJl
VW5hbmNob3JPbkZhaWx1cmU6KV0pCi0gICAgICAgICAgICBbYWN0aW9uc01hbmFnZXIgcmVxdWVz
dEJ1YmJsZUNsb3N1cmVVbmFuY2hvck9uRmFpbHVyZTpZRVNdOwotI2VuZGlmCi0gICAgfQotCi0g
ICAgW3NlbGYgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246VGV4dEluZGljYXRvcldp
bmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dF07Ci0KLSNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAotICAgIFtfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkNv
bnRyb2xsZXIgZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c107Ci0jZW5kaWYKLQot
ICAgIHN0YXRpY19jYXN0PFBhZ2VDbGllbnQmPigqX2RhdGEtPl9wYWdlQ2xpZW50KS5kaXNtaXNz
Q29ycmVjdGlvblBhbmVsKFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25vcmVk
KTsKKyAgICBfZGF0YS0+X2ltcGwtPmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NG
cm9tVmlld09ubHkoKTsKIH0KIAogLSAodm9pZClfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxk
V2luZG93c1dpdGhBbmltYXRpb246KEJPT0wpd2l0aEFuaW1hdGlvbgogewotICAgIC8vIENhbGxp
bmcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24gaGVyZSB3aWxsIHdpbiBvdXQgb3Zl
ciB0aGUgYW5pbWF0ZWQgY2xlYXIgaW4gX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRv
d3MuCi0gICAgLy8gV2UgY2FuJ3QgaW52ZXJ0IHRoZXNlIGJlY2F1c2UgY2xpZW50cyBjYW4gb3Zl
cnJpZGUgKGFuZCBoYXZlIG92ZXJyaWRkZW4pIF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRX
aW5kb3dzLCBzbyBpdCBuZWVkcyB0byBiZSBjYWxsZWQuCi0gICAgW3NlbGYgX2NsZWFyVGV4dElu
ZGljYXRvcldpdGhBbmltYXRpb246d2l0aEFuaW1hdGlvbiA/IFRleHRJbmRpY2F0b3JXaW5kb3dE
aXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQgOiBUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpOb25lXTsKLSAgICBbc2VsZiBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxk
V2luZG93c107CisgICAgX2RhdGEtPl9pbXBsLT5kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRX
aW5kb3dzV2l0aEFuaW1hdGlvbkZyb21WaWV3T25seSh3aXRoQW5pbWF0aW9uKTsKIH0KIAogI2lm
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCiAKIC0gKHZvaWQpX3Nl
dEF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0czooQk9PTClhdXRvbWF0aWNhbGx5QWRq
dXN0c0NvbnRlbnRJbnNldHMKIHsKLSAgICBfZGF0YS0+X2F1dG9tYXRpY2FsbHlBZGp1c3RzQ29u
dGVudEluc2V0cyA9IGF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0czsKLSAgICBbc2Vs
ZiBfdXBkYXRlQ29udGVudEluc2V0c0lmQXV0b21hdGljXTsKKyAgICBfZGF0YS0+X2ltcGwtPnNl
dEF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cyhhdXRvbWF0aWNhbGx5QWRqdXN0c0Nv
bnRlbnRJbnNldHMpOwogfQogCiAtIChCT09MKV9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJ
bnNldHMKIHsKLSAgICByZXR1cm4gX2RhdGEtPl9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJ
bnNldHM7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+YXV0b21hdGljYWxseUFkanVzdHNDb250
ZW50SW5zZXRzKCk7CiB9CiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKaW5kZXggOTcwMGNhZmM3OWY1NzcxOTA2YmIwOTY1
ODFjNjgzMGU3NDJhZDFlZC4uMjhlNWI3NzJmMTdmMzEwZDZlZjk5ZWQ5NjdlODVmYjMwNGNjMTZl
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50
ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRl
cm5hbC5oCkBAIC04MCwxOSArODAsMTIgQEAgc3RydWN0IEVkaXRvclN0YXRlOwogLSAodm9pZClf
cHJvY2Vzc0RpZEV4aXQ7CiAtICh2b2lkKV9wYWdlQ2xvc2VkOwogLSAodm9pZClfZGlkUmVsYXVu
Y2hQcm9jZXNzOwotLSAodm9pZClfcHJlZmVyZW5jZXNEaWRDaGFuZ2U7CiAtICh2b2lkKV90b29s
VGlwQ2hhbmdlZEZyb206KE5TU3RyaW5nICopb2xkVG9vbFRpcCB0bzooTlNTdHJpbmcgKiluZXdU
b29sVGlwOwogLSAodm9pZClfc2V0VXNlckludGVyZmFjZUl0ZW1TdGF0ZTooTlNTdHJpbmcgKilj
b21tYW5kTmFtZSBlbmFibGVkOihCT09MKWlzRW5hYmxlZCBzdGF0ZTooaW50KW5ld1N0YXRlOwog
LSAodm9pZClfZG9uZVdpdGhLZXlFdmVudDooTlNFdmVudCAqKWV2ZW50IGV2ZW50V2FzSGFuZGxl
ZDooQk9PTClldmVudFdhc0hhbmRsZWQ7CiAtIChib29sKV9leGVjdXRlU2F2ZWRDb21tYW5kQnlT
ZWxlY3RvcjooU0VMKXNlbGVjdG9yOwotLSAodm9pZClfc2V0SW50cmluc2ljQ29udGVudFNpemU6
KE5TU2l6ZSlpbnRyaW5zaWNDb250ZW50U2l6ZTsKIC0gKE5TUmVjdClfY29udmVydFRvRGV2aWNl
U3BhY2U6KE5TUmVjdClyZWN0OwogLSAoTlNSZWN0KV9jb252ZXJ0VG9Vc2VyU3BhY2U6KE5TUmVj
dClyZWN0OwotLSAodm9pZClfc2V0VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRv
ciYpdGV4dEluZGljYXRvcjsKLS0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3I6KFdlYkNvcmU6OlRl
eHRJbmRpY2F0b3ImKXRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOihXZWJDb3JlOjpUZXh0SW5k
aWNhdG9yV2luZG93TGlmZXRpbWUpbGlmZXRpbWU7Ci0tICh2b2lkKV9jbGVhclRleHRJbmRpY2F0
b3JXaXRoQW5pbWF0aW9uOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5p
bWF0aW9uKWFuaW1hdGlvbjsKLS0gKHZvaWQpX3NldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9n
cmVzczooZmxvYXQpcHJvZ3Jlc3M7Ci0tICh2b2lkKV9zZWxlY3Rpb25DaGFuZ2VkOwogCiAtICh2
b2lkKV9zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZVJvb3RMYXllcjooQ0FMYXllciAqKXJv
b3RMYXllcjsKIC0gKENBTGF5ZXIgKilfYWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVSb290TGF5
ZXI7CkBAIC0xMjksOSArMTIyLDYgQEAgc3RydWN0IEVkaXRvclN0YXRlOwogLSAodm9pZClfcmVw
YXJlbnRMYXllclRyZWVJblRodW1ibmFpbFZpZXc7CiAjZW5kaWYKIAotLSAodm9pZClfd2luZG93
RGlkT3JkZXJPblNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb247Ci0tICh2b2lk
KV93aW5kb3dEaWRPcmRlck9mZlNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb247
Ci0KIC0gKHZvaWQpX2FkZEZvbnRQYW5lbE9ic2VydmVyOwogLy8gRnVsbFNjcmVlbgogCkBAIC0x
MzksMjAgKzEyOSwxMiBAQCBzdHJ1Y3QgRWRpdG9yU3RhdGU7CiBAcHJvcGVydHkgKHJlYWRvbmx5
KSBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyICpfZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXI7CiAtICh2b2lkKV9jbG9zZUZ1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyOwogCi0tICh2b2lk
KV9wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cDsKLQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0tICh2b2lkKV9kaWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9u
SGl0VGVzdDooY29uc3QgV2ViS2l0OjpXZWJIaXRUZXN0UmVzdWx0RGF0YSYpaGl0VGVzdFJlc3Vs
dCBjb250ZW50UHJldmVudHNEZWZhdWx0OihCT09MKWNvbnRlbnRQcmV2ZW50c0RlZmF1bHQgdXNl
ckRhdGE6KEFQSTo6T2JqZWN0Kil1c2VyRGF0YTsKLSNlbmRpZgotCiAjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKIC0gKHZvaWQpX3N0YXJ0V2luZG93RHJhZzsK
ICNlbmRpZgogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmV0YWluLCBzZXR0ZXI9X3NldFByaW1h
cnlUcmFja2luZ0FyZWE6KSBOU1RyYWNraW5nQXJlYSAqX3ByaW1hcnlUcmFja2luZ0FyZWE7CiAK
LUBwcm9wZXJ0eSAocmVhZG9ubHkpIE5TV2luZG93ICpfdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBh
cmF0aW9uOwotCiAjaWYgV0tfQVBJX0VOQUJMRUQKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFk
b25seSkgX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKl9yZW1vdGVPYmplY3RSZWdpc3RyeTsKICNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRl
eCA0OTEyOTgyMjI3NjUwNDRjM2Q0ZGNjODdjYTE3YWIyNGZjZGE4Zjk2Li5lMDAxNWVhODE3YmNj
NWM1YzY5YmQzZDE2MGI3YmYwNzdlNGIxYTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtMjgsMjkgKzI4LDUyIEBACiAKICNpZiBQTEFURk9S
TShNQUMpCiAKLSNpbXBvcnQgIldLTGF5b3V0TW9kZS5oIgotI2ltcG9ydCA8d3RmL1JldGFpblB0
ci5oPgotCisjaW5jbHVkZSAiV0tMYXlvdXRNb2RlLmgiCisjaW5jbHVkZSAiV2ViUGFnZVByb3h5
LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yV2luZG93Lmg+CisjaW5jbHVkZSA8
ZnVuY3Rpb25hbD4KKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CisjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworT0JKQ19DTEFTUyBO
U0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyOwogT0JKQ19DTEFTUyBOU1RleHRJbnB1
dENvbnRleHQ7CiBPQkpDX0NMQVNTIE5TVmlldzsKK09CSkNfQ0xBU1MgV0tFZGl0b3JVbmRvVGFy
Z2V0T2JqQzsKIE9CSkNfQ0xBU1MgV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcjsKK09CSkNf
Q0xBU1MgV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyOwogT0JKQ19DTEFTUyBXS1ZpZXdMYXlv
dXRTdHJhdGVneTsKK09CSkNfQ0xBU1MgV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXI7CiAKIEBw
cm90b2NvbCBXZWJWaWV3SW1wbERlbGVnYXRlCiAKIC0gKE5TVGV4dElucHV0Q29udGV4dCAqKV9z
dXBlcklucHV0Q29udGV4dDsKKy0gKHZvaWQpX3N1cGVyUXVpY2tMb29rV2l0aEV2ZW50OihOU0V2
ZW50ICopZXZlbnQ7CisKKy8vIFRoaXMgaXMgYSBoYWNrOyB0aGVzZSB0aGluZ3MgbGl2ZSBjYW4g
bGl2ZSBvbiBhIGNhdGVnb3J5IChlLmcuIFdLVmlldyAoUHJpdmF0ZSkpIGJ1dCBXS1ZpZXcgaXRz
ZWxmIGNvbmZvcm1zIHRvIHRoaXMgcHJvdG9jb2wuCisvLyBUaGV5J3JlIG5vdCBhY3R1YWxseSBv
cHRpb25hbC4KK0BvcHRpb25hbAorCistIChpZClfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29u
dHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6KFdLSGl0VGVzdFJlc3VsdFJlZiloaXRUZXN0UmVzdWx0
IHdpdGhUeXBlOih1aW50MzJfdCl0eXBlIHVzZXJEYXRhOihXS1R5cGVSZWYpdXNlckRhdGE7Cist
ICh2b2lkKV9wcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uOworLSAodm9pZClfY2Fu
Y2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uOworLSAodm9pZClfY29tcGxldGVJbW1lZGlhdGVB
Y3Rpb25BbmltYXRpb247CistICh2b2lkKV9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5k
b3dzOworLSAodm9pZClfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmlt
YXRpb246KEJPT0wpYW5pbWF0ZTsKIAogQGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xh
c3MgV2ViRWRpdENvbW1hbmRQcm94eTsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKK3N0cnVjdCBDb2xv
clNwYWNlRGF0YTsKIAogY2xhc3MgV2ViVmlld0ltcGwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYlZpZXdJbXBsKTsKIHB1YmxpYzoK
LSAgICBXZWJWaWV3SW1wbChOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICosIFdlYlBhZ2VQ
cm94eSYpOworICAgIFdlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKiwg
V2ViUGFnZVByb3h5JiwgUGFnZUNsaWVudCYpOwogCiAgICAgfldlYlZpZXdJbXBsKCk7CiAKQEAg
LTY3LDE3ICs5MCwyNSBAQCBwdWJsaWM6CiAgICAgdm9pZCB2aWV3V2lsbFN0YXJ0TGl2ZVJlc2l6
ZSgpOwogICAgIHZvaWQgdmlld0RpZEVuZExpdmVSZXNpemUoKTsKIAorICAgIHZvaWQgcmVuZXdH
U3RhdGUoKTsKICAgICB2b2lkIHNldEZyYW1lU2l6ZShDR1NpemUpOwogICAgIHZvaWQgZGlzYWJs
ZUZyYW1lU2l6ZVVwZGF0ZXMoKTsKICAgICB2b2lkIGVuYWJsZUZyYW1lU2l6ZVVwZGF0ZXMoKTsK
ICAgICBib29sIGZyYW1lU2l6ZVVwZGF0ZXNEaXNhYmxlZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0
RnJhbWVBbmRTY3JvbGxCeShDR1JlY3QsIENHU2l6ZSk7CisgICAgdm9pZCB1cGRhdGVXaW5kb3dB
bmRWaWV3RnJhbWVzKCk7CiAKICAgICB2b2lkIHNldEZpeGVkTGF5b3V0U2l6ZShDR1NpemUpOwog
ICAgIENHU2l6ZSBmaXhlZExheW91dFNpemUoKSBjb25zdDsKIAogICAgIHZvaWQgc2V0RHJhd2lu
Z0FyZWFTaXplKENHU2l6ZSk7CiAKKyAgICB2b2lkIHNldEF1dG9tYXRpY2FsbHlBZGp1c3RzQ29u
dGVudEluc2V0cyhib29sKTsKKyAgICBib29sIGF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudElu
c2V0cygpIGNvbnN0IHsgcmV0dXJuIG1fYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRz
OyB9CisgICAgdm9pZCB1cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWMoKTsKKyAgICB2b2lk
IHNldFRvcENvbnRlbnRJbnNldChDR0Zsb2F0KTsKKyAgICBDR0Zsb2F0IHRvcENvbnRlbnRJbnNl
dCgpIGNvbnN0IHsgcmV0dXJuIG1fdG9wQ29udGVudEluc2V0OyB9CisKICAgICB2b2lkIHNldENv
bnRlbnRQcmVwYXJhdGlvblJlY3QoQ0dSZWN0KTsKICAgICB2b2lkIHVwZGF0ZVZpZXdFeHBvc2Vk
UmVjdCgpOwogICAgIHZvaWQgc2V0Q2xpcHNUb1Zpc2libGVSZWN0KGJvb2wpOwpAQCAtOTMsMTEg
KzEyNCw0NSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRMYXlvdXRNb2RlKFdLTGF5b3V0TW9kZSk7
CiAgICAgdm9pZCB1cGRhdGVTdXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCk7CiAKKyAgICB2
b2lkIHNldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IoQ0dGbG9hdCk7CisgICAgQ0dGbG9hdCBv
dmVycmlkZURldmljZVNjYWxlRmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9vdmVycmlkZURldmlj
ZVNjYWxlRmFjdG9yOyB9CisKKyAgICB2b2lkIHdpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuKCk7Cisg
ICAgdm9pZCB3aW5kb3dEaWRPcmRlck9uU2NyZWVuKCk7CisgICAgdm9pZCB3aW5kb3dEaWRCZWNv
bWVLZXkoTlNXaW5kb3cgKik7CisgICAgdm9pZCB3aW5kb3dEaWRSZXNpZ25LZXkoTlNXaW5kb3cg
Kik7CisgICAgdm9pZCB3aW5kb3dEaWRNaW5pYXR1cml6ZSgpOworICAgIHZvaWQgd2luZG93RGlk
RGVtaW5pYXR1cml6ZSgpOworICAgIHZvaWQgd2luZG93RGlkTW92ZSgpOworICAgIHZvaWQgd2lu
ZG93RGlkUmVzaXplKCk7CisgICAgdm9pZCB3aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGll
cyhDR0Zsb2F0IG9sZEJhY2tpbmdTY2FsZUZhY3Rvcik7CisgICAgdm9pZCB3aW5kb3dEaWRDaGFu
Z2VTY3JlZW4oKTsKKyAgICB2b2lkIHdpbmRvd0RpZENoYW5nZUxheWVySG9zdGluZygpOworICAg
IHZvaWQgd2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3RhdGUoKTsKKworICAgIHZvaWQgdmlld1dp
bGxNb3ZlVG9XaW5kb3coTlNXaW5kb3cgKik7CisgICAgdm9pZCB2aWV3RGlkTW92ZVRvV2luZG93
KCk7CisgICAgdm9pZCB2aWV3RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXMoKTsKKworICAgIENv
bG9yU3BhY2VEYXRhIGNvbG9yU3BhY2UoKTsKKworICAgIHZvaWQgYmVnaW5EZWZlcnJpbmdWaWV3
SW5XaW5kb3dDaGFuZ2VzKCk7CisgICAgLy8gRklYTUU6IE1lcmdlIHRoZXNlIHR3bz8KKyAgICB2
b2lkIGVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMoKTsKKyAgICB2b2lkIGVuZERlZmVy
cmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNTeW5jKCk7CisgICAgYm9vbCBpc0RlZmVycmluZ1ZpZXdJ
bldpbmRvd0NoYW5nZXMoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZERlZmVyVmlld0luV2luZG93
Q2hhbmdlczsgfQorCisgICAgdm9pZCBwcmVwYXJlRm9yTW92ZVRvV2luZG93KE5TV2luZG93ICp0
YXJnZXRXaW5kb3csIHN0ZDo6ZnVuY3Rpb248dm9pZCgpPiBjb21wbGV0aW9uSGFuZGxlcik7Cisg
ICAgTlNXaW5kb3cgKnRhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbigpIGNvbnN0IHsgcmV0
dXJuIG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uOyB9CisKICAgICB2b2lkIHVwZGF0
ZVNlY3VyZUlucHV0U3RhdGUoKTsKICAgICB2b2lkIHJlc2V0U2VjdXJlSW5wdXRTdGF0ZSgpOwog
ICAgIGJvb2wgaW5TZWN1cmVJbnB1dFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9pblNlY3VyZUlu
cHV0U3RhdGU7IH0KICAgICB2b2lkIG5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29t
cG9zaXRpb24oKTsKIAorICAgIHZvaWQgcHJlc3N1cmVDaGFuZ2VXaXRoRXZlbnQoTlNFdmVudCAq
KTsKKyAgICBOU0V2ZW50ICpsYXN0UHJlc3N1cmVFdmVudCgpIHsgcmV0dXJuIG1fbGFzdFByZXNz
dXJlRXZlbnQuZ2V0KCk7IH0KKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBib29s
IGhhc0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKCkgY29uc3Q7CiAgICAgV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlciAqZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKTsKQEAgLTEwNiwz
MyArMTcxLDExNCBAQCBwdWJsaWM6CiAgICAgTlNWaWV3ICpmdWxsU2NyZWVuUGxhY2Vob2xkZXJW
aWV3KCk7CiAgICAgTlNXaW5kb3cgKmNyZWF0ZUZ1bGxTY3JlZW5XaW5kb3coKTsKIAorICAgIGJv
b2wgaXNFZGl0YWJsZSgpIGNvbnN0OworICAgIHZvaWQgZXhlY3V0ZUVkaXRDb21tYW5kKGNvbnN0
IFN0cmluZyYgY29tbWFuZE5hbWUsIGNvbnN0IFN0cmluZyYgYXJndW1lbnQgPSBTdHJpbmcoKSk7
CisgICAgdm9pZCByZWdpc3RlckVkaXRDb21tYW5kKFJlZlB0cjxXZWJFZGl0Q29tbWFuZFByb3h5
PiwgV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKTsKKyAgICB2b2lkIGNsZWFyQWxsRWRpdENvbW1h
bmRzKCk7CisgICAgYm9vbCB3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChOU1Bhc3RlYm9hcmQg
KiwgTlNBcnJheSAqdHlwZXMpOworICAgIHZvaWQgY2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJl
YSgpOworICAgIHZvaWQgc2VsZWN0aW9uRGlkQ2hhbmdlKCk7CisgICAgdm9pZCBzdGFydE9ic2Vy
dmluZ0ZvbnRQYW5lbCgpOworICAgIHZvaWQgdXBkYXRlRm9udFBhbmVsSWZOZWVkZWQoKTsKKwor
ICAgIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsKKworICAgIHZvaWQgc2V0VGV4dEluZGlj
YXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0xpZmV0aW1lID0gV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5l
bnQpOworICAgIHZvaWQgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpU
ZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKTsKKyAgICB2b2lkIHNldFRleHRJ
bmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCk7CisgICAgdm9pZCBkaXNtaXNzQ29udGVu
dFJlbGF0aXZlQ2hpbGRXaW5kb3dzKCk7CisgICAgdm9pZCBkaXNtaXNzQ29udGVudFJlbGF0aXZl
Q2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5KCk7CisgICAgdm9pZCBkaXNtaXNzQ29udGVudFJlbGF0
aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbihib29sKTsKKyAgICB2b2lkIGRpc21pc3NDb250
ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uRnJvbVZpZXdPbmx5KGJvb2wpOwor
CisgICAgdm9pZCBxdWlja0xvb2tXaXRoRXZlbnQoTlNFdmVudCAqKTsKKyAgICB2b2lkIHByZXBh
cmVGb3JEaWN0aW9uYXJ5TG9va3VwKCk7CisgICAgdm9pZCBzZXRBbGxvd3NMaW5rUHJldmlldyhi
b29sKTsKKyAgICBib29sIGFsbG93c0xpbmtQcmV2aWV3KCkgY29uc3QgeyByZXR1cm4gbV9hbGxv
d3NMaW5rUHJldmlldzsgfQorICAgIHZvaWQqIGltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRy
b2xsZXJGb3JIaXRUZXN0UmVzdWx0KFdLSGl0VGVzdFJlc3VsdFJlZiwgdWludDMyX3QgdHlwZSwg
V0tUeXBlUmVmIHVzZXJEYXRhKTsKKyAgICB2b2lkKiBpbW1lZGlhdGVBY3Rpb25BbmltYXRpb25D
b250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdEZyb21WaWV3T25seShXS0hpdFRlc3RSZXN1bHRSZWYs
IHVpbnQzMl90IHR5cGUsIFdLVHlwZVJlZiB1c2VyRGF0YSk7CisgICAgdm9pZCBkaWRQZXJmb3Jt
SW1tZWRpYXRlQWN0aW9uSGl0VGVzdChjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYsIGJvb2wg
Y29udGVudFByZXZlbnRzRGVmYXVsdCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKTsKKyAgICB2b2lk
IHByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24oKTsKKyAgICB2b2lkIGNhbmNlbElt
bWVkaWF0ZUFjdGlvbkFuaW1hdGlvbigpOworICAgIHZvaWQgY29tcGxldGVJbW1lZGlhdGVBY3Rp
b25BbmltYXRpb24oKTsKKworICAgIHZvaWQgc2V0SWdub3Jlc05vbldoZWVsRXZlbnRzKGJvb2wp
OworICAgIGJvb2wgaWdub3Jlc05vbldoZWVsRXZlbnRzKCkgY29uc3QgeyByZXR1cm4gbV9pZ25v
cmVzTm9uV2hlZWxFdmVudHM7IH0KKyAgICB2b2lkIHNldElnbm9yZXNBbGxFdmVudHMoYm9vbCk7
CisgICAgYm9vbCBpZ25vcmVzQWxsRXZlbnRzKCkgY29uc3QgeyByZXR1cm4gbV9pZ25vcmVzQWxs
RXZlbnRzOyB9CisKKyAgICB2b2lkIGFjY2Vzc2liaWxpdHlSZWdpc3RlclVJUHJvY2Vzc1Rva2Vu
cygpOworCiBwcml2YXRlOgorICAgIFdlYWtQdHI8V2ViVmlld0ltcGw+IGNyZWF0ZVdlYWtQdHIo
KSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQorCiAgICAgYm9v
bCBzdXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCkgY29uc3Q7CisgICAgZmxvYXQgaW50cmlu
c2ljRGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdDsKKyAgICB2b2lkIGRpc3BhdGNoU2V0VG9wQ29u
dGVudEluc2V0KCk7CisKKyAgICB2b2lkIHBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3ND
aGFuZ2VkRXZlbnQoTlNFdmVudCAqKTsKIAogICAgIE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0
ZT4gKm1fdmlldzsKICAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKKyAgICBQYWdlQ2xpZW50JiBt
X3BhZ2VDbGllbnQ7CisKKyAgICBXZWFrUHRyRmFjdG9yeTxXZWJWaWV3SW1wbD4gbV93ZWFrUHRy
RmFjdG9yeTsKIAogICAgIGJvb2wgbV93aWxsQmVjb21lRmlyc3RSZXNwb25kZXJBZ2FpbiB7IGZh
bHNlIH07CiAgICAgYm9vbCBtX2luQmVjb21lRmlyc3RSZXNwb25kZXIgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9pblJlc2lnbkZpcnN0UmVzcG9uZGVyIHsgZmFsc2UgfTsKIAotICAgIENHUmVjdCBt
X2NvbnRlbnRQcmVwYXJhdGlvblJlY3Q7CisgICAgQ0dSZWN0IG1fY29udGVudFByZXBhcmF0aW9u
UmVjdCB7IHswLCAwfSwgezAsIDB9IH07CiAgICAgYm9vbCBtX3VzZUNvbnRlbnRQcmVwYXJhdGlv
blJlY3RGb3JWaXNpYmxlUmVjdCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2NsaXBzVG9WaXNpYmxl
UmVjdCB7IGZhbHNlIH07CisgICAgYm9vbCBtX25lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGlu
YXRlczsKKyAgICBib29sIG1fZGlkU2NoZWR1bGVXaW5kb3dBbmRWaWV3RnJhbWVVcGRhdGUgeyBm
YWxzZSB9OworICAgIGJvb2wgbV9pc0RlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMgeyBmYWxz
ZSB9OworCisgICAgYm9vbCBtX2F1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cyB7IGZh
bHNlIH07CisgICAgQ0dGbG9hdCBtX3RvcENvbnRlbnRJbnNldCB7IDAgfTsKKyAgICBib29sIG1f
ZGlkU2NoZWR1bGVTZXRUb3BDb250ZW50SW5zZXQgeyBmYWxzZSB9OwogCi0gICAgQ0dTaXplIG1f
cmVzaXplU2Nyb2xsT2Zmc2V0OworICAgIENHU2l6ZSBtX3Jlc2l6ZVNjcm9sbE9mZnNldCB7IDAs
IDAgfTsKIAotICAgIENHU2l6ZSBtX2ludHJpbnNpY0NvbnRlbnRTaXplOworICAgIENHU2l6ZSBt
X2ludHJpbnNpY0NvbnRlbnRTaXplIHsgMCwgMCB9OworICAgIENHRmxvYXQgbV9vdmVycmlkZURl
dmljZVNjYWxlRmFjdG9yIHsgMCB9OwogCiAgICAgUmV0YWluUHRyPFdLVmlld0xheW91dFN0cmF0
ZWd5PiBtX2xheW91dFN0cmF0ZWd5OwogICAgIFdLTGF5b3V0TW9kZSBtX2xhc3RSZXF1ZXN0ZWRM
YXlvdXRNb2RlIHsga1dLTGF5b3V0TW9kZVZpZXdTaXplIH07CiAgICAgQ0dGbG9hdCBtX2xhc3RS
ZXF1ZXN0ZWRWaWV3U2NhbGUgeyAxIH07CiAKICAgICBib29sIG1faW5TZWN1cmVJbnB1dFN0YXRl
IHsgZmFsc2UgfTsKKyAgICBSZXRhaW5QdHI8V0tFZGl0b3JVbmRvVGFyZ2V0T2JqQz4gbV91bmRv
VGFyZ2V0OwogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIFJldGFpblB0cjxXS0Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyPiBtX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyOwog
I2VuZGlmCisKKyAgICBSZXRhaW5QdHI8V0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXI+IG1fd2lu
ZG93VmlzaWJpbGl0eU9ic2VydmVyOworCisgICAgYm9vbCBtX3Nob3VsZERlZmVyVmlld0luV2lu
ZG93Q2hhbmdlcyB7IGZhbHNlIH07CisgICAgYm9vbCBtX3ZpZXdJbldpbmRvd0NoYW5nZVdhc0Rl
ZmVycmVkIHsgZmFsc2UgfTsKKyAgICBOU1dpbmRvdyAqbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJl
cGFyYXRpb24geyBudWxscHRyIH07CisKKyAgICBpZCBtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRv
ciB7IG51bGxwdHIgfTsKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yV2luZG93PiBtX3RleHRJbmRpY2F0b3JXaW5kb3c7CisKKyAgICBSZXRhaW5QdHI8TlNDb2xv
clNwYWNlPiBtX2NvbG9yU3BhY2U7CisKKyAgICBSZXRhaW5QdHI8TlNFdmVudD4gbV9sYXN0UHJl
c3N1cmVFdmVudDsKKworICAgIGJvb2wgbV9pZ25vcmVzTm9uV2hlZWxFdmVudHMgeyBmYWxzZSB9
OworICAgIGJvb2wgbV9pZ25vcmVzQWxsRXZlbnRzIHsgZmFsc2UgfTsKKworI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCisgICAgUmV0YWluUHRyPFdLSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlcj4gbV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyOworICAgIFJl
dGFpblB0cjxOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyPiBtX2ltbWVkaWF0ZUFj
dGlvbkdlc3R1cmVSZWNvZ25pemVyOworI2VuZGlmCisKKyAgICBib29sIG1fYWxsb3dzTGlua1By
ZXZpZXcgeyB0cnVlIH07CisgICAgYm9vbCBtX2RpZFJlZ2lzdGVyRm9yTG9va3VwUG9wb3ZlckNs
b3NlTm90aWZpY2F0aW9ucyB7IGZhbHNlIH07CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5k
ZXggOWIyZTZlMmVkN2MxNmQ0OTgyZDAwZTE1NWQxNTA5MzI3OTcyYzEyMi4uNjU1ZDZkYTUyMjc4
NGVmMTczOTJkNjE2NzI4OTdkOWYzMWVjNzY5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMjgsMjggKzI4LDI5NSBAQAogCiAjaWYgUExB
VEZPUk0oTUFDKQogCisjaW1wb3J0ICJDb2xvclNwYWNlRGF0YS5oIgogI2ltcG9ydCAiR2VuZXJp
Y0NhbGxiYWNrLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJOYXRpdmVXZWJLZXli
b2FyZEV2ZW50LmgiCisjaW1wb3J0ICJOYXRpdmVXZWJNb3VzZUV2ZW50LmgiCisjaW1wb3J0ICJQ
YWdlQ2xpZW50LmgiCiAjaW1wb3J0ICJXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmgiCisj
aW1wb3J0ICJXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLVmlld0xh
eW91dFN0cmF0ZWd5LmgiCiAjaW1wb3J0ICJXS1dlYlZpZXcuaCIKKyNpbXBvcnQgIldlYkVkaXRD
b21tYW5kUHJveHkuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCA8SElUb29s
Ym94L0NhcmJvbkV2ZW50c0NvcmUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQVhPYmplY3RDYWNoZS5o
PgorI2ltcG9ydCA8V2ViQ29yZS9EYXRhRGV0ZWN0b3JzU1BJLmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0RpY3Rpb25hcnlMb29rdXAuaD4KICNpbXBvcnQgPFdlYkNvcmUvS2V5cHJlc3NDb21tYW5kLmg+
CisjaW1wb3J0IDxXZWJDb3JlL0xvb2t1cFNQSS5oPgorI2ltcG9ydCA8V2ViQ29yZS9OU0ltbWVk
aWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL05TV2lu
ZG93U1BJLmg+CisjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1ZpZXdTdGF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlRnVsbFNjcmVlblBsYWNl
aG9sZGVyVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlRnVsbFNjcmVlbldpbmRvdy5o
PgorI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CisKK1NPRlRfTElOS19DT05TVEFO
VF9NQVlfRkFJTChMb29rdXAsIExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9zZSwgTlNTdHJp
bmcgKikKKworQGludGVyZmFjZSBXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciA6IE5TT2JqZWN0
IHsKKyAgICBOU1ZpZXcgKl92aWV3OworICAgIFdlYktpdDo6V2ViVmlld0ltcGwgKl9pbXBsOwor
fQorCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhWaWV3OihOU1ZpZXcgKil2aWV3IGltcGw6KFdl
YktpdDo6V2ViVmlld0ltcGwmKWltcGw7CistICh2b2lkKXN0YXJ0T2JzZXJ2aW5nOihOU1dpbmRv
dyAqKXdpbmRvdzsKKy0gKHZvaWQpc3RvcE9ic2VydmluZzooTlNXaW5kb3cgKil3aW5kb3c7Cist
ICh2b2lkKXN0YXJ0T2JzZXJ2aW5nRm9udFBhbmVsOworLSAodm9pZClzdGFydE9ic2VydmluZ0xv
b2t1cERpc21pc3NhbDsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLV2luZG93VmlzaWJpbGl0
eU9ic2VydmVyCisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFZpZXc6KE5TVmlldyAqKXZpZXcg
aW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpaW1wbAoreworICAgIHNlbGYgPSBbc3VwZXIgaW5p
dF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgX3ZpZXcgPSB2
aWV3OworICAgIF9pbXBsID0gJmltcGw7CisKKyAgICByZXR1cm4gc2VsZjsKK30KKworLSAodm9p
ZClkZWFsbG9jCit7CisgICAgaWYgKGNhbkxvYWRMVU5vdGlmaWNhdGlvblBvcG92ZXJXaWxsQ2xv
c2UoKSkKKyAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1v
dmVPYnNlcnZlcjpzZWxmIG5hbWU6Z2V0TFVOb3RpZmljYXRpb25Qb3BvdmVyV2lsbENsb3NlKCkg
b2JqZWN0Om5pbF07CisKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKyNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAorc3RhdGljIHZvaWQqIGtleVZhbHVlT2Jz
ZXJ2aW5nQ29udGV4dCA9ICZrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQ7CisjZW5kaWYKKworLSAo
dm9pZClzdGFydE9ic2VydmluZzooTlNXaW5kb3cgKil3aW5kb3cKK3sKKyAgICBpZiAoIXdpbmRv
dykKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNOb3RpZmljYXRpb25DZW50ZXIgKmRlZmF1bHRO
b3RpZmljYXRpb25DZW50ZXIgPSBbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl07
CisKKyAgICAvLyBBbiBOU1ZpZXcgZGVyaXZlZCBvYmplY3Qgc3VjaCBhcyBXS1ZpZXcgY2Fubm90
IG9ic2VydmUgdGhlc2Ugbm90aWZpY2F0aW9ucywgYmVjYXVzZSBOU1ZpZXcgaXRzZWxmIG9ic2Vy
dmVzIHRoZW0uCisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgYWRkT2JzZXJ2ZXI6c2Vs
ZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuOikgbmFtZTpAIk5T
V2luZG93RGlkT3JkZXJPZmZTY3JlZW5Ob3RpZmljYXRpb24iIG9iamVjdDp3aW5kb3ddOworICAg
IFtkZWZhdWx0Tm90aWZpY2F0aW9uQ2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNl
bGVjdG9yKF93aW5kb3dEaWRPcmRlck9uU2NyZWVuOikgbmFtZTpAIl9OU1dpbmRvd0RpZEJlY29t
ZVZpc2libGUiIG9iamVjdDp3aW5kb3ddOworCisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50
ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZEJlY29tZUtl
eTopIG5hbWU6TlNXaW5kb3dEaWRCZWNvbWVLZXlOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07Cisg
ICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpA
c2VsZWN0b3IoX3dpbmRvd0RpZFJlc2lnbktleTopIG5hbWU6TlNXaW5kb3dEaWRSZXNpZ25LZXlO
b3RpZmljYXRpb24gb2JqZWN0Om5pbF07CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIg
YWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZE1pbmlhdHVyaXpl
OikgbmFtZTpOU1dpbmRvd0RpZE1pbmlhdHVyaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3dd
OworICAgIFtkZWZhdWx0Tm90aWZpY2F0aW9uQ2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0
b3I6QHNlbGVjdG9yKF93aW5kb3dEaWREZW1pbmlhdHVyaXplOikgbmFtZTpOU1dpbmRvd0RpZERl
bWluaWF0dXJpemVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3Rp
ZmljYXRpb25DZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRv
d0RpZE1vdmU6KSBuYW1lOk5TV2luZG93RGlkTW92ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93
XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVj
dG9yOkBzZWxlY3Rvcihfd2luZG93RGlkUmVzaXplOikgbmFtZTpOU1dpbmRvd0RpZFJlc2l6ZU5v
dGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRl
ciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkQ2hhbmdlQmFj
a2luZ1Byb3BlcnRpZXM6KSBuYW1lOk5TV2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXNO
b3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50
ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZENoYW5nZVNj
cmVlbjopIG5hbWU6TlNXaW5kb3dEaWRDaGFuZ2VTY3JlZW5Ob3RpZmljYXRpb24gb2JqZWN0Ondp
bmRvd107CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBz
ZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZENoYW5nZUxheWVySG9zdGluZzopIG5hbWU6QCJf
TlNXaW5kb3dEaWRDaGFuZ2VDb250ZW50c0hvc3RlZEluTGF5ZXJTdXJmYWNlTm90aWZpY2F0aW9u
IiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNl
cnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3Rh
dGU6KSBuYW1lOk5TV2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3RhdGVOb3RpZmljYXRpb24gb2Jq
ZWN0OndpbmRvd107CisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEw
MDAKKyAgICBbd2luZG93IGFkZE9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAImNvbnRlbnRMYXlv
dXRSZWN0IiBvcHRpb25zOk5TS2V5VmFsdWVPYnNlcnZpbmdPcHRpb25Jbml0aWFsIGNvbnRleHQ6
a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0XTsKKyAgICBbd2luZG93IGFkZE9ic2VydmVyOnNlbGYg
Zm9yS2V5UGF0aDpAInRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50IiBvcHRpb25zOk5TS2V5VmFs
dWVPYnNlcnZpbmdPcHRpb25Jbml0aWFsIGNvbnRleHQ6a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0
XTsKKyNlbmRpZgorfQorCistICh2b2lkKXN0b3BPYnNlcnZpbmc6KE5TV2luZG93ICopd2luZG93
Cit7CisgICAgaWYgKCF3aW5kb3cpCisgICAgICAgIHJldHVybjsKKworICAgIE5TTm90aWZpY2F0
aW9uQ2VudGVyICpkZWZhdWx0Tm90aWZpY2F0aW9uQ2VudGVyID0gW05TTm90aWZpY2F0aW9uQ2Vu
dGVyIGRlZmF1bHRDZW50ZXJdOworCisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgcmVt
b3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOkAiTlNXaW5kb3dEaWRPcmRlck9mZlNjcmVlbk5vdGlmaWNh
dGlvbiIgb2JqZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgcmVt
b3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOkAiX05TV2luZG93RGlkQmVjb21lVmlzaWJsZSIgb2JqZWN0
OndpbmRvd107CisKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciByZW1vdmVPYnNlcnZl
cjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRCZWNvbWVLZXlOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07
CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1l
Ok5TV2luZG93RGlkUmVzaWduS2V5Tm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOworICAgIFtkZWZh
dWx0Tm90aWZpY2F0aW9uQ2VudGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0Rp
ZE1pbmlhdHVyaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOworICAgIFtkZWZhdWx0Tm90
aWZpY2F0aW9uQ2VudGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZERlbWlu
aWF0dXJpemVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmlj
YXRpb25DZW50ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkTW92ZU5vdGlm
aWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBy
ZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRSZXNpemVOb3RpZmljYXRpb24gb2Jq
ZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgcmVtb3ZlT2JzZXJ2
ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXNOb3RpZmljYXRp
b24gb2JqZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgcmVtb3Zl
T2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkQ2hhbmdlU2NyZWVuTm90aWZpY2F0aW9uIG9i
amVjdDp3aW5kb3ddOworICAgIFtkZWZhdWx0Tm90aWZpY2F0aW9uQ2VudGVyIHJlbW92ZU9ic2Vy
dmVyOnNlbGYgbmFtZTpAIl9OU1dpbmRvd0RpZENoYW5nZUNvbnRlbnRzSG9zdGVkSW5MYXllclN1
cmZhY2VOb3RpZmljYXRpb24iIG9iamVjdDp3aW5kb3ddOworICAgIFtkZWZhdWx0Tm90aWZpY2F0
aW9uQ2VudGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZENoYW5nZU9jY2x1
c2lvblN0YXRlTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOworI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCisgICAgaWYgKF9pbXBsLT5pc0VkaXRhYmxlKCkp
CisgICAgICAgIFtbTlNGb250UGFuZWwgc2hhcmVkRm9udFBhbmVsXSByZW1vdmVPYnNlcnZlcjpz
ZWxmIGZvcktleVBhdGg6QCJ2aXNpYmxlIiBjb250ZXh0OmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4
dF07CisgICAgW3dpbmRvdyByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJjb250ZW50
TGF5b3V0UmVjdCIgY29udGV4dDprZXlWYWx1ZU9ic2VydmluZ0NvbnRleHRdOworICAgIFt3aW5k
b3cgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidGl0bGViYXJBcHBlYXJzVHJhbnNw
YXJlbnQiIGNvbnRleHQ6a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0XTsKKyNlbmRpZgorfQorCist
ICh2b2lkKXN0YXJ0T2JzZXJ2aW5nRm9udFBhbmVsCit7CisjaWYgX19NQUNfT1NfWF9WRVJTSU9O
X01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICBbW05TRm9udFBhbmVsIHNoYXJlZEZvbnRQYW5l
bF0gYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidmlzaWJsZSIgb3B0aW9uczowIGNvbnRl
eHQ6a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0XTsKKyNlbmRpZgorfQorCistICh2b2lkKXN0YXJ0
T2JzZXJ2aW5nTG9va3VwRGlzbWlzc2FsCit7CisgICAgaWYgKGNhbkxvYWRMVU5vdGlmaWNhdGlv
blBvcG92ZXJXaWxsQ2xvc2UoKSkKKyAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZh
dWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihfZGljdGlvbmFy
eUxvb2t1cFBvcG92ZXJXaWxsQ2xvc2U6KSBuYW1lOmdldExVTm90aWZpY2F0aW9uUG9wb3Zlcldp
bGxDbG9zZSgpIG9iamVjdDpuaWxdOworfQorCistICh2b2lkKV93aW5kb3dEaWRPcmRlck9uU2Ny
ZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIF9pbXBsLT53aW5kb3dE
aWRPcmRlck9uU2NyZWVuKCk7Cit9CisKKy0gKHZvaWQpX3dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVu
OihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIF9pbXBsLT53aW5kb3dEaWRP
cmRlck9mZlNjcmVlbigpOworfQorCistICh2b2lkKV93aW5kb3dEaWRCZWNvbWVLZXk6KE5TTm90
aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgX2ltcGwtPndpbmRvd0RpZEJlY29tZUtl
eShbbm90aWZpY2F0aW9uIG9iamVjdF0pOworfQorCistICh2b2lkKV93aW5kb3dEaWRSZXNpZ25L
ZXk6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgX2ltcGwtPndpbmRvd0Rp
ZFJlc2lnbktleShbbm90aWZpY2F0aW9uIG9iamVjdF0pOworfQorCistICh2b2lkKV93aW5kb3dE
aWRNaW5pYXR1cml6ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBfaW1w
bC0+d2luZG93RGlkTWluaWF0dXJpemUoKTsKK30KKworLSAodm9pZClfd2luZG93RGlkRGVtaW5p
YXR1cml6ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBfaW1wbC0+d2lu
ZG93RGlkRGVtaW5pYXR1cml6ZSgpOworfQorCistICh2b2lkKV93aW5kb3dEaWRNb3ZlOihOU05v
dGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIF9pbXBsLT53aW5kb3dEaWRNb3ZlKCk7
Cit9CisKKy0gKHZvaWQpX3dpbmRvd0RpZFJlc2l6ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmlj
YXRpb24KK3sKKyAgICBfaW1wbC0+d2luZG93RGlkUmVzaXplKCk7Cit9CisKKy0gKHZvaWQpX3dp
bmRvd0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNh
dGlvbgoreworICAgIENHRmxvYXQgb2xkQmFja2luZ1NjYWxlRmFjdG9yID0gW1tub3RpZmljYXRp
b24udXNlckluZm8gb2JqZWN0Rm9yS2V5Ok5TQmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JL
ZXldIGRvdWJsZVZhbHVlXTsKKyAgICBfaW1wbC0+d2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3Bl
cnRpZXMob2xkQmFja2luZ1NjYWxlRmFjdG9yKTsKK30KKworLSAodm9pZClfd2luZG93RGlkQ2hh
bmdlU2NyZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIF9pbXBsLT53
aW5kb3dEaWRDaGFuZ2VTY3JlZW4oKTsKK30KKworLSAodm9pZClfd2luZG93RGlkQ2hhbmdlTGF5
ZXJIb3N0aW5nOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIF9pbXBsLT53
aW5kb3dEaWRDaGFuZ2VMYXllckhvc3RpbmcoKTsKK30KKworLSAodm9pZClfd2luZG93RGlkQ2hh
bmdlT2NjbHVzaW9uU3RhdGU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAg
X2ltcGwtPndpbmRvd0RpZENoYW5nZU9jY2x1c2lvblN0YXRlKCk7Cit9CisKKy0gKHZvaWQpb2Jz
ZXJ2ZVZhbHVlRm9yS2V5UGF0aDooTlNTdHJpbmcgKilrZXlQYXRoIG9mT2JqZWN0OihpZClvYmpl
Y3QgY2hhbmdlOihOU0RpY3Rpb25hcnkgKiljaGFuZ2UgY29udGV4dDoodm9pZCAqKWNvbnRleHQK
K3sKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAorICAgIGlm
IChjb250ZXh0ICE9IGtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dCkgeworICAgICAgICBbc3VwZXIg
b2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDprZXlQYXRoIG9mT2JqZWN0Om9iamVjdCBjaGFuZ2U6Y2hh
bmdlIGNvbnRleHQ6Y29udGV4dF07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAo
W2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAidmlzaWJsZSJdICYmIFtOU0ZvbnRQYW5lbCBzaGFy
ZWRGb250UGFuZWxFeGlzdHNdICYmIG9iamVjdCA9PSBbTlNGb250UGFuZWwgc2hhcmVkRm9udFBh
bmVsXSkgeworICAgICAgICBfaW1wbC0+dXBkYXRlRm9udFBhbmVsSWZOZWVkZWQoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoW2tleVBhdGggaXNFcXVhbFRvU3RyaW5nOkAiY29u
dGVudExheW91dFJlY3QiXSB8fCBba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJ0aXRsZWJhckFw
cGVhcnNUcmFuc3BhcmVudCJdKQorICAgICAgICBfaW1wbC0+dXBkYXRlQ29udGVudEluc2V0c0lm
QXV0b21hdGljKCk7CisjZW5kaWYKK30KKworLSAodm9pZClfZGljdGlvbmFyeUxvb2t1cFBvcG92
ZXJXaWxsQ2xvc2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgX2ltcGwt
PmNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldp
bmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7Cit9CisKK0BlbmQKKworQGludGVyZmFjZSBX
S0VkaXRDb21tYW5kT2JqQyA6IE5TT2JqZWN0IHsKKyAgICBSZWZQdHI8V2ViS2l0OjpXZWJFZGl0
Q29tbWFuZFByb3h5PiBtX2NvbW1hbmQ7Cit9CistIChpZClpbml0V2l0aFdlYkVkaXRDb21tYW5k
UHJveHk6KFJlZlB0cjxXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk+KWNvbW1hbmQ7CistIChX
ZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHkqKWNvbW1hbmQ7CitAZW5kCisKK0BpbnRlcmZhY2Ug
V0tFZGl0b3JVbmRvVGFyZ2V0T2JqQyA6IE5TT2JqZWN0CistICh2b2lkKXVuZG9FZGl0aW5nOihp
ZClzZW5kZXI7CistICh2b2lkKXJlZG9FZGl0aW5nOihpZClzZW5kZXI7CitAZW5kCisKK0BpbXBs
ZW1lbnRhdGlvbiBXS0VkaXRDb21tYW5kT2JqQworCistIChpZClpbml0V2l0aFdlYkVkaXRDb21t
YW5kUHJveHk6KFJlZlB0cjxXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk+KWNvbW1hbmQKK3sK
KyAgICBzZWxmID0gW3N1cGVyIGluaXRdOworICAgIGlmICghc2VsZikKKyAgICAgICAgcmV0dXJu
IG5pbDsKKworICAgIG1fY29tbWFuZCA9IGNvbW1hbmQ7CisgICAgcmV0dXJuIHNlbGY7Cit9CisK
Ky0gKFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eSopY29tbWFuZAoreworICAgIHJldHVybiBt
X2NvbW1hbmQuZ2V0KCk7Cit9CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLRWRpdG9yVW5k
b1RhcmdldE9iakMKKworLSAodm9pZCl1bmRvRWRpdGluZzooaWQpc2VuZGVyCit7CisgICAgQVNT
RVJUKFtzZW5kZXIgaXNLaW5kT2ZDbGFzczpbV0tFZGl0Q29tbWFuZE9iakMgY2xhc3NdXSk7Cisg
ICAgW3NlbmRlciBjb21tYW5kXS0+dW5hcHBseSgpOworfQorCistICh2b2lkKXJlZG9FZGl0aW5n
OihpZClzZW5kZXIKK3sKKyAgICBBU1NFUlQoW3NlbmRlciBpc0tpbmRPZkNsYXNzOltXS0VkaXRD
b21tYW5kT2JqQyBjbGFzc11dKTsKKyAgICBbc2VuZGVyIGNvbW1hbmRdLT5yZWFwcGx5KCk7Cit9
CisKK0BlbmQKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYlZpZXdJbXBsOjpXZWJWaWV3SW1w
bChOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICp2aWV3LCBXZWJQYWdlUHJveHkmIHBhZ2Up
CitXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAq
dmlldywgV2ViUGFnZVByb3h5JiBwYWdlLCBQYWdlQ2xpZW50JiBwYWdlQ2xpZW50KQogICAgIDog
bV92aWV3KHZpZXcpCiAgICAgLCBtX3BhZ2UocGFnZSkKKyAgICAsIG1fcGFnZUNsaWVudChwYWdl
Q2xpZW50KQorICAgICwgbV93ZWFrUHRyRmFjdG9yeSh0aGlzKQorICAgICwgbV9uZWVkc1ZpZXdG
cmFtZUluV2luZG93Q29vcmRpbmF0ZXMobV9wYWdlLnByZWZlcmVuY2VzKCkucGx1Z2luc0VuYWJs
ZWQoKSkKICAgICAsIG1faW50cmluc2ljQ29udGVudFNpemUoQ0dTaXplTWFrZShOU1ZpZXdOb0lu
c3RyaW5zaWNNZXRyaWMsIE5TVmlld05vSW5zdHJpbnNpY01ldHJpYykpCiAgICAgLCBtX2xheW91
dFN0cmF0ZWd5KFtXS1ZpZXdMYXlvdXRTdHJhdGVneSBsYXlvdXRTdHJhdGVneVdpdGhQYWdlOm1f
cGFnZSB2aWV3Om1fdmlldyB2aWV3SW1wbDoqdGhpcyBtb2RlOmtXS0xheW91dE1vZGVWaWV3U2l6
ZV0pCisgICAgLCBtX3VuZG9UYXJnZXQoYWRvcHROUyhbW1dLRWRpdG9yVW5kb1RhcmdldE9iakMg
YWxsb2NdIGluaXRdKSkKKyAgICAsIG1fd2luZG93VmlzaWJpbGl0eU9ic2VydmVyKGFkb3B0TlMo
W1tXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhWaWV3OnZpZXcgaW1w
bDoqdGhpc10pKQogeworICAgIG1fcGFnZS5zZXRJbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3Rvcihp
bnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcigpKTsKKworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMDAwCisgICAgaWYgKENsYXNzIGdlc3R1cmVDbGFzcyA9IE5TQ2xh
c3NGcm9tU3RyaW5nKEAiTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciIpKSB7Cisg
ICAgICAgIG1faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFsoTlNJ
bW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciAqKVtnZXN0dXJlQ2xhc3MgYWxsb2NdIGlu
aXRdKTsKKyAgICAgICAgbV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyID0gYWRvcHROUyhbW1dL
SW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhQYWdlOm1fcGFnZSB2aWV3
Om1fdmlldyB2aWV3SW1wbDoqdGhpcyByZWNvZ25pemVyOm1faW1tZWRpYXRlQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXIuZ2V0KCldKTsKKyAgICAgICAgW21faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJl
Y29nbml6ZXIgc2V0RGVsZWdhdGU6bV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmdldCgpXTsK
KyAgICAgICAgW21faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgc2V0RGVsYXlzUHJp
bWFyeU1vdXNlQnV0dG9uRXZlbnRzOk5PXTsKKyAgICB9CisjZW5kaWYKIH0KIAogV2ViVmlld0lt
cGw6On5XZWJWaWV3SW1wbCgpCkBAIC01Nyw2ICszMjQsMTAgQEAgV2ViVmlld0ltcGw6On5XZWJW
aWV3SW1wbCgpCiAgICAgQVNTRVJUKCFtX2luU2VjdXJlSW5wdXRTdGF0ZSk7CiAKICAgICBbbV9s
YXlvdXRTdHJhdGVneSBpbnZhbGlkYXRlXTsKKworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxMDAwCisgICAgW21faW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciB3aWxs
RGVzdHJveVZpZXc6bV92aWV3XTsKKyNlbmRpZgogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRE
cmF3c0JhY2tncm91bmQoYm9vbCBkcmF3c0JhY2tncm91bmQpCkBAIC04OSw3ICszNjAsNyBAQCBi
b29sIFdlYlZpZXdJbXBsOjpiZWNvbWVGaXJzdFJlc3BvbmRlcigpCiAgICAgLy8gSWYgd2UganVz
dCBiZWNhbWUgZmlyc3QgcmVzcG9uZGVyIGFnYWluLCB0aGVyZSBpcyBubyBuZWVkIHRvIGRvIGFu
eXRoaW5nLAogICAgIC8vIHNpbmNlIHJlc2lnbkZpcnN0UmVzcG9uZGVyIGhhcyBjb3JyZWN0bHkg
ZGV0ZWN0ZWQgdGhpcyBzaXR1YXRpb24uCiAgICAgaWYgKG1fd2lsbEJlY29tZUZpcnN0UmVzcG9u
ZGVyQWdhaW4pIHsKLSAgICAgICAgbV93aWxsQmVjb21lRmlyc3RSZXNwb25kZXJBZ2FpbiA9IE5P
OworICAgICAgICBtX3dpbGxCZWNvbWVGaXJzdFJlc3BvbmRlckFnYWluID0gZmFsc2U7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMTI4LDcgKzM5OSw3IEBAIGJvb2wgV2ViVmll
d0ltcGw6OnJlc2lnbkZpcnN0UmVzcG9uZGVyKCkKICAgICB9CiAjZW5kaWYKIAotICAgIG1fd2ls
bEJlY29tZUZpcnN0UmVzcG9uZGVyQWdhaW4gPSBOTzsKKyAgICBtX3dpbGxCZWNvbWVGaXJzdFJl
c3BvbmRlckFnYWluID0gZmFsc2U7CiAgICAgbV9pblJlc2lnbkZpcnN0UmVzcG9uZGVyID0gdHJ1
ZTsKIAogI2lmIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKQEAgLTE3NSw2ICs0NDYsMTgg
QEAgdm9pZCBXZWJWaWV3SW1wbDo6dmlld0RpZEVuZExpdmVSZXNpemUoKQogICAgIFttX2xheW91
dFN0cmF0ZWd5IGRpZEVuZExpdmVSZXNpemVdOwogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpyZW5l
d0dTdGF0ZSgpCit7CisgICAgaWYgKG1fdGV4dEluZGljYXRvcldpbmRvdykKKyAgICAgICAgZGlz
bWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb24oZmFsc2UpOworCisg
ICAgLy8gVXBkYXRlIHRoZSB2aWV3IGZyYW1lLgorICAgIGlmIChtX3ZpZXcud2luZG93KQorICAg
ICAgICB1cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzKCk7CisKKyAgICB1cGRhdGVDb250ZW50SW5z
ZXRzSWZBdXRvbWF0aWMoKTsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6c2V0RnJhbWVTaXplKENH
U2l6ZSkKIHsKICAgICBbbV9sYXlvdXRTdHJhdGVneSBkaWRDaGFuZ2VGcmFtZVNpemVdOwpAQCAt
MjAzLDYgKzQ4NiwzOSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRGcmFtZUFuZFNjcm9sbEJ5KENH
UmVjdCBmcmFtZSwgQ0dTaXplIG9mZnNldCkKICAgICBtX3ZpZXcuZnJhbWUgPSBOU1JlY3RGcm9t
Q0dSZWN0KGZyYW1lKTsKIH0KIAordm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlV2luZG93QW5kVmll
d0ZyYW1lcygpCit7CisgICAgaWYgKGNsaXBzVG9WaXNpYmxlUmVjdCgpKQorICAgICAgICB1cGRh
dGVWaWV3RXhwb3NlZFJlY3QoKTsKKworICAgIGlmIChtX2RpZFNjaGVkdWxlV2luZG93QW5kVmll
d0ZyYW1lVXBkYXRlKQorICAgICAgICByZXR1cm47CisKKyAgICBtX2RpZFNjaGVkdWxlV2luZG93
QW5kVmlld0ZyYW1lVXBkYXRlID0gdHJ1ZTsKKworICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVX
ZWFrUHRyKCk7CisgICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwg
W3dlYWtUaGlzXSB7CisgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgd2Vha1RoaXMtPm1fZGlkU2NoZWR1bGVXaW5kb3dBbmRWaWV3RnJhbWVVcGRh
dGUgPSBmYWxzZTsKKworICAgICAgICBOU1JlY3Qgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRl
cyA9IE5TWmVyb1JlY3Q7CisgICAgICAgIE5TUG9pbnQgYWNjZXNzaWJpbGl0eVBvc2l0aW9uID0g
TlNaZXJvUG9pbnQ7CisKKyAgICAgICAgaWYgKHdlYWtUaGlzLT5tX25lZWRzVmlld0ZyYW1lSW5X
aW5kb3dDb29yZGluYXRlcykKKyAgICAgICAgICAgIHZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0
ZXMgPSBbd2Vha1RoaXMtPm1fdmlldyBjb252ZXJ0UmVjdDp3ZWFrVGhpcy0+bV92aWV3LmZyYW1l
IHRvVmlldzpuaWxdOworCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAg
ICAgIGlmIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQor
ICAgICAgICAgICAgYWNjZXNzaWJpbGl0eVBvc2l0aW9uID0gW1t3ZWFrVGhpcy0+bV92aWV3IGFj
Y2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlQb3NpdGlvbkF0dHJpYnV0
ZV0gcG9pbnRWYWx1ZV07CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgICAgIAor
ICAgICAgICB3ZWFrVGhpcy0+bV9wYWdlLndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKHZpZXdG
cmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIGFjY2Vzc2liaWxpdHlQb3NpdGlvbik7CisgICAgfSk7
Cit9CisKIHZvaWQgV2ViVmlld0ltcGw6OnNldEZpeGVkTGF5b3V0U2l6ZShDR1NpemUgZml4ZWRM
YXlvdXRTaXplKQogewogICAgIG1fcGFnZS5zZXRGaXhlZExheW91dFNpemUoV2ViQ29yZTo6ZXhw
YW5kZWRJbnRTaXplKFdlYkNvcmU6OkZsb2F0U2l6ZShmaXhlZExheW91dFNpemUpKSk7CkBAIC0y
MjIsNiArNTM4LDUzIEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldERyYXdpbmdBcmVhU2l6ZShDR1Np
emUgc2l6ZSkKICAgICBtX3Jlc2l6ZVNjcm9sbE9mZnNldCA9IENHU2l6ZVplcm87CiB9CiAKK3Zv
aWQgV2ViVmlld0ltcGw6OnNldEF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cyhib29s
IGF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cykKK3sKKyAgICBtX2F1dG9tYXRpY2Fs
bHlBZGp1c3RzQ29udGVudEluc2V0cyA9IGF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0
czsKKyAgICB1cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWMoKTsKK30KKwordm9pZCBXZWJW
aWV3SW1wbDo6dXBkYXRlQ29udGVudEluc2V0c0lmQXV0b21hdGljKCkKK3sKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAorICAgIGlmICghbV9hdXRvbWF0aWNh
bGx5QWRqdXN0c0NvbnRlbnRJbnNldHMpCisgICAgICAgIHJldHVybjsKKworICAgIE5TV2luZG93
ICp3aW5kb3cgPSBtX3ZpZXcud2luZG93OworICAgIGlmICgod2luZG93LnN0eWxlTWFzayAmIE5T
RnVsbFNpemVDb250ZW50Vmlld1dpbmRvd01hc2spICYmICF3aW5kb3cudGl0bGViYXJBcHBlYXJz
VHJhbnNwYXJlbnQgJiYgIVttX3ZpZXcgZW5jbG9zaW5nU2Nyb2xsVmlld10pIHsKKyAgICAgICAg
TlNSZWN0IGNvbnRlbnRMYXlvdXRSZWN0ID0gW21fdmlldyBjb252ZXJ0UmVjdDp3aW5kb3cuY29u
dGVudExheW91dFJlY3QgZnJvbVZpZXc6bmlsXTsKKyAgICAgICAgQ0dGbG9hdCBuZXdUb3BDb250
ZW50SW5zZXQgPSBOU01heFkoY29udGVudExheW91dFJlY3QpIC0gTlNIZWlnaHQoY29udGVudExh
eW91dFJlY3QpOworICAgICAgICBpZiAobV90b3BDb250ZW50SW5zZXQgIT0gbmV3VG9wQ29udGVu
dEluc2V0KQorICAgICAgICAgICAgc2V0VG9wQ29udGVudEluc2V0KG5ld1RvcENvbnRlbnRJbnNl
dCk7CisgICAgfSBlbHNlCisgICAgICAgIHNldFRvcENvbnRlbnRJbnNldCgwKTsKKyNlbmRpZgor
fQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRUb3BDb250ZW50SW5zZXQoQ0dGbG9hdCBjb250ZW50
SW5zZXQpCit7CisgICAgbV90b3BDb250ZW50SW5zZXQgPSBjb250ZW50SW5zZXQ7CisKKyAgICBp
ZiAobV9kaWRTY2hlZHVsZVNldFRvcENvbnRlbnRJbnNldCkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9kaWRTY2hlZHVsZVNldFRvcENvbnRlbnRJbnNldCA9IHRydWU7CisKKyAgICBhdXRvIHdl
YWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dl
dF9tYWluX3F1ZXVlKCksIFt3ZWFrVGhpc10geworICAgICAgICB3ZWFrVGhpcy0+ZGlzcGF0Y2hT
ZXRUb3BDb250ZW50SW5zZXQoKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6ZGlz
cGF0Y2hTZXRUb3BDb250ZW50SW5zZXQoKQoreworICAgIGlmICghbV9kaWRTY2hlZHVsZVNldFRv
cENvbnRlbnRJbnNldCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9kaWRTY2hlZHVsZVNldFRv
cENvbnRlbnRJbnNldCA9IGZhbHNlOworICAgIG1fcGFnZS5zZXRUb3BDb250ZW50SW5zZXQobV90
b3BDb250ZW50SW5zZXQpOworfQorCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRDb250ZW50UHJlcGFy
YXRpb25SZWN0KENHUmVjdCByZWN0KQogewogICAgIG1fY29udGVudFByZXBhcmF0aW9uUmVjdCA9
IHJlY3Q7CkBAIC0zMzcsNiArNzAwLDI3MCBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVTdXBw
b3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCkKICAgICB9CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6
OnNldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IoQ0dGbG9hdCBkZXZpY2VTY2FsZUZhY3RvcikK
K3sKKyAgICBtX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IgPSBkZXZpY2VTY2FsZUZhY3RvcjsK
KyAgICBtX3BhZ2Uuc2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoaW50cmluc2ljRGV2aWNl
U2NhbGVGYWN0b3IoKSk7Cit9CisKK2Zsb2F0IFdlYlZpZXdJbXBsOjppbnRyaW5zaWNEZXZpY2VT
Y2FsZUZhY3RvcigpIGNvbnN0Cit7CisgICAgaWYgKG1fb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3Rv
cikKKyAgICAgICAgcmV0dXJuIG1fb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjsKKyAgICBpZiAo
bV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24pCisgICAgICAgIHJldHVybiBtX3Rhcmdl
dFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbi5iYWNraW5nU2NhbGVGYWN0b3I7CisgICAgaWYgKE5T
V2luZG93ICp3aW5kb3cgPSBtX3ZpZXcud2luZG93KQorICAgICAgICByZXR1cm4gd2luZG93LmJh
Y2tpbmdTY2FsZUZhY3RvcjsKKyAgICByZXR1cm4gW05TU2NyZWVuIG1haW5TY3JlZW5dLmJhY2tp
bmdTY2FsZUZhY3RvcjsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkT3JkZXJPZmZT
Y3JlZW4oKQoreworICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0
YXRlOjpJc1Zpc2libGUgfCBXZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsKK30K
Kwordm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkT3JkZXJPblNjcmVlbigpCit7CisgICAgbV9w
YWdlLnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OklzVmlzaWJsZSB8IFdl
YkNvcmU6OlZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOworfQorCit2b2lkIFdlYlZpZXdJbXBs
Ojp3aW5kb3dEaWRCZWNvbWVLZXkoTlNXaW5kb3cgKmtleVdpbmRvdykKK3sKKyAgICBpZiAoa2V5
V2luZG93ID09IG1fdmlldy53aW5kb3cgfHwga2V5V2luZG93ID09IG1fdmlldy53aW5kb3cuYXR0
YWNoZWRTaGVldCkgeworICAgICAgICB1cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCk7CisgICAgICAg
IG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpXaW5kb3dJc0Fj
dGl2ZSk7CisgICAgfQorfQorCit2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRSZXNpZ25LZXko
TlNXaW5kb3cgKmZvcm1lcktleVdpbmRvdykKK3sKKyAgICBpZiAoZm9ybWVyS2V5V2luZG93ID09
IG1fdmlldy53aW5kb3cgfHwgZm9ybWVyS2V5V2luZG93ID09IG1fdmlldy53aW5kb3cuYXR0YWNo
ZWRTaGVldCkgeworICAgICAgICB1cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCk7CisgICAgICAgIG1f
cGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpXaW5kb3dJc0FjdGl2
ZSk7CisgICAgfQorfQorCit2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRNaW5pYXR1cml6ZSgp
Cit7CisgICAgbV9wYWdlLnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6Oklz
VmlzaWJsZSk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZERlbWluaWF0dXJpemUo
KQoreworICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJ
c1Zpc2libGUpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRNb3ZlKCkKK3sKKyAg
ICB1cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6Ondp
bmRvd0RpZFJlc2l6ZSgpCit7CisgICAgdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lcygpOworfQor
Cit2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllcyhDR0Zs
b2F0IG9sZEJhY2tpbmdTY2FsZUZhY3RvcikKK3sKKyAgICBDR0Zsb2F0IG5ld0JhY2tpbmdTY2Fs
ZUZhY3RvciA9IGludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKCk7CisgICAgaWYgKG9sZEJhY2tp
bmdTY2FsZUZhY3RvciA9PSBuZXdCYWNraW5nU2NhbGVGYWN0b3IpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fcGFnZS5zZXRJbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcihuZXdCYWNraW5nU2Nh
bGVGYWN0b3IpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VTY3JlZW4o
KQoreworICAgIE5TV2luZG93ICp3aW5kb3cgPSBtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJh
dGlvbiA/IG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uIDogbV92aWV3LndpbmRvdzsK
KyAgICBtX3BhZ2Uud2luZG93U2NyZWVuRGlkQ2hhbmdlKChQbGF0Zm9ybURpc3BsYXlJRClbW1tb
d2luZG93IHNjcmVlbl0gZGV2aWNlRGVzY3JpcHRpb25dIG9iamVjdEZvcktleTpAIk5TU2NyZWVu
TnVtYmVyIl0gaW50VmFsdWVdKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkQ2hh
bmdlTGF5ZXJIb3N0aW5nKCkKK3sKKyAgICBtX3BhZ2UubGF5ZXJIb3N0aW5nTW9kZURpZENoYW5n
ZSgpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0
ZSgpCit7CisgICAgbV9wYWdlLnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6
OklzVmlzaWJsZSk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnZpZXdXaWxsTW92ZVRvV2luZG93
KE5TV2luZG93ICp3aW5kb3cpCit7CisgICAgLy8gSWYgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBw
cmVwYXJpbmcgdG8gbW92ZSB0byBhIHdpbmRvdywgd2Ugc2hvdWxkIG9ubHkgYmUgbW92ZWQgdG8g
dGhhdCB3aW5kb3cuCisgICAgQVNTRVJUKCFtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlv
biB8fCAobV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gPT0gd2luZG93KSk7CisKKyAg
ICBOU1dpbmRvdyAqY3VycmVudFdpbmRvdyA9IG1fdmlldy53aW5kb3c7CisgICAgaWYgKHdpbmRv
dyA9PSBjdXJyZW50V2luZG93KQorICAgICAgICByZXR1cm47CisKKyAgICBjbGVhckFsbEVkaXRD
b21tYW5kcygpOworCisgICAgTlNXaW5kb3cgKnN0b3BPYnNlcnZpbmdXaW5kb3cgPSBtX3Rhcmdl
dFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA/IG1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0
aW9uIDogbV92aWV3LndpbmRvdzsKKyAgICBbbV93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3Rv
cE9ic2VydmluZzpzdG9wT2JzZXJ2aW5nV2luZG93XTsKKyAgICBbbV93aW5kb3dWaXNpYmlsaXR5
T2JzZXJ2ZXIgc3RhcnRPYnNlcnZpbmc6d2luZG93XTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6
dmlld0RpZE1vdmVUb1dpbmRvdygpCit7CisgICAgTlNXaW5kb3cgKndpbmRvdyA9IG1fdGFyZ2V0
V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uID8gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRp
b24gOiBtX3ZpZXcud2luZG93OworCisgICAgaWYgKHdpbmRvdykgeworICAgICAgICB3aW5kb3dE
aWRDaGFuZ2VTY3JlZW4oKTsKKworICAgICAgICBXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdzIHZp
ZXdTdGF0ZUNoYW5nZXMgPSBXZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlIHwgV2Vi
Q29yZTo6Vmlld1N0YXRlOjpJc1Zpc2libGU7CisgICAgICAgIGlmIChtX2lzRGVmZXJyaW5nVmll
d0luV2luZG93Q2hhbmdlcykKKyAgICAgICAgICAgIG1fdmlld0luV2luZG93Q2hhbmdlV2FzRGVm
ZXJyZWQgPSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2aWV3U3RhdGVDaGFuZ2Vz
IHw9IFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNJbldpbmRvdzsKKyAgICAgICAgbV9wYWdlLnZpZXdT
dGF0ZURpZENoYW5nZSh2aWV3U3RhdGVDaGFuZ2VzKTsKKworICAgICAgICB1cGRhdGVXaW5kb3dB
bmRWaWV3RnJhbWVzKCk7CisKKyAgICAgICAgLy8gRklYTUUoMTM1NTA5KSBUaGlzIGNhbGwgYmVj
b21lcyB1bm5lY2Vzc2FyeSBvbmNlIDEzNTUwOSBpcyBmaXhlZDsgcmVtb3ZlLgorICAgICAgICBt
X3BhZ2UubGF5ZXJIb3N0aW5nTW9kZURpZENoYW5nZSgpOworCisgICAgICAgIGlmICghbV9mbGFn
c0NoYW5nZWRFdmVudE1vbml0b3IpIHsKKyAgICAgICAgICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVh
dGVXZWFrUHRyKCk7CisgICAgICAgICAgICBtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IFtO
U0V2ZW50IGFkZExvY2FsTW9uaXRvckZvckV2ZW50c01hdGNoaW5nTWFzazpOU0ZsYWdzQ2hhbmdl
ZE1hc2sgaGFuZGxlcjpbd2Vha1RoaXNdIChOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVudCkgewor
ICAgICAgICAgICAgICAgIGlmICh3ZWFrVGhpcykKKyAgICAgICAgICAgICAgICAgICAgd2Vha1Ro
aXMtPnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQoZmxhZ3NDaGFu
Z2VkRXZlbnQpOworICAgICAgICAgICAgICAgIHJldHVybiBmbGFnc0NoYW5nZWRFdmVudDsKKyAg
ICAgICAgICAgIH1dOworICAgICAgICB9CisKKyAgICAgICAgYWNjZXNzaWJpbGl0eVJlZ2lzdGVy
VUlQcm9jZXNzVG9rZW5zKCk7CisKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTAwMAorICAgICAgICBpZiAobV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXpl
ciAmJiAhW1ttX3ZpZXcgZ2VzdHVyZVJlY29nbml6ZXJzXSBjb250YWluc09iamVjdDptX2ltbWVk
aWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgpXSAmJiAhbV9pZ25vcmVzTm9uV2hlZWxF
dmVudHMgJiYgbV9hbGxvd3NMaW5rUHJldmlldykKKyAgICAgICAgICAgIFttX3ZpZXcgYWRkR2Vz
dHVyZVJlY29nbml6ZXI6bV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQoKV07
CisjZW5kaWYKKyAgICB9IGVsc2UgeworICAgICAgICBXZWJDb3JlOjpWaWV3U3RhdGU6OkZsYWdz
IHZpZXdTdGF0ZUNoYW5nZXMgPSBXZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlIHwg
V2ViQ29yZTo6Vmlld1N0YXRlOjpJc1Zpc2libGU7CisgICAgICAgIGlmIChtX2lzRGVmZXJyaW5n
Vmlld0luV2luZG93Q2hhbmdlcykKKyAgICAgICAgICAgIG1fdmlld0luV2luZG93Q2hhbmdlV2Fz
RGVmZXJyZWQgPSB0cnVlOworICAgICAgICBlbHNlCisgICAgICAgICAgICB2aWV3U3RhdGVDaGFu
Z2VzIHw9IFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNJbldpbmRvdzsKKyAgICAgICAgbV9wYWdlLnZp
ZXdTdGF0ZURpZENoYW5nZSh2aWV3U3RhdGVDaGFuZ2VzKTsKKworICAgICAgICBbTlNFdmVudCBy
ZW1vdmVNb25pdG9yOm1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yXTsKKyAgICAgICAgbV9mbGFn
c0NoYW5nZWRFdmVudE1vbml0b3IgPSBuaWw7CisKKyAgICAgICAgZGlzbWlzc0NvbnRlbnRSZWxh
dGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb24oZmFsc2UpOworCisjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICAgICAgaWYgKG1faW1tZWRpYXRlQWN0
aW9uR2VzdHVyZVJlY29nbml6ZXIpCisgICAgICAgICAgICBbbV92aWV3IHJlbW92ZUdlc3R1cmVS
ZWNvZ25pemVyOm1faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldOworI2Vu
ZGlmCisgICAgfQorCisgICAgbV9wYWdlLnNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKGlu
dHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKCkpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp2aWV3
RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXMoKQoreworICAgIE5TQ29sb3JTcGFjZSAqY29sb3JT
cGFjZSA9IG1fdmlldy53aW5kb3cuY29sb3JTcGFjZTsKKyAgICBpZiAoW2NvbG9yU3BhY2UgaXNF
cXVhbFRvOm1fY29sb3JTcGFjZS5nZXQoKV0pCisgICAgICAgIHJldHVybjsKKworICAgIG1fY29s
b3JTcGFjZSA9IG51bGxwdHI7CisgICAgaWYgKERyYXdpbmdBcmVhUHJveHkgKmRyYXdpbmdBcmVh
ID0gbV9wYWdlLmRyYXdpbmdBcmVhKCkpCisgICAgICAgIGRyYXdpbmdBcmVhLT5jb2xvclNwYWNl
RGlkQ2hhbmdlKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2
ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQoTlNFdmVudCAqZmxhZ3NDaGFuZ2VkRXZlbnQpCit7Cisg
ICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91
c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3cubW91c2VMb2NhdGlvbk91
dHNpZGVPZkV2ZW50U3RyZWFtCisgICAgICAgIG1vZGlmaWVyRmxhZ3M6ZmxhZ3NDaGFuZ2VkRXZl
bnQubW9kaWZpZXJGbGFncyB0aW1lc3RhbXA6ZmxhZ3NDaGFuZ2VkRXZlbnQudGltZXN0YW1wIHdp
bmRvd051bWJlcjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3dOdW1iZXIKKyAgICAgICAgY29udGV4
dDpmbGFnc0NoYW5nZWRFdmVudC5jb250ZXh0IGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHBy
ZXNzdXJlOjBdOworICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQoZmFrZUV2ZW50LCBt
X2xhc3RQcmVzc3VyZUV2ZW50LmdldCgpLCBtX3ZpZXcpOworICAgIG1fcGFnZS5oYW5kbGVNb3Vz
ZUV2ZW50KHdlYkV2ZW50KTsKK30KKworQ29sb3JTcGFjZURhdGEgV2ViVmlld0ltcGw6OmNvbG9y
U3BhY2UoKQoreworICAgIGlmICghbV9jb2xvclNwYWNlKSB7CisgICAgICAgIGlmIChtX3Rhcmdl
dFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbikKKyAgICAgICAgICAgIG1fY29sb3JTcGFjZSA9IG1f
dGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uLmNvbG9yU3BhY2U7CisgICAgICAgIGVsc2Ug
aWYgKE5TV2luZG93ICp3aW5kb3cgPSBtX3ZpZXcud2luZG93KQorICAgICAgICAgICAgbV9jb2xv
clNwYWNlID0gd2luZG93LmNvbG9yU3BhY2U7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1f
Y29sb3JTcGFjZSA9IFtOU1NjcmVlbiBtYWluU2NyZWVuXS5jb2xvclNwYWNlOworICAgIH0KKwor
ICAgIENvbG9yU3BhY2VEYXRhIGNvbG9yU3BhY2VEYXRhOworICAgIGNvbG9yU3BhY2VEYXRhLmNn
Q29sb3JTcGFjZSA9IFttX2NvbG9yU3BhY2UgQ0dDb2xvclNwYWNlXTsKKyAgICAKKyAgICByZXR1
cm4gY29sb3JTcGFjZURhdGE7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmJlZ2luRGVmZXJyaW5n
Vmlld0luV2luZG93Q2hhbmdlcygpCit7CisgICAgaWYgKG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5k
b3dDaGFuZ2VzKSB7CisgICAgICAgIE5TTG9nKEAiYmVnaW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dD
aGFuZ2VzIHdhcyBjYWxsZWQgd2hpbGUgYWxyZWFkeSBkZWZlcnJpbmcgdmlldy1pbi13aW5kb3cg
Y2hhbmdlcyEiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc2hvdWxkRGVmZXJW
aWV3SW5XaW5kb3dDaGFuZ2VzID0gdHJ1ZTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6ZW5kRGVm
ZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcygpCit7CisgICAgaWYgKCFtX3Nob3VsZERlZmVyVmll
d0luV2luZG93Q2hhbmdlcykgeworICAgICAgICBOU0xvZyhAImVuZERlZmVycmluZ1ZpZXdJbldp
bmRvd0NoYW5nZXMgd2FzIGNhbGxlZCB3aXRob3V0IGJlZ2luRGVmZXJyaW5nVmlld0luV2luZG93
Q2hhbmdlcyEiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc2hvdWxkRGVmZXJW
aWV3SW5XaW5kb3dDaGFuZ2VzID0gZmFsc2U7CisKKyAgICBpZiAobV92aWV3SW5XaW5kb3dDaGFu
Z2VXYXNEZWZlcnJlZCkgeworICAgICAgICBkaXNwYXRjaFNldFRvcENvbnRlbnRJbnNldCgpOwor
ICAgICAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNJ
bldpbmRvdyk7CisgICAgICAgIG1fdmlld0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQgPSBmYWxz
ZTsKKyAgICB9Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmVuZERlZmVycmluZ1ZpZXdJbldpbmRv
d0NoYW5nZXNTeW5jKCkKK3sKKyAgICBpZiAoIW1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFu
Z2VzKSB7CisgICAgICAgIE5TTG9nKEAiZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlc1N5
bmMgd2FzIGNhbGxlZCB3aXRob3V0IGJlZ2luRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcyEi
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5k
b3dDaGFuZ2VzID0gZmFsc2U7CisKKyAgICBpZiAobV92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZl
cnJlZCkgeworICAgICAgICBkaXNwYXRjaFNldFRvcENvbnRlbnRJbnNldCgpOworICAgICAgICBt
X3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNJbldpbmRvdyk7
CisgICAgICAgIG1fdmlld0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQgPSBmYWxzZTsKKyAgICB9
Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnByZXBhcmVGb3JNb3ZlVG9XaW5kb3coTlNXaW5kb3cg
KnRhcmdldFdpbmRvdywgc3RkOjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25IYW5kbGVyKQor
eworICAgIG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzID0gdHJ1ZTsKKyAgICB2aWV3
V2lsbE1vdmVUb1dpbmRvdyh0YXJnZXRXaW5kb3cpOworICAgIG1fdGFyZ2V0V2luZG93Rm9yTW92
ZVByZXBhcmF0aW9uID0gdGFyZ2V0V2luZG93OworICAgIHZpZXdEaWRNb3ZlVG9XaW5kb3coKTsK
KworICAgIG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzID0gZmFsc2U7CisKKyAgICBh
dXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgIG1fcGFnZS5pbnN0YWxsVmlld1N0
YXRlQ2hhbmdlQ29tcGxldGlvbkhhbmRsZXIoW3dlYWtUaGlzLCBjb21wbGV0aW9uSGFuZGxlcl0o
KSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CisKKyAgICAgICAgaWYgKCF3ZWFrVGhp
cykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBBU1NFUlQod2Vha1RoaXMtPm1fdmll
dy53aW5kb3cgPT0gd2Vha1RoaXMtPm1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uKTsK
KyAgICAgICAgd2Vha1RoaXMtPm1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uID0gbmls
OworICAgIH0pOworCisgICAgZGlzcGF0Y2hTZXRUb3BDb250ZW50SW5zZXQoKTsKKyAgICBtX3Bh
Z2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNJbldpbmRvdywgZmFs
c2UsIFdlYlBhZ2VQcm94eTo6Vmlld1N0YXRlQ2hhbmdlRGlzcGF0Y2hNb2RlOjpJbW1lZGlhdGUp
OworICAgIG1fdmlld0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQgPSBmYWxzZTsKK30KKwogdm9p
ZCBXZWJWaWV3SW1wbDo6dXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSgpCiB7CiAgICAgaWYgKCFbW21f
dmlldyB3aW5kb3ddIGlzS2V5V2luZG93XSB8fCAhaXNGb2N1c2VkKCkpIHsKQEAgLTM4Niw2ICsx
MDEzLDI1IEBAIHZvaWQgV2ViVmlld0ltcGw6Om5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2Fy
ZGVkQ29tcG9zaXRpb24oKQogICAgIFtbbV92aWV3IF9zdXBlcklucHV0Q29udGV4dF0gZGlzY2Fy
ZE1hcmtlZFRleHRdOyAvLyBJbmZvcm0gdGhlIGlucHV0IG1ldGhvZCB0aGF0IHdlIHdvbid0IGhh
dmUgYW4gaW5saW5lIGlucHV0IGFyZWEgZGVzcGl0ZSBoYXZpbmcgYmVlbiBhc2tlZCB0by4KIH0K
IAordm9pZCBXZWJWaWV3SW1wbDo6cHJlc3N1cmVDaGFuZ2VXaXRoRXZlbnQoTlNFdmVudCAqZXZl
bnQpCit7CisjaWYgZGVmaW5lZChfX0xQNjRfXykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01BWF9B
TExPV0VEID49IDEwMTAwMworICAgIGlmIChldmVudCA9PSBtX2xhc3RQcmVzc3VyZUV2ZW50KQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAobV9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChldmVudC5waGFzZSAhPSBOU0V2ZW50UGhhc2VDaGFuZ2Vk
ICYmIGV2ZW50LnBoYXNlICE9IE5TRXZlbnRQaGFzZUJlZ2FuICYmIGV2ZW50LnBoYXNlICE9IE5T
RXZlbnRQaGFzZUVuZGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBOYXRpdmVXZWJNb3VzZUV2
ZW50IHdlYkV2ZW50KGV2ZW50LCBtX2xhc3RQcmVzc3VyZUV2ZW50LmdldCgpLCBtX3ZpZXcpOwor
ICAgIG1fcGFnZS5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsKKworICAgIG1fbGFzdFByZXNz
dXJlRXZlbnQgPSBldmVudDsKKyNlbmRpZgorfQorCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KQogYm9vbCBXZWJWaWV3SW1wbDo6aGFzRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKSBjb25z
dAogewpAQCAtNDI4LDYgKzEwNzQsMjU5IEBAIE5TV2luZG93ICpXZWJWaWV3SW1wbDo6Y3JlYXRl
RnVsbFNjcmVlbldpbmRvdygpCiAjZW5kaWYKIH0KIAorYm9vbCBXZWJWaWV3SW1wbDo6aXNFZGl0
YWJsZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS5pc0VkaXRhYmxlKCk7Cit9CisKK3Zv
aWQgV2ViVmlld0ltcGw6OmV4ZWN1dGVFZGl0Q29tbWFuZChjb25zdCBTdHJpbmcmIGNvbW1hbmRO
YW1lLCBjb25zdCBTdHJpbmcmIGFyZ3VtZW50KQoreworICAgIG1fcGFnZS5leGVjdXRlRWRpdENv
bW1hbmQoY29tbWFuZE5hbWUsIGFyZ3VtZW50KTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6cmVn
aXN0ZXJFZGl0Q29tbWFuZChSZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4gcHJwQ29tbWFuZCwg
V2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvIHVuZG9PclJlZG8pCit7CisgICAgUmVmUHRyPFdlYkVk
aXRDb21tYW5kUHJveHk+IGNvbW1hbmQgPSBwcnBDb21tYW5kOworCisgICAgUmV0YWluUHRyPFdL
RWRpdENvbW1hbmRPYmpDPiBjb21tYW5kT2JqQyA9IGFkb3B0TlMoW1tXS0VkaXRDb21tYW5kT2Jq
QyBhbGxvY10gaW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5OmNvbW1hbmRdKTsKKyAgICBTdHJp
bmcgYWN0aW9uTmFtZSA9IFdlYkVkaXRDb21tYW5kUHJveHk6Om5hbWVGb3JFZGl0QWN0aW9uKGNv
bW1hbmQtPmVkaXRBY3Rpb24oKSk7CisKKyAgICBOU1VuZG9NYW5hZ2VyICp1bmRvTWFuYWdlciA9
IFttX3ZpZXcgdW5kb01hbmFnZXJdOworICAgIFt1bmRvTWFuYWdlciByZWdpc3RlclVuZG9XaXRo
VGFyZ2V0Om1fdW5kb1RhcmdldC5nZXQoKSBzZWxlY3RvcjooKHVuZG9PclJlZG8gPT0gV2ViUGFn
ZVByb3h5OjpVbmRvKSA/IEBzZWxlY3Rvcih1bmRvRWRpdGluZzopIDogQHNlbGVjdG9yKHJlZG9F
ZGl0aW5nOikpIG9iamVjdDpjb21tYW5kT2JqQy5nZXQoKV07CisgICAgaWYgKCFhY3Rpb25OYW1l
LmlzRW1wdHkoKSkKKyAgICAgICAgW3VuZG9NYW5hZ2VyIHNldEFjdGlvbk5hbWU6KE5TU3RyaW5n
ICopYWN0aW9uTmFtZV07Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmNsZWFyQWxsRWRpdENvbW1h
bmRzKCkKK3sKKyAgICBbW21fdmlldyB1bmRvTWFuYWdlcl0gcmVtb3ZlQWxsQWN0aW9uc1dpdGhU
YXJnZXQ6bV91bmRvVGFyZ2V0LmdldCgpXTsKK30KKworYm9vbCBXZWJWaWV3SW1wbDo6d3JpdGVT
ZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkLCBOU0FycmF5ICp0
eXBlcykKK3sKKyAgICBzaXplX3QgbnVtVHlwZXMgPSB0eXBlcy5jb3VudDsKKyAgICBbcGFzdGVi
b2FyZCBkZWNsYXJlVHlwZXM6dHlwZXMgb3duZXI6bmlsXTsKKyAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IG51bVR5cGVzOyArK2kpIHsKKyAgICAgICAgaWYgKFtbdHlwZXMgb2JqZWN0QXRJbmRl
eDppXSBpc0VxdWFsVG86TlNTdHJpbmdQYm9hcmRUeXBlXSkKKyAgICAgICAgICAgIFtwYXN0ZWJv
YXJkIHNldFN0cmluZzptX3BhZ2Uuc3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVib2FyZCgpIGZvclR5
cGU6TlNTdHJpbmdQYm9hcmRUeXBlXTsKKyAgICAgICAgZWxzZSB7CisgICAgICAgICAgICBSZWZQ
dHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBtX3BhZ2UuZGF0YVNlbGVjdGlvbkZv
clBhc3RlYm9hcmQoW3R5cGVzIG9iamVjdEF0SW5kZXg6aV0pOworICAgICAgICAgICAgW3Bhc3Rl
Ym9hcmQgc2V0RGF0YTpidWZmZXIgPyBidWZmZXItPmNyZWF0ZU5TRGF0YSgpLmdldCgpIDogbmls
IGZvclR5cGU6W3R5cGVzIG9iamVjdEF0SW5kZXg6aV1dOworICAgICAgICB9CisgICAgfQorICAg
IHJldHVybiB0cnVlOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpjZW50ZXJTZWxlY3Rpb25JblZp
c2libGVBcmVhKCkKK3sKKyAgICBtX3BhZ2UuY2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYSgp
OworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZWxlY3Rpb25EaWRDaGFuZ2UoKQoreworICAgIHVw
ZGF0ZUZvbnRQYW5lbElmTmVlZGVkKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0T2Jz
ZXJ2aW5nRm9udFBhbmVsKCkKK3sKKyAgICBbbV93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3Rh
cnRPYnNlcnZpbmdGb250UGFuZWxdOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVGb250
UGFuZWxJZk5lZWRlZCgpCit7CisgICAgY29uc3QgRWRpdG9yU3RhdGUmIGVkaXRvclN0YXRlID0g
bV9wYWdlLmVkaXRvclN0YXRlKCk7CisgICAgaWYgKGVkaXRvclN0YXRlLnNlbGVjdGlvbklzTm9u
ZSB8fCAhZWRpdG9yU3RhdGUuaXNDb250ZW50RWRpdGFibGUpCisgICAgICAgIHJldHVybjsKKyAg
ICBpZiAoW05TRm9udFBhbmVsIHNoYXJlZEZvbnRQYW5lbEV4aXN0c10gJiYgW1tOU0ZvbnRQYW5l
bCBzaGFyZWRGb250UGFuZWxdIGlzVmlzaWJsZV0pIHsKKyAgICAgICAgbV9wYWdlLmZvbnRBdFNl
bGVjdGlvbihbXShjb25zdCBTdHJpbmcmIGZvbnROYW1lLCBkb3VibGUgZm9udFNpemUsIGJvb2wg
c2VsZWN0aW9uSGFzTXVsdGlwbGVGb250cywgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVy
cm9yKSB7CisgICAgICAgICAgICBOU0ZvbnQgKmZvbnQgPSBbTlNGb250IGZvbnRXaXRoTmFtZTpm
b250TmFtZSBzaXplOmZvbnRTaXplXTsKKyAgICAgICAgICAgIGlmIChmb250KQorICAgICAgICAg
ICAgICAgIFtbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl0gc2V0U2VsZWN0ZWRGb250
OmZvbnQgaXNNdWx0aXBsZTpzZWxlY3Rpb25IYXNNdWx0aXBsZUZvbnRzXTsKKyAgICAgICAgfSk7
CisgICAgfQorfQorCit2b2lkIFdlYlZpZXdJbXBsOjpwcmVmZXJlbmNlc0RpZENoYW5nZSgpCit7
CisgICAgQk9PTCBuZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMgPSBtX3BhZ2UucHJl
ZmVyZW5jZXMoKS5wbHVnaW5zRW5hYmxlZCgpOworCisgICAgaWYgKCEhbmVlZHNWaWV3RnJhbWVJ
bldpbmRvd0Nvb3JkaW5hdGVzID09ICEhbV9uZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0
ZXMpCisgICAgICAgIHJldHVybjsKKworICAgIG1fbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3Jk
aW5hdGVzID0gbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzOworICAgIGlmIChtX3Zp
ZXcud2luZG93KQorICAgICAgICB1cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzKCk7Cit9CisKK3Zv
aWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvciYg
dGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lIGxpZmV0
aW1lKQoreworICAgIGlmICghbV90ZXh0SW5kaWNhdG9yV2luZG93KQorICAgICAgICBtX3RleHRJ
bmRpY2F0b3JXaW5kb3cgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JX
aW5kb3c+KG1fdmlldyk7CisKKyAgICBOU1JlY3QgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29v
cmRpbmF0ZXMgPSBbbV92aWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOlttX3ZpZXcgY29u
dmVydFJlY3Q6dGV4dEluZGljYXRvci50ZXh0Qm91bmRpbmdSZWN0SW5Sb290Vmlld0Nvb3JkaW5h
dGVzKCkgdG9WaWV3Om5pbF1dOworICAgIG1fdGV4dEluZGljYXRvcldpbmRvdy0+c2V0VGV4dElu
ZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBOU1JlY3RUb0NHUmVjdCh0ZXh0Qm91bmRpbmdSZWN0SW5T
Y3JlZW5Db29yZGluYXRlcyksIGxpZmV0aW1lKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6Y2xl
YXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
RGlzbWlzc2FsQW5pbWF0aW9uIGFuaW1hdGlvbikKK3sKKyAgICBpZiAobV90ZXh0SW5kaWNhdG9y
V2luZG93KQorICAgICAgICBtX3RleHRJbmRpY2F0b3JXaW5kb3ctPmNsZWFyVGV4dEluZGljYXRv
cihhbmltYXRpb24pOworICAgIG1fdGV4dEluZGljYXRvcldpbmRvdyA9IG51bGxwdHI7Cit9CisK
K3ZvaWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9h
dCBwcm9ncmVzcykKK3sKKyAgICBpZiAobV90ZXh0SW5kaWNhdG9yV2luZG93KQorICAgICAgICBt
X3RleHRJbmRpY2F0b3JXaW5kb3ctPnNldEFuaW1hdGlvblByb2dyZXNzKHByb2dyZXNzKTsKK30K
Kwordm9pZCBXZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dp
dGhBbmltYXRpb24oYm9vbCBhbmltYXRlKQoreworICAgIFttX3ZpZXcgX2Rpc21pc3NDb250ZW50
UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uOmFuaW1hdGVdOworfQorCit2b2lkIFdl
YlZpZXdJbXBsOjpkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlv
bkZyb21WaWV3T25seShib29sIGFuaW1hdGUpCit7CisgICAgLy8gQ2FsbGluZyBfY2xlYXJUZXh0
SW5kaWNhdG9yV2l0aEFuaW1hdGlvbiBoZXJlIHdpbGwgd2luIG91dCBvdmVyIHRoZSBhbmltYXRl
ZCBjbGVhciBpbiBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5
LgorICAgIC8vIFdlIGNhbid0IGludmVydCB0aGVzZSBiZWNhdXNlIGNsaWVudHMgY2FuIG92ZXJy
aWRlIChhbmQgaGF2ZSBvdmVycmlkZGVuKSBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2lu
ZG93cywgc28gaXQgbmVlZHMgdG8gYmUgY2FsbGVkLgorICAgIC8vIEZvciB0aGlzIHNhbWUgcmVh
c29uLCB0aGlzIGNhbid0IGJlIG1vdmVkIHRvIFdlYlZpZXdJbXBsIHdpdGhvdXQgY2FyZS4KKyAg
ICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKGFuaW1hdGUgPyBXZWJDb3JlOjpUZXh0
SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpGYWRlT3V0IDogV2ViQ29yZTo6VGV4
dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CisgICAgW21fdmlldyBf
ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c107Cit9CisKK3ZvaWQgV2ViVmlld0lt
cGw6OmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHkoKQorewor
ICAgIGJvb2wgaGFzQWN0aXZlSW1tZWRpYXRlQWN0aW9uID0gZmFsc2U7CisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICBoYXNBY3RpdmVJbW1lZGlhdGVB
Y3Rpb24gPSBbbV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGhhc0FjdGl2ZUltbWVkaWF0ZUFj
dGlvbl07CisjZW5kaWYKKworICAgIC8vIEZJWE1FOiBXZSBkb24ndCBrbm93IHdoaWNoIHBhbmVs
IHdlIGFyZSBkaXNtaXNzaW5nLCBpdCBtYXkgbm90IGV2ZW4gYmUgaW4gdGhlIGN1cnJlbnQgcGFn
ZSAoc2VlIDxyZGFyOi8vcHJvYmxlbS8xMzg3NTc2Nj4pLgorICAgIGlmIChtX3ZpZXcud2luZG93
LmlzS2V5V2luZG93IHx8IGhhc0FjdGl2ZUltbWVkaWF0ZUFjdGlvbikgeworICAgICAgICBXZWJD
b3JlOjpEaWN0aW9uYXJ5TG9va3VwOjpoaWRlUG9wdXAoKTsKKworI2lmIF9fTUFDX09TX1hfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCisgICAgICAgIEREQWN0aW9uc01hbmFnZXIgKmFj
dGlvbnNNYW5hZ2VyID0gW2dldEREQWN0aW9uc01hbmFnZXJDbGFzcygpIHNoYXJlZE1hbmFnZXJd
OworICAgICAgICBpZiAoW2FjdGlvbnNNYW5hZ2VyIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IocmVxdWVzdEJ1YmJsZUNsb3N1cmVVbmFuY2hvck9uRmFpbHVyZTopXSkKKyAgICAgICAgICAg
IFthY3Rpb25zTWFuYWdlciByZXF1ZXN0QnViYmxlQ2xvc3VyZVVuYW5jaG9yT25GYWlsdXJlOllF
U107CisjZW5kaWYKKyAgICB9CisKKyAgICBjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9u
KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQp
OworCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICBb
bV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdp
bmRvd3NdOworI2VuZGlmCisgICAgCisgICAgbV9wYWdlQ2xpZW50LmRpc21pc3NDb3JyZWN0aW9u
UGFuZWwoV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9yZWQp
OworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpxdWlja0xvb2tXaXRoRXZlbnQoTlNFdmVudCAqZXZl
bnQpCit7CisgICAgaWYgKGlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQorICAgICAgICByZXR1cm47
CisKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAorICAgIGlm
IChtX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyKSB7CisgICAgICAgIFttX3ZpZXcg
X3N1cGVyUXVpY2tMb29rV2l0aEV2ZW50OmV2ZW50XTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyNlbmRpZgorCisgICAgTlNQb2ludCBsb2NhdGlvbkluVmlld0Nvb3JkaW5hdGVzID0gW21fdmll
dyBjb252ZXJ0UG9pbnQ6W2V2ZW50IGxvY2F0aW9uSW5XaW5kb3ddIGZyb21WaWV3Om5pbF07Cisg
ICAgbV9wYWdlLnBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwQXRMb2NhdGlvbihXZWJDb3JlOjpGbG9h
dFBvaW50KGxvY2F0aW9uSW5WaWV3Q29vcmRpbmF0ZXMpKTsKK30KKwordm9pZCBXZWJWaWV3SW1w
bDo6cHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXAoKQoreworICAgIGlmIChtX2RpZFJlZ2lzdGVy
Rm9yTG9va3VwUG9wb3ZlckNsb3NlTm90aWZpY2F0aW9ucykKKyAgICAgICAgcmV0dXJuOworCisg
ICAgbV9kaWRSZWdpc3RlckZvckxvb2t1cFBvcG92ZXJDbG9zZU5vdGlmaWNhdGlvbnMgPSB0cnVl
OworCisgICAgW21fd2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0YXJ0T2JzZXJ2aW5nTG9va3Vw
RGlzbWlzc2FsXTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0QWxsb3dzTGlua1ByZXZpZXco
Ym9vbCBhbGxvd3NMaW5rUHJldmlldykKK3sKKyAgICBpZiAobV9hbGxvd3NMaW5rUHJldmlldyA9
PSBhbGxvd3NMaW5rUHJldmlldykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9hbGxvd3NMaW5r
UHJldmlldyA9IGFsbG93c0xpbmtQcmV2aWV3OworCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICBpZiAoIWFsbG93c0xpbmtQcmV2aWV3KQorICAgICAg
ICBbbV92aWV3IHJlbW92ZUdlc3R1cmVSZWNvZ25pemVyOm1faW1tZWRpYXRlQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXIuZ2V0KCldOworICAgIGVsc2UgaWYgKE5TR2VzdHVyZVJlY29nbml6ZXIgKmlt
bWVkaWF0ZUFjdGlvblJlY29nbml6ZXIgPSBtX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25p
emVyLmdldCgpKQorICAgICAgICBbbV92aWV3IGFkZEdlc3R1cmVSZWNvZ25pemVyOmltbWVkaWF0
ZUFjdGlvblJlY29nbml6ZXJdOworI2VuZGlmCit9CisKK3ZvaWQqIFdlYlZpZXdJbXBsOjppbW1l
ZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdChXS0hpdFRlc3RS
ZXN1bHRSZWYgaGl0VGVzdFJlc3VsdCwgdWludDMyX3QgdHlwZSwgV0tUeXBlUmVmIHVzZXJEYXRh
KQoreworICAgIHJldHVybiBbbV92aWV3IF9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9s
bGVyRm9ySGl0VGVzdFJlc3VsdDpoaXRUZXN0UmVzdWx0IHdpdGhUeXBlOnR5cGUgdXNlckRhdGE6
dXNlckRhdGFdOworfQorCit2b2lkKiBXZWJWaWV3SW1wbDo6aW1tZWRpYXRlQWN0aW9uQW5pbWF0
aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHRGcm9tVmlld09ubHkoV0tIaXRUZXN0UmVzdWx0
UmVmIGhpdFRlc3RSZXN1bHQsIHVpbnQzMl90IHR5cGUsIFdLVHlwZVJlZiB1c2VyRGF0YSkKK3sK
KyAgICByZXR1cm4gbmlsOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpkaWRQZXJmb3JtSW1tZWRp
YXRlQWN0aW9uSGl0VGVzdChjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYgcmVzdWx0LCBib29s
IGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkKK3sKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAorICAgIFttX2ltbWVkaWF0
ZUFjdGlvbkNvbnRyb2xsZXIgZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3Q6cmVzdWx0
IGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQ6Y29udGVudFByZXZlbnRzRGVmYXVsdCB1c2VyRGF0YTp1
c2VyRGF0YV07CisjZW5kaWYKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6cHJlcGFyZUZvckltbWVk
aWF0ZUFjdGlvbkFuaW1hdGlvbigpCit7CisgICAgW21fdmlldyBfcHJlcGFyZUZvckltbWVkaWF0
ZUFjdGlvbkFuaW1hdGlvbl07Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmNhbmNlbEltbWVkaWF0
ZUFjdGlvbkFuaW1hdGlvbigpCit7CisgICAgW21fdmlldyBfY2FuY2VsSW1tZWRpYXRlQWN0aW9u
QW5pbWF0aW9uXTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6Y29tcGxldGVJbW1lZGlhdGVBY3Rp
b25BbmltYXRpb24oKQoreworICAgIFttX3ZpZXcgX2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5p
bWF0aW9uXTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0SWdub3Jlc05vbldoZWVsRXZlbnRz
KGJvb2wgaWdub3Jlc05vbldoZWVsRXZlbnRzKQoreworICAgIGlmIChtX2lnbm9yZXNOb25XaGVl
bEV2ZW50cyA9PSBpZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAgICAgIHJldHVybjsKKworICAg
IG1faWdub3Jlc05vbldoZWVsRXZlbnRzID0gaWdub3Jlc05vbldoZWVsRXZlbnRzOworICAgIG1f
cGFnZS5zZXRTaG91bGREaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudHMoIWlnbm9yZXNOb25XaGVl
bEV2ZW50cyk7CisKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAw
MAorICAgIGlmIChpZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAgICAgIFttX3ZpZXcgcmVtb3Zl
R2VzdHVyZVJlY29nbml6ZXI6bV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQo
KV07CisgICAgZWxzZSBpZiAoTlNHZXN0dXJlUmVjb2duaXplciAqaW1tZWRpYXRlQWN0aW9uUmVj
b2duaXplciA9IG1faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCkpIHsKKyAg
ICAgICAgaWYgKG1fYWxsb3dzTGlua1ByZXZpZXcpCisgICAgICAgICAgICBbbV92aWV3IGFkZEdl
c3R1cmVSZWNvZ25pemVyOmltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJdOworICAgIH0KKyNlbmRp
ZgorfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRJZ25vcmVzQWxsRXZlbnRzKGJvb2wgaWdub3Jl
c0FsbEV2ZW50cykKK3sKKyAgICBtX2lnbm9yZXNBbGxFdmVudHMgPSBpZ25vcmVzQWxsRXZlbnRz
OworICAgIHNldElnbm9yZXNOb25XaGVlbEV2ZW50cyhpZ25vcmVzQWxsRXZlbnRzKTsKK30KKwor
dm9pZCBXZWJWaWV3SW1wbDo6YWNjZXNzaWJpbGl0eVJlZ2lzdGVyVUlQcm9jZXNzVG9rZW5zKCkK
K3sKKyAgICAvLyBJbml0aWFsaXplIHJlbW90ZSBhY2Nlc3NpYmlsaXR5IHdoZW4gdGhlIHdpbmRv
dyBjb25uZWN0aW9uIGhhcyBiZWVuIGVzdGFibGlzaGVkLgorICAgIE5TRGF0YSAqcmVtb3RlRWxl
bWVudFRva2VuID0gV0tBWFJlbW90ZVRva2VuRm9yRWxlbWVudChtX3ZpZXcpOworICAgIE5TRGF0
YSAqcmVtb3RlV2luZG93VG9rZW4gPSBXS0FYUmVtb3RlVG9rZW5Gb3JFbGVtZW50KG1fdmlldy53
aW5kb3cpOworICAgIElQQzo6RGF0YVJlZmVyZW5jZSBlbGVtZW50VG9rZW4gPSBJUEM6OkRhdGFS
ZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oW3JlbW90ZUVsZW1lbnRU
b2tlbiBieXRlc10pLCBbcmVtb3RlRWxlbWVudFRva2VuIGxlbmd0aF0pOworICAgIElQQzo6RGF0
YVJlZmVyZW5jZSB3aW5kb3dUb2tlbiA9IElQQzo6RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9j
YXN0PGNvbnN0IHVpbnQ4X3QqPihbcmVtb3RlV2luZG93VG9rZW4gYnl0ZXNdKSwgW3JlbW90ZVdp
bmRvd1Rva2VuIGxlbmd0aF0pOworICAgIG1fcGFnZS5yZWdpc3RlclVJUHJvY2Vzc0FjY2Vzc2li
aWxpdHlUb2tlbnMoZWxlbWVudFRva2VuLCB3aW5kb3dUb2tlbik7Cit9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYktpdAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJ
bXBsLmgKaW5kZXggNDZhYTUyMGVjMzExNGQ0MjNiNzhhZjcxOGI1N2RiNDJlYjNkYjU2Yy4uYzI0
NjJjMTM1MDhjODQ2YmJmZTEwNzA5ZjZkZGUwZjNmMjhhOGEyYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaApAQCAtMjIwLDcgKzIyMCw2IEBAIHBy
aXZhdGU6CiAgICAgV0tWaWV3ICptX3drVmlldzsKICAgICBXS1dlYlZpZXcgKm1fd2ViVmlldzsK
ICAgICBXZWJWaWV3SW1wbCogbV9pbXBsIHsgbnVsbHB0ciB9OwotICAgIFJldGFpblB0cjxXS0Vk
aXRvclVuZG9UYXJnZXRPYmpDPiBtX3VuZG9UYXJnZXQ7CiAjaWYgVVNFKEFVVE9DT1JSRUNUSU9O
X1BBTkVMKQogICAgIENvcnJlY3Rpb25QYW5lbCBtX2NvcnJlY3Rpb25QYW5lbDsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5t
bSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXgg
NGMzZDYwNmZlODJmNjAxMjk1OTg4YTRkZWRlNDllY2E1NzllNDZlYS4uYzJmN2U3ZDYzZDAyNTQ3
NTNiOTJkNWVhODJlMGNlZGZkOGNjYmQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCkBAIC05MCw2MCArOTAsMTEgQEAKIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAotQGludGVyZmFjZSBXS0Vk
aXRDb21tYW5kT2JqQyA6IE5TT2JqZWN0Ci17Ci0gICAgUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJv
eHk+IG1fY29tbWFuZDsKLX0KLS0gKGlkKWluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTooUGFz
c1JlZlB0cjxXZWJFZGl0Q29tbWFuZFByb3h5Piljb21tYW5kOwotLSAoV2ViRWRpdENvbW1hbmRQ
cm94eSopY29tbWFuZDsKLUBlbmQKLQotQGludGVyZmFjZSBXS0VkaXRvclVuZG9UYXJnZXRPYmpD
IDogTlNPYmplY3QKLS0gKHZvaWQpdW5kb0VkaXRpbmc6KGlkKXNlbmRlcjsKLS0gKHZvaWQpcmVk
b0VkaXRpbmc6KGlkKXNlbmRlcjsKLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIFdLRWRpdENvbW1h
bmRPYmpDCi0KLS0gKGlkKWluaXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTooUGFzc1JlZlB0cjxX
ZWJFZGl0Q29tbWFuZFByb3h5Piljb21tYW5kCi17Ci0gICAgc2VsZiA9IFtzdXBlciBpbml0XTsK
LSAgICBpZiAoIXNlbGYpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICBtX2NvbW1hbmQgPSBj
b21tYW5kOwotICAgIHJldHVybiBzZWxmOwotfQotCi0tIChXZWJFZGl0Q29tbWFuZFByb3h5Kilj
b21tYW5kCi17Ci0gICAgcmV0dXJuIG1fY29tbWFuZC5nZXQoKTsKLX0KLQotQGVuZAotCi1AaW1w
bGVtZW50YXRpb24gV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQwotCi0tICh2b2lkKXVuZG9FZGl0aW5n
OihpZClzZW5kZXIKLXsKLSAgICBBU1NFUlQoW3NlbmRlciBpc0tpbmRPZkNsYXNzOltXS0VkaXRD
b21tYW5kT2JqQyBjbGFzc11dKTsKLSAgICBbc2VuZGVyIGNvbW1hbmRdLT51bmFwcGx5KCk7Ci19
Ci0KLS0gKHZvaWQpcmVkb0VkaXRpbmc6KGlkKXNlbmRlcgotewotICAgIEFTU0VSVChbc2VuZGVy
IGlzS2luZE9mQ2xhc3M6W1dLRWRpdENvbW1hbmRPYmpDIGNsYXNzXV0pOwotICAgIFtzZW5kZXIg
Y29tbWFuZF0tPnJlYXBwbHkoKTsKLX0KLQotQGVuZAotCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAog
UGFnZUNsaWVudEltcGw6OlBhZ2VDbGllbnRJbXBsKFdLVmlldyogd2tWaWV3LCBXS1dlYlZpZXcg
KndlYlZpZXcpCiAgICAgOiBtX3drVmlldyh3a1ZpZXcpCiAgICAgLCBtX3dlYlZpZXcod2ViVmll
dykKLSAgICAsIG1fdW5kb1RhcmdldChhZG9wdE5TKFtbV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQyBh
bGxvY10gaW5pdF0pKQogI2lmIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKQogICAgICwgbV9h
bHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxBbHRlcm5hdGl2ZVRl
eHRVSUNvbnRyb2xsZXI+KCkpCiAjZW5kaWYKQEAgLTIwNyw4ICsxNTgsOCBAQCBOU1dpbmRvdyAq
UGFnZUNsaWVudEltcGw6OmFjdGl2ZVdpbmRvdygpIGNvbnN0CiAgICAgaWYgKG1fd2tWaWV3Ll90
aHVtYm5haWxWaWV3KQogICAgICAgICByZXR1cm4gbV93a1ZpZXcuX3RodW1ibmFpbFZpZXcud2lu
ZG93OwogI2VuZGlmCi0gICAgaWYgKG1fd2tWaWV3Ll90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFy
YXRpb24pCi0gICAgICAgIHJldHVybiBtX3drVmlldy5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBh
cmF0aW9uOworICAgIGlmIChtX2ltcGwgJiYgbV9pbXBsLT50YXJnZXRXaW5kb3dGb3JNb3ZlUHJl
cGFyYXRpb24oKSkKKyAgICAgICAgcmV0dXJuIG1faW1wbC0+dGFyZ2V0V2luZG93Rm9yTW92ZVBy
ZXBhcmF0aW9uKCk7CiAgICAgcmV0dXJuIG1fd2tWaWV3LndpbmRvdzsKIH0KIApAQCAtMzA3LDcg
KzI1OCw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFJlbGF1bmNoUHJvY2VzcygpCiAKIHZv
aWQgUGFnZUNsaWVudEltcGw6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkKIHsKLSAgICBbbV93a1Zp
ZXcgX3ByZWZlcmVuY2VzRGlkQ2hhbmdlXTsKKyAgICBtX2ltcGwtPnByZWZlcmVuY2VzRGlkQ2hh
bmdlKCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnRvb2xUaXBDaGFuZ2VkKGNvbnN0IFN0
cmluZyYgb2xkVG9vbFRpcCwgY29uc3QgU3RyaW5nJiBuZXdUb29sVGlwKQpAQCAtMzczLDE1ICsz
MjQsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMo
Y29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dAogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpy
ZWdpc3RlckVkaXRDb21tYW5kKFBhc3NSZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4gcHJwQ29t
bWFuZCwgV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvIHVuZG9PclJlZG8pCiB7Ci0gICAgUmVmUHRy
PFdlYkVkaXRDb21tYW5kUHJveHk+IGNvbW1hbmQgPSBwcnBDb21tYW5kOwotCi0gICAgUmV0YWlu
UHRyPFdLRWRpdENvbW1hbmRPYmpDPiBjb21tYW5kT2JqQyA9IGFkb3B0TlMoW1tXS0VkaXRDb21t
YW5kT2JqQyBhbGxvY10gaW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5OmNvbW1hbmRdKTsKLSAg
ICBTdHJpbmcgYWN0aW9uTmFtZSA9IFdlYkVkaXRDb21tYW5kUHJveHk6Om5hbWVGb3JFZGl0QWN0
aW9uKGNvbW1hbmQtPmVkaXRBY3Rpb24oKSk7Ci0KLSAgICBOU1VuZG9NYW5hZ2VyICp1bmRvTWFu
YWdlciA9IFttX3drVmlldyB1bmRvTWFuYWdlcl07Ci0gICAgW3VuZG9NYW5hZ2VyIHJlZ2lzdGVy
VW5kb1dpdGhUYXJnZXQ6bV91bmRvVGFyZ2V0LmdldCgpIHNlbGVjdG9yOigodW5kb09yUmVkbyA9
PSBXZWJQYWdlUHJveHk6OlVuZG8pID8gQHNlbGVjdG9yKHVuZG9FZGl0aW5nOikgOiBAc2VsZWN0
b3IocmVkb0VkaXRpbmc6KSkgb2JqZWN0OmNvbW1hbmRPYmpDLmdldCgpXTsKLSAgICBpZiAoIWFj
dGlvbk5hbWUuaXNFbXB0eSgpKQotICAgICAgICBbdW5kb01hbmFnZXIgc2V0QWN0aW9uTmFtZToo
TlNTdHJpbmcgKilhY3Rpb25OYW1lXTsKKyAgICBtX2ltcGwtPnJlZ2lzdGVyRWRpdENvbW1hbmQo
cHJwQ29tbWFuZCwgdW5kb09yUmVkbyk7CiB9CiAKICNpZiBVU0UoSU5TRVJUSU9OX1VORE9fR1JP
VVBJTkcpCkBAIC0zOTMsNyArMzM2LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVnaXN0ZXJJ
bnNlcnRpb25VbmRvR3JvdXBpbmcoKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpjbGVhckFsbEVk
aXRDb21tYW5kcygpCiB7Ci0gICAgW1ttX3drVmlldyB1bmRvTWFuYWdlcl0gcmVtb3ZlQWxsQWN0
aW9uc1dpdGhUYXJnZXQ6bV91bmRvVGFyZ2V0LmdldCgpXTsKKyAgICBtX2ltcGwtPmNsZWFyQWxs
RWRpdENvbW1hbmRzKCk7CiB9CiAKIGJvb2wgUGFnZUNsaWVudEltcGw6OmNhblVuZG9SZWRvKFdl
YlBhZ2VQcm94eTo6VW5kb09yUmVkbyB1bmRvT3JSZWRvKQpAQCAtNTE1LDE3ICs0NTgsMTcgQEAg
UmVmUHRyPFdlYkNvbG9yUGlja2VyPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29sb3JQaWNrZXIo
V2ViUGFnZVByb3h5KiBwYWdlLCBjb24KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dElu
ZGljYXRvcihSZWY8VGV4dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dElu
ZGljYXRvcldpbmRvd0xpZmV0aW1lIGxpZmV0aW1lKQogewotICAgIFttX3drVmlldyBfc2V0VGV4
dEluZGljYXRvcjp0ZXh0SW5kaWNhdG9yLmdldCgpIHdpdGhMaWZldGltZTpsaWZldGltZV07Cisg
ICAgbV9pbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IuZ2V0KCksIGxpZmV0aW1l
KTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24gZGlzbWlzc2FsQW5pbWF0aW9u
KQogewotICAgIFttX3drVmlldyBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpkaXNt
aXNzYWxBbmltYXRpb25dOworICAgIG1faW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1h
dGlvbihkaXNtaXNzYWxBbmltYXRpb24pOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRU
ZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQgcHJvZ3Jlc3MpCiB7Ci0gICAgW21f
d2tWaWV3IF9zZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3M6cHJvZ3Jlc3NdOworICAg
IG1faW1wbC0+c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKHByb2dyZXNzKTsKIH0K
IAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6YWNjZXNzaWJpbGl0eVdlYlByb2Nlc3NUb2tlblJlY2Vp
dmVkKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKQEAgLTU3Niw3ICs1MTksNyBAQCBQ
YXNzUmVmUHRyPFZpZXdTbmFwc2hvdD4gUGFnZUNsaWVudEltcGw6OnRha2VWaWV3U25hcHNob3Qo
KQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZWxlY3Rpb25EaWRDaGFuZ2UoKQogewotICAgIFtt
X3drVmlldyBfc2VsZWN0aW9uQ2hhbmdlZF07CisgICAgbV9pbXBsLT5zZWxlY3Rpb25EaWRDaGFu
Z2UoKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6d2hlZWxFdmVudFdhc05vdEhhbmRsZWRC
eVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYgZXZlbnQpCkBAIC02MDMsMTAgKzU0
NiwxMCBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3Rh
dGUodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbgogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpk
aWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0
aW9uYXJ5UG9wdXBJbmZvKQogewotICAgIFttX3drVmlldyBfcHJlcGFyZUZvckRpY3Rpb25hcnlM
b29rdXBdOworICAgIG1faW1wbC0+cHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXAoKTsKIAogICAg
IERpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChkaWN0aW9uYXJ5UG9wdXBJbmZvLCBtX3drVmll
dywgW3RoaXNdKFRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0b3IpIHsKLSAgICAgICAgW21fd2tW
aWV3IF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Igd2l0aExpZmV0aW1lOlRleHRJbmRp
Y2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50XTsKKyAgICAgICAgbV9pbXBsLT5zZXRUZXh0
SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVy
bWFuZW50KTsKICAgICB9KTsKIH0KIApAQCAtNjYxLDEwICs2MDQsMTQgQEAgdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6cmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShTY3JvbGxiYXJTdHls
ZSBuZXdTdHlsZSkKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6aW50cmluc2ljQ29udGVudFNpemVE
aWRDaGFuZ2UoY29uc3QgSW50U2l6ZSYgaW50cmluc2ljQ29udGVudFNpemUpCiB7Ci0gICAgaWYg
KG1fd2ViVmlldykKKyNpZiBXS19BUElfRU5BQkxFRAorICAgIGlmIChtX3dlYlZpZXcpIHsKICAg
ICAgICAgW21fd2ViVmlldyBfc2V0SW50cmluc2ljQ29udGVudFNpemU6aW50cmluc2ljQ29udGVu
dFNpemVdOwotICAgIGVsc2UKLSAgICAgICAgW21fd2tWaWV3IF9zZXRJbnRyaW5zaWNDb250ZW50
U2l6ZTppbnRyaW5zaWNDb250ZW50U2l6ZV07CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5k
aWYKKworICAgIG1faW1wbC0+c2V0SW50cmluc2ljQ29udGVudFNpemUoaW50cmluc2ljQ29udGVu
dFNpemUpOwogfQogCiBib29sIFBhZ2VDbGllbnRJbXBsOjpleGVjdXRlU2F2ZWRDb21tYW5kQnlT
ZWxlY3Rvcihjb25zdCBTdHJpbmcmIHNlbGVjdG9yU3RyaW5nKQpAQCAtODM5LDcgKzc4Niw3IEBA
IENHUmVjdCBQYWdlQ2xpZW50SW1wbDo6Ym91bmRzT2ZMYXllckluTGF5ZXJCYWNrZWRXaW5kb3dD
b29yZGluYXRlcyhDQUxheWVyICpsYXllCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3Jt
SW1tZWRpYXRlQWN0aW9uSGl0VGVzdChjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYgcmVzdWx0
LCBib29sIGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkKIHsK
ICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAotICAgIFttX3dr
VmlldyBfZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3Q6cmVzdWx0IGNvbnRlbnRQcmV2
ZW50c0RlZmF1bHQ6Y29udGVudFByZXZlbnRzRGVmYXVsdCB1c2VyRGF0YTp1c2VyRGF0YV07Cisg
ICAgbV9pbXBsLT5kaWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9uSGl0VGVzdChyZXN1bHQsIGNvbnRl
bnRQcmV2ZW50c0RlZmF1bHQsIHVzZXJEYXRhKTsKICNlbmRpZgogfQogCkBAIC04NDksNyArNzk2
LDcgQEAgdm9pZCogUGFnZUNsaWVudEltcGw6OmltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRy
b2xsZXJGb3JIaXRUZXN0UmVzdWx0KFJlZlB0cjwKICAgICBpZiAobV93ZWJWaWV3KQogICAgICAg
ICByZXR1cm4gW21fd2ViVmlldyBfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZv
ckhpdFRlc3RSZXN1bHQ6d3JhcHBlcigqaGl0VGVzdFJlc3VsdCkgd2l0aFR5cGU6KF9XS0ltbWVk
aWF0ZUFjdGlvblR5cGUpdHlwZSB1c2VyRGF0YTooaWQpKHVzZXJEYXRhLmdldCgpKV07CiAjZW5k
aWYKLSAgICByZXR1cm4gW21fd2tWaWV3IF9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9s
bGVyRm9ySGl0VGVzdFJlc3VsdDp0b0FQSShoaXRUZXN0UmVzdWx0LmdldCgpKSB3aXRoVHlwZTp0
eXBlIHVzZXJEYXRhOnRvQVBJKHVzZXJEYXRhLmdldCgpKV07CisgICAgcmV0dXJuIG1faW1wbC0+
aW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQodG9BUEko
aGl0VGVzdFJlc3VsdC5nZXQoKSksIHR5cGUsIHRvQVBJKHVzZXJEYXRhLmdldCgpKSk7CiB9CiAK
IHZvaWQgUGFnZUNsaWVudEltcGw6OnNob3dQbGF0Zm9ybUNvbnRleHRNZW51KE5TTWVudSAqbWVu
dSwgSW50UG9pbnQgbG9jYXRpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaAppbmRleCBlMTg0ZWE3MDE0
YjRlMzk5ZGUxZTBkYWY3Yjg2ZjFkNTk3MmQwMWZjLi4zZjZhOTg1YzVmYTZhNmE5ZmZhYWM1OGFh
ZWQ2MDllYWFjMWNiMTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmgKQEAgLTM1LDYgKzM1LDcgQEAK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJQYWdlUHJveHk7CitjbGFzcyBXZWJWaWV3
SW1wbDsKIAogZW51bSBjbGFzcyBJbW1lZGlhdGVBY3Rpb25TdGF0ZSB7CiAgICAgTm9uZSA9IDAs
CkBAIC00NiwxMiArNDcsMTIgQEAgZW51bSBjbGFzcyBJbW1lZGlhdGVBY3Rpb25TdGF0ZSB7CiAK
IEBjbGFzcyBEREFjdGlvbkNvbnRleHQ7CiBAY2xhc3MgUUxQcmV2aWV3TWVudUl0ZW07Ci1AY2xh
c3MgV0tWaWV3OwogCiBAaW50ZXJmYWNlIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciA6IE5T
T2JqZWN0IDxOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyRGVsZWdhdGU+IHsKIEBw
cml2YXRlCi0gICAgV2ViS2l0OjpXZWJQYWdlUHJveHkgKl9wYWdlOwotICAgIFdLVmlldyAqX3dr
VmlldzsKKyAgICBXZWJLaXQ6OldlYlBhZ2VQcm94eSogX3BhZ2U7CisgICAgTlNWaWV3ICpfdmll
dzsKKyAgICBXZWJLaXQ6OldlYlZpZXdJbXBsKiBfdmlld0ltcGw7CiAKICAgICBXZWJLaXQ6Oklt
bWVkaWF0ZUFjdGlvblN0YXRlIF9zdGF0ZTsKICAgICBXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHRE
YXRhIF9oaXRUZXN0UmVzdWx0RGF0YTsKQEAgLTY3LDggKzY4LDggQEAgZW51bSBjbGFzcyBJbW1l
ZGlhdGVBY3Rpb25TdGF0ZSB7CiAgICAgQk9PTCBfaGFzQWN0aXZlSW1tZWRpYXRlQWN0aW9uOwog
fQogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJLaXQ6OldlYlBhZ2VQcm94eSYp
cGFnZSB2aWV3OihXS1ZpZXcgKil3a1ZpZXcgcmVjb2duaXplcjooTlNJbW1lZGlhdGVBY3Rpb25H
ZXN0dXJlUmVjb2duaXplciAqKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXI7Ci0tICh2b2lkKXdp
bGxEZXN0cm95VmlldzooV0tWaWV3ICopdmlldzsKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBh
Z2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KE5TVmlldyAqKXZpZXcgdmlld0lt
cGw6KFdlYktpdDo6V2ViVmlld0ltcGwmKXZpZXdJbXBsIHJlY29nbml6ZXI6KE5TSW1tZWRpYXRl
QWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyOworLSAo
dm9pZCl3aWxsRGVzdHJveVZpZXc6KE5TVmlldyAqKXZpZXc7CiAtICh2b2lkKWRpZFBlcmZvcm1J
bW1lZGlhdGVBY3Rpb25IaXRUZXN0Oihjb25zdCBXZWJLaXQ6OldlYkhpdFRlc3RSZXN1bHREYXRh
JiloaXRUZXN0UmVzdWx0IGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQ6KEJPT0wpY29udGVudFByZXZl
bnRzRGVmYXVsdCB1c2VyRGF0YTooQVBJOjpPYmplY3QqKXVzZXJEYXRhOwogLSAodm9pZClkaXNt
aXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzOwogLSAoQk9PTCloYXNBY3RpdmVJbW1lZGlh
dGVBY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dLSW1t
ZWRpYXRlQWN0aW9uQ29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
V0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCmluZGV4IDBlOGQ4ZjRlZDEzY2FlMzcxZTI2
YjVhMGM3YmY3Yjc3Y2I1MWJiNzUuLjQ3YjQxZDYxYWZjZWRmNjVmNTQ3OGQ4N2EzYzdiMmQ0YjUx
NTc1ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
V0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLm1tCkBAIC0zMCwxMSArMzAsMTEgQEAKIAogI2lt
cG9ydCAiQVBJSGl0VGVzdFJlc3VsdC5oIgogI2ltcG9ydCAiV0tOU1VSTEV4dHJhcy5oIgotI2lt
cG9ydCAiV0tWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYlBhZ2VNZXNzYWdlcy5oIgogI2lt
cG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgog
I2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW1wb3J0ICJXZWJWaWV3SW1wbC5oIgogI2lt
cG9ydCA8V2ViQ29yZS9EYXRhRGV0ZWN0b3JzU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RpY3Rp
b25hcnlMb29rdXAuaD4KICNpbXBvcnQgPFdlYkNvcmUvR2VvbWV0cnlVdGlsaXRpZXMuaD4KQEAg
LTY0LDcgKzY0LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogQGltcGxlbWVudGF0aW9u
IFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlcgogCi0tIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQ
YWdlOihXZWJQYWdlUHJveHkmKXBhZ2UgdmlldzooV0tWaWV3ICopd2tWaWV3IHJlY29nbml6ZXI6
KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilpbW1lZGlhdGVBY3Rpb25SZWNv
Z25pemVyCistIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhQYWdlOihXZWJQYWdlUHJveHkmKXBhZ2Ug
dmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDooV2ViVmlld0ltcGwmKXZpZXdJbXBsIHJlY29n
bml6ZXI6KE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgKilpbW1lZGlhdGVBY3Rp
b25SZWNvZ25pemVyCiB7CiAgICAgc2VsZiA9IFtzdXBlciBpbml0XTsKIApAQCAtNzIsNyArNzIs
OCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgICAgICByZXR1cm4gbmlsOwogCiAgICAg
X3BhZ2UgPSAmcGFnZTsKLSAgICBfd2tWaWV3ID0gd2tWaWV3OworICAgIF92aWV3ID0gdmlldzsK
KyAgICBfdmlld0ltcGwgPSAmdmlld0ltcGw7CiAgICAgX3R5cGUgPSBrV0tJbW1lZGlhdGVBY3Rp
b25Ob25lOwogICAgIF9pbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyID0gaW1tZWRpYXRlQWN0aW9u
UmVjb2duaXplcjsKICAgICBfaGFzQWN0aXZlSW1tZWRpYXRlQWN0aW9uID0gTk87CkBAIC04MCwx
MCArODEsMTEgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICByZXR1cm4gc2VsZjsKIH0K
IAotLSAodm9pZCl3aWxsRGVzdHJveVZpZXc6KFdLVmlldyAqKXZpZXcKKy0gKHZvaWQpd2lsbERl
c3Ryb3lWaWV3OihOU1ZpZXcgKil2aWV3CiB7CiAgICAgX3BhZ2UgPSBudWxscHRyOwotICAgIF93
a1ZpZXcgPSBuaWw7CisgICAgX3ZpZXcgPSBuaWw7CisgICAgX3ZpZXdJbXBsID0gbnVsbHB0cjsK
ICAgICBfaGl0VGVzdFJlc3VsdERhdGEgPSBXZWJIaXRUZXN0UmVzdWx0RGF0YSgpOwogICAgIF9j
b250ZW50UHJldmVudHNEZWZhdWx0ID0gTk87CiAgICAgCkBAIC0xNjgsOSArMTcwLDkgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKICAgICBpZiAoaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplciAh
PSBfaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcikKICAgICAgICAgcmV0dXJuOwogCi0gICAgW193
a1ZpZXcgX3ByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25dOworICAgIF92aWV3SW1w
bC0+cHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbigpOwogCi0gICAgW193a1ZpZXcg
X2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdOworICAgIF92aWV3SW1wbC0+ZGlz
bWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb24odHJ1ZSk7CiAKICAg
ICBfcGFnZS0+c2V0TWFpbnRhaW5zSW5hY3RpdmVTZWxlY3Rpb24odHJ1ZSk7CiAKQEAgLTIzMSw3
ICsyMzMsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiAgICAgX3BhZ2UtPmltbWVkaWF0
ZUFjdGlvbkRpZENhbmNlbCgpOwogCi0gICAgW193a1ZpZXcgX2NhbmNlbEltbWVkaWF0ZUFjdGlv
bkFuaW1hdGlvbl07CisgICAgX3ZpZXdJbXBsLT5jYW5jZWxJbW1lZGlhdGVBY3Rpb25BbmltYXRp
b24oKTsKIAogICAgIF9wYWdlLT5zZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MoMCk7
CiAgICAgW3NlbGYgX2NsZWFySW1tZWRpYXRlQWN0aW9uU3RhdGVdOwpAQCAtMjQ1LDcgKzI0Nyw3
IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKICAgICBfcGFnZS0+aW1tZWRpYXRlQWN0aW9u
RGlkQ29tcGxldGUoKTsKIAotICAgIFtfd2tWaWV3IF9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFu
aW1hdGlvbl07CisgICAgX3ZpZXdJbXBsLT5jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlv
bigpOwogCiAgICAgX3BhZ2UtPnNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcygxKTsK
IH0KQEAgLTM0NSwxMiArMzQ3LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIC0gKE5T
VmlldyAqKW1lbnVJdGVtOihOU01lbnVJdGVtICopbWVudUl0ZW0gdmlld0F0U2NyZWVuUG9pbnQ6
KE5TUG9pbnQpc2NyZWVuUG9pbnQKIHsKLSAgICByZXR1cm4gX3drVmlldzsKKyAgICByZXR1cm4g
X3ZpZXc7CiB9CiAKIC0gKGlkPFFMUHJldmlld0l0ZW0+KW1lbnVJdGVtOihOU01lbnVJdGVtICop
bWVudUl0ZW0gcHJldmlld0l0ZW1BdFBvaW50OihOU1BvaW50KXBvaW50CiB7Ci0gICAgaWYgKCFf
d2tWaWV3KQorICAgIGlmICghX3ZpZXcpCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBSZWZQ
dHI8QVBJOjpIaXRUZXN0UmVzdWx0PiBoaXRUZXN0UmVzdWx0ID0gW3NlbGYgX3dlYkhpdFRlc3RS
ZXN1bHRdOwpAQCAtMzY5LDIwICszNzEsMjAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAog
LSAoTlNSZWN0KW1lbnVJdGVtOihOU01lbnVJdGVtICopbWVudUl0ZW0gaXRlbUZyYW1lRm9yUG9p
bnQ6KE5TUG9pbnQpcG9pbnQKIHsKLSAgICBpZiAoIV93a1ZpZXcpCisgICAgaWYgKCFfdmlldykK
ICAgICAgICAgcmV0dXJuIE5TWmVyb1JlY3Q7CiAKICAgICBSZWZQdHI8QVBJOjpIaXRUZXN0UmVz
dWx0PiBoaXRUZXN0UmVzdWx0ID0gW3NlbGYgX3dlYkhpdFRlc3RSZXN1bHRdOwotICAgIHJldHVy
biBbX3drVmlldyBjb252ZXJ0UmVjdDpoaXRUZXN0UmVzdWx0LT5lbGVtZW50Qm91bmRpbmdCb3go
KSB0b1ZpZXc6bmlsXTsKKyAgICByZXR1cm4gW192aWV3IGNvbnZlcnRSZWN0OmhpdFRlc3RSZXN1
bHQtPmVsZW1lbnRCb3VuZGluZ0JveCgpIHRvVmlldzpuaWxdOwogfQogCiAtIChOU1NpemUpbWVu
dUl0ZW06KE5TTWVudUl0ZW0gKiltZW51SXRlbSBtYXhTaXplRm9yUG9pbnQ6KE5TUG9pbnQpcG9p
bnQKIHsKLSAgICBpZiAoIV93a1ZpZXcpCisgICAgaWYgKCFfdmlldykKICAgICAgICAgcmV0dXJu
IE5TWmVyb1NpemU7CiAKLSAgICBOU1NpemUgc2NyZWVuU2l6ZSA9IF93a1ZpZXcud2luZG93LnNj
cmVlbi5mcmFtZS5zaXplOwotICAgIEZsb2F0UmVjdCBsYXJnZXN0UmVjdCA9IGxhcmdlc3RSZWN0
V2l0aEFzcGVjdFJhdGlvSW5zaWRlUmVjdChzY3JlZW5TaXplLndpZHRoIC8gc2NyZWVuU2l6ZS5o
ZWlnaHQsIF93a1ZpZXcuYm91bmRzKTsKKyAgICBOU1NpemUgc2NyZWVuU2l6ZSA9IF92aWV3Lndp
bmRvdy5zY3JlZW4uZnJhbWUuc2l6ZTsKKyAgICBGbG9hdFJlY3QgbGFyZ2VzdFJlY3QgPSBsYXJn
ZXN0UmVjdFdpdGhBc3BlY3RSYXRpb0luc2lkZVJlY3Qoc2NyZWVuU2l6ZS53aWR0aCAvIHNjcmVl
blNpemUuaGVpZ2h0LCBfdmlldy5ib3VuZHMpOwogICAgIHJldHVybiBOU01ha2VTaXplKGxhcmdl
c3RSZWN0LndpZHRoKCkgKiAwLjc1LCBsYXJnZXN0UmVjdC5oZWlnaHQoKSAqIDAuNzUpOwogfQog
CkBAIC00MDMsNyArNDA1LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogICAgIFJlZlB0
cjxXZWJQYWdlUHJveHk+IHBhZ2UgPSBfcGFnZTsKICAgICBQYWdlT3ZlcmxheTo6UGFnZU92ZXJs
YXlJRCBvdmVybGF5SUQgPSBfaGl0VGVzdFJlc3VsdERhdGEuZGV0ZWN0ZWREYXRhT3JpZ2luYXRp
bmdQYWdlT3ZlcmxheTsKLSAgICBfY3VycmVudEFjdGlvbkNvbnRleHQgPSBbYWN0aW9uQ29udGV4
dCBjb250ZXh0Rm9yVmlldzpfd2tWaWV3IGFsdE1vZGU6WUVTIGludGVyYWN0aW9uU3RhcnRlZEhh
bmRsZXI6XigpIHsKKyAgICBfY3VycmVudEFjdGlvbkNvbnRleHQgPSBbYWN0aW9uQ29udGV4dCBj
b250ZXh0Rm9yVmlldzpfdmlldyBhbHRNb2RlOllFUyBpbnRlcmFjdGlvblN0YXJ0ZWRIYW5kbGVy
Ol4oKSB7CiAgICAgICAgIHBhZ2UtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkRhdGFEZXRlY3Rv
cnNEaWRQcmVzZW50VUkob3ZlcmxheUlEKSk7CiAgICAgfSBpbnRlcmFjdGlvbkNoYW5nZWRIYW5k
bGVyOl4oKSB7CiAgICAgICAgIGlmIChfaGl0VGVzdFJlc3VsdERhdGEuZGV0ZWN0ZWREYXRhVGV4
dEluZGljYXRvcikKQEAgLTQxNCw3ICs0MTYsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0Owog
ICAgICAgICBbc2VsZiBfY2xlYXJJbW1lZGlhdGVBY3Rpb25TdGF0ZV07CiAgICAgfV07CiAKLSAg
ICBbX2N1cnJlbnRBY3Rpb25Db250ZXh0IHNldEhpZ2hsaWdodEZyYW1lOltfd2tWaWV3LndpbmRv
dyBjb252ZXJ0UmVjdFRvU2NyZWVuOltfd2tWaWV3IGNvbnZlcnRSZWN0Ol9oaXRUZXN0UmVzdWx0
RGF0YS5kZXRlY3RlZERhdGFCb3VuZGluZ0JveCB0b1ZpZXc6bmlsXV1dOworICAgIFtfY3VycmVu
dEFjdGlvbkNvbnRleHQgc2V0SGlnaGxpZ2h0RnJhbWU6W192aWV3LndpbmRvdyBjb252ZXJ0UmVj
dFRvU2NyZWVuOltfdmlldyBjb252ZXJ0UmVjdDpfaGl0VGVzdFJlc3VsdERhdGEuZGV0ZWN0ZWRE
YXRhQm91bmRpbmdCb3ggdG9WaWV3Om5pbF1dXTsKIAogICAgIE5TQXJyYXkgKm1lbnVJdGVtcyA9
IFtbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gbWVudUl0ZW1zRm9y
UmVzdWx0OltfY3VycmVudEFjdGlvbkNvbnRleHQgbWFpblJlc3VsdF0gYWN0aW9uQ29udGV4dDpf
Y3VycmVudEFjdGlvbkNvbnRleHQuZ2V0KCldOwogCkBAIC00MzUsNyArNDM3LDcgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKICAgICBbYWN0aW9uQ29udGV4dCBzZXRJbW1lZGlhdGU6WUVTXTsK
IAogICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IHBhZ2UgPSBfcGFnZTsKLSAgICBfY3VycmVudEFj
dGlvbkNvbnRleHQgPSBbYWN0aW9uQ29udGV4dCBjb250ZXh0Rm9yVmlldzpfd2tWaWV3IGFsdE1v
ZGU6WUVTIGludGVyYWN0aW9uU3RhcnRlZEhhbmRsZXI6XigpIHsKKyAgICBfY3VycmVudEFjdGlv
bkNvbnRleHQgPSBbYWN0aW9uQ29udGV4dCBjb250ZXh0Rm9yVmlldzpfdmlldyBhbHRNb2RlOllF
UyBpbnRlcmFjdGlvblN0YXJ0ZWRIYW5kbGVyOl4oKSB7CiAgICAgfSBpbnRlcmFjdGlvbkNoYW5n
ZWRIYW5kbGVyOl4oKSB7CiAgICAgICAgIGlmIChfaGl0VGVzdFJlc3VsdERhdGEubGlua1RleHRJ
bmRpY2F0b3IpCiAgICAgICAgICAgICBwYWdlLT5zZXRUZXh0SW5kaWNhdG9yKF9oaXRUZXN0UmVz
dWx0RGF0YS5saW5rVGV4dEluZGljYXRvci0+ZGF0YSgpKTsKQEAgLTQ0Myw3ICs0NDUsNyBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgICAgICBbc2VsZiBfY2xlYXJJbW1lZGlhdGVBY3Rp
b25TdGF0ZV07CiAgICAgfV07CiAKLSAgICBbX2N1cnJlbnRBY3Rpb25Db250ZXh0IHNldEhpZ2hs
aWdodEZyYW1lOltfd2tWaWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOltfd2tWaWV3IGNv
bnZlcnRSZWN0Ol9oaXRUZXN0UmVzdWx0RGF0YS5lbGVtZW50Qm91bmRpbmdCb3ggdG9WaWV3Om5p
bF1dXTsKKyAgICBbX2N1cnJlbnRBY3Rpb25Db250ZXh0IHNldEhpZ2hsaWdodEZyYW1lOltfdmll
dy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpbX3ZpZXcgY29udmVydFJlY3Q6X2hpdFRlc3RS
ZXN1bHREYXRhLmVsZW1lbnRCb3VuZGluZ0JveCB0b1ZpZXc6bmlsXV1dOwogCiAgICAgUmVmUHRy
PEFQSTo6SGl0VGVzdFJlc3VsdD4gaGl0VGVzdFJlc3VsdCA9IFtzZWxmIF93ZWJIaXRUZXN0UmVz
dWx0XTsKICAgICBOU0FycmF5ICptZW51SXRlbXMgPSBbW2dldEREQWN0aW9uc01hbmFnZXJDbGFz
cygpIHNoYXJlZE1hbmFnZXJdIG1lbnVJdGVtc0ZvclRhcmdldFVSTDpoaXRUZXN0UmVzdWx0LT5h
YnNvbHV0ZUxpbmtVUkwoKSBhY3Rpb25Db250ZXh0Ol9jdXJyZW50QWN0aW9uQ29udGV4dC5nZXQo
KV07CkBAIC00NjUsMTAgKzQ2NywxMCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIGlm
ICghZGljdGlvbmFyeVBvcHVwSW5mby5hdHRyaWJ1dGVkU3RyaW5nKQogICAgICAgICByZXR1cm4g
bmlsOwogCi0gICAgW193a1ZpZXcgX3ByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwXTsKKyAgICBf
dmlld0ltcGwtPnByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwKCk7CiAKLSAgICByZXR1cm4gRGlj
dGlvbmFyeUxvb2t1cDo6YW5pbWF0aW9uQ29udHJvbGxlckZvclBvcHVwKGRpY3Rpb25hcnlQb3B1
cEluZm8sIF93a1ZpZXcsIFtzZWxmXShUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7Ci0g
ICAgICAgIFtfd2tWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOnRleHRJbmRpY2F0b3Igd2l0aExpZmV0
aW1lOlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50XTsKKyAgICByZXR1cm4g
RGljdGlvbmFyeUxvb2t1cDo6YW5pbWF0aW9uQ29udHJvbGxlckZvclBvcHVwKGRpY3Rpb25hcnlQ
b3B1cEluZm8sIF92aWV3LCBbc2VsZl0oVGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgewor
ICAgICAgICBfdmlld0ltcGwtPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgVGV4dElu
ZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQpOwogICAgIH0pOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263875</attachid>
            <date>2015-10-22 16:09:51 -0700</date>
            <delta_ts>2015-10-23 11:01:01 -0700</delta_ts>
            <desc>Part 2</desc>
            <filename>0001-part-2.patch</filename>
            <type>text/plain</type>
            <size>133082</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">RnJvbSBhNWU4MWVhMzRiY2ZhMTQwZGU4NDc0MDdmMDQyZGFlZGMzZDI2ZjJlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaW0gSG9ydG9uIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CkRhdGU6IFRodSwgMjIgT2N0IDIwMTUgMTM6MzU6MTIgLTA3MDAKU3ViamVjdDogW1BBVENIIDEv
M10gcGFydCAyCgotLS0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHwgMjM0ICsrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tICAgICAgICAgfCA4MDMgKystLS0tLS0tLS0tLS0tLS0tCiBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oICB8ICAxOCAtCiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCAgICAgICB8IDE2MCArKystCiBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gICAgICB8IDkwNyArKysr
KysrKysrKysrKysrKysrKy0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGwuaCAgICAgIHwgICAxIC0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGwubW0gICAgIHwgIDkzICstLQogLi4uL1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVB
Y3Rpb25Db250cm9sbGVyLmggICAgfCAgMTEgKy0KIC4uLi9VSVByb2Nlc3MvbWFjL1dLSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlci5tbSAgIHwgIDQ4ICstCiA5IGZpbGVzIGNoYW5nZWQsIDE0MDgg
aW5zZXJ0aW9ucygrKSwgODY3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA5YzcwMTM4Li43
MmExZTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjM3IEBACisyMDE1LTEwLTIyICBUaW0gSG9y
dG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFdLVmlldyBiZWluZyBp
bnNpZGUgV0tXZWJWaWV3IGxlYWRzIHRvIHdlaXJkIEFQSSBpc3N1ZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE3NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgcmVuZXdHU3RhdGVdKToKKyAgICAgICAgKC1bV0tW
aWV3IHdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkOnR5cGVzOl0pOgorICAgICAgICAoLVtXS1Zp
ZXcgY2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYTpdKToKKyAgICAgICAgKC1bV0tWaWV3IHNj
cm9sbFdoZWVsOl0pOgorICAgICAgICAoLVtXS1ZpZXcgc3dpcGVXaXRoRXZlbnQ6XSk6CisgICAg
ICAgICgtW1dLVmlldyBtb3VzZU1vdmVkOl0pOgorICAgICAgICAoLVtXS1ZpZXcgbW91c2VEb3du
Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgbW91c2VVcDpdKToKKyAgICAgICAgKC1bV0tWaWV3IG1v
dXNlRHJhZ2dlZDpdKToKKyAgICAgICAgKC1bV0tWaWV3IHByZXNzdXJlQ2hhbmdlV2l0aEV2ZW50
Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgYWNjZXB0c0ZpcnN0TW91c2U6XSk6CisgICAgICAgICgt
W1dLVmlldyBzaG91bGREZWxheVdpbmRvd09yZGVyaW5nRm9yRXZlbnQ6XSk6CisgICAgICAgICgt
W1dLVmlldyBwZXJmb3JtS2V5RXF1aXZhbGVudDpdKToKKyAgICAgICAgKC1bV0tWaWV3IGtleVVw
Ol0pOgorICAgICAgICAoLVtXS1ZpZXcga2V5RG93bjpdKToKKyAgICAgICAgKC1bV0tWaWV3IGZs
YWdzQ2hhbmdlZDpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9zdXBlclF1aWNrTG9va1dpdGhFdmVu
dDpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9hZGRGb250UGFuZWxPYnNlcnZlcl0pOgorICAgICAg
ICAoLVtXS1ZpZXcgdmlld1dpbGxNb3ZlVG9XaW5kb3c6XSk6CisgICAgICAgICgtW1dLVmlldyB2
aWV3RGlkTW92ZVRvV2luZG93XSk6CisgICAgICAgICgtW1dLVmlldyB2aWV3RGlkQ2hhbmdlQmFj
a2luZ1Byb3BlcnRpZXNdKToKKyAgICAgICAgKC1bV0tWaWV3IGVuYWJsZUFjY2Vzc2liaWxpdHlJ
Zk5lY2Vzc2FyeV0pOgorICAgICAgICAoLVtXS1ZpZXcgcXVpY2tMb29rV2l0aEV2ZW50Ol0pOgor
ICAgICAgICAoLVtXS1ZpZXcgX2NvbG9yU3BhY2VdKToKKyAgICAgICAgKC1bV0tWaWV3IF9kaWRS
ZWxhdW5jaFByb2Nlc3NdKToKKyAgICAgICAgKC1bV0tWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOl0p
OgorICAgICAgICAoLVtXS1ZpZXcgX3NldFRleHRJbmRpY2F0b3I6d2l0aExpZmV0aW1lOl0pOgor
ICAgICAgICAoLVtXS1ZpZXcgX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246XSk6Cisg
ICAgICAgICgtW1dLVmlldyBfc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOl0pOgor
ICAgICAgICAoLVtXS1ZpZXcgaW5pdFdpdGhGcmFtZTpwcm9jZXNzUG9vbDpjb25maWd1cmF0aW9u
OndlYlZpZXc6XSk6CisgICAgICAgICgtW1dLVmlldyBfZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlv
bkhpdFRlc3Q6Y29udGVudFByZXZlbnRzRGVmYXVsdDp1c2VyRGF0YTpdKToKKyAgICAgICAgKC1b
V0tWaWV3IF9pbnRlcm5hbEltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRU
ZXN0UmVzdWx0OndpdGhUeXBlOnVzZXJEYXRhOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX2ludGVy
bmFsUHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl0pOgorICAgICAgICAoLVtXS1Zp
ZXcgX2ludGVybmFsQ2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uXSk6CisgICAgICAgICgt
W1dLVmlldyBfaW50ZXJuYWxDb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl0pOgorICAg
ICAgICAoLVtXS1ZpZXcgX2ludGVybmFsRGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93
c1dpdGhBbmltYXRpb246XSk6CisgICAgICAgICgtW1dLVmlldyBiZWdpbkRlZmVycmluZ1ZpZXdJ
bldpbmRvd0NoYW5nZXNdKToKKyAgICAgICAgKC1bV0tWaWV3IGVuZERlZmVycmluZ1ZpZXdJbldp
bmRvd0NoYW5nZXNdKToKKyAgICAgICAgKC1bV0tWaWV3IGVuZERlZmVycmluZ1ZpZXdJbldpbmRv
d0NoYW5nZXNTeW5jXSk6CisgICAgICAgICgtW1dLVmlldyBfcHJlcGFyZUZvck1vdmVUb1dpbmRv
dzp3aXRoQ29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLVmlldyBpc0RlZmVycmlu
Z1ZpZXdJbldpbmRvd0NoYW5nZXNdKToKKyAgICAgICAgKC1bV0tWaWV3IGFsbG93c0xpbmtQcmV2
aWV3XSk6CisgICAgICAgICgtW1dLVmlldyBzZXRBbGxvd3NMaW5rUHJldmlldzpdKToKKyAgICAg
ICAgKC1bV0tWaWV3IF9zZXRJZ25vcmVzQWxsRXZlbnRzOl0pOgorICAgICAgICAoLVtXS1ZpZXcg
X3NldElnbm9yZXNOb25XaGVlbE1vdXNlRXZlbnRzOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX3Nl
dElnbm9yZXNOb25XaGVlbEV2ZW50czpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9pZ25vcmVzTm9u
V2hlZWxFdmVudHNdKToKKyAgICAgICAgKC1bV0tWaWV3IF9pZ25vcmVzQWxsRXZlbnRzXSk6Cisg
ICAgICAgICgtW1dLVmlldyBfc2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjpdKToKKyAgICAg
ICAgKC1bV0tWaWV3IF9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yXSk6CisgICAgICAgICgtW1dL
VmlldyBfc2V0VG9wQ29udGVudEluc2V0Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgX3RvcENvbnRl
bnRJbnNldF0pOgorICAgICAgICAoLVtXS1ZpZXcgX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGls
ZFdpbmRvd3NdKToKKyAgICAgICAgKC1bV0tWaWV3IF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hp
bGRXaW5kb3dzV2l0aEFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9zZXRBdXRvbWF0
aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHM6XSk6CisgICAgICAgICgtW1dLVmlldyBfYXV0b21h
dGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzXSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJp
bGl0eU9ic2VydmVyIGluaXRXaXRoVmlldzpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tXaW5k
b3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3RhcnRPYnNlcnZpbmc6XSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIHN0b3BPYnNlcnZpbmc6XSk6IERlbGV0ZWQu
CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRPcmRlck9u
U2NyZWVuOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZl
ciBfd2luZG93RGlkT3JkZXJPZmZTY3JlZW46XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmll
dyBkZWFsbG9jXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfdXBkYXRlV2luZG93QW5k
Vmlld0ZyYW1lc10pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgdXBkYXRlRm9udFBhbmVs
SWZOZWVkZWRdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9zZWxlY3Rpb25DaGFuZ2Vk
XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBhZGRXaW5kb3dPYnNlcnZlcnNGb3JXaW5k
b3c6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyByZW1vdmVXaW5kb3dPYnNlcnZlcnNd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IGRvV2luZG93RGlkQ2hhbmdlU2NyZWVuXSk6
IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfd2luZG93RGlkQmVjb21lS2V5Ol0pOiBEZWxl
dGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZENoYW5nZVNjcmVlbjpdKTogRGVsZXRl
ZC4KKyAgICAgICAgKC1bV0tWaWV3IF93aW5kb3dEaWRDaGFuZ2VMYXllckhvc3Rpbmc6XSk6IERl
bGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfd2luZG93RGlkUmVzaWduS2V5Ol0pOiBEZWxldGVk
LgorICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZE1pbmlhdHVyaXplOl0pOiBEZWxldGVkLgor
ICAgICAgICAoLVtXS1ZpZXcgX3dpbmRvd0RpZERlbWluaWF0dXJpemU6XSk6IERlbGV0ZWQuCisg
ICAgICAgICgtW1dLVmlldyBfd2luZG93RGlkTW92ZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1b
V0tWaWV3IF93aW5kb3dEaWRSZXNpemU6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBf
d2luZG93RGlkT3JkZXJPZmZTY3JlZW46XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBf
d2luZG93RGlkT3JkZXJPblNjcmVlbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF93
aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllczpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1b
V0tWaWV3IF93aW5kb3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0ZTpdKTogRGVsZXRlZC4KKyAgICAg
ICAgKC1bV0tWaWV3IF9wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cF0pOiBEZWxldGVkLgorICAg
ICAgICAoLVtXS1ZpZXcgX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVyV2lsbENsb3NlOl0pOiBEZWxl
dGVkLgorICAgICAgICAoLVtXS1ZpZXcgX2FjY2Vzc2liaWxpdHlSZWdpc3RlclVJUHJvY2Vzc1Rv
a2Vuc10pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3Bvc3RGYWtlTW91c2VNb3ZlZEV2
ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQ6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBf
aW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3JdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3
IF9wcmVmZXJlbmNlc0RpZENoYW5nZV0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3Rh
cmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1Zp
ZXcgX3VwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9tYXRpY10pOiBEZWxldGVkLgorICAgICAgICAo
LVtXS1ZpZXcgb2JzZXJ2ZVZhbHVlRm9yS2V5UGF0aDpvZk9iamVjdDpjaGFuZ2U6Y29udGV4dDpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9kaXNwYXRjaFNldFRvcENvbnRlbnRJbnNl
dF0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFs
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjphdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHMpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dG9wQ29udGVudEluc2V0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6Om92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aXNEZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJh
dGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpsYXN0UHJlc3N1cmVFdmVudCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphbGxvd3NMaW5rUHJldmlldyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppZ25vcmVzTm9uV2hlZWxFdmVudHMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aWdub3Jlc0FsbEV2ZW50cyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpjcmVhdGVXZWFrUHRyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUwp
OgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBpbml0V2l0aFZpZXc6aW1w
bDpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgZGVhbGxvY10pOgor
ICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBzdGFydE9ic2VydmluZzpdKToK
KyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3RvcE9ic2VydmluZzpdKToK
KyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3RhcnRPYnNlcnZpbmdGb250
UGFuZWxdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3RhcnRPYnNl
cnZpbmdMb29rdXBEaXNtaXNzYWxdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2Jz
ZXJ2ZXIgX3dpbmRvd0RpZE9yZGVyT25TY3JlZW46XSk6CisgICAgICAgICgtW1dLV2luZG93Vmlz
aWJpbGl0eU9ic2VydmVyIF93aW5kb3dEaWRPcmRlck9mZlNjcmVlbjpdKToKKyAgICAgICAgKC1b
V0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgX3dpbmRvd0RpZEJlY29tZUtleTpdKToKKyAgICAg
ICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgX3dpbmRvd0RpZFJlc2lnbktleTpdKToK
KyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgX3dpbmRvd0RpZE1pbmlhdHVy
aXplOl0pOgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBfd2luZG93RGlk
RGVtaW5pYXR1cml6ZTpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIg
X3dpbmRvd0RpZE1vdmU6XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVy
IF93aW5kb3dEaWRSZXNpemU6XSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2Vy
dmVyIF93aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllczpdKToKKyAgICAgICAgKC1bV0tX
aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgX3dpbmRvd0RpZENoYW5nZVNjcmVlbjpdKToKKyAgICAg
ICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgX3dpbmRvd0RpZENoYW5nZUxheWVySG9z
dGluZzpdKToKKyAgICAgICAgKC1bV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgX3dpbmRvd0Rp
ZENoYW5nZU9jY2x1c2lvblN0YXRlOl0pOgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlP
YnNlcnZlciBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOm9mT2JqZWN0OmNoYW5nZTpjb250ZXh0Ol0p
OgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBfZGljdGlvbmFyeUxvb2t1
cFBvcG92ZXJXaWxsQ2xvc2U6XSk6CisgICAgICAgICgtW1dLRWRpdENvbW1hbmRPYmpDIGluaXRX
aXRoV2ViRWRpdENvbW1hbmRQcm94eTpdKToKKyAgICAgICAgKC1bV0tFZGl0Q29tbWFuZE9iakMg
Y29tbWFuZF0pOgorICAgICAgICAoLVtXS0VkaXRvclVuZG9UYXJnZXRPYmpDIHVuZG9FZGl0aW5n
Ol0pOgorICAgICAgICAoLVtXS0VkaXRvclVuZG9UYXJnZXRPYmpDIHJlZG9FZGl0aW5nOl0pOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6fldlYlZpZXdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnJlc2lnbkZpcnN0UmVzcG9uZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
OnJlbmV3R1N0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZVdpbmRv
d0FuZFZpZXdGcmFtZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0QXV0b21h
dGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OnVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9tYXRpYyk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpzZXRUb3BDb250ZW50SW5zZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6ZGlzcGF0Y2hTZXRUb3BDb250ZW50SW5zZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6c2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjppbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRPcmRlck9mZlNjcmVlbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRPcmRlck9uU2NyZWVuKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OndpbmRvd0RpZEJlY29tZUtleSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjp3aW5kb3dEaWRSZXNpZ25LZXkpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6d2luZG93RGlkTWluaWF0dXJpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6d2luZG93RGlkRGVtaW5pYXR1cml6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojp3aW5kb3dEaWRNb3ZlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OndpbmRvd0Rp
ZFJlc2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VC
YWNraW5nUHJvcGVydGllcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dE
aWRDaGFuZ2VTY3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlk
Q2hhbmdlTGF5ZXJIb3N0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OndpbmRv
d0RpZENoYW5nZU9jY2x1c2lvblN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
OnZpZXdXaWxsTW92ZVRvV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZp
ZXdEaWRNb3ZlVG9XaW5kb3cpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dmlld0Rp
ZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29sb3JTcGFjZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpiZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6ZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcyk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjplbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2Vz
U3luYyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwcmVwYXJlRm9yTW92ZVRvV2lu
ZG93KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnByZXNzdXJlQ2hhbmdlV2l0aEV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmlzRWRpdGFibGUpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZXhlY3V0ZUVkaXRDb21tYW5kKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6Y2xlYXJBbGxFZGl0Q29tbWFuZHMpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6d3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6Y2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjpzZWxlY3Rpb25EaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6c3RhcnRPYnNlcnZpbmdGb250UGFuZWwpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6dXBkYXRlRm9udFBhbmVsSWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6c2V0VGV4dEluZGljYXRvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dz
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnF1aWNrTG9va1dpdGhFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRBbGxvd3NMaW5rUHJldmlldyk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250
cm9sbGVyRm9ySGl0VGVzdFJlc3VsdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpw
cmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmNhbmNlbEltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpjb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRJZ25vcmVzTm9uV2hlZWxFdmVudHMpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SWdub3Jlc0FsbEV2ZW50cyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjphY2Nlc3NpYmlsaXR5UmVnaXN0ZXJVSVByb2Nlc3NUb2tl
bnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdl
Q2xpZW50SW1wbDo6YWN0aXZlV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudElt
cGw6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudElt
cGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6Y2xlYXJBbGxFZGl0Q29tbWFuZHMpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6c2VsZWN0aW9uRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6
OmRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwKToKKyAgICAgICAgKC1bV0tFZGl0Q29tbWFuZE9i
akMgaW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S0VkaXRDb21tYW5kT2JqQyBjb21tYW5kXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLRWRpdG9y
VW5kb1RhcmdldE9iakMgdW5kb0VkaXRpbmc6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLRWRp
dG9yVW5kb1RhcmdldE9iakMgcmVkb0VkaXRpbmc6XSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnRJbXBsOjpQYWdlQ2xpZW50SW1wbCk6IERlbGV0ZWQuCisgICAgICAgIE1v
dmUgbW9yZSB0aGluZ3MgdG8gV2ViVmlld0ltcGwuCisgICAgICAgIFRoaXMgYWxzbyBpbnRyb2R1
Y2VzIGFuIHVuZm9ydHVuYXRlIHBhdHRlcm4gdGhhdCBpcyByZXF1aXJlZCBmb3IgdGhpbmdzIHdo
aWNoCisgICAgICAgIGNsaWVudHMgb3ZlcnJpZGUgb24gV0tWaWV3LCB3aGVyZSB3ZSBoYXZlIGEg
ZmxvdyBsaWtlIHRoaXM6CisgICAgICAgICAgICAgICAgLSBzb21lYm9keSAoUGFnZUNsaWVudCwg
ZXRjLikgY2FsbHMgV2ViVmlld0ltcGw6OngKKyAgICAgICAgICAgICAgICAtIFdlYlZpZXdJbXBs
Ojp4IGRvZXMgbm90aGluZyBleGNlcHQgY2FsbCBbV0tWaWV3IF94XQorICAgICAgICAgICAgICAg
IC0gW1dLVmlldyBfeF0gY2FsbHMgV2ViVmlld0ltcGw6OnhGcm9tVmlld09ubHksIHdoaWNoIGRv
ZXMgdGhlIHJlYWwgd29yaworICAgICAgICBBcyBsb25nIGFzIG5vIGNsaWVudHMgY2FsbCB0aGUg
LUZyb21WaWV3T25seSB2YXJpYW50LCB0aGlzIHdpbGwgbWVhbiB0aGF0CisgICAgICAgIGFsbCBj
YWxsZXJzIGFyZSBib3R0bGVuZWNrZWQgdGhyb3VnaCB0aGUgb3ZlcnJpZGFibGUgV0tWaWV3IG1l
dGhvZC4KKyAgICAgICAgSG93IHRoaXMgd29ya3Mgd2l0aCBXS1dlYlZpZXcsIEkgYW0gbm90IHN1
cmUgeWV0LgorCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRy
b2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dLSW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlci5tbToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGluaXRXaXRo
UGFnZTp2aWV3OnZpZXdJbXBsOnJlY29nbml6ZXI6XSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRl
QWN0aW9uQ29udHJvbGxlciB3aWxsRGVzdHJveVZpZXc6XSk6CisgICAgICAgICgtW1dLSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlciBpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyV2lsbFByZXBhcmU6
XSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBpbW1lZGlhdGVBY3Rp
b25SZWNvZ25pemVyRGlkQ2FuY2VsQW5pbWF0aW9uOl0pOgorICAgICAgICAoLVtXS0ltbWVkaWF0
ZUFjdGlvbkNvbnRyb2xsZXIgaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplckRpZENvbXBsZXRlQW5p
bWF0aW9uOl0pOgorICAgICAgICAoLVtXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgbWVudUl0
ZW06dmlld0F0U2NyZWVuUG9pbnQ6XSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29u
dHJvbGxlciBtZW51SXRlbTpwcmV2aWV3SXRlbUF0UG9pbnQ6XSk6CisgICAgICAgICgtW1dLSW1t
ZWRpYXRlQWN0aW9uQ29udHJvbGxlciBtZW51SXRlbTppdGVtRnJhbWVGb3JQb2ludDpdKToKKyAg
ICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIG1lbnVJdGVtOm1heFNpemVGb3JQ
b2ludDpdKToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIF9hbmltYXRp
b25Db250cm9sbGVyRm9yRGF0YURldGVjdGVkVGV4dF0pOgorICAgICAgICAoLVtXS0ltbWVkaWF0
ZUFjdGlvbkNvbnRyb2xsZXIgX2FuaW1hdGlvbkNvbnRyb2xsZXJGb3JEYXRhRGV0ZWN0ZWRMaW5r
XSk6CisgICAgICAgICgtW1dLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBfYW5pbWF0aW9uQ29u
dHJvbGxlckZvclRleHRdKToKKyAgICAgICAgKC1bV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVy
IGluaXRXaXRoUGFnZTp2aWV3OnJlY29nbml6ZXI6XSk6IERlbGV0ZWQuCisgICAgICAgIEtlZXAg
YSBnZW5lcmljIE5TVmlldywgdXNlIHRoZSBXZWJWaWV3SW1wbCBmb3IgV0sqVmlldyByZWxhdGVk
IHRoaW5ncy4KKwogMjAxNS0xMC0yMiAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3
ZWJraXQub3JnPgogCiAgICAgICAgIEluaXRpYWwgTlNVUkxTZXNzaW9uIFdlYlJlc291cmNlTG9h
ZGVyIGltcGxlbWVudGF0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXcubW0KaW5kZXggOGM2MjVlOS4uZDk5NDY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtMzYsNyArMzYsNiBAQAogI2ltcG9ydCAiQVBJTGVnYWN5
Q29udGV4dEhpc3RvcnlDbGllbnQuaCIKICNpbXBvcnQgIkFQSVBhZ2VDb25maWd1cmF0aW9uLmgi
CiAjaW1wb3J0ICJBdHRyaWJ1dGVkU3RyaW5nLmgiCi0jaW1wb3J0ICJDb2xvclNwYWNlRGF0YS5o
IgogI2ltcG9ydCAiRGF0YVJlZmVyZW5jZS5oIgogI2ltcG9ydCAiRWRpdGluZ1JhbmdlLmgiCiAj
aW1wb3J0ICJFZGl0b3JTdGF0ZS5oIgpAQCAtNTksNyArNTgsNiBAQAogI2ltcG9ydCAiVmlld1Nu
YXBzaG90U3RvcmUuaCIKICNpbXBvcnQgIldLQVBJQ2FzdC5oIgogI2ltcG9ydCAiV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlci5oIgotI2ltcG9ydCAiV0tJbW1lZGlhdGVBY3Rpb25Db250cm9s
bGVyLmgiCiAjaW1wb3J0ICJXS0xheW91dE1vZGUuaCIKICNpbXBvcnQgIldLUHJpbnRpbmdWaWV3
LmgiCiAjaW1wb3J0ICJXS1Byb2Nlc3NQb29sSW50ZXJuYWwuaCIKQEAgLTk2LDE1ICs5NCwxMiBA
QAogI2ltcG9ydCA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0tleWJv
YXJkRXZlbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvTG9jYWxpemVkU3RyaW5ncy5oPgotI2ltcG9y
dCA8V2ViQ29yZS9Mb29rdXBTUEkuaD4KLSNpbXBvcnQgPFdlYkNvcmUvTlNJbW1lZGlhdGVBY3Rp
b25HZXN0dXJlUmVjb2duaXplclNQSS5oPgogI2ltcG9ydCA8V2ViQ29yZS9OU01lbnVTUEkuaD4K
ICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KICNpbXBvcnQgPFdl
YkNvcmUvUGxhdGZvcm1TY3JlZW4uaD4KICNpbXBvcnQgPFdlYkNvcmUvUmVnaW9uLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrcy5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9TaGFyZWRCdWZmZXIuaD4KLSNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KICNpbXBv
cnQgPFdlYkNvcmUvVGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1RleHRJbmRpY2F0b3IuaD4KICNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvcldpbmRvdy5o
PgpAQCAtMTQ5LDggKzE0NCw2IEBAIENHU0Nvbm5lY3Rpb25JRCBDR1NNYWluQ29ubmVjdGlvbklE
KHZvaWQpOwogQ0dFcnJvciBDR1NHZXRTY3JlZW5SZWN0Rm9yV2luZG93KENHU0Nvbm5lY3Rpb25J
RCBjaWQsIENHU1dpbmRvd0lEIHdpZCwgQ0dSZWN0ICpyZWN0KTsKIH07CiAKLVNPRlRfTElOS19D
T05TVEFOVF9NQVlfRkFJTChMb29rdXAsIExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9zZSwg
TlNTdHJpbmcgKikKLQogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCkBAIC0xNzEsOCArMTY0LDYgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2
ZW50c1BhcmFtZXRlcnMgewogfTsKICNlbmRpZgogCi1AY2xhc3MgV0tXaW5kb3dWaXNpYmlsaXR5
T2JzZXJ2ZXI7Ci0KIEBpbnRlcmZhY2UgV0tWaWV3RGF0YSA6IE5TT2JqZWN0IHsKIEBwdWJsaWMK
ICAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZUNsaWVudEltcGw+IF9wYWdlQ2xpZW50OwpAQCAtMjAw
LDggKzE5MSw2IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsK
ICAgICAvLyBGb3IgYXN5bmNocm9ub3VzIHZhbGlkYXRpb24uCiAgICAgVmFsaWRhdGlvbk1hcCBf
dmFsaWRhdGlvbk1hcDsKIAotICAgIHN0ZDo6dW5pcXVlX3B0cjxUZXh0SW5kaWNhdG9yV2luZG93
PiBfdGV4dEluZGljYXRvcldpbmRvdzsKLQogICAgIC8vIFdlIGtlZXAgaGVyZSB0aGUgZXZlbnQg
d2hlbiByZXNlbmRpbmcgaXQgdG8KICAgICAvLyB0aGUgYXBwbGljYXRpb24gdG8gZGlzdGluZ3Vp
c2ggdGhlIGNhc2Ugb2YgYSBuZXcgZXZlbnQgZnJvbSBvbmUgCiAgICAgLy8gdGhhdCBoYXMgYmVl
biBhbHJlYWR5IHNlbnQgdG8gV2ViQ29yZS4KQEAgLTIyMyw1MiArMjEyLDIzIEBAIHN0cnVjdCBX
S1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKICAgICBOU0V2ZW50ICpfcHJlc3N1
cmVFdmVudDsKICAgICBCT09MIF9pZ25vcmluZ01vdXNlRHJhZ2dlZEV2ZW50czsKIAotICAgIGlk
IF9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3I7Ci0KICAgICBCT09MIF9oYXNTcGVsbENoZWNrZXJE
b2N1bWVudFRhZzsKICAgICBOU0ludGVnZXIgX3NwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwogCi0g
ICAgQk9PTCBfc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzOwotICAgIE5TV2luZG93ICpf
dGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uOwotCi0gICAgQk9PTCBfdmlld0luV2luZG93
Q2hhbmdlV2FzRGVmZXJyZWQ7Ci0KLSAgICBCT09MIF9uZWVkc1ZpZXdGcmFtZUluV2luZG93Q29v
cmRpbmF0ZXM7Ci0gICAgQk9PTCBfZGlkU2NoZWR1bGVXaW5kb3dBbmRWaWV3RnJhbWVVcGRhdGU7
Ci0KLSAgICBSZXRhaW5QdHI8TlNDb2xvclNwYWNlPiBfY29sb3JTcGFjZTsKLQogICAgIFJlZlB0
cjxXZWJDb3JlOjpJbWFnZT4gX3Byb21pc2VkSW1hZ2U7CiAgICAgU3RyaW5nIF9wcm9taXNlZEZp
bGVuYW1lOwogICAgIFN0cmluZyBfcHJvbWlzZWRVUkw7CiAKICAgICBCT09MIF93aW5kb3dPY2Ns
dXNpb25EZXRlY3Rpb25FbmFibGVkOwogCi0gICAgUmV0YWluUHRyPFdLV2luZG93VmlzaWJpbGl0
eU9ic2VydmVyPiBfd2luZG93VmlzaWJpbGl0eU9ic2VydmVyOwotCiAgICAgc3RkOjp1bmlxdWVf
cHRyPFZpZXdHZXN0dXJlQ29udHJvbGxlcj4gX2dlc3R1cmVDb250cm9sbGVyOwogICAgIEJPT0wg
X2FsbG93c01hZ25pZmljYXRpb247Ci0gICAgQk9PTCBfaWdub3Jlc05vbldoZWVsRXZlbnRzOwot
ICAgIEJPT0wgX2lnbm9yZXNBbGxFdmVudHM7CiAgICAgQk9PTCBfYWxsb3dzQmFja0ZvcndhcmRO
YXZpZ2F0aW9uR2VzdHVyZXM7Ci0gICAgQk9PTCBfYWxsb3dzTGlua1ByZXZpZXc7CiAKICAgICBS
ZXRhaW5QdHI8Q0FMYXllcj4gX3Jvb3RMYXllcjsKIAotICAgIEJPT0wgX2RpZFNjaGVkdWxlU2V0
VG9wQ29udGVudEluc2V0OwotICAgIENHRmxvYXQgX3RvcENvbnRlbnRJbnNldDsKICAgICBDR0Zs
b2F0IF90b3RhbEhlaWdodE9mQmFubmVyczsKIAotICAgIENHRmxvYXQgX292ZXJyaWRlRGV2aWNl
U2NhbGVGYWN0b3I7Ci0KLSAgICBCT09MIF9kaWRSZWdpc3RlckZvckxvb2t1cFBvcG92ZXJDbG9z
ZU5vdGlmaWNhdGlvbnM7Ci0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTAwMAotICAgIEJPT0wgX2F1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0czsKLSAg
ICBSZXRhaW5QdHI8V0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyPiBfaW1tZWRpYXRlQWN0aW9u
Q29udHJvbGxlcjsKLSAgICBSZXRhaW5QdHI8TlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2du
aXplcj4gX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyOwotI2VuZGlmCi0KICNpZiBX
S19BUElfRU5BQkxFRAogICAgIF9XS1RodW1ibmFpbFZpZXcgKl90aHVtYm5haWxWaWV3OwogI2Vu
ZGlmCkBAIC0yNzksNTQgKzIzOSw2IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQ
YXJhbWV0ZXJzIHsKIEBpbXBsZW1lbnRhdGlvbiBXS1ZpZXdEYXRhCiBAZW5kCiAKLUBpbnRlcmZh
Y2UgV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgOiBOU09iamVjdCB7Ci0gICAgV0tWaWV3ICpf
dmlldzsKLX0KLQotLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVmlldzooV0tWaWV3ICopdmlldzsK
LS0gKHZvaWQpc3RhcnRPYnNlcnZpbmc6KE5TV2luZG93ICopd2luZG93OwotLSAodm9pZClzdG9w
T2JzZXJ2aW5nOihOU1dpbmRvdyAqKXdpbmRvdzsKLUBlbmQKLQotQGltcGxlbWVudGF0aW9uIFdL
V2luZG93VmlzaWJpbGl0eU9ic2VydmVyCi0KLS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFZpZXc6
KFdLVmlldyAqKXZpZXcKLXsKLSAgICBzZWxmID0gW3N1cGVyIGluaXRdOwotICAgIGlmICghc2Vs
ZikKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIF92aWV3ID0gdmlldzsKLSAgICByZXR1cm4g
c2VsZjsKLX0KLQotLSAodm9pZClzdGFydE9ic2VydmluZzooTlNXaW5kb3cgKil3aW5kb3cKLXsK
LSAgICAvLyBBbiBOU1ZpZXcgZGVyaXZlZCBvYmplY3Qgc3VjaCBhcyBXS1ZpZXcgY2Fubm90IG9i
c2VydmUgdGhlc2Ugbm90aWZpY2F0aW9ucywgYmVjYXVzZSBOU1ZpZXcgaXRzZWxmIG9ic2VydmVz
IHRoZW0uCi0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNl
cnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkT3JkZXJPZmZTY3JlZW46KQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6QCJO
U1dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuTm90aWZpY2F0aW9uIiBvYmplY3Q6d2luZG93XTsKLSAg
ICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYg
c2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRPcmRlck9uU2NyZWVuOikgCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFtZTpAIl9OU1dpbmRvd0Rp
ZEJlY29tZVZpc2libGUiIG9iamVjdDp3aW5kb3ddOwotfQotCi0tICh2b2lkKXN0b3BPYnNlcnZp
bmc6KE5TV2luZG93ICopd2luZG93Ci17Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZh
dWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6QCJOU1dpbmRvd0RpZE9yZGVyT2Zm
U2NyZWVuTm90aWZpY2F0aW9uIiBvYmplY3Q6d2luZG93XTsKLSAgICBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpAIl9OU1dpbmRv
d0RpZEJlY29tZVZpc2libGUiIG9iamVjdDp3aW5kb3ddOwotfQotCi0tICh2b2lkKV93aW5kb3dE
aWRPcmRlck9uU2NyZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIFtf
dmlldyBfd2luZG93RGlkT3JkZXJPblNjcmVlbjpub3RpZmljYXRpb25dOwotfQotCi0tICh2b2lk
KV93aW5kb3dEaWRPcmRlck9mZlNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24K
LXsKLSAgICBbX3ZpZXcgX3dpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuOm5vdGlmaWNhdGlvbl07Ci19
Ci0KLUBlbmQKLQogQGludGVyZmFjZSBXS1Jlc3BvbmRlckNoYWluU2luayA6IE5TUmVzcG9uZGVy
IHsKICAgICBOU1Jlc3BvbmRlciAqX2xhc3RSZXNwb25kZXJJbkNoYWluOwogICAgIGJvb2wgX2Rp
ZFJlY2VpdmVVbmhhbmRsZWRDb21tYW5kOwpAQCAtMzY5LDEwICsyODEsNiBAQCBzdHJ1Y3QgV0tW
aWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiAKIC0gKHZvaWQpZGVhbGxvYwogewot
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgW19kYXRh
LT5faW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciB3aWxsRGVzdHJveVZpZXc6c2VsZl07Ci0jZW5k
aWYKLQogI2lmIFdLX0FQSV9FTkFCTEVECiAgICAgaWYgKF9kYXRhLT5fcmVtb3RlT2JqZWN0UmVn
aXN0cnkpIHsKICAgICAgICAgX2RhdGEtPl9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5y
ZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNz
YWdlUmVjZWl2ZXJOYW1lKCksIF9kYXRhLT5fcGFnZS0+cGFnZUlEKCkpOwpAQCAtMzk0LDkgKzMw
Miw2IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKICAgICBO
U05vdGlmaWNhdGlvbkNlbnRlciogd29ya3NwYWNlTm90aWZpY2F0aW9uQ2VudGVyID0gW1tOU1dv
cmtzcGFjZSBzaGFyZWRXb3Jrc3BhY2VdIG5vdGlmaWNhdGlvbkNlbnRlcl07CiAgICAgW3dvcmtz
cGFjZU5vdGlmaWNhdGlvbkNlbnRlciByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXb3Jrc3Bh
Y2VBY3RpdmVTcGFjZURpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKIAotICAgIGlm
IChjYW5Mb2FkTFVOb3RpZmljYXRpb25Qb3BvdmVyV2lsbENsb3NlKCkpCi0gICAgICAgIFtbTlNO
b3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1l
OmdldExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9zZSgpIG9iamVjdDpuaWxdOwotCiAgICAg
V2ViUHJvY2Vzc1Bvb2w6OnN0YXRpc3RpY3MoKS53a1ZpZXdDb3VudC0tOwogCiAgICAgW3N1cGVy
IGRlYWxsb2NdOwpAQCAtNDgxLDQ4ICszODYsOSBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5
RXZlbnRzUGFyYW1ldGVycyB7CiAgICAgX2RhdGEtPl9pbXBsLT5zZXRGcmFtZVNpemUoTlNTaXpl
VG9DR1NpemUoc2l6ZSkpOwogfQogCi0tICh2b2lkKV91cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVz
Ci17Ci0gICAgaWYgKF9kYXRhLT5faW1wbC0+Y2xpcHNUb1Zpc2libGVSZWN0KCkpCi0gICAgICAg
IF9kYXRhLT5faW1wbC0+dXBkYXRlVmlld0V4cG9zZWRSZWN0KCk7Ci0KLSAgICBpZiAoX2RhdGEt
Pl9kaWRTY2hlZHVsZVdpbmRvd0FuZFZpZXdGcmFtZVVwZGF0ZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgX2RhdGEtPl9kaWRTY2hlZHVsZVdpbmRvd0FuZFZpZXdGcmFtZVVwZGF0ZSA9IFlFUzsK
LQotICAgIGRpc3BhdGNoX2FzeW5jKGRpc3BhdGNoX2dldF9tYWluX3F1ZXVlKCksIF57Ci0gICAg
ICAgIF9kYXRhLT5fZGlkU2NoZWR1bGVXaW5kb3dBbmRWaWV3RnJhbWVVcGRhdGUgPSBOTzsKLQot
ICAgICAgICBOU1JlY3Qgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9IE5TWmVyb1JlY3Q7
Ci0gICAgICAgIE5TUG9pbnQgYWNjZXNzaWJpbGl0eVBvc2l0aW9uID0gTlNaZXJvUG9pbnQ7Ci0K
LSAgICAgICAgaWYgKF9kYXRhLT5fbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKQot
ICAgICAgICAgICAgdmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9IFtzZWxmIGNvbnZlcnRS
ZWN0OnNlbGYuZnJhbWUgdG9WaWV3Om5pbF07Ci0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICAgICAgaWYgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2liaWxp
dHlFbmFibGVkKCkpCi0gICAgICAgICAgICBhY2Nlc3NpYmlsaXR5UG9zaXRpb24gPSBbW3NlbGYg
YWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVBvc2l0aW9uQXR0cmli
dXRlXSBwb2ludFZhbHVlXTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLQotICAgICAg
ICBfZGF0YS0+X3BhZ2UtPndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKHZpZXdGcmFtZUluV2lu
ZG93Q29vcmRpbmF0ZXMsIGFjY2Vzc2liaWxpdHlQb3NpdGlvbik7Ci0gICAgfSk7Ci19Ci0KIC0g
KHZvaWQpcmVuZXdHU3RhdGUKIHsKLSAgICBpZiAoX2RhdGEtPl90ZXh0SW5kaWNhdG9yV2luZG93
KQotICAgICAgICBbc2VsZiBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhB
bmltYXRpb246Tk9dOwotCi0gICAgLy8gVXBkYXRlIHRoZSB2aWV3IGZyYW1lLgotICAgIGlmIChb
c2VsZiB3aW5kb3ddKQotICAgICAgICBbc2VsZiBfdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lc107
Ci0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAotICAgIFtz
ZWxmIF91cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWNdOwotI2VuZGlmCi0KKyAgICBfZGF0
YS0+X2ltcGwtPnJlbmV3R1N0YXRlKCk7CiAgICAgW3N1cGVyIHJlbmV3R1N0YXRlXTsKIH0KIApA
QCAtNTc4LDcgKzQ0NCw3IEBAIHN0YXRpYyBTdHJpbmcgY29tbWFuZE5hbWVGb3JTZWxlY3RvcihT
RUwgc2VsZWN0b3IpCiAKIC8vIEVkaXRpbmcgY29tbWFuZHMKIAotI2RlZmluZSBXRUJDT1JFX0NP
TU1BTkQoY29tbWFuZCkgLSAodm9pZCljb21tYW5kOihpZClzZW5kZXIgeyBfZGF0YS0+X3BhZ2Ut
PmV4ZWN1dGVFZGl0Q29tbWFuZChjb21tYW5kTmFtZUZvclNlbGVjdG9yKF9jbWQpKTsgfQorI2Rl
ZmluZSBXRUJDT1JFX0NPTU1BTkQoY29tbWFuZCkgLSAodm9pZCljb21tYW5kOihpZClzZW5kZXIg
eyBfZGF0YS0+X2ltcGwtPmV4ZWN1dGVFZGl0Q29tbWFuZChjb21tYW5kTmFtZUZvclNlbGVjdG9y
KF9jbWQpKTsgfQogCiBXRUJDT1JFX0NPTU1BTkQoYWxpZ25DZW50ZXIpCiBXRUJDT1JFX0NPTU1B
TkQoYWxpZ25KdXN0aWZpZWQpCkBAIC02ODcsMjIgKzU1MywxMiBAQCBXRUJDT1JFX0NPTU1BTkQo
eWFua0FuZFNlbGVjdCkKIAogLSAoQk9PTCl3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZDooTlNQ
YXN0ZWJvYXJkICopcGFzdGVib2FyZCB0eXBlczooTlNBcnJheSAqKXR5cGVzCiB7Ci0gICAgc2l6
ZV90IG51bVR5cGVzID0gW3R5cGVzIGNvdW50XTsKLSAgICBbcGFzdGVib2FyZCBkZWNsYXJlVHlw
ZXM6dHlwZXMgb3duZXI6bmlsXTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IG51bVR5cGVz
OyArK2kpIHsKLSAgICAgICAgaWYgKFtbdHlwZXMgb2JqZWN0QXRJbmRleDppXSBpc0VxdWFsVG86
TlNTdHJpbmdQYm9hcmRUeXBlXSkKLSAgICAgICAgICAgIFtwYXN0ZWJvYXJkIHNldFN0cmluZzpf
ZGF0YS0+X3BhZ2UtPnN0cmluZ1NlbGVjdGlvbkZvclBhc3RlYm9hcmQoKSBmb3JUeXBlOk5TU3Ry
aW5nUGJvYXJkVHlwZV07Ci0gICAgICAgIGVsc2UgewotICAgICAgICAgICAgUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gYnVmZmVyID0gX2RhdGEtPl9wYWdlLT5kYXRhU2VsZWN0aW9uRm9yUGFzdGVib2Fy
ZChbdHlwZXMgb2JqZWN0QXRJbmRleDppXSk7Ci0gICAgICAgICAgICBbcGFzdGVib2FyZCBzZXRE
YXRhOmJ1ZmZlciA/IGJ1ZmZlci0+Y3JlYXRlTlNEYXRhKCkuZ2V0KCkgOiBuaWwgZm9yVHlwZTpb
dHlwZXMgb2JqZWN0QXRJbmRleDppXV07Ci0gICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gWUVT
OworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPndyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKHBh
c3RlYm9hcmQsIHR5cGVzKTsKIH0KIAogLSAodm9pZCljZW50ZXJTZWxlY3Rpb25JblZpc2libGVB
cmVhOihpZClzZW5kZXIgCiB7IAotICAgIF9kYXRhLT5fcGFnZS0+Y2VudGVyU2VsZWN0aW9uSW5W
aXNpYmxlQXJlYSgpOworICAgIF9kYXRhLT5faW1wbC0+Y2VudGVyU2VsZWN0aW9uSW5WaXNpYmxl
QXJlYSgpOwogfQogCiAvLyBUaGlzIG1ldGhvZCBpcyBuZWVkZWQgdG8gc3VwcG9ydCBNYWMgT1Mg
WCBzZXJ2aWNlcy4KQEAgLTc0MCwyNSArNTk2LDYgQEAgV0VCQ09SRV9DT01NQU5EKHlhbmtBbmRT
ZWxlY3QpCiAKIC8vIEZvbnQgcGFuZWwgc3VwcG9ydC4KIAotLSAodm9pZCl1cGRhdGVGb250UGFu
ZWxJZk5lZWRlZAotewotICAgIGNvbnN0IEVkaXRvclN0YXRlJiBlZGl0b3JTdGF0ZSA9IF9kYXRh
LT5fcGFnZS0+ZWRpdG9yU3RhdGUoKTsKLSAgICBpZiAoZWRpdG9yU3RhdGUuc2VsZWN0aW9uSXNO
b25lIHx8ICFlZGl0b3JTdGF0ZS5pc0NvbnRlbnRFZGl0YWJsZSkKLSAgICAgICAgcmV0dXJuOwot
ICAgIGlmIChbTlNGb250UGFuZWwgc2hhcmVkRm9udFBhbmVsRXhpc3RzXSAmJiBbW05TRm9udFBh
bmVsIHNoYXJlZEZvbnRQYW5lbF0gaXNWaXNpYmxlXSkgewotICAgICAgICBfZGF0YS0+X3BhZ2Ut
PmZvbnRBdFNlbGVjdGlvbihbXShjb25zdCBTdHJpbmcmIGZvbnROYW1lLCBkb3VibGUgZm9udFNp
emUsIGJvb2wgc2VsZWN0aW9uSGFzTXVsdGlwbGVGb250cywgV2ViS2l0OjpDYWxsYmFja0Jhc2U6
OkVycm9yIGVycm9yKSB7Ci0gICAgICAgICAgICBOU0ZvbnQgKmZvbnQgPSBbTlNGb250IGZvbnRX
aXRoTmFtZTpmb250TmFtZSBzaXplOmZvbnRTaXplXTsKLSAgICAgICAgICAgIGlmIChmb250KQot
ICAgICAgICAgICAgICAgIFtbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl0gc2V0U2Vs
ZWN0ZWRGb250OmZvbnQgaXNNdWx0aXBsZTpzZWxlY3Rpb25IYXNNdWx0aXBsZUZvbnRzXTsKLSAg
ICAgICAgfSk7Ci0gICAgfQotfQotCi0tICh2b2lkKV9zZWxlY3Rpb25DaGFuZ2VkCi17Ci0gICAg
W3NlbGYgdXBkYXRlRm9udFBhbmVsSWZOZWVkZWRdOwotfQotCiAtICh2b2lkKWNoYW5nZUZvbnQ6
KGlkKXNlbmRlcgogewogICAgIE5TRm9udE1hbmFnZXIgKmZvbnRNYW5hZ2VyID0gW05TRm9udE1h
bmFnZXIgc2hhcmVkRm9udE1hbmFnZXJdOwpAQCAtMTE0NSw2NCArOTgyLDY0IEBAIHN0YXRpYyBO
U1Rvb2xiYXJJdGVtICp0b29sYmFySXRlbShpZCA8TlNWYWxpZGF0ZWRVc2VySW50ZXJmYWNlSXRl
bT4gaXRlbSkKICNkZWZpbmUgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVIoU2VsZWN0b3IpIFwK
ICAgICAtICh2b2lkKVNlbGVjdG9yOihOU0V2ZW50ICopdGhlRXZlbnQgXAogICAgIHsgXAotICAg
ICAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpIFwKKyAgICAgICAgaWYgKF9k
YXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpIFwKICAgICAgICAgICAgIHJldHVy
bjsgXAogICAgICAgICBpZiAoTlNUZXh0SW5wdXRDb250ZXh0ICpjb250ZXh0ID0gW3NlbGYgaW5w
dXRDb250ZXh0XSkgeyBcCiAgICAgICAgICAgICBbY29udGV4dCBoYW5kbGVFdmVudDp0aGVFdmVu
dCBjb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wgaGFuZGxlZCkgeyBcCiAgICAgICAgICAgICAgICAg
aWYgKGhhbmRsZWQpIFwKICAgICAgICAgICAgICAgICAgICAgTE9HKFRleHRJbnB1dCwgIiVzIHdh
cyBoYW5kbGVkIGJ5IHRleHQgaW5wdXQgY29udGV4dCIsIFN0cmluZygjU2VsZWN0b3IpLnN1YnN0
cmluZygwLCBTdHJpbmcoI1NlbGVjdG9yKS5maW5kKCJJbnRlcm5hbCIpKS5hc2NpaSgpLmRhdGEo
KSk7IFwKICAgICAgICAgICAgICAgICBlbHNlIHsgXAotICAgICAgICAgICAgICAgICAgICBOYXRp
dmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KHRoZUV2ZW50LCBfZGF0YS0+X3ByZXNzdXJlRXZlbnQs
IHNlbGYpOyBcCisgICAgICAgICAgICAgICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZl
bnQodGhlRXZlbnQsIF9kYXRhLT5faW1wbC0+bGFzdFByZXNzdXJlRXZlbnQoKSwgc2VsZik7IFwK
ICAgICAgICAgICAgICAgICAgICAgX2RhdGEtPl9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2
ZW50KTsgXAogICAgICAgICAgICAgICAgIH0gXAogICAgICAgICAgICAgfV07IFwKICAgICAgICAg
ICAgIHJldHVybjsgXAogICAgICAgICB9IFwKLSAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3
ZWJFdmVudCh0aGVFdmVudCwgX2RhdGEtPl9wcmVzc3VyZUV2ZW50LCBzZWxmKTsgXAorICAgICAg
ICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KHRoZUV2ZW50LCBfZGF0YS0+X2ltcGwtPmxh
c3RQcmVzc3VyZUV2ZW50KCksIHNlbGYpOyBcCiAgICAgICAgIF9kYXRhLT5fcGFnZS0+aGFuZGxl
TW91c2VFdmVudCh3ZWJFdmVudCk7IFwKICAgICB9CiAjZGVmaW5lIE5BVElWRV9NT1VTRV9FVkVO
VF9IQU5ETEVSX0lOVEVSTkFMKFNlbGVjdG9yKSBcCiAgICAgLSAodm9pZClTZWxlY3RvcjooTlNF
dmVudCAqKXRoZUV2ZW50IFwKICAgICB7IFwKLSAgICAgICAgaWYgKF9kYXRhLT5faWdub3Jlc05v
bldoZWVsRXZlbnRzKSBcCisgICAgICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVl
bEV2ZW50cygpKSBcCiAgICAgICAgICAgICByZXR1cm47IFwKICAgICAgICAgaWYgKE5TVGV4dElu
cHV0Q29udGV4dCAqY29udGV4dCA9IFtzZWxmIGlucHV0Q29udGV4dF0pIHsgXAogICAgICAgICAg
ICAgW2NvbnRleHQgaGFuZGxlRXZlbnQ6dGhlRXZlbnQgY29tcGxldGlvbkhhbmRsZXI6XihCT09M
IGhhbmRsZWQpIHsgXAogICAgICAgICAgICAgICAgIGlmIChoYW5kbGVkKSBcCiAgICAgICAgICAg
ICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIlcyB3YXMgaGFuZGxlZCBieSB0ZXh0IGlucHV0IGNv
bnRleHQiLCBTdHJpbmcoI1NlbGVjdG9yKS5zdWJzdHJpbmcoMCwgU3RyaW5nKCNTZWxlY3Rvciku
ZmluZCgiSW50ZXJuYWwiKSkuYXNjaWkoKS5kYXRhKCkpOyBcCiAgICAgICAgICAgICAgICAgZWxz
ZSB7IFwKLSAgICAgICAgICAgICAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudCh0
aGVFdmVudCwgX2RhdGEtPl9wcmVzc3VyZUV2ZW50LCBzZWxmKTsgXAorICAgICAgICAgICAgICAg
ICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KHRoZUV2ZW50LCBfZGF0YS0+X2ltcGwt
Pmxhc3RQcmVzc3VyZUV2ZW50KCksIHNlbGYpOyBcCiAgICAgICAgICAgICAgICAgICAgIF9kYXRh
LT5fcGFnZS0+aGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7IFwKICAgICAgICAgICAgICAgICB9
IFwKICAgICAgICAgICAgIH1dOyBcCiAgICAgICAgICAgICByZXR1cm47IFwKICAgICAgICAgfSBc
Ci0gICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQodGhlRXZlbnQsIF9kYXRhLT5f
cHJlc3N1cmVFdmVudCwgc2VsZik7IFwKKyAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJF
dmVudCh0aGVFdmVudCwgX2RhdGEtPl9pbXBsLT5sYXN0UHJlc3N1cmVFdmVudCgpLCBzZWxmKTsg
XAogICAgICAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOyBcCiAg
ICAgfQogI2Vsc2UKICNkZWZpbmUgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVIoU2VsZWN0b3Ip
IFwKICAgICAtICh2b2lkKVNlbGVjdG9yOihOU0V2ZW50ICopdGhlRXZlbnQgXAogICAgIHsgXAot
ICAgICAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpIFwKKyAgICAgICAgaWYg
KF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpIFwKICAgICAgICAgICAgIHJl
dHVybjsgXAogICAgICAgICBpZiAoW1tzZWxmIGlucHV0Q29udGV4dF0gaGFuZGxlRXZlbnQ6dGhl
RXZlbnRdKSB7IFwKICAgICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIlcyB3YXMgaGFuZGxlZCBi
eSB0ZXh0IGlucHV0IGNvbnRleHQiLCBTdHJpbmcoI1NlbGVjdG9yKS5zdWJzdHJpbmcoMCwgU3Ry
aW5nKCNTZWxlY3RvcikuZmluZCgiSW50ZXJuYWwiKSkuYXNjaWkoKS5kYXRhKCkpOyBcCiAgICAg
ICAgICAgICByZXR1cm47IFwKICAgICAgICAgfSBcCi0gICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZl
bnQgd2ViRXZlbnQodGhlRXZlbnQsIF9kYXRhLT5fcHJlc3N1cmVFdmVudCwgc2VsZik7IFwKKyAg
ICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudCh0aGVFdmVudCwgX2RhdGEtPl9pbXBs
LT5sYXN0UHJlc3N1cmVFdmVudCgpLCBzZWxmKTsgXAogICAgICAgICBfZGF0YS0+X3BhZ2UtPmhh
bmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOyBcCiAgICAgfQogI2RlZmluZSBOQVRJVkVfTU9VU0Vf
RVZFTlRfSEFORExFUl9JTlRFUk5BTChTZWxlY3RvcikgXAogICAgIC0gKHZvaWQpU2VsZWN0b3I6
KE5TRXZlbnQgKil0aGVFdmVudCBcCiAgICAgeyBcCi0gICAgICAgIGlmIChfZGF0YS0+X2lnbm9y
ZXNOb25XaGVlbEV2ZW50cykgXAorICAgICAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9u
V2hlZWxFdmVudHMoKSkgXAogICAgICAgICAgICAgcmV0dXJuOyBcCiAgICAgICAgIGlmIChbW3Nl
bGYgaW5wdXRDb250ZXh0XSBoYW5kbGVFdmVudDp0aGVFdmVudF0pIHsgXAogICAgICAgICAgICAg
TE9HKFRleHRJbnB1dCwgIiVzIHdhcyBoYW5kbGVkIGJ5IHRleHQgaW5wdXQgY29udGV4dCIsIFN0
cmluZygjU2VsZWN0b3IpLnN1YnN0cmluZygwLCBTdHJpbmcoI1NlbGVjdG9yKS5maW5kKCJJbnRl
cm5hbCIpKS5hc2NpaSgpLmRhdGEoKSk7IFwKICAgICAgICAgICAgIHJldHVybjsgXAogICAgICAg
ICB9IFwKLSAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudCh0aGVFdmVudCwgX2Rh
dGEtPl9wcmVzc3VyZUV2ZW50LCBzZWxmKTsgXAorICAgICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50
IHdlYkV2ZW50KHRoZUV2ZW50LCBfZGF0YS0+X2ltcGwtPmxhc3RQcmVzc3VyZUV2ZW50KCksIHNl
bGYpOyBcCiAgICAgICAgIF9kYXRhLT5fcGFnZS0+aGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7
IFwKICAgICB9CiAjZW5kaWYKQEAgLTEyMzMsNyArMTA3MCw3IEBAIE5BVElWRV9NT1VTRV9FVkVO
VF9IQU5ETEVSX0lOVEVSTkFMKG1vdXNlRHJhZ2dlZEludGVybmFsKQogCiAtICh2b2lkKXNjcm9s
bFdoZWVsOihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVzQWxsRXZl
bnRzKQorICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNBbGxFdmVudHMoKSkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgaWYgKGV2ZW50LnBoYXNlID09IE5TRXZlbnRQaGFzZUJlZ2FuKQpAQCAt
MTI1MSw3ICsxMDg4LDcgQEAgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwobW91
c2VEcmFnZ2VkSW50ZXJuYWwpCiAKIC0gKHZvaWQpc3dpcGVXaXRoRXZlbnQ6KE5TRXZlbnQgKill
dmVudAogewotICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykKKyAgICBpZiAo
X2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMoKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgaWYgKCFfZGF0YS0+X2FsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzKSB7
CkBAIC0xMjY5LDcgKzExMDYsNyBAQCBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRFUk5B
TChtb3VzZURyYWdnZWRJbnRlcm5hbCkKIAogLSAodm9pZCltb3VzZU1vdmVkOihOU0V2ZW50ICop
ZXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAgaWYg
KF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCiAgICAgICAgIHJldHVybjsK
IAogICAgIC8vIFdoZW4gYSB2aWV3IGlzIGZpcnN0IHJlc3BvbmRlciwgaXQgZ2V0cyBtb3VzZSBt
b3ZlZCBldmVudHMgZXZlbiB3aGVuIHRoZSBtb3VzZSBpcyBvdXRzaWRlIGl0cyB2aXNpYmxlIHJl
Y3QuCkBAIC0xMjgxLDcgKzExMTgsNyBAQCBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRF
Uk5BTChtb3VzZURyYWdnZWRJbnRlcm5hbCkKIAogLSAodm9pZCltb3VzZURvd246KE5TRXZlbnQg
KilldmVudAogewotICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykKKyAgICBp
ZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMoKSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgW3NlbGYgX3NldE1vdXNlRG93bkV2ZW50OmV2ZW50XTsKQEAgLTEyOTIsNyArMTEy
OSw3IEBAIE5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVSX0lOVEVSTkFMKG1vdXNlRHJhZ2dlZElu
dGVybmFsKQogCiAtICh2b2lkKW1vdXNlVXA6KE5TRXZlbnQgKilldmVudAogewotICAgIGlmIChf
ZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50cykKKyAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25v
cmVzTm9uV2hlZWxFdmVudHMoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgW3NlbGYgX3NldE1v
dXNlRG93bkV2ZW50Om5pbF07CkBAIC0xMzAxLDcgKzExMzgsNyBAQCBOQVRJVkVfTU9VU0VfRVZF
TlRfSEFORExFUl9JTlRFUk5BTChtb3VzZURyYWdnZWRJbnRlcm5hbCkKIAogLSAodm9pZCltb3Vz
ZURyYWdnZWQ6KE5TRXZlbnQgKilldmVudAogewotICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25X
aGVlbEV2ZW50cykKKyAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMo
KSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKF9kYXRhLT5faWdub3JpbmdNb3VzZURyYWdn
ZWRFdmVudHMpCkBAIC0xMzExLDIyICsxMTQ4LDcgQEAgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRM
RVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCiAKIC0gKHZvaWQpcHJlc3N1cmVDaGFu
Z2VXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAogewotI2lmIGRlZmluZWQoX19MUDY0X18pICYm
IF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAxMDEwMDMKLSAgICBpZiAoZXZlbnQg
PT0gX2RhdGEtPl9wcmVzc3VyZUV2ZW50KQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoX2Rh
dGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChl
dmVudC5waGFzZSAhPSBOU0V2ZW50UGhhc2VDaGFuZ2VkICYmIGV2ZW50LnBoYXNlICE9IE5TRXZl
bnRQaGFzZUJlZ2FuICYmIGV2ZW50LnBoYXNlICE9IE5TRXZlbnRQaGFzZUVuZGVkKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KGV2ZW50LCBfZGF0
YS0+X3ByZXNzdXJlRXZlbnQsIHNlbGYpOwotICAgIF9kYXRhLT5fcGFnZS0+aGFuZGxlTW91c2VF
dmVudCh3ZWJFdmVudCk7Ci0KLSAgICBbX2RhdGEtPl9wcmVzc3VyZUV2ZW50IHJlbGVhc2VdOwot
ICAgIF9kYXRhLT5fcHJlc3N1cmVFdmVudCA9IFtldmVudCByZXRhaW5dOwotI2VuZGlmCisgICAg
X2RhdGEtPl9pbXBsLT5wcmVzc3VyZUNoYW5nZVdpdGhFdmVudChldmVudCk7CiB9CiAKIC0gKEJP
T0wpYWNjZXB0c0ZpcnN0TW91c2U6KE5TRXZlbnQgKilldmVudApAQCAtMTM0MCw3ICsxMTYyLDcg
QEAgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJu
YWwpCiAgICAgICAgIHJldHVybiBOTzsKICAgICAKICAgICBbc2VsZiBfc2V0TW91c2VEb3duRXZl
bnQ6ZXZlbnRdOwotICAgIGJvb2wgcmVzdWx0ID0gX2RhdGEtPl9wYWdlLT5hY2NlcHRzRmlyc3RN
b3VzZShbZXZlbnQgZXZlbnROdW1iZXJdLCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNl
RXZlbnQoZXZlbnQsIF9kYXRhLT5fcHJlc3N1cmVFdmVudCwgc2VsZikpOworICAgIGJvb2wgcmVz
dWx0ID0gX2RhdGEtPl9wYWdlLT5hY2NlcHRzRmlyc3RNb3VzZShbZXZlbnQgZXZlbnROdW1iZXJd
LCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoZXZlbnQsIF9kYXRhLT5faW1w
bC0+bGFzdFByZXNzdXJlRXZlbnQoKSwgc2VsZikpOwogICAgIFtzZWxmIF9zZXRNb3VzZURvd25F
dmVudDpuaWxdOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0xMzYxLDcgKzExODMsNyBAQCBO
QVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRFUk5BTChtb3VzZURyYWdnZWRJbnRlcm5hbCkK
ICAgICAgICAgcmV0dXJuIE5POwogICAgIAogICAgIFtzZWxmIF9zZXRNb3VzZURvd25FdmVudDpl
dmVudF07Ci0gICAgYm9vbCByZXN1bHQgPSBfZGF0YS0+X3BhZ2UtPnNob3VsZERlbGF5V2luZG93
T3JkZXJpbmdGb3JFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoZXZl
bnQsIF9kYXRhLT5fcHJlc3N1cmVFdmVudCwgc2VsZikpOworICAgIGJvb2wgcmVzdWx0ID0gX2Rh
dGEtPl9wYWdlLT5zaG91bGREZWxheVdpbmRvd09yZGVyaW5nRm9yRXZlbnQoV2ViRXZlbnRGYWN0
b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBfZGF0YS0+X2ltcGwtPmxhc3RQcmVzc3Vy
ZUV2ZW50KCksIHNlbGYpKTsKICAgICBbc2VsZiBfc2V0TW91c2VEb3duRXZlbnQ6bmlsXTsKICAg
ICByZXR1cm4gcmVzdWx0OwogfQpAQCAtMTc5Myw3ICsxNjE1LDcgQEAgc3RhdGljIHZvaWQgZXh0
cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3Np
dGlvblVuZGUKIAogLSAoQk9PTClwZXJmb3JtS2V5RXF1aXZhbGVudDooTlNFdmVudCAqKWV2ZW50
CiB7Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRzKQorICAgIGlmIChfZGF0
YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQogICAgICAgICByZXR1cm4gTk87CiAK
ICAgICAvLyBUaGVyZSdzIGEgY2hhbmNlIHRoYXQgcmVzcG9uZGluZyB0byB0aGlzIGV2ZW50IHdp
bGwgcnVuIGEgbmVzdGVkIGV2ZW50IGxvb3AsIGFuZApAQCAtMTgzMyw3ICsxNjU1LDcgQEAgc3Rh
dGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZl
Y3RvcjxDb21wb3NpdGlvblVuZGUKIAogLSAodm9pZClrZXlVcDooTlNFdmVudCAqKXRoZUV2ZW50
CiB7Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRzKQorICAgIGlmIChfZGF0
YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQogICAgICAgICByZXR1cm47CiAKICAg
ICBMT0coVGV4dElucHV0LCAia2V5VXA6JXAgJUAiLCB0aGVFdmVudCwgdGhlRXZlbnQpOwpAQCAt
MTg0Niw3ICsxNjY4LDcgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1
dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKIAogLSAodm9pZClrZXlE
b3duOihOU0V2ZW50ICopdGhlRXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hl
ZWxFdmVudHMpCisgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkp
CiAgICAgICAgIHJldHVybjsKIAogICAgIExPRyhUZXh0SW5wdXQsICJrZXlEb3duOiVwICVAJXMi
LCB0aGVFdmVudCwgdGhlRXZlbnQsICh0aGVFdmVudCA9PSBfZGF0YS0+X2tleURvd25FdmVudEJl
aW5nUmVzZW50KSA/ICIgKHJlLXNlbnQpIiA6ICIiKTsKQEAgLTE4NzMsNyArMTY5NSw3IEBAIHN0
YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBW
ZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKIC0gKHZvaWQpZmxhZ3NDaGFuZ2VkOihOU0V2ZW50ICop
dGhlRXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAg
aWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIExPRyhUZXh0SW5wdXQsICJmbGFnc0NoYW5nZWQ6JXAgJUAiLCB0aGVFdmVudCwg
dGhlRXZlbnQpOwpAQCAtMjIzNiw3ICsyMDU4LDcgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVy
bGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUK
IAogLSAoQk9PTClwZXJmb3JtS2V5RXF1aXZhbGVudDooTlNFdmVudCAqKWV2ZW50CiB7Ci0gICAg
aWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRzKQorICAgIGlmIChfZGF0YS0+X2ltcGwt
Pmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQogICAgICAgICByZXR1cm4gTk87CiAKICAgICAvLyBU
aGVyZSdzIGEgY2hhbmNlIHRoYXQgcmVzcG9uZGluZyB0byB0aGlzIGV2ZW50IHdpbGwgcnVuIGEg
bmVzdGVkIGV2ZW50IGxvb3AsIGFuZApAQCAtMjI3Niw3ICsyMDk4LDcgQEAgc3RhdGljIHZvaWQg
ZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21w
b3NpdGlvblVuZGUKIAogLSAodm9pZClrZXlVcDooTlNFdmVudCAqKXRoZUV2ZW50CiB7Ci0gICAg
aWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRzKQorICAgIGlmIChfZGF0YS0+X2ltcGwt
Pmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQogICAgICAgICByZXR1cm47CiAKICAgICBMT0coVGV4
dElucHV0LCAia2V5VXA6JXAgJUAiLCB0aGVFdmVudCwgdGhlRXZlbnQpOwpAQCAtMjI4Niw3ICsy
MTA4LDcgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5n
ICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKIAogLSAodm9pZClrZXlEb3duOihOU0V2
ZW50ICopdGhlRXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMp
CisgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIExPRyhUZXh0SW5wdXQsICJrZXlEb3duOiVwICVAJXMiLCB0aGVFdmVu
dCwgdGhlRXZlbnQsICh0aGVFdmVudCA9PSBfZGF0YS0+X2tleURvd25FdmVudEJlaW5nUmVzZW50
KSA/ICIgKHJlLXNlbnQpIiA6ICIiKTsKQEAgLTIzMjQsNyArMjE0Niw3IEBAIHN0YXRpYyB2b2lk
IGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29t
cG9zaXRpb25VbmRlCiAKIC0gKHZvaWQpZmxhZ3NDaGFuZ2VkOihOU0V2ZW50ICopdGhlRXZlbnQK
IHsKLSAgICBpZiAoX2RhdGEtPl9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAgaWYgKF9kYXRh
LT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCiAgICAgICAgIHJldHVybjsKIAogICAg
IExPRyhUZXh0SW5wdXQsICJmbGFnc0NoYW5nZWQ6JXAgJUAiLCB0aGVFdmVudCwgdGhlRXZlbnQp
OwpAQCAtMjM1MCw2ICsyMTcyLDExIEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5T
QXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAgICAgcmV0
dXJuIFtzdXBlciBpbnB1dENvbnRleHRdOwogfQogCistICh2b2lkKV9zdXBlclF1aWNrTG9va1dp
dGhFdmVudDooTlNFdmVudCAqKWV2ZW50Cit7CisgICAgW3N1cGVyIHF1aWNrTG9va1dpdGhFdmVu
dDpldmVudF07Cit9CisKIC0gKE5TQXJyYXkgKil2YWxpZEF0dHJpYnV0ZXNGb3JNYXJrZWRUZXh0
CiB7CiAgICAgc3RhdGljIE5TQXJyYXkgKnZhbGlkQXR0cmlidXRlczsKQEAgLTI1MjQsMjE5ICsy
MzUxLDE5IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZVNhbmRib3hFeHRlbnNpb25zRm9yRmlsZVVwbG9h
ZChOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIFNhbmRiCiAgICAgcmV0dXJuIE5TTW91c2VJblJl
Y3QobG9jYWxQb2ludCwgdmlzaWJsZVRodW1iUmVjdCwgW3NlbGYgaXNGbGlwcGVkXSk7CiB9CiAK
LSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAotc3RhdGljIHZv
aWQqIGtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dCA9ICZrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQ7
Ci0jZW5kaWYKLQotLSAodm9pZClhZGRXaW5kb3dPYnNlcnZlcnNGb3JXaW5kb3c6KE5TV2luZG93
ICopd2luZG93Ci17Ci0gICAgaWYgKHdpbmRvdykgewotICAgICAgICBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9y
KF93aW5kb3dEaWRCZWNvbWVLZXk6KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkQmVjb21lS2V5Tm90aWZpY2F0aW9u
IG9iamVjdDpuaWxdOwotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50
ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRSZXNpZ25L
ZXk6KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBuYW1lOk5TV2luZG93RGlkUmVzaWduS2V5Tm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwotICAg
ICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNl
bGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRNaW5pYXR1cml6ZTopIAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOk5TV2luZG93
RGlkTWluaWF0dXJpemVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Ci0gICAgICAgIFtbTlNO
b3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3Rv
cjpAc2VsZWN0b3IoX3dpbmRvd0RpZERlbWluaWF0dXJpemU6KQotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkRGVtaW5p
YXR1cml6ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKLSAgICAgICAgW1tOU05vdGlmaWNh
dGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxl
Y3Rvcihfd2luZG93RGlkTW92ZTopCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG5hbWU6TlNXaW5kb3dEaWRNb3ZlTm90aWZpY2F0aW9uIG9iamVj
dDp3aW5kb3ddOwotICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJd
IGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRSZXNpemU6KSAK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbmFt
ZTpOU1dpbmRvd0RpZFJlc2l6ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKLSAgICAgICAg
W1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNl
bGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXM6KQotICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuYW1lOk5T
V2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXNOb3RpZmljYXRpb24gb2JqZWN0OndpbmRv
d107Ci0gICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2Jz
ZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZENoYW5nZVNjcmVlbjopCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6
TlNXaW5kb3dEaWRDaGFuZ2VTY3JlZW5Ob3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Ci0gICAg
ICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2JzZXJ2ZXI6c2Vs
ZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZENoYW5nZUxheWVySG9zdGluZzopCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6QCJf
TlNXaW5kb3dEaWRDaGFuZ2VDb250ZW50c0hvc3RlZEluTGF5ZXJTdXJmYWNlTm90aWZpY2F0aW9u
IiBvYmplY3Q6d2luZG93XTsKLSAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0
Q2VudGVyXSBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkQ2hh
bmdlT2NjbHVzaW9uU3RhdGU6KQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBuYW1lOk5TV2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3RhdGVOb3Rp
ZmljYXRpb24gb2JqZWN0OndpbmRvd107Ci0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDEwMDAKLSAgICAgICAgW3dpbmRvdyBhZGRPYnNlcnZlcjpzZWxmIGZvcktleVBh
dGg6QCJjb250ZW50TGF5b3V0UmVjdCIgb3B0aW9uczpOU0tleVZhbHVlT2JzZXJ2aW5nT3B0aW9u
SW5pdGlhbCBjb250ZXh0OmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dF07Ci0gICAgICAgIFt3aW5k
b3cgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidGl0bGViYXJBcHBlYXJzVHJhbnNwYXJl
bnQiIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbkluaXRpYWwgY29udGV4dDprZXlW
YWx1ZU9ic2VydmluZ0NvbnRleHRdOwotI2VuZGlmCi0gICAgICAgIFtfZGF0YS0+X3dpbmRvd1Zp
c2liaWxpdHlPYnNlcnZlciBzdGFydE9ic2VydmluZzp3aW5kb3ddOwotICAgIH0KLX0KLQogLSAo
dm9pZClfYWRkRm9udFBhbmVsT2JzZXJ2ZXIKIHsKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTAwMAotICAgIFtbTlNGb250UGFuZWwgc2hhcmVkRm9udFBhbmVsXSBh
ZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJ2aXNpYmxlIiBvcHRpb25zOjAgY29udGV4dDpr
ZXlWYWx1ZU9ic2VydmluZ0NvbnRleHRdOwotI2VuZGlmCi19Ci0KLS0gKHZvaWQpcmVtb3ZlV2lu
ZG93T2JzZXJ2ZXJzCi17Ci0gICAgTlNXaW5kb3cgKndpbmRvdyA9IF9kYXRhLT5fdGFyZ2V0V2lu
ZG93Rm9yTW92ZVByZXBhcmF0aW9uID8gX2RhdGEtPl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFy
YXRpb24gOiBbc2VsZiB3aW5kb3ddOwotICAgIGlmICghd2luZG93KQotICAgICAgICByZXR1cm47
Ci0KLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2Vy
dmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZEJlY29tZUtleU5vdGlmaWNhdGlvbiBvYmplY3Q6bmls
XTsKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2Vy
dmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZFJlc2lnbktleU5vdGlmaWNhdGlvbiBvYmplY3Q6bmls
XTsKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2Vy
dmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZE1pbmlhdHVyaXplTm90aWZpY2F0aW9uIG9iamVjdDp3
aW5kb3ddOwotICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3Zl
T2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkRGVtaW5pYXR1cml6ZU5vdGlmaWNhdGlvbiBv
YmplY3Q6d2luZG93XTsKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJd
IHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZE1vdmVOb3RpZmljYXRpb24gb2Jq
ZWN0OndpbmRvd107Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBy
ZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRSZXNpemVOb3RpZmljYXRpb24gb2Jq
ZWN0OndpbmRvd107Ci0gICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSBy
ZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGll
c05vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKLSAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVy
IGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZENoYW5n
ZVNjcmVlbk5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKLSAgICBbW05TTm90aWZpY2F0aW9u
Q2VudGVyIGRlZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpAIl9OU1dpbmRv
d0RpZENoYW5nZUNvbnRlbnRzSG9zdGVkSW5MYXllclN1cmZhY2VOb3RpZmljYXRpb24iIG9iamVj
dDp3aW5kb3ddOwotICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVt
b3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3RhdGVOb3Rp
ZmljYXRpb24gb2JqZWN0OndpbmRvd107Ci0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDEwMDAKLSAgICBpZiAoX2RhdGEtPl9wYWdlLT5pc0VkaXRhYmxlKCkpCi0gICAg
ICAgIFtbTlNGb250UGFuZWwgc2hhcmVkRm9udFBhbmVsXSByZW1vdmVPYnNlcnZlcjpzZWxmIGZv
cktleVBhdGg6QCJ2aXNpYmxlIiBjb250ZXh0OmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dF07Ci0g
ICAgW3dpbmRvdyByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJjb250ZW50TGF5b3V0
UmVjdCIgY29udGV4dDprZXlWYWx1ZU9ic2VydmluZ0NvbnRleHRdOwotICAgIFt3aW5kb3cgcmVt
b3ZlT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidGl0bGViYXJBcHBlYXJzVHJhbnNwYXJlbnQi
IGNvbnRleHQ6a2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0XTsKLSNlbmRpZgotICAgIFtfZGF0YS0+
X3dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBzdG9wT2JzZXJ2aW5nOndpbmRvd107CisgICAgX2Rh
dGEtPl9pbXBsLT5zdGFydE9ic2VydmluZ0ZvbnRQYW5lbCgpOwogfQogCiAtICh2b2lkKXZpZXdX
aWxsTW92ZVRvV2luZG93OihOU1dpbmRvdyAqKXdpbmRvdwogewotICAgIC8vIElmIHdlJ3JlIGlu
IHRoZSBtaWRkbGUgb2YgcHJlcGFyaW5nIHRvIG1vdmUgdG8gYSB3aW5kb3csIHdlIHNob3VsZCBv
bmx5IGJlIG1vdmVkIHRvIHRoYXQgd2luZG93LgotICAgIEFTU0VSVCghX2RhdGEtPl90YXJnZXRX
aW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gfHwgKF9kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVBy
ZXBhcmF0aW9uID09IHdpbmRvdykpOwotCi0gICAgTlNXaW5kb3cgKmN1cnJlbnRXaW5kb3cgPSBb
c2VsZiB3aW5kb3ddOwotICAgIGlmICh3aW5kb3cgPT0gY3VycmVudFdpbmRvdykKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgX2RhdGEtPl9wYWdlQ2xpZW50LT52aWV3V2lsbE1vdmVUb0Fub3RoZXJX
aW5kb3coKTsKLSAgICAKLSAgICBbc2VsZiByZW1vdmVXaW5kb3dPYnNlcnZlcnNdOwotICAgIFtz
ZWxmIGFkZFdpbmRvd09ic2VydmVyc0ZvcldpbmRvdzp3aW5kb3ddOworICAgIF9kYXRhLT5faW1w
bC0+dmlld1dpbGxNb3ZlVG9XaW5kb3cod2luZG93KTsKIH0KIAogLSAodm9pZCl2aWV3RGlkTW92
ZVRvV2luZG93CiB7Ci0gICAgTlNXaW5kb3cgKndpbmRvdyA9IF9kYXRhLT5fdGFyZ2V0V2luZG93
Rm9yTW92ZVByZXBhcmF0aW9uID8gX2RhdGEtPl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRp
b24gOiBzZWxmLndpbmRvdzsKLQotICAgIGlmICh3aW5kb3cpIHsKLSAgICAgICAgW3NlbGYgZG9X
aW5kb3dEaWRDaGFuZ2VTY3JlZW5dOwotCi0gICAgICAgIFZpZXdTdGF0ZTo6RmxhZ3Mgdmlld1N0
YXRlQ2hhbmdlcyA9IFZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUgfCBWaWV3U3RhdGU6OklzVmlz
aWJsZTsKLSAgICAgICAgaWYgKFtzZWxmIGlzRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlc10p
Ci0gICAgICAgICAgICBfZGF0YS0+X3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVkID0gWUVT
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB2aWV3U3RhdGVDaGFuZ2VzIHw9IFZpZXdTdGF0
ZTo6SXNJbldpbmRvdzsKLSAgICAgICAgX2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2Uo
dmlld1N0YXRlQ2hhbmdlcyk7Ci0KLSAgICAgICAgW3NlbGYgX3VwZGF0ZVdpbmRvd0FuZFZpZXdG
cmFtZXNdOwotCi0gICAgICAgIC8vIEZJWE1FKDEzNTUwOSkgVGhpcyBjYWxsIGJlY29tZXMgdW5u
ZWNlc3Nhcnkgb25jZSAxMzU1MDkgaXMgZml4ZWQ7IHJlbW92ZS4KLSAgICAgICAgX2RhdGEtPl9w
YWdlLT5sYXllckhvc3RpbmdNb2RlRGlkQ2hhbmdlKCk7Ci0KLSAgICAgICAgaWYgKCFfZGF0YS0+
X2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvcikgewotICAgICAgICAgICAgX2RhdGEtPl9mbGFnc0No
YW5nZWRFdmVudE1vbml0b3IgPSBbTlNFdmVudCBhZGRMb2NhbE1vbml0b3JGb3JFdmVudHNNYXRj
aGluZ01hc2s6TlNGbGFnc0NoYW5nZWRNYXNrIGhhbmRsZXI6XihOU0V2ZW50ICpmbGFnc0NoYW5n
ZWRFdmVudCkgewotICAgICAgICAgICAgICAgIFtzZWxmIF9wb3N0RmFrZU1vdXNlTW92ZWRFdmVu
dEZvckZsYWdzQ2hhbmdlZEV2ZW50OmZsYWdzQ2hhbmdlZEV2ZW50XTsKLSAgICAgICAgICAgICAg
ICByZXR1cm4gZmxhZ3NDaGFuZ2VkRXZlbnQ7Ci0gICAgICAgICAgICB9XTsKLSAgICAgICAgfQot
Ci0gICAgICAgIFtzZWxmIF9hY2Nlc3NpYmlsaXR5UmVnaXN0ZXJVSVByb2Nlc3NUb2tlbnNdOwot
Ci0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICAgICAg
aWYgKF9kYXRhLT5faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgJiYgIVtbc2VsZiBn
ZXN0dXJlUmVjb2duaXplcnNdIGNvbnRhaW5zT2JqZWN0Ol9kYXRhLT5faW1tZWRpYXRlQWN0aW9u
R2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldICYmICFfZGF0YS0+X2lnbm9yZXNOb25XaGVlbEV2ZW50
cyAmJiBfZGF0YS0+X2FsbG93c0xpbmtQcmV2aWV3KQotICAgICAgICAgICAgW3NlbGYgYWRkR2Vz
dHVyZVJlY29nbml6ZXI6X2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5n
ZXQoKV07Ci0jZW5kaWYKLSAgICB9IGVsc2UgewotICAgICAgICBWaWV3U3RhdGU6OkZsYWdzIHZp
ZXdTdGF0ZUNoYW5nZXMgPSBWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlIHwgVmlld1N0YXRlOjpJ
c1Zpc2libGU7Ci0gICAgICAgIGlmIChbc2VsZiBpc0RlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5n
ZXNdKQotICAgICAgICAgICAgX2RhdGEtPl92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9
IFlFUzsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgdmlld1N0YXRlQ2hhbmdlcyB8PSBWaWV3
U3RhdGU6OklzSW5XaW5kb3c7Ci0gICAgICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hh
bmdlKHZpZXdTdGF0ZUNoYW5nZXMpOwotCi0gICAgICAgIFtOU0V2ZW50IHJlbW92ZU1vbml0b3I6
X2RhdGEtPl9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3JdOwotICAgICAgICBfZGF0YS0+X2ZsYWdz
Q2hhbmdlZEV2ZW50TW9uaXRvciA9IG5pbDsKLQotICAgICAgICBbc2VsZiBfZGlzbWlzc0NvbnRl
bnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb246Tk9dOwotCi0jaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICAgICAgaWYgKF9kYXRhLT5faW1t
ZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIpCi0gICAgICAgICAgICBbc2VsZiByZW1vdmVH
ZXN0dXJlUmVjb2duaXplcjpfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
LmdldCgpXTsKLSNlbmRpZgotICAgIH0KLQotICAgIF9kYXRhLT5fcGFnZS0+c2V0SW50cmluc2lj
RGV2aWNlU2NhbGVGYWN0b3IoW3NlbGYgX2ludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yXSk7Ci19
Ci0KLS0gKHZvaWQpZG9XaW5kb3dEaWRDaGFuZ2VTY3JlZW4KLXsKLSAgICBOU1dpbmRvdyAqd2lu
ZG93ID0gX2RhdGEtPl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gPyBfZGF0YS0+X3Rh
cmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA6IHNlbGYud2luZG93OwotICAgIF9kYXRhLT5f
cGFnZS0+d2luZG93U2NyZWVuRGlkQ2hhbmdlKChQbGF0Zm9ybURpc3BsYXlJRClbW1tbd2luZG93
IHNjcmVlbl0gZGV2aWNlRGVzY3JpcHRpb25dIG9iamVjdEZvcktleTpAIk5TU2NyZWVuTnVtYmVy
Il0gaW50VmFsdWVdKTsKLX0KLQotLSAodm9pZClfd2luZG93RGlkQmVjb21lS2V5OihOU05vdGlm
aWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIE5TV2luZG93ICprZXlXaW5kb3cgPSBbbm90
aWZpY2F0aW9uIG9iamVjdF07Ci0gICAgaWYgKGtleVdpbmRvdyA9PSBbc2VsZiB3aW5kb3ddIHx8
IGtleVdpbmRvdyA9PSBbW3NlbGYgd2luZG93XSBhdHRhY2hlZFNoZWV0XSkgewotICAgICAgICBf
ZGF0YS0+X2ltcGwtPnVwZGF0ZVNlY3VyZUlucHV0U3RhdGUoKTsKLSAgICAgICAgX2RhdGEtPl9w
YWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpXaW5kb3dJc0FjdGl2ZSk7Ci0gICAg
fQotfQotCi0tICh2b2lkKV93aW5kb3dEaWRDaGFuZ2VTY3JlZW46KE5TTm90aWZpY2F0aW9uICop
bm90aWZpY2F0aW9uCi17Ci0gICAgW3NlbGYgZG9XaW5kb3dEaWRDaGFuZ2VTY3JlZW5dOwotfQot
Ci0tICh2b2lkKV93aW5kb3dEaWRDaGFuZ2VMYXllckhvc3Rpbmc6KE5TTm90aWZpY2F0aW9uICop
bm90aWZpY2F0aW9uCi17Ci0gICAgX2RhdGEtPl9wYWdlLT5sYXllckhvc3RpbmdNb2RlRGlkQ2hh
bmdlKCk7Ci19Ci0KLS0gKHZvaWQpX3dpbmRvd0RpZFJlc2lnbktleTooTlNOb3RpZmljYXRpb24g
Kilub3RpZmljYXRpb24KLXsKLSAgICBOU1dpbmRvdyAqZm9ybWVyS2V5V2luZG93ID0gW25vdGlm
aWNhdGlvbiBvYmplY3RdOwotICAgIGlmIChmb3JtZXJLZXlXaW5kb3cgPT0gW3NlbGYgd2luZG93
XSB8fCBmb3JtZXJLZXlXaW5kb3cgPT0gW1tzZWxmIHdpbmRvd10gYXR0YWNoZWRTaGVldF0pIHsK
LSAgICAgICAgX2RhdGEtPl9pbXBsLT51cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCk7Ci0gICAgICAg
IF9kYXRhLT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6V2luZG93SXNBY3Rp
dmUpOwotICAgIH0KLX0KLQotLSAodm9pZClfd2luZG93RGlkTWluaWF0dXJpemU6KE5TTm90aWZp
Y2F0aW9uICopbm90aWZpY2F0aW9uCi17Ci0gICAgX2RhdGEtPl9wYWdlLT52aWV3U3RhdGVEaWRD
aGFuZ2UoVmlld1N0YXRlOjpJc1Zpc2libGUpOwotfQotCi0tICh2b2lkKV93aW5kb3dEaWREZW1p
bmlhdHVyaXplOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIF9kYXRhLT5f
cGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsKLX0KLQotLSAo
dm9pZClfd2luZG93RGlkTW92ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KLXsKLSAg
ICBbc2VsZiBfdXBkYXRlV2luZG93QW5kVmlld0ZyYW1lc107ICAgIAotfQotCi0tICh2b2lkKV93
aW5kb3dEaWRSZXNpemU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCi17Ci0gICAgW3Nl
bGYgX3VwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXNdOwotfQotCi0tICh2b2lkKV93aW5kb3dEaWRP
cmRlck9mZlNjcmVlbjooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KLXsKLSAgICBfZGF0
YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OklzVmlzaWJsZSB8IFZpZXdT
dGF0ZTo6V2luZG93SXNBY3RpdmUpOwotfQotCi0tICh2b2lkKV93aW5kb3dEaWRPcmRlck9uU2Ny
ZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIF9kYXRhLT5fcGFnZS0+
dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6SXNWaXNpYmxlIHwgVmlld1N0YXRlOjpXaW5k
b3dJc0FjdGl2ZSk7Ci19Ci0KLS0gKHZvaWQpX3dpbmRvd0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0
aWVzOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgotewotICAgIENHRmxvYXQgb2xkQmFj
a2luZ1NjYWxlRmFjdG9yID0gW1tub3RpZmljYXRpb24udXNlckluZm8gb2JqZWN0Rm9yS2V5Ok5T
QmFja2luZ1Byb3BlcnR5T2xkU2NhbGVGYWN0b3JLZXldIGRvdWJsZVZhbHVlXTsKLSAgICBDR0Zs
b2F0IG5ld0JhY2tpbmdTY2FsZUZhY3RvciA9IFtzZWxmIF9pbnRyaW5zaWNEZXZpY2VTY2FsZUZh
Y3Rvcl07IAotICAgIGlmIChvbGRCYWNraW5nU2NhbGVGYWN0b3IgPT0gbmV3QmFja2luZ1NjYWxl
RmFjdG9yKQotICAgICAgICByZXR1cm47IAotCi0gICAgX2RhdGEtPl9wYWdlLT5zZXRJbnRyaW5z
aWNEZXZpY2VTY2FsZUZhY3RvcihuZXdCYWNraW5nU2NhbGVGYWN0b3IpOwotfQotCi0tICh2b2lk
KV93aW5kb3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0ZTooTlNOb3RpZmljYXRpb24gKilub3RpZmlj
YXRpb24KLXsKLSAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6
OklzVmlzaWJsZSk7CisgICAgX2RhdGEtPl9pbXBsLT52aWV3RGlkTW92ZVRvV2luZG93KCk7CiB9
CiAKIC0gKHZvaWQpZHJhd1JlY3Q6KE5TUmVjdClyZWN0CkBAIC0yNzY5LDEzICsyMzk2LDcgQEAg
c3RhdGljIHZvaWQqIGtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dCA9ICZrZXlWYWx1ZU9ic2Vydmlu
Z0NvbnRleHQ7CiAKIC0gKHZvaWQpdmlld0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzCiB7Ci0g
ICAgTlNDb2xvclNwYWNlICpjb2xvclNwYWNlID0gW1tzZWxmIHdpbmRvd10gY29sb3JTcGFjZV07
Ci0gICAgaWYgKFtjb2xvclNwYWNlIGlzRXF1YWxUbzpfZGF0YS0+X2NvbG9yU3BhY2UuZ2V0KCld
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBfZGF0YS0+X2NvbG9yU3BhY2UgPSBudWxscHRyOwot
ICAgIGlmIChEcmF3aW5nQXJlYVByb3h5ICpkcmF3aW5nQXJlYSA9IF9kYXRhLT5fcGFnZS0+ZHJh
d2luZ0FyZWEoKSkKLSAgICAgICAgZHJhd2luZ0FyZWEtPmNvbG9yU3BhY2VEaWRDaGFuZ2UoKTsK
KyAgICBfZGF0YS0+X2ltcGwtPnZpZXdEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllcygpOwogfQog
CiAtICh2b2lkKV9hY3RpdmVTcGFjZURpZENoYW5nZTooTlNOb3RpZmljYXRpb24gKilub3RpZmlj
YXRpb24KQEAgLTI3ODMsMzIgKzI0MDQsNiBAQCBzdGF0aWMgdm9pZCoga2V5VmFsdWVPYnNlcnZp
bmdDb250ZXh0ID0gJmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dDsKICAgICBfZGF0YS0+X3BhZ2Ut
PnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OklzVmlzaWJsZSk7CiB9CiAKLS0gKHZvaWQp
X3ByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwCi17Ci0gICAgaWYgKF9kYXRhLT5fZGlkUmVnaXN0
ZXJGb3JMb29rdXBQb3BvdmVyQ2xvc2VOb3RpZmljYXRpb25zKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBfZGF0YS0+X2RpZFJlZ2lzdGVyRm9yTG9va3VwUG9wb3ZlckNsb3NlTm90aWZpY2F0aW9u
cyA9IFlFUzsKLQotICAgIGlmIChjYW5Mb2FkTFVOb3RpZmljYXRpb25Qb3BvdmVyV2lsbENsb3Nl
KCkpCi0gICAgICAgIFtbTlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gYWRkT2Jz
ZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2RpY3Rpb25hcnlMb29rdXBQb3BvdmVyV2ls
bENsb3NlOikgbmFtZTpnZXRMVU5vdGlmaWNhdGlvblBvcG92ZXJXaWxsQ2xvc2UoKSBvYmplY3Q6
bmlsXTsKLX0KLQotLSAodm9pZClfZGljdGlvbmFyeUxvb2t1cFBvcG92ZXJXaWxsQ2xvc2U6KE5T
Tm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCi17Ci0gICAgW3NlbGYgX2NsZWFyVGV4dEluZGlj
YXRvcldpdGhBbmltYXRpb246VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6
Tm9uZV07Ci19Ci0KLS0gKHZvaWQpX2FjY2Vzc2liaWxpdHlSZWdpc3RlclVJUHJvY2Vzc1Rva2Vu
cwotewotICAgIC8vIEluaXRpYWxpemUgcmVtb3RlIGFjY2Vzc2liaWxpdHkgd2hlbiB0aGUgd2lu
ZG93IGNvbm5lY3Rpb24gaGFzIGJlZW4gZXN0YWJsaXNoZWQuCi0gICAgTlNEYXRhICpyZW1vdGVF
bGVtZW50VG9rZW4gPSBXS0FYUmVtb3RlVG9rZW5Gb3JFbGVtZW50KHNlbGYpOwotICAgIE5TRGF0
YSAqcmVtb3RlV2luZG93VG9rZW4gPSBXS0FYUmVtb3RlVG9rZW5Gb3JFbGVtZW50KFtzZWxmIHdp
bmRvd10pOwotICAgIElQQzo6RGF0YVJlZmVyZW5jZSBlbGVtZW50VG9rZW4gPSBJUEM6OkRhdGFS
ZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oW3JlbW90ZUVsZW1lbnRU
b2tlbiBieXRlc10pLCBbcmVtb3RlRWxlbWVudFRva2VuIGxlbmd0aF0pOwotICAgIElQQzo6RGF0
YVJlZmVyZW5jZSB3aW5kb3dUb2tlbiA9IElQQzo6RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9j
YXN0PGNvbnN0IHVpbnQ4X3QqPihbcmVtb3RlV2luZG93VG9rZW4gYnl0ZXNdKSwgW3JlbW90ZVdp
bmRvd1Rva2VuIGxlbmd0aF0pOwotICAgIF9kYXRhLT5fcGFnZS0+cmVnaXN0ZXJVSVByb2Nlc3NB
Y2Nlc3NpYmlsaXR5VG9rZW5zKGVsZW1lbnRUb2tlbiwgd2luZG93VG9rZW4pOwotfQotCiAtICh2
b2lkKV91cGRhdGVSZW1vdGVBY2Nlc3NpYmlsaXR5UmVnaXN0cmF0aW9uOihCT09MKXJlZ2lzdGVy
UHJvY2VzcwogewogICAgIC8vIFdoZW4gdGhlIHRyZWUgaXMgY29ubmVjdGVkL2Rpc2Nvbm5lY3Rl
ZCwgdGhlIHJlbW90ZSBhY2Nlc3NpYmlsaXR5IHJlZ2lzdHJhdGlvbgpAQCAtMjgzMyw3ICsyNDI4
LDcgQEAgc3RhdGljIHZvaWQqIGtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dCA9ICZrZXlWYWx1ZU9i
c2VydmluZ0NvbnRleHQ7CiAgICAgLy8gQWZ0ZXIgZW5hYmxpbmcgYWNjZXNzaWJpbGl0eSB1cGRh
dGUgdGhlIHdpbmRvdyBmcmFtZSBvbiB0aGUgd2ViIHByb2Nlc3Mgc28gdGhhdCB0aGUKICAgICAv
LyBjb3JyZWN0IGFjY2Vzc2liaWxpdHkgcG9zaXRpb24gaXMgdHJhbnNtaXR0ZWQgKHdoZW4gQVgg
aXMgb2ZmLCB0aGF0IHBvc2l0aW9uIGlzIG5vdCBjYWxjdWxhdGVkKS4KICAgICBXZWJDb3JlOjpB
WE9iamVjdENhY2hlOjplbmFibGVBY2Nlc3NpYmlsaXR5KCk7Ci0gICAgW3NlbGYgX3VwZGF0ZVdp
bmRvd0FuZFZpZXdGcmFtZXNdOworICAgIF9kYXRhLT5faW1wbC0+dXBkYXRlV2luZG93QW5kVmll
d0ZyYW1lcygpOwogfQogCiAtIChpZClhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudApAQCAt
Mjg4OCw0NSArMjQ4MywxNCBAQCBzdGF0aWMgdm9pZCoga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0
ID0gJmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dDsKICAgICByZXR1cm4gaGl0VmlldzsKIH0KIAot
LSAodm9pZClfcG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudDooTlNF
dmVudCAqKWZsYWdzQ2hhbmdlZEV2ZW50Ci17Ci0gICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05T
RXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZCBsb2NhdGlvbjpbW2ZsYWdzQ2hh
bmdlZEV2ZW50IHdpbmRvd10gbW91c2VMb2NhdGlvbk91dHNpZGVPZkV2ZW50U3RyZWFtXQotICAg
ICAgICBtb2RpZmllckZsYWdzOltmbGFnc0NoYW5nZWRFdmVudCBtb2RpZmllckZsYWdzXSB0aW1l
c3RhbXA6W2ZsYWdzQ2hhbmdlZEV2ZW50IHRpbWVzdGFtcF0gd2luZG93TnVtYmVyOltmbGFnc0No
YW5nZWRFdmVudCB3aW5kb3dOdW1iZXJdCi0gICAgICAgIGNvbnRleHQ6W2ZsYWdzQ2hhbmdlZEV2
ZW50IGNvbnRleHRdIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwotICAg
IE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQoZmFrZUV2ZW50LCBfZGF0YS0+X3ByZXNzdXJl
RXZlbnQsIHNlbGYpOwotICAgIF9kYXRhLT5fcGFnZS0+aGFuZGxlTW91c2VFdmVudCh3ZWJFdmVu
dCk7Ci19Ci0KIC0gKE5TSW50ZWdlciljb252ZXJzYXRpb25JZGVudGlmaWVyCiB7CiAgICAgcmV0
dXJuIChOU0ludGVnZXIpc2VsZjsKIH0KIAotLSAoZmxvYXQpX2ludHJpbnNpY0RldmljZVNjYWxl
RmFjdG9yCi17Ci0gICAgaWYgKF9kYXRhLT5fb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcikKLSAg
ICAgICAgcmV0dXJuIF9kYXRhLT5fb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjsKLSAgICBpZiAo
X2RhdGEtPl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24pCi0gICAgICAgIHJldHVybiBb
X2RhdGEtPl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gYmFja2luZ1NjYWxlRmFjdG9y
XTsKLSAgICBpZiAoTlNXaW5kb3cgKndpbmRvdyA9IFtzZWxmIHdpbmRvd10pCi0gICAgICAgIHJl
dHVybiBbd2luZG93IGJhY2tpbmdTY2FsZUZhY3Rvcl07Ci0gICAgcmV0dXJuIFtbTlNTY3JlZW4g
bWFpblNjcmVlbl0gYmFja2luZ1NjYWxlRmFjdG9yXTsKLX0KLQogLSAodm9pZClxdWlja0xvb2tX
aXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAogewotICAgIGlmIChfZGF0YS0+X2lnbm9yZXNOb25X
aGVlbEV2ZW50cykKLSAgICAgICAgcmV0dXJuOwotCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICBpZiAoX2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25HZXN0
dXJlUmVjb2duaXplcikgewotICAgICAgICBbc3VwZXIgcXVpY2tMb29rV2l0aEV2ZW50OmV2ZW50
XTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZgotCi0gICAgTlNQb2ludCBsb2NhdGlv
bkluVmlld0Nvb3JkaW5hdGVzID0gW3NlbGYgY29udmVydFBvaW50OltldmVudCBsb2NhdGlvbklu
V2luZG93XSBmcm9tVmlldzpuaWxdOwotICAgIF9kYXRhLT5fcGFnZS0+cGVyZm9ybURpY3Rpb25h
cnlMb29rdXBBdExvY2F0aW9uKEZsb2F0UG9pbnQobG9jYXRpb25JblZpZXdDb29yZGluYXRlcy54
LCBsb2NhdGlvbkluVmlld0Nvb3JkaW5hdGVzLnkpKTsKKyAgICBfZGF0YS0+X2ltcGwtPnF1aWNr
TG9va1dpdGhFdmVudChldmVudCk7CiB9CiAKIC0gKHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OkRy
YXdpbmdBcmVhUHJveHk+KV9jcmVhdGVEcmF3aW5nQXJlYVByb3h5CkBAIC0yOTM5LDE5ICsyNTAz
LDcgQEAgc3RhdGljIHZvaWQqIGtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dCA9ICZrZXlWYWx1ZU9i
c2VydmluZ0NvbnRleHQ7CiAKIC0gKFdlYktpdDo6Q29sb3JTcGFjZURhdGEpX2NvbG9yU3BhY2UK
IHsKLSAgICBpZiAoIV9kYXRhLT5fY29sb3JTcGFjZSkgewotICAgICAgICBpZiAoX2RhdGEtPl90
YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24pCi0gICAgICAgICAgICBfZGF0YS0+X2NvbG9y
U3BhY2UgPSBbX2RhdGEtPl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gY29sb3JTcGFj
ZV07Ci0gICAgICAgIGVsc2UgaWYgKE5TV2luZG93ICp3aW5kb3cgPSBbc2VsZiB3aW5kb3ddKQot
ICAgICAgICAgICAgX2RhdGEtPl9jb2xvclNwYWNlID0gW3dpbmRvdyBjb2xvclNwYWNlXTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgX2RhdGEtPl9jb2xvclNwYWNlID0gW1tOU1NjcmVlbiBt
YWluU2NyZWVuXSBjb2xvclNwYWNlXTsKLSAgICB9Ci0gICAgICAgIAotICAgIENvbG9yU3BhY2VE
YXRhIGNvbG9yU3BhY2VEYXRhOwotICAgIGNvbG9yU3BhY2VEYXRhLmNnQ29sb3JTcGFjZSA9IFtf
ZGF0YS0+X2NvbG9yU3BhY2UgQ0dDb2xvclNwYWNlXTsKLQotICAgIHJldHVybiBjb2xvclNwYWNl
RGF0YTsgICAgCisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+Y29sb3JTcGFjZSgpOwogfQogCiAt
ICh2b2lkKV9wcm9jZXNzRGlkRXhpdApAQCAtMjk3MywxOSArMjUyNSw3IEBAIHN0YXRpYyB2b2lk
KiBrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQgPSAma2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0Owog
CiAtICh2b2lkKV9kaWRSZWxhdW5jaFByb2Nlc3MKIHsKLSAgICBbc2VsZiBfYWNjZXNzaWJpbGl0
eVJlZ2lzdGVyVUlQcm9jZXNzVG9rZW5zXTsKLX0KLQotLSAodm9pZClfcHJlZmVyZW5jZXNEaWRD
aGFuZ2UKLXsKLSAgICBCT09MIG5lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9IF9k
YXRhLT5fcGFnZS0+cHJlZmVyZW5jZXMoKS5wbHVnaW5zRW5hYmxlZCgpOwotCi0gICAgaWYgKCEh
bmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzID09ICEhX2RhdGEtPl9uZWVkc1ZpZXdG
cmFtZUluV2luZG93Q29vcmRpbmF0ZXMpCi0gICAgICAgIHJldHVybjsKLQotICAgIF9kYXRhLT5f
bmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzID0gbmVlZHNWaWV3RnJhbWVJbldpbmRv
d0Nvb3JkaW5hdGVzOwotICAgIGlmIChbc2VsZiB3aW5kb3ddKQotICAgICAgICBbc2VsZiBfdXBk
YXRlV2luZG93QW5kVmlld0ZyYW1lc107CisgICAgX2RhdGEtPl9pbXBsLT5hY2Nlc3NpYmlsaXR5
UmVnaXN0ZXJVSVByb2Nlc3NUb2tlbnMoKTsKIH0KIAogLSAodm9pZClfc2V0VXNlckludGVyZmFj
ZUl0ZW1TdGF0ZTooTlNTdHJpbmcgKiljb21tYW5kTmFtZSBlbmFibGVkOihCT09MKWlzRW5hYmxl
ZCBzdGF0ZTooaW50KW5ld1N0YXRlCkBAIC0zMTY0LDMzICsyNzA0LDYgQEAgc3RhdGljIHZvaWQq
IGtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dCA9ICZrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQ7CiAg
ICAgfQogfQogCi0tICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihUZXh0SW5kaWNhdG9yJil0ZXh0
SW5kaWNhdG9yCi17Ci0gICAgW3NlbGYgX3NldFRleHRJbmRpY2F0b3I6dGV4dEluZGljYXRvciB3
aXRoTGlmZXRpbWU6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnRdOwotfQot
Ci0tICh2b2lkKV9zZXRUZXh0SW5kaWNhdG9yOihUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9y
IHdpdGhMaWZldGltZTooVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lKWxpZmV0aW1lCi17Ci0g
ICAgaWYgKCFfZGF0YS0+X3RleHRJbmRpY2F0b3JXaW5kb3cpCi0gICAgICAgIF9kYXRhLT5fdGV4
dEluZGljYXRvcldpbmRvdyA9IHN0ZDo6bWFrZV91bmlxdWU8VGV4dEluZGljYXRvcldpbmRvdz4o
c2VsZik7Ci0KLSAgICBOU1JlY3QgdGV4dEJvdW5kaW5nUmVjdEluU2NyZWVuQ29vcmRpbmF0ZXMg
PSBbc2VsZi53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpbc2VsZiBjb252ZXJ0UmVjdDp0ZXh0
SW5kaWNhdG9yLnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29vcmRpbmF0ZXMoKSB0b1ZpZXc6
bmlsXV07Ci0gICAgX2RhdGEtPl90ZXh0SW5kaWNhdG9yV2luZG93LT5zZXRUZXh0SW5kaWNhdG9y
KHRleHRJbmRpY2F0b3IsIE5TUmVjdFRvQ0dSZWN0KHRleHRCb3VuZGluZ1JlY3RJblNjcmVlbkNv
b3JkaW5hdGVzKSwgbGlmZXRpbWUpOwotfQotCi0tICh2b2lkKV9jbGVhclRleHRJbmRpY2F0b3JX
aXRoQW5pbWF0aW9uOihUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uKWFuaW1h
dGlvbgotewotICAgIGlmIChfZGF0YS0+X3RleHRJbmRpY2F0b3JXaW5kb3cpCi0gICAgICAgIF9k
YXRhLT5fdGV4dEluZGljYXRvcldpbmRvdy0+Y2xlYXJUZXh0SW5kaWNhdG9yKGFuaW1hdGlvbik7
Ci0gICAgX2RhdGEtPl90ZXh0SW5kaWNhdG9yV2luZG93ID0gbnVsbHB0cjsKLX0KLQotLSAodm9p
ZClfc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOihmbG9hdClwcm9ncmVzcwotewot
ICAgIGlmIChfZGF0YS0+X3RleHRJbmRpY2F0b3JXaW5kb3cpCi0gICAgICAgIF9kYXRhLT5fdGV4
dEluZGljYXRvcldpbmRvdy0+c2V0QW5pbWF0aW9uUHJvZ3Jlc3MocHJvZ3Jlc3MpOwotfQotCiAt
ICh2b2lkKV9zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZVJvb3RMYXllcjooQ0FMYXllciAq
KXJvb3RMYXllcgogewogICAgIFtyb290TGF5ZXIgd2ViX2Rpc2FibGVBbGxBY3Rpb25zXTsKQEAg
LTM1MjIsMTIgKzMwMzUsNiBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5h
bWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAgIHJldHVybiBbTlNBcnJheSBhcnJheVdpdGhP
YmplY3Q6W3BhdGggbGFzdFBhdGhDb21wb25lbnRdXTsKIH0KIAotCi0tIChOU1dpbmRvdyAqKV90
YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24KLXsKLSAgICByZXR1cm4gX2RhdGEtPl90YXJn
ZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb247Ci19Ci0KICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCiAtIChCT09MKV9oYXNGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcgogewpAQCAtMzU1Niwx
MSArMzA2Myw2IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBh
dGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgcmV0dXJuICFbc2luayBkaWRSZWNlaXZlVW5oYW5kbGVk
Q29tbWFuZF07CiB9CiAKLS0gKHZvaWQpX3NldEludHJpbnNpY0NvbnRlbnRTaXplOihOU1NpemUp
aW50cmluc2ljQ29udGVudFNpemUKLXsKLSAgICBfZGF0YS0+X2ltcGwtPnNldEludHJpbnNpY0Nv
bnRlbnRTaXplKE5TU2l6ZVRvQ0dTaXplKGludHJpbnNpY0NvbnRlbnRTaXplKSk7Ci19Ci0KIC0g
KE5TSW50ZWdlcilzcGVsbENoZWNrZXJEb2N1bWVudFRhZwogewogICAgIGlmICghX2RhdGEtPl9o
YXNTcGVsbENoZWNrZXJEb2N1bWVudFRhZykgewpAQCAtMzYyMSwyMyArMzEyMywxNyBAQCBzdGF0
aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRo
KQogICAgIF9kYXRhLT5fcGFnZUNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZUNsaWVudElt
cGw+KHNlbGYsIHdlYlZpZXcpOwogICAgIF9kYXRhLT5fcGFnZSA9IHByb2Nlc3NQb29sLmNyZWF0
ZVdlYlBhZ2UoKl9kYXRhLT5fcGFnZUNsaWVudCwgV1RGOjptb3ZlKGNvbmZpZ3VyYXRpb24pKTsK
IAotICAgIF9kYXRhLT5faW1wbCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViVmlld0ltcGw+KHNlbGYs
ICpfZGF0YS0+X3BhZ2UpOwotICAgIHN0YXRpY19jYXN0PFBhZ2VDbGllbnRJbXBsKj4oX2RhdGEt
Pl9wYWdlQ2xpZW50LmdldCgpKS0+c2V0SW1wbCgqX2RhdGEtPl9pbXBsKTsKKyAgICBfZGF0YS0+
X2ltcGwgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYlZpZXdJbXBsPihzZWxmLCAqX2RhdGEtPl9wYWdl
LCAqX2RhdGEtPl9wYWdlQ2xpZW50KTsKKyAgICBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50SW1wbCY+
KCpfZGF0YS0+X3BhZ2VDbGllbnQpLnNldEltcGwoKl9kYXRhLT5faW1wbCk7CiAKICAgICBfZGF0
YS0+X3BhZ2UtPnNldEFkZHNWaXNpdGVkTGlua3MocHJvY2Vzc1Bvb2wuaGlzdG9yeUNsaWVudCgp
LmFkZHNWaXNpdGVkTGlua3MoKSk7CiAKLSAgICBfZGF0YS0+X3BhZ2UtPnNldEludHJpbnNpY0Rl
dmljZVNjYWxlRmFjdG9yKFtzZWxmIF9pbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3Rvcl0pOwogICAg
IF9kYXRhLT5fcGFnZS0+aW5pdGlhbGl6ZVdlYlBhZ2UoKTsKIAogICAgIF9kYXRhLT5fbW91c2VE
b3duRXZlbnQgPSBuaWw7Ci0gICAgX2RhdGEtPl9wcmVzc3VyZUV2ZW50ID0gbmlsOwogICAgIF9k
YXRhLT5faWdub3JpbmdNb3VzZURyYWdnZWRFdmVudHMgPSBOTzsKICAgICBfZGF0YS0+X3dpbmRv
d09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQgPSBZRVM7CiAKLSAgICBfZGF0YS0+X3dpbmRvd1Zp
c2liaWxpdHlPYnNlcnZlciA9IGFkb3B0TlMoW1tXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciBh
bGxvY10gaW5pdFdpdGhWaWV3OnNlbGZdKTsKLQotICAgIF9kYXRhLT5fbmVlZHNWaWV3RnJhbWVJ
bldpbmRvd0Nvb3JkaW5hdGVzID0gX2RhdGEtPl9wYWdlLT5wcmVmZXJlbmNlcygpLnBsdWdpbnNF
bmFibGVkKCk7Ci0KICAgICBbc2VsZiBfcmVnaXN0ZXJEcmFnZ2VkVHlwZXNdOwogCiAgICAgc2Vs
Zi53YW50c0xheWVyID0gWUVTOwpAQCAtMzY1MCwxNyArMzE0Niw2IEBAIHN0YXRpYyBOU1N0cmlu
ZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgTlNO
b3RpZmljYXRpb25DZW50ZXIqIHdvcmtzcGFjZU5vdGlmaWNhdGlvbkNlbnRlciA9IFtbTlNXb3Jr
c3BhY2Ugc2hhcmVkV29ya3NwYWNlXSBub3RpZmljYXRpb25DZW50ZXJdOwogICAgIFt3b3Jrc3Bh
Y2VOb3RpZmljYXRpb25DZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3Io
X2FjdGl2ZVNwYWNlRGlkQ2hhbmdlOikgbmFtZTpOU1dvcmtzcGFjZUFjdGl2ZVNwYWNlRGlkQ2hh
bmdlTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICBfZGF0YS0+X2FsbG93c0xpbmtQcmV2aWV3ID0gWUVT
OwotCi0gICAgaWYgKENsYXNzIGdlc3R1cmVDbGFzcyA9IE5TQ2xhc3NGcm9tU3RyaW5nKEAiTlNJ
bW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciIpKSB7Ci0gICAgICAgIF9kYXRhLT5faW1t
ZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgPSBhZG9wdE5TKFsoTlNJbW1lZGlhdGVBY3Rp
b25HZXN0dXJlUmVjb2duaXplciAqKVtnZXN0dXJlQ2xhc3MgYWxsb2NdIGluaXRdKTsKLSAgICAg
ICAgX2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyID0gYWRvcHROUyhbW1dLSW1tZWRp
YXRlQWN0aW9uQ29udHJvbGxlciBhbGxvY10gaW5pdFdpdGhQYWdlOipfZGF0YS0+X3BhZ2Ugdmll
dzpzZWxmIHJlY29nbml6ZXI6X2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXpl
ci5nZXQoKV0pOwotICAgICAgICBbX2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2du
aXplciBzZXREZWxlZ2F0ZTpfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuZ2V0KCld
OwotICAgICAgICBbX2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciBzZXRE
ZWxheXNQcmltYXJ5TW91c2VCdXR0b25FdmVudHM6Tk9dOwotICAgIH0KLSNlbmRpZgotCiAgICAg
cmV0dXJuIHNlbGY7CiB9CiAKQEAgLTM3MDUsNDIgKzMxOTAsNiBAQCBzdGF0aWMgTlNTdHJpbmcg
KnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogfQogI2VuZGlm
IC8vIFdLX0FQSV9FTkFCTEVECiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTAwMAotCi0tICh2b2lkKV91cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWMKLXsK
LSAgICBpZiAoIXNlbGYuX2F1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cykKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgaWYgKChzZWxmLndpbmRvdy5zdHlsZU1hc2sgJiBOU0Z1bGxTaXpl
Q29udGVudFZpZXdXaW5kb3dNYXNrKSAmJiAhc2VsZi53aW5kb3cudGl0bGViYXJBcHBlYXJzVHJh
bnNwYXJlbnQgJiYgIVtzZWxmIGVuY2xvc2luZ1Njcm9sbFZpZXddKSB7Ci0gICAgICAgIE5TUmVj
dCBjb250ZW50TGF5b3V0UmVjdCA9IFtzZWxmIGNvbnZlcnRSZWN0OnNlbGYud2luZG93LmNvbnRl
bnRMYXlvdXRSZWN0IGZyb21WaWV3Om5pbF07Ci0gICAgICAgIENHRmxvYXQgbmV3VG9wQ29udGVu
dEluc2V0ID0gTlNNYXhZKGNvbnRlbnRMYXlvdXRSZWN0KSAtIE5TSGVpZ2h0KGNvbnRlbnRMYXlv
dXRSZWN0KTsKLSAgICAgICAgaWYgKHNlbGYuX3RvcENvbnRlbnRJbnNldCAhPSBuZXdUb3BDb250
ZW50SW5zZXQpCi0gICAgICAgICAgICBzZWxmLl90b3BDb250ZW50SW5zZXQgPSBuZXdUb3BDb250
ZW50SW5zZXQ7Ci0gICAgfSBlbHNlCi0gICAgICAgIHNlbGYuX3RvcENvbnRlbnRJbnNldCA9IDA7
Ci19Ci0KLSNlbmRpZgotCi0tICh2b2lkKW9ic2VydmVWYWx1ZUZvcktleVBhdGg6KE5TU3RyaW5n
ICopa2V5UGF0aCBvZk9iamVjdDooaWQpb2JqZWN0IGNoYW5nZTooTlNEaWN0aW9uYXJ5ICopY2hh
bmdlIGNvbnRleHQ6KHZvaWQgKiljb250ZXh0Ci17Ci0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICBpZiAoY29udGV4dCAhPSBrZXlWYWx1ZU9ic2Vydmlu
Z0NvbnRleHQpIHsKLSAgICAgICAgW3N1cGVyIG9ic2VydmVWYWx1ZUZvcktleVBhdGg6a2V5UGF0
aCBvZk9iamVjdDpvYmplY3QgY2hhbmdlOmNoYW5nZSBjb250ZXh0OmNvbnRleHRdOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKFtrZXlQYXRoIGlzRXF1YWxUb1N0cmluZzpAInZp
c2libGUiXSAmJiBbTlNGb250UGFuZWwgc2hhcmVkRm9udFBhbmVsRXhpc3RzXSAmJiBvYmplY3Qg
PT0gW05TRm9udFBhbmVsIHNoYXJlZEZvbnRQYW5lbF0pIHsKLSAgICAgICAgW3NlbGYgdXBkYXRl
Rm9udFBhbmVsSWZOZWVkZWRdOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChba2V5
UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJjb250ZW50TGF5b3V0UmVjdCJdIHx8IFtrZXlQYXRoIGlz
RXF1YWxUb1N0cmluZzpAInRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50Il0pCi0gICAgICAgIFtz
ZWxmIF91cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWNdOwotI2VuZGlmCi19Ci0KLQogLSAo
dm9pZClfZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lCiB7CiAgICAg
aWYgKF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXIpCkBAIC0zNzgzLDE1ICszMjMyLDYgQEAgc3Rh
dGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0
aCkKICAgICAgICAgX2RhdGEtPl9nZXN0dXJlQ29udHJvbGxlci0+cmVtb3ZlU3dpcGVTbmFwc2hv
dCgpOwogfQogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAK
LQotLSAodm9pZClfZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3Q6KGNvbnN0IFdlYkhp
dFRlc3RSZXN1bHREYXRhJiloaXRUZXN0UmVzdWx0IGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQ6KEJP
T0wpY29udGVudFByZXZlbnRzRGVmYXVsdCB1c2VyRGF0YTooQVBJOjpPYmplY3QqKXVzZXJEYXRh
Ci17Ci0gICAgW19kYXRhLT5faW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBkaWRQZXJmb3JtSW1t
ZWRpYXRlQWN0aW9uSGl0VGVzdDpoaXRUZXN0UmVzdWx0IGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQ6
Y29udGVudFByZXZlbnRzRGVmYXVsdCB1c2VyRGF0YTp1c2VyRGF0YV07Ci19Ci0KLSNlbmRpZiAv
LyBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAotCiAjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKIC0gKHZvaWQpX3N0YXJ0V2luZG93
RHJhZwogewpAQCAtMzk5Myw3MiArMzQzMywyOSBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRo
VW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogICAgIHJldHVybiBfZGF0YS0+
X2ltcGwtPmNyZWF0ZUZ1bGxTY3JlZW5XaW5kb3coKTsKIH0KIAotLy8gRklYTUU6IEFsbCBvZiB0
aGVzZSAiRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcyIgbWV0aG9kcyBzaG91bGQgYmUgYWJs
ZSB0byBiZSByZW1vdmVkIG9uY2UgY2xpZW50cyBhcmUgd2VhbmVkIG9mZiBvZiB0aGVtLgogLSAo
dm9pZCliZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMKIHsKLSAgICBpZiAoX2RhdGEt
Pl9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMpIHsKLSAgICAgICAgTlNMb2coQCJiZWdp
bkRlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMgd2FzIGNhbGxlZCB3aGlsZSBhbHJlYWR5IGRl
ZmVycmluZyB2aWV3LWluLXdpbmRvdyBjaGFuZ2VzISIpOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgX2RhdGEtPl9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMgPSBZRVM7Cisg
ICAgX2RhdGEtPl9pbXBsLT5iZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMoKTsKIH0K
IAogLSAodm9pZCllbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzCiB7Ci0gICAgaWYgKCFf
ZGF0YS0+X3Nob3VsZERlZmVyVmlld0luV2luZG93Q2hhbmdlcykgewotICAgICAgICBOU0xvZyhA
ImVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMgd2FzIGNhbGxlZCB3aXRob3V0IGJlZ2lu
RGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcyEiKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LQotICAgIF9kYXRhLT5fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzID0gTk87Ci0KLSAg
ICBpZiAoX2RhdGEtPl92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCkgewotICAgICAgICBb
c2VsZiBfZGlzcGF0Y2hTZXRUb3BDb250ZW50SW5zZXRdOwotICAgICAgICBfZGF0YS0+X3BhZ2Ut
PnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OklzSW5XaW5kb3cpOwotICAgICAgICBfZGF0
YS0+X3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVkID0gTk87Ci0gICAgfQorICAgIF9kYXRh
LT5faW1wbC0+ZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcygpOwogfQogCiAtICh2b2lk
KWVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNTeW5jCiB7Ci0gICAgaWYgKCFfZGF0YS0+
X3Nob3VsZERlZmVyVmlld0luV2luZG93Q2hhbmdlcykgewotICAgICAgICBOU0xvZyhAImVuZERl
ZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNTeW5jIHdhcyBjYWxsZWQgd2l0aG91dCBiZWdpbkRl
ZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMhIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBfZGF0YS0+X3Nob3VsZERlZmVyVmlld0luV2luZG93Q2hhbmdlcyA9IE5POwotCi0gICAg
aWYgKF9kYXRhLT5fdmlld0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQpIHsKLSAgICAgICAgW3Nl
bGYgX2Rpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0XTsKLSAgICAgICAgX2RhdGEtPl9wYWdlLT52
aWV3U3RhdGVEaWRDaGFuZ2UoVmlld1N0YXRlOjpJc0luV2luZG93KTsKLSAgICAgICAgX2RhdGEt
Pl92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9IE5POwotICAgIH0KKyAgICBfZGF0YS0+
X2ltcGwtPmVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNTeW5jKCk7CiB9CiAKIC0gKHZv
aWQpX3ByZXBhcmVGb3JNb3ZlVG9XaW5kb3c6KE5TV2luZG93ICopdGFyZ2V0V2luZG93IHdpdGhD
b21wbGV0aW9uSGFuZGxlcjoodm9pZCheKSh2b2lkKSljb21wbGV0aW9uSGFuZGxlcgogewotICAg
IF9kYXRhLT5fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzID0gWUVTOwotICAgIFtzZWxm
IHZpZXdXaWxsTW92ZVRvV2luZG93OnRhcmdldFdpbmRvd107Ci0gICAgX2RhdGEtPl90YXJnZXRX
aW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gPSB0YXJnZXRXaW5kb3c7Ci0gICAgW3NlbGYgdmlld0Rp
ZE1vdmVUb1dpbmRvd107Ci0KLSAgICBfZGF0YS0+X3Nob3VsZERlZmVyVmlld0luV2luZG93Q2hh
bmdlcyA9IE5POwotCi0gICAgX2RhdGEtPl9wYWdlLT5pbnN0YWxsVmlld1N0YXRlQ2hhbmdlQ29t
cGxldGlvbkhhbmRsZXIoXigpIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAg
ICAgQVNTRVJUKHNlbGYud2luZG93ID09IF9kYXRhLT5fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBh
cmF0aW9uKTsKLSAgICAgICAgX2RhdGEtPl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24g
PSBuaWw7Ci0gICAgfSk7Ci0KLSAgICBbc2VsZiBfZGlzcGF0Y2hTZXRUb3BDb250ZW50SW5zZXRd
OwotICAgIF9kYXRhLT5fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZTo6SXNJbldp
bmRvdywgZmFsc2UsIFdlYlBhZ2VQcm94eTo6Vmlld1N0YXRlQ2hhbmdlRGlzcGF0Y2hNb2RlOjpJ
bW1lZGlhdGUpOwotICAgIF9kYXRhLT5fdmlld0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQgPSBO
TzsKKyAgICBfZGF0YS0+X2ltcGwtPnByZXBhcmVGb3JNb3ZlVG9XaW5kb3codGFyZ2V0V2luZG93
LCBjb21wbGV0aW9uSGFuZGxlcik7CiB9CiAKIC0gKEJPT0wpaXNEZWZlcnJpbmdWaWV3SW5XaW5k
b3dDaGFuZ2VzCiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dD
aGFuZ2VzOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmlzRGVmZXJyaW5nVmlld0luV2luZG93
Q2hhbmdlcygpOwogfQogCiAtIChCT09MKXdpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQK
QEAgLTQwODUsNzMgKzM0ODIsNDggQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZp
bGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKIAogLSAoQk9PTClhbGxvd3NMaW5rUHJldmll
dwogewotICAgIHJldHVybiBfZGF0YS0+X2FsbG93c0xpbmtQcmV2aWV3OworICAgIHJldHVybiBf
ZGF0YS0+X2ltcGwtPmFsbG93c0xpbmtQcmV2aWV3KCk7CiB9CiAKIC0gKHZvaWQpc2V0QWxsb3dz
TGlua1ByZXZpZXc6KEJPT0wpYWxsb3dzTGlua1ByZXZpZXcKIHsKLSAgICBpZiAoX2RhdGEtPl9h
bGxvd3NMaW5rUHJldmlldyA9PSBhbGxvd3NMaW5rUHJldmlldykKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgX2RhdGEtPl9hbGxvd3NMaW5rUHJldmlldyA9IGFsbG93c0xpbmtQcmV2aWV3OwotICAg
IAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgaWYg
KCFhbGxvd3NMaW5rUHJldmlldykKLSAgICAgICAgW3NlbGYgcmVtb3ZlR2VzdHVyZVJlY29nbml6
ZXI6X2RhdGEtPl9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQoKV07Ci0gICAg
ZWxzZSBpZiAoTlNHZXN0dXJlUmVjb2duaXplciAqaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplciA9
IF9kYXRhLT5faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCkpCi0gICAgICAg
IFtzZWxmIGFkZEdlc3R1cmVSZWNvZ25pemVyOmltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXJdOwot
I2VuZGlmCisgICAgX2RhdGEtPl9pbXBsLT5zZXRBbGxvd3NMaW5rUHJldmlldyhhbGxvd3NMaW5r
UHJldmlldyk7CiB9CiAKIC0gKHZvaWQpX3NldElnbm9yZXNBbGxFdmVudHM6KEJPT0wpaWdub3Jl
c0FsbEV2ZW50cwogewotICAgIF9kYXRhLT5faWdub3Jlc0FsbEV2ZW50cyA9IGlnbm9yZXNBbGxF
dmVudHM7Ci0gICAgW3NlbGYgX3NldElnbm9yZXNOb25XaGVlbEV2ZW50czppZ25vcmVzQWxsRXZl
bnRzXTsKKyAgICBfZGF0YS0+X2ltcGwtPnNldElnbm9yZXNBbGxFdmVudHMoaWdub3Jlc0FsbEV2
ZW50cyk7CiB9CiAKIC8vIEZvcndhcmQgX3NldElnbm9yZXNOb25XaGVlbE1vdXNlRXZlbnRzIHRv
IF9zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHMgdG8gYXZvaWQgYnJlYWtpbmcgZXhpc3RpbmcgY2xp
ZW50cy4KIC0gKHZvaWQpX3NldElnbm9yZXNOb25XaGVlbE1vdXNlRXZlbnRzOihCT09MKWlnbm9y
ZXNOb25XaGVlbE1vdXNlRXZlbnRzCiB7Ci0gICAgW3NlbGYgX3NldElnbm9yZXNOb25XaGVlbEV2
ZW50czppZ25vcmVzTm9uV2hlZWxNb3VzZUV2ZW50c107CisgICAgX2RhdGEtPl9pbXBsLT5zZXRJ
Z25vcmVzTm9uV2hlZWxFdmVudHMoaWdub3Jlc05vbldoZWVsTW91c2VFdmVudHMpOwogfQogCiAt
ICh2b2lkKV9zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHM6KEJPT0wpaWdub3Jlc05vbldoZWVsRXZl
bnRzCiB7Ci0gICAgaWYgKF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRzID09IGlnbm9yZXNO
b25XaGVlbEV2ZW50cykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgX2RhdGEtPl9pZ25vcmVzTm9u
V2hlZWxFdmVudHMgPSBpZ25vcmVzTm9uV2hlZWxFdmVudHM7Ci0gICAgX2RhdGEtPl9wYWdlLT5z
ZXRTaG91bGREaXNwYXRjaEZha2VNb3VzZU1vdmVFdmVudHMoIWlnbm9yZXNOb25XaGVlbEV2ZW50
cyk7Ci0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAotICAg
IGlmIChpZ25vcmVzTm9uV2hlZWxFdmVudHMpCi0gICAgICAgIFtzZWxmIHJlbW92ZUdlc3R1cmVS
ZWNvZ25pemVyOl9kYXRhLT5faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCld
OwotICAgIGVsc2UgaWYgKE5TR2VzdHVyZVJlY29nbml6ZXIgKmltbWVkaWF0ZUFjdGlvblJlY29n
bml6ZXIgPSBfZGF0YS0+X2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdldCgpKSB7
Ci0gICAgICAgIGlmIChfZGF0YS0+X2FsbG93c0xpbmtQcmV2aWV3KQotICAgICAgICAgICAgW3Nl
bGYgYWRkR2VzdHVyZVJlY29nbml6ZXI6aW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcl07Ci0gICAg
fQotI2VuZGlmCisgICAgX2RhdGEtPl9pbXBsLT5zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHMoaWdu
b3Jlc05vbldoZWVsRXZlbnRzKTsKIH0KIAogLSAoQk9PTClfaWdub3Jlc05vbldoZWVsRXZlbnRz
CiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5faWdub3Jlc05vbldoZWVsRXZlbnRzOworICAgIHJldHVy
biBfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygpOwogfQogCiAtIChCT09MKV9p
Z25vcmVzQWxsRXZlbnRzCiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5faWdub3Jlc0FsbEV2ZW50czsK
KyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5pZ25vcmVzQWxsRXZlbnRzKCk7CiB9CiAKIC0gKHZv
aWQpX3NldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I6KENHRmxvYXQpZGV2aWNlU2NhbGVGYWN0
b3IKIHsKLSAgICBfZGF0YS0+X292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IgPSBkZXZpY2VTY2Fs
ZUZhY3RvcjsKLSAgICBfZGF0YS0+X3BhZ2UtPnNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9y
KFtzZWxmIF9pbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3Rvcl0pOworICAgIF9kYXRhLT5faW1wbC0+
c2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcihkZXZpY2VTY2FsZUZhY3Rvcik7CiB9CiAKIC0g
KENHRmxvYXQpX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IKIHsKLSAgICByZXR1cm4gX2RhdGEt
Pl9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPm92
ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IoKTsKIH0KIAogLSAoV0tMYXlvdXRNb2RlKV9sYXlvdXRN
b2RlCkBAIC00MTg0LDMyICszNTU2LDE0IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlx
dWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgX2RhdGEtPl9pbXBsLT5zZXRW
aWV3U2NhbGUodmlld1NjYWxlKTsKIH0KIAotLSAodm9pZClfZGlzcGF0Y2hTZXRUb3BDb250ZW50
SW5zZXQKLXsKLSAgICBpZiAoIV9kYXRhLT5fZGlkU2NoZWR1bGVTZXRUb3BDb250ZW50SW5zZXQp
Ci0gICAgICAgIHJldHVybjsKLQotICAgIF9kYXRhLT5fZGlkU2NoZWR1bGVTZXRUb3BDb250ZW50
SW5zZXQgPSBOTzsKLSAgICBfZGF0YS0+X3BhZ2UtPnNldFRvcENvbnRlbnRJbnNldChfZGF0YS0+
X3RvcENvbnRlbnRJbnNldCk7Ci19Ci0KIC0gKHZvaWQpX3NldFRvcENvbnRlbnRJbnNldDooQ0dG
bG9hdCljb250ZW50SW5zZXQKIHsKLSAgICBfZGF0YS0+X3RvcENvbnRlbnRJbnNldCA9IGNvbnRl
bnRJbnNldDsKLQotICAgIGlmIChfZGF0YS0+X2RpZFNjaGVkdWxlU2V0VG9wQ29udGVudEluc2V0
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBfZGF0YS0+X2RpZFNjaGVkdWxlU2V0VG9wQ29udGVu
dEluc2V0ID0gWUVTOwotCi0gICAgZGlzcGF0Y2hfYXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVl
dWUoKSwgXnsKLSAgICAgICAgW3NlbGYgX2Rpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0XTsKLSAg
ICB9KTsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5zZXRUb3BDb250ZW50SW5zZXQoY29udGVu
dEluc2V0KTsKIH0KIAogLSAoQ0dGbG9hdClfdG9wQ29udGVudEluc2V0CiB7Ci0gICAgcmV0dXJu
IF9kYXRhLT5fdG9wQ29udGVudEluc2V0OworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPnRvcENv
bnRlbnRJbnNldCgpOwogfQogCiAtICh2b2lkKV9zZXRUb3RhbEhlaWdodE9mQmFubmVyczooQ0dG
bG9hdCl0b3RhbEhlaWdodE9mQmFubmVycwpAQCAtNDQ4Nyw0OSArMzg0MSwyNCBAQCBzdGF0aWMg
TlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQog
CiAtICh2b2lkKV9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzCiB7Ci0gICAgLy8g
RklYTUU6IFdlIGRvbid0IGtub3cgd2hpY2ggcGFuZWwgd2UgYXJlIGRpc21pc3NpbmcsIGl0IG1h
eSBub3QgZXZlbiBiZSBpbiB0aGUgY3VycmVudCBwYWdlIChzZWUgPHJkYXI6Ly9wcm9ibGVtLzEz
ODc1NzY2PikuCi0gICAgaWYgKFtbc2VsZiB3aW5kb3ddIGlzS2V5V2luZG93XQotI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgICAgIHx8IFtfZGF0YS0+
X2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgaGFzQWN0aXZlSW1tZWRpYXRlQWN0aW9uXQotI2Vu
ZGlmCi0gICAgICAgICkgewotICAgICAgICBEaWN0aW9uYXJ5TG9va3VwOjpoaWRlUG9wdXAoKTsK
LQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgICAg
IEREQWN0aW9uc01hbmFnZXIgKmFjdGlvbnNNYW5hZ2VyID0gW2dldEREQWN0aW9uc01hbmFnZXJD
bGFzcygpIHNoYXJlZE1hbmFnZXJdOwotICAgICAgICBpZiAoW2FjdGlvbnNNYW5hZ2VyIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocmVxdWVzdEJ1YmJsZUNsb3N1cmVVbmFuY2hvck9uRmFp
bHVyZTopXSkKLSAgICAgICAgICAgIFthY3Rpb25zTWFuYWdlciByZXF1ZXN0QnViYmxlQ2xvc3Vy
ZVVuYW5jaG9yT25GYWlsdXJlOllFU107Ci0jZW5kaWYKLSAgICB9Ci0KLSAgICBbc2VsZiBfY2xl
YXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2Fs
QW5pbWF0aW9uOjpGYWRlT3V0XTsKLQotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlS
RUQgPj0gMTAxMDAwCi0gICAgW19kYXRhLT5faW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBkaXNt
aXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXTsKLSNlbmRpZgotCi0gICAgc3RhdGljX2Nh
c3Q8UGFnZUNsaWVudCY+KCpfZGF0YS0+X3BhZ2VDbGllbnQpLmRpc21pc3NDb3JyZWN0aW9uUGFu
ZWwoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9yZWQpOworICAgIF9kYXRh
LT5faW1wbC0+ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seSgp
OwogfQogCiAtICh2b2lkKV9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFu
aW1hdGlvbjooQk9PTCl3aXRoQW5pbWF0aW9uCiB7Ci0gICAgLy8gQ2FsbGluZyBfY2xlYXJUZXh0
SW5kaWNhdG9yV2l0aEFuaW1hdGlvbiBoZXJlIHdpbGwgd2luIG91dCBvdmVyIHRoZSBhbmltYXRl
ZCBjbGVhciBpbiBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93cy4KLSAgICAvLyBX
ZSBjYW4ndCBpbnZlcnQgdGhlc2UgYmVjYXVzZSBjbGllbnRzIGNhbiBvdmVycmlkZSAoYW5kIGhh
dmUgb3ZlcnJpZGRlbikgX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3MsIHNvIGl0
IG5lZWRzIHRvIGJlIGNhbGxlZC4KLSAgICBbc2VsZiBfY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFu
aW1hdGlvbjp3aXRoQW5pbWF0aW9uID8gVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1h
dGlvbjo6RmFkZU91dCA6IFRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246Ok5v
bmVdOwotICAgIFtzZWxmIF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXTsKKyAg
ICBfZGF0YS0+X2ltcGwtPmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5p
bWF0aW9uRnJvbVZpZXdPbmx5KHdpdGhBbmltYXRpb24pOwogfQogCiAjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKIAogLSAodm9pZClfc2V0QXV0b21hdGljYWxs
eUFkanVzdHNDb250ZW50SW5zZXRzOihCT09MKWF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudElu
c2V0cwogewotICAgIF9kYXRhLT5fYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzID0g
YXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzOwotICAgIFtzZWxmIF91cGRhdGVDb250
ZW50SW5zZXRzSWZBdXRvbWF0aWNdOworICAgIF9kYXRhLT5faW1wbC0+c2V0QXV0b21hdGljYWxs
eUFkanVzdHNDb250ZW50SW5zZXRzKGF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cyk7
CiB9CiAKIC0gKEJPT0wpX2F1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cwogewotICAg
IHJldHVybiBfZGF0YS0+X2F1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0czsKKyAgICBy
ZXR1cm4gX2RhdGEtPl9pbXBsLT5hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHMoKTsK
IH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3SW50ZXJuYWwuaAppbmRleCA5NzAwY2FmLi4yOGU1Yjc3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKQEAgLTgwLDE5ICs4MCwx
MiBAQCBzdHJ1Y3QgRWRpdG9yU3RhdGU7CiAtICh2b2lkKV9wcm9jZXNzRGlkRXhpdDsKIC0gKHZv
aWQpX3BhZ2VDbG9zZWQ7CiAtICh2b2lkKV9kaWRSZWxhdW5jaFByb2Nlc3M7Ci0tICh2b2lkKV9w
cmVmZXJlbmNlc0RpZENoYW5nZTsKIC0gKHZvaWQpX3Rvb2xUaXBDaGFuZ2VkRnJvbTooTlNTdHJp
bmcgKilvbGRUb29sVGlwIHRvOihOU1N0cmluZyAqKW5ld1Rvb2xUaXA7CiAtICh2b2lkKV9zZXRV
c2VySW50ZXJmYWNlSXRlbVN0YXRlOihOU1N0cmluZyAqKWNvbW1hbmROYW1lIGVuYWJsZWQ6KEJP
T0wpaXNFbmFibGVkIHN0YXRlOihpbnQpbmV3U3RhdGU7CiAtICh2b2lkKV9kb25lV2l0aEtleUV2
ZW50OihOU0V2ZW50ICopZXZlbnQgZXZlbnRXYXNIYW5kbGVkOihCT09MKWV2ZW50V2FzSGFuZGxl
ZDsKIC0gKGJvb2wpX2V4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yOihTRUwpc2VsZWN0b3I7
Ci0tICh2b2lkKV9zZXRJbnRyaW5zaWNDb250ZW50U2l6ZTooTlNTaXplKWludHJpbnNpY0NvbnRl
bnRTaXplOwogLSAoTlNSZWN0KV9jb252ZXJ0VG9EZXZpY2VTcGFjZTooTlNSZWN0KXJlY3Q7CiAt
IChOU1JlY3QpX2NvbnZlcnRUb1VzZXJTcGFjZTooTlNSZWN0KXJlY3Q7Ci0tICh2b2lkKV9zZXRU
ZXh0SW5kaWNhdG9yOihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJil0ZXh0SW5kaWNhdG9yOwotLSAo
dm9pZClfc2V0VGV4dEluZGljYXRvcjooV2ViQ29yZTo6VGV4dEluZGljYXRvciYpdGV4dEluZGlj
YXRvciB3aXRoTGlmZXRpbWU6KFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSls
aWZldGltZTsKLS0gKHZvaWQpX2NsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb246KFdlYkNv
cmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24pYW5pbWF0aW9uOwotLSAo
dm9pZClfc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzOihmbG9hdClwcm9ncmVzczsK
LS0gKHZvaWQpX3NlbGVjdGlvbkNoYW5nZWQ7CiAKIC0gKHZvaWQpX3NldEFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlUm9vdExheWVyOihDQUxheWVyICopcm9vdExheWVyOwogLSAoQ0FMYXllciAq
KV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZVJvb3RMYXllcjsKQEAgLTEyOSw5ICsxMjIsNiBA
QCBzdHJ1Y3QgRWRpdG9yU3RhdGU7CiAtICh2b2lkKV9yZXBhcmVudExheWVyVHJlZUluVGh1bWJu
YWlsVmlldzsKICNlbmRpZgogCi0tICh2b2lkKV93aW5kb3dEaWRPcmRlck9uU2NyZWVuOihOU05v
dGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbjsKLS0gKHZvaWQpX3dpbmRvd0RpZE9yZGVyT2ZmU2Ny
ZWVuOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbjsKLQogLSAodm9pZClfYWRkRm9udFBh
bmVsT2JzZXJ2ZXI7CiAvLyBGdWxsU2NyZWVuCiAKQEAgLTEzOSwyMCArMTI5LDEyIEBAIHN0cnVj
dCBFZGl0b3JTdGF0ZTsKIEBwcm9wZXJ0eSAocmVhZG9ubHkpIFdLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIgKl9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcjsKIC0gKHZvaWQpX2Nsb3NlRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXI7CiAKLS0gKHZvaWQpX3ByZXBhcmVGb3JEaWN0aW9uYXJ5
TG9va3VwOwotCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAK
LS0gKHZvaWQpX2RpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0Oihjb25zdCBXZWJLaXQ6
OldlYkhpdFRlc3RSZXN1bHREYXRhJiloaXRUZXN0UmVzdWx0IGNvbnRlbnRQcmV2ZW50c0RlZmF1
bHQ6KEJPT0wpY29udGVudFByZXZlbnRzRGVmYXVsdCB1c2VyRGF0YTooQVBJOjpPYmplY3QqKXVz
ZXJEYXRhOwotI2VuZGlmCi0KICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTEwMAogLSAodm9pZClfc3RhcnRXaW5kb3dEcmFnOwogI2VuZGlmCiAKIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZXRhaW4sIHNldHRlcj1fc2V0UHJpbWFyeVRyYWNraW5nQXJlYTopIE5TVHJh
Y2tpbmdBcmVhICpfcHJpbWFyeVRyYWNraW5nQXJlYTsKIAotQHByb3BlcnR5IChyZWFkb25seSkg
TlNXaW5kb3cgKl90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb247Ci0KICNpZiBXS19BUElf
RU5BQkxFRAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tSZW1vdGVPYmplY3RS
ZWdpc3RyeSAqX3JlbW90ZU9iamVjdFJlZ2lzdHJ5OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IDQ5MTI5ODIuLmUwMDE1ZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC0yOCwy
OSArMjgsNTIgQEAKIAogI2lmIFBMQVRGT1JNKE1BQykKIAotI2ltcG9ydCAiV0tMYXlvdXRNb2Rl
LmgiCi0jaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Ci0KKyNpbmNsdWRlICJXS0xheW91dE1vZGUu
aCIKKyNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1RleHRJbmRp
Y2F0b3JXaW5kb3cuaD4KKyNpbmNsdWRlIDxmdW5jdGlvbmFsPgorI2luY2x1ZGUgPHd0Zi9SZXRh
aW5QdHIuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgorI2luY2x1ZGUgPHd0Zi90ZXh0L1dU
RlN0cmluZy5oPgorCitPQkpDX0NMQVNTIE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6
ZXI7CiBPQkpDX0NMQVNTIE5TVGV4dElucHV0Q29udGV4dDsKIE9CSkNfQ0xBU1MgTlNWaWV3Owor
T0JKQ19DTEFTUyBXS0VkaXRvclVuZG9UYXJnZXRPYmpDOwogT0JKQ19DTEFTUyBXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyOworT0JKQ19DTEFTUyBXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xs
ZXI7CiBPQkpDX0NMQVNTIFdLVmlld0xheW91dFN0cmF0ZWd5OworT0JKQ19DTEFTUyBXS1dpbmRv
d1Zpc2liaWxpdHlPYnNlcnZlcjsKIAogQHByb3RvY29sIFdlYlZpZXdJbXBsRGVsZWdhdGUKIAog
LSAoTlNUZXh0SW5wdXRDb250ZXh0ICopX3N1cGVySW5wdXRDb250ZXh0OworLSAodm9pZClfc3Vw
ZXJRdWlja0xvb2tXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudDsKKworLy8gVGhpcyBpcyBhIGhh
Y2s7IHRoZXNlIHRoaW5ncyBsaXZlIGNhbiBsaXZlIG9uIGEgY2F0ZWdvcnkgKGUuZy4gV0tWaWV3
IChQcml2YXRlKSkgYnV0IFdLVmlldyBpdHNlbGYgY29uZm9ybXMgdG8gdGhpcyBwcm90b2NvbC4K
Ky8vIFRoZXkncmUgbm90IGFjdHVhbGx5IG9wdGlvbmFsLgorQG9wdGlvbmFsCisKKy0gKGlkKV9p
bW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdDooV0tIaXRU
ZXN0UmVzdWx0UmVmKWhpdFRlc3RSZXN1bHQgd2l0aFR5cGU6KHVpbnQzMl90KXR5cGUgdXNlckRh
dGE6KFdLVHlwZVJlZil1c2VyRGF0YTsKKy0gKHZvaWQpX3ByZXBhcmVGb3JJbW1lZGlhdGVBY3Rp
b25BbmltYXRpb247CistICh2b2lkKV9jYW5jZWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb247Cist
ICh2b2lkKV9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbjsKKy0gKHZvaWQpX2Rpc21p
c3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3M7CistICh2b2lkKV9kaXNtaXNzQ29udGVudFJl
bGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbjooQk9PTClhbmltYXRlOwogCiBAZW5kCiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBXZWJFZGl0Q29tbWFuZFByb3h5OwogY2xhc3Mg
V2ViUGFnZVByb3h5Oworc3RydWN0IENvbG9yU3BhY2VEYXRhOwogCiBjbGFzcyBXZWJWaWV3SW1w
bCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFC
TEUoV2ViVmlld0ltcGwpOwogcHVibGljOgotICAgIFdlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmll
d0ltcGxEZWxlZ2F0ZT4gKiwgV2ViUGFnZVByb3h5Jik7CisgICAgV2ViVmlld0ltcGwoTlNWaWV3
IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAqLCBXZWJQYWdlUHJveHkmLCBQYWdlQ2xpZW50Jik7CiAK
ICAgICB+V2ViVmlld0ltcGwoKTsKIApAQCAtNjcsMTcgKzkwLDI1IEBAIHB1YmxpYzoKICAgICB2
b2lkIHZpZXdXaWxsU3RhcnRMaXZlUmVzaXplKCk7CiAgICAgdm9pZCB2aWV3RGlkRW5kTGl2ZVJl
c2l6ZSgpOwogCisgICAgdm9pZCByZW5ld0dTdGF0ZSgpOwogICAgIHZvaWQgc2V0RnJhbWVTaXpl
KENHU2l6ZSk7CiAgICAgdm9pZCBkaXNhYmxlRnJhbWVTaXplVXBkYXRlcygpOwogICAgIHZvaWQg
ZW5hYmxlRnJhbWVTaXplVXBkYXRlcygpOwogICAgIGJvb2wgZnJhbWVTaXplVXBkYXRlc0Rpc2Fi
bGVkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRGcmFtZUFuZFNjcm9sbEJ5KENHUmVjdCwgQ0dTaXpl
KTsKKyAgICB2b2lkIHVwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXMoKTsKIAogICAgIHZvaWQgc2V0
Rml4ZWRMYXlvdXRTaXplKENHU2l6ZSk7CiAgICAgQ0dTaXplIGZpeGVkTGF5b3V0U2l6ZSgpIGNv
bnN0OwogCiAgICAgdm9pZCBzZXREcmF3aW5nQXJlYVNpemUoQ0dTaXplKTsKIAorICAgIHZvaWQg
c2V0QXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzKGJvb2wpOworICAgIGJvb2wgYXV0
b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzKCkgY29uc3QgeyByZXR1cm4gbV9hdXRvbWF0
aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHM7IH0KKyAgICB2b2lkIHVwZGF0ZUNvbnRlbnRJbnNl
dHNJZkF1dG9tYXRpYygpOworICAgIHZvaWQgc2V0VG9wQ29udGVudEluc2V0KENHRmxvYXQpOwor
ICAgIENHRmxvYXQgdG9wQ29udGVudEluc2V0KCkgY29uc3QgeyByZXR1cm4gbV90b3BDb250ZW50
SW5zZXQ7IH0KKwogICAgIHZvaWQgc2V0Q29udGVudFByZXBhcmF0aW9uUmVjdChDR1JlY3QpOwog
ICAgIHZvaWQgdXBkYXRlVmlld0V4cG9zZWRSZWN0KCk7CiAgICAgdm9pZCBzZXRDbGlwc1RvVmlz
aWJsZVJlY3QoYm9vbCk7CkBAIC05MywxMSArMTI0LDQ1IEBAIHB1YmxpYzoKICAgICB2b2lkIHNl
dExheW91dE1vZGUoV0tMYXlvdXRNb2RlKTsKICAgICB2b2lkIHVwZGF0ZVN1cHBvcnRzQXJiaXRy
YXJ5TGF5b3V0TW9kZXMoKTsKIAorICAgIHZvaWQgc2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3Rv
cihDR0Zsb2F0KTsKKyAgICBDR0Zsb2F0IG92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IoKSBjb25z
dCB7IHJldHVybiBtX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I7IH0KKworICAgIHZvaWQgd2lu
ZG93RGlkT3JkZXJPZmZTY3JlZW4oKTsKKyAgICB2b2lkIHdpbmRvd0RpZE9yZGVyT25TY3JlZW4o
KTsKKyAgICB2b2lkIHdpbmRvd0RpZEJlY29tZUtleShOU1dpbmRvdyAqKTsKKyAgICB2b2lkIHdp
bmRvd0RpZFJlc2lnbktleShOU1dpbmRvdyAqKTsKKyAgICB2b2lkIHdpbmRvd0RpZE1pbmlhdHVy
aXplKCk7CisgICAgdm9pZCB3aW5kb3dEaWREZW1pbmlhdHVyaXplKCk7CisgICAgdm9pZCB3aW5k
b3dEaWRNb3ZlKCk7CisgICAgdm9pZCB3aW5kb3dEaWRSZXNpemUoKTsKKyAgICB2b2lkIHdpbmRv
d0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzKENHRmxvYXQgb2xkQmFja2luZ1NjYWxlRmFjdG9y
KTsKKyAgICB2b2lkIHdpbmRvd0RpZENoYW5nZVNjcmVlbigpOworICAgIHZvaWQgd2luZG93RGlk
Q2hhbmdlTGF5ZXJIb3N0aW5nKCk7CisgICAgdm9pZCB3aW5kb3dEaWRDaGFuZ2VPY2NsdXNpb25T
dGF0ZSgpOworCisgICAgdm9pZCB2aWV3V2lsbE1vdmVUb1dpbmRvdyhOU1dpbmRvdyAqKTsKKyAg
ICB2b2lkIHZpZXdEaWRNb3ZlVG9XaW5kb3coKTsKKyAgICB2b2lkIHZpZXdEaWRDaGFuZ2VCYWNr
aW5nUHJvcGVydGllcygpOworCisgICAgQ29sb3JTcGFjZURhdGEgY29sb3JTcGFjZSgpOworCisg
ICAgdm9pZCBiZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMoKTsKKyAgICAvLyBGSVhN
RTogTWVyZ2UgdGhlc2UgdHdvPworICAgIHZvaWQgZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hh
bmdlcygpOworICAgIHZvaWQgZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlc1N5bmMoKTsK
KyAgICBib29sIGlzRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcygpIGNvbnN0IHsgcmV0dXJu
IG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzOyB9CisKKyAgICB2b2lkIHByZXBhcmVG
b3JNb3ZlVG9XaW5kb3coTlNXaW5kb3cgKnRhcmdldFdpbmRvdywgc3RkOjpmdW5jdGlvbjx2b2lk
KCk+IGNvbXBsZXRpb25IYW5kbGVyKTsKKyAgICBOU1dpbmRvdyAqdGFyZ2V0V2luZG93Rm9yTW92
ZVByZXBhcmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFy
YXRpb247IH0KKwogICAgIHZvaWQgdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSgpOwogICAgIHZvaWQg
cmVzZXRTZWN1cmVJbnB1dFN0YXRlKCk7CiAgICAgYm9vbCBpblNlY3VyZUlucHV0U3RhdGUoKSBj
b25zdCB7IHJldHVybiBtX2luU2VjdXJlSW5wdXRTdGF0ZTsgfQogICAgIHZvaWQgbm90aWZ5SW5w
dXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbigpOwogCisgICAgdm9pZCBwcmVzc3Vy
ZUNoYW5nZVdpdGhFdmVudChOU0V2ZW50ICopOworICAgIE5TRXZlbnQgKmxhc3RQcmVzc3VyZUV2
ZW50KCkgeyByZXR1cm4gbV9sYXN0UHJlc3N1cmVFdmVudC5nZXQoKTsgfQorCiAjaWYgRU5BQkxF
KEZVTExTQ1JFRU5fQVBJKQogICAgIGJvb2wgaGFzRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIo
KSBjb25zdDsKICAgICBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyICpmdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlcigpOwpAQCAtMTA2LDMzICsxNzEsMTE0IEBAIHB1YmxpYzoKICAgICBOU1Zp
ZXcgKmZ1bGxTY3JlZW5QbGFjZWhvbGRlclZpZXcoKTsKICAgICBOU1dpbmRvdyAqY3JlYXRlRnVs
bFNjcmVlbldpbmRvdygpOwogCisgICAgYm9vbCBpc0VkaXRhYmxlKCkgY29uc3Q7CisgICAgdm9p
ZCBleGVjdXRlRWRpdENvbW1hbmQoY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgY29uc3QgU3Ry
aW5nJiBhcmd1bWVudCA9IFN0cmluZygpKTsKKyAgICB2b2lkIHJlZ2lzdGVyRWRpdENvbW1hbmQo
UmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+LCBXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8pOwor
ICAgIHZvaWQgY2xlYXJBbGxFZGl0Q29tbWFuZHMoKTsKKyAgICBib29sIHdyaXRlU2VsZWN0aW9u
VG9QYXN0ZWJvYXJkKE5TUGFzdGVib2FyZCAqLCBOU0FycmF5ICp0eXBlcyk7CisgICAgdm9pZCBj
ZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhKCk7CisgICAgdm9pZCBzZWxlY3Rpb25EaWRDaGFu
Z2UoKTsKKyAgICB2b2lkIHN0YXJ0T2JzZXJ2aW5nRm9udFBhbmVsKCk7CisgICAgdm9pZCB1cGRh
dGVGb250UGFuZWxJZk5lZWRlZCgpOworCisgICAgdm9pZCBwcmVmZXJlbmNlc0RpZENoYW5nZSgp
OworCisgICAgdm9pZCBzZXRUZXh0SW5kaWNhdG9yKFdlYkNvcmU6OlRleHRJbmRpY2F0b3ImLCBX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUgPSBXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudCk7CisgICAgdm9pZCBjbGVhclRleHRJbmRpY2F0
b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmlt
YXRpb24pOworICAgIHZvaWQgc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0
KTsKKyAgICB2b2lkIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3MoKTsKKyAgICB2
b2lkIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHkoKTsKKyAg
ICB2b2lkIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uKGJv
b2wpOworICAgIHZvaWQgZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmlt
YXRpb25Gcm9tVmlld09ubHkoYm9vbCk7CisKKyAgICB2b2lkIHF1aWNrTG9va1dpdGhFdmVudChO
U0V2ZW50ICopOworICAgIHZvaWQgcHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXAoKTsKKyAgICB2
b2lkIHNldEFsbG93c0xpbmtQcmV2aWV3KGJvb2wpOworICAgIGJvb2wgYWxsb3dzTGlua1ByZXZp
ZXcoKSBjb25zdCB7IHJldHVybiBtX2FsbG93c0xpbmtQcmV2aWV3OyB9CisgICAgdm9pZCogaW1t
ZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQoV0tIaXRUZXN0
UmVzdWx0UmVmLCB1aW50MzJfdCB0eXBlLCBXS1R5cGVSZWYgdXNlckRhdGEpOworICAgIHZvaWQq
IGltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0RnJvbVZp
ZXdPbmx5KFdLSGl0VGVzdFJlc3VsdFJlZiwgdWludDMyX3QgdHlwZSwgV0tUeXBlUmVmIHVzZXJE
YXRhKTsKKyAgICB2b2lkIGRpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0KGNvbnN0IFdl
YkhpdFRlc3RSZXN1bHREYXRhJiwgYm9vbCBjb250ZW50UHJldmVudHNEZWZhdWx0LCBBUEk6Ok9i
amVjdCogdXNlckRhdGEpOworICAgIHZvaWQgcHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1h
dGlvbigpOworICAgIHZvaWQgY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uKCk7CisgICAg
dm9pZCBjb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbigpOworCisgICAgdm9pZCBzZXRJ
Z25vcmVzTm9uV2hlZWxFdmVudHMoYm9vbCk7CisgICAgYm9vbCBpZ25vcmVzTm9uV2hlZWxFdmVu
dHMoKSBjb25zdCB7IHJldHVybiBtX2lnbm9yZXNOb25XaGVlbEV2ZW50czsgfQorICAgIHZvaWQg
c2V0SWdub3Jlc0FsbEV2ZW50cyhib29sKTsKKyAgICBib29sIGlnbm9yZXNBbGxFdmVudHMoKSBj
b25zdCB7IHJldHVybiBtX2lnbm9yZXNBbGxFdmVudHM7IH0KKworICAgIHZvaWQgYWNjZXNzaWJp
bGl0eVJlZ2lzdGVyVUlQcm9jZXNzVG9rZW5zKCk7CisKIHByaXZhdGU6CisgICAgV2Vha1B0cjxX
ZWJWaWV3SW1wbD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3Jl
YXRlV2Vha1B0cigpOyB9CisKICAgICBib29sIHN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMo
KSBjb25zdDsKKyAgICBmbG9hdCBpbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0Owor
ICAgIHZvaWQgZGlzcGF0Y2hTZXRUb3BDb250ZW50SW5zZXQoKTsKKworICAgIHZvaWQgcG9zdEZh
a2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudChOU0V2ZW50ICopOwogCiAgICAg
TlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAqbV92aWV3OwogICAgIFdlYlBhZ2VQcm94eSYg
bV9wYWdlOworICAgIFBhZ2VDbGllbnQmIG1fcGFnZUNsaWVudDsKKworICAgIFdlYWtQdHJGYWN0
b3J5PFdlYlZpZXdJbXBsPiBtX3dlYWtQdHJGYWN0b3J5OwogCiAgICAgYm9vbCBtX3dpbGxCZWNv
bWVGaXJzdFJlc3BvbmRlckFnYWluIHsgZmFsc2UgfTsKICAgICBib29sIG1faW5CZWNvbWVGaXJz
dFJlc3BvbmRlciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2luUmVzaWduRmlyc3RSZXNwb25kZXIg
eyBmYWxzZSB9OwogCi0gICAgQ0dSZWN0IG1fY29udGVudFByZXBhcmF0aW9uUmVjdDsKKyAgICBD
R1JlY3QgbV9jb250ZW50UHJlcGFyYXRpb25SZWN0IHsgezAsIDB9LCB7MCwgMH0gfTsKICAgICBi
b29sIG1fdXNlQ29udGVudFByZXBhcmF0aW9uUmVjdEZvclZpc2libGVSZWN0IHsgZmFsc2UgfTsK
ICAgICBib29sIG1fY2xpcHNUb1Zpc2libGVSZWN0IHsgZmFsc2UgfTsKKyAgICBib29sIG1fbmVl
ZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzOworICAgIGJvb2wgbV9kaWRTY2hlZHVsZVdp
bmRvd0FuZFZpZXdGcmFtZVVwZGF0ZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzRGVmZXJyaW5n
Vmlld0luV2luZG93Q2hhbmdlcyB7IGZhbHNlIH07CisKKyAgICBib29sIG1fYXV0b21hdGljYWxs
eUFkanVzdHNDb250ZW50SW5zZXRzIHsgZmFsc2UgfTsKKyAgICBDR0Zsb2F0IG1fdG9wQ29udGVu
dEluc2V0IHsgMCB9OworICAgIGJvb2wgbV9kaWRTY2hlZHVsZVNldFRvcENvbnRlbnRJbnNldCB7
IGZhbHNlIH07CiAKLSAgICBDR1NpemUgbV9yZXNpemVTY3JvbGxPZmZzZXQ7CisgICAgQ0dTaXpl
IG1fcmVzaXplU2Nyb2xsT2Zmc2V0IHsgMCwgMCB9OwogCi0gICAgQ0dTaXplIG1faW50cmluc2lj
Q29udGVudFNpemU7CisgICAgQ0dTaXplIG1faW50cmluc2ljQ29udGVudFNpemUgeyAwLCAwIH07
CisgICAgQ0dGbG9hdCBtX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IgeyAwIH07CiAKICAgICBS
ZXRhaW5QdHI8V0tWaWV3TGF5b3V0U3RyYXRlZ3k+IG1fbGF5b3V0U3RyYXRlZ3k7CiAgICAgV0tM
YXlvdXRNb2RlIG1fbGFzdFJlcXVlc3RlZExheW91dE1vZGUgeyBrV0tMYXlvdXRNb2RlVmlld1Np
emUgfTsKICAgICBDR0Zsb2F0IG1fbGFzdFJlcXVlc3RlZFZpZXdTY2FsZSB7IDEgfTsKIAogICAg
IGJvb2wgbV9pblNlY3VyZUlucHV0U3RhdGUgeyBmYWxzZSB9OworICAgIFJldGFpblB0cjxXS0Vk
aXRvclVuZG9UYXJnZXRPYmpDPiBtX3VuZG9UYXJnZXQ7CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCiAgICAgUmV0YWluUHRyPFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXI+IG1fZnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXI7CiAjZW5kaWYKKworICAgIFJldGFpblB0cjxXS1dpbmRv
d1Zpc2liaWxpdHlPYnNlcnZlcj4gbV93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXI7CisKKyAgICBi
b29sIG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzIHsgZmFsc2UgfTsKKyAgICBib29s
IG1fdmlld0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQgeyBmYWxzZSB9OworICAgIE5TV2luZG93
ICptX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiB7IG51bGxwdHIgfTsKKworICAgIGlk
IG1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yIHsgbnVsbHB0ciB9OworCisgICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3c+IG1fdGV4dEluZGljYXRvcldpbmRv
dzsKKworICAgIFJldGFpblB0cjxOU0NvbG9yU3BhY2U+IG1fY29sb3JTcGFjZTsKKworICAgIFJl
dGFpblB0cjxOU0V2ZW50PiBtX2xhc3RQcmVzc3VyZUV2ZW50OworCisgICAgYm9vbCBtX2lnbm9y
ZXNOb25XaGVlbEV2ZW50cyB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lnbm9yZXNBbGxFdmVudHMg
eyBmYWxzZSB9OworCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEw
MDAKKyAgICBSZXRhaW5QdHI8V0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyPiBtX2ltbWVkaWF0
ZUFjdGlvbkNvbnRyb2xsZXI7CisgICAgUmV0YWluUHRyPE5TSW1tZWRpYXRlQWN0aW9uR2VzdHVy
ZVJlY29nbml6ZXI+IG1faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXI7CisjZW5kaWYK
KworICAgIGJvb2wgbV9hbGxvd3NMaW5rUHJldmlldyB7IHRydWUgfTsKKyAgICBib29sIG1fZGlk
UmVnaXN0ZXJGb3JMb29rdXBQb3BvdmVyQ2xvc2VOb3RpZmljYXRpb25zIHsgZmFsc2UgfTsKIH07
CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA5YjJlNmUyLi5jYmZhZjBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0yOCwyOCArMjgs
Mjk1IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAKKyNpbXBvcnQgIkNvbG9yU3BhY2VEYXRhLmgi
CiAjaW1wb3J0ICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBv
cnQgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKKyNpbXBvcnQgIk5hdGl2ZVdlYk1vdXNlRXZl
bnQuaCIKKyNpbXBvcnQgIlBhZ2VDbGllbnQuaCIKICNpbXBvcnQgIldLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIuaCIKKyNpbXBvcnQgIldLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oIgog
I2ltcG9ydCAiV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaCIKICNpbXBvcnQgIldLV2ViVmlldy5oIgor
I2ltcG9ydCAiV2ViRWRpdENvbW1hbmRQcm94eS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5Lmgi
CiAjaW1wb3J0IDxISVRvb2xib3gvQ2FyYm9uRXZlbnRzQ29yZS5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9BWE9iamVjdENhY2hlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0RhdGFEZXRlY3RvcnNTUEkuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvRGljdGlvbmFyeUxvb2t1cC5oPgogI2ltcG9ydCA8V2ViQ29yZS9L
ZXlwcmVzc0NvbW1hbmQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvTG9va3VwU1BJLmg+CisjaW1wb3J0
IDxXZWJDb3JlL05TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXJTUEkuaD4KICNpbXBv
cnQgPFdlYkNvcmUvTlNXaW5kb3dTUEkuaD4KKyNpbXBvcnQgPFdlYkNvcmUvU29mdExpbmtpbmcu
aD4KICNpbXBvcnQgPFdlYkNvcmUvVmlld1N0YXRlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNv
cmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVG
dWxsU2NyZWVuV2luZG93Lmg+CisjaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaD4KKwor
U09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMKExvb2t1cCwgTFVOb3RpZmljYXRpb25Qb3BvdmVy
V2lsbENsb3NlLCBOU1N0cmluZyAqKQorCitAaW50ZXJmYWNlIFdLV2luZG93VmlzaWJpbGl0eU9i
c2VydmVyIDogTlNPYmplY3QgeworICAgIE5TVmlldyAqX3ZpZXc7CisgICAgV2ViS2l0OjpXZWJW
aWV3SW1wbCAqX2ltcGw7Cit9CisKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0aFZpZXc6KE5TVmll
dyAqKXZpZXcgaW1wbDooV2ViS2l0OjpXZWJWaWV3SW1wbCYpaW1wbDsKKy0gKHZvaWQpc3RhcnRP
YnNlcnZpbmc6KE5TV2luZG93ICopd2luZG93OworLSAodm9pZClzdG9wT2JzZXJ2aW5nOihOU1dp
bmRvdyAqKXdpbmRvdzsKKy0gKHZvaWQpc3RhcnRPYnNlcnZpbmdGb250UGFuZWw7CistICh2b2lk
KXN0YXJ0T2JzZXJ2aW5nTG9va3VwRGlzbWlzc2FsOworQGVuZAorCitAaW1wbGVtZW50YXRpb24g
V0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIKKworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoVmll
dzooTlNWaWV3ICopdmlldyBpbXBsOihXZWJLaXQ6OldlYlZpZXdJbXBsJilpbXBsCit7CisgICAg
c2VsZiA9IFtzdXBlciBpbml0XTsKKyAgICBpZiAoIXNlbGYpCisgICAgICAgIHJldHVybiBuaWw7
CisKKyAgICBfdmlldyA9IHZpZXc7CisgICAgX2ltcGwgPSAmaW1wbDsKKworICAgIHJldHVybiBz
ZWxmOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBpZiAoY2FuTG9hZExVTm90aWZpY2F0
aW9uUG9wb3ZlcldpbGxDbG9zZSgpKQorICAgICAgICBbW05TTm90aWZpY2F0aW9uQ2VudGVyIGRl
ZmF1bHRDZW50ZXJdIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpnZXRMVU5vdGlmaWNhdGlvblBv
cG92ZXJXaWxsQ2xvc2UoKSBvYmplY3Q6bmlsXTsKKworICAgIFtzdXBlciBkZWFsbG9jXTsKK30K
KworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCitzdGF0aWMg
dm9pZCoga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0ID0gJmtleVZhbHVlT2JzZXJ2aW5nQ29udGV4
dDsKKyNlbmRpZgorCistICh2b2lkKXN0YXJ0T2JzZXJ2aW5nOihOU1dpbmRvdyAqKXdpbmRvdwor
eworICAgIGlmICghd2luZG93KQorICAgICAgICByZXR1cm47CisKKyAgICBOU05vdGlmaWNhdGlv
bkNlbnRlciAqZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciA9IFtOU05vdGlmaWNhdGlvbkNlbnRl
ciBkZWZhdWx0Q2VudGVyXTsKKworICAgIC8vIEFuIE5TVmlldyBkZXJpdmVkIG9iamVjdCBzdWNo
IGFzIFdLVmlldyBjYW5ub3Qgb2JzZXJ2ZSB0aGVzZSBub3RpZmljYXRpb25zLCBiZWNhdXNlIE5T
VmlldyBpdHNlbGYgb2JzZXJ2ZXMgdGhlbS4KKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRl
ciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkT3JkZXJPZmZT
Y3JlZW46KSBuYW1lOkAiTlNXaW5kb3dEaWRPcmRlck9mZlNjcmVlbk5vdGlmaWNhdGlvbiIgb2Jq
ZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgYWRkT2JzZXJ2ZXI6
c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZE9yZGVyT25TY3JlZW46KSBuYW1lOkAi
X05TV2luZG93RGlkQmVjb21lVmlzaWJsZSIgb2JqZWN0OndpbmRvd107CisKKyAgICBbZGVmYXVs
dE5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihf
d2luZG93RGlkQmVjb21lS2V5OikgbmFtZTpOU1dpbmRvd0RpZEJlY29tZUtleU5vdGlmaWNhdGlv
biBvYmplY3Q6bmlsXTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZl
cjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkUmVzaWduS2V5OikgbmFtZTpOU1dp
bmRvd0RpZFJlc2lnbktleU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKKyAgICBbZGVmYXVsdE5v
dGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2lu
ZG93RGlkTWluaWF0dXJpemU6KSBuYW1lOk5TV2luZG93RGlkTWluaWF0dXJpemVOb3RpZmljYXRp
b24gb2JqZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgYWRkT2Jz
ZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX3dpbmRvd0RpZERlbWluaWF0dXJpemU6KSBu
YW1lOk5TV2luZG93RGlkRGVtaW5pYXR1cml6ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsK
KyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9y
OkBzZWxlY3Rvcihfd2luZG93RGlkTW92ZTopIG5hbWU6TlNXaW5kb3dEaWRNb3ZlTm90aWZpY2F0
aW9uIG9iamVjdDp3aW5kb3ddOworICAgIFtkZWZhdWx0Tm90aWZpY2F0aW9uQ2VudGVyIGFkZE9i
c2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRSZXNpemU6KSBuYW1lOk5T
V2luZG93RGlkUmVzaXplTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOworICAgIFtkZWZhdWx0
Tm90aWZpY2F0aW9uQ2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93
aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllczopIG5hbWU6TlNXaW5kb3dEaWRDaGFuZ2VC
YWNraW5nUHJvcGVydGllc05vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVmYXVs
dE5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihf
d2luZG93RGlkQ2hhbmdlU2NyZWVuOikgbmFtZTpOU1dpbmRvd0RpZENoYW5nZVNjcmVlbk5vdGlm
aWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciBh
ZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3Rvcihfd2luZG93RGlkQ2hhbmdlTGF5ZXJI
b3N0aW5nOikgbmFtZTpAIl9OU1dpbmRvd0RpZENoYW5nZUNvbnRlbnRzSG9zdGVkSW5MYXllclN1
cmZhY2VOb3RpZmljYXRpb24iIG9iamVjdDp3aW5kb3ddOworICAgIFtkZWZhdWx0Tm90aWZpY2F0
aW9uQ2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKF93aW5kb3dEaWRD
aGFuZ2VPY2NsdXNpb25TdGF0ZTopIG5hbWU6TlNXaW5kb3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0
ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTAwMAorICAgIFt3aW5kb3cgYWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQ
YXRoOkAiY29udGVudExheW91dFJlY3QiIG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlv
bkluaXRpYWwgY29udGV4dDprZXlWYWx1ZU9ic2VydmluZ0NvbnRleHRdOworICAgIFt3aW5kb3cg
YWRkT2JzZXJ2ZXI6c2VsZiBmb3JLZXlQYXRoOkAidGl0bGViYXJBcHBlYXJzVHJhbnNwYXJlbnQi
IG9wdGlvbnM6TlNLZXlWYWx1ZU9ic2VydmluZ09wdGlvbkluaXRpYWwgY29udGV4dDprZXlWYWx1
ZU9ic2VydmluZ0NvbnRleHRdOworI2VuZGlmCit9CisKKy0gKHZvaWQpc3RvcE9ic2VydmluZzoo
TlNXaW5kb3cgKil3aW5kb3cKK3sKKyAgICBpZiAoIXdpbmRvdykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgTlNOb3RpZmljYXRpb25DZW50ZXIgKmRlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgPSBb
TlNOb3RpZmljYXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl07CisKKyAgICBbZGVmYXVsdE5vdGlm
aWNhdGlvbkNlbnRlciByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6QCJOU1dpbmRvd0RpZE9yZGVy
T2ZmU2NyZWVuTm90aWZpY2F0aW9uIiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVmYXVsdE5vdGlm
aWNhdGlvbkNlbnRlciByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6QCJfTlNXaW5kb3dEaWRCZWNv
bWVWaXNpYmxlIiBvYmplY3Q6d2luZG93XTsKKworICAgIFtkZWZhdWx0Tm90aWZpY2F0aW9uQ2Vu
dGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZEJlY29tZUtleU5vdGlmaWNh
dGlvbiBvYmplY3Q6bmlsXTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciByZW1vdmVP
YnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRSZXNpZ25LZXlOb3RpZmljYXRpb24gb2JqZWN0
Om5pbF07CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2Vs
ZiBuYW1lOk5TV2luZG93RGlkTWluaWF0dXJpemVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107
CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1l
Ok5TV2luZG93RGlkRGVtaW5pYXR1cml6ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAg
ICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNlbnRlciByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNX
aW5kb3dEaWRNb3ZlTm90aWZpY2F0aW9uIG9iamVjdDp3aW5kb3ddOworICAgIFtkZWZhdWx0Tm90
aWZpY2F0aW9uQ2VudGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dpbmRvd0RpZFJlc2l6
ZU5vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNhdGlvbkNl
bnRlciByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJv
cGVydGllc05vdGlmaWNhdGlvbiBvYmplY3Q6d2luZG93XTsKKyAgICBbZGVmYXVsdE5vdGlmaWNh
dGlvbkNlbnRlciByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXaW5kb3dEaWRDaGFuZ2VTY3Jl
ZW5Ob3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107CisgICAgW2RlZmF1bHROb3RpZmljYXRpb25D
ZW50ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOkAiX05TV2luZG93RGlkQ2hhbmdlQ29udGVu
dHNIb3N0ZWRJbkxheWVyU3VyZmFjZU5vdGlmaWNhdGlvbiIgb2JqZWN0OndpbmRvd107CisgICAg
W2RlZmF1bHROb3RpZmljYXRpb25DZW50ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV2lu
ZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3RhdGVOb3RpZmljYXRpb24gb2JqZWN0OndpbmRvd107Cisj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICBpZiAoX2lt
cGwtPmlzRWRpdGFibGUoKSkKKyAgICAgICAgW1tOU0ZvbnRQYW5lbCBzaGFyZWRGb250UGFuZWxd
IHJlbW92ZU9ic2VydmVyOnNlbGYgZm9yS2V5UGF0aDpAInZpc2libGUiIGNvbnRleHQ6a2V5VmFs
dWVPYnNlcnZpbmdDb250ZXh0XTsKKyAgICBbd2luZG93IHJlbW92ZU9ic2VydmVyOnNlbGYgZm9y
S2V5UGF0aDpAImNvbnRlbnRMYXlvdXRSZWN0IiBjb250ZXh0OmtleVZhbHVlT2JzZXJ2aW5nQ29u
dGV4dF07CisgICAgW3dpbmRvdyByZW1vdmVPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJ0aXRs
ZWJhckFwcGVhcnNUcmFuc3BhcmVudCIgY29udGV4dDprZXlWYWx1ZU9ic2VydmluZ0NvbnRleHRd
OworI2VuZGlmCit9CisKKy0gKHZvaWQpc3RhcnRPYnNlcnZpbmdGb250UGFuZWwKK3sKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAorICAgIFtbTlNGb250UGFu
ZWwgc2hhcmVkRm9udFBhbmVsXSBhZGRPYnNlcnZlcjpzZWxmIGZvcktleVBhdGg6QCJ2aXNpYmxl
IiBvcHRpb25zOjAgY29udGV4dDprZXlWYWx1ZU9ic2VydmluZ0NvbnRleHRdOworI2VuZGlmCit9
CisKKy0gKHZvaWQpc3RhcnRPYnNlcnZpbmdMb29rdXBEaXNtaXNzYWwKK3sKKyAgICBpZiAoY2Fu
TG9hZExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9zZSgpKQorICAgICAgICBbW05TTm90aWZp
Y2F0aW9uQ2VudGVyIGRlZmF1bHRDZW50ZXJdIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNl
bGVjdG9yKF9kaWN0aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTopIG5hbWU6Z2V0TFVOb3Rp
ZmljYXRpb25Qb3BvdmVyV2lsbENsb3NlKCkgb2JqZWN0Om5pbF07Cit9CisKKy0gKHZvaWQpX3dp
bmRvd0RpZE9yZGVyT25TY3JlZW46KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7Cisg
ICAgX2ltcGwtPndpbmRvd0RpZE9yZGVyT25TY3JlZW4oKTsKK30KKworLSAodm9pZClfd2luZG93
RGlkT3JkZXJPZmZTY3JlZW46KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAg
X2ltcGwtPndpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuKCk7Cit9CisKKy0gKHZvaWQpX3dpbmRvd0Rp
ZEJlY29tZUtleTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAgICBfaW1wbC0+
d2luZG93RGlkQmVjb21lS2V5KFtub3RpZmljYXRpb24gb2JqZWN0XSk7Cit9CisKKy0gKHZvaWQp
X3dpbmRvd0RpZFJlc2lnbktleTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KK3sKKyAg
ICBfaW1wbC0+d2luZG93RGlkUmVzaWduS2V5KFtub3RpZmljYXRpb24gb2JqZWN0XSk7Cit9CisK
Ky0gKHZvaWQpX3dpbmRvd0RpZE1pbmlhdHVyaXplOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNh
dGlvbgoreworICAgIF9pbXBsLT53aW5kb3dEaWRNaW5pYXR1cml6ZSgpOworfQorCistICh2b2lk
KV93aW5kb3dEaWREZW1pbmlhdHVyaXplOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgor
eworICAgIF9pbXBsLT53aW5kb3dEaWREZW1pbmlhdHVyaXplKCk7Cit9CisKKy0gKHZvaWQpX3dp
bmRvd0RpZE1vdmU6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgX2ltcGwt
PndpbmRvd0RpZE1vdmUoKTsKK30KKworLSAodm9pZClfd2luZG93RGlkUmVzaXplOihOU05vdGlm
aWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIF9pbXBsLT53aW5kb3dEaWRSZXNpemUoKTsK
K30KKworLSAodm9pZClfd2luZG93RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXM6KE5TTm90aWZp
Y2F0aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgQ0dGbG9hdCBvbGRCYWNraW5nU2NhbGVGYWN0
b3IgPSBbW25vdGlmaWNhdGlvbi51c2VySW5mbyBvYmplY3RGb3JLZXk6TlNCYWNraW5nUHJvcGVy
dHlPbGRTY2FsZUZhY3RvcktleV0gZG91YmxlVmFsdWVdOworICAgIF9pbXBsLT53aW5kb3dEaWRD
aGFuZ2VCYWNraW5nUHJvcGVydGllcyhvbGRCYWNraW5nU2NhbGVGYWN0b3IpOworfQorCistICh2
b2lkKV93aW5kb3dEaWRDaGFuZ2VTY3JlZW46KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9u
Cit7CisgICAgX2ltcGwtPndpbmRvd0RpZENoYW5nZVNjcmVlbigpOworfQorCistICh2b2lkKV93
aW5kb3dEaWRDaGFuZ2VMYXllckhvc3Rpbmc6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9u
Cit7CisgICAgX2ltcGwtPndpbmRvd0RpZENoYW5nZUxheWVySG9zdGluZygpOworfQorCistICh2
b2lkKV93aW5kb3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0ZTooTlNOb3RpZmljYXRpb24gKilub3Rp
ZmljYXRpb24KK3sKKyAgICBfaW1wbC0+d2luZG93RGlkQ2hhbmdlT2NjbHVzaW9uU3RhdGUoKTsK
K30KKworLSAodm9pZClvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOihOU1N0cmluZyAqKWtleVBhdGgg
b2ZPYmplY3Q6KGlkKW9iamVjdCBjaGFuZ2U6KE5TRGljdGlvbmFyeSAqKWNoYW5nZSBjb250ZXh0
Oih2b2lkICopY29udGV4dAoreworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxMDAwCisgICAgaWYgKGNvbnRleHQgIT0ga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0KSB7
CisgICAgICAgIFtzdXBlciBvYnNlcnZlVmFsdWVGb3JLZXlQYXRoOmtleVBhdGggb2ZPYmplY3Q6
b2JqZWN0IGNoYW5nZTpjaGFuZ2UgY29udGV4dDpjb250ZXh0XTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGlmIChba2V5UGF0aCBpc0VxdWFsVG9TdHJpbmc6QCJ2aXNpYmxlIl0gJiYg
W05TRm9udFBhbmVsIHNoYXJlZEZvbnRQYW5lbEV4aXN0c10gJiYgb2JqZWN0ID09IFtOU0ZvbnRQ
YW5lbCBzaGFyZWRGb250UGFuZWxdKSB7CisgICAgICAgIF9pbXBsLT51cGRhdGVGb250UGFuZWxJ
Zk5lZWRlZCgpOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChba2V5UGF0aCBpc0Vx
dWFsVG9TdHJpbmc6QCJjb250ZW50TGF5b3V0UmVjdCJdIHx8IFtrZXlQYXRoIGlzRXF1YWxUb1N0
cmluZzpAInRpdGxlYmFyQXBwZWFyc1RyYW5zcGFyZW50Il0pCisgICAgICAgIF9pbXBsLT51cGRh
dGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWMoKTsKKyNlbmRpZgorfQorCistICh2b2lkKV9kaWN0
aW9uYXJ5TG9va3VwUG9wb3ZlcldpbGxDbG9zZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRp
b24KK3sKKyAgICBfaW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKK30KKworQGVu
ZAorCitAaW50ZXJmYWNlIFdLRWRpdENvbW1hbmRPYmpDIDogTlNPYmplY3QgeworICAgIFJlZlB0
cjxXZWJLaXQ6OldlYkVkaXRDb21tYW5kUHJveHk+IG1fY29tbWFuZDsKK30KKy0gKGlkKWluaXRX
aXRoV2ViRWRpdENvbW1hbmRQcm94eTooUmVmUHRyPFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94
eT4pY29tbWFuZDsKKy0gKFdlYktpdDo6V2ViRWRpdENvbW1hbmRQcm94eSopY29tbWFuZDsKK0Bl
bmQKKworQGludGVyZmFjZSBXS0VkaXRvclVuZG9UYXJnZXRPYmpDIDogTlNPYmplY3QKKy0gKHZv
aWQpdW5kb0VkaXRpbmc6KGlkKXNlbmRlcjsKKy0gKHZvaWQpcmVkb0VkaXRpbmc6KGlkKXNlbmRl
cjsKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLRWRpdENvbW1hbmRPYmpDCisKKy0gKGlkKWlu
aXRXaXRoV2ViRWRpdENvbW1hbmRQcm94eTooUmVmUHRyPFdlYktpdDo6V2ViRWRpdENvbW1hbmRQ
cm94eT4pY29tbWFuZAoreworICAgIHNlbGYgPSBbc3VwZXIgaW5pdF07CisgICAgaWYgKCFzZWxm
KQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgbV9jb21tYW5kID0gY29tbWFuZDsKKyAgICBy
ZXR1cm4gc2VsZjsKK30KKworLSAoV2ViS2l0OjpXZWJFZGl0Q29tbWFuZFByb3h5Kiljb21tYW5k
Cit7CisgICAgcmV0dXJuIG1fY29tbWFuZC5nZXQoKTsKK30KKworQGVuZAorCitAaW1wbGVtZW50
YXRpb24gV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQworCistICh2b2lkKXVuZG9FZGl0aW5nOihpZClz
ZW5kZXIKK3sKKyAgICBBU1NFUlQoW3NlbmRlciBpc0tpbmRPZkNsYXNzOltXS0VkaXRDb21tYW5k
T2JqQyBjbGFzc11dKTsKKyAgICBbc2VuZGVyIGNvbW1hbmRdLT51bmFwcGx5KCk7Cit9CisKKy0g
KHZvaWQpcmVkb0VkaXRpbmc6KGlkKXNlbmRlcgoreworICAgIEFTU0VSVChbc2VuZGVyIGlzS2lu
ZE9mQ2xhc3M6W1dLRWRpdENvbW1hbmRPYmpDIGNsYXNzXV0pOworICAgIFtzZW5kZXIgY29tbWFu
ZF0tPnJlYXBwbHkoKTsKK30KKworQGVuZAogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotV2ViVmll
d0ltcGw6OldlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKnZpZXcsIFdl
YlBhZ2VQcm94eSYgcGFnZSkKK1dlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChOU1ZpZXcgPFdlYlZp
ZXdJbXBsRGVsZWdhdGU+ICp2aWV3LCBXZWJQYWdlUHJveHkmIHBhZ2UsIFBhZ2VDbGllbnQmIHBh
Z2VDbGllbnQpCiAgICAgOiBtX3ZpZXcodmlldykKICAgICAsIG1fcGFnZShwYWdlKQorICAgICwg
bV9wYWdlQ2xpZW50KHBhZ2VDbGllbnQpCisgICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCisg
ICAgLCBtX25lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyhtX3BhZ2UucHJlZmVyZW5j
ZXMoKS5wbHVnaW5zRW5hYmxlZCgpKQogICAgICwgbV9pbnRyaW5zaWNDb250ZW50U2l6ZShDR1Np
emVNYWtlKE5TVmlld05vSW5zdHJpbnNpY01ldHJpYywgTlNWaWV3Tm9JbnN0cmluc2ljTWV0cmlj
KSkKICAgICAsIG1fbGF5b3V0U3RyYXRlZ3koW1dLVmlld0xheW91dFN0cmF0ZWd5IGxheW91dFN0
cmF0ZWd5V2l0aFBhZ2U6bV9wYWdlIHZpZXc6bV92aWV3IHZpZXdJbXBsOip0aGlzIG1vZGU6a1dL
TGF5b3V0TW9kZVZpZXdTaXplXSkKKyAgICAsIG1fdW5kb1RhcmdldChhZG9wdE5TKFtbV0tFZGl0
b3JVbmRvVGFyZ2V0T2JqQyBhbGxvY10gaW5pdF0pKQorICAgICwgbV93aW5kb3dWaXNpYmlsaXR5
T2JzZXJ2ZXIoYWRvcHROUyhbW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIGFsbG9jXSBpbml0
V2l0aFZpZXc6dmlldyBpbXBsOip0aGlzXSkpCiB7CisgICAgbV9wYWdlLnNldEludHJpbnNpY0Rl
dmljZVNjYWxlRmFjdG9yKGludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKCkpOworCisjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICBpZiAoQ2xhc3MgZ2Vz
dHVyZUNsYXNzID0gTlNDbGFzc0Zyb21TdHJpbmcoQCJOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVS
ZWNvZ25pemVyIikpIHsKKyAgICAgICAgbV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXpl
ciA9IGFkb3B0TlMoWyhOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICopW2dlc3R1
cmVDbGFzcyBhbGxvY10gaW5pdF0pOworICAgICAgICBtX2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xs
ZXIgPSBhZG9wdE5TKFtbV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGFsbG9jXSBpbml0V2l0
aFBhZ2U6bV9wYWdlIHZpZXc6bV92aWV3IHZpZXdJbXBsOip0aGlzIHJlY29nbml6ZXI6bV9pbW1l
ZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQoKV0pOworICAgICAgICBbbV9pbW1lZGlh
dGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciBzZXREZWxlZ2F0ZTptX2ltbWVkaWF0ZUFjdGlvbkNv
bnRyb2xsZXIuZ2V0KCldOworICAgICAgICBbbV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2du
aXplciBzZXREZWxheXNQcmltYXJ5TW91c2VCdXR0b25FdmVudHM6Tk9dOworICAgIH0KKyNlbmRp
ZgogfQogCiBXZWJWaWV3SW1wbDo6fldlYlZpZXdJbXBsKCkKQEAgLTU3LDYgKzMyNCwxMCBAQCBX
ZWJWaWV3SW1wbDo6fldlYlZpZXdJbXBsKCkKICAgICBBU1NFUlQoIW1faW5TZWN1cmVJbnB1dFN0
YXRlKTsKIAogICAgIFttX2xheW91dFN0cmF0ZWd5IGludmFsaWRhdGVdOworCisjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICBbbV9pbW1lZGlhdGVBY3Rp
b25Db250cm9sbGVyIHdpbGxEZXN0cm95VmlldzptX3ZpZXddOworI2VuZGlmCiB9CiAKIHZvaWQg
V2ViVmlld0ltcGw6OnNldERyYXdzQmFja2dyb3VuZChib29sIGRyYXdzQmFja2dyb3VuZCkKQEAg
LTg5LDcgKzM2MCw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKCkK
ICAgICAvLyBJZiB3ZSBqdXN0IGJlY2FtZSBmaXJzdCByZXNwb25kZXIgYWdhaW4sIHRoZXJlIGlz
IG5vIG5lZWQgdG8gZG8gYW55dGhpbmcsCiAgICAgLy8gc2luY2UgcmVzaWduRmlyc3RSZXNwb25k
ZXIgaGFzIGNvcnJlY3RseSBkZXRlY3RlZCB0aGlzIHNpdHVhdGlvbi4KICAgICBpZiAobV93aWxs
QmVjb21lRmlyc3RSZXNwb25kZXJBZ2FpbikgewotICAgICAgICBtX3dpbGxCZWNvbWVGaXJzdFJl
c3BvbmRlckFnYWluID0gTk87CisgICAgICAgIG1fd2lsbEJlY29tZUZpcnN0UmVzcG9uZGVyQWdh
aW4gPSBmYWxzZTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0xMjgsNyArMzk5
LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6cmVzaWduRmlyc3RSZXNwb25kZXIoKQogICAgIH0KICNl
bmRpZgogCi0gICAgbV93aWxsQmVjb21lRmlyc3RSZXNwb25kZXJBZ2FpbiA9IE5POworICAgIG1f
d2lsbEJlY29tZUZpcnN0UmVzcG9uZGVyQWdhaW4gPSBmYWxzZTsKICAgICBtX2luUmVzaWduRmly
c3RSZXNwb25kZXIgPSB0cnVlOwogCiAjaWYgVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQpA
QCAtMTc1LDYgKzQ0NiwxOCBAQCB2b2lkIFdlYlZpZXdJbXBsOjp2aWV3RGlkRW5kTGl2ZVJlc2l6
ZSgpCiAgICAgW21fbGF5b3V0U3RyYXRlZ3kgZGlkRW5kTGl2ZVJlc2l6ZV07CiB9CiAKK3ZvaWQg
V2ViVmlld0ltcGw6OnJlbmV3R1N0YXRlKCkKK3sKKyAgICBpZiAobV90ZXh0SW5kaWNhdG9yV2lu
ZG93KQorICAgICAgICBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1h
dGlvbihmYWxzZSk7CisKKyAgICAvLyBVcGRhdGUgdGhlIHZpZXcgZnJhbWUuCisgICAgaWYgKG1f
dmlldy53aW5kb3cpCisgICAgICAgIHVwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXMoKTsKKworICAg
IHVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9tYXRpYygpOworfQorCiB2b2lkIFdlYlZpZXdJbXBs
OjpzZXRGcmFtZVNpemUoQ0dTaXplKQogewogICAgIFttX2xheW91dFN0cmF0ZWd5IGRpZENoYW5n
ZUZyYW1lU2l6ZV07CkBAIC0yMDMsNiArNDg2LDM5IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldEZy
YW1lQW5kU2Nyb2xsQnkoQ0dSZWN0IGZyYW1lLCBDR1NpemUgb2Zmc2V0KQogICAgIG1fdmlldy5m
cmFtZSA9IE5TUmVjdEZyb21DR1JlY3QoZnJhbWUpOwogfQogCit2b2lkIFdlYlZpZXdJbXBsOjp1
cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzKCkKK3sKKyAgICBpZiAoY2xpcHNUb1Zpc2libGVSZWN0
KCkpCisgICAgICAgIHVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgpOworCisgICAgaWYgKG1fZGlkU2No
ZWR1bGVXaW5kb3dBbmRWaWV3RnJhbWVVcGRhdGUpCisgICAgICAgIHJldHVybjsKKworICAgIG1f
ZGlkU2NoZWR1bGVXaW5kb3dBbmRWaWV3RnJhbWVVcGRhdGUgPSB0cnVlOworCisgICAgYXV0byB3
ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICBkaXNwYXRjaF9hc3luYyhkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpLCBbd2Vha1RoaXNdIHsKKyAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICB3ZWFrVGhpcy0+bV9kaWRTY2hlZHVsZVdpbmRv
d0FuZFZpZXdGcmFtZVVwZGF0ZSA9IGZhbHNlOworCisgICAgICAgIE5TUmVjdCB2aWV3RnJhbWVJ
bldpbmRvd0Nvb3JkaW5hdGVzID0gTlNaZXJvUmVjdDsKKyAgICAgICAgTlNQb2ludCBhY2Nlc3Np
YmlsaXR5UG9zaXRpb24gPSBOU1plcm9Qb2ludDsKKworICAgICAgICBpZiAod2Vha1RoaXMtPm1f
bmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKQorICAgICAgICAgICAgdmlld0ZyYW1l
SW5XaW5kb3dDb29yZGluYXRlcyA9IFt3ZWFrVGhpcy0+bV92aWV3IGNvbnZlcnRSZWN0OndlYWtU
aGlzLT5tX3ZpZXcuZnJhbWUgdG9WaWV3Om5pbF07CisKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRl
Y2xhcmF0aW9ucyIKKyAgICAgICAgaWYgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmFjY2Vzc2li
aWxpdHlFbmFibGVkKCkpCisgICAgICAgICAgICBhY2Nlc3NpYmlsaXR5UG9zaXRpb24gPSBbW3dl
YWtUaGlzLT5tX3ZpZXcgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0
eVBvc2l0aW9uQXR0cmlidXRlXSBwb2ludFZhbHVlXTsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICAgICAgCisgICAgICAgIHdlYWtUaGlzLT5tX3BhZ2Uud2luZG93QW5kVmlld0Zy
YW1lc0NoYW5nZWQodmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywgYWNjZXNzaWJpbGl0eVBv
c2l0aW9uKTsKKyAgICB9KTsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6c2V0Rml4ZWRMYXlvdXRT
aXplKENHU2l6ZSBmaXhlZExheW91dFNpemUpCiB7CiAgICAgbV9wYWdlLnNldEZpeGVkTGF5b3V0
U2l6ZShXZWJDb3JlOjpleHBhbmRlZEludFNpemUoV2ViQ29yZTo6RmxvYXRTaXplKGZpeGVkTGF5
b3V0U2l6ZSkpKTsKQEAgLTIyMiw2ICs1MzgsNTUgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0RHJh
d2luZ0FyZWFTaXplKENHU2l6ZSBzaXplKQogICAgIG1fcmVzaXplU2Nyb2xsT2Zmc2V0ID0gQ0dT
aXplWmVybzsKIH0KIAordm9pZCBXZWJWaWV3SW1wbDo6c2V0QXV0b21hdGljYWxseUFkanVzdHND
b250ZW50SW5zZXRzKGJvb2wgYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzKQorewor
ICAgIG1fYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzID0gYXV0b21hdGljYWxseUFk
anVzdHNDb250ZW50SW5zZXRzOworICAgIHVwZGF0ZUNvbnRlbnRJbnNldHNJZkF1dG9tYXRpYygp
OworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVDb250ZW50SW5zZXRzSWZBdXRvbWF0aWMo
KQoreworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCisgICAg
aWYgKCFtX2F1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cykKKyAgICAgICAgcmV0dXJu
OworCisgICAgTlNXaW5kb3cgKndpbmRvdyA9IG1fdmlldy53aW5kb3c7CisgICAgaWYgKCh3aW5k
b3cuc3R5bGVNYXNrICYgTlNGdWxsU2l6ZUNvbnRlbnRWaWV3V2luZG93TWFzaykgJiYgIXdpbmRv
dy50aXRsZWJhckFwcGVhcnNUcmFuc3BhcmVudCAmJiAhW21fdmlldyBlbmNsb3NpbmdTY3JvbGxW
aWV3XSkgeworICAgICAgICBOU1JlY3QgY29udGVudExheW91dFJlY3QgPSBbbV92aWV3IGNvbnZl
cnRSZWN0OndpbmRvdy5jb250ZW50TGF5b3V0UmVjdCBmcm9tVmlldzpuaWxdOworICAgICAgICBD
R0Zsb2F0IG5ld1RvcENvbnRlbnRJbnNldCA9IE5TTWF4WShjb250ZW50TGF5b3V0UmVjdCkgLSBO
U0hlaWdodChjb250ZW50TGF5b3V0UmVjdCk7CisgICAgICAgIGlmIChtX3RvcENvbnRlbnRJbnNl
dCAhPSBuZXdUb3BDb250ZW50SW5zZXQpCisgICAgICAgICAgICBzZXRUb3BDb250ZW50SW5zZXQo
bmV3VG9wQ29udGVudEluc2V0KTsKKyAgICB9IGVsc2UKKyAgICAgICAgc2V0VG9wQ29udGVudElu
c2V0KDApOworI2VuZGlmCit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldFRvcENvbnRlbnRJbnNl
dChDR0Zsb2F0IGNvbnRlbnRJbnNldCkKK3sKKyAgICBtX3RvcENvbnRlbnRJbnNldCA9IGNvbnRl
bnRJbnNldDsKKworICAgIGlmIChtX2RpZFNjaGVkdWxlU2V0VG9wQ29udGVudEluc2V0KQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2RpZFNjaGVkdWxlU2V0VG9wQ29udGVudEluc2V0ID0gdHJ1
ZTsKKworICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CisgICAgZGlzcGF0Y2hf
YXN5bmMoZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSwgW3dlYWtUaGlzXSB7CisgICAgICAgIGlm
ICghd2Vha1RoaXMpCisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIHdlYWtUaGlzLT5kaXNw
YXRjaFNldFRvcENvbnRlbnRJbnNldCgpOworICAgIH0pOworfQorCit2b2lkIFdlYlZpZXdJbXBs
OjpkaXNwYXRjaFNldFRvcENvbnRlbnRJbnNldCgpCit7CisgICAgaWYgKCFtX2RpZFNjaGVkdWxl
U2V0VG9wQ29udGVudEluc2V0KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2RpZFNjaGVkdWxl
U2V0VG9wQ29udGVudEluc2V0ID0gZmFsc2U7CisgICAgbV9wYWdlLnNldFRvcENvbnRlbnRJbnNl
dChtX3RvcENvbnRlbnRJbnNldCk7Cit9CisKIHZvaWQgV2ViVmlld0ltcGw6OnNldENvbnRlbnRQ
cmVwYXJhdGlvblJlY3QoQ0dSZWN0IHJlY3QpCiB7CiAgICAgbV9jb250ZW50UHJlcGFyYXRpb25S
ZWN0ID0gcmVjdDsKQEAgLTMzNyw2ICs3MDIsMjcwIEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0
ZVN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMoKQogICAgIH0KIH0KIAordm9pZCBXZWJWaWV3
SW1wbDo6c2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcihDR0Zsb2F0IGRldmljZVNjYWxlRmFj
dG9yKQoreworICAgIG1fb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvciA9IGRldmljZVNjYWxlRmFj
dG9yOworICAgIG1fcGFnZS5zZXRJbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcihpbnRyaW5zaWNE
ZXZpY2VTY2FsZUZhY3RvcigpKTsKK30KKworZmxvYXQgV2ViVmlld0ltcGw6OmludHJpbnNpY0Rl
dmljZVNjYWxlRmFjdG9yKCkgY29uc3QKK3sKKyAgICBpZiAobV9vdmVycmlkZURldmljZVNjYWxl
RmFjdG9yKQorICAgICAgICByZXR1cm4gbV9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yOworICAg
IGlmIChtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbikKKyAgICAgICAgcmV0dXJuIG1f
dGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uLmJhY2tpbmdTY2FsZUZhY3RvcjsKKyAgICBp
ZiAoTlNXaW5kb3cgKndpbmRvdyA9IG1fdmlldy53aW5kb3cpCisgICAgICAgIHJldHVybiB3aW5k
b3cuYmFja2luZ1NjYWxlRmFjdG9yOworICAgIHJldHVybiBbTlNTY3JlZW4gbWFpblNjcmVlbl0u
YmFja2luZ1NjYWxlRmFjdG9yOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRPcmRl
ck9mZlNjcmVlbigpCit7CisgICAgbV9wYWdlLnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpW
aWV3U3RhdGU6OklzVmlzaWJsZSB8IFdlYkNvcmU6OlZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUp
OworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRPcmRlck9uU2NyZWVuKCkKK3sKKyAg
ICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxl
IHwgV2ViQ29yZTo6Vmlld1N0YXRlOjpXaW5kb3dJc0FjdGl2ZSk7Cit9CisKK3ZvaWQgV2ViVmll
d0ltcGw6OndpbmRvd0RpZEJlY29tZUtleShOU1dpbmRvdyAqa2V5V2luZG93KQoreworICAgIGlm
IChrZXlXaW5kb3cgPT0gbV92aWV3LndpbmRvdyB8fCBrZXlXaW5kb3cgPT0gbV92aWV3LndpbmRv
dy5hdHRhY2hlZFNoZWV0KSB7CisgICAgICAgIHVwZGF0ZVNlY3VyZUlucHV0U3RhdGUoKTsKKyAg
ICAgICAgbV9wYWdlLnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRv
d0lzQWN0aXZlKTsKKyAgICB9Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZFJlc2ln
bktleShOU1dpbmRvdyAqZm9ybWVyS2V5V2luZG93KQoreworICAgIGlmIChmb3JtZXJLZXlXaW5k
b3cgPT0gbV92aWV3LndpbmRvdyB8fCBmb3JtZXJLZXlXaW5kb3cgPT0gbV92aWV3LndpbmRvdy5h
dHRhY2hlZFNoZWV0KSB7CisgICAgICAgIHVwZGF0ZVNlY3VyZUlucHV0U3RhdGUoKTsKKyAgICAg
ICAgbV9wYWdlLnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRvd0lz
QWN0aXZlKTsKKyAgICB9Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZE1pbmlhdHVy
aXplKCkKK3sKKyAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0
ZTo6SXNWaXNpYmxlKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkRGVtaW5pYXR1
cml6ZSgpCit7CisgICAgbV9wYWdlLnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3Rh
dGU6OklzVmlzaWJsZSk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZE1vdmUoKQor
eworICAgIHVwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXMoKTsKK30KKwordm9pZCBXZWJWaWV3SW1w
bDo6d2luZG93RGlkUmVzaXplKCkKK3sKKyAgICB1cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzKCk7
Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVz
KENHRmxvYXQgb2xkQmFja2luZ1NjYWxlRmFjdG9yKQoreworICAgIENHRmxvYXQgbmV3QmFja2lu
Z1NjYWxlRmFjdG9yID0gaW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoKTsKKyAgICBpZiAob2xk
QmFja2luZ1NjYWxlRmFjdG9yID09IG5ld0JhY2tpbmdTY2FsZUZhY3RvcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgbV9wYWdlLnNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKG5ld0JhY2tp
bmdTY2FsZUZhY3Rvcik7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZENoYW5nZVNj
cmVlbigpCit7CisgICAgTlNXaW5kb3cgKndpbmRvdyA9IG1fdGFyZ2V0V2luZG93Rm9yTW92ZVBy
ZXBhcmF0aW9uID8gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gOiBtX3ZpZXcud2lu
ZG93OworICAgIG1fcGFnZS53aW5kb3dTY3JlZW5EaWRDaGFuZ2UoKFBsYXRmb3JtRGlzcGxheUlE
KVtbW1t3aW5kb3cgc2NyZWVuXSBkZXZpY2VEZXNjcmlwdGlvbl0gb2JqZWN0Rm9yS2V5OkAiTlNT
Y3JlZW5OdW1iZXIiXSBpbnRWYWx1ZV0pOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dE
aWRDaGFuZ2VMYXllckhvc3RpbmcoKQoreworICAgIG1fcGFnZS5sYXllckhvc3RpbmdNb2RlRGlk
Q2hhbmdlKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZENoYW5nZU9jY2x1c2lv
blN0YXRlKCkKK3sKKyAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdT
dGF0ZTo6SXNWaXNpYmxlKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6dmlld1dpbGxNb3ZlVG9X
aW5kb3coTlNXaW5kb3cgKndpbmRvdykKK3sKKyAgICAvLyBJZiB3ZSdyZSBpbiB0aGUgbWlkZGxl
IG9mIHByZXBhcmluZyB0byBtb3ZlIHRvIGEgd2luZG93LCB3ZSBzaG91bGQgb25seSBiZSBtb3Zl
ZCB0byB0aGF0IHdpbmRvdy4KKyAgICBBU1NFUlQoIW1fdGFyZ2V0V2luZG93Rm9yTW92ZVByZXBh
cmF0aW9uIHx8IChtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA9PSB3aW5kb3cpKTsK
KworICAgIE5TV2luZG93ICpjdXJyZW50V2luZG93ID0gbV92aWV3LndpbmRvdzsKKyAgICBpZiAo
d2luZG93ID09IGN1cnJlbnRXaW5kb3cpCisgICAgICAgIHJldHVybjsKKworICAgIGNsZWFyQWxs
RWRpdENvbW1hbmRzKCk7CisKKyAgICBOU1dpbmRvdyAqc3RvcE9ic2VydmluZ1dpbmRvdyA9IG1f
dGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uID8gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJl
cGFyYXRpb24gOiBtX3ZpZXcud2luZG93OworICAgIFttX3dpbmRvd1Zpc2liaWxpdHlPYnNlcnZl
ciBzdG9wT2JzZXJ2aW5nOnN0b3BPYnNlcnZpbmdXaW5kb3ddOworICAgIFttX3dpbmRvd1Zpc2li
aWxpdHlPYnNlcnZlciBzdGFydE9ic2VydmluZzp3aW5kb3ddOworfQorCit2b2lkIFdlYlZpZXdJ
bXBsOjp2aWV3RGlkTW92ZVRvV2luZG93KCkKK3sKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gbV90
YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gPyBtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVw
YXJhdGlvbiA6IG1fdmlldy53aW5kb3c7CisKKyAgICBpZiAod2luZG93KSB7CisgICAgICAgIHdp
bmRvd0RpZENoYW5nZVNjcmVlbigpOworCisgICAgICAgIFdlYkNvcmU6OlZpZXdTdGF0ZTo6Rmxh
Z3Mgdmlld1N0YXRlQ2hhbmdlcyA9IFdlYkNvcmU6OlZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUg
fCBXZWJDb3JlOjpWaWV3U3RhdGU6OklzVmlzaWJsZTsKKyAgICAgICAgaWYgKG1faXNEZWZlcnJp
bmdWaWV3SW5XaW5kb3dDaGFuZ2VzKQorICAgICAgICAgICAgbV92aWV3SW5XaW5kb3dDaGFuZ2VX
YXNEZWZlcnJlZCA9IHRydWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZpZXdTdGF0ZUNo
YW5nZXMgfD0gV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0luV2luZG93OworICAgICAgICBtX3BhZ2Uu
dmlld1N0YXRlRGlkQ2hhbmdlKHZpZXdTdGF0ZUNoYW5nZXMpOworCisgICAgICAgIHVwZGF0ZVdp
bmRvd0FuZFZpZXdGcmFtZXMoKTsKKworICAgICAgICAvLyBGSVhNRSgxMzU1MDkpIFRoaXMgY2Fs
bCBiZWNvbWVzIHVubmVjZXNzYXJ5IG9uY2UgMTM1NTA5IGlzIGZpeGVkOyByZW1vdmUuCisgICAg
ICAgIG1fcGFnZS5sYXllckhvc3RpbmdNb2RlRGlkQ2hhbmdlKCk7CisKKyAgICAgICAgaWYgKCFt
X2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvcikgeworICAgICAgICAgICAgYXV0byB3ZWFrVGhpcyA9
IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICAgICAgICAgIG1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9y
ID0gW05TRXZlbnQgYWRkTG9jYWxNb25pdG9yRm9yRXZlbnRzTWF0Y2hpbmdNYXNrOk5TRmxhZ3ND
aGFuZ2VkTWFzayBoYW5kbGVyOlt3ZWFrVGhpc10gKE5TRXZlbnQgKmZsYWdzQ2hhbmdlZEV2ZW50
KSB7CisgICAgICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQorICAgICAgICAgICAgICAgICAgICB3
ZWFrVGhpcy0+cG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudChmbGFn
c0NoYW5nZWRFdmVudCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGZsYWdzQ2hhbmdlZEV2ZW50
OworICAgICAgICAgICAgfV07CisgICAgICAgIH0KKworICAgICAgICBhY2Nlc3NpYmlsaXR5UmVn
aXN0ZXJVSVByb2Nlc3NUb2tlbnMoKTsKKworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVR
VUlSRUQgPj0gMTAxMDAwCisgICAgICAgIGlmIChtX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNv
Z25pemVyICYmICFbW21fdmlldyBnZXN0dXJlUmVjb2duaXplcnNdIGNvbnRhaW5zT2JqZWN0Om1f
aW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIuZ2V0KCldICYmICFtX2lnbm9yZXNOb25X
aGVlbEV2ZW50cyAmJiBtX2FsbG93c0xpbmtQcmV2aWV3KQorICAgICAgICAgICAgW21fdmlldyBh
ZGRHZXN0dXJlUmVjb2duaXplcjptX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyLmdl
dCgpXTsKKyNlbmRpZgorICAgIH0gZWxzZSB7CisgICAgICAgIFdlYkNvcmU6OlZpZXdTdGF0ZTo6
RmxhZ3Mgdmlld1N0YXRlQ2hhbmdlcyA9IFdlYkNvcmU6OlZpZXdTdGF0ZTo6V2luZG93SXNBY3Rp
dmUgfCBXZWJDb3JlOjpWaWV3U3RhdGU6OklzVmlzaWJsZTsKKyAgICAgICAgaWYgKG1faXNEZWZl
cnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzKQorICAgICAgICAgICAgbV92aWV3SW5XaW5kb3dDaGFu
Z2VXYXNEZWZlcnJlZCA9IHRydWU7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHZpZXdTdGF0
ZUNoYW5nZXMgfD0gV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0luV2luZG93OworICAgICAgICBtX3Bh
Z2Uudmlld1N0YXRlRGlkQ2hhbmdlKHZpZXdTdGF0ZUNoYW5nZXMpOworCisgICAgICAgIFtOU0V2
ZW50IHJlbW92ZU1vbml0b3I6bV9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3JdOworICAgICAgICBt
X2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IG5pbDsKKworICAgICAgICBkaXNtaXNzQ29udGVu
dFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbihmYWxzZSk7CisKKyNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAorICAgICAgICBpZiAobV9pbW1lZGlh
dGVBY3Rpb25HZXN0dXJlUmVjb2duaXplcikKKyAgICAgICAgICAgIFttX3ZpZXcgcmVtb3ZlR2Vz
dHVyZVJlY29nbml6ZXI6bV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQoKV07
CisjZW5kaWYKKyAgICB9CisKKyAgICBtX3BhZ2Uuc2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0
b3IoaW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoKSk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6
OnZpZXdEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllcygpCit7CisgICAgTlNDb2xvclNwYWNlICpj
b2xvclNwYWNlID0gbV92aWV3LndpbmRvdy5jb2xvclNwYWNlOworICAgIGlmIChbY29sb3JTcGFj
ZSBpc0VxdWFsVG86bV9jb2xvclNwYWNlLmdldCgpXSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9jb2xvclNwYWNlID0gbnVsbHB0cjsKKyAgICBpZiAoRHJhd2luZ0FyZWFQcm94eSAqZHJhd2lu
Z0FyZWEgPSBtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKKyAgICAgICAgZHJhd2luZ0FyZWEtPmNvbG9y
U3BhY2VEaWRDaGFuZ2UoKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6cG9zdEZha2VNb3VzZU1v
dmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudChOU0V2ZW50ICpmbGFnc0NoYW5nZWRFdmVudCkK
K3sKKyAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6
TlNNb3VzZU1vdmVkIGxvY2F0aW9uOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvdy5tb3VzZUxvY2F0
aW9uT3V0c2lkZU9mRXZlbnRTdHJlYW0KKyAgICAgICAgbW9kaWZpZXJGbGFnczpmbGFnc0NoYW5n
ZWRFdmVudC5tb2RpZmllckZsYWdzIHRpbWVzdGFtcDpmbGFnc0NoYW5nZWRFdmVudC50aW1lc3Rh
bXAgd2luZG93TnVtYmVyOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvd051bWJlcgorICAgICAgICBj
b250ZXh0OmZsYWdzQ2hhbmdlZEV2ZW50LmNvbnRleHQgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50
OjAgcHJlc3N1cmU6MF07CisgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudChmYWtlRXZl
bnQsIG1fbGFzdFByZXNzdXJlRXZlbnQuZ2V0KCksIG1fdmlldyk7CisgICAgbV9wYWdlLmhhbmRs
ZU1vdXNlRXZlbnQod2ViRXZlbnQpOworfQorCitDb2xvclNwYWNlRGF0YSBXZWJWaWV3SW1wbDo6
Y29sb3JTcGFjZSgpCit7CisgICAgaWYgKCFtX2NvbG9yU3BhY2UpIHsKKyAgICAgICAgaWYgKG1f
dGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uKQorICAgICAgICAgICAgbV9jb2xvclNwYWNl
ID0gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24uY29sb3JTcGFjZTsKKyAgICAgICAg
ZWxzZSBpZiAoTlNXaW5kb3cgKndpbmRvdyA9IG1fdmlldy53aW5kb3cpCisgICAgICAgICAgICBt
X2NvbG9yU3BhY2UgPSB3aW5kb3cuY29sb3JTcGFjZTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgbV9jb2xvclNwYWNlID0gW05TU2NyZWVuIG1haW5TY3JlZW5dLmNvbG9yU3BhY2U7CisgICAg
fQorCisgICAgQ29sb3JTcGFjZURhdGEgY29sb3JTcGFjZURhdGE7CisgICAgY29sb3JTcGFjZURh
dGEuY2dDb2xvclNwYWNlID0gW21fY29sb3JTcGFjZSBDR0NvbG9yU3BhY2VdOworICAgIAorICAg
IHJldHVybiBjb2xvclNwYWNlRGF0YTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6YmVnaW5EZWZl
cnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzKCkKK3sKKyAgICBpZiAobV9zaG91bGREZWZlclZpZXdJ
bldpbmRvd0NoYW5nZXMpIHsKKyAgICAgICAgTlNMb2coQCJiZWdpbkRlZmVycmluZ1ZpZXdJbldp
bmRvd0NoYW5nZXMgd2FzIGNhbGxlZCB3aGlsZSBhbHJlYWR5IGRlZmVycmluZyB2aWV3LWluLXdp
bmRvdyBjaGFuZ2VzISIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zaG91bGRE
ZWZlclZpZXdJbldpbmRvd0NoYW5nZXMgPSB0cnVlOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpl
bmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzKCkKK3sKKyAgICBpZiAoIW1fc2hvdWxkRGVm
ZXJWaWV3SW5XaW5kb3dDaGFuZ2VzKSB7CisgICAgICAgIE5TTG9nKEAiZW5kRGVmZXJyaW5nVmll
d0luV2luZG93Q2hhbmdlcyB3YXMgY2FsbGVkIHdpdGhvdXQgYmVnaW5EZWZlcnJpbmdWaWV3SW5X
aW5kb3dDaGFuZ2VzISIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zaG91bGRE
ZWZlclZpZXdJbldpbmRvd0NoYW5nZXMgPSBmYWxzZTsKKworICAgIGlmIChtX3ZpZXdJbldpbmRv
d0NoYW5nZVdhc0RlZmVycmVkKSB7CisgICAgICAgIGRpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0
KCk7CisgICAgICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRl
OjpJc0luV2luZG93KTsKKyAgICAgICAgbV92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9
IGZhbHNlOworICAgIH0KK30KKwordm9pZCBXZWJWaWV3SW1wbDo6ZW5kRGVmZXJyaW5nVmlld0lu
V2luZG93Q2hhbmdlc1N5bmMoKQoreworICAgIGlmICghbV9zaG91bGREZWZlclZpZXdJbldpbmRv
d0NoYW5nZXMpIHsKKyAgICAgICAgTlNMb2coQCJlbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFu
Z2VzU3luYyB3YXMgY2FsbGVkIHdpdGhvdXQgYmVnaW5EZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFu
Z2VzISIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zaG91bGREZWZlclZpZXdJ
bldpbmRvd0NoYW5nZXMgPSBmYWxzZTsKKworICAgIGlmIChtX3ZpZXdJbldpbmRvd0NoYW5nZVdh
c0RlZmVycmVkKSB7CisgICAgICAgIGRpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0KCk7CisgICAg
ICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0luV2lu
ZG93KTsKKyAgICAgICAgbV92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9IGZhbHNlOwor
ICAgIH0KK30KKwordm9pZCBXZWJWaWV3SW1wbDo6cHJlcGFyZUZvck1vdmVUb1dpbmRvdyhOU1dp
bmRvdyAqdGFyZ2V0V2luZG93LCBzdGQ6OmZ1bmN0aW9uPHZvaWQoKT4gY29tcGxldGlvbkhhbmRs
ZXIpCit7CisgICAgbV9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMgPSB0cnVlOworICAg
IHZpZXdXaWxsTW92ZVRvV2luZG93KHRhcmdldFdpbmRvdyk7CisgICAgbV90YXJnZXRXaW5kb3dG
b3JNb3ZlUHJlcGFyYXRpb24gPSB0YXJnZXRXaW5kb3c7CisgICAgdmlld0RpZE1vdmVUb1dpbmRv
dygpOworCisgICAgbV9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMgPSBmYWxzZTsKKwor
ICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CisgICAgbV9wYWdlLmluc3RhbGxW
aWV3U3RhdGVDaGFuZ2VDb21wbGV0aW9uSGFuZGxlcihbd2Vha1RoaXMsIGNvbXBsZXRpb25IYW5k
bGVyXSgpIHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKKworICAgICAgICBpZiAoIXdl
YWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIEFTU0VSVCh3ZWFrVGhpcy0+
bV92aWV3LndpbmRvdyA9PSB3ZWFrVGhpcy0+bV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRp
b24pOworICAgICAgICB3ZWFrVGhpcy0+bV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24g
PSBuaWw7CisgICAgfSk7CisKKyAgICBkaXNwYXRjaFNldFRvcENvbnRlbnRJbnNldCgpOworICAg
IG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0luV2luZG93
LCBmYWxzZSwgV2ViUGFnZVByb3h5OjpWaWV3U3RhdGVDaGFuZ2VEaXNwYXRjaE1vZGU6OkltbWVk
aWF0ZSk7CisgICAgbV92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9IGZhbHNlOworfQor
CiB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCkKIHsKICAgICBpZiAo
IVtbbV92aWV3IHdpbmRvd10gaXNLZXlXaW5kb3ddIHx8ICFpc0ZvY3VzZWQoKSkgewpAQCAtMzg2
LDYgKzEwMTUsMjUgQEAgdm9pZCBXZWJWaWV3SW1wbDo6bm90aWZ5SW5wdXRDb250ZXh0QWJvdXRE
aXNjYXJkZWRDb21wb3NpdGlvbigpCiAgICAgW1ttX3ZpZXcgX3N1cGVySW5wdXRDb250ZXh0XSBk
aXNjYXJkTWFya2VkVGV4dF07IC8vIEluZm9ybSB0aGUgaW5wdXQgbWV0aG9kIHRoYXQgd2Ugd29u
J3QgaGF2ZSBhbiBpbmxpbmUgaW5wdXQgYXJlYSBkZXNwaXRlIGhhdmluZyBiZWVuIGFza2VkIHRv
LgogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpwcmVzc3VyZUNoYW5nZVdpdGhFdmVudChOU0V2ZW50
ICpldmVudCkKK3sKKyNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19YX1ZFUlNJT05f
TUFYX0FMTE9XRUQgPj0gMTAxMDAzCisgICAgaWYgKGV2ZW50ID09IG1fbGFzdFByZXNzdXJlRXZl
bnQpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChtX2lnbm9yZXNOb25XaGVlbEV2ZW50cykK
KyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKGV2ZW50LnBoYXNlICE9IE5TRXZlbnRQaGFzZUNo
YW5nZWQgJiYgZXZlbnQucGhhc2UgIT0gTlNFdmVudFBoYXNlQmVnYW4gJiYgZXZlbnQucGhhc2Ug
IT0gTlNFdmVudFBoYXNlRW5kZWQpCisgICAgICAgIHJldHVybjsKKworICAgIE5hdGl2ZVdlYk1v
dXNlRXZlbnQgd2ViRXZlbnQoZXZlbnQsIG1fbGFzdFByZXNzdXJlRXZlbnQuZ2V0KCksIG1fdmll
dyk7CisgICAgbV9wYWdlLmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOworCisgICAgbV9sYXN0
UHJlc3N1cmVFdmVudCA9IGV2ZW50OworI2VuZGlmCit9CisKICNpZiBFTkFCTEUoRlVMTFNDUkVF
Tl9BUEkpCiBib29sIFdlYlZpZXdJbXBsOjpoYXNGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigp
IGNvbnN0CiB7CkBAIC00MjgsNiArMTA3NiwyNTkgQEAgTlNXaW5kb3cgKldlYlZpZXdJbXBsOjpj
cmVhdGVGdWxsU2NyZWVuV2luZG93KCkKICNlbmRpZgogfQogCitib29sIFdlYlZpZXdJbXBsOjpp
c0VkaXRhYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9wYWdlLmlzRWRpdGFibGUoKTsKK30K
Kwordm9pZCBXZWJWaWV3SW1wbDo6ZXhlY3V0ZUVkaXRDb21tYW5kKGNvbnN0IFN0cmluZyYgY29t
bWFuZE5hbWUsIGNvbnN0IFN0cmluZyYgYXJndW1lbnQpCit7CisgICAgbV9wYWdlLmV4ZWN1dGVF
ZGl0Q29tbWFuZChjb21tYW5kTmFtZSwgYXJndW1lbnQpOworfQorCit2b2lkIFdlYlZpZXdJbXBs
OjpyZWdpc3RlckVkaXRDb21tYW5kKFJlZlB0cjxXZWJFZGl0Q29tbWFuZFByb3h5PiBwcnBDb21t
YW5kLCBXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8gdW5kb09yUmVkbykKK3sKKyAgICBSZWZQdHI8
V2ViRWRpdENvbW1hbmRQcm94eT4gY29tbWFuZCA9IHBycENvbW1hbmQ7CisKKyAgICBSZXRhaW5Q
dHI8V0tFZGl0Q29tbWFuZE9iakM+IGNvbW1hbmRPYmpDID0gYWRvcHROUyhbW1dLRWRpdENvbW1h
bmRPYmpDIGFsbG9jXSBpbml0V2l0aFdlYkVkaXRDb21tYW5kUHJveHk6Y29tbWFuZF0pOworICAg
IFN0cmluZyBhY3Rpb25OYW1lID0gV2ViRWRpdENvbW1hbmRQcm94eTo6bmFtZUZvckVkaXRBY3Rp
b24oY29tbWFuZC0+ZWRpdEFjdGlvbigpKTsKKworICAgIE5TVW5kb01hbmFnZXIgKnVuZG9NYW5h
Z2VyID0gW21fdmlldyB1bmRvTWFuYWdlcl07CisgICAgW3VuZG9NYW5hZ2VyIHJlZ2lzdGVyVW5k
b1dpdGhUYXJnZXQ6bV91bmRvVGFyZ2V0LmdldCgpIHNlbGVjdG9yOigodW5kb09yUmVkbyA9PSBX
ZWJQYWdlUHJveHk6OlVuZG8pID8gQHNlbGVjdG9yKHVuZG9FZGl0aW5nOikgOiBAc2VsZWN0b3Io
cmVkb0VkaXRpbmc6KSkgb2JqZWN0OmNvbW1hbmRPYmpDLmdldCgpXTsKKyAgICBpZiAoIWFjdGlv
bk5hbWUuaXNFbXB0eSgpKQorICAgICAgICBbdW5kb01hbmFnZXIgc2V0QWN0aW9uTmFtZTooTlNT
dHJpbmcgKilhY3Rpb25OYW1lXTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6Y2xlYXJBbGxFZGl0
Q29tbWFuZHMoKQoreworICAgIFtbbV92aWV3IHVuZG9NYW5hZ2VyXSByZW1vdmVBbGxBY3Rpb25z
V2l0aFRhcmdldDptX3VuZG9UYXJnZXQuZ2V0KCldOworfQorCitib29sIFdlYlZpZXdJbXBsOjp3
cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIE5TQXJy
YXkgKnR5cGVzKQoreworICAgIHNpemVfdCBudW1UeXBlcyA9IHR5cGVzLmNvdW50OworICAgIFtw
YXN0ZWJvYXJkIGRlY2xhcmVUeXBlczp0eXBlcyBvd25lcjpuaWxdOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgbnVtVHlwZXM7ICsraSkgeworICAgICAgICBpZiAoW1t0eXBlcyBvYmplY3RB
dEluZGV4OmldIGlzRXF1YWxUbzpOU1N0cmluZ1Bib2FyZFR5cGVdKQorICAgICAgICAgICAgW3Bh
c3RlYm9hcmQgc2V0U3RyaW5nOm1fcGFnZS5zdHJpbmdTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKCkg
Zm9yVHlwZTpOU1N0cmluZ1Bib2FyZFR5cGVdOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
IFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IG1fcGFnZS5kYXRhU2VsZWN0
aW9uRm9yUGFzdGVib2FyZChbdHlwZXMgb2JqZWN0QXRJbmRleDppXSk7CisgICAgICAgICAgICBb
cGFzdGVib2FyZCBzZXREYXRhOmJ1ZmZlciA/IGJ1ZmZlci0+Y3JlYXRlTlNEYXRhKCkuZ2V0KCkg
OiBuaWwgZm9yVHlwZTpbdHlwZXMgb2JqZWN0QXRJbmRleDppXV07CisgICAgICAgIH0KKyAgICB9
CisgICAgcmV0dXJuIHRydWU7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmNlbnRlclNlbGVjdGlv
bkluVmlzaWJsZUFyZWEoKQoreworICAgIG1fcGFnZS5jZW50ZXJTZWxlY3Rpb25JblZpc2libGVB
cmVhKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNlbGVjdGlvbkRpZENoYW5nZSgpCit7Cisg
ICAgdXBkYXRlRm9udFBhbmVsSWZOZWVkZWQoKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c3Rh
cnRPYnNlcnZpbmdGb250UGFuZWwoKQoreworICAgIFttX3dpbmRvd1Zpc2liaWxpdHlPYnNlcnZl
ciBzdGFydE9ic2VydmluZ0ZvbnRQYW5lbF07Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnVwZGF0
ZUZvbnRQYW5lbElmTmVlZGVkKCkKK3sKKyAgICBjb25zdCBFZGl0b3JTdGF0ZSYgZWRpdG9yU3Rh
dGUgPSBtX3BhZ2UuZWRpdG9yU3RhdGUoKTsKKyAgICBpZiAoZWRpdG9yU3RhdGUuc2VsZWN0aW9u
SXNOb25lIHx8ICFlZGl0b3JTdGF0ZS5pc0NvbnRlbnRFZGl0YWJsZSkKKyAgICAgICAgcmV0dXJu
OworICAgIGlmIChbTlNGb250UGFuZWwgc2hhcmVkRm9udFBhbmVsRXhpc3RzXSAmJiBbW05TRm9u
dFBhbmVsIHNoYXJlZEZvbnRQYW5lbF0gaXNWaXNpYmxlXSkgeworICAgICAgICBtX3BhZ2UuZm9u
dEF0U2VsZWN0aW9uKFtdKGNvbnN0IFN0cmluZyYgZm9udE5hbWUsIGRvdWJsZSBmb250U2l6ZSwg
Ym9vbCBzZWxlY3Rpb25IYXNNdWx0aXBsZUZvbnRzLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJy
b3IgZXJyb3IpIHsKKyAgICAgICAgICAgIE5TRm9udCAqZm9udCA9IFtOU0ZvbnQgZm9udFdpdGhO
YW1lOmZvbnROYW1lIHNpemU6Zm9udFNpemVdOworICAgICAgICAgICAgaWYgKGZvbnQpCisgICAg
ICAgICAgICAgICAgW1tOU0ZvbnRNYW5hZ2VyIHNoYXJlZEZvbnRNYW5hZ2VyXSBzZXRTZWxlY3Rl
ZEZvbnQ6Zm9udCBpc011bHRpcGxlOnNlbGVjdGlvbkhhc011bHRpcGxlRm9udHNdOworICAgICAg
ICB9KTsKKyAgICB9Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnByZWZlcmVuY2VzRGlkQ2hhbmdl
KCkKK3sKKyAgICBCT09MIG5lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9IG1fcGFn
ZS5wcmVmZXJlbmNlcygpLnBsdWdpbnNFbmFibGVkKCk7CisKKyAgICBpZiAoISFuZWVkc1ZpZXdG
cmFtZUluV2luZG93Q29vcmRpbmF0ZXMgPT0gISFtX25lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29y
ZGluYXRlcykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9uZWVkc1ZpZXdGcmFtZUluV2luZG93
Q29vcmRpbmF0ZXMgPSBuZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXM7CisgICAgaWYg
KG1fdmlldy53aW5kb3cpCisgICAgICAgIHVwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXMoKTsKK30K
Kwordm9pZCBXZWJWaWV3SW1wbDo6c2V0VGV4dEluZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNh
dG9yJiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWUg
bGlmZXRpbWUpCit7CisgICAgaWYgKCFtX3RleHRJbmRpY2F0b3JXaW5kb3cpCisgICAgICAgIG1f
dGV4dEluZGljYXRvcldpbmRvdyA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViQ29yZTo6VGV4dEluZGlj
YXRvcldpbmRvdz4obV92aWV3KTsKKworICAgIE5TUmVjdCB0ZXh0Qm91bmRpbmdSZWN0SW5TY3Jl
ZW5Db29yZGluYXRlcyA9IFttX3ZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46W21fdmll
dyBjb252ZXJ0UmVjdDp0ZXh0SW5kaWNhdG9yLnRleHRCb3VuZGluZ1JlY3RJblJvb3RWaWV3Q29v
cmRpbmF0ZXMoKSB0b1ZpZXc6bmlsXV07CisgICAgbV90ZXh0SW5kaWNhdG9yV2luZG93LT5zZXRU
ZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IsIE5TUmVjdFRvQ0dSZWN0KHRleHRCb3VuZGluZ1Jl
Y3RJblNjcmVlbkNvb3JkaW5hdGVzKSwgbGlmZXRpbWUpOworfQorCit2b2lkIFdlYlZpZXdJbXBs
OjpjbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKFdlYkNvcmU6OlRleHRJbmRpY2F0b3JX
aW5kb3dEaXNtaXNzYWxBbmltYXRpb24gYW5pbWF0aW9uKQoreworICAgIGlmIChtX3RleHRJbmRp
Y2F0b3JXaW5kb3cpCisgICAgICAgIG1fdGV4dEluZGljYXRvcldpbmRvdy0+Y2xlYXJUZXh0SW5k
aWNhdG9yKGFuaW1hdGlvbik7CisgICAgbV90ZXh0SW5kaWNhdG9yV2luZG93ID0gbnVsbHB0cjsK
K30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNz
KGZsb2F0IHByb2dyZXNzKQoreworICAgIGlmIChtX3RleHRJbmRpY2F0b3JXaW5kb3cpCisgICAg
ICAgIG1fdGV4dEluZGljYXRvcldpbmRvdy0+c2V0QW5pbWF0aW9uUHJvZ3Jlc3MocHJvZ3Jlc3Mp
OworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5k
b3dzV2l0aEFuaW1hdGlvbihib29sIGFuaW1hdGUpCit7CisgICAgW21fdmlldyBfZGlzbWlzc0Nv
bnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb246YW5pbWF0ZV07Cit9CisKK3Zv
aWQgV2ViVmlld0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5p
bWF0aW9uRnJvbVZpZXdPbmx5KGJvb2wgYW5pbWF0ZSkKK3sKKyAgICAvLyBDYWxsaW5nIF9jbGVh
clRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uIGhlcmUgd2lsbCB3aW4gb3V0IG92ZXIgdGhlIGFu
aW1hdGVkIGNsZWFyIGluIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NGcm9tVmll
d09ubHkuCisgICAgLy8gV2UgY2FuJ3QgaW52ZXJ0IHRoZXNlIGJlY2F1c2UgY2xpZW50cyBjYW4g
b3ZlcnJpZGUgKGFuZCBoYXZlIG92ZXJyaWRkZW4pIF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hp
bGRXaW5kb3dzLCBzbyBpdCBuZWVkcyB0byBiZSBjYWxsZWQuCisgICAgLy8gRm9yIHRoaXMgc2Ft
ZSByZWFzb24sIHRoaXMgY2FuJ3QgYmUgbW92ZWQgdG8gV2ViVmlld0ltcGwgd2l0aG91dCBjYXJl
LgorICAgIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oYW5pbWF0ZSA/IFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQgOiBXZWJDb3Jl
OjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKKyAgICBbbV92
aWV3IF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXTsKK30KKwordm9pZCBXZWJW
aWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seSgp
Cit7CisgICAgYm9vbCBoYXNBY3RpdmVJbW1lZGlhdGVBY3Rpb24gPSBmYWxzZTsKKyNpZiBfX01B
Q19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAorICAgIGhhc0FjdGl2ZUltbWVk
aWF0ZUFjdGlvbiA9IFttX2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgaGFzQWN0aXZlSW1tZWRp
YXRlQWN0aW9uXTsKKyNlbmRpZgorCisgICAgLy8gRklYTUU6IFdlIGRvbid0IGtub3cgd2hpY2gg
cGFuZWwgd2UgYXJlIGRpc21pc3NpbmcsIGl0IG1heSBub3QgZXZlbiBiZSBpbiB0aGUgY3VycmVu
dCBwYWdlIChzZWUgPHJkYXI6Ly9wcm9ibGVtLzEzODc1NzY2PikuCisgICAgaWYgKG1fdmlldy53
aW5kb3cuaXNLZXlXaW5kb3cgfHwgaGFzQWN0aXZlSW1tZWRpYXRlQWN0aW9uKSB7CisgICAgICAg
IFdlYkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OmhpZGVQb3B1cCgpOworCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICAgICAgRERBY3Rpb25zTWFuYWdl
ciAqYWN0aW9uc01hbmFnZXIgPSBbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFu
YWdlcl07CisgICAgICAgIGlmIChbYWN0aW9uc01hbmFnZXIgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3RvcihyZXF1ZXN0QnViYmxlQ2xvc3VyZVVuYW5jaG9yT25GYWlsdXJlOildKQorICAgICAg
ICAgICAgW2FjdGlvbnNNYW5hZ2VyIHJlcXVlc3RCdWJibGVDbG9zdXJlVW5hbmNob3JPbkZhaWx1
cmU6WUVTXTsKKyNlbmRpZgorICAgIH0KKworICAgIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmlt
YXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFk
ZU91dCk7CisKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAor
ICAgIFttX2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNo
aWxkV2luZG93c107CisjZW5kaWYKKyAgICAKKyAgICBtX3BhZ2VDbGllbnQuZGlzbWlzc0NvcnJl
Y3Rpb25QYW5lbChXZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdu
b3JlZCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnF1aWNrTG9va1dpdGhFdmVudChOU0V2ZW50
ICpldmVudCkKK3sKKyAgICBpZiAoaWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCisgICAgICAgIHJl
dHVybjsKKworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCisg
ICAgaWYgKG1faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIpIHsKKyAgICAgICAgW21f
dmlldyBfc3VwZXJRdWlja0xvb2tXaXRoRXZlbnQ6ZXZlbnRdOworICAgICAgICByZXR1cm47Cisg
ICAgfQorI2VuZGlmCisKKyAgICBOU1BvaW50IGxvY2F0aW9uSW5WaWV3Q29vcmRpbmF0ZXMgPSBb
bV92aWV3IGNvbnZlcnRQb2ludDpbZXZlbnQgbG9jYXRpb25JbldpbmRvd10gZnJvbVZpZXc6bmls
XTsKKyAgICBtX3BhZ2UucGVyZm9ybURpY3Rpb25hcnlMb29rdXBBdExvY2F0aW9uKFdlYkNvcmU6
OkZsb2F0UG9pbnQobG9jYXRpb25JblZpZXdDb29yZGluYXRlcykpOworfQorCit2b2lkIFdlYlZp
ZXdJbXBsOjpwcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cCgpCit7CisgICAgaWYgKG1fZGlkUmVn
aXN0ZXJGb3JMb29rdXBQb3BvdmVyQ2xvc2VOb3RpZmljYXRpb25zKQorICAgICAgICByZXR1cm47
CisKKyAgICBtX2RpZFJlZ2lzdGVyRm9yTG9va3VwUG9wb3ZlckNsb3NlTm90aWZpY2F0aW9ucyA9
IHRydWU7CisKKyAgICBbbV93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgc3RhcnRPYnNlcnZpbmdM
b29rdXBEaXNtaXNzYWxdOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRBbGxvd3NMaW5rUHJl
dmlldyhib29sIGFsbG93c0xpbmtQcmV2aWV3KQoreworICAgIGlmIChtX2FsbG93c0xpbmtQcmV2
aWV3ID09IGFsbG93c0xpbmtQcmV2aWV3KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2FsbG93
c0xpbmtQcmV2aWV3ID0gYWxsb3dzTGlua1ByZXZpZXc7CisKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAorICAgIGlmICghYWxsb3dzTGlua1ByZXZpZXcpCisg
ICAgICAgIFttX3ZpZXcgcmVtb3ZlR2VzdHVyZVJlY29nbml6ZXI6bV9pbW1lZGlhdGVBY3Rpb25H
ZXN0dXJlUmVjb2duaXplci5nZXQoKV07CisgICAgZWxzZSBpZiAoTlNHZXN0dXJlUmVjb2duaXpl
ciAqaW1tZWRpYXRlQWN0aW9uUmVjb2duaXplciA9IG1faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJl
Y29nbml6ZXIuZ2V0KCkpCisgICAgICAgIFttX3ZpZXcgYWRkR2VzdHVyZVJlY29nbml6ZXI6aW1t
ZWRpYXRlQWN0aW9uUmVjb2duaXplcl07CisjZW5kaWYKK30KKwordm9pZCogV2ViVmlld0ltcGw6
OmltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0KFdLSGl0
VGVzdFJlc3VsdFJlZiBoaXRUZXN0UmVzdWx0LCB1aW50MzJfdCB0eXBlLCBXS1R5cGVSZWYgdXNl
ckRhdGEpCit7CisgICAgcmV0dXJuIFttX3ZpZXcgX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNv
bnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0OmhpdFRlc3RSZXN1bHQgd2l0aFR5cGU6dHlwZSB1c2Vy
RGF0YTp1c2VyRGF0YV07Cit9CisKK3ZvaWQqIFdlYlZpZXdJbXBsOjppbW1lZGlhdGVBY3Rpb25B
bmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdEZyb21WaWV3T25seShXS0hpdFRlc3RS
ZXN1bHRSZWYgaGl0VGVzdFJlc3VsdCwgdWludDMyX3QgdHlwZSwgV0tUeXBlUmVmIHVzZXJEYXRh
KQoreworICAgIHJldHVybiBuaWw7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmRpZFBlcmZvcm1J
bW1lZGlhdGVBY3Rpb25IaXRUZXN0KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHREYXRhJiByZXN1bHQs
IGJvb2wgY29udGVudFByZXZlbnRzRGVmYXVsdCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKQorewor
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCisgICAgW21faW1t
ZWRpYXRlQWN0aW9uQ29udHJvbGxlciBkaWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9uSGl0VGVzdDpy
ZXN1bHQgY29udGVudFByZXZlbnRzRGVmYXVsdDpjb250ZW50UHJldmVudHNEZWZhdWx0IHVzZXJE
YXRhOnVzZXJEYXRhXTsKKyNlbmRpZgorfQorCit2b2lkIFdlYlZpZXdJbXBsOjpwcmVwYXJlRm9y
SW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uKCkKK3sKKyAgICBbbV92aWV3IF9wcmVwYXJlRm9ySW1t
ZWRpYXRlQWN0aW9uQW5pbWF0aW9uXTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6Y2FuY2VsSW1t
ZWRpYXRlQWN0aW9uQW5pbWF0aW9uKCkKK3sKKyAgICBbbV92aWV3IF9jYW5jZWxJbW1lZGlhdGVB
Y3Rpb25BbmltYXRpb25dOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpjb21wbGV0ZUltbWVkaWF0
ZUFjdGlvbkFuaW1hdGlvbigpCit7CisgICAgW21fdmlldyBfY29tcGxldGVJbW1lZGlhdGVBY3Rp
b25BbmltYXRpb25dOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRJZ25vcmVzTm9uV2hlZWxF
dmVudHMoYm9vbCBpZ25vcmVzTm9uV2hlZWxFdmVudHMpCit7CisgICAgaWYgKG1faWdub3Jlc05v
bldoZWVsRXZlbnRzID09IGlnbm9yZXNOb25XaGVlbEV2ZW50cykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV9pZ25vcmVzTm9uV2hlZWxFdmVudHMgPSBpZ25vcmVzTm9uV2hlZWxFdmVudHM7Cisg
ICAgbV9wYWdlLnNldFNob3VsZERpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50cyghaWdub3Jlc05v
bldoZWVsRXZlbnRzKTsKKworI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0g
MTAxMDAwCisgICAgaWYgKGlnbm9yZXNOb25XaGVlbEV2ZW50cykKKyAgICAgICAgW21fdmlldyBy
ZW1vdmVHZXN0dXJlUmVjb2duaXplcjptX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
LmdldCgpXTsKKyAgICBlbHNlIGlmIChOU0dlc3R1cmVSZWNvZ25pemVyICppbW1lZGlhdGVBY3Rp
b25SZWNvZ25pemVyID0gbV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplci5nZXQoKSkg
eworICAgICAgICBpZiAobV9hbGxvd3NMaW5rUHJldmlldykKKyAgICAgICAgICAgIFttX3ZpZXcg
YWRkR2VzdHVyZVJlY29nbml6ZXI6aW1tZWRpYXRlQWN0aW9uUmVjb2duaXplcl07CisgICAgfQor
I2VuZGlmCit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldElnbm9yZXNBbGxFdmVudHMoYm9vbCBp
Z25vcmVzQWxsRXZlbnRzKQoreworICAgIG1faWdub3Jlc0FsbEV2ZW50cyA9IGlnbm9yZXNBbGxF
dmVudHM7CisgICAgc2V0SWdub3Jlc05vbldoZWVsRXZlbnRzKGlnbm9yZXNBbGxFdmVudHMpOwor
fQorCit2b2lkIFdlYlZpZXdJbXBsOjphY2Nlc3NpYmlsaXR5UmVnaXN0ZXJVSVByb2Nlc3NUb2tl
bnMoKQoreworICAgIC8vIEluaXRpYWxpemUgcmVtb3RlIGFjY2Vzc2liaWxpdHkgd2hlbiB0aGUg
d2luZG93IGNvbm5lY3Rpb24gaGFzIGJlZW4gZXN0YWJsaXNoZWQuCisgICAgTlNEYXRhICpyZW1v
dGVFbGVtZW50VG9rZW4gPSBXS0FYUmVtb3RlVG9rZW5Gb3JFbGVtZW50KG1fdmlldyk7CisgICAg
TlNEYXRhICpyZW1vdGVXaW5kb3dUb2tlbiA9IFdLQVhSZW1vdGVUb2tlbkZvckVsZW1lbnQobV92
aWV3LndpbmRvdyk7CisgICAgSVBDOjpEYXRhUmVmZXJlbmNlIGVsZW1lbnRUb2tlbiA9IElQQzo6
RGF0YVJlZmVyZW5jZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihbcmVtb3RlRWxl
bWVudFRva2VuIGJ5dGVzXSksIFtyZW1vdGVFbGVtZW50VG9rZW4gbGVuZ3RoXSk7CisgICAgSVBD
OjpEYXRhUmVmZXJlbmNlIHdpbmRvd1Rva2VuID0gSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgdWludDhfdCo+KFtyZW1vdGVXaW5kb3dUb2tlbiBieXRlc10pLCBbcmVt
b3RlV2luZG93VG9rZW4gbGVuZ3RoXSk7CisgICAgbV9wYWdlLnJlZ2lzdGVyVUlQcm9jZXNzQWNj
ZXNzaWJpbGl0eVRva2VucyhlbGVtZW50VG9rZW4sIHdpbmRvd1Rva2VuKTsKK30KIAogfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGwuaAppbmRleCA0NmFhNTIwLi5jMjQ2MmMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCkBAIC0yMjAsNyArMjIwLDYgQEAgcHJpdmF0
ZToKICAgICBXS1ZpZXcgKm1fd2tWaWV3OwogICAgIFdLV2ViVmlldyAqbV93ZWJWaWV3OwogICAg
IFdlYlZpZXdJbXBsKiBtX2ltcGwgeyBudWxscHRyIH07Ci0gICAgUmV0YWluUHRyPFdLRWRpdG9y
VW5kb1RhcmdldE9iakM+IG1fdW5kb1RhcmdldDsKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFO
RUwpCiAgICAgQ29ycmVjdGlvblBhbmVsIG1fY29ycmVjdGlvblBhbmVsOwogI2VuZGlmCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQppbmRleCA0YzNk
NjA2Li5jMmY3ZTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGwubW0KQEAgLTkwLDYwICs5MCwxMSBAQAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCi1AaW50ZXJmYWNlIFdLRWRpdENvbW1hbmRPYmpD
IDogTlNPYmplY3QKLXsKLSAgICBSZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4gbV9jb21tYW5k
OwotfQotLSAoaWQpaW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5OihQYXNzUmVmUHRyPFdlYkVk
aXRDb21tYW5kUHJveHk+KWNvbW1hbmQ7Ci0tIChXZWJFZGl0Q29tbWFuZFByb3h5Kiljb21tYW5k
OwotQGVuZAotCi1AaW50ZXJmYWNlIFdLRWRpdG9yVW5kb1RhcmdldE9iakMgOiBOU09iamVjdAot
LSAodm9pZCl1bmRvRWRpdGluZzooaWQpc2VuZGVyOwotLSAodm9pZClyZWRvRWRpdGluZzooaWQp
c2VuZGVyOwotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gV0tFZGl0Q29tbWFuZE9iakMKLQotLSAo
aWQpaW5pdFdpdGhXZWJFZGl0Q29tbWFuZFByb3h5OihQYXNzUmVmUHRyPFdlYkVkaXRDb21tYW5k
UHJveHk+KWNvbW1hbmQKLXsKLSAgICBzZWxmID0gW3N1cGVyIGluaXRdOwotICAgIGlmICghc2Vs
ZikKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIG1fY29tbWFuZCA9IGNvbW1hbmQ7Ci0gICAg
cmV0dXJuIHNlbGY7Ci19Ci0KLS0gKFdlYkVkaXRDb21tYW5kUHJveHkqKWNvbW1hbmQKLXsKLSAg
ICByZXR1cm4gbV9jb21tYW5kLmdldCgpOwotfQotCi1AZW5kCi0KLUBpbXBsZW1lbnRhdGlvbiBX
S0VkaXRvclVuZG9UYXJnZXRPYmpDCi0KLS0gKHZvaWQpdW5kb0VkaXRpbmc6KGlkKXNlbmRlcgot
ewotICAgIEFTU0VSVChbc2VuZGVyIGlzS2luZE9mQ2xhc3M6W1dLRWRpdENvbW1hbmRPYmpDIGNs
YXNzXV0pOwotICAgIFtzZW5kZXIgY29tbWFuZF0tPnVuYXBwbHkoKTsKLX0KLQotLSAodm9pZCly
ZWRvRWRpdGluZzooaWQpc2VuZGVyCi17Ci0gICAgQVNTRVJUKFtzZW5kZXIgaXNLaW5kT2ZDbGFz
czpbV0tFZGl0Q29tbWFuZE9iakMgY2xhc3NdXSk7Ci0gICAgW3NlbmRlciBjb21tYW5kXS0+cmVh
cHBseSgpOwotfQotCi1AZW5kCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBQYWdlQ2xpZW50SW1w
bDo6UGFnZUNsaWVudEltcGwoV0tWaWV3KiB3a1ZpZXcsIFdLV2ViVmlldyAqd2ViVmlldykKICAg
ICA6IG1fd2tWaWV3KHdrVmlldykKICAgICAsIG1fd2ViVmlldyh3ZWJWaWV3KQotICAgICwgbV91
bmRvVGFyZ2V0KGFkb3B0TlMoW1tXS0VkaXRvclVuZG9UYXJnZXRPYmpDIGFsbG9jXSBpbml0XSkp
CiAjaWYgVVNFKERJQ1RBVElPTl9BTFRFUk5BVElWRVMpCiAgICAgLCBtX2FsdGVybmF0aXZlVGV4
dFVJQ29udHJvbGxlcihzdGQ6Om1ha2VfdW5pcXVlPEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxl
cj4oKSkKICNlbmRpZgpAQCAtMjA3LDggKzE1OCw4IEBAIE5TV2luZG93ICpQYWdlQ2xpZW50SW1w
bDo6YWN0aXZlV2luZG93KCkgY29uc3QKICAgICBpZiAobV93a1ZpZXcuX3RodW1ibmFpbFZpZXcp
CiAgICAgICAgIHJldHVybiBtX3drVmlldy5fdGh1bWJuYWlsVmlldy53aW5kb3c7CiAjZW5kaWYK
LSAgICBpZiAobV93a1ZpZXcuX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbikKLSAgICAg
ICAgcmV0dXJuIG1fd2tWaWV3Ll90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb247CisgICAg
aWYgKG1faW1wbCAmJiBtX2ltcGwtPnRhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbigpKQor
ICAgICAgICByZXR1cm4gbV9pbXBsLT50YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24oKTsK
ICAgICByZXR1cm4gbV93a1ZpZXcud2luZG93OwogfQogCkBAIC0zMDcsNyArMjU4LDcgQEAgdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUmVsYXVuY2hQcm9jZXNzKCkKIAogdm9pZCBQYWdlQ2xpZW50
SW1wbDo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQogewotICAgIFttX3drVmlldyBfcHJlZmVyZW5j
ZXNEaWRDaGFuZ2VdOworICAgIG1faW1wbC0+cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsKIH0KIAog
dm9pZCBQYWdlQ2xpZW50SW1wbDo6dG9vbFRpcENoYW5nZWQoY29uc3QgU3RyaW5nJiBvbGRUb29s
VGlwLCBjb25zdCBTdHJpbmcmIG5ld1Rvb2xUaXApCkBAIC0zNzMsMTUgKzMyNCw3IEBAIHZvaWQg
UGFnZUNsaWVudEltcGw6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3Jl
OjpWaWV3cG9ydEF0dHJpYnV0CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnJlZ2lzdGVyRWRpdENv
bW1hbmQoUGFzc1JlZlB0cjxXZWJFZGl0Q29tbWFuZFByb3h5PiBwcnBDb21tYW5kLCBXZWJQYWdl
UHJveHk6OlVuZG9PclJlZG8gdW5kb09yUmVkbykKIHsKLSAgICBSZWZQdHI8V2ViRWRpdENvbW1h
bmRQcm94eT4gY29tbWFuZCA9IHBycENvbW1hbmQ7Ci0KLSAgICBSZXRhaW5QdHI8V0tFZGl0Q29t
bWFuZE9iakM+IGNvbW1hbmRPYmpDID0gYWRvcHROUyhbW1dLRWRpdENvbW1hbmRPYmpDIGFsbG9j
XSBpbml0V2l0aFdlYkVkaXRDb21tYW5kUHJveHk6Y29tbWFuZF0pOwotICAgIFN0cmluZyBhY3Rp
b25OYW1lID0gV2ViRWRpdENvbW1hbmRQcm94eTo6bmFtZUZvckVkaXRBY3Rpb24oY29tbWFuZC0+
ZWRpdEFjdGlvbigpKTsKLQotICAgIE5TVW5kb01hbmFnZXIgKnVuZG9NYW5hZ2VyID0gW21fd2tW
aWV3IHVuZG9NYW5hZ2VyXTsKLSAgICBbdW5kb01hbmFnZXIgcmVnaXN0ZXJVbmRvV2l0aFRhcmdl
dDptX3VuZG9UYXJnZXQuZ2V0KCkgc2VsZWN0b3I6KCh1bmRvT3JSZWRvID09IFdlYlBhZ2VQcm94
eTo6VW5kbykgPyBAc2VsZWN0b3IodW5kb0VkaXRpbmc6KSA6IEBzZWxlY3RvcihyZWRvRWRpdGlu
ZzopKSBvYmplY3Q6Y29tbWFuZE9iakMuZ2V0KCldOwotICAgIGlmICghYWN0aW9uTmFtZS5pc0Vt
cHR5KCkpCi0gICAgICAgIFt1bmRvTWFuYWdlciBzZXRBY3Rpb25OYW1lOihOU1N0cmluZyAqKWFj
dGlvbk5hbWVdOworICAgIG1faW1wbC0+cmVnaXN0ZXJFZGl0Q29tbWFuZChwcnBDb21tYW5kLCB1
bmRvT3JSZWRvKTsKIH0KIAogI2lmIFVTRShJTlNFUlRJT05fVU5ET19HUk9VUElORykKQEAgLTM5
Myw3ICszMzYsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZWdpc3Rlckluc2VydGlvblVuZG9H
cm91cGluZygpCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyQWxsRWRpdENvbW1hbmRzKCkK
IHsKLSAgICBbW21fd2tWaWV3IHVuZG9NYW5hZ2VyXSByZW1vdmVBbGxBY3Rpb25zV2l0aFRhcmdl
dDptX3VuZG9UYXJnZXQuZ2V0KCldOworICAgIG1faW1wbC0+Y2xlYXJBbGxFZGl0Q29tbWFuZHMo
KTsKIH0KIAogYm9vbCBQYWdlQ2xpZW50SW1wbDo6Y2FuVW5kb1JlZG8oV2ViUGFnZVByb3h5OjpV
bmRvT3JSZWRvIHVuZG9PclJlZG8pCkBAIC01MTUsMTcgKzQ1OCwxNyBAQCBSZWZQdHI8V2ViQ29s
b3JQaWNrZXI+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVDb2xvclBpY2tlcihXZWJQYWdlUHJveHkq
IHBhZ2UsIGNvbgogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKFJlZjxU
ZXh0SW5kaWNhdG9yPiB0ZXh0SW5kaWNhdG9yLCBXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93
TGlmZXRpbWUgbGlmZXRpbWUpCiB7Ci0gICAgW21fd2tWaWV3IF9zZXRUZXh0SW5kaWNhdG9yOnRl
eHRJbmRpY2F0b3IuZ2V0KCkgd2l0aExpZmV0aW1lOmxpZmV0aW1lXTsKKyAgICBtX2ltcGwtPnNl
dFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvci5nZXQoKSwgbGlmZXRpbWUpOwogfQogCiB2b2lk
IFBhZ2VDbGllbnRJbXBsOjpjbGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRv
cldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbiBkaXNtaXNzYWxBbmltYXRpb24pCiB7Ci0gICAgW21f
d2tWaWV3IF9jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uOmRpc21pc3NhbEFuaW1hdGlv
bl07CisgICAgbV9pbXBsLT5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9uKGRpc21pc3Nh
bEFuaW1hdGlvbik7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJbmRpY2F0b3JB
bmltYXRpb25Qcm9ncmVzcyhmbG9hdCBwcm9ncmVzcykKIHsKLSAgICBbbV93a1ZpZXcgX3NldFRl
eHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzczpwcm9ncmVzc107CisgICAgbV9pbXBsLT5zZXRU
ZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jlc3MocHJvZ3Jlc3MpOwogfQogCiB2b2lkIFBhZ2VD
bGllbnRJbXBsOjphY2Nlc3NpYmlsaXR5V2ViUHJvY2Vzc1Rva2VuUmVjZWl2ZWQoY29uc3QgSVBD
OjpEYXRhUmVmZXJlbmNlJiBkYXRhKQpAQCAtNTc2LDcgKzUxOSw3IEBAIFBhc3NSZWZQdHI8Vmll
d1NuYXBzaG90PiBQYWdlQ2xpZW50SW1wbDo6dGFrZVZpZXdTbmFwc2hvdCgpCiAKIHZvaWQgUGFn
ZUNsaWVudEltcGw6OnNlbGVjdGlvbkRpZENoYW5nZSgpCiB7Ci0gICAgW21fd2tWaWV3IF9zZWxl
Y3Rpb25DaGFuZ2VkXTsKKyAgICBtX2ltcGwtPnNlbGVjdGlvbkRpZENoYW5nZSgpOwogfQogCiB2
b2lkIFBhZ2VDbGllbnRJbXBsOjp3aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShjb25z
dCBOYXRpdmVXZWJXaGVlbEV2ZW50JiBldmVudCkKQEAgLTYwMywxMCArNTQ2LDEwIEBAIHZvaWQg
UGFnZUNsaWVudEltcGw6OnNldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSh1aW50NjRfdCBw
bHVnaW5Db21wbGV4VGV4dEluCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1EaWN0
aW9uYXJ5TG9va3VwKGNvbnN0IERpY3Rpb25hcnlQb3B1cEluZm8mIGRpY3Rpb25hcnlQb3B1cElu
Zm8pCiB7Ci0gICAgW21fd2tWaWV3IF9wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cF07CisgICAg
bV9pbXBsLT5wcmVwYXJlRm9yRGljdGlvbmFyeUxvb2t1cCgpOwogCiAgICAgRGljdGlvbmFyeUxv
b2t1cDo6c2hvd1BvcHVwKGRpY3Rpb25hcnlQb3B1cEluZm8sIG1fd2tWaWV3LCBbdGhpc10oVGV4
dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgewotICAgICAgICBbbV93a1ZpZXcgX3NldFRleHRJ
bmRpY2F0b3I6dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6VGV4dEluZGljYXRvcldpbmRvd0xp
ZmV0aW1lOjpQZXJtYW5lbnRdOworICAgICAgICBtX2ltcGwtPnNldFRleHRJbmRpY2F0b3IodGV4
dEluZGljYXRvciwgVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQpOwogICAg
IH0pOwogfQogCkBAIC02NjEsMTAgKzYwNCwxNCBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZWNv
bW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKFNjcm9sbGJhclN0eWxlIG5ld1N0eWxlKQog
CiB2b2lkIFBhZ2VDbGllbnRJbXBsOjppbnRyaW5zaWNDb250ZW50U2l6ZURpZENoYW5nZShjb25z
dCBJbnRTaXplJiBpbnRyaW5zaWNDb250ZW50U2l6ZSkKIHsKLSAgICBpZiAobV93ZWJWaWV3KQor
I2lmIFdLX0FQSV9FTkFCTEVECisgICAgaWYgKG1fd2ViVmlldykgewogICAgICAgICBbbV93ZWJW
aWV3IF9zZXRJbnRyaW5zaWNDb250ZW50U2l6ZTppbnRyaW5zaWNDb250ZW50U2l6ZV07Ci0gICAg
ZWxzZQotICAgICAgICBbbV93a1ZpZXcgX3NldEludHJpbnNpY0NvbnRlbnRTaXplOmludHJpbnNp
Y0NvbnRlbnRTaXplXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorCisgICAgbV9p
bXBsLT5zZXRJbnRyaW5zaWNDb250ZW50U2l6ZShpbnRyaW5zaWNDb250ZW50U2l6ZSk7CiB9CiAK
IGJvb2wgUGFnZUNsaWVudEltcGw6OmV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yKGNvbnN0
IFN0cmluZyYgc2VsZWN0b3JTdHJpbmcpCkBAIC04MzksNyArNzg2LDcgQEAgQ0dSZWN0IFBhZ2VD
bGllbnRJbXBsOjpib3VuZHNPZkxheWVySW5MYXllckJhY2tlZFdpbmRvd0Nvb3JkaW5hdGVzKENB
TGF5ZXIgKmxheWUKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1JbW1lZGlhdGVBY3Rp
b25IaXRUZXN0KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHREYXRhJiByZXN1bHQsIGJvb2wgY29udGVu
dFByZXZlbnRzRGVmYXVsdCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKQogewogI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgW21fd2tWaWV3IF9kaWRQZXJm
b3JtSW1tZWRpYXRlQWN0aW9uSGl0VGVzdDpyZXN1bHQgY29udGVudFByZXZlbnRzRGVmYXVsdDpj
b250ZW50UHJldmVudHNEZWZhdWx0IHVzZXJEYXRhOnVzZXJEYXRhXTsKKyAgICBtX2ltcGwtPmRp
ZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0KHJlc3VsdCwgY29udGVudFByZXZlbnRzRGVm
YXVsdCwgdXNlckRhdGEpOwogI2VuZGlmCiB9CiAKQEAgLTg0OSw3ICs3OTYsNyBAQCB2b2lkKiBQ
YWdlQ2xpZW50SW1wbDo6aW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRl
c3RSZXN1bHQoUmVmUHRyPAogICAgIGlmIChtX3dlYlZpZXcpCiAgICAgICAgIHJldHVybiBbbV93
ZWJWaWV3IF9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3Vs
dDp3cmFwcGVyKCpoaXRUZXN0UmVzdWx0KSB3aXRoVHlwZTooX1dLSW1tZWRpYXRlQWN0aW9uVHlw
ZSl0eXBlIHVzZXJEYXRhOihpZCkodXNlckRhdGEuZ2V0KCkpXTsKICNlbmRpZgotICAgIHJldHVy
biBbbV93a1ZpZXcgX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0
UmVzdWx0OnRvQVBJKGhpdFRlc3RSZXN1bHQuZ2V0KCkpIHdpdGhUeXBlOnR5cGUgdXNlckRhdGE6
dG9BUEkodXNlckRhdGEuZ2V0KCkpXTsKKyAgICByZXR1cm4gbV9pbXBsLT5pbW1lZGlhdGVBY3Rp
b25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdCh0b0FQSShoaXRUZXN0UmVzdWx0
LmdldCgpKSwgdHlwZSwgdG9BUEkodXNlckRhdGEuZ2V0KCkpKTsKIH0KIAogdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6c2hvd1BsYXRmb3JtQ29udGV4dE1lbnUoTlNNZW51ICptZW51LCBJbnRQb2ludCBs
b2NhdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tJbW1l
ZGlhdGVBY3Rpb25Db250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dL
SW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oCmluZGV4IGUxODRlYTcuLjNmNmE5ODUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFj
dGlvbkNvbnRyb2xsZXIuaApAQCAtMzUsNiArMzUsNyBAQAogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IGNsYXNzIFdlYlBhZ2VQcm94eTsKK2NsYXNzIFdlYlZpZXdJbXBsOwogCiBlbnVtIGNsYXNzIElt
bWVkaWF0ZUFjdGlvblN0YXRlIHsKICAgICBOb25lID0gMCwKQEAgLTQ2LDEyICs0NywxMiBAQCBl
bnVtIGNsYXNzIEltbWVkaWF0ZUFjdGlvblN0YXRlIHsKIAogQGNsYXNzIEREQWN0aW9uQ29udGV4
dDsKIEBjbGFzcyBRTFByZXZpZXdNZW51SXRlbTsKLUBjbGFzcyBXS1ZpZXc7CiAKIEBpbnRlcmZh
Y2UgV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIDogTlNPYmplY3QgPE5TSW1tZWRpYXRlQWN0
aW9uR2VzdHVyZVJlY29nbml6ZXJEZWxlZ2F0ZT4gewogQHByaXZhdGUKLSAgICBXZWJLaXQ6Oldl
YlBhZ2VQcm94eSAqX3BhZ2U7Ci0gICAgV0tWaWV3ICpfd2tWaWV3OworICAgIFdlYktpdDo6V2Vi
UGFnZVByb3h5KiBfcGFnZTsKKyAgICBOU1ZpZXcgKl92aWV3OworICAgIFdlYktpdDo6V2ViVmll
d0ltcGwqIF92aWV3SW1wbDsKIAogICAgIFdlYktpdDo6SW1tZWRpYXRlQWN0aW9uU3RhdGUgX3N0
YXRlOwogICAgIFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdERhdGEgX2hpdFRlc3RSZXN1bHREYXRh
OwpAQCAtNjcsOCArNjgsOCBAQCBlbnVtIGNsYXNzIEltbWVkaWF0ZUFjdGlvblN0YXRlIHsKICAg
ICBCT09MIF9oYXNBY3RpdmVJbW1lZGlhdGVBY3Rpb247CiB9CiAKLS0gKGluc3RhbmNldHlwZSlp
bml0V2l0aFBhZ2U6KFdlYktpdDo6V2ViUGFnZVByb3h5JilwYWdlIHZpZXc6KFdLVmlldyAqKXdr
VmlldyByZWNvZ25pemVyOihOU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyICopaW1t
ZWRpYXRlQWN0aW9uUmVjb2duaXplcjsKLS0gKHZvaWQpd2lsbERlc3Ryb3lWaWV3OihXS1ZpZXcg
Kil2aWV3OworLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoUGFnZTooV2ViS2l0OjpXZWJQYWdlUHJv
eHkmKXBhZ2UgdmlldzooTlNWaWV3ICopdmlldyB2aWV3SW1wbDooV2ViS2l0OjpXZWJWaWV3SW1w
bCYpdmlld0ltcGwgcmVjb2duaXplcjooTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXpl
ciAqKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXI7CistICh2b2lkKXdpbGxEZXN0cm95Vmlldzoo
TlNWaWV3ICopdmlldzsKIC0gKHZvaWQpZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3Q6
KGNvbnN0IFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdERhdGEmKWhpdFRlc3RSZXN1bHQgY29udGVu
dFByZXZlbnRzRGVmYXVsdDooQk9PTCljb250ZW50UHJldmVudHNEZWZhdWx0IHVzZXJEYXRhOihB
UEk6Ok9iamVjdCopdXNlckRhdGE7CiAtICh2b2lkKWRpc21pc3NDb250ZW50UmVsYXRpdmVDaGls
ZFdpbmRvd3M7CiAtIChCT09MKWhhc0FjdGl2ZUltbWVkaWF0ZUFjdGlvbjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVy
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRy
b2xsZXIubW0KaW5kZXggMGU4ZDhmNC4uNDdiNDFkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIubW0K
QEAgLTMwLDExICszMCwxMSBAQAogCiAjaW1wb3J0ICJBUElIaXRUZXN0UmVzdWx0LmgiCiAjaW1w
b3J0ICJXS05TVVJMRXh0cmFzLmgiCi0jaW1wb3J0ICJXS1ZpZXdJbnRlcm5hbC5oIgogI2ltcG9y
dCAiV2ViUGFnZU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQg
IldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKKyNp
bXBvcnQgIldlYlZpZXdJbXBsLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0RhdGFEZXRlY3RvcnNTUEku
aD4KICNpbXBvcnQgPFdlYkNvcmUvRGljdGlvbmFyeUxvb2t1cC5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9HZW9tZXRyeVV0aWxpdGllcy5oPgpAQCAtNjQsNyArNjQsNyBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViS2l0OwogCiBAaW1wbGVtZW50YXRpb24gV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyCiAK
LS0gKGluc3RhbmNldHlwZSlpbml0V2l0aFBhZ2U6KFdlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihX
S1ZpZXcgKil3a1ZpZXcgcmVjb2duaXplcjooTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2du
aXplciAqKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXIKKy0gKGluc3RhbmNldHlwZSlpbml0V2l0
aFBhZ2U6KFdlYlBhZ2VQcm94eSYpcGFnZSB2aWV3OihOU1ZpZXcgKil2aWV3IHZpZXdJbXBsOihX
ZWJWaWV3SW1wbCYpdmlld0ltcGwgcmVjb2duaXplcjooTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJl
UmVjb2duaXplciAqKWltbWVkaWF0ZUFjdGlvblJlY29nbml6ZXIKIHsKICAgICBzZWxmID0gW3N1
cGVyIGluaXRdOwogCkBAIC03Miw3ICs3Miw4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAg
ICAgICAgIHJldHVybiBuaWw7CiAKICAgICBfcGFnZSA9ICZwYWdlOwotICAgIF93a1ZpZXcgPSB3
a1ZpZXc7CisgICAgX3ZpZXcgPSB2aWV3OworICAgIF92aWV3SW1wbCA9ICZ2aWV3SW1wbDsKICAg
ICBfdHlwZSA9IGtXS0ltbWVkaWF0ZUFjdGlvbk5vbmU7CiAgICAgX2ltbWVkaWF0ZUFjdGlvblJl
Y29nbml6ZXIgPSBpbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyOwogICAgIF9oYXNBY3RpdmVJbW1l
ZGlhdGVBY3Rpb24gPSBOTzsKQEAgLTgwLDEwICs4MSwxMSBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OwogICAgIHJldHVybiBzZWxmOwogfQogCi0tICh2b2lkKXdpbGxEZXN0cm95VmlldzooV0tW
aWV3ICopdmlldworLSAodm9pZCl3aWxsRGVzdHJveVZpZXc6KE5TVmlldyAqKXZpZXcKIHsKICAg
ICBfcGFnZSA9IG51bGxwdHI7Ci0gICAgX3drVmlldyA9IG5pbDsKKyAgICBfdmlldyA9IG5pbDsK
KyAgICBfdmlld0ltcGwgPSBudWxscHRyOwogICAgIF9oaXRUZXN0UmVzdWx0RGF0YSA9IFdlYkhp
dFRlc3RSZXN1bHREYXRhKCk7CiAgICAgX2NvbnRlbnRQcmV2ZW50c0RlZmF1bHQgPSBOTzsKICAg
ICAKQEAgLTE2OCw5ICsxNzAsOSBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIGlmIChp
bW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyICE9IF9pbW1lZGlhdGVBY3Rpb25SZWNvZ25pemVyKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBbX3drVmlldyBfcHJlcGFyZUZvckltbWVkaWF0ZUFjdGlv
bkFuaW1hdGlvbl07CisgICAgX3ZpZXdJbXBsLT5wcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5p
bWF0aW9uKCk7CiAKLSAgICBbX3drVmlldyBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2lu
ZG93c107CisgICAgX3ZpZXdJbXBsLT5kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dz
V2l0aEFuaW1hdGlvbih0cnVlKTsKIAogICAgIF9wYWdlLT5zZXRNYWludGFpbnNJbmFjdGl2ZVNl
bGVjdGlvbih0cnVlKTsKIApAQCAtMjMxLDcgKzIzMyw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJL
aXQ7CiAKICAgICBfcGFnZS0+aW1tZWRpYXRlQWN0aW9uRGlkQ2FuY2VsKCk7CiAKLSAgICBbX3dr
VmlldyBfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uXTsKKyAgICBfdmlld0ltcGwtPmNh
bmNlbEltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbigpOwogCiAgICAgX3BhZ2UtPnNldFRleHRJbmRp
Y2F0b3JBbmltYXRpb25Qcm9ncmVzcygwKTsKICAgICBbc2VsZiBfY2xlYXJJbW1lZGlhdGVBY3Rp
b25TdGF0ZV07CkBAIC0yNDUsNyArMjQ3LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAog
ICAgIF9wYWdlLT5pbW1lZGlhdGVBY3Rpb25EaWRDb21wbGV0ZSgpOwogCi0gICAgW193a1ZpZXcg
X2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uXTsKKyAgICBfdmlld0ltcGwtPmNvbXBs
ZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uKCk7CiAKICAgICBfcGFnZS0+c2V0VGV4dEluZGlj
YXRvckFuaW1hdGlvblByb2dyZXNzKDEpOwogfQpAQCAtMzQ1LDEyICszNDcsMTIgQEAgdXNpbmcg
bmFtZXNwYWNlIFdlYktpdDsKIAogLSAoTlNWaWV3ICopbWVudUl0ZW06KE5TTWVudUl0ZW0gKilt
ZW51SXRlbSB2aWV3QXRTY3JlZW5Qb2ludDooTlNQb2ludClzY3JlZW5Qb2ludAogewotICAgIHJl
dHVybiBfd2tWaWV3OworICAgIHJldHVybiBfdmlldzsKIH0KIAogLSAoaWQ8UUxQcmV2aWV3SXRl
bT4pbWVudUl0ZW06KE5TTWVudUl0ZW0gKiltZW51SXRlbSBwcmV2aWV3SXRlbUF0UG9pbnQ6KE5T
UG9pbnQpcG9pbnQKIHsKLSAgICBpZiAoIV93a1ZpZXcpCisgICAgaWYgKCFfdmlldykKICAgICAg
ICAgcmV0dXJuIG5pbDsKIAogICAgIFJlZlB0cjxBUEk6OkhpdFRlc3RSZXN1bHQ+IGhpdFRlc3RS
ZXN1bHQgPSBbc2VsZiBfd2ViSGl0VGVzdFJlc3VsdF07CkBAIC0zNjksMjAgKzM3MSwyMCBAQCB1
c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiAtIChOU1JlY3QpbWVudUl0ZW06KE5TTWVudUl0ZW0g
KiltZW51SXRlbSBpdGVtRnJhbWVGb3JQb2ludDooTlNQb2ludClwb2ludAogewotICAgIGlmICgh
X3drVmlldykKKyAgICBpZiAoIV92aWV3KQogICAgICAgICByZXR1cm4gTlNaZXJvUmVjdDsKIAog
ICAgIFJlZlB0cjxBUEk6OkhpdFRlc3RSZXN1bHQ+IGhpdFRlc3RSZXN1bHQgPSBbc2VsZiBfd2Vi
SGl0VGVzdFJlc3VsdF07Ci0gICAgcmV0dXJuIFtfd2tWaWV3IGNvbnZlcnRSZWN0OmhpdFRlc3RS
ZXN1bHQtPmVsZW1lbnRCb3VuZGluZ0JveCgpIHRvVmlldzpuaWxdOworICAgIHJldHVybiBbX3Zp
ZXcgY29udmVydFJlY3Q6aGl0VGVzdFJlc3VsdC0+ZWxlbWVudEJvdW5kaW5nQm94KCkgdG9WaWV3
Om5pbF07CiB9CiAKIC0gKE5TU2l6ZSltZW51SXRlbTooTlNNZW51SXRlbSAqKW1lbnVJdGVtIG1h
eFNpemVGb3JQb2ludDooTlNQb2ludClwb2ludAogewotICAgIGlmICghX3drVmlldykKKyAgICBp
ZiAoIV92aWV3KQogICAgICAgICByZXR1cm4gTlNaZXJvU2l6ZTsKIAotICAgIE5TU2l6ZSBzY3Jl
ZW5TaXplID0gX3drVmlldy53aW5kb3cuc2NyZWVuLmZyYW1lLnNpemU7Ci0gICAgRmxvYXRSZWN0
IGxhcmdlc3RSZWN0ID0gbGFyZ2VzdFJlY3RXaXRoQXNwZWN0UmF0aW9JbnNpZGVSZWN0KHNjcmVl
blNpemUud2lkdGggLyBzY3JlZW5TaXplLmhlaWdodCwgX3drVmlldy5ib3VuZHMpOworICAgIE5T
U2l6ZSBzY3JlZW5TaXplID0gX3ZpZXcud2luZG93LnNjcmVlbi5mcmFtZS5zaXplOworICAgIEZs
b2F0UmVjdCBsYXJnZXN0UmVjdCA9IGxhcmdlc3RSZWN0V2l0aEFzcGVjdFJhdGlvSW5zaWRlUmVj
dChzY3JlZW5TaXplLndpZHRoIC8gc2NyZWVuU2l6ZS5oZWlnaHQsIF92aWV3LmJvdW5kcyk7CiAg
ICAgcmV0dXJuIE5TTWFrZVNpemUobGFyZ2VzdFJlY3Qud2lkdGgoKSAqIDAuNzUsIGxhcmdlc3RS
ZWN0LmhlaWdodCgpICogMC43NSk7CiB9CiAKQEAgLTQwMyw3ICs0MDUsNyBAQCB1c2luZyBuYW1l
c3BhY2UgV2ViS2l0OwogCiAgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gcGFnZSA9IF9wYWdlOwog
ICAgIFBhZ2VPdmVybGF5OjpQYWdlT3ZlcmxheUlEIG92ZXJsYXlJRCA9IF9oaXRUZXN0UmVzdWx0
RGF0YS5kZXRlY3RlZERhdGFPcmlnaW5hdGluZ1BhZ2VPdmVybGF5OwotICAgIF9jdXJyZW50QWN0
aW9uQ29udGV4dCA9IFthY3Rpb25Db250ZXh0IGNvbnRleHRGb3JWaWV3Ol93a1ZpZXcgYWx0TW9k
ZTpZRVMgaW50ZXJhY3Rpb25TdGFydGVkSGFuZGxlcjpeKCkgeworICAgIF9jdXJyZW50QWN0aW9u
Q29udGV4dCA9IFthY3Rpb25Db250ZXh0IGNvbnRleHRGb3JWaWV3Ol92aWV3IGFsdE1vZGU6WUVT
IGludGVyYWN0aW9uU3RhcnRlZEhhbmRsZXI6XigpIHsKICAgICAgICAgcGFnZS0+c2VuZChNZXNz
YWdlczo6V2ViUGFnZTo6RGF0YURldGVjdG9yc0RpZFByZXNlbnRVSShvdmVybGF5SUQpKTsKICAg
ICB9IGludGVyYWN0aW9uQ2hhbmdlZEhhbmRsZXI6XigpIHsKICAgICAgICAgaWYgKF9oaXRUZXN0
UmVzdWx0RGF0YS5kZXRlY3RlZERhdGFUZXh0SW5kaWNhdG9yKQpAQCAtNDE0LDcgKzQxNiw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgICAgIFtzZWxmIF9jbGVhckltbWVkaWF0ZUFj
dGlvblN0YXRlXTsKICAgICB9XTsKIAotICAgIFtfY3VycmVudEFjdGlvbkNvbnRleHQgc2V0SGln
aGxpZ2h0RnJhbWU6W193a1ZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46W193a1ZpZXcg
Y29udmVydFJlY3Q6X2hpdFRlc3RSZXN1bHREYXRhLmRldGVjdGVkRGF0YUJvdW5kaW5nQm94IHRv
VmlldzpuaWxdXV07CisgICAgW19jdXJyZW50QWN0aW9uQ29udGV4dCBzZXRIaWdobGlnaHRGcmFt
ZTpbX3ZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46W192aWV3IGNvbnZlcnRSZWN0Ol9o
aXRUZXN0UmVzdWx0RGF0YS5kZXRlY3RlZERhdGFCb3VuZGluZ0JveCB0b1ZpZXc6bmlsXV1dOwog
CiAgICAgTlNBcnJheSAqbWVudUl0ZW1zID0gW1tnZXREREFjdGlvbnNNYW5hZ2VyQ2xhc3MoKSBz
aGFyZWRNYW5hZ2VyXSBtZW51SXRlbXNGb3JSZXN1bHQ6W19jdXJyZW50QWN0aW9uQ29udGV4dCBt
YWluUmVzdWx0XSBhY3Rpb25Db250ZXh0Ol9jdXJyZW50QWN0aW9uQ29udGV4dC5nZXQoKV07CiAK
QEAgLTQzNSw3ICs0MzcsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIFthY3Rpb25D
b250ZXh0IHNldEltbWVkaWF0ZTpZRVNdOwogCiAgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gcGFn
ZSA9IF9wYWdlOwotICAgIF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IFthY3Rpb25Db250ZXh0IGNv
bnRleHRGb3JWaWV3Ol93a1ZpZXcgYWx0TW9kZTpZRVMgaW50ZXJhY3Rpb25TdGFydGVkSGFuZGxl
cjpeKCkgeworICAgIF9jdXJyZW50QWN0aW9uQ29udGV4dCA9IFthY3Rpb25Db250ZXh0IGNvbnRl
eHRGb3JWaWV3Ol92aWV3IGFsdE1vZGU6WUVTIGludGVyYWN0aW9uU3RhcnRlZEhhbmRsZXI6Xigp
IHsKICAgICB9IGludGVyYWN0aW9uQ2hhbmdlZEhhbmRsZXI6XigpIHsKICAgICAgICAgaWYgKF9o
aXRUZXN0UmVzdWx0RGF0YS5saW5rVGV4dEluZGljYXRvcikKICAgICAgICAgICAgIHBhZ2UtPnNl
dFRleHRJbmRpY2F0b3IoX2hpdFRlc3RSZXN1bHREYXRhLmxpbmtUZXh0SW5kaWNhdG9yLT5kYXRh
KCkpOwpAQCAtNDQzLDcgKzQ0NSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgICAg
IFtzZWxmIF9jbGVhckltbWVkaWF0ZUFjdGlvblN0YXRlXTsKICAgICB9XTsKIAotICAgIFtfY3Vy
cmVudEFjdGlvbkNvbnRleHQgc2V0SGlnaGxpZ2h0RnJhbWU6W193a1ZpZXcud2luZG93IGNvbnZl
cnRSZWN0VG9TY3JlZW46W193a1ZpZXcgY29udmVydFJlY3Q6X2hpdFRlc3RSZXN1bHREYXRhLmVs
ZW1lbnRCb3VuZGluZ0JveCB0b1ZpZXc6bmlsXV1dOworICAgIFtfY3VycmVudEFjdGlvbkNvbnRl
eHQgc2V0SGlnaGxpZ2h0RnJhbWU6W192aWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOltf
dmlldyBjb252ZXJ0UmVjdDpfaGl0VGVzdFJlc3VsdERhdGEuZWxlbWVudEJvdW5kaW5nQm94IHRv
VmlldzpuaWxdXV07CiAKICAgICBSZWZQdHI8QVBJOjpIaXRUZXN0UmVzdWx0PiBoaXRUZXN0UmVz
dWx0ID0gW3NlbGYgX3dlYkhpdFRlc3RSZXN1bHRdOwogICAgIE5TQXJyYXkgKm1lbnVJdGVtcyA9
IFtbZ2V0RERBY3Rpb25zTWFuYWdlckNsYXNzKCkgc2hhcmVkTWFuYWdlcl0gbWVudUl0ZW1zRm9y
VGFyZ2V0VVJMOmhpdFRlc3RSZXN1bHQtPmFic29sdXRlTGlua1VSTCgpIGFjdGlvbkNvbnRleHQ6
X2N1cnJlbnRBY3Rpb25Db250ZXh0LmdldCgpXTsKQEAgLTQ2NSwxMCArNDY3LDEwIEBAIHVzaW5n
IG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgaWYgKCFkaWN0aW9uYXJ5UG9wdXBJbmZvLmF0dHJpYnV0
ZWRTdHJpbmcpCiAgICAgICAgIHJldHVybiBuaWw7CiAKLSAgICBbX3drVmlldyBfcHJlcGFyZUZv
ckRpY3Rpb25hcnlMb29rdXBdOworICAgIF92aWV3SW1wbC0+cHJlcGFyZUZvckRpY3Rpb25hcnlM
b29rdXAoKTsKIAotICAgIHJldHVybiBEaWN0aW9uYXJ5TG9va3VwOjphbmltYXRpb25Db250cm9s
bGVyRm9yUG9wdXAoZGljdGlvbmFyeVBvcHVwSW5mbywgX3drVmlldywgW3NlbGZdKFRleHRJbmRp
Y2F0b3ImIHRleHRJbmRpY2F0b3IpIHsKLSAgICAgICAgW193a1ZpZXcgX3NldFRleHRJbmRpY2F0
b3I6dGV4dEluZGljYXRvciB3aXRoTGlmZXRpbWU6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1l
OjpQZXJtYW5lbnRdOworICAgIHJldHVybiBEaWN0aW9uYXJ5TG9va3VwOjphbmltYXRpb25Db250
cm9sbGVyRm9yUG9wdXAoZGljdGlvbmFyeVBvcHVwSW5mbywgX3ZpZXcsIFtzZWxmXShUZXh0SW5k
aWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7CisgICAgICAgIF92aWV3SW1wbC0+c2V0VGV4dEluZGlj
YXRvcih0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVu
dCk7CiAgICAgfSk7CiB9CiAKLS0gCjIuNC45IChBcHBsZSBHaXQtNjApCgo=
</data>
<flag name="review"
          id="288989"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263876</attachid>
            <date>2015-10-22 16:10:23 -0700</date>
            <delta_ts>2015-10-23 11:00:24 -0700</delta_ts>
            <desc>Part 3 - plugin complex text</desc>
            <filename>0002-Plugin-Complex-Text.patch</filename>
            <type>text/plain</type>
            <size>22879</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">RnJvbSA3MDljOTIxYTI5OTc1NjIyZGEzOTM0NTQzNTMyNTkxMzQ1ODkxNzRiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaW0gSG9ydG9uIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CkRhdGU6IFRodSwgMjIgT2N0IDIwMTUgMTU6MDQ6NDggLTA3MDAKU3ViamVjdDogW1BBVENIIDIv
M10gUGx1Z2luIENvbXBsZXggVGV4dAoKLS0tCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgIDM3ICsrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tICAgICAgICB8IDEzMyArKy0tLS0tLS0tLS0tLS0tLS0tLS0t
CiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oIHwgICAy
IC0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oICAgICAgfCAg
MTcgKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gICAg
IHwgMTExICsrKysrKysrKysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Q
YWdlQ2xpZW50SW1wbC5tbSAgICB8ICAgNCArLQogNiBmaWxlcyBjaGFuZ2VkLCAxNzUgaW5zZXJ0
aW9ucygrKSwgMTI5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA3MmExZTk5Li4zMTZiYmJk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dDIvQ2hhbmdlTG9nCkBAIC02LDYgKzYsNDMgQEAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCiAKICAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAg
ICAgICgtW1dLVmlldyBfaW50ZXJwcmV0S2V5RXZlbnQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6Cisg
ICAgICAgICgtW1dLVmlldyBpbnB1dENvbnRleHRdKToKKyAgICAgICAgKC1bV0tWaWV3IHBlcmZv
cm1LZXlFcXVpdmFsZW50Ol0pOgorICAgICAgICAoLVtXS1ZpZXcga2V5RG93bjpdKToKKyAgICAg
ICAgKC1bV0tWaWV3IF9kb25lV2l0aEtleUV2ZW50OmV2ZW50V2FzSGFuZGxlZDpdKToKKyAgICAg
ICAgKC1bV0tWaWV3IF9zZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGU6XSk6IERlbGV0ZWQu
CisgICAgICAgICgtW1dLVmlldyBfZGlzYWJsZUNvbXBsZXhUZXh0SW5wdXRJZk5lY2Vzc2FyeV0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX2hhbmRsZVBsdWdpbkNvbXBsZXhUZXh0SW5w
dXRLZXlEb3duOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3RyeUhhbmRsZVBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRLZXlEb3duOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcg
X3RyeVBvc3RQcm9jZXNzUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURvd246XSk6IERlbGV0ZWQu
CisgICAgICAgICgtW1dLVmlldyBfcGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZDpwbHVn
aW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tW
aWV3IF9zZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGU6cGx1Z2luQ29tcGxleFRleHRJbnB1
dElkZW50aWZpZXI6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3SW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaDoK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwbHVnaW5Db21wbGV4VGV4dElucHV0
SWRlbnRpZmllcik6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0
YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFBsdWdpbkNvbXBsZXhUZXh0
SW5wdXRTdGF0ZUFuZElkZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
ZGlzYWJsZUNvbXBsZXhUZXh0SW5wdXRJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpoYW5kbGVQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bik6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjp0cnlIYW5kbGVQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5
RG93bik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwbHVnaW5Gb2N1c09yV2luZG93
Rm9jdXNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRyeVBvc3RQcm9j
ZXNzUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURvd24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpw
bHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnNldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSk6CisgICAgICAgIE1vdmUg
YSBmZXcgbW9yZSBtZXRob2RzLgorCisyMDE1LTEwLTIyICBUaW0gSG9ydG9uICA8dGltb3RoeV9o
b3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFdLVmlldyBiZWluZyBpbnNpZGUgV0tXZWJWaWV3
IGxlYWRzIHRvIHdlaXJkIEFQSSBpc3N1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1MDE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgogICAgICAg
ICAoLVtXS1ZpZXcgcmVuZXdHU3RhdGVdKToKICAgICAgICAgKC1bV0tWaWV3IHdyaXRlU2VsZWN0
aW9uVG9QYXN0ZWJvYXJkOnR5cGVzOl0pOgogICAgICAgICAoLVtXS1ZpZXcgY2VudGVyU2VsZWN0
aW9uSW5WaXNpYmxlQXJlYTpdKToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dL
Vmlldy5tbQppbmRleCBkOTk0Njg2Li5iMTBmM2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0yMDEsMTUgKzIwMSw4IEBAIHN0cnVjdCBXS1ZpZXdJ
bnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKICAgICBXS1ZpZXdJbnRlcnByZXRLZXlFdmVu
dHNQYXJhbWV0ZXJzKiBfaW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVyczsKICNlbmRpZgogCi0g
ICAgLy8gVGhlIGlkZW50aWZpZXIgb2YgdGhlIHBsdWctaW4gd2Ugd2FudCB0byBzZW5kIGNvbXBs
ZXggdGV4dCBpbnB1dCB0bywgb3IgMCBpZiB0aGVyZSBpcyBub25lLgotICAgIHVpbnQ2NF90IF9w
bHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcjsKLQotICAgIC8vIFRoZSBzdGF0ZSBvZiBj
b21wbGV4IHRleHQgaW5wdXQgZm9yIHRoZSBwbHVnLWluLgotICAgIFBsdWdpbkNvbXBsZXhUZXh0
SW5wdXRTdGF0ZSBfcGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlOwotCiAgICAgQk9PTCBfd2ls
bEJlY29tZUZpcnN0UmVzcG9uZGVyQWdhaW47CiAgICAgTlNFdmVudCAqX21vdXNlRG93bkV2ZW50
OwotICAgIE5TRXZlbnQgKl9wcmVzc3VyZUV2ZW50OwogICAgIEJPT0wgX2lnbm9yaW5nTW91c2VE
cmFnZ2VkRXZlbnRzOwogCiAgICAgQk9PTCBfaGFzU3BlbGxDaGVja2VyRG9jdW1lbnRUYWc7CkBA
IC0zOTIsMTcgKzM4NSw2IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0
ZXJzIHsKICAgICBbc3VwZXIgcmVuZXdHU3RhdGVdOwogfQogCi0tICh2b2lkKV9zZXRQbHVnaW5D
b21wbGV4VGV4dElucHV0U3RhdGU6KFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSlwbHVnaW5D
b21wbGV4VGV4dElucHV0U3RhdGUKLXsKLSAgICBfZGF0YS0+X3BsdWdpbkNvbXBsZXhUZXh0SW5w
dXRTdGF0ZSA9IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZTsKLSAgICAKLSAgICBpZiAoX2Rh
dGEtPl9wbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUgIT0gUGx1Z2luQ29tcGxleFRleHRJbnB1
dERpc2FibGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICAvLyBTZW5kIGJhY2sgYW4gZW1wdHkg
c3RyaW5nIHRvIHRoZSBwbHVnLWluLiBUaGlzIHdpbGwgZGlzYWJsZSB0ZXh0IGlucHV0LgotICAg
IF9kYXRhLT5fcGFnZS0+c2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbihfZGF0YS0+X3BsdWdp
bkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBTdHJpbmcoKSk7Ci19Ci0KIHR5cGVkZWYgSGFz
aE1hcDxTRUwsIFN0cmluZz4gU2VsZWN0b3JOYW1lTWFwOwogCiAvLyBNYXAgc2VsZWN0b3JzIGlu
dG8gRWRpdG9yIGNvbW1hbmQgbmFtZXMuCkBAIC0xMTg4LDU1ICsxMTcwLDYgQEAgTkFUSVZFX01P
VVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCiAgICAgcmV0
dXJuIHJlc3VsdDsKIH0KIAotLSAodm9pZClfZGlzYWJsZUNvbXBsZXhUZXh0SW5wdXRJZk5lY2Vz
c2FyeQotewotICAgIGlmICghX2RhdGEtPl9wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmll
cikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKF9kYXRhLT5fcGx1Z2luQ29tcGxleFRleHRJ
bnB1dFN0YXRlICE9IFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQotICAgICAgICByZXR1
cm47Ci0KLSAgICAvLyBDaGVjayBpZiB0aGUgdGV4dCBpbnB1dCB3aW5kb3cgaGFzIGJlZW4gZGlz
bWlzc2VkLgotICAgIGlmICghW1tXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIgc2hhcmVkVGV4
dElucHV0V2luZG93Q29udHJvbGxlcl0gaGFzTWFya2VkVGV4dF0pCi0gICAgICAgIFtzZWxmIF9z
ZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGU6UGx1Z2luQ29tcGxleFRleHRJbnB1dERpc2Fi
bGVkXTsKLX0KLQotLSAoQk9PTClfaGFuZGxlUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURvd246
KE5TRXZlbnQgKilldmVudAotewotICAgIEFTU0VSVChfZGF0YS0+X3BsdWdpbkNvbXBsZXhUZXh0
SW5wdXRJZGVudGlmaWVyKTsKLSAgICBBU1NFUlQoX2RhdGEtPl9wbHVnaW5Db21wbGV4VGV4dElu
cHV0U3RhdGUgIT0gUGx1Z2luQ29tcGxleFRleHRJbnB1dERpc2FibGVkKTsKLQotICAgIEJPT0wg
dXNpbmdMZWdhY3lDb2NvYVRleHRJbnB1dCA9IF9kYXRhLT5fcGx1Z2luQ29tcGxleFRleHRJbnB1
dFN0YXRlID09IFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRFbmFibGVkTGVnYWN5OwotCi0gICAgTlNT
dHJpbmcgKnN0cmluZyA9IG5pbDsKLSAgICBCT09MIGRpZEhhbmRsZUV2ZW50ID0gW1tXS1RleHRJ
bnB1dFdpbmRvd0NvbnRyb2xsZXIgc2hhcmVkVGV4dElucHV0V2luZG93Q29udHJvbGxlcl0gaW50
ZXJwcmV0S2V5RXZlbnQ6ZXZlbnQgdXNpbmdMZWdhY3lDb2NvYVRleHRJbnB1dDp1c2luZ0xlZ2Fj
eUNvY29hVGV4dElucHV0IHN0cmluZzomc3RyaW5nXTsKLQotICAgIGlmIChzdHJpbmcpIHsKLSAg
ICAgICAgX2RhdGEtPl9wYWdlLT5zZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKF9kYXRhLT5f
cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIHN0cmluZyk7Ci0KLSAgICAgICAgaWYg
KCF1c2luZ0xlZ2FjeUNvY29hVGV4dElucHV0KQotICAgICAgICAgICAgX2RhdGEtPl9wbHVnaW5D
b21wbGV4VGV4dElucHV0U3RhdGUgPSBQbHVnaW5Db21wbGV4VGV4dElucHV0RGlzYWJsZWQ7Ci0g
ICAgfQotCi0gICAgcmV0dXJuIGRpZEhhbmRsZUV2ZW50OwotfQotCi0tIChCT09MKV90cnlIYW5k
bGVQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bjooTlNFdmVudCAqKWV2ZW50Ci17Ci0gICAg
aWYgKCFfZGF0YS0+X3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyIHx8IF9kYXRhLT5f
cGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlID09IFBsdWdpbkNvbXBsZXhUZXh0SW5wdXREaXNh
YmxlZCkKLSAgICAgICAgcmV0dXJuIE5POwotCi0gICAgLy8gQ2hlY2sgaWYgdGhlIHRleHQgaW5w
dXQgd2luZG93IGhhcyBiZWVuIGRpc21pc3NlZCBhbmQgbGV0IHRoZSBwbHVnLWluIHByb2Nlc3Mg
a25vdy4KLSAgICAvLyBUaGlzIGlzIG9ubHkgdmFsaWQgd2l0aCB0aGUgdXBkYXRlZCBDb2NvYSB0
ZXh0IGlucHV0IHNwZWMuCi0gICAgW3NlbGYgX2Rpc2FibGVDb21wbGV4VGV4dElucHV0SWZOZWNl
c3NhcnldOwotCi0gICAgLy8gVHJ5IGZlZWRpbmcgdGhlIGtleWJvYXJkIGV2ZW50IGRpcmVjdGx5
IHRvIHRoZSBwbHVnLWluLgotICAgIGlmIChfZGF0YS0+X3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRT
dGF0ZSA9PSBQbHVnaW5Db21wbGV4VGV4dElucHV0RW5hYmxlZExlZ2FjeSkKLSAgICAgICAgcmV0
dXJuIFtzZWxmIF9oYW5kbGVQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bjpldmVudF07Ci0K
LSAgICByZXR1cm4gTk87Ci19Ci0KIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0
cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbmU+JiByZXN1
bHQpCiB7CiAgICAgaW50IGxlbmd0aCA9IFtbc3RyaW5nIHN0cmluZ10gbGVuZ3RoXTsKQEAgLTEy
NzksNyArMTIxMiw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRl
ZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiB7CiAgICAgLy8gRm9yIHJl
Z3VsYXIgV2ViIGNvbnRlbnQsIGlucHV0IG1ldGhvZHMgcnVuIGJlZm9yZSBwYXNzaW5nIGEga2V5
ZG93biB0byBET00sIGJ1dCBwbHVnLWlucyBnZXQgYW4gb3Bwb3J0dW5pdHkgdG8gaGFuZGxlIHRo
ZSBldmVudCBmaXJzdC4KICAgICAvLyBUaGVyZSBpcyBubyBuZWVkIHRvIGNvbGxlY3QgY29tbWFu
ZHMsIGFzIHRoZSBwbHVnLWluIGNhbm5vdCBleGVjdXRlIHRoZW0uCi0gICAgaWYgKF9kYXRhLT5f
cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIpIHsKKyAgICBpZiAoX2RhdGEtPl9pbXBs
LT5wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpKSB7CiAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKE5PLCBWZWN0b3I8S2V5cHJlc3NDb21tYW5kPigpKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KQEAgLTE1MjMsNyArMTQ1Niw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxp
bmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAK
IC0gKE5TVGV4dElucHV0Q29udGV4dCAqKWlucHV0Q29udGV4dAogewotICAgIGlmIChfZGF0YS0+
X3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKSB7CisgICAgaWYgKF9kYXRhLT5faW1w
bC0+cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIoKSkgewogICAgICAgICBBU1NFUlQo
IV9kYXRhLT5fY29sbGVjdGVkS2V5cHJlc3NDb21tYW5kcyk7IC8vIFNob3VsZCBub3QgZ2V0IGhl
cmUgZnJvbSAtX2ludGVycHJldEtleUV2ZW50OmNvbXBsZXRpb25IYW5kbGVyOiwgd2Ugb25seSB1
c2UgV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyIGFmdGVyIGdpdmluZyB0aGUgcGx1Zy1pbiBh
IGNoYW5jZSB0byBoYW5kbGUga2V5ZG93biBuYXRpdmVseS4KICAgICAgICAgcmV0dXJuIFtbV0tU
ZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyIHNoYXJlZFRleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXJd
IGlucHV0Q29udGV4dF07CiAgICAgfQpAQCAtMTYzOCw3ICsxNTcxLDcgQEAgc3RhdGljIHZvaWQg
ZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21w
b3NpdGlvblVuZGUKIAogICAgIEFTU0VSVChldmVudCA9PSBbTlNBcHAgY3VycmVudEV2ZW50XSk7
CiAKLSAgICBbc2VsZiBfZGlzYWJsZUNvbXBsZXhUZXh0SW5wdXRJZk5lY2Vzc2FyeV07CisgICAg
X2RhdGEtPl9pbXBsLT5kaXNhYmxlQ29tcGxleFRleHRJbnB1dElmTmVjZXNzYXJ5KCk7CiAKICAg
ICAvLyBQYXNzIGtleSBjb21ib3MgdGhyb3VnaCBXZWJDb3JlIGlmIHRoZXJlIGlzIGEga2V5IGJp
bmRpbmcgYXZhaWxhYmxlIGZvcgogICAgIC8vIHRoaXMgZXZlbnQuIFRoaXMgbGV0cyB3ZWJwYWdl
cyBoYXZlIGEgY3JhY2sgYXQgaW50ZXJjZXB0aW5nIGtleS1tb2RpZmllZCBrZXlwcmVzc2VzLgpA
QCAtMTY3Myw3ICsxNjA2LDcgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRy
aWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKIAogICAgIExPRyhU
ZXh0SW5wdXQsICJrZXlEb3duOiVwICVAJXMiLCB0aGVFdmVudCwgdGhlRXZlbnQsICh0aGVFdmVu
dCA9PSBfZGF0YS0+X2tleURvd25FdmVudEJlaW5nUmVzZW50KSA/ICIgKHJlLXNlbnQpIiA6ICIi
KTsKIAotICAgIGlmIChbc2VsZiBfdHJ5SGFuZGxlUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURv
d246dGhlRXZlbnRdKSB7CisgICAgaWYgKF9kYXRhLT5faW1wbC0+dHJ5SGFuZGxlUGx1Z2luQ29t
cGxleFRleHRJbnB1dEtleURvd24odGhlRXZlbnQpKSB7CiAgICAgICAgIExPRyhUZXh0SW5wdXQs
ICIuLi5oYW5kbGVkIGJ5IHBsdWctaW4iKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE4
NTksNyArMTc5Miw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRl
ZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiB7CiAgICAgV0tWaWV3SW50
ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyogcGFyYW1ldGVycyA9IF9kYXRhLT5faW50ZXJwcmV0
S2V5RXZlbnRzUGFyYW1ldGVyczsKIAotICAgIGlmIChfZGF0YS0+X3BsdWdpbkNvbXBsZXhUZXh0
SW5wdXRJZGVudGlmaWVyICYmICFwYXJhbWV0ZXJzKQorICAgIGlmIChfZGF0YS0+X2ltcGwtPnBs
dWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgJiYgIXBhcmFtZXRlcnMpCiAgICAgICAg
IHJldHVybiBbW1dLVGV4dElucHV0V2luZG93Q29udHJvbGxlciBzaGFyZWRUZXh0SW5wdXRXaW5k
b3dDb250cm9sbGVyXSBpbnB1dENvbnRleHRdOwogCiAgICAgLy8gRGlzYWJsZSB0ZXh0IGlucHV0
IG1hY2hpbmVyeSB3aGVuIGluIG5vbi1lZGl0YWJsZSBjb250ZW50LiBBbiBpbnZpc2libGUgaW5s
aW5lIGlucHV0IGFyZWEgYWZmZWN0cyBwZXJmb3JtYW5jZSwgYW5kIGNhbiBwcmV2ZW50IEV4cG9z
ZSBmcm9tIHdvcmtpbmcuCkBAIC0yMDgxLDcgKzIwMTQsNyBAQCBzdGF0aWMgdm9pZCBleHRyYWN0
VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9u
VW5kZQogCiAgICAgQVNTRVJUKGV2ZW50ID09IFtOU0FwcCBjdXJyZW50RXZlbnRdKTsKIAotICAg
IFtzZWxmIF9kaXNhYmxlQ29tcGxleFRleHRJbnB1dElmTmVjZXNzYXJ5XTsKKyAgICBfZGF0YS0+
X2ltcGwtPmRpc2FibGVDb21wbGV4VGV4dElucHV0SWZOZWNlc3NhcnkoKTsKIAogICAgIC8vIFBh
c3Mga2V5IGNvbWJvcyB0aHJvdWdoIFdlYkNvcmUgaWYgdGhlcmUgaXMgYSBrZXkgYmluZGluZyBh
dmFpbGFibGUgZm9yCiAgICAgLy8gdGhpcyBldmVudC4gVGhpcyBsZXRzIHdlYnBhZ2VzIGhhdmUg
YSBjcmFjayBhdCBpbnRlcmNlcHRpbmcga2V5LW1vZGlmaWVkIGtleXByZXNzZXMuCkBAIC0yMTE4
LDcgKzIwNTEsNyBAQCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRT
dHJpbmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogICAgIC8vIHRoZSBjdXJyZW50
IGV2ZW50IHByZXZlbnRzIHRoYXQgZnJvbSBjYXVzaW5nIGEgcHJvYmxlbSBpbnNpZGUgV2ViS2l0
IG9yIEFwcEtpdCBjb2RlLgogICAgIFtbdGhlRXZlbnQgcmV0YWluXSBhdXRvcmVsZWFzZV07CiAK
LSAgICBpZiAoW3NlbGYgX3RyeUhhbmRsZVBsdWdpbkNvbXBsZXhUZXh0SW5wdXRLZXlEb3duOnRo
ZUV2ZW50XSkgeworICAgIGlmIChfZGF0YS0+X2ltcGwtPnRyeUhhbmRsZVBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRLZXlEb3duKHRoZUV2ZW50KSkgewogICAgICAgICBMT0coVGV4dElucHV0LCAiLi4u
aGFuZGxlZCBieSBwbHVnLWluIik7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0yNTQxLDI0
ICsyNDc0LDEyIEBAIHN0YXRpYyB2b2lkIGNyZWF0ZVNhbmRib3hFeHRlbnNpb25zRm9yRmlsZVVw
bG9hZChOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIFNhbmRiCiAgICAgfQogfQogCi0tIChCT09M
KV90cnlQb3N0UHJvY2Vzc1BsdWdpbkNvbXBsZXhUZXh0SW5wdXRLZXlEb3duOihOU0V2ZW50ICop
ZXZlbnQKLXsKLSAgICBpZiAoIV9kYXRhLT5fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZp
ZXIgfHwgX2RhdGEtPl9wbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUgPT0gUGx1Z2luQ29tcGxl
eFRleHRJbnB1dERpc2FibGVkKQotICAgICAgICByZXR1cm4gTk87Ci0KLSAgICAvLyBJbiB0aGUg
bGVnYWN5IHRleHQgaW5wdXQgbW9kZWwsIHRoZSBldmVudCBoYXMgYWxyZWFkeSBiZWVuIHNlbnQg
dG8gdGhlIGlucHV0IG1ldGhvZC4KLSAgICBpZiAoX2RhdGEtPl9wbHVnaW5Db21wbGV4VGV4dElu
cHV0U3RhdGUgPT0gUGx1Z2luQ29tcGxleFRleHRJbnB1dEVuYWJsZWRMZWdhY3kpCi0gICAgICAg
IHJldHVybiBOTzsKLQotICAgIHJldHVybiBbc2VsZiBfaGFuZGxlUGx1Z2luQ29tcGxleFRleHRJ
bnB1dEtleURvd246ZXZlbnRdOwotfQotCiAtICh2b2lkKV9kb25lV2l0aEtleUV2ZW50OihOU0V2
ZW50ICopZXZlbnQgZXZlbnRXYXNIYW5kbGVkOihCT09MKWV2ZW50V2FzSGFuZGxlZAogewogICAg
IGlmIChbZXZlbnQgdHlwZV0gIT0gTlNLZXlEb3duKQogICAgICAgICByZXR1cm47CiAKLSAgICBp
ZiAoW3NlbGYgX3RyeVBvc3RQcm9jZXNzUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURvd246ZXZl
bnRdKQorICAgIGlmIChfZGF0YS0+X2ltcGwtPnRyeVBvc3RQcm9jZXNzUGx1Z2luQ29tcGxleFRl
eHRJbnB1dEtleURvd24oZXZlbnQpKQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgaWYgKGV2
ZW50V2FzSGFuZGxlZCkgewpAQCAtMjg0MCw0NCArMjc2MSw2IEBAIHN0YXRpYyBSZXRhaW5QdHI8
Q0dJbWFnZVJlZj4gdGFrZVdpbmRvd1NuYXBzaG90KENHU1dpbmRvd0lEIHdpbmRvd0lELCBib29s
IGNhcHR1CiAgICAgW3NlbGYgX3VwZGF0ZVJlbW90ZUFjY2Vzc2liaWxpdHlSZWdpc3RyYXRpb246
WUVTXTsKIH0KIAotLSAodm9pZClfcGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZDooQk9P
TClwbHVnaW5IYXNGb2N1c0FuZFdpbmRvd0hhc0ZvY3VzIHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJ
ZGVudGlmaWVyOih1aW50NjRfdClwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcgotewot
ICAgIEJPT0wgaW5wdXRTb3VyY2VDaGFuZ2VkID0gX2RhdGEtPl9wbHVnaW5Db21wbGV4VGV4dElu
cHV0SWRlbnRpZmllcjsKLQotICAgIGlmIChwbHVnaW5IYXNGb2N1c0FuZFdpbmRvd0hhc0ZvY3Vz
KSB7Ci0gICAgICAgIC8vIENoZWNrIGlmIHdlJ3JlIGFscmVhZHkgYWxsb3dpbmcgdGV4dCBpbnB1
dCBmb3IgdGhpcyBwbHVnLWluLgotICAgICAgICBpZiAocGx1Z2luQ29tcGxleFRleHRJbnB1dElk
ZW50aWZpZXIgPT0gX2RhdGEtPl9wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcikKLSAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBfZGF0YS0+X3BsdWdpbkNvbXBsZXhUZXh0SW5w
dXRJZGVudGlmaWVyID0gcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXI7Ci0KLSAgICB9
IGVsc2UgewotICAgICAgICAvLyBDaGVjayBpZiB3ZSBnb3QgYSByZXF1ZXN0IHRvIHVuZm9jdXMg
YSBwbHVnLWluIHRoYXQgaXNuJ3QgZm9jdXNlZC4KLSAgICAgICAgaWYgKHBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRJZGVudGlmaWVyICE9IF9kYXRhLT5fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50
aWZpZXIpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgX2RhdGEtPl9wbHVnaW5Db21w
bGV4VGV4dElucHV0SWRlbnRpZmllciA9IDA7Ci0gICAgfQotCi0gICAgaWYgKGlucHV0U291cmNl
Q2hhbmdlZCkgewotICAgICAgICAvLyBUaGUgaW5wdXQgc291cmNlIGNoYW5nZWQ7IGRpc2NhcmQg
YW55IGVudGVyZWQgdGV4dC4KLSAgICAgICAgW1tXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIg
c2hhcmVkVGV4dElucHV0V2luZG93Q29udHJvbGxlcl0gdW5tYXJrVGV4dF07Ci0gICAgfQotCi0g
ICAgLy8gVGhpcyB3aWxsIGZvcmNlIHRoZSBjdXJyZW50IGlucHV0IGNvbnRleHQgdG8gYmUgdXBk
YXRlZCB0byBpdHMgY29ycmVjdCB2YWx1ZS4KLSAgICBbTlNBcHAgdXBkYXRlV2luZG93c107Ci19
Ci0KLS0gKHZvaWQpX3NldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZTooUGx1Z2luQ29tcGxl
eFRleHRJbnB1dFN0YXRlKXBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSBwbHVnaW5Db21wbGV4
VGV4dElucHV0SWRlbnRpZmllcjoodWludDY0X3QpcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50
aWZpZXIKLXsKLSAgICBpZiAocGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIgIT0gX2Rh
dGEtPl9wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcikgewotICAgICAgICAvLyBXZSdy
ZSBhc2tlZCB0byB1cGRhdGUgdGhlIHN0YXRlIGZvciBhIHBsdWctaW4gdGhhdCBkb2Vzbid0IGhh
dmUgZm9jdXMuCi0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBbc2VsZiBfc2V0UGx1Z2lu
Q29tcGxleFRleHRJbnB1dFN0YXRlOnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZV07Ci19Ci0K
IC0gKHZvaWQpX2RyYWdJbWFnZUZvclZpZXc6KE5TVmlldyAqKXZpZXcgd2l0aEltYWdlOihOU0lt
YWdlICopaW1hZ2UgYXQ6KE5TUG9pbnQpY2xpZW50UG9pbnQgbGlua0RyYWc6KEJPT0wpbGlua0Ry
YWcKIHsKICAgICAvLyBUaGUgY2FsbCBiZWxvdyBjb3VsZCByZWxlYXNlIHRoaXMgV0tWaWV3Lgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJu
YWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgK
aW5kZXggMjhlNWI3Ny4uN2Y4YzgwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCkBAIC05NSw4ICs5NSw2IEBAIHN0cnVjdCBFZGl0
b3JTdGF0ZTsKIAogLSAodm9pZClfc2V0QWNjZXNzaWJpbGl0eVdlYlByb2Nlc3NUb2tlbjooTlNE
YXRhICopZGF0YTsKIAotLSAodm9pZClfcGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZDoo
Qk9PTClwbHVnaW5IYXNGb2N1c0FuZFdpbmRvd0hhc0ZvY3VzIHBsdWdpbkNvbXBsZXhUZXh0SW5w
dXRJZGVudGlmaWVyOih1aW50NjRfdClwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcjsK
LS0gKHZvaWQpX3NldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZTooV2ViS2l0OjpQbHVnaW5D
b21wbGV4VGV4dElucHV0U3RhdGUpcGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlIHBsdWdpbkNv
bXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyOih1aW50NjRfdClwbHVnaW5Db21wbGV4VGV4dElucHV0
SWRlbnRpZmllcjsKIC0gKHZvaWQpX2RyYWdJbWFnZUZvclZpZXc6KE5TVmlldyAqKXZpZXcgd2l0
aEltYWdlOihOU0ltYWdlICopaW1hZ2UgYXQ6KE5TUG9pbnQpY2xpZW50UG9pbnQgbGlua0RyYWc6
KEJPT0wpbGlua0RyYWc7CiAtICh2b2lkKV9zZXRQcm9taXNlZERhdGFGb3JJbWFnZTooV2ViQ29y
ZTo6SW1hZ2UgKilpbWFnZSB3aXRoRmlsZU5hbWU6KE5TU3RyaW5nICopZmlsZW5hbWUgd2l0aEV4
dGVuc2lvbjooTlNTdHJpbmcgKilleHRlbnNpb24gd2l0aFRpdGxlOihOU1N0cmluZyAqKXRpdGxl
IHdpdGhVUkw6KE5TU3RyaW5nICopdXJsIHdpdGhWaXNpYmxlVVJMOihOU1N0cmluZyAqKXZpc2li
bGVVcmwgd2l0aEFyY2hpdmU6KFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciopIGFyY2hpdmVCdWZmZXIg
Zm9yUGFzdGVib2FyZDooTlNTdHJpbmcgKilwYXN0ZWJvYXJkTmFtZTsKICNpZiBFTkFCTEUoQVRU
QUNITUVOVF9FTEVNRU5UKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaAppbmRleCBlMDAxNWVhLi5mOTJlMjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgUExBVEZP
Uk0oTUFDKQogCisjaW5jbHVkZSAiUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlLmgiCiAjaW5j
bHVkZSAiV0tMYXlvdXRNb2RlLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCiAjaW5jbHVk
ZSA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yV2luZG93Lmg+CkBAIC0xNTksNiArMTYwLDE0IEBAIHB1
YmxpYzoKICAgICB2b2lkIHJlc2V0U2VjdXJlSW5wdXRTdGF0ZSgpOwogICAgIGJvb2wgaW5TZWN1
cmVJbnB1dFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9pblNlY3VyZUlucHV0U3RhdGU7IH0KICAg
ICB2b2lkIG5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb24oKTsKKyAg
ICB2b2lkIHNldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZUFuZElkZW50aWZpZXIoUGx1Z2lu
Q29tcGxleFRleHRJbnB1dFN0YXRlLCB1aW50NjRfdCBpZGVudGlmaWVyKTsKKyAgICB2b2lkIGRp
c2FibGVDb21wbGV4VGV4dElucHV0SWZOZWNlc3NhcnkoKTsKKyAgICBib29sIGhhbmRsZVBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRLZXlEb3duKE5TRXZlbnQgKik7CisgICAgYm9vbCB0cnlIYW5kbGVQ
bHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bihOU0V2ZW50ICopOworICAgIHZvaWQgcGx1Z2lu
Rm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZChib29sIHBsdWdpbkhhc0ZvY3VzQW5kV2luZG93SGFz
Rm9jdXMsIHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKTsKKyAgICBi
b29sIHRyeVBvc3RQcm9jZXNzUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURvd24oTlNFdmVudCAq
KTsKKyAgICBQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUgcGx1Z2luQ29tcGxleFRleHRJbnB1
dFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9wbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGU7IH0K
KyAgICB1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXI7IH0KIAogICAgIHZvaWQg
cHJlc3N1cmVDaGFuZ2VXaXRoRXZlbnQoTlNFdmVudCAqKTsKICAgICBOU0V2ZW50ICpsYXN0UHJl
c3N1cmVFdmVudCgpIHsgcmV0dXJuIG1fbGFzdFByZXNzdXJlRXZlbnQuZ2V0KCk7IH0KQEAgLTIx
OCw2ICsyMjcsOCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwb3N0RmFrZU1vdXNlTW92ZWRFdmVu
dEZvckZsYWdzQ2hhbmdlZEV2ZW50KE5TRXZlbnQgKik7CiAKKyAgICB2b2lkIHNldFBsdWdpbkNv
bXBsZXhUZXh0SW5wdXRTdGF0ZShQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpOworCiAgICAg
TlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAqbV92aWV3OwogICAgIFdlYlBhZ2VQcm94eSYg
bV9wYWdlOwogICAgIFBhZ2VDbGllbnQmIG1fcGFnZUNsaWVudDsKQEAgLTI1MSw2ICsyNjIsMTIg
QEAgcHJpdmF0ZToKICAgICBib29sIG1faW5TZWN1cmVJbnB1dFN0YXRlIHsgZmFsc2UgfTsKICAg
ICBSZXRhaW5QdHI8V0tFZGl0b3JVbmRvVGFyZ2V0T2JqQz4gbV91bmRvVGFyZ2V0OwogCisgICAg
Ly8gVGhlIGlkZW50aWZpZXIgb2YgdGhlIHBsdWctaW4gd2Ugd2FudCB0byBzZW5kIGNvbXBsZXgg
dGV4dCBpbnB1dCB0bywgb3IgMCBpZiB0aGVyZSBpcyBub25lLgorICAgIHVpbnQ2NF90IG1fcGx1
Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXI7CisKKyAgICAvLyBUaGUgc3RhdGUgb2YgY29t
cGxleCB0ZXh0IGlucHV0IGZvciB0aGUgcGx1Zy1pbi4KKyAgICBQbHVnaW5Db21wbGV4VGV4dElu
cHV0U3RhdGUgbV9wbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGU7CisKICNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCiAgICAgUmV0YWluUHRyPFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXI+
IG1fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXI7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCBjYmZhZjBkLi5mZDY3MzViIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0z
Niw2ICszNiw3IEBACiAjaW1wb3J0ICJQYWdlQ2xpZW50LmgiCiAjaW1wb3J0ICJXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xs
ZXIuaCIKKyNpbXBvcnQgIldLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5oIgogI2ltcG9ydCAi
V0tWaWV3TGF5b3V0U3RyYXRlZ3kuaCIKICNpbXBvcnQgIldLV2ViVmlldy5oIgogI2ltcG9ydCAi
V2ViRWRpdENvbW1hbmRQcm94eS5oIgpAQCAtMTAxNSw2ICsxMDE2LDExNiBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjpub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uKCkKICAg
ICBbW21fdmlldyBfc3VwZXJJbnB1dENvbnRleHRdIGRpc2NhcmRNYXJrZWRUZXh0XTsgLy8gSW5m
b3JtIHRoZSBpbnB1dCBtZXRob2QgdGhhdCB3ZSB3b24ndCBoYXZlIGFuIGlubGluZSBpbnB1dCBh
cmVhIGRlc3BpdGUgaGF2aW5nIGJlZW4gYXNrZWQgdG8uCiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6
OnNldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZShQbHVnaW5Db21wbGV4VGV4dElucHV0U3Rh
dGUgcGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKQoreworICAgIG1fcGx1Z2luQ29tcGxleFRl
eHRJbnB1dFN0YXRlID0gcGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlOworCisgICAgaWYgKG1f
cGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlICE9IFBsdWdpbkNvbXBsZXhUZXh0SW5wdXREaXNh
YmxlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gU2VuZCBiYWNrIGFuIGVtcHR5IHN0cmlu
ZyB0byB0aGUgcGx1Zy1pbi4gVGhpcyB3aWxsIGRpc2FibGUgdGV4dCBpbnB1dC4KKyAgICBtX3Bh
Z2Uuc2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbihtX3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRJ
ZGVudGlmaWVyLCBTdHJpbmcoKSk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldFBsdWdpbkNv
bXBsZXhUZXh0SW5wdXRTdGF0ZUFuZElkZW50aWZpZXIoUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0
YXRlIHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSwgdWludDY0X3QgcGx1Z2luQ29tcGxleFRl
eHRJbnB1dElkZW50aWZpZXIpCit7CisgICAgaWYgKHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVu
dGlmaWVyICE9IG1fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIpIHsKKyAgICAgICAg
Ly8gV2UncmUgYXNrZWQgdG8gdXBkYXRlIHRoZSBzdGF0ZSBmb3IgYSBwbHVnLWluIHRoYXQgZG9l
c24ndCBoYXZlIGZvY3VzLgorICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgc2V0UGx1Z2lu
Q29tcGxleFRleHRJbnB1dFN0YXRlKHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSk7Cit9CisK
K3ZvaWQgV2ViVmlld0ltcGw6OmRpc2FibGVDb21wbGV4VGV4dElucHV0SWZOZWNlc3NhcnkoKQor
eworICAgIGlmICghbV9wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcikKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKG1fcGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlICE9IFBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRFbmFibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBDaGVj
ayBpZiB0aGUgdGV4dCBpbnB1dCB3aW5kb3cgaGFzIGJlZW4gZGlzbWlzc2VkLgorICAgIGlmICgh
W1tXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIgc2hhcmVkVGV4dElucHV0V2luZG93Q29udHJv
bGxlcl0gaGFzTWFya2VkVGV4dF0pCisgICAgICAgIHNldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRT
dGF0ZShQbHVnaW5Db21wbGV4VGV4dElucHV0RGlzYWJsZWQpOworfQorCitib29sIFdlYlZpZXdJ
bXBsOjpoYW5kbGVQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bihOU0V2ZW50ICpldmVudCkK
K3sKKyAgICBBU1NFUlQobV9wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcik7CisgICAg
QVNTRVJUKG1fcGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlICE9IFBsdWdpbkNvbXBsZXhUZXh0
SW5wdXREaXNhYmxlZCk7CisKKyAgICBCT09MIHVzaW5nTGVnYWN5Q29jb2FUZXh0SW5wdXQgPSBt
X3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSA9PSBQbHVnaW5Db21wbGV4VGV4dElucHV0RW5h
YmxlZExlZ2FjeTsKKworICAgIE5TU3RyaW5nICpzdHJpbmcgPSBuaWw7CisgICAgQk9PTCBkaWRI
YW5kbGVFdmVudCA9IFtbV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyIHNoYXJlZFRleHRJbnB1
dFdpbmRvd0NvbnRyb2xsZXJdIGludGVycHJldEtleUV2ZW50OmV2ZW50IHVzaW5nTGVnYWN5Q29j
b2FUZXh0SW5wdXQ6dXNpbmdMZWdhY3lDb2NvYVRleHRJbnB1dCBzdHJpbmc6JnN0cmluZ107CisK
KyAgICBpZiAoc3RyaW5nKSB7CisgICAgICAgIG1fcGFnZS5zZW5kQ29tcGxleFRleHRJbnB1dFRv
UGx1Z2luKG1fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIHN0cmluZyk7CisKKyAg
ICAgICAgaWYgKCF1c2luZ0xlZ2FjeUNvY29hVGV4dElucHV0KQorICAgICAgICAgICAgbV9wbHVn
aW5Db21wbGV4VGV4dElucHV0U3RhdGUgPSBQbHVnaW5Db21wbGV4VGV4dElucHV0RGlzYWJsZWQ7
CisgICAgfQorCisgICAgcmV0dXJuIGRpZEhhbmRsZUV2ZW50OworfQorCitib29sIFdlYlZpZXdJ
bXBsOjp0cnlIYW5kbGVQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bihOU0V2ZW50ICpldmVu
dCkKK3sKKyAgICBpZiAoIW1fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIgfHwgbV9w
bHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUgPT0gUGx1Z2luQ29tcGxleFRleHRJbnB1dERpc2Fi
bGVkKQorICAgICAgICByZXR1cm4gTk87CisKKyAgICAvLyBDaGVjayBpZiB0aGUgdGV4dCBpbnB1
dCB3aW5kb3cgaGFzIGJlZW4gZGlzbWlzc2VkIGFuZCBsZXQgdGhlIHBsdWctaW4gcHJvY2VzcyBr
bm93LgorICAgIC8vIFRoaXMgaXMgb25seSB2YWxpZCB3aXRoIHRoZSB1cGRhdGVkIENvY29hIHRl
eHQgaW5wdXQgc3BlYy4KKyAgICBkaXNhYmxlQ29tcGxleFRleHRJbnB1dElmTmVjZXNzYXJ5KCk7
CisKKyAgICAvLyBUcnkgZmVlZGluZyB0aGUga2V5Ym9hcmQgZXZlbnQgZGlyZWN0bHkgdG8gdGhl
IHBsdWctaW4uCisgICAgaWYgKG1fcGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlID09IFBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRFbmFibGVkTGVnYWN5KQorICAgICAgICByZXR1cm4gaGFuZGxlUGx1
Z2luQ29tcGxleFRleHRJbnB1dEtleURvd24oZXZlbnQpOworCisgICAgcmV0dXJuIE5POworfQor
Cit2b2lkIFdlYlZpZXdJbXBsOjpwbHVnaW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKGJvb2wg
cGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cywgdWludDY0X3QgcGx1Z2luQ29tcGxleFRl
eHRJbnB1dElkZW50aWZpZXIpCit7CisgICAgQk9PTCBpbnB1dFNvdXJjZUNoYW5nZWQgPSBtX3Bs
dWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyOworCisgICAgaWYgKHBsdWdpbkhhc0ZvY3Vz
QW5kV2luZG93SGFzRm9jdXMpIHsKKyAgICAgICAgLy8gQ2hlY2sgaWYgd2UncmUgYWxyZWFkeSBh
bGxvd2luZyB0ZXh0IGlucHV0IGZvciB0aGlzIHBsdWctaW4uCisgICAgICAgIGlmIChwbHVnaW5D
b21wbGV4VGV4dElucHV0SWRlbnRpZmllciA9PSBtX3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVu
dGlmaWVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fcGx1Z2luQ29tcGxleFRl
eHRJbnB1dElkZW50aWZpZXIgPSBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcjsKKwor
ICAgIH0gZWxzZSB7CisgICAgICAgIC8vIENoZWNrIGlmIHdlIGdvdCBhIHJlcXVlc3QgdG8gdW5m
b2N1cyBhIHBsdWctaW4gdGhhdCBpc24ndCBmb2N1c2VkLgorICAgICAgICBpZiAocGx1Z2luQ29t
cGxleFRleHRJbnB1dElkZW50aWZpZXIgIT0gbV9wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRp
ZmllcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBtX3BsdWdpbkNvbXBsZXhUZXh0
SW5wdXRJZGVudGlmaWVyID0gMDsKKyAgICB9CisKKyAgICBpZiAoaW5wdXRTb3VyY2VDaGFuZ2Vk
KSB7CisgICAgICAgIC8vIFRoZSBpbnB1dCBzb3VyY2UgY2hhbmdlZDsgZGlzY2FyZCBhbnkgZW50
ZXJlZCB0ZXh0LgorICAgICAgICBbW1dLVGV4dElucHV0V2luZG93Q29udHJvbGxlciBzaGFyZWRU
ZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyXSB1bm1hcmtUZXh0XTsKKyAgICB9CisgICAgCisgICAg
Ly8gVGhpcyB3aWxsIGZvcmNlIHRoZSBjdXJyZW50IGlucHV0IGNvbnRleHQgdG8gYmUgdXBkYXRl
ZCB0byBpdHMgY29ycmVjdCB2YWx1ZS4KKyAgICBbTlNBcHAgdXBkYXRlV2luZG93c107Cit9CisK
K2Jvb2wgV2ViVmlld0ltcGw6OnRyeVBvc3RQcm9jZXNzUGx1Z2luQ29tcGxleFRleHRJbnB1dEtl
eURvd24oTlNFdmVudCAqZXZlbnQpCit7CisgICAgaWYgKCFtX3BsdWdpbkNvbXBsZXhUZXh0SW5w
dXRJZGVudGlmaWVyIHx8IG1fcGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlID09IFBsdWdpbkNv
bXBsZXhUZXh0SW5wdXREaXNhYmxlZCkKKyAgICAgICAgcmV0dXJuIE5POworCisgICAgLy8gSW4g
dGhlIGxlZ2FjeSB0ZXh0IGlucHV0IG1vZGVsLCB0aGUgZXZlbnQgaGFzIGFscmVhZHkgYmVlbiBz
ZW50IHRvIHRoZSBpbnB1dCBtZXRob2QuCisgICAgaWYgKG1fcGx1Z2luQ29tcGxleFRleHRJbnB1
dFN0YXRlID09IFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRFbmFibGVkTGVnYWN5KQorICAgICAgICBy
ZXR1cm4gTk87CisKKyAgICByZXR1cm4gaGFuZGxlUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURv
d24oZXZlbnQpOworfQorCiB2b2lkIFdlYlZpZXdJbXBsOjpwcmVzc3VyZUNoYW5nZVdpdGhFdmVu
dChOU0V2ZW50ICpldmVudCkKIHsKICNpZiBkZWZpbmVkKF9fTFA2NF9fKSAmJiBfX01BQ19PU19Y
X1ZFUlNJT05fTUFYX0FMTE9XRUQgPj0gMTAxMDAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQppbmRleCBjMmY3ZTdkLi4wMjM0ZWU1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KQEAgLTUzNiwx
MiArNTM2LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6Omdlc3R1cmVFdmVudFdhc05vdEhhbmRs
ZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViR2VzdHVyZUV2CiAKIHZvaWQgUGFnZUNsaWVudElt
cGw6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQodWludDY0X3QgcGx1Z2luQ29tcGxl
eFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1
cykKIHsKLSAgICBbbV93a1ZpZXcgX3BsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQ6cGx1
Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cyBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRp
ZmllcjpwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcl07CisgICAgbV9pbXBsLT5wbHVn
aW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkKHBsdWdpbkhhc0ZvY3VzQW5kV2luZG93SGFzRm9j
dXMsIHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKHVpbnQ2NF90IHBsdWdpbkNv
bXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUgcGx1
Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKQogewotICAgIFttX3drVmlldyBfc2V0UGx1Z2luQ29t
cGxleFRleHRJbnB1dFN0YXRlOnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSBwbHVnaW5Db21w
bGV4VGV4dElucHV0SWRlbnRpZmllcjpwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcl07
CisgICAgbV9pbXBsLT5zZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGVBbmRJZGVudGlmaWVy
KHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSwgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50
aWZpZXIpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRGljdGlvbmFyeUxv
b2t1cChjb25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aW9uYXJ5UG9wdXBJbmZvKQotLSAK
Mi40LjkgKEFwcGxlIEdpdC02MCkKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263877</attachid>
            <date>2015-10-22 16:10:43 -0700</date>
            <delta_ts>2015-10-23 13:51:40 -0700</delta_ts>
            <desc>Part 4 - tooltips</desc>
            <filename>0003-tracking-rects.patch</filename>
            <type>text/plain</type>
            <size>15220</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">RnJvbSA3ODA5NWNkMDgwYzc1ZmQ3YjFiNzA1MTU4NzU0MTM1MmJiNjU2NDBjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaW0gSG9ydG9uIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CkRhdGU6IFRodSwgMjIgT2N0IDIwMTUgMTY6MDQ6NTggLTA3MDAKU3ViamVjdDogW1BBVENIIDMv
M10gdHJhY2tpbmcgcmVjdHMKCi0tLQogU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nICAgICAgICAg
ICAgICAgICAgICAgIHwgIDMyICsrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L21hYy9XS1ZpZXcubW0gICAgfCAxMTAgKysrKystLS0tLS0tLS0tLS0tLS0tLS0tLQogU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggIHwgIDE2ICsrKysKIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSB8IDExMiArKysrKysrKysr
KysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxNzggaW5zZXJ0aW9ucygrKSwgOTIg
ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDMxNmJiYmQuLmU0OGFhNmUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
QEAgLTYsNiArNiwzOCBAQAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAog
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3
IF9zdXBlclJlbW92ZVRyYWNraW5nUmVjdDpdKToKKyAgICAgICAgKC1bV0tWaWV3IGFkZFRyYWNr
aW5nUmVjdDpvd25lcjp1c2VyRGF0YTphc3N1bWVJbnNpZGU6XSk6CisgICAgICAgICgtW1dLVmll
dyBfYWRkVHJhY2tpbmdSZWN0Om93bmVyOnVzZXJEYXRhOmFzc3VtZUluc2lkZTp1c2VUcmFja2lu
Z051bTpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9hZGRUcmFja2luZ1JlY3RzOm93bmVyOnVzZXJE
YXRhTGlzdDphc3N1bWVJbnNpZGVMaXN0OnRyYWNraW5nTnVtczpjb3VudDpdKToKKyAgICAgICAg
KC1bV0tWaWV3IHJlbW92ZVRyYWNraW5nUmVjdDpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9yZW1v
dmVUcmFja2luZ1JlY3RzOmNvdW50Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgdmlldzpzdHJpbmdG
b3JUb29sVGlwOnBvaW50OnVzZXJEYXRhOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX3Rvb2xUaXBD
aGFuZ2VkRnJvbTp0bzpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9zZXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nTW9kZVJvb3RMYXllcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9hY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZVJvb3RMYXllcl0pOiBEZWxldGVkLgorICAgICAgICAodGFr
ZVdpbmRvd1NuYXBzaG90KTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphZGRUcmFja2luZ1JlY3QpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6YWRkVHJhY2tpbmdSZWN0V2l0aFRyYWNraW5nTnVtKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFkZFRyYWNraW5nUmVjdHNXaXRoVHJhY2tpbmdO
dW1zKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlbW92ZVRyYWNraW5nUmVjdCk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZW1vdmVUcmFja2luZ1JlY3RzKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91c2VFeGl0ZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2VuZFRvb2xUaXBNb3VzZUVudGVyZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c3RyaW5nRm9yVG9vbFRpcCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjp0b29sVGlwQ2hhbmdlZCk6CisgICAgICAgIE1vdmUgdG9vbHRp
cCBjb2RlLgorCisyMDE1LTEwLTIyICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUu
Y29tPgorCisgICAgICAgIFdLVmlldyBiZWluZyBpbnNpZGUgV0tXZWJWaWV3IGxlYWRzIHRvIHdl
aXJkIEFQSSBpc3N1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1MDE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgogICAgICAgICAoLVtXS1ZpZXcg
X2ludGVycHJldEtleUV2ZW50OmNvbXBsZXRpb25IYW5kbGVyOl0pOgogICAgICAgICAoLVtXS1Zp
ZXcgaW5wdXRDb250ZXh0XSk6CiAgICAgICAgICgtW1dLVmlldyBwZXJmb3JtS2V5RXF1aXZhbGVu
dDpdKToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCBi
MTBmM2UxLi5iNjM2OWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3Lm1tCkBAIC0xNzksMTEgKzE3OSw2IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVu
dHNQYXJhbWV0ZXJzIHsKIAogICAgIFJldGFpblB0cjxOU1RyYWNraW5nQXJlYT4gX3ByaW1hcnlU
cmFja2luZ0FyZWE7CiAKLSAgICAvLyBGb3IgVG9vbFRpcHMuCi0gICAgTlNUb29sVGlwVGFnIF9s
YXN0VG9vbFRpcFRhZzsKLSAgICBpZCBfdHJhY2tpbmdSZWN0T3duZXI7Ci0gICAgdm9pZCogX3Ry
YWNraW5nUmVjdFVzZXJEYXRhOwotCiAgICAgUmV0YWluUHRyPE5TVmlldz4gX2xheWVySG9zdGlu
Z1ZpZXc7CiAKICAgICBSZXRhaW5QdHI8aWQ+IF9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQ7CkBA
IC0yMTEwLDYgKzIxMDUsMTEgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRy
aWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKICAgICBbc3VwZXIg
cXVpY2tMb29rV2l0aEV2ZW50OmV2ZW50XTsKIH0KIAorLSAodm9pZClfc3VwZXJSZW1vdmVUcmFj
a2luZ1JlY3Q6KE5TVHJhY2tpbmdSZWN0VGFnKXRhZworeworICAgIFtzdXBlciByZW1vdmVUcmFj
a2luZ1JlY3Q6dGFnXTsKK30KKwogLSAoTlNBcnJheSAqKXZhbGlkQXR0cmlidXRlc0Zvck1hcmtl
ZFRleHQKIHsKICAgICBzdGF0aWMgTlNBcnJheSAqdmFsaWRBdHRyaWJ1dGVzOwpAQCAtMjUwOCwx
MjEgKzI1MDgsNDcgQEAgc3RhdGljIHZvaWQgY3JlYXRlU2FuZGJveEV4dGVuc2lvbnNGb3JGaWxl
VXBsb2FkKE5TUGFzdGVib2FyZCAqcGFzdGVib2FyZCwgU2FuZGIKICAgICByZXR1cm4gdG9Vc2Vy
U3BhY2UocmVjdCwgW3NlbGYgd2luZG93XSk7CiB9CiAKLS8vIEFueSBub24temVybyB2YWx1ZSB3
aWxsIGRvLCBidXQgdXNpbmcgc29tZXRoaW5nIHJlY29nbml6YWJsZSBtaWdodCBoZWxwIHVzIGRl
YnVnIHNvbWUgZGF5LgotI2RlZmluZSBUUkFDS0lOR19SRUNUX1RBRyAweEJBREZBQ0UKLQogLSAo
TlNUcmFja2luZ1JlY3RUYWcpYWRkVHJhY2tpbmdSZWN0OihOU1JlY3QpcmVjdCBvd25lcjooaWQp
b3duZXIgdXNlckRhdGE6KHZvaWQgKilkYXRhIGFzc3VtZUluc2lkZTooQk9PTClhc3N1bWVJbnNp
ZGUKIHsKLSAgICBBU1NFUlQoX2RhdGEtPl90cmFja2luZ1JlY3RPd25lciA9PSBuaWwpOwotICAg
IF9kYXRhLT5fdHJhY2tpbmdSZWN0T3duZXIgPSBvd25lcjsKLSAgICBfZGF0YS0+X3RyYWNraW5n
UmVjdFVzZXJEYXRhID0gZGF0YTsKLSAgICByZXR1cm4gVFJBQ0tJTkdfUkVDVF9UQUc7CisgICAg
cmV0dXJuIF9kYXRhLT5faW1wbC0+YWRkVHJhY2tpbmdSZWN0KE5TUmVjdFRvQ0dSZWN0KHJlY3Qp
LCBvd25lciwgZGF0YSwgYXNzdW1lSW5zaWRlKTsKIH0KIAogLSAoTlNUcmFja2luZ1JlY3RUYWcp
X2FkZFRyYWNraW5nUmVjdDooTlNSZWN0KXJlY3Qgb3duZXI6KGlkKW93bmVyIHVzZXJEYXRhOih2
b2lkICopZGF0YSBhc3N1bWVJbnNpZGU6KEJPT0wpYXNzdW1lSW5zaWRlIHVzZVRyYWNraW5nTnVt
OihpbnQpdGFnCiB7Ci0gICAgQVNTRVJUKHRhZyA9PSAwIHx8IHRhZyA9PSBUUkFDS0lOR19SRUNU
X1RBRyk7Ci0gICAgQVNTRVJUKF9kYXRhLT5fdHJhY2tpbmdSZWN0T3duZXIgPT0gbmlsKTsKLSAg
ICBfZGF0YS0+X3RyYWNraW5nUmVjdE93bmVyID0gb3duZXI7Ci0gICAgX2RhdGEtPl90cmFja2lu
Z1JlY3RVc2VyRGF0YSA9IGRhdGE7Ci0gICAgcmV0dXJuIFRSQUNLSU5HX1JFQ1RfVEFHOworICAg
IHJldHVybiBfZGF0YS0+X2ltcGwtPmFkZFRyYWNraW5nUmVjdFdpdGhUcmFja2luZ051bShOU1Jl
Y3RUb0NHUmVjdChyZWN0KSwgb3duZXIsIGRhdGEsIGFzc3VtZUluc2lkZSwgdGFnKTsKIH0KIAog
LSAodm9pZClfYWRkVHJhY2tpbmdSZWN0czooTlNSZWN0ICopcmVjdHMgb3duZXI6KGlkKW93bmVy
IHVzZXJEYXRhTGlzdDoodm9pZCAqKil1c2VyRGF0YUxpc3QgYXNzdW1lSW5zaWRlTGlzdDooQk9P
TCAqKWFzc3VtZUluc2lkZUxpc3QgdHJhY2tpbmdOdW1zOihOU1RyYWNraW5nUmVjdFRhZyAqKXRy
YWNraW5nTnVtcyBjb3VudDooaW50KWNvdW50CiB7Ci0gICAgQVNTRVJUKGNvdW50ID09IDEpOwot
ICAgIEFTU0VSVCh0cmFja2luZ051bXNbMF0gPT0gMCB8fCB0cmFja2luZ051bXNbMF0gPT0gVFJB
Q0tJTkdfUkVDVF9UQUcpOwotICAgIEFTU0VSVChfZGF0YS0+X3RyYWNraW5nUmVjdE93bmVyID09
IG5pbCk7Ci0gICAgX2RhdGEtPl90cmFja2luZ1JlY3RPd25lciA9IG93bmVyOwotICAgIF9kYXRh
LT5fdHJhY2tpbmdSZWN0VXNlckRhdGEgPSB1c2VyRGF0YUxpc3RbMF07Ci0gICAgdHJhY2tpbmdO
dW1zWzBdID0gVFJBQ0tJTkdfUkVDVF9UQUc7CisgICAgQ0dSZWN0ICpjZ1JlY3RzID0gKENHUmVj
dCAqKWNhbGxvYygxLCBzaXplb2YoQ0dSZWN0KSk7CisgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBj
b3VudDsgaSsrKQorICAgICAgICBjZ1JlY3RzW2ldID0gTlNSZWN0VG9DR1JlY3QocmVjdHNbaV0p
OworICAgIF9kYXRhLT5faW1wbC0+YWRkVHJhY2tpbmdSZWN0c1dpdGhUcmFja2luZ051bXMoY2dS
ZWN0cywgb3duZXIsIHVzZXJEYXRhTGlzdCwgYXNzdW1lSW5zaWRlTGlzdCwgdHJhY2tpbmdOdW1z
LCBjb3VudCk7CisgICAgZnJlZShjZ1JlY3RzKTsKIH0KIAogLSAodm9pZClyZW1vdmVUcmFja2lu
Z1JlY3Q6KE5TVHJhY2tpbmdSZWN0VGFnKXRhZwogewogICAgIGlmICghX2RhdGEpCiAgICAgICAg
IHJldHVybjsKLQotICAgIGlmICh0YWcgPT0gMCkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAg
IGlmICh0YWcgPT0gVFJBQ0tJTkdfUkVDVF9UQUcpIHsKLSAgICAgICAgX2RhdGEtPl90cmFja2lu
Z1JlY3RPd25lciA9IG5pbDsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICAKLSAgICBpZiAo
dGFnID09IF9kYXRhLT5fbGFzdFRvb2xUaXBUYWcpIHsKLSAgICAgICAgW3N1cGVyIHJlbW92ZVRy
YWNraW5nUmVjdDp0YWddOwotICAgICAgICBfZGF0YS0+X2xhc3RUb29sVGlwVGFnID0gMDsKLSAg
ICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8vIElmIGFueSBvdGhlciB0cmFja2luZyByZWN0
IGlzIGJlaW5nIHJlbW92ZWQsIHdlIGRvbid0IGtub3cgaG93IGl0IHdhcyBjcmVhdGVkCi0gICAg
Ly8gYW5kIGl0J3MgcG9zc2libGUgdGhlcmUncyBhIGxlYWsgaW52b2x2ZWQgKHNlZSAzNTAwMjE3
KQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIF9kYXRhLT5faW1wbC0+cmVtb3ZlVHJh
Y2tpbmdSZWN0KHRhZyk7CiB9CiAKIC0gKHZvaWQpX3JlbW92ZVRyYWNraW5nUmVjdHM6KE5TVHJh
Y2tpbmdSZWN0VGFnICopdGFncyBjb3VudDooaW50KWNvdW50CiB7Ci0gICAgaW50IGk7Ci0gICAg
Zm9yIChpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKLSAgICAgICAgaW50IHRhZyA9IHRhZ3NbaV07
Ci0gICAgICAgIGlmICh0YWcgPT0gMCkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBB
U1NFUlQodGFnID09IFRSQUNLSU5HX1JFQ1RfVEFHKTsKLSAgICAgICAgaWYgKF9kYXRhICE9IG5p
bCkgewotICAgICAgICAgICAgX2RhdGEtPl90cmFja2luZ1JlY3RPd25lciA9IG5pbDsKLSAgICAg
ICAgfQotICAgIH0KLX0KLQotLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUV4aXRlZAotewotICAg
IC8vIE5vdGhpbmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVz
ZXJEYXRhLgotICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50
V2l0aFR5cGU6TlNNb3VzZUV4aXRlZAotICAgICAgICBsb2NhdGlvbjpOU01ha2VQb2ludCgwLCAw
KQotICAgICAgICBtb2RpZmllckZsYWdzOjAKLSAgICAgICAgdGltZXN0YW1wOjAKLSAgICAgICAg
d2luZG93TnVtYmVyOltbc2VsZiB3aW5kb3ddIHdpbmRvd051bWJlcl0KLSAgICAgICAgY29udGV4
dDpOVUxMCi0gICAgICAgIGV2ZW50TnVtYmVyOjAKLSAgICAgICAgdHJhY2tpbmdOdW1iZXI6VFJB
Q0tJTkdfUkVDVF9UQUcKLSAgICAgICAgdXNlckRhdGE6X2RhdGEtPl90cmFja2luZ1JlY3RVc2Vy
RGF0YV07Ci0gICAgW19kYXRhLT5fdHJhY2tpbmdSZWN0T3duZXIgbW91c2VFeGl0ZWQ6ZmFrZUV2
ZW50XTsKLX0KLQotLSAodm9pZClfc2VuZFRvb2xUaXBNb3VzZUVudGVyZWQKLXsKLSAgICAvLyBO
b3RoaW5nIG1hdHRlcnMgZXhjZXB0IHdpbmRvdywgdHJhY2tpbmdOdW1iZXIsIGFuZCB1c2VyRGF0
YS4KLSAgICBOU0V2ZW50ICpmYWtlRXZlbnQgPSBbTlNFdmVudCBlbnRlckV4aXRFdmVudFdpdGhU
eXBlOk5TTW91c2VFbnRlcmVkCi0gICAgICAgIGxvY2F0aW9uOk5TTWFrZVBvaW50KDAsIDApCi0g
ICAgICAgIG1vZGlmaWVyRmxhZ3M6MAotICAgICAgICB0aW1lc3RhbXA6MAotICAgICAgICB3aW5k
b3dOdW1iZXI6W1tzZWxmIHdpbmRvd10gd2luZG93TnVtYmVyXQotICAgICAgICBjb250ZXh0Ok5V
TEwKLSAgICAgICAgZXZlbnROdW1iZXI6MAotICAgICAgICB0cmFja2luZ051bWJlcjpUUkFDS0lO
R19SRUNUX1RBRwotICAgICAgICB1c2VyRGF0YTpfZGF0YS0+X3RyYWNraW5nUmVjdFVzZXJEYXRh
XTsKLSAgICBbX2RhdGEtPl90cmFja2luZ1JlY3RPd25lciBtb3VzZUVudGVyZWQ6ZmFrZUV2ZW50
XTsKKyAgICBpZiAoIV9kYXRhKQorICAgICAgICByZXR1cm47CisgICAgX2RhdGEtPl9pbXBsLT5y
ZW1vdmVUcmFja2luZ1JlY3RzKHRhZ3MsIGNvdW50KTsKIH0KIAogLSAoTlNTdHJpbmcgKil2aWV3
OihOU1ZpZXcgKil2aWV3IHN0cmluZ0ZvclRvb2xUaXA6KE5TVG9vbFRpcFRhZyl0YWcgcG9pbnQ6
KE5TUG9pbnQpcG9pbnQgdXNlckRhdGE6KHZvaWQgKilkYXRhCiB7Ci0gICAgcmV0dXJuIG5zU3Ry
aW5nRnJvbVdlYkNvcmVTdHJpbmcoX2RhdGEtPl9wYWdlLT50b29sVGlwKCkpOworICAgIHJldHVy
biBfZGF0YS0+X2ltcGwtPnN0cmluZ0ZvclRvb2xUaXAodGFnKTsKIH0KIAogLSAodm9pZClfdG9v
bFRpcENoYW5nZWRGcm9tOihOU1N0cmluZyAqKW9sZFRvb2xUaXAgdG86KE5TU3RyaW5nICopbmV3
VG9vbFRpcAogewotICAgIGlmIChvbGRUb29sVGlwKQotICAgICAgICBbc2VsZiBfc2VuZFRvb2xU
aXBNb3VzZUV4aXRlZF07Ci0KLSAgICBpZiAobmV3VG9vbFRpcCAmJiBbbmV3VG9vbFRpcCBsZW5n
dGhdID4gMCkgewotICAgICAgICAvLyBTZWUgcmFkYXIgMzUwMDIxNyBmb3Igd2h5IHdlIHJlbW92
ZSBhbGwgdG9vbHRpcHMgcmF0aGVyIHRoYW4ganVzdCB0aGUgc2luZ2xlIG9uZSB3ZSBjcmVhdGVk
LgotICAgICAgICBbc2VsZiByZW1vdmVBbGxUb29sVGlwc107Ci0gICAgICAgIE5TUmVjdCB3aWRl
T3BlblJlY3QgPSBOU01ha2VSZWN0KC0xMDAwMDAsIC0xMDAwMDAsIDIwMDAwMCwgMjAwMDAwKTsK
LSAgICAgICAgX2RhdGEtPl9sYXN0VG9vbFRpcFRhZyA9IFtzZWxmIGFkZFRvb2xUaXBSZWN0Ondp
ZGVPcGVuUmVjdCBvd25lcjpzZWxmIHVzZXJEYXRhOk5VTExdOwotICAgICAgICBbc2VsZiBfc2Vu
ZFRvb2xUaXBNb3VzZUVudGVyZWRdOwotICAgIH0KKyAgICBfZGF0YS0+X2ltcGwtPnRvb2xUaXBD
aGFuZ2VkKG9sZFRvb2xUaXAsIG5ld1Rvb2xUaXApOwogfQogCiAtICh2b2lkKV9zZXRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nTW9kZVJvb3RMYXllcjooQ0FMYXllciAqKXJvb3RMYXllcgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCBmOTJlMjYwLi5j
N2ZkNWMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
aApAQCAtNTAsNiArNTAsNyBAQCBPQkpDX0NMQVNTIFdLV2luZG93VmlzaWJpbGl0eU9ic2VydmVy
OwogCiAtIChOU1RleHRJbnB1dENvbnRleHQgKilfc3VwZXJJbnB1dENvbnRleHQ7CiAtICh2b2lk
KV9zdXBlclF1aWNrTG9va1dpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50OworLSAodm9pZClfc3Vw
ZXJSZW1vdmVUcmFja2luZ1JlY3Q6KE5TVHJhY2tpbmdSZWN0VGFnKXRhZzsKIAogLy8gVGhpcyBp
cyBhIGhhY2s7IHRoZXNlIHRoaW5ncyBsaXZlIGNhbiBsaXZlIG9uIGEgY2F0ZWdvcnkgKGUuZy4g
V0tWaWV3IChQcml2YXRlKSkgYnV0IFdLVmlldyBpdHNlbGYgY29uZm9ybXMgdG8gdGhpcyBwcm90
b2NvbC4KIC8vIFRoZXkncmUgbm90IGFjdHVhbGx5IG9wdGlvbmFsLgpAQCAtMjE4LDYgKzIxOSwx
NCBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFjY2Vzc2liaWxpdHlSZWdpc3RlclVJUHJvY2Vzc1Rv
a2VucygpOwogCisgICAgTlNUcmFja2luZ1JlY3RUYWcgYWRkVHJhY2tpbmdSZWN0KENHUmVjdCwg
aWQgb3duZXIsIHZvaWQqIHVzZXJEYXRhLCBib29sIGFzc3VtZUluc2lkZSk7CisgICAgTlNUcmFj
a2luZ1JlY3RUYWcgYWRkVHJhY2tpbmdSZWN0V2l0aFRyYWNraW5nTnVtKENHUmVjdCwgaWQgb3du
ZXIsIHZvaWQqIHVzZXJEYXRhLCBib29sIGFzc3VtZUluc2lkZSwgaW50IHRhZyk7CisgICAgdm9p
ZCBhZGRUcmFja2luZ1JlY3RzV2l0aFRyYWNraW5nTnVtcyhDR1JlY3QqLCBpZCBvd25lciwgdm9p
ZCoqIHVzZXJEYXRhTGlzdCwgYm9vbCBhc3N1bWVJbnNpZGUsIE5TVHJhY2tpbmdSZWN0VGFnICp0
cmFja2luZ051bXMsIGludCBjb3VudCk7CisgICAgdm9pZCByZW1vdmVUcmFja2luZ1JlY3QoTlNU
cmFja2luZ1JlY3RUYWcpOworICAgIHZvaWQgcmVtb3ZlVHJhY2tpbmdSZWN0cyhOU1RyYWNraW5n
UmVjdFRhZyAqLCBpbnQgY291bnQpOworICAgIE5TU3RyaW5nICpzdHJpbmdGb3JUb29sVGlwKE5T
VG9vbFRpcFRhZyB0YWcpOworICAgIHZvaWQgdG9vbFRpcENoYW5nZWQoTlNTdHJpbmcgKm9sZFRv
b2xUaXAsIE5TU3RyaW5nICpuZXdUb29sVGlwKTsKKwogcHJpdmF0ZToKICAgICBXZWFrUHRyPFdl
YlZpZXdJbXBsPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVh
dGVXZWFrUHRyKCk7IH0KIApAQCAtMjI5LDYgKzIzOCw5IEBAIHByaXZhdGU6CiAKICAgICB2b2lk
IHNldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZShQbHVnaW5Db21wbGV4VGV4dElucHV0U3Rh
dGUpOwogCisgICAgdm9pZCBzZW5kVG9vbFRpcE1vdXNlRXhpdGVkKCk7CisgICAgdm9pZCBzZW5k
VG9vbFRpcE1vdXNlRW50ZXJlZCgpOworCiAgICAgTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRl
PiAqbV92aWV3OwogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOwogICAgIFBhZ2VDbGllbnQmIG1f
cGFnZUNsaWVudDsKQEAgLTI5Niw2ICszMDgsMTAgQEAgcHJpdmF0ZToKIAogICAgIGJvb2wgbV9h
bGxvd3NMaW5rUHJldmlldyB7IHRydWUgfTsKICAgICBib29sIG1fZGlkUmVnaXN0ZXJGb3JMb29r
dXBQb3BvdmVyQ2xvc2VOb3RpZmljYXRpb25zIHsgZmFsc2UgfTsKKworICAgIE5TVG9vbFRpcFRh
ZyBtX2xhc3RUb29sVGlwVGFnIHsgMCB9OworICAgIGlkIG1fdHJhY2tpbmdSZWN0T3duZXIgeyBu
aWwgfTsKKyAgICB2b2lkKiBtX3RyYWNraW5nUmVjdFVzZXJEYXRhIHsgbnVsbHB0ciB9OwogfTsK
ICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IGZkNjczNWIuLjdkMzI3YjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTM0LDYgKzM0LDcg
QEAKICNpbXBvcnQgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKICNpbXBvcnQgIk5hdGl2ZVdl
Yk1vdXNlRXZlbnQuaCIKICNpbXBvcnQgIlBhZ2VDbGllbnQuaCIKKyNpbXBvcnQgIlN0cmluZ1V0
aWxpdGllcy5oIgogI2ltcG9ydCAiV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oIgogI2lt
cG9ydCAiV0tJbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS1RleHRJbnB1
dFdpbmRvd0NvbnRyb2xsZXIuaCIKQEAgLTE0NDEsNiArMTQ0MiwxMTcgQEAgdm9pZCBXZWJWaWV3
SW1wbDo6YWNjZXNzaWJpbGl0eVJlZ2lzdGVyVUlQcm9jZXNzVG9rZW5zKCkKICAgICBtX3BhZ2Uu
cmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW5zKGVsZW1lbnRUb2tlbiwgd2luZG93
VG9rZW4pOwogfQogCisvLyBBbnkgbm9uLXplcm8gdmFsdWUgd2lsbCBkbywgYnV0IHVzaW5nIHNv
bWV0aGluZyByZWNvZ25pemFibGUgbWlnaHQgaGVscCB1cyBkZWJ1ZyBzb21lIGRheS4KKyNkZWZp
bmUgVFJBQ0tJTkdfUkVDVF9UQUcgMHhCQURGQUNFCisKK05TVHJhY2tpbmdSZWN0VGFnIFdlYlZp
ZXdJbXBsOjphZGRUcmFja2luZ1JlY3QoQ0dSZWN0LCBpZCBvd25lciwgdm9pZCogdXNlckRhdGEs
IGJvb2wgYXNzdW1lSW5zaWRlKQoreworICAgIEFTU0VSVChtX3RyYWNraW5nUmVjdE93bmVyID09
IG5pbCk7CisgICAgbV90cmFja2luZ1JlY3RPd25lciA9IG93bmVyOworICAgIG1fdHJhY2tpbmdS
ZWN0VXNlckRhdGEgPSB1c2VyRGF0YTsKKyAgICByZXR1cm4gVFJBQ0tJTkdfUkVDVF9UQUc7Cit9
CisKK05TVHJhY2tpbmdSZWN0VGFnIFdlYlZpZXdJbXBsOjphZGRUcmFja2luZ1JlY3RXaXRoVHJh
Y2tpbmdOdW0oQ0dSZWN0LCBpZCBvd25lciwgdm9pZCogdXNlckRhdGEsIGJvb2wgYXNzdW1lSW5z
aWRlLCBpbnQgdGFnKQoreworICAgIEFTU0VSVCh0YWcgPT0gMCB8fCB0YWcgPT0gVFJBQ0tJTkdf
UkVDVF9UQUcpOworICAgIEFTU0VSVChtX3RyYWNraW5nUmVjdE93bmVyID09IG5pbCk7CisgICAg
bV90cmFja2luZ1JlY3RPd25lciA9IG93bmVyOworICAgIG1fdHJhY2tpbmdSZWN0VXNlckRhdGEg
PSB1c2VyRGF0YTsKKyAgICByZXR1cm4gVFJBQ0tJTkdfUkVDVF9UQUc7Cit9CisKK3ZvaWQgV2Vi
Vmlld0ltcGw6OmFkZFRyYWNraW5nUmVjdHNXaXRoVHJhY2tpbmdOdW1zKENHUmVjdCosIGlkIG93
bmVyLCB2b2lkKiogdXNlckRhdGFMaXN0LCBib29sIGFzc3VtZUluc2lkZSwgTlNUcmFja2luZ1Jl
Y3RUYWcgKnRyYWNraW5nTnVtcywgaW50IGNvdW50KQoreworICAgIEFTU0VSVChjb3VudCA9PSAx
KTsKKyAgICBBU1NFUlQodHJhY2tpbmdOdW1zWzBdID09IDAgfHwgdHJhY2tpbmdOdW1zWzBdID09
IFRSQUNLSU5HX1JFQ1RfVEFHKTsKKyAgICBBU1NFUlQobV90cmFja2luZ1JlY3RPd25lciA9PSBu
aWwpOworICAgIG1fdHJhY2tpbmdSZWN0T3duZXIgPSBvd25lcjsKKyAgICBtX3RyYWNraW5nUmVj
dFVzZXJEYXRhID0gdXNlckRhdGFMaXN0WzBdOworICAgIHRyYWNraW5nTnVtc1swXSA9IFRSQUNL
SU5HX1JFQ1RfVEFHOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpyZW1vdmVUcmFja2luZ1JlY3Qo
TlNUcmFja2luZ1JlY3RUYWcgdGFnKQoreworICAgIGlmICh0YWcgPT0gMCkKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKHRhZyA9PSBUUkFDS0lOR19SRUNUX1RBRykgeworICAgICAgICBtX3Ry
YWNraW5nUmVjdE93bmVyID0gbmlsOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgaWYg
KHRhZyA9PSBtX2xhc3RUb29sVGlwVGFnKSB7CisgICAgICAgIFttX3ZpZXcgX3N1cGVyUmVtb3Zl
VHJhY2tpbmdSZWN0OnRhZ107CisgICAgICAgIG1fbGFzdFRvb2xUaXBUYWcgPSAwOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgLy8gSWYgYW55IG90aGVyIHRyYWNraW5nIHJlY3QgaXMg
YmVpbmcgcmVtb3ZlZCwgd2UgZG9uJ3Qga25vdyBob3cgaXQgd2FzIGNyZWF0ZWQKKyAgICAvLyBh
bmQgaXQncyBwb3NzaWJsZSB0aGVyZSdzIGEgbGVhayBpbnZvbHZlZCAoc2VlIDM1MDAyMTcpCisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnJlbW92ZVRy
YWNraW5nUmVjdHMoTlNUcmFja2luZ1JlY3RUYWcgKnRhZ3MsIGludCBjb3VudCkKK3sKKyAgICBm
b3IgKGludCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgaW50IHRhZyA9IHRhZ3Nb
aV07CisgICAgICAgIGlmICh0YWcgPT0gMCkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICBBU1NFUlQodGFnID09IFRSQUNLSU5HX1JFQ1RfVEFHKTsKKyAgICAgICAgbV90cmFja2luZ1Jl
Y3RPd25lciA9IG5pbDsKKyAgICB9Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNlbmRUb29sVGlw
TW91c2VFeGl0ZWQoKQoreworICAgIC8vIE5vdGhpbmcgbWF0dGVycyBleGNlcHQgd2luZG93LCB0
cmFja2luZ051bWJlciwgYW5kIHVzZXJEYXRhLgorICAgIE5TRXZlbnQgKmZha2VFdmVudCA9IFtO
U0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNNb3VzZUV4aXRlZAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYXRpb246TlNNYWtlUG9pbnQo
MCwgMCkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmll
ckZsYWdzOjAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
dGltZXN0YW1wOjAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
d2luZG93TnVtYmVyOm1fdmlldy53aW5kb3cud2luZG93TnVtYmVyCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dDpOVUxMCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudE51bWJlcjowCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFja2luZ051bWJlcjpUUkFDS0lO
R19SRUNUX1RBRworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgdXNlckRhdGE6bV90cmFja2luZ1JlY3RVc2VyRGF0YV07CisgICAgW21fdHJhY2tpbmdSZWN0
T3duZXIgbW91c2VFeGl0ZWQ6ZmFrZUV2ZW50XTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2Vu
ZFRvb2xUaXBNb3VzZUVudGVyZWQoKQoreworICAgIC8vIE5vdGhpbmcgbWF0dGVycyBleGNlcHQg
d2luZG93LCB0cmFja2luZ051bWJlciwgYW5kIHVzZXJEYXRhLgorICAgIE5TRXZlbnQgKmZha2VF
dmVudCA9IFtOU0V2ZW50IGVudGVyRXhpdEV2ZW50V2l0aFR5cGU6TlNNb3VzZUVudGVyZWQKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxvY2F0aW9uOk5T
TWFrZVBvaW50KDAsIDApCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgbW9kaWZpZXJGbGFnczowCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHRpbWVzdGFtcDowCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHdpbmRvd051bWJlcjptX3ZpZXcud2luZG93LndpbmRvd051bWJlcgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6TlVMTAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnROdW1iZXI6
MAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhY2tpbmdOdW1i
ZXI6VFJBQ0tJTkdfUkVDVF9UQUcKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHVzZXJEYXRhOm1fdHJhY2tpbmdSZWN0VXNlckRhdGFdOworICAgIFttX3Ry
YWNraW5nUmVjdE93bmVyIG1vdXNlRW50ZXJlZDpmYWtlRXZlbnRdOworfQorCitOU1N0cmluZyAq
V2ViVmlld0ltcGw6OnN0cmluZ0ZvclRvb2xUaXAoTlNUb29sVGlwVGFnIHRhZykKK3sKKyAgICBy
ZXR1cm4gbnNTdHJpbmdGcm9tV2ViQ29yZVN0cmluZyhtX3BhZ2UudG9vbFRpcCgpKTsKK30KKwor
dm9pZCBXZWJWaWV3SW1wbDo6dG9vbFRpcENoYW5nZWQoTlNTdHJpbmcgKm9sZFRvb2xUaXAsIE5T
U3RyaW5nICpuZXdUb29sVGlwKQoreworICAgIGlmIChvbGRUb29sVGlwKQorICAgICAgICBzZW5k
VG9vbFRpcE1vdXNlRXhpdGVkKCk7CisgICAgCisgICAgaWYgKG5ld1Rvb2xUaXAgJiYgW25ld1Rv
b2xUaXAgbGVuZ3RoXSA+IDApIHsKKyAgICAgICAgLy8gU2VlIHJhZGFyIDM1MDAyMTcgZm9yIHdo
eSB3ZSByZW1vdmUgYWxsIHRvb2x0aXBzIHJhdGhlciB0aGFuIGp1c3QgdGhlIHNpbmdsZSBvbmUg
d2UgY3JlYXRlZC4KKyAgICAgICAgW21fdmlldyByZW1vdmVBbGxUb29sVGlwc107CisgICAgICAg
IE5TUmVjdCB3aWRlT3BlblJlY3QgPSBOU01ha2VSZWN0KC0xMDAwMDAsIC0xMDAwMDAsIDIwMDAw
MCwgMjAwMDAwKTsKKyAgICAgICAgbV9sYXN0VG9vbFRpcFRhZyA9IFttX3ZpZXcgYWRkVG9vbFRp
cFJlY3Q6d2lkZU9wZW5SZWN0IG93bmVyOm1fdmlldyB1c2VyRGF0YTpOVUxMXTsKKyAgICAgICAg
c2VuZFRvb2xUaXBNb3VzZUVudGVyZWQoKTsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQotLSAKMi40LjkgKEFwcGxlIEdpdC02MCkK
Cg==
</data>
<flag name="review"
          id="288991"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263882</attachid>
            <date>2015-10-22 17:52:01 -0700</date>
            <delta_ts>2015-10-23 14:04:24 -0700</delta_ts>
            <desc>Part 5 - compositing and thumbnail view</desc>
            <filename>0001-accelerated-compositing-and-thumbnail-view.patch</filename>
            <type>text/plain</type>
            <size>17085</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">RnJvbSBlN2UwZTJlZDY5Nzc0MzdlM2U3MDRhMzljMzVmNDU4ODcyOThiNDE5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBUaW0gSG9ydG9uIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CkRhdGU6IFRodSwgMjIgT2N0IDIwMTUgMTc6NDI6NDkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBh
Y2NlbGVyYXRlZCBjb21wb3NpdGluZyBhbmQgdGh1bWJuYWlsIHZpZXcKCi0tLQogU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAzOCArKysrKysrKwog
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tICAgICAgICB8IDExNCAr
Ky0tLS0tLS0tLS0tLS0tLS0tLS0tCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9X
S1ZpZXdJbnRlcm5hbC5oIHwgICA0IC0KIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5oICAgICAgfCAgMjAgKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLm1tICAgICB8ICA5NCArKysrKysrKysrKysrKysrKysKIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0gICAgfCAgMTAgKy0KIDYgZmls
ZXMgY2hhbmdlZCwgMTY0IGluc2VydGlvbnMoKyksIDExNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cK
aW5kZXggZTQ4YWE2ZS4uZGMzN2FjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtNiw2ICs2LDQ0IEBACiAgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgogCiAgICAgICAgICogVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAg
KC1bV0tWaWV3IF9wcm9jZXNzRGlkRXhpdF0pOgorICAgICAgICAoLVtXS1ZpZXcgX3NldFRodW1i
bmFpbFZpZXc6XSk6CisgICAgICAgICgtW1dLVmlldyBfdGh1bWJuYWlsVmlld10pOgorICAgICAg
ICAoLVtXS0ZsaXBwZWRWaWV3IGlzRmxpcHBlZF0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1Zp
ZXcgZGVhbGxvY10pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3NldEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlUm9vdExheWVyOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcg
X2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlUm9vdExheWVyXSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dLVmlldyBfdXBkYXRlVGh1bWJuYWlsVmlld0xheWVyXSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dLVmlldyBfcmVwYXJlbnRMYXllclRyZWVJblRodW1ibmFpbFZpZXddKTogRGVsZXRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcik6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpsYXllckhvc3RpbmdWaWV3KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OnRodW1ibmFpbFZpZXcpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbToKKyAgICAgICAgKC1bV0tGbGlwcGVkVmlldyBpc0ZsaXBwZWRdKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6On5XZWJWaWV3SW1wbCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFRodW1ibmFpbFZpZXcpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6cmVwYXJlbnRMYXllclRyZWVJblRodW1ibmFpbFZpZXcpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlVGh1bWJuYWlsVmlld0xheWVyKToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQ
YWdlQ2xpZW50SW1wbDo6ZW50ZXJBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSk6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpleGl0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUp
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21w
b3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjphY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKToKKyAgICAgICAgTW92ZSBhY2Nl
bGVyYXRlZCBjb21wb3NpdGluZyBhbmQgdGh1bWJuYWlsIHZpZXcgY29kZS4KKworMjAxNS0xMC0y
MiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBXS1Zp
ZXcgYmVpbmcgaW5zaWRlIFdLV2ViVmlldyBsZWFkcyB0byB3ZWlyZCBBUEkgaXNzdWVzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAxNzQKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbToKICAgICAgICAgKC1bV0tWaWV3IF9zdXBlclJlbW92ZVRyYWNraW5n
UmVjdDpdKToKICAgICAgICAgKC1bV0tWaWV3IGFkZFRyYWNraW5nUmVjdDpvd25lcjp1c2VyRGF0
YTphc3N1bWVJbnNpZGU6XSk6CiAgICAgICAgICgtW1dLVmlldyBfYWRkVHJhY2tpbmdSZWN0Om93
bmVyOnVzZXJEYXRhOmFzc3VtZUluc2lkZTp1c2VUcmFja2luZ051bTpdKToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCBiNjM2OWMzLi42ZWI4N2JiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC04MCw3ICs4
MCw2IEBACiAjaW1wb3J0ICJXZWJTeXN0ZW1JbnRlcmZhY2UuaCIKICNpbXBvcnQgIldlYlZpZXdJ
bXBsLmgiCiAjaW1wb3J0ICJfV0tSZW1vdGVPYmplY3RSZWdpc3RyeUludGVybmFsLmgiCi0jaW1w
b3J0ICJfV0tUaHVtYm5haWxWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgPFF1YXJ0ekNvcmUvUXVh
cnR6Q29yZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9BWE9iamVjdENhY2hlLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0NvbG9yTWFjLmg+CkBAIC0xMDQsNyArMTAzLDYgQEAKICNpbXBvcnQgPFdlYkNvcmUv
VGV4dEluZGljYXRvci5oPgogI2ltcG9ydCA8V2ViQ29yZS9UZXh0SW5kaWNhdG9yV2luZG93Lmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1RleHRVbmRvSW5zZXJ0aW9uTWFya3VwTWFjLmg+Ci0jaW1wb3J0
IDxXZWJDb3JlL1dlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9XZWJDb3JlQ0FMYXllckV4dHJhcy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3Jl
RnVsbFNjcmVlblBsYWNlaG9sZGVyVmlldy5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlRnVs
bFNjcmVlbldpbmRvdy5oPgpAQCAtMTc5LDggKzE3Nyw2IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnBy
ZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKIAogICAgIFJldGFpblB0cjxOU1RyYWNraW5nQXJlYT4g
X3ByaW1hcnlUcmFja2luZ0FyZWE7CiAKLSAgICBSZXRhaW5QdHI8TlNWaWV3PiBfbGF5ZXJIb3N0
aW5nVmlldzsKLQogICAgIFJldGFpblB0cjxpZD4gX3JlbW90ZUFjY2Vzc2liaWxpdHlDaGlsZDsK
IAogICAgIC8vIEZvciBhc3luY2hyb25vdXMgdmFsaWRhdGlvbi4KQEAgLTIxMywxMyArMjA5LDcg
QEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogICAgIEJPT0wg
X2FsbG93c01hZ25pZmljYXRpb247CiAgICAgQk9PTCBfYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0
aW9uR2VzdHVyZXM7CiAKLSAgICBSZXRhaW5QdHI8Q0FMYXllcj4gX3Jvb3RMYXllcjsKLQogICAg
IENHRmxvYXQgX3RvdGFsSGVpZ2h0T2ZCYW5uZXJzOwotCi0jaWYgV0tfQVBJX0VOQUJMRUQKLSAg
ICBfV0tUaHVtYm5haWxWaWV3ICpfdGh1bWJuYWlsVmlldzsKLSNlbmRpZgogfQogCiBAZW5kCkBA
IC0yMzYsMTggKzIyNiw2IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0
ZXJzIHsKIC0gKGJvb2wpZGlkUmVjZWl2ZVVuaGFuZGxlZENvbW1hbmQ7CiBAZW5kCiAKLUBpbnRl
cmZhY2UgV0tGbGlwcGVkVmlldyA6IE5TVmlldwotQGVuZAotCi1AaW1wbGVtZW50YXRpb24gV0tG
bGlwcGVkVmlldwotCi0tIChCT09MKWlzRmxpcHBlZAotewotICAgIHJldHVybiBZRVM7Ci19Ci0K
LUBlbmQKLQogQGludGVyZmFjZSBXS1ZpZXcgKCkgPFdlYlZpZXdJbXBsRGVsZWdhdGU+CiBAZW5k
CiAKQEAgLTI4MCwxMCArMjU4LDYgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1Bh
cmFtZXRlcnMgewogCiAgICAgX2RhdGEtPl9pbXBsID0gbnVsbHB0cjsKIAotI2lmIFdLX0FQSV9F
TkFCTEVECi0gICAgQVNTRVJUKCFfZGF0YS0+X3RodW1ibmFpbFZpZXcpOwotI2VuZGlmCi0KICAg
ICBbX2RhdGEgcmVsZWFzZV07CiAgICAgX2RhdGEgPSBuaWw7CiAKQEAgLTI0MTAsNyArMjM4NCw3
IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZVNhbmRib3hFeHRlbnNpb25zRm9yRmlsZVVwbG9hZChOU1Bh
c3RlYm9hcmQgKnBhc3RlYm9hcmQsIFNhbmRiCiAtIChOU1ZpZXcgKiloaXRUZXN0OihOU1BvaW50
KXBvaW50CiB7CiAgICAgTlNWaWV3ICpoaXRWaWV3ID0gW3N1cGVyIGhpdFRlc3Q6cG9pbnRdOwot
ICAgIGlmIChoaXRWaWV3ICYmIF9kYXRhICYmIGhpdFZpZXcgPT0gX2RhdGEtPl9sYXllckhvc3Rp
bmdWaWV3KQorICAgIGlmIChoaXRWaWV3ICYmIF9kYXRhICYmIGhpdFZpZXcgPT0gX2RhdGEtPl9p
bXBsLT5sYXllckhvc3RpbmdWaWV3KCkpCiAgICAgICAgIGhpdFZpZXcgPSBzZWxmOwogCiAgICAg
cmV0dXJuIGhpdFZpZXc7CkBAIC0yNDQzLDggKzI0MTcsOCBAQCBzdGF0aWMgdm9pZCBjcmVhdGVT
YW5kYm94RXh0ZW5zaW9uc0ZvckZpbGVVcGxvYWQoTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkLCBT
YW5kYgogewogICAgIF9kYXRhLT5faW1wbC0+bm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJk
ZWRDb21wb3NpdGlvbigpOwogCi0gICAgaWYgKF9kYXRhLT5fbGF5ZXJIb3N0aW5nVmlldykKLSAg
ICAgICAgW3NlbGYgX3NldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlUm9vdExheWVyOm5pbF07
CisgICAgaWYgKF9kYXRhLT5faW1wbC0+bGF5ZXJIb3N0aW5nVmlldygpKQorICAgICAgICBfZGF0
YS0+X2ltcGwtPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIobmlsKTsKIAogICAg
IFtzZWxmIF91cGRhdGVSZW1vdGVBY2Nlc3NpYmlsaXR5UmVnaXN0cmF0aW9uOk5PXTsKIApAQCAt
MjU1MSw2MSArMjUyNSw2IEBAIHN0YXRpYyB2b2lkIGNyZWF0ZVNhbmRib3hFeHRlbnNpb25zRm9y
RmlsZVVwbG9hZChOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIFNhbmRiCiAgICAgX2RhdGEtPl9p
bXBsLT50b29sVGlwQ2hhbmdlZChvbGRUb29sVGlwLCBuZXdUb29sVGlwKTsKIH0KIAotLSAodm9p
ZClfc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVSb290TGF5ZXI6KENBTGF5ZXIgKilyb290
TGF5ZXIKLXsKLSAgICBbcm9vdExheWVyIHdlYl9kaXNhYmxlQWxsQWN0aW9uc107Ci0KLSAgICBf
ZGF0YS0+X3Jvb3RMYXllciA9IHJvb3RMYXllcjsKLQotI2lmIFdLX0FQSV9FTkFCTEVECi0gICAg
aWYgKF9kYXRhLT5fdGh1bWJuYWlsVmlldykgewotICAgICAgICBbc2VsZiBfdXBkYXRlVGh1bWJu
YWlsVmlld0xheWVyXTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZgotCi0gICAgW0NB
VHJhbnNhY3Rpb24gYmVnaW5dOwotICAgIFtDQVRyYW5zYWN0aW9uIHNldERpc2FibGVBY3Rpb25z
OllFU107Ci0KLSAgICBpZiAocm9vdExheWVyKSB7Ci0gICAgICAgIGlmICghX2RhdGEtPl9sYXll
ckhvc3RpbmdWaWV3KSB7Ci0gICAgICAgICAgICAvLyBDcmVhdGUgYW4gTlNWaWV3IHRoYXQgd2ls
bCBob3N0IG91ciBsYXllciB0cmVlLgotICAgICAgICAgICAgX2RhdGEtPl9sYXllckhvc3RpbmdW
aWV3ID0gYWRvcHROUyhbW1dLRmxpcHBlZFZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6W3NlbGYg
Ym91bmRzXV0pOwotICAgICAgICAgICAgW19kYXRhLT5fbGF5ZXJIb3N0aW5nVmlldyBzZXRBdXRv
cmVzaXppbmdNYXNrOk5TVmlld1dpZHRoU2l6YWJsZSB8IE5TVmlld0hlaWdodFNpemFibGVdOwot
Ci0KLSAgICAgICAgICAgIFtzZWxmIGFkZFN1YnZpZXc6X2RhdGEtPl9sYXllckhvc3RpbmdWaWV3
LmdldCgpIHBvc2l0aW9uZWQ6TlNXaW5kb3dCZWxvdyByZWxhdGl2ZVRvOm5pbF07Ci0KLSAgICAg
ICAgICAgIC8vIENyZWF0ZSBhIHJvb3QgbGF5ZXIgdGhhdCB3aWxsIGJhY2sgdGhlIE5TVmlldy4K
LSAgICAgICAgICAgIFJldGFpblB0cjxDQUxheWVyPiBsYXllciA9IGFkb3B0TlMoW1tDQUxheWVy
IGFsbG9jXSBpbml0XSk7Ci0gICAgICAgICAgICBbbGF5ZXIgc2V0RGVsZWdhdGU6W1dlYkFjdGlv
bkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZSBzaGFyZWRdXTsKLSNpZm5kZWYgTkRFQlVHCi0gICAg
ICAgICAgICBbbGF5ZXIgc2V0TmFtZTpAIkhvc3Rpbmcgcm9vdCBsYXllciJdOwotI2VuZGlmCi0K
LSAgICAgICAgICAgIFtfZGF0YS0+X2xheWVySG9zdGluZ1ZpZXcgc2V0TGF5ZXI6bGF5ZXIuZ2V0
KCldOwotICAgICAgICAgICAgW19kYXRhLT5fbGF5ZXJIb3N0aW5nVmlldyBzZXRXYW50c0xheWVy
OllFU107Ci0gICAgICAgIH0KLQotICAgICAgICBbX2RhdGEtPl9sYXllckhvc3RpbmdWaWV3IGxh
eWVyXS5zdWJsYXllcnMgPSBbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6cm9vdExheWVyXTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBpZiAoX2RhdGEtPl9sYXllckhvc3RpbmdWaWV3KSB7Ci0gICAg
ICAgICAgICBbX2RhdGEtPl9sYXllckhvc3RpbmdWaWV3IHJlbW92ZUZyb21TdXBlcnZpZXddOwot
ICAgICAgICAgICAgW19kYXRhLT5fbGF5ZXJIb3N0aW5nVmlldyBzZXRMYXllcjpuaWxdOwotICAg
ICAgICAgICAgW19kYXRhLT5fbGF5ZXJIb3N0aW5nVmlldyBzZXRXYW50c0xheWVyOk5PXTsKLQot
ICAgICAgICAgICAgX2RhdGEtPl9sYXllckhvc3RpbmdWaWV3ID0gbnVsbHB0cjsKLSAgICAgICAg
fQotICAgIH0KLQotICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07Ci19Ci0KLS0gKENBTGF5ZXIg
KilfYWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVSb290TGF5ZXIKLXsKLSAgICByZXR1cm4gX2Rh
dGEtPl9yb290TGF5ZXIuZ2V0KCk7Ci19Ci0KIHN0YXRpYyBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4g
dGFrZVdpbmRvd1NuYXBzaG90KENHU1dpbmRvd0lEIHdpbmRvd0lELCBib29sIGNhcHR1cmVBdE5v
bWluYWxSZXNvbHV0aW9uKQogewogICAgIENHU1dpbmRvd0NhcHR1cmVPcHRpb25zIG9wdGlvbnMg
PSBrQ0dTQ2FwdHVyZUlnbm9yZUdsb2JhbENsaXBTaGFwZTsKQEAgLTI5NjksMzMgKzI4ODgsMTQg
QEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmlu
ZyAqcGF0aCkKICNpZiBXS19BUElfRU5BQkxFRAogLSAodm9pZClfc2V0VGh1bWJuYWlsVmlldzoo
X1dLVGh1bWJuYWlsVmlldyAqKXRodW1ibmFpbFZpZXcKIHsKLSAgICBBU1NFUlQoIV9kYXRhLT5f
dGh1bWJuYWlsVmlldyB8fCAhdGh1bWJuYWlsVmlldyk7Ci0KLSAgICBfZGF0YS0+X3RodW1ibmFp
bFZpZXcgPSB0aHVtYm5haWxWaWV3OwotCi0gICAgaWYgKHRodW1ibmFpbFZpZXcpCi0gICAgICAg
IFtzZWxmIF91cGRhdGVUaHVtYm5haWxWaWV3TGF5ZXJdOwotICAgIGVsc2UKLSAgICAgICAgW3Nl
bGYgX3NldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlUm9vdExheWVyOl9kYXRhLT5fcm9vdExh
eWVyLmdldCgpXTsKKyAgICBfZGF0YS0+X2ltcGwtPnNldFRodW1ibmFpbFZpZXcodGh1bWJuYWls
Vmlldyk7CiB9CiAKIC0gKF9XS1RodW1ibmFpbFZpZXcgKilfdGh1bWJuYWlsVmlldwogewotICAg
IHJldHVybiBfZGF0YS0+X3RodW1ibmFpbFZpZXc7Ci19Ci0KLS0gKHZvaWQpX3VwZGF0ZVRodW1i
bmFpbFZpZXdMYXllcgotewotICAgIF9XS1RodW1ibmFpbFZpZXcgKnRodW1ibmFpbFZpZXcgPSBf
ZGF0YS0+X3RodW1ibmFpbFZpZXc7Ci0gICAgQVNTRVJUKHRodW1ibmFpbFZpZXcpOwotCi0gICAg
aWYgKHRodW1ibmFpbFZpZXcuX3dhaXRpbmdGb3JTbmFwc2hvdCAmJiBzZWxmLndpbmRvdykKLSAg
ICAgICAgW3NlbGYgX3JlcGFyZW50TGF5ZXJUcmVlSW5UaHVtYm5haWxWaWV3XTsKLX0KLQotLSAo
dm9pZClfcmVwYXJlbnRMYXllclRyZWVJblRodW1ibmFpbFZpZXcKLXsKLSAgICBfZGF0YS0+X3Ro
dW1ibmFpbFZpZXcuX3RodW1ibmFpbExheWVyID0gX2RhdGEtPl9yb290TGF5ZXIuZ2V0KCk7Cisg
ICAgaWYgKCFfZGF0YS0+X2ltcGwpCisgICAgICAgIHJldHVybiBuaWw7CisgICAgcmV0dXJuIF9k
YXRhLT5faW1wbC0+dGh1bWJuYWlsVmlldygpOwogfQogI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVE
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0lu
dGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5h
bC5oCmluZGV4IDdmOGM4MDcuLjM2NDU0OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaApAQCAtODcsOSArODcsNiBAQCBzdHJ1Y3Qg
RWRpdG9yU3RhdGU7CiAtIChOU1JlY3QpX2NvbnZlcnRUb0RldmljZVNwYWNlOihOU1JlY3QpcmVj
dDsKIC0gKE5TUmVjdClfY29udmVydFRvVXNlclNwYWNlOihOU1JlY3QpcmVjdDsKIAotLSAodm9p
ZClfc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGVSb290TGF5ZXI6KENBTGF5ZXIgKilyb290
TGF5ZXI7Ci0tIChDQUxheWVyICopX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlUm9vdExheWVy
OwotCiAtIChQYXNzUmVmUHRyPFdlYktpdDo6Vmlld1NuYXBzaG90PilfdGFrZVZpZXdTbmFwc2hv
dDsKIC0gKHZvaWQpX3doZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOihOU0V2ZW50ICop
ZXZlbnQ7CiAKQEAgLTExNyw3ICsxMTQsNiBAQCBzdHJ1Y3QgRWRpdG9yU3RhdGU7CiAKICNpZiBX
S19BUElfRU5BQkxFRAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0VGh1bWJuYWls
VmlldzopIF9XS1RodW1ibmFpbFZpZXcgKl90aHVtYm5haWxWaWV3OwotLSAodm9pZClfcmVwYXJl
bnRMYXllclRyZWVJblRodW1ibmFpbFZpZXc7CiAjZW5kaWYKIAogLSAodm9pZClfYWRkRm9udFBh
bmVsT2JzZXJ2ZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5oCmluZGV4IGM3ZmQ1YzMuLmNkZmJjMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC00NSw2ICs0NSw3IEBAIE9CSkNfQ0xBU1MgV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlcjsKIE9CSkNfQ0xBU1MgV0tJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyOwogT0JKQ19DTEFTUyBXS1ZpZXdMYXlvdXRTdHJhdGVneTsKIE9CSkNfQ0xBU1MgV0tX
aW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXI7CitPQkpDX0NMQVNTIF9XS1RodW1ibmFpbFZpZXc7CiAK
IEBwcm90b2NvbCBXZWJWaWV3SW1wbERlbGVnYXRlCiAKQEAgLTIyNyw2ICsyMjgsMTUgQEAgcHVi
bGljOgogICAgIE5TU3RyaW5nICpzdHJpbmdGb3JUb29sVGlwKE5TVG9vbFRpcFRhZyB0YWcpOwog
ICAgIHZvaWQgdG9vbFRpcENoYW5nZWQoTlNTdHJpbmcgKm9sZFRvb2xUaXAsIE5TU3RyaW5nICpu
ZXdUb29sVGlwKTsKIAorICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXll
cihDQUxheWVyICopOworICAgIENBTGF5ZXIgKmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5
ZXIoKSBjb25zdCB7IHJldHVybiBtX3Jvb3RMYXllci5nZXQoKTsgfQorICAgIE5TVmlldyAqbGF5
ZXJIb3N0aW5nVmlldygpIGNvbnN0IHsgcmV0dXJuIG1fbGF5ZXJIb3N0aW5nVmlldy5nZXQoKTsg
fQorCisjaWYgV0tfQVBJX0VOQUJMRUQKKyAgICB2b2lkIHNldFRodW1ibmFpbFZpZXcoX1dLVGh1
bWJuYWlsVmlldyAqKTsKKyAgICBfV0tUaHVtYm5haWxWaWV3ICp0aHVtYm5haWxWaWV3KCkgY29u
c3QgeyByZXR1cm4gbV90aHVtYm5haWxWaWV3OyB9CisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQK
KwogcHJpdmF0ZToKICAgICBXZWFrUHRyPFdlYlZpZXdJbXBsPiBjcmVhdGVXZWFrUHRyKCkgeyBy
ZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KIApAQCAtMjQxLDYgKzI1
MSw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZW5kVG9vbFRpcE1vdXNlRXhpdGVkKCk7CiAgICAg
dm9pZCBzZW5kVG9vbFRpcE1vdXNlRW50ZXJlZCgpOwogCisgICAgdm9pZCByZXBhcmVudExheWVy
VHJlZUluVGh1bWJuYWlsVmlldygpOworICAgIHZvaWQgdXBkYXRlVGh1bWJuYWlsVmlld0xheWVy
KCk7CisKICAgICBOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICptX3ZpZXc7CiAgICAgV2Vi
UGFnZVByb3h5JiBtX3BhZ2U7CiAgICAgUGFnZUNsaWVudCYgbV9wYWdlQ2xpZW50OwpAQCAtMzEy
LDYgKzMyNSwxMyBAQCBwcml2YXRlOgogICAgIE5TVG9vbFRpcFRhZyBtX2xhc3RUb29sVGlwVGFn
IHsgMCB9OwogICAgIGlkIG1fdHJhY2tpbmdSZWN0T3duZXIgeyBuaWwgfTsKICAgICB2b2lkKiBt
X3RyYWNraW5nUmVjdFVzZXJEYXRhIHsgbnVsbHB0ciB9OworCisgICAgUmV0YWluUHRyPENBTGF5
ZXI+IG1fcm9vdExheWVyOworICAgIFJldGFpblB0cjxOU1ZpZXc+IG1fbGF5ZXJIb3N0aW5nVmll
dzsKKworI2lmIFdLX0FQSV9FTkFCTEVECisgICAgX1dLVGh1bWJuYWlsVmlldyAqbV90aHVtYm5h
aWxWaWV3OworI2VuZGlmCiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggN2QzMjdiMC4u
NTU3MGQ3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbQpAQCAtNDIsNiArNDIsNyBAQAogI2ltcG9ydCAiV0tXZWJWaWV3LmgiCiAjaW1wb3J0ICJX
ZWJFZGl0Q29tbWFuZFByb3h5LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQg
Il9XS1RodW1ibmFpbFZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCA8SElUb29sYm94L0NhcmJvbkV2
ZW50c0NvcmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQVhPYmplY3RDYWNoZS5oPgogI2ltcG9ydCA8
V2ViQ29yZS9EYXRhRGV0ZWN0b3JzU1BJLmg+CkBAIC01Miw2ICs1Myw4IEBACiAjaW1wb3J0IDxX
ZWJDb3JlL05TV2luZG93U1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL1ZpZXdTdGF0ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9XZWJBY3Rpb25E
aXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUNBTGF5
ZXJFeHRyYXMuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUZ1bGxTY3JlZW5QbGFjZWhvbGRl
clZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2ViQ29yZUZ1bGxTY3JlZW5XaW5kb3cuaD4KICNp
bXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5oPgpAQCAtMjk2LDYgKzI5OSwxOCBAQCBzdGF0
aWMgdm9pZCoga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0ID0gJmtleVZhbHVlT2JzZXJ2aW5nQ29u
dGV4dDsKIAogQGVuZAogCitAaW50ZXJmYWNlIFdLRmxpcHBlZFZpZXcgOiBOU1ZpZXcKK0BlbmQK
KworQGltcGxlbWVudGF0aW9uIFdLRmxpcHBlZFZpZXcKKworLSAoQk9PTClpc0ZsaXBwZWQKK3sK
KyAgICByZXR1cm4gWUVTOworfQorCitAZW5kCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBXZWJW
aWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAqdmlldywg
V2ViUGFnZVByb3h5JiBwYWdlLCBQYWdlQ2xpZW50JiBwYWdlQ2xpZW50KQpAQCAtMzI1LDYgKzM0
MCwxMCBAQCBXZWJWaWV3SW1wbDo6fldlYlZpZXdJbXBsKCkKIHsKICAgICBBU1NFUlQoIW1faW5T
ZWN1cmVJbnB1dFN0YXRlKTsKIAorI2lmIFdLX0FQSV9FTkFCTEVECisgICAgQVNTRVJUKCFtX3Ro
dW1ibmFpbFZpZXcpOworI2VuZGlmCisKICAgICBbbV9sYXlvdXRTdHJhdGVneSBpbnZhbGlkYXRl
XTsKIAogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCkBAIC0x
NTUzLDYgKzE1NzIsODEgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dG9vbFRpcENoYW5nZWQoTlNTdHJp
bmcgKm9sZFRvb2xUaXAsIE5TU3RyaW5nICpuZXdUb29sVGlwKQogICAgIH0KIH0KIAordm9pZCBX
ZWJWaWV3SW1wbDo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihDQUxheWVyICpy
b290TGF5ZXIpCit7CisgICAgW3Jvb3RMYXllciB3ZWJfZGlzYWJsZUFsbEFjdGlvbnNdOworCisg
ICAgbV9yb290TGF5ZXIgPSByb290TGF5ZXI7CisKKyNpZiBXS19BUElfRU5BQkxFRAorICAgIGlm
IChtX3RodW1ibmFpbFZpZXcpIHsKKyAgICAgICAgdXBkYXRlVGh1bWJuYWlsVmlld0xheWVyKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKKworICAgIFtDQVRyYW5zYWN0aW9uIGJl
Z2luXTsKKyAgICBbQ0FUcmFuc2FjdGlvbiBzZXREaXNhYmxlQWN0aW9uczpZRVNdOworCisgICAg
aWYgKHJvb3RMYXllcikgeworICAgICAgICBpZiAoIW1fbGF5ZXJIb3N0aW5nVmlldykgeworICAg
ICAgICAgICAgLy8gQ3JlYXRlIGFuIE5TVmlldyB0aGF0IHdpbGwgaG9zdCBvdXIgbGF5ZXIgdHJl
ZS4KKyAgICAgICAgICAgIG1fbGF5ZXJIb3N0aW5nVmlldyA9IGFkb3B0TlMoW1tXS0ZsaXBwZWRW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOm1fdmlldy5ib3VuZHNdKTsKKyAgICAgICAgICAgIFtt
X2xheWVySG9zdGluZ1ZpZXcgc2V0QXV0b3Jlc2l6aW5nTWFzazpOU1ZpZXdXaWR0aFNpemFibGUg
fCBOU1ZpZXdIZWlnaHRTaXphYmxlXTsKKworICAgICAgICAgICAgW21fdmlldyBhZGRTdWJ2aWV3
Om1fbGF5ZXJIb3N0aW5nVmlldy5nZXQoKSBwb3NpdGlvbmVkOk5TV2luZG93QmVsb3cgcmVsYXRp
dmVUbzpuaWxdOworCisgICAgICAgICAgICAvLyBDcmVhdGUgYSByb290IGxheWVyIHRoYXQgd2ls
bCBiYWNrIHRoZSBOU1ZpZXcuCisgICAgICAgICAgICBSZXRhaW5QdHI8Q0FMYXllcj4gbGF5ZXIg
PSBhZG9wdE5TKFtbQ0FMYXllciBhbGxvY10gaW5pdF0pOworICAgICAgICAgICAgW2xheWVyIHNl
dERlbGVnYXRlOltXZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUgc2hhcmVkXV07Cisj
aWZuZGVmIE5ERUJVRworICAgICAgICAgICAgW2xheWVyIHNldE5hbWU6QCJIb3N0aW5nIHJvb3Qg
bGF5ZXIiXTsKKyNlbmRpZgorCisgICAgICAgICAgICBbbV9sYXllckhvc3RpbmdWaWV3IHNldExh
eWVyOmxheWVyLmdldCgpXTsKKyAgICAgICAgICAgIFttX2xheWVySG9zdGluZ1ZpZXcgc2V0V2Fu
dHNMYXllcjpZRVNdOworICAgICAgICB9CisKKyAgICAgICAgW21fbGF5ZXJIb3N0aW5nVmlldyBs
YXllcl0uc3VibGF5ZXJzID0gW05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0OnJvb3RMYXllcl07Cisg
ICAgfSBlbHNlIGlmIChtX2xheWVySG9zdGluZ1ZpZXcpIHsKKyAgICAgICAgW21fbGF5ZXJIb3N0
aW5nVmlldyByZW1vdmVGcm9tU3VwZXJ2aWV3XTsKKyAgICAgICAgW21fbGF5ZXJIb3N0aW5nVmll
dyBzZXRMYXllcjpuaWxdOworICAgICAgICBbbV9sYXllckhvc3RpbmdWaWV3IHNldFdhbnRzTGF5
ZXI6Tk9dOworCisgICAgICAgIG1fbGF5ZXJIb3N0aW5nVmlldyA9IG51bGxwdHI7CisgICAgfQor
CisgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKK30KKworI2lmIFdLX0FQSV9FTkFCTEVECit2
b2lkIFdlYlZpZXdJbXBsOjpzZXRUaHVtYm5haWxWaWV3KF9XS1RodW1ibmFpbFZpZXcgKnRodW1i
bmFpbFZpZXcpCit7CisgICAgQVNTRVJUKCFtX3RodW1ibmFpbFZpZXcgfHwgIXRodW1ibmFpbFZp
ZXcpOworCisgICAgbV90aHVtYm5haWxWaWV3ID0gdGh1bWJuYWlsVmlldzsKKworICAgIGlmICh0
aHVtYm5haWxWaWV3KQorICAgICAgICB1cGRhdGVUaHVtYm5haWxWaWV3TGF5ZXIoKTsKKyAgICBl
bHNlCisgICAgICAgIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIobV9yb290TGF5
ZXIuZ2V0KCkpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpyZXBhcmVudExheWVyVHJlZUluVGh1
bWJuYWlsVmlldygpCit7CisgICAgbV90aHVtYm5haWxWaWV3Ll90aHVtYm5haWxMYXllciA9IG1f
cm9vdExheWVyLmdldCgpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVUaHVtYm5haWxW
aWV3TGF5ZXIoKQoreworICAgIF9XS1RodW1ibmFpbFZpZXcgKnRodW1ibmFpbFZpZXcgPSBtX3Ro
dW1ibmFpbFZpZXc7CisgICAgQVNTRVJUKHRodW1ibmFpbFZpZXcpOworCisgICAgaWYgKHRodW1i
bmFpbFZpZXcuX3dhaXRpbmdGb3JTbmFwc2hvdCAmJiBtX3ZpZXcud2luZG93KQorICAgICAgICBy
ZXBhcmVudExheWVyVHJlZUluVGh1bWJuYWlsVmlldygpOworfQorI2VuZGlmIC8vIFdLX0FQSV9F
TkFCTEVECisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5k
ZXggMDIzNGVlNS4uNDI5ZTZhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsLm1tCkBAIC00ODIsMTIgKzQ4MiwxMiBAQCB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRl
eHQmIGxheQogICAgIEFTU0VSVCghbGF5ZXJUcmVlQ29udGV4dC5pc0VtcHR5KCkpOwogCiAgICAg
Q0FMYXllciAqcmVuZGVyTGF5ZXIgPSBXS01ha2VSZW5kZXJMYXllcihsYXllclRyZWVDb250ZXh0
LmNvbnRleHRJRCk7Ci0gICAgW21fd2tWaWV3IF9zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZVJvb3RMYXllcjpyZW5kZXJMYXllcl07CisgICAgbV9pbXBsLT5zZXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nUm9vdExheWVyKHJlbmRlckxheWVyKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6
ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKIHsKLSAgICBbbV93a1ZpZXcgX3NldEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlUm9vdExheWVyOm5pbF07CisgICAgbV9pbXBsLT5zZXRB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKG5pbCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVu
dEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNv
bnRleHQmIGxheWVyVHJlZUNvbnRleHQpCkBAIC00OTUsNyArNDk1LDcgQEAgdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVl
Q29udGV4dCYgbGEKICAgICBBU1NFUlQoIWxheWVyVHJlZUNvbnRleHQuaXNFbXB0eSgpKTsKIAog
ICAgIENBTGF5ZXIgKnJlbmRlckxheWVyID0gV0tNYWtlUmVuZGVyTGF5ZXIobGF5ZXJUcmVlQ29u
dGV4dC5jb250ZXh0SUQpOwotICAgIFttX3drVmlldyBfc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z01vZGVSb290TGF5ZXI6cmVuZGVyTGF5ZXJdOworICAgIG1faW1wbC0+c2V0QWNjZWxlcmF0ZWRD
b21wb3NpdGluZ1Jvb3RMYXllcihyZW5kZXJMYXllcik7CiB9CiAKIHZvaWQgUGFnZUNsaWVudElt
cGw6OndpbGxFbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKQEAgLTUwNCwxMiArNTA0
LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OndpbGxFbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRp
bmdNb2RlKCkKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z1Jvb3RMYXllcihDQUxheWVyICpyb290TGF5ZXIpCiB7Ci0gICAgW21fd2tWaWV3IF9zZXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nTW9kZVJvb3RMYXllcjpyb290TGF5ZXJdOworICAgIG1faW1wbC0+
c2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihyb290TGF5ZXIpOwogfQogCiBDQUxh
eWVyICpQYWdlQ2xpZW50SW1wbDo6YWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcigpIGNv
bnN0CiB7Ci0gICAgcmV0dXJuIG1fd2tWaWV3Ll9hY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZVJv
b3RMYXllcjsKKyAgICByZXR1cm4gbV9pbXBsLT5hY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExh
eWVyKCk7CiB9CiAKIFBhc3NSZWZQdHI8Vmlld1NuYXBzaG90PiBQYWdlQ2xpZW50SW1wbDo6dGFr
ZVZpZXdTbmFwc2hvdCgpCi0tIAoyLjQuOSAoQXBwbGUgR2l0LTYwKQoK
</data>
<flag name="review"
          id="288996"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>263932</attachid>
            <date>2015-10-23 11:00:06 -0700</date>
            <delta_ts>2015-10-23 13:50:42 -0700</delta_ts>
            <desc>Part 3 - plugin complex text</desc>
            <filename>bug-150174-20151023105921.patch</filename>
            <type>text/plain</type>
            <size>22624</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxNDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggY2NjNDUzNDRjYTk2NWQ5
N2M5NTBhNDI2NjM5NTU3YzQwNjc5YmQzNC4uZjFiOThmY2Y3MzdlZWQ3ZWZlNGMxMTdlN2U0Yzkz
MzEzZDVjZDU3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtNiw2ICs2LDQzIEBACiAgICAgICAgIFJldmlld2Vk
IGJ5IEFuZGVycyBDYXJsc3Nvbi4KIAogICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbToKKyAgICAgICAgKC1bV0tWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpjb21wbGV0aW9uSGFu
ZGxlcjpdKToKKyAgICAgICAgKC1bV0tWaWV3IGlucHV0Q29udGV4dF0pOgorICAgICAgICAoLVtX
S1ZpZXcgcGVyZm9ybUtleUVxdWl2YWxlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBrZXlEb3du
Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgX2RvbmVXaXRoS2V5RXZlbnQ6ZXZlbnRXYXNIYW5kbGVk
Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgX3NldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZTpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9kaXNhYmxlQ29tcGxleFRleHRJbnB1dElm
TmVjZXNzYXJ5XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfaGFuZGxlUGx1Z2luQ29t
cGxleFRleHRJbnB1dEtleURvd246XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfdHJ5
SGFuZGxlUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURvd246XSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dLVmlldyBfdHJ5UG9zdFByb2Nlc3NQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bjpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9wbHVnaW5Gb2N1c09yV2luZG93Rm9jdXND
aGFuZ2VkOnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyOl0pOiBEZWxldGVkLgorICAg
ICAgICAoLVtXS1ZpZXcgX3NldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZTpwbHVnaW5Db21w
bGV4VGV4dElucHV0SWRlbnRpZmllcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGx1Z2luQ29tcGxleFRl
eHRJbnB1dFN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRJZGVudGlmaWVyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRQbHVnaW5Db21wbGV4
VGV4dElucHV0U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0UGx1Z2lu
Q29tcGxleFRleHRJbnB1dFN0YXRlQW5kSWRlbnRpZmllcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpkaXNhYmxlQ29tcGxleFRleHRJbnB1dElmTmVjZXNzYXJ5KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZVBsdWdpbkNvbXBsZXhUZXh0SW5wdXRLZXlEb3du
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRyeUhhbmRsZVBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRLZXlEb3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBsdWdpbkZv
Y3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
dHJ5UG9zdFByb2Nlc3NQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bik6CisgICAgICAgICog
VUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQpOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKToKKyAg
ICAgICAgTW92ZSBhIGZldyBtb3JlIG1ldGhvZHMuCisKKzIwMTUtMTAtMjIgIFRpbSBIb3J0b24g
IDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisKKyAgICAgICAgV0tWaWV3IGJlaW5nIGluc2lk
ZSBXS1dlYlZpZXcgbGVhZHMgdG8gd2VpcmQgQVBJIGlzc3VlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwMTc0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW06CiAgICAgICAgICgtW1dLVmlldyByZW5ld0dTdGF0ZV0pOgogICAgICAgICAoLVtXS1ZpZXcg
d3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQ6dHlwZXM6XSk6CiAgICAgICAgICgtW1dLVmlldyBj
ZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhOl0pOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGQ5OTQ2ODY5Yzc1ODdlNGY1YWNkMmFlOTFkYmUxMjFm
MWNiN2M2MTkuLmIxMGYzZTFiZTk5Y2E0MmRjN2E0MzEyZjI5OWQxZjc5ZGVjYTI1NjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTIwMSwxNSArMjAx
LDggQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogICAgIFdL
Vmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMqIF9pbnRlcnByZXRLZXlFdmVudHNQYXJh
bWV0ZXJzOwogI2VuZGlmCiAKLSAgICAvLyBUaGUgaWRlbnRpZmllciBvZiB0aGUgcGx1Zy1pbiB3
ZSB3YW50IHRvIHNlbmQgY29tcGxleCB0ZXh0IGlucHV0IHRvLCBvciAwIGlmIHRoZXJlIGlzIG5v
bmUuCi0gICAgdWludDY0X3QgX3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyOwotCi0g
ICAgLy8gVGhlIHN0YXRlIG9mIGNvbXBsZXggdGV4dCBpbnB1dCBmb3IgdGhlIHBsdWctaW4uCi0g
ICAgUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlIF9wbHVnaW5Db21wbGV4VGV4dElucHV0U3Rh
dGU7Ci0KICAgICBCT09MIF93aWxsQmVjb21lRmlyc3RSZXNwb25kZXJBZ2FpbjsKICAgICBOU0V2
ZW50ICpfbW91c2VEb3duRXZlbnQ7Ci0gICAgTlNFdmVudCAqX3ByZXNzdXJlRXZlbnQ7CiAgICAg
Qk9PTCBfaWdub3JpbmdNb3VzZURyYWdnZWRFdmVudHM7CiAKICAgICBCT09MIF9oYXNTcGVsbENo
ZWNrZXJEb2N1bWVudFRhZzsKQEAgLTM5MiwxNyArMzg1LDYgQEAgc3RydWN0IFdLVmlld0ludGVy
cHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogICAgIFtzdXBlciByZW5ld0dTdGF0ZV07CiB9CiAK
LS0gKHZvaWQpX3NldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZTooUGx1Z2luQ29tcGxleFRl
eHRJbnB1dFN0YXRlKXBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZQotewotICAgIF9kYXRhLT5f
cGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlID0gcGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRl
OwotICAgIAotICAgIGlmIChfZGF0YS0+X3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSAhPSBQ
bHVnaW5Db21wbGV4VGV4dElucHV0RGlzYWJsZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8v
IFNlbmQgYmFjayBhbiBlbXB0eSBzdHJpbmcgdG8gdGhlIHBsdWctaW4uIFRoaXMgd2lsbCBkaXNh
YmxlIHRleHQgaW5wdXQuCi0gICAgX2RhdGEtPl9wYWdlLT5zZW5kQ29tcGxleFRleHRJbnB1dFRv
UGx1Z2luKF9kYXRhLT5fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIFN0cmluZygp
KTsKLX0KLQogdHlwZWRlZiBIYXNoTWFwPFNFTCwgU3RyaW5nPiBTZWxlY3Rvck5hbWVNYXA7CiAK
IC8vIE1hcCBzZWxlY3RvcnMgaW50byBFZGl0b3IgY29tbWFuZCBuYW1lcy4KQEAgLTExODgsNTUg
KzExNzAsNiBAQCBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRFUk5BTChtb3VzZURyYWdn
ZWRJbnRlcm5hbCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi0tICh2b2lkKV9kaXNhYmxlQ29t
cGxleFRleHRJbnB1dElmTmVjZXNzYXJ5Ci17Ci0gICAgaWYgKCFfZGF0YS0+X3BsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRJZGVudGlmaWVyKQotICAgICAgICByZXR1cm47Ci0KLSAgICBpZiAoX2RhdGEt
Pl9wbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUgIT0gUGx1Z2luQ29tcGxleFRleHRJbnB1dEVu
YWJsZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8vIENoZWNrIGlmIHRoZSB0ZXh0IGlucHV0
IHdpbmRvdyBoYXMgYmVlbiBkaXNtaXNzZWQuCi0gICAgaWYgKCFbW1dLVGV4dElucHV0V2luZG93
Q29udHJvbGxlciBzaGFyZWRUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyXSBoYXNNYXJrZWRUZXh0
XSkKLSAgICAgICAgW3NlbGYgX3NldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZTpQbHVnaW5D
b21wbGV4VGV4dElucHV0RGlzYWJsZWRdOwotfQotCi0tIChCT09MKV9oYW5kbGVQbHVnaW5Db21w
bGV4VGV4dElucHV0S2V5RG93bjooTlNFdmVudCAqKWV2ZW50Ci17Ci0gICAgQVNTRVJUKF9kYXRh
LT5fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIpOwotICAgIEFTU0VSVChfZGF0YS0+
X3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSAhPSBQbHVnaW5Db21wbGV4VGV4dElucHV0RGlz
YWJsZWQpOwotCi0gICAgQk9PTCB1c2luZ0xlZ2FjeUNvY29hVGV4dElucHV0ID0gX2RhdGEtPl9w
bHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUgPT0gUGx1Z2luQ29tcGxleFRleHRJbnB1dEVuYWJs
ZWRMZWdhY3k7Ci0KLSAgICBOU1N0cmluZyAqc3RyaW5nID0gbmlsOwotICAgIEJPT0wgZGlkSGFu
ZGxlRXZlbnQgPSBbW1dLVGV4dElucHV0V2luZG93Q29udHJvbGxlciBzaGFyZWRUZXh0SW5wdXRX
aW5kb3dDb250cm9sbGVyXSBpbnRlcnByZXRLZXlFdmVudDpldmVudCB1c2luZ0xlZ2FjeUNvY29h
VGV4dElucHV0OnVzaW5nTGVnYWN5Q29jb2FUZXh0SW5wdXQgc3RyaW5nOiZzdHJpbmddOwotCi0g
ICAgaWYgKHN0cmluZykgewotICAgICAgICBfZGF0YS0+X3BhZ2UtPnNlbmRDb21wbGV4VGV4dElu
cHV0VG9QbHVnaW4oX2RhdGEtPl9wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgc3Ry
aW5nKTsKLQotICAgICAgICBpZiAoIXVzaW5nTGVnYWN5Q29jb2FUZXh0SW5wdXQpCi0gICAgICAg
ICAgICBfZGF0YS0+X3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSA9IFBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXREaXNhYmxlZDsKLSAgICB9Ci0KLSAgICByZXR1cm4gZGlkSGFuZGxlRXZlbnQ7Ci19
Ci0KLS0gKEJPT0wpX3RyeUhhbmRsZVBsdWdpbkNvbXBsZXhUZXh0SW5wdXRLZXlEb3duOihOU0V2
ZW50ICopZXZlbnQKLXsKLSAgICBpZiAoIV9kYXRhLT5fcGx1Z2luQ29tcGxleFRleHRJbnB1dElk
ZW50aWZpZXIgfHwgX2RhdGEtPl9wbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUgPT0gUGx1Z2lu
Q29tcGxleFRleHRJbnB1dERpc2FibGVkKQotICAgICAgICByZXR1cm4gTk87Ci0KLSAgICAvLyBD
aGVjayBpZiB0aGUgdGV4dCBpbnB1dCB3aW5kb3cgaGFzIGJlZW4gZGlzbWlzc2VkIGFuZCBsZXQg
dGhlIHBsdWctaW4gcHJvY2VzcyBrbm93LgotICAgIC8vIFRoaXMgaXMgb25seSB2YWxpZCB3aXRo
IHRoZSB1cGRhdGVkIENvY29hIHRleHQgaW5wdXQgc3BlYy4KLSAgICBbc2VsZiBfZGlzYWJsZUNv
bXBsZXhUZXh0SW5wdXRJZk5lY2Vzc2FyeV07Ci0KLSAgICAvLyBUcnkgZmVlZGluZyB0aGUga2V5
Ym9hcmQgZXZlbnQgZGlyZWN0bHkgdG8gdGhlIHBsdWctaW4uCi0gICAgaWYgKF9kYXRhLT5fcGx1
Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlID09IFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRFbmFibGVk
TGVnYWN5KQotICAgICAgICByZXR1cm4gW3NlbGYgX2hhbmRsZVBsdWdpbkNvbXBsZXhUZXh0SW5w
dXRLZXlEb3duOmV2ZW50XTsKLQotICAgIHJldHVybiBOTzsKLX0KLQogc3RhdGljIHZvaWQgZXh0
cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3Np
dGlvblVuZGVybGluZT4mIHJlc3VsdCkKIHsKICAgICBpbnQgbGVuZ3RoID0gW1tzdHJpbmcgc3Ry
aW5nXSBsZW5ndGhdOwpAQCAtMTI3OSw3ICsxMjEyLDcgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVu
ZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVu
ZGUKIHsKICAgICAvLyBGb3IgcmVndWxhciBXZWIgY29udGVudCwgaW5wdXQgbWV0aG9kcyBydW4g
YmVmb3JlIHBhc3NpbmcgYSBrZXlkb3duIHRvIERPTSwgYnV0IHBsdWctaW5zIGdldCBhbiBvcHBv
cnR1bml0eSB0byBoYW5kbGUgdGhlIGV2ZW50IGZpcnN0LgogICAgIC8vIFRoZXJlIGlzIG5vIG5l
ZWQgdG8gY29sbGVjdCBjb21tYW5kcywgYXMgdGhlIHBsdWctaW4gY2Fubm90IGV4ZWN1dGUgdGhl
bS4KLSAgICBpZiAoX2RhdGEtPl9wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcikgewor
ICAgIGlmIChfZGF0YS0+X2ltcGwtPnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkp
IHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoTk8sIFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+
KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTUyMyw3ICsxNDU2LDcgQEAgc3RhdGlj
IHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3Rv
cjxDb21wb3NpdGlvblVuZGUKIAogLSAoTlNUZXh0SW5wdXRDb250ZXh0ICopaW5wdXRDb250ZXh0
CiB7Ci0gICAgaWYgKF9kYXRhLT5fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIpIHsK
KyAgICBpZiAoX2RhdGEtPl9pbXBsLT5wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigp
KSB7CiAgICAgICAgIEFTU0VSVCghX2RhdGEtPl9jb2xsZWN0ZWRLZXlwcmVzc0NvbW1hbmRzKTsg
Ly8gU2hvdWxkIG5vdCBnZXQgaGVyZSBmcm9tIC1faW50ZXJwcmV0S2V5RXZlbnQ6Y29tcGxldGlv
bkhhbmRsZXI6LCB3ZSBvbmx5IHVzZSBXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIgYWZ0ZXIg
Z2l2aW5nIHRoZSBwbHVnLWluIGEgY2hhbmNlIHRvIGhhbmRsZSBrZXlkb3duIG5hdGl2ZWx5Lgog
ICAgICAgICByZXR1cm4gW1tXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIgc2hhcmVkVGV4dElu
cHV0V2luZG93Q29udHJvbGxlcl0gaW5wdXRDb250ZXh0XTsKICAgICB9CkBAIC0xNjM4LDcgKzE1
NzEsNyBAQCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcg
KnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogCiAgICAgQVNTRVJUKGV2ZW50ID09IFtO
U0FwcCBjdXJyZW50RXZlbnRdKTsKIAotICAgIFtzZWxmIF9kaXNhYmxlQ29tcGxleFRleHRJbnB1
dElmTmVjZXNzYXJ5XTsKKyAgICBfZGF0YS0+X2ltcGwtPmRpc2FibGVDb21wbGV4VGV4dElucHV0
SWZOZWNlc3NhcnkoKTsKIAogICAgIC8vIFBhc3Mga2V5IGNvbWJvcyB0aHJvdWdoIFdlYkNvcmUg
aWYgdGhlcmUgaXMgYSBrZXkgYmluZGluZyBhdmFpbGFibGUgZm9yCiAgICAgLy8gdGhpcyBldmVu
dC4gVGhpcyBsZXRzIHdlYnBhZ2VzIGhhdmUgYSBjcmFjayBhdCBpbnRlcmNlcHRpbmcga2V5LW1v
ZGlmaWVkIGtleXByZXNzZXMuCkBAIC0xNjczLDcgKzE2MDYsNyBAQCBzdGF0aWMgdm9pZCBleHRy
YWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0
aW9uVW5kZQogCiAgICAgTE9HKFRleHRJbnB1dCwgImtleURvd246JXAgJUAlcyIsIHRoZUV2ZW50
LCB0aGVFdmVudCwgKHRoZUV2ZW50ID09IF9kYXRhLT5fa2V5RG93bkV2ZW50QmVpbmdSZXNlbnQp
ID8gIiAocmUtc2VudCkiIDogIiIpOwogCi0gICAgaWYgKFtzZWxmIF90cnlIYW5kbGVQbHVnaW5D
b21wbGV4VGV4dElucHV0S2V5RG93bjp0aGVFdmVudF0pIHsKKyAgICBpZiAoX2RhdGEtPl9pbXBs
LT50cnlIYW5kbGVQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bih0aGVFdmVudCkpIHsKICAg
ICAgICAgTE9HKFRleHRJbnB1dCwgIi4uLmhhbmRsZWQgYnkgcGx1Zy1pbiIpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtMTg1OSw3ICsxNzkyLDcgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVu
ZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVu
ZGUKIHsKICAgICBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJz
ID0gX2RhdGEtPl9pbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzOwogCi0gICAgaWYgKF9kYXRh
LT5fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIgJiYgIXBhcmFtZXRlcnMpCisgICAg
aWYgKF9kYXRhLT5faW1wbC0+cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIoKSAmJiAh
cGFyYW1ldGVycykKICAgICAgICAgcmV0dXJuIFtbV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVy
IHNoYXJlZFRleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXJdIGlucHV0Q29udGV4dF07CiAKICAgICAv
LyBEaXNhYmxlIHRleHQgaW5wdXQgbWFjaGluZXJ5IHdoZW4gaW4gbm9uLWVkaXRhYmxlIGNvbnRl
bnQuIEFuIGludmlzaWJsZSBpbmxpbmUgaW5wdXQgYXJlYSBhZmZlY3RzIHBlcmZvcm1hbmNlLCBh
bmQgY2FuIHByZXZlbnQgRXhwb3NlIGZyb20gd29ya2luZy4KQEAgLTIwODEsNyArMjAxNCw3IEBA
IHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5n
LCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKICAgICBBU1NFUlQoZXZlbnQgPT0gW05TQXBwIGN1
cnJlbnRFdmVudF0pOwogCi0gICAgW3NlbGYgX2Rpc2FibGVDb21wbGV4VGV4dElucHV0SWZOZWNl
c3NhcnldOworICAgIF9kYXRhLT5faW1wbC0+ZGlzYWJsZUNvbXBsZXhUZXh0SW5wdXRJZk5lY2Vz
c2FyeSgpOwogCiAgICAgLy8gUGFzcyBrZXkgY29tYm9zIHRocm91Z2ggV2ViQ29yZSBpZiB0aGVy
ZSBpcyBhIGtleSBiaW5kaW5nIGF2YWlsYWJsZSBmb3IKICAgICAvLyB0aGlzIGV2ZW50LiBUaGlz
IGxldHMgd2VicGFnZXMgaGF2ZSBhIGNyYWNrIGF0IGludGVyY2VwdGluZyBrZXktbW9kaWZpZWQg
a2V5cHJlc3Nlcy4KQEAgLTIxMTgsNyArMjA1MSw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRl
cmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRl
CiAgICAgLy8gdGhlIGN1cnJlbnQgZXZlbnQgcHJldmVudHMgdGhhdCBmcm9tIGNhdXNpbmcgYSBw
cm9ibGVtIGluc2lkZSBXZWJLaXQgb3IgQXBwS2l0IGNvZGUuCiAgICAgW1t0aGVFdmVudCByZXRh
aW5dIGF1dG9yZWxlYXNlXTsKIAotICAgIGlmIChbc2VsZiBfdHJ5SGFuZGxlUGx1Z2luQ29tcGxl
eFRleHRJbnB1dEtleURvd246dGhlRXZlbnRdKSB7CisgICAgaWYgKF9kYXRhLT5faW1wbC0+dHJ5
SGFuZGxlUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURvd24odGhlRXZlbnQpKSB7CiAgICAgICAg
IExPRyhUZXh0SW5wdXQsICIuLi5oYW5kbGVkIGJ5IHBsdWctaW4iKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KQEAgLTI1NDEsMjQgKzI0NzQsMTIgQEAgc3RhdGljIHZvaWQgY3JlYXRlU2FuZGJv
eEV4dGVuc2lvbnNGb3JGaWxlVXBsb2FkKE5TUGFzdGVib2FyZCAqcGFzdGVib2FyZCwgU2FuZGIK
ICAgICB9CiB9CiAKLS0gKEJPT0wpX3RyeVBvc3RQcm9jZXNzUGx1Z2luQ29tcGxleFRleHRJbnB1
dEtleURvd246KE5TRXZlbnQgKilldmVudAotewotICAgIGlmICghX2RhdGEtPl9wbHVnaW5Db21w
bGV4VGV4dElucHV0SWRlbnRpZmllciB8fCBfZGF0YS0+X3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRT
dGF0ZSA9PSBQbHVnaW5Db21wbGV4VGV4dElucHV0RGlzYWJsZWQpCi0gICAgICAgIHJldHVybiBO
TzsKLQotICAgIC8vIEluIHRoZSBsZWdhY3kgdGV4dCBpbnB1dCBtb2RlbCwgdGhlIGV2ZW50IGhh
cyBhbHJlYWR5IGJlZW4gc2VudCB0byB0aGUgaW5wdXQgbWV0aG9kLgotICAgIGlmIChfZGF0YS0+
X3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSA9PSBQbHVnaW5Db21wbGV4VGV4dElucHV0RW5h
YmxlZExlZ2FjeSkKLSAgICAgICAgcmV0dXJuIE5POwotCi0gICAgcmV0dXJuIFtzZWxmIF9oYW5k
bGVQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bjpldmVudF07Ci19Ci0KIC0gKHZvaWQpX2Rv
bmVXaXRoS2V5RXZlbnQ6KE5TRXZlbnQgKilldmVudCBldmVudFdhc0hhbmRsZWQ6KEJPT0wpZXZl
bnRXYXNIYW5kbGVkCiB7CiAgICAgaWYgKFtldmVudCB0eXBlXSAhPSBOU0tleURvd24pCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGlmIChbc2VsZiBfdHJ5UG9zdFByb2Nlc3NQbHVnaW5Db21wbGV4
VGV4dElucHV0S2V5RG93bjpldmVudF0pCisgICAgaWYgKF9kYXRhLT5faW1wbC0+dHJ5UG9zdFBy
b2Nlc3NQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bihldmVudCkpCiAgICAgICAgIHJldHVy
bjsKICAgICAKICAgICBpZiAoZXZlbnRXYXNIYW5kbGVkKSB7CkBAIC0yODQwLDQ0ICsyNzYxLDYg
QEAgc3RhdGljIFJldGFpblB0cjxDR0ltYWdlUmVmPiB0YWtlV2luZG93U25hcHNob3QoQ0dTV2lu
ZG93SUQgd2luZG93SUQsIGJvb2wgY2FwdHUKICAgICBbc2VsZiBfdXBkYXRlUmVtb3RlQWNjZXNz
aWJpbGl0eVJlZ2lzdHJhdGlvbjpZRVNdOwogfQogCi0tICh2b2lkKV9wbHVnaW5Gb2N1c09yV2lu
ZG93Rm9jdXNDaGFuZ2VkOihCT09MKXBsdWdpbkhhc0ZvY3VzQW5kV2luZG93SGFzRm9jdXMgcGx1
Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXI6KHVpbnQ2NF90KXBsdWdpbkNvbXBsZXhUZXh0
SW5wdXRJZGVudGlmaWVyCi17Ci0gICAgQk9PTCBpbnB1dFNvdXJjZUNoYW5nZWQgPSBfZGF0YS0+
X3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyOwotCi0gICAgaWYgKHBsdWdpbkhhc0Zv
Y3VzQW5kV2luZG93SGFzRm9jdXMpIHsKLSAgICAgICAgLy8gQ2hlY2sgaWYgd2UncmUgYWxyZWFk
eSBhbGxvd2luZyB0ZXh0IGlucHV0IGZvciB0aGlzIHBsdWctaW4uCi0gICAgICAgIGlmIChwbHVn
aW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciA9PSBfZGF0YS0+X3BsdWdpbkNvbXBsZXhUZXh0
SW5wdXRJZGVudGlmaWVyKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIF9kYXRhLT5f
cGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIgPSBwbHVnaW5Db21wbGV4VGV4dElucHV0
SWRlbnRpZmllcjsKLQotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIENoZWNrIGlmIHdlIGdvdCBh
IHJlcXVlc3QgdG8gdW5mb2N1cyBhIHBsdWctaW4gdGhhdCBpc24ndCBmb2N1c2VkLgotICAgICAg
ICBpZiAocGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIgIT0gX2RhdGEtPl9wbHVnaW5D
b21wbGV4VGV4dElucHV0SWRlbnRpZmllcikKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAg
ICBfZGF0YS0+X3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyID0gMDsKLSAgICB9Ci0K
LSAgICBpZiAoaW5wdXRTb3VyY2VDaGFuZ2VkKSB7Ci0gICAgICAgIC8vIFRoZSBpbnB1dCBzb3Vy
Y2UgY2hhbmdlZDsgZGlzY2FyZCBhbnkgZW50ZXJlZCB0ZXh0LgotICAgICAgICBbW1dLVGV4dElu
cHV0V2luZG93Q29udHJvbGxlciBzaGFyZWRUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyXSB1bm1h
cmtUZXh0XTsKLSAgICB9Ci0KLSAgICAvLyBUaGlzIHdpbGwgZm9yY2UgdGhlIGN1cnJlbnQgaW5w
dXQgY29udGV4dCB0byBiZSB1cGRhdGVkIHRvIGl0cyBjb3JyZWN0IHZhbHVlLgotICAgIFtOU0Fw
cCB1cGRhdGVXaW5kb3dzXTsKLX0KLQotLSAodm9pZClfc2V0UGx1Z2luQ29tcGxleFRleHRJbnB1
dFN0YXRlOihQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpcGx1Z2luQ29tcGxleFRleHRJbnB1
dFN0YXRlIHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyOih1aW50NjRfdClwbHVnaW5D
b21wbGV4VGV4dElucHV0SWRlbnRpZmllcgotewotICAgIGlmIChwbHVnaW5Db21wbGV4VGV4dElu
cHV0SWRlbnRpZmllciAhPSBfZGF0YS0+X3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVy
KSB7Ci0gICAgICAgIC8vIFdlJ3JlIGFza2VkIHRvIHVwZGF0ZSB0aGUgc3RhdGUgZm9yIGEgcGx1
Zy1pbiB0aGF0IGRvZXNuJ3QgaGF2ZSBmb2N1cy4KLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIFtzZWxmIF9zZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGU6cGx1Z2luQ29tcGxleFRl
eHRJbnB1dFN0YXRlXTsKLX0KLQogLSAodm9pZClfZHJhZ0ltYWdlRm9yVmlldzooTlNWaWV3ICop
dmlldyB3aXRoSW1hZ2U6KE5TSW1hZ2UgKilpbWFnZSBhdDooTlNQb2ludCljbGllbnRQb2ludCBs
aW5rRHJhZzooQk9PTClsaW5rRHJhZwogewogICAgIC8vIFRoZSBjYWxsIGJlbG93IGNvdWxkIHJl
bGVhc2UgdGhpcyBXS1ZpZXcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tWaWV3SW50ZXJuYWwuaAppbmRleCAyOGU1Yjc3MmYxN2YzMTBkNmVmOTllZDk2N2U4NWZi
MzA0Y2MxNmVjLi43ZjhjODA3MjBjZGM5ODZlMzBkNjBiYjEyOWY3Njk1MTBiODRiNTM4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgK
QEAgLTk1LDggKzk1LDYgQEAgc3RydWN0IEVkaXRvclN0YXRlOwogCiAtICh2b2lkKV9zZXRBY2Nl
c3NpYmlsaXR5V2ViUHJvY2Vzc1Rva2VuOihOU0RhdGEgKilkYXRhOwogCi0tICh2b2lkKV9wbHVn
aW5Gb2N1c09yV2luZG93Rm9jdXNDaGFuZ2VkOihCT09MKXBsdWdpbkhhc0ZvY3VzQW5kV2luZG93
SGFzRm9jdXMgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXI6KHVpbnQ2NF90KXBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyOwotLSAodm9pZClfc2V0UGx1Z2luQ29tcGxleFRl
eHRJbnB1dFN0YXRlOihXZWJLaXQ6OlBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSlwbHVnaW5D
b21wbGV4VGV4dElucHV0U3RhdGUgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXI6KHVp
bnQ2NF90KXBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyOwogLSAodm9pZClfZHJhZ0lt
YWdlRm9yVmlldzooTlNWaWV3ICopdmlldyB3aXRoSW1hZ2U6KE5TSW1hZ2UgKilpbWFnZSBhdDoo
TlNQb2ludCljbGllbnRQb2ludCBsaW5rRHJhZzooQk9PTClsaW5rRHJhZzsKIC0gKHZvaWQpX3Nl
dFByb21pc2VkRGF0YUZvckltYWdlOihXZWJDb3JlOjpJbWFnZSAqKWltYWdlIHdpdGhGaWxlTmFt
ZTooTlNTdHJpbmcgKilmaWxlbmFtZSB3aXRoRXh0ZW5zaW9uOihOU1N0cmluZyAqKWV4dGVuc2lv
biB3aXRoVGl0bGU6KE5TU3RyaW5nICopdGl0bGUgd2l0aFVSTDooTlNTdHJpbmcgKil1cmwgd2l0
aFZpc2libGVVUkw6KE5TU3RyaW5nICopdmlzaWJsZVVybCB3aXRoQXJjaGl2ZTooV2ViQ29yZTo6
U2hhcmVkQnVmZmVyKikgYXJjaGl2ZUJ1ZmZlciBmb3JQYXN0ZWJvYXJkOihOU1N0cmluZyAqKXBh
c3RlYm9hcmROYW1lOwogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IDAzODgyZjEyNTk2MDhi
ZGUzODUxNGFhMTcxNjVmZjI1OTUwY2ZhNWIuLjQxNTMyMjViMDBkZDA2NjQ2ZWYwY2I4ZTBjOTI4
YjllMDY3ZDZhYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5oCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAKKyNpbmNsdWRl
ICJQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUuaCIKICNpbmNsdWRlICJXS0xheW91dE1vZGUu
aCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL1RleHRJbmRp
Y2F0b3JXaW5kb3cuaD4KQEAgLTE1OSw2ICsxNjAsMTQgQEAgcHVibGljOgogICAgIHZvaWQgcmVz
ZXRTZWN1cmVJbnB1dFN0YXRlKCk7CiAgICAgYm9vbCBpblNlY3VyZUlucHV0U3RhdGUoKSBjb25z
dCB7IHJldHVybiBtX2luU2VjdXJlSW5wdXRTdGF0ZTsgfQogICAgIHZvaWQgbm90aWZ5SW5wdXRD
b250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbigpOworICAgIHZvaWQgc2V0UGx1Z2luQ29t
cGxleFRleHRJbnB1dFN0YXRlQW5kSWRlbnRpZmllcihQbHVnaW5Db21wbGV4VGV4dElucHV0U3Rh
dGUsIHVpbnQ2NF90IGlkZW50aWZpZXIpOworICAgIHZvaWQgZGlzYWJsZUNvbXBsZXhUZXh0SW5w
dXRJZk5lY2Vzc2FyeSgpOworICAgIGJvb2wgaGFuZGxlUGx1Z2luQ29tcGxleFRleHRJbnB1dEtl
eURvd24oTlNFdmVudCAqKTsKKyAgICBib29sIHRyeUhhbmRsZVBsdWdpbkNvbXBsZXhUZXh0SW5w
dXRLZXlEb3duKE5TRXZlbnQgKik7CisgICAgdm9pZCBwbHVnaW5Gb2N1c09yV2luZG93Rm9jdXND
aGFuZ2VkKGJvb2wgcGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cywgdWludDY0X3QgcGx1
Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIpOworICAgIGJvb2wgdHJ5UG9zdFByb2Nlc3NQ
bHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bihOU0V2ZW50ICopOworICAgIFBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRTdGF0ZSBwbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUoKSBjb25zdCB7IHJl
dHVybiBtX3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZTsgfQorICAgIHVpbnQ2NF90IHBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9wbHVnaW5Db21w
bGV4VGV4dElucHV0SWRlbnRpZmllcjsgfQogCiAgICAgdm9pZCBwcmVzc3VyZUNoYW5nZVdpdGhF
dmVudChOU0V2ZW50ICopOwogICAgIE5TRXZlbnQgKmxhc3RQcmVzc3VyZUV2ZW50KCkgeyByZXR1
cm4gbV9sYXN0UHJlc3N1cmVFdmVudC5nZXQoKTsgfQpAQCAtMjE4LDYgKzIyNyw4IEBAIHByaXZh
dGU6CiAKICAgICB2b2lkIHBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZl
bnQoTlNFdmVudCAqKTsKIAorICAgIHZvaWQgc2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRl
KFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSk7CisKICAgICBOU1ZpZXcgPFdlYlZpZXdJbXBs
RGVsZWdhdGU+ICptX3ZpZXc7CiAgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7CiAgICAgUGFnZUNs
aWVudCYgbV9wYWdlQ2xpZW50OwpAQCAtMjUxLDYgKzI2MiwxMiBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9pblNlY3VyZUlucHV0U3RhdGUgeyBmYWxzZSB9OwogICAgIFJldGFpblB0cjxXS0VkaXRv
clVuZG9UYXJnZXRPYmpDPiBtX3VuZG9UYXJnZXQ7CiAKKyAgICAvLyBUaGUgaWRlbnRpZmllciBv
ZiB0aGUgcGx1Zy1pbiB3ZSB3YW50IHRvIHNlbmQgY29tcGxleCB0ZXh0IGlucHV0IHRvLCBvciAw
IGlmIHRoZXJlIGlzIG5vbmUuCisgICAgdWludDY0X3QgbV9wbHVnaW5Db21wbGV4VGV4dElucHV0
SWRlbnRpZmllcjsKKworICAgIC8vIFRoZSBzdGF0ZSBvZiBjb21wbGV4IHRleHQgaW5wdXQgZm9y
IHRoZSBwbHVnLWluLgorICAgIFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSBtX3BsdWdpbkNv
bXBsZXhUZXh0SW5wdXRTdGF0ZTsKKwogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKICAgICBS
ZXRhaW5QdHI8V0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcj4gbV9mdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlcjsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLm1tCmluZGV4IGNiZmFmMGRlODgzYjAzNGQyMmJiZjcyMDliNjg1NjE4YTgwMmZh
YmMuLmZkNjczNWIzNDZjYzAwNjI5OTdlNWY2ZTNhZTBlYTFiMGViZmUxZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTM2LDYgKzM2LDcg
QEAKICNpbXBvcnQgIlBhZ2VDbGllbnQuaCIKICNpbXBvcnQgIldLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIuaCIKICNpbXBvcnQgIldLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oIgorI2lt
cG9ydCAiV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS1ZpZXdMYXlv
dXRTdHJhdGVneS5oIgogI2ltcG9ydCAiV0tXZWJWaWV3LmgiCiAjaW1wb3J0ICJXZWJFZGl0Q29t
bWFuZFByb3h5LmgiCkBAIC0xMDE1LDYgKzEwMTYsMTE2IEBAIHZvaWQgV2ViVmlld0ltcGw6Om5v
dGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb24oKQogICAgIFtbbV92aWV3
IF9zdXBlcklucHV0Q29udGV4dF0gZGlzY2FyZE1hcmtlZFRleHRdOyAvLyBJbmZvcm0gdGhlIGlu
cHV0IG1ldGhvZCB0aGF0IHdlIHdvbid0IGhhdmUgYW4gaW5saW5lIGlucHV0IGFyZWEgZGVzcGl0
ZSBoYXZpbmcgYmVlbiBhc2tlZCB0by4KIH0KIAordm9pZCBXZWJWaWV3SW1wbDo6c2V0UGx1Z2lu
Q29tcGxleFRleHRJbnB1dFN0YXRlKFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSBwbHVnaW5D
b21wbGV4VGV4dElucHV0U3RhdGUpCit7CisgICAgbV9wbHVnaW5Db21wbGV4VGV4dElucHV0U3Rh
dGUgPSBwbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGU7CisKKyAgICBpZiAobV9wbHVnaW5Db21w
bGV4VGV4dElucHV0U3RhdGUgIT0gUGx1Z2luQ29tcGxleFRleHRJbnB1dERpc2FibGVkKQorICAg
ICAgICByZXR1cm47CisKKyAgICAvLyBTZW5kIGJhY2sgYW4gZW1wdHkgc3RyaW5nIHRvIHRoZSBw
bHVnLWluLiBUaGlzIHdpbGwgZGlzYWJsZSB0ZXh0IGlucHV0LgorICAgIG1fcGFnZS5zZW5kQ29t
cGxleFRleHRJbnB1dFRvUGx1Z2luKG1fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIs
IFN0cmluZygpKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0UGx1Z2luQ29tcGxleFRleHRJ
bnB1dFN0YXRlQW5kSWRlbnRpZmllcihQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUgcGx1Z2lu
Q29tcGxleFRleHRJbnB1dFN0YXRlLCB1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRl
bnRpZmllcikKK3sKKyAgICBpZiAocGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIgIT0g
bV9wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcikgeworICAgICAgICAvLyBXZSdyZSBh
c2tlZCB0byB1cGRhdGUgdGhlIHN0YXRlIGZvciBhIHBsdWctaW4gdGhhdCBkb2Vzbid0IGhhdmUg
Zm9jdXMuCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBzZXRQbHVnaW5Db21wbGV4VGV4
dElucHV0U3RhdGUocGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKTsKK30KKwordm9pZCBXZWJW
aWV3SW1wbDo6ZGlzYWJsZUNvbXBsZXhUZXh0SW5wdXRJZk5lY2Vzc2FyeSgpCit7CisgICAgaWYg
KCFtX3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKQorICAgICAgICByZXR1cm47CisK
KyAgICBpZiAobV9wbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUgIT0gUGx1Z2luQ29tcGxleFRl
eHRJbnB1dEVuYWJsZWQpCisgICAgICAgIHJldHVybjsKKworICAgIC8vIENoZWNrIGlmIHRoZSB0
ZXh0IGlucHV0IHdpbmRvdyBoYXMgYmVlbiBkaXNtaXNzZWQuCisgICAgaWYgKCFbW1dLVGV4dElu
cHV0V2luZG93Q29udHJvbGxlciBzaGFyZWRUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyXSBoYXNN
YXJrZWRUZXh0XSkKKyAgICAgICAgc2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKFBsdWdp
bkNvbXBsZXhUZXh0SW5wdXREaXNhYmxlZCk7Cit9CisKK2Jvb2wgV2ViVmlld0ltcGw6OmhhbmRs
ZVBsdWdpbkNvbXBsZXhUZXh0SW5wdXRLZXlEb3duKE5TRXZlbnQgKmV2ZW50KQoreworICAgIEFT
U0VSVChtX3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKTsKKyAgICBBU1NFUlQobV9w
bHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUgIT0gUGx1Z2luQ29tcGxleFRleHRJbnB1dERpc2Fi
bGVkKTsKKworICAgIEJPT0wgdXNpbmdMZWdhY3lDb2NvYVRleHRJbnB1dCA9IG1fcGx1Z2luQ29t
cGxleFRleHRJbnB1dFN0YXRlID09IFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRFbmFibGVkTGVnYWN5
OworCisgICAgTlNTdHJpbmcgKnN0cmluZyA9IG5pbDsKKyAgICBCT09MIGRpZEhhbmRsZUV2ZW50
ID0gW1tXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIgc2hhcmVkVGV4dElucHV0V2luZG93Q29u
dHJvbGxlcl0gaW50ZXJwcmV0S2V5RXZlbnQ6ZXZlbnQgdXNpbmdMZWdhY3lDb2NvYVRleHRJbnB1
dDp1c2luZ0xlZ2FjeUNvY29hVGV4dElucHV0IHN0cmluZzomc3RyaW5nXTsKKworICAgIGlmIChz
dHJpbmcpIHsKKyAgICAgICAgbV9wYWdlLnNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4obV9w
bHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgc3RyaW5nKTsKKworICAgICAgICBpZiAo
IXVzaW5nTGVnYWN5Q29jb2FUZXh0SW5wdXQpCisgICAgICAgICAgICBtX3BsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRTdGF0ZSA9IFBsdWdpbkNvbXBsZXhUZXh0SW5wdXREaXNhYmxlZDsKKyAgICB9CisK
KyAgICByZXR1cm4gZGlkSGFuZGxlRXZlbnQ7Cit9CisKK2Jvb2wgV2ViVmlld0ltcGw6OnRyeUhh
bmRsZVBsdWdpbkNvbXBsZXhUZXh0SW5wdXRLZXlEb3duKE5TRXZlbnQgKmV2ZW50KQoreworICAg
IGlmICghbV9wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciB8fCBtX3BsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRTdGF0ZSA9PSBQbHVnaW5Db21wbGV4VGV4dElucHV0RGlzYWJsZWQpCisgICAg
ICAgIHJldHVybiBOTzsKKworICAgIC8vIENoZWNrIGlmIHRoZSB0ZXh0IGlucHV0IHdpbmRvdyBo
YXMgYmVlbiBkaXNtaXNzZWQgYW5kIGxldCB0aGUgcGx1Zy1pbiBwcm9jZXNzIGtub3cuCisgICAg
Ly8gVGhpcyBpcyBvbmx5IHZhbGlkIHdpdGggdGhlIHVwZGF0ZWQgQ29jb2EgdGV4dCBpbnB1dCBz
cGVjLgorICAgIGRpc2FibGVDb21wbGV4VGV4dElucHV0SWZOZWNlc3NhcnkoKTsKKworICAgIC8v
IFRyeSBmZWVkaW5nIHRoZSBrZXlib2FyZCBldmVudCBkaXJlY3RseSB0byB0aGUgcGx1Zy1pbi4K
KyAgICBpZiAobV9wbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUgPT0gUGx1Z2luQ29tcGxleFRl
eHRJbnB1dEVuYWJsZWRMZWdhY3kpCisgICAgICAgIHJldHVybiBoYW5kbGVQbHVnaW5Db21wbGV4
VGV4dElucHV0S2V5RG93bihldmVudCk7CisKKyAgICByZXR1cm4gTk87Cit9CisKK3ZvaWQgV2Vi
Vmlld0ltcGw6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQoYm9vbCBwbHVnaW5IYXNG
b2N1c0FuZFdpbmRvd0hhc0ZvY3VzLCB1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRl
bnRpZmllcikKK3sKKyAgICBCT09MIGlucHV0U291cmNlQ2hhbmdlZCA9IG1fcGx1Z2luQ29tcGxl
eFRleHRJbnB1dElkZW50aWZpZXI7CisKKyAgICBpZiAocGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dI
YXNGb2N1cykgeworICAgICAgICAvLyBDaGVjayBpZiB3ZSdyZSBhbHJlYWR5IGFsbG93aW5nIHRl
eHQgaW5wdXQgZm9yIHRoaXMgcGx1Zy1pbi4KKyAgICAgICAgaWYgKHBsdWdpbkNvbXBsZXhUZXh0
SW5wdXRJZGVudGlmaWVyID09IG1fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIpCisg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV9wbHVnaW5Db21wbGV4VGV4dElucHV0SWRl
bnRpZmllciA9IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyOworCisgICAgfSBlbHNl
IHsKKyAgICAgICAgLy8gQ2hlY2sgaWYgd2UgZ290IGEgcmVxdWVzdCB0byB1bmZvY3VzIGEgcGx1
Zy1pbiB0aGF0IGlzbid0IGZvY3VzZWQuCisgICAgICAgIGlmIChwbHVnaW5Db21wbGV4VGV4dElu
cHV0SWRlbnRpZmllciAhPSBtX3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKQorICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgIG1fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50
aWZpZXIgPSAwOworICAgIH0KKworICAgIGlmIChpbnB1dFNvdXJjZUNoYW5nZWQpIHsKKyAgICAg
ICAgLy8gVGhlIGlucHV0IHNvdXJjZSBjaGFuZ2VkOyBkaXNjYXJkIGFueSBlbnRlcmVkIHRleHQu
CisgICAgICAgIFtbV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyIHNoYXJlZFRleHRJbnB1dFdp
bmRvd0NvbnRyb2xsZXJdIHVubWFya1RleHRdOworICAgIH0KKyAgICAKKyAgICAvLyBUaGlzIHdp
bGwgZm9yY2UgdGhlIGN1cnJlbnQgaW5wdXQgY29udGV4dCB0byBiZSB1cGRhdGVkIHRvIGl0cyBj
b3JyZWN0IHZhbHVlLgorICAgIFtOU0FwcCB1cGRhdGVXaW5kb3dzXTsKK30KKworYm9vbCBXZWJW
aWV3SW1wbDo6dHJ5UG9zdFByb2Nlc3NQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bihOU0V2
ZW50ICpldmVudCkKK3sKKyAgICBpZiAoIW1fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZp
ZXIgfHwgbV9wbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUgPT0gUGx1Z2luQ29tcGxleFRleHRJ
bnB1dERpc2FibGVkKQorICAgICAgICByZXR1cm4gTk87CisKKyAgICAvLyBJbiB0aGUgbGVnYWN5
IHRleHQgaW5wdXQgbW9kZWwsIHRoZSBldmVudCBoYXMgYWxyZWFkeSBiZWVuIHNlbnQgdG8gdGhl
IGlucHV0IG1ldGhvZC4KKyAgICBpZiAobV9wbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUgPT0g
UGx1Z2luQ29tcGxleFRleHRJbnB1dEVuYWJsZWRMZWdhY3kpCisgICAgICAgIHJldHVybiBOTzsK
KworICAgIHJldHVybiBoYW5kbGVQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bihldmVudCk7
Cit9CisKIHZvaWQgV2ViVmlld0ltcGw6OnByZXNzdXJlQ2hhbmdlV2l0aEV2ZW50KE5TRXZlbnQg
KmV2ZW50KQogewogI2lmIGRlZmluZWQoX19MUDY0X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9N
QVhfQUxMT1dFRCA+PSAxMDEwMDMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsLm1tCmluZGV4IGMyZjdlN2Q2M2QwMjU0NzUzYjkyZDVlYTgyZTBjZWRmZDhj
Y2JkNjEuLjAyMzRlZTU4MTk1M2FkOTE3M2JiYWExMWFkN2YzZDYyZjA4ODhiMzEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQpAQCAtNTM2LDEy
ICs1MzYsMTIgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6Z2VzdHVyZUV2ZW50V2FzTm90SGFuZGxl
ZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJHZXN0dXJlRXYKIAogdm9pZCBQYWdlQ2xpZW50SW1w
bDo6cGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4
VGV4dElucHV0SWRlbnRpZmllciwgYm9vbCBwbHVnaW5IYXNGb2N1c0FuZFdpbmRvd0hhc0ZvY3Vz
KQogewotICAgIFttX3drVmlldyBfcGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZDpwbHVn
aW5IYXNGb2N1c0FuZFdpbmRvd0hhc0ZvY3VzIHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyOnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyXTsKKyAgICBtX2ltcGwtPnBsdWdp
bkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQocGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1
cywgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIpOwogfQogCiB2b2lkIFBhZ2VDbGll
bnRJbXBsOjpzZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUodWludDY0X3QgcGx1Z2luQ29t
cGxleFRleHRJbnB1dElkZW50aWZpZXIsIFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSBwbHVn
aW5Db21wbGV4VGV4dElucHV0U3RhdGUpCiB7Ci0gICAgW21fd2tWaWV3IF9zZXRQbHVnaW5Db21w
bGV4VGV4dElucHV0U3RhdGU6cGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlIHBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRJZGVudGlmaWVyOnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyXTsK
KyAgICBtX2ltcGwtPnNldFBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZUFuZElkZW50aWZpZXIo
cGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlLCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRp
Zmllcik7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9v
a3VwKGNvbnN0IERpY3Rpb25hcnlQb3B1cEluZm8mIGRpY3Rpb25hcnlQb3B1cEluZm8pCg==
</data>
<flag name="review"
          id="289046"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264060</attachid>
            <date>2015-10-26 12:15:53 -0700</date>
            <delta_ts>2015-10-26 15:53:07 -0700</delta_ts>
            <desc>Part 6 - dragging</desc>
            <filename>bug-150174-20151026121505.patch</filename>
            <type>text/plain</type>
            <size>21832</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTkxNTg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMWVmMzcxMTFjNzIzYWZl
NjVkYThmYWFiOTcyMzVjMDc3ODEzMGE2Yi4uZWYzZTMwZGIzNGVlYzI2MzQ1ODM0MjhmODVjOTA2
YjFhNDUyMTM4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE1LTEwLTI2ICBUaW0g
SG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFdLVmlldyBiZWlu
ZyBpbnNpZGUgV0tXZWJWaWV3IGxlYWRzIHRvIHdlaXJkIEFQSSBpc3N1ZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE3NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgbW91c2VEb3duOl0pOgorICAgICAgICAoLVtX
S1ZpZXcgbW91c2VEcmFnZ2VkOl0pOgorICAgICAgICAoLVtXS1ZpZXcgZHJhZ2dlZEltYWdlOmVu
ZGVkQXQ6b3BlcmF0aW9uOl0pOgorICAgICAgICAoLVtXS1ZpZXcgZHJhZ2dpbmdFbnRlcmVkOl0p
OgorICAgICAgICAoLVtXS1ZpZXcgZHJhZ2dpbmdVcGRhdGVkOl0pOgorICAgICAgICAoLVtXS1Zp
ZXcgZHJhZ2dpbmdFeGl0ZWQ6XSk6CisgICAgICAgICgtW1dLVmlldyBwcmVwYXJlRm9yRHJhZ09w
ZXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tWaWV3IHBlcmZvcm1EcmFnT3BlcmF0aW9uOl0pOgor
ICAgICAgICAoLVtXS1ZpZXcgX2hpdFRlc3Q6ZHJhZ1R5cGVzOl0pOgorICAgICAgICAoLVtXS1Zp
ZXcgaW5pdFdpdGhGcmFtZTpwcm9jZXNzUG9vbDpjb25maWd1cmF0aW9uOndlYlZpZXc6XSk6Cisg
ICAgICAgICgtW1dLVmlldyBhcHBsaWNhdGlvbkZsYWdzOl0pOiBEZWxldGVkLgorICAgICAgICAo
bWF5YmVDcmVhdGVTYW5kYm94RXh0ZW5zaW9uRnJvbVBhc3RlYm9hcmQpOiBEZWxldGVkLgorICAg
ICAgICAoY3JlYXRlU2FuZGJveEV4dGVuc2lvbnNGb3JGaWxlVXBsb2FkKTogRGVsZXRlZC4KKyAg
ICAgICAgKC1bV0tWaWV3IF9yZWdpc3RlckRyYWdnZWRUeXBlc10pOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6aWdub3Jlc01vdXNlRHJhZ2dlZEV2ZW50cyk6CisgICAgICAgICogVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0
SWdub3Jlc01vdXNlRHJhZ2dlZEV2ZW50cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpkcmFnZ2VkSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjphcHBsaWNhdGlvbkZsYWdzRm9yRHJh
Zyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkcmFnZ2luZ0VudGVyZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZHJhZ2dpbmdVcGRhdGVkKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmRyYWdnaW5nRXhpdGVkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OnByZXBhcmVGb3JEcmFnT3BlcmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6bWF5
YmVDcmVhdGVTYW5kYm94RXh0ZW5zaW9uRnJvbVBhc3RlYm9hcmQpOgorICAgICAgICAoV2ViS2l0
OjpjcmVhdGVTYW5kYm94RXh0ZW5zaW9uc0ZvckZpbGVVcGxvYWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6cGVyZm9ybURyYWdPcGVyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6aGl0VGVzdEZvckRyYWdUeXBlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpyZWdpc3RlckRyYWdnZWRUeXBlcyk6CisgICAgICAgIE1vdmUgc29tZSBkcmFnLXJl
bGF0ZWQgdGhpbmdzIHRvIFdlYlZpZXdJbXBsLgorCiAyMDE1LTEwLTI1ICBDYXJsb3MgR2FyY2lh
IENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLiBGaXgg
R1RLKyBidWlsZCBhZnRlciByMTkxNTQzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tWaWV3Lm1tCmluZGV4IDZlYjg3YmI3ZWEwMTg2ZjAxMjdkZDNkNjcxNmVhNmEyNzliOTQx
MjkuLmRlMjZiNzVjOGViOGNhN2U4NGQ0ZThmODZiNmM1MmIzMjNkZjhiYjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTE5NCw3ICsxOTQsNiBAQCBz
dHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiAKICAgICBCT09MIF93
aWxsQmVjb21lRmlyc3RSZXNwb25kZXJBZ2FpbjsKICAgICBOU0V2ZW50ICpfbW91c2VEb3duRXZl
bnQ7Ci0gICAgQk9PTCBfaWdub3JpbmdNb3VzZURyYWdnZWRFdmVudHM7CiAKICAgICBCT09MIF9o
YXNTcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKICAgICBOU0ludGVnZXIgX3NwZWxsQ2hlY2tlckRv
Y3VtZW50VGFnOwpAQCAtMTA3Myw3ICsxMDcyLDcgQEAgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRM
RVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCiAgICAgICAgIHJldHVybjsKIAogICAg
IFtzZWxmIF9zZXRNb3VzZURvd25FdmVudDpldmVudF07Ci0gICAgX2RhdGEtPl9pZ25vcmluZ01v
dXNlRHJhZ2dlZEV2ZW50cyA9IE5POworICAgIF9kYXRhLT5faW1wbC0+c2V0SWdub3Jlc01vdXNl
RHJhZ2dlZEV2ZW50cyhmYWxzZSk7CiAKICAgICBbc2VsZiBtb3VzZURvd25JbnRlcm5hbDpldmVu
dF07CiB9CkBAIC0xMDkxLDkgKzEwOTAsOSBAQCBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUl9J
TlRFUk5BTChtb3VzZURyYWdnZWRJbnRlcm5hbCkKIHsKICAgICBpZiAoX2RhdGEtPl9pbXBsLT5p
Z25vcmVzTm9uV2hlZWxFdmVudHMoKSkKICAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKF9kYXRh
LT5faWdub3JpbmdNb3VzZURyYWdnZWRFdmVudHMpCisgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdu
b3Jlc01vdXNlRHJhZ2dlZEV2ZW50cygpKQogICAgICAgICByZXR1cm47CisKICAgICBbc2VsZiBt
b3VzZURyYWdnZWRJbnRlcm5hbDpldmVudF07CiB9CiAKQEAgLTIxMTAsMTQ0ICsyMTA5LDM5IEBA
IHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5n
LCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiB9CiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQot
LSAodm9pZClkcmFnZ2VkSW1hZ2U6KE5TSW1hZ2UgKilhbkltYWdlIGVuZGVkQXQ6KE5TUG9pbnQp
YVBvaW50IG9wZXJhdGlvbjooTlNEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbgorLSAodm9pZClkcmFn
Z2VkSW1hZ2U6KE5TSW1hZ2UgKilpbWFnZSBlbmRlZEF0OihOU1BvaW50KWVuZFBvaW50IG9wZXJh
dGlvbjooTlNEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbgogewotICAgIE5TUG9pbnQgd2luZG93SW1h
Z2VMb2MgPSBbW3NlbGYgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOmFQb2ludF07Ci0gICAg
TlNQb2ludCB3aW5kb3dNb3VzZUxvYyA9IHdpbmRvd0ltYWdlTG9jOwotICAgCi0gICAgLy8gUHJl
dmVudCBxdWV1ZWQgbW91c2VEcmFnZ2VkIGV2ZW50cyBmcm9tIGNvbWluZyBhZnRlciB0aGUgZHJh
ZyBhbmQgZmFrZSBtb3VzZVVwIGV2ZW50LgotICAgIF9kYXRhLT5faWdub3JpbmdNb3VzZURyYWdn
ZWRFdmVudHMgPSBZRVM7Ci0gICAgCi0gICAgX2RhdGEtPl9wYWdlLT5kcmFnRW5kZWQoSW50UG9p
bnQod2luZG93TW91c2VMb2MpLCBnbG9iYWxQb2ludCh3aW5kb3dNb3VzZUxvYywgW3NlbGYgd2lu
ZG93XSksIG9wZXJhdGlvbik7Ci19Ci0KLS0gKERyYWdBcHBsaWNhdGlvbkZsYWdzKWFwcGxpY2F0
aW9uRmxhZ3M6KGlkIDxOU0RyYWdnaW5nSW5mbz4pZHJhZ2dpbmdJbmZvCi17Ci0gICAgdWludDMy
X3QgZmxhZ3MgPSAwOwotICAgIGlmIChbTlNBcHAgbW9kYWxXaW5kb3ddKQotICAgICAgICBmbGFn
cyA9IERyYWdBcHBsaWNhdGlvbklzTW9kYWw7Ci0gICAgaWYgKFtbc2VsZiB3aW5kb3ddIGF0dGFj
aGVkU2hlZXRdKQotICAgICAgICBmbGFncyB8PSBEcmFnQXBwbGljYXRpb25IYXNBdHRhY2hlZFNo
ZWV0OwotICAgIGlmIChbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nU291cmNlXSA9PSBzZWxmKQotICAg
ICAgICBmbGFncyB8PSBEcmFnQXBwbGljYXRpb25Jc1NvdXJjZTsKLSAgICBpZiAoW1tOU0FwcCBj
dXJyZW50RXZlbnRdIG1vZGlmaWVyRmxhZ3NdICYgTlNBbHRlcm5hdGVLZXlNYXNrKQotICAgICAg
ICBmbGFncyB8PSBEcmFnQXBwbGljYXRpb25Jc0NvcHlLZXlEb3duOwotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxEcmFnQXBwbGljYXRpb25GbGFncz4oZmxhZ3MpOworICAgIF9kYXRhLT5faW1wbC0+
ZHJhZ2dlZEltYWdlKGltYWdlLCBOU1BvaW50VG9DR1BvaW50KGVuZFBvaW50KSwgb3BlcmF0aW9u
KTsKIH0KIAogLSAoTlNEcmFnT3BlcmF0aW9uKWRyYWdnaW5nRW50ZXJlZDooaWQgPE5TRHJhZ2dp
bmdJbmZvPilkcmFnZ2luZ0luZm8KIHsKLSAgICBJbnRQb2ludCBjbGllbnQoW3NlbGYgY29udmVy
dFBvaW50OltkcmFnZ2luZ0luZm8gZHJhZ2dpbmdMb2NhdGlvbl0gZnJvbVZpZXc6bmlsXSk7Ci0g
ICAgSW50UG9pbnQgZ2xvYmFsKGdsb2JhbFBvaW50KFtkcmFnZ2luZ0luZm8gZHJhZ2dpbmdMb2Nh
dGlvbl0sIFtzZWxmIHdpbmRvd10pKTsKLSAgICBEcmFnRGF0YSBkcmFnRGF0YShkcmFnZ2luZ0lu
Zm8sIGNsaWVudCwgZ2xvYmFsLCBzdGF0aWNfY2FzdDxEcmFnT3BlcmF0aW9uPihbZHJhZ2dpbmdJ
bmZvIGRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFza10pLCBbc2VsZiBhcHBsaWNhdGlvbkZsYWdz
OmRyYWdnaW5nSW5mb10pOwotCi0gICAgX2RhdGEtPl9wYWdlLT5yZXNldEN1cnJlbnREcmFnSW5m
b3JtYXRpb24oKTsKLSAgICBfZGF0YS0+X3BhZ2UtPmRyYWdFbnRlcmVkKGRyYWdEYXRhLCBbW2Ry
YWdnaW5nSW5mbyBkcmFnZ2luZ1Bhc3RlYm9hcmRdIG5hbWVdKTsKLSAgICByZXR1cm4gTlNEcmFn
T3BlcmF0aW9uQ29weTsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5kcmFnZ2luZ0VudGVyZWQo
ZHJhZ2dpbmdJbmZvKTsKIH0KIAogLSAoTlNEcmFnT3BlcmF0aW9uKWRyYWdnaW5nVXBkYXRlZDoo
aWQgPE5TRHJhZ2dpbmdJbmZvPilkcmFnZ2luZ0luZm8KIHsKLSAgICBJbnRQb2ludCBjbGllbnQo
W3NlbGYgY29udmVydFBvaW50OltkcmFnZ2luZ0luZm8gZHJhZ2dpbmdMb2NhdGlvbl0gZnJvbVZp
ZXc6bmlsXSk7Ci0gICAgSW50UG9pbnQgZ2xvYmFsKGdsb2JhbFBvaW50KFtkcmFnZ2luZ0luZm8g
ZHJhZ2dpbmdMb2NhdGlvbl0sIFtzZWxmIHdpbmRvd10pKTsKLSAgICBEcmFnRGF0YSBkcmFnRGF0
YShkcmFnZ2luZ0luZm8sIGNsaWVudCwgZ2xvYmFsLCBzdGF0aWNfY2FzdDxEcmFnT3BlcmF0aW9u
PihbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFza10pLCBbc2VsZiBhcHBs
aWNhdGlvbkZsYWdzOmRyYWdnaW5nSW5mb10pOwotICAgIF9kYXRhLT5fcGFnZS0+ZHJhZ1VwZGF0
ZWQoZHJhZ0RhdGEsIFtbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nUGFzdGVib2FyZF0gbmFtZV0pOwot
ICAgIAotICAgIE5TSW50ZWdlciBudW1iZXJPZlZhbGlkSXRlbXNGb3JEcm9wID0gX2RhdGEtPl9w
YWdlLT5jdXJyZW50RHJhZ051bWJlck9mRmlsZXNUb0JlQWNjZXB0ZWQoKTsKLSAgICBOU0RyYWdn
aW5nRm9ybWF0aW9uIGRyYWdnaW5nRm9ybWF0aW9uID0gTlNEcmFnZ2luZ0Zvcm1hdGlvbk5vbmU7
Ci0gICAgaWYgKF9kYXRhLT5fcGFnZS0+Y3VycmVudERyYWdJc092ZXJGaWxlSW5wdXQoKSAmJiBu
dW1iZXJPZlZhbGlkSXRlbXNGb3JEcm9wID4gMCkKLSAgICAgICAgZHJhZ2dpbmdGb3JtYXRpb24g
PSBOU0RyYWdnaW5nRm9ybWF0aW9uTGlzdDsKLQotICAgIGlmIChbZHJhZ2dpbmdJbmZvIG51bWJl
ck9mVmFsaWRJdGVtc0ZvckRyb3BdICE9IG51bWJlck9mVmFsaWRJdGVtc0ZvckRyb3ApCi0gICAg
ICAgIFtkcmFnZ2luZ0luZm8gc2V0TnVtYmVyT2ZWYWxpZEl0ZW1zRm9yRHJvcDpudW1iZXJPZlZh
bGlkSXRlbXNGb3JEcm9wXTsKLSAgICBpZiAoW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ0Zvcm1hdGlv
bl0gIT0gZHJhZ2dpbmdGb3JtYXRpb24pCi0gICAgICAgIFtkcmFnZ2luZ0luZm8gc2V0RHJhZ2dp
bmdGb3JtYXRpb246ZHJhZ2dpbmdGb3JtYXRpb25dOwotCi0gICAgcmV0dXJuIF9kYXRhLT5fcGFn
ZS0+Y3VycmVudERyYWdPcGVyYXRpb24oKTsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5kcmFn
Z2luZ1VwZGF0ZWQoZHJhZ2dpbmdJbmZvKTsKIH0KIAogLSAodm9pZClkcmFnZ2luZ0V4aXRlZDoo
aWQgPE5TRHJhZ2dpbmdJbmZvPilkcmFnZ2luZ0luZm8KIHsKLSAgICBJbnRQb2ludCBjbGllbnQo
W3NlbGYgY29udmVydFBvaW50OltkcmFnZ2luZ0luZm8gZHJhZ2dpbmdMb2NhdGlvbl0gZnJvbVZp
ZXc6bmlsXSk7Ci0gICAgSW50UG9pbnQgZ2xvYmFsKGdsb2JhbFBvaW50KFtkcmFnZ2luZ0luZm8g
ZHJhZ2dpbmdMb2NhdGlvbl0sIFtzZWxmIHdpbmRvd10pKTsKLSAgICBEcmFnRGF0YSBkcmFnRGF0
YShkcmFnZ2luZ0luZm8sIGNsaWVudCwgZ2xvYmFsLCBzdGF0aWNfY2FzdDxEcmFnT3BlcmF0aW9u
PihbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFza10pLCBbc2VsZiBhcHBs
aWNhdGlvbkZsYWdzOmRyYWdnaW5nSW5mb10pOwotICAgIF9kYXRhLT5fcGFnZS0+ZHJhZ0V4aXRl
ZChkcmFnRGF0YSwgW1tkcmFnZ2luZ0luZm8gZHJhZ2dpbmdQYXN0ZWJvYXJkXSBuYW1lXSk7Ci0g
ICAgX2RhdGEtPl9wYWdlLT5yZXNldEN1cnJlbnREcmFnSW5mb3JtYXRpb24oKTsKKyAgICBfZGF0
YS0+X2ltcGwtPmRyYWdnaW5nRXhpdGVkKGRyYWdnaW5nSW5mbyk7CiB9CiAKIC0gKEJPT0wpcHJl
cGFyZUZvckRyYWdPcGVyYXRpb246KGlkIDxOU0RyYWdnaW5nSW5mbz4pZHJhZ2dpbmdJbmZvCiB7
Ci0gICAgcmV0dXJuIFlFUzsKLX0KLQotLy8gRklYTUU6IFRoaXMgY29kZSBpcyBtb3JlIG9yIGxl
c3MgY29waWVkIGZyb20gUGFzdGVib2FyZDo6Z2V0QmVzdFVSTC4KLS8vIEl0IHdvdWxkIGJlIG5p
Y2UgdG8gYmUgYWJsZSB0byBzaGFyZSB0aGUgY29kZSBzb21laG93Lgotc3RhdGljIGJvb2wgbWF5
YmVDcmVhdGVTYW5kYm94RXh0ZW5zaW9uRnJvbVBhc3RlYm9hcmQoTlNQYXN0ZWJvYXJkICpwYXN0
ZWJvYXJkLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRib3hFeHRlbnNpb25IYW5kbGUp
Ci17Ci0gICAgTlNBcnJheSAqdHlwZXMgPSBbcGFzdGVib2FyZCB0eXBlc107Ci0gICAgaWYgKCFb
dHlwZXMgY29udGFpbnNPYmplY3Q6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgTlNBcnJheSAqZmlsZXMgPSBbcGFzdGVib2FyZCBwcm9wZXJ0eUxp
c3RGb3JUeXBlOk5TRmlsZW5hbWVzUGJvYXJkVHlwZV07Ci0gICAgaWYgKFtmaWxlcyBjb3VudF0g
IT0gMSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgTlNTdHJpbmcgKmZpbGUgPSBbZmls
ZXMgb2JqZWN0QXRJbmRleDowXTsKLSAgICBCT09MIGlzRGlyZWN0b3J5OwotICAgIGlmICghW1tO
U0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmZpbGUgaXNEaXJl
Y3Rvcnk6JmlzRGlyZWN0b3J5XSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKGlz
RGlyZWN0b3J5KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBTYW5kYm94RXh0ZW5zaW9u
OjpjcmVhdGVIYW5kbGUoIi8iLCBTYW5kYm94RXh0ZW5zaW9uOjpSZWFkT25seSwgc2FuZGJveEV4
dGVuc2lvbkhhbmRsZSk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KLXN0YXRpYyB2b2lkIGNyZWF0
ZVNhbmRib3hFeHRlbnNpb25zRm9yRmlsZVVwbG9hZChOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQs
IFNhbmRib3hFeHRlbnNpb246OkhhbmRsZUFycmF5JiBoYW5kbGVzKQotewotICAgIE5TQXJyYXkg
KnR5cGVzID0gW3Bhc3RlYm9hcmQgdHlwZXNdOwotICAgIGlmICghW3R5cGVzIGNvbnRhaW5zT2Jq
ZWN0Ok5TRmlsZW5hbWVzUGJvYXJkVHlwZV0pCi0gICAgICAgIHJldHVybjsKLQotICAgIE5TQXJy
YXkgKmZpbGVzID0gW3Bhc3RlYm9hcmQgcHJvcGVydHlMaXN0Rm9yVHlwZTpOU0ZpbGVuYW1lc1Bi
b2FyZFR5cGVdOwotICAgIGhhbmRsZXMuYWxsb2NhdGUoW2ZpbGVzIGNvdW50XSk7Ci0gICAgZm9y
ICh1bnNpZ25lZCBpID0gMDsgaSA8IFtmaWxlcyBjb3VudF07IGkrKykgewotICAgICAgICBOU1N0
cmluZyAqZmlsZSA9IFtmaWxlcyBvYmplY3RBdEluZGV4OmldOwotICAgICAgICBpZiAoIVtbTlNG
aWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gZmlsZUV4aXN0c0F0UGF0aDpmaWxlXSkKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgaGFuZGxl
OwotICAgICAgICBTYW5kYm94RXh0ZW5zaW9uOjpjcmVhdGVIYW5kbGUoZmlsZSwgU2FuZGJveEV4
dGVuc2lvbjo6UmVhZE9ubHksIGhhbmRsZXNbaV0pOwotICAgIH0KKyAgICByZXR1cm4gX2RhdGEt
Pl9pbXBsLT5wcmVwYXJlRm9yRHJhZ09wZXJhdGlvbihkcmFnZ2luZ0luZm8pOwogfQogCiAtIChC
T09MKXBlcmZvcm1EcmFnT3BlcmF0aW9uOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5m
bwogewotICAgIEludFBvaW50IGNsaWVudChbc2VsZiBjb252ZXJ0UG9pbnQ6W2RyYWdnaW5nSW5m
byBkcmFnZ2luZ0xvY2F0aW9uXSBmcm9tVmlldzpuaWxdKTsKLSAgICBJbnRQb2ludCBnbG9iYWwo
Z2xvYmFsUG9pbnQoW2RyYWdnaW5nSW5mbyBkcmFnZ2luZ0xvY2F0aW9uXSwgW3NlbGYgd2luZG93
XSkpOwotICAgIERyYWdEYXRhIGRyYWdEYXRhKGRyYWdnaW5nSW5mbywgY2xpZW50LCBnbG9iYWws
IHN0YXRpY19jYXN0PERyYWdPcGVyYXRpb24+KFtkcmFnZ2luZ0luZm8gZHJhZ2dpbmdTb3VyY2VP
cGVyYXRpb25NYXNrXSksIFtzZWxmIGFwcGxpY2F0aW9uRmxhZ3M6ZHJhZ2dpbmdJbmZvXSk7Ci0K
LSAgICBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZTsKLSAg
ICBib29sIGNyZWF0ZWRFeHRlbnNpb24gPSBtYXliZUNyZWF0ZVNhbmRib3hFeHRlbnNpb25Gcm9t
UGFzdGVib2FyZChbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nUGFzdGVib2FyZF0sIHNhbmRib3hFeHRl
bnNpb25IYW5kbGUpOwotICAgIGlmIChjcmVhdGVkRXh0ZW5zaW9uKQotICAgICAgICBfZGF0YS0+
X3BhZ2UtPnByb2Nlc3MoKS53aWxsQWNxdWlyZVVuaXZlcnNhbEZpbGVSZWFkU2FuZGJveEV4dGVu
c2lvbigpOwotCi0gICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgc2FuZGJveEV4dGVu
c2lvbkZvclVwbG9hZDsKLSAgICBjcmVhdGVTYW5kYm94RXh0ZW5zaW9uc0ZvckZpbGVVcGxvYWQo
W2RyYWdnaW5nSW5mbyBkcmFnZ2luZ1Bhc3RlYm9hcmRdLCBzYW5kYm94RXh0ZW5zaW9uRm9yVXBs
b2FkKTsKLQotICAgIF9kYXRhLT5fcGFnZS0+cGVyZm9ybURyYWdPcGVyYXRpb24oZHJhZ0RhdGEs
IFtbZHJhZ2dpbmdJbmZvIGRyYWdnaW5nUGFzdGVib2FyZF0gbmFtZV0sIHNhbmRib3hFeHRlbnNp
b25IYW5kbGUsIHNhbmRib3hFeHRlbnNpb25Gb3JVcGxvYWQpOwotCi0gICAgcmV0dXJuIFlFUzsK
KyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5wZXJmb3JtRHJhZ09wZXJhdGlvbihkcmFnZ2luZ0lu
Zm8pOwogfQogCi0vLyBUaGlzIGNvZGUgaXMgbmVlZGVkIHRvIHN1cHBvcnQgZHJhZyBhbmQgZHJv
cCB3aGVuIHRoZSBkcmFnIHR5cGVzIGNhbm5vdCBiZSBtYXRjaGVkLgotLy8gVGhpcyBpcyB0aGUg
Y2FzZSBmb3IgZWxlbWVudHMgdGhhdCBkbyBub3QgcGxhY2UgY29udGVudAotLy8gaW4gdGhlIGRy
YWcgcGFzdGVib2FyZCBhdXRvbWF0aWNhbGx5IHdoZW4gdGhlIGRyYWcgc3RhcnQgKGkuZS4gZHJh
Z2dpbmcgYSBESVYgZWxlbWVudCkuCiAtIChOU1ZpZXcgKilfaGl0VGVzdDooTlNQb2ludCAqKXBv
aW50IGRyYWdUeXBlczooTlNTZXQgKil0eXBlcwogewotICAgIGlmIChbW3NlbGYgc3VwZXJ2aWV3
XSBtb3VzZToqcG9pbnQgaW5SZWN0OltzZWxmIGZyYW1lXV0pCi0gICAgICAgIHJldHVybiBzZWxm
OwotICAgIHJldHVybiBuaWw7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+aGl0VGVzdEZvckRy
YWdUeXBlcyhOU1BvaW50VG9DR1BvaW50KCpwb2ludCksIHR5cGVzKTsKIH0KICNlbmRpZiAvLyBF
TkFCTEUoRFJBR19TVVBQT1JUKQogCkBAIC0yODU5LDEwICsyNzUzLDkgQEAgc3RhdGljIE5TU3Ry
aW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKICAgICBf
ZGF0YS0+X3BhZ2UtPmluaXRpYWxpemVXZWJQYWdlKCk7CiAKICAgICBfZGF0YS0+X21vdXNlRG93
bkV2ZW50ID0gbmlsOwotICAgIF9kYXRhLT5faWdub3JpbmdNb3VzZURyYWdnZWRFdmVudHMgPSBO
TzsKICAgICBfZGF0YS0+X3dpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQgPSBZRVM7CiAK
LSAgICBbc2VsZiBfcmVnaXN0ZXJEcmFnZ2VkVHlwZXNdOworICAgIF9kYXRhLT5faW1wbC0+cmVn
aXN0ZXJEcmFnZ2VkVHlwZXMoKTsKIAogICAgIHNlbGYud2FudHNMYXllciA9IFlFUzsKIApAQCAt
Mjg3NywxNCArMjc3MCw2IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFt
ZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKLS0gKHZvaWQp
X3JlZ2lzdGVyRHJhZ2dlZFR5cGVzCi17Ci0gICAgTlNNdXRhYmxlU2V0ICp0eXBlcyA9IFtbTlNN
dXRhYmxlU2V0IGFsbG9jXSBpbml0V2l0aEFycmF5OlBhc3RlYm9hcmRUeXBlczo6Zm9yRWRpdGlu
ZygpXTsKLSAgICBbdHlwZXMgYWRkT2JqZWN0c0Zyb21BcnJheTpQYXN0ZWJvYXJkVHlwZXM6OmZv
clVSTCgpXTsKLSAgICBbc2VsZiByZWdpc3RlckZvckRyYWdnZWRUeXBlczpbdHlwZXMgYWxsT2Jq
ZWN0c11dOwotICAgIFt0eXBlcyByZWxlYXNlXTsKLX0KLQogI2lmIFdLX0FQSV9FTkFCTEVECiAt
ICh2b2lkKV9zZXRUaHVtYm5haWxWaWV3OihfV0tUaHVtYm5haWxWaWV3ICopdGh1bWJuYWlsVmll
dwogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRl
eCAzYjc5MmM2Mjg5NGI3Y2JiMTNiMDI2NDZlOGJhMWE1MDgzZDBkZGRhLi5hNjliYmE5ODJkYWZm
ZDNhMDA2NGM5NTgzNDQwNTc1MzQ0NWQzZGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtMjE3LDYgKzIxNyw4IEBAIHB1YmxpYzoKICAgICBi
b29sIGlnbm9yZXNOb25XaGVlbEV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1faWdub3Jlc05vbldo
ZWVsRXZlbnRzOyB9CiAgICAgdm9pZCBzZXRJZ25vcmVzQWxsRXZlbnRzKGJvb2wpOwogICAgIGJv
b2wgaWdub3Jlc0FsbEV2ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1faWdub3Jlc0FsbEV2ZW50czsg
fQorICAgIHZvaWQgc2V0SWdub3Jlc01vdXNlRHJhZ2dlZEV2ZW50cyhib29sKTsKKyAgICBib29s
IGlnbm9yZXNNb3VzZURyYWdnZWRFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX2lnbm9yZXNNb3Vz
ZURyYWdnZWRFdmVudHM7IH0KIAogICAgIHZvaWQgYWNjZXNzaWJpbGl0eVJlZ2lzdGVyVUlQcm9j
ZXNzVG9rZW5zKCk7CiAKQEAgLTIzNyw2ICsyMzksMTcgQEAgcHVibGljOgogICAgIF9XS1RodW1i
bmFpbFZpZXcgKnRodW1ibmFpbFZpZXcoKSBjb25zdCB7IHJldHVybiBtX3RodW1ibmFpbFZpZXc7
IH0KICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRAogCisjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkK
KyAgICB2b2lkIGRyYWdnZWRJbWFnZShOU0ltYWdlICosIENHUG9pbnQgZW5kUG9pbnQsIE5TRHJh
Z09wZXJhdGlvbik7CisgICAgTlNEcmFnT3BlcmF0aW9uIGRyYWdnaW5nRW50ZXJlZChpZCA8TlNE
cmFnZ2luZ0luZm8+KTsKKyAgICBOU0RyYWdPcGVyYXRpb24gZHJhZ2dpbmdVcGRhdGVkKGlkIDxO
U0RyYWdnaW5nSW5mbz4pOworICAgIHZvaWQgZHJhZ2dpbmdFeGl0ZWQoaWQgPE5TRHJhZ2dpbmdJ
bmZvPik7CisgICAgYm9vbCBwcmVwYXJlRm9yRHJhZ09wZXJhdGlvbihpZCA8TlNEcmFnZ2luZ0lu
Zm8+KTsKKyAgICBib29sIHBlcmZvcm1EcmFnT3BlcmF0aW9uKGlkIDxOU0RyYWdnaW5nSW5mbz4p
OworICAgIE5TVmlldyAqaGl0VGVzdEZvckRyYWdUeXBlcyhDR1BvaW50LCBOU1NldCAqdHlwZXMp
OworICAgIHZvaWQgcmVnaXN0ZXJEcmFnZ2VkVHlwZXMoKTsKKyNlbmRpZgorCiBwcml2YXRlOgog
ICAgIFdlYWtQdHI8V2ViVmlld0ltcGw+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQ
dHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQogCkBAIC0zMTMsNiArMzI2LDcgQEAgcHJpdmF0
ZToKIAogICAgIGJvb2wgbV9pZ25vcmVzTm9uV2hlZWxFdmVudHMgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9pZ25vcmVzQWxsRXZlbnRzIHsgZmFsc2UgfTsKKyAgICBib29sIG1faWdub3Jlc01vdXNl
RHJhZ2dlZEV2ZW50cyB7IGZhbHNlIH07CiAKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTAwMAogICAgIFJldGFpblB0cjxXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xs
ZXI+IG1faW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA1NTcwZDdiZTg3ODk4MjgwNDU1NzQxODcw
NjIzMzdiNjBlYzczNmRhLi4wYzZkOTI0MTA3MjIyYzZlOWM0OWJiNzlkYjM0ZDAyZGJmNDE4OGM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBA
IC0zNCw2ICszNCw3IEBACiAjaW1wb3J0ICJOYXRpdmVXZWJLZXlib2FyZEV2ZW50LmgiCiAjaW1w
b3J0ICJOYXRpdmVXZWJNb3VzZUV2ZW50LmgiCiAjaW1wb3J0ICJQYWdlQ2xpZW50LmgiCisjaW1w
b3J0ICJQYXN0ZWJvYXJkVHlwZXMuaCIKICNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgogI2lt
cG9ydCAiV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tJbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyLmgiCkBAIC00MiwxNSArNDMsMTggQEAKICNpbXBvcnQgIldLV2Vi
Vmlldy5oIgogI2ltcG9ydCAiV2ViRWRpdENvbW1hbmRQcm94eS5oIgogI2ltcG9ydCAiV2ViUGFn
ZVByb3h5LmgiCisjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbXBvcnQgIl9XS1RodW1i
bmFpbFZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCA8SElUb29sYm94L0NhcmJvbkV2ZW50c0NvcmUu
aD4KICNpbXBvcnQgPFdlYkNvcmUvQVhPYmplY3RDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9E
YXRhRGV0ZWN0b3JzU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RpY3Rpb25hcnlMb29rdXAuaD4K
KyNpbXBvcnQgPFdlYkNvcmUvRHJhZ0RhdGEuaD4KICNpbXBvcnQgPFdlYkNvcmUvS2V5cHJlc3ND
b21tYW5kLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvb2t1cFNQSS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9OU0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyU1BJLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL05TV2luZG93U1BJLmg+CisjaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtRXZlbnRGYWN0b3J5
TWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1NvZnRMaW5raW5nLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L1ZpZXdTdGF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9XZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVy
RGVsZWdhdGUuaD4KQEAgLTE0NTEsNiArMTQ1NSwxMSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRJ
Z25vcmVzQWxsRXZlbnRzKGJvb2wgaWdub3Jlc0FsbEV2ZW50cykKICAgICBzZXRJZ25vcmVzTm9u
V2hlZWxFdmVudHMoaWdub3Jlc0FsbEV2ZW50cyk7CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OnNl
dElnbm9yZXNNb3VzZURyYWdnZWRFdmVudHMoYm9vbCBpZ25vcmVzTW91c2VEcmFnZ2VkRXZlbnRz
KQoreworICAgIG1faWdub3Jlc01vdXNlRHJhZ2dlZEV2ZW50cyA9IGlnbm9yZXNNb3VzZURyYWdn
ZWRFdmVudHM7Cit9CisKIHZvaWQgV2ViVmlld0ltcGw6OmFjY2Vzc2liaWxpdHlSZWdpc3RlclVJ
UHJvY2Vzc1Rva2VucygpCiB7CiAgICAgLy8gSW5pdGlhbGl6ZSByZW1vdGUgYWNjZXNzaWJpbGl0
eSB3aGVuIHRoZSB3aW5kb3cgY29ubmVjdGlvbiBoYXMgYmVlbiBlc3RhYmxpc2hlZC4KQEAgLTE2
NDcsNiArMTY1NiwxNTkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlVGh1bWJuYWlsVmlld0xh
eWVyKCkKIH0KICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRAogCisjaWYgRU5BQkxFKERSQUdfU1VQ
UE9SVCkKK3ZvaWQgV2ViVmlld0ltcGw6OmRyYWdnZWRJbWFnZShOU0ltYWdlICppbWFnZSwgQ0dQ
b2ludCBlbmRQb2ludCwgTlNEcmFnT3BlcmF0aW9uIG9wZXJhdGlvbikKK3sKKyNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdk
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBOU1BvaW50IHdpbmRvd0ltYWdlTG9jID0gW21f
dmlldy53aW5kb3cgY29udmVydFNjcmVlblRvQmFzZTplbmRQb2ludF07CisjcHJhZ21hIGNsYW5n
IGRpYWdub3N0aWMgcG9wCisgICAgTlNQb2ludCB3aW5kb3dNb3VzZUxvYyA9IHdpbmRvd0ltYWdl
TG9jOworCisgICAgLy8gUHJldmVudCBxdWV1ZWQgbW91c2VEcmFnZ2VkIGV2ZW50cyBmcm9tIGNv
bWluZyBhZnRlciB0aGUgZHJhZyBhbmQgZmFrZSBtb3VzZVVwIGV2ZW50LgorICAgIG1faWdub3Jl
c01vdXNlRHJhZ2dlZEV2ZW50cyA9IHRydWU7CisKKyAgICBtX3BhZ2UuZHJhZ0VuZGVkKFdlYkNv
cmU6OkludFBvaW50KHdpbmRvd01vdXNlTG9jKSwgV2ViQ29yZTo6Z2xvYmFsUG9pbnQod2luZG93
TW91c2VMb2MsIG1fdmlldy53aW5kb3cpLCBvcGVyYXRpb24pOworfQorCitzdGF0aWMgV2ViQ29y
ZTo6RHJhZ0FwcGxpY2F0aW9uRmxhZ3MgYXBwbGljYXRpb25GbGFnc0ZvckRyYWcoTlNWaWV3ICp2
aWV3LCBpZCA8TlNEcmFnZ2luZ0luZm8+IGRyYWdnaW5nSW5mbykKK3sKKyAgICB1aW50MzJfdCBm
bGFncyA9IDA7CisgICAgaWYgKFtOU0FwcCBtb2RhbFdpbmRvd10pCisgICAgICAgIGZsYWdzID0g
V2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uSXNNb2RhbDsKKyAgICBpZiAodmlldy53aW5kb3cuYXR0
YWNoZWRTaGVldCkKKyAgICAgICAgZmxhZ3MgfD0gV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uSGFz
QXR0YWNoZWRTaGVldDsKKyAgICBpZiAoZHJhZ2dpbmdJbmZvLmRyYWdnaW5nU291cmNlID09IHZp
ZXcpCisgICAgICAgIGZsYWdzIHw9IFdlYkNvcmU6OkRyYWdBcHBsaWNhdGlvbklzU291cmNlOwor
ICAgIGlmIChbTlNBcHAgY3VycmVudEV2ZW50XS5tb2RpZmllckZsYWdzICYgTlNBbHRlcm5hdGVL
ZXlNYXNrKQorICAgICAgICBmbGFncyB8PSBXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25Jc0NvcHlL
ZXlEb3duOworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJDb3JlOjpEcmFnQXBwbGljYXRpb25G
bGFncz4oZmxhZ3MpOworCit9CisKK05TRHJhZ09wZXJhdGlvbiBXZWJWaWV3SW1wbDo6ZHJhZ2dp
bmdFbnRlcmVkKGlkIDxOU0RyYWdnaW5nSW5mbz4gZHJhZ2dpbmdJbmZvKQoreworICAgIFdlYkNv
cmU6OkludFBvaW50IGNsaWVudChbbV92aWV3IGNvbnZlcnRQb2ludDpkcmFnZ2luZ0luZm8uZHJh
Z2dpbmdMb2NhdGlvbiBmcm9tVmlldzpuaWxdKTsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBnbG9i
YWwoV2ViQ29yZTo6Z2xvYmFsUG9pbnQoZHJhZ2dpbmdJbmZvLmRyYWdnaW5nTG9jYXRpb24sIG1f
dmlldy53aW5kb3cpKTsKKyAgICBXZWJDb3JlOjpEcmFnRGF0YSBkcmFnRGF0YShkcmFnZ2luZ0lu
Zm8sIGNsaWVudCwgZ2xvYmFsLCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpEcmFnT3BlcmF0aW9uPihk
cmFnZ2luZ0luZm8uZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrKSwgYXBwbGljYXRpb25GbGFn
c0ZvckRyYWcobV92aWV3LCBkcmFnZ2luZ0luZm8pKTsKKworICAgIG1fcGFnZS5yZXNldEN1cnJl
bnREcmFnSW5mb3JtYXRpb24oKTsKKyAgICBtX3BhZ2UuZHJhZ0VudGVyZWQoZHJhZ0RhdGEsIGRy
YWdnaW5nSW5mby5kcmFnZ2luZ1Bhc3RlYm9hcmQubmFtZSk7CisgICAgcmV0dXJuIE5TRHJhZ09w
ZXJhdGlvbkNvcHk7Cit9CisKK05TRHJhZ09wZXJhdGlvbiBXZWJWaWV3SW1wbDo6ZHJhZ2dpbmdV
cGRhdGVkKGlkIDxOU0RyYWdnaW5nSW5mbz4gZHJhZ2dpbmdJbmZvKQoreworICAgIFdlYkNvcmU6
OkludFBvaW50IGNsaWVudChbbV92aWV3IGNvbnZlcnRQb2ludDpkcmFnZ2luZ0luZm8uZHJhZ2dp
bmdMb2NhdGlvbiBmcm9tVmlldzpuaWxdKTsKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBnbG9iYWwo
V2ViQ29yZTo6Z2xvYmFsUG9pbnQoZHJhZ2dpbmdJbmZvLmRyYWdnaW5nTG9jYXRpb24sIG1fdmll
dy53aW5kb3cpKTsKKyAgICBXZWJDb3JlOjpEcmFnRGF0YSBkcmFnRGF0YShkcmFnZ2luZ0luZm8s
IGNsaWVudCwgZ2xvYmFsLCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpEcmFnT3BlcmF0aW9uPihkcmFn
Z2luZ0luZm8uZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrKSwgYXBwbGljYXRpb25GbGFnc0Zv
ckRyYWcobV92aWV3LCBkcmFnZ2luZ0luZm8pKTsKKyAgICBtX3BhZ2UuZHJhZ1VwZGF0ZWQoZHJh
Z0RhdGEsIGRyYWdnaW5nSW5mby5kcmFnZ2luZ1Bhc3RlYm9hcmQubmFtZSk7CisKKyAgICBOU0lu
dGVnZXIgbnVtYmVyT2ZWYWxpZEl0ZW1zRm9yRHJvcCA9IG1fcGFnZS5jdXJyZW50RHJhZ051bWJl
ck9mRmlsZXNUb0JlQWNjZXB0ZWQoKTsKKyAgICBOU0RyYWdnaW5nRm9ybWF0aW9uIGRyYWdnaW5n
Rm9ybWF0aW9uID0gTlNEcmFnZ2luZ0Zvcm1hdGlvbk5vbmU7CisgICAgaWYgKG1fcGFnZS5jdXJy
ZW50RHJhZ0lzT3ZlckZpbGVJbnB1dCgpICYmIG51bWJlck9mVmFsaWRJdGVtc0ZvckRyb3AgPiAw
KQorICAgICAgICBkcmFnZ2luZ0Zvcm1hdGlvbiA9IE5TRHJhZ2dpbmdGb3JtYXRpb25MaXN0Owor
CisgICAgaWYgKGRyYWdnaW5nSW5mby5udW1iZXJPZlZhbGlkSXRlbXNGb3JEcm9wICE9IG51bWJl
ck9mVmFsaWRJdGVtc0ZvckRyb3ApCisgICAgICAgIFtkcmFnZ2luZ0luZm8gc2V0TnVtYmVyT2ZW
YWxpZEl0ZW1zRm9yRHJvcDpudW1iZXJPZlZhbGlkSXRlbXNGb3JEcm9wXTsKKyAgICBpZiAoZHJh
Z2dpbmdJbmZvLmRyYWdnaW5nRm9ybWF0aW9uICE9IGRyYWdnaW5nRm9ybWF0aW9uKQorICAgICAg
ICBbZHJhZ2dpbmdJbmZvIHNldERyYWdnaW5nRm9ybWF0aW9uOmRyYWdnaW5nRm9ybWF0aW9uXTsK
KworICAgIHJldHVybiBtX3BhZ2UuY3VycmVudERyYWdPcGVyYXRpb24oKTsKK30KKwordm9pZCBX
ZWJWaWV3SW1wbDo6ZHJhZ2dpbmdFeGl0ZWQoaWQgPE5TRHJhZ2dpbmdJbmZvPiBkcmFnZ2luZ0lu
Zm8pCit7CisgICAgV2ViQ29yZTo6SW50UG9pbnQgY2xpZW50KFttX3ZpZXcgY29udmVydFBvaW50
OmRyYWdnaW5nSW5mby5kcmFnZ2luZ0xvY2F0aW9uIGZyb21WaWV3Om5pbF0pOworICAgIFdlYkNv
cmU6OkludFBvaW50IGdsb2JhbChXZWJDb3JlOjpnbG9iYWxQb2ludChkcmFnZ2luZ0luZm8uZHJh
Z2dpbmdMb2NhdGlvbiwgbV92aWV3LndpbmRvdykpOworICAgIFdlYkNvcmU6OkRyYWdEYXRhIGRy
YWdEYXRhKGRyYWdnaW5nSW5mbywgY2xpZW50LCBnbG9iYWwsIHN0YXRpY19jYXN0PFdlYkNvcmU6
OkRyYWdPcGVyYXRpb24+KGRyYWdnaW5nSW5mby5kcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2sp
LCBhcHBsaWNhdGlvbkZsYWdzRm9yRHJhZyhtX3ZpZXcsIGRyYWdnaW5nSW5mbykpOworICAgIG1f
cGFnZS5kcmFnRXhpdGVkKGRyYWdEYXRhLCBkcmFnZ2luZ0luZm8uZHJhZ2dpbmdQYXN0ZWJvYXJk
Lm5hbWUpOworICAgIG1fcGFnZS5yZXNldEN1cnJlbnREcmFnSW5mb3JtYXRpb24oKTsKK30KKwor
Ym9vbCBXZWJWaWV3SW1wbDo6cHJlcGFyZUZvckRyYWdPcGVyYXRpb24oaWQgPE5TRHJhZ2dpbmdJ
bmZvPikKK3sKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworLy8gRklYTUU6IFRoaXMgY29kZSBpcyBt
b3JlIG9yIGxlc3MgY29waWVkIGZyb20gUGFzdGVib2FyZDo6Z2V0QmVzdFVSTC4KKy8vIEl0IHdv
dWxkIGJlIG5pY2UgdG8gYmUgYWJsZSB0byBzaGFyZSB0aGUgY29kZSBzb21laG93Lgorc3RhdGlj
IGJvb2wgbWF5YmVDcmVhdGVTYW5kYm94RXh0ZW5zaW9uRnJvbVBhc3RlYm9hcmQoTlNQYXN0ZWJv
YXJkICpwYXN0ZWJvYXJkLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmIHNhbmRib3hFeHRlbnNp
b25IYW5kbGUpCit7CisgICAgTlNBcnJheSAqdHlwZXMgPSBwYXN0ZWJvYXJkLnR5cGVzOworICAg
IGlmICghW3R5cGVzIGNvbnRhaW5zT2JqZWN0Ok5TRmlsZW5hbWVzUGJvYXJkVHlwZV0pCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIE5TQXJyYXkgKmZpbGVzID0gW3Bhc3RlYm9hcmQgcHJv
cGVydHlMaXN0Rm9yVHlwZTpOU0ZpbGVuYW1lc1Bib2FyZFR5cGVdOworICAgIGlmIChmaWxlcy5j
b3VudCAhPSAxKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBOU1N0cmluZyAqZmlsZSA9
IFtmaWxlcyBvYmplY3RBdEluZGV4OjBdOworICAgIEJPT0wgaXNEaXJlY3Rvcnk7CisgICAgaWYg
KCFbW05TRmlsZU1hbmFnZXIgZGVmYXVsdE1hbmFnZXJdIGZpbGVFeGlzdHNBdFBhdGg6ZmlsZSBp
c0RpcmVjdG9yeTomaXNEaXJlY3RvcnldKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBp
ZiAoaXNEaXJlY3RvcnkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIFNhbmRib3hFeHRl
bnNpb246OmNyZWF0ZUhhbmRsZSgiLyIsIFNhbmRib3hFeHRlbnNpb246OlJlYWRPbmx5LCBzYW5k
Ym94RXh0ZW5zaW9uSGFuZGxlKTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworc3RhdGljIHZvaWQg
Y3JlYXRlU2FuZGJveEV4dGVuc2lvbnNGb3JGaWxlVXBsb2FkKE5TUGFzdGVib2FyZCAqcGFzdGVi
b2FyZCwgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkmIGhhbmRsZXMpCit7CisgICAgTlNB
cnJheSAqdHlwZXMgPSBwYXN0ZWJvYXJkLnR5cGVzOworICAgIGlmICghW3R5cGVzIGNvbnRhaW5z
T2JqZWN0Ok5TRmlsZW5hbWVzUGJvYXJkVHlwZV0pCisgICAgICAgIHJldHVybjsKKworICAgIE5T
QXJyYXkgKmZpbGVzID0gW3Bhc3RlYm9hcmQgcHJvcGVydHlMaXN0Rm9yVHlwZTpOU0ZpbGVuYW1l
c1Bib2FyZFR5cGVdOworICAgIGhhbmRsZXMuYWxsb2NhdGUoZmlsZXMuY291bnQpOworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBmaWxlcy5jb3VudDsgaSsrKSB7CisgICAgICAgIE5TU3Ry
aW5nICpmaWxlID0gW2ZpbGVzIG9iamVjdEF0SW5kZXg6aV07CisgICAgICAgIGlmICghW1tOU0Zp
bGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBmaWxlRXhpc3RzQXRQYXRoOmZpbGVdKQorICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRsZSBoYW5kbGU7
CisgICAgICAgIFNhbmRib3hFeHRlbnNpb246OmNyZWF0ZUhhbmRsZShmaWxlLCBTYW5kYm94RXh0
ZW5zaW9uOjpSZWFkT25seSwgaGFuZGxlc1tpXSk7CisgICAgfQorfQorCitib29sIFdlYlZpZXdJ
bXBsOjpwZXJmb3JtRHJhZ09wZXJhdGlvbihpZCA8TlNEcmFnZ2luZ0luZm8+IGRyYWdnaW5nSW5m
bykKK3sKKyAgICBXZWJDb3JlOjpJbnRQb2ludCBjbGllbnQoW21fdmlldyBjb252ZXJ0UG9pbnQ6
ZHJhZ2dpbmdJbmZvLmRyYWdnaW5nTG9jYXRpb24gZnJvbVZpZXc6bmlsXSk7CisgICAgV2ViQ29y
ZTo6SW50UG9pbnQgZ2xvYmFsKFdlYkNvcmU6Omdsb2JhbFBvaW50KGRyYWdnaW5nSW5mby5kcmFn
Z2luZ0xvY2F0aW9uLCBtX3ZpZXcud2luZG93KSk7CisgICAgV2ViQ29yZTo6RHJhZ0RhdGEgZHJh
Z0RhdGEoZHJhZ2dpbmdJbmZvLCBjbGllbnQsIGdsb2JhbCwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6
RHJhZ09wZXJhdGlvbj4oZHJhZ2dpbmdJbmZvLmRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFzayks
IGFwcGxpY2F0aW9uRmxhZ3NGb3JEcmFnKG1fdmlldywgZHJhZ2dpbmdJbmZvKSk7CisKKyAgICBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZTsKKyAgICBib29s
IGNyZWF0ZWRFeHRlbnNpb24gPSBtYXliZUNyZWF0ZVNhbmRib3hFeHRlbnNpb25Gcm9tUGFzdGVi
b2FyZChkcmFnZ2luZ0luZm8uZHJhZ2dpbmdQYXN0ZWJvYXJkLCBzYW5kYm94RXh0ZW5zaW9uSGFu
ZGxlKTsKKyAgICBpZiAoY3JlYXRlZEV4dGVuc2lvbikKKyAgICAgICAgbV9wYWdlLnByb2Nlc3Mo
KS53aWxsQWNxdWlyZVVuaXZlcnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbigpOworCisgICAg
U2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgc2FuZGJveEV4dGVuc2lvbkZvclVwbG9hZDsK
KyAgICBjcmVhdGVTYW5kYm94RXh0ZW5zaW9uc0ZvckZpbGVVcGxvYWQoZHJhZ2dpbmdJbmZvLmRy
YWdnaW5nUGFzdGVib2FyZCwgc2FuZGJveEV4dGVuc2lvbkZvclVwbG9hZCk7CisKKyAgICBtX3Bh
Z2UucGVyZm9ybURyYWdPcGVyYXRpb24oZHJhZ0RhdGEsIGRyYWdnaW5nSW5mby5kcmFnZ2luZ1Bh
c3RlYm9hcmQubmFtZSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgc2FuZGJveEV4dGVuc2lvbkZv
clVwbG9hZCk7CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKworTlNWaWV3ICpXZWJWaWV3SW1wbDo6
aGl0VGVzdEZvckRyYWdUeXBlcyhDR1BvaW50IHBvaW50LCBOU1NldCAqdHlwZXMpCit7CisgICAg
Ly8gVGhpcyBjb2RlIGlzIG5lZWRlZCB0byBzdXBwb3J0IGRyYWcgYW5kIGRyb3Agd2hlbiB0aGUg
ZHJhZyB0eXBlcyBjYW5ub3QgYmUgbWF0Y2hlZC4KKyAgICAvLyBUaGlzIGlzIHRoZSBjYXNlIGZv
ciBlbGVtZW50cyB0aGF0IGRvIG5vdCBwbGFjZSBjb250ZW50CisgICAgLy8gaW4gdGhlIGRyYWcg
cGFzdGVib2FyZCBhdXRvbWF0aWNhbGx5IHdoZW4gdGhlIGRyYWcgc3RhcnQgKGkuZS4gZHJhZ2dp
bmcgYSBESVYgZWxlbWVudCkuCisgICAgaWYgKFtbbV92aWV3IHN1cGVydmlld10gbW91c2U6TlNQ
b2ludEZyb21DR1BvaW50KHBvaW50KSBpblJlY3Q6W21fdmlldyBmcmFtZV1dKQorICAgICAgICBy
ZXR1cm4gbV92aWV3OworICAgIHJldHVybiBuaWw7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnJl
Z2lzdGVyRHJhZ2dlZFR5cGVzKCkKK3sKKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlU2V0PiB0eXBl
cyA9IGFkb3B0TlMoW1tOU011dGFibGVTZXQgYWxsb2NdIGluaXRXaXRoQXJyYXk6UGFzdGVib2Fy
ZFR5cGVzOjpmb3JFZGl0aW5nKCldKTsKKyAgICBbdHlwZXMgYWRkT2JqZWN0c0Zyb21BcnJheTpQ
YXN0ZWJvYXJkVHlwZXM6OmZvclVSTCgpXTsKKyAgICBbbV92aWV3IHJlZ2lzdGVyRm9yRHJhZ2dl
ZFR5cGVzOlt0eXBlcyBhbGxPYmplY3RzXV07Cit9CisjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQ
UE9SVCkKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMp
Cg==
</data>
<flag name="review"
          id="289190"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264084</attachid>
            <date>2015-10-26 15:46:47 -0700</date>
            <delta_ts>2015-10-26 15:54:35 -0700</delta_ts>
            <desc>Part 7 - gestures and snapshots</desc>
            <filename>7.diff</filename>
            <type>text/plain</type>
            <size>35361</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBlZjNlMzBkLi5iMjcxYTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC02LDYgKzYsNzkg
QEAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKICAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBzY3JvbGxXaGVlbDpd
KToKKyAgICAgICAgKC1bV0tWaWV3IHN3aXBlV2l0aEV2ZW50Ol0pOgorICAgICAgICAoLVtXS1Zp
ZXcgX3N1cGVyU3dpcGVXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBfc3VwZXJNYWdu
aWZ5V2l0aEV2ZW50Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgX3N1cGVyU21hcnRNYWduaWZ5V2l0
aEV2ZW50Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgX3Byb2Nlc3NEaWRFeGl0XSk6CisgICAgICAg
ICgtW1dLVmlldyBzZXRBbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlczpdKToKKyAg
ICAgICAgKC1bV0tWaWV3IGFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzXSk6Cisg
ICAgICAgICgtW1dLVmlldyBzZXRBbGxvd3NNYWduaWZpY2F0aW9uOl0pOgorICAgICAgICAoLVtX
S1ZpZXcgYWxsb3dzTWFnbmlmaWNhdGlvbl0pOgorICAgICAgICAoLVtXS1ZpZXcgbWFnbmlmeVdp
dGhFdmVudDpdKToKKyAgICAgICAgKC1bV0tWaWV3IHJvdGF0ZVdpdGhFdmVudDpdKToKKyAgICAg
ICAgKC1bV0tWaWV3IF9nZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOl0pOgorICAg
ICAgICAoLVtXS1ZpZXcgc21hcnRNYWduaWZ5V2l0aEV2ZW50Ol0pOgorICAgICAgICAoLVtXS1Zp
ZXcgc2V0TWFnbmlmaWNhdGlvbjpjZW50ZXJlZEF0UG9pbnQ6XSk6CisgICAgICAgICgtW1dLVmll
dyBzZXRNYWduaWZpY2F0aW9uOl0pOgorICAgICAgICAoLVtXS1ZpZXcgbWFnbmlmaWNhdGlvbl0p
OgorICAgICAgICAoLVtXS1ZpZXcgX3NldEN1c3RvbVN3aXBlVmlld3M6XSk6CisgICAgICAgICgt
W1dLVmlldyBfc2V0Q3VzdG9tU3dpcGVWaWV3c1RvcENvbnRlbnRJbnNldDpdKToKKyAgICAgICAg
KC1bV0tWaWV3IF90cnlUb1N3aXBlV2l0aEV2ZW50Omlnbm9yaW5nUGlubmVkU3RhdGU6XSk6Cisg
ICAgICAgICgtW1dLVmlldyBfc2V0RGlkTW92ZVN3aXBlU25hcHNob3RDYWxsYmFjazpdKToKKyAg
ICAgICAgKC1bV0tWaWV3IF9lbnN1cmVHZXN0dXJlQ29udHJvbGxlcl0pOiBEZWxldGVkLgorICAg
ICAgICAodGFrZVdpbmRvd1NuYXBzaG90KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF90
YWtlVmlld1NuYXBzaG90XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfd2hlZWxFdmVu
dFdhc05vdEhhbmRsZWRCeVdlYkNvcmU6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBf
ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lXSk6IERlbGV0ZWQuCisg
ICAgICAgICgtW1dLVmlldyBfZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZV0pOiBEZWxldGVkLgor
ICAgICAgICAoLVtXS1ZpZXcgX2RpZEZhaWxMb2FkRm9yTWFpbkZyYW1lXSk6IERlbGV0ZWQuCisg
ICAgICAgICgtW1dLVmlldyBfZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9yZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNu
YXBzaG90XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50
ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omdlc3R1cmVDb250cm9sbGVyKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFsbG93c01hZ25pZmljYXRpb24pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6
dGFrZVdpbmRvd1NuYXBzaG90KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRha2VW
aWV3U25hcHNob3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZW5zdXJlR2VzdHVy
ZUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cmVzZXRHZXN0dXJl
Q29udHJvbGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRBbGxvd3NCYWNr
Rm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpzZXRBbGxvd3NNYWduaWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
OnNldE1hZ25pZmljYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWFnbmlm
aWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRDdXN0b21Td2lwZVZp
ZXdzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEN1c3RvbVN3aXBlVmlld3NU
b3BDb250ZW50SW5zZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dHJ5VG9Td2lw
ZVdpdGhFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXREaWRNb3ZlU3dp
cGVTbmFwc2hvdENhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNjcm9s
bFdoZWVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnN3aXBlV2l0aEV2ZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Om1hZ25pZnlXaXRoRXZlbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c21hcnRNYWduaWZ5V2l0aEV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnJvdGF0ZVdpdGhFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omdlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNv
cmVGcm9tVmlld09ubHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwu
bW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp0YWtlVmlld1NuYXBzaG90KToK
KyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OndoZWVsRXZlbnRXYXNOb3RIYW5kbGVk
QnlXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUp
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVtb3ZlTmF2aWdhdGlvbkdlc3R1
cmVTbmFwc2hvdCk6CisgICAgICAgIE1vdmUgc3dpcGUsIHpvb20sIHJvdGF0ZSwgYW5kIHNuYXBz
aG90dGluZyBjb2RlLgorCisyMDE1LTEwLTI2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25A
YXBwbGUuY29tPgorCisgICAgICAgIFdLVmlldyBiZWluZyBpbnNpZGUgV0tXZWJWaWV3IGxlYWRz
IHRvIHdlaXJkIEFQSSBpc3N1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1MDE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgogICAgICAgICAoLVtX
S1ZpZXcgbW91c2VEb3duOl0pOgogICAgICAgICAoLVtXS1ZpZXcgbW91c2VEcmFnZ2VkOl0pOgog
ICAgICAgICAoLVtXS1ZpZXcgZHJhZ2dlZEltYWdlOmVuZGVkQXQ6b3BlcmF0aW9uOl0pOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGRlMjZiNzUuLjcx
NzgzOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAg
LTQxLDcgKzQxLDYgQEAKICNpbXBvcnQgIkVkaXRvclN0YXRlLmgiCiAjaW1wb3J0ICJMYXllclRy
ZWVDb250ZXh0LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCi0jaW1wb3J0ICJOYXRpdmVXZWJHZXN0
dXJlRXZlbnQuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKICNpbXBvcnQg
Ik5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIK
QEAgLTU0LDggKzUzLDYgQEAKICNpbXBvcnQgIlRleHRDaGVja2VyLmgiCiAjaW1wb3J0ICJUZXh0
Q2hlY2tlclN0YXRlLmgiCiAjaW1wb3J0ICJUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVBy
b3h5LmgiCi0jaW1wb3J0ICJWaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCIKLSNpbXBvcnQgIlZpZXdT
bmFwc2hvdFN0b3JlLmgiCiAjaW1wb3J0ICJXS0FQSUNhc3QuaCIKICNpbXBvcnQgIldLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLTGF5b3V0TW9kZS5oIgpAQCAtMjA0
LDEwICsyMDEsNiBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7
CiAKICAgICBCT09MIF93aW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOwogCi0gICAgc3Rk
Ojp1bmlxdWVfcHRyPFZpZXdHZXN0dXJlQ29udHJvbGxlcj4gX2dlc3R1cmVDb250cm9sbGVyOwot
ICAgIEJPT0wgX2FsbG93c01hZ25pZmljYXRpb247Ci0gICAgQk9PTCBfYWxsb3dzQmFja0Zvcndh
cmROYXZpZ2F0aW9uR2VzdHVyZXM7Ci0KICAgICBDR0Zsb2F0IF90b3RhbEhlaWdodE9mQmFubmVy
czsKIH0KIApAQCAtMTAxMCw0OCArMTAwMywxNCBAQCBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExF
Ul9JTlRFUk5BTChtb3VzZURyYWdnZWRJbnRlcm5hbCkKIAogI3VuZGVmIE5BVElWRV9NT1VTRV9F
VkVOVF9IQU5ETEVSCiAKLS0gKHZvaWQpX2Vuc3VyZUdlc3R1cmVDb250cm9sbGVyCi17Ci0gICAg
aWYgKF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIF9k
YXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFZpZXdHZXN0dXJlQ29u
dHJvbGxlcj4oKl9kYXRhLT5fcGFnZSk7Ci19Ci0KIC0gKHZvaWQpc2Nyb2xsV2hlZWw6KE5TRXZl
bnQgKilldmVudAogewotICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNBbGxFdmVudHMoKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGV2ZW50LnBoYXNlID09IE5TRXZlbnRQaGFzZUJl
Z2FuKQotICAgICAgICBbc2VsZiBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dp
dGhBbmltYXRpb246Tk9dOwotCi0gICAgaWYgKF9kYXRhLT5fYWxsb3dzQmFja0ZvcndhcmROYXZp
Z2F0aW9uR2VzdHVyZXMpIHsKLSAgICAgICAgW3NlbGYgX2Vuc3VyZUdlc3R1cmVDb250cm9sbGVy
XTsKLSAgICAgICAgaWYgKF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXItPmhhbmRsZVNjcm9sbFdo
ZWVsRXZlbnQoZXZlbnQpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIE5hdGl2
ZVdlYldoZWVsRXZlbnQgd2ViRXZlbnQgPSBOYXRpdmVXZWJXaGVlbEV2ZW50KGV2ZW50LCBzZWxm
KTsKLSAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZVdoZWVsRXZlbnQod2ViRXZlbnQpOworICAgIF9k
YXRhLT5faW1wbC0+c2Nyb2xsV2hlZWwoZXZlbnQpOwogfQogCiAtICh2b2lkKXN3aXBlV2l0aEV2
ZW50OihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9u
V2hlZWxFdmVudHMoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFfZGF0YS0+X2FsbG93
c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzKSB7Ci0gICAgICAgIFtzdXBlciBzd2lwZVdp
dGhFdmVudDpldmVudF07Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoZXZlbnQu
ZGVsdGFYID4gMC4wKQotICAgICAgICBfZGF0YS0+X3BhZ2UtPmdvQmFjaygpOwotICAgIGVsc2Ug
aWYgKGV2ZW50LmRlbHRhWCA8IDAuMCkKLSAgICAgICAgX2RhdGEtPl9wYWdlLT5nb0ZvcndhcmQo
KTsKLSAgICBlbHNlCi0gICAgICAgIFtzdXBlciBzd2lwZVdpdGhFdmVudDpldmVudF07CisgICAg
X2RhdGEtPl9pbXBsLT5zd2lwZVdpdGhFdmVudChldmVudCk7CiB9CiAKIC0gKHZvaWQpbW91c2VN
b3ZlZDooTlNFdmVudCAqKWV2ZW50CkBAIC0yMDc4LDYgKzIwMzcsMjEgQEAgc3RhdGljIHZvaWQg
ZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21w
b3NpdGlvblVuZGUKICAgICBbc3VwZXIgcXVpY2tMb29rV2l0aEV2ZW50OmV2ZW50XTsKIH0KIAor
LSAodm9pZClfc3VwZXJTd2lwZVdpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50Cit7CisgICAgW3N1
cGVyIHN3aXBlV2l0aEV2ZW50OmV2ZW50XTsKK30KKworLSAodm9pZClfc3VwZXJNYWduaWZ5V2l0
aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICBbc3VwZXIgbWFnbmlmeVdpdGhFdmVudDpl
dmVudF07Cit9CisKKy0gKHZvaWQpX3N1cGVyU21hcnRNYWduaWZ5V2l0aEV2ZW50OihOU0V2ZW50
ICopZXZlbnQKK3sKKyAgICBbc3VwZXIgc21hcnRNYWduaWZ5V2l0aEV2ZW50OmV2ZW50XTsKK30K
KwogLSAodm9pZClfc3VwZXJSZW1vdmVUcmFja2luZ1JlY3Q6KE5TVHJhY2tpbmdSZWN0VGFnKXRh
ZwogewogICAgIFtzdXBlciByZW1vdmVUcmFja2luZ1JlY3Q6dGFnXTsKQEAgLTIzMTYsNyArMjI5
MCw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAq
c3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKICAgICBbc2VsZiBfdXBkYXRlUmVtb3Rl
QWNjZXNzaWJpbGl0eVJlZ2lzdHJhdGlvbjpOT107CiAKLSAgICBfZGF0YS0+X2dlc3R1cmVDb250
cm9sbGVyID0gbnVsbHB0cjsKKyAgICBfZGF0YS0+X2ltcGwtPnJlc2V0R2VzdHVyZUNvbnRyb2xs
ZXIoKTsKIH0KIAogLSAodm9pZClfcGFnZUNsb3NlZApAQCAtMjQxOSw4MSArMjM5Myw2IEBAIHN0
YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBW
ZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAgICAgX2RhdGEtPl9pbXBsLT50b29sVGlwQ2hhbmdlZChv
bGRUb29sVGlwLCBuZXdUb29sVGlwKTsKIH0KIAotc3RhdGljIFJldGFpblB0cjxDR0ltYWdlUmVm
PiB0YWtlV2luZG93U25hcHNob3QoQ0dTV2luZG93SUQgd2luZG93SUQsIGJvb2wgY2FwdHVyZUF0
Tm9taW5hbFJlc29sdXRpb24pCi17Ci0gICAgQ0dTV2luZG93Q2FwdHVyZU9wdGlvbnMgb3B0aW9u
cyA9IGtDR1NDYXB0dXJlSWdub3JlR2xvYmFsQ2xpcFNoYXBlOwotICAgIGlmIChjYXB0dXJlQXRO
b21pbmFsUmVzb2x1dGlvbikKLSAgICAgICAgb3B0aW9ucyB8PSBrQ0dTV2luZG93Q2FwdHVyZU5v
bWluYWxSZXNvbHV0aW9uOwotICAgIFJldGFpblB0cjxDRkFycmF5UmVmPiB3aW5kb3dTbmFwc2hv
dEltYWdlcyA9IGFkb3B0Q0YoQ0dTSFdDYXB0dXJlV2luZG93TGlzdChDR1NNYWluQ29ubmVjdGlv
bklEKCksICZ3aW5kb3dJRCwgMSwgb3B0aW9ucykpOwotCi0gICAgaWYgKHdpbmRvd1NuYXBzaG90
SW1hZ2VzICYmIENGQXJyYXlHZXRDb3VudCh3aW5kb3dTbmFwc2hvdEltYWdlcy5nZXQoKSkpCi0g
ICAgICAgIHJldHVybiAoQ0dJbWFnZVJlZilDRkFycmF5R2V0VmFsdWVBdEluZGV4KHdpbmRvd1Nu
YXBzaG90SW1hZ2VzLmdldCgpLCAwKTsKLQotICAgIC8vIEZhbGwgYmFjayB0byB0aGUgbm9uLWhh
cmR3YXJlIGNhcHR1cmUgcGF0aCBpZiB3ZSBkaWRuJ3QgZ2V0IGEgc25hcHNob3QKLSAgICAvLyAo
d2hpY2ggdXN1YWxseSBoYXBwZW5zIGlmIHRoZSB3aW5kb3cgaXMgZnVsbHkgb2ZmLXNjcmVlbiku
Ci0gICAgQ0dXaW5kb3dJbWFnZU9wdGlvbiBpbWFnZU9wdGlvbnMgPSBrQ0dXaW5kb3dJbWFnZUJv
dW5kc0lnbm9yZUZyYW1pbmcgfCBrQ0dXaW5kb3dJbWFnZVNob3VsZEJlT3BhcXVlOwotICAgIGlm
IChjYXB0dXJlQXROb21pbmFsUmVzb2x1dGlvbikKLSAgICAgICAgaW1hZ2VPcHRpb25zIHw9IGtD
R1dpbmRvd0ltYWdlTm9taW5hbFJlc29sdXRpb247Ci0gICAgcmV0dXJuIGFkb3B0Q0YoQ0dXaW5k
b3dMaXN0Q3JlYXRlSW1hZ2UoQ0dSZWN0TnVsbCwga0NHV2luZG93TGlzdE9wdGlvbkluY2x1ZGlu
Z1dpbmRvdywgd2luZG93SUQsIGltYWdlT3B0aW9ucykpOwotfQotCi0tIChQYXNzUmVmUHRyPFZp
ZXdTbmFwc2hvdD4pX3Rha2VWaWV3U25hcHNob3QKLXsKLSAgICBOU1dpbmRvdyAqd2luZG93ID0g
c2VsZi53aW5kb3c7Ci0KLSAgICBDR1NXaW5kb3dJRCB3aW5kb3dJRCA9IChDR1NXaW5kb3dJRClb
d2luZG93IHdpbmRvd051bWJlcl07Ci0gICAgaWYgKCF3aW5kb3dJRCB8fCAhW3dpbmRvdyBpc1Zp
c2libGVdKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIFJldGFpblB0cjxDR0ltYWdl
UmVmPiB3aW5kb3dTbmFwc2hvdEltYWdlID0gdGFrZVdpbmRvd1NuYXBzaG90KHdpbmRvd0lELCBm
YWxzZSk7Ci0gICAgaWYgKCF3aW5kb3dTbmFwc2hvdEltYWdlKQotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLQotICAgIC8vIFdvcmsgYXJvdW5kIDxyZGFyOi8vcHJvYmxlbS8xNzA4NDk5Mz47IHJl
LXJlcXVlc3QgdGhlIHNuYXBzaG90IGF0IGtDR1dpbmRvd0ltYWdlTm9taW5hbFJlc29sdXRpb24g
aWYgaXQgd2FzIGNhcHR1cmVkIGF0IHRoZSB3cm9uZyBzY2FsZS4KLSAgICBDR0Zsb2F0IGRlc2ly
ZWRTbmFwc2hvdFdpZHRoID0gd2luZG93LmZyYW1lLnNpemUud2lkdGggKiB3aW5kb3cuc2NyZWVu
LmJhY2tpbmdTY2FsZUZhY3RvcjsKLSAgICBpZiAoQ0dJbWFnZUdldFdpZHRoKHdpbmRvd1NuYXBz
aG90SW1hZ2UuZ2V0KCkpICE9IGRlc2lyZWRTbmFwc2hvdFdpZHRoKQotICAgICAgICB3aW5kb3dT
bmFwc2hvdEltYWdlID0gdGFrZVdpbmRvd1NuYXBzaG90KHdpbmRvd0lELCB0cnVlKTsKLQotICAg
IGlmICghd2luZG93U25hcHNob3RJbWFnZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAg
ICBbc2VsZiBfZW5zdXJlR2VzdHVyZUNvbnRyb2xsZXJdOwotCi0gICAgTlNSZWN0IHdpbmRvd0Nh
cHR1cmVSZWN0OwotICAgIEZsb2F0UmVjdCBib3VuZHNGb3JDdXN0b21Td2lwZVZpZXdzID0gX2Rh
dGEtPl9nZXN0dXJlQ29udHJvbGxlci0+d2luZG93UmVsYXRpdmVCb3VuZHNGb3JDdXN0b21Td2lw
ZVZpZXdzKCk7Ci0gICAgaWYgKCFib3VuZHNGb3JDdXN0b21Td2lwZVZpZXdzLmlzRW1wdHkoKSkK
LSAgICAgICAgd2luZG93Q2FwdHVyZVJlY3QgPSBib3VuZHNGb3JDdXN0b21Td2lwZVZpZXdzOwot
ICAgIGVsc2UgewotICAgICAgICBOU1JlY3QgdW5vYnNjdXJlZEJvdW5kcyA9IHNlbGYuYm91bmRz
OwotICAgICAgICBmbG9hdCB0b3BDb250ZW50SW5zZXQgPSBfZGF0YS0+X3BhZ2UtPnRvcENvbnRl
bnRJbnNldCgpOwotICAgICAgICB1bm9ic2N1cmVkQm91bmRzLm9yaWdpbi55ICs9IHRvcENvbnRl
bnRJbnNldDsKLSAgICAgICAgdW5vYnNjdXJlZEJvdW5kcy5zaXplLmhlaWdodCAtPSB0b3BDb250
ZW50SW5zZXQ7Ci0gICAgICAgIHdpbmRvd0NhcHR1cmVSZWN0ID0gW3NlbGYgY29udmVydFJlY3Q6
dW5vYnNjdXJlZEJvdW5kcyB0b1ZpZXc6bmlsXTsKLSAgICB9Ci0KLSAgICBOU1JlY3Qgd2luZG93
Q2FwdHVyZVNjcmVlblJlY3QgPSBbd2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46d2luZG93Q2Fw
dHVyZVJlY3RdOwotICAgIENHUmVjdCB3aW5kb3dTY3JlZW5SZWN0OwotICAgIENHU0dldFNjcmVl
blJlY3RGb3JXaW5kb3coQ0dTTWFpbkNvbm5lY3Rpb25JRCgpLCAoQ0dTV2luZG93SUQpW3dpbmRv
dyB3aW5kb3dOdW1iZXJdLCAmd2luZG93U2NyZWVuUmVjdCk7Ci0KLSAgICBOU1JlY3QgY3JvcHBl
ZEltYWdlUmVjdCA9IHdpbmRvd0NhcHR1cmVSZWN0OwotICAgIGNyb3BwZWRJbWFnZVJlY3Qub3Jp
Z2luLnkgPSB3aW5kb3dTY3JlZW5SZWN0LnNpemUuaGVpZ2h0IC0gd2luZG93Q2FwdHVyZVNjcmVl
blJlY3Quc2l6ZS5oZWlnaHQgLSBOU01pblkod2luZG93Q2FwdHVyZVJlY3QpOwotCi0gICAgYXV0
byBjcm9wcGVkU25hcHNob3RJbWFnZSA9IGFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZVdpdGhJbWFnZUlu
UmVjdCh3aW5kb3dTbmFwc2hvdEltYWdlLmdldCgpLCBOU1JlY3RUb0NHUmVjdChbd2luZG93IGNv
bnZlcnRSZWN0VG9CYWNraW5nOmNyb3BwZWRJbWFnZVJlY3RdKSkpOwotCi0gICAgYXV0byBzdXJm
YWNlID0gSU9TdXJmYWNlOjpjcmVhdGVGcm9tSW1hZ2UoY3JvcHBlZFNuYXBzaG90SW1hZ2UuZ2V0
KCkpOwotICAgIGlmICghc3VyZmFjZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgc3Vy
ZmFjZS0+c2V0SXNWb2xhdGlsZSh0cnVlKTsKLQotICAgIHJldHVybiBWaWV3U25hcHNob3Q6OmNy
ZWF0ZShXVEY6Om1vdmUoc3VyZmFjZSkpOwotfQotCi0tICh2b2lkKV93aGVlbEV2ZW50V2FzTm90
SGFuZGxlZEJ5V2ViQ29yZTooTlNFdmVudCAqKWV2ZW50Ci17Ci0gICAgaWYgKF9kYXRhLT5fZ2Vz
dHVyZUNvbnRyb2xsZXIpCi0gICAgICAgIF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXItPndoZWVs
RXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGV2ZW50KTsKLX0KLQogLSAodm9pZClfc2V0QWNj
ZXNzaWJpbGl0eVdlYlByb2Nlc3NUb2tlbjooTlNEYXRhICopZGF0YQogewogICAgIF9kYXRhLT5f
cmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkID0gV0tBWFJlbW90ZUVsZW1lbnRGb3JUb2tlbihkYXRh
KTsKQEAgLTI3ODQsMTIgKzI2ODMsNiBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVl
RmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogfQogI2VuZGlmIC8vIFdLX0FQSV9FTkFC
TEVECiAKLS0gKHZvaWQpX2RpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFt
ZQotewotICAgIGlmIChfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyKQotICAgICAgICBfZGF0YS0+
X2dlc3R1cmVDb250cm9sbGVyLT5kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWlu
RnJhbWUoKTsKLX0KLQogI2lmIFdLX0FQSV9FTkFCTEVECiAtIChfV0tSZW1vdGVPYmplY3RSZWdp
c3RyeSAqKV9yZW1vdGVPYmplY3RSZWdpc3RyeQogewpAQCAtMjgwMiwzMCArMjY5NSw2IEBAIHN0
YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBh
dGgpCiB9CiAjZW5kaWYKIAotLSAodm9pZClfZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZQotewot
ICAgIGlmIChfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyKQotICAgICAgICBfZGF0YS0+X2dlc3R1
cmVDb250cm9sbGVyLT5kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCk7Ci19Ci0KLS0gKHZvaWQp
X2RpZEZhaWxMb2FkRm9yTWFpbkZyYW1lCi17Ci0gICAgaWYgKF9kYXRhLT5fZ2VzdHVyZUNvbnRy
b2xsZXIpCi0gICAgICAgIF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZhaWxMb2FkRm9y
TWFpbkZyYW1lKCk7Ci19Ci0KLS0gKHZvaWQpX2RpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JN
YWluRnJhbWU6KFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKXR5cGUKLXsKLSAgICBpZiAoX2Rh
dGEtPl9nZXN0dXJlQ29udHJvbGxlcikKLSAgICAgICAgX2RhdGEtPl9nZXN0dXJlQ29udHJvbGxl
ci0+ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZSh0eXBlKTsKLX0KLQotLSAo
dm9pZClfcmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdAotewotICAgIGlmIChfZGF0YS0+
X2dlc3R1cmVDb250cm9sbGVyKQotICAgICAgICBfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyLT5y
ZW1vdmVTd2lwZVNuYXBzaG90KCk7Ci19Ci0KICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTEwMAogLSAodm9pZClfc3RhcnRXaW5kb3dEcmFnCiB7CkBAIC0zMDY0LDE0
ICsyOTMzLDEyIEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBh
dGgoTlNTdHJpbmcgKnBhdGgpCiAKIC0gKHZvaWQpc2V0QWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0
aW9uR2VzdHVyZXM6KEJPT0wpYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMKIHsK
LSAgICBfZGF0YS0+X2FsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzID0gYWxsb3dz
QmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXM7Ci0gICAgX2RhdGEtPl9wYWdlLT5zZXRTaG91
bGRSZWNvcmROYXZpZ2F0aW9uU25hcHNob3RzKGFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdl
c3R1cmVzKTsKLSAgICBfZGF0YS0+X3BhZ2UtPnNldFNob3VsZFVzZUltcGxpY2l0UnViYmVyQmFu
ZENvbnRyb2woYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMpOworICAgIF9kYXRh
LT5faW1wbC0+c2V0QWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMoYWxsb3dzQmFj
a0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMpOwogfQogCiAtIChCT09MKWFsbG93c0JhY2tGb3J3
YXJkTmF2aWdhdGlvbkdlc3R1cmVzCiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5fYWxsb3dzQmFja0Zv
cndhcmROYXZpZ2F0aW9uR2VzdHVyZXM7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+YWxsb3dz
QmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMoKTsKIH0KIAogLSAoQk9PTClhbGxvd3NMaW5r
UHJldmlldwpAQCAtMzI3MSwxNDUgKzMxMzgsNjkgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0
aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKIAogLSAodm9pZClzZXRBbGxv
d3NNYWduaWZpY2F0aW9uOihCT09MKWFsbG93c01hZ25pZmljYXRpb24KIHsKLSAgICBfZGF0YS0+
X2FsbG93c01hZ25pZmljYXRpb24gPSBhbGxvd3NNYWduaWZpY2F0aW9uOworICAgIF9kYXRhLT5f
aW1wbC0+c2V0QWxsb3dzTWFnbmlmaWNhdGlvbihhbGxvd3NNYWduaWZpY2F0aW9uKTsKIH0KIAog
LSAoQk9PTClhbGxvd3NNYWduaWZpY2F0aW9uCiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5fYWxsb3dz
TWFnbmlmaWNhdGlvbjsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5hbGxvd3NNYWduaWZpY2F0
aW9uKCk7CiB9CiAKIC0gKHZvaWQpbWFnbmlmeVdpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50CiB7
Ci0gICAgaWYgKCFfZGF0YS0+X2FsbG93c01hZ25pZmljYXRpb24pIHsKLSNpZiBFTkFCTEUoTUFD
X0dFU1RVUkVfRVZFTlRTKQotICAgICAgICBOYXRpdmVXZWJHZXN0dXJlRXZlbnQgd2ViRXZlbnQg
PSBOYXRpdmVXZWJHZXN0dXJlRXZlbnQoZXZlbnQsIHNlbGYpOwotICAgICAgICBfZGF0YS0+X3Bh
Z2UtPmhhbmRsZUdlc3R1cmVFdmVudCh3ZWJFdmVudCk7Ci0jZW5kaWYKLSAgICAgICAgW3N1cGVy
IG1hZ25pZnlXaXRoRXZlbnQ6ZXZlbnRdOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
W3NlbGYgX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uOk5P
XTsKLQotICAgIFtzZWxmIF9lbnN1cmVHZXN0dXJlQ29udHJvbGxlcl07Ci0KLSNpZiBFTkFCTEUo
TUFDX0dFU1RVUkVfRVZFTlRTKQotICAgIGlmIChfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyLT5o
YXNBY3RpdmVNYWduaWZpY2F0aW9uR2VzdHVyZSgpKSB7Ci0gICAgICAgIF9kYXRhLT5fZ2VzdHVy
ZUNvbnRyb2xsZXItPmhhbmRsZU1hZ25pZmljYXRpb25HZXN0dXJlRXZlbnQoZXZlbnQsIFtzZWxm
IGNvbnZlcnRQb2ludDpldmVudC5sb2NhdGlvbkluV2luZG93IGZyb21WaWV3Om5pbF0pOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgTmF0aXZlV2ViR2VzdHVyZUV2ZW50IHdlYkV2ZW50
ID0gTmF0aXZlV2ViR2VzdHVyZUV2ZW50KGV2ZW50LCBzZWxmKTsKLSAgICBfZGF0YS0+X3BhZ2Ut
PmhhbmRsZUdlc3R1cmVFdmVudCh3ZWJFdmVudCk7Ci0jZWxzZQotICAgIF9kYXRhLT5fZ2VzdHVy
ZUNvbnRyb2xsZXItPmhhbmRsZU1hZ25pZmljYXRpb25HZXN0dXJlRXZlbnQoZXZlbnQsIFtzZWxm
IGNvbnZlcnRQb2ludDpldmVudC5sb2NhdGlvbkluV2luZG93IGZyb21WaWV3Om5pbF0pOwotI2Vu
ZGlmCisgICAgX2RhdGEtPl9pbXBsLT5tYWduaWZ5V2l0aEV2ZW50KGV2ZW50KTsKIH0KIAogI2lm
IEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAtICh2b2lkKXJvdGF0ZVdpdGhFdmVudDooTlNF
dmVudCAqKWV2ZW50CiB7Ci0gICAgTmF0aXZlV2ViR2VzdHVyZUV2ZW50IHdlYkV2ZW50ID0gTmF0
aXZlV2ViR2VzdHVyZUV2ZW50KGV2ZW50LCBzZWxmKTsKLSAgICBfZGF0YS0+X3BhZ2UtPmhhbmRs
ZUdlc3R1cmVFdmVudCh3ZWJFdmVudCk7CisgICAgX2RhdGEtPl9pbXBsLT5yb3RhdGVXaXRoRXZl
bnQoZXZlbnQpOwogfQogI2VuZGlmCiAKIC0gKHZvaWQpX2dlc3R1cmVFdmVudFdhc05vdEhhbmRs
ZWRCeVdlYkNvcmU6KE5TRXZlbnQgKilldmVudAogewotI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9F
VkVOVFMpCi0gICAgaWYgKF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXIpCi0gICAgICAgIF9kYXRh
LT5fZ2VzdHVyZUNvbnRyb2xsZXItPmdlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUo
ZXZlbnQsIFtzZWxmIGNvbnZlcnRQb2ludDpldmVudC5sb2NhdGlvbkluV2luZG93IGZyb21WaWV3
Om5pbF0pOwotI2VuZGlmCisgICAgX2RhdGEtPl9pbXBsLT5nZXN0dXJlRXZlbnRXYXNOb3RIYW5k
bGVkQnlXZWJDb3JlRnJvbVZpZXdPbmx5KGV2ZW50KTsKIH0KIAogLSAodm9pZClzbWFydE1hZ25p
ZnlXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAogewotICAgIGlmICghX2RhdGEtPl9hbGxvd3NN
YWduaWZpY2F0aW9uKSB7Ci0gICAgICAgIFtzdXBlciBzbWFydE1hZ25pZnlXaXRoRXZlbnQ6ZXZl
bnRdOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgW3NlbGYgX2Rpc21pc3NDb250ZW50
UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uOk5PXTsKLQotICAgIFtzZWxmIF9lbnN1
cmVHZXN0dXJlQ29udHJvbGxlcl07Ci0KLSAgICBfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyLT5o
YW5kbGVTbWFydE1hZ25pZmljYXRpb25HZXN0dXJlKFtzZWxmIGNvbnZlcnRQb2ludDpldmVudC5s
b2NhdGlvbkluV2luZG93IGZyb21WaWV3Om5pbF0pOworICAgIF9kYXRhLT5faW1wbC0+c21hcnRN
YWduaWZ5V2l0aEV2ZW50KGV2ZW50KTsKIH0KIAogLSAodm9pZClzZXRNYWduaWZpY2F0aW9uOihk
b3VibGUpbWFnbmlmaWNhdGlvbiBjZW50ZXJlZEF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQKIHsKLSAg
ICBpZiAobWFnbmlmaWNhdGlvbiA8PSAwIHx8IGlzbmFuKG1hZ25pZmljYXRpb24pIHx8IGlzaW5m
KG1hZ25pZmljYXRpb24pKQotICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJn
dW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiTWFnbmlmaWNhdGlvbiBzaG91bGQgYmUgYSBwb3NpdGl2
ZSBudW1iZXIiXTsKLQotICAgIFtzZWxmIF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5k
b3dzV2l0aEFuaW1hdGlvbjpOT107Ci0KLSAgICBfZGF0YS0+X3BhZ2UtPnNjYWxlUGFnZUluVmll
d0Nvb3JkaW5hdGVzKG1hZ25pZmljYXRpb24sIHJvdW5kZWRJbnRQb2ludChwb2ludCkpOworICAg
IF9kYXRhLT5faW1wbC0+c2V0TWFnbmlmaWNhdGlvbihtYWduaWZpY2F0aW9uLCBOU1BvaW50VG9D
R1BvaW50KHBvaW50KSk7CiB9CiAKIC0gKHZvaWQpc2V0TWFnbmlmaWNhdGlvbjooZG91YmxlKW1h
Z25pZmljYXRpb24KIHsKLSAgICBpZiAobWFnbmlmaWNhdGlvbiA8PSAwIHx8IGlzbmFuKG1hZ25p
ZmljYXRpb24pIHx8IGlzaW5mKG1hZ25pZmljYXRpb24pKQotICAgICAgICBbTlNFeGNlcHRpb24g
cmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiTWFnbmlmaWNhdGlvbiBz
aG91bGQgYmUgYSBwb3NpdGl2ZSBudW1iZXIiXTsKLQotICAgIFtzZWxmIF9kaXNtaXNzQ29udGVu
dFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbjpOT107Ci0KLSAgICBGbG9hdFBvaW50
IHZpZXdDZW50ZXIoTlNNaWRYKFtzZWxmIGJvdW5kc10pLCBOU01pZFkoW3NlbGYgYm91bmRzXSkp
OwotICAgIF9kYXRhLT5fcGFnZS0+c2NhbGVQYWdlSW5WaWV3Q29vcmRpbmF0ZXMobWFnbmlmaWNh
dGlvbiwgcm91bmRlZEludFBvaW50KHZpZXdDZW50ZXIpKTsKKyAgICBfZGF0YS0+X2ltcGwtPnNl
dE1hZ25pZmljYXRpb24obWFnbmlmaWNhdGlvbik7CiB9CiAKIC0gKGRvdWJsZSltYWduaWZpY2F0
aW9uCiB7Ci0gICAgaWYgKF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXIpCi0gICAgICAgIHJldHVy
biBfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyLT5tYWduaWZpY2F0aW9uKCk7Ci0KLSAgICByZXR1
cm4gX2RhdGEtPl9wYWdlLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1cm4gX2RhdGEtPl9p
bXBsLT5tYWduaWZpY2F0aW9uKCk7CiB9CiAKIC0gKHZvaWQpX3NldEN1c3RvbVN3aXBlVmlld3M6
KE5TQXJyYXkgKiljdXN0b21Td2lwZVZpZXdzCiB7Ci0gICAgaWYgKCFjdXN0b21Td2lwZVZpZXdz
LmNvdW50ICYmICFfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBbc2VsZiBfZW5zdXJlR2VzdHVyZUNvbnRyb2xsZXJdOwotCi0gICAgVmVjdG9yPFJldGFp
blB0cjxOU1ZpZXc+PiB2aWV3czsKLSAgICBmb3IgKE5TVmlldyAqdmlldyBpbiBjdXN0b21Td2lw
ZVZpZXdzKQotICAgICAgICB2aWV3cy5hcHBlbmQodmlldyk7Ci0KLSAgICBfZGF0YS0+X2dlc3R1
cmVDb250cm9sbGVyLT5zZXRDdXN0b21Td2lwZVZpZXdzKHZpZXdzKTsKKyAgICBfZGF0YS0+X2lt
cGwtPnNldEN1c3RvbVN3aXBlVmlld3MoY3VzdG9tU3dpcGVWaWV3cyk7CiB9CiAKIC0gKHZvaWQp
X3NldEN1c3RvbVN3aXBlVmlld3NUb3BDb250ZW50SW5zZXQ6KGZsb2F0KXRvcENvbnRlbnRJbnNl
dAogewotICAgIFtzZWxmIF9lbnN1cmVHZXN0dXJlQ29udHJvbGxlcl07Ci0gICAgX2RhdGEtPl9n
ZXN0dXJlQ29udHJvbGxlci0+c2V0Q3VzdG9tU3dpcGVWaWV3c1RvcENvbnRlbnRJbnNldCh0b3BD
b250ZW50SW5zZXQpOworICAgIF9kYXRhLT5faW1wbC0+c2V0Q3VzdG9tU3dpcGVWaWV3c1RvcENv
bnRlbnRJbnNldCh0b3BDb250ZW50SW5zZXQpOwogfQogCiAtIChCT09MKV90cnlUb1N3aXBlV2l0
aEV2ZW50OihOU0V2ZW50ICopZXZlbnQgaWdub3JpbmdQaW5uZWRTdGF0ZTooQk9PTClpZ25vcmlu
Z1Bpbm5lZFN0YXRlCiB7Ci0gICAgaWYgKCFfZGF0YS0+X2FsbG93c0JhY2tGb3J3YXJkTmF2aWdh
dGlvbkdlc3R1cmVzKQotICAgICAgICByZXR1cm4gTk87Ci0KLSAgICBbc2VsZiBfZW5zdXJlR2Vz
dHVyZUNvbnRyb2xsZXJdOwotCi0gICAgQk9PTCB3YXNJZ25vcmluZ1Bpbm5lZFN0YXRlID0gX2Rh
dGEtPl9nZXN0dXJlQ29udHJvbGxlci0+c2hvdWxkSWdub3JlUGlubmVkU3RhdGUoKTsKLSAgICBf
ZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyLT5zZXRTaG91bGRJZ25vcmVQaW5uZWRTdGF0ZShpZ25v
cmluZ1Bpbm5lZFN0YXRlKTsKLQotICAgIEJPT0wgaGFuZGxlZEV2ZW50ID0gX2RhdGEtPl9nZXN0
dXJlQ29udHJvbGxlci0+aGFuZGxlU2Nyb2xsV2hlZWxFdmVudChldmVudCk7Ci0KLSAgICBfZGF0
YS0+X2dlc3R1cmVDb250cm9sbGVyLT5zZXRTaG91bGRJZ25vcmVQaW5uZWRTdGF0ZSh3YXNJZ25v
cmluZ1Bpbm5lZFN0YXRlKTsKLQotICAgIHJldHVybiBoYW5kbGVkRXZlbnQ7CisgICAgcmV0dXJu
IF9kYXRhLT5faW1wbC0+dHJ5VG9Td2lwZVdpdGhFdmVudChldmVudCwgaWdub3JpbmdQaW5uZWRT
dGF0ZSk7CiB9CiAKIC0gKHZvaWQpX3NldERpZE1vdmVTd2lwZVNuYXBzaG90Q2FsbGJhY2s6KHZv
aWQoXikoQ0dSZWN0KSljYWxsYmFjawogewotICAgIGlmICghX2RhdGEtPl9hbGxvd3NCYWNrRm9y
d2FyZE5hdmlnYXRpb25HZXN0dXJlcykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgW3NlbGYgX2Vu
c3VyZUdlc3R1cmVDb250cm9sbGVyXTsKLSAgICBfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyLT5z
ZXREaWRNb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKGNhbGxiYWNrKTsKKyAgICBfZGF0YS0+X2lt
cGwtPnNldERpZE1vdmVTd2lwZVNuYXBzaG90Q2FsbGJhY2soY2FsbGJhY2spOwogfQogCiAtIChp
ZClfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6KFdL
SGl0VGVzdFJlc3VsdFJlZiloaXRUZXN0UmVzdWx0IHdpdGhUeXBlOih1aW50MzJfdCl0eXBlIHVz
ZXJEYXRhOihXS1R5cGVSZWYpdXNlckRhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCmluZGV4IDM2NDU0OGQuLmZkZTFlNDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaApA
QCAtODcsOSArODcsNiBAQCBzdHJ1Y3QgRWRpdG9yU3RhdGU7CiAtIChOU1JlY3QpX2NvbnZlcnRU
b0RldmljZVNwYWNlOihOU1JlY3QpcmVjdDsKIC0gKE5TUmVjdClfY29udmVydFRvVXNlclNwYWNl
OihOU1JlY3QpcmVjdDsKIAotLSAoUGFzc1JlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rh
a2VWaWV3U25hcHNob3Q7Ci0tICh2b2lkKV93aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29y
ZTooTlNFdmVudCAqKWV2ZW50OwotCiAtICh2b2lkKV9zZXRBY2Nlc3NpYmlsaXR5V2ViUHJvY2Vz
c1Rva2VuOihOU0RhdGEgKilkYXRhOwogCiAtICh2b2lkKV9kcmFnSW1hZ2VGb3JWaWV3OihOU1Zp
ZXcgKil2aWV3IHdpdGhJbWFnZTooTlNJbWFnZSAqKWltYWdlIGF0OihOU1BvaW50KWNsaWVudFBv
aW50IGxpbmtEcmFnOihCT09MKWxpbmtEcmFnOwpAQCAtMTA2LDEyICsxMDMsNiBAQCBzdHJ1Y3Qg
RWRpdG9yU3RhdGU7CiAtICh2b2lkKV9zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzOihCT09M
KXN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXM7CiAtIChCT09MKV9zdXBwcmVzc1Zpc2liaWxpdHlV
cGRhdGVzOwogCi0tICh2b2lkKV9kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWlu
RnJhbWU7Ci0tICh2b2lkKV9kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lOwotLSAodm9pZClfZGlk
RmFpbExvYWRGb3JNYWluRnJhbWU7Ci0tICh2b2lkKV9kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
Rm9yTWFpbkZyYW1lOihXZWJLaXQ6OlNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKXR5cGU7Ci0t
ICh2b2lkKV9yZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90OwotCiAjaWYgV0tfQVBJX0VO
QUJMRUQKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRodW1ibmFpbFZpZXc6KSBf
V0tUaHVtYm5haWxWaWV3ICpfdGh1bWJuYWlsVmlldzsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCBhNjliYmE5Li5hZDhhOGI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtNTIs
NiArNTIsOSBAQCBPQkpDX0NMQVNTIF9XS1RodW1ibmFpbFZpZXc7CiAtIChOU1RleHRJbnB1dENv
bnRleHQgKilfc3VwZXJJbnB1dENvbnRleHQ7CiAtICh2b2lkKV9zdXBlclF1aWNrTG9va1dpdGhF
dmVudDooTlNFdmVudCAqKWV2ZW50OwogLSAodm9pZClfc3VwZXJSZW1vdmVUcmFja2luZ1JlY3Q6
KE5TVHJhY2tpbmdSZWN0VGFnKXRhZzsKKy0gKHZvaWQpX3N1cGVyU3dpcGVXaXRoRXZlbnQ6KE5T
RXZlbnQgKilldmVudDsKKy0gKHZvaWQpX3N1cGVyTWFnbmlmeVdpdGhFdmVudDooTlNFdmVudCAq
KWV2ZW50OworLSAodm9pZClfc3VwZXJTbWFydE1hZ25pZnlXaXRoRXZlbnQ6KE5TRXZlbnQgKill
dmVudDsKIAogLy8gVGhpcyBpcyBhIGhhY2s7IHRoZXNlIHRoaW5ncyBsaXZlIGNhbiBsaXZlIG9u
IGEgY2F0ZWdvcnkgKGUuZy4gV0tWaWV3IChQcml2YXRlKSkgYnV0IFdLVmlldyBpdHNlbGYgY29u
Zm9ybXMgdG8gdGhpcyBwcm90b2NvbC4KIC8vIFRoZXkncmUgbm90IGFjdHVhbGx5IG9wdGlvbmFs
LgpAQCAtNjMsMTEgKzY2LDEzIEBAIE9CSkNfQ0xBU1MgX1dLVGh1bWJuYWlsVmlldzsKIC0gKHZv
aWQpX2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uOwogLSAodm9pZClfZGlzbWlzc0Nv
bnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93czsKIC0gKHZvaWQpX2Rpc21pc3NDb250ZW50UmVsYXRp
dmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uOihCT09MKWFuaW1hdGU7CistICh2b2lkKV9nZXN0
dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOihOU0V2ZW50ICopZXZlbnQ7CiAKIEBlbmQK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFZpZXdHZXN0dXJlQ29udHJvbGxlcjsKIGNs
YXNzIFdlYkVkaXRDb21tYW5kUHJveHk7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiBzdHJ1Y3QgQ29s
b3JTcGFjZURhdGE7CkBAIC0yNTAsNiArMjU1LDMzIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlZ2lz
dGVyRHJhZ2dlZFR5cGVzKCk7CiAjZW5kaWYKIAorICAgIFJlZlB0cjxWaWV3U25hcHNob3Q+IHRh
a2VWaWV3U25hcHNob3QoKTsKKworICAgIFZpZXdHZXN0dXJlQ29udHJvbGxlciogZ2VzdHVyZUNv
bnRyb2xsZXIoKSB7IHJldHVybiBtX2dlc3R1cmVDb250cm9sbGVyLmdldCgpOyB9CisgICAgVmll
d0dlc3R1cmVDb250cm9sbGVyJiBlbnN1cmVHZXN0dXJlQ29udHJvbGxlcigpOworICAgIHZvaWQg
cmVzZXRHZXN0dXJlQ29udHJvbGxlcigpOworICAgIHZvaWQgc2V0QWxsb3dzQmFja0ZvcndhcmRO
YXZpZ2F0aW9uR2VzdHVyZXMoYm9vbCk7CisgICAgYm9vbCBhbGxvd3NCYWNrRm9yd2FyZE5hdmln
YXRpb25HZXN0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0
aW9uR2VzdHVyZXM7IH0KKyAgICB2b2lkIHNldEFsbG93c01hZ25pZmljYXRpb24oYm9vbCk7Cisg
ICAgYm9vbCBhbGxvd3NNYWduaWZpY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NNYWdu
aWZpY2F0aW9uOyB9CisKKyAgICB2b2lkIHNldE1hZ25pZmljYXRpb24oZG91YmxlLCBDR1BvaW50
IGNlbnRlclBvaW50KTsKKyAgICB2b2lkIHNldE1hZ25pZmljYXRpb24oZG91YmxlKTsKKyAgICBk
b3VibGUgbWFnbmlmaWNhdGlvbigpIGNvbnN0OworICAgIHZvaWQgc2V0Q3VzdG9tU3dpcGVWaWV3
cyhOU0FycmF5ICopOworICAgIHZvaWQgc2V0Q3VzdG9tU3dpcGVWaWV3c1RvcENvbnRlbnRJbnNl
dChmbG9hdCk7CisgICAgYm9vbCB0cnlUb1N3aXBlV2l0aEV2ZW50KE5TRXZlbnQgKiwgYm9vbCBp
Z25vcmluZ1Bpbm5lZFN0YXRlKTsKKyAgICB2b2lkIHNldERpZE1vdmVTd2lwZVNuYXBzaG90Q2Fs
bGJhY2sodm9pZCheKShDR1JlY3QpKTsKKworICAgIHZvaWQgc2Nyb2xsV2hlZWwoTlNFdmVudCAq
KTsKKyAgICB2b2lkIHN3aXBlV2l0aEV2ZW50KE5TRXZlbnQgKik7CisgICAgdm9pZCBtYWduaWZ5
V2l0aEV2ZW50KE5TRXZlbnQgKik7CisgICAgdm9pZCByb3RhdGVXaXRoRXZlbnQoTlNFdmVudCAq
KTsKKyAgICB2b2lkIHNtYXJ0TWFnbmlmeVdpdGhFdmVudChOU0V2ZW50ICopOworCisgICAgdm9p
ZCBnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKE5TRXZlbnQgKik7CisgICAgdm9p
ZCBnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlRnJvbVZpZXdPbmx5KE5TRXZlbnQg
Kik7CisKIHByaXZhdGU6CiAgICAgV2Vha1B0cjxXZWJWaWV3SW1wbD4gY3JlYXRlV2Vha1B0cigp
IHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKQEAgLTM0Niw2
ICszNzgsMTAgQEAgcHJpdmF0ZToKICNpZiBXS19BUElfRU5BQkxFRAogICAgIF9XS1RodW1ibmFp
bFZpZXcgKm1fdGh1bWJuYWlsVmlldyB7IG51bGxwdHIgfTsKICNlbmRpZgorCisgICAgc3RkOjp1
bmlxdWVfcHRyPFZpZXdHZXN0dXJlQ29udHJvbGxlcj4gbV9nZXN0dXJlQ29udHJvbGxlcjsKKyAg
ICBib29sIG1fYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMgeyBmYWxzZSB9Owor
ICAgIGJvb2wgbV9hbGxvd3NNYWduaWZpY2F0aW9uIHsgZmFsc2UgfTsKIH07CiAgICAgCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQppbmRleCAwYzZkOTI0Li5iNGIwNDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0zMSwxMSArMzEsMTQgQEAKICNpbXBv
cnQgIkNvbG9yU3BhY2VEYXRhLmgiCiAjaW1wb3J0ICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbXBv
cnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgIk5hdGl2ZVdlYkdlc3R1cmVFdmVudC5oIgogI2ltcG9y
dCAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgogI2ltcG9ydCAiTmF0aXZlV2ViTW91c2VFdmVu
dC5oIgorI2ltcG9ydCAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgogI2ltcG9ydCAiUGFnZUNsaWVu
dC5oIgogI2ltcG9ydCAiUGFzdGVib2FyZFR5cGVzLmgiCiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRp
ZXMuaCIKKyNpbXBvcnQgIlZpZXdHZXN0dXJlQ29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyLmgiCiAjaW1wb3J0ICJXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCIKQEAgLTE4
MDksNiArMTgxMiwyNjQgQEAgdm9pZCBXZWJWaWV3SW1wbDo6cmVnaXN0ZXJEcmFnZ2VkVHlwZXMo
KQogfQogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKK3N0YXRpYyBSZXRhaW5QdHI8
Q0dJbWFnZVJlZj4gdGFrZVdpbmRvd1NuYXBzaG90KENHU1dpbmRvd0lEIHdpbmRvd0lELCBib29s
IGNhcHR1cmVBdE5vbWluYWxSZXNvbHV0aW9uKQoreworICAgIENHU1dpbmRvd0NhcHR1cmVPcHRp
b25zIG9wdGlvbnMgPSBrQ0dTQ2FwdHVyZUlnbm9yZUdsb2JhbENsaXBTaGFwZTsKKyAgICBpZiAo
Y2FwdHVyZUF0Tm9taW5hbFJlc29sdXRpb24pCisgICAgICAgIG9wdGlvbnMgfD0ga0NHU1dpbmRv
d0NhcHR1cmVOb21pbmFsUmVzb2x1dGlvbjsKKyAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gd2lu
ZG93U25hcHNob3RJbWFnZXMgPSBhZG9wdENGKENHU0hXQ2FwdHVyZVdpbmRvd0xpc3QoQ0dTTWFp
bkNvbm5lY3Rpb25JRCgpLCAmd2luZG93SUQsIDEsIG9wdGlvbnMpKTsKKworICAgIGlmICh3aW5k
b3dTbmFwc2hvdEltYWdlcyAmJiBDRkFycmF5R2V0Q291bnQod2luZG93U25hcHNob3RJbWFnZXMu
Z2V0KCkpKQorICAgICAgICByZXR1cm4gKENHSW1hZ2VSZWYpQ0ZBcnJheUdldFZhbHVlQXRJbmRl
eCh3aW5kb3dTbmFwc2hvdEltYWdlcy5nZXQoKSwgMCk7CisKKyAgICAvLyBGYWxsIGJhY2sgdG8g
dGhlIG5vbi1oYXJkd2FyZSBjYXB0dXJlIHBhdGggaWYgd2UgZGlkbid0IGdldCBhIHNuYXBzaG90
CisgICAgLy8gKHdoaWNoIHVzdWFsbHkgaGFwcGVucyBpZiB0aGUgd2luZG93IGlzIGZ1bGx5IG9m
Zi1zY3JlZW4pLgorICAgIENHV2luZG93SW1hZ2VPcHRpb24gaW1hZ2VPcHRpb25zID0ga0NHV2lu
ZG93SW1hZ2VCb3VuZHNJZ25vcmVGcmFtaW5nIHwga0NHV2luZG93SW1hZ2VTaG91bGRCZU9wYXF1
ZTsKKyAgICBpZiAoY2FwdHVyZUF0Tm9taW5hbFJlc29sdXRpb24pCisgICAgICAgIGltYWdlT3B0
aW9ucyB8PSBrQ0dXaW5kb3dJbWFnZU5vbWluYWxSZXNvbHV0aW9uOworICAgIHJldHVybiBhZG9w
dENGKENHV2luZG93TGlzdENyZWF0ZUltYWdlKENHUmVjdE51bGwsIGtDR1dpbmRvd0xpc3RPcHRp
b25JbmNsdWRpbmdXaW5kb3csIHdpbmRvd0lELCBpbWFnZU9wdGlvbnMpKTsKK30KKworUmVmUHRy
PFZpZXdTbmFwc2hvdD4gV2ViVmlld0ltcGw6OnRha2VWaWV3U25hcHNob3QoKQoreworICAgIE5T
V2luZG93ICp3aW5kb3cgPSBtX3ZpZXcud2luZG93OworCisgICAgQ0dTV2luZG93SUQgd2luZG93
SUQgPSAoQ0dTV2luZG93SUQpd2luZG93LndpbmRvd051bWJlcjsKKyAgICBpZiAoIXdpbmRvd0lE
IHx8ICF3aW5kb3cuaXNWaXNpYmxlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFJl
dGFpblB0cjxDR0ltYWdlUmVmPiB3aW5kb3dTbmFwc2hvdEltYWdlID0gdGFrZVdpbmRvd1NuYXBz
aG90KHdpbmRvd0lELCBmYWxzZSk7CisgICAgaWYgKCF3aW5kb3dTbmFwc2hvdEltYWdlKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIC8vIFdvcmsgYXJvdW5kIDxyZGFyOi8vcHJvYmxl
bS8xNzA4NDk5Mz47IHJlLXJlcXVlc3QgdGhlIHNuYXBzaG90IGF0IGtDR1dpbmRvd0ltYWdlTm9t
aW5hbFJlc29sdXRpb24gaWYgaXQgd2FzIGNhcHR1cmVkIGF0IHRoZSB3cm9uZyBzY2FsZS4KKyAg
ICBDR0Zsb2F0IGRlc2lyZWRTbmFwc2hvdFdpZHRoID0gd2luZG93LmZyYW1lLnNpemUud2lkdGgg
KiB3aW5kb3cuc2NyZWVuLmJhY2tpbmdTY2FsZUZhY3RvcjsKKyAgICBpZiAoQ0dJbWFnZUdldFdp
ZHRoKHdpbmRvd1NuYXBzaG90SW1hZ2UuZ2V0KCkpICE9IGRlc2lyZWRTbmFwc2hvdFdpZHRoKQor
ICAgICAgICB3aW5kb3dTbmFwc2hvdEltYWdlID0gdGFrZVdpbmRvd1NuYXBzaG90KHdpbmRvd0lE
LCB0cnVlKTsKKworICAgIGlmICghd2luZG93U25hcHNob3RJbWFnZSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICBWaWV3R2VzdHVyZUNvbnRyb2xsZXImIGdlc3R1cmVDb250cm9sbGVy
ID0gZW5zdXJlR2VzdHVyZUNvbnRyb2xsZXIoKTsKKworICAgIE5TUmVjdCB3aW5kb3dDYXB0dXJl
UmVjdDsKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzRm9yQ3VzdG9tU3dpcGVWaWV3cyA9
IGdlc3R1cmVDb250cm9sbGVyLndpbmRvd1JlbGF0aXZlQm91bmRzRm9yQ3VzdG9tU3dpcGVWaWV3
cygpOworICAgIGlmICghYm91bmRzRm9yQ3VzdG9tU3dpcGVWaWV3cy5pc0VtcHR5KCkpCisgICAg
ICAgIHdpbmRvd0NhcHR1cmVSZWN0ID0gYm91bmRzRm9yQ3VzdG9tU3dpcGVWaWV3czsKKyAgICBl
bHNlIHsKKyAgICAgICAgTlNSZWN0IHVub2JzY3VyZWRCb3VuZHMgPSBtX3ZpZXcuYm91bmRzOwor
ICAgICAgICBmbG9hdCB0b3BDb250ZW50SW5zZXQgPSBtX3BhZ2UudG9wQ29udGVudEluc2V0KCk7
CisgICAgICAgIHVub2JzY3VyZWRCb3VuZHMub3JpZ2luLnkgKz0gdG9wQ29udGVudEluc2V0Owor
ICAgICAgICB1bm9ic2N1cmVkQm91bmRzLnNpemUuaGVpZ2h0IC09IHRvcENvbnRlbnRJbnNldDsK
KyAgICAgICAgd2luZG93Q2FwdHVyZVJlY3QgPSBbbV92aWV3IGNvbnZlcnRSZWN0OnVub2JzY3Vy
ZWRCb3VuZHMgdG9WaWV3Om5pbF07CisgICAgfQorCisgICAgTlNSZWN0IHdpbmRvd0NhcHR1cmVT
Y3JlZW5SZWN0ID0gW3dpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOndpbmRvd0NhcHR1cmVSZWN0
XTsKKyAgICBDR1JlY3Qgd2luZG93U2NyZWVuUmVjdDsKKyAgICBDR1NHZXRTY3JlZW5SZWN0Rm9y
V2luZG93KENHU01haW5Db25uZWN0aW9uSUQoKSwgKENHU1dpbmRvd0lEKVt3aW5kb3cgd2luZG93
TnVtYmVyXSwgJndpbmRvd1NjcmVlblJlY3QpOworCisgICAgTlNSZWN0IGNyb3BwZWRJbWFnZVJl
Y3QgPSB3aW5kb3dDYXB0dXJlUmVjdDsKKyAgICBjcm9wcGVkSW1hZ2VSZWN0Lm9yaWdpbi55ID0g
d2luZG93U2NyZWVuUmVjdC5zaXplLmhlaWdodCAtIHdpbmRvd0NhcHR1cmVTY3JlZW5SZWN0LnNp
emUuaGVpZ2h0IC0gTlNNaW5ZKHdpbmRvd0NhcHR1cmVSZWN0KTsKKworICAgIGF1dG8gY3JvcHBl
ZFNuYXBzaG90SW1hZ2UgPSBhZG9wdENGKENHSW1hZ2VDcmVhdGVXaXRoSW1hZ2VJblJlY3Qod2lu
ZG93U25hcHNob3RJbWFnZS5nZXQoKSwgTlNSZWN0VG9DR1JlY3QoW3dpbmRvdyBjb252ZXJ0UmVj
dFRvQmFja2luZzpjcm9wcGVkSW1hZ2VSZWN0XSkpKTsKKworICAgIGF1dG8gc3VyZmFjZSA9IFdl
YkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlRnJvbUltYWdlKGNyb3BwZWRTbmFwc2hvdEltYWdlLmdl
dCgpKTsKKyAgICBpZiAoIXN1cmZhY2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHN1
cmZhY2UtPnNldElzVm9sYXRpbGUodHJ1ZSk7CisKKyAgICByZXR1cm4gVmlld1NuYXBzaG90Ojpj
cmVhdGUoV1RGOjptb3ZlKHN1cmZhY2UpKTsKK30KKworVmlld0dlc3R1cmVDb250cm9sbGVyJiBX
ZWJWaWV3SW1wbDo6ZW5zdXJlR2VzdHVyZUNvbnRyb2xsZXIoKQoreworICAgIGlmICghbV9nZXN0
dXJlQ29udHJvbGxlcikKKyAgICAgICAgbV9nZXN0dXJlQ29udHJvbGxlciA9IHN0ZDo6bWFrZV91
bmlxdWU8Vmlld0dlc3R1cmVDb250cm9sbGVyPihtX3BhZ2UpOworICAgIHJldHVybiAqbV9nZXN0
dXJlQ29udHJvbGxlcjsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6cmVzZXRHZXN0dXJlQ29udHJv
bGxlcigpCit7CisgICAgbV9nZXN0dXJlQ29udHJvbGxlciA9IG51bGxwdHI7Cit9CisKK3ZvaWQg
V2ViVmlld0ltcGw6OnNldEFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzKGJvb2wg
YWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMpCit7CisgICAgbV9hbGxvd3NCYWNr
Rm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcyA9IGFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdl
c3R1cmVzOworICAgIG1fcGFnZS5zZXRTaG91bGRSZWNvcmROYXZpZ2F0aW9uU25hcHNob3RzKGFs
bG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzKTsKKyAgICBtX3BhZ2Uuc2V0U2hvdWxk
VXNlSW1wbGljaXRSdWJiZXJCYW5kQ29udHJvbChhbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25H
ZXN0dXJlcyk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldEFsbG93c01hZ25pZmljYXRpb24o
Ym9vbCBhbGxvd3NNYWduaWZpY2F0aW9uKQoreworICAgIG1fYWxsb3dzTWFnbmlmaWNhdGlvbiA9
IGFsbG93c01hZ25pZmljYXRpb247Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldE1hZ25pZmlj
YXRpb24oZG91YmxlIG1hZ25pZmljYXRpb24sIENHUG9pbnQgY2VudGVyUG9pbnQpCit7CisgICAg
aWYgKG1hZ25pZmljYXRpb24gPD0gMCB8fCBpc25hbihtYWduaWZpY2F0aW9uKSB8fCBpc2luZiht
YWduaWZpY2F0aW9uKSkKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3Vt
ZW50RXhjZXB0aW9uIGZvcm1hdDpAIk1hZ25pZmljYXRpb24gc2hvdWxkIGJlIGEgcG9zaXRpdmUg
bnVtYmVyIl07CisKKyAgICBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFu
aW1hdGlvbihmYWxzZSk7CisKKyAgICBtX3BhZ2Uuc2NhbGVQYWdlSW5WaWV3Q29vcmRpbmF0ZXMo
bWFnbmlmaWNhdGlvbiwgV2ViQ29yZTo6cm91bmRlZEludFBvaW50KGNlbnRlclBvaW50KSk7Cit9
CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldE1hZ25pZmljYXRpb24oZG91YmxlIG1hZ25pZmljYXRp
b24pCit7CisgICAgaWYgKG1hZ25pZmljYXRpb24gPD0gMCB8fCBpc25hbihtYWduaWZpY2F0aW9u
KSB8fCBpc2luZihtYWduaWZpY2F0aW9uKSkKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5T
SW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIk1hZ25pZmljYXRpb24gc2hvdWxkIGJl
IGEgcG9zaXRpdmUgbnVtYmVyIl07CisKKyAgICBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRX
aW5kb3dzV2l0aEFuaW1hdGlvbihmYWxzZSk7CisKKyAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZp
ZXdDZW50ZXIoTlNNaWRYKFttX3ZpZXcgYm91bmRzXSksIE5TTWlkWShbbV92aWV3IGJvdW5kc10p
KTsKKyAgICBtX3BhZ2Uuc2NhbGVQYWdlSW5WaWV3Q29vcmRpbmF0ZXMobWFnbmlmaWNhdGlvbiwg
cm91bmRlZEludFBvaW50KHZpZXdDZW50ZXIpKTsKK30KKworZG91YmxlIFdlYlZpZXdJbXBsOjpt
YWduaWZpY2F0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAobV9nZXN0dXJlQ29udHJvbGxlcikKKyAg
ICAgICAgcmV0dXJuIG1fZ2VzdHVyZUNvbnRyb2xsZXItPm1hZ25pZmljYXRpb24oKTsKKyAgICBy
ZXR1cm4gbV9wYWdlLnBhZ2VTY2FsZUZhY3RvcigpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpz
ZXRDdXN0b21Td2lwZVZpZXdzKE5TQXJyYXkgKmN1c3RvbVN3aXBlVmlld3MpCit7CisgICAgaWYg
KCFjdXN0b21Td2lwZVZpZXdzLmNvdW50ICYmICFtX2dlc3R1cmVDb250cm9sbGVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBWZWN0b3I8UmV0YWluUHRyPE5TVmlldz4+IHZpZXdzOworICAgIHZp
ZXdzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY3VzdG9tU3dpcGVWaWV3cy5jb3VudCk7CisgICAg
Zm9yIChOU1ZpZXcgKnZpZXcgaW4gY3VzdG9tU3dpcGVWaWV3cykKKyAgICAgICAgdmlld3MudW5j
aGVja2VkQXBwZW5kKHZpZXcpOworCisgICAgZW5zdXJlR2VzdHVyZUNvbnRyb2xsZXIoKS5zZXRD
dXN0b21Td2lwZVZpZXdzKHZpZXdzKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0Q3VzdG9t
U3dpcGVWaWV3c1RvcENvbnRlbnRJbnNldChmbG9hdCB0b3BDb250ZW50SW5zZXQpCit7CisgICAg
ZW5zdXJlR2VzdHVyZUNvbnRyb2xsZXIoKS5zZXRDdXN0b21Td2lwZVZpZXdzVG9wQ29udGVudElu
c2V0KHRvcENvbnRlbnRJbnNldCk7Cit9CisKK2Jvb2wgV2ViVmlld0ltcGw6OnRyeVRvU3dpcGVX
aXRoRXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgaWdub3JpbmdQaW5uZWRTdGF0ZSkKK3sKKyAg
ICBpZiAoIW1fYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGF1dG8mIGdlc3R1cmVDb250cm9sbGVyID0gZW5zdXJlR2VzdHVy
ZUNvbnRyb2xsZXIoKTsKKworICAgIGJvb2wgd2FzSWdub3JpbmdQaW5uZWRTdGF0ZSA9IGdlc3R1
cmVDb250cm9sbGVyLnNob3VsZElnbm9yZVBpbm5lZFN0YXRlKCk7CisgICAgZ2VzdHVyZUNvbnRy
b2xsZXIuc2V0U2hvdWxkSWdub3JlUGlubmVkU3RhdGUoaWdub3JpbmdQaW5uZWRTdGF0ZSk7CisK
KyAgICBib29sIGhhbmRsZWRFdmVudCA9IGdlc3R1cmVDb250cm9sbGVyLmhhbmRsZVNjcm9sbFdo
ZWVsRXZlbnQoZXZlbnQpOworCisgICAgZ2VzdHVyZUNvbnRyb2xsZXIuc2V0U2hvdWxkSWdub3Jl
UGlubmVkU3RhdGUod2FzSWdub3JpbmdQaW5uZWRTdGF0ZSk7CisgICAgCisgICAgcmV0dXJuIGhh
bmRsZWRFdmVudDsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0RGlkTW92ZVN3aXBlU25hcHNo
b3RDYWxsYmFjayh2b2lkKF5jYWxsYmFjaykoQ0dSZWN0KSkKK3sKKyAgICBpZiAoIW1fYWxsb3dz
QmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMpCisgICAgICAgIHJldHVybjsKKworICAgIGVu
c3VyZUdlc3R1cmVDb250cm9sbGVyKCkuc2V0RGlkTW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayhj
YWxsYmFjayk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNjcm9sbFdoZWVsKE5TRXZlbnQgKmV2
ZW50KQoreworICAgIGlmIChtX2lnbm9yZXNBbGxFdmVudHMpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmIChldmVudC5waGFzZSA9PSBOU0V2ZW50UGhhc2VCZWdhbikKKyAgICAgICAgZGlzbWlz
c0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb24oZmFsc2UpOworCisgICAg
aWYgKG1fYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMgJiYgZW5zdXJlR2VzdHVy
ZUNvbnRyb2xsZXIoKS5oYW5kbGVTY3JvbGxXaGVlbEV2ZW50KGV2ZW50KSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgTmF0aXZlV2ViV2hlZWxFdmVudCB3ZWJFdmVudCA9IE5hdGl2ZVdlYldoZWVs
RXZlbnQoZXZlbnQsIG1fdmlldyk7CisgICAgbV9wYWdlLmhhbmRsZVdoZWVsRXZlbnQod2ViRXZl
bnQpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzd2lwZVdpdGhFdmVudChOU0V2ZW50ICpldmVu
dCkKK3sKKyAgICBpZiAobV9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmICghbV9hbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcykgeworICAg
ICAgICBbbV92aWV3IF9zdXBlclN3aXBlV2l0aEV2ZW50OmV2ZW50XTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGlmIChldmVudC5kZWx0YVggPiAwLjApCisgICAgICAgIG1fcGFnZS5n
b0JhY2soKTsKKyAgICBlbHNlIGlmIChldmVudC5kZWx0YVggPCAwLjApCisgICAgICAgIG1fcGFn
ZS5nb0ZvcndhcmQoKTsKKyAgICBlbHNlCisgICAgICAgIFttX3ZpZXcgX3N1cGVyU3dpcGVXaXRo
RXZlbnQ6ZXZlbnRdOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjptYWduaWZ5V2l0aEV2ZW50KE5T
RXZlbnQgKmV2ZW50KQoreworICAgIGlmICghbV9hbGxvd3NNYWduaWZpY2F0aW9uKSB7CisjaWYg
RU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKyAgICAgICAgTmF0aXZlV2ViR2VzdHVyZUV2ZW50
IHdlYkV2ZW50ID0gTmF0aXZlV2ViR2VzdHVyZUV2ZW50KGV2ZW50LCBtX3ZpZXcpOworICAgICAg
ICBtX3BhZ2UuaGFuZGxlR2VzdHVyZUV2ZW50KHdlYkV2ZW50KTsKKyNlbmRpZgorICAgICAgICBb
bV92aWV3IF9zdXBlck1hZ25pZnlXaXRoRXZlbnQ6ZXZlbnRdOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRp
b24oZmFsc2UpOworCisgICAgYXV0byYgZ2VzdHVyZUNvbnRyb2xsZXIgPSBlbnN1cmVHZXN0dXJl
Q29udHJvbGxlcigpOworCisjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKyAgICBpZiAo
Z2VzdHVyZUNvbnRyb2xsZXIuaGFzQWN0aXZlTWFnbmlmaWNhdGlvbkdlc3R1cmUoKSkgeworICAg
ICAgICBnZXN0dXJlQ29udHJvbGxlci5oYW5kbGVNYWduaWZpY2F0aW9uR2VzdHVyZUV2ZW50KGV2
ZW50LCBbbV92aWV3IGNvbnZlcnRQb2ludDpldmVudC5sb2NhdGlvbkluV2luZG93IGZyb21WaWV3
Om5pbF0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTmF0aXZlV2ViR2VzdHVyZUV2
ZW50IHdlYkV2ZW50ID0gTmF0aXZlV2ViR2VzdHVyZUV2ZW50KGV2ZW50LCBtX3ZpZXcpOworICAg
IG1fcGFnZS5oYW5kbGVHZXN0dXJlRXZlbnQod2ViRXZlbnQpOworI2Vsc2UKKyAgICBnZXN0dXJl
Q29udHJvbGxlci5oYW5kbGVNYWduaWZpY2F0aW9uR2VzdHVyZUV2ZW50KGV2ZW50LCBbbV92aWV3
IGNvbnZlcnRQb2ludDpldmVudC5sb2NhdGlvbkluV2luZG93IGZyb21WaWV3Om5pbF0pOworI2Vu
ZGlmCit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNtYXJ0TWFnbmlmeVdpdGhFdmVudChOU0V2ZW50
ICpldmVudCkKK3sKKyAgICBpZiAoIW1fYWxsb3dzTWFnbmlmaWNhdGlvbikgeworICAgICAgICBb
bV92aWV3IF9zdXBlclNtYXJ0TWFnbmlmeVdpdGhFdmVudDpldmVudF07CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFu
aW1hdGlvbihmYWxzZSk7CisKKyAgICBlbnN1cmVHZXN0dXJlQ29udHJvbGxlcigpLmhhbmRsZVNt
YXJ0TWFnbmlmaWNhdGlvbkdlc3R1cmUoW21fdmlldyBjb252ZXJ0UG9pbnQ6ZXZlbnQubG9jYXRp
b25JbldpbmRvdyBmcm9tVmlldzpuaWxdKTsKK30KKworI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9F
VkVOVFMpCit2b2lkIFdlYlZpZXdJbXBsOjpyb3RhdGVXaXRoRXZlbnQoTlNFdmVudCAqZXZlbnQp
Cit7CisgICAgTmF0aXZlV2ViR2VzdHVyZUV2ZW50IHdlYkV2ZW50ID0gTmF0aXZlV2ViR2VzdHVy
ZUV2ZW50KGV2ZW50LCBtX3ZpZXcpOworICAgIG1fcGFnZS5oYW5kbGVHZXN0dXJlRXZlbnQod2Vi
RXZlbnQpOworfQorI2VuZGlmCisKK3ZvaWQgV2ViVmlld0ltcGw6Omdlc3R1cmVFdmVudFdhc05v
dEhhbmRsZWRCeVdlYkNvcmUoTlNFdmVudCAqZXZlbnQpCit7CisgICAgW21fdmlldyBfZ2VzdHVy
ZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZTpldmVudF07Cit9CisKK3ZvaWQgV2ViVmlld0lt
cGw6Omdlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmVGcm9tVmlld09ubHkoTlNFdmVu
dCAqZXZlbnQpCit7CisjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKyAgICBpZiAobV9n
ZXN0dXJlQ29udHJvbGxlcikKKyAgICAgICAgbV9nZXN0dXJlQ29udHJvbGxlci0+Z2VzdHVyZUV2
ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShldmVudCwgW21fdmlldyBjb252ZXJ0UG9pbnQ6ZXZl
bnQubG9jYXRpb25JbldpbmRvdyBmcm9tVmlldzpuaWxdKTsKKyNlbmRpZgorfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCmluZGV4IDQyOWU2YWIuLmEzOGIx
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudElt
cGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5t
bQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgogI2lt
cG9ydCAiTmF2aWdhdGlvblN0YXRlLmgiCiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKKyNp
bXBvcnQgIlZpZXdHZXN0dXJlQ29udHJvbGxlci5oIgogI2ltcG9ydCAiVmlld1NuYXBzaG90U3Rv
cmUuaCIKICNpbXBvcnQgIldLQVBJQ2FzdC5oIgogI2ltcG9ydCAiV0tGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlci5oIgpAQCAtNTE0LDcgKzUxNSw3IEBAIENBTGF5ZXIgKlBhZ2VDbGllbnRJbXBs
OjphY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKCkgY29uc3QKIAogUGFzc1JlZlB0cjxW
aWV3U25hcHNob3Q+IFBhZ2VDbGllbnRJbXBsOjp0YWtlVmlld1NuYXBzaG90KCkKIHsKLSAgICBy
ZXR1cm4gW21fd2tWaWV3IF90YWtlVmlld1NuYXBzaG90XTsKKyAgICByZXR1cm4gbV9pbXBsLT50
YWtlVmlld1NuYXBzaG90KCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnNlbGVjdGlvbkRp
ZENoYW5nZSgpCkBAIC01MjQsNyArNTI1LDggQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2VsZWN0
aW9uRGlkQ2hhbmdlKCkKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6d2hlZWxFdmVudFdhc05vdEhh
bmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYgZXZlbnQpCiB7Ci0gICAg
W21fd2tWaWV3IF93aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZTpldmVudC5uYXRpdmVF
dmVudCgpXTsKKyAgICBpZiAoYXV0byBnZXN0dXJlQ29udHJvbGxlciA9IG1faW1wbC0+Z2VzdHVy
ZUNvbnRyb2xsZXIoKSkKKyAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPndoZWVsRXZlbnRXYXNO
b3RIYW5kbGVkQnlXZWJDb3JlKGV2ZW50Lm5hdGl2ZUV2ZW50KCkpOwogfQogCiAjaWYgRU5BQkxF
KE1BQ19HRVNUVVJFX0VWRU5UUykKQEAgLTc0NywyNyArNzQ5LDMyIEBAIHZvaWQgUGFnZUNsaWVu
dEltcGw6OmRpZFJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKQogCiB2b2lkIFBhZ2VD
bGllbnRJbXBsOjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKQog
ewotICAgIFttX3drVmlldyBfZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZy
YW1lXTsKKyAgICBpZiAoYXV0byBnZXN0dXJlQ29udHJvbGxlciA9IG1faW1wbC0+Z2VzdHVyZUNv
bnRyb2xsZXIoKSkKKyAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpk
aWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCkKIHsKLSAgICBbbV93a1ZpZXcgX2RpZEZpbmlzaExv
YWRGb3JNYWluRnJhbWVdOworICAgIGlmIChhdXRvIGdlc3R1cmVDb250cm9sbGVyID0gbV9pbXBs
LT5nZXN0dXJlQ29udHJvbGxlcigpKQorICAgICAgICBnZXN0dXJlQ29udHJvbGxlci0+ZGlkRmlu
aXNoTG9hZEZvck1haW5GcmFtZSgpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGYWls
TG9hZEZvck1haW5GcmFtZSgpCiB7Ci0gICAgW21fd2tWaWV3IF9kaWRGYWlsTG9hZEZvck1haW5G
cmFtZV07CisgICAgaWYgKGF1dG8gZ2VzdHVyZUNvbnRyb2xsZXIgPSBtX2ltcGwtPmdlc3R1cmVD
b250cm9sbGVyKCkpCisgICAgICAgIGdlc3R1cmVDb250cm9sbGVyLT5kaWRGYWlsTG9hZEZvck1h
aW5GcmFtZSgpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlIHR5cGUpCiB7Ci0g
ICAgW21fd2tWaWV3IF9kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lOnR5cGVd
OworICAgIGlmIChhdXRvIGdlc3R1cmVDb250cm9sbGVyID0gbV9pbXBsLT5nZXN0dXJlQ29udHJv
bGxlcigpKQorICAgICAgICBnZXN0dXJlQ29udHJvbGxlci0+ZGlkU2FtZURvY3VtZW50TmF2aWdh
dGlvbkZvck1haW5GcmFtZSh0eXBlKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVtb3Zl
TmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgpCiB7Ci0gICAgW21fd2tWaWV3IF9yZW1vdmVOYXZp
Z2F0aW9uR2VzdHVyZVNuYXBzaG90XTsKKyAgICBpZiAoYXV0byBnZXN0dXJlQ29udHJvbGxlciA9
IG1faW1wbC0+Z2VzdHVyZUNvbnRyb2xsZXIoKSkKKyAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXIt
PnJlbW92ZVN3aXBlU25hcHNob3QoKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hh
bmdlQmFja2dyb3VuZENvbG9yKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264088</attachid>
            <date>2015-10-26 15:54:35 -0700</date>
            <delta_ts>2015-10-26 17:27:48 -0700</delta_ts>
            <desc>Part 7 - gestures and snapshots</desc>
            <filename>7.diff</filename>
            <type>text/plain</type>
            <size>35361</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBlZjNlMzBkLi5iMjcxYTE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC02LDYgKzYsNzkg
QEAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKICAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBzY3JvbGxXaGVlbDpd
KToKKyAgICAgICAgKC1bV0tWaWV3IHN3aXBlV2l0aEV2ZW50Ol0pOgorICAgICAgICAoLVtXS1Zp
ZXcgX3N1cGVyU3dpcGVXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBfc3VwZXJNYWdu
aWZ5V2l0aEV2ZW50Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgX3N1cGVyU21hcnRNYWduaWZ5V2l0
aEV2ZW50Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgX3Byb2Nlc3NEaWRFeGl0XSk6CisgICAgICAg
ICgtW1dLVmlldyBzZXRBbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlczpdKToKKyAg
ICAgICAgKC1bV0tWaWV3IGFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzXSk6Cisg
ICAgICAgICgtW1dLVmlldyBzZXRBbGxvd3NNYWduaWZpY2F0aW9uOl0pOgorICAgICAgICAoLVtX
S1ZpZXcgYWxsb3dzTWFnbmlmaWNhdGlvbl0pOgorICAgICAgICAoLVtXS1ZpZXcgbWFnbmlmeVdp
dGhFdmVudDpdKToKKyAgICAgICAgKC1bV0tWaWV3IHJvdGF0ZVdpdGhFdmVudDpdKToKKyAgICAg
ICAgKC1bV0tWaWV3IF9nZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOl0pOgorICAg
ICAgICAoLVtXS1ZpZXcgc21hcnRNYWduaWZ5V2l0aEV2ZW50Ol0pOgorICAgICAgICAoLVtXS1Zp
ZXcgc2V0TWFnbmlmaWNhdGlvbjpjZW50ZXJlZEF0UG9pbnQ6XSk6CisgICAgICAgICgtW1dLVmll
dyBzZXRNYWduaWZpY2F0aW9uOl0pOgorICAgICAgICAoLVtXS1ZpZXcgbWFnbmlmaWNhdGlvbl0p
OgorICAgICAgICAoLVtXS1ZpZXcgX3NldEN1c3RvbVN3aXBlVmlld3M6XSk6CisgICAgICAgICgt
W1dLVmlldyBfc2V0Q3VzdG9tU3dpcGVWaWV3c1RvcENvbnRlbnRJbnNldDpdKToKKyAgICAgICAg
KC1bV0tWaWV3IF90cnlUb1N3aXBlV2l0aEV2ZW50Omlnbm9yaW5nUGlubmVkU3RhdGU6XSk6Cisg
ICAgICAgICgtW1dLVmlldyBfc2V0RGlkTW92ZVN3aXBlU25hcHNob3RDYWxsYmFjazpdKToKKyAg
ICAgICAgKC1bV0tWaWV3IF9lbnN1cmVHZXN0dXJlQ29udHJvbGxlcl0pOiBEZWxldGVkLgorICAg
ICAgICAodGFrZVdpbmRvd1NuYXBzaG90KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF90
YWtlVmlld1NuYXBzaG90XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfd2hlZWxFdmVu
dFdhc05vdEhhbmRsZWRCeVdlYkNvcmU6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBf
ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lXSk6IERlbGV0ZWQuCisg
ICAgICAgICgtW1dLVmlldyBfZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZV0pOiBEZWxldGVkLgor
ICAgICAgICAoLVtXS1ZpZXcgX2RpZEZhaWxMb2FkRm9yTWFpbkZyYW1lXSk6IERlbGV0ZWQuCisg
ICAgICAgICgtW1dLVmlldyBfZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9yZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNu
YXBzaG90XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50
ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omdlc3R1cmVDb250cm9sbGVyKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OmFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFsbG93c01hZ25pZmljYXRpb24pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6
dGFrZVdpbmRvd1NuYXBzaG90KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRha2VW
aWV3U25hcHNob3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZW5zdXJlR2VzdHVy
ZUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cmVzZXRHZXN0dXJl
Q29udHJvbGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRBbGxvd3NCYWNr
Rm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpzZXRBbGxvd3NNYWduaWZpY2F0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
OnNldE1hZ25pZmljYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWFnbmlm
aWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRDdXN0b21Td2lwZVZp
ZXdzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEN1c3RvbVN3aXBlVmlld3NU
b3BDb250ZW50SW5zZXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dHJ5VG9Td2lw
ZVdpdGhFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXREaWRNb3ZlU3dp
cGVTbmFwc2hvdENhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNjcm9s
bFdoZWVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnN3aXBlV2l0aEV2ZW50KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Om1hZ25pZnlXaXRoRXZlbnQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c21hcnRNYWduaWZ5V2l0aEV2ZW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnJvdGF0ZVdpdGhFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omdlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNv
cmVGcm9tVmlld09ubHkpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwu
bW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp0YWtlVmlld1NuYXBzaG90KToK
KyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OndoZWVsRXZlbnRXYXNOb3RIYW5kbGVk
QnlXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZpcnN0Vmlz
dWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUp
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVtb3ZlTmF2aWdhdGlvbkdlc3R1
cmVTbmFwc2hvdCk6CisgICAgICAgIE1vdmUgc3dpcGUsIHpvb20sIHJvdGF0ZSwgYW5kIHNuYXBz
aG90dGluZyBjb2RlLgorCisyMDE1LTEwLTI2ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25A
YXBwbGUuY29tPgorCisgICAgICAgIFdLVmlldyBiZWluZyBpbnNpZGUgV0tXZWJWaWV3IGxlYWRz
IHRvIHdlaXJkIEFQSSBpc3N1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE1MDE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgogICAgICAgICAoLVtX
S1ZpZXcgbW91c2VEb3duOl0pOgogICAgICAgICAoLVtXS1ZpZXcgbW91c2VEcmFnZ2VkOl0pOgog
ICAgICAgICAoLVtXS1ZpZXcgZHJhZ2dlZEltYWdlOmVuZGVkQXQ6b3BlcmF0aW9uOl0pOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IGRlMjZiNzUuLjcx
NzgzOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAg
LTQxLDcgKzQxLDYgQEAKICNpbXBvcnQgIkVkaXRvclN0YXRlLmgiCiAjaW1wb3J0ICJMYXllclRy
ZWVDb250ZXh0LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCi0jaW1wb3J0ICJOYXRpdmVXZWJHZXN0
dXJlRXZlbnQuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKICNpbXBvcnQg
Ik5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIK
QEAgLTU0LDggKzUzLDYgQEAKICNpbXBvcnQgIlRleHRDaGVja2VyLmgiCiAjaW1wb3J0ICJUZXh0
Q2hlY2tlclN0YXRlLmgiCiAjaW1wb3J0ICJUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVBy
b3h5LmgiCi0jaW1wb3J0ICJWaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCIKLSNpbXBvcnQgIlZpZXdT
bmFwc2hvdFN0b3JlLmgiCiAjaW1wb3J0ICJXS0FQSUNhc3QuaCIKICNpbXBvcnQgIldLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLTGF5b3V0TW9kZS5oIgpAQCAtMjA0
LDEwICsyMDEsNiBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7
CiAKICAgICBCT09MIF93aW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOwogCi0gICAgc3Rk
Ojp1bmlxdWVfcHRyPFZpZXdHZXN0dXJlQ29udHJvbGxlcj4gX2dlc3R1cmVDb250cm9sbGVyOwot
ICAgIEJPT0wgX2FsbG93c01hZ25pZmljYXRpb247Ci0gICAgQk9PTCBfYWxsb3dzQmFja0Zvcndh
cmROYXZpZ2F0aW9uR2VzdHVyZXM7Ci0KICAgICBDR0Zsb2F0IF90b3RhbEhlaWdodE9mQmFubmVy
czsKIH0KIApAQCAtMTAxMCw0OCArMTAwMywxNCBAQCBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExF
Ul9JTlRFUk5BTChtb3VzZURyYWdnZWRJbnRlcm5hbCkKIAogI3VuZGVmIE5BVElWRV9NT1VTRV9F
VkVOVF9IQU5ETEVSCiAKLS0gKHZvaWQpX2Vuc3VyZUdlc3R1cmVDb250cm9sbGVyCi17Ci0gICAg
aWYgKF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXIpCi0gICAgICAgIHJldHVybjsKLQotICAgIF9k
YXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXIgPSBzdGQ6Om1ha2VfdW5pcXVlPFZpZXdHZXN0dXJlQ29u
dHJvbGxlcj4oKl9kYXRhLT5fcGFnZSk7Ci19Ci0KIC0gKHZvaWQpc2Nyb2xsV2hlZWw6KE5TRXZl
bnQgKilldmVudAogewotICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNBbGxFdmVudHMoKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGV2ZW50LnBoYXNlID09IE5TRXZlbnRQaGFzZUJl
Z2FuKQotICAgICAgICBbc2VsZiBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dp
dGhBbmltYXRpb246Tk9dOwotCi0gICAgaWYgKF9kYXRhLT5fYWxsb3dzQmFja0ZvcndhcmROYXZp
Z2F0aW9uR2VzdHVyZXMpIHsKLSAgICAgICAgW3NlbGYgX2Vuc3VyZUdlc3R1cmVDb250cm9sbGVy
XTsKLSAgICAgICAgaWYgKF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXItPmhhbmRsZVNjcm9sbFdo
ZWVsRXZlbnQoZXZlbnQpKQotICAgICAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIE5hdGl2
ZVdlYldoZWVsRXZlbnQgd2ViRXZlbnQgPSBOYXRpdmVXZWJXaGVlbEV2ZW50KGV2ZW50LCBzZWxm
KTsKLSAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZVdoZWVsRXZlbnQod2ViRXZlbnQpOworICAgIF9k
YXRhLT5faW1wbC0+c2Nyb2xsV2hlZWwoZXZlbnQpOwogfQogCiAtICh2b2lkKXN3aXBlV2l0aEV2
ZW50OihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9u
V2hlZWxFdmVudHMoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKCFfZGF0YS0+X2FsbG93
c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzKSB7Ci0gICAgICAgIFtzdXBlciBzd2lwZVdp
dGhFdmVudDpldmVudF07Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAoZXZlbnQu
ZGVsdGFYID4gMC4wKQotICAgICAgICBfZGF0YS0+X3BhZ2UtPmdvQmFjaygpOwotICAgIGVsc2Ug
aWYgKGV2ZW50LmRlbHRhWCA8IDAuMCkKLSAgICAgICAgX2RhdGEtPl9wYWdlLT5nb0ZvcndhcmQo
KTsKLSAgICBlbHNlCi0gICAgICAgIFtzdXBlciBzd2lwZVdpdGhFdmVudDpldmVudF07CisgICAg
X2RhdGEtPl9pbXBsLT5zd2lwZVdpdGhFdmVudChldmVudCk7CiB9CiAKIC0gKHZvaWQpbW91c2VN
b3ZlZDooTlNFdmVudCAqKWV2ZW50CkBAIC0yMDc4LDYgKzIwMzcsMjEgQEAgc3RhdGljIHZvaWQg
ZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21w
b3NpdGlvblVuZGUKICAgICBbc3VwZXIgcXVpY2tMb29rV2l0aEV2ZW50OmV2ZW50XTsKIH0KIAor
LSAodm9pZClfc3VwZXJTd2lwZVdpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50Cit7CisgICAgW3N1
cGVyIHN3aXBlV2l0aEV2ZW50OmV2ZW50XTsKK30KKworLSAodm9pZClfc3VwZXJNYWduaWZ5V2l0
aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICBbc3VwZXIgbWFnbmlmeVdpdGhFdmVudDpl
dmVudF07Cit9CisKKy0gKHZvaWQpX3N1cGVyU21hcnRNYWduaWZ5V2l0aEV2ZW50OihOU0V2ZW50
ICopZXZlbnQKK3sKKyAgICBbc3VwZXIgc21hcnRNYWduaWZ5V2l0aEV2ZW50OmV2ZW50XTsKK30K
KwogLSAodm9pZClfc3VwZXJSZW1vdmVUcmFja2luZ1JlY3Q6KE5TVHJhY2tpbmdSZWN0VGFnKXRh
ZwogewogICAgIFtzdXBlciByZW1vdmVUcmFja2luZ1JlY3Q6dGFnXTsKQEAgLTIzMTYsNyArMjI5
MCw3IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAq
c3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKICAgICBbc2VsZiBfdXBkYXRlUmVtb3Rl
QWNjZXNzaWJpbGl0eVJlZ2lzdHJhdGlvbjpOT107CiAKLSAgICBfZGF0YS0+X2dlc3R1cmVDb250
cm9sbGVyID0gbnVsbHB0cjsKKyAgICBfZGF0YS0+X2ltcGwtPnJlc2V0R2VzdHVyZUNvbnRyb2xs
ZXIoKTsKIH0KIAogLSAodm9pZClfcGFnZUNsb3NlZApAQCAtMjQxOSw4MSArMjM5Myw2IEBAIHN0
YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBW
ZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAgICAgX2RhdGEtPl9pbXBsLT50b29sVGlwQ2hhbmdlZChv
bGRUb29sVGlwLCBuZXdUb29sVGlwKTsKIH0KIAotc3RhdGljIFJldGFpblB0cjxDR0ltYWdlUmVm
PiB0YWtlV2luZG93U25hcHNob3QoQ0dTV2luZG93SUQgd2luZG93SUQsIGJvb2wgY2FwdHVyZUF0
Tm9taW5hbFJlc29sdXRpb24pCi17Ci0gICAgQ0dTV2luZG93Q2FwdHVyZU9wdGlvbnMgb3B0aW9u
cyA9IGtDR1NDYXB0dXJlSWdub3JlR2xvYmFsQ2xpcFNoYXBlOwotICAgIGlmIChjYXB0dXJlQXRO
b21pbmFsUmVzb2x1dGlvbikKLSAgICAgICAgb3B0aW9ucyB8PSBrQ0dTV2luZG93Q2FwdHVyZU5v
bWluYWxSZXNvbHV0aW9uOwotICAgIFJldGFpblB0cjxDRkFycmF5UmVmPiB3aW5kb3dTbmFwc2hv
dEltYWdlcyA9IGFkb3B0Q0YoQ0dTSFdDYXB0dXJlV2luZG93TGlzdChDR1NNYWluQ29ubmVjdGlv
bklEKCksICZ3aW5kb3dJRCwgMSwgb3B0aW9ucykpOwotCi0gICAgaWYgKHdpbmRvd1NuYXBzaG90
SW1hZ2VzICYmIENGQXJyYXlHZXRDb3VudCh3aW5kb3dTbmFwc2hvdEltYWdlcy5nZXQoKSkpCi0g
ICAgICAgIHJldHVybiAoQ0dJbWFnZVJlZilDRkFycmF5R2V0VmFsdWVBdEluZGV4KHdpbmRvd1Nu
YXBzaG90SW1hZ2VzLmdldCgpLCAwKTsKLQotICAgIC8vIEZhbGwgYmFjayB0byB0aGUgbm9uLWhh
cmR3YXJlIGNhcHR1cmUgcGF0aCBpZiB3ZSBkaWRuJ3QgZ2V0IGEgc25hcHNob3QKLSAgICAvLyAo
d2hpY2ggdXN1YWxseSBoYXBwZW5zIGlmIHRoZSB3aW5kb3cgaXMgZnVsbHkgb2ZmLXNjcmVlbiku
Ci0gICAgQ0dXaW5kb3dJbWFnZU9wdGlvbiBpbWFnZU9wdGlvbnMgPSBrQ0dXaW5kb3dJbWFnZUJv
dW5kc0lnbm9yZUZyYW1pbmcgfCBrQ0dXaW5kb3dJbWFnZVNob3VsZEJlT3BhcXVlOwotICAgIGlm
IChjYXB0dXJlQXROb21pbmFsUmVzb2x1dGlvbikKLSAgICAgICAgaW1hZ2VPcHRpb25zIHw9IGtD
R1dpbmRvd0ltYWdlTm9taW5hbFJlc29sdXRpb247Ci0gICAgcmV0dXJuIGFkb3B0Q0YoQ0dXaW5k
b3dMaXN0Q3JlYXRlSW1hZ2UoQ0dSZWN0TnVsbCwga0NHV2luZG93TGlzdE9wdGlvbkluY2x1ZGlu
Z1dpbmRvdywgd2luZG93SUQsIGltYWdlT3B0aW9ucykpOwotfQotCi0tIChQYXNzUmVmUHRyPFZp
ZXdTbmFwc2hvdD4pX3Rha2VWaWV3U25hcHNob3QKLXsKLSAgICBOU1dpbmRvdyAqd2luZG93ID0g
c2VsZi53aW5kb3c7Ci0KLSAgICBDR1NXaW5kb3dJRCB3aW5kb3dJRCA9IChDR1NXaW5kb3dJRClb
d2luZG93IHdpbmRvd051bWJlcl07Ci0gICAgaWYgKCF3aW5kb3dJRCB8fCAhW3dpbmRvdyBpc1Zp
c2libGVdKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQotICAgIFJldGFpblB0cjxDR0ltYWdl
UmVmPiB3aW5kb3dTbmFwc2hvdEltYWdlID0gdGFrZVdpbmRvd1NuYXBzaG90KHdpbmRvd0lELCBm
YWxzZSk7Ci0gICAgaWYgKCF3aW5kb3dTbmFwc2hvdEltYWdlKQotICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLQotICAgIC8vIFdvcmsgYXJvdW5kIDxyZGFyOi8vcHJvYmxlbS8xNzA4NDk5Mz47IHJl
LXJlcXVlc3QgdGhlIHNuYXBzaG90IGF0IGtDR1dpbmRvd0ltYWdlTm9taW5hbFJlc29sdXRpb24g
aWYgaXQgd2FzIGNhcHR1cmVkIGF0IHRoZSB3cm9uZyBzY2FsZS4KLSAgICBDR0Zsb2F0IGRlc2ly
ZWRTbmFwc2hvdFdpZHRoID0gd2luZG93LmZyYW1lLnNpemUud2lkdGggKiB3aW5kb3cuc2NyZWVu
LmJhY2tpbmdTY2FsZUZhY3RvcjsKLSAgICBpZiAoQ0dJbWFnZUdldFdpZHRoKHdpbmRvd1NuYXBz
aG90SW1hZ2UuZ2V0KCkpICE9IGRlc2lyZWRTbmFwc2hvdFdpZHRoKQotICAgICAgICB3aW5kb3dT
bmFwc2hvdEltYWdlID0gdGFrZVdpbmRvd1NuYXBzaG90KHdpbmRvd0lELCB0cnVlKTsKLQotICAg
IGlmICghd2luZG93U25hcHNob3RJbWFnZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAg
ICBbc2VsZiBfZW5zdXJlR2VzdHVyZUNvbnRyb2xsZXJdOwotCi0gICAgTlNSZWN0IHdpbmRvd0Nh
cHR1cmVSZWN0OwotICAgIEZsb2F0UmVjdCBib3VuZHNGb3JDdXN0b21Td2lwZVZpZXdzID0gX2Rh
dGEtPl9nZXN0dXJlQ29udHJvbGxlci0+d2luZG93UmVsYXRpdmVCb3VuZHNGb3JDdXN0b21Td2lw
ZVZpZXdzKCk7Ci0gICAgaWYgKCFib3VuZHNGb3JDdXN0b21Td2lwZVZpZXdzLmlzRW1wdHkoKSkK
LSAgICAgICAgd2luZG93Q2FwdHVyZVJlY3QgPSBib3VuZHNGb3JDdXN0b21Td2lwZVZpZXdzOwot
ICAgIGVsc2UgewotICAgICAgICBOU1JlY3QgdW5vYnNjdXJlZEJvdW5kcyA9IHNlbGYuYm91bmRz
OwotICAgICAgICBmbG9hdCB0b3BDb250ZW50SW5zZXQgPSBfZGF0YS0+X3BhZ2UtPnRvcENvbnRl
bnRJbnNldCgpOwotICAgICAgICB1bm9ic2N1cmVkQm91bmRzLm9yaWdpbi55ICs9IHRvcENvbnRl
bnRJbnNldDsKLSAgICAgICAgdW5vYnNjdXJlZEJvdW5kcy5zaXplLmhlaWdodCAtPSB0b3BDb250
ZW50SW5zZXQ7Ci0gICAgICAgIHdpbmRvd0NhcHR1cmVSZWN0ID0gW3NlbGYgY29udmVydFJlY3Q6
dW5vYnNjdXJlZEJvdW5kcyB0b1ZpZXc6bmlsXTsKLSAgICB9Ci0KLSAgICBOU1JlY3Qgd2luZG93
Q2FwdHVyZVNjcmVlblJlY3QgPSBbd2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46d2luZG93Q2Fw
dHVyZVJlY3RdOwotICAgIENHUmVjdCB3aW5kb3dTY3JlZW5SZWN0OwotICAgIENHU0dldFNjcmVl
blJlY3RGb3JXaW5kb3coQ0dTTWFpbkNvbm5lY3Rpb25JRCgpLCAoQ0dTV2luZG93SUQpW3dpbmRv
dyB3aW5kb3dOdW1iZXJdLCAmd2luZG93U2NyZWVuUmVjdCk7Ci0KLSAgICBOU1JlY3QgY3JvcHBl
ZEltYWdlUmVjdCA9IHdpbmRvd0NhcHR1cmVSZWN0OwotICAgIGNyb3BwZWRJbWFnZVJlY3Qub3Jp
Z2luLnkgPSB3aW5kb3dTY3JlZW5SZWN0LnNpemUuaGVpZ2h0IC0gd2luZG93Q2FwdHVyZVNjcmVl
blJlY3Quc2l6ZS5oZWlnaHQgLSBOU01pblkod2luZG93Q2FwdHVyZVJlY3QpOwotCi0gICAgYXV0
byBjcm9wcGVkU25hcHNob3RJbWFnZSA9IGFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZVdpdGhJbWFnZUlu
UmVjdCh3aW5kb3dTbmFwc2hvdEltYWdlLmdldCgpLCBOU1JlY3RUb0NHUmVjdChbd2luZG93IGNv
bnZlcnRSZWN0VG9CYWNraW5nOmNyb3BwZWRJbWFnZVJlY3RdKSkpOwotCi0gICAgYXV0byBzdXJm
YWNlID0gSU9TdXJmYWNlOjpjcmVhdGVGcm9tSW1hZ2UoY3JvcHBlZFNuYXBzaG90SW1hZ2UuZ2V0
KCkpOwotICAgIGlmICghc3VyZmFjZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgc3Vy
ZmFjZS0+c2V0SXNWb2xhdGlsZSh0cnVlKTsKLQotICAgIHJldHVybiBWaWV3U25hcHNob3Q6OmNy
ZWF0ZShXVEY6Om1vdmUoc3VyZmFjZSkpOwotfQotCi0tICh2b2lkKV93aGVlbEV2ZW50V2FzTm90
SGFuZGxlZEJ5V2ViQ29yZTooTlNFdmVudCAqKWV2ZW50Ci17Ci0gICAgaWYgKF9kYXRhLT5fZ2Vz
dHVyZUNvbnRyb2xsZXIpCi0gICAgICAgIF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXItPndoZWVs
RXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGV2ZW50KTsKLX0KLQogLSAodm9pZClfc2V0QWNj
ZXNzaWJpbGl0eVdlYlByb2Nlc3NUb2tlbjooTlNEYXRhICopZGF0YQogewogICAgIF9kYXRhLT5f
cmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkID0gV0tBWFJlbW90ZUVsZW1lbnRGb3JUb2tlbihkYXRh
KTsKQEAgLTI3ODQsMTIgKzI2ODMsNiBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVl
RmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogfQogI2VuZGlmIC8vIFdLX0FQSV9FTkFC
TEVECiAKLS0gKHZvaWQpX2RpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFt
ZQotewotICAgIGlmIChfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyKQotICAgICAgICBfZGF0YS0+
X2dlc3R1cmVDb250cm9sbGVyLT5kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWlu
RnJhbWUoKTsKLX0KLQogI2lmIFdLX0FQSV9FTkFCTEVECiAtIChfV0tSZW1vdGVPYmplY3RSZWdp
c3RyeSAqKV9yZW1vdGVPYmplY3RSZWdpc3RyeQogewpAQCAtMjgwMiwzMCArMjY5NSw2IEBAIHN0
YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBh
dGgpCiB9CiAjZW5kaWYKIAotLSAodm9pZClfZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZQotewot
ICAgIGlmIChfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyKQotICAgICAgICBfZGF0YS0+X2dlc3R1
cmVDb250cm9sbGVyLT5kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCk7Ci19Ci0KLS0gKHZvaWQp
X2RpZEZhaWxMb2FkRm9yTWFpbkZyYW1lCi17Ci0gICAgaWYgKF9kYXRhLT5fZ2VzdHVyZUNvbnRy
b2xsZXIpCi0gICAgICAgIF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZhaWxMb2FkRm9y
TWFpbkZyYW1lKCk7Ci19Ci0KLS0gKHZvaWQpX2RpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JN
YWluRnJhbWU6KFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKXR5cGUKLXsKLSAgICBpZiAoX2Rh
dGEtPl9nZXN0dXJlQ29udHJvbGxlcikKLSAgICAgICAgX2RhdGEtPl9nZXN0dXJlQ29udHJvbGxl
ci0+ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZSh0eXBlKTsKLX0KLQotLSAo
dm9pZClfcmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdAotewotICAgIGlmIChfZGF0YS0+
X2dlc3R1cmVDb250cm9sbGVyKQotICAgICAgICBfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyLT5y
ZW1vdmVTd2lwZVNuYXBzaG90KCk7Ci19Ci0KICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMTEwMAogLSAodm9pZClfc3RhcnRXaW5kb3dEcmFnCiB7CkBAIC0zMDY0LDE0
ICsyOTMzLDEyIEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBh
dGgoTlNTdHJpbmcgKnBhdGgpCiAKIC0gKHZvaWQpc2V0QWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0
aW9uR2VzdHVyZXM6KEJPT0wpYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMKIHsK
LSAgICBfZGF0YS0+X2FsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzID0gYWxsb3dz
QmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXM7Ci0gICAgX2RhdGEtPl9wYWdlLT5zZXRTaG91
bGRSZWNvcmROYXZpZ2F0aW9uU25hcHNob3RzKGFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdl
c3R1cmVzKTsKLSAgICBfZGF0YS0+X3BhZ2UtPnNldFNob3VsZFVzZUltcGxpY2l0UnViYmVyQmFu
ZENvbnRyb2woYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMpOworICAgIF9kYXRh
LT5faW1wbC0+c2V0QWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMoYWxsb3dzQmFj
a0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMpOwogfQogCiAtIChCT09MKWFsbG93c0JhY2tGb3J3
YXJkTmF2aWdhdGlvbkdlc3R1cmVzCiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5fYWxsb3dzQmFja0Zv
cndhcmROYXZpZ2F0aW9uR2VzdHVyZXM7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+YWxsb3dz
QmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMoKTsKIH0KIAogLSAoQk9PTClhbGxvd3NMaW5r
UHJldmlldwpAQCAtMzI3MSwxNDUgKzMxMzgsNjkgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0
aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKIAogLSAodm9pZClzZXRBbGxv
d3NNYWduaWZpY2F0aW9uOihCT09MKWFsbG93c01hZ25pZmljYXRpb24KIHsKLSAgICBfZGF0YS0+
X2FsbG93c01hZ25pZmljYXRpb24gPSBhbGxvd3NNYWduaWZpY2F0aW9uOworICAgIF9kYXRhLT5f
aW1wbC0+c2V0QWxsb3dzTWFnbmlmaWNhdGlvbihhbGxvd3NNYWduaWZpY2F0aW9uKTsKIH0KIAog
LSAoQk9PTClhbGxvd3NNYWduaWZpY2F0aW9uCiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5fYWxsb3dz
TWFnbmlmaWNhdGlvbjsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5hbGxvd3NNYWduaWZpY2F0
aW9uKCk7CiB9CiAKIC0gKHZvaWQpbWFnbmlmeVdpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50CiB7
Ci0gICAgaWYgKCFfZGF0YS0+X2FsbG93c01hZ25pZmljYXRpb24pIHsKLSNpZiBFTkFCTEUoTUFD
X0dFU1RVUkVfRVZFTlRTKQotICAgICAgICBOYXRpdmVXZWJHZXN0dXJlRXZlbnQgd2ViRXZlbnQg
PSBOYXRpdmVXZWJHZXN0dXJlRXZlbnQoZXZlbnQsIHNlbGYpOwotICAgICAgICBfZGF0YS0+X3Bh
Z2UtPmhhbmRsZUdlc3R1cmVFdmVudCh3ZWJFdmVudCk7Ci0jZW5kaWYKLSAgICAgICAgW3N1cGVy
IG1hZ25pZnlXaXRoRXZlbnQ6ZXZlbnRdOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
W3NlbGYgX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uOk5P
XTsKLQotICAgIFtzZWxmIF9lbnN1cmVHZXN0dXJlQ29udHJvbGxlcl07Ci0KLSNpZiBFTkFCTEUo
TUFDX0dFU1RVUkVfRVZFTlRTKQotICAgIGlmIChfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyLT5o
YXNBY3RpdmVNYWduaWZpY2F0aW9uR2VzdHVyZSgpKSB7Ci0gICAgICAgIF9kYXRhLT5fZ2VzdHVy
ZUNvbnRyb2xsZXItPmhhbmRsZU1hZ25pZmljYXRpb25HZXN0dXJlRXZlbnQoZXZlbnQsIFtzZWxm
IGNvbnZlcnRQb2ludDpldmVudC5sb2NhdGlvbkluV2luZG93IGZyb21WaWV3Om5pbF0pOwotICAg
ICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgTmF0aXZlV2ViR2VzdHVyZUV2ZW50IHdlYkV2ZW50
ID0gTmF0aXZlV2ViR2VzdHVyZUV2ZW50KGV2ZW50LCBzZWxmKTsKLSAgICBfZGF0YS0+X3BhZ2Ut
PmhhbmRsZUdlc3R1cmVFdmVudCh3ZWJFdmVudCk7Ci0jZWxzZQotICAgIF9kYXRhLT5fZ2VzdHVy
ZUNvbnRyb2xsZXItPmhhbmRsZU1hZ25pZmljYXRpb25HZXN0dXJlRXZlbnQoZXZlbnQsIFtzZWxm
IGNvbnZlcnRQb2ludDpldmVudC5sb2NhdGlvbkluV2luZG93IGZyb21WaWV3Om5pbF0pOwotI2Vu
ZGlmCisgICAgX2RhdGEtPl9pbXBsLT5tYWduaWZ5V2l0aEV2ZW50KGV2ZW50KTsKIH0KIAogI2lm
IEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiAtICh2b2lkKXJvdGF0ZVdpdGhFdmVudDooTlNF
dmVudCAqKWV2ZW50CiB7Ci0gICAgTmF0aXZlV2ViR2VzdHVyZUV2ZW50IHdlYkV2ZW50ID0gTmF0
aXZlV2ViR2VzdHVyZUV2ZW50KGV2ZW50LCBzZWxmKTsKLSAgICBfZGF0YS0+X3BhZ2UtPmhhbmRs
ZUdlc3R1cmVFdmVudCh3ZWJFdmVudCk7CisgICAgX2RhdGEtPl9pbXBsLT5yb3RhdGVXaXRoRXZl
bnQoZXZlbnQpOwogfQogI2VuZGlmCiAKIC0gKHZvaWQpX2dlc3R1cmVFdmVudFdhc05vdEhhbmRs
ZWRCeVdlYkNvcmU6KE5TRXZlbnQgKilldmVudAogewotI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9F
VkVOVFMpCi0gICAgaWYgKF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXIpCi0gICAgICAgIF9kYXRh
LT5fZ2VzdHVyZUNvbnRyb2xsZXItPmdlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUo
ZXZlbnQsIFtzZWxmIGNvbnZlcnRQb2ludDpldmVudC5sb2NhdGlvbkluV2luZG93IGZyb21WaWV3
Om5pbF0pOwotI2VuZGlmCisgICAgX2RhdGEtPl9pbXBsLT5nZXN0dXJlRXZlbnRXYXNOb3RIYW5k
bGVkQnlXZWJDb3JlRnJvbVZpZXdPbmx5KGV2ZW50KTsKIH0KIAogLSAodm9pZClzbWFydE1hZ25p
ZnlXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAogewotICAgIGlmICghX2RhdGEtPl9hbGxvd3NN
YWduaWZpY2F0aW9uKSB7Ci0gICAgICAgIFtzdXBlciBzbWFydE1hZ25pZnlXaXRoRXZlbnQ6ZXZl
bnRdOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgW3NlbGYgX2Rpc21pc3NDb250ZW50
UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uOk5PXTsKLQotICAgIFtzZWxmIF9lbnN1
cmVHZXN0dXJlQ29udHJvbGxlcl07Ci0KLSAgICBfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyLT5o
YW5kbGVTbWFydE1hZ25pZmljYXRpb25HZXN0dXJlKFtzZWxmIGNvbnZlcnRQb2ludDpldmVudC5s
b2NhdGlvbkluV2luZG93IGZyb21WaWV3Om5pbF0pOworICAgIF9kYXRhLT5faW1wbC0+c21hcnRN
YWduaWZ5V2l0aEV2ZW50KGV2ZW50KTsKIH0KIAogLSAodm9pZClzZXRNYWduaWZpY2F0aW9uOihk
b3VibGUpbWFnbmlmaWNhdGlvbiBjZW50ZXJlZEF0UG9pbnQ6KE5TUG9pbnQpcG9pbnQKIHsKLSAg
ICBpZiAobWFnbmlmaWNhdGlvbiA8PSAwIHx8IGlzbmFuKG1hZ25pZmljYXRpb24pIHx8IGlzaW5m
KG1hZ25pZmljYXRpb24pKQotICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJn
dW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiTWFnbmlmaWNhdGlvbiBzaG91bGQgYmUgYSBwb3NpdGl2
ZSBudW1iZXIiXTsKLQotICAgIFtzZWxmIF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5k
b3dzV2l0aEFuaW1hdGlvbjpOT107Ci0KLSAgICBfZGF0YS0+X3BhZ2UtPnNjYWxlUGFnZUluVmll
d0Nvb3JkaW5hdGVzKG1hZ25pZmljYXRpb24sIHJvdW5kZWRJbnRQb2ludChwb2ludCkpOworICAg
IF9kYXRhLT5faW1wbC0+c2V0TWFnbmlmaWNhdGlvbihtYWduaWZpY2F0aW9uLCBOU1BvaW50VG9D
R1BvaW50KHBvaW50KSk7CiB9CiAKIC0gKHZvaWQpc2V0TWFnbmlmaWNhdGlvbjooZG91YmxlKW1h
Z25pZmljYXRpb24KIHsKLSAgICBpZiAobWFnbmlmaWNhdGlvbiA8PSAwIHx8IGlzbmFuKG1hZ25p
ZmljYXRpb24pIHx8IGlzaW5mKG1hZ25pZmljYXRpb24pKQotICAgICAgICBbTlNFeGNlcHRpb24g
cmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiTWFnbmlmaWNhdGlvbiBz
aG91bGQgYmUgYSBwb3NpdGl2ZSBudW1iZXIiXTsKLQotICAgIFtzZWxmIF9kaXNtaXNzQ29udGVu
dFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbjpOT107Ci0KLSAgICBGbG9hdFBvaW50
IHZpZXdDZW50ZXIoTlNNaWRYKFtzZWxmIGJvdW5kc10pLCBOU01pZFkoW3NlbGYgYm91bmRzXSkp
OwotICAgIF9kYXRhLT5fcGFnZS0+c2NhbGVQYWdlSW5WaWV3Q29vcmRpbmF0ZXMobWFnbmlmaWNh
dGlvbiwgcm91bmRlZEludFBvaW50KHZpZXdDZW50ZXIpKTsKKyAgICBfZGF0YS0+X2ltcGwtPnNl
dE1hZ25pZmljYXRpb24obWFnbmlmaWNhdGlvbik7CiB9CiAKIC0gKGRvdWJsZSltYWduaWZpY2F0
aW9uCiB7Ci0gICAgaWYgKF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXIpCi0gICAgICAgIHJldHVy
biBfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyLT5tYWduaWZpY2F0aW9uKCk7Ci0KLSAgICByZXR1
cm4gX2RhdGEtPl9wYWdlLT5wYWdlU2NhbGVGYWN0b3IoKTsKKyAgICByZXR1cm4gX2RhdGEtPl9p
bXBsLT5tYWduaWZpY2F0aW9uKCk7CiB9CiAKIC0gKHZvaWQpX3NldEN1c3RvbVN3aXBlVmlld3M6
KE5TQXJyYXkgKiljdXN0b21Td2lwZVZpZXdzCiB7Ci0gICAgaWYgKCFjdXN0b21Td2lwZVZpZXdz
LmNvdW50ICYmICFfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyKQotICAgICAgICByZXR1cm47Ci0K
LSAgICBbc2VsZiBfZW5zdXJlR2VzdHVyZUNvbnRyb2xsZXJdOwotCi0gICAgVmVjdG9yPFJldGFp
blB0cjxOU1ZpZXc+PiB2aWV3czsKLSAgICBmb3IgKE5TVmlldyAqdmlldyBpbiBjdXN0b21Td2lw
ZVZpZXdzKQotICAgICAgICB2aWV3cy5hcHBlbmQodmlldyk7Ci0KLSAgICBfZGF0YS0+X2dlc3R1
cmVDb250cm9sbGVyLT5zZXRDdXN0b21Td2lwZVZpZXdzKHZpZXdzKTsKKyAgICBfZGF0YS0+X2lt
cGwtPnNldEN1c3RvbVN3aXBlVmlld3MoY3VzdG9tU3dpcGVWaWV3cyk7CiB9CiAKIC0gKHZvaWQp
X3NldEN1c3RvbVN3aXBlVmlld3NUb3BDb250ZW50SW5zZXQ6KGZsb2F0KXRvcENvbnRlbnRJbnNl
dAogewotICAgIFtzZWxmIF9lbnN1cmVHZXN0dXJlQ29udHJvbGxlcl07Ci0gICAgX2RhdGEtPl9n
ZXN0dXJlQ29udHJvbGxlci0+c2V0Q3VzdG9tU3dpcGVWaWV3c1RvcENvbnRlbnRJbnNldCh0b3BD
b250ZW50SW5zZXQpOworICAgIF9kYXRhLT5faW1wbC0+c2V0Q3VzdG9tU3dpcGVWaWV3c1RvcENv
bnRlbnRJbnNldCh0b3BDb250ZW50SW5zZXQpOwogfQogCiAtIChCT09MKV90cnlUb1N3aXBlV2l0
aEV2ZW50OihOU0V2ZW50ICopZXZlbnQgaWdub3JpbmdQaW5uZWRTdGF0ZTooQk9PTClpZ25vcmlu
Z1Bpbm5lZFN0YXRlCiB7Ci0gICAgaWYgKCFfZGF0YS0+X2FsbG93c0JhY2tGb3J3YXJkTmF2aWdh
dGlvbkdlc3R1cmVzKQotICAgICAgICByZXR1cm4gTk87Ci0KLSAgICBbc2VsZiBfZW5zdXJlR2Vz
dHVyZUNvbnRyb2xsZXJdOwotCi0gICAgQk9PTCB3YXNJZ25vcmluZ1Bpbm5lZFN0YXRlID0gX2Rh
dGEtPl9nZXN0dXJlQ29udHJvbGxlci0+c2hvdWxkSWdub3JlUGlubmVkU3RhdGUoKTsKLSAgICBf
ZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyLT5zZXRTaG91bGRJZ25vcmVQaW5uZWRTdGF0ZShpZ25v
cmluZ1Bpbm5lZFN0YXRlKTsKLQotICAgIEJPT0wgaGFuZGxlZEV2ZW50ID0gX2RhdGEtPl9nZXN0
dXJlQ29udHJvbGxlci0+aGFuZGxlU2Nyb2xsV2hlZWxFdmVudChldmVudCk7Ci0KLSAgICBfZGF0
YS0+X2dlc3R1cmVDb250cm9sbGVyLT5zZXRTaG91bGRJZ25vcmVQaW5uZWRTdGF0ZSh3YXNJZ25v
cmluZ1Bpbm5lZFN0YXRlKTsKLQotICAgIHJldHVybiBoYW5kbGVkRXZlbnQ7CisgICAgcmV0dXJu
IF9kYXRhLT5faW1wbC0+dHJ5VG9Td2lwZVdpdGhFdmVudChldmVudCwgaWdub3JpbmdQaW5uZWRT
dGF0ZSk7CiB9CiAKIC0gKHZvaWQpX3NldERpZE1vdmVTd2lwZVNuYXBzaG90Q2FsbGJhY2s6KHZv
aWQoXikoQ0dSZWN0KSljYWxsYmFjawogewotICAgIGlmICghX2RhdGEtPl9hbGxvd3NCYWNrRm9y
d2FyZE5hdmlnYXRpb25HZXN0dXJlcykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgW3NlbGYgX2Vu
c3VyZUdlc3R1cmVDb250cm9sbGVyXTsKLSAgICBfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyLT5z
ZXREaWRNb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKGNhbGxiYWNrKTsKKyAgICBfZGF0YS0+X2lt
cGwtPnNldERpZE1vdmVTd2lwZVNuYXBzaG90Q2FsbGJhY2soY2FsbGJhY2spOwogfQogCiAtIChp
ZClfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6KFdL
SGl0VGVzdFJlc3VsdFJlZiloaXRUZXN0UmVzdWx0IHdpdGhUeXBlOih1aW50MzJfdCl0eXBlIHVz
ZXJEYXRhOihXS1R5cGVSZWYpdXNlckRhdGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCmluZGV4IDM2NDU0OGQuLmZkZTFlNDUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaApA
QCAtODcsOSArODcsNiBAQCBzdHJ1Y3QgRWRpdG9yU3RhdGU7CiAtIChOU1JlY3QpX2NvbnZlcnRU
b0RldmljZVNwYWNlOihOU1JlY3QpcmVjdDsKIC0gKE5TUmVjdClfY29udmVydFRvVXNlclNwYWNl
OihOU1JlY3QpcmVjdDsKIAotLSAoUGFzc1JlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4pX3Rh
a2VWaWV3U25hcHNob3Q7Ci0tICh2b2lkKV93aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29y
ZTooTlNFdmVudCAqKWV2ZW50OwotCiAtICh2b2lkKV9zZXRBY2Nlc3NpYmlsaXR5V2ViUHJvY2Vz
c1Rva2VuOihOU0RhdGEgKilkYXRhOwogCiAtICh2b2lkKV9kcmFnSW1hZ2VGb3JWaWV3OihOU1Zp
ZXcgKil2aWV3IHdpdGhJbWFnZTooTlNJbWFnZSAqKWltYWdlIGF0OihOU1BvaW50KWNsaWVudFBv
aW50IGxpbmtEcmFnOihCT09MKWxpbmtEcmFnOwpAQCAtMTA2LDEyICsxMDMsNiBAQCBzdHJ1Y3Qg
RWRpdG9yU3RhdGU7CiAtICh2b2lkKV9zZXRTdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzOihCT09M
KXN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXM7CiAtIChCT09MKV9zdXBwcmVzc1Zpc2liaWxpdHlV
cGRhdGVzOwogCi0tICh2b2lkKV9kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWlu
RnJhbWU7Ci0tICh2b2lkKV9kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lOwotLSAodm9pZClfZGlk
RmFpbExvYWRGb3JNYWluRnJhbWU7Ci0tICh2b2lkKV9kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9u
Rm9yTWFpbkZyYW1lOihXZWJLaXQ6OlNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlKXR5cGU7Ci0t
ICh2b2lkKV9yZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90OwotCiAjaWYgV0tfQVBJX0VO
QUJMRUQKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRodW1ibmFpbFZpZXc6KSBf
V0tUaHVtYm5haWxWaWV3ICpfdGh1bWJuYWlsVmlldzsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCBhNjliYmE5Li5hZDhhOGI1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtNTIs
NiArNTIsOSBAQCBPQkpDX0NMQVNTIF9XS1RodW1ibmFpbFZpZXc7CiAtIChOU1RleHRJbnB1dENv
bnRleHQgKilfc3VwZXJJbnB1dENvbnRleHQ7CiAtICh2b2lkKV9zdXBlclF1aWNrTG9va1dpdGhF
dmVudDooTlNFdmVudCAqKWV2ZW50OwogLSAodm9pZClfc3VwZXJSZW1vdmVUcmFja2luZ1JlY3Q6
KE5TVHJhY2tpbmdSZWN0VGFnKXRhZzsKKy0gKHZvaWQpX3N1cGVyU3dpcGVXaXRoRXZlbnQ6KE5T
RXZlbnQgKilldmVudDsKKy0gKHZvaWQpX3N1cGVyTWFnbmlmeVdpdGhFdmVudDooTlNFdmVudCAq
KWV2ZW50OworLSAodm9pZClfc3VwZXJTbWFydE1hZ25pZnlXaXRoRXZlbnQ6KE5TRXZlbnQgKill
dmVudDsKIAogLy8gVGhpcyBpcyBhIGhhY2s7IHRoZXNlIHRoaW5ncyBsaXZlIGNhbiBsaXZlIG9u
IGEgY2F0ZWdvcnkgKGUuZy4gV0tWaWV3IChQcml2YXRlKSkgYnV0IFdLVmlldyBpdHNlbGYgY29u
Zm9ybXMgdG8gdGhpcyBwcm90b2NvbC4KIC8vIFRoZXkncmUgbm90IGFjdHVhbGx5IG9wdGlvbmFs
LgpAQCAtNjMsMTEgKzY2LDEzIEBAIE9CSkNfQ0xBU1MgX1dLVGh1bWJuYWlsVmlldzsKIC0gKHZv
aWQpX2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uOwogLSAodm9pZClfZGlzbWlzc0Nv
bnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93czsKIC0gKHZvaWQpX2Rpc21pc3NDb250ZW50UmVsYXRp
dmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uOihCT09MKWFuaW1hdGU7CistICh2b2lkKV9nZXN0
dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOihOU0V2ZW50ICopZXZlbnQ7CiAKIEBlbmQK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFZpZXdHZXN0dXJlQ29udHJvbGxlcjsKIGNs
YXNzIFdlYkVkaXRDb21tYW5kUHJveHk7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiBzdHJ1Y3QgQ29s
b3JTcGFjZURhdGE7CkBAIC0yNTAsNiArMjU1LDMzIEBAIHB1YmxpYzoKICAgICB2b2lkIHJlZ2lz
dGVyRHJhZ2dlZFR5cGVzKCk7CiAjZW5kaWYKIAorICAgIFJlZlB0cjxWaWV3U25hcHNob3Q+IHRh
a2VWaWV3U25hcHNob3QoKTsKKworICAgIFZpZXdHZXN0dXJlQ29udHJvbGxlciogZ2VzdHVyZUNv
bnRyb2xsZXIoKSB7IHJldHVybiBtX2dlc3R1cmVDb250cm9sbGVyLmdldCgpOyB9CisgICAgVmll
d0dlc3R1cmVDb250cm9sbGVyJiBlbnN1cmVHZXN0dXJlQ29udHJvbGxlcigpOworICAgIHZvaWQg
cmVzZXRHZXN0dXJlQ29udHJvbGxlcigpOworICAgIHZvaWQgc2V0QWxsb3dzQmFja0ZvcndhcmRO
YXZpZ2F0aW9uR2VzdHVyZXMoYm9vbCk7CisgICAgYm9vbCBhbGxvd3NCYWNrRm9yd2FyZE5hdmln
YXRpb25HZXN0dXJlcygpIGNvbnN0IHsgcmV0dXJuIG1fYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0
aW9uR2VzdHVyZXM7IH0KKyAgICB2b2lkIHNldEFsbG93c01hZ25pZmljYXRpb24oYm9vbCk7Cisg
ICAgYm9vbCBhbGxvd3NNYWduaWZpY2F0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NNYWdu
aWZpY2F0aW9uOyB9CisKKyAgICB2b2lkIHNldE1hZ25pZmljYXRpb24oZG91YmxlLCBDR1BvaW50
IGNlbnRlclBvaW50KTsKKyAgICB2b2lkIHNldE1hZ25pZmljYXRpb24oZG91YmxlKTsKKyAgICBk
b3VibGUgbWFnbmlmaWNhdGlvbigpIGNvbnN0OworICAgIHZvaWQgc2V0Q3VzdG9tU3dpcGVWaWV3
cyhOU0FycmF5ICopOworICAgIHZvaWQgc2V0Q3VzdG9tU3dpcGVWaWV3c1RvcENvbnRlbnRJbnNl
dChmbG9hdCk7CisgICAgYm9vbCB0cnlUb1N3aXBlV2l0aEV2ZW50KE5TRXZlbnQgKiwgYm9vbCBp
Z25vcmluZ1Bpbm5lZFN0YXRlKTsKKyAgICB2b2lkIHNldERpZE1vdmVTd2lwZVNuYXBzaG90Q2Fs
bGJhY2sodm9pZCheKShDR1JlY3QpKTsKKworICAgIHZvaWQgc2Nyb2xsV2hlZWwoTlNFdmVudCAq
KTsKKyAgICB2b2lkIHN3aXBlV2l0aEV2ZW50KE5TRXZlbnQgKik7CisgICAgdm9pZCBtYWduaWZ5
V2l0aEV2ZW50KE5TRXZlbnQgKik7CisgICAgdm9pZCByb3RhdGVXaXRoRXZlbnQoTlNFdmVudCAq
KTsKKyAgICB2b2lkIHNtYXJ0TWFnbmlmeVdpdGhFdmVudChOU0V2ZW50ICopOworCisgICAgdm9p
ZCBnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKE5TRXZlbnQgKik7CisgICAgdm9p
ZCBnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlRnJvbVZpZXdPbmx5KE5TRXZlbnQg
Kik7CisKIHByaXZhdGU6CiAgICAgV2Vha1B0cjxXZWJWaWV3SW1wbD4gY3JlYXRlV2Vha1B0cigp
IHsgcmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKQEAgLTM0Niw2
ICszNzgsMTAgQEAgcHJpdmF0ZToKICNpZiBXS19BUElfRU5BQkxFRAogICAgIF9XS1RodW1ibmFp
bFZpZXcgKm1fdGh1bWJuYWlsVmlldyB7IG51bGxwdHIgfTsKICNlbmRpZgorCisgICAgc3RkOjp1
bmlxdWVfcHRyPFZpZXdHZXN0dXJlQ29udHJvbGxlcj4gbV9nZXN0dXJlQ29udHJvbGxlcjsKKyAg
ICBib29sIG1fYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMgeyBmYWxzZSB9Owor
ICAgIGJvb2wgbV9hbGxvd3NNYWduaWZpY2F0aW9uIHsgZmFsc2UgfTsKIH07CiAgICAgCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQppbmRleCAwYzZkOTI0Li5iNGIwNDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0zMSwxMSArMzEsMTQgQEAKICNpbXBv
cnQgIkNvbG9yU3BhY2VEYXRhLmgiCiAjaW1wb3J0ICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbXBv
cnQgIkxvZ2dpbmcuaCIKKyNpbXBvcnQgIk5hdGl2ZVdlYkdlc3R1cmVFdmVudC5oIgogI2ltcG9y
dCAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgogI2ltcG9ydCAiTmF0aXZlV2ViTW91c2VFdmVu
dC5oIgorI2ltcG9ydCAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgogI2ltcG9ydCAiUGFnZUNsaWVu
dC5oIgogI2ltcG9ydCAiUGFzdGVib2FyZFR5cGVzLmgiCiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRp
ZXMuaCIKKyNpbXBvcnQgIlZpZXdHZXN0dXJlQ29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tGdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tJbW1lZGlhdGVBY3Rpb25Db250
cm9sbGVyLmgiCiAjaW1wb3J0ICJXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCIKQEAgLTE4
MDksNiArMTgxMiwyNjQgQEAgdm9pZCBXZWJWaWV3SW1wbDo6cmVnaXN0ZXJEcmFnZ2VkVHlwZXMo
KQogfQogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKK3N0YXRpYyBSZXRhaW5QdHI8
Q0dJbWFnZVJlZj4gdGFrZVdpbmRvd1NuYXBzaG90KENHU1dpbmRvd0lEIHdpbmRvd0lELCBib29s
IGNhcHR1cmVBdE5vbWluYWxSZXNvbHV0aW9uKQoreworICAgIENHU1dpbmRvd0NhcHR1cmVPcHRp
b25zIG9wdGlvbnMgPSBrQ0dTQ2FwdHVyZUlnbm9yZUdsb2JhbENsaXBTaGFwZTsKKyAgICBpZiAo
Y2FwdHVyZUF0Tm9taW5hbFJlc29sdXRpb24pCisgICAgICAgIG9wdGlvbnMgfD0ga0NHU1dpbmRv
d0NhcHR1cmVOb21pbmFsUmVzb2x1dGlvbjsKKyAgICBSZXRhaW5QdHI8Q0ZBcnJheVJlZj4gd2lu
ZG93U25hcHNob3RJbWFnZXMgPSBhZG9wdENGKENHU0hXQ2FwdHVyZVdpbmRvd0xpc3QoQ0dTTWFp
bkNvbm5lY3Rpb25JRCgpLCAmd2luZG93SUQsIDEsIG9wdGlvbnMpKTsKKworICAgIGlmICh3aW5k
b3dTbmFwc2hvdEltYWdlcyAmJiBDRkFycmF5R2V0Q291bnQod2luZG93U25hcHNob3RJbWFnZXMu
Z2V0KCkpKQorICAgICAgICByZXR1cm4gKENHSW1hZ2VSZWYpQ0ZBcnJheUdldFZhbHVlQXRJbmRl
eCh3aW5kb3dTbmFwc2hvdEltYWdlcy5nZXQoKSwgMCk7CisKKyAgICAvLyBGYWxsIGJhY2sgdG8g
dGhlIG5vbi1oYXJkd2FyZSBjYXB0dXJlIHBhdGggaWYgd2UgZGlkbid0IGdldCBhIHNuYXBzaG90
CisgICAgLy8gKHdoaWNoIHVzdWFsbHkgaGFwcGVucyBpZiB0aGUgd2luZG93IGlzIGZ1bGx5IG9m
Zi1zY3JlZW4pLgorICAgIENHV2luZG93SW1hZ2VPcHRpb24gaW1hZ2VPcHRpb25zID0ga0NHV2lu
ZG93SW1hZ2VCb3VuZHNJZ25vcmVGcmFtaW5nIHwga0NHV2luZG93SW1hZ2VTaG91bGRCZU9wYXF1
ZTsKKyAgICBpZiAoY2FwdHVyZUF0Tm9taW5hbFJlc29sdXRpb24pCisgICAgICAgIGltYWdlT3B0
aW9ucyB8PSBrQ0dXaW5kb3dJbWFnZU5vbWluYWxSZXNvbHV0aW9uOworICAgIHJldHVybiBhZG9w
dENGKENHV2luZG93TGlzdENyZWF0ZUltYWdlKENHUmVjdE51bGwsIGtDR1dpbmRvd0xpc3RPcHRp
b25JbmNsdWRpbmdXaW5kb3csIHdpbmRvd0lELCBpbWFnZU9wdGlvbnMpKTsKK30KKworUmVmUHRy
PFZpZXdTbmFwc2hvdD4gV2ViVmlld0ltcGw6OnRha2VWaWV3U25hcHNob3QoKQoreworICAgIE5T
V2luZG93ICp3aW5kb3cgPSBtX3ZpZXcud2luZG93OworCisgICAgQ0dTV2luZG93SUQgd2luZG93
SUQgPSAoQ0dTV2luZG93SUQpd2luZG93LndpbmRvd051bWJlcjsKKyAgICBpZiAoIXdpbmRvd0lE
IHx8ICF3aW5kb3cuaXNWaXNpYmxlKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIFJl
dGFpblB0cjxDR0ltYWdlUmVmPiB3aW5kb3dTbmFwc2hvdEltYWdlID0gdGFrZVdpbmRvd1NuYXBz
aG90KHdpbmRvd0lELCBmYWxzZSk7CisgICAgaWYgKCF3aW5kb3dTbmFwc2hvdEltYWdlKQorICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIC8vIFdvcmsgYXJvdW5kIDxyZGFyOi8vcHJvYmxl
bS8xNzA4NDk5Mz47IHJlLXJlcXVlc3QgdGhlIHNuYXBzaG90IGF0IGtDR1dpbmRvd0ltYWdlTm9t
aW5hbFJlc29sdXRpb24gaWYgaXQgd2FzIGNhcHR1cmVkIGF0IHRoZSB3cm9uZyBzY2FsZS4KKyAg
ICBDR0Zsb2F0IGRlc2lyZWRTbmFwc2hvdFdpZHRoID0gd2luZG93LmZyYW1lLnNpemUud2lkdGgg
KiB3aW5kb3cuc2NyZWVuLmJhY2tpbmdTY2FsZUZhY3RvcjsKKyAgICBpZiAoQ0dJbWFnZUdldFdp
ZHRoKHdpbmRvd1NuYXBzaG90SW1hZ2UuZ2V0KCkpICE9IGRlc2lyZWRTbmFwc2hvdFdpZHRoKQor
ICAgICAgICB3aW5kb3dTbmFwc2hvdEltYWdlID0gdGFrZVdpbmRvd1NuYXBzaG90KHdpbmRvd0lE
LCB0cnVlKTsKKworICAgIGlmICghd2luZG93U25hcHNob3RJbWFnZSkKKyAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisKKyAgICBWaWV3R2VzdHVyZUNvbnRyb2xsZXImIGdlc3R1cmVDb250cm9sbGVy
ID0gZW5zdXJlR2VzdHVyZUNvbnRyb2xsZXIoKTsKKworICAgIE5TUmVjdCB3aW5kb3dDYXB0dXJl
UmVjdDsKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3QgYm91bmRzRm9yQ3VzdG9tU3dpcGVWaWV3cyA9
IGdlc3R1cmVDb250cm9sbGVyLndpbmRvd1JlbGF0aXZlQm91bmRzRm9yQ3VzdG9tU3dpcGVWaWV3
cygpOworICAgIGlmICghYm91bmRzRm9yQ3VzdG9tU3dpcGVWaWV3cy5pc0VtcHR5KCkpCisgICAg
ICAgIHdpbmRvd0NhcHR1cmVSZWN0ID0gYm91bmRzRm9yQ3VzdG9tU3dpcGVWaWV3czsKKyAgICBl
bHNlIHsKKyAgICAgICAgTlNSZWN0IHVub2JzY3VyZWRCb3VuZHMgPSBtX3ZpZXcuYm91bmRzOwor
ICAgICAgICBmbG9hdCB0b3BDb250ZW50SW5zZXQgPSBtX3BhZ2UudG9wQ29udGVudEluc2V0KCk7
CisgICAgICAgIHVub2JzY3VyZWRCb3VuZHMub3JpZ2luLnkgKz0gdG9wQ29udGVudEluc2V0Owor
ICAgICAgICB1bm9ic2N1cmVkQm91bmRzLnNpemUuaGVpZ2h0IC09IHRvcENvbnRlbnRJbnNldDsK
KyAgICAgICAgd2luZG93Q2FwdHVyZVJlY3QgPSBbbV92aWV3IGNvbnZlcnRSZWN0OnVub2JzY3Vy
ZWRCb3VuZHMgdG9WaWV3Om5pbF07CisgICAgfQorCisgICAgTlNSZWN0IHdpbmRvd0NhcHR1cmVT
Y3JlZW5SZWN0ID0gW3dpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVuOndpbmRvd0NhcHR1cmVSZWN0
XTsKKyAgICBDR1JlY3Qgd2luZG93U2NyZWVuUmVjdDsKKyAgICBDR1NHZXRTY3JlZW5SZWN0Rm9y
V2luZG93KENHU01haW5Db25uZWN0aW9uSUQoKSwgKENHU1dpbmRvd0lEKVt3aW5kb3cgd2luZG93
TnVtYmVyXSwgJndpbmRvd1NjcmVlblJlY3QpOworCisgICAgTlNSZWN0IGNyb3BwZWRJbWFnZVJl
Y3QgPSB3aW5kb3dDYXB0dXJlUmVjdDsKKyAgICBjcm9wcGVkSW1hZ2VSZWN0Lm9yaWdpbi55ID0g
d2luZG93U2NyZWVuUmVjdC5zaXplLmhlaWdodCAtIHdpbmRvd0NhcHR1cmVTY3JlZW5SZWN0LnNp
emUuaGVpZ2h0IC0gTlNNaW5ZKHdpbmRvd0NhcHR1cmVSZWN0KTsKKworICAgIGF1dG8gY3JvcHBl
ZFNuYXBzaG90SW1hZ2UgPSBhZG9wdENGKENHSW1hZ2VDcmVhdGVXaXRoSW1hZ2VJblJlY3Qod2lu
ZG93U25hcHNob3RJbWFnZS5nZXQoKSwgTlNSZWN0VG9DR1JlY3QoW3dpbmRvdyBjb252ZXJ0UmVj
dFRvQmFja2luZzpjcm9wcGVkSW1hZ2VSZWN0XSkpKTsKKworICAgIGF1dG8gc3VyZmFjZSA9IFdl
YkNvcmU6OklPU3VyZmFjZTo6Y3JlYXRlRnJvbUltYWdlKGNyb3BwZWRTbmFwc2hvdEltYWdlLmdl
dCgpKTsKKyAgICBpZiAoIXN1cmZhY2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIHN1
cmZhY2UtPnNldElzVm9sYXRpbGUodHJ1ZSk7CisKKyAgICByZXR1cm4gVmlld1NuYXBzaG90Ojpj
cmVhdGUoV1RGOjptb3ZlKHN1cmZhY2UpKTsKK30KKworVmlld0dlc3R1cmVDb250cm9sbGVyJiBX
ZWJWaWV3SW1wbDo6ZW5zdXJlR2VzdHVyZUNvbnRyb2xsZXIoKQoreworICAgIGlmICghbV9nZXN0
dXJlQ29udHJvbGxlcikKKyAgICAgICAgbV9nZXN0dXJlQ29udHJvbGxlciA9IHN0ZDo6bWFrZV91
bmlxdWU8Vmlld0dlc3R1cmVDb250cm9sbGVyPihtX3BhZ2UpOworICAgIHJldHVybiAqbV9nZXN0
dXJlQ29udHJvbGxlcjsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6cmVzZXRHZXN0dXJlQ29udHJv
bGxlcigpCit7CisgICAgbV9nZXN0dXJlQ29udHJvbGxlciA9IG51bGxwdHI7Cit9CisKK3ZvaWQg
V2ViVmlld0ltcGw6OnNldEFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzKGJvb2wg
YWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMpCit7CisgICAgbV9hbGxvd3NCYWNr
Rm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcyA9IGFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdl
c3R1cmVzOworICAgIG1fcGFnZS5zZXRTaG91bGRSZWNvcmROYXZpZ2F0aW9uU25hcHNob3RzKGFs
bG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzKTsKKyAgICBtX3BhZ2Uuc2V0U2hvdWxk
VXNlSW1wbGljaXRSdWJiZXJCYW5kQ29udHJvbChhbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25H
ZXN0dXJlcyk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldEFsbG93c01hZ25pZmljYXRpb24o
Ym9vbCBhbGxvd3NNYWduaWZpY2F0aW9uKQoreworICAgIG1fYWxsb3dzTWFnbmlmaWNhdGlvbiA9
IGFsbG93c01hZ25pZmljYXRpb247Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldE1hZ25pZmlj
YXRpb24oZG91YmxlIG1hZ25pZmljYXRpb24sIENHUG9pbnQgY2VudGVyUG9pbnQpCit7CisgICAg
aWYgKG1hZ25pZmljYXRpb24gPD0gMCB8fCBpc25hbihtYWduaWZpY2F0aW9uKSB8fCBpc2luZiht
YWduaWZpY2F0aW9uKSkKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3Vt
ZW50RXhjZXB0aW9uIGZvcm1hdDpAIk1hZ25pZmljYXRpb24gc2hvdWxkIGJlIGEgcG9zaXRpdmUg
bnVtYmVyIl07CisKKyAgICBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFu
aW1hdGlvbihmYWxzZSk7CisKKyAgICBtX3BhZ2Uuc2NhbGVQYWdlSW5WaWV3Q29vcmRpbmF0ZXMo
bWFnbmlmaWNhdGlvbiwgV2ViQ29yZTo6cm91bmRlZEludFBvaW50KGNlbnRlclBvaW50KSk7Cit9
CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldE1hZ25pZmljYXRpb24oZG91YmxlIG1hZ25pZmljYXRp
b24pCit7CisgICAgaWYgKG1hZ25pZmljYXRpb24gPD0gMCB8fCBpc25hbihtYWduaWZpY2F0aW9u
KSB8fCBpc2luZihtYWduaWZpY2F0aW9uKSkKKyAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5T
SW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIk1hZ25pZmljYXRpb24gc2hvdWxkIGJl
IGEgcG9zaXRpdmUgbnVtYmVyIl07CisKKyAgICBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRX
aW5kb3dzV2l0aEFuaW1hdGlvbihmYWxzZSk7CisKKyAgICBXZWJDb3JlOjpGbG9hdFBvaW50IHZp
ZXdDZW50ZXIoTlNNaWRYKFttX3ZpZXcgYm91bmRzXSksIE5TTWlkWShbbV92aWV3IGJvdW5kc10p
KTsKKyAgICBtX3BhZ2Uuc2NhbGVQYWdlSW5WaWV3Q29vcmRpbmF0ZXMobWFnbmlmaWNhdGlvbiwg
cm91bmRlZEludFBvaW50KHZpZXdDZW50ZXIpKTsKK30KKworZG91YmxlIFdlYlZpZXdJbXBsOjpt
YWduaWZpY2F0aW9uKCkgY29uc3QKK3sKKyAgICBpZiAobV9nZXN0dXJlQ29udHJvbGxlcikKKyAg
ICAgICAgcmV0dXJuIG1fZ2VzdHVyZUNvbnRyb2xsZXItPm1hZ25pZmljYXRpb24oKTsKKyAgICBy
ZXR1cm4gbV9wYWdlLnBhZ2VTY2FsZUZhY3RvcigpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpz
ZXRDdXN0b21Td2lwZVZpZXdzKE5TQXJyYXkgKmN1c3RvbVN3aXBlVmlld3MpCit7CisgICAgaWYg
KCFjdXN0b21Td2lwZVZpZXdzLmNvdW50ICYmICFtX2dlc3R1cmVDb250cm9sbGVyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBWZWN0b3I8UmV0YWluUHRyPE5TVmlldz4+IHZpZXdzOworICAgIHZp
ZXdzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY3VzdG9tU3dpcGVWaWV3cy5jb3VudCk7CisgICAg
Zm9yIChOU1ZpZXcgKnZpZXcgaW4gY3VzdG9tU3dpcGVWaWV3cykKKyAgICAgICAgdmlld3MudW5j
aGVja2VkQXBwZW5kKHZpZXcpOworCisgICAgZW5zdXJlR2VzdHVyZUNvbnRyb2xsZXIoKS5zZXRD
dXN0b21Td2lwZVZpZXdzKHZpZXdzKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0Q3VzdG9t
U3dpcGVWaWV3c1RvcENvbnRlbnRJbnNldChmbG9hdCB0b3BDb250ZW50SW5zZXQpCit7CisgICAg
ZW5zdXJlR2VzdHVyZUNvbnRyb2xsZXIoKS5zZXRDdXN0b21Td2lwZVZpZXdzVG9wQ29udGVudElu
c2V0KHRvcENvbnRlbnRJbnNldCk7Cit9CisKK2Jvb2wgV2ViVmlld0ltcGw6OnRyeVRvU3dpcGVX
aXRoRXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgaWdub3JpbmdQaW5uZWRTdGF0ZSkKK3sKKyAg
ICBpZiAoIW1fYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKworICAgIGF1dG8mIGdlc3R1cmVDb250cm9sbGVyID0gZW5zdXJlR2VzdHVy
ZUNvbnRyb2xsZXIoKTsKKworICAgIGJvb2wgd2FzSWdub3JpbmdQaW5uZWRTdGF0ZSA9IGdlc3R1
cmVDb250cm9sbGVyLnNob3VsZElnbm9yZVBpbm5lZFN0YXRlKCk7CisgICAgZ2VzdHVyZUNvbnRy
b2xsZXIuc2V0U2hvdWxkSWdub3JlUGlubmVkU3RhdGUoaWdub3JpbmdQaW5uZWRTdGF0ZSk7CisK
KyAgICBib29sIGhhbmRsZWRFdmVudCA9IGdlc3R1cmVDb250cm9sbGVyLmhhbmRsZVNjcm9sbFdo
ZWVsRXZlbnQoZXZlbnQpOworCisgICAgZ2VzdHVyZUNvbnRyb2xsZXIuc2V0U2hvdWxkSWdub3Jl
UGlubmVkU3RhdGUod2FzSWdub3JpbmdQaW5uZWRTdGF0ZSk7CisgICAgCisgICAgcmV0dXJuIGhh
bmRsZWRFdmVudDsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0RGlkTW92ZVN3aXBlU25hcHNo
b3RDYWxsYmFjayh2b2lkKF5jYWxsYmFjaykoQ0dSZWN0KSkKK3sKKyAgICBpZiAoIW1fYWxsb3dz
QmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMpCisgICAgICAgIHJldHVybjsKKworICAgIGVu
c3VyZUdlc3R1cmVDb250cm9sbGVyKCkuc2V0RGlkTW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayhj
YWxsYmFjayk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNjcm9sbFdoZWVsKE5TRXZlbnQgKmV2
ZW50KQoreworICAgIGlmIChtX2lnbm9yZXNBbGxFdmVudHMpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmIChldmVudC5waGFzZSA9PSBOU0V2ZW50UGhhc2VCZWdhbikKKyAgICAgICAgZGlzbWlz
c0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb24oZmFsc2UpOworCisgICAg
aWYgKG1fYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMgJiYgZW5zdXJlR2VzdHVy
ZUNvbnRyb2xsZXIoKS5oYW5kbGVTY3JvbGxXaGVlbEV2ZW50KGV2ZW50KSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgTmF0aXZlV2ViV2hlZWxFdmVudCB3ZWJFdmVudCA9IE5hdGl2ZVdlYldoZWVs
RXZlbnQoZXZlbnQsIG1fdmlldyk7CisgICAgbV9wYWdlLmhhbmRsZVdoZWVsRXZlbnQod2ViRXZl
bnQpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzd2lwZVdpdGhFdmVudChOU0V2ZW50ICpldmVu
dCkKK3sKKyAgICBpZiAobV9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAgICAgIHJldHVybjsK
KworICAgIGlmICghbV9hbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcykgeworICAg
ICAgICBbbV92aWV3IF9zdXBlclN3aXBlV2l0aEV2ZW50OmV2ZW50XTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIGlmIChldmVudC5kZWx0YVggPiAwLjApCisgICAgICAgIG1fcGFnZS5n
b0JhY2soKTsKKyAgICBlbHNlIGlmIChldmVudC5kZWx0YVggPCAwLjApCisgICAgICAgIG1fcGFn
ZS5nb0ZvcndhcmQoKTsKKyAgICBlbHNlCisgICAgICAgIFttX3ZpZXcgX3N1cGVyU3dpcGVXaXRo
RXZlbnQ6ZXZlbnRdOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjptYWduaWZ5V2l0aEV2ZW50KE5T
RXZlbnQgKmV2ZW50KQoreworICAgIGlmICghbV9hbGxvd3NNYWduaWZpY2F0aW9uKSB7CisjaWYg
RU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKyAgICAgICAgTmF0aXZlV2ViR2VzdHVyZUV2ZW50
IHdlYkV2ZW50ID0gTmF0aXZlV2ViR2VzdHVyZUV2ZW50KGV2ZW50LCBtX3ZpZXcpOworICAgICAg
ICBtX3BhZ2UuaGFuZGxlR2VzdHVyZUV2ZW50KHdlYkV2ZW50KTsKKyNlbmRpZgorICAgICAgICBb
bV92aWV3IF9zdXBlck1hZ25pZnlXaXRoRXZlbnQ6ZXZlbnRdOworICAgICAgICByZXR1cm47Cisg
ICAgfQorCisgICAgZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRp
b24oZmFsc2UpOworCisgICAgYXV0byYgZ2VzdHVyZUNvbnRyb2xsZXIgPSBlbnN1cmVHZXN0dXJl
Q29udHJvbGxlcigpOworCisjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKyAgICBpZiAo
Z2VzdHVyZUNvbnRyb2xsZXIuaGFzQWN0aXZlTWFnbmlmaWNhdGlvbkdlc3R1cmUoKSkgeworICAg
ICAgICBnZXN0dXJlQ29udHJvbGxlci5oYW5kbGVNYWduaWZpY2F0aW9uR2VzdHVyZUV2ZW50KGV2
ZW50LCBbbV92aWV3IGNvbnZlcnRQb2ludDpldmVudC5sb2NhdGlvbkluV2luZG93IGZyb21WaWV3
Om5pbF0pOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgTmF0aXZlV2ViR2VzdHVyZUV2
ZW50IHdlYkV2ZW50ID0gTmF0aXZlV2ViR2VzdHVyZUV2ZW50KGV2ZW50LCBtX3ZpZXcpOworICAg
IG1fcGFnZS5oYW5kbGVHZXN0dXJlRXZlbnQod2ViRXZlbnQpOworI2Vsc2UKKyAgICBnZXN0dXJl
Q29udHJvbGxlci5oYW5kbGVNYWduaWZpY2F0aW9uR2VzdHVyZUV2ZW50KGV2ZW50LCBbbV92aWV3
IGNvbnZlcnRQb2ludDpldmVudC5sb2NhdGlvbkluV2luZG93IGZyb21WaWV3Om5pbF0pOworI2Vu
ZGlmCit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNtYXJ0TWFnbmlmeVdpdGhFdmVudChOU0V2ZW50
ICpldmVudCkKK3sKKyAgICBpZiAoIW1fYWxsb3dzTWFnbmlmaWNhdGlvbikgeworICAgICAgICBb
bV92aWV3IF9zdXBlclNtYXJ0TWFnbmlmeVdpdGhFdmVudDpldmVudF07CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisKKyAgICBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFu
aW1hdGlvbihmYWxzZSk7CisKKyAgICBlbnN1cmVHZXN0dXJlQ29udHJvbGxlcigpLmhhbmRsZVNt
YXJ0TWFnbmlmaWNhdGlvbkdlc3R1cmUoW21fdmlldyBjb252ZXJ0UG9pbnQ6ZXZlbnQubG9jYXRp
b25JbldpbmRvdyBmcm9tVmlldzpuaWxdKTsKK30KKworI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9F
VkVOVFMpCit2b2lkIFdlYlZpZXdJbXBsOjpyb3RhdGVXaXRoRXZlbnQoTlNFdmVudCAqZXZlbnQp
Cit7CisgICAgTmF0aXZlV2ViR2VzdHVyZUV2ZW50IHdlYkV2ZW50ID0gTmF0aXZlV2ViR2VzdHVy
ZUV2ZW50KGV2ZW50LCBtX3ZpZXcpOworICAgIG1fcGFnZS5oYW5kbGVHZXN0dXJlRXZlbnQod2Vi
RXZlbnQpOworfQorI2VuZGlmCisKK3ZvaWQgV2ViVmlld0ltcGw6Omdlc3R1cmVFdmVudFdhc05v
dEhhbmRsZWRCeVdlYkNvcmUoTlNFdmVudCAqZXZlbnQpCit7CisgICAgW21fdmlldyBfZ2VzdHVy
ZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZTpldmVudF07Cit9CisKK3ZvaWQgV2ViVmlld0lt
cGw6Omdlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmVGcm9tVmlld09ubHkoTlNFdmVu
dCAqZXZlbnQpCit7CisjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKyAgICBpZiAobV9n
ZXN0dXJlQ29udHJvbGxlcikKKyAgICAgICAgbV9nZXN0dXJlQ29udHJvbGxlci0+Z2VzdHVyZUV2
ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShldmVudCwgW21fdmlldyBjb252ZXJ0UG9pbnQ6ZXZl
bnQubG9jYXRpb25JbldpbmRvdyBmcm9tVmlldzpuaWxdKTsKKyNlbmRpZgorfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCmluZGV4IDQyOWU2YWIuLmEzOGIx
YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudElt
cGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5t
bQpAQCAtMzcsNiArMzcsNyBAQAogI2ltcG9ydCAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgogI2lt
cG9ydCAiTmF2aWdhdGlvblN0YXRlLmgiCiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKKyNp
bXBvcnQgIlZpZXdHZXN0dXJlQ29udHJvbGxlci5oIgogI2ltcG9ydCAiVmlld1NuYXBzaG90U3Rv
cmUuaCIKICNpbXBvcnQgIldLQVBJQ2FzdC5oIgogI2ltcG9ydCAiV0tGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlci5oIgpAQCAtNTE0LDcgKzUxNSw3IEBAIENBTGF5ZXIgKlBhZ2VDbGllbnRJbXBs
OjphY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKCkgY29uc3QKIAogUGFzc1JlZlB0cjxW
aWV3U25hcHNob3Q+IFBhZ2VDbGllbnRJbXBsOjp0YWtlVmlld1NuYXBzaG90KCkKIHsKLSAgICBy
ZXR1cm4gW21fd2tWaWV3IF90YWtlVmlld1NuYXBzaG90XTsKKyAgICByZXR1cm4gbV9pbXBsLT50
YWtlVmlld1NuYXBzaG90KCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnNlbGVjdGlvbkRp
ZENoYW5nZSgpCkBAIC01MjQsNyArNTI1LDggQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2VsZWN0
aW9uRGlkQ2hhbmdlKCkKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6d2hlZWxFdmVudFdhc05vdEhh
bmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYgZXZlbnQpCiB7Ci0gICAg
W21fd2tWaWV3IF93aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZTpldmVudC5uYXRpdmVF
dmVudCgpXTsKKyAgICBpZiAoYXV0byBnZXN0dXJlQ29udHJvbGxlciA9IG1faW1wbC0+Z2VzdHVy
ZUNvbnRyb2xsZXIoKSkKKyAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPndoZWVsRXZlbnRXYXNO
b3RIYW5kbGVkQnlXZWJDb3JlKGV2ZW50Lm5hdGl2ZUV2ZW50KCkpOwogfQogCiAjaWYgRU5BQkxF
KE1BQ19HRVNUVVJFX0VWRU5UUykKQEAgLTc0NywyNyArNzQ5LDMyIEBAIHZvaWQgUGFnZUNsaWVu
dEltcGw6OmRpZFJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKQogCiB2b2lkIFBhZ2VD
bGllbnRJbXBsOjpkaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKQog
ewotICAgIFttX3drVmlldyBfZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZy
YW1lXTsKKyAgICBpZiAoYXV0byBnZXN0dXJlQ29udHJvbGxlciA9IG1faW1wbC0+Z2VzdHVyZUNv
bnRyb2xsZXIoKSkKKyAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZpcnN0VmlzdWFsbHlO
b25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpk
aWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCkKIHsKLSAgICBbbV93a1ZpZXcgX2RpZEZpbmlzaExv
YWRGb3JNYWluRnJhbWVdOworICAgIGlmIChhdXRvIGdlc3R1cmVDb250cm9sbGVyID0gbV9pbXBs
LT5nZXN0dXJlQ29udHJvbGxlcigpKQorICAgICAgICBnZXN0dXJlQ29udHJvbGxlci0+ZGlkRmlu
aXNoTG9hZEZvck1haW5GcmFtZSgpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGYWls
TG9hZEZvck1haW5GcmFtZSgpCiB7Ci0gICAgW21fd2tWaWV3IF9kaWRGYWlsTG9hZEZvck1haW5G
cmFtZV07CisgICAgaWYgKGF1dG8gZ2VzdHVyZUNvbnRyb2xsZXIgPSBtX2ltcGwtPmdlc3R1cmVD
b250cm9sbGVyKCkpCisgICAgICAgIGdlc3R1cmVDb250cm9sbGVyLT5kaWRGYWlsTG9hZEZvck1h
aW5GcmFtZSgpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlIHR5cGUpCiB7Ci0g
ICAgW21fd2tWaWV3IF9kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lOnR5cGVd
OworICAgIGlmIChhdXRvIGdlc3R1cmVDb250cm9sbGVyID0gbV9pbXBsLT5nZXN0dXJlQ29udHJv
bGxlcigpKQorICAgICAgICBnZXN0dXJlQ29udHJvbGxlci0+ZGlkU2FtZURvY3VtZW50TmF2aWdh
dGlvbkZvck1haW5GcmFtZSh0eXBlKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVtb3Zl
TmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgpCiB7Ci0gICAgW21fd2tWaWV3IF9yZW1vdmVOYXZp
Z2F0aW9uR2VzdHVyZVNuYXBzaG90XTsKKyAgICBpZiAoYXV0byBnZXN0dXJlQ29udHJvbGxlciA9
IG1faW1wbC0+Z2VzdHVyZUNvbnRyb2xsZXIoKSkKKyAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXIt
PnJlbW92ZVN3aXBlU25hcHNob3QoKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hh
bmdlQmFja2dyb3VuZENvbG9yKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264102</attachid>
            <date>2015-10-26 17:22:12 -0700</date>
            <delta_ts>2015-10-27 13:11:25 -0700</delta_ts>
            <desc>Part 8 - accessibility and cleanup</desc>
            <filename>8.diff</filename>
            <type>text/plain</type>
            <size>25912</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiMjcxYTE5Li45Y2QxYjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC02LDYgKzYsNjAg
QEAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKICAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBfc3VwZXJBY2Nlc3Np
YmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6CisgICAgICAgICgtW1dLVmlldyBhY2Nlc3NpYmlsaXR5
Rm9jdXNlZFVJRWxlbWVudF0pOgorICAgICAgICAoLVtXS1ZpZXcgYWNjZXNzaWJpbGl0eUlzSWdu
b3JlZF0pOgorICAgICAgICAoLVtXS1ZpZXcgYWNjZXNzaWJpbGl0eUhpdFRlc3Q6XSk6CisgICAg
ICAgICgtW1dLVmlldyBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6CisgICAgICAgICgt
W1dLVmlldyBfcHJvY2Vzc0RpZEV4aXRdKToKKyAgICAgICAgKC1bV0tWaWV3IF9wYWdlQ2xvc2Vk
XSk6CisgICAgICAgICgtW1dLVmlldyBfdXBkYXRlUmVtb3RlQWNjZXNzaWJpbGl0eVJlZ2lzdHJh
dGlvbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IGVuYWJsZUFjY2Vzc2liaWxpdHlJ
Zk5lY2Vzc2FyeV0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3Rvb2xUaXBDaGFuZ2Vk
RnJvbTp0bzpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9zZXRBY2Nlc3NpYmlsaXR5
V2ViUHJvY2Vzc1Rva2VuOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX2hhc0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfZnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXJdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9j
bG9zZUZ1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dL
VmlldyBfc2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlczpdKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bV0tWaWV3IF9zdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzXSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dLVmlldyBfcHJpbWFyeVRyYWNraW5nQXJlYV0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S1ZpZXcgX3NldFByaW1hcnlUcmFja2luZ0FyZWE6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dL
VmlldyBpbml0V2l0aEZyYW1lOnByb2Nlc3NQb29sOmNvbmZpZ3VyYXRpb246d2ViVmlldzpdKTog
RGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpwcmltYXJ5VHJhY2tpbmdBcmVhKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OnRyYWNraW5nQXJlYU9wdGlv
bnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0QWNjZXNzaWJpbGl0eVdlYlByb2Nlc3NUb2tlbik6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVSZW1vdGVBY2Nlc3NpYmlsaXR5
UmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFjY2Vzc2liaWxp
dHlGb2N1c2VkVUlFbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFjY2Vz
c2liaWxpdHlIaXRUZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmVuYWJsZUFj
Y2Vzc2liaWxpdHlJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjph
Y2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6c2V0UHJpbWFyeVRyYWNraW5nQXJlYSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojp0b29sVGlwQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bC5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnRvb2xUaXBDaGFuZ2VkKToK
KyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmFjY2Vzc2liaWxpdHlXZWJQcm9jZXNz
VG9rZW5SZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZWNvbW1l
bmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OmNsb3NlRnVsbFNjcmVlbk1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6aXNGdWxsU2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6
OmVudGVyRnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpleGl0
RnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpiZWdhbkVudGVy
RnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpiZWdhbkV4aXRG
dWxsU2NyZWVuKToKKyAgICAgICAgTW92ZSBhY2Nlc3NpYmlsaXR5IGNvZGUsIGFuZCBmb2xkIGlu
IHNvbWUgaW50ZXJuYWwtb25seSBtZXRob2RzLgorCisyMDE1LTEwLTI2ICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFdLVmlldyBiZWluZyBpbnNpZGUg
V0tXZWJWaWV3IGxlYWRzIHRvIHdlaXJkIEFQSSBpc3N1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE3NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
OgogICAgICAgICAoLVtXS1ZpZXcgc2Nyb2xsV2hlZWw6XSk6CiAgICAgICAgICgtW1dLVmlldyBz
d2lwZVdpdGhFdmVudDpdKToKICAgICAgICAgKC1bV0tWaWV3IF9zdXBlclN3aXBlV2l0aEV2ZW50
Ol0pOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDcx
NzgzOTYuLjU0MzZiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXcubW0KQEAgLTE3MiwxMCArMTcyLDYgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50
c1BhcmFtZXRlcnMgewogICAgIFJldGFpblB0cjxfV0tSZW1vdGVPYmplY3RSZWdpc3RyeT4gX3Jl
bW90ZU9iamVjdFJlZ2lzdHJ5OwogI2VuZGlmCiAKLSAgICBSZXRhaW5QdHI8TlNUcmFja2luZ0Fy
ZWE+IF9wcmltYXJ5VHJhY2tpbmdBcmVhOwotCi0gICAgUmV0YWluUHRyPGlkPiBfcmVtb3RlQWNj
ZXNzaWJpbGl0eUNoaWxkOwotCiAgICAgLy8gRm9yIGFzeW5jaHJvbm91cyB2YWxpZGF0aW9uLgog
ICAgIFZhbGlkYXRpb25NYXAgX3ZhbGlkYXRpb25NYXA7CiAKQEAgLTIwNTcsNiArMjA1MywxNCBA
QCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmlu
ZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogICAgIFtzdXBlciByZW1vdmVUcmFja2luZ1JlY3Q6
dGFnXTsKIH0KIAorLSAoaWQpX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOihOU1N0
cmluZyAqKWF0dHJpYnV0ZQoreworI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIHJldHVybiBbc3VwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOmF0dHJpYnV0ZV07
CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCit9CisKIC0gKE5TQXJyYXkgKil2YWxpZEF0
dHJpYnV0ZXNGb3JNYXJrZWRUZXh0CiB7CiAgICAgc3RhdGljIE5TQXJyYXkgKnZhbGlkQXR0cmli
dXRlczsKQEAgLTIxNzksNzQgKzIxODMsMjQgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGlu
ZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKICAg
ICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OklzVmlzaWJsZSk7
CiB9CiAKLS0gKHZvaWQpX3VwZGF0ZVJlbW90ZUFjY2Vzc2liaWxpdHlSZWdpc3RyYXRpb246KEJP
T0wpcmVnaXN0ZXJQcm9jZXNzCi17Ci0gICAgLy8gV2hlbiB0aGUgdHJlZSBpcyBjb25uZWN0ZWQv
ZGlzY29ubmVjdGVkLCB0aGUgcmVtb3RlIGFjY2Vzc2liaWxpdHkgcmVnaXN0cmF0aW9uCi0gICAg
Ly8gbmVlZHMgdG8gYmUgdXBkYXRlZCB3aXRoIHRoZSBwaWQgb2YgdGhlIHJlbW90ZSBwcm9jZXNz
LiBJZiB0aGUgcHJvY2VzcyBpcyBnb2luZwotICAgIC8vIGF3YXksIHRoYXQgaW5mb3JtYXRpb24g
aXMgbm90IHByZXNlbnQgaW4gV2ViUHJvY2VzcwotICAgIHBpZF90IHBpZCA9IDA7Ci0gICAgaWYg
KHJlZ2lzdGVyUHJvY2VzcykKLSAgICAgICAgcGlkID0gX2RhdGEtPl9wYWdlLT5wcm9jZXNzKCku
cHJvY2Vzc0lkZW50aWZpZXIoKTsKLSAgICBlbHNlIGlmICghcmVnaXN0ZXJQcm9jZXNzKSB7Ci0g
ICAgICAgIHBpZCA9IFdLQVhSZW1vdGVQcm9jZXNzSWRlbnRpZmllcihfZGF0YS0+X3JlbW90ZUFj
Y2Vzc2liaWxpdHlDaGlsZC5nZXQoKSk7Ci0gICAgICAgIF9kYXRhLT5fcmVtb3RlQWNjZXNzaWJp
bGl0eUNoaWxkID0gbmlsOwotICAgIH0KLSAgICBpZiAocGlkKQotICAgICAgICBXS0FYUmVnaXN0
ZXJSZW1vdGVQcm9jZXNzKHJlZ2lzdGVyUHJvY2VzcywgcGlkKTsgCi19Ci0KLS0gKHZvaWQpZW5h
YmxlQWNjZXNzaWJpbGl0eUlmTmVjZXNzYXJ5Ci17Ci0gICAgaWYgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8v
IEFmdGVyIGVuYWJsaW5nIGFjY2Vzc2liaWxpdHkgdXBkYXRlIHRoZSB3aW5kb3cgZnJhbWUgb24g
dGhlIHdlYiBwcm9jZXNzIHNvIHRoYXQgdGhlCi0gICAgLy8gY29ycmVjdCBhY2Nlc3NpYmlsaXR5
IHBvc2l0aW9uIGlzIHRyYW5zbWl0dGVkICh3aGVuIEFYIGlzIG9mZiwgdGhhdCBwb3NpdGlvbiBp
cyBub3QgY2FsY3VsYXRlZCkuCi0gICAgV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZW5hYmxlQWNj
ZXNzaWJpbGl0eSgpOwotICAgIF9kYXRhLT5faW1wbC0+dXBkYXRlV2luZG93QW5kVmlld0ZyYW1l
cygpOwotfQotCiAtIChpZClhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudAogewotICAgIFtz
ZWxmIGVuYWJsZUFjY2Vzc2liaWxpdHlJZk5lY2Vzc2FyeV07Ci0gICAgcmV0dXJuIF9kYXRhLT5f
cmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkLmdldCgpOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwt
PmFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50KCk7CiB9CiAKIC0gKEJPT0wpYWNjZXNzaWJp
bGl0eUlzSWdub3JlZAogewotICAgIHJldHVybiBOTzsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBs
LT5hY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CiB9CiAKIC0gKGlkKWFjY2Vzc2liaWxpdHlIaXRU
ZXN0OihOU1BvaW50KXBvaW50CiB7Ci0gICAgW3NlbGYgZW5hYmxlQWNjZXNzaWJpbGl0eUlmTmVj
ZXNzYXJ5XTsKLSAgICByZXR1cm4gX2RhdGEtPl9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQuZ2V0
KCk7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+YWNjZXNzaWJpbGl0eUhpdFRlc3QoTlNQb2lu
dFRvQ0dQb2ludChwb2ludCkpOwogfQogCi0tIChpZClhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFs
dWU6KE5TU3RyaW5nKilhdHRyaWJ1dGUKKy0gKGlkKWFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1
ZTooTlNTdHJpbmcgKilhdHRyaWJ1dGUKIHsKLSAgICBbc2VsZiBlbmFibGVBY2Nlc3NpYmlsaXR5
SWZOZWNlc3NhcnldOwotCi0gICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOk5TQWNj
ZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlXSkgewotCi0gICAgICAgIGlkIGNoaWxkID0gbmls
OwotICAgICAgICBpZiAoX2RhdGEtPl9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQpCi0gICAgICAg
ICAgICBjaGlsZCA9IF9kYXRhLT5fcmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkLmdldCgpOwotICAg
ICAgICAKLSAgICAgICAgaWYgKCFjaGlsZCkKLSAgICAgICAgICAgIHJldHVybiBuaWw7Ci0gICAg
ICAgIHJldHVybiBbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6Y2hpbGRdOwotICAgIH0KLSAgICBp
ZiAoW2F0dHJpYnV0ZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5Um9sZUF0dHJpYnV0
ZV0pCi0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGU7Ci0gICAgaWYgKFth
dHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVJvbGVEZXNjcmlwdGlvbkF0
dHJpYnV0ZV0pCi0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlSb2xlRGVzY3JpcHRpb24o
TlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlLCBuaWwpOwotICAgIGlmIChbYXR0cmlidXRlIGlzRXF1
YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlQYXJlbnRBdHRyaWJ1dGVdKQotICAgICAgICByZXR1
cm4gTlNBY2Nlc3NpYmlsaXR5VW5pZ25vcmVkQW5jZXN0b3IoW3NlbGYgc3VwZXJ2aWV3XSk7Ci0g
ICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eUVuYWJsZWRB
dHRyaWJ1dGVdKQotICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU107
Ci0gICAgCi0gICAgcmV0dXJuIFtzdXBlciBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6YXR0
cmlidXRlXTsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5hY2Nlc3NpYmlsaXR5QXR0cmlidXRl
VmFsdWUoYXR0cmlidXRlKTsKIH0KIAogLSAoTlNWaWV3ICopaGl0VGVzdDooTlNQb2ludClwb2lu
dApAQCAtMjI4OCwxNCArMjI0MiwxNCBAQCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhO
U0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogICAgIGlm
IChfZGF0YS0+X2ltcGwtPmxheWVySG9zdGluZ1ZpZXcoKSkKICAgICAgICAgX2RhdGEtPl9pbXBs
LT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKG5pbCk7CiAKLSAgICBbc2VsZiBf
dXBkYXRlUmVtb3RlQWNjZXNzaWJpbGl0eVJlZ2lzdHJhdGlvbjpOT107CisgICAgX2RhdGEtPl9p
bXBsLT51cGRhdGVSZW1vdGVBY2Nlc3NpYmlsaXR5UmVnaXN0cmF0aW9uKGZhbHNlKTsKIAogICAg
IF9kYXRhLT5faW1wbC0+cmVzZXRHZXN0dXJlQ29udHJvbGxlcigpOwogfQogCiAtICh2b2lkKV9w
YWdlQ2xvc2VkCiB7Ci0gICAgW3NlbGYgX3VwZGF0ZVJlbW90ZUFjY2Vzc2liaWxpdHlSZWdpc3Ry
YXRpb246Tk9dOworICAgIF9kYXRhLT5faW1wbC0+dXBkYXRlUmVtb3RlQWNjZXNzaWJpbGl0eVJl
Z2lzdHJhdGlvbihmYWxzZSk7CiB9CiAKIC0gKHZvaWQpX2RpZFJlbGF1bmNoUHJvY2VzcwpAQCAt
MjM4OCwxNyArMjM0Miw2IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmli
dXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAgICAgcmV0dXJuIF9k
YXRhLT5faW1wbC0+c3RyaW5nRm9yVG9vbFRpcCh0YWcpOwogfQogCi0tICh2b2lkKV90b29sVGlw
Q2hhbmdlZEZyb206KE5TU3RyaW5nICopb2xkVG9vbFRpcCB0bzooTlNTdHJpbmcgKiluZXdUb29s
VGlwCi17Ci0gICAgX2RhdGEtPl9pbXBsLT50b29sVGlwQ2hhbmdlZChvbGRUb29sVGlwLCBuZXdU
b29sVGlwKTsKLX0KLQotLSAodm9pZClfc2V0QWNjZXNzaWJpbGl0eVdlYlByb2Nlc3NUb2tlbjoo
TlNEYXRhICopZGF0YQotewotICAgIF9kYXRhLT5fcmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkID0g
V0tBWFJlbW90ZUVsZW1lbnRGb3JUb2tlbihkYXRhKTsKLSAgICBbc2VsZiBfdXBkYXRlUmVtb3Rl
QWNjZXNzaWJpbGl0eVJlZ2lzdHJhdGlvbjpZRVNdOwotfQotCiAtICh2b2lkKV9kcmFnSW1hZ2VG
b3JWaWV3OihOU1ZpZXcgKil2aWV3IHdpdGhJbWFnZTooTlNJbWFnZSAqKWltYWdlIGF0OihOU1Bv
aW50KWNsaWVudFBvaW50IGxpbmtEcmFnOihCT09MKWxpbmtEcmFnCiB7CiAgICAgLy8gVGhlIGNh
bGwgYmVsb3cgY291bGQgcmVsZWFzZSB0aGlzIFdLVmlldy4KQEAgLTI1NTYsMjMgKzI0OTksNiBA
QCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5n
ICpwYXRoKQogICAgIHJldHVybiBbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6W3BhdGggbGFzdFBh
dGhDb21wb25lbnRdXTsKIH0KIAotI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLS0gKEJPT0wp
X2hhc0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyCi17Ci0gICAgcmV0dXJuIF9kYXRhLT5faW1w
bC0+aGFzRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKTsKLX0KLQotLSAoV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlciAqKV9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcgotewotICAgIHJl
dHVybiBfZGF0YS0+X2ltcGwtPmZ1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKCk7Ci19Ci0KLS0g
KHZvaWQpX2Nsb3NlRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIKLXsKLSAgICBfZGF0YS0+X2lt
cGwtPmNsb3NlRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKTsKLX0KLSNlbmRpZgotCiAtIChi
b29sKV9leGVjdXRlU2F2ZWRDb21tYW5kQnlTZWxlY3RvcjooU0VMKXNlbGVjdG9yCiB7CiAgICAg
TE9HKFRleHRJbnB1dCwgIkV4ZWN1dGluZyBwcmV2aW91c2x5IHNhdmVkIGNvbW1hbmQgJXMiLCBz
ZWxfZ2V0TmFtZShzZWxlY3RvcikpOwpAQCAtMjU5OCwyOCArMjUyNCw2IEBAIHN0YXRpYyBOU1N0
cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAgICAg
X2RhdGEtPl9wYWdlLT5oYW5kbGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdCh0ZXh0KTsKIH0KIAot
LSAodm9pZClfc2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlczooQk9PTClzdXBwcmVzc1Zpc2li
aWxpdHlVcGRhdGVzCi17Ci0gICAgX2RhdGEtPl9wYWdlLT5zZXRTdXBwcmVzc1Zpc2liaWxpdHlV
cGRhdGVzKHN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMpOwotfQotCi0tIChCT09MKV9zdXBwcmVz
c1Zpc2liaWxpdHlVcGRhdGVzCi17Ci0gICAgcmV0dXJuIF9kYXRhLT5fcGFnZS0+c3VwcHJlc3NW
aXNpYmlsaXR5VXBkYXRlcygpOwotfQotCi0tIChOU1RyYWNraW5nQXJlYSAqKV9wcmltYXJ5VHJh
Y2tpbmdBcmVhCi17Ci0gICAgcmV0dXJuIF9kYXRhLT5fcHJpbWFyeVRyYWNraW5nQXJlYS5nZXQo
KTsKLX0KLQotLSAodm9pZClfc2V0UHJpbWFyeVRyYWNraW5nQXJlYTooTlNUcmFja2luZ0FyZWEg
Kil0cmFja2luZ0FyZWEKLXsKLSAgICBbc2VsZiByZW1vdmVUcmFja2luZ0FyZWE6X2RhdGEtPl9w
cmltYXJ5VHJhY2tpbmdBcmVhLmdldCgpXTsKLSAgICBfZGF0YS0+X3ByaW1hcnlUcmFja2luZ0Fy
ZWEgPSB0cmFja2luZ0FyZWE7Ci0gICAgW3NlbGYgYWRkVHJhY2tpbmdBcmVhOnRyYWNraW5nQXJl
YV07Ci19Ci0KIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgcHJv
Y2Vzc1Bvb2w6KFdlYlByb2Nlc3NQb29sJilwcm9jZXNzUG9vbCBjb25maWd1cmF0aW9uOihSZWY8
QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiljb25maWd1cmF0aW9uIHdlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdOwpA
QCAtMjYzMCwxNiArMjUzNCw3IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxl
bmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAKICAgICBJbml0aWFsaXplV2ViS2l0MigpOwog
Ci0gICAgLy8gTGVnYWN5IHN0eWxlIHNjcm9sbGJhcnMgaGF2ZSBkZXNpZ24gZGV0YWlscyB0aGF0
IHJlbHkgb24gdHJhY2tpbmcgdGhlIG1vdXNlIGFsbCB0aGUgdGltZS4KLSAgICBOU1RyYWNraW5n
QXJlYU9wdGlvbnMgb3B0aW9ucyA9IE5TVHJhY2tpbmdNb3VzZU1vdmVkIHwgTlNUcmFja2luZ01v
dXNlRW50ZXJlZEFuZEV4aXRlZCB8IE5TVHJhY2tpbmdJblZpc2libGVSZWN0IHwgTlNUcmFja2lu
Z0N1cnNvclVwZGF0ZTsKLSAgICBpZiAoV0tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBO
U1Njcm9sbGVyU3R5bGVMZWdhY3kpCi0gICAgICAgIG9wdGlvbnMgfD0gTlNUcmFja2luZ0FjdGl2
ZUFsd2F5czsKLSAgICBlbHNlCi0gICAgICAgIG9wdGlvbnMgfD0gTlNUcmFja2luZ0FjdGl2ZUlu
S2V5V2luZG93OwotCiAgICAgX2RhdGEgPSBbW1dLVmlld0RhdGEgYWxsb2NdIGluaXRdOwotICAg
IF9kYXRhLT5fcHJpbWFyeVRyYWNraW5nQXJlYSA9IGFkb3B0TlMoW1tOU1RyYWNraW5nQXJlYSBh
bGxvY10gaW5pdFdpdGhSZWN0OmZyYW1lIG9wdGlvbnM6b3B0aW9ucyBvd25lcjpzZWxmIHVzZXJJ
bmZvOm5pbF0pOwotICAgIFtzZWxmIGFkZFRyYWNraW5nQXJlYTpfZGF0YS0+X3ByaW1hcnlUcmFj
a2luZ0FyZWEuZ2V0KCldOwogCiAgICAgX2RhdGEtPl9wYWdlQ2xpZW50ID0gc3RkOjptYWtlX3Vu
aXF1ZTxQYWdlQ2xpZW50SW1wbD4oc2VsZiwgd2ViVmlldyk7CiAgICAgX2RhdGEtPl9wYWdlID0g
cHJvY2Vzc1Bvb2wuY3JlYXRlV2ViUGFnZSgqX2RhdGEtPl9wYWdlQ2xpZW50LCBXVEY6Om1vdmUo
Y29uZmlndXJhdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlld0ludGVybmFsLmgKaW5kZXggZmRlMWU0NS4uZjc0YTk3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCkBAIC0yNywxMSAr
MjcsNiBAQAogCiAjaW1wb3J0ICJXS1ZpZXdQcml2YXRlLmgiCiAKLSNpbXBvcnQgIkFQSU9iamVj
dC5oIgotI2ltcG9ydCAiUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlLmgiCi0jaW1wb3J0ICJT
YW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oIgotI2ltcG9ydCAiV2ViRmluZE9wdGlvbnMuaCIK
LSNpbXBvcnQgIldlYkhpdFRlc3RSZXN1bHREYXRhLmgiCiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5o
PgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgpAQCAt
MzksNyArMzQsNiBAQAogQGNsYXNzIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5OwogCiBuYW1lc3Bh
Y2UgQVBJIHsKLWNsYXNzIE9iamVjdDsKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogfQogCkBA
IC01MCwyMiArNDQsMTQgQEAgY2xhc3MgRGF0YVJlZmVyZW5jZTsKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIEltYWdlOwogY2xhc3MgU2hhcmVkQnVmZmVyOwotY2xhc3MgVGV4dEluZGljYXRv
cjsKLWVudW0gY2xhc3MgVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lIDogdWludDhfdDsKLWVu
dW0gY2xhc3MgVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbiA6IHVpbnQ4X3Q7
Ci1zdHJ1Y3QgS2V5cHJlc3NDb21tYW5kOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNz
IERyYXdpbmdBcmVhUHJveHk7Ci1jbGFzcyBMYXllclRyZWVDb250ZXh0OwotY2xhc3MgVmlld1Nu
YXBzaG90OwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBzdHJ1Y3QgQ29sb3JTcGFjZURhdGE7Ci1z
dHJ1Y3QgRWRpdG9yU3RhdGU7CiB9CiAKLUBjbGFzcyBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyOwogQGNsYXNzIFdLV2ViVmlldzsKICNpZiBXS19BUElfRU5BQkxFRAogQGNsYXNzIF9XS1Ro
dW1ibmFpbFZpZXc7CkBAIC04MCwxNSArNjYsMTIgQEAgc3RydWN0IEVkaXRvclN0YXRlOwogLSAo
dm9pZClfcHJvY2Vzc0RpZEV4aXQ7CiAtICh2b2lkKV9wYWdlQ2xvc2VkOwogLSAodm9pZClfZGlk
UmVsYXVuY2hQcm9jZXNzOwotLSAodm9pZClfdG9vbFRpcENoYW5nZWRGcm9tOihOU1N0cmluZyAq
KW9sZFRvb2xUaXAgdG86KE5TU3RyaW5nICopbmV3VG9vbFRpcDsKIC0gKHZvaWQpX3NldFVzZXJJ
bnRlcmZhY2VJdGVtU3RhdGU6KE5TU3RyaW5nICopY29tbWFuZE5hbWUgZW5hYmxlZDooQk9PTClp
c0VuYWJsZWQgc3RhdGU6KGludCluZXdTdGF0ZTsKIC0gKHZvaWQpX2RvbmVXaXRoS2V5RXZlbnQ6
KE5TRXZlbnQgKilldmVudCBldmVudFdhc0hhbmRsZWQ6KEJPT0wpZXZlbnRXYXNIYW5kbGVkOwog
LSAoYm9vbClfZXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3I6KFNFTClzZWxlY3RvcjsKIC0g
KE5TUmVjdClfY29udmVydFRvRGV2aWNlU3BhY2U6KE5TUmVjdClyZWN0OwogLSAoTlNSZWN0KV9j
b252ZXJ0VG9Vc2VyU3BhY2U6KE5TUmVjdClyZWN0OwogCi0tICh2b2lkKV9zZXRBY2Nlc3NpYmls
aXR5V2ViUHJvY2Vzc1Rva2VuOihOU0RhdGEgKilkYXRhOwotCiAtICh2b2lkKV9kcmFnSW1hZ2VG
b3JWaWV3OihOU1ZpZXcgKil2aWV3IHdpdGhJbWFnZTooTlNJbWFnZSAqKWltYWdlIGF0OihOU1Bv
aW50KWNsaWVudFBvaW50IGxpbmtEcmFnOihCT09MKWxpbmtEcmFnOwogLSAodm9pZClfc2V0UHJv
bWlzZWREYXRhRm9ySW1hZ2U6KFdlYkNvcmU6OkltYWdlICopaW1hZ2Ugd2l0aEZpbGVOYW1lOihO
U1N0cmluZyAqKWZpbGVuYW1lIHdpdGhFeHRlbnNpb246KE5TU3RyaW5nICopZXh0ZW5zaW9uIHdp
dGhUaXRsZTooTlNTdHJpbmcgKil0aXRsZSB3aXRoVVJMOihOU1N0cmluZyAqKXVybCB3aXRoVmlz
aWJsZVVSTDooTlNTdHJpbmcgKil2aXNpYmxlVXJsIHdpdGhBcmNoaXZlOihXZWJDb3JlOjpTaGFy
ZWRCdWZmZXIqKSBhcmNoaXZlQnVmZmVyIGZvclBhc3RlYm9hcmQ6KE5TU3RyaW5nICopcGFzdGVi
b2FyZE5hbWU7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKQEAgLTEwMCwyNiArODMs
MTYgQEAgc3RydWN0IEVkaXRvclN0YXRlOwogLSAoTlNJbnRlZ2VyKXNwZWxsQ2hlY2tlckRvY3Vt
ZW50VGFnOwogLSAodm9pZCloYW5kbGVBY2NlcHRlZEFsdGVybmF0aXZlVGV4dDooTlNTdHJpbmcq
KXRleHQ7CiAKLS0gKHZvaWQpX3NldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXM6KEJPT0wpc3Vw
cHJlc3NWaXNpYmlsaXR5VXBkYXRlczsKLS0gKEJPT0wpX3N1cHByZXNzVmlzaWJpbGl0eVVwZGF0
ZXM7Ci0KICNpZiBXS19BUElfRU5BQkxFRAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0VGh1bWJuYWlsVmlldzopIF9XS1RodW1ibmFpbFZpZXcgKl90aHVtYm5haWxWaWV3OwogI2Vu
ZGlmCiAKIC0gKHZvaWQpX2FkZEZvbnRQYW5lbE9ic2VydmVyOwotLy8gRnVsbFNjcmVlbgotCi1A
cHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIF9oYXNGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcjsK
LUBwcm9wZXJ0eSAocmVhZG9ubHkpIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgKl9mdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlcjsKLS0gKHZvaWQpX2Nsb3NlRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXI7CiAKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEw
MAogLSAodm9pZClfc3RhcnRXaW5kb3dEcmFnOwogI2VuZGlmCiAKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZXRhaW4sIHNldHRlcj1fc2V0UHJpbWFyeVRyYWNraW5nQXJlYTopIE5TVHJhY2tpbmdB
cmVhICpfcHJpbWFyeVRyYWNraW5nQXJlYTsKLQogI2lmIFdLX0FQSV9FTkFCTEVECiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICpfcmVtb3Rl
T2JqZWN0UmVnaXN0cnk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLmgKaW5kZXggYWQ4YThiNS4uZmUwZTdhMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTU1LDYgKzU1LDcgQEAgT0JKQ19D
TEFTUyBfV0tUaHVtYm5haWxWaWV3OwogLSAodm9pZClfc3VwZXJTd2lwZVdpdGhFdmVudDooTlNF
dmVudCAqKWV2ZW50OwogLSAodm9pZClfc3VwZXJNYWduaWZ5V2l0aEV2ZW50OihOU0V2ZW50ICop
ZXZlbnQ7CiAtICh2b2lkKV9zdXBlclNtYXJ0TWFnbmlmeVdpdGhFdmVudDooTlNFdmVudCAqKWV2
ZW50OworLSAoaWQpX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOihOU1N0cmluZyAq
KWF0dHJpYnV0ZTsKIAogLy8gVGhpcyBpcyBhIGhhY2s7IHRoZXNlIHRoaW5ncyBsaXZlIGNhbiBs
aXZlIG9uIGEgY2F0ZWdvcnkgKGUuZy4gV0tWaWV3IChQcml2YXRlKSkgYnV0IFdLVmlldyBpdHNl
bGYgY29uZm9ybXMgdG8gdGhpcyBwcm90b2NvbC4KIC8vIFRoZXkncmUgbm90IGFjdHVhbGx5IG9w
dGlvbmFsLgpAQCAtMjI1LDcgKzIyNiwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJZ25vcmVz
TW91c2VEcmFnZ2VkRXZlbnRzKGJvb2wpOwogICAgIGJvb2wgaWdub3Jlc01vdXNlRHJhZ2dlZEV2
ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1faWdub3Jlc01vdXNlRHJhZ2dlZEV2ZW50czsgfQogCisg
ICAgdm9pZCBzZXRBY2Nlc3NpYmlsaXR5V2ViUHJvY2Vzc1Rva2VuKE5TRGF0YSAqKTsKICAgICB2
b2lkIGFjY2Vzc2liaWxpdHlSZWdpc3RlclVJUHJvY2Vzc1Rva2VucygpOworICAgIHZvaWQgdXBk
YXRlUmVtb3RlQWNjZXNzaWJpbGl0eVJlZ2lzdHJhdGlvbihib29sIHJlZ2lzdGVyUHJvY2Vzcyk7
CisgICAgaWQgYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQoKTsKKyAgICBib29sIGFjY2Vz
c2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGlkIGFjY2Vz
c2liaWxpdHlIaXRUZXN0KENHUG9pbnQpOworICAgIHZvaWQgZW5hYmxlQWNjZXNzaWJpbGl0eUlm
TmVjZXNzYXJ5KCk7CisgICAgaWQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlKE5TU3RyaW5n
ICopOworCisgICAgTlNUcmFja2luZ0FyZWEgKnByaW1hcnlUcmFja2luZ0FyZWEoKSBjb25zdCB7
IHJldHVybiBtX3ByaW1hcnlUcmFja2luZ0FyZWEuZ2V0KCk7IH0KKyAgICB2b2lkIHNldFByaW1h
cnlUcmFja2luZ0FyZWEoTlNUcmFja2luZ0FyZWEgKik7CiAKICAgICBOU1RyYWNraW5nUmVjdFRh
ZyBhZGRUcmFja2luZ1JlY3QoQ0dSZWN0LCBpZCBvd25lciwgdm9pZCogdXNlckRhdGEsIGJvb2wg
YXNzdW1lSW5zaWRlKTsKICAgICBOU1RyYWNraW5nUmVjdFRhZyBhZGRUcmFja2luZ1JlY3RXaXRo
VHJhY2tpbmdOdW0oQ0dSZWN0LCBpZCBvd25lciwgdm9pZCogdXNlckRhdGEsIGJvb2wgYXNzdW1l
SW5zaWRlLCBpbnQgdGFnKTsKQEAgLTIzMyw3ICsyNDQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZW1vdmVUcmFja2luZ1JlY3QoTlNUcmFja2luZ1JlY3RUYWcpOwogICAgIHZvaWQgcmVtb3ZlVHJh
Y2tpbmdSZWN0cyhOU1RyYWNraW5nUmVjdFRhZyAqLCBpbnQgY291bnQpOwogICAgIE5TU3RyaW5n
ICpzdHJpbmdGb3JUb29sVGlwKE5TVG9vbFRpcFRhZyB0YWcpOwotICAgIHZvaWQgdG9vbFRpcENo
YW5nZWQoTlNTdHJpbmcgKm9sZFRvb2xUaXAsIE5TU3RyaW5nICpuZXdUb29sVGlwKTsKKyAgICB2
b2lkIHRvb2xUaXBDaGFuZ2VkKFN0cmluZyBvbGRUb29sVGlwLCBTdHJpbmcgbmV3VG9vbFRpcCk7
CiAKICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoQ0FMYXllciAq
KTsKICAgICBDQUxheWVyICphY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9yb290TGF5ZXIuZ2V0KCk7IH0KQEAgLTM2OCw2ICszNzksOCBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9hbGxvd3NMaW5rUHJldmlldyB7IHRydWUgfTsKICAgICBib29sIG1fZGlk
UmVnaXN0ZXJGb3JMb29rdXBQb3BvdmVyQ2xvc2VOb3RpZmljYXRpb25zIHsgZmFsc2UgfTsKIAor
ICAgIFJldGFpblB0cjxOU1RyYWNraW5nQXJlYT4gbV9wcmltYXJ5VHJhY2tpbmdBcmVhOworCiAg
ICAgTlNUb29sVGlwVGFnIG1fbGFzdFRvb2xUaXBUYWcgeyAwIH07CiAgICAgaWQgbV90cmFja2lu
Z1JlY3RPd25lciB7IG5pbCB9OwogICAgIHZvaWQqIG1fdHJhY2tpbmdSZWN0VXNlckRhdGEgeyBu
dWxscHRyIH07CkBAIC0zODIsNiArMzk1LDggQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8Vmlld0dlc3R1cmVDb250cm9sbGVyPiBtX2dlc3R1cmVDb250cm9sbGVyOwogICAgIGJvb2wg
bV9hbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcyB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2FsbG93c01hZ25pZmljYXRpb24geyBmYWxzZSB9OworCisgICAgUmV0YWluUHRyPGlkPiBt
X3JlbW90ZUFjY2Vzc2liaWxpdHlDaGlsZDsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRl
eCBiNGIwNDlmLi5lZjc0MTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCkBAIC0zMjAsNiArMzIwLDE3IEBAIHN0YXRpYyB2b2lkKiBrZXlWYWx1
ZU9ic2VydmluZ0NvbnRleHQgPSAma2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0OwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAorc3RhdGljIE5TVHJhY2tpbmdBcmVhT3B0aW9ucyB0cmFja2luZ0FyZWFP
cHRpb25zKCkKK3sKKyAgICAvLyBMZWdhY3kgc3R5bGUgc2Nyb2xsYmFycyBoYXZlIGRlc2lnbiBk
ZXRhaWxzIHRoYXQgcmVseSBvbiB0cmFja2luZyB0aGUgbW91c2UgYWxsIHRoZSB0aW1lLgorICAg
IE5TVHJhY2tpbmdBcmVhT3B0aW9ucyBvcHRpb25zID0gTlNUcmFja2luZ01vdXNlTW92ZWQgfCBO
U1RyYWNraW5nTW91c2VFbnRlcmVkQW5kRXhpdGVkIHwgTlNUcmFja2luZ0luVmlzaWJsZVJlY3Qg
fCBOU1RyYWNraW5nQ3Vyc29yVXBkYXRlOworICAgIGlmIChXS1JlY29tbWVuZGVkU2Nyb2xsZXJT
dHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeSkKKyAgICAgICAgb3B0aW9ucyB8PSBOU1Ry
YWNraW5nQWN0aXZlQWx3YXlzOworICAgIGVsc2UKKyAgICAgICAgb3B0aW9ucyB8PSBOU1RyYWNr
aW5nQWN0aXZlSW5LZXlXaW5kb3c7CisgICAgcmV0dXJuIG9wdGlvbnM7Cit9CisKIFdlYlZpZXdJ
bXBsOjpXZWJWaWV3SW1wbChOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICp2aWV3LCBXZWJQ
YWdlUHJveHkmIHBhZ2UsIFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQpCiAgICAgOiBtX3ZpZXcodmll
dykKICAgICAsIG1fcGFnZShwYWdlKQpAQCAtMzMwLDcgKzM0MSwxMCBAQCBXZWJWaWV3SW1wbDo6
V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAqdmlldywgV2ViUGFnZVBy
b3h5JiBwYWdlLAogICAgICwgbV9sYXlvdXRTdHJhdGVneShbV0tWaWV3TGF5b3V0U3RyYXRlZ3kg
bGF5b3V0U3RyYXRlZ3lXaXRoUGFnZTptX3BhZ2UgdmlldzptX3ZpZXcgdmlld0ltcGw6KnRoaXMg
bW9kZTprV0tMYXlvdXRNb2RlVmlld1NpemVdKQogICAgICwgbV91bmRvVGFyZ2V0KGFkb3B0TlMo
W1tXS0VkaXRvclVuZG9UYXJnZXRPYmpDIGFsbG9jXSBpbml0XSkpCiAgICAgLCBtX3dpbmRvd1Zp
c2liaWxpdHlPYnNlcnZlcihhZG9wdE5TKFtbV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgYWxs
b2NdIGluaXRXaXRoVmlldzp2aWV3IGltcGw6KnRoaXNdKSkKKyAgICAsIG1fcHJpbWFyeVRyYWNr
aW5nQXJlYShhZG9wdE5TKFtbTlNUcmFja2luZ0FyZWEgYWxsb2NdIGluaXRXaXRoUmVjdDptX3Zp
ZXcuZnJhbWUgb3B0aW9uczp0cmFja2luZ0FyZWFPcHRpb25zKCkgb3duZXI6bV92aWV3IHVzZXJJ
bmZvOm5pbF0pKQogeworICAgIFttX3ZpZXcgYWRkVHJhY2tpbmdBcmVhOm1fcHJpbWFyeVRyYWNr
aW5nQXJlYS5nZXQoKV07CisKICAgICBtX3BhZ2Uuc2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0
b3IoaW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoKSk7CiAKICNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTAwMApAQCAtMTQ2Myw2ICsxNDc3LDI4IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OnNldElnbm9yZXNNb3VzZURyYWdnZWRFdmVudHMoYm9vbCBpZ25vcmVzTW91c2VE
cmFnZ2VkRXZlbnRzKQogICAgIG1faWdub3Jlc01vdXNlRHJhZ2dlZEV2ZW50cyA9IGlnbm9yZXNN
b3VzZURyYWdnZWRFdmVudHM7CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OnNldEFjY2Vzc2liaWxp
dHlXZWJQcm9jZXNzVG9rZW4oTlNEYXRhICpkYXRhKQoreworICAgIG1fcmVtb3RlQWNjZXNzaWJp
bGl0eUNoaWxkID0gV0tBWFJlbW90ZUVsZW1lbnRGb3JUb2tlbihkYXRhKTsKKyAgICB1cGRhdGVS
ZW1vdGVBY2Nlc3NpYmlsaXR5UmVnaXN0cmF0aW9uKHRydWUpOworfQorCit2b2lkIFdlYlZpZXdJ
bXBsOjp1cGRhdGVSZW1vdGVBY2Nlc3NpYmlsaXR5UmVnaXN0cmF0aW9uKGJvb2wgcmVnaXN0ZXJQ
cm9jZXNzKQoreworICAgIC8vIFdoZW4gdGhlIHRyZWUgaXMgY29ubmVjdGVkL2Rpc2Nvbm5lY3Rl
ZCwgdGhlIHJlbW90ZSBhY2Nlc3NpYmlsaXR5IHJlZ2lzdHJhdGlvbgorICAgIC8vIG5lZWRzIHRv
IGJlIHVwZGF0ZWQgd2l0aCB0aGUgcGlkIG9mIHRoZSByZW1vdGUgcHJvY2Vzcy4gSWYgdGhlIHBy
b2Nlc3MgaXMgZ29pbmcKKyAgICAvLyBhd2F5LCB0aGF0IGluZm9ybWF0aW9uIGlzIG5vdCBwcmVz
ZW50IGluIFdlYlByb2Nlc3MKKyAgICBwaWRfdCBwaWQgPSAwOworICAgIGlmIChyZWdpc3RlclBy
b2Nlc3MpCisgICAgICAgIHBpZCA9IG1fcGFnZS5wcm9jZXNzKCkucHJvY2Vzc0lkZW50aWZpZXIo
KTsKKyAgICBlbHNlIGlmICghcmVnaXN0ZXJQcm9jZXNzKSB7CisgICAgICAgIHBpZCA9IFdLQVhS
ZW1vdGVQcm9jZXNzSWRlbnRpZmllcihtX3JlbW90ZUFjY2Vzc2liaWxpdHlDaGlsZC5nZXQoKSk7
CisgICAgICAgIG1fcmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkID0gbmlsOworICAgIH0KKyAgICBp
ZiAocGlkKQorICAgICAgICBXS0FYUmVnaXN0ZXJSZW1vdGVQcm9jZXNzKHJlZ2lzdGVyUHJvY2Vz
cywgcGlkKTsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6YWNjZXNzaWJpbGl0eVJlZ2lzdGVyVUlQ
cm9jZXNzVG9rZW5zKCkKIHsKICAgICAvLyBJbml0aWFsaXplIHJlbW90ZSBhY2Nlc3NpYmlsaXR5
IHdoZW4gdGhlIHdpbmRvdyBjb25uZWN0aW9uIGhhcyBiZWVuIGVzdGFibGlzaGVkLgpAQCAtMTQ3
Myw2ICsxNTA5LDYxIEBAIHZvaWQgV2ViVmlld0ltcGw6OmFjY2Vzc2liaWxpdHlSZWdpc3RlclVJ
UHJvY2Vzc1Rva2VucygpCiAgICAgbV9wYWdlLnJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNzaWJpbGl0
eVRva2VucyhlbGVtZW50VG9rZW4sIHdpbmRvd1Rva2VuKTsKIH0KIAoraWQgV2ViVmlld0ltcGw6
OmFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50KCkKK3sKKyAgICBlbmFibGVBY2Nlc3NpYmls
aXR5SWZOZWNlc3NhcnkoKTsKKyAgICByZXR1cm4gbV9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQu
Z2V0KCk7Cit9CisKK2lkIFdlYlZpZXdJbXBsOjphY2Nlc3NpYmlsaXR5SGl0VGVzdChDR1BvaW50
KQoreworICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudCgpOworfQorCit2
b2lkIFdlYlZpZXdJbXBsOjplbmFibGVBY2Nlc3NpYmlsaXR5SWZOZWNlc3NhcnkoKQoreworICAg
IGlmIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICAvLyBBZnRlciBlbmFibGluZyBhY2Nlc3NpYmlsaXR5IHVwZGF0
ZSB0aGUgd2luZG93IGZyYW1lIG9uIHRoZSB3ZWIgcHJvY2VzcyBzbyB0aGF0IHRoZQorICAgIC8v
IGNvcnJlY3QgYWNjZXNzaWJpbGl0eSBwb3NpdGlvbiBpcyB0cmFuc21pdHRlZCAod2hlbiBBWCBp
cyBvZmYsIHRoYXQgcG9zaXRpb24gaXMgbm90IGNhbGN1bGF0ZWQpLgorICAgIFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OmVuYWJsZUFjY2Vzc2liaWxpdHkoKTsKKyAgICB1cGRhdGVXaW5kb3dBbmRW
aWV3RnJhbWVzKCk7Cit9CisKK2lkIFdlYlZpZXdJbXBsOjphY2Nlc3NpYmlsaXR5QXR0cmlidXRl
VmFsdWUoTlNTdHJpbmcgKmF0dHJpYnV0ZSkKK3sKKyAgICBlbmFibGVBY2Nlc3NpYmlsaXR5SWZO
ZWNlc3NhcnkoKTsKKworICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vz
c2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZV0pIHsKKworICAgICAgICBpZCBjaGlsZCA9IG5pbDsK
KyAgICAgICAgaWYgKG1fcmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkKQorICAgICAgICAgICAgY2hp
bGQgPSBtX3JlbW90ZUFjY2Vzc2liaWxpdHlDaGlsZC5nZXQoKTsKKworICAgICAgICAgICAgaWYg
KCFjaGlsZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbmlsOworICAgICAgICByZXR1cm4gW05T
QXJyYXkgYXJyYXlXaXRoT2JqZWN0OmNoaWxkXTsKKyAgICB9CisgICAgaWYgKFthdHRyaWJ1dGUg
aXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVJvbGVBdHRyaWJ1dGVdKQorICAgICAgICBy
ZXR1cm4gTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlOworICAgIGlmIChbYXR0cmlidXRlIGlzRXF1
YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlSb2xlRGVzY3JpcHRpb25BdHRyaWJ1dGVdKQorICAg
ICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5Um9sZURlc2NyaXB0aW9uKE5TQWNjZXNzaWJpbGl0
eUdyb3VwUm9sZSwgbmlsKTsKKyAgICAgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5n
Ok5TQWNjZXNzaWJpbGl0eVBhcmVudEF0dHJpYnV0ZV0pCisgICAgICAgICAgICByZXR1cm4gTlNB
Y2Nlc3NpYmlsaXR5VW5pZ25vcmVkQW5jZXN0b3IoW21fdmlldyBzdXBlcnZpZXddKTsKKyAgICAg
ICAgICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlFbmFi
bGVkQXR0cmlidXRlXSkKKyAgICAgICAgICAgICAgICByZXR1cm4gQFlFUzsKKyAgICAKKyAgICBy
ZXR1cm4gW21fdmlldyBfc3VwZXJBY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6YXR0cmlidXRl
XTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0UHJpbWFyeVRyYWNraW5nQXJlYShOU1RyYWNr
aW5nQXJlYSAqdHJhY2tpbmdBcmVhKQoreworICAgIFttX3ZpZXcgcmVtb3ZlVHJhY2tpbmdBcmVh
Om1fcHJpbWFyeVRyYWNraW5nQXJlYS5nZXQoKV07CisgICAgbV9wcmltYXJ5VHJhY2tpbmdBcmVh
ID0gdHJhY2tpbmdBcmVhOworICAgIFttX3ZpZXcgYWRkVHJhY2tpbmdBcmVhOnRyYWNraW5nQXJl
YV07Cit9CisKIC8vIEFueSBub24temVybyB2YWx1ZSB3aWxsIGRvLCBidXQgdXNpbmcgc29tZXRo
aW5nIHJlY29nbml6YWJsZSBtaWdodCBoZWxwIHVzIGRlYnVnIHNvbWUgZGF5LgogI2RlZmluZSBU
UkFDS0lOR19SRUNUX1RBRyAweEJBREZBQ0UKIApAQCAtMTU3MCwxMiArMTY2MSwxMiBAQCBOU1N0
cmluZyAqV2ViVmlld0ltcGw6OnN0cmluZ0ZvclRvb2xUaXAoTlNUb29sVGlwVGFnIHRhZykKICAg
ICByZXR1cm4gbnNTdHJpbmdGcm9tV2ViQ29yZVN0cmluZyhtX3BhZ2UudG9vbFRpcCgpKTsKIH0K
IAotdm9pZCBXZWJWaWV3SW1wbDo6dG9vbFRpcENoYW5nZWQoTlNTdHJpbmcgKm9sZFRvb2xUaXAs
IE5TU3RyaW5nICpuZXdUb29sVGlwKQordm9pZCBXZWJWaWV3SW1wbDo6dG9vbFRpcENoYW5nZWQo
U3RyaW5nIG9sZFRvb2xUaXAsIFN0cmluZyBuZXdUb29sVGlwKQogewotICAgIGlmIChvbGRUb29s
VGlwKQorICAgIGlmICghb2xkVG9vbFRpcC5pc051bGwoKSkKICAgICAgICAgc2VuZFRvb2xUaXBN
b3VzZUV4aXRlZCgpOwogICAgIAotICAgIGlmIChuZXdUb29sVGlwICYmIFtuZXdUb29sVGlwIGxl
bmd0aF0gPiAwKSB7CisgICAgaWYgKCFuZXdUb29sVGlwLmlzRW1wdHkoKSkgewogICAgICAgICAv
LyBTZWUgcmFkYXIgMzUwMDIxNyBmb3Igd2h5IHdlIHJlbW92ZSBhbGwgdG9vbHRpcHMgcmF0aGVy
IHRoYW4ganVzdCB0aGUgc2luZ2xlIG9uZSB3ZSBjcmVhdGVkLgogICAgICAgICBbbV92aWV3IHJl
bW92ZUFsbFRvb2xUaXBzXTsKICAgICAgICAgTlNSZWN0IHdpZGVPcGVuUmVjdCA9IE5TTWFrZVJl
Y3QoLTEwMDAwMCwgLTEwMDAwMCwgMjAwMDAwLCAyMDAwMDApOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggYTM4YjFiNC4uYTBmYjhiZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCkBA
IC0yNjQsNyArMjY0LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJlZmVyZW5jZXNEaWRDaGFu
Z2UoKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjp0b29sVGlwQ2hhbmdlZChjb25zdCBTdHJpbmcm
IG9sZFRvb2xUaXAsIGNvbnN0IFN0cmluZyYgbmV3VG9vbFRpcCkKIHsKLSAgICBbbV93a1ZpZXcg
X3Rvb2xUaXBDaGFuZ2VkRnJvbTpuc1N0cmluZ0Zyb21XZWJDb3JlU3RyaW5nKG9sZFRvb2xUaXAp
IHRvOm5zU3RyaW5nRnJvbVdlYkNvcmVTdHJpbmcobmV3VG9vbFRpcCldOworICAgIG1faW1wbC0+
dG9vbFRpcENoYW5nZWQob2xkVG9vbFRpcCwgbmV3VG9vbFRpcCk7CiB9CiAKIHZvaWQgUGFnZUNs
aWVudEltcGw6OmRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgYm9vbCB1c2VDdXN0b21Db250ZW50UHJvdmlkZXIpCkBAIC00NzQsOCArNDc0LDcgQEAgdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0
IHByb2dyZXNzKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjphY2Nlc3NpYmlsaXR5V2ViUHJvY2Vz
c1Rva2VuUmVjZWl2ZWQoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhKQogewotICAgIE5T
RGF0YSogcmVtb3RlVG9rZW4gPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6ZGF0YS5kYXRhKCkgbGVu
Z3RoOmRhdGEuc2l6ZSgpXTsKLSAgICBbbV93a1ZpZXcgX3NldEFjY2Vzc2liaWxpdHlXZWJQcm9j
ZXNzVG9rZW46cmVtb3RlVG9rZW5dOworICAgIG1faW1wbC0+c2V0QWNjZXNzaWJpbGl0eVdlYlBy
b2Nlc3NUb2tlbihbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6ZGF0YS5kYXRhKCkgbGVuZ3RoOmRhdGEu
c2l6ZSgpXSk7CiB9CiAgICAgCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjplbnRlckFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQp
CkBAIC02MDEsNyArNjAwLDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVjb21tZW5kZWRTY3Jv
bGxiYXJTdHlsZURpZENoYW5nZShTY3JvbGxiYXJTdHlsZSBuZXdTdHlsZSkKICAgICAgICAgb3B0
aW9ucyB8PSBOU1RyYWNraW5nQWN0aXZlSW5LZXlXaW5kb3c7CiAKICAgICBSZXRhaW5QdHI8TlNU
cmFja2luZ0FyZWE+IHRyYWNraW5nQXJlYSA9IGFkb3B0TlMoW1tOU1RyYWNraW5nQXJlYSBhbGxv
Y10gaW5pdFdpdGhSZWN0OlttX3drVmlldyBmcmFtZV0gb3B0aW9uczpvcHRpb25zIG93bmVyOm1f
d2tWaWV3IHVzZXJJbmZvOm5pbF0pOwotICAgIFttX3drVmlldyBfc2V0UHJpbWFyeVRyYWNraW5n
QXJlYTp0cmFja2luZ0FyZWEuZ2V0KCldOworICAgIG1faW1wbC0+c2V0UHJpbWFyeVRyYWNraW5n
QXJlYSh0cmFja2luZ0FyZWEuZ2V0KCkpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjppbnRy
aW5zaWNDb250ZW50U2l6ZURpZENoYW5nZShjb25zdCBJbnRTaXplJiBpbnRyaW5zaWNDb250ZW50
U2l6ZSkKQEAgLTY1OCwzNiArNjU3LDM2IEBAIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGll
bnQmIFBhZ2VDbGllbnRJbXBsOjpmdWxsU2NyZWVuTWFuYWdlclByb3h5Q2xpZW50KCkKIAogdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6Y2xvc2VGdWxsU2NyZWVuTWFuYWdlcigpCiB7Ci0gICAgW21fd2tW
aWV3IF9jbG9zZUZ1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyXTsKKyAgICBtX2ltcGwtPmNsb3Nl
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKTsKIH0KIAogYm9vbCBQYWdlQ2xpZW50SW1wbDo6
aXNGdWxsU2NyZWVuKCkKIHsKLSAgICBpZiAoIW1fd2tWaWV3Ll9oYXNGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlcikKKyAgICBpZiAoIW1faW1wbC0+aGFzRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIG1fd2tWaWV3Ll9mdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlci5pc0Z1bGxTY3JlZW47CisgICAgcmV0dXJuIG1faW1wbC0+
ZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKS5pc0Z1bGxTY3JlZW47CiB9CiAKIHZvaWQgUGFn
ZUNsaWVudEltcGw6OmVudGVyRnVsbFNjcmVlbigpCiB7Ci0gICAgW21fd2tWaWV3Ll9mdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlciBlbnRlckZ1bGxTY3JlZW46bmlsXTsKKyAgICBbbV9pbXBsLT5m
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpIGVudGVyRnVsbFNjcmVlbjpuaWxdOwogfQogCiB2
b2lkIFBhZ2VDbGllbnRJbXBsOjpleGl0RnVsbFNjcmVlbigpCiB7Ci0gICAgW21fd2tWaWV3Ll9m
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBleGl0RnVsbFNjcmVlbl07CisgICAgW21faW1wbC0+
ZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKSBleGl0RnVsbFNjcmVlbl07CiB9CiAKIHZvaWQg
UGFnZUNsaWVudEltcGw6OmJlZ2FuRW50ZXJGdWxsU2NyZWVuKGNvbnN0IEludFJlY3QmIGluaXRp
YWxGcmFtZSwgY29uc3QgSW50UmVjdCYgZmluYWxGcmFtZSkKIHsKLSAgICBbbV93a1ZpZXcuX2Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGJlZ2FuRW50ZXJGdWxsU2NyZWVuV2l0aEluaXRpYWxG
cmFtZTppbml0aWFsRnJhbWUgZmluYWxGcmFtZTpmaW5hbEZyYW1lXTsKKyAgICBbbV9pbXBsLT5m
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpIGJlZ2FuRW50ZXJGdWxsU2NyZWVuV2l0aEluaXRp
YWxGcmFtZTppbml0aWFsRnJhbWUgZmluYWxGcmFtZTpmaW5hbEZyYW1lXTsKICAgICBtX2ltcGwt
PnVwZGF0ZVN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMoKTsKIH0KIAogdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6YmVnYW5FeGl0RnVsbFNjcmVlbihjb25zdCBJbnRSZWN0JiBpbml0aWFsRnJhbWUs
IGNvbnN0IEludFJlY3QmIGZpbmFsRnJhbWUpCiB7Ci0gICAgW21fd2tWaWV3Ll9mdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlciBiZWdhbkV4aXRGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTppbml0
aWFsRnJhbWUgZmluYWxGcmFtZTpmaW5hbEZyYW1lXTsKKyAgICBbbV9pbXBsLT5mdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlcigpIGJlZ2FuRXhpdEZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmlu
aXRpYWxGcmFtZSBmaW5hbEZyYW1lOmZpbmFsRnJhbWVdOwogICAgIG1faW1wbC0+dXBkYXRlU3Vw
cG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcygpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264104</attachid>
            <date>2015-10-26 17:27:48 -0700</date>
            <delta_ts>2015-10-27 13:10:42 -0700</delta_ts>
            <desc>Part 7 - gestures and snapshots</desc>
            <filename>7.diff</filename>
            <type>text/plain</type>
            <size>37706</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyNWUyYjYwLi43NmE1MDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTUtMTAtMjYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgV0tWaWV3IGJlaW5nIGluc2lkZSBXS1dlYlZpZXcgbGVhZHMgdG8gd2VpcmQgQVBJ
IGlzc3VlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTUwMTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9zcGkvY2cvQ29yZUdyYXBoaWNzU1BJLmg6CisKIDIwMTUtMTAtMjYgIFhhYmll
ciBSb2RyaWd1ZXogQ2FsdmFyICA8Y2FsdmFyaXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBbU3Ry
ZWFtcyBBUEldIEltcGxlbWVudCBhYm9ydCBtZXRob2Qgb24gd3JpdGFibGUgc3RyZWFtcwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NnL0NvcmVHcmFwaGljc1NQSS5oCmluZGV4
IDllMDM5N2MuLjg1NTc2MzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nw
aS9jZy9Db3JlR3JhcGhpY3NTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkv
Y2cvQ29yZUdyYXBoaWNzU1BJLmgKQEAgLTE4Miw2ICsxODIsNyBAQCBDR1NDb25uZWN0aW9uSUQg
Q0dTTWFpbkNvbm5lY3Rpb25JRCh2b2lkKTsKIENGQXJyYXlSZWYgQ0dTSFdDYXB0dXJlV2luZG93
TGlzdChDR1NDb25uZWN0aW9uSUQgY2lkLCBDR1NXaW5kb3dJRExpc3Qgd2luZG93TGlzdCwgQ0dT
V2luZG93Q291bnQgd2luZG93Q291bnQsIENHU1dpbmRvd0NhcHR1cmVPcHRpb25zIG9wdGlvbnMp
OwogQ0dFcnJvciBDR1NTZXRDb25uZWN0aW9uUHJvcGVydHkoQ0dTQ29ubmVjdGlvbklELCBDR1ND
b25uZWN0aW9uSUQgb3duZXJDaWQsIENGU3RyaW5nUmVmIGtleSwgQ0ZUeXBlUmVmIHZhbHVlKTsK
IENHRXJyb3IgQ0dTQ29weUNvbm5lY3Rpb25Qcm9wZXJ0eShDR1NDb25uZWN0aW9uSUQsIENHU0Nv
bm5lY3Rpb25JRCBvd25lckNpZCwgQ0ZTdHJpbmdSZWYga2V5LCBDRlR5cGVSZWYgKnZhbHVlKTsK
K0NHRXJyb3IgQ0dTR2V0U2NyZWVuUmVjdEZvcldpbmRvdyhDR1NDb25uZWN0aW9uSUQsIENHU1dp
bmRvd0lELCBDR1JlY3QgKik7CiAjZW5kaWYKIAogV1RGX0VYVEVSTl9DX0VORApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGVmM2UzMGQuLmIyNzFhMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTYsNiArNiw3OSBAQAogICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAogICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IHNjcm9sbFdoZWVsOl0pOgorICAgICAg
ICAoLVtXS1ZpZXcgc3dpcGVXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBfc3VwZXJT
d2lwZVdpdGhFdmVudDpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9zdXBlck1hZ25pZnlXaXRoRXZl
bnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBfc3VwZXJTbWFydE1hZ25pZnlXaXRoRXZlbnQ6XSk6
CisgICAgICAgICgtW1dLVmlldyBfcHJvY2Vzc0RpZEV4aXRdKToKKyAgICAgICAgKC1bV0tWaWV3
IHNldEFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzOl0pOgorICAgICAgICAoLVtX
S1ZpZXcgYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXNdKToKKyAgICAgICAgKC1b
V0tWaWV3IHNldEFsbG93c01hZ25pZmljYXRpb246XSk6CisgICAgICAgICgtW1dLVmlldyBhbGxv
d3NNYWduaWZpY2F0aW9uXSk6CisgICAgICAgICgtW1dLVmlldyBtYWduaWZ5V2l0aEV2ZW50Ol0p
OgorICAgICAgICAoLVtXS1ZpZXcgcm90YXRlV2l0aEV2ZW50Ol0pOgorICAgICAgICAoLVtXS1Zp
ZXcgX2dlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmU6XSk6CisgICAgICAgICgtW1dL
VmlldyBzbWFydE1hZ25pZnlXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBzZXRNYWdu
aWZpY2F0aW9uOmNlbnRlcmVkQXRQb2ludDpdKToKKyAgICAgICAgKC1bV0tWaWV3IHNldE1hZ25p
ZmljYXRpb246XSk6CisgICAgICAgICgtW1dLVmlldyBtYWduaWZpY2F0aW9uXSk6CisgICAgICAg
ICgtW1dLVmlldyBfc2V0Q3VzdG9tU3dpcGVWaWV3czpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9z
ZXRDdXN0b21Td2lwZVZpZXdzVG9wQ29udGVudEluc2V0Ol0pOgorICAgICAgICAoLVtXS1ZpZXcg
X3RyeVRvU3dpcGVXaXRoRXZlbnQ6aWdub3JpbmdQaW5uZWRTdGF0ZTpdKToKKyAgICAgICAgKC1b
V0tWaWV3IF9zZXREaWRNb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrOl0pOgorICAgICAgICAoLVtX
S1ZpZXcgX2Vuc3VyZUdlc3R1cmVDb250cm9sbGVyXSk6IERlbGV0ZWQuCisgICAgICAgICh0YWtl
V2luZG93U25hcHNob3QpOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3Rha2VWaWV3U25h
cHNob3RdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF93aGVlbEV2ZW50V2FzTm90SGFu
ZGxlZEJ5V2ViQ29yZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9kaWRGaXJzdFZp
c3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWVdKTogRGVsZXRlZC4KKyAgICAgICAgKC1b
V0tWaWV3IF9kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lXSk6IERlbGV0ZWQuCisgICAgICAgICgt
W1dLVmlldyBfZGlkRmFpbExvYWRGb3JNYWluRnJhbWVdKTogRGVsZXRlZC4KKyAgICAgICAgKC1b
V0tWaWV3IF9kaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lOl0pOiBEZWxldGVk
LgorICAgICAgICAoLVtXS1ZpZXcgX3JlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3RdKTog
RGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6Z2VzdHVyZUNvbnRyb2xsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6YWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6YWxsb3dzTWFnbmlmaWNhdGlvbik6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0Ojp0YWtlV2luZG93
U25hcHNob3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dGFrZVZpZXdTbmFwc2hv
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjplbnN1cmVHZXN0dXJlQ29udHJvbGxl
cik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZXNldEdlc3R1cmVDb250cm9sbGVy
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEFsbG93c0JhY2tGb3J3YXJkTmF2
aWdhdGlvbkdlc3R1cmVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEFsbG93
c01hZ25pZmljYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TWFnbmlm
aWNhdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjptYWduaWZpY2F0aW9uKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEN1c3RvbVN3aXBlVmlld3MpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0Q3VzdG9tU3dpcGVWaWV3c1RvcENvbnRlbnRJ
bnNldCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp0cnlUb1N3aXBlV2l0aEV2ZW50
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldERpZE1vdmVTd2lwZVNuYXBzaG90
Q2FsbGJhY2spOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2Nyb2xsV2hlZWwpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c3dpcGVXaXRoRXZlbnQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJWaWV3SW1wbDo6bWFnbmlmeVdpdGhFdmVudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpzbWFydE1hZ25pZnlXaXRoRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6cm90YXRlV2l0aEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6Omdlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6Z2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZUZyb21WaWV3
T25seSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbToKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnRha2VWaWV3U25hcHNob3QpOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6d2hlZWxFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUp
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkRmlyc3RWaXN1YWxseU5vbkVt
cHR5TGF5b3V0Rm9yTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6
OmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50
SW1wbDo6ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZSk6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90
KToKKyAgICAgICAgTW92ZSBzd2lwZSwgem9vbSwgcm90YXRlLCBhbmQgc25hcHNob3R0aW5nIGNv
ZGUuCisKKzIwMTUtMTAtMjYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+
CisKKyAgICAgICAgV0tWaWV3IGJlaW5nIGluc2lkZSBXS1dlYlZpZXcgbGVhZHMgdG8gd2VpcmQg
QVBJIGlzc3VlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUwMTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CiAgICAgICAgICgtW1dLVmlldyBtb3Vz
ZURvd246XSk6CiAgICAgICAgICgtW1dLVmlldyBtb3VzZURyYWdnZWQ6XSk6CiAgICAgICAgICgt
W1dLVmlldyBkcmFnZ2VkSW1hZ2U6ZW5kZWRBdDpvcGVyYXRpb246XSk6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggZGUyNmI3NS4uNjk5ODk1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtNDEsNyArNDEs
NiBAQAogI2ltcG9ydCAiRWRpdG9yU3RhdGUuaCIKICNpbXBvcnQgIkxheWVyVHJlZUNvbnRleHQu
aCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKLSNpbXBvcnQgIk5hdGl2ZVdlYkdlc3R1cmVFdmVudC5o
IgogI2ltcG9ydCAiTmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgogI2ltcG9ydCAiTmF0aXZlV2Vi
TW91c2VFdmVudC5oIgogI2ltcG9ydCAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgpAQCAtNTQsOCAr
NTMsNiBAQAogI2ltcG9ydCAiVGV4dENoZWNrZXIuaCIKICNpbXBvcnQgIlRleHRDaGVja2VyU3Rh
dGUuaCIKICNpbXBvcnQgIlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaCIKLSNp
bXBvcnQgIlZpZXdHZXN0dXJlQ29udHJvbGxlci5oIgotI2ltcG9ydCAiVmlld1NuYXBzaG90U3Rv
cmUuaCIKICNpbXBvcnQgIldLQVBJQ2FzdC5oIgogI2ltcG9ydCAiV0tGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tMYXlvdXRNb2RlLmgiCkBAIC04Myw2ICs4MCw3IEBA
CiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQVhP
YmplY3RDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvck1hYy5oPgorI2ltcG9ydCA8V2Vi
Q29yZS9Db3JlR3JhcGhpY3NTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvRGF0YURldGVjdG9yc1NQ
SS5oPgogI2ltcG9ydCA8V2ViQ29yZS9EaWN0aW9uYXJ5TG9va3VwLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0RyYWdDb250cm9sbGVyLmg+CkBAIC0xMzEsMTcgKzEyOSw2IEBACiBAZW5kCiAjZW5kaWYK
IAotI2lmIGRlZmluZWQoX19oYXNfaW5jbHVkZSkgJiYgX19oYXNfaW5jbHVkZSg8Q29yZUdyYXBo
aWNzL0NvcmVHcmFwaGljc1ByaXZhdGUuaD4pCi0jaW1wb3J0IDxDb3JlR3JhcGhpY3MvQ29yZUdy
YXBoaWNzUHJpdmF0ZS5oPgotI2VuZGlmCi0KLWV4dGVybiAiQyIgewotdHlwZWRlZiB1aW50MzJf
dCBDR1NDb25uZWN0aW9uSUQ7Ci10eXBlZGVmIHVpbnQzMl90IENHU1dpbmRvd0lEOwotQ0dTQ29u
bmVjdGlvbklEIENHU01haW5Db25uZWN0aW9uSUQodm9pZCk7Ci1DR0Vycm9yIENHU0dldFNjcmVl
blJlY3RGb3JXaW5kb3coQ0dTQ29ubmVjdGlvbklEIGNpZCwgQ0dTV2luZG93SUQgd2lkLCBDR1Jl
Y3QgKnJlY3QpOwotfTsKLQogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCkBAIC0yMDQsMTAgKzE5MSw2IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRL
ZXlFdmVudHNQYXJhbWV0ZXJzIHsKIAogICAgIEJPT0wgX3dpbmRvd09jY2x1c2lvbkRldGVjdGlv
bkVuYWJsZWQ7CiAKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Vmlld0dlc3R1cmVDb250cm9sbGVyPiBf
Z2VzdHVyZUNvbnRyb2xsZXI7Ci0gICAgQk9PTCBfYWxsb3dzTWFnbmlmaWNhdGlvbjsKLSAgICBC
T09MIF9hbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlczsKLQogICAgIENHRmxvYXQg
X3RvdGFsSGVpZ2h0T2ZCYW5uZXJzOwogfQogCkBAIC0xMDEwLDQ4ICs5OTMsMTQgQEAgTkFUSVZF
X01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCiAKICN1
bmRlZiBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUgogCi0tICh2b2lkKV9lbnN1cmVHZXN0dXJl
Q29udHJvbGxlcgotewotICAgIGlmIChfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyID0gc3RkOjptYWtlX3Vu
aXF1ZTxWaWV3R2VzdHVyZUNvbnRyb2xsZXI+KCpfZGF0YS0+X3BhZ2UpOwotfQotCiAtICh2b2lk
KXNjcm9sbFdoZWVsOihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pbXBsLT5p
Z25vcmVzQWxsRXZlbnRzKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGlmIChldmVudC5waGFz
ZSA9PSBOU0V2ZW50UGhhc2VCZWdhbikKLSAgICAgICAgW3NlbGYgX2Rpc21pc3NDb250ZW50UmVs
YXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uOk5PXTsKLQotICAgIGlmIChfZGF0YS0+X2Fs
bG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzKSB7Ci0gICAgICAgIFtzZWxmIF9lbnN1
cmVHZXN0dXJlQ29udHJvbGxlcl07Ci0gICAgICAgIGlmIChfZGF0YS0+X2dlc3R1cmVDb250cm9s
bGVyLT5oYW5kbGVTY3JvbGxXaGVlbEV2ZW50KGV2ZW50KSkKLSAgICAgICAgICAgIHJldHVybjsK
LSAgICB9Ci0KLSAgICBOYXRpdmVXZWJXaGVlbEV2ZW50IHdlYkV2ZW50ID0gTmF0aXZlV2ViV2hl
ZWxFdmVudChldmVudCwgc2VsZik7Ci0gICAgX2RhdGEtPl9wYWdlLT5oYW5kbGVXaGVlbEV2ZW50
KHdlYkV2ZW50KTsKKyAgICBfZGF0YS0+X2ltcGwtPnNjcm9sbFdoZWVsKGV2ZW50KTsKIH0KIAog
LSAodm9pZClzd2lwZVdpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50CiB7Ci0gICAgaWYgKF9kYXRh
LT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCi0gICAgICAgIHJldHVybjsKLQotICAg
IGlmICghX2RhdGEtPl9hbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcykgewotICAg
ICAgICBbc3VwZXIgc3dpcGVXaXRoRXZlbnQ6ZXZlbnRdOwotICAgICAgICByZXR1cm47Ci0gICAg
fQotCi0gICAgaWYgKGV2ZW50LmRlbHRhWCA+IDAuMCkKLSAgICAgICAgX2RhdGEtPl9wYWdlLT5n
b0JhY2soKTsKLSAgICBlbHNlIGlmIChldmVudC5kZWx0YVggPCAwLjApCi0gICAgICAgIF9kYXRh
LT5fcGFnZS0+Z29Gb3J3YXJkKCk7Ci0gICAgZWxzZQotICAgICAgICBbc3VwZXIgc3dpcGVXaXRo
RXZlbnQ6ZXZlbnRdOworICAgIF9kYXRhLT5faW1wbC0+c3dpcGVXaXRoRXZlbnQoZXZlbnQpOwog
fQogCiAtICh2b2lkKW1vdXNlTW92ZWQ6KE5TRXZlbnQgKilldmVudApAQCAtMjA3OCw2ICsyMDI3
LDIxIEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAq
c3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAgICAgW3N1cGVyIHF1aWNrTG9va1dpdGhF
dmVudDpldmVudF07CiB9CiAKKy0gKHZvaWQpX3N1cGVyU3dpcGVXaXRoRXZlbnQ6KE5TRXZlbnQg
KilldmVudAoreworICAgIFtzdXBlciBzd2lwZVdpdGhFdmVudDpldmVudF07Cit9CisKKy0gKHZv
aWQpX3N1cGVyTWFnbmlmeVdpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50Cit7CisgICAgW3N1cGVy
IG1hZ25pZnlXaXRoRXZlbnQ6ZXZlbnRdOworfQorCistICh2b2lkKV9zdXBlclNtYXJ0TWFnbmlm
eVdpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50Cit7CisgICAgW3N1cGVyIHNtYXJ0TWFnbmlmeVdp
dGhFdmVudDpldmVudF07Cit9CisKIC0gKHZvaWQpX3N1cGVyUmVtb3ZlVHJhY2tpbmdSZWN0OihO
U1RyYWNraW5nUmVjdFRhZyl0YWcKIHsKICAgICBbc3VwZXIgcmVtb3ZlVHJhY2tpbmdSZWN0OnRh
Z107CkBAIC0yMzE2LDcgKzIyODAsNyBAQCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhO
U0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogCiAgICAg
W3NlbGYgX3VwZGF0ZVJlbW90ZUFjY2Vzc2liaWxpdHlSZWdpc3RyYXRpb246Tk9dOwogCi0gICAg
X2RhdGEtPl9nZXN0dXJlQ29udHJvbGxlciA9IG51bGxwdHI7CisgICAgX2RhdGEtPl9pbXBsLT5y
ZXNldEdlc3R1cmVDb250cm9sbGVyKCk7CiB9CiAKIC0gKHZvaWQpX3BhZ2VDbG9zZWQKQEAgLTI0
MTksODEgKzIzODMsNiBAQCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0
ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogICAgIF9kYXRhLT5faW1w
bC0+dG9vbFRpcENoYW5nZWQob2xkVG9vbFRpcCwgbmV3VG9vbFRpcCk7CiB9CiAKLXN0YXRpYyBS
ZXRhaW5QdHI8Q0dJbWFnZVJlZj4gdGFrZVdpbmRvd1NuYXBzaG90KENHU1dpbmRvd0lEIHdpbmRv
d0lELCBib29sIGNhcHR1cmVBdE5vbWluYWxSZXNvbHV0aW9uKQotewotICAgIENHU1dpbmRvd0Nh
cHR1cmVPcHRpb25zIG9wdGlvbnMgPSBrQ0dTQ2FwdHVyZUlnbm9yZUdsb2JhbENsaXBTaGFwZTsK
LSAgICBpZiAoY2FwdHVyZUF0Tm9taW5hbFJlc29sdXRpb24pCi0gICAgICAgIG9wdGlvbnMgfD0g
a0NHU1dpbmRvd0NhcHR1cmVOb21pbmFsUmVzb2x1dGlvbjsKLSAgICBSZXRhaW5QdHI8Q0ZBcnJh
eVJlZj4gd2luZG93U25hcHNob3RJbWFnZXMgPSBhZG9wdENGKENHU0hXQ2FwdHVyZVdpbmRvd0xp
c3QoQ0dTTWFpbkNvbm5lY3Rpb25JRCgpLCAmd2luZG93SUQsIDEsIG9wdGlvbnMpKTsKLQotICAg
IGlmICh3aW5kb3dTbmFwc2hvdEltYWdlcyAmJiBDRkFycmF5R2V0Q291bnQod2luZG93U25hcHNo
b3RJbWFnZXMuZ2V0KCkpKQotICAgICAgICByZXR1cm4gKENHSW1hZ2VSZWYpQ0ZBcnJheUdldFZh
bHVlQXRJbmRleCh3aW5kb3dTbmFwc2hvdEltYWdlcy5nZXQoKSwgMCk7Ci0KLSAgICAvLyBGYWxs
IGJhY2sgdG8gdGhlIG5vbi1oYXJkd2FyZSBjYXB0dXJlIHBhdGggaWYgd2UgZGlkbid0IGdldCBh
IHNuYXBzaG90Ci0gICAgLy8gKHdoaWNoIHVzdWFsbHkgaGFwcGVucyBpZiB0aGUgd2luZG93IGlz
IGZ1bGx5IG9mZi1zY3JlZW4pLgotICAgIENHV2luZG93SW1hZ2VPcHRpb24gaW1hZ2VPcHRpb25z
ID0ga0NHV2luZG93SW1hZ2VCb3VuZHNJZ25vcmVGcmFtaW5nIHwga0NHV2luZG93SW1hZ2VTaG91
bGRCZU9wYXF1ZTsKLSAgICBpZiAoY2FwdHVyZUF0Tm9taW5hbFJlc29sdXRpb24pCi0gICAgICAg
IGltYWdlT3B0aW9ucyB8PSBrQ0dXaW5kb3dJbWFnZU5vbWluYWxSZXNvbHV0aW9uOwotICAgIHJl
dHVybiBhZG9wdENGKENHV2luZG93TGlzdENyZWF0ZUltYWdlKENHUmVjdE51bGwsIGtDR1dpbmRv
d0xpc3RPcHRpb25JbmNsdWRpbmdXaW5kb3csIHdpbmRvd0lELCBpbWFnZU9wdGlvbnMpKTsKLX0K
LQotLSAoUGFzc1JlZlB0cjxWaWV3U25hcHNob3Q+KV90YWtlVmlld1NuYXBzaG90Ci17Ci0gICAg
TlNXaW5kb3cgKndpbmRvdyA9IHNlbGYud2luZG93OwotCi0gICAgQ0dTV2luZG93SUQgd2luZG93
SUQgPSAoQ0dTV2luZG93SUQpW3dpbmRvdyB3aW5kb3dOdW1iZXJdOwotICAgIGlmICghd2luZG93
SUQgfHwgIVt3aW5kb3cgaXNWaXNpYmxlXSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAg
ICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gd2luZG93U25hcHNob3RJbWFnZSA9IHRha2VXaW5kb3dT
bmFwc2hvdCh3aW5kb3dJRCwgZmFsc2UpOwotICAgIGlmICghd2luZG93U25hcHNob3RJbWFnZSkK
LSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICAvLyBXb3JrIGFyb3VuZCA8cmRhcjovL3By
b2JsZW0vMTcwODQ5OTM+OyByZS1yZXF1ZXN0IHRoZSBzbmFwc2hvdCBhdCBrQ0dXaW5kb3dJbWFn
ZU5vbWluYWxSZXNvbHV0aW9uIGlmIGl0IHdhcyBjYXB0dXJlZCBhdCB0aGUgd3Jvbmcgc2NhbGUu
Ci0gICAgQ0dGbG9hdCBkZXNpcmVkU25hcHNob3RXaWR0aCA9IHdpbmRvdy5mcmFtZS5zaXplLndp
ZHRoICogd2luZG93LnNjcmVlbi5iYWNraW5nU2NhbGVGYWN0b3I7Ci0gICAgaWYgKENHSW1hZ2VH
ZXRXaWR0aCh3aW5kb3dTbmFwc2hvdEltYWdlLmdldCgpKSAhPSBkZXNpcmVkU25hcHNob3RXaWR0
aCkKLSAgICAgICAgd2luZG93U25hcHNob3RJbWFnZSA9IHRha2VXaW5kb3dTbmFwc2hvdCh3aW5k
b3dJRCwgdHJ1ZSk7Ci0KLSAgICBpZiAoIXdpbmRvd1NuYXBzaG90SW1hZ2UpCi0gICAgICAgIHJl
dHVybiBudWxscHRyOwotCi0gICAgW3NlbGYgX2Vuc3VyZUdlc3R1cmVDb250cm9sbGVyXTsKLQot
ICAgIE5TUmVjdCB3aW5kb3dDYXB0dXJlUmVjdDsKLSAgICBGbG9hdFJlY3QgYm91bmRzRm9yQ3Vz
dG9tU3dpcGVWaWV3cyA9IF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXItPndpbmRvd1JlbGF0aXZl
Qm91bmRzRm9yQ3VzdG9tU3dpcGVWaWV3cygpOwotICAgIGlmICghYm91bmRzRm9yQ3VzdG9tU3dp
cGVWaWV3cy5pc0VtcHR5KCkpCi0gICAgICAgIHdpbmRvd0NhcHR1cmVSZWN0ID0gYm91bmRzRm9y
Q3VzdG9tU3dpcGVWaWV3czsKLSAgICBlbHNlIHsKLSAgICAgICAgTlNSZWN0IHVub2JzY3VyZWRC
b3VuZHMgPSBzZWxmLmJvdW5kczsKLSAgICAgICAgZmxvYXQgdG9wQ29udGVudEluc2V0ID0gX2Rh
dGEtPl9wYWdlLT50b3BDb250ZW50SW5zZXQoKTsKLSAgICAgICAgdW5vYnNjdXJlZEJvdW5kcy5v
cmlnaW4ueSArPSB0b3BDb250ZW50SW5zZXQ7Ci0gICAgICAgIHVub2JzY3VyZWRCb3VuZHMuc2l6
ZS5oZWlnaHQgLT0gdG9wQ29udGVudEluc2V0OwotICAgICAgICB3aW5kb3dDYXB0dXJlUmVjdCA9
IFtzZWxmIGNvbnZlcnRSZWN0OnVub2JzY3VyZWRCb3VuZHMgdG9WaWV3Om5pbF07Ci0gICAgfQot
Ci0gICAgTlNSZWN0IHdpbmRvd0NhcHR1cmVTY3JlZW5SZWN0ID0gW3dpbmRvdyBjb252ZXJ0UmVj
dFRvU2NyZWVuOndpbmRvd0NhcHR1cmVSZWN0XTsKLSAgICBDR1JlY3Qgd2luZG93U2NyZWVuUmVj
dDsKLSAgICBDR1NHZXRTY3JlZW5SZWN0Rm9yV2luZG93KENHU01haW5Db25uZWN0aW9uSUQoKSwg
KENHU1dpbmRvd0lEKVt3aW5kb3cgd2luZG93TnVtYmVyXSwgJndpbmRvd1NjcmVlblJlY3QpOwot
Ci0gICAgTlNSZWN0IGNyb3BwZWRJbWFnZVJlY3QgPSB3aW5kb3dDYXB0dXJlUmVjdDsKLSAgICBj
cm9wcGVkSW1hZ2VSZWN0Lm9yaWdpbi55ID0gd2luZG93U2NyZWVuUmVjdC5zaXplLmhlaWdodCAt
IHdpbmRvd0NhcHR1cmVTY3JlZW5SZWN0LnNpemUuaGVpZ2h0IC0gTlNNaW5ZKHdpbmRvd0NhcHR1
cmVSZWN0KTsKLQotICAgIGF1dG8gY3JvcHBlZFNuYXBzaG90SW1hZ2UgPSBhZG9wdENGKENHSW1h
Z2VDcmVhdGVXaXRoSW1hZ2VJblJlY3Qod2luZG93U25hcHNob3RJbWFnZS5nZXQoKSwgTlNSZWN0
VG9DR1JlY3QoW3dpbmRvdyBjb252ZXJ0UmVjdFRvQmFja2luZzpjcm9wcGVkSW1hZ2VSZWN0XSkp
KTsKLQotICAgIGF1dG8gc3VyZmFjZSA9IElPU3VyZmFjZTo6Y3JlYXRlRnJvbUltYWdlKGNyb3Bw
ZWRTbmFwc2hvdEltYWdlLmdldCgpKTsKLSAgICBpZiAoIXN1cmZhY2UpCi0gICAgICAgIHJldHVy
biBudWxscHRyOwotICAgIHN1cmZhY2UtPnNldElzVm9sYXRpbGUodHJ1ZSk7Ci0KLSAgICByZXR1
cm4gVmlld1NuYXBzaG90OjpjcmVhdGUoV1RGOjptb3ZlKHN1cmZhY2UpKTsKLX0KLQotLSAodm9p
ZClfd2hlZWxFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmU6KE5TRXZlbnQgKilldmVudAotewot
ICAgIGlmIChfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyKQotICAgICAgICBfZGF0YS0+X2dlc3R1
cmVDb250cm9sbGVyLT53aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShldmVudCk7Ci19
Ci0KIC0gKHZvaWQpX3NldEFjY2Vzc2liaWxpdHlXZWJQcm9jZXNzVG9rZW46KE5TRGF0YSAqKWRh
dGEKIHsKICAgICBfZGF0YS0+X3JlbW90ZUFjY2Vzc2liaWxpdHlDaGlsZCA9IFdLQVhSZW1vdGVF
bGVtZW50Rm9yVG9rZW4oZGF0YSk7CkBAIC0yNzg0LDEyICsyNjczLDYgQEAgc3RhdGljIE5TU3Ry
aW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKIH0KICNl
bmRpZiAvLyBXS19BUElfRU5BQkxFRAogCi0tICh2b2lkKV9kaWRGaXJzdFZpc3VhbGx5Tm9uRW1w
dHlMYXlvdXRGb3JNYWluRnJhbWUKLXsKLSAgICBpZiAoX2RhdGEtPl9nZXN0dXJlQ29udHJvbGxl
cikKLSAgICAgICAgX2RhdGEtPl9nZXN0dXJlQ29udHJvbGxlci0+ZGlkRmlyc3RWaXN1YWxseU5v
bkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCk7Ci19Ci0KICNpZiBXS19BUElfRU5BQkxFRAogLSAo
X1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKilfcmVtb3RlT2JqZWN0UmVnaXN0cnkKIHsKQEAgLTI4
MDIsMzAgKzI2ODUsNiBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVG
b3JQYXRoKE5TU3RyaW5nICpwYXRoKQogfQogI2VuZGlmCiAKLS0gKHZvaWQpX2RpZEZpbmlzaExv
YWRGb3JNYWluRnJhbWUKLXsKLSAgICBpZiAoX2RhdGEtPl9nZXN0dXJlQ29udHJvbGxlcikKLSAg
ICAgICAgX2RhdGEtPl9nZXN0dXJlQ29udHJvbGxlci0+ZGlkRmluaXNoTG9hZEZvck1haW5GcmFt
ZSgpOwotfQotCi0tICh2b2lkKV9kaWRGYWlsTG9hZEZvck1haW5GcmFtZQotewotICAgIGlmIChf
ZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyKQotICAgICAgICBfZGF0YS0+X2dlc3R1cmVDb250cm9s
bGVyLT5kaWRGYWlsTG9hZEZvck1haW5GcmFtZSgpOwotfQotCi0tICh2b2lkKV9kaWRTYW1lRG9j
dW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lOihTYW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZSl0
eXBlCi17Ci0gICAgaWYgKF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXIpCi0gICAgICAgIF9kYXRh
LT5fZ2VzdHVyZUNvbnRyb2xsZXItPmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJh
bWUodHlwZSk7Ci19Ci0KLS0gKHZvaWQpX3JlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QK
LXsKLSAgICBpZiAoX2RhdGEtPl9nZXN0dXJlQ29udHJvbGxlcikKLSAgICAgICAgX2RhdGEtPl9n
ZXN0dXJlQ29udHJvbGxlci0+cmVtb3ZlU3dpcGVTbmFwc2hvdCgpOwotfQotCiAjaWYgX19NQUNf
T1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDExMDAKIC0gKHZvaWQpX3N0YXJ0V2luZG93
RHJhZwogewpAQCAtMzA2NCwxNCArMjkyMywxMiBAQCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRo
VW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5nICpwYXRoKQogCiAtICh2b2lkKXNldEFsbG93
c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzOihCT09MKWFsbG93c0JhY2tGb3J3YXJkTmF2
aWdhdGlvbkdlc3R1cmVzCiB7Ci0gICAgX2RhdGEtPl9hbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRp
b25HZXN0dXJlcyA9IGFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzOwotICAgIF9k
YXRhLT5fcGFnZS0+c2V0U2hvdWxkUmVjb3JkTmF2aWdhdGlvblNuYXBzaG90cyhhbGxvd3NCYWNr
Rm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcyk7Ci0gICAgX2RhdGEtPl9wYWdlLT5zZXRTaG91bGRV
c2VJbXBsaWNpdFJ1YmJlckJhbmRDb250cm9sKGFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdl
c3R1cmVzKTsKKyAgICBfZGF0YS0+X2ltcGwtPnNldEFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlv
bkdlc3R1cmVzKGFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzKTsKIH0KIAogLSAo
Qk9PTClhbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcwogewotICAgIHJldHVybiBf
ZGF0YS0+X2FsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzOworICAgIHJldHVybiBf
ZGF0YS0+X2ltcGwtPmFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzKCk7CiB9CiAK
IC0gKEJPT0wpYWxsb3dzTGlua1ByZXZpZXcKQEAgLTMyNzEsMTQ1ICszMTI4LDY5IEBAIHN0YXRp
YyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgp
CiAKIC0gKHZvaWQpc2V0QWxsb3dzTWFnbmlmaWNhdGlvbjooQk9PTClhbGxvd3NNYWduaWZpY2F0
aW9uCiB7Ci0gICAgX2RhdGEtPl9hbGxvd3NNYWduaWZpY2F0aW9uID0gYWxsb3dzTWFnbmlmaWNh
dGlvbjsKKyAgICBfZGF0YS0+X2ltcGwtPnNldEFsbG93c01hZ25pZmljYXRpb24oYWxsb3dzTWFn
bmlmaWNhdGlvbik7CiB9CiAKIC0gKEJPT0wpYWxsb3dzTWFnbmlmaWNhdGlvbgogewotICAgIHJl
dHVybiBfZGF0YS0+X2FsbG93c01hZ25pZmljYXRpb247CisgICAgcmV0dXJuIF9kYXRhLT5faW1w
bC0+YWxsb3dzTWFnbmlmaWNhdGlvbigpOwogfQogCiAtICh2b2lkKW1hZ25pZnlXaXRoRXZlbnQ6
KE5TRXZlbnQgKilldmVudAogewotICAgIGlmICghX2RhdGEtPl9hbGxvd3NNYWduaWZpY2F0aW9u
KSB7Ci0jaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKLSAgICAgICAgTmF0aXZlV2ViR2Vz
dHVyZUV2ZW50IHdlYkV2ZW50ID0gTmF0aXZlV2ViR2VzdHVyZUV2ZW50KGV2ZW50LCBzZWxmKTsK
LSAgICAgICAgX2RhdGEtPl9wYWdlLT5oYW5kbGVHZXN0dXJlRXZlbnQod2ViRXZlbnQpOwotI2Vu
ZGlmCi0gICAgICAgIFtzdXBlciBtYWduaWZ5V2l0aEV2ZW50OmV2ZW50XTsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLQotICAgIFtzZWxmIF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5k
b3dzV2l0aEFuaW1hdGlvbjpOT107Ci0KLSAgICBbc2VsZiBfZW5zdXJlR2VzdHVyZUNvbnRyb2xs
ZXJdOwotCi0jaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKLSAgICBpZiAoX2RhdGEtPl9n
ZXN0dXJlQ29udHJvbGxlci0+aGFzQWN0aXZlTWFnbmlmaWNhdGlvbkdlc3R1cmUoKSkgewotICAg
ICAgICBfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyLT5oYW5kbGVNYWduaWZpY2F0aW9uR2VzdHVy
ZUV2ZW50KGV2ZW50LCBbc2VsZiBjb252ZXJ0UG9pbnQ6ZXZlbnQubG9jYXRpb25JbldpbmRvdyBm
cm9tVmlldzpuaWxdKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIE5hdGl2ZVdlYkdl
c3R1cmVFdmVudCB3ZWJFdmVudCA9IE5hdGl2ZVdlYkdlc3R1cmVFdmVudChldmVudCwgc2VsZik7
Ci0gICAgX2RhdGEtPl9wYWdlLT5oYW5kbGVHZXN0dXJlRXZlbnQod2ViRXZlbnQpOwotI2Vsc2UK
LSAgICBfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyLT5oYW5kbGVNYWduaWZpY2F0aW9uR2VzdHVy
ZUV2ZW50KGV2ZW50LCBbc2VsZiBjb252ZXJ0UG9pbnQ6ZXZlbnQubG9jYXRpb25JbldpbmRvdyBm
cm9tVmlldzpuaWxdKTsKLSNlbmRpZgorICAgIF9kYXRhLT5faW1wbC0+bWFnbmlmeVdpdGhFdmVu
dChldmVudCk7CiB9CiAKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogLSAodm9pZCly
b3RhdGVXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAogewotICAgIE5hdGl2ZVdlYkdlc3R1cmVF
dmVudCB3ZWJFdmVudCA9IE5hdGl2ZVdlYkdlc3R1cmVFdmVudChldmVudCwgc2VsZik7Ci0gICAg
X2RhdGEtPl9wYWdlLT5oYW5kbGVHZXN0dXJlRXZlbnQod2ViRXZlbnQpOworICAgIF9kYXRhLT5f
aW1wbC0+cm90YXRlV2l0aEV2ZW50KGV2ZW50KTsKIH0KICNlbmRpZgogCiAtICh2b2lkKV9nZXN0
dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOihOU0V2ZW50ICopZXZlbnQKIHsKLSNpZiBF
TkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQotICAgIGlmIChfZGF0YS0+X2dlc3R1cmVDb250cm9s
bGVyKQotICAgICAgICBfZGF0YS0+X2dlc3R1cmVDb250cm9sbGVyLT5nZXN0dXJlRXZlbnRXYXNO
b3RIYW5kbGVkQnlXZWJDb3JlKGV2ZW50LCBbc2VsZiBjb252ZXJ0UG9pbnQ6ZXZlbnQubG9jYXRp
b25JbldpbmRvdyBmcm9tVmlldzpuaWxdKTsKLSNlbmRpZgorICAgIF9kYXRhLT5faW1wbC0+Z2Vz
dHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZUZyb21WaWV3T25seShldmVudCk7CiB9CiAK
IC0gKHZvaWQpc21hcnRNYWduaWZ5V2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBp
ZiAoIV9kYXRhLT5fYWxsb3dzTWFnbmlmaWNhdGlvbikgewotICAgICAgICBbc3VwZXIgc21hcnRN
YWduaWZ5V2l0aEV2ZW50OmV2ZW50XTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFtz
ZWxmIF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbjpOT107
Ci0KLSAgICBbc2VsZiBfZW5zdXJlR2VzdHVyZUNvbnRyb2xsZXJdOwotCi0gICAgX2RhdGEtPl9n
ZXN0dXJlQ29udHJvbGxlci0+aGFuZGxlU21hcnRNYWduaWZpY2F0aW9uR2VzdHVyZShbc2VsZiBj
b252ZXJ0UG9pbnQ6ZXZlbnQubG9jYXRpb25JbldpbmRvdyBmcm9tVmlldzpuaWxdKTsKKyAgICBf
ZGF0YS0+X2ltcGwtPnNtYXJ0TWFnbmlmeVdpdGhFdmVudChldmVudCk7CiB9CiAKIC0gKHZvaWQp
c2V0TWFnbmlmaWNhdGlvbjooZG91YmxlKW1hZ25pZmljYXRpb24gY2VudGVyZWRBdFBvaW50OihO
U1BvaW50KXBvaW50CiB7Ci0gICAgaWYgKG1hZ25pZmljYXRpb24gPD0gMCB8fCBpc25hbihtYWdu
aWZpY2F0aW9uKSB8fCBpc2luZihtYWduaWZpY2F0aW9uKSkKLSAgICAgICAgW05TRXhjZXB0aW9u
IHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIk1hZ25pZmljYXRpb24g
c2hvdWxkIGJlIGEgcG9zaXRpdmUgbnVtYmVyIl07Ci0KLSAgICBbc2VsZiBfZGlzbWlzc0NvbnRl
bnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb246Tk9dOwotCi0gICAgX2RhdGEtPl9w
YWdlLT5zY2FsZVBhZ2VJblZpZXdDb29yZGluYXRlcyhtYWduaWZpY2F0aW9uLCByb3VuZGVkSW50
UG9pbnQocG9pbnQpKTsKKyAgICBfZGF0YS0+X2ltcGwtPnNldE1hZ25pZmljYXRpb24obWFnbmlm
aWNhdGlvbiwgTlNQb2ludFRvQ0dQb2ludChwb2ludCkpOwogfQogCiAtICh2b2lkKXNldE1hZ25p
ZmljYXRpb246KGRvdWJsZSltYWduaWZpY2F0aW9uCiB7Ci0gICAgaWYgKG1hZ25pZmljYXRpb24g
PD0gMCB8fCBpc25hbihtYWduaWZpY2F0aW9uKSB8fCBpc2luZihtYWduaWZpY2F0aW9uKSkKLSAg
ICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1h
dDpAIk1hZ25pZmljYXRpb24gc2hvdWxkIGJlIGEgcG9zaXRpdmUgbnVtYmVyIl07Ci0KLSAgICBb
c2VsZiBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb246Tk9d
OwotCi0gICAgRmxvYXRQb2ludCB2aWV3Q2VudGVyKE5TTWlkWChbc2VsZiBib3VuZHNdKSwgTlNN
aWRZKFtzZWxmIGJvdW5kc10pKTsKLSAgICBfZGF0YS0+X3BhZ2UtPnNjYWxlUGFnZUluVmlld0Nv
b3JkaW5hdGVzKG1hZ25pZmljYXRpb24sIHJvdW5kZWRJbnRQb2ludCh2aWV3Q2VudGVyKSk7Cisg
ICAgX2RhdGEtPl9pbXBsLT5zZXRNYWduaWZpY2F0aW9uKG1hZ25pZmljYXRpb24pOwogfQogCiAt
IChkb3VibGUpbWFnbmlmaWNhdGlvbgogewotICAgIGlmIChfZGF0YS0+X2dlc3R1cmVDb250cm9s
bGVyKQotICAgICAgICByZXR1cm4gX2RhdGEtPl9nZXN0dXJlQ29udHJvbGxlci0+bWFnbmlmaWNh
dGlvbigpOwotCi0gICAgcmV0dXJuIF9kYXRhLT5fcGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7Cisg
ICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+bWFnbmlmaWNhdGlvbigpOwogfQogCiAtICh2b2lkKV9z
ZXRDdXN0b21Td2lwZVZpZXdzOihOU0FycmF5ICopY3VzdG9tU3dpcGVWaWV3cwogewotICAgIGlm
ICghY3VzdG9tU3dpcGVWaWV3cy5jb3VudCAmJiAhX2RhdGEtPl9nZXN0dXJlQ29udHJvbGxlcikK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgW3NlbGYgX2Vuc3VyZUdlc3R1cmVDb250cm9sbGVyXTsK
LQotICAgIFZlY3RvcjxSZXRhaW5QdHI8TlNWaWV3Pj4gdmlld3M7Ci0gICAgZm9yIChOU1ZpZXcg
KnZpZXcgaW4gY3VzdG9tU3dpcGVWaWV3cykKLSAgICAgICAgdmlld3MuYXBwZW5kKHZpZXcpOwot
Ci0gICAgX2RhdGEtPl9nZXN0dXJlQ29udHJvbGxlci0+c2V0Q3VzdG9tU3dpcGVWaWV3cyh2aWV3
cyk7CisgICAgX2RhdGEtPl9pbXBsLT5zZXRDdXN0b21Td2lwZVZpZXdzKGN1c3RvbVN3aXBlVmll
d3MpOwogfQogCiAtICh2b2lkKV9zZXRDdXN0b21Td2lwZVZpZXdzVG9wQ29udGVudEluc2V0Oihm
bG9hdCl0b3BDb250ZW50SW5zZXQKIHsKLSAgICBbc2VsZiBfZW5zdXJlR2VzdHVyZUNvbnRyb2xs
ZXJdOwotICAgIF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXItPnNldEN1c3RvbVN3aXBlVmlld3NU
b3BDb250ZW50SW5zZXQodG9wQ29udGVudEluc2V0KTsKKyAgICBfZGF0YS0+X2ltcGwtPnNldEN1
c3RvbVN3aXBlVmlld3NUb3BDb250ZW50SW5zZXQodG9wQ29udGVudEluc2V0KTsKIH0KIAogLSAo
Qk9PTClfdHJ5VG9Td2lwZVdpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50IGlnbm9yaW5nUGlubmVk
U3RhdGU6KEJPT0wpaWdub3JpbmdQaW5uZWRTdGF0ZQogewotICAgIGlmICghX2RhdGEtPl9hbGxv
d3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcykKLSAgICAgICAgcmV0dXJuIE5POwotCi0g
ICAgW3NlbGYgX2Vuc3VyZUdlc3R1cmVDb250cm9sbGVyXTsKLQotICAgIEJPT0wgd2FzSWdub3Jp
bmdQaW5uZWRTdGF0ZSA9IF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXItPnNob3VsZElnbm9yZVBp
bm5lZFN0YXRlKCk7Ci0gICAgX2RhdGEtPl9nZXN0dXJlQ29udHJvbGxlci0+c2V0U2hvdWxkSWdu
b3JlUGlubmVkU3RhdGUoaWdub3JpbmdQaW5uZWRTdGF0ZSk7Ci0KLSAgICBCT09MIGhhbmRsZWRF
dmVudCA9IF9kYXRhLT5fZ2VzdHVyZUNvbnRyb2xsZXItPmhhbmRsZVNjcm9sbFdoZWVsRXZlbnQo
ZXZlbnQpOwotCi0gICAgX2RhdGEtPl9nZXN0dXJlQ29udHJvbGxlci0+c2V0U2hvdWxkSWdub3Jl
UGlubmVkU3RhdGUod2FzSWdub3JpbmdQaW5uZWRTdGF0ZSk7Ci0KLSAgICByZXR1cm4gaGFuZGxl
ZEV2ZW50OworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPnRyeVRvU3dpcGVXaXRoRXZlbnQoZXZl
bnQsIGlnbm9yaW5nUGlubmVkU3RhdGUpOwogfQogCiAtICh2b2lkKV9zZXREaWRNb3ZlU3dpcGVT
bmFwc2hvdENhbGxiYWNrOih2b2lkKF4pKENHUmVjdCkpY2FsbGJhY2sKIHsKLSAgICBpZiAoIV9k
YXRhLT5fYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIFtzZWxmIF9lbnN1cmVHZXN0dXJlQ29udHJvbGxlcl07Ci0gICAgX2RhdGEtPl9n
ZXN0dXJlQ29udHJvbGxlci0+c2V0RGlkTW92ZVN3aXBlU25hcHNob3RDYWxsYmFjayhjYWxsYmFj
ayk7CisgICAgX2RhdGEtPl9pbXBsLT5zZXREaWRNb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKGNh
bGxiYWNrKTsKIH0KIAogLSAoaWQpX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJG
b3JIaXRUZXN0UmVzdWx0OihXS0hpdFRlc3RSZXN1bHRSZWYpaGl0VGVzdFJlc3VsdCB3aXRoVHlw
ZToodWludDMyX3QpdHlwZSB1c2VyRGF0YTooV0tUeXBlUmVmKXVzZXJEYXRhCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAppbmRleCAzNjQ1
NDhkLi5mZGUxZTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlld0ludGVybmFsLmgKQEAgLTg3LDkgKzg3LDYgQEAgc3RydWN0IEVkaXRvclN0YXRlOwog
LSAoTlNSZWN0KV9jb252ZXJ0VG9EZXZpY2VTcGFjZTooTlNSZWN0KXJlY3Q7CiAtIChOU1JlY3Qp
X2NvbnZlcnRUb1VzZXJTcGFjZTooTlNSZWN0KXJlY3Q7CiAKLS0gKFBhc3NSZWZQdHI8V2ViS2l0
OjpWaWV3U25hcHNob3Q+KV90YWtlVmlld1NuYXBzaG90OwotLSAodm9pZClfd2hlZWxFdmVudFdh
c05vdEhhbmRsZWRCeVdlYkNvcmU6KE5TRXZlbnQgKilldmVudDsKLQogLSAodm9pZClfc2V0QWNj
ZXNzaWJpbGl0eVdlYlByb2Nlc3NUb2tlbjooTlNEYXRhICopZGF0YTsKIAogLSAodm9pZClfZHJh
Z0ltYWdlRm9yVmlldzooTlNWaWV3ICopdmlldyB3aXRoSW1hZ2U6KE5TSW1hZ2UgKilpbWFnZSBh
dDooTlNQb2ludCljbGllbnRQb2ludCBsaW5rRHJhZzooQk9PTClsaW5rRHJhZzsKQEAgLTEwNiwx
MiArMTAzLDYgQEAgc3RydWN0IEVkaXRvclN0YXRlOwogLSAodm9pZClfc2V0U3VwcHJlc3NWaXNp
YmlsaXR5VXBkYXRlczooQk9PTClzdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzOwogLSAoQk9PTClf
c3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlczsKIAotLSAodm9pZClfZGlkRmlyc3RWaXN1YWxseU5v
bkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lOwotLSAodm9pZClfZGlkRmluaXNoTG9hZEZvck1haW5G
cmFtZTsKLS0gKHZvaWQpX2RpZEZhaWxMb2FkRm9yTWFpbkZyYW1lOwotLSAodm9pZClfZGlkU2Ft
ZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZTooV2ViS2l0OjpTYW1lRG9jdW1lbnROYXZp
Z2F0aW9uVHlwZSl0eXBlOwotLSAodm9pZClfcmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hv
dDsKLQogI2lmIFdLX0FQSV9FTkFCTEVECiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRUaHVtYm5haWxWaWV3OikgX1dLVGh1bWJuYWlsVmlldyAqX3RodW1ibmFpbFZpZXc7CiAjZW5k
aWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXgg
YTY5YmJhOS4uYWQ4YThiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLmgKQEAgLTUyLDYgKzUyLDkgQEAgT0JKQ19DTEFTUyBfV0tUaHVtYm5haWxWaWV3
OwogLSAoTlNUZXh0SW5wdXRDb250ZXh0ICopX3N1cGVySW5wdXRDb250ZXh0OwogLSAodm9pZClf
c3VwZXJRdWlja0xvb2tXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudDsKIC0gKHZvaWQpX3N1cGVy
UmVtb3ZlVHJhY2tpbmdSZWN0OihOU1RyYWNraW5nUmVjdFRhZyl0YWc7CistICh2b2lkKV9zdXBl
clN3aXBlV2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQ7CistICh2b2lkKV9zdXBlck1hZ25pZnlX
aXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudDsKKy0gKHZvaWQpX3N1cGVyU21hcnRNYWduaWZ5V2l0
aEV2ZW50OihOU0V2ZW50ICopZXZlbnQ7CiAKIC8vIFRoaXMgaXMgYSBoYWNrOyB0aGVzZSB0aGlu
Z3MgbGl2ZSBjYW4gbGl2ZSBvbiBhIGNhdGVnb3J5IChlLmcuIFdLVmlldyAoUHJpdmF0ZSkpIGJ1
dCBXS1ZpZXcgaXRzZWxmIGNvbmZvcm1zIHRvIHRoaXMgcHJvdG9jb2wuCiAvLyBUaGV5J3JlIG5v
dCBhY3R1YWxseSBvcHRpb25hbC4KQEAgLTYzLDExICs2NiwxMyBAQCBPQkpDX0NMQVNTIF9XS1Ro
dW1ibmFpbFZpZXc7CiAtICh2b2lkKV9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbjsK
IC0gKHZvaWQpX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3M7CiAtICh2b2lkKV9k
aXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbjooQk9PTClhbmlt
YXRlOworLSAodm9pZClfZ2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZTooTlNFdmVu
dCAqKWV2ZW50OwogCiBAZW5kCiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitjbGFzcyBWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI7CiBjbGFzcyBXZWJFZGl0Q29tbWFuZFByb3h5OwogY2xhc3MgV2ViUGFn
ZVByb3h5Owogc3RydWN0IENvbG9yU3BhY2VEYXRhOwpAQCAtMjUwLDYgKzI1NSwzMyBAQCBwdWJs
aWM6CiAgICAgdm9pZCByZWdpc3RlckRyYWdnZWRUeXBlcygpOwogI2VuZGlmCiAKKyAgICBSZWZQ
dHI8Vmlld1NuYXBzaG90PiB0YWtlVmlld1NuYXBzaG90KCk7CisKKyAgICBWaWV3R2VzdHVyZUNv
bnRyb2xsZXIqIGdlc3R1cmVDb250cm9sbGVyKCkgeyByZXR1cm4gbV9nZXN0dXJlQ29udHJvbGxl
ci5nZXQoKTsgfQorICAgIFZpZXdHZXN0dXJlQ29udHJvbGxlciYgZW5zdXJlR2VzdHVyZUNvbnRy
b2xsZXIoKTsKKyAgICB2b2lkIHJlc2V0R2VzdHVyZUNvbnRyb2xsZXIoKTsKKyAgICB2b2lkIHNl
dEFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzKGJvb2wpOworICAgIGJvb2wgYWxs
b3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMoKSBjb25zdCB7IHJldHVybiBtX2FsbG93
c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzOyB9CisgICAgdm9pZCBzZXRBbGxvd3NNYWdu
aWZpY2F0aW9uKGJvb2wpOworICAgIGJvb2wgYWxsb3dzTWFnbmlmaWNhdGlvbigpIGNvbnN0IHsg
cmV0dXJuIG1fYWxsb3dzTWFnbmlmaWNhdGlvbjsgfQorCisgICAgdm9pZCBzZXRNYWduaWZpY2F0
aW9uKGRvdWJsZSwgQ0dQb2ludCBjZW50ZXJQb2ludCk7CisgICAgdm9pZCBzZXRNYWduaWZpY2F0
aW9uKGRvdWJsZSk7CisgICAgZG91YmxlIG1hZ25pZmljYXRpb24oKSBjb25zdDsKKyAgICB2b2lk
IHNldEN1c3RvbVN3aXBlVmlld3MoTlNBcnJheSAqKTsKKyAgICB2b2lkIHNldEN1c3RvbVN3aXBl
Vmlld3NUb3BDb250ZW50SW5zZXQoZmxvYXQpOworICAgIGJvb2wgdHJ5VG9Td2lwZVdpdGhFdmVu
dChOU0V2ZW50ICosIGJvb2wgaWdub3JpbmdQaW5uZWRTdGF0ZSk7CisgICAgdm9pZCBzZXREaWRN
b3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKHZvaWQoXikoQ0dSZWN0KSk7CisKKyAgICB2b2lkIHNj
cm9sbFdoZWVsKE5TRXZlbnQgKik7CisgICAgdm9pZCBzd2lwZVdpdGhFdmVudChOU0V2ZW50ICop
OworICAgIHZvaWQgbWFnbmlmeVdpdGhFdmVudChOU0V2ZW50ICopOworICAgIHZvaWQgcm90YXRl
V2l0aEV2ZW50KE5TRXZlbnQgKik7CisgICAgdm9pZCBzbWFydE1hZ25pZnlXaXRoRXZlbnQoTlNF
dmVudCAqKTsKKworICAgIHZvaWQgZ2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShO
U0V2ZW50ICopOworICAgIHZvaWQgZ2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZUZy
b21WaWV3T25seShOU0V2ZW50ICopOworCiBwcml2YXRlOgogICAgIFdlYWtQdHI8V2ViVmlld0lt
cGw+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKTsgfQogCkBAIC0zNDYsNiArMzc4LDEwIEBAIHByaXZhdGU6CiAjaWYgV0tfQVBJX0VOQUJM
RUQKICAgICBfV0tUaHVtYm5haWxWaWV3ICptX3RodW1ibmFpbFZpZXcgeyBudWxscHRyIH07CiAj
ZW5kaWYKKworICAgIHN0ZDo6dW5pcXVlX3B0cjxWaWV3R2VzdHVyZUNvbnRyb2xsZXI+IG1fZ2Vz
dHVyZUNvbnRyb2xsZXI7CisgICAgYm9vbCBtX2FsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdl
c3R1cmVzIHsgZmFsc2UgfTsKKyAgICBib29sIG1fYWxsb3dzTWFnbmlmaWNhdGlvbiB7IGZhbHNl
IH07CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggMGM2ZDkyNC4uODFkMWYyMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMzEs
MTEgKzMxLDE0IEBACiAjaW1wb3J0ICJDb2xvclNwYWNlRGF0YS5oIgogI2ltcG9ydCAiR2VuZXJp
Y0NhbGxiYWNrLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCisjaW1wb3J0ICJOYXRpdmVXZWJHZXN0
dXJlRXZlbnQuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYktleWJvYXJkRXZlbnQuaCIKICNpbXBvcnQg
Ik5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKKyNpbXBvcnQgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIK
ICNpbXBvcnQgIlBhZ2VDbGllbnQuaCIKICNpbXBvcnQgIlBhc3RlYm9hcmRUeXBlcy5oIgogI2lt
cG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJWaWV3R2VzdHVyZUNvbnRyb2xsZXIu
aCIKICNpbXBvcnQgIldLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldL
SW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tUZXh0SW5wdXRXaW5kb3dD
b250cm9sbGVyLmgiCkBAIC00Nyw2ICs1MCw3IEBACiAjaW1wb3J0ICJfV0tUaHVtYm5haWxWaWV3
SW50ZXJuYWwuaCIKICNpbXBvcnQgPEhJVG9vbGJveC9DYXJib25FdmVudHNDb3JlLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0FYT2JqZWN0Q2FjaGUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvQ29yZUdyYXBo
aWNzU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RhdGFEZXRlY3RvcnNTUEkuaD4KICNpbXBvcnQg
PFdlYkNvcmUvRGljdGlvbmFyeUxvb2t1cC5oPgogI2ltcG9ydCA8V2ViQ29yZS9EcmFnRGF0YS5o
PgpAQCAtMTgwOSw2ICsxODEzLDI2NCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpyZWdpc3RlckRyYWdn
ZWRUeXBlcygpCiB9CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKIAorc3RhdGljIFJl
dGFpblB0cjxDR0ltYWdlUmVmPiB0YWtlV2luZG93U25hcHNob3QoQ0dTV2luZG93SUQgd2luZG93
SUQsIGJvb2wgY2FwdHVyZUF0Tm9taW5hbFJlc29sdXRpb24pCit7CisgICAgQ0dTV2luZG93Q2Fw
dHVyZU9wdGlvbnMgb3B0aW9ucyA9IGtDR1NDYXB0dXJlSWdub3JlR2xvYmFsQ2xpcFNoYXBlOwor
ICAgIGlmIChjYXB0dXJlQXROb21pbmFsUmVzb2x1dGlvbikKKyAgICAgICAgb3B0aW9ucyB8PSBr
Q0dTV2luZG93Q2FwdHVyZU5vbWluYWxSZXNvbHV0aW9uOworICAgIFJldGFpblB0cjxDRkFycmF5
UmVmPiB3aW5kb3dTbmFwc2hvdEltYWdlcyA9IGFkb3B0Q0YoQ0dTSFdDYXB0dXJlV2luZG93TGlz
dChDR1NNYWluQ29ubmVjdGlvbklEKCksICZ3aW5kb3dJRCwgMSwgb3B0aW9ucykpOworCisgICAg
aWYgKHdpbmRvd1NuYXBzaG90SW1hZ2VzICYmIENGQXJyYXlHZXRDb3VudCh3aW5kb3dTbmFwc2hv
dEltYWdlcy5nZXQoKSkpCisgICAgICAgIHJldHVybiAoQ0dJbWFnZVJlZilDRkFycmF5R2V0VmFs
dWVBdEluZGV4KHdpbmRvd1NuYXBzaG90SW1hZ2VzLmdldCgpLCAwKTsKKworICAgIC8vIEZhbGwg
YmFjayB0byB0aGUgbm9uLWhhcmR3YXJlIGNhcHR1cmUgcGF0aCBpZiB3ZSBkaWRuJ3QgZ2V0IGEg
c25hcHNob3QKKyAgICAvLyAod2hpY2ggdXN1YWxseSBoYXBwZW5zIGlmIHRoZSB3aW5kb3cgaXMg
ZnVsbHkgb2ZmLXNjcmVlbikuCisgICAgQ0dXaW5kb3dJbWFnZU9wdGlvbiBpbWFnZU9wdGlvbnMg
PSBrQ0dXaW5kb3dJbWFnZUJvdW5kc0lnbm9yZUZyYW1pbmcgfCBrQ0dXaW5kb3dJbWFnZVNob3Vs
ZEJlT3BhcXVlOworICAgIGlmIChjYXB0dXJlQXROb21pbmFsUmVzb2x1dGlvbikKKyAgICAgICAg
aW1hZ2VPcHRpb25zIHw9IGtDR1dpbmRvd0ltYWdlTm9taW5hbFJlc29sdXRpb247CisgICAgcmV0
dXJuIGFkb3B0Q0YoQ0dXaW5kb3dMaXN0Q3JlYXRlSW1hZ2UoQ0dSZWN0TnVsbCwga0NHV2luZG93
TGlzdE9wdGlvbkluY2x1ZGluZ1dpbmRvdywgd2luZG93SUQsIGltYWdlT3B0aW9ucykpOworfQor
CitSZWZQdHI8Vmlld1NuYXBzaG90PiBXZWJWaWV3SW1wbDo6dGFrZVZpZXdTbmFwc2hvdCgpCit7
CisgICAgTlNXaW5kb3cgKndpbmRvdyA9IG1fdmlldy53aW5kb3c7CisKKyAgICBDR1NXaW5kb3dJ
RCB3aW5kb3dJRCA9IChDR1NXaW5kb3dJRCl3aW5kb3cud2luZG93TnVtYmVyOworICAgIGlmICgh
d2luZG93SUQgfHwgIXdpbmRvdy5pc1Zpc2libGUpCisgICAgICAgIHJldHVybiBudWxscHRyOwor
CisgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IHdpbmRvd1NuYXBzaG90SW1hZ2UgPSB0YWtlV2lu
ZG93U25hcHNob3Qod2luZG93SUQsIGZhbHNlKTsKKyAgICBpZiAoIXdpbmRvd1NuYXBzaG90SW1h
Z2UpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgLy8gV29yayBhcm91bmQgPHJkYXI6
Ly9wcm9ibGVtLzE3MDg0OTkzPjsgcmUtcmVxdWVzdCB0aGUgc25hcHNob3QgYXQga0NHV2luZG93
SW1hZ2VOb21pbmFsUmVzb2x1dGlvbiBpZiBpdCB3YXMgY2FwdHVyZWQgYXQgdGhlIHdyb25nIHNj
YWxlLgorICAgIENHRmxvYXQgZGVzaXJlZFNuYXBzaG90V2lkdGggPSB3aW5kb3cuZnJhbWUuc2l6
ZS53aWR0aCAqIHdpbmRvdy5zY3JlZW4uYmFja2luZ1NjYWxlRmFjdG9yOworICAgIGlmIChDR0lt
YWdlR2V0V2lkdGgod2luZG93U25hcHNob3RJbWFnZS5nZXQoKSkgIT0gZGVzaXJlZFNuYXBzaG90
V2lkdGgpCisgICAgICAgIHdpbmRvd1NuYXBzaG90SW1hZ2UgPSB0YWtlV2luZG93U25hcHNob3Qo
d2luZG93SUQsIHRydWUpOworCisgICAgaWYgKCF3aW5kb3dTbmFwc2hvdEltYWdlKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIFZpZXdHZXN0dXJlQ29udHJvbGxlciYgZ2VzdHVyZUNv
bnRyb2xsZXIgPSBlbnN1cmVHZXN0dXJlQ29udHJvbGxlcigpOworCisgICAgTlNSZWN0IHdpbmRv
d0NhcHR1cmVSZWN0OworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBib3VuZHNGb3JDdXN0b21Td2lw
ZVZpZXdzID0gZ2VzdHVyZUNvbnRyb2xsZXIud2luZG93UmVsYXRpdmVCb3VuZHNGb3JDdXN0b21T
d2lwZVZpZXdzKCk7CisgICAgaWYgKCFib3VuZHNGb3JDdXN0b21Td2lwZVZpZXdzLmlzRW1wdHko
KSkKKyAgICAgICAgd2luZG93Q2FwdHVyZVJlY3QgPSBib3VuZHNGb3JDdXN0b21Td2lwZVZpZXdz
OworICAgIGVsc2UgeworICAgICAgICBOU1JlY3QgdW5vYnNjdXJlZEJvdW5kcyA9IG1fdmlldy5i
b3VuZHM7CisgICAgICAgIGZsb2F0IHRvcENvbnRlbnRJbnNldCA9IG1fcGFnZS50b3BDb250ZW50
SW5zZXQoKTsKKyAgICAgICAgdW5vYnNjdXJlZEJvdW5kcy5vcmlnaW4ueSArPSB0b3BDb250ZW50
SW5zZXQ7CisgICAgICAgIHVub2JzY3VyZWRCb3VuZHMuc2l6ZS5oZWlnaHQgLT0gdG9wQ29udGVu
dEluc2V0OworICAgICAgICB3aW5kb3dDYXB0dXJlUmVjdCA9IFttX3ZpZXcgY29udmVydFJlY3Q6
dW5vYnNjdXJlZEJvdW5kcyB0b1ZpZXc6bmlsXTsKKyAgICB9CisKKyAgICBOU1JlY3Qgd2luZG93
Q2FwdHVyZVNjcmVlblJlY3QgPSBbd2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46d2luZG93Q2Fw
dHVyZVJlY3RdOworICAgIENHUmVjdCB3aW5kb3dTY3JlZW5SZWN0OworICAgIENHU0dldFNjcmVl
blJlY3RGb3JXaW5kb3coQ0dTTWFpbkNvbm5lY3Rpb25JRCgpLCAoQ0dTV2luZG93SUQpW3dpbmRv
dyB3aW5kb3dOdW1iZXJdLCAmd2luZG93U2NyZWVuUmVjdCk7CisKKyAgICBOU1JlY3QgY3JvcHBl
ZEltYWdlUmVjdCA9IHdpbmRvd0NhcHR1cmVSZWN0OworICAgIGNyb3BwZWRJbWFnZVJlY3Qub3Jp
Z2luLnkgPSB3aW5kb3dTY3JlZW5SZWN0LnNpemUuaGVpZ2h0IC0gd2luZG93Q2FwdHVyZVNjcmVl
blJlY3Quc2l6ZS5oZWlnaHQgLSBOU01pblkod2luZG93Q2FwdHVyZVJlY3QpOworCisgICAgYXV0
byBjcm9wcGVkU25hcHNob3RJbWFnZSA9IGFkb3B0Q0YoQ0dJbWFnZUNyZWF0ZVdpdGhJbWFnZUlu
UmVjdCh3aW5kb3dTbmFwc2hvdEltYWdlLmdldCgpLCBOU1JlY3RUb0NHUmVjdChbd2luZG93IGNv
bnZlcnRSZWN0VG9CYWNraW5nOmNyb3BwZWRJbWFnZVJlY3RdKSkpOworCisgICAgYXV0byBzdXJm
YWNlID0gV2ViQ29yZTo6SU9TdXJmYWNlOjpjcmVhdGVGcm9tSW1hZ2UoY3JvcHBlZFNuYXBzaG90
SW1hZ2UuZ2V0KCkpOworICAgIGlmICghc3VyZmFjZSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisgICAgc3VyZmFjZS0+c2V0SXNWb2xhdGlsZSh0cnVlKTsKKworICAgIHJldHVybiBWaWV3U25h
cHNob3Q6OmNyZWF0ZShXVEY6Om1vdmUoc3VyZmFjZSkpOworfQorCitWaWV3R2VzdHVyZUNvbnRy
b2xsZXImIFdlYlZpZXdJbXBsOjplbnN1cmVHZXN0dXJlQ29udHJvbGxlcigpCit7CisgICAgaWYg
KCFtX2dlc3R1cmVDb250cm9sbGVyKQorICAgICAgICBtX2dlc3R1cmVDb250cm9sbGVyID0gc3Rk
OjptYWtlX3VuaXF1ZTxWaWV3R2VzdHVyZUNvbnRyb2xsZXI+KG1fcGFnZSk7CisgICAgcmV0dXJu
ICptX2dlc3R1cmVDb250cm9sbGVyOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpyZXNldEdlc3R1
cmVDb250cm9sbGVyKCkKK3sKKyAgICBtX2dlc3R1cmVDb250cm9sbGVyID0gbnVsbHB0cjsKK30K
Kwordm9pZCBXZWJWaWV3SW1wbDo6c2V0QWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVy
ZXMoYm9vbCBhbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcykKK3sKKyAgICBtX2Fs
bG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzID0gYWxsb3dzQmFja0ZvcndhcmROYXZp
Z2F0aW9uR2VzdHVyZXM7CisgICAgbV9wYWdlLnNldFNob3VsZFJlY29yZE5hdmlnYXRpb25TbmFw
c2hvdHMoYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMpOworICAgIG1fcGFnZS5z
ZXRTaG91bGRVc2VJbXBsaWNpdFJ1YmJlckJhbmRDb250cm9sKGFsbG93c0JhY2tGb3J3YXJkTmF2
aWdhdGlvbkdlc3R1cmVzKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0QWxsb3dzTWFnbmlm
aWNhdGlvbihib29sIGFsbG93c01hZ25pZmljYXRpb24pCit7CisgICAgbV9hbGxvd3NNYWduaWZp
Y2F0aW9uID0gYWxsb3dzTWFnbmlmaWNhdGlvbjsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0
TWFnbmlmaWNhdGlvbihkb3VibGUgbWFnbmlmaWNhdGlvbiwgQ0dQb2ludCBjZW50ZXJQb2ludCkK
K3sKKyAgICBpZiAobWFnbmlmaWNhdGlvbiA8PSAwIHx8IGlzbmFuKG1hZ25pZmljYXRpb24pIHx8
IGlzaW5mKG1hZ25pZmljYXRpb24pKQorICAgICAgICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZh
bGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiTWFnbmlmaWNhdGlvbiBzaG91bGQgYmUgYSBw
b3NpdGl2ZSBudW1iZXIiXTsKKworICAgIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRv
d3NXaXRoQW5pbWF0aW9uKGZhbHNlKTsKKworICAgIG1fcGFnZS5zY2FsZVBhZ2VJblZpZXdDb29y
ZGluYXRlcyhtYWduaWZpY2F0aW9uLCBXZWJDb3JlOjpyb3VuZGVkSW50UG9pbnQoY2VudGVyUG9p
bnQpKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0TWFnbmlmaWNhdGlvbihkb3VibGUgbWFn
bmlmaWNhdGlvbikKK3sKKyAgICBpZiAobWFnbmlmaWNhdGlvbiA8PSAwIHx8IGlzbmFuKG1hZ25p
ZmljYXRpb24pIHx8IGlzaW5mKG1hZ25pZmljYXRpb24pKQorICAgICAgICBbTlNFeGNlcHRpb24g
cmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAiTWFnbmlmaWNhdGlvbiBz
aG91bGQgYmUgYSBwb3NpdGl2ZSBudW1iZXIiXTsKKworICAgIGRpc21pc3NDb250ZW50UmVsYXRp
dmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uKGZhbHNlKTsKKworICAgIFdlYkNvcmU6OkZsb2F0
UG9pbnQgdmlld0NlbnRlcihOU01pZFgoW21fdmlldyBib3VuZHNdKSwgTlNNaWRZKFttX3ZpZXcg
Ym91bmRzXSkpOworICAgIG1fcGFnZS5zY2FsZVBhZ2VJblZpZXdDb29yZGluYXRlcyhtYWduaWZp
Y2F0aW9uLCByb3VuZGVkSW50UG9pbnQodmlld0NlbnRlcikpOworfQorCitkb3VibGUgV2ViVmll
d0ltcGw6Om1hZ25pZmljYXRpb24oKSBjb25zdAoreworICAgIGlmIChtX2dlc3R1cmVDb250cm9s
bGVyKQorICAgICAgICByZXR1cm4gbV9nZXN0dXJlQ29udHJvbGxlci0+bWFnbmlmaWNhdGlvbigp
OworICAgIHJldHVybiBtX3BhZ2UucGFnZVNjYWxlRmFjdG9yKCk7Cit9CisKK3ZvaWQgV2ViVmll
d0ltcGw6OnNldEN1c3RvbVN3aXBlVmlld3MoTlNBcnJheSAqY3VzdG9tU3dpcGVWaWV3cykKK3sK
KyAgICBpZiAoIWN1c3RvbVN3aXBlVmlld3MuY291bnQgJiYgIW1fZ2VzdHVyZUNvbnRyb2xsZXIp
CisgICAgICAgIHJldHVybjsKKworICAgIFZlY3RvcjxSZXRhaW5QdHI8TlNWaWV3Pj4gdmlld3M7
CisgICAgdmlld3MucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjdXN0b21Td2lwZVZpZXdzLmNvdW50
KTsKKyAgICBmb3IgKE5TVmlldyAqdmlldyBpbiBjdXN0b21Td2lwZVZpZXdzKQorICAgICAgICB2
aWV3cy51bmNoZWNrZWRBcHBlbmQodmlldyk7CisKKyAgICBlbnN1cmVHZXN0dXJlQ29udHJvbGxl
cigpLnNldEN1c3RvbVN3aXBlVmlld3Modmlld3MpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpz
ZXRDdXN0b21Td2lwZVZpZXdzVG9wQ29udGVudEluc2V0KGZsb2F0IHRvcENvbnRlbnRJbnNldCkK
K3sKKyAgICBlbnN1cmVHZXN0dXJlQ29udHJvbGxlcigpLnNldEN1c3RvbVN3aXBlVmlld3NUb3BD
b250ZW50SW5zZXQodG9wQ29udGVudEluc2V0KTsKK30KKworYm9vbCBXZWJWaWV3SW1wbDo6dHJ5
VG9Td2lwZVdpdGhFdmVudChOU0V2ZW50ICpldmVudCwgYm9vbCBpZ25vcmluZ1Bpbm5lZFN0YXRl
KQoreworICAgIGlmICghbV9hbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcykKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgYXV0byYgZ2VzdHVyZUNvbnRyb2xsZXIgPSBlbnN1
cmVHZXN0dXJlQ29udHJvbGxlcigpOworCisgICAgYm9vbCB3YXNJZ25vcmluZ1Bpbm5lZFN0YXRl
ID0gZ2VzdHVyZUNvbnRyb2xsZXIuc2hvdWxkSWdub3JlUGlubmVkU3RhdGUoKTsKKyAgICBnZXN0
dXJlQ29udHJvbGxlci5zZXRTaG91bGRJZ25vcmVQaW5uZWRTdGF0ZShpZ25vcmluZ1Bpbm5lZFN0
YXRlKTsKKworICAgIGJvb2wgaGFuZGxlZEV2ZW50ID0gZ2VzdHVyZUNvbnRyb2xsZXIuaGFuZGxl
U2Nyb2xsV2hlZWxFdmVudChldmVudCk7CisKKyAgICBnZXN0dXJlQ29udHJvbGxlci5zZXRTaG91
bGRJZ25vcmVQaW5uZWRTdGF0ZSh3YXNJZ25vcmluZ1Bpbm5lZFN0YXRlKTsKKyAgICAKKyAgICBy
ZXR1cm4gaGFuZGxlZEV2ZW50OworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXREaWRNb3ZlU3dp
cGVTbmFwc2hvdENhbGxiYWNrKHZvaWQoXmNhbGxiYWNrKShDR1JlY3QpKQoreworICAgIGlmICgh
bV9hbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcykKKyAgICAgICAgcmV0dXJuOwor
CisgICAgZW5zdXJlR2VzdHVyZUNvbnRyb2xsZXIoKS5zZXREaWRNb3ZlU3dpcGVTbmFwc2hvdENh
bGxiYWNrKGNhbGxiYWNrKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2Nyb2xsV2hlZWwoTlNF
dmVudCAqZXZlbnQpCit7CisgICAgaWYgKG1faWdub3Jlc0FsbEV2ZW50cykKKyAgICAgICAgcmV0
dXJuOworCisgICAgaWYgKGV2ZW50LnBoYXNlID09IE5TRXZlbnRQaGFzZUJlZ2FuKQorICAgICAg
ICBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbihmYWxzZSk7
CisKKyAgICBpZiAobV9hbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcyAmJiBlbnN1
cmVHZXN0dXJlQ29udHJvbGxlcigpLmhhbmRsZVNjcm9sbFdoZWVsRXZlbnQoZXZlbnQpKQorICAg
ICAgICByZXR1cm47CisKKyAgICBOYXRpdmVXZWJXaGVlbEV2ZW50IHdlYkV2ZW50ID0gTmF0aXZl
V2ViV2hlZWxFdmVudChldmVudCwgbV92aWV3KTsKKyAgICBtX3BhZ2UuaGFuZGxlV2hlZWxFdmVu
dCh3ZWJFdmVudCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnN3aXBlV2l0aEV2ZW50KE5TRXZl
bnQgKmV2ZW50KQoreworICAgIGlmIChtX2lnbm9yZXNOb25XaGVlbEV2ZW50cykKKyAgICAgICAg
cmV0dXJuOworCisgICAgaWYgKCFtX2FsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVz
KSB7CisgICAgICAgIFttX3ZpZXcgX3N1cGVyU3dpcGVXaXRoRXZlbnQ6ZXZlbnRdOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgaWYgKGV2ZW50LmRlbHRhWCA+IDAuMCkKKyAgICAgICAg
bV9wYWdlLmdvQmFjaygpOworICAgIGVsc2UgaWYgKGV2ZW50LmRlbHRhWCA8IDAuMCkKKyAgICAg
ICAgbV9wYWdlLmdvRm9yd2FyZCgpOworICAgIGVsc2UKKyAgICAgICAgW21fdmlldyBfc3VwZXJT
d2lwZVdpdGhFdmVudDpldmVudF07Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6Om1hZ25pZnlXaXRo
RXZlbnQoTlNFdmVudCAqZXZlbnQpCit7CisgICAgaWYgKCFtX2FsbG93c01hZ25pZmljYXRpb24p
IHsKKyNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQorICAgICAgICBOYXRpdmVXZWJHZXN0
dXJlRXZlbnQgd2ViRXZlbnQgPSBOYXRpdmVXZWJHZXN0dXJlRXZlbnQoZXZlbnQsIG1fdmlldyk7
CisgICAgICAgIG1fcGFnZS5oYW5kbGVHZXN0dXJlRXZlbnQod2ViRXZlbnQpOworI2VuZGlmCisg
ICAgICAgIFttX3ZpZXcgX3N1cGVyTWFnbmlmeVdpdGhFdmVudDpldmVudF07CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0
aEFuaW1hdGlvbihmYWxzZSk7CisKKyAgICBhdXRvJiBnZXN0dXJlQ29udHJvbGxlciA9IGVuc3Vy
ZUdlc3R1cmVDb250cm9sbGVyKCk7CisKKyNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQor
ICAgIGlmIChnZXN0dXJlQ29udHJvbGxlci5oYXNBY3RpdmVNYWduaWZpY2F0aW9uR2VzdHVyZSgp
KSB7CisgICAgICAgIGdlc3R1cmVDb250cm9sbGVyLmhhbmRsZU1hZ25pZmljYXRpb25HZXN0dXJl
RXZlbnQoZXZlbnQsIFttX3ZpZXcgY29udmVydFBvaW50OmV2ZW50LmxvY2F0aW9uSW5XaW5kb3cg
ZnJvbVZpZXc6bmlsXSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBOYXRpdmVXZWJH
ZXN0dXJlRXZlbnQgd2ViRXZlbnQgPSBOYXRpdmVXZWJHZXN0dXJlRXZlbnQoZXZlbnQsIG1fdmll
dyk7CisgICAgbV9wYWdlLmhhbmRsZUdlc3R1cmVFdmVudCh3ZWJFdmVudCk7CisjZWxzZQorICAg
IGdlc3R1cmVDb250cm9sbGVyLmhhbmRsZU1hZ25pZmljYXRpb25HZXN0dXJlRXZlbnQoZXZlbnQs
IFttX3ZpZXcgY29udmVydFBvaW50OmV2ZW50LmxvY2F0aW9uSW5XaW5kb3cgZnJvbVZpZXc6bmls
XSk7CisjZW5kaWYKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c21hcnRNYWduaWZ5V2l0aEV2ZW50
KE5TRXZlbnQgKmV2ZW50KQoreworICAgIGlmICghbV9hbGxvd3NNYWduaWZpY2F0aW9uKSB7Cisg
ICAgICAgIFttX3ZpZXcgX3N1cGVyU21hcnRNYWduaWZ5V2l0aEV2ZW50OmV2ZW50XTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRv
d3NXaXRoQW5pbWF0aW9uKGZhbHNlKTsKKworICAgIGVuc3VyZUdlc3R1cmVDb250cm9sbGVyKCku
aGFuZGxlU21hcnRNYWduaWZpY2F0aW9uR2VzdHVyZShbbV92aWV3IGNvbnZlcnRQb2ludDpldmVu
dC5sb2NhdGlvbkluV2luZG93IGZyb21WaWV3Om5pbF0pOworfQorCisjaWYgRU5BQkxFKE1BQ19H
RVNUVVJFX0VWRU5UUykKK3ZvaWQgV2ViVmlld0ltcGw6OnJvdGF0ZVdpdGhFdmVudChOU0V2ZW50
ICpldmVudCkKK3sKKyAgICBOYXRpdmVXZWJHZXN0dXJlRXZlbnQgd2ViRXZlbnQgPSBOYXRpdmVX
ZWJHZXN0dXJlRXZlbnQoZXZlbnQsIG1fdmlldyk7CisgICAgbV9wYWdlLmhhbmRsZUdlc3R1cmVF
dmVudCh3ZWJFdmVudCk7Cit9CisjZW5kaWYKKwordm9pZCBXZWJWaWV3SW1wbDo6Z2VzdHVyZUV2
ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShOU0V2ZW50ICpldmVudCkKK3sKKyAgICBbbV92aWV3
IF9nZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOmV2ZW50XTsKK30KKwordm9pZCBX
ZWJWaWV3SW1wbDo6Z2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZUZyb21WaWV3T25s
eShOU0V2ZW50ICpldmVudCkKK3sKKyNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQorICAg
IGlmIChtX2dlc3R1cmVDb250cm9sbGVyKQorICAgICAgICBtX2dlc3R1cmVDb250cm9sbGVyLT5n
ZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGV2ZW50LCBbbV92aWV3IGNvbnZlcnRQ
b2ludDpldmVudC5sb2NhdGlvbkluV2luZG93IGZyb21WaWV3Om5pbF0pOworI2VuZGlmCit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggNDI5ZTZh
Yi4uYTM4YjFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdl
Q2xpZW50SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsLm1tCkBAIC0zNyw2ICszNyw3IEBACiAjaW1wb3J0ICJOYXRpdmVXZWJXaGVlbEV2ZW50
LmgiCiAjaW1wb3J0ICJOYXZpZ2F0aW9uU3RhdGUuaCIKICNpbXBvcnQgIlN0cmluZ1V0aWxpdGll
cy5oIgorI2ltcG9ydCAiVmlld0dlc3R1cmVDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJWaWV3U25h
cHNob3RTdG9yZS5oIgogI2ltcG9ydCAiV0tBUElDYXN0LmgiCiAjaW1wb3J0ICJXS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyLmgiCkBAIC01MTQsNyArNTE1LDcgQEAgQ0FMYXllciAqUGFnZUNs
aWVudEltcGw6OmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoKSBjb25zdAogCiBQYXNz
UmVmUHRyPFZpZXdTbmFwc2hvdD4gUGFnZUNsaWVudEltcGw6OnRha2VWaWV3U25hcHNob3QoKQog
ewotICAgIHJldHVybiBbbV93a1ZpZXcgX3Rha2VWaWV3U25hcHNob3RdOworICAgIHJldHVybiBt
X2ltcGwtPnRha2VWaWV3U25hcHNob3QoKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2Vs
ZWN0aW9uRGlkQ2hhbmdlKCkKQEAgLTUyNCw3ICs1MjUsOCBAQCB2b2lkIFBhZ2VDbGllbnRJbXBs
OjpzZWxlY3Rpb25EaWRDaGFuZ2UoKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjp3aGVlbEV2ZW50
V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShjb25zdCBOYXRpdmVXZWJXaGVlbEV2ZW50JiBldmVudCkK
IHsKLSAgICBbbV93a1ZpZXcgX3doZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOmV2ZW50
Lm5hdGl2ZUV2ZW50KCldOworICAgIGlmIChhdXRvIGdlc3R1cmVDb250cm9sbGVyID0gbV9pbXBs
LT5nZXN0dXJlQ29udHJvbGxlcigpKQorICAgICAgICBnZXN0dXJlQ29udHJvbGxlci0+d2hlZWxF
dmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUoZXZlbnQubmF0aXZlRXZlbnQoKSk7CiB9CiAKICNp
ZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQpAQCAtNzQ3LDI3ICs3NDksMzIgQEAgdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6ZGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgpCiAKIHZv
aWQgUGFnZUNsaWVudEltcGw6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5G
cmFtZSgpCiB7Ci0gICAgW21fd2tWaWV3IF9kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRG
b3JNYWluRnJhbWVdOworICAgIGlmIChhdXRvIGdlc3R1cmVDb250cm9sbGVyID0gbV9pbXBsLT5n
ZXN0dXJlQ29udHJvbGxlcigpKQorICAgICAgICBnZXN0dXJlQ29udHJvbGxlci0+ZGlkRmlyc3RW
aXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZyYW1lKCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVu
dEltcGw6OmRpZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKQogewotICAgIFttX3drVmlldyBfZGlk
RmluaXNoTG9hZEZvck1haW5GcmFtZV07CisgICAgaWYgKGF1dG8gZ2VzdHVyZUNvbnRyb2xsZXIg
PSBtX2ltcGwtPmdlc3R1cmVDb250cm9sbGVyKCkpCisgICAgICAgIGdlc3R1cmVDb250cm9sbGVy
LT5kaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6
OmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1lKCkKIHsKLSAgICBbbV93a1ZpZXcgX2RpZEZhaWxMb2Fk
Rm9yTWFpbkZyYW1lXTsKKyAgICBpZiAoYXV0byBnZXN0dXJlQ29udHJvbGxlciA9IG1faW1wbC0+
Z2VzdHVyZUNvbnRyb2xsZXIoKSkKKyAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZhaWxM
b2FkRm9yTWFpbkZyYW1lKCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFNhbWVEb2N1
bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgdHlw
ZSkKIHsKLSAgICBbbV93a1ZpZXcgX2RpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJh
bWU6dHlwZV07CisgICAgaWYgKGF1dG8gZ2VzdHVyZUNvbnRyb2xsZXIgPSBtX2ltcGwtPmdlc3R1
cmVDb250cm9sbGVyKCkpCisgICAgICAgIGdlc3R1cmVDb250cm9sbGVyLT5kaWRTYW1lRG9jdW1l
bnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKHR5cGUpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBs
OjpyZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCkKIHsKLSAgICBbbV93a1ZpZXcgX3Jl
bW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3RdOworICAgIGlmIChhdXRvIGdlc3R1cmVDb250
cm9sbGVyID0gbV9pbXBsLT5nZXN0dXJlQ29udHJvbGxlcigpKQorICAgICAgICBnZXN0dXJlQ29u
dHJvbGxlci0+cmVtb3ZlU3dpcGVTbmFwc2hvdCgpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBs
OjpkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKQo=
</data>
<flag name="review"
          id="289245"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264120</attachid>
            <date>2015-10-26 22:25:51 -0700</date>
            <delta_ts>2015-10-27 13:57:28 -0700</delta_ts>
            <desc>Part 9 - pasteboard and spellcheck</desc>
            <filename>9.diff</filename>
            <type>text/plain</type>
            <size>42865</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA5Y2QxYjM0Li4xMzM1YzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC02LDYgKzYsNjYg
QEAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKICAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBtb3VzZURvd246XSk6
CisgICAgICAgICgtW1dLVmlldyBtb3VzZVVwOl0pOgorICAgICAgICAoLVtXS1ZpZXcgYWNjZXB0
c0ZpcnN0TW91c2U6XSk6CisgICAgICAgICgtW1dLVmlldyBzaG91bGREZWxheVdpbmRvd09yZGVy
aW5nRm9yRXZlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBwYXN0ZWJvYXJkQ2hhbmdlZE93bmVy
Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgcGFzdGVib2FyZDpwcm92aWRlRGF0YUZvclR5cGU6XSk6
CisgICAgICAgICgtW1dLVmlldyBuYW1lc09mUHJvbWlzZWRGaWxlc0Ryb3BwZWRBdERlc3RpbmF0
aW9uOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX3N0YXJ0V2luZG93RHJhZ10pOgorICAgICAgICAo
LVtXS1ZpZXcgX3NldE1vdXNlRG93bkV2ZW50Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1Zp
ZXcgX2NvbG9yU3BhY2VdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9kcmFnSW1hZ2VG
b3JWaWV3OndpdGhJbWFnZTphdDpsaW5rRHJhZzpdKTogRGVsZXRlZC4KKyAgICAgICAgKG1hdGNo
ZXNFeHRlbnNpb25PckVxdWl2YWxlbnQpOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3Nl
dEZpbGVBbmRVUkxUeXBlczp3aXRoRXh0ZW5zaW9uOndpdGhUaXRsZTp3aXRoVVJMOndpdGhWaXNp
YmxlVVJMOmZvclBhc3RlYm9hcmQ6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfc2V0
UHJvbWlzZWREYXRhRm9ySW1hZ2U6d2l0aEZpbGVOYW1lOndpdGhFeHRlbnNpb246d2l0aFRpdGxl
OndpdGhVUkw6d2l0aFZpc2libGVVUkw6d2l0aEFyY2hpdmU6Zm9yUGFzdGVib2FyZDpdKTogRGVs
ZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9zZXRQcm9taXNlZERhdGFGb3JBdHRhY2htZW50Ondp
dGhFeHRlbnNpb246d2l0aFRpdGxlOndpdGhVUkw6d2l0aFZpc2libGVVUkw6Zm9yUGFzdGVib2Fy
ZDpdKTogRGVsZXRlZC4KKyAgICAgICAgKGZpbGVFeGlzdHMpOiBEZWxldGVkLgorICAgICAgICAo
cGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgpOiBEZWxldGVkLgorICAgICAgICAoLVtXS1Zp
ZXcgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3
IGhhbmRsZUFjY2VwdGVkQWx0ZXJuYXRpdmVUZXh0Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S1ZpZXcgaW5pdFdpdGhGcmFtZTpwcm9jZXNzUG9vbDpjb25maWd1cmF0aW9uOndlYlZpZXc6XSk6
IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpoYW5kbGVBY2NlcHRlZEFsdGVybmF0aXZlVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpzcGVsbENoZWNrZXJEb2N1bWVudFRhZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpzdGFydFdpbmRvd0RyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
ZHJhZ0ltYWdlRm9yVmlldyk6CisgICAgICAgIChXZWJLaXQ6Om1hdGNoZXNFeHRlbnNpb25PckVx
dWl2YWxlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0RmlsZUFuZFVSTFR5
cGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFByb21pc2VkRGF0YUZvcklt
YWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFByb21pc2VkRGF0YUZvckF0
dGFjaG1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGFzdGVib2FyZENoYW5n
ZWRPd25lcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwcm92aWRlRGF0YUZvclBh
c3RlYm9hcmQpOgorICAgICAgICAoV2ViS2l0OjpmaWxlRXhpc3RzKToKKyAgICAgICAgKFdlYktp
dDo6cGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6bmFtZXNPZlByb21pc2VkRmlsZXNEcm9wcGVkQXREZXN0aW5hdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRMYXN0TW91c2VEb3duRXZlbnQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvQ29ycmVjdGlvblBhbmVsLmg6CisgICAgICAgICogVUlQcm9jZXNz
L21hYy9Db3JyZWN0aW9uUGFuZWwubW06CisgICAgICAgIChXZWJLaXQ6OkNvcnJlY3Rpb25QYW5l
bDo6c2hvdyk6CisgICAgICAgIChXZWJLaXQ6OkNvcnJlY3Rpb25QYW5lbDo6cmVjb3JkQXV0b2Nv
cnJlY3Rpb25SZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OkNvcnJlY3Rpb25QYW5lbDo6aGFu
ZGxlQWNjZXB0ZWRSZXBsYWNlbWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmNvbG9yU3BhY2Up
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0RHJhZ0ltYWdlKToKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNldFByb21pc2VkRGF0YUZvckltYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNldFByb21pc2VkRGF0YUZvckF0dGFjaG1l
bnQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2hvd0NvcnJlY3Rpb25QYW5l
bCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZWNvcmRBdXRvY29ycmVjdGlv
blJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNob3dEaWN0YXRp
b25BbHRlcm5hdGl2ZVVJKToKKyAgICAgICAgTW92ZSBzb21lIHBhc3RlYm9hcmQgYW5kIHNwZWxs
Y2hlY2sgY29kZS4KKworMjAxNS0xMC0yNiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFw
cGxlLmNvbT4KKworICAgICAgICBXS1ZpZXcgYmVpbmcgaW5zaWRlIFdLV2ViVmlldyBsZWFkcyB0
byB3ZWlyZCBBUEkgaXNzdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTAxNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKICAgICAgICAgKC1bV0tW
aWV3IF9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKICAgICAgICAgKC1bV0tW
aWV3IGFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50XSk6CiAgICAgICAgICgtW1dLVmlldyBh
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkXSk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW0KaW5kZXggZmY1MzI5NS4uNTY4MDU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtMTc2LDE0ICsxNzYsNiBAQCBzdHJ1Y3QgV0tW
aWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiAjZW5kaWYKIAogICAgIEJPT0wgX3dp
bGxCZWNvbWVGaXJzdFJlc3BvbmRlckFnYWluOwotICAgIE5TRXZlbnQgKl9tb3VzZURvd25FdmVu
dDsKLQotICAgIEJPT0wgX2hhc1NwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwotICAgIE5TSW50ZWdl
ciBfc3BlbGxDaGVja2VyRG9jdW1lbnRUYWc7Ci0KLSAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+
IF9wcm9taXNlZEltYWdlOwotICAgIFN0cmluZyBfcHJvbWlzZWRGaWxlbmFtZTsKLSAgICBTdHJp
bmcgX3Byb21pc2VkVVJMOwogCiAgICAgQk9PTCBfd2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5h
YmxlZDsKIApAQCAtODk2LDE3ICs4ODgsNiBAQCBzdGF0aWMgTlNUb29sYmFySXRlbSAqdG9vbGJh
ckl0ZW0oaWQgPE5TVmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+IGl0ZW0pCiAgICAgcmV0dXJu
IFlFUzsKIH0KIAotLSAodm9pZClfc2V0TW91c2VEb3duRXZlbnQ6KE5TRXZlbnQgKilldmVudAot
ewotICAgIEFTU0VSVCghZXZlbnQgfHwgW2V2ZW50IHR5cGVdID09IE5TTGVmdE1vdXNlRG93biB8
fCBbZXZlbnQgdHlwZV0gPT0gTlNSaWdodE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNP
dGhlck1vdXNlRG93bik7Ci0gICAgCi0gICAgaWYgKGV2ZW50ID09IF9kYXRhLT5fbW91c2VEb3du
RXZlbnQpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBbX2RhdGEtPl9tb3VzZURvd25FdmVu
dCByZWxlYXNlXTsKLSAgICBfZGF0YS0+X21vdXNlRG93bkV2ZW50ID0gW2V2ZW50IHJldGFpbl07
Ci19Ci0KICNpZiBVU0UoQVNZTkNfTlNURVhUSU5QVVRDTElFTlQpCiAjZGVmaW5lIE5BVElWRV9N
T1VTRV9FVkVOVF9IQU5ETEVSKFNlbGVjdG9yKSBcCiAgICAgLSAodm9pZClTZWxlY3RvcjooTlNF
dmVudCAqKXRoZUV2ZW50IFwKQEAgLTEwMTYsNyArOTk3LDcgQEAgTkFUSVZFX01PVVNFX0VWRU5U
X0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCiAgICAgaWYgKF9kYXRhLT5f
aW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFtz
ZWxmIF9zZXRNb3VzZURvd25FdmVudDpldmVudF07CisgICAgX2RhdGEtPl9pbXBsLT5zZXRMYXN0
TW91c2VEb3duRXZlbnQoZXZlbnQpOwogICAgIF9kYXRhLT5faW1wbC0+c2V0SWdub3Jlc01vdXNl
RHJhZ2dlZEV2ZW50cyhmYWxzZSk7CiAKICAgICBbc2VsZiBtb3VzZURvd25JbnRlcm5hbDpldmVu
dF07CkBAIC0xMDI3LDcgKzEwMDgsNyBAQCBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRF
Uk5BTChtb3VzZURyYWdnZWRJbnRlcm5hbCkKICAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVz
Tm9uV2hlZWxFdmVudHMoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgW3NlbGYgX3NldE1vdXNl
RG93bkV2ZW50Om5pbF07CisgICAgX2RhdGEtPl9pbXBsLT5zZXRMYXN0TW91c2VEb3duRXZlbnQo
bmlsKTsKICAgICBbc2VsZiBtb3VzZVVwSW50ZXJuYWw6ZXZlbnRdOwogfQogCkBAIC0xMDU2LDkg
KzEwMzcsOSBAQCBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRFUk5BTChtb3VzZURyYWdn
ZWRJbnRlcm5hbCkKICAgICBpZiAoIVtzZWxmIGhpdFRlc3Q6W2V2ZW50IGxvY2F0aW9uSW5XaW5k
b3ddXSkKICAgICAgICAgcmV0dXJuIE5POwogICAgIAotICAgIFtzZWxmIF9zZXRNb3VzZURvd25F
dmVudDpldmVudF07CisgICAgX2RhdGEtPl9pbXBsLT5zZXRMYXN0TW91c2VEb3duRXZlbnQoZXZl
bnQpOwogICAgIGJvb2wgcmVzdWx0ID0gX2RhdGEtPl9wYWdlLT5hY2NlcHRzRmlyc3RNb3VzZShb
ZXZlbnQgZXZlbnROdW1iZXJdLCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQo
ZXZlbnQsIF9kYXRhLT5faW1wbC0+bGFzdFByZXNzdXJlRXZlbnQoKSwgc2VsZikpOwotICAgIFtz
ZWxmIF9zZXRNb3VzZURvd25FdmVudDpuaWxdOworICAgIF9kYXRhLT5faW1wbC0+c2V0TGFzdE1v
dXNlRG93bkV2ZW50KG5pbCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMTA3Nyw5ICsx
MDU4LDkgQEAgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2Vk
SW50ZXJuYWwpCiAgICAgaWYgKCFbc2VsZiBoaXRUZXN0OltldmVudCBsb2NhdGlvbkluV2luZG93
XV0pCiAgICAgICAgIHJldHVybiBOTzsKICAgICAKLSAgICBbc2VsZiBfc2V0TW91c2VEb3duRXZl
bnQ6ZXZlbnRdOworICAgIF9kYXRhLT5faW1wbC0+c2V0TGFzdE1vdXNlRG93bkV2ZW50KGV2ZW50
KTsKICAgICBib29sIHJlc3VsdCA9IF9kYXRhLT5fcGFnZS0+c2hvdWxkRGVsYXlXaW5kb3dPcmRl
cmluZ0ZvckV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChldmVudCwg
X2RhdGEtPl9pbXBsLT5sYXN0UHJlc3N1cmVFdmVudCgpLCBzZWxmKSk7Ci0gICAgW3NlbGYgX3Nl
dE1vdXNlRG93bkV2ZW50Om5pbF07CisgICAgX2RhdGEtPl9pbXBsLT5zZXRMYXN0TW91c2VEb3du
RXZlbnQobmlsKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC0yMjIwLDExICsyMjAxLDYg
QEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJp
bmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5PigqX2RhdGEtPl9wYWdlKTsKIH0KIAot
LSAoV2ViS2l0OjpDb2xvclNwYWNlRGF0YSlfY29sb3JTcGFjZQotewotICAgIHJldHVybiBfZGF0
YS0+X2ltcGwtPmNvbG9yU3BhY2UoKTsKLX0KLQogLSAodm9pZClfcHJvY2Vzc0RpZEV4aXQKIHsK
ICAgICBfZGF0YS0+X2ltcGwtPm5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9z
aXRpb24oKTsKQEAgLTIzMzIsMTYxICsyMzA4LDE5IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRl
cmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRl
CiAgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+c3RyaW5nRm9yVG9vbFRpcCh0YWcpOwogfQogCi0t
ICh2b2lkKV9kcmFnSW1hZ2VGb3JWaWV3OihOU1ZpZXcgKil2aWV3IHdpdGhJbWFnZTooTlNJbWFn
ZSAqKWltYWdlIGF0OihOU1BvaW50KWNsaWVudFBvaW50IGxpbmtEcmFnOihCT09MKWxpbmtEcmFn
Ci17Ci0gICAgLy8gVGhlIGNhbGwgYmVsb3cgY291bGQgcmVsZWFzZSB0aGlzIFdLVmlldy4KLSAg
ICBSZXRhaW5QdHI8V0tWaWV3PiBwcm90ZWN0b3Ioc2VsZik7Ci0KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbdmlldyBkcmFnSW1hZ2U6aW1hZ2UKLSAgICAgICAgICAg
ICAgICAgYXQ6Y2xpZW50UG9pbnQKLSAgICAgICAgICAgICBvZmZzZXQ6TlNaZXJvU2l6ZQotICAg
ICAgICAgICAgICBldmVudDoobGlua0RyYWcpID8gW05TQXBwIGN1cnJlbnRFdmVudF0gOiBfZGF0
YS0+X21vdXNlRG93bkV2ZW50Ci0gICAgICAgICBwYXN0ZWJvYXJkOltOU1Bhc3RlYm9hcmQgcGFz
dGVib2FyZFdpdGhOYW1lOk5TRHJhZ1Bib2FyZF0KLSAgICAgICAgICAgICBzb3VyY2U6c2VsZgot
ICAgICAgICAgIHNsaWRlQmFjazpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAot
fQotCi1zdGF0aWMgYm9vbCBtYXRjaGVzRXh0ZW5zaW9uT3JFcXVpdmFsZW50KE5TU3RyaW5nICpm
aWxlbmFtZSwgTlNTdHJpbmcgKmV4dGVuc2lvbikKLXsKLSAgICBOU1N0cmluZyAqZXh0ZW5zaW9u
QXNTdWZmaXggPSBbQCIuIiBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzpleHRlbnNpb25dOwotICAg
IHJldHVybiBoYXNDYXNlSW5zZW5zaXRpdmVTdWZmaXgoZmlsZW5hbWUsIGV4dGVuc2lvbkFzU3Vm
Zml4KSB8fCAoc3RyaW5nSXNDYXNlSW5zZW5zaXRpdmVFcXVhbFRvU3RyaW5nKGV4dGVuc2lvbiwg
QCJqcGVnIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICYmIGhhc0Nhc2VJbnNlbnNpdGl2ZVN1ZmZpeChmaWxlbmFt
ZSwgQCIuanBnIikpOwotfQotCi0tICh2b2lkKV9zZXRGaWxlQW5kVVJMVHlwZXM6KE5TU3RyaW5n
ICopZmlsZW5hbWUgd2l0aEV4dGVuc2lvbjooTlNTdHJpbmcgKilleHRlbnNpb24gd2l0aFRpdGxl
OihOU1N0cmluZyAqKXRpdGxlIHdpdGhVUkw6KE5TU3RyaW5nICopdXJsIHdpdGhWaXNpYmxlVVJM
OihOU1N0cmluZyAqKXZpc2libGVVcmwgZm9yUGFzdGVib2FyZDooTlNQYXN0ZWJvYXJkICopcGFz
dGVib2FyZAotewotICAgIGlmICghbWF0Y2hlc0V4dGVuc2lvbk9yRXF1aXZhbGVudChmaWxlbmFt
ZSwgZXh0ZW5zaW9uKSkKLSAgICAgICAgZmlsZW5hbWUgPSBbW2ZpbGVuYW1lIHN0cmluZ0J5QXBw
ZW5kaW5nU3RyaW5nOkAiLiJdIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOmV4dGVuc2lvbl07Ci0g
ICAgCi0gICAgW3Bhc3RlYm9hcmQgc2V0U3RyaW5nOnZpc2libGVVcmwgZm9yVHlwZTpOU1N0cmlu
Z1Bib2FyZFR5cGVdOwotICAgIFtwYXN0ZWJvYXJkIHNldFN0cmluZzp2aXNpYmxlVXJsIGZvclR5
cGU6UGFzdGVib2FyZFR5cGVzOjpXZWJVUkxQYm9hcmRUeXBlXTsKLSAgICBbcGFzdGVib2FyZCBz
ZXRTdHJpbmc6dGl0bGUgZm9yVHlwZTpQYXN0ZWJvYXJkVHlwZXM6OldlYlVSTE5hbWVQYm9hcmRU
eXBlXTsKLSAgICBbcGFzdGVib2FyZCBzZXRQcm9wZXJ0eUxpc3Q6W05TQXJyYXkgYXJyYXlXaXRo
T2JqZWN0czpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6dmlzaWJsZVVybF0sIFtOU0FycmF5IGFy
cmF5V2l0aE9iamVjdDp0aXRsZV0sIG5pbF0gZm9yVHlwZTpQYXN0ZWJvYXJkVHlwZXM6OldlYlVS
THNXaXRoVGl0bGVzUGJvYXJkVHlwZV07Ci0gICAgW3Bhc3RlYm9hcmQgc2V0UHJvcGVydHlMaXN0
OltOU0FycmF5IGFycmF5V2l0aE9iamVjdDpleHRlbnNpb25dIGZvclR5cGU6TlNGaWxlc1Byb21p
c2VQYm9hcmRUeXBlXTsKLSAgICBfZGF0YS0+X3Byb21pc2VkRmlsZW5hbWUgPSBmaWxlbmFtZTsK
LSAgICBfZGF0YS0+X3Byb21pc2VkVVJMID0gdXJsOwotfQotCi0tICh2b2lkKV9zZXRQcm9taXNl
ZERhdGFGb3JJbWFnZTooV2ViQ29yZTo6SW1hZ2UgKilpbWFnZSB3aXRoRmlsZU5hbWU6KE5TU3Ry
aW5nICopZmlsZW5hbWUgd2l0aEV4dGVuc2lvbjooTlNTdHJpbmcgKilleHRlbnNpb24gd2l0aFRp
dGxlOihOU1N0cmluZyAqKXRpdGxlIHdpdGhVUkw6KE5TU3RyaW5nICopdXJsIHdpdGhWaXNpYmxl
VVJMOihOU1N0cmluZyAqKXZpc2libGVVcmwgd2l0aEFyY2hpdmU6KFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlciopIGFyY2hpdmVCdWZmZXIgZm9yUGFzdGVib2FyZDooTlNTdHJpbmcgKilwYXN0ZWJvYXJk
TmFtZQotCi17Ci0gICAgTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkID0gW05TUGFzdGVib2FyZCBw
YXN0ZWJvYXJkV2l0aE5hbWU6cGFzdGVib2FyZE5hbWVdOwotICAgIFJldGFpblB0cjxOU011dGFi
bGVBcnJheT4gdHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRo
T2JqZWN0czpOU0ZpbGVzUHJvbWlzZVBib2FyZFR5cGUsIG5pbF0pOwotICAgIAotICAgIFt0eXBl
cyBhZGRPYmplY3RzRnJvbUFycmF5OmFyY2hpdmVCdWZmZXIgPyBQYXN0ZWJvYXJkVHlwZXM6OmZv
ckltYWdlc1dpdGhBcmNoaXZlKCkgOiBQYXN0ZWJvYXJkVHlwZXM6OmZvckltYWdlcygpXTsKLSAg
ICBbcGFzdGVib2FyZCBkZWNsYXJlVHlwZXM6dHlwZXMuZ2V0KCkgb3duZXI6c2VsZl07Ci0gICAg
W3NlbGYgX3NldEZpbGVBbmRVUkxUeXBlczpmaWxlbmFtZSB3aXRoRXh0ZW5zaW9uOmV4dGVuc2lv
biB3aXRoVGl0bGU6dGl0bGUgd2l0aFVSTDp1cmwgd2l0aFZpc2libGVVUkw6dmlzaWJsZVVybCBm
b3JQYXN0ZWJvYXJkOnBhc3RlYm9hcmRdOwotCi0gICAgaWYgKGFyY2hpdmVCdWZmZXIpCi0gICAg
ICAgIFtwYXN0ZWJvYXJkIHNldERhdGE6YXJjaGl2ZUJ1ZmZlci0+Y3JlYXRlTlNEYXRhKCkuZ2V0
KCkgZm9yVHlwZTpQYXN0ZWJvYXJkVHlwZXM6OldlYkFyY2hpdmVQYm9hcmRUeXBlXTsKLQotICAg
IF9kYXRhLT5fcHJvbWlzZWRJbWFnZSA9IGltYWdlOwotfQotCi0jaWYgRU5BQkxFKEFUVEFDSE1F
TlRfRUxFTUVOVCkKLS0gKHZvaWQpX3NldFByb21pc2VkRGF0YUZvckF0dGFjaG1lbnQ6KE5TU3Ry
aW5nICopZmlsZW5hbWUgd2l0aEV4dGVuc2lvbjooTlNTdHJpbmcgKilleHRlbnNpb24gd2l0aFRp
dGxlOihOU1N0cmluZyAqKXRpdGxlIHdpdGhVUkw6KE5TU3RyaW5nICopdXJsIHdpdGhWaXNpYmxl
VVJMOihOU1N0cmluZyAqKXZpc2libGVVcmwgZm9yUGFzdGVib2FyZDooTlNTdHJpbmcgKilwYXN0
ZWJvYXJkTmFtZQotCi17Ci0gICAgTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkID0gW05TUGFzdGVi
b2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6cGFzdGVib2FyZE5hbWVdOwotICAgIFJldGFpblB0cjxO
U011dGFibGVBcnJheT4gdHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRXaXRoT2JqZWN0czpOU0ZpbGVzUHJvbWlzZVBib2FyZFR5cGUsIG5pbF0pOwotICAgIFt0eXBl
cyBhZGRPYmplY3RzRnJvbUFycmF5OlBhc3RlYm9hcmRUeXBlczo6Zm9yVVJMKCldOwotICAgIFtw
YXN0ZWJvYXJkIGRlY2xhcmVUeXBlczp0eXBlcy5nZXQoKSBvd25lcjpzZWxmXTsKLSAgICBbc2Vs
ZiBfc2V0RmlsZUFuZFVSTFR5cGVzOmZpbGVuYW1lIHdpdGhFeHRlbnNpb246ZXh0ZW5zaW9uIHdp
dGhUaXRsZTp0aXRsZSB3aXRoVVJMOnVybCB3aXRoVmlzaWJsZVVSTDp2aXNpYmxlVXJsIGZvclBh
c3RlYm9hcmQ6cGFzdGVib2FyZF07Ci0KLSAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IHBh
dGhzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7Ci0gICAgW3BhdGhz
IGFkZE9iamVjdDp0aXRsZV07Ci0gICAgW3Bhc3RlYm9hcmQgc2V0UHJvcGVydHlMaXN0OnBhdGhz
LmdldCgpIGZvclR5cGU6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXTsKLQotICAgIF9kYXRhLT5fcHJv
bWlzZWRJbWFnZSA9IG51bGxwdHI7Ci19Ci0jZW5kaWYKLQogLSAodm9pZClwYXN0ZWJvYXJkQ2hh
bmdlZE93bmVyOihOU1Bhc3RlYm9hcmQgKilwYXN0ZWJvYXJkCiB7Ci0gICAgX2RhdGEtPl9wcm9t
aXNlZEltYWdlID0gbnVsbHB0cjsKLSAgICBfZGF0YS0+X3Byb21pc2VkRmlsZW5hbWUgPSAiIjsK
LSAgICBfZGF0YS0+X3Byb21pc2VkVVJMID0gIiI7CisgICAgX2RhdGEtPl9pbXBsLT5wYXN0ZWJv
YXJkQ2hhbmdlZE93bmVyKHBhc3RlYm9hcmQpOwogfQogCiAtICh2b2lkKXBhc3RlYm9hcmQ6KE5T
UGFzdGVib2FyZCAqKXBhc3RlYm9hcmQgcHJvdmlkZURhdGFGb3JUeXBlOihOU1N0cmluZyAqKXR5
cGUKIHsKLSAgICAvLyBGSVhNRTogbmVlZCB0byBzdXBwb3J0IE5TUlRGRFBib2FyZFR5cGUKLQot
ICAgIGlmIChbdHlwZSBpc0VxdWFsOk5TVElGRlBib2FyZFR5cGVdICYmIF9kYXRhLT5fcHJvbWlz
ZWRJbWFnZSkgewotICAgICAgICBbcGFzdGVib2FyZCBzZXREYXRhOihOU0RhdGEgKilfZGF0YS0+
X3Byb21pc2VkSW1hZ2UtPmdldFRJRkZSZXByZXNlbnRhdGlvbigpIGZvclR5cGU6TlNUSUZGUGJv
YXJkVHlwZV07Ci0gICAgICAgIF9kYXRhLT5fcHJvbWlzZWRJbWFnZSA9IG51bGxwdHI7Ci0gICAg
fQotfQotCi1zdGF0aWMgQk9PTCBmaWxlRXhpc3RzKE5TU3RyaW5nICpwYXRoKQotewotICAgIHN0
cnVjdCBzdGF0IHN0YXRCdWZmZXI7Ci0gICAgcmV0dXJuICFsc3RhdChbcGF0aCBmaWxlU3lzdGVt
UmVwcmVzZW50YXRpb25dLCAmc3RhdEJ1ZmZlcik7Ci19Ci0KLXN0YXRpYyBOU1N0cmluZyAqcGF0
aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCi17Ci0gICAgLy8gIkZp
eCIgdGhlIGZpbGVuYW1lIG9mIHRoZSBwYXRoLgotICAgIE5TU3RyaW5nICpmaWxlbmFtZSA9IGZp
bGVuYW1lQnlGaXhpbmdJbGxlZ2FsQ2hhcmFjdGVycyhbcGF0aCBsYXN0UGF0aENvbXBvbmVudF0p
OwotICAgIHBhdGggPSBbW3BhdGggc3RyaW5nQnlEZWxldGluZ0xhc3RQYXRoQ29tcG9uZW50XSBz
dHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6ZmlsZW5hbWVdOwotICAgIAotICAgIGlmIChm
aWxlRXhpc3RzKHBhdGgpKSB7Ci0gICAgICAgIC8vIERvbid0IG92ZXJ3cml0ZSBleGlzdGluZyBm
aWxlIGJ5IGFwcGVuZGluZyAiLW4iLCAiLW4uZXh0IiBvciAiLW4uZXh0LmV4dCIgdG8gdGhlIGZp
bGVuYW1lLgotICAgICAgICBOU1N0cmluZyAqZXh0ZW5zaW9ucyA9IG5pbDsKLSAgICAgICAgTlNT
dHJpbmcgKnBhdGhXaXRob3V0RXh0ZW5zaW9uczsKLSAgICAgICAgTlNTdHJpbmcgKmxhc3RQYXRo
Q29tcG9uZW50ID0gW3BhdGggbGFzdFBhdGhDb21wb25lbnRdOwotICAgICAgICBOU1JhbmdlIHBl
cmlvZFJhbmdlID0gW2xhc3RQYXRoQ29tcG9uZW50IHJhbmdlT2ZTdHJpbmc6QCIuIl07Ci0gICAg
ICAgIAotICAgICAgICBpZiAocGVyaW9kUmFuZ2UubG9jYXRpb24gPT0gTlNOb3RGb3VuZCkgewot
ICAgICAgICAgICAgcGF0aFdpdGhvdXRFeHRlbnNpb25zID0gcGF0aDsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIGV4dGVuc2lvbnMgPSBbbGFzdFBhdGhDb21wb25lbnQgc3Vic3RyaW5n
RnJvbUluZGV4OnBlcmlvZFJhbmdlLmxvY2F0aW9uICsgMV07Ci0gICAgICAgICAgICBsYXN0UGF0
aENvbXBvbmVudCA9IFtsYXN0UGF0aENvbXBvbmVudCBzdWJzdHJpbmdUb0luZGV4OnBlcmlvZFJh
bmdlLmxvY2F0aW9uXTsKLSAgICAgICAgICAgIHBhdGhXaXRob3V0RXh0ZW5zaW9ucyA9IFtbcGF0
aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdIHN0cmluZ0J5QXBwZW5kaW5nUGF0
aENvbXBvbmVudDpsYXN0UGF0aENvbXBvbmVudF07Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDE7IDsgaSsrKSB7Ci0gICAgICAgICAgICBOU1N0cmluZyAq
cGF0aFdpdGhBcHBlbmRlZE51bWJlciA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAt
JWQiLCBwYXRoV2l0aG91dEV4dGVuc2lvbnMsIGldOwotICAgICAgICAgICAgcGF0aCA9IFtleHRl
bnNpb25zIGxlbmd0aF0gPyBbcGF0aFdpdGhBcHBlbmRlZE51bWJlciBzdHJpbmdCeUFwcGVuZGlu
Z1BhdGhFeHRlbnNpb246ZXh0ZW5zaW9uc10gOiBwYXRoV2l0aEFwcGVuZGVkTnVtYmVyOwotICAg
ICAgICAgICAgaWYgKCFmaWxlRXhpc3RzKHBhdGgpKQotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIHJldHVybiBwYXRoOworICAgIF9kYXRhLT5faW1w
bC0+cHJvdmlkZURhdGFGb3JQYXN0ZWJvYXJkKHBhc3RlYm9hcmQsIHR5cGUpOwogfQogCiAtIChO
U0FycmF5ICopbmFtZXNPZlByb21pc2VkRmlsZXNEcm9wcGVkQXREZXN0aW5hdGlvbjooTlNVUkwg
Kilkcm9wRGVzdGluYXRpb24KIHsKLSAgICBSZXRhaW5QdHI8TlNGaWxlV3JhcHBlcj4gd3JhcHBl
cjsKLSAgICBSZXRhaW5QdHI8TlNEYXRhPiBkYXRhOwotICAgIAotICAgIGlmIChfZGF0YS0+X3By
b21pc2VkSW1hZ2UpIHsKLSAgICAgICAgZGF0YSA9IF9kYXRhLT5fcHJvbWlzZWRJbWFnZS0+ZGF0
YSgpLT5jcmVhdGVOU0RhdGEoKTsKLSAgICAgICAgd3JhcHBlciA9IGFkb3B0TlMoW1tOU0ZpbGVX
cmFwcGVyIGFsbG9jXSBpbml0UmVndWxhckZpbGVXaXRoQ29udGVudHM6ZGF0YS5nZXQoKV0pOwot
ICAgIH0gZWxzZQotICAgICAgICB3cmFwcGVyID0gYWRvcHROUyhbW05TRmlsZVdyYXBwZXIgYWxs
b2NdIGluaXRXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOl9kYXRhLT5fcHJvbWlzZWRVUkxd
IG9wdGlvbnM6TlNGaWxlV3JhcHBlclJlYWRpbmdJbW1lZGlhdGUgZXJyb3I6bmlsXSk7Ci0gICAg
Ci0gICAgaWYgKHdyYXBwZXIpCi0gICAgICAgIFt3cmFwcGVyIHNldFByZWZlcnJlZEZpbGVuYW1l
Ol9kYXRhLT5fcHJvbWlzZWRGaWxlbmFtZV07Ci0gICAgZWxzZSB7Ci0gICAgICAgIExPR19FUlJP
UigiRmFpbGVkIHRvIGNyZWF0ZSBpbWFnZSBmaWxlLiIpOwotICAgICAgICByZXR1cm4gbmlsOwot
ICAgIH0KLSAgICAKLSAgICAvLyBGSVhNRTogUmVwb3J0IGFuIGVycm9yIGlmIHdlIGZhaWwgdG8g
Y3JlYXRlIGEgZmlsZS4KLSAgICBOU1N0cmluZyAqcGF0aCA9IFtbZHJvcERlc3RpbmF0aW9uIHBh
dGhdIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpbd3JhcHBlciBwcmVmZXJyZWRGaWxl
bmFtZV1dOwotICAgIHBhdGggPSBwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChwYXRoKTsK
LSAgICBpZiAoIVt3cmFwcGVyIHdyaXRlVG9VUkw6W05TVVJMIGZpbGVVUkxXaXRoUGF0aDpwYXRo
XSBvcHRpb25zOk5TRmlsZVdyYXBwZXJXcml0aW5nV2l0aE5hbWVVcGRhdGluZyBvcmlnaW5hbENv
bnRlbnRzVVJMOm5pbCBlcnJvcjpudWxscHRyXSkKLSAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQg
dG8gY3JlYXRlIGltYWdlIGZpbGUgdmlhIC1bTlNGaWxlV3JhcHBlciB3cml0ZVRvVVJMOm9wdGlv
bnM6b3JpZ2luYWxDb250ZW50c1VSTDplcnJvcjpdIik7Ci0KLSAgICBpZiAoIV9kYXRhLT5fcHJv
bWlzZWRVUkwuaXNFbXB0eSgpKQotICAgICAgICBXZWJDb3JlOjpzZXRNZXRhZGF0YVVSTChfZGF0
YS0+X3Byb21pc2VkVVJMLCAiIiwgU3RyaW5nKHBhdGgpKTsKLSAgICAKLSAgICByZXR1cm4gW05T
QXJyYXkgYXJyYXlXaXRoT2JqZWN0OltwYXRoIGxhc3RQYXRoQ29tcG9uZW50XV07CisgICAgcmV0
dXJuIF9kYXRhLT5faW1wbC0+bmFtZXNPZlByb21pc2VkRmlsZXNEcm9wcGVkQXREZXN0aW5hdGlv
bihkcm9wRGVzdGluYXRpb24pOwogfQogCiAtIChib29sKV9leGVjdXRlU2F2ZWRDb21tYW5kQnlT
ZWxlY3RvcjooU0VMKXNlbGVjdG9yCkBAIC0yNTAwLDIwICsyMzM0LDYgQEAgc3RhdGljIE5TU3Ry
aW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKICAgICBy
ZXR1cm4gIVtzaW5rIGRpZFJlY2VpdmVVbmhhbmRsZWRDb21tYW5kXTsKIH0KIAotLSAoTlNJbnRl
Z2VyKXNwZWxsQ2hlY2tlckRvY3VtZW50VGFnCi17Ci0gICAgaWYgKCFfZGF0YS0+X2hhc1NwZWxs
Q2hlY2tlckRvY3VtZW50VGFnKSB7Ci0gICAgICAgIF9kYXRhLT5fc3BlbGxDaGVja2VyRG9jdW1l
bnRUYWcgPSBbTlNTcGVsbENoZWNrZXIgdW5pcXVlU3BlbGxEb2N1bWVudFRhZ107Ci0gICAgICAg
IF9kYXRhLT5faGFzU3BlbGxDaGVja2VyRG9jdW1lbnRUYWcgPSBZRVM7Ci0gICAgfQotICAgIHJl
dHVybiBfZGF0YS0+X3NwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwotfQotCi0tICh2b2lkKWhhbmRs
ZUFjY2VwdGVkQWx0ZXJuYXRpdmVUZXh0OihOU1N0cmluZyopdGV4dAotewotICAgIF9kYXRhLT5f
cGFnZS0+aGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQodGV4dCk7Ci19Ci0KIC0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgcHJvY2Vzc1Bvb2w6KFdlYlByb2Nl
c3NQb29sJilwcm9jZXNzUG9vbCBjb25maWd1cmF0aW9uOihSZWY8QVBJOjpQYWdlQ29uZmlndXJh
dGlvbj4mJiljb25maWd1cmF0aW9uIHdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcKIHsKICAg
ICBzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdOwpAQCAtMjUzNiw3ICsyMzU2LDYg
QEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmlu
ZyAqcGF0aCkKIAogICAgIF9kYXRhLT5fcGFnZS0+aW5pdGlhbGl6ZVdlYlBhZ2UoKTsKIAotICAg
IF9kYXRhLT5fbW91c2VEb3duRXZlbnQgPSBuaWw7CiAgICAgX2RhdGEtPl93aW5kb3dPY2NsdXNp
b25EZXRlY3Rpb25FbmFibGVkID0gWUVTOwogCiAgICAgX2RhdGEtPl9pbXBsLT5yZWdpc3RlckRy
YWdnZWRUeXBlcygpOwpAQCAtMjU4Myw3ICsyNDAyLDcgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRo
V2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKICNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAogLSAodm9pZClfc3RhcnRXaW5kb3dEcmFn
CiB7Ci0gICAgW1tzZWxmIHdpbmRvd10gcGVyZm9ybVdpbmRvd0RyYWdXaXRoRXZlbnQ6X2RhdGEt
Pl9tb3VzZURvd25FdmVudF07CisgICAgX2RhdGEtPl9pbXBsLT5zdGFydFdpbmRvd0RyYWcoKTsK
IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3SW50ZXJuYWwuaAppbmRleCBmNzRhOTdlLi4wOGZjN2QwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKQEAgLTM3LDE5ICszNyw5
IEBAIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247CiB9CiAKLW5hbWVz
cGFjZSBJUEMgewotY2xhc3MgRGF0YVJlZmVyZW5jZTsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotY2xhc3MgSW1hZ2U7Ci1jbGFzcyBTaGFyZWRCdWZmZXI7Ci19Ci0KIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgRHJhd2luZ0FyZWFQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwotc3Ry
dWN0IENvbG9yU3BhY2VEYXRhOwogfQogCiBAY2xhc3MgV0tXZWJWaWV3OwpAQCAtNzIsMTcgKzYy
LDYgQEAgc3RydWN0IENvbG9yU3BhY2VEYXRhOwogLSAoTlNSZWN0KV9jb252ZXJ0VG9EZXZpY2VT
cGFjZTooTlNSZWN0KXJlY3Q7CiAtIChOU1JlY3QpX2NvbnZlcnRUb1VzZXJTcGFjZTooTlNSZWN0
KXJlY3Q7CiAKLS0gKHZvaWQpX2RyYWdJbWFnZUZvclZpZXc6KE5TVmlldyAqKXZpZXcgd2l0aElt
YWdlOihOU0ltYWdlICopaW1hZ2UgYXQ6KE5TUG9pbnQpY2xpZW50UG9pbnQgbGlua0RyYWc6KEJP
T0wpbGlua0RyYWc7Ci0tICh2b2lkKV9zZXRQcm9taXNlZERhdGFGb3JJbWFnZTooV2ViQ29yZTo6
SW1hZ2UgKilpbWFnZSB3aXRoRmlsZU5hbWU6KE5TU3RyaW5nICopZmlsZW5hbWUgd2l0aEV4dGVu
c2lvbjooTlNTdHJpbmcgKilleHRlbnNpb24gd2l0aFRpdGxlOihOU1N0cmluZyAqKXRpdGxlIHdp
dGhVUkw6KE5TU3RyaW5nICopdXJsIHdpdGhWaXNpYmxlVVJMOihOU1N0cmluZyAqKXZpc2libGVV
cmwgd2l0aEFyY2hpdmU6KFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciopIGFyY2hpdmVCdWZmZXIgZm9y
UGFzdGVib2FyZDooTlNTdHJpbmcgKilwYXN0ZWJvYXJkTmFtZTsKLSNpZiBFTkFCTEUoQVRUQUNI
TUVOVF9FTEVNRU5UKQotLSAodm9pZClfc2V0UHJvbWlzZWREYXRhRm9yQXR0YWNobWVudDooTlNT
dHJpbmcgKilmaWxlbmFtZSB3aXRoRXh0ZW5zaW9uOihOU1N0cmluZyAqKWV4dGVuc2lvbiB3aXRo
VGl0bGU6KE5TU3RyaW5nICopdGl0bGUgd2l0aFVSTDooTlNTdHJpbmcgKil1cmwgd2l0aFZpc2li
bGVVUkw6KE5TU3RyaW5nICopdmlzaWJsZVVybCBmb3JQYXN0ZWJvYXJkOihOU1N0cmluZyAqKXBh
c3RlYm9hcmROYW1lOwotI2VuZGlmCi0KLS0gKFdlYktpdDo6Q29sb3JTcGFjZURhdGEpX2NvbG9y
U3BhY2U7Ci0KLS0gKE5TSW50ZWdlcilzcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKLS0gKHZvaWQp
aGFuZGxlQWNjZXB0ZWRBbHRlcm5hdGl2ZVRleHQ6KE5TU3RyaW5nKil0ZXh0OwotCiAjaWYgV0tf
QVBJX0VOQUJMRUQKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRodW1ibmFpbFZp
ZXc6KSBfV0tUaHVtYm5haWxWaWV3ICpfdGh1bWJuYWlsVmlldzsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCBmZTBlN2ExLi5jZDg5
ZTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApA
QCAtMTc2LDYgKzE3Niw5IEBAIHB1YmxpYzoKICAgICBib29sIHRyeVBvc3RQcm9jZXNzUGx1Z2lu
Q29tcGxleFRleHRJbnB1dEtleURvd24oTlNFdmVudCAqKTsKICAgICBQbHVnaW5Db21wbGV4VGV4
dElucHV0U3RhdGUgcGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKCkgY29uc3QgeyByZXR1cm4g
bV9wbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGU7IH0KICAgICB1aW50NjRfdCBwbHVnaW5Db21w
bGV4VGV4dElucHV0SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcGx1Z2luQ29tcGxleFRl
eHRJbnB1dElkZW50aWZpZXI7IH0KKyAgICAKKyAgICB2b2lkIGhhbmRsZUFjY2VwdGVkQWx0ZXJu
YXRpdmVUZXh0KGNvbnN0IFN0cmluZyYpOworICAgIE5TSW50ZWdlciBzcGVsbENoZWNrZXJEb2N1
bWVudFRhZygpOwogCiAgICAgdm9pZCBwcmVzc3VyZUNoYW5nZVdpdGhFdmVudChOU0V2ZW50ICop
OwogICAgIE5TRXZlbnQgKmxhc3RQcmVzc3VyZUV2ZW50KCkgeyByZXR1cm4gbV9sYXN0UHJlc3N1
cmVFdmVudC5nZXQoKTsgfQpAQCAtMjY2LDYgKzI2OSwyMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZWdpc3RlckRyYWdnZWRUeXBlcygpOwogI2VuZGlmCiAKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTEwMAorICAgIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCk7CisjZW5k
aWYKKworICAgIHZvaWQgZHJhZ0ltYWdlRm9yVmlldyhOU1ZpZXcgKiwgTlNJbWFnZSAqLCBDR1Bv
aW50IGNsaWVudFBvaW50LCBib29sIGxpbmtEcmFnKTsKKyAgICB2b2lkIHNldEZpbGVBbmRVUkxU
eXBlcyhOU1N0cmluZyAqZmlsZW5hbWUsIE5TU3RyaW5nICpleHRlbnNpb24sIE5TU3RyaW5nICp0
aXRsZSwgTlNTdHJpbmcgKnVybCwgTlNTdHJpbmcgKnZpc2libGVVUkwsIE5TUGFzdGVib2FyZCAq
KTsKKyAgICB2b2lkIHNldFByb21pc2VkRGF0YUZvckltYWdlKFdlYkNvcmU6OkltYWdlKiwgTlNT
dHJpbmcgKmZpbGVuYW1lLCBOU1N0cmluZyAqZXh0ZW5zaW9uLCBOU1N0cmluZyAqdGl0bGUsIE5T
U3RyaW5nICp1cmwsIE5TU3RyaW5nICp2aXNpYmxlVVJMLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXIq
IGFyY2hpdmVCdWZmZXIsIE5TU3RyaW5nICpwYXN0ZWJvYXJkTmFtZSk7CisjaWYgRU5BQkxFKEFU
VEFDSE1FTlRfRUxFTUVOVCkKKyAgICB2b2lkIHNldFByb21pc2VkRGF0YUZvckF0dGFjaG1lbnQo
TlNTdHJpbmcgKmZpbGVuYW1lLCBOU1N0cmluZyAqZXh0ZW5zaW9uLCBOU1N0cmluZyAqdGl0bGUs
IE5TU3RyaW5nICp1cmwsIE5TU3RyaW5nICp2aXNpYmxlVVJMLCBOU1N0cmluZyAqcGFzdGVib2Fy
ZE5hbWUpOworI2VuZGlmCisgICAgdm9pZCBwYXN0ZWJvYXJkQ2hhbmdlZE93bmVyKE5TUGFzdGVi
b2FyZCAqKTsKKyAgICB2b2lkIHByb3ZpZGVEYXRhRm9yUGFzdGVib2FyZChOU1Bhc3RlYm9hcmQg
KiwgTlNTdHJpbmcgKnR5cGUpOworICAgIE5TQXJyYXkgKm5hbWVzT2ZQcm9taXNlZEZpbGVzRHJv
cHBlZEF0RGVzdGluYXRpb24oTlNVUkwgKmRyb3BEZXN0aW5hdGlvbik7CisKICAgICBSZWZQdHI8
Vmlld1NuYXBzaG90PiB0YWtlVmlld1NuYXBzaG90KCk7CiAKICAgICBWaWV3R2VzdHVyZUNvbnRy
b2xsZXIqIGdlc3R1cmVDb250cm9sbGVyKCkgeyByZXR1cm4gbV9nZXN0dXJlQ29udHJvbGxlci5n
ZXQoKTsgfQpAQCAtMjkwLDYgKzMwNyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJvdGF0ZVdpdGhF
dmVudChOU0V2ZW50ICopOwogICAgIHZvaWQgc21hcnRNYWduaWZ5V2l0aEV2ZW50KE5TRXZlbnQg
Kik7CiAKKyAgICB2b2lkIHNldExhc3RNb3VzZURvd25FdmVudChOU0V2ZW50ICopOworCiAgICAg
dm9pZCBnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKE5TRXZlbnQgKik7CiAgICAg
dm9pZCBnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlRnJvbVZpZXdPbmx5KE5TRXZl
bnQgKik7CiAKQEAgLTM2NSw2ICszODQsNyBAQCBwcml2YXRlOgogCiAgICAgUmV0YWluUHRyPE5T
Q29sb3JTcGFjZT4gbV9jb2xvclNwYWNlOwogCisgICAgUmV0YWluUHRyPE5TRXZlbnQ+IG1fbGFz
dE1vdXNlRG93bkV2ZW50OwogICAgIFJldGFpblB0cjxOU0V2ZW50PiBtX2xhc3RQcmVzc3VyZUV2
ZW50OwogCiAgICAgYm9vbCBtX2lnbm9yZXNOb25XaGVlbEV2ZW50cyB7IGZhbHNlIH07CkBAIC0z
OTcsNiArNDE3LDEyIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2FsbG93c01hZ25pZmljYXRpb24g
eyBmYWxzZSB9OwogCiAgICAgUmV0YWluUHRyPGlkPiBtX3JlbW90ZUFjY2Vzc2liaWxpdHlDaGls
ZDsKKworICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gbV9wcm9taXNlZEltYWdlOworICAgIFN0
cmluZyBtX3Byb21pc2VkRmlsZW5hbWU7CisgICAgU3RyaW5nIG1fcHJvbWlzZWRVUkw7CisKKyAg
ICBXVEY6Ok9wdGlvbmFsPE5TSW50ZWdlcj4gbV9zcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKIH07
CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA2MWRhODhjLi4xODBmOGQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC02NSw2ICs2NSw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVDQUxheWVyRXh0cmFzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1dlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVGdWxsU2NyZWVuV2luZG93Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVO
U1N0cmluZ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAKIFNP
RlRfTElOS19DT05TVEFOVF9NQVlfRkFJTChMb29rdXAsIExVTm90aWZpY2F0aW9uUG9wb3Zlcldp
bGxDbG9zZSwgTlNTdHJpbmcgKikKQEAgLTExNjgsNiArMTE2OSwxOSBAQCBib29sIFdlYlZpZXdJ
bXBsOjp0cnlQb3N0UHJvY2Vzc1BsdWdpbkNvbXBsZXhUZXh0SW5wdXRLZXlEb3duKE5TRXZlbnQg
KmV2ZW50KQogICAgIHJldHVybiBoYW5kbGVQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bihl
dmVudCk7CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OmhhbmRsZUFjY2VwdGVkQWx0ZXJuYXRpdmVU
ZXh0KGNvbnN0IFN0cmluZyYgYWNjZXB0ZWRBbHRlcm5hdGl2ZSkKK3sKKyAgICBtX3BhZ2UuaGFu
ZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoYWNjZXB0ZWRBbHRlcm5hdGl2ZSk7Cit9CisKKwor
TlNJbnRlZ2VyIFdlYlZpZXdJbXBsOjpzcGVsbENoZWNrZXJEb2N1bWVudFRhZygpCit7CisgICAg
aWYgKCFtX3NwZWxsQ2hlY2tlckRvY3VtZW50VGFnKQorICAgICAgICBtX3NwZWxsQ2hlY2tlckRv
Y3VtZW50VGFnID0gW05TU3BlbGxDaGVja2VyIHVuaXF1ZVNwZWxsRG9jdW1lbnRUYWddOworICAg
IHJldHVybiBtX3NwZWxsQ2hlY2tlckRvY3VtZW50VGFnLnZhbHVlKCk7Cit9CisKIHZvaWQgV2Vi
Vmlld0ltcGw6OnByZXNzdXJlQ2hhbmdlV2l0aEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogI2lm
IGRlZmluZWQoX19MUDY0X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAx
MDEwMDMKQEAgLTE5MDQsNiArMTkxOCwxNjggQEAgdm9pZCBXZWJWaWV3SW1wbDo6cmVnaXN0ZXJE
cmFnZ2VkVHlwZXMoKQogfQogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAordm9pZCBXZWJWaWV3SW1w
bDo6c3RhcnRXaW5kb3dEcmFnKCkKK3sKKyAgICBbbV92aWV3LndpbmRvdyBwZXJmb3JtV2luZG93
RHJhZ1dpdGhFdmVudDptX2xhc3RNb3VzZURvd25FdmVudC5nZXQoKV07Cit9CisjZW5kaWYKKwor
dm9pZCBXZWJWaWV3SW1wbDo6ZHJhZ0ltYWdlRm9yVmlldyhOU1ZpZXcgKnZpZXcsIE5TSW1hZ2Ug
KmltYWdlLCBDR1BvaW50IGNsaWVudFBvaW50LCBib29sIGxpbmtEcmFnKQoreworICAgIC8vIFRo
ZSBjYWxsIGJlbG93IGNvdWxkIHJlbGVhc2UgdGhlIHZpZXcuCisgICAgUmV0YWluUHRyPE5TVmll
dz4gcHJvdGVjdG9yKG1fdmlldyk7CisKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBbdmlldyBkcmFnSW1hZ2U6aW1hZ2UKKyAgICAgICAgICAgICAgICAgYXQ6Y2xpZW50
UG9pbnQKKyAgICAgICAgICAgICBvZmZzZXQ6TlNaZXJvU2l6ZQorICAgICAgICAgICAgICBldmVu
dDpsaW5rRHJhZyA/IFtOU0FwcCBjdXJyZW50RXZlbnRdIDogbV9sYXN0TW91c2VEb3duRXZlbnQu
Z2V0KCkKKyAgICAgICAgIHBhc3RlYm9hcmQ6W05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5h
bWU6TlNEcmFnUGJvYXJkXQorICAgICAgICAgICAgIHNvdXJjZTptX3ZpZXcKKyAgICAgICAgICBz
bGlkZUJhY2s6WUVTXTsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK30KKworc3RhdGlj
IGJvb2wgbWF0Y2hlc0V4dGVuc2lvbk9yRXF1aXZhbGVudChOU1N0cmluZyAqZmlsZW5hbWUsIE5T
U3RyaW5nICpleHRlbnNpb24pCit7CisgICAgTlNTdHJpbmcgKmV4dGVuc2lvbkFzU3VmZml4ID0g
W0AiLiIgc3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6ZXh0ZW5zaW9uXTsKKyAgICByZXR1cm4gaGFz
Q2FzZUluc2Vuc2l0aXZlU3VmZml4KGZpbGVuYW1lLCBleHRlbnNpb25Bc1N1ZmZpeCkgfHwgKHN0
cmluZ0lzQ2FzZUluc2Vuc2l0aXZlRXF1YWxUb1N0cmluZyhleHRlbnNpb24sIEAianBlZyIpCisg
ICAgICAgICYmIGhhc0Nhc2VJbnNlbnNpdGl2ZVN1ZmZpeChmaWxlbmFtZSwgQCIuanBnIikpOwor
fQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRGaWxlQW5kVVJMVHlwZXMoTlNTdHJpbmcgKmZpbGVu
YW1lLCBOU1N0cmluZyAqZXh0ZW5zaW9uLCBOU1N0cmluZyAqdGl0bGUsIE5TU3RyaW5nICp1cmws
IE5TU3RyaW5nICp2aXNpYmxlVVJMLCBOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQpCit7CisgICAg
aWYgKCFtYXRjaGVzRXh0ZW5zaW9uT3JFcXVpdmFsZW50KGZpbGVuYW1lLCBleHRlbnNpb24pKQor
ICAgICAgICBmaWxlbmFtZSA9IFtbZmlsZW5hbWUgc3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6QCIu
Il0gc3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6ZXh0ZW5zaW9uXTsKKworICAgIFtwYXN0ZWJvYXJk
IHNldFN0cmluZzp2aXNpYmxlVVJMIGZvclR5cGU6TlNTdHJpbmdQYm9hcmRUeXBlXTsKKyAgICBb
cGFzdGVib2FyZCBzZXRTdHJpbmc6dmlzaWJsZVVSTCBmb3JUeXBlOlBhc3RlYm9hcmRUeXBlczo6
V2ViVVJMUGJvYXJkVHlwZV07CisgICAgW3Bhc3RlYm9hcmQgc2V0U3RyaW5nOnRpdGxlIGZvclR5
cGU6UGFzdGVib2FyZFR5cGVzOjpXZWJVUkxOYW1lUGJvYXJkVHlwZV07CisgICAgW3Bhc3RlYm9h
cmQgc2V0UHJvcGVydHlMaXN0OltOU0FycmF5IGFycmF5V2l0aE9iamVjdHM6W05TQXJyYXkgYXJy
YXlXaXRoT2JqZWN0OnZpc2libGVVUkxdLCBbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6dGl0bGVd
LCBuaWxdIGZvclR5cGU6UGFzdGVib2FyZFR5cGVzOjpXZWJVUkxzV2l0aFRpdGxlc1Bib2FyZFR5
cGVdOworICAgIFtwYXN0ZWJvYXJkIHNldFByb3BlcnR5TGlzdDpbTlNBcnJheSBhcnJheVdpdGhP
YmplY3Q6ZXh0ZW5zaW9uXSBmb3JUeXBlOk5TRmlsZXNQcm9taXNlUGJvYXJkVHlwZV07CisgICAg
bV9wcm9taXNlZEZpbGVuYW1lID0gZmlsZW5hbWU7CisgICAgbV9wcm9taXNlZFVSTCA9IHVybDsK
K30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UoV2ViQ29yZTo6
SW1hZ2UqIGltYWdlLCBOU1N0cmluZyAqZmlsZW5hbWUsIE5TU3RyaW5nICpleHRlbnNpb24sIE5T
U3RyaW5nICp0aXRsZSwgTlNTdHJpbmcgKnVybCwgTlNTdHJpbmcgKnZpc2libGVVUkwsIFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlciogYXJjaGl2ZUJ1ZmZlciwgTlNTdHJpbmcgKnBhc3RlYm9hcmROYW1l
KQoreworICAgIE5TUGFzdGVib2FyZCAqcGFzdGVib2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFzdGVi
b2FyZFdpdGhOYW1lOnBhc3RlYm9hcmROYW1lXTsKKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJy
YXk+IHR5cGVzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aE9iamVj
dHM6TlNGaWxlc1Byb21pc2VQYm9hcmRUeXBlLCBuaWxdKTsKKworICAgIFt0eXBlcyBhZGRPYmpl
Y3RzRnJvbUFycmF5OmFyY2hpdmVCdWZmZXIgPyBQYXN0ZWJvYXJkVHlwZXM6OmZvckltYWdlc1dp
dGhBcmNoaXZlKCkgOiBQYXN0ZWJvYXJkVHlwZXM6OmZvckltYWdlcygpXTsKKyAgICBbcGFzdGVi
b2FyZCBkZWNsYXJlVHlwZXM6dHlwZXMuZ2V0KCkgb3duZXI6bV92aWV3XTsKKyAgICBzZXRGaWxl
QW5kVVJMVHlwZXMoZmlsZW5hbWUsIGV4dGVuc2lvbiwgdGl0bGUsIHVybCwgdmlzaWJsZVVSTCwg
cGFzdGVib2FyZCk7CisKKyAgICBpZiAoYXJjaGl2ZUJ1ZmZlcikKKyAgICAgICAgW3Bhc3RlYm9h
cmQgc2V0RGF0YTphcmNoaXZlQnVmZmVyLT5jcmVhdGVOU0RhdGEoKS5nZXQoKSBmb3JUeXBlOlBh
c3RlYm9hcmRUeXBlczo6V2ViQXJjaGl2ZVBib2FyZFR5cGVdOworCisgICAgbV9wcm9taXNlZElt
YWdlID0gaW1hZ2U7Cit9CisKKyNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQordm9pZCBX
ZWJWaWV3SW1wbDo6c2V0UHJvbWlzZWREYXRhRm9yQXR0YWNobWVudChOU1N0cmluZyAqZmlsZW5h
bWUsIE5TU3RyaW5nICpleHRlbnNpb24sIE5TU3RyaW5nICp0aXRsZSwgTlNTdHJpbmcgKnVybCwg
TlNTdHJpbmcgKnZpc2libGVVUkwsIE5TU3RyaW5nICpwYXN0ZWJvYXJkTmFtZSkKK3sKKyAgICBO
U1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQgPSBbTlNQYXN0ZWJvYXJkIHBhc3RlYm9hcmRXaXRoTmFt
ZTpwYXN0ZWJvYXJkTmFtZV07CisgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiB0eXBlcyA9
IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOk5TRmlsZXNQ
cm9taXNlUGJvYXJkVHlwZSwgbmlsXSk7CisgICAgW3R5cGVzIGFkZE9iamVjdHNGcm9tQXJyYXk6
UGFzdGVib2FyZFR5cGVzOjpmb3JVUkwoKV07CisgICAgW3Bhc3RlYm9hcmQgZGVjbGFyZVR5cGVz
OnR5cGVzLmdldCgpIG93bmVyOm1fdmlld107CisgICAgc2V0RmlsZUFuZFVSTFR5cGVzKGZpbGVu
YW1lLCBleHRlbnNpb24sIHRpdGxlLCB1cmwsIHZpc2libGVVUkwsIHBhc3RlYm9hcmQpOworICAg
IAorICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gcGF0aHMgPSBhZG9wdE5TKFtbTlNNdXRh
YmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICBbcGF0aHMgYWRkT2JqZWN0OnRpdGxlXTsKKyAg
ICBbcGFzdGVib2FyZCBzZXRQcm9wZXJ0eUxpc3Q6cGF0aHMuZ2V0KCkgZm9yVHlwZTpOU0ZpbGVu
YW1lc1Bib2FyZFR5cGVdOworICAgIAorICAgIG1fcHJvbWlzZWRJbWFnZSA9IG51bGxwdHI7Cit9
CisjZW5kaWYKKwordm9pZCBXZWJWaWV3SW1wbDo6cGFzdGVib2FyZENoYW5nZWRPd25lcihOU1Bh
c3RlYm9hcmQgKnBhc3RlYm9hcmQpCit7CisgICAgbV9wcm9taXNlZEltYWdlID0gbnVsbHB0cjsK
KyAgICBtX3Byb21pc2VkRmlsZW5hbWUgPSAiIjsKKyAgICBtX3Byb21pc2VkVVJMID0gIiI7Cit9
CisKK3ZvaWQgV2ViVmlld0ltcGw6OnByb3ZpZGVEYXRhRm9yUGFzdGVib2FyZChOU1Bhc3RlYm9h
cmQgKnBhc3RlYm9hcmQsIE5TU3RyaW5nICp0eXBlKQoreworICAgIC8vIEZJWE1FOiBuZWVkIHRv
IHN1cHBvcnQgTlNSVEZEUGJvYXJkVHlwZQorCisgICAgaWYgKFt0eXBlIGlzRXF1YWw6TlNUSUZG
UGJvYXJkVHlwZV0gJiYgbV9wcm9taXNlZEltYWdlKSB7CisgICAgICAgIFtwYXN0ZWJvYXJkIHNl
dERhdGE6KE5TRGF0YSAqKW1fcHJvbWlzZWRJbWFnZS0+Z2V0VElGRlJlcHJlc2VudGF0aW9uKCkg
Zm9yVHlwZTpOU1RJRkZQYm9hcmRUeXBlXTsKKyAgICAgICAgbV9wcm9taXNlZEltYWdlID0gbnVs
bHB0cjsKKyAgICB9Cit9CisKK3N0YXRpYyBCT09MIGZpbGVFeGlzdHMoTlNTdHJpbmcgKnBhdGgp
Cit7CisgICAgc3RydWN0IHN0YXQgc3RhdEJ1ZmZlcjsKKyAgICByZXR1cm4gIWxzdGF0KFtwYXRo
IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbl0sICZzdGF0QnVmZmVyKTsKK30KKworc3RhdGljIE5T
U3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKK3sK
KyAgICAvLyAiRml4IiB0aGUgZmlsZW5hbWUgb2YgdGhlIHBhdGguCisgICAgTlNTdHJpbmcgKmZp
bGVuYW1lID0gZmlsZW5hbWVCeUZpeGluZ0lsbGVnYWxDaGFyYWN0ZXJzKFtwYXRoIGxhc3RQYXRo
Q29tcG9uZW50XSk7CisgICAgcGF0aCA9IFtbcGF0aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhD
b21wb25lbnRdIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpmaWxlbmFtZV07CisgICAg
CisgICAgaWYgKGZpbGVFeGlzdHMocGF0aCkpIHsKKyAgICAgICAgLy8gRG9uJ3Qgb3ZlcndyaXRl
IGV4aXN0aW5nIGZpbGUgYnkgYXBwZW5kaW5nICItbiIsICItbi5leHQiIG9yICItbi5leHQuZXh0
IiB0byB0aGUgZmlsZW5hbWUuCisgICAgICAgIE5TU3RyaW5nICpleHRlbnNpb25zID0gbmlsOwor
ICAgICAgICBOU1N0cmluZyAqcGF0aFdpdGhvdXRFeHRlbnNpb25zOworICAgICAgICBOU1N0cmlu
ZyAqbGFzdFBhdGhDb21wb25lbnQgPSBbcGF0aCBsYXN0UGF0aENvbXBvbmVudF07CisgICAgICAg
IE5TUmFuZ2UgcGVyaW9kUmFuZ2UgPSBbbGFzdFBhdGhDb21wb25lbnQgcmFuZ2VPZlN0cmluZzpA
Ii4iXTsKKyAgICAgICAgCisgICAgICAgIGlmIChwZXJpb2RSYW5nZS5sb2NhdGlvbiA9PSBOU05v
dEZvdW5kKSB7CisgICAgICAgICAgICBwYXRoV2l0aG91dEV4dGVuc2lvbnMgPSBwYXRoOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXh0ZW5zaW9ucyA9IFtsYXN0UGF0aENvbXBvbmVu
dCBzdWJzdHJpbmdGcm9tSW5kZXg6cGVyaW9kUmFuZ2UubG9jYXRpb24gKyAxXTsKKyAgICAgICAg
ICAgIGxhc3RQYXRoQ29tcG9uZW50ID0gW2xhc3RQYXRoQ29tcG9uZW50IHN1YnN0cmluZ1RvSW5k
ZXg6cGVyaW9kUmFuZ2UubG9jYXRpb25dOworICAgICAgICAgICAgcGF0aFdpdGhvdXRFeHRlbnNp
b25zID0gW1twYXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF0gc3RyaW5nQnlB
cHBlbmRpbmdQYXRoQ29tcG9uZW50Omxhc3RQYXRoQ29tcG9uZW50XTsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgOyBpKyspIHsKKyAgICAgICAgICAg
IE5TU3RyaW5nICpwYXRoV2l0aEFwcGVuZGVkTnVtYmVyID0gW05TU3RyaW5nIHN0cmluZ1dpdGhG
b3JtYXQ6QCIlQC0lZCIsIHBhdGhXaXRob3V0RXh0ZW5zaW9ucywgaV07CisgICAgICAgICAgICBw
YXRoID0gW2V4dGVuc2lvbnMgbGVuZ3RoXSA/IFtwYXRoV2l0aEFwcGVuZGVkTnVtYmVyIHN0cmlu
Z0J5QXBwZW5kaW5nUGF0aEV4dGVuc2lvbjpleHRlbnNpb25zXSA6IHBhdGhXaXRoQXBwZW5kZWRO
dW1iZXI7CisgICAgICAgICAgICBpZiAoIWZpbGVFeGlzdHMocGF0aCkpCisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcmV0dXJuIHBhdGg7Cit9CisK
K05TQXJyYXkgKldlYlZpZXdJbXBsOjpuYW1lc09mUHJvbWlzZWRGaWxlc0Ryb3BwZWRBdERlc3Rp
bmF0aW9uKE5TVVJMICpkcm9wRGVzdGluYXRpb24pCit7CisgICAgUmV0YWluUHRyPE5TRmlsZVdy
YXBwZXI+IHdyYXBwZXI7CisgICAgUmV0YWluUHRyPE5TRGF0YT4gZGF0YTsKKyAgICAKKyAgICBp
ZiAobV9wcm9taXNlZEltYWdlKSB7CisgICAgICAgIGRhdGEgPSBtX3Byb21pc2VkSW1hZ2UtPmRh
dGEoKS0+Y3JlYXRlTlNEYXRhKCk7CisgICAgICAgIHdyYXBwZXIgPSBhZG9wdE5TKFtbTlNGaWxl
V3JhcHBlciBhbGxvY10gaW5pdFJlZ3VsYXJGaWxlV2l0aENvbnRlbnRzOmRhdGEuZ2V0KCldKTsK
KyAgICB9IGVsc2UKKyAgICAgICAgd3JhcHBlciA9IGFkb3B0TlMoW1tOU0ZpbGVXcmFwcGVyIGFs
bG9jXSBpbml0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzptX3Byb21pc2VkVVJMXSBvcHRp
b25zOk5TRmlsZVdyYXBwZXJSZWFkaW5nSW1tZWRpYXRlIGVycm9yOm5pbF0pOworICAgIAorICAg
IGlmICh3cmFwcGVyKQorICAgICAgICBbd3JhcHBlciBzZXRQcmVmZXJyZWRGaWxlbmFtZTptX3By
b21pc2VkRmlsZW5hbWVdOworICAgIGVsc2UgeworICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0
byBjcmVhdGUgaW1hZ2UgZmlsZS4iKTsKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICB9CisgICAg
CisgICAgLy8gRklYTUU6IFJlcG9ydCBhbiBlcnJvciBpZiB3ZSBmYWlsIHRvIGNyZWF0ZSBhIGZp
bGUuCisgICAgTlNTdHJpbmcgKnBhdGggPSBbW2Ryb3BEZXN0aW5hdGlvbiBwYXRoXSBzdHJpbmdC
eUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6W3dyYXBwZXIgcHJlZmVycmVkRmlsZW5hbWVdXTsKKyAg
ICBwYXRoID0gcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgocGF0aCk7CisgICAgaWYgKCFb
d3JhcHBlciB3cml0ZVRvVVJMOltOU1VSTCBmaWxlVVJMV2l0aFBhdGg6cGF0aF0gb3B0aW9uczpO
U0ZpbGVXcmFwcGVyV3JpdGluZ1dpdGhOYW1lVXBkYXRpbmcgb3JpZ2luYWxDb250ZW50c1VSTDpu
aWwgZXJyb3I6bnVsbHB0cl0pCisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBp
bWFnZSBmaWxlIHZpYSAtW05TRmlsZVdyYXBwZXIgd3JpdGVUb1VSTDpvcHRpb25zOm9yaWdpbmFs
Q29udGVudHNVUkw6ZXJyb3I6XSIpOworCisgICAgaWYgKCFtX3Byb21pc2VkVVJMLmlzRW1wdHko
KSkKKyAgICAgICAgV2ViQ29yZTo6c2V0TWV0YWRhdGFVUkwobV9wcm9taXNlZFVSTCwgIiIsIFN0
cmluZyhwYXRoKSk7CisgICAgCisgICAgcmV0dXJuIFtOU0FycmF5IGFycmF5V2l0aE9iamVjdDpb
cGF0aCBsYXN0UGF0aENvbXBvbmVudF1dOworfQorCiBzdGF0aWMgUmV0YWluUHRyPENHSW1hZ2VS
ZWY+IHRha2VXaW5kb3dTbmFwc2hvdChDR1NXaW5kb3dJRCB3aW5kb3dJRCwgYm9vbCBjYXB0dXJl
QXROb21pbmFsUmVzb2x1dGlvbikKIHsKICAgICBDR1NXaW5kb3dDYXB0dXJlT3B0aW9ucyBvcHRp
b25zID0ga0NHU0NhcHR1cmVJZ25vcmVHbG9iYWxDbGlwU2hhcGU7CkBAIC0yMTQxLDYgKzIzMTcs
MTYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c21hcnRNYWduaWZ5V2l0aEV2ZW50KE5TRXZlbnQgKmV2
ZW50KQogICAgIGVuc3VyZUdlc3R1cmVDb250cm9sbGVyKCkuaGFuZGxlU21hcnRNYWduaWZpY2F0
aW9uR2VzdHVyZShbbV92aWV3IGNvbnZlcnRQb2ludDpldmVudC5sb2NhdGlvbkluV2luZG93IGZy
b21WaWV3Om5pbF0pOwogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRMYXN0TW91c2VEb3duRXZl
bnQoTlNFdmVudCAqZXZlbnQpCit7CisgICAgQVNTRVJUKCFldmVudCB8fCBldmVudC50eXBlID09
IE5TTGVmdE1vdXNlRG93biB8fCBldmVudC50eXBlID09IE5TUmlnaHRNb3VzZURvd24gfHwgZXZl
bnQudHlwZSA9PSBOU090aGVyTW91c2VEb3duKTsKKworICAgIGlmIChldmVudCA9PSBtX2xhc3RN
b3VzZURvd25FdmVudC5nZXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9sYXN0TW91c2VE
b3duRXZlbnQgPSBldmVudDsKK30KKwogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiB2
b2lkIFdlYlZpZXdJbXBsOjpyb3RhdGVXaXRoRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwuaAppbmRleCA0YzRj
MzRhLi42NjZlY2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0Nv
cnJlY3Rpb25QYW5lbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvQ29ycmVj
dGlvblBhbmVsLmgKQEAgLTM0LDI3ICszNCwyOCBAQAogI2ltcG9ydCA8V2ViQ29yZS9BbHRlcm5h
dGl2ZVRleHRDbGllbnQuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAotQGNsYXNzIFdL
VmlldzsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYlZpZXdJbXBsOworCiBjbGFz
cyBDb3JyZWN0aW9uUGFuZWwgewogcHVibGljOgogICAgIENvcnJlY3Rpb25QYW5lbCgpOwogICAg
IH5Db3JyZWN0aW9uUGFuZWwoKTsKLSAgICB2b2lkIHNob3coV0tWaWV3KiwgV2ViQ29yZTo6QWx0
ZXJuYXRpdmVUZXh0VHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9m
UmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgcmVwbGFjZW1lbnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZVJl
cGxhY2VtZW50U3RyaW5ncyk7CisgICAgdm9pZCBzaG93KE5TVmlldyAqLCBXZWJWaWV3SW1wbCYs
IFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dFR5cGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
Ym91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
YWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpOwogICAgIFN0cmluZyBkaXNtaXNzKFdlYkNv
cmU6OlJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHQpOwotICAgIHN0YXRpYyB2b2lk
IHJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2UoV0tWaWV3KiwgTlNDb3JyZWN0aW9uUmVzcG9u
c2UsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1l
bnRTdHJpbmcpOworICAgIHN0YXRpYyB2b2lkIHJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2Uo
TlNWaWV3ICosIE5TSW50ZWdlciBzcGVsbENoZWNrZXJEb2N1bWVudFRhZywgTlNDb3JyZWN0aW9u
UmVzcG9uc2UsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVw
bGFjZW1lbnRTdHJpbmcpOwogCiBwcml2YXRlOgogICAgIGJvb2wgaXNTaG93aW5nKCkgY29uc3Qg
eyByZXR1cm4gbV92aWV3OyB9CiAgICAgU3RyaW5nIGRpc21pc3NJbnRlcm5hbChXZWJDb3JlOjpS
ZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0LCBib29sIGRpc21pc3NpbmdFeHRlcm5h
bGx5KTsKLSAgICB2b2lkIGhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoTlNTdHJpbmcqIGFjY2Vw
dGVkUmVwbGFjZW1lbnQsIE5TU3RyaW5nKiByZXBsYWNlZCwgTlNTdHJpbmcqIHByb3Bvc2VkUmVw
bGFjZW1lbnQsIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGUpOworICAgIHZvaWQgaGFuZGxlQWNj
ZXB0ZWRSZXBsYWNlbWVudChXZWJWaWV3SW1wbCYsIE5TU3RyaW5nKiBhY2NlcHRlZFJlcGxhY2Vt
ZW50LCBOU1N0cmluZyogcmVwbGFjZWQsIE5TU3RyaW5nKiBwcm9wb3NlZFJlcGxhY2VtZW50LCBO
U0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlKTsKIAogICAgIGJvb2wgbV93YXNEaXNtaXNzZWRFeHRl
cm5hbGx5OwogICAgIFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHQg
bV9yZWFzb25Gb3JEaXNtaXNzaW5nOwotICAgIFJldGFpblB0cjxXS1ZpZXc+IG1fdmlldzsKKyAg
ICBSZXRhaW5QdHI8TlNWaWV3PiBtX3ZpZXc7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBtX3Jl
c3VsdEZvckRpc21pc3NhbDsKKyAgICBOU0ludGVnZXIgbV9zcGVsbENoZWNrZXJEb2N1bWVudFRh
ZzsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5tbQppbmRleCA4ZWMzOTJmLi5iMzgxYTI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5tbQpAQCAt
MjksOCArMjksNyBAQAogI2lmIFVTRShBVVRPQ09SUkVDVElPTl9QQU5FTCkKIAogI2ltcG9ydCAi
V2ViUGFnZVByb3h5LmgiCi0jaW1wb3J0ICJXS1ZpZXcuaCIKLSNpbXBvcnQgIldLVmlld0ludGVy
bmFsLmgiCisjaW1wb3J0ICJXZWJWaWV3SW1wbC5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIApAQCAtNjQsMTYgKzYzLDE5IEBAIENvcnJlY3Rpb25QYW5lbDo6fkNvcnJlY3Rpb25QYW5l
bCgpCiAgICAgZGlzbWlzc0ludGVybmFsKFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRl
eHRJZ25vcmVkLCBmYWxzZSk7CiB9CiAKLXZvaWQgQ29ycmVjdGlvblBhbmVsOjpzaG93KFdLVmll
dyogdmlldywgQWx0ZXJuYXRpdmVUZXh0VHlwZSB0eXBlLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5k
aW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29u
c3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFsdGVy
bmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzKQordm9pZCBDb3JyZWN0aW9uUGFuZWw6OnNob3coTlNW
aWV3ICp2aWV3LCBXZWJWaWV3SW1wbCYgd2ViVmlld0ltcGwsIEFsdGVybmF0aXZlVGV4dFR5cGUg
dHlwZSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0
IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncykKIHsK
ICAgICBkaXNtaXNzSW50ZXJuYWwoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dEln
bm9yZWQsIGZhbHNlKTsKICAgICAKICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVybjsKIAor
ICAgIE5TSW50ZWdlciBzcGVsbENoZWNrZXJEb2N1bWVudFRhZyA9IHdlYlZpZXdJbXBsLnNwZWxs
Q2hlY2tlckRvY3VtZW50VGFnKCk7CisKICAgICBOU1N0cmluZyogcmVwbGFjZWRTdHJpbmdBc05T
U3RyaW5nID0gcmVwbGFjZWRTdHJpbmc7CiAgICAgTlNTdHJpbmcqIHJlcGxhY2VtZW50U3RyaW5n
QXNOU1N0cmluZyA9IHJlcGxhY2VtZW50U3RyaW5nOwogICAgIG1fdmlldyA9IHZpZXc7CisgICAg
bV9zcGVsbENoZWNrZXJEb2N1bWVudFRhZyA9IHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwogICAg
IE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGUgaW5kaWNhdG9yVHlwZSA9IGNvcnJlY3Rpb25JbmRp
Y2F0b3JUeXBlKHR5cGUpOwogICAgIAogICAgIE5TTXV0YWJsZUFycmF5KiBhbHRlcm5hdGl2ZVN0
cmluZ3MgPSAwOwpAQCAtODYsNyArODgsNyBAQCB2b2lkIENvcnJlY3Rpb25QYW5lbDo6c2hvdyhX
S1ZpZXcqIHZpZXcsIEFsdGVybmF0aXZlVGV4dFR5cGUgdHlwZSwgY29uc3QgRmxvYXRSZQogCiAg
ICAgTlNTcGVsbENoZWNrZXIqIHNwZWxsQ2hlY2tlciA9IFtOU1NwZWxsQ2hlY2tlciBzaGFyZWRT
cGVsbENoZWNrZXJdOwogICAgIFtzcGVsbENoZWNrZXIgc2hvd0NvcnJlY3Rpb25JbmRpY2F0b3JP
ZlR5cGU6aW5kaWNhdG9yVHlwZSBwcmltYXJ5U3RyaW5nOnJlcGxhY2VtZW50U3RyaW5nQXNOU1N0
cmluZyBhbHRlcm5hdGl2ZVN0cmluZ3M6YWx0ZXJuYXRpdmVTdHJpbmdzIGZvclN0cmluZ0luUmVj
dDpib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcgdmlldzptX3ZpZXcuZ2V0KCkgY29tcGxldGlv
bkhhbmRsZXI6XihOU1N0cmluZyogYWNjZXB0ZWRTdHJpbmcpIHsKLSAgICAgICAgaGFuZGxlQWNj
ZXB0ZWRSZXBsYWNlbWVudChhY2NlcHRlZFN0cmluZywgcmVwbGFjZWRTdHJpbmdBc05TU3RyaW5n
LCByZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcsIGluZGljYXRvclR5cGUpOworICAgICAgICBo
YW5kbGVBY2NlcHRlZFJlcGxhY2VtZW50KHdlYlZpZXdJbXBsLCBhY2NlcHRlZFN0cmluZywgcmVw
bGFjZWRTdHJpbmdBc05TU3RyaW5nLCByZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcsIGluZGlj
YXRvclR5cGUpOwogICAgIH1dOwogfQogCkBAIC0xMDcsNDIgKzEwOSw0MiBAQCBTdHJpbmcgQ29y
cmVjdGlvblBhbmVsOjpkaXNtaXNzSW50ZXJuYWwoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0
aXZlVGV4dCByZWFzbwogICAgIHJldHVybiBtX3Jlc3VsdEZvckRpc21pc3NhbC5nZXQoKTsKIH0K
IAotdm9pZCBDb3JyZWN0aW9uUGFuZWw6OnJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2UoV0tW
aWV3KiB2aWV3LCBOU0NvcnJlY3Rpb25SZXNwb25zZSByZXNwb25zZSwgY29uc3QgU3RyaW5nJiBy
ZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZykKK3ZvaWQgQ29y
cmVjdGlvblBhbmVsOjpyZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKE5TVmlldyAqdmlldywg
TlNJbnRlZ2VyIHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnLCBOU0NvcnJlY3Rpb25SZXNwb25zZSBy
ZXNwb25zZSwgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBs
YWNlbWVudFN0cmluZykKIHsKLSAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tl
cl0gcmVjb3JkUmVzcG9uc2U6cmVzcG9uc2UgdG9Db3JyZWN0aW9uOnJlcGxhY2VtZW50U3RyaW5n
IGZvcldvcmQ6cmVwbGFjZWRTdHJpbmcgbGFuZ3VhZ2U6bmlsIGluU3BlbGxEb2N1bWVudFdpdGhU
YWc6W3ZpZXcgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddXTsKKyAgICBbW05TU3BlbGxDaGVja2Vy
IHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVjb3JkUmVzcG9uc2U6cmVzcG9uc2UgdG9Db3JyZWN0aW9u
OnJlcGxhY2VtZW50U3RyaW5nIGZvcldvcmQ6cmVwbGFjZWRTdHJpbmcgbGFuZ3VhZ2U6bmlsIGlu
U3BlbGxEb2N1bWVudFdpdGhUYWc6c3BlbGxDaGVja2VyRG9jdW1lbnRUYWddOwogfQogCi12b2lk
IENvcnJlY3Rpb25QYW5lbDo6aGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudChOU1N0cmluZyogYWNj
ZXB0ZWRSZXBsYWNlbWVudCwgTlNTdHJpbmcqIHJlcGxhY2VkLCBOU1N0cmluZyogcHJvcG9zZWRS
ZXBsYWNlbWVudCwgIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGUgY29ycmVjdGlvbkluZGljYXRv
clR5cGUpCit2b2lkIENvcnJlY3Rpb25QYW5lbDo6aGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudChX
ZWJWaWV3SW1wbCYgd2ViVmlld0ltcGwsIE5TU3RyaW5nKiBhY2NlcHRlZFJlcGxhY2VtZW50LCBO
U1N0cmluZyogcmVwbGFjZWQsIE5TU3RyaW5nKiBwcm9wb3NlZFJlcGxhY2VtZW50LCAgTlNDb3Jy
ZWN0aW9uSW5kaWNhdG9yVHlwZSBjb3JyZWN0aW9uSW5kaWNhdG9yVHlwZSkKIHsKICAgICBpZiAo
IW1fdmlldykKICAgICAgICAgcmV0dXJuOwogCiAgICAgTlNTcGVsbENoZWNrZXIqIHNwZWxsQ2hl
Y2tlciA9IFtOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdOwotICAgIE5TSW50ZWdl
ciBkb2N1bWVudFRhZyA9IFttX3ZpZXcgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddOwogICAgIAog
ICAgIHN3aXRjaCAoY29ycmVjdGlvbkluZGljYXRvclR5cGUpIHsKICAgICBjYXNlIE5TQ29ycmVj
dGlvbkluZGljYXRvclR5cGVEZWZhdWx0OgogICAgICAgICBpZiAoYWNjZXB0ZWRSZXBsYWNlbWVu
dCkKLSAgICAgICAgICAgIFtzcGVsbENoZWNrZXIgcmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0aW9u
UmVzcG9uc2VBY2NlcHRlZCB0b0NvcnJlY3Rpb246YWNjZXB0ZWRSZXBsYWNlbWVudCBmb3JXb3Jk
OnJlcGxhY2VkIGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOmRvY3VtZW50VGFn
XTsKKyAgICAgICAgICAgIFtzcGVsbENoZWNrZXIgcmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0aW9u
UmVzcG9uc2VBY2NlcHRlZCB0b0NvcnJlY3Rpb246YWNjZXB0ZWRSZXBsYWNlbWVudCBmb3JXb3Jk
OnJlcGxhY2VkIGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOm1fc3BlbGxDaGVj
a2VyRG9jdW1lbnRUYWddOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGlmICghbV93YXNE
aXNtaXNzZWRFeHRlcm5hbGx5IHx8IG1fcmVhc29uRm9yRGlzbWlzc2luZyA9PSBSZWFzb25Gb3JE
aXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0Q2FuY2VsbGVkKQotICAgICAgICAgICAgICAgIFtzcGVs
bENoZWNrZXIgcmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0aW9uUmVzcG9uc2VSZWplY3RlZCB0b0Nv
cnJlY3Rpb246cHJvcG9zZWRSZXBsYWNlbWVudCBmb3JXb3JkOnJlcGxhY2VkIGxhbmd1YWdlOm5p
bCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOmRvY3VtZW50VGFnXTsKKyAgICAgICAgICAgICAgICBb
c3BlbGxDaGVja2VyIHJlY29yZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlUmVqZWN0ZWQg
dG9Db3JyZWN0aW9uOnByb3Bvc2VkUmVwbGFjZW1lbnQgZm9yV29yZDpyZXBsYWNlZCBsYW5ndWFn
ZTpuaWwgaW5TcGVsbERvY3VtZW50V2l0aFRhZzptX3NwZWxsQ2hlY2tlckRvY3VtZW50VGFnXTsK
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBbc3BlbGxDaGVja2VyIHJlY29yZFJl
c3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlSWdub3JlZCB0b0NvcnJlY3Rpb246cHJvcG9zZWRS
ZXBsYWNlbWVudCBmb3JXb3JkOnJlcGxhY2VkIGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1lbnRX
aXRoVGFnOmRvY3VtZW50VGFnXTsKKyAgICAgICAgICAgICAgICBbc3BlbGxDaGVja2VyIHJlY29y
ZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlSWdub3JlZCB0b0NvcnJlY3Rpb246cHJvcG9z
ZWRSZXBsYWNlbWVudCBmb3JXb3JkOnJlcGxhY2VkIGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1l
bnRXaXRoVGFnOm1fc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddOwogICAgICAgICB9CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgTlNDb3JyZWN0aW9uSW5kaWNhdG9yVHlwZVJldmVyc2lvbjoKICAg
ICAgICAgaWYgKGFjY2VwdGVkUmVwbGFjZW1lbnQpCi0gICAgICAgICAgICBbc3BlbGxDaGVja2Vy
IHJlY29yZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlUmV2ZXJ0ZWQgdG9Db3JyZWN0aW9u
OnJlcGxhY2VkIGZvcldvcmQ6YWNjZXB0ZWRSZXBsYWNlbWVudCBsYW5ndWFnZTpuaWwgaW5TcGVs
bERvY3VtZW50V2l0aFRhZzpkb2N1bWVudFRhZ107CisgICAgICAgICAgICBbc3BlbGxDaGVja2Vy
IHJlY29yZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlUmV2ZXJ0ZWQgdG9Db3JyZWN0aW9u
OnJlcGxhY2VkIGZvcldvcmQ6YWNjZXB0ZWRSZXBsYWNlbWVudCBsYW5ndWFnZTpuaWwgaW5TcGVs
bERvY3VtZW50V2l0aFRhZzptX3NwZWxsQ2hlY2tlckRvY3VtZW50VGFnXTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlR3Vlc3NlczoKICAgICAgICAg
aWYgKGFjY2VwdGVkUmVwbGFjZW1lbnQpCi0gICAgICAgICAgICBbc3BlbGxDaGVja2VyIHJlY29y
ZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlQWNjZXB0ZWQgdG9Db3JyZWN0aW9uOmFjY2Vw
dGVkUmVwbGFjZW1lbnQgZm9yV29yZDpyZXBsYWNlZCBsYW5ndWFnZTpuaWwgaW5TcGVsbERvY3Vt
ZW50V2l0aFRhZzpkb2N1bWVudFRhZ107CisgICAgICAgICAgICBbc3BlbGxDaGVja2VyIHJlY29y
ZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlQWNjZXB0ZWQgdG9Db3JyZWN0aW9uOmFjY2Vw
dGVkUmVwbGFjZW1lbnQgZm9yV29yZDpyZXBsYWNlZCBsYW5ndWFnZTpuaWwgaW5TcGVsbERvY3Vt
ZW50V2l0aFRhZzptX3NwZWxsQ2hlY2tlckRvY3VtZW50VGFnXTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogCi0gICAgW21fdmlldyBoYW5kbGVBY2NlcHRlZEFsdGVybmF0aXZlVGV4dDphY2NlcHRl
ZFJlcGxhY2VtZW50XTsKLSAgICBtX3ZpZXcuY2xlYXIoKTsKKyAgICB3ZWJWaWV3SW1wbC5oYW5k
bGVBY2NlcHRlZEFsdGVybmF0aXZlVGV4dChhY2NlcHRlZFJlcGxhY2VtZW50KTsKKyAgICBtX3Nw
ZWxsQ2hlY2tlckRvY3VtZW50VGFnID0gMDsKKyAgICBtX3ZpZXcgPSBudWxscHRyOwogICAgIGlm
IChhY2NlcHRlZFJlcGxhY2VtZW50KQogICAgICAgICBtX3Jlc3VsdEZvckRpc21pc3NhbCA9IGFk
b3B0TlMoW2FjY2VwdGVkUmVwbGFjZW1lbnQgY29weV0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggYTBmYjhiZC4uYzQ3YmFlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCkBA
IC0yMzYsNyArMjM2LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6dmlld1dpbGxNb3ZlVG9Bbm90
aGVyV2luZG93KCkKIAogQ29sb3JTcGFjZURhdGEgUGFnZUNsaWVudEltcGw6OmNvbG9yU3BhY2Uo
KQogewotICAgIHJldHVybiBbbV93a1ZpZXcgX2NvbG9yU3BhY2VdOworICAgIHJldHVybiBtX2lt
cGwtPmNvbG9yU3BhY2UoKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJvY2Vzc0RpZEV4
aXQoKQpAQCAtMzYxLDIzICszNjEsMjMgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0RHJhZ0lt
YWdlKGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgUGFzc1JlZlB0cjxTaGEKICNpZiBX
S19BUElfRU5BQkxFRAogICAgIGlmIChtX3dlYlZpZXcpIHsKICAgICAgICAgTlNQb2ludCB3ZWJW
aWV3UG9zaXRpb24gPSBbbV93a1ZpZXcgY29udmVydFBvaW50OmNsaWVudFBvc2l0aW9uIHRvVmll
dzptX3dlYlZpZXddOwotICAgICAgICBbbV93a1ZpZXcgX2RyYWdJbWFnZUZvclZpZXc6bV93ZWJW
aWV3IHdpdGhJbWFnZTpkcmFnTlNJbWFnZS5nZXQoKSBhdDp3ZWJWaWV3UG9zaXRpb24gbGlua0Ry
YWc6aXNMaW5rRHJhZ107CisgICAgICAgIG1faW1wbC0+ZHJhZ0ltYWdlRm9yVmlldyhtX3dlYlZp
ZXcsIGRyYWdOU0ltYWdlLmdldCgpLCB3ZWJWaWV3UG9zaXRpb24sIGlzTGlua0RyYWcpOwogICAg
IH0gZWxzZQogI2VuZGlmCi0gICAgICAgIFttX3drVmlldyBfZHJhZ0ltYWdlRm9yVmlldzptX3dr
VmlldyB3aXRoSW1hZ2U6ZHJhZ05TSW1hZ2UuZ2V0KCkgYXQ6Y2xpZW50UG9zaXRpb24gbGlua0Ry
YWc6aXNMaW5rRHJhZ107CisgICAgICAgIG1faW1wbC0+ZHJhZ0ltYWdlRm9yVmlldyhtX3drVmll
dywgZHJhZ05TSW1hZ2UuZ2V0KCksIGNsaWVudFBvc2l0aW9uLCBpc0xpbmtEcmFnKTsKIH0KIAot
dm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UoY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkTmFtZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGltYWdlQnVmZmVyLCBj
b25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvbiwgY29uc3QgU3Ry
aW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdmlzaWJsZVVybCwg
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGFyY2hpdmVCdWZmZXIpCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpzZXRQcm9taXNlZERhdGFGb3JJbWFnZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1l
LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gaW1hZ2VCdWZmZXIsIGNvbnN0IFN0cmluZyYgZmls
ZW5hbWUsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB2aXNpYmxlVVJMLCBQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gYXJjaGl2ZUJ1ZmZlcikKIHsKICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gQml0
bWFwSW1hZ2U6OmNyZWF0ZSgpOwogICAgIGltYWdlLT5zZXREYXRhKGltYWdlQnVmZmVyLmdldCgp
LCB0cnVlKTsKLSAgICBbbV93a1ZpZXcgX3NldFByb21pc2VkRGF0YUZvckltYWdlOmltYWdlLmdl
dCgpIHdpdGhGaWxlTmFtZTpmaWxlbmFtZSB3aXRoRXh0ZW5zaW9uOmV4dGVuc2lvbiB3aXRoVGl0
bGU6dGl0bGUgd2l0aFVSTDp1cmwgd2l0aFZpc2libGVVUkw6dmlzaWJsZVVybCB3aXRoQXJjaGl2
ZTphcmNoaXZlQnVmZmVyLmdldCgpIGZvclBhc3RlYm9hcmQ6cGFzdGVib2FyZE5hbWVdOworICAg
IG1faW1wbC0+c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UoaW1hZ2UuZ2V0KCksIGZpbGVuYW1lLCBl
eHRlbnNpb24sIHRpdGxlLCB1cmwsIHZpc2libGVVUkwsIGFyY2hpdmVCdWZmZXIuZ2V0KCksIHBh
c3RlYm9hcmROYW1lKTsKIH0KIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCi12b2lk
IFBhZ2VDbGllbnRJbXBsOjpzZXRQcm9taXNlZERhdGFGb3JBdHRhY2htZW50KGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYg
ZXh0ZW5zaW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3Qg
U3RyaW5nJiB2aXNpYmxlVXJsKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0UHJvbWlzZWREYXRh
Rm9yQXR0YWNobWVudChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTdHJpbmcm
IGZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwg
Y29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdmlzaWJsZVVSTCkKIHsKLSAgICBbbV93
a1ZpZXcgX3NldFByb21pc2VkRGF0YUZvckF0dGFjaG1lbnQ6ZmlsZW5hbWUgd2l0aEV4dGVuc2lv
bjpleHRlbnNpb24gd2l0aFRpdGxlOnRpdGxlIHdpdGhVUkw6dXJsIHdpdGhWaXNpYmxlVVJMOnZp
c2libGVVcmwgZm9yUGFzdGVib2FyZDpwYXN0ZWJvYXJkTmFtZV07CisgICAgbV9pbXBsLT5zZXRQ
cm9taXNlZERhdGFGb3JBdHRhY2htZW50KGZpbGVuYW1lLCBleHRlbnNpb24sIHRpdGxlLCB1cmws
IHZpc2libGVVUkwsIHBhc3RlYm9hcmROYW1lKTsKIH0KICNlbmRpZgogCkBAIC01NjQsNyArNTY0
LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd0NvcnJlY3Rpb25QYW5lbChBbHRlcm5hdGl2
ZVRleHRUeXBlIHR5cGUsIGNvbnN0IEZsb2F0UmUKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFO
RUwpCiAgICAgaWYgKCFpc1ZpZXdWaXNpYmxlKCkgfHwgIWlzVmlld0luV2luZG93KCkpCiAgICAg
ICAgIHJldHVybjsKLSAgICBtX2NvcnJlY3Rpb25QYW5lbC5zaG93KG1fd2tWaWV3LCB0eXBlLCBi
b3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIHJlcGxhY2VkU3RyaW5nLCByZXBsYWNlbWVudFN0
cmluZywgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpOworICAgIG1fY29ycmVjdGlvblBh
bmVsLnNob3cobV93a1ZpZXcsICptX2ltcGwsIHR5cGUsIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0
cmluZywgcmVwbGFjZWRTdHJpbmcsIHJlcGxhY2VtZW50U3RyaW5nLCBhbHRlcm5hdGl2ZVJlcGxh
Y2VtZW50U3RyaW5ncyk7CiAjZW5kaWYKIH0KIApAQCAtNTg3LDcgKzU4Nyw3IEBAIFN0cmluZyBQ
YWdlQ2xpZW50SW1wbDo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbFNvb24oV2ViQ29yZTo6UmVhc29u
Rm9yRGlzbWlzc2luZ0FsCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZWNvcmRBdXRvY29ycmVjdGlv
blJlc3BvbnNlKEF1dG9jb3JyZWN0aW9uUmVzcG9uc2VUeXBlIHJlc3BvbnNlVHlwZSwgY29uc3Qg
U3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZykK
IHsKICAgICBOU0NvcnJlY3Rpb25SZXNwb25zZSByZXNwb25zZSA9IHJlc3BvbnNlVHlwZSA9PSBB
dXRvY29ycmVjdGlvblJldmVydGVkID8gTlNDb3JyZWN0aW9uUmVzcG9uc2VSZXZlcnRlZCA6IE5T
Q29ycmVjdGlvblJlc3BvbnNlRWRpdGVkOwotICAgIENvcnJlY3Rpb25QYW5lbDo6cmVjb3JkQXV0
b2NvcnJlY3Rpb25SZXNwb25zZShtX3drVmlldywgcmVzcG9uc2UsIHJlcGxhY2VkU3RyaW5nLCBy
ZXBsYWNlbWVudFN0cmluZyk7CisgICAgQ29ycmVjdGlvblBhbmVsOjpyZWNvcmRBdXRvY29ycmVj
dGlvblJlc3BvbnNlKG1fd2tWaWV3LCBtX2ltcGwtPnNwZWxsQ2hlY2tlckRvY3VtZW50VGFnKCks
IHJlc3BvbnNlLCByZXBsYWNlZFN0cmluZywgcmVwbGFjZW1lbnRTdHJpbmcpOwogfQogCiB2b2lk
IFBhZ2VDbGllbnRJbXBsOjpyZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKFNjcm9s
bGJhclN0eWxlIG5ld1N0eWxlKQpAQCAtNjM1LDggKzYzNSw4IEBAIHZvaWQgUGFnZUNsaWVudElt
cGw6OnNob3dEaWN0YXRpb25BbHRlcm5hdGl2ZVVJKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
Ym91bmRpCiB7CiAgICAgaWYgKCFpc1ZpZXdWaXNpYmxlKCkgfHwgIWlzVmlld0luV2luZG93KCkp
CiAgICAgICAgIHJldHVybjsKLSAgICBtX2FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci0+c2hv
d0FsdGVybmF0aXZlcyhtX3drVmlldywgYm91bmRpbmdCb3hPZkRpY3RhdGVkVGV4dCwgZGljdGF0
aW9uQ29udGV4dCwgXihOU1N0cmluZyogYWNjZXB0ZWRBbHRlcm5hdGl2ZSl7Ci0gICAgICAgIFtt
X3drVmlldyBoYW5kbGVBY2NlcHRlZEFsdGVybmF0aXZlVGV4dDphY2NlcHRlZEFsdGVybmF0aXZl
XTsKKyAgICBtX2FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci0+c2hvd0FsdGVybmF0aXZlcyht
X3drVmlldywgYm91bmRpbmdCb3hPZkRpY3RhdGVkVGV4dCwgZGljdGF0aW9uQ29udGV4dCwgXihO
U1N0cmluZyAqYWNjZXB0ZWRBbHRlcm5hdGl2ZSkgeworICAgICAgICBtX2ltcGwtPmhhbmRsZUFj
Y2VwdGVkQWx0ZXJuYXRpdmVUZXh0KGFjY2VwdGVkQWx0ZXJuYXRpdmUpOwogICAgIH0pOwogfQog
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264153</attachid>
            <date>2015-10-27 13:11:25 -0700</date>
            <delta_ts>2015-10-27 13:56:45 -0700</delta_ts>
            <desc>Part 8 - accessibility and cleanup</desc>
            <filename>8.diff</filename>
            <type>text/plain</type>
            <size>25912</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBiMjcxYTE5Li45Y2QxYjM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC02LDYgKzYsNjAg
QEAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKICAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBfc3VwZXJBY2Nlc3Np
YmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6CisgICAgICAgICgtW1dLVmlldyBhY2Nlc3NpYmlsaXR5
Rm9jdXNlZFVJRWxlbWVudF0pOgorICAgICAgICAoLVtXS1ZpZXcgYWNjZXNzaWJpbGl0eUlzSWdu
b3JlZF0pOgorICAgICAgICAoLVtXS1ZpZXcgYWNjZXNzaWJpbGl0eUhpdFRlc3Q6XSk6CisgICAg
ICAgICgtW1dLVmlldyBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6CisgICAgICAgICgt
W1dLVmlldyBfcHJvY2Vzc0RpZEV4aXRdKToKKyAgICAgICAgKC1bV0tWaWV3IF9wYWdlQ2xvc2Vk
XSk6CisgICAgICAgICgtW1dLVmlldyBfdXBkYXRlUmVtb3RlQWNjZXNzaWJpbGl0eVJlZ2lzdHJh
dGlvbjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IGVuYWJsZUFjY2Vzc2liaWxpdHlJ
Zk5lY2Vzc2FyeV0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3Rvb2xUaXBDaGFuZ2Vk
RnJvbTp0bzpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9zZXRBY2Nlc3NpYmlsaXR5
V2ViUHJvY2Vzc1Rva2VuOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX2hhc0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfZnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXJdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9j
bG9zZUZ1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dL
VmlldyBfc2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlczpdKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bV0tWaWV3IF9zdXBwcmVzc1Zpc2liaWxpdHlVcGRhdGVzXSk6IERlbGV0ZWQuCisgICAgICAg
ICgtW1dLVmlldyBfcHJpbWFyeVRyYWNraW5nQXJlYV0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S1ZpZXcgX3NldFByaW1hcnlUcmFja2luZ0FyZWE6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dL
VmlldyBpbml0V2l0aEZyYW1lOnByb2Nlc3NQb29sOmNvbmZpZ3VyYXRpb246d2ViVmlldzpdKTog
RGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6YWNjZXNzaWJpbGl0eUlzSWdub3JlZCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpwcmltYXJ5VHJhY2tpbmdBcmVhKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OnRyYWNraW5nQXJlYU9wdGlv
bnMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0QWNjZXNzaWJpbGl0eVdlYlByb2Nlc3NUb2tlbik6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVSZW1vdGVBY2Nlc3NpYmlsaXR5
UmVnaXN0cmF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFjY2Vzc2liaWxp
dHlGb2N1c2VkVUlFbGVtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFjY2Vz
c2liaWxpdHlIaXRUZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmVuYWJsZUFj
Y2Vzc2liaWxpdHlJZk5lY2Vzc2FyeSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjph
Y2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6c2V0UHJpbWFyeVRyYWNraW5nQXJlYSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojp0b29sVGlwQ2hhbmdlZCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1w
bC5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnRvb2xUaXBDaGFuZ2VkKToK
KyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmFjY2Vzc2liaWxpdHlXZWJQcm9jZXNz
VG9rZW5SZWNlaXZlZCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZWNvbW1l
bmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OmNsb3NlRnVsbFNjcmVlbk1hbmFnZXIpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6aXNGdWxsU2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6
OmVudGVyRnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpleGl0
RnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpiZWdhbkVudGVy
RnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpiZWdhbkV4aXRG
dWxsU2NyZWVuKToKKyAgICAgICAgTW92ZSBhY2Nlc3NpYmlsaXR5IGNvZGUsIGFuZCBmb2xkIGlu
IHNvbWUgaW50ZXJuYWwtb25seSBtZXRob2RzLgorCisyMDE1LTEwLTI2ICBUaW0gSG9ydG9uICA8
dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFdLVmlldyBiZWluZyBpbnNpZGUg
V0tXZWJWaWV3IGxlYWRzIHRvIHdlaXJkIEFQSSBpc3N1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE3NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
OgogICAgICAgICAoLVtXS1ZpZXcgc2Nyb2xsV2hlZWw6XSk6CiAgICAgICAgICgtW1dLVmlldyBz
d2lwZVdpdGhFdmVudDpdKToKICAgICAgICAgKC1bV0tWaWV3IF9zdXBlclN3aXBlV2l0aEV2ZW50
Ol0pOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDcx
NzgzOTYuLjU0MzZiMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXcubW0KQEAgLTE3MiwxMCArMTcyLDYgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50
c1BhcmFtZXRlcnMgewogICAgIFJldGFpblB0cjxfV0tSZW1vdGVPYmplY3RSZWdpc3RyeT4gX3Jl
bW90ZU9iamVjdFJlZ2lzdHJ5OwogI2VuZGlmCiAKLSAgICBSZXRhaW5QdHI8TlNUcmFja2luZ0Fy
ZWE+IF9wcmltYXJ5VHJhY2tpbmdBcmVhOwotCi0gICAgUmV0YWluUHRyPGlkPiBfcmVtb3RlQWNj
ZXNzaWJpbGl0eUNoaWxkOwotCiAgICAgLy8gRm9yIGFzeW5jaHJvbm91cyB2YWxpZGF0aW9uLgog
ICAgIFZhbGlkYXRpb25NYXAgX3ZhbGlkYXRpb25NYXA7CiAKQEAgLTIwNTcsNiArMjA1MywxNCBA
QCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmlu
ZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogICAgIFtzdXBlciByZW1vdmVUcmFja2luZ1JlY3Q6
dGFnXTsKIH0KIAorLSAoaWQpX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOihOU1N0
cmluZyAqKWF0dHJpYnV0ZQoreworI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgor
ICAgIHJldHVybiBbc3VwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOmF0dHJpYnV0ZV07
CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCit9CisKIC0gKE5TQXJyYXkgKil2YWxpZEF0
dHJpYnV0ZXNGb3JNYXJrZWRUZXh0CiB7CiAgICAgc3RhdGljIE5TQXJyYXkgKnZhbGlkQXR0cmli
dXRlczsKQEAgLTIxNzksNzQgKzIxODMsMjQgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGlu
ZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKICAg
ICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OklzVmlzaWJsZSk7
CiB9CiAKLS0gKHZvaWQpX3VwZGF0ZVJlbW90ZUFjY2Vzc2liaWxpdHlSZWdpc3RyYXRpb246KEJP
T0wpcmVnaXN0ZXJQcm9jZXNzCi17Ci0gICAgLy8gV2hlbiB0aGUgdHJlZSBpcyBjb25uZWN0ZWQv
ZGlzY29ubmVjdGVkLCB0aGUgcmVtb3RlIGFjY2Vzc2liaWxpdHkgcmVnaXN0cmF0aW9uCi0gICAg
Ly8gbmVlZHMgdG8gYmUgdXBkYXRlZCB3aXRoIHRoZSBwaWQgb2YgdGhlIHJlbW90ZSBwcm9jZXNz
LiBJZiB0aGUgcHJvY2VzcyBpcyBnb2luZwotICAgIC8vIGF3YXksIHRoYXQgaW5mb3JtYXRpb24g
aXMgbm90IHByZXNlbnQgaW4gV2ViUHJvY2VzcwotICAgIHBpZF90IHBpZCA9IDA7Ci0gICAgaWYg
KHJlZ2lzdGVyUHJvY2VzcykKLSAgICAgICAgcGlkID0gX2RhdGEtPl9wYWdlLT5wcm9jZXNzKCku
cHJvY2Vzc0lkZW50aWZpZXIoKTsKLSAgICBlbHNlIGlmICghcmVnaXN0ZXJQcm9jZXNzKSB7Ci0g
ICAgICAgIHBpZCA9IFdLQVhSZW1vdGVQcm9jZXNzSWRlbnRpZmllcihfZGF0YS0+X3JlbW90ZUFj
Y2Vzc2liaWxpdHlDaGlsZC5nZXQoKSk7Ci0gICAgICAgIF9kYXRhLT5fcmVtb3RlQWNjZXNzaWJp
bGl0eUNoaWxkID0gbmlsOwotICAgIH0KLSAgICBpZiAocGlkKQotICAgICAgICBXS0FYUmVnaXN0
ZXJSZW1vdGVQcm9jZXNzKHJlZ2lzdGVyUHJvY2VzcywgcGlkKTsgCi19Ci0KLS0gKHZvaWQpZW5h
YmxlQWNjZXNzaWJpbGl0eUlmTmVjZXNzYXJ5Ci17Ci0gICAgaWYgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OmFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIC8v
IEFmdGVyIGVuYWJsaW5nIGFjY2Vzc2liaWxpdHkgdXBkYXRlIHRoZSB3aW5kb3cgZnJhbWUgb24g
dGhlIHdlYiBwcm9jZXNzIHNvIHRoYXQgdGhlCi0gICAgLy8gY29ycmVjdCBhY2Nlc3NpYmlsaXR5
IHBvc2l0aW9uIGlzIHRyYW5zbWl0dGVkICh3aGVuIEFYIGlzIG9mZiwgdGhhdCBwb3NpdGlvbiBp
cyBub3QgY2FsY3VsYXRlZCkuCi0gICAgV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6ZW5hYmxlQWNj
ZXNzaWJpbGl0eSgpOwotICAgIF9kYXRhLT5faW1wbC0+dXBkYXRlV2luZG93QW5kVmlld0ZyYW1l
cygpOwotfQotCiAtIChpZClhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudAogewotICAgIFtz
ZWxmIGVuYWJsZUFjY2Vzc2liaWxpdHlJZk5lY2Vzc2FyeV07Ci0gICAgcmV0dXJuIF9kYXRhLT5f
cmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkLmdldCgpOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwt
PmFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50KCk7CiB9CiAKIC0gKEJPT0wpYWNjZXNzaWJp
bGl0eUlzSWdub3JlZAogewotICAgIHJldHVybiBOTzsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBs
LT5hY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7CiB9CiAKIC0gKGlkKWFjY2Vzc2liaWxpdHlIaXRU
ZXN0OihOU1BvaW50KXBvaW50CiB7Ci0gICAgW3NlbGYgZW5hYmxlQWNjZXNzaWJpbGl0eUlmTmVj
ZXNzYXJ5XTsKLSAgICByZXR1cm4gX2RhdGEtPl9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQuZ2V0
KCk7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+YWNjZXNzaWJpbGl0eUhpdFRlc3QoTlNQb2lu
dFRvQ0dQb2ludChwb2ludCkpOwogfQogCi0tIChpZClhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFs
dWU6KE5TU3RyaW5nKilhdHRyaWJ1dGUKKy0gKGlkKWFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1
ZTooTlNTdHJpbmcgKilhdHRyaWJ1dGUKIHsKLSAgICBbc2VsZiBlbmFibGVBY2Nlc3NpYmlsaXR5
SWZOZWNlc3NhcnldOwotCi0gICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOk5TQWNj
ZXNzaWJpbGl0eUNoaWxkcmVuQXR0cmlidXRlXSkgewotCi0gICAgICAgIGlkIGNoaWxkID0gbmls
OwotICAgICAgICBpZiAoX2RhdGEtPl9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQpCi0gICAgICAg
ICAgICBjaGlsZCA9IF9kYXRhLT5fcmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkLmdldCgpOwotICAg
ICAgICAKLSAgICAgICAgaWYgKCFjaGlsZCkKLSAgICAgICAgICAgIHJldHVybiBuaWw7Ci0gICAg
ICAgIHJldHVybiBbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6Y2hpbGRdOwotICAgIH0KLSAgICBp
ZiAoW2F0dHJpYnV0ZSBpc0VxdWFsVG9TdHJpbmc6TlNBY2Nlc3NpYmlsaXR5Um9sZUF0dHJpYnV0
ZV0pCi0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlHcm91cFJvbGU7Ci0gICAgaWYgKFth
dHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVJvbGVEZXNjcmlwdGlvbkF0
dHJpYnV0ZV0pCi0gICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlSb2xlRGVzY3JpcHRpb24o
TlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlLCBuaWwpOwotICAgIGlmIChbYXR0cmlidXRlIGlzRXF1
YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlQYXJlbnRBdHRyaWJ1dGVdKQotICAgICAgICByZXR1
cm4gTlNBY2Nlc3NpYmlsaXR5VW5pZ25vcmVkQW5jZXN0b3IoW3NlbGYgc3VwZXJ2aWV3XSk7Ci0g
ICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eUVuYWJsZWRB
dHRyaWJ1dGVdKQotICAgICAgICByZXR1cm4gW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU107
Ci0gICAgCi0gICAgcmV0dXJuIFtzdXBlciBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6YXR0
cmlidXRlXTsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5hY2Nlc3NpYmlsaXR5QXR0cmlidXRl
VmFsdWUoYXR0cmlidXRlKTsKIH0KIAogLSAoTlNWaWV3ICopaGl0VGVzdDooTlNQb2ludClwb2lu
dApAQCAtMjI4OCwxNCArMjI0MiwxNCBAQCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhO
U0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogICAgIGlm
IChfZGF0YS0+X2ltcGwtPmxheWVySG9zdGluZ1ZpZXcoKSkKICAgICAgICAgX2RhdGEtPl9pbXBs
LT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKG5pbCk7CiAKLSAgICBbc2VsZiBf
dXBkYXRlUmVtb3RlQWNjZXNzaWJpbGl0eVJlZ2lzdHJhdGlvbjpOT107CisgICAgX2RhdGEtPl9p
bXBsLT51cGRhdGVSZW1vdGVBY2Nlc3NpYmlsaXR5UmVnaXN0cmF0aW9uKGZhbHNlKTsKIAogICAg
IF9kYXRhLT5faW1wbC0+cmVzZXRHZXN0dXJlQ29udHJvbGxlcigpOwogfQogCiAtICh2b2lkKV9w
YWdlQ2xvc2VkCiB7Ci0gICAgW3NlbGYgX3VwZGF0ZVJlbW90ZUFjY2Vzc2liaWxpdHlSZWdpc3Ry
YXRpb246Tk9dOworICAgIF9kYXRhLT5faW1wbC0+dXBkYXRlUmVtb3RlQWNjZXNzaWJpbGl0eVJl
Z2lzdHJhdGlvbihmYWxzZSk7CiB9CiAKIC0gKHZvaWQpX2RpZFJlbGF1bmNoUHJvY2VzcwpAQCAt
MjM4OCwxNyArMjM0Miw2IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmli
dXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAgICAgcmV0dXJuIF9k
YXRhLT5faW1wbC0+c3RyaW5nRm9yVG9vbFRpcCh0YWcpOwogfQogCi0tICh2b2lkKV90b29sVGlw
Q2hhbmdlZEZyb206KE5TU3RyaW5nICopb2xkVG9vbFRpcCB0bzooTlNTdHJpbmcgKiluZXdUb29s
VGlwCi17Ci0gICAgX2RhdGEtPl9pbXBsLT50b29sVGlwQ2hhbmdlZChvbGRUb29sVGlwLCBuZXdU
b29sVGlwKTsKLX0KLQotLSAodm9pZClfc2V0QWNjZXNzaWJpbGl0eVdlYlByb2Nlc3NUb2tlbjoo
TlNEYXRhICopZGF0YQotewotICAgIF9kYXRhLT5fcmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkID0g
V0tBWFJlbW90ZUVsZW1lbnRGb3JUb2tlbihkYXRhKTsKLSAgICBbc2VsZiBfdXBkYXRlUmVtb3Rl
QWNjZXNzaWJpbGl0eVJlZ2lzdHJhdGlvbjpZRVNdOwotfQotCiAtICh2b2lkKV9kcmFnSW1hZ2VG
b3JWaWV3OihOU1ZpZXcgKil2aWV3IHdpdGhJbWFnZTooTlNJbWFnZSAqKWltYWdlIGF0OihOU1Bv
aW50KWNsaWVudFBvaW50IGxpbmtEcmFnOihCT09MKWxpbmtEcmFnCiB7CiAgICAgLy8gVGhlIGNh
bGwgYmVsb3cgY291bGQgcmVsZWFzZSB0aGlzIFdLVmlldy4KQEAgLTI1NTYsMjMgKzI0OTksNiBA
QCBzdGF0aWMgTlNTdHJpbmcgKnBhdGhXaXRoVW5pcXVlRmlsZW5hbWVGb3JQYXRoKE5TU3RyaW5n
ICpwYXRoKQogICAgIHJldHVybiBbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6W3BhdGggbGFzdFBh
dGhDb21wb25lbnRdXTsKIH0KIAotI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKLS0gKEJPT0wp
X2hhc0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyCi17Ci0gICAgcmV0dXJuIF9kYXRhLT5faW1w
bC0+aGFzRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKTsKLX0KLQotLSAoV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlciAqKV9mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcgotewotICAgIHJl
dHVybiBfZGF0YS0+X2ltcGwtPmZ1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKCk7Ci19Ci0KLS0g
KHZvaWQpX2Nsb3NlRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIKLXsKLSAgICBfZGF0YS0+X2lt
cGwtPmNsb3NlRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKTsKLX0KLSNlbmRpZgotCiAtIChi
b29sKV9leGVjdXRlU2F2ZWRDb21tYW5kQnlTZWxlY3RvcjooU0VMKXNlbGVjdG9yCiB7CiAgICAg
TE9HKFRleHRJbnB1dCwgIkV4ZWN1dGluZyBwcmV2aW91c2x5IHNhdmVkIGNvbW1hbmQgJXMiLCBz
ZWxfZ2V0TmFtZShzZWxlY3RvcikpOwpAQCAtMjU5OCwyOCArMjUyNCw2IEBAIHN0YXRpYyBOU1N0
cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAgICAg
X2RhdGEtPl9wYWdlLT5oYW5kbGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdCh0ZXh0KTsKIH0KIAot
LSAodm9pZClfc2V0U3VwcHJlc3NWaXNpYmlsaXR5VXBkYXRlczooQk9PTClzdXBwcmVzc1Zpc2li
aWxpdHlVcGRhdGVzCi17Ci0gICAgX2RhdGEtPl9wYWdlLT5zZXRTdXBwcmVzc1Zpc2liaWxpdHlV
cGRhdGVzKHN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXMpOwotfQotCi0tIChCT09MKV9zdXBwcmVz
c1Zpc2liaWxpdHlVcGRhdGVzCi17Ci0gICAgcmV0dXJuIF9kYXRhLT5fcGFnZS0+c3VwcHJlc3NW
aXNpYmlsaXR5VXBkYXRlcygpOwotfQotCi0tIChOU1RyYWNraW5nQXJlYSAqKV9wcmltYXJ5VHJh
Y2tpbmdBcmVhCi17Ci0gICAgcmV0dXJuIF9kYXRhLT5fcHJpbWFyeVRyYWNraW5nQXJlYS5nZXQo
KTsKLX0KLQotLSAodm9pZClfc2V0UHJpbWFyeVRyYWNraW5nQXJlYTooTlNUcmFja2luZ0FyZWEg
Kil0cmFja2luZ0FyZWEKLXsKLSAgICBbc2VsZiByZW1vdmVUcmFja2luZ0FyZWE6X2RhdGEtPl9w
cmltYXJ5VHJhY2tpbmdBcmVhLmdldCgpXTsKLSAgICBfZGF0YS0+X3ByaW1hcnlUcmFja2luZ0Fy
ZWEgPSB0cmFja2luZ0FyZWE7Ci0gICAgW3NlbGYgYWRkVHJhY2tpbmdBcmVhOnRyYWNraW5nQXJl
YV07Ci19Ci0KIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgcHJv
Y2Vzc1Bvb2w6KFdlYlByb2Nlc3NQb29sJilwcm9jZXNzUG9vbCBjb25maWd1cmF0aW9uOihSZWY8
QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiljb25maWd1cmF0aW9uIHdlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcKIHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdOwpA
QCAtMjYzMCwxNiArMjUzNCw3IEBAIHN0YXRpYyBOU1N0cmluZyAqcGF0aFdpdGhVbmlxdWVGaWxl
bmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCiAKICAgICBJbml0aWFsaXplV2ViS2l0MigpOwog
Ci0gICAgLy8gTGVnYWN5IHN0eWxlIHNjcm9sbGJhcnMgaGF2ZSBkZXNpZ24gZGV0YWlscyB0aGF0
IHJlbHkgb24gdHJhY2tpbmcgdGhlIG1vdXNlIGFsbCB0aGUgdGltZS4KLSAgICBOU1RyYWNraW5n
QXJlYU9wdGlvbnMgb3B0aW9ucyA9IE5TVHJhY2tpbmdNb3VzZU1vdmVkIHwgTlNUcmFja2luZ01v
dXNlRW50ZXJlZEFuZEV4aXRlZCB8IE5TVHJhY2tpbmdJblZpc2libGVSZWN0IHwgTlNUcmFja2lu
Z0N1cnNvclVwZGF0ZTsKLSAgICBpZiAoV0tSZWNvbW1lbmRlZFNjcm9sbGVyU3R5bGUoKSA9PSBO
U1Njcm9sbGVyU3R5bGVMZWdhY3kpCi0gICAgICAgIG9wdGlvbnMgfD0gTlNUcmFja2luZ0FjdGl2
ZUFsd2F5czsKLSAgICBlbHNlCi0gICAgICAgIG9wdGlvbnMgfD0gTlNUcmFja2luZ0FjdGl2ZUlu
S2V5V2luZG93OwotCiAgICAgX2RhdGEgPSBbW1dLVmlld0RhdGEgYWxsb2NdIGluaXRdOwotICAg
IF9kYXRhLT5fcHJpbWFyeVRyYWNraW5nQXJlYSA9IGFkb3B0TlMoW1tOU1RyYWNraW5nQXJlYSBh
bGxvY10gaW5pdFdpdGhSZWN0OmZyYW1lIG9wdGlvbnM6b3B0aW9ucyBvd25lcjpzZWxmIHVzZXJJ
bmZvOm5pbF0pOwotICAgIFtzZWxmIGFkZFRyYWNraW5nQXJlYTpfZGF0YS0+X3ByaW1hcnlUcmFj
a2luZ0FyZWEuZ2V0KCldOwogCiAgICAgX2RhdGEtPl9wYWdlQ2xpZW50ID0gc3RkOjptYWtlX3Vu
aXF1ZTxQYWdlQ2xpZW50SW1wbD4oc2VsZiwgd2ViVmlldyk7CiAgICAgX2RhdGEtPl9wYWdlID0g
cHJvY2Vzc1Bvb2wuY3JlYXRlV2ViUGFnZSgqX2RhdGEtPl9wYWdlQ2xpZW50LCBXVEY6Om1vdmUo
Y29uZmlndXJhdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFj
L1dLVmlld0ludGVybmFsLmgKaW5kZXggZmRlMWU0NS4uZjc0YTk3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCkBAIC0yNywxMSAr
MjcsNiBAQAogCiAjaW1wb3J0ICJXS1ZpZXdQcml2YXRlLmgiCiAKLSNpbXBvcnQgIkFQSU9iamVj
dC5oIgotI2ltcG9ydCAiUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlLmgiCi0jaW1wb3J0ICJT
YW1lRG9jdW1lbnROYXZpZ2F0aW9uVHlwZS5oIgotI2ltcG9ydCAiV2ViRmluZE9wdGlvbnMuaCIK
LSNpbXBvcnQgIldlYkhpdFRlc3RSZXN1bHREYXRhLmgiCiAjaW1wb3J0IDx3dGYvRm9yd2FyZC5o
PgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogI2ltcG9ydCA8d3RmL1ZlY3Rvci5oPgpAQCAt
MzksNyArMzQsNiBAQAogQGNsYXNzIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5OwogCiBuYW1lc3Bh
Y2UgQVBJIHsKLWNsYXNzIE9iamVjdDsKIGNsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogfQogCkBA
IC01MCwyMiArNDQsMTQgQEAgY2xhc3MgRGF0YVJlZmVyZW5jZTsKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIGNsYXNzIEltYWdlOwogY2xhc3MgU2hhcmVkQnVmZmVyOwotY2xhc3MgVGV4dEluZGljYXRv
cjsKLWVudW0gY2xhc3MgVGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lIDogdWludDhfdDsKLWVu
dW0gY2xhc3MgVGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbiA6IHVpbnQ4X3Q7
Ci1zdHJ1Y3QgS2V5cHJlc3NDb21tYW5kOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNz
IERyYXdpbmdBcmVhUHJveHk7Ci1jbGFzcyBMYXllclRyZWVDb250ZXh0OwotY2xhc3MgVmlld1Nu
YXBzaG90OwogY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBzdHJ1Y3QgQ29sb3JTcGFjZURhdGE7Ci1z
dHJ1Y3QgRWRpdG9yU3RhdGU7CiB9CiAKLUBjbGFzcyBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyOwogQGNsYXNzIFdLV2ViVmlldzsKICNpZiBXS19BUElfRU5BQkxFRAogQGNsYXNzIF9XS1Ro
dW1ibmFpbFZpZXc7CkBAIC04MCwxNSArNjYsMTIgQEAgc3RydWN0IEVkaXRvclN0YXRlOwogLSAo
dm9pZClfcHJvY2Vzc0RpZEV4aXQ7CiAtICh2b2lkKV9wYWdlQ2xvc2VkOwogLSAodm9pZClfZGlk
UmVsYXVuY2hQcm9jZXNzOwotLSAodm9pZClfdG9vbFRpcENoYW5nZWRGcm9tOihOU1N0cmluZyAq
KW9sZFRvb2xUaXAgdG86KE5TU3RyaW5nICopbmV3VG9vbFRpcDsKIC0gKHZvaWQpX3NldFVzZXJJ
bnRlcmZhY2VJdGVtU3RhdGU6KE5TU3RyaW5nICopY29tbWFuZE5hbWUgZW5hYmxlZDooQk9PTClp
c0VuYWJsZWQgc3RhdGU6KGludCluZXdTdGF0ZTsKIC0gKHZvaWQpX2RvbmVXaXRoS2V5RXZlbnQ6
KE5TRXZlbnQgKilldmVudCBldmVudFdhc0hhbmRsZWQ6KEJPT0wpZXZlbnRXYXNIYW5kbGVkOwog
LSAoYm9vbClfZXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3I6KFNFTClzZWxlY3RvcjsKIC0g
KE5TUmVjdClfY29udmVydFRvRGV2aWNlU3BhY2U6KE5TUmVjdClyZWN0OwogLSAoTlNSZWN0KV9j
b252ZXJ0VG9Vc2VyU3BhY2U6KE5TUmVjdClyZWN0OwogCi0tICh2b2lkKV9zZXRBY2Nlc3NpYmls
aXR5V2ViUHJvY2Vzc1Rva2VuOihOU0RhdGEgKilkYXRhOwotCiAtICh2b2lkKV9kcmFnSW1hZ2VG
b3JWaWV3OihOU1ZpZXcgKil2aWV3IHdpdGhJbWFnZTooTlNJbWFnZSAqKWltYWdlIGF0OihOU1Bv
aW50KWNsaWVudFBvaW50IGxpbmtEcmFnOihCT09MKWxpbmtEcmFnOwogLSAodm9pZClfc2V0UHJv
bWlzZWREYXRhRm9ySW1hZ2U6KFdlYkNvcmU6OkltYWdlICopaW1hZ2Ugd2l0aEZpbGVOYW1lOihO
U1N0cmluZyAqKWZpbGVuYW1lIHdpdGhFeHRlbnNpb246KE5TU3RyaW5nICopZXh0ZW5zaW9uIHdp
dGhUaXRsZTooTlNTdHJpbmcgKil0aXRsZSB3aXRoVVJMOihOU1N0cmluZyAqKXVybCB3aXRoVmlz
aWJsZVVSTDooTlNTdHJpbmcgKil2aXNpYmxlVXJsIHdpdGhBcmNoaXZlOihXZWJDb3JlOjpTaGFy
ZWRCdWZmZXIqKSBhcmNoaXZlQnVmZmVyIGZvclBhc3RlYm9hcmQ6KE5TU3RyaW5nICopcGFzdGVi
b2FyZE5hbWU7CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKQEAgLTEwMCwyNiArODMs
MTYgQEAgc3RydWN0IEVkaXRvclN0YXRlOwogLSAoTlNJbnRlZ2VyKXNwZWxsQ2hlY2tlckRvY3Vt
ZW50VGFnOwogLSAodm9pZCloYW5kbGVBY2NlcHRlZEFsdGVybmF0aXZlVGV4dDooTlNTdHJpbmcq
KXRleHQ7CiAKLS0gKHZvaWQpX3NldFN1cHByZXNzVmlzaWJpbGl0eVVwZGF0ZXM6KEJPT0wpc3Vw
cHJlc3NWaXNpYmlsaXR5VXBkYXRlczsKLS0gKEJPT0wpX3N1cHByZXNzVmlzaWJpbGl0eVVwZGF0
ZXM7Ci0KICNpZiBXS19BUElfRU5BQkxFRAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0VGh1bWJuYWlsVmlldzopIF9XS1RodW1ibmFpbFZpZXcgKl90aHVtYm5haWxWaWV3OwogI2Vu
ZGlmCiAKIC0gKHZvaWQpX2FkZEZvbnRQYW5lbE9ic2VydmVyOwotLy8gRnVsbFNjcmVlbgotCi1A
cHJvcGVydHkgKHJlYWRvbmx5KSBCT09MIF9oYXNGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcjsK
LUBwcm9wZXJ0eSAocmVhZG9ubHkpIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgKl9mdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlcjsKLS0gKHZvaWQpX2Nsb3NlRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXI7CiAKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEw
MAogLSAodm9pZClfc3RhcnRXaW5kb3dEcmFnOwogI2VuZGlmCiAKLUBwcm9wZXJ0eSAobm9uYXRv
bWljLCByZXRhaW4sIHNldHRlcj1fc2V0UHJpbWFyeVRyYWNraW5nQXJlYTopIE5TVHJhY2tpbmdB
cmVhICpfcHJpbWFyeVRyYWNraW5nQXJlYTsKLQogI2lmIFdLX0FQSV9FTkFCTEVECiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICpfcmVtb3Rl
T2JqZWN0UmVnaXN0cnk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLmgKaW5kZXggYWQ4YThiNS4uZmUwZTdhMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTU1LDYgKzU1LDcgQEAgT0JKQ19D
TEFTUyBfV0tUaHVtYm5haWxWaWV3OwogLSAodm9pZClfc3VwZXJTd2lwZVdpdGhFdmVudDooTlNF
dmVudCAqKWV2ZW50OwogLSAodm9pZClfc3VwZXJNYWduaWZ5V2l0aEV2ZW50OihOU0V2ZW50ICop
ZXZlbnQ7CiAtICh2b2lkKV9zdXBlclNtYXJ0TWFnbmlmeVdpdGhFdmVudDooTlNFdmVudCAqKWV2
ZW50OworLSAoaWQpX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOihOU1N0cmluZyAq
KWF0dHJpYnV0ZTsKIAogLy8gVGhpcyBpcyBhIGhhY2s7IHRoZXNlIHRoaW5ncyBsaXZlIGNhbiBs
aXZlIG9uIGEgY2F0ZWdvcnkgKGUuZy4gV0tWaWV3IChQcml2YXRlKSkgYnV0IFdLVmlldyBpdHNl
bGYgY29uZm9ybXMgdG8gdGhpcyBwcm90b2NvbC4KIC8vIFRoZXkncmUgbm90IGFjdHVhbGx5IG9w
dGlvbmFsLgpAQCAtMjI1LDcgKzIyNiwxNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRJZ25vcmVz
TW91c2VEcmFnZ2VkRXZlbnRzKGJvb2wpOwogICAgIGJvb2wgaWdub3Jlc01vdXNlRHJhZ2dlZEV2
ZW50cygpIGNvbnN0IHsgcmV0dXJuIG1faWdub3Jlc01vdXNlRHJhZ2dlZEV2ZW50czsgfQogCisg
ICAgdm9pZCBzZXRBY2Nlc3NpYmlsaXR5V2ViUHJvY2Vzc1Rva2VuKE5TRGF0YSAqKTsKICAgICB2
b2lkIGFjY2Vzc2liaWxpdHlSZWdpc3RlclVJUHJvY2Vzc1Rva2VucygpOworICAgIHZvaWQgdXBk
YXRlUmVtb3RlQWNjZXNzaWJpbGl0eVJlZ2lzdHJhdGlvbihib29sIHJlZ2lzdGVyUHJvY2Vzcyk7
CisgICAgaWQgYWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQoKTsKKyAgICBib29sIGFjY2Vz
c2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIGlkIGFjY2Vz
c2liaWxpdHlIaXRUZXN0KENHUG9pbnQpOworICAgIHZvaWQgZW5hYmxlQWNjZXNzaWJpbGl0eUlm
TmVjZXNzYXJ5KCk7CisgICAgaWQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlKE5TU3RyaW5n
ICopOworCisgICAgTlNUcmFja2luZ0FyZWEgKnByaW1hcnlUcmFja2luZ0FyZWEoKSBjb25zdCB7
IHJldHVybiBtX3ByaW1hcnlUcmFja2luZ0FyZWEuZ2V0KCk7IH0KKyAgICB2b2lkIHNldFByaW1h
cnlUcmFja2luZ0FyZWEoTlNUcmFja2luZ0FyZWEgKik7CiAKICAgICBOU1RyYWNraW5nUmVjdFRh
ZyBhZGRUcmFja2luZ1JlY3QoQ0dSZWN0LCBpZCBvd25lciwgdm9pZCogdXNlckRhdGEsIGJvb2wg
YXNzdW1lSW5zaWRlKTsKICAgICBOU1RyYWNraW5nUmVjdFRhZyBhZGRUcmFja2luZ1JlY3RXaXRo
VHJhY2tpbmdOdW0oQ0dSZWN0LCBpZCBvd25lciwgdm9pZCogdXNlckRhdGEsIGJvb2wgYXNzdW1l
SW5zaWRlLCBpbnQgdGFnKTsKQEAgLTIzMyw3ICsyNDQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZW1vdmVUcmFja2luZ1JlY3QoTlNUcmFja2luZ1JlY3RUYWcpOwogICAgIHZvaWQgcmVtb3ZlVHJh
Y2tpbmdSZWN0cyhOU1RyYWNraW5nUmVjdFRhZyAqLCBpbnQgY291bnQpOwogICAgIE5TU3RyaW5n
ICpzdHJpbmdGb3JUb29sVGlwKE5TVG9vbFRpcFRhZyB0YWcpOwotICAgIHZvaWQgdG9vbFRpcENo
YW5nZWQoTlNTdHJpbmcgKm9sZFRvb2xUaXAsIE5TU3RyaW5nICpuZXdUb29sVGlwKTsKKyAgICB2
b2lkIHRvb2xUaXBDaGFuZ2VkKFN0cmluZyBvbGRUb29sVGlwLCBTdHJpbmcgbmV3VG9vbFRpcCk7
CiAKICAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoQ0FMYXllciAq
KTsKICAgICBDQUxheWVyICphY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKCkgY29uc3Qg
eyByZXR1cm4gbV9yb290TGF5ZXIuZ2V0KCk7IH0KQEAgLTM2OCw2ICszNzksOCBAQCBwcml2YXRl
OgogICAgIGJvb2wgbV9hbGxvd3NMaW5rUHJldmlldyB7IHRydWUgfTsKICAgICBib29sIG1fZGlk
UmVnaXN0ZXJGb3JMb29rdXBQb3BvdmVyQ2xvc2VOb3RpZmljYXRpb25zIHsgZmFsc2UgfTsKIAor
ICAgIFJldGFpblB0cjxOU1RyYWNraW5nQXJlYT4gbV9wcmltYXJ5VHJhY2tpbmdBcmVhOworCiAg
ICAgTlNUb29sVGlwVGFnIG1fbGFzdFRvb2xUaXBUYWcgeyAwIH07CiAgICAgaWQgbV90cmFja2lu
Z1JlY3RPd25lciB7IG5pbCB9OwogICAgIHZvaWQqIG1fdHJhY2tpbmdSZWN0VXNlckRhdGEgeyBu
dWxscHRyIH07CkBAIC0zODIsNiArMzk1LDggQEAgcHJpdmF0ZToKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8Vmlld0dlc3R1cmVDb250cm9sbGVyPiBtX2dlc3R1cmVDb250cm9sbGVyOwogICAgIGJvb2wg
bV9hbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcyB7IGZhbHNlIH07CiAgICAgYm9v
bCBtX2FsbG93c01hZ25pZmljYXRpb24geyBmYWxzZSB9OworCisgICAgUmV0YWluUHRyPGlkPiBt
X3JlbW90ZUFjY2Vzc2liaWxpdHlDaGlsZDsKIH07CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRl
eCBiNGIwNDlmLi5lZjc0MTkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCkBAIC0zMjAsNiArMzIwLDE3IEBAIHN0YXRpYyB2b2lkKiBrZXlWYWx1
ZU9ic2VydmluZ0NvbnRleHQgPSAma2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0OwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAorc3RhdGljIE5TVHJhY2tpbmdBcmVhT3B0aW9ucyB0cmFja2luZ0FyZWFP
cHRpb25zKCkKK3sKKyAgICAvLyBMZWdhY3kgc3R5bGUgc2Nyb2xsYmFycyBoYXZlIGRlc2lnbiBk
ZXRhaWxzIHRoYXQgcmVseSBvbiB0cmFja2luZyB0aGUgbW91c2UgYWxsIHRoZSB0aW1lLgorICAg
IE5TVHJhY2tpbmdBcmVhT3B0aW9ucyBvcHRpb25zID0gTlNUcmFja2luZ01vdXNlTW92ZWQgfCBO
U1RyYWNraW5nTW91c2VFbnRlcmVkQW5kRXhpdGVkIHwgTlNUcmFja2luZ0luVmlzaWJsZVJlY3Qg
fCBOU1RyYWNraW5nQ3Vyc29yVXBkYXRlOworICAgIGlmIChXS1JlY29tbWVuZGVkU2Nyb2xsZXJT
dHlsZSgpID09IE5TU2Nyb2xsZXJTdHlsZUxlZ2FjeSkKKyAgICAgICAgb3B0aW9ucyB8PSBOU1Ry
YWNraW5nQWN0aXZlQWx3YXlzOworICAgIGVsc2UKKyAgICAgICAgb3B0aW9ucyB8PSBOU1RyYWNr
aW5nQWN0aXZlSW5LZXlXaW5kb3c7CisgICAgcmV0dXJuIG9wdGlvbnM7Cit9CisKIFdlYlZpZXdJ
bXBsOjpXZWJWaWV3SW1wbChOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICp2aWV3LCBXZWJQ
YWdlUHJveHkmIHBhZ2UsIFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQpCiAgICAgOiBtX3ZpZXcodmll
dykKICAgICAsIG1fcGFnZShwYWdlKQpAQCAtMzMwLDcgKzM0MSwxMCBAQCBXZWJWaWV3SW1wbDo6
V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAqdmlldywgV2ViUGFnZVBy
b3h5JiBwYWdlLAogICAgICwgbV9sYXlvdXRTdHJhdGVneShbV0tWaWV3TGF5b3V0U3RyYXRlZ3kg
bGF5b3V0U3RyYXRlZ3lXaXRoUGFnZTptX3BhZ2UgdmlldzptX3ZpZXcgdmlld0ltcGw6KnRoaXMg
bW9kZTprV0tMYXlvdXRNb2RlVmlld1NpemVdKQogICAgICwgbV91bmRvVGFyZ2V0KGFkb3B0TlMo
W1tXS0VkaXRvclVuZG9UYXJnZXRPYmpDIGFsbG9jXSBpbml0XSkpCiAgICAgLCBtX3dpbmRvd1Zp
c2liaWxpdHlPYnNlcnZlcihhZG9wdE5TKFtbV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXIgYWxs
b2NdIGluaXRXaXRoVmlldzp2aWV3IGltcGw6KnRoaXNdKSkKKyAgICAsIG1fcHJpbWFyeVRyYWNr
aW5nQXJlYShhZG9wdE5TKFtbTlNUcmFja2luZ0FyZWEgYWxsb2NdIGluaXRXaXRoUmVjdDptX3Zp
ZXcuZnJhbWUgb3B0aW9uczp0cmFja2luZ0FyZWFPcHRpb25zKCkgb3duZXI6bV92aWV3IHVzZXJJ
bmZvOm5pbF0pKQogeworICAgIFttX3ZpZXcgYWRkVHJhY2tpbmdBcmVhOm1fcHJpbWFyeVRyYWNr
aW5nQXJlYS5nZXQoKV07CisKICAgICBtX3BhZ2Uuc2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0
b3IoaW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoKSk7CiAKICNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTAwMApAQCAtMTQ2Myw2ICsxNDc3LDI4IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OnNldElnbm9yZXNNb3VzZURyYWdnZWRFdmVudHMoYm9vbCBpZ25vcmVzTW91c2VE
cmFnZ2VkRXZlbnRzKQogICAgIG1faWdub3Jlc01vdXNlRHJhZ2dlZEV2ZW50cyA9IGlnbm9yZXNN
b3VzZURyYWdnZWRFdmVudHM7CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OnNldEFjY2Vzc2liaWxp
dHlXZWJQcm9jZXNzVG9rZW4oTlNEYXRhICpkYXRhKQoreworICAgIG1fcmVtb3RlQWNjZXNzaWJp
bGl0eUNoaWxkID0gV0tBWFJlbW90ZUVsZW1lbnRGb3JUb2tlbihkYXRhKTsKKyAgICB1cGRhdGVS
ZW1vdGVBY2Nlc3NpYmlsaXR5UmVnaXN0cmF0aW9uKHRydWUpOworfQorCit2b2lkIFdlYlZpZXdJ
bXBsOjp1cGRhdGVSZW1vdGVBY2Nlc3NpYmlsaXR5UmVnaXN0cmF0aW9uKGJvb2wgcmVnaXN0ZXJQ
cm9jZXNzKQoreworICAgIC8vIFdoZW4gdGhlIHRyZWUgaXMgY29ubmVjdGVkL2Rpc2Nvbm5lY3Rl
ZCwgdGhlIHJlbW90ZSBhY2Nlc3NpYmlsaXR5IHJlZ2lzdHJhdGlvbgorICAgIC8vIG5lZWRzIHRv
IGJlIHVwZGF0ZWQgd2l0aCB0aGUgcGlkIG9mIHRoZSByZW1vdGUgcHJvY2Vzcy4gSWYgdGhlIHBy
b2Nlc3MgaXMgZ29pbmcKKyAgICAvLyBhd2F5LCB0aGF0IGluZm9ybWF0aW9uIGlzIG5vdCBwcmVz
ZW50IGluIFdlYlByb2Nlc3MKKyAgICBwaWRfdCBwaWQgPSAwOworICAgIGlmIChyZWdpc3RlclBy
b2Nlc3MpCisgICAgICAgIHBpZCA9IG1fcGFnZS5wcm9jZXNzKCkucHJvY2Vzc0lkZW50aWZpZXIo
KTsKKyAgICBlbHNlIGlmICghcmVnaXN0ZXJQcm9jZXNzKSB7CisgICAgICAgIHBpZCA9IFdLQVhS
ZW1vdGVQcm9jZXNzSWRlbnRpZmllcihtX3JlbW90ZUFjY2Vzc2liaWxpdHlDaGlsZC5nZXQoKSk7
CisgICAgICAgIG1fcmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkID0gbmlsOworICAgIH0KKyAgICBp
ZiAocGlkKQorICAgICAgICBXS0FYUmVnaXN0ZXJSZW1vdGVQcm9jZXNzKHJlZ2lzdGVyUHJvY2Vz
cywgcGlkKTsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6YWNjZXNzaWJpbGl0eVJlZ2lzdGVyVUlQ
cm9jZXNzVG9rZW5zKCkKIHsKICAgICAvLyBJbml0aWFsaXplIHJlbW90ZSBhY2Nlc3NpYmlsaXR5
IHdoZW4gdGhlIHdpbmRvdyBjb25uZWN0aW9uIGhhcyBiZWVuIGVzdGFibGlzaGVkLgpAQCAtMTQ3
Myw2ICsxNTA5LDYxIEBAIHZvaWQgV2ViVmlld0ltcGw6OmFjY2Vzc2liaWxpdHlSZWdpc3RlclVJ
UHJvY2Vzc1Rva2VucygpCiAgICAgbV9wYWdlLnJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNzaWJpbGl0
eVRva2VucyhlbGVtZW50VG9rZW4sIHdpbmRvd1Rva2VuKTsKIH0KIAoraWQgV2ViVmlld0ltcGw6
OmFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50KCkKK3sKKyAgICBlbmFibGVBY2Nlc3NpYmls
aXR5SWZOZWNlc3NhcnkoKTsKKyAgICByZXR1cm4gbV9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQu
Z2V0KCk7Cit9CisKK2lkIFdlYlZpZXdJbXBsOjphY2Nlc3NpYmlsaXR5SGl0VGVzdChDR1BvaW50
KQoreworICAgIHJldHVybiBhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudCgpOworfQorCit2
b2lkIFdlYlZpZXdJbXBsOjplbmFibGVBY2Nlc3NpYmlsaXR5SWZOZWNlc3NhcnkoKQoreworICAg
IGlmIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjphY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQorICAg
ICAgICByZXR1cm47CisKKyAgICAvLyBBZnRlciBlbmFibGluZyBhY2Nlc3NpYmlsaXR5IHVwZGF0
ZSB0aGUgd2luZG93IGZyYW1lIG9uIHRoZSB3ZWIgcHJvY2VzcyBzbyB0aGF0IHRoZQorICAgIC8v
IGNvcnJlY3QgYWNjZXNzaWJpbGl0eSBwb3NpdGlvbiBpcyB0cmFuc21pdHRlZCAod2hlbiBBWCBp
cyBvZmYsIHRoYXQgcG9zaXRpb24gaXMgbm90IGNhbGN1bGF0ZWQpLgorICAgIFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OmVuYWJsZUFjY2Vzc2liaWxpdHkoKTsKKyAgICB1cGRhdGVXaW5kb3dBbmRW
aWV3RnJhbWVzKCk7Cit9CisKK2lkIFdlYlZpZXdJbXBsOjphY2Nlc3NpYmlsaXR5QXR0cmlidXRl
VmFsdWUoTlNTdHJpbmcgKmF0dHJpYnV0ZSkKK3sKKyAgICBlbmFibGVBY2Nlc3NpYmlsaXR5SWZO
ZWNlc3NhcnkoKTsKKworICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vz
c2liaWxpdHlDaGlsZHJlbkF0dHJpYnV0ZV0pIHsKKworICAgICAgICBpZCBjaGlsZCA9IG5pbDsK
KyAgICAgICAgaWYgKG1fcmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkKQorICAgICAgICAgICAgY2hp
bGQgPSBtX3JlbW90ZUFjY2Vzc2liaWxpdHlDaGlsZC5nZXQoKTsKKworICAgICAgICAgICAgaWYg
KCFjaGlsZCkKKyAgICAgICAgICAgICAgICByZXR1cm4gbmlsOworICAgICAgICByZXR1cm4gW05T
QXJyYXkgYXJyYXlXaXRoT2JqZWN0OmNoaWxkXTsKKyAgICB9CisgICAgaWYgKFthdHRyaWJ1dGUg
aXNFcXVhbFRvU3RyaW5nOk5TQWNjZXNzaWJpbGl0eVJvbGVBdHRyaWJ1dGVdKQorICAgICAgICBy
ZXR1cm4gTlNBY2Nlc3NpYmlsaXR5R3JvdXBSb2xlOworICAgIGlmIChbYXR0cmlidXRlIGlzRXF1
YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlSb2xlRGVzY3JpcHRpb25BdHRyaWJ1dGVdKQorICAg
ICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5Um9sZURlc2NyaXB0aW9uKE5TQWNjZXNzaWJpbGl0
eUdyb3VwUm9sZSwgbmlsKTsKKyAgICAgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5n
Ok5TQWNjZXNzaWJpbGl0eVBhcmVudEF0dHJpYnV0ZV0pCisgICAgICAgICAgICByZXR1cm4gTlNB
Y2Nlc3NpYmlsaXR5VW5pZ25vcmVkQW5jZXN0b3IoW21fdmlldyBzdXBlcnZpZXddKTsKKyAgICAg
ICAgICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0cmluZzpOU0FjY2Vzc2liaWxpdHlFbmFi
bGVkQXR0cmlidXRlXSkKKyAgICAgICAgICAgICAgICByZXR1cm4gQFlFUzsKKyAgICAKKyAgICBy
ZXR1cm4gW21fdmlldyBfc3VwZXJBY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6YXR0cmlidXRl
XTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0UHJpbWFyeVRyYWNraW5nQXJlYShOU1RyYWNr
aW5nQXJlYSAqdHJhY2tpbmdBcmVhKQoreworICAgIFttX3ZpZXcgcmVtb3ZlVHJhY2tpbmdBcmVh
Om1fcHJpbWFyeVRyYWNraW5nQXJlYS5nZXQoKV07CisgICAgbV9wcmltYXJ5VHJhY2tpbmdBcmVh
ID0gdHJhY2tpbmdBcmVhOworICAgIFttX3ZpZXcgYWRkVHJhY2tpbmdBcmVhOnRyYWNraW5nQXJl
YV07Cit9CisKIC8vIEFueSBub24temVybyB2YWx1ZSB3aWxsIGRvLCBidXQgdXNpbmcgc29tZXRo
aW5nIHJlY29nbml6YWJsZSBtaWdodCBoZWxwIHVzIGRlYnVnIHNvbWUgZGF5LgogI2RlZmluZSBU
UkFDS0lOR19SRUNUX1RBRyAweEJBREZBQ0UKIApAQCAtMTU3MCwxMiArMTY2MSwxMiBAQCBOU1N0
cmluZyAqV2ViVmlld0ltcGw6OnN0cmluZ0ZvclRvb2xUaXAoTlNUb29sVGlwVGFnIHRhZykKICAg
ICByZXR1cm4gbnNTdHJpbmdGcm9tV2ViQ29yZVN0cmluZyhtX3BhZ2UudG9vbFRpcCgpKTsKIH0K
IAotdm9pZCBXZWJWaWV3SW1wbDo6dG9vbFRpcENoYW5nZWQoTlNTdHJpbmcgKm9sZFRvb2xUaXAs
IE5TU3RyaW5nICpuZXdUb29sVGlwKQordm9pZCBXZWJWaWV3SW1wbDo6dG9vbFRpcENoYW5nZWQo
U3RyaW5nIG9sZFRvb2xUaXAsIFN0cmluZyBuZXdUb29sVGlwKQogewotICAgIGlmIChvbGRUb29s
VGlwKQorICAgIGlmICghb2xkVG9vbFRpcC5pc051bGwoKSkKICAgICAgICAgc2VuZFRvb2xUaXBN
b3VzZUV4aXRlZCgpOwogICAgIAotICAgIGlmIChuZXdUb29sVGlwICYmIFtuZXdUb29sVGlwIGxl
bmd0aF0gPiAwKSB7CisgICAgaWYgKCFuZXdUb29sVGlwLmlzRW1wdHkoKSkgewogICAgICAgICAv
LyBTZWUgcmFkYXIgMzUwMDIxNyBmb3Igd2h5IHdlIHJlbW92ZSBhbGwgdG9vbHRpcHMgcmF0aGVy
IHRoYW4ganVzdCB0aGUgc2luZ2xlIG9uZSB3ZSBjcmVhdGVkLgogICAgICAgICBbbV92aWV3IHJl
bW92ZUFsbFRvb2xUaXBzXTsKICAgICAgICAgTlNSZWN0IHdpZGVPcGVuUmVjdCA9IE5TTWFrZVJl
Y3QoLTEwMDAwMCwgLTEwMDAwMCwgMjAwMDAwLCAyMDAwMDApOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggYTM4YjFiNC4uYTBmYjhiZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCkBA
IC0yNjQsNyArMjY0LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJlZmVyZW5jZXNEaWRDaGFu
Z2UoKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjp0b29sVGlwQ2hhbmdlZChjb25zdCBTdHJpbmcm
IG9sZFRvb2xUaXAsIGNvbnN0IFN0cmluZyYgbmV3VG9vbFRpcCkKIHsKLSAgICBbbV93a1ZpZXcg
X3Rvb2xUaXBDaGFuZ2VkRnJvbTpuc1N0cmluZ0Zyb21XZWJDb3JlU3RyaW5nKG9sZFRvb2xUaXAp
IHRvOm5zU3RyaW5nRnJvbVdlYkNvcmVTdHJpbmcobmV3VG9vbFRpcCldOworICAgIG1faW1wbC0+
dG9vbFRpcENoYW5nZWQob2xkVG9vbFRpcCwgbmV3VG9vbFRpcCk7CiB9CiAKIHZvaWQgUGFnZUNs
aWVudEltcGw6OmRpZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiBtaW1lVHlw
ZSwgYm9vbCB1c2VDdXN0b21Db250ZW50UHJvdmlkZXIpCkBAIC00NzQsOCArNDc0LDcgQEAgdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0
IHByb2dyZXNzKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjphY2Nlc3NpYmlsaXR5V2ViUHJvY2Vz
c1Rva2VuUmVjZWl2ZWQoY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhKQogewotICAgIE5T
RGF0YSogcmVtb3RlVG9rZW4gPSBbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6ZGF0YS5kYXRhKCkgbGVu
Z3RoOmRhdGEuc2l6ZSgpXTsKLSAgICBbbV93a1ZpZXcgX3NldEFjY2Vzc2liaWxpdHlXZWJQcm9j
ZXNzVG9rZW46cmVtb3RlVG9rZW5dOworICAgIG1faW1wbC0+c2V0QWNjZXNzaWJpbGl0eVdlYlBy
b2Nlc3NUb2tlbihbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6ZGF0YS5kYXRhKCkgbGVuZ3RoOmRhdGEu
c2l6ZSgpXSk7CiB9CiAgICAgCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjplbnRlckFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQp
CkBAIC02MDEsNyArNjAwLDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVjb21tZW5kZWRTY3Jv
bGxiYXJTdHlsZURpZENoYW5nZShTY3JvbGxiYXJTdHlsZSBuZXdTdHlsZSkKICAgICAgICAgb3B0
aW9ucyB8PSBOU1RyYWNraW5nQWN0aXZlSW5LZXlXaW5kb3c7CiAKICAgICBSZXRhaW5QdHI8TlNU
cmFja2luZ0FyZWE+IHRyYWNraW5nQXJlYSA9IGFkb3B0TlMoW1tOU1RyYWNraW5nQXJlYSBhbGxv
Y10gaW5pdFdpdGhSZWN0OlttX3drVmlldyBmcmFtZV0gb3B0aW9uczpvcHRpb25zIG93bmVyOm1f
d2tWaWV3IHVzZXJJbmZvOm5pbF0pOwotICAgIFttX3drVmlldyBfc2V0UHJpbWFyeVRyYWNraW5n
QXJlYTp0cmFja2luZ0FyZWEuZ2V0KCldOworICAgIG1faW1wbC0+c2V0UHJpbWFyeVRyYWNraW5n
QXJlYSh0cmFja2luZ0FyZWEuZ2V0KCkpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjppbnRy
aW5zaWNDb250ZW50U2l6ZURpZENoYW5nZShjb25zdCBJbnRTaXplJiBpbnRyaW5zaWNDb250ZW50
U2l6ZSkKQEAgLTY1OCwzNiArNjU3LDM2IEBAIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGll
bnQmIFBhZ2VDbGllbnRJbXBsOjpmdWxsU2NyZWVuTWFuYWdlclByb3h5Q2xpZW50KCkKIAogdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6Y2xvc2VGdWxsU2NyZWVuTWFuYWdlcigpCiB7Ci0gICAgW21fd2tW
aWV3IF9jbG9zZUZ1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyXTsKKyAgICBtX2ltcGwtPmNsb3Nl
RnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKTsKIH0KIAogYm9vbCBQYWdlQ2xpZW50SW1wbDo6
aXNGdWxsU2NyZWVuKCkKIHsKLSAgICBpZiAoIW1fd2tWaWV3Ll9oYXNGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlcikKKyAgICBpZiAoIW1faW1wbC0+aGFzRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgcmV0dXJuIG1fd2tWaWV3Ll9mdWxs
U2NyZWVuV2luZG93Q29udHJvbGxlci5pc0Z1bGxTY3JlZW47CisgICAgcmV0dXJuIG1faW1wbC0+
ZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKS5pc0Z1bGxTY3JlZW47CiB9CiAKIHZvaWQgUGFn
ZUNsaWVudEltcGw6OmVudGVyRnVsbFNjcmVlbigpCiB7Ci0gICAgW21fd2tWaWV3Ll9mdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlciBlbnRlckZ1bGxTY3JlZW46bmlsXTsKKyAgICBbbV9pbXBsLT5m
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpIGVudGVyRnVsbFNjcmVlbjpuaWxdOwogfQogCiB2
b2lkIFBhZ2VDbGllbnRJbXBsOjpleGl0RnVsbFNjcmVlbigpCiB7Ci0gICAgW21fd2tWaWV3Ll9m
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlciBleGl0RnVsbFNjcmVlbl07CisgICAgW21faW1wbC0+
ZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKSBleGl0RnVsbFNjcmVlbl07CiB9CiAKIHZvaWQg
UGFnZUNsaWVudEltcGw6OmJlZ2FuRW50ZXJGdWxsU2NyZWVuKGNvbnN0IEludFJlY3QmIGluaXRp
YWxGcmFtZSwgY29uc3QgSW50UmVjdCYgZmluYWxGcmFtZSkKIHsKLSAgICBbbV93a1ZpZXcuX2Z1
bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGJlZ2FuRW50ZXJGdWxsU2NyZWVuV2l0aEluaXRpYWxG
cmFtZTppbml0aWFsRnJhbWUgZmluYWxGcmFtZTpmaW5hbEZyYW1lXTsKKyAgICBbbV9pbXBsLT5m
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpIGJlZ2FuRW50ZXJGdWxsU2NyZWVuV2l0aEluaXRp
YWxGcmFtZTppbml0aWFsRnJhbWUgZmluYWxGcmFtZTpmaW5hbEZyYW1lXTsKICAgICBtX2ltcGwt
PnVwZGF0ZVN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMoKTsKIH0KIAogdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6YmVnYW5FeGl0RnVsbFNjcmVlbihjb25zdCBJbnRSZWN0JiBpbml0aWFsRnJhbWUs
IGNvbnN0IEludFJlY3QmIGZpbmFsRnJhbWUpCiB7Ci0gICAgW21fd2tWaWV3Ll9mdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlciBiZWdhbkV4aXRGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTppbml0
aWFsRnJhbWUgZmluYWxGcmFtZTpmaW5hbEZyYW1lXTsKKyAgICBbbV9pbXBsLT5mdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlcigpIGJlZ2FuRXhpdEZ1bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmlu
aXRpYWxGcmFtZSBmaW5hbEZyYW1lOmZpbmFsRnJhbWVdOwogICAgIG1faW1wbC0+dXBkYXRlU3Vw
cG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcygpOwogfQogCg==
</data>
<flag name="review"
          id="289287"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264157</attachid>
            <date>2015-10-27 13:57:28 -0700</date>
            <delta_ts>2015-10-27 17:46:05 -0700</delta_ts>
            <desc>Part 9 - pasteboard and spellcheck</desc>
            <filename>9.diff</filename>
            <type>text/plain</type>
            <size>42865</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA5Y2QxYjM0Li4xMzM1YzljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC02LDYgKzYsNjYg
QEAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKICAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBtb3VzZURvd246XSk6
CisgICAgICAgICgtW1dLVmlldyBtb3VzZVVwOl0pOgorICAgICAgICAoLVtXS1ZpZXcgYWNjZXB0
c0ZpcnN0TW91c2U6XSk6CisgICAgICAgICgtW1dLVmlldyBzaG91bGREZWxheVdpbmRvd09yZGVy
aW5nRm9yRXZlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBwYXN0ZWJvYXJkQ2hhbmdlZE93bmVy
Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgcGFzdGVib2FyZDpwcm92aWRlRGF0YUZvclR5cGU6XSk6
CisgICAgICAgICgtW1dLVmlldyBuYW1lc09mUHJvbWlzZWRGaWxlc0Ryb3BwZWRBdERlc3RpbmF0
aW9uOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX3N0YXJ0V2luZG93RHJhZ10pOgorICAgICAgICAo
LVtXS1ZpZXcgX3NldE1vdXNlRG93bkV2ZW50Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1Zp
ZXcgX2NvbG9yU3BhY2VdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9kcmFnSW1hZ2VG
b3JWaWV3OndpdGhJbWFnZTphdDpsaW5rRHJhZzpdKTogRGVsZXRlZC4KKyAgICAgICAgKG1hdGNo
ZXNFeHRlbnNpb25PckVxdWl2YWxlbnQpOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3Nl
dEZpbGVBbmRVUkxUeXBlczp3aXRoRXh0ZW5zaW9uOndpdGhUaXRsZTp3aXRoVVJMOndpdGhWaXNp
YmxlVVJMOmZvclBhc3RlYm9hcmQ6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfc2V0
UHJvbWlzZWREYXRhRm9ySW1hZ2U6d2l0aEZpbGVOYW1lOndpdGhFeHRlbnNpb246d2l0aFRpdGxl
OndpdGhVUkw6d2l0aFZpc2libGVVUkw6d2l0aEFyY2hpdmU6Zm9yUGFzdGVib2FyZDpdKTogRGVs
ZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9zZXRQcm9taXNlZERhdGFGb3JBdHRhY2htZW50Ondp
dGhFeHRlbnNpb246d2l0aFRpdGxlOndpdGhVUkw6d2l0aFZpc2libGVVUkw6Zm9yUGFzdGVib2Fy
ZDpdKTogRGVsZXRlZC4KKyAgICAgICAgKGZpbGVFeGlzdHMpOiBEZWxldGVkLgorICAgICAgICAo
cGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgpOiBEZWxldGVkLgorICAgICAgICAoLVtXS1Zp
ZXcgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3
IGhhbmRsZUFjY2VwdGVkQWx0ZXJuYXRpdmVUZXh0Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S1ZpZXcgaW5pdFdpdGhGcmFtZTpwcm9jZXNzUG9vbDpjb25maWd1cmF0aW9uOndlYlZpZXc6XSk6
IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpoYW5kbGVBY2NlcHRlZEFsdGVybmF0aXZlVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpzcGVsbENoZWNrZXJEb2N1bWVudFRhZyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpzdGFydFdpbmRvd0RyYWcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
ZHJhZ0ltYWdlRm9yVmlldyk6CisgICAgICAgIChXZWJLaXQ6Om1hdGNoZXNFeHRlbnNpb25PckVx
dWl2YWxlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0RmlsZUFuZFVSTFR5
cGVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFByb21pc2VkRGF0YUZvcklt
YWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFByb21pc2VkRGF0YUZvckF0
dGFjaG1lbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGFzdGVib2FyZENoYW5n
ZWRPd25lcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwcm92aWRlRGF0YUZvclBh
c3RlYm9hcmQpOgorICAgICAgICAoV2ViS2l0OjpmaWxlRXhpc3RzKToKKyAgICAgICAgKFdlYktp
dDo6cGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6bmFtZXNPZlByb21pc2VkRmlsZXNEcm9wcGVkQXREZXN0aW5hdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRMYXN0TW91c2VEb3duRXZlbnQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvQ29ycmVjdGlvblBhbmVsLmg6CisgICAgICAgICogVUlQcm9jZXNz
L21hYy9Db3JyZWN0aW9uUGFuZWwubW06CisgICAgICAgIChXZWJLaXQ6OkNvcnJlY3Rpb25QYW5l
bDo6c2hvdyk6CisgICAgICAgIChXZWJLaXQ6OkNvcnJlY3Rpb25QYW5lbDo6cmVjb3JkQXV0b2Nv
cnJlY3Rpb25SZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OkNvcnJlY3Rpb25QYW5lbDo6aGFu
ZGxlQWNjZXB0ZWRSZXBsYWNlbWVudCk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xp
ZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmNvbG9yU3BhY2Up
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0RHJhZ0ltYWdlKToKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNldFByb21pc2VkRGF0YUZvckltYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNldFByb21pc2VkRGF0YUZvckF0dGFjaG1l
bnQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2hvd0NvcnJlY3Rpb25QYW5l
bCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZWNvcmRBdXRvY29ycmVjdGlv
blJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNob3dEaWN0YXRp
b25BbHRlcm5hdGl2ZVVJKToKKyAgICAgICAgTW92ZSBzb21lIHBhc3RlYm9hcmQgYW5kIHNwZWxs
Y2hlY2sgY29kZS4KKworMjAxNS0xMC0yNiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFw
cGxlLmNvbT4KKworICAgICAgICBXS1ZpZXcgYmVpbmcgaW5zaWRlIFdLV2ViVmlldyBsZWFkcyB0
byB3ZWlyZCBBUEkgaXNzdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTAxNzQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKICAgICAgICAgKC1bV0tW
aWV3IF9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKToKICAgICAgICAgKC1bV0tW
aWV3IGFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50XSk6CiAgICAgICAgICgtW1dLVmlldyBh
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkXSk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW0KaW5kZXggZmY1MzI5NS4uNTY4MDU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtMTc2LDE0ICsxNzYsNiBAQCBzdHJ1Y3QgV0tW
aWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiAjZW5kaWYKIAogICAgIEJPT0wgX3dp
bGxCZWNvbWVGaXJzdFJlc3BvbmRlckFnYWluOwotICAgIE5TRXZlbnQgKl9tb3VzZURvd25FdmVu
dDsKLQotICAgIEJPT0wgX2hhc1NwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwotICAgIE5TSW50ZWdl
ciBfc3BlbGxDaGVja2VyRG9jdW1lbnRUYWc7Ci0KLSAgICBSZWZQdHI8V2ViQ29yZTo6SW1hZ2U+
IF9wcm9taXNlZEltYWdlOwotICAgIFN0cmluZyBfcHJvbWlzZWRGaWxlbmFtZTsKLSAgICBTdHJp
bmcgX3Byb21pc2VkVVJMOwogCiAgICAgQk9PTCBfd2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5h
YmxlZDsKIApAQCAtODk2LDE3ICs4ODgsNiBAQCBzdGF0aWMgTlNUb29sYmFySXRlbSAqdG9vbGJh
ckl0ZW0oaWQgPE5TVmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+IGl0ZW0pCiAgICAgcmV0dXJu
IFlFUzsKIH0KIAotLSAodm9pZClfc2V0TW91c2VEb3duRXZlbnQ6KE5TRXZlbnQgKilldmVudAot
ewotICAgIEFTU0VSVCghZXZlbnQgfHwgW2V2ZW50IHR5cGVdID09IE5TTGVmdE1vdXNlRG93biB8
fCBbZXZlbnQgdHlwZV0gPT0gTlNSaWdodE1vdXNlRG93biB8fCBbZXZlbnQgdHlwZV0gPT0gTlNP
dGhlck1vdXNlRG93bik7Ci0gICAgCi0gICAgaWYgKGV2ZW50ID09IF9kYXRhLT5fbW91c2VEb3du
RXZlbnQpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAgICBbX2RhdGEtPl9tb3VzZURvd25FdmVu
dCByZWxlYXNlXTsKLSAgICBfZGF0YS0+X21vdXNlRG93bkV2ZW50ID0gW2V2ZW50IHJldGFpbl07
Ci19Ci0KICNpZiBVU0UoQVNZTkNfTlNURVhUSU5QVVRDTElFTlQpCiAjZGVmaW5lIE5BVElWRV9N
T1VTRV9FVkVOVF9IQU5ETEVSKFNlbGVjdG9yKSBcCiAgICAgLSAodm9pZClTZWxlY3RvcjooTlNF
dmVudCAqKXRoZUV2ZW50IFwKQEAgLTEwMTYsNyArOTk3LDcgQEAgTkFUSVZFX01PVVNFX0VWRU5U
X0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCiAgICAgaWYgKF9kYXRhLT5f
aW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFtz
ZWxmIF9zZXRNb3VzZURvd25FdmVudDpldmVudF07CisgICAgX2RhdGEtPl9pbXBsLT5zZXRMYXN0
TW91c2VEb3duRXZlbnQoZXZlbnQpOwogICAgIF9kYXRhLT5faW1wbC0+c2V0SWdub3Jlc01vdXNl
RHJhZ2dlZEV2ZW50cyhmYWxzZSk7CiAKICAgICBbc2VsZiBtb3VzZURvd25JbnRlcm5hbDpldmVu
dF07CkBAIC0xMDI3LDcgKzEwMDgsNyBAQCBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRF
Uk5BTChtb3VzZURyYWdnZWRJbnRlcm5hbCkKICAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVz
Tm9uV2hlZWxFdmVudHMoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgW3NlbGYgX3NldE1vdXNl
RG93bkV2ZW50Om5pbF07CisgICAgX2RhdGEtPl9pbXBsLT5zZXRMYXN0TW91c2VEb3duRXZlbnQo
bmlsKTsKICAgICBbc2VsZiBtb3VzZVVwSW50ZXJuYWw6ZXZlbnRdOwogfQogCkBAIC0xMDU2LDkg
KzEwMzcsOSBAQCBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRFUk5BTChtb3VzZURyYWdn
ZWRJbnRlcm5hbCkKICAgICBpZiAoIVtzZWxmIGhpdFRlc3Q6W2V2ZW50IGxvY2F0aW9uSW5XaW5k
b3ddXSkKICAgICAgICAgcmV0dXJuIE5POwogICAgIAotICAgIFtzZWxmIF9zZXRNb3VzZURvd25F
dmVudDpldmVudF07CisgICAgX2RhdGEtPl9pbXBsLT5zZXRMYXN0TW91c2VEb3duRXZlbnQoZXZl
bnQpOwogICAgIGJvb2wgcmVzdWx0ID0gX2RhdGEtPl9wYWdlLT5hY2NlcHRzRmlyc3RNb3VzZShb
ZXZlbnQgZXZlbnROdW1iZXJdLCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQo
ZXZlbnQsIF9kYXRhLT5faW1wbC0+bGFzdFByZXNzdXJlRXZlbnQoKSwgc2VsZikpOwotICAgIFtz
ZWxmIF9zZXRNb3VzZURvd25FdmVudDpuaWxdOworICAgIF9kYXRhLT5faW1wbC0+c2V0TGFzdE1v
dXNlRG93bkV2ZW50KG5pbCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApAQCAtMTA3Nyw5ICsx
MDU4LDkgQEAgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2Vk
SW50ZXJuYWwpCiAgICAgaWYgKCFbc2VsZiBoaXRUZXN0OltldmVudCBsb2NhdGlvbkluV2luZG93
XV0pCiAgICAgICAgIHJldHVybiBOTzsKICAgICAKLSAgICBbc2VsZiBfc2V0TW91c2VEb3duRXZl
bnQ6ZXZlbnRdOworICAgIF9kYXRhLT5faW1wbC0+c2V0TGFzdE1vdXNlRG93bkV2ZW50KGV2ZW50
KTsKICAgICBib29sIHJlc3VsdCA9IF9kYXRhLT5fcGFnZS0+c2hvdWxkRGVsYXlXaW5kb3dPcmRl
cmluZ0ZvckV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChldmVudCwg
X2RhdGEtPl9pbXBsLT5sYXN0UHJlc3N1cmVFdmVudCgpLCBzZWxmKSk7Ci0gICAgW3NlbGYgX3Nl
dE1vdXNlRG93bkV2ZW50Om5pbF07CisgICAgX2RhdGEtPl9pbXBsLT5zZXRMYXN0TW91c2VEb3du
RXZlbnQobmlsKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCkBAIC0yMjIwLDExICsyMjAxLDYg
QEAgc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJp
bmcsIFZlY3RvcjxDb21wb3NpdGlvblVuZGUKICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5PigqX2RhdGEtPl9wYWdlKTsKIH0KIAot
LSAoV2ViS2l0OjpDb2xvclNwYWNlRGF0YSlfY29sb3JTcGFjZQotewotICAgIHJldHVybiBfZGF0
YS0+X2ltcGwtPmNvbG9yU3BhY2UoKTsKLX0KLQogLSAodm9pZClfcHJvY2Vzc0RpZEV4aXQKIHsK
ICAgICBfZGF0YS0+X2ltcGwtPm5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9z
aXRpb24oKTsKQEAgLTIzMzIsMTYxICsyMzA4LDE5IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRl
cmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRl
CiAgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+c3RyaW5nRm9yVG9vbFRpcCh0YWcpOwogfQogCi0t
ICh2b2lkKV9kcmFnSW1hZ2VGb3JWaWV3OihOU1ZpZXcgKil2aWV3IHdpdGhJbWFnZTooTlNJbWFn
ZSAqKWltYWdlIGF0OihOU1BvaW50KWNsaWVudFBvaW50IGxpbmtEcmFnOihCT09MKWxpbmtEcmFn
Ci17Ci0gICAgLy8gVGhlIGNhbGwgYmVsb3cgY291bGQgcmVsZWFzZSB0aGlzIFdLVmlldy4KLSAg
ICBSZXRhaW5QdHI8V0tWaWV3PiBwcm90ZWN0b3Ioc2VsZik7Ci0KLSNwcmFnbWEgY2xhbmcgZGlh
Z25vc3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLWRlY2xhcmF0aW9ucyIKLSAgICBbdmlldyBkcmFnSW1hZ2U6aW1hZ2UKLSAgICAgICAgICAg
ICAgICAgYXQ6Y2xpZW50UG9pbnQKLSAgICAgICAgICAgICBvZmZzZXQ6TlNaZXJvU2l6ZQotICAg
ICAgICAgICAgICBldmVudDoobGlua0RyYWcpID8gW05TQXBwIGN1cnJlbnRFdmVudF0gOiBfZGF0
YS0+X21vdXNlRG93bkV2ZW50Ci0gICAgICAgICBwYXN0ZWJvYXJkOltOU1Bhc3RlYm9hcmQgcGFz
dGVib2FyZFdpdGhOYW1lOk5TRHJhZ1Bib2FyZF0KLSAgICAgICAgICAgICBzb3VyY2U6c2VsZgot
ICAgICAgICAgIHNsaWRlQmFjazpZRVNdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAot
fQotCi1zdGF0aWMgYm9vbCBtYXRjaGVzRXh0ZW5zaW9uT3JFcXVpdmFsZW50KE5TU3RyaW5nICpm
aWxlbmFtZSwgTlNTdHJpbmcgKmV4dGVuc2lvbikKLXsKLSAgICBOU1N0cmluZyAqZXh0ZW5zaW9u
QXNTdWZmaXggPSBbQCIuIiBzdHJpbmdCeUFwcGVuZGluZ1N0cmluZzpleHRlbnNpb25dOwotICAg
IHJldHVybiBoYXNDYXNlSW5zZW5zaXRpdmVTdWZmaXgoZmlsZW5hbWUsIGV4dGVuc2lvbkFzU3Vm
Zml4KSB8fCAoc3RyaW5nSXNDYXNlSW5zZW5zaXRpdmVFcXVhbFRvU3RyaW5nKGV4dGVuc2lvbiwg
QCJqcGVnIikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICYmIGhhc0Nhc2VJbnNlbnNpdGl2ZVN1ZmZpeChmaWxlbmFt
ZSwgQCIuanBnIikpOwotfQotCi0tICh2b2lkKV9zZXRGaWxlQW5kVVJMVHlwZXM6KE5TU3RyaW5n
ICopZmlsZW5hbWUgd2l0aEV4dGVuc2lvbjooTlNTdHJpbmcgKilleHRlbnNpb24gd2l0aFRpdGxl
OihOU1N0cmluZyAqKXRpdGxlIHdpdGhVUkw6KE5TU3RyaW5nICopdXJsIHdpdGhWaXNpYmxlVVJM
OihOU1N0cmluZyAqKXZpc2libGVVcmwgZm9yUGFzdGVib2FyZDooTlNQYXN0ZWJvYXJkICopcGFz
dGVib2FyZAotewotICAgIGlmICghbWF0Y2hlc0V4dGVuc2lvbk9yRXF1aXZhbGVudChmaWxlbmFt
ZSwgZXh0ZW5zaW9uKSkKLSAgICAgICAgZmlsZW5hbWUgPSBbW2ZpbGVuYW1lIHN0cmluZ0J5QXBw
ZW5kaW5nU3RyaW5nOkAiLiJdIHN0cmluZ0J5QXBwZW5kaW5nU3RyaW5nOmV4dGVuc2lvbl07Ci0g
ICAgCi0gICAgW3Bhc3RlYm9hcmQgc2V0U3RyaW5nOnZpc2libGVVcmwgZm9yVHlwZTpOU1N0cmlu
Z1Bib2FyZFR5cGVdOwotICAgIFtwYXN0ZWJvYXJkIHNldFN0cmluZzp2aXNpYmxlVXJsIGZvclR5
cGU6UGFzdGVib2FyZFR5cGVzOjpXZWJVUkxQYm9hcmRUeXBlXTsKLSAgICBbcGFzdGVib2FyZCBz
ZXRTdHJpbmc6dGl0bGUgZm9yVHlwZTpQYXN0ZWJvYXJkVHlwZXM6OldlYlVSTE5hbWVQYm9hcmRU
eXBlXTsKLSAgICBbcGFzdGVib2FyZCBzZXRQcm9wZXJ0eUxpc3Q6W05TQXJyYXkgYXJyYXlXaXRo
T2JqZWN0czpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6dmlzaWJsZVVybF0sIFtOU0FycmF5IGFy
cmF5V2l0aE9iamVjdDp0aXRsZV0sIG5pbF0gZm9yVHlwZTpQYXN0ZWJvYXJkVHlwZXM6OldlYlVS
THNXaXRoVGl0bGVzUGJvYXJkVHlwZV07Ci0gICAgW3Bhc3RlYm9hcmQgc2V0UHJvcGVydHlMaXN0
OltOU0FycmF5IGFycmF5V2l0aE9iamVjdDpleHRlbnNpb25dIGZvclR5cGU6TlNGaWxlc1Byb21p
c2VQYm9hcmRUeXBlXTsKLSAgICBfZGF0YS0+X3Byb21pc2VkRmlsZW5hbWUgPSBmaWxlbmFtZTsK
LSAgICBfZGF0YS0+X3Byb21pc2VkVVJMID0gdXJsOwotfQotCi0tICh2b2lkKV9zZXRQcm9taXNl
ZERhdGFGb3JJbWFnZTooV2ViQ29yZTo6SW1hZ2UgKilpbWFnZSB3aXRoRmlsZU5hbWU6KE5TU3Ry
aW5nICopZmlsZW5hbWUgd2l0aEV4dGVuc2lvbjooTlNTdHJpbmcgKilleHRlbnNpb24gd2l0aFRp
dGxlOihOU1N0cmluZyAqKXRpdGxlIHdpdGhVUkw6KE5TU3RyaW5nICopdXJsIHdpdGhWaXNpYmxl
VVJMOihOU1N0cmluZyAqKXZpc2libGVVcmwgd2l0aEFyY2hpdmU6KFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlciopIGFyY2hpdmVCdWZmZXIgZm9yUGFzdGVib2FyZDooTlNTdHJpbmcgKilwYXN0ZWJvYXJk
TmFtZQotCi17Ci0gICAgTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkID0gW05TUGFzdGVib2FyZCBw
YXN0ZWJvYXJkV2l0aE5hbWU6cGFzdGVib2FyZE5hbWVdOwotICAgIFJldGFpblB0cjxOU011dGFi
bGVBcnJheT4gdHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRo
T2JqZWN0czpOU0ZpbGVzUHJvbWlzZVBib2FyZFR5cGUsIG5pbF0pOwotICAgIAotICAgIFt0eXBl
cyBhZGRPYmplY3RzRnJvbUFycmF5OmFyY2hpdmVCdWZmZXIgPyBQYXN0ZWJvYXJkVHlwZXM6OmZv
ckltYWdlc1dpdGhBcmNoaXZlKCkgOiBQYXN0ZWJvYXJkVHlwZXM6OmZvckltYWdlcygpXTsKLSAg
ICBbcGFzdGVib2FyZCBkZWNsYXJlVHlwZXM6dHlwZXMuZ2V0KCkgb3duZXI6c2VsZl07Ci0gICAg
W3NlbGYgX3NldEZpbGVBbmRVUkxUeXBlczpmaWxlbmFtZSB3aXRoRXh0ZW5zaW9uOmV4dGVuc2lv
biB3aXRoVGl0bGU6dGl0bGUgd2l0aFVSTDp1cmwgd2l0aFZpc2libGVVUkw6dmlzaWJsZVVybCBm
b3JQYXN0ZWJvYXJkOnBhc3RlYm9hcmRdOwotCi0gICAgaWYgKGFyY2hpdmVCdWZmZXIpCi0gICAg
ICAgIFtwYXN0ZWJvYXJkIHNldERhdGE6YXJjaGl2ZUJ1ZmZlci0+Y3JlYXRlTlNEYXRhKCkuZ2V0
KCkgZm9yVHlwZTpQYXN0ZWJvYXJkVHlwZXM6OldlYkFyY2hpdmVQYm9hcmRUeXBlXTsKLQotICAg
IF9kYXRhLT5fcHJvbWlzZWRJbWFnZSA9IGltYWdlOwotfQotCi0jaWYgRU5BQkxFKEFUVEFDSE1F
TlRfRUxFTUVOVCkKLS0gKHZvaWQpX3NldFByb21pc2VkRGF0YUZvckF0dGFjaG1lbnQ6KE5TU3Ry
aW5nICopZmlsZW5hbWUgd2l0aEV4dGVuc2lvbjooTlNTdHJpbmcgKilleHRlbnNpb24gd2l0aFRp
dGxlOihOU1N0cmluZyAqKXRpdGxlIHdpdGhVUkw6KE5TU3RyaW5nICopdXJsIHdpdGhWaXNpYmxl
VVJMOihOU1N0cmluZyAqKXZpc2libGVVcmwgZm9yUGFzdGVib2FyZDooTlNTdHJpbmcgKilwYXN0
ZWJvYXJkTmFtZQotCi17Ci0gICAgTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkID0gW05TUGFzdGVi
b2FyZCBwYXN0ZWJvYXJkV2l0aE5hbWU6cGFzdGVib2FyZE5hbWVdOwotICAgIFJldGFpblB0cjxO
U011dGFibGVBcnJheT4gdHlwZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGlu
aXRXaXRoT2JqZWN0czpOU0ZpbGVzUHJvbWlzZVBib2FyZFR5cGUsIG5pbF0pOwotICAgIFt0eXBl
cyBhZGRPYmplY3RzRnJvbUFycmF5OlBhc3RlYm9hcmRUeXBlczo6Zm9yVVJMKCldOwotICAgIFtw
YXN0ZWJvYXJkIGRlY2xhcmVUeXBlczp0eXBlcy5nZXQoKSBvd25lcjpzZWxmXTsKLSAgICBbc2Vs
ZiBfc2V0RmlsZUFuZFVSTFR5cGVzOmZpbGVuYW1lIHdpdGhFeHRlbnNpb246ZXh0ZW5zaW9uIHdp
dGhUaXRsZTp0aXRsZSB3aXRoVVJMOnVybCB3aXRoVmlzaWJsZVVSTDp2aXNpYmxlVXJsIGZvclBh
c3RlYm9hcmQ6cGFzdGVib2FyZF07Ci0KLSAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk+IHBh
dGhzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7Ci0gICAgW3BhdGhz
IGFkZE9iamVjdDp0aXRsZV07Ci0gICAgW3Bhc3RlYm9hcmQgc2V0UHJvcGVydHlMaXN0OnBhdGhz
LmdldCgpIGZvclR5cGU6TlNGaWxlbmFtZXNQYm9hcmRUeXBlXTsKLQotICAgIF9kYXRhLT5fcHJv
bWlzZWRJbWFnZSA9IG51bGxwdHI7Ci19Ci0jZW5kaWYKLQogLSAodm9pZClwYXN0ZWJvYXJkQ2hh
bmdlZE93bmVyOihOU1Bhc3RlYm9hcmQgKilwYXN0ZWJvYXJkCiB7Ci0gICAgX2RhdGEtPl9wcm9t
aXNlZEltYWdlID0gbnVsbHB0cjsKLSAgICBfZGF0YS0+X3Byb21pc2VkRmlsZW5hbWUgPSAiIjsK
LSAgICBfZGF0YS0+X3Byb21pc2VkVVJMID0gIiI7CisgICAgX2RhdGEtPl9pbXBsLT5wYXN0ZWJv
YXJkQ2hhbmdlZE93bmVyKHBhc3RlYm9hcmQpOwogfQogCiAtICh2b2lkKXBhc3RlYm9hcmQ6KE5T
UGFzdGVib2FyZCAqKXBhc3RlYm9hcmQgcHJvdmlkZURhdGFGb3JUeXBlOihOU1N0cmluZyAqKXR5
cGUKIHsKLSAgICAvLyBGSVhNRTogbmVlZCB0byBzdXBwb3J0IE5TUlRGRFBib2FyZFR5cGUKLQot
ICAgIGlmIChbdHlwZSBpc0VxdWFsOk5TVElGRlBib2FyZFR5cGVdICYmIF9kYXRhLT5fcHJvbWlz
ZWRJbWFnZSkgewotICAgICAgICBbcGFzdGVib2FyZCBzZXREYXRhOihOU0RhdGEgKilfZGF0YS0+
X3Byb21pc2VkSW1hZ2UtPmdldFRJRkZSZXByZXNlbnRhdGlvbigpIGZvclR5cGU6TlNUSUZGUGJv
YXJkVHlwZV07Ci0gICAgICAgIF9kYXRhLT5fcHJvbWlzZWRJbWFnZSA9IG51bGxwdHI7Ci0gICAg
fQotfQotCi1zdGF0aWMgQk9PTCBmaWxlRXhpc3RzKE5TU3RyaW5nICpwYXRoKQotewotICAgIHN0
cnVjdCBzdGF0IHN0YXRCdWZmZXI7Ci0gICAgcmV0dXJuICFsc3RhdChbcGF0aCBmaWxlU3lzdGVt
UmVwcmVzZW50YXRpb25dLCAmc3RhdEJ1ZmZlcik7Ci19Ci0KLXN0YXRpYyBOU1N0cmluZyAqcGF0
aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgoTlNTdHJpbmcgKnBhdGgpCi17Ci0gICAgLy8gIkZp
eCIgdGhlIGZpbGVuYW1lIG9mIHRoZSBwYXRoLgotICAgIE5TU3RyaW5nICpmaWxlbmFtZSA9IGZp
bGVuYW1lQnlGaXhpbmdJbGxlZ2FsQ2hhcmFjdGVycyhbcGF0aCBsYXN0UGF0aENvbXBvbmVudF0p
OwotICAgIHBhdGggPSBbW3BhdGggc3RyaW5nQnlEZWxldGluZ0xhc3RQYXRoQ29tcG9uZW50XSBz
dHJpbmdCeUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6ZmlsZW5hbWVdOwotICAgIAotICAgIGlmIChm
aWxlRXhpc3RzKHBhdGgpKSB7Ci0gICAgICAgIC8vIERvbid0IG92ZXJ3cml0ZSBleGlzdGluZyBm
aWxlIGJ5IGFwcGVuZGluZyAiLW4iLCAiLW4uZXh0IiBvciAiLW4uZXh0LmV4dCIgdG8gdGhlIGZp
bGVuYW1lLgotICAgICAgICBOU1N0cmluZyAqZXh0ZW5zaW9ucyA9IG5pbDsKLSAgICAgICAgTlNT
dHJpbmcgKnBhdGhXaXRob3V0RXh0ZW5zaW9uczsKLSAgICAgICAgTlNTdHJpbmcgKmxhc3RQYXRo
Q29tcG9uZW50ID0gW3BhdGggbGFzdFBhdGhDb21wb25lbnRdOwotICAgICAgICBOU1JhbmdlIHBl
cmlvZFJhbmdlID0gW2xhc3RQYXRoQ29tcG9uZW50IHJhbmdlT2ZTdHJpbmc6QCIuIl07Ci0gICAg
ICAgIAotICAgICAgICBpZiAocGVyaW9kUmFuZ2UubG9jYXRpb24gPT0gTlNOb3RGb3VuZCkgewot
ICAgICAgICAgICAgcGF0aFdpdGhvdXRFeHRlbnNpb25zID0gcGF0aDsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIGV4dGVuc2lvbnMgPSBbbGFzdFBhdGhDb21wb25lbnQgc3Vic3RyaW5n
RnJvbUluZGV4OnBlcmlvZFJhbmdlLmxvY2F0aW9uICsgMV07Ci0gICAgICAgICAgICBsYXN0UGF0
aENvbXBvbmVudCA9IFtsYXN0UGF0aENvbXBvbmVudCBzdWJzdHJpbmdUb0luZGV4OnBlcmlvZFJh
bmdlLmxvY2F0aW9uXTsKLSAgICAgICAgICAgIHBhdGhXaXRob3V0RXh0ZW5zaW9ucyA9IFtbcGF0
aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhDb21wb25lbnRdIHN0cmluZ0J5QXBwZW5kaW5nUGF0
aENvbXBvbmVudDpsYXN0UGF0aENvbXBvbmVudF07Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAg
ICAgIGZvciAodW5zaWduZWQgaSA9IDE7IDsgaSsrKSB7Ci0gICAgICAgICAgICBOU1N0cmluZyAq
cGF0aFdpdGhBcHBlbmRlZE51bWJlciA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAiJUAt
JWQiLCBwYXRoV2l0aG91dEV4dGVuc2lvbnMsIGldOwotICAgICAgICAgICAgcGF0aCA9IFtleHRl
bnNpb25zIGxlbmd0aF0gPyBbcGF0aFdpdGhBcHBlbmRlZE51bWJlciBzdHJpbmdCeUFwcGVuZGlu
Z1BhdGhFeHRlbnNpb246ZXh0ZW5zaW9uc10gOiBwYXRoV2l0aEFwcGVuZGVkTnVtYmVyOwotICAg
ICAgICAgICAgaWYgKCFmaWxlRXhpc3RzKHBhdGgpKQotICAgICAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICB9Ci0gICAgfQotICAgIAotICAgIHJldHVybiBwYXRoOworICAgIF9kYXRhLT5faW1w
bC0+cHJvdmlkZURhdGFGb3JQYXN0ZWJvYXJkKHBhc3RlYm9hcmQsIHR5cGUpOwogfQogCiAtIChO
U0FycmF5ICopbmFtZXNPZlByb21pc2VkRmlsZXNEcm9wcGVkQXREZXN0aW5hdGlvbjooTlNVUkwg
Kilkcm9wRGVzdGluYXRpb24KIHsKLSAgICBSZXRhaW5QdHI8TlNGaWxlV3JhcHBlcj4gd3JhcHBl
cjsKLSAgICBSZXRhaW5QdHI8TlNEYXRhPiBkYXRhOwotICAgIAotICAgIGlmIChfZGF0YS0+X3By
b21pc2VkSW1hZ2UpIHsKLSAgICAgICAgZGF0YSA9IF9kYXRhLT5fcHJvbWlzZWRJbWFnZS0+ZGF0
YSgpLT5jcmVhdGVOU0RhdGEoKTsKLSAgICAgICAgd3JhcHBlciA9IGFkb3B0TlMoW1tOU0ZpbGVX
cmFwcGVyIGFsbG9jXSBpbml0UmVndWxhckZpbGVXaXRoQ29udGVudHM6ZGF0YS5nZXQoKV0pOwot
ICAgIH0gZWxzZQotICAgICAgICB3cmFwcGVyID0gYWRvcHROUyhbW05TRmlsZVdyYXBwZXIgYWxs
b2NdIGluaXRXaXRoVVJMOltOU1VSTCBVUkxXaXRoU3RyaW5nOl9kYXRhLT5fcHJvbWlzZWRVUkxd
IG9wdGlvbnM6TlNGaWxlV3JhcHBlclJlYWRpbmdJbW1lZGlhdGUgZXJyb3I6bmlsXSk7Ci0gICAg
Ci0gICAgaWYgKHdyYXBwZXIpCi0gICAgICAgIFt3cmFwcGVyIHNldFByZWZlcnJlZEZpbGVuYW1l
Ol9kYXRhLT5fcHJvbWlzZWRGaWxlbmFtZV07Ci0gICAgZWxzZSB7Ci0gICAgICAgIExPR19FUlJP
UigiRmFpbGVkIHRvIGNyZWF0ZSBpbWFnZSBmaWxlLiIpOwotICAgICAgICByZXR1cm4gbmlsOwot
ICAgIH0KLSAgICAKLSAgICAvLyBGSVhNRTogUmVwb3J0IGFuIGVycm9yIGlmIHdlIGZhaWwgdG8g
Y3JlYXRlIGEgZmlsZS4KLSAgICBOU1N0cmluZyAqcGF0aCA9IFtbZHJvcERlc3RpbmF0aW9uIHBh
dGhdIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpbd3JhcHBlciBwcmVmZXJyZWRGaWxl
bmFtZV1dOwotICAgIHBhdGggPSBwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChwYXRoKTsK
LSAgICBpZiAoIVt3cmFwcGVyIHdyaXRlVG9VUkw6W05TVVJMIGZpbGVVUkxXaXRoUGF0aDpwYXRo
XSBvcHRpb25zOk5TRmlsZVdyYXBwZXJXcml0aW5nV2l0aE5hbWVVcGRhdGluZyBvcmlnaW5hbENv
bnRlbnRzVVJMOm5pbCBlcnJvcjpudWxscHRyXSkKLSAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQg
dG8gY3JlYXRlIGltYWdlIGZpbGUgdmlhIC1bTlNGaWxlV3JhcHBlciB3cml0ZVRvVVJMOm9wdGlv
bnM6b3JpZ2luYWxDb250ZW50c1VSTDplcnJvcjpdIik7Ci0KLSAgICBpZiAoIV9kYXRhLT5fcHJv
bWlzZWRVUkwuaXNFbXB0eSgpKQotICAgICAgICBXZWJDb3JlOjpzZXRNZXRhZGF0YVVSTChfZGF0
YS0+X3Byb21pc2VkVVJMLCAiIiwgU3RyaW5nKHBhdGgpKTsKLSAgICAKLSAgICByZXR1cm4gW05T
QXJyYXkgYXJyYXlXaXRoT2JqZWN0OltwYXRoIGxhc3RQYXRoQ29tcG9uZW50XV07CisgICAgcmV0
dXJuIF9kYXRhLT5faW1wbC0+bmFtZXNPZlByb21pc2VkRmlsZXNEcm9wcGVkQXREZXN0aW5hdGlv
bihkcm9wRGVzdGluYXRpb24pOwogfQogCiAtIChib29sKV9leGVjdXRlU2F2ZWRDb21tYW5kQnlT
ZWxlY3RvcjooU0VMKXNlbGVjdG9yCkBAIC0yNTAwLDIwICsyMzM0LDYgQEAgc3RhdGljIE5TU3Ry
aW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKICAgICBy
ZXR1cm4gIVtzaW5rIGRpZFJlY2VpdmVVbmhhbmRsZWRDb21tYW5kXTsKIH0KIAotLSAoTlNJbnRl
Z2VyKXNwZWxsQ2hlY2tlckRvY3VtZW50VGFnCi17Ci0gICAgaWYgKCFfZGF0YS0+X2hhc1NwZWxs
Q2hlY2tlckRvY3VtZW50VGFnKSB7Ci0gICAgICAgIF9kYXRhLT5fc3BlbGxDaGVja2VyRG9jdW1l
bnRUYWcgPSBbTlNTcGVsbENoZWNrZXIgdW5pcXVlU3BlbGxEb2N1bWVudFRhZ107Ci0gICAgICAg
IF9kYXRhLT5faGFzU3BlbGxDaGVja2VyRG9jdW1lbnRUYWcgPSBZRVM7Ci0gICAgfQotICAgIHJl
dHVybiBfZGF0YS0+X3NwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwotfQotCi0tICh2b2lkKWhhbmRs
ZUFjY2VwdGVkQWx0ZXJuYXRpdmVUZXh0OihOU1N0cmluZyopdGV4dAotewotICAgIF9kYXRhLT5f
cGFnZS0+aGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQodGV4dCk7Ci19Ci0KIC0gKGluc3Rh
bmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgcHJvY2Vzc1Bvb2w6KFdlYlByb2Nl
c3NQb29sJilwcm9jZXNzUG9vbCBjb25maWd1cmF0aW9uOihSZWY8QVBJOjpQYWdlQ29uZmlndXJh
dGlvbj4mJiljb25maWd1cmF0aW9uIHdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcKIHsKICAg
ICBzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdOwpAQCAtMjUzNiw3ICsyMzU2LDYg
QEAgc3RhdGljIE5TU3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmlu
ZyAqcGF0aCkKIAogICAgIF9kYXRhLT5fcGFnZS0+aW5pdGlhbGl6ZVdlYlBhZ2UoKTsKIAotICAg
IF9kYXRhLT5fbW91c2VEb3duRXZlbnQgPSBuaWw7CiAgICAgX2RhdGEtPl93aW5kb3dPY2NsdXNp
b25EZXRlY3Rpb25FbmFibGVkID0gWUVTOwogCiAgICAgX2RhdGEtPl9pbXBsLT5yZWdpc3RlckRy
YWdnZWRUeXBlcygpOwpAQCAtMjU4Myw3ICsyNDAyLDcgQEAgc3RhdGljIE5TU3RyaW5nICpwYXRo
V2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKICNpZiBfX01BQ19PU19Y
X1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAogLSAodm9pZClfc3RhcnRXaW5kb3dEcmFn
CiB7Ci0gICAgW1tzZWxmIHdpbmRvd10gcGVyZm9ybVdpbmRvd0RyYWdXaXRoRXZlbnQ6X2RhdGEt
Pl9tb3VzZURvd25FdmVudF07CisgICAgX2RhdGEtPl9pbXBsLT5zdGFydFdpbmRvd0RyYWcoKTsK
IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3SW50ZXJuYWwuaAppbmRleCBmNzRhOTdlLi4wOGZjN2QwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKQEAgLTM3LDE5ICszNyw5
IEBAIG5hbWVzcGFjZSBBUEkgewogY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247CiB9CiAKLW5hbWVz
cGFjZSBJUEMgewotY2xhc3MgRGF0YVJlZmVyZW5jZTsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotY2xhc3MgSW1hZ2U7Ci1jbGFzcyBTaGFyZWRCdWZmZXI7Ci19Ci0KIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgRHJhd2luZ0FyZWFQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwotc3Ry
dWN0IENvbG9yU3BhY2VEYXRhOwogfQogCiBAY2xhc3MgV0tXZWJWaWV3OwpAQCAtNzIsMTcgKzYy
LDYgQEAgc3RydWN0IENvbG9yU3BhY2VEYXRhOwogLSAoTlNSZWN0KV9jb252ZXJ0VG9EZXZpY2VT
cGFjZTooTlNSZWN0KXJlY3Q7CiAtIChOU1JlY3QpX2NvbnZlcnRUb1VzZXJTcGFjZTooTlNSZWN0
KXJlY3Q7CiAKLS0gKHZvaWQpX2RyYWdJbWFnZUZvclZpZXc6KE5TVmlldyAqKXZpZXcgd2l0aElt
YWdlOihOU0ltYWdlICopaW1hZ2UgYXQ6KE5TUG9pbnQpY2xpZW50UG9pbnQgbGlua0RyYWc6KEJP
T0wpbGlua0RyYWc7Ci0tICh2b2lkKV9zZXRQcm9taXNlZERhdGFGb3JJbWFnZTooV2ViQ29yZTo6
SW1hZ2UgKilpbWFnZSB3aXRoRmlsZU5hbWU6KE5TU3RyaW5nICopZmlsZW5hbWUgd2l0aEV4dGVu
c2lvbjooTlNTdHJpbmcgKilleHRlbnNpb24gd2l0aFRpdGxlOihOU1N0cmluZyAqKXRpdGxlIHdp
dGhVUkw6KE5TU3RyaW5nICopdXJsIHdpdGhWaXNpYmxlVVJMOihOU1N0cmluZyAqKXZpc2libGVV
cmwgd2l0aEFyY2hpdmU6KFdlYkNvcmU6OlNoYXJlZEJ1ZmZlciopIGFyY2hpdmVCdWZmZXIgZm9y
UGFzdGVib2FyZDooTlNTdHJpbmcgKilwYXN0ZWJvYXJkTmFtZTsKLSNpZiBFTkFCTEUoQVRUQUNI
TUVOVF9FTEVNRU5UKQotLSAodm9pZClfc2V0UHJvbWlzZWREYXRhRm9yQXR0YWNobWVudDooTlNT
dHJpbmcgKilmaWxlbmFtZSB3aXRoRXh0ZW5zaW9uOihOU1N0cmluZyAqKWV4dGVuc2lvbiB3aXRo
VGl0bGU6KE5TU3RyaW5nICopdGl0bGUgd2l0aFVSTDooTlNTdHJpbmcgKil1cmwgd2l0aFZpc2li
bGVVUkw6KE5TU3RyaW5nICopdmlzaWJsZVVybCBmb3JQYXN0ZWJvYXJkOihOU1N0cmluZyAqKXBh
c3RlYm9hcmROYW1lOwotI2VuZGlmCi0KLS0gKFdlYktpdDo6Q29sb3JTcGFjZURhdGEpX2NvbG9y
U3BhY2U7Ci0KLS0gKE5TSW50ZWdlcilzcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKLS0gKHZvaWQp
aGFuZGxlQWNjZXB0ZWRBbHRlcm5hdGl2ZVRleHQ6KE5TU3RyaW5nKil0ZXh0OwotCiAjaWYgV0tf
QVBJX0VOQUJMRUQKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFRodW1ibmFpbFZp
ZXc6KSBfV0tUaHVtYm5haWxWaWV3ICpfdGh1bWJuYWlsVmlldzsKICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCBmZTBlN2ExLi5jZDg5
ZTU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApA
QCAtMTc2LDYgKzE3Niw5IEBAIHB1YmxpYzoKICAgICBib29sIHRyeVBvc3RQcm9jZXNzUGx1Z2lu
Q29tcGxleFRleHRJbnB1dEtleURvd24oTlNFdmVudCAqKTsKICAgICBQbHVnaW5Db21wbGV4VGV4
dElucHV0U3RhdGUgcGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKCkgY29uc3QgeyByZXR1cm4g
bV9wbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGU7IH0KICAgICB1aW50NjRfdCBwbHVnaW5Db21w
bGV4VGV4dElucHV0SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcGx1Z2luQ29tcGxleFRl
eHRJbnB1dElkZW50aWZpZXI7IH0KKyAgICAKKyAgICB2b2lkIGhhbmRsZUFjY2VwdGVkQWx0ZXJu
YXRpdmVUZXh0KGNvbnN0IFN0cmluZyYpOworICAgIE5TSW50ZWdlciBzcGVsbENoZWNrZXJEb2N1
bWVudFRhZygpOwogCiAgICAgdm9pZCBwcmVzc3VyZUNoYW5nZVdpdGhFdmVudChOU0V2ZW50ICop
OwogICAgIE5TRXZlbnQgKmxhc3RQcmVzc3VyZUV2ZW50KCkgeyByZXR1cm4gbV9sYXN0UHJlc3N1
cmVFdmVudC5nZXQoKTsgfQpAQCAtMjY2LDYgKzI2OSwyMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBy
ZWdpc3RlckRyYWdnZWRUeXBlcygpOwogI2VuZGlmCiAKKyNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTEwMAorICAgIHZvaWQgc3RhcnRXaW5kb3dEcmFnKCk7CisjZW5k
aWYKKworICAgIHZvaWQgZHJhZ0ltYWdlRm9yVmlldyhOU1ZpZXcgKiwgTlNJbWFnZSAqLCBDR1Bv
aW50IGNsaWVudFBvaW50LCBib29sIGxpbmtEcmFnKTsKKyAgICB2b2lkIHNldEZpbGVBbmRVUkxU
eXBlcyhOU1N0cmluZyAqZmlsZW5hbWUsIE5TU3RyaW5nICpleHRlbnNpb24sIE5TU3RyaW5nICp0
aXRsZSwgTlNTdHJpbmcgKnVybCwgTlNTdHJpbmcgKnZpc2libGVVUkwsIE5TUGFzdGVib2FyZCAq
KTsKKyAgICB2b2lkIHNldFByb21pc2VkRGF0YUZvckltYWdlKFdlYkNvcmU6OkltYWdlKiwgTlNT
dHJpbmcgKmZpbGVuYW1lLCBOU1N0cmluZyAqZXh0ZW5zaW9uLCBOU1N0cmluZyAqdGl0bGUsIE5T
U3RyaW5nICp1cmwsIE5TU3RyaW5nICp2aXNpYmxlVVJMLCBXZWJDb3JlOjpTaGFyZWRCdWZmZXIq
IGFyY2hpdmVCdWZmZXIsIE5TU3RyaW5nICpwYXN0ZWJvYXJkTmFtZSk7CisjaWYgRU5BQkxFKEFU
VEFDSE1FTlRfRUxFTUVOVCkKKyAgICB2b2lkIHNldFByb21pc2VkRGF0YUZvckF0dGFjaG1lbnQo
TlNTdHJpbmcgKmZpbGVuYW1lLCBOU1N0cmluZyAqZXh0ZW5zaW9uLCBOU1N0cmluZyAqdGl0bGUs
IE5TU3RyaW5nICp1cmwsIE5TU3RyaW5nICp2aXNpYmxlVVJMLCBOU1N0cmluZyAqcGFzdGVib2Fy
ZE5hbWUpOworI2VuZGlmCisgICAgdm9pZCBwYXN0ZWJvYXJkQ2hhbmdlZE93bmVyKE5TUGFzdGVi
b2FyZCAqKTsKKyAgICB2b2lkIHByb3ZpZGVEYXRhRm9yUGFzdGVib2FyZChOU1Bhc3RlYm9hcmQg
KiwgTlNTdHJpbmcgKnR5cGUpOworICAgIE5TQXJyYXkgKm5hbWVzT2ZQcm9taXNlZEZpbGVzRHJv
cHBlZEF0RGVzdGluYXRpb24oTlNVUkwgKmRyb3BEZXN0aW5hdGlvbik7CisKICAgICBSZWZQdHI8
Vmlld1NuYXBzaG90PiB0YWtlVmlld1NuYXBzaG90KCk7CiAKICAgICBWaWV3R2VzdHVyZUNvbnRy
b2xsZXIqIGdlc3R1cmVDb250cm9sbGVyKCkgeyByZXR1cm4gbV9nZXN0dXJlQ29udHJvbGxlci5n
ZXQoKTsgfQpAQCAtMjkwLDYgKzMwNyw4IEBAIHB1YmxpYzoKICAgICB2b2lkIHJvdGF0ZVdpdGhF
dmVudChOU0V2ZW50ICopOwogICAgIHZvaWQgc21hcnRNYWduaWZ5V2l0aEV2ZW50KE5TRXZlbnQg
Kik7CiAKKyAgICB2b2lkIHNldExhc3RNb3VzZURvd25FdmVudChOU0V2ZW50ICopOworCiAgICAg
dm9pZCBnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKE5TRXZlbnQgKik7CiAgICAg
dm9pZCBnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlRnJvbVZpZXdPbmx5KE5TRXZl
bnQgKik7CiAKQEAgLTM2NSw2ICszODQsNyBAQCBwcml2YXRlOgogCiAgICAgUmV0YWluUHRyPE5T
Q29sb3JTcGFjZT4gbV9jb2xvclNwYWNlOwogCisgICAgUmV0YWluUHRyPE5TRXZlbnQ+IG1fbGFz
dE1vdXNlRG93bkV2ZW50OwogICAgIFJldGFpblB0cjxOU0V2ZW50PiBtX2xhc3RQcmVzc3VyZUV2
ZW50OwogCiAgICAgYm9vbCBtX2lnbm9yZXNOb25XaGVlbEV2ZW50cyB7IGZhbHNlIH07CkBAIC0z
OTcsNiArNDE3LDEyIEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2FsbG93c01hZ25pZmljYXRpb24g
eyBmYWxzZSB9OwogCiAgICAgUmV0YWluUHRyPGlkPiBtX3JlbW90ZUFjY2Vzc2liaWxpdHlDaGls
ZDsKKworICAgIFJlZlB0cjxXZWJDb3JlOjpJbWFnZT4gbV9wcm9taXNlZEltYWdlOworICAgIFN0
cmluZyBtX3Byb21pc2VkRmlsZW5hbWU7CisgICAgU3RyaW5nIG1fcHJvbWlzZWRVUkw7CisKKyAg
ICBXVEY6Ok9wdGlvbmFsPE5TSW50ZWdlcj4gbV9zcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKIH07
CiAgICAgCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA2MWRhODhjLi4xODBmOGQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC02NSw2ICs2NSw3
IEBACiAjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVDQUxheWVyRXh0cmFzLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL1dlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3Lmg+CiAjaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVGdWxsU2NyZWVuV2luZG93Lmg+CisjaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVO
U1N0cmluZ0V4dHJhcy5oPgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAKIFNP
RlRfTElOS19DT05TVEFOVF9NQVlfRkFJTChMb29rdXAsIExVTm90aWZpY2F0aW9uUG9wb3Zlcldp
bGxDbG9zZSwgTlNTdHJpbmcgKikKQEAgLTExNjgsNiArMTE2OSwxOSBAQCBib29sIFdlYlZpZXdJ
bXBsOjp0cnlQb3N0UHJvY2Vzc1BsdWdpbkNvbXBsZXhUZXh0SW5wdXRLZXlEb3duKE5TRXZlbnQg
KmV2ZW50KQogICAgIHJldHVybiBoYW5kbGVQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bihl
dmVudCk7CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OmhhbmRsZUFjY2VwdGVkQWx0ZXJuYXRpdmVU
ZXh0KGNvbnN0IFN0cmluZyYgYWNjZXB0ZWRBbHRlcm5hdGl2ZSkKK3sKKyAgICBtX3BhZ2UuaGFu
ZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoYWNjZXB0ZWRBbHRlcm5hdGl2ZSk7Cit9CisKKwor
TlNJbnRlZ2VyIFdlYlZpZXdJbXBsOjpzcGVsbENoZWNrZXJEb2N1bWVudFRhZygpCit7CisgICAg
aWYgKCFtX3NwZWxsQ2hlY2tlckRvY3VtZW50VGFnKQorICAgICAgICBtX3NwZWxsQ2hlY2tlckRv
Y3VtZW50VGFnID0gW05TU3BlbGxDaGVja2VyIHVuaXF1ZVNwZWxsRG9jdW1lbnRUYWddOworICAg
IHJldHVybiBtX3NwZWxsQ2hlY2tlckRvY3VtZW50VGFnLnZhbHVlKCk7Cit9CisKIHZvaWQgV2Vi
Vmlld0ltcGw6OnByZXNzdXJlQ2hhbmdlV2l0aEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogI2lm
IGRlZmluZWQoX19MUDY0X18pICYmIF9fTUFDX09TX1hfVkVSU0lPTl9NQVhfQUxMT1dFRCA+PSAx
MDEwMDMKQEAgLTE5MDQsNiArMTkxOCwxNjggQEAgdm9pZCBXZWJWaWV3SW1wbDo6cmVnaXN0ZXJE
cmFnZ2VkVHlwZXMoKQogfQogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCiAKKyNpZiBf
X01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTEwMAordm9pZCBXZWJWaWV3SW1w
bDo6c3RhcnRXaW5kb3dEcmFnKCkKK3sKKyAgICBbbV92aWV3LndpbmRvdyBwZXJmb3JtV2luZG93
RHJhZ1dpdGhFdmVudDptX2xhc3RNb3VzZURvd25FdmVudC5nZXQoKV07Cit9CisjZW5kaWYKKwor
dm9pZCBXZWJWaWV3SW1wbDo6ZHJhZ0ltYWdlRm9yVmlldyhOU1ZpZXcgKnZpZXcsIE5TSW1hZ2Ug
KmltYWdlLCBDR1BvaW50IGNsaWVudFBvaW50LCBib29sIGxpbmtEcmFnKQoreworICAgIC8vIFRo
ZSBjYWxsIGJlbG93IGNvdWxkIHJlbGVhc2UgdGhlIHZpZXcuCisgICAgUmV0YWluUHRyPE5TVmll
dz4gcHJvdGVjdG9yKG1fdmlldyk7CisKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9u
cyIKKyAgICBbdmlldyBkcmFnSW1hZ2U6aW1hZ2UKKyAgICAgICAgICAgICAgICAgYXQ6Y2xpZW50
UG9pbnQKKyAgICAgICAgICAgICBvZmZzZXQ6TlNaZXJvU2l6ZQorICAgICAgICAgICAgICBldmVu
dDpsaW5rRHJhZyA/IFtOU0FwcCBjdXJyZW50RXZlbnRdIDogbV9sYXN0TW91c2VEb3duRXZlbnQu
Z2V0KCkKKyAgICAgICAgIHBhc3RlYm9hcmQ6W05TUGFzdGVib2FyZCBwYXN0ZWJvYXJkV2l0aE5h
bWU6TlNEcmFnUGJvYXJkXQorICAgICAgICAgICAgIHNvdXJjZTptX3ZpZXcKKyAgICAgICAgICBz
bGlkZUJhY2s6WUVTXTsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKK30KKworc3RhdGlj
IGJvb2wgbWF0Y2hlc0V4dGVuc2lvbk9yRXF1aXZhbGVudChOU1N0cmluZyAqZmlsZW5hbWUsIE5T
U3RyaW5nICpleHRlbnNpb24pCit7CisgICAgTlNTdHJpbmcgKmV4dGVuc2lvbkFzU3VmZml4ID0g
W0AiLiIgc3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6ZXh0ZW5zaW9uXTsKKyAgICByZXR1cm4gaGFz
Q2FzZUluc2Vuc2l0aXZlU3VmZml4KGZpbGVuYW1lLCBleHRlbnNpb25Bc1N1ZmZpeCkgfHwgKHN0
cmluZ0lzQ2FzZUluc2Vuc2l0aXZlRXF1YWxUb1N0cmluZyhleHRlbnNpb24sIEAianBlZyIpCisg
ICAgICAgICYmIGhhc0Nhc2VJbnNlbnNpdGl2ZVN1ZmZpeChmaWxlbmFtZSwgQCIuanBnIikpOwor
fQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRGaWxlQW5kVVJMVHlwZXMoTlNTdHJpbmcgKmZpbGVu
YW1lLCBOU1N0cmluZyAqZXh0ZW5zaW9uLCBOU1N0cmluZyAqdGl0bGUsIE5TU3RyaW5nICp1cmws
IE5TU3RyaW5nICp2aXNpYmxlVVJMLCBOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQpCit7CisgICAg
aWYgKCFtYXRjaGVzRXh0ZW5zaW9uT3JFcXVpdmFsZW50KGZpbGVuYW1lLCBleHRlbnNpb24pKQor
ICAgICAgICBmaWxlbmFtZSA9IFtbZmlsZW5hbWUgc3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6QCIu
Il0gc3RyaW5nQnlBcHBlbmRpbmdTdHJpbmc6ZXh0ZW5zaW9uXTsKKworICAgIFtwYXN0ZWJvYXJk
IHNldFN0cmluZzp2aXNpYmxlVVJMIGZvclR5cGU6TlNTdHJpbmdQYm9hcmRUeXBlXTsKKyAgICBb
cGFzdGVib2FyZCBzZXRTdHJpbmc6dmlzaWJsZVVSTCBmb3JUeXBlOlBhc3RlYm9hcmRUeXBlczo6
V2ViVVJMUGJvYXJkVHlwZV07CisgICAgW3Bhc3RlYm9hcmQgc2V0U3RyaW5nOnRpdGxlIGZvclR5
cGU6UGFzdGVib2FyZFR5cGVzOjpXZWJVUkxOYW1lUGJvYXJkVHlwZV07CisgICAgW3Bhc3RlYm9h
cmQgc2V0UHJvcGVydHlMaXN0OltOU0FycmF5IGFycmF5V2l0aE9iamVjdHM6W05TQXJyYXkgYXJy
YXlXaXRoT2JqZWN0OnZpc2libGVVUkxdLCBbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6dGl0bGVd
LCBuaWxdIGZvclR5cGU6UGFzdGVib2FyZFR5cGVzOjpXZWJVUkxzV2l0aFRpdGxlc1Bib2FyZFR5
cGVdOworICAgIFtwYXN0ZWJvYXJkIHNldFByb3BlcnR5TGlzdDpbTlNBcnJheSBhcnJheVdpdGhP
YmplY3Q6ZXh0ZW5zaW9uXSBmb3JUeXBlOk5TRmlsZXNQcm9taXNlUGJvYXJkVHlwZV07CisgICAg
bV9wcm9taXNlZEZpbGVuYW1lID0gZmlsZW5hbWU7CisgICAgbV9wcm9taXNlZFVSTCA9IHVybDsK
K30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UoV2ViQ29yZTo6
SW1hZ2UqIGltYWdlLCBOU1N0cmluZyAqZmlsZW5hbWUsIE5TU3RyaW5nICpleHRlbnNpb24sIE5T
U3RyaW5nICp0aXRsZSwgTlNTdHJpbmcgKnVybCwgTlNTdHJpbmcgKnZpc2libGVVUkwsIFdlYkNv
cmU6OlNoYXJlZEJ1ZmZlciogYXJjaGl2ZUJ1ZmZlciwgTlNTdHJpbmcgKnBhc3RlYm9hcmROYW1l
KQoreworICAgIE5TUGFzdGVib2FyZCAqcGFzdGVib2FyZCA9IFtOU1Bhc3RlYm9hcmQgcGFzdGVi
b2FyZFdpdGhOYW1lOnBhc3RlYm9hcmROYW1lXTsKKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlQXJy
YXk+IHR5cGVzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aE9iamVj
dHM6TlNGaWxlc1Byb21pc2VQYm9hcmRUeXBlLCBuaWxdKTsKKworICAgIFt0eXBlcyBhZGRPYmpl
Y3RzRnJvbUFycmF5OmFyY2hpdmVCdWZmZXIgPyBQYXN0ZWJvYXJkVHlwZXM6OmZvckltYWdlc1dp
dGhBcmNoaXZlKCkgOiBQYXN0ZWJvYXJkVHlwZXM6OmZvckltYWdlcygpXTsKKyAgICBbcGFzdGVi
b2FyZCBkZWNsYXJlVHlwZXM6dHlwZXMuZ2V0KCkgb3duZXI6bV92aWV3XTsKKyAgICBzZXRGaWxl
QW5kVVJMVHlwZXMoZmlsZW5hbWUsIGV4dGVuc2lvbiwgdGl0bGUsIHVybCwgdmlzaWJsZVVSTCwg
cGFzdGVib2FyZCk7CisKKyAgICBpZiAoYXJjaGl2ZUJ1ZmZlcikKKyAgICAgICAgW3Bhc3RlYm9h
cmQgc2V0RGF0YTphcmNoaXZlQnVmZmVyLT5jcmVhdGVOU0RhdGEoKS5nZXQoKSBmb3JUeXBlOlBh
c3RlYm9hcmRUeXBlczo6V2ViQXJjaGl2ZVBib2FyZFR5cGVdOworCisgICAgbV9wcm9taXNlZElt
YWdlID0gaW1hZ2U7Cit9CisKKyNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVNRU5UKQordm9pZCBX
ZWJWaWV3SW1wbDo6c2V0UHJvbWlzZWREYXRhRm9yQXR0YWNobWVudChOU1N0cmluZyAqZmlsZW5h
bWUsIE5TU3RyaW5nICpleHRlbnNpb24sIE5TU3RyaW5nICp0aXRsZSwgTlNTdHJpbmcgKnVybCwg
TlNTdHJpbmcgKnZpc2libGVVUkwsIE5TU3RyaW5nICpwYXN0ZWJvYXJkTmFtZSkKK3sKKyAgICBO
U1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQgPSBbTlNQYXN0ZWJvYXJkIHBhc3RlYm9hcmRXaXRoTmFt
ZTpwYXN0ZWJvYXJkTmFtZV07CisgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PiB0eXBlcyA9
IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdFdpdGhPYmplY3RzOk5TRmlsZXNQ
cm9taXNlUGJvYXJkVHlwZSwgbmlsXSk7CisgICAgW3R5cGVzIGFkZE9iamVjdHNGcm9tQXJyYXk6
UGFzdGVib2FyZFR5cGVzOjpmb3JVUkwoKV07CisgICAgW3Bhc3RlYm9hcmQgZGVjbGFyZVR5cGVz
OnR5cGVzLmdldCgpIG93bmVyOm1fdmlld107CisgICAgc2V0RmlsZUFuZFVSTFR5cGVzKGZpbGVu
YW1lLCBleHRlbnNpb24sIHRpdGxlLCB1cmwsIHZpc2libGVVUkwsIHBhc3RlYm9hcmQpOworICAg
IAorICAgIFJldGFpblB0cjxOU011dGFibGVBcnJheT4gcGF0aHMgPSBhZG9wdE5TKFtbTlNNdXRh
YmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKyAgICBbcGF0aHMgYWRkT2JqZWN0OnRpdGxlXTsKKyAg
ICBbcGFzdGVib2FyZCBzZXRQcm9wZXJ0eUxpc3Q6cGF0aHMuZ2V0KCkgZm9yVHlwZTpOU0ZpbGVu
YW1lc1Bib2FyZFR5cGVdOworICAgIAorICAgIG1fcHJvbWlzZWRJbWFnZSA9IG51bGxwdHI7Cit9
CisjZW5kaWYKKwordm9pZCBXZWJWaWV3SW1wbDo6cGFzdGVib2FyZENoYW5nZWRPd25lcihOU1Bh
c3RlYm9hcmQgKnBhc3RlYm9hcmQpCit7CisgICAgbV9wcm9taXNlZEltYWdlID0gbnVsbHB0cjsK
KyAgICBtX3Byb21pc2VkRmlsZW5hbWUgPSAiIjsKKyAgICBtX3Byb21pc2VkVVJMID0gIiI7Cit9
CisKK3ZvaWQgV2ViVmlld0ltcGw6OnByb3ZpZGVEYXRhRm9yUGFzdGVib2FyZChOU1Bhc3RlYm9h
cmQgKnBhc3RlYm9hcmQsIE5TU3RyaW5nICp0eXBlKQoreworICAgIC8vIEZJWE1FOiBuZWVkIHRv
IHN1cHBvcnQgTlNSVEZEUGJvYXJkVHlwZQorCisgICAgaWYgKFt0eXBlIGlzRXF1YWw6TlNUSUZG
UGJvYXJkVHlwZV0gJiYgbV9wcm9taXNlZEltYWdlKSB7CisgICAgICAgIFtwYXN0ZWJvYXJkIHNl
dERhdGE6KE5TRGF0YSAqKW1fcHJvbWlzZWRJbWFnZS0+Z2V0VElGRlJlcHJlc2VudGF0aW9uKCkg
Zm9yVHlwZTpOU1RJRkZQYm9hcmRUeXBlXTsKKyAgICAgICAgbV9wcm9taXNlZEltYWdlID0gbnVs
bHB0cjsKKyAgICB9Cit9CisKK3N0YXRpYyBCT09MIGZpbGVFeGlzdHMoTlNTdHJpbmcgKnBhdGgp
Cit7CisgICAgc3RydWN0IHN0YXQgc3RhdEJ1ZmZlcjsKKyAgICByZXR1cm4gIWxzdGF0KFtwYXRo
IGZpbGVTeXN0ZW1SZXByZXNlbnRhdGlvbl0sICZzdGF0QnVmZmVyKTsKK30KKworc3RhdGljIE5T
U3RyaW5nICpwYXRoV2l0aFVuaXF1ZUZpbGVuYW1lRm9yUGF0aChOU1N0cmluZyAqcGF0aCkKK3sK
KyAgICAvLyAiRml4IiB0aGUgZmlsZW5hbWUgb2YgdGhlIHBhdGguCisgICAgTlNTdHJpbmcgKmZp
bGVuYW1lID0gZmlsZW5hbWVCeUZpeGluZ0lsbGVnYWxDaGFyYWN0ZXJzKFtwYXRoIGxhc3RQYXRo
Q29tcG9uZW50XSk7CisgICAgcGF0aCA9IFtbcGF0aCBzdHJpbmdCeURlbGV0aW5nTGFzdFBhdGhD
b21wb25lbnRdIHN0cmluZ0J5QXBwZW5kaW5nUGF0aENvbXBvbmVudDpmaWxlbmFtZV07CisgICAg
CisgICAgaWYgKGZpbGVFeGlzdHMocGF0aCkpIHsKKyAgICAgICAgLy8gRG9uJ3Qgb3ZlcndyaXRl
IGV4aXN0aW5nIGZpbGUgYnkgYXBwZW5kaW5nICItbiIsICItbi5leHQiIG9yICItbi5leHQuZXh0
IiB0byB0aGUgZmlsZW5hbWUuCisgICAgICAgIE5TU3RyaW5nICpleHRlbnNpb25zID0gbmlsOwor
ICAgICAgICBOU1N0cmluZyAqcGF0aFdpdGhvdXRFeHRlbnNpb25zOworICAgICAgICBOU1N0cmlu
ZyAqbGFzdFBhdGhDb21wb25lbnQgPSBbcGF0aCBsYXN0UGF0aENvbXBvbmVudF07CisgICAgICAg
IE5TUmFuZ2UgcGVyaW9kUmFuZ2UgPSBbbGFzdFBhdGhDb21wb25lbnQgcmFuZ2VPZlN0cmluZzpA
Ii4iXTsKKyAgICAgICAgCisgICAgICAgIGlmIChwZXJpb2RSYW5nZS5sb2NhdGlvbiA9PSBOU05v
dEZvdW5kKSB7CisgICAgICAgICAgICBwYXRoV2l0aG91dEV4dGVuc2lvbnMgPSBwYXRoOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgZXh0ZW5zaW9ucyA9IFtsYXN0UGF0aENvbXBvbmVu
dCBzdWJzdHJpbmdGcm9tSW5kZXg6cGVyaW9kUmFuZ2UubG9jYXRpb24gKyAxXTsKKyAgICAgICAg
ICAgIGxhc3RQYXRoQ29tcG9uZW50ID0gW2xhc3RQYXRoQ29tcG9uZW50IHN1YnN0cmluZ1RvSW5k
ZXg6cGVyaW9kUmFuZ2UubG9jYXRpb25dOworICAgICAgICAgICAgcGF0aFdpdGhvdXRFeHRlbnNp
b25zID0gW1twYXRoIHN0cmluZ0J5RGVsZXRpbmdMYXN0UGF0aENvbXBvbmVudF0gc3RyaW5nQnlB
cHBlbmRpbmdQYXRoQ29tcG9uZW50Omxhc3RQYXRoQ29tcG9uZW50XTsKKyAgICAgICAgfQorICAg
ICAgICAKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMTsgOyBpKyspIHsKKyAgICAgICAgICAg
IE5TU3RyaW5nICpwYXRoV2l0aEFwcGVuZGVkTnVtYmVyID0gW05TU3RyaW5nIHN0cmluZ1dpdGhG
b3JtYXQ6QCIlQC0lZCIsIHBhdGhXaXRob3V0RXh0ZW5zaW9ucywgaV07CisgICAgICAgICAgICBw
YXRoID0gW2V4dGVuc2lvbnMgbGVuZ3RoXSA/IFtwYXRoV2l0aEFwcGVuZGVkTnVtYmVyIHN0cmlu
Z0J5QXBwZW5kaW5nUGF0aEV4dGVuc2lvbjpleHRlbnNpb25zXSA6IHBhdGhXaXRoQXBwZW5kZWRO
dW1iZXI7CisgICAgICAgICAgICBpZiAoIWZpbGVFeGlzdHMocGF0aCkpCisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgCisgICAgcmV0dXJuIHBhdGg7Cit9CisK
K05TQXJyYXkgKldlYlZpZXdJbXBsOjpuYW1lc09mUHJvbWlzZWRGaWxlc0Ryb3BwZWRBdERlc3Rp
bmF0aW9uKE5TVVJMICpkcm9wRGVzdGluYXRpb24pCit7CisgICAgUmV0YWluUHRyPE5TRmlsZVdy
YXBwZXI+IHdyYXBwZXI7CisgICAgUmV0YWluUHRyPE5TRGF0YT4gZGF0YTsKKyAgICAKKyAgICBp
ZiAobV9wcm9taXNlZEltYWdlKSB7CisgICAgICAgIGRhdGEgPSBtX3Byb21pc2VkSW1hZ2UtPmRh
dGEoKS0+Y3JlYXRlTlNEYXRhKCk7CisgICAgICAgIHdyYXBwZXIgPSBhZG9wdE5TKFtbTlNGaWxl
V3JhcHBlciBhbGxvY10gaW5pdFJlZ3VsYXJGaWxlV2l0aENvbnRlbnRzOmRhdGEuZ2V0KCldKTsK
KyAgICB9IGVsc2UKKyAgICAgICAgd3JhcHBlciA9IGFkb3B0TlMoW1tOU0ZpbGVXcmFwcGVyIGFs
bG9jXSBpbml0V2l0aFVSTDpbTlNVUkwgVVJMV2l0aFN0cmluZzptX3Byb21pc2VkVVJMXSBvcHRp
b25zOk5TRmlsZVdyYXBwZXJSZWFkaW5nSW1tZWRpYXRlIGVycm9yOm5pbF0pOworICAgIAorICAg
IGlmICh3cmFwcGVyKQorICAgICAgICBbd3JhcHBlciBzZXRQcmVmZXJyZWRGaWxlbmFtZTptX3By
b21pc2VkRmlsZW5hbWVdOworICAgIGVsc2UgeworICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0
byBjcmVhdGUgaW1hZ2UgZmlsZS4iKTsKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICB9CisgICAg
CisgICAgLy8gRklYTUU6IFJlcG9ydCBhbiBlcnJvciBpZiB3ZSBmYWlsIHRvIGNyZWF0ZSBhIGZp
bGUuCisgICAgTlNTdHJpbmcgKnBhdGggPSBbW2Ryb3BEZXN0aW5hdGlvbiBwYXRoXSBzdHJpbmdC
eUFwcGVuZGluZ1BhdGhDb21wb25lbnQ6W3dyYXBwZXIgcHJlZmVycmVkRmlsZW5hbWVdXTsKKyAg
ICBwYXRoID0gcGF0aFdpdGhVbmlxdWVGaWxlbmFtZUZvclBhdGgocGF0aCk7CisgICAgaWYgKCFb
d3JhcHBlciB3cml0ZVRvVVJMOltOU1VSTCBmaWxlVVJMV2l0aFBhdGg6cGF0aF0gb3B0aW9uczpO
U0ZpbGVXcmFwcGVyV3JpdGluZ1dpdGhOYW1lVXBkYXRpbmcgb3JpZ2luYWxDb250ZW50c1VSTDpu
aWwgZXJyb3I6bnVsbHB0cl0pCisgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBp
bWFnZSBmaWxlIHZpYSAtW05TRmlsZVdyYXBwZXIgd3JpdGVUb1VSTDpvcHRpb25zOm9yaWdpbmFs
Q29udGVudHNVUkw6ZXJyb3I6XSIpOworCisgICAgaWYgKCFtX3Byb21pc2VkVVJMLmlzRW1wdHko
KSkKKyAgICAgICAgV2ViQ29yZTo6c2V0TWV0YWRhdGFVUkwobV9wcm9taXNlZFVSTCwgIiIsIFN0
cmluZyhwYXRoKSk7CisgICAgCisgICAgcmV0dXJuIFtOU0FycmF5IGFycmF5V2l0aE9iamVjdDpb
cGF0aCBsYXN0UGF0aENvbXBvbmVudF1dOworfQorCiBzdGF0aWMgUmV0YWluUHRyPENHSW1hZ2VS
ZWY+IHRha2VXaW5kb3dTbmFwc2hvdChDR1NXaW5kb3dJRCB3aW5kb3dJRCwgYm9vbCBjYXB0dXJl
QXROb21pbmFsUmVzb2x1dGlvbikKIHsKICAgICBDR1NXaW5kb3dDYXB0dXJlT3B0aW9ucyBvcHRp
b25zID0ga0NHU0NhcHR1cmVJZ25vcmVHbG9iYWxDbGlwU2hhcGU7CkBAIC0yMTQxLDYgKzIzMTcs
MTYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c21hcnRNYWduaWZ5V2l0aEV2ZW50KE5TRXZlbnQgKmV2
ZW50KQogICAgIGVuc3VyZUdlc3R1cmVDb250cm9sbGVyKCkuaGFuZGxlU21hcnRNYWduaWZpY2F0
aW9uR2VzdHVyZShbbV92aWV3IGNvbnZlcnRQb2ludDpldmVudC5sb2NhdGlvbkluV2luZG93IGZy
b21WaWV3Om5pbF0pOwogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRMYXN0TW91c2VEb3duRXZl
bnQoTlNFdmVudCAqZXZlbnQpCit7CisgICAgQVNTRVJUKCFldmVudCB8fCBldmVudC50eXBlID09
IE5TTGVmdE1vdXNlRG93biB8fCBldmVudC50eXBlID09IE5TUmlnaHRNb3VzZURvd24gfHwgZXZl
bnQudHlwZSA9PSBOU090aGVyTW91c2VEb3duKTsKKworICAgIGlmIChldmVudCA9PSBtX2xhc3RN
b3VzZURvd25FdmVudC5nZXQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9sYXN0TW91c2VE
b3duRXZlbnQgPSBldmVudDsKK30KKwogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiB2
b2lkIFdlYlZpZXdJbXBsOjpyb3RhdGVXaXRoRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5oIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwuaAppbmRleCA0YzRj
MzRhLi42NjZlY2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0Nv
cnJlY3Rpb25QYW5lbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvQ29ycmVj
dGlvblBhbmVsLmgKQEAgLTM0LDI3ICszNCwyOCBAQAogI2ltcG9ydCA8V2ViQ29yZS9BbHRlcm5h
dGl2ZVRleHRDbGllbnQuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KIAotQGNsYXNzIFdL
VmlldzsKLQogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdlYlZpZXdJbXBsOworCiBjbGFz
cyBDb3JyZWN0aW9uUGFuZWwgewogcHVibGljOgogICAgIENvcnJlY3Rpb25QYW5lbCgpOwogICAg
IH5Db3JyZWN0aW9uUGFuZWwoKTsKLSAgICB2b2lkIHNob3coV0tWaWV3KiwgV2ViQ29yZTo6QWx0
ZXJuYXRpdmVUZXh0VHlwZSwgY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3VuZGluZ0JveE9m
UmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgcmVwbGFjZW1lbnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZVJl
cGxhY2VtZW50U3RyaW5ncyk7CisgICAgdm9pZCBzaG93KE5TVmlldyAqLCBXZWJWaWV3SW1wbCYs
IFdlYkNvcmU6OkFsdGVybmF0aXZlVGV4dFR5cGUsIGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
Ym91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYg
YWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpOwogICAgIFN0cmluZyBkaXNtaXNzKFdlYkNv
cmU6OlJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHQpOwotICAgIHN0YXRpYyB2b2lk
IHJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2UoV0tWaWV3KiwgTlNDb3JyZWN0aW9uUmVzcG9u
c2UsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1l
bnRTdHJpbmcpOworICAgIHN0YXRpYyB2b2lkIHJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2Uo
TlNWaWV3ICosIE5TSW50ZWdlciBzcGVsbENoZWNrZXJEb2N1bWVudFRhZywgTlNDb3JyZWN0aW9u
UmVzcG9uc2UsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVw
bGFjZW1lbnRTdHJpbmcpOwogCiBwcml2YXRlOgogICAgIGJvb2wgaXNTaG93aW5nKCkgY29uc3Qg
eyByZXR1cm4gbV92aWV3OyB9CiAgICAgU3RyaW5nIGRpc21pc3NJbnRlcm5hbChXZWJDb3JlOjpS
ZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0LCBib29sIGRpc21pc3NpbmdFeHRlcm5h
bGx5KTsKLSAgICB2b2lkIGhhbmRsZUFjY2VwdGVkUmVwbGFjZW1lbnQoTlNTdHJpbmcqIGFjY2Vw
dGVkUmVwbGFjZW1lbnQsIE5TU3RyaW5nKiByZXBsYWNlZCwgTlNTdHJpbmcqIHByb3Bvc2VkUmVw
bGFjZW1lbnQsIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGUpOworICAgIHZvaWQgaGFuZGxlQWNj
ZXB0ZWRSZXBsYWNlbWVudChXZWJWaWV3SW1wbCYsIE5TU3RyaW5nKiBhY2NlcHRlZFJlcGxhY2Vt
ZW50LCBOU1N0cmluZyogcmVwbGFjZWQsIE5TU3RyaW5nKiBwcm9wb3NlZFJlcGxhY2VtZW50LCBO
U0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlKTsKIAogICAgIGJvb2wgbV93YXNEaXNtaXNzZWRFeHRl
cm5hbGx5OwogICAgIFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHQg
bV9yZWFzb25Gb3JEaXNtaXNzaW5nOwotICAgIFJldGFpblB0cjxXS1ZpZXc+IG1fdmlldzsKKyAg
ICBSZXRhaW5QdHI8TlNWaWV3PiBtX3ZpZXc7CiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiBtX3Jl
c3VsdEZvckRpc21pc3NhbDsKKyAgICBOU0ludGVnZXIgbV9zcGVsbENoZWNrZXJEb2N1bWVudFRh
ZzsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9Db3JyZWN0aW9uUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5tbQppbmRleCA4ZWMzOTJmLi5iMzgxYTI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL0NvcnJlY3Rpb25QYW5lbC5tbQpAQCAt
MjksOCArMjksNyBAQAogI2lmIFVTRShBVVRPQ09SUkVDVElPTl9QQU5FTCkKIAogI2ltcG9ydCAi
V2ViUGFnZVByb3h5LmgiCi0jaW1wb3J0ICJXS1ZpZXcuaCIKLSNpbXBvcnQgIldLVmlld0ludGVy
bmFsLmgiCisjaW1wb3J0ICJXZWJWaWV3SW1wbC5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIApAQCAtNjQsMTYgKzYzLDE5IEBAIENvcnJlY3Rpb25QYW5lbDo6fkNvcnJlY3Rpb25QYW5l
bCgpCiAgICAgZGlzbWlzc0ludGVybmFsKFJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRl
eHRJZ25vcmVkLCBmYWxzZSk7CiB9CiAKLXZvaWQgQ29ycmVjdGlvblBhbmVsOjpzaG93KFdLVmll
dyogdmlldywgQWx0ZXJuYXRpdmVUZXh0VHlwZSB0eXBlLCBjb25zdCBGbG9hdFJlY3QmIGJvdW5k
aW5nQm94T2ZSZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29u
c3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY29uc3QgVmVjdG9yPFN0cmluZz4mIGFsdGVy
bmF0aXZlUmVwbGFjZW1lbnRTdHJpbmdzKQordm9pZCBDb3JyZWN0aW9uUGFuZWw6OnNob3coTlNW
aWV3ICp2aWV3LCBXZWJWaWV3SW1wbCYgd2ViVmlld0ltcGwsIEFsdGVybmF0aXZlVGV4dFR5cGUg
dHlwZSwgY29uc3QgRmxvYXRSZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0
IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcs
IGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncykKIHsK
ICAgICBkaXNtaXNzSW50ZXJuYWwoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dEln
bm9yZWQsIGZhbHNlKTsKICAgICAKICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVybjsKIAor
ICAgIE5TSW50ZWdlciBzcGVsbENoZWNrZXJEb2N1bWVudFRhZyA9IHdlYlZpZXdJbXBsLnNwZWxs
Q2hlY2tlckRvY3VtZW50VGFnKCk7CisKICAgICBOU1N0cmluZyogcmVwbGFjZWRTdHJpbmdBc05T
U3RyaW5nID0gcmVwbGFjZWRTdHJpbmc7CiAgICAgTlNTdHJpbmcqIHJlcGxhY2VtZW50U3RyaW5n
QXNOU1N0cmluZyA9IHJlcGxhY2VtZW50U3RyaW5nOwogICAgIG1fdmlldyA9IHZpZXc7CisgICAg
bV9zcGVsbENoZWNrZXJEb2N1bWVudFRhZyA9IHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnOwogICAg
IE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGUgaW5kaWNhdG9yVHlwZSA9IGNvcnJlY3Rpb25JbmRp
Y2F0b3JUeXBlKHR5cGUpOwogICAgIAogICAgIE5TTXV0YWJsZUFycmF5KiBhbHRlcm5hdGl2ZVN0
cmluZ3MgPSAwOwpAQCAtODYsNyArODgsNyBAQCB2b2lkIENvcnJlY3Rpb25QYW5lbDo6c2hvdyhX
S1ZpZXcqIHZpZXcsIEFsdGVybmF0aXZlVGV4dFR5cGUgdHlwZSwgY29uc3QgRmxvYXRSZQogCiAg
ICAgTlNTcGVsbENoZWNrZXIqIHNwZWxsQ2hlY2tlciA9IFtOU1NwZWxsQ2hlY2tlciBzaGFyZWRT
cGVsbENoZWNrZXJdOwogICAgIFtzcGVsbENoZWNrZXIgc2hvd0NvcnJlY3Rpb25JbmRpY2F0b3JP
ZlR5cGU6aW5kaWNhdG9yVHlwZSBwcmltYXJ5U3RyaW5nOnJlcGxhY2VtZW50U3RyaW5nQXNOU1N0
cmluZyBhbHRlcm5hdGl2ZVN0cmluZ3M6YWx0ZXJuYXRpdmVTdHJpbmdzIGZvclN0cmluZ0luUmVj
dDpib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcgdmlldzptX3ZpZXcuZ2V0KCkgY29tcGxldGlv
bkhhbmRsZXI6XihOU1N0cmluZyogYWNjZXB0ZWRTdHJpbmcpIHsKLSAgICAgICAgaGFuZGxlQWNj
ZXB0ZWRSZXBsYWNlbWVudChhY2NlcHRlZFN0cmluZywgcmVwbGFjZWRTdHJpbmdBc05TU3RyaW5n
LCByZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcsIGluZGljYXRvclR5cGUpOworICAgICAgICBo
YW5kbGVBY2NlcHRlZFJlcGxhY2VtZW50KHdlYlZpZXdJbXBsLCBhY2NlcHRlZFN0cmluZywgcmVw
bGFjZWRTdHJpbmdBc05TU3RyaW5nLCByZXBsYWNlbWVudFN0cmluZ0FzTlNTdHJpbmcsIGluZGlj
YXRvclR5cGUpOwogICAgIH1dOwogfQogCkBAIC0xMDcsNDIgKzEwOSw0MiBAQCBTdHJpbmcgQ29y
cmVjdGlvblBhbmVsOjpkaXNtaXNzSW50ZXJuYWwoUmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0
aXZlVGV4dCByZWFzbwogICAgIHJldHVybiBtX3Jlc3VsdEZvckRpc21pc3NhbC5nZXQoKTsKIH0K
IAotdm9pZCBDb3JyZWN0aW9uUGFuZWw6OnJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2UoV0tW
aWV3KiB2aWV3LCBOU0NvcnJlY3Rpb25SZXNwb25zZSByZXNwb25zZSwgY29uc3QgU3RyaW5nJiBy
ZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZykKK3ZvaWQgQ29y
cmVjdGlvblBhbmVsOjpyZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKE5TVmlldyAqdmlldywg
TlNJbnRlZ2VyIHNwZWxsQ2hlY2tlckRvY3VtZW50VGFnLCBOU0NvcnJlY3Rpb25SZXNwb25zZSBy
ZXNwb25zZSwgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBs
YWNlbWVudFN0cmluZykKIHsKLSAgICBbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tl
cl0gcmVjb3JkUmVzcG9uc2U6cmVzcG9uc2UgdG9Db3JyZWN0aW9uOnJlcGxhY2VtZW50U3RyaW5n
IGZvcldvcmQ6cmVwbGFjZWRTdHJpbmcgbGFuZ3VhZ2U6bmlsIGluU3BlbGxEb2N1bWVudFdpdGhU
YWc6W3ZpZXcgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddXTsKKyAgICBbW05TU3BlbGxDaGVja2Vy
IHNoYXJlZFNwZWxsQ2hlY2tlcl0gcmVjb3JkUmVzcG9uc2U6cmVzcG9uc2UgdG9Db3JyZWN0aW9u
OnJlcGxhY2VtZW50U3RyaW5nIGZvcldvcmQ6cmVwbGFjZWRTdHJpbmcgbGFuZ3VhZ2U6bmlsIGlu
U3BlbGxEb2N1bWVudFdpdGhUYWc6c3BlbGxDaGVja2VyRG9jdW1lbnRUYWddOwogfQogCi12b2lk
IENvcnJlY3Rpb25QYW5lbDo6aGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudChOU1N0cmluZyogYWNj
ZXB0ZWRSZXBsYWNlbWVudCwgTlNTdHJpbmcqIHJlcGxhY2VkLCBOU1N0cmluZyogcHJvcG9zZWRS
ZXBsYWNlbWVudCwgIE5TQ29ycmVjdGlvbkluZGljYXRvclR5cGUgY29ycmVjdGlvbkluZGljYXRv
clR5cGUpCit2b2lkIENvcnJlY3Rpb25QYW5lbDo6aGFuZGxlQWNjZXB0ZWRSZXBsYWNlbWVudChX
ZWJWaWV3SW1wbCYgd2ViVmlld0ltcGwsIE5TU3RyaW5nKiBhY2NlcHRlZFJlcGxhY2VtZW50LCBO
U1N0cmluZyogcmVwbGFjZWQsIE5TU3RyaW5nKiBwcm9wb3NlZFJlcGxhY2VtZW50LCAgTlNDb3Jy
ZWN0aW9uSW5kaWNhdG9yVHlwZSBjb3JyZWN0aW9uSW5kaWNhdG9yVHlwZSkKIHsKICAgICBpZiAo
IW1fdmlldykKICAgICAgICAgcmV0dXJuOwogCiAgICAgTlNTcGVsbENoZWNrZXIqIHNwZWxsQ2hl
Y2tlciA9IFtOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdOwotICAgIE5TSW50ZWdl
ciBkb2N1bWVudFRhZyA9IFttX3ZpZXcgc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddOwogICAgIAog
ICAgIHN3aXRjaCAoY29ycmVjdGlvbkluZGljYXRvclR5cGUpIHsKICAgICBjYXNlIE5TQ29ycmVj
dGlvbkluZGljYXRvclR5cGVEZWZhdWx0OgogICAgICAgICBpZiAoYWNjZXB0ZWRSZXBsYWNlbWVu
dCkKLSAgICAgICAgICAgIFtzcGVsbENoZWNrZXIgcmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0aW9u
UmVzcG9uc2VBY2NlcHRlZCB0b0NvcnJlY3Rpb246YWNjZXB0ZWRSZXBsYWNlbWVudCBmb3JXb3Jk
OnJlcGxhY2VkIGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOmRvY3VtZW50VGFn
XTsKKyAgICAgICAgICAgIFtzcGVsbENoZWNrZXIgcmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0aW9u
UmVzcG9uc2VBY2NlcHRlZCB0b0NvcnJlY3Rpb246YWNjZXB0ZWRSZXBsYWNlbWVudCBmb3JXb3Jk
OnJlcGxhY2VkIGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOm1fc3BlbGxDaGVj
a2VyRG9jdW1lbnRUYWddOwogICAgICAgICBlbHNlIHsKICAgICAgICAgICAgIGlmICghbV93YXNE
aXNtaXNzZWRFeHRlcm5hbGx5IHx8IG1fcmVhc29uRm9yRGlzbWlzc2luZyA9PSBSZWFzb25Gb3JE
aXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0Q2FuY2VsbGVkKQotICAgICAgICAgICAgICAgIFtzcGVs
bENoZWNrZXIgcmVjb3JkUmVzcG9uc2U6TlNDb3JyZWN0aW9uUmVzcG9uc2VSZWplY3RlZCB0b0Nv
cnJlY3Rpb246cHJvcG9zZWRSZXBsYWNlbWVudCBmb3JXb3JkOnJlcGxhY2VkIGxhbmd1YWdlOm5p
bCBpblNwZWxsRG9jdW1lbnRXaXRoVGFnOmRvY3VtZW50VGFnXTsKKyAgICAgICAgICAgICAgICBb
c3BlbGxDaGVja2VyIHJlY29yZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlUmVqZWN0ZWQg
dG9Db3JyZWN0aW9uOnByb3Bvc2VkUmVwbGFjZW1lbnQgZm9yV29yZDpyZXBsYWNlZCBsYW5ndWFn
ZTpuaWwgaW5TcGVsbERvY3VtZW50V2l0aFRhZzptX3NwZWxsQ2hlY2tlckRvY3VtZW50VGFnXTsK
ICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICBbc3BlbGxDaGVja2VyIHJlY29yZFJl
c3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlSWdub3JlZCB0b0NvcnJlY3Rpb246cHJvcG9zZWRS
ZXBsYWNlbWVudCBmb3JXb3JkOnJlcGxhY2VkIGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1lbnRX
aXRoVGFnOmRvY3VtZW50VGFnXTsKKyAgICAgICAgICAgICAgICBbc3BlbGxDaGVja2VyIHJlY29y
ZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlSWdub3JlZCB0b0NvcnJlY3Rpb246cHJvcG9z
ZWRSZXBsYWNlbWVudCBmb3JXb3JkOnJlcGxhY2VkIGxhbmd1YWdlOm5pbCBpblNwZWxsRG9jdW1l
bnRXaXRoVGFnOm1fc3BlbGxDaGVja2VyRG9jdW1lbnRUYWddOwogICAgICAgICB9CiAgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgTlNDb3JyZWN0aW9uSW5kaWNhdG9yVHlwZVJldmVyc2lvbjoKICAg
ICAgICAgaWYgKGFjY2VwdGVkUmVwbGFjZW1lbnQpCi0gICAgICAgICAgICBbc3BlbGxDaGVja2Vy
IHJlY29yZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlUmV2ZXJ0ZWQgdG9Db3JyZWN0aW9u
OnJlcGxhY2VkIGZvcldvcmQ6YWNjZXB0ZWRSZXBsYWNlbWVudCBsYW5ndWFnZTpuaWwgaW5TcGVs
bERvY3VtZW50V2l0aFRhZzpkb2N1bWVudFRhZ107CisgICAgICAgICAgICBbc3BlbGxDaGVja2Vy
IHJlY29yZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlUmV2ZXJ0ZWQgdG9Db3JyZWN0aW9u
OnJlcGxhY2VkIGZvcldvcmQ6YWNjZXB0ZWRSZXBsYWNlbWVudCBsYW5ndWFnZTpuaWwgaW5TcGVs
bERvY3VtZW50V2l0aFRhZzptX3NwZWxsQ2hlY2tlckRvY3VtZW50VGFnXTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBOU0NvcnJlY3Rpb25JbmRpY2F0b3JUeXBlR3Vlc3NlczoKICAgICAgICAg
aWYgKGFjY2VwdGVkUmVwbGFjZW1lbnQpCi0gICAgICAgICAgICBbc3BlbGxDaGVja2VyIHJlY29y
ZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlQWNjZXB0ZWQgdG9Db3JyZWN0aW9uOmFjY2Vw
dGVkUmVwbGFjZW1lbnQgZm9yV29yZDpyZXBsYWNlZCBsYW5ndWFnZTpuaWwgaW5TcGVsbERvY3Vt
ZW50V2l0aFRhZzpkb2N1bWVudFRhZ107CisgICAgICAgICAgICBbc3BlbGxDaGVja2VyIHJlY29y
ZFJlc3BvbnNlOk5TQ29ycmVjdGlvblJlc3BvbnNlQWNjZXB0ZWQgdG9Db3JyZWN0aW9uOmFjY2Vw
dGVkUmVwbGFjZW1lbnQgZm9yV29yZDpyZXBsYWNlZCBsYW5ndWFnZTpuaWwgaW5TcGVsbERvY3Vt
ZW50V2l0aFRhZzptX3NwZWxsQ2hlY2tlckRvY3VtZW50VGFnXTsKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogCi0gICAgW21fdmlldyBoYW5kbGVBY2NlcHRlZEFsdGVybmF0aXZlVGV4dDphY2NlcHRl
ZFJlcGxhY2VtZW50XTsKLSAgICBtX3ZpZXcuY2xlYXIoKTsKKyAgICB3ZWJWaWV3SW1wbC5oYW5k
bGVBY2NlcHRlZEFsdGVybmF0aXZlVGV4dChhY2NlcHRlZFJlcGxhY2VtZW50KTsKKyAgICBtX3Nw
ZWxsQ2hlY2tlckRvY3VtZW50VGFnID0gMDsKKyAgICBtX3ZpZXcgPSBudWxscHRyOwogICAgIGlm
IChhY2NlcHRlZFJlcGxhY2VtZW50KQogICAgICAgICBtX3Jlc3VsdEZvckRpc21pc3NhbCA9IGFk
b3B0TlMoW2FjY2VwdGVkUmVwbGFjZW1lbnQgY29weV0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggYTBmYjhiZC4uYzQ3YmFlMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCkBA
IC0yMzYsNyArMjM2LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6dmlld1dpbGxNb3ZlVG9Bbm90
aGVyV2luZG93KCkKIAogQ29sb3JTcGFjZURhdGEgUGFnZUNsaWVudEltcGw6OmNvbG9yU3BhY2Uo
KQogewotICAgIHJldHVybiBbbV93a1ZpZXcgX2NvbG9yU3BhY2VdOworICAgIHJldHVybiBtX2lt
cGwtPmNvbG9yU3BhY2UoKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJvY2Vzc0RpZEV4
aXQoKQpAQCAtMzYxLDIzICszNjEsMjMgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0RHJhZ0lt
YWdlKGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgUGFzc1JlZlB0cjxTaGEKICNpZiBX
S19BUElfRU5BQkxFRAogICAgIGlmIChtX3dlYlZpZXcpIHsKICAgICAgICAgTlNQb2ludCB3ZWJW
aWV3UG9zaXRpb24gPSBbbV93a1ZpZXcgY29udmVydFBvaW50OmNsaWVudFBvc2l0aW9uIHRvVmll
dzptX3dlYlZpZXddOwotICAgICAgICBbbV93a1ZpZXcgX2RyYWdJbWFnZUZvclZpZXc6bV93ZWJW
aWV3IHdpdGhJbWFnZTpkcmFnTlNJbWFnZS5nZXQoKSBhdDp3ZWJWaWV3UG9zaXRpb24gbGlua0Ry
YWc6aXNMaW5rRHJhZ107CisgICAgICAgIG1faW1wbC0+ZHJhZ0ltYWdlRm9yVmlldyhtX3dlYlZp
ZXcsIGRyYWdOU0ltYWdlLmdldCgpLCB3ZWJWaWV3UG9zaXRpb24sIGlzTGlua0RyYWcpOwogICAg
IH0gZWxzZQogI2VuZGlmCi0gICAgICAgIFttX3drVmlldyBfZHJhZ0ltYWdlRm9yVmlldzptX3dr
VmlldyB3aXRoSW1hZ2U6ZHJhZ05TSW1hZ2UuZ2V0KCkgYXQ6Y2xpZW50UG9zaXRpb24gbGlua0Ry
YWc6aXNMaW5rRHJhZ107CisgICAgICAgIG1faW1wbC0+ZHJhZ0ltYWdlRm9yVmlldyhtX3drVmll
dywgZHJhZ05TSW1hZ2UuZ2V0KCksIGNsaWVudFBvc2l0aW9uLCBpc0xpbmtEcmFnKTsKIH0KIAot
dm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UoY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkTmFtZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGltYWdlQnVmZmVyLCBj
b25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvbiwgY29uc3QgU3Ry
aW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdmlzaWJsZVVybCwg
UGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGFyY2hpdmVCdWZmZXIpCit2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpzZXRQcm9taXNlZERhdGFGb3JJbWFnZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1l
LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gaW1hZ2VCdWZmZXIsIGNvbnN0IFN0cmluZyYgZmls
ZW5hbWUsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25z
dCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB2aXNpYmxlVVJMLCBQYXNzUmVmUHRyPFNoYXJl
ZEJ1ZmZlcj4gYXJjaGl2ZUJ1ZmZlcikKIHsKICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gQml0
bWFwSW1hZ2U6OmNyZWF0ZSgpOwogICAgIGltYWdlLT5zZXREYXRhKGltYWdlQnVmZmVyLmdldCgp
LCB0cnVlKTsKLSAgICBbbV93a1ZpZXcgX3NldFByb21pc2VkRGF0YUZvckltYWdlOmltYWdlLmdl
dCgpIHdpdGhGaWxlTmFtZTpmaWxlbmFtZSB3aXRoRXh0ZW5zaW9uOmV4dGVuc2lvbiB3aXRoVGl0
bGU6dGl0bGUgd2l0aFVSTDp1cmwgd2l0aFZpc2libGVVUkw6dmlzaWJsZVVybCB3aXRoQXJjaGl2
ZTphcmNoaXZlQnVmZmVyLmdldCgpIGZvclBhc3RlYm9hcmQ6cGFzdGVib2FyZE5hbWVdOworICAg
IG1faW1wbC0+c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UoaW1hZ2UuZ2V0KCksIGZpbGVuYW1lLCBl
eHRlbnNpb24sIHRpdGxlLCB1cmwsIHZpc2libGVVUkwsIGFyY2hpdmVCdWZmZXIuZ2V0KCksIHBh
c3RlYm9hcmROYW1lKTsKIH0KIAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCi12b2lk
IFBhZ2VDbGllbnRJbXBsOjpzZXRQcm9taXNlZERhdGFGb3JBdHRhY2htZW50KGNvbnN0IFN0cmlu
ZyYgcGFzdGVib2FyZE5hbWUsIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYg
ZXh0ZW5zaW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3Qg
U3RyaW5nJiB2aXNpYmxlVXJsKQordm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0UHJvbWlzZWREYXRh
Rm9yQXR0YWNobWVudChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTdHJpbmcm
IGZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwg
Y29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdmlzaWJsZVVSTCkKIHsKLSAgICBbbV93
a1ZpZXcgX3NldFByb21pc2VkRGF0YUZvckF0dGFjaG1lbnQ6ZmlsZW5hbWUgd2l0aEV4dGVuc2lv
bjpleHRlbnNpb24gd2l0aFRpdGxlOnRpdGxlIHdpdGhVUkw6dXJsIHdpdGhWaXNpYmxlVVJMOnZp
c2libGVVcmwgZm9yUGFzdGVib2FyZDpwYXN0ZWJvYXJkTmFtZV07CisgICAgbV9pbXBsLT5zZXRQ
cm9taXNlZERhdGFGb3JBdHRhY2htZW50KGZpbGVuYW1lLCBleHRlbnNpb24sIHRpdGxlLCB1cmws
IHZpc2libGVVUkwsIHBhc3RlYm9hcmROYW1lKTsKIH0KICNlbmRpZgogCkBAIC01NjQsNyArNTY0
LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd0NvcnJlY3Rpb25QYW5lbChBbHRlcm5hdGl2
ZVRleHRUeXBlIHR5cGUsIGNvbnN0IEZsb2F0UmUKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFO
RUwpCiAgICAgaWYgKCFpc1ZpZXdWaXNpYmxlKCkgfHwgIWlzVmlld0luV2luZG93KCkpCiAgICAg
ICAgIHJldHVybjsKLSAgICBtX2NvcnJlY3Rpb25QYW5lbC5zaG93KG1fd2tWaWV3LCB0eXBlLCBi
b3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIHJlcGxhY2VkU3RyaW5nLCByZXBsYWNlbWVudFN0
cmluZywgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpOworICAgIG1fY29ycmVjdGlvblBh
bmVsLnNob3cobV93a1ZpZXcsICptX2ltcGwsIHR5cGUsIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0
cmluZywgcmVwbGFjZWRTdHJpbmcsIHJlcGxhY2VtZW50U3RyaW5nLCBhbHRlcm5hdGl2ZVJlcGxh
Y2VtZW50U3RyaW5ncyk7CiAjZW5kaWYKIH0KIApAQCAtNTg3LDcgKzU4Nyw3IEBAIFN0cmluZyBQ
YWdlQ2xpZW50SW1wbDo6ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbFNvb24oV2ViQ29yZTo6UmVhc29u
Rm9yRGlzbWlzc2luZ0FsCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZWNvcmRBdXRvY29ycmVjdGlv
blJlc3BvbnNlKEF1dG9jb3JyZWN0aW9uUmVzcG9uc2VUeXBlIHJlc3BvbnNlVHlwZSwgY29uc3Qg
U3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZykK
IHsKICAgICBOU0NvcnJlY3Rpb25SZXNwb25zZSByZXNwb25zZSA9IHJlc3BvbnNlVHlwZSA9PSBB
dXRvY29ycmVjdGlvblJldmVydGVkID8gTlNDb3JyZWN0aW9uUmVzcG9uc2VSZXZlcnRlZCA6IE5T
Q29ycmVjdGlvblJlc3BvbnNlRWRpdGVkOwotICAgIENvcnJlY3Rpb25QYW5lbDo6cmVjb3JkQXV0
b2NvcnJlY3Rpb25SZXNwb25zZShtX3drVmlldywgcmVzcG9uc2UsIHJlcGxhY2VkU3RyaW5nLCBy
ZXBsYWNlbWVudFN0cmluZyk7CisgICAgQ29ycmVjdGlvblBhbmVsOjpyZWNvcmRBdXRvY29ycmVj
dGlvblJlc3BvbnNlKG1fd2tWaWV3LCBtX2ltcGwtPnNwZWxsQ2hlY2tlckRvY3VtZW50VGFnKCks
IHJlc3BvbnNlLCByZXBsYWNlZFN0cmluZywgcmVwbGFjZW1lbnRTdHJpbmcpOwogfQogCiB2b2lk
IFBhZ2VDbGllbnRJbXBsOjpyZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKFNjcm9s
bGJhclN0eWxlIG5ld1N0eWxlKQpAQCAtNjM1LDggKzYzNSw4IEBAIHZvaWQgUGFnZUNsaWVudElt
cGw6OnNob3dEaWN0YXRpb25BbHRlcm5hdGl2ZVVJKGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYg
Ym91bmRpCiB7CiAgICAgaWYgKCFpc1ZpZXdWaXNpYmxlKCkgfHwgIWlzVmlld0luV2luZG93KCkp
CiAgICAgICAgIHJldHVybjsKLSAgICBtX2FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci0+c2hv
d0FsdGVybmF0aXZlcyhtX3drVmlldywgYm91bmRpbmdCb3hPZkRpY3RhdGVkVGV4dCwgZGljdGF0
aW9uQ29udGV4dCwgXihOU1N0cmluZyogYWNjZXB0ZWRBbHRlcm5hdGl2ZSl7Ci0gICAgICAgIFtt
X3drVmlldyBoYW5kbGVBY2NlcHRlZEFsdGVybmF0aXZlVGV4dDphY2NlcHRlZEFsdGVybmF0aXZl
XTsKKyAgICBtX2FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlci0+c2hvd0FsdGVybmF0aXZlcyht
X3drVmlldywgYm91bmRpbmdCb3hPZkRpY3RhdGVkVGV4dCwgZGljdGF0aW9uQ29udGV4dCwgXihO
U1N0cmluZyAqYWNjZXB0ZWRBbHRlcm5hdGl2ZSkgeworICAgICAgICBtX2ltcGwtPmhhbmRsZUFj
Y2VwdGVkQWx0ZXJuYXRpdmVUZXh0KGFjY2VwdGVkQWx0ZXJuYXRpdmUpOwogICAgIH0pOwogfQog
Cg==
</data>
<flag name="review"
          id="289293"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264242</attachid>
            <date>2015-10-28 14:11:34 -0700</date>
            <delta_ts>2015-10-28 14:16:20 -0700</delta_ts>
            <desc>Part 10 - WKViewInternal tidbits</desc>
            <filename>10.diff</filename>
            <type>text/plain</type>
            <size>19011</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAwNWZhNzIzLi4xNDdjODhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTAg
QEAKKzIwMTUtMTAtMjggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgV0tWaWV3IGJlaW5nIGluc2lkZSBXS1dlYlZpZXcgbGVhZHMgdG8gd2VpcmQgQVBJ
IGlzc3VlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTUwMTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBfc3VwZXJE
b0NvbW1hbmRCeVNlbGVjdG9yOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX2NyZWF0ZURyYXdpbmdB
cmVhUHJveHldKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9wcm9jZXNzRGlkRXhpdF0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3BhZ2VDbG9zZWRdKTogRGVsZXRlZC4KKyAg
ICAgICAgKC1bV0tWaWV3IF9kaWRSZWxhdW5jaFByb2Nlc3NdKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bV0tWaWV3IF9jb252ZXJ0VG9EZXZpY2VTcGFjZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1b
V0tWaWV3IF9jb252ZXJ0VG9Vc2VyU3BhY2U6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmll
dyBfZXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3I6XSk6IERlbGV0ZWQuCisgICAgICAgICgt
W1dLUmVzcG9uZGVyQ2hhaW5TaW5rIGluaXRXaXRoUmVzcG9uZGVyQ2hhaW46XSk6IERlbGV0ZWQu
CisgICAgICAgICgtW1dLUmVzcG9uZGVyQ2hhaW5TaW5rIGRldGFjaF0pOiBEZWxldGVkLgorICAg
ICAgICAoLVtXS1Jlc3BvbmRlckNoYWluU2luayBkaWRSZWNlaXZlVW5oYW5kbGVkQ29tbWFuZF0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXS1Jlc3BvbmRlckNoYWluU2luayBub1Jlc3BvbmRlckZv
cjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tSZXNwb25kZXJDaGFpblNpbmsgZG9Db21tYW5k
QnlTZWxlY3RvcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tSZXNwb25kZXJDaGFpblNpbmsg
dHJ5VG9QZXJmb3JtOndpdGg6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9t
YWMvV0tWaWV3SW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAg
ICgtW1dLUmVzcG9uZGVyQ2hhaW5TaW5rIGluaXRXaXRoUmVzcG9uZGVyQ2hhaW46XSk6CisgICAg
ICAgICgtW1dLUmVzcG9uZGVyQ2hhaW5TaW5rIGRldGFjaF0pOgorICAgICAgICAoLVtXS1Jlc3Bv
bmRlckNoYWluU2luayBkaWRSZWNlaXZlVW5oYW5kbGVkQ29tbWFuZF0pOgorICAgICAgICAoLVtX
S1Jlc3BvbmRlckNoYWluU2luayBub1Jlc3BvbmRlckZvcjpdKToKKyAgICAgICAgKC1bV0tSZXNw
b25kZXJDaGFpblNpbmsgZG9Db21tYW5kQnlTZWxlY3RvcjpdKToKKyAgICAgICAgKC1bV0tSZXNw
b25kZXJDaGFpblNpbmsgdHJ5VG9QZXJmb3JtOndpdGg6XSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OnByb2Nlc3NEaWRFeGl0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
OnBhZ2VDbG9zZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZGlkUmVsYXVuY2hQ
cm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmV4ZWN1dGVTYXZlZENvbW1h
bmRCeVNlbGVjdG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlc2V0R2VzdHVy
ZUNvbnRyb2xsZXIpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjcmVhdGVEcmF3aW5n
QXJlYVByb3h5KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnByb2Nlc3NEaWRF
eGl0KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnBhZ2VDbG9zZWQpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkUmVsYXVuY2hQcm9jZXNzKToKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmNvbnZlcnRUb0RldmljZVNwYWNlKToKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmNvbnZlcnRUb1VzZXJTcGFjZSk6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpleGVjdXRlU2F2ZWRDb21tYW5kQnlTZWxlY3Rvcik6
CisgICAgICAgIE1vdmUgbW9zdCBvZiB0aGUgcmVzdCBvZiBXS1ZpZXdJbnRlcm5hbC5oJ3MgbWV0
aG9kcyB0byBXZWJWaWV3SW1wbC4KKwogMjAxNS0xMC0yOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpA
YXBwbGUuY29tPgogCiAgICAgICAgIFVzZSBSdW5Mb29wVGltZXIgaW4gRGF0YVVSTERlY29kZXIg
dG8gYXZvaWQgaXNzdWVzIHJlbGF0ZWQgdG8gcnVubG9vcHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCA1NjgwNTg2Li5mNjlhMTQ2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC00NiwxMyArNDYsMTEgQEAK
ICNpbXBvcnQgIk5hdGl2ZVdlYldoZWVsRXZlbnQuaCIKICNpbXBvcnQgIlBhZ2VDbGllbnRJbXBs
LmgiCiAjaW1wb3J0ICJQYXN0ZWJvYXJkVHlwZXMuaCIKLSNpbXBvcnQgIlJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHkuaCIKICNpbXBvcnQgIlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmgiCiAj
aW1wb3J0ICJSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJTdHJpbmdV
dGlsaXRpZXMuaCIKICNpbXBvcnQgIlRleHRDaGVja2VyLmgiCiAjaW1wb3J0ICJUZXh0Q2hlY2tl
clN0YXRlLmgiCi0jaW1wb3J0ICJUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lmgi
CiAjaW1wb3J0ICJXS0FQSUNhc3QuaCIKICNpbXBvcnQgIldLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXIuaCIKICNpbXBvcnQgIldLTGF5b3V0TW9kZS5oIgpAQCAtMTg3LDE1ICsxODUsNiBAQCBz
dHJ1Y3QgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7CiBAaW1wbGVtZW50YXRp
b24gV0tWaWV3RGF0YQogQGVuZAogCi1AaW50ZXJmYWNlIFdLUmVzcG9uZGVyQ2hhaW5TaW5rIDog
TlNSZXNwb25kZXIgewotICAgIE5TUmVzcG9uZGVyICpfbGFzdFJlc3BvbmRlckluQ2hhaW47Ci0g
ICAgYm9vbCBfZGlkUmVjZWl2ZVVuaGFuZGxlZENvbW1hbmQ7Ci19Ci0tIChpZClpbml0V2l0aFJl
c3BvbmRlckNoYWluOihOU1Jlc3BvbmRlciAqKWNoYWluOwotLSAodm9pZClkZXRhY2g7Ci0tIChi
b29sKWRpZFJlY2VpdmVVbmhhbmRsZWRDb21tYW5kOwotQGVuZAotCiBAaW50ZXJmYWNlIFdLVmll
dyAoKSA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4KIEBlbmQKIApAQCAtMjAzMiw2ICsyMDIxLDExIEBA
IHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5n
LCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiB9
CiAKKy0gKHZvaWQpX3N1cGVyRG9Db21tYW5kQnlTZWxlY3RvcjooU0VMKXNlbGVjdG9yCit7Cisg
ICAgW3N1cGVyIGRvQ29tbWFuZEJ5U2VsZWN0b3I6c2VsZWN0b3JdOworfQorCiAtIChOU0FycmF5
ICopdmFsaWRBdHRyaWJ1dGVzRm9yTWFya2VkVGV4dAogewogICAgIHN0YXRpYyBOU0FycmF5ICp2
YWxpZEF0dHJpYnV0ZXM7CkBAIC0yMTkzLDM2ICsyMTg3LDYgQEAgc3RhdGljIHZvaWQgZXh0cmFj
dFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlv
blVuZGUKICAgICBfZGF0YS0+X2ltcGwtPnF1aWNrTG9va1dpdGhFdmVudChldmVudCk7CiB9CiAK
LS0gKHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk+KV9jcmVhdGVEcmF3
aW5nQXJlYVByb3h5Ci17Ci0gICAgaWYgKFtbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRl
ZmF1bHRzXSBvYmplY3RGb3JLZXk6QCJXZWJLaXQyVXNlUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWEiXSBib29sVmFsdWVdKQotICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5PigqX2RhdGEtPl9wYWdlKTsKLQotICAgIHJldHVybiBz
dGQ6Om1ha2VfdW5pcXVlPFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk+KCpfZGF0
YS0+X3BhZ2UpOwotfQotCi0tICh2b2lkKV9wcm9jZXNzRGlkRXhpdAotewotICAgIF9kYXRhLT5f
aW1wbC0+bm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbigpOwotCi0g
ICAgaWYgKF9kYXRhLT5faW1wbC0+bGF5ZXJIb3N0aW5nVmlldygpKQotICAgICAgICBfZGF0YS0+
X2ltcGwtPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIobmlsKTsKLQotICAgIF9k
YXRhLT5faW1wbC0+dXBkYXRlUmVtb3RlQWNjZXNzaWJpbGl0eVJlZ2lzdHJhdGlvbihmYWxzZSk7
Ci0KLSAgICBfZGF0YS0+X2ltcGwtPnJlc2V0R2VzdHVyZUNvbnRyb2xsZXIoKTsKLX0KLQotLSAo
dm9pZClfcGFnZUNsb3NlZAotewotICAgIF9kYXRhLT5faW1wbC0+dXBkYXRlUmVtb3RlQWNjZXNz
aWJpbGl0eVJlZ2lzdHJhdGlvbihmYWxzZSk7Ci19Ci0KLS0gKHZvaWQpX2RpZFJlbGF1bmNoUHJv
Y2VzcwotewotICAgIF9kYXRhLT5faW1wbC0+YWNjZXNzaWJpbGl0eVJlZ2lzdGVyVUlQcm9jZXNz
VG9rZW5zKCk7Ci19Ci0KIC0gKHZvaWQpX3NldFVzZXJJbnRlcmZhY2VJdGVtU3RhdGU6KE5TU3Ry
aW5nICopY29tbWFuZE5hbWUgZW5hYmxlZDooQk9PTClpc0VuYWJsZWQgc3RhdGU6KGludCluZXdT
dGF0ZQogewogICAgIFZhbGlkYXRpb25WZWN0b3IgaXRlbXMgPSBfZGF0YS0+X3ZhbGlkYXRpb25N
YXAudGFrZShjb21tYW5kTmFtZSk7CkBAIC0yMjYwLDE2ICsyMjI0LDYgQEAgc3RhdGljIHZvaWQg
ZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21w
b3NpdGlvblVuZGUKICAgICBfZGF0YS0+X2tleURvd25FdmVudEJlaW5nUmVzZW50ID0gbnVsbHB0
cjsKIH0KIAotLSAoTlNSZWN0KV9jb252ZXJ0VG9EZXZpY2VTcGFjZTooTlNSZWN0KXJlY3QKLXsK
LSAgICByZXR1cm4gdG9EZXZpY2VTcGFjZShyZWN0LCBbc2VsZiB3aW5kb3ddKTsKLX0KLQotLSAo
TlNSZWN0KV9jb252ZXJ0VG9Vc2VyU3BhY2U6KE5TUmVjdClyZWN0Ci17Ci0gICAgcmV0dXJuIHRv
VXNlclNwYWNlKHJlY3QsIFtzZWxmIHdpbmRvd10pOwotfQotCiAtIChOU1RyYWNraW5nUmVjdFRh
ZylhZGRUcmFja2luZ1JlY3Q6KE5TUmVjdClyZWN0IG93bmVyOihpZClvd25lciB1c2VyRGF0YToo
dm9pZCAqKWRhdGEgYXNzdW1lSW5zaWRlOihCT09MKWFzc3VtZUluc2lkZQogewogICAgIHJldHVy
biBfZGF0YS0+X2ltcGwtPmFkZFRyYWNraW5nUmVjdChOU1JlY3RUb0NHUmVjdChyZWN0KSwgb3du
ZXIsIGRhdGEsIGFzc3VtZUluc2lkZSk7CkBAIC0yMzIzLDE3ICsyMjc3LDYgQEAgc3RhdGljIHZv
aWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxD
b21wb3NpdGlvblVuZGUKICAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5uYW1lc09mUHJvbWlzZWRG
aWxlc0Ryb3BwZWRBdERlc3RpbmF0aW9uKGRyb3BEZXN0aW5hdGlvbik7CiB9CiAKLS0gKGJvb2wp
X2V4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yOihTRUwpc2VsZWN0b3IKLXsKLSAgICBMT0co
VGV4dElucHV0LCAiRXhlY3V0aW5nIHByZXZpb3VzbHkgc2F2ZWQgY29tbWFuZCAlcyIsIHNlbF9n
ZXROYW1lKHNlbGVjdG9yKSk7Ci0gICAgLy8gVGhlIHNpbmsgZG9lcyB0d28gdGhpbmdzOiAxKSBU
ZWxscyB1cyBpZiB0aGUgcmVzcG9uZGVyIHdlbnQgdW5oYW5kbGVkLCBhbmQKLSAgICAvLyAyKSBw
cmV2ZW50cyBhbnkgTlNCZWVwOyB3ZSBkb24ndCBldmVyIHdhbnQgdG8gYmVlcCBoZXJlLgotICAg
IFJldGFpblB0cjxXS1Jlc3BvbmRlckNoYWluU2luaz4gc2luayA9IGFkb3B0TlMoW1tXS1Jlc3Bv
bmRlckNoYWluU2luayBhbGxvY10gaW5pdFdpdGhSZXNwb25kZXJDaGFpbjpzZWxmXSk7Ci0gICAg
W3N1cGVyIGRvQ29tbWFuZEJ5U2VsZWN0b3I6c2VsZWN0b3JdOwotICAgIFtzaW5rIGRldGFjaF07
Ci0gICAgcmV0dXJuICFbc2luayBkaWRSZWNlaXZlVW5oYW5kbGVkQ29tbWFuZF07Ci19Ci0KIC0g
KGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgcHJvY2Vzc1Bvb2w6KFdl
YlByb2Nlc3NQb29sJilwcm9jZXNzUG9vbCBjb25maWd1cmF0aW9uOihSZWY8QVBJOjpQYWdlQ29u
ZmlndXJhdGlvbj4mJiljb25maWd1cmF0aW9uIHdlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcK
IHsKICAgICBzZWxmID0gW3N1cGVyIGluaXRXaXRoRnJhbWU6ZnJhbWVdOwpAQCAtMjk1NCw2MCAr
Mjg5Nyw0IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmlu
ZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKIEBlbmQKIAotQGltcGxlbWVudGF0
aW9uIFdLUmVzcG9uZGVyQ2hhaW5TaW5rCi0KLS0gKGlkKWluaXRXaXRoUmVzcG9uZGVyQ2hhaW46
KE5TUmVzcG9uZGVyICopY2hhaW4KLXsKLSAgICBzZWxmID0gW3N1cGVyIGluaXRdOwotICAgIGlm
ICghc2VsZikKLSAgICAgICAgcmV0dXJuIG5pbDsKLSAgICBfbGFzdFJlc3BvbmRlckluQ2hhaW4g
PSBjaGFpbjsKLSAgICB3aGlsZSAoTlNSZXNwb25kZXIgKm5leHQgPSBbX2xhc3RSZXNwb25kZXJJ
bkNoYWluIG5leHRSZXNwb25kZXJdKQotICAgICAgICBfbGFzdFJlc3BvbmRlckluQ2hhaW4gPSBu
ZXh0OwotICAgIFtfbGFzdFJlc3BvbmRlckluQ2hhaW4gc2V0TmV4dFJlc3BvbmRlcjpzZWxmXTsK
LSAgICByZXR1cm4gc2VsZjsKLX0KLQotLSAodm9pZClkZXRhY2gKLXsKLSAgICAvLyBUaGlzIGFz
c3VtZXMgdGhhdCB0aGUgcmVzcG9uZGVyIGNoYWluIHdhcyBlaXRoZXIgdW5tb2RpZmllZCBzaW5j
ZQotICAgIC8vIC1pbml0V2l0aFJlc3BvbmRlckNoYWluOiB3YXMgY2FsbGVkLCBvciB3YXMgbW9k
aWZpZWQgaW4gc3VjaCBhIHdheQotICAgIC8vIHRoYXQgX2xhc3RSZXNwb25kZXJJbkNoYWluIGlz
IHN0aWxsIGluIHRoZSBjaGFpbiwgYW5kIHNlbGYgd2FzIG5vdAotICAgIC8vIG1vdmVkIGVhcmxp
ZXIgaW4gdGhlIGNoYWluIHRoYW4gX2xhc3RSZXNwb25kZXJJbkNoYWluLgotICAgIE5TUmVzcG9u
ZGVyICpyZXNwb25kZXJCZWZvcmVTZWxmID0gX2xhc3RSZXNwb25kZXJJbkNoYWluOyAgICAKLSAg
ICBOU1Jlc3BvbmRlciAqbmV4dCA9IFtyZXNwb25kZXJCZWZvcmVTZWxmIG5leHRSZXNwb25kZXJd
OwotICAgIGZvciAoOyBuZXh0ICYmIG5leHQgIT0gc2VsZjsgbmV4dCA9IFtuZXh0IG5leHRSZXNw
b25kZXJdKQotICAgICAgICByZXNwb25kZXJCZWZvcmVTZWxmID0gbmV4dDsKLSAgICAKLSAgICAv
LyBOb3RoaW5nIHRvIGJlIGRvbmUgaWYgd2UgYXJlIG5vIGxvbmdlciBpbiB0aGUgcmVzcG9uZGVy
IGNoYWluLgotICAgIGlmIChuZXh0ICE9IHNlbGYpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAg
ICBbcmVzcG9uZGVyQmVmb3JlU2VsZiBzZXROZXh0UmVzcG9uZGVyOltzZWxmIG5leHRSZXNwb25k
ZXJdXTsKLSAgICBfbGFzdFJlc3BvbmRlckluQ2hhaW4gPSBuaWw7Ci19Ci0KLS0gKGJvb2wpZGlk
UmVjZWl2ZVVuaGFuZGxlZENvbW1hbmQKLXsKLSAgICByZXR1cm4gX2RpZFJlY2VpdmVVbmhhbmRs
ZWRDb21tYW5kOwotfQotCi0tICh2b2lkKW5vUmVzcG9uZGVyRm9yOihTRUwpc2VsZWN0b3IKLXsK
LSAgICBfZGlkUmVjZWl2ZVVuaGFuZGxlZENvbW1hbmQgPSB0cnVlOwotfQotCi0tICh2b2lkKWRv
Q29tbWFuZEJ5U2VsZWN0b3I6KFNFTClzZWxlY3RvcgotewotICAgIF9kaWRSZWNlaXZlVW5oYW5k
bGVkQ29tbWFuZCA9IHRydWU7Ci19Ci0KLS0gKEJPT0wpdHJ5VG9QZXJmb3JtOihTRUwpYWN0aW9u
IHdpdGg6KGlkKW9iamVjdAotewotICAgIF9kaWRSZWNlaXZlVW5oYW5kbGVkQ29tbWFuZCA9IHRy
dWU7Ci0gICAgcmV0dXJuIFlFUzsKLX0KLQotQGVuZAotCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFD
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50
ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFs
LmgKaW5kZXggMDhmYzdkMC4uNGZkN2Y5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCkBAIC0zMSw1MSArMzEsMzQgQEAKICNpbXBv
cnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9WZWN0b3IuaD4KIAotQGNsYXNzIF9X
S1JlbW90ZU9iamVjdFJlZ2lzdHJ5OwotCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIFBhZ2VDb25m
aWd1cmF0aW9uOwogfQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKLWNsYXNzIERyYXdpbmdBcmVhUHJv
eHk7CiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKIH0KIAogQGNsYXNzIFdLV2ViVmlldzsKICNpZiBX
S19BUElfRU5BQkxFRAorQGNsYXNzIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5OwogQGNsYXNzIF9X
S1RodW1ibmFpbFZpZXc7CiAjZW5kaWYKIAogQGludGVyZmFjZSBXS1ZpZXcgKCkKICNpZiBXS19B
UElfRU5BQkxFRAogLSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZSBw
cm9jZXNzUG9vbDooV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCYpcHJvY2Vzc1Bvb2wgY29uZmlndXJh
dGlvbjooUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYpY29uZmlndXJhdGlvbiB3ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3OwotI2VuZGlmCi0KLS0gKHN0ZDo6dW5pcXVlX3B0cjxXZWJL
aXQ6OkRyYXdpbmdBcmVhUHJveHk+KV9jcmVhdGVEcmF3aW5nQXJlYVByb3h5OwotLSAodm9pZClf
cHJvY2Vzc0RpZEV4aXQ7Ci0tICh2b2lkKV9wYWdlQ2xvc2VkOwotLSAodm9pZClfZGlkUmVsYXVu
Y2hQcm9jZXNzOwotLSAodm9pZClfc2V0VXNlckludGVyZmFjZUl0ZW1TdGF0ZTooTlNTdHJpbmcg
Kiljb21tYW5kTmFtZSBlbmFibGVkOihCT09MKWlzRW5hYmxlZCBzdGF0ZTooaW50KW5ld1N0YXRl
OwotLSAodm9pZClfZG9uZVdpdGhLZXlFdmVudDooTlNFdmVudCAqKWV2ZW50IGV2ZW50V2FzSGFu
ZGxlZDooQk9PTClldmVudFdhc0hhbmRsZWQ7Ci0tIChib29sKV9leGVjdXRlU2F2ZWRDb21tYW5k
QnlTZWxlY3RvcjooU0VMKXNlbGVjdG9yOwotLSAoTlNSZWN0KV9jb252ZXJ0VG9EZXZpY2VTcGFj
ZTooTlNSZWN0KXJlY3Q7Ci0tIChOU1JlY3QpX2NvbnZlcnRUb1VzZXJTcGFjZTooTlNSZWN0KXJl
Y3Q7Ci0KLSNpZiBXS19BUElfRU5BQkxFRAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0VGh1bWJuYWlsVmlldzopIF9XS1RodW1ibmFpbFZpZXcgKl90aHVtYm5haWxWaWV3OworQHBy
b3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqX3Jl
bW90ZU9iamVjdFJlZ2lzdHJ5OwogI2VuZGlmCiAKKy0gKHZvaWQpX2RvbmVXaXRoS2V5RXZlbnQ6
KE5TRXZlbnQgKilldmVudCBldmVudFdhc0hhbmRsZWQ6KEJPT0wpZXZlbnRXYXNIYW5kbGVkOwog
LSAodm9pZClfYWRkRm9udFBhbmVsT2JzZXJ2ZXI7CiAKICNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwMTEwMAogLSAodm9pZClfc3RhcnRXaW5kb3dEcmFnOwogI2VuZGlm
CiAKLSNpZiBXS19BUElfRU5BQkxFRAotQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBf
V0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqX3JlbW90ZU9iamVjdFJlZ2lzdHJ5OwotI2VuZGlmCi0K
IEBlbmQKIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5oCmluZGV4IDMzZGFmN2EuLmMwYzM5ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCkBAIC01Niw2ICs1Niw3IEBAIE9CSkNfQ0xBU1MgX1dL
VGh1bWJuYWlsVmlldzsKIC0gKHZvaWQpX3N1cGVyTWFnbmlmeVdpdGhFdmVudDooTlNFdmVudCAq
KWV2ZW50OwogLSAodm9pZClfc3VwZXJTbWFydE1hZ25pZnlXaXRoRXZlbnQ6KE5TRXZlbnQgKill
dmVudDsKIC0gKGlkKV9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTooTlNTdHJpbmcg
KilhdHRyaWJ1dGU7CistICh2b2lkKV9zdXBlckRvQ29tbWFuZEJ5U2VsZWN0b3I6KFNFTClzZWxl
Y3RvcjsKIAogLy8gVGhpcyBpcyBhIGhhY2s7IHRoZXNlIHRoaW5ncyBsaXZlIGNhbiBsaXZlIG9u
IGEgY2F0ZWdvcnkgKGUuZy4gV0tWaWV3IChQcml2YXRlKSkgYnV0IFdLVmlldyBpdHNlbGYgY29u
Zm9ybXMgdG8gdGhpcyBwcm90b2NvbC4KIC8vIFRoZXkncmUgbm90IGFjdHVhbGx5IG9wdGlvbmFs
LgpAQCAtNzMsNiArNzQsNyBAQCBPQkpDX0NMQVNTIF9XS1RodW1ibmFpbFZpZXc7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCitjbGFzcyBEcmF3aW5nQXJlYVByb3h5OwogY2xhc3MgVmlld0dlc3R1
cmVDb250cm9sbGVyOwogY2xhc3MgV2ViRWRpdENvbW1hbmRQcm94eTsKIGNsYXNzIFdlYlBhZ2VQ
cm94eTsKQEAgLTg2LDYgKzg4LDEwIEBAIHB1YmxpYzoKIAogICAgIH5XZWJWaWV3SW1wbCgpOwog
CisgICAgdm9pZCBwcm9jZXNzRGlkRXhpdCgpOworICAgIHZvaWQgcGFnZUNsb3NlZCgpOworICAg
IHZvaWQgZGlkUmVsYXVuY2hQcm9jZXNzKCk7CisKICAgICB2b2lkIHNldERyYXdzQmFja2dyb3Vu
ZChib29sKTsKICAgICBib29sIGRyYXdzQmFja2dyb3VuZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0
RHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoYm9vbCk7CkBAIC0xMTAsNiArMTE2LDcgQEAgcHVi
bGljOgogICAgIHZvaWQgc2V0Rml4ZWRMYXlvdXRTaXplKENHU2l6ZSk7CiAgICAgQ0dTaXplIGZp
eGVkTGF5b3V0U2l6ZSgpIGNvbnN0OwogCisgICAgc3RkOjp1bmlxdWVfcHRyPERyYXdpbmdBcmVh
UHJveHk+IGNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKTsKICAgICB2b2lkIHNldERyYXdpbmdBcmVh
U2l6ZShDR1NpemUpOwogCiAgICAgdm9pZCBzZXRBdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJ
bnNldHMoYm9vbCk7CkBAIC0yODcsNyArMjk0LDYgQEAgcHVibGljOgogCiAgICAgVmlld0dlc3R1
cmVDb250cm9sbGVyKiBnZXN0dXJlQ29udHJvbGxlcigpIHsgcmV0dXJuIG1fZ2VzdHVyZUNvbnRy
b2xsZXIuZ2V0KCk7IH0KICAgICBWaWV3R2VzdHVyZUNvbnRyb2xsZXImIGVuc3VyZUdlc3R1cmVD
b250cm9sbGVyKCk7Ci0gICAgdm9pZCByZXNldEdlc3R1cmVDb250cm9sbGVyKCk7CiAgICAgdm9p
ZCBzZXRBbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcyhib29sKTsKICAgICBib29s
IGFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzKCkgY29uc3QgeyByZXR1cm4gbV9h
bGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlczsgfQogICAgIHZvaWQgc2V0QWxsb3dz
TWFnbmlmaWNhdGlvbihib29sKTsKQEAgLTMxMiw2ICszMTgsOCBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKE5TRXZlbnQgKik7CiAgICAgdm9p
ZCBnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlRnJvbVZpZXdPbmx5KE5TRXZlbnQg
Kik7CiAKKyAgICBib29sIGV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yKFNFTCk7CisKIHBy
aXZhdGU6CiAgICAgV2Vha1B0cjxXZWJWaWV3SW1wbD4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJu
IG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCAxMDdhNzQ0Li5kYzdmMjM4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0z
Nyw3ICszNyw5IEBACiAjaW1wb3J0ICJOYXRpdmVXZWJXaGVlbEV2ZW50LmgiCiAjaW1wb3J0ICJQ
YWdlQ2xpZW50LmgiCiAjaW1wb3J0ICJQYXN0ZWJvYXJkVHlwZXMuaCIKKyNpbXBvcnQgIlJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCIKICNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5o
IgorI2ltcG9ydCAiVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oIgogI2ltcG9y
dCAiVmlld0dlc3R1cmVDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS0ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIuaCIKQEAg
LTMyMSw2ICszMjMsNzIgQEAgc3RhdGljIHZvaWQqIGtleVZhbHVlT2JzZXJ2aW5nQ29udGV4dCA9
ICZrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQ7CiAKIEBlbmQKIAorQGludGVyZmFjZSBXS1Jlc3Bv
bmRlckNoYWluU2luayA6IE5TUmVzcG9uZGVyIHsKKyAgICBOU1Jlc3BvbmRlciAqX2xhc3RSZXNw
b25kZXJJbkNoYWluOworICAgIGJvb2wgX2RpZFJlY2VpdmVVbmhhbmRsZWRDb21tYW5kOworfQor
CistIChpZClpbml0V2l0aFJlc3BvbmRlckNoYWluOihOU1Jlc3BvbmRlciAqKWNoYWluOworLSAo
dm9pZClkZXRhY2g7CistIChib29sKWRpZFJlY2VpdmVVbmhhbmRsZWRDb21tYW5kOworQGVuZAor
CitAaW1wbGVtZW50YXRpb24gV0tSZXNwb25kZXJDaGFpblNpbmsKKworLSAoaWQpaW5pdFdpdGhS
ZXNwb25kZXJDaGFpbjooTlNSZXNwb25kZXIgKiljaGFpbgoreworICAgIHNlbGYgPSBbc3VwZXIg
aW5pdF07CisgICAgaWYgKCFzZWxmKQorICAgICAgICByZXR1cm4gbmlsOworICAgIF9sYXN0UmVz
cG9uZGVySW5DaGFpbiA9IGNoYWluOworICAgIHdoaWxlIChOU1Jlc3BvbmRlciAqbmV4dCA9IFtf
bGFzdFJlc3BvbmRlckluQ2hhaW4gbmV4dFJlc3BvbmRlcl0pCisgICAgICAgIF9sYXN0UmVzcG9u
ZGVySW5DaGFpbiA9IG5leHQ7CisgICAgW19sYXN0UmVzcG9uZGVySW5DaGFpbiBzZXROZXh0UmVz
cG9uZGVyOnNlbGZdOworICAgIHJldHVybiBzZWxmOworfQorCistICh2b2lkKWRldGFjaAorewor
ICAgIC8vIFRoaXMgYXNzdW1lcyB0aGF0IHRoZSByZXNwb25kZXIgY2hhaW4gd2FzIGVpdGhlciB1
bm1vZGlmaWVkIHNpbmNlCisgICAgLy8gLWluaXRXaXRoUmVzcG9uZGVyQ2hhaW46IHdhcyBjYWxs
ZWQsIG9yIHdhcyBtb2RpZmllZCBpbiBzdWNoIGEgd2F5CisgICAgLy8gdGhhdCBfbGFzdFJlc3Bv
bmRlckluQ2hhaW4gaXMgc3RpbGwgaW4gdGhlIGNoYWluLCBhbmQgc2VsZiB3YXMgbm90CisgICAg
Ly8gbW92ZWQgZWFybGllciBpbiB0aGUgY2hhaW4gdGhhbiBfbGFzdFJlc3BvbmRlckluQ2hhaW4u
CisgICAgTlNSZXNwb25kZXIgKnJlc3BvbmRlckJlZm9yZVNlbGYgPSBfbGFzdFJlc3BvbmRlcklu
Q2hhaW47CisgICAgTlNSZXNwb25kZXIgKm5leHQgPSBbcmVzcG9uZGVyQmVmb3JlU2VsZiBuZXh0
UmVzcG9uZGVyXTsKKyAgICBmb3IgKDsgbmV4dCAmJiBuZXh0ICE9IHNlbGY7IG5leHQgPSBbbmV4
dCBuZXh0UmVzcG9uZGVyXSkKKyAgICAgICAgcmVzcG9uZGVyQmVmb3JlU2VsZiA9IG5leHQ7CisK
KyAgICAvLyBOb3RoaW5nIHRvIGJlIGRvbmUgaWYgd2UgYXJlIG5vIGxvbmdlciBpbiB0aGUgcmVz
cG9uZGVyIGNoYWluLgorICAgIGlmIChuZXh0ICE9IHNlbGYpCisgICAgICAgIHJldHVybjsKKwor
ICAgIFtyZXNwb25kZXJCZWZvcmVTZWxmIHNldE5leHRSZXNwb25kZXI6W3NlbGYgbmV4dFJlc3Bv
bmRlcl1dOworICAgIF9sYXN0UmVzcG9uZGVySW5DaGFpbiA9IG5pbDsKK30KKworLSAoYm9vbClk
aWRSZWNlaXZlVW5oYW5kbGVkQ29tbWFuZAoreworICAgIHJldHVybiBfZGlkUmVjZWl2ZVVuaGFu
ZGxlZENvbW1hbmQ7Cit9CisKKy0gKHZvaWQpbm9SZXNwb25kZXJGb3I6KFNFTClzZWxlY3Rvcgor
eworICAgIF9kaWRSZWNlaXZlVW5oYW5kbGVkQ29tbWFuZCA9IHRydWU7Cit9CisKKy0gKHZvaWQp
ZG9Db21tYW5kQnlTZWxlY3RvcjooU0VMKXNlbGVjdG9yCit7CisgICAgX2RpZFJlY2VpdmVVbmhh
bmRsZWRDb21tYW5kID0gdHJ1ZTsKK30KKworLSAoQk9PTCl0cnlUb1BlcmZvcm06KFNFTClhY3Rp
b24gd2l0aDooaWQpb2JqZWN0Cit7CisgICAgX2RpZFJlY2VpdmVVbmhhbmRsZWRDb21tYW5kID0g
dHJ1ZTsKKyAgICByZXR1cm4gWUVTOworfQorCitAZW5kCisKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBzdGF0aWMgTlNUcmFja2luZ0FyZWFPcHRpb25zIHRyYWNraW5nQXJlYU9wdGlvbnMoKQpAQCAt
Mzc1LDYgKzQ0MywzNiBAQCBXZWJWaWV3SW1wbDo6fldlYlZpZXdJbXBsKCkKICNlbmRpZgogfQog
CitzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5PiBXZWJWaWV3SW1wbDo6
Y3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpCit7CisgICAgaWYgKFtbW05TVXNlckRlZmF1bHRzIHN0
YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JLZXk6QCJXZWJLaXQyVXNlUmVtb3RlTGF5ZXJU
cmVlRHJhd2luZ0FyZWEiXSBib29sVmFsdWVdKQorICAgICAgICByZXR1cm4gc3RkOjptYWtlX3Vu
aXF1ZTxSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5PihtX3BhZ2UpOworCisgICAgcmV0
dXJuIHN0ZDo6bWFrZV91bmlxdWU8VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eT4o
bV9wYWdlKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6cHJvY2Vzc0RpZEV4aXQoKQoreworICAg
IG5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb24oKTsKKworICAgIGlm
IChtX2xheWVySG9zdGluZ1ZpZXcpCisgICAgICAgIHNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdS
b290TGF5ZXIobmlsKTsKKworICAgIHVwZGF0ZVJlbW90ZUFjY2Vzc2liaWxpdHlSZWdpc3RyYXRp
b24oZmFsc2UpOworCisgICAgbV9nZXN0dXJlQ29udHJvbGxlciA9IG51bGxwdHI7Cit9CisKK3Zv
aWQgV2ViVmlld0ltcGw6OnBhZ2VDbG9zZWQoKQoreworICAgIHVwZGF0ZVJlbW90ZUFjY2Vzc2li
aWxpdHlSZWdpc3RyYXRpb24oZmFsc2UpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpkaWRSZWxh
dW5jaFByb2Nlc3MoKQoreworICAgIGFjY2Vzc2liaWxpdHlSZWdpc3RlclVJUHJvY2Vzc1Rva2Vu
cygpOworfQorCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXREcmF3c0JhY2tncm91bmQoYm9vbCBkcmF3
c0JhY2tncm91bmQpCiB7CiAgICAgbV9wYWdlLnNldERyYXdzQmFja2dyb3VuZChkcmF3c0JhY2tn
cm91bmQpOwpAQCAtMjE1NywxMSArMjI1NSw2IEBAIFZpZXdHZXN0dXJlQ29udHJvbGxlciYgV2Vi
Vmlld0ltcGw6OmVuc3VyZUdlc3R1cmVDb250cm9sbGVyKCkKICAgICByZXR1cm4gKm1fZ2VzdHVy
ZUNvbnRyb2xsZXI7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OnJlc2V0R2VzdHVyZUNvbnRyb2xs
ZXIoKQotewotICAgIG1fZ2VzdHVyZUNvbnRyb2xsZXIgPSBudWxscHRyOwotfQotCiB2b2lkIFdl
YlZpZXdJbXBsOjpzZXRBbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcyhib29sIGFs
bG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzKQogewogICAgIG1fYWxsb3dzQmFja0Zv
cndhcmROYXZpZ2F0aW9uR2VzdHVyZXMgPSBhbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0
dXJlczsKQEAgLTIzNDksNiArMjQ0MiwxNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpnZXN0dXJlRXZl
bnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlRnJvbVZpZXdPbmx5KE5TRXZlbnQgKmV2ZW50KQogI2Vu
ZGlmCiB9CiAKK2Jvb2wgV2ViVmlld0ltcGw6OmV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9y
KFNFTCBzZWxlY3RvcikKK3sKKyAgICBMT0coVGV4dElucHV0LCAiRXhlY3V0aW5nIHByZXZpb3Vz
bHkgc2F2ZWQgY29tbWFuZCAlcyIsIHNlbF9nZXROYW1lKHNlbGVjdG9yKSk7CisgICAgLy8gVGhl
IHNpbmsgZG9lcyB0d28gdGhpbmdzOiAxKSBUZWxscyB1cyBpZiB0aGUgcmVzcG9uZGVyIHdlbnQg
dW5oYW5kbGVkLCBhbmQKKyAgICAvLyAyKSBwcmV2ZW50cyBhbnkgTlNCZWVwOyB3ZSBkb24ndCBl
dmVyIHdhbnQgdG8gYmVlcCBoZXJlLgorICAgIFJldGFpblB0cjxXS1Jlc3BvbmRlckNoYWluU2lu
az4gc2luayA9IGFkb3B0TlMoW1tXS1Jlc3BvbmRlckNoYWluU2luayBhbGxvY10gaW5pdFdpdGhS
ZXNwb25kZXJDaGFpbjptX3ZpZXddKTsKKyAgICBbbV92aWV3IF9zdXBlckRvQ29tbWFuZEJ5U2Vs
ZWN0b3I6c2VsZWN0b3JdOworICAgIFtzaW5rIGRldGFjaF07CisgICAgcmV0dXJuICFbc2luayBk
aWRSZWNlaXZlVW5oYW5kbGVkQ29tbWFuZF07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAog
CiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggYzQ3YmFlMi4uYTE1ZjhiNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCkBAIC0xMTEsNyArMTEx
LDcgQEAgUGFnZUNsaWVudEltcGw6On5QYWdlQ2xpZW50SW1wbCgpCiAKIHN0ZDo6dW5pcXVlX3B0
cjxEcmF3aW5nQXJlYVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94
eSgpCiB7Ci0gICAgcmV0dXJuIFttX3drVmlldyBfY3JlYXRlRHJhd2luZ0FyZWFQcm94eV07Cisg
ICAgcmV0dXJuIG1faW1wbC0+Y3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpOwogfQogCiB2b2lkIFBh
Z2VDbGllbnRJbXBsOjpzZXRWaWV3TmVlZHNEaXNwbGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3Qm
IHJlY3QpCkBAIC0yNDEsMTIgKzI0MSwxMiBAQCBDb2xvclNwYWNlRGF0YSBQYWdlQ2xpZW50SW1w
bDo6Y29sb3JTcGFjZSgpCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnByb2Nlc3NEaWRFeGl0KCkK
IHsKLSAgICBbbV93a1ZpZXcgX3Byb2Nlc3NEaWRFeGl0XTsKKyAgICBtX2ltcGwtPnByb2Nlc3NE
aWRFeGl0KCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnBhZ2VDbG9zZWQoKQogewotICAg
IFttX3drVmlldyBfcGFnZUNsb3NlZF07CisgICAgbV9pbXBsLT5wYWdlQ2xvc2VkKCk7CiAjaWYg
VVNFKERJQ1RBVElPTl9BTFRFUk5BVElWRVMpCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRVSUNvbnRy
b2xsZXItPmNsZWFyKCk7CiAjZW5kaWYKQEAgLTI1NCw3ICsyNTQsNyBAQCB2b2lkIFBhZ2VDbGll
bnRJbXBsOjpwYWdlQ2xvc2VkKCkKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUmVsYXVuY2hQ
cm9jZXNzKCkKIHsKLSAgICBbbV93a1ZpZXcgX2RpZFJlbGF1bmNoUHJvY2Vzc107CisgICAgbV9p
bXBsLT5kaWRSZWxhdW5jaFByb2Nlc3MoKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cHJl
ZmVyZW5jZXNEaWRDaGFuZ2UoKQpAQCAtNDA1LDEyICs0MDUsMTIgQEAgdm9pZCBQYWdlQ2xpZW50
SW1wbDo6bm90aWZ5QXBwbGljYXRpb25BYm91dElucHV0Q29udGV4dENoYW5nZSgpCiAKIEZsb2F0
UmVjdCBQYWdlQ2xpZW50SW1wbDo6Y29udmVydFRvRGV2aWNlU3BhY2UoY29uc3QgRmxvYXRSZWN0
JiByZWN0KQogewotICAgIHJldHVybiBbbV93a1ZpZXcgX2NvbnZlcnRUb0RldmljZVNwYWNlOnJl
Y3RdOworICAgIHJldHVybiB0b0RldmljZVNwYWNlKHJlY3QsIFttX3drVmlldyB3aW5kb3ddKTsK
IH0KIAogRmxvYXRSZWN0IFBhZ2VDbGllbnRJbXBsOjpjb252ZXJ0VG9Vc2VyU3BhY2UoY29uc3Qg
RmxvYXRSZWN0JiByZWN0KQogewotICAgIHJldHVybiBbbV93a1ZpZXcgX2NvbnZlcnRUb1VzZXJT
cGFjZTpyZWN0XTsKKyAgICByZXR1cm4gdG9Vc2VyU3BhY2UocmVjdCwgW21fd2tWaWV3IHdpbmRv
d10pOwogfQogICAgCiBJbnRQb2ludCBQYWdlQ2xpZW50SW1wbDo6c2NyZWVuVG9Sb290Vmlldyhj
b25zdCBJbnRQb2ludCYgcG9pbnQpCkBAIC02MTcsNyArNjE3LDcgQEAgdm9pZCBQYWdlQ2xpZW50
SW1wbDo6aW50cmluc2ljQ29udGVudFNpemVEaWRDaGFuZ2UoY29uc3QgSW50U2l6ZSYgaW50cmlu
c2ljQ29udGUKIAogYm9vbCBQYWdlQ2xpZW50SW1wbDo6ZXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2Vs
ZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxlY3RvclN0cmluZykKIHsKLSAgICByZXR1cm4gW21fd2tW
aWV3IF9leGVjdXRlU2F2ZWRDb21tYW5kQnlTZWxlY3RvcjpOU1NlbGVjdG9yRnJvbVN0cmluZyhz
ZWxlY3RvclN0cmluZyldOworICAgIHJldHVybiBtX2ltcGwtPmV4ZWN1dGVTYXZlZENvbW1hbmRC
eVNlbGVjdG9yKE5TU2VsZWN0b3JGcm9tU3RyaW5nKHNlbGVjdG9yU3RyaW5nKSk7CiB9CiAKICNp
ZiBVU0UoRElDVEFUSU9OX0FMVEVSTkFUSVZFUykK
</data>
<flag name="review"
          id="289374"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264263</attachid>
            <date>2015-10-28 16:07:09 -0700</date>
            <delta_ts>2015-10-28 16:20:12 -0700</delta_ts>
            <desc>Part 11 - Get rid of wkView() getters</desc>
            <filename>11.diff</filename>
            <type>text/plain</type>
            <size>25970</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBlZjkwMWEyLi43YmJiYTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjkg
QEAKKzIwMTUtMTAtMjggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgV0tWaWV3IGJlaW5nIGluc2lkZSBXS1dlYlZpZXcgbGVhZHMgdG8gd2VpcmQgQVBJ
IGlzc3VlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTUwMTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMubW06CisgICAgICAgIChXS1Bh
Z2VHZXRPYmplY3RSZWdpc3RyeSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jy
b3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW06CisgICAgICAgICgtW1dLQnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlciBfcmVtb3RlT2JqZWN0UmVnaXN0cnldKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBkZWFsbG9jXSk6CisgICAgICAg
ICgtW1dLVmlldyBfaW5zcGVjdG9yQXR0YWNobWVudFZpZXddKToKKyAgICAgICAgKC1bV0tWaWV3
IF9zZXRJbnNwZWN0b3JBdHRhY2htZW50VmlldzpdKToKKyAgICAgICAgKC1bV0tWaWV3IHdpbmRv
d09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tWaWV3IHNldFdpbmRv
d09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQ6XSk6CisgICAgICAgICgtW1dLVmlldyBfc2V0VG90
YWxIZWlnaHRPZkJhbm5lcnM6XSk6CisgICAgICAgICgtW1dLVmlldyBfdG90YWxIZWlnaHRPZkJh
bm5lcnNdKToKKyAgICAgICAgKC1bV0tWaWV3IGluaXRXaXRoRnJhbWU6cHJvY2Vzc1Bvb2w6Y29u
ZmlndXJhdGlvbjp3ZWJWaWV3Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX3JlbW90
ZU9iamVjdFJlZ2lzdHJ5XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfc3RhcnRXaW5k
b3dEcmFnXSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50
ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFdpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJs
ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93T2NjbHVzaW9uRGV0ZWN0
aW9uRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRUb3RhbEhlaWdo
dE9mQmFubmVycyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp0b3RhbEhlaWdodE9m
QmFubmVycyk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OnNldEluc3BlY3RvckF0dGFjaG1lbnRWaWV3KToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6Omluc3BlY3RvckF0dGFjaG1lbnRWaWV3KToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnJlbW90ZU9iamVjdFJlZ2lzdHJ5KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmRlc3Ryb3lSZW1vdGVPYmplY3RSZWdpc3RyeSk6CisgICAgICAgICogVUlQcm9j
ZXNzL1BhZ2VDbGllbnQuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjppc1ZpZXdWaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmNy
ZWF0ZUNvbG9yUGlja2VyKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnN0YXJ0
V2luZG93RHJhZyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpwbGF0Zm9ybVdp
bmRvdyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjppbnNwZWN0b3JBdHRhY2ht
ZW50Vmlldyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZW1vdGVPYmplY3RS
ZWdpc3RyeSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5t
bToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ3JlYXRlSW5z
cGVjdG9yUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9y
bUNhbkF0dGFjaCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9y
bUJyaW5nVG9Gcm9udCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjppbnNw
ZWN0ZWRWaWV3RnJhbWVEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dXaWR0aCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUF0dGFjaCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybURldGFjaCk6CisgICAgICAgIChXZWJL
aXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVN0YXJ0V2luZG93RHJhZyk6CisgICAgICAg
ICogVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6c3RhcnRXaW5kb3dEcmFnKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVBy
b3h5OjpwbGF0Zm9ybVdpbmRvdyk6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aW5z
cGVjdG9yQXR0YWNobWVudFZpZXcpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJl
bW90ZU9iamVjdFJlZ2lzdHJ5KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojp3a1Zp
ZXcpOiBEZWxldGVkLgorICAgICAgICBHZXQgcmlkIG9mIHRoZSB3a1ZpZXcoKSBnZXR0ZXJzIG9u
IFBhZ2VDbGllbnRJbXBsIGFuZCBXZWJQYWdlUHJveHksIGJlY2F1c2UKKyAgICAgICAgdGhvc2Ug
Y2FuJ3QgYmUgYSB0aGluZyBpbiB0aGUgYnJhdmUgbmV3IHdvcmxkLiBJbnN0ZWFkLCBwbHVtYiB0
aGUgZm91cgorICAgICAgICBjYWxsZXJzIHRocm91Z2ggUGFnZUNsaWVudCB0byBXZWJWaWV3SW1w
bC4KKworICAgICAgICBBbHNvLCBtb3ZlIGEgZmV3IG1vcmUgdGhpbmdzIChiYW5uZXJzLCB3aW5k
b3cgb2NjbHVzaW9uKS4KKwogMjAxNS0xMC0yOCAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FA
YXBwbGUuY29tPgogCiAgICAgICAgIFN0b3AgdXNpbmcgQ29udGV4dE1lbnVJdGVtOjpzaGFyZU1l
bnVJdGVtIGluIHRoZSBVSSBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0MvbWFjL1dLUGFnZVByaXZhdGVNYWMubW0KaW5kZXggYTI4ZDZlMy4uZDk3ZTk1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL21hYy9XS1BhZ2VQ
cml2YXRlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9tYWMvV0tQ
YWdlUHJpdmF0ZU1hYy5tbQpAQCAtMTA1LDcgKzEwNSw3IEBAIGlkIDxfV0tPYnNlcnZhYmxlUGFn
ZVN0YXRlPiBXS1BhZ2VDcmVhdGVPYnNlcnZhYmxlU3RhdGUoV0tQYWdlUmVmIHBhZ2VSZWYpCiBf
V0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqV0tQYWdlR2V0T2JqZWN0UmVnaXN0cnkoV0tQYWdlUmVm
IHBhZ2VSZWYpCiB7CiAjaWYgV0tfQVBJX0VOQUJMRUQgJiYgIVRBUkdFVF9PU19JUEhPTkUKLSAg
ICByZXR1cm4gdG9JbXBsKHBhZ2VSZWYpLT53a1ZpZXcoKS5fcmVtb3RlT2JqZWN0UmVnaXN0cnk7
CisgICAgcmV0dXJuIHRvSW1wbChwYWdlUmVmKS0+cmVtb3RlT2JqZWN0UmVnaXN0cnkoKTsKICNl
bHNlCiAgICAgcmV0dXJuIG5pbDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0gYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ci5tbQppbmRleCA1YmJiYWQ2Li4wMDhhYTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlci5tbQpAQCAtNzU2LDcgKzc1Niw3IEBAIHN0YXRpYyB2b2lkIHNldFVwUGFnZVBvbGljeUNs
aWVudChXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4dCwKIC0gKF9X
S1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICopX3JlbW90ZU9iamVjdFJlZ2lzdHJ5CiB7CiAjaWYgV0tf
QVBJX0VOQUJMRUQgJiYgIVRBUkdFVF9PU19JUEhPTkUKLSAgICByZXR1cm4gX3BhZ2UtPndrVmll
dygpLl9yZW1vdGVPYmplY3RSZWdpc3RyeTsKKyAgICByZXR1cm4gX3BhZ2UtPnJlbW90ZU9iamVj
dFJlZ2lzdHJ5KCk7CiAjZWxzZQogICAgIHJldHVybiBuaWw7CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCBmNjlhMTQ2Li5iZTIzNGIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC00Niw4ICs0
Niw2IEBACiAjaW1wb3J0ICJOYXRpdmVXZWJXaGVlbEV2ZW50LmgiCiAjaW1wb3J0ICJQYWdlQ2xp
ZW50SW1wbC5oIgogI2ltcG9ydCAiUGFzdGVib2FyZFR5cGVzLmgiCi0jaW1wb3J0ICJSZW1vdGVP
YmplY3RSZWdpc3RyeS5oIgotI2ltcG9ydCAiUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5o
IgogI2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgog
I2ltcG9ydCAiVGV4dENoZWNrZXJTdGF0ZS5oIgpAQCAtNjQsNyArNjIsNiBAQAogI2ltcG9ydCAi
V2ViQmFja0ZvcndhcmRMaXN0LmgiCiAjaW1wb3J0ICJXZWJFdmVudEZhY3RvcnkuaCIKICNpbXBv
cnQgIldlYkhpdFRlc3RSZXN1bHREYXRhLmgiCi0jaW1wb3J0ICJXZWJJbnNwZWN0b3JQcm94eS5o
IgogI2ltcG9ydCAiV2ViS2l0MkluaXRpYWxpemUuaCIKICNpbXBvcnQgIldlYlBhZ2UuaCIKICNp
bXBvcnQgIldlYlBhZ2VHcm91cC5oIgpAQCAtNzQsNyArNzEsNiBAQAogI2ltcG9ydCAiV2ViUHJv
Y2Vzc1Byb3h5LmgiCiAjaW1wb3J0ICJXZWJTeXN0ZW1JbnRlcmZhY2UuaCIKICNpbXBvcnQgIldl
YlZpZXdJbXBsLmgiCi0jaW1wb3J0ICJfV0tSZW1vdGVPYmplY3RSZWdpc3RyeUludGVybmFsLmgi
CiAjaW1wb3J0IDxRdWFydHpDb3JlL1F1YXJ0ekNvcmUuaD4KICNpbXBvcnQgPFdlYkNvcmUvQVhP
YmplY3RDYWNoZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvck1hYy5oPgpAQCAtMTU1LDkgKzE1
MSw2IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKIAogI2lm
IFdLX0FQSV9FTkFCTEVECiAgICAgUmV0YWluUHRyPFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
cj4gX2Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXI7Ci0gICAgUmV0YWluUHRyPE5TVmlldz4gX2lu
c3BlY3RvckF0dGFjaG1lbnRWaWV3OwotCi0gICAgUmV0YWluUHRyPF9XS1JlbW90ZU9iamVjdFJl
Z2lzdHJ5PiBfcmVtb3RlT2JqZWN0UmVnaXN0cnk7CiAjZW5kaWYKIAogICAgIC8vIEZvciBhc3lu
Y2hyb25vdXMgdmFsaWRhdGlvbi4KQEAgLTE3MiwxMiArMTY1LDYgQEAgc3RydWN0IFdLVmlld0lu
dGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogI2Vsc2UKICAgICBXS1ZpZXdJbnRlcnByZXRL
ZXlFdmVudHNQYXJhbWV0ZXJzKiBfaW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVyczsKICNlbmRp
ZgotCi0gICAgQk9PTCBfd2lsbEJlY29tZUZpcnN0UmVzcG9uZGVyQWdhaW47Ci0KLSAgICBCT09M
IF93aW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOwotCi0gICAgQ0dGbG9hdCBfdG90YWxI
ZWlnaHRPZkJhbm5lcnM7CiB9CiAKIEBlbmQKQEAgLTIwNywxMCArMTk0LDcgQEAgc3RydWN0IFdL
Vmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogLSAodm9pZClkZWFsbG9jCiB7CiAj
aWYgV0tfQVBJX0VOQUJMRUQKLSAgICBpZiAoX2RhdGEtPl9yZW1vdGVPYmplY3RSZWdpc3RyeSkg
ewotICAgICAgICBfZGF0YS0+X3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLnJlbW92ZU1l
c3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSwgX2RhdGEtPl9wYWdlLT5wYWdlSUQoKSk7Ci0gICAgICAgIFtfZGF0YS0+X3Jl
bW90ZU9iamVjdFJlZ2lzdHJ5IF9pbnZhbGlkYXRlXTsKLSAgICB9CisgICAgX2RhdGEtPl9pbXBs
LT5kZXN0cm95UmVtb3RlT2JqZWN0UmVnaXN0cnkoKTsKICNlbmRpZgogCiAgICAgX2RhdGEtPl9w
YWdlLT5jbG9zZSgpOwpAQCAtMjI5OSw4ICsyMjgzLDYgQEAgc3RhdGljIHZvaWQgZXh0cmFjdFVu
ZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21wb3NpdGlvblVu
ZGUKIAogICAgIF9kYXRhLT5fcGFnZS0+aW5pdGlhbGl6ZVdlYlBhZ2UoKTsKIAotICAgIF9kYXRh
LT5fd2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZCA9IFlFUzsKLQogICAgIF9kYXRhLT5f
aW1wbC0+cmVnaXN0ZXJEcmFnZ2VkVHlwZXMoKTsKIAogICAgIHNlbGYud2FudHNMYXllciA9IFlF
UzsKQEAgLTIzMzAsMjQgKzIzMTIsNiBAQCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhO
U0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogfQogI2Vu
ZGlmIC8vIFdLX0FQSV9FTkFCTEVECiAKLSNpZiBXS19BUElfRU5BQkxFRAotLSAoX1dLUmVtb3Rl
T2JqZWN0UmVnaXN0cnkgKilfcmVtb3RlT2JqZWN0UmVnaXN0cnkKLXsKLSAgICBpZiAoIV9kYXRh
LT5fcmVtb3RlT2JqZWN0UmVnaXN0cnkpIHsKLSAgICAgICAgX2RhdGEtPl9yZW1vdGVPYmplY3RS
ZWdpc3RyeSA9IGFkb3B0TlMoW1tfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSBhbGxvY10gX2luaXRX
aXRoTWVzc2FnZVNlbmRlcjoqX2RhdGEtPl9wYWdlXSk7Ci0gICAgICAgIF9kYXRhLT5fcGFnZS0+
cHJvY2VzcygpLnByb2Nlc3NQb29sKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1v
dGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBfZGF0YS0+X3BhZ2UtPnBh
Z2VJRCgpLCBbX2RhdGEtPl9yZW1vdGVPYmplY3RSZWdpc3RyeSByZW1vdGVPYmplY3RSZWdpc3Ry
eV0pOwotICAgIH0KLQotICAgIHJldHVybiBfZGF0YS0+X3JlbW90ZU9iamVjdFJlZ2lzdHJ5Lmdl
dCgpOwotfQotI2VuZGlmCi0KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49
IDEwMTEwMAotLSAodm9pZClfc3RhcnRXaW5kb3dEcmFnCi17Ci0gICAgX2RhdGEtPl9pbXBsLT5z
dGFydFdpbmRvd0RyYWcoKTsKLX0KLSNlbmRpZgogCiAvLyBGSVhNRTogR2V0IHJpZCBvZiB0aGlz
IHdoZW4gd2UgaGF2ZSBiZXR0ZXIgcGx1bWJpbmcgdG8gV0tWaWV3TGF5b3V0U3RyYXRlZ3kuCiAt
ICh2b2lkKV91cGRhdGVWaWV3RXhwb3NlZFJlY3QKQEAgLTI1MTcsMTggKzI0ODEsMTIgQEAgc3Rh
dGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZl
Y3RvcjxDb21wb3NpdGlvblVuZGUKICNpZiBXS19BUElfRU5BQkxFRAogLSAoTlNWaWV3ICopX2lu
c3BlY3RvckF0dGFjaG1lbnRWaWV3CiB7Ci0gICAgTlNWaWV3ICphdHRhY2htZW50VmlldyA9IF9k
YXRhLT5faW5zcGVjdG9yQXR0YWNobWVudFZpZXcuZ2V0KCk7Ci0gICAgcmV0dXJuIGF0dGFjaG1l
bnRWaWV3ID8gYXR0YWNobWVudFZpZXcgOiBzZWxmOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwt
Pmluc3BlY3RvckF0dGFjaG1lbnRWaWV3KCk7CiB9CiAKIC0gKHZvaWQpX3NldEluc3BlY3RvckF0
dGFjaG1lbnRWaWV3OihOU1ZpZXcgKiluZXdWaWV3CiB7Ci0gICAgTlNWaWV3ICpvbGRWaWV3ID0g
X2RhdGEtPl9pbnNwZWN0b3JBdHRhY2htZW50Vmlldy5nZXQoKTsKLSAgICBpZiAob2xkVmlldyA9
PSBuZXdWaWV3KQotICAgICAgICByZXR1cm47Ci0KLSAgICBfZGF0YS0+X2luc3BlY3RvckF0dGFj
aG1lbnRWaWV3ID0gbmV3VmlldzsKLSAgICBfZGF0YS0+X3BhZ2UtPmluc3BlY3RvcigpLT5hdHRh
Y2htZW50Vmlld0RpZENoYW5nZShvbGRWaWV3ID8gb2xkVmlldyA6IHNlbGYsIG5ld1ZpZXcgPyBu
ZXdWaWV3IDogc2VsZik7CisgICAgX2RhdGEtPl9pbXBsLT5zZXRJbnNwZWN0b3JBdHRhY2htZW50
VmlldyhuZXdWaWV3KTsKIH0KICNlbmRpZgogCkBAIC0yNTcwLDEyICsyNTI4LDEyIEBAIHN0YXRp
YyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0
b3I8Q29tcG9zaXRpb25VbmRlCiAKIC0gKEJPT0wpd2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5h
YmxlZAogewotICAgIHJldHVybiBfZGF0YS0+X3dpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJs
ZWQ7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+d2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5h
YmxlZCgpOwogfQogCi0tICh2b2lkKXNldFdpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQ6
KEJPT0wpZmxhZworLSAodm9pZClzZXRXaW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOihC
T09MKWVuYWJsZWQKIHsKLSAgICBfZGF0YS0+X3dpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJs
ZWQgPSBmbGFnOworICAgIF9kYXRhLT5faW1wbC0+c2V0V2luZG93T2NjbHVzaW9uRGV0ZWN0aW9u
RW5hYmxlZChlbmFibGVkKTsKIH0KIAogLSAodm9pZClzZXRBbGxvd3NCYWNrRm9yd2FyZE5hdmln
YXRpb25HZXN0dXJlczooQk9PTClhbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcwpA
QCAtMjY3NiwxMiArMjYzNCwxMiBAQCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0
dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogCiAtICh2b2lk
KV9zZXRUb3RhbEhlaWdodE9mQmFubmVyczooQ0dGbG9hdCl0b3RhbEhlaWdodE9mQmFubmVycwog
ewotICAgIF9kYXRhLT5fdG90YWxIZWlnaHRPZkJhbm5lcnMgPSB0b3RhbEhlaWdodE9mQmFubmVy
czsKKyAgICBfZGF0YS0+X2ltcGwtPnNldFRvdGFsSGVpZ2h0T2ZCYW5uZXJzKHRvdGFsSGVpZ2h0
T2ZCYW5uZXJzKTsKIH0KIAogLSAoQ0dGbG9hdClfdG90YWxIZWlnaHRPZkJhbm5lcnMKIHsKLSAg
ICByZXR1cm4gX2RhdGEtPl90b3RhbEhlaWdodE9mQmFubmVyczsKKyAgICByZXR1cm4gX2RhdGEt
Pl9pbXBsLT50b3RhbEhlaWdodE9mQmFubmVycygpOwogfQogCiAtICh2b2lkKV9zZXRPdmVybGF5
U2Nyb2xsYmFyU3R5bGU6KF9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZSlzY3JvbGxiYXJTdHlsZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJu
YWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgK
aW5kZXggNGZkN2Y5MC4uM2RhODI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCkBAIC00MSw3ICs0MSw2IEBAIGNsYXNzIFdlYlBy
b2Nlc3NQb29sOwogCiBAY2xhc3MgV0tXZWJWaWV3OwogI2lmIFdLX0FQSV9FTkFCTEVECi1AY2xh
c3MgX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnk7CiBAY2xhc3MgX1dLVGh1bWJuYWlsVmlldzsKICNl
bmRpZgogCkBAIC00OSwxNiArNDgsMTEgQEAgY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiAjaWYgV0tf
QVBJX0VOQUJMRUQKIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUg
cHJvY2Vzc1Bvb2w6KFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wmKXByb2Nlc3NQb29sIGNvbmZpZ3Vy
YXRpb246KFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKWNvbmZpZ3VyYXRpb24gd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldzsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dFRodW1ibmFpbFZpZXc6KSBfV0tUaHVtYm5haWxWaWV3ICpfdGh1bWJuYWlsVmlldzsKLUBwcm9w
ZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKl9yZW1v
dGVPYmplY3RSZWdpc3RyeTsKICNlbmRpZgogCiAtICh2b2lkKV9kb25lV2l0aEtleUV2ZW50OihO
U0V2ZW50ICopZXZlbnQgZXZlbnRXYXNIYW5kbGVkOihCT09MKWV2ZW50V2FzSGFuZGxlZDsKIC0g
KHZvaWQpX2FkZEZvbnRQYW5lbE9ic2VydmVyOwogCi0jaWYgX19NQUNfT1NfWF9WRVJTSU9OX01J
Tl9SRVFVSVJFRCA+PSAxMDExMDAKLS0gKHZvaWQpX3N0YXJ0V2luZG93RHJhZzsKLSNlbmRpZgot
CiBAZW5kCiAKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaAppbmRleCBjMGMzOWQ4Li43YWQ1N2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtODgsNiArODgsOCBAQCBwdWJsaWM6CiAKICAg
ICB+V2ViVmlld0ltcGwoKTsKIAorICAgIE5TV2luZG93ICp3aW5kb3coKTsKKwogICAgIHZvaWQg
cHJvY2Vzc0RpZEV4aXQoKTsKICAgICB2b2lkIHBhZ2VDbG9zZWQoKTsKICAgICB2b2lkIGRpZFJl
bGF1bmNoUHJvY2VzcygpOwpAQCAtMTY4LDYgKzE3MCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIGVu
ZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNTeW5jKCk7CiAgICAgYm9vbCBpc0RlZmVycmlu
Z1ZpZXdJbldpbmRvd0NoYW5nZXMoKSBjb25zdCB7IHJldHVybiBtX3Nob3VsZERlZmVyVmlld0lu
V2luZG93Q2hhbmdlczsgfQogCisgICAgdm9pZCBzZXRXaW5kb3dPY2NsdXNpb25EZXRlY3Rpb25F
bmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3dpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQg
PSBlbmFibGVkOyB9CisgICAgYm9vbCB3aW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkKCkg
Y29uc3QgeyByZXR1cm4gbV93aW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOyB9CisKICAg
ICB2b2lkIHByZXBhcmVGb3JNb3ZlVG9XaW5kb3coTlNXaW5kb3cgKnRhcmdldFdpbmRvdywgc3Rk
OjpmdW5jdGlvbjx2b2lkKCk+IGNvbXBsZXRpb25IYW5kbGVyKTsKICAgICBOU1dpbmRvdyAqdGFy
Z2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV90YXJnZXRXaW5k
b3dGb3JNb3ZlUHJlcGFyYXRpb247IH0KIApAQCAtMjYzLDYgKzI2OCwxMiBAQCBwdWJsaWM6CiAj
aWYgV0tfQVBJX0VOQUJMRUQKICAgICB2b2lkIHNldFRodW1ibmFpbFZpZXcoX1dLVGh1bWJuYWls
VmlldyAqKTsKICAgICBfV0tUaHVtYm5haWxWaWV3ICp0aHVtYm5haWxWaWV3KCkgY29uc3QgeyBy
ZXR1cm4gbV90aHVtYm5haWxWaWV3OyB9CisKKyAgICB2b2lkIHNldEluc3BlY3RvckF0dGFjaG1l
bnRWaWV3KE5TVmlldyAqKTsKKyAgICBOU1ZpZXcgKmluc3BlY3RvckF0dGFjaG1lbnRWaWV3KCk7
CisKKyAgICBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqcmVtb3RlT2JqZWN0UmVnaXN0cnkoKTsK
KyAgICB2b2lkIGRlc3Ryb3lSZW1vdGVPYmplY3RSZWdpc3RyeSgpOyAvLyBGSVhNRTogVGVtcG9y
YXJ5LiBDYW4gZm9sZCBpbiBhZnRlciB3ZSBtb3ZlIG93bmVyc2hpcCBvZiBXZWJQYWdlUHJveHkg
aGVyZS4KICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRAogCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9S
VCkKQEAgLTMyMCw2ICszMzEsOSBAQCBwdWJsaWM6CiAKICAgICBib29sIGV4ZWN1dGVTYXZlZENv
bW1hbmRCeVNlbGVjdG9yKFNFTCk7CiAKKyAgICB2b2lkIHNldFRvdGFsSGVpZ2h0T2ZCYW5uZXJz
KENHRmxvYXQgdG90YWxIZWlnaHRPZkJhbm5lcnMpIHsgbV90b3RhbEhlaWdodE9mQmFubmVycyA9
IHRvdGFsSGVpZ2h0T2ZCYW5uZXJzOyB9CisgICAgQ0dGbG9hdCB0b3RhbEhlaWdodE9mQmFubmVy
cygpIGNvbnN0IHsgcmV0dXJuIG1fdG90YWxIZWlnaHRPZkJhbm5lcnM7IH0KKwogcHJpdmF0ZToK
ICAgICBXZWFrUHRyPFdlYlZpZXdJbXBsPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFr
UHRyRmFjdG9yeS5jcmVhdGVXZWFrUHRyKCk7IH0KIApAQCAtMzUzLDYgKzM2Nyw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBtX25lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlczsKICAgICBi
b29sIG1fZGlkU2NoZWR1bGVXaW5kb3dBbmRWaWV3RnJhbWVVcGRhdGUgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9pc0RlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMgeyBmYWxzZSB9OworICAgIGJv
b2wgbV93aW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkIHsgdHJ1ZSB9OwogCiAgICAgYm9v
bCBtX2F1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cyB7IGZhbHNlIH07CiAgICAgQ0dG
bG9hdCBtX3RvcENvbnRlbnRJbnNldCB7IDAgfTsKQEAgLTQxOCw2ICs0MzMsOCBAQCBwcml2YXRl
OgogCiAjaWYgV0tfQVBJX0VOQUJMRUQKICAgICBfV0tUaHVtYm5haWxWaWV3ICptX3RodW1ibmFp
bFZpZXcgeyBudWxscHRyIH07CisKKyAgICBSZXRhaW5QdHI8X1dLUmVtb3RlT2JqZWN0UmVnaXN0
cnk+IG1fcmVtb3RlT2JqZWN0UmVnaXN0cnk7CiAjZW5kaWYKIAogICAgIHN0ZDo6dW5pcXVlX3B0
cjxWaWV3R2VzdHVyZUNvbnRyb2xsZXI+IG1fZ2VzdHVyZUNvbnRyb2xsZXI7CkBAIC00MzEsNiAr
NDQ4LDEwIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fcHJvbWlzZWRVUkw7CiAKICAgICBXVEY6
Ok9wdGlvbmFsPE5TSW50ZWdlcj4gbV9zcGVsbENoZWNrZXJEb2N1bWVudFRhZzsKKworICAgIENH
RmxvYXQgbV90b3RhbEhlaWdodE9mQmFubmVycyB7IDAgfTsKKworICAgIFJldGFpblB0cjxOU1Zp
ZXc+IG1faW5zcGVjdG9yQXR0YWNobWVudFZpZXc7CiB9OwogICAgIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0K
aW5kZXggZGM3ZjIzOC4uZTQ2NDY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMzgsNiArMzgsOCBAQAogI2ltcG9ydCAiUGFnZUNsaWVu
dC5oIgogI2ltcG9ydCAiUGFzdGVib2FyZFR5cGVzLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5LmgiCisjaW1wb3J0ICJSZW1vdGVPYmplY3RSZWdpc3RyeS5oIgor
I2ltcG9ydCAiUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5oIgogI2ltcG9ydCAiU3RyaW5n
VXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5
LmgiCiAjaW1wb3J0ICJWaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCIKQEAgLTQ3LDggKzQ5LDExIEBA
CiAjaW1wb3J0ICJXS1ZpZXdMYXlvdXRTdHJhdGVneS5oIgogI2ltcG9ydCAiV0tXZWJWaWV3Lmgi
CiAjaW1wb3J0ICJXZWJFZGl0Q29tbWFuZFByb3h5LmgiCisjaW1wb3J0ICJXZWJJbnNwZWN0b3JQ
cm94eS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJv
eHkuaCIKKyNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCisjaW1wb3J0ICJfV0tSZW1vdGVPYmpl
Y3RSZWdpc3RyeUludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tUaHVtYm5haWxWaWV3SW50ZXJuYWwu
aCIKICNpbXBvcnQgPEhJVG9vbGJveC9DYXJib25FdmVudHNDb3JlLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0FYT2JqZWN0Q2FjaGUuaD4KQEAgLTQ0Myw2ICs0NDgsMTEgQEAgV2ViVmlld0ltcGw6On5X
ZWJWaWV3SW1wbCgpCiAjZW5kaWYKIH0KIAorTlNXaW5kb3cgKldlYlZpZXdJbXBsOjp3aW5kb3co
KQoreworICAgIHJldHVybiBtX3ZpZXcud2luZG93OworfQorCiBzdGQ6OnVuaXF1ZV9wdHI8V2Vi
S2l0OjpEcmF3aW5nQXJlYVByb3h5PiBXZWJWaWV3SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94
eSgpCiB7CiAgICAgaWYgKFtbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBv
YmplY3RGb3JLZXk6QCJXZWJLaXQyVXNlUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEiXSBib29s
VmFsdWVdKQpAQCAtMTg2Miw2ICsxODcyLDQyIEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZVRo
dW1ibmFpbFZpZXdMYXllcigpCiAgICAgaWYgKHRodW1ibmFpbFZpZXcuX3dhaXRpbmdGb3JTbmFw
c2hvdCAmJiBtX3ZpZXcud2luZG93KQogICAgICAgICByZXBhcmVudExheWVyVHJlZUluVGh1bWJu
YWlsVmlldygpOwogfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRJbnNwZWN0b3JBdHRhY2htZW50
VmlldyhOU1ZpZXcgKm5ld1ZpZXcpCit7CisgICAgTlNWaWV3ICpvbGRWaWV3ID0gbV9pbnNwZWN0
b3JBdHRhY2htZW50Vmlldy5nZXQoKTsKKyAgICBpZiAob2xkVmlldyA9PSBuZXdWaWV3KQorICAg
ICAgICByZXR1cm47CisKKyAgICBtX2luc3BlY3RvckF0dGFjaG1lbnRWaWV3ID0gbmV3VmlldzsK
KyAgICBtX3BhZ2UuaW5zcGVjdG9yKCktPmF0dGFjaG1lbnRWaWV3RGlkQ2hhbmdlKG9sZFZpZXcg
PyBvbGRWaWV3IDogbV92aWV3LCBuZXdWaWV3ID8gbmV3VmlldyA6IG1fdmlldyk7Cit9CisKK05T
VmlldyAqV2ViVmlld0ltcGw6Omluc3BlY3RvckF0dGFjaG1lbnRWaWV3KCkKK3sKKyAgICBOU1Zp
ZXcgKmF0dGFjaG1lbnRWaWV3ID0gbV9pbnNwZWN0b3JBdHRhY2htZW50Vmlldy5nZXQoKTsKKyAg
ICByZXR1cm4gYXR0YWNobWVudFZpZXcgPyBhdHRhY2htZW50VmlldyA6IG1fdmlldzsKK30KKwor
X1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKldlYlZpZXdJbXBsOjpyZW1vdGVPYmplY3RSZWdpc3Ry
eSgpCit7CisgICAgaWYgKCFtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5KSB7CisgICAgICAgIG1fcmVt
b3RlT2JqZWN0UmVnaXN0cnkgPSBhZG9wdE5TKFtbX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgYWxs
b2NdIF9pbml0V2l0aE1lc3NhZ2VTZW5kZXI6bV9wYWdlXSk7CisgICAgICAgIG1fcGFnZS5wcm9j
ZXNzKCkucHJvY2Vzc1Bvb2woKS5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9i
amVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS5wYWdlSUQoKSwgW21f
cmVtb3RlT2JqZWN0UmVnaXN0cnkgcmVtb3RlT2JqZWN0UmVnaXN0cnldKTsKKyAgICB9CisKKyAg
ICByZXR1cm4gbV9yZW1vdGVPYmplY3RSZWdpc3RyeS5nZXQoKTsKK30KKwordm9pZCBXZWJWaWV3
SW1wbDo6ZGVzdHJveVJlbW90ZU9iamVjdFJlZ2lzdHJ5KCkKK3sKKyAgICBpZiAoIW1fcmVtb3Rl
T2JqZWN0UmVnaXN0cnkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fcGFnZS5wcm9jZXNzKCku
cHJvY2Vzc1Bvb2woKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVj
dFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS5wYWdlSUQoKSk7CisgICAg
W21fcmVtb3RlT2JqZWN0UmVnaXN0cnkgX2ludmFsaWRhdGVdOworICAgIG1fcmVtb3RlT2JqZWN0
UmVnaXN0cnkgPSBuaWw7Cit9CiAjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKIAogI2lmIEVOQUJM
RShEUkFHX1NVUFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFn
ZUNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BhZ2VDbGllbnQuaAppbmRleCAz
ZTkyYWRlLi5lYzNkN2QxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGFn
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QYWdlQ2xpZW50LmgKQEAg
LTI2MCw4ICsyNjAsMTUgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNob3dQbGF0Zm9y
bUNvbnRleHRNZW51KE5TTWVudSAqLCBXZWJDb3JlOjpJbnRQb2ludCkgPSAwOwogCisgICAgdmly
dHVhbCB2b2lkIHN0YXJ0V2luZG93RHJhZygpID0gMDsKKyAgICB2aXJ0dWFsIE5TV2luZG93ICpw
bGF0Zm9ybVdpbmRvdygpID0gMDsKKworI2lmIFdLX0FQSV9FTkFCTEVECisgICAgdmlydHVhbCBO
U1ZpZXcgKmluc3BlY3RvckF0dGFjaG1lbnRWaWV3KCkgPSAwOworICAgIHZpcnR1YWwgX1dLUmVt
b3RlT2JqZWN0UmVnaXN0cnkgKnJlbW90ZU9iamVjdFJlZ2lzdHJ5KCkgPSAwOworI2VuZGlmCisK
ICNpZiBVU0UoQVBQS0lUKQotICAgIHZpcnR1YWwgV0tWaWV3KiB3a1ZpZXcoKSBjb25zdCA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGludHJpbnNpY0NvbnRlbnRTaXplRGlkQ2hhbmdlKGNvbnN0IFdl
YkNvcmU6OkludFNpemUmIGludHJpbnNpY0NvbnRlbnRTaXplKSA9IDA7CiAjaWYgVVNFKERJQ1RB
VElPTl9BTFRFUk5BVElWRVMpCiAgICAgdmlydHVhbCB1aW50NjRfdCBhZGREaWN0YXRpb25BbHRl
cm5hdGl2ZXMoY29uc3QgUmV0YWluUHRyPE5TVGV4dEFsdGVybmF0aXZlcz4mKSA9IDA7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggNDM0NzdhZS4uY2ZiZGI0NCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtODQsNiArODQsOSBA
QAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcu
aD4KIAorT0JKQ19DTEFTUyBOU1ZpZXc7CitPQkpDX0NMQVNTIF9XS1JlbW90ZU9iamVjdFJlZ2lz
dHJ5OworCiAjaWYgRU5BQkxFKERSQUdfU1VQUE9SVCkKICNpbmNsdWRlIDxXZWJDb3JlL0RyYWdB
Y3Rpb25zLmg+CiAjZW5kaWYKQEAgLTE2NiwxMCArMTY5LDYgQEAgc3RydWN0IFZpZXdwb3J0QXR0
cmlidXRlczsKIHN0cnVjdCBXaW5kb3dGZWF0dXJlczsKIH0KIAotI2lmIFVTRShBUFBLSVQpCi1P
QkpDX0NMQVNTIFdLVmlldzsKLSNlbmRpZgotCiAjaWYgUExBVEZPUk0oR1RLKQogdHlwZWRlZiBH
dGtXaWRnZXQqIFBsYXRmb3JtV2lkZ2V0OwogI2VuZGlmCkBAIC01ODQsNyArNTgzLDE0IEBAIHB1
YmxpYzoKICAgICB2b2lkIGNhbmNlbENvbXBvc2l0aW9uKCk7CiAjZW5kaWYgLy8gIVVTRShBU1lO
Q19OU1RFWFRJTlBVVENMSUVOVCkKIAotICAgIFdLVmlldyogd2tWaWV3KCkgY29uc3Q7CisgICAg
dm9pZCBzdGFydFdpbmRvd0RyYWcoKTsKKyAgICBOU1dpbmRvdyAqcGxhdGZvcm1XaW5kb3coKTsK
KworI2lmIFdLX0FQSV9FTkFCTEVECisgICAgTlNWaWV3ICppbnNwZWN0b3JBdHRhY2htZW50Vmll
dygpOworICAgIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICpyZW1vdGVPYmplY3RSZWdpc3RyeSgp
OworI2VuZGlmCisKICAgICB2b2lkIGludHJpbnNpY0NvbnRlbnRTaXplRGlkQ2hhbmdlKGNvbnN0
IFdlYkNvcmU6OkludFNpemUmIGludHJpbnNpY0NvbnRlbnRTaXplKTsKICAgICBDR1JlY3QgYm91
bmRzT2ZMYXllckluTGF5ZXJCYWNrZWRXaW5kb3dDb29yZGluYXRlcyhDQUxheWVyICopIGNvbnN0
OwogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGwuaAppbmRleCBjMjQ2MmMxLi5kMTg2YTEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCkBAIC0xNjYsNyArMTY2LDYg
QEAgcHJpdmF0ZToKIAogICAgIHZpcnR1YWwgdm9pZCByZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxl
RGlkQ2hhbmdlKFdlYkNvcmU6OlNjcm9sbGJhclN0eWxlKSBvdmVycmlkZTsKIAotICAgIHZpcnR1
YWwgV0tWaWV3KiB3a1ZpZXcoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX3drVmlldzsgfQog
ICAgIHZpcnR1YWwgdm9pZCBpbnRyaW5zaWNDb250ZW50U2l6ZURpZENoYW5nZShjb25zdCBXZWJD
b3JlOjpJbnRTaXplJiBpbnRyaW5zaWNDb250ZW50U2l6ZSkgb3ZlcnJpZGU7CiAKICNpZiBVU0Uo
RElDVEFUSU9OX0FMVEVSTkFUSVZFUykKQEAgLTIxNyw2ICsyMTYsMTQgQEAgcHJpdmF0ZToKIAog
ICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VCYWNrZ3JvdW5kQ29sb3IoKSBvdmVycmlkZTsKIAor
ICAgIHZpcnR1YWwgdm9pZCBzdGFydFdpbmRvd0RyYWcoKSBvdmVycmlkZTsKKyAgICB2aXJ0dWFs
IE5TV2luZG93ICpwbGF0Zm9ybVdpbmRvdygpIG92ZXJyaWRlOworCisjaWYgV0tfQVBJX0VOQUJM
RUQKKyAgICB2aXJ0dWFsIE5TVmlldyAqaW5zcGVjdG9yQXR0YWNobWVudFZpZXcoKSBvdmVycmlk
ZTsKKyAgICB2aXJ0dWFsIF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICpyZW1vdGVPYmplY3RSZWdp
c3RyeSgpIG92ZXJyaWRlOworI2VuZGlmCisKICAgICBXS1ZpZXcgKm1fd2tWaWV3OwogICAgIFdL
V2ViVmlldyAqbV93ZWJWaWV3OwogICAgIFdlYlZpZXdJbXBsKiBtX2ltcGwgeyBudWxscHRyIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
Lm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQppbmRl
eCBhMTVmOGI0Li4xNzNkMDU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
UGFnZUNsaWVudEltcGwubW0KQEAgLTE5OSw3ICsxOTksNyBAQCBib29sIFBhZ2VDbGllbnRJbXBs
Ojppc1ZpZXdWaXNpYmxlKCkKICAgICBpZiAoYWN0aXZlVmlldy5pc0hpZGRlbk9ySGFzSGlkZGVu
QW5jZXN0b3IpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChbbV93a1ZpZXcgd2lu
ZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZF0gJiYgKGFjdGl2ZVZpZXdXaW5kb3cub2NjbHVz
aW9uU3RhdGUgJiBOU1dpbmRvd09jY2x1c2lvblN0YXRlVmlzaWJsZSkgIT0gTlNXaW5kb3dPY2Ns
dXNpb25TdGF0ZVZpc2libGUpCisgICAgaWYgKG1faW1wbC0+d2luZG93T2NjbHVzaW9uRGV0ZWN0
aW9uRW5hYmxlZCgpICYmIChhY3RpdmVWaWV3V2luZG93Lm9jY2x1c2lvblN0YXRlICYgTlNXaW5k
b3dPY2NsdXNpb25TdGF0ZVZpc2libGUpICE9IE5TV2luZG93T2NjbHVzaW9uU3RhdGVWaXNpYmxl
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTQ1Myw3ICs0
NTMsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29udGV4dE1lbnVQcm94eT4gUGFnZUNsaWVudElt
cGw6OmNyZWF0ZUNvbnRleHRNZW51UHJveHkoV2ViUAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NP
TE9SKQogUmVmUHRyPFdlYkNvbG9yUGlja2VyPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29sb3JQ
aWNrZXIoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENv
bG9yLCAgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCkKIHsKLSAgICByZXR1cm4gV2ViQ29s
b3JQaWNrZXJNYWM6OmNyZWF0ZShwYWdlLCBpbml0aWFsQ29sb3IsIHJlY3QsIHdrVmlldygpKTsK
KyAgICByZXR1cm4gV2ViQ29sb3JQaWNrZXJNYWM6OmNyZWF0ZShwYWdlLCBpbml0aWFsQ29sb3Is
IHJlY3QsIG1fd2tWaWV3KTsKIH0KICNlbmRpZgogCkBAIC04MjcsNiArODI3LDI4IEBAIHZvaWQg
UGFnZUNsaWVudEltcGw6OmRlcmVmVmlldygpCiAgICAgQ0ZSZWxlYXNlKG1fd2tWaWV3KTsKIH0K
IAordm9pZCBQYWdlQ2xpZW50SW1wbDo6c3RhcnRXaW5kb3dEcmFnKCkKK3sKKyAgICBtX2ltcGwt
PnN0YXJ0V2luZG93RHJhZygpOworfQorCitOU1dpbmRvdyAqUGFnZUNsaWVudEltcGw6OnBsYXRm
b3JtV2luZG93KCkKK3sKKyAgICByZXR1cm4gbV9pbXBsLT53aW5kb3coKTsKK30KKworI2lmIFdL
X0FQSV9FTkFCTEVECitOU1ZpZXcgKlBhZ2VDbGllbnRJbXBsOjppbnNwZWN0b3JBdHRhY2htZW50
VmlldygpCit7CisgICAgcmV0dXJuIG1faW1wbC0+aW5zcGVjdG9yQXR0YWNobWVudFZpZXcoKTsK
K30KKworX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKlBhZ2VDbGllbnRJbXBsOjpyZW1vdGVPYmpl
Y3RSZWdpc3RyeSgpCit7CisgICAgcmV0dXJuIG1faW1wbC0+cmVtb3RlT2JqZWN0UmVnaXN0cnko
KTsKK30KKyNlbmRpZgorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIFBMQVRG
T1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5z
cGVjdG9yUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3Bl
Y3RvclByb3h5TWFjLm1tCmluZGV4IGZmOTBhYWMuLjhiOThlNjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQpAQCAtMzQ2
LDcgKzM0Niw3IEBAIFdlYlBhZ2VQcm94eSogV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ3Jl
YXRlSW5zcGVjdG9yUGFnZSgpCiAgICAgQVNTRVJUKCFtX2luc3BlY3RvclZpZXcpOwogICAgIEFT
U0VSVCghbV9pbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyKTsKIAotICAgIE5TVmlldyAqaW5zcGVj
dGVkVmlldyA9IGluc3BlY3RlZFBhZ2UoKS0+d2tWaWV3KCkuX2luc3BlY3RvckF0dGFjaG1lbnRW
aWV3OworICAgIE5TVmlldyAqaW5zcGVjdGVkVmlldyA9IGluc3BlY3RlZFBhZ2UoKS0+aW5zcGVj
dG9yQXR0YWNobWVudFZpZXcoKTsKIAogICAgIE5TUmVjdCBpbml0aWFsUmVjdDsKICAgICBpZiAo
bV9pc0F0dGFjaGVkKSB7CkBAIC00NjcsNyArNDY3LDcgQEAgYm9vbCBXZWJJbnNwZWN0b3JQcm94
eTo6cGxhdGZvcm1DYW5BdHRhY2goYm9vbCB3ZWJQcm9jZXNzQ2FuQXR0YWNoKQogICAgIGlmIChb
bV9pbnNwZWN0b3JXaW5kb3cgc3R5bGVNYXNrXSAmIE5TRnVsbFNjcmVlbldpbmRvd01hc2spCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIE5TVmlldyAqaW5zcGVjdGVkVmlldyA9IGluc3Bl
Y3RlZFBhZ2UoKS0+d2tWaWV3KCkuX2luc3BlY3RvckF0dGFjaG1lbnRWaWV3OworICAgIE5TVmll
dyAqaW5zcGVjdGVkVmlldyA9IGluc3BlY3RlZFBhZ2UoKS0+aW5zcGVjdG9yQXR0YWNobWVudFZp
ZXcoKTsKICAgICBpZiAoW2luc3BlY3RlZFZpZXcgaXNLaW5kT2ZDbGFzczpbV0tWaWV3IGNsYXNz
XV0pCiAgICAgICAgIHJldHVybiB3ZWJQcm9jZXNzQ2FuQXR0YWNoOwogCkBAIC01MjgsNyArNTI4
LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1CcmluZ1RvRnJvbnQoKQogICAg
IC8vIElmIHRoZSBXZWIgSW5zcGVjdG9yIGlzIG5vIGxvbmdlciBpbiB0aGUgc2FtZSB3aW5kb3cg
YXMgdGhlIGluc3BlY3RlZCB2aWV3LAogICAgIC8vIHRoZW4gd2UgbmVlZCB0byByZW9wZW4gdGhl
IEluc3BlY3RvciB0byBnZXQgaXQgYXR0YWNoZWQgdG8gdGhlIHJpZ2h0IHdpbmRvdy4KICAgICAv
LyBUaGlzIGNhbiBoYXBwZW4gd2hlbiBkcmFnZ2luZyB0YWJzIHRvIGFub3RoZXIgd2luZG93IGlu
IFNhZmFyaS4KLSAgICBpZiAobV9pc0F0dGFjaGVkICYmIG1faW5zcGVjdG9yVmlldy5nZXQoKS53
aW5kb3cgIT0gaW5zcGVjdGVkUGFnZSgpLT53a1ZpZXcoKS53aW5kb3cpIHsKKyAgICBpZiAobV9p
c0F0dGFjaGVkICYmIG1faW5zcGVjdG9yVmlldy5nZXQoKS53aW5kb3cgIT0gaW5zcGVjdGVkUGFn
ZSgpLT5wbGF0Zm9ybVdpbmRvdygpKSB7CiAgICAgICAgIHBsYXRmb3JtT3BlbigpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtNjY4LDcgKzY2OCw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJv
eHk6Omluc3BlY3RlZFZpZXdGcmFtZURpZENoYW5nZShDR0Zsb2F0IGN1cnJlbnREaW1lbnNpb24p
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBOU1ZpZXcgKmluc3BlY3RlZFZpZXcgPSBp
bnNwZWN0ZWRQYWdlKCktPndrVmlldygpLl9pbnNwZWN0b3JBdHRhY2htZW50VmlldzsKKyAgICBO
U1ZpZXcgKmluc3BlY3RlZFZpZXcgPSBpbnNwZWN0ZWRQYWdlKCktPmluc3BlY3RvckF0dGFjaG1l
bnRWaWV3KCk7CiAgICAgTlNSZWN0IGluc3BlY3RlZFZpZXdGcmFtZSA9IFtpbnNwZWN0ZWRWaWV3
IGZyYW1lXTsKICAgICBOU1JlY3QgaW5zcGVjdG9yRnJhbWUgPSBOU1plcm9SZWN0OwogICAgIE5T
UmVjdCBwYXJlbnRCb3VuZHMgPSBbW2luc3BlY3RlZFZpZXcgc3VwZXJ2aWV3XSBib3VuZHNdOwpA
QCAtNzE4LDIxICs3MTgsMjEgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6aW5zcGVjdGVkVmll
d0ZyYW1lRGlkQ2hhbmdlKENHRmxvYXQgY3VycmVudERpbWVuc2lvbikKIAogdW5zaWduZWQgV2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93SGVpZ2h0KCkKIHsKLSAgICBO
U1ZpZXcgKmluc3BlY3RlZFZpZXcgPSBpbnNwZWN0ZWRQYWdlKCktPndrVmlldygpLl9pbnNwZWN0
b3JBdHRhY2htZW50VmlldzsKKyAgICBOU1ZpZXcgKmluc3BlY3RlZFZpZXcgPSBpbnNwZWN0ZWRQ
YWdlKCktPmluc3BlY3RvckF0dGFjaG1lbnRWaWV3KCk7CiAgICAgTlNSZWN0IGluc3BlY3RlZFZp
ZXdSZWN0ID0gW2luc3BlY3RlZFZpZXcgZnJhbWVdOwogICAgIHJldHVybiBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oaW5zcGVjdGVkVmlld1JlY3Quc2l6ZS5oZWlnaHQpOwogfQogCiB1bnNpZ25lZCBX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dXaWR0aCgpCiB7Ci0gICAg
TlNWaWV3ICppbnNwZWN0ZWRWaWV3ID0gaW5zcGVjdGVkUGFnZSgpLT53a1ZpZXcoKS5faW5zcGVj
dG9yQXR0YWNobWVudFZpZXc7CisgICAgTlNWaWV3ICppbnNwZWN0ZWRWaWV3ID0gaW5zcGVjdGVk
UGFnZSgpLT5pbnNwZWN0b3JBdHRhY2htZW50VmlldygpOwogICAgIE5TUmVjdCBpbnNwZWN0ZWRW
aWV3UmVjdCA9IFtpbnNwZWN0ZWRWaWV3IGZyYW1lXTsKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KGluc3BlY3RlZFZpZXdSZWN0LnNpemUud2lkdGgpOwogfQogCiB2b2lkIFdlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCiB7Ci0gICAgTlNWaWV3ICppbnNwZWN0ZWRW
aWV3ID0gaW5zcGVjdGVkUGFnZSgpLT53a1ZpZXcoKS5faW5zcGVjdG9yQXR0YWNobWVudFZpZXc7
CisgICAgTlNWaWV3ICppbnNwZWN0ZWRWaWV3ID0gaW5zcGVjdGVkUGFnZSgpLT5pbnNwZWN0b3JB
dHRhY2htZW50VmlldygpOwogCiAgICAgaWYgKG1faW5zcGVjdG9yV2luZG93KSB7CiAgICAgICAg
IFttX2luc3BlY3RvcldpbmRvdyBzZXREZWxlZ2F0ZTpuaWxdOwpAQCAtNzYzLDcgKzc2Myw3IEBA
IHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKIAogdm9pZCBXZWJJbnNw
ZWN0b3JQcm94eTo6cGxhdGZvcm1EZXRhY2goKQogewotICAgIE5TVmlldyAqaW5zcGVjdGVkVmll
dyA9IGluc3BlY3RlZFBhZ2UoKS0+d2tWaWV3KCkuX2luc3BlY3RvckF0dGFjaG1lbnRWaWV3Owor
ICAgIE5TVmlldyAqaW5zcGVjdGVkVmlldyA9IGluc3BlY3RlZFBhZ2UoKS0+aW5zcGVjdG9yQXR0
YWNobWVudFZpZXcoKTsKIAogICAgIFttX2luc3BlY3RvclZpZXcgcmVtb3ZlRnJvbVN1cGVydmll
d107CiAKQEAgLTgwOCw3ICs4MDgsNyBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9y
bVNldFRvb2xiYXJIZWlnaHQodW5zaWduZWQgaGVpZ2h0KQogdm9pZCBXZWJJbnNwZWN0b3JQcm94
eTo6cGxhdGZvcm1TdGFydFdpbmRvd0RyYWcoKQogewogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9N
SU5fUkVRVUlSRUQgPj0gMTAxMTAwCi0gICAgW21faW5zcGVjdG9yVmlldy0+X3BhZ2UtPndrVmll
dygpIF9zdGFydFdpbmRvd0RyYWddOworICAgIG1faW5zcGVjdG9yVmlldy0+X3BhZ2UtPnN0YXJ0
V2luZG93RHJhZygpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XZWJQYWdlUHJveHlNYWMubW0KaW5kZXggNjc0YTdiNi4uMmI2MzBlOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KQEAgLTU1OCwx
MSArNTU4LDYgQEAgYm9vbCBXZWJQYWdlUHJveHk6OmFjY2VwdHNGaXJzdE1vdXNlKGludCBldmVu
dE51bWJlciwgY29uc3QgV2ViS2l0OjpXZWJNb3VzZUV2ZW4KICAgICByZXR1cm4gcmVzdWx0Owog
fQogCi1XS1ZpZXcqIFdlYlBhZ2VQcm94eTo6d2tWaWV3KCkgY29uc3QKLXsKLSAgICByZXR1cm4g
bV9wYWdlQ2xpZW50LndrVmlldygpOwotfQotCiB2b2lkIFdlYlBhZ2VQcm94eTo6aW50cmluc2lj
Q29udGVudFNpemVEaWRDaGFuZ2UoY29uc3QgSW50U2l6ZSYgaW50cmluc2ljQ29udGVudFNpemUp
CiB7CiAgICAgbV9wYWdlQ2xpZW50LmludHJpbnNpY0NvbnRlbnRTaXplRGlkQ2hhbmdlKGludHJp
bnNpY0NvbnRlbnRTaXplKTsKQEAgLTczOCw2ICs3MzMsMjggQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmVkaXRvclN0YXRlQ2hhbmdlZChjb25zdCBFZGl0b3JTdGF0ZSYgZWRpdG9yU3RhdGUpCiAjZW5k
aWYKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6OnN0YXJ0V2luZG93RHJhZygpCit7CisgICAgbV9w
YWdlQ2xpZW50LnN0YXJ0V2luZG93RHJhZygpOworfQorCitOU1dpbmRvdyAqV2ViUGFnZVByb3h5
OjpwbGF0Zm9ybVdpbmRvdygpCit7CisgICAgcmV0dXJuIG1fcGFnZUNsaWVudC5wbGF0Zm9ybVdp
bmRvdygpOworfQorCisjaWYgV0tfQVBJX0VOQUJMRUQKK05TVmlldyAqV2ViUGFnZVByb3h5Ojpp
bnNwZWN0b3JBdHRhY2htZW50VmlldygpCit7CisgICAgcmV0dXJuIG1fcGFnZUNsaWVudC5pbnNw
ZWN0b3JBdHRhY2htZW50VmlldygpOworfQorCitfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqV2Vi
UGFnZVByb3h5OjpyZW1vdGVPYmplY3RSZWdpc3RyeSgpCit7CisgICAgcmV0dXJuIG1fcGFnZUNs
aWVudC5yZW1vdGVPYmplY3RSZWdpc3RyeSgpOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQo=
</data>
<flag name="review"
          id="289399"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264289</attachid>
            <date>2015-10-28 19:28:00 -0700</date>
            <delta_ts>2015-10-29 15:08:51 -0700</delta_ts>
            <desc>Part 12 - UI validation and others</desc>
            <filename>12.diff</filename>
            <type>text/plain</type>
            <size>47303</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyOGNjMjAwLi43MGUyOTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0zLDYgKzMsNjYg
QEAKICAgICAgICAgV0tWaWV3IGJlaW5nIGluc2lkZSBXS1dlYlZpZXcgbGVhZHMgdG8gd2VpcmQg
QVBJIGlzc3VlcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUwMTc0CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBicm93
c2luZ0NvbnRleHRDb250cm9sbGVyXSk6CisgICAgICAgICgtW1dLVmlldyB2YWxpZGF0ZVVzZXJJ
bnRlcmZhY2VJdGVtOl0pOgorICAgICAgICAoLVtXS1ZpZXcgc2F2ZUJhY2tGb3J3YXJkU25hcHNo
b3RGb3JDdXJyZW50SXRlbV0pOgorICAgICAgICAoLVtXS1ZpZXcgc2F2ZUJhY2tGb3J3YXJkU25h
cHNob3RGb3JJdGVtOl0pOgorICAgICAgICAoLVtXS1ZpZXcgdXBkYXRlTGF5ZXJdKToKKyAgICAg
ICAgKC1bV0tWaWV3IG1pbmltdW1TaXplRm9yQXV0b0xheW91dF0pOgorICAgICAgICAoLVtXS1Zp
ZXcgc2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgc2hv
dWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dF0pOgorICAgICAgICAoLVtXS1ZpZXcg
c2V0U2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dDpdKToKKyAgICAgICAgKC1b
V0tWaWV3IHVuZGVybGF5Q29sb3JdKToKKyAgICAgICAgKC1bV0tWaWV3IHNldFVuZGVybGF5Q29s
b3I6XSk6CisgICAgICAgICgtW1dLVmlldyBfc2V0T3ZlcmxheVNjcm9sbGJhclN0eWxlOl0pOgor
ICAgICAgICAoLVtXS1ZpZXcgX292ZXJsYXlTY3JvbGxiYXJTdHlsZV0pOgorICAgICAgICAoLVtX
S1ZpZXcgX3BhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcl0pOgorICAgICAgICAoLVtXS1ZpZXcg
Zm9yY2VBc3luY0RyYXdpbmdBcmVhU2l6ZVVwZGF0ZTpdKToKKyAgICAgICAgKC1bV0tWaWV3IHdh
aXRGb3JBc3luY0RyYXdpbmdBcmVhU2l6ZVVwZGF0ZV0pOgorICAgICAgICAoLVtXS1ZpZXcgaXNV
c2luZ1VJU2lkZUNvbXBvc2l0aW5nXSk6CisgICAgICAgIChjcmVhdGVTZWxlY3RvckV4Y2VwdGlv
bk1hcCk6IERlbGV0ZWQuCisgICAgICAgIChjb21tYW5kTmFtZUZvclNlbGVjdG9yKTogRGVsZXRl
ZC4KKyAgICAgICAgKG1lbnVJdGVtKTogRGVsZXRlZC4KKyAgICAgICAgKHRvb2xiYXJJdGVtKTog
RGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9zZXRVc2VySW50ZXJmYWNlSXRlbVN0YXRlOmVu
YWJsZWQ6c3RhdGU6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94eSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppc1VzaW5nVUlTaWRlQ29tcG9zaXRpbmcpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Zm9yY2VBc3luY0RyYXdpbmdBcmVhU2l6ZVVwZGF0
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3YWl0Rm9yQXN5bmNEcmF3aW5nQXJl
YVNpemVVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dXBkYXRlTGF5ZXIp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TWluaW11bVNpemVGb3JBdXRvTGF5
b3V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Om1pbmltdW1TaXplRm9yQXV0b0xh
eW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRTaG91bGRFeHBhbmRUb1Zp
ZXdIZWlnaHRGb3JBdXRvTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNo
b3VsZEV4cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6c2V0VW5kZXJsYXlDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjp1bmRlcmxheUNvbG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBhZ2VF
eHRlbmRlZEJhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpz
ZXRPdmVybGF5U2Nyb2xsYmFyU3R5bGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
b3ZlcmxheVNjcm9sbGJhclN0eWxlKToKKyAgICAgICAgKFdlYktpdDo6Y3JlYXRlU2VsZWN0b3JF
eGNlcHRpb25NYXApOgorICAgICAgICAoV2ViS2l0Ojpjb21tYW5kTmFtZUZvclNlbGVjdG9yKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVj
dG9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmV4ZWN1dGVFZGl0Q29tbWFuZEZv
clNlbGVjdG9yKToKKyAgICAgICAgKFdlYktpdDo6bWVudUl0ZW0pOgorICAgICAgICAoV2ViS2l0
Ojp0b29sYmFySXRlbSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2YWxpZGF0ZVVz
ZXJJbnRlcmZhY2VJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFVzZXJJ
bnRlcmZhY2VJdGVtU3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YnJvd3Np
bmdDb250ZXh0Q29udHJvbGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzYXZl
QmFja0ZvcndhcmRTbmFwc2hvdEZvckN1cnJlbnRJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OnNhdmVCYWNrRm9yd2FyZFNuYXBzaG90Rm9ySXRlbSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpleGVjdXRlRWRpdENvbW1hbmQpOiBEZWxldGVkLgorICAgICAgICBN
b3ZlIFVJIHZhbGlkYXRpb24gYW5kIGEgZ3JhYi1iYWcgb2Ygb3RoZXIgdGhpbmdzLgorCisyMDE1
LTEwLTI4ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAg
IFdLVmlldyBiZWluZyBpbnNpZGUgV0tXZWJWaWV3IGxlYWRzIHRvIHdlaXJkIEFQSSBpc3N1ZXMK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE3NAor
CiAgICAgICAgIFJldmlld2VkIGJ5IEFuZGVycyBDYXJsc3Nvbi4KIAogICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQy9tYWMvV0tQYWdlUHJpdmF0ZU1hYy5tbToKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCBiZTIzNGIzLi5iZTQwMTU4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0xMDYsNyArMTA2LDYgQEAK
ICNpbXBvcnQgPHd0Zi9SdW5Mb29wLmg+CiAKIC8qIEFQSSBpbnRlcm5hbHMuICovCi0jaW1wb3J0
ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tCcm93
c2luZ0NvbnRleHRHcm91cFByaXZhdGUuaCIKICNpbXBvcnQgIldLUHJvY2Vzc0dyb3VwUHJpdmF0
ZS5oIgogCkBAIC0xMjYsMTQgKzEyNSw2IEBACiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNp
bmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLW5hbWVzcGFjZSBXZWJLaXQgewotCi10eXBlZGVmIGlk
IDxOU1ZhbGlkYXRlZFVzZXJJbnRlcmZhY2VJdGVtPiBWYWxpZGF0aW9uSXRlbTsKLXR5cGVkZWYg
VmVjdG9yPFJldGFpblB0cjxWYWxpZGF0aW9uSXRlbT4+IFZhbGlkYXRpb25WZWN0b3I7Ci10eXBl
ZGVmIEhhc2hNYXA8U3RyaW5nLCBWYWxpZGF0aW9uVmVjdG9yPiBWYWxpZGF0aW9uTWFwOwotCi19
Ci0KICNpZiAhVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQogc3RydWN0IFdLVmlld0ludGVy
cHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewogICAgIGJvb2wgZXZlbnRJbnRlcnByZXRhdGlvbkhh
ZFNpZGVFZmZlY3RzOwpAQCAtMTQ5LDEzICsxNDAsNiBAQCBzdHJ1Y3QgV0tWaWV3SW50ZXJwcmV0
S2V5RXZlbnRzUGFyYW1ldGVycyB7CiAgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gX3BhZ2U7CiAg
ICAgc3RkOjp1bmlxdWVfcHRyPFdlYlZpZXdJbXBsPiBfaW1wbDsKIAotI2lmIFdLX0FQSV9FTkFC
TEVECi0gICAgUmV0YWluUHRyPFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcj4gX2Jyb3dzaW5n
Q29udGV4dENvbnRyb2xsZXI7Ci0jZW5kaWYKLQotICAgIC8vIEZvciBhc3luY2hyb25vdXMgdmFs
aWRhdGlvbi4KLSAgICBWYWxpZGF0aW9uTWFwIF92YWxpZGF0aW9uTWFwOwotCiAgICAgLy8gV2Ug
a2VlcCBoZXJlIHRoZSBldmVudCB3aGVuIHJlc2VuZGluZyBpdCB0bwogICAgIC8vIHRoZSBhcHBs
aWNhdGlvbiB0byBkaXN0aW5ndWlzaCB0aGUgY2FzZSBvZiBhIG5ldyBldmVudCBmcm9tIG9uZSAK
ICAgICAvLyB0aGF0IGhhcyBiZWVuIGFscmVhZHkgc2VudCB0byBXZWJDb3JlLgpAQCAtMjEzLDE1
ICsxOTcsMTAgQEAgc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgewog
fQogCiAjaWYgV0tfQVBJX0VOQUJMRUQKLQogLSAoV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVy
ICopYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcgogewotICAgIGlmICghX2RhdGEtPl9icm93c2lu
Z0NvbnRleHRDb250cm9sbGVyKQotICAgICAgICBfZGF0YS0+X2Jyb3dzaW5nQ29udGV4dENvbnRy
b2xsZXIgPSBhZG9wdE5TKFtbV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIGFsbG9jXSBfaW5p
dFdpdGhQYWdlUmVmOnRvQVBJKF9kYXRhLT5fcGFnZS5nZXQoKSldKTsKLQotICAgIHJldHVybiBf
ZGF0YS0+X2Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIuZ2V0KCk7CisgICAgcmV0dXJuIF9kYXRh
LT5faW1wbC0+YnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcigpOwogfQotCiAjZW5kaWYgLy8gV0tf
QVBJX0VOQUJMRUQKIAogLSAodm9pZClzZXREcmF3c0JhY2tncm91bmQ6KEJPT0wpZHJhd3NCYWNr
Z3JvdW5kCkBAIC0yOTcsNDggKzI3Niw3IEBAIHN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVu
dHNQYXJhbWV0ZXJzIHsKICAgICBbc3VwZXIgcmVuZXdHU3RhdGVdOwogfQogCi10eXBlZGVmIEhh
c2hNYXA8U0VMLCBTdHJpbmc+IFNlbGVjdG9yTmFtZU1hcDsKLQotLy8gTWFwIHNlbGVjdG9ycyBp
bnRvIEVkaXRvciBjb21tYW5kIG5hbWVzLgotLy8gVGhpcyBpcyBub3QgbmVlZGVkIGZvciBhbnkg
c2VsZWN0b3JzIHRoYXQgaGF2ZSB0aGUgc2FtZSBuYW1lIGFzIHRoZSBFZGl0b3IgY29tbWFuZC4K
LXN0YXRpYyBjb25zdCBTZWxlY3Rvck5hbWVNYXAqIGNyZWF0ZVNlbGVjdG9yRXhjZXB0aW9uTWFw
KCkKLXsKLSAgICBTZWxlY3Rvck5hbWVNYXAqIG1hcCA9IG5ldyBIYXNoTWFwPFNFTCwgU3RyaW5n
PjsKLSAgICAKLSAgICBtYXAtPmFkZChAc2VsZWN0b3IoaW5zZXJ0TmV3bGluZUlnbm9yaW5nRmll
bGRFZGl0b3I6KSwgIkluc2VydE5ld2xpbmUiKTsKLSAgICBtYXAtPmFkZChAc2VsZWN0b3IoaW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yOiksICJJbnNlcnROZXdsaW5lIik7Ci0gICAgbWFwLT5hZGQo
QHNlbGVjdG9yKGluc2VydFRhYklnbm9yaW5nRmllbGRFZGl0b3I6KSwgIkluc2VydFRhYiIpOwot
ICAgIG1hcC0+YWRkKEBzZWxlY3RvcihwYWdlRG93bjopLCAiTW92ZVBhZ2VEb3duIik7Ci0gICAg
bWFwLT5hZGQoQHNlbGVjdG9yKHBhZ2VEb3duQW5kTW9kaWZ5U2VsZWN0aW9uOiksICJNb3ZlUGFn
ZURvd25BbmRNb2RpZnlTZWxlY3Rpb24iKTsKLSAgICBtYXAtPmFkZChAc2VsZWN0b3IocGFnZVVw
OiksICJNb3ZlUGFnZVVwIik7Ci0gICAgbWFwLT5hZGQoQHNlbGVjdG9yKHBhZ2VVcEFuZE1vZGlm
eVNlbGVjdGlvbjopLCAiTW92ZVBhZ2VVcEFuZE1vZGlmeVNlbGVjdGlvbiIpOwotICAgIG1hcC0+
YWRkKEBzZWxlY3RvcihzY3JvbGxQYWdlRG93bjopLCAiU2Nyb2xsUGFnZUZvcndhcmQiKTsKLSAg
ICBtYXAtPmFkZChAc2VsZWN0b3Ioc2Nyb2xsUGFnZVVwOiksICJTY3JvbGxQYWdlQmFja3dhcmQi
KTsKLSAgICAKLSAgICByZXR1cm4gbWFwOwotfQotCi1zdGF0aWMgU3RyaW5nIGNvbW1hbmROYW1l
Rm9yU2VsZWN0b3IoU0VMIHNlbGVjdG9yKQotewotICAgIC8vIENoZWNrIHRoZSBleGNlcHRpb24g
bWFwIGZpcnN0LgotICAgIHN0YXRpYyBjb25zdCBTZWxlY3Rvck5hbWVNYXAqIGV4Y2VwdGlvbk1h
cCA9IGNyZWF0ZVNlbGVjdG9yRXhjZXB0aW9uTWFwKCk7Ci0gICAgU2VsZWN0b3JOYW1lTWFwOjpj
b25zdF9pdGVyYXRvciBpdCA9IGV4Y2VwdGlvbk1hcC0+ZmluZChzZWxlY3Rvcik7Ci0gICAgaWYg
KGl0ICE9IGV4Y2VwdGlvbk1hcC0+ZW5kKCkpCi0gICAgICAgIHJldHVybiBpdC0+dmFsdWU7Ci0g
ICAgCi0gICAgLy8gUmVtb3ZlIHRoZSB0cmFpbGluZyBjb2xvbi4KLSAgICAvLyBObyBuZWVkIHRv
IGNhcGl0YWxpemUgdGhlIGNvbW1hbmQgbmFtZSBzaW5jZSBFZGl0b3IgY29tbWFuZCBuYW1lcyBh
cmUKLSAgICAvLyBub3QgY2FzZSBzZW5zaXRpdmUuCi0gICAgY29uc3QgY2hhciogc2VsZWN0b3JO
YW1lID0gc2VsX2dldE5hbWUoc2VsZWN0b3IpOwotICAgIHNpemVfdCBzZWxlY3Rvck5hbWVMZW5n
dGggPSBzdHJsZW4oc2VsZWN0b3JOYW1lKTsKLSAgICBpZiAoc2VsZWN0b3JOYW1lTGVuZ3RoIDwg
MiB8fCBzZWxlY3Rvck5hbWVbc2VsZWN0b3JOYW1lTGVuZ3RoIC0gMV0gIT0gJzonKQotICAgICAg
ICByZXR1cm4gU3RyaW5nKCk7Ci0gICAgcmV0dXJuIFN0cmluZyhzZWxlY3Rvck5hbWUsIHNlbGVj
dG9yTmFtZUxlbmd0aCAtIDEpOwotfQotCi0vLyBFZGl0aW5nIGNvbW1hbmRzCi0KLSNkZWZpbmUg
V0VCQ09SRV9DT01NQU5EKGNvbW1hbmQpIC0gKHZvaWQpY29tbWFuZDooaWQpc2VuZGVyIHsgX2Rh
dGEtPl9pbXBsLT5leGVjdXRlRWRpdENvbW1hbmQoY29tbWFuZE5hbWVGb3JTZWxlY3RvcihfY21k
KSk7IH0KKyNkZWZpbmUgV0VCQ09SRV9DT01NQU5EKGNvbW1hbmQpIC0gKHZvaWQpY29tbWFuZDoo
aWQpc2VuZGVyIHsgX2RhdGEtPl9pbXBsLT5leGVjdXRlRWRpdENvbW1hbmRGb3JTZWxlY3Rvcihf
Y21kKTsgfQogCiBXRUJDT1JFX0NPTU1BTkQoYWxpZ25DZW50ZXIpCiBXRUJDT1JFX0NPTU1BTkQo
YWxpZ25KdXN0aWZpZWQpCkBAIC01MzAsMTI2ICs0NjgsOSBAQCBTb21lIG90aGVyIGVkaXRpbmct
cmVsYXRlZCBtZXRob2RzIHN0aWxsIHVuaW1wbGVtZW50ZWQ6CiAKICovCiAKLS8vIE1lbnUgaXRl
bXMgdmFsaWRhdGlvbgotCi1zdGF0aWMgTlNNZW51SXRlbSAqbWVudUl0ZW0oaWQgPE5TVmFsaWRh
dGVkVXNlckludGVyZmFjZUl0ZW0+IGl0ZW0pCi17Ci0gICAgaWYgKCFbKE5TT2JqZWN0ICopaXRl
bSBpc0tpbmRPZkNsYXNzOltOU01lbnVJdGVtIGNsYXNzXV0pCi0gICAgICAgIHJldHVybiBuaWw7
Ci0gICAgcmV0dXJuIChOU01lbnVJdGVtICopaXRlbTsKLX0KLQotc3RhdGljIE5TVG9vbGJhckl0
ZW0gKnRvb2xiYXJJdGVtKGlkIDxOU1ZhbGlkYXRlZFVzZXJJbnRlcmZhY2VJdGVtPiBpdGVtKQot
ewotICAgIGlmICghWyhOU09iamVjdCAqKWl0ZW0gaXNLaW5kT2ZDbGFzczpbTlNUb29sYmFySXRl
bSBjbGFzc11dKQotICAgICAgICByZXR1cm4gbmlsOwotICAgIHJldHVybiAoTlNUb29sYmFySXRl
bSAqKWl0ZW07Ci19Ci0KIC0gKEJPT0wpdmFsaWRhdGVVc2VySW50ZXJmYWNlSXRlbTooaWQgPE5T
VmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+KWl0ZW0KIHsKLSAgICBTRUwgYWN0aW9uID0gW2l0
ZW0gYWN0aW9uXTsKLQotICAgIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHNob3dHdWVzc1BhbmVs
OikpIHsKLSAgICAgICAgaWYgKE5TTWVudUl0ZW0gKm1lbnVJdGVtID0gOjptZW51SXRlbShpdGVt
KSkKLSAgICAgICAgICAgIFttZW51SXRlbSBzZXRUaXRsZTpjb250ZXh0TWVudUl0ZW1UYWdTaG93
U3BlbGxpbmdQYW5lbCghW1tbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBzcGVs
bGluZ1BhbmVsXSBpc1Zpc2libGVdKV07Ci0gICAgICAgIHJldHVybiBfZGF0YS0+X3BhZ2UtPmVk
aXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGU7Ci0gICAgfQotCi0gICAgaWYgKGFjdGlvbiA9
PSBAc2VsZWN0b3IoY2hlY2tTcGVsbGluZzopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoY2hhbmdl
U3BlbGxpbmc6KSkKLSAgICAgICAgcmV0dXJuIF9kYXRhLT5fcGFnZS0+ZWRpdG9yU3RhdGUoKS5p
c0NvbnRlbnRFZGl0YWJsZTsKLQotICAgIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZUNv
bnRpbnVvdXNTcGVsbENoZWNraW5nOikpIHsKLSAgICAgICAgYm9vbCBlbmFibGVkID0gVGV4dENo
ZWNrZXI6OmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdBbGxvd2VkKCk7Ci0gICAgICAgIGJvb2wg
Y2hlY2tlZCA9IGVuYWJsZWQgJiYgVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNDb250aW51b3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQ7Ci0gICAgICAgIFttZW51SXRlbShpdGVtKSBzZXRTdGF0ZTpjaGVj
a2VkID8gTlNPblN0YXRlIDogTlNPZmZTdGF0ZV07Ci0gICAgICAgIHJldHVybiBlbmFibGVkOwot
ICAgIH0KLQotICAgIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZUdyYW1tYXJDaGVja2lu
ZzopKSB7Ci0gICAgICAgIGJvb2wgY2hlY2tlZCA9IFRleHRDaGVja2VyOjpzdGF0ZSgpLmlzR3Jh
bW1hckNoZWNraW5nRW5hYmxlZDsKLSAgICAgICAgW21lbnVJdGVtKGl0ZW0pIHNldFN0YXRlOmNo
ZWNrZWQgPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKLSAgICAgICAgcmV0dXJuIFlFUzsKLSAg
ICB9Ci0KLSAgICBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0b2dnbGVBdXRvbWF0aWNTcGVsbGlu
Z0NvcnJlY3Rpb246KSkgewotICAgICAgICBib29sIGNoZWNrZWQgPSBUZXh0Q2hlY2tlcjo6c3Rh
dGUoKS5pc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQ7Ci0gICAgICAgIFttZW51
SXRlbShpdGVtKSBzZXRTdGF0ZTpjaGVja2VkID8gTlNPblN0YXRlIDogTlNPZmZTdGF0ZV07Ci0g
ICAgICAgIHJldHVybiBfZGF0YS0+X3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFi
bGU7Ci0gICAgfQotCi0gICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3Iob3JkZXJGcm9udFN1YnN0
aXR1dGlvbnNQYW5lbDopKSB7Ci0gICAgICAgIGlmIChOU01lbnVJdGVtICptZW51SXRlbSA9IDo6
bWVudUl0ZW0oaXRlbSkpCi0gICAgICAgICAgICBbbWVudUl0ZW0gc2V0VGl0bGU6Y29udGV4dE1l
bnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMoIVtbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxs
Q2hlY2tlcl0gc3Vic3RpdHV0aW9uc1BhbmVsXSBpc1Zpc2libGVdKV07Ci0gICAgICAgIHJldHVy
biBfZGF0YS0+X3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGU7Ci0gICAgfQot
Ci0gICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlU21hcnRJbnNlcnREZWxldGU6KSkg
ewotICAgICAgICBib29sIGNoZWNrZWQgPSBfZGF0YS0+X3BhZ2UtPmlzU21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKCk7Ci0gICAgICAgIFttZW51SXRlbShpdGVtKSBzZXRTdGF0ZTpjaGVja2VkID8g
TlNPblN0YXRlIDogTlNPZmZTdGF0ZV07Ci0gICAgICAgIHJldHVybiBfZGF0YS0+X3BhZ2UtPmVk
aXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGU7Ci0gICAgfQotCi0gICAgaWYgKGFjdGlvbiA9
PSBAc2VsZWN0b3IodG9nZ2xlQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb246KSkgewotICAgICAg
ICBib29sIGNoZWNrZWQgPSBUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRpY1F1b3RlU3Vi
c3RpdHV0aW9uRW5hYmxlZDsKLSAgICAgICAgW21lbnVJdGVtKGl0ZW0pIHNldFN0YXRlOmNoZWNr
ZWQgPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKLSAgICAgICAgcmV0dXJuIF9kYXRhLT5fcGFn
ZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZTsKLSAgICB9Ci0KLSAgICBpZiAoYWN0
aW9uID09IEBzZWxlY3Rvcih0b2dnbGVBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uOikpIHsKLSAg
ICAgICAgYm9vbCBjaGVja2VkID0gVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNEYXNo
U3Vic3RpdHV0aW9uRW5hYmxlZDsKLSAgICAgICAgW21lbnVJdGVtKGl0ZW0pIHNldFN0YXRlOmNo
ZWNrZWQgPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKLSAgICAgICAgcmV0dXJuIF9kYXRhLT5f
cGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZTsKLSAgICB9Ci0KLSAgICBpZiAo
YWN0aW9uID09IEBzZWxlY3Rvcih0b2dnbGVBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uOikpIHsKLSAg
ICAgICAgYm9vbCBjaGVja2VkID0gVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNMaW5r
RGV0ZWN0aW9uRW5hYmxlZDsKLSAgICAgICAgW21lbnVJdGVtKGl0ZW0pIHNldFN0YXRlOmNoZWNr
ZWQgPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKLSAgICAgICAgcmV0dXJuIF9kYXRhLT5fcGFn
ZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZTsKLSAgICB9Ci0KLSAgICBpZiAoYWN0
aW9uID09IEBzZWxlY3Rvcih0b2dnbGVBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnQ6KSkgewotICAg
ICAgICBib29sIGNoZWNrZWQgPSBUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRpY1RleHRS
ZXBsYWNlbWVudEVuYWJsZWQ7Ci0gICAgICAgIFttZW51SXRlbShpdGVtKSBzZXRTdGF0ZTpjaGVj
a2VkID8gTlNPblN0YXRlIDogTlNPZmZTdGF0ZV07Ci0gICAgICAgIHJldHVybiBfZGF0YS0+X3Bh
Z2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGU7Ci0gICAgfQotCi0gICAgaWYgKGFj
dGlvbiA9PSBAc2VsZWN0b3IodXBwZXJjYXNlV29yZDopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3Io
bG93ZXJjYXNlV29yZDopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoY2FwaXRhbGl6ZVdvcmQ6KSkK
LSAgICAgICAgcmV0dXJuIF9kYXRhLT5fcGFnZS0+ZWRpdG9yU3RhdGUoKS5zZWxlY3Rpb25Jc1Jh
bmdlICYmIF9kYXRhLT5fcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZTsKLSAg
ICAKLSAgICBpZiAoYWN0aW9uID09IEBzZWxlY3RvcihzdG9wU3BlYWtpbmc6KSkKLSAgICAgICAg
cmV0dXJuIFtOU0FwcCBpc1NwZWFraW5nXTsKLSAgICAKLSAgICAvLyBUaGUgY2VudGVyU2VsZWN0
aW9uSW5WaXNpYmxlQXJlYTogc2VsZWN0b3IgaXMgZW5hYmxlZCBpZiB0aGVyZSdzIGEgc2VsZWN0
aW9uIHJhbmdlIG9yIGlmIHRoZXJlJ3MgYW4gaW5zZXJ0aW9uIHBvaW50IGluIGFuIGVkaXRhYmxl
IGFyZWEuCi0gICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IoY2VudGVyU2VsZWN0aW9uSW5WaXNp
YmxlQXJlYTopKQotICAgICAgICByZXR1cm4gX2RhdGEtPl9wYWdlLT5lZGl0b3JTdGF0ZSgpLnNl
bGVjdGlvbklzUmFuZ2UgfHwgKF9kYXRhLT5fcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRF
ZGl0YWJsZSAmJiAhX2RhdGEtPl9wYWdlLT5lZGl0b3JTdGF0ZSgpLnNlbGVjdGlvbklzTm9uZSk7
Ci0KLSAgICAvLyBOZXh0LCBoYW5kbGUgZWRpdG9yIGNvbW1hbmRzLiBTdGFydCBieSByZXR1cm5p
bmcgWUVTIGZvciBhbnl0aGluZyB0aGF0IGlzIG5vdCBhbiBlZGl0b3IgY29tbWFuZC4KLSAgICAv
LyBSZXR1cm5pbmcgWUVTIGlzIHRoZSBkZWZhdWx0IHRoaW5nIHRvIGRvIGluIGFuIEFwcEtpdCB2
YWxpZGF0ZSBtZXRob2QgZm9yIGFueSBzZWxlY3RvciB0aGF0IGlzIG5vdCByZWNvZ25pemVkLgot
ICAgIFN0cmluZyBjb21tYW5kTmFtZSA9IGNvbW1hbmROYW1lRm9yU2VsZWN0b3IoW2l0ZW0gYWN0
aW9uXSk7Ci0gICAgaWYgKCFFZGl0b3I6OmNvbW1hbmRJc1N1cHBvcnRlZEZyb21NZW51T3JLZXlC
aW5kaW5nKGNvbW1hbmROYW1lKSkKLSAgICAgICAgcmV0dXJuIFlFUzsKLQotICAgIC8vIEFkZCB0
aGlzIGl0ZW0gdG8gdGhlIHZlY3RvciBvZiBpdGVtcyBmb3IgYSBnaXZlbiBjb21tYW5kIHRoYXQg
YXJlIGF3YWl0aW5nIHZhbGlkYXRpb24uCi0gICAgVmFsaWRhdGlvbk1hcDo6QWRkUmVzdWx0IGFk
ZFJlc3VsdCA9IF9kYXRhLT5fdmFsaWRhdGlvbk1hcC5hZGQoY29tbWFuZE5hbWUsIFZhbGlkYXRp
b25WZWN0b3IoKSk7Ci0gICAgYWRkUmVzdWx0Lml0ZXJhdG9yLT52YWx1ZS5hcHBlbmQoaXRlbSk7
Ci0gICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5KSB7Ci0gICAgICAgIC8vIElmIHdlIGFyZSBu
b3QgYWxyZWFkeSBhd2FpdGluZyB2YWxpZGF0aW9uIGZvciB0aGlzIGNvbW1hbmQsIHN0YXJ0IHRo
ZSBhc3luY2hyb25vdXMgdmFsaWRhdGlvbiBwcm9jZXNzLgotICAgICAgICAvLyBGSVhNRTogVGhl
b3JldGljYWxseSwgdGhlcmUgaXMgYSByYWNlIGhlcmU7IHdoZW4gd2UgZ2V0IHRoZSBhbnN3ZXIg
aXQgbWlnaHQgYmUgb2xkLCBmcm9tIGEgcHJldmlvdXMgdGltZQotICAgICAgICAvLyB3ZSBhc2tl
ZCBmb3IgdGhlIHNhbWUgY29tbWFuZDsgdGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoZSBhbnN3ZXIg
aXMgc3RpbGwgdmFsaWQuCi0gICAgICAgIF9kYXRhLT5fcGFnZS0+dmFsaWRhdGVDb21tYW5kKGNv
bW1hbmROYW1lLCBbc2VsZl0oY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgYm9vbCBpc0VuYWJs
ZWQsIGludDMyX3Qgc3RhdGUsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewot
ICAgICAgICAgICAgLy8gSWYgdGhlIHByb2Nlc3MgZXhpdHMgYmVmb3JlIHRoZSBjb21tYW5kIGNh
biBiZSB2YWxpZGF0ZWQsIHdlJ2xsIGJlIGNhbGxlZCBiYWNrIHdpdGggYW4gZXJyb3IuCi0gICAg
ICAgICAgICBpZiAoZXJyb3IgIT0gV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKQot
ICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIAotICAgICAgICAgICAgW3NlbGYg
X3NldFVzZXJJbnRlcmZhY2VJdGVtU3RhdGU6Y29tbWFuZE5hbWUgZW5hYmxlZDppc0VuYWJsZWQg
c3RhdGU6c3RhdGVdOwotICAgICAgICB9KTsKLSAgICB9Ci0KLSAgICAvLyBUcmVhdCBhcyBlbmFi
bGVkIHVudGlsIHdlIGdldCB0aGUgcmVzdWx0IGJhY2sgZnJvbSB0aGUgd2ViIHByb2Nlc3MgYW5k
IF9zZXRVc2VySW50ZXJmYWNlSXRlbVN0YXRlIGlzIGNhbGxlZC4KLSAgICAvLyBGSVhNRSA8cmRh
cjovL3Byb2JsZW0vODgwMzQ1OT46IFRoaXMgbWVhbnMgZGlzYWJsZWQgaXRlbXMgd2lsbCBmbGFz
aCBlbmFibGVkIGF0IGZpcnN0IGZvciBhIG1vbWVudC4KLSAgICAvLyBCdXQgcmV0dXJuaW5nIE5P
IGhlcmUgd291bGQgYmUgd29yc2U7IHRoYXQgd291bGQgbWFrZSBrZXlib2FyZCBjb21tYW5kcyBz
dWNoIGFzIGNvbW1hbmQtQyBmYWlsLgotICAgIHJldHVybiBZRVM7CisgICAgcmV0dXJuIF9kYXRh
LT5faW1wbC0+dmFsaWRhdGVVc2VySW50ZXJmYWNlSXRlbShpdGVtKTsKIH0KIAogLSAoSUJBY3Rp
b24pc3RhcnRTcGVha2luZzooaWQpc2VuZGVyCkBAIC0yMTcxLDE5ICsxOTkyLDYgQEAgc3RhdGlj
IHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3Rv
cjxDb21wb3NpdGlvblVuZGUKICAgICBfZGF0YS0+X2ltcGwtPnF1aWNrTG9va1dpdGhFdmVudChl
dmVudCk7CiB9CiAKLS0gKHZvaWQpX3NldFVzZXJJbnRlcmZhY2VJdGVtU3RhdGU6KE5TU3RyaW5n
ICopY29tbWFuZE5hbWUgZW5hYmxlZDooQk9PTClpc0VuYWJsZWQgc3RhdGU6KGludCluZXdTdGF0
ZQotewotICAgIFZhbGlkYXRpb25WZWN0b3IgaXRlbXMgPSBfZGF0YS0+X3ZhbGlkYXRpb25NYXAu
dGFrZShjb21tYW5kTmFtZSk7Ci0gICAgc2l6ZV90IHNpemUgPSBpdGVtcy5zaXplKCk7Ci0gICAg
Zm9yIChzaXplX3QgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKLSAgICAgICAgVmFsaWRhdGlvbkl0
ZW0gaXRlbSA9IGl0ZW1zW2ldLmdldCgpOwotICAgICAgICBbbWVudUl0ZW0oaXRlbSkgc2V0U3Rh
dGU6bmV3U3RhdGVdOwotICAgICAgICBbbWVudUl0ZW0oaXRlbSkgc2V0RW5hYmxlZDppc0VuYWJs
ZWRdOwotICAgICAgICBbdG9vbGJhckl0ZW0oaXRlbSkgc2V0RW5hYmxlZDppc0VuYWJsZWRdOwot
ICAgICAgICAvLyBGSVhNRSA8cmRhcjovL3Byb2JsZW0vODgwMzM5Mj46IElmIHRoZSBpdGVtIGlz
IG5laXRoZXIgYSBtZW51IG5vciB0b29sYmFyIGl0ZW0sIGl0IHdpbGwgYmUgbGVmdCBlbmFibGVk
LgotICAgIH0KLX0KLQogLSAodm9pZClfZG9uZVdpdGhLZXlFdmVudDooTlNFdmVudCAqKWV2ZW50
IGV2ZW50V2FzSGFuZGxlZDooQk9PTClldmVudFdhc0hhbmRsZWQKIHsKICAgICBpZiAoW2V2ZW50
IHR5cGVdICE9IE5TS2V5RG93bikKQEAgLTIzMjUsMTIgKzIxMzMsMTIgQEAgc3RhdGljIHZvaWQg
ZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21w
b3NpdGlvblVuZGUKIAogLSAodm9pZClzYXZlQmFja0ZvcndhcmRTbmFwc2hvdEZvckN1cnJlbnRJ
dGVtCiB7Ci0gICAgX2RhdGEtPl9wYWdlLT5yZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoKTsKKyAg
ICBfZGF0YS0+X2ltcGwtPnNhdmVCYWNrRm9yd2FyZFNuYXBzaG90Rm9yQ3VycmVudEl0ZW0oKTsK
IH0KIAogLSAodm9pZClzYXZlQmFja0ZvcndhcmRTbmFwc2hvdEZvckl0ZW06KFdLQmFja0Zvcndh
cmRMaXN0SXRlbVJlZilpdGVtCiB7Ci0gICAgX2RhdGEtPl9wYWdlLT5yZWNvcmROYXZpZ2F0aW9u
U25hcHNob3QoKnRvSW1wbChpdGVtKSk7CisgICAgX2RhdGEtPl9pbXBsLT5zYXZlQmFja0Zvcndh
cmRTbmFwc2hvdEZvckl0ZW0oKnRvSW1wbChpdGVtKSk7CiB9CiAKIC0gKGlkKWluaXRXaXRoRnJh
bWU6KE5TUmVjdClmcmFtZSBjb250ZXh0UmVmOihXS0NvbnRleHRSZWYpY29udGV4dFJlZiBwYWdl
R3JvdXBSZWY6KFdLUGFnZUdyb3VwUmVmKXBhZ2VHcm91cFJlZgpAQCAtMjM2MywxOSArMjE3MSw3
IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3Ry
aW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAKIC0gKHZvaWQpdXBkYXRlTGF5ZXIKIHsKLSAg
ICBpZiAoW3NlbGYgZHJhd3NCYWNrZ3JvdW5kXSAmJiAhW3NlbGYgZHJhd3NUcmFuc3BhcmVudEJh
Y2tncm91bmRdKQotICAgICAgICBzZWxmLmxheWVyLmJhY2tncm91bmRDb2xvciA9IENHQ29sb3JH
ZXRDb25zdGFudENvbG9yKGtDR0NvbG9yV2hpdGUpOwotICAgIGVsc2UKLSAgICAgICAgc2VsZi5s
YXllci5iYWNrZ3JvdW5kQ29sb3IgPSBDR0NvbG9yR2V0Q29uc3RhbnRDb2xvcihrQ0dDb2xvckNs
ZWFyKTsKLQotICAgIC8vIElmIGFzeW5jaHJvbm91cyBnZW9tZXRyeSB1cGRhdGVzIGhhdmUgYmVl
biBzZW50IGJ5IGZvcmNlQXN5bmNEcmF3aW5nQXJlYVNpemVVcGRhdGUsCi0gICAgLy8gdGhlbiBz
dWJzZXF1ZW50IGNhbGxzIHRvIHNldEZyYW1lU2l6ZSBzaG91bGQgbm90IHJlc3VsdCBpbiB1cyB3
YWl0aW5nIGZvciB0aGUgZGlkCi0gICAgLy8gdWRwYXRlIHJlc3BvbnNlIGlmIHNldEZyYW1lU2l6
ZSBpcyBjYWxsZWQuCi0gICAgaWYgKFtzZWxmIGZyYW1lU2l6ZVVwZGF0ZXNEaXNhYmxlZF0pCi0g
ICAgICAgIHJldHVybjsKLQotICAgIGlmIChEcmF3aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJlYSA9
IF9kYXRhLT5fcGFnZS0+ZHJhd2luZ0FyZWEoKSkKLSAgICAgICAgZHJhd2luZ0FyZWEtPndhaXRG
b3JQb3NzaWJsZUdlb21ldHJ5VXBkYXRlKCk7CisgICAgX2RhdGEtPl9pbXBsLT51cGRhdGVMYXll
cigpOwogfQogCiAtIChXS1BhZ2VSZWYpcGFnZVJlZgpAQCAtMjQzMSwyNyArMjIyNywyMiBAQCBz
dGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywg
VmVjdG9yPENvbXBvc2l0aW9uVW5kZQogCiAtIChOU1NpemUpbWluaW11bVNpemVGb3JBdXRvTGF5
b3V0CiB7Ci0gICAgcmV0dXJuIF9kYXRhLT5fcGFnZS0+bWluaW11bUxheW91dFNpemUoKTsKKyAg
ICByZXR1cm4gTlNTaXplRnJvbUNHU2l6ZShfZGF0YS0+X2ltcGwtPm1pbmltdW1TaXplRm9yQXV0
b0xheW91dCgpKTsKIH0KIAogLSAodm9pZClzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQ6KE5T
U2l6ZSltaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQKIHsKLSAgICBCT09MIGV4cGFuZHNUb0ZpdCA9
IG1pbmltdW1TaXplRm9yQXV0b0xheW91dC53aWR0aCA+IDA7Ci0KLSAgICBfZGF0YS0+X3BhZ2Ut
PnNldE1pbmltdW1MYXlvdXRTaXplKEludFNpemUobWluaW11bVNpemVGb3JBdXRvTGF5b3V0Lndp
ZHRoLCBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQuaGVpZ2h0KSk7Ci0gICAgX2RhdGEtPl9wYWdl
LT5zZXRNYWluRnJhbWVJc1Njcm9sbGFibGUoIWV4cGFuZHNUb0ZpdCk7Ci0KLSAgICBbc2VsZiBz
ZXRTaG91bGRDbGlwVG9WaXNpYmxlUmVjdDpleHBhbmRzVG9GaXRdOworICAgIF9kYXRhLT5faW1w
bC0+c2V0TWluaW11bVNpemVGb3JBdXRvTGF5b3V0KE5TU2l6ZVRvQ0dTaXplKG1pbmltdW1TaXpl
Rm9yQXV0b0xheW91dCkpOwogfQogCiAtIChCT09MKXNob3VsZEV4cGFuZFRvVmlld0hlaWdodEZv
ckF1dG9MYXlvdXQKIHsKLSAgICByZXR1cm4gX2RhdGEtPl9wYWdlLT5hdXRvU2l6aW5nU2hvdWxk
RXhwYW5kVG9WaWV3SGVpZ2h0KCk7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+c2hvdWxkRXhw
YW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dCgpOwogfQogCiAtICh2b2lkKXNldFNob3VsZEV4
cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQ6KEJPT0wpc2hvdWxkRXhwYW5kCiB7Ci0gICAg
cmV0dXJuIF9kYXRhLT5fcGFnZS0+c2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdo
dChzaG91bGRFeHBhbmQpOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPnNldFNob3VsZEV4cGFu
ZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQoc2hvdWxkRXhwYW5kKTsKIH0KIAogLSAoQk9PTClz
aG91bGRDbGlwVG9WaXNpYmxlUmVjdApAQCAtMjQ2NiwxNiArMjI1NywxMiBAQCBzdGF0aWMgdm9p
ZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPENv
bXBvc2l0aW9uVW5kZQogCiAtIChOU0NvbG9yICopdW5kZXJsYXlDb2xvcgogewotICAgIENvbG9y
IHdlYkNvbG9yID0gX2RhdGEtPl9wYWdlLT51bmRlcmxheUNvbG9yKCk7Ci0gICAgaWYgKCF3ZWJD
b2xvci5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAgICByZXR1cm4gbnNDb2xv
cih3ZWJDb2xvcik7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+dW5kZXJsYXlDb2xvcigpOwog
fQogCiAtICh2b2lkKXNldFVuZGVybGF5Q29sb3I6KE5TQ29sb3IgKil1bmRlcmxheUNvbG9yCiB7
Ci0gICAgX2RhdGEtPl9wYWdlLT5zZXRVbmRlcmxheUNvbG9yKGNvbG9yRnJvbU5TQ29sb3IodW5k
ZXJsYXlDb2xvcikpOworICAgIF9kYXRhLT5faW1wbC0+c2V0VW5kZXJsYXlDb2xvcih1bmRlcmxh
eUNvbG9yKTsKIH0KIAogI2lmIFdLX0FQSV9FTkFCTEVECkBAIC0yNjQ0LDEwMSArMjQzMSwzMiBA
QCBzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmlu
ZywgVmVjdG9yPENvbXBvc2l0aW9uVW5kZQogCiAtICh2b2lkKV9zZXRPdmVybGF5U2Nyb2xsYmFy
U3R5bGU6KF9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZSlzY3JvbGxiYXJTdHlsZQogewotICAgIFdU
Rjo6T3B0aW9uYWw8V2ViQ29yZTo6U2Nyb2xsYmFyT3ZlcmxheVN0eWxlPiBjb3JlU2Nyb2xsYmFy
U3R5bGU7Ci0KLSAgICBzd2l0Y2ggKHNjcm9sbGJhclN0eWxlKSB7Ci0gICAgY2FzZSBfV0tPdmVy
bGF5U2Nyb2xsYmFyU3R5bGVEYXJrOgotICAgICAgICBjb3JlU2Nyb2xsYmFyU3R5bGUgPSBTY3Jv
bGxiYXJPdmVybGF5U3R5bGVEYXJrOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIF9XS092ZXJs
YXlTY3JvbGxiYXJTdHlsZUxpZ2h0OgotICAgICAgICBjb3JlU2Nyb2xsYmFyU3R5bGUgPSBTY3Jv
bGxiYXJPdmVybGF5U3R5bGVMaWdodDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBfV0tPdmVy
bGF5U2Nyb2xsYmFyU3R5bGVEZWZhdWx0OgotICAgICAgICBjb3JlU2Nyb2xsYmFyU3R5bGUgPSBT
Y3JvbGxiYXJPdmVybGF5U3R5bGVEZWZhdWx0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIF9X
S092ZXJsYXlTY3JvbGxiYXJTdHlsZUF1dG9tYXRpYzoKLSAgICBkZWZhdWx0OgotICAgICAgICBi
cmVhazsKLSAgICB9Ci0KLSAgICBfZGF0YS0+X3BhZ2UtPnNldE92ZXJsYXlTY3JvbGxiYXJTdHls
ZShjb3JlU2Nyb2xsYmFyU3R5bGUpOworICAgIF9kYXRhLT5faW1wbC0+c2V0T3ZlcmxheVNjcm9s
bGJhclN0eWxlKHNjcm9sbGJhclN0eWxlKTsKIH0KIAogLSAoX1dLT3ZlcmxheVNjcm9sbGJhclN0
eWxlKV9vdmVybGF5U2Nyb2xsYmFyU3R5bGUKIHsKLSAgICBXVEY6Ok9wdGlvbmFsPFdlYkNvcmU6
OlNjcm9sbGJhck92ZXJsYXlTdHlsZT4gY29yZVNjcm9sbGJhclN0eWxlID0gX2RhdGEtPl9wYWdl
LT5vdmVybGF5U2Nyb2xsYmFyU3R5bGUoKTsKLQotICAgIGlmICghY29yZVNjcm9sbGJhclN0eWxl
KQotICAgICAgICByZXR1cm4gX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlQXV0b21hdGljOwotCi0g
ICAgc3dpdGNoIChjb3JlU2Nyb2xsYmFyU3R5bGUudmFsdWUoKSkgewotICAgIGNhc2UgU2Nyb2xs
YmFyT3ZlcmxheVN0eWxlRGFyazoKLSAgICAgICAgcmV0dXJuIF9XS092ZXJsYXlTY3JvbGxiYXJT
dHlsZURhcms7Ci0gICAgY2FzZSBTY3JvbGxiYXJPdmVybGF5U3R5bGVMaWdodDoKLSAgICAgICAg
cmV0dXJuIF9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZUxpZ2h0OwotICAgIGNhc2UgU2Nyb2xsYmFy
T3ZlcmxheVN0eWxlRGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIF9XS092ZXJsYXlTY3JvbGxiYXJT
dHlsZURlZmF1bHQ7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIF9XS092ZXJsYXlTY3Jv
bGxiYXJTdHlsZUF1dG9tYXRpYzsKLSAgICB9CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+b3Zl
cmxheVNjcm9sbGJhclN0eWxlKCk7CiB9CiAKIC0gKE5TQ29sb3IgKilfcGFnZUV4dGVuZGVkQmFj
a2dyb3VuZENvbG9yCiB7Ci0gICAgV2ViQ29yZTo6Q29sb3IgY29sb3IgPSBfZGF0YS0+X3BhZ2Ut
PnBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcigpOwotICAgIGlmICghY29sb3IuaXNWYWxpZCgp
KQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgcmV0dXJuIG5zQ29sb3IoY29sb3IpOworICAg
IHJldHVybiBfZGF0YS0+X2ltcGwtPnBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcigpOwogfQog
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XbWlzc2luZy1ub3JldHVybiIKLS8vIFRoaXMgbWV0aG9kIGZvcmNlcyBhIGRy
YXdpbmcgYXJlYSBnZW9tZXRyeSB1cGRhdGUsIGV2ZW4gaWYgZnJhbWUgc2l6ZSB1cGRhdGVzIGFy
ZSBkaXNhYmxlZC4KLS8vIFRoZSB1cGRhdGVkIGlzIHBlcmZvcm1lZCBhc3luY2hyb25vdXNseTsg
d2UgZG9uJ3Qgd2FpdCBmb3IgdGhlIGdlb21ldHJ5IHVwZGF0ZSBiZWZvcmUgcmV0dXJuaW5nLgot
Ly8gVGhlIGFyZWEgZHJhd24gbmVlZCBub3QgbWF0Y2ggdGhlIGN1cnJlbnQgZnJhbWUgc2l6ZSAt
IGlmIGl0IGRpZmZlcnMgaXQgd2lsbCBiZSBhbmNob3JlZCB0byB0aGUKLS8vIGZyYW1lIGFjY29y
ZGluZyB0byB0aGUgY3VycmVudCBjb250ZW50QW5jaG9yLgogLSAodm9pZClmb3JjZUFzeW5jRHJh
d2luZ0FyZWFTaXplVXBkYXRlOihOU1NpemUpc2l6ZQogewotICAgIC8vIFRoaXMgU1BJIGlzIG9u
bHkgdXNlZCBvbiAxMC45IGFuZCBiZWxvdywgYW5kIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBm
ZW5jZS1iYXNlZCBkcmF3aW5nIGFyZWEgc2l6ZSBzeW5jaHJvbml6YXRpb24gaW4gMTAuMTArLgot
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA5MAotICAgIGlmIChfZGF0
YS0+X2ltcGwtPmNsaXBzVG9WaXNpYmxlUmVjdCgpKQotICAgICAgICBfZGF0YS0+X2ltcGwtPnVw
ZGF0ZVZpZXdFeHBvc2VkUmVjdCgpOwotICAgIF9kYXRhLT5faW1wbC0+c2V0RHJhd2luZ0FyZWFT
aXplKE5TU2l6ZVRvQ0dTaXplKHNpemUpKTsKLQotICAgIC8vIElmIGEgZ2VvbWV0cnkgdXBkYXRl
IGlzIHBlbmRpbmcgdGhlIG5ldyB1cGRhdGUgd29uJ3QgYmUgc2VudC4gUG9sbCB3aXRob3V0IHdh
aXRpbmcgZm9yIGFueQotICAgIC8vIHBlbmRpbmcgZGlkLXVwZGF0ZSBtZXNzYWdlIG5vdywgc3Vj
aCB0aGF0IHRoZSBuZXcgdXBkYXRlIGNhbiBiZSBzZW50LiBXZSBkbyBzbyBhZnRlciBzZXR0aW5n
Ci0gICAgLy8gdGhlIGRyYXdpbmcgYXJlYSBzaXplIHN1Y2ggdGhhdCB0aGUgbGF0ZXN0IHVwZGF0
ZSBpcyBzZW50LgotICAgIGlmIChEcmF3aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJlYSA9IF9kYXRh
LT5fcGFnZS0+ZHJhd2luZ0FyZWEoKSkKLSAgICAgICAgZHJhd2luZ0FyZWEtPndhaXRGb3JQb3Nz
aWJsZUdlb21ldHJ5VXBkYXRlKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onplcm8oKSk7Ci0j
ZWxzZQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotI2VuZGlmCisgICAgX2RhdGEtPl9pbXBs
LT5mb3JjZUFzeW5jRHJhd2luZ0FyZWFTaXplVXBkYXRlKE5TU2l6ZVRvQ0dTaXplKHNpemUpKTsK
IH0KIAogLSAodm9pZCl3YWl0Rm9yQXN5bmNEcmF3aW5nQXJlYVNpemVVcGRhdGUKIHsKLSAgICAv
LyBUaGlzIFNQSSBpcyBvbmx5IHVzZWQgb24gMTAuOSBhbmQgYmVsb3csIGFuZCBpcyBpbmNvbXBh
dGlibGUgd2l0aCB0aGUgZmVuY2UtYmFzZWQgZHJhd2luZyBhcmVhIHNpemUgc3luY2hyb25pemF0
aW9uIGluIDEwLjEwKy4KLSNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEw
OTAKLSAgICBpZiAoRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEgPSBfZGF0YS0+X3BhZ2Ut
PmRyYXdpbmdBcmVhKCkpIHsKLSAgICAgICAgLy8gSWYgYSBnZW9tZXRyeSB1cGRhdGUgaXMgc3Rp
bGwgcGVuZGluZyB0aGVuIHRoZSBhY3Rpb24gb2YgcmVjZWl2aW5nIHRoZQotICAgICAgICAvLyBm
aXJzdCBnZW9tZXRyeSB1cGRhdGUgbWF5IHJlc3VsdCBpbiBhbm90aGVyIHVwZGF0ZSBiZWluZyBz
Y2hlZHVsZWQgLQotICAgICAgICAvLyB3ZSBzaG91bGQgd2FpdCBmb3IgdGhpcyB0byBjb21wbGV0
ZSB0b28uCi0gICAgICAgIGRyYXdpbmdBcmVhLT53YWl0Rm9yUG9zc2libGVHZW9tZXRyeVVwZGF0
ZShEcmF3aW5nQXJlYVByb3h5OjpkaWRVcGRhdGVCYWNraW5nU3RvcmVTdGF0ZVRpbWVvdXQoKSAv
IDIpOwotICAgICAgICBkcmF3aW5nQXJlYS0+d2FpdEZvclBvc3NpYmxlR2VvbWV0cnlVcGRhdGUo
RHJhd2luZ0FyZWFQcm94eTo6ZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGVUaW1lb3V0KCkgLyAy
KTsKLSAgICB9Ci0jZWxzZQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotI2VuZGlmCisgICAg
X2RhdGEtPl9pbXBsLT53YWl0Rm9yQXN5bmNEcmF3aW5nQXJlYVNpemVVcGRhdGUoKTsKIH0KLSNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKIAogLSAoQk9PTClpc1VzaW5nVUlTaWRlQ29tcG9z
aXRpbmcKIHsKLSAgICBpZiAoRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEgPSBfZGF0YS0+
X3BhZ2UtPmRyYXdpbmdBcmVhKCkpCi0gICAgICAgIHJldHVybiBkcmF3aW5nQXJlYS0+dHlwZSgp
ID09IERyYXdpbmdBcmVhVHlwZVJlbW90ZUxheWVyVHJlZTsKLQotICAgIHJldHVybiBOTzsKKyAg
ICByZXR1cm4gX2RhdGEtPl9pbXBsLT5pc1VzaW5nVUlTaWRlQ29tcG9zaXRpbmcoKTsKIH0KIAog
LSAodm9pZClzZXRBbGxvd3NNYWduaWZpY2F0aW9uOihCT09MKWFsbG93c01hZ25pZmljYXRpb24K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5o
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggN2Fk
NTdmYS4uYThiMzBhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLmgKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJQbHVnaW5Db21wbGV4VGV4dElu
cHV0U3RhdGUuaCIKICNpbmNsdWRlICJXS0xheW91dE1vZGUuaCIKICNpbmNsdWRlICJXZWJQYWdl
UHJveHkuaCIKKyNpbmNsdWRlICJfV0tPdmVybGF5U2Nyb2xsYmFyU3R5bGUuaCIKICNpbmNsdWRl
IDxXZWJDb3JlL1RleHRJbmRpY2F0b3JXaW5kb3cuaD4KICNpbmNsdWRlIDxmdW5jdGlvbmFsPgog
I2luY2x1ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KQEAgLTQwLDYgKzQxLDcgQEAKIE9CSkNfQ0xBU1Mg
TlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplcjsKIE9CSkNfQ0xBU1MgTlNUZXh0SW5w
dXRDb250ZXh0OwogT0JKQ19DTEFTUyBOU1ZpZXc7CitPQkpDX0NMQVNTIFdLQnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlcjsKIE9CSkNfQ0xBU1MgV0tFZGl0b3JVbmRvVGFyZ2V0T2JqQzsKIE9CSkNf
Q0xBU1MgV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcjsKIE9CSkNfQ0xBU1MgV0tJbW1lZGlh
dGVBY3Rpb25Db250cm9sbGVyOwpAQCAtODAsNiArODIsMTAgQEAgY2xhc3MgV2ViRWRpdENvbW1h
bmRQcm94eTsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIHN0cnVjdCBDb2xvclNwYWNlRGF0YTsKIAor
dHlwZWRlZiBpZCA8TlNWYWxpZGF0ZWRVc2VySW50ZXJmYWNlSXRlbT4gVmFsaWRhdGlvbkl0ZW07
Cit0eXBlZGVmIFZlY3RvcjxSZXRhaW5QdHI8VmFsaWRhdGlvbkl0ZW0+PiBWYWxpZGF0aW9uVmVj
dG9yOwordHlwZWRlZiBIYXNoTWFwPFN0cmluZywgVmFsaWRhdGlvblZlY3Rvcj4gVmFsaWRhdGlv
bk1hcDsKKwogY2xhc3MgV2ViVmlld0ltcGwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYlZpZXdJbXBsKTsKQEAgLTExOSw3ICsxMjUs
MTEgQEAgcHVibGljOgogICAgIENHU2l6ZSBmaXhlZExheW91dFNpemUoKSBjb25zdDsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiBjcmVhdGVEcmF3aW5nQXJlYVByb3h5
KCk7CisgICAgYm9vbCBpc1VzaW5nVUlTaWRlQ29tcG9zaXRpbmcoKSBjb25zdDsKICAgICB2b2lk
IHNldERyYXdpbmdBcmVhU2l6ZShDR1NpemUpOworICAgIHZvaWQgZm9yY2VBc3luY0RyYXdpbmdB
cmVhU2l6ZVVwZGF0ZShDR1NpemUpOworICAgIHZvaWQgd2FpdEZvckFzeW5jRHJhd2luZ0FyZWFT
aXplVXBkYXRlKCk7CisgICAgdm9pZCB1cGRhdGVMYXllcigpOwogCiAgICAgdm9pZCBzZXRBdXRv
bWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHMoYm9vbCk7CiAgICAgYm9vbCBhdXRvbWF0aWNh
bGx5QWRqdXN0c0NvbnRlbnRJbnNldHMoKSBjb25zdCB7IHJldHVybiBtX2F1dG9tYXRpY2FsbHlB
ZGp1c3RzQ29udGVudEluc2V0czsgfQpAQCAtMTMyLDYgKzE0MiwxMCBAQCBwdWJsaWM6CiAgICAg
dm9pZCBzZXRDbGlwc1RvVmlzaWJsZVJlY3QoYm9vbCk7CiAgICAgYm9vbCBjbGlwc1RvVmlzaWJs
ZVJlY3QoKSBjb25zdCB7IHJldHVybiBtX2NsaXBzVG9WaXNpYmxlUmVjdDsgfQogCisgICAgdm9p
ZCBzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQoQ0dTaXplKTsKKyAgICBDR1NpemUgbWluaW11
bVNpemVGb3JBdXRvTGF5b3V0KCkgY29uc3Q7CisgICAgdm9pZCBzZXRTaG91bGRFeHBhbmRUb1Zp
ZXdIZWlnaHRGb3JBdXRvTGF5b3V0KGJvb2wpOworICAgIGJvb2wgc2hvdWxkRXhwYW5kVG9WaWV3
SGVpZ2h0Rm9yQXV0b0xheW91dCgpIGNvbnN0OwogICAgIHZvaWQgc2V0SW50cmluc2ljQ29udGVu
dFNpemUoQ0dTaXplKTsKICAgICBDR1NpemUgaW50cmluc2ljQ29udGVudFNpemUoKSBjb25zdDsK
IApAQCAtMTY0LDYgKzE3OCwxNCBAQCBwdWJsaWM6CiAKICAgICBDb2xvclNwYWNlRGF0YSBjb2xv
clNwYWNlKCk7CiAKKyAgICB2b2lkIHNldFVuZGVybGF5Q29sb3IoTlNDb2xvciAqKTsKKyAgICBO
U0NvbG9yICp1bmRlcmxheUNvbG9yKCkgY29uc3Q7CisgICAgTlNDb2xvciAqcGFnZUV4dGVuZGVk
QmFja2dyb3VuZENvbG9yKCkgY29uc3Q7CisKKyAgICAvLyBGSVhNRTogQ2FuJ3QgaGF2ZSBhbnRp
cXVlIEFQSSB0eXBlcyBoZXJlLgorICAgIHZvaWQgc2V0T3ZlcmxheVNjcm9sbGJhclN0eWxlKF9X
S092ZXJsYXlTY3JvbGxiYXJTdHlsZSk7CisgICAgX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlIG92
ZXJsYXlTY3JvbGxiYXJTdHlsZSgpIGNvbnN0OworCiAgICAgdm9pZCBiZWdpbkRlZmVycmluZ1Zp
ZXdJbldpbmRvd0NoYW5nZXMoKTsKICAgICAvLyBGSVhNRTogTWVyZ2UgdGhlc2UgdHdvPwogICAg
IHZvaWQgZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcygpOwpAQCAtMjA0LDcgKzIyNiw4
IEBAIHB1YmxpYzoKICAgICBOU1dpbmRvdyAqY3JlYXRlRnVsbFNjcmVlbldpbmRvdygpOwogCiAg
ICAgYm9vbCBpc0VkaXRhYmxlKCkgY29uc3Q7Ci0gICAgdm9pZCBleGVjdXRlRWRpdENvbW1hbmQo
Y29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgY29uc3QgU3RyaW5nJiBhcmd1bWVudCA9IFN0cmlu
ZygpKTsKKyAgICBib29sIGV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yKFNFTCk7CisgICAg
dm9pZCBleGVjdXRlRWRpdENvbW1hbmRGb3JTZWxlY3RvcihTRUwsIGNvbnN0IFN0cmluZyYgYXJn
dW1lbnQgPSBTdHJpbmcoKSk7CiAgICAgdm9pZCByZWdpc3RlckVkaXRDb21tYW5kKFJlZlB0cjxX
ZWJFZGl0Q29tbWFuZFByb3h5PiwgV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvKTsKICAgICB2b2lk
IGNsZWFyQWxsRWRpdENvbW1hbmRzKCk7CiAgICAgYm9vbCB3cml0ZVNlbGVjdGlvblRvUGFzdGVi
b2FyZChOU1Bhc3RlYm9hcmQgKiwgTlNBcnJheSAqdHlwZXMpOwpAQCAtMjEyLDYgKzIzNSw3IEBA
IHB1YmxpYzoKICAgICB2b2lkIHNlbGVjdGlvbkRpZENoYW5nZSgpOwogICAgIHZvaWQgc3RhcnRP
YnNlcnZpbmdGb250UGFuZWwoKTsKICAgICB2b2lkIHVwZGF0ZUZvbnRQYW5lbElmTmVlZGVkKCk7
CisgICAgYm9vbCB2YWxpZGF0ZVVzZXJJbnRlcmZhY2VJdGVtKGlkIDxOU1ZhbGlkYXRlZFVzZXJJ
bnRlcmZhY2VJdGVtPik7CiAKICAgICB2b2lkIHByZWZlcmVuY2VzRGlkQ2hhbmdlKCk7CiAKQEAg
LTI3NCw2ICsyOTgsOCBAQCBwdWJsaWM6CiAKICAgICBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAq
cmVtb3RlT2JqZWN0UmVnaXN0cnkoKTsKICAgICB2b2lkIGRlc3Ryb3lSZW1vdGVPYmplY3RSZWdp
c3RyeSgpOyAvLyBGSVhNRTogVGVtcG9yYXJ5LiBDYW4gZm9sZCBpbiBhZnRlciB3ZSBtb3ZlIG93
bmVyc2hpcCBvZiBXZWJQYWdlUHJveHkgaGVyZS4KKworICAgIFdLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlciAqYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcigpOwogI2VuZGlmIC8vIFdLX0FQSV9F
TkFCTEVECiAKICNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQpAQCAtMzAyLDYgKzMyOCw4IEBAIHB1
YmxpYzoKICAgICBOU0FycmF5ICpuYW1lc09mUHJvbWlzZWRGaWxlc0Ryb3BwZWRBdERlc3RpbmF0
aW9uKE5TVVJMICpkcm9wRGVzdGluYXRpb24pOwogCiAgICAgUmVmUHRyPFZpZXdTbmFwc2hvdD4g
dGFrZVZpZXdTbmFwc2hvdCgpOworICAgIHZvaWQgc2F2ZUJhY2tGb3J3YXJkU25hcHNob3RGb3JD
dXJyZW50SXRlbSgpOworICAgIHZvaWQgc2F2ZUJhY2tGb3J3YXJkU25hcHNob3RGb3JJdGVtKFdl
YkJhY2tGb3J3YXJkTGlzdEl0ZW0mKTsKIAogICAgIFZpZXdHZXN0dXJlQ29udHJvbGxlciogZ2Vz
dHVyZUNvbnRyb2xsZXIoKSB7IHJldHVybiBtX2dlc3R1cmVDb250cm9sbGVyLmdldCgpOyB9CiAg
ICAgVmlld0dlc3R1cmVDb250cm9sbGVyJiBlbnN1cmVHZXN0dXJlQ29udHJvbGxlcigpOwpAQCAt
MzI5LDggKzM1Nyw2IEBAIHB1YmxpYzoKICAgICB2b2lkIGdlc3R1cmVFdmVudFdhc05vdEhhbmRs
ZWRCeVdlYkNvcmUoTlNFdmVudCAqKTsKICAgICB2b2lkIGdlc3R1cmVFdmVudFdhc05vdEhhbmRs
ZWRCeVdlYkNvcmVGcm9tVmlld09ubHkoTlNFdmVudCAqKTsKIAotICAgIGJvb2wgZXhlY3V0ZVNh
dmVkQ29tbWFuZEJ5U2VsZWN0b3IoU0VMKTsKLQogICAgIHZvaWQgc2V0VG90YWxIZWlnaHRPZkJh
bm5lcnMoQ0dGbG9hdCB0b3RhbEhlaWdodE9mQmFubmVycykgeyBtX3RvdGFsSGVpZ2h0T2ZCYW5u
ZXJzID0gdG90YWxIZWlnaHRPZkJhbm5lcnM7IH0KICAgICBDR0Zsb2F0IHRvdGFsSGVpZ2h0T2ZC
YW5uZXJzKCkgY29uc3QgeyByZXR1cm4gbV90b3RhbEhlaWdodE9mQmFubmVyczsgfQogCkBAIC0z
NTEsNiArMzc3LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlcGFyZW50TGF5ZXJUcmVlSW5UaHVt
Ym5haWxWaWV3KCk7CiAgICAgdm9pZCB1cGRhdGVUaHVtYm5haWxWaWV3TGF5ZXIoKTsKIAorICAg
IHZvaWQgc2V0VXNlckludGVyZmFjZUl0ZW1TdGF0ZShOU1N0cmluZyAqY29tbWFuZE5hbWUsIGJv
b2wgZW5hYmxlZCwgaW50IHN0YXRlKTsKKwogICAgIE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0
ZT4gKm1fdmlldzsKICAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKICAgICBQYWdlQ2xpZW50JiBt
X3BhZ2VDbGllbnQ7CkBAIC0zODUsNiArNDEzLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1faW5T
ZWN1cmVJbnB1dFN0YXRlIHsgZmFsc2UgfTsKICAgICBSZXRhaW5QdHI8V0tFZGl0b3JVbmRvVGFy
Z2V0T2JqQz4gbV91bmRvVGFyZ2V0OwogCisgICAgVmFsaWRhdGlvbk1hcCBtX3ZhbGlkYXRpb25N
YXA7CisKICAgICAvLyBUaGUgaWRlbnRpZmllciBvZiB0aGUgcGx1Zy1pbiB3ZSB3YW50IHRvIHNl
bmQgY29tcGxleCB0ZXh0IGlucHV0IHRvLCBvciAwIGlmIHRoZXJlIGlzIG5vbmUuCiAgICAgdWlu
dDY0X3QgbV9wbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciB7IDAgfTsKIApAQCAtNDM1
LDYgKzQ2NSw4IEBAIHByaXZhdGU6CiAgICAgX1dLVGh1bWJuYWlsVmlldyAqbV90aHVtYm5haWxW
aWV3IHsgbnVsbHB0ciB9OwogCiAgICAgUmV0YWluUHRyPF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5
PiBtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5OworCisgICAgUmV0YWluUHRyPFdLQnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlcj4gbV9icm93c2luZ0NvbnRleHRDb250cm9sbGVyOwogI2VuZGlmCiAKICAg
ICBzdGQ6OnVuaXF1ZV9wdHI8Vmlld0dlc3R1cmVDb250cm9sbGVyPiBtX2dlc3R1cmVDb250cm9s
bGVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmlu
ZGV4IGUyMmNmNDIuLmZlYTBhYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwubW0KQEAgLTQxLDggKzQxLDExIEBACiAjaW1wb3J0ICJSZW1vdGVPYmpl
Y3RSZWdpc3RyeS5oIgogI2ltcG9ydCAiUmVtb3RlT2JqZWN0UmVnaXN0cnlNZXNzYWdlcy5oIgog
I2ltcG9ydCAiU3RyaW5nVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgorI2lt
cG9ydCAiVGV4dENoZWNrZXJTdGF0ZS5oIgogI2ltcG9ydCAiVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWFQcm94eS5oIgogI2ltcG9ydCAiVmlld0dlc3R1cmVDb250cm9sbGVyLmgiCisjaW1w
b3J0ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tG
dWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tJbW1lZGlhdGVBY3Rpb25D
b250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS1RleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIuaCIKQEAg
LTU3LDExICs2MCwxNCBAQAogI2ltcG9ydCAiX1dLVGh1bWJuYWlsVmlld0ludGVybmFsLmgiCiAj
aW1wb3J0IDxISVRvb2xib3gvQ2FyYm9uRXZlbnRzQ29yZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9B
WE9iamVjdENhY2hlLmg+CisjaW1wb3J0IDxXZWJDb3JlL0NvbG9yTWFjLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0NvcmVHcmFwaGljc1NQSS5oPgogI2ltcG9ydCA8V2ViQ29yZS9EYXRhRGV0ZWN0b3Jz
U1BJLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RpY3Rpb25hcnlMb29rdXAuaD4KICNpbXBvcnQgPFdl
YkNvcmUvRHJhZ0RhdGEuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRWRpdG9yLmg+CiAjaW1wb3J0IDxX
ZWJDb3JlL0tleXByZXNzQ29tbWFuZC5oPgorI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJp
bmdzLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0xvb2t1cFNQSS5oPgogI2ltcG9ydCA8V2ViQ29yZS9O
U0ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVyU1BJLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L05TV2luZG93U1BJLmg+CkBAIC00NTMsMTQgKzQ1OSw2IEBAIE5TV2luZG93ICpXZWJWaWV3SW1w
bDo6d2luZG93KCkKICAgICByZXR1cm4gbV92aWV3LndpbmRvdzsKIH0KIAotc3RkOjp1bmlxdWVf
cHRyPFdlYktpdDo6RHJhd2luZ0FyZWFQcm94eT4gV2ViVmlld0ltcGw6OmNyZWF0ZURyYXdpbmdB
cmVhUHJveHkoKQotewotICAgIGlmIChbW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZh
dWx0c10gb2JqZWN0Rm9yS2V5OkAiV2ViS2l0MlVzZVJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
Il0gYm9vbFZhbHVlXSkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8UmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eT4obV9wYWdlKTsKLQotICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk+KG1fcGFnZSk7Ci19Ci0K
IHZvaWQgV2ViVmlld0ltcGw6OnByb2Nlc3NEaWRFeGl0KCkKIHsKICAgICBub3RpZnlJbnB1dENv
bnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uKCk7CkBAIC02ODIsNiArNjgwLDIyIEBAIENH
U2l6ZSBXZWJWaWV3SW1wbDo6Zml4ZWRMYXlvdXRTaXplKCkgY29uc3QKICAgICByZXR1cm4gbV9w
YWdlLmZpeGVkTGF5b3V0U2l6ZSgpOwogfQogCitzdGQ6OnVuaXF1ZV9wdHI8V2ViS2l0OjpEcmF3
aW5nQXJlYVByb3h5PiBXZWJWaWV3SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpCit7Cisg
ICAgaWYgKFtbW05TVXNlckRlZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSBvYmplY3RGb3JL
ZXk6QCJXZWJLaXQyVXNlUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWEiXSBib29sVmFsdWVdKQor
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5PihtX3BhZ2UpOworCisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8VGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eT4obV9wYWdlKTsKK30KKworYm9vbCBXZWJWaWV3SW1w
bDo6aXNVc2luZ1VJU2lkZUNvbXBvc2l0aW5nKCkgY29uc3QKK3sKKyAgICBpZiAoRHJhd2luZ0Fy
ZWFQcm94eSogZHJhd2luZ0FyZWEgPSBtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKKyAgICAgICAgcmV0
dXJuIGRyYXdpbmdBcmVhLT50eXBlKCkgPT0gRHJhd2luZ0FyZWFUeXBlUmVtb3RlTGF5ZXJUcmVl
OworICAgIAorICAgIHJldHVybiBmYWxzZTsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6c2V0RHJh
d2luZ0FyZWFTaXplKENHU2l6ZSBzaXplKQogewogICAgIGlmICghbV9wYWdlLmRyYXdpbmdBcmVh
KCkpCkBAIC02OTEsNiArNzA1LDY0IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldERyYXdpbmdBcmVh
U2l6ZShDR1NpemUgc2l6ZSkKICAgICBtX3Jlc2l6ZVNjcm9sbE9mZnNldCA9IENHU2l6ZVplcm87
CiB9CiAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdu
b3N0aWMgaWdub3JlZCAiLVdtaXNzaW5nLW5vcmV0dXJuIgorLy8gVGhpcyBtZXRob2QgZm9yY2Vz
IGEgZHJhd2luZyBhcmVhIGdlb21ldHJ5IHVwZGF0ZSwgZXZlbiBpZiBmcmFtZSBzaXplIHVwZGF0
ZXMgYXJlIGRpc2FibGVkLgorLy8gVGhlIHVwZGF0ZWQgaXMgcGVyZm9ybWVkIGFzeW5jaHJvbm91
c2x5OyB3ZSBkb24ndCB3YWl0IGZvciB0aGUgZ2VvbWV0cnkgdXBkYXRlIGJlZm9yZSByZXR1cm5p
bmcuCisvLyBUaGUgYXJlYSBkcmF3biBuZWVkIG5vdCBtYXRjaCB0aGUgY3VycmVudCBmcmFtZSBz
aXplIC0gaWYgaXQgZGlmZmVycyBpdCB3aWxsIGJlIGFuY2hvcmVkIHRvIHRoZQorLy8gZnJhbWUg
YWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IGNvbnRlbnRBbmNob3IuCit2b2lkIFdlYlZpZXdJbXBs
Ojpmb3JjZUFzeW5jRHJhd2luZ0FyZWFTaXplVXBkYXRlKENHU2l6ZSBzaXplKQoreworICAgIC8v
IFRoaXMgU1BJIGlzIG9ubHkgdXNlZCBvbiAxMC45IGFuZCBiZWxvdywgYW5kIGlzIGluY29tcGF0
aWJsZSB3aXRoIHRoZSBmZW5jZS1iYXNlZCBkcmF3aW5nIGFyZWEgc2l6ZSBzeW5jaHJvbml6YXRp
b24gaW4gMTAuMTArLgorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA5
MAorICAgIGlmIChtX2NsaXBzVG9WaXNpYmxlUmVjdCkKKyAgICAgICAgdXBkYXRlVmlld0V4cG9z
ZWRSZWN0KCk7CisgICAgc2V0RHJhd2luZ0FyZWFTaXplKHNpemUpOworCisgICAgLy8gSWYgYSBn
ZW9tZXRyeSB1cGRhdGUgaXMgcGVuZGluZyB0aGUgbmV3IHVwZGF0ZSB3b24ndCBiZSBzZW50LiBQ
b2xsIHdpdGhvdXQgd2FpdGluZyBmb3IgYW55CisgICAgLy8gcGVuZGluZyBkaWQtdXBkYXRlIG1l
c3NhZ2Ugbm93LCBzdWNoIHRoYXQgdGhlIG5ldyB1cGRhdGUgY2FuIGJlIHNlbnQuIFdlIGRvIHNv
IGFmdGVyIHNldHRpbmcKKyAgICAvLyB0aGUgZHJhd2luZyBhcmVhIHNpemUgc3VjaCB0aGF0IHRo
ZSBsYXRlc3QgdXBkYXRlIGlzIHNlbnQuCisgICAgaWYgKERyYXdpbmdBcmVhUHJveHkqIGRyYXdp
bmdBcmVhID0gbV9wYWdlLmRyYXdpbmdBcmVhKCkpCisgICAgICAgIGRyYXdpbmdBcmVhLT53YWl0
Rm9yUG9zc2libGVHZW9tZXRyeVVwZGF0ZShzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjp6ZXJv
KCkpOworI2Vsc2UKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorfQorCit2b2lk
IFdlYlZpZXdJbXBsOjp3YWl0Rm9yQXN5bmNEcmF3aW5nQXJlYVNpemVVcGRhdGUoKQoreworICAg
IC8vIFRoaXMgU1BJIGlzIG9ubHkgdXNlZCBvbiAxMC45IGFuZCBiZWxvdywgYW5kIGlzIGluY29t
cGF0aWJsZSB3aXRoIHRoZSBmZW5jZS1iYXNlZCBkcmF3aW5nIGFyZWEgc2l6ZSBzeW5jaHJvbml6
YXRpb24gaW4gMTAuMTArLgorI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0g
MTA5MAorICAgIGlmIChEcmF3aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJlYSA9IG1fcGFnZS5kcmF3
aW5nQXJlYSgpKSB7CisgICAgICAgIC8vIElmIGEgZ2VvbWV0cnkgdXBkYXRlIGlzIHN0aWxsIHBl
bmRpbmcgdGhlbiB0aGUgYWN0aW9uIG9mIHJlY2VpdmluZyB0aGUKKyAgICAgICAgLy8gZmlyc3Qg
Z2VvbWV0cnkgdXBkYXRlIG1heSByZXN1bHQgaW4gYW5vdGhlciB1cGRhdGUgYmVpbmcgc2NoZWR1
bGVkIC0KKyAgICAgICAgLy8gd2Ugc2hvdWxkIHdhaXQgZm9yIHRoaXMgdG8gY29tcGxldGUgdG9v
LgorICAgICAgICBkcmF3aW5nQXJlYS0+d2FpdEZvclBvc3NpYmxlR2VvbWV0cnlVcGRhdGUoRHJh
d2luZ0FyZWFQcm94eTo6ZGlkVXBkYXRlQmFja2luZ1N0b3JlU3RhdGVUaW1lb3V0KCkgLyAyKTsK
KyAgICAgICAgZHJhd2luZ0FyZWEtPndhaXRGb3JQb3NzaWJsZUdlb21ldHJ5VXBkYXRlKERyYXdp
bmdBcmVhUHJveHk6OmRpZFVwZGF0ZUJhY2tpbmdTdG9yZVN0YXRlVGltZW91dCgpIC8gMik7Cisg
ICAgfQorI2Vsc2UKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyNlbmRpZgorfQorI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHBvcAorCit2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVMYXllcigp
Cit7CisgICAgaWYgKGRyYXdzQmFja2dyb3VuZCgpICYmICFkcmF3c1RyYW5zcGFyZW50QmFja2dy
b3VuZCgpKQorICAgICAgICBtX3ZpZXcubGF5ZXIuYmFja2dyb3VuZENvbG9yID0gQ0dDb2xvckdl
dENvbnN0YW50Q29sb3Ioa0NHQ29sb3JXaGl0ZSk7CisgICAgZWxzZQorICAgICAgICBtX3ZpZXcu
bGF5ZXIuYmFja2dyb3VuZENvbG9yID0gQ0dDb2xvckdldENvbnN0YW50Q29sb3Ioa0NHQ29sb3JD
bGVhcik7CisKKyAgICAvLyBJZiBhc3luY2hyb25vdXMgZ2VvbWV0cnkgdXBkYXRlcyBoYXZlIGJl
ZW4gc2VudCBieSBmb3JjZUFzeW5jRHJhd2luZ0FyZWFTaXplVXBkYXRlLAorICAgIC8vIHRoZW4g
c3Vic2VxdWVudCBjYWxscyB0byBzZXRGcmFtZVNpemUgc2hvdWxkIG5vdCByZXN1bHQgaW4gdXMg
d2FpdGluZyBmb3IgdGhlIGRpZAorICAgIC8vIHVkcGF0ZSByZXNwb25zZSBpZiBzZXRGcmFtZVNp
emUgaXMgY2FsbGVkLgorICAgIGlmIChmcmFtZVNpemVVcGRhdGVzRGlzYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgaWYgKERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhID0gbV9w
YWdlLmRyYXdpbmdBcmVhKCkpCisgICAgICAgIGRyYXdpbmdBcmVhLT53YWl0Rm9yUG9zc2libGVH
ZW9tZXRyeVVwZGF0ZSgpOworfQorCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRBdXRvbWF0aWNhbGx5
QWRqdXN0c0NvbnRlbnRJbnNldHMoYm9vbCBhdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNl
dHMpCiB7CiAgICAgbV9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHMgPSBhdXRvbWF0
aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHM7CkBAIC03NjMsNiArODM1LDMxIEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OnNldENsaXBzVG9WaXNpYmxlUmVjdChib29sIGNsaXBzVG9WaXNpYmxlUmVjdCkK
ICAgICB1cGRhdGVWaWV3RXhwb3NlZFJlY3QoKTsKIH0KIAordm9pZCBXZWJWaWV3SW1wbDo6c2V0
TWluaW11bVNpemVGb3JBdXRvTGF5b3V0KENHU2l6ZSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQp
Cit7CisgICAgQk9PTCBleHBhbmRzVG9GaXQgPSBtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQud2lk
dGggPiAwOworCisgICAgbV9wYWdlLnNldE1pbmltdW1MYXlvdXRTaXplKFdlYkNvcmU6OkludFNp
emUobWluaW11bVNpemVGb3JBdXRvTGF5b3V0KSk7CisgICAgbV9wYWdlLnNldE1haW5GcmFtZUlz
U2Nyb2xsYWJsZSghZXhwYW5kc1RvRml0KTsKKworICAgIHNldENsaXBzVG9WaXNpYmxlUmVjdChl
eHBhbmRzVG9GaXQpOworfQorCitDR1NpemUgV2ViVmlld0ltcGw6Om1pbmltdW1TaXplRm9yQXV0
b0xheW91dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fcGFnZS5taW5pbXVtTGF5b3V0U2l6ZSgp
OworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHRGb3JB
dXRvTGF5b3V0KGJvb2wgc2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dCkKK3sK
KyAgICBtX3BhZ2Uuc2V0QXV0b1NpemluZ1Nob3VsZEV4cGFuZFRvVmlld0hlaWdodChzaG91bGRF
eHBhbmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0KTsKK30KKworYm9vbCBXZWJWaWV3SW1wbDo6
c2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dCgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcGFnZS5hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KCk7Cit9CisKIHZv
aWQgV2ViVmlld0ltcGw6OnNldEludHJpbnNpY0NvbnRlbnRTaXplKENHU2l6ZSBpbnRyaW5zaWND
b250ZW50U2l6ZSkKIHsKICAgICAvLyBJZiB0aGUgaW50cmluc2ljIGNvbnRlbnQgc2l6ZSBpcyBs
ZXNzIHRoYW4gdGhlIG1pbmltdW0gbGF5b3V0IHdpZHRoLCB0aGUgY29udGVudCBmbG93ZWQgdG8g
Zml0LApAQCAtMTA1Miw2ICsxMTQ5LDcxIEBAIENvbG9yU3BhY2VEYXRhIFdlYlZpZXdJbXBsOjpj
b2xvclNwYWNlKCkKICAgICByZXR1cm4gY29sb3JTcGFjZURhdGE7CiB9CiAKK3ZvaWQgV2ViVmll
d0ltcGw6OnNldFVuZGVybGF5Q29sb3IoTlNDb2xvciAqdW5kZXJsYXlDb2xvcikKK3sKKyAgICBt
X3BhZ2Uuc2V0VW5kZXJsYXlDb2xvcihXZWJDb3JlOjpjb2xvckZyb21OU0NvbG9yKHVuZGVybGF5
Q29sb3IpKTsKK30KKworTlNDb2xvciAqV2ViVmlld0ltcGw6OnVuZGVybGF5Q29sb3IoKSBjb25z
dAoreworICAgIFdlYkNvcmU6OkNvbG9yIHdlYkNvbG9yID0gbV9wYWdlLnVuZGVybGF5Q29sb3Io
KTsKKyAgICBpZiAoIXdlYkNvbG9yLmlzVmFsaWQoKSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKwor
ICAgIHJldHVybiBXZWJDb3JlOjpuc0NvbG9yKHdlYkNvbG9yKTsKK30KKworTlNDb2xvciAqV2Vi
Vmlld0ltcGw6OnBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcigpIGNvbnN0Cit7CisgICAgV2Vi
Q29yZTo6Q29sb3IgY29sb3IgPSBtX3BhZ2UucGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yKCk7
CisgICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBy
ZXR1cm4gV2ViQ29yZTo6bnNDb2xvcihjb2xvcik7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNl
dE92ZXJsYXlTY3JvbGxiYXJTdHlsZShfV0tPdmVybGF5U2Nyb2xsYmFyU3R5bGUgc2Nyb2xsYmFy
U3R5bGUpCit7CisgICAgV1RGOjpPcHRpb25hbDxXZWJDb3JlOjpTY3JvbGxiYXJPdmVybGF5U3R5
bGU+IGNvcmVTY3JvbGxiYXJTdHlsZTsKKworICAgIHN3aXRjaCAoc2Nyb2xsYmFyU3R5bGUpIHsK
KyAgICBjYXNlIF9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZURhcms6CisgICAgICAgIGNvcmVTY3Jv
bGxiYXJTdHlsZSA9IFdlYkNvcmU6OlNjcm9sbGJhck92ZXJsYXlTdHlsZURhcms7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlTGlnaHQ6CisgICAgICAg
IGNvcmVTY3JvbGxiYXJTdHlsZSA9IFdlYkNvcmU6OlNjcm9sbGJhck92ZXJsYXlTdHlsZUxpZ2h0
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIF9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZURlZmF1
bHQ6CisgICAgICAgIGNvcmVTY3JvbGxiYXJTdHlsZSA9IFdlYkNvcmU6OlNjcm9sbGJhck92ZXJs
YXlTdHlsZURlZmF1bHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgX1dLT3ZlcmxheVNjcm9s
bGJhclN0eWxlQXV0b21hdGljOgorICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0K
KworICAgIG1fcGFnZS5zZXRPdmVybGF5U2Nyb2xsYmFyU3R5bGUoY29yZVNjcm9sbGJhclN0eWxl
KTsKK30KKworX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlIFdlYlZpZXdJbXBsOjpvdmVybGF5U2Ny
b2xsYmFyU3R5bGUoKSBjb25zdAoreworICAgIFdURjo6T3B0aW9uYWw8V2ViQ29yZTo6U2Nyb2xs
YmFyT3ZlcmxheVN0eWxlPiBjb3JlU2Nyb2xsYmFyU3R5bGUgPSBtX3BhZ2Uub3ZlcmxheVNjcm9s
bGJhclN0eWxlKCk7CisKKyAgICBpZiAoIWNvcmVTY3JvbGxiYXJTdHlsZSkKKyAgICAgICAgcmV0
dXJuIF9XS092ZXJsYXlTY3JvbGxiYXJTdHlsZUF1dG9tYXRpYzsKKworICAgIHN3aXRjaCAoY29y
ZVNjcm9sbGJhclN0eWxlLnZhbHVlKCkpIHsKKyAgICBjYXNlIFdlYkNvcmU6OlNjcm9sbGJhck92
ZXJsYXlTdHlsZURhcms6CisgICAgICAgIHJldHVybiBfV0tPdmVybGF5U2Nyb2xsYmFyU3R5bGVE
YXJrOworICAgIGNhc2UgV2ViQ29yZTo6U2Nyb2xsYmFyT3ZlcmxheVN0eWxlTGlnaHQ6CisgICAg
ICAgIHJldHVybiBfV0tPdmVybGF5U2Nyb2xsYmFyU3R5bGVMaWdodDsKKyAgICBjYXNlIFdlYkNv
cmU6OlNjcm9sbGJhck92ZXJsYXlTdHlsZURlZmF1bHQ6CisgICAgICAgIHJldHVybiBfV0tPdmVy
bGF5U2Nyb2xsYmFyU3R5bGVEZWZhdWx0OworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBf
V0tPdmVybGF5U2Nyb2xsYmFyU3R5bGVBdXRvbWF0aWM7CisgICAgfQorCit9CisKIHZvaWQgV2Vi
Vmlld0ltcGw6OmJlZ2luRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcygpCiB7CiAgICAgaWYg
KG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2VzKSB7CkBAIC0xMzU3LDkgKzE1MTksNTkg
QEAgYm9vbCBXZWJWaWV3SW1wbDo6aXNFZGl0YWJsZSgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFn
ZS5pc0VkaXRhYmxlKCk7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OmV4ZWN1dGVFZGl0Q29tbWFu
ZChjb25zdCBTdHJpbmcmIGNvbW1hbmROYW1lLCBjb25zdCBTdHJpbmcmIGFyZ3VtZW50KQordHlw
ZWRlZiBIYXNoTWFwPFNFTCwgU3RyaW5nPiBTZWxlY3Rvck5hbWVNYXA7CisKKy8vIE1hcCBzZWxl
Y3RvcnMgaW50byBFZGl0b3IgY29tbWFuZCBuYW1lcy4KKy8vIFRoaXMgaXMgbm90IG5lZWRlZCBm
b3IgYW55IHNlbGVjdG9ycyB0aGF0IGhhdmUgdGhlIHNhbWUgbmFtZSBhcyB0aGUgRWRpdG9yIGNv
bW1hbmQuCitzdGF0aWMgY29uc3QgU2VsZWN0b3JOYW1lTWFwKiBjcmVhdGVTZWxlY3RvckV4Y2Vw
dGlvbk1hcCgpCit7CisgICAgU2VsZWN0b3JOYW1lTWFwKiBtYXAgPSBuZXcgSGFzaE1hcDxTRUws
IFN0cmluZz47CisKKyAgICBtYXAtPmFkZChAc2VsZWN0b3IoaW5zZXJ0TmV3bGluZUlnbm9yaW5n
RmllbGRFZGl0b3I6KSwgIkluc2VydE5ld2xpbmUiKTsKKyAgICBtYXAtPmFkZChAc2VsZWN0b3Io
aW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yOiksICJJbnNlcnROZXdsaW5lIik7CisgICAgbWFwLT5h
ZGQoQHNlbGVjdG9yKGluc2VydFRhYklnbm9yaW5nRmllbGRFZGl0b3I6KSwgIkluc2VydFRhYiIp
OworICAgIG1hcC0+YWRkKEBzZWxlY3RvcihwYWdlRG93bjopLCAiTW92ZVBhZ2VEb3duIik7Cisg
ICAgbWFwLT5hZGQoQHNlbGVjdG9yKHBhZ2VEb3duQW5kTW9kaWZ5U2VsZWN0aW9uOiksICJNb3Zl
UGFnZURvd25BbmRNb2RpZnlTZWxlY3Rpb24iKTsKKyAgICBtYXAtPmFkZChAc2VsZWN0b3IocGFn
ZVVwOiksICJNb3ZlUGFnZVVwIik7CisgICAgbWFwLT5hZGQoQHNlbGVjdG9yKHBhZ2VVcEFuZE1v
ZGlmeVNlbGVjdGlvbjopLCAiTW92ZVBhZ2VVcEFuZE1vZGlmeVNlbGVjdGlvbiIpOworICAgIG1h
cC0+YWRkKEBzZWxlY3RvcihzY3JvbGxQYWdlRG93bjopLCAiU2Nyb2xsUGFnZUZvcndhcmQiKTsK
KyAgICBtYXAtPmFkZChAc2VsZWN0b3Ioc2Nyb2xsUGFnZVVwOiksICJTY3JvbGxQYWdlQmFja3dh
cmQiKTsKKworICAgIHJldHVybiBtYXA7Cit9CisKK3N0YXRpYyBTdHJpbmcgY29tbWFuZE5hbWVG
b3JTZWxlY3RvcihTRUwgc2VsZWN0b3IpCit7CisgICAgLy8gQ2hlY2sgdGhlIGV4Y2VwdGlvbiBt
YXAgZmlyc3QuCisgICAgc3RhdGljIGNvbnN0IFNlbGVjdG9yTmFtZU1hcCogZXhjZXB0aW9uTWFw
ID0gY3JlYXRlU2VsZWN0b3JFeGNlcHRpb25NYXAoKTsKKyAgICBTZWxlY3Rvck5hbWVNYXA6OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gZXhjZXB0aW9uTWFwLT5maW5kKHNlbGVjdG9yKTsKKyAgICBpZiAo
aXQgIT0gZXhjZXB0aW9uTWFwLT5lbmQoKSkKKyAgICAgICAgcmV0dXJuIGl0LT52YWx1ZTsKKwor
ICAgIC8vIFJlbW92ZSB0aGUgdHJhaWxpbmcgY29sb24uCisgICAgLy8gTm8gbmVlZCB0byBjYXBp
dGFsaXplIHRoZSBjb21tYW5kIG5hbWUgc2luY2UgRWRpdG9yIGNvbW1hbmQgbmFtZXMgYXJlCisg
ICAgLy8gbm90IGNhc2Ugc2Vuc2l0aXZlLgorICAgIGNvbnN0IGNoYXIqIHNlbGVjdG9yTmFtZSA9
IHNlbF9nZXROYW1lKHNlbGVjdG9yKTsKKyAgICBzaXplX3Qgc2VsZWN0b3JOYW1lTGVuZ3RoID0g
c3RybGVuKHNlbGVjdG9yTmFtZSk7CisgICAgaWYgKHNlbGVjdG9yTmFtZUxlbmd0aCA8IDIgfHwg
c2VsZWN0b3JOYW1lW3NlbGVjdG9yTmFtZUxlbmd0aCAtIDFdICE9ICc6JykKKyAgICAgICAgcmV0
dXJuIFN0cmluZygpOworICAgIHJldHVybiBTdHJpbmcoc2VsZWN0b3JOYW1lLCBzZWxlY3Rvck5h
bWVMZW5ndGggLSAxKTsKK30KKworYm9vbCBXZWJWaWV3SW1wbDo6ZXhlY3V0ZVNhdmVkQ29tbWFu
ZEJ5U2VsZWN0b3IoU0VMIHNlbGVjdG9yKQoreworICAgIExPRyhUZXh0SW5wdXQsICJFeGVjdXRp
bmcgcHJldmlvdXNseSBzYXZlZCBjb21tYW5kICVzIiwgc2VsX2dldE5hbWUoc2VsZWN0b3IpKTsK
KyAgICAvLyBUaGUgc2luayBkb2VzIHR3byB0aGluZ3M6IDEpIFRlbGxzIHVzIGlmIHRoZSByZXNw
b25kZXIgd2VudCB1bmhhbmRsZWQsIGFuZAorICAgIC8vIDIpIHByZXZlbnRzIGFueSBOU0JlZXA7
IHdlIGRvbid0IGV2ZXIgd2FudCB0byBiZWVwIGhlcmUuCisgICAgUmV0YWluUHRyPFdLUmVzcG9u
ZGVyQ2hhaW5TaW5rPiBzaW5rID0gYWRvcHROUyhbW1dLUmVzcG9uZGVyQ2hhaW5TaW5rIGFsbG9j
XSBpbml0V2l0aFJlc3BvbmRlckNoYWluOm1fdmlld10pOworICAgIFttX3ZpZXcgX3N1cGVyRG9D
b21tYW5kQnlTZWxlY3RvcjpzZWxlY3Rvcl07CisgICAgW3NpbmsgZGV0YWNoXTsKKyAgICByZXR1
cm4gIVtzaW5rIGRpZFJlY2VpdmVVbmhhbmRsZWRDb21tYW5kXTsKK30KKwordm9pZCBXZWJWaWV3
SW1wbDo6ZXhlY3V0ZUVkaXRDb21tYW5kRm9yU2VsZWN0b3IoU0VMIHNlbGVjdG9yLCBjb25zdCBT
dHJpbmcmIGFyZ3VtZW50KQogewotICAgIG1fcGFnZS5leGVjdXRlRWRpdENvbW1hbmQoY29tbWFu
ZE5hbWUsIGFyZ3VtZW50KTsKKyAgICBtX3BhZ2UuZXhlY3V0ZUVkaXRDb21tYW5kKGNvbW1hbmRO
YW1lRm9yU2VsZWN0b3Ioc2VsZWN0b3IpLCBhcmd1bWVudCk7CiB9CiAKIHZvaWQgV2ViVmlld0lt
cGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQoUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+IHBycENv
bW1hbmQsIFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbyB1bmRvT3JSZWRvKQpAQCAtMTQyNCw2ICsx
NjM2LDE0MyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVGb250UGFuZWxJZk5lZWRlZCgpCiAg
ICAgfQogfQogCitzdGF0aWMgTlNNZW51SXRlbSAqbWVudUl0ZW0oaWQgPE5TVmFsaWRhdGVkVXNl
ckludGVyZmFjZUl0ZW0+IGl0ZW0pCit7CisgICAgaWYgKCFbKE5TT2JqZWN0ICopaXRlbSBpc0tp
bmRPZkNsYXNzOltOU01lbnVJdGVtIGNsYXNzXV0pCisgICAgICAgIHJldHVybiBuaWw7CisgICAg
cmV0dXJuIChOU01lbnVJdGVtICopaXRlbTsKK30KKworc3RhdGljIE5TVG9vbGJhckl0ZW0gKnRv
b2xiYXJJdGVtKGlkIDxOU1ZhbGlkYXRlZFVzZXJJbnRlcmZhY2VJdGVtPiBpdGVtKQoreworICAg
IGlmICghWyhOU09iamVjdCAqKWl0ZW0gaXNLaW5kT2ZDbGFzczpbTlNUb29sYmFySXRlbSBjbGFz
c11dKQorICAgICAgICByZXR1cm4gbmlsOworICAgIHJldHVybiAoTlNUb29sYmFySXRlbSAqKWl0
ZW07Cit9CisKK2Jvb2wgV2ViVmlld0ltcGw6OnZhbGlkYXRlVXNlckludGVyZmFjZUl0ZW0oaWQg
PE5TVmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+IGl0ZW0pCit7CisgICAgU0VMIGFjdGlvbiA9
IFtpdGVtIGFjdGlvbl07CisKKyAgICBpZiAoYWN0aW9uID09IEBzZWxlY3RvcihzaG93R3Vlc3NQ
YW5lbDopKSB7CisgICAgICAgIGlmIChOU01lbnVJdGVtICptZW51SXRlbSA9IFdlYktpdDo6bWVu
dUl0ZW0oaXRlbSkpCisgICAgICAgICAgICBbbWVudUl0ZW0gc2V0VGl0bGU6V2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoIVtbW05TU3BlbGxDaGVja2VyIHNoYXJl
ZFNwZWxsQ2hlY2tlcl0gc3BlbGxpbmdQYW5lbF0gaXNWaXNpYmxlXSldOworICAgICAgICByZXR1
cm4gbV9wYWdlLmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGU7CisgICAgfQorCisgICAg
aWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IoY2hlY2tTcGVsbGluZzopIHx8IGFjdGlvbiA9PSBAc2Vs
ZWN0b3IoY2hhbmdlU3BlbGxpbmc6KSkKKyAgICAgICAgcmV0dXJuIG1fcGFnZS5lZGl0b3JTdGF0
ZSgpLmlzQ29udGVudEVkaXRhYmxlOworCisgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodG9n
Z2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmc6KSkgeworICAgICAgICBib29sIGVuYWJsZWQgPSBU
ZXh0Q2hlY2tlcjo6aXNDb250aW51b3VzU3BlbGxDaGVja2luZ0FsbG93ZWQoKTsKKyAgICAgICAg
Ym9vbCBjaGVja2VkID0gZW5hYmxlZCAmJiBUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0NvbnRpbnVv
dXNTcGVsbENoZWNraW5nRW5hYmxlZDsKKyAgICAgICAgW21lbnVJdGVtKGl0ZW0pIHNldFN0YXRl
OmNoZWNrZWQgPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKKyAgICAgICAgcmV0dXJuIGVuYWJs
ZWQ7CisgICAgfQorCisgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlR3JhbW1hckNo
ZWNraW5nOikpIHsKKyAgICAgICAgYm9vbCBjaGVja2VkID0gVGV4dENoZWNrZXI6OnN0YXRlKCku
aXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkOworICAgICAgICBbbWVudUl0ZW0oaXRlbSkgc2V0U3Rh
dGU6Y2hlY2tlZCA/IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVdOworICAgICAgICByZXR1cm4gWUVT
OworICAgIH0KKworICAgIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZUF1dG9tYXRpY1Nw
ZWxsaW5nQ29ycmVjdGlvbjopKSB7CisgICAgICAgIGJvb2wgY2hlY2tlZCA9IFRleHRDaGVja2Vy
OjpzdGF0ZSgpLmlzQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uRW5hYmxlZDsKKyAgICAgICAg
W21lbnVJdGVtKGl0ZW0pIHNldFN0YXRlOmNoZWNrZWQgPyBOU09uU3RhdGUgOiBOU09mZlN0YXRl
XTsKKyAgICAgICAgcmV0dXJuIG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxl
OworICAgIH0KKworICAgIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKG9yZGVyRnJvbnRTdWJzdGl0
dXRpb25zUGFuZWw6KSkgeworICAgICAgICBpZiAoTlNNZW51SXRlbSAqbWVudUl0ZW0gPSBXZWJL
aXQ6Om1lbnVJdGVtKGl0ZW0pKQorICAgICAgICAgICAgW21lbnVJdGVtIHNldFRpdGxlOldlYkNv
cmU6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTdWJzdGl0dXRpb25zKCFbW1tOU1NwZWxsQ2hlY2tl
ciBzaGFyZWRTcGVsbENoZWNrZXJdIHN1YnN0aXR1dGlvbnNQYW5lbF0gaXNWaXNpYmxlXSldOwor
ICAgICAgICByZXR1cm4gbV9wYWdlLmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGU7Cisg
ICAgfQorCisgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlU21hcnRJbnNlcnREZWxl
dGU6KSkgeworICAgICAgICBib29sIGNoZWNrZWQgPSBtX3BhZ2UuaXNTbWFydEluc2VydERlbGV0
ZUVuYWJsZWQoKTsKKyAgICAgICAgW21lbnVJdGVtKGl0ZW0pIHNldFN0YXRlOmNoZWNrZWQgPyBO
U09uU3RhdGUgOiBOU09mZlN0YXRlXTsKKyAgICAgICAgcmV0dXJuIG1fcGFnZS5lZGl0b3JTdGF0
ZSgpLmlzQ29udGVudEVkaXRhYmxlOworICAgIH0KKworICAgIGlmIChhY3Rpb24gPT0gQHNlbGVj
dG9yKHRvZ2dsZUF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uOikpIHsKKyAgICAgICAgYm9vbCBj
aGVja2VkID0gVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlv
bkVuYWJsZWQ7CisgICAgICAgIFttZW51SXRlbShpdGVtKSBzZXRTdGF0ZTpjaGVja2VkID8gTlNP
blN0YXRlIDogTlNPZmZTdGF0ZV07CisgICAgICAgIHJldHVybiBtX3BhZ2UuZWRpdG9yU3RhdGUo
KS5pc0NvbnRlbnRFZGl0YWJsZTsKKyAgICB9CisKKyAgICBpZiAoYWN0aW9uID09IEBzZWxlY3Rv
cih0b2dnbGVBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uOikpIHsKKyAgICAgICAgYm9vbCBjaGVj
a2VkID0gVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5h
YmxlZDsKKyAgICAgICAgW21lbnVJdGVtKGl0ZW0pIHNldFN0YXRlOmNoZWNrZWQgPyBOU09uU3Rh
dGUgOiBOU09mZlN0YXRlXTsKKyAgICAgICAgcmV0dXJuIG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlz
Q29udGVudEVkaXRhYmxlOworICAgIH0KKworICAgIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRv
Z2dsZUF1dG9tYXRpY0xpbmtEZXRlY3Rpb246KSkgeworICAgICAgICBib29sIGNoZWNrZWQgPSBU
ZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkOworICAg
ICAgICBbbWVudUl0ZW0oaXRlbSkgc2V0U3RhdGU6Y2hlY2tlZCA/IE5TT25TdGF0ZSA6IE5TT2Zm
U3RhdGVdOworICAgICAgICByZXR1cm4gbV9wYWdlLmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRp
dGFibGU7CisgICAgfQorCisgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlQXV0b21h
dGljVGV4dFJlcGxhY2VtZW50OikpIHsKKyAgICAgICAgYm9vbCBjaGVja2VkID0gVGV4dENoZWNr
ZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkOworICAgICAgICBb
bWVudUl0ZW0oaXRlbSkgc2V0U3RhdGU6Y2hlY2tlZCA/IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVd
OworICAgICAgICByZXR1cm4gbV9wYWdlLmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGU7
CisgICAgfQorCisgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodXBwZXJjYXNlV29yZDopIHx8
IGFjdGlvbiA9PSBAc2VsZWN0b3IobG93ZXJjYXNlV29yZDopIHx8IGFjdGlvbiA9PSBAc2VsZWN0
b3IoY2FwaXRhbGl6ZVdvcmQ6KSkKKyAgICAgICAgcmV0dXJuIG1fcGFnZS5lZGl0b3JTdGF0ZSgp
LnNlbGVjdGlvbklzUmFuZ2UgJiYgbV9wYWdlLmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFi
bGU7CisKKyAgICBpZiAoYWN0aW9uID09IEBzZWxlY3RvcihzdG9wU3BlYWtpbmc6KSkKKyAgICAg
ICAgcmV0dXJuIFtOU0FwcCBpc1NwZWFraW5nXTsKKworICAgIC8vIFRoZSBjZW50ZXJTZWxlY3Rp
b25JblZpc2libGVBcmVhOiBzZWxlY3RvciBpcyBlbmFibGVkIGlmIHRoZXJlJ3MgYSBzZWxlY3Rp
b24gcmFuZ2Ugb3IgaWYgdGhlcmUncyBhbiBpbnNlcnRpb24gcG9pbnQgaW4gYW4gZWRpdGFibGUg
YXJlYS4KKyAgICBpZiAoYWN0aW9uID09IEBzZWxlY3RvcihjZW50ZXJTZWxlY3Rpb25JblZpc2li
bGVBcmVhOikpCisgICAgICAgIHJldHVybiBtX3BhZ2UuZWRpdG9yU3RhdGUoKS5zZWxlY3Rpb25J
c1JhbmdlIHx8IChtX3BhZ2UuZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZSAmJiAhbV9w
YWdlLmVkaXRvclN0YXRlKCkuc2VsZWN0aW9uSXNOb25lKTsKKworICAgIC8vIE5leHQsIGhhbmRs
ZSBlZGl0b3IgY29tbWFuZHMuIFN0YXJ0IGJ5IHJldHVybmluZyBZRVMgZm9yIGFueXRoaW5nIHRo
YXQgaXMgbm90IGFuIGVkaXRvciBjb21tYW5kLgorICAgIC8vIFJldHVybmluZyBZRVMgaXMgdGhl
IGRlZmF1bHQgdGhpbmcgdG8gZG8gaW4gYW4gQXBwS2l0IHZhbGlkYXRlIG1ldGhvZCBmb3IgYW55
IHNlbGVjdG9yIHRoYXQgaXMgbm90IHJlY29nbml6ZWQuCisgICAgU3RyaW5nIGNvbW1hbmROYW1l
ID0gY29tbWFuZE5hbWVGb3JTZWxlY3RvcihbaXRlbSBhY3Rpb25dKTsKKyAgICBpZiAoIVdlYkNv
cmU6OkVkaXRvcjo6Y29tbWFuZElzU3VwcG9ydGVkRnJvbU1lbnVPcktleUJpbmRpbmcoY29tbWFu
ZE5hbWUpKQorICAgICAgICByZXR1cm4gWUVTOworCisgICAgLy8gQWRkIHRoaXMgaXRlbSB0byB0
aGUgdmVjdG9yIG9mIGl0ZW1zIGZvciBhIGdpdmVuIGNvbW1hbmQgdGhhdCBhcmUgYXdhaXRpbmcg
dmFsaWRhdGlvbi4KKyAgICBWYWxpZGF0aW9uTWFwOjpBZGRSZXN1bHQgYWRkUmVzdWx0ID0gbV92
YWxpZGF0aW9uTWFwLmFkZChjb21tYW5kTmFtZSwgVmFsaWRhdGlvblZlY3RvcigpKTsKKyAgICBh
ZGRSZXN1bHQuaXRlcmF0b3ItPnZhbHVlLmFwcGVuZChpdGVtKTsKKyAgICBpZiAoYWRkUmVzdWx0
LmlzTmV3RW50cnkpIHsKKyAgICAgICAgLy8gSWYgd2UgYXJlIG5vdCBhbHJlYWR5IGF3YWl0aW5n
IHZhbGlkYXRpb24gZm9yIHRoaXMgY29tbWFuZCwgc3RhcnQgdGhlIGFzeW5jaHJvbm91cyB2YWxp
ZGF0aW9uIHByb2Nlc3MuCisgICAgICAgIC8vIEZJWE1FOiBUaGVvcmV0aWNhbGx5LCB0aGVyZSBp
cyBhIHJhY2UgaGVyZTsgd2hlbiB3ZSBnZXQgdGhlIGFuc3dlciBpdCBtaWdodCBiZSBvbGQsIGZy
b20gYSBwcmV2aW91cyB0aW1lCisgICAgICAgIC8vIHdlIGFza2VkIGZvciB0aGUgc2FtZSBjb21t
YW5kOyB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhlIGFuc3dlciBpcyBzdGlsbCB2YWxpZC4KKyAg
ICAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKKyAgICAgICAgbV9wYWdlLnZh
bGlkYXRlQ29tbWFuZChjb21tYW5kTmFtZSwgW3dlYWtUaGlzXShjb25zdCBTdHJpbmcmIGNvbW1h
bmROYW1lLCBib29sIGlzRW5hYmxlZCwgaW50MzJfdCBzdGF0ZSwgV2ViS2l0OjpDYWxsYmFja0Jh
c2U6OkVycm9yIGVycm9yKSB7CisgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAg
ICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgLy8gSWYgdGhlIHByb2Nlc3MgZXhpdHMgYmVm
b3JlIHRoZSBjb21tYW5kIGNhbiBiZSB2YWxpZGF0ZWQsIHdlJ2xsIGJlIGNhbGxlZCBiYWNrIHdp
dGggYW4gZXJyb3IuCisgICAgICAgICAgICBpZiAoZXJyb3IgIT0gV2ViS2l0OjpDYWxsYmFja0Jh
c2U6OkVycm9yOjpOb25lKQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAg
d2Vha1RoaXMtPnNldFVzZXJJbnRlcmZhY2VJdGVtU3RhdGUoY29tbWFuZE5hbWUsIGlzRW5hYmxl
ZCwgc3RhdGUpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICAvLyBUcmVhdCBhcyBlbmFibGVk
IHVudGlsIHdlIGdldCB0aGUgcmVzdWx0IGJhY2sgZnJvbSB0aGUgd2ViIHByb2Nlc3MgYW5kIF9z
ZXRVc2VySW50ZXJmYWNlSXRlbVN0YXRlIGlzIGNhbGxlZC4KKyAgICAvLyBGSVhNRSA8cmRhcjov
L3Byb2JsZW0vODgwMzQ1OT46IFRoaXMgbWVhbnMgZGlzYWJsZWQgaXRlbXMgd2lsbCBmbGFzaCBl
bmFibGVkIGF0IGZpcnN0IGZvciBhIG1vbWVudC4KKyAgICAvLyBCdXQgcmV0dXJuaW5nIE5PIGhl
cmUgd291bGQgYmUgd29yc2U7IHRoYXQgd291bGQgbWFrZSBrZXlib2FyZCBjb21tYW5kcyBzdWNo
IGFzIGNvbW1hbmQtQyBmYWlsLgorICAgIHJldHVybiBZRVM7Cit9CisKK3ZvaWQgV2ViVmlld0lt
cGw6OnNldFVzZXJJbnRlcmZhY2VJdGVtU3RhdGUoTlNTdHJpbmcgKmNvbW1hbmROYW1lLCBib29s
IGVuYWJsZWQsIGludCBzdGF0ZSkKK3sKKyAgICBWYWxpZGF0aW9uVmVjdG9yIGl0ZW1zID0gbV92
YWxpZGF0aW9uTWFwLnRha2UoY29tbWFuZE5hbWUpOworICAgIHNpemVfdCBzaXplID0gaXRlbXMu
c2l6ZSgpOworICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc2l6ZTsgKytpKSB7CisgICAgICAg
IFZhbGlkYXRpb25JdGVtIGl0ZW0gPSBpdGVtc1tpXS5nZXQoKTsKKyAgICAgICAgW21lbnVJdGVt
KGl0ZW0pIHNldFN0YXRlOnN0YXRlXTsKKyAgICAgICAgW21lbnVJdGVtKGl0ZW0pIHNldEVuYWJs
ZWQ6ZW5hYmxlZF07CisgICAgICAgIFt0b29sYmFySXRlbShpdGVtKSBzZXRFbmFibGVkOmVuYWJs
ZWRdOworICAgICAgICAvLyBGSVhNRSA8cmRhcjovL3Byb2JsZW0vODgwMzM5Mj46IElmIHRoZSBp
dGVtIGlzIG5laXRoZXIgYSBtZW51IG5vciB0b29sYmFyIGl0ZW0sIGl0IHdpbGwgYmUgbGVmdCBl
bmFibGVkLgorICAgIH0KK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6cHJlZmVyZW5jZXNEaWRDaGFu
Z2UoKQogewogICAgIEJPT0wgbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzID0gbV9w
YWdlLnByZWZlcmVuY2VzKCkucGx1Z2luc0VuYWJsZWQoKTsKQEAgLTE5MDgsNiArMjI1NywxNCBA
QCB2b2lkIFdlYlZpZXdJbXBsOjpkZXN0cm95UmVtb3RlT2JqZWN0UmVnaXN0cnkoKQogICAgIFtt
X3JlbW90ZU9iamVjdFJlZ2lzdHJ5IF9pbnZhbGlkYXRlXTsKICAgICBtX3JlbW90ZU9iamVjdFJl
Z2lzdHJ5ID0gbmlsOwogfQorCitXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKldlYlZpZXdJ
bXBsOjpicm93c2luZ0NvbnRleHRDb250cm9sbGVyKCkKK3sKKyAgICBpZiAoIW1fYnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlcikKKyAgICAgICAgbV9icm93c2luZ0NvbnRleHRDb250cm9sbGVyID0g
YWRvcHROUyhbW1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciBhbGxvY10gX2luaXRXaXRoUGFn
ZVJlZjp0b0FQSSgmbV9wYWdlKV0pOworCisgICAgcmV0dXJuIG1fYnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlci5nZXQoKTsKK30KICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRAogCiAjaWYgRU5BQkxF
KERSQUdfU1VQUE9SVCkKQEAgLTIyOTQsNiArMjY1MSwxNiBAQCBSZWZQdHI8Vmlld1NuYXBzaG90
PiBXZWJWaWV3SW1wbDo6dGFrZVZpZXdTbmFwc2hvdCgpCiAgICAgcmV0dXJuIFZpZXdTbmFwc2hv
dDo6Y3JlYXRlKFdURjo6bW92ZShzdXJmYWNlKSk7CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OnNh
dmVCYWNrRm9yd2FyZFNuYXBzaG90Rm9yQ3VycmVudEl0ZW0oKQoreworICAgIG1fcGFnZS5yZWNv
cmROYXZpZ2F0aW9uU25hcHNob3QoKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2F2ZUJhY2tG
b3J3YXJkU25hcHNob3RGb3JJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0pCit7Cisg
ICAgbV9wYWdlLnJlY29yZE5hdmlnYXRpb25TbmFwc2hvdChpdGVtKTsKK30KKwogVmlld0dlc3R1
cmVDb250cm9sbGVyJiBXZWJWaWV3SW1wbDo6ZW5zdXJlR2VzdHVyZUNvbnRyb2xsZXIoKQogewog
ICAgIGlmICghbV9nZXN0dXJlQ29udHJvbGxlcikKQEAgLTI0ODgsMTcgKzI4NTUsNiBAQCB2b2lk
IFdlYlZpZXdJbXBsOjpnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlRnJvbVZpZXdP
bmx5KE5TRXZlbnQgKmV2ZW50KQogI2VuZGlmCiB9CiAKLWJvb2wgV2ViVmlld0ltcGw6OmV4ZWN1
dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yKFNFTCBzZWxlY3RvcikKLXsKLSAgICBMT0coVGV4dElu
cHV0LCAiRXhlY3V0aW5nIHByZXZpb3VzbHkgc2F2ZWQgY29tbWFuZCAlcyIsIHNlbF9nZXROYW1l
KHNlbGVjdG9yKSk7Ci0gICAgLy8gVGhlIHNpbmsgZG9lcyB0d28gdGhpbmdzOiAxKSBUZWxscyB1
cyBpZiB0aGUgcmVzcG9uZGVyIHdlbnQgdW5oYW5kbGVkLCBhbmQKLSAgICAvLyAyKSBwcmV2ZW50
cyBhbnkgTlNCZWVwOyB3ZSBkb24ndCBldmVyIHdhbnQgdG8gYmVlcCBoZXJlLgotICAgIFJldGFp
blB0cjxXS1Jlc3BvbmRlckNoYWluU2luaz4gc2luayA9IGFkb3B0TlMoW1tXS1Jlc3BvbmRlckNo
YWluU2luayBhbGxvY10gaW5pdFdpdGhSZXNwb25kZXJDaGFpbjptX3ZpZXddKTsKLSAgICBbbV92
aWV3IF9zdXBlckRvQ29tbWFuZEJ5U2VsZWN0b3I6c2VsZWN0b3JdOwotICAgIFtzaW5rIGRldGFj
aF07Ci0gICAgcmV0dXJuICFbc2luayBkaWRSZWNlaXZlVW5oYW5kbGVkQ29tbWFuZF07Ci19Ci0K
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQo=
</data>
<flag name="review"
          id="289426"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264359</attachid>
            <date>2015-10-29 16:06:56 -0700</date>
            <delta_ts>2015-10-29 16:14:46 -0700</delta_ts>
            <desc>Part 13 - more spellcheck</desc>
            <filename>13.diff</filename>
            <type>text/plain</type>
            <size>25865</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA1ZDMzZGViLi5jZTExZTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0zLDYgKzMsNzgg
QEAKICAgICAgICAgV0tWaWV3IGJlaW5nIGluc2lkZSBXS1dlYlZpZXcgbGVhZHMgdG8gd2VpcmQg
QVBJIGlzc3VlcwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTUwMTc0CiAKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBQbGF0Zm9ybS9zcGkvbWFjL0FwcEtpdFNQSS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IHZhbGlkUmVxdWVzdG9yRm9yU2Vu
ZFR5cGU6cmV0dXJuVHlwZTpdKToKKyAgICAgICAgKC1bV0tWaWV3IHJlYWRTZWxlY3Rpb25Gcm9t
UGFzdGVib2FyZDpdKToKKyAgICAgICAgKC1bV0tWaWV3IGNoYW5nZUZvbnQ6XSk6CisgICAgICAg
ICgtW1dLVmlldyBzdGFydFNwZWFraW5nOl0pOgorICAgICAgICAoLVtXS1ZpZXcgc3RvcFNwZWFr
aW5nOl0pOgorICAgICAgICAoLVtXS1ZpZXcgc2hvd0d1ZXNzUGFuZWw6XSk6CisgICAgICAgICgt
W1dLVmlldyBjaGVja1NwZWxsaW5nOl0pOgorICAgICAgICAoLVtXS1ZpZXcgY2hhbmdlU3BlbGxp
bmc6XSk6CisgICAgICAgICgtW1dLVmlldyB0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZzpd
KToKKyAgICAgICAgKC1bV0tWaWV3IGlzR3JhbW1hckNoZWNraW5nRW5hYmxlZF0pOgorICAgICAg
ICAoLVtXS1ZpZXcgc2V0R3JhbW1hckNoZWNraW5nRW5hYmxlZDpdKToKKyAgICAgICAgKC1bV0tW
aWV3IHRvZ2dsZUdyYW1tYXJDaGVja2luZzpdKToKKyAgICAgICAgKC1bV0tWaWV3IHRvZ2dsZUF1
dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbjpdKToKKyAgICAgICAgKC1bV0tWaWV3IG9yZGVyRnJv
bnRTdWJzdGl0dXRpb25zUGFuZWw6XSk6CisgICAgICAgICgtW1dLVmlldyB0b2dnbGVTbWFydElu
c2VydERlbGV0ZTpdKToKKyAgICAgICAgKC1bV0tWaWV3IGlzQXV0b21hdGljUXVvdGVTdWJzdGl0
dXRpb25FbmFibGVkXSk6CisgICAgICAgICgtW1dLVmlldyBzZXRBdXRvbWF0aWNRdW90ZVN1YnN0
aXR1dGlvbkVuYWJsZWQ6XSk6CisgICAgICAgICgtW1dLVmlldyB0b2dnbGVBdXRvbWF0aWNRdW90
ZVN1YnN0aXR1dGlvbjpdKToKKyAgICAgICAgKC1bV0tWaWV3IGlzQXV0b21hdGljRGFzaFN1YnN0
aXR1dGlvbkVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tWaWV3IHNldEF1dG9tYXRpY0Rhc2hTdWJz
dGl0dXRpb25FbmFibGVkOl0pOgorICAgICAgICAoLVtXS1ZpZXcgdG9nZ2xlQXV0b21hdGljRGFz
aFN1YnN0aXR1dGlvbjpdKToKKyAgICAgICAgKC1bV0tWaWV3IGlzQXV0b21hdGljTGlua0RldGVj
dGlvbkVuYWJsZWRdKToKKyAgICAgICAgKC1bV0tWaWV3IHNldEF1dG9tYXRpY0xpbmtEZXRlY3Rp
b25FbmFibGVkOl0pOgorICAgICAgICAoLVtXS1ZpZXcgdG9nZ2xlQXV0b21hdGljTGlua0RldGVj
dGlvbjpdKToKKyAgICAgICAgKC1bV0tWaWV3IGlzQXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5h
YmxlZF0pOgorICAgICAgICAoLVtXS1ZpZXcgc2V0QXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5h
YmxlZDpdKToKKyAgICAgICAgKC1bV0tWaWV3IHRvZ2dsZUF1dG9tYXRpY1RleHRSZXBsYWNlbWVu
dDpdKToKKyAgICAgICAgKC1bV0tWaWV3IHVwcGVyY2FzZVdvcmQ6XSk6CisgICAgICAgICgtW1dL
VmlldyBsb3dlcmNhc2VXb3JkOl0pOgorICAgICAgICAoLVtXS1ZpZXcgY2FwaXRhbGl6ZVdvcmQ6
XSk6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6cmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OnZhbGlkUmVxdWVzdG9yRm9yU2VuZEFuZFJldHVyblR5cGVzKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmNoYW5nZUZvbnRGcm9tRm9udFBhbmVsKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnN0YXJ0U3BlYWtpbmcpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6c3RvcFNwZWFraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
OnNob3dHdWVzc1BhbmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNoZWNrU3Bl
bGxpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y2hhbmdlU3BlbGxpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dG9nZ2xlQ29udGludW91c1NwZWxsQ2hlY2tp
bmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aXNHcmFtbWFyQ2hlY2tpbmdFbmFi
bGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEdyYW1tYXJDaGVja2luZ0Vu
YWJsZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dG9nZ2xlR3JhbW1hckNoZWNr
aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRvZ2dsZUF1dG9tYXRpY1NwZWxs
aW5nQ29ycmVjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpvcmRlckZyb250
U3Vic3RpdHV0aW9uc1BhbmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRvZ2ds
ZVNtYXJ0SW5zZXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmlzQXV0
b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OnNldEF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjp0b2dnbGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppc0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25F
bmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEF1dG9tYXRpY0Rhc2hT
dWJzdGl0dXRpb25FbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRvZ2ds
ZUF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6aXNBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjp0b2dnbGVBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEF1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJs
ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dG9nZ2xlQXV0b21hdGljVGV4dFJl
cGxhY2VtZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwcGVyY2FzZVdvcmQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bG93ZXJjYXNlV29yZCk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjYXBpdGFsaXplV29yZCk6CisgICAgICAgIE1vdmUgc3Bl
bGxjaGVjayBhbmQgcmVsYXRlZCBiaXRzLgorCisyMDE1LTEwLTI5ICBUaW0gSG9ydG9uICA8dGlt
b3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFdLVmlldyBiZWluZyBpbnNpZGUgV0tX
ZWJWaWV3IGxlYWRzIHRvIHdlaXJkIEFQSSBpc3N1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDE3NAorCiAgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgogCiAgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vc3BpL21hYy9BcHBLaXRTUEkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1BsYXRmb3JtL3NwaS9tYWMvQXBwS2l0U1BJLmgKaW5kZXggY2U5YWZkNS4u
YTM2Zjg3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vc3BpL21hYy9BcHBL
aXRTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9zcGkvbWFjL0FwcEtpdFNQSS5o
CkBAIC0zNiwzICszNiwxMCBAQAogQGVuZAogCiAjZW5kaWYgLy8gVVNFKEFQUExFX0lOVEVSTkFM
X1NESykKKworQGludGVyZmFjZSBOU0FwcGxpY2F0aW9uICgpCisKKy0gKHZvaWQpc3BlYWtTdHJp
bmc6KE5TU3RyaW5nICopc3RyaW5nOworLSAodm9pZClfc2V0Q3VycmVudEV2ZW50OihOU0V2ZW50
ICopZXZlbnQ7CisKK0BlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbQppbmRleCA5Nzg3Njk4Li45MzYxZjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0zNSw2ICszNSw3IEBACiAKICNpbXBvcnQgIkFQSUxlZ2Fj
eUNvbnRleHRIaXN0b3J5Q2xpZW50LmgiCiAjaW1wb3J0ICJBUElQYWdlQ29uZmlndXJhdGlvbi5o
IgorI2ltcG9ydCAiQXBwS2l0U1BJLmgiCiAjaW1wb3J0ICJBdHRyaWJ1dGVkU3RyaW5nLmgiCiAj
aW1wb3J0ICJEYXRhUmVmZXJlbmNlLmgiCiAjaW1wb3J0ICJFZGl0aW5nUmFuZ2UuaCIKQEAgLTEw
OSwxMSArMTEwLDYgQEAKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0R3JvdXBQcml2YXRlLmgi
CiAjaW1wb3J0ICJXS1Byb2Nlc3NHcm91cFByaXZhdGUuaCIKIAotQGludGVyZmFjZSBOU0FwcGxp
Y2F0aW9uIChXS05TQXBwbGljYXRpb25EZXRhaWxzKQotLSAodm9pZClzcGVha1N0cmluZzooTlNT
dHJpbmcgKilzdHJpbmc7Ci0tICh2b2lkKV9zZXRDdXJyZW50RXZlbnQ6KE5TRXZlbnQgKilldmVu
dDsKLUBlbmQKLQogI2lmIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKIEBpbnRlcmZhY2Ug
TlNUZXh0SW5wdXRDb250ZXh0IChXS05TVGV4dElucHV0Q29udGV4dERldGFpbHMpCiAtICh2b2lk
KWhhbmRsZUV2ZW50OihOU0V2ZW50ICopdGhlRXZlbnQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQo
XikoQk9PTCBoYW5kbGVkKSljb21wbGV0aW9uSGFuZGxlcjsKQEAgLTM4MSw4ICszNzcsNiBAQCBX
RUJDT1JFX0NPTU1BTkQoeWFua0FuZFNlbGVjdCkKIAogI3VuZGVmIFdFQkNPUkVfQ09NTUFORAog
Ci0vLyBUaGlzIG1ldGhvZCBpcyBuZWVkZWQgdG8gc3VwcG9ydCBNYWMgT1MgWCBzZXJ2aWNlcy4K
LQogLSAoQk9PTCl3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZDooTlNQYXN0ZWJvYXJkICopcGFz
dGVib2FyZCB0eXBlczooTlNBcnJheSAqKXR5cGVzCiB7CiAgICAgcmV0dXJuIF9kYXRhLT5faW1w
bC0+d3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQocGFzdGVib2FyZCwgdHlwZXMpOwpAQCAtMzkz
LDQ4ICszODcsMTkgQEAgV0VCQ09SRV9DT01NQU5EKHlhbmtBbmRTZWxlY3QpCiAgICAgX2RhdGEt
Pl9pbXBsLT5jZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhKCk7CiB9CiAKLS8vIFRoaXMgbWV0
aG9kIGlzIG5lZWRlZCB0byBzdXBwb3J0IE1hYyBPUyBYIHNlcnZpY2VzLgotCiAtIChpZCl2YWxp
ZFJlcXVlc3RvckZvclNlbmRUeXBlOihOU1N0cmluZyAqKXNlbmRUeXBlIHJldHVyblR5cGU6KE5T
U3RyaW5nICopcmV0dXJuVHlwZQogewotICAgIEVkaXRvclN0YXRlIGVkaXRvclN0YXRlID0gX2Rh
dGEtPl9wYWdlLT5lZGl0b3JTdGF0ZSgpOwotICAgIEJPT0wgaXNWYWxpZFNlbmRUeXBlID0gTk87
Ci0KLSAgICBpZiAoc2VuZFR5cGUgJiYgIWVkaXRvclN0YXRlLnNlbGVjdGlvbklzTm9uZSkgewot
ICAgICAgICBpZiAoZWRpdG9yU3RhdGUuaXNJblBsdWdpbikKLSAgICAgICAgICAgIGlzVmFsaWRT
ZW5kVHlwZSA9IFtzZW5kVHlwZSBpc0VxdWFsVG9TdHJpbmc6TlNTdHJpbmdQYm9hcmRUeXBlXTsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgaXNWYWxpZFNlbmRUeXBlID0gW1Bhc3RlYm9hcmRU
eXBlczo6Zm9yU2VsZWN0aW9uKCkgY29udGFpbnNPYmplY3Q6c2VuZFR5cGVdOwotICAgIH0KLQot
ICAgIEJPT0wgaXNWYWxpZFJldHVyblR5cGUgPSBOTzsKLSAgICBpZiAoIXJldHVyblR5cGUpCi0g
ICAgICAgIGlzVmFsaWRSZXR1cm5UeXBlID0gWUVTOwotICAgIGVsc2UgaWYgKFtQYXN0ZWJvYXJk
VHlwZXM6OmZvckVkaXRpbmcoKSBjb250YWluc09iamVjdDpyZXR1cm5UeXBlXSAmJiBlZGl0b3JT
dGF0ZS5pc0NvbnRlbnRFZGl0YWJsZSkgewotICAgICAgICAvLyBXZSBjYW4gaW5zZXJ0IHN0cmlu
Z3MgaW4gYW55IGVkaXRhYmxlIGNvbnRleHQuICBXZSBjYW4gaW5zZXJ0IG90aGVyIHR5cGVzLCBs
aWtlIGltYWdlcywgb25seSBpbiByaWNoIGVkaXQgY29udGV4dHMuCi0gICAgICAgIGlzVmFsaWRS
ZXR1cm5UeXBlID0gZWRpdG9yU3RhdGUuaXNDb250ZW50UmljaGx5RWRpdGFibGUgfHwgW3JldHVy
blR5cGUgaXNFcXVhbFRvU3RyaW5nOk5TU3RyaW5nUGJvYXJkVHlwZV07Ci0gICAgfQotICAgIGlm
IChpc1ZhbGlkU2VuZFR5cGUgJiYgaXNWYWxpZFJldHVyblR5cGUpCi0gICAgICAgIHJldHVybiBz
ZWxmOwotICAgIHJldHVybiBbW3NlbGYgbmV4dFJlc3BvbmRlcl0gdmFsaWRSZXF1ZXN0b3JGb3JT
ZW5kVHlwZTpzZW5kVHlwZSByZXR1cm5UeXBlOnJldHVyblR5cGVdOworICAgIHJldHVybiBfZGF0
YS0+X2ltcGwtPnZhbGlkUmVxdWVzdG9yRm9yU2VuZEFuZFJldHVyblR5cGVzKHNlbmRUeXBlLCBy
ZXR1cm5UeXBlKTsKIH0KIAotLy8gVGhpcyBtZXRob2QgaXMgbmVlZGVkIHRvIHN1cHBvcnQgTWFj
IE9TIFggc2VydmljZXMuCi0KIC0gKEJPT0wpcmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkOihO
U1Bhc3RlYm9hcmQgKilwYXN0ZWJvYXJkIAogewotICAgIHJldHVybiBfZGF0YS0+X3BhZ2UtPnJl
YWRTZWxlY3Rpb25Gcm9tUGFzdGVib2FyZChbcGFzdGVib2FyZCBuYW1lXSk7CisgICAgcmV0dXJu
IF9kYXRhLT5faW1wbC0+cmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkKHBhc3RlYm9hcmQpOwog
fQogCi0vLyBGb250IHBhbmVsIHN1cHBvcnQuCi0KIC0gKHZvaWQpY2hhbmdlRm9udDooaWQpc2Vu
ZGVyCiB7Ci0gICAgTlNGb250TWFuYWdlciAqZm9udE1hbmFnZXIgPSBbTlNGb250TWFuYWdlciBz
aGFyZWRGb250TWFuYWdlcl07Ci0gICAgTlNGb250ICpmb250ID0gW2ZvbnRNYW5hZ2VyIGNvbnZl
cnRGb250Oltmb250TWFuYWdlciBzZWxlY3RlZEZvbnRdXTsKLSAgICBpZiAoIWZvbnQpCi0gICAg
ICAgIHJldHVybjsKLSAgICBfZGF0YS0+X3BhZ2UtPnNldEZvbnQoW2ZvbnQgZmFtaWx5TmFtZV0s
IFtmb250IHBvaW50U2l6ZV0sIFtbZm9udCBmb250RGVzY3JpcHRvcl0gc3ltYm9saWNUcmFpdHNd
KTsKKyAgICBfZGF0YS0+X2ltcGwtPmNoYW5nZUZvbnRGcm9tRm9udFBhbmVsKCk7CiB9CiAKIC8q
CkBAIC00NzUsMjAyICs0NDAsMTM3IEBAIFNvbWUgb3RoZXIgZWRpdGluZy1yZWxhdGVkIG1ldGhv
ZHMgc3RpbGwgdW5pbXBsZW1lbnRlZDoKIAogLSAoSUJBY3Rpb24pc3RhcnRTcGVha2luZzooaWQp
c2VuZGVyCiB7Ci0gICAgX2RhdGEtPl9wYWdlLT5nZXRTZWxlY3Rpb25PckNvbnRlbnRzQXNTdHJp
bmcoW3NlbGZdKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJy
b3IgZXJyb3IpIHsKLSAgICAgICAgaWYgKGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpF
cnJvcjo6Tm9uZSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKCFzdHJpbmcpCi0g
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgW05TQXBwIHNwZWFrU3RyaW5nOnN0cmluZ107
Ci0gICAgfSk7CisgICAgX2RhdGEtPl9pbXBsLT5zdGFydFNwZWFraW5nKCk7CiB9CiAKIC0gKElC
QWN0aW9uKXN0b3BTcGVha2luZzooaWQpc2VuZGVyCiB7Ci0gICAgW05TQXBwIHN0b3BTcGVha2lu
ZzpzZW5kZXJdOworICAgIF9kYXRhLT5faW1wbC0+c3RvcFNwZWFraW5nKHNlbmRlcik7CiB9CiAK
IC0gKElCQWN0aW9uKXNob3dHdWVzc1BhbmVsOihpZClzZW5kZXIKIHsKLSAgICBOU1NwZWxsQ2hl
Y2tlciAqY2hlY2tlciA9IFtOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdOwotICAg
IGlmICghY2hlY2tlcikgewotICAgICAgICBMT0dfRVJST1IoIk5vIE5TU3BlbGxDaGVja2VyIik7
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgCi0gICAgTlNQYW5lbCAqc3BlbGxpbmdQYW5l
bCA9IFtjaGVja2VyIHNwZWxsaW5nUGFuZWxdOwotICAgIGlmIChbc3BlbGxpbmdQYW5lbCBpc1Zp
c2libGVdKSB7Ci0gICAgICAgIFtzcGVsbGluZ1BhbmVsIG9yZGVyT3V0OnNlbmRlcl07Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0gICAgCi0gICAgX2RhdGEtPl9wYWdlLT5hZHZhbmNlVG9OZXh0
TWlzc3BlbGxpbmcodHJ1ZSk7Ci0gICAgW3NwZWxsaW5nUGFuZWwgb3JkZXJGcm9udDpzZW5kZXJd
OworICAgIF9kYXRhLT5faW1wbC0+c2hvd0d1ZXNzUGFuZWwoc2VuZGVyKTsKIH0KIAogLSAoSUJB
Y3Rpb24pY2hlY2tTcGVsbGluZzooaWQpc2VuZGVyCiB7Ci0gICAgX2RhdGEtPl9wYWdlLT5hZHZh
bmNlVG9OZXh0TWlzc3BlbGxpbmcoZmFsc2UpOworICAgIF9kYXRhLT5faW1wbC0+Y2hlY2tTcGVs
bGluZygpOwogfQogCiAtICh2b2lkKWNoYW5nZVNwZWxsaW5nOihpZClzZW5kZXIKIHsKLSAgICBO
U1N0cmluZyAqd29yZCA9IFtbc2VuZGVyIHNlbGVjdGVkQ2VsbF0gc3RyaW5nVmFsdWVdOwotCi0g
ICAgX2RhdGEtPl9wYWdlLT5jaGFuZ2VTcGVsbGluZ1RvV29yZCh3b3JkKTsKKyAgICBfZGF0YS0+
X2ltcGwtPmNoYW5nZVNwZWxsaW5nKHNlbmRlcik7CiB9CiAKIC0gKElCQWN0aW9uKXRvZ2dsZUNv
bnRpbnVvdXNTcGVsbENoZWNraW5nOihpZClzZW5kZXIKIHsKLSAgICBib29sIHNwZWxsQ2hlY2tp
bmdFbmFibGVkID0gIVRleHRDaGVja2VyOjpzdGF0ZSgpLmlzQ29udGludW91c1NwZWxsQ2hlY2tp
bmdFbmFibGVkOwotICAgIFRleHRDaGVja2VyOjpzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0Vu
YWJsZWQoc3BlbGxDaGVja2luZ0VuYWJsZWQpOwotCi0gICAgX2RhdGEtPl9wYWdlLT5wcm9jZXNz
KCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOworICAgIF9kYXRhLT5faW1wbC0+dG9nZ2xlQ29u
dGludW91c1NwZWxsQ2hlY2tpbmcoKTsKIH0KIAogLSAoQk9PTClpc0dyYW1tYXJDaGVja2luZ0Vu
YWJsZWQKIHsKLSAgICByZXR1cm4gVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNHcmFtbWFyQ2hlY2tp
bmdFbmFibGVkOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmlzR3JhbW1hckNoZWNraW5nRW5h
YmxlZCgpOwogfQogCiAtICh2b2lkKXNldEdyYW1tYXJDaGVja2luZ0VuYWJsZWQ6KEJPT0wpZmxh
ZwogewotICAgIGlmIChzdGF0aWNfY2FzdDxib29sPihmbGFnKSA9PSBUZXh0Q2hlY2tlcjo6c3Rh
dGUoKS5pc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQpCi0gICAgICAgIHJldHVybjsKLSAgICAKLSAg
ICBUZXh0Q2hlY2tlcjo6c2V0R3JhbW1hckNoZWNraW5nRW5hYmxlZChmbGFnKTsKLSAgICBfZGF0
YS0+X3BhZ2UtPnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CisgICAgX2RhdGEt
Pl9pbXBsLT5zZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKGZsYWcpOwogfQogCiAtIChJQkFjdGlv
bil0b2dnbGVHcmFtbWFyQ2hlY2tpbmc6KGlkKXNlbmRlcgogewotICAgIGJvb2wgZ3JhbW1hckNo
ZWNraW5nRW5hYmxlZCA9ICFUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0dyYW1tYXJDaGVja2luZ0Vu
YWJsZWQ7Ci0gICAgVGV4dENoZWNrZXI6OnNldEdyYW1tYXJDaGVja2luZ0VuYWJsZWQoZ3JhbW1h
ckNoZWNraW5nRW5hYmxlZCk7Ci0KLSAgICBfZGF0YS0+X3BhZ2UtPnByb2Nlc3MoKS51cGRhdGVU
ZXh0Q2hlY2tlclN0YXRlKCk7CisgICAgX2RhdGEtPl9pbXBsLT50b2dnbGVHcmFtbWFyQ2hlY2tp
bmcoKTsKIH0KIAogLSAoSUJBY3Rpb24pdG9nZ2xlQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9u
OihpZClzZW5kZXIKIHsKLSAgICBUZXh0Q2hlY2tlcjo6c2V0QXV0b21hdGljU3BlbGxpbmdDb3Jy
ZWN0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNTcGVsbGluZ0Nv
cnJlY3Rpb25FbmFibGVkKTsKLQotICAgIF9kYXRhLT5fcGFnZS0+cHJvY2VzcygpLnVwZGF0ZVRl
eHRDaGVja2VyU3RhdGUoKTsKKyAgICBfZGF0YS0+X2ltcGwtPnRvZ2dsZUF1dG9tYXRpY1NwZWxs
aW5nQ29ycmVjdGlvbigpOwogfQogCiAtICh2b2lkKW9yZGVyRnJvbnRTdWJzdGl0dXRpb25zUGFu
ZWw6KGlkKXNlbmRlcgogewotICAgIE5TU3BlbGxDaGVja2VyICpjaGVja2VyID0gW05TU3BlbGxD
aGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl07Ci0gICAgaWYgKCFjaGVja2VyKSB7Ci0gICAgICAg
IExPR19FUlJPUigiTm8gTlNTcGVsbENoZWNrZXIiKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
LSAgICAKLSAgICBOU1BhbmVsICpzdWJzdGl0dXRpb25zUGFuZWwgPSBbY2hlY2tlciBzdWJzdGl0
dXRpb25zUGFuZWxdOwotICAgIGlmIChbc3Vic3RpdHV0aW9uc1BhbmVsIGlzVmlzaWJsZV0pIHsK
LSAgICAgICAgW3N1YnN0aXR1dGlvbnNQYW5lbCBvcmRlck91dDpzZW5kZXJdOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIFtzdWJzdGl0dXRpb25zUGFuZWwgb3JkZXJGcm9udDpzZW5kZXJd
OworICAgIF9kYXRhLT5faW1wbC0+b3JkZXJGcm9udFN1YnN0aXR1dGlvbnNQYW5lbChzZW5kZXIp
OwogfQogCiAtIChJQkFjdGlvbil0b2dnbGVTbWFydEluc2VydERlbGV0ZTooaWQpc2VuZGVyCiB7
Ci0gICAgX2RhdGEtPl9wYWdlLT5zZXRTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoIV9kYXRhLT5f
cGFnZS0+aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKSk7CisgICAgX2RhdGEtPl9pbXBsLT50
b2dnbGVTbWFydEluc2VydERlbGV0ZSgpOwogfQogCiAtIChCT09MKWlzQXV0b21hdGljUXVvdGVT
dWJzdGl0dXRpb25FbmFibGVkCiB7Ci0gICAgcmV0dXJuIFRleHRDaGVja2VyOjpzdGF0ZSgpLmlz
QXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkOworICAgIHJldHVybiBfZGF0YS0+X2lt
cGwtPmlzQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkKCk7CiB9CiAKIC0gKHZvaWQp
c2V0QXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkOihCT09MKWZsYWcKIHsKLSAgICBp
ZiAoc3RhdGljX2Nhc3Q8Ym9vbD4oZmxhZykgPT0gVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRv
bWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQpCi0gICAgICAgIHJldHVybjsKLQotICAgIFRl
eHRDaGVja2VyOjpzZXRBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQoZmxhZyk7Ci0g
ICAgX2RhdGEtPl9wYWdlLT5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOworICAg
IF9kYXRhLT5faW1wbC0+c2V0QXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkKGZsYWcp
OwogfQogCiAtICh2b2lkKXRvZ2dsZUF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uOihpZClzZW5k
ZXIKIHsKLSAgICBUZXh0Q2hlY2tlcjo6c2V0QXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFi
bGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5h
YmxlZCk7Ci0gICAgX2RhdGEtPl9wYWdlLT5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0
ZSgpOworICAgIF9kYXRhLT5faW1wbC0+dG9nZ2xlQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb24o
KTsKIH0KIAogLSAoQk9PTClpc0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkCiB7Ci0g
ICAgcmV0dXJuIFRleHRDaGVja2VyOjpzdGF0ZSgpLmlzQXV0b21hdGljRGFzaFN1YnN0aXR1dGlv
bkVuYWJsZWQ7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+aXNBdXRvbWF0aWNEYXNoU3Vic3Rp
dHV0aW9uRW5hYmxlZCgpOwogfQogCiAtICh2b2lkKXNldEF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRp
b25FbmFibGVkOihCT09MKWZsYWcKIHsKLSAgICBpZiAoc3RhdGljX2Nhc3Q8Ym9vbD4oZmxhZykg
PT0gVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxl
ZCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgVGV4dENoZWNrZXI6OnNldEF1dG9tYXRpY0Rhc2hT
dWJzdGl0dXRpb25FbmFibGVkKGZsYWcpOwotICAgIF9kYXRhLT5fcGFnZS0+cHJvY2VzcygpLnVw
ZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKKyAgICBfZGF0YS0+X2ltcGwtPnNldEF1dG9tYXRpY0Rh
c2hTdWJzdGl0dXRpb25FbmFibGVkKGZsYWcpOwogfQogCiAtICh2b2lkKXRvZ2dsZUF1dG9tYXRp
Y0Rhc2hTdWJzdGl0dXRpb246KGlkKXNlbmRlcgogewotICAgIFRleHRDaGVja2VyOjpzZXRBdXRv
bWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRv
bWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCk7Ci0gICAgX2RhdGEtPl9wYWdlLT5wcm9jZXNz
KCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOworICAgIF9kYXRhLT5faW1wbC0+dG9nZ2xlQXV0
b21hdGljRGFzaFN1YnN0aXR1dGlvbigpOwogfQogCiAtIChCT09MKWlzQXV0b21hdGljTGlua0Rl
dGVjdGlvbkVuYWJsZWQKIHsKLSAgICByZXR1cm4gVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRv
bWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZDsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5pc0F1
dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKCk7CiB9CiAKIC0gKHZvaWQpc2V0QXV0b21hdGlj
TGlua0RldGVjdGlvbkVuYWJsZWQ6KEJPT0wpZmxhZwogewotICAgIGlmIChzdGF0aWNfY2FzdDxi
b29sPihmbGFnKSA9PSBUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRpY0xpbmtEZXRlY3Rp
b25FbmFibGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICBUZXh0Q2hlY2tlcjo6c2V0QXV0b21h
dGljTGlua0RldGVjdGlvbkVuYWJsZWQoZmxhZyk7Ci0gICAgX2RhdGEtPl9wYWdlLT5wcm9jZXNz
KCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOworICAgIF9kYXRhLT5faW1wbC0+c2V0QXV0b21h
dGljTGlua0RldGVjdGlvbkVuYWJsZWQoZmxhZyk7CiB9CiAKIC0gKHZvaWQpdG9nZ2xlQXV0b21h
dGljTGlua0RldGVjdGlvbjooaWQpc2VuZGVyCiB7Ci0gICAgVGV4dENoZWNrZXI6OnNldEF1dG9t
YXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRp
Y0xpbmtEZXRlY3Rpb25FbmFibGVkKTsKLSAgICBfZGF0YS0+X3BhZ2UtPnByb2Nlc3MoKS51cGRh
dGVUZXh0Q2hlY2tlclN0YXRlKCk7CisgICAgX2RhdGEtPl9pbXBsLT50b2dnbGVBdXRvbWF0aWNM
aW5rRGV0ZWN0aW9uKCk7CiB9CiAKIC0gKEJPT0wpaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRF
bmFibGVkCiB7Ci0gICAgcmV0dXJuIFRleHRDaGVja2VyOjpzdGF0ZSgpLmlzQXV0b21hdGljVGV4
dFJlcGxhY2VtZW50RW5hYmxlZDsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5pc0F1dG9tYXRp
Y1RleHRSZXBsYWNlbWVudEVuYWJsZWQoKTsKIH0KIAogLSAodm9pZClzZXRBdXRvbWF0aWNUZXh0
UmVwbGFjZW1lbnRFbmFibGVkOihCT09MKWZsYWcKIHsKLSAgICBpZiAoc3RhdGljX2Nhc3Q8Ym9v
bD4oZmxhZykgPT0gVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1l
bnRFbmFibGVkKQotICAgICAgICByZXR1cm47Ci0KLSAgICBUZXh0Q2hlY2tlcjo6c2V0QXV0b21h
dGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZChmbGFnKTsKLSAgICBfZGF0YS0+X3BhZ2UtPnByb2Nl
c3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CisgICAgX2RhdGEtPl9pbXBsLT5zZXRBdXRv
bWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkKGZsYWcpOwogfQogCiAtICh2b2lkKXRvZ2dsZUF1
dG9tYXRpY1RleHRSZXBsYWNlbWVudDooaWQpc2VuZGVyCiB7Ci0gICAgVGV4dENoZWNrZXI6OnNl
dEF1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJsZWQoIVRleHRDaGVja2VyOjpzdGF0ZSgpLmlz
QXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZCk7Ci0gICAgX2RhdGEtPl9wYWdlLT5wcm9j
ZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOworICAgIF9kYXRhLT5faW1wbC0+dG9nZ2xl
QXV0b21hdGljVGV4dFJlcGxhY2VtZW50KCk7CiB9CiAKIC0gKHZvaWQpdXBwZXJjYXNlV29yZDoo
aWQpc2VuZGVyCiB7Ci0gICAgX2RhdGEtPl9wYWdlLT51cHBlcmNhc2VXb3JkKCk7CisgICAgX2Rh
dGEtPl9pbXBsLT51cHBlcmNhc2VXb3JkKCk7CiB9CiAKIC0gKHZvaWQpbG93ZXJjYXNlV29yZDoo
aWQpc2VuZGVyCiB7Ci0gICAgX2RhdGEtPl9wYWdlLT5sb3dlcmNhc2VXb3JkKCk7CisgICAgX2Rh
dGEtPl9pbXBsLT5sb3dlcmNhc2VXb3JkKCk7CiB9CiAKIC0gKHZvaWQpY2FwaXRhbGl6ZVdvcmQ6
KGlkKXNlbmRlcgogewotICAgIF9kYXRhLT5fcGFnZS0+Y2FwaXRhbGl6ZVdvcmQoKTsKKyAgICBf
ZGF0YS0+X2ltcGwtPmNhcGl0YWxpemVXb3JkKCk7CiB9CiAKIC8vIEV2ZW50cwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCAyN2Q0N2E4Li40MTA0
MjI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApA
QCAtMjMwLDEyICsyMzAsNDUgQEAgcHVibGljOgogICAgIHZvaWQgcmVnaXN0ZXJFZGl0Q29tbWFu
ZChSZWZQdHI8V2ViRWRpdENvbW1hbmRQcm94eT4sIFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbyk7
CiAgICAgdm9pZCBjbGVhckFsbEVkaXRDb21tYW5kcygpOwogICAgIGJvb2wgd3JpdGVTZWxlY3Rp
b25Ub1Bhc3RlYm9hcmQoTlNQYXN0ZWJvYXJkICosIE5TQXJyYXkgKnR5cGVzKTsKKyAgICBib29s
IHJlYWRTZWxlY3Rpb25Gcm9tUGFzdGVib2FyZChOU1Bhc3RlYm9hcmQgKik7CisgICAgaWQgdmFs
aWRSZXF1ZXN0b3JGb3JTZW5kQW5kUmV0dXJuVHlwZXMoTlNTdHJpbmcgKnNlbmRUeXBlLCBOU1N0
cmluZyAqcmV0dXJuVHlwZSk7CiAgICAgdm9pZCBjZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVh
KCk7CiAgICAgdm9pZCBzZWxlY3Rpb25EaWRDaGFuZ2UoKTsKICAgICB2b2lkIHN0YXJ0T2JzZXJ2
aW5nRm9udFBhbmVsKCk7CiAgICAgdm9pZCB1cGRhdGVGb250UGFuZWxJZk5lZWRlZCgpOworICAg
IHZvaWQgY2hhbmdlRm9udEZyb21Gb250UGFuZWwoKTsKICAgICBib29sIHZhbGlkYXRlVXNlcklu
dGVyZmFjZUl0ZW0oaWQgPE5TVmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+KTsKIAorICAgIHZv
aWQgc3RhcnRTcGVha2luZygpOworICAgIHZvaWQgc3RvcFNwZWFraW5nKGlkKTsKKworICAgIHZv
aWQgc2hvd0d1ZXNzUGFuZWwoaWQpOworICAgIHZvaWQgY2hlY2tTcGVsbGluZygpOworICAgIHZv
aWQgY2hhbmdlU3BlbGxpbmcoaWQpOworICAgIHZvaWQgdG9nZ2xlQ29udGludW91c1NwZWxsQ2hl
Y2tpbmcoKTsKKworICAgIGJvb2wgaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCk7CisgICAgdm9p
ZCBzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKGJvb2wpOworICAgIHZvaWQgdG9nZ2xlR3JhbW1h
ckNoZWNraW5nKCk7CisgICAgdm9pZCB0b2dnbGVBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb24o
KTsKKyAgICB2b2lkIG9yZGVyRnJvbnRTdWJzdGl0dXRpb25zUGFuZWwoaWQpOworICAgIHZvaWQg
dG9nZ2xlU21hcnRJbnNlcnREZWxldGUoKTsKKyAgICBib29sIGlzQXV0b21hdGljUXVvdGVTdWJz
dGl0dXRpb25FbmFibGVkKCk7CisgICAgdm9pZCBzZXRBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlv
bkVuYWJsZWQoYm9vbCk7CisgICAgdm9pZCB0b2dnbGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlv
bigpOworICAgIGJvb2wgaXNBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCgpOworICAg
IHZvaWQgc2V0QXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQoYm9vbCk7CisgICAgdm9p
ZCB0b2dnbGVBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uKCk7CisgICAgYm9vbCBpc0F1dG9tYXRp
Y0xpbmtEZXRlY3Rpb25FbmFibGVkKCk7CisgICAgdm9pZCBzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0
aW9uRW5hYmxlZChib29sKTsKKyAgICB2b2lkIHRvZ2dsZUF1dG9tYXRpY0xpbmtEZXRlY3Rpb24o
KTsKKyAgICBib29sIGlzQXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZCgpOworICAgIHZv
aWQgc2V0QXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZChib29sKTsKKyAgICB2b2lkIHRv
Z2dsZUF1dG9tYXRpY1RleHRSZXBsYWNlbWVudCgpOworICAgIHZvaWQgdXBwZXJjYXNlV29yZCgp
OworICAgIHZvaWQgbG93ZXJjYXNlV29yZCgpOworICAgIHZvaWQgY2FwaXRhbGl6ZVdvcmQoKTsK
KwogICAgIHZvaWQgcHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsKIAogICAgIHZvaWQgc2V0VGV4dElu
ZGljYXRvcihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yJiwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldp
bmRvd0xpZmV0aW1lID0gV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJt
YW5lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
CmluZGV4IGNlOWFiZDAuLjlmZmJiMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIFBMQVRGT1JNKE1B
QykKIAorI2ltcG9ydCAiQXBwS2l0U1BJLmgiCiAjaW1wb3J0ICJDb2xvclNwYWNlRGF0YS5oIgog
I2ltcG9ydCAiR2VuZXJpY0NhbGxiYWNrLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCkBAIC0xNTgz
LDYgKzE1ODQsMzUgQEAgYm9vbCBXZWJWaWV3SW1wbDo6d3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9h
cmQoTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkLCBOU0FycmF5ICoKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAorYm9vbCBXZWJWaWV3SW1wbDo6cmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkKE5TUGFz
dGVib2FyZCAqcGFzdGVib2FyZCkKK3sKKyAgICByZXR1cm4gbV9wYWdlLnJlYWRTZWxlY3Rpb25G
cm9tUGFzdGVib2FyZChbcGFzdGVib2FyZCBuYW1lXSk7Cit9CisKK2lkIFdlYlZpZXdJbXBsOjp2
YWxpZFJlcXVlc3RvckZvclNlbmRBbmRSZXR1cm5UeXBlcyhOU1N0cmluZyAqc2VuZFR5cGUsIE5T
U3RyaW5nICpyZXR1cm5UeXBlKQoreworICAgIEVkaXRvclN0YXRlIGVkaXRvclN0YXRlID0gbV9w
YWdlLmVkaXRvclN0YXRlKCk7CisgICAgYm9vbCBpc1ZhbGlkU2VuZFR5cGUgPSBmYWxzZTsKKwor
ICAgIGlmIChzZW5kVHlwZSAmJiAhZWRpdG9yU3RhdGUuc2VsZWN0aW9uSXNOb25lKSB7CisgICAg
ICAgIGlmIChlZGl0b3JTdGF0ZS5pc0luUGx1Z2luKQorICAgICAgICAgICAgaXNWYWxpZFNlbmRU
eXBlID0gW3NlbmRUeXBlIGlzRXF1YWxUb1N0cmluZzpOU1N0cmluZ1Bib2FyZFR5cGVdOworICAg
ICAgICBlbHNlCisgICAgICAgICAgICBpc1ZhbGlkU2VuZFR5cGUgPSBbUGFzdGVib2FyZFR5cGVz
Ojpmb3JTZWxlY3Rpb24oKSBjb250YWluc09iamVjdDpzZW5kVHlwZV07CisgICAgfQorCisgICAg
Ym9vbCBpc1ZhbGlkUmV0dXJuVHlwZSA9IGZhbHNlOworICAgIGlmICghcmV0dXJuVHlwZSkKKyAg
ICAgICAgaXNWYWxpZFJldHVyblR5cGUgPSB0cnVlOworICAgIGVsc2UgaWYgKFtQYXN0ZWJvYXJk
VHlwZXM6OmZvckVkaXRpbmcoKSBjb250YWluc09iamVjdDpyZXR1cm5UeXBlXSAmJiBlZGl0b3JT
dGF0ZS5pc0NvbnRlbnRFZGl0YWJsZSkgeworICAgICAgICAvLyBXZSBjYW4gaW5zZXJ0IHN0cmlu
Z3MgaW4gYW55IGVkaXRhYmxlIGNvbnRleHQuICBXZSBjYW4gaW5zZXJ0IG90aGVyIHR5cGVzLCBs
aWtlIGltYWdlcywgb25seSBpbiByaWNoIGVkaXQgY29udGV4dHMuCisgICAgICAgIGlzVmFsaWRS
ZXR1cm5UeXBlID0gZWRpdG9yU3RhdGUuaXNDb250ZW50UmljaGx5RWRpdGFibGUgfHwgW3JldHVy
blR5cGUgaXNFcXVhbFRvU3RyaW5nOk5TU3RyaW5nUGJvYXJkVHlwZV07CisgICAgfQorICAgIGlm
IChpc1ZhbGlkU2VuZFR5cGUgJiYgaXNWYWxpZFJldHVyblR5cGUpCisgICAgICAgIHJldHVybiBt
X3ZpZXc7CisgICAgcmV0dXJuIFtbbV92aWV3IG5leHRSZXNwb25kZXJdIHZhbGlkUmVxdWVzdG9y
Rm9yU2VuZFR5cGU6c2VuZFR5cGUgcmV0dXJuVHlwZTpyZXR1cm5UeXBlXTsKK30KKwogdm9pZCBX
ZWJWaWV3SW1wbDo6Y2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYSgpCiB7CiAgICAgbV9wYWdl
LmNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEoKTsKQEAgLTE2MTIsNiArMTY0MiwxNSBAQCB2
b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVGb250UGFuZWxJZk5lZWRlZCgpCiAgICAgfQogfQogCit2
b2lkIFdlYlZpZXdJbXBsOjpjaGFuZ2VGb250RnJvbUZvbnRQYW5lbCgpCit7CisgICAgTlNGb250
TWFuYWdlciAqZm9udE1hbmFnZXIgPSBbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl07
CisgICAgTlNGb250ICpmb250ID0gW2ZvbnRNYW5hZ2VyIGNvbnZlcnRGb250OmZvbnRNYW5hZ2Vy
LnNlbGVjdGVkRm9udF07CisgICAgaWYgKCFmb250KQorICAgICAgICByZXR1cm47CisgICAgbV9w
YWdlLnNldEZvbnQoZm9udC5mYW1pbHlOYW1lLCBmb250LnBvaW50U2l6ZSwgZm9udC5mb250RGVz
Y3JpcHRvci5zeW1ib2xpY1RyYWl0cyk7Cit9CisKIHN0YXRpYyBOU01lbnVJdGVtICptZW51SXRl
bShpZCA8TlNWYWxpZGF0ZWRVc2VySW50ZXJmYWNlSXRlbT4gaXRlbSkKIHsKICAgICBpZiAoIVso
TlNPYmplY3QgKilpdGVtIGlzS2luZE9mQ2xhc3M6W05TTWVudUl0ZW0gY2xhc3NdXSkKQEAgLTE3
NDcsNiArMTc4NiwyMDYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0VXNlckludGVyZmFjZUl0ZW1T
dGF0ZShOU1N0cmluZyAqY29tbWFuZE5hbWUsIGJvb2wgZW5hYmxlZCwKICAgICB9CiB9CiAKK3Zv
aWQgV2ViVmlld0ltcGw6OnN0YXJ0U3BlYWtpbmcoKQoreworICAgIG1fcGFnZS5nZXRTZWxlY3Rp
b25PckNvbnRlbnRzQXNTdHJpbmcoW10oY29uc3QgU3RyaW5nJiBzdHJpbmcsIFdlYktpdDo6Q2Fs
bGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgICAgICBpZiAoZXJyb3IgIT0gV2ViS2l0OjpD
YWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICBp
ZiAoIXN0cmluZykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBbTlNBcHAgc3BlYWtT
dHJpbmc6c3RyaW5nXTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c3RvcFNwZWFr
aW5nKGlkIHNlbmRlcikKK3sKKyAgICBbTlNBcHAgc3RvcFNwZWFraW5nOnNlbmRlcl07Cit9CisK
K3ZvaWQgV2ViVmlld0ltcGw6OnNob3dHdWVzc1BhbmVsKGlkIHNlbmRlcikKK3sKKyAgICBOU1Nw
ZWxsQ2hlY2tlciAqY2hlY2tlciA9IFtOU1NwZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJd
OworICAgIGlmICghY2hlY2tlcikgeworICAgICAgICBMT0dfRVJST1IoIk5vIE5TU3BlbGxDaGVj
a2VyIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBOU1BhbmVsICpzcGVsbGluZ1Bh
bmVsID0gW2NoZWNrZXIgc3BlbGxpbmdQYW5lbF07CisgICAgaWYgKFtzcGVsbGluZ1BhbmVsIGlz
VmlzaWJsZV0pIHsKKyAgICAgICAgW3NwZWxsaW5nUGFuZWwgb3JkZXJPdXQ6c2VuZGVyXTsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKworICAgIG1fcGFnZS5hZHZhbmNlVG9OZXh0TWlzc3BlbGxp
bmcodHJ1ZSk7CisgICAgW3NwZWxsaW5nUGFuZWwgb3JkZXJGcm9udDpzZW5kZXJdOworfQorCit2
b2lkIFdlYlZpZXdJbXBsOjpjaGVja1NwZWxsaW5nKCkKK3sKKyAgICBtX3BhZ2UuYWR2YW5jZVRv
TmV4dE1pc3NwZWxsaW5nKGZhbHNlKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6Y2hhbmdlU3Bl
bGxpbmcoaWQgc2VuZGVyKQoreworICAgIE5TU3RyaW5nICp3b3JkID0gW1tzZW5kZXIgc2VsZWN0
ZWRDZWxsXSBzdHJpbmdWYWx1ZV07CisKKyAgICBtX3BhZ2UuY2hhbmdlU3BlbGxpbmdUb1dvcmQo
d29yZCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNr
aW5nKCkKK3sKKyAgICBib29sIHNwZWxsQ2hlY2tpbmdFbmFibGVkID0gIVRleHRDaGVja2VyOjpz
dGF0ZSgpLmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkOworICAgIFRleHRDaGVja2Vy
OjpzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoc3BlbGxDaGVja2luZ0VuYWJsZWQp
OworCisgICAgbV9wYWdlLnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7Cit9CisK
K2Jvb2wgV2ViVmlld0ltcGw6OmlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCgpCit7CisgICAgcmV0
dXJuIFRleHRDaGVja2VyOjpzdGF0ZSgpLmlzR3JhbW1hckNoZWNraW5nRW5hYmxlZDsKK30KKwor
dm9pZCBXZWJWaWV3SW1wbDo6c2V0R3JhbW1hckNoZWNraW5nRW5hYmxlZChib29sIGZsYWcpCit7
CisgICAgaWYgKHN0YXRpY19jYXN0PGJvb2w+KGZsYWcpID09IFRleHRDaGVja2VyOjpzdGF0ZSgp
LmlzR3JhbW1hckNoZWNraW5nRW5hYmxlZCkKKyAgICAgICAgcmV0dXJuOworCisgICAgVGV4dENo
ZWNrZXI6OnNldEdyYW1tYXJDaGVja2luZ0VuYWJsZWQoZmxhZyk7CisgICAgbV9wYWdlLnByb2Nl
c3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnRv
Z2dsZUdyYW1tYXJDaGVja2luZygpCit7CisgICAgYm9vbCBncmFtbWFyQ2hlY2tpbmdFbmFibGVk
ID0gIVRleHRDaGVja2VyOjpzdGF0ZSgpLmlzR3JhbW1hckNoZWNraW5nRW5hYmxlZDsKKyAgICBU
ZXh0Q2hlY2tlcjo6c2V0R3JhbW1hckNoZWNraW5nRW5hYmxlZChncmFtbWFyQ2hlY2tpbmdFbmFi
bGVkKTsKKworICAgIG1fcGFnZS5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOwor
fQorCit2b2lkIFdlYlZpZXdJbXBsOjp0b2dnbGVBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb24o
KQoreworICAgIFRleHRDaGVja2VyOjpzZXRBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFi
bGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVu
YWJsZWQpOworCisgICAgbV9wYWdlLnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7
Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6Om9yZGVyRnJvbnRTdWJzdGl0dXRpb25zUGFuZWwoaWQg
c2VuZGVyKQoreworICAgIE5TU3BlbGxDaGVja2VyICpjaGVja2VyID0gW05TU3BlbGxDaGVja2Vy
IHNoYXJlZFNwZWxsQ2hlY2tlcl07CisgICAgaWYgKCFjaGVja2VyKSB7CisgICAgICAgIExPR19F
UlJPUigiTm8gTlNTcGVsbENoZWNrZXIiKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IE5TUGFuZWwgKnN1YnN0aXR1dGlvbnNQYW5lbCA9IFtjaGVja2VyIHN1YnN0aXR1dGlvbnNQYW5l
bF07CisgICAgaWYgKFtzdWJzdGl0dXRpb25zUGFuZWwgaXNWaXNpYmxlXSkgeworICAgICAgICBb
c3Vic3RpdHV0aW9uc1BhbmVsIG9yZGVyT3V0OnNlbmRlcl07CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgW3N1YnN0aXR1dGlvbnNQYW5lbCBvcmRlckZyb250OnNlbmRlcl07Cit9CisKK3Zv
aWQgV2ViVmlld0ltcGw6OnRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlKCkKK3sKKyAgICBtX3BhZ2Uu
c2V0U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCFtX3BhZ2UuaXNTbWFydEluc2VydERlbGV0ZUVu
YWJsZWQoKSk7Cit9CisKK2Jvb2wgV2ViVmlld0ltcGw6OmlzQXV0b21hdGljUXVvdGVTdWJzdGl0
dXRpb25FbmFibGVkKCkKK3sKKyAgICByZXR1cm4gVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRv
bWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQ7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNl
dEF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZChib29sIGZsYWcpCit7CisgICAgaWYg
KHN0YXRpY19jYXN0PGJvb2w+KGZsYWcpID09IFRleHRDaGVja2VyOjpzdGF0ZSgpLmlzQXV0b21h
dGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkKQorICAgICAgICByZXR1cm47CisKKyAgICBUZXh0
Q2hlY2tlcjo6c2V0QXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkKGZsYWcpOworICAg
IG1fcGFnZS5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOworfQorCit2b2lkIFdl
YlZpZXdJbXBsOjp0b2dnbGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbigpCit7CisgICAgVGV4
dENoZWNrZXI6OnNldEF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCghVGV4dENoZWNr
ZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQpOworICAgIG1f
cGFnZS5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOworfQorCitib29sIFdlYlZp
ZXdJbXBsOjppc0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkKCkKK3sKKyAgICByZXR1
cm4gVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxl
ZDsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6c2V0QXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVu
YWJsZWQoYm9vbCBmbGFnKQoreworICAgIGlmIChzdGF0aWNfY2FzdDxib29sPihmbGFnKSA9PSBU
ZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkKQor
ICAgICAgICByZXR1cm47CisKKyAgICBUZXh0Q2hlY2tlcjo6c2V0QXV0b21hdGljRGFzaFN1YnN0
aXR1dGlvbkVuYWJsZWQoZmxhZyk7CisgICAgbV9wYWdlLnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hl
Y2tlclN0YXRlKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnRvZ2dsZUF1dG9tYXRpY0Rhc2hT
dWJzdGl0dXRpb24oKQoreworICAgIFRleHRDaGVja2VyOjpzZXRBdXRvbWF0aWNEYXNoU3Vic3Rp
dHV0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNEYXNoU3Vic3Rp
dHV0aW9uRW5hYmxlZCk7CisgICAgbV9wYWdlLnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0
YXRlKCk7Cit9CisKK2Jvb2wgV2ViVmlld0ltcGw6OmlzQXV0b21hdGljTGlua0RldGVjdGlvbkVu
YWJsZWQoKQoreworICAgIHJldHVybiBUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRpY0xp
bmtEZXRlY3Rpb25FbmFibGVkOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRBdXRvbWF0aWNM
aW5rRGV0ZWN0aW9uRW5hYmxlZChib29sIGZsYWcpCit7CisgICAgaWYgKHN0YXRpY19jYXN0PGJv
b2w+KGZsYWcpID09IFRleHRDaGVja2VyOjpzdGF0ZSgpLmlzQXV0b21hdGljTGlua0RldGVjdGlv
bkVuYWJsZWQpCisgICAgICAgIHJldHVybjsKKworICAgIFRleHRDaGVja2VyOjpzZXRBdXRvbWF0
aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZChmbGFnKTsKKyAgICBtX3BhZ2UucHJvY2VzcygpLnVwZGF0
ZVRleHRDaGVja2VyU3RhdGUoKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6dG9nZ2xlQXV0b21h
dGljTGlua0RldGVjdGlvbigpCit7CisgICAgVGV4dENoZWNrZXI6OnNldEF1dG9tYXRpY0xpbmtE
ZXRlY3Rpb25FbmFibGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRpY0xpbmtEZXRl
Y3Rpb25FbmFibGVkKTsKKyAgICBtX3BhZ2UucHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3Rh
dGUoKTsKK30KKworYm9vbCBXZWJWaWV3SW1wbDo6aXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRF
bmFibGVkKCkKK3sKKyAgICByZXR1cm4gVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNU
ZXh0UmVwbGFjZW1lbnRFbmFibGVkOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRBdXRvbWF0
aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkKGJvb2wgZmxhZykKK3sKKyAgICBpZiAoc3RhdGljX2Nh
c3Q8Ym9vbD4oZmxhZykgPT0gVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNUZXh0UmVw
bGFjZW1lbnRFbmFibGVkKQorICAgICAgICByZXR1cm47CisgICAgCisgICAgVGV4dENoZWNrZXI6
OnNldEF1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJsZWQoZmxhZyk7CisgICAgbV9wYWdlLnBy
b2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6
OnRvZ2dsZUF1dG9tYXRpY1RleHRSZXBsYWNlbWVudCgpCit7CisgICAgVGV4dENoZWNrZXI6OnNl
dEF1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJsZWQoIVRleHRDaGVja2VyOjpzdGF0ZSgpLmlz
QXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZCk7CisgICAgbV9wYWdlLnByb2Nlc3MoKS51
cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnVwcGVyY2Fz
ZVdvcmQoKQoreworICAgIG1fcGFnZS51cHBlcmNhc2VXb3JkKCk7Cit9CisKK3ZvaWQgV2ViVmll
d0ltcGw6Omxvd2VyY2FzZVdvcmQoKQoreworICAgIG1fcGFnZS5sb3dlcmNhc2VXb3JkKCk7Cit9
CisKK3ZvaWQgV2ViVmlld0ltcGw6OmNhcGl0YWxpemVXb3JkKCkKK3sKKyAgICBtX3BhZ2UuY2Fw
aXRhbGl6ZVdvcmQoKTsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6cHJlZmVyZW5jZXNEaWRDaGFu
Z2UoKQogewogICAgIEJPT0wgbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzID0gbV9w
YWdlLnByZWZlcmVuY2VzKCkucGx1Z2luc0VuYWJsZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUGFnZVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0KaW5kZXggMmI2MzBlOS4uMzI0YThmNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQYWdlUHJveHlNYWMubW0K
QEAgLTI5LDYgKzI5LDcgQEAKICNpZiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgIkFQSVVJQ2xp
ZW50LmgiCisjaW1wb3J0ICJBcHBLaXRTUEkuaCIKICNpbXBvcnQgIkF0dHJpYnV0ZWRTdHJpbmcu
aCIKICNpbXBvcnQgIkNvbG9yU3BhY2VEYXRhLmgiCiAjaW1wb3J0ICJEYXRhUmVmZXJlbmNlLmgi
CkBAIC01NywxMCArNTgsNiBAQAogI2ltcG9ydCA8d3RmL05ldmVyRGVzdHJveWVkLmg+CiAjaW1w
b3J0IDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oPgogCi1AaW50ZXJmYWNlIE5TQXBwbGlj
YXRpb24gKCkKLS0gKHZvaWQpc3BlYWtTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nOwotQGVuZAot
CiAjZGVmaW5lIE1FU1NBR0VfQ0hFQ0soYXNzZXJ0aW9uKSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNz
ZXJ0aW9uLCBwcm9jZXNzKCkuY29ubmVjdGlvbigpKQogI2RlZmluZSBNRVNTQUdFX0NIRUNLX1VS
TCh1cmwpIE1FU1NBR0VfQ0hFQ0tfQkFTRShtX3Byb2Nlc3MtPmNoZWNrVVJMUmVjZWl2ZWRGcm9t
V2ViUHJvY2Vzcyh1cmwpLCBtX3Byb2Nlc3MtPmNvbm5lY3Rpb24oKSkKIAo=
</data>
<flag name="review"
          id="289486"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264371</attachid>
            <date>2015-10-29 18:36:52 -0700</date>
            <delta_ts>2015-10-29 19:51:28 -0700</delta_ts>
            <desc>Part 14 - NSTextInputClient</desc>
            <filename>14.diff</filename>
            <type>text/plain</type>
            <size>97550</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBjZTExZTAyLi44Mjk3YTc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC01LDYgKzUsNzUg
QEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAgICAgKC1bV0tWaWV3IGRvQ29tbWFuZEJ5
U2VsZWN0b3I6XSk6CisgICAgICAgICgtW1dLVmlldyBpbnNlcnRUZXh0Ol0pOgorICAgICAgICAo
LVtXS1ZpZXcgaW5zZXJ0VGV4dDpyZXBsYWNlbWVudFJhbmdlOl0pOgorICAgICAgICAoLVtXS1Zp
ZXcgaW5wdXRDb250ZXh0XSk6CisgICAgICAgICgtW1dLVmlldyBwZXJmb3JtS2V5RXF1aXZhbGVu
dDpdKToKKyAgICAgICAgKC1bV0tWaWV3IGtleVVwOl0pOgorICAgICAgICAoLVtXS1ZpZXcga2V5
RG93bjpdKToKKyAgICAgICAgKC1bV0tWaWV3IGZsYWdzQ2hhbmdlZDpdKToKKyAgICAgICAgKC1b
V0tWaWV3IHNldE1hcmtlZFRleHQ6c2VsZWN0ZWRSYW5nZTpyZXBsYWNlbWVudFJhbmdlOl0pOgor
ICAgICAgICAoLVtXS1ZpZXcgdW5tYXJrVGV4dF0pOgorICAgICAgICAoLVtXS1ZpZXcgc2VsZWN0
ZWRSYW5nZV0pOgorICAgICAgICAoLVtXS1ZpZXcgaGFzTWFya2VkVGV4dF0pOgorICAgICAgICAo
LVtXS1ZpZXcgbWFya2VkUmFuZ2VdKToKKyAgICAgICAgKC1bV0tWaWV3IGF0dHJpYnV0ZWRTdWJz
dHJpbmdGb3JQcm9wb3NlZFJhbmdlOmFjdHVhbFJhbmdlOl0pOgorICAgICAgICAoLVtXS1ZpZXcg
Y2hhcmFjdGVySW5kZXhGb3JQb2ludDpdKToKKyAgICAgICAgKC1bV0tWaWV3IGZpcnN0UmVjdEZv
ckNoYXJhY3RlclJhbmdlOmFjdHVhbFJhbmdlOl0pOgorICAgICAgICAoLVtXS1ZpZXcgc2VsZWN0
ZWRSYW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tWaWV3IG1hcmtl
ZFJhbmdlV2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS1ZpZXcgaGFzTWFy
a2VkVGV4dFdpdGhDb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tWaWV3IGF0dHJp
YnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlOmNvbXBsZXRpb25IYW5kbGVyOl0pOgorICAg
ICAgICAoLVtXS1ZpZXcgZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2U6Y29tcGxldGlvbkhhbmRs
ZXI6XSk6CisgICAgICAgICgtW1dLVmlldyBjaGFyYWN0ZXJJbmRleEZvclBvaW50OmNvbXBsZXRp
b25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX3N1cGVyUGVyZm9ybUtleUVxdWl2YWxl
bnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBfc3VwZXJLZXlEb3duOl0pOgorICAgICAgICAoZXh0
cmFjdFVuZGVybGluZXMpOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX2NvbGxlY3RLZXli
b2FyZExheW91dENvbW1hbmRzRm9yRXZlbnQ6dG86XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dL
VmlldyBfaW50ZXJwcmV0S2V5RXZlbnQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6IERlbGV0ZWQuCisg
ICAgICAgICgtW1dLVmlldyBOT19SRVRVUk5fRFVFX1RPX0FTU0VSVF0pOiBEZWxldGVkLgorICAg
ICAgICAoLVtXS1ZpZXcgX2ludGVycHJldEtleUV2ZW50OnNhdmluZ0NvbW1hbmRzVG86XSk6IERl
bGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfZXhlY3V0ZVNhdmVkS2V5cHJlc3NDb21tYW5kc10p
OiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX2RvbmVXaXRoS2V5RXZlbnQ6ZXZlbnRXYXNI
YW5kbGVkOl0pOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0lu
dGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6ZG9uZVdpdGhLZXlFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OmV4dHJhY3RV
bmRlcmxpbmVzKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNvbGxlY3RLZXlib2Fy
ZExheW91dENvbW1hbmRzRm9yRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
aW50ZXJwcmV0S2V5RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZG9Db21t
YW5kQnlTZWxlY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppbnNlcnRUZXh0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbGVjdGVkUmFuZ2VXaXRoQ29tcGxl
dGlvbkhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWFya2VkUmFuZ2VX
aXRoQ29tcGxldGlvbkhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGFz
TWFya2VkVGV4dFdpdGhDb21wbGV0aW9uSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjphdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjpmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjaGFyYWN0ZXJJbmRleEZvclBvaW50KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmlucHV0Q29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjp1bm1hcmtUZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNl
dE1hcmtlZFRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2VsZWN0ZWRSYW5n
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoYXNNYXJrZWRUZXh0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Om1hcmtlZFJhbmdlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnBlcmZvcm1LZXlFcXVpdmFsZW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmtleVVwKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmtleURvd24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZmxhZ3NDaGFuZ2VkKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmV4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHMpOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aEtleUV2ZW50KToKKyAgICAgICAgTW92ZSBOU1RleHRJ
bnB1dENsaWVudCBpbXBsZW1lbnRhdGlvbi4KKworMjAxNS0xMC0yOSAgVGltIEhvcnRvbiAgPHRp
bW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KKworICAgICAgICBXS1ZpZXcgYmVpbmcgaW5zaWRlIFdL
V2ViVmlldyBsZWFkcyB0byB3ZWlyZCBBUEkgaXNzdWVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTAxNzQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKwogICAgICAgICAqIFBsYXRmb3JtL3NwaS9tYWMvQXBwS2l0U1BJLmg6
CiAgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgogICAgICAgICAoLVtXS1Zp
ZXcgdmFsaWRSZXF1ZXN0b3JGb3JTZW5kVHlwZTpyZXR1cm5UeXBlOl0pOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDkzNjFmMTguLjY3ODUxMjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTExMCw0MSAr
MTEwLDE0IEBACiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dEdyb3VwUHJpdmF0ZS5oIgogI2lt
cG9ydCAiV0tQcm9jZXNzR3JvdXBQcml2YXRlLmgiCiAKLSNpZiBVU0UoQVNZTkNfTlNURVhUSU5Q
VVRDTElFTlQpCi1AaW50ZXJmYWNlIE5TVGV4dElucHV0Q29udGV4dCAoV0tOU1RleHRJbnB1dENv
bnRleHREZXRhaWxzKQotLSAodm9pZCloYW5kbGVFdmVudDooTlNFdmVudCAqKXRoZUV2ZW50IGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wgaGFuZGxlZCkpY29tcGxldGlvbkhhbmRsZXI7
Ci0tICh2b2lkKWhhbmRsZUV2ZW50QnlJbnB1dE1ldGhvZDooTlNFdmVudCAqKXRoZUV2ZW50IGNv
bXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wgaGFuZGxlZCkpY29tcGxldGlvbkhhbmRsZXI7
Ci0tIChCT09MKWhhbmRsZUV2ZW50QnlLZXlib2FyZExheW91dDooTlNFdmVudCAqKXRoZUV2ZW50
OwotQGVuZAotI2VuZGlmCi0KIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiB1c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKIAotI2lmICFVU0UoQVNZTkNfTlNURVhUSU5QVVRDTElFTlQpCi1zdHJ1Y3Qg
V0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyB7Ci0gICAgYm9vbCBldmVudEludGVy
cHJldGF0aW9uSGFkU2lkZUVmZmVjdHM7Ci0gICAgYm9vbCBjb25zdW1lZEJ5SU07Ci0gICAgYm9v
bCBleGVjdXRpbmdTYXZlZEtleXByZXNzQ29tbWFuZHM7Ci0gICAgVmVjdG9yPEtleXByZXNzQ29t
bWFuZD4qIGNvbW1hbmRzOwotfTsKLSNlbmRpZgotCiBAaW50ZXJmYWNlIFdLVmlld0RhdGEgOiBO
U09iamVjdCB7CiBAcHVibGljCiAgICAgc3RkOjp1bmlxdWVfcHRyPFBhZ2VDbGllbnRJbXBsPiBf
cGFnZUNsaWVudDsKICAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBfcGFnZTsKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViVmlld0ltcGw+IF9pbXBsOwotCi0gICAgLy8gV2Uga2VlcCBoZXJlIHRoZSBl
dmVudCB3aGVuIHJlc2VuZGluZyBpdCB0bwotICAgIC8vIHRoZSBhcHBsaWNhdGlvbiB0byBkaXN0
aW5ndWlzaCB0aGUgY2FzZSBvZiBhIG5ldyBldmVudCBmcm9tIG9uZSAKLSAgICAvLyB0aGF0IGhh
cyBiZWVuIGFscmVhZHkgc2VudCB0byBXZWJDb3JlLgotICAgIFJldGFpblB0cjxOU0V2ZW50PiBf
a2V5RG93bkV2ZW50QmVpbmdSZXNlbnQ7Ci0jaWYgVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5U
KQotICAgIFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+KiBfY29sbGVjdGVkS2V5cHJlc3NDb21tYW5k
czsKLSNlbHNlCi0gICAgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyogX2ludGVy
cHJldEtleUV2ZW50c1BhcmFtZXRlcnM7Ci0jZW5kaWYKIH0KIAogQGVuZApAQCAtNzU4LDkzMiAr
NzMxLDExNiBAQCBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRFUk5BTChtb3VzZURyYWdn
ZWRJbnRlcm5hbCkKICAgICByZXR1cm4gcmVzdWx0OwogfQogCi1zdGF0aWMgdm9pZCBleHRyYWN0
VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPENvbXBvc2l0aW9u
VW5kZXJsaW5lPiYgcmVzdWx0KQotewotICAgIGludCBsZW5ndGggPSBbW3N0cmluZyBzdHJpbmdd
IGxlbmd0aF07Ci0gICAgCi0gICAgaW50IGkgPSAwOwotICAgIHdoaWxlIChpIDwgbGVuZ3RoKSB7
Ci0gICAgICAgIE5TUmFuZ2UgcmFuZ2U7Ci0gICAgICAgIE5TRGljdGlvbmFyeSAqYXR0cnMgPSBb
c3RyaW5nIGF0dHJpYnV0ZXNBdEluZGV4OmkgbG9uZ2VzdEVmZmVjdGl2ZVJhbmdlOiZyYW5nZSBp
blJhbmdlOk5TTWFrZVJhbmdlKGksIGxlbmd0aCAtIGkpXTsKLSAgICAgICAgCi0gICAgICAgIGlm
IChOU051bWJlciAqc3R5bGUgPSBbYXR0cnMgb2JqZWN0Rm9yS2V5Ok5TVW5kZXJsaW5lU3R5bGVB
dHRyaWJ1dGVOYW1lXSkgewotICAgICAgICAgICAgQ29sb3IgY29sb3IgPSBDb2xvcjo6YmxhY2s7
Ci0gICAgICAgICAgICBpZiAoTlNDb2xvciAqY29sb3JBdHRyID0gW2F0dHJzIG9iamVjdEZvcktl
eTpOU1VuZGVybGluZUNvbG9yQXR0cmlidXRlTmFtZV0pCi0gICAgICAgICAgICAgICAgY29sb3Ig
PSBjb2xvckZyb21OU0NvbG9yKFtjb2xvckF0dHIgY29sb3JVc2luZ0NvbG9yU3BhY2VOYW1lOk5T
RGV2aWNlUkdCQ29sb3JTcGFjZV0pOwotICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChDb21wb3Np
dGlvblVuZGVybGluZShyYW5nZS5sb2NhdGlvbiwgTlNNYXhSYW5nZShyYW5nZSksIGNvbG9yLCBb
c3R5bGUgaW50VmFsdWVdID4gMSkpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICBpID0g
cmFuZ2UubG9jYXRpb24gKyByYW5nZS5sZW5ndGg7Ci0gICAgfQotfQotCi0jaWYgVVNFKEFTWU5D
X05TVEVYVElOUFVUQ0xJRU5UKQotCi0tICh2b2lkKV9jb2xsZWN0S2V5Ym9hcmRMYXlvdXRDb21t
YW5kc0ZvckV2ZW50OihOU0V2ZW50ICopZXZlbnQgdG86KFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+
Jiljb21tYW5kcwotewotICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNLZXlEb3duKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBBU1NFUlQoIV9kYXRhLT5fY29sbGVjdGVkS2V5cHJlc3NDb21tYW5k
cyk7Ci0gICAgX2RhdGEtPl9jb2xsZWN0ZWRLZXlwcmVzc0NvbW1hbmRzID0gJmNvbW1hbmRzOwot
Ci0gICAgaWYgKE5TVGV4dElucHV0Q29udGV4dCAqY29udGV4dCA9IFtzZWxmIGlucHV0Q29udGV4
dF0pCi0gICAgICAgIFtjb250ZXh0IGhhbmRsZUV2ZW50QnlLZXlib2FyZExheW91dDpldmVudF07
Ci0gICAgZWxzZQotICAgICAgICBbc2VsZiBpbnRlcnByZXRLZXlFdmVudHM6W05TQXJyYXkgYXJy
YXlXaXRoT2JqZWN0OmV2ZW50XV07Ci0KLSAgICBfZGF0YS0+X2NvbGxlY3RlZEtleXByZXNzQ29t
bWFuZHMgPSBudWxscHRyOwotfQotCi0tICh2b2lkKV9pbnRlcnByZXRLZXlFdmVudDooTlNFdmVu
dCAqKWV2ZW50IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wgaGFuZGxlZCwgY29uc3Qg
VmVjdG9yPEtleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSljb21wbGV0aW9uSGFuZGxlcgotewot
ICAgIC8vIEZvciByZWd1bGFyIFdlYiBjb250ZW50LCBpbnB1dCBtZXRob2RzIHJ1biBiZWZvcmUg
cGFzc2luZyBhIGtleWRvd24gdG8gRE9NLCBidXQgcGx1Zy1pbnMgZ2V0IGFuIG9wcG9ydHVuaXR5
IHRvIGhhbmRsZSB0aGUgZXZlbnQgZmlyc3QuCi0gICAgLy8gVGhlcmUgaXMgbm8gbmVlZCB0byBj
b2xsZWN0IGNvbW1hbmRzLCBhcyB0aGUgcGx1Zy1pbiBjYW5ub3QgZXhlY3V0ZSB0aGVtLgotICAg
IGlmIChfZGF0YS0+X2ltcGwtPnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkpIHsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoTk8sIFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+KCkp
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgaWYgKCFbc2VsZiBpbnB1dENvbnRleHRd
KSB7Ci0gICAgICAgIFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+IGNvbW1hbmRzOwotICAgICAgICBb
c2VsZiBfY29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFuZHNGb3JFdmVudDpldmVudCB0bzpjb21t
YW5kc107Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKE5PLCBjb21tYW5kcyk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9Ci0KLSAgICBMT0coVGV4dElucHV0LCAiLT4gaGFuZGxlRXZlbnRCeUlu
cHV0TWV0aG9kOiVwICVAIiwgZXZlbnQsIGV2ZW50KTsKLSAgICBbW3NlbGYgaW5wdXRDb250ZXh0
XSBoYW5kbGVFdmVudEJ5SW5wdXRNZXRob2Q6ZXZlbnQgY29tcGxldGlvbkhhbmRsZXI6XihCT09M
IGhhbmRsZWQpIHsKLSAgICAgICAgCi0gICAgICAgIExPRyhUZXh0SW5wdXQsICIuLi4gaGFuZGxl
RXZlbnRCeUlucHV0TWV0aG9kJXMgaGFuZGxlZCIsIGhhbmRsZWQgPyAiIiA6ICIgbm90Iik7Ci0g
ICAgICAgIGlmIChoYW5kbGVkKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihZRVMs
IFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+KCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAg
ICB9Ci0KLSAgICAgICAgVmVjdG9yPEtleXByZXNzQ29tbWFuZD4gY29tbWFuZHM7Ci0gICAgICAg
IFtzZWxmIF9jb2xsZWN0S2V5Ym9hcmRMYXlvdXRDb21tYW5kc0ZvckV2ZW50OmV2ZW50IHRvOmNv
bW1hbmRzXTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoTk8sIGNvbW1hbmRzKTsKLSAgICB9
XTsKLX0KLQogLSAodm9pZClkb0NvbW1hbmRCeVNlbGVjdG9yOihTRUwpc2VsZWN0b3IKIHsKLSAg
ICBMT0coVGV4dElucHV0LCAiZG9Db21tYW5kQnlTZWxlY3RvcjpcIiVzXCIiLCBzZWxfZ2V0TmFt
ZShzZWxlY3RvcikpOwotCi0gICAgVmVjdG9yPEtleXByZXNzQ29tbWFuZD4qIGtleXByZXNzQ29t
bWFuZHMgPSBfZGF0YS0+X2NvbGxlY3RlZEtleXByZXNzQ29tbWFuZHM7Ci0KLSAgICBpZiAoa2V5
cHJlc3NDb21tYW5kcykgewotICAgICAgICBLZXlwcmVzc0NvbW1hbmQgY29tbWFuZChOU1N0cmlu
Z0Zyb21TZWxlY3RvcihzZWxlY3RvcikpOwotICAgICAgICBrZXlwcmVzc0NvbW1hbmRzLT5hcHBl
bmQoY29tbWFuZCk7Ci0gICAgICAgIExPRyhUZXh0SW5wdXQsICIuLi5zdG9yZWQiKTsKLSAgICAg
ICAgX2RhdGEtPl9wYWdlLT5yZWdpc3RlcktleXByZXNzQ29tbWFuZE5hbWUoY29tbWFuZC5jb21t
YW5kTmFtZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgLy8gRklYTUU6IFNlbmQgdGhlIGNvbW1h
bmQgdG8gRWRpdG9yIHN5bmNocm9ub3VzbHkgYW5kIG9ubHkgc2VuZCBpdCBhbG9uZyB0aGUKLSAg
ICAgICAgLy8gcmVzcG9uZGVyIGNoYWluIGlmIGl0J3MgYSBzZWxlY3RvciB0aGF0IGRvZXMgbm90
IGNvcnJlc3BvbmQgdG8gYW4gZWRpdGluZyBjb21tYW5kLgotICAgICAgICBbc3VwZXIgZG9Db21t
YW5kQnlTZWxlY3RvcjpzZWxlY3Rvcl07Ci0gICAgfQorICAgIF9kYXRhLT5faW1wbC0+ZG9Db21t
YW5kQnlTZWxlY3RvcihzZWxlY3Rvcik7CiB9CiAKIC0gKHZvaWQpaW5zZXJ0VGV4dDooaWQpc3Ry
aW5nCiB7Ci0gICAgLy8gVW5saWtlIGFuIE5TVGV4dElucHV0Q2xpZW50IHZhcmlhbnQgd2l0aCBy
ZXBsYWNlbWVudFJhbmdlLCB0aGlzIE5TUmVzcG9uZGVyIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiB0
aGVyZSBpcyBubyBpbnB1dCBjb250ZXh0LAotICAgIC8vIHNvIHRleHQgaW5wdXQgcHJvY2Vzc2lu
ZyBpc24ndCBwZXJmb3JtZWQuIFdlIGFyZSBub3QgZ29pbmcgdG8gYWN0dWFsbHkgaW5zZXJ0IGFu
eSB0ZXh0IGluIHRoYXQgY2FzZSwgYnV0IHNhdmluZyBhbiBpbnNlcnRUZXh0Ci0gICAgLy8gY29t
bWFuZCBlbnN1cmVzIHRoYXQgYSBrZXlwcmVzcyBldmVudCBpcyBkaXNwYXRjaGVkIGFzIGFwcHJv
cHJpYXRlLgotICAgIFtzZWxmIGluc2VydFRleHQ6c3RyaW5nIHJlcGxhY2VtZW50UmFuZ2U6TlNN
YWtlUmFuZ2UoTlNOb3RGb3VuZCwgMCldOworICAgIF9kYXRhLT5faW1wbC0+aW5zZXJ0VGV4dChz
dHJpbmcpOwogfQogCiAtICh2b2lkKWluc2VydFRleHQ6KGlkKXN0cmluZyByZXBsYWNlbWVudFJh
bmdlOihOU1JhbmdlKXJlcGxhY2VtZW50UmFuZ2UKIHsKLSAgICBCT09MIGlzQXR0cmlidXRlZFN0
cmluZyA9IFtzdHJpbmcgaXNLaW5kT2ZDbGFzczpbTlNBdHRyaWJ1dGVkU3RyaW5nIGNsYXNzXV07
Ci0gICAgQVNTRVJUKGlzQXR0cmlidXRlZFN0cmluZyB8fCBbc3RyaW5nIGlzS2luZE9mQ2xhc3M6
W05TU3RyaW5nIGNsYXNzXV0pOwotCi0gICAgaWYgKHJlcGxhY2VtZW50UmFuZ2UubG9jYXRpb24g
IT0gTlNOb3RGb3VuZCkKLSAgICAgICAgTE9HKFRleHRJbnB1dCwgImluc2VydFRleHQ6XCIlQFwi
IHJlcGxhY2VtZW50UmFuZ2U6KCV1LCAldSkiLCBpc0F0dHJpYnV0ZWRTdHJpbmcgPyBbc3RyaW5n
IHN0cmluZ10gOiBzdHJpbmcsIHJlcGxhY2VtZW50UmFuZ2UubG9jYXRpb24sIHJlcGxhY2VtZW50
UmFuZ2UubGVuZ3RoKTsKLSAgICBlbHNlCi0gICAgICAgIExPRyhUZXh0SW5wdXQsICJpbnNlcnRU
ZXh0OlwiJUBcIiIsIGlzQXR0cmlidXRlZFN0cmluZyA/IFtzdHJpbmcgc3RyaW5nXSA6IHN0cmlu
Zyk7Ci0KLSAgICBOU1N0cmluZyAqdGV4dDsKLSAgICBWZWN0b3I8VGV4dEFsdGVybmF0aXZlV2l0
aFJhbmdlPiBkaWN0YXRpb25BbHRlcm5hdGl2ZXM7Ci0KLSAgICBib29sIHJlZ2lzdGVyVW5kb0dy
b3VwID0gZmFsc2U7Ci0gICAgaWYgKGlzQXR0cmlidXRlZFN0cmluZykgewotI2lmIFVTRShESUNU
QVRJT05fQUxURVJOQVRJVkVTKQotICAgICAgICBjb2xsZWN0RGljdGF0aW9uVGV4dEFsdGVybmF0
aXZlcyhzdHJpbmcsIGRpY3RhdGlvbkFsdGVybmF0aXZlcyk7Ci0jZW5kaWYKLSNpZiBVU0UoSU5T
RVJUSU9OX1VORE9fR1JPVVBJTkcpCi0gICAgICAgIHJlZ2lzdGVyVW5kb0dyb3VwID0gc2hvdWxk
UmVnaXN0ZXJJbnNlcnRpb25VbmRvR3JvdXAoc3RyaW5nKTsKLSNlbmRpZgotICAgICAgICAvLyBG
SVhNRTogV2UgaWdub3JlIG1vc3QgYXR0cmlidXRlcyBmcm9tIHRoZSBzdHJpbmcsIHNvIGZvciBl
eGFtcGxlIGluc2VydGluZyBmcm9tIENoYXJhY3RlciBQYWxldHRlIGxvc2VzIGZvbnQgYW5kIGds
eXBoIHZhcmlhdGlvbiBkYXRhLgotICAgICAgICB0ZXh0ID0gW3N0cmluZyBzdHJpbmddOwotICAg
IH0gZWxzZQotICAgICAgICB0ZXh0ID0gc3RyaW5nOwotCi0gICAgLy8gaW5zZXJ0VGV4dCBjYW4g
YmUgY2FsbGVkIGZvciBzZXZlcmFsIHJlYXNvbnM6Ci0gICAgLy8gLSBJZiBpdCdzIGZyb20gbm9y
bWFsIGtleSBldmVudCBwcm9jZXNzaW5nIChpbmNsdWRpbmcga2V5IGJpbmRpbmdzKSwgd2Ugc2F2
ZSB0aGUgYWN0aW9uIHRvIHBlcmZvcm0gaXQgbGF0ZXIuCi0gICAgLy8gLSBJZiBpdCdzIGZyb20g
YW4gaW5wdXQgbWV0aG9kLCB0aGVuIHdlIHNob3VsZCBpbnNlcnQgdGhlIHRleHQgbm93LgotICAg
IC8vIC0gSWYgaXQncyBzZW50IG91dHNpZGUgb2Yga2V5Ym9hcmQgZXZlbnQgcHJvY2Vzc2luZyAo
ZS5nLiBmcm9tIENoYXJhY3RlciBWaWV3ZXIsIG9yIHdoZW4gY29uZmlybWluZyBhbiBpbmxpbmUg
aW5wdXQgYXJlYSB3aXRoIGEgbW91c2UpLAotICAgIC8vIHRoZW4gd2UgYWxzbyBleGVjdXRlIGl0
IGltbWVkaWF0ZWx5LCBhcyB0aGVyZSB3aWxsIGJlIG5vIG90aGVyIGNoYW5jZS4KLSAgICBWZWN0
b3I8S2V5cHJlc3NDb21tYW5kPioga2V5cHJlc3NDb21tYW5kcyA9IF9kYXRhLT5fY29sbGVjdGVk
S2V5cHJlc3NDb21tYW5kczsKLSAgICBpZiAoa2V5cHJlc3NDb21tYW5kcykgewotICAgICAgICBB
U1NFUlQocmVwbGFjZW1lbnRSYW5nZS5sb2NhdGlvbiA9PSBOU05vdEZvdW5kKTsKLSAgICAgICAg
S2V5cHJlc3NDb21tYW5kIGNvbW1hbmQoImluc2VydFRleHQ6IiwgdGV4dCk7Ci0gICAgICAgIGtl
eXByZXNzQ29tbWFuZHMtPmFwcGVuZChjb21tYW5kKTsKLSAgICAgICAgTE9HKFRleHRJbnB1dCwg
Ii4uLnN0b3JlZCIpOwotICAgICAgICBfZGF0YS0+X3BhZ2UtPnJlZ2lzdGVyS2V5cHJlc3NDb21t
YW5kTmFtZShjb21tYW5kLmNvbW1hbmROYW1lKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIFN0cmluZyBldmVudFRleHQgPSB0ZXh0OwotICAgIGV2ZW50VGV4dC5yZXBsYWNlKE5TQmFj
a1RhYkNoYXJhY3RlciwgTlNUYWJDaGFyYWN0ZXIpOyAvLyBzYW1lIHRoaW5nIGlzIGRvbmUgaW4g
S2V5RXZlbnRNYWMubW0gaW4gV2ViQ29yZQotICAgIGlmICghZGljdGF0aW9uQWx0ZXJuYXRpdmVz
LmlzRW1wdHkoKSkKLSAgICAgICAgX2RhdGEtPl9wYWdlLT5pbnNlcnREaWN0YXRlZFRleHRBc3lu
YyhldmVudFRleHQsIHJlcGxhY2VtZW50UmFuZ2UsIGRpY3RhdGlvbkFsdGVybmF0aXZlcywgcmVn
aXN0ZXJVbmRvR3JvdXApOwotICAgIGVsc2UKLSAgICAgICAgX2RhdGEtPl9wYWdlLT5pbnNlcnRU
ZXh0QXN5bmMoZXZlbnRUZXh0LCByZXBsYWNlbWVudFJhbmdlLCByZWdpc3RlclVuZG9Hcm91cCk7
Ci19Ci0KLS0gKHZvaWQpc2VsZWN0ZWRSYW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZChe
KShOU1JhbmdlIHNlbGVjdGVkUmFuZ2UpKWNvbXBsZXRpb25IYW5kbGVyUHRyCi17Ci0gICAgUmV0
YWluUHRyPGlkPiBjb21wbGV0aW9uSGFuZGxlciA9IGFkb3B0TlMoW2NvbXBsZXRpb25IYW5kbGVy
UHRyIGNvcHldKTsKLQotICAgIExPRyhUZXh0SW5wdXQsICJzZWxlY3RlZFJhbmdlIik7Ci0gICAg
X2RhdGEtPl9wYWdlLT5nZXRTZWxlY3RlZFJhbmdlQXN5bmMoW2NvbXBsZXRpb25IYW5kbGVyXShj
b25zdCBFZGl0aW5nUmFuZ2UmIGVkaXRpbmdSYW5nZVJlc3VsdCwgV2ViS2l0OjpDYWxsYmFja0Jh
c2U6OkVycm9yIGVycm9yKSB7Ci0gICAgICAgIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlckJsb2Nr
KShOU1JhbmdlKSA9ICh2b2lkICheKShOU1JhbmdlKSljb21wbGV0aW9uSGFuZGxlci5nZXQoKTsK
LSAgICAgICAgaWYgKGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkg
ewotICAgICAgICAgICAgTE9HKFRleHRJbnB1dCwgIiAgICAuLi5zZWxlY3RlZFJhbmdlIGZhaWxl
ZC4iKTsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyQmxvY2soTlNNYWtlUmFuZ2UoTlNO
b3RGb3VuZCwgMCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIE5T
UmFuZ2UgcmVzdWx0ID0gZWRpdGluZ1JhbmdlUmVzdWx0OwotICAgICAgICBpZiAocmVzdWx0Lmxv
Y2F0aW9uID09IE5TTm90Rm91bmQpCi0gICAgICAgICAgICBMT0coVGV4dElucHV0LCAiICAgIC0+
IHNlbGVjdGVkUmFuZ2UgcmV0dXJuZWQgKE5TTm90Rm91bmQsICVsbHUpIiwgcmVzdWx0Lmxlbmd0
aCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLT4gc2Vs
ZWN0ZWRSYW5nZSByZXR1cm5lZCAoJWxsdSwgJWxsdSkiLCByZXN1bHQubG9jYXRpb24sIHJlc3Vs
dC5sZW5ndGgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlckJsb2NrKHJlc3VsdCk7Ci0gICAg
fSk7Ci19Ci0KLS0gKHZvaWQpbWFya2VkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQo
XikoTlNSYW5nZSBtYXJrZWRSYW5nZSkpY29tcGxldGlvbkhhbmRsZXJQdHIKLXsKLSAgICBSZXRh
aW5QdHI8aWQ+IGNvbXBsZXRpb25IYW5kbGVyID0gYWRvcHROUyhbY29tcGxldGlvbkhhbmRsZXJQ
dHIgY29weV0pOwotCi0gICAgTE9HKFRleHRJbnB1dCwgIm1hcmtlZFJhbmdlIik7Ci0gICAgX2Rh
dGEtPl9wYWdlLT5nZXRNYXJrZWRSYW5nZUFzeW5jKFtjb21wbGV0aW9uSGFuZGxlcl0oY29uc3Qg
RWRpdGluZ1JhbmdlJiBlZGl0aW5nUmFuZ2VSZXN1bHQsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpF
cnJvciBlcnJvcikgewotICAgICAgICB2b2lkICheY29tcGxldGlvbkhhbmRsZXJCbG9jaykoTlNS
YW5nZSkgPSAodm9pZCAoXikoTlNSYW5nZSkpY29tcGxldGlvbkhhbmRsZXIuZ2V0KCk7Ci0gICAg
ICAgIGlmIChlcnJvciAhPSBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpIHsKLSAg
ICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLi4ubWFya2VkUmFuZ2UgZmFpbGVkLiIpOwot
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXJCbG9jayhOU01ha2VSYW5nZShOU05vdEZvdW5k
LCAwKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgTlNSYW5nZSBy
ZXN1bHQgPSBlZGl0aW5nUmFuZ2VSZXN1bHQ7Ci0gICAgICAgIGlmIChyZXN1bHQubG9jYXRpb24g
PT0gTlNOb3RGb3VuZCkKLSAgICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLT4gbWFya2Vk
UmFuZ2UgcmV0dXJuZWQgKE5TTm90Rm91bmQsICVsbHUpIiwgcmVzdWx0Lmxlbmd0aCk7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLT4gbWFya2VkUmFuZ2Ug
cmV0dXJuZWQgKCVsbHUsICVsbHUpIiwgcmVzdWx0LmxvY2F0aW9uLCByZXN1bHQubGVuZ3RoKTsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXJCbG9jayhyZXN1bHQpOwotICAgIH0pOwotfQotCi0t
ICh2b2lkKWhhc01hcmtlZFRleHRXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCBo
YXNNYXJrZWRUZXh0KSljb21wbGV0aW9uSGFuZGxlclB0cgotewotICAgIFJldGFpblB0cjxpZD4g
Y29tcGxldGlvbkhhbmRsZXIgPSBhZG9wdE5TKFtjb21wbGV0aW9uSGFuZGxlclB0ciBjb3B5XSk7
Ci0KLSAgICBMT0coVGV4dElucHV0LCAiaGFzTWFya2VkVGV4dCIpOwotICAgIF9kYXRhLT5fcGFn
ZS0+Z2V0TWFya2VkUmFuZ2VBc3luYyhbY29tcGxldGlvbkhhbmRsZXJdKGNvbnN0IEVkaXRpbmdS
YW5nZSYgZWRpdGluZ1JhbmdlUmVzdWx0LCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJy
b3IpIHsKLSAgICAgICAgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyQmxvY2spKEJPT0wpID0gKHZv
aWQgKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyLmdldCgpOwotICAgICAgICBpZiAoZXJyb3Ig
IT0gV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKSB7Ci0gICAgICAgICAgICBMT0co
VGV4dElucHV0LCAiICAgIC4uLmhhc01hcmtlZFRleHQgZmFpbGVkLiIpOwotICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXJCbG9jayhOTyk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAg
IH0KLSAgICAgICAgQk9PTCBoYXNNYXJrZWRUZXh0ID0gZWRpdGluZ1JhbmdlUmVzdWx0LmxvY2F0
aW9uICE9IG5vdEZvdW5kOwotICAgICAgICBMT0coVGV4dElucHV0LCAiICAgIC0+IGhhc01hcmtl
ZFRleHQgcmV0dXJuZWQgJXUiLCBoYXNNYXJrZWRUZXh0KTsKLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXJCbG9jayhoYXNNYXJrZWRUZXh0KTsKLSAgICB9KTsKLX0KLQotLSAodm9pZClhdHRyaWJ1
dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZTooTlNSYW5nZSluc1JhbmdlIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkKF4pKE5TQXR0cmlidXRlZFN0cmluZyAqYXR0clN0cmluZywgTlNSYW5nZSBh
Y3R1YWxSYW5nZSkpY29tcGxldGlvbkhhbmRsZXJQdHIKLXsKLSAgICBSZXRhaW5QdHI8aWQ+IGNv
bXBsZXRpb25IYW5kbGVyID0gYWRvcHROUyhbY29tcGxldGlvbkhhbmRsZXJQdHIgY29weV0pOwot
Ci0gICAgTE9HKFRleHRJbnB1dCwgImF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9tUmFuZ2U6KCV1LCAl
dSkiLCBuc1JhbmdlLmxvY2F0aW9uLCBuc1JhbmdlLmxlbmd0aCk7Ci0gICAgX2RhdGEtPl9wYWdl
LT5hdHRyaWJ1dGVkU3Vic3RyaW5nRm9yQ2hhcmFjdGVyUmFuZ2VBc3luYyhuc1JhbmdlLCBbY29t
cGxldGlvbkhhbmRsZXJdKGNvbnN0IEF0dHJpYnV0ZWRTdHJpbmcmIHN0cmluZywgY29uc3QgRWRp
dGluZ1JhbmdlJiBhY3R1YWxSYW5nZSwgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9y
KSB7Ci0gICAgICAgIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlckJsb2NrKShOU0F0dHJpYnV0ZWRT
dHJpbmcgKiwgTlNSYW5nZSkgPSAodm9pZCAoXikoTlNBdHRyaWJ1dGVkU3RyaW5nICosIE5TUmFu
Z2UpKWNvbXBsZXRpb25IYW5kbGVyLmdldCgpOwotICAgICAgICBpZiAoZXJyb3IgIT0gV2ViS2l0
OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKSB7Ci0gICAgICAgICAgICBMT0coVGV4dElucHV0
LCAiICAgIC4uLmF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9tUmFuZ2UgZmFpbGVkLiIpOwotICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXJCbG9jaygwLCBOU01ha2VSYW5nZShOU05vdEZvdW5kLCAw
KSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgTE9HKFRleHRJbnB1
dCwgIiAgICAtPiBhdHRyaWJ1dGVkU3Vic3RyaW5nRnJvbVJhbmdlIHJldHVybmVkICVAIiwgW3N0
cmluZy5zdHJpbmcuZ2V0KCkgc3RyaW5nXSk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyQmxv
Y2soW1tzdHJpbmcuc3RyaW5nLmdldCgpIHJldGFpbl0gYXV0b3JlbGVhc2VdLCBhY3R1YWxSYW5n
ZSk7Ci0gICAgfSk7Ci19Ci0KLS0gKHZvaWQpZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2U6KE5T
UmFuZ2UpdGhlUmFuZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoTlNSZWN0IGZpcnN0UmVj
dCwgTlNSYW5nZSBhY3R1YWxSYW5nZSkpY29tcGxldGlvbkhhbmRsZXJQdHIKLXsKLSAgICBSZXRh
aW5QdHI8aWQ+IGNvbXBsZXRpb25IYW5kbGVyID0gYWRvcHROUyhbY29tcGxldGlvbkhhbmRsZXJQ
dHIgY29weV0pOwotCi0gICAgTE9HKFRleHRJbnB1dCwgImZpcnN0UmVjdEZvckNoYXJhY3RlclJh
bmdlOigldSwgJXUpIiwgdGhlUmFuZ2UubG9jYXRpb24sIHRoZVJhbmdlLmxlbmd0aCk7Ci0KLSAg
ICAvLyBKdXN0IHRvIG1hdGNoIE5TVGV4dFZpZXcncyBiZWhhdmlvci4gUmVncmVzc2lvbiB0ZXN0
cyBjYW5ub3QgZGV0ZWN0IHRoaXM7Ci0gICAgLy8gdG8gcmVwcm9kdWNlLCB1c2UgYSB0ZXN0IGFw
cGxpY2F0aW9uIGZyb20gaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY4
MgotICAgIC8vICh0eXBlIHNvbWV0aGluZzsgdHJ5IHJhbmdlcyAoMSwgLTEpIGFuZCAoMiwgLTEp
LgotICAgIGlmICgodGhlUmFuZ2UubG9jYXRpb24gKyB0aGVSYW5nZS5sZW5ndGggPCB0aGVSYW5n
ZS5sb2NhdGlvbikgJiYgKHRoZVJhbmdlLmxvY2F0aW9uICsgdGhlUmFuZ2UubGVuZ3RoICE9IDAp
KQotICAgICAgICB0aGVSYW5nZS5sZW5ndGggPSAwOwotCi0gICAgaWYgKHRoZVJhbmdlLmxvY2F0
aW9uID09IE5TTm90Rm91bmQpIHsKLSAgICAgICAgTE9HKFRleHRJbnB1dCwgIiAgICAtPiBOU1pl
cm9SZWN0Iik7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyUHRyKE5TWmVyb1JlY3QsIHRoZVJh
bmdlKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIF9kYXRhLT5fcGFnZS0+Zmlyc3RS
ZWN0Rm9yQ2hhcmFjdGVyUmFuZ2VBc3luYyh0aGVSYW5nZSwgW3NlbGYsIGNvbXBsZXRpb25IYW5k
bGVyXShjb25zdCBJbnRSZWN0JiByZWN0LCBjb25zdCBFZGl0aW5nUmFuZ2UmIGFjdHVhbFJhbmdl
LCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKLSAgICAgICAgdm9pZCAoXmNv
bXBsZXRpb25IYW5kbGVyQmxvY2spKE5TUmVjdCwgTlNSYW5nZSkgPSAodm9pZCAoXikoTlNSZWN0
LCBOU1JhbmdlKSljb21wbGV0aW9uSGFuZGxlci5nZXQoKTsKLSAgICAgICAgaWYgKGVycm9yICE9
IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkgewotICAgICAgICAgICAgTE9HKFRl
eHRJbnB1dCwgIiAgICAuLi5maXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSBmYWlsZWQuIik7Ci0g
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlckJsb2NrKE5TWmVyb1JlY3QsIE5TTWFrZVJhbmdl
KE5TTm90Rm91bmQsIDApKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAg
ICAgIE5TUmVjdCByZXN1bHRSZWN0ID0gW3NlbGYgY29udmVydFJlY3Q6cmVjdCB0b1ZpZXc6bmls
XTsKLSAgICAgICAgcmVzdWx0UmVjdCA9IFtzZWxmLndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVu
OnJlc3VsdFJlY3RdOwotCi0gICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLT4gZmlyc3RSZWN0
Rm9yQ2hhcmFjdGVyUmFuZ2UgcmV0dXJuZWQgKCVmLCAlZiwgJWYsICVmKSIsIHJlc3VsdFJlY3Qu
b3JpZ2luLngsIHJlc3VsdFJlY3Qub3JpZ2luLnksIHJlc3VsdFJlY3Quc2l6ZS53aWR0aCwgcmVz
dWx0UmVjdC5zaXplLmhlaWdodCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyQmxvY2socmVz
dWx0UmVjdCwgYWN0dWFsUmFuZ2UpOwotICAgIH0pOwotfQotCi0tICh2b2lkKWNoYXJhY3Rlcklu
ZGV4Rm9yUG9pbnQ6KE5TUG9pbnQpdGhlUG9pbnQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXiko
TlNVSW50ZWdlcikpY29tcGxldGlvbkhhbmRsZXJQdHIKLXsKLSAgICBSZXRhaW5QdHI8aWQ+IGNv
bXBsZXRpb25IYW5kbGVyID0gYWRvcHROUyhbY29tcGxldGlvbkhhbmRsZXJQdHIgY29weV0pOwot
Ci0gICAgTE9HKFRleHRJbnB1dCwgImNoYXJhY3RlckluZGV4Rm9yUG9pbnQ6KCVmLCAlZikiLCB0
aGVQb2ludC54LCB0aGVQb2ludC55KTsKLQotICAgIE5TV2luZG93ICp3aW5kb3cgPSBbc2VsZiB3
aW5kb3ddOwotCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgaWYgKHdp
bmRvdykKLSAgICAgICAgdGhlUG9pbnQgPSBbd2luZG93IGNvbnZlcnRTY3JlZW5Ub0Jhc2U6dGhl
UG9pbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotICAgIHRoZVBvaW50ID0gW3Nl
bGYgY29udmVydFBvaW50OnRoZVBvaW50IGZyb21WaWV3Om5pbF07ICAvLyB0aGUgcG9pbnQgaXMg
cmVsYXRpdmUgdG8gdGhlIG1haW4gZnJhbWUKLQotICAgIF9kYXRhLT5fcGFnZS0+Y2hhcmFjdGVy
SW5kZXhGb3JQb2ludEFzeW5jKEludFBvaW50KHRoZVBvaW50KSwgW2NvbXBsZXRpb25IYW5kbGVy
XSh1aW50NjRfdCByZXN1bHQsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewot
ICAgICAgICB2b2lkICheY29tcGxldGlvbkhhbmRsZXJCbG9jaykoTlNVSW50ZWdlcikgPSAodm9p
ZCAoXikoTlNVSW50ZWdlcikpY29tcGxldGlvbkhhbmRsZXIuZ2V0KCk7Ci0gICAgICAgIGlmIChl
cnJvciAhPSBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpIHsKLSAgICAgICAgICAg
IExPRyhUZXh0SW5wdXQsICIgICAgLi4uY2hhcmFjdGVySW5kZXhGb3JQb2ludCBmYWlsZWQuIik7
Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlckJsb2NrKDApOwotICAgICAgICAgICAgcmV0
dXJuOwotICAgICAgICB9Ci0gICAgICAgIGlmIChyZXN1bHQgPT0gbm90Rm91bmQpCi0gICAgICAg
ICAgICByZXN1bHQgPSBOU05vdEZvdW5kOwotICAgICAgICBMT0coVGV4dElucHV0LCAiICAgIC0+
IGNoYXJhY3RlckluZGV4Rm9yUG9pbnQgcmV0dXJuZWQgJWx1IiwgcmVzdWx0KTsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXJCbG9jayhyZXN1bHQpOwotICAgIH0pOworICAgIF9kYXRhLT5faW1w
bC0+aW5zZXJ0VGV4dChzdHJpbmcsIHJlcGxhY2VtZW50UmFuZ2UpOwogfQogCiAtIChOU1RleHRJ
bnB1dENvbnRleHQgKilpbnB1dENvbnRleHQKIHsKLSAgICBpZiAoX2RhdGEtPl9pbXBsLT5wbHVn
aW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpKSB7Ci0gICAgICAgIEFTU0VSVCghX2RhdGEt
Pl9jb2xsZWN0ZWRLZXlwcmVzc0NvbW1hbmRzKTsgLy8gU2hvdWxkIG5vdCBnZXQgaGVyZSBmcm9t
IC1faW50ZXJwcmV0S2V5RXZlbnQ6Y29tcGxldGlvbkhhbmRsZXI6LCB3ZSBvbmx5IHVzZSBXS1Rl
eHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIgYWZ0ZXIgZ2l2aW5nIHRoZSBwbHVnLWluIGEgY2hhbmNl
IHRvIGhhbmRsZSBrZXlkb3duIG5hdGl2ZWx5LgotICAgICAgICByZXR1cm4gW1tXS1RleHRJbnB1
dFdpbmRvd0NvbnRyb2xsZXIgc2hhcmVkVGV4dElucHV0V2luZG93Q29udHJvbGxlcl0gaW5wdXRD
b250ZXh0XTsKLSAgICB9Ci0KLSAgICAvLyBEaXNhYmxlIHRleHQgaW5wdXQgbWFjaGluZXJ5IHdo
ZW4gaW4gbm9uLWVkaXRhYmxlIGNvbnRlbnQuIEFuIGludmlzaWJsZSBpbmxpbmUgaW5wdXQgYXJl
YSBhZmZlY3RzIHBlcmZvcm1hbmNlLCBhbmQgY2FuIHByZXZlbnQgRXhwb3NlIGZyb20gd29ya2lu
Zy4KLSAgICBpZiAoIV9kYXRhLT5fcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJs
ZSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIHJldHVybiBbc3VwZXIgaW5wdXRDb250ZXh0
XTsKLX0KLQotLSAodm9pZCl1bm1hcmtUZXh0Ci17Ci0gICAgTE9HKFRleHRJbnB1dCwgInVubWFy
a1RleHQiKTsKLQotICAgIF9kYXRhLT5fcGFnZS0+Y29uZmlybUNvbXBvc2l0aW9uQXN5bmMoKTsK
LX0KLQotLSAodm9pZClzZXRNYXJrZWRUZXh0OihpZClzdHJpbmcgc2VsZWN0ZWRSYW5nZTooTlNS
YW5nZSlzZWxlY3RlZFJhbmdlIHJlcGxhY2VtZW50UmFuZ2U6KE5TUmFuZ2UpcmVwbGFjZW1lbnRS
YW5nZQotewotICAgIEJPT0wgaXNBdHRyaWJ1dGVkU3RyaW5nID0gW3N0cmluZyBpc0tpbmRPZkNs
YXNzOltOU0F0dHJpYnV0ZWRTdHJpbmcgY2xhc3NdXTsKLSAgICBBU1NFUlQoaXNBdHRyaWJ1dGVk
U3RyaW5nIHx8IFtzdHJpbmcgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSk7Ci0KLSAg
ICBMT0coVGV4dElucHV0LCAic2V0TWFya2VkVGV4dDpcIiVAXCIgc2VsZWN0ZWRSYW5nZTooJXUs
ICV1KSByZXBsYWNlbWVudFJhbmdlOigldSwgJXUpIiwgaXNBdHRyaWJ1dGVkU3RyaW5nID8gW3N0
cmluZyBzdHJpbmddIDogc3RyaW5nLCBzZWxlY3RlZFJhbmdlLmxvY2F0aW9uLCBzZWxlY3RlZFJh
bmdlLmxlbmd0aCwgcmVwbGFjZW1lbnRSYW5nZS5sb2NhdGlvbiwgcmVwbGFjZW1lbnRSYW5nZS5s
ZW5ndGgpOwotCi0gICAgVmVjdG9yPENvbXBvc2l0aW9uVW5kZXJsaW5lPiB1bmRlcmxpbmVzOwot
ICAgIE5TU3RyaW5nICp0ZXh0OwotCi0gICAgaWYgKGlzQXR0cmlidXRlZFN0cmluZykgewotICAg
ICAgICAvLyBGSVhNRTogV2UgaWdub3JlIG1vc3QgYXR0cmlidXRlcyBmcm9tIHRoZSBzdHJpbmcs
IHNvIGFuIGlucHV0IG1ldGhvZCBjYW5ub3Qgc3BlY2lmeSBlLmcuIGEgZm9udCBvciBhIGdseXBo
IHZhcmlhdGlvbi4KLSAgICAgICAgdGV4dCA9IFtzdHJpbmcgc3RyaW5nXTsKLSAgICAgICAgZXh0
cmFjdFVuZGVybGluZXMoc3RyaW5nLCB1bmRlcmxpbmVzKTsKLSAgICB9IGVsc2UKLSAgICAgICAg
dGV4dCA9IHN0cmluZzsKLQotICAgIGlmIChfZGF0YS0+X2ltcGwtPmluU2VjdXJlSW5wdXRTdGF0
ZSgpKSB7Ci0gICAgICAgIC8vIEluIHBhc3N3b3JkIGZpZWxkcywgd2Ugb25seSBhbGxvdyBBU0NJ
SSBkZWFkIGtleXMsIGFuZCBkb24ndCBhbGxvdyBpbmxpbmUgaW5wdXQsIG1hdGNoaW5nIE5TU2Vj
dXJlVGV4dElucHV0RmllbGQuCi0gICAgICAgIC8vIEFsbG93aW5nIEFTQ0lJIGRlYWQga2V5cyBp
cyBuZWNlc3NhcnkgdG8gZW5hYmxlIGZ1bGwgUm9tYW4gaW5wdXQgd2hlbiB1c2luZyBhIFZpZXRu
YW1lc2Uga2V5Ym9hcmQuCi0gICAgICAgIEFTU0VSVCghX2RhdGEtPl9wYWdlLT5lZGl0b3JTdGF0
ZSgpLmhhc0NvbXBvc2l0aW9uKTsKLSAgICAgICAgX2RhdGEtPl9pbXBsLT5ub3RpZnlJbnB1dENv
bnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uKCk7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgc3RvcmUgdGhlIGNvbW1hbmQgdG8gaGFuZGxlIGl0IGFmdGVyIERPTSBldmVudCBwcm9j
ZXNzaW5nLCBhcyBpdCdzIHJlZ3VsYXIga2V5Ym9hcmQgaW5wdXQgbm93LCBub3QgYSBjb21wb3Np
dGlvbi4KLSAgICAgICAgaWYgKFt0ZXh0IGxlbmd0aF0gPT0gMSAmJiBpc0FTQ0lJKFt0ZXh0IGNo
YXJhY3RlckF0SW5kZXg6MF0pKQotICAgICAgICAgICAgX2RhdGEtPl9wYWdlLT5pbnNlcnRUZXh0
QXN5bmModGV4dCwgcmVwbGFjZW1lbnRSYW5nZSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IE5TQmVlcCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgX2RhdGEtPl9wYWdlLT5z
ZXRDb21wb3NpdGlvbkFzeW5jKHRleHQsIHVuZGVybGluZXMsIHNlbGVjdGVkUmFuZ2UsIHJlcGxh
Y2VtZW50UmFuZ2UpOwotfQotCi0vLyBTeW5jaHJvbm91cyBOU1RleHRJbnB1dENsaWVudCBpcyBz
dGlsbCBpbXBsZW1lbnRlZCB0byBjYXRjaCBzcHVyaW91cyBzeW5jIGNhbGxzLiBSZW1vdmUgd2hl
biB0aGF0IGlzIG5vIGxvbmdlciBuZWVkZWQuCi0KLS0gKE5TUmFuZ2Upc2VsZWN0ZWRSYW5nZSBO
T19SRVRVUk5fRFVFX1RPX0FTU0VSVAotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IHJldHVybiBOU01ha2VSYW5nZShOU05vdEZvdW5kLCAwKTsKLX0KLQotLSAoQk9PTCloYXNNYXJr
ZWRUZXh0IE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUCi17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgcmV0dXJuIE5POwotfQotCi0tIChOU1JhbmdlKW1hcmtlZFJhbmdlIE5PX1JFVFVS
Tl9EVUVfVE9fQVNTRVJUCi17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJu
IE5TTWFrZVJhbmdlKE5TTm90Rm91bmQsIDApOwotfQotCi0tIChOU0F0dHJpYnV0ZWRTdHJpbmcg
KilhdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZTooTlNSYW5nZSluc1JhbmdlIGFj
dHVhbFJhbmdlOihOU1JhbmdlUG9pbnRlcilhY3R1YWxSYW5nZSBOT19SRVRVUk5fRFVFX1RPX0FT
U0VSVAotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiBuaWw7Ci19Ci0K
LS0gKE5TVUludGVnZXIpY2hhcmFjdGVySW5kZXhGb3JQb2ludDooTlNQb2ludCl0aGVQb2ludCBO
T19SRVRVUk5fRFVFX1RPX0FTU0VSVAotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IHJldHVybiAwOwotfQotCi0tIChOU1JlY3QpZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2U6KE5T
UmFuZ2UpdGhlUmFuZ2UgYWN0dWFsUmFuZ2U6KE5TUmFuZ2VQb2ludGVyKWFjdHVhbFJhbmdlIE5P
X1JFVFVSTl9EVUVfVE9fQVNTRVJUCi17IAotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
IHJldHVybiBOU01ha2VSZWN0KDAsIDAsIDAsIDApOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwt
PmlucHV0Q29udGV4dCgpOwogfQogCiAtIChCT09MKXBlcmZvcm1LZXlFcXVpdmFsZW50OihOU0V2
ZW50ICopZXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVu
dHMoKSkKLSAgICAgICAgcmV0dXJuIE5POwotCi0gICAgLy8gVGhlcmUncyBhIGNoYW5jZSB0aGF0
IHJlc3BvbmRpbmcgdG8gdGhpcyBldmVudCB3aWxsIHJ1biBhIG5lc3RlZCBldmVudCBsb29wLCBh
bmQKLSAgICAvLyBmZXRjaGluZyBhIG5ldyBldmVudCBtaWdodCByZWxlYXNlIHRoZSBvbGQgb25l
LiBSZXRhaW5pbmcgYW5kIHRoZW4gYXV0b3JlbGVhc2luZwotICAgIC8vIHRoZSBjdXJyZW50IGV2
ZW50IHByZXZlbnRzIHRoYXQgZnJvbSBjYXVzaW5nIGEgcHJvYmxlbSBpbnNpZGUgV2ViS2l0IG9y
IEFwcEtpdCBjb2RlLgotICAgIFtbZXZlbnQgcmV0YWluXSBhdXRvcmVsZWFzZV07Ci0KLSAgICAv
LyBXZSBnZXQgRXNjIGtleSBoZXJlIGFmdGVyIHByb2Nlc3NpbmcgZWl0aGVyIEVzYyBvciBDbWQr
cGVyaW9kLiBUaGUgZm9ybWVyIHN0YXJ0cyBhcyBhIGtleURvd24sIGFuZCB0aGUgbGF0dGVyIHN0
YXJ0cyBhcyBhIGtleSBlcXVpdmFsZW50LAotICAgIC8vIGJ1dCBib3RoIGdldCB0cmFuc2Zvcm1l
ZCB0byBhIGNhbmNlbE9wZXJhdGlvbjogY29tbWFuZCwgZXhlY3V0aW5nIHdoaWNoIHBhc3NlcyBh
biBFc2Mga2V5IGV2ZW50IHRvIC1wZXJmb3JtS2V5RXF1aXZhbGVudDouCi0gICAgLy8gRG9uJ3Qg
aW50ZXJwcmV0IHRoaXMgZXZlbnQgYWdhaW4sIGF2b2lkaW5nIHJlLWVudHJhbmN5IGFuZCBpbmZp
bml0ZSBsb29wcy4KLSAgICBpZiAoW1tldmVudCBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnNd
IGlzRXF1YWxUb1N0cmluZzpAIlxlIl0gJiYgIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0Rl
dmljZUluZGVwZW5kZW50TW9kaWZpZXJGbGFnc01hc2spKQotICAgICAgICByZXR1cm4gW3N1cGVy
IHBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKLQotICAgIGlmIChfZGF0YS0+X2tleURvd25F
dmVudEJlaW5nUmVzZW50KSB7Ci0gICAgICAgIC8vIFdlYkNvcmUgaGFzIGFscmVhZHkgc2VlbiB0
aGUgZXZlbnQsIG5vIG5lZWQgZm9yIGN1c3RvbSBwcm9jZXNzaW5nLgotICAgICAgICAvLyBOb3Rl
IHRoYXQgd2UgY2FuIGdldCBtdWx0aXBsZSBldmVudHMgZm9yIGVhY2ggZXZlbnQgYmVpbmcgcmUt
c2VudC4gRm9yIGV4YW1wbGUsIGZvciBDbWQrJz0nIEFwcEtpdAotICAgICAgICAvLyBmaXJzdCBw
ZXJmb3JtcyB0aGUgb3JpZ2luYWwga2V5IGVxdWl2YWxlbnQsIGFuZCBpZiB0aGF0IGlzbid0IGhh
bmRsZWQsIGl0IGRpc3BhdGNoZXMgYSBzeW50aGV0aWMgQ21kKycrJy4KLSAgICAgICAgcmV0dXJu
IFtzdXBlciBwZXJmb3JtS2V5RXF1aXZhbGVudDpldmVudF07Ci0gICAgfQotCi0gICAgQVNTRVJU
KGV2ZW50ID09IFtOU0FwcCBjdXJyZW50RXZlbnRdKTsKLQotICAgIF9kYXRhLT5faW1wbC0+ZGlz
YWJsZUNvbXBsZXhUZXh0SW5wdXRJZk5lY2Vzc2FyeSgpOwotCi0gICAgLy8gUGFzcyBrZXkgY29t
Ym9zIHRocm91Z2ggV2ViQ29yZSBpZiB0aGVyZSBpcyBhIGtleSBiaW5kaW5nIGF2YWlsYWJsZSBm
b3IKLSAgICAvLyB0aGlzIGV2ZW50LiBUaGlzIGxldHMgd2VicGFnZXMgaGF2ZSBhIGNyYWNrIGF0
IGludGVyY2VwdGluZyBrZXktbW9kaWZpZWQga2V5cHJlc3Nlcy4KLSAgICAvLyBGSVhNRTogV2h5
IGlzIHRoZSBmaXJzdFJlc3BvbmRlciBjaGVjayBuZWVkZWQ/Ci0gICAgaWYgKHNlbGYgPT0gW1tz
ZWxmIHdpbmRvd10gZmlyc3RSZXNwb25kZXJdKSB7Ci0gICAgICAgIFtzZWxmIF9pbnRlcnByZXRL
ZXlFdmVudDpldmVudCBjb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRo
b2QsIGNvbnN0IFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykgewotICAgICAgICAg
ICAgX2RhdGEtPl9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZl
bnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykpOwotICAgICAgICB9XTsK
LSAgICAgICAgcmV0dXJuIFlFUzsKLSAgICB9Ci0gICAgCi0gICAgcmV0dXJuIFtzdXBlciBwZXJm
b3JtS2V5RXF1aXZhbGVudDpldmVudF07CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+cGVyZm9y
bUtleUVxdWl2YWxlbnQoZXZlbnQpOwogfQogCiAtICh2b2lkKWtleVVwOihOU0V2ZW50ICopdGhl
RXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMoKSkK
LSAgICAgICAgcmV0dXJuOwotCi0gICAgTE9HKFRleHRJbnB1dCwgImtleVVwOiVwICVAIiwgdGhl
RXZlbnQsIHRoZUV2ZW50KTsKLQotICAgIFtzZWxmIF9pbnRlcnByZXRLZXlFdmVudDp0aGVFdmVu
dCBjb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZl
Y3RvcjxLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykgewotICAgICAgICBBU1NFUlQoIWhhbmRs
ZWRCeUlucHV0TWV0aG9kIHx8IGNvbW1hbmRzLmlzRW1wdHkoKSk7Ci0gICAgICAgIF9kYXRhLT5f
cGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KHRoZUV2ZW50
LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFuZHMpKTsKLSAgICB9XTsKKyAgICBfZGF0YS0+
X2ltcGwtPmtleVVwKHRoZUV2ZW50KTsKIH0KIAogLSAodm9pZClrZXlEb3duOihOU0V2ZW50ICop
dGhlRXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMo
KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgTE9HKFRleHRJbnB1dCwgImtleURvd246JXAgJUAl
cyIsIHRoZUV2ZW50LCB0aGVFdmVudCwgKHRoZUV2ZW50ID09IF9kYXRhLT5fa2V5RG93bkV2ZW50
QmVpbmdSZXNlbnQpID8gIiAocmUtc2VudCkiIDogIiIpOwotCi0gICAgaWYgKF9kYXRhLT5faW1w
bC0+dHJ5SGFuZGxlUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURvd24odGhlRXZlbnQpKSB7Ci0g
ICAgICAgIExPRyhUZXh0SW5wdXQsICIuLi5oYW5kbGVkIGJ5IHBsdWctaW4iKTsKLSAgICAgICAg
cmV0dXJuOwotICAgIH0KLQotICAgIC8vIFdlIGNvdWxkIGJlIHJlY2VpdmluZyBhIGtleSBkb3du
IGZyb20gQXBwS2l0IGlmIHdlIGhhdmUgcmUtc2VudCBhbiBldmVudAotICAgIC8vIHRoYXQgbWFw
cyB0byBhbiBhY3Rpb24gdGhhdCBpcyBjdXJyZW50bHkgdW5hdmFpbGFibGUgKGZvciBleGFtcGxl
IGEgY29weSB3aGVuCi0gICAgLy8gdGhlcmUgaXMgbm8gcmFuZ2Ugc2VsZWN0aW9uKS4KLSAgICAv
LyBJZiB0aGlzIGlzIHRoZSBjYXNlIHdlIHNob3VsZCBpZ25vcmUgdGhlIGtleSBkb3duLgotICAg
IGlmIChfZGF0YS0+X2tleURvd25FdmVudEJlaW5nUmVzZW50ID09IHRoZUV2ZW50KSB7Ci0gICAg
ICAgIFtzdXBlciBrZXlEb3duOnRoZUV2ZW50XTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQot
ICAgIFtzZWxmIF9pbnRlcnByZXRLZXlFdmVudDp0aGVFdmVudCBjb21wbGV0aW9uSGFuZGxlcjpe
KEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+
JiBjb21tYW5kcykgewotICAgICAgICBBU1NFUlQoIWhhbmRsZWRCeUlucHV0TWV0aG9kIHx8IGNv
bW1hbmRzLmlzRW1wdHkoKSk7Ci0gICAgICAgIF9kYXRhLT5fcGFnZS0+aGFuZGxlS2V5Ym9hcmRF
dmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KHRoZUV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhv
ZCwgY29tbWFuZHMpKTsKLSAgICB9XTsKKyAgICBfZGF0YS0+X2ltcGwtPmtleURvd24odGhlRXZl
bnQpOwogfQogCiAtICh2b2lkKWZsYWdzQ2hhbmdlZDooTlNFdmVudCAqKXRoZUV2ZW50CiB7Ci0g
ICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIExPRyhUZXh0SW5wdXQsICJmbGFnc0NoYW5nZWQ6JXAgJUAiLCB0aGVFdmVu
dCwgdGhlRXZlbnQpOwotCi0gICAgdW5zaWduZWQgc2hvcnQga2V5Q29kZSA9IFt0aGVFdmVudCBr
ZXlDb2RlXTsKLQotICAgIC8vIERvbid0IG1ha2UgYW4gZXZlbnQgZnJvbSB0aGUgbnVtIGxvY2sg
YW5kIGZ1bmN0aW9uIGtleXMKLSAgICBpZiAoIWtleUNvZGUgfHwga2V5Q29kZSA9PSAxMCB8fCBr
ZXlDb2RlID09IDYzKQotICAgICAgICByZXR1cm47Ci0KLSAgICBbc2VsZiBfaW50ZXJwcmV0S2V5
RXZlbnQ6dGhlRXZlbnQgY29tcGxldGlvbkhhbmRsZXI6XihCT09MIGhhbmRsZWRCeUlucHV0TWV0
aG9kLCBjb25zdCBWZWN0b3I8S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKLSAgICAgICAg
X2RhdGEtPl9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQo
dGhlRXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykpOwotICAgIH1dOwotfQot
Ci0jZWxzZSAvLyBVU0UoQVNZTkNfTlNURVhUSU5QVVRDTElFTlQpCi0KLS0gKEJPT0wpX2ludGVy
cHJldEtleUV2ZW50OihOU0V2ZW50ICopZXZlbnQgc2F2aW5nQ29tbWFuZHNUbzooVmVjdG9yPFdl
YkNvcmU6OktleXByZXNzQ29tbWFuZD4mKWNvbW1hbmRzCi17Ci0gICAgQVNTRVJUKCFfZGF0YS0+
X2ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMpOwotICAgIEFTU0VSVChjb21tYW5kcy5pc0Vt
cHR5KCkpOwotCi0gICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0ZsYWdzQ2hhbmdlZCkKLSAgICAg
ICAgcmV0dXJuIE5POwotCi0gICAgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyBw
YXJhbWV0ZXJzOwotICAgIHBhcmFtZXRlcnMuZXZlbnRJbnRlcnByZXRhdGlvbkhhZFNpZGVFZmZl
Y3RzID0gZmFsc2U7Ci0gICAgcGFyYW1ldGVycy5leGVjdXRpbmdTYXZlZEtleXByZXNzQ29tbWFu
ZHMgPSBmYWxzZTsKLSAgICAvLyBXZSBhc3N1bWUgdGhhdCBhbiBpbnB1dCBtZXRob2QgaGFzIGNv
bnN1bWVkIHRoZSBldmVudCwgYW5kIG9ubHkgY2hhbmdlIHRoaXMgYXNzdW1wdGlvbiBpZiBvbmUg
b2YgdGhlIE5TVGV4dElucHV0IG1ldGhvZHMgaXMgY2FsbGVkLgotICAgIC8vIFdlIGFzc3VtZSB0
aGUgSU0gd2lsbCAqbm90KiBjb25zdW1lIGhvdGtleSBzZXF1ZW5jZXMuCi0gICAgcGFyYW1ldGVy
cy5jb25zdW1lZEJ5SU0gPSAhKFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TQ29tbWFuZEtleU1h
c2spOwotICAgIHBhcmFtZXRlcnMuY29tbWFuZHMgPSAmY29tbWFuZHM7Ci0gICAgX2RhdGEtPl9p
bnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzID0gJnBhcmFtZXRlcnM7Ci0KLSAgICBMT0coVGV4
dElucHV0LCAiLT4gaW50ZXJwcmV0S2V5RXZlbnRzOiVwICVAIiwgZXZlbnQsIGV2ZW50KTsKLSAg
ICBbc2VsZiBpbnRlcnByZXRLZXlFdmVudHM6W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0OmV2ZW50
XV07Ci0KLSAgICBfZGF0YS0+X2ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgPSBudWxscHRy
OwotCi0gICAgLy8gQW4gaW5wdXQgbWV0aG9kIG1heSBjb25zdW1lIGFuIGV2ZW50IGFuZCBub3Qg
dGVsbCB1cyAoZS5nLiB3aGVuIGRpc3BsYXlpbmcgYSBjYW5kaWRhdGUgd2luZG93KSwKLSAgICAv
LyBpbiB3aGljaCBjYXNlIHdlIHNob3VsZCBub3QgYnViYmxlIHRoZSBldmVudCB1cCB0aGUgRE9N
LgotICAgIGlmIChwYXJhbWV0ZXJzLmNvbnN1bWVkQnlJTSkgewotICAgICAgICBBU1NFUlQoY29t
bWFuZHMuaXNFbXB0eSgpKTsKLSAgICAgICAgTE9HKFRleHRJbnB1dCwgIi4uLmV2ZW50ICVwIHdh
cyBjb25zdW1lZCBieSBhbiBpbnB1dCBtZXRob2QiLCBldmVudCk7Ci0gICAgICAgIHJldHVybiBZ
RVM7Ci0gICAgfQotCi0gICAgTE9HKFRleHRJbnB1dCwgIi4uLmludGVycHJldEtleUV2ZW50cyBm
b3IgZXZlbnQgJXAgZG9uZSwgcmV0dXJucyAlZCIsIGV2ZW50LCBwYXJhbWV0ZXJzLmV2ZW50SW50
ZXJwcmV0YXRpb25IYWRTaWRlRWZmZWN0cyk7Ci0KLSAgICAvLyBJZiB3ZSBoYXZlIGFscmVhZHkg
ZXhlY3V0ZWQgYWxsIG9yIHNvbWUgb2YgdGhlIGNvbW1hbmRzLCB0aGUgZXZlbnQgaXMgImhhbmRs
ZWQiLiBOb3RlIHRoYXQgdGhlcmUgYXJlIGFkZGl0aW9uYWwgY2hlY2tzIG9uIHdlYiBwcm9jZXNz
IHNpZGUuCi0gICAgcmV0dXJuIHBhcmFtZXRlcnMuZXZlbnRJbnRlcnByZXRhdGlvbkhhZFNpZGVF
ZmZlY3RzOwotfQotCi0tICh2b2lkKV9leGVjdXRlU2F2ZWRLZXlwcmVzc0NvbW1hbmRzCi17Ci0g
ICAgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyogcGFyYW1ldGVycyA9IF9kYXRh
LT5faW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVyczsKLSAgICBpZiAoIXBhcmFtZXRlcnMgfHwg
cGFyYW1ldGVycy0+Y29tbWFuZHMtPmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
Ly8gV2UgY291bGQgYmUgY2FsbGVkIGFnYWluIGlmIHRoZSBleGVjdXRpb24gb2Ygb25lIGNvbW1h
bmQgdHJpZ2dlcnMgYSBjYWxsIHRvIHNlbGVjdGVkUmFuZ2UuCi0gICAgLy8gSW4gdGhpcyBjYXNl
LCB0aGUgc3RhdGUgaXMgdXAgdG8gZGF0ZSwgYW5kIHdlIGRvbid0IG5lZWQgdG8gZXhlY3V0ZSBh
bnkgbW9yZSBzYXZlZCBjb21tYW5kcyB0byByZXR1cm4gYSByZXN1bHQuCi0gICAgaWYgKHBhcmFt
ZXRlcnMtPmV4ZWN1dGluZ1NhdmVkS2V5cHJlc3NDb21tYW5kcykKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgTE9HKFRleHRJbnB1dCwgIkV4ZWN1dGluZyAldSBzYXZlZCBrZXlwcmVzcyBjb21tYW5k
cy4uLiIsIHBhcmFtZXRlcnMtPmNvbW1hbmRzLT5zaXplKCkpOwotCi0gICAgcGFyYW1ldGVycy0+
ZXhlY3V0aW5nU2F2ZWRLZXlwcmVzc0NvbW1hbmRzID0gdHJ1ZTsKLSAgICBwYXJhbWV0ZXJzLT5l
dmVudEludGVycHJldGF0aW9uSGFkU2lkZUVmZmVjdHMgfD0gX2RhdGEtPl9wYWdlLT5leGVjdXRl
S2V5cHJlc3NDb21tYW5kcygqcGFyYW1ldGVycy0+Y29tbWFuZHMpOwotICAgIHBhcmFtZXRlcnMt
PmNvbW1hbmRzLT5jbGVhcigpOwotICAgIHBhcmFtZXRlcnMtPmV4ZWN1dGluZ1NhdmVkS2V5cHJl
c3NDb21tYW5kcyA9IGZhbHNlOwotCi0gICAgTE9HKFRleHRJbnB1dCwgIi4uLmRvbmUgZXhlY3V0
aW5nIHNhdmVkIGtleXByZXNzIGNvbW1hbmRzLiIpOwotfQotCi0tICh2b2lkKWRvQ29tbWFuZEJ5
U2VsZWN0b3I6KFNFTClzZWxlY3RvcgotewotICAgIExPRyhUZXh0SW5wdXQsICJkb0NvbW1hbmRC
eVNlbGVjdG9yOlwiJXNcIiIsIHNlbF9nZXROYW1lKHNlbGVjdG9yKSk7Ci0KLSAgICBXS1ZpZXdJ
bnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzID0gX2RhdGEtPl9pbnRlcnBy
ZXRLZXlFdmVudHNQYXJhbWV0ZXJzOwotICAgIGlmIChwYXJhbWV0ZXJzKQotICAgICAgICBwYXJh
bWV0ZXJzLT5jb25zdW1lZEJ5SU0gPSBmYWxzZTsKLQotICAgIC8vIEFzIGluIGluc2VydFRleHQ6
cmVwbGFjZW1lbnRSYW5nZTosIHdlIGFzc3VtZSB0aGF0IHRoZSBjYWxsIGNvbWVzIGZyb20gYW4g
aW5wdXQgbWV0aG9kIGlmIHRoZXJlIGlzIG1hcmtlZCB0ZXh0LgotICAgIGJvb2wgaXNGcm9tSW5w
dXRNZXRob2QgPSBfZGF0YS0+X3BhZ2UtPmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb247Ci0K
LSAgICBpZiAocGFyYW1ldGVycyAmJiAhaXNGcm9tSW5wdXRNZXRob2QpIHsKLSAgICAgICAgS2V5
cHJlc3NDb21tYW5kIGNvbW1hbmQoTlNTdHJpbmdGcm9tU2VsZWN0b3Ioc2VsZWN0b3IpKTsKLSAg
ICAgICAgcGFyYW1ldGVycy0+Y29tbWFuZHMtPmFwcGVuZChjb21tYW5kKTsKLSAgICAgICAgTE9H
KFRleHRJbnB1dCwgIi4uLnN0b3JlZCIpOwotICAgICAgICBfZGF0YS0+X3BhZ2UtPnJlZ2lzdGVy
S2V5cHJlc3NDb21tYW5kTmFtZShjb21tYW5kLmNvbW1hbmROYW1lKTsKLSAgICB9IGVsc2Ugewot
ICAgICAgICAvLyBGSVhNRTogU2VuZCB0aGUgY29tbWFuZCB0byBFZGl0b3Igc3luY2hyb25vdXNs
eSBhbmQgb25seSBzZW5kIGl0IGFsb25nIHRoZQotICAgICAgICAvLyByZXNwb25kZXIgY2hhaW4g
aWYgaXQncyBhIHNlbGVjdG9yIHRoYXQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhbiBlZGl0aW5n
IGNvbW1hbmQuCi0gICAgICAgIFtzdXBlciBkb0NvbW1hbmRCeVNlbGVjdG9yOnNlbGVjdG9yXTsK
LSAgICB9Ci19Ci0KLS0gKHZvaWQpaW5zZXJ0VGV4dDooaWQpc3RyaW5nCi17Ci0gICAgLy8gVW5s
aWtlIGFuIE5TVGV4dElucHV0Q2xpZW50IHZhcmlhbnQgd2l0aCByZXBsYWNlbWVudFJhbmdlLCB0
aGlzIE5TUmVzcG9uZGVyIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiB0aGVyZSBpcyBubyBpbnB1dCBj
b250ZXh0LAotICAgIC8vIHNvIHRleHQgaW5wdXQgcHJvY2Vzc2luZyBpc24ndCBwZXJmb3JtZWQu
IFdlIGFyZSBub3QgZ29pbmcgdG8gYWN0dWFsbHkgaW5zZXJ0IGFueSB0ZXh0IGluIHRoYXQgY2Fz
ZSwgYnV0IHNhdmluZyBhbiBpbnNlcnRUZXh0Ci0gICAgLy8gY29tbWFuZCBlbnN1cmVzIHRoYXQg
YSBrZXlwcmVzcyBldmVudCBpcyBkaXNwYXRjaGVkIGFzIGFwcHJvcHJpYXRlLgotICAgIFtzZWxm
IGluc2VydFRleHQ6c3RyaW5nIHJlcGxhY2VtZW50UmFuZ2U6TlNNYWtlUmFuZ2UoTlNOb3RGb3Vu
ZCwgMCldOworICAgIF9kYXRhLT5faW1wbC0+ZmxhZ3NDaGFuZ2VkKHRoZUV2ZW50KTsKIH0KIAot
LSAodm9pZClpbnNlcnRUZXh0OihpZClzdHJpbmcgcmVwbGFjZW1lbnRSYW5nZTooTlNSYW5nZSly
ZXBsYWNlbWVudFJhbmdlCistICh2b2lkKXNldE1hcmtlZFRleHQ6KGlkKXN0cmluZyBzZWxlY3Rl
ZFJhbmdlOihOU1JhbmdlKW5ld1NlbGVjdGVkUmFuZ2UgcmVwbGFjZW1lbnRSYW5nZTooTlNSYW5n
ZSlyZXBsYWNlbWVudFJhbmdlCiB7Ci0gICAgQk9PTCBpc0F0dHJpYnV0ZWRTdHJpbmcgPSBbc3Ry
aW5nIGlzS2luZE9mQ2xhc3M6W05TQXR0cmlidXRlZFN0cmluZyBjbGFzc11dOwotICAgIEFTU0VS
VChpc0F0dHJpYnV0ZWRTdHJpbmcgfHwgW3N0cmluZyBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBj
bGFzc11dKTsKLQotICAgIGlmIChyZXBsYWNlbWVudFJhbmdlLmxvY2F0aW9uICE9IE5TTm90Rm91
bmQpCi0gICAgICAgIExPRyhUZXh0SW5wdXQsICJpbnNlcnRUZXh0OlwiJUBcIiByZXBsYWNlbWVu
dFJhbmdlOigldSwgJXUpIiwgaXNBdHRyaWJ1dGVkU3RyaW5nID8gW3N0cmluZyBzdHJpbmddIDog
c3RyaW5nLCByZXBsYWNlbWVudFJhbmdlLmxvY2F0aW9uLCByZXBsYWNlbWVudFJhbmdlLmxlbmd0
aCk7Ci0gICAgZWxzZQotICAgICAgICBMT0coVGV4dElucHV0LCAiaW5zZXJ0VGV4dDpcIiVAXCIi
LCBpc0F0dHJpYnV0ZWRTdHJpbmcgPyBbc3RyaW5nIHN0cmluZ10gOiBzdHJpbmcpOwotICAgIFdL
Vmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMqIHBhcmFtZXRlcnMgPSBfZGF0YS0+X2lu
dGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnM7Ci0gICAgaWYgKHBhcmFtZXRlcnMpCi0gICAgICAg
IHBhcmFtZXRlcnMtPmNvbnN1bWVkQnlJTSA9IGZhbHNlOwotCi0gICAgTlNTdHJpbmcgKnRleHQ7
Ci0gICAgYm9vbCBpc0Zyb21JbnB1dE1ldGhvZCA9IF9kYXRhLT5fcGFnZS0+ZWRpdG9yU3RhdGUo
KS5oYXNDb21wb3NpdGlvbjsKLQotICAgIFZlY3RvcjxUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2U+
IGRpY3RhdGlvbkFsdGVybmF0aXZlczsKLQotICAgIGlmIChpc0F0dHJpYnV0ZWRTdHJpbmcpIHsK
LSNpZiBVU0UoRElDVEFUSU9OX0FMVEVSTkFUSVZFUykKLSAgICAgICAgY29sbGVjdERpY3RhdGlv
blRleHRBbHRlcm5hdGl2ZXMoc3RyaW5nLCBkaWN0YXRpb25BbHRlcm5hdGl2ZXMpOwotI2VuZGlm
Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBpZ25vcmUgbW9zdCBhdHRyaWJ1dGVzIGZyb20gdGhlIHN0
cmluZywgc28gZm9yIGV4YW1wbGUgaW5zZXJ0aW5nIGZyb20gQ2hhcmFjdGVyIFBhbGV0dGUgbG9z
ZXMgZm9udCBhbmQgZ2x5cGggdmFyaWF0aW9uIGRhdGEuCi0gICAgICAgIHRleHQgPSBbc3RyaW5n
IHN0cmluZ107Ci0gICAgfSBlbHNlCi0gICAgICAgIHRleHQgPSBzdHJpbmc7Ci0KLSAgICAvLyBp
bnNlcnRUZXh0IGNhbiBiZSBjYWxsZWQgZm9yIHNldmVyYWwgcmVhc29uczoKLSAgICAvLyAtIElm
IGl0J3MgZnJvbSBub3JtYWwga2V5IGV2ZW50IHByb2Nlc3NpbmcgKGluY2x1ZGluZyBrZXkgYmlu
ZGluZ3MpLCB3ZSBtYXkgbmVlZCB0byBzYXZlIHRoZSBhY3Rpb24gdG8gcGVyZm9ybSBpdCBsYXRl
ci4KLSAgICAvLyAtIElmIGl0J3MgZnJvbSBhbiBpbnB1dCBtZXRob2QsIHRoZW4gd2Ugc2hvdWxk
IGluc2VydCB0aGUgdGV4dCBub3cuIFdlIGFzc3VtZSBpdCdzIGZyb20gdGhlIGlucHV0IG1ldGhv
ZCBpZiB3ZSBoYXZlIG1hcmtlZCB0ZXh0LgotICAgIC8vIEZJWE1FOiBJbiB0aGVvcnksIHRoaXMg
Y291bGQgYmUgd3JvbmcgZm9yIHNvbWUgaW5wdXQgbWV0aG9kcywgc28gd2Ugc2hvdWxkIHRyeSB0
byBmaW5kIGFub3RoZXIgd2F5IHRvIGRldGVybWluZSBpZiB0aGUgY2FsbCBpcyBmcm9tIHRoZSBp
bnB1dCBtZXRob2QuCi0gICAgLy8gLSBJZiBpdCdzIHNlbnQgb3V0c2lkZSBvZiBrZXlib2FyZCBl
dmVudCBwcm9jZXNzaW5nIChlLmcuIGZyb20gQ2hhcmFjdGVyIFZpZXdlciwgb3Igd2hlbiBjb25m
aXJtaW5nIGFuIGlubGluZSBpbnB1dCBhcmVhIHdpdGggYSBtb3VzZSksCi0gICAgLy8gdGhlbiB3
ZSBhbHNvIGV4ZWN1dGUgaXQgaW1tZWRpYXRlbHksIGFzIHRoZXJlIHdpbGwgYmUgbm8gb3RoZXIg
Y2hhbmNlLgotICAgIGlmIChwYXJhbWV0ZXJzICYmICFpc0Zyb21JbnB1dE1ldGhvZCkgewotICAg
ICAgICAvLyBGSVhNRTogSGFuZGxlIHJlcGxhY2VtZW50UmFuZ2UgaW4gdGhpcyBjYXNlLCB0b28u
IEl0J3Mga25vd24gdG8gb2NjdXIgaW4gcHJhY3RpY2Ugd2hlbiBjYW5jZWxpbmcgUHJlc3MgYW5k
IEhvbGQgKHNlZSA8cmRhcjovLzExOTQwNjcwPikuCi0gICAgICAgIEFTU0VSVChyZXBsYWNlbWVu
dFJhbmdlLmxvY2F0aW9uID09IE5TTm90Rm91bmQpOwotICAgICAgICBLZXlwcmVzc0NvbW1hbmQg
Y29tbWFuZCgiaW5zZXJ0VGV4dDoiLCB0ZXh0KTsKLSAgICAgICAgcGFyYW1ldGVycy0+Y29tbWFu
ZHMtPmFwcGVuZChjb21tYW5kKTsKLSAgICAgICAgX2RhdGEtPl9wYWdlLT5yZWdpc3RlcktleXBy
ZXNzQ29tbWFuZE5hbWUoY29tbWFuZC5jb21tYW5kTmFtZSk7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICBTdHJpbmcgZXZlbnRUZXh0ID0gdGV4dDsKLSAgICBldmVudFRleHQucmVwbGFj
ZShOU0JhY2tUYWJDaGFyYWN0ZXIsIE5TVGFiQ2hhcmFjdGVyKTsgLy8gc2FtZSB0aGluZyBpcyBk
b25lIGluIEtleUV2ZW50TWFjLm1tIGluIFdlYkNvcmUKLSAgICBib29sIGV2ZW50SGFuZGxlZDsK
LSAgICBpZiAoIWRpY3RhdGlvbkFsdGVybmF0aXZlcy5pc0VtcHR5KCkpCi0gICAgICAgIGV2ZW50
SGFuZGxlZCA9IF9kYXRhLT5fcGFnZS0+aW5zZXJ0RGljdGF0ZWRUZXh0KGV2ZW50VGV4dCwgcmVw
bGFjZW1lbnRSYW5nZSwgZGljdGF0aW9uQWx0ZXJuYXRpdmVzKTsKLSAgICBlbHNlCi0gICAgICAg
IGV2ZW50SGFuZGxlZCA9IF9kYXRhLT5fcGFnZS0+aW5zZXJ0VGV4dChldmVudFRleHQsIHJlcGxh
Y2VtZW50UmFuZ2UpOwotCi0gICAgaWYgKHBhcmFtZXRlcnMpCi0gICAgICAgIHBhcmFtZXRlcnMt
PmV2ZW50SW50ZXJwcmV0YXRpb25IYWRTaWRlRWZmZWN0cyB8PSBldmVudEhhbmRsZWQ7CisgICAg
X2RhdGEtPl9pbXBsLT5zZXRNYXJrZWRUZXh0KHN0cmluZywgbmV3U2VsZWN0ZWRSYW5nZSwgcmVw
bGFjZW1lbnRSYW5nZSk7CiB9CiAKLS0gKE5TVGV4dElucHV0Q29udGV4dCAqKWlucHV0Q29udGV4
dAorLSAodm9pZCl1bm1hcmtUZXh0CiB7Ci0gICAgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFy
YW1ldGVycyogcGFyYW1ldGVycyA9IF9kYXRhLT5faW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVy
czsKLQotICAgIGlmIChfZGF0YS0+X2ltcGwtPnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlm
aWVyKCkgJiYgIXBhcmFtZXRlcnMpCi0gICAgICAgIHJldHVybiBbW1dLVGV4dElucHV0V2luZG93
Q29udHJvbGxlciBzaGFyZWRUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyXSBpbnB1dENvbnRleHRd
OwotCi0gICAgLy8gRGlzYWJsZSB0ZXh0IGlucHV0IG1hY2hpbmVyeSB3aGVuIGluIG5vbi1lZGl0
YWJsZSBjb250ZW50LiBBbiBpbnZpc2libGUgaW5saW5lIGlucHV0IGFyZWEgYWZmZWN0cyBwZXJm
b3JtYW5jZSwgYW5kIGNhbiBwcmV2ZW50IEV4cG9zZSBmcm9tIHdvcmtpbmcuCi0gICAgaWYgKCFf
ZGF0YS0+X3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGUpCi0gICAgICAgIHJl
dHVybiBuaWw7Ci0KLSAgICByZXR1cm4gW3N1cGVyIGlucHV0Q29udGV4dF07CisgICAgX2RhdGEt
Pl9pbXBsLT51bm1hcmtUZXh0KCk7CiB9CiAKIC0gKE5TUmFuZ2Upc2VsZWN0ZWRSYW5nZQogewot
ICAgIFtzZWxmIF9leGVjdXRlU2F2ZWRLZXlwcmVzc0NvbW1hbmRzXTsKLQotICAgIEVkaXRpbmdS
YW5nZSBzZWxlY3RlZFJhbmdlOwotICAgIF9kYXRhLT5fcGFnZS0+Z2V0U2VsZWN0ZWRSYW5nZShz
ZWxlY3RlZFJhbmdlKTsKLQotICAgIE5TUmFuZ2UgcmVzdWx0ID0gc2VsZWN0ZWRSYW5nZTsKLSAg
ICBpZiAocmVzdWx0LmxvY2F0aW9uID09IE5TTm90Rm91bmQpCi0gICAgICAgIExPRyhUZXh0SW5w
dXQsICJzZWxlY3RlZFJhbmdlIC0+IChOU05vdEZvdW5kLCAldSkiLCByZXN1bHQubGVuZ3RoKTsK
LSAgICBlbHNlCi0gICAgICAgIExPRyhUZXh0SW5wdXQsICJzZWxlY3RlZFJhbmdlIC0+ICgldSwg
JXUpIiwgcmVzdWx0LmxvY2F0aW9uLCByZXN1bHQubGVuZ3RoKTsKLQotICAgIHJldHVybiByZXN1
bHQ7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+c2VsZWN0ZWRSYW5nZSgpOwogfQogCiAtIChC
T09MKWhhc01hcmtlZFRleHQKIHsKLSAgICBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0
ZXJzKiBwYXJhbWV0ZXJzID0gX2RhdGEtPl9pbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzOwot
Ci0gICAgQk9PTCByZXN1bHQ7Ci0gICAgaWYgKHBhcmFtZXRlcnMpIHsKLSAgICAgICAgcmVzdWx0
ID0gX2RhdGEtPl9wYWdlLT5lZGl0b3JTdGF0ZSgpLmhhc0NvbXBvc2l0aW9uOwotICAgICAgICBp
ZiAocmVzdWx0KSB7Ci0gICAgICAgICAgICAvLyBBIHNhdmVkIGNvbW1hbmQgY2FuIGNvbmZpcm0g
YSBjb21wb3NpdGlvbiwgYnV0IGl0IGNhbm5vdCBzdGFydCBhIG5ldyBvbmUuCi0gICAgICAgICAg
ICBbc2VsZiBfZXhlY3V0ZVNhdmVkS2V5cHJlc3NDb21tYW5kc107Ci0gICAgICAgICAgICByZXN1
bHQgPSBfZGF0YS0+X3BhZ2UtPmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb247Ci0gICAgICAg
IH0KLSAgICB9IGVsc2UgewotICAgICAgICBFZGl0aW5nUmFuZ2UgbWFya2VkUmFuZ2U7Ci0gICAg
ICAgIF9kYXRhLT5fcGFnZS0+Z2V0TWFya2VkUmFuZ2UobWFya2VkUmFuZ2UpOwotICAgICAgICBy
ZXN1bHQgPSBtYXJrZWRSYW5nZS5sb2NhdGlvbiAhPSBub3RGb3VuZDsKLSAgICB9Ci0KLSAgICBM
T0coVGV4dElucHV0LCAiaGFzTWFya2VkVGV4dCAtPiAldSIsIHJlc3VsdCk7Ci0gICAgcmV0dXJu
IHJlc3VsdDsKLX0KLQotLSAodm9pZCl1bm1hcmtUZXh0Ci17Ci0gICAgW3NlbGYgX2V4ZWN1dGVT
YXZlZEtleXByZXNzQ29tbWFuZHNdOwotCi0gICAgTE9HKFRleHRJbnB1dCwgInVubWFya1RleHQi
KTsKLQotICAgIC8vIFVzZSBwb2ludGVyIHRvIGdldCBwYXJhbWV0ZXJzIHBhc3NlZCB0byB1cyBi
eSB0aGUgY2FsbGVyIG9mIGludGVycHJldEtleUV2ZW50cy4KLSAgICBXS1ZpZXdJbnRlcnByZXRL
ZXlFdmVudHNQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzID0gX2RhdGEtPl9pbnRlcnByZXRLZXlFdmVu
dHNQYXJhbWV0ZXJzOwotCi0gICAgaWYgKHBhcmFtZXRlcnMpIHsKLSAgICAgICAgcGFyYW1ldGVy
cy0+ZXZlbnRJbnRlcnByZXRhdGlvbkhhZFNpZGVFZmZlY3RzID0gdHJ1ZTsKLSAgICAgICAgcGFy
YW1ldGVycy0+Y29uc3VtZWRCeUlNID0gZmFsc2U7Ci0gICAgfQotCi0gICAgX2RhdGEtPl9wYWdl
LT5jb25maXJtQ29tcG9zaXRpb24oKTsKLX0KLQotLSAodm9pZClzZXRNYXJrZWRUZXh0OihpZClz
dHJpbmcgc2VsZWN0ZWRSYW5nZTooTlNSYW5nZSluZXdTZWxlY3RlZFJhbmdlIHJlcGxhY2VtZW50
UmFuZ2U6KE5TUmFuZ2UpcmVwbGFjZW1lbnRSYW5nZQotewotICAgIFtzZWxmIF9leGVjdXRlU2F2
ZWRLZXlwcmVzc0NvbW1hbmRzXTsKLQotICAgIEJPT0wgaXNBdHRyaWJ1dGVkU3RyaW5nID0gW3N0
cmluZyBpc0tpbmRPZkNsYXNzOltOU0F0dHJpYnV0ZWRTdHJpbmcgY2xhc3NdXTsKLSAgICBBU1NF
UlQoaXNBdHRyaWJ1dGVkU3RyaW5nIHx8IFtzdHJpbmcgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcg
Y2xhc3NdXSk7Ci0KLSAgICBMT0coVGV4dElucHV0LCAic2V0TWFya2VkVGV4dDpcIiVAXCIgc2Vs
ZWN0ZWRSYW5nZTooJXUsICV1KSIsIGlzQXR0cmlidXRlZFN0cmluZyA/IFtzdHJpbmcgc3RyaW5n
XSA6IHN0cmluZywgbmV3U2VsZWN0ZWRSYW5nZS5sb2NhdGlvbiwgbmV3U2VsZWN0ZWRSYW5nZS5s
ZW5ndGgpOwotCi0gICAgLy8gVXNlIHBvaW50ZXIgdG8gZ2V0IHBhcmFtZXRlcnMgcGFzc2VkIHRv
IHVzIGJ5IHRoZSBjYWxsZXIgb2YgaW50ZXJwcmV0S2V5RXZlbnRzLgotICAgIFdLVmlld0ludGVy
cHJldEtleUV2ZW50c1BhcmFtZXRlcnMqIHBhcmFtZXRlcnMgPSBfZGF0YS0+X2ludGVycHJldEtl
eUV2ZW50c1BhcmFtZXRlcnM7Ci0KLSAgICBpZiAocGFyYW1ldGVycykgewotICAgICAgICBwYXJh
bWV0ZXJzLT5ldmVudEludGVycHJldGF0aW9uSGFkU2lkZUVmZmVjdHMgPSB0cnVlOwotICAgICAg
ICBwYXJhbWV0ZXJzLT5jb25zdW1lZEJ5SU0gPSBmYWxzZTsKLSAgICB9Ci0gICAgCi0gICAgVmVj
dG9yPENvbXBvc2l0aW9uVW5kZXJsaW5lPiB1bmRlcmxpbmVzOwotICAgIE5TU3RyaW5nICp0ZXh0
OwotCi0gICAgaWYgKGlzQXR0cmlidXRlZFN0cmluZykgewotICAgICAgICAvLyBGSVhNRTogV2Ug
aWdub3JlIG1vc3QgYXR0cmlidXRlcyBmcm9tIHRoZSBzdHJpbmcsIHNvIGFuIGlucHV0IG1ldGhv
ZCBjYW5ub3Qgc3BlY2lmeSBlLmcuIGEgZm9udCBvciBhIGdseXBoIHZhcmlhdGlvbi4KLSAgICAg
ICAgdGV4dCA9IFtzdHJpbmcgc3RyaW5nXTsKLSAgICAgICAgZXh0cmFjdFVuZGVybGluZXMoc3Ry
aW5nLCB1bmRlcmxpbmVzKTsKLSAgICB9IGVsc2UKLSAgICAgICAgdGV4dCA9IHN0cmluZzsKLQot
ICAgIGlmIChfZGF0YS0+X3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNJblBhc3N3b3JkRmllbGQpIHsK
LSAgICAgICAgLy8gSW4gcGFzc3dvcmQgZmllbGRzLCB3ZSBvbmx5IGFsbG93IEFTQ0lJIGRlYWQg
a2V5cywgYW5kIGRvbid0IGFsbG93IGlubGluZSBpbnB1dCwgbWF0Y2hpbmcgTlNTZWN1cmVUZXh0
SW5wdXRGaWVsZC4KLSAgICAgICAgLy8gQWxsb3dpbmcgQVNDSUkgZGVhZCBrZXlzIGlzIG5lY2Vz
c2FyeSB0byBlbmFibGUgZnVsbCBSb21hbiBpbnB1dCB3aGVuIHVzaW5nIGEgVmlldG5hbWVzZSBr
ZXlib2FyZC4KLSAgICAgICAgQVNTRVJUKCFfZGF0YS0+X3BhZ2UtPmVkaXRvclN0YXRlKCkuaGFz
Q29tcG9zaXRpb24pOwotICAgICAgICBfZGF0YS0+X2ltcGwtPm5vdGlmeUlucHV0Q29udGV4dEFi
b3V0RGlzY2FyZGVkQ29tcG9zaXRpb24oKTsKLSAgICAgICAgaWYgKFt0ZXh0IGxlbmd0aF0gPT0g
MSAmJiBbW3RleHQgZGVjb21wb3NlZFN0cmluZ1dpdGhDYW5vbmljYWxNYXBwaW5nXSBjaGFyYWN0
ZXJBdEluZGV4OjBdIDwgMHg4MCkgewotICAgICAgICAgICAgX2RhdGEtPl9wYWdlLT5pbnNlcnRU
ZXh0KHRleHQsIHJlcGxhY2VtZW50UmFuZ2UpOwotICAgICAgICB9IGVsc2UKLSAgICAgICAgICAg
IE5TQmVlcCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgX2RhdGEtPl9wYWdlLT5z
ZXRDb21wb3NpdGlvbih0ZXh0LCB1bmRlcmxpbmVzLCBuZXdTZWxlY3RlZFJhbmdlLCByZXBsYWNl
bWVudFJhbmdlKTsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5oYXNNYXJrZWRUZXh0KCk7CiB9
CiAKIC0gKE5TUmFuZ2UpbWFya2VkUmFuZ2UKIHsKLSAgICBbc2VsZiBfZXhlY3V0ZVNhdmVkS2V5
cHJlc3NDb21tYW5kc107Ci0KLSAgICBFZGl0aW5nUmFuZ2UgbWFya2VkUmFuZ2U7Ci0gICAgX2Rh
dGEtPl9wYWdlLT5nZXRNYXJrZWRSYW5nZShtYXJrZWRSYW5nZSk7Ci0KLSAgICBOU1JhbmdlIHJl
c3VsdCA9IG1hcmtlZFJhbmdlOwotICAgIGlmIChyZXN1bHQubG9jYXRpb24gPT0gTlNOb3RGb3Vu
ZCkKLSAgICAgICAgTE9HKFRleHRJbnB1dCwgIm1hcmtlZFJhbmdlIC0+IChOU05vdEZvdW5kLCAl
dSkiLCByZXN1bHQubGVuZ3RoKTsKLSAgICBlbHNlCi0gICAgICAgIExPRyhUZXh0SW5wdXQsICJt
YXJrZWRSYW5nZSAtPiAoJXUsICV1KSIsIHJlc3VsdC5sb2NhdGlvbiwgcmVzdWx0Lmxlbmd0aCk7
Ci0KLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPm1hcmtlZFJh
bmdlKCk7CiB9CiAKIC0gKE5TQXR0cmlidXRlZFN0cmluZyAqKWF0dHJpYnV0ZWRTdWJzdHJpbmdG
b3JQcm9wb3NlZFJhbmdlOihOU1JhbmdlKW5zUmFuZ2UgYWN0dWFsUmFuZ2U6KE5TUmFuZ2VQb2lu
dGVyKWFjdHVhbFJhbmdlCiB7Ci0gICAgW3NlbGYgX2V4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFu
ZHNdOwotCi0gICAgaWYgKCFfZGF0YS0+X3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRp
dGFibGUpIHsKLSAgICAgICAgTE9HKFRleHRJbnB1dCwgImF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9t
UmFuZ2U6KCV1LCAldSkgLT4gbmlsIiwgbnNSYW5nZS5sb2NhdGlvbiwgbnNSYW5nZS5sZW5ndGgp
OwotICAgICAgICByZXR1cm4gbmlsOwotICAgIH0KLQotICAgIGlmIChfZGF0YS0+X3BhZ2UtPmVk
aXRvclN0YXRlKCkuaXNJblBhc3N3b3JkRmllbGQpCi0gICAgICAgIHJldHVybiBuaWw7Ci0KLSAg
ICBBdHRyaWJ1dGVkU3RyaW5nIHJlc3VsdDsKLSAgICBfZGF0YS0+X3BhZ2UtPmdldEF0dHJpYnV0
ZWRTdWJzdHJpbmdGcm9tUmFuZ2UobnNSYW5nZSwgcmVzdWx0KTsKLQotICAgIGlmIChhY3R1YWxS
YW5nZSkgewotICAgICAgICAqYWN0dWFsUmFuZ2UgPSBuc1JhbmdlOwotICAgICAgICBhY3R1YWxS
YW5nZS0+bGVuZ3RoID0gW3Jlc3VsdC5zdHJpbmcgbGVuZ3RoXTsKLSAgICB9Ci0KLSAgICBMT0co
VGV4dElucHV0LCAiYXR0cmlidXRlZFN1YnN0cmluZ0Zyb21SYW5nZTooJXUsICV1KSAtPiBcIiVA
XCIiLCBuc1JhbmdlLmxvY2F0aW9uLCBuc1JhbmdlLmxlbmd0aCwgW3Jlc3VsdC5zdHJpbmcgc3Ry
aW5nXSk7Ci0gICAgcmV0dXJuIFtbcmVzdWx0LnN0cmluZyByZXRhaW5dIGF1dG9yZWxlYXNlXTsK
KyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5hdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRS
YW5nZShuc1JhbmdlLCBhY3R1YWxSYW5nZSk7CiB9CiAKIC0gKE5TVUludGVnZXIpY2hhcmFjdGVy
SW5kZXhGb3JQb2ludDooTlNQb2ludCl0aGVQb2ludAogewotICAgIFtzZWxmIF9leGVjdXRlU2F2
ZWRLZXlwcmVzc0NvbW1hbmRzXTsKLQotICAgIE5TV2luZG93ICp3aW5kb3cgPSBbc2VsZiB3aW5k
b3ddOwotICAgIAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIGlmICh3
aW5kb3cpCi0gICAgICAgIHRoZVBvaW50ID0gW3dpbmRvdyBjb252ZXJ0U2NyZWVuVG9CYXNlOnRo
ZVBvaW50XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICB0aGVQb2ludCA9IFtz
ZWxmIGNvbnZlcnRQb2ludDp0aGVQb2ludCBmcm9tVmlldzpuaWxdOyAgLy8gdGhlIHBvaW50IGlz
IHJlbGF0aXZlIHRvIHRoZSBtYWluIGZyYW1lCi0gICAgCi0gICAgdWludDY0X3QgcmVzdWx0ID0g
X2RhdGEtPl9wYWdlLT5jaGFyYWN0ZXJJbmRleEZvclBvaW50KEludFBvaW50KHRoZVBvaW50KSk7
Ci0gICAgaWYgKHJlc3VsdCA9PSBub3RGb3VuZCkKLSAgICAgICAgcmVzdWx0ID0gTlNOb3RGb3Vu
ZDsKLSAgICBMT0coVGV4dElucHV0LCAiY2hhcmFjdGVySW5kZXhGb3JQb2ludDooJWYsICVmKSAt
PiAldSIsIHRoZVBvaW50LngsIHRoZVBvaW50LnksIHJlc3VsdCk7Ci0gICAgcmV0dXJuIHJlc3Vs
dDsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5jaGFyYWN0ZXJJbmRleEZvclBvaW50KHRoZVBv
aW50KTsKIH0KIAogLSAoTlNSZWN0KWZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlOihOU1Jhbmdl
KXRoZVJhbmdlIGFjdHVhbFJhbmdlOihOU1JhbmdlUG9pbnRlcilhY3R1YWxSYW5nZQoteyAKLSAg
ICBbc2VsZiBfZXhlY3V0ZVNhdmVkS2V5cHJlc3NDb21tYW5kc107Ci0KLSAgICAvLyBKdXN0IHRv
IG1hdGNoIE5TVGV4dFZpZXcncyBiZWhhdmlvci4gUmVncmVzc2lvbiB0ZXN0cyBjYW5ub3QgZGV0
ZWN0IHRoaXM7Ci0gICAgLy8gdG8gcmVwcm9kdWNlLCB1c2UgYSB0ZXN0IGFwcGxpY2F0aW9uIGZy
b20gaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY4MgotICAgIC8vICh0
eXBlIHNvbWV0aGluZzsgdHJ5IHJhbmdlcyAoMSwgLTEpIGFuZCAoMiwgLTEpLgotICAgIGlmICgo
dGhlUmFuZ2UubG9jYXRpb24gKyB0aGVSYW5nZS5sZW5ndGggPCB0aGVSYW5nZS5sb2NhdGlvbikg
JiYgKHRoZVJhbmdlLmxvY2F0aW9uICsgdGhlUmFuZ2UubGVuZ3RoICE9IDApKQotICAgICAgICB0
aGVSYW5nZS5sZW5ndGggPSAwOwotCi0gICAgaWYgKHRoZVJhbmdlLmxvY2F0aW9uID09IE5TTm90
Rm91bmQpIHsKLSAgICAgICAgaWYgKGFjdHVhbFJhbmdlKQotICAgICAgICAgICAgKmFjdHVhbFJh
bmdlID0gdGhlUmFuZ2U7Ci0gICAgICAgIExPRyhUZXh0SW5wdXQsICJmaXJzdFJlY3RGb3JDaGFy
YWN0ZXJSYW5nZTooTlNOb3RGb3VuZCwgJXUpIC0+IE5TWmVyb1JlY3QiLCB0aGVSYW5nZS5sZW5n
dGgpOwotICAgICAgICByZXR1cm4gTlNaZXJvUmVjdDsKLSAgICB9Ci0KLSAgICBOU1JlY3QgcmVz
dWx0UmVjdCA9IF9kYXRhLT5fcGFnZS0+Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UodGhlUmFu
Z2UpOwotICAgIHJlc3VsdFJlY3QgPSBbc2VsZiBjb252ZXJ0UmVjdDpyZXN1bHRSZWN0IHRvVmll
dzpuaWxdOwotICAgIHJlc3VsdFJlY3QgPSBbc2VsZi53aW5kb3cgY29udmVydFJlY3RUb1NjcmVl
bjpyZXN1bHRSZWN0XTsKK3sKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5maXJzdFJlY3RGb3JD
aGFyYWN0ZXJSYW5nZSh0aGVSYW5nZSwgYWN0dWFsUmFuZ2UpOworfQogCi0gICAgaWYgKGFjdHVh
bFJhbmdlKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBVcGRhdGUgYWN0dWFsUmFuZ2UgdG8gbWF0Y2gg
dGhlIHJhbmdlIG9mIGZpcnN0IHJlY3QuCi0gICAgICAgICphY3R1YWxSYW5nZSA9IHRoZVJhbmdl
OwotICAgIH0KKyNpZiBVU0UoQVNZTkNfTlNURVhUSU5QVVRDTElFTlQpCiAKLSAgICBMT0coVGV4
dElucHV0LCAiZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2U6KCV1LCAldSkgLT4gKCVmLCAlZiwg
JWYsICVmKSIsIHRoZVJhbmdlLmxvY2F0aW9uLCB0aGVSYW5nZS5sZW5ndGgsIHJlc3VsdFJlY3Qu
b3JpZ2luLngsIHJlc3VsdFJlY3Qub3JpZ2luLnksIHJlc3VsdFJlY3Quc2l6ZS53aWR0aCwgcmVz
dWx0UmVjdC5zaXplLmhlaWdodCk7Ci0gICAgcmV0dXJuIHJlc3VsdFJlY3Q7CistICh2b2lkKXNl
bGVjdGVkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoTlNSYW5nZSBzZWxlY3Rl
ZFJhbmdlKSljb21wbGV0aW9uSGFuZGxlclB0cgoreworICAgIF9kYXRhLT5faW1wbC0+c2VsZWN0
ZWRSYW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcihjb21wbGV0aW9uSGFuZGxlclB0cik7CiB9CiAK
LS0gKEJPT0wpcGVyZm9ybUtleUVxdWl2YWxlbnQ6KE5TRXZlbnQgKilldmVudAorLSAodm9pZClt
YXJrZWRSYW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShOU1JhbmdlIG1hcmtlZFJh
bmdlKSljb21wbGV0aW9uSGFuZGxlclB0cgogewotICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9y
ZXNOb25XaGVlbEV2ZW50cygpKQotICAgICAgICByZXR1cm4gTk87Ci0KLSAgICAvLyBUaGVyZSdz
IGEgY2hhbmNlIHRoYXQgcmVzcG9uZGluZyB0byB0aGlzIGV2ZW50IHdpbGwgcnVuIGEgbmVzdGVk
IGV2ZW50IGxvb3AsIGFuZAotICAgIC8vIGZldGNoaW5nIGEgbmV3IGV2ZW50IG1pZ2h0IHJlbGVh
c2UgdGhlIG9sZCBvbmUuIFJldGFpbmluZyBhbmQgdGhlbiBhdXRvcmVsZWFzaW5nCi0gICAgLy8g
dGhlIGN1cnJlbnQgZXZlbnQgcHJldmVudHMgdGhhdCBmcm9tIGNhdXNpbmcgYSBwcm9ibGVtIGlu
c2lkZSBXZWJLaXQgb3IgQXBwS2l0IGNvZGUuCi0gICAgW1tldmVudCByZXRhaW5dIGF1dG9yZWxl
YXNlXTsKLQotICAgIC8vIFdlIGdldCBFc2Mga2V5IGhlcmUgYWZ0ZXIgcHJvY2Vzc2luZyBlaXRo
ZXIgRXNjIG9yIENtZCtwZXJpb2QuIFRoZSBmb3JtZXIgc3RhcnRzIGFzIGEga2V5RG93biwgYW5k
IHRoZSBsYXR0ZXIgc3RhcnRzIGFzIGEga2V5IGVxdWl2YWxlbnQsCi0gICAgLy8gYnV0IGJvdGgg
Z2V0IHRyYW5zZm9ybWVkIHRvIGEgY2FuY2VsT3BlcmF0aW9uOiBjb21tYW5kLCBleGVjdXRpbmcg
d2hpY2ggcGFzc2VzIGFuIEVzYyBrZXkgZXZlbnQgdG8gLXBlcmZvcm1LZXlFcXVpdmFsZW50Oi4K
LSAgICAvLyBEb24ndCBpbnRlcnByZXQgdGhpcyBldmVudCBhZ2FpbiwgYXZvaWRpbmcgcmUtZW50
cmFuY3kgYW5kIGluZmluaXRlIGxvb3BzLgotICAgIGlmIChbW2V2ZW50IGNoYXJhY3RlcnNJZ25v
cmluZ01vZGlmaWVyc10gaXNFcXVhbFRvU3RyaW5nOkAiXGUiXSAmJiAhKFtldmVudCBtb2RpZmll
ckZsYWdzXSAmIE5TRGV2aWNlSW5kZXBlbmRlbnRNb2RpZmllckZsYWdzTWFzaykpCi0gICAgICAg
IHJldHVybiBbc3VwZXIgcGVyZm9ybUtleUVxdWl2YWxlbnQ6ZXZlbnRdOwotCi0gICAgaWYgKF9k
YXRhLT5fa2V5RG93bkV2ZW50QmVpbmdSZXNlbnQpIHsKLSAgICAgICAgLy8gV2ViQ29yZSBoYXMg
YWxyZWFkeSBzZWVuIHRoZSBldmVudCwgbm8gbmVlZCBmb3IgY3VzdG9tIHByb2Nlc3NpbmcuCi0g
ICAgICAgIC8vIE5vdGUgdGhhdCB3ZSBjYW4gZ2V0IG11bHRpcGxlIGV2ZW50cyBmb3IgZWFjaCBl
dmVudCBiZWluZyByZS1zZW50LiBGb3IgZXhhbXBsZSwgZm9yIENtZCsnPScgQXBwS2l0Ci0gICAg
ICAgIC8vIGZpcnN0IHBlcmZvcm1zIHRoZSBvcmlnaW5hbCBrZXkgZXF1aXZhbGVudCwgYW5kIGlm
IHRoYXQgaXNuJ3QgaGFuZGxlZCwgaXQgZGlzcGF0Y2hlcyBhIHN5bnRoZXRpYyBDbWQrJysnLgot
ICAgICAgICByZXR1cm4gW3N1cGVyIHBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKLSAgICB9
Ci0KLSAgICBBU1NFUlQoZXZlbnQgPT0gW05TQXBwIGN1cnJlbnRFdmVudF0pOwotCi0gICAgX2Rh
dGEtPl9pbXBsLT5kaXNhYmxlQ29tcGxleFRleHRJbnB1dElmTmVjZXNzYXJ5KCk7Ci0KLSAgICAv
LyBQYXNzIGtleSBjb21ib3MgdGhyb3VnaCBXZWJDb3JlIGlmIHRoZXJlIGlzIGEga2V5IGJpbmRp
bmcgYXZhaWxhYmxlIGZvcgotICAgIC8vIHRoaXMgZXZlbnQuIFRoaXMgbGV0cyB3ZWJwYWdlcyBo
YXZlIGEgY3JhY2sgYXQgaW50ZXJjZXB0aW5nIGtleS1tb2RpZmllZCBrZXlwcmVzc2VzLgotICAg
IC8vIEZJWE1FOiBXaHkgaXMgdGhlIGZpcnN0UmVzcG9uZGVyIGNoZWNrIG5lZWRlZD8KLSAgICBp
ZiAoc2VsZiA9PSBbW3NlbGYgd2luZG93XSBmaXJzdFJlc3BvbmRlcl0pIHsKLSAgICAgICAgVmVj
dG9yPEtleXByZXNzQ29tbWFuZD4gY29tbWFuZHM7Ci0gICAgICAgIEJPT0wgaGFuZGxlZEJ5SW5w
dXRNZXRob2QgPSBbc2VsZiBfaW50ZXJwcmV0S2V5RXZlbnQ6ZXZlbnQgc2F2aW5nQ29tbWFuZHNU
bzpjb21tYW5kc107Ci0gICAgICAgIF9kYXRhLT5fcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChO
YXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFu
ZHMpKTsKLSAgICAgICAgcmV0dXJuIFlFUzsKLSAgICB9Ci0gICAgCi0gICAgcmV0dXJuIFtzdXBl
ciBwZXJmb3JtS2V5RXF1aXZhbGVudDpldmVudF07CisgICAgX2RhdGEtPl9pbXBsLT5tYXJrZWRS
YW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcihjb21wbGV0aW9uSGFuZGxlclB0cik7CiB9CiAKLS0g
KHZvaWQpa2V5VXA6KE5TRXZlbnQgKil0aGVFdmVudAorLSAodm9pZCloYXNNYXJrZWRUZXh0V2l0
aENvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wgaGFzTWFya2VkVGV4dCkpY29tcGxldGlv
bkhhbmRsZXJQdHIKIHsKLSAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVu
dHMoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgTE9HKFRleHRJbnB1dCwgImtleVVwOiVwICVA
IiwgdGhlRXZlbnQsIHRoZUV2ZW50KTsKLSAgICAvLyBXZSBkb24ndCBpbnRlcnByZXQgdGhlIGtl
eVVwIGV2ZW50LCBhcyB0aGlzIGJyZWFrcyBrZXkgYmluZGluZ3MgKHNlZSA8aHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDEwMD4pLgotICAgIF9kYXRhLT5fcGFnZS0+
aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KHRoZUV2ZW50LCBmYWxz
ZSwgVmVjdG9yPEtleXByZXNzQ29tbWFuZD4oKSkpOworICAgIF9kYXRhLT5faW1wbC0+aGFzTWFy
a2VkVGV4dFdpdGhDb21wbGV0aW9uSGFuZGxlcihjb21wbGV0aW9uSGFuZGxlclB0cik7CiB9CiAK
LS0gKHZvaWQpa2V5RG93bjooTlNFdmVudCAqKXRoZUV2ZW50CistICh2b2lkKWF0dHJpYnV0ZWRT
dWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlOihOU1JhbmdlKW5zUmFuZ2UgY29tcGxldGlvbkhhbmRs
ZXI6KHZvaWQoXikoTlNBdHRyaWJ1dGVkU3RyaW5nICphdHRyU3RyaW5nLCBOU1JhbmdlIGFjdHVh
bFJhbmdlKSljb21wbGV0aW9uSGFuZGxlclB0cgogewotICAgIGlmIChfZGF0YS0+X2ltcGwtPmln
bm9yZXNOb25XaGVlbEV2ZW50cygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBMT0coVGV4dElu
cHV0LCAia2V5RG93bjolcCAlQCVzIiwgdGhlRXZlbnQsIHRoZUV2ZW50LCAodGhlRXZlbnQgPT0g
X2RhdGEtPl9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCkgPyAiIChyZS1zZW50KSIgOiAiIik7Ci0K
LSAgICAvLyBUaGVyZSdzIGEgY2hhbmNlIHRoYXQgcmVzcG9uZGluZyB0byB0aGlzIGV2ZW50IHdp
bGwgcnVuIGEgbmVzdGVkIGV2ZW50IGxvb3AsIGFuZAotICAgIC8vIGZldGNoaW5nIGEgbmV3IGV2
ZW50IG1pZ2h0IHJlbGVhc2UgdGhlIG9sZCBvbmUuIFJldGFpbmluZyBhbmQgdGhlbiBhdXRvcmVs
ZWFzaW5nCi0gICAgLy8gdGhlIGN1cnJlbnQgZXZlbnQgcHJldmVudHMgdGhhdCBmcm9tIGNhdXNp
bmcgYSBwcm9ibGVtIGluc2lkZSBXZWJLaXQgb3IgQXBwS2l0IGNvZGUuCi0gICAgW1t0aGVFdmVu
dCByZXRhaW5dIGF1dG9yZWxlYXNlXTsKLQotICAgIGlmIChfZGF0YS0+X2ltcGwtPnRyeUhhbmRs
ZVBsdWdpbkNvbXBsZXhUZXh0SW5wdXRLZXlEb3duKHRoZUV2ZW50KSkgewotICAgICAgICBMT0co
VGV4dElucHV0LCAiLi4uaGFuZGxlZCBieSBwbHVnLWluIik7Ci0gICAgICAgIHJldHVybjsKLSAg
ICB9Ci0KLSAgICAvLyBXZSBjb3VsZCBiZSByZWNlaXZpbmcgYSBrZXkgZG93biBmcm9tIEFwcEtp
dCBpZiB3ZSBoYXZlIHJlLXNlbnQgYW4gZXZlbnQKLSAgICAvLyB0aGF0IG1hcHMgdG8gYW4gYWN0
aW9uIHRoYXQgaXMgY3VycmVudGx5IHVuYXZhaWxhYmxlIChmb3IgZXhhbXBsZSBhIGNvcHkgd2hl
bgotICAgIC8vIHRoZXJlIGlzIG5vIHJhbmdlIHNlbGVjdGlvbikuCi0gICAgLy8gSWYgdGhpcyBp
cyB0aGUgY2FzZSB3ZSBzaG91bGQgaWdub3JlIHRoZSBrZXkgZG93bi4KLSAgICBpZiAoX2RhdGEt
Pl9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCA9PSB0aGVFdmVudCkgewotICAgICAgICBbc3VwZXIg
a2V5RG93bjp0aGVFdmVudF07Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBWZWN0b3I8
S2V5cHJlc3NDb21tYW5kPiBjb21tYW5kczsKLSAgICBCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9k
ID0gW3NlbGYgX2ludGVycHJldEtleUV2ZW50OnRoZUV2ZW50IHNhdmluZ0NvbW1hbmRzVG86Y29t
bWFuZHNdOwotICAgIGlmICghY29tbWFuZHMuaXNFbXB0eSgpKSB7Ci0gICAgICAgIC8vIEFuIGlu
cHV0IG1ldGhvZCBtYXkgbWFrZSBzZXZlcmFsIGFjdGlvbnMgcGVyIGtleXByZXNzLiBGb3IgZXhh
bXBsZSwgcHJlc3NpbmcgUmV0dXJuIHdpdGggS29yZWFuIElNIGJvdGggY29uZmlybXMgaXQgYW5k
IHNlbmRzIGEgbmV3bGluZS4KLSAgICAgICAgLy8gSU0tbGlrZSBhY3Rpb25zIGFyZSBoYW5kbGVk
IGltbWVkaWF0ZWx5IChzbyB0aGUgcmV0dXJuIHZhbHVlIGZyb20gVUkgcHJvY2VzcyBpcyB0cnVl
KSwgYnV0IHRoZXJlIGFyZSBzYXZlZCBjb21tYW5kcyB0aGF0Ci0gICAgICAgIC8vIHNob3VsZCBi
ZSBoYW5kbGVkIGxpa2Ugbm9ybWFsIHRleHQgaW5wdXQgYWZ0ZXIgRE9NIGV2ZW50IGRpc3BhdGNo
LgotICAgICAgICBoYW5kbGVkQnlJbnB1dE1ldGhvZCA9IE5POwotICAgIH0KLQotICAgIF9kYXRh
LT5fcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KHRoZUV2
ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFuZHMpKTsKKyAgICBfZGF0YS0+X2ltcGwt
PmF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlKG5zUmFuZ2UsIGNvbXBsZXRpb25I
YW5kbGVyUHRyKTsKIH0KIAotLSAodm9pZClmbGFnc0NoYW5nZWQ6KE5TRXZlbnQgKil0aGVFdmVu
dAorLSAodm9pZClmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZTooTlNSYW5nZSl0aGVSYW5nZSBj
b21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShOU1JlY3QgZmlyc3RSZWN0LCBOU1JhbmdlIGFjdHVh
bFJhbmdlKSljb21wbGV0aW9uSGFuZGxlclB0cgogewotICAgIGlmIChfZGF0YS0+X2ltcGwtPmln
bm9yZXNOb25XaGVlbEV2ZW50cygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBMT0coVGV4dElu
cHV0LCAiZmxhZ3NDaGFuZ2VkOiVwICVAIiwgdGhlRXZlbnQsIHRoZUV2ZW50KTsKLQotICAgIC8v
IFRoZXJlJ3MgYSBjaGFuY2UgdGhhdCByZXNwb25kaW5nIHRvIHRoaXMgZXZlbnQgd2lsbCBydW4g
YSBuZXN0ZWQgZXZlbnQgbG9vcCwgYW5kCi0gICAgLy8gZmV0Y2hpbmcgYSBuZXcgZXZlbnQgbWln
aHQgcmVsZWFzZSB0aGUgb2xkIG9uZS4gUmV0YWluaW5nIGFuZCB0aGVuIGF1dG9yZWxlYXNpbmcK
LSAgICAvLyB0aGUgY3VycmVudCBldmVudCBwcmV2ZW50cyB0aGF0IGZyb20gY2F1c2luZyBhIHBy
b2JsZW0gaW5zaWRlIFdlYktpdCBvciBBcHBLaXQgY29kZS4KLSAgICBbW3RoZUV2ZW50IHJldGFp
bl0gYXV0b3JlbGVhc2VdOwotCi0gICAgdW5zaWduZWQgc2hvcnQga2V5Q29kZSA9IFt0aGVFdmVu
dCBrZXlDb2RlXTsKLQotICAgIC8vIERvbid0IG1ha2UgYW4gZXZlbnQgZnJvbSB0aGUgbnVtIGxv
Y2sgYW5kIGZ1bmN0aW9uIGtleXMKLSAgICBpZiAoIWtleUNvZGUgfHwga2V5Q29kZSA9PSAxMCB8
fCBrZXlDb2RlID09IDYzKQotICAgICAgICByZXR1cm47CisgICAgX2RhdGEtPl9pbXBsLT5maXJz
dFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSh0aGVSYW5nZSwgY29tcGxldGlvbkhhbmRsZXJQdHIpOwor
fQogCi0gICAgX2RhdGEtPl9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJv
YXJkRXZlbnQodGhlRXZlbnQsIGZhbHNlLCBWZWN0b3I8S2V5cHJlc3NDb21tYW5kPigpKSk7Cist
ICh2b2lkKWNoYXJhY3RlckluZGV4Rm9yUG9pbnQ6KE5TUG9pbnQpdGhlUG9pbnQgY29tcGxldGlv
bkhhbmRsZXI6KHZvaWQoXikoTlNVSW50ZWdlcikpY29tcGxldGlvbkhhbmRsZXJQdHIKK3sKKyAg
ICBfZGF0YS0+X2ltcGwtPmNoYXJhY3RlckluZGV4Rm9yUG9pbnQodGhlUG9pbnQsIGNvbXBsZXRp
b25IYW5kbGVyUHRyKTsKIH0KIAogI2VuZGlmIC8vIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVO
VCkKQEAgLTE3MzEsNiArODg4LDE2IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5T
QXR0cmlidXRlZFN0cmluZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAgICAgW3N1
cGVyIGRvQ29tbWFuZEJ5U2VsZWN0b3I6c2VsZWN0b3JdOwogfQogCistIChCT09MKV9zdXBlclBl
cmZvcm1LZXlFcXVpdmFsZW50OihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICByZXR1cm4gW3N1cGVy
IHBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKK30KKworLSAodm9pZClfc3VwZXJLZXlEb3du
OihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICBbc3VwZXIga2V5RG93bjpldmVudF07Cit9CisKIC0g
KE5TQXJyYXkgKil2YWxpZEF0dHJpYnV0ZXNGb3JNYXJrZWRUZXh0CiB7CiAgICAgc3RhdGljIE5T
QXJyYXkgKnZhbGlkQXR0cmlidXRlczsKQEAgLTE4OTIsMzAgKzEwNTksNiBAQCBzdGF0aWMgdm9p
ZCBleHRyYWN0VW5kZXJsaW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPENv
bXBvc2l0aW9uVW5kZQogICAgIF9kYXRhLT5faW1wbC0+cXVpY2tMb29rV2l0aEV2ZW50KGV2ZW50
KTsKIH0KIAotLSAodm9pZClfZG9uZVdpdGhLZXlFdmVudDooTlNFdmVudCAqKWV2ZW50IGV2ZW50
V2FzSGFuZGxlZDooQk9PTClldmVudFdhc0hhbmRsZWQKLXsKLSAgICBpZiAoW2V2ZW50IHR5cGVd
ICE9IE5TS2V5RG93bikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgaWYgKF9kYXRhLT5faW1wbC0+
dHJ5UG9zdFByb2Nlc3NQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bihldmVudCkpCi0gICAg
ICAgIHJldHVybjsKLSAgICAKLSAgICBpZiAoZXZlbnRXYXNIYW5kbGVkKSB7Ci0gICAgICAgIFtO
U0N1cnNvciBzZXRIaWRkZW5VbnRpbE1vdXNlTW92ZXM6WUVTXTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIC8vIHJlc2VuZGluZyB0aGUgZXZlbnQgbWF5IGRlc3Ryb3kgdGhpcyBXS1Zp
ZXcKLSAgICBSZXRhaW5QdHI8V0tWaWV3PiBwcm90ZWN0b3Ioc2VsZik7Ci0KLSAgICBBU1NFUlQo
IV9kYXRhLT5fa2V5RG93bkV2ZW50QmVpbmdSZXNlbnQpOwotICAgIF9kYXRhLT5fa2V5RG93bkV2
ZW50QmVpbmdSZXNlbnQgPSBldmVudDsKLSAgICBbTlNBcHAgX3NldEN1cnJlbnRFdmVudDpldmVu
dF07Ci0gICAgW05TQXBwIHNlbmRFdmVudDpldmVudF07Ci0KLSAgICBfZGF0YS0+X2tleURvd25F
dmVudEJlaW5nUmVzZW50ID0gbnVsbHB0cjsKLX0KLQogLSAoTlNUcmFja2luZ1JlY3RUYWcpYWRk
VHJhY2tpbmdSZWN0OihOU1JlY3QpcmVjdCBvd25lcjooaWQpb3duZXIgdXNlckRhdGE6KHZvaWQg
KilkYXRhIGFzc3VtZUluc2lkZTooQk9PTClhc3N1bWVJbnNpZGUKIHsKICAgICByZXR1cm4gX2Rh
dGEtPl9pbXBsLT5hZGRUcmFja2luZ1JlY3QoTlNSZWN0VG9DR1JlY3QocmVjdCksIG93bmVyLCBk
YXRhLCBhc3N1bWVJbnNpZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlld0ludGVybmFsLmgKaW5kZXggM2RhODI1Yi4uZDRhMTVkYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCkBAIC01MCw3
ICs1MCw2IEBAIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0VGh1bWJuYWlsVmlldzopIF9XS1RodW1ibmFpbFZpZXcgKl90aHVtYm5haWxWaWV3
OwogI2VuZGlmCiAKLS0gKHZvaWQpX2RvbmVXaXRoS2V5RXZlbnQ6KE5TRXZlbnQgKilldmVudCBl
dmVudFdhc0hhbmRsZWQ6KEJPT0wpZXZlbnRXYXNIYW5kbGVkOwogLSAodm9pZClfYWRkRm9udFBh
bmVsT2JzZXJ2ZXI7CiAKIEBlbmQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dl
YlZpZXdJbXBsLmgKaW5kZXggNDEwNDIyNi4uY2I0NGMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKQEAgLTU5LDYgKzU5LDggQEAgT0JKQ19DTEFT
UyBfV0tUaHVtYm5haWxWaWV3OwogLSAodm9pZClfc3VwZXJTbWFydE1hZ25pZnlXaXRoRXZlbnQ6
KE5TRXZlbnQgKilldmVudDsKIC0gKGlkKV9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1
ZTooTlNTdHJpbmcgKilhdHRyaWJ1dGU7CiAtICh2b2lkKV9zdXBlckRvQ29tbWFuZEJ5U2VsZWN0
b3I6KFNFTClzZWxlY3RvcjsKKy0gKEJPT0wpX3N1cGVyUGVyZm9ybUtleUVxdWl2YWxlbnQ6KE5T
RXZlbnQgKilldmVudDsKKy0gKHZvaWQpX3N1cGVyS2V5RG93bjooTlNFdmVudCAqKWV2ZW50Owog
CiAvLyBUaGlzIGlzIGEgaGFjazsgdGhlc2UgdGhpbmdzIGxpdmUgY2FuIGxpdmUgb24gYSBjYXRl
Z29yeSAoZS5nLiBXS1ZpZXcgKFByaXZhdGUpKSBidXQgV0tWaWV3IGl0c2VsZiBjb25mb3JtcyB0
byB0aGlzIHByb3RvY29sLgogLy8gVGhleSdyZSBub3QgYWN0dWFsbHkgb3B0aW9uYWwuCkBAIC03
NCw2ICs3NiwxMCBAQCBPQkpDX0NMQVNTIF9XS1RodW1ibmFpbFZpZXc7CiAKIEBlbmQKIAorbmFt
ZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IEtleVByZXNzQ29tbWFuZDsKK30KKwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIERyYXdpbmdBcmVhUHJveHk7CkBAIC04Niw2ICs5MiwxNSBAQCB0
eXBlZGVmIGlkIDxOU1ZhbGlkYXRlZFVzZXJJbnRlcmZhY2VJdGVtPiBWYWxpZGF0aW9uSXRlbTsK
IHR5cGVkZWYgVmVjdG9yPFJldGFpblB0cjxWYWxpZGF0aW9uSXRlbT4+IFZhbGlkYXRpb25WZWN0
b3I7CiB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBWYWxpZGF0aW9uVmVjdG9yPiBWYWxpZGF0aW9u
TWFwOwogCisjaWYgIVVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKK3N0cnVjdCBXS1ZpZXdJ
bnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsKKyAgICBib29sIGV2ZW50SW50ZXJwcmV0YXRp
b25IYWRTaWRlRWZmZWN0czsKKyAgICBib29sIGNvbnN1bWVkQnlJTTsKKyAgICBib29sIGV4ZWN1
dGluZ1NhdmVkS2V5cHJlc3NDb21tYW5kczsKKyAgICBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3ND
b21tYW5kPiogY29tbWFuZHM7Cit9OworI2VuZGlmCisKIGNsYXNzIFdlYlZpZXdJbXBsIHsKICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShXZWJW
aWV3SW1wbCk7CkBAIC0zOTIsNiArNDA3LDMzIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFRvdGFs
SGVpZ2h0T2ZCYW5uZXJzKENHRmxvYXQgdG90YWxIZWlnaHRPZkJhbm5lcnMpIHsgbV90b3RhbEhl
aWdodE9mQmFubmVycyA9IHRvdGFsSGVpZ2h0T2ZCYW5uZXJzOyB9CiAgICAgQ0dGbG9hdCB0b3Rh
bEhlaWdodE9mQmFubmVycygpIGNvbnN0IHsgcmV0dXJuIG1fdG90YWxIZWlnaHRPZkJhbm5lcnM7
IH0KIAorICAgIHZvaWQgZG9uZVdpdGhLZXlFdmVudChOU0V2ZW50ICosIGJvb2wgZXZlbnRXYXNI
YW5kbGVkKTsKKyAgICB2b2lkIGRvQ29tbWFuZEJ5U2VsZWN0b3IoU0VMKTsKKyAgICB2b2lkIGlu
c2VydFRleHQoaWQgc3RyaW5nKTsKKyAgICB2b2lkIGluc2VydFRleHQoaWQgc3RyaW5nLCBOU1Jh
bmdlIHJlcGxhY2VtZW50UmFuZ2UpOworICAgIE5TVGV4dElucHV0Q29udGV4dCAqaW5wdXRDb250
ZXh0KCk7CisgICAgdm9pZCB1bm1hcmtUZXh0KCk7CisgICAgdm9pZCBzZXRNYXJrZWRUZXh0KGlk
IHN0cmluZywgTlNSYW5nZSBzZWxlY3RlZFJhbmdlLCBOU1JhbmdlIHJlcGxhY2VtZW50UmFuZ2Up
OworICAgIE5TUmFuZ2Ugc2VsZWN0ZWRSYW5nZSgpOworICAgIGJvb2wgaGFzTWFya2VkVGV4dCgp
OworICAgIE5TUmFuZ2UgbWFya2VkUmFuZ2UoKTsKKyAgICBOU0F0dHJpYnV0ZWRTdHJpbmcgKmF0
dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlKE5TUmFuZ2UsIE5TUmFuZ2VQb2ludGVy
IGFjdHVhbFJhbmdlKTsKKyAgICBOU1VJbnRlZ2VyIGNoYXJhY3RlckluZGV4Rm9yUG9pbnQoTlNQ
b2ludCk7CisgICAgTlNSZWN0IGZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKE5TUmFuZ2UsIE5T
UmFuZ2VQb2ludGVyIGFjdHVhbFJhbmdlKTsKKyAgICBib29sIHBlcmZvcm1LZXlFcXVpdmFsZW50
KE5TRXZlbnQgKik7CisgICAgdm9pZCBrZXlVcChOU0V2ZW50ICopOworICAgIHZvaWQga2V5RG93
bihOU0V2ZW50ICopOworICAgIHZvaWQgZmxhZ3NDaGFuZ2VkKE5TRXZlbnQgKik7CisKKyNpZiBV
U0UoQVNZTkNfTlNURVhUSU5QVVRDTElFTlQpCisgICAgdm9pZCBzZWxlY3RlZFJhbmdlV2l0aENv
bXBsZXRpb25IYW5kbGVyKHZvaWQoXikoTlNSYW5nZSkpOworICAgIHZvaWQgaGFzTWFya2VkVGV4
dFdpdGhDb21wbGV0aW9uSGFuZGxlcih2b2lkKF4pKEJPT0wgaGFzTWFya2VkVGV4dCkpOworICAg
IHZvaWQgbWFya2VkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXIodm9pZCheKShOU1JhbmdlKSk7
CisgICAgdm9pZCBhdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZShOU1JhbmdlLCB2
b2lkKF4pKE5TQXR0cmlidXRlZFN0cmluZyAqYXR0clN0cmluZywgTlNSYW5nZSBhY3R1YWxSYW5n
ZSkpOworICAgIHZvaWQgZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UoTlNSYW5nZSwgdm9pZChe
KShOU1JlY3QgZmlyc3RSZWN0LCBOU1JhbmdlIGFjdHVhbFJhbmdlKSk7CisgICAgdm9pZCBjaGFy
YWN0ZXJJbmRleEZvclBvaW50KE5TUG9pbnQsIHZvaWQoXikoTlNVSW50ZWdlcikpOworI2VuZGlm
IC8vIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKKwogcHJpdmF0ZToKICAgICBXZWFrUHRy
PFdlYlZpZXdJbXBsPiBjcmVhdGVXZWFrUHRyKCkgeyByZXR1cm4gbV93ZWFrUHRyRmFjdG9yeS5j
cmVhdGVXZWFrUHRyKCk7IH0KIApAQCAtNDExLDYgKzQ1MywxNCBAQCBwcml2YXRlOgogCiAgICAg
dm9pZCBzZXRVc2VySW50ZXJmYWNlSXRlbVN0YXRlKE5TU3RyaW5nICpjb21tYW5kTmFtZSwgYm9v
bCBlbmFibGVkLCBpbnQgc3RhdGUpOwogCisjaWYgVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5U
KQorICAgIHZvaWQgY29sbGVjdEtleWJvYXJkTGF5b3V0Q29tbWFuZHNGb3JFdmVudChOU0V2ZW50
ICosIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+Jik7CisgICAgdm9pZCBpbnRlcnBy
ZXRLZXlFdmVudChOU0V2ZW50ICosIHZvaWQoXmNvbXBsZXRpb25IYW5kbGVyKShCT09MIGhhbmRs
ZWQsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JikpOworI2Vsc2UKKyAg
ICB2b2lkIGV4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHMoKTsKKyAgICBib29sIGludGVycHJl
dEtleUV2ZW50KE5TRXZlbnQgKiwgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mKTsK
KyNlbmRpZgorCiAgICAgTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAqbV92aWV3OwogICAg
IFdlYlBhZ2VQcm94eSYgbV9wYWdlOwogICAgIFBhZ2VDbGllbnQmIG1fcGFnZUNsaWVudDsKQEAg
LTUxNiw2ICs1NjYsMTYgQEAgcHJpdmF0ZToKICAgICBDR0Zsb2F0IG1fdG90YWxIZWlnaHRPZkJh
bm5lcnMgeyAwIH07CiAKICAgICBSZXRhaW5QdHI8TlNWaWV3PiBtX2luc3BlY3RvckF0dGFjaG1l
bnRWaWV3OworCisgICAgLy8gV2Uga2VlcCBoZXJlIHRoZSBldmVudCB3aGVuIHJlc2VuZGluZyBp
dCB0bworICAgIC8vIHRoZSBhcHBsaWNhdGlvbiB0byBkaXN0aW5ndWlzaCB0aGUgY2FzZSBvZiBh
IG5ldyBldmVudCBmcm9tIG9uZQorICAgIC8vIHRoYXQgaGFzIGJlZW4gYWxyZWFkeSBzZW50IHRv
IFdlYkNvcmUuCisgICAgUmV0YWluUHRyPE5TRXZlbnQ+IG1fa2V5RG93bkV2ZW50QmVpbmdSZXNl
bnQ7CisjaWYgVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQorICAgIFZlY3RvcjxXZWJDb3Jl
OjpLZXlwcmVzc0NvbW1hbmQ+KiBtX2NvbGxlY3RlZEtleXByZXNzQ29tbWFuZHM7CisjZWxzZQor
ICAgIFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMqIG1faW50ZXJwcmV0S2V5RXZl
bnRzUGFyYW1ldGVyczsKKyNlbmRpZgogfTsKICAgICAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDlm
ZmJiMzQuLmU2MGQ0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW0KQEAgLTc0LDYgKzc0LDggQEAKICNpbXBvcnQgPFdlYkNvcmUvTlNXaW5kb3dT
UEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMuaD4KICNpbXBv
cnQgPFdlYkNvcmUvU29mdExpbmtpbmcuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGV4dEFsdGVybmF0
aXZlV2l0aFJhbmdlLmg+CisjaW1wb3J0IDxXZWJDb3JlL1RleHRVbmRvSW5zZXJ0aW9uTWFya3Vw
TWFjLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1ZpZXdTdGF0ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9X
ZWJBY3Rpb25EaXNhYmxpbmdDQUxheWVyRGVsZWdhdGUuaD4KICNpbXBvcnQgPFdlYkNvcmUvV2Vi
Q29yZUNBTGF5ZXJFeHRyYXMuaD4KQEAgLTg1LDYgKzg3LDE1IEBACiAKIFNPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTChMb29rdXAsIExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9zZSwgTlNT
dHJpbmcgKikKIAorLy8gRklYTUU6IE1vdmUgdG8gYW4gU1BJIGhlYWRlci4KKyNpZiBVU0UoQVNZ
TkNfTlNURVhUSU5QVVRDTElFTlQpCitAaW50ZXJmYWNlIE5TVGV4dElucHV0Q29udGV4dCAoV0tO
U1RleHRJbnB1dENvbnRleHREZXRhaWxzKQorLSAodm9pZCloYW5kbGVFdmVudDooTlNFdmVudCAq
KXRoZUV2ZW50IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wgaGFuZGxlZCkpY29tcGxl
dGlvbkhhbmRsZXI7CistICh2b2lkKWhhbmRsZUV2ZW50QnlJbnB1dE1ldGhvZDooTlNFdmVudCAq
KXRoZUV2ZW50IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wgaGFuZGxlZCkpY29tcGxl
dGlvbkhhbmRsZXI7CistIChCT09MKWhhbmRsZUV2ZW50QnlLZXlib2FyZExheW91dDooTlNFdmVu
dCAqKXRoZUV2ZW50OworQGVuZAorI2VuZGlmCisKIEBpbnRlcmZhY2UgV0tXaW5kb3dWaXNpYmls
aXR5T2JzZXJ2ZXIgOiBOU09iamVjdCB7CiAgICAgTlNWaWV3ICpfdmlldzsKICAgICBXZWJLaXQ6
OldlYlZpZXdJbXBsICpfaW1wbDsKQEAgLTMwNjgsNiArMzA3OSw5NjQgQEAgdm9pZCBXZWJWaWV3
SW1wbDo6Z2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZUZyb21WaWV3T25seShOU0V2
ZW50ICpldmVudCkKICNlbmRpZgogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpkb25lV2l0aEtleUV2
ZW50KE5TRXZlbnQgKmV2ZW50LCBib29sIGV2ZW50V2FzSGFuZGxlZCkKK3sKKyAgICBpZiAoW2V2
ZW50IHR5cGVdICE9IE5TS2V5RG93bikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKHRyeVBv
c3RQcm9jZXNzUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURvd24oZXZlbnQpKQorICAgICAgICBy
ZXR1cm47CisKKyAgICBpZiAoZXZlbnRXYXNIYW5kbGVkKSB7CisgICAgICAgIFtOU0N1cnNvciBz
ZXRIaWRkZW5VbnRpbE1vdXNlTW92ZXM6WUVTXTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwor
ICAgIC8vIHJlc2VuZGluZyB0aGUgZXZlbnQgbWF5IGRlc3Ryb3kgdGhpcyBXS1ZpZXcKKyAgICBS
ZXRhaW5QdHI8TlNWaWV3PiBwcm90ZWN0b3IobV92aWV3KTsKKworICAgIEFTU0VSVCghbV9rZXlE
b3duRXZlbnRCZWluZ1Jlc2VudCk7CisgICAgbV9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCA9IGV2
ZW50OworICAgIFtOU0FwcCBfc2V0Q3VycmVudEV2ZW50OmV2ZW50XTsKKyAgICBbTlNBcHAgc2Vu
ZEV2ZW50OmV2ZW50XTsKKyAgICAKKyAgICBtX2tleURvd25FdmVudEJlaW5nUmVzZW50ID0gbnVs
bHB0cjsKK30KKworc3RhdGljIHZvaWQgZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3Ry
aW5nICpzdHJpbmcsIFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZT4mIHJlc3Vs
dCkKK3sKKyAgICBpbnQgbGVuZ3RoID0gc3RyaW5nLnN0cmluZy5sZW5ndGg7CisKKyAgICBpbnQg
aSA9IDA7CisgICAgd2hpbGUgKGkgPCBsZW5ndGgpIHsKKyAgICAgICAgTlNSYW5nZSByYW5nZTsK
KyAgICAgICAgTlNEaWN0aW9uYXJ5ICphdHRycyA9IFtzdHJpbmcgYXR0cmlidXRlc0F0SW5kZXg6
aSBsb25nZXN0RWZmZWN0aXZlUmFuZ2U6JnJhbmdlIGluUmFuZ2U6TlNNYWtlUmFuZ2UoaSwgbGVu
Z3RoIC0gaSldOworCisgICAgICAgIGlmIChOU051bWJlciAqc3R5bGUgPSBbYXR0cnMgb2JqZWN0
Rm9yS2V5Ok5TVW5kZXJsaW5lU3R5bGVBdHRyaWJ1dGVOYW1lXSkgeworICAgICAgICAgICAgV2Vi
Q29yZTo6Q29sb3IgY29sb3IgPSBXZWJDb3JlOjpDb2xvcjo6YmxhY2s7CisgICAgICAgICAgICBp
ZiAoTlNDb2xvciAqY29sb3JBdHRyID0gW2F0dHJzIG9iamVjdEZvcktleTpOU1VuZGVybGluZUNv
bG9yQXR0cmlidXRlTmFtZV0pCisgICAgICAgICAgICAgICAgY29sb3IgPSBXZWJDb3JlOjpjb2xv
ckZyb21OU0NvbG9yKFtjb2xvckF0dHIgY29sb3JVc2luZ0NvbG9yU3BhY2VOYW1lOk5TRGV2aWNl
UkdCQ29sb3JTcGFjZV0pOworICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChXZWJDb3JlOjpDb21w
b3NpdGlvblVuZGVybGluZShyYW5nZS5sb2NhdGlvbiwgTlNNYXhSYW5nZShyYW5nZSksIGNvbG9y
LCBzdHlsZS5pbnRWYWx1ZSA+IDEpKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaSA9
IHJhbmdlLmxvY2F0aW9uICsgcmFuZ2UubGVuZ3RoOworICAgIH0KK30KKworI2lmIFVTRShBU1lO
Q19OU1RFWFRJTlBVVENMSUVOVCkKKwordm9pZCBXZWJWaWV3SW1wbDo6Y29sbGVjdEtleWJvYXJk
TGF5b3V0Q29tbWFuZHNGb3JFdmVudChOU0V2ZW50ICpldmVudCwgVmVjdG9yPFdlYkNvcmU6Oktl
eXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKQoreworICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNL
ZXlEb3duKQorICAgICAgICByZXR1cm47CisKKyAgICBBU1NFUlQoIW1fY29sbGVjdGVkS2V5cHJl
c3NDb21tYW5kcyk7CisgICAgbV9jb2xsZWN0ZWRLZXlwcmVzc0NvbW1hbmRzID0gJmNvbW1hbmRz
OworCisgICAgaWYgKE5TVGV4dElucHV0Q29udGV4dCAqY29udGV4dCA9IGlucHV0Q29udGV4dCgp
KQorICAgICAgICBbY29udGV4dCBoYW5kbGVFdmVudEJ5S2V5Ym9hcmRMYXlvdXQ6ZXZlbnRdOwor
ICAgIGVsc2UKKyAgICAgICAgW21fdmlldyBpbnRlcnByZXRLZXlFdmVudHM6W05TQXJyYXkgYXJy
YXlXaXRoT2JqZWN0OmV2ZW50XV07CisKKyAgICBtX2NvbGxlY3RlZEtleXByZXNzQ29tbWFuZHMg
PSBudWxscHRyOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjppbnRlcnByZXRLZXlFdmVudChOU0V2
ZW50ICpldmVudCwgdm9pZCheY29tcGxldGlvbkhhbmRsZXIpKEJPT0wgaGFuZGxlZCwgY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSkKK3sKKyAgICAvLyBG
b3IgcmVndWxhciBXZWIgY29udGVudCwgaW5wdXQgbWV0aG9kcyBydW4gYmVmb3JlIHBhc3Npbmcg
YSBrZXlkb3duIHRvIERPTSwgYnV0IHBsdWctaW5zIGdldCBhbiBvcHBvcnR1bml0eSB0byBoYW5k
bGUgdGhlIGV2ZW50IGZpcnN0LgorICAgIC8vIFRoZXJlIGlzIG5vIG5lZWQgdG8gY29sbGVjdCBj
b21tYW5kcywgYXMgdGhlIHBsdWctaW4gY2Fubm90IGV4ZWN1dGUgdGhlbS4KKyAgICBpZiAocGx1
Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihOTywgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4oKSk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisKKyAgICBpZiAoIWlucHV0Q29udGV4dCgpKSB7CisgICAgICAgIFZlY3Rv
cjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGNvbW1hbmRzOworICAgICAgICBjb2xsZWN0S2V5
Ym9hcmRMYXlvdXRDb21tYW5kc0ZvckV2ZW50KGV2ZW50LCBjb21tYW5kcyk7CisgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKE5PLCBjb21tYW5kcyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBMT0coVGV4dElucHV0LCAiLT4gaGFuZGxlRXZlbnRCeUlucHV0TWV0aG9kOiVwICVAIiwg
ZXZlbnQsIGV2ZW50KTsKKyAgICBbaW5wdXRDb250ZXh0KCkgaGFuZGxlRXZlbnRCeUlucHV0TWV0
aG9kOmV2ZW50IGNvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCBoYW5kbGVkKSB7CisgICAgICAgIAor
ICAgICAgICBMT0coVGV4dElucHV0LCAiLi4uIGhhbmRsZUV2ZW50QnlJbnB1dE1ldGhvZCVzIGhh
bmRsZWQiLCBoYW5kbGVkID8gIiIgOiAiIG5vdCIpOworICAgICAgICBpZiAoaGFuZGxlZCkgewor
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoWUVTLCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJl
c3NDb21tYW5kPigpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAg
IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+IGNvbW1hbmRzOworICAgICAgICBjb2xs
ZWN0S2V5Ym9hcmRMYXlvdXRDb21tYW5kc0ZvckV2ZW50KGV2ZW50LCBjb21tYW5kcyk7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKE5PLCBjb21tYW5kcyk7CisgICAgfV07Cit9CisKK3ZvaWQg
V2ViVmlld0ltcGw6OmRvQ29tbWFuZEJ5U2VsZWN0b3IoU0VMIHNlbGVjdG9yKQoreworICAgIExP
RyhUZXh0SW5wdXQsICJkb0NvbW1hbmRCeVNlbGVjdG9yOlwiJXNcIiIsIHNlbF9nZXROYW1lKHNl
bGVjdG9yKSk7CisKKyAgICBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPioga2V5cHJl
c3NDb21tYW5kcyA9IG1fY29sbGVjdGVkS2V5cHJlc3NDb21tYW5kczsKKworICAgIGlmIChrZXlw
cmVzc0NvbW1hbmRzKSB7CisgICAgICAgIFdlYkNvcmU6OktleXByZXNzQ29tbWFuZCBjb21tYW5k
KE5TU3RyaW5nRnJvbVNlbGVjdG9yKHNlbGVjdG9yKSk7CisgICAgICAgIGtleXByZXNzQ29tbWFu
ZHMtPmFwcGVuZChjb21tYW5kKTsKKyAgICAgICAgTE9HKFRleHRJbnB1dCwgIi4uLnN0b3JlZCIp
OworICAgICAgICBtX3BhZ2UucmVnaXN0ZXJLZXlwcmVzc0NvbW1hbmROYW1lKGNvbW1hbmQuY29t
bWFuZE5hbWUpOworICAgIH0gZWxzZSB7CisgICAgICAgIC8vIEZJWE1FOiBTZW5kIHRoZSBjb21t
YW5kIHRvIEVkaXRvciBzeW5jaHJvbm91c2x5IGFuZCBvbmx5IHNlbmQgaXQgYWxvbmcgdGhlCisg
ICAgICAgIC8vIHJlc3BvbmRlciBjaGFpbiBpZiBpdCdzIGEgc2VsZWN0b3IgdGhhdCBkb2VzIG5v
dCBjb3JyZXNwb25kIHRvIGFuIGVkaXRpbmcgY29tbWFuZC4KKyAgICAgICAgW21fdmlldyBfc3Vw
ZXJEb0NvbW1hbmRCeVNlbGVjdG9yOnNlbGVjdG9yXTsKKyAgICB9Cit9CisKK3ZvaWQgV2ViVmll
d0ltcGw6Omluc2VydFRleHQoaWQgc3RyaW5nKQoreworICAgIC8vIFVubGlrZSBhbiBOU1RleHRJ
bnB1dENsaWVudCB2YXJpYW50IHdpdGggcmVwbGFjZW1lbnRSYW5nZSwgdGhpcyBOU1Jlc3BvbmRl
ciBtZXRob2QgaXMgY2FsbGVkIHdoZW4gdGhlcmUgaXMgbm8gaW5wdXQgY29udGV4dCwKKyAgICAv
LyBzbyB0ZXh0IGlucHV0IHByb2Nlc3NpbmcgaXNuJ3QgcGVyZm9ybWVkLiBXZSBhcmUgbm90IGdv
aW5nIHRvIGFjdHVhbGx5IGluc2VydCBhbnkgdGV4dCBpbiB0aGF0IGNhc2UsIGJ1dCBzYXZpbmcg
YW4gaW5zZXJ0VGV4dAorICAgIC8vIGNvbW1hbmQgZW5zdXJlcyB0aGF0IGEga2V5cHJlc3MgZXZl
bnQgaXMgZGlzcGF0Y2hlZCBhcyBhcHByb3ByaWF0ZS4KKyAgICBpbnNlcnRUZXh0KHN0cmluZywg
TlNNYWtlUmFuZ2UoTlNOb3RGb3VuZCwgMCkpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjppbnNl
cnRUZXh0KGlkIHN0cmluZywgTlNSYW5nZSByZXBsYWNlbWVudFJhbmdlKQoreworICAgIEJPT0wg
aXNBdHRyaWJ1dGVkU3RyaW5nID0gW3N0cmluZyBpc0tpbmRPZkNsYXNzOltOU0F0dHJpYnV0ZWRT
dHJpbmcgY2xhc3NdXTsKKyAgICBBU1NFUlQoaXNBdHRyaWJ1dGVkU3RyaW5nIHx8IFtzdHJpbmcg
aXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSk7CisKKyAgICBpZiAocmVwbGFjZW1lbnRS
YW5nZS5sb2NhdGlvbiAhPSBOU05vdEZvdW5kKQorICAgICAgICBMT0coVGV4dElucHV0LCAiaW5z
ZXJ0VGV4dDpcIiVAXCIgcmVwbGFjZW1lbnRSYW5nZTooJXUsICV1KSIsIGlzQXR0cmlidXRlZFN0
cmluZyA/IFtzdHJpbmcgc3RyaW5nXSA6IHN0cmluZywgcmVwbGFjZW1lbnRSYW5nZS5sb2NhdGlv
biwgcmVwbGFjZW1lbnRSYW5nZS5sZW5ndGgpOworICAgIGVsc2UKKyAgICAgICAgTE9HKFRleHRJ
bnB1dCwgImluc2VydFRleHQ6XCIlQFwiIiwgaXNBdHRyaWJ1dGVkU3RyaW5nID8gW3N0cmluZyBz
dHJpbmddIDogc3RyaW5nKTsKKworICAgIE5TU3RyaW5nICp0ZXh0OworICAgIFZlY3RvcjxXZWJD
b3JlOjpUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2U+IGRpY3RhdGlvbkFsdGVybmF0aXZlczsKKwor
ICAgIGJvb2wgcmVnaXN0ZXJVbmRvR3JvdXAgPSBmYWxzZTsKKyAgICBpZiAoaXNBdHRyaWJ1dGVk
U3RyaW5nKSB7CisjaWYgVVNFKERJQ1RBVElPTl9BTFRFUk5BVElWRVMpCisgICAgICAgIFdlYkNv
cmU6OmNvbGxlY3REaWN0YXRpb25UZXh0QWx0ZXJuYXRpdmVzKHN0cmluZywgZGljdGF0aW9uQWx0
ZXJuYXRpdmVzKTsKKyNlbmRpZgorI2lmIFVTRShJTlNFUlRJT05fVU5ET19HUk9VUElORykKKyAg
ICAgICAgcmVnaXN0ZXJVbmRvR3JvdXAgPSBXZWJDb3JlOjpzaG91bGRSZWdpc3Rlckluc2VydGlv
blVuZG9Hcm91cChzdHJpbmcpOworI2VuZGlmCisgICAgICAgIC8vIEZJWE1FOiBXZSBpZ25vcmUg
bW9zdCBhdHRyaWJ1dGVzIGZyb20gdGhlIHN0cmluZywgc28gZm9yIGV4YW1wbGUgaW5zZXJ0aW5n
IGZyb20gQ2hhcmFjdGVyIFBhbGV0dGUgbG9zZXMgZm9udCBhbmQgZ2x5cGggdmFyaWF0aW9uIGRh
dGEuCisgICAgICAgIHRleHQgPSBbc3RyaW5nIHN0cmluZ107CisgICAgfSBlbHNlCisgICAgICAg
IHRleHQgPSBzdHJpbmc7CisKKyAgICAvLyBpbnNlcnRUZXh0IGNhbiBiZSBjYWxsZWQgZm9yIHNl
dmVyYWwgcmVhc29uczoKKyAgICAvLyAtIElmIGl0J3MgZnJvbSBub3JtYWwga2V5IGV2ZW50IHBy
b2Nlc3NpbmcgKGluY2x1ZGluZyBrZXkgYmluZGluZ3MpLCB3ZSBzYXZlIHRoZSBhY3Rpb24gdG8g
cGVyZm9ybSBpdCBsYXRlci4KKyAgICAvLyAtIElmIGl0J3MgZnJvbSBhbiBpbnB1dCBtZXRob2Qs
IHRoZW4gd2Ugc2hvdWxkIGluc2VydCB0aGUgdGV4dCBub3cuCisgICAgLy8gLSBJZiBpdCdzIHNl
bnQgb3V0c2lkZSBvZiBrZXlib2FyZCBldmVudCBwcm9jZXNzaW5nIChlLmcuIGZyb20gQ2hhcmFj
dGVyIFZpZXdlciwgb3Igd2hlbiBjb25maXJtaW5nIGFuIGlubGluZSBpbnB1dCBhcmVhIHdpdGgg
YSBtb3VzZSksCisgICAgLy8gdGhlbiB3ZSBhbHNvIGV4ZWN1dGUgaXQgaW1tZWRpYXRlbHksIGFz
IHRoZXJlIHdpbGwgYmUgbm8gb3RoZXIgY2hhbmNlLgorICAgIFZlY3RvcjxXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQ+KiBrZXlwcmVzc0NvbW1hbmRzID0gbV9jb2xsZWN0ZWRLZXlwcmVzc0NvbW1h
bmRzOworICAgIGlmIChrZXlwcmVzc0NvbW1hbmRzKSB7CisgICAgICAgIEFTU0VSVChyZXBsYWNl
bWVudFJhbmdlLmxvY2F0aW9uID09IE5TTm90Rm91bmQpOworICAgICAgICBXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQgY29tbWFuZCgiaW5zZXJ0VGV4dDoiLCB0ZXh0KTsKKyAgICAgICAga2V5cHJl
c3NDb21tYW5kcy0+YXBwZW5kKGNvbW1hbmQpOworICAgICAgICBMT0coVGV4dElucHV0LCAiLi4u
c3RvcmVkIik7CisgICAgICAgIG1fcGFnZS5yZWdpc3RlcktleXByZXNzQ29tbWFuZE5hbWUoY29t
bWFuZC5jb21tYW5kTmFtZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBTdHJpbmcg
ZXZlbnRUZXh0ID0gdGV4dDsKKyAgICBldmVudFRleHQucmVwbGFjZShOU0JhY2tUYWJDaGFyYWN0
ZXIsIE5TVGFiQ2hhcmFjdGVyKTsgLy8gc2FtZSB0aGluZyBpcyBkb25lIGluIEtleUV2ZW50TWFj
Lm1tIGluIFdlYkNvcmUKKyAgICBpZiAoIWRpY3RhdGlvbkFsdGVybmF0aXZlcy5pc0VtcHR5KCkp
CisgICAgICAgIG1fcGFnZS5pbnNlcnREaWN0YXRlZFRleHRBc3luYyhldmVudFRleHQsIHJlcGxh
Y2VtZW50UmFuZ2UsIGRpY3RhdGlvbkFsdGVybmF0aXZlcywgcmVnaXN0ZXJVbmRvR3JvdXApOwor
ICAgIGVsc2UKKyAgICAgICAgbV9wYWdlLmluc2VydFRleHRBc3luYyhldmVudFRleHQsIHJlcGxh
Y2VtZW50UmFuZ2UsIHJlZ2lzdGVyVW5kb0dyb3VwKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6
c2VsZWN0ZWRSYW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcih2b2lkKF5jb21wbGV0aW9uSGFuZGxl
clB0cikoTlNSYW5nZSBzZWxlY3RlZFJhbmdlKSkKK3sKKyAgICBSZXRhaW5QdHI8aWQ+IGNvbXBs
ZXRpb25IYW5kbGVyID0gYWRvcHROUyhbY29tcGxldGlvbkhhbmRsZXJQdHIgY29weV0pOworCisg
ICAgTE9HKFRleHRJbnB1dCwgInNlbGVjdGVkUmFuZ2UiKTsKKyAgICBtX3BhZ2UuZ2V0U2VsZWN0
ZWRSYW5nZUFzeW5jKFtjb21wbGV0aW9uSGFuZGxlcl0oY29uc3QgRWRpdGluZ1JhbmdlJiBlZGl0
aW5nUmFuZ2VSZXN1bHQsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAg
ICAgICB2b2lkICheY29tcGxldGlvbkhhbmRsZXJCbG9jaykoTlNSYW5nZSkgPSAodm9pZCAoXiko
TlNSYW5nZSkpY29tcGxldGlvbkhhbmRsZXIuZ2V0KCk7CisgICAgICAgIGlmIChlcnJvciAhPSBX
ZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpIHsKKyAgICAgICAgICAgIExPRyhUZXh0
SW5wdXQsICIgICAgLi4uc2VsZWN0ZWRSYW5nZSBmYWlsZWQuIik7CisgICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlckJsb2NrKE5TTWFrZVJhbmdlKE5TTm90Rm91bmQsIDApKTsKKyAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBOU1JhbmdlIHJlc3VsdCA9IGVkaXRpbmdS
YW5nZVJlc3VsdDsKKyAgICAgICAgaWYgKHJlc3VsdC5sb2NhdGlvbiA9PSBOU05vdEZvdW5kKQor
ICAgICAgICAgICAgTE9HKFRleHRJbnB1dCwgIiAgICAtPiBzZWxlY3RlZFJhbmdlIHJldHVybmVk
IChOU05vdEZvdW5kLCAlbGx1KSIsIHJlc3VsdC5sZW5ndGgpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBMT0coVGV4dElucHV0LCAiICAgIC0+IHNlbGVjdGVkUmFuZ2UgcmV0dXJuZWQgKCVs
bHUsICVsbHUpIiwgcmVzdWx0LmxvY2F0aW9uLCByZXN1bHQubGVuZ3RoKTsKKyAgICAgICAgY29t
cGxldGlvbkhhbmRsZXJCbG9jayhyZXN1bHQpOworICAgIH0pOworfQorCit2b2lkIFdlYlZpZXdJ
bXBsOjptYXJrZWRSYW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcih2b2lkKF5jb21wbGV0aW9uSGFu
ZGxlclB0cikoTlNSYW5nZSBtYXJrZWRSYW5nZSkpCit7CisgICAgUmV0YWluUHRyPGlkPiBjb21w
bGV0aW9uSGFuZGxlciA9IGFkb3B0TlMoW2NvbXBsZXRpb25IYW5kbGVyUHRyIGNvcHldKTsKKwor
ICAgIExPRyhUZXh0SW5wdXQsICJtYXJrZWRSYW5nZSIpOworICAgIG1fcGFnZS5nZXRNYXJrZWRS
YW5nZUFzeW5jKFtjb21wbGV0aW9uSGFuZGxlcl0oY29uc3QgRWRpdGluZ1JhbmdlJiBlZGl0aW5n
UmFuZ2VSZXN1bHQsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgICAg
ICB2b2lkICheY29tcGxldGlvbkhhbmRsZXJCbG9jaykoTlNSYW5nZSkgPSAodm9pZCAoXikoTlNS
YW5nZSkpY29tcGxldGlvbkhhbmRsZXIuZ2V0KCk7CisgICAgICAgIGlmIChlcnJvciAhPSBXZWJL
aXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpIHsKKyAgICAgICAgICAgIExPRyhUZXh0SW5w
dXQsICIgICAgLi4ubWFya2VkUmFuZ2UgZmFpbGVkLiIpOworICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXJCbG9jayhOU01ha2VSYW5nZShOU05vdEZvdW5kLCAwKSk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgTlNSYW5nZSByZXN1bHQgPSBlZGl0aW5nUmFuZ2VS
ZXN1bHQ7CisgICAgICAgIGlmIChyZXN1bHQubG9jYXRpb24gPT0gTlNOb3RGb3VuZCkKKyAgICAg
ICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLT4gbWFya2VkUmFuZ2UgcmV0dXJuZWQgKE5TTm90
Rm91bmQsICVsbHUpIiwgcmVzdWx0Lmxlbmd0aCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IExPRyhUZXh0SW5wdXQsICIgICAgLT4gbWFya2VkUmFuZ2UgcmV0dXJuZWQgKCVsbHUsICVsbHUp
IiwgcmVzdWx0LmxvY2F0aW9uLCByZXN1bHQubGVuZ3RoKTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXJCbG9jayhyZXN1bHQpOworICAgIH0pOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpoYXNN
YXJrZWRUZXh0V2l0aENvbXBsZXRpb25IYW5kbGVyKHZvaWQoXmNvbXBsZXRpb25IYW5kbGVyUHRy
KShCT09MIGhhc01hcmtlZFRleHQpKQoreworICAgIFJldGFpblB0cjxpZD4gY29tcGxldGlvbkhh
bmRsZXIgPSBhZG9wdE5TKFtjb21wbGV0aW9uSGFuZGxlclB0ciBjb3B5XSk7CisKKyAgICBMT0co
VGV4dElucHV0LCAiaGFzTWFya2VkVGV4dCIpOworICAgIG1fcGFnZS5nZXRNYXJrZWRSYW5nZUFz
eW5jKFtjb21wbGV0aW9uSGFuZGxlcl0oY29uc3QgRWRpdGluZ1JhbmdlJiBlZGl0aW5nUmFuZ2VS
ZXN1bHQsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgICAgICB2b2lk
ICheY29tcGxldGlvbkhhbmRsZXJCbG9jaykoQk9PTCkgPSAodm9pZCAoXikoQk9PTCkpY29tcGxl
dGlvbkhhbmRsZXIuZ2V0KCk7CisgICAgICAgIGlmIChlcnJvciAhPSBXZWJLaXQ6OkNhbGxiYWNr
QmFzZTo6RXJyb3I6Ok5vbmUpIHsKKyAgICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLi4u
aGFzTWFya2VkVGV4dCBmYWlsZWQuIik7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlckJs
b2NrKE5PKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBCT09MIGhh
c01hcmtlZFRleHQgPSBlZGl0aW5nUmFuZ2VSZXN1bHQubG9jYXRpb24gIT0gbm90Rm91bmQ7Cisg
ICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLT4gaGFzTWFya2VkVGV4dCByZXR1cm5lZCAldSIs
IGhhc01hcmtlZFRleHQpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlckJsb2NrKGhhc01hcmtl
ZFRleHQpOworICAgIH0pOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjphdHRyaWJ1dGVkU3Vic3Ry
aW5nRm9yUHJvcG9zZWRSYW5nZShOU1JhbmdlIG5zUmFuZ2UsIHZvaWQoXmNvbXBsZXRpb25IYW5k
bGVyUHRyKShOU0F0dHJpYnV0ZWRTdHJpbmcgKmF0dHJTdHJpbmcsIE5TUmFuZ2UgYWN0dWFsUmFu
Z2UpKQoreworICAgIFJldGFpblB0cjxpZD4gY29tcGxldGlvbkhhbmRsZXIgPSBhZG9wdE5TKFtj
b21wbGV0aW9uSGFuZGxlclB0ciBjb3B5XSk7CisKKyAgICBMT0coVGV4dElucHV0LCAiYXR0cmli
dXRlZFN1YnN0cmluZ0Zyb21SYW5nZTooJXUsICV1KSIsIG5zUmFuZ2UubG9jYXRpb24sIG5zUmFu
Z2UubGVuZ3RoKTsKKyAgICBtX3BhZ2UuYXR0cmlidXRlZFN1YnN0cmluZ0ZvckNoYXJhY3RlclJh
bmdlQXN5bmMobnNSYW5nZSwgW2NvbXBsZXRpb25IYW5kbGVyXShjb25zdCBBdHRyaWJ1dGVkU3Ry
aW5nJiBzdHJpbmcsIGNvbnN0IEVkaXRpbmdSYW5nZSYgYWN0dWFsUmFuZ2UsIFdlYktpdDo6Q2Fs
bGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgICAgICB2b2lkICheY29tcGxldGlvbkhhbmRs
ZXJCbG9jaykoTlNBdHRyaWJ1dGVkU3RyaW5nICosIE5TUmFuZ2UpID0gKHZvaWQgKF4pKE5TQXR0
cmlidXRlZFN0cmluZyAqLCBOU1JhbmdlKSljb21wbGV0aW9uSGFuZGxlci5nZXQoKTsKKyAgICAg
ICAgaWYgKGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkgeworICAg
ICAgICAgICAgTE9HKFRleHRJbnB1dCwgIiAgICAuLi5hdHRyaWJ1dGVkU3Vic3RyaW5nRnJvbVJh
bmdlIGZhaWxlZC4iKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyQmxvY2soMCwgTlNN
YWtlUmFuZ2UoTlNOb3RGb3VuZCwgMCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisgICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLT4gYXR0cmlidXRlZFN1YnN0cmluZ0Zyb21S
YW5nZSByZXR1cm5lZCAlQCIsIFtzdHJpbmcuc3RyaW5nLmdldCgpIHN0cmluZ10pOworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlckJsb2NrKFtbc3RyaW5nLnN0cmluZy5nZXQoKSByZXRhaW5dIGF1
dG9yZWxlYXNlXSwgYWN0dWFsUmFuZ2UpOworICAgIH0pOworfQorCit2b2lkIFdlYlZpZXdJbXBs
OjpmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZShOU1JhbmdlIHRoZVJhbmdlLCB2b2lkKF5jb21w
bGV0aW9uSGFuZGxlclB0cikoTlNSZWN0IGZpcnN0UmVjdCwgTlNSYW5nZSBhY3R1YWxSYW5nZSkp
Cit7CisgICAgUmV0YWluUHRyPGlkPiBjb21wbGV0aW9uSGFuZGxlciA9IGFkb3B0TlMoW2NvbXBs
ZXRpb25IYW5kbGVyUHRyIGNvcHldKTsKKworICAgIExPRyhUZXh0SW5wdXQsICJmaXJzdFJlY3RG
b3JDaGFyYWN0ZXJSYW5nZTooJXUsICV1KSIsIHRoZVJhbmdlLmxvY2F0aW9uLCB0aGVSYW5nZS5s
ZW5ndGgpOworCisgICAgLy8gSnVzdCB0byBtYXRjaCBOU1RleHRWaWV3J3MgYmVoYXZpb3IuIFJl
Z3Jlc3Npb24gdGVzdHMgY2Fubm90IGRldGVjdCB0aGlzOworICAgIC8vIHRvIHJlcHJvZHVjZSwg
dXNlIGEgdGVzdCBhcHBsaWNhdGlvbiBmcm9tIGh0dHA6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ2ODIKKyAgICAvLyAodHlwZSBzb21ldGhpbmc7IHRyeSByYW5nZXMgKDEsIC0x
KSBhbmQgKDIsIC0xKS4KKyAgICBpZiAoKHRoZVJhbmdlLmxvY2F0aW9uICsgdGhlUmFuZ2UubGVu
Z3RoIDwgdGhlUmFuZ2UubG9jYXRpb24pICYmICh0aGVSYW5nZS5sb2NhdGlvbiArIHRoZVJhbmdl
Lmxlbmd0aCAhPSAwKSkKKyAgICAgICAgdGhlUmFuZ2UubGVuZ3RoID0gMDsKKworICAgIGlmICh0
aGVSYW5nZS5sb2NhdGlvbiA9PSBOU05vdEZvdW5kKSB7CisgICAgICAgIExPRyhUZXh0SW5wdXQs
ICIgICAgLT4gTlNaZXJvUmVjdCIpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlclB0cihOU1pl
cm9SZWN0LCB0aGVSYW5nZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHdl
YWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOworICAgIG1fcGFnZS5maXJzdFJlY3RGb3JDaGFyYWN0
ZXJSYW5nZUFzeW5jKHRoZVJhbmdlLCBbd2Vha1RoaXMsIGNvbXBsZXRpb25IYW5kbGVyXShjb25z
dCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0LCBjb25zdCBFZGl0aW5nUmFuZ2UmIGFjdHVhbFJhbmdl
LCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICAgICAgaWYgKCF3ZWFr
VGhpcykKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB2b2lkICheY29tcGxldGlvbkhh
bmRsZXJCbG9jaykoTlNSZWN0LCBOU1JhbmdlKSA9ICh2b2lkICheKShOU1JlY3QsIE5TUmFuZ2Up
KWNvbXBsZXRpb25IYW5kbGVyLmdldCgpOworICAgICAgICBpZiAoZXJyb3IgIT0gV2ViS2l0OjpD
YWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKSB7CisgICAgICAgICAgICBMT0coVGV4dElucHV0LCAi
ICAgIC4uLmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlIGZhaWxlZC4iKTsKKyAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyQmxvY2soTlNaZXJvUmVjdCwgTlNNYWtlUmFuZ2UoTlNOb3RGb3Vu
ZCwgMCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgTlNSZWN0
IHJlc3VsdFJlY3QgPSBbd2Vha1RoaXMtPm1fdmlldyBjb252ZXJ0UmVjdDpyZWN0IHRvVmlldzpu
aWxdOworICAgICAgICByZXN1bHRSZWN0ID0gW3dlYWtUaGlzLT5tX3ZpZXcud2luZG93IGNvbnZl
cnRSZWN0VG9TY3JlZW46cmVzdWx0UmVjdF07CisKKyAgICAgICAgTE9HKFRleHRJbnB1dCwgIiAg
ICAtPiBmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSByZXR1cm5lZCAoJWYsICVmLCAlZiwgJWYp
IiwgcmVzdWx0UmVjdC5vcmlnaW4ueCwgcmVzdWx0UmVjdC5vcmlnaW4ueSwgcmVzdWx0UmVjdC5z
aXplLndpZHRoLCByZXN1bHRSZWN0LnNpemUuaGVpZ2h0KTsKKyAgICAgICAgY29tcGxldGlvbkhh
bmRsZXJCbG9jayhyZXN1bHRSZWN0LCBhY3R1YWxSYW5nZSk7CisgICAgfSk7Cit9CisKK3ZvaWQg
V2ViVmlld0ltcGw6OmNoYXJhY3RlckluZGV4Rm9yUG9pbnQoTlNQb2ludCB0aGVQb2ludCwgdm9p
ZCheY29tcGxldGlvbkhhbmRsZXJQdHIpKE5TVUludGVnZXIpKQoreworICAgIFJldGFpblB0cjxp
ZD4gY29tcGxldGlvbkhhbmRsZXIgPSBhZG9wdE5TKFtjb21wbGV0aW9uSGFuZGxlclB0ciBjb3B5
XSk7CisKKyAgICBMT0coVGV4dElucHV0LCAiY2hhcmFjdGVySW5kZXhGb3JQb2ludDooJWYsICVm
KSIsIHRoZVBvaW50LngsIHRoZVBvaW50LnkpOworCisgICAgTlNXaW5kb3cgKndpbmRvdyA9IG1f
dmlldy53aW5kb3c7CisKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICBp
ZiAod2luZG93KQorICAgICAgICB0aGVQb2ludCA9IFt3aW5kb3cgY29udmVydFNjcmVlblRvQmFz
ZTp0aGVQb2ludF07CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgdGhlUG9pbnQg
PSBbbV92aWV3IGNvbnZlcnRQb2ludDp0aGVQb2ludCBmcm9tVmlldzpuaWxdOyAgLy8gdGhlIHBv
aW50IGlzIHJlbGF0aXZlIHRvIHRoZSBtYWluIGZyYW1lCisKKyAgICBtX3BhZ2UuY2hhcmFjdGVy
SW5kZXhGb3JQb2ludEFzeW5jKFdlYkNvcmU6OkludFBvaW50KHRoZVBvaW50KSwgW2NvbXBsZXRp
b25IYW5kbGVyXSh1aW50NjRfdCByZXN1bHQsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBl
cnJvcikgeworICAgICAgICB2b2lkICheY29tcGxldGlvbkhhbmRsZXJCbG9jaykoTlNVSW50ZWdl
cikgPSAodm9pZCAoXikoTlNVSW50ZWdlcikpY29tcGxldGlvbkhhbmRsZXIuZ2V0KCk7CisgICAg
ICAgIGlmIChlcnJvciAhPSBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpIHsKKyAg
ICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLi4uY2hhcmFjdGVySW5kZXhGb3JQb2ludCBm
YWlsZWQuIik7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlckJsb2NrKDApOworICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIGlmIChyZXN1bHQgPT0gbm90Rm91bmQp
CisgICAgICAgICAgICByZXN1bHQgPSBOU05vdEZvdW5kOworICAgICAgICBMT0coVGV4dElucHV0
LCAiICAgIC0+IGNoYXJhY3RlckluZGV4Rm9yUG9pbnQgcmV0dXJuZWQgJWx1IiwgcmVzdWx0KTsK
KyAgICAgICAgY29tcGxldGlvbkhhbmRsZXJCbG9jayhyZXN1bHQpOworICAgIH0pOworfQorCitO
U1RleHRJbnB1dENvbnRleHQgKldlYlZpZXdJbXBsOjppbnB1dENvbnRleHQoKQoreworICAgIGlm
IChwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpKSB7CisgICAgICAgIEFTU0VSVCgh
bV9jb2xsZWN0ZWRLZXlwcmVzc0NvbW1hbmRzKTsgLy8gU2hvdWxkIG5vdCBnZXQgaGVyZSBmcm9t
IC1faW50ZXJwcmV0S2V5RXZlbnQ6Y29tcGxldGlvbkhhbmRsZXI6LCB3ZSBvbmx5IHVzZSBXS1Rl
eHRJbnB1dFdpbmRvd0NvbnRyb2xsZXIgYWZ0ZXIgZ2l2aW5nIHRoZSBwbHVnLWluIGEgY2hhbmNl
IHRvIGhhbmRsZSBrZXlkb3duIG5hdGl2ZWx5LgorICAgICAgICByZXR1cm4gW1tXS1RleHRJbnB1
dFdpbmRvd0NvbnRyb2xsZXIgc2hhcmVkVGV4dElucHV0V2luZG93Q29udHJvbGxlcl0gaW5wdXRD
b250ZXh0XTsKKyAgICB9CisKKyAgICAvLyBEaXNhYmxlIHRleHQgaW5wdXQgbWFjaGluZXJ5IHdo
ZW4gaW4gbm9uLWVkaXRhYmxlIGNvbnRlbnQuIEFuIGludmlzaWJsZSBpbmxpbmUgaW5wdXQgYXJl
YSBhZmZlY3RzIHBlcmZvcm1hbmNlLCBhbmQgY2FuIHByZXZlbnQgRXhwb3NlIGZyb20gd29ya2lu
Zy4KKyAgICBpZiAoIW1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlKQorICAg
ICAgICByZXR1cm4gbmlsOworCisgICAgcmV0dXJuIFttX3ZpZXcgX3N1cGVySW5wdXRDb250ZXh0
XTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6dW5tYXJrVGV4dCgpCit7CisgICAgTE9HKFRleHRJ
bnB1dCwgInVubWFya1RleHQiKTsKKworICAgIG1fcGFnZS5jb25maXJtQ29tcG9zaXRpb25Bc3lu
YygpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRNYXJrZWRUZXh0KGlkIHN0cmluZywgTlNS
YW5nZSBzZWxlY3RlZFJhbmdlLCBOU1JhbmdlIHJlcGxhY2VtZW50UmFuZ2UpCit7CisgICAgQk9P
TCBpc0F0dHJpYnV0ZWRTdHJpbmcgPSBbc3RyaW5nIGlzS2luZE9mQ2xhc3M6W05TQXR0cmlidXRl
ZFN0cmluZyBjbGFzc11dOworICAgIEFTU0VSVChpc0F0dHJpYnV0ZWRTdHJpbmcgfHwgW3N0cmlu
ZyBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKTsKKworICAgIExPRyhUZXh0SW5wdXQs
ICJzZXRNYXJrZWRUZXh0OlwiJUBcIiBzZWxlY3RlZFJhbmdlOigldSwgJXUpIHJlcGxhY2VtZW50
UmFuZ2U6KCV1LCAldSkiLCBpc0F0dHJpYnV0ZWRTdHJpbmcgPyBbc3RyaW5nIHN0cmluZ10gOiBz
dHJpbmcsIHNlbGVjdGVkUmFuZ2UubG9jYXRpb24sIHNlbGVjdGVkUmFuZ2UubGVuZ3RoLCByZXBs
YWNlbWVudFJhbmdlLmxvY2F0aW9uLCByZXBsYWNlbWVudFJhbmdlLmxlbmd0aCk7CisKKyAgICBW
ZWN0b3I8V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+IHVuZGVybGluZXM7CisgICAgTlNT
dHJpbmcgKnRleHQ7CisKKyAgICBpZiAoaXNBdHRyaWJ1dGVkU3RyaW5nKSB7CisgICAgICAgIC8v
IEZJWE1FOiBXZSBpZ25vcmUgbW9zdCBhdHRyaWJ1dGVzIGZyb20gdGhlIHN0cmluZywgc28gYW4g
aW5wdXQgbWV0aG9kIGNhbm5vdCBzcGVjaWZ5IGUuZy4gYSBmb250IG9yIGEgZ2x5cGggdmFyaWF0
aW9uLgorICAgICAgICB0ZXh0ID0gW3N0cmluZyBzdHJpbmddOworICAgICAgICBleHRyYWN0VW5k
ZXJsaW5lcyhzdHJpbmcsIHVuZGVybGluZXMpOworICAgIH0gZWxzZQorICAgICAgICB0ZXh0ID0g
c3RyaW5nOworCisgICAgaWYgKGluU2VjdXJlSW5wdXRTdGF0ZSgpKSB7CisgICAgICAgIC8vIElu
IHBhc3N3b3JkIGZpZWxkcywgd2Ugb25seSBhbGxvdyBBU0NJSSBkZWFkIGtleXMsIGFuZCBkb24n
dCBhbGxvdyBpbmxpbmUgaW5wdXQsIG1hdGNoaW5nIE5TU2VjdXJlVGV4dElucHV0RmllbGQuCisg
ICAgICAgIC8vIEFsbG93aW5nIEFTQ0lJIGRlYWQga2V5cyBpcyBuZWNlc3NhcnkgdG8gZW5hYmxl
IGZ1bGwgUm9tYW4gaW5wdXQgd2hlbiB1c2luZyBhIFZpZXRuYW1lc2Uga2V5Ym9hcmQuCisgICAg
ICAgIEFTU0VSVCghbV9wYWdlLmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb24pOworICAgICAg
ICBub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uKCk7CisgICAgICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgc3RvcmUgdGhlIGNvbW1hbmQgdG8gaGFuZGxlIGl0IGFmdGVy
IERPTSBldmVudCBwcm9jZXNzaW5nLCBhcyBpdCdzIHJlZ3VsYXIga2V5Ym9hcmQgaW5wdXQgbm93
LCBub3QgYSBjb21wb3NpdGlvbi4KKyAgICAgICAgaWYgKFt0ZXh0IGxlbmd0aF0gPT0gMSAmJiBp
c0FTQ0lJKFt0ZXh0IGNoYXJhY3RlckF0SW5kZXg6MF0pKQorICAgICAgICAgICAgbV9wYWdlLmlu
c2VydFRleHRBc3luYyh0ZXh0LCByZXBsYWNlbWVudFJhbmdlKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgTlNCZWVwKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3BhZ2Uu
c2V0Q29tcG9zaXRpb25Bc3luYyh0ZXh0LCB1bmRlcmxpbmVzLCBzZWxlY3RlZFJhbmdlLCByZXBs
YWNlbWVudFJhbmdlKTsKK30KKworLy8gU3luY2hyb25vdXMgTlNUZXh0SW5wdXRDbGllbnQgaXMg
c3RpbGwgaW1wbGVtZW50ZWQgdG8gY2F0Y2ggc3B1cmlvdXMgc3luYyBjYWxscy4gUmVtb3ZlIHdo
ZW4gdGhhdCBpcyBubyBsb25nZXIgbmVlZGVkLgorCitOU1JhbmdlIFdlYlZpZXdJbXBsOjpzZWxl
Y3RlZFJhbmdlKCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gTlNN
YWtlUmFuZ2UoTlNOb3RGb3VuZCwgMCk7Cit9CisKK2Jvb2wgV2ViVmlld0ltcGw6Omhhc01hcmtl
ZFRleHQoKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBOTzsKK30K
KworTlNSYW5nZSBXZWJWaWV3SW1wbDo6bWFya2VkUmFuZ2UoKQoreworICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgIHJldHVybiBOU01ha2VSYW5nZShOU05vdEZvdW5kLCAwKTsKK30KKwor
TlNBdHRyaWJ1dGVkU3RyaW5nICpXZWJWaWV3SW1wbDo6YXR0cmlidXRlZFN1YnN0cmluZ0ZvclBy
b3Bvc2VkUmFuZ2UoTlNSYW5nZSBuc1JhbmdlLCBOU1JhbmdlUG9pbnRlciBhY3R1YWxSYW5nZSkK
K3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gbmlsOworfQorCitOU1VJ
bnRlZ2VyIFdlYlZpZXdJbXBsOjpjaGFyYWN0ZXJJbmRleEZvclBvaW50KE5TUG9pbnQgdGhlUG9p
bnQpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK05T
UmVjdCBXZWJWaWV3SW1wbDo6Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UoTlNSYW5nZSB0aGVS
YW5nZSwgTlNSYW5nZVBvaW50ZXIgYWN0dWFsUmFuZ2UpCit7CisgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7CisgICAgcmV0dXJuIE5TWmVyb1JlY3Q7Cit9CisKK2Jvb2wgV2ViVmlld0ltcGw6OnBl
cmZvcm1LZXlFcXVpdmFsZW50KE5TRXZlbnQgKmV2ZW50KQoreworICAgIGlmIChpZ25vcmVzTm9u
V2hlZWxFdmVudHMoKSkKKyAgICAgICAgcmV0dXJuIE5POworCisgICAgLy8gVGhlcmUncyBhIGNo
YW5jZSB0aGF0IHJlc3BvbmRpbmcgdG8gdGhpcyBldmVudCB3aWxsIHJ1biBhIG5lc3RlZCBldmVu
dCBsb29wLCBhbmQKKyAgICAvLyBmZXRjaGluZyBhIG5ldyBldmVudCBtaWdodCByZWxlYXNlIHRo
ZSBvbGQgb25lLiBSZXRhaW5pbmcgYW5kIHRoZW4gYXV0b3JlbGVhc2luZworICAgIC8vIHRoZSBj
dXJyZW50IGV2ZW50IHByZXZlbnRzIHRoYXQgZnJvbSBjYXVzaW5nIGEgcHJvYmxlbSBpbnNpZGUg
V2ViS2l0IG9yIEFwcEtpdCBjb2RlLgorICAgIFtbZXZlbnQgcmV0YWluXSBhdXRvcmVsZWFzZV07
CisKKyAgICAvLyBXZSBnZXQgRXNjIGtleSBoZXJlIGFmdGVyIHByb2Nlc3NpbmcgZWl0aGVyIEVz
YyBvciBDbWQrcGVyaW9kLiBUaGUgZm9ybWVyIHN0YXJ0cyBhcyBhIGtleURvd24sIGFuZCB0aGUg
bGF0dGVyIHN0YXJ0cyBhcyBhIGtleSBlcXVpdmFsZW50LAorICAgIC8vIGJ1dCBib3RoIGdldCB0
cmFuc2Zvcm1lZCB0byBhIGNhbmNlbE9wZXJhdGlvbjogY29tbWFuZCwgZXhlY3V0aW5nIHdoaWNo
IHBhc3NlcyBhbiBFc2Mga2V5IGV2ZW50IHRvIC1wZXJmb3JtS2V5RXF1aXZhbGVudDouCisgICAg
Ly8gRG9uJ3QgaW50ZXJwcmV0IHRoaXMgZXZlbnQgYWdhaW4sIGF2b2lkaW5nIHJlLWVudHJhbmN5
IGFuZCBpbmZpbml0ZSBsb29wcy4KKyAgICBpZiAoW1tldmVudCBjaGFyYWN0ZXJzSWdub3JpbmdN
b2RpZmllcnNdIGlzRXF1YWxUb1N0cmluZzpAIlxlIl0gJiYgIShbZXZlbnQgbW9kaWZpZXJGbGFn
c10gJiBOU0RldmljZUluZGVwZW5kZW50TW9kaWZpZXJGbGFnc01hc2spKQorICAgICAgICByZXR1
cm4gW21fdmlldyBfc3VwZXJQZXJmb3JtS2V5RXF1aXZhbGVudDpldmVudF07CisKKyAgICBpZiAo
bV9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCkgeworICAgICAgICAvLyBXZWJDb3JlIGhhcyBhbHJl
YWR5IHNlZW4gdGhlIGV2ZW50LCBubyBuZWVkIGZvciBjdXN0b20gcHJvY2Vzc2luZy4KKyAgICAg
ICAgLy8gTm90ZSB0aGF0IHdlIGNhbiBnZXQgbXVsdGlwbGUgZXZlbnRzIGZvciBlYWNoIGV2ZW50
IGJlaW5nIHJlLXNlbnQuIEZvciBleGFtcGxlLCBmb3IgQ21kKyc9JyBBcHBLaXQKKyAgICAgICAg
Ly8gZmlyc3QgcGVyZm9ybXMgdGhlIG9yaWdpbmFsIGtleSBlcXVpdmFsZW50LCBhbmQgaWYgdGhh
dCBpc24ndCBoYW5kbGVkLCBpdCBkaXNwYXRjaGVzIGEgc3ludGhldGljIENtZCsnKycuCisgICAg
ICAgIHJldHVybiBbbV92aWV3IF9zdXBlclBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKKyAg
ICB9CisKKyAgICBBU1NFUlQoZXZlbnQgPT0gW05TQXBwIGN1cnJlbnRFdmVudF0pOworCisgICAg
ZGlzYWJsZUNvbXBsZXhUZXh0SW5wdXRJZk5lY2Vzc2FyeSgpOworCisgICAgLy8gUGFzcyBrZXkg
Y29tYm9zIHRocm91Z2ggV2ViQ29yZSBpZiB0aGVyZSBpcyBhIGtleSBiaW5kaW5nIGF2YWlsYWJs
ZSBmb3IKKyAgICAvLyB0aGlzIGV2ZW50LiBUaGlzIGxldHMgd2VicGFnZXMgaGF2ZSBhIGNyYWNr
IGF0IGludGVyY2VwdGluZyBrZXktbW9kaWZpZWQga2V5cHJlc3Nlcy4KKyAgICAvLyBGSVhNRTog
V2h5IGlzIHRoZSBmaXJzdFJlc3BvbmRlciBjaGVjayBuZWVkZWQ/CisgICAgaWYgKG1fdmlldyA9
PSBtX3ZpZXcud2luZG93LmZpcnN0UmVzcG9uZGVyKSB7CisgICAgICAgIGludGVycHJldEtleUV2
ZW50KGV2ZW50LCBeKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykgeworICAgICAgICAgICAgbV9wYWdlLmhh
bmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5
SW5wdXRNZXRob2QsIGNvbW1hbmRzKSk7CisgICAgICAgIH0pOworICAgICAgICByZXR1cm4gWUVT
OworICAgIH0KKyAgICAKKyAgICByZXR1cm4gW21fdmlldyBfc3VwZXJQZXJmb3JtS2V5RXF1aXZh
bGVudDpldmVudF07Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmtleVVwKE5TRXZlbnQgKnRoZUV2
ZW50KQoreworICAgIGlmIChpZ25vcmVzTm9uV2hlZWxFdmVudHMoKSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgTE9HKFRleHRJbnB1dCwgImtleVVwOiVwICVAIiwgdGhlRXZlbnQsIHRoZUV2ZW50
KTsKKworICAgIGludGVycHJldEtleUV2ZW50KHRoZUV2ZW50LCBeKEJPT0wgaGFuZGxlZEJ5SW5w
dXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5k
cykgeworICAgICAgICBBU1NFUlQoIWhhbmRsZWRCeUlucHV0TWV0aG9kIHx8IGNvbW1hbmRzLmlz
RW1wdHkoKSk7CisgICAgICAgIG1fcGFnZS5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktl
eWJvYXJkRXZlbnQodGhlRXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykpOwor
ICAgIH0pOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjprZXlEb3duKE5TRXZlbnQgKnRoZUV2ZW50
KQoreworICAgIGlmIChpZ25vcmVzTm9uV2hlZWxFdmVudHMoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgTE9HKFRleHRJbnB1dCwgImtleURvd246JXAgJUAlcyIsIHRoZUV2ZW50LCB0aGVFdmVu
dCwgKHRoZUV2ZW50ID09IG1fa2V5RG93bkV2ZW50QmVpbmdSZXNlbnQpID8gIiAocmUtc2VudCki
IDogIiIpOworCisgICAgaWYgKHRyeUhhbmRsZVBsdWdpbkNvbXBsZXhUZXh0SW5wdXRLZXlEb3du
KHRoZUV2ZW50KSkgeworICAgICAgICBMT0coVGV4dElucHV0LCAiLi4uaGFuZGxlZCBieSBwbHVn
LWluIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBXZSBjb3VsZCBiZSByZWNl
aXZpbmcgYSBrZXkgZG93biBmcm9tIEFwcEtpdCBpZiB3ZSBoYXZlIHJlLXNlbnQgYW4gZXZlbnQK
KyAgICAvLyB0aGF0IG1hcHMgdG8gYW4gYWN0aW9uIHRoYXQgaXMgY3VycmVudGx5IHVuYXZhaWxh
YmxlIChmb3IgZXhhbXBsZSBhIGNvcHkgd2hlbgorICAgIC8vIHRoZXJlIGlzIG5vIHJhbmdlIHNl
bGVjdGlvbikuCisgICAgLy8gSWYgdGhpcyBpcyB0aGUgY2FzZSB3ZSBzaG91bGQgaWdub3JlIHRo
ZSBrZXkgZG93bi4KKyAgICBpZiAobV9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCA9PSB0aGVFdmVu
dCkgeworICAgICAgICBbbV92aWV3IF9zdXBlcktleURvd246dGhlRXZlbnRdOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgaW50ZXJwcmV0S2V5RXZlbnQodGhlRXZlbnQsIF4oQk9PTCBo
YW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFu
ZD4mIGNvbW1hbmRzKSB7CisgICAgICAgIEFTU0VSVCghaGFuZGxlZEJ5SW5wdXRNZXRob2QgfHwg
Y29tbWFuZHMuaXNFbXB0eSgpKTsKKyAgICAgICAgbV9wYWdlLmhhbmRsZUtleWJvYXJkRXZlbnQo
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudCh0aGVFdmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNv
bW1hbmRzKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmZsYWdzQ2hhbmdlZChO
U0V2ZW50ICp0aGVFdmVudCkKK3sKKyAgICBpZiAoaWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCisg
ICAgICAgIHJldHVybjsKKworICAgIExPRyhUZXh0SW5wdXQsICJmbGFnc0NoYW5nZWQ6JXAgJUAi
LCB0aGVFdmVudCwgdGhlRXZlbnQpOworCisgICAgdW5zaWduZWQgc2hvcnQga2V5Q29kZSA9IFt0
aGVFdmVudCBrZXlDb2RlXTsKKworICAgIC8vIERvbid0IG1ha2UgYW4gZXZlbnQgZnJvbSB0aGUg
bnVtIGxvY2sgYW5kIGZ1bmN0aW9uIGtleXMKKyAgICBpZiAoIWtleUNvZGUgfHwga2V5Q29kZSA9
PSAxMCB8fCBrZXlDb2RlID09IDYzKQorICAgICAgICByZXR1cm47CisKKyAgICBpbnRlcnByZXRL
ZXlFdmVudCh0aGVFdmVudCwgXihCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0
b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKKyAgICAgICAgbV9wYWdl
LmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCh0aGVFdmVudCwgaGFu
ZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSk7CisgICAgfSk7Cit9CisKKyNlbHNlIC8vIFVT
RShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKKworYm9vbCBXZWJWaWV3SW1wbDo6aW50ZXJwcmV0
S2V5RXZlbnQoTlNFdmVudCAqZXZlbnQsIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+
JiBjb21tYW5kcykKK3sKKyAgICBBU1NFUlQoIW1faW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVy
cyk7CisgICAgQVNTRVJUKGNvbW1hbmRzLmlzRW1wdHkoKSk7CisKKyAgICBpZiAoW2V2ZW50IHR5
cGVdID09IE5TRmxhZ3NDaGFuZ2VkKQorICAgICAgICByZXR1cm4gTk87CisKKyAgICBXS1ZpZXdJ
bnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7CisgICAgcGFyYW1ldGVycy5l
dmVudEludGVycHJldGF0aW9uSGFkU2lkZUVmZmVjdHMgPSBmYWxzZTsKKyAgICBwYXJhbWV0ZXJz
LmV4ZWN1dGluZ1NhdmVkS2V5cHJlc3NDb21tYW5kcyA9IGZhbHNlOworICAgIC8vIFdlIGFzc3Vt
ZSB0aGF0IGFuIGlucHV0IG1ldGhvZCBoYXMgY29uc3VtZWQgdGhlIGV2ZW50LCBhbmQgb25seSBj
aGFuZ2UgdGhpcyBhc3N1bXB0aW9uIGlmIG9uZSBvZiB0aGUgTlNUZXh0SW5wdXQgbWV0aG9kcyBp
cyBjYWxsZWQuCisgICAgLy8gV2UgYXNzdW1lIHRoZSBJTSB3aWxsICpub3QqIGNvbnN1bWUgaG90
a2V5IHNlcXVlbmNlcy4KKyAgICBwYXJhbWV0ZXJzLmNvbnN1bWVkQnlJTSA9ICEoW2V2ZW50IG1v
ZGlmaWVyRmxhZ3NdICYgTlNDb21tYW5kS2V5TWFzayk7CisgICAgcGFyYW1ldGVycy5jb21tYW5k
cyA9ICZjb21tYW5kczsKKyAgICBtX2ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgPSAmcGFy
YW1ldGVyczsKKworICAgIExPRyhUZXh0SW5wdXQsICItPiBpbnRlcnByZXRLZXlFdmVudHM6JXAg
JUAiLCBldmVudCwgZXZlbnQpOworICAgIFttX3ZpZXcgaW50ZXJwcmV0S2V5RXZlbnRzOltOU0Fy
cmF5IGFycmF5V2l0aE9iamVjdDpldmVudF1dOworCisgICAgbV9pbnRlcnByZXRLZXlFdmVudHNQ
YXJhbWV0ZXJzID0gbnVsbHB0cjsKKworICAgIC8vIEFuIGlucHV0IG1ldGhvZCBtYXkgY29uc3Vt
ZSBhbiBldmVudCBhbmQgbm90IHRlbGwgdXMgKGUuZy4gd2hlbiBkaXNwbGF5aW5nIGEgY2FuZGlk
YXRlIHdpbmRvdyksCisgICAgLy8gaW4gd2hpY2ggY2FzZSB3ZSBzaG91bGQgbm90IGJ1YmJsZSB0
aGUgZXZlbnQgdXAgdGhlIERPTS4KKyAgICBpZiAocGFyYW1ldGVycy5jb25zdW1lZEJ5SU0pIHsK
KyAgICAgICAgQVNTRVJUKGNvbW1hbmRzLmlzRW1wdHkoKSk7CisgICAgICAgIExPRyhUZXh0SW5w
dXQsICIuLi5ldmVudCAlcCB3YXMgY29uc3VtZWQgYnkgYW4gaW5wdXQgbWV0aG9kIiwgZXZlbnQp
OworICAgICAgICByZXR1cm4gWUVTOworICAgIH0KKworICAgIExPRyhUZXh0SW5wdXQsICIuLi5p
bnRlcnByZXRLZXlFdmVudHMgZm9yIGV2ZW50ICVwIGRvbmUsIHJldHVybnMgJWQiLCBldmVudCwg
cGFyYW1ldGVycy5ldmVudEludGVycHJldGF0aW9uSGFkU2lkZUVmZmVjdHMpOworCisgICAgLy8g
SWYgd2UgaGF2ZSBhbHJlYWR5IGV4ZWN1dGVkIGFsbCBvciBzb21lIG9mIHRoZSBjb21tYW5kcywg
dGhlIGV2ZW50IGlzICJoYW5kbGVkIi4gTm90ZSB0aGF0IHRoZXJlIGFyZSBhZGRpdGlvbmFsIGNo
ZWNrcyBvbiB3ZWIgcHJvY2VzcyBzaWRlLgorICAgIHJldHVybiBwYXJhbWV0ZXJzLmV2ZW50SW50
ZXJwcmV0YXRpb25IYWRTaWRlRWZmZWN0czsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6ZXhlY3V0
ZVNhdmVkS2V5cHJlc3NDb21tYW5kcygpCit7CisgICAgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRz
UGFyYW1ldGVycyogcGFyYW1ldGVycyA9IG1faW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVyczsK
KyAgICBpZiAoIXBhcmFtZXRlcnMgfHwgcGFyYW1ldGVycy0+Y29tbWFuZHMtPmlzRW1wdHkoKSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgLy8gV2UgY291bGQgYmUgY2FsbGVkIGFnYWluIGlmIHRo
ZSBleGVjdXRpb24gb2Ygb25lIGNvbW1hbmQgdHJpZ2dlcnMgYSBjYWxsIHRvIHNlbGVjdGVkUmFu
Z2UuCisgICAgLy8gSW4gdGhpcyBjYXNlLCB0aGUgc3RhdGUgaXMgdXAgdG8gZGF0ZSwgYW5kIHdl
IGRvbid0IG5lZWQgdG8gZXhlY3V0ZSBhbnkgbW9yZSBzYXZlZCBjb21tYW5kcyB0byByZXR1cm4g
YSByZXN1bHQuCisgICAgaWYgKHBhcmFtZXRlcnMtPmV4ZWN1dGluZ1NhdmVkS2V5cHJlc3NDb21t
YW5kcykKKyAgICAgICAgcmV0dXJuOworCisgICAgTE9HKFRleHRJbnB1dCwgIkV4ZWN1dGluZyAl
dSBzYXZlZCBrZXlwcmVzcyBjb21tYW5kcy4uLiIsIHBhcmFtZXRlcnMtPmNvbW1hbmRzLT5zaXpl
KCkpOworCisgICAgcGFyYW1ldGVycy0+ZXhlY3V0aW5nU2F2ZWRLZXlwcmVzc0NvbW1hbmRzID0g
dHJ1ZTsKKyAgICBwYXJhbWV0ZXJzLT5ldmVudEludGVycHJldGF0aW9uSGFkU2lkZUVmZmVjdHMg
fD0gbV9wYWdlLmV4ZWN1dGVLZXlwcmVzc0NvbW1hbmRzKCpwYXJhbWV0ZXJzLT5jb21tYW5kcyk7
CisgICAgcGFyYW1ldGVycy0+Y29tbWFuZHMtPmNsZWFyKCk7CisgICAgcGFyYW1ldGVycy0+ZXhl
Y3V0aW5nU2F2ZWRLZXlwcmVzc0NvbW1hbmRzID0gZmFsc2U7CisKKyAgICBMT0coVGV4dElucHV0
LCAiLi4uZG9uZSBleGVjdXRpbmcgc2F2ZWQga2V5cHJlc3MgY29tbWFuZHMuIik7Cit9CisKK3Zv
aWQgV2ViVmlld0ltcGw6OmRvQ29tbWFuZEJ5U2VsZWN0b3IoU0VMIHNlbGVjdG9yKQoreworICAg
IExPRyhUZXh0SW5wdXQsICJkb0NvbW1hbmRCeVNlbGVjdG9yOlwiJXNcIiIsIHNlbF9nZXROYW1l
KHNlbGVjdG9yKSk7CisKKyAgICBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzKiBw
YXJhbWV0ZXJzID0gbV9pbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzOworICAgIGlmIChwYXJh
bWV0ZXJzKQorICAgICAgICBwYXJhbWV0ZXJzLT5jb25zdW1lZEJ5SU0gPSBmYWxzZTsKKworICAg
IC8vIEFzIGluIGluc2VydFRleHQ6cmVwbGFjZW1lbnRSYW5nZTosIHdlIGFzc3VtZSB0aGF0IHRo
ZSBjYWxsIGNvbWVzIGZyb20gYW4gaW5wdXQgbWV0aG9kIGlmIHRoZXJlIGlzIG1hcmtlZCB0ZXh0
LgorICAgIGJvb2wgaXNGcm9tSW5wdXRNZXRob2QgPSBtX3BhZ2UuZWRpdG9yU3RhdGUoKS5oYXND
b21wb3NpdGlvbjsKKworICAgIGlmIChwYXJhbWV0ZXJzICYmICFpc0Zyb21JbnB1dE1ldGhvZCkg
eworICAgICAgICBXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQgY29tbWFuZChOU1N0cmluZ0Zyb21T
ZWxlY3RvcihzZWxlY3RvcikpOworICAgICAgICBwYXJhbWV0ZXJzLT5jb21tYW5kcy0+YXBwZW5k
KGNvbW1hbmQpOworICAgICAgICBMT0coVGV4dElucHV0LCAiLi4uc3RvcmVkIik7CisgICAgICAg
IG1fcGFnZS5yZWdpc3RlcktleXByZXNzQ29tbWFuZE5hbWUoY29tbWFuZC5jb21tYW5kTmFtZSk7
CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gRklYTUU6IFNlbmQgdGhlIGNvbW1hbmQgdG8gRWRp
dG9yIHN5bmNocm9ub3VzbHkgYW5kIG9ubHkgc2VuZCBpdCBhbG9uZyB0aGUKKyAgICAgICAgLy8g
cmVzcG9uZGVyIGNoYWluIGlmIGl0J3MgYSBzZWxlY3RvciB0aGF0IGRvZXMgbm90IGNvcnJlc3Bv
bmQgdG8gYW4gZWRpdGluZyBjb21tYW5kLgorICAgICAgICBbbV92aWV3IF9zdXBlckRvQ29tbWFu
ZEJ5U2VsZWN0b3I6c2VsZWN0b3JdOworICAgIH0KK30KKwordm9pZCBXZWJWaWV3SW1wbDo6aW5z
ZXJ0VGV4dChpZCBzdHJpbmcpCit7CisgICAgLy8gVW5saWtlIGFuIE5TVGV4dElucHV0Q2xpZW50
IHZhcmlhbnQgd2l0aCByZXBsYWNlbWVudFJhbmdlLCB0aGlzIE5TUmVzcG9uZGVyIG1ldGhvZCBp
cyBjYWxsZWQgd2hlbiB0aGVyZSBpcyBubyBpbnB1dCBjb250ZXh0LAorICAgIC8vIHNvIHRleHQg
aW5wdXQgcHJvY2Vzc2luZyBpc24ndCBwZXJmb3JtZWQuIFdlIGFyZSBub3QgZ29pbmcgdG8gYWN0
dWFsbHkgaW5zZXJ0IGFueSB0ZXh0IGluIHRoYXQgY2FzZSwgYnV0IHNhdmluZyBhbiBpbnNlcnRU
ZXh0CisgICAgLy8gY29tbWFuZCBlbnN1cmVzIHRoYXQgYSBrZXlwcmVzcyBldmVudCBpcyBkaXNw
YXRjaGVkIGFzIGFwcHJvcHJpYXRlLgorICAgIGluc2VydFRleHQoc3RyaW5nLCBOU01ha2VSYW5n
ZShOU05vdEZvdW5kLCAwKSk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6Omluc2VydFRleHQoaWQg
c3RyaW5nLCBOU1JhbmdlIHJlcGxhY2VtZW50UmFuZ2UpCit7CisgICAgQk9PTCBpc0F0dHJpYnV0
ZWRTdHJpbmcgPSBbc3RyaW5nIGlzS2luZE9mQ2xhc3M6W05TQXR0cmlidXRlZFN0cmluZyBjbGFz
c11dOworICAgIEFTU0VSVChpc0F0dHJpYnV0ZWRTdHJpbmcgfHwgW3N0cmluZyBpc0tpbmRPZkNs
YXNzOltOU1N0cmluZyBjbGFzc11dKTsKKworICAgIGlmIChyZXBsYWNlbWVudFJhbmdlLmxvY2F0
aW9uICE9IE5TTm90Rm91bmQpCisgICAgICAgIExPRyhUZXh0SW5wdXQsICJpbnNlcnRUZXh0Olwi
JUBcIiByZXBsYWNlbWVudFJhbmdlOigldSwgJXUpIiwgaXNBdHRyaWJ1dGVkU3RyaW5nID8gW3N0
cmluZyBzdHJpbmddIDogc3RyaW5nLCByZXBsYWNlbWVudFJhbmdlLmxvY2F0aW9uLCByZXBsYWNl
bWVudFJhbmdlLmxlbmd0aCk7CisgICAgZWxzZQorICAgICAgICBMT0coVGV4dElucHV0LCAiaW5z
ZXJ0VGV4dDpcIiVAXCIiLCBpc0F0dHJpYnV0ZWRTdHJpbmcgPyBbc3RyaW5nIHN0cmluZ10gOiBz
dHJpbmcpOworICAgIFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMqIHBhcmFtZXRl
cnMgPSBtX2ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnM7CisgICAgaWYgKHBhcmFtZXRlcnMp
CisgICAgICAgIHBhcmFtZXRlcnMtPmNvbnN1bWVkQnlJTSA9IGZhbHNlOworCisgICAgTlNTdHJp
bmcgKnRleHQ7CisgICAgYm9vbCBpc0Zyb21JbnB1dE1ldGhvZCA9IG1fcGFnZS5lZGl0b3JTdGF0
ZSgpLmhhc0NvbXBvc2l0aW9uOworCisgICAgVmVjdG9yPFdlYkNvcmU6OlRleHRBbHRlcm5hdGl2
ZVdpdGhSYW5nZT4gZGljdGF0aW9uQWx0ZXJuYXRpdmVzOworCisgICAgaWYgKGlzQXR0cmlidXRl
ZFN0cmluZykgeworI2lmIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKQorICAgICAgICBXZWJD
b3JlOjpjb2xsZWN0RGljdGF0aW9uVGV4dEFsdGVybmF0aXZlcyhzdHJpbmcsIGRpY3RhdGlvbkFs
dGVybmF0aXZlcyk7CisjZW5kaWYKKyAgICAgICAgLy8gRklYTUU6IFdlIGlnbm9yZSBtb3N0IGF0
dHJpYnV0ZXMgZnJvbSB0aGUgc3RyaW5nLCBzbyBmb3IgZXhhbXBsZSBpbnNlcnRpbmcgZnJvbSBD
aGFyYWN0ZXIgUGFsZXR0ZSBsb3NlcyBmb250IGFuZCBnbHlwaCB2YXJpYXRpb24gZGF0YS4KKyAg
ICAgICAgdGV4dCA9IFtzdHJpbmcgc3RyaW5nXTsKKyAgICB9IGVsc2UKKyAgICAgICAgdGV4dCA9
IHN0cmluZzsKKworICAgIC8vIGluc2VydFRleHQgY2FuIGJlIGNhbGxlZCBmb3Igc2V2ZXJhbCBy
ZWFzb25zOgorICAgIC8vIC0gSWYgaXQncyBmcm9tIG5vcm1hbCBrZXkgZXZlbnQgcHJvY2Vzc2lu
ZyAoaW5jbHVkaW5nIGtleSBiaW5kaW5ncyksIHdlIG1heSBuZWVkIHRvIHNhdmUgdGhlIGFjdGlv
biB0byBwZXJmb3JtIGl0IGxhdGVyLgorICAgIC8vIC0gSWYgaXQncyBmcm9tIGFuIGlucHV0IG1l
dGhvZCwgdGhlbiB3ZSBzaG91bGQgaW5zZXJ0IHRoZSB0ZXh0IG5vdy4gV2UgYXNzdW1lIGl0J3Mg
ZnJvbSB0aGUgaW5wdXQgbWV0aG9kIGlmIHdlIGhhdmUgbWFya2VkIHRleHQuCisgICAgLy8gRklY
TUU6IEluIHRoZW9yeSwgdGhpcyBjb3VsZCBiZSB3cm9uZyBmb3Igc29tZSBpbnB1dCBtZXRob2Rz
LCBzbyB3ZSBzaG91bGQgdHJ5IHRvIGZpbmQgYW5vdGhlciB3YXkgdG8gZGV0ZXJtaW5lIGlmIHRo
ZSBjYWxsIGlzIGZyb20gdGhlIGlucHV0IG1ldGhvZC4KKyAgICAvLyAtIElmIGl0J3Mgc2VudCBv
dXRzaWRlIG9mIGtleWJvYXJkIGV2ZW50IHByb2Nlc3NpbmcgKGUuZy4gZnJvbSBDaGFyYWN0ZXIg
Vmlld2VyLCBvciB3aGVuIGNvbmZpcm1pbmcgYW4gaW5saW5lIGlucHV0IGFyZWEgd2l0aCBhIG1v
dXNlKSwKKyAgICAvLyB0aGVuIHdlIGFsc28gZXhlY3V0ZSBpdCBpbW1lZGlhdGVseSwgYXMgdGhl
cmUgd2lsbCBiZSBubyBvdGhlciBjaGFuY2UuCisgICAgaWYgKHBhcmFtZXRlcnMgJiYgIWlzRnJv
bUlucHV0TWV0aG9kKSB7CisgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgcmVwbGFjZW1lbnRSYW5n
ZSBpbiB0aGlzIGNhc2UsIHRvby4gSXQncyBrbm93biB0byBvY2N1ciBpbiBwcmFjdGljZSB3aGVu
IGNhbmNlbGluZyBQcmVzcyBhbmQgSG9sZCAoc2VlIDxyZGFyOi8vMTE5NDA2NzA+KS4KKyAgICAg
ICAgQVNTRVJUKHJlcGxhY2VtZW50UmFuZ2UubG9jYXRpb24gPT0gTlNOb3RGb3VuZCk7CisgICAg
ICAgIFdlYkNvcmU6OktleXByZXNzQ29tbWFuZCBjb21tYW5kKCJpbnNlcnRUZXh0OiIsIHRleHQp
OworICAgICAgICBwYXJhbWV0ZXJzLT5jb21tYW5kcy0+YXBwZW5kKGNvbW1hbmQpOworICAgICAg
ICBtX3BhZ2UucmVnaXN0ZXJLZXlwcmVzc0NvbW1hbmROYW1lKGNvbW1hbmQuY29tbWFuZE5hbWUp
OworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgU3RyaW5nIGV2ZW50VGV4dCA9IHRleHQ7
CisgICAgZXZlbnRUZXh0LnJlcGxhY2UoTlNCYWNrVGFiQ2hhcmFjdGVyLCBOU1RhYkNoYXJhY3Rl
cik7IC8vIHNhbWUgdGhpbmcgaXMgZG9uZSBpbiBLZXlFdmVudE1hYy5tbSBpbiBXZWJDb3JlCisg
ICAgYm9vbCBldmVudEhhbmRsZWQ7CisgICAgaWYgKCFkaWN0YXRpb25BbHRlcm5hdGl2ZXMuaXNF
bXB0eSgpKQorICAgICAgICBldmVudEhhbmRsZWQgPSBtX3BhZ2UuaW5zZXJ0RGljdGF0ZWRUZXh0
KGV2ZW50VGV4dCwgcmVwbGFjZW1lbnRSYW5nZSwgZGljdGF0aW9uQWx0ZXJuYXRpdmVzKTsKKyAg
ICBlbHNlCisgICAgICAgIGV2ZW50SGFuZGxlZCA9IG1fcGFnZS5pbnNlcnRUZXh0KGV2ZW50VGV4
dCwgcmVwbGFjZW1lbnRSYW5nZSk7CisKKyAgICBpZiAocGFyYW1ldGVycykKKyAgICAgICAgcGFy
YW1ldGVycy0+ZXZlbnRJbnRlcnByZXRhdGlvbkhhZFNpZGVFZmZlY3RzIHw9IGV2ZW50SGFuZGxl
ZDsKK30KKworTlNUZXh0SW5wdXRDb250ZXh0ICpXZWJWaWV3SW1wbDo6aW5wdXRDb250ZXh0KCkK
K3sKKyAgICBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzID0g
bV9pbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzOworCisgICAgaWYgKHBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRJZGVudGlmaWVyKCkgJiYgIXBhcmFtZXRlcnMpCisgICAgICAgIHJldHVybiBbW1dL
VGV4dElucHV0V2luZG93Q29udHJvbGxlciBzaGFyZWRUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVy
XSBpbnB1dENvbnRleHRdOworCisgICAgLy8gRGlzYWJsZSB0ZXh0IGlucHV0IG1hY2hpbmVyeSB3
aGVuIGluIG5vbi1lZGl0YWJsZSBjb250ZW50LiBBbiBpbnZpc2libGUgaW5saW5lIGlucHV0IGFy
ZWEgYWZmZWN0cyBwZXJmb3JtYW5jZSwgYW5kIGNhbiBwcmV2ZW50IEV4cG9zZSBmcm9tIHdvcmtp
bmcuCisgICAgaWYgKCFtX3BhZ2UuZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZSkKKyAg
ICAgICAgcmV0dXJuIG5pbDsKKworICAgIHJldHVybiBbbV92aWV3IF9zdXBlcklucHV0Q29udGV4
dF07Cit9CisKK05TUmFuZ2UgV2ViVmlld0ltcGw6OnNlbGVjdGVkUmFuZ2UoKQoreworICAgIGV4
ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHMoKTsKKworICAgIEVkaXRpbmdSYW5nZSBzZWxlY3Rl
ZFJhbmdlOworICAgIG1fcGFnZS5nZXRTZWxlY3RlZFJhbmdlKHNlbGVjdGVkUmFuZ2UpOworCisg
ICAgTlNSYW5nZSByZXN1bHQgPSBzZWxlY3RlZFJhbmdlOworICAgIGlmIChyZXN1bHQubG9jYXRp
b24gPT0gTlNOb3RGb3VuZCkKKyAgICAgICAgTE9HKFRleHRJbnB1dCwgInNlbGVjdGVkUmFuZ2Ug
LT4gKE5TTm90Rm91bmQsICV1KSIsIHJlc3VsdC5sZW5ndGgpOworICAgIGVsc2UKKyAgICAgICAg
TE9HKFRleHRJbnB1dCwgInNlbGVjdGVkUmFuZ2UgLT4gKCV1LCAldSkiLCByZXN1bHQubG9jYXRp
b24sIHJlc3VsdC5sZW5ndGgpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKworYm9vbCBXZWJW
aWV3SW1wbDo6aGFzTWFya2VkVGV4dCgpCit7CisgICAgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRz
UGFyYW1ldGVycyogcGFyYW1ldGVycyA9IG1faW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVyczsK
KworICAgIEJPT0wgcmVzdWx0OworICAgIGlmIChwYXJhbWV0ZXJzKSB7CisgICAgICAgIHJlc3Vs
dCA9IG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmhhc0NvbXBvc2l0aW9uOworICAgICAgICBpZiAocmVz
dWx0KSB7CisgICAgICAgICAgICAvLyBBIHNhdmVkIGNvbW1hbmQgY2FuIGNvbmZpcm0gYSBjb21w
b3NpdGlvbiwgYnV0IGl0IGNhbm5vdCBzdGFydCBhIG5ldyBvbmUuCisgICAgICAgICAgICBleGVj
dXRlU2F2ZWRLZXlwcmVzc0NvbW1hbmRzKCk7CisgICAgICAgICAgICByZXN1bHQgPSBtX3BhZ2Uu
ZWRpdG9yU3RhdGUoKS5oYXNDb21wb3NpdGlvbjsKKyAgICAgICAgfQorICAgIH0gZWxzZSB7Cisg
ICAgICAgIEVkaXRpbmdSYW5nZSBtYXJrZWRSYW5nZTsKKyAgICAgICAgbV9wYWdlLmdldE1hcmtl
ZFJhbmdlKG1hcmtlZFJhbmdlKTsKKyAgICAgICAgcmVzdWx0ID0gbWFya2VkUmFuZ2UubG9jYXRp
b24gIT0gbm90Rm91bmQ7CisgICAgfQorCisgICAgTE9HKFRleHRJbnB1dCwgImhhc01hcmtlZFRl
eHQgLT4gJXUiLCByZXN1bHQpOworICAgIHJldHVybiByZXN1bHQ7Cit9CisKK3ZvaWQgV2ViVmll
d0ltcGw6OnVubWFya1RleHQoKQoreworICAgIGV4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHMo
KTsKKworICAgIExPRyhUZXh0SW5wdXQsICJ1bm1hcmtUZXh0Iik7CisKKyAgICAvLyBVc2UgcG9p
bnRlciB0byBnZXQgcGFyYW1ldGVycyBwYXNzZWQgdG8gdXMgYnkgdGhlIGNhbGxlciBvZiBpbnRl
cnByZXRLZXlFdmVudHMuCisgICAgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyog
cGFyYW1ldGVycyA9IG1faW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVyczsKKworICAgIGlmIChw
YXJhbWV0ZXJzKSB7CisgICAgICAgIHBhcmFtZXRlcnMtPmV2ZW50SW50ZXJwcmV0YXRpb25IYWRT
aWRlRWZmZWN0cyA9IHRydWU7CisgICAgICAgIHBhcmFtZXRlcnMtPmNvbnN1bWVkQnlJTSA9IGZh
bHNlOworICAgIH0KKworICAgIG1fcGFnZS5jb25maXJtQ29tcG9zaXRpb24oKTsKK30KKwordm9p
ZCBXZWJWaWV3SW1wbDo6c2V0TWFya2VkVGV4dChpZCBzdHJpbmcsIE5TUmFuZ2UgbmV3U2VsZWN0
ZWRSYW5nZSwgTlNSYW5nZSByZXBsYWNlbWVudFJhbmdlKQoreworICAgIGV4ZWN1dGVTYXZlZEtl
eXByZXNzQ29tbWFuZHMoKTsKKworICAgIEJPT0wgaXNBdHRyaWJ1dGVkU3RyaW5nID0gW3N0cmlu
ZyBpc0tpbmRPZkNsYXNzOltOU0F0dHJpYnV0ZWRTdHJpbmcgY2xhc3NdXTsKKyAgICBBU1NFUlQo
aXNBdHRyaWJ1dGVkU3RyaW5nIHx8IFtzdHJpbmcgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xh
c3NdXSk7CisKKyAgICBMT0coVGV4dElucHV0LCAic2V0TWFya2VkVGV4dDpcIiVAXCIgc2VsZWN0
ZWRSYW5nZTooJXUsICV1KSIsIGlzQXR0cmlidXRlZFN0cmluZyA/IFtzdHJpbmcgc3RyaW5nXSA6
IHN0cmluZywgbmV3U2VsZWN0ZWRSYW5nZS5sb2NhdGlvbiwgbmV3U2VsZWN0ZWRSYW5nZS5sZW5n
dGgpOworCisgICAgLy8gVXNlIHBvaW50ZXIgdG8gZ2V0IHBhcmFtZXRlcnMgcGFzc2VkIHRvIHVz
IGJ5IHRoZSBjYWxsZXIgb2YgaW50ZXJwcmV0S2V5RXZlbnRzLgorICAgIFdLVmlld0ludGVycHJl
dEtleUV2ZW50c1BhcmFtZXRlcnMqIHBhcmFtZXRlcnMgPSBtX2ludGVycHJldEtleUV2ZW50c1Bh
cmFtZXRlcnM7CisKKyAgICBpZiAocGFyYW1ldGVycykgeworICAgICAgICBwYXJhbWV0ZXJzLT5l
dmVudEludGVycHJldGF0aW9uSGFkU2lkZUVmZmVjdHMgPSB0cnVlOworICAgICAgICBwYXJhbWV0
ZXJzLT5jb25zdW1lZEJ5SU0gPSBmYWxzZTsKKyAgICB9CisgICAgCisgICAgVmVjdG9yPFdlYkNv
cmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lPiB1bmRlcmxpbmVzOworICAgIE5TU3RyaW5nICp0ZXh0
OworCisgICAgaWYgKGlzQXR0cmlidXRlZFN0cmluZykgeworICAgICAgICAvLyBGSVhNRTogV2Ug
aWdub3JlIG1vc3QgYXR0cmlidXRlcyBmcm9tIHRoZSBzdHJpbmcsIHNvIGFuIGlucHV0IG1ldGhv
ZCBjYW5ub3Qgc3BlY2lmeSBlLmcuIGEgZm9udCBvciBhIGdseXBoIHZhcmlhdGlvbi4KKyAgICAg
ICAgdGV4dCA9IFtzdHJpbmcgc3RyaW5nXTsKKyAgICAgICAgZXh0cmFjdFVuZGVybGluZXMoc3Ry
aW5nLCB1bmRlcmxpbmVzKTsKKyAgICB9IGVsc2UKKyAgICAgICAgdGV4dCA9IHN0cmluZzsKKwor
ICAgIGlmIChtX3BhZ2UuZWRpdG9yU3RhdGUoKS5pc0luUGFzc3dvcmRGaWVsZCkgeworICAgICAg
ICAvLyBJbiBwYXNzd29yZCBmaWVsZHMsIHdlIG9ubHkgYWxsb3cgQVNDSUkgZGVhZCBrZXlzLCBh
bmQgZG9uJ3QgYWxsb3cgaW5saW5lIGlucHV0LCBtYXRjaGluZyBOU1NlY3VyZVRleHRJbnB1dEZp
ZWxkLgorICAgICAgICAvLyBBbGxvd2luZyBBU0NJSSBkZWFkIGtleXMgaXMgbmVjZXNzYXJ5IHRv
IGVuYWJsZSBmdWxsIFJvbWFuIGlucHV0IHdoZW4gdXNpbmcgYSBWaWV0bmFtZXNlIGtleWJvYXJk
LgorICAgICAgICBBU1NFUlQoIW1fcGFnZS5lZGl0b3JTdGF0ZSgpLmhhc0NvbXBvc2l0aW9uKTsK
KyAgICAgICAgbm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbigpOwor
ICAgICAgICBpZiAoW3RleHQgbGVuZ3RoXSA9PSAxICYmIFtbdGV4dCBkZWNvbXBvc2VkU3RyaW5n
V2l0aENhbm9uaWNhbE1hcHBpbmddIGNoYXJhY3RlckF0SW5kZXg6MF0gPCAweDgwKSB7CisgICAg
ICAgICAgICBtX3BhZ2UuaW5zZXJ0VGV4dCh0ZXh0LCByZXBsYWNlbWVudFJhbmdlKTsKKyAgICAg
ICAgfSBlbHNlCisgICAgICAgICAgICBOU0JlZXAoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KworICAgIG1fcGFnZS5zZXRDb21wb3NpdGlvbih0ZXh0LCB1bmRlcmxpbmVzLCBuZXdTZWxlY3Rl
ZFJhbmdlLCByZXBsYWNlbWVudFJhbmdlKTsKK30KKworTlNSYW5nZSBXZWJWaWV3SW1wbDo6bWFy
a2VkUmFuZ2UoKQoreworICAgIGV4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHMoKTsKKworICAg
IEVkaXRpbmdSYW5nZSBtYXJrZWRSYW5nZTsKKyAgICBtX3BhZ2UuZ2V0TWFya2VkUmFuZ2UobWFy
a2VkUmFuZ2UpOworCisgICAgTlNSYW5nZSByZXN1bHQgPSBtYXJrZWRSYW5nZTsKKyAgICBpZiAo
cmVzdWx0LmxvY2F0aW9uID09IE5TTm90Rm91bmQpCisgICAgICAgIExPRyhUZXh0SW5wdXQsICJt
YXJrZWRSYW5nZSAtPiAoTlNOb3RGb3VuZCwgJXUpIiwgcmVzdWx0Lmxlbmd0aCk7CisgICAgZWxz
ZQorICAgICAgICBMT0coVGV4dElucHV0LCAibWFya2VkUmFuZ2UgLT4gKCV1LCAldSkiLCByZXN1
bHQubG9jYXRpb24sIHJlc3VsdC5sZW5ndGgpOworCisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwor
TlNBdHRyaWJ1dGVkU3RyaW5nICpXZWJWaWV3SW1wbDo6YXR0cmlidXRlZFN1YnN0cmluZ0ZvclBy
b3Bvc2VkUmFuZ2UoTlNSYW5nZSBuc1JhbmdlLCBOU1JhbmdlUG9pbnRlciBhY3R1YWxSYW5nZSkK
K3sKKyAgICBleGVjdXRlU2F2ZWRLZXlwcmVzc0NvbW1hbmRzKCk7CisKKyAgICBpZiAoIW1fcGFn
ZS5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlKSB7CisgICAgICAgIExPRyhUZXh0SW5w
dXQsICJhdHRyaWJ1dGVkU3Vic3RyaW5nRnJvbVJhbmdlOigldSwgJXUpIC0+IG5pbCIsIG5zUmFu
Z2UubG9jYXRpb24sIG5zUmFuZ2UubGVuZ3RoKTsKKyAgICAgICAgcmV0dXJuIG5pbDsKKyAgICB9
CisKKyAgICBpZiAobV9wYWdlLmVkaXRvclN0YXRlKCkuaXNJblBhc3N3b3JkRmllbGQpCisgICAg
ICAgIHJldHVybiBuaWw7CisKKyAgICBBdHRyaWJ1dGVkU3RyaW5nIHJlc3VsdDsKKyAgICBtX3Bh
Z2UuZ2V0QXR0cmlidXRlZFN1YnN0cmluZ0Zyb21SYW5nZShuc1JhbmdlLCByZXN1bHQpOworCisg
ICAgaWYgKGFjdHVhbFJhbmdlKSB7CisgICAgICAgICphY3R1YWxSYW5nZSA9IG5zUmFuZ2U7Cisg
ICAgICAgIGFjdHVhbFJhbmdlLT5sZW5ndGggPSBbcmVzdWx0LnN0cmluZyBsZW5ndGhdOworICAg
IH0KKworICAgIExPRyhUZXh0SW5wdXQsICJhdHRyaWJ1dGVkU3Vic3RyaW5nRnJvbVJhbmdlOigl
dSwgJXUpIC0+IFwiJUBcIiIsIG5zUmFuZ2UubG9jYXRpb24sIG5zUmFuZ2UubGVuZ3RoLCBbcmVz
dWx0LnN0cmluZyBzdHJpbmddKTsKKyAgICByZXR1cm4gW1tyZXN1bHQuc3RyaW5nIHJldGFpbl0g
YXV0b3JlbGVhc2VdOworfQorCitOU1VJbnRlZ2VyIFdlYlZpZXdJbXBsOjpjaGFyYWN0ZXJJbmRl
eEZvclBvaW50KE5TUG9pbnQgdGhlUG9pbnQpCit7CisgICAgZXhlY3V0ZVNhdmVkS2V5cHJlc3ND
b21tYW5kcygpOworCisgICAgTlNXaW5kb3cgKndpbmRvdyA9IG1fdmlldy53aW5kb3c7CisgICAg
CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgaWYgKHdpbmRvdykKKyAg
ICAgICAgdGhlUG9pbnQgPSBbd2luZG93IGNvbnZlcnRTY3JlZW5Ub0Jhc2U6dGhlUG9pbnRdOwor
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAorICAgIHRoZVBvaW50ID0gW21fdmlldyBjb252
ZXJ0UG9pbnQ6dGhlUG9pbnQgZnJvbVZpZXc6bmlsXTsgIC8vIHRoZSBwb2ludCBpcyByZWxhdGl2
ZSB0byB0aGUgbWFpbiBmcmFtZQorICAgIAorICAgIHVpbnQ2NF90IHJlc3VsdCA9IG1fcGFnZS5j
aGFyYWN0ZXJJbmRleEZvclBvaW50KFdlYkNvcmU6OkludFBvaW50KHRoZVBvaW50KSk7CisgICAg
aWYgKHJlc3VsdCA9PSBub3RGb3VuZCkKKyAgICAgICAgcmVzdWx0ID0gTlNOb3RGb3VuZDsKKyAg
ICBMT0coVGV4dElucHV0LCAiY2hhcmFjdGVySW5kZXhGb3JQb2ludDooJWYsICVmKSAtPiAldSIs
IHRoZVBvaW50LngsIHRoZVBvaW50LnksIHJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3VsdDsKK30K
KworTlNSZWN0IFdlYlZpZXdJbXBsOjpmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZShOU1Jhbmdl
IHRoZVJhbmdlLCBOU1JhbmdlUG9pbnRlciBhY3R1YWxSYW5nZSkKK3sKKyAgICBleGVjdXRlU2F2
ZWRLZXlwcmVzc0NvbW1hbmRzKCk7CisKKyAgICAvLyBKdXN0IHRvIG1hdGNoIE5TVGV4dFZpZXcn
cyBiZWhhdmlvci4gUmVncmVzc2lvbiB0ZXN0cyBjYW5ub3QgZGV0ZWN0IHRoaXM7CisgICAgLy8g
dG8gcmVwcm9kdWNlLCB1c2UgYSB0ZXN0IGFwcGxpY2F0aW9uIGZyb20gaHR0cDovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY4MgorICAgIC8vICh0eXBlIHNvbWV0aGluZzsgdHJ5
IHJhbmdlcyAoMSwgLTEpIGFuZCAoMiwgLTEpLgorICAgIGlmICgodGhlUmFuZ2UubG9jYXRpb24g
KyB0aGVSYW5nZS5sZW5ndGggPCB0aGVSYW5nZS5sb2NhdGlvbikgJiYgKHRoZVJhbmdlLmxvY2F0
aW9uICsgdGhlUmFuZ2UubGVuZ3RoICE9IDApKQorICAgICAgICB0aGVSYW5nZS5sZW5ndGggPSAw
OworCisgICAgaWYgKHRoZVJhbmdlLmxvY2F0aW9uID09IE5TTm90Rm91bmQpIHsKKyAgICAgICAg
aWYgKGFjdHVhbFJhbmdlKQorICAgICAgICAgICAgKmFjdHVhbFJhbmdlID0gdGhlUmFuZ2U7Cisg
ICAgICAgIExPRyhUZXh0SW5wdXQsICJmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZTooTlNOb3RG
b3VuZCwgJXUpIC0+IE5TWmVyb1JlY3QiLCB0aGVSYW5nZS5sZW5ndGgpOworICAgICAgICByZXR1
cm4gTlNaZXJvUmVjdDsKKyAgICB9CisKKyAgICBOU1JlY3QgcmVzdWx0UmVjdCA9IG1fcGFnZS5m
aXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSh0aGVSYW5nZSk7CisgICAgcmVzdWx0UmVjdCA9IFtt
X3ZpZXcgY29udmVydFJlY3Q6cmVzdWx0UmVjdCB0b1ZpZXc6bmlsXTsKKyAgICByZXN1bHRSZWN0
ID0gW21fdmlldy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpyZXN1bHRSZWN0XTsKKworICAg
IGlmIChhY3R1YWxSYW5nZSkgeworICAgICAgICAvLyBGSVhNRTogVXBkYXRlIGFjdHVhbFJhbmdl
IHRvIG1hdGNoIHRoZSByYW5nZSBvZiBmaXJzdCByZWN0LgorICAgICAgICAqYWN0dWFsUmFuZ2Ug
PSB0aGVSYW5nZTsKKyAgICB9CisKKyAgICBMT0coVGV4dElucHV0LCAiZmlyc3RSZWN0Rm9yQ2hh
cmFjdGVyUmFuZ2U6KCV1LCAldSkgLT4gKCVmLCAlZiwgJWYsICVmKSIsIHRoZVJhbmdlLmxvY2F0
aW9uLCB0aGVSYW5nZS5sZW5ndGgsIHJlc3VsdFJlY3Qub3JpZ2luLngsIHJlc3VsdFJlY3Qub3Jp
Z2luLnksIHJlc3VsdFJlY3Quc2l6ZS53aWR0aCwgcmVzdWx0UmVjdC5zaXplLmhlaWdodCk7Cisg
ICAgcmV0dXJuIHJlc3VsdFJlY3Q7Cit9CisKK2Jvb2wgV2ViVmlld0ltcGw6OnBlcmZvcm1LZXlF
cXVpdmFsZW50KE5TRXZlbnQgKmV2ZW50KQoreworICAgIGlmIChpZ25vcmVzTm9uV2hlZWxFdmVu
dHMoKSkKKyAgICAgICAgcmV0dXJuIE5POworCisgICAgLy8gVGhlcmUncyBhIGNoYW5jZSB0aGF0
IHJlc3BvbmRpbmcgdG8gdGhpcyBldmVudCB3aWxsIHJ1biBhIG5lc3RlZCBldmVudCBsb29wLCBh
bmQKKyAgICAvLyBmZXRjaGluZyBhIG5ldyBldmVudCBtaWdodCByZWxlYXNlIHRoZSBvbGQgb25l
LiBSZXRhaW5pbmcgYW5kIHRoZW4gYXV0b3JlbGVhc2luZworICAgIC8vIHRoZSBjdXJyZW50IGV2
ZW50IHByZXZlbnRzIHRoYXQgZnJvbSBjYXVzaW5nIGEgcHJvYmxlbSBpbnNpZGUgV2ViS2l0IG9y
IEFwcEtpdCBjb2RlLgorICAgIFtbZXZlbnQgcmV0YWluXSBhdXRvcmVsZWFzZV07CisKKyAgICAv
LyBXZSBnZXQgRXNjIGtleSBoZXJlIGFmdGVyIHByb2Nlc3NpbmcgZWl0aGVyIEVzYyBvciBDbWQr
cGVyaW9kLiBUaGUgZm9ybWVyIHN0YXJ0cyBhcyBhIGtleURvd24sIGFuZCB0aGUgbGF0dGVyIHN0
YXJ0cyBhcyBhIGtleSBlcXVpdmFsZW50LAorICAgIC8vIGJ1dCBib3RoIGdldCB0cmFuc2Zvcm1l
ZCB0byBhIGNhbmNlbE9wZXJhdGlvbjogY29tbWFuZCwgZXhlY3V0aW5nIHdoaWNoIHBhc3NlcyBh
biBFc2Mga2V5IGV2ZW50IHRvIC1wZXJmb3JtS2V5RXF1aXZhbGVudDouCisgICAgLy8gRG9uJ3Qg
aW50ZXJwcmV0IHRoaXMgZXZlbnQgYWdhaW4sIGF2b2lkaW5nIHJlLWVudHJhbmN5IGFuZCBpbmZp
bml0ZSBsb29wcy4KKyAgICBpZiAoW1tldmVudCBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnNd
IGlzRXF1YWxUb1N0cmluZzpAIlxlIl0gJiYgIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0Rl
dmljZUluZGVwZW5kZW50TW9kaWZpZXJGbGFnc01hc2spKQorICAgICAgICByZXR1cm4gW21fdmll
dyBfc3VwZXJQZXJmb3JtS2V5RXF1aXZhbGVudDpldmVudF07CisKKyAgICBpZiAobV9rZXlEb3du
RXZlbnRCZWluZ1Jlc2VudCkgeworICAgICAgICAvLyBXZWJDb3JlIGhhcyBhbHJlYWR5IHNlZW4g
dGhlIGV2ZW50LCBubyBuZWVkIGZvciBjdXN0b20gcHJvY2Vzc2luZy4KKyAgICAgICAgLy8gTm90
ZSB0aGF0IHdlIGNhbiBnZXQgbXVsdGlwbGUgZXZlbnRzIGZvciBlYWNoIGV2ZW50IGJlaW5nIHJl
LXNlbnQuIEZvciBleGFtcGxlLCBmb3IgQ21kKyc9JyBBcHBLaXQKKyAgICAgICAgLy8gZmlyc3Qg
cGVyZm9ybXMgdGhlIG9yaWdpbmFsIGtleSBlcXVpdmFsZW50LCBhbmQgaWYgdGhhdCBpc24ndCBo
YW5kbGVkLCBpdCBkaXNwYXRjaGVzIGEgc3ludGhldGljIENtZCsnKycuCisgICAgICAgIHJldHVy
biBbbV92aWV3IF9zdXBlclBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKKyAgICB9CisKKyAg
ICBBU1NFUlQoZXZlbnQgPT0gW05TQXBwIGN1cnJlbnRFdmVudF0pOworCisgICAgZGlzYWJsZUNv
bXBsZXhUZXh0SW5wdXRJZk5lY2Vzc2FyeSgpOworCisgICAgLy8gUGFzcyBrZXkgY29tYm9zIHRo
cm91Z2ggV2ViQ29yZSBpZiB0aGVyZSBpcyBhIGtleSBiaW5kaW5nIGF2YWlsYWJsZSBmb3IKKyAg
ICAvLyB0aGlzIGV2ZW50LiBUaGlzIGxldHMgd2VicGFnZXMgaGF2ZSBhIGNyYWNrIGF0IGludGVy
Y2VwdGluZyBrZXktbW9kaWZpZWQga2V5cHJlc3Nlcy4KKyAgICAvLyBGSVhNRTogV2h5IGlzIHRo
ZSBmaXJzdFJlc3BvbmRlciBjaGVjayBuZWVkZWQ/CisgICAgaWYgKG1fdmlldyA9PSBtX3ZpZXcu
d2luZG93LmZpcnN0UmVzcG9uZGVyKSB7CisgICAgICAgIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVz
c0NvbW1hbmQ+IGNvbW1hbmRzOworICAgICAgICBCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kID0g
aW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQsIGNvbW1hbmRzKTsKKyAgICAgICAgbV9wYWdlLmhhbmRs
ZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5w
dXRNZXRob2QsIGNvbW1hbmRzKSk7CisgICAgICAgIHJldHVybiBZRVM7CisgICAgfQorICAgIAor
ICAgIHJldHVybiBbbV92aWV3IF9zdXBlclBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKK30K
Kwordm9pZCBXZWJWaWV3SW1wbDo6a2V5VXAoTlNFdmVudCAqdGhlRXZlbnQpCit7CisgICAgaWYg
KGlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQorICAgICAgICByZXR1cm47CisKKyAgICBMT0coVGV4
dElucHV0LCAia2V5VXA6JXAgJUAiLCB0aGVFdmVudCwgdGhlRXZlbnQpOworICAgIC8vIFdlIGRv
bid0IGludGVycHJldCB0aGUga2V5VXAgZXZlbnQsIGFzIHRoaXMgYnJlYWtzIGtleSBiaW5kaW5n
cyAoc2VlIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMTAwPiku
CisgICAgbV9wYWdlLmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCh0
aGVFdmVudCwgZmFsc2UsIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+KCkpKTsKK30K
Kwordm9pZCBXZWJWaWV3SW1wbDo6a2V5RG93bihOU0V2ZW50ICp0aGVFdmVudCkKK3sKKyAgICBp
ZiAoaWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCisgICAgICAgIHJldHVybjsKKworICAgIExPRyhU
ZXh0SW5wdXQsICJrZXlEb3duOiVwICVAJXMiLCB0aGVFdmVudCwgdGhlRXZlbnQsICh0aGVFdmVu
dCA9PSBtX2tleURvd25FdmVudEJlaW5nUmVzZW50KSA/ICIgKHJlLXNlbnQpIiA6ICIiKTsKKwor
ICAgIC8vIFRoZXJlJ3MgYSBjaGFuY2UgdGhhdCByZXNwb25kaW5nIHRvIHRoaXMgZXZlbnQgd2ls
bCBydW4gYSBuZXN0ZWQgZXZlbnQgbG9vcCwgYW5kCisgICAgLy8gZmV0Y2hpbmcgYSBuZXcgZXZl
bnQgbWlnaHQgcmVsZWFzZSB0aGUgb2xkIG9uZS4gUmV0YWluaW5nIGFuZCB0aGVuIGF1dG9yZWxl
YXNpbmcKKyAgICAvLyB0aGUgY3VycmVudCBldmVudCBwcmV2ZW50cyB0aGF0IGZyb20gY2F1c2lu
ZyBhIHByb2JsZW0gaW5zaWRlIFdlYktpdCBvciBBcHBLaXQgY29kZS4KKyAgICBbW3RoZUV2ZW50
IHJldGFpbl0gYXV0b3JlbGVhc2VdOworCisgICAgaWYgKHRyeUhhbmRsZVBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRLZXlEb3duKHRoZUV2ZW50KSkgeworICAgICAgICBMT0coVGV4dElucHV0LCAiLi4u
aGFuZGxlZCBieSBwbHVnLWluIik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBX
ZSBjb3VsZCBiZSByZWNlaXZpbmcgYSBrZXkgZG93biBmcm9tIEFwcEtpdCBpZiB3ZSBoYXZlIHJl
LXNlbnQgYW4gZXZlbnQKKyAgICAvLyB0aGF0IG1hcHMgdG8gYW4gYWN0aW9uIHRoYXQgaXMgY3Vy
cmVudGx5IHVuYXZhaWxhYmxlIChmb3IgZXhhbXBsZSBhIGNvcHkgd2hlbgorICAgIC8vIHRoZXJl
IGlzIG5vIHJhbmdlIHNlbGVjdGlvbikuCisgICAgLy8gSWYgdGhpcyBpcyB0aGUgY2FzZSB3ZSBz
aG91bGQgaWdub3JlIHRoZSBrZXkgZG93bi4KKyAgICBpZiAobV9rZXlEb3duRXZlbnRCZWluZ1Jl
c2VudCA9PSB0aGVFdmVudCkgeworICAgICAgICBbbV92aWV3IF9zdXBlcktleURvd246dGhlRXZl
bnRdOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgVmVjdG9yPFdlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZD4gY29tbWFuZHM7CisgICAgQk9PTCBoYW5kbGVkQnlJbnB1dE1ldGhvZCA9IGlu
dGVycHJldEtleUV2ZW50KHRoZUV2ZW50LCBjb21tYW5kcyk7CisgICAgaWYgKCFjb21tYW5kcy5p
c0VtcHR5KCkpIHsKKyAgICAgICAgLy8gQW4gaW5wdXQgbWV0aG9kIG1heSBtYWtlIHNldmVyYWwg
YWN0aW9ucyBwZXIga2V5cHJlc3MuIEZvciBleGFtcGxlLCBwcmVzc2luZyBSZXR1cm4gd2l0aCBL
b3JlYW4gSU0gYm90aCBjb25maXJtcyBpdCBhbmQgc2VuZHMgYSBuZXdsaW5lLgorICAgICAgICAv
LyBJTS1saWtlIGFjdGlvbnMgYXJlIGhhbmRsZWQgaW1tZWRpYXRlbHkgKHNvIHRoZSByZXR1cm4g
dmFsdWUgZnJvbSBVSSBwcm9jZXNzIGlzIHRydWUpLCBidXQgdGhlcmUgYXJlIHNhdmVkIGNvbW1h
bmRzIHRoYXQKKyAgICAgICAgLy8gc2hvdWxkIGJlIGhhbmRsZWQgbGlrZSBub3JtYWwgdGV4dCBp
bnB1dCBhZnRlciBET00gZXZlbnQgZGlzcGF0Y2guCisgICAgICAgIGhhbmRsZWRCeUlucHV0TWV0
aG9kID0gTk87CisgICAgfQorCisgICAgbV9wYWdlLmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZl
V2ViS2V5Ym9hcmRFdmVudCh0aGVFdmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRz
KSk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmZsYWdzQ2hhbmdlZChOU0V2ZW50ICp0aGVFdmVu
dCkKK3sKKyAgICBpZiAoaWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIExPRyhUZXh0SW5wdXQsICJmbGFnc0NoYW5nZWQ6JXAgJUAiLCB0aGVFdmVudCwgdGhl
RXZlbnQpOworCisgICAgLy8gVGhlcmUncyBhIGNoYW5jZSB0aGF0IHJlc3BvbmRpbmcgdG8gdGhp
cyBldmVudCB3aWxsIHJ1biBhIG5lc3RlZCBldmVudCBsb29wLCBhbmQKKyAgICAvLyBmZXRjaGlu
ZyBhIG5ldyBldmVudCBtaWdodCByZWxlYXNlIHRoZSBvbGQgb25lLiBSZXRhaW5pbmcgYW5kIHRo
ZW4gYXV0b3JlbGVhc2luZworICAgIC8vIHRoZSBjdXJyZW50IGV2ZW50IHByZXZlbnRzIHRoYXQg
ZnJvbSBjYXVzaW5nIGEgcHJvYmxlbSBpbnNpZGUgV2ViS2l0IG9yIEFwcEtpdCBjb2RlLgorICAg
IFtbdGhlRXZlbnQgcmV0YWluXSBhdXRvcmVsZWFzZV07CisKKyAgICB1bnNpZ25lZCBzaG9ydCBr
ZXlDb2RlID0gW3RoZUV2ZW50IGtleUNvZGVdOworCisgICAgLy8gRG9uJ3QgbWFrZSBhbiBldmVu
dCBmcm9tIHRoZSBudW0gbG9jayBhbmQgZnVuY3Rpb24ga2V5cworICAgIGlmICgha2V5Q29kZSB8
fCBrZXlDb2RlID09IDEwIHx8IGtleUNvZGUgPT0gNjMpCisgICAgICAgIHJldHVybjsKKworICAg
IG1fcGFnZS5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQodGhlRXZl
bnQsIGZhbHNlLCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPigpKSk7Cit9CisKKyNl
bmRpZiAvLyBVU0UoQVNZTkNfTlNURVhUSU5QVVRDTElFTlQpCisKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KaW5kZXggNDAwMGNmOS4uZDRmMGFiMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCkBAIC00MzUs
NyArNDM1LDcgQEAgSW50UmVjdCBQYWdlQ2xpZW50SW1wbDo6cm9vdFZpZXdUb1NjcmVlbihjb25z
dCBJbnRSZWN0JiByZWN0KQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aEtleUV2ZW50
KGNvbnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmIGV2ZW50LCBib29sIGV2ZW50V2FzSGFuZGxl
ZCkKIHsKLSAgICBbbV93a1ZpZXcgX2RvbmVXaXRoS2V5RXZlbnQ6ZXZlbnQubmF0aXZlRXZlbnQo
KSBldmVudFdhc0hhbmRsZWQ6ZXZlbnRXYXNIYW5kbGVkXTsKKyAgICBtX2ltcGwtPmRvbmVXaXRo
S2V5RXZlbnQoZXZlbnQubmF0aXZlRXZlbnQoKSwgZXZlbnRXYXNIYW5kbGVkKTsKIH0KIAogUmVm
UHRyPFdlYlBvcHVwTWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBNZW51UHJv
eHkoV2ViUGFnZVByb3h5JiBwYWdlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264372</attachid>
            <date>2015-10-29 19:51:28 -0700</date>
            <delta_ts>2015-10-30 10:04:26 -0700</delta_ts>
            <desc>Part 14 - NSTextInputClient</desc>
            <filename>14.diff</filename>
            <type>text/plain</type>
            <size>97000</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyY2Y2MzcwLi4xMDdlOTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIg
QEAKKzIwMTUtMTAtMjkgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgV0tWaWV3IGJlaW5nIGluc2lkZSBXS1dlYlZpZXcgbGVhZHMgdG8gd2VpcmQgQVBJ
IGlzc3VlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTUwMTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBkb0NvbW1h
bmRCeVNlbGVjdG9yOl0pOgorICAgICAgICAoLVtXS1ZpZXcgaW5zZXJ0VGV4dDpdKToKKyAgICAg
ICAgKC1bV0tWaWV3IGluc2VydFRleHQ6cmVwbGFjZW1lbnRSYW5nZTpdKToKKyAgICAgICAgKC1b
V0tWaWV3IGlucHV0Q29udGV4dF0pOgorICAgICAgICAoLVtXS1ZpZXcgcGVyZm9ybUtleUVxdWl2
YWxlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBrZXlVcDpdKToKKyAgICAgICAgKC1bV0tWaWV3
IGtleURvd246XSk6CisgICAgICAgICgtW1dLVmlldyBmbGFnc0NoYW5nZWQ6XSk6CisgICAgICAg
ICgtW1dLVmlldyBzZXRNYXJrZWRUZXh0OnNlbGVjdGVkUmFuZ2U6cmVwbGFjZW1lbnRSYW5nZTpd
KToKKyAgICAgICAgKC1bV0tWaWV3IHVubWFya1RleHRdKToKKyAgICAgICAgKC1bV0tWaWV3IHNl
bGVjdGVkUmFuZ2VdKToKKyAgICAgICAgKC1bV0tWaWV3IGhhc01hcmtlZFRleHRdKToKKyAgICAg
ICAgKC1bV0tWaWV3IG1hcmtlZFJhbmdlXSk6CisgICAgICAgICgtW1dLVmlldyBhdHRyaWJ1dGVk
U3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZTphY3R1YWxSYW5nZTpdKToKKyAgICAgICAgKC1bV0tW
aWV3IGNoYXJhY3RlckluZGV4Rm9yUG9pbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBmaXJzdFJl
Y3RGb3JDaGFyYWN0ZXJSYW5nZTphY3R1YWxSYW5nZTpdKToKKyAgICAgICAgKC1bV0tWaWV3IHNl
bGVjdGVkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLVmlldyBt
YXJrZWRSYW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tWaWV3IGhh
c01hcmtlZFRleHRXaXRoQ29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLVmlldyBh
dHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZTpjb21wbGV0aW9uSGFuZGxlcjpdKToK
KyAgICAgICAgKC1bV0tWaWV3IGZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlOmNvbXBsZXRpb25I
YW5kbGVyOl0pOgorICAgICAgICAoLVtXS1ZpZXcgY2hhcmFjdGVySW5kZXhGb3JQb2ludDpjb21w
bGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tWaWV3IF9zdXBlclBlcmZvcm1LZXlFcXVp
dmFsZW50Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgX3N1cGVyS2V5RG93bjpdKToKKyAgICAgICAg
KGV4dHJhY3RVbmRlcmxpbmVzKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9jb2xsZWN0
S2V5Ym9hcmRMYXlvdXRDb21tYW5kc0ZvckV2ZW50OnRvOl0pOiBEZWxldGVkLgorICAgICAgICAo
LVtXS1ZpZXcgX2ludGVycHJldEtleUV2ZW50OmNvbXBsZXRpb25IYW5kbGVyOl0pOiBEZWxldGVk
LgorICAgICAgICAoLVtXS1ZpZXcgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlRdKTogRGVsZXRlZC4K
KyAgICAgICAgKC1bV0tWaWV3IF9pbnRlcnByZXRLZXlFdmVudDpzYXZpbmdDb21tYW5kc1RvOl0p
OiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX2V4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFu
ZHNdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tWaWV3IF9kb25lV2l0aEtleUV2ZW50OmV2ZW50
V2FzSGFuZGxlZDpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpleHRy
YWN0VW5kZXJsaW5lcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjb2xsZWN0S2V5
Ym9hcmRMYXlvdXRDb21tYW5kc0ZvckV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OmludGVycHJldEtleUV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRv
Q29tbWFuZEJ5U2VsZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aW5zZXJ0
VGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZWxlY3RlZFJhbmdlV2l0aENv
bXBsZXRpb25IYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Om1hcmtlZFJh
bmdlV2l0aENvbXBsZXRpb25IYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
Omhhc01hcmtlZFRleHRXaXRoQ29tcGxldGlvbkhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6YXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2UpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y2hhcmFjdGVySW5kZXhGb3JQb2ludCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppbnB1dENvbnRleHQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6dW5tYXJrVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
OjpzZXRNYXJrZWRUZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbGVjdGVk
UmFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGFzTWFya2VkVGV4dCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjptYXJrZWRSYW5nZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1aXZhbGVudCk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjprZXlVcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjprZXlE
b3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmZsYWdzQ2hhbmdlZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpleGVjdXRlU2F2ZWRLZXlwcmVzc0NvbW1hbmRzKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50SW1wbDo6ZG9uZVdpdGhLZXlFdmVudCk6CisgICAgICAgIE1vdmUgTlNU
ZXh0SW5wdXRDbGllbnQgaW1wbGVtZW50YXRpb24uCisKIDIwMTUtMTAtMjkgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBFRkwgYnVpbGQgZml4
IGFmdGVyIHIxOTE3NDkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5t
bQppbmRleCA5MzYxZjE4Li5lOTQ1ODdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3Lm1tCkBAIC0xMjEsMzAgKzEyMSwxMSBAQAogdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0jaWYgIVVTRShBU1lOQ19OU1RFWFRJ
TlBVVENMSUVOVCkKLXN0cnVjdCBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzIHsK
LSAgICBib29sIGV2ZW50SW50ZXJwcmV0YXRpb25IYWRTaWRlRWZmZWN0czsKLSAgICBib29sIGNv
bnN1bWVkQnlJTTsKLSAgICBib29sIGV4ZWN1dGluZ1NhdmVkS2V5cHJlc3NDb21tYW5kczsKLSAg
ICBWZWN0b3I8S2V5cHJlc3NDb21tYW5kPiogY29tbWFuZHM7Ci19OwotI2VuZGlmCi0KIEBpbnRl
cmZhY2UgV0tWaWV3RGF0YSA6IE5TT2JqZWN0IHsKIEBwdWJsaWMKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8UGFnZUNsaWVudEltcGw+IF9wYWdlQ2xpZW50OwogICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+
IF9wYWdlOwogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJWaWV3SW1wbD4gX2ltcGw7Ci0KLSAgICAv
LyBXZSBrZWVwIGhlcmUgdGhlIGV2ZW50IHdoZW4gcmVzZW5kaW5nIGl0IHRvCi0gICAgLy8gdGhl
IGFwcGxpY2F0aW9uIHRvIGRpc3Rpbmd1aXNoIHRoZSBjYXNlIG9mIGEgbmV3IGV2ZW50IGZyb20g
b25lIAotICAgIC8vIHRoYXQgaGFzIGJlZW4gYWxyZWFkeSBzZW50IHRvIFdlYkNvcmUuCi0gICAg
UmV0YWluUHRyPE5TRXZlbnQ+IF9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudDsKLSNpZiBVU0UoQVNZ
TkNfTlNURVhUSU5QVVRDTElFTlQpCi0gICAgVmVjdG9yPEtleXByZXNzQ29tbWFuZD4qIF9jb2xs
ZWN0ZWRLZXlwcmVzc0NvbW1hbmRzOwotI2Vsc2UKLSAgICBXS1ZpZXdJbnRlcnByZXRLZXlFdmVu
dHNQYXJhbWV0ZXJzKiBfaW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVyczsKLSNlbmRpZgogfQog
CiBAZW5kCkBAIC03NTgsOTMyICs3MzksMTE2IEBAIE5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVS
X0lOVEVSTkFMKG1vdXNlRHJhZ2dlZEludGVybmFsKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAK
LXN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmluZyAqc3RyaW5n
LCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbmU+JiByZXN1bHQpCi17Ci0gICAgaW50IGxlbmd0
aCA9IFtbc3RyaW5nIHN0cmluZ10gbGVuZ3RoXTsKLSAgICAKLSAgICBpbnQgaSA9IDA7Ci0gICAg
d2hpbGUgKGkgPCBsZW5ndGgpIHsKLSAgICAgICAgTlNSYW5nZSByYW5nZTsKLSAgICAgICAgTlNE
aWN0aW9uYXJ5ICphdHRycyA9IFtzdHJpbmcgYXR0cmlidXRlc0F0SW5kZXg6aSBsb25nZXN0RWZm
ZWN0aXZlUmFuZ2U6JnJhbmdlIGluUmFuZ2U6TlNNYWtlUmFuZ2UoaSwgbGVuZ3RoIC0gaSldOwot
ICAgICAgICAKLSAgICAgICAgaWYgKE5TTnVtYmVyICpzdHlsZSA9IFthdHRycyBvYmplY3RGb3JL
ZXk6TlNVbmRlcmxpbmVTdHlsZUF0dHJpYnV0ZU5hbWVdKSB7Ci0gICAgICAgICAgICBDb2xvciBj
b2xvciA9IENvbG9yOjpibGFjazsKLSAgICAgICAgICAgIGlmIChOU0NvbG9yICpjb2xvckF0dHIg
PSBbYXR0cnMgb2JqZWN0Rm9yS2V5Ok5TVW5kZXJsaW5lQ29sb3JBdHRyaWJ1dGVOYW1lXSkKLSAg
ICAgICAgICAgICAgICBjb2xvciA9IGNvbG9yRnJvbU5TQ29sb3IoW2NvbG9yQXR0ciBjb2xvclVz
aW5nQ29sb3JTcGFjZU5hbWU6TlNEZXZpY2VSR0JDb2xvclNwYWNlXSk7Ci0gICAgICAgICAgICBy
ZXN1bHQuYXBwZW5kKENvbXBvc2l0aW9uVW5kZXJsaW5lKHJhbmdlLmxvY2F0aW9uLCBOU01heFJh
bmdlKHJhbmdlKSwgY29sb3IsIFtzdHlsZSBpbnRWYWx1ZV0gPiAxKSk7Ci0gICAgICAgIH0KLSAg
ICAgICAgCi0gICAgICAgIGkgPSByYW5nZS5sb2NhdGlvbiArIHJhbmdlLmxlbmd0aDsKLSAgICB9
Ci19Ci0KLSNpZiBVU0UoQVNZTkNfTlNURVhUSU5QVVRDTElFTlQpCi0KLS0gKHZvaWQpX2NvbGxl
Y3RLZXlib2FyZExheW91dENvbW1hbmRzRm9yRXZlbnQ6KE5TRXZlbnQgKilldmVudCB0bzooVmVj
dG9yPEtleXByZXNzQ29tbWFuZD4mKWNvbW1hbmRzCi17Ci0gICAgaWYgKFtldmVudCB0eXBlXSAh
PSBOU0tleURvd24pCi0gICAgICAgIHJldHVybjsKLQotICAgIEFTU0VSVCghX2RhdGEtPl9jb2xs
ZWN0ZWRLZXlwcmVzc0NvbW1hbmRzKTsKLSAgICBfZGF0YS0+X2NvbGxlY3RlZEtleXByZXNzQ29t
bWFuZHMgPSAmY29tbWFuZHM7Ci0KLSAgICBpZiAoTlNUZXh0SW5wdXRDb250ZXh0ICpjb250ZXh0
ID0gW3NlbGYgaW5wdXRDb250ZXh0XSkKLSAgICAgICAgW2NvbnRleHQgaGFuZGxlRXZlbnRCeUtl
eWJvYXJkTGF5b3V0OmV2ZW50XTsKLSAgICBlbHNlCi0gICAgICAgIFtzZWxmIGludGVycHJldEtl
eUV2ZW50czpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6ZXZlbnRdXTsKLQotICAgIF9kYXRhLT5f
Y29sbGVjdGVkS2V5cHJlc3NDb21tYW5kcyA9IG51bGxwdHI7Ci19Ci0KLS0gKHZvaWQpX2ludGVy
cHJldEtleUV2ZW50OihOU0V2ZW50ICopZXZlbnQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXiko
Qk9PTCBoYW5kbGVkLCBjb25zdCBWZWN0b3I8S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpKWNv
bXBsZXRpb25IYW5kbGVyCi17Ci0gICAgLy8gRm9yIHJlZ3VsYXIgV2ViIGNvbnRlbnQsIGlucHV0
IG1ldGhvZHMgcnVuIGJlZm9yZSBwYXNzaW5nIGEga2V5ZG93biB0byBET00sIGJ1dCBwbHVnLWlu
cyBnZXQgYW4gb3Bwb3J0dW5pdHkgdG8gaGFuZGxlIHRoZSBldmVudCBmaXJzdC4KLSAgICAvLyBU
aGVyZSBpcyBubyBuZWVkIHRvIGNvbGxlY3QgY29tbWFuZHMsIGFzIHRoZSBwbHVnLWluIGNhbm5v
dCBleGVjdXRlIHRoZW0uCi0gICAgaWYgKF9kYXRhLT5faW1wbC0+cGx1Z2luQ29tcGxleFRleHRJ
bnB1dElkZW50aWZpZXIoKSkgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihOTywgVmVjdG9y
PEtleXByZXNzQ29tbWFuZD4oKSk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBpZiAo
IVtzZWxmIGlucHV0Q29udGV4dF0pIHsKLSAgICAgICAgVmVjdG9yPEtleXByZXNzQ29tbWFuZD4g
Y29tbWFuZHM7Ci0gICAgICAgIFtzZWxmIF9jb2xsZWN0S2V5Ym9hcmRMYXlvdXRDb21tYW5kc0Zv
ckV2ZW50OmV2ZW50IHRvOmNvbW1hbmRzXTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoTk8s
IGNvbW1hbmRzKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIExPRyhUZXh0SW5wdXQs
ICItPiBoYW5kbGVFdmVudEJ5SW5wdXRNZXRob2Q6JXAgJUAiLCBldmVudCwgZXZlbnQpOwotICAg
IFtbc2VsZiBpbnB1dENvbnRleHRdIGhhbmRsZUV2ZW50QnlJbnB1dE1ldGhvZDpldmVudCBjb21w
bGV0aW9uSGFuZGxlcjpeKEJPT0wgaGFuZGxlZCkgewotICAgICAgICAKLSAgICAgICAgTE9HKFRl
eHRJbnB1dCwgIi4uLiBoYW5kbGVFdmVudEJ5SW5wdXRNZXRob2QlcyBoYW5kbGVkIiwgaGFuZGxl
ZCA/ICIiIDogIiBub3QiKTsKLSAgICAgICAgaWYgKGhhbmRsZWQpIHsKLSAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKFlFUywgVmVjdG9yPEtleXByZXNzQ29tbWFuZD4oKSk7Ci0gICAgICAg
ICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBWZWN0b3I8S2V5cHJlc3NDb21tYW5k
PiBjb21tYW5kczsKLSAgICAgICAgW3NlbGYgX2NvbGxlY3RLZXlib2FyZExheW91dENvbW1hbmRz
Rm9yRXZlbnQ6ZXZlbnQgdG86Y29tbWFuZHNdOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihO
TywgY29tbWFuZHMpOwotICAgIH1dOwotfQotCiAtICh2b2lkKWRvQ29tbWFuZEJ5U2VsZWN0b3I6
KFNFTClzZWxlY3RvcgogewotICAgIExPRyhUZXh0SW5wdXQsICJkb0NvbW1hbmRCeVNlbGVjdG9y
OlwiJXNcIiIsIHNlbF9nZXROYW1lKHNlbGVjdG9yKSk7Ci0KLSAgICBWZWN0b3I8S2V5cHJlc3ND
b21tYW5kPioga2V5cHJlc3NDb21tYW5kcyA9IF9kYXRhLT5fY29sbGVjdGVkS2V5cHJlc3NDb21t
YW5kczsKLQotICAgIGlmIChrZXlwcmVzc0NvbW1hbmRzKSB7Ci0gICAgICAgIEtleXByZXNzQ29t
bWFuZCBjb21tYW5kKE5TU3RyaW5nRnJvbVNlbGVjdG9yKHNlbGVjdG9yKSk7Ci0gICAgICAgIGtl
eXByZXNzQ29tbWFuZHMtPmFwcGVuZChjb21tYW5kKTsKLSAgICAgICAgTE9HKFRleHRJbnB1dCwg
Ii4uLnN0b3JlZCIpOwotICAgICAgICBfZGF0YS0+X3BhZ2UtPnJlZ2lzdGVyS2V5cHJlc3NDb21t
YW5kTmFtZShjb21tYW5kLmNvbW1hbmROYW1lKTsKLSAgICB9IGVsc2UgewotICAgICAgICAvLyBG
SVhNRTogU2VuZCB0aGUgY29tbWFuZCB0byBFZGl0b3Igc3luY2hyb25vdXNseSBhbmQgb25seSBz
ZW5kIGl0IGFsb25nIHRoZQotICAgICAgICAvLyByZXNwb25kZXIgY2hhaW4gaWYgaXQncyBhIHNl
bGVjdG9yIHRoYXQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhbiBlZGl0aW5nIGNvbW1hbmQuCi0g
ICAgICAgIFtzdXBlciBkb0NvbW1hbmRCeVNlbGVjdG9yOnNlbGVjdG9yXTsKLSAgICB9CisgICAg
X2RhdGEtPl9pbXBsLT5kb0NvbW1hbmRCeVNlbGVjdG9yKHNlbGVjdG9yKTsKIH0KIAogLSAodm9p
ZClpbnNlcnRUZXh0OihpZClzdHJpbmcKIHsKLSAgICAvLyBVbmxpa2UgYW4gTlNUZXh0SW5wdXRD
bGllbnQgdmFyaWFudCB3aXRoIHJlcGxhY2VtZW50UmFuZ2UsIHRoaXMgTlNSZXNwb25kZXIgbWV0
aG9kIGlzIGNhbGxlZCB3aGVuIHRoZXJlIGlzIG5vIGlucHV0IGNvbnRleHQsCi0gICAgLy8gc28g
dGV4dCBpbnB1dCBwcm9jZXNzaW5nIGlzbid0IHBlcmZvcm1lZC4gV2UgYXJlIG5vdCBnb2luZyB0
byBhY3R1YWxseSBpbnNlcnQgYW55IHRleHQgaW4gdGhhdCBjYXNlLCBidXQgc2F2aW5nIGFuIGlu
c2VydFRleHQKLSAgICAvLyBjb21tYW5kIGVuc3VyZXMgdGhhdCBhIGtleXByZXNzIGV2ZW50IGlz
IGRpc3BhdGNoZWQgYXMgYXBwcm9wcmlhdGUuCi0gICAgW3NlbGYgaW5zZXJ0VGV4dDpzdHJpbmcg
cmVwbGFjZW1lbnRSYW5nZTpOU01ha2VSYW5nZShOU05vdEZvdW5kLCAwKV07CisgICAgX2RhdGEt
Pl9pbXBsLT5pbnNlcnRUZXh0KHN0cmluZyk7CiB9CiAKIC0gKHZvaWQpaW5zZXJ0VGV4dDooaWQp
c3RyaW5nIHJlcGxhY2VtZW50UmFuZ2U6KE5TUmFuZ2UpcmVwbGFjZW1lbnRSYW5nZQogewotICAg
IEJPT0wgaXNBdHRyaWJ1dGVkU3RyaW5nID0gW3N0cmluZyBpc0tpbmRPZkNsYXNzOltOU0F0dHJp
YnV0ZWRTdHJpbmcgY2xhc3NdXTsKLSAgICBBU1NFUlQoaXNBdHRyaWJ1dGVkU3RyaW5nIHx8IFtz
dHJpbmcgaXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSk7Ci0KLSAgICBpZiAocmVwbGFj
ZW1lbnRSYW5nZS5sb2NhdGlvbiAhPSBOU05vdEZvdW5kKQotICAgICAgICBMT0coVGV4dElucHV0
LCAiaW5zZXJ0VGV4dDpcIiVAXCIgcmVwbGFjZW1lbnRSYW5nZTooJXUsICV1KSIsIGlzQXR0cmli
dXRlZFN0cmluZyA/IFtzdHJpbmcgc3RyaW5nXSA6IHN0cmluZywgcmVwbGFjZW1lbnRSYW5nZS5s
b2NhdGlvbiwgcmVwbGFjZW1lbnRSYW5nZS5sZW5ndGgpOwotICAgIGVsc2UKLSAgICAgICAgTE9H
KFRleHRJbnB1dCwgImluc2VydFRleHQ6XCIlQFwiIiwgaXNBdHRyaWJ1dGVkU3RyaW5nID8gW3N0
cmluZyBzdHJpbmddIDogc3RyaW5nKTsKLQotICAgIE5TU3RyaW5nICp0ZXh0OwotICAgIFZlY3Rv
cjxUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2U+IGRpY3RhdGlvbkFsdGVybmF0aXZlczsKLQotICAg
IGJvb2wgcmVnaXN0ZXJVbmRvR3JvdXAgPSBmYWxzZTsKLSAgICBpZiAoaXNBdHRyaWJ1dGVkU3Ry
aW5nKSB7Ci0jaWYgVVNFKERJQ1RBVElPTl9BTFRFUk5BVElWRVMpCi0gICAgICAgIGNvbGxlY3RE
aWN0YXRpb25UZXh0QWx0ZXJuYXRpdmVzKHN0cmluZywgZGljdGF0aW9uQWx0ZXJuYXRpdmVzKTsK
LSNlbmRpZgotI2lmIFVTRShJTlNFUlRJT05fVU5ET19HUk9VUElORykKLSAgICAgICAgcmVnaXN0
ZXJVbmRvR3JvdXAgPSBzaG91bGRSZWdpc3Rlckluc2VydGlvblVuZG9Hcm91cChzdHJpbmcpOwot
I2VuZGlmCi0gICAgICAgIC8vIEZJWE1FOiBXZSBpZ25vcmUgbW9zdCBhdHRyaWJ1dGVzIGZyb20g
dGhlIHN0cmluZywgc28gZm9yIGV4YW1wbGUgaW5zZXJ0aW5nIGZyb20gQ2hhcmFjdGVyIFBhbGV0
dGUgbG9zZXMgZm9udCBhbmQgZ2x5cGggdmFyaWF0aW9uIGRhdGEuCi0gICAgICAgIHRleHQgPSBb
c3RyaW5nIHN0cmluZ107Ci0gICAgfSBlbHNlCi0gICAgICAgIHRleHQgPSBzdHJpbmc7Ci0KLSAg
ICAvLyBpbnNlcnRUZXh0IGNhbiBiZSBjYWxsZWQgZm9yIHNldmVyYWwgcmVhc29uczoKLSAgICAv
LyAtIElmIGl0J3MgZnJvbSBub3JtYWwga2V5IGV2ZW50IHByb2Nlc3NpbmcgKGluY2x1ZGluZyBr
ZXkgYmluZGluZ3MpLCB3ZSBzYXZlIHRoZSBhY3Rpb24gdG8gcGVyZm9ybSBpdCBsYXRlci4KLSAg
ICAvLyAtIElmIGl0J3MgZnJvbSBhbiBpbnB1dCBtZXRob2QsIHRoZW4gd2Ugc2hvdWxkIGluc2Vy
dCB0aGUgdGV4dCBub3cuCi0gICAgLy8gLSBJZiBpdCdzIHNlbnQgb3V0c2lkZSBvZiBrZXlib2Fy
ZCBldmVudCBwcm9jZXNzaW5nIChlLmcuIGZyb20gQ2hhcmFjdGVyIFZpZXdlciwgb3Igd2hlbiBj
b25maXJtaW5nIGFuIGlubGluZSBpbnB1dCBhcmVhIHdpdGggYSBtb3VzZSksCi0gICAgLy8gdGhl
biB3ZSBhbHNvIGV4ZWN1dGUgaXQgaW1tZWRpYXRlbHksIGFzIHRoZXJlIHdpbGwgYmUgbm8gb3Ro
ZXIgY2hhbmNlLgotICAgIFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+KiBrZXlwcmVzc0NvbW1hbmRz
ID0gX2RhdGEtPl9jb2xsZWN0ZWRLZXlwcmVzc0NvbW1hbmRzOwotICAgIGlmIChrZXlwcmVzc0Nv
bW1hbmRzKSB7Ci0gICAgICAgIEFTU0VSVChyZXBsYWNlbWVudFJhbmdlLmxvY2F0aW9uID09IE5T
Tm90Rm91bmQpOwotICAgICAgICBLZXlwcmVzc0NvbW1hbmQgY29tbWFuZCgiaW5zZXJ0VGV4dDoi
LCB0ZXh0KTsKLSAgICAgICAga2V5cHJlc3NDb21tYW5kcy0+YXBwZW5kKGNvbW1hbmQpOwotICAg
ICAgICBMT0coVGV4dElucHV0LCAiLi4uc3RvcmVkIik7Ci0gICAgICAgIF9kYXRhLT5fcGFnZS0+
cmVnaXN0ZXJLZXlwcmVzc0NvbW1hbmROYW1lKGNvbW1hbmQuY29tbWFuZE5hbWUpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgU3RyaW5nIGV2ZW50VGV4dCA9IHRleHQ7Ci0gICAgZXZl
bnRUZXh0LnJlcGxhY2UoTlNCYWNrVGFiQ2hhcmFjdGVyLCBOU1RhYkNoYXJhY3Rlcik7IC8vIHNh
bWUgdGhpbmcgaXMgZG9uZSBpbiBLZXlFdmVudE1hYy5tbSBpbiBXZWJDb3JlCi0gICAgaWYgKCFk
aWN0YXRpb25BbHRlcm5hdGl2ZXMuaXNFbXB0eSgpKQotICAgICAgICBfZGF0YS0+X3BhZ2UtPmlu
c2VydERpY3RhdGVkVGV4dEFzeW5jKGV2ZW50VGV4dCwgcmVwbGFjZW1lbnRSYW5nZSwgZGljdGF0
aW9uQWx0ZXJuYXRpdmVzLCByZWdpc3RlclVuZG9Hcm91cCk7Ci0gICAgZWxzZQotICAgICAgICBf
ZGF0YS0+X3BhZ2UtPmluc2VydFRleHRBc3luYyhldmVudFRleHQsIHJlcGxhY2VtZW50UmFuZ2Us
IHJlZ2lzdGVyVW5kb0dyb3VwKTsKLX0KLQotLSAodm9pZClzZWxlY3RlZFJhbmdlV2l0aENvbXBs
ZXRpb25IYW5kbGVyOih2b2lkKF4pKE5TUmFuZ2Ugc2VsZWN0ZWRSYW5nZSkpY29tcGxldGlvbkhh
bmRsZXJQdHIKLXsKLSAgICBSZXRhaW5QdHI8aWQ+IGNvbXBsZXRpb25IYW5kbGVyID0gYWRvcHRO
UyhbY29tcGxldGlvbkhhbmRsZXJQdHIgY29weV0pOwotCi0gICAgTE9HKFRleHRJbnB1dCwgInNl
bGVjdGVkUmFuZ2UiKTsKLSAgICBfZGF0YS0+X3BhZ2UtPmdldFNlbGVjdGVkUmFuZ2VBc3luYyhb
Y29tcGxldGlvbkhhbmRsZXJdKGNvbnN0IEVkaXRpbmdSYW5nZSYgZWRpdGluZ1JhbmdlUmVzdWx0
LCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKLSAgICAgICAgdm9pZCAoXmNv
bXBsZXRpb25IYW5kbGVyQmxvY2spKE5TUmFuZ2UpID0gKHZvaWQgKF4pKE5TUmFuZ2UpKWNvbXBs
ZXRpb25IYW5kbGVyLmdldCgpOwotICAgICAgICBpZiAoZXJyb3IgIT0gV2ViS2l0OjpDYWxsYmFj
a0Jhc2U6OkVycm9yOjpOb25lKSB7Ci0gICAgICAgICAgICBMT0coVGV4dElucHV0LCAiICAgIC4u
LnNlbGVjdGVkUmFuZ2UgZmFpbGVkLiIpOwotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXJC
bG9jayhOU01ha2VSYW5nZShOU05vdEZvdW5kLCAwKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLSAgICAgICAgTlNSYW5nZSByZXN1bHQgPSBlZGl0aW5nUmFuZ2VSZXN1bHQ7Ci0g
ICAgICAgIGlmIChyZXN1bHQubG9jYXRpb24gPT0gTlNOb3RGb3VuZCkKLSAgICAgICAgICAgIExP
RyhUZXh0SW5wdXQsICIgICAgLT4gc2VsZWN0ZWRSYW5nZSByZXR1cm5lZCAoTlNOb3RGb3VuZCwg
JWxsdSkiLCByZXN1bHQubGVuZ3RoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgTE9HKFRl
eHRJbnB1dCwgIiAgICAtPiBzZWxlY3RlZFJhbmdlIHJldHVybmVkICglbGx1LCAlbGx1KSIsIHJl
c3VsdC5sb2NhdGlvbiwgcmVzdWx0Lmxlbmd0aCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
QmxvY2socmVzdWx0KTsKLSAgICB9KTsKLX0KLQotLSAodm9pZCltYXJrZWRSYW5nZVdpdGhDb21w
bGV0aW9uSGFuZGxlcjoodm9pZCheKShOU1JhbmdlIG1hcmtlZFJhbmdlKSljb21wbGV0aW9uSGFu
ZGxlclB0cgotewotICAgIFJldGFpblB0cjxpZD4gY29tcGxldGlvbkhhbmRsZXIgPSBhZG9wdE5T
KFtjb21wbGV0aW9uSGFuZGxlclB0ciBjb3B5XSk7Ci0KLSAgICBMT0coVGV4dElucHV0LCAibWFy
a2VkUmFuZ2UiKTsKLSAgICBfZGF0YS0+X3BhZ2UtPmdldE1hcmtlZFJhbmdlQXN5bmMoW2NvbXBs
ZXRpb25IYW5kbGVyXShjb25zdCBFZGl0aW5nUmFuZ2UmIGVkaXRpbmdSYW5nZVJlc3VsdCwgV2Vi
S2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7Ci0gICAgICAgIHZvaWQgKF5jb21wbGV0
aW9uSGFuZGxlckJsb2NrKShOU1JhbmdlKSA9ICh2b2lkICheKShOU1JhbmdlKSljb21wbGV0aW9u
SGFuZGxlci5nZXQoKTsKLSAgICAgICAgaWYgKGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNl
OjpFcnJvcjo6Tm9uZSkgewotICAgICAgICAgICAgTE9HKFRleHRJbnB1dCwgIiAgICAuLi5tYXJr
ZWRSYW5nZSBmYWlsZWQuIik7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlckJsb2NrKE5T
TWFrZVJhbmdlKE5TTm90Rm91bmQsIDApKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotICAgICAgICBOU1JhbmdlIHJlc3VsdCA9IGVkaXRpbmdSYW5nZVJlc3VsdDsKLSAgICAgICAg
aWYgKHJlc3VsdC5sb2NhdGlvbiA9PSBOU05vdEZvdW5kKQotICAgICAgICAgICAgTE9HKFRleHRJ
bnB1dCwgIiAgICAtPiBtYXJrZWRSYW5nZSByZXR1cm5lZCAoTlNOb3RGb3VuZCwgJWxsdSkiLCBy
ZXN1bHQubGVuZ3RoKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgTE9HKFRleHRJbnB1dCwg
IiAgICAtPiBtYXJrZWRSYW5nZSByZXR1cm5lZCAoJWxsdSwgJWxsdSkiLCByZXN1bHQubG9jYXRp
b24sIHJlc3VsdC5sZW5ndGgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlckJsb2NrKHJlc3Vs
dCk7Ci0gICAgfSk7Ci19Ci0KLS0gKHZvaWQpaGFzTWFya2VkVGV4dFdpdGhDb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCheKShCT09MIGhhc01hcmtlZFRleHQpKWNvbXBsZXRpb25IYW5kbGVyUHRyCi17
Ci0gICAgUmV0YWluUHRyPGlkPiBjb21wbGV0aW9uSGFuZGxlciA9IGFkb3B0TlMoW2NvbXBsZXRp
b25IYW5kbGVyUHRyIGNvcHldKTsKLQotICAgIExPRyhUZXh0SW5wdXQsICJoYXNNYXJrZWRUZXh0
Iik7Ci0gICAgX2RhdGEtPl9wYWdlLT5nZXRNYXJrZWRSYW5nZUFzeW5jKFtjb21wbGV0aW9uSGFu
ZGxlcl0oY29uc3QgRWRpdGluZ1JhbmdlJiBlZGl0aW5nUmFuZ2VSZXN1bHQsIFdlYktpdDo6Q2Fs
bGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewotICAgICAgICB2b2lkICheY29tcGxldGlvbkhhbmRs
ZXJCbG9jaykoQk9PTCkgPSAodm9pZCAoXikoQk9PTCkpY29tcGxldGlvbkhhbmRsZXIuZ2V0KCk7
Ci0gICAgICAgIGlmIChlcnJvciAhPSBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUp
IHsKLSAgICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLi4uaGFzTWFya2VkVGV4dCBmYWls
ZWQuIik7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlckJsb2NrKE5PKTsKLSAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBCT09MIGhhc01hcmtlZFRleHQgPSBlZGl0
aW5nUmFuZ2VSZXN1bHQubG9jYXRpb24gIT0gbm90Rm91bmQ7Ci0gICAgICAgIExPRyhUZXh0SW5w
dXQsICIgICAgLT4gaGFzTWFya2VkVGV4dCByZXR1cm5lZCAldSIsIGhhc01hcmtlZFRleHQpOwot
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlckJsb2NrKGhhc01hcmtlZFRleHQpOwotICAgIH0pOwot
fQotCi0tICh2b2lkKWF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlOihOU1Jhbmdl
KW5zUmFuZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoTlNBdHRyaWJ1dGVkU3RyaW5nICph
dHRyU3RyaW5nLCBOU1JhbmdlIGFjdHVhbFJhbmdlKSljb21wbGV0aW9uSGFuZGxlclB0cgotewot
ICAgIFJldGFpblB0cjxpZD4gY29tcGxldGlvbkhhbmRsZXIgPSBhZG9wdE5TKFtjb21wbGV0aW9u
SGFuZGxlclB0ciBjb3B5XSk7Ci0KLSAgICBMT0coVGV4dElucHV0LCAiYXR0cmlidXRlZFN1YnN0
cmluZ0Zyb21SYW5nZTooJXUsICV1KSIsIG5zUmFuZ2UubG9jYXRpb24sIG5zUmFuZ2UubGVuZ3Ro
KTsKLSAgICBfZGF0YS0+X3BhZ2UtPmF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JDaGFyYWN0ZXJSYW5n
ZUFzeW5jKG5zUmFuZ2UsIFtjb21wbGV0aW9uSGFuZGxlcl0oY29uc3QgQXR0cmlidXRlZFN0cmlu
ZyYgc3RyaW5nLCBjb25zdCBFZGl0aW5nUmFuZ2UmIGFjdHVhbFJhbmdlLCBXZWJLaXQ6OkNhbGxi
YWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKLSAgICAgICAgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVy
QmxvY2spKE5TQXR0cmlidXRlZFN0cmluZyAqLCBOU1JhbmdlKSA9ICh2b2lkICheKShOU0F0dHJp
YnV0ZWRTdHJpbmcgKiwgTlNSYW5nZSkpY29tcGxldGlvbkhhbmRsZXIuZ2V0KCk7Ci0gICAgICAg
IGlmIChlcnJvciAhPSBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpIHsKLSAgICAg
ICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLi4uYXR0cmlidXRlZFN1YnN0cmluZ0Zyb21SYW5n
ZSBmYWlsZWQuIik7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlckJsb2NrKDAsIE5TTWFr
ZVJhbmdlKE5TTm90Rm91bmQsIDApKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQot
ICAgICAgICBMT0coVGV4dElucHV0LCAiICAgIC0+IGF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9tUmFu
Z2UgcmV0dXJuZWQgJUAiLCBbc3RyaW5nLnN0cmluZy5nZXQoKSBzdHJpbmddKTsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXJCbG9jayhbW3N0cmluZy5zdHJpbmcuZ2V0KCkgcmV0YWluXSBhdXRv
cmVsZWFzZV0sIGFjdHVhbFJhbmdlKTsKLSAgICB9KTsKLX0KLQotLSAodm9pZClmaXJzdFJlY3RG
b3JDaGFyYWN0ZXJSYW5nZTooTlNSYW5nZSl0aGVSYW5nZSBjb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCheKShOU1JlY3QgZmlyc3RSZWN0LCBOU1JhbmdlIGFjdHVhbFJhbmdlKSljb21wbGV0aW9uSGFu
ZGxlclB0cgotewotICAgIFJldGFpblB0cjxpZD4gY29tcGxldGlvbkhhbmRsZXIgPSBhZG9wdE5T
KFtjb21wbGV0aW9uSGFuZGxlclB0ciBjb3B5XSk7Ci0KLSAgICBMT0coVGV4dElucHV0LCAiZmly
c3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2U6KCV1LCAldSkiLCB0aGVSYW5nZS5sb2NhdGlvbiwgdGhl
UmFuZ2UubGVuZ3RoKTsKLQotICAgIC8vIEp1c3QgdG8gbWF0Y2ggTlNUZXh0VmlldydzIGJlaGF2
aW9yLiBSZWdyZXNzaW9uIHRlc3RzIGNhbm5vdCBkZXRlY3QgdGhpczsKLSAgICAvLyB0byByZXBy
b2R1Y2UsIHVzZSBhIHRlc3QgYXBwbGljYXRpb24gZnJvbSBodHRwOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NjgyCi0gICAgLy8gKHR5cGUgc29tZXRoaW5nOyB0cnkgcmFuZ2Vz
ICgxLCAtMSkgYW5kICgyLCAtMSkuCi0gICAgaWYgKCh0aGVSYW5nZS5sb2NhdGlvbiArIHRoZVJh
bmdlLmxlbmd0aCA8IHRoZVJhbmdlLmxvY2F0aW9uKSAmJiAodGhlUmFuZ2UubG9jYXRpb24gKyB0
aGVSYW5nZS5sZW5ndGggIT0gMCkpCi0gICAgICAgIHRoZVJhbmdlLmxlbmd0aCA9IDA7Ci0KLSAg
ICBpZiAodGhlUmFuZ2UubG9jYXRpb24gPT0gTlNOb3RGb3VuZCkgewotICAgICAgICBMT0coVGV4
dElucHV0LCAiICAgIC0+IE5TWmVyb1JlY3QiKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXJQ
dHIoTlNaZXJvUmVjdCwgdGhlUmFuZ2UpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
X2RhdGEtPl9wYWdlLT5maXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZUFzeW5jKHRoZVJhbmdlLCBb
c2VsZiwgY29tcGxldGlvbkhhbmRsZXJdKGNvbnN0IEludFJlY3QmIHJlY3QsIGNvbnN0IEVkaXRp
bmdSYW5nZSYgYWN0dWFsUmFuZ2UsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikg
ewotICAgICAgICB2b2lkICheY29tcGxldGlvbkhhbmRsZXJCbG9jaykoTlNSZWN0LCBOU1Jhbmdl
KSA9ICh2b2lkICheKShOU1JlY3QsIE5TUmFuZ2UpKWNvbXBsZXRpb25IYW5kbGVyLmdldCgpOwot
ICAgICAgICBpZiAoZXJyb3IgIT0gV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKSB7
Ci0gICAgICAgICAgICBMT0coVGV4dElucHV0LCAiICAgIC4uLmZpcnN0UmVjdEZvckNoYXJhY3Rl
clJhbmdlIGZhaWxlZC4iKTsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyQmxvY2soTlNa
ZXJvUmVjdCwgTlNNYWtlUmFuZ2UoTlNOb3RGb3VuZCwgMCkpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9Ci0KLSAgICAgICAgTlNSZWN0IHJlc3VsdFJlY3QgPSBbc2VsZiBjb252ZXJ0
UmVjdDpyZWN0IHRvVmlldzpuaWxdOwotICAgICAgICByZXN1bHRSZWN0ID0gW3NlbGYud2luZG93
IGNvbnZlcnRSZWN0VG9TY3JlZW46cmVzdWx0UmVjdF07Ci0KLSAgICAgICAgTE9HKFRleHRJbnB1
dCwgIiAgICAtPiBmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSByZXR1cm5lZCAoJWYsICVmLCAl
ZiwgJWYpIiwgcmVzdWx0UmVjdC5vcmlnaW4ueCwgcmVzdWx0UmVjdC5vcmlnaW4ueSwgcmVzdWx0
UmVjdC5zaXplLndpZHRoLCByZXN1bHRSZWN0LnNpemUuaGVpZ2h0KTsKLSAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXJCbG9jayhyZXN1bHRSZWN0LCBhY3R1YWxSYW5nZSk7Ci0gICAgfSk7Ci19Ci0K
LS0gKHZvaWQpY2hhcmFjdGVySW5kZXhGb3JQb2ludDooTlNQb2ludCl0aGVQb2ludCBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCheKShOU1VJbnRlZ2VyKSljb21wbGV0aW9uSGFuZGxlclB0cgotewot
ICAgIFJldGFpblB0cjxpZD4gY29tcGxldGlvbkhhbmRsZXIgPSBhZG9wdE5TKFtjb21wbGV0aW9u
SGFuZGxlclB0ciBjb3B5XSk7Ci0KLSAgICBMT0coVGV4dElucHV0LCAiY2hhcmFjdGVySW5kZXhG
b3JQb2ludDooJWYsICVmKSIsIHRoZVBvaW50LngsIHRoZVBvaW50LnkpOwotCi0gICAgTlNXaW5k
b3cgKndpbmRvdyA9IFtzZWxmIHdpbmRvd107Ci0KLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBw
dXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xh
cmF0aW9ucyIKLSAgICBpZiAod2luZG93KQotICAgICAgICB0aGVQb2ludCA9IFt3aW5kb3cgY29u
dmVydFNjcmVlblRvQmFzZTp0aGVQb2ludF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
Ci0gICAgdGhlUG9pbnQgPSBbc2VsZiBjb252ZXJ0UG9pbnQ6dGhlUG9pbnQgZnJvbVZpZXc6bmls
XTsgIC8vIHRoZSBwb2ludCBpcyByZWxhdGl2ZSB0byB0aGUgbWFpbiBmcmFtZQotCi0gICAgX2Rh
dGEtPl9wYWdlLT5jaGFyYWN0ZXJJbmRleEZvclBvaW50QXN5bmMoSW50UG9pbnQodGhlUG9pbnQp
LCBbY29tcGxldGlvbkhhbmRsZXJdKHVpbnQ2NF90IHJlc3VsdCwgV2ViS2l0OjpDYWxsYmFja0Jh
c2U6OkVycm9yIGVycm9yKSB7Ci0gICAgICAgIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlckJsb2Nr
KShOU1VJbnRlZ2VyKSA9ICh2b2lkICheKShOU1VJbnRlZ2VyKSljb21wbGV0aW9uSGFuZGxlci5n
ZXQoKTsKLSAgICAgICAgaWYgKGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcjo6
Tm9uZSkgewotICAgICAgICAgICAgTE9HKFRleHRJbnB1dCwgIiAgICAuLi5jaGFyYWN0ZXJJbmRl
eEZvclBvaW50IGZhaWxlZC4iKTsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyQmxvY2so
MCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKHJlc3VsdCA9
PSBub3RGb3VuZCkKLSAgICAgICAgICAgIHJlc3VsdCA9IE5TTm90Rm91bmQ7Ci0gICAgICAgIExP
RyhUZXh0SW5wdXQsICIgICAgLT4gY2hhcmFjdGVySW5kZXhGb3JQb2ludCByZXR1cm5lZCAlbHUi
LCByZXN1bHQpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlckJsb2NrKHJlc3VsdCk7Ci0gICAg
fSk7CisgICAgX2RhdGEtPl9pbXBsLT5pbnNlcnRUZXh0KHN0cmluZywgcmVwbGFjZW1lbnRSYW5n
ZSk7CiB9CiAKIC0gKE5TVGV4dElucHV0Q29udGV4dCAqKWlucHV0Q29udGV4dAogewotICAgIGlm
IChfZGF0YS0+X2ltcGwtPnBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkpIHsKLSAg
ICAgICAgQVNTRVJUKCFfZGF0YS0+X2NvbGxlY3RlZEtleXByZXNzQ29tbWFuZHMpOyAvLyBTaG91
bGQgbm90IGdldCBoZXJlIGZyb20gLV9pbnRlcnByZXRLZXlFdmVudDpjb21wbGV0aW9uSGFuZGxl
cjosIHdlIG9ubHkgdXNlIFdLVGV4dElucHV0V2luZG93Q29udHJvbGxlciBhZnRlciBnaXZpbmcg
dGhlIHBsdWctaW4gYSBjaGFuY2UgdG8gaGFuZGxlIGtleWRvd24gbmF0aXZlbHkuCi0gICAgICAg
IHJldHVybiBbW1dLVGV4dElucHV0V2luZG93Q29udHJvbGxlciBzaGFyZWRUZXh0SW5wdXRXaW5k
b3dDb250cm9sbGVyXSBpbnB1dENvbnRleHRdOwotICAgIH0KLQotICAgIC8vIERpc2FibGUgdGV4
dCBpbnB1dCBtYWNoaW5lcnkgd2hlbiBpbiBub24tZWRpdGFibGUgY29udGVudC4gQW4gaW52aXNp
YmxlIGlubGluZSBpbnB1dCBhcmVhIGFmZmVjdHMgcGVyZm9ybWFuY2UsIGFuZCBjYW4gcHJldmVu
dCBFeHBvc2UgZnJvbSB3b3JraW5nLgotICAgIGlmICghX2RhdGEtPl9wYWdlLT5lZGl0b3JTdGF0
ZSgpLmlzQ29udGVudEVkaXRhYmxlKQotICAgICAgICByZXR1cm4gbmlsOwotCi0gICAgcmV0dXJu
IFtzdXBlciBpbnB1dENvbnRleHRdOwotfQotCi0tICh2b2lkKXVubWFya1RleHQKLXsKLSAgICBM
T0coVGV4dElucHV0LCAidW5tYXJrVGV4dCIpOwotCi0gICAgX2RhdGEtPl9wYWdlLT5jb25maXJt
Q29tcG9zaXRpb25Bc3luYygpOwotfQotCi0tICh2b2lkKXNldE1hcmtlZFRleHQ6KGlkKXN0cmlu
ZyBzZWxlY3RlZFJhbmdlOihOU1JhbmdlKXNlbGVjdGVkUmFuZ2UgcmVwbGFjZW1lbnRSYW5nZToo
TlNSYW5nZSlyZXBsYWNlbWVudFJhbmdlCi17Ci0gICAgQk9PTCBpc0F0dHJpYnV0ZWRTdHJpbmcg
PSBbc3RyaW5nIGlzS2luZE9mQ2xhc3M6W05TQXR0cmlidXRlZFN0cmluZyBjbGFzc11dOwotICAg
IEFTU0VSVChpc0F0dHJpYnV0ZWRTdHJpbmcgfHwgW3N0cmluZyBpc0tpbmRPZkNsYXNzOltOU1N0
cmluZyBjbGFzc11dKTsKLQotICAgIExPRyhUZXh0SW5wdXQsICJzZXRNYXJrZWRUZXh0OlwiJUBc
IiBzZWxlY3RlZFJhbmdlOigldSwgJXUpIHJlcGxhY2VtZW50UmFuZ2U6KCV1LCAldSkiLCBpc0F0
dHJpYnV0ZWRTdHJpbmcgPyBbc3RyaW5nIHN0cmluZ10gOiBzdHJpbmcsIHNlbGVjdGVkUmFuZ2Uu
bG9jYXRpb24sIHNlbGVjdGVkUmFuZ2UubGVuZ3RoLCByZXBsYWNlbWVudFJhbmdlLmxvY2F0aW9u
LCByZXBsYWNlbWVudFJhbmdlLmxlbmd0aCk7Ci0KLSAgICBWZWN0b3I8Q29tcG9zaXRpb25VbmRl
cmxpbmU+IHVuZGVybGluZXM7Ci0gICAgTlNTdHJpbmcgKnRleHQ7Ci0KLSAgICBpZiAoaXNBdHRy
aWJ1dGVkU3RyaW5nKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBXZSBpZ25vcmUgbW9zdCBhdHRyaWJ1
dGVzIGZyb20gdGhlIHN0cmluZywgc28gYW4gaW5wdXQgbWV0aG9kIGNhbm5vdCBzcGVjaWZ5IGUu
Zy4gYSBmb250IG9yIGEgZ2x5cGggdmFyaWF0aW9uLgotICAgICAgICB0ZXh0ID0gW3N0cmluZyBz
dHJpbmddOwotICAgICAgICBleHRyYWN0VW5kZXJsaW5lcyhzdHJpbmcsIHVuZGVybGluZXMpOwot
ICAgIH0gZWxzZQotICAgICAgICB0ZXh0ID0gc3RyaW5nOwotCi0gICAgaWYgKF9kYXRhLT5faW1w
bC0+aW5TZWN1cmVJbnB1dFN0YXRlKCkpIHsKLSAgICAgICAgLy8gSW4gcGFzc3dvcmQgZmllbGRz
LCB3ZSBvbmx5IGFsbG93IEFTQ0lJIGRlYWQga2V5cywgYW5kIGRvbid0IGFsbG93IGlubGluZSBp
bnB1dCwgbWF0Y2hpbmcgTlNTZWN1cmVUZXh0SW5wdXRGaWVsZC4KLSAgICAgICAgLy8gQWxsb3dp
bmcgQVNDSUkgZGVhZCBrZXlzIGlzIG5lY2Vzc2FyeSB0byBlbmFibGUgZnVsbCBSb21hbiBpbnB1
dCB3aGVuIHVzaW5nIGEgVmlldG5hbWVzZSBrZXlib2FyZC4KLSAgICAgICAgQVNTRVJUKCFfZGF0
YS0+X3BhZ2UtPmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb24pOwotICAgICAgICBfZGF0YS0+
X2ltcGwtPm5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb24oKTsKLSAg
ICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBzdG9yZSB0aGUgY29tbWFuZCB0byBoYW5kbGUgaXQg
YWZ0ZXIgRE9NIGV2ZW50IHByb2Nlc3NpbmcsIGFzIGl0J3MgcmVndWxhciBrZXlib2FyZCBpbnB1
dCBub3csIG5vdCBhIGNvbXBvc2l0aW9uLgotICAgICAgICBpZiAoW3RleHQgbGVuZ3RoXSA9PSAx
ICYmIGlzQVNDSUkoW3RleHQgY2hhcmFjdGVyQXRJbmRleDowXSkpCi0gICAgICAgICAgICBfZGF0
YS0+X3BhZ2UtPmluc2VydFRleHRBc3luYyh0ZXh0LCByZXBsYWNlbWVudFJhbmdlKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgTlNCZWVwKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBfZGF0YS0+X3BhZ2UtPnNldENvbXBvc2l0aW9uQXN5bmModGV4dCwgdW5kZXJsaW5lcywg
c2VsZWN0ZWRSYW5nZSwgcmVwbGFjZW1lbnRSYW5nZSk7Ci19Ci0KLS8vIFN5bmNocm9ub3VzIE5T
VGV4dElucHV0Q2xpZW50IGlzIHN0aWxsIGltcGxlbWVudGVkIHRvIGNhdGNoIHNwdXJpb3VzIHN5
bmMgY2FsbHMuIFJlbW92ZSB3aGVuIHRoYXQgaXMgbm8gbG9uZ2VyIG5lZWRlZC4KLQotLSAoTlNS
YW5nZSlzZWxlY3RlZFJhbmdlIE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUCi17Ci0gICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIE5TTWFrZVJhbmdlKE5TTm90Rm91bmQsIDApOwot
fQotCi0tIChCT09MKWhhc01hcmtlZFRleHQgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQKLXsKLSAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gTk87Ci19Ci0KLS0gKE5TUmFuZ2Up
bWFya2VkUmFuZ2UgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQKLXsKLSAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICByZXR1cm4gTlNNYWtlUmFuZ2UoTlNOb3RGb3VuZCwgMCk7Ci19Ci0KLS0g
KE5TQXR0cmlidXRlZFN0cmluZyAqKWF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdl
OihOU1JhbmdlKW5zUmFuZ2UgYWN0dWFsUmFuZ2U6KE5TUmFuZ2VQb2ludGVyKWFjdHVhbFJhbmdl
IE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUCi17Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgcmV0dXJuIG5pbDsKLX0KLQotLSAoTlNVSW50ZWdlciljaGFyYWN0ZXJJbmRleEZvclBvaW50
OihOU1BvaW50KXRoZVBvaW50IE5PX1JFVFVSTl9EVUVfVE9fQVNTRVJUCi17Ci0gICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLS0gKE5TUmVjdClmaXJzdFJlY3RG
b3JDaGFyYWN0ZXJSYW5nZTooTlNSYW5nZSl0aGVSYW5nZSBhY3R1YWxSYW5nZTooTlNSYW5nZVBv
aW50ZXIpYWN0dWFsUmFuZ2UgTk9fUkVUVVJOX0RVRV9UT19BU1NFUlQKLXsgCi0gICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuIE5TTWFrZVJlY3QoMCwgMCwgMCwgMCk7CisgICAg
cmV0dXJuIF9kYXRhLT5faW1wbC0+aW5wdXRDb250ZXh0KCk7CiB9CiAKIC0gKEJPT0wpcGVyZm9y
bUtleUVxdWl2YWxlbnQ6KE5TRXZlbnQgKilldmVudAogewotICAgIGlmIChfZGF0YS0+X2ltcGwt
Pmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQotICAgICAgICByZXR1cm4gTk87Ci0KLSAgICAvLyBU
aGVyZSdzIGEgY2hhbmNlIHRoYXQgcmVzcG9uZGluZyB0byB0aGlzIGV2ZW50IHdpbGwgcnVuIGEg
bmVzdGVkIGV2ZW50IGxvb3AsIGFuZAotICAgIC8vIGZldGNoaW5nIGEgbmV3IGV2ZW50IG1pZ2h0
IHJlbGVhc2UgdGhlIG9sZCBvbmUuIFJldGFpbmluZyBhbmQgdGhlbiBhdXRvcmVsZWFzaW5nCi0g
ICAgLy8gdGhlIGN1cnJlbnQgZXZlbnQgcHJldmVudHMgdGhhdCBmcm9tIGNhdXNpbmcgYSBwcm9i
bGVtIGluc2lkZSBXZWJLaXQgb3IgQXBwS2l0IGNvZGUuCi0gICAgW1tldmVudCByZXRhaW5dIGF1
dG9yZWxlYXNlXTsKLQotICAgIC8vIFdlIGdldCBFc2Mga2V5IGhlcmUgYWZ0ZXIgcHJvY2Vzc2lu
ZyBlaXRoZXIgRXNjIG9yIENtZCtwZXJpb2QuIFRoZSBmb3JtZXIgc3RhcnRzIGFzIGEga2V5RG93
biwgYW5kIHRoZSBsYXR0ZXIgc3RhcnRzIGFzIGEga2V5IGVxdWl2YWxlbnQsCi0gICAgLy8gYnV0
IGJvdGggZ2V0IHRyYW5zZm9ybWVkIHRvIGEgY2FuY2VsT3BlcmF0aW9uOiBjb21tYW5kLCBleGVj
dXRpbmcgd2hpY2ggcGFzc2VzIGFuIEVzYyBrZXkgZXZlbnQgdG8gLXBlcmZvcm1LZXlFcXVpdmFs
ZW50Oi4KLSAgICAvLyBEb24ndCBpbnRlcnByZXQgdGhpcyBldmVudCBhZ2FpbiwgYXZvaWRpbmcg
cmUtZW50cmFuY3kgYW5kIGluZmluaXRlIGxvb3BzLgotICAgIGlmIChbW2V2ZW50IGNoYXJhY3Rl
cnNJZ25vcmluZ01vZGlmaWVyc10gaXNFcXVhbFRvU3RyaW5nOkAiXGUiXSAmJiAhKFtldmVudCBt
b2RpZmllckZsYWdzXSAmIE5TRGV2aWNlSW5kZXBlbmRlbnRNb2RpZmllckZsYWdzTWFzaykpCi0g
ICAgICAgIHJldHVybiBbc3VwZXIgcGVyZm9ybUtleUVxdWl2YWxlbnQ6ZXZlbnRdOwotCi0gICAg
aWYgKF9kYXRhLT5fa2V5RG93bkV2ZW50QmVpbmdSZXNlbnQpIHsKLSAgICAgICAgLy8gV2ViQ29y
ZSBoYXMgYWxyZWFkeSBzZWVuIHRoZSBldmVudCwgbm8gbmVlZCBmb3IgY3VzdG9tIHByb2Nlc3Np
bmcuCi0gICAgICAgIC8vIE5vdGUgdGhhdCB3ZSBjYW4gZ2V0IG11bHRpcGxlIGV2ZW50cyBmb3Ig
ZWFjaCBldmVudCBiZWluZyByZS1zZW50LiBGb3IgZXhhbXBsZSwgZm9yIENtZCsnPScgQXBwS2l0
Ci0gICAgICAgIC8vIGZpcnN0IHBlcmZvcm1zIHRoZSBvcmlnaW5hbCBrZXkgZXF1aXZhbGVudCwg
YW5kIGlmIHRoYXQgaXNuJ3QgaGFuZGxlZCwgaXQgZGlzcGF0Y2hlcyBhIHN5bnRoZXRpYyBDbWQr
JysnLgotICAgICAgICByZXR1cm4gW3N1cGVyIHBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsK
LSAgICB9Ci0KLSAgICBBU1NFUlQoZXZlbnQgPT0gW05TQXBwIGN1cnJlbnRFdmVudF0pOwotCi0g
ICAgX2RhdGEtPl9pbXBsLT5kaXNhYmxlQ29tcGxleFRleHRJbnB1dElmTmVjZXNzYXJ5KCk7Ci0K
LSAgICAvLyBQYXNzIGtleSBjb21ib3MgdGhyb3VnaCBXZWJDb3JlIGlmIHRoZXJlIGlzIGEga2V5
IGJpbmRpbmcgYXZhaWxhYmxlIGZvcgotICAgIC8vIHRoaXMgZXZlbnQuIFRoaXMgbGV0cyB3ZWJw
YWdlcyBoYXZlIGEgY3JhY2sgYXQgaW50ZXJjZXB0aW5nIGtleS1tb2RpZmllZCBrZXlwcmVzc2Vz
LgotICAgIC8vIEZJWE1FOiBXaHkgaXMgdGhlIGZpcnN0UmVzcG9uZGVyIGNoZWNrIG5lZWRlZD8K
LSAgICBpZiAoc2VsZiA9PSBbW3NlbGYgd2luZG93XSBmaXJzdFJlc3BvbmRlcl0pIHsKLSAgICAg
ICAgW3NlbGYgX2ludGVycHJldEtleUV2ZW50OmV2ZW50IGNvbXBsZXRpb25IYW5kbGVyOl4oQk9P
TCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPEtleXByZXNzQ29tbWFuZD4mIGNv
bW1hbmRzKSB7Ci0gICAgICAgICAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQo
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1h
bmRzKSk7Ci0gICAgICAgIH1dOwotICAgICAgICByZXR1cm4gWUVTOwotICAgIH0KLSAgICAKLSAg
ICByZXR1cm4gW3N1cGVyIHBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKKyAgICByZXR1cm4g
X2RhdGEtPl9pbXBsLT5wZXJmb3JtS2V5RXF1aXZhbGVudChldmVudCk7CiB9CiAKIC0gKHZvaWQp
a2V5VXA6KE5TRXZlbnQgKil0aGVFdmVudAogewotICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9y
ZXNOb25XaGVlbEV2ZW50cygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBMT0coVGV4dElucHV0
LCAia2V5VXA6JXAgJUAiLCB0aGVFdmVudCwgdGhlRXZlbnQpOwotCi0gICAgW3NlbGYgX2ludGVy
cHJldEtleUV2ZW50OnRoZUV2ZW50IGNvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCBoYW5kbGVkQnlJ
bnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPEtleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSB7Ci0g
ICAgICAgIEFTU0VSVCghaGFuZGxlZEJ5SW5wdXRNZXRob2QgfHwgY29tbWFuZHMuaXNFbXB0eSgp
KTsKLSAgICAgICAgX2RhdGEtPl9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktl
eWJvYXJkRXZlbnQodGhlRXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykpOwot
ICAgIH1dOworICAgIF9kYXRhLT5faW1wbC0+a2V5VXAodGhlRXZlbnQpOwogfQogCiAtICh2b2lk
KWtleURvd246KE5TRXZlbnQgKil0aGVFdmVudAogewotICAgIGlmIChfZGF0YS0+X2ltcGwtPmln
bm9yZXNOb25XaGVlbEV2ZW50cygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBMT0coVGV4dElu
cHV0LCAia2V5RG93bjolcCAlQCVzIiwgdGhlRXZlbnQsIHRoZUV2ZW50LCAodGhlRXZlbnQgPT0g
X2RhdGEtPl9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCkgPyAiIChyZS1zZW50KSIgOiAiIik7Ci0K
LSAgICBpZiAoX2RhdGEtPl9pbXBsLT50cnlIYW5kbGVQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5
RG93bih0aGVFdmVudCkpIHsKLSAgICAgICAgTE9HKFRleHRJbnB1dCwgIi4uLmhhbmRsZWQgYnkg
cGx1Zy1pbiIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gV2UgY291bGQgYmUg
cmVjZWl2aW5nIGEga2V5IGRvd24gZnJvbSBBcHBLaXQgaWYgd2UgaGF2ZSByZS1zZW50IGFuIGV2
ZW50Ci0gICAgLy8gdGhhdCBtYXBzIHRvIGFuIGFjdGlvbiB0aGF0IGlzIGN1cnJlbnRseSB1bmF2
YWlsYWJsZSAoZm9yIGV4YW1wbGUgYSBjb3B5IHdoZW4KLSAgICAvLyB0aGVyZSBpcyBubyByYW5n
ZSBzZWxlY3Rpb24pLgotICAgIC8vIElmIHRoaXMgaXMgdGhlIGNhc2Ugd2Ugc2hvdWxkIGlnbm9y
ZSB0aGUga2V5IGRvd24uCi0gICAgaWYgKF9kYXRhLT5fa2V5RG93bkV2ZW50QmVpbmdSZXNlbnQg
PT0gdGhlRXZlbnQpIHsKLSAgICAgICAgW3N1cGVyIGtleURvd246dGhlRXZlbnRdOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgW3NlbGYgX2ludGVycHJldEtleUV2ZW50OnRoZUV2ZW50
IGNvbXBsZXRpb25IYW5kbGVyOl4oQk9PTCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVj
dG9yPEtleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSB7Ci0gICAgICAgIEFTU0VSVCghaGFuZGxl
ZEJ5SW5wdXRNZXRob2QgfHwgY29tbWFuZHMuaXNFbXB0eSgpKTsKLSAgICAgICAgX2RhdGEtPl9w
YWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQodGhlRXZlbnQs
IGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykpOwotICAgIH1dOworICAgIF9kYXRhLT5f
aW1wbC0+a2V5RG93bih0aGVFdmVudCk7CiB9CiAKIC0gKHZvaWQpZmxhZ3NDaGFuZ2VkOihOU0V2
ZW50ICopdGhlRXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxF
dmVudHMoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgTE9HKFRleHRJbnB1dCwgImZsYWdzQ2hh
bmdlZDolcCAlQCIsIHRoZUV2ZW50LCB0aGVFdmVudCk7Ci0KLSAgICB1bnNpZ25lZCBzaG9ydCBr
ZXlDb2RlID0gW3RoZUV2ZW50IGtleUNvZGVdOwotCi0gICAgLy8gRG9uJ3QgbWFrZSBhbiBldmVu
dCBmcm9tIHRoZSBudW0gbG9jayBhbmQgZnVuY3Rpb24ga2V5cwotICAgIGlmICgha2V5Q29kZSB8
fCBrZXlDb2RlID09IDEwIHx8IGtleUNvZGUgPT0gNjMpCi0gICAgICAgIHJldHVybjsKLQotICAg
IFtzZWxmIF9pbnRlcnByZXRLZXlFdmVudDp0aGVFdmVudCBjb21wbGV0aW9uSGFuZGxlcjpeKEJP
T0wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+JiBj
b21tYW5kcykgewotICAgICAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0
aXZlV2ViS2V5Ym9hcmRFdmVudCh0aGVFdmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1h
bmRzKSk7Ci0gICAgfV07Ci19Ci0KLSNlbHNlIC8vIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVO
VCkKLQotLSAoQk9PTClfaW50ZXJwcmV0S2V5RXZlbnQ6KE5TRXZlbnQgKilldmVudCBzYXZpbmdD
b21tYW5kc1RvOihWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYpY29tbWFuZHMKLXsK
LSAgICBBU1NFUlQoIV9kYXRhLT5faW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyk7Ci0gICAg
QVNTRVJUKGNvbW1hbmRzLmlzRW1wdHkoKSk7Ci0KLSAgICBpZiAoW2V2ZW50IHR5cGVdID09IE5T
RmxhZ3NDaGFuZ2VkKQotICAgICAgICByZXR1cm4gTk87Ci0KLSAgICBXS1ZpZXdJbnRlcnByZXRL
ZXlFdmVudHNQYXJhbWV0ZXJzIHBhcmFtZXRlcnM7Ci0gICAgcGFyYW1ldGVycy5ldmVudEludGVy
cHJldGF0aW9uSGFkU2lkZUVmZmVjdHMgPSBmYWxzZTsKLSAgICBwYXJhbWV0ZXJzLmV4ZWN1dGlu
Z1NhdmVkS2V5cHJlc3NDb21tYW5kcyA9IGZhbHNlOwotICAgIC8vIFdlIGFzc3VtZSB0aGF0IGFu
IGlucHV0IG1ldGhvZCBoYXMgY29uc3VtZWQgdGhlIGV2ZW50LCBhbmQgb25seSBjaGFuZ2UgdGhp
cyBhc3N1bXB0aW9uIGlmIG9uZSBvZiB0aGUgTlNUZXh0SW5wdXQgbWV0aG9kcyBpcyBjYWxsZWQu
Ci0gICAgLy8gV2UgYXNzdW1lIHRoZSBJTSB3aWxsICpub3QqIGNvbnN1bWUgaG90a2V5IHNlcXVl
bmNlcy4KLSAgICBwYXJhbWV0ZXJzLmNvbnN1bWVkQnlJTSA9ICEoW2V2ZW50IG1vZGlmaWVyRmxh
Z3NdICYgTlNDb21tYW5kS2V5TWFzayk7Ci0gICAgcGFyYW1ldGVycy5jb21tYW5kcyA9ICZjb21t
YW5kczsKLSAgICBfZGF0YS0+X2ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgPSAmcGFyYW1l
dGVyczsKLQotICAgIExPRyhUZXh0SW5wdXQsICItPiBpbnRlcnByZXRLZXlFdmVudHM6JXAgJUAi
LCBldmVudCwgZXZlbnQpOwotICAgIFtzZWxmIGludGVycHJldEtleUV2ZW50czpbTlNBcnJheSBh
cnJheVdpdGhPYmplY3Q6ZXZlbnRdXTsKLQotICAgIF9kYXRhLT5faW50ZXJwcmV0S2V5RXZlbnRz
UGFyYW1ldGVycyA9IG51bGxwdHI7Ci0KLSAgICAvLyBBbiBpbnB1dCBtZXRob2QgbWF5IGNvbnN1
bWUgYW4gZXZlbnQgYW5kIG5vdCB0ZWxsIHVzIChlLmcuIHdoZW4gZGlzcGxheWluZyBhIGNhbmRp
ZGF0ZSB3aW5kb3cpLAotICAgIC8vIGluIHdoaWNoIGNhc2Ugd2Ugc2hvdWxkIG5vdCBidWJibGUg
dGhlIGV2ZW50IHVwIHRoZSBET00uCi0gICAgaWYgKHBhcmFtZXRlcnMuY29uc3VtZWRCeUlNKSB7
Ci0gICAgICAgIEFTU0VSVChjb21tYW5kcy5pc0VtcHR5KCkpOwotICAgICAgICBMT0coVGV4dElu
cHV0LCAiLi4uZXZlbnQgJXAgd2FzIGNvbnN1bWVkIGJ5IGFuIGlucHV0IG1ldGhvZCIsIGV2ZW50
KTsKLSAgICAgICAgcmV0dXJuIFlFUzsKLSAgICB9Ci0KLSAgICBMT0coVGV4dElucHV0LCAiLi4u
aW50ZXJwcmV0S2V5RXZlbnRzIGZvciBldmVudCAlcCBkb25lLCByZXR1cm5zICVkIiwgZXZlbnQs
IHBhcmFtZXRlcnMuZXZlbnRJbnRlcnByZXRhdGlvbkhhZFNpZGVFZmZlY3RzKTsKLQotICAgIC8v
IElmIHdlIGhhdmUgYWxyZWFkeSBleGVjdXRlZCBhbGwgb3Igc29tZSBvZiB0aGUgY29tbWFuZHMs
IHRoZSBldmVudCBpcyAiaGFuZGxlZCIuIE5vdGUgdGhhdCB0aGVyZSBhcmUgYWRkaXRpb25hbCBj
aGVja3Mgb24gd2ViIHByb2Nlc3Mgc2lkZS4KLSAgICByZXR1cm4gcGFyYW1ldGVycy5ldmVudElu
dGVycHJldGF0aW9uSGFkU2lkZUVmZmVjdHM7Ci19Ci0KLS0gKHZvaWQpX2V4ZWN1dGVTYXZlZEtl
eXByZXNzQ29tbWFuZHMKLXsKLSAgICBXS1ZpZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJz
KiBwYXJhbWV0ZXJzID0gX2RhdGEtPl9pbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzOwotICAg
IGlmICghcGFyYW1ldGVycyB8fCBwYXJhbWV0ZXJzLT5jb21tYW5kcy0+aXNFbXB0eSgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICAvLyBXZSBjb3VsZCBiZSBjYWxsZWQgYWdhaW4gaWYgdGhlIGV4
ZWN1dGlvbiBvZiBvbmUgY29tbWFuZCB0cmlnZ2VycyBhIGNhbGwgdG8gc2VsZWN0ZWRSYW5nZS4K
LSAgICAvLyBJbiB0aGlzIGNhc2UsIHRoZSBzdGF0ZSBpcyB1cCB0byBkYXRlLCBhbmQgd2UgZG9u
J3QgbmVlZCB0byBleGVjdXRlIGFueSBtb3JlIHNhdmVkIGNvbW1hbmRzIHRvIHJldHVybiBhIHJl
c3VsdC4KLSAgICBpZiAocGFyYW1ldGVycy0+ZXhlY3V0aW5nU2F2ZWRLZXlwcmVzc0NvbW1hbmRz
KQotICAgICAgICByZXR1cm47Ci0KLSAgICBMT0coVGV4dElucHV0LCAiRXhlY3V0aW5nICV1IHNh
dmVkIGtleXByZXNzIGNvbW1hbmRzLi4uIiwgcGFyYW1ldGVycy0+Y29tbWFuZHMtPnNpemUoKSk7
Ci0KLSAgICBwYXJhbWV0ZXJzLT5leGVjdXRpbmdTYXZlZEtleXByZXNzQ29tbWFuZHMgPSB0cnVl
OwotICAgIHBhcmFtZXRlcnMtPmV2ZW50SW50ZXJwcmV0YXRpb25IYWRTaWRlRWZmZWN0cyB8PSBf
ZGF0YS0+X3BhZ2UtPmV4ZWN1dGVLZXlwcmVzc0NvbW1hbmRzKCpwYXJhbWV0ZXJzLT5jb21tYW5k
cyk7Ci0gICAgcGFyYW1ldGVycy0+Y29tbWFuZHMtPmNsZWFyKCk7Ci0gICAgcGFyYW1ldGVycy0+
ZXhlY3V0aW5nU2F2ZWRLZXlwcmVzc0NvbW1hbmRzID0gZmFsc2U7Ci0KLSAgICBMT0coVGV4dElu
cHV0LCAiLi4uZG9uZSBleGVjdXRpbmcgc2F2ZWQga2V5cHJlc3MgY29tbWFuZHMuIik7Ci19Ci0K
LS0gKHZvaWQpZG9Db21tYW5kQnlTZWxlY3RvcjooU0VMKXNlbGVjdG9yCi17Ci0gICAgTE9HKFRl
eHRJbnB1dCwgImRvQ29tbWFuZEJ5U2VsZWN0b3I6XCIlc1wiIiwgc2VsX2dldE5hbWUoc2VsZWN0
b3IpKTsKLQotICAgIFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMqIHBhcmFtZXRl
cnMgPSBfZGF0YS0+X2ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnM7Ci0gICAgaWYgKHBhcmFt
ZXRlcnMpCi0gICAgICAgIHBhcmFtZXRlcnMtPmNvbnN1bWVkQnlJTSA9IGZhbHNlOwotCi0gICAg
Ly8gQXMgaW4gaW5zZXJ0VGV4dDpyZXBsYWNlbWVudFJhbmdlOiwgd2UgYXNzdW1lIHRoYXQgdGhl
IGNhbGwgY29tZXMgZnJvbSBhbiBpbnB1dCBtZXRob2QgaWYgdGhlcmUgaXMgbWFya2VkIHRleHQu
Ci0gICAgYm9vbCBpc0Zyb21JbnB1dE1ldGhvZCA9IF9kYXRhLT5fcGFnZS0+ZWRpdG9yU3RhdGUo
KS5oYXNDb21wb3NpdGlvbjsKLQotICAgIGlmIChwYXJhbWV0ZXJzICYmICFpc0Zyb21JbnB1dE1l
dGhvZCkgewotICAgICAgICBLZXlwcmVzc0NvbW1hbmQgY29tbWFuZChOU1N0cmluZ0Zyb21TZWxl
Y3RvcihzZWxlY3RvcikpOwotICAgICAgICBwYXJhbWV0ZXJzLT5jb21tYW5kcy0+YXBwZW5kKGNv
bW1hbmQpOwotICAgICAgICBMT0coVGV4dElucHV0LCAiLi4uc3RvcmVkIik7Ci0gICAgICAgIF9k
YXRhLT5fcGFnZS0+cmVnaXN0ZXJLZXlwcmVzc0NvbW1hbmROYW1lKGNvbW1hbmQuY29tbWFuZE5h
bWUpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIC8vIEZJWE1FOiBTZW5kIHRoZSBjb21tYW5kIHRv
IEVkaXRvciBzeW5jaHJvbm91c2x5IGFuZCBvbmx5IHNlbmQgaXQgYWxvbmcgdGhlCi0gICAgICAg
IC8vIHJlc3BvbmRlciBjaGFpbiBpZiBpdCdzIGEgc2VsZWN0b3IgdGhhdCBkb2VzIG5vdCBjb3Jy
ZXNwb25kIHRvIGFuIGVkaXRpbmcgY29tbWFuZC4KLSAgICAgICAgW3N1cGVyIGRvQ29tbWFuZEJ5
U2VsZWN0b3I6c2VsZWN0b3JdOwotICAgIH0KKyAgICBfZGF0YS0+X2ltcGwtPmZsYWdzQ2hhbmdl
ZCh0aGVFdmVudCk7CiB9CiAKLS0gKHZvaWQpaW5zZXJ0VGV4dDooaWQpc3RyaW5nCistICh2b2lk
KXNldE1hcmtlZFRleHQ6KGlkKXN0cmluZyBzZWxlY3RlZFJhbmdlOihOU1JhbmdlKW5ld1NlbGVj
dGVkUmFuZ2UgcmVwbGFjZW1lbnRSYW5nZTooTlNSYW5nZSlyZXBsYWNlbWVudFJhbmdlCiB7Ci0g
ICAgLy8gVW5saWtlIGFuIE5TVGV4dElucHV0Q2xpZW50IHZhcmlhbnQgd2l0aCByZXBsYWNlbWVu
dFJhbmdlLCB0aGlzIE5TUmVzcG9uZGVyIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiB0aGVyZSBpcyBu
byBpbnB1dCBjb250ZXh0LAotICAgIC8vIHNvIHRleHQgaW5wdXQgcHJvY2Vzc2luZyBpc24ndCBw
ZXJmb3JtZWQuIFdlIGFyZSBub3QgZ29pbmcgdG8gYWN0dWFsbHkgaW5zZXJ0IGFueSB0ZXh0IGlu
IHRoYXQgY2FzZSwgYnV0IHNhdmluZyBhbiBpbnNlcnRUZXh0Ci0gICAgLy8gY29tbWFuZCBlbnN1
cmVzIHRoYXQgYSBrZXlwcmVzcyBldmVudCBpcyBkaXNwYXRjaGVkIGFzIGFwcHJvcHJpYXRlLgot
ICAgIFtzZWxmIGluc2VydFRleHQ6c3RyaW5nIHJlcGxhY2VtZW50UmFuZ2U6TlNNYWtlUmFuZ2Uo
TlNOb3RGb3VuZCwgMCldOworICAgIF9kYXRhLT5faW1wbC0+c2V0TWFya2VkVGV4dChzdHJpbmcs
IG5ld1NlbGVjdGVkUmFuZ2UsIHJlcGxhY2VtZW50UmFuZ2UpOwogfQogCi0tICh2b2lkKWluc2Vy
dFRleHQ6KGlkKXN0cmluZyByZXBsYWNlbWVudFJhbmdlOihOU1JhbmdlKXJlcGxhY2VtZW50UmFu
Z2UKLXsKLSAgICBCT09MIGlzQXR0cmlidXRlZFN0cmluZyA9IFtzdHJpbmcgaXNLaW5kT2ZDbGFz
czpbTlNBdHRyaWJ1dGVkU3RyaW5nIGNsYXNzXV07Ci0gICAgQVNTRVJUKGlzQXR0cmlidXRlZFN0
cmluZyB8fCBbc3RyaW5nIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pOwotCi0gICAg
aWYgKHJlcGxhY2VtZW50UmFuZ2UubG9jYXRpb24gIT0gTlNOb3RGb3VuZCkKLSAgICAgICAgTE9H
KFRleHRJbnB1dCwgImluc2VydFRleHQ6XCIlQFwiIHJlcGxhY2VtZW50UmFuZ2U6KCV1LCAldSki
LCBpc0F0dHJpYnV0ZWRTdHJpbmcgPyBbc3RyaW5nIHN0cmluZ10gOiBzdHJpbmcsIHJlcGxhY2Vt
ZW50UmFuZ2UubG9jYXRpb24sIHJlcGxhY2VtZW50UmFuZ2UubGVuZ3RoKTsKLSAgICBlbHNlCi0g
ICAgICAgIExPRyhUZXh0SW5wdXQsICJpbnNlcnRUZXh0OlwiJUBcIiIsIGlzQXR0cmlidXRlZFN0
cmluZyA/IFtzdHJpbmcgc3RyaW5nXSA6IHN0cmluZyk7Ci0gICAgV0tWaWV3SW50ZXJwcmV0S2V5
RXZlbnRzUGFyYW1ldGVycyogcGFyYW1ldGVycyA9IF9kYXRhLT5faW50ZXJwcmV0S2V5RXZlbnRz
UGFyYW1ldGVyczsKLSAgICBpZiAocGFyYW1ldGVycykKLSAgICAgICAgcGFyYW1ldGVycy0+Y29u
c3VtZWRCeUlNID0gZmFsc2U7Ci0KLSAgICBOU1N0cmluZyAqdGV4dDsKLSAgICBib29sIGlzRnJv
bUlucHV0TWV0aG9kID0gX2RhdGEtPl9wYWdlLT5lZGl0b3JTdGF0ZSgpLmhhc0NvbXBvc2l0aW9u
OwotCi0gICAgVmVjdG9yPFRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZT4gZGljdGF0aW9uQWx0ZXJu
YXRpdmVzOwotCi0gICAgaWYgKGlzQXR0cmlidXRlZFN0cmluZykgewotI2lmIFVTRShESUNUQVRJ
T05fQUxURVJOQVRJVkVTKQotICAgICAgICBjb2xsZWN0RGljdGF0aW9uVGV4dEFsdGVybmF0aXZl
cyhzdHJpbmcsIGRpY3RhdGlvbkFsdGVybmF0aXZlcyk7Ci0jZW5kaWYKLSAgICAgICAgLy8gRklY
TUU6IFdlIGlnbm9yZSBtb3N0IGF0dHJpYnV0ZXMgZnJvbSB0aGUgc3RyaW5nLCBzbyBmb3IgZXhh
bXBsZSBpbnNlcnRpbmcgZnJvbSBDaGFyYWN0ZXIgUGFsZXR0ZSBsb3NlcyBmb250IGFuZCBnbHlw
aCB2YXJpYXRpb24gZGF0YS4KLSAgICAgICAgdGV4dCA9IFtzdHJpbmcgc3RyaW5nXTsKLSAgICB9
IGVsc2UKLSAgICAgICAgdGV4dCA9IHN0cmluZzsKLQotICAgIC8vIGluc2VydFRleHQgY2FuIGJl
IGNhbGxlZCBmb3Igc2V2ZXJhbCByZWFzb25zOgotICAgIC8vIC0gSWYgaXQncyBmcm9tIG5vcm1h
bCBrZXkgZXZlbnQgcHJvY2Vzc2luZyAoaW5jbHVkaW5nIGtleSBiaW5kaW5ncyksIHdlIG1heSBu
ZWVkIHRvIHNhdmUgdGhlIGFjdGlvbiB0byBwZXJmb3JtIGl0IGxhdGVyLgotICAgIC8vIC0gSWYg
aXQncyBmcm9tIGFuIGlucHV0IG1ldGhvZCwgdGhlbiB3ZSBzaG91bGQgaW5zZXJ0IHRoZSB0ZXh0
IG5vdy4gV2UgYXNzdW1lIGl0J3MgZnJvbSB0aGUgaW5wdXQgbWV0aG9kIGlmIHdlIGhhdmUgbWFy
a2VkIHRleHQuCi0gICAgLy8gRklYTUU6IEluIHRoZW9yeSwgdGhpcyBjb3VsZCBiZSB3cm9uZyBm
b3Igc29tZSBpbnB1dCBtZXRob2RzLCBzbyB3ZSBzaG91bGQgdHJ5IHRvIGZpbmQgYW5vdGhlciB3
YXkgdG8gZGV0ZXJtaW5lIGlmIHRoZSBjYWxsIGlzIGZyb20gdGhlIGlucHV0IG1ldGhvZC4KLSAg
ICAvLyAtIElmIGl0J3Mgc2VudCBvdXRzaWRlIG9mIGtleWJvYXJkIGV2ZW50IHByb2Nlc3Npbmcg
KGUuZy4gZnJvbSBDaGFyYWN0ZXIgVmlld2VyLCBvciB3aGVuIGNvbmZpcm1pbmcgYW4gaW5saW5l
IGlucHV0IGFyZWEgd2l0aCBhIG1vdXNlKSwKLSAgICAvLyB0aGVuIHdlIGFsc28gZXhlY3V0ZSBp
dCBpbW1lZGlhdGVseSwgYXMgdGhlcmUgd2lsbCBiZSBubyBvdGhlciBjaGFuY2UuCi0gICAgaWYg
KHBhcmFtZXRlcnMgJiYgIWlzRnJvbUlucHV0TWV0aG9kKSB7Ci0gICAgICAgIC8vIEZJWE1FOiBI
YW5kbGUgcmVwbGFjZW1lbnRSYW5nZSBpbiB0aGlzIGNhc2UsIHRvby4gSXQncyBrbm93biB0byBv
Y2N1ciBpbiBwcmFjdGljZSB3aGVuIGNhbmNlbGluZyBQcmVzcyBhbmQgSG9sZCAoc2VlIDxyZGFy
Oi8vMTE5NDA2NzA+KS4KLSAgICAgICAgQVNTRVJUKHJlcGxhY2VtZW50UmFuZ2UubG9jYXRpb24g
PT0gTlNOb3RGb3VuZCk7Ci0gICAgICAgIEtleXByZXNzQ29tbWFuZCBjb21tYW5kKCJpbnNlcnRU
ZXh0OiIsIHRleHQpOwotICAgICAgICBwYXJhbWV0ZXJzLT5jb21tYW5kcy0+YXBwZW5kKGNvbW1h
bmQpOwotICAgICAgICBfZGF0YS0+X3BhZ2UtPnJlZ2lzdGVyS2V5cHJlc3NDb21tYW5kTmFtZShj
b21tYW5kLmNvbW1hbmROYW1lKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIFN0cmlu
ZyBldmVudFRleHQgPSB0ZXh0OwotICAgIGV2ZW50VGV4dC5yZXBsYWNlKE5TQmFja1RhYkNoYXJh
Y3RlciwgTlNUYWJDaGFyYWN0ZXIpOyAvLyBzYW1lIHRoaW5nIGlzIGRvbmUgaW4gS2V5RXZlbnRN
YWMubW0gaW4gV2ViQ29yZQotICAgIGJvb2wgZXZlbnRIYW5kbGVkOwotICAgIGlmICghZGljdGF0
aW9uQWx0ZXJuYXRpdmVzLmlzRW1wdHkoKSkKLSAgICAgICAgZXZlbnRIYW5kbGVkID0gX2RhdGEt
Pl9wYWdlLT5pbnNlcnREaWN0YXRlZFRleHQoZXZlbnRUZXh0LCByZXBsYWNlbWVudFJhbmdlLCBk
aWN0YXRpb25BbHRlcm5hdGl2ZXMpOwotICAgIGVsc2UKLSAgICAgICAgZXZlbnRIYW5kbGVkID0g
X2RhdGEtPl9wYWdlLT5pbnNlcnRUZXh0KGV2ZW50VGV4dCwgcmVwbGFjZW1lbnRSYW5nZSk7Ci0K
LSAgICBpZiAocGFyYW1ldGVycykKLSAgICAgICAgcGFyYW1ldGVycy0+ZXZlbnRJbnRlcnByZXRh
dGlvbkhhZFNpZGVFZmZlY3RzIHw9IGV2ZW50SGFuZGxlZDsKLX0KLQotLSAoTlNUZXh0SW5wdXRD
b250ZXh0ICopaW5wdXRDb250ZXh0CistICh2b2lkKXVubWFya1RleHQKIHsKLSAgICBXS1ZpZXdJ
bnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzID0gX2RhdGEtPl9pbnRlcnBy
ZXRLZXlFdmVudHNQYXJhbWV0ZXJzOwotCi0gICAgaWYgKF9kYXRhLT5faW1wbC0+cGx1Z2luQ29t
cGxleFRleHRJbnB1dElkZW50aWZpZXIoKSAmJiAhcGFyYW1ldGVycykKLSAgICAgICAgcmV0dXJu
IFtbV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyIHNoYXJlZFRleHRJbnB1dFdpbmRvd0NvbnRy
b2xsZXJdIGlucHV0Q29udGV4dF07Ci0KLSAgICAvLyBEaXNhYmxlIHRleHQgaW5wdXQgbWFjaGlu
ZXJ5IHdoZW4gaW4gbm9uLWVkaXRhYmxlIGNvbnRlbnQuIEFuIGludmlzaWJsZSBpbmxpbmUgaW5w
dXQgYXJlYSBhZmZlY3RzIHBlcmZvcm1hbmNlLCBhbmQgY2FuIHByZXZlbnQgRXhwb3NlIGZyb20g
d29ya2luZy4KLSAgICBpZiAoIV9kYXRhLT5fcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRF
ZGl0YWJsZSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAgIHJldHVybiBbc3VwZXIgaW5wdXRD
b250ZXh0XTsKKyAgICBfZGF0YS0+X2ltcGwtPnVubWFya1RleHQoKTsKIH0KIAogLSAoTlNSYW5n
ZSlzZWxlY3RlZFJhbmdlCiB7Ci0gICAgW3NlbGYgX2V4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFu
ZHNdOwotCi0gICAgRWRpdGluZ1JhbmdlIHNlbGVjdGVkUmFuZ2U7Ci0gICAgX2RhdGEtPl9wYWdl
LT5nZXRTZWxlY3RlZFJhbmdlKHNlbGVjdGVkUmFuZ2UpOwotCi0gICAgTlNSYW5nZSByZXN1bHQg
PSBzZWxlY3RlZFJhbmdlOwotICAgIGlmIChyZXN1bHQubG9jYXRpb24gPT0gTlNOb3RGb3VuZCkK
LSAgICAgICAgTE9HKFRleHRJbnB1dCwgInNlbGVjdGVkUmFuZ2UgLT4gKE5TTm90Rm91bmQsICV1
KSIsIHJlc3VsdC5sZW5ndGgpOwotICAgIGVsc2UKLSAgICAgICAgTE9HKFRleHRJbnB1dCwgInNl
bGVjdGVkUmFuZ2UgLT4gKCV1LCAldSkiLCByZXN1bHQubG9jYXRpb24sIHJlc3VsdC5sZW5ndGgp
OwotCi0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gX2RhdGEtPl9pbXBsLT5zZWxlY3Rl
ZFJhbmdlKCk7CiB9CiAKIC0gKEJPT0wpaGFzTWFya2VkVGV4dAogewotICAgIFdLVmlld0ludGVy
cHJldEtleUV2ZW50c1BhcmFtZXRlcnMqIHBhcmFtZXRlcnMgPSBfZGF0YS0+X2ludGVycHJldEtl
eUV2ZW50c1BhcmFtZXRlcnM7Ci0KLSAgICBCT09MIHJlc3VsdDsKLSAgICBpZiAocGFyYW1ldGVy
cykgewotICAgICAgICByZXN1bHQgPSBfZGF0YS0+X3BhZ2UtPmVkaXRvclN0YXRlKCkuaGFzQ29t
cG9zaXRpb247Ci0gICAgICAgIGlmIChyZXN1bHQpIHsKLSAgICAgICAgICAgIC8vIEEgc2F2ZWQg
Y29tbWFuZCBjYW4gY29uZmlybSBhIGNvbXBvc2l0aW9uLCBidXQgaXQgY2Fubm90IHN0YXJ0IGEg
bmV3IG9uZS4KLSAgICAgICAgICAgIFtzZWxmIF9leGVjdXRlU2F2ZWRLZXlwcmVzc0NvbW1hbmRz
XTsKLSAgICAgICAgICAgIHJlc3VsdCA9IF9kYXRhLT5fcGFnZS0+ZWRpdG9yU3RhdGUoKS5oYXND
b21wb3NpdGlvbjsKLSAgICAgICAgfQotICAgIH0gZWxzZSB7Ci0gICAgICAgIEVkaXRpbmdSYW5n
ZSBtYXJrZWRSYW5nZTsKLSAgICAgICAgX2RhdGEtPl9wYWdlLT5nZXRNYXJrZWRSYW5nZShtYXJr
ZWRSYW5nZSk7Ci0gICAgICAgIHJlc3VsdCA9IG1hcmtlZFJhbmdlLmxvY2F0aW9uICE9IG5vdEZv
dW5kOwotICAgIH0KLQotICAgIExPRyhUZXh0SW5wdXQsICJoYXNNYXJrZWRUZXh0IC0+ICV1Iiwg
cmVzdWx0KTsKLSAgICByZXR1cm4gcmVzdWx0OwotfQotCi0tICh2b2lkKXVubWFya1RleHQKLXsK
LSAgICBbc2VsZiBfZXhlY3V0ZVNhdmVkS2V5cHJlc3NDb21tYW5kc107Ci0KLSAgICBMT0coVGV4
dElucHV0LCAidW5tYXJrVGV4dCIpOwotCi0gICAgLy8gVXNlIHBvaW50ZXIgdG8gZ2V0IHBhcmFt
ZXRlcnMgcGFzc2VkIHRvIHVzIGJ5IHRoZSBjYWxsZXIgb2YgaW50ZXJwcmV0S2V5RXZlbnRzLgot
ICAgIFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMqIHBhcmFtZXRlcnMgPSBfZGF0
YS0+X2ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnM7Ci0KLSAgICBpZiAocGFyYW1ldGVycykg
ewotICAgICAgICBwYXJhbWV0ZXJzLT5ldmVudEludGVycHJldGF0aW9uSGFkU2lkZUVmZmVjdHMg
PSB0cnVlOwotICAgICAgICBwYXJhbWV0ZXJzLT5jb25zdW1lZEJ5SU0gPSBmYWxzZTsKLSAgICB9
Ci0KLSAgICBfZGF0YS0+X3BhZ2UtPmNvbmZpcm1Db21wb3NpdGlvbigpOwotfQotCi0tICh2b2lk
KXNldE1hcmtlZFRleHQ6KGlkKXN0cmluZyBzZWxlY3RlZFJhbmdlOihOU1JhbmdlKW5ld1NlbGVj
dGVkUmFuZ2UgcmVwbGFjZW1lbnRSYW5nZTooTlNSYW5nZSlyZXBsYWNlbWVudFJhbmdlCi17Ci0g
ICAgW3NlbGYgX2V4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHNdOwotCi0gICAgQk9PTCBpc0F0
dHJpYnV0ZWRTdHJpbmcgPSBbc3RyaW5nIGlzS2luZE9mQ2xhc3M6W05TQXR0cmlidXRlZFN0cmlu
ZyBjbGFzc11dOwotICAgIEFTU0VSVChpc0F0dHJpYnV0ZWRTdHJpbmcgfHwgW3N0cmluZyBpc0tp
bmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKTsKLQotICAgIExPRyhUZXh0SW5wdXQsICJzZXRN
YXJrZWRUZXh0OlwiJUBcIiBzZWxlY3RlZFJhbmdlOigldSwgJXUpIiwgaXNBdHRyaWJ1dGVkU3Ry
aW5nID8gW3N0cmluZyBzdHJpbmddIDogc3RyaW5nLCBuZXdTZWxlY3RlZFJhbmdlLmxvY2F0aW9u
LCBuZXdTZWxlY3RlZFJhbmdlLmxlbmd0aCk7Ci0KLSAgICAvLyBVc2UgcG9pbnRlciB0byBnZXQg
cGFyYW1ldGVycyBwYXNzZWQgdG8gdXMgYnkgdGhlIGNhbGxlciBvZiBpbnRlcnByZXRLZXlFdmVu
dHMuCi0gICAgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyogcGFyYW1ldGVycyA9
IF9kYXRhLT5faW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVyczsKLQotICAgIGlmIChwYXJhbWV0
ZXJzKSB7Ci0gICAgICAgIHBhcmFtZXRlcnMtPmV2ZW50SW50ZXJwcmV0YXRpb25IYWRTaWRlRWZm
ZWN0cyA9IHRydWU7Ci0gICAgICAgIHBhcmFtZXRlcnMtPmNvbnN1bWVkQnlJTSA9IGZhbHNlOwot
ICAgIH0KLSAgICAKLSAgICBWZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbmU+IHVuZGVybGluZXM7
Ci0gICAgTlNTdHJpbmcgKnRleHQ7Ci0KLSAgICBpZiAoaXNBdHRyaWJ1dGVkU3RyaW5nKSB7Ci0g
ICAgICAgIC8vIEZJWE1FOiBXZSBpZ25vcmUgbW9zdCBhdHRyaWJ1dGVzIGZyb20gdGhlIHN0cmlu
Zywgc28gYW4gaW5wdXQgbWV0aG9kIGNhbm5vdCBzcGVjaWZ5IGUuZy4gYSBmb250IG9yIGEgZ2x5
cGggdmFyaWF0aW9uLgotICAgICAgICB0ZXh0ID0gW3N0cmluZyBzdHJpbmddOwotICAgICAgICBl
eHRyYWN0VW5kZXJsaW5lcyhzdHJpbmcsIHVuZGVybGluZXMpOwotICAgIH0gZWxzZQotICAgICAg
ICB0ZXh0ID0gc3RyaW5nOwotCi0gICAgaWYgKF9kYXRhLT5fcGFnZS0+ZWRpdG9yU3RhdGUoKS5p
c0luUGFzc3dvcmRGaWVsZCkgewotICAgICAgICAvLyBJbiBwYXNzd29yZCBmaWVsZHMsIHdlIG9u
bHkgYWxsb3cgQVNDSUkgZGVhZCBrZXlzLCBhbmQgZG9uJ3QgYWxsb3cgaW5saW5lIGlucHV0LCBt
YXRjaGluZyBOU1NlY3VyZVRleHRJbnB1dEZpZWxkLgotICAgICAgICAvLyBBbGxvd2luZyBBU0NJ
SSBkZWFkIGtleXMgaXMgbmVjZXNzYXJ5IHRvIGVuYWJsZSBmdWxsIFJvbWFuIGlucHV0IHdoZW4g
dXNpbmcgYSBWaWV0bmFtZXNlIGtleWJvYXJkLgotICAgICAgICBBU1NFUlQoIV9kYXRhLT5fcGFn
ZS0+ZWRpdG9yU3RhdGUoKS5oYXNDb21wb3NpdGlvbik7Ci0gICAgICAgIF9kYXRhLT5faW1wbC0+
bm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbigpOwotICAgICAgICBp
ZiAoW3RleHQgbGVuZ3RoXSA9PSAxICYmIFtbdGV4dCBkZWNvbXBvc2VkU3RyaW5nV2l0aENhbm9u
aWNhbE1hcHBpbmddIGNoYXJhY3RlckF0SW5kZXg6MF0gPCAweDgwKSB7Ci0gICAgICAgICAgICBf
ZGF0YS0+X3BhZ2UtPmluc2VydFRleHQodGV4dCwgcmVwbGFjZW1lbnRSYW5nZSk7Ci0gICAgICAg
IH0gZWxzZQotICAgICAgICAgICAgTlNCZWVwKCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0K
LSAgICBfZGF0YS0+X3BhZ2UtPnNldENvbXBvc2l0aW9uKHRleHQsIHVuZGVybGluZXMsIG5ld1Nl
bGVjdGVkUmFuZ2UsIHJlcGxhY2VtZW50UmFuZ2UpOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwt
Pmhhc01hcmtlZFRleHQoKTsKIH0KIAogLSAoTlNSYW5nZSltYXJrZWRSYW5nZQogewotICAgIFtz
ZWxmIF9leGVjdXRlU2F2ZWRLZXlwcmVzc0NvbW1hbmRzXTsKLQotICAgIEVkaXRpbmdSYW5nZSBt
YXJrZWRSYW5nZTsKLSAgICBfZGF0YS0+X3BhZ2UtPmdldE1hcmtlZFJhbmdlKG1hcmtlZFJhbmdl
KTsKLQotICAgIE5TUmFuZ2UgcmVzdWx0ID0gbWFya2VkUmFuZ2U7Ci0gICAgaWYgKHJlc3VsdC5s
b2NhdGlvbiA9PSBOU05vdEZvdW5kKQotICAgICAgICBMT0coVGV4dElucHV0LCAibWFya2VkUmFu
Z2UgLT4gKE5TTm90Rm91bmQsICV1KSIsIHJlc3VsdC5sZW5ndGgpOwotICAgIGVsc2UKLSAgICAg
ICAgTE9HKFRleHRJbnB1dCwgIm1hcmtlZFJhbmdlIC0+ICgldSwgJXUpIiwgcmVzdWx0LmxvY2F0
aW9uLCByZXN1bHQubGVuZ3RoKTsKLQotICAgIHJldHVybiByZXN1bHQ7CisgICAgcmV0dXJuIF9k
YXRhLT5faW1wbC0+bWFya2VkUmFuZ2UoKTsKIH0KIAogLSAoTlNBdHRyaWJ1dGVkU3RyaW5nICop
YXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2U6KE5TUmFuZ2UpbnNSYW5nZSBhY3R1
YWxSYW5nZTooTlNSYW5nZVBvaW50ZXIpYWN0dWFsUmFuZ2UKIHsKLSAgICBbc2VsZiBfZXhlY3V0
ZVNhdmVkS2V5cHJlc3NDb21tYW5kc107Ci0KLSAgICBpZiAoIV9kYXRhLT5fcGFnZS0+ZWRpdG9y
U3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZSkgewotICAgICAgICBMT0coVGV4dElucHV0LCAiYXR0
cmlidXRlZFN1YnN0cmluZ0Zyb21SYW5nZTooJXUsICV1KSAtPiBuaWwiLCBuc1JhbmdlLmxvY2F0
aW9uLCBuc1JhbmdlLmxlbmd0aCk7Ci0gICAgICAgIHJldHVybiBuaWw7Ci0gICAgfQotCi0gICAg
aWYgKF9kYXRhLT5fcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0luUGFzc3dvcmRGaWVsZCkKLSAgICAg
ICAgcmV0dXJuIG5pbDsKLQotICAgIEF0dHJpYnV0ZWRTdHJpbmcgcmVzdWx0OwotICAgIF9kYXRh
LT5fcGFnZS0+Z2V0QXR0cmlidXRlZFN1YnN0cmluZ0Zyb21SYW5nZShuc1JhbmdlLCByZXN1bHQp
OwotCi0gICAgaWYgKGFjdHVhbFJhbmdlKSB7Ci0gICAgICAgICphY3R1YWxSYW5nZSA9IG5zUmFu
Z2U7Ci0gICAgICAgIGFjdHVhbFJhbmdlLT5sZW5ndGggPSBbcmVzdWx0LnN0cmluZyBsZW5ndGhd
OwotICAgIH0KLQotICAgIExPRyhUZXh0SW5wdXQsICJhdHRyaWJ1dGVkU3Vic3RyaW5nRnJvbVJh
bmdlOigldSwgJXUpIC0+IFwiJUBcIiIsIG5zUmFuZ2UubG9jYXRpb24sIG5zUmFuZ2UubGVuZ3Ro
LCBbcmVzdWx0LnN0cmluZyBzdHJpbmddKTsKLSAgICByZXR1cm4gW1tyZXN1bHQuc3RyaW5nIHJl
dGFpbl0gYXV0b3JlbGVhc2VdOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmF0dHJpYnV0ZWRT
dWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlKG5zUmFuZ2UsIGFjdHVhbFJhbmdlKTsKIH0KIAogLSAo
TlNVSW50ZWdlciljaGFyYWN0ZXJJbmRleEZvclBvaW50OihOU1BvaW50KXRoZVBvaW50CiB7Ci0g
ICAgW3NlbGYgX2V4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHNdOwotCi0gICAgTlNXaW5kb3cg
KndpbmRvdyA9IFtzZWxmIHdpbmRvd107Ci0gICAgCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNs
YXJhdGlvbnMiCi0gICAgaWYgKHdpbmRvdykKLSAgICAgICAgdGhlUG9pbnQgPSBbd2luZG93IGNv
bnZlcnRTY3JlZW5Ub0Jhc2U6dGhlUG9pbnRdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAotICAgIHRoZVBvaW50ID0gW3NlbGYgY29udmVydFBvaW50OnRoZVBvaW50IGZyb21WaWV3Om5p
bF07ICAvLyB0aGUgcG9pbnQgaXMgcmVsYXRpdmUgdG8gdGhlIG1haW4gZnJhbWUKLSAgICAKLSAg
ICB1aW50NjRfdCByZXN1bHQgPSBfZGF0YS0+X3BhZ2UtPmNoYXJhY3RlckluZGV4Rm9yUG9pbnQo
SW50UG9pbnQodGhlUG9pbnQpKTsKLSAgICBpZiAocmVzdWx0ID09IG5vdEZvdW5kKQotICAgICAg
ICByZXN1bHQgPSBOU05vdEZvdW5kOwotICAgIExPRyhUZXh0SW5wdXQsICJjaGFyYWN0ZXJJbmRl
eEZvclBvaW50OiglZiwgJWYpIC0+ICV1IiwgdGhlUG9pbnQueCwgdGhlUG9pbnQueSwgcmVzdWx0
KTsKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmNoYXJhY3Rl
ckluZGV4Rm9yUG9pbnQodGhlUG9pbnQpOwogfQogCiAtIChOU1JlY3QpZmlyc3RSZWN0Rm9yQ2hh
cmFjdGVyUmFuZ2U6KE5TUmFuZ2UpdGhlUmFuZ2UgYWN0dWFsUmFuZ2U6KE5TUmFuZ2VQb2ludGVy
KWFjdHVhbFJhbmdlCi17IAotICAgIFtzZWxmIF9leGVjdXRlU2F2ZWRLZXlwcmVzc0NvbW1hbmRz
XTsKLQotICAgIC8vIEp1c3QgdG8gbWF0Y2ggTlNUZXh0VmlldydzIGJlaGF2aW9yLiBSZWdyZXNz
aW9uIHRlc3RzIGNhbm5vdCBkZXRlY3QgdGhpczsKLSAgICAvLyB0byByZXByb2R1Y2UsIHVzZSBh
IHRlc3QgYXBwbGljYXRpb24gZnJvbSBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD00NjgyCi0gICAgLy8gKHR5cGUgc29tZXRoaW5nOyB0cnkgcmFuZ2VzICgxLCAtMSkgYW5k
ICgyLCAtMSkuCi0gICAgaWYgKCh0aGVSYW5nZS5sb2NhdGlvbiArIHRoZVJhbmdlLmxlbmd0aCA8
IHRoZVJhbmdlLmxvY2F0aW9uKSAmJiAodGhlUmFuZ2UubG9jYXRpb24gKyB0aGVSYW5nZS5sZW5n
dGggIT0gMCkpCi0gICAgICAgIHRoZVJhbmdlLmxlbmd0aCA9IDA7Ci0KLSAgICBpZiAodGhlUmFu
Z2UubG9jYXRpb24gPT0gTlNOb3RGb3VuZCkgewotICAgICAgICBpZiAoYWN0dWFsUmFuZ2UpCi0g
ICAgICAgICAgICAqYWN0dWFsUmFuZ2UgPSB0aGVSYW5nZTsKLSAgICAgICAgTE9HKFRleHRJbnB1
dCwgImZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlOihOU05vdEZvdW5kLCAldSkgLT4gTlNaZXJv
UmVjdCIsIHRoZVJhbmdlLmxlbmd0aCk7Ci0gICAgICAgIHJldHVybiBOU1plcm9SZWN0OwotICAg
IH0KLQotICAgIE5TUmVjdCByZXN1bHRSZWN0ID0gX2RhdGEtPl9wYWdlLT5maXJzdFJlY3RGb3JD
aGFyYWN0ZXJSYW5nZSh0aGVSYW5nZSk7Ci0gICAgcmVzdWx0UmVjdCA9IFtzZWxmIGNvbnZlcnRS
ZWN0OnJlc3VsdFJlY3QgdG9WaWV3Om5pbF07Ci0gICAgcmVzdWx0UmVjdCA9IFtzZWxmLndpbmRv
dyBjb252ZXJ0UmVjdFRvU2NyZWVuOnJlc3VsdFJlY3RdOworeworICAgIHJldHVybiBfZGF0YS0+
X2ltcGwtPmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKHRoZVJhbmdlLCBhY3R1YWxSYW5nZSk7
Cit9CiAKLSAgICBpZiAoYWN0dWFsUmFuZ2UpIHsKLSAgICAgICAgLy8gRklYTUU6IFVwZGF0ZSBh
Y3R1YWxSYW5nZSB0byBtYXRjaCB0aGUgcmFuZ2Ugb2YgZmlyc3QgcmVjdC4KLSAgICAgICAgKmFj
dHVhbFJhbmdlID0gdGhlUmFuZ2U7Ci0gICAgfQorI2lmIFVTRShBU1lOQ19OU1RFWFRJTlBVVENM
SUVOVCkKIAotICAgIExPRyhUZXh0SW5wdXQsICJmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZToo
JXUsICV1KSAtPiAoJWYsICVmLCAlZiwgJWYpIiwgdGhlUmFuZ2UubG9jYXRpb24sIHRoZVJhbmdl
Lmxlbmd0aCwgcmVzdWx0UmVjdC5vcmlnaW4ueCwgcmVzdWx0UmVjdC5vcmlnaW4ueSwgcmVzdWx0
UmVjdC5zaXplLndpZHRoLCByZXN1bHRSZWN0LnNpemUuaGVpZ2h0KTsKLSAgICByZXR1cm4gcmVz
dWx0UmVjdDsKKy0gKHZvaWQpc2VsZWN0ZWRSYW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCheKShOU1JhbmdlIHNlbGVjdGVkUmFuZ2UpKWNvbXBsZXRpb25IYW5kbGVyUHRyCit7CisgICAg
X2RhdGEtPl9pbXBsLT5zZWxlY3RlZFJhbmdlV2l0aENvbXBsZXRpb25IYW5kbGVyKGNvbXBsZXRp
b25IYW5kbGVyUHRyKTsKIH0KIAotLSAoQk9PTClwZXJmb3JtS2V5RXF1aXZhbGVudDooTlNFdmVu
dCAqKWV2ZW50CistICh2b2lkKW1hcmtlZFJhbmdlV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lk
KF4pKE5TUmFuZ2UgbWFya2VkUmFuZ2UpKWNvbXBsZXRpb25IYW5kbGVyUHRyCiB7Ci0gICAgaWYg
KF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCi0gICAgICAgIHJldHVybiBO
TzsKLQotICAgIC8vIFRoZXJlJ3MgYSBjaGFuY2UgdGhhdCByZXNwb25kaW5nIHRvIHRoaXMgZXZl
bnQgd2lsbCBydW4gYSBuZXN0ZWQgZXZlbnQgbG9vcCwgYW5kCi0gICAgLy8gZmV0Y2hpbmcgYSBu
ZXcgZXZlbnQgbWlnaHQgcmVsZWFzZSB0aGUgb2xkIG9uZS4gUmV0YWluaW5nIGFuZCB0aGVuIGF1
dG9yZWxlYXNpbmcKLSAgICAvLyB0aGUgY3VycmVudCBldmVudCBwcmV2ZW50cyB0aGF0IGZyb20g
Y2F1c2luZyBhIHByb2JsZW0gaW5zaWRlIFdlYktpdCBvciBBcHBLaXQgY29kZS4KLSAgICBbW2V2
ZW50IHJldGFpbl0gYXV0b3JlbGVhc2VdOwotCi0gICAgLy8gV2UgZ2V0IEVzYyBrZXkgaGVyZSBh
ZnRlciBwcm9jZXNzaW5nIGVpdGhlciBFc2Mgb3IgQ21kK3BlcmlvZC4gVGhlIGZvcm1lciBzdGFy
dHMgYXMgYSBrZXlEb3duLCBhbmQgdGhlIGxhdHRlciBzdGFydHMgYXMgYSBrZXkgZXF1aXZhbGVu
dCwKLSAgICAvLyBidXQgYm90aCBnZXQgdHJhbnNmb3JtZWQgdG8gYSBjYW5jZWxPcGVyYXRpb246
IGNvbW1hbmQsIGV4ZWN1dGluZyB3aGljaCBwYXNzZXMgYW4gRXNjIGtleSBldmVudCB0byAtcGVy
Zm9ybUtleUVxdWl2YWxlbnQ6LgotICAgIC8vIERvbid0IGludGVycHJldCB0aGlzIGV2ZW50IGFn
YWluLCBhdm9pZGluZyByZS1lbnRyYW5jeSBhbmQgaW5maW5pdGUgbG9vcHMuCi0gICAgaWYgKFtb
ZXZlbnQgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzXSBpc0VxdWFsVG9TdHJpbmc6QCJcZSJd
ICYmICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVy
RmxhZ3NNYXNrKSkKLSAgICAgICAgcmV0dXJuIFtzdXBlciBwZXJmb3JtS2V5RXF1aXZhbGVudDpl
dmVudF07Ci0KLSAgICBpZiAoX2RhdGEtPl9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCkgewotICAg
ICAgICAvLyBXZWJDb3JlIGhhcyBhbHJlYWR5IHNlZW4gdGhlIGV2ZW50LCBubyBuZWVkIGZvciBj
dXN0b20gcHJvY2Vzc2luZy4KLSAgICAgICAgLy8gTm90ZSB0aGF0IHdlIGNhbiBnZXQgbXVsdGlw
bGUgZXZlbnRzIGZvciBlYWNoIGV2ZW50IGJlaW5nIHJlLXNlbnQuIEZvciBleGFtcGxlLCBmb3Ig
Q21kKyc9JyBBcHBLaXQKLSAgICAgICAgLy8gZmlyc3QgcGVyZm9ybXMgdGhlIG9yaWdpbmFsIGtl
eSBlcXVpdmFsZW50LCBhbmQgaWYgdGhhdCBpc24ndCBoYW5kbGVkLCBpdCBkaXNwYXRjaGVzIGEg
c3ludGhldGljIENtZCsnKycuCi0gICAgICAgIHJldHVybiBbc3VwZXIgcGVyZm9ybUtleUVxdWl2
YWxlbnQ6ZXZlbnRdOwotICAgIH0KLQotICAgIEFTU0VSVChldmVudCA9PSBbTlNBcHAgY3VycmVu
dEV2ZW50XSk7Ci0KLSAgICBfZGF0YS0+X2ltcGwtPmRpc2FibGVDb21wbGV4VGV4dElucHV0SWZO
ZWNlc3NhcnkoKTsKLQotICAgIC8vIFBhc3Mga2V5IGNvbWJvcyB0aHJvdWdoIFdlYkNvcmUgaWYg
dGhlcmUgaXMgYSBrZXkgYmluZGluZyBhdmFpbGFibGUgZm9yCi0gICAgLy8gdGhpcyBldmVudC4g
VGhpcyBsZXRzIHdlYnBhZ2VzIGhhdmUgYSBjcmFjayBhdCBpbnRlcmNlcHRpbmcga2V5LW1vZGlm
aWVkIGtleXByZXNzZXMuCi0gICAgLy8gRklYTUU6IFdoeSBpcyB0aGUgZmlyc3RSZXNwb25kZXIg
Y2hlY2sgbmVlZGVkPwotICAgIGlmIChzZWxmID09IFtbc2VsZiB3aW5kb3ddIGZpcnN0UmVzcG9u
ZGVyXSkgewotICAgICAgICBWZWN0b3I8S2V5cHJlc3NDb21tYW5kPiBjb21tYW5kczsKLSAgICAg
ICAgQk9PTCBoYW5kbGVkQnlJbnB1dE1ldGhvZCA9IFtzZWxmIF9pbnRlcnByZXRLZXlFdmVudDpl
dmVudCBzYXZpbmdDb21tYW5kc1RvOmNvbW1hbmRzXTsKLSAgICAgICAgX2RhdGEtPl9wYWdlLT5o
YW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRC
eUlucHV0TWV0aG9kLCBjb21tYW5kcykpOwotICAgICAgICByZXR1cm4gWUVTOwotICAgIH0KLSAg
ICAKLSAgICByZXR1cm4gW3N1cGVyIHBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKKyAgICBf
ZGF0YS0+X2ltcGwtPm1hcmtlZFJhbmdlV2l0aENvbXBsZXRpb25IYW5kbGVyKGNvbXBsZXRpb25I
YW5kbGVyUHRyKTsKIH0KIAotLSAodm9pZClrZXlVcDooTlNFdmVudCAqKXRoZUV2ZW50CistICh2
b2lkKWhhc01hcmtlZFRleHRXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQk9PTCBoYXNN
YXJrZWRUZXh0KSljb21wbGV0aW9uSGFuZGxlclB0cgogewotICAgIGlmIChfZGF0YS0+X2ltcGwt
Pmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBMT0coVGV4
dElucHV0LCAia2V5VXA6JXAgJUAiLCB0aGVFdmVudCwgdGhlRXZlbnQpOwotICAgIC8vIFdlIGRv
bid0IGludGVycHJldCB0aGUga2V5VXAgZXZlbnQsIGFzIHRoaXMgYnJlYWtzIGtleSBiaW5kaW5n
cyAoc2VlIDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMTAwPiku
Ci0gICAgX2RhdGEtPl9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJk
RXZlbnQodGhlRXZlbnQsIGZhbHNlLCBWZWN0b3I8S2V5cHJlc3NDb21tYW5kPigpKSk7CisgICAg
X2RhdGEtPl9pbXBsLT5oYXNNYXJrZWRUZXh0V2l0aENvbXBsZXRpb25IYW5kbGVyKGNvbXBsZXRp
b25IYW5kbGVyUHRyKTsKIH0KIAotLSAodm9pZClrZXlEb3duOihOU0V2ZW50ICopdGhlRXZlbnQK
Ky0gKHZvaWQpYXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2U6KE5TUmFuZ2UpbnNS
YW5nZSBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShOU0F0dHJpYnV0ZWRTdHJpbmcgKmF0dHJT
dHJpbmcsIE5TUmFuZ2UgYWN0dWFsUmFuZ2UpKWNvbXBsZXRpb25IYW5kbGVyUHRyCiB7Ci0gICAg
aWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIExPRyhUZXh0SW5wdXQsICJrZXlEb3duOiVwICVAJXMiLCB0aGVFdmVudCwgdGhl
RXZlbnQsICh0aGVFdmVudCA9PSBfZGF0YS0+X2tleURvd25FdmVudEJlaW5nUmVzZW50KSA/ICIg
KHJlLXNlbnQpIiA6ICIiKTsKLQotICAgIC8vIFRoZXJlJ3MgYSBjaGFuY2UgdGhhdCByZXNwb25k
aW5nIHRvIHRoaXMgZXZlbnQgd2lsbCBydW4gYSBuZXN0ZWQgZXZlbnQgbG9vcCwgYW5kCi0gICAg
Ly8gZmV0Y2hpbmcgYSBuZXcgZXZlbnQgbWlnaHQgcmVsZWFzZSB0aGUgb2xkIG9uZS4gUmV0YWlu
aW5nIGFuZCB0aGVuIGF1dG9yZWxlYXNpbmcKLSAgICAvLyB0aGUgY3VycmVudCBldmVudCBwcmV2
ZW50cyB0aGF0IGZyb20gY2F1c2luZyBhIHByb2JsZW0gaW5zaWRlIFdlYktpdCBvciBBcHBLaXQg
Y29kZS4KLSAgICBbW3RoZUV2ZW50IHJldGFpbl0gYXV0b3JlbGVhc2VdOwotCi0gICAgaWYgKF9k
YXRhLT5faW1wbC0+dHJ5SGFuZGxlUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURvd24odGhlRXZl
bnQpKSB7Ci0gICAgICAgIExPRyhUZXh0SW5wdXQsICIuLi5oYW5kbGVkIGJ5IHBsdWctaW4iKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8vIFdlIGNvdWxkIGJlIHJlY2VpdmluZyBh
IGtleSBkb3duIGZyb20gQXBwS2l0IGlmIHdlIGhhdmUgcmUtc2VudCBhbiBldmVudAotICAgIC8v
IHRoYXQgbWFwcyB0byBhbiBhY3Rpb24gdGhhdCBpcyBjdXJyZW50bHkgdW5hdmFpbGFibGUgKGZv
ciBleGFtcGxlIGEgY29weSB3aGVuCi0gICAgLy8gdGhlcmUgaXMgbm8gcmFuZ2Ugc2VsZWN0aW9u
KS4KLSAgICAvLyBJZiB0aGlzIGlzIHRoZSBjYXNlIHdlIHNob3VsZCBpZ25vcmUgdGhlIGtleSBk
b3duLgotICAgIGlmIChfZGF0YS0+X2tleURvd25FdmVudEJlaW5nUmVzZW50ID09IHRoZUV2ZW50
KSB7Ci0gICAgICAgIFtzdXBlciBrZXlEb3duOnRoZUV2ZW50XTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIFZlY3RvcjxLZXlwcmVzc0NvbW1hbmQ+IGNvbW1hbmRzOwotICAgIEJPT0wg
aGFuZGxlZEJ5SW5wdXRNZXRob2QgPSBbc2VsZiBfaW50ZXJwcmV0S2V5RXZlbnQ6dGhlRXZlbnQg
c2F2aW5nQ29tbWFuZHNUbzpjb21tYW5kc107Ci0gICAgaWYgKCFjb21tYW5kcy5pc0VtcHR5KCkp
IHsKLSAgICAgICAgLy8gQW4gaW5wdXQgbWV0aG9kIG1heSBtYWtlIHNldmVyYWwgYWN0aW9ucyBw
ZXIga2V5cHJlc3MuIEZvciBleGFtcGxlLCBwcmVzc2luZyBSZXR1cm4gd2l0aCBLb3JlYW4gSU0g
Ym90aCBjb25maXJtcyBpdCBhbmQgc2VuZHMgYSBuZXdsaW5lLgotICAgICAgICAvLyBJTS1saWtl
IGFjdGlvbnMgYXJlIGhhbmRsZWQgaW1tZWRpYXRlbHkgKHNvIHRoZSByZXR1cm4gdmFsdWUgZnJv
bSBVSSBwcm9jZXNzIGlzIHRydWUpLCBidXQgdGhlcmUgYXJlIHNhdmVkIGNvbW1hbmRzIHRoYXQK
LSAgICAgICAgLy8gc2hvdWxkIGJlIGhhbmRsZWQgbGlrZSBub3JtYWwgdGV4dCBpbnB1dCBhZnRl
ciBET00gZXZlbnQgZGlzcGF0Y2guCi0gICAgICAgIGhhbmRsZWRCeUlucHV0TWV0aG9kID0gTk87
Ci0gICAgfQotCi0gICAgX2RhdGEtPl9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdl
YktleWJvYXJkRXZlbnQodGhlRXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykp
OworICAgIF9kYXRhLT5faW1wbC0+YXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2Uo
bnNSYW5nZSwgY29tcGxldGlvbkhhbmRsZXJQdHIpOwogfQogCi0tICh2b2lkKWZsYWdzQ2hhbmdl
ZDooTlNFdmVudCAqKXRoZUV2ZW50CistICh2b2lkKWZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdl
OihOU1JhbmdlKXRoZVJhbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKE5TUmVjdCBmaXJz
dFJlY3QsIE5TUmFuZ2UgYWN0dWFsUmFuZ2UpKWNvbXBsZXRpb25IYW5kbGVyUHRyCiB7Ci0gICAg
aWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCi0gICAgICAgIHJldHVy
bjsKLQotICAgIExPRyhUZXh0SW5wdXQsICJmbGFnc0NoYW5nZWQ6JXAgJUAiLCB0aGVFdmVudCwg
dGhlRXZlbnQpOwotCi0gICAgLy8gVGhlcmUncyBhIGNoYW5jZSB0aGF0IHJlc3BvbmRpbmcgdG8g
dGhpcyBldmVudCB3aWxsIHJ1biBhIG5lc3RlZCBldmVudCBsb29wLCBhbmQKLSAgICAvLyBmZXRj
aGluZyBhIG5ldyBldmVudCBtaWdodCByZWxlYXNlIHRoZSBvbGQgb25lLiBSZXRhaW5pbmcgYW5k
IHRoZW4gYXV0b3JlbGVhc2luZwotICAgIC8vIHRoZSBjdXJyZW50IGV2ZW50IHByZXZlbnRzIHRo
YXQgZnJvbSBjYXVzaW5nIGEgcHJvYmxlbSBpbnNpZGUgV2ViS2l0IG9yIEFwcEtpdCBjb2RlLgot
ICAgIFtbdGhlRXZlbnQgcmV0YWluXSBhdXRvcmVsZWFzZV07Ci0KLSAgICB1bnNpZ25lZCBzaG9y
dCBrZXlDb2RlID0gW3RoZUV2ZW50IGtleUNvZGVdOwotCi0gICAgLy8gRG9uJ3QgbWFrZSBhbiBl
dmVudCBmcm9tIHRoZSBudW0gbG9jayBhbmQgZnVuY3Rpb24ga2V5cwotICAgIGlmICgha2V5Q29k
ZSB8fCBrZXlDb2RlID09IDEwIHx8IGtleUNvZGUgPT0gNjMpCi0gICAgICAgIHJldHVybjsKKyAg
ICBfZGF0YS0+X2ltcGwtPmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKHRoZVJhbmdlLCBjb21w
bGV0aW9uSGFuZGxlclB0cik7Cit9CiAKLSAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZUtleWJvYXJk
RXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCh0aGVFdmVudCwgZmFsc2UsIFZlY3RvcjxLZXlw
cmVzc0NvbW1hbmQ+KCkpKTsKKy0gKHZvaWQpY2hhcmFjdGVySW5kZXhGb3JQb2ludDooTlNQb2lu
dCl0aGVQb2ludCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShOU1VJbnRlZ2VyKSljb21wbGV0
aW9uSGFuZGxlclB0cgoreworICAgIF9kYXRhLT5faW1wbC0+Y2hhcmFjdGVySW5kZXhGb3JQb2lu
dCh0aGVQb2ludCwgY29tcGxldGlvbkhhbmRsZXJQdHIpOwogfQogCiAjZW5kaWYgLy8gVVNFKEFT
WU5DX05TVEVYVElOUFVUQ0xJRU5UKQpAQCAtMTczMSw2ICs4OTYsMTYgQEAgc3RhdGljIHZvaWQg
ZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcsIFZlY3RvcjxDb21w
b3NpdGlvblVuZGUKICAgICBbc3VwZXIgZG9Db21tYW5kQnlTZWxlY3RvcjpzZWxlY3Rvcl07CiB9
CiAKKy0gKEJPT0wpX3N1cGVyUGVyZm9ybUtleUVxdWl2YWxlbnQ6KE5TRXZlbnQgKilldmVudAor
eworICAgIHJldHVybiBbc3VwZXIgcGVyZm9ybUtleUVxdWl2YWxlbnQ6ZXZlbnRdOworfQorCist
ICh2b2lkKV9zdXBlcktleURvd246KE5TRXZlbnQgKilldmVudAoreworICAgIFtzdXBlciBrZXlE
b3duOmV2ZW50XTsKK30KKwogLSAoTlNBcnJheSAqKXZhbGlkQXR0cmlidXRlc0Zvck1hcmtlZFRl
eHQKIHsKICAgICBzdGF0aWMgTlNBcnJheSAqdmFsaWRBdHRyaWJ1dGVzOwpAQCAtMTg5MiwzMCAr
MTA2Nyw2IEBAIHN0YXRpYyB2b2lkIGV4dHJhY3RVbmRlcmxpbmVzKE5TQXR0cmlidXRlZFN0cmlu
ZyAqc3RyaW5nLCBWZWN0b3I8Q29tcG9zaXRpb25VbmRlCiAgICAgX2RhdGEtPl9pbXBsLT5xdWlj
a0xvb2tXaXRoRXZlbnQoZXZlbnQpOwogfQogCi0tICh2b2lkKV9kb25lV2l0aEtleUV2ZW50OihO
U0V2ZW50ICopZXZlbnQgZXZlbnRXYXNIYW5kbGVkOihCT09MKWV2ZW50V2FzSGFuZGxlZAotewot
ICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNLZXlEb3duKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBpZiAoX2RhdGEtPl9pbXBsLT50cnlQb3N0UHJvY2Vzc1BsdWdpbkNvbXBsZXhUZXh0SW5wdXRL
ZXlEb3duKGV2ZW50KSkKLSAgICAgICAgcmV0dXJuOwotICAgIAotICAgIGlmIChldmVudFdhc0hh
bmRsZWQpIHsKLSAgICAgICAgW05TQ3Vyc29yIHNldEhpZGRlblVudGlsTW91c2VNb3ZlczpZRVNd
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAgLy8gcmVzZW5kaW5nIHRoZSBldmVudCBt
YXkgZGVzdHJveSB0aGlzIFdLVmlldwotICAgIFJldGFpblB0cjxXS1ZpZXc+IHByb3RlY3Rvcihz
ZWxmKTsKLQotICAgIEFTU0VSVCghX2RhdGEtPl9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCk7Ci0g
ICAgX2RhdGEtPl9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCA9IGV2ZW50OwotICAgIFtOU0FwcCBf
c2V0Q3VycmVudEV2ZW50OmV2ZW50XTsKLSAgICBbTlNBcHAgc2VuZEV2ZW50OmV2ZW50XTsKLQot
ICAgIF9kYXRhLT5fa2V5RG93bkV2ZW50QmVpbmdSZXNlbnQgPSBudWxscHRyOwotfQotCiAtIChO
U1RyYWNraW5nUmVjdFRhZylhZGRUcmFja2luZ1JlY3Q6KE5TUmVjdClyZWN0IG93bmVyOihpZClv
d25lciB1c2VyRGF0YToodm9pZCAqKWRhdGEgYXNzdW1lSW5zaWRlOihCT09MKWFzc3VtZUluc2lk
ZQogewogICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmFkZFRyYWNraW5nUmVjdChOU1JlY3RUb0NH
UmVjdChyZWN0KSwgb3duZXIsIGRhdGEsIGFzc3VtZUluc2lkZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAppbmRleCAzZGE4MjViLi5k
NGExNWRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1Zp
ZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
d0ludGVybmFsLmgKQEAgLTUwLDcgKzUwLDYgQEAgY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRUaHVtYm5haWxWaWV3OikgX1dLVGh1bWJuYWls
VmlldyAqX3RodW1ibmFpbFZpZXc7CiAjZW5kaWYKIAotLSAodm9pZClfZG9uZVdpdGhLZXlFdmVu
dDooTlNFdmVudCAqKWV2ZW50IGV2ZW50V2FzSGFuZGxlZDooQk9PTClldmVudFdhc0hhbmRsZWQ7
CiAtICh2b2lkKV9hZGRGb250UGFuZWxPYnNlcnZlcjsKIAogQGVuZApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCA0MTA0MjI2Li5jYjQ0YzBhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtNTks
NiArNTksOCBAQCBPQkpDX0NMQVNTIF9XS1RodW1ibmFpbFZpZXc7CiAtICh2b2lkKV9zdXBlclNt
YXJ0TWFnbmlmeVdpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50OwogLSAoaWQpX3N1cGVyQWNjZXNz
aWJpbGl0eUF0dHJpYnV0ZVZhbHVlOihOU1N0cmluZyAqKWF0dHJpYnV0ZTsKIC0gKHZvaWQpX3N1
cGVyRG9Db21tYW5kQnlTZWxlY3RvcjooU0VMKXNlbGVjdG9yOworLSAoQk9PTClfc3VwZXJQZXJm
b3JtS2V5RXF1aXZhbGVudDooTlNFdmVudCAqKWV2ZW50OworLSAodm9pZClfc3VwZXJLZXlEb3du
OihOU0V2ZW50ICopZXZlbnQ7CiAKIC8vIFRoaXMgaXMgYSBoYWNrOyB0aGVzZSB0aGluZ3MgbGl2
ZSBjYW4gbGl2ZSBvbiBhIGNhdGVnb3J5IChlLmcuIFdLVmlldyAoUHJpdmF0ZSkpIGJ1dCBXS1Zp
ZXcgaXRzZWxmIGNvbmZvcm1zIHRvIHRoaXMgcHJvdG9jb2wuCiAvLyBUaGV5J3JlIG5vdCBhY3R1
YWxseSBvcHRpb25hbC4KQEAgLTc0LDYgKzc2LDEwIEBAIE9CSkNfQ0xBU1MgX1dLVGh1bWJuYWls
VmlldzsKIAogQGVuZAogCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgS2V5UHJlc3NDb21t
YW5kOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgRHJhd2luZ0FyZWFQcm94eTsK
QEAgLTg2LDYgKzkyLDE1IEBAIHR5cGVkZWYgaWQgPE5TVmFsaWRhdGVkVXNlckludGVyZmFjZUl0
ZW0+IFZhbGlkYXRpb25JdGVtOwogdHlwZWRlZiBWZWN0b3I8UmV0YWluUHRyPFZhbGlkYXRpb25J
dGVtPj4gVmFsaWRhdGlvblZlY3RvcjsKIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFZhbGlkYXRp
b25WZWN0b3I+IFZhbGlkYXRpb25NYXA7CiAKKyNpZiAhVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJ
RU5UKQorc3RydWN0IFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgeworICAgIGJv
b2wgZXZlbnRJbnRlcnByZXRhdGlvbkhhZFNpZGVFZmZlY3RzOworICAgIGJvb2wgY29uc3VtZWRC
eUlNOworICAgIGJvb2wgZXhlY3V0aW5nU2F2ZWRLZXlwcmVzc0NvbW1hbmRzOworICAgIFZlY3Rv
cjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+KiBjb21tYW5kczsKK307CisjZW5kaWYKKwogY2xh
c3MgV2ViVmlld0ltcGwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9N
QUtFX05PTkNPUFlBQkxFKFdlYlZpZXdJbXBsKTsKQEAgLTM5Miw2ICs0MDcsMzMgQEAgcHVibGlj
OgogICAgIHZvaWQgc2V0VG90YWxIZWlnaHRPZkJhbm5lcnMoQ0dGbG9hdCB0b3RhbEhlaWdodE9m
QmFubmVycykgeyBtX3RvdGFsSGVpZ2h0T2ZCYW5uZXJzID0gdG90YWxIZWlnaHRPZkJhbm5lcnM7
IH0KICAgICBDR0Zsb2F0IHRvdGFsSGVpZ2h0T2ZCYW5uZXJzKCkgY29uc3QgeyByZXR1cm4gbV90
b3RhbEhlaWdodE9mQmFubmVyczsgfQogCisgICAgdm9pZCBkb25lV2l0aEtleUV2ZW50KE5TRXZl
bnQgKiwgYm9vbCBldmVudFdhc0hhbmRsZWQpOworICAgIHZvaWQgZG9Db21tYW5kQnlTZWxlY3Rv
cihTRUwpOworICAgIHZvaWQgaW5zZXJ0VGV4dChpZCBzdHJpbmcpOworICAgIHZvaWQgaW5zZXJ0
VGV4dChpZCBzdHJpbmcsIE5TUmFuZ2UgcmVwbGFjZW1lbnRSYW5nZSk7CisgICAgTlNUZXh0SW5w
dXRDb250ZXh0ICppbnB1dENvbnRleHQoKTsKKyAgICB2b2lkIHVubWFya1RleHQoKTsKKyAgICB2
b2lkIHNldE1hcmtlZFRleHQoaWQgc3RyaW5nLCBOU1JhbmdlIHNlbGVjdGVkUmFuZ2UsIE5TUmFu
Z2UgcmVwbGFjZW1lbnRSYW5nZSk7CisgICAgTlNSYW5nZSBzZWxlY3RlZFJhbmdlKCk7CisgICAg
Ym9vbCBoYXNNYXJrZWRUZXh0KCk7CisgICAgTlNSYW5nZSBtYXJrZWRSYW5nZSgpOworICAgIE5T
QXR0cmlidXRlZFN0cmluZyAqYXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2UoTlNS
YW5nZSwgTlNSYW5nZVBvaW50ZXIgYWN0dWFsUmFuZ2UpOworICAgIE5TVUludGVnZXIgY2hhcmFj
dGVySW5kZXhGb3JQb2ludChOU1BvaW50KTsKKyAgICBOU1JlY3QgZmlyc3RSZWN0Rm9yQ2hhcmFj
dGVyUmFuZ2UoTlNSYW5nZSwgTlNSYW5nZVBvaW50ZXIgYWN0dWFsUmFuZ2UpOworICAgIGJvb2wg
cGVyZm9ybUtleUVxdWl2YWxlbnQoTlNFdmVudCAqKTsKKyAgICB2b2lkIGtleVVwKE5TRXZlbnQg
Kik7CisgICAgdm9pZCBrZXlEb3duKE5TRXZlbnQgKik7CisgICAgdm9pZCBmbGFnc0NoYW5nZWQo
TlNFdmVudCAqKTsKKworI2lmIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKKyAgICB2b2lk
IHNlbGVjdGVkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXIodm9pZCheKShOU1JhbmdlKSk7Cisg
ICAgdm9pZCBoYXNNYXJrZWRUZXh0V2l0aENvbXBsZXRpb25IYW5kbGVyKHZvaWQoXikoQk9PTCBo
YXNNYXJrZWRUZXh0KSk7CisgICAgdm9pZCBtYXJrZWRSYW5nZVdpdGhDb21wbGV0aW9uSGFuZGxl
cih2b2lkKF4pKE5TUmFuZ2UpKTsKKyAgICB2b2lkIGF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9w
b3NlZFJhbmdlKE5TUmFuZ2UsIHZvaWQoXikoTlNBdHRyaWJ1dGVkU3RyaW5nICphdHRyU3RyaW5n
LCBOU1JhbmdlIGFjdHVhbFJhbmdlKSk7CisgICAgdm9pZCBmaXJzdFJlY3RGb3JDaGFyYWN0ZXJS
YW5nZShOU1JhbmdlLCB2b2lkKF4pKE5TUmVjdCBmaXJzdFJlY3QsIE5TUmFuZ2UgYWN0dWFsUmFu
Z2UpKTsKKyAgICB2b2lkIGNoYXJhY3RlckluZGV4Rm9yUG9pbnQoTlNQb2ludCwgdm9pZCheKShO
U1VJbnRlZ2VyKSk7CisjZW5kaWYgLy8gVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQorCiBw
cml2YXRlOgogICAgIFdlYWtQdHI8V2ViVmlld0ltcGw+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVy
biBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQogCkBAIC00MTEsNiArNDUzLDE0
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHNldFVzZXJJbnRlcmZhY2VJdGVtU3RhdGUoTlNTdHJp
bmcgKmNvbW1hbmROYW1lLCBib29sIGVuYWJsZWQsIGludCBzdGF0ZSk7CiAKKyNpZiBVU0UoQVNZ
TkNfTlNURVhUSU5QVVRDTElFTlQpCisgICAgdm9pZCBjb2xsZWN0S2V5Ym9hcmRMYXlvdXRDb21t
YW5kc0ZvckV2ZW50KE5TRXZlbnQgKiwgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4m
KTsKKyAgICB2b2lkIGludGVycHJldEtleUV2ZW50KE5TRXZlbnQgKiwgdm9pZCheY29tcGxldGlv
bkhhbmRsZXIpKEJPT0wgaGFuZGxlZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29t
bWFuZD4mKSk7CisjZWxzZQorICAgIHZvaWQgZXhlY3V0ZVNhdmVkS2V5cHJlc3NDb21tYW5kcygp
OworICAgIGJvb2wgaW50ZXJwcmV0S2V5RXZlbnQoTlNFdmVudCAqLCBWZWN0b3I8V2ViQ29yZTo6
S2V5cHJlc3NDb21tYW5kPiYpOworI2VuZGlmCisKICAgICBOU1ZpZXcgPFdlYlZpZXdJbXBsRGVs
ZWdhdGU+ICptX3ZpZXc7CiAgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7CiAgICAgUGFnZUNsaWVu
dCYgbV9wYWdlQ2xpZW50OwpAQCAtNTE2LDYgKzU2NiwxNiBAQCBwcml2YXRlOgogICAgIENHRmxv
YXQgbV90b3RhbEhlaWdodE9mQmFubmVycyB7IDAgfTsKIAogICAgIFJldGFpblB0cjxOU1ZpZXc+
IG1faW5zcGVjdG9yQXR0YWNobWVudFZpZXc7CisKKyAgICAvLyBXZSBrZWVwIGhlcmUgdGhlIGV2
ZW50IHdoZW4gcmVzZW5kaW5nIGl0IHRvCisgICAgLy8gdGhlIGFwcGxpY2F0aW9uIHRvIGRpc3Rp
bmd1aXNoIHRoZSBjYXNlIG9mIGEgbmV3IGV2ZW50IGZyb20gb25lCisgICAgLy8gdGhhdCBoYXMg
YmVlbiBhbHJlYWR5IHNlbnQgdG8gV2ViQ29yZS4KKyAgICBSZXRhaW5QdHI8TlNFdmVudD4gbV9r
ZXlEb3duRXZlbnRCZWluZ1Jlc2VudDsKKyNpZiBVU0UoQVNZTkNfTlNURVhUSU5QVVRDTElFTlQp
CisgICAgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4qIG1fY29sbGVjdGVkS2V5cHJl
c3NDb21tYW5kczsKKyNlbHNlCisgICAgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVy
cyogbV9pbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzOworI2VuZGlmCiB9OwogICAgIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW0KaW5kZXggOWZmYmIzNC4uZTYwZDQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtNzQsNiArNzQsOCBAQAogI2ltcG9y
dCA8V2ViQ29yZS9OU1dpbmRvd1NQSS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50
RmFjdG9yeU1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Tb2Z0TGlua2luZy5oPgorI2ltcG9ydCA8
V2ViQ29yZS9UZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvVGV4
dFVuZG9JbnNlcnRpb25NYXJrdXBNYWMuaD4KICNpbXBvcnQgPFdlYkNvcmUvVmlld1N0YXRlLmg+
CiAjaW1wb3J0IDxXZWJDb3JlL1dlYkFjdGlvbkRpc2FibGluZ0NBTGF5ZXJEZWxlZ2F0ZS5oPgog
I2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlQ0FMYXllckV4dHJhcy5oPgpAQCAtODUsNiArODcsMTUg
QEAKIAogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMKExvb2t1cCwgTFVOb3RpZmljYXRpb25Q
b3BvdmVyV2lsbENsb3NlLCBOU1N0cmluZyAqKQogCisvLyBGSVhNRTogTW92ZSB0byBhbiBTUEkg
aGVhZGVyLgorI2lmIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKK0BpbnRlcmZhY2UgTlNU
ZXh0SW5wdXRDb250ZXh0IChXS05TVGV4dElucHV0Q29udGV4dERldGFpbHMpCistICh2b2lkKWhh
bmRsZUV2ZW50OihOU0V2ZW50ICopdGhlRXZlbnQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXiko
Qk9PTCBoYW5kbGVkKSljb21wbGV0aW9uSGFuZGxlcjsKKy0gKHZvaWQpaGFuZGxlRXZlbnRCeUlu
cHV0TWV0aG9kOihOU0V2ZW50ICopdGhlRXZlbnQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXiko
Qk9PTCBoYW5kbGVkKSljb21wbGV0aW9uSGFuZGxlcjsKKy0gKEJPT0wpaGFuZGxlRXZlbnRCeUtl
eWJvYXJkTGF5b3V0OihOU0V2ZW50ICopdGhlRXZlbnQ7CitAZW5kCisjZW5kaWYKKwogQGludGVy
ZmFjZSBXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlciA6IE5TT2JqZWN0IHsKICAgICBOU1ZpZXcg
Kl92aWV3OwogICAgIFdlYktpdDo6V2ViVmlld0ltcGwgKl9pbXBsOwpAQCAtMzA2OCw2ICszMDc5
LDk2NCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJD
b3JlRnJvbVZpZXdPbmx5KE5TRXZlbnQgKmV2ZW50KQogI2VuZGlmCiB9CiAKK3ZvaWQgV2ViVmll
d0ltcGw6OmRvbmVXaXRoS2V5RXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgZXZlbnRXYXNIYW5k
bGVkKQoreworICAgIGlmIChbZXZlbnQgdHlwZV0gIT0gTlNLZXlEb3duKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAodHJ5UG9zdFByb2Nlc3NQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93
bihldmVudCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmIChldmVudFdhc0hhbmRsZWQpIHsK
KyAgICAgICAgW05TQ3Vyc29yIHNldEhpZGRlblVudGlsTW91c2VNb3ZlczpZRVNdOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgLy8gcmVzZW5kaW5nIHRoZSBldmVudCBtYXkgZGVzdHJv
eSB0aGlzIFdLVmlldworICAgIFJldGFpblB0cjxOU1ZpZXc+IHByb3RlY3RvcihtX3ZpZXcpOwor
CisgICAgQVNTRVJUKCFtX2tleURvd25FdmVudEJlaW5nUmVzZW50KTsKKyAgICBtX2tleURvd25F
dmVudEJlaW5nUmVzZW50ID0gZXZlbnQ7CisgICAgW05TQXBwIF9zZXRDdXJyZW50RXZlbnQ6ZXZl
bnRdOworICAgIFtOU0FwcCBzZW5kRXZlbnQ6ZXZlbnRdOworICAgIAorICAgIG1fa2V5RG93bkV2
ZW50QmVpbmdSZXNlbnQgPSBudWxscHRyOworfQorCitzdGF0aWMgdm9pZCBleHRyYWN0VW5kZXJs
aW5lcyhOU0F0dHJpYnV0ZWRTdHJpbmcgKnN0cmluZywgVmVjdG9yPFdlYkNvcmU6OkNvbXBvc2l0
aW9uVW5kZXJsaW5lPiYgcmVzdWx0KQoreworICAgIGludCBsZW5ndGggPSBzdHJpbmcuc3RyaW5n
Lmxlbmd0aDsKKworICAgIGludCBpID0gMDsKKyAgICB3aGlsZSAoaSA8IGxlbmd0aCkgeworICAg
ICAgICBOU1JhbmdlIHJhbmdlOworICAgICAgICBOU0RpY3Rpb25hcnkgKmF0dHJzID0gW3N0cmlu
ZyBhdHRyaWJ1dGVzQXRJbmRleDppIGxvbmdlc3RFZmZlY3RpdmVSYW5nZTomcmFuZ2UgaW5SYW5n
ZTpOU01ha2VSYW5nZShpLCBsZW5ndGggLSBpKV07CisKKyAgICAgICAgaWYgKE5TTnVtYmVyICpz
dHlsZSA9IFthdHRycyBvYmplY3RGb3JLZXk6TlNVbmRlcmxpbmVTdHlsZUF0dHJpYnV0ZU5hbWVd
KSB7CisgICAgICAgICAgICBXZWJDb3JlOjpDb2xvciBjb2xvciA9IFdlYkNvcmU6OkNvbG9yOjpi
bGFjazsKKyAgICAgICAgICAgIGlmIChOU0NvbG9yICpjb2xvckF0dHIgPSBbYXR0cnMgb2JqZWN0
Rm9yS2V5Ok5TVW5kZXJsaW5lQ29sb3JBdHRyaWJ1dGVOYW1lXSkKKyAgICAgICAgICAgICAgICBj
b2xvciA9IFdlYkNvcmU6OmNvbG9yRnJvbU5TQ29sb3IoW2NvbG9yQXR0ciBjb2xvclVzaW5nQ29s
b3JTcGFjZU5hbWU6TlNEZXZpY2VSR0JDb2xvclNwYWNlXSk7CisgICAgICAgICAgICByZXN1bHQu
YXBwZW5kKFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lKHJhbmdlLmxvY2F0aW9uLCBOU01h
eFJhbmdlKHJhbmdlKSwgY29sb3IsIHN0eWxlLmludFZhbHVlID4gMSkpOworICAgICAgICB9Cisg
ICAgICAgIAorICAgICAgICBpID0gcmFuZ2UubG9jYXRpb24gKyByYW5nZS5sZW5ndGg7CisgICAg
fQorfQorCisjaWYgVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQorCit2b2lkIFdlYlZpZXdJ
bXBsOjpjb2xsZWN0S2V5Ym9hcmRMYXlvdXRDb21tYW5kc0ZvckV2ZW50KE5TRXZlbnQgKmV2ZW50
LCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpCit7CisgICAgaWYg
KFtldmVudCB0eXBlXSAhPSBOU0tleURvd24pCisgICAgICAgIHJldHVybjsKKworICAgIEFTU0VS
VCghbV9jb2xsZWN0ZWRLZXlwcmVzc0NvbW1hbmRzKTsKKyAgICBtX2NvbGxlY3RlZEtleXByZXNz
Q29tbWFuZHMgPSAmY29tbWFuZHM7CisKKyAgICBpZiAoTlNUZXh0SW5wdXRDb250ZXh0ICpjb250
ZXh0ID0gaW5wdXRDb250ZXh0KCkpCisgICAgICAgIFtjb250ZXh0IGhhbmRsZUV2ZW50QnlLZXli
b2FyZExheW91dDpldmVudF07CisgICAgZWxzZQorICAgICAgICBbbV92aWV3IGludGVycHJldEtl
eUV2ZW50czpbTlNBcnJheSBhcnJheVdpdGhPYmplY3Q6ZXZlbnRdXTsKKworICAgIG1fY29sbGVj
dGVkS2V5cHJlc3NDb21tYW5kcyA9IG51bGxwdHI7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6Omlu
dGVycHJldEtleUV2ZW50KE5TRXZlbnQgKmV2ZW50LCB2b2lkKF5jb21wbGV0aW9uSGFuZGxlciko
Qk9PTCBoYW5kbGVkLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29t
bWFuZHMpKQoreworICAgIC8vIEZvciByZWd1bGFyIFdlYiBjb250ZW50LCBpbnB1dCBtZXRob2Rz
IHJ1biBiZWZvcmUgcGFzc2luZyBhIGtleWRvd24gdG8gRE9NLCBidXQgcGx1Zy1pbnMgZ2V0IGFu
IG9wcG9ydHVuaXR5IHRvIGhhbmRsZSB0aGUgZXZlbnQgZmlyc3QuCisgICAgLy8gVGhlcmUgaXMg
bm8gbmVlZCB0byBjb2xsZWN0IGNvbW1hbmRzLCBhcyB0aGUgcGx1Zy1pbiBjYW5ub3QgZXhlY3V0
ZSB0aGVtLgorICAgIGlmIChwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcigpKSB7Cisg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKE5PLCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21t
YW5kPigpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmICghaW5wdXRDb250ZXh0
KCkpIHsKKyAgICAgICAgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gY29tbWFuZHM7
CisgICAgICAgIGNvbGxlY3RLZXlib2FyZExheW91dENvbW1hbmRzRm9yRXZlbnQoZXZlbnQsIGNv
bW1hbmRzKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoTk8sIGNvbW1hbmRzKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIExPRyhUZXh0SW5wdXQsICItPiBoYW5kbGVFdmVudEJ5
SW5wdXRNZXRob2Q6JXAgJUAiLCBldmVudCwgZXZlbnQpOworICAgIFtpbnB1dENvbnRleHQoKSBo
YW5kbGVFdmVudEJ5SW5wdXRNZXRob2Q6ZXZlbnQgY29tcGxldGlvbkhhbmRsZXI6XihCT09MIGhh
bmRsZWQpIHsKKyAgICAgICAgCisgICAgICAgIExPRyhUZXh0SW5wdXQsICIuLi4gaGFuZGxlRXZl
bnRCeUlucHV0TWV0aG9kJXMgaGFuZGxlZCIsIGhhbmRsZWQgPyAiIiA6ICIgbm90Iik7CisgICAg
ICAgIGlmIChoYW5kbGVkKSB7CisgICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihZRVMsIFZl
Y3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+KCkpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gY29t
bWFuZHM7CisgICAgICAgIGNvbGxlY3RLZXlib2FyZExheW91dENvbW1hbmRzRm9yRXZlbnQoZXZl
bnQsIGNvbW1hbmRzKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoTk8sIGNvbW1hbmRzKTsK
KyAgICB9XTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6ZG9Db21tYW5kQnlTZWxlY3RvcihTRUwg
c2VsZWN0b3IpCit7CisgICAgTE9HKFRleHRJbnB1dCwgImRvQ29tbWFuZEJ5U2VsZWN0b3I6XCIl
c1wiIiwgc2VsX2dldE5hbWUoc2VsZWN0b3IpKTsKKworICAgIFZlY3RvcjxXZWJDb3JlOjpLZXlw
cmVzc0NvbW1hbmQ+KiBrZXlwcmVzc0NvbW1hbmRzID0gbV9jb2xsZWN0ZWRLZXlwcmVzc0NvbW1h
bmRzOworCisgICAgaWYgKGtleXByZXNzQ29tbWFuZHMpIHsKKyAgICAgICAgV2ViQ29yZTo6S2V5
cHJlc3NDb21tYW5kIGNvbW1hbmQoTlNTdHJpbmdGcm9tU2VsZWN0b3Ioc2VsZWN0b3IpKTsKKyAg
ICAgICAga2V5cHJlc3NDb21tYW5kcy0+YXBwZW5kKGNvbW1hbmQpOworICAgICAgICBMT0coVGV4
dElucHV0LCAiLi4uc3RvcmVkIik7CisgICAgICAgIG1fcGFnZS5yZWdpc3RlcktleXByZXNzQ29t
bWFuZE5hbWUoY29tbWFuZC5jb21tYW5kTmFtZSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8g
RklYTUU6IFNlbmQgdGhlIGNvbW1hbmQgdG8gRWRpdG9yIHN5bmNocm9ub3VzbHkgYW5kIG9ubHkg
c2VuZCBpdCBhbG9uZyB0aGUKKyAgICAgICAgLy8gcmVzcG9uZGVyIGNoYWluIGlmIGl0J3MgYSBz
ZWxlY3RvciB0aGF0IGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYW4gZWRpdGluZyBjb21tYW5kLgor
ICAgICAgICBbbV92aWV3IF9zdXBlckRvQ29tbWFuZEJ5U2VsZWN0b3I6c2VsZWN0b3JdOworICAg
IH0KK30KKwordm9pZCBXZWJWaWV3SW1wbDo6aW5zZXJ0VGV4dChpZCBzdHJpbmcpCit7CisgICAg
Ly8gVW5saWtlIGFuIE5TVGV4dElucHV0Q2xpZW50IHZhcmlhbnQgd2l0aCByZXBsYWNlbWVudFJh
bmdlLCB0aGlzIE5TUmVzcG9uZGVyIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiB0aGVyZSBpcyBubyBp
bnB1dCBjb250ZXh0LAorICAgIC8vIHNvIHRleHQgaW5wdXQgcHJvY2Vzc2luZyBpc24ndCBwZXJm
b3JtZWQuIFdlIGFyZSBub3QgZ29pbmcgdG8gYWN0dWFsbHkgaW5zZXJ0IGFueSB0ZXh0IGluIHRo
YXQgY2FzZSwgYnV0IHNhdmluZyBhbiBpbnNlcnRUZXh0CisgICAgLy8gY29tbWFuZCBlbnN1cmVz
IHRoYXQgYSBrZXlwcmVzcyBldmVudCBpcyBkaXNwYXRjaGVkIGFzIGFwcHJvcHJpYXRlLgorICAg
IGluc2VydFRleHQoc3RyaW5nLCBOU01ha2VSYW5nZShOU05vdEZvdW5kLCAwKSk7Cit9CisKK3Zv
aWQgV2ViVmlld0ltcGw6Omluc2VydFRleHQoaWQgc3RyaW5nLCBOU1JhbmdlIHJlcGxhY2VtZW50
UmFuZ2UpCit7CisgICAgQk9PTCBpc0F0dHJpYnV0ZWRTdHJpbmcgPSBbc3RyaW5nIGlzS2luZE9m
Q2xhc3M6W05TQXR0cmlidXRlZFN0cmluZyBjbGFzc11dOworICAgIEFTU0VSVChpc0F0dHJpYnV0
ZWRTdHJpbmcgfHwgW3N0cmluZyBpc0tpbmRPZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKTsKKwor
ICAgIGlmIChyZXBsYWNlbWVudFJhbmdlLmxvY2F0aW9uICE9IE5TTm90Rm91bmQpCisgICAgICAg
IExPRyhUZXh0SW5wdXQsICJpbnNlcnRUZXh0OlwiJUBcIiByZXBsYWNlbWVudFJhbmdlOigldSwg
JXUpIiwgaXNBdHRyaWJ1dGVkU3RyaW5nID8gW3N0cmluZyBzdHJpbmddIDogc3RyaW5nLCByZXBs
YWNlbWVudFJhbmdlLmxvY2F0aW9uLCByZXBsYWNlbWVudFJhbmdlLmxlbmd0aCk7CisgICAgZWxz
ZQorICAgICAgICBMT0coVGV4dElucHV0LCAiaW5zZXJ0VGV4dDpcIiVAXCIiLCBpc0F0dHJpYnV0
ZWRTdHJpbmcgPyBbc3RyaW5nIHN0cmluZ10gOiBzdHJpbmcpOworCisgICAgTlNTdHJpbmcgKnRl
eHQ7CisgICAgVmVjdG9yPFdlYkNvcmU6OlRleHRBbHRlcm5hdGl2ZVdpdGhSYW5nZT4gZGljdGF0
aW9uQWx0ZXJuYXRpdmVzOworCisgICAgYm9vbCByZWdpc3RlclVuZG9Hcm91cCA9IGZhbHNlOwor
ICAgIGlmIChpc0F0dHJpYnV0ZWRTdHJpbmcpIHsKKyNpZiBVU0UoRElDVEFUSU9OX0FMVEVSTkFU
SVZFUykKKyAgICAgICAgV2ViQ29yZTo6Y29sbGVjdERpY3RhdGlvblRleHRBbHRlcm5hdGl2ZXMo
c3RyaW5nLCBkaWN0YXRpb25BbHRlcm5hdGl2ZXMpOworI2VuZGlmCisjaWYgVVNFKElOU0VSVElP
Tl9VTkRPX0dST1VQSU5HKQorICAgICAgICByZWdpc3RlclVuZG9Hcm91cCA9IFdlYkNvcmU6OnNo
b3VsZFJlZ2lzdGVySW5zZXJ0aW9uVW5kb0dyb3VwKHN0cmluZyk7CisjZW5kaWYKKyAgICAgICAg
Ly8gRklYTUU6IFdlIGlnbm9yZSBtb3N0IGF0dHJpYnV0ZXMgZnJvbSB0aGUgc3RyaW5nLCBzbyBm
b3IgZXhhbXBsZSBpbnNlcnRpbmcgZnJvbSBDaGFyYWN0ZXIgUGFsZXR0ZSBsb3NlcyBmb250IGFu
ZCBnbHlwaCB2YXJpYXRpb24gZGF0YS4KKyAgICAgICAgdGV4dCA9IFtzdHJpbmcgc3RyaW5nXTsK
KyAgICB9IGVsc2UKKyAgICAgICAgdGV4dCA9IHN0cmluZzsKKworICAgIC8vIGluc2VydFRleHQg
Y2FuIGJlIGNhbGxlZCBmb3Igc2V2ZXJhbCByZWFzb25zOgorICAgIC8vIC0gSWYgaXQncyBmcm9t
IG5vcm1hbCBrZXkgZXZlbnQgcHJvY2Vzc2luZyAoaW5jbHVkaW5nIGtleSBiaW5kaW5ncyksIHdl
IHNhdmUgdGhlIGFjdGlvbiB0byBwZXJmb3JtIGl0IGxhdGVyLgorICAgIC8vIC0gSWYgaXQncyBm
cm9tIGFuIGlucHV0IG1ldGhvZCwgdGhlbiB3ZSBzaG91bGQgaW5zZXJ0IHRoZSB0ZXh0IG5vdy4K
KyAgICAvLyAtIElmIGl0J3Mgc2VudCBvdXRzaWRlIG9mIGtleWJvYXJkIGV2ZW50IHByb2Nlc3Np
bmcgKGUuZy4gZnJvbSBDaGFyYWN0ZXIgVmlld2VyLCBvciB3aGVuIGNvbmZpcm1pbmcgYW4gaW5s
aW5lIGlucHV0IGFyZWEgd2l0aCBhIG1vdXNlKSwKKyAgICAvLyB0aGVuIHdlIGFsc28gZXhlY3V0
ZSBpdCBpbW1lZGlhdGVseSwgYXMgdGhlcmUgd2lsbCBiZSBubyBvdGhlciBjaGFuY2UuCisgICAg
VmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4qIGtleXByZXNzQ29tbWFuZHMgPSBtX2Nv
bGxlY3RlZEtleXByZXNzQ29tbWFuZHM7CisgICAgaWYgKGtleXByZXNzQ29tbWFuZHMpIHsKKyAg
ICAgICAgQVNTRVJUKHJlcGxhY2VtZW50UmFuZ2UubG9jYXRpb24gPT0gTlNOb3RGb3VuZCk7Cisg
ICAgICAgIFdlYkNvcmU6OktleXByZXNzQ29tbWFuZCBjb21tYW5kKCJpbnNlcnRUZXh0OiIsIHRl
eHQpOworICAgICAgICBrZXlwcmVzc0NvbW1hbmRzLT5hcHBlbmQoY29tbWFuZCk7CisgICAgICAg
IExPRyhUZXh0SW5wdXQsICIuLi5zdG9yZWQiKTsKKyAgICAgICAgbV9wYWdlLnJlZ2lzdGVyS2V5
cHJlc3NDb21tYW5kTmFtZShjb21tYW5kLmNvbW1hbmROYW1lKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIFN0cmluZyBldmVudFRleHQgPSB0ZXh0OworICAgIGV2ZW50VGV4dC5yZXBs
YWNlKE5TQmFja1RhYkNoYXJhY3RlciwgTlNUYWJDaGFyYWN0ZXIpOyAvLyBzYW1lIHRoaW5nIGlz
IGRvbmUgaW4gS2V5RXZlbnRNYWMubW0gaW4gV2ViQ29yZQorICAgIGlmICghZGljdGF0aW9uQWx0
ZXJuYXRpdmVzLmlzRW1wdHkoKSkKKyAgICAgICAgbV9wYWdlLmluc2VydERpY3RhdGVkVGV4dEFz
eW5jKGV2ZW50VGV4dCwgcmVwbGFjZW1lbnRSYW5nZSwgZGljdGF0aW9uQWx0ZXJuYXRpdmVzLCBy
ZWdpc3RlclVuZG9Hcm91cCk7CisgICAgZWxzZQorICAgICAgICBtX3BhZ2UuaW5zZXJ0VGV4dEFz
eW5jKGV2ZW50VGV4dCwgcmVwbGFjZW1lbnRSYW5nZSwgcmVnaXN0ZXJVbmRvR3JvdXApOworfQor
Cit2b2lkIFdlYlZpZXdJbXBsOjpzZWxlY3RlZFJhbmdlV2l0aENvbXBsZXRpb25IYW5kbGVyKHZv
aWQoXmNvbXBsZXRpb25IYW5kbGVyUHRyKShOU1JhbmdlIHNlbGVjdGVkUmFuZ2UpKQoreworICAg
IFJldGFpblB0cjxpZD4gY29tcGxldGlvbkhhbmRsZXIgPSBhZG9wdE5TKFtjb21wbGV0aW9uSGFu
ZGxlclB0ciBjb3B5XSk7CisKKyAgICBMT0coVGV4dElucHV0LCAic2VsZWN0ZWRSYW5nZSIpOwor
ICAgIG1fcGFnZS5nZXRTZWxlY3RlZFJhbmdlQXN5bmMoW2NvbXBsZXRpb25IYW5kbGVyXShjb25z
dCBFZGl0aW5nUmFuZ2UmIGVkaXRpbmdSYW5nZVJlc3VsdCwgV2ViS2l0OjpDYWxsYmFja0Jhc2U6
OkVycm9yIGVycm9yKSB7CisgICAgICAgIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlckJsb2NrKShO
U1JhbmdlKSA9ICh2b2lkICheKShOU1JhbmdlKSljb21wbGV0aW9uSGFuZGxlci5nZXQoKTsKKyAg
ICAgICAgaWYgKGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkgewor
ICAgICAgICAgICAgTE9HKFRleHRJbnB1dCwgIiAgICAuLi5zZWxlY3RlZFJhbmdlIGZhaWxlZC4i
KTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyQmxvY2soTlNNYWtlUmFuZ2UoTlNOb3RG
b3VuZCwgMCkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIE5TUmFu
Z2UgcmVzdWx0ID0gZWRpdGluZ1JhbmdlUmVzdWx0OworICAgICAgICBpZiAocmVzdWx0LmxvY2F0
aW9uID09IE5TTm90Rm91bmQpCisgICAgICAgICAgICBMT0coVGV4dElucHV0LCAiICAgIC0+IHNl
bGVjdGVkUmFuZ2UgcmV0dXJuZWQgKE5TTm90Rm91bmQsICVsbHUpIiwgcmVzdWx0Lmxlbmd0aCk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLT4gc2VsZWN0
ZWRSYW5nZSByZXR1cm5lZCAoJWxsdSwgJWxsdSkiLCByZXN1bHQubG9jYXRpb24sIHJlc3VsdC5s
ZW5ndGgpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlckJsb2NrKHJlc3VsdCk7CisgICAgfSk7
Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6Om1hcmtlZFJhbmdlV2l0aENvbXBsZXRpb25IYW5kbGVy
KHZvaWQoXmNvbXBsZXRpb25IYW5kbGVyUHRyKShOU1JhbmdlIG1hcmtlZFJhbmdlKSkKK3sKKyAg
ICBSZXRhaW5QdHI8aWQ+IGNvbXBsZXRpb25IYW5kbGVyID0gYWRvcHROUyhbY29tcGxldGlvbkhh
bmRsZXJQdHIgY29weV0pOworCisgICAgTE9HKFRleHRJbnB1dCwgIm1hcmtlZFJhbmdlIik7Cisg
ICAgbV9wYWdlLmdldE1hcmtlZFJhbmdlQXN5bmMoW2NvbXBsZXRpb25IYW5kbGVyXShjb25zdCBF
ZGl0aW5nUmFuZ2UmIGVkaXRpbmdSYW5nZVJlc3VsdCwgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVy
cm9yIGVycm9yKSB7CisgICAgICAgIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlckJsb2NrKShOU1Jh
bmdlKSA9ICh2b2lkICheKShOU1JhbmdlKSljb21wbGV0aW9uSGFuZGxlci5nZXQoKTsKKyAgICAg
ICAgaWYgKGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkgeworICAg
ICAgICAgICAgTE9HKFRleHRJbnB1dCwgIiAgICAuLi5tYXJrZWRSYW5nZSBmYWlsZWQuIik7Cisg
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlckJsb2NrKE5TTWFrZVJhbmdlKE5TTm90Rm91bmQs
IDApKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBOU1JhbmdlIHJl
c3VsdCA9IGVkaXRpbmdSYW5nZVJlc3VsdDsKKyAgICAgICAgaWYgKHJlc3VsdC5sb2NhdGlvbiA9
PSBOU05vdEZvdW5kKQorICAgICAgICAgICAgTE9HKFRleHRJbnB1dCwgIiAgICAtPiBtYXJrZWRS
YW5nZSByZXR1cm5lZCAoTlNOb3RGb3VuZCwgJWxsdSkiLCByZXN1bHQubGVuZ3RoKTsKKyAgICAg
ICAgZWxzZQorICAgICAgICAgICAgTE9HKFRleHRJbnB1dCwgIiAgICAtPiBtYXJrZWRSYW5nZSBy
ZXR1cm5lZCAoJWxsdSwgJWxsdSkiLCByZXN1bHQubG9jYXRpb24sIHJlc3VsdC5sZW5ndGgpOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlckJsb2NrKHJlc3VsdCk7CisgICAgfSk7Cit9CisKK3Zv
aWQgV2ViVmlld0ltcGw6Omhhc01hcmtlZFRleHRXaXRoQ29tcGxldGlvbkhhbmRsZXIodm9pZChe
Y29tcGxldGlvbkhhbmRsZXJQdHIpKEJPT0wgaGFzTWFya2VkVGV4dCkpCit7CisgICAgUmV0YWlu
UHRyPGlkPiBjb21wbGV0aW9uSGFuZGxlciA9IGFkb3B0TlMoW2NvbXBsZXRpb25IYW5kbGVyUHRy
IGNvcHldKTsKKworICAgIExPRyhUZXh0SW5wdXQsICJoYXNNYXJrZWRUZXh0Iik7CisgICAgbV9w
YWdlLmdldE1hcmtlZFJhbmdlQXN5bmMoW2NvbXBsZXRpb25IYW5kbGVyXShjb25zdCBFZGl0aW5n
UmFuZ2UmIGVkaXRpbmdSYW5nZVJlc3VsdCwgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVy
cm9yKSB7CisgICAgICAgIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlckJsb2NrKShCT09MKSA9ICh2
b2lkICheKShCT09MKSljb21wbGV0aW9uSGFuZGxlci5nZXQoKTsKKyAgICAgICAgaWYgKGVycm9y
ICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkgeworICAgICAgICAgICAgTE9H
KFRleHRJbnB1dCwgIiAgICAuLi5oYXNNYXJrZWRUZXh0IGZhaWxlZC4iKTsKKyAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyQmxvY2soTk8pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisgICAgICAgIEJPT0wgaGFzTWFya2VkVGV4dCA9IGVkaXRpbmdSYW5nZVJlc3VsdC5sb2Nh
dGlvbiAhPSBub3RGb3VuZDsKKyAgICAgICAgTE9HKFRleHRJbnB1dCwgIiAgICAtPiBoYXNNYXJr
ZWRUZXh0IHJldHVybmVkICV1IiwgaGFzTWFya2VkVGV4dCk7CisgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyQmxvY2soaGFzTWFya2VkVGV4dCk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViVmlld0lt
cGw6OmF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlKE5TUmFuZ2UgbnNSYW5nZSwg
dm9pZCheY29tcGxldGlvbkhhbmRsZXJQdHIpKE5TQXR0cmlidXRlZFN0cmluZyAqYXR0clN0cmlu
ZywgTlNSYW5nZSBhY3R1YWxSYW5nZSkpCit7CisgICAgUmV0YWluUHRyPGlkPiBjb21wbGV0aW9u
SGFuZGxlciA9IGFkb3B0TlMoW2NvbXBsZXRpb25IYW5kbGVyUHRyIGNvcHldKTsKKworICAgIExP
RyhUZXh0SW5wdXQsICJhdHRyaWJ1dGVkU3Vic3RyaW5nRnJvbVJhbmdlOigldSwgJXUpIiwgbnNS
YW5nZS5sb2NhdGlvbiwgbnNSYW5nZS5sZW5ndGgpOworICAgIG1fcGFnZS5hdHRyaWJ1dGVkU3Vi
c3RyaW5nRm9yQ2hhcmFjdGVyUmFuZ2VBc3luYyhuc1JhbmdlLCBbY29tcGxldGlvbkhhbmRsZXJd
KGNvbnN0IEF0dHJpYnV0ZWRTdHJpbmcmIHN0cmluZywgY29uc3QgRWRpdGluZ1JhbmdlJiBhY3R1
YWxSYW5nZSwgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CisgICAgICAgIHZv
aWQgKF5jb21wbGV0aW9uSGFuZGxlckJsb2NrKShOU0F0dHJpYnV0ZWRTdHJpbmcgKiwgTlNSYW5n
ZSkgPSAodm9pZCAoXikoTlNBdHRyaWJ1dGVkU3RyaW5nICosIE5TUmFuZ2UpKWNvbXBsZXRpb25I
YW5kbGVyLmdldCgpOworICAgICAgICBpZiAoZXJyb3IgIT0gV2ViS2l0OjpDYWxsYmFja0Jhc2U6
OkVycm9yOjpOb25lKSB7CisgICAgICAgICAgICBMT0coVGV4dElucHV0LCAiICAgIC4uLmF0dHJp
YnV0ZWRTdWJzdHJpbmdGcm9tUmFuZ2UgZmFpbGVkLiIpOworICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXJCbG9jaygwLCBOU01ha2VSYW5nZShOU05vdEZvdW5kLCAwKSk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgTE9HKFRleHRJbnB1dCwgIiAgICAtPiBhdHRy
aWJ1dGVkU3Vic3RyaW5nRnJvbVJhbmdlIHJldHVybmVkICVAIiwgW3N0cmluZy5zdHJpbmcuZ2V0
KCkgc3RyaW5nXSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyQmxvY2soW1tzdHJpbmcuc3Ry
aW5nLmdldCgpIHJldGFpbl0gYXV0b3JlbGVhc2VdLCBhY3R1YWxSYW5nZSk7CisgICAgfSk7Cit9
CisKK3ZvaWQgV2ViVmlld0ltcGw6OmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKE5TUmFuZ2Ug
dGhlUmFuZ2UsIHZvaWQoXmNvbXBsZXRpb25IYW5kbGVyUHRyKShOU1JlY3QgZmlyc3RSZWN0LCBO
U1JhbmdlIGFjdHVhbFJhbmdlKSkKK3sKKyAgICBSZXRhaW5QdHI8aWQ+IGNvbXBsZXRpb25IYW5k
bGVyID0gYWRvcHROUyhbY29tcGxldGlvbkhhbmRsZXJQdHIgY29weV0pOworCisgICAgTE9HKFRl
eHRJbnB1dCwgImZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlOigldSwgJXUpIiwgdGhlUmFuZ2Uu
bG9jYXRpb24sIHRoZVJhbmdlLmxlbmd0aCk7CisKKyAgICAvLyBKdXN0IHRvIG1hdGNoIE5TVGV4
dFZpZXcncyBiZWhhdmlvci4gUmVncmVzc2lvbiB0ZXN0cyBjYW5ub3QgZGV0ZWN0IHRoaXM7Cisg
ICAgLy8gdG8gcmVwcm9kdWNlLCB1c2UgYSB0ZXN0IGFwcGxpY2F0aW9uIGZyb20gaHR0cDovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDY4MgorICAgIC8vICh0eXBlIHNvbWV0aGlu
ZzsgdHJ5IHJhbmdlcyAoMSwgLTEpIGFuZCAoMiwgLTEpLgorICAgIGlmICgodGhlUmFuZ2UubG9j
YXRpb24gKyB0aGVSYW5nZS5sZW5ndGggPCB0aGVSYW5nZS5sb2NhdGlvbikgJiYgKHRoZVJhbmdl
LmxvY2F0aW9uICsgdGhlUmFuZ2UubGVuZ3RoICE9IDApKQorICAgICAgICB0aGVSYW5nZS5sZW5n
dGggPSAwOworCisgICAgaWYgKHRoZVJhbmdlLmxvY2F0aW9uID09IE5TTm90Rm91bmQpIHsKKyAg
ICAgICAgTE9HKFRleHRJbnB1dCwgIiAgICAtPiBOU1plcm9SZWN0Iik7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyUHRyKE5TWmVyb1JlY3QsIHRoZVJhbmdlKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7CisgICAgbV9wYWdl
LmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlQXN5bmModGhlUmFuZ2UsIFt3ZWFrVGhpcywgY29t
cGxldGlvbkhhbmRsZXJdKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QsIGNvbnN0IEVkaXRp
bmdSYW5nZSYgYWN0dWFsUmFuZ2UsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikg
eworICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
IHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlckJsb2NrKShOU1JlY3QsIE5TUmFuZ2UpID0gKHZvaWQg
KF4pKE5TUmVjdCwgTlNSYW5nZSkpY29tcGxldGlvbkhhbmRsZXIuZ2V0KCk7CisgICAgICAgIGlm
IChlcnJvciAhPSBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpIHsKKyAgICAgICAg
ICAgIExPRyhUZXh0SW5wdXQsICIgICAgLi4uZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UgZmFp
bGVkLiIpOworICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXJCbG9jayhOU1plcm9SZWN0LCBO
U01ha2VSYW5nZShOU05vdEZvdW5kLCAwKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKworICAgICAgICBOU1JlY3QgcmVzdWx0UmVjdCA9IFt3ZWFrVGhpcy0+bV92aWV3IGNvbnZl
cnRSZWN0OnJlY3QgdG9WaWV3Om5pbF07CisgICAgICAgIHJlc3VsdFJlY3QgPSBbd2Vha1RoaXMt
Pm1fdmlldy53aW5kb3cgY29udmVydFJlY3RUb1NjcmVlbjpyZXN1bHRSZWN0XTsKKworICAgICAg
ICBMT0coVGV4dElucHV0LCAiICAgIC0+IGZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlIHJldHVy
bmVkICglZiwgJWYsICVmLCAlZikiLCByZXN1bHRSZWN0Lm9yaWdpbi54LCByZXN1bHRSZWN0Lm9y
aWdpbi55LCByZXN1bHRSZWN0LnNpemUud2lkdGgsIHJlc3VsdFJlY3Quc2l6ZS5oZWlnaHQpOwor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlckJsb2NrKHJlc3VsdFJlY3QsIGFjdHVhbFJhbmdlKTsK
KyAgICB9KTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6Y2hhcmFjdGVySW5kZXhGb3JQb2ludChO
U1BvaW50IHRoZVBvaW50LCB2b2lkKF5jb21wbGV0aW9uSGFuZGxlclB0cikoTlNVSW50ZWdlcikp
Cit7CisgICAgUmV0YWluUHRyPGlkPiBjb21wbGV0aW9uSGFuZGxlciA9IGFkb3B0TlMoW2NvbXBs
ZXRpb25IYW5kbGVyUHRyIGNvcHldKTsKKworICAgIExPRyhUZXh0SW5wdXQsICJjaGFyYWN0ZXJJ
bmRleEZvclBvaW50OiglZiwgJWYpIiwgdGhlUG9pbnQueCwgdGhlUG9pbnQueSk7CisKKyAgICBO
U1dpbmRvdyAqd2luZG93ID0gbV92aWV3LndpbmRvdzsKKworI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQt
ZGVjbGFyYXRpb25zIgorICAgIGlmICh3aW5kb3cpCisgICAgICAgIHRoZVBvaW50ID0gW3dpbmRv
dyBjb252ZXJ0U2NyZWVuVG9CYXNlOnRoZVBvaW50XTsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKKyAgICB0aGVQb2ludCA9IFttX3ZpZXcgY29udmVydFBvaW50OnRoZVBvaW50IGZyb21W
aWV3Om5pbF07ICAvLyB0aGUgcG9pbnQgaXMgcmVsYXRpdmUgdG8gdGhlIG1haW4gZnJhbWUKKwor
ICAgIG1fcGFnZS5jaGFyYWN0ZXJJbmRleEZvclBvaW50QXN5bmMoV2ViQ29yZTo6SW50UG9pbnQo
dGhlUG9pbnQpLCBbY29tcGxldGlvbkhhbmRsZXJdKHVpbnQ2NF90IHJlc3VsdCwgV2ViS2l0OjpD
YWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CisgICAgICAgIHZvaWQgKF5jb21wbGV0aW9uSGFu
ZGxlckJsb2NrKShOU1VJbnRlZ2VyKSA9ICh2b2lkICheKShOU1VJbnRlZ2VyKSljb21wbGV0aW9u
SGFuZGxlci5nZXQoKTsKKyAgICAgICAgaWYgKGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNl
OjpFcnJvcjo6Tm9uZSkgeworICAgICAgICAgICAgTE9HKFRleHRJbnB1dCwgIiAgICAuLi5jaGFy
YWN0ZXJJbmRleEZvclBvaW50IGZhaWxlZC4iKTsKKyAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyQmxvY2soMCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYg
KHJlc3VsdCA9PSBub3RGb3VuZCkKKyAgICAgICAgICAgIHJlc3VsdCA9IE5TTm90Rm91bmQ7Cisg
ICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLT4gY2hhcmFjdGVySW5kZXhGb3JQb2ludCByZXR1
cm5lZCAlbHUiLCByZXN1bHQpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlckJsb2NrKHJlc3Vs
dCk7CisgICAgfSk7Cit9CisKK05TVGV4dElucHV0Q29udGV4dCAqV2ViVmlld0ltcGw6OmlucHV0
Q29udGV4dCgpCit7CisgICAgaWYgKHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKCkp
IHsKKyAgICAgICAgQVNTRVJUKCFtX2NvbGxlY3RlZEtleXByZXNzQ29tbWFuZHMpOyAvLyBTaG91
bGQgbm90IGdldCBoZXJlIGZyb20gLV9pbnRlcnByZXRLZXlFdmVudDpjb21wbGV0aW9uSGFuZGxl
cjosIHdlIG9ubHkgdXNlIFdLVGV4dElucHV0V2luZG93Q29udHJvbGxlciBhZnRlciBnaXZpbmcg
dGhlIHBsdWctaW4gYSBjaGFuY2UgdG8gaGFuZGxlIGtleWRvd24gbmF0aXZlbHkuCisgICAgICAg
IHJldHVybiBbW1dLVGV4dElucHV0V2luZG93Q29udHJvbGxlciBzaGFyZWRUZXh0SW5wdXRXaW5k
b3dDb250cm9sbGVyXSBpbnB1dENvbnRleHRdOworICAgIH0KKworICAgIC8vIERpc2FibGUgdGV4
dCBpbnB1dCBtYWNoaW5lcnkgd2hlbiBpbiBub24tZWRpdGFibGUgY29udGVudC4gQW4gaW52aXNp
YmxlIGlubGluZSBpbnB1dCBhcmVhIGFmZmVjdHMgcGVyZm9ybWFuY2UsIGFuZCBjYW4gcHJldmVu
dCBFeHBvc2UgZnJvbSB3b3JraW5nLgorICAgIGlmICghbV9wYWdlLmVkaXRvclN0YXRlKCkuaXND
b250ZW50RWRpdGFibGUpCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICByZXR1cm4gW21fdmll
dyBfc3VwZXJJbnB1dENvbnRleHRdOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjp1bm1hcmtUZXh0
KCkKK3sKKyAgICBMT0coVGV4dElucHV0LCAidW5tYXJrVGV4dCIpOworCisgICAgbV9wYWdlLmNv
bmZpcm1Db21wb3NpdGlvbkFzeW5jKCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OnNldE1hcmtl
ZFRleHQoaWQgc3RyaW5nLCBOU1JhbmdlIHNlbGVjdGVkUmFuZ2UsIE5TUmFuZ2UgcmVwbGFjZW1l
bnRSYW5nZSkKK3sKKyAgICBCT09MIGlzQXR0cmlidXRlZFN0cmluZyA9IFtzdHJpbmcgaXNLaW5k
T2ZDbGFzczpbTlNBdHRyaWJ1dGVkU3RyaW5nIGNsYXNzXV07CisgICAgQVNTRVJUKGlzQXR0cmli
dXRlZFN0cmluZyB8fCBbc3RyaW5nIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pOwor
CisgICAgTE9HKFRleHRJbnB1dCwgInNldE1hcmtlZFRleHQ6XCIlQFwiIHNlbGVjdGVkUmFuZ2U6
KCV1LCAldSkgcmVwbGFjZW1lbnRSYW5nZTooJXUsICV1KSIsIGlzQXR0cmlidXRlZFN0cmluZyA/
IFtzdHJpbmcgc3RyaW5nXSA6IHN0cmluZywgc2VsZWN0ZWRSYW5nZS5sb2NhdGlvbiwgc2VsZWN0
ZWRSYW5nZS5sZW5ndGgsIHJlcGxhY2VtZW50UmFuZ2UubG9jYXRpb24sIHJlcGxhY2VtZW50UmFu
Z2UubGVuZ3RoKTsKKworICAgIFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlvblVuZGVybGluZT4g
dW5kZXJsaW5lczsKKyAgICBOU1N0cmluZyAqdGV4dDsKKworICAgIGlmIChpc0F0dHJpYnV0ZWRT
dHJpbmcpIHsKKyAgICAgICAgLy8gRklYTUU6IFdlIGlnbm9yZSBtb3N0IGF0dHJpYnV0ZXMgZnJv
bSB0aGUgc3RyaW5nLCBzbyBhbiBpbnB1dCBtZXRob2QgY2Fubm90IHNwZWNpZnkgZS5nLiBhIGZv
bnQgb3IgYSBnbHlwaCB2YXJpYXRpb24uCisgICAgICAgIHRleHQgPSBbc3RyaW5nIHN0cmluZ107
CisgICAgICAgIGV4dHJhY3RVbmRlcmxpbmVzKHN0cmluZywgdW5kZXJsaW5lcyk7CisgICAgfSBl
bHNlCisgICAgICAgIHRleHQgPSBzdHJpbmc7CisKKyAgICBpZiAoaW5TZWN1cmVJbnB1dFN0YXRl
KCkpIHsKKyAgICAgICAgLy8gSW4gcGFzc3dvcmQgZmllbGRzLCB3ZSBvbmx5IGFsbG93IEFTQ0lJ
IGRlYWQga2V5cywgYW5kIGRvbid0IGFsbG93IGlubGluZSBpbnB1dCwgbWF0Y2hpbmcgTlNTZWN1
cmVUZXh0SW5wdXRGaWVsZC4KKyAgICAgICAgLy8gQWxsb3dpbmcgQVNDSUkgZGVhZCBrZXlzIGlz
IG5lY2Vzc2FyeSB0byBlbmFibGUgZnVsbCBSb21hbiBpbnB1dCB3aGVuIHVzaW5nIGEgVmlldG5h
bWVzZSBrZXlib2FyZC4KKyAgICAgICAgQVNTRVJUKCFtX3BhZ2UuZWRpdG9yU3RhdGUoKS5oYXND
b21wb3NpdGlvbik7CisgICAgICAgIG5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29t
cG9zaXRpb24oKTsKKyAgICAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBzdG9yZSB0aGUgY29tbWFu
ZCB0byBoYW5kbGUgaXQgYWZ0ZXIgRE9NIGV2ZW50IHByb2Nlc3NpbmcsIGFzIGl0J3MgcmVndWxh
ciBrZXlib2FyZCBpbnB1dCBub3csIG5vdCBhIGNvbXBvc2l0aW9uLgorICAgICAgICBpZiAoW3Rl
eHQgbGVuZ3RoXSA9PSAxICYmIGlzQVNDSUkoW3RleHQgY2hhcmFjdGVyQXRJbmRleDowXSkpCisg
ICAgICAgICAgICBtX3BhZ2UuaW5zZXJ0VGV4dEFzeW5jKHRleHQsIHJlcGxhY2VtZW50UmFuZ2Up
OworICAgICAgICBlbHNlCisgICAgICAgICAgICBOU0JlZXAoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKworICAgIG1fcGFnZS5zZXRDb21wb3NpdGlvbkFzeW5jKHRleHQsIHVuZGVybGluZXMs
IHNlbGVjdGVkUmFuZ2UsIHJlcGxhY2VtZW50UmFuZ2UpOworfQorCisvLyBTeW5jaHJvbm91cyBO
U1RleHRJbnB1dENsaWVudCBpcyBzdGlsbCBpbXBsZW1lbnRlZCB0byBjYXRjaCBzcHVyaW91cyBz
eW5jIGNhbGxzLiBSZW1vdmUgd2hlbiB0aGF0IGlzIG5vIGxvbmdlciBuZWVkZWQuCisKK05TUmFu
Z2UgV2ViVmlld0ltcGw6OnNlbGVjdGVkUmFuZ2UoKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgIHJldHVybiBOU01ha2VSYW5nZShOU05vdEZvdW5kLCAwKTsKK30KKworYm9vbCBX
ZWJWaWV3SW1wbDo6aGFzTWFya2VkVGV4dCgpCit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
CisgICAgcmV0dXJuIE5POworfQorCitOU1JhbmdlIFdlYlZpZXdJbXBsOjptYXJrZWRSYW5nZSgp
Cit7CisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIE5TTWFrZVJhbmdlKE5T
Tm90Rm91bmQsIDApOworfQorCitOU0F0dHJpYnV0ZWRTdHJpbmcgKldlYlZpZXdJbXBsOjphdHRy
aWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZShOU1JhbmdlIG5zUmFuZ2UsIE5TUmFuZ2VQ
b2ludGVyIGFjdHVhbFJhbmdlKQoreworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJl
dHVybiBuaWw7Cit9CisKK05TVUludGVnZXIgV2ViVmlld0ltcGw6OmNoYXJhY3RlckluZGV4Rm9y
UG9pbnQoTlNQb2ludCB0aGVQb2ludCkKK3sKKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICByZXR1cm4gMDsKK30KKworTlNSZWN0IFdlYlZpZXdJbXBsOjpmaXJzdFJlY3RGb3JDaGFyYWN0
ZXJSYW5nZShOU1JhbmdlIHRoZVJhbmdlLCBOU1JhbmdlUG9pbnRlciBhY3R1YWxSYW5nZSkKK3sK
KyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gTlNaZXJvUmVjdDsKK30KKwor
Ym9vbCBXZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVxdWl2YWxlbnQoTlNFdmVudCAqZXZlbnQpCit7
CisgICAgaWYgKGlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQorICAgICAgICByZXR1cm4gTk87CisK
KyAgICAvLyBUaGVyZSdzIGEgY2hhbmNlIHRoYXQgcmVzcG9uZGluZyB0byB0aGlzIGV2ZW50IHdp
bGwgcnVuIGEgbmVzdGVkIGV2ZW50IGxvb3AsIGFuZAorICAgIC8vIGZldGNoaW5nIGEgbmV3IGV2
ZW50IG1pZ2h0IHJlbGVhc2UgdGhlIG9sZCBvbmUuIFJldGFpbmluZyBhbmQgdGhlbiBhdXRvcmVs
ZWFzaW5nCisgICAgLy8gdGhlIGN1cnJlbnQgZXZlbnQgcHJldmVudHMgdGhhdCBmcm9tIGNhdXNp
bmcgYSBwcm9ibGVtIGluc2lkZSBXZWJLaXQgb3IgQXBwS2l0IGNvZGUuCisgICAgW1tldmVudCBy
ZXRhaW5dIGF1dG9yZWxlYXNlXTsKKworICAgIC8vIFdlIGdldCBFc2Mga2V5IGhlcmUgYWZ0ZXIg
cHJvY2Vzc2luZyBlaXRoZXIgRXNjIG9yIENtZCtwZXJpb2QuIFRoZSBmb3JtZXIgc3RhcnRzIGFz
IGEga2V5RG93biwgYW5kIHRoZSBsYXR0ZXIgc3RhcnRzIGFzIGEga2V5IGVxdWl2YWxlbnQsCisg
ICAgLy8gYnV0IGJvdGggZ2V0IHRyYW5zZm9ybWVkIHRvIGEgY2FuY2VsT3BlcmF0aW9uOiBjb21t
YW5kLCBleGVjdXRpbmcgd2hpY2ggcGFzc2VzIGFuIEVzYyBrZXkgZXZlbnQgdG8gLXBlcmZvcm1L
ZXlFcXVpdmFsZW50Oi4KKyAgICAvLyBEb24ndCBpbnRlcnByZXQgdGhpcyBldmVudCBhZ2Fpbiwg
YXZvaWRpbmcgcmUtZW50cmFuY3kgYW5kIGluZmluaXRlIGxvb3BzLgorICAgIGlmIChbW2V2ZW50
IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyc10gaXNFcXVhbFRvU3RyaW5nOkAiXGUiXSAmJiAh
KFtldmVudCBtb2RpZmllckZsYWdzXSAmIE5TRGV2aWNlSW5kZXBlbmRlbnRNb2RpZmllckZsYWdz
TWFzaykpCisgICAgICAgIHJldHVybiBbbV92aWV3IF9zdXBlclBlcmZvcm1LZXlFcXVpdmFsZW50
OmV2ZW50XTsKKworICAgIGlmIChtX2tleURvd25FdmVudEJlaW5nUmVzZW50KSB7CisgICAgICAg
IC8vIFdlYkNvcmUgaGFzIGFscmVhZHkgc2VlbiB0aGUgZXZlbnQsIG5vIG5lZWQgZm9yIGN1c3Rv
bSBwcm9jZXNzaW5nLgorICAgICAgICAvLyBOb3RlIHRoYXQgd2UgY2FuIGdldCBtdWx0aXBsZSBl
dmVudHMgZm9yIGVhY2ggZXZlbnQgYmVpbmcgcmUtc2VudC4gRm9yIGV4YW1wbGUsIGZvciBDbWQr
Jz0nIEFwcEtpdAorICAgICAgICAvLyBmaXJzdCBwZXJmb3JtcyB0aGUgb3JpZ2luYWwga2V5IGVx
dWl2YWxlbnQsIGFuZCBpZiB0aGF0IGlzbid0IGhhbmRsZWQsIGl0IGRpc3BhdGNoZXMgYSBzeW50
aGV0aWMgQ21kKycrJy4KKyAgICAgICAgcmV0dXJuIFttX3ZpZXcgX3N1cGVyUGVyZm9ybUtleUVx
dWl2YWxlbnQ6ZXZlbnRdOworICAgIH0KKworICAgIEFTU0VSVChldmVudCA9PSBbTlNBcHAgY3Vy
cmVudEV2ZW50XSk7CisKKyAgICBkaXNhYmxlQ29tcGxleFRleHRJbnB1dElmTmVjZXNzYXJ5KCk7
CisKKyAgICAvLyBQYXNzIGtleSBjb21ib3MgdGhyb3VnaCBXZWJDb3JlIGlmIHRoZXJlIGlzIGEg
a2V5IGJpbmRpbmcgYXZhaWxhYmxlIGZvcgorICAgIC8vIHRoaXMgZXZlbnQuIFRoaXMgbGV0cyB3
ZWJwYWdlcyBoYXZlIGEgY3JhY2sgYXQgaW50ZXJjZXB0aW5nIGtleS1tb2RpZmllZCBrZXlwcmVz
c2VzLgorICAgIC8vIEZJWE1FOiBXaHkgaXMgdGhlIGZpcnN0UmVzcG9uZGVyIGNoZWNrIG5lZWRl
ZD8KKyAgICBpZiAobV92aWV3ID09IG1fdmlldy53aW5kb3cuZmlyc3RSZXNwb25kZXIpIHsKKyAg
ICAgICAgaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQsIF4oQk9PTCBoYW5kbGVkQnlJbnB1dE1ldGhv
ZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSB7Cisg
ICAgICAgICAgICBtX3BhZ2UuaGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2
ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFuZHMpKTsKKyAgICAgICAgfSk7
CisgICAgICAgIHJldHVybiBZRVM7CisgICAgfQorICAgIAorICAgIHJldHVybiBbbV92aWV3IF9z
dXBlclBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6
a2V5VXAoTlNFdmVudCAqdGhlRXZlbnQpCit7CisgICAgaWYgKGlnbm9yZXNOb25XaGVlbEV2ZW50
cygpKQorICAgICAgICByZXR1cm47CisKKyAgICBMT0coVGV4dElucHV0LCAia2V5VXA6JXAgJUAi
LCB0aGVFdmVudCwgdGhlRXZlbnQpOworCisgICAgaW50ZXJwcmV0S2V5RXZlbnQodGhlRXZlbnQs
IF4oQk9PTCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSB7CisgICAgICAgIEFTU0VSVCghaGFuZGxlZEJ5SW5wdXRN
ZXRob2QgfHwgY29tbWFuZHMuaXNFbXB0eSgpKTsKKyAgICAgICAgbV9wYWdlLmhhbmRsZUtleWJv
YXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCh0aGVFdmVudCwgaGFuZGxlZEJ5SW5wdXRN
ZXRob2QsIGNvbW1hbmRzKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6OmtleURv
d24oTlNFdmVudCAqdGhlRXZlbnQpCit7CisgICAgaWYgKGlnbm9yZXNOb25XaGVlbEV2ZW50cygp
KQorICAgICAgICByZXR1cm47CisKKyAgICBMT0coVGV4dElucHV0LCAia2V5RG93bjolcCAlQCVz
IiwgdGhlRXZlbnQsIHRoZUV2ZW50LCAodGhlRXZlbnQgPT0gbV9rZXlEb3duRXZlbnRCZWluZ1Jl
c2VudCkgPyAiIChyZS1zZW50KSIgOiAiIik7CisKKyAgICBpZiAodHJ5SGFuZGxlUGx1Z2luQ29t
cGxleFRleHRJbnB1dEtleURvd24odGhlRXZlbnQpKSB7CisgICAgICAgIExPRyhUZXh0SW5wdXQs
ICIuLi5oYW5kbGVkIGJ5IHBsdWctaW4iKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAg
IC8vIFdlIGNvdWxkIGJlIHJlY2VpdmluZyBhIGtleSBkb3duIGZyb20gQXBwS2l0IGlmIHdlIGhh
dmUgcmUtc2VudCBhbiBldmVudAorICAgIC8vIHRoYXQgbWFwcyB0byBhbiBhY3Rpb24gdGhhdCBp
cyBjdXJyZW50bHkgdW5hdmFpbGFibGUgKGZvciBleGFtcGxlIGEgY29weSB3aGVuCisgICAgLy8g
dGhlcmUgaXMgbm8gcmFuZ2Ugc2VsZWN0aW9uKS4KKyAgICAvLyBJZiB0aGlzIGlzIHRoZSBjYXNl
IHdlIHNob3VsZCBpZ25vcmUgdGhlIGtleSBkb3duLgorICAgIGlmIChtX2tleURvd25FdmVudEJl
aW5nUmVzZW50ID09IHRoZUV2ZW50KSB7CisgICAgICAgIFttX3ZpZXcgX3N1cGVyS2V5RG93bjp0
aGVFdmVudF07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpbnRlcnByZXRLZXlFdmVu
dCh0aGVFdmVudCwgXihCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2Vi
Q29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKKyAgICAgICAgQVNTRVJUKCFoYW5k
bGVkQnlJbnB1dE1ldGhvZCB8fCBjb21tYW5kcy5pc0VtcHR5KCkpOworICAgICAgICBtX3BhZ2Uu
aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KHRoZUV2ZW50LCBoYW5k
bGVkQnlJbnB1dE1ldGhvZCwgY29tbWFuZHMpKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJWaWV3
SW1wbDo6ZmxhZ3NDaGFuZ2VkKE5TRXZlbnQgKnRoZUV2ZW50KQoreworICAgIGlmIChpZ25vcmVz
Tm9uV2hlZWxFdmVudHMoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTE9HKFRleHRJbnB1dCwg
ImZsYWdzQ2hhbmdlZDolcCAlQCIsIHRoZUV2ZW50LCB0aGVFdmVudCk7CisKKyAgICB1bnNpZ25l
ZCBzaG9ydCBrZXlDb2RlID0gW3RoZUV2ZW50IGtleUNvZGVdOworCisgICAgLy8gRG9uJ3QgbWFr
ZSBhbiBldmVudCBmcm9tIHRoZSBudW0gbG9jayBhbmQgZnVuY3Rpb24ga2V5cworICAgIGlmICgh
a2V5Q29kZSB8fCBrZXlDb2RlID09IDEwIHx8IGtleUNvZGUgPT0gNjMpCisgICAgICAgIHJldHVy
bjsKKworICAgIGludGVycHJldEtleUV2ZW50KHRoZUV2ZW50LCBeKEJPT0wgaGFuZGxlZEJ5SW5w
dXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5k
cykgeworICAgICAgICBtX3BhZ2UuaGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50KHRoZUV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFuZHMpKTsKKyAgICB9
KTsKK30KKworI2Vsc2UgLy8gVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQorCitib29sIFdl
YlZpZXdJbXBsOjppbnRlcnByZXRLZXlFdmVudChOU0V2ZW50ICpldmVudCwgVmVjdG9yPFdlYkNv
cmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKQoreworICAgIEFTU0VSVCghbV9pbnRlcnBy
ZXRLZXlFdmVudHNQYXJhbWV0ZXJzKTsKKyAgICBBU1NFUlQoY29tbWFuZHMuaXNFbXB0eSgpKTsK
KworICAgIGlmIChbZXZlbnQgdHlwZV0gPT0gTlNGbGFnc0NoYW5nZWQpCisgICAgICAgIHJldHVy
biBOTzsKKworICAgIFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgcGFyYW1ldGVy
czsKKyAgICBwYXJhbWV0ZXJzLmV2ZW50SW50ZXJwcmV0YXRpb25IYWRTaWRlRWZmZWN0cyA9IGZh
bHNlOworICAgIHBhcmFtZXRlcnMuZXhlY3V0aW5nU2F2ZWRLZXlwcmVzc0NvbW1hbmRzID0gZmFs
c2U7CisgICAgLy8gV2UgYXNzdW1lIHRoYXQgYW4gaW5wdXQgbWV0aG9kIGhhcyBjb25zdW1lZCB0
aGUgZXZlbnQsIGFuZCBvbmx5IGNoYW5nZSB0aGlzIGFzc3VtcHRpb24gaWYgb25lIG9mIHRoZSBO
U1RleHRJbnB1dCBtZXRob2RzIGlzIGNhbGxlZC4KKyAgICAvLyBXZSBhc3N1bWUgdGhlIElNIHdp
bGwgKm5vdCogY29uc3VtZSBob3RrZXkgc2VxdWVuY2VzLgorICAgIHBhcmFtZXRlcnMuY29uc3Vt
ZWRCeUlNID0gIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0NvbW1hbmRLZXlNYXNrKTsKKyAg
ICBwYXJhbWV0ZXJzLmNvbW1hbmRzID0gJmNvbW1hbmRzOworICAgIG1faW50ZXJwcmV0S2V5RXZl
bnRzUGFyYW1ldGVycyA9ICZwYXJhbWV0ZXJzOworCisgICAgTE9HKFRleHRJbnB1dCwgIi0+IGlu
dGVycHJldEtleUV2ZW50czolcCAlQCIsIGV2ZW50LCBldmVudCk7CisgICAgW21fdmlldyBpbnRl
cnByZXRLZXlFdmVudHM6W05TQXJyYXkgYXJyYXlXaXRoT2JqZWN0OmV2ZW50XV07CisKKyAgICBt
X2ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnMgPSBudWxscHRyOworCisgICAgLy8gQW4gaW5w
dXQgbWV0aG9kIG1heSBjb25zdW1lIGFuIGV2ZW50IGFuZCBub3QgdGVsbCB1cyAoZS5nLiB3aGVu
IGRpc3BsYXlpbmcgYSBjYW5kaWRhdGUgd2luZG93KSwKKyAgICAvLyBpbiB3aGljaCBjYXNlIHdl
IHNob3VsZCBub3QgYnViYmxlIHRoZSBldmVudCB1cCB0aGUgRE9NLgorICAgIGlmIChwYXJhbWV0
ZXJzLmNvbnN1bWVkQnlJTSkgeworICAgICAgICBBU1NFUlQoY29tbWFuZHMuaXNFbXB0eSgpKTsK
KyAgICAgICAgTE9HKFRleHRJbnB1dCwgIi4uLmV2ZW50ICVwIHdhcyBjb25zdW1lZCBieSBhbiBp
bnB1dCBtZXRob2QiLCBldmVudCk7CisgICAgICAgIHJldHVybiBZRVM7CisgICAgfQorCisgICAg
TE9HKFRleHRJbnB1dCwgIi4uLmludGVycHJldEtleUV2ZW50cyBmb3IgZXZlbnQgJXAgZG9uZSwg
cmV0dXJucyAlZCIsIGV2ZW50LCBwYXJhbWV0ZXJzLmV2ZW50SW50ZXJwcmV0YXRpb25IYWRTaWRl
RWZmZWN0cyk7CisKKyAgICAvLyBJZiB3ZSBoYXZlIGFscmVhZHkgZXhlY3V0ZWQgYWxsIG9yIHNv
bWUgb2YgdGhlIGNvbW1hbmRzLCB0aGUgZXZlbnQgaXMgImhhbmRsZWQiLiBOb3RlIHRoYXQgdGhl
cmUgYXJlIGFkZGl0aW9uYWwgY2hlY2tzIG9uIHdlYiBwcm9jZXNzIHNpZGUuCisgICAgcmV0dXJu
IHBhcmFtZXRlcnMuZXZlbnRJbnRlcnByZXRhdGlvbkhhZFNpZGVFZmZlY3RzOworfQorCit2b2lk
IFdlYlZpZXdJbXBsOjpleGVjdXRlU2F2ZWRLZXlwcmVzc0NvbW1hbmRzKCkKK3sKKyAgICBXS1Zp
ZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzID0gbV9pbnRlcnByZXRL
ZXlFdmVudHNQYXJhbWV0ZXJzOworICAgIGlmICghcGFyYW1ldGVycyB8fCBwYXJhbWV0ZXJzLT5j
b21tYW5kcy0+aXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBXZSBjb3VsZCBi
ZSBjYWxsZWQgYWdhaW4gaWYgdGhlIGV4ZWN1dGlvbiBvZiBvbmUgY29tbWFuZCB0cmlnZ2VycyBh
IGNhbGwgdG8gc2VsZWN0ZWRSYW5nZS4KKyAgICAvLyBJbiB0aGlzIGNhc2UsIHRoZSBzdGF0ZSBp
cyB1cCB0byBkYXRlLCBhbmQgd2UgZG9uJ3QgbmVlZCB0byBleGVjdXRlIGFueSBtb3JlIHNhdmVk
IGNvbW1hbmRzIHRvIHJldHVybiBhIHJlc3VsdC4KKyAgICBpZiAocGFyYW1ldGVycy0+ZXhlY3V0
aW5nU2F2ZWRLZXlwcmVzc0NvbW1hbmRzKQorICAgICAgICByZXR1cm47CisKKyAgICBMT0coVGV4
dElucHV0LCAiRXhlY3V0aW5nICV1IHNhdmVkIGtleXByZXNzIGNvbW1hbmRzLi4uIiwgcGFyYW1l
dGVycy0+Y29tbWFuZHMtPnNpemUoKSk7CisKKyAgICBwYXJhbWV0ZXJzLT5leGVjdXRpbmdTYXZl
ZEtleXByZXNzQ29tbWFuZHMgPSB0cnVlOworICAgIHBhcmFtZXRlcnMtPmV2ZW50SW50ZXJwcmV0
YXRpb25IYWRTaWRlRWZmZWN0cyB8PSBtX3BhZ2UuZXhlY3V0ZUtleXByZXNzQ29tbWFuZHMoKnBh
cmFtZXRlcnMtPmNvbW1hbmRzKTsKKyAgICBwYXJhbWV0ZXJzLT5jb21tYW5kcy0+Y2xlYXIoKTsK
KyAgICBwYXJhbWV0ZXJzLT5leGVjdXRpbmdTYXZlZEtleXByZXNzQ29tbWFuZHMgPSBmYWxzZTsK
KworICAgIExPRyhUZXh0SW5wdXQsICIuLi5kb25lIGV4ZWN1dGluZyBzYXZlZCBrZXlwcmVzcyBj
b21tYW5kcy4iKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6ZG9Db21tYW5kQnlTZWxlY3RvcihT
RUwgc2VsZWN0b3IpCit7CisgICAgTE9HKFRleHRJbnB1dCwgImRvQ29tbWFuZEJ5U2VsZWN0b3I6
XCIlc1wiIiwgc2VsX2dldE5hbWUoc2VsZWN0b3IpKTsKKworICAgIFdLVmlld0ludGVycHJldEtl
eUV2ZW50c1BhcmFtZXRlcnMqIHBhcmFtZXRlcnMgPSBtX2ludGVycHJldEtleUV2ZW50c1BhcmFt
ZXRlcnM7CisgICAgaWYgKHBhcmFtZXRlcnMpCisgICAgICAgIHBhcmFtZXRlcnMtPmNvbnN1bWVk
QnlJTSA9IGZhbHNlOworCisgICAgLy8gQXMgaW4gaW5zZXJ0VGV4dDpyZXBsYWNlbWVudFJhbmdl
Oiwgd2UgYXNzdW1lIHRoYXQgdGhlIGNhbGwgY29tZXMgZnJvbSBhbiBpbnB1dCBtZXRob2QgaWYg
dGhlcmUgaXMgbWFya2VkIHRleHQuCisgICAgYm9vbCBpc0Zyb21JbnB1dE1ldGhvZCA9IG1fcGFn
ZS5lZGl0b3JTdGF0ZSgpLmhhc0NvbXBvc2l0aW9uOworCisgICAgaWYgKHBhcmFtZXRlcnMgJiYg
IWlzRnJvbUlucHV0TWV0aG9kKSB7CisgICAgICAgIFdlYkNvcmU6OktleXByZXNzQ29tbWFuZCBj
b21tYW5kKE5TU3RyaW5nRnJvbVNlbGVjdG9yKHNlbGVjdG9yKSk7CisgICAgICAgIHBhcmFtZXRl
cnMtPmNvbW1hbmRzLT5hcHBlbmQoY29tbWFuZCk7CisgICAgICAgIExPRyhUZXh0SW5wdXQsICIu
Li5zdG9yZWQiKTsKKyAgICAgICAgbV9wYWdlLnJlZ2lzdGVyS2V5cHJlc3NDb21tYW5kTmFtZShj
b21tYW5kLmNvbW1hbmROYW1lKTsKKyAgICB9IGVsc2UgeworICAgICAgICAvLyBGSVhNRTogU2Vu
ZCB0aGUgY29tbWFuZCB0byBFZGl0b3Igc3luY2hyb25vdXNseSBhbmQgb25seSBzZW5kIGl0IGFs
b25nIHRoZQorICAgICAgICAvLyByZXNwb25kZXIgY2hhaW4gaWYgaXQncyBhIHNlbGVjdG9yIHRo
YXQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhbiBlZGl0aW5nIGNvbW1hbmQuCisgICAgICAgIFtt
X3ZpZXcgX3N1cGVyRG9Db21tYW5kQnlTZWxlY3RvcjpzZWxlY3Rvcl07CisgICAgfQorfQorCit2
b2lkIFdlYlZpZXdJbXBsOjppbnNlcnRUZXh0KGlkIHN0cmluZykKK3sKKyAgICAvLyBVbmxpa2Ug
YW4gTlNUZXh0SW5wdXRDbGllbnQgdmFyaWFudCB3aXRoIHJlcGxhY2VtZW50UmFuZ2UsIHRoaXMg
TlNSZXNwb25kZXIgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIHRoZXJlIGlzIG5vIGlucHV0IGNvbnRl
eHQsCisgICAgLy8gc28gdGV4dCBpbnB1dCBwcm9jZXNzaW5nIGlzbid0IHBlcmZvcm1lZC4gV2Ug
YXJlIG5vdCBnb2luZyB0byBhY3R1YWxseSBpbnNlcnQgYW55IHRleHQgaW4gdGhhdCBjYXNlLCBi
dXQgc2F2aW5nIGFuIGluc2VydFRleHQKKyAgICAvLyBjb21tYW5kIGVuc3VyZXMgdGhhdCBhIGtl
eXByZXNzIGV2ZW50IGlzIGRpc3BhdGNoZWQgYXMgYXBwcm9wcmlhdGUuCisgICAgaW5zZXJ0VGV4
dChzdHJpbmcsIE5TTWFrZVJhbmdlKE5TTm90Rm91bmQsIDApKTsKK30KKwordm9pZCBXZWJWaWV3
SW1wbDo6aW5zZXJ0VGV4dChpZCBzdHJpbmcsIE5TUmFuZ2UgcmVwbGFjZW1lbnRSYW5nZSkKK3sK
KyAgICBCT09MIGlzQXR0cmlidXRlZFN0cmluZyA9IFtzdHJpbmcgaXNLaW5kT2ZDbGFzczpbTlNB
dHRyaWJ1dGVkU3RyaW5nIGNsYXNzXV07CisgICAgQVNTRVJUKGlzQXR0cmlidXRlZFN0cmluZyB8
fCBbc3RyaW5nIGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pOworCisgICAgaWYgKHJl
cGxhY2VtZW50UmFuZ2UubG9jYXRpb24gIT0gTlNOb3RGb3VuZCkKKyAgICAgICAgTE9HKFRleHRJ
bnB1dCwgImluc2VydFRleHQ6XCIlQFwiIHJlcGxhY2VtZW50UmFuZ2U6KCV1LCAldSkiLCBpc0F0
dHJpYnV0ZWRTdHJpbmcgPyBbc3RyaW5nIHN0cmluZ10gOiBzdHJpbmcsIHJlcGxhY2VtZW50UmFu
Z2UubG9jYXRpb24sIHJlcGxhY2VtZW50UmFuZ2UubGVuZ3RoKTsKKyAgICBlbHNlCisgICAgICAg
IExPRyhUZXh0SW5wdXQsICJpbnNlcnRUZXh0OlwiJUBcIiIsIGlzQXR0cmlidXRlZFN0cmluZyA/
IFtzdHJpbmcgc3RyaW5nXSA6IHN0cmluZyk7CisgICAgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRz
UGFyYW1ldGVycyogcGFyYW1ldGVycyA9IG1faW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVyczsK
KyAgICBpZiAocGFyYW1ldGVycykKKyAgICAgICAgcGFyYW1ldGVycy0+Y29uc3VtZWRCeUlNID0g
ZmFsc2U7CisKKyAgICBOU1N0cmluZyAqdGV4dDsKKyAgICBib29sIGlzRnJvbUlucHV0TWV0aG9k
ID0gbV9wYWdlLmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb247CisKKyAgICBWZWN0b3I8V2Vi
Q29yZTo6VGV4dEFsdGVybmF0aXZlV2l0aFJhbmdlPiBkaWN0YXRpb25BbHRlcm5hdGl2ZXM7CisK
KyAgICBpZiAoaXNBdHRyaWJ1dGVkU3RyaW5nKSB7CisjaWYgVVNFKERJQ1RBVElPTl9BTFRFUk5B
VElWRVMpCisgICAgICAgIFdlYkNvcmU6OmNvbGxlY3REaWN0YXRpb25UZXh0QWx0ZXJuYXRpdmVz
KHN0cmluZywgZGljdGF0aW9uQWx0ZXJuYXRpdmVzKTsKKyNlbmRpZgorICAgICAgICAvLyBGSVhN
RTogV2UgaWdub3JlIG1vc3QgYXR0cmlidXRlcyBmcm9tIHRoZSBzdHJpbmcsIHNvIGZvciBleGFt
cGxlIGluc2VydGluZyBmcm9tIENoYXJhY3RlciBQYWxldHRlIGxvc2VzIGZvbnQgYW5kIGdseXBo
IHZhcmlhdGlvbiBkYXRhLgorICAgICAgICB0ZXh0ID0gW3N0cmluZyBzdHJpbmddOworICAgIH0g
ZWxzZQorICAgICAgICB0ZXh0ID0gc3RyaW5nOworCisgICAgLy8gaW5zZXJ0VGV4dCBjYW4gYmUg
Y2FsbGVkIGZvciBzZXZlcmFsIHJlYXNvbnM6CisgICAgLy8gLSBJZiBpdCdzIGZyb20gbm9ybWFs
IGtleSBldmVudCBwcm9jZXNzaW5nIChpbmNsdWRpbmcga2V5IGJpbmRpbmdzKSwgd2UgbWF5IG5l
ZWQgdG8gc2F2ZSB0aGUgYWN0aW9uIHRvIHBlcmZvcm0gaXQgbGF0ZXIuCisgICAgLy8gLSBJZiBp
dCdzIGZyb20gYW4gaW5wdXQgbWV0aG9kLCB0aGVuIHdlIHNob3VsZCBpbnNlcnQgdGhlIHRleHQg
bm93LiBXZSBhc3N1bWUgaXQncyBmcm9tIHRoZSBpbnB1dCBtZXRob2QgaWYgd2UgaGF2ZSBtYXJr
ZWQgdGV4dC4KKyAgICAvLyBGSVhNRTogSW4gdGhlb3J5LCB0aGlzIGNvdWxkIGJlIHdyb25nIGZv
ciBzb21lIGlucHV0IG1ldGhvZHMsIHNvIHdlIHNob3VsZCB0cnkgdG8gZmluZCBhbm90aGVyIHdh
eSB0byBkZXRlcm1pbmUgaWYgdGhlIGNhbGwgaXMgZnJvbSB0aGUgaW5wdXQgbWV0aG9kLgorICAg
IC8vIC0gSWYgaXQncyBzZW50IG91dHNpZGUgb2Yga2V5Ym9hcmQgZXZlbnQgcHJvY2Vzc2luZyAo
ZS5nLiBmcm9tIENoYXJhY3RlciBWaWV3ZXIsIG9yIHdoZW4gY29uZmlybWluZyBhbiBpbmxpbmUg
aW5wdXQgYXJlYSB3aXRoIGEgbW91c2UpLAorICAgIC8vIHRoZW4gd2UgYWxzbyBleGVjdXRlIGl0
IGltbWVkaWF0ZWx5LCBhcyB0aGVyZSB3aWxsIGJlIG5vIG90aGVyIGNoYW5jZS4KKyAgICBpZiAo
cGFyYW1ldGVycyAmJiAhaXNGcm9tSW5wdXRNZXRob2QpIHsKKyAgICAgICAgLy8gRklYTUU6IEhh
bmRsZSByZXBsYWNlbWVudFJhbmdlIGluIHRoaXMgY2FzZSwgdG9vLiBJdCdzIGtub3duIHRvIG9j
Y3VyIGluIHByYWN0aWNlIHdoZW4gY2FuY2VsaW5nIFByZXNzIGFuZCBIb2xkIChzZWUgPHJkYXI6
Ly8xMTk0MDY3MD4pLgorICAgICAgICBBU1NFUlQocmVwbGFjZW1lbnRSYW5nZS5sb2NhdGlvbiA9
PSBOU05vdEZvdW5kKTsKKyAgICAgICAgV2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kIGNvbW1hbmQo
Imluc2VydFRleHQ6IiwgdGV4dCk7CisgICAgICAgIHBhcmFtZXRlcnMtPmNvbW1hbmRzLT5hcHBl
bmQoY29tbWFuZCk7CisgICAgICAgIG1fcGFnZS5yZWdpc3RlcktleXByZXNzQ29tbWFuZE5hbWUo
Y29tbWFuZC5jb21tYW5kTmFtZSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBTdHJp
bmcgZXZlbnRUZXh0ID0gdGV4dDsKKyAgICBldmVudFRleHQucmVwbGFjZShOU0JhY2tUYWJDaGFy
YWN0ZXIsIE5TVGFiQ2hhcmFjdGVyKTsgLy8gc2FtZSB0aGluZyBpcyBkb25lIGluIEtleUV2ZW50
TWFjLm1tIGluIFdlYkNvcmUKKyAgICBib29sIGV2ZW50SGFuZGxlZDsKKyAgICBpZiAoIWRpY3Rh
dGlvbkFsdGVybmF0aXZlcy5pc0VtcHR5KCkpCisgICAgICAgIGV2ZW50SGFuZGxlZCA9IG1fcGFn
ZS5pbnNlcnREaWN0YXRlZFRleHQoZXZlbnRUZXh0LCByZXBsYWNlbWVudFJhbmdlLCBkaWN0YXRp
b25BbHRlcm5hdGl2ZXMpOworICAgIGVsc2UKKyAgICAgICAgZXZlbnRIYW5kbGVkID0gbV9wYWdl
Lmluc2VydFRleHQoZXZlbnRUZXh0LCByZXBsYWNlbWVudFJhbmdlKTsKKworICAgIGlmIChwYXJh
bWV0ZXJzKQorICAgICAgICBwYXJhbWV0ZXJzLT5ldmVudEludGVycHJldGF0aW9uSGFkU2lkZUVm
ZmVjdHMgfD0gZXZlbnRIYW5kbGVkOworfQorCitOU1RleHRJbnB1dENvbnRleHQgKldlYlZpZXdJ
bXBsOjppbnB1dENvbnRleHQoKQoreworICAgIFdLVmlld0ludGVycHJldEtleUV2ZW50c1BhcmFt
ZXRlcnMqIHBhcmFtZXRlcnMgPSBtX2ludGVycHJldEtleUV2ZW50c1BhcmFtZXRlcnM7CisKKyAg
ICBpZiAocGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIoKSAmJiAhcGFyYW1ldGVycykK
KyAgICAgICAgcmV0dXJuIFtbV0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyIHNoYXJlZFRleHRJ
bnB1dFdpbmRvd0NvbnRyb2xsZXJdIGlucHV0Q29udGV4dF07CisKKyAgICAvLyBEaXNhYmxlIHRl
eHQgaW5wdXQgbWFjaGluZXJ5IHdoZW4gaW4gbm9uLWVkaXRhYmxlIGNvbnRlbnQuIEFuIGludmlz
aWJsZSBpbmxpbmUgaW5wdXQgYXJlYSBhZmZlY3RzIHBlcmZvcm1hbmNlLCBhbmQgY2FuIHByZXZl
bnQgRXhwb3NlIGZyb20gd29ya2luZy4KKyAgICBpZiAoIW1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlz
Q29udGVudEVkaXRhYmxlKQorICAgICAgICByZXR1cm4gbmlsOworCisgICAgcmV0dXJuIFttX3Zp
ZXcgX3N1cGVySW5wdXRDb250ZXh0XTsKK30KKworTlNSYW5nZSBXZWJWaWV3SW1wbDo6c2VsZWN0
ZWRSYW5nZSgpCit7CisgICAgZXhlY3V0ZVNhdmVkS2V5cHJlc3NDb21tYW5kcygpOworCisgICAg
RWRpdGluZ1JhbmdlIHNlbGVjdGVkUmFuZ2U7CisgICAgbV9wYWdlLmdldFNlbGVjdGVkUmFuZ2Uo
c2VsZWN0ZWRSYW5nZSk7CisKKyAgICBOU1JhbmdlIHJlc3VsdCA9IHNlbGVjdGVkUmFuZ2U7Cisg
ICAgaWYgKHJlc3VsdC5sb2NhdGlvbiA9PSBOU05vdEZvdW5kKQorICAgICAgICBMT0coVGV4dElu
cHV0LCAic2VsZWN0ZWRSYW5nZSAtPiAoTlNOb3RGb3VuZCwgJXUpIiwgcmVzdWx0Lmxlbmd0aCk7
CisgICAgZWxzZQorICAgICAgICBMT0coVGV4dElucHV0LCAic2VsZWN0ZWRSYW5nZSAtPiAoJXUs
ICV1KSIsIHJlc3VsdC5sb2NhdGlvbiwgcmVzdWx0Lmxlbmd0aCk7CisKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitib29sIFdlYlZpZXdJbXBsOjpoYXNNYXJrZWRUZXh0KCkKK3sKKyAgICBXS1Zp
ZXdJbnRlcnByZXRLZXlFdmVudHNQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzID0gbV9pbnRlcnByZXRL
ZXlFdmVudHNQYXJhbWV0ZXJzOworCisgICAgQk9PTCByZXN1bHQ7CisgICAgaWYgKHBhcmFtZXRl
cnMpIHsKKyAgICAgICAgcmVzdWx0ID0gbV9wYWdlLmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRp
b247CisgICAgICAgIGlmIChyZXN1bHQpIHsKKyAgICAgICAgICAgIC8vIEEgc2F2ZWQgY29tbWFu
ZCBjYW4gY29uZmlybSBhIGNvbXBvc2l0aW9uLCBidXQgaXQgY2Fubm90IHN0YXJ0IGEgbmV3IG9u
ZS4KKyAgICAgICAgICAgIGV4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHMoKTsKKyAgICAgICAg
ICAgIHJlc3VsdCA9IG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmhhc0NvbXBvc2l0aW9uOworICAgICAg
ICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgRWRpdGluZ1JhbmdlIG1hcmtlZFJhbmdlOworICAg
ICAgICBtX3BhZ2UuZ2V0TWFya2VkUmFuZ2UobWFya2VkUmFuZ2UpOworICAgICAgICByZXN1bHQg
PSBtYXJrZWRSYW5nZS5sb2NhdGlvbiAhPSBub3RGb3VuZDsKKyAgICB9CisKKyAgICBMT0coVGV4
dElucHV0LCAiaGFzTWFya2VkVGV4dCAtPiAldSIsIHJlc3VsdCk7CisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6dW5tYXJrVGV4dCgpCit7CisgICAgZXhlY3V0ZVNh
dmVkS2V5cHJlc3NDb21tYW5kcygpOworCisgICAgTE9HKFRleHRJbnB1dCwgInVubWFya1RleHQi
KTsKKworICAgIC8vIFVzZSBwb2ludGVyIHRvIGdldCBwYXJhbWV0ZXJzIHBhc3NlZCB0byB1cyBi
eSB0aGUgY2FsbGVyIG9mIGludGVycHJldEtleUV2ZW50cy4KKyAgICBXS1ZpZXdJbnRlcnByZXRL
ZXlFdmVudHNQYXJhbWV0ZXJzKiBwYXJhbWV0ZXJzID0gbV9pbnRlcnByZXRLZXlFdmVudHNQYXJh
bWV0ZXJzOworCisgICAgaWYgKHBhcmFtZXRlcnMpIHsKKyAgICAgICAgcGFyYW1ldGVycy0+ZXZl
bnRJbnRlcnByZXRhdGlvbkhhZFNpZGVFZmZlY3RzID0gdHJ1ZTsKKyAgICAgICAgcGFyYW1ldGVy
cy0+Y29uc3VtZWRCeUlNID0gZmFsc2U7CisgICAgfQorCisgICAgbV9wYWdlLmNvbmZpcm1Db21w
b3NpdGlvbigpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjpzZXRNYXJrZWRUZXh0KGlkIHN0cmlu
ZywgTlNSYW5nZSBuZXdTZWxlY3RlZFJhbmdlLCBOU1JhbmdlIHJlcGxhY2VtZW50UmFuZ2UpCit7
CisgICAgZXhlY3V0ZVNhdmVkS2V5cHJlc3NDb21tYW5kcygpOworCisgICAgQk9PTCBpc0F0dHJp
YnV0ZWRTdHJpbmcgPSBbc3RyaW5nIGlzS2luZE9mQ2xhc3M6W05TQXR0cmlidXRlZFN0cmluZyBj
bGFzc11dOworICAgIEFTU0VSVChpc0F0dHJpYnV0ZWRTdHJpbmcgfHwgW3N0cmluZyBpc0tpbmRP
ZkNsYXNzOltOU1N0cmluZyBjbGFzc11dKTsKKworICAgIExPRyhUZXh0SW5wdXQsICJzZXRNYXJr
ZWRUZXh0OlwiJUBcIiBzZWxlY3RlZFJhbmdlOigldSwgJXUpIiwgaXNBdHRyaWJ1dGVkU3RyaW5n
ID8gW3N0cmluZyBzdHJpbmddIDogc3RyaW5nLCBuZXdTZWxlY3RlZFJhbmdlLmxvY2F0aW9uLCBu
ZXdTZWxlY3RlZFJhbmdlLmxlbmd0aCk7CisKKyAgICAvLyBVc2UgcG9pbnRlciB0byBnZXQgcGFy
YW1ldGVycyBwYXNzZWQgdG8gdXMgYnkgdGhlIGNhbGxlciBvZiBpbnRlcnByZXRLZXlFdmVudHMu
CisgICAgV0tWaWV3SW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVycyogcGFyYW1ldGVycyA9IG1f
aW50ZXJwcmV0S2V5RXZlbnRzUGFyYW1ldGVyczsKKworICAgIGlmIChwYXJhbWV0ZXJzKSB7Cisg
ICAgICAgIHBhcmFtZXRlcnMtPmV2ZW50SW50ZXJwcmV0YXRpb25IYWRTaWRlRWZmZWN0cyA9IHRy
dWU7CisgICAgICAgIHBhcmFtZXRlcnMtPmNvbnN1bWVkQnlJTSA9IGZhbHNlOworICAgIH0KKyAg
ICAKKyAgICBWZWN0b3I8V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+IHVuZGVybGluZXM7
CisgICAgTlNTdHJpbmcgKnRleHQ7CisKKyAgICBpZiAoaXNBdHRyaWJ1dGVkU3RyaW5nKSB7Cisg
ICAgICAgIC8vIEZJWE1FOiBXZSBpZ25vcmUgbW9zdCBhdHRyaWJ1dGVzIGZyb20gdGhlIHN0cmlu
Zywgc28gYW4gaW5wdXQgbWV0aG9kIGNhbm5vdCBzcGVjaWZ5IGUuZy4gYSBmb250IG9yIGEgZ2x5
cGggdmFyaWF0aW9uLgorICAgICAgICB0ZXh0ID0gW3N0cmluZyBzdHJpbmddOworICAgICAgICBl
eHRyYWN0VW5kZXJsaW5lcyhzdHJpbmcsIHVuZGVybGluZXMpOworICAgIH0gZWxzZQorICAgICAg
ICB0ZXh0ID0gc3RyaW5nOworCisgICAgaWYgKG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlzSW5QYXNz
d29yZEZpZWxkKSB7CisgICAgICAgIC8vIEluIHBhc3N3b3JkIGZpZWxkcywgd2Ugb25seSBhbGxv
dyBBU0NJSSBkZWFkIGtleXMsIGFuZCBkb24ndCBhbGxvdyBpbmxpbmUgaW5wdXQsIG1hdGNoaW5n
IE5TU2VjdXJlVGV4dElucHV0RmllbGQuCisgICAgICAgIC8vIEFsbG93aW5nIEFTQ0lJIGRlYWQg
a2V5cyBpcyBuZWNlc3NhcnkgdG8gZW5hYmxlIGZ1bGwgUm9tYW4gaW5wdXQgd2hlbiB1c2luZyBh
IFZpZXRuYW1lc2Uga2V5Ym9hcmQuCisgICAgICAgIEFTU0VSVCghbV9wYWdlLmVkaXRvclN0YXRl
KCkuaGFzQ29tcG9zaXRpb24pOworICAgICAgICBub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2Nh
cmRlZENvbXBvc2l0aW9uKCk7CisgICAgICAgIGlmIChbdGV4dCBsZW5ndGhdID09IDEgJiYgW1t0
ZXh0IGRlY29tcG9zZWRTdHJpbmdXaXRoQ2Fub25pY2FsTWFwcGluZ10gY2hhcmFjdGVyQXRJbmRl
eDowXSA8IDB4ODApIHsKKyAgICAgICAgICAgIG1fcGFnZS5pbnNlcnRUZXh0KHRleHQsIHJlcGxh
Y2VtZW50UmFuZ2UpOworICAgICAgICB9IGVsc2UKKyAgICAgICAgICAgIE5TQmVlcCgpOworICAg
ICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9wYWdlLnNldENvbXBvc2l0aW9uKHRleHQsIHVu
ZGVybGluZXMsIG5ld1NlbGVjdGVkUmFuZ2UsIHJlcGxhY2VtZW50UmFuZ2UpOworfQorCitOU1Jh
bmdlIFdlYlZpZXdJbXBsOjptYXJrZWRSYW5nZSgpCit7CisgICAgZXhlY3V0ZVNhdmVkS2V5cHJl
c3NDb21tYW5kcygpOworCisgICAgRWRpdGluZ1JhbmdlIG1hcmtlZFJhbmdlOworICAgIG1fcGFn
ZS5nZXRNYXJrZWRSYW5nZShtYXJrZWRSYW5nZSk7CisKKyAgICBOU1JhbmdlIHJlc3VsdCA9IG1h
cmtlZFJhbmdlOworICAgIGlmIChyZXN1bHQubG9jYXRpb24gPT0gTlNOb3RGb3VuZCkKKyAgICAg
ICAgTE9HKFRleHRJbnB1dCwgIm1hcmtlZFJhbmdlIC0+IChOU05vdEZvdW5kLCAldSkiLCByZXN1
bHQubGVuZ3RoKTsKKyAgICBlbHNlCisgICAgICAgIExPRyhUZXh0SW5wdXQsICJtYXJrZWRSYW5n
ZSAtPiAoJXUsICV1KSIsIHJlc3VsdC5sb2NhdGlvbiwgcmVzdWx0Lmxlbmd0aCk7CisKKyAgICBy
ZXR1cm4gcmVzdWx0OworfQorCitOU0F0dHJpYnV0ZWRTdHJpbmcgKldlYlZpZXdJbXBsOjphdHRy
aWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZShOU1JhbmdlIG5zUmFuZ2UsIE5TUmFuZ2VQ
b2ludGVyIGFjdHVhbFJhbmdlKQoreworICAgIGV4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHMo
KTsKKworICAgIGlmICghbV9wYWdlLmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGUpIHsK
KyAgICAgICAgTE9HKFRleHRJbnB1dCwgImF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9tUmFuZ2U6KCV1
LCAldSkgLT4gbmlsIiwgbnNSYW5nZS5sb2NhdGlvbiwgbnNSYW5nZS5sZW5ndGgpOworICAgICAg
ICByZXR1cm4gbmlsOworICAgIH0KKworICAgIGlmIChtX3BhZ2UuZWRpdG9yU3RhdGUoKS5pc0lu
UGFzc3dvcmRGaWVsZCkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIEF0dHJpYnV0ZWRTdHJp
bmcgcmVzdWx0OworICAgIG1fcGFnZS5nZXRBdHRyaWJ1dGVkU3Vic3RyaW5nRnJvbVJhbmdlKG5z
UmFuZ2UsIHJlc3VsdCk7CisKKyAgICBpZiAoYWN0dWFsUmFuZ2UpIHsKKyAgICAgICAgKmFjdHVh
bFJhbmdlID0gbnNSYW5nZTsKKyAgICAgICAgYWN0dWFsUmFuZ2UtPmxlbmd0aCA9IFtyZXN1bHQu
c3RyaW5nIGxlbmd0aF07CisgICAgfQorCisgICAgTE9HKFRleHRJbnB1dCwgImF0dHJpYnV0ZWRT
dWJzdHJpbmdGcm9tUmFuZ2U6KCV1LCAldSkgLT4gXCIlQFwiIiwgbnNSYW5nZS5sb2NhdGlvbiwg
bnNSYW5nZS5sZW5ndGgsIFtyZXN1bHQuc3RyaW5nIHN0cmluZ10pOworICAgIHJldHVybiBbW3Jl
c3VsdC5zdHJpbmcgcmV0YWluXSBhdXRvcmVsZWFzZV07Cit9CisKK05TVUludGVnZXIgV2ViVmll
d0ltcGw6OmNoYXJhY3RlckluZGV4Rm9yUG9pbnQoTlNQb2ludCB0aGVQb2ludCkKK3sKKyAgICBl
eGVjdXRlU2F2ZWRLZXlwcmVzc0NvbW1hbmRzKCk7CisKKyAgICBOU1dpbmRvdyAqd2luZG93ID0g
bV92aWV3LndpbmRvdzsKKyAgICAKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIK
KyAgICBpZiAod2luZG93KQorICAgICAgICB0aGVQb2ludCA9IFt3aW5kb3cgY29udmVydFNjcmVl
blRvQmFzZTp0aGVQb2ludF07CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisgICAgdGhl
UG9pbnQgPSBbbV92aWV3IGNvbnZlcnRQb2ludDp0aGVQb2ludCBmcm9tVmlldzpuaWxdOyAgLy8g
dGhlIHBvaW50IGlzIHJlbGF0aXZlIHRvIHRoZSBtYWluIGZyYW1lCisgICAgCisgICAgdWludDY0
X3QgcmVzdWx0ID0gbV9wYWdlLmNoYXJhY3RlckluZGV4Rm9yUG9pbnQoV2ViQ29yZTo6SW50UG9p
bnQodGhlUG9pbnQpKTsKKyAgICBpZiAocmVzdWx0ID09IG5vdEZvdW5kKQorICAgICAgICByZXN1
bHQgPSBOU05vdEZvdW5kOworICAgIExPRyhUZXh0SW5wdXQsICJjaGFyYWN0ZXJJbmRleEZvclBv
aW50OiglZiwgJWYpIC0+ICV1IiwgdGhlUG9pbnQueCwgdGhlUG9pbnQueSwgcmVzdWx0KTsKKyAg
ICByZXR1cm4gcmVzdWx0OworfQorCitOU1JlY3QgV2ViVmlld0ltcGw6OmZpcnN0UmVjdEZvckNo
YXJhY3RlclJhbmdlKE5TUmFuZ2UgdGhlUmFuZ2UsIE5TUmFuZ2VQb2ludGVyIGFjdHVhbFJhbmdl
KQoreworICAgIGV4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHMoKTsKKworICAgIC8vIEp1c3Qg
dG8gbWF0Y2ggTlNUZXh0VmlldydzIGJlaGF2aW9yLiBSZWdyZXNzaW9uIHRlc3RzIGNhbm5vdCBk
ZXRlY3QgdGhpczsKKyAgICAvLyB0byByZXByb2R1Y2UsIHVzZSBhIHRlc3QgYXBwbGljYXRpb24g
ZnJvbSBodHRwOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NjgyCisgICAgLy8g
KHR5cGUgc29tZXRoaW5nOyB0cnkgcmFuZ2VzICgxLCAtMSkgYW5kICgyLCAtMSkuCisgICAgaWYg
KCh0aGVSYW5nZS5sb2NhdGlvbiArIHRoZVJhbmdlLmxlbmd0aCA8IHRoZVJhbmdlLmxvY2F0aW9u
KSAmJiAodGhlUmFuZ2UubG9jYXRpb24gKyB0aGVSYW5nZS5sZW5ndGggIT0gMCkpCisgICAgICAg
IHRoZVJhbmdlLmxlbmd0aCA9IDA7CisKKyAgICBpZiAodGhlUmFuZ2UubG9jYXRpb24gPT0gTlNO
b3RGb3VuZCkgeworICAgICAgICBpZiAoYWN0dWFsUmFuZ2UpCisgICAgICAgICAgICAqYWN0dWFs
UmFuZ2UgPSB0aGVSYW5nZTsKKyAgICAgICAgTE9HKFRleHRJbnB1dCwgImZpcnN0UmVjdEZvckNo
YXJhY3RlclJhbmdlOihOU05vdEZvdW5kLCAldSkgLT4gTlNaZXJvUmVjdCIsIHRoZVJhbmdlLmxl
bmd0aCk7CisgICAgICAgIHJldHVybiBOU1plcm9SZWN0OworICAgIH0KKworICAgIE5TUmVjdCBy
ZXN1bHRSZWN0ID0gbV9wYWdlLmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKHRoZVJhbmdlKTsK
KyAgICByZXN1bHRSZWN0ID0gW21fdmlldyBjb252ZXJ0UmVjdDpyZXN1bHRSZWN0IHRvVmlldzpu
aWxdOworICAgIHJlc3VsdFJlY3QgPSBbbV92aWV3LndpbmRvdyBjb252ZXJ0UmVjdFRvU2NyZWVu
OnJlc3VsdFJlY3RdOworCisgICAgaWYgKGFjdHVhbFJhbmdlKSB7CisgICAgICAgIC8vIEZJWE1F
OiBVcGRhdGUgYWN0dWFsUmFuZ2UgdG8gbWF0Y2ggdGhlIHJhbmdlIG9mIGZpcnN0IHJlY3QuCisg
ICAgICAgICphY3R1YWxSYW5nZSA9IHRoZVJhbmdlOworICAgIH0KKworICAgIExPRyhUZXh0SW5w
dXQsICJmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZTooJXUsICV1KSAtPiAoJWYsICVmLCAlZiwg
JWYpIiwgdGhlUmFuZ2UubG9jYXRpb24sIHRoZVJhbmdlLmxlbmd0aCwgcmVzdWx0UmVjdC5vcmln
aW4ueCwgcmVzdWx0UmVjdC5vcmlnaW4ueSwgcmVzdWx0UmVjdC5zaXplLndpZHRoLCByZXN1bHRS
ZWN0LnNpemUuaGVpZ2h0KTsKKyAgICByZXR1cm4gcmVzdWx0UmVjdDsKK30KKworYm9vbCBXZWJW
aWV3SW1wbDo6cGVyZm9ybUtleUVxdWl2YWxlbnQoTlNFdmVudCAqZXZlbnQpCit7CisgICAgaWYg
KGlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQorICAgICAgICByZXR1cm4gTk87CisKKyAgICAvLyBU
aGVyZSdzIGEgY2hhbmNlIHRoYXQgcmVzcG9uZGluZyB0byB0aGlzIGV2ZW50IHdpbGwgcnVuIGEg
bmVzdGVkIGV2ZW50IGxvb3AsIGFuZAorICAgIC8vIGZldGNoaW5nIGEgbmV3IGV2ZW50IG1pZ2h0
IHJlbGVhc2UgdGhlIG9sZCBvbmUuIFJldGFpbmluZyBhbmQgdGhlbiBhdXRvcmVsZWFzaW5nCisg
ICAgLy8gdGhlIGN1cnJlbnQgZXZlbnQgcHJldmVudHMgdGhhdCBmcm9tIGNhdXNpbmcgYSBwcm9i
bGVtIGluc2lkZSBXZWJLaXQgb3IgQXBwS2l0IGNvZGUuCisgICAgW1tldmVudCByZXRhaW5dIGF1
dG9yZWxlYXNlXTsKKworICAgIC8vIFdlIGdldCBFc2Mga2V5IGhlcmUgYWZ0ZXIgcHJvY2Vzc2lu
ZyBlaXRoZXIgRXNjIG9yIENtZCtwZXJpb2QuIFRoZSBmb3JtZXIgc3RhcnRzIGFzIGEga2V5RG93
biwgYW5kIHRoZSBsYXR0ZXIgc3RhcnRzIGFzIGEga2V5IGVxdWl2YWxlbnQsCisgICAgLy8gYnV0
IGJvdGggZ2V0IHRyYW5zZm9ybWVkIHRvIGEgY2FuY2VsT3BlcmF0aW9uOiBjb21tYW5kLCBleGVj
dXRpbmcgd2hpY2ggcGFzc2VzIGFuIEVzYyBrZXkgZXZlbnQgdG8gLXBlcmZvcm1LZXlFcXVpdmFs
ZW50Oi4KKyAgICAvLyBEb24ndCBpbnRlcnByZXQgdGhpcyBldmVudCBhZ2FpbiwgYXZvaWRpbmcg
cmUtZW50cmFuY3kgYW5kIGluZmluaXRlIGxvb3BzLgorICAgIGlmIChbW2V2ZW50IGNoYXJhY3Rl
cnNJZ25vcmluZ01vZGlmaWVyc10gaXNFcXVhbFRvU3RyaW5nOkAiXGUiXSAmJiAhKFtldmVudCBt
b2RpZmllckZsYWdzXSAmIE5TRGV2aWNlSW5kZXBlbmRlbnRNb2RpZmllckZsYWdzTWFzaykpCisg
ICAgICAgIHJldHVybiBbbV92aWV3IF9zdXBlclBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsK
KworICAgIGlmIChtX2tleURvd25FdmVudEJlaW5nUmVzZW50KSB7CisgICAgICAgIC8vIFdlYkNv
cmUgaGFzIGFscmVhZHkgc2VlbiB0aGUgZXZlbnQsIG5vIG5lZWQgZm9yIGN1c3RvbSBwcm9jZXNz
aW5nLgorICAgICAgICAvLyBOb3RlIHRoYXQgd2UgY2FuIGdldCBtdWx0aXBsZSBldmVudHMgZm9y
IGVhY2ggZXZlbnQgYmVpbmcgcmUtc2VudC4gRm9yIGV4YW1wbGUsIGZvciBDbWQrJz0nIEFwcEtp
dAorICAgICAgICAvLyBmaXJzdCBwZXJmb3JtcyB0aGUgb3JpZ2luYWwga2V5IGVxdWl2YWxlbnQs
IGFuZCBpZiB0aGF0IGlzbid0IGhhbmRsZWQsIGl0IGRpc3BhdGNoZXMgYSBzeW50aGV0aWMgQ21k
KycrJy4KKyAgICAgICAgcmV0dXJuIFttX3ZpZXcgX3N1cGVyUGVyZm9ybUtleUVxdWl2YWxlbnQ6
ZXZlbnRdOworICAgIH0KKworICAgIEFTU0VSVChldmVudCA9PSBbTlNBcHAgY3VycmVudEV2ZW50
XSk7CisKKyAgICBkaXNhYmxlQ29tcGxleFRleHRJbnB1dElmTmVjZXNzYXJ5KCk7CisKKyAgICAv
LyBQYXNzIGtleSBjb21ib3MgdGhyb3VnaCBXZWJDb3JlIGlmIHRoZXJlIGlzIGEga2V5IGJpbmRp
bmcgYXZhaWxhYmxlIGZvcgorICAgIC8vIHRoaXMgZXZlbnQuIFRoaXMgbGV0cyB3ZWJwYWdlcyBo
YXZlIGEgY3JhY2sgYXQgaW50ZXJjZXB0aW5nIGtleS1tb2RpZmllZCBrZXlwcmVzc2VzLgorICAg
IC8vIEZJWE1FOiBXaHkgaXMgdGhlIGZpcnN0UmVzcG9uZGVyIGNoZWNrIG5lZWRlZD8KKyAgICBp
ZiAobV92aWV3ID09IG1fdmlldy53aW5kb3cuZmlyc3RSZXNwb25kZXIpIHsKKyAgICAgICAgVmVj
dG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4gY29tbWFuZHM7CisgICAgICAgIEJPT0wgaGFu
ZGxlZEJ5SW5wdXRNZXRob2QgPSBpbnRlcnByZXRLZXlFdmVudChldmVudCwgY29tbWFuZHMpOwor
ICAgICAgICBtX3BhZ2UuaGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50
KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFuZHMpKTsKKyAgICAgICAgcmV0dXJu
IFlFUzsKKyAgICB9CisgICAgCisgICAgcmV0dXJuIFttX3ZpZXcgX3N1cGVyUGVyZm9ybUtleUVx
dWl2YWxlbnQ6ZXZlbnRdOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjprZXlVcChOU0V2ZW50ICp0
aGVFdmVudCkKK3sKKyAgICBpZiAoaWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIExPRyhUZXh0SW5wdXQsICJrZXlVcDolcCAlQCIsIHRoZUV2ZW50LCB0aGVF
dmVudCk7CisgICAgLy8gV2UgZG9uJ3QgaW50ZXJwcmV0IHRoZSBrZXlVcCBldmVudCwgYXMgdGhp
cyBicmVha3Mga2V5IGJpbmRpbmdzIChzZWUgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMzAxMDA+KS4KKyAgICBtX3BhZ2UuaGFuZGxlS2V5Ym9hcmRFdmVudChOYXRp
dmVXZWJLZXlib2FyZEV2ZW50KHRoZUV2ZW50LCBmYWxzZSwgVmVjdG9yPFdlYkNvcmU6OktleXBy
ZXNzQ29tbWFuZD4oKSkpOworfQorCit2b2lkIFdlYlZpZXdJbXBsOjprZXlEb3duKE5TRXZlbnQg
KnRoZUV2ZW50KQoreworICAgIGlmIChpZ25vcmVzTm9uV2hlZWxFdmVudHMoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgTE9HKFRleHRJbnB1dCwgImtleURvd246JXAgJUAlcyIsIHRoZUV2ZW50
LCB0aGVFdmVudCwgKHRoZUV2ZW50ID09IG1fa2V5RG93bkV2ZW50QmVpbmdSZXNlbnQpID8gIiAo
cmUtc2VudCkiIDogIiIpOworCisgICAgLy8gVGhlcmUncyBhIGNoYW5jZSB0aGF0IHJlc3BvbmRp
bmcgdG8gdGhpcyBldmVudCB3aWxsIHJ1biBhIG5lc3RlZCBldmVudCBsb29wLCBhbmQKKyAgICAv
LyBmZXRjaGluZyBhIG5ldyBldmVudCBtaWdodCByZWxlYXNlIHRoZSBvbGQgb25lLiBSZXRhaW5p
bmcgYW5kIHRoZW4gYXV0b3JlbGVhc2luZworICAgIC8vIHRoZSBjdXJyZW50IGV2ZW50IHByZXZl
bnRzIHRoYXQgZnJvbSBjYXVzaW5nIGEgcHJvYmxlbSBpbnNpZGUgV2ViS2l0IG9yIEFwcEtpdCBj
b2RlLgorICAgIFtbdGhlRXZlbnQgcmV0YWluXSBhdXRvcmVsZWFzZV07CisKKyAgICBpZiAodHJ5
SGFuZGxlUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURvd24odGhlRXZlbnQpKSB7CisgICAgICAg
IExPRyhUZXh0SW5wdXQsICIuLi5oYW5kbGVkIGJ5IHBsdWctaW4iKTsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKworICAgIC8vIFdlIGNvdWxkIGJlIHJlY2VpdmluZyBhIGtleSBkb3duIGZyb20g
QXBwS2l0IGlmIHdlIGhhdmUgcmUtc2VudCBhbiBldmVudAorICAgIC8vIHRoYXQgbWFwcyB0byBh
biBhY3Rpb24gdGhhdCBpcyBjdXJyZW50bHkgdW5hdmFpbGFibGUgKGZvciBleGFtcGxlIGEgY29w
eSB3aGVuCisgICAgLy8gdGhlcmUgaXMgbm8gcmFuZ2Ugc2VsZWN0aW9uKS4KKyAgICAvLyBJZiB0
aGlzIGlzIHRoZSBjYXNlIHdlIHNob3VsZCBpZ25vcmUgdGhlIGtleSBkb3duLgorICAgIGlmICht
X2tleURvd25FdmVudEJlaW5nUmVzZW50ID09IHRoZUV2ZW50KSB7CisgICAgICAgIFttX3ZpZXcg
X3N1cGVyS2V5RG93bjp0aGVFdmVudF07CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBW
ZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiBjb21tYW5kczsKKyAgICBCT09MIGhhbmRs
ZWRCeUlucHV0TWV0aG9kID0gaW50ZXJwcmV0S2V5RXZlbnQodGhlRXZlbnQsIGNvbW1hbmRzKTsK
KyAgICBpZiAoIWNvbW1hbmRzLmlzRW1wdHkoKSkgeworICAgICAgICAvLyBBbiBpbnB1dCBtZXRo
b2QgbWF5IG1ha2Ugc2V2ZXJhbCBhY3Rpb25zIHBlciBrZXlwcmVzcy4gRm9yIGV4YW1wbGUsIHBy
ZXNzaW5nIFJldHVybiB3aXRoIEtvcmVhbiBJTSBib3RoIGNvbmZpcm1zIGl0IGFuZCBzZW5kcyBh
IG5ld2xpbmUuCisgICAgICAgIC8vIElNLWxpa2UgYWN0aW9ucyBhcmUgaGFuZGxlZCBpbW1lZGlh
dGVseSAoc28gdGhlIHJldHVybiB2YWx1ZSBmcm9tIFVJIHByb2Nlc3MgaXMgdHJ1ZSksIGJ1dCB0
aGVyZSBhcmUgc2F2ZWQgY29tbWFuZHMgdGhhdAorICAgICAgICAvLyBzaG91bGQgYmUgaGFuZGxl
ZCBsaWtlIG5vcm1hbCB0ZXh0IGlucHV0IGFmdGVyIERPTSBldmVudCBkaXNwYXRjaC4KKyAgICAg
ICAgaGFuZGxlZEJ5SW5wdXRNZXRob2QgPSBOTzsKKyAgICB9CisKKyAgICBtX3BhZ2UuaGFuZGxl
S2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KHRoZUV2ZW50LCBoYW5kbGVkQnlJ
bnB1dE1ldGhvZCwgY29tbWFuZHMpKTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6ZmxhZ3NDaGFu
Z2VkKE5TRXZlbnQgKnRoZUV2ZW50KQoreworICAgIGlmIChpZ25vcmVzTm9uV2hlZWxFdmVudHMo
KSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTE9HKFRleHRJbnB1dCwgImZsYWdzQ2hhbmdlZDol
cCAlQCIsIHRoZUV2ZW50LCB0aGVFdmVudCk7CisKKyAgICAvLyBUaGVyZSdzIGEgY2hhbmNlIHRo
YXQgcmVzcG9uZGluZyB0byB0aGlzIGV2ZW50IHdpbGwgcnVuIGEgbmVzdGVkIGV2ZW50IGxvb3As
IGFuZAorICAgIC8vIGZldGNoaW5nIGEgbmV3IGV2ZW50IG1pZ2h0IHJlbGVhc2UgdGhlIG9sZCBv
bmUuIFJldGFpbmluZyBhbmQgdGhlbiBhdXRvcmVsZWFzaW5nCisgICAgLy8gdGhlIGN1cnJlbnQg
ZXZlbnQgcHJldmVudHMgdGhhdCBmcm9tIGNhdXNpbmcgYSBwcm9ibGVtIGluc2lkZSBXZWJLaXQg
b3IgQXBwS2l0IGNvZGUuCisgICAgW1t0aGVFdmVudCByZXRhaW5dIGF1dG9yZWxlYXNlXTsKKwor
ICAgIHVuc2lnbmVkIHNob3J0IGtleUNvZGUgPSBbdGhlRXZlbnQga2V5Q29kZV07CisKKyAgICAv
LyBEb24ndCBtYWtlIGFuIGV2ZW50IGZyb20gdGhlIG51bSBsb2NrIGFuZCBmdW5jdGlvbiBrZXlz
CisgICAgaWYgKCFrZXlDb2RlIHx8IGtleUNvZGUgPT0gMTAgfHwga2V5Q29kZSA9PSA2MykKKyAg
ICAgICAgcmV0dXJuOworCisgICAgbV9wYWdlLmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2Vi
S2V5Ym9hcmRFdmVudCh0aGVFdmVudCwgZmFsc2UsIFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0Nv
bW1hbmQ+KCkpKTsKK30KKworI2VuZGlmIC8vIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkK
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQppbmRleCA0MDAw
Y2Y5Li5kNGYwYWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1Bh
Z2VDbGllbnRJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNs
aWVudEltcGwubW0KQEAgLTQzNSw3ICs0MzUsNyBAQCBJbnRSZWN0IFBhZ2VDbGllbnRJbXBsOjpy
b290Vmlld1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpCiAKIHZvaWQgUGFnZUNsaWVudElt
cGw6OmRvbmVXaXRoS2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYgZXZlbnQs
IGJvb2wgZXZlbnRXYXNIYW5kbGVkKQogewotICAgIFttX3drVmlldyBfZG9uZVdpdGhLZXlFdmVu
dDpldmVudC5uYXRpdmVFdmVudCgpIGV2ZW50V2FzSGFuZGxlZDpldmVudFdhc0hhbmRsZWRdOwor
ICAgIG1faW1wbC0+ZG9uZVdpdGhLZXlFdmVudChldmVudC5uYXRpdmVFdmVudCgpLCBldmVudFdh
c0hhbmRsZWQpOwogfQogCiBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IFBhZ2VDbGllbnRJbXBs
OjpjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UpCg==
</data>
<flag name="review"
          id="289498"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264405</attachid>
            <date>2015-10-30 11:43:02 -0700</date>
            <delta_ts>2015-10-30 11:53:23 -0700</delta_ts>
            <desc>Part 15 - printing and random bits</desc>
            <filename>15.diff</filename>
            <type>text/plain</type>
            <size>22168</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCA1ZTBjYWE1Li5hZjBjYWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsNTAg
QEAKIDIwMTUtMTAtMzAgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CiAK
KyAgICAgICAgV0tWaWV3IGJlaW5nIGluc2lkZSBXS1dlYlZpZXcgbGVhZHMgdG8gd2VpcmQgQVBJ
IGlzc3VlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTUwMTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBfd2FudHNL
ZXlEb3duRm9yRXZlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBhY2NlcHRzRmlyc3RNb3VzZTpd
KToKKyAgICAgICAgKC1bV0tWaWV3IHNob3VsZERlbGF5V2luZG93T3JkZXJpbmdGb3JFdmVudDpd
KToKKyAgICAgICAgKC1bV0tWaWV3IHZhbGlkQXR0cmlidXRlc0Zvck1hcmtlZFRleHRdKToKKyAg
ICAgICAgKC1bV0tWaWV3IF93aW5kb3dSZXNpemVNb3VzZUxvY2F0aW9uSXNJblZpc2libGVTY3Jv
bGxlclRodW1iOl0pOgorICAgICAgICAoLVtXS1ZpZXcgZHJhd1JlY3Q6XSk6CisgICAgICAgICgt
W1dLVmlldyBpc09wYXF1ZV0pOgorICAgICAgICAoLVtXS1ZpZXcgbW91c2VEb3duQ2FuTW92ZVdp
bmRvd10pOgorICAgICAgICAoLVtXS1ZpZXcgdmlld0RpZEhpZGVdKToKKyAgICAgICAgKC1bV0tW
aWV3IHZpZXdEaWRVbmhpZGVdKToKKyAgICAgICAgKC1bV0tWaWV3IF9hY3RpdmVTcGFjZURpZENo
YW5nZTpdKToKKyAgICAgICAgKC1bV0tWaWV3IGhpdFRlc3Q6XSk6CisgICAgICAgICgtW1dLVmll
dyB3YW50c1VwZGF0ZUxheWVyXSk6CisgICAgICAgICgtW1dLVmlldyBjYW5DaGFuZ2VGcmFtZUxh
eW91dDpdKToKKyAgICAgICAgKC1bV0tWaWV3IHByaW50T3BlcmF0aW9uV2l0aFByaW50SW5mbzpm
b3JGcmFtZTpdKToKKyAgICAgICAgKCtbV0tWaWV3IGhpZGVXb3JkRGVmaW5pdGlvbldpbmRvd10p
OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6d2FudHNVcGRhdGVMYXllcik6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjptb3VzZURvd25DYW5Nb3ZlV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OndhbnRzS2V5RG93bkZvckV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OmxheWVySG9zdGluZ1ZpZXcpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmlzT3Bh
cXVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFjY2VwdHNGaXJzdE1vdXNlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRyYXdSZWN0KToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OmNhbkNoYW5nZUZyYW1lTGF5b3V0KToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnByaW50T3BlcmF0aW9uV2l0aFByaW50SW5mbyk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpzaG91bGREZWxheVdpbmRvd09yZGVyaW5nRm9yRXZlbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93UmVzaXplTW91c2VMb2NhdGlvbklzSW5W
aXNpYmxlU2Nyb2xsZXJUaHVtYik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3
RGlkSGlkZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp2aWV3RGlkVW5oaWRlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFjdGl2ZVNwYWNlRGlkQ2hhbmdlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhpdFRlc3QpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6aGlkZVdvcmREZWZpbml0aW9uV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnZhbGlkQXR0cmlidXRlc0Zvck1hcmtlZFRleHQpOgorICAgICAgICBQcmlu
dGluZyBhbmQgcmFuZG9tIGJpdHMuCisKKzIwMTUtMTAtMzAgIFRpbSBIb3J0b24gIDx0aW1vdGh5
X2hvcnRvbkBhcHBsZS5jb20+CisKICAgICAgICAgRml4IHRoZSBidWlsZAogCiAgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL21hYy9XS1ZpZXcubW0KaW5kZXggNjc4NTEyMi4uODA4YTZhMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtNTMsNyArNTMsNiBAQAogI2ltcG9y
dCAiV0tBUElDYXN0LmgiCiAjaW1wb3J0ICJXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmgi
CiAjaW1wb3J0ICJXS0xheW91dE1vZGUuaCIKLSNpbXBvcnQgIldLUHJpbnRpbmdWaWV3LmgiCiAj
aW1wb3J0ICJXS1Byb2Nlc3NQb29sSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLU3RyaW5nQ0YuaCIK
ICNpbXBvcnQgIldLVGV4dElucHV0V2luZG93Q29udHJvbGxlci5oIgpAQCAtNzcsNyArNzYsNiBA
QAogI2ltcG9ydCA8V2ViQ29yZS9Db2xvck1hYy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Db3JlR3Jh
cGhpY3NTUEkuaD4KICNpbXBvcnQgPFdlYkNvcmUvRGF0YURldGVjdG9yc1NQSS5oPgotI2ltcG9y
dCA8V2ViQ29yZS9EaWN0aW9uYXJ5TG9va3VwLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdDb250
cm9sbGVyLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0RyYWdEYXRhLmg+CiAjaW1wb3J0IDxXZWJDb3Jl
L0Zsb2F0UmVjdC5oPgpAQCAtNTQ2LDEzICs1NDQsOSBAQCBTb21lIG90aGVyIGVkaXRpbmctcmVs
YXRlZCBtZXRob2RzIHN0aWxsIHVuaW1wbGVtZW50ZWQ6CiAgICAgX2RhdGEtPl9pbXBsLT5jYXBp
dGFsaXplV29yZCgpOwogfQogCi0vLyBFdmVudHMKLQotLy8gT3ZlcnJpZGUgdGhpcyBzbyB0aGF0
IEFwcEtpdCB3aWxsIHNlbmQgdXMgYXJyb3cga2V5cyBhcyBrZXkgZG93biBldmVudHMgc28gd2Ug
Y2FuCi0vLyBzdXBwb3J0IHRoZW0gdmlhIHRoZSBrZXkgYmluZGluZ3MgbWVjaGFuaXNtLgogLSAo
Qk9PTClfd2FudHNLZXlEb3duRm9yRXZlbnQ6KE5TRXZlbnQgKilldmVudAogewotICAgIHJldHVy
biBZRVM7CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+d2FudHNLZXlEb3duRm9yRXZlbnQoZXZl
bnQpOwogfQogCiAjaWYgVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQpAQCAtNjk2LDM5ICs2
OTAsMTIgQEAgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2Vk
SW50ZXJuYWwpCiAKIC0gKEJPT0wpYWNjZXB0c0ZpcnN0TW91c2U6KE5TRXZlbnQgKilldmVudAog
ewotICAgIC8vIFRoZXJlJ3MgYSBjaGFuY2UgdGhhdCByZXNwb25kaW5nIHRvIHRoaXMgZXZlbnQg
d2lsbCBydW4gYSBuZXN0ZWQgZXZlbnQgbG9vcCwgYW5kCi0gICAgLy8gZmV0Y2hpbmcgYSBuZXcg
ZXZlbnQgbWlnaHQgcmVsZWFzZSB0aGUgb2xkIG9uZS4gUmV0YWluaW5nIGFuZCB0aGVuIGF1dG9y
ZWxlYXNpbmcKLSAgICAvLyB0aGUgY3VycmVudCBldmVudCBwcmV2ZW50cyB0aGF0IGZyb20gY2F1
c2luZyBhIHByb2JsZW0gaW5zaWRlIFdlYktpdCBvciBBcHBLaXQgY29kZS4KLSAgICBbW2V2ZW50
IHJldGFpbl0gYXV0b3JlbGVhc2VdOwotICAgIAotICAgIGlmICghW3NlbGYgaGl0VGVzdDpbZXZl
bnQgbG9jYXRpb25JbldpbmRvd11dKQotICAgICAgICByZXR1cm4gTk87Ci0gICAgCi0gICAgX2Rh
dGEtPl9pbXBsLT5zZXRMYXN0TW91c2VEb3duRXZlbnQoZXZlbnQpOwotICAgIGJvb2wgcmVzdWx0
ID0gX2RhdGEtPl9wYWdlLT5hY2NlcHRzRmlyc3RNb3VzZShbZXZlbnQgZXZlbnROdW1iZXJdLCBX
ZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoZXZlbnQsIF9kYXRhLT5faW1wbC0+
bGFzdFByZXNzdXJlRXZlbnQoKSwgc2VsZikpOwotICAgIF9kYXRhLT5faW1wbC0+c2V0TGFzdE1v
dXNlRG93bkV2ZW50KG5pbCk7Ci0gICAgcmV0dXJuIHJlc3VsdDsKKyAgICByZXR1cm4gX2RhdGEt
Pl9pbXBsLT5hY2NlcHRzRmlyc3RNb3VzZShldmVudCk7CiB9CiAKIC0gKEJPT0wpc2hvdWxkRGVs
YXlXaW5kb3dPcmRlcmluZ0ZvckV2ZW50OihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICAvLyBJZiB0
aGlzIGlzIHRoZSBhY3RpdmUgd2luZG93IG9yIHdlIGRvbid0IGhhdmUgYSByYW5nZSBzZWxlY3Rp
b24sIHRoZXJlIGlzIG5vIG5lZWQgdG8gcGVyZm9ybSBhZGRpdGlvbmFsIGNoZWNrcwotICAgIC8v
IGFuZCB3ZSBjYW4gYXZvaWQgbWFraW5nIGEgc3luY2hyb25vdXMgY2FsbCB0byB0aGUgV2ViUHJv
Y2Vzcy4KLSAgICBpZiAoW1tzZWxmIHdpbmRvd10gaXNLZXlXaW5kb3ddIHx8IF9kYXRhLT5fcGFn
ZS0+ZWRpdG9yU3RhdGUoKS5zZWxlY3Rpb25Jc05vbmUgfHwgIV9kYXRhLT5fcGFnZS0+ZWRpdG9y
U3RhdGUoKS5zZWxlY3Rpb25Jc1JhbmdlKQotICAgICAgICByZXR1cm4gTk87Ci0KLSAgICAvLyBU
aGVyZSdzIGEgY2hhbmNlIHRoYXQgcmVzcG9uZGluZyB0byB0aGlzIGV2ZW50IHdpbGwgcnVuIGEg
bmVzdGVkIGV2ZW50IGxvb3AsIGFuZAotICAgIC8vIGZldGNoaW5nIGEgbmV3IGV2ZW50IG1pZ2h0
IHJlbGVhc2UgdGhlIG9sZCBvbmUuIFJldGFpbmluZyBhbmQgdGhlbiBhdXRvcmVsZWFzaW5nCi0g
ICAgLy8gdGhlIGN1cnJlbnQgZXZlbnQgcHJldmVudHMgdGhhdCBmcm9tIGNhdXNpbmcgYSBwcm9i
bGVtIGluc2lkZSBXZWJLaXQgb3IgQXBwS2l0IGNvZGUuCi0gICAgW1tldmVudCByZXRhaW5dIGF1
dG9yZWxlYXNlXTsKLSAgICAKLSAgICBpZiAoIVtzZWxmIGhpdFRlc3Q6W2V2ZW50IGxvY2F0aW9u
SW5XaW5kb3ddXSkKLSAgICAgICAgcmV0dXJuIE5POwotICAgIAotICAgIF9kYXRhLT5faW1wbC0+
c2V0TGFzdE1vdXNlRG93bkV2ZW50KGV2ZW50KTsKLSAgICBib29sIHJlc3VsdCA9IF9kYXRhLT5f
cGFnZS0+c2hvdWxkRGVsYXlXaW5kb3dPcmRlcmluZ0ZvckV2ZW50KFdlYkV2ZW50RmFjdG9yeTo6
Y3JlYXRlV2ViTW91c2VFdmVudChldmVudCwgX2RhdGEtPl9pbXBsLT5sYXN0UHJlc3N1cmVFdmVu
dCgpLCBzZWxmKSk7Ci0gICAgX2RhdGEtPl9pbXBsLT5zZXRMYXN0TW91c2VEb3duRXZlbnQobmls
KTsKLSAgICByZXR1cm4gcmVzdWx0OworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPnNob3VsZERl
bGF5V2luZG93T3JkZXJpbmdGb3JFdmVudChldmVudCk7CiB9CiAKIC0gKHZvaWQpZG9Db21tYW5k
QnlTZWxlY3RvcjooU0VMKXNlbGVjdG9yCkBAIC04OTgsMjkgKzg2NSwxNCBAQCBOQVRJVkVfTU9V
U0VfRVZFTlRfSEFORExFUl9JTlRFUk5BTChtb3VzZURyYWdnZWRJbnRlcm5hbCkKICAgICBbc3Vw
ZXIga2V5RG93bjpldmVudF07CiB9CiAKKy0gKE5TVmlldyAqKV9zdXBlckhpdFRlc3Q6KE5TUG9p
bnQpcG9pbnQKK3sKKyAgICByZXR1cm4gW3N1cGVyIGhpdFRlc3Q6cG9pbnRdOworfQorCiAtIChO
U0FycmF5ICopdmFsaWRBdHRyaWJ1dGVzRm9yTWFya2VkVGV4dAogewotICAgIHN0YXRpYyBOU0Fy
cmF5ICp2YWxpZEF0dHJpYnV0ZXM7Ci0gICAgaWYgKCF2YWxpZEF0dHJpYnV0ZXMpIHsKLSAgICAg
ICAgdmFsaWRBdHRyaWJ1dGVzID0gW1tOU0FycmF5IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICBOU1VuZGVybGluZVN0eWxlQXR0cmlidXRlTmFtZSwg
TlNVbmRlcmxpbmVDb2xvckF0dHJpYnV0ZU5hbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICBOU01hcmtlZENsYXVzZVNlZ21lbnRBdHRyaWJ1dGVOYW1lLAotI2lmIFVTRShESUNUQVRJT05f
QUxURVJOQVRJVkVTKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgTlNUZXh0QWx0ZXJuYXRp
dmVzQXR0cmlidXRlTmFtZSwKLSNlbmRpZgotI2lmIFVTRShJTlNFUlRJT05fVU5ET19HUk9VUElO
RykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgIE5TVGV4dEluc2VydGlvblVuZG9hYmxlQXR0
cmlidXRlTmFtZSwKLSNlbmRpZgotICAgICAgICAgICAgICAgICAgICAgICAgICAgbmlsXTsKLSAg
ICAgICAgLy8gTlNUZXh0IGFsc28gc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBhdHRyaWJ1dGVzLCBi
dXQgaXQncwotICAgICAgICAvLyBoYXJkIHRvIHRlbGwgd2hpY2ggYXJlIHJlYWxseSByZXF1aXJl
ZCBmb3IgdGV4dCBpbnB1dCB0bwotICAgICAgICAvLyB3b3JrIHdlbGw7IEkgaGF2ZSBub3Qgc2Vl
biBhbnkgaW5wdXQgbWV0aG9kIG1ha2UgdXNlIG9mIHRoZW0geWV0LgotICAgICAgICAvLyAgICAg
TlNGb250QXR0cmlidXRlTmFtZSwgTlNGb3JlZ3JvdW5kQ29sb3JBdHRyaWJ1dGVOYW1lLAotICAg
ICAgICAvLyAgICAgTlNCYWNrZ3JvdW5kQ29sb3JBdHRyaWJ1dGVOYW1lLCBOU0xhbmd1YWdlQXR0
cmlidXRlTmFtZS4KLSAgICAgICAgQ0ZSZXRhaW4odmFsaWRBdHRyaWJ1dGVzKTsKLSAgICB9Ci0g
ICAgTE9HKFRleHRJbnB1dCwgInZhbGlkQXR0cmlidXRlc0Zvck1hcmtlZFRleHQgLT4gKC4uLiki
KTsKLSAgICByZXR1cm4gdmFsaWRBdHRyaWJ1dGVzOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwt
PnZhbGlkQXR0cmlidXRlc0Zvck1hcmtlZFRleHQoKTsKIH0KIAogI2lmIEVOQUJMRShEUkFHX1NV
UFBPUlQpCkBAIC05NjAsMTEgKzkxMiw5IEBAIE5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVSX0lO
VEVSTkFMKG1vdXNlRHJhZ2dlZEludGVybmFsKQogfQogI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NV
UFBPUlQpCiAKLS0gKEJPT0wpX3dpbmRvd1Jlc2l6ZU1vdXNlTG9jYXRpb25Jc0luVmlzaWJsZVNj
cm9sbGVyVGh1bWI6KE5TUG9pbnQpbG9jCistIChCT09MKV93aW5kb3dSZXNpemVNb3VzZUxvY2F0
aW9uSXNJblZpc2libGVTY3JvbGxlclRodW1iOihOU1BvaW50KXBvaW50CiB7Ci0gICAgTlNQb2lu
dCBsb2NhbFBvaW50ID0gW3NlbGYgY29udmVydFBvaW50OmxvYyBmcm9tVmlldzpuaWxdOwotICAg
IE5TUmVjdCB2aXNpYmxlVGh1bWJSZWN0ID0gTlNSZWN0KF9kYXRhLT5fcGFnZS0+dmlzaWJsZVNj
cm9sbGVyVGh1bWJSZWN0KCkpOwotICAgIHJldHVybiBOU01vdXNlSW5SZWN0KGxvY2FsUG9pbnQs
IHZpc2libGVUaHVtYlJlY3QsIFtzZWxmIGlzRmxpcHBlZF0pOworICAgIHJldHVybiBfZGF0YS0+
X2ltcGwtPndpbmRvd1Jlc2l6ZU1vdXNlTG9jYXRpb25Jc0luVmlzaWJsZVNjcm9sbGVyVGh1bWIo
TlNQb2ludFRvQ0dQb2ludChwb2ludCkpOwogfQogCiAtICh2b2lkKV9hZGRGb250UGFuZWxPYnNl
cnZlcgpAQCAtOTg0LDMwICs5MzQsMjcgQEAgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5U
RVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCiAKIC0gKHZvaWQpZHJhd1JlY3Q6KE5TUmVjdCly
ZWN0CiB7Ci0gICAgTE9HKFByaW50aW5nLCAiZHJhd1JlY3Q6IHg6JWcsIHk6JWcsIHdpZHRoOiVn
LCBoZWlnaHQ6JWciLCByZWN0Lm9yaWdpbi54LCByZWN0Lm9yaWdpbi55LCByZWN0LnNpemUud2lk
dGgsIHJlY3Quc2l6ZS5oZWlnaHQpOwotICAgIF9kYXRhLT5fcGFnZS0+ZW5kUHJpbnRpbmcoKTsK
KyAgICBfZGF0YS0+X2ltcGwtPmRyYXdSZWN0KE5TUmVjdFRvQ0dSZWN0KHJlY3QpKTsKIH0KIAog
LSAoQk9PTClpc09wYXF1ZQogewotICAgIHJldHVybiBfZGF0YS0+X3BhZ2UtPmRyYXdzQmFja2dy
b3VuZCgpOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmlzT3BhcXVlKCk7CiB9CiAKIC0gKEJP
T0wpbW91c2VEb3duQ2FuTW92ZVdpbmRvdwogewotICAgIC8vIC1bTlNWaWV3IG1vdXNlRG93bkNh
bk1vdmVXaW5kb3ddIHJldHVybnMgWUVTIHdoZW4gdGhlIE5TVmlldyBpcyB0cmFuc3BhcmVudCwK
LSAgICAvLyBidXQgd2UgZG9uJ3Qgd2FudCBhIGRyYWcgaW4gdGhlIE5TVmlldyB0byBtb3ZlIHRo
ZSB3aW5kb3csIGV2ZW4gaWYgaXQncyB0cmFuc3BhcmVudC4KLSAgICByZXR1cm4gTk87CisgICAg
cmV0dXJuIFdlYlZpZXdJbXBsOjptb3VzZURvd25DYW5Nb3ZlV2luZG93KCk7CiB9CiAKIC0gKHZv
aWQpdmlld0RpZEhpZGUKIHsKLSAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShW
aWV3U3RhdGU6OklzVmlzaWJsZSk7CisgICAgX2RhdGEtPl9pbXBsLT52aWV3RGlkSGlkZSgpOwog
fQogCiAtICh2b2lkKXZpZXdEaWRVbmhpZGUKIHsKLSAgICBfZGF0YS0+X3BhZ2UtPnZpZXdTdGF0
ZURpZENoYW5nZShWaWV3U3RhdGU6OklzVmlzaWJsZSk7CisgICAgX2RhdGEtPl9pbXBsLT52aWV3
RGlkVW5oaWRlKCk7CiB9CiAKIC0gKHZvaWQpdmlld0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVz
CkBAIC0xMDE3LDcgKzk2NCw3IEBAIE5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVSX0lOVEVSTkFM
KG1vdXNlRHJhZ2dlZEludGVybmFsKQogCiAtICh2b2lkKV9hY3RpdmVTcGFjZURpZENoYW5nZToo
TlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKLSAgICBfZGF0YS0+X3BhZ2UtPnZpZXdT
dGF0ZURpZENoYW5nZShWaWV3U3RhdGU6OklzVmlzaWJsZSk7CisgICAgX2RhdGEtPl9pbXBsLT5h
Y3RpdmVTcGFjZURpZENoYW5nZSgpOwogfQogCiAtIChpZClhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJ
RWxlbWVudApAQCAtMTA0MiwxMSArOTg5LDkgQEAgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJf
SU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCiAKIC0gKE5TVmlldyAqKWhpdFRlc3Q6KE5T
UG9pbnQpcG9pbnQKIHsKLSAgICBOU1ZpZXcgKmhpdFZpZXcgPSBbc3VwZXIgaGl0VGVzdDpwb2lu
dF07Ci0gICAgaWYgKGhpdFZpZXcgJiYgX2RhdGEgJiYgaGl0VmlldyA9PSBfZGF0YS0+X2ltcGwt
PmxheWVySG9zdGluZ1ZpZXcoKSkKLSAgICAgICAgaGl0VmlldyA9IHNlbGY7Ci0KLSAgICByZXR1
cm4gaGl0VmlldzsKKyAgICBpZiAoIV9kYXRhKQorICAgICAgICByZXR1cm4gW3N1cGVyIGhpdFRl
c3Q6cG9pbnRdOworICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPmhpdFRlc3QoTlNQb2ludFRvQ0dQ
b2ludChwb2ludCkpOwogfQogCiAtIChOU0ludGVnZXIpY29udmVyc2F0aW9uSWRlbnRpZmllcgpA
QCAtMTIwOSw3ICsxMTU0LDcgQEAgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwo
bW91c2VEcmFnZ2VkSW50ZXJuYWwpCiAKIC0gKEJPT0wpd2FudHNVcGRhdGVMYXllcgogewotICAg
IHJldHVybiBZRVM7CisgICAgcmV0dXJuIFdlYlZpZXdJbXBsOjp3YW50c1VwZGF0ZUxheWVyKCk7
CiB9CiAKIC0gKHZvaWQpdXBkYXRlTGF5ZXIKQEAgLTEyMjQsMjMgKzExNjksMTIgQEAgTkFUSVZF
X01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCiAKIC0g
KEJPT0wpY2FuQ2hhbmdlRnJhbWVMYXlvdXQ6KFdLRnJhbWVSZWYpZnJhbWVSZWYKIHsKLSAgICAv
LyBQREYgZG9jdW1lbnRzIGFyZSBhbHJlYWR5IHBhZ2luYXRlZCwgc28gd2UgY2FuJ3QgY2hhbmdl
IHRoZW0gdG8gYWRkIGhlYWRlcnMgYW5kIGZvb3RlcnMuCi0gICAgcmV0dXJuICF0b0ltcGwoZnJh
bWVSZWYpLT5pc0Rpc3BsYXlpbmdQREZEb2N1bWVudCgpOworICAgIHJldHVybiBfZGF0YS0+X2lt
cGwtPmNhbkNoYW5nZUZyYW1lTGF5b3V0KCp0b0ltcGwoZnJhbWVSZWYpKTsKIH0KIAogLSAoTlNQ
cmludE9wZXJhdGlvbiAqKXByaW50T3BlcmF0aW9uV2l0aFByaW50SW5mbzooTlNQcmludEluZm8g
KilwcmludEluZm8gZm9yRnJhbWU6KFdLRnJhbWVSZWYpZnJhbWVSZWYKIHsKLSAgICBMT0coUHJp
bnRpbmcsICJDcmVhdGluZyBhbiBOU1ByaW50T3BlcmF0aW9uIGZvciBmcmFtZSAnJXMnIiwgdG9J
bXBsKGZyYW1lUmVmKS0+dXJsKCkudXRmOCgpLmRhdGEoKSk7Ci0KLSAgICAvLyBGSVhNRTogSWYg
dGhlIGZyYW1lIGNhbm5vdCBiZSBwcmludGVkIChlLmcuIGlmIGl0IGNvbnRhaW5zIGFuIGVuY3J5
cHRlZCBQREYgdGhhdCBkaXNhbGxvd3MKLSAgICAvLyBwcmludGluZyksIHRoaXMgZnVuY3Rpb24g
c2hvdWxkIHJldHVybiBuaWwuCi0gICAgUmV0YWluUHRyPFdLUHJpbnRpbmdWaWV3PiBwcmludGlu
Z1ZpZXcgPSBhZG9wdE5TKFtbV0tQcmludGluZ1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWVQcm94
eTp0b0ltcGwoZnJhbWVSZWYpIHZpZXc6c2VsZl0pOwotICAgIC8vIE5TUHJpbnRPcGVyYXRpb24g
dGFrZXMgb3duZXJzaGlwIG9mIHRoZSB2aWV3LgotICAgIE5TUHJpbnRPcGVyYXRpb24gKnByaW50
T3BlcmF0aW9uID0gW05TUHJpbnRPcGVyYXRpb24gcHJpbnRPcGVyYXRpb25XaXRoVmlldzpwcmlu
dGluZ1ZpZXcuZ2V0KCkgcHJpbnRJbmZvOnByaW50SW5mb107Ci0gICAgW3ByaW50T3BlcmF0aW9u
IHNldENhblNwYXduU2VwYXJhdGVUaHJlYWQ6WUVTXTsKLSAgICBbcHJpbnRPcGVyYXRpb24gc2V0
Sm9iVGl0bGU6dG9JbXBsKGZyYW1lUmVmKS0+dGl0bGUoKV07Ci0gICAgcHJpbnRpbmdWaWV3LT5f
cHJpbnRPcGVyYXRpb24gPSBwcmludE9wZXJhdGlvbjsKLSAgICByZXR1cm4gcHJpbnRPcGVyYXRp
b247CisgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+cHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZv
KHByaW50SW5mbywgKnRvSW1wbChmcmFtZVJlZikpOwogfQogCiAtICh2b2lkKXNldEZyYW1lOihO
U1JlY3QpcmVjdCBhbmRTY3JvbGxCeTooTlNTaXplKW9mZnNldApAQCAtMTI2NSw3ICsxMTk5LDcg
QEAgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJu
YWwpCiAKICsgKHZvaWQpaGlkZVdvcmREZWZpbml0aW9uV2luZG93CiB7Ci0gICAgRGljdGlvbmFy
eUxvb2t1cDo6aGlkZVBvcHVwKCk7CisgICAgV2ViVmlld0ltcGw6OmhpZGVXb3JkRGVmaW5pdGlv
bldpbmRvdygpOwogfQogCiAtIChOU1NpemUpbWluaW11bVNpemVGb3JBdXRvTGF5b3V0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmluZGV4IDE5NjZhMzUu
LmNlODdjNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5oCkBAIC02MSw2ICs2MSw3IEBAIE9CSkNfQ0xBU1MgX1dLVGh1bWJuYWlsVmlldzsKIC0gKHZv
aWQpX3N1cGVyRG9Db21tYW5kQnlTZWxlY3RvcjooU0VMKXNlbGVjdG9yOwogLSAoQk9PTClfc3Vw
ZXJQZXJmb3JtS2V5RXF1aXZhbGVudDooTlNFdmVudCAqKWV2ZW50OwogLSAodm9pZClfc3VwZXJL
ZXlEb3duOihOU0V2ZW50ICopZXZlbnQ7CistIChOU1ZpZXcgKilfc3VwZXJIaXRUZXN0OihOU1Bv
aW50KXBvaW50OwogCiAvLyBUaGlzIGlzIGEgaGFjazsgdGhlc2UgdGhpbmdzIGxpdmUgY2FuIGxp
dmUgb24gYSBjYXRlZ29yeSAoZS5nLiBXS1ZpZXcgKFByaXZhdGUpKSBidXQgV0tWaWV3IGl0c2Vs
ZiBjb25mb3JtcyB0byB0aGlzIHByb3RvY29sLgogLy8gVGhleSdyZSBub3QgYWN0dWFsbHkgb3B0
aW9uYWwuCkBAIC0xMTksNyArMTIwLDkgQEAgcHVibGljOgogICAgIGJvb2wgZHJhd3NCYWNrZ3Jv
dW5kKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZChib29s
KTsKICAgICBib29sIGRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKCkgY29uc3Q7CisgICAgYm9v
bCBpc09wYXF1ZSgpIGNvbnN0OwogCisgICAgYm9vbCBhY2NlcHRzRmlyc3RNb3VzZShOU0V2ZW50
ICopOwogICAgIGJvb2wgYWNjZXB0c0ZpcnN0UmVzcG9uZGVyKCk7CiAgICAgYm9vbCBiZWNvbWVG
aXJzdFJlc3BvbmRlcigpOwogICAgIGJvb2wgcmVzaWduRmlyc3RSZXNwb25kZXIoKTsKQEAgLTE0
NSw2ICsxNDgsMTEgQEAgcHVibGljOgogICAgIHZvaWQgZm9yY2VBc3luY0RyYXdpbmdBcmVhU2l6
ZVVwZGF0ZShDR1NpemUpOwogICAgIHZvaWQgd2FpdEZvckFzeW5jRHJhd2luZ0FyZWFTaXplVXBk
YXRlKCk7CiAgICAgdm9pZCB1cGRhdGVMYXllcigpOworICAgIHN0YXRpYyBib29sIHdhbnRzVXBk
YXRlTGF5ZXIoKSB7IHJldHVybiB0cnVlOyB9CisKKyAgICB2b2lkIGRyYXdSZWN0KENHUmVjdCk7
CisgICAgYm9vbCBjYW5DaGFuZ2VGcmFtZUxheW91dChXZWJGcmFtZVByb3h5Jik7CisgICAgTlNQ
cmludE9wZXJhdGlvbiAqcHJpbnRPcGVyYXRpb25XaXRoUHJpbnRJbmZvKE5TUHJpbnRJbmZvICos
IFdlYkZyYW1lUHJveHkmKTsKIAogICAgIHZvaWQgc2V0QXV0b21hdGljYWxseUFkanVzdHNDb250
ZW50SW5zZXRzKGJvb2wpOwogICAgIGJvb2wgYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5z
ZXRzKCkgY29uc3QgeyByZXR1cm4gbV9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHM7
IH0KQEAgLTE4NiwxMCArMTk0LDIxIEBAIHB1YmxpYzoKICAgICB2b2lkIHdpbmRvd0RpZENoYW5n
ZVNjcmVlbigpOwogICAgIHZvaWQgd2luZG93RGlkQ2hhbmdlTGF5ZXJIb3N0aW5nKCk7CiAgICAg
dm9pZCB3aW5kb3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0ZSgpOworICAgIGJvb2wgc2hvdWxkRGVs
YXlXaW5kb3dPcmRlcmluZ0ZvckV2ZW50KE5TRXZlbnQgKik7CisgICAgYm9vbCB3aW5kb3dSZXNp
emVNb3VzZUxvY2F0aW9uSXNJblZpc2libGVTY3JvbGxlclRodW1iKENHUG9pbnQpOworCisgICAg
Ly8gLVtOU1ZpZXcgbW91c2VEb3duQ2FuTW92ZVdpbmRvd10gcmV0dXJucyBZRVMgd2hlbiB0aGUg
TlNWaWV3IGlzIHRyYW5zcGFyZW50LAorICAgIC8vIGJ1dCB3ZSBkb24ndCB3YW50IGEgZHJhZyBp
biB0aGUgTlNWaWV3IHRvIG1vdmUgdGhlIHdpbmRvdywgZXZlbiBpZiBpdCdzIHRyYW5zcGFyZW50
LgorICAgIHN0YXRpYyBib29sIG1vdXNlRG93bkNhbk1vdmVXaW5kb3coKSB7IHJldHVybiBmYWxz
ZTsgfQogCiAgICAgdm9pZCB2aWV3V2lsbE1vdmVUb1dpbmRvdyhOU1dpbmRvdyAqKTsKICAgICB2
b2lkIHZpZXdEaWRNb3ZlVG9XaW5kb3coKTsKICAgICB2b2lkIHZpZXdEaWRDaGFuZ2VCYWNraW5n
UHJvcGVydGllcygpOworICAgIHZvaWQgdmlld0RpZEhpZGUoKTsKKyAgICB2b2lkIHZpZXdEaWRV
bmhpZGUoKTsKKyAgICB2b2lkIGFjdGl2ZVNwYWNlRGlkQ2hhbmdlKCk7CisKKyAgICBOU1ZpZXcg
KmhpdFRlc3QoQ0dQb2ludCk7CiAKICAgICBDb2xvclNwYWNlRGF0YSBjb2xvclNwYWNlKCk7CiAK
QEAgLTI5Myw2ICszMTIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNtaXNzQ29udGVudFJlbGF0
aXZlQ2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5KCk7CiAgICAgdm9pZCBkaXNtaXNzQ29udGVudFJl
bGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbihib29sKTsKICAgICB2b2lkIGRpc21pc3ND
b250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uRnJvbVZpZXdPbmx5KGJvb2wp
OworICAgIHN0YXRpYyB2b2lkIGhpZGVXb3JkRGVmaW5pdGlvbldpbmRvdygpOwogCiAgICAgdm9p
ZCBxdWlja0xvb2tXaXRoRXZlbnQoTlNFdmVudCAqKTsKICAgICB2b2lkIHByZXBhcmVGb3JEaWN0
aW9uYXJ5TG9va3VwKCk7CkBAIC0zMzQsNyArMzU0LDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBz
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKENBTGF5ZXIgKik7CiAgICAgQ0FMYXll
ciAqYWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcigpIGNvbnN0IHsgcmV0dXJuIG1fcm9v
dExheWVyLmdldCgpOyB9Ci0gICAgTlNWaWV3ICpsYXllckhvc3RpbmdWaWV3KCkgY29uc3QgeyBy
ZXR1cm4gbV9sYXllckhvc3RpbmdWaWV3LmdldCgpOyB9CiAKICNpZiBXS19BUElfRU5BQkxFRAog
ICAgIHZvaWQgc2V0VGh1bWJuYWlsVmlldyhfV0tUaHVtYm5haWxWaWV3ICopOwpAQCAtNDA4LDYg
KzQyNyw3IEBAIHB1YmxpYzoKICAgICBDR0Zsb2F0IHRvdGFsSGVpZ2h0T2ZCYW5uZXJzKCkgY29u
c3QgeyByZXR1cm4gbV90b3RhbEhlaWdodE9mQmFubmVyczsgfQogCiAgICAgdm9pZCBkb25lV2l0
aEtleUV2ZW50KE5TRXZlbnQgKiwgYm9vbCBldmVudFdhc0hhbmRsZWQpOworICAgIE5TQXJyYXkg
KnZhbGlkQXR0cmlidXRlc0Zvck1hcmtlZFRleHQoKTsKICAgICB2b2lkIGRvQ29tbWFuZEJ5U2Vs
ZWN0b3IoU0VMKTsKICAgICB2b2lkIGluc2VydFRleHQoaWQgc3RyaW5nKTsKICAgICB2b2lkIGlu
c2VydFRleHQoaWQgc3RyaW5nLCBOU1JhbmdlIHJlcGxhY2VtZW50UmFuZ2UpOwpAQCAtNDI1LDYg
KzQ0NSwxMCBAQCBwdWJsaWM6CiAgICAgdm9pZCBrZXlEb3duKE5TRXZlbnQgKik7CiAgICAgdm9p
ZCBmbGFnc0NoYW5nZWQoTlNFdmVudCAqKTsKIAorICAgIC8vIE92ZXJyaWRlIHRoaXMgc28gdGhh
dCBBcHBLaXQgd2lsbCBzZW5kIHVzIGFycm93IGtleXMgYXMga2V5IGRvd24gZXZlbnRzIHNvIHdl
IGNhbgorICAgIC8vIHN1cHBvcnQgdGhlbSB2aWEgdGhlIGtleSBiaW5kaW5ncyBtZWNoYW5pc20u
CisgICAgc3RhdGljIGJvb2wgd2FudHNLZXlEb3duRm9yRXZlbnQoTlNFdmVudCAqKSB7IHJldHVy
biB0cnVlOyB9CisKICNpZiBVU0UoQVNZTkNfTlNURVhUSU5QVVRDTElFTlQpCiAgICAgdm9pZCBz
ZWxlY3RlZFJhbmdlV2l0aENvbXBsZXRpb25IYW5kbGVyKHZvaWQoXikoTlNSYW5nZSkpOwogICAg
IHZvaWQgaGFzTWFya2VkVGV4dFdpdGhDb21wbGV0aW9uSGFuZGxlcih2b2lkKF4pKEJPT0wgaGFz
TWFya2VkVGV4dCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tCmluZGV4IDZhNTQ0OWYuLjgxY2YxNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTQ5LDEwICs0OSwxMiBAQAogI2ltcG9ydCAi
V0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKICNpbXBvcnQgIldLRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIuaCIKICNpbXBvcnQgIldLSW1tZWRpYXRlQWN0aW9uQ29udHJv
bGxlci5oIgorI2ltcG9ydCAiV0tQcmludGluZ1ZpZXcuaCIKICNpbXBvcnQgIldLVGV4dElucHV0
V2luZG93Q29udHJvbGxlci5oIgogI2ltcG9ydCAiV0tWaWV3TGF5b3V0U3RyYXRlZ3kuaCIKICNp
bXBvcnQgIldLV2ViVmlldy5oIgogI2ltcG9ydCAiV2ViRWRpdENvbW1hbmRQcm94eS5oIgorI2lt
cG9ydCAiV2ViRXZlbnRGYWN0b3J5LmgiCiAjaW1wb3J0ICJXZWJJbnNwZWN0b3JQcm94eS5oIgog
I2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgpAQCAt
NTEzLDYgKzUxNSwyNyBAQCBib29sIFdlYlZpZXdJbXBsOjpkcmF3c1RyYW5zcGFyZW50QmFja2dy
b3VuZCgpIGNvbnN0CiAgICAgcmV0dXJuIG1fcGFnZS5kcmF3c1RyYW5zcGFyZW50QmFja2dyb3Vu
ZCgpOwogfQogCitib29sIFdlYlZpZXdJbXBsOjppc09wYXF1ZSgpIGNvbnN0Cit7CisgICAgcmV0
dXJuIG1fcGFnZS5kcmF3c0JhY2tncm91bmQoKTsKK30KKworYm9vbCBXZWJWaWV3SW1wbDo6YWNj
ZXB0c0ZpcnN0TW91c2UoTlNFdmVudCAqZXZlbnQpCit7CisgICAgLy8gVGhlcmUncyBhIGNoYW5j
ZSB0aGF0IHJlc3BvbmRpbmcgdG8gdGhpcyBldmVudCB3aWxsIHJ1biBhIG5lc3RlZCBldmVudCBs
b29wLCBhbmQKKyAgICAvLyBmZXRjaGluZyBhIG5ldyBldmVudCBtaWdodCByZWxlYXNlIHRoZSBv
bGQgb25lLiBSZXRhaW5pbmcgYW5kIHRoZW4gYXV0b3JlbGVhc2luZworICAgIC8vIHRoZSBjdXJy
ZW50IGV2ZW50IHByZXZlbnRzIHRoYXQgZnJvbSBjYXVzaW5nIGEgcHJvYmxlbSBpbnNpZGUgV2Vi
S2l0IG9yIEFwcEtpdCBjb2RlLgorICAgIFtbZXZlbnQgcmV0YWluXSBhdXRvcmVsZWFzZV07CisK
KyAgICBpZiAoIVttX3ZpZXcgaGl0VGVzdDpldmVudC5sb2NhdGlvbkluV2luZG93XSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgc2V0TGFzdE1vdXNlRG93bkV2ZW50KGV2ZW50KTsKKyAg
ICBib29sIHJlc3VsdCA9IG1fcGFnZS5hY2NlcHRzRmlyc3RNb3VzZShldmVudC5ldmVudE51bWJl
ciwgV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBtX2xhc3RQcmVz
c3VyZUV2ZW50LmdldCgpLCBtX3ZpZXcpKTsKKyAgICBzZXRMYXN0TW91c2VEb3duRXZlbnQobmls
KTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCiBib29sIFdlYlZpZXdJbXBsOjphY2NlcHRzRmly
c3RSZXNwb25kZXIoKQogewogICAgIHJldHVybiB0cnVlOwpAQCAtNzczLDYgKzc5NiwzMyBAQCB2
b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVMYXllcigpCiAgICAgICAgIGRyYXdpbmdBcmVhLT53YWl0
Rm9yUG9zc2libGVHZW9tZXRyeVVwZGF0ZSgpOwogfQogCit2b2lkIFdlYlZpZXdJbXBsOjpkcmF3
UmVjdChDR1JlY3QgcmVjdCkKK3sKKyAgICBMT0coUHJpbnRpbmcsICJkcmF3UmVjdDogeDolZywg
eTolZywgd2lkdGg6JWcsIGhlaWdodDolZyIsIHJlY3Qub3JpZ2luLngsIHJlY3Qub3JpZ2luLnks
IHJlY3Quc2l6ZS53aWR0aCwgcmVjdC5zaXplLmhlaWdodCk7CisgICAgbV9wYWdlLmVuZFByaW50
aW5nKCk7Cit9CisKK2Jvb2wgV2ViVmlld0ltcGw6OmNhbkNoYW5nZUZyYW1lTGF5b3V0KFdlYkZy
YW1lUHJveHkmIGZyYW1lKQoreworICAgIC8vIFBERiBkb2N1bWVudHMgYXJlIGFscmVhZHkgcGFn
aW5hdGVkLCBzbyB3ZSBjYW4ndCBjaGFuZ2UgdGhlbSB0byBhZGQgaGVhZGVycyBhbmQgZm9vdGVy
cy4KKyAgICByZXR1cm4gIWZyYW1lLmlzRGlzcGxheWluZ1BERkRvY3VtZW50KCk7Cit9CisKK05T
UHJpbnRPcGVyYXRpb24gKldlYlZpZXdJbXBsOjpwcmludE9wZXJhdGlvbldpdGhQcmludEluZm8o
TlNQcmludEluZm8gKnByaW50SW5mbywgV2ViRnJhbWVQcm94eSYgZnJhbWUpCit7CisgICAgTE9H
KFByaW50aW5nLCAiQ3JlYXRpbmcgYW4gTlNQcmludE9wZXJhdGlvbiBmb3IgZnJhbWUgJyVzJyIs
IGZyYW1lLnVybCgpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgLy8gRklYTUU6IElmIHRoZSBmcmFt
ZSBjYW5ub3QgYmUgcHJpbnRlZCAoZS5nLiBpZiBpdCBjb250YWlucyBhbiBlbmNyeXB0ZWQgUERG
IHRoYXQgZGlzYWxsb3dzCisgICAgLy8gcHJpbnRpbmcpLCB0aGlzIGZ1bmN0aW9uIHNob3VsZCBy
ZXR1cm4gbmlsLgorICAgIFJldGFpblB0cjxXS1ByaW50aW5nVmlldz4gcHJpbnRpbmdWaWV3ID0g
YWRvcHROUyhbW1dLUHJpbnRpbmdWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lUHJveHk6JmZyYW1l
IHZpZXc6bV92aWV3XSk7CisgICAgLy8gTlNQcmludE9wZXJhdGlvbiB0YWtlcyBvd25lcnNoaXAg
b2YgdGhlIHZpZXcuCisgICAgTlNQcmludE9wZXJhdGlvbiAqcHJpbnRPcGVyYXRpb24gPSBbTlNQ
cmludE9wZXJhdGlvbiBwcmludE9wZXJhdGlvbldpdGhWaWV3OnByaW50aW5nVmlldy5nZXQoKSBw
cmludEluZm86cHJpbnRJbmZvXTsKKyAgICBbcHJpbnRPcGVyYXRpb24gc2V0Q2FuU3Bhd25TZXBh
cmF0ZVRocmVhZDpZRVNdOworICAgIFtwcmludE9wZXJhdGlvbiBzZXRKb2JUaXRsZTpmcmFtZS50
aXRsZSgpXTsKKyAgICBwcmludGluZ1ZpZXctPl9wcmludE9wZXJhdGlvbiA9IHByaW50T3BlcmF0
aW9uOworICAgIHJldHVybiBwcmludE9wZXJhdGlvbjsKK30KKwogdm9pZCBXZWJWaWV3SW1wbDo6
c2V0QXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzKGJvb2wgYXV0b21hdGljYWxseUFk
anVzdHNDb250ZW50SW5zZXRzKQogewogICAgIG1fYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50
SW5zZXRzID0gYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzOwpAQCAtMTA1MCw2ICsx
MTAwLDM0IEBAIHZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZENoYW5nZU9jY2x1c2lvblN0YXRl
KCkKICAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNW
aXNpYmxlKTsKIH0KIAorYm9vbCBXZWJWaWV3SW1wbDo6c2hvdWxkRGVsYXlXaW5kb3dPcmRlcmlu
Z0ZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQoreworICAgIC8vIElmIHRoaXMgaXMgdGhlIGFjdGl2
ZSB3aW5kb3cgb3Igd2UgZG9uJ3QgaGF2ZSBhIHJhbmdlIHNlbGVjdGlvbiwgdGhlcmUgaXMgbm8g
bmVlZCB0byBwZXJmb3JtIGFkZGl0aW9uYWwgY2hlY2tzCisgICAgLy8gYW5kIHdlIGNhbiBhdm9p
ZCBtYWtpbmcgYSBzeW5jaHJvbm91cyBjYWxsIHRvIHRoZSBXZWJQcm9jZXNzLgorICAgIGlmICht
X3ZpZXcud2luZG93LmlzS2V5V2luZG93IHx8IG1fcGFnZS5lZGl0b3JTdGF0ZSgpLnNlbGVjdGlv
bklzTm9uZSB8fCAhbV9wYWdlLmVkaXRvclN0YXRlKCkuc2VsZWN0aW9uSXNSYW5nZSkKKyAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgLy8gVGhlcmUncyBhIGNoYW5jZSB0aGF0IHJlc3BvbmRp
bmcgdG8gdGhpcyBldmVudCB3aWxsIHJ1biBhIG5lc3RlZCBldmVudCBsb29wLCBhbmQKKyAgICAv
LyBmZXRjaGluZyBhIG5ldyBldmVudCBtaWdodCByZWxlYXNlIHRoZSBvbGQgb25lLiBSZXRhaW5p
bmcgYW5kIHRoZW4gYXV0b3JlbGVhc2luZworICAgIC8vIHRoZSBjdXJyZW50IGV2ZW50IHByZXZl
bnRzIHRoYXQgZnJvbSBjYXVzaW5nIGEgcHJvYmxlbSBpbnNpZGUgV2ViS2l0IG9yIEFwcEtpdCBj
b2RlLgorICAgIFtbZXZlbnQgcmV0YWluXSBhdXRvcmVsZWFzZV07CisKKyAgICBpZiAoIVttX3Zp
ZXcgaGl0VGVzdDpldmVudC5sb2NhdGlvbkluV2luZG93XSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworCisgICAgc2V0TGFzdE1vdXNlRG93bkV2ZW50KGV2ZW50KTsKKyAgICBib29sIHJlc3VsdCA9
IG1fcGFnZS5zaG91bGREZWxheVdpbmRvd09yZGVyaW5nRm9yRXZlbnQoV2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBtX2xhc3RQcmVzc3VyZUV2ZW50LmdldCgpLCBt
X3ZpZXcpKTsKKyAgICBzZXRMYXN0TW91c2VEb3duRXZlbnQobmlsKTsKKyAgICByZXR1cm4gcmVz
dWx0OworfQorCitib29sIFdlYlZpZXdJbXBsOjp3aW5kb3dSZXNpemVNb3VzZUxvY2F0aW9uSXNJ
blZpc2libGVTY3JvbGxlclRodW1iKENHUG9pbnQgcG9pbnQpCit7CisgICAgTlNQb2ludCBsb2Nh
bFBvaW50ID0gW21fdmlldyBjb252ZXJ0UG9pbnQ6TlNQb2ludEZyb21DR1BvaW50KHBvaW50KSBm
cm9tVmlldzpuaWxdOworICAgIE5TUmVjdCB2aXNpYmxlVGh1bWJSZWN0ID0gTlNSZWN0KG1fcGFn
ZS52aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoKSk7CisgICAgcmV0dXJuIE5TTW91c2VJblJlY3Qo
bG9jYWxQb2ludCwgdmlzaWJsZVRodW1iUmVjdCwgbV92aWV3LmlzRmxpcHBlZCk7Cit9CisKIHZv
aWQgV2ViVmlld0ltcGw6OnZpZXdXaWxsTW92ZVRvV2luZG93KE5TV2luZG93ICp3aW5kb3cpCiB7
CiAgICAgLy8gSWYgd2UncmUgaW4gdGhlIG1pZGRsZSBvZiBwcmVwYXJpbmcgdG8gbW92ZSB0byBh
IHdpbmRvdywgd2Ugc2hvdWxkIG9ubHkgYmUgbW92ZWQgdG8gdGhhdCB3aW5kb3cuCkBAIC0xMTMz
LDYgKzEyMTEsMzAgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dmlld0RpZENoYW5nZUJhY2tpbmdQcm9w
ZXJ0aWVzKCkKICAgICAgICAgZHJhd2luZ0FyZWEtPmNvbG9yU3BhY2VEaWRDaGFuZ2UoKTsKIH0K
IAordm9pZCBXZWJWaWV3SW1wbDo6dmlld0RpZEhpZGUoKQoreworICAgIG1fcGFnZS52aWV3U3Rh
dGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc1Zpc2libGUpOworfQorCit2b2lkIFdl
YlZpZXdJbXBsOjp2aWV3RGlkVW5oaWRlKCkKK3sKKyAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hh
bmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsKK30KKwordm9pZCBXZWJWaWV3SW1w
bDo6YWN0aXZlU3BhY2VEaWRDaGFuZ2UoKQoreworICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFu
Z2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc1Zpc2libGUpOworfQorCitOU1ZpZXcgKldlYlZpZXdJ
bXBsOjpoaXRUZXN0KENHUG9pbnQgcG9pbnQpCit7CisgICAgTlNWaWV3ICpoaXRWaWV3ID0gW21f
dmlldyBfc3VwZXJIaXRUZXN0Ok5TUG9pbnRGcm9tQ0dQb2ludChwb2ludCldOworICAgIGlmICho
aXRWaWV3ICYmIGhpdFZpZXcgPT0gbV9sYXllckhvc3RpbmdWaWV3KQorICAgICAgICBoaXRWaWV3
ID0gbV92aWV3OworCisgICAgcmV0dXJuIGhpdFZpZXc7Cit9CisKIHZvaWQgV2ViVmlld0ltcGw6
OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQoTlNFdmVudCAqZmxh
Z3NDaGFuZ2VkRXZlbnQpCiB7CiAgICAgTlNFdmVudCAqZmFrZUV2ZW50ID0gW05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOk5TTW91c2VNb3ZlZCBsb2NhdGlvbjpmbGFnc0NoYW5nZWRFdmVudC53
aW5kb3cubW91c2VMb2NhdGlvbk91dHNpZGVPZkV2ZW50U3RyZWFtCkBAIC0yMDcyLDYgKzIxNzQs
MTEgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93
c0Zyb21WaWV3T25seSgpCiAgICAgbV9wYWdlQ2xpZW50LmRpc21pc3NDb3JyZWN0aW9uUGFuZWwo
V2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9yZWQpOwogfQog
Cit2b2lkIFdlYlZpZXdJbXBsOjpoaWRlV29yZERlZmluaXRpb25XaW5kb3coKQoreworICAgIFdl
YkNvcmU6OkRpY3Rpb25hcnlMb29rdXA6OmhpZGVQb3B1cCgpOworfQorCiB2b2lkIFdlYlZpZXdJ
bXBsOjpxdWlja0xvb2tXaXRoRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgaWYgKGlnbm9y
ZXNOb25XaGVlbEV2ZW50cygpKQpAQCAtMzEwMyw2ICszMjEwLDI5IEBAIHZvaWQgV2ViVmlld0lt
cGw6OmRvbmVXaXRoS2V5RXZlbnQoTlNFdmVudCAqZXZlbnQsIGJvb2wgZXZlbnRXYXNIYW5kbGVk
KQogICAgIG1fa2V5RG93bkV2ZW50QmVpbmdSZXNlbnQgPSBudWxscHRyOwogfQogCitOU0FycmF5
ICpXZWJWaWV3SW1wbDo6dmFsaWRBdHRyaWJ1dGVzRm9yTWFya2VkVGV4dCgpCit7CisgICAgc3Rh
dGljIE5TQXJyYXkgKnZhbGlkQXR0cmlidXRlczsKKyAgICBpZiAoIXZhbGlkQXR0cmlidXRlcykg
eworICAgICAgICB2YWxpZEF0dHJpYnV0ZXMgPSBAWyBOU1VuZGVybGluZVN0eWxlQXR0cmlidXRl
TmFtZSwgTlNVbmRlcmxpbmVDb2xvckF0dHJpYnV0ZU5hbWUsIE5TTWFya2VkQ2xhdXNlU2VnbWVu
dEF0dHJpYnV0ZU5hbWUsCisjaWYgVVNFKERJQ1RBVElPTl9BTFRFUk5BVElWRVMpCisgICAgICAg
ICAgICBOU1RleHRBbHRlcm5hdGl2ZXNBdHRyaWJ1dGVOYW1lLAorI2VuZGlmCisjaWYgVVNFKElO
U0VSVElPTl9VTkRPX0dST1VQSU5HKQorICAgICAgICAgICAgTlNUZXh0SW5zZXJ0aW9uVW5kb2Fi
bGVBdHRyaWJ1dGVOYW1lLAorI2VuZGlmCisgICAgICAgIF07CisgICAgICAgIC8vIE5TVGV4dCBh
bHNvIHN1cHBvcnRzIHRoZSBmb2xsb3dpbmcgYXR0cmlidXRlcywgYnV0IGl0J3MKKyAgICAgICAg
Ly8gaGFyZCB0byB0ZWxsIHdoaWNoIGFyZSByZWFsbHkgcmVxdWlyZWQgZm9yIHRleHQgaW5wdXQg
dG8KKyAgICAgICAgLy8gd29yayB3ZWxsOyBJIGhhdmUgbm90IHNlZW4gYW55IGlucHV0IG1ldGhv
ZCBtYWtlIHVzZSBvZiB0aGVtIHlldC4KKyAgICAgICAgLy8gICAgIE5TRm9udEF0dHJpYnV0ZU5h
bWUsIE5TRm9yZWdyb3VuZENvbG9yQXR0cmlidXRlTmFtZSwKKyAgICAgICAgLy8gICAgIE5TQmFj
a2dyb3VuZENvbG9yQXR0cmlidXRlTmFtZSwgTlNMYW5ndWFnZUF0dHJpYnV0ZU5hbWUuCisgICAg
ICAgIENGUmV0YWluKHZhbGlkQXR0cmlidXRlcyk7CisgICAgfQorICAgIExPRyhUZXh0SW5wdXQs
ICJ2YWxpZEF0dHJpYnV0ZXNGb3JNYXJrZWRUZXh0IC0+ICguLi4pIik7CisgICAgcmV0dXJuIHZh
bGlkQXR0cmlidXRlczsKK30KKwogc3RhdGljIFZlY3RvcjxXZWJDb3JlOjpDb21wb3NpdGlvblVu
ZGVybGluZT4gZXh0cmFjdFVuZGVybGluZXMoTlNBdHRyaWJ1dGVkU3RyaW5nICpzdHJpbmcpCiB7
CiAgICAgVmVjdG9yPFdlYkNvcmU6OkNvbXBvc2l0aW9uVW5kZXJsaW5lPiByZXN1bHQ7Cg==
</data>
<flag name="review"
          id="289537"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264409</attachid>
            <date>2015-10-30 12:34:32 -0700</date>
            <delta_ts>2015-10-30 13:06:27 -0700</delta_ts>
            <desc>Part 16 - mouse event handling</desc>
            <filename>16.diff</filename>
            <type>text/plain</type>
            <size>15035</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCBhZjBjYWNhLi5hYTI5ZmE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC02LDYgKzYsMzUg
QEAKICAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAKICAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBtb3VzZU1vdmVkOl0p
OgorICAgICAgICAoLVtXS1ZpZXcgbW91c2VEb3duOl0pOgorICAgICAgICAoLVtXS1ZpZXcgbW91
c2VVcDpdKToKKyAgICAgICAgKC1bV0tWaWV3IG1vdXNlRHJhZ2dlZDpdKToKKyAgICAgICAgKC1b
V0tWaWV3IG1vdXNlRW50ZXJlZDpdKToKKyAgICAgICAgKC1bV0tWaWV3IG1vdXNlRXhpdGVkOl0p
OgorICAgICAgICAoLVtXS1ZpZXcgb3RoZXJNb3VzZURvd246XSk6CisgICAgICAgICgtW1dLVmll
dyBvdGhlck1vdXNlRHJhZ2dlZDpdKToKKyAgICAgICAgKC1bV0tWaWV3IG90aGVyTW91c2VVcDpd
KToKKyAgICAgICAgKC1bV0tWaWV3IHJpZ2h0TW91c2VEb3duOl0pOgorICAgICAgICAoLVtXS1Zp
ZXcgcmlnaHRNb3VzZURyYWdnZWQ6XSk6CisgICAgICAgICgtW1dLVmlldyByaWdodE1vdXNlVXA6
XSk6CisgICAgICAgICgtW1dLVmlldyBfdXBkYXRlVmlld0V4cG9zZWRSZWN0XSk6IERlbGV0ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6bW91c2VNb3ZlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjptb3VzZURvd24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bW91c2VVcCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjptb3VzZURyYWdnZWQpOgorICAgICAgICBNb3ZlIG1vdXNlIGV2ZW50
IGhhbmRsaW5nLgorCisyMDE1LTEwLTMwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBw
bGUuY29tPgorCisgICAgICAgIFdLVmlldyBiZWluZyBpbnNpZGUgV0tXZWJWaWV3IGxlYWRzIHRv
IHdlaXJkIEFQSSBpc3N1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE1MDE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgogICAgICAgICAoLVtXS1Zp
ZXcgX3dhbnRzS2V5RG93bkZvckV2ZW50Ol0pOgogICAgICAgICAoLVtXS1ZpZXcgYWNjZXB0c0Zp
cnN0TW91c2U6XSk6CiAgICAgICAgICgtW1dLVmlldyBzaG91bGREZWxheVdpbmRvd09yZGVyaW5n
Rm9yRXZlbnQ6XSk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0K
aW5kZXggODA4YTZhMi4uNGJjMmZlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbQpAQCAtNTQ5LDg4ICs1NDksNiBAQCBTb21lIG90aGVyIGVkaXRpbmctcmVs
YXRlZCBtZXRob2RzIHN0aWxsIHVuaW1wbGVtZW50ZWQ6CiAgICAgcmV0dXJuIF9kYXRhLT5faW1w
bC0+d2FudHNLZXlEb3duRm9yRXZlbnQoZXZlbnQpOwogfQogCi0jaWYgVVNFKEFTWU5DX05TVEVY
VElOUFVUQ0xJRU5UKQotI2RlZmluZSBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUihTZWxlY3Rv
cikgXAotICAgIC0gKHZvaWQpU2VsZWN0b3I6KE5TRXZlbnQgKil0aGVFdmVudCBcCi0gICAgeyBc
Ci0gICAgICAgIGlmIChfZGF0YS0+X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKSBcCi0g
ICAgICAgICAgICByZXR1cm47IFwKLSAgICAgICAgaWYgKE5TVGV4dElucHV0Q29udGV4dCAqY29u
dGV4dCA9IFtzZWxmIGlucHV0Q29udGV4dF0pIHsgXAotICAgICAgICAgICAgW2NvbnRleHQgaGFu
ZGxlRXZlbnQ6dGhlRXZlbnQgY29tcGxldGlvbkhhbmRsZXI6XihCT09MIGhhbmRsZWQpIHsgXAot
ICAgICAgICAgICAgICAgIGlmIChoYW5kbGVkKSBcCi0gICAgICAgICAgICAgICAgICAgIExPRyhU
ZXh0SW5wdXQsICIlcyB3YXMgaGFuZGxlZCBieSB0ZXh0IGlucHV0IGNvbnRleHQiLCBTdHJpbmco
I1NlbGVjdG9yKS5zdWJzdHJpbmcoMCwgU3RyaW5nKCNTZWxlY3RvcikuZmluZCgiSW50ZXJuYWwi
KSkuYXNjaWkoKS5kYXRhKCkpOyBcCi0gICAgICAgICAgICAgICAgZWxzZSB7IFwKLSAgICAgICAg
ICAgICAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudCh0aGVFdmVudCwgX2RhdGEt
Pl9pbXBsLT5sYXN0UHJlc3N1cmVFdmVudCgpLCBzZWxmKTsgXAotICAgICAgICAgICAgICAgICAg
ICBfZGF0YS0+X3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOyBcCi0gICAgICAgICAg
ICAgICAgfSBcCi0gICAgICAgICAgICB9XTsgXAotICAgICAgICAgICAgcmV0dXJuOyBcCi0gICAg
ICAgIH0gXAotICAgICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KHRoZUV2ZW50LCBf
ZGF0YS0+X2ltcGwtPmxhc3RQcmVzc3VyZUV2ZW50KCksIHNlbGYpOyBcCi0gICAgICAgIF9kYXRh
LT5fcGFnZS0+aGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7IFwKLSAgICB9Ci0jZGVmaW5lIE5B
VElWRV9NT1VTRV9FVkVOVF9IQU5ETEVSX0lOVEVSTkFMKFNlbGVjdG9yKSBcCi0gICAgLSAodm9p
ZClTZWxlY3RvcjooTlNFdmVudCAqKXRoZUV2ZW50IFwKLSAgICB7IFwKLSAgICAgICAgaWYgKF9k
YXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpIFwKLSAgICAgICAgICAgIHJldHVy
bjsgXAotICAgICAgICBpZiAoTlNUZXh0SW5wdXRDb250ZXh0ICpjb250ZXh0ID0gW3NlbGYgaW5w
dXRDb250ZXh0XSkgeyBcCi0gICAgICAgICAgICBbY29udGV4dCBoYW5kbGVFdmVudDp0aGVFdmVu
dCBjb21wbGV0aW9uSGFuZGxlcjpeKEJPT0wgaGFuZGxlZCkgeyBcCi0gICAgICAgICAgICAgICAg
aWYgKGhhbmRsZWQpIFwKLSAgICAgICAgICAgICAgICAgICAgTE9HKFRleHRJbnB1dCwgIiVzIHdh
cyBoYW5kbGVkIGJ5IHRleHQgaW5wdXQgY29udGV4dCIsIFN0cmluZygjU2VsZWN0b3IpLnN1YnN0
cmluZygwLCBTdHJpbmcoI1NlbGVjdG9yKS5maW5kKCJJbnRlcm5hbCIpKS5hc2NpaSgpLmRhdGEo
KSk7IFwKLSAgICAgICAgICAgICAgICBlbHNlIHsgXAotICAgICAgICAgICAgICAgICAgICBOYXRp
dmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KHRoZUV2ZW50LCBfZGF0YS0+X2ltcGwtPmxhc3RQcmVz
c3VyZUV2ZW50KCksIHNlbGYpOyBcCi0gICAgICAgICAgICAgICAgICAgIF9kYXRhLT5fcGFnZS0+
aGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7IFwKLSAgICAgICAgICAgICAgICB9IFwKLSAgICAg
ICAgICAgIH1dOyBcCi0gICAgICAgICAgICByZXR1cm47IFwKLSAgICAgICAgfSBcCi0gICAgICAg
IE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQodGhlRXZlbnQsIF9kYXRhLT5faW1wbC0+bGFz
dFByZXNzdXJlRXZlbnQoKSwgc2VsZik7IFwKLSAgICAgICAgX2RhdGEtPl9wYWdlLT5oYW5kbGVN
b3VzZUV2ZW50KHdlYkV2ZW50KTsgXAotICAgIH0KLSNlbHNlCi0jZGVmaW5lIE5BVElWRV9NT1VT
RV9FVkVOVF9IQU5ETEVSKFNlbGVjdG9yKSBcCi0gICAgLSAodm9pZClTZWxlY3RvcjooTlNFdmVu
dCAqKXRoZUV2ZW50IFwKLSAgICB7IFwKLSAgICAgICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jl
c05vbldoZWVsRXZlbnRzKCkpIFwKLSAgICAgICAgICAgIHJldHVybjsgXAotICAgICAgICBpZiAo
W1tzZWxmIGlucHV0Q29udGV4dF0gaGFuZGxlRXZlbnQ6dGhlRXZlbnRdKSB7IFwKLSAgICAgICAg
ICAgIExPRyhUZXh0SW5wdXQsICIlcyB3YXMgaGFuZGxlZCBieSB0ZXh0IGlucHV0IGNvbnRleHQi
LCBTdHJpbmcoI1NlbGVjdG9yKS5zdWJzdHJpbmcoMCwgU3RyaW5nKCNTZWxlY3RvcikuZmluZCgi
SW50ZXJuYWwiKSkuYXNjaWkoKS5kYXRhKCkpOyBcCi0gICAgICAgICAgICByZXR1cm47IFwKLSAg
ICAgICAgfSBcCi0gICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQodGhlRXZlbnQs
IF9kYXRhLT5faW1wbC0+bGFzdFByZXNzdXJlRXZlbnQoKSwgc2VsZik7IFwKLSAgICAgICAgX2Rh
dGEtPl9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsgXAotICAgIH0KLSNkZWZpbmUg
TkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwoU2VsZWN0b3IpIFwKLSAgICAtICh2
b2lkKVNlbGVjdG9yOihOU0V2ZW50ICopdGhlRXZlbnQgXAotICAgIHsgXAotICAgICAgICBpZiAo
X2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxFdmVudHMoKSkgXAotICAgICAgICAgICAgcmV0
dXJuOyBcCi0gICAgICAgIGlmIChbW3NlbGYgaW5wdXRDb250ZXh0XSBoYW5kbGVFdmVudDp0aGVF
dmVudF0pIHsgXAotICAgICAgICAgICAgTE9HKFRleHRJbnB1dCwgIiVzIHdhcyBoYW5kbGVkIGJ5
IHRleHQgaW5wdXQgY29udGV4dCIsIFN0cmluZygjU2VsZWN0b3IpLnN1YnN0cmluZygwLCBTdHJp
bmcoI1NlbGVjdG9yKS5maW5kKCJJbnRlcm5hbCIpKS5hc2NpaSgpLmRhdGEoKSk7IFwKLSAgICAg
ICAgICAgIHJldHVybjsgXAotICAgICAgICB9IFwKLSAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVu
dCB3ZWJFdmVudCh0aGVFdmVudCwgX2RhdGEtPl9pbXBsLT5sYXN0UHJlc3N1cmVFdmVudCgpLCBz
ZWxmKTsgXAotICAgICAgICBfZGF0YS0+X3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQp
OyBcCi0gICAgfQotI2VuZGlmCi0KLU5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVSKG1vdXNlRW50
ZXJlZCkKLU5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVSKG1vdXNlRXhpdGVkKQotTkFUSVZFX01P
VVNFX0VWRU5UX0hBTkRMRVIob3RoZXJNb3VzZURvd24pCi1OQVRJVkVfTU9VU0VfRVZFTlRfSEFO
RExFUihvdGhlck1vdXNlRHJhZ2dlZCkKLU5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVSKG90aGVy
TW91c2VVcCkKLU5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVSKHJpZ2h0TW91c2VEb3duKQotTkFU
SVZFX01PVVNFX0VWRU5UX0hBTkRMRVIocmlnaHRNb3VzZURyYWdnZWQpCi1OQVRJVkVfTU9VU0Vf
RVZFTlRfSEFORExFUihyaWdodE1vdXNlVXApCi0KLU5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVS
X0lOVEVSTkFMKG1vdXNlTW92ZWRJbnRlcm5hbCkKLU5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVS
X0lOVEVSTkFMKG1vdXNlRG93bkludGVybmFsKQotTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJf
SU5URVJOQUwobW91c2VVcEludGVybmFsKQotTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5U
RVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCi0KLSN1bmRlZiBOQVRJVkVfTU9VU0VfRVZFTlRf
SEFORExFUgotCiAtICh2b2lkKXNjcm9sbFdoZWVsOihOU0V2ZW50ICopZXZlbnQKIHsKICAgICBf
ZGF0YS0+X2ltcGwtPnNjcm9sbFdoZWVsKGV2ZW50KTsKQEAgLTY0Myw0NCArNTYxLDYyIEBAIE5B
VElWRV9NT1VTRV9FVkVOVF9IQU5ETEVSX0lOVEVSTkFMKG1vdXNlRHJhZ2dlZEludGVybmFsKQog
CiAtICh2b2lkKW1vdXNlTW92ZWQ6KE5TRXZlbnQgKilldmVudAogewotICAgIGlmIChfZGF0YS0+
X2ltcGwtPmlnbm9yZXNOb25XaGVlbEV2ZW50cygpKQotICAgICAgICByZXR1cm47CisgICAgX2Rh
dGEtPl9pbXBsLT5tb3VzZU1vdmVkKGV2ZW50KTsKK30KIAotICAgIC8vIFdoZW4gYSB2aWV3IGlz
IGZpcnN0IHJlc3BvbmRlciwgaXQgZ2V0cyBtb3VzZSBtb3ZlZCBldmVudHMgZXZlbiB3aGVuIHRo
ZSBtb3VzZSBpcyBvdXRzaWRlIGl0cyB2aXNpYmxlIHJlY3QuCi0gICAgaWYgKHNlbGYgPT0gW1tz
ZWxmIHdpbmRvd10gZmlyc3RSZXNwb25kZXJdICYmICFOU1BvaW50SW5SZWN0KFtzZWxmIGNvbnZl
cnRQb2ludDpbZXZlbnQgbG9jYXRpb25JbldpbmRvd10gZnJvbVZpZXc6bmlsXSwgW3NlbGYgdmlz
aWJsZVJlY3RdKSkKLSAgICAgICAgcmV0dXJuOworLSAodm9pZCltb3VzZURvd246KE5TRXZlbnQg
KilldmVudAoreworICAgIF9kYXRhLT5faW1wbC0+bW91c2VEb3duKGV2ZW50KTsKK30KIAotICAg
IFtzZWxmIG1vdXNlTW92ZWRJbnRlcm5hbDpldmVudF07CistICh2b2lkKW1vdXNlVXA6KE5TRXZl
bnQgKilldmVudAoreworICAgIF9kYXRhLT5faW1wbC0+bW91c2VVcChldmVudCk7CiB9CiAKLS0g
KHZvaWQpbW91c2VEb3duOihOU0V2ZW50ICopZXZlbnQKKy0gKHZvaWQpbW91c2VEcmFnZ2VkOihO
U0V2ZW50ICopZXZlbnQKIHsKLSAgICBpZiAoX2RhdGEtPl9pbXBsLT5pZ25vcmVzTm9uV2hlZWxF
dmVudHMoKSkKLSAgICAgICAgcmV0dXJuOworICAgIF9kYXRhLT5faW1wbC0+bW91c2VEcmFnZ2Vk
KGV2ZW50KTsKK30KIAotICAgIF9kYXRhLT5faW1wbC0+c2V0TGFzdE1vdXNlRG93bkV2ZW50KGV2
ZW50KTsKLSAgICBfZGF0YS0+X2ltcGwtPnNldElnbm9yZXNNb3VzZURyYWdnZWRFdmVudHMoZmFs
c2UpOworLSAodm9pZCltb3VzZUVudGVyZWQ6KE5TRXZlbnQgKilldmVudAoreworICAgIF9kYXRh
LT5faW1wbC0+bW91c2VFbnRlcmVkKGV2ZW50KTsKK30KIAotICAgIFtzZWxmIG1vdXNlRG93bklu
dGVybmFsOmV2ZW50XTsKKy0gKHZvaWQpbW91c2VFeGl0ZWQ6KE5TRXZlbnQgKilldmVudAorewor
ICAgIF9kYXRhLT5faW1wbC0+bW91c2VFeGl0ZWQoZXZlbnQpOwogfQogCi0tICh2b2lkKW1vdXNl
VXA6KE5TRXZlbnQgKilldmVudAorLSAodm9pZClvdGhlck1vdXNlRG93bjooTlNFdmVudCAqKWV2
ZW50CiB7Ci0gICAgaWYgKF9kYXRhLT5faW1wbC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCi0g
ICAgICAgIHJldHVybjsKKyAgICBfZGF0YS0+X2ltcGwtPm90aGVyTW91c2VEb3duKGV2ZW50KTsK
K30KIAotICAgIF9kYXRhLT5faW1wbC0+c2V0TGFzdE1vdXNlRG93bkV2ZW50KG5pbCk7Ci0gICAg
W3NlbGYgbW91c2VVcEludGVybmFsOmV2ZW50XTsKKy0gKHZvaWQpb3RoZXJNb3VzZURyYWdnZWQ6
KE5TRXZlbnQgKilldmVudAoreworICAgIF9kYXRhLT5faW1wbC0+b3RoZXJNb3VzZURyYWdnZWQo
ZXZlbnQpOwogfQogCi0tICh2b2lkKW1vdXNlRHJhZ2dlZDooTlNFdmVudCAqKWV2ZW50CistICh2
b2lkKW90aGVyTW91c2VVcDooTlNFdmVudCAqKWV2ZW50CiB7Ci0gICAgaWYgKF9kYXRhLT5faW1w
bC0+aWdub3Jlc05vbldoZWVsRXZlbnRzKCkpCi0gICAgICAgIHJldHVybjsKLSAgICBpZiAoX2Rh
dGEtPl9pbXBsLT5pZ25vcmVzTW91c2VEcmFnZ2VkRXZlbnRzKCkpCi0gICAgICAgIHJldHVybjsK
KyAgICBfZGF0YS0+X2ltcGwtPm90aGVyTW91c2VVcChldmVudCk7Cit9CisKKy0gKHZvaWQpcmln
aHRNb3VzZURvd246KE5TRXZlbnQgKilldmVudAoreworICAgIF9kYXRhLT5faW1wbC0+cmlnaHRN
b3VzZURvd24oZXZlbnQpOworfQorCistICh2b2lkKXJpZ2h0TW91c2VEcmFnZ2VkOihOU0V2ZW50
ICopZXZlbnQKK3sKKyAgICBfZGF0YS0+X2ltcGwtPnJpZ2h0TW91c2VEcmFnZ2VkKGV2ZW50KTsK
K30KIAotICAgIFtzZWxmIG1vdXNlRHJhZ2dlZEludGVybmFsOmV2ZW50XTsKKy0gKHZvaWQpcmln
aHRNb3VzZVVwOihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICBfZGF0YS0+X2ltcGwtPnJpZ2h0TW91
c2VVcChldmVudCk7CiB9CiAKIC0gKHZvaWQpcHJlc3N1cmVDaGFuZ2VXaXRoRXZlbnQ6KE5TRXZl
bnQgKilldmVudApAQCAtMTEwOCwxMyArMTA0NCw2IEBAIE5BVElWRV9NT1VTRV9FVkVOVF9IQU5E
TEVSX0lOVEVSTkFMKG1vdXNlRHJhZ2dlZEludGVybmFsKQogfQogI2VuZGlmIC8vIFdLX0FQSV9F
TkFCTEVECiAKLQotLy8gRklYTUU6IEdldCByaWQgb2YgdGhpcyB3aGVuIHdlIGhhdmUgYmV0dGVy
IHBsdW1iaW5nIHRvIFdLVmlld0xheW91dFN0cmF0ZWd5LgotLSAodm9pZClfdXBkYXRlVmlld0V4
cG9zZWRSZWN0Ci17Ci0gICAgX2RhdGEtPl9pbXBsLT51cGRhdGVWaWV3RXhwb3NlZFJlY3QoKTsK
LX0KLQogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tWaWV3IChQcml2YXRlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAppbmRleCBjZTg3YzRmLi5iYmNl
NjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApA
QCAtNDU4LDYgKzQ1OCwxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBjaGFyYWN0ZXJJbmRleEZvclBv
aW50KE5TUG9pbnQsIHZvaWQoXikoTlNVSW50ZWdlcikpOwogI2VuZGlmIC8vIFVTRShBU1lOQ19O
U1RFWFRJTlBVVENMSUVOVCkKIAorICAgIHZvaWQgbW91c2VNb3ZlZChOU0V2ZW50ICopOworICAg
IHZvaWQgbW91c2VEb3duKE5TRXZlbnQgKik7CisgICAgdm9pZCBtb3VzZVVwKE5TRXZlbnQgKik7
CisgICAgdm9pZCBtb3VzZURyYWdnZWQoTlNFdmVudCAqKTsKKyAgICB2b2lkIG1vdXNlRW50ZXJl
ZChOU0V2ZW50ICopOworICAgIHZvaWQgbW91c2VFeGl0ZWQoTlNFdmVudCAqKTsKKyAgICB2b2lk
IG90aGVyTW91c2VEb3duKE5TRXZlbnQgKik7CisgICAgdm9pZCBvdGhlck1vdXNlRHJhZ2dlZChO
U0V2ZW50ICopOworICAgIHZvaWQgb3RoZXJNb3VzZVVwKE5TRXZlbnQgKik7CisgICAgdm9pZCBy
aWdodE1vdXNlRG93bihOU0V2ZW50ICopOworICAgIHZvaWQgcmlnaHRNb3VzZURyYWdnZWQoTlNF
dmVudCAqKTsKKyAgICB2b2lkIHJpZ2h0TW91c2VVcChOU0V2ZW50ICopOworCiBwcml2YXRlOgog
ICAgIFdlYWtQdHI8V2ViVmlld0ltcGw+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQ
dHJGYWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQogCkBAIC00ODUsNiArNDk4LDExIEBAIHByaXZh
dGU6CiAgICAgYm9vbCBpbnRlcnByZXRLZXlFdmVudChOU0V2ZW50ICosIFZlY3RvcjxXZWJDb3Jl
OjpLZXlwcmVzc0NvbW1hbmQ+Jik7CiAjZW5kaWYKIAorICAgIHZvaWQgbW91c2VNb3ZlZEludGVy
bmFsKE5TRXZlbnQgKik7CisgICAgdm9pZCBtb3VzZURvd25JbnRlcm5hbChOU0V2ZW50ICopOwor
ICAgIHZvaWQgbW91c2VVcEludGVybmFsKE5TRXZlbnQgKik7CisgICAgdm9pZCBtb3VzZURyYWdn
ZWRJbnRlcm5hbChOU0V2ZW50ICopOworCiAgICAgTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRl
PiAqbV92aWV3OwogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOwogICAgIFBhZ2VDbGllbnQmIG1f
cGFnZUNsaWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbQppbmRleCA4MWNmMTVlLi4zYzYxMmU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC00MTY5LDYgKzQxNjksMTQwIEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OmZsYWdzQ2hhbmdlZChOU0V2ZW50ICpldmVudCkKIAogI2VuZGlmIC8vIFVTRShB
U1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKIAorI2lmIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVO
VCkKKyNkZWZpbmUgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVIoRXZlbnROYW1lKSBcCisgICAg
dm9pZCBXZWJWaWV3SW1wbDo6RXZlbnROYW1lKE5TRXZlbnQgKmV2ZW50KSBcCisgICAgeyBcCisg
ICAgICAgIGlmIChtX2lnbm9yZXNOb25XaGVlbEV2ZW50cykgXAorICAgICAgICAgICAgcmV0dXJu
OyBcCisgICAgICAgIGlmIChOU1RleHRJbnB1dENvbnRleHQgKmNvbnRleHQgPSBtX3ZpZXcuaW5w
dXRDb250ZXh0KSB7IFwKKyAgICAgICAgICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRy
KCk7IFwKKyAgICAgICAgICAgIFJldGFpblB0cjxOU0V2ZW50PiByZXRhaW5lZEV2ZW50ID0gZXZl
bnQ7IFwKKyAgICAgICAgICAgIFtjb250ZXh0IGhhbmRsZUV2ZW50OmV2ZW50IGNvbXBsZXRpb25I
YW5kbGVyOlt3ZWFrVGhpcywgcmV0YWluZWRFdmVudF0gKEJPT0wgaGFuZGxlZCkgeyBcCisgICAg
ICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykgXAorICAgICAgICAgICAgICAgICAgICByZXR1cm47
IFwKKyAgICAgICAgICAgICAgICBpZiAoaGFuZGxlZCkgXAorICAgICAgICAgICAgICAgICAgICBM
T0coVGV4dElucHV0LCAiJXMgd2FzIGhhbmRsZWQgYnkgdGV4dCBpbnB1dCBjb250ZXh0IiwgU3Ry
aW5nKCNFdmVudE5hbWUpLnN1YnN0cmluZygwLCBTdHJpbmcoI0V2ZW50TmFtZSkuZmluZCgiSW50
ZXJuYWwiKSkuYXNjaWkoKS5kYXRhKCkpOyBcCisgICAgICAgICAgICAgICAgZWxzZSB7IFwKKyAg
ICAgICAgICAgICAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudChyZXRhaW5lZEV2
ZW50LmdldCgpLCB3ZWFrVGhpcy0+bV9sYXN0UHJlc3N1cmVFdmVudC5nZXQoKSwgd2Vha1RoaXMt
Pm1fdmlldyk7IFwKKyAgICAgICAgICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGFnZS5oYW5kbGVN
b3VzZUV2ZW50KHdlYkV2ZW50KTsgXAorICAgICAgICAgICAgICAgIH0gXAorICAgICAgICAgICAg
fV07IFwKKyAgICAgICAgICAgIHJldHVybjsgXAorICAgICAgICB9IFwKKyAgICAgICAgTmF0aXZl
V2ViTW91c2VFdmVudCB3ZWJFdmVudChldmVudCwgbV9sYXN0UHJlc3N1cmVFdmVudC5nZXQoKSwg
bV92aWV3KTsgXAorICAgICAgICBtX3BhZ2UuaGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7IFwK
KyAgICB9CisjZGVmaW5lIE5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVSX0lOVEVSTkFMKEV2ZW50
TmFtZSkgXAorICAgIHZvaWQgV2ViVmlld0ltcGw6OkV2ZW50TmFtZShOU0V2ZW50ICpldmVudCkg
XAorICAgIHsgXAorICAgICAgICBpZiAobV9pZ25vcmVzTm9uV2hlZWxFdmVudHMpIFwKKyAgICAg
ICAgICAgIHJldHVybjsgXAorICAgICAgICBpZiAoTlNUZXh0SW5wdXRDb250ZXh0ICpjb250ZXh0
ID0gbV92aWV3LmlucHV0Q29udGV4dCkgeyBcCisgICAgICAgICAgICBhdXRvIHdlYWtUaGlzID0g
Y3JlYXRlV2Vha1B0cigpOyBcCisgICAgICAgICAgICBSZXRhaW5QdHI8TlNFdmVudD4gcmV0YWlu
ZWRFdmVudCA9IGV2ZW50OyBcCisgICAgICAgICAgICBbY29udGV4dCBoYW5kbGVFdmVudDpldmVu
dCBjb21wbGV0aW9uSGFuZGxlcjpbd2Vha1RoaXMsIHJldGFpbmVkRXZlbnRdIChCT09MIGhhbmRs
ZWQpIHsgXAorICAgICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpIFwKKyAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuOyBcCisgICAgICAgICAgICAgICAgaWYgKGhhbmRsZWQpIFwKKyAgICAgICAg
ICAgICAgICAgICAgTE9HKFRleHRJbnB1dCwgIiVzIHdhcyBoYW5kbGVkIGJ5IHRleHQgaW5wdXQg
Y29udGV4dCIsIFN0cmluZygjRXZlbnROYW1lKS5zdWJzdHJpbmcoMCwgU3RyaW5nKCNFdmVudE5h
bWUpLmZpbmQoIkludGVybmFsIikpLmFzY2lpKCkuZGF0YSgpKTsgXAorICAgICAgICAgICAgICAg
IGVsc2UgeyBcCisgICAgICAgICAgICAgICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZl
bnQocmV0YWluZWRFdmVudC5nZXQoKSwgd2Vha1RoaXMtPm1fbGFzdFByZXNzdXJlRXZlbnQuZ2V0
KCksIHdlYWtUaGlzLT5tX3ZpZXcpOyBcCisgICAgICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5t
X3BhZ2UuaGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7IFwKKyAgICAgICAgICAgICAgICB9IFwK
KyAgICAgICAgICAgIH1dOyBcCisgICAgICAgICAgICByZXR1cm47IFwKKyAgICAgICAgfSBcCisg
ICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQoZXZlbnQsIG1fbGFzdFByZXNzdXJl
RXZlbnQuZ2V0KCksIG1fdmlldyk7IFwKKyAgICAgICAgbV9wYWdlLmhhbmRsZU1vdXNlRXZlbnQo
d2ViRXZlbnQpOyBcCisgICAgfQorICAgIAorI2Vsc2UgLy8gVVNFKEFTWU5DX05TVEVYVElOUFVU
Q0xJRU5UKQorI2RlZmluZSBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUihFdmVudE5hbWUpIFwK
KyAgICB2b2lkIFdlYlZpZXdJbXBsOjpFdmVudE5hbWUoTlNFdmVudCAqZXZlbnQpIFwKKyAgICB7
IFwKKyAgICAgICAgaWYgKG1faWdub3Jlc05vbldoZWVsRXZlbnRzKSBcCisgICAgICAgICAgICBy
ZXR1cm47IFwKKyAgICAgICAgaWYgKFttX3ZpZXcuaW5wdXRDb250ZXh0IGhhbmRsZUV2ZW50OmV2
ZW50XSkgeyBcCisgICAgICAgICAgICBMT0coVGV4dElucHV0LCAiJXMgd2FzIGhhbmRsZWQgYnkg
dGV4dCBpbnB1dCBjb250ZXh0IiwgU3RyaW5nKCNFdmVudE5hbWUpLnN1YnN0cmluZygwLCBTdHJp
bmcoI0V2ZW50TmFtZSkuZmluZCgiSW50ZXJuYWwiKSkuYXNjaWkoKS5kYXRhKCkpOyBcCisgICAg
ICAgICAgICByZXR1cm47IFwKKyAgICAgICAgfSBcCisgICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZl
bnQgd2ViRXZlbnQoZXZlbnQsIG1fbGFzdFByZXNzdXJlRXZlbnQuZ2V0KCksIG1fdmlldyk7IFwK
KyAgICAgICAgX2RhdGEtPl9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsgXAorICAg
IH0KKyNkZWZpbmUgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwoRXZlbnROYW1l
KSBcCisgICAgdm9pZCBXZWJWaWV3SW1wbDo6RXZlbnROYW1lKE5TRXZlbnQgKmV2ZW50KSBcCisg
ICAgeyBcCisgICAgICAgIGlmIChtX2lnbm9yZXNOb25XaGVlbEV2ZW50cykgXAorICAgICAgICAg
ICAgcmV0dXJuOyBcCisgICAgICAgIGlmIChbbV92aWV3LmlucHV0Q29udGV4dCBoYW5kbGVFdmVu
dDpldmVudF0pIHsgXAorICAgICAgICAgICAgTE9HKFRleHRJbnB1dCwgIiVzIHdhcyBoYW5kbGVk
IGJ5IHRleHQgaW5wdXQgY29udGV4dCIsIFN0cmluZygjRXZlbnROYW1lKS5zdWJzdHJpbmcoMCwg
U3RyaW5nKCNFdmVudE5hbWUpLmZpbmQoIkludGVybmFsIikpLmFzY2lpKCkuZGF0YSgpKTsgXAor
ICAgICAgICAgICAgcmV0dXJuOyBcCisgICAgICAgIH0gXAorICAgICAgICBOYXRpdmVXZWJNb3Vz
ZUV2ZW50IHdlYkV2ZW50KGV2ZW50LCBtX2xhc3RQcmVzc3VyZUV2ZW50LmdldCgpLCBtX3ZpZXcp
OyBcCisgICAgICAgIG1fcGFnZS5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsgXAorICAgIH0K
KyNlbmRpZiAvLyBVU0UoQVNZTkNfTlNURVhUSU5QVVRDTElFTlQpCisKK05BVElWRV9NT1VTRV9F
VkVOVF9IQU5ETEVSKG1vdXNlRW50ZXJlZCkKK05BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVSKG1v
dXNlRXhpdGVkKQorTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVIob3RoZXJNb3VzZURvd24pCitO
QVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUihvdGhlck1vdXNlRHJhZ2dlZCkKK05BVElWRV9NT1VT
RV9FVkVOVF9IQU5ETEVSKG90aGVyTW91c2VVcCkKK05BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVS
KHJpZ2h0TW91c2VEb3duKQorTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVIocmlnaHRNb3VzZURy
YWdnZWQpCitOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUihyaWdodE1vdXNlVXApCisKK05BVElW
RV9NT1VTRV9FVkVOVF9IQU5ETEVSX0lOVEVSTkFMKG1vdXNlTW92ZWRJbnRlcm5hbCkKK05BVElW
RV9NT1VTRV9FVkVOVF9IQU5ETEVSX0lOVEVSTkFMKG1vdXNlRG93bkludGVybmFsKQorTkFUSVZF
X01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwobW91c2VVcEludGVybmFsKQorTkFUSVZFX01P
VVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwobW91c2VEcmFnZ2VkSW50ZXJuYWwpCisKKyN1bmRl
ZiBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUgorI3VuZGVmIE5BVElWRV9NT1VTRV9FVkVOVF9I
QU5ETEVSX0lOVEVSTkFMCisKK3ZvaWQgV2ViVmlld0ltcGw6Om1vdXNlTW92ZWQoTlNFdmVudCAq
ZXZlbnQpCit7CisgICAgaWYgKG1faWdub3Jlc05vbldoZWVsRXZlbnRzKQorICAgICAgICByZXR1
cm47CisKKyAgICAvLyBXaGVuIGEgdmlldyBpcyBmaXJzdCByZXNwb25kZXIsIGl0IGdldHMgbW91
c2UgbW92ZWQgZXZlbnRzIGV2ZW4gd2hlbiB0aGUgbW91c2UgaXMgb3V0c2lkZSBpdHMgdmlzaWJs
ZSByZWN0LgorICAgIGlmIChtX3ZpZXcgPT0gbV92aWV3LndpbmRvdy5maXJzdFJlc3BvbmRlciAm
JiAhTlNQb2ludEluUmVjdChbbV92aWV3IGNvbnZlcnRQb2ludDpbZXZlbnQgbG9jYXRpb25Jbldp
bmRvd10gZnJvbVZpZXc6bmlsXSwgbV92aWV3LnZpc2libGVSZWN0KSkKKyAgICAgICAgcmV0dXJu
OworCisgICAgbW91c2VNb3ZlZEludGVybmFsKGV2ZW50KTsKK30KKwordm9pZCBXZWJWaWV3SW1w
bDo6bW91c2VEb3duKE5TRXZlbnQgKmV2ZW50KQoreworICAgIGlmIChtX2lnbm9yZXNOb25XaGVl
bEV2ZW50cykKKyAgICAgICAgcmV0dXJuOworCisgICAgc2V0TGFzdE1vdXNlRG93bkV2ZW50KGV2
ZW50KTsKKyAgICBzZXRJZ25vcmVzTW91c2VEcmFnZ2VkRXZlbnRzKGZhbHNlKTsKKworICAgIG1v
dXNlRG93bkludGVybmFsKGV2ZW50KTsKK30KKwordm9pZCBXZWJWaWV3SW1wbDo6bW91c2VVcChO
U0V2ZW50ICpldmVudCkKK3sKKyAgICBpZiAobV9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAg
ICAgIHJldHVybjsKKworICAgIHNldExhc3RNb3VzZURvd25FdmVudChuaWwpOworICAgIG1vdXNl
VXBJbnRlcm5hbChldmVudCk7Cit9CisKK3ZvaWQgV2ViVmlld0ltcGw6Om1vdXNlRHJhZ2dlZChO
U0V2ZW50ICpldmVudCkKK3sKKyAgICBpZiAobV9pZ25vcmVzTm9uV2hlZWxFdmVudHMpCisgICAg
ICAgIHJldHVybjsKKyAgICBpZiAoaWdub3Jlc01vdXNlRHJhZ2dlZEV2ZW50cygpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBtb3VzZURyYWdnZWRJbnRlcm5hbChldmVudCk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQo=
</data>
<flag name="review"
          id="289541"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264419</attachid>
            <date>2015-10-30 14:36:30 -0700</date>
            <delta_ts>2015-10-30 14:41:01 -0700</delta_ts>
            <desc>Part 17 - move WebPageProxy and PageClientImpl</desc>
            <filename>17.diff</filename>
            <type>text/plain</type>
            <size>141352</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzMjFkMWViLi41YjNkZjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjY3
IEBACisyMDE1LTEwLTMwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIFdLVmlldyBiZWluZyBpbnNpZGUgV0tXZWJWaWV3IGxlYWRzIHRvIHdlaXJkIEFQ
SSBpc3N1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1MDE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgaW5pdFdp
dGhGcmFtZTpwcm9jZXNzR3JvdXA6YnJvd3NpbmdDb250ZXh0R3JvdXA6cmVsYXRlZFRvVmlldzpd
KToKKyAgICAgICAgKC1bV0tWaWV3IHByZXBhcmVDb250ZW50SW5SZWN0Ol0pOgorICAgICAgICAo
LVtXS1ZpZXcgaW5pdFdpdGhGcmFtZTpwcm9jZXNzUG9vbDpjb25maWd1cmF0aW9uOndlYlZpZXc6
XSk6CisgICAgICAgICgtW1dLVmlldyBwYWdlUmVmXSk6CisgICAgICAgICgtW1dLVmlldyBfd2Vi
X2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0SW50ZXJu
YWw6d2l0aFR5cGU6dXNlckRhdGE6XSk6CisgICAgICAgICgtW1dLVmlldyBkZWFsbG9jXSk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW06CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIGlu
aXRXaXRoVmlldzppbXBsOl0pOgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZl
ciBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF9hY3Rp
dmVTcGFjZURpZENoYW5nZTpdKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZp
ZXdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6On5XZWJWaWV3SW1wbCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXREcmF3c0JhY2tncm91bmQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZHJhd3NCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OnNldERyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmlzT3BhcXVlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmFjY2VwdHNGaXJzdE1vdXNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
OnJlc2lnbkZpcnN0UmVzcG9uZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZp
ZXdXaWxsU3RhcnRMaXZlUmVzaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZp
ZXdEaWRFbmRMaXZlUmVzaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0
ZVdpbmRvd0FuZFZpZXdGcmFtZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0
Rml4ZWRMYXlvdXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmZpeGVkTGF5
b3V0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppc1VzaW5nVUlTaWRlQ29t
cG9zaXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0RHJhd2luZ0FyZWFT
aXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmZvcmNlQXN5bmNEcmF3aW5nQXJl
YVNpemVVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2FpdEZvckFzeW5j
RHJhd2luZ0FyZWFTaXplVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVw
ZGF0ZUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRyYXdSZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnByZXBhcmVDb250ZW50SW5SZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZVZpZXdFeHBvc2VkUmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWluaW11bVNpemVGb3JBdXRvTGF5b3V0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFNob3VsZEV4cGFuZFRvVmlld0hlaWdo
dEZvckF1dG9MYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2hvdWxkRXhw
YW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpzZXRJbnRyaW5zaWNDb250ZW50U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpzZXRWaWV3U2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dmlld1Nj
YWxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnN1cHBvcnRzQXJiaXRyYXJ5TGF5
b3V0TW9kZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0T3ZlcnJpZGVEZXZp
Y2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRP
cmRlck9mZlNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRP
cmRlck9uU2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OndpbmRvd0RpZEJl
Y29tZUtleSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRSZXNpZ25L
ZXkpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkTWluaWF0dXJpemUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkRGVtaW5pYXR1cml6ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJv
cGVydGllcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VT
Y3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkQ2hhbmdlTGF5
ZXJIb3N0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OndpbmRvd0RpZENoYW5n
ZU9jY2x1c2lvblN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNob3VsZERl
bGF5V2luZG93T3JkZXJpbmdGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojp3aW5kb3dSZXNpemVNb3VzZUxvY2F0aW9uSXNJblZpc2libGVTY3JvbGxlclRodW1iKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZpZXdEaWRNb3ZlVG9XaW5kb3cpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dmlld0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZpZXdEaWRIaWRlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnZpZXdEaWRVbmhpZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6YWN0aXZlU3BhY2VEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6cG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRVbmRlcmxheUNvbG9yKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnVuZGVybGF5Q29sb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6cGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNldE92ZXJsYXlTY3JvbGxiYXJTdHlsZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpvdmVybGF5U2Nyb2xsYmFyU3R5bGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6ZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjplbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzU3luYyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwcmVwYXJlRm9yTW92ZVRvV2luZG93KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZVNlY3VyZUlucHV0U3RhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0
YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZVBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRLZXlEb3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZUFj
Y2VwdGVkQWx0ZXJuYXRpdmVUZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBy
ZXNzdXJlQ2hhbmdlV2l0aEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omlz
RWRpdGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZXhlY3V0ZUVkaXRDb21t
YW5kRm9yU2VsZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d3JpdGVTZWxl
Y3Rpb25Ub1Bhc3RlYm9hcmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cmVhZFNl
bGVjdGlvbkZyb21QYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZh
bGlkUmVxdWVzdG9yRm9yU2VuZEFuZFJldHVyblR5cGVzKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6dXBkYXRlRm9udFBhbmVsSWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6Y2hhbmdlRm9udEZyb21Gb250UGFuZWwpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6dmFsaWRhdGVVc2VySW50ZXJmYWNlSXRlbSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpzdGFydFNwZWFraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OnNob3dHdWVzc1BhbmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNo
ZWNrU3BlbGxpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y2hhbmdlU3BlbGxp
bmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dG9nZ2xlQ29udGludW91c1NwZWxs
Q2hlY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0R3JhbW1hckNoZWNr
aW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp0b2dnbGVHcmFtbWFy
Q2hlY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dG9nZ2xlQXV0b21hdGlj
U3BlbGxpbmdDb3JyZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRvZ2ds
ZVNtYXJ0SW5zZXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEF1
dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjp0b2dnbGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpzZXRBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp0b2dnbGVBdXRvbWF0aWNEYXNoU3Vic3RpdHV0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEF1dG9tYXRpY0xpbmtEZXRl
Y3Rpb25FbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRvZ2dsZUF1dG9t
YXRpY0xpbmtEZXRlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0QXV0
b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjp0b2dnbGVBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6dXBwZXJjYXNlV29yZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojpsb3dlcmNhc2VXb3JkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNhcGl0YWxp
emVXb3JkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnByZWZlcmVuY2VzRGlkQ2hh
bmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRp
dmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6cXVpY2tMb29rV2l0aEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omlt
bWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRpZENoYW5nZUNvbnRlbnRTaXplKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnNldElnbm9yZXNOb25XaGVlbEV2ZW50cyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVSZW1vdGVBY2Nlc3NpYmlsaXR5UmVnaXN0cmF0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFjY2Vzc2liaWxpdHlSZWdpc3Rl
clVJUHJvY2Vzc1Rva2Vucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzdHJpbmdG
b3JUb29sVGlwKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEluc3BlY3RvckF0
dGFjaG1lbnRWaWV3KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlbW90ZU9iamVj
dFJlZ2lzdHJ5KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZHJhZ2dlZEltYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRyYWdnaW5nRW50ZXJlZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkcmFnZ2luZ1VwZGF0ZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6ZHJhZ2dpbmdFeGl0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6cGVyZm9ybURyYWdPcGVyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6dGFrZVZpZXdTbmFwc2hvdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpz
YXZlQmFja0ZvcndhcmRTbmFwc2hvdEZvckN1cnJlbnRJdGVtKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNhdmVCYWNrRm9yd2FyZFNuYXBzaG90Rm9ySXRlbSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRBbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJl
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRNYWduaWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Om1hZ25pZmljYXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6c2Nyb2xsV2hlZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6c3dpcGVXaXRoRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWFn
bmlmeVdpdGhFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyb3RhdGVXaXRo
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZG9Db21tYW5kQnlTZWxlY3Rv
cik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppbnNlcnRUZXh0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbGVjdGVkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXIp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWFya2VkUmFuZ2VXaXRoQ29tcGxldGlv
bkhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGFzTWFya2VkVGV4dFdp
dGhDb21wbGV0aW9uSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphdHRy
aWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpjaGFyYWN0ZXJJbmRleEZvclBvaW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmlucHV0Q29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1
bm1hcmtUZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldE1hcmtlZFRleHQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVxdWl2YWxlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6a2V5VXApOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6a2V5RG93bik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpmbGFn
c0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZXhlY3V0ZVNhdmVkS2V5
cHJlc3NDb21tYW5kcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZWxlY3RlZFJh
bmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omhhc01hcmtlZFRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWFya2VkUmFuZ2UpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6c2V0Q29udGVudFByZXBhcmF0aW9uUmVjdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9s
bGVyRm9ySGl0VGVzdFJlc3VsdEZyb21WaWV3T25seSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpkZXN0cm95UmVtb3RlT2JqZWN0UmVnaXN0cnkpOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpzY3JvbGxQaW5uaW5nQmVoYXZpb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6Om92ZXJsYXlTY3JvbGxiYXJTdHlsZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0
ZVdlYlBhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6
UGFnZUNsaWVudEltcGwpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRl
RHJhd2luZ0FyZWFQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp2aWV3
U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjphY3RpdmVWaWV3KToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmFjdGl2ZVdpbmRvdyk6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjppc1ZpZXdGb2N1c2VkKToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6Om1ha2VGaXJzdFJlc3BvbmRlcik6CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VDbGllbnRJbXBsOjppc1ZpZXdWaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OmNvbG9yU3BhY2UpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cHJv
Y2Vzc0RpZEV4aXQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cGFnZUNsb3Nl
ZCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRSZWxhdW5jaFByb2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cHJlZmVyZW5jZXNEaWRDaGFuZ2Up
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6dG9vbFRpcENoYW5nZWQpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VDb250ZW50U2l6ZSk6
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzZXRDdXJzb3IpOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVnaXN0ZXJFZGl0Q29tbWFuZCk6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZWdpc3Rlckluc2VydGlvblVuZG9Hcm91cGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjbGVhckFsbEVkaXRDb21tYW5kcyk6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjYW5VbmRvUmVkbyk6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpleGVjdXRlVW5kb1JlZG8pOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnNldFByb21pc2VkRGF0YUZvckltYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudEltcGw6OnNldFByb21pc2VkRGF0YUZvckF0dGFjaG1lbnQpOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50SW1wbDo6dXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXNldFNlY3VyZUlucHV0U3RhdGUpOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6bm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRD
b21wb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjb252ZXJ0VG9E
ZXZpY2VTcGFjZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjb252ZXJ0VG9V
c2VyU3BhY2UpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2NyZWVuVG9Sb290
Vmlldyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyb290Vmlld1RvU2NyZWVu
KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBNZW51UHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29udGV4dE1lbnVQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjcmVhdGVDb2xvclBpY2tlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcik6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jl
c3MpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6YWNjZXNzaWJpbGl0eVdlYlBy
b2Nlc3NUb2tlblJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmVu
dGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdS
b290TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6YWNjZWxlcmF0ZWRD
b21wb3NpdGluZ1Jvb3RMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp0
YWtlVmlld1NuYXBzaG90KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNlbGVj
dGlvbkRpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp3aGVlbEV2
ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjpnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0
YXRlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1EaWN0aW9u
YXJ5TG9va3VwKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpc21pc3NDb250
ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3MpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6c2hvd0NvcnJlY3Rpb25QYW5lbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpyZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6aW50cmluc2ljQ29udGVudFNpemVEaWRDaGFuZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2Vs
ZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2hvd0RpY3RhdGlvbkFs
dGVybmF0aXZlVUkpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y2xvc2VGdWxs
U2NyZWVuTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjppc0Z1bGxT
Y3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZW50ZXJGdWxsU2NyZWVu
KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmV4aXRGdWxsU2NyZWVuKToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmJlZ2FuRW50ZXJGdWxsU2NyZWVuKToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmJlZ2FuRXhpdEZ1bGxTY3JlZW4pOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0Rm9yTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZp
bmlzaExvYWRGb3JNYWluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6
ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZSk6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnRJbXBsOjpyZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmJvdW5kc09mTGF5ZXJJbkxheWVyQmFja2Vk
V2luZG93Q29vcmRpbmF0ZXMpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlk
UGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3QpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6aW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1
bHQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2hvd1BsYXRmb3JtQ29udGV4
dE1lbnUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVmVmlldyk6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkZXJlZlZpZXcpOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6c3RhcnRXaW5kb3dEcmFnKToKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudEltcGw6OnBsYXRmb3JtV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6Omluc3BlY3RvckF0dGFjaG1lbnRWaWV3KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnJlbW90ZU9iamVjdFJlZ2lzdHJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1dlYkNvbG9yUGlja2VyTWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb2xvclBp
Y2tlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJNYWM6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyTWFjOjpXZWJDb2xvclBpY2tlck1hYyk6
CisgICAgICAgICgtW1dLQ29sb3JQb3BvdmVyTWFjIGluaXRXaXRoRnJhbWU6aW5WaWV3Ol0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6V2ViQ29udGV4dE1lbnVQcm94eU1hYyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1
cE1lbnVQcm94eU1hYzo6V2ViUG9wdXBNZW51UHJveHlNYWMpOgorICAgICAgICBNb3ZlIG93bmVy
c2hpcCBvZiBXZWJQYWdlUHJveHkgYW5kIFBhZ2VDbGllbnRJbXBsIHRvIFdlYlZpZXdJbXBsLgor
CiAyMDE1LTEwLTMwICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBB
bm90aGVyIHNwZWN1bGF0aXZlIGJ1aWxkIGZpeC4KQEAgLTc4LDYgKzM0MiwzNSBAQAogICAgICAg
ICBSZXZpZXdlZCBieSBBbmRlcnMgQ2FybHNzb24uCiAKICAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L21hYy9XS1ZpZXcubW06CisgICAgICAgICgtW1dLVmlldyBtb3VzZU1vdmVkOl0pOgorICAgICAg
ICAoLVtXS1ZpZXcgbW91c2VEb3duOl0pOgorICAgICAgICAoLVtXS1ZpZXcgbW91c2VVcDpdKToK
KyAgICAgICAgKC1bV0tWaWV3IG1vdXNlRHJhZ2dlZDpdKToKKyAgICAgICAgKC1bV0tWaWV3IG1v
dXNlRW50ZXJlZDpdKToKKyAgICAgICAgKC1bV0tWaWV3IG1vdXNlRXhpdGVkOl0pOgorICAgICAg
ICAoLVtXS1ZpZXcgb3RoZXJNb3VzZURvd246XSk6CisgICAgICAgICgtW1dLVmlldyBvdGhlck1v
dXNlRHJhZ2dlZDpdKToKKyAgICAgICAgKC1bV0tWaWV3IG90aGVyTW91c2VVcDpdKToKKyAgICAg
ICAgKC1bV0tWaWV3IHJpZ2h0TW91c2VEb3duOl0pOgorICAgICAgICAoLVtXS1ZpZXcgcmlnaHRN
b3VzZURyYWdnZWQ6XSk6CisgICAgICAgICgtW1dLVmlldyByaWdodE1vdXNlVXA6XSk6CisgICAg
ICAgICgtW1dLVmlldyBfdXBkYXRlVmlld0V4cG9zZWRSZWN0XSk6IERlbGV0ZWQuCisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bW91c2VN
b3ZlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjptb3VzZURvd24pOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bW91c2VVcCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjptb3VzZURyYWdnZWQpOgorICAgICAgICBNb3ZlIG1vdXNlIGV2ZW50IGhhbmRsaW5n
LgorCisyMDE1LTEwLTMwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIFdLVmlldyBiZWluZyBpbnNpZGUgV0tXZWJWaWV3IGxlYWRzIHRvIHdlaXJkIEFQ
SSBpc3N1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1MDE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgogICAgICAgICAoLVtXS1ZpZXcgX3dhbnRz
S2V5RG93bkZvckV2ZW50Ol0pOgogICAgICAgICAoLVtXS1ZpZXcgYWNjZXB0c0ZpcnN0TW91c2U6
XSk6CiAgICAgICAgICgtW1dLVmlldyBzaG91bGREZWxheVdpbmRvd09yZGVyaW5nRm9yRXZlbnQ6
XSk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggMTdl
OWJmMS4uYTU1ODYzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9t
YWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmll
dy5tbQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCA8QXBwS2l0L05TQXR0cmlidXRlZFN0cmlu
Zy5oPgogI2VuZGlmCiAKKyNpbXBvcnQgIkFQSUhpdFRlc3RSZXN1bHQuaCIKICNpbXBvcnQgIkFQ
SUxlZ2FjeUNvbnRleHRIaXN0b3J5Q2xpZW50LmgiCiAjaW1wb3J0ICJBUElQYWdlQ29uZmlndXJh
dGlvbi5oIgogI2ltcG9ydCAiQXBwS2l0U1BJLmgiCkBAIC0xMTEsMTggKzExMiw4IEBACiB1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLSNpZiBVU0Uo
QVNZTkNfTlNURVhUSU5QVVRDTElFTlQpCi1AaW50ZXJmYWNlIE5TVGV4dElucHV0Q29udGV4dCAo
V0tOU1RleHRJbnB1dENvbnRleHREZXRhaWxzKQotLSAodm9pZCloYW5kbGVFdmVudDooTlNFdmVu
dCAqKWV2ZW50IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wgaGFuZGxlZCkpY29tcGxl
dGlvbkhhbmRsZXI7Ci0tICh2b2lkKWhhbmRsZUV2ZW50QnlJbnB1dE1ldGhvZDooTlNFdmVudCAq
KWV2ZW50IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKEJPT0wgaGFuZGxlZCkpY29tcGxldGlv
bkhhbmRsZXI7Ci0tIChCT09MKWhhbmRsZUV2ZW50QnlLZXlib2FyZExheW91dDooTlNFdmVudCAq
KWV2ZW50OwotQGVuZAotI2VuZGlmCi0KIEBpbnRlcmZhY2UgV0tWaWV3RGF0YSA6IE5TT2JqZWN0
IHsKIEBwdWJsaWMKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8UGFnZUNsaWVudEltcGw+IF9wYWdlQ2xp
ZW50OwotICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IF9wYWdlOwogICAgIHN0ZDo6dW5pcXVlX3B0
cjxXZWJWaWV3SW1wbD4gX2ltcGw7CiB9CiAKQEAgLTE0NSwyOSArMTM2LDE4IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogCiAtIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgcHJv
Y2Vzc0dyb3VwOihXS1Byb2Nlc3NHcm91cCAqKXByb2Nlc3NHcm91cCBicm93c2luZ0NvbnRleHRH
cm91cDooV0tCcm93c2luZ0NvbnRleHRHcm91cCAqKWJyb3dzaW5nQ29udGV4dEdyb3VwIHJlbGF0
ZWRUb1ZpZXc6KFdLVmlldyAqKXJlbGF0ZWRWaWV3CiB7Ci0gICAgcmV0dXJuIFtzZWxmIGluaXRX
aXRoRnJhbWU6ZnJhbWUgY29udGV4dFJlZjpwcm9jZXNzR3JvdXAuX2NvbnRleHRSZWYgcGFnZUdy
b3VwUmVmOmJyb3dzaW5nQ29udGV4dEdyb3VwLl9wYWdlR3JvdXBSZWYgcmVsYXRlZFRvUGFnZTpy
ZWxhdGVkVmlldyA/IHRvQVBJKHJlbGF0ZWRWaWV3LT5fZGF0YS0+X3BhZ2UuZ2V0KCkpIDogbmls
XTsKKyAgICByZXR1cm4gW3NlbGYgaW5pdFdpdGhGcmFtZTpmcmFtZSBjb250ZXh0UmVmOnByb2Nl
c3NHcm91cC5fY29udGV4dFJlZiBwYWdlR3JvdXBSZWY6YnJvd3NpbmdDb250ZXh0R3JvdXAuX3Bh
Z2VHcm91cFJlZiByZWxhdGVkVG9QYWdlOnJlbGF0ZWRWaWV3ID8gcmVsYXRlZFZpZXcucGFnZVJl
ZiA6IG5pbF07CiB9CiAKICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRAogCiAtICh2b2lkKWRlYWxs
b2MKIHsKLSNpZiBXS19BUElfRU5BQkxFRAotICAgIF9kYXRhLT5faW1wbC0+ZGVzdHJveVJlbW90
ZU9iamVjdFJlZ2lzdHJ5KCk7Ci0jZW5kaWYKLQotICAgIF9kYXRhLT5fcGFnZS0+Y2xvc2UoKTsK
LQogICAgIF9kYXRhLT5faW1wbCA9IG51bGxwdHI7CiAKICAgICBbX2RhdGEgcmVsZWFzZV07CiAg
ICAgX2RhdGEgPSBuaWw7CiAKLSAgICBOU05vdGlmaWNhdGlvbkNlbnRlciogd29ya3NwYWNlTm90
aWZpY2F0aW9uQ2VudGVyID0gW1tOU1dvcmtzcGFjZSBzaGFyZWRXb3Jrc3BhY2VdIG5vdGlmaWNh
dGlvbkNlbnRlcl07Ci0gICAgW3dvcmtzcGFjZU5vdGlmaWNhdGlvbkNlbnRlciByZW1vdmVPYnNl
cnZlcjpzZWxmIG5hbWU6TlNXb3Jrc3BhY2VBY3RpdmVTcGFjZURpZENoYW5nZU5vdGlmaWNhdGlv
biBvYmplY3Q6bmlsXTsKLQotICAgIFdlYlByb2Nlc3NQb29sOjpzdGF0aXN0aWNzKCkud2tWaWV3
Q291bnQtLTsKLQogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIApAQCAtMjM1LDggKzIxNSw3IEBA
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiAtICh2b2lkKXByZXBhcmVDb250ZW50SW5SZWN0
OihOU1JlY3QpcmVjdAogewotICAgIF9kYXRhLT5faW1wbC0+c2V0Q29udGVudFByZXBhcmF0aW9u
UmVjdChOU1JlY3RUb0NHUmVjdChyZWN0KSk7Ci0gICAgX2RhdGEtPl9pbXBsLT51cGRhdGVWaWV3
RXhwb3NlZFJlY3QoKTsKKyAgICBfZGF0YS0+X2ltcGwtPnByZXBhcmVDb250ZW50SW5SZWN0KE5T
UmVjdFRvQ0dSZWN0KHJlY3QpKTsKIH0KIAogLSAodm9pZClzZXRGcmFtZVNpemU6KE5TU2l6ZSlz
aXplCkBAIC0xMDA3LDMzICs5ODYsMTAgQEAgU29tZSBvdGhlciBlZGl0aW5nLXJlbGF0ZWQgbWV0
aG9kcyBzdGlsbCB1bmltcGxlbWVudGVkOgogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJu
IG5pbDsKIAotICAgIFtOU0FwcCByZWdpc3RlclNlcnZpY2VzTWVudVNlbmRUeXBlczpQYXN0ZWJv
YXJkVHlwZXM6OmZvclNlbGVjdGlvbigpIHJldHVyblR5cGVzOlBhc3RlYm9hcmRUeXBlczo6Zm9y
RWRpdGluZygpXTsKLQogICAgIEluaXRpYWxpemVXZWJLaXQyKCk7CiAKICAgICBfZGF0YSA9IFtb
V0tWaWV3RGF0YSBhbGxvY10gaW5pdF07Ci0KLSAgICBfZGF0YS0+X3BhZ2VDbGllbnQgPSBzdGQ6
Om1ha2VfdW5pcXVlPFBhZ2VDbGllbnRJbXBsPihzZWxmLCB3ZWJWaWV3KTsKLSAgICBfZGF0YS0+
X3BhZ2UgPSBwcm9jZXNzUG9vbC5jcmVhdGVXZWJQYWdlKCpfZGF0YS0+X3BhZ2VDbGllbnQsIFdU
Rjo6bW92ZShjb25maWd1cmF0aW9uKSk7Ci0KLSAgICBfZGF0YS0+X2ltcGwgPSBzdGQ6Om1ha2Vf
dW5pcXVlPFdlYlZpZXdJbXBsPihzZWxmLCAqX2RhdGEtPl9wYWdlLCAqX2RhdGEtPl9wYWdlQ2xp
ZW50KTsKLSAgICBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50SW1wbCY+KCpfZGF0YS0+X3BhZ2VDbGll
bnQpLnNldEltcGwoKl9kYXRhLT5faW1wbCk7Ci0KLSAgICBfZGF0YS0+X3BhZ2UtPnNldEFkZHNW
aXNpdGVkTGlua3MocHJvY2Vzc1Bvb2wuaGlzdG9yeUNsaWVudCgpLmFkZHNWaXNpdGVkTGlua3Mo
KSk7Ci0KLSAgICBfZGF0YS0+X3BhZ2UtPmluaXRpYWxpemVXZWJQYWdlKCk7Ci0KLSAgICBfZGF0
YS0+X2ltcGwtPnJlZ2lzdGVyRHJhZ2dlZFR5cGVzKCk7Ci0KLSAgICBzZWxmLndhbnRzTGF5ZXIg
PSBZRVM7Ci0KLSAgICAvLyBFeHBsaWNpdGx5IHNldCB0aGUgbGF5ZXIgY29udGVudHMgcGxhY2Vt
ZW50IHNvIEFwcEtpdCB3aWxsIG1ha2Ugc3VyZSB0aGF0IG91ciBsYXllciBoYXMgbWFza3NUb0Jv
dW5kcyBzZXQgdG8gWUVTLgotICAgIHNlbGYubGF5ZXJDb250ZW50c1BsYWNlbWVudCA9IE5TVmll
d0xheWVyQ29udGVudHNQbGFjZW1lbnRUb3BMZWZ0OwotCi0gICAgV2ViUHJvY2Vzc1Bvb2w6OnN0
YXRpc3RpY3MoKS53a1ZpZXdDb3VudCsrOwotCi0gICAgTlNOb3RpZmljYXRpb25DZW50ZXIqIHdv
cmtzcGFjZU5vdGlmaWNhdGlvbkNlbnRlciA9IFtbTlNXb3Jrc3BhY2Ugc2hhcmVkV29ya3NwYWNl
XSBub3RpZmljYXRpb25DZW50ZXJdOwotICAgIFt3b3Jrc3BhY2VOb3RpZmljYXRpb25DZW50ZXIg
YWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FjdGl2ZVNwYWNlRGlkQ2hhbmdl
OikgbmFtZTpOU1dvcmtzcGFjZUFjdGl2ZVNwYWNlRGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVj
dDpuaWxdOworICAgIF9kYXRhLT5faW1wbCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViVmlld0ltcGw+
KHNlbGYsIHdlYlZpZXcsIHByb2Nlc3NQb29sLCBXVEY6Om1vdmUoY29uZmlndXJhdGlvbikpOwog
CiAgICAgcmV0dXJuIHNlbGY7CiB9CkBAIC0xMTAxLDcgKzEwNTcsNyBAQCBTb21lIG90aGVyIGVk
aXRpbmctcmVsYXRlZCBtZXRob2RzIHN0aWxsIHVuaW1wbGVtZW50ZWQ6CiAKIC0gKFdLUGFnZVJl
ZilwYWdlUmVmCiB7Ci0gICAgcmV0dXJuIHRvQVBJKF9kYXRhLT5fcGFnZS5nZXQoKSk7CisgICAg
cmV0dXJuIHRvQVBJKCZfZGF0YS0+X2ltcGwtPnBhZ2UoKSk7CiB9CiAKIC0gKEJPT0wpY2FuQ2hh
bmdlRnJhbWVMYXlvdXQ6KFdLRnJhbWVSZWYpZnJhbWVSZWYKQEAgLTE0NzQsNiArMTQzMCwxMSBA
QCBzdGF0aWMgX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlIHRvQVBJU2Nyb2xsYmFyU3R5bGUoV1RG
OjpPcHRpb25hbDxXZWJDb3JlOjpTY3JvbAogICAgIF9kYXRhLT5faW1wbC0+c2V0RGlkTW92ZVN3
aXBlU25hcHNob3RDYWxsYmFjayhjYWxsYmFjayk7CiB9CiAKKy0gKGlkKV93ZWJfaW1tZWRpYXRl
QWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHRJbnRlcm5hbDooQVBJOjpI
aXRUZXN0UmVzdWx0KiloaXRUZXN0UmVzdWx0IHdpdGhUeXBlOih1aW50MzJfdCl0eXBlIHVzZXJE
YXRhOihBUEk6Ok9iamVjdCopdXNlckRhdGEKK3sKKyAgICByZXR1cm4gW3NlbGYgX2ltbWVkaWF0
ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0OnRvQVBJKGhpdFRlc3RS
ZXN1bHQpIHdpdGhUeXBlOnR5cGUgdXNlckRhdGE6dG9BUEkodXNlckRhdGEpXTsKK30KKwogLSAo
aWQpX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0OihX
S0hpdFRlc3RSZXN1bHRSZWYpaGl0VGVzdFJlc3VsdCB3aXRoVHlwZToodWludDMyX3QpdHlwZSB1
c2VyRGF0YTooV0tUeXBlUmVmKXVzZXJEYXRhCiB7CiAgICAgcmV0dXJuIG5pbDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgKaW5kZXggYTIzMmI5NS4uYzg3
NGMwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmgK
QEAgLTQ2LDYgKzQ2LDcgQEAgT0JKQ19DTEFTUyBXS0VkaXRvclVuZG9UYXJnZXRPYmpDOwogT0JK
Q19DTEFTUyBXS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyOwogT0JKQ19DTEFTUyBXS0ltbWVk
aWF0ZUFjdGlvbkNvbnRyb2xsZXI7CiBPQkpDX0NMQVNTIFdLVmlld0xheW91dFN0cmF0ZWd5Owor
T0JKQ19DTEFTUyBXS1dlYlZpZXc7CiBPQkpDX0NMQVNTIFdLV2luZG93VmlzaWJpbGl0eU9ic2Vy
dmVyOwogT0JKQ19DTEFTUyBfV0tUaHVtYm5haWxWaWV3OwogCkBAIC02NywxMyArNjgsMTUgQEAg
T0JKQ19DTEFTUyBfV0tUaHVtYm5haWxWaWV3OwogLy8gVGhleSdyZSBub3QgYWN0dWFsbHkgb3B0
aW9uYWwuCiBAb3B0aW9uYWwKIAotLSAoaWQpX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRy
b2xsZXJGb3JIaXRUZXN0UmVzdWx0OihXS0hpdFRlc3RSZXN1bHRSZWYpaGl0VGVzdFJlc3VsdCB3
aXRoVHlwZToodWludDMyX3QpdHlwZSB1c2VyRGF0YTooV0tUeXBlUmVmKXVzZXJEYXRhOworLSAo
aWQpX3dlYl9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3Vs
dEludGVybmFsOihBUEk6OkhpdFRlc3RSZXN1bHQqKWhpdFRlc3RSZXN1bHQgd2l0aFR5cGU6KHVp
bnQzMl90KXR5cGUgdXNlckRhdGE6KEFQSTo6T2JqZWN0Kil1c2VyRGF0YTsKKwogLSAodm9pZClf
cHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbjsKIC0gKHZvaWQpX2NhbmNlbEltbWVk
aWF0ZUFjdGlvbkFuaW1hdGlvbjsKIC0gKHZvaWQpX2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5p
bWF0aW9uOwogLSAodm9pZClfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93czsKIC0g
KHZvaWQpX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uOihC
T09MKWFuaW1hdGU7CiAtICh2b2lkKV9nZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3Jl
OihOU0V2ZW50ICopZXZlbnQ7CistICh2b2lkKV9kaWRDaGFuZ2VDb250ZW50U2l6ZTooTlNTaXpl
KW5ld1NpemU7CiAKIEBlbmQKIApAQCAtODMsNiArODYsNyBAQCBzdHJ1Y3QgS2V5UHJlc3NDb21t
YW5kOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgUGFnZUNsaWVudEltcGw7CiBjbGFz
cyBEcmF3aW5nQXJlYVByb3h5OwogY2xhc3MgVmlld0dlc3R1cmVDb250cm9sbGVyOwogY2xhc3Mg
V2ViRWRpdENvbW1hbmRQcm94eTsKQEAgLTEwNiwxMiArMTEwLDE0IEBAIGNsYXNzIFdlYlZpZXdJ
bXBsIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBXVEZfTUFLRV9OT05DT1BZ
QUJMRShXZWJWaWV3SW1wbCk7CiBwdWJsaWM6Ci0gICAgV2ViVmlld0ltcGwoTlNWaWV3IDxXZWJW
aWV3SW1wbERlbGVnYXRlPiAqLCBXZWJQYWdlUHJveHkmLCBQYWdlQ2xpZW50Jik7CisgICAgV2Vi
Vmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAqLCBXS1dlYlZpZXcgKm91dGVy
V2ViVmlldywgV2ViUHJvY2Vzc1Bvb2wmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJik7
CiAKICAgICB+V2ViVmlld0ltcGwoKTsKIAogICAgIE5TV2luZG93ICp3aW5kb3coKTsKIAorICAg
IFdlYlBhZ2VQcm94eSYgcGFnZSgpIHsgcmV0dXJuIG1fcGFnZS5nZXQoKTsgfQorCiAgICAgdm9p
ZCBwcm9jZXNzRGlkRXhpdCgpOwogICAgIHZvaWQgcGFnZUNsb3NlZCgpOwogICAgIHZvaWQgZGlk
UmVsYXVuY2hQcm9jZXNzKCk7CkBAIC0xNjAsNyArMTY2LDcgQEAgcHVibGljOgogICAgIHZvaWQg
c2V0VG9wQ29udGVudEluc2V0KENHRmxvYXQpOwogICAgIENHRmxvYXQgdG9wQ29udGVudEluc2V0
KCkgY29uc3QgeyByZXR1cm4gbV90b3BDb250ZW50SW5zZXQ7IH0KIAotICAgIHZvaWQgc2V0Q29u
dGVudFByZXBhcmF0aW9uUmVjdChDR1JlY3QpOworICAgIHZvaWQgcHJlcGFyZUNvbnRlbnRJblJl
Y3QoQ0dSZWN0KTsKICAgICB2b2lkIHVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgpOwogICAgIHZvaWQg
c2V0Q2xpcHNUb1Zpc2libGVSZWN0KGJvb2wpOwogICAgIGJvb2wgY2xpcHNUb1Zpc2libGVSZWN0
KCkgY29uc3QgeyByZXR1cm4gbV9jbGlwc1RvVmlzaWJsZVJlY3Q7IH0KQEAgLTMxOCwxMiArMzI0
LDEyIEBAIHB1YmxpYzoKICAgICB2b2lkIHByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwKCk7CiAg
ICAgdm9pZCBzZXRBbGxvd3NMaW5rUHJldmlldyhib29sKTsKICAgICBib29sIGFsbG93c0xpbmtQ
cmV2aWV3KCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd3NMaW5rUHJldmlldzsgfQotICAgIHZvaWQq
IGltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0KFdLSGl0
VGVzdFJlc3VsdFJlZiwgdWludDMyX3QgdHlwZSwgV0tUeXBlUmVmIHVzZXJEYXRhKTsKLSAgICB2
b2lkKiBpbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdEZy
b21WaWV3T25seShXS0hpdFRlc3RSZXN1bHRSZWYsIHVpbnQzMl90IHR5cGUsIFdLVHlwZVJlZiB1
c2VyRGF0YSk7CisgICAgdm9pZCogaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZv
ckhpdFRlc3RSZXN1bHQoQVBJOjpIaXRUZXN0UmVzdWx0KiwgdWludDMyX3QgdHlwZSwgQVBJOjpP
YmplY3QqIHVzZXJEYXRhKTsKICAgICB2b2lkIGRpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRU
ZXN0KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHREYXRhJiwgYm9vbCBjb250ZW50UHJldmVudHNEZWZh
dWx0LCBBUEk6Ok9iamVjdCogdXNlckRhdGEpOwogICAgIHZvaWQgcHJlcGFyZUZvckltbWVkaWF0
ZUFjdGlvbkFuaW1hdGlvbigpOwogICAgIHZvaWQgY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0
aW9uKCk7CiAgICAgdm9pZCBjb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbigpOworICAg
IHZvaWQgZGlkQ2hhbmdlQ29udGVudFNpemUoQ0dTaXplKTsKIAogICAgIHZvaWQgc2V0SWdub3Jl
c05vbldoZWVsRXZlbnRzKGJvb2wpOwogICAgIGJvb2wgaWdub3Jlc05vbldoZWVsRXZlbnRzKCkg
Y29uc3QgeyByZXR1cm4gbV9pZ25vcmVzTm9uV2hlZWxFdmVudHM7IH0KQEAgLTM2Myw3ICszNjks
NiBAQCBwdWJsaWM6CiAgICAgTlNWaWV3ICppbnNwZWN0b3JBdHRhY2htZW50VmlldygpOwogCiAg
ICAgX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKnJlbW90ZU9iamVjdFJlZ2lzdHJ5KCk7Ci0gICAg
dm9pZCBkZXN0cm95UmVtb3RlT2JqZWN0UmVnaXN0cnkoKTsgLy8gRklYTUU6IFRlbXBvcmFyeS4g
Q2FuIGZvbGQgaW4gYWZ0ZXIgd2UgbW92ZSBvd25lcnNoaXAgb2YgV2ViUGFnZVByb3h5IGhlcmUu
CiAKICAgICBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKmJyb3dzaW5nQ29udGV4dENvbnRy
b2xsZXIoKTsKICNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApAQCAtNTA0LDggKzUwOSw4IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBtb3VzZURyYWdnZWRJbnRlcm5hbChOU0V2ZW50ICopOwogCiAgICAg
TlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAqbV92aWV3OwotICAgIFdlYlBhZ2VQcm94eSYg
bV9wYWdlOwotICAgIFBhZ2VDbGllbnQmIG1fcGFnZUNsaWVudDsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8UGFnZUNsaWVudD4gbV9wYWdlQ2xpZW50OworICAgIFJlZjxXZWJQYWdlUHJveHk+IG1fcGFn
ZTsKIAogICAgIFdlYWtQdHJGYWN0b3J5PFdlYlZpZXdJbXBsPiBtX3dlYWtQdHJGYWN0b3J5Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXgg
ZjQ4NzE0OS4uNGRiYmQ3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgUExBVEZPUk0oTUFDKQogCisj
aW1wb3J0ICJBUElMZWdhY3lDb250ZXh0SGlzdG9yeUNsaWVudC5oIgogI2ltcG9ydCAiQXBwS2l0
U1BJLmgiCiAjaW1wb3J0ICJDb2xvclNwYWNlRGF0YS5oIgogI2ltcG9ydCAiR2VuZXJpY0NhbGxi
YWNrLmgiCkBAIC0zNyw2ICszOCw3IEBACiAjaW1wb3J0ICJOYXRpdmVXZWJNb3VzZUV2ZW50Lmgi
CiAjaW1wb3J0ICJOYXRpdmVXZWJXaGVlbEV2ZW50LmgiCiAjaW1wb3J0ICJQYWdlQ2xpZW50Lmgi
CisjaW1wb3J0ICJQYWdlQ2xpZW50SW1wbC5oIgogI2ltcG9ydCAiUGFzdGVib2FyZFR5cGVzLmgi
CiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgiCiAjaW1wb3J0ICJS
ZW1vdGVPYmplY3RSZWdpc3RyeS5oIgpAQCAtMTIxLDYgKzEyMyw5IEBAIFNPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTChMb29rdXAsIExVTm90aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9zZSwgTlNT
dHJpbmcgKikKICAgICBfdmlldyA9IHZpZXc7CiAgICAgX2ltcGwgPSAmaW1wbDsKIAorICAgIE5T
Tm90aWZpY2F0aW9uQ2VudGVyKiB3b3Jrc3BhY2VOb3RpZmljYXRpb25DZW50ZXIgPSBbW05TV29y
a3NwYWNlIHNoYXJlZFdvcmtzcGFjZV0gbm90aWZpY2F0aW9uQ2VudGVyXTsKKyAgICBbd29ya3Nw
YWNlTm90aWZpY2F0aW9uQ2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9y
KF9hY3RpdmVTcGFjZURpZENoYW5nZTopIG5hbWU6TlNXb3Jrc3BhY2VBY3RpdmVTcGFjZURpZENo
YW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKKwogICAgIHJldHVybiBzZWxmOwogfQogCkBA
IC0xMjksNiArMTM0LDkgQEAgU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMKExvb2t1cCwgTFVO
b3RpZmljYXRpb25Qb3BvdmVyV2lsbENsb3NlLCBOU1N0cmluZyAqKQogICAgIGlmIChjYW5Mb2Fk
TFVOb3RpZmljYXRpb25Qb3BvdmVyV2lsbENsb3NlKCkpCiAgICAgICAgIFtbTlNOb3RpZmljYXRp
b25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOmdldExVTm90
aWZpY2F0aW9uUG9wb3ZlcldpbGxDbG9zZSgpIG9iamVjdDpuaWxdOwogCisgICAgTlNOb3RpZmlj
YXRpb25DZW50ZXIgKndvcmtzcGFjZU5vdGlmaWNhdGlvbkNlbnRlciA9IFtbTlNXb3Jrc3BhY2Ug
c2hhcmVkV29ya3NwYWNlXSBub3RpZmljYXRpb25DZW50ZXJdOworICAgIFt3b3Jrc3BhY2VOb3Rp
ZmljYXRpb25DZW50ZXIgcmVtb3ZlT2JzZXJ2ZXI6c2VsZiBuYW1lOk5TV29ya3NwYWNlQWN0aXZl
U3BhY2VEaWRDaGFuZ2VOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CisKICAgICBbc3VwZXIgZGVh
bGxvY107CiB9CiAKQEAgLTI4Nyw2ICsyOTUsMTEgQEAgc3RhdGljIHZvaWQqIGtleVZhbHVlT2Jz
ZXJ2aW5nQ29udGV4dCA9ICZrZXlWYWx1ZU9ic2VydmluZ0NvbnRleHQ7CiAgICAgX2ltcGwtPmNs
ZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRv
d0Rpc21pc3NhbEFuaW1hdGlvbjo6Tm9uZSk7CiB9CiAKKy0gKHZvaWQpX2FjdGl2ZVNwYWNlRGlk
Q2hhbmdlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlvbgoreworICAgIF9pbXBsLT5hY3Rp
dmVTcGFjZURpZENoYW5nZSgpOworfQorCiBAZW5kCiAKIEBpbnRlcmZhY2UgV0tFZGl0Q29tbWFu
ZE9iakMgOiBOU09iamVjdCB7CkBAIC00MjcsMjEgKzQ0MCwyMyBAQCBzdGF0aWMgTlNUcmFja2lu
Z0FyZWFPcHRpb25zIHRyYWNraW5nQXJlYU9wdGlvbnMoKQogICAgIHJldHVybiBvcHRpb25zOwog
fQogCi1XZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRl
PiAqdmlldywgV2ViUGFnZVByb3h5JiBwYWdlLCBQYWdlQ2xpZW50JiBwYWdlQ2xpZW50KQorV2Vi
Vmlld0ltcGw6OldlYlZpZXdJbXBsKE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKnZpZXcs
IFdLV2ViVmlldyAqb3V0ZXJXZWJWaWV3LCBXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wsIFJl
ZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmIGNvbmZpZ3VyYXRpb24pCiAgICAgOiBtX3ZpZXco
dmlldykKLSAgICAsIG1fcGFnZShwYWdlKQotICAgICwgbV9wYWdlQ2xpZW50KHBhZ2VDbGllbnQp
CisgICAgLCBtX3BhZ2VDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxQYWdlQ2xpZW50SW1wbD4odmll
dywgb3V0ZXJXZWJWaWV3LCAqdGhpcykpCisgICAgLCBtX3BhZ2UocHJvY2Vzc1Bvb2wuY3JlYXRl
V2ViUGFnZSgqbV9wYWdlQ2xpZW50LCBXVEY6Om1vdmUoY29uZmlndXJhdGlvbikpKQogICAgICwg
bV93ZWFrUHRyRmFjdG9yeSh0aGlzKQotICAgICwgbV9uZWVkc1ZpZXdGcmFtZUluV2luZG93Q29v
cmRpbmF0ZXMobV9wYWdlLnByZWZlcmVuY2VzKCkucGx1Z2luc0VuYWJsZWQoKSkKKyAgICAsIG1f
bmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKG1fcGFnZS0+cHJlZmVyZW5jZXMoKS5w
bHVnaW5zRW5hYmxlZCgpKQogICAgICwgbV9pbnRyaW5zaWNDb250ZW50U2l6ZShDR1NpemVNYWtl
KE5TVmlld05vSW5zdHJpbnNpY01ldHJpYywgTlNWaWV3Tm9JbnN0cmluc2ljTWV0cmljKSkKICAg
ICAsIG1fbGF5b3V0U3RyYXRlZ3koW1dLVmlld0xheW91dFN0cmF0ZWd5IGxheW91dFN0cmF0ZWd5
V2l0aFBhZ2U6bV9wYWdlIHZpZXc6bV92aWV3IHZpZXdJbXBsOip0aGlzIG1vZGU6a1dLTGF5b3V0
TW9kZVZpZXdTaXplXSkKICAgICAsIG1fdW5kb1RhcmdldChhZG9wdE5TKFtbV0tFZGl0b3JVbmRv
VGFyZ2V0T2JqQyBhbGxvY10gaW5pdF0pKQogICAgICwgbV93aW5kb3dWaXNpYmlsaXR5T2JzZXJ2
ZXIoYWRvcHROUyhbW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIGFsbG9jXSBpbml0V2l0aFZp
ZXc6dmlldyBpbXBsOip0aGlzXSkpCiAgICAgLCBtX3ByaW1hcnlUcmFja2luZ0FyZWEoYWRvcHRO
UyhbW05TVHJhY2tpbmdBcmVhIGFsbG9jXSBpbml0V2l0aFJlY3Q6bV92aWV3LmZyYW1lIG9wdGlv
bnM6dHJhY2tpbmdBcmVhT3B0aW9ucygpIG93bmVyOm1fdmlldyB1c2VySW5mbzpuaWxdKSkKIHsK
KyAgICBbTlNBcHAgcmVnaXN0ZXJTZXJ2aWNlc01lbnVTZW5kVHlwZXM6UGFzdGVib2FyZFR5cGVz
Ojpmb3JTZWxlY3Rpb24oKSByZXR1cm5UeXBlczpQYXN0ZWJvYXJkVHlwZXM6OmZvckVkaXRpbmco
KV07CisKICAgICBbbV92aWV3IGFkZFRyYWNraW5nQXJlYTptX3ByaW1hcnlUcmFja2luZ0FyZWEu
Z2V0KCldOwogCi0gICAgbV9wYWdlLnNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKGludHJp
bnNpY0RldmljZVNjYWxlRmFjdG9yKCkpOworICAgIG1fcGFnZS0+c2V0SW50cmluc2ljRGV2aWNl
U2NhbGVGYWN0b3IoaW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoKSk7CiAKICNpZiBfX01BQ19P
U19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAogICAgIGlmIChDbGFzcyBnZXN0dXJl
Q2xhc3MgPSBOU0NsYXNzRnJvbVN0cmluZyhAIk5TSW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29n
bml6ZXIiKSkgewpAQCAtNDUxLDEwICs0NjYsMzIgQEAgV2ViVmlld0ltcGw6OldlYlZpZXdJbXBs
KE5TVmlldyA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4gKnZpZXcsIFdlYlBhZ2VQcm94eSYgcGFnZSwK
ICAgICAgICAgW21faW1tZWRpYXRlQWN0aW9uR2VzdHVyZVJlY29nbml6ZXIgc2V0RGVsYXlzUHJp
bWFyeU1vdXNlQnV0dG9uRXZlbnRzOk5PXTsKICAgICB9CiAjZW5kaWYKKworCisgICAgbV9wYWdl
LT5zZXRBZGRzVmlzaXRlZExpbmtzKHByb2Nlc3NQb29sLmhpc3RvcnlDbGllbnQoKS5hZGRzVmlz
aXRlZExpbmtzKCkpOworCisgICAgbV9wYWdlLT5pbml0aWFsaXplV2ViUGFnZSgpOworCisgICAg
cmVnaXN0ZXJEcmFnZ2VkVHlwZXMoKTsKKworICAgIG1fdmlldy53YW50c0xheWVyID0gWUVTOwor
CisgICAgLy8gRXhwbGljaXRseSBzZXQgdGhlIGxheWVyIGNvbnRlbnRzIHBsYWNlbWVudCBzbyBB
cHBLaXQgd2lsbCBtYWtlIHN1cmUgdGhhdCBvdXIgbGF5ZXIgaGFzIG1hc2tzVG9Cb3VuZHMgc2V0
IHRvIFlFUy4KKyAgICBtX3ZpZXcubGF5ZXJDb250ZW50c1BsYWNlbWVudCA9IE5TVmlld0xheWVy
Q29udGVudHNQbGFjZW1lbnRUb3BMZWZ0OworCisgICAgV2ViUHJvY2Vzc1Bvb2w6OnN0YXRpc3Rp
Y3MoKS53a1ZpZXdDb3VudCsrOwogfQogCiBXZWJWaWV3SW1wbDo6fldlYlZpZXdJbXBsKCkKIHsK
KyNpZiBXS19BUElfRU5BQkxFRAorICAgIGlmIChtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5KSB7Cisg
ICAgICAgIG1fcGFnZS0+cHJvY2VzcygpLnByb2Nlc3NQb29sKCkucmVtb3ZlTWVzc2FnZVJlY2Vp
dmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgp
LCBtX3BhZ2UtPnBhZ2VJRCgpKTsKKyAgICAgICAgW21fcmVtb3RlT2JqZWN0UmVnaXN0cnkgX2lu
dmFsaWRhdGVdOworICAgICAgICBtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5ID0gbmlsOworICAgIH0K
KyNlbmRpZgorCiAgICAgQVNTRVJUKCFtX2luU2VjdXJlSW5wdXRTdGF0ZSk7CiAKICNpZiBXS19B
UElfRU5BQkxFRApAQCAtNDY2LDYgKzUwMywxMSBAQCBXZWJWaWV3SW1wbDo6fldlYlZpZXdJbXBs
KCkKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAogICAgIFtt
X2ltbWVkaWF0ZUFjdGlvbkNvbnRyb2xsZXIgd2lsbERlc3Ryb3lWaWV3Om1fdmlld107CiAjZW5k
aWYKKworICAgIG1fcGFnZS0+Y2xvc2UoKTsKKworICAgIFdlYlByb2Nlc3NQb29sOjpzdGF0aXN0
aWNzKCkud2tWaWV3Q291bnQtLTsKKwogfQogCiBOU1dpbmRvdyAqV2ViVmlld0ltcGw6OndpbmRv
dygpCkBAIC00OTcsMjcgKzUzOSwyNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkaWRSZWxhdW5jaFBy
b2Nlc3MoKQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXREcmF3c0JhY2tncm91bmQoYm9vbCBkcmF3
c0JhY2tncm91bmQpCiB7Ci0gICAgbV9wYWdlLnNldERyYXdzQmFja2dyb3VuZChkcmF3c0JhY2tn
cm91bmQpOworICAgIG1fcGFnZS0+c2V0RHJhd3NCYWNrZ3JvdW5kKGRyYXdzQmFja2dyb3VuZCk7
CiB9CiAKIGJvb2wgV2ViVmlld0ltcGw6OmRyYXdzQmFja2dyb3VuZCgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fcGFnZS5kcmF3c0JhY2tncm91bmQoKTsKKyAgICByZXR1cm4gbV9wYWdlLT5kcmF3
c0JhY2tncm91bmQoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0RHJhd3NUcmFuc3BhcmVu
dEJhY2tncm91bmQoYm9vbCBkcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCkKIHsKLSAgICBtX3Bh
Z2Uuc2V0RHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoZHJhd3NUcmFuc3BhcmVudEJhY2tncm91
bmQpOworICAgIG1fcGFnZS0+c2V0RHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoZHJhd3NUcmFu
c3BhcmVudEJhY2tncm91bmQpOwogfQogCiBib29sIFdlYlZpZXdJbXBsOjpkcmF3c1RyYW5zcGFy
ZW50QmFja2dyb3VuZCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcGFnZS5kcmF3c1RyYW5zcGFy
ZW50QmFja2dyb3VuZCgpOworICAgIHJldHVybiBtX3BhZ2UtPmRyYXdzVHJhbnNwYXJlbnRCYWNr
Z3JvdW5kKCk7CiB9CiAKIGJvb2wgV2ViVmlld0ltcGw6OmlzT3BhcXVlKCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gbV9wYWdlLmRyYXdzQmFja2dyb3VuZCgpOworICAgIHJldHVybiBtX3BhZ2UtPmRy
YXdzQmFja2dyb3VuZCgpOwogfQogCiBib29sIFdlYlZpZXdJbXBsOjphY2NlcHRzRmlyc3RNb3Vz
ZShOU0V2ZW50ICpldmVudCkKQEAgLTUzMSw3ICs1NzMsNyBAQCBib29sIFdlYlZpZXdJbXBsOjph
Y2NlcHRzRmlyc3RNb3VzZShOU0V2ZW50ICpldmVudCkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
CiAgICAgc2V0TGFzdE1vdXNlRG93bkV2ZW50KGV2ZW50KTsKLSAgICBib29sIHJlc3VsdCA9IG1f
cGFnZS5hY2NlcHRzRmlyc3RNb3VzZShldmVudC5ldmVudE51bWJlciwgV2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBtX2xhc3RQcmVzc3VyZUV2ZW50LmdldCgpLCBt
X3ZpZXcpKTsKKyAgICBib29sIHJlc3VsdCA9IG1fcGFnZS0+YWNjZXB0c0ZpcnN0TW91c2UoZXZl
bnQuZXZlbnROdW1iZXIsIFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChldmVu
dCwgbV9sYXN0UHJlc3N1cmVFdmVudC5nZXQoKSwgbV92aWV3KSk7CiAgICAgc2V0TGFzdE1vdXNl
RG93bkV2ZW50KG5pbCk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KQEAgLTU1NSw5ICs1OTcsOSBA
QCBib29sIFdlYlZpZXdJbXBsOjpiZWNvbWVGaXJzdFJlc3BvbmRlcigpCiAgICAgbV9pbkJlY29t
ZUZpcnN0UmVzcG9uZGVyID0gdHJ1ZTsKIAogICAgIHVwZGF0ZVNlY3VyZUlucHV0U3RhdGUoKTsK
LSAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNGb2N1
c2VkKTsKKyAgICBtX3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6
OklzRm9jdXNlZCk7CiAgICAgLy8gUmVzdG9yZSB0aGUgc2VsZWN0aW9uIGluIHRoZSBlZGl0YWJs
ZSByZWdpb24gaWYgcmVzaWduaW5nIGZpcnN0IHJlc3BvbmRlciBjbGVhcmVkIHNlbGVjdGlvbi4K
LSAgICBtX3BhZ2UucmVzdG9yZVNlbGVjdGlvbkluRm9jdXNlZEVkaXRhYmxlRWxlbWVudCgpOwor
ICAgIG1fcGFnZS0+cmVzdG9yZVNlbGVjdGlvbkluRm9jdXNlZEVkaXRhYmxlRWxlbWVudCgpOwog
CiAgICAgbV9pbkJlY29tZUZpcnN0UmVzcG9uZGVyID0gZmFsc2U7CiAKQEAgLTU2Niw3ICs2MDgs
NyBAQCBib29sIFdlYlZpZXdJbXBsOjpiZWNvbWVGaXJzdFJlc3BvbmRlcigpCiAgICAgICAgIE5T
RXZlbnQgKmtleWJvYXJkRXZlbnQgPSBuaWw7CiAgICAgICAgIGlmIChbZXZlbnQgdHlwZV0gPT0g
TlNLZXlEb3duIHx8IFtldmVudCB0eXBlXSA9PSBOU0tleVVwKQogICAgICAgICAgICAga2V5Ym9h
cmRFdmVudCA9IGV2ZW50OwotICAgICAgICBtX3BhZ2Uuc2V0SW5pdGlhbEZvY3VzKGRpcmVjdGlv
biA9PSBOU1NlbGVjdGluZ05leHQsIGtleWJvYXJkRXZlbnQgIT0gbmlsLCBOYXRpdmVXZWJLZXli
b2FyZEV2ZW50KGtleWJvYXJkRXZlbnQsIGZhbHNlLCB7IH0pLCBbXShXZWJLaXQ6OkNhbGxiYWNr
QmFzZTo6RXJyb3IpIHsgfSk7CisgICAgICAgIG1fcGFnZS0+c2V0SW5pdGlhbEZvY3VzKGRpcmVj
dGlvbiA9PSBOU1NlbGVjdGluZ05leHQsIGtleWJvYXJkRXZlbnQgIT0gbmlsLCBOYXRpdmVXZWJL
ZXlib2FyZEV2ZW50KGtleWJvYXJkRXZlbnQsIGZhbHNlLCB7IH0pLCBbXShXZWJLaXQ6OkNhbGxi
YWNrQmFzZTo6RXJyb3IpIHsgfSk7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwogfQpAQCAtNTg5
LDIwICs2MzEsMjAgQEAgYm9vbCBXZWJWaWV3SW1wbDo6cmVzaWduRmlyc3RSZXNwb25kZXIoKQog
ICAgIG1faW5SZXNpZ25GaXJzdFJlc3BvbmRlciA9IHRydWU7CiAKICNpZiBVU0UoQVNZTkNfTlNU
RVhUSU5QVVRDTElFTlQpCi0gICAgbV9wYWdlLmNvbmZpcm1Db21wb3NpdGlvbkFzeW5jKCk7Cisg
ICAgbV9wYWdlLT5jb25maXJtQ29tcG9zaXRpb25Bc3luYygpOwogI2Vsc2UKLSAgICBpZiAobV9w
YWdlLmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb24gJiYgIW1fcGFnZS5lZGl0b3JTdGF0ZSgp
LnNob3VsZElnbm9yZUNvbXBvc2l0aW9uU2VsZWN0aW9uQ2hhbmdlKQotICAgICAgICBtX3BhZ2Uu
Y2FuY2VsQ29tcG9zaXRpb24oKTsKKyAgICBpZiAobV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmhhc0Nv
bXBvc2l0aW9uICYmICFtX3BhZ2UtPmVkaXRvclN0YXRlKCkuc2hvdWxkSWdub3JlQ29tcG9zaXRp
b25TZWxlY3Rpb25DaGFuZ2UpCisgICAgICAgIG1fcGFnZS0+Y2FuY2VsQ29tcG9zaXRpb24oKTsK
ICNlbmRpZgogCiAgICAgbm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlv
bigpOwogCiAgICAgcmVzZXRTZWN1cmVJbnB1dFN0YXRlKCk7CiAKLSAgICBpZiAoIW1fcGFnZS5t
YWludGFpbnNJbmFjdGl2ZVNlbGVjdGlvbigpKQotICAgICAgICBtX3BhZ2UuY2xlYXJTZWxlY3Rp
b24oKTsKKyAgICBpZiAoIW1fcGFnZS0+bWFpbnRhaW5zSW5hY3RpdmVTZWxlY3Rpb24oKSkKKyAg
ICAgICAgbV9wYWdlLT5jbGVhclNlbGVjdGlvbigpOwogCi0gICAgbV9wYWdlLnZpZXdTdGF0ZURp
ZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OklzRm9jdXNlZCk7CisgICAgbV9wYWdlLT52aWV3
U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0ZvY3VzZWQpOwogICAgIAogICAg
IG1faW5SZXNpZ25GaXJzdFJlc3BvbmRlciA9IGZhbHNlOwogICAgIApAQCAtNjIwLDE0ICs2NjIs
MTQgQEAgYm9vbCBXZWJWaWV3SW1wbDo6aXNGb2N1c2VkKCkgY29uc3QKIAogdm9pZCBXZWJWaWV3
SW1wbDo6dmlld1dpbGxTdGFydExpdmVSZXNpemUoKQogewotICAgIG1fcGFnZS52aWV3V2lsbFN0
YXJ0TGl2ZVJlc2l6ZSgpOworICAgIG1fcGFnZS0+dmlld1dpbGxTdGFydExpdmVSZXNpemUoKTsK
IAogICAgIFttX2xheW91dFN0cmF0ZWd5IHdpbGxTdGFydExpdmVSZXNpemVdOwogfQogCiB2b2lk
IFdlYlZpZXdJbXBsOjp2aWV3RGlkRW5kTGl2ZVJlc2l6ZSgpCiB7Ci0gICAgbV9wYWdlLnZpZXdX
aWxsRW5kTGl2ZVJlc2l6ZSgpOworICAgIG1fcGFnZS0+dmlld1dpbGxFbmRMaXZlUmVzaXplKCk7
CiAKICAgICBbbV9sYXlvdXRTdHJhdGVneSBkaWRFbmRMaXZlUmVzaXplXTsKIH0KQEAgLTcwMSwx
OCArNzQzLDE4IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXMo
KQogICAgICAgICAgICAgYWNjZXNzaWJpbGl0eVBvc2l0aW9uID0gW1t3ZWFrVGhpcy0+bV92aWV3
IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlQb3NpdGlvbkF0dHJp
YnV0ZV0gcG9pbnRWYWx1ZV07CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgICAg
IAotICAgICAgICB3ZWFrVGhpcy0+bV9wYWdlLndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKHZp
ZXdGcmFtZUluV2luZG93Q29vcmRpbmF0ZXMsIGFjY2Vzc2liaWxpdHlQb3NpdGlvbik7CisgICAg
ICAgIHdlYWtUaGlzLT5tX3BhZ2UtPndpbmRvd0FuZFZpZXdGcmFtZXNDaGFuZ2VkKHZpZXdGcmFt
ZUluV2luZG93Q29vcmRpbmF0ZXMsIGFjY2Vzc2liaWxpdHlQb3NpdGlvbik7CiAgICAgfSk7CiB9
CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldEZpeGVkTGF5b3V0U2l6ZShDR1NpemUgZml4ZWRMYXlv
dXRTaXplKQogewotICAgIG1fcGFnZS5zZXRGaXhlZExheW91dFNpemUoV2ViQ29yZTo6ZXhwYW5k
ZWRJbnRTaXplKFdlYkNvcmU6OkZsb2F0U2l6ZShmaXhlZExheW91dFNpemUpKSk7CisgICAgbV9w
YWdlLT5zZXRGaXhlZExheW91dFNpemUoV2ViQ29yZTo6ZXhwYW5kZWRJbnRTaXplKFdlYkNvcmU6
OkZsb2F0U2l6ZShmaXhlZExheW91dFNpemUpKSk7CiB9CiAKIENHU2l6ZSBXZWJWaWV3SW1wbDo6
Zml4ZWRMYXlvdXRTaXplKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wYWdlLmZpeGVkTGF5b3V0
U2l6ZSgpOworICAgIHJldHVybiBtX3BhZ2UtPmZpeGVkTGF5b3V0U2l6ZSgpOwogfQogCiBzdGQ6
OnVuaXF1ZV9wdHI8V2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5PiBXZWJWaWV3SW1wbDo6Y3JlYXRl
RHJhd2luZ0FyZWFQcm94eSgpCkBAIC03MjUsMTYgKzc2NywxNiBAQCBzdGQ6OnVuaXF1ZV9wdHI8
V2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5PiBXZWJWaWV3SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQ
cm94eSgpCiAKIGJvb2wgV2ViVmlld0ltcGw6OmlzVXNpbmdVSVNpZGVDb21wb3NpdGluZygpIGNv
bnN0CiB7Ci0gICAgYXV0byogZHJhd2luZ0FyZWEgPSBtX3BhZ2UuZHJhd2luZ0FyZWEoKTsKKyAg
ICBhdXRvKiBkcmF3aW5nQXJlYSA9IG1fcGFnZS0+ZHJhd2luZ0FyZWEoKTsKICAgICByZXR1cm4g
ZHJhd2luZ0FyZWEgJiYgZHJhd2luZ0FyZWEtPnR5cGUoKSA9PSBEcmF3aW5nQXJlYVR5cGVSZW1v
dGVMYXllclRyZWU7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldERyYXdpbmdBcmVhU2l6ZShD
R1NpemUgc2l6ZSkKIHsKLSAgICBpZiAoIW1fcGFnZS5kcmF3aW5nQXJlYSgpKQorICAgIGlmICgh
bV9wYWdlLT5kcmF3aW5nQXJlYSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BhZ2UuZHJh
d2luZ0FyZWEoKS0+c2V0U2l6ZShXZWJDb3JlOjpJbnRTaXplKHNpemUpLCBXZWJDb3JlOjpJbnRT
aXplKCksIFdlYkNvcmU6OkludFNpemUobV9yZXNpemVTY3JvbGxPZmZzZXQpKTsKKyAgICBtX3Bh
Z2UtPmRyYXdpbmdBcmVhKCktPnNldFNpemUoV2ViQ29yZTo6SW50U2l6ZShzaXplKSwgV2ViQ29y
ZTo6SW50U2l6ZSgpLCBXZWJDb3JlOjpJbnRTaXplKG1fcmVzaXplU2Nyb2xsT2Zmc2V0KSk7CiAg
ICAgbV9yZXNpemVTY3JvbGxPZmZzZXQgPSBDR1NpemVaZXJvOwogfQogCkBAIC03NTUsNyArNzk3
LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6Zm9yY2VBc3luY0RyYXdpbmdBcmVhU2l6ZVVwZGF0ZShD
R1NpemUgc2l6ZSkKICAgICAvLyBJZiBhIGdlb21ldHJ5IHVwZGF0ZSBpcyBwZW5kaW5nIHRoZSBu
ZXcgdXBkYXRlIHdvbid0IGJlIHNlbnQuIFBvbGwgd2l0aG91dCB3YWl0aW5nIGZvciBhbnkKICAg
ICAvLyBwZW5kaW5nIGRpZC11cGRhdGUgbWVzc2FnZSBub3csIHN1Y2ggdGhhdCB0aGUgbmV3IHVw
ZGF0ZSBjYW4gYmUgc2VudC4gV2UgZG8gc28gYWZ0ZXIgc2V0dGluZwogICAgIC8vIHRoZSBkcmF3
aW5nIGFyZWEgc2l6ZSBzdWNoIHRoYXQgdGhlIGxhdGVzdCB1cGRhdGUgaXMgc2VudC4KLSAgICBp
ZiAoRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEgPSBtX3BhZ2UuZHJhd2luZ0FyZWEoKSkK
KyAgICBpZiAoRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEgPSBtX3BhZ2UtPmRyYXdpbmdB
cmVhKCkpCiAgICAgICAgIGRyYXdpbmdBcmVhLT53YWl0Rm9yUG9zc2libGVHZW9tZXRyeVVwZGF0
ZShzdGQ6OmNocm9ubzo6bWlsbGlzZWNvbmRzOjp6ZXJvKCkpOwogI2Vsc2UKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKQEAgLTc2Niw3ICs4MDgsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp3YWl0
Rm9yQXN5bmNEcmF3aW5nQXJlYVNpemVVcGRhdGUoKQogewogICAgIC8vIFRoaXMgU1BJIGlzIG9u
bHkgdXNlZCBvbiAxMC45IGFuZCBiZWxvdywgYW5kIGlzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBm
ZW5jZS1iYXNlZCBkcmF3aW5nIGFyZWEgc2l6ZSBzeW5jaHJvbml6YXRpb24gaW4gMTAuMTArLgog
I2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA5MAotICAgIGlmIChEcmF3
aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJlYSA9IG1fcGFnZS5kcmF3aW5nQXJlYSgpKSB7CisgICAg
aWYgKERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhID0gbV9wYWdlLT5kcmF3aW5nQXJlYSgp
KSB7CiAgICAgICAgIC8vIElmIGEgZ2VvbWV0cnkgdXBkYXRlIGlzIHN0aWxsIHBlbmRpbmcgdGhl
biB0aGUgYWN0aW9uIG9mIHJlY2VpdmluZyB0aGUKICAgICAgICAgLy8gZmlyc3QgZ2VvbWV0cnkg
dXBkYXRlIG1heSByZXN1bHQgaW4gYW5vdGhlciB1cGRhdGUgYmVpbmcgc2NoZWR1bGVkIC0KICAg
ICAgICAgLy8gd2Ugc2hvdWxkIHdhaXQgZm9yIHRoaXMgdG8gY29tcGxldGUgdG9vLgpAQCAtNzky
LDE0ICs4MzQsMTQgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlTGF5ZXIoKQogICAgIGlmIChm
cmFtZVNpemVVcGRhdGVzRGlzYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKERy
YXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhID0gbV9wYWdlLmRyYXdpbmdBcmVhKCkpCisgICAg
aWYgKERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhID0gbV9wYWdlLT5kcmF3aW5nQXJlYSgp
KQogICAgICAgICBkcmF3aW5nQXJlYS0+d2FpdEZvclBvc3NpYmxlR2VvbWV0cnlVcGRhdGUoKTsK
IH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6ZHJhd1JlY3QoQ0dSZWN0IHJlY3QpCiB7CiAgICAgTE9H
KFByaW50aW5nLCAiZHJhd1JlY3Q6IHg6JWcsIHk6JWcsIHdpZHRoOiVnLCBoZWlnaHQ6JWciLCBy
ZWN0Lm9yaWdpbi54LCByZWN0Lm9yaWdpbi55LCByZWN0LnNpemUud2lkdGgsIHJlY3Quc2l6ZS5o
ZWlnaHQpOwotICAgIG1fcGFnZS5lbmRQcmludGluZygpOworICAgIG1fcGFnZS0+ZW5kUHJpbnRp
bmcoKTsKIH0KIAogYm9vbCBXZWJWaWV3SW1wbDo6Y2FuQ2hhbmdlRnJhbWVMYXlvdXQoV2ViRnJh
bWVQcm94eSYgZnJhbWUpCkBAIC04NjksMTMgKzkxMSwxNSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpk
aXNwYXRjaFNldFRvcENvbnRlbnRJbnNldCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fZGlk
U2NoZWR1bGVTZXRUb3BDb250ZW50SW5zZXQgPSBmYWxzZTsKLSAgICBtX3BhZ2Uuc2V0VG9wQ29u
dGVudEluc2V0KG1fdG9wQ29udGVudEluc2V0KTsKKyAgICBtX3BhZ2UtPnNldFRvcENvbnRlbnRJ
bnNldChtX3RvcENvbnRlbnRJbnNldCk7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OnNldENvbnRl
bnRQcmVwYXJhdGlvblJlY3QoQ0dSZWN0IHJlY3QpCit2b2lkIFdlYlZpZXdJbXBsOjpwcmVwYXJl
Q29udGVudEluUmVjdChDR1JlY3QgcmVjdCkKIHsKICAgICBtX2NvbnRlbnRQcmVwYXJhdGlvblJl
Y3QgPSByZWN0OwogICAgIG1fdXNlQ29udGVudFByZXBhcmF0aW9uUmVjdEZvclZpc2libGVSZWN0
ID0gdHJ1ZTsKKworICAgIHVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgpOwogfQogCiB2b2lkIFdlYlZp
ZXdJbXBsOjp1cGRhdGVWaWV3RXhwb3NlZFJlY3QoKQpAQCAtODg1LDcgKzkyOSw3IEBAIHZvaWQg
V2ViVmlld0ltcGw6OnVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgpCiAgICAgaWYgKG1fdXNlQ29udGVu
dFByZXBhcmF0aW9uUmVjdEZvclZpc2libGVSZWN0KQogICAgICAgICBleHBvc2VkUmVjdCA9IENH
UmVjdFVuaW9uKG1fY29udGVudFByZXBhcmF0aW9uUmVjdCwgZXhwb3NlZFJlY3QpOwogCi0gICAg
aWYgKGF1dG8gZHJhd2luZ0FyZWEgPSBtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKKyAgICBpZiAoYXV0
byBkcmF3aW5nQXJlYSA9IG1fcGFnZS0+ZHJhd2luZ0FyZWEoKSkKICAgICAgICAgZHJhd2luZ0Fy
ZWEtPnNldEV4cG9zZWRSZWN0KG1fY2xpcHNUb1Zpc2libGVSZWN0ID8gV2ViQ29yZTo6RmxvYXRS
ZWN0KGV4cG9zZWRSZWN0KSA6IFdlYkNvcmU6OkZsb2F0UmVjdDo6aW5maW5pdGVSZWN0KCkpOwog
fQogCkBAIC04OTksMjUgKzk0MywyNSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRNaW5pbXVtU2l6
ZUZvckF1dG9MYXlvdXQoQ0dTaXplIG1pbmltdW1TaXplRm9yQXV0b0xheW91dCkKIHsKICAgICBi
b29sIGV4cGFuZHNUb0ZpdCA9IG1pbmltdW1TaXplRm9yQXV0b0xheW91dC53aWR0aCA+IDA7CiAK
LSAgICBtX3BhZ2Uuc2V0TWluaW11bUxheW91dFNpemUoV2ViQ29yZTo6SW50U2l6ZShtaW5pbXVt
U2l6ZUZvckF1dG9MYXlvdXQpKTsKLSAgICBtX3BhZ2Uuc2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxl
KCFleHBhbmRzVG9GaXQpOworICAgIG1fcGFnZS0+c2V0TWluaW11bUxheW91dFNpemUoV2ViQ29y
ZTo6SW50U2l6ZShtaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQpKTsKKyAgICBtX3BhZ2UtPnNldE1h
aW5GcmFtZUlzU2Nyb2xsYWJsZSghZXhwYW5kc1RvRml0KTsKIAogICAgIHNldENsaXBzVG9WaXNp
YmxlUmVjdChleHBhbmRzVG9GaXQpOwogfQogCiBDR1NpemUgV2ViVmlld0ltcGw6Om1pbmltdW1T
aXplRm9yQXV0b0xheW91dCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcGFnZS5taW5pbXVtTGF5
b3V0U2l6ZSgpOworICAgIHJldHVybiBtX3BhZ2UtPm1pbmltdW1MYXlvdXRTaXplKCk7CiB9CiAK
IHZvaWQgV2ViVmlld0ltcGw6OnNldFNob3VsZEV4cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlv
dXQoYm9vbCBzaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0KQogewotICAgIG1f
cGFnZS5zZXRBdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KHNob3VsZEV4cGFuZFRv
Vmlld0hlaWdodEZvckF1dG9MYXlvdXQpOworICAgIG1fcGFnZS0+c2V0QXV0b1NpemluZ1Nob3Vs
ZEV4cGFuZFRvVmlld0hlaWdodChzaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0
KTsKIH0KIAogYm9vbCBXZWJWaWV3SW1wbDo6c2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0
b0xheW91dCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcGFnZS5hdXRvU2l6aW5nU2hvdWxkRXhw
YW5kVG9WaWV3SGVpZ2h0KCk7CisgICAgcmV0dXJuIG1fcGFnZS0+YXV0b1NpemluZ1Nob3VsZEV4
cGFuZFRvVmlld0hlaWdodCgpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRJbnRyaW5zaWND
b250ZW50U2l6ZShDR1NpemUgaW50cmluc2ljQ29udGVudFNpemUpCkBAIC05MjcsNyArOTcxLDcg
QEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0SW50cmluc2ljQ29udGVudFNpemUoQ0dTaXplIGludHJp
bnNpY0NvbnRlbnRTaXplKQogICAgIC8vIHNvIHRoYXQgYXV0b2xheW91dCB3aWxsIGtub3cgdG8g
cHJvdmlkZSBzcGFjZSBmb3IgdXMuCiAKICAgICBDR1NpemUgaW50cmluc2ljQ29udGVudFNpemVB
Y2tub3dsZWRnaW5nRmxleGlibGVXaWR0aCA9IGludHJpbnNpY0NvbnRlbnRTaXplOwotICAgIGlm
IChpbnRyaW5zaWNDb250ZW50U2l6ZS53aWR0aCA8IG1fcGFnZS5taW5pbXVtTGF5b3V0U2l6ZSgp
LndpZHRoKCkpCisgICAgaWYgKGludHJpbnNpY0NvbnRlbnRTaXplLndpZHRoIDwgbV9wYWdlLT5t
aW5pbXVtTGF5b3V0U2l6ZSgpLndpZHRoKCkpCiAgICAgICAgIGludHJpbnNpY0NvbnRlbnRTaXpl
QWNrbm93bGVkZ2luZ0ZsZXhpYmxlV2lkdGgud2lkdGggPSBOU1ZpZXdOb0luc3RyaW5zaWNNZXRy
aWM7CiAKICAgICBtX2ludHJpbnNpY0NvbnRlbnRTaXplID0gaW50cmluc2ljQ29udGVudFNpemVB
Y2tub3dsZWRnaW5nRmxleGlibGVXaWR0aDsKQEAgLTk0OSwxMyArOTkzLDEzIEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OnNldFZpZXdTY2FsZShDR0Zsb2F0IHZpZXdTY2FsZSkKICAgICBpZiAodmlld1Nj
YWxlIDw9IDAgfHwgaXNuYW4odmlld1NjYWxlKSB8fCBpc2luZih2aWV3U2NhbGUpKQogICAgICAg
ICBbTlNFeGNlcHRpb24gcmFpc2U6TlNJbnZhbGlkQXJndW1lbnRFeGNlcHRpb24gZm9ybWF0OkAi
VmlldyBzY2FsZSBzaG91bGQgYmUgYSBwb3NpdGl2ZSBudW1iZXIiXTsKIAotICAgIG1fcGFnZS5z
Y2FsZVZpZXcodmlld1NjYWxlKTsKKyAgICBtX3BhZ2UtPnNjYWxlVmlldyh2aWV3U2NhbGUpOwog
ICAgIFttX2xheW91dFN0cmF0ZWd5IGRpZENoYW5nZVZpZXdTY2FsZV07CiB9CiAKIENHRmxvYXQg
V2ViVmlld0ltcGw6OnZpZXdTY2FsZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcGFnZS52aWV3
U2NhbGVGYWN0b3IoKTsKKyAgICByZXR1cm4gbV9wYWdlLT52aWV3U2NhbGVGYWN0b3IoKTsKIH0K
IAogV0tMYXlvdXRNb2RlIFdlYlZpZXdJbXBsOjpsYXlvdXRNb2RlKCkgY29uc3QKQEAgLTk4Miw3
ICsxMDI2LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6c3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2Rl
cygpIGNvbnN0CiAgICAgaWYgKFttX2Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyIGlzRnVsbFNj
cmVlbl0pCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIFdlYkZyYW1lUHJveHkqIGZyYW1l
ID0gbV9wYWdlLm1haW5GcmFtZSgpOworICAgIFdlYkZyYW1lUHJveHkqIGZyYW1lID0gbV9wYWdl
LT5tYWluRnJhbWUoKTsKICAgICBpZiAoIWZyYW1lKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApA
QCAtMTAxNSw3ICsxMDU5LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlU3VwcG9ydHNBcmJp
dHJhcnlMYXlvdXRNb2RlcygpCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRPdmVycmlkZURldmljZVNj
YWxlRmFjdG9yKENHRmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCiB7CiAgICAgbV9vdmVycmlkZURl
dmljZVNjYWxlRmFjdG9yID0gZGV2aWNlU2NhbGVGYWN0b3I7Ci0gICAgbV9wYWdlLnNldEludHJp
bnNpY0RldmljZVNjYWxlRmFjdG9yKGludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKCkpOworICAg
IG1fcGFnZS0+c2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoaW50cmluc2ljRGV2aWNlU2Nh
bGVGYWN0b3IoKSk7CiB9CiAKIGZsb2F0IFdlYlZpZXdJbXBsOjppbnRyaW5zaWNEZXZpY2VTY2Fs
ZUZhY3RvcigpIGNvbnN0CkBAIC0xMDMxLDE5ICsxMDc1LDE5IEBAIGZsb2F0IFdlYlZpZXdJbXBs
OjppbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcigpIGNvbnN0CiAKIHZvaWQgV2ViVmlld0ltcGw6
OndpbmRvd0RpZE9yZGVyT2ZmU2NyZWVuKCkKIHsKLSAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hh
bmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlIHwgV2ViQ29yZTo6Vmlld1N0YXRlOjpX
aW5kb3dJc0FjdGl2ZSk7CisgICAgbV9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6
Vmlld1N0YXRlOjpJc1Zpc2libGUgfCBXZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZl
KTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkT3JkZXJPblNjcmVlbigpCiB7Ci0g
ICAgbV9wYWdlLnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OklzVmlzaWJs
ZSB8IFdlYkNvcmU6OlZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOworICAgIG1fcGFnZS0+dmll
d1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlIHwgV2ViQ29yZTo6
Vmlld1N0YXRlOjpXaW5kb3dJc0FjdGl2ZSk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OndpbmRv
d0RpZEJlY29tZUtleShOU1dpbmRvdyAqa2V5V2luZG93KQogewogICAgIGlmIChrZXlXaW5kb3cg
PT0gbV92aWV3LndpbmRvdyB8fCBrZXlXaW5kb3cgPT0gbV92aWV3LndpbmRvdy5hdHRhY2hlZFNo
ZWV0KSB7CiAgICAgICAgIHVwZGF0ZVNlY3VyZUlucHV0U3RhdGUoKTsKLSAgICAgICAgbV9wYWdl
LnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsK
KyAgICAgICAgbV9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpX
aW5kb3dJc0FjdGl2ZSk7CiAgICAgfQogfQogCkBAIC0xMDUxLDE4ICsxMDk1LDE4IEBAIHZvaWQg
V2ViVmlld0ltcGw6OndpbmRvd0RpZFJlc2lnbktleShOU1dpbmRvdyAqZm9ybWVyS2V5V2luZG93
KQogewogICAgIGlmIChmb3JtZXJLZXlXaW5kb3cgPT0gbV92aWV3LndpbmRvdyB8fCBmb3JtZXJL
ZXlXaW5kb3cgPT0gbV92aWV3LndpbmRvdy5hdHRhY2hlZFNoZWV0KSB7CiAgICAgICAgIHVwZGF0
ZVNlY3VyZUlucHV0U3RhdGUoKTsKLSAgICAgICAgbV9wYWdlLnZpZXdTdGF0ZURpZENoYW5nZShX
ZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsKKyAgICAgICAgbV9wYWdlLT52aWV3
U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpXaW5kb3dJc0FjdGl2ZSk7CiAgICAg
fQogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRNaW5pYXR1cml6ZSgpCiB7Ci0gICAg
bV9wYWdlLnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OklzVmlzaWJsZSk7
CisgICAgbV9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc1Zp
c2libGUpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWREZW1pbmlhdHVyaXplKCkK
IHsKLSAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNW
aXNpYmxlKTsKKyAgICBtX3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3Rh
dGU6OklzVmlzaWJsZSk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZE1vdmUoKQpA
QCAtMTA4MSwzMCArMTEyNSwzMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VC
YWNraW5nUHJvcGVydGllcyhDR0Zsb2F0IG9sZEJhY2tpbmdTY2FsZUZhY3RvcgogICAgIGlmIChv
bGRCYWNraW5nU2NhbGVGYWN0b3IgPT0gbmV3QmFja2luZ1NjYWxlRmFjdG9yKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBtX3BhZ2Uuc2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IobmV3QmFj
a2luZ1NjYWxlRmFjdG9yKTsKKyAgICBtX3BhZ2UtPnNldEludHJpbnNpY0RldmljZVNjYWxlRmFj
dG9yKG5ld0JhY2tpbmdTY2FsZUZhY3Rvcik7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OndpbmRv
d0RpZENoYW5nZVNjcmVlbigpCiB7CiAgICAgTlNXaW5kb3cgKndpbmRvdyA9IG1fdGFyZ2V0V2lu
ZG93Rm9yTW92ZVByZXBhcmF0aW9uID8gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24g
OiBtX3ZpZXcud2luZG93OwotICAgIG1fcGFnZS53aW5kb3dTY3JlZW5EaWRDaGFuZ2UoKFBsYXRm
b3JtRGlzcGxheUlEKVtbW1t3aW5kb3cgc2NyZWVuXSBkZXZpY2VEZXNjcmlwdGlvbl0gb2JqZWN0
Rm9yS2V5OkAiTlNTY3JlZW5OdW1iZXIiXSBpbnRWYWx1ZV0pOworICAgIG1fcGFnZS0+d2luZG93
U2NyZWVuRGlkQ2hhbmdlKChQbGF0Zm9ybURpc3BsYXlJRClbW1tbd2luZG93IHNjcmVlbl0gZGV2
aWNlRGVzY3JpcHRpb25dIG9iamVjdEZvcktleTpAIk5TU2NyZWVuTnVtYmVyIl0gaW50VmFsdWVd
KTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkQ2hhbmdlTGF5ZXJIb3N0aW5nKCkK
IHsKLSAgICBtX3BhZ2UubGF5ZXJIb3N0aW5nTW9kZURpZENoYW5nZSgpOworICAgIG1fcGFnZS0+
bGF5ZXJIb3N0aW5nTW9kZURpZENoYW5nZSgpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjp3aW5k
b3dEaWRDaGFuZ2VPY2NsdXNpb25TdGF0ZSgpCiB7Ci0gICAgbV9wYWdlLnZpZXdTdGF0ZURpZENo
YW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OklzVmlzaWJsZSk7CisgICAgbV9wYWdlLT52aWV3U3Rh
dGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc1Zpc2libGUpOwogfQogCiBib29sIFdl
YlZpZXdJbXBsOjpzaG91bGREZWxheVdpbmRvd09yZGVyaW5nRm9yRXZlbnQoTlNFdmVudCAqZXZl
bnQpCiB7CiAgICAgLy8gSWYgdGhpcyBpcyB0aGUgYWN0aXZlIHdpbmRvdyBvciB3ZSBkb24ndCBo
YXZlIGEgcmFuZ2Ugc2VsZWN0aW9uLCB0aGVyZSBpcyBubyBuZWVkIHRvIHBlcmZvcm0gYWRkaXRp
b25hbCBjaGVja3MKICAgICAvLyBhbmQgd2UgY2FuIGF2b2lkIG1ha2luZyBhIHN5bmNocm9ub3Vz
IGNhbGwgdG8gdGhlIFdlYlByb2Nlc3MuCi0gICAgaWYgKG1fdmlldy53aW5kb3cuaXNLZXlXaW5k
b3cgfHwgbV9wYWdlLmVkaXRvclN0YXRlKCkuc2VsZWN0aW9uSXNOb25lIHx8ICFtX3BhZ2UuZWRp
dG9yU3RhdGUoKS5zZWxlY3Rpb25Jc1JhbmdlKQorICAgIGlmIChtX3ZpZXcud2luZG93LmlzS2V5
V2luZG93IHx8IG1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5zZWxlY3Rpb25Jc05vbmUgfHwgIW1fcGFn
ZS0+ZWRpdG9yU3RhdGUoKS5zZWxlY3Rpb25Jc1JhbmdlKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAKICAgICAvLyBUaGVyZSdzIGEgY2hhbmNlIHRoYXQgcmVzcG9uZGluZyB0byB0aGlzIGV2ZW50
IHdpbGwgcnVuIGEgbmVzdGVkIGV2ZW50IGxvb3AsIGFuZApAQCAtMTExNiw3ICsxMTYwLDcgQEAg
Ym9vbCBXZWJWaWV3SW1wbDo6c2hvdWxkRGVsYXlXaW5kb3dPcmRlcmluZ0ZvckV2ZW50KE5TRXZl
bnQgKmV2ZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzZXRMYXN0TW91c2VEb3du
RXZlbnQoZXZlbnQpOwotICAgIGJvb2wgcmVzdWx0ID0gbV9wYWdlLnNob3VsZERlbGF5V2luZG93
T3JkZXJpbmdGb3JFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoZXZl
bnQsIG1fbGFzdFByZXNzdXJlRXZlbnQuZ2V0KCksIG1fdmlldykpOworICAgIGJvb2wgcmVzdWx0
ID0gbV9wYWdlLT5zaG91bGREZWxheVdpbmRvd09yZGVyaW5nRm9yRXZlbnQoV2ViRXZlbnRGYWN0
b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBtX2xhc3RQcmVzc3VyZUV2ZW50LmdldCgp
LCBtX3ZpZXcpKTsKICAgICBzZXRMYXN0TW91c2VEb3duRXZlbnQobmlsKTsKICAgICByZXR1cm4g
cmVzdWx0OwogfQpAQCAtMTEyNCw3ICsxMTY4LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6c2hvdWxk
RGVsYXlXaW5kb3dPcmRlcmluZ0ZvckV2ZW50KE5TRXZlbnQgKmV2ZW50KQogYm9vbCBXZWJWaWV3
SW1wbDo6d2luZG93UmVzaXplTW91c2VMb2NhdGlvbklzSW5WaXNpYmxlU2Nyb2xsZXJUaHVtYihD
R1BvaW50IHBvaW50KQogewogICAgIE5TUG9pbnQgbG9jYWxQb2ludCA9IFttX3ZpZXcgY29udmVy
dFBvaW50Ok5TUG9pbnRGcm9tQ0dQb2ludChwb2ludCkgZnJvbVZpZXc6bmlsXTsKLSAgICBOU1Jl
Y3QgdmlzaWJsZVRodW1iUmVjdCA9IE5TUmVjdChtX3BhZ2UudmlzaWJsZVNjcm9sbGVyVGh1bWJS
ZWN0KCkpOworICAgIE5TUmVjdCB2aXNpYmxlVGh1bWJSZWN0ID0gTlNSZWN0KG1fcGFnZS0+dmlz
aWJsZVNjcm9sbGVyVGh1bWJSZWN0KCkpOwogICAgIHJldHVybiBOU01vdXNlSW5SZWN0KGxvY2Fs
UG9pbnQsIHZpc2libGVUaHVtYlJlY3QsIG1fdmlldy5pc0ZsaXBwZWQpOwogfQogCkBAIC0xMTU2
LDEyICsxMjAwLDEyIEBAIHZvaWQgV2ViVmlld0ltcGw6OnZpZXdEaWRNb3ZlVG9XaW5kb3coKQog
ICAgICAgICAgICAgbV92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9IHRydWU7CiAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgIHZpZXdTdGF0ZUNoYW5nZXMgfD0gV2ViQ29yZTo6Vmlld1N0
YXRlOjpJc0luV2luZG93OwotICAgICAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKHZpZXdT
dGF0ZUNoYW5nZXMpOworICAgICAgICBtX3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZSh2aWV3U3Rh
dGVDaGFuZ2VzKTsKIAogICAgICAgICB1cGRhdGVXaW5kb3dBbmRWaWV3RnJhbWVzKCk7CiAKICAg
ICAgICAgLy8gRklYTUUoMTM1NTA5KSBUaGlzIGNhbGwgYmVjb21lcyB1bm5lY2Vzc2FyeSBvbmNl
IDEzNTUwOSBpcyBmaXhlZDsgcmVtb3ZlLgotICAgICAgICBtX3BhZ2UubGF5ZXJIb3N0aW5nTW9k
ZURpZENoYW5nZSgpOworICAgICAgICBtX3BhZ2UtPmxheWVySG9zdGluZ01vZGVEaWRDaGFuZ2Uo
KTsKIAogICAgICAgICBpZiAoIW1fZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yKSB7CiAgICAgICAg
ICAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOwpAQCAtMTE4NCw3ICsxMjI4LDcg
QEAgdm9pZCBXZWJWaWV3SW1wbDo6dmlld0RpZE1vdmVUb1dpbmRvdygpCiAgICAgICAgICAgICBt
X3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVkID0gdHJ1ZTsKICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgdmlld1N0YXRlQ2hhbmdlcyB8PSBXZWJDb3JlOjpWaWV3U3RhdGU6OklzSW5XaW5k
b3c7Ci0gICAgICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2Uodmlld1N0YXRlQ2hhbmdlcyk7
CisgICAgICAgIG1fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKHZpZXdTdGF0ZUNoYW5nZXMpOwog
CiAgICAgICAgIFtOU0V2ZW50IHJlbW92ZU1vbml0b3I6bV9mbGFnc0NoYW5nZWRFdmVudE1vbml0
b3JdOwogICAgICAgICBtX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvciA9IG5pbDsKQEAgLTExOTcs
NyArMTI0MSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnZpZXdEaWRNb3ZlVG9XaW5kb3coKQogI2Vu
ZGlmCiAgICAgfQogCi0gICAgbV9wYWdlLnNldEludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKGlu
dHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKCkpOworICAgIG1fcGFnZS0+c2V0SW50cmluc2ljRGV2
aWNlU2NhbGVGYWN0b3IoaW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoKSk7CiB9CiAKIHZvaWQg
V2ViVmlld0ltcGw6OnZpZXdEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllcygpCkBAIC0xMjA3LDIz
ICsxMjUxLDIzIEBAIHZvaWQgV2ViVmlld0ltcGw6OnZpZXdEaWRDaGFuZ2VCYWNraW5nUHJvcGVy
dGllcygpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fY29sb3JTcGFjZSA9IG51bGxwdHI7Ci0g
ICAgaWYgKERyYXdpbmdBcmVhUHJveHkgKmRyYXdpbmdBcmVhID0gbV9wYWdlLmRyYXdpbmdBcmVh
KCkpCisgICAgaWYgKERyYXdpbmdBcmVhUHJveHkgKmRyYXdpbmdBcmVhID0gbV9wYWdlLT5kcmF3
aW5nQXJlYSgpKQogICAgICAgICBkcmF3aW5nQXJlYS0+Y29sb3JTcGFjZURpZENoYW5nZSgpOwog
fQogCiB2b2lkIFdlYlZpZXdJbXBsOjp2aWV3RGlkSGlkZSgpCiB7Ci0gICAgbV9wYWdlLnZpZXdT
dGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OklzVmlzaWJsZSk7CisgICAgbV9wYWdl
LT52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc1Zpc2libGUpOwogfQog
CiB2b2lkIFdlYlZpZXdJbXBsOjp2aWV3RGlkVW5oaWRlKCkKIHsKLSAgICBtX3BhZ2Uudmlld1N0
YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsKKyAgICBtX3BhZ2Ut
PnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OklzVmlzaWJsZSk7CiB9CiAK
IHZvaWQgV2ViVmlld0ltcGw6OmFjdGl2ZVNwYWNlRGlkQ2hhbmdlKCkKIHsKLSAgICBtX3BhZ2Uu
dmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsKKyAgICBt
X3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OklzVmlzaWJsZSk7
CiB9CiAKIE5TVmlldyAqV2ViVmlld0ltcGw6OmhpdFRlc3QoQ0dQb2ludCBwb2ludCkKQEAgLTEy
NDEsNyArMTI4NSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnBvc3RGYWtlTW91c2VNb3ZlZEV2ZW50
Rm9yRmxhZ3NDaGFuZ2VkRXZlbnQoTlNFdmVudCAqZmxhZ3NDaGFuCiAgICAgICAgIG1vZGlmaWVy
RmxhZ3M6ZmxhZ3NDaGFuZ2VkRXZlbnQubW9kaWZpZXJGbGFncyB0aW1lc3RhbXA6ZmxhZ3NDaGFu
Z2VkRXZlbnQudGltZXN0YW1wIHdpbmRvd051bWJlcjpmbGFnc0NoYW5nZWRFdmVudC53aW5kb3dO
dW1iZXIKICAgICAgICAgY29udGV4dDpmbGFnc0NoYW5nZWRFdmVudC5jb250ZXh0IGV2ZW50TnVt
YmVyOjAgY2xpY2tDb3VudDowIHByZXNzdXJlOjBdOwogICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQg
d2ViRXZlbnQoZmFrZUV2ZW50LCBtX2xhc3RQcmVzc3VyZUV2ZW50LmdldCgpLCBtX3ZpZXcpOwot
ICAgIG1fcGFnZS5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsKKyAgICBtX3BhZ2UtPmhhbmRs
ZU1vdXNlRXZlbnQod2ViRXZlbnQpOwogfQogCiBDb2xvclNwYWNlRGF0YSBXZWJWaWV3SW1wbDo6
Y29sb3JTcGFjZSgpCkBAIC0xMjYzLDEyICsxMzA3LDEyIEBAIENvbG9yU3BhY2VEYXRhIFdlYlZp
ZXdJbXBsOjpjb2xvclNwYWNlKCkKIAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0VW5kZXJsYXlDb2xv
cihOU0NvbG9yICp1bmRlcmxheUNvbG9yKQogewotICAgIG1fcGFnZS5zZXRVbmRlcmxheUNvbG9y
KFdlYkNvcmU6OmNvbG9yRnJvbU5TQ29sb3IodW5kZXJsYXlDb2xvcikpOworICAgIG1fcGFnZS0+
c2V0VW5kZXJsYXlDb2xvcihXZWJDb3JlOjpjb2xvckZyb21OU0NvbG9yKHVuZGVybGF5Q29sb3Ip
KTsKIH0KIAogTlNDb2xvciAqV2ViVmlld0ltcGw6OnVuZGVybGF5Q29sb3IoKSBjb25zdAogewot
ICAgIFdlYkNvcmU6OkNvbG9yIHdlYkNvbG9yID0gbV9wYWdlLnVuZGVybGF5Q29sb3IoKTsKKyAg
ICBXZWJDb3JlOjpDb2xvciB3ZWJDb2xvciA9IG1fcGFnZS0+dW5kZXJsYXlDb2xvcigpOwogICAg
IGlmICghd2ViQ29sb3IuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gbmlsOwogCkBAIC0xMjc3
LDcgKzEzMjEsNyBAQCBOU0NvbG9yICpXZWJWaWV3SW1wbDo6dW5kZXJsYXlDb2xvcigpIGNvbnN0
CiAKIE5TQ29sb3IgKldlYlZpZXdJbXBsOjpwYWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3IoKSBj
b25zdAogewotICAgIFdlYkNvcmU6OkNvbG9yIGNvbG9yID0gbV9wYWdlLnBhZ2VFeHRlbmRlZEJh
Y2tncm91bmRDb2xvcigpOworICAgIFdlYkNvcmU6OkNvbG9yIGNvbG9yID0gbV9wYWdlLT5wYWdl
RXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3IoKTsKICAgICBpZiAoIWNvbG9yLmlzVmFsaWQoKSkKICAg
ICAgICAgcmV0dXJuIG5pbDsKIApAQCAtMTI4NiwxMiArMTMzMCwxMiBAQCBOU0NvbG9yICpXZWJW
aWV3SW1wbDo6cGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yKCkgY29uc3QKIAogdm9pZCBXZWJW
aWV3SW1wbDo6c2V0T3ZlcmxheVNjcm9sbGJhclN0eWxlKFdURjo6T3B0aW9uYWw8V2ViQ29yZTo6
U2Nyb2xsYmFyT3ZlcmxheVN0eWxlPiBzY3JvbGxiYXJTdHlsZSkKIHsKLSAgICBtX3BhZ2Uuc2V0
T3ZlcmxheVNjcm9sbGJhclN0eWxlKHNjcm9sbGJhclN0eWxlKTsKKyAgICBtX3BhZ2UtPnNldE92
ZXJsYXlTY3JvbGxiYXJTdHlsZShzY3JvbGxiYXJTdHlsZSk7CiB9CiAKIFdURjo6T3B0aW9uYWw8
V2ViQ29yZTo6U2Nyb2xsYmFyT3ZlcmxheVN0eWxlPiBXZWJWaWV3SW1wbDo6b3ZlcmxheVNjcm9s
bGJhclN0eWxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wYWdlLm92ZXJsYXlTY3JvbGxiYXJT
dHlsZSgpOworICAgIHJldHVybiBtX3BhZ2UtPm92ZXJsYXlTY3JvbGxiYXJTdHlsZSgpOwogfQog
CiB2b2lkIFdlYlZpZXdJbXBsOjpiZWdpbkRlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXMoKQpA
QCAtMTMxNSw3ICsxMzU5LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZW5kRGVmZXJyaW5nVmlld0lu
V2luZG93Q2hhbmdlcygpCiAKICAgICBpZiAobV92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJl
ZCkgewogICAgICAgICBkaXNwYXRjaFNldFRvcENvbnRlbnRJbnNldCgpOwotICAgICAgICBtX3Bh
Z2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNJbldpbmRvdyk7Cisg
ICAgICAgIG1fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNJ
bldpbmRvdyk7CiAgICAgICAgIG1fdmlld0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQgPSBmYWxz
ZTsKICAgICB9CiB9CkBAIC0xMzMxLDcgKzEzNzUsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjplbmRE
ZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzU3luYygpCiAKICAgICBpZiAobV92aWV3SW5XaW5k
b3dDaGFuZ2VXYXNEZWZlcnJlZCkgewogICAgICAgICBkaXNwYXRjaFNldFRvcENvbnRlbnRJbnNl
dCgpOwotICAgICAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0
ZTo6SXNJbldpbmRvdyk7CisgICAgICAgIG1fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNv
cmU6OlZpZXdTdGF0ZTo6SXNJbldpbmRvdyk7CiAgICAgICAgIG1fdmlld0luV2luZG93Q2hhbmdl
V2FzRGVmZXJyZWQgPSBmYWxzZTsKICAgICB9CiB9CkBAIC0xMzQ2LDcgKzEzOTAsNyBAQCB2b2lk
IFdlYlZpZXdJbXBsOjpwcmVwYXJlRm9yTW92ZVRvV2luZG93KE5TV2luZG93ICp0YXJnZXRXaW5k
b3csIHN0ZDo6ZnVuY3Rpb248dgogICAgIG1fc2hvdWxkRGVmZXJWaWV3SW5XaW5kb3dDaGFuZ2Vz
ID0gZmFsc2U7CiAKICAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOwotICAgIG1f
cGFnZS5pbnN0YWxsVmlld1N0YXRlQ2hhbmdlQ29tcGxldGlvbkhhbmRsZXIoW3dlYWtUaGlzLCBj
b21wbGV0aW9uSGFuZGxlcl0oKSB7CisgICAgbV9wYWdlLT5pbnN0YWxsVmlld1N0YXRlQ2hhbmdl
Q29tcGxldGlvbkhhbmRsZXIoW3dlYWtUaGlzLCBjb21wbGV0aW9uSGFuZGxlcl0oKSB7CiAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKQEAgLTEz
NTcsNyArMTQwMSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnByZXBhcmVGb3JNb3ZlVG9XaW5kb3co
TlNXaW5kb3cgKnRhcmdldFdpbmRvdywgc3RkOjpmdW5jdGlvbjx2CiAgICAgfSk7CiAKICAgICBk
aXNwYXRjaFNldFRvcENvbnRlbnRJbnNldCgpOwotICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFu
Z2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0luV2luZG93LCBmYWxzZSwgV2ViUGFnZVByb3h5OjpW
aWV3U3RhdGVDaGFuZ2VEaXNwYXRjaE1vZGU6OkltbWVkaWF0ZSk7CisgICAgbV9wYWdlLT52aWV3
U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0luV2luZG93LCBmYWxzZSwgV2Vi
UGFnZVByb3h5OjpWaWV3U3RhdGVDaGFuZ2VEaXNwYXRjaE1vZGU6OkltbWVkaWF0ZSk7CiAgICAg
bV92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9IGZhbHNlOwogfQogCkBAIC0xMzcyLDcg
KzE0MTYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVTZWN1cmVJbnB1dFN0YXRlKCkKICAg
ICB9CiAgICAgLy8gV0tWaWV3IGhhcyBhIHNpbmdsZSBpbnB1dCBjb250ZXh0IGZvciBhbGwgZWRp
dGFibGUgYXJlYXMgKGV4Y2VwdCBmb3IgcGx1Zy1pbnMpLgogICAgIE5TVGV4dElucHV0Q29udGV4
dCAqY29udGV4dCA9IFttX3ZpZXcgX3N1cGVySW5wdXRDb250ZXh0XTsKLSAgICBib29sIGlzSW5Q
YXNzd29yZEZpZWxkID0gbV9wYWdlLmVkaXRvclN0YXRlKCkuaXNJblBhc3N3b3JkRmllbGQ7Cisg
ICAgYm9vbCBpc0luUGFzc3dvcmRGaWVsZCA9IG1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0luUGFz
c3dvcmRGaWVsZDsKIAogICAgIGlmIChpc0luUGFzc3dvcmRGaWVsZCkgewogICAgICAgICBpZiAo
IW1faW5TZWN1cmVJbnB1dFN0YXRlKQpAQCAtMTQxOCw3ICsxNDYyLDcgQEAgdm9pZCBXZWJWaWV3
SW1wbDo6c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKFBsdWdpbkNvbXBsZXhUZXh0SW5w
dXRTdGF0ZSBwbHUKICAgICAgICAgcmV0dXJuOwogCiAgICAgLy8gU2VuZCBiYWNrIGFuIGVtcHR5
IHN0cmluZyB0byB0aGUgcGx1Zy1pbi4gVGhpcyB3aWxsIGRpc2FibGUgdGV4dCBpbnB1dC4KLSAg
ICBtX3BhZ2Uuc2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbihtX3BsdWdpbkNvbXBsZXhUZXh0
SW5wdXRJZGVudGlmaWVyLCBTdHJpbmcoKSk7CisgICAgbV9wYWdlLT5zZW5kQ29tcGxleFRleHRJ
bnB1dFRvUGx1Z2luKG1fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIFN0cmluZygp
KTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRl
QW5kSWRlbnRpZmllcihQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUgcGx1Z2luQ29tcGxleFRl
eHRJbnB1dFN0YXRlLCB1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcikK
QEAgLTE0NTUsNyArMTQ5OSw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OmhhbmRsZVBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRLZXlEb3duKE5TRXZlbnQgKmV2ZW50KQogICAgIEJPT0wgZGlkSGFuZGxlRXZl
bnQgPSBbW1dLVGV4dElucHV0V2luZG93Q29udHJvbGxlciBzaGFyZWRUZXh0SW5wdXRXaW5kb3dD
b250cm9sbGVyXSBpbnRlcnByZXRLZXlFdmVudDpldmVudCB1c2luZ0xlZ2FjeUNvY29hVGV4dElu
cHV0OnVzaW5nTGVnYWN5Q29jb2FUZXh0SW5wdXQgc3RyaW5nOiZzdHJpbmddOwogCiAgICAgaWYg
KHN0cmluZykgewotICAgICAgICBtX3BhZ2Uuc2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdpbiht
X3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBzdHJpbmcpOworICAgICAgICBtX3Bh
Z2UtPnNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4obV9wbHVnaW5Db21wbGV4VGV4dElucHV0
SWRlbnRpZmllciwgc3RyaW5nKTsKIAogICAgICAgICBpZiAoIXVzaW5nTGVnYWN5Q29jb2FUZXh0
SW5wdXQpCiAgICAgICAgICAgICBtX3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSA9IFBsdWdp
bkNvbXBsZXhUZXh0SW5wdXREaXNhYmxlZDsKQEAgLTE1MjIsNyArMTU2Niw3IEBAIGJvb2wgV2Vi
Vmlld0ltcGw6OnRyeVBvc3RQcm9jZXNzUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURvd24oTlNF
dmVudCAqZXZlbnQpCiAKIHZvaWQgV2ViVmlld0ltcGw6OmhhbmRsZUFjY2VwdGVkQWx0ZXJuYXRp
dmVUZXh0KGNvbnN0IFN0cmluZyYgYWNjZXB0ZWRBbHRlcm5hdGl2ZSkKIHsKLSAgICBtX3BhZ2Uu
aGFuZGxlQWx0ZXJuYXRpdmVUZXh0VUlSZXN1bHQoYWNjZXB0ZWRBbHRlcm5hdGl2ZSk7CisgICAg
bV9wYWdlLT5oYW5kbGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdChhY2NlcHRlZEFsdGVybmF0aXZl
KTsKIH0KIAogCkBAIC0xNTQ2LDcgKzE1OTAsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpwcmVzc3Vy
ZUNoYW5nZVdpdGhFdmVudChOU0V2ZW50ICpldmVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
TmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudChldmVudCwgbV9sYXN0UHJlc3N1cmVFdmVudC5n
ZXQoKSwgbV92aWV3KTsKLSAgICBtX3BhZ2UuaGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7Cisg
ICAgbV9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsKIAogICAgIG1fbGFzdFByZXNz
dXJlRXZlbnQgPSBldmVudDsKICNlbmRpZgpAQCAtMTU5Niw3ICsxNjQwLDcgQEAgTlNXaW5kb3cg
KldlYlZpZXdJbXBsOjpjcmVhdGVGdWxsU2NyZWVuV2luZG93KCkKIAogYm9vbCBXZWJWaWV3SW1w
bDo6aXNFZGl0YWJsZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fcGFnZS5pc0VkaXRhYmxlKCk7
CisgICAgcmV0dXJuIG1fcGFnZS0+aXNFZGl0YWJsZSgpOwogfQogCiB0eXBlZGVmIEhhc2hNYXA8
U0VMLCBTdHJpbmc+IFNlbGVjdG9yTmFtZU1hcDsKQEAgLTE2NjEsNyArMTcwNSw3IEBAIGJvb2wg
V2ViVmlld0ltcGw6OmV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yKFNFTCBzZWxlY3RvcikK
IAogdm9pZCBXZWJWaWV3SW1wbDo6ZXhlY3V0ZUVkaXRDb21tYW5kRm9yU2VsZWN0b3IoU0VMIHNl
bGVjdG9yLCBjb25zdCBTdHJpbmcmIGFyZ3VtZW50KQogewotICAgIG1fcGFnZS5leGVjdXRlRWRp
dENvbW1hbmQoY29tbWFuZE5hbWVGb3JTZWxlY3RvcihzZWxlY3RvciksIGFyZ3VtZW50KTsKKyAg
ICBtX3BhZ2UtPmV4ZWN1dGVFZGl0Q29tbWFuZChjb21tYW5kTmFtZUZvclNlbGVjdG9yKHNlbGVj
dG9yKSwgYXJndW1lbnQpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpyZWdpc3RlckVkaXRDb21t
YW5kKFJlZlB0cjxXZWJFZGl0Q29tbWFuZFByb3h5PiBwcnBDb21tYW5kLCBXZWJQYWdlUHJveHk6
OlVuZG9PclJlZG8gdW5kb09yUmVkbykKQEAgLTE2ODgsOSArMTczMiw5IEBAIGJvb2wgV2ViVmll
d0ltcGw6OndyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKE5TUGFzdGVib2FyZCAqcGFzdGVib2Fy
ZCwgTlNBcnJheSAqCiAgICAgW3Bhc3RlYm9hcmQgZGVjbGFyZVR5cGVzOnR5cGVzIG93bmVyOm5p
bF07CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBudW1UeXBlczsgKytpKSB7CiAgICAgICAg
IGlmIChbW3R5cGVzIG9iamVjdEF0SW5kZXg6aV0gaXNFcXVhbFRvOk5TU3RyaW5nUGJvYXJkVHlw
ZV0pCi0gICAgICAgICAgICBbcGFzdGVib2FyZCBzZXRTdHJpbmc6bV9wYWdlLnN0cmluZ1NlbGVj
dGlvbkZvclBhc3RlYm9hcmQoKSBmb3JUeXBlOk5TU3RyaW5nUGJvYXJkVHlwZV07CisgICAgICAg
ICAgICBbcGFzdGVib2FyZCBzZXRTdHJpbmc6bV9wYWdlLT5zdHJpbmdTZWxlY3Rpb25Gb3JQYXN0
ZWJvYXJkKCkgZm9yVHlwZTpOU1N0cmluZ1Bib2FyZFR5cGVdOwogICAgICAgICBlbHNlIHsKLSAg
ICAgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IG1fcGFnZS5k
YXRhU2VsZWN0aW9uRm9yUGFzdGVib2FyZChbdHlwZXMgb2JqZWN0QXRJbmRleDppXSk7CisgICAg
ICAgICAgICBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiBidWZmZXIgPSBtX3BhZ2UtPmRh
dGFTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKFt0eXBlcyBvYmplY3RBdEluZGV4OmldKTsKICAgICAg
ICAgICAgIFtwYXN0ZWJvYXJkIHNldERhdGE6YnVmZmVyID8gYnVmZmVyLT5jcmVhdGVOU0RhdGEo
KS5nZXQoKSA6IG5pbCBmb3JUeXBlOlt0eXBlcyBvYmplY3RBdEluZGV4OmldXTsKICAgICAgICAg
fQogICAgIH0KQEAgLTE2OTksMTIgKzE3NDMsMTIgQEAgYm9vbCBXZWJWaWV3SW1wbDo6d3JpdGVT
ZWxlY3Rpb25Ub1Bhc3RlYm9hcmQoTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkLCBOU0FycmF5ICoK
IAogYm9vbCBXZWJWaWV3SW1wbDo6cmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkKE5TUGFzdGVi
b2FyZCAqcGFzdGVib2FyZCkKIHsKLSAgICByZXR1cm4gbV9wYWdlLnJlYWRTZWxlY3Rpb25Gcm9t
UGFzdGVib2FyZChbcGFzdGVib2FyZCBuYW1lXSk7CisgICAgcmV0dXJuIG1fcGFnZS0+cmVhZFNl
bGVjdGlvbkZyb21QYXN0ZWJvYXJkKFtwYXN0ZWJvYXJkIG5hbWVdKTsKIH0KIAogaWQgV2ViVmll
d0ltcGw6OnZhbGlkUmVxdWVzdG9yRm9yU2VuZEFuZFJldHVyblR5cGVzKE5TU3RyaW5nICpzZW5k
VHlwZSwgTlNTdHJpbmcgKnJldHVyblR5cGUpCiB7Ci0gICAgRWRpdG9yU3RhdGUgZWRpdG9yU3Rh
dGUgPSBtX3BhZ2UuZWRpdG9yU3RhdGUoKTsKKyAgICBFZGl0b3JTdGF0ZSBlZGl0b3JTdGF0ZSA9
IG1fcGFnZS0+ZWRpdG9yU3RhdGUoKTsKICAgICBib29sIGlzVmFsaWRTZW5kVHlwZSA9IGZhbHNl
OwogCiAgICAgaWYgKHNlbmRUeXBlICYmICFlZGl0b3JTdGF0ZS5zZWxlY3Rpb25Jc05vbmUpIHsK
QEAgLTE3MjgsNyArMTc3Miw3IEBAIGlkIFdlYlZpZXdJbXBsOjp2YWxpZFJlcXVlc3RvckZvclNl
bmRBbmRSZXR1cm5UeXBlcyhOU1N0cmluZyAqc2VuZFR5cGUsIE5TU3RyaW5nCiAKIHZvaWQgV2Vi
Vmlld0ltcGw6OmNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEoKQogewotICAgIG1fcGFnZS5j
ZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhKCk7CisgICAgbV9wYWdlLT5jZW50ZXJTZWxlY3Rp
b25JblZpc2libGVBcmVhKCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNlbGVjdGlvbkRpZENo
YW5nZSgpCkBAIC0xNzQzLDExICsxNzg3LDExIEBAIHZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0T2Jz
ZXJ2aW5nRm9udFBhbmVsKCkKIAogdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlRm9udFBhbmVsSWZO
ZWVkZWQoKQogewotICAgIGNvbnN0IEVkaXRvclN0YXRlJiBlZGl0b3JTdGF0ZSA9IG1fcGFnZS5l
ZGl0b3JTdGF0ZSgpOworICAgIGNvbnN0IEVkaXRvclN0YXRlJiBlZGl0b3JTdGF0ZSA9IG1fcGFn
ZS0+ZWRpdG9yU3RhdGUoKTsKICAgICBpZiAoZWRpdG9yU3RhdGUuc2VsZWN0aW9uSXNOb25lIHx8
ICFlZGl0b3JTdGF0ZS5pc0NvbnRlbnRFZGl0YWJsZSkKICAgICAgICAgcmV0dXJuOwogICAgIGlm
IChbTlNGb250UGFuZWwgc2hhcmVkRm9udFBhbmVsRXhpc3RzXSAmJiBbW05TRm9udFBhbmVsIHNo
YXJlZEZvbnRQYW5lbF0gaXNWaXNpYmxlXSkgewotICAgICAgICBtX3BhZ2UuZm9udEF0U2VsZWN0
aW9uKFtdKGNvbnN0IFN0cmluZyYgZm9udE5hbWUsIGRvdWJsZSBmb250U2l6ZSwgYm9vbCBzZWxl
Y3Rpb25IYXNNdWx0aXBsZUZvbnRzLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3Ip
IHsKKyAgICAgICAgbV9wYWdlLT5mb250QXRTZWxlY3Rpb24oW10oY29uc3QgU3RyaW5nJiBmb250
TmFtZSwgZG91YmxlIGZvbnRTaXplLCBib29sIHNlbGVjdGlvbkhhc011bHRpcGxlRm9udHMsIFdl
YktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewogICAgICAgICAgICAgTlNGb250ICpm
b250ID0gW05TRm9udCBmb250V2l0aE5hbWU6Zm9udE5hbWUgc2l6ZTpmb250U2l6ZV07CiAgICAg
ICAgICAgICBpZiAoZm9udCkKICAgICAgICAgICAgICAgICBbW05TRm9udE1hbmFnZXIgc2hhcmVk
Rm9udE1hbmFnZXJdIHNldFNlbGVjdGVkRm9udDpmb250IGlzTXVsdGlwbGU6c2VsZWN0aW9uSGFz
TXVsdGlwbGVGb250c107CkBAIC0xNzYxLDcgKzE4MDUsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpj
aGFuZ2VGb250RnJvbUZvbnRQYW5lbCgpCiAgICAgTlNGb250ICpmb250ID0gW2ZvbnRNYW5hZ2Vy
IGNvbnZlcnRGb250OmZvbnRNYW5hZ2VyLnNlbGVjdGVkRm9udF07CiAgICAgaWYgKCFmb250KQog
ICAgICAgICByZXR1cm47Ci0gICAgbV9wYWdlLnNldEZvbnQoZm9udC5mYW1pbHlOYW1lLCBmb250
LnBvaW50U2l6ZSwgZm9udC5mb250RGVzY3JpcHRvci5zeW1ib2xpY1RyYWl0cyk7CisgICAgbV9w
YWdlLT5zZXRGb250KGZvbnQuZmFtaWx5TmFtZSwgZm9udC5wb2ludFNpemUsIGZvbnQuZm9udERl
c2NyaXB0b3Iuc3ltYm9saWNUcmFpdHMpOwogfQogCiBzdGF0aWMgTlNNZW51SXRlbSAqbWVudUl0
ZW0oaWQgPE5TVmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+IGl0ZW0pCkBAIC0xNzg1LDExICsx
ODI5LDExIEBAIGJvb2wgV2ViVmlld0ltcGw6OnZhbGlkYXRlVXNlckludGVyZmFjZUl0ZW0oaWQg
PE5TVmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+IGl0CiAgICAgaWYgKGFjdGlvbiA9PSBAc2Vs
ZWN0b3Ioc2hvd0d1ZXNzUGFuZWw6KSkgewogICAgICAgICBpZiAoTlNNZW51SXRlbSAqbWVudUl0
ZW0gPSBXZWJLaXQ6Om1lbnVJdGVtKGl0ZW0pKQogICAgICAgICAgICAgW21lbnVJdGVtIHNldFRp
dGxlOldlYkNvcmU6OmNvbnRleHRNZW51SXRlbVRhZ1Nob3dTcGVsbGluZ1BhbmVsKCFbW1tOU1Nw
ZWxsQ2hlY2tlciBzaGFyZWRTcGVsbENoZWNrZXJdIHNwZWxsaW5nUGFuZWxdIGlzVmlzaWJsZV0p
XTsKLSAgICAgICAgcmV0dXJuIG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxl
OworICAgICAgICByZXR1cm4gbV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxl
OwogICAgIH0KIAogICAgIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKGNoZWNrU3BlbGxpbmc6KSB8
fCBhY3Rpb24gPT0gQHNlbGVjdG9yKGNoYW5nZVNwZWxsaW5nOikpCi0gICAgICAgIHJldHVybiBt
X3BhZ2UuZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZTsKKyAgICAgICAgcmV0dXJuIG1f
cGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZTsKIAogICAgIGlmIChhY3Rpb24g
PT0gQHNlbGVjdG9yKHRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nOikpIHsKICAgICAgICAg
Ym9vbCBlbmFibGVkID0gVGV4dENoZWNrZXI6OmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdBbGxv
d2VkKCk7CkBAIC0xODA3LDU0ICsxODUxLDU0IEBAIGJvb2wgV2ViVmlld0ltcGw6OnZhbGlkYXRl
VXNlckludGVyZmFjZUl0ZW0oaWQgPE5TVmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+IGl0CiAg
ICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0
aW9uOikpIHsKICAgICAgICAgYm9vbCBjaGVja2VkID0gVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNB
dXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkOwogICAgICAgICBbbWVudUl0ZW0oaXRl
bSkgc2V0U3RhdGU6Y2hlY2tlZCA/IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVdOwotICAgICAgICBy
ZXR1cm4gbV9wYWdlLmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGU7CisgICAgICAgIHJl
dHVybiBtX3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGU7CiAgICAgfQogCiAg
ICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3Iob3JkZXJGcm9udFN1YnN0aXR1dGlvbnNQYW5lbDop
KSB7CiAgICAgICAgIGlmIChOU01lbnVJdGVtICptZW51SXRlbSA9IFdlYktpdDo6bWVudUl0ZW0o
aXRlbSkpCiAgICAgICAgICAgICBbbWVudUl0ZW0gc2V0VGl0bGU6V2ViQ29yZTo6Y29udGV4dE1l
bnVJdGVtVGFnU2hvd1N1YnN0aXR1dGlvbnMoIVtbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxs
Q2hlY2tlcl0gc3Vic3RpdHV0aW9uc1BhbmVsXSBpc1Zpc2libGVdKV07Ci0gICAgICAgIHJldHVy
biBtX3BhZ2UuZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZTsKKyAgICAgICAgcmV0dXJu
IG1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZTsKICAgICB9CiAKICAgICBp
ZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0b2dnbGVTbWFydEluc2VydERlbGV0ZTopKSB7Ci0gICAg
ICAgIGJvb2wgY2hlY2tlZCA9IG1fcGFnZS5pc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwor
ICAgICAgICBib29sIGNoZWNrZWQgPSBtX3BhZ2UtPmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVk
KCk7CiAgICAgICAgIFttZW51SXRlbShpdGVtKSBzZXRTdGF0ZTpjaGVja2VkID8gTlNPblN0YXRl
IDogTlNPZmZTdGF0ZV07Ci0gICAgICAgIHJldHVybiBtX3BhZ2UuZWRpdG9yU3RhdGUoKS5pc0Nv
bnRlbnRFZGl0YWJsZTsKKyAgICAgICAgcmV0dXJuIG1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0Nv
bnRlbnRFZGl0YWJsZTsKICAgICB9CiAKICAgICBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0b2dn
bGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbjopKSB7CiAgICAgICAgIGJvb2wgY2hlY2tlZCA9
IFRleHRDaGVja2VyOjpzdGF0ZSgpLmlzQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVk
OwogICAgICAgICBbbWVudUl0ZW0oaXRlbSkgc2V0U3RhdGU6Y2hlY2tlZCA/IE5TT25TdGF0ZSA6
IE5TT2ZmU3RhdGVdOwotICAgICAgICByZXR1cm4gbV9wYWdlLmVkaXRvclN0YXRlKCkuaXNDb250
ZW50RWRpdGFibGU7CisgICAgICAgIHJldHVybiBtX3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250
ZW50RWRpdGFibGU7CiAgICAgfQogCiAgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xl
QXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbjopKSB7CiAgICAgICAgIGJvb2wgY2hlY2tlZCA9IFRl
eHRDaGVja2VyOjpzdGF0ZSgpLmlzQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQ7CiAg
ICAgICAgIFttZW51SXRlbShpdGVtKSBzZXRTdGF0ZTpjaGVja2VkID8gTlNPblN0YXRlIDogTlNP
ZmZTdGF0ZV07Ci0gICAgICAgIHJldHVybiBtX3BhZ2UuZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRF
ZGl0YWJsZTsKKyAgICAgICAgcmV0dXJuIG1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRF
ZGl0YWJsZTsKICAgICB9CiAKICAgICBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0b2dnbGVBdXRv
bWF0aWNMaW5rRGV0ZWN0aW9uOikpIHsKICAgICAgICAgYm9vbCBjaGVja2VkID0gVGV4dENoZWNr
ZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZDsKICAgICAgICAgW21l
bnVJdGVtKGl0ZW0pIHNldFN0YXRlOmNoZWNrZWQgPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsK
LSAgICAgICAgcmV0dXJuIG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlOwor
ICAgICAgICByZXR1cm4gbV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlOwog
ICAgIH0KIAogICAgIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZUF1dG9tYXRpY1RleHRS
ZXBsYWNlbWVudDopKSB7CiAgICAgICAgIGJvb2wgY2hlY2tlZCA9IFRleHRDaGVja2VyOjpzdGF0
ZSgpLmlzQXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZDsKICAgICAgICAgW21lbnVJdGVt
KGl0ZW0pIHNldFN0YXRlOmNoZWNrZWQgPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKLSAgICAg
ICAgcmV0dXJuIG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlOworICAgICAg
ICByZXR1cm4gbV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlOwogICAgIH0K
IAogICAgIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHVwcGVyY2FzZVdvcmQ6KSB8fCBhY3Rpb24g
PT0gQHNlbGVjdG9yKGxvd2VyY2FzZVdvcmQ6KSB8fCBhY3Rpb24gPT0gQHNlbGVjdG9yKGNhcGl0
YWxpemVXb3JkOikpCi0gICAgICAgIHJldHVybiBtX3BhZ2UuZWRpdG9yU3RhdGUoKS5zZWxlY3Rp
b25Jc1JhbmdlICYmIG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlOworICAg
ICAgICByZXR1cm4gbV9wYWdlLT5lZGl0b3JTdGF0ZSgpLnNlbGVjdGlvbklzUmFuZ2UgJiYgbV9w
YWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlOwogCiAgICAgaWYgKGFjdGlvbiA9
PSBAc2VsZWN0b3Ioc3RvcFNwZWFraW5nOikpCiAgICAgICAgIHJldHVybiBbTlNBcHAgaXNTcGVh
a2luZ107CiAKICAgICAvLyBUaGUgY2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYTogc2VsZWN0
b3IgaXMgZW5hYmxlZCBpZiB0aGVyZSdzIGEgc2VsZWN0aW9uIHJhbmdlIG9yIGlmIHRoZXJlJ3Mg
YW4gaW5zZXJ0aW9uIHBvaW50IGluIGFuIGVkaXRhYmxlIGFyZWEuCiAgICAgaWYgKGFjdGlvbiA9
PSBAc2VsZWN0b3IoY2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYTopKQotICAgICAgICByZXR1
cm4gbV9wYWdlLmVkaXRvclN0YXRlKCkuc2VsZWN0aW9uSXNSYW5nZSB8fCAobV9wYWdlLmVkaXRv
clN0YXRlKCkuaXNDb250ZW50RWRpdGFibGUgJiYgIW1fcGFnZS5lZGl0b3JTdGF0ZSgpLnNlbGVj
dGlvbklzTm9uZSk7CisgICAgICAgIHJldHVybiBtX3BhZ2UtPmVkaXRvclN0YXRlKCkuc2VsZWN0
aW9uSXNSYW5nZSB8fCAobV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlICYm
ICFtX3BhZ2UtPmVkaXRvclN0YXRlKCkuc2VsZWN0aW9uSXNOb25lKTsKIAogICAgIC8vIE5leHQs
IGhhbmRsZSBlZGl0b3IgY29tbWFuZHMuIFN0YXJ0IGJ5IHJldHVybmluZyB0cnVlIGZvciBhbnl0
aGluZyB0aGF0IGlzIG5vdCBhbiBlZGl0b3IgY29tbWFuZC4KICAgICAvLyBSZXR1cm5pbmcgdHJ1
ZSBpcyB0aGUgZGVmYXVsdCB0aGluZyB0byBkbyBpbiBhbiBBcHBLaXQgdmFsaWRhdGUgbWV0aG9k
IGZvciBhbnkgc2VsZWN0b3IgdGhhdCBpcyBub3QgcmVjb2duaXplZC4KQEAgLTE4NzAsNyArMTkx
NCw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OnZhbGlkYXRlVXNlckludGVyZmFjZUl0ZW0oaWQgPE5T
VmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+IGl0CiAgICAgICAgIC8vIEZJWE1FOiBUaGVvcmV0
aWNhbGx5LCB0aGVyZSBpcyBhIHJhY2UgaGVyZTsgd2hlbiB3ZSBnZXQgdGhlIGFuc3dlciBpdCBt
aWdodCBiZSBvbGQsIGZyb20gYSBwcmV2aW91cyB0aW1lCiAgICAgICAgIC8vIHdlIGFza2VkIGZv
ciB0aGUgc2FtZSBjb21tYW5kOyB0aGVyZSBpcyBubyBndWFyYW50ZWUgdGhlIGFuc3dlciBpcyBz
dGlsbCB2YWxpZC4KICAgICAgICAgYXV0byB3ZWFrVGhpcyA9IGNyZWF0ZVdlYWtQdHIoKTsKLSAg
ICAgICAgbV9wYWdlLnZhbGlkYXRlQ29tbWFuZChjb21tYW5kTmFtZSwgW3dlYWtUaGlzXShjb25z
dCBTdHJpbmcmIGNvbW1hbmROYW1lLCBib29sIGlzRW5hYmxlZCwgaW50MzJfdCBzdGF0ZSwgV2Vi
S2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CisgICAgICAgIG1fcGFnZS0+dmFsaWRh
dGVDb21tYW5kKGNvbW1hbmROYW1lLCBbd2Vha1RoaXNdKGNvbnN0IFN0cmluZyYgY29tbWFuZE5h
bWUsIGJvb2wgaXNFbmFibGVkLCBpbnQzMl90IHN0YXRlLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6
RXJyb3IgZXJyb3IpIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogCkBAIC0xOTAxLDcgKzE5NDUsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRV
c2VySW50ZXJmYWNlSXRlbVN0YXRlKE5TU3RyaW5nICpjb21tYW5kTmFtZSwgYm9vbCBlbmFibGVk
LAogCiB2b2lkIFdlYlZpZXdJbXBsOjpzdGFydFNwZWFraW5nKCkKIHsKLSAgICBtX3BhZ2UuZ2V0
U2VsZWN0aW9uT3JDb250ZW50c0FzU3RyaW5nKFtdKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBXZWJL
aXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICBtX3BhZ2UtPmdldFNlbGVjdGlv
bk9yQ29udGVudHNBc1N0cmluZyhbXShjb25zdCBTdHJpbmcmIHN0cmluZywgV2ViS2l0OjpDYWxs
YmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CiAgICAgICAgIGlmIChlcnJvciAhPSBXZWJLaXQ6OkNh
bGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIGlm
ICghc3RyaW5nKQpAQCAtMTkzMCwyMCArMTk3NCwyMCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzaG93
R3Vlc3NQYW5lbChpZCBzZW5kZXIpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3Bh
Z2UuYWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKHRydWUpOworICAgIG1fcGFnZS0+YWR2YW5jZVRv
TmV4dE1pc3NwZWxsaW5nKHRydWUpOwogICAgIFtzcGVsbGluZ1BhbmVsIG9yZGVyRnJvbnQ6c2Vu
ZGVyXTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6Y2hlY2tTcGVsbGluZygpCiB7Ci0gICAgbV9w
YWdlLmFkdmFuY2VUb05leHRNaXNzcGVsbGluZyhmYWxzZSk7CisgICAgbV9wYWdlLT5hZHZhbmNl
VG9OZXh0TWlzc3BlbGxpbmcoZmFsc2UpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpjaGFuZ2VT
cGVsbGluZyhpZCBzZW5kZXIpCiB7CiAgICAgTlNTdHJpbmcgKndvcmQgPSBbW3NlbmRlciBzZWxl
Y3RlZENlbGxdIHN0cmluZ1ZhbHVlXTsKIAotICAgIG1fcGFnZS5jaGFuZ2VTcGVsbGluZ1RvV29y
ZCh3b3JkKTsKKyAgICBtX3BhZ2UtPmNoYW5nZVNwZWxsaW5nVG9Xb3JkKHdvcmQpOwogfQogCiB2
b2lkIFdlYlZpZXdJbXBsOjp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVja2luZygpCkBAIC0xOTUx
LDcgKzE5OTUsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp0b2dnbGVDb250aW51b3VzU3BlbGxDaGVj
a2luZygpCiAgICAgYm9vbCBzcGVsbENoZWNraW5nRW5hYmxlZCA9ICFUZXh0Q2hlY2tlcjo6c3Rh
dGUoKS5pc0NvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZDsKICAgICBUZXh0Q2hlY2tlcjo6
c2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKHNwZWxsQ2hlY2tpbmdFbmFibGVkKTsK
IAotICAgIG1fcGFnZS5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOworICAgIG1f
cGFnZS0+cHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKIH0KIAogYm9vbCBXZWJW
aWV3SW1wbDo6aXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCkKQEAgLTE5NjUsNyArMjAwOSw3IEBA
IHZvaWQgV2ViVmlld0ltcGw6OnNldEdyYW1tYXJDaGVja2luZ0VuYWJsZWQoYm9vbCBmbGFnKQog
ICAgICAgICByZXR1cm47CiAKICAgICBUZXh0Q2hlY2tlcjo6c2V0R3JhbW1hckNoZWNraW5nRW5h
YmxlZChmbGFnKTsKLSAgICBtX3BhZ2UucHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3RhdGUo
KTsKKyAgICBtX3BhZ2UtPnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiB9CiAK
IHZvaWQgV2ViVmlld0ltcGw6OnRvZ2dsZUdyYW1tYXJDaGVja2luZygpCkBAIC0xOTczLDE0ICsy
MDE3LDE0IEBAIHZvaWQgV2ViVmlld0ltcGw6OnRvZ2dsZUdyYW1tYXJDaGVja2luZygpCiAgICAg
Ym9vbCBncmFtbWFyQ2hlY2tpbmdFbmFibGVkID0gIVRleHRDaGVja2VyOjpzdGF0ZSgpLmlzR3Jh
bW1hckNoZWNraW5nRW5hYmxlZDsKICAgICBUZXh0Q2hlY2tlcjo6c2V0R3JhbW1hckNoZWNraW5n
RW5hYmxlZChncmFtbWFyQ2hlY2tpbmdFbmFibGVkKTsKIAotICAgIG1fcGFnZS5wcm9jZXNzKCku
dXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOworICAgIG1fcGFnZS0+cHJvY2VzcygpLnVwZGF0ZVRl
eHRDaGVja2VyU3RhdGUoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6dG9nZ2xlQXV0b21hdGlj
U3BlbGxpbmdDb3JyZWN0aW9uKCkKIHsKICAgICBUZXh0Q2hlY2tlcjo6c2V0QXV0b21hdGljU3Bl
bGxpbmdDb3JyZWN0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNT
cGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKTsKIAotICAgIG1fcGFnZS5wcm9jZXNzKCkudXBkYXRl
VGV4dENoZWNrZXJTdGF0ZSgpOworICAgIG1fcGFnZS0+cHJvY2VzcygpLnVwZGF0ZVRleHRDaGVj
a2VyU3RhdGUoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6b3JkZXJGcm9udFN1YnN0aXR1dGlv
bnNQYW5lbChpZCBzZW5kZXIpCkBAIC0yMDAxLDcgKzIwNDUsNyBAQCB2b2lkIFdlYlZpZXdJbXBs
OjpvcmRlckZyb250U3Vic3RpdHV0aW9uc1BhbmVsKGlkIHNlbmRlcikKIAogdm9pZCBXZWJWaWV3
SW1wbDo6dG9nZ2xlU21hcnRJbnNlcnREZWxldGUoKQogewotICAgIG1fcGFnZS5zZXRTbWFydElu
c2VydERlbGV0ZUVuYWJsZWQoIW1fcGFnZS5pc1NtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpKTsK
KyAgICBtX3BhZ2UtPnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCghbV9wYWdlLT5pc1NtYXJ0
SW5zZXJ0RGVsZXRlRW5hYmxlZCgpKTsKIH0KIAogYm9vbCBXZWJWaWV3SW1wbDo6aXNBdXRvbWF0
aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQoKQpAQCAtMjAxNSwxMyArMjA1OSwxMyBAQCB2b2lk
IFdlYlZpZXdJbXBsOjpzZXRBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQoYm9vbCBm
bGFnKQogICAgICAgICByZXR1cm47CiAKICAgICBUZXh0Q2hlY2tlcjo6c2V0QXV0b21hdGljUXVv
dGVTdWJzdGl0dXRpb25FbmFibGVkKGZsYWcpOwotICAgIG1fcGFnZS5wcm9jZXNzKCkudXBkYXRl
VGV4dENoZWNrZXJTdGF0ZSgpOworICAgIG1fcGFnZS0+cHJvY2VzcygpLnVwZGF0ZVRleHRDaGVj
a2VyU3RhdGUoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6dG9nZ2xlQXV0b21hdGljUXVvdGVT
dWJzdGl0dXRpb24oKQogewogICAgIFRleHRDaGVja2VyOjpzZXRBdXRvbWF0aWNRdW90ZVN1YnN0
aXR1dGlvbkVuYWJsZWQoIVRleHRDaGVja2VyOjpzdGF0ZSgpLmlzQXV0b21hdGljUXVvdGVTdWJz
dGl0dXRpb25FbmFibGVkKTsKLSAgICBtX3BhZ2UucHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2Vy
U3RhdGUoKTsKKyAgICBtX3BhZ2UtPnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7
CiB9CiAKIGJvb2wgV2ViVmlld0ltcGw6OmlzQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJs
ZWQoKQpAQCAtMjAzNSwxMyArMjA3OSwxMyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRBdXRvbWF0
aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZChib29sIGZsYWcpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIFRleHRDaGVja2VyOjpzZXRBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZChmbGFn
KTsKLSAgICBtX3BhZ2UucHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKKyAgICBt
X3BhZ2UtPnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiB9CiAKIHZvaWQgV2Vi
Vmlld0ltcGw6OnRvZ2dsZUF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb24oKQogewogICAgIFRleHRD
aGVja2VyOjpzZXRBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6
OnN0YXRlKCkuaXNBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCk7Ci0gICAgbV9wYWdl
LnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CisgICAgbV9wYWdlLT5wcm9jZXNz
KCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOwogfQogCiBib29sIFdlYlZpZXdJbXBsOjppc0F1
dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKCkKQEAgLTIwNTUsMTMgKzIwOTksMTMgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQoYm9vbCBmbGFn
KQogICAgICAgICByZXR1cm47CiAKICAgICBUZXh0Q2hlY2tlcjo6c2V0QXV0b21hdGljTGlua0Rl
dGVjdGlvbkVuYWJsZWQoZmxhZyk7Ci0gICAgbV9wYWdlLnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hl
Y2tlclN0YXRlKCk7CisgICAgbV9wYWdlLT5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0
ZSgpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjp0b2dnbGVBdXRvbWF0aWNMaW5rRGV0ZWN0aW9u
KCkKIHsKICAgICBUZXh0Q2hlY2tlcjo6c2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQo
IVRleHRDaGVja2VyOjpzdGF0ZSgpLmlzQXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQpOwot
ICAgIG1fcGFnZS5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOworICAgIG1fcGFn
ZS0+cHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKIH0KIAogYm9vbCBXZWJWaWV3
SW1wbDo6aXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkKCkKQEAgLTIwNzUsMzMgKzIx
MTksMzMgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0QXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5h
YmxlZChib29sIGZsYWcpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBUZXh0Q2hlY2tlcjo6
c2V0QXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZChmbGFnKTsKLSAgICBtX3BhZ2UucHJv
Y2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKKyAgICBtX3BhZ2UtPnByb2Nlc3MoKS51
cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnRvZ2dsZUF1
dG9tYXRpY1RleHRSZXBsYWNlbWVudCgpCiB7CiAgICAgVGV4dENoZWNrZXI6OnNldEF1dG9tYXRp
Y1RleHRSZXBsYWNlbWVudEVuYWJsZWQoIVRleHRDaGVja2VyOjpzdGF0ZSgpLmlzQXV0b21hdGlj
VGV4dFJlcGxhY2VtZW50RW5hYmxlZCk7Ci0gICAgbV9wYWdlLnByb2Nlc3MoKS51cGRhdGVUZXh0
Q2hlY2tlclN0YXRlKCk7CisgICAgbV9wYWdlLT5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJT
dGF0ZSgpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjp1cHBlcmNhc2VXb3JkKCkKIHsKLSAgICBt
X3BhZ2UudXBwZXJjYXNlV29yZCgpOworICAgIG1fcGFnZS0+dXBwZXJjYXNlV29yZCgpOwogfQog
CiB2b2lkIFdlYlZpZXdJbXBsOjpsb3dlcmNhc2VXb3JkKCkKIHsKLSAgICBtX3BhZ2UubG93ZXJj
YXNlV29yZCgpOworICAgIG1fcGFnZS0+bG93ZXJjYXNlV29yZCgpOwogfQogCiB2b2lkIFdlYlZp
ZXdJbXBsOjpjYXBpdGFsaXplV29yZCgpCiB7Ci0gICAgbV9wYWdlLmNhcGl0YWxpemVXb3JkKCk7
CisgICAgbV9wYWdlLT5jYXBpdGFsaXplV29yZCgpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpw
cmVmZXJlbmNlc0RpZENoYW5nZSgpCiB7Ci0gICAgQk9PTCBuZWVkc1ZpZXdGcmFtZUluV2luZG93
Q29vcmRpbmF0ZXMgPSBtX3BhZ2UucHJlZmVyZW5jZXMoKS5wbHVnaW5zRW5hYmxlZCgpOworICAg
IEJPT0wgbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzID0gbV9wYWdlLT5wcmVmZXJl
bmNlcygpLnBsdWdpbnNFbmFibGVkKCk7CiAKICAgICBpZiAoISFuZWVkc1ZpZXdGcmFtZUluV2lu
ZG93Q29vcmRpbmF0ZXMgPT0gISFtX25lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcykK
ICAgICAgICAgcmV0dXJuOwpAQCAtMjE3MSw3ICsyMjE1LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6
ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25seSgpCiAgICAgW21f
aW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciBkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5k
b3dzXTsKICNlbmRpZgogICAgIAotICAgIG1fcGFnZUNsaWVudC5kaXNtaXNzQ29ycmVjdGlvblBh
bmVsKFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdBbHRlcm5hdGl2ZVRleHRJZ25vcmVkKTsK
KyAgICBtX3BhZ2VDbGllbnQtPmRpc21pc3NDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6UmVhc29u
Rm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9yZWQpOwogfQogCiB2b2lkIFdlYlZpZXdJ
bXBsOjpoaWRlV29yZERlZmluaXRpb25XaW5kb3coKQpAQCAtMjE5Miw3ICsyMjM2LDcgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6cXVpY2tMb29rV2l0aEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogI2VuZGlm
CiAKICAgICBOU1BvaW50IGxvY2F0aW9uSW5WaWV3Q29vcmRpbmF0ZXMgPSBbbV92aWV3IGNvbnZl
cnRQb2ludDpbZXZlbnQgbG9jYXRpb25JbldpbmRvd10gZnJvbVZpZXc6bmlsXTsKLSAgICBtX3Bh
Z2UucGVyZm9ybURpY3Rpb25hcnlMb29rdXBBdExvY2F0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQo
bG9jYXRpb25JblZpZXdDb29yZGluYXRlcykpOworICAgIG1fcGFnZS0+cGVyZm9ybURpY3Rpb25h
cnlMb29rdXBBdExvY2F0aW9uKFdlYkNvcmU6OkZsb2F0UG9pbnQobG9jYXRpb25JblZpZXdDb29y
ZGluYXRlcykpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpwcmVwYXJlRm9yRGljdGlvbmFyeUxv
b2t1cCgpCkBAIC0yMjIwLDE0ICsyMjY0LDkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0QWxsb3dz
TGlua1ByZXZpZXcoYm9vbCBhbGxvd3NMaW5rUHJldmlldykKICNlbmRpZgogfQogCi12b2lkKiBX
ZWJWaWV3SW1wbDo6aW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RS
ZXN1bHQoV0tIaXRUZXN0UmVzdWx0UmVmIGhpdFRlc3RSZXN1bHQsIHVpbnQzMl90IHR5cGUsIFdL
VHlwZVJlZiB1c2VyRGF0YSkKK3ZvaWQqIFdlYlZpZXdJbXBsOjppbW1lZGlhdGVBY3Rpb25Bbmlt
YXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdChBUEk6OkhpdFRlc3RSZXN1bHQqIGhpdFRl
c3RSZXN1bHQsIHVpbnQzMl90IHR5cGUsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkKIHsKLSAgICBy
ZXR1cm4gW21fdmlldyBfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRl
c3RSZXN1bHQ6aGl0VGVzdFJlc3VsdCB3aXRoVHlwZTp0eXBlIHVzZXJEYXRhOnVzZXJEYXRhXTsK
LX0KLQotdm9pZCogV2ViVmlld0ltcGw6OmltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xs
ZXJGb3JIaXRUZXN0UmVzdWx0RnJvbVZpZXdPbmx5KFdLSGl0VGVzdFJlc3VsdFJlZiBoaXRUZXN0
UmVzdWx0LCB1aW50MzJfdCB0eXBlLCBXS1R5cGVSZWYgdXNlckRhdGEpCi17Ci0gICAgcmV0dXJu
IG5pbDsKKyAgICByZXR1cm4gW21fdmlldyBfd2ViX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNv
bnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0SW50ZXJuYWw6aGl0VGVzdFJlc3VsdCB3aXRoVHlwZTp0
eXBlIHVzZXJEYXRhOnVzZXJEYXRhXTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6ZGlkUGVyZm9y
bUltbWVkaWF0ZUFjdGlvbkhpdFRlc3QoY29uc3QgV2ViSGl0VGVzdFJlc3VsdERhdGEmIHJlc3Vs
dCwgYm9vbCBjb250ZW50UHJldmVudHNEZWZhdWx0LCBBUEk6Ok9iamVjdCogdXNlckRhdGEpCkBA
IC0yMjUyLDEzICsyMjkxLDE4IEBAIHZvaWQgV2ViVmlld0ltcGw6OmNvbXBsZXRlSW1tZWRpYXRl
QWN0aW9uQW5pbWF0aW9uKCkKICAgICBbbV92aWV3IF9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFu
aW1hdGlvbl07CiB9CiAKK3ZvaWQgV2ViVmlld0ltcGw6OmRpZENoYW5nZUNvbnRlbnRTaXplKENH
U2l6ZSBuZXdTaXplKQoreworICAgIFttX3ZpZXcgX2RpZENoYW5nZUNvbnRlbnRTaXplOk5TU2l6
ZUZyb21DR1NpemUobmV3U2l6ZSldOworfQorCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRJZ25vcmVz
Tm9uV2hlZWxFdmVudHMoYm9vbCBpZ25vcmVzTm9uV2hlZWxFdmVudHMpCiB7CiAgICAgaWYgKG1f
aWdub3Jlc05vbldoZWVsRXZlbnRzID09IGlnbm9yZXNOb25XaGVlbEV2ZW50cykKICAgICAgICAg
cmV0dXJuOwogCiAgICAgbV9pZ25vcmVzTm9uV2hlZWxFdmVudHMgPSBpZ25vcmVzTm9uV2hlZWxF
dmVudHM7Ci0gICAgbV9wYWdlLnNldFNob3VsZERpc3BhdGNoRmFrZU1vdXNlTW92ZUV2ZW50cygh
aWdub3Jlc05vbldoZWVsRXZlbnRzKTsKKyAgICBtX3BhZ2UtPnNldFNob3VsZERpc3BhdGNoRmFr
ZU1vdXNlTW92ZUV2ZW50cyghaWdub3Jlc05vbldoZWVsRXZlbnRzKTsKIAogI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCiAgICAgaWYgKGlnbm9yZXNOb25XaGVl
bEV2ZW50cykKQEAgLTIyOTQsNyArMjMzOCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZVJl
bW90ZUFjY2Vzc2liaWxpdHlSZWdpc3RyYXRpb24oYm9vbCByZWdpc3RlclByb2Nlc3MpCiAgICAg
Ly8gYXdheSwgdGhhdCBpbmZvcm1hdGlvbiBpcyBub3QgcHJlc2VudCBpbiBXZWJQcm9jZXNzCiAg
ICAgcGlkX3QgcGlkID0gMDsKICAgICBpZiAocmVnaXN0ZXJQcm9jZXNzKQotICAgICAgICBwaWQg
PSBtX3BhZ2UucHJvY2VzcygpLnByb2Nlc3NJZGVudGlmaWVyKCk7CisgICAgICAgIHBpZCA9IG1f
cGFnZS0+cHJvY2VzcygpLnByb2Nlc3NJZGVudGlmaWVyKCk7CiAgICAgZWxzZSBpZiAoIXJlZ2lz
dGVyUHJvY2VzcykgewogICAgICAgICBwaWQgPSBXS0FYUmVtb3RlUHJvY2Vzc0lkZW50aWZpZXIo
bV9yZW1vdGVBY2Nlc3NpYmlsaXR5Q2hpbGQuZ2V0KCkpOwogICAgICAgICBtX3JlbW90ZUFjY2Vz
c2liaWxpdHlDaGlsZCA9IG5pbDsKQEAgLTIzMTAsNyArMjM1NCw3IEBAIHZvaWQgV2ViVmlld0lt
cGw6OmFjY2Vzc2liaWxpdHlSZWdpc3RlclVJUHJvY2Vzc1Rva2VucygpCiAgICAgTlNEYXRhICpy
ZW1vdGVXaW5kb3dUb2tlbiA9IFdLQVhSZW1vdGVUb2tlbkZvckVsZW1lbnQobV92aWV3LndpbmRv
dyk7CiAgICAgSVBDOjpEYXRhUmVmZXJlbmNlIGVsZW1lbnRUb2tlbiA9IElQQzo6RGF0YVJlZmVy
ZW5jZShyZWludGVycHJldF9jYXN0PGNvbnN0IHVpbnQ4X3QqPihbcmVtb3RlRWxlbWVudFRva2Vu
IGJ5dGVzXSksIFtyZW1vdGVFbGVtZW50VG9rZW4gbGVuZ3RoXSk7CiAgICAgSVBDOjpEYXRhUmVm
ZXJlbmNlIHdpbmRvd1Rva2VuID0gSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgdWludDhfdCo+KFtyZW1vdGVXaW5kb3dUb2tlbiBieXRlc10pLCBbcmVtb3RlV2luZG93
VG9rZW4gbGVuZ3RoXSk7Ci0gICAgbV9wYWdlLnJlZ2lzdGVyVUlQcm9jZXNzQWNjZXNzaWJpbGl0
eVRva2VucyhlbGVtZW50VG9rZW4sIHdpbmRvd1Rva2VuKTsKKyAgICBtX3BhZ2UtPnJlZ2lzdGVy
VUlQcm9jZXNzQWNjZXNzaWJpbGl0eVRva2VucyhlbGVtZW50VG9rZW4sIHdpbmRvd1Rva2VuKTsK
IH0KIAogaWQgV2ViVmlld0ltcGw6OmFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50KCkKQEAg
LTI0NjIsNyArMjUwNiw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNlbmRUb29sVGlwTW91c2VFbnRl
cmVkKCkKIAogTlNTdHJpbmcgKldlYlZpZXdJbXBsOjpzdHJpbmdGb3JUb29sVGlwKE5TVG9vbFRp
cFRhZyB0YWcpCiB7Ci0gICAgcmV0dXJuIG5zU3RyaW5nRnJvbVdlYkNvcmVTdHJpbmcobV9wYWdl
LnRvb2xUaXAoKSk7CisgICAgcmV0dXJuIG5zU3RyaW5nRnJvbVdlYkNvcmVTdHJpbmcobV9wYWdl
LT50b29sVGlwKCkpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjp0b29sVGlwQ2hhbmdlZChjb25z
dCBTdHJpbmcmIG9sZFRvb2xUaXAsIGNvbnN0IFN0cmluZyYgbmV3VG9vbFRpcCkKQEAgLTI1NjAs
NyArMjYwNCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldEluc3BlY3RvckF0dGFjaG1lbnRWaWV3
KE5TVmlldyAqbmV3VmlldykKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9pbnNwZWN0b3JBdHRh
Y2htZW50VmlldyA9IG5ld1ZpZXc7Ci0gICAgbV9wYWdlLmluc3BlY3RvcigpLT5hdHRhY2htZW50
Vmlld0RpZENoYW5nZShvbGRWaWV3ID8gb2xkVmlldyA6IG1fdmlldywgbmV3VmlldyA/IG5ld1Zp
ZXcgOiBtX3ZpZXcpOworICAgIG1fcGFnZS0+aW5zcGVjdG9yKCktPmF0dGFjaG1lbnRWaWV3RGlk
Q2hhbmdlKG9sZFZpZXcgPyBvbGRWaWV3IDogbV92aWV3LCBuZXdWaWV3ID8gbmV3VmlldyA6IG1f
dmlldyk7CiB9CiAKIE5TVmlldyAqV2ViVmlld0ltcGw6Omluc3BlY3RvckF0dGFjaG1lbnRWaWV3
KCkKQEAgLTI1NzMsMjYgKzI2MTcsMTYgQEAgX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKldlYlZp
ZXdJbXBsOjpyZW1vdGVPYmplY3RSZWdpc3RyeSgpCiB7CiAgICAgaWYgKCFtX3JlbW90ZU9iamVj
dFJlZ2lzdHJ5KSB7CiAgICAgICAgIG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBhZG9wdE5TKFtb
X1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgYWxsb2NdIF9pbml0V2l0aE1lc3NhZ2VTZW5kZXI6bV9w
YWdlXSk7Ci0gICAgICAgIG1fcGFnZS5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hZGRNZXNzYWdl
UmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1fcGFnZS5wYWdlSUQoKSwgW21fcmVtb3RlT2JqZWN0UmVnaXN0cnkgcmVtb3RlT2Jq
ZWN0UmVnaXN0cnldKTsKKyAgICAgICAgbV9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5h
ZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdl
UmVjZWl2ZXJOYW1lKCksIG1fcGFnZS0+cGFnZUlEKCksIFttX3JlbW90ZU9iamVjdFJlZ2lzdHJ5
IHJlbW90ZU9iamVjdFJlZ2lzdHJ5XSk7CiAgICAgfQogCiAgICAgcmV0dXJuIG1fcmVtb3RlT2Jq
ZWN0UmVnaXN0cnkuZ2V0KCk7CiB9CiAKLXZvaWQgV2ViVmlld0ltcGw6OmRlc3Ryb3lSZW1vdGVP
YmplY3RSZWdpc3RyeSgpCi17Ci0gICAgaWYgKCFtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5KQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBtX3BhZ2UucHJvY2VzcygpLnByb2Nlc3NQb29sKCkucmVtb3Zl
TWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RSZWdpc3RyeTo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpLCBtX3BhZ2UucGFnZUlEKCkpOwotICAgIFttX3JlbW90ZU9iamVjdFJlZ2lz
dHJ5IF9pbnZhbGlkYXRlXTsKLSAgICBtX3JlbW90ZU9iamVjdFJlZ2lzdHJ5ID0gbmlsOwotfQot
CiBXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgKldlYlZpZXdJbXBsOjpicm93c2luZ0NvbnRl
eHRDb250cm9sbGVyKCkKIHsKICAgICBpZiAoIW1fYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcikK
LSAgICAgICAgbV9icm93c2luZ0NvbnRleHRDb250cm9sbGVyID0gYWRvcHROUyhbW1dLQnJvd3Np
bmdDb250ZXh0Q29udHJvbGxlciBhbGxvY10gX2luaXRXaXRoUGFnZVJlZjp0b0FQSSgmbV9wYWdl
KV0pOworICAgICAgICBtX2Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyIGFsbG9jXSBfaW5pdFdpdGhQYWdlUmVmOnRvQVBJKG1f
cGFnZS5wdHIoKSldKTsKIAogICAgIHJldHVybiBtX2Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIu
Z2V0KCk7CiB9CkBAIC0yNjEwLDcgKzI2NDQsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkcmFnZ2Vk
SW1hZ2UoTlNJbWFnZSAqaW1hZ2UsIENHUG9pbnQgZW5kUG9pbnQsIE5TRHJhZ09wZXJhdGlvbgog
ICAgIC8vIFByZXZlbnQgcXVldWVkIG1vdXNlRHJhZ2dlZCBldmVudHMgZnJvbSBjb21pbmcgYWZ0
ZXIgdGhlIGRyYWcgYW5kIGZha2UgbW91c2VVcCBldmVudC4KICAgICBtX2lnbm9yZXNNb3VzZURy
YWdnZWRFdmVudHMgPSB0cnVlOwogCi0gICAgbV9wYWdlLmRyYWdFbmRlZChXZWJDb3JlOjpJbnRQ
b2ludCh3aW5kb3dNb3VzZUxvYyksIFdlYkNvcmU6Omdsb2JhbFBvaW50KHdpbmRvd01vdXNlTG9j
LCBtX3ZpZXcud2luZG93KSwgb3BlcmF0aW9uKTsKKyAgICBtX3BhZ2UtPmRyYWdFbmRlZChXZWJD
b3JlOjpJbnRQb2ludCh3aW5kb3dNb3VzZUxvYyksIFdlYkNvcmU6Omdsb2JhbFBvaW50KHdpbmRv
d01vdXNlTG9jLCBtX3ZpZXcud2luZG93KSwgb3BlcmF0aW9uKTsKIH0KIAogc3RhdGljIFdlYkNv
cmU6OkRyYWdBcHBsaWNhdGlvbkZsYWdzIGFwcGxpY2F0aW9uRmxhZ3NGb3JEcmFnKE5TVmlldyAq
dmlldywgaWQgPE5TRHJhZ2dpbmdJbmZvPiBkcmFnZ2luZ0luZm8pCkBAIC0yNjM0LDggKzI2Njgs
OCBAQCBOU0RyYWdPcGVyYXRpb24gV2ViVmlld0ltcGw6OmRyYWdnaW5nRW50ZXJlZChpZCA8TlNE
cmFnZ2luZ0luZm8+IGRyYWdnaW5nSW5mbykKICAgICBXZWJDb3JlOjpJbnRQb2ludCBnbG9iYWwo
V2ViQ29yZTo6Z2xvYmFsUG9pbnQoZHJhZ2dpbmdJbmZvLmRyYWdnaW5nTG9jYXRpb24sIG1fdmll
dy53aW5kb3cpKTsKICAgICBXZWJDb3JlOjpEcmFnRGF0YSBkcmFnRGF0YShkcmFnZ2luZ0luZm8s
IGNsaWVudCwgZ2xvYmFsLCBzdGF0aWNfY2FzdDxXZWJDb3JlOjpEcmFnT3BlcmF0aW9uPihkcmFn
Z2luZ0luZm8uZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNrKSwgYXBwbGljYXRpb25GbGFnc0Zv
ckRyYWcobV92aWV3LCBkcmFnZ2luZ0luZm8pKTsKIAotICAgIG1fcGFnZS5yZXNldEN1cnJlbnRE
cmFnSW5mb3JtYXRpb24oKTsKLSAgICBtX3BhZ2UuZHJhZ0VudGVyZWQoZHJhZ0RhdGEsIGRyYWdn
aW5nSW5mby5kcmFnZ2luZ1Bhc3RlYm9hcmQubmFtZSk7CisgICAgbV9wYWdlLT5yZXNldEN1cnJl
bnREcmFnSW5mb3JtYXRpb24oKTsKKyAgICBtX3BhZ2UtPmRyYWdFbnRlcmVkKGRyYWdEYXRhLCBk
cmFnZ2luZ0luZm8uZHJhZ2dpbmdQYXN0ZWJvYXJkLm5hbWUpOwogICAgIHJldHVybiBOU0RyYWdP
cGVyYXRpb25Db3B5OwogfQogCkBAIC0yNjQ0LDExICsyNjc4LDExIEBAIE5TRHJhZ09wZXJhdGlv
biBXZWJWaWV3SW1wbDo6ZHJhZ2dpbmdVcGRhdGVkKGlkIDxOU0RyYWdnaW5nSW5mbz4gZHJhZ2dp
bmdJbmZvKQogICAgIFdlYkNvcmU6OkludFBvaW50IGNsaWVudChbbV92aWV3IGNvbnZlcnRQb2lu
dDpkcmFnZ2luZ0luZm8uZHJhZ2dpbmdMb2NhdGlvbiBmcm9tVmlldzpuaWxdKTsKICAgICBXZWJD
b3JlOjpJbnRQb2ludCBnbG9iYWwoV2ViQ29yZTo6Z2xvYmFsUG9pbnQoZHJhZ2dpbmdJbmZvLmRy
YWdnaW5nTG9jYXRpb24sIG1fdmlldy53aW5kb3cpKTsKICAgICBXZWJDb3JlOjpEcmFnRGF0YSBk
cmFnRGF0YShkcmFnZ2luZ0luZm8sIGNsaWVudCwgZ2xvYmFsLCBzdGF0aWNfY2FzdDxXZWJDb3Jl
OjpEcmFnT3BlcmF0aW9uPihkcmFnZ2luZ0luZm8uZHJhZ2dpbmdTb3VyY2VPcGVyYXRpb25NYXNr
KSwgYXBwbGljYXRpb25GbGFnc0ZvckRyYWcobV92aWV3LCBkcmFnZ2luZ0luZm8pKTsKLSAgICBt
X3BhZ2UuZHJhZ1VwZGF0ZWQoZHJhZ0RhdGEsIGRyYWdnaW5nSW5mby5kcmFnZ2luZ1Bhc3RlYm9h
cmQubmFtZSk7CisgICAgbV9wYWdlLT5kcmFnVXBkYXRlZChkcmFnRGF0YSwgZHJhZ2dpbmdJbmZv
LmRyYWdnaW5nUGFzdGVib2FyZC5uYW1lKTsKIAotICAgIE5TSW50ZWdlciBudW1iZXJPZlZhbGlk
SXRlbXNGb3JEcm9wID0gbV9wYWdlLmN1cnJlbnREcmFnTnVtYmVyT2ZGaWxlc1RvQmVBY2NlcHRl
ZCgpOworICAgIE5TSW50ZWdlciBudW1iZXJPZlZhbGlkSXRlbXNGb3JEcm9wID0gbV9wYWdlLT5j
dXJyZW50RHJhZ051bWJlck9mRmlsZXNUb0JlQWNjZXB0ZWQoKTsKICAgICBOU0RyYWdnaW5nRm9y
bWF0aW9uIGRyYWdnaW5nRm9ybWF0aW9uID0gTlNEcmFnZ2luZ0Zvcm1hdGlvbk5vbmU7Ci0gICAg
aWYgKG1fcGFnZS5jdXJyZW50RHJhZ0lzT3ZlckZpbGVJbnB1dCgpICYmIG51bWJlck9mVmFsaWRJ
dGVtc0ZvckRyb3AgPiAwKQorICAgIGlmIChtX3BhZ2UtPmN1cnJlbnREcmFnSXNPdmVyRmlsZUlu
cHV0KCkgJiYgbnVtYmVyT2ZWYWxpZEl0ZW1zRm9yRHJvcCA+IDApCiAgICAgICAgIGRyYWdnaW5n
Rm9ybWF0aW9uID0gTlNEcmFnZ2luZ0Zvcm1hdGlvbkxpc3Q7CiAKICAgICBpZiAoZHJhZ2dpbmdJ
bmZvLm51bWJlck9mVmFsaWRJdGVtc0ZvckRyb3AgIT0gbnVtYmVyT2ZWYWxpZEl0ZW1zRm9yRHJv
cCkKQEAgLTI2NTYsNyArMjY5MCw3IEBAIE5TRHJhZ09wZXJhdGlvbiBXZWJWaWV3SW1wbDo6ZHJh
Z2dpbmdVcGRhdGVkKGlkIDxOU0RyYWdnaW5nSW5mbz4gZHJhZ2dpbmdJbmZvKQogICAgIGlmIChk
cmFnZ2luZ0luZm8uZHJhZ2dpbmdGb3JtYXRpb24gIT0gZHJhZ2dpbmdGb3JtYXRpb24pCiAgICAg
ICAgIFtkcmFnZ2luZ0luZm8gc2V0RHJhZ2dpbmdGb3JtYXRpb246ZHJhZ2dpbmdGb3JtYXRpb25d
OwogCi0gICAgcmV0dXJuIG1fcGFnZS5jdXJyZW50RHJhZ09wZXJhdGlvbigpOworICAgIHJldHVy
biBtX3BhZ2UtPmN1cnJlbnREcmFnT3BlcmF0aW9uKCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6
OmRyYWdnaW5nRXhpdGVkKGlkIDxOU0RyYWdnaW5nSW5mbz4gZHJhZ2dpbmdJbmZvKQpAQCAtMjY2
NCw4ICsyNjk4LDggQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZHJhZ2dpbmdFeGl0ZWQoaWQgPE5TRHJh
Z2dpbmdJbmZvPiBkcmFnZ2luZ0luZm8pCiAgICAgV2ViQ29yZTo6SW50UG9pbnQgY2xpZW50KFtt
X3ZpZXcgY29udmVydFBvaW50OmRyYWdnaW5nSW5mby5kcmFnZ2luZ0xvY2F0aW9uIGZyb21WaWV3
Om5pbF0pOwogICAgIFdlYkNvcmU6OkludFBvaW50IGdsb2JhbChXZWJDb3JlOjpnbG9iYWxQb2lu
dChkcmFnZ2luZ0luZm8uZHJhZ2dpbmdMb2NhdGlvbiwgbV92aWV3LndpbmRvdykpOwogICAgIFdl
YkNvcmU6OkRyYWdEYXRhIGRyYWdEYXRhKGRyYWdnaW5nSW5mbywgY2xpZW50LCBnbG9iYWwsIHN0
YXRpY19jYXN0PFdlYkNvcmU6OkRyYWdPcGVyYXRpb24+KGRyYWdnaW5nSW5mby5kcmFnZ2luZ1Nv
dXJjZU9wZXJhdGlvbk1hc2spLCBhcHBsaWNhdGlvbkZsYWdzRm9yRHJhZyhtX3ZpZXcsIGRyYWdn
aW5nSW5mbykpOwotICAgIG1fcGFnZS5kcmFnRXhpdGVkKGRyYWdEYXRhLCBkcmFnZ2luZ0luZm8u
ZHJhZ2dpbmdQYXN0ZWJvYXJkLm5hbWUpOwotICAgIG1fcGFnZS5yZXNldEN1cnJlbnREcmFnSW5m
b3JtYXRpb24oKTsKKyAgICBtX3BhZ2UtPmRyYWdFeGl0ZWQoZHJhZ0RhdGEsIGRyYWdnaW5nSW5m
by5kcmFnZ2luZ1Bhc3RlYm9hcmQubmFtZSk7CisgICAgbV9wYWdlLT5yZXNldEN1cnJlbnREcmFn
SW5mb3JtYXRpb24oKTsKIH0KIAogYm9vbCBXZWJWaWV3SW1wbDo6cHJlcGFyZUZvckRyYWdPcGVy
YXRpb24oaWQgPE5TRHJhZ2dpbmdJbmZvPikKQEAgLTI3MjMsMTIgKzI3NTcsMTIgQEAgYm9vbCBX
ZWJWaWV3SW1wbDo6cGVyZm9ybURyYWdPcGVyYXRpb24oaWQgPE5TRHJhZ2dpbmdJbmZvPiBkcmFn
Z2luZ0luZm8pCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlIHNhbmRib3hFeHRlbnNpb25I
YW5kbGU7CiAgICAgYm9vbCBjcmVhdGVkRXh0ZW5zaW9uID0gbWF5YmVDcmVhdGVTYW5kYm94RXh0
ZW5zaW9uRnJvbVBhc3RlYm9hcmQoZHJhZ2dpbmdJbmZvLmRyYWdnaW5nUGFzdGVib2FyZCwgc2Fu
ZGJveEV4dGVuc2lvbkhhbmRsZSk7CiAgICAgaWYgKGNyZWF0ZWRFeHRlbnNpb24pCi0gICAgICAg
IG1fcGFnZS5wcm9jZXNzKCkud2lsbEFjcXVpcmVVbml2ZXJzYWxGaWxlUmVhZFNhbmRib3hFeHRl
bnNpb24oKTsKKyAgICAgICAgbV9wYWdlLT5wcm9jZXNzKCkud2lsbEFjcXVpcmVVbml2ZXJzYWxG
aWxlUmVhZFNhbmRib3hFeHRlbnNpb24oKTsKIAogICAgIFNhbmRib3hFeHRlbnNpb246OkhhbmRs
ZUFycmF5IHNhbmRib3hFeHRlbnNpb25Gb3JVcGxvYWQ7CiAgICAgY3JlYXRlU2FuZGJveEV4dGVu
c2lvbnNGb3JGaWxlVXBsb2FkKGRyYWdnaW5nSW5mby5kcmFnZ2luZ1Bhc3RlYm9hcmQsIHNhbmRi
b3hFeHRlbnNpb25Gb3JVcGxvYWQpOwogCi0gICAgbV9wYWdlLnBlcmZvcm1EcmFnT3BlcmF0aW9u
KGRyYWdEYXRhLCBkcmFnZ2luZ0luZm8uZHJhZ2dpbmdQYXN0ZWJvYXJkLm5hbWUsIHNhbmRib3hF
eHRlbnNpb25IYW5kbGUsIHNhbmRib3hFeHRlbnNpb25Gb3JVcGxvYWQpOworICAgIG1fcGFnZS0+
cGVyZm9ybURyYWdPcGVyYXRpb24oZHJhZ0RhdGEsIGRyYWdnaW5nSW5mby5kcmFnZ2luZ1Bhc3Rl
Ym9hcmQubmFtZSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgc2FuZGJveEV4dGVuc2lvbkZvclVw
bG9hZCk7CiAKICAgICByZXR1cm4gdHJ1ZTsKIH0KQEAgLTI5NTksNyArMjk5Myw3IEBAIFJlZlB0
cjxWaWV3U25hcHNob3Q+IFdlYlZpZXdJbXBsOjp0YWtlVmlld1NuYXBzaG90KCkKICAgICAgICAg
d2luZG93Q2FwdHVyZVJlY3QgPSBib3VuZHNGb3JDdXN0b21Td2lwZVZpZXdzOwogICAgIGVsc2Ug
ewogICAgICAgICBOU1JlY3QgdW5vYnNjdXJlZEJvdW5kcyA9IG1fdmlldy5ib3VuZHM7Ci0gICAg
ICAgIGZsb2F0IHRvcENvbnRlbnRJbnNldCA9IG1fcGFnZS50b3BDb250ZW50SW5zZXQoKTsKKyAg
ICAgICAgZmxvYXQgdG9wQ29udGVudEluc2V0ID0gbV9wYWdlLT50b3BDb250ZW50SW5zZXQoKTsK
ICAgICAgICAgdW5vYnNjdXJlZEJvdW5kcy5vcmlnaW4ueSArPSB0b3BDb250ZW50SW5zZXQ7CiAg
ICAgICAgIHVub2JzY3VyZWRCb3VuZHMuc2l6ZS5oZWlnaHQgLT0gdG9wQ29udGVudEluc2V0Owog
ICAgICAgICB3aW5kb3dDYXB0dXJlUmVjdCA9IFttX3ZpZXcgY29udmVydFJlY3Q6dW5vYnNjdXJl
ZEJvdW5kcyB0b1ZpZXc6bmlsXTsKQEAgLTI5ODQsMTIgKzMwMTgsMTIgQEAgUmVmUHRyPFZpZXdT
bmFwc2hvdD4gV2ViVmlld0ltcGw6OnRha2VWaWV3U25hcHNob3QoKQogCiB2b2lkIFdlYlZpZXdJ
bXBsOjpzYXZlQmFja0ZvcndhcmRTbmFwc2hvdEZvckN1cnJlbnRJdGVtKCkKIHsKLSAgICBtX3Bh
Z2UucmVjb3JkTmF2aWdhdGlvblNuYXBzaG90KCk7CisgICAgbV9wYWdlLT5yZWNvcmROYXZpZ2F0
aW9uU25hcHNob3QoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2F2ZUJhY2tGb3J3YXJkU25h
cHNob3RGb3JJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0mIGl0ZW0pCiB7Ci0gICAgbV9wYWdl
LnJlY29yZE5hdmlnYXRpb25TbmFwc2hvdChpdGVtKTsKKyAgICBtX3BhZ2UtPnJlY29yZE5hdmln
YXRpb25TbmFwc2hvdChpdGVtKTsKIH0KIAogVmlld0dlc3R1cmVDb250cm9sbGVyJiBXZWJWaWV3
SW1wbDo6ZW5zdXJlR2VzdHVyZUNvbnRyb2xsZXIoKQpAQCAtMzAwMiw4ICszMDM2LDggQEAgVmll
d0dlc3R1cmVDb250cm9sbGVyJiBXZWJWaWV3SW1wbDo6ZW5zdXJlR2VzdHVyZUNvbnRyb2xsZXIo
KQogdm9pZCBXZWJWaWV3SW1wbDo6c2V0QWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVy
ZXMoYm9vbCBhbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcykKIHsKICAgICBtX2Fs
bG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzID0gYWxsb3dzQmFja0ZvcndhcmROYXZp
Z2F0aW9uR2VzdHVyZXM7Ci0gICAgbV9wYWdlLnNldFNob3VsZFJlY29yZE5hdmlnYXRpb25TbmFw
c2hvdHMoYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMpOwotICAgIG1fcGFnZS5z
ZXRTaG91bGRVc2VJbXBsaWNpdFJ1YmJlckJhbmRDb250cm9sKGFsbG93c0JhY2tGb3J3YXJkTmF2
aWdhdGlvbkdlc3R1cmVzKTsKKyAgICBtX3BhZ2UtPnNldFNob3VsZFJlY29yZE5hdmlnYXRpb25T
bmFwc2hvdHMoYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMpOworICAgIG1fcGFn
ZS0+c2V0U2hvdWxkVXNlSW1wbGljaXRSdWJiZXJCYW5kQ29udHJvbChhbGxvd3NCYWNrRm9yd2Fy
ZE5hdmlnYXRpb25HZXN0dXJlcyk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldEFsbG93c01h
Z25pZmljYXRpb24oYm9vbCBhbGxvd3NNYWduaWZpY2F0aW9uKQpAQCAtMzAxOCw3ICszMDUyLDcg
QEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0TWFnbmlmaWNhdGlvbihkb3VibGUgbWFnbmlmaWNhdGlv
biwgQ0dQb2ludCBjZW50ZXJQb2ludCkKIAogICAgIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGls
ZFdpbmRvd3NXaXRoQW5pbWF0aW9uKGZhbHNlKTsKIAotICAgIG1fcGFnZS5zY2FsZVBhZ2VJblZp
ZXdDb29yZGluYXRlcyhtYWduaWZpY2F0aW9uLCBXZWJDb3JlOjpyb3VuZGVkSW50UG9pbnQoY2Vu
dGVyUG9pbnQpKTsKKyAgICBtX3BhZ2UtPnNjYWxlUGFnZUluVmlld0Nvb3JkaW5hdGVzKG1hZ25p
ZmljYXRpb24sIFdlYkNvcmU6OnJvdW5kZWRJbnRQb2ludChjZW50ZXJQb2ludCkpOwogfQogCiB2
b2lkIFdlYlZpZXdJbXBsOjpzZXRNYWduaWZpY2F0aW9uKGRvdWJsZSBtYWduaWZpY2F0aW9uKQpA
QCAtMzAyOSwxNCArMzA2MywxNCBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRNYWduaWZpY2F0aW9u
KGRvdWJsZSBtYWduaWZpY2F0aW9uKQogICAgIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdp
bmRvd3NXaXRoQW5pbWF0aW9uKGZhbHNlKTsKIAogICAgIFdlYkNvcmU6OkZsb2F0UG9pbnQgdmll
d0NlbnRlcihOU01pZFgoW21fdmlldyBib3VuZHNdKSwgTlNNaWRZKFttX3ZpZXcgYm91bmRzXSkp
OwotICAgIG1fcGFnZS5zY2FsZVBhZ2VJblZpZXdDb29yZGluYXRlcyhtYWduaWZpY2F0aW9uLCBy
b3VuZGVkSW50UG9pbnQodmlld0NlbnRlcikpOworICAgIG1fcGFnZS0+c2NhbGVQYWdlSW5WaWV3
Q29vcmRpbmF0ZXMobWFnbmlmaWNhdGlvbiwgcm91bmRlZEludFBvaW50KHZpZXdDZW50ZXIpKTsK
IH0KIAogZG91YmxlIFdlYlZpZXdJbXBsOjptYWduaWZpY2F0aW9uKCkgY29uc3QKIHsKICAgICBp
ZiAobV9nZXN0dXJlQ29udHJvbGxlcikKICAgICAgICAgcmV0dXJuIG1fZ2VzdHVyZUNvbnRyb2xs
ZXItPm1hZ25pZmljYXRpb24oKTsKLSAgICByZXR1cm4gbV9wYWdlLnBhZ2VTY2FsZUZhY3Rvcigp
OworICAgIHJldHVybiBtX3BhZ2UtPnBhZ2VTY2FsZUZhY3RvcigpOwogfQogCiB2b2lkIFdlYlZp
ZXdJbXBsOjpzZXRDdXN0b21Td2lwZVZpZXdzKE5TQXJyYXkgKmN1c3RvbVN3aXBlVmlld3MpCkBA
IC0zMDk0LDcgKzMxMjgsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzY3JvbGxXaGVlbChOU0V2ZW50
ICpldmVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgTmF0aXZlV2ViV2hlZWxFdmVudCB3ZWJF
dmVudCA9IE5hdGl2ZVdlYldoZWVsRXZlbnQoZXZlbnQsIG1fdmlldyk7Ci0gICAgbV9wYWdlLmhh
bmRsZVdoZWVsRXZlbnQod2ViRXZlbnQpOworICAgIG1fcGFnZS0+aGFuZGxlV2hlZWxFdmVudCh3
ZWJFdmVudCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnN3aXBlV2l0aEV2ZW50KE5TRXZlbnQg
KmV2ZW50KQpAQCAtMzEwOCw5ICszMTQyLDkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c3dpcGVXaXRo
RXZlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgfQogCiAgICAgaWYgKGV2ZW50LmRlbHRhWCA+IDAu
MCkKLSAgICAgICAgbV9wYWdlLmdvQmFjaygpOworICAgICAgICBtX3BhZ2UtPmdvQmFjaygpOwog
ICAgIGVsc2UgaWYgKGV2ZW50LmRlbHRhWCA8IDAuMCkKLSAgICAgICAgbV9wYWdlLmdvRm9yd2Fy
ZCgpOworICAgICAgICBtX3BhZ2UtPmdvRm9yd2FyZCgpOwogICAgIGVsc2UKICAgICAgICAgW21f
dmlldyBfc3VwZXJTd2lwZVdpdGhFdmVudDpldmVudF07CiB9CkBAIC0zMTIwLDcgKzMxNTQsNyBA
QCB2b2lkIFdlYlZpZXdJbXBsOjptYWduaWZ5V2l0aEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAg
IGlmICghbV9hbGxvd3NNYWduaWZpY2F0aW9uKSB7CiAjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VW
RU5UUykKICAgICAgICAgTmF0aXZlV2ViR2VzdHVyZUV2ZW50IHdlYkV2ZW50ID0gTmF0aXZlV2Vi
R2VzdHVyZUV2ZW50KGV2ZW50LCBtX3ZpZXcpOwotICAgICAgICBtX3BhZ2UuaGFuZGxlR2VzdHVy
ZUV2ZW50KHdlYkV2ZW50KTsKKyAgICAgICAgbV9wYWdlLT5oYW5kbGVHZXN0dXJlRXZlbnQod2Vi
RXZlbnQpOwogI2VuZGlmCiAgICAgICAgIFttX3ZpZXcgX3N1cGVyTWFnbmlmeVdpdGhFdmVudDpl
dmVudF07CiAgICAgICAgIHJldHVybjsKQEAgLTMxMzcsNyArMzE3MSw3IEBAIHZvaWQgV2ViVmll
d0ltcGw6Om1hZ25pZnlXaXRoRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgfQogCiAgICAgTmF0
aXZlV2ViR2VzdHVyZUV2ZW50IHdlYkV2ZW50ID0gTmF0aXZlV2ViR2VzdHVyZUV2ZW50KGV2ZW50
LCBtX3ZpZXcpOwotICAgIG1fcGFnZS5oYW5kbGVHZXN0dXJlRXZlbnQod2ViRXZlbnQpOworICAg
IG1fcGFnZS0+aGFuZGxlR2VzdHVyZUV2ZW50KHdlYkV2ZW50KTsKICNlbHNlCiAgICAgZ2VzdHVy
ZUNvbnRyb2xsZXIuaGFuZGxlTWFnbmlmaWNhdGlvbkdlc3R1cmVFdmVudChldmVudCwgW21fdmll
dyBjb252ZXJ0UG9pbnQ6ZXZlbnQubG9jYXRpb25JbldpbmRvdyBmcm9tVmlldzpuaWxdKTsKICNl
bmRpZgpAQCAtMzE2OSw3ICszMjAzLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0TGFzdE1vdXNl
RG93bkV2ZW50KE5TRXZlbnQgKmV2ZW50KQogdm9pZCBXZWJWaWV3SW1wbDo6cm90YXRlV2l0aEV2
ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIE5hdGl2ZVdlYkdlc3R1cmVFdmVudCB3ZWJFdmVu
dCA9IE5hdGl2ZVdlYkdlc3R1cmVFdmVudChldmVudCwgbV92aWV3KTsKLSAgICBtX3BhZ2UuaGFu
ZGxlR2VzdHVyZUV2ZW50KHdlYkV2ZW50KTsKKyAgICBtX3BhZ2UtPmhhbmRsZUdlc3R1cmVFdmVu
dCh3ZWJFdmVudCk7CiB9CiAjZW5kaWYKIApAQCAtMzMyMCw3ICszMzU0LDcgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6ZG9Db21tYW5kQnlTZWxlY3RvcihTRUwgc2VsZWN0b3IpCiAgICAgICAgIFdlYkNv
cmU6OktleXByZXNzQ29tbWFuZCBjb21tYW5kKE5TU3RyaW5nRnJvbVNlbGVjdG9yKHNlbGVjdG9y
KSk7CiAgICAgICAgIGtleXByZXNzQ29tbWFuZHMtPmFwcGVuZChjb21tYW5kKTsKICAgICAgICAg
TE9HKFRleHRJbnB1dCwgIi4uLnN0b3JlZCIpOwotICAgICAgICBtX3BhZ2UucmVnaXN0ZXJLZXlw
cmVzc0NvbW1hbmROYW1lKGNvbW1hbmQuY29tbWFuZE5hbWUpOworICAgICAgICBtX3BhZ2UtPnJl
Z2lzdGVyS2V5cHJlc3NDb21tYW5kTmFtZShjb21tYW5kLmNvbW1hbmROYW1lKTsKICAgICB9IGVs
c2UgewogICAgICAgICAvLyBGSVhNRTogU2VuZCB0aGUgY29tbWFuZCB0byBFZGl0b3Igc3luY2hy
b25vdXNseSBhbmQgb25seSBzZW5kIGl0IGFsb25nIHRoZQogICAgICAgICAvLyByZXNwb25kZXIg
Y2hhaW4gaWYgaXQncyBhIHNlbGVjdG9yIHRoYXQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhbiBl
ZGl0aW5nIGNvbW1hbmQuCkBAIC0zMzczLDE2ICszNDA3LDE2IEBAIHZvaWQgV2ViVmlld0ltcGw6
Omluc2VydFRleHQoaWQgc3RyaW5nLCBOU1JhbmdlIHJlcGxhY2VtZW50UmFuZ2UpCiAgICAgICAg
IFdlYkNvcmU6OktleXByZXNzQ29tbWFuZCBjb21tYW5kKCJpbnNlcnRUZXh0OiIsIHRleHQpOwog
ICAgICAgICBrZXlwcmVzc0NvbW1hbmRzLT5hcHBlbmQoY29tbWFuZCk7CiAgICAgICAgIExPRyhU
ZXh0SW5wdXQsICIuLi5zdG9yZWQiKTsKLSAgICAgICAgbV9wYWdlLnJlZ2lzdGVyS2V5cHJlc3ND
b21tYW5kTmFtZShjb21tYW5kLmNvbW1hbmROYW1lKTsKKyAgICAgICAgbV9wYWdlLT5yZWdpc3Rl
cktleXByZXNzQ29tbWFuZE5hbWUoY29tbWFuZC5jb21tYW5kTmFtZSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKICAgICBTdHJpbmcgZXZlbnRUZXh0ID0gdGV4dDsKICAgICBldmVudFRleHQu
cmVwbGFjZShOU0JhY2tUYWJDaGFyYWN0ZXIsIE5TVGFiQ2hhcmFjdGVyKTsgLy8gc2FtZSB0aGlu
ZyBpcyBkb25lIGluIEtleUV2ZW50TWFjLm1tIGluIFdlYkNvcmUKICAgICBpZiAoIWRpY3RhdGlv
bkFsdGVybmF0aXZlcy5pc0VtcHR5KCkpCi0gICAgICAgIG1fcGFnZS5pbnNlcnREaWN0YXRlZFRl
eHRBc3luYyhldmVudFRleHQsIHJlcGxhY2VtZW50UmFuZ2UsIGRpY3RhdGlvbkFsdGVybmF0aXZl
cywgcmVnaXN0ZXJVbmRvR3JvdXApOworICAgICAgICBtX3BhZ2UtPmluc2VydERpY3RhdGVkVGV4
dEFzeW5jKGV2ZW50VGV4dCwgcmVwbGFjZW1lbnRSYW5nZSwgZGljdGF0aW9uQWx0ZXJuYXRpdmVz
LCByZWdpc3RlclVuZG9Hcm91cCk7CiAgICAgZWxzZQotICAgICAgICBtX3BhZ2UuaW5zZXJ0VGV4
dEFzeW5jKGV2ZW50VGV4dCwgcmVwbGFjZW1lbnRSYW5nZSwgcmVnaXN0ZXJVbmRvR3JvdXApOwor
ICAgICAgICBtX3BhZ2UtPmluc2VydFRleHRBc3luYyhldmVudFRleHQsIHJlcGxhY2VtZW50UmFu
Z2UsIHJlZ2lzdGVyVW5kb0dyb3VwKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2VsZWN0ZWRS
YW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcih2b2lkKF5jb21wbGV0aW9uSGFuZGxlclB0cikoTlNS
YW5nZSBzZWxlY3RlZFJhbmdlKSkKQEAgLTMzOTAsNyArMzQyNCw3IEBAIHZvaWQgV2ViVmlld0lt
cGw6OnNlbGVjdGVkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXIodm9pZCheY29tcGxldGlvbkhh
bmRsZXJQdHIpCiAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IGFkb3B0TlMoW2NvbXBsZXRp
b25IYW5kbGVyUHRyIGNvcHldKTsKIAogICAgIExPRyhUZXh0SW5wdXQsICJzZWxlY3RlZFJhbmdl
Iik7Ci0gICAgbV9wYWdlLmdldFNlbGVjdGVkUmFuZ2VBc3luYyhbY29tcGxldGlvbkhhbmRsZXJd
KGNvbnN0IEVkaXRpbmdSYW5nZSYgZWRpdGluZ1JhbmdlUmVzdWx0LCBXZWJLaXQ6OkNhbGxiYWNr
QmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICBtX3BhZ2UtPmdldFNlbGVjdGVkUmFuZ2VBc3luYyhb
Y29tcGxldGlvbkhhbmRsZXJdKGNvbnN0IEVkaXRpbmdSYW5nZSYgZWRpdGluZ1JhbmdlUmVzdWx0
LCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKICAgICAgICAgdm9pZCAoXmNv
bXBsZXRpb25IYW5kbGVyQmxvY2spKE5TUmFuZ2UpID0gKHZvaWQgKF4pKE5TUmFuZ2UpKWNvbXBs
ZXRpb25IYW5kbGVyLmdldCgpOwogICAgICAgICBpZiAoZXJyb3IgIT0gV2ViS2l0OjpDYWxsYmFj
a0Jhc2U6OkVycm9yOjpOb25lKSB7CiAgICAgICAgICAgICBMT0coVGV4dElucHV0LCAiICAgIC4u
LnNlbGVjdGVkUmFuZ2UgZmFpbGVkLiIpOwpAQCAtMzQxMSw3ICszNDQ1LDcgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6bWFya2VkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXIodm9pZCheY29tcGxldGlv
bkhhbmRsZXJQdHIpKE4KICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gYWRvcHROUyhbY29t
cGxldGlvbkhhbmRsZXJQdHIgY29weV0pOwogCiAgICAgTE9HKFRleHRJbnB1dCwgIm1hcmtlZFJh
bmdlIik7Ci0gICAgbV9wYWdlLmdldE1hcmtlZFJhbmdlQXN5bmMoW2NvbXBsZXRpb25IYW5kbGVy
XShjb25zdCBFZGl0aW5nUmFuZ2UmIGVkaXRpbmdSYW5nZVJlc3VsdCwgV2ViS2l0OjpDYWxsYmFj
a0Jhc2U6OkVycm9yIGVycm9yKSB7CisgICAgbV9wYWdlLT5nZXRNYXJrZWRSYW5nZUFzeW5jKFtj
b21wbGV0aW9uSGFuZGxlcl0oY29uc3QgRWRpdGluZ1JhbmdlJiBlZGl0aW5nUmFuZ2VSZXN1bHQs
IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewogICAgICAgICB2b2lkICheY29t
cGxldGlvbkhhbmRsZXJCbG9jaykoTlNSYW5nZSkgPSAodm9pZCAoXikoTlNSYW5nZSkpY29tcGxl
dGlvbkhhbmRsZXIuZ2V0KCk7CiAgICAgICAgIGlmIChlcnJvciAhPSBXZWJLaXQ6OkNhbGxiYWNr
QmFzZTo6RXJyb3I6Ok5vbmUpIHsKICAgICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLi4u
bWFya2VkUmFuZ2UgZmFpbGVkLiIpOwpAQCAtMzQzMiw3ICszNDY2LDcgQEAgdm9pZCBXZWJWaWV3
SW1wbDo6aGFzTWFya2VkVGV4dFdpdGhDb21wbGV0aW9uSGFuZGxlcih2b2lkKF5jb21wbGV0aW9u
SGFuZGxlclB0cikKICAgICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gYWRvcHROUyhbY29tcGxl
dGlvbkhhbmRsZXJQdHIgY29weV0pOwogCiAgICAgTE9HKFRleHRJbnB1dCwgImhhc01hcmtlZFRl
eHQiKTsKLSAgICBtX3BhZ2UuZ2V0TWFya2VkUmFuZ2VBc3luYyhbY29tcGxldGlvbkhhbmRsZXJd
KGNvbnN0IEVkaXRpbmdSYW5nZSYgZWRpdGluZ1JhbmdlUmVzdWx0LCBXZWJLaXQ6OkNhbGxiYWNr
QmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICBtX3BhZ2UtPmdldE1hcmtlZFJhbmdlQXN5bmMoW2Nv
bXBsZXRpb25IYW5kbGVyXShjb25zdCBFZGl0aW5nUmFuZ2UmIGVkaXRpbmdSYW5nZVJlc3VsdCwg
V2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CiAgICAgICAgIHZvaWQgKF5jb21w
bGV0aW9uSGFuZGxlckJsb2NrKShCT09MKSA9ICh2b2lkICheKShCT09MKSljb21wbGV0aW9uSGFu
ZGxlci5nZXQoKTsKICAgICAgICAgaWYgKGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpF
cnJvcjo6Tm9uZSkgewogICAgICAgICAgICAgTE9HKFRleHRJbnB1dCwgIiAgICAuLi5oYXNNYXJr
ZWRUZXh0IGZhaWxlZC4iKTsKQEAgLTM0NTAsNyArMzQ4NCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6
OmF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlKE5TUmFuZ2UgcHJvcG9zZWRSYW5n
ZSwgdm9pCiAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IGFkb3B0TlMoW2NvbXBsZXRpb25I
YW5kbGVyUHRyIGNvcHldKTsKIAogICAgIExPRyhUZXh0SW5wdXQsICJhdHRyaWJ1dGVkU3Vic3Ry
aW5nRnJvbVJhbmdlOigldSwgJXUpIiwgcHJvcG9zZWRSYW5nZS5sb2NhdGlvbiwgcHJvcG9zZWRS
YW5nZS5sZW5ndGgpOwotICAgIG1fcGFnZS5hdHRyaWJ1dGVkU3Vic3RyaW5nRm9yQ2hhcmFjdGVy
UmFuZ2VBc3luYyhwcm9wb3NlZFJhbmdlLCBbY29tcGxldGlvbkhhbmRsZXJdKGNvbnN0IEF0dHJp
YnV0ZWRTdHJpbmcmIHN0cmluZywgY29uc3QgRWRpdGluZ1JhbmdlJiBhY3R1YWxSYW5nZSwgV2Vi
S2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CisgICAgbV9wYWdlLT5hdHRyaWJ1dGVk
U3Vic3RyaW5nRm9yQ2hhcmFjdGVyUmFuZ2VBc3luYyhwcm9wb3NlZFJhbmdlLCBbY29tcGxldGlv
bkhhbmRsZXJdKGNvbnN0IEF0dHJpYnV0ZWRTdHJpbmcmIHN0cmluZywgY29uc3QgRWRpdGluZ1Jh
bmdlJiBhY3R1YWxSYW5nZSwgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CiAg
ICAgICAgIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlckJsb2NrKShOU0F0dHJpYnV0ZWRTdHJpbmcg
KiwgTlNSYW5nZSkgPSAodm9pZCAoXikoTlNBdHRyaWJ1dGVkU3RyaW5nICosIE5TUmFuZ2UpKWNv
bXBsZXRpb25IYW5kbGVyLmdldCgpOwogICAgICAgICBpZiAoZXJyb3IgIT0gV2ViS2l0OjpDYWxs
YmFja0Jhc2U6OkVycm9yOjpOb25lKSB7CiAgICAgICAgICAgICBMT0coVGV4dElucHV0LCAiICAg
IC4uLmF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9tUmFuZ2UgZmFpbGVkLiIpOwpAQCAtMzQ4MSw3ICsz
NTE1LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UoTlNS
YW5nZSByYW5nZSwgdm9pZCheY29tcGxldGlvbkhhbmQKICAgICB9CiAKICAgICBhdXRvIHdlYWtU
aGlzID0gY3JlYXRlV2Vha1B0cigpOwotICAgIG1fcGFnZS5maXJzdFJlY3RGb3JDaGFyYWN0ZXJS
YW5nZUFzeW5jKHJhbmdlLCBbd2Vha1RoaXMsIGNvbXBsZXRpb25IYW5kbGVyXShjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiByZWN0LCBjb25zdCBFZGl0aW5nUmFuZ2UmIGFjdHVhbFJhbmdlLCBXZWJL
aXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICBtX3BhZ2UtPmZpcnN0UmVjdEZv
ckNoYXJhY3RlclJhbmdlQXN5bmMocmFuZ2UsIFt3ZWFrVGhpcywgY29tcGxldGlvbkhhbmRsZXJd
KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QsIGNvbnN0IEVkaXRpbmdSYW5nZSYgYWN0dWFs
UmFuZ2UsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewogICAgICAgICBpZiAo
IXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogCkBAIC0zNTE1LDcgKzM1NDksNyBAQCB2
b2lkIFdlYlZpZXdJbXBsOjpjaGFyYWN0ZXJJbmRleEZvclBvaW50KE5TUG9pbnQgcG9pbnQsIHZv
aWQoXmNvbXBsZXRpb25IYW5kbGVyUAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAogICAg
IHBvaW50ID0gW21fdmlldyBjb252ZXJ0UG9pbnQ6cG9pbnQgZnJvbVZpZXc6bmlsXTsgIC8vIHRo
ZSBwb2ludCBpcyByZWxhdGl2ZSB0byB0aGUgbWFpbiBmcmFtZQogCi0gICAgbV9wYWdlLmNoYXJh
Y3RlckluZGV4Rm9yUG9pbnRBc3luYyhXZWJDb3JlOjpJbnRQb2ludChwb2ludCksIFtjb21wbGV0
aW9uSGFuZGxlcl0odWludDY0X3QgcmVzdWx0LCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3Ig
ZXJyb3IpIHsKKyAgICBtX3BhZ2UtPmNoYXJhY3RlckluZGV4Rm9yUG9pbnRBc3luYyhXZWJDb3Jl
OjpJbnRQb2ludChwb2ludCksIFtjb21wbGV0aW9uSGFuZGxlcl0odWludDY0X3QgcmVzdWx0LCBX
ZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKICAgICAgICAgdm9pZCAoXmNvbXBs
ZXRpb25IYW5kbGVyQmxvY2spKE5TVUludGVnZXIpID0gKHZvaWQgKF4pKE5TVUludGVnZXIpKWNv
bXBsZXRpb25IYW5kbGVyLmdldCgpOwogICAgICAgICBpZiAoZXJyb3IgIT0gV2ViS2l0OjpDYWxs
YmFja0Jhc2U6OkVycm9yOjpOb25lKSB7CiAgICAgICAgICAgICBMT0coVGV4dElucHV0LCAiICAg
IC4uLmNoYXJhY3RlckluZGV4Rm9yUG9pbnQgZmFpbGVkLiIpOwpAQCAtMzUzNyw3ICszNTcxLDcg
QEAgTlNUZXh0SW5wdXRDb250ZXh0ICpXZWJWaWV3SW1wbDo6aW5wdXRDb250ZXh0KCkKICAgICB9
CiAKICAgICAvLyBEaXNhYmxlIHRleHQgaW5wdXQgbWFjaGluZXJ5IHdoZW4gaW4gbm9uLWVkaXRh
YmxlIGNvbnRlbnQuIEFuIGludmlzaWJsZSBpbmxpbmUgaW5wdXQgYXJlYSBhZmZlY3RzIHBlcmZv
cm1hbmNlLCBhbmQgY2FuIHByZXZlbnQgRXhwb3NlIGZyb20gd29ya2luZy4KLSAgICBpZiAoIW1f
cGFnZS5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlKQorICAgIGlmICghbV9wYWdlLT5l
ZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlKQogICAgICAgICByZXR1cm4gbmlsOwogCiAg
ICAgcmV0dXJuIFttX3ZpZXcgX3N1cGVySW5wdXRDb250ZXh0XTsKQEAgLTM1NDcsNyArMzU4MSw3
IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVubWFya1RleHQoKQogewogICAgIExPRyhUZXh0SW5wdXQs
ICJ1bm1hcmtUZXh0Iik7CiAKLSAgICBtX3BhZ2UuY29uZmlybUNvbXBvc2l0aW9uQXN5bmMoKTsK
KyAgICBtX3BhZ2UtPmNvbmZpcm1Db21wb3NpdGlvbkFzeW5jKCk7CiB9CiAKIHZvaWQgV2ViVmll
d0ltcGw6OnNldE1hcmtlZFRleHQoaWQgc3RyaW5nLCBOU1JhbmdlIHNlbGVjdGVkUmFuZ2UsIE5T
UmFuZ2UgcmVwbGFjZW1lbnRSYW5nZSkKQEAgLTM1NzAsMTcgKzM2MDQsMTcgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6c2V0TWFya2VkVGV4dChpZCBzdHJpbmcsIE5TUmFuZ2Ugc2VsZWN0ZWRSYW5nZSwg
TlNSYW5nZSByZXBsYWMKICAgICBpZiAoaW5TZWN1cmVJbnB1dFN0YXRlKCkpIHsKICAgICAgICAg
Ly8gSW4gcGFzc3dvcmQgZmllbGRzLCB3ZSBvbmx5IGFsbG93IEFTQ0lJIGRlYWQga2V5cywgYW5k
IGRvbid0IGFsbG93IGlubGluZSBpbnB1dCwgbWF0Y2hpbmcgTlNTZWN1cmVUZXh0SW5wdXRGaWVs
ZC4KICAgICAgICAgLy8gQWxsb3dpbmcgQVNDSUkgZGVhZCBrZXlzIGlzIG5lY2Vzc2FyeSB0byBl
bmFibGUgZnVsbCBSb21hbiBpbnB1dCB3aGVuIHVzaW5nIGEgVmlldG5hbWVzZSBrZXlib2FyZC4K
LSAgICAgICAgQVNTRVJUKCFtX3BhZ2UuZWRpdG9yU3RhdGUoKS5oYXNDb21wb3NpdGlvbik7Cisg
ICAgICAgIEFTU0VSVCghbV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmhhc0NvbXBvc2l0aW9uKTsKICAg
ICAgICAgbm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbigpOwogICAg
ICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHN0b3JlIHRoZSBjb21tYW5kIHRvIGhhbmRsZSBpdCBh
ZnRlciBET00gZXZlbnQgcHJvY2Vzc2luZywgYXMgaXQncyByZWd1bGFyIGtleWJvYXJkIGlucHV0
IG5vdywgbm90IGEgY29tcG9zaXRpb24uCiAgICAgICAgIGlmIChbdGV4dCBsZW5ndGhdID09IDEg
JiYgaXNBU0NJSShbdGV4dCBjaGFyYWN0ZXJBdEluZGV4OjBdKSkKLSAgICAgICAgICAgIG1fcGFn
ZS5pbnNlcnRUZXh0QXN5bmModGV4dCwgcmVwbGFjZW1lbnRSYW5nZSk7CisgICAgICAgICAgICBt
X3BhZ2UtPmluc2VydFRleHRBc3luYyh0ZXh0LCByZXBsYWNlbWVudFJhbmdlKTsKICAgICAgICAg
ZWxzZQogICAgICAgICAgICAgTlNCZWVwKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBtX3BhZ2Uuc2V0Q29tcG9zaXRpb25Bc3luYyh0ZXh0LCB1bmRlcmxpbmVzLCBzZWxlY3RlZFJh
bmdlLCByZXBsYWNlbWVudFJhbmdlKTsKKyAgICBtX3BhZ2UtPnNldENvbXBvc2l0aW9uQXN5bmMo
dGV4dCwgdW5kZXJsaW5lcywgc2VsZWN0ZWRSYW5nZSwgcmVwbGFjZW1lbnRSYW5nZSk7CiB9CiAK
IC8vIFN5bmNocm9ub3VzIE5TVGV4dElucHV0Q2xpZW50IGlzIHN0aWxsIGltcGxlbWVudGVkIHRv
IGNhdGNoIHNwdXJpb3VzIHN5bmMgY2FsbHMuIFJlbW92ZSB3aGVuIHRoYXQgaXMgbm8gbG9uZ2Vy
IG5lZWRlZC4KQEAgLTM2NTMsNyArMzY4Nyw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OnBlcmZvcm1L
ZXlFcXVpdmFsZW50KE5TRXZlbnQgKmV2ZW50KQogICAgIC8vIEZJWE1FOiBXaHkgaXMgdGhlIGZp
cnN0UmVzcG9uZGVyIGNoZWNrIG5lZWRlZD8KICAgICBpZiAobV92aWV3ID09IG1fdmlldy53aW5k
b3cuZmlyc3RSZXNwb25kZXIpIHsKICAgICAgICAgaW50ZXJwcmV0S2V5RXZlbnQoZXZlbnQsIF4o
Qk9PTCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3QgVmVjdG9yPFdlYkNvcmU6OktleXByZXNz
Q29tbWFuZD4mIGNvbW1hbmRzKSB7Ci0gICAgICAgICAgICBtX3BhZ2UuaGFuZGxlS2V5Ym9hcmRF
dmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwg
Y29tbWFuZHMpKTsKKyAgICAgICAgICAgIG1fcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRp
dmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFuZHMp
KTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybiBZRVM7CiAgICAgfQpAQCAtMzY3MCw3ICsz
NzA0LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6a2V5VXAoTlNFdmVudCAqZXZlbnQpCiAKICAgICBp
bnRlcnByZXRLZXlFdmVudChldmVudCwgXihCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25z
dCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKICAgICAgICAg
QVNTRVJUKCFoYW5kbGVkQnlJbnB1dE1ldGhvZCB8fCBjb21tYW5kcy5pc0VtcHR5KCkpOwotICAg
ICAgICBtX3BhZ2UuaGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2
ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFuZHMpKTsKKyAgICAgICAgbV9wYWdlLT5o
YW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRC
eUlucHV0TWV0aG9kLCBjb21tYW5kcykpOwogICAgIH0pOwogfQogCkBAIC0zNjk3LDcgKzM3MzEs
NyBAQCB2b2lkIFdlYlZpZXdJbXBsOjprZXlEb3duKE5TRXZlbnQgKmV2ZW50KQogCiAgICAgaW50
ZXJwcmV0S2V5RXZlbnQoZXZlbnQsIF4oQk9PTCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29uc3Qg
VmVjdG9yPFdlYkNvcmU6OktleXByZXNzQ29tbWFuZD4mIGNvbW1hbmRzKSB7CiAgICAgICAgIEFT
U0VSVCghaGFuZGxlZEJ5SW5wdXRNZXRob2QgfHwgY29tbWFuZHMuaXNFbXB0eSgpKTsKLSAgICAg
ICAgbV9wYWdlLmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVu
dCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSk7CisgICAgICAgIG1fcGFnZS0+aGFu
ZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJ
bnB1dE1ldGhvZCwgY29tbWFuZHMpKTsKICAgICB9KTsKIH0KIApAQCAtMzcxMyw3ICszNzQ3LDcg
QEAgdm9pZCBXZWJWaWV3SW1wbDo6ZmxhZ3NDaGFuZ2VkKE5TRXZlbnQgKmV2ZW50KQogICAgICAg
ICByZXR1cm47CiAKICAgICBpbnRlcnByZXRLZXlFdmVudChldmVudCwgXihCT09MIGhhbmRsZWRC
eUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29t
bWFuZHMpIHsKLSAgICAgICAgbV9wYWdlLmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSk7CisgICAg
ICAgIG1fcGFnZS0+aGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2
ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFuZHMpKTsKICAgICB9KTsKIH0KIApAQCAt
Mzc2OSw3ICszODAzLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZXhlY3V0ZVNhdmVkS2V5cHJlc3ND
b21tYW5kcygpCiAgICAgTE9HKFRleHRJbnB1dCwgIkV4ZWN1dGluZyAldSBzYXZlZCBrZXlwcmVz
cyBjb21tYW5kcy4uLiIsIHBhcmFtZXRlcnMtPmNvbW1hbmRzLT5zaXplKCkpOwogCiAgICAgcGFy
YW1ldGVycy0+ZXhlY3V0aW5nU2F2ZWRLZXlwcmVzc0NvbW1hbmRzID0gdHJ1ZTsKLSAgICBwYXJh
bWV0ZXJzLT5ldmVudEludGVycHJldGF0aW9uSGFkU2lkZUVmZmVjdHMgfD0gbV9wYWdlLmV4ZWN1
dGVLZXlwcmVzc0NvbW1hbmRzKCpwYXJhbWV0ZXJzLT5jb21tYW5kcyk7CisgICAgcGFyYW1ldGVy
cy0+ZXZlbnRJbnRlcnByZXRhdGlvbkhhZFNpZGVFZmZlY3RzIHw9IG1fcGFnZS0+ZXhlY3V0ZUtl
eXByZXNzQ29tbWFuZHMoKnBhcmFtZXRlcnMtPmNvbW1hbmRzKTsKICAgICBwYXJhbWV0ZXJzLT5j
b21tYW5kcy0+Y2xlYXIoKTsKICAgICBwYXJhbWV0ZXJzLT5leGVjdXRpbmdTYXZlZEtleXByZXNz
Q29tbWFuZHMgPSBmYWxzZTsKIApAQCAtMzc4NSwxMyArMzgxOSwxMyBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpkb0NvbW1hbmRCeVNlbGVjdG9yKFNFTCBzZWxlY3RvcikKICAgICAgICAgcGFyYW1ldGVy
cy0+Y29uc3VtZWRCeUlNID0gZmFsc2U7CiAKICAgICAvLyBBcyBpbiBpbnNlcnRUZXh0OnJlcGxh
Y2VtZW50UmFuZ2U6LCB3ZSBhc3N1bWUgdGhhdCB0aGUgY2FsbCBjb21lcyBmcm9tIGFuIGlucHV0
IG1ldGhvZCBpZiB0aGVyZSBpcyBtYXJrZWQgdGV4dC4KLSAgICBib29sIGlzRnJvbUlucHV0TWV0
aG9kID0gbV9wYWdlLmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb247CisgICAgYm9vbCBpc0Zy
b21JbnB1dE1ldGhvZCA9IG1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5oYXNDb21wb3NpdGlvbjsKIAog
ICAgIGlmIChwYXJhbWV0ZXJzICYmICFpc0Zyb21JbnB1dE1ldGhvZCkgewogICAgICAgICBXZWJD
b3JlOjpLZXlwcmVzc0NvbW1hbmQgY29tbWFuZChOU1N0cmluZ0Zyb21TZWxlY3RvcihzZWxlY3Rv
cikpOwogICAgICAgICBwYXJhbWV0ZXJzLT5jb21tYW5kcy0+YXBwZW5kKGNvbW1hbmQpOwogICAg
ICAgICBMT0coVGV4dElucHV0LCAiLi4uc3RvcmVkIik7Ci0gICAgICAgIG1fcGFnZS5yZWdpc3Rl
cktleXByZXNzQ29tbWFuZE5hbWUoY29tbWFuZC5jb21tYW5kTmFtZSk7CisgICAgICAgIG1fcGFn
ZS0+cmVnaXN0ZXJLZXlwcmVzc0NvbW1hbmROYW1lKGNvbW1hbmQuY29tbWFuZE5hbWUpOwogICAg
IH0gZWxzZSB7CiAgICAgICAgIC8vIEZJWE1FOiBTZW5kIHRoZSBjb21tYW5kIHRvIEVkaXRvciBz
eW5jaHJvbm91c2x5IGFuZCBvbmx5IHNlbmQgaXQgYWxvbmcgdGhlCiAgICAgICAgIC8vIHJlc3Bv
bmRlciBjaGFpbiBpZiBpdCdzIGEgc2VsZWN0b3IgdGhhdCBkb2VzIG5vdCBjb3JyZXNwb25kIHRv
IGFuIGVkaXRpbmcgY29tbWFuZC4KQEAgLTM4MjEsNyArMzg1NSw3IEBAIHZvaWQgV2ViVmlld0lt
cGw6Omluc2VydFRleHQoaWQgc3RyaW5nLCBOU1JhbmdlIHJlcGxhY2VtZW50UmFuZ2UpCiAgICAg
ICAgIHBhcmFtZXRlcnMtPmNvbnN1bWVkQnlJTSA9IGZhbHNlOwogCiAgICAgTlNTdHJpbmcgKnRl
eHQ7Ci0gICAgYm9vbCBpc0Zyb21JbnB1dE1ldGhvZCA9IG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmhh
c0NvbXBvc2l0aW9uOworICAgIGJvb2wgaXNGcm9tSW5wdXRNZXRob2QgPSBtX3BhZ2UtPmVkaXRv
clN0YXRlKCkuaGFzQ29tcG9zaXRpb247CiAKICAgICBWZWN0b3I8V2ViQ29yZTo6VGV4dEFsdGVy
bmF0aXZlV2l0aFJhbmdlPiBkaWN0YXRpb25BbHRlcm5hdGl2ZXM7CiAKQEAgLTM4NDUsNyArMzg3
OSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6Omluc2VydFRleHQoaWQgc3RyaW5nLCBOU1JhbmdlIHJl
cGxhY2VtZW50UmFuZ2UpCiAgICAgICAgIEFTU0VSVChyZXBsYWNlbWVudFJhbmdlLmxvY2F0aW9u
ID09IE5TTm90Rm91bmQpOwogICAgICAgICBXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQgY29tbWFu
ZCgiaW5zZXJ0VGV4dDoiLCB0ZXh0KTsKICAgICAgICAgcGFyYW1ldGVycy0+Y29tbWFuZHMtPmFw
cGVuZChjb21tYW5kKTsKLSAgICAgICAgbV9wYWdlLnJlZ2lzdGVyS2V5cHJlc3NDb21tYW5kTmFt
ZShjb21tYW5kLmNvbW1hbmROYW1lKTsKKyAgICAgICAgbV9wYWdlLT5yZWdpc3RlcktleXByZXNz
Q29tbWFuZE5hbWUoY29tbWFuZC5jb21tYW5kTmFtZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKQEAgLTM4NTMsOSArMzg4Nyw5IEBAIHZvaWQgV2ViVmlld0ltcGw6Omluc2VydFRleHQoaWQg
c3RyaW5nLCBOU1JhbmdlIHJlcGxhY2VtZW50UmFuZ2UpCiAgICAgZXZlbnRUZXh0LnJlcGxhY2Uo
TlNCYWNrVGFiQ2hhcmFjdGVyLCBOU1RhYkNoYXJhY3Rlcik7IC8vIHNhbWUgdGhpbmcgaXMgZG9u
ZSBpbiBLZXlFdmVudE1hYy5tbSBpbiBXZWJDb3JlCiAgICAgYm9vbCBldmVudEhhbmRsZWQ7CiAg
ICAgaWYgKCFkaWN0YXRpb25BbHRlcm5hdGl2ZXMuaXNFbXB0eSgpKQotICAgICAgICBldmVudEhh
bmRsZWQgPSBtX3BhZ2UuaW5zZXJ0RGljdGF0ZWRUZXh0KGV2ZW50VGV4dCwgcmVwbGFjZW1lbnRS
YW5nZSwgZGljdGF0aW9uQWx0ZXJuYXRpdmVzKTsKKyAgICAgICAgZXZlbnRIYW5kbGVkID0gbV9w
YWdlLT5pbnNlcnREaWN0YXRlZFRleHQoZXZlbnRUZXh0LCByZXBsYWNlbWVudFJhbmdlLCBkaWN0
YXRpb25BbHRlcm5hdGl2ZXMpOwogICAgIGVsc2UKLSAgICAgICAgZXZlbnRIYW5kbGVkID0gbV9w
YWdlLmluc2VydFRleHQoZXZlbnRUZXh0LCByZXBsYWNlbWVudFJhbmdlKTsKKyAgICAgICAgZXZl
bnRIYW5kbGVkID0gbV9wYWdlLT5pbnNlcnRUZXh0KGV2ZW50VGV4dCwgcmVwbGFjZW1lbnRSYW5n
ZSk7CiAKICAgICBpZiAocGFyYW1ldGVycykKICAgICAgICAgcGFyYW1ldGVycy0+ZXZlbnRJbnRl
cnByZXRhdGlvbkhhZFNpZGVFZmZlY3RzIHw9IGV2ZW50SGFuZGxlZDsKQEAgLTM4NjksNyArMzkw
Myw3IEBAIE5TVGV4dElucHV0Q29udGV4dCAqV2ViVmlld0ltcGw6OmlucHV0Q29udGV4dCgpCiAg
ICAgICAgIHJldHVybiBbW1dLVGV4dElucHV0V2luZG93Q29udHJvbGxlciBzaGFyZWRUZXh0SW5w
dXRXaW5kb3dDb250cm9sbGVyXSBpbnB1dENvbnRleHRdOwogCiAgICAgLy8gRGlzYWJsZSB0ZXh0
IGlucHV0IG1hY2hpbmVyeSB3aGVuIGluIG5vbi1lZGl0YWJsZSBjb250ZW50LiBBbiBpbnZpc2li
bGUgaW5saW5lIGlucHV0IGFyZWEgYWZmZWN0cyBwZXJmb3JtYW5jZSwgYW5kIGNhbiBwcmV2ZW50
IEV4cG9zZSBmcm9tIHdvcmtpbmcuCi0gICAgaWYgKCFtX3BhZ2UuZWRpdG9yU3RhdGUoKS5pc0Nv
bnRlbnRFZGl0YWJsZSkKKyAgICBpZiAoIW1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRF
ZGl0YWJsZSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAogICAgIHJldHVybiBbbV92aWV3IF9zdXBl
cklucHV0Q29udGV4dF07CkBAIC0zODgwLDcgKzM5MTQsNyBAQCBOU1JhbmdlIFdlYlZpZXdJbXBs
OjpzZWxlY3RlZFJhbmdlKCkKICAgICBleGVjdXRlU2F2ZWRLZXlwcmVzc0NvbW1hbmRzKCk7CiAK
ICAgICBFZGl0aW5nUmFuZ2Ugc2VsZWN0ZWRSYW5nZTsKLSAgICBtX3BhZ2UuZ2V0U2VsZWN0ZWRS
YW5nZShzZWxlY3RlZFJhbmdlKTsKKyAgICBtX3BhZ2UtPmdldFNlbGVjdGVkUmFuZ2Uoc2VsZWN0
ZWRSYW5nZSk7CiAKICAgICBOU1JhbmdlIHJlc3VsdCA9IHNlbGVjdGVkUmFuZ2U7CiAgICAgaWYg
KHJlc3VsdC5sb2NhdGlvbiA9PSBOU05vdEZvdW5kKQpAQCAtMzg5NywxNSArMzkzMSwxNSBAQCBi
b29sIFdlYlZpZXdJbXBsOjpoYXNNYXJrZWRUZXh0KCkKIAogICAgIEJPT0wgcmVzdWx0OwogICAg
IGlmIChwYXJhbWV0ZXJzKSB7Ci0gICAgICAgIHJlc3VsdCA9IG1fcGFnZS5lZGl0b3JTdGF0ZSgp
Lmhhc0NvbXBvc2l0aW9uOworICAgICAgICByZXN1bHQgPSBtX3BhZ2UtPmVkaXRvclN0YXRlKCku
aGFzQ29tcG9zaXRpb247CiAgICAgICAgIGlmIChyZXN1bHQpIHsKICAgICAgICAgICAgIC8vIEEg
c2F2ZWQgY29tbWFuZCBjYW4gY29uZmlybSBhIGNvbXBvc2l0aW9uLCBidXQgaXQgY2Fubm90IHN0
YXJ0IGEgbmV3IG9uZS4KICAgICAgICAgICAgIGV4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHMo
KTsKLSAgICAgICAgICAgIHJlc3VsdCA9IG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmhhc0NvbXBvc2l0
aW9uOworICAgICAgICAgICAgcmVzdWx0ID0gbV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmhhc0NvbXBv
c2l0aW9uOwogICAgICAgICB9CiAgICAgfSBlbHNlIHsKICAgICAgICAgRWRpdGluZ1JhbmdlIG1h
cmtlZFJhbmdlOwotICAgICAgICBtX3BhZ2UuZ2V0TWFya2VkUmFuZ2UobWFya2VkUmFuZ2UpOwor
ICAgICAgICBtX3BhZ2UtPmdldE1hcmtlZFJhbmdlKG1hcmtlZFJhbmdlKTsKICAgICAgICAgcmVz
dWx0ID0gbWFya2VkUmFuZ2UubG9jYXRpb24gIT0gbm90Rm91bmQ7CiAgICAgfQogCkBAIC0zOTI2
LDcgKzM5NjAsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1bm1hcmtUZXh0KCkKICAgICAgICAgcGFy
YW1ldGVycy0+Y29uc3VtZWRCeUlNID0gZmFsc2U7CiAgICAgfQogCi0gICAgbV9wYWdlLmNvbmZp
cm1Db21wb3NpdGlvbigpOworICAgIG1fcGFnZS0+Y29uZmlybUNvbXBvc2l0aW9uKCk7CiB9CiAK
IHZvaWQgV2ViVmlld0ltcGw6OnNldE1hcmtlZFRleHQoaWQgc3RyaW5nLCBOU1JhbmdlIG5ld1Nl
bGVjdGVkUmFuZ2UsIE5TUmFuZ2UgcmVwbGFjZW1lbnRSYW5nZSkKQEAgLTM5NTUsMTkgKzM5ODks
MTkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0TWFya2VkVGV4dChpZCBzdHJpbmcsIE5TUmFuZ2Ug
bmV3U2VsZWN0ZWRSYW5nZSwgTlNSYW5nZSByZXAKICAgICB9IGVsc2UKICAgICAgICAgdGV4dCA9
IHN0cmluZzsKIAotICAgIGlmIChtX3BhZ2UuZWRpdG9yU3RhdGUoKS5pc0luUGFzc3dvcmRGaWVs
ZCkgeworICAgIGlmIChtX3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNJblBhc3N3b3JkRmllbGQpIHsK
ICAgICAgICAgLy8gSW4gcGFzc3dvcmQgZmllbGRzLCB3ZSBvbmx5IGFsbG93IEFTQ0lJIGRlYWQg
a2V5cywgYW5kIGRvbid0IGFsbG93IGlubGluZSBpbnB1dCwgbWF0Y2hpbmcgTlNTZWN1cmVUZXh0
SW5wdXRGaWVsZC4KICAgICAgICAgLy8gQWxsb3dpbmcgQVNDSUkgZGVhZCBrZXlzIGlzIG5lY2Vz
c2FyeSB0byBlbmFibGUgZnVsbCBSb21hbiBpbnB1dCB3aGVuIHVzaW5nIGEgVmlldG5hbWVzZSBr
ZXlib2FyZC4KLSAgICAgICAgQVNTRVJUKCFtX3BhZ2UuZWRpdG9yU3RhdGUoKS5oYXNDb21wb3Np
dGlvbik7CisgICAgICAgIEFTU0VSVCghbV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmhhc0NvbXBvc2l0
aW9uKTsKICAgICAgICAgbm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlv
bigpOwogICAgICAgICBpZiAoW3RleHQgbGVuZ3RoXSA9PSAxICYmIFtbdGV4dCBkZWNvbXBvc2Vk
U3RyaW5nV2l0aENhbm9uaWNhbE1hcHBpbmddIGNoYXJhY3RlckF0SW5kZXg6MF0gPCAweDgwKSB7
Ci0gICAgICAgICAgICBtX3BhZ2UuaW5zZXJ0VGV4dCh0ZXh0LCByZXBsYWNlbWVudFJhbmdlKTsK
KyAgICAgICAgICAgIG1fcGFnZS0+aW5zZXJ0VGV4dCh0ZXh0LCByZXBsYWNlbWVudFJhbmdlKTsK
ICAgICAgICAgfSBlbHNlCiAgICAgICAgICAgICBOU0JlZXAoKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIG1fcGFnZS5zZXRDb21wb3NpdGlvbih0ZXh0LCB1bmRlcmxpbmVzLCBuZXdT
ZWxlY3RlZFJhbmdlLCByZXBsYWNlbWVudFJhbmdlKTsKKyAgICBtX3BhZ2UtPnNldENvbXBvc2l0
aW9uKHRleHQsIHVuZGVybGluZXMsIG5ld1NlbGVjdGVkUmFuZ2UsIHJlcGxhY2VtZW50UmFuZ2Up
OwogfQogCiBOU1JhbmdlIFdlYlZpZXdJbXBsOjptYXJrZWRSYW5nZSgpCkBAIC0zOTc1LDcgKzQw
MDksNyBAQCBOU1JhbmdlIFdlYlZpZXdJbXBsOjptYXJrZWRSYW5nZSgpCiAgICAgZXhlY3V0ZVNh
dmVkS2V5cHJlc3NDb21tYW5kcygpOwogCiAgICAgRWRpdGluZ1JhbmdlIG1hcmtlZFJhbmdlOwot
ICAgIG1fcGFnZS5nZXRNYXJrZWRSYW5nZShtYXJrZWRSYW5nZSk7CisgICAgbV9wYWdlLT5nZXRN
YXJrZWRSYW5nZShtYXJrZWRSYW5nZSk7CiAKICAgICBOU1JhbmdlIHJlc3VsdCA9IG1hcmtlZFJh
bmdlOwogICAgIGlmIChyZXN1bHQubG9jYXRpb24gPT0gTlNOb3RGb3VuZCkKQEAgLTM5OTAsMTYg
KzQwMjQsMTYgQEAgTlNBdHRyaWJ1dGVkU3RyaW5nICpXZWJWaWV3SW1wbDo6YXR0cmlidXRlZFN1
YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2UoTlNSYW5nZSBwcm8KIHsKICAgICBleGVjdXRlU2F2ZWRL
ZXlwcmVzc0NvbW1hbmRzKCk7CiAKLSAgICBpZiAoIW1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlzQ29u
dGVudEVkaXRhYmxlKSB7CisgICAgaWYgKCFtX3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50
RWRpdGFibGUpIHsKICAgICAgICAgTE9HKFRleHRJbnB1dCwgImF0dHJpYnV0ZWRTdWJzdHJpbmdG
cm9tUmFuZ2U6KCV1LCAldSkgLT4gbmlsIiwgcHJvcG9zZWRSYW5nZS5sb2NhdGlvbiwgcHJvcG9z
ZWRSYW5nZS5sZW5ndGgpOwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIAotICAgIGlmICht
X3BhZ2UuZWRpdG9yU3RhdGUoKS5pc0luUGFzc3dvcmRGaWVsZCkKKyAgICBpZiAobV9wYWdlLT5l
ZGl0b3JTdGF0ZSgpLmlzSW5QYXNzd29yZEZpZWxkKQogICAgICAgICByZXR1cm4gbmlsOwogCiAg
ICAgQXR0cmlidXRlZFN0cmluZyByZXN1bHQ7Ci0gICAgbV9wYWdlLmdldEF0dHJpYnV0ZWRTdWJz
dHJpbmdGcm9tUmFuZ2UocHJvcG9zZWRSYW5nZSwgcmVzdWx0KTsKKyAgICBtX3BhZ2UtPmdldEF0
dHJpYnV0ZWRTdWJzdHJpbmdGcm9tUmFuZ2UocHJvcG9zZWRSYW5nZSwgcmVzdWx0KTsKIAogICAg
IGlmIChhY3R1YWxSYW5nZSkgewogICAgICAgICAqYWN0dWFsUmFuZ2UgPSBwcm9wb3NlZFJhbmdl
OwpAQCAtNDAyMyw3ICs0MDU3LDcgQEAgTlNVSW50ZWdlciBXZWJWaWV3SW1wbDo6Y2hhcmFjdGVy
SW5kZXhGb3JQb2ludChOU1BvaW50IHBvaW50KQogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBv
cAogICAgIHBvaW50ID0gW21fdmlldyBjb252ZXJ0UG9pbnQ6cG9pbnQgZnJvbVZpZXc6bmlsXTsg
IC8vIHRoZSBwb2ludCBpcyByZWxhdGl2ZSB0byB0aGUgbWFpbiBmcmFtZQogICAgIAotICAgIHVp
bnQ2NF90IHJlc3VsdCA9IG1fcGFnZS5jaGFyYWN0ZXJJbmRleEZvclBvaW50KFdlYkNvcmU6Oklu
dFBvaW50KHBvaW50KSk7CisgICAgdWludDY0X3QgcmVzdWx0ID0gbV9wYWdlLT5jaGFyYWN0ZXJJ
bmRleEZvclBvaW50KFdlYkNvcmU6OkludFBvaW50KHBvaW50KSk7CiAgICAgaWYgKHJlc3VsdCA9
PSBub3RGb3VuZCkKICAgICAgICAgcmVzdWx0ID0gTlNOb3RGb3VuZDsKICAgICBMT0coVGV4dElu
cHV0LCAiY2hhcmFjdGVySW5kZXhGb3JQb2ludDooJWYsICVmKSAtPiAldSIsIHBvaW50LngsIHBv
aW50LnksIHJlc3VsdCk7CkBAIC00MDQ3LDcgKzQwODEsNyBAQCBOU1JlY3QgV2ViVmlld0ltcGw6
OmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKE5TUmFuZ2UgcmFuZ2UsIE5TUmFuZ2VQb2ludGVy
IGFjdAogICAgICAgICByZXR1cm4gTlNaZXJvUmVjdDsKICAgICB9CiAKLSAgICBOU1JlY3QgcmVz
dWx0UmVjdCA9IG1fcGFnZS5maXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZShyYW5nZSk7CisgICAg
TlNSZWN0IHJlc3VsdFJlY3QgPSBtX3BhZ2UtPmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKHJh
bmdlKTsKICAgICByZXN1bHRSZWN0ID0gW21fdmlldyBjb252ZXJ0UmVjdDpyZXN1bHRSZWN0IHRv
VmlldzpuaWxdOwogICAgIHJlc3VsdFJlY3QgPSBbbV92aWV3LndpbmRvdyBjb252ZXJ0UmVjdFRv
U2NyZWVuOnJlc3VsdFJlY3RdOwogCkBAIC00MDkzLDcgKzQxMjcsNyBAQCBib29sIFdlYlZpZXdJ
bXBsOjpwZXJmb3JtS2V5RXF1aXZhbGVudChOU0V2ZW50ICpldmVudCkKICAgICBpZiAobV92aWV3
ID09IG1fdmlldy53aW5kb3cuZmlyc3RSZXNwb25kZXIpIHsKICAgICAgICAgVmVjdG9yPFdlYkNv
cmU6OktleXByZXNzQ29tbWFuZD4gY29tbWFuZHM7CiAgICAgICAgIGJvb2wgaGFuZGxlZEJ5SW5w
dXRNZXRob2QgPSBpbnRlcnByZXRLZXlFdmVudChldmVudCwgY29tbWFuZHMpOwotICAgICAgICBt
X3BhZ2UuaGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBo
YW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFuZHMpKTsKKyAgICAgICAgbV9wYWdlLT5oYW5kbGVL
ZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0
TWV0aG9kLCBjb21tYW5kcykpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgCkBA
IC00MTA3LDcgKzQxNDEsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjprZXlVcChOU0V2ZW50ICpldmVu
dCkKIAogICAgIExPRyhUZXh0SW5wdXQsICJrZXlVcDolcCAlQCIsIGV2ZW50LCBldmVudCk7CiAg
ICAgLy8gV2UgZG9uJ3QgaW50ZXJwcmV0IHRoZSBrZXlVcCBldmVudCwgYXMgdGhpcyBicmVha3Mg
a2V5IGJpbmRpbmdzIChzZWUgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzAxMDA+KS4KLSAgICBtX3BhZ2UuaGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXli
b2FyZEV2ZW50KGV2ZW50LCBmYWxzZSwgeyB9KSk7CisgICAgbV9wYWdlLT5oYW5kbGVLZXlib2Fy
ZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGZhbHNlLCB7IH0pKTsKIH0KIAog
dm9pZCBXZWJWaWV3SW1wbDo6a2V5RG93bihOU0V2ZW50ICpldmVudCkKQEAgLTQxNDUsNyArNDE3
OSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmtleURvd24oTlNFdmVudCAqZXZlbnQpCiAgICAgICAg
IGhhbmRsZWRCeUlucHV0TWV0aG9kID0gZmFsc2U7CiAgICAgfQogCi0gICAgbV9wYWdlLmhhbmRs
ZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5w
dXRNZXRob2QsIGNvbW1hbmRzKSk7CisgICAgbV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5h
dGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21tYW5k
cykpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpmbGFnc0NoYW5nZWQoTlNFdmVudCAqZXZlbnQp
CkBAIC00MTY0LDcgKzQxOTgsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpmbGFnc0NoYW5nZWQoTlNF
dmVudCAqZXZlbnQpCiAgICAgaWYgKGV2ZW50S2V5Q29kZUlzWmVyb09yTnVtTG9ja09yRm4oZXZl
bnQpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BhZ2UuaGFuZGxlS2V5Ym9hcmRFdmVudChO
YXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBmYWxzZSwgeyB9KSk7CisgICAgbV9wYWdlLT5o
YW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGZhbHNlLCB7
IH0pKTsKIH0KIAogI2VuZGlmIC8vIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKQEAgLTQx
ODUsMTMgKzQyMTksMTMgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZmxhZ3NDaGFuZ2VkKE5TRXZlbnQg
KmV2ZW50KQogICAgICAgICAgICAgICAgICAgICBMT0coVGV4dElucHV0LCAiJXMgd2FzIGhhbmRs
ZWQgYnkgdGV4dCBpbnB1dCBjb250ZXh0IiwgU3RyaW5nKCNFdmVudE5hbWUpLnN1YnN0cmluZygw
LCBTdHJpbmcoI0V2ZW50TmFtZSkuZmluZCgiSW50ZXJuYWwiKSkuYXNjaWkoKS5kYXRhKCkpOyBc
CiAgICAgICAgICAgICAgICAgZWxzZSB7IFwKICAgICAgICAgICAgICAgICAgICAgTmF0aXZlV2Vi
TW91c2VFdmVudCB3ZWJFdmVudChyZXRhaW5lZEV2ZW50LmdldCgpLCB3ZWFrVGhpcy0+bV9sYXN0
UHJlc3N1cmVFdmVudC5nZXQoKSwgd2Vha1RoaXMtPm1fdmlldyk7IFwKLSAgICAgICAgICAgICAg
ICAgICAgd2Vha1RoaXMtPm1fcGFnZS5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsgXAorICAg
ICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2
ZW50KTsgXAogICAgICAgICAgICAgICAgIH0gXAogICAgICAgICAgICAgfV07IFwKICAgICAgICAg
ICAgIHJldHVybjsgXAogICAgICAgICB9IFwKICAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3
ZWJFdmVudChldmVudCwgbV9sYXN0UHJlc3N1cmVFdmVudC5nZXQoKSwgbV92aWV3KTsgXAotICAg
ICAgICBtX3BhZ2UuaGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7IFwKKyAgICAgICAgbV9wYWdl
LT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsgXAogICAgIH0KICNkZWZpbmUgTkFUSVZFX01P
VVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwoRXZlbnROYW1lKSBcCiAgICAgdm9pZCBXZWJWaWV3
SW1wbDo6RXZlbnROYW1lKE5TRXZlbnQgKmV2ZW50KSBcCkBAIC00MjA4LDEzICs0MjQyLDEzIEBA
IHZvaWQgV2ViVmlld0ltcGw6OmZsYWdzQ2hhbmdlZChOU0V2ZW50ICpldmVudCkKICAgICAgICAg
ICAgICAgICAgICAgTE9HKFRleHRJbnB1dCwgIiVzIHdhcyBoYW5kbGVkIGJ5IHRleHQgaW5wdXQg
Y29udGV4dCIsIFN0cmluZygjRXZlbnROYW1lKS5zdWJzdHJpbmcoMCwgU3RyaW5nKCNFdmVudE5h
bWUpLmZpbmQoIkludGVybmFsIikpLmFzY2lpKCkuZGF0YSgpKTsgXAogICAgICAgICAgICAgICAg
IGVsc2UgeyBcCiAgICAgICAgICAgICAgICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZl
bnQocmV0YWluZWRFdmVudC5nZXQoKSwgd2Vha1RoaXMtPm1fbGFzdFByZXNzdXJlRXZlbnQuZ2V0
KCksIHdlYWtUaGlzLT5tX3ZpZXcpOyBcCi0gICAgICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5t
X3BhZ2UuaGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7IFwKKyAgICAgICAgICAgICAgICAgICAg
d2Vha1RoaXMtPm1fcGFnZS0+aGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7IFwKICAgICAgICAg
ICAgICAgICB9IFwKICAgICAgICAgICAgIH1dOyBcCiAgICAgICAgICAgICByZXR1cm47IFwKICAg
ICAgICAgfSBcCiAgICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQoZXZlbnQsIG1f
bGFzdFByZXNzdXJlRXZlbnQuZ2V0KCksIG1fdmlldyk7IFwKLSAgICAgICAgbV9wYWdlLmhhbmRs
ZU1vdXNlRXZlbnQod2ViRXZlbnQpOyBcCisgICAgICAgIG1fcGFnZS0+aGFuZGxlTW91c2VFdmVu
dCh3ZWJFdmVudCk7IFwKICAgICB9CiAgICAgCiAjZWxzZSAvLyBVU0UoQVNZTkNfTlNURVhUSU5Q
VVRDTElFTlQpCkBAIC00MjI4LDcgKzQyNjIsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpmbGFnc0No
YW5nZWQoTlNFdmVudCAqZXZlbnQpCiAgICAgICAgICAgICByZXR1cm47IFwKICAgICAgICAgfSBc
CiAgICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2ViRXZlbnQoZXZlbnQsIG1fbGFzdFByZXNz
dXJlRXZlbnQuZ2V0KCksIG1fdmlldyk7IFwKLSAgICAgICAgbV9wYWdlLmhhbmRsZU1vdXNlRXZl
bnQod2ViRXZlbnQpOyBcCisgICAgICAgIG1fcGFnZS0+aGFuZGxlTW91c2VFdmVudCh3ZWJFdmVu
dCk7IFwKICAgICB9CiAjZGVmaW5lIE5BVElWRV9NT1VTRV9FVkVOVF9IQU5ETEVSX0lOVEVSTkFM
KEV2ZW50TmFtZSkgXAogICAgIHZvaWQgV2ViVmlld0ltcGw6OkV2ZW50TmFtZShOU0V2ZW50ICpl
dmVudCkgXApAQCAtNDI0MCw3ICs0Mjc0LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZmxhZ3NDaGFu
Z2VkKE5TRXZlbnQgKmV2ZW50KQogICAgICAgICAgICAgcmV0dXJuOyBcCiAgICAgICAgIH0gXAog
ICAgICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KGV2ZW50LCBtX2xhc3RQcmVzc3Vy
ZUV2ZW50LmdldCgpLCBtX3ZpZXcpOyBcCi0gICAgICAgIG1fcGFnZS5oYW5kbGVNb3VzZUV2ZW50
KHdlYkV2ZW50KTsgXAorICAgICAgICBtX3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQp
OyBcCiAgICAgfQogI2VuZGlmIC8vIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGNmYmRiNDQuLjVhOTQ2ODYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTk4NiwxMCArOTg2
LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFNhdmVUb1BhZ2VDYWNoZSgpOwogICAgICAgICAK
ICAgICB2b2lkIHNldFNjcm9sbFBpbm5pbmdCZWhhdmlvcihXZWJDb3JlOjpTY3JvbGxQaW5uaW5n
QmVoYXZpb3IpOwotICAgIFdlYkNvcmU6OlNjcm9sbFBpbm5pbmdCZWhhdmlvciBzY3JvbGxQaW5u
aW5nQmVoYXZpb3IoKSB7IHJldHVybiBtX3Njcm9sbFBpbm5pbmdCZWhhdmlvcjsgfQorICAgIFdl
YkNvcmU6OlNjcm9sbFBpbm5pbmdCZWhhdmlvciBzY3JvbGxQaW5uaW5nQmVoYXZpb3IoKSBjb25z
dCB7IHJldHVybiBtX3Njcm9sbFBpbm5pbmdCZWhhdmlvcjsgfQogCiAgICAgdm9pZCBzZXRPdmVy
bGF5U2Nyb2xsYmFyU3R5bGUoV1RGOjpPcHRpb25hbDxXZWJDb3JlOjpTY3JvbGxiYXJPdmVybGF5
U3R5bGU+KTsKLSAgICBXVEY6Ok9wdGlvbmFsPFdlYkNvcmU6OlNjcm9sbGJhck92ZXJsYXlTdHls
ZT4gb3ZlcmxheVNjcm9sbGJhclN0eWxlKCkgeyByZXR1cm4gbV9zY3JvbGxiYXJPdmVybGF5U3R5
bGU7IH0KKyAgICBXVEY6Ok9wdGlvbmFsPFdlYkNvcmU6OlNjcm9sbGJhck92ZXJsYXlTdHlsZT4g
b3ZlcmxheVNjcm9sbGJhclN0eWxlKCkgY29uc3QgeyByZXR1cm4gbV9zY3JvbGxiYXJPdmVybGF5
U3R5bGU7IH0KIAogICAgIGJvb2wgc2hvdWxkUmVjb3JkTmF2aWdhdGlvblNuYXBzaG90cygpIGNv
bnN0IHsgcmV0dXJuIG1fc2hvdWxkUmVjb3JkTmF2aWdhdGlvblNuYXBzaG90czsgfQogICAgIHZv
aWQgc2V0U2hvdWxkUmVjb3JkTmF2aWdhdGlvblNuYXBzaG90cyhib29sIHNob3VsZFJlY29yZFNu
YXBzaG90cykgeyBtX3Nob3VsZFJlY29yZE5hdmlnYXRpb25TbmFwc2hvdHMgPSBzaG91bGRSZWNv
cmRTbmFwc2hvdHM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCmluZGV4IGQ0NGRhYzAuLmEyOWE1MzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmNwcApAQCAtODM2LDcgKzgzNiw3IEBAIFdlYlByb2Nlc3NQcm94eSYg
V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZU5ld1dlYlByb2Nlc3NSZXNwZWN0aW5nUHJvY2Vzc0NvdW50
TGltaXQoCiAgICAgcmV0dXJuICpwcm9jZXNzOwogfQogCi1QYXNzUmVmUHRyPFdlYlBhZ2VQcm94
eT4gV2ViUHJvY2Vzc1Bvb2w6OmNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCYgcGFnZUNsaWVudCwg
UmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYgcGFnZUNvbmZpZ3VyYXRpb24pCitSZWY8V2Vi
UGFnZVByb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiBwYWdl
Q2xpZW50LCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiBwYWdlQ29uZmlndXJhdGlvbikK
IHsKICAgICBpZiAoIXBhZ2VDb25maWd1cmF0aW9uLT5wYWdlR3JvdXAoKSkKICAgICAgICAgcGFn
ZUNvbmZpZ3VyYXRpb24tPnNldFBhZ2VHcm91cChtX2RlZmF1bHRQYWdlR3JvdXAucHRyKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCA1ZjNlMjY3Li5j
ZmYwNmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bv
b2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAt
MTcxLDcgKzE3MSw3IEBAIHB1YmxpYzoKIAogICAgIEFQSTo6V2Vic2l0ZURhdGFTdG9yZSogd2Vi
c2l0ZURhdGFTdG9yZSgpIGNvbnN0IHsgcmV0dXJuIG1fd2Vic2l0ZURhdGFTdG9yZS5nZXQoKTsg
fQogCi0gICAgUGFzc1JlZlB0cjxXZWJQYWdlUHJveHk+IGNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVu
dCYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKKyAgICBSZWY8V2ViUGFnZVByb3h5
PiBjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmLCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4m
Jik7CiAKICAgICBjb25zdCBTdHJpbmcmIGluamVjdGVkQnVuZGxlUGF0aCgpIGNvbnN0IHsgcmV0
dXJuIG1fY29uZmlndXJhdGlvbi0+aW5qZWN0ZWRCdW5kbGVQYXRoKCk7IH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCmluZGV4IGQxODZhMTIuLmQ5
MGM4NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
LmgKQEAgLTUxLDEyICs1MSw5IEBAIGNsYXNzIFBhZ2VDbGllbnRJbXBsIGZpbmFsIDogcHVibGlj
IFBhZ2VDbGllbnQKICNlbmRpZgogICAgIHsKIHB1YmxpYzoKLSAgICBQYWdlQ2xpZW50SW1wbChX
S1ZpZXcgKiwgV0tXZWJWaWV3ICopOworICAgIFBhZ2VDbGllbnRJbXBsKE5TVmlldyAqLCBXS1dl
YlZpZXcgKiwgV2ViVmlld0ltcGwmKTsKICAgICB2aXJ0dWFsIH5QYWdlQ2xpZW50SW1wbCgpOwog
Ci0gICAgLy8gRklYTUU6IEV2ZW50dWFsbHkgV2ViVmlld0ltcGwgc2hvdWxkIGJlY29tZSB0aGUg
UGFnZUNsaWVudC4KLSAgICB2b2lkIHNldEltcGwoV2ViVmlld0ltcGwmIGltcGwpIHsgbV9pbXBs
ID0gJmltcGw7IH0KLQogICAgIHZvaWQgdmlld1dpbGxNb3ZlVG9Bbm90aGVyV2luZG93KCk7CiAK
IHByaXZhdGU6CkBAIC0yMjQsOSArMjIxLDkgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIF9XS1Jl
bW90ZU9iamVjdFJlZ2lzdHJ5ICpyZW1vdGVPYmplY3RSZWdpc3RyeSgpIG92ZXJyaWRlOwogI2Vu
ZGlmCiAKLSAgICBXS1ZpZXcgKm1fd2tWaWV3OworICAgIE5TVmlldyAqbV92aWV3OwogICAgIFdL
V2ViVmlldyAqbV93ZWJWaWV3OwotICAgIFdlYlZpZXdJbXBsKiBtX2ltcGwgeyBudWxscHRyIH07
CisgICAgV2ViVmlld0ltcGwmIG1faW1wbDsKICNpZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFORUwp
CiAgICAgQ29ycmVjdGlvblBhbmVsIG1fY29ycmVjdGlvblBhbmVsOwogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQppbmRleCBkNGYwYWIz
Li45NDliOWE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VD
bGllbnRJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVu
dEltcGwubW0KQEAgLTkzLDkgKzkzLDEwIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogCi1QYWdlQ2xpZW50SW1wbDo6UGFnZUNsaWVudEltcGwoV0tWaWV3
KiB3a1ZpZXcsIFdLV2ViVmlldyAqd2ViVmlldykKLSAgICA6IG1fd2tWaWV3KHdrVmlldykKK1Bh
Z2VDbGllbnRJbXBsOjpQYWdlQ2xpZW50SW1wbChOU1ZpZXcqIHZpZXcsIFdLV2ViVmlldyAqd2Vi
VmlldywgV2ViVmlld0ltcGwmIGltcGwpCisgICAgOiBtX3ZpZXcodmlldykKICAgICAsIG1fd2Vi
Vmlldyh3ZWJWaWV3KQorICAgICwgbV9pbXBsKGltcGwpCiAjaWYgVVNFKERJQ1RBVElPTl9BTFRF
Uk5BVElWRVMpCiAgICAgLCBtX2FsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcihzdGQ6Om1ha2Vf
dW5pcXVlPEFsdGVybmF0aXZlVGV4dFVJQ29udHJvbGxlcj4oKSkKICNlbmRpZgpAQCAtMTExLDcg
KzExMiw3IEBAIFBhZ2VDbGllbnRJbXBsOjp+UGFnZUNsaWVudEltcGwoKQogCiBzdGQ6OnVuaXF1
ZV9wdHI8RHJhd2luZ0FyZWFQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZURyYXdpbmdBcmVh
UHJveHkoKQogewotICAgIHJldHVybiBtX2ltcGwtPmNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKTsK
KyAgICByZXR1cm4gbV9pbXBsLmNyZWF0ZURyYXdpbmdBcmVhUHJveHkoKTsKIH0KIAogdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6c2V0Vmlld05lZWRzRGlzcGxheShjb25zdCBXZWJDb3JlOjpJbnRSZWN0
JiByZWN0KQpAQCAtMTQxLDI3ICsxNDIsMjcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVxdWVz
dFNjcm9sbChjb25zdCBGbG9hdFBvaW50JiBzY3JvbGxQb3NpdGlvbiwgY29uc3QgSW50UG8KIAog
SW50U2l6ZSBQYWdlQ2xpZW50SW1wbDo6dmlld1NpemUoKQogewotICAgIHJldHVybiBJbnRTaXpl
KFttX3drVmlldyBib3VuZHNdLnNpemUpOworICAgIHJldHVybiBJbnRTaXplKFttX3ZpZXcgYm91
bmRzXS5zaXplKTsKIH0KIAogTlNWaWV3ICpQYWdlQ2xpZW50SW1wbDo6YWN0aXZlVmlldygpIGNv
bnN0CiB7CiAjaWYgV0tfQVBJX0VOQUJMRUQKLSAgICByZXR1cm4gbV93a1ZpZXcuX3RodW1ibmFp
bFZpZXcgPyAoTlNWaWV3ICopbV93a1ZpZXcuX3RodW1ibmFpbFZpZXcgOiAoTlNWaWV3ICopbV93
a1ZpZXc7CisgICAgcmV0dXJuIG1faW1wbC50aHVtYm5haWxWaWV3KCkgPyAoTlNWaWV3ICopbV9p
bXBsLnRodW1ibmFpbFZpZXcoKSA6IG1fdmlldzsKICNlbHNlCi0gICAgcmV0dXJuIG1fd2tWaWV3
OworICAgIHJldHVybiBtX3ZpZXc7CiAjZW5kaWYKIH0KIAogTlNXaW5kb3cgKlBhZ2VDbGllbnRJ
bXBsOjphY3RpdmVXaW5kb3coKSBjb25zdAogewogI2lmIFdLX0FQSV9FTkFCTEVECi0gICAgaWYg
KG1fd2tWaWV3Ll90aHVtYm5haWxWaWV3KQotICAgICAgICByZXR1cm4gbV93a1ZpZXcuX3RodW1i
bmFpbFZpZXcud2luZG93OworICAgIGlmIChtX2ltcGwudGh1bWJuYWlsVmlldygpKQorICAgICAg
ICByZXR1cm4gbV9pbXBsLnRodW1ibmFpbFZpZXcoKS53aW5kb3c7CiAjZW5kaWYKLSAgICBpZiAo
bV9pbXBsICYmIG1faW1wbC0+dGFyZ2V0V2luZG93Rm9yTW92ZVByZXBhcmF0aW9uKCkpCi0gICAg
ICAgIHJldHVybiBtX2ltcGwtPnRhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbigpOwotICAg
IHJldHVybiBtX3drVmlldy53aW5kb3c7CisgICAgaWYgKG1faW1wbC50YXJnZXRXaW5kb3dGb3JN
b3ZlUHJlcGFyYXRpb24oKSkKKyAgICAgICAgcmV0dXJuIG1faW1wbC50YXJnZXRXaW5kb3dGb3JN
b3ZlUHJlcGFyYXRpb24oKTsKKyAgICByZXR1cm4gbV92aWV3LndpbmRvdzsKIH0KIAogYm9vbCBQ
YWdlQ2xpZW50SW1wbDo6aXNWaWV3V2luZG93QWN0aXZlKCkKQEAgLTE3MiwxNyArMTczLDEyIEBA
IGJvb2wgUGFnZUNsaWVudEltcGw6OmlzVmlld1dpbmRvd0FjdGl2ZSgpCiAKIGJvb2wgUGFnZUNs
aWVudEltcGw6OmlzVmlld0ZvY3VzZWQoKQogewotICAgIC8vIEZJWE1FOiBUaGlzIGlzIGNhbGxl
ZCBmcm9tIHRoZSBXZWJQYWdlUHJveHkgY29uc3RydWN0b3IgYmVmb3JlIHdlIGhhdmUgYSBXZWJW
aWV3SW1wbC4KLSAgICAvLyBPbmNlIFdlYlZpZXdJbXBsIGFuZCBQYWdlQ2xpZW50IG1lcmdlLCB0
aGlzIHdvbid0IGJlIGEgcHJvYmxlbS4KLSAgICBpZiAoIW1faW1wbCkKLSAgICAgICAgcmV0dXJu
IE5POwotCi0gICAgcmV0dXJuIG1faW1wbC0+aXNGb2N1c2VkKCk7CisgICAgcmV0dXJuIG1faW1w
bC5pc0ZvY3VzZWQoKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6bWFrZUZpcnN0UmVzcG9u
ZGVyKCkKIHsKLSAgICAgW1ttX3drVmlldyB3aW5kb3ddIG1ha2VGaXJzdFJlc3BvbmRlcjptX3dr
Vmlld107CisgICAgIFtbbV92aWV3IHdpbmRvd10gbWFrZUZpcnN0UmVzcG9uZGVyOm1fdmlld107
CiB9CiAgICAgCiBib29sIFBhZ2VDbGllbnRJbXBsOjppc1ZpZXdWaXNpYmxlKCkKQEAgLTE5OSw3
ICsxOTUsNyBAQCBib29sIFBhZ2VDbGllbnRJbXBsOjppc1ZpZXdWaXNpYmxlKCkKICAgICBpZiAo
YWN0aXZlVmlldy5pc0hpZGRlbk9ySGFzSGlkZGVuQW5jZXN0b3IpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKIAotICAgIGlmIChtX2ltcGwtPndpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQo
KSAmJiAoYWN0aXZlVmlld1dpbmRvdy5vY2NsdXNpb25TdGF0ZSAmIE5TV2luZG93T2NjbHVzaW9u
U3RhdGVWaXNpYmxlKSAhPSBOU1dpbmRvd09jY2x1c2lvblN0YXRlVmlzaWJsZSkKKyAgICBpZiAo
bV9pbXBsLndpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQoKSAmJiAoYWN0aXZlVmlld1dp
bmRvdy5vY2NsdXNpb25TdGF0ZSAmIE5TV2luZG93T2NjbHVzaW9uU3RhdGVWaXNpYmxlKSAhPSBO
U1dpbmRvd09jY2x1c2lvblN0YXRlVmlzaWJsZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgcmV0dXJuIHRydWU7CkBAIC0yMzYsMTcgKzIzMiwxNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBs
Ojp2aWV3V2lsbE1vdmVUb0Fub3RoZXJXaW5kb3coKQogCiBDb2xvclNwYWNlRGF0YSBQYWdlQ2xp
ZW50SW1wbDo6Y29sb3JTcGFjZSgpCiB7Ci0gICAgcmV0dXJuIG1faW1wbC0+Y29sb3JTcGFjZSgp
OworICAgIHJldHVybiBtX2ltcGwuY29sb3JTcGFjZSgpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpwcm9jZXNzRGlkRXhpdCgpCiB7Ci0gICAgbV9pbXBsLT5wcm9jZXNzRGlkRXhpdCgpOwor
ICAgIG1faW1wbC5wcm9jZXNzRGlkRXhpdCgpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpw
YWdlQ2xvc2VkKCkKIHsKLSAgICBtX2ltcGwtPnBhZ2VDbG9zZWQoKTsKKyAgICBtX2ltcGwucGFn
ZUNsb3NlZCgpOwogI2lmIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKQogICAgIG1fYWx0ZXJu
YXRpdmVUZXh0VUlDb250cm9sbGVyLT5jbGVhcigpOwogI2VuZGlmCkBAIC0yNTQsMjIgKzI1MCwy
MiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpwYWdlQ2xvc2VkKCkKIAogdm9pZCBQYWdlQ2xpZW50
SW1wbDo6ZGlkUmVsYXVuY2hQcm9jZXNzKCkKIHsKLSAgICBtX2ltcGwtPmRpZFJlbGF1bmNoUHJv
Y2VzcygpOworICAgIG1faW1wbC5kaWRSZWxhdW5jaFByb2Nlc3MoKTsKIH0KIAogdm9pZCBQYWdl
Q2xpZW50SW1wbDo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQogewotICAgIG1faW1wbC0+cHJlZmVy
ZW5jZXNEaWRDaGFuZ2UoKTsKKyAgICBtX2ltcGwucHJlZmVyZW5jZXNEaWRDaGFuZ2UoKTsKIH0K
IAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6dG9vbFRpcENoYW5nZWQoY29uc3QgU3RyaW5nJiBvbGRU
b29sVGlwLCBjb25zdCBTdHJpbmcmIG5ld1Rvb2xUaXApCiB7Ci0gICAgbV9pbXBsLT50b29sVGlw
Q2hhbmdlZChvbGRUb29sVGlwLCBuZXdUb29sVGlwKTsKKyAgICBtX2ltcGwudG9vbFRpcENoYW5n
ZWQob2xkVG9vbFRpcCwgbmV3VG9vbFRpcCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRp
ZENvbW1pdExvYWRGb3JNYWluRnJhbWUoY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgYm9vbCB1c2VD
dXN0b21Db250ZW50UHJvdmlkZXIpCiB7Ci0gICAgbV9pbXBsLT51cGRhdGVTdXBwb3J0c0FyYml0
cmFyeUxheW91dE1vZGVzKCk7CisgICAgbV9pbXBsLnVwZGF0ZVN1cHBvcnRzQXJiaXRyYXJ5TGF5
b3V0TW9kZXMoKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZGluZ0Rh
dGFGb3JDdXN0b21Db250ZW50UHJvdmlkZXIoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRGaWxlbmFt
ZSwgY29uc3QgSVBDOjpEYXRhUmVmZXJlbmNlJiBkYXRhUmVmZXJlbmNlKQpAQCAtMjg3LDcgKzI4
Myw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9h
ZFByb3h5KiBkb3dubG9hZCkKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlQ29udGVu
dFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgbmV3U2l6ZSkKIHsKLSAgICBbbV93a1ZpZXcg
X2RpZENoYW5nZUNvbnRlbnRTaXplOm5ld1NpemVdOworICAgIG1faW1wbC5kaWRDaGFuZ2VDb250
ZW50U2l6ZShuZXdTaXplKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0Q3Vyc29yKGNv
bnN0IFdlYkNvcmU6OkN1cnNvciYgY3Vyc29yKQpAQCAtMjk3LDEwICsyOTMsMTAgQEAgdm9pZCBQ
YWdlQ2xpZW50SW1wbDo6c2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYgY3Vyc29yKQog
ICAgIGlmIChbTlNBcHAgX2N1cnNvclJlY3RDdXJzb3JdKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBpZiAoIW1fd2tWaWV3KQorICAgIGlmICghbV92aWV3KQogICAgICAgICByZXR1cm47CiAKLSAg
ICBOU1dpbmRvdyAqd2luZG93ID0gW21fd2tWaWV3IHdpbmRvd107CisgICAgTlNXaW5kb3cgKndp
bmRvdyA9IFttX3ZpZXcgd2luZG93XTsKICAgICBpZiAoIXdpbmRvdykKICAgICAgICAgcmV0dXJu
OwogCkBAIC0zMjUsMjkgKzMyMSwyOSBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VW
aWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dAogCiB2b2lk
IFBhZ2VDbGllbnRJbXBsOjpyZWdpc3RlckVkaXRDb21tYW5kKFBhc3NSZWZQdHI8V2ViRWRpdENv
bW1hbmRQcm94eT4gcHJwQ29tbWFuZCwgV2ViUGFnZVByb3h5OjpVbmRvT3JSZWRvIHVuZG9PclJl
ZG8pCiB7Ci0gICAgbV9pbXBsLT5yZWdpc3RlckVkaXRDb21tYW5kKHBycENvbW1hbmQsIHVuZG9P
clJlZG8pOworICAgIG1faW1wbC5yZWdpc3RlckVkaXRDb21tYW5kKHBycENvbW1hbmQsIHVuZG9P
clJlZG8pOwogfQogCiAjaWYgVVNFKElOU0VSVElPTl9VTkRPX0dST1VQSU5HKQogdm9pZCBQYWdl
Q2xpZW50SW1wbDo6cmVnaXN0ZXJJbnNlcnRpb25VbmRvR3JvdXBpbmcoKQogewotICAgIHJlZ2lz
dGVySW5zZXJ0aW9uVW5kb0dyb3VwaW5nV2l0aFVuZG9NYW5hZ2VyKFttX3drVmlldyB1bmRvTWFu
YWdlcl0pOworICAgIHJlZ2lzdGVySW5zZXJ0aW9uVW5kb0dyb3VwaW5nV2l0aFVuZG9NYW5hZ2Vy
KFttX3ZpZXcgdW5kb01hbmFnZXJdKTsKIH0KICNlbmRpZgogCiB2b2lkIFBhZ2VDbGllbnRJbXBs
OjpjbGVhckFsbEVkaXRDb21tYW5kcygpCiB7Ci0gICAgbV9pbXBsLT5jbGVhckFsbEVkaXRDb21t
YW5kcygpOworICAgIG1faW1wbC5jbGVhckFsbEVkaXRDb21tYW5kcygpOwogfQogCiBib29sIFBh
Z2VDbGllbnRJbXBsOjpjYW5VbmRvUmVkbyhXZWJQYWdlUHJveHk6OlVuZG9PclJlZG8gdW5kb09y
UmVkbykKIHsKLSAgICByZXR1cm4gKHVuZG9PclJlZG8gPT0gV2ViUGFnZVByb3h5OjpVbmRvKSA/
IFtbbV93a1ZpZXcgdW5kb01hbmFnZXJdIGNhblVuZG9dIDogW1ttX3drVmlldyB1bmRvTWFuYWdl
cl0gY2FuUmVkb107CisgICAgcmV0dXJuICh1bmRvT3JSZWRvID09IFdlYlBhZ2VQcm94eTo6VW5k
bykgPyBbW21fdmlldyB1bmRvTWFuYWdlcl0gY2FuVW5kb10gOiBbW21fdmlldyB1bmRvTWFuYWdl
cl0gY2FuUmVkb107CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmV4ZWN1dGVVbmRvUmVkbyhX
ZWJQYWdlUHJveHk6OlVuZG9PclJlZG8gdW5kb09yUmVkbykKIHsKLSAgICByZXR1cm4gKHVuZG9P
clJlZG8gPT0gV2ViUGFnZVByb3h5OjpVbmRvKSA/IFtbbV93a1ZpZXcgdW5kb01hbmFnZXJdIHVu
ZG9dIDogW1ttX3drVmlldyB1bmRvTWFuYWdlcl0gcmVkb107CisgICAgcmV0dXJuICh1bmRvT3JS
ZWRvID09IFdlYlBhZ2VQcm94eTo6VW5kbykgPyBbW21fdmlldyB1bmRvTWFuYWdlcl0gdW5kb10g
OiBbW21fdmlldyB1bmRvTWFuYWdlcl0gcmVkb107CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6
OnNldERyYWdJbWFnZShjb25zdCBJbnRQb2ludCYgY2xpZW50UG9zaXRpb24sIFBhc3NSZWZQdHI8
U2hhcmVhYmxlQml0bWFwPiBkcmFnSW1hZ2UsIGJvb2wgaXNMaW5rRHJhZykKQEAgLTM1NSw0NSAr
MzUxLDQ1IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldERyYWdJbWFnZShjb25zdCBJbnRQb2lu
dCYgY2xpZW50UG9zaXRpb24sIFBhc3NSZWZQdHI8U2hhCiAgICAgUmV0YWluUHRyPENHSW1hZ2VS
ZWY+IGRyYWdDR0ltYWdlID0gZHJhZ0ltYWdlLT5tYWtlQ0dJbWFnZSgpOwogICAgIFJldGFpblB0
cjxOU0ltYWdlPiBkcmFnTlNJbWFnZSA9IGFkb3B0TlMoW1tOU0ltYWdlIGFsbG9jXSBpbml0V2l0
aENHSW1hZ2U6ZHJhZ0NHSW1hZ2UuZ2V0KCkgc2l6ZTpkcmFnSW1hZ2UtPnNpemUoKV0pOwogICAg
IEludFNpemUgc2l6ZShbZHJhZ05TSW1hZ2Ugc2l6ZV0pOwotICAgIHNpemUuc2NhbGUoMS4wIC8g
dG9JbXBsKFttX3drVmlldyBwYWdlUmVmXSktPmRldmljZVNjYWxlRmFjdG9yKCkpOworICAgIHNp
emUuc2NhbGUoMS4wIC8gbV9pbXBsLnBhZ2UoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKICAgICBb
ZHJhZ05TSW1hZ2Ugc2V0U2l6ZTpzaXplXTsKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAgICAgaWYg
KG1fd2ViVmlldykgewotICAgICAgICBOU1BvaW50IHdlYlZpZXdQb3NpdGlvbiA9IFttX3drVmll
dyBjb252ZXJ0UG9pbnQ6Y2xpZW50UG9zaXRpb24gdG9WaWV3Om1fd2ViVmlld107Ci0gICAgICAg
IG1faW1wbC0+ZHJhZ0ltYWdlRm9yVmlldyhtX3dlYlZpZXcsIGRyYWdOU0ltYWdlLmdldCgpLCB3
ZWJWaWV3UG9zaXRpb24sIGlzTGlua0RyYWcpOworICAgICAgICBOU1BvaW50IHdlYlZpZXdQb3Np
dGlvbiA9IFttX3ZpZXcgY29udmVydFBvaW50OmNsaWVudFBvc2l0aW9uIHRvVmlldzptX3dlYlZp
ZXddOworICAgICAgICBtX2ltcGwuZHJhZ0ltYWdlRm9yVmlldyhtX3dlYlZpZXcsIGRyYWdOU0lt
YWdlLmdldCgpLCB3ZWJWaWV3UG9zaXRpb24sIGlzTGlua0RyYWcpOwogICAgIH0gZWxzZQogI2Vu
ZGlmCi0gICAgICAgIG1faW1wbC0+ZHJhZ0ltYWdlRm9yVmlldyhtX3drVmlldywgZHJhZ05TSW1h
Z2UuZ2V0KCksIGNsaWVudFBvc2l0aW9uLCBpc0xpbmtEcmFnKTsKKyAgICAgICAgbV9pbXBsLmRy
YWdJbWFnZUZvclZpZXcobV92aWV3LCBkcmFnTlNJbWFnZS5nZXQoKSwgY2xpZW50UG9zaXRpb24s
IGlzTGlua0RyYWcpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRQcm9taXNlZERhdGFG
b3JJbWFnZShjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBQYXNzUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gaW1hZ2VCdWZmZXIsIGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYg
ZXh0ZW5zaW9uLCBjb25zdCBTdHJpbmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3Qg
U3RyaW5nJiB2aXNpYmxlVVJMLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYXJjaGl2ZUJ1ZmZl
cikKIHsKICAgICBSZWZQdHI8SW1hZ2U+IGltYWdlID0gQml0bWFwSW1hZ2U6OmNyZWF0ZSgpOwog
ICAgIGltYWdlLT5zZXREYXRhKGltYWdlQnVmZmVyLmdldCgpLCB0cnVlKTsKLSAgICBtX2ltcGwt
PnNldFByb21pc2VkRGF0YUZvckltYWdlKGltYWdlLmdldCgpLCBmaWxlbmFtZSwgZXh0ZW5zaW9u
LCB0aXRsZSwgdXJsLCB2aXNpYmxlVVJMLCBhcmNoaXZlQnVmZmVyLmdldCgpLCBwYXN0ZWJvYXJk
TmFtZSk7CisgICAgbV9pbXBsLnNldFByb21pc2VkRGF0YUZvckltYWdlKGltYWdlLmdldCgpLCBm
aWxlbmFtZSwgZXh0ZW5zaW9uLCB0aXRsZSwgdXJsLCB2aXNpYmxlVVJMLCBhcmNoaXZlQnVmZmVy
LmdldCgpLCBwYXN0ZWJvYXJkTmFtZSk7CiB9CiAKICNpZiBFTkFCTEUoQVRUQUNITUVOVF9FTEVN
RU5UKQogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0UHJvbWlzZWREYXRhRm9yQXR0YWNobWVudChj
b25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25z
dCBTdHJpbmcmIGV4dGVuc2lvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1
cmwsIGNvbnN0IFN0cmluZyYgdmlzaWJsZVVSTCkKIHsKLSAgICBtX2ltcGwtPnNldFByb21pc2Vk
RGF0YUZvckF0dGFjaG1lbnQoZmlsZW5hbWUsIGV4dGVuc2lvbiwgdGl0bGUsIHVybCwgdmlzaWJs
ZVVSTCwgcGFzdGVib2FyZE5hbWUpOworICAgIG1faW1wbC5zZXRQcm9taXNlZERhdGFGb3JBdHRh
Y2htZW50KGZpbGVuYW1lLCBleHRlbnNpb24sIHRpdGxlLCB1cmwsIHZpc2libGVVUkwsIHBhc3Rl
Ym9hcmROYW1lKTsKIH0KICNlbmRpZgogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjp1cGRhdGVTZWN1
cmVJbnB1dFN0YXRlKCkKIHsKLSAgICBtX2ltcGwtPnVwZGF0ZVNlY3VyZUlucHV0U3RhdGUoKTsK
KyAgICBtX2ltcGwudXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSgpOwogfQogCiB2b2lkIFBhZ2VDbGll
bnRJbXBsOjpyZXNldFNlY3VyZUlucHV0U3RhdGUoKQogewotICAgIG1faW1wbC0+cmVzZXRTZWN1
cmVJbnB1dFN0YXRlKCk7CisgICAgbV9pbXBsLnJlc2V0U2VjdXJlSW5wdXRTdGF0ZSgpOwogfQog
CiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENv
bXBvc2l0aW9uKCkKIHsKLSAgICBtX2ltcGwtPm5vdGlmeUlucHV0Q29udGV4dEFib3V0RGlzY2Fy
ZGVkQ29tcG9zaXRpb24oKTsKKyAgICBtX2ltcGwubm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNj
YXJkZWRDb21wb3NpdGlvbigpOwogfQogCiAjaWYgUExBVEZPUk0oTUFDKSAmJiAhVVNFKEFTWU5D
X05TVEVYVElOUFVUQ0xJRU5UKQpAQCAtNDA1LDc2ICs0MDEsNzYgQEAgdm9pZCBQYWdlQ2xpZW50
SW1wbDo6bm90aWZ5QXBwbGljYXRpb25BYm91dElucHV0Q29udGV4dENoYW5nZSgpCiAKIEZsb2F0
UmVjdCBQYWdlQ2xpZW50SW1wbDo6Y29udmVydFRvRGV2aWNlU3BhY2UoY29uc3QgRmxvYXRSZWN0
JiByZWN0KQogewotICAgIHJldHVybiB0b0RldmljZVNwYWNlKHJlY3QsIFttX3drVmlldyB3aW5k
b3ddKTsKKyAgICByZXR1cm4gdG9EZXZpY2VTcGFjZShyZWN0LCBbbV92aWV3IHdpbmRvd10pOwog
fQogCiBGbG9hdFJlY3QgUGFnZUNsaWVudEltcGw6OmNvbnZlcnRUb1VzZXJTcGFjZShjb25zdCBG
bG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIHRvVXNlclNwYWNlKHJlY3QsIFttX3drVmll
dyB3aW5kb3ddKTsKKyAgICByZXR1cm4gdG9Vc2VyU3BhY2UocmVjdCwgW21fdmlldyB3aW5kb3dd
KTsKIH0KICAgIAogSW50UG9pbnQgUGFnZUNsaWVudEltcGw6OnNjcmVlblRvUm9vdFZpZXcoY29u
c3QgSW50UG9pbnQmIHBvaW50KQogewogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKICNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25z
IgotICAgIE5TUG9pbnQgd2luZG93Q29vcmQgPSBbW21fd2tWaWV3IHdpbmRvd10gY29udmVydFNj
cmVlblRvQmFzZTpwb2ludF07CisgICAgTlNQb2ludCB3aW5kb3dDb29yZCA9IFtbbV92aWV3IHdp
bmRvd10gY29udmVydFNjcmVlblRvQmFzZTpwb2ludF07CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCi0gICAgcmV0dXJuIEludFBvaW50KFttX3drVmlldyBjb252ZXJ0UG9pbnQ6d2luZG93
Q29vcmQgZnJvbVZpZXc6bmlsXSk7CisgICAgcmV0dXJuIEludFBvaW50KFttX3ZpZXcgY29udmVy
dFBvaW50OndpbmRvd0Nvb3JkIGZyb21WaWV3Om5pbF0pOwogfQogICAgIAogSW50UmVjdCBQYWdl
Q2xpZW50SW1wbDo6cm9vdFZpZXdUb1NjcmVlbihjb25zdCBJbnRSZWN0JiByZWN0KQogewogICAg
IE5TUmVjdCB0ZW1wUmVjdCA9IHJlY3Q7Ci0gICAgdGVtcFJlY3QgPSBbbV93a1ZpZXcgY29udmVy
dFJlY3Q6dGVtcFJlY3QgdG9WaWV3Om5pbF07CisgICAgdGVtcFJlY3QgPSBbbV92aWV3IGNvbnZl
cnRSZWN0OnRlbXBSZWN0IHRvVmlldzpuaWxdOwogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1
c2gKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIgotICAgIHRlbXBSZWN0Lm9yaWdpbiA9IFtbbV93a1ZpZXcgd2luZG93XSBjb252ZXJ0
QmFzZVRvU2NyZWVuOnRlbXBSZWN0Lm9yaWdpbl07CisgICAgdGVtcFJlY3Qub3JpZ2luID0gW1tt
X3ZpZXcgd2luZG93XSBjb252ZXJ0QmFzZVRvU2NyZWVuOnRlbXBSZWN0Lm9yaWdpbl07CiAjcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgcmV0dXJuIGVuY2xvc2luZ0ludFJlY3QodGVt
cFJlY3QpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aEtleUV2ZW50KGNvbnN0
IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmIGV2ZW50LCBib29sIGV2ZW50V2FzSGFuZGxlZCkKIHsK
LSAgICBtX2ltcGwtPmRvbmVXaXRoS2V5RXZlbnQoZXZlbnQubmF0aXZlRXZlbnQoKSwgZXZlbnRX
YXNIYW5kbGVkKTsKKyAgICBtX2ltcGwuZG9uZVdpdGhLZXlFdmVudChldmVudC5uYXRpdmVFdmVu
dCgpLCBldmVudFdhc0hhbmRsZWQpOwogfQogCiBSZWZQdHI8V2ViUG9wdXBNZW51UHJveHk+IFBh
Z2VDbGllbnRJbXBsOjpjcmVhdGVQb3B1cE1lbnVQcm94eShXZWJQYWdlUHJveHkmIHBhZ2UpCiB7
Ci0gICAgcmV0dXJuIFdlYlBvcHVwTWVudVByb3h5TWFjOjpjcmVhdGUobV93a1ZpZXcsIHBhZ2Up
OworICAgIHJldHVybiBXZWJQb3B1cE1lbnVQcm94eU1hYzo6Y3JlYXRlKG1fdmlldywgcGFnZSk7
CiB9CiAKICNpZiBFTkFCTEUoQ09OVEVYVF9NRU5VUykKIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb250
ZXh0TWVudVByb3h5PiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29udGV4dE1lbnVQcm94eShXZWJQ
YWdlUHJveHkmIHBhZ2UsIGNvbnN0IENvbnRleHRNZW51Q29udGV4dERhdGEmIGNvbnRleHQsIGNv
bnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKIHsKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxX
ZWJDb250ZXh0TWVudVByb3h5TWFjPihtX3drVmlldywgcGFnZSwgY29udGV4dCwgdXNlckRhdGEp
OworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvbnRleHRNZW51UHJveHlNYWM+KG1f
dmlldywgcGFnZSwgY29udGV4dCwgdXNlckRhdGEpOwogfQogI2VuZGlmCiAKICNpZiBFTkFCTEUo
SU5QVVRfVFlQRV9DT0xPUikKIFJlZlB0cjxXZWJDb2xvclBpY2tlcj4gUGFnZUNsaWVudEltcGw6
OmNyZWF0ZUNvbG9yUGlja2VyKFdlYlBhZ2VQcm94eSogcGFnZSwgY29uc3QgV2ViQ29yZTo6Q29s
b3ImIGluaXRpYWxDb2xvciwgIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCiB7Ci0gICAg
cmV0dXJuIFdlYkNvbG9yUGlja2VyTWFjOjpjcmVhdGUocGFnZSwgaW5pdGlhbENvbG9yLCByZWN0
LCBtX3drVmlldyk7CisgICAgcmV0dXJuIFdlYkNvbG9yUGlja2VyTWFjOjpjcmVhdGUocGFnZSwg
aW5pdGlhbENvbG9yLCByZWN0LCBtX3ZpZXcpOwogfQogI2VuZGlmCiAKIHZvaWQgUGFnZUNsaWVu
dEltcGw6OnNldFRleHRJbmRpY2F0b3IoUmVmPFRleHRJbmRpY2F0b3I+IHRleHRJbmRpY2F0b3Is
IFdlYkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZSBsaWZldGltZSkKIHsKLSAgICBt
X2ltcGwtPnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvci5nZXQoKSwgbGlmZXRpbWUpOwor
ICAgIG1faW1wbC5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0b3IuZ2V0KCksIGxpZmV0aW1l
KTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xlYXJUZXh0SW5kaWNhdG9yKFdlYkNvcmU6
OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb24gZGlzbWlzc2FsQW5pbWF0aW9u
KQogewotICAgIG1faW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihkaXNtaXNz
YWxBbmltYXRpb24pOworICAgIG1faW1wbC5jbGVhclRleHRJbmRpY2F0b3JXaXRoQW5pbWF0aW9u
KGRpc21pc3NhbEFuaW1hdGlvbik7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldFRleHRJ
bmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhmbG9hdCBwcm9ncmVzcykKIHsKLSAgICBtX2ltcGwt
PnNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhwcm9ncmVzcyk7CisgICAgbV9pbXBs
LnNldFRleHRJbmRpY2F0b3JBbmltYXRpb25Qcm9ncmVzcyhwcm9ncmVzcyk7CiB9CiAKIHZvaWQg
UGFnZUNsaWVudEltcGw6OmFjY2Vzc2liaWxpdHlXZWJQcm9jZXNzVG9rZW5SZWNlaXZlZChjb25z
dCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCiB7Ci0gICAgbV9pbXBsLT5zZXRBY2Nlc3NpYmls
aXR5V2ViUHJvY2Vzc1Rva2VuKFtOU0RhdGEgZGF0YVdpdGhCeXRlczpkYXRhLmRhdGEoKSBsZW5n
dGg6ZGF0YS5zaXplKCldKTsKKyAgICBtX2ltcGwuc2V0QWNjZXNzaWJpbGl0eVdlYlByb2Nlc3NU
b2tlbihbTlNEYXRhIGRhdGFXaXRoQnl0ZXM6ZGF0YS5kYXRhKCkgbGVuZ3RoOmRhdGEuc2l6ZSgp
XSk7CiB9CiAgICAgCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjplbnRlckFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxheWVyVHJlZUNvbnRleHQpCkBAIC00
ODIsMTIgKzQ3OCwxMiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjplbnRlckFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxheQogICAgIEFTU0VSVCghbGF5
ZXJUcmVlQ29udGV4dC5pc0VtcHR5KCkpOwogCiAgICAgQ0FMYXllciAqcmVuZGVyTGF5ZXIgPSBX
S01ha2VSZW5kZXJMYXllcihsYXllclRyZWVDb250ZXh0LmNvbnRleHRJRCk7Ci0gICAgbV9pbXBs
LT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKHJlbmRlckxheWVyKTsKKyAgICBt
X2ltcGwuc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihyZW5kZXJMYXllcik7CiB9
CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmV4aXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZSgp
CiB7Ci0gICAgbV9pbXBsLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKG5pbCk7
CisgICAgbV9pbXBsLnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIobmlsKTsKIH0K
IAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6dXBkYXRlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUo
Y29uc3QgTGF5ZXJUcmVlQ29udGV4dCYgbGF5ZXJUcmVlQ29udGV4dCkKQEAgLTQ5NSw3ICs0OTEs
NyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjp1cGRhdGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nTW9k
ZShjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYQogICAgIEFTU0VSVCghbGF5ZXJUcmVlQ29udGV4
dC5pc0VtcHR5KCkpOwogCiAgICAgQ0FMYXllciAqcmVuZGVyTGF5ZXIgPSBXS01ha2VSZW5kZXJM
YXllcihsYXllclRyZWVDb250ZXh0LmNvbnRleHRJRCk7Ci0gICAgbV9pbXBsLT5zZXRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nUm9vdExheWVyKHJlbmRlckxheWVyKTsKKyAgICBtX2ltcGwuc2V0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcihyZW5kZXJMYXllcik7CiB9CiAKIHZvaWQgUGFn
ZUNsaWVudEltcGw6OndpbGxFbnRlckFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKQEAgLTUw
NCw1OSArNTAwLDU5IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OndpbGxFbnRlckFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdNb2RlKCkKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0QWNjZWxlcmF0ZWRD
b21wb3NpdGluZ1Jvb3RMYXllcihDQUxheWVyICpyb290TGF5ZXIpCiB7Ci0gICAgbV9pbXBsLT5z
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKHJvb3RMYXllcik7CisgICAgbV9pbXBs
LnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIocm9vdExheWVyKTsKIH0KIAogQ0FM
YXllciAqUGFnZUNsaWVudEltcGw6OmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIoKSBj
b25zdAogewotICAgIHJldHVybiBtX2ltcGwtPmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5
ZXIoKTsKKyAgICByZXR1cm4gbV9pbXBsLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIo
KTsKIH0KIAogUGFzc1JlZlB0cjxWaWV3U25hcHNob3Q+IFBhZ2VDbGllbnRJbXBsOjp0YWtlVmll
d1NuYXBzaG90KCkKIHsKLSAgICByZXR1cm4gbV9pbXBsLT50YWtlVmlld1NuYXBzaG90KCk7Cisg
ICAgcmV0dXJuIG1faW1wbC50YWtlVmlld1NuYXBzaG90KCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVu
dEltcGw6OnNlbGVjdGlvbkRpZENoYW5nZSgpCiB7Ci0gICAgbV9pbXBsLT5zZWxlY3Rpb25EaWRD
aGFuZ2UoKTsKKyAgICBtX2ltcGwuc2VsZWN0aW9uRGlkQ2hhbmdlKCk7CiB9CiAKIHZvaWQgUGFn
ZUNsaWVudEltcGw6OndoZWVsRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2
ZVdlYldoZWVsRXZlbnQmIGV2ZW50KQogewotICAgIGlmIChhdXRvIGdlc3R1cmVDb250cm9sbGVy
ID0gbV9pbXBsLT5nZXN0dXJlQ29udHJvbGxlcigpKQorICAgIGlmIChhdXRvIGdlc3R1cmVDb250
cm9sbGVyID0gbV9pbXBsLmdlc3R1cmVDb250cm9sbGVyKCkpCiAgICAgICAgIGdlc3R1cmVDb250
cm9sbGVyLT53aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShldmVudC5uYXRpdmVFdmVu
dCgpKTsKIH0KIAogI2lmIEVOQUJMRShNQUNfR0VTVFVSRV9FVkVOVFMpCiB2b2lkIFBhZ2VDbGll
bnRJbXBsOjpnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdl
Ykdlc3R1cmVFdmVudCYgZXZlbnQpCiB7Ci0gICAgW21fd2tWaWV3IF9nZXN0dXJlRXZlbnRXYXNO
b3RIYW5kbGVkQnlXZWJDb3JlOmV2ZW50Lm5hdGl2ZUV2ZW50KCldOworICAgIG1faW1wbC5nZXN0
dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKGV2ZW50Lm5hdGl2ZUV2ZW50KCkpOwogfQog
I2VuZGlmCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0No
YW5nZWQodWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIGJvb2wgcGx1
Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cykKIHsKLSAgICBtX2ltcGwtPnBsdWdpbkZvY3Vz
T3JXaW5kb3dGb2N1c0NoYW5nZWQocGx1Z2luSGFzRm9jdXNBbmRXaW5kb3dIYXNGb2N1cywgcGx1
Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIpOworICAgIG1faW1wbC5wbHVnaW5Gb2N1c09y
V2luZG93Rm9jdXNDaGFuZ2VkKHBsdWdpbkhhc0ZvY3VzQW5kV2luZG93SGFzRm9jdXMsIHBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6
c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKHVpbnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0
SW5wdXRJZGVudGlmaWVyLCBQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUgcGx1Z2luQ29tcGxl
eFRleHRJbnB1dFN0YXRlKQogewotICAgIG1faW1wbC0+c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1
dFN0YXRlQW5kSWRlbnRpZmllcihwbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUsIHBsdWdpbkNv
bXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKTsKKyAgICBtX2ltcGwuc2V0UGx1Z2luQ29tcGxleFRl
eHRJbnB1dFN0YXRlQW5kSWRlbnRpZmllcihwbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUsIHBs
dWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1w
bDo6ZGlkUGVyZm9ybURpY3Rpb25hcnlMb29rdXAoY29uc3QgRGljdGlvbmFyeVBvcHVwSW5mbyYg
ZGljdGlvbmFyeVBvcHVwSW5mbykKIHsKLSAgICBtX2ltcGwtPnByZXBhcmVGb3JEaWN0aW9uYXJ5
TG9va3VwKCk7CisgICAgbV9pbXBsLnByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwKCk7CiAKLSAg
ICBEaWN0aW9uYXJ5TG9va3VwOjpzaG93UG9wdXAoZGljdGlvbmFyeVBvcHVwSW5mbywgbV93a1Zp
ZXcsIFt0aGlzXShUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7Ci0gICAgICAgIG1faW1w
bC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yV2luZG93TGlm
ZXRpbWU6OlBlcm1hbmVudCk7CisgICAgRGljdGlvbmFyeUxvb2t1cDo6c2hvd1BvcHVwKGRpY3Rp
b25hcnlQb3B1cEluZm8sIG1fdmlldywgW3RoaXNdKFRleHRJbmRpY2F0b3ImIHRleHRJbmRpY2F0
b3IpIHsKKyAgICAgICAgbV9pbXBsLnNldFRleHRJbmRpY2F0b3IodGV4dEluZGljYXRvciwgVGV4
dEluZGljYXRvcldpbmRvd0xpZmV0aW1lOjpQZXJtYW5lbnQpOwogICAgIH0pOwogfQogCiB2b2lk
IFBhZ2VDbGllbnRJbXBsOjpkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzKGJvb2wg
d2l0aEFuaW1hdGlvbikKIHsKLSAgICBbbV93a1ZpZXcgX2Rpc21pc3NDb250ZW50UmVsYXRpdmVD
aGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uOndpdGhBbmltYXRpb25dOworICAgIG1faW1wbC5kaXNt
aXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbih3aXRoQW5pbWF0aW9u
KTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd0NvcnJlY3Rpb25QYW5lbChBbHRlcm5h
dGl2ZVRleHRUeXBlIHR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2Vk
U3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxh
Y2VtZW50U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVu
dFN0cmluZ3MpCkBAIC01NjQsNyArNTYwLDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd0Nv
cnJlY3Rpb25QYW5lbChBbHRlcm5hdGl2ZVRleHRUeXBlIHR5cGUsIGNvbnN0IEZsb2F0UmUKICNp
ZiBVU0UoQVVUT0NPUlJFQ1RJT05fUEFORUwpCiAgICAgaWYgKCFpc1ZpZXdWaXNpYmxlKCkgfHwg
IWlzVmlld0luV2luZG93KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2NvcnJlY3Rpb25QYW5l
bC5zaG93KG1fd2tWaWV3LCAqbV9pbXBsLCB0eXBlLCBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJp
bmcsIHJlcGxhY2VkU3RyaW5nLCByZXBsYWNlbWVudFN0cmluZywgYWx0ZXJuYXRpdmVSZXBsYWNl
bWVudFN0cmluZ3MpOworICAgIG1fY29ycmVjdGlvblBhbmVsLnNob3cobV92aWV3LCBtX2ltcGws
IHR5cGUsIGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgcmVwbGFjZWRTdHJpbmcsIHJlcGxh
Y2VtZW50U3RyaW5nLCBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncyk7CiAjZW5kaWYKIH0K
IApAQCAtNTg3LDcgKzU4Myw3IEBAIFN0cmluZyBQYWdlQ2xpZW50SW1wbDo6ZGlzbWlzc0NvcnJl
Y3Rpb25QYW5lbFNvb24oV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2luZ0FsCiB2b2lkIFBhZ2VD
bGllbnRJbXBsOjpyZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKEF1dG9jb3JyZWN0aW9uUmVz
cG9uc2VUeXBlIHJlc3BvbnNlVHlwZSwgY29uc3QgU3RyaW5nJiByZXBsYWNlZFN0cmluZywgY29u
c3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZykKIHsKICAgICBOU0NvcnJlY3Rpb25SZXNwb25z
ZSByZXNwb25zZSA9IHJlc3BvbnNlVHlwZSA9PSBBdXRvY29ycmVjdGlvblJldmVydGVkID8gTlND
b3JyZWN0aW9uUmVzcG9uc2VSZXZlcnRlZCA6IE5TQ29ycmVjdGlvblJlc3BvbnNlRWRpdGVkOwot
ICAgIENvcnJlY3Rpb25QYW5lbDo6cmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZShtX3drVmll
dywgbV9pbXBsLT5zcGVsbENoZWNrZXJEb2N1bWVudFRhZygpLCByZXNwb25zZSwgcmVwbGFjZWRT
dHJpbmcsIHJlcGxhY2VtZW50U3RyaW5nKTsKKyAgICBDb3JyZWN0aW9uUGFuZWw6OnJlY29yZEF1
dG9jb3JyZWN0aW9uUmVzcG9uc2UobV92aWV3LCBtX2ltcGwuc3BlbGxDaGVja2VyRG9jdW1lbnRU
YWcoKSwgcmVzcG9uc2UsIHJlcGxhY2VkU3RyaW5nLCByZXBsYWNlbWVudFN0cmluZyk7CiB9CiAK
IHZvaWQgUGFnZUNsaWVudEltcGw6OnJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2Uo
U2Nyb2xsYmFyU3R5bGUgbmV3U3R5bGUpCkBAIC01OTksOCArNTk1LDggQEAgdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6cmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShTY3JvbGxiYXJTdHls
ZSBuZXdTdHlsZSkKICAgICBlbHNlCiAgICAgICAgIG9wdGlvbnMgfD0gTlNUcmFja2luZ0FjdGl2
ZUluS2V5V2luZG93OwogCi0gICAgUmV0YWluUHRyPE5TVHJhY2tpbmdBcmVhPiB0cmFja2luZ0Fy
ZWEgPSBhZG9wdE5TKFtbTlNUcmFja2luZ0FyZWEgYWxsb2NdIGluaXRXaXRoUmVjdDpbbV93a1Zp
ZXcgZnJhbWVdIG9wdGlvbnM6b3B0aW9ucyBvd25lcjptX3drVmlldyB1c2VySW5mbzpuaWxdKTsK
LSAgICBtX2ltcGwtPnNldFByaW1hcnlUcmFja2luZ0FyZWEodHJhY2tpbmdBcmVhLmdldCgpKTsK
KyAgICBSZXRhaW5QdHI8TlNUcmFja2luZ0FyZWE+IHRyYWNraW5nQXJlYSA9IGFkb3B0TlMoW1tO
U1RyYWNraW5nQXJlYSBhbGxvY10gaW5pdFdpdGhSZWN0OlttX3ZpZXcgZnJhbWVdIG9wdGlvbnM6
b3B0aW9ucyBvd25lcjptX3ZpZXcgdXNlckluZm86bmlsXSk7CisgICAgbV9pbXBsLnNldFByaW1h
cnlUcmFja2luZ0FyZWEodHJhY2tpbmdBcmVhLmdldCgpKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50
SW1wbDo6aW50cmluc2ljQ29udGVudFNpemVEaWRDaGFuZ2UoY29uc3QgSW50U2l6ZSYgaW50cmlu
c2ljQ29udGVudFNpemUpCkBAIC02MTIsMTIgKzYwOCwxMiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBs
OjppbnRyaW5zaWNDb250ZW50U2l6ZURpZENoYW5nZShjb25zdCBJbnRTaXplJiBpbnRyaW5zaWND
b250ZQogICAgIH0KICNlbmRpZgogCi0gICAgbV9pbXBsLT5zZXRJbnRyaW5zaWNDb250ZW50U2l6
ZShpbnRyaW5zaWNDb250ZW50U2l6ZSk7CisgICAgbV9pbXBsLnNldEludHJpbnNpY0NvbnRlbnRT
aXplKGludHJpbnNpY0NvbnRlbnRTaXplKTsKIH0KIAogYm9vbCBQYWdlQ2xpZW50SW1wbDo6ZXhl
Y3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxlY3RvclN0cmluZykK
IHsKLSAgICByZXR1cm4gbV9pbXBsLT5leGVjdXRlU2F2ZWRDb21tYW5kQnlTZWxlY3RvcihOU1Nl
bGVjdG9yRnJvbVN0cmluZyhzZWxlY3RvclN0cmluZykpOworICAgIHJldHVybiBtX2ltcGwuZXhl
Y3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3IoTlNTZWxlY3RvckZyb21TdHJpbmcoc2VsZWN0b3JT
dHJpbmcpKTsKIH0KIAogI2lmIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKQpAQCAtNjM1LDgg
KzYzMSw4IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnNob3dEaWN0YXRpb25BbHRlcm5hdGl2ZVVJ
KGNvbnN0IFdlYkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpCiB7CiAgICAgaWYgKCFpc1ZpZXdWaXNp
YmxlKCkgfHwgIWlzVmlld0luV2luZG93KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2FsdGVy
bmF0aXZlVGV4dFVJQ29udHJvbGxlci0+c2hvd0FsdGVybmF0aXZlcyhtX3drVmlldywgYm91bmRp
bmdCb3hPZkRpY3RhdGVkVGV4dCwgZGljdGF0aW9uQ29udGV4dCwgXihOU1N0cmluZyAqYWNjZXB0
ZWRBbHRlcm5hdGl2ZSkgewotICAgICAgICBtX2ltcGwtPmhhbmRsZUFjY2VwdGVkQWx0ZXJuYXRp
dmVUZXh0KGFjY2VwdGVkQWx0ZXJuYXRpdmUpOworICAgIG1fYWx0ZXJuYXRpdmVUZXh0VUlDb250
cm9sbGVyLT5zaG93QWx0ZXJuYXRpdmVzKG1fdmlldywgYm91bmRpbmdCb3hPZkRpY3RhdGVkVGV4
dCwgZGljdGF0aW9uQ29udGV4dCwgXihOU1N0cmluZyAqYWNjZXB0ZWRBbHRlcm5hdGl2ZSkgewor
ICAgICAgICBtX2ltcGwuaGFuZGxlQWNjZXB0ZWRBbHRlcm5hdGl2ZVRleHQoYWNjZXB0ZWRBbHRl
cm5hdGl2ZSk7CiAgICAgfSk7CiB9CiAKQEAgLTY1NywzNyArNjUzLDM3IEBAIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHlDbGllbnQmIFBhZ2VDbGllbnRJbXBsOjpmdWxsU2NyZWVuTWFuYWdlclBy
b3h5Q2xpZW50KCkKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6Y2xvc2VGdWxsU2NyZWVuTWFuYWdl
cigpCiB7Ci0gICAgbV9pbXBsLT5jbG9zZUZ1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKCk7Cisg
ICAgbV9pbXBsLmNsb3NlRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKTsKIH0KIAogYm9vbCBQ
YWdlQ2xpZW50SW1wbDo6aXNGdWxsU2NyZWVuKCkKIHsKLSAgICBpZiAoIW1faW1wbC0+aGFzRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKSkKKyAgICBpZiAoIW1faW1wbC5oYXNGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlcigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICByZXR1cm4g
bV9pbXBsLT5mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpLmlzRnVsbFNjcmVlbjsKKyAgICBy
ZXR1cm4gbV9pbXBsLmZ1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKCkuaXNGdWxsU2NyZWVuOwog
fQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjplbnRlckZ1bGxTY3JlZW4oKQogewotICAgIFttX2lt
cGwtPmZ1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKCkgZW50ZXJGdWxsU2NyZWVuOm5pbF07Cisg
ICAgW21faW1wbC5mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpIGVudGVyRnVsbFNjcmVlbjpu
aWxdOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpleGl0RnVsbFNjcmVlbigpCiB7Ci0gICAg
W21faW1wbC0+ZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKSBleGl0RnVsbFNjcmVlbl07Cisg
ICAgW21faW1wbC5mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpIGV4aXRGdWxsU2NyZWVuXTsK
IH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6YmVnYW5FbnRlckZ1bGxTY3JlZW4oY29uc3QgSW50
UmVjdCYgaW5pdGlhbEZyYW1lLCBjb25zdCBJbnRSZWN0JiBmaW5hbEZyYW1lKQogewotICAgIFtt
X2ltcGwtPmZ1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKCkgYmVnYW5FbnRlckZ1bGxTY3JlZW5X
aXRoSW5pdGlhbEZyYW1lOmluaXRpYWxGcmFtZSBmaW5hbEZyYW1lOmZpbmFsRnJhbWVdOwotICAg
IG1faW1wbC0+dXBkYXRlU3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcygpOworICAgIFttX2lt
cGwuZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKSBiZWdhbkVudGVyRnVsbFNjcmVlbldpdGhJ
bml0aWFsRnJhbWU6aW5pdGlhbEZyYW1lIGZpbmFsRnJhbWU6ZmluYWxGcmFtZV07CisgICAgbV9p
bXBsLnVwZGF0ZVN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMoKTsKIH0KIAogdm9pZCBQYWdl
Q2xpZW50SW1wbDo6YmVnYW5FeGl0RnVsbFNjcmVlbihjb25zdCBJbnRSZWN0JiBpbml0aWFsRnJh
bWUsIGNvbnN0IEludFJlY3QmIGZpbmFsRnJhbWUpCiB7Ci0gICAgW21faW1wbC0+ZnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIoKSBiZWdhbkV4aXRGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTpp
bml0aWFsRnJhbWUgZmluYWxGcmFtZTpmaW5hbEZyYW1lXTsKLSAgICBtX2ltcGwtPnVwZGF0ZVN1
cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMoKTsKKyAgICBbbV9pbXBsLmZ1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVyKCkgYmVnYW5FeGl0RnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6aW5pdGlh
bEZyYW1lIGZpbmFsRnJhbWU6ZmluYWxGcmFtZV07CisgICAgbV9pbXBsLnVwZGF0ZVN1cHBvcnRz
QXJiaXRyYXJ5TGF5b3V0TW9kZXMoKTsKIH0KIAogI2VuZGlmIC8vIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKQEAgLTc0OCwzMSArNzQ0LDMxIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFJlbW92
ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRG
aXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJhbWUoKQogewotICAgIGlmIChhdXRv
IGdlc3R1cmVDb250cm9sbGVyID0gbV9pbXBsLT5nZXN0dXJlQ29udHJvbGxlcigpKQorICAgIGlm
IChhdXRvIGdlc3R1cmVDb250cm9sbGVyID0gbV9pbXBsLmdlc3R1cmVDb250cm9sbGVyKCkpCiAg
ICAgICAgIGdlc3R1cmVDb250cm9sbGVyLT5kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRG
b3JNYWluRnJhbWUoKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZEZv
ck1haW5GcmFtZSgpCiB7Ci0gICAgaWYgKGF1dG8gZ2VzdHVyZUNvbnRyb2xsZXIgPSBtX2ltcGwt
Pmdlc3R1cmVDb250cm9sbGVyKCkpCisgICAgaWYgKGF1dG8gZ2VzdHVyZUNvbnRyb2xsZXIgPSBt
X2ltcGwuZ2VzdHVyZUNvbnRyb2xsZXIoKSkKICAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPmRp
ZEZpbmlzaExvYWRGb3JNYWluRnJhbWUoKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlk
RmFpbExvYWRGb3JNYWluRnJhbWUoKQogewotICAgIGlmIChhdXRvIGdlc3R1cmVDb250cm9sbGVy
ID0gbV9pbXBsLT5nZXN0dXJlQ29udHJvbGxlcigpKQorICAgIGlmIChhdXRvIGdlc3R1cmVDb250
cm9sbGVyID0gbV9pbXBsLmdlc3R1cmVDb250cm9sbGVyKCkpCiAgICAgICAgIGdlc3R1cmVDb250
cm9sbGVyLT5kaWRGYWlsTG9hZEZvck1haW5GcmFtZSgpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpkaWRTYW1lRG9jdW1lbnROYXZpZ2F0aW9uRm9yTWFpbkZyYW1lKFNhbWVEb2N1bWVudE5h
dmlnYXRpb25UeXBlIHR5cGUpCiB7Ci0gICAgaWYgKGF1dG8gZ2VzdHVyZUNvbnRyb2xsZXIgPSBt
X2ltcGwtPmdlc3R1cmVDb250cm9sbGVyKCkpCisgICAgaWYgKGF1dG8gZ2VzdHVyZUNvbnRyb2xs
ZXIgPSBtX2ltcGwuZ2VzdHVyZUNvbnRyb2xsZXIoKSkKICAgICAgICAgZ2VzdHVyZUNvbnRyb2xs
ZXItPmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25Gb3JNYWluRnJhbWUodHlwZSk7CiB9CiAKIHZv
aWQgUGFnZUNsaWVudEltcGw6OnJlbW92ZU5hdmlnYXRpb25HZXN0dXJlU25hcHNob3QoKQogewot
ICAgIGlmIChhdXRvIGdlc3R1cmVDb250cm9sbGVyID0gbV9pbXBsLT5nZXN0dXJlQ29udHJvbGxl
cigpKQorICAgIGlmIChhdXRvIGdlc3R1cmVDb250cm9sbGVyID0gbV9pbXBsLmdlc3R1cmVDb250
cm9sbGVyKCkpCiAgICAgICAgIGdlc3R1cmVDb250cm9sbGVyLT5yZW1vdmVTd2lwZVNuYXBzaG90
KCk7CiB9CiAKQEAgLTc4Myw3ICs3NzksNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDaGFu
Z2VCYWNrZ3JvdW5kQ29sb3IoKQogCiBDR1JlY3QgUGFnZUNsaWVudEltcGw6OmJvdW5kc09mTGF5
ZXJJbkxheWVyQmFja2VkV2luZG93Q29vcmRpbmF0ZXMoQ0FMYXllciAqbGF5ZXIpIGNvbnN0CiB7
Ci0gICAgQ0FMYXllciAqd2luZG93Q29udGVudExheWVyID0gc3RhdGljX2Nhc3Q8TlNWaWV3ICo+
KG1fd2tWaWV3LndpbmRvdy5jb250ZW50VmlldykubGF5ZXI7CisgICAgQ0FMYXllciAqd2luZG93
Q29udGVudExheWVyID0gc3RhdGljX2Nhc3Q8TlNWaWV3ICo+KG1fdmlldy53aW5kb3cuY29udGVu
dFZpZXcpLmxheWVyOwogICAgIEFTU0VSVCh3aW5kb3dDb250ZW50TGF5ZXIpOwogCiAgICAgcmV0
dXJuIFt3aW5kb3dDb250ZW50TGF5ZXIgY29udmVydFJlY3Q6bGF5ZXIuYm91bmRzIGZyb21MYXll
cjpsYXllcl07CkBAIC03OTIsNyArNzg4LDcgQEAgQ0dSZWN0IFBhZ2VDbGllbnRJbXBsOjpib3Vu
ZHNPZkxheWVySW5MYXllckJhY2tlZFdpbmRvd0Nvb3JkaW5hdGVzKENBTGF5ZXIgKmxheWUKIHZv
aWQgUGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0KGNvbnN0
IFdlYkhpdFRlc3RSZXN1bHREYXRhJiByZXN1bHQsIGJvb2wgY29udGVudFByZXZlbnRzRGVmYXVs
dCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKQogewogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgbV9pbXBsLT5kaWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9u
SGl0VGVzdChyZXN1bHQsIGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQsIHVzZXJEYXRhKTsKKyAgICBt
X2ltcGwuZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3QocmVzdWx0LCBjb250ZW50UHJl
dmVudHNEZWZhdWx0LCB1c2VyRGF0YSk7CiAjZW5kaWYKIH0KIApAQCAtODAyLDEyICs3OTgsMTIg
QEAgdm9pZCogUGFnZUNsaWVudEltcGw6OmltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xs
ZXJGb3JIaXRUZXN0UmVzdWx0KFJlZlB0cjwKICAgICBpZiAobV93ZWJWaWV3KQogICAgICAgICBy
ZXR1cm4gW21fd2ViVmlldyBfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhp
dFRlc3RSZXN1bHQ6d3JhcHBlcigqaGl0VGVzdFJlc3VsdCkgd2l0aFR5cGU6KF9XS0ltbWVkaWF0
ZUFjdGlvblR5cGUpdHlwZSB1c2VyRGF0YTooaWQpKHVzZXJEYXRhLmdldCgpKV07CiAjZW5kaWYK
LSAgICByZXR1cm4gbV9pbXBsLT5pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9y
SGl0VGVzdFJlc3VsdCh0b0FQSShoaXRUZXN0UmVzdWx0LmdldCgpKSwgdHlwZSwgdG9BUEkodXNl
ckRhdGEuZ2V0KCkpKTsKKyAgICByZXR1cm4gbV9pbXBsLmltbWVkaWF0ZUFjdGlvbkFuaW1hdGlv
bkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0KGhpdFRlc3RSZXN1bHQuZ2V0KCksIHR5cGUsIHVz
ZXJEYXRhLmdldCgpKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd1BsYXRmb3JtQ29u
dGV4dE1lbnUoTlNNZW51ICptZW51LCBJbnRQb2ludCBsb2NhdGlvbikKIHsKLSAgICBbbWVudSBw
b3BVcE1lbnVQb3NpdGlvbmluZ0l0ZW06bmlsIGF0TG9jYXRpb246bG9jYXRpb24gaW5WaWV3Om1f
d2tWaWV3XTsKKyAgICBbbWVudSBwb3BVcE1lbnVQb3NpdGlvbmluZ0l0ZW06bmlsIGF0TG9jYXRp
b246bG9jYXRpb24gaW5WaWV3Om1fdmlld107CiB9CiAKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExB
WUJBQ0tfVEFSR0VUKQpAQCAtODE5LDM1ICs4MTUsMzUgQEAgV2ViQ29yZTo6V2ViTWVkaWFTZXNz
aW9uTWFuYWdlciYgUGFnZUNsaWVudEltcGw6Om1lZGlhU2Vzc2lvbk1hbmFnZXIoKQogCiB2b2lk
IFBhZ2VDbGllbnRJbXBsOjpyZWZWaWV3KCkKIHsKLSAgICBDRlJldGFpbihtX3drVmlldyk7Cisg
ICAgQ0ZSZXRhaW4obV92aWV3KTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGVyZWZWaWV3
KCkKIHsKLSAgICBDRlJlbGVhc2UobV93a1ZpZXcpOworICAgIENGUmVsZWFzZShtX3ZpZXcpOwog
fQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzdGFydFdpbmRvd0RyYWcoKQogewogI2lmIF9fTUFD
X09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMTAwCi0gICAgbV9pbXBsLT5zdGFydFdp
bmRvd0RyYWcoKTsKKyAgICBtX2ltcGwuc3RhcnRXaW5kb3dEcmFnKCk7CiAjZW5kaWYKIH0KIAog
TlNXaW5kb3cgKlBhZ2VDbGllbnRJbXBsOjpwbGF0Zm9ybVdpbmRvdygpCiB7Ci0gICAgcmV0dXJu
IG1faW1wbC0+d2luZG93KCk7CisgICAgcmV0dXJuIG1faW1wbC53aW5kb3coKTsKIH0KIAogI2lm
IFdLX0FQSV9FTkFCTEVECiBOU1ZpZXcgKlBhZ2VDbGllbnRJbXBsOjppbnNwZWN0b3JBdHRhY2ht
ZW50VmlldygpCiB7Ci0gICAgcmV0dXJuIG1faW1wbC0+aW5zcGVjdG9yQXR0YWNobWVudFZpZXco
KTsKKyAgICByZXR1cm4gbV9pbXBsLmluc3BlY3RvckF0dGFjaG1lbnRWaWV3KCk7CiB9CiAKIF9X
S1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICpQYWdlQ2xpZW50SW1wbDo6cmVtb3RlT2JqZWN0UmVnaXN0
cnkoKQogewotICAgIHJldHVybiBtX2ltcGwtPnJlbW90ZU9iamVjdFJlZ2lzdHJ5KCk7CisgICAg
cmV0dXJuIG1faW1wbC5yZW1vdGVPYmplY3RSZWdpc3RyeSgpOwogfQogI2VuZGlmCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaAppbmRleCBj
ZjJmNmU4Li40NTc4NzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1dlYkNvbG9yUGlja2VyTWFjLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJDb2xvclBpY2tlck1hYy5oCkBAIC0zNyw3ICszNyw2IEBACiAjaWYgVVNFKEFQUEtJVCkKIAog
I2ltcG9ydCAiV2ViQ29sb3JQaWNrZXIuaCIKLSNpbXBvcnQgIldLVmlldy5oIgogI2ltcG9ydCA8
V2ViQ29yZS9JbnRSZWN0Lmg+CiAjaW5jbHVkZSA8d3RmL1JldGFpblB0ci5oPgogCkBAIC02MCw3
ICs1OSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogICAgIAogY2xhc3MgV2ViQ29sb3JQaWNrZXJN
YWMgOiBwdWJsaWMgV2ViQ29sb3JQaWNrZXIgewogcHVibGljOiAgICAgICAgCi0gICAgc3RhdGlj
IFJlZjxXZWJDb2xvclBpY2tlck1hYz4gY3JlYXRlKFdlYkNvbG9yUGlja2VyOjpDbGllbnQqLCBj
b25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBXS1ZpZXcqKTsK
KyAgICBzdGF0aWMgUmVmPFdlYkNvbG9yUGlja2VyTWFjPiBjcmVhdGUoV2ViQ29sb3JQaWNrZXI6
OkNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYs
IE5TVmlldyopOwogICAgIH5XZWJDb2xvclBpY2tlck1hYygpOwogCiAgICAgdmlydHVhbCB2b2lk
IGVuZFBpY2tlcigpIG92ZXJyaWRlOwpAQCAtNzAsNyArNjksNyBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBkaWRDaG9vc2VDb2xvcihjb25zdCBXZWJDb3JlOjpDb2xvciYpOwogCiBwcml2YXRlOgotICAg
IFdlYkNvbG9yUGlja2VyTWFjKFdlYkNvbG9yUGlja2VyOjpDbGllbnQqLCBjb25zdCBXZWJDb3Jl
OjpDb2xvciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBXS1ZpZXcqKTsKKyAgICBXZWJDb2xv
clBpY2tlck1hYyhXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3Im
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgTlNWaWV3Kik7CiAgICAgUmV0YWluUHRyPE5TT2Jq
ZWN0PFdLQ29sb3JQaWNrZXJVSU1hYz4gPiBtX2NvbG9yUGlja2VyVUk7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1tIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbQppbmRleCAy
NmFjNjlmLi44ZTAwMjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1dlYkNvbG9yUGlja2VyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
V2ViQ29sb3JQaWNrZXJNYWMubW0KQEAgLTU4LDcgKzU4LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdl
YktpdDsKICAgICBXZWJDb2xvclBpY2tlck1hYyAqX3BpY2tlcjsKICAgICBSZXRhaW5QdHI8TlNQ
b3BvdmVyQ29sb3JXZWxsPiBfcG9wb3ZlcldlbGw7CiB9Ci0tIChpZClpbml0V2l0aEZyYW1lOihj
b25zdCBXZWJDb3JlOjpJbnRSZWN0ICYpcmVjdCBpblZpZXc6KFdLVmlldyAqKXZpZXc7CistIChp
ZClpbml0V2l0aEZyYW1lOihjb25zdCBXZWJDb3JlOjpJbnRSZWN0ICYpcmVjdCBpblZpZXc6KE5T
VmlldyAqKXZpZXc7CiBAZW5kCiAKICNlbHNlCkBAIC03NSw3ICs3NSw3IEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1SZWY8V2ViQ29sb3JQaWNrZXJN
YWM+IFdlYkNvbG9yUGlja2VyTWFjOjpjcmVhdGUoV2ViQ29sb3JQaWNrZXI6OkNsaWVudCogY2xp
ZW50LCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBXZWJDb3JlOjpJ
bnRSZWN0JiByZWN0LCBXS1ZpZXcqIHZpZXcpCitSZWY8V2ViQ29sb3JQaWNrZXJNYWM+IFdlYkNv
bG9yUGlja2VyTWFjOjpjcmVhdGUoV2ViQ29sb3JQaWNrZXI6OkNsaWVudCogY2xpZW50LCBjb25z
dCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiBy
ZWN0LCBOU1ZpZXcqIHZpZXcpCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViQ29sb3JQ
aWNrZXJNYWMoY2xpZW50LCBpbml0aWFsQ29sb3IsIHJlY3QsIHZpZXcpKTsKIH0KQEAgLTg2LDcg
Kzg2LDcgQEAgV2ViQ29sb3JQaWNrZXJNYWM6On5XZWJDb2xvclBpY2tlck1hYygpCiAgICAgICAg
IGVuZFBpY2tlcigpOwogfQogCi1XZWJDb2xvclBpY2tlck1hYzo6V2ViQ29sb3JQaWNrZXJNYWMo
V2ViQ29sb3JQaWNrZXI6OkNsaWVudCogY2xpZW50LCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5p
dGlhbENvbG9yLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiByZWN0LCBXS1ZpZXcqIHZpZXcpCitX
ZWJDb2xvclBpY2tlck1hYzo6V2ViQ29sb3JQaWNrZXJNYWMoV2ViQ29sb3JQaWNrZXI6OkNsaWVu
dCogY2xpZW50LCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCBjb25zdCBXZWJD
b3JlOjpJbnRSZWN0JiByZWN0LCBOU1ZpZXcqIHZpZXcpCiAgICAgOiBXZWJDb2xvclBpY2tlcihj
bGllbnQpCiB7CiAjaWYgRU5BQkxFKElOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikKQEAgLTEzNiw3
ICsxMzYsNyBAQCB2b2lkIFdlYkNvbG9yUGlja2VyTWFjOjpzaG93Q29sb3JQaWNrZXIoY29uc3Qg
V2ViQ29yZTo6Q29sb3ImIGNvbG9yKQogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SX1BPUE9W
RVIpCiAKIEBpbXBsZW1lbnRhdGlvbiBXS0NvbG9yUG9wb3Zlck1hYwotLSAoaWQpaW5pdFdpdGhG
cmFtZTooY29uc3QgV2ViQ29yZTo6SW50UmVjdCAmKXJlY3QgaW5WaWV3OihXS1ZpZXcgKil2aWV3
CistIChpZClpbml0V2l0aEZyYW1lOihjb25zdCBXZWJDb3JlOjpJbnRSZWN0ICYpcmVjdCBpblZp
ZXc6KE5TVmlldyAqKXZpZXcKIHsKICAgICBpZighKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQogICAg
ICAgICByZXR1cm4gc2VsZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmgKaW5kZXggMWIyYjA3Ni4uYmRkMTdlZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFj
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5
TWFjLmgKQEAgLTMyLDggKzMyLDggQEAKICNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIE9C
SkNfQ0xBU1MgTlNQb3BVcEJ1dHRvbkNlbGw7CitPQkpDX0NMQVNTIE5TVmlldzsKIE9CSkNfQ0xB
U1MgTlNXaW5kb3c7Ci1PQkpDX0NMQVNTIFdLVmlldzsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAK
QEAgLTQ0LDcgKzQ0LDcgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBXZWJDb250ZXh0
TWVudVByb3h5TWFjIDogcHVibGljIFdlYkNvbnRleHRNZW51UHJveHkgewogcHVibGljOgotICAg
IFdlYkNvbnRleHRNZW51UHJveHlNYWMoV0tWaWV3KiwgV2ViUGFnZVByb3h5JiwgY29uc3QgQ29u
dGV4dE1lbnVDb250ZXh0RGF0YSYsIGNvbnN0IFVzZXJEYXRhJik7CisgICAgV2ViQ29udGV4dE1l
bnVQcm94eU1hYyhOU1ZpZXcqLCBXZWJQYWdlUHJveHkmLCBjb25zdCBDb250ZXh0TWVudUNvbnRl
eHREYXRhJiwgY29uc3QgVXNlckRhdGEmKTsKICAgICB+V2ViQ29udGV4dE1lbnVQcm94eU1hYygp
OwogCiAgICAgdm9pZCBjb250ZXh0TWVudUl0ZW1TZWxlY3RlZChjb25zdCBXZWJDb250ZXh0TWVu
dUl0ZW1EYXRhJik7CkBAIC03MSw3ICs3MSw3IEBAIHByaXZhdGU6CiAKICAgICBSZXRhaW5QdHI8
TlNNZW51PiBtX21lbnU7CiAKLSAgICBXS1ZpZXcqIG1fd2ViVmlldzsKKyAgICBOU1ZpZXcqIG1f
d2ViVmlldzsKICAgICBXZWJQYWdlUHJveHkmIG1fcGFnZTsKIH07CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQppbmRl
eCBlMmMwMWQ3Li41MjBlZTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCkBAIC0zNiw3ICszNiw2IEBACiAjaW1w
b3J0ICJTaGFyZWFibGVCaXRtYXAuaCIKICNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgogI2lt
cG9ydCAiV0tTaGFyaW5nU2VydmljZVBpY2tlckRlbGVnYXRlLmgiCi0jaW1wb3J0ICJXS1ZpZXcu
aCIKICNpbXBvcnQgIldlYkNvbnRleHRNZW51SXRlbS5oIgogI2ltcG9ydCAiV2ViQ29udGV4dE1l
bnVJdGVtRGF0YS5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCkBAIC0xNTIsNyArMTUx
LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1X
ZWJDb250ZXh0TWVudVByb3h5TWFjOjpXZWJDb250ZXh0TWVudVByb3h5TWFjKFdLVmlldyogd2Vi
VmlldywgV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBDb250ZXh0TWVudUNvbnRleHREYXRhJiBj
b250ZXh0LCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCitXZWJDb250ZXh0TWVudVByb3h5TWFj
OjpXZWJDb250ZXh0TWVudVByb3h5TWFjKE5TVmlldyogd2ViVmlldywgV2ViUGFnZVByb3h5JiBw
YWdlLCBjb25zdCBDb250ZXh0TWVudUNvbnRleHREYXRhJiBjb250ZXh0LCBjb25zdCBVc2VyRGF0
YSYgdXNlckRhdGEpCiAgICAgOiBXZWJDb250ZXh0TWVudVByb3h5KGNvbnRleHQsIHVzZXJEYXRh
KQogICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCiAgICAgLCBtX3BhZ2UocGFnZSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMuaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMuaAppbmRl
eCA5ZmRlOGUzOC4uZmIxZWNjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMuaApAQCAtNDAsNyArNDAsNyBAQCBjbGFzcyBXZWJQ
YWdlUHJveHk7CiAKIGNsYXNzIFdlYlBvcHVwTWVudVByb3h5TWFjIDogcHVibGljIFdlYlBvcHVw
TWVudVByb3h5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYlBvcHVwTWVudVByb3h5TWFj
PiBjcmVhdGUoV0tWaWV3ICp3ZWJWaWV3LCBXZWJQb3B1cE1lbnVQcm94eTo6Q2xpZW50JiBjbGll
bnQpCisgICAgc3RhdGljIFJlZjxXZWJQb3B1cE1lbnVQcm94eU1hYz4gY3JlYXRlKE5TVmlldyAq
d2ViVmlldywgV2ViUG9wdXBNZW51UHJveHk6OkNsaWVudCYgY2xpZW50KQogICAgIHsKICAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViUG9wdXBNZW51UHJveHlNYWMod2ViVmlldywgY2xp
ZW50KSk7CiAgICAgfQpAQCAtNTEsMTIgKzUxLDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgY2FuY2VsVHJhY2tpbmcoKSBvdmVycmlkZTsKIAogcHJpdmF0ZToKLSAgICBXZWJQb3B1cE1l
bnVQcm94eU1hYyhXS1ZpZXcgKiwgV2ViUG9wdXBNZW51UHJveHk6OkNsaWVudCYpOworICAgIFdl
YlBvcHVwTWVudVByb3h5TWFjKE5TVmlldyAqLCBXZWJQb3B1cE1lbnVQcm94eTo6Q2xpZW50Jik7
CiAKICAgICB2b2lkIHBvcHVsYXRlKGNvbnN0IFZlY3RvcjxXZWJQb3B1cEl0ZW0+JiwgTlNGb250
ICosIFdlYkNvcmU6OlRleHREaXJlY3Rpb24pOwogCiAgICAgUmV0YWluUHRyPE5TUG9wVXBCdXR0
b25DZWxsPiBtX3BvcHVwOwotICAgIFdLVmlldyAqbV93ZWJWaWV3OworICAgIE5TVmlldyAqbV93
ZWJWaWV3OwogICAgIGJvb2wgbV93YXNDYW5jZWxlZDsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCmluZGV4IDQ4ZDQ5
MjYuLmQzMzNjZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2Vi
UG9wdXBNZW51UHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJQb3B1cE1lbnVQcm94eU1hYy5tbQpAQCAtMzIsNyArMzIsNiBAQAogI2ltcG9ydCAiUGFnZUNs
aWVudEltcGwuaCIKICNpbXBvcnQgIlBsYXRmb3JtUG9wdXBNZW51RGF0YS5oIgogI2ltcG9ydCAi
U3RyaW5nVXRpbGl0aWVzLmgiCi0jaW1wb3J0ICJXS1ZpZXcuaCIKICNpbXBvcnQgIldlYlBvcHVw
SXRlbS5oIgogI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNlLmg+CiAKQEAgLTQwLDcgKzM5
LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1X
ZWJQb3B1cE1lbnVQcm94eU1hYzo6V2ViUG9wdXBNZW51UHJveHlNYWMoV0tWaWV3ICp3ZWJWaWV3
LCBXZWJQb3B1cE1lbnVQcm94eTo6Q2xpZW50JiBjbGllbnQpCitXZWJQb3B1cE1lbnVQcm94eU1h
Yzo6V2ViUG9wdXBNZW51UHJveHlNYWMoTlNWaWV3ICp3ZWJWaWV3LCBXZWJQb3B1cE1lbnVQcm94
eTo6Q2xpZW50JiBjbGllbnQpCiAgICAgOiBXZWJQb3B1cE1lbnVQcm94eShjbGllbnQpCiAgICAg
LCBtX3dlYlZpZXcod2ViVmlldykKICAgICAsIG1fd2FzQ2FuY2VsZWQoZmFsc2UpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264420</attachid>
            <date>2015-10-30 14:41:01 -0700</date>
            <delta_ts>2015-10-30 15:28:25 -0700</delta_ts>
            <desc>Part 17 - move WebPageProxy and PageClientImpl</desc>
            <filename>17.diff</filename>
            <type>text/plain</type>
            <size>140067</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzMjFkMWViLi5mOTNiMjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjY3
IEBACisyMDE1LTEwLTMwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIFdLVmlldyBiZWluZyBpbnNpZGUgV0tXZWJWaWV3IGxlYWRzIHRvIHdlaXJkIEFQ
SSBpc3N1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1MDE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgaW5pdFdp
dGhGcmFtZTpwcm9jZXNzR3JvdXA6YnJvd3NpbmdDb250ZXh0R3JvdXA6cmVsYXRlZFRvVmlldzpd
KToKKyAgICAgICAgKC1bV0tWaWV3IHByZXBhcmVDb250ZW50SW5SZWN0Ol0pOgorICAgICAgICAo
LVtXS1ZpZXcgaW5pdFdpdGhGcmFtZTpwcm9jZXNzUG9vbDpjb25maWd1cmF0aW9uOndlYlZpZXc6
XSk6CisgICAgICAgICgtW1dLVmlldyBwYWdlUmVmXSk6CisgICAgICAgICgtW1dLVmlldyBfd2Vi
X2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0SW50ZXJu
YWw6d2l0aFR5cGU6dXNlckRhdGE6XSk6CisgICAgICAgICgtW1dLVmlldyBkZWFsbG9jXSk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW06CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIGlu
aXRXaXRoVmlldzppbXBsOl0pOgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZl
ciBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF9hY3Rp
dmVTcGFjZURpZENoYW5nZTpdKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZp
ZXdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6On5XZWJWaWV3SW1wbCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXREcmF3c0JhY2tncm91bmQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZHJhd3NCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OnNldERyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmlzT3BhcXVlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmFjY2VwdHNGaXJzdE1vdXNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
OnJlc2lnbkZpcnN0UmVzcG9uZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZp
ZXdXaWxsU3RhcnRMaXZlUmVzaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZp
ZXdEaWRFbmRMaXZlUmVzaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0
ZVdpbmRvd0FuZFZpZXdGcmFtZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0
Rml4ZWRMYXlvdXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmZpeGVkTGF5
b3V0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppc1VzaW5nVUlTaWRlQ29t
cG9zaXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0RHJhd2luZ0FyZWFT
aXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmZvcmNlQXN5bmNEcmF3aW5nQXJl
YVNpemVVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2FpdEZvckFzeW5j
RHJhd2luZ0FyZWFTaXplVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVw
ZGF0ZUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRyYXdSZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnByZXBhcmVDb250ZW50SW5SZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZVZpZXdFeHBvc2VkUmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWluaW11bVNpemVGb3JBdXRvTGF5b3V0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFNob3VsZEV4cGFuZFRvVmlld0hlaWdo
dEZvckF1dG9MYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2hvdWxkRXhw
YW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpzZXRJbnRyaW5zaWNDb250ZW50U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpzZXRWaWV3U2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dmlld1Nj
YWxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnN1cHBvcnRzQXJiaXRyYXJ5TGF5
b3V0TW9kZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0T3ZlcnJpZGVEZXZp
Y2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRP
cmRlck9mZlNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRP
cmRlck9uU2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OndpbmRvd0RpZEJl
Y29tZUtleSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRSZXNpZ25L
ZXkpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkTWluaWF0dXJpemUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkRGVtaW5pYXR1cml6ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJv
cGVydGllcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VT
Y3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkQ2hhbmdlTGF5
ZXJIb3N0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OndpbmRvd0RpZENoYW5n
ZU9jY2x1c2lvblN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNob3VsZERl
bGF5V2luZG93T3JkZXJpbmdGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojp3aW5kb3dSZXNpemVNb3VzZUxvY2F0aW9uSXNJblZpc2libGVTY3JvbGxlclRodW1iKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZpZXdEaWRNb3ZlVG9XaW5kb3cpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dmlld0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZpZXdEaWRIaWRlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnZpZXdEaWRVbmhpZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6YWN0aXZlU3BhY2VEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6cG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRVbmRlcmxheUNvbG9yKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnVuZGVybGF5Q29sb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6cGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNldE92ZXJsYXlTY3JvbGxiYXJTdHlsZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpvdmVybGF5U2Nyb2xsYmFyU3R5bGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6ZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjplbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzU3luYyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwcmVwYXJlRm9yTW92ZVRvV2luZG93KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZVNlY3VyZUlucHV0U3RhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0
YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZVBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRLZXlEb3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZUFj
Y2VwdGVkQWx0ZXJuYXRpdmVUZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBy
ZXNzdXJlQ2hhbmdlV2l0aEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omlz
RWRpdGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZXhlY3V0ZUVkaXRDb21t
YW5kRm9yU2VsZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d3JpdGVTZWxl
Y3Rpb25Ub1Bhc3RlYm9hcmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cmVhZFNl
bGVjdGlvbkZyb21QYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZh
bGlkUmVxdWVzdG9yRm9yU2VuZEFuZFJldHVyblR5cGVzKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6dXBkYXRlRm9udFBhbmVsSWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6Y2hhbmdlRm9udEZyb21Gb250UGFuZWwpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6dmFsaWRhdGVVc2VySW50ZXJmYWNlSXRlbSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpzdGFydFNwZWFraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OnNob3dHdWVzc1BhbmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNo
ZWNrU3BlbGxpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y2hhbmdlU3BlbGxp
bmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dG9nZ2xlQ29udGludW91c1NwZWxs
Q2hlY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0R3JhbW1hckNoZWNr
aW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp0b2dnbGVHcmFtbWFy
Q2hlY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dG9nZ2xlQXV0b21hdGlj
U3BlbGxpbmdDb3JyZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRvZ2ds
ZVNtYXJ0SW5zZXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEF1
dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjp0b2dnbGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpzZXRBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp0b2dnbGVBdXRvbWF0aWNEYXNoU3Vic3RpdHV0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEF1dG9tYXRpY0xpbmtEZXRl
Y3Rpb25FbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRvZ2dsZUF1dG9t
YXRpY0xpbmtEZXRlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0QXV0
b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjp0b2dnbGVBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6dXBwZXJjYXNlV29yZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojpsb3dlcmNhc2VXb3JkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNhcGl0YWxp
emVXb3JkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnByZWZlcmVuY2VzRGlkQ2hh
bmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRp
dmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6cXVpY2tMb29rV2l0aEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omlt
bWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRpZENoYW5nZUNvbnRlbnRTaXplKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnNldElnbm9yZXNOb25XaGVlbEV2ZW50cyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVSZW1vdGVBY2Nlc3NpYmlsaXR5UmVnaXN0cmF0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFjY2Vzc2liaWxpdHlSZWdpc3Rl
clVJUHJvY2Vzc1Rva2Vucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzdHJpbmdG
b3JUb29sVGlwKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEluc3BlY3RvckF0
dGFjaG1lbnRWaWV3KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlbW90ZU9iamVj
dFJlZ2lzdHJ5KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZHJhZ2dlZEltYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRyYWdnaW5nRW50ZXJlZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkcmFnZ2luZ1VwZGF0ZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6ZHJhZ2dpbmdFeGl0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6cGVyZm9ybURyYWdPcGVyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6dGFrZVZpZXdTbmFwc2hvdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpz
YXZlQmFja0ZvcndhcmRTbmFwc2hvdEZvckN1cnJlbnRJdGVtKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNhdmVCYWNrRm9yd2FyZFNuYXBzaG90Rm9ySXRlbSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRBbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJl
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRNYWduaWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Om1hZ25pZmljYXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6c2Nyb2xsV2hlZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6c3dpcGVXaXRoRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWFn
bmlmeVdpdGhFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyb3RhdGVXaXRo
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZG9Db21tYW5kQnlTZWxlY3Rv
cik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppbnNlcnRUZXh0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbGVjdGVkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXIp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWFya2VkUmFuZ2VXaXRoQ29tcGxldGlv
bkhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGFzTWFya2VkVGV4dFdp
dGhDb21wbGV0aW9uSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphdHRy
aWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpjaGFyYWN0ZXJJbmRleEZvclBvaW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmlucHV0Q29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1
bm1hcmtUZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldE1hcmtlZFRleHQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVxdWl2YWxlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6a2V5VXApOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6a2V5RG93bik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpmbGFn
c0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZXhlY3V0ZVNhdmVkS2V5
cHJlc3NDb21tYW5kcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZWxlY3RlZFJh
bmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omhhc01hcmtlZFRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWFya2VkUmFuZ2UpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6c2V0Q29udGVudFByZXBhcmF0aW9uUmVjdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9s
bGVyRm9ySGl0VGVzdFJlc3VsdEZyb21WaWV3T25seSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpkZXN0cm95UmVtb3RlT2JqZWN0UmVnaXN0cnkpOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpzY3JvbGxQaW5uaW5nQmVoYXZpb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6Om92ZXJsYXlTY3JvbGxiYXJTdHlsZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0
ZVdlYlBhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6
UGFnZUNsaWVudEltcGwpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRl
RHJhd2luZ0FyZWFQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp2aWV3
U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjphY3RpdmVWaWV3KToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmFjdGl2ZVdpbmRvdyk6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjppc1ZpZXdGb2N1c2VkKToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6Om1ha2VGaXJzdFJlc3BvbmRlcik6CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VDbGllbnRJbXBsOjppc1ZpZXdWaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OmNvbG9yU3BhY2UpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cHJv
Y2Vzc0RpZEV4aXQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cGFnZUNsb3Nl
ZCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRSZWxhdW5jaFByb2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cHJlZmVyZW5jZXNEaWRDaGFuZ2Up
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6dG9vbFRpcENoYW5nZWQpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VDb250ZW50U2l6ZSk6
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzZXRDdXJzb3IpOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVnaXN0ZXJFZGl0Q29tbWFuZCk6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZWdpc3Rlckluc2VydGlvblVuZG9Hcm91cGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjbGVhckFsbEVkaXRDb21tYW5kcyk6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjYW5VbmRvUmVkbyk6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpleGVjdXRlVW5kb1JlZG8pOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnNldFByb21pc2VkRGF0YUZvckltYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudEltcGw6OnNldFByb21pc2VkRGF0YUZvckF0dGFjaG1lbnQpOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50SW1wbDo6dXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXNldFNlY3VyZUlucHV0U3RhdGUpOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6bm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRD
b21wb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjb252ZXJ0VG9E
ZXZpY2VTcGFjZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjb252ZXJ0VG9V
c2VyU3BhY2UpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2NyZWVuVG9Sb290
Vmlldyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyb290Vmlld1RvU2NyZWVu
KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBNZW51UHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29udGV4dE1lbnVQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjcmVhdGVDb2xvclBpY2tlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcik6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jl
c3MpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6YWNjZXNzaWJpbGl0eVdlYlBy
b2Nlc3NUb2tlblJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmVu
dGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdS
b290TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6YWNjZWxlcmF0ZWRD
b21wb3NpdGluZ1Jvb3RMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp0
YWtlVmlld1NuYXBzaG90KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNlbGVj
dGlvbkRpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp3aGVlbEV2
ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjpnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0
YXRlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1EaWN0aW9u
YXJ5TG9va3VwKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpc21pc3NDb250
ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3MpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6c2hvd0NvcnJlY3Rpb25QYW5lbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpyZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6aW50cmluc2ljQ29udGVudFNpemVEaWRDaGFuZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2Vs
ZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2hvd0RpY3RhdGlvbkFs
dGVybmF0aXZlVUkpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y2xvc2VGdWxs
U2NyZWVuTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjppc0Z1bGxT
Y3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZW50ZXJGdWxsU2NyZWVu
KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmV4aXRGdWxsU2NyZWVuKToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmJlZ2FuRW50ZXJGdWxsU2NyZWVuKToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmJlZ2FuRXhpdEZ1bGxTY3JlZW4pOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0Rm9yTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZp
bmlzaExvYWRGb3JNYWluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6
ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZSk6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnRJbXBsOjpyZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmJvdW5kc09mTGF5ZXJJbkxheWVyQmFja2Vk
V2luZG93Q29vcmRpbmF0ZXMpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlk
UGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3QpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6aW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1
bHQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2hvd1BsYXRmb3JtQ29udGV4
dE1lbnUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVmVmlldyk6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkZXJlZlZpZXcpOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6c3RhcnRXaW5kb3dEcmFnKToKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudEltcGw6OnBsYXRmb3JtV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6Omluc3BlY3RvckF0dGFjaG1lbnRWaWV3KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnJlbW90ZU9iamVjdFJlZ2lzdHJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1dlYkNvbG9yUGlja2VyTWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb2xvclBp
Y2tlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJNYWM6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyTWFjOjpXZWJDb2xvclBpY2tlck1hYyk6
CisgICAgICAgICgtW1dLQ29sb3JQb3BvdmVyTWFjIGluaXRXaXRoRnJhbWU6aW5WaWV3Ol0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6V2ViQ29udGV4dE1lbnVQcm94eU1hYyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1
cE1lbnVQcm94eU1hYzo6V2ViUG9wdXBNZW51UHJveHlNYWMpOgorICAgICAgICBNb3ZlIG93bmVy
c2hpcCBvZiBXZWJQYWdlUHJveHkgYW5kIFBhZ2VDbGllbnRJbXBsIHRvIFdlYlZpZXdJbXBsLgor
CiAyMDE1LTEwLTMwICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBB
bm90aGVyIHNwZWN1bGF0aXZlIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbQppbmRleCAxN2U5YmYxLi5hNTU4NjNmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0
IDxBcHBLaXQvTlNBdHRyaWJ1dGVkU3RyaW5nLmg+CiAjZW5kaWYKIAorI2ltcG9ydCAiQVBJSGl0
VGVzdFJlc3VsdC5oIgogI2ltcG9ydCAiQVBJTGVnYWN5Q29udGV4dEhpc3RvcnlDbGllbnQuaCIK
ICNpbXBvcnQgIkFQSVBhZ2VDb25maWd1cmF0aW9uLmgiCiAjaW1wb3J0ICJBcHBLaXRTUEkuaCIK
QEAgLTExMSwxOCArMTEyLDggQEAKIHVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAotI2lmIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKLUBpbnRl
cmZhY2UgTlNUZXh0SW5wdXRDb250ZXh0IChXS05TVGV4dElucHV0Q29udGV4dERldGFpbHMpCi0t
ICh2b2lkKWhhbmRsZUV2ZW50OihOU0V2ZW50ICopZXZlbnQgY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQoXikoQk9PTCBoYW5kbGVkKSljb21wbGV0aW9uSGFuZGxlcjsKLS0gKHZvaWQpaGFuZGxlRXZl
bnRCeUlucHV0TWV0aG9kOihOU0V2ZW50ICopZXZlbnQgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQo
XikoQk9PTCBoYW5kbGVkKSljb21wbGV0aW9uSGFuZGxlcjsKLS0gKEJPT0wpaGFuZGxlRXZlbnRC
eUtleWJvYXJkTGF5b3V0OihOU0V2ZW50ICopZXZlbnQ7Ci1AZW5kCi0jZW5kaWYKLQogQGludGVy
ZmFjZSBXS1ZpZXdEYXRhIDogTlNPYmplY3QgewogQHB1YmxpYwotICAgIHN0ZDo6dW5pcXVlX3B0
cjxQYWdlQ2xpZW50SW1wbD4gX3BhZ2VDbGllbnQ7Ci0gICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4g
X3BhZ2U7CiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYlZpZXdJbXBsPiBfaW1wbDsKIH0KIApAQCAt
MTQ1LDI5ICsxMzYsMTggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIC0gKGlkKWluaXRX
aXRoRnJhbWU6KE5TUmVjdClmcmFtZSBwcm9jZXNzR3JvdXA6KFdLUHJvY2Vzc0dyb3VwICopcHJv
Y2Vzc0dyb3VwIGJyb3dzaW5nQ29udGV4dEdyb3VwOihXS0Jyb3dzaW5nQ29udGV4dEdyb3VwICop
YnJvd3NpbmdDb250ZXh0R3JvdXAgcmVsYXRlZFRvVmlldzooV0tWaWV3ICopcmVsYXRlZFZpZXcK
IHsKLSAgICByZXR1cm4gW3NlbGYgaW5pdFdpdGhGcmFtZTpmcmFtZSBjb250ZXh0UmVmOnByb2Nl
c3NHcm91cC5fY29udGV4dFJlZiBwYWdlR3JvdXBSZWY6YnJvd3NpbmdDb250ZXh0R3JvdXAuX3Bh
Z2VHcm91cFJlZiByZWxhdGVkVG9QYWdlOnJlbGF0ZWRWaWV3ID8gdG9BUEkocmVsYXRlZFZpZXct
Pl9kYXRhLT5fcGFnZS5nZXQoKSkgOiBuaWxdOworICAgIHJldHVybiBbc2VsZiBpbml0V2l0aEZy
YW1lOmZyYW1lIGNvbnRleHRSZWY6cHJvY2Vzc0dyb3VwLl9jb250ZXh0UmVmIHBhZ2VHcm91cFJl
Zjpicm93c2luZ0NvbnRleHRHcm91cC5fcGFnZUdyb3VwUmVmIHJlbGF0ZWRUb1BhZ2U6cmVsYXRl
ZFZpZXcgPyByZWxhdGVkVmlldy5wYWdlUmVmIDogbmlsXTsKIH0KIAogI2VuZGlmIC8vIFdLX0FQ
SV9FTkFCTEVECiAKIC0gKHZvaWQpZGVhbGxvYwogewotI2lmIFdLX0FQSV9FTkFCTEVECi0gICAg
X2RhdGEtPl9pbXBsLT5kZXN0cm95UmVtb3RlT2JqZWN0UmVnaXN0cnkoKTsKLSNlbmRpZgotCi0g
ICAgX2RhdGEtPl9wYWdlLT5jbG9zZSgpOwotCiAgICAgX2RhdGEtPl9pbXBsID0gbnVsbHB0cjsK
IAogICAgIFtfZGF0YSByZWxlYXNlXTsKICAgICBfZGF0YSA9IG5pbDsKIAotICAgIE5TTm90aWZp
Y2F0aW9uQ2VudGVyKiB3b3Jrc3BhY2VOb3RpZmljYXRpb25DZW50ZXIgPSBbW05TV29ya3NwYWNl
IHNoYXJlZFdvcmtzcGFjZV0gbm90aWZpY2F0aW9uQ2VudGVyXTsKLSAgICBbd29ya3NwYWNlTm90
aWZpY2F0aW9uQ2VudGVyIHJlbW92ZU9ic2VydmVyOnNlbGYgbmFtZTpOU1dvcmtzcGFjZUFjdGl2
ZVNwYWNlRGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwotCi0gICAgV2ViUHJvY2Vz
c1Bvb2w6OnN0YXRpc3RpY3MoKS53a1ZpZXdDb3VudC0tOwotCiAgICAgW3N1cGVyIGRlYWxsb2Nd
OwogfQogCkBAIC0yMzUsOCArMjE1LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIC0g
KHZvaWQpcHJlcGFyZUNvbnRlbnRJblJlY3Q6KE5TUmVjdClyZWN0CiB7Ci0gICAgX2RhdGEtPl9p
bXBsLT5zZXRDb250ZW50UHJlcGFyYXRpb25SZWN0KE5TUmVjdFRvQ0dSZWN0KHJlY3QpKTsKLSAg
ICBfZGF0YS0+X2ltcGwtPnVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgpOworICAgIF9kYXRhLT5faW1w
bC0+cHJlcGFyZUNvbnRlbnRJblJlY3QoTlNSZWN0VG9DR1JlY3QocmVjdCkpOwogfQogCiAtICh2
b2lkKXNldEZyYW1lU2l6ZTooTlNTaXplKXNpemUKQEAgLTEwMDcsMzMgKzk4NiwxMCBAQCBTb21l
IG90aGVyIGVkaXRpbmctcmVsYXRlZCBtZXRob2RzIHN0aWxsIHVuaW1wbGVtZW50ZWQ6CiAgICAg
aWYgKCFzZWxmKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgW05TQXBwIHJlZ2lzdGVyU2Vy
dmljZXNNZW51U2VuZFR5cGVzOlBhc3RlYm9hcmRUeXBlczo6Zm9yU2VsZWN0aW9uKCkgcmV0dXJu
VHlwZXM6UGFzdGVib2FyZFR5cGVzOjpmb3JFZGl0aW5nKCldOwotCiAgICAgSW5pdGlhbGl6ZVdl
YktpdDIoKTsKIAogICAgIF9kYXRhID0gW1tXS1ZpZXdEYXRhIGFsbG9jXSBpbml0XTsKLQotICAg
IF9kYXRhLT5fcGFnZUNsaWVudCA9IHN0ZDo6bWFrZV91bmlxdWU8UGFnZUNsaWVudEltcGw+KHNl
bGYsIHdlYlZpZXcpOwotICAgIF9kYXRhLT5fcGFnZSA9IHByb2Nlc3NQb29sLmNyZWF0ZVdlYlBh
Z2UoKl9kYXRhLT5fcGFnZUNsaWVudCwgV1RGOjptb3ZlKGNvbmZpZ3VyYXRpb24pKTsKLQotICAg
IF9kYXRhLT5faW1wbCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViVmlld0ltcGw+KHNlbGYsICpfZGF0
YS0+X3BhZ2UsICpfZGF0YS0+X3BhZ2VDbGllbnQpOwotICAgIHN0YXRpY19jYXN0PFBhZ2VDbGll
bnRJbXBsJj4oKl9kYXRhLT5fcGFnZUNsaWVudCkuc2V0SW1wbCgqX2RhdGEtPl9pbXBsKTsKLQot
ICAgIF9kYXRhLT5fcGFnZS0+c2V0QWRkc1Zpc2l0ZWRMaW5rcyhwcm9jZXNzUG9vbC5oaXN0b3J5
Q2xpZW50KCkuYWRkc1Zpc2l0ZWRMaW5rcygpKTsKLQotICAgIF9kYXRhLT5fcGFnZS0+aW5pdGlh
bGl6ZVdlYlBhZ2UoKTsKLQotICAgIF9kYXRhLT5faW1wbC0+cmVnaXN0ZXJEcmFnZ2VkVHlwZXMo
KTsKLQotICAgIHNlbGYud2FudHNMYXllciA9IFlFUzsKLQotICAgIC8vIEV4cGxpY2l0bHkgc2V0
IHRoZSBsYXllciBjb250ZW50cyBwbGFjZW1lbnQgc28gQXBwS2l0IHdpbGwgbWFrZSBzdXJlIHRo
YXQgb3VyIGxheWVyIGhhcyBtYXNrc1RvQm91bmRzIHNldCB0byBZRVMuCi0gICAgc2VsZi5sYXll
ckNvbnRlbnRzUGxhY2VtZW50ID0gTlNWaWV3TGF5ZXJDb250ZW50c1BsYWNlbWVudFRvcExlZnQ7
Ci0KLSAgICBXZWJQcm9jZXNzUG9vbDo6c3RhdGlzdGljcygpLndrVmlld0NvdW50Kys7Ci0KLSAg
ICBOU05vdGlmaWNhdGlvbkNlbnRlciogd29ya3NwYWNlTm90aWZpY2F0aW9uQ2VudGVyID0gW1tO
U1dvcmtzcGFjZSBzaGFyZWRXb3Jrc3BhY2VdIG5vdGlmaWNhdGlvbkNlbnRlcl07Ci0gICAgW3dv
cmtzcGFjZU5vdGlmaWNhdGlvbkNlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxl
Y3RvcihfYWN0aXZlU3BhY2VEaWRDaGFuZ2U6KSBuYW1lOk5TV29ya3NwYWNlQWN0aXZlU3BhY2VE
aWRDaGFuZ2VOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CisgICAgX2RhdGEtPl9pbXBsID0gc3Rk
OjptYWtlX3VuaXF1ZTxXZWJWaWV3SW1wbD4oc2VsZiwgd2ViVmlldywgcHJvY2Vzc1Bvb2wsIFdU
Rjo6bW92ZShjb25maWd1cmF0aW9uKSk7CiAKICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTExMDEs
NyArMTA1Nyw3IEBAIFNvbWUgb3RoZXIgZWRpdGluZy1yZWxhdGVkIG1ldGhvZHMgc3RpbGwgdW5p
bXBsZW1lbnRlZDoKIAogLSAoV0tQYWdlUmVmKXBhZ2VSZWYKIHsKLSAgICByZXR1cm4gdG9BUEko
X2RhdGEtPl9wYWdlLmdldCgpKTsKKyAgICByZXR1cm4gdG9BUEkoJl9kYXRhLT5faW1wbC0+cGFn
ZSgpKTsKIH0KIAogLSAoQk9PTCljYW5DaGFuZ2VGcmFtZUxheW91dDooV0tGcmFtZVJlZilmcmFt
ZVJlZgpAQCAtMTQ3NCw2ICsxNDMwLDExIEBAIHN0YXRpYyBfV0tPdmVybGF5U2Nyb2xsYmFyU3R5
bGUgdG9BUElTY3JvbGxiYXJTdHlsZShXVEY6Ok9wdGlvbmFsPFdlYkNvcmU6OlNjcm9sCiAgICAg
X2RhdGEtPl9pbXBsLT5zZXREaWRNb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKGNhbGxiYWNrKTsK
IH0KIAorLSAoaWQpX3dlYl9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0
VGVzdFJlc3VsdEludGVybmFsOihBUEk6OkhpdFRlc3RSZXN1bHQqKWhpdFRlc3RSZXN1bHQgd2l0
aFR5cGU6KHVpbnQzMl90KXR5cGUgdXNlckRhdGE6KEFQSTo6T2JqZWN0Kil1c2VyRGF0YQorewor
ICAgIHJldHVybiBbc2VsZiBfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhp
dFRlc3RSZXN1bHQ6dG9BUEkoaGl0VGVzdFJlc3VsdCkgd2l0aFR5cGU6dHlwZSB1c2VyRGF0YTp0
b0FQSSh1c2VyRGF0YSldOworfQorCiAtIChpZClfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29u
dHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6KFdLSGl0VGVzdFJlc3VsdFJlZiloaXRUZXN0UmVzdWx0
IHdpdGhUeXBlOih1aW50MzJfdCl0eXBlIHVzZXJEYXRhOihXS1R5cGVSZWYpdXNlckRhdGEKIHsK
ICAgICByZXR1cm4gbmlsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaAppbmRleCBhMjMyYjk1Li5jODc0YzBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtNDYsNiArNDYsNyBAQCBPQkpDX0NMQVNTIFdL
RWRpdG9yVW5kb1RhcmdldE9iakM7CiBPQkpDX0NMQVNTIFdLRnVsbFNjcmVlbldpbmRvd0NvbnRy
b2xsZXI7CiBPQkpDX0NMQVNTIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlcjsKIE9CSkNfQ0xB
U1MgV0tWaWV3TGF5b3V0U3RyYXRlZ3k7CitPQkpDX0NMQVNTIFdLV2ViVmlldzsKIE9CSkNfQ0xB
U1MgV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXI7CiBPQkpDX0NMQVNTIF9XS1RodW1ibmFpbFZp
ZXc7CiAKQEAgLTY3LDEzICs2OCwxNSBAQCBPQkpDX0NMQVNTIF9XS1RodW1ibmFpbFZpZXc7CiAv
LyBUaGV5J3JlIG5vdCBhY3R1YWxseSBvcHRpb25hbC4KIEBvcHRpb25hbAogCi0tIChpZClfaW1t
ZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6KFdLSGl0VGVz
dFJlc3VsdFJlZiloaXRUZXN0UmVzdWx0IHdpdGhUeXBlOih1aW50MzJfdCl0eXBlIHVzZXJEYXRh
OihXS1R5cGVSZWYpdXNlckRhdGE7CistIChpZClfd2ViX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlv
bkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0SW50ZXJuYWw6KEFQSTo6SGl0VGVzdFJlc3VsdCop
aGl0VGVzdFJlc3VsdCB3aXRoVHlwZToodWludDMyX3QpdHlwZSB1c2VyRGF0YTooQVBJOjpPYmpl
Y3QqKXVzZXJEYXRhOworCiAtICh2b2lkKV9wcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0
aW9uOwogLSAodm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uOwogLSAodm9pZClf
Y29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb247CiAtICh2b2lkKV9kaXNtaXNzQ29udGVu
dFJlbGF0aXZlQ2hpbGRXaW5kb3dzOwogLSAodm9pZClfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNo
aWxkV2luZG93c1dpdGhBbmltYXRpb246KEJPT0wpYW5pbWF0ZTsKIC0gKHZvaWQpX2dlc3R1cmVF
dmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmU6KE5TRXZlbnQgKilldmVudDsKKy0gKHZvaWQpX2Rp
ZENoYW5nZUNvbnRlbnRTaXplOihOU1NpemUpbmV3U2l6ZTsKIAogQGVuZAogCkBAIC04Myw2ICs4
Niw3IEBAIHN0cnVjdCBLZXlQcmVzc0NvbW1hbmQ7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitj
bGFzcyBQYWdlQ2xpZW50SW1wbDsKIGNsYXNzIERyYXdpbmdBcmVhUHJveHk7CiBjbGFzcyBWaWV3
R2VzdHVyZUNvbnRyb2xsZXI7CiBjbGFzcyBXZWJFZGl0Q29tbWFuZFByb3h5OwpAQCAtMTA2LDEy
ICsxMTAsMTQgQEAgY2xhc3MgV2ViVmlld0ltcGwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NB
VEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYlZpZXdJbXBsKTsKIHB1YmxpYzoKLSAg
ICBXZWJWaWV3SW1wbChOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICosIFdlYlBhZ2VQcm94
eSYsIFBhZ2VDbGllbnQmKTsKKyAgICBXZWJWaWV3SW1wbChOU1ZpZXcgPFdlYlZpZXdJbXBsRGVs
ZWdhdGU+ICosIFdLV2ViVmlldyAqb3V0ZXJXZWJWaWV3LCBXZWJQcm9jZXNzUG9vbCYsIFJlZjxB
UEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKIAogICAgIH5XZWJWaWV3SW1wbCgpOwogCiAgICAg
TlNXaW5kb3cgKndpbmRvdygpOwogCisgICAgV2ViUGFnZVByb3h5JiBwYWdlKCkgeyByZXR1cm4g
bV9wYWdlLmdldCgpOyB9CisKICAgICB2b2lkIHByb2Nlc3NEaWRFeGl0KCk7CiAgICAgdm9pZCBw
YWdlQ2xvc2VkKCk7CiAgICAgdm9pZCBkaWRSZWxhdW5jaFByb2Nlc3MoKTsKQEAgLTE2MCw3ICsx
NjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUb3BDb250ZW50SW5zZXQoQ0dGbG9hdCk7CiAg
ICAgQ0dGbG9hdCB0b3BDb250ZW50SW5zZXQoKSBjb25zdCB7IHJldHVybiBtX3RvcENvbnRlbnRJ
bnNldDsgfQogCi0gICAgdm9pZCBzZXRDb250ZW50UHJlcGFyYXRpb25SZWN0KENHUmVjdCk7Cisg
ICAgdm9pZCBwcmVwYXJlQ29udGVudEluUmVjdChDR1JlY3QpOwogICAgIHZvaWQgdXBkYXRlVmll
d0V4cG9zZWRSZWN0KCk7CiAgICAgdm9pZCBzZXRDbGlwc1RvVmlzaWJsZVJlY3QoYm9vbCk7CiAg
ICAgYm9vbCBjbGlwc1RvVmlzaWJsZVJlY3QoKSBjb25zdCB7IHJldHVybiBtX2NsaXBzVG9WaXNp
YmxlUmVjdDsgfQpAQCAtMzE4LDEyICszMjQsMTIgQEAgcHVibGljOgogICAgIHZvaWQgcHJlcGFy
ZUZvckRpY3Rpb25hcnlMb29rdXAoKTsKICAgICB2b2lkIHNldEFsbG93c0xpbmtQcmV2aWV3KGJv
b2wpOwogICAgIGJvb2wgYWxsb3dzTGlua1ByZXZpZXcoKSBjb25zdCB7IHJldHVybiBtX2FsbG93
c0xpbmtQcmV2aWV3OyB9Ci0gICAgdm9pZCogaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJv
bGxlckZvckhpdFRlc3RSZXN1bHQoV0tIaXRUZXN0UmVzdWx0UmVmLCB1aW50MzJfdCB0eXBlLCBX
S1R5cGVSZWYgdXNlckRhdGEpOwotICAgIHZvaWQqIGltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNv
bnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0RnJvbVZpZXdPbmx5KFdLSGl0VGVzdFJlc3VsdFJlZiwg
dWludDMyX3QgdHlwZSwgV0tUeXBlUmVmIHVzZXJEYXRhKTsKKyAgICB2b2lkKiBpbW1lZGlhdGVB
Y3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdChBUEk6OkhpdFRlc3RSZXN1
bHQqLCB1aW50MzJfdCB0eXBlLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpOwogICAgIHZvaWQgZGlk
UGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3QoY29uc3QgV2ViSGl0VGVzdFJlc3VsdERhdGEm
LCBib29sIGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSk7CiAg
ICAgdm9pZCBwcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uKCk7CiAgICAgdm9pZCBj
YW5jZWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24oKTsKICAgICB2b2lkIGNvbXBsZXRlSW1tZWRp
YXRlQWN0aW9uQW5pbWF0aW9uKCk7CisgICAgdm9pZCBkaWRDaGFuZ2VDb250ZW50U2l6ZShDR1Np
emUpOwogCiAgICAgdm9pZCBzZXRJZ25vcmVzTm9uV2hlZWxFdmVudHMoYm9vbCk7CiAgICAgYm9v
bCBpZ25vcmVzTm9uV2hlZWxFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX2lnbm9yZXNOb25XaGVl
bEV2ZW50czsgfQpAQCAtMzYzLDcgKzM2OSw2IEBAIHB1YmxpYzoKICAgICBOU1ZpZXcgKmluc3Bl
Y3RvckF0dGFjaG1lbnRWaWV3KCk7CiAKICAgICBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqcmVt
b3RlT2JqZWN0UmVnaXN0cnkoKTsKLSAgICB2b2lkIGRlc3Ryb3lSZW1vdGVPYmplY3RSZWdpc3Ry
eSgpOyAvLyBGSVhNRTogVGVtcG9yYXJ5LiBDYW4gZm9sZCBpbiBhZnRlciB3ZSBtb3ZlIG93bmVy
c2hpcCBvZiBXZWJQYWdlUHJveHkgaGVyZS4KIAogICAgIFdLQnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlciAqYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcigpOwogI2VuZGlmIC8vIFdLX0FQSV9FTkFC
TEVECkBAIC01MDQsOCArNTA5LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIG1vdXNlRHJhZ2dlZElu
dGVybmFsKE5TRXZlbnQgKik7CiAKICAgICBOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICpt
X3ZpZXc7Ci0gICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7Ci0gICAgUGFnZUNsaWVudCYgbV9wYWdl
Q2xpZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxQYWdlQ2xpZW50PiBtX3BhZ2VDbGllbnQ7Cisg
ICAgUmVmPFdlYlBhZ2VQcm94eT4gbV9wYWdlOwogCiAgICAgV2Vha1B0ckZhY3Rvcnk8V2ViVmll
d0ltcGw+IG1fd2Vha1B0ckZhY3Rvcnk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCBmNDg3MTQ5Li40ZGJiZDcwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpZiBQTEFURk9STShNQUMpCiAKKyNpbXBvcnQgIkFQSUxlZ2FjeUNvbnRleHRIaXN0b3J5
Q2xpZW50LmgiCiAjaW1wb3J0ICJBcHBLaXRTUEkuaCIKICNpbXBvcnQgIkNvbG9yU3BhY2VEYXRh
LmgiCiAjaW1wb3J0ICJHZW5lcmljQ2FsbGJhY2suaCIKQEAgLTM3LDYgKzM4LDcgQEAKICNpbXBv
cnQgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYldoZWVsRXZlbnQu
aCIKICNpbXBvcnQgIlBhZ2VDbGllbnQuaCIKKyNpbXBvcnQgIlBhZ2VDbGllbnRJbXBsLmgiCiAj
aW1wb3J0ICJQYXN0ZWJvYXJkVHlwZXMuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkuaCIKICNpbXBvcnQgIlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmgiCkBAIC0xMjEs
NiArMTIzLDkgQEAgU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMKExvb2t1cCwgTFVOb3RpZmlj
YXRpb25Qb3BvdmVyV2lsbENsb3NlLCBOU1N0cmluZyAqKQogICAgIF92aWV3ID0gdmlldzsKICAg
ICBfaW1wbCA9ICZpbXBsOwogCisgICAgTlNOb3RpZmljYXRpb25DZW50ZXIqIHdvcmtzcGFjZU5v
dGlmaWNhdGlvbkNlbnRlciA9IFtbTlNXb3Jrc3BhY2Ugc2hhcmVkV29ya3NwYWNlXSBub3RpZmlj
YXRpb25DZW50ZXJdOworICAgIFt3b3Jrc3BhY2VOb3RpZmljYXRpb25DZW50ZXIgYWRkT2JzZXJ2
ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FjdGl2ZVNwYWNlRGlkQ2hhbmdlOikgbmFtZTpO
U1dvcmtzcGFjZUFjdGl2ZVNwYWNlRGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwor
CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKQEAgLTEyOSw2ICsxMzQsOSBAQCBTT0ZUX0xJTktfQ09O
U1RBTlRfTUFZX0ZBSUwoTG9va3VwLCBMVU5vdGlmaWNhdGlvblBvcG92ZXJXaWxsQ2xvc2UsIE5T
U3RyaW5nICopCiAgICAgaWYgKGNhbkxvYWRMVU5vdGlmaWNhdGlvblBvcG92ZXJXaWxsQ2xvc2Uo
KSkKICAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVP
YnNlcnZlcjpzZWxmIG5hbWU6Z2V0TFVOb3RpZmljYXRpb25Qb3BvdmVyV2lsbENsb3NlKCkgb2Jq
ZWN0Om5pbF07CiAKKyAgICBOU05vdGlmaWNhdGlvbkNlbnRlciAqd29ya3NwYWNlTm90aWZpY2F0
aW9uQ2VudGVyID0gW1tOU1dvcmtzcGFjZSBzaGFyZWRXb3Jrc3BhY2VdIG5vdGlmaWNhdGlvbkNl
bnRlcl07CisgICAgW3dvcmtzcGFjZU5vdGlmaWNhdGlvbkNlbnRlciByZW1vdmVPYnNlcnZlcjpz
ZWxmIG5hbWU6TlNXb3Jrc3BhY2VBY3RpdmVTcGFjZURpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmpl
Y3Q6bmlsXTsKKwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIApAQCAtMjg3LDYgKzI5NSwxMSBA
QCBzdGF0aWMgdm9pZCoga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0ID0gJmtleVZhbHVlT2JzZXJ2
aW5nQ29udGV4dDsKICAgICBfaW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKIH0K
IAorLSAodm9pZClfYWN0aXZlU3BhY2VEaWRDaGFuZ2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZp
Y2F0aW9uCit7CisgICAgX2ltcGwtPmFjdGl2ZVNwYWNlRGlkQ2hhbmdlKCk7Cit9CisKIEBlbmQK
IAogQGludGVyZmFjZSBXS0VkaXRDb21tYW5kT2JqQyA6IE5TT2JqZWN0IHsKQEAgLTQyNywyMSAr
NDQwLDIzIEBAIHN0YXRpYyBOU1RyYWNraW5nQXJlYU9wdGlvbnMgdHJhY2tpbmdBcmVhT3B0aW9u
cygpCiAgICAgcmV0dXJuIG9wdGlvbnM7CiB9CiAKLVdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChO
U1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICp2aWV3LCBXZWJQYWdlUHJveHkmIHBhZ2UsIFBh
Z2VDbGllbnQmIHBhZ2VDbGllbnQpCitXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxX
ZWJWaWV3SW1wbERlbGVnYXRlPiAqdmlldywgV0tXZWJWaWV3ICpvdXRlcldlYlZpZXcsIFdlYlBy
b2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+JiYgY29u
ZmlndXJhdGlvbikKICAgICA6IG1fdmlldyh2aWV3KQotICAgICwgbV9wYWdlKHBhZ2UpCi0gICAg
LCBtX3BhZ2VDbGllbnQocGFnZUNsaWVudCkKKyAgICAsIG1fcGFnZUNsaWVudChzdGQ6Om1ha2Vf
dW5pcXVlPFBhZ2VDbGllbnRJbXBsPih2aWV3LCBvdXRlcldlYlZpZXcsICp0aGlzKSkKKyAgICAs
IG1fcGFnZShwcm9jZXNzUG9vbC5jcmVhdGVXZWJQYWdlKCptX3BhZ2VDbGllbnQsIFdURjo6bW92
ZShjb25maWd1cmF0aW9uKSkpCiAgICAgLCBtX3dlYWtQdHJGYWN0b3J5KHRoaXMpCi0gICAgLCBt
X25lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyhtX3BhZ2UucHJlZmVyZW5jZXMoKS5w
bHVnaW5zRW5hYmxlZCgpKQorICAgICwgbV9uZWVkc1ZpZXdGcmFtZUluV2luZG93Q29vcmRpbmF0
ZXMobV9wYWdlLT5wcmVmZXJlbmNlcygpLnBsdWdpbnNFbmFibGVkKCkpCiAgICAgLCBtX2ludHJp
bnNpY0NvbnRlbnRTaXplKENHU2l6ZU1ha2UoTlNWaWV3Tm9JbnN0cmluc2ljTWV0cmljLCBOU1Zp
ZXdOb0luc3RyaW5zaWNNZXRyaWMpKQogICAgICwgbV9sYXlvdXRTdHJhdGVneShbV0tWaWV3TGF5
b3V0U3RyYXRlZ3kgbGF5b3V0U3RyYXRlZ3lXaXRoUGFnZTptX3BhZ2UgdmlldzptX3ZpZXcgdmll
d0ltcGw6KnRoaXMgbW9kZTprV0tMYXlvdXRNb2RlVmlld1NpemVdKQogICAgICwgbV91bmRvVGFy
Z2V0KGFkb3B0TlMoW1tXS0VkaXRvclVuZG9UYXJnZXRPYmpDIGFsbG9jXSBpbml0XSkpCiAgICAg
LCBtX3dpbmRvd1Zpc2liaWxpdHlPYnNlcnZlcihhZG9wdE5TKFtbV0tXaW5kb3dWaXNpYmlsaXR5
T2JzZXJ2ZXIgYWxsb2NdIGluaXRXaXRoVmlldzp2aWV3IGltcGw6KnRoaXNdKSkKICAgICAsIG1f
cHJpbWFyeVRyYWNraW5nQXJlYShhZG9wdE5TKFtbTlNUcmFja2luZ0FyZWEgYWxsb2NdIGluaXRX
aXRoUmVjdDptX3ZpZXcuZnJhbWUgb3B0aW9uczp0cmFja2luZ0FyZWFPcHRpb25zKCkgb3duZXI6
bV92aWV3IHVzZXJJbmZvOm5pbF0pKQogeworICAgIFtOU0FwcCByZWdpc3RlclNlcnZpY2VzTWVu
dVNlbmRUeXBlczpQYXN0ZWJvYXJkVHlwZXM6OmZvclNlbGVjdGlvbigpIHJldHVyblR5cGVzOlBh
c3RlYm9hcmRUeXBlczo6Zm9yRWRpdGluZygpXTsKKwogICAgIFttX3ZpZXcgYWRkVHJhY2tpbmdB
cmVhOm1fcHJpbWFyeVRyYWNraW5nQXJlYS5nZXQoKV07CiAKLSAgICBtX3BhZ2Uuc2V0SW50cmlu
c2ljRGV2aWNlU2NhbGVGYWN0b3IoaW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoKSk7CisgICAg
bV9wYWdlLT5zZXRJbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcihpbnRyaW5zaWNEZXZpY2VTY2Fs
ZUZhY3RvcigpKTsKIAogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAx
MDAwCiAgICAgaWYgKENsYXNzIGdlc3R1cmVDbGFzcyA9IE5TQ2xhc3NGcm9tU3RyaW5nKEAiTlNJ
bW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciIpKSB7CkBAIC00NTEsMTAgKzQ2NiwzMiBA
QCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAq
dmlldywgV2ViUGFnZVByb3h5JiBwYWdlLAogICAgICAgICBbbV9pbW1lZGlhdGVBY3Rpb25HZXN0
dXJlUmVjb2duaXplciBzZXREZWxheXNQcmltYXJ5TW91c2VCdXR0b25FdmVudHM6Tk9dOwogICAg
IH0KICNlbmRpZgorCisKKyAgICBtX3BhZ2UtPnNldEFkZHNWaXNpdGVkTGlua3MocHJvY2Vzc1Bv
b2wuaGlzdG9yeUNsaWVudCgpLmFkZHNWaXNpdGVkTGlua3MoKSk7CisKKyAgICBtX3BhZ2UtPmlu
aXRpYWxpemVXZWJQYWdlKCk7CisKKyAgICByZWdpc3RlckRyYWdnZWRUeXBlcygpOworCisgICAg
bV92aWV3LndhbnRzTGF5ZXIgPSBZRVM7CisKKyAgICAvLyBFeHBsaWNpdGx5IHNldCB0aGUgbGF5
ZXIgY29udGVudHMgcGxhY2VtZW50IHNvIEFwcEtpdCB3aWxsIG1ha2Ugc3VyZSB0aGF0IG91ciBs
YXllciBoYXMgbWFza3NUb0JvdW5kcyBzZXQgdG8gWUVTLgorICAgIG1fdmlldy5sYXllckNvbnRl
bnRzUGxhY2VtZW50ID0gTlNWaWV3TGF5ZXJDb250ZW50c1BsYWNlbWVudFRvcExlZnQ7CisKKyAg
ICBXZWJQcm9jZXNzUG9vbDo6c3RhdGlzdGljcygpLndrVmlld0NvdW50Kys7CiB9CiAKIFdlYlZp
ZXdJbXBsOjp+V2ViVmlld0ltcGwoKQogeworI2lmIFdLX0FQSV9FTkFCTEVECisgICAgaWYgKG1f
cmVtb3RlT2JqZWN0UmVnaXN0cnkpIHsKKyAgICAgICAgbV9wYWdlLT5wcm9jZXNzKCkucHJvY2Vz
c1Bvb2woKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lz
dHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS0+cGFnZUlEKCkpOworICAgICAgICBb
bV9yZW1vdGVPYmplY3RSZWdpc3RyeSBfaW52YWxpZGF0ZV07CisgICAgICAgIG1fcmVtb3RlT2Jq
ZWN0UmVnaXN0cnkgPSBuaWw7CisgICAgfQorI2VuZGlmCisKICAgICBBU1NFUlQoIW1faW5TZWN1
cmVJbnB1dFN0YXRlKTsKIAogI2lmIFdLX0FQSV9FTkFCTEVECkBAIC00NjYsNiArNTAzLDExIEBA
IFdlYlZpZXdJbXBsOjp+V2ViVmlld0ltcGwoKQogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxMDAwCiAgICAgW21faW1tZWRpYXRlQWN0aW9uQ29udHJvbGxlciB3aWxs
RGVzdHJveVZpZXc6bV92aWV3XTsKICNlbmRpZgorCisgICAgbV9wYWdlLT5jbG9zZSgpOworCisg
ICAgV2ViUHJvY2Vzc1Bvb2w6OnN0YXRpc3RpY3MoKS53a1ZpZXdDb3VudC0tOworCiB9CiAKIE5T
V2luZG93ICpXZWJWaWV3SW1wbDo6d2luZG93KCkKQEAgLTQ5NywyNyArNTM5LDI3IEBAIHZvaWQg
V2ViVmlld0ltcGw6OmRpZFJlbGF1bmNoUHJvY2VzcygpCiAKIHZvaWQgV2ViVmlld0ltcGw6OnNl
dERyYXdzQmFja2dyb3VuZChib29sIGRyYXdzQmFja2dyb3VuZCkKIHsKLSAgICBtX3BhZ2Uuc2V0
RHJhd3NCYWNrZ3JvdW5kKGRyYXdzQmFja2dyb3VuZCk7CisgICAgbV9wYWdlLT5zZXREcmF3c0Jh
Y2tncm91bmQoZHJhd3NCYWNrZ3JvdW5kKTsKIH0KIAogYm9vbCBXZWJWaWV3SW1wbDo6ZHJhd3NC
YWNrZ3JvdW5kKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wYWdlLmRyYXdzQmFja2dyb3VuZCgp
OworICAgIHJldHVybiBtX3BhZ2UtPmRyYXdzQmFja2dyb3VuZCgpOwogfQogCiB2b2lkIFdlYlZp
ZXdJbXBsOjpzZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZChib29sIGRyYXdzVHJhbnNwYXJl
bnRCYWNrZ3JvdW5kKQogewotICAgIG1fcGFnZS5zZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3Vu
ZChkcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCk7CisgICAgbV9wYWdlLT5zZXREcmF3c1RyYW5z
cGFyZW50QmFja2dyb3VuZChkcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCk7CiB9CiAKIGJvb2wg
V2ViVmlld0ltcGw6OmRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gbV9wYWdlLmRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKCk7CisgICAgcmV0dXJuIG1f
cGFnZS0+ZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoKTsKIH0KIAogYm9vbCBXZWJWaWV3SW1w
bDo6aXNPcGFxdWUoKSBjb25zdAogewotICAgIHJldHVybiBtX3BhZ2UuZHJhd3NCYWNrZ3JvdW5k
KCk7CisgICAgcmV0dXJuIG1fcGFnZS0+ZHJhd3NCYWNrZ3JvdW5kKCk7CiB9CiAKIGJvb2wgV2Vi
Vmlld0ltcGw6OmFjY2VwdHNGaXJzdE1vdXNlKE5TRXZlbnQgKmV2ZW50KQpAQCAtNTMxLDcgKzU3
Myw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OmFjY2VwdHNGaXJzdE1vdXNlKE5TRXZlbnQgKmV2ZW50
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzZXRMYXN0TW91c2VEb3duRXZlbnQoZXZl
bnQpOwotICAgIGJvb2wgcmVzdWx0ID0gbV9wYWdlLmFjY2VwdHNGaXJzdE1vdXNlKGV2ZW50LmV2
ZW50TnVtYmVyLCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoZXZlbnQsIG1f
bGFzdFByZXNzdXJlRXZlbnQuZ2V0KCksIG1fdmlldykpOworICAgIGJvb2wgcmVzdWx0ID0gbV9w
YWdlLT5hY2NlcHRzRmlyc3RNb3VzZShldmVudC5ldmVudE51bWJlciwgV2ViRXZlbnRGYWN0b3J5
OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBtX2xhc3RQcmVzc3VyZUV2ZW50LmdldCgpLCBt
X3ZpZXcpKTsKICAgICBzZXRMYXN0TW91c2VEb3duRXZlbnQobmlsKTsKICAgICByZXR1cm4gcmVz
dWx0OwogfQpAQCAtNTU1LDkgKzU5Nyw5IEBAIGJvb2wgV2ViVmlld0ltcGw6OmJlY29tZUZpcnN0
UmVzcG9uZGVyKCkKICAgICBtX2luQmVjb21lRmlyc3RSZXNwb25kZXIgPSB0cnVlOwogCiAgICAg
dXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSgpOwotICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2Uo
V2ViQ29yZTo6Vmlld1N0YXRlOjpJc0ZvY3VzZWQpOworICAgIG1fcGFnZS0+dmlld1N0YXRlRGlk
Q2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNGb2N1c2VkKTsKICAgICAvLyBSZXN0b3JlIHRo
ZSBzZWxlY3Rpb24gaW4gdGhlIGVkaXRhYmxlIHJlZ2lvbiBpZiByZXNpZ25pbmcgZmlyc3QgcmVz
cG9uZGVyIGNsZWFyZWQgc2VsZWN0aW9uLgotICAgIG1fcGFnZS5yZXN0b3JlU2VsZWN0aW9uSW5G
b2N1c2VkRWRpdGFibGVFbGVtZW50KCk7CisgICAgbV9wYWdlLT5yZXN0b3JlU2VsZWN0aW9uSW5G
b2N1c2VkRWRpdGFibGVFbGVtZW50KCk7CiAKICAgICBtX2luQmVjb21lRmlyc3RSZXNwb25kZXIg
PSBmYWxzZTsKIApAQCAtNTY2LDcgKzYwOCw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OmJlY29tZUZp
cnN0UmVzcG9uZGVyKCkKICAgICAgICAgTlNFdmVudCAqa2V5Ym9hcmRFdmVudCA9IG5pbDsKICAg
ICAgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0tleURvd24gfHwgW2V2ZW50IHR5cGVdID09IE5T
S2V5VXApCiAgICAgICAgICAgICBrZXlib2FyZEV2ZW50ID0gZXZlbnQ7Ci0gICAgICAgIG1fcGFn
ZS5zZXRJbml0aWFsRm9jdXMoZGlyZWN0aW9uID09IE5TU2VsZWN0aW5nTmV4dCwga2V5Ym9hcmRF
dmVudCAhPSBuaWwsIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoa2V5Ym9hcmRFdmVudCwgZmFsc2Us
IHsgfSksIFtdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgeyB9KTsKKyAgICAgICAgbV9w
YWdlLT5zZXRJbml0aWFsRm9jdXMoZGlyZWN0aW9uID09IE5TU2VsZWN0aW5nTmV4dCwga2V5Ym9h
cmRFdmVudCAhPSBuaWwsIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoa2V5Ym9hcmRFdmVudCwgZmFs
c2UsIHsgfSksIFtdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgeyB9KTsKICAgICB9CiAg
ICAgcmV0dXJuIHRydWU7CiB9CkBAIC01ODksMjAgKzYzMSwyMCBAQCBib29sIFdlYlZpZXdJbXBs
OjpyZXNpZ25GaXJzdFJlc3BvbmRlcigpCiAgICAgbV9pblJlc2lnbkZpcnN0UmVzcG9uZGVyID0g
dHJ1ZTsKIAogI2lmIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKLSAgICBtX3BhZ2UuY29u
ZmlybUNvbXBvc2l0aW9uQXN5bmMoKTsKKyAgICBtX3BhZ2UtPmNvbmZpcm1Db21wb3NpdGlvbkFz
eW5jKCk7CiAjZWxzZQotICAgIGlmIChtX3BhZ2UuZWRpdG9yU3RhdGUoKS5oYXNDb21wb3NpdGlv
biAmJiAhbV9wYWdlLmVkaXRvclN0YXRlKCkuc2hvdWxkSWdub3JlQ29tcG9zaXRpb25TZWxlY3Rp
b25DaGFuZ2UpCi0gICAgICAgIG1fcGFnZS5jYW5jZWxDb21wb3NpdGlvbigpOworICAgIGlmICht
X3BhZ2UtPmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb24gJiYgIW1fcGFnZS0+ZWRpdG9yU3Rh
dGUoKS5zaG91bGRJZ25vcmVDb21wb3NpdGlvblNlbGVjdGlvbkNoYW5nZSkKKyAgICAgICAgbV9w
YWdlLT5jYW5jZWxDb21wb3NpdGlvbigpOwogI2VuZGlmCiAKICAgICBub3RpZnlJbnB1dENvbnRl
eHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uKCk7CiAKICAgICByZXNldFNlY3VyZUlucHV0U3Rh
dGUoKTsKIAotICAgIGlmICghbV9wYWdlLm1haW50YWluc0luYWN0aXZlU2VsZWN0aW9uKCkpCi0g
ICAgICAgIG1fcGFnZS5jbGVhclNlbGVjdGlvbigpOworICAgIGlmICghbV9wYWdlLT5tYWludGFp
bnNJbmFjdGl2ZVNlbGVjdGlvbigpKQorICAgICAgICBtX3BhZ2UtPmNsZWFyU2VsZWN0aW9uKCk7
CiAKLSAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNG
b2N1c2VkKTsKKyAgICBtX3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3Rh
dGU6OklzRm9jdXNlZCk7CiAgICAgCiAgICAgbV9pblJlc2lnbkZpcnN0UmVzcG9uZGVyID0gZmFs
c2U7CiAgICAgCkBAIC02MjAsMTQgKzY2MiwxNCBAQCBib29sIFdlYlZpZXdJbXBsOjppc0ZvY3Vz
ZWQoKSBjb25zdAogCiB2b2lkIFdlYlZpZXdJbXBsOjp2aWV3V2lsbFN0YXJ0TGl2ZVJlc2l6ZSgp
CiB7Ci0gICAgbV9wYWdlLnZpZXdXaWxsU3RhcnRMaXZlUmVzaXplKCk7CisgICAgbV9wYWdlLT52
aWV3V2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpOwogCiAgICAgW21fbGF5b3V0U3RyYXRlZ3kgd2lsbFN0
YXJ0TGl2ZVJlc2l6ZV07CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnZpZXdEaWRFbmRMaXZlUmVz
aXplKCkKIHsKLSAgICBtX3BhZ2Uudmlld1dpbGxFbmRMaXZlUmVzaXplKCk7CisgICAgbV9wYWdl
LT52aWV3V2lsbEVuZExpdmVSZXNpemUoKTsKIAogICAgIFttX2xheW91dFN0cmF0ZWd5IGRpZEVu
ZExpdmVSZXNpemVdOwogfQpAQCAtNzAxLDE4ICs3NDMsMTggQEAgdm9pZCBXZWJWaWV3SW1wbDo6
dXBkYXRlV2luZG93QW5kVmlld0ZyYW1lcygpCiAgICAgICAgICAgICBhY2Nlc3NpYmlsaXR5UG9z
aXRpb24gPSBbW3dlYWtUaGlzLT5tX3ZpZXcgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5T
QWNjZXNzaWJpbGl0eVBvc2l0aW9uQXR0cmlidXRlXSBwb2ludFZhbHVlXTsKICNwcmFnbWEgY2xh
bmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgCi0gICAgICAgIHdlYWtUaGlzLT5tX3BhZ2Uud2lu
ZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQodmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywgYWNj
ZXNzaWJpbGl0eVBvc2l0aW9uKTsKKyAgICAgICAgd2Vha1RoaXMtPm1fcGFnZS0+d2luZG93QW5k
Vmlld0ZyYW1lc0NoYW5nZWQodmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcywgYWNjZXNzaWJp
bGl0eVBvc2l0aW9uKTsKICAgICB9KTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0Rml4ZWRM
YXlvdXRTaXplKENHU2l6ZSBmaXhlZExheW91dFNpemUpCiB7Ci0gICAgbV9wYWdlLnNldEZpeGVk
TGF5b3V0U2l6ZShXZWJDb3JlOjpleHBhbmRlZEludFNpemUoV2ViQ29yZTo6RmxvYXRTaXplKGZp
eGVkTGF5b3V0U2l6ZSkpKTsKKyAgICBtX3BhZ2UtPnNldEZpeGVkTGF5b3V0U2l6ZShXZWJDb3Jl
OjpleHBhbmRlZEludFNpemUoV2ViQ29yZTo6RmxvYXRTaXplKGZpeGVkTGF5b3V0U2l6ZSkpKTsK
IH0KIAogQ0dTaXplIFdlYlZpZXdJbXBsOjpmaXhlZExheW91dFNpemUoKSBjb25zdAogewotICAg
IHJldHVybiBtX3BhZ2UuZml4ZWRMYXlvdXRTaXplKCk7CisgICAgcmV0dXJuIG1fcGFnZS0+Zml4
ZWRMYXlvdXRTaXplKCk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OkRyYXdpbmdBcmVh
UHJveHk+IFdlYlZpZXdJbXBsOjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkKQEAgLTcyNSwxNiAr
NzY3LDE2IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OkRyYXdpbmdBcmVhUHJveHk+IFdlYlZp
ZXdJbXBsOjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkKIAogYm9vbCBXZWJWaWV3SW1wbDo6aXNV
c2luZ1VJU2lkZUNvbXBvc2l0aW5nKCkgY29uc3QKIHsKLSAgICBhdXRvKiBkcmF3aW5nQXJlYSA9
IG1fcGFnZS5kcmF3aW5nQXJlYSgpOworICAgIGF1dG8qIGRyYXdpbmdBcmVhID0gbV9wYWdlLT5k
cmF3aW5nQXJlYSgpOwogICAgIHJldHVybiBkcmF3aW5nQXJlYSAmJiBkcmF3aW5nQXJlYS0+dHlw
ZSgpID09IERyYXdpbmdBcmVhVHlwZVJlbW90ZUxheWVyVHJlZTsKIH0KIAogdm9pZCBXZWJWaWV3
SW1wbDo6c2V0RHJhd2luZ0FyZWFTaXplKENHU2l6ZSBzaXplKQogewotICAgIGlmICghbV9wYWdl
LmRyYXdpbmdBcmVhKCkpCisgICAgaWYgKCFtX3BhZ2UtPmRyYXdpbmdBcmVhKCkpCiAgICAgICAg
IHJldHVybjsKIAotICAgIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5zZXRTaXplKFdlYkNvcmU6Oklu
dFNpemUoc2l6ZSksIFdlYkNvcmU6OkludFNpemUoKSwgV2ViQ29yZTo6SW50U2l6ZShtX3Jlc2l6
ZVNjcm9sbE9mZnNldCkpOworICAgIG1fcGFnZS0+ZHJhd2luZ0FyZWEoKS0+c2V0U2l6ZShXZWJD
b3JlOjpJbnRTaXplKHNpemUpLCBXZWJDb3JlOjpJbnRTaXplKCksIFdlYkNvcmU6OkludFNpemUo
bV9yZXNpemVTY3JvbGxPZmZzZXQpKTsKICAgICBtX3Jlc2l6ZVNjcm9sbE9mZnNldCA9IENHU2l6
ZVplcm87CiB9CiAKQEAgLTc1NSw3ICs3OTcsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpmb3JjZUFz
eW5jRHJhd2luZ0FyZWFTaXplVXBkYXRlKENHU2l6ZSBzaXplKQogICAgIC8vIElmIGEgZ2VvbWV0
cnkgdXBkYXRlIGlzIHBlbmRpbmcgdGhlIG5ldyB1cGRhdGUgd29uJ3QgYmUgc2VudC4gUG9sbCB3
aXRob3V0IHdhaXRpbmcgZm9yIGFueQogICAgIC8vIHBlbmRpbmcgZGlkLXVwZGF0ZSBtZXNzYWdl
IG5vdywgc3VjaCB0aGF0IHRoZSBuZXcgdXBkYXRlIGNhbiBiZSBzZW50LiBXZSBkbyBzbyBhZnRl
ciBzZXR0aW5nCiAgICAgLy8gdGhlIGRyYXdpbmcgYXJlYSBzaXplIHN1Y2ggdGhhdCB0aGUgbGF0
ZXN0IHVwZGF0ZSBpcyBzZW50LgotICAgIGlmIChEcmF3aW5nQXJlYVByb3h5KiBkcmF3aW5nQXJl
YSA9IG1fcGFnZS5kcmF3aW5nQXJlYSgpKQorICAgIGlmIChEcmF3aW5nQXJlYVByb3h5KiBkcmF3
aW5nQXJlYSA9IG1fcGFnZS0+ZHJhd2luZ0FyZWEoKSkKICAgICAgICAgZHJhd2luZ0FyZWEtPndh
aXRGb3JQb3NzaWJsZUdlb21ldHJ5VXBkYXRlKHN0ZDo6Y2hyb25vOjptaWxsaXNlY29uZHM6Onpl
cm8oKSk7CiAjZWxzZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpAQCAtNzY2LDcgKzgwOCw3
IEBAIHZvaWQgV2ViVmlld0ltcGw6OndhaXRGb3JBc3luY0RyYXdpbmdBcmVhU2l6ZVVwZGF0ZSgp
CiB7CiAgICAgLy8gVGhpcyBTUEkgaXMgb25seSB1c2VkIG9uIDEwLjkgYW5kIGJlbG93LCBhbmQg
aXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGZlbmNlLWJhc2VkIGRyYXdpbmcgYXJlYSBzaXplIHN5
bmNocm9uaXphdGlvbiBpbiAxMC4xMCsuCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA8PSAxMDkwCi0gICAgaWYgKERyYXdpbmdBcmVhUHJveHkqIGRyYXdpbmdBcmVhID0gbV9w
YWdlLmRyYXdpbmdBcmVhKCkpIHsKKyAgICBpZiAoRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0Fy
ZWEgPSBtX3BhZ2UtPmRyYXdpbmdBcmVhKCkpIHsKICAgICAgICAgLy8gSWYgYSBnZW9tZXRyeSB1
cGRhdGUgaXMgc3RpbGwgcGVuZGluZyB0aGVuIHRoZSBhY3Rpb24gb2YgcmVjZWl2aW5nIHRoZQog
ICAgICAgICAvLyBmaXJzdCBnZW9tZXRyeSB1cGRhdGUgbWF5IHJlc3VsdCBpbiBhbm90aGVyIHVw
ZGF0ZSBiZWluZyBzY2hlZHVsZWQgLQogICAgICAgICAvLyB3ZSBzaG91bGQgd2FpdCBmb3IgdGhp
cyB0byBjb21wbGV0ZSB0b28uCkBAIC03OTIsMTQgKzgzNCwxNCBAQCB2b2lkIFdlYlZpZXdJbXBs
Ojp1cGRhdGVMYXllcigpCiAgICAgaWYgKGZyYW1lU2l6ZVVwZGF0ZXNEaXNhYmxlZCgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBpZiAoRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0FyZWEgPSBt
X3BhZ2UuZHJhd2luZ0FyZWEoKSkKKyAgICBpZiAoRHJhd2luZ0FyZWFQcm94eSogZHJhd2luZ0Fy
ZWEgPSBtX3BhZ2UtPmRyYXdpbmdBcmVhKCkpCiAgICAgICAgIGRyYXdpbmdBcmVhLT53YWl0Rm9y
UG9zc2libGVHZW9tZXRyeVVwZGF0ZSgpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpkcmF3UmVj
dChDR1JlY3QgcmVjdCkKIHsKICAgICBMT0coUHJpbnRpbmcsICJkcmF3UmVjdDogeDolZywgeTol
Zywgd2lkdGg6JWcsIGhlaWdodDolZyIsIHJlY3Qub3JpZ2luLngsIHJlY3Qub3JpZ2luLnksIHJl
Y3Quc2l6ZS53aWR0aCwgcmVjdC5zaXplLmhlaWdodCk7Ci0gICAgbV9wYWdlLmVuZFByaW50aW5n
KCk7CisgICAgbV9wYWdlLT5lbmRQcmludGluZygpOwogfQogCiBib29sIFdlYlZpZXdJbXBsOjpj
YW5DaGFuZ2VGcmFtZUxheW91dChXZWJGcmFtZVByb3h5JiBmcmFtZSkKQEAgLTg2OSwxMyArOTEx
LDE1IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0KCkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgbV9kaWRTY2hlZHVsZVNldFRvcENvbnRlbnRJbnNldCA9IGZh
bHNlOwotICAgIG1fcGFnZS5zZXRUb3BDb250ZW50SW5zZXQobV90b3BDb250ZW50SW5zZXQpOwor
ICAgIG1fcGFnZS0+c2V0VG9wQ29udGVudEluc2V0KG1fdG9wQ29udGVudEluc2V0KTsKIH0KIAot
dm9pZCBXZWJWaWV3SW1wbDo6c2V0Q29udGVudFByZXBhcmF0aW9uUmVjdChDR1JlY3QgcmVjdCkK
K3ZvaWQgV2ViVmlld0ltcGw6OnByZXBhcmVDb250ZW50SW5SZWN0KENHUmVjdCByZWN0KQogewog
ICAgIG1fY29udGVudFByZXBhcmF0aW9uUmVjdCA9IHJlY3Q7CiAgICAgbV91c2VDb250ZW50UHJl
cGFyYXRpb25SZWN0Rm9yVmlzaWJsZVJlY3QgPSB0cnVlOworCisgICAgdXBkYXRlVmlld0V4cG9z
ZWRSZWN0KCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZVZpZXdFeHBvc2VkUmVjdCgp
CkBAIC04ODUsNyArOTI5LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlVmlld0V4cG9zZWRS
ZWN0KCkKICAgICBpZiAobV91c2VDb250ZW50UHJlcGFyYXRpb25SZWN0Rm9yVmlzaWJsZVJlY3Qp
CiAgICAgICAgIGV4cG9zZWRSZWN0ID0gQ0dSZWN0VW5pb24obV9jb250ZW50UHJlcGFyYXRpb25S
ZWN0LCBleHBvc2VkUmVjdCk7CiAKLSAgICBpZiAoYXV0byBkcmF3aW5nQXJlYSA9IG1fcGFnZS5k
cmF3aW5nQXJlYSgpKQorICAgIGlmIChhdXRvIGRyYXdpbmdBcmVhID0gbV9wYWdlLT5kcmF3aW5n
QXJlYSgpKQogICAgICAgICBkcmF3aW5nQXJlYS0+c2V0RXhwb3NlZFJlY3QobV9jbGlwc1RvVmlz
aWJsZVJlY3QgPyBXZWJDb3JlOjpGbG9hdFJlY3QoZXhwb3NlZFJlY3QpIDogV2ViQ29yZTo6Rmxv
YXRSZWN0OjppbmZpbml0ZVJlY3QoKSk7CiB9CiAKQEAgLTg5OSwyNSArOTQzLDI1IEBAIHZvaWQg
V2ViVmlld0ltcGw6OnNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dChDR1NpemUgbWluaW11bVNp
emVGb3JBdXRvTGF5b3V0KQogewogICAgIGJvb2wgZXhwYW5kc1RvRml0ID0gbWluaW11bVNpemVG
b3JBdXRvTGF5b3V0LndpZHRoID4gMDsKIAotICAgIG1fcGFnZS5zZXRNaW5pbXVtTGF5b3V0U2l6
ZShXZWJDb3JlOjpJbnRTaXplKG1pbmltdW1TaXplRm9yQXV0b0xheW91dCkpOwotICAgIG1fcGFn
ZS5zZXRNYWluRnJhbWVJc1Njcm9sbGFibGUoIWV4cGFuZHNUb0ZpdCk7CisgICAgbV9wYWdlLT5z
ZXRNaW5pbXVtTGF5b3V0U2l6ZShXZWJDb3JlOjpJbnRTaXplKG1pbmltdW1TaXplRm9yQXV0b0xh
eW91dCkpOworICAgIG1fcGFnZS0+c2V0TWFpbkZyYW1lSXNTY3JvbGxhYmxlKCFleHBhbmRzVG9G
aXQpOwogCiAgICAgc2V0Q2xpcHNUb1Zpc2libGVSZWN0KGV4cGFuZHNUb0ZpdCk7CiB9CiAKIENH
U2l6ZSBXZWJWaWV3SW1wbDo6bWluaW11bVNpemVGb3JBdXRvTGF5b3V0KCkgY29uc3QKIHsKLSAg
ICByZXR1cm4gbV9wYWdlLm1pbmltdW1MYXlvdXRTaXplKCk7CisgICAgcmV0dXJuIG1fcGFnZS0+
bWluaW11bUxheW91dFNpemUoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0U2hvdWxkRXhw
YW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dChib29sIHNob3VsZEV4cGFuZFRvVmlld0hlaWdo
dEZvckF1dG9MYXlvdXQpCiB7Ci0gICAgbV9wYWdlLnNldEF1dG9TaXppbmdTaG91bGRFeHBhbmRU
b1ZpZXdIZWlnaHQoc2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dCk7CisgICAg
bV9wYWdlLT5zZXRBdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KHNob3VsZEV4cGFu
ZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQpOwogfQogCiBib29sIFdlYlZpZXdJbXBsOjpzaG91
bGRFeHBhbmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0KCkgY29uc3QKIHsKLSAgICByZXR1cm4g
bV9wYWdlLmF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoKTsKKyAgICByZXR1cm4g
bV9wYWdlLT5hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0KCk7CiB9CiAKIHZvaWQg
V2ViVmlld0ltcGw6OnNldEludHJpbnNpY0NvbnRlbnRTaXplKENHU2l6ZSBpbnRyaW5zaWNDb250
ZW50U2l6ZSkKQEAgLTkyNyw3ICs5NzEsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRJbnRyaW5z
aWNDb250ZW50U2l6ZShDR1NpemUgaW50cmluc2ljQ29udGVudFNpemUpCiAgICAgLy8gc28gdGhh
dCBhdXRvbGF5b3V0IHdpbGwga25vdyB0byBwcm92aWRlIHNwYWNlIGZvciB1cy4KIAogICAgIENH
U2l6ZSBpbnRyaW5zaWNDb250ZW50U2l6ZUFja25vd2xlZGdpbmdGbGV4aWJsZVdpZHRoID0gaW50
cmluc2ljQ29udGVudFNpemU7Ci0gICAgaWYgKGludHJpbnNpY0NvbnRlbnRTaXplLndpZHRoIDwg
bV9wYWdlLm1pbmltdW1MYXlvdXRTaXplKCkud2lkdGgoKSkKKyAgICBpZiAoaW50cmluc2ljQ29u
dGVudFNpemUud2lkdGggPCBtX3BhZ2UtPm1pbmltdW1MYXlvdXRTaXplKCkud2lkdGgoKSkKICAg
ICAgICAgaW50cmluc2ljQ29udGVudFNpemVBY2tub3dsZWRnaW5nRmxleGlibGVXaWR0aC53aWR0
aCA9IE5TVmlld05vSW5zdHJpbnNpY01ldHJpYzsKIAogICAgIG1faW50cmluc2ljQ29udGVudFNp
emUgPSBpbnRyaW5zaWNDb250ZW50U2l6ZUFja25vd2xlZGdpbmdGbGV4aWJsZVdpZHRoOwpAQCAt
OTQ5LDEzICs5OTMsMTMgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0Vmlld1NjYWxlKENHRmxvYXQg
dmlld1NjYWxlKQogICAgIGlmICh2aWV3U2NhbGUgPD0gMCB8fCBpc25hbih2aWV3U2NhbGUpIHx8
IGlzaW5mKHZpZXdTY2FsZSkpCiAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRB
cmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJWaWV3IHNjYWxlIHNob3VsZCBiZSBhIHBvc2l0aXZl
IG51bWJlciJdOwogCi0gICAgbV9wYWdlLnNjYWxlVmlldyh2aWV3U2NhbGUpOworICAgIG1fcGFn
ZS0+c2NhbGVWaWV3KHZpZXdTY2FsZSk7CiAgICAgW21fbGF5b3V0U3RyYXRlZ3kgZGlkQ2hhbmdl
Vmlld1NjYWxlXTsKIH0KIAogQ0dGbG9hdCBXZWJWaWV3SW1wbDo6dmlld1NjYWxlKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9wYWdlLnZpZXdTY2FsZUZhY3RvcigpOworICAgIHJldHVybiBtX3Bh
Z2UtPnZpZXdTY2FsZUZhY3RvcigpOwogfQogCiBXS0xheW91dE1vZGUgV2ViVmlld0ltcGw6Omxh
eW91dE1vZGUoKSBjb25zdApAQCAtOTgyLDcgKzEwMjYsNyBAQCBib29sIFdlYlZpZXdJbXBsOjpz
dXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCkgY29uc3QKICAgICBpZiAoW21fZnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIgaXNGdWxsU2NyZWVuXSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3BhZ2UubWFpbkZyYW1lKCk7CisgICAgV2Vi
RnJhbWVQcm94eSogZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOwogICAgIGlmICghZnJhbWUp
CiAgICAgICAgIHJldHVybiB0cnVlOwogCkBAIC0xMDE1LDcgKzEwNTksNyBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjp1cGRhdGVTdXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCkKIHZvaWQgV2ViVmll
d0ltcGw6OnNldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IoQ0dGbG9hdCBkZXZpY2VTY2FsZUZh
Y3RvcikKIHsKICAgICBtX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IgPSBkZXZpY2VTY2FsZUZh
Y3RvcjsKLSAgICBtX3BhZ2Uuc2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoaW50cmluc2lj
RGV2aWNlU2NhbGVGYWN0b3IoKSk7CisgICAgbV9wYWdlLT5zZXRJbnRyaW5zaWNEZXZpY2VTY2Fs
ZUZhY3RvcihpbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcigpKTsKIH0KIAogZmxvYXQgV2ViVmll
d0ltcGw6OmludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKCkgY29uc3QKQEAgLTEwMzEsMTkgKzEw
NzUsMTkgQEAgZmxvYXQgV2ViVmlld0ltcGw6OmludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKCkg
Y29uc3QKIAogdm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkT3JkZXJPZmZTY3JlZW4oKQogewot
ICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc1Zpc2li
bGUgfCBXZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsKKyAgICBtX3BhZ2UtPnZp
ZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OklzVmlzaWJsZSB8IFdlYkNvcmU6
OlZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjp3aW5k
b3dEaWRPcmRlck9uU2NyZWVuKCkKIHsKLSAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdl
YkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlIHwgV2ViQ29yZTo6Vmlld1N0YXRlOjpXaW5kb3dJ
c0FjdGl2ZSk7CisgICAgbV9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0
YXRlOjpJc1Zpc2libGUgfCBXZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsKIH0K
IAogdm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkQmVjb21lS2V5KE5TV2luZG93ICprZXlXaW5k
b3cpCiB7CiAgICAgaWYgKGtleVdpbmRvdyA9PSBtX3ZpZXcud2luZG93IHx8IGtleVdpbmRvdyA9
PSBtX3ZpZXcud2luZG93LmF0dGFjaGVkU2hlZXQpIHsKICAgICAgICAgdXBkYXRlU2VjdXJlSW5w
dXRTdGF0ZSgpOwotICAgICAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZp
ZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOworICAgICAgICBtX3BhZ2UtPnZpZXdTdGF0ZURpZENo
YW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsKICAgICB9CiB9CiAKQEAg
LTEwNTEsMTggKzEwOTUsMTggQEAgdm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkUmVzaWduS2V5
KE5TV2luZG93ICpmb3JtZXJLZXlXaW5kb3cpCiB7CiAgICAgaWYgKGZvcm1lcktleVdpbmRvdyA9
PSBtX3ZpZXcud2luZG93IHx8IGZvcm1lcktleVdpbmRvdyA9PSBtX3ZpZXcud2luZG93LmF0dGFj
aGVkU2hlZXQpIHsKICAgICAgICAgdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSgpOwotICAgICAgICBt
X3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6V2luZG93SXNBY3Rp
dmUpOworICAgICAgICBtX3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3Rh
dGU6OldpbmRvd0lzQWN0aXZlKTsKICAgICB9CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OndpbmRv
d0RpZE1pbmlhdHVyaXplKCkKIHsKLSAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNv
cmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsKKyAgICBtX3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5n
ZShXZWJDb3JlOjpWaWV3U3RhdGU6OklzVmlzaWJsZSk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6
OndpbmRvd0RpZERlbWluaWF0dXJpemUoKQogewotICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFu
Z2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc1Zpc2libGUpOworICAgIG1fcGFnZS0+dmlld1N0YXRl
RGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsKIH0KIAogdm9pZCBXZWJW
aWV3SW1wbDo6d2luZG93RGlkTW92ZSgpCkBAIC0xMDgxLDMwICsxMTI1LDMwIEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OndpbmRvd0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzKENHRmxvYXQgb2xkQmFj
a2luZ1NjYWxlRmFjdG9yCiAgICAgaWYgKG9sZEJhY2tpbmdTY2FsZUZhY3RvciA9PSBuZXdCYWNr
aW5nU2NhbGVGYWN0b3IpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFnZS5zZXRJbnRyaW5z
aWNEZXZpY2VTY2FsZUZhY3RvcihuZXdCYWNraW5nU2NhbGVGYWN0b3IpOworICAgIG1fcGFnZS0+
c2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IobmV3QmFja2luZ1NjYWxlRmFjdG9yKTsKIH0K
IAogdm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkQ2hhbmdlU2NyZWVuKCkKIHsKICAgICBOU1dp
bmRvdyAqd2luZG93ID0gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFyYXRpb24gPyBtX3Rhcmdl
dFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA6IG1fdmlldy53aW5kb3c7Ci0gICAgbV9wYWdlLndp
bmRvd1NjcmVlbkRpZENoYW5nZSgoUGxhdGZvcm1EaXNwbGF5SUQpW1tbW3dpbmRvdyBzY3JlZW5d
IGRldmljZURlc2NyaXB0aW9uXSBvYmplY3RGb3JLZXk6QCJOU1NjcmVlbk51bWJlciJdIGludFZh
bHVlXSk7CisgICAgbV9wYWdlLT53aW5kb3dTY3JlZW5EaWRDaGFuZ2UoKFBsYXRmb3JtRGlzcGxh
eUlEKVtbW1t3aW5kb3cgc2NyZWVuXSBkZXZpY2VEZXNjcmlwdGlvbl0gb2JqZWN0Rm9yS2V5OkAi
TlNTY3JlZW5OdW1iZXIiXSBpbnRWYWx1ZV0pOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjp3aW5k
b3dEaWRDaGFuZ2VMYXllckhvc3RpbmcoKQogewotICAgIG1fcGFnZS5sYXllckhvc3RpbmdNb2Rl
RGlkQ2hhbmdlKCk7CisgICAgbV9wYWdlLT5sYXllckhvc3RpbmdNb2RlRGlkQ2hhbmdlKCk7CiB9
CiAKIHZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZENoYW5nZU9jY2x1c2lvblN0YXRlKCkKIHsK
LSAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNp
YmxlKTsKKyAgICBtX3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6
OklzVmlzaWJsZSk7CiB9CiAKIGJvb2wgV2ViVmlld0ltcGw6OnNob3VsZERlbGF5V2luZG93T3Jk
ZXJpbmdGb3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKICAgICAvLyBJZiB0aGlzIGlzIHRoZSBh
Y3RpdmUgd2luZG93IG9yIHdlIGRvbid0IGhhdmUgYSByYW5nZSBzZWxlY3Rpb24sIHRoZXJlIGlz
IG5vIG5lZWQgdG8gcGVyZm9ybSBhZGRpdGlvbmFsIGNoZWNrcwogICAgIC8vIGFuZCB3ZSBjYW4g
YXZvaWQgbWFraW5nIGEgc3luY2hyb25vdXMgY2FsbCB0byB0aGUgV2ViUHJvY2Vzcy4KLSAgICBp
ZiAobV92aWV3LndpbmRvdy5pc0tleVdpbmRvdyB8fCBtX3BhZ2UuZWRpdG9yU3RhdGUoKS5zZWxl
Y3Rpb25Jc05vbmUgfHwgIW1fcGFnZS5lZGl0b3JTdGF0ZSgpLnNlbGVjdGlvbklzUmFuZ2UpCisg
ICAgaWYgKG1fdmlldy53aW5kb3cuaXNLZXlXaW5kb3cgfHwgbV9wYWdlLT5lZGl0b3JTdGF0ZSgp
LnNlbGVjdGlvbklzTm9uZSB8fCAhbV9wYWdlLT5lZGl0b3JTdGF0ZSgpLnNlbGVjdGlvbklzUmFu
Z2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIFRoZXJlJ3MgYSBjaGFuY2UgdGhh
dCByZXNwb25kaW5nIHRvIHRoaXMgZXZlbnQgd2lsbCBydW4gYSBuZXN0ZWQgZXZlbnQgbG9vcCwg
YW5kCkBAIC0xMTE2LDcgKzExNjAsNyBAQCBib29sIFdlYlZpZXdJbXBsOjpzaG91bGREZWxheVdp
bmRvd09yZGVyaW5nRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIHNldExhc3RNb3VzZURvd25FdmVudChldmVudCk7Ci0gICAgYm9vbCByZXN1bHQg
PSBtX3BhZ2Uuc2hvdWxkRGVsYXlXaW5kb3dPcmRlcmluZ0ZvckV2ZW50KFdlYkV2ZW50RmFjdG9y
eTo6Y3JlYXRlV2ViTW91c2VFdmVudChldmVudCwgbV9sYXN0UHJlc3N1cmVFdmVudC5nZXQoKSwg
bV92aWV3KSk7CisgICAgYm9vbCByZXN1bHQgPSBtX3BhZ2UtPnNob3VsZERlbGF5V2luZG93T3Jk
ZXJpbmdGb3JFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoZXZlbnQs
IG1fbGFzdFByZXNzdXJlRXZlbnQuZ2V0KCksIG1fdmlldykpOwogICAgIHNldExhc3RNb3VzZURv
d25FdmVudChuaWwpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0xMTI0LDcgKzExNjgsNyBA
QCBib29sIFdlYlZpZXdJbXBsOjpzaG91bGREZWxheVdpbmRvd09yZGVyaW5nRm9yRXZlbnQoTlNF
dmVudCAqZXZlbnQpCiBib29sIFdlYlZpZXdJbXBsOjp3aW5kb3dSZXNpemVNb3VzZUxvY2F0aW9u
SXNJblZpc2libGVTY3JvbGxlclRodW1iKENHUG9pbnQgcG9pbnQpCiB7CiAgICAgTlNQb2ludCBs
b2NhbFBvaW50ID0gW21fdmlldyBjb252ZXJ0UG9pbnQ6TlNQb2ludEZyb21DR1BvaW50KHBvaW50
KSBmcm9tVmlldzpuaWxdOwotICAgIE5TUmVjdCB2aXNpYmxlVGh1bWJSZWN0ID0gTlNSZWN0KG1f
cGFnZS52aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoKSk7CisgICAgTlNSZWN0IHZpc2libGVUaHVt
YlJlY3QgPSBOU1JlY3QobV9wYWdlLT52aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoKSk7CiAgICAg
cmV0dXJuIE5TTW91c2VJblJlY3QobG9jYWxQb2ludCwgdmlzaWJsZVRodW1iUmVjdCwgbV92aWV3
LmlzRmxpcHBlZCk7CiB9CiAKQEAgLTExNTYsMTIgKzEyMDAsMTIgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6dmlld0RpZE1vdmVUb1dpbmRvdygpCiAgICAgICAgICAgICBtX3ZpZXdJbldpbmRvd0NoYW5n
ZVdhc0RlZmVycmVkID0gdHJ1ZTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgdmlld1N0YXRl
Q2hhbmdlcyB8PSBXZWJDb3JlOjpWaWV3U3RhdGU6OklzSW5XaW5kb3c7Ci0gICAgICAgIG1fcGFn
ZS52aWV3U3RhdGVEaWRDaGFuZ2Uodmlld1N0YXRlQ2hhbmdlcyk7CisgICAgICAgIG1fcGFnZS0+
dmlld1N0YXRlRGlkQ2hhbmdlKHZpZXdTdGF0ZUNoYW5nZXMpOwogCiAgICAgICAgIHVwZGF0ZVdp
bmRvd0FuZFZpZXdGcmFtZXMoKTsKIAogICAgICAgICAvLyBGSVhNRSgxMzU1MDkpIFRoaXMgY2Fs
bCBiZWNvbWVzIHVubmVjZXNzYXJ5IG9uY2UgMTM1NTA5IGlzIGZpeGVkOyByZW1vdmUuCi0gICAg
ICAgIG1fcGFnZS5sYXllckhvc3RpbmdNb2RlRGlkQ2hhbmdlKCk7CisgICAgICAgIG1fcGFnZS0+
bGF5ZXJIb3N0aW5nTW9kZURpZENoYW5nZSgpOwogCiAgICAgICAgIGlmICghbV9mbGFnc0NoYW5n
ZWRFdmVudE1vbml0b3IpIHsKICAgICAgICAgICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFr
UHRyKCk7CkBAIC0xMTg0LDcgKzEyMjgsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp2aWV3RGlkTW92
ZVRvV2luZG93KCkKICAgICAgICAgICAgIG1fdmlld0luV2luZG93Q2hhbmdlV2FzRGVmZXJyZWQg
PSB0cnVlOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB2aWV3U3RhdGVDaGFuZ2VzIHw9IFdl
YkNvcmU6OlZpZXdTdGF0ZTo6SXNJbldpbmRvdzsKLSAgICAgICAgbV9wYWdlLnZpZXdTdGF0ZURp
ZENoYW5nZSh2aWV3U3RhdGVDaGFuZ2VzKTsKKyAgICAgICAgbV9wYWdlLT52aWV3U3RhdGVEaWRD
aGFuZ2Uodmlld1N0YXRlQ2hhbmdlcyk7CiAKICAgICAgICAgW05TRXZlbnQgcmVtb3ZlTW9uaXRv
cjptX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvcl07CiAgICAgICAgIG1fZmxhZ3NDaGFuZ2VkRXZl
bnRNb25pdG9yID0gbmlsOwpAQCAtMTE5Nyw3ICsxMjQxLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6
dmlld0RpZE1vdmVUb1dpbmRvdygpCiAjZW5kaWYKICAgICB9CiAKLSAgICBtX3BhZ2Uuc2V0SW50
cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoaW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoKSk7Cisg
ICAgbV9wYWdlLT5zZXRJbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcihpbnRyaW5zaWNEZXZpY2VT
Y2FsZUZhY3RvcigpKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6dmlld0RpZENoYW5nZUJhY2tp
bmdQcm9wZXJ0aWVzKCkKQEAgLTEyMDcsMjMgKzEyNTEsMjMgQEAgdm9pZCBXZWJWaWV3SW1wbDo6
dmlld0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
bV9jb2xvclNwYWNlID0gbnVsbHB0cjsKLSAgICBpZiAoRHJhd2luZ0FyZWFQcm94eSAqZHJhd2lu
Z0FyZWEgPSBtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKKyAgICBpZiAoRHJhd2luZ0FyZWFQcm94eSAq
ZHJhd2luZ0FyZWEgPSBtX3BhZ2UtPmRyYXdpbmdBcmVhKCkpCiAgICAgICAgIGRyYXdpbmdBcmVh
LT5jb2xvclNwYWNlRGlkQ2hhbmdlKCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnZpZXdEaWRI
aWRlKCkKIHsKLSAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0
ZTo6SXNWaXNpYmxlKTsKKyAgICBtX3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpW
aWV3U3RhdGU6OklzVmlzaWJsZSk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnZpZXdEaWRVbmhp
ZGUoKQogewotICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRl
OjpJc1Zpc2libGUpOworICAgIG1fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZp
ZXdTdGF0ZTo6SXNWaXNpYmxlKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6YWN0aXZlU3BhY2VE
aWRDaGFuZ2UoKQogewotICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmll
d1N0YXRlOjpJc1Zpc2libGUpOworICAgIG1fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNv
cmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsKIH0KIAogTlNWaWV3ICpXZWJWaWV3SW1wbDo6aGl0
VGVzdChDR1BvaW50IHBvaW50KQpAQCAtMTI0MSw3ICsxMjg1LDcgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6cG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudChOU0V2ZW50ICpm
bGFnc0NoYW4KICAgICAgICAgbW9kaWZpZXJGbGFnczpmbGFnc0NoYW5nZWRFdmVudC5tb2RpZmll
ckZsYWdzIHRpbWVzdGFtcDpmbGFnc0NoYW5nZWRFdmVudC50aW1lc3RhbXAgd2luZG93TnVtYmVy
OmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvd051bWJlcgogICAgICAgICBjb250ZXh0OmZsYWdzQ2hh
bmdlZEV2ZW50LmNvbnRleHQgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07
CiAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudChmYWtlRXZlbnQsIG1fbGFzdFByZXNz
dXJlRXZlbnQuZ2V0KCksIG1fdmlldyk7Ci0gICAgbV9wYWdlLmhhbmRsZU1vdXNlRXZlbnQod2Vi
RXZlbnQpOworICAgIG1fcGFnZS0+aGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7CiB9CiAKIENv
bG9yU3BhY2VEYXRhIFdlYlZpZXdJbXBsOjpjb2xvclNwYWNlKCkKQEAgLTEyNjMsMTIgKzEzMDcs
MTIgQEAgQ29sb3JTcGFjZURhdGEgV2ViVmlld0ltcGw6OmNvbG9yU3BhY2UoKQogCiB2b2lkIFdl
YlZpZXdJbXBsOjpzZXRVbmRlcmxheUNvbG9yKE5TQ29sb3IgKnVuZGVybGF5Q29sb3IpCiB7Ci0g
ICAgbV9wYWdlLnNldFVuZGVybGF5Q29sb3IoV2ViQ29yZTo6Y29sb3JGcm9tTlNDb2xvcih1bmRl
cmxheUNvbG9yKSk7CisgICAgbV9wYWdlLT5zZXRVbmRlcmxheUNvbG9yKFdlYkNvcmU6OmNvbG9y
RnJvbU5TQ29sb3IodW5kZXJsYXlDb2xvcikpOwogfQogCiBOU0NvbG9yICpXZWJWaWV3SW1wbDo6
dW5kZXJsYXlDb2xvcigpIGNvbnN0CiB7Ci0gICAgV2ViQ29yZTo6Q29sb3Igd2ViQ29sb3IgPSBt
X3BhZ2UudW5kZXJsYXlDb2xvcigpOworICAgIFdlYkNvcmU6OkNvbG9yIHdlYkNvbG9yID0gbV9w
YWdlLT51bmRlcmxheUNvbG9yKCk7CiAgICAgaWYgKCF3ZWJDb2xvci5pc1ZhbGlkKCkpCiAgICAg
ICAgIHJldHVybiBuaWw7CiAKQEAgLTEyNzcsNyArMTMyMSw3IEBAIE5TQ29sb3IgKldlYlZpZXdJ
bXBsOjp1bmRlcmxheUNvbG9yKCkgY29uc3QKIAogTlNDb2xvciAqV2ViVmlld0ltcGw6OnBhZ2VF
eHRlbmRlZEJhY2tncm91bmRDb2xvcigpIGNvbnN0CiB7Ci0gICAgV2ViQ29yZTo6Q29sb3IgY29s
b3IgPSBtX3BhZ2UucGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yKCk7CisgICAgV2ViQ29yZTo6
Q29sb3IgY29sb3IgPSBtX3BhZ2UtPnBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcigpOwogICAg
IGlmICghY29sb3IuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gbmlsOwogCkBAIC0xMjg2LDEy
ICsxMzMwLDEyIEBAIE5TQ29sb3IgKldlYlZpZXdJbXBsOjpwYWdlRXh0ZW5kZWRCYWNrZ3JvdW5k
Q29sb3IoKSBjb25zdAogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRPdmVybGF5U2Nyb2xsYmFyU3R5
bGUoV1RGOjpPcHRpb25hbDxXZWJDb3JlOjpTY3JvbGxiYXJPdmVybGF5U3R5bGU+IHNjcm9sbGJh
clN0eWxlKQogewotICAgIG1fcGFnZS5zZXRPdmVybGF5U2Nyb2xsYmFyU3R5bGUoc2Nyb2xsYmFy
U3R5bGUpOworICAgIG1fcGFnZS0+c2V0T3ZlcmxheVNjcm9sbGJhclN0eWxlKHNjcm9sbGJhclN0
eWxlKTsKIH0KIAogV1RGOjpPcHRpb25hbDxXZWJDb3JlOjpTY3JvbGxiYXJPdmVybGF5U3R5bGU+
IFdlYlZpZXdJbXBsOjpvdmVybGF5U2Nyb2xsYmFyU3R5bGUoKSBjb25zdAogewotICAgIHJldHVy
biBtX3BhZ2Uub3ZlcmxheVNjcm9sbGJhclN0eWxlKCk7CisgICAgcmV0dXJuIG1fcGFnZS0+b3Zl
cmxheVNjcm9sbGJhclN0eWxlKCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OmJlZ2luRGVmZXJy
aW5nVmlld0luV2luZG93Q2hhbmdlcygpCkBAIC0xMzE1LDcgKzEzNTksNyBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjplbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzKCkKIAogICAgIGlmIChtX3Zp
ZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVkKSB7CiAgICAgICAgIGRpc3BhdGNoU2V0VG9wQ29u
dGVudEluc2V0KCk7Ci0gICAgICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6
Vmlld1N0YXRlOjpJc0luV2luZG93KTsKKyAgICAgICAgbV9wYWdlLT52aWV3U3RhdGVEaWRDaGFu
Z2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0luV2luZG93KTsKICAgICAgICAgbV92aWV3SW5XaW5k
b3dDaGFuZ2VXYXNEZWZlcnJlZCA9IGZhbHNlOwogICAgIH0KIH0KQEAgLTEzMzEsNyArMTM3NSw3
IEBAIHZvaWQgV2ViVmlld0ltcGw6OmVuZERlZmVycmluZ1ZpZXdJbldpbmRvd0NoYW5nZXNTeW5j
KCkKIAogICAgIGlmIChtX3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVkKSB7CiAgICAgICAg
IGRpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0KCk7Ci0gICAgICAgIG1fcGFnZS52aWV3U3RhdGVE
aWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0luV2luZG93KTsKKyAgICAgICAgbV9wYWdl
LT52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0luV2luZG93KTsKICAg
ICAgICAgbV92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9IGZhbHNlOwogICAgIH0KIH0K
QEAgLTEzNDYsNyArMTM5MCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnByZXBhcmVGb3JNb3ZlVG9X
aW5kb3coTlNXaW5kb3cgKnRhcmdldFdpbmRvdywgc3RkOjpmdW5jdGlvbjx2CiAgICAgbV9zaG91
bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMgPSBmYWxzZTsKIAogICAgIGF1dG8gd2Vha1RoaXMg
PSBjcmVhdGVXZWFrUHRyKCk7Ci0gICAgbV9wYWdlLmluc3RhbGxWaWV3U3RhdGVDaGFuZ2VDb21w
bGV0aW9uSGFuZGxlcihbd2Vha1RoaXMsIGNvbXBsZXRpb25IYW5kbGVyXSgpIHsKKyAgICBtX3Bh
Z2UtPmluc3RhbGxWaWV3U3RhdGVDaGFuZ2VDb21wbGV0aW9uSGFuZGxlcihbd2Vha1RoaXMsIGNv
bXBsZXRpb25IYW5kbGVyXSgpIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIAogICAg
ICAgICBpZiAoIXdlYWtUaGlzKQpAQCAtMTM1Nyw3ICsxNDAxLDcgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6cHJlcGFyZUZvck1vdmVUb1dpbmRvdyhOU1dpbmRvdyAqdGFyZ2V0V2luZG93LCBzdGQ6OmZ1
bmN0aW9uPHYKICAgICB9KTsKIAogICAgIGRpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0KCk7Ci0g
ICAgbV9wYWdlLnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OklzSW5XaW5k
b3csIGZhbHNlLCBXZWJQYWdlUHJveHk6OlZpZXdTdGF0ZUNoYW5nZURpc3BhdGNoTW9kZTo6SW1t
ZWRpYXRlKTsKKyAgICBtX3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3Rh
dGU6OklzSW5XaW5kb3csIGZhbHNlLCBXZWJQYWdlUHJveHk6OlZpZXdTdGF0ZUNoYW5nZURpc3Bh
dGNoTW9kZTo6SW1tZWRpYXRlKTsKICAgICBtX3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVk
ID0gZmFsc2U7CiB9CiAKQEAgLTEzNzIsNyArMTQxNiw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnVw
ZGF0ZVNlY3VyZUlucHV0U3RhdGUoKQogICAgIH0KICAgICAvLyBXS1ZpZXcgaGFzIGEgc2luZ2xl
IGlucHV0IGNvbnRleHQgZm9yIGFsbCBlZGl0YWJsZSBhcmVhcyAoZXhjZXB0IGZvciBwbHVnLWlu
cykuCiAgICAgTlNUZXh0SW5wdXRDb250ZXh0ICpjb250ZXh0ID0gW21fdmlldyBfc3VwZXJJbnB1
dENvbnRleHRdOwotICAgIGJvb2wgaXNJblBhc3N3b3JkRmllbGQgPSBtX3BhZ2UuZWRpdG9yU3Rh
dGUoKS5pc0luUGFzc3dvcmRGaWVsZDsKKyAgICBib29sIGlzSW5QYXNzd29yZEZpZWxkID0gbV9w
YWdlLT5lZGl0b3JTdGF0ZSgpLmlzSW5QYXNzd29yZEZpZWxkOwogCiAgICAgaWYgKGlzSW5QYXNz
d29yZEZpZWxkKSB7CiAgICAgICAgIGlmICghbV9pblNlY3VyZUlucHV0U3RhdGUpCkBAIC0xNDE4
LDcgKzE0NjIsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRQbHVnaW5Db21wbGV4VGV4dElucHV0
U3RhdGUoUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlIHBsdQogICAgICAgICByZXR1cm47CiAK
ICAgICAvLyBTZW5kIGJhY2sgYW4gZW1wdHkgc3RyaW5nIHRvIHRoZSBwbHVnLWluLiBUaGlzIHdp
bGwgZGlzYWJsZSB0ZXh0IGlucHV0LgotICAgIG1fcGFnZS5zZW5kQ29tcGxleFRleHRJbnB1dFRv
UGx1Z2luKG1fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIFN0cmluZygpKTsKKyAg
ICBtX3BhZ2UtPnNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4obV9wbHVnaW5Db21wbGV4VGV4
dElucHV0SWRlbnRpZmllciwgU3RyaW5nKCkpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRQ
bHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGVBbmRJZGVudGlmaWVyKFBsdWdpbkNvbXBsZXhUZXh0
SW5wdXRTdGF0ZSBwbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUsIHVpbnQ2NF90IHBsdWdpbkNv
bXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKQpAQCAtMTQ1NSw3ICsxNDk5LDcgQEAgYm9vbCBXZWJW
aWV3SW1wbDo6aGFuZGxlUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURvd24oTlNFdmVudCAqZXZl
bnQpCiAgICAgQk9PTCBkaWRIYW5kbGVFdmVudCA9IFtbV0tUZXh0SW5wdXRXaW5kb3dDb250cm9s
bGVyIHNoYXJlZFRleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXJdIGludGVycHJldEtleUV2ZW50OmV2
ZW50IHVzaW5nTGVnYWN5Q29jb2FUZXh0SW5wdXQ6dXNpbmdMZWdhY3lDb2NvYVRleHRJbnB1dCBz
dHJpbmc6JnN0cmluZ107CiAKICAgICBpZiAoc3RyaW5nKSB7Ci0gICAgICAgIG1fcGFnZS5zZW5k
Q29tcGxleFRleHRJbnB1dFRvUGx1Z2luKG1fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZp
ZXIsIHN0cmluZyk7CisgICAgICAgIG1fcGFnZS0+c2VuZENvbXBsZXhUZXh0SW5wdXRUb1BsdWdp
bihtX3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBzdHJpbmcpOwogCiAgICAgICAg
IGlmICghdXNpbmdMZWdhY3lDb2NvYVRleHRJbnB1dCkKICAgICAgICAgICAgIG1fcGx1Z2luQ29t
cGxleFRleHRJbnB1dFN0YXRlID0gUGx1Z2luQ29tcGxleFRleHRJbnB1dERpc2FibGVkOwpAQCAt
MTUyMiw3ICsxNTY2LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6dHJ5UG9zdFByb2Nlc3NQbHVnaW5D
b21wbGV4VGV4dElucHV0S2V5RG93bihOU0V2ZW50ICpldmVudCkKIAogdm9pZCBXZWJWaWV3SW1w
bDo6aGFuZGxlQWNjZXB0ZWRBbHRlcm5hdGl2ZVRleHQoY29uc3QgU3RyaW5nJiBhY2NlcHRlZEFs
dGVybmF0aXZlKQogewotICAgIG1fcGFnZS5oYW5kbGVBbHRlcm5hdGl2ZVRleHRVSVJlc3VsdChh
Y2NlcHRlZEFsdGVybmF0aXZlKTsKKyAgICBtX3BhZ2UtPmhhbmRsZUFsdGVybmF0aXZlVGV4dFVJ
UmVzdWx0KGFjY2VwdGVkQWx0ZXJuYXRpdmUpOwogfQogCiAKQEAgLTE1NDYsNyArMTU5MCw3IEBA
IHZvaWQgV2ViVmlld0ltcGw6OnByZXNzdXJlQ2hhbmdlV2l0aEV2ZW50KE5TRXZlbnQgKmV2ZW50
KQogICAgICAgICByZXR1cm47CiAKICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KGV2
ZW50LCBtX2xhc3RQcmVzc3VyZUV2ZW50LmdldCgpLCBtX3ZpZXcpOwotICAgIG1fcGFnZS5oYW5k
bGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsKKyAgICBtX3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQod2Vi
RXZlbnQpOwogCiAgICAgbV9sYXN0UHJlc3N1cmVFdmVudCA9IGV2ZW50OwogI2VuZGlmCkBAIC0x
NTk2LDcgKzE2NDAsNyBAQCBOU1dpbmRvdyAqV2ViVmlld0ltcGw6OmNyZWF0ZUZ1bGxTY3JlZW5X
aW5kb3coKQogCiBib29sIFdlYlZpZXdJbXBsOjppc0VkaXRhYmxlKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gbV9wYWdlLmlzRWRpdGFibGUoKTsKKyAgICByZXR1cm4gbV9wYWdlLT5pc0VkaXRhYmxl
KCk7CiB9CiAKIHR5cGVkZWYgSGFzaE1hcDxTRUwsIFN0cmluZz4gU2VsZWN0b3JOYW1lTWFwOwpA
QCAtMTY2MSw3ICsxNzA1LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6ZXhlY3V0ZVNhdmVkQ29tbWFu
ZEJ5U2VsZWN0b3IoU0VMIHNlbGVjdG9yKQogCiB2b2lkIFdlYlZpZXdJbXBsOjpleGVjdXRlRWRp
dENvbW1hbmRGb3JTZWxlY3RvcihTRUwgc2VsZWN0b3IsIGNvbnN0IFN0cmluZyYgYXJndW1lbnQp
CiB7Ci0gICAgbV9wYWdlLmV4ZWN1dGVFZGl0Q29tbWFuZChjb21tYW5kTmFtZUZvclNlbGVjdG9y
KHNlbGVjdG9yKSwgYXJndW1lbnQpOworICAgIG1fcGFnZS0+ZXhlY3V0ZUVkaXRDb21tYW5kKGNv
bW1hbmROYW1lRm9yU2VsZWN0b3Ioc2VsZWN0b3IpLCBhcmd1bWVudCk7CiB9CiAKIHZvaWQgV2Vi
Vmlld0ltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQoUmVmUHRyPFdlYkVkaXRDb21tYW5kUHJveHk+
IHBycENvbW1hbmQsIFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbyB1bmRvT3JSZWRvKQpAQCAtMTY4
OCw5ICsxNzMyLDkgQEAgYm9vbCBXZWJWaWV3SW1wbDo6d3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9h
cmQoTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkLCBOU0FycmF5ICoKICAgICBbcGFzdGVib2FyZCBk
ZWNsYXJlVHlwZXM6dHlwZXMgb3duZXI6bmlsXTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8
IG51bVR5cGVzOyArK2kpIHsKICAgICAgICAgaWYgKFtbdHlwZXMgb2JqZWN0QXRJbmRleDppXSBp
c0VxdWFsVG86TlNTdHJpbmdQYm9hcmRUeXBlXSkKLSAgICAgICAgICAgIFtwYXN0ZWJvYXJkIHNl
dFN0cmluZzptX3BhZ2Uuc3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVib2FyZCgpIGZvclR5cGU6TlNT
dHJpbmdQYm9hcmRUeXBlXTsKKyAgICAgICAgICAgIFtwYXN0ZWJvYXJkIHNldFN0cmluZzptX3Bh
Z2UtPnN0cmluZ1NlbGVjdGlvbkZvclBhc3RlYm9hcmQoKSBmb3JUeXBlOk5TU3RyaW5nUGJvYXJk
VHlwZV07CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgUmVmUHRyPFdlYkNvcmU6OlNoYXJl
ZEJ1ZmZlcj4gYnVmZmVyID0gbV9wYWdlLmRhdGFTZWxlY3Rpb25Gb3JQYXN0ZWJvYXJkKFt0eXBl
cyBvYmplY3RBdEluZGV4OmldKTsKKyAgICAgICAgICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRC
dWZmZXI+IGJ1ZmZlciA9IG1fcGFnZS0+ZGF0YVNlbGVjdGlvbkZvclBhc3RlYm9hcmQoW3R5cGVz
IG9iamVjdEF0SW5kZXg6aV0pOwogICAgICAgICAgICAgW3Bhc3RlYm9hcmQgc2V0RGF0YTpidWZm
ZXIgPyBidWZmZXItPmNyZWF0ZU5TRGF0YSgpLmdldCgpIDogbmlsIGZvclR5cGU6W3R5cGVzIG9i
amVjdEF0SW5kZXg6aV1dOwogICAgICAgICB9CiAgICAgfQpAQCAtMTY5OSwxMiArMTc0MywxMiBA
QCBib29sIFdlYlZpZXdJbXBsOjp3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZChOU1Bhc3RlYm9h
cmQgKnBhc3RlYm9hcmQsIE5TQXJyYXkgKgogCiBib29sIFdlYlZpZXdJbXBsOjpyZWFkU2VsZWN0
aW9uRnJvbVBhc3RlYm9hcmQoTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkKQogewotICAgIHJldHVy
biBtX3BhZ2UucmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkKFtwYXN0ZWJvYXJkIG5hbWVdKTsK
KyAgICByZXR1cm4gbV9wYWdlLT5yZWFkU2VsZWN0aW9uRnJvbVBhc3RlYm9hcmQoW3Bhc3RlYm9h
cmQgbmFtZV0pOwogfQogCiBpZCBXZWJWaWV3SW1wbDo6dmFsaWRSZXF1ZXN0b3JGb3JTZW5kQW5k
UmV0dXJuVHlwZXMoTlNTdHJpbmcgKnNlbmRUeXBlLCBOU1N0cmluZyAqcmV0dXJuVHlwZSkKIHsK
LSAgICBFZGl0b3JTdGF0ZSBlZGl0b3JTdGF0ZSA9IG1fcGFnZS5lZGl0b3JTdGF0ZSgpOworICAg
IEVkaXRvclN0YXRlIGVkaXRvclN0YXRlID0gbV9wYWdlLT5lZGl0b3JTdGF0ZSgpOwogICAgIGJv
b2wgaXNWYWxpZFNlbmRUeXBlID0gZmFsc2U7CiAKICAgICBpZiAoc2VuZFR5cGUgJiYgIWVkaXRv
clN0YXRlLnNlbGVjdGlvbklzTm9uZSkgewpAQCAtMTcyOCw3ICsxNzcyLDcgQEAgaWQgV2ViVmll
d0ltcGw6OnZhbGlkUmVxdWVzdG9yRm9yU2VuZEFuZFJldHVyblR5cGVzKE5TU3RyaW5nICpzZW5k
VHlwZSwgTlNTdHJpbmcKIAogdm9pZCBXZWJWaWV3SW1wbDo6Y2VudGVyU2VsZWN0aW9uSW5WaXNp
YmxlQXJlYSgpCiB7Ci0gICAgbV9wYWdlLmNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEoKTsK
KyAgICBtX3BhZ2UtPmNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEoKTsKIH0KIAogdm9pZCBX
ZWJWaWV3SW1wbDo6c2VsZWN0aW9uRGlkQ2hhbmdlKCkKQEAgLTE3NDMsMTEgKzE3ODcsMTEgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6c3RhcnRPYnNlcnZpbmdGb250UGFuZWwoKQogCiB2b2lkIFdlYlZp
ZXdJbXBsOjp1cGRhdGVGb250UGFuZWxJZk5lZWRlZCgpCiB7Ci0gICAgY29uc3QgRWRpdG9yU3Rh
dGUmIGVkaXRvclN0YXRlID0gbV9wYWdlLmVkaXRvclN0YXRlKCk7CisgICAgY29uc3QgRWRpdG9y
U3RhdGUmIGVkaXRvclN0YXRlID0gbV9wYWdlLT5lZGl0b3JTdGF0ZSgpOwogICAgIGlmIChlZGl0
b3JTdGF0ZS5zZWxlY3Rpb25Jc05vbmUgfHwgIWVkaXRvclN0YXRlLmlzQ29udGVudEVkaXRhYmxl
KQogICAgICAgICByZXR1cm47CiAgICAgaWYgKFtOU0ZvbnRQYW5lbCBzaGFyZWRGb250UGFuZWxF
eGlzdHNdICYmIFtbTlNGb250UGFuZWwgc2hhcmVkRm9udFBhbmVsXSBpc1Zpc2libGVdKSB7Ci0g
ICAgICAgIG1fcGFnZS5mb250QXRTZWxlY3Rpb24oW10oY29uc3QgU3RyaW5nJiBmb250TmFtZSwg
ZG91YmxlIGZvbnRTaXplLCBib29sIHNlbGVjdGlvbkhhc011bHRpcGxlRm9udHMsIFdlYktpdDo6
Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgICAgICBtX3BhZ2UtPmZvbnRBdFNlbGVj
dGlvbihbXShjb25zdCBTdHJpbmcmIGZvbnROYW1lLCBkb3VibGUgZm9udFNpemUsIGJvb2wgc2Vs
ZWN0aW9uSGFzTXVsdGlwbGVGb250cywgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9y
KSB7CiAgICAgICAgICAgICBOU0ZvbnQgKmZvbnQgPSBbTlNGb250IGZvbnRXaXRoTmFtZTpmb250
TmFtZSBzaXplOmZvbnRTaXplXTsKICAgICAgICAgICAgIGlmIChmb250KQogICAgICAgICAgICAg
ICAgIFtbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl0gc2V0U2VsZWN0ZWRGb250OmZv
bnQgaXNNdWx0aXBsZTpzZWxlY3Rpb25IYXNNdWx0aXBsZUZvbnRzXTsKQEAgLTE3NjEsNyArMTgw
NSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmNoYW5nZUZvbnRGcm9tRm9udFBhbmVsKCkKICAgICBO
U0ZvbnQgKmZvbnQgPSBbZm9udE1hbmFnZXIgY29udmVydEZvbnQ6Zm9udE1hbmFnZXIuc2VsZWN0
ZWRGb250XTsKICAgICBpZiAoIWZvbnQpCiAgICAgICAgIHJldHVybjsKLSAgICBtX3BhZ2Uuc2V0
Rm9udChmb250LmZhbWlseU5hbWUsIGZvbnQucG9pbnRTaXplLCBmb250LmZvbnREZXNjcmlwdG9y
LnN5bWJvbGljVHJhaXRzKTsKKyAgICBtX3BhZ2UtPnNldEZvbnQoZm9udC5mYW1pbHlOYW1lLCBm
b250LnBvaW50U2l6ZSwgZm9udC5mb250RGVzY3JpcHRvci5zeW1ib2xpY1RyYWl0cyk7CiB9CiAK
IHN0YXRpYyBOU01lbnVJdGVtICptZW51SXRlbShpZCA8TlNWYWxpZGF0ZWRVc2VySW50ZXJmYWNl
SXRlbT4gaXRlbSkKQEAgLTE3ODUsMTEgKzE4MjksMTEgQEAgYm9vbCBXZWJWaWV3SW1wbDo6dmFs
aWRhdGVVc2VySW50ZXJmYWNlSXRlbShpZCA8TlNWYWxpZGF0ZWRVc2VySW50ZXJmYWNlSXRlbT4g
aXQKICAgICBpZiAoYWN0aW9uID09IEBzZWxlY3RvcihzaG93R3Vlc3NQYW5lbDopKSB7CiAgICAg
ICAgIGlmIChOU01lbnVJdGVtICptZW51SXRlbSA9IFdlYktpdDo6bWVudUl0ZW0oaXRlbSkpCiAg
ICAgICAgICAgICBbbWVudUl0ZW0gc2V0VGl0bGU6V2ViQ29yZTo6Y29udGV4dE1lbnVJdGVtVGFn
U2hvd1NwZWxsaW5nUGFuZWwoIVtbW05TU3BlbGxDaGVja2VyIHNoYXJlZFNwZWxsQ2hlY2tlcl0g
c3BlbGxpbmdQYW5lbF0gaXNWaXNpYmxlXSldOwotICAgICAgICByZXR1cm4gbV9wYWdlLmVkaXRv
clN0YXRlKCkuaXNDb250ZW50RWRpdGFibGU7CisgICAgICAgIHJldHVybiBtX3BhZ2UtPmVkaXRv
clN0YXRlKCkuaXNDb250ZW50RWRpdGFibGU7CiAgICAgfQogCiAgICAgaWYgKGFjdGlvbiA9PSBA
c2VsZWN0b3IoY2hlY2tTcGVsbGluZzopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoY2hhbmdlU3Bl
bGxpbmc6KSkKLSAgICAgICAgcmV0dXJuIG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVk
aXRhYmxlOworICAgICAgICByZXR1cm4gbV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVk
aXRhYmxlOwogCiAgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlQ29udGludW91c1Nw
ZWxsQ2hlY2tpbmc6KSkgewogICAgICAgICBib29sIGVuYWJsZWQgPSBUZXh0Q2hlY2tlcjo6aXND
b250aW51b3VzU3BlbGxDaGVja2luZ0FsbG93ZWQoKTsKQEAgLTE4MDcsNTQgKzE4NTEsNTQgQEAg
Ym9vbCBXZWJWaWV3SW1wbDo6dmFsaWRhdGVVc2VySW50ZXJmYWNlSXRlbShpZCA8TlNWYWxpZGF0
ZWRVc2VySW50ZXJmYWNlSXRlbT4gaXQKICAgICBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0b2dn
bGVBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb246KSkgewogICAgICAgICBib29sIGNoZWNrZWQg
PSBUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJs
ZWQ7CiAgICAgICAgIFttZW51SXRlbShpdGVtKSBzZXRTdGF0ZTpjaGVja2VkID8gTlNPblN0YXRl
IDogTlNPZmZTdGF0ZV07Ci0gICAgICAgIHJldHVybiBtX3BhZ2UuZWRpdG9yU3RhdGUoKS5pc0Nv
bnRlbnRFZGl0YWJsZTsKKyAgICAgICAgcmV0dXJuIG1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0Nv
bnRlbnRFZGl0YWJsZTsKICAgICB9CiAKICAgICBpZiAoYWN0aW9uID09IEBzZWxlY3RvcihvcmRl
ckZyb250U3Vic3RpdHV0aW9uc1BhbmVsOikpIHsKICAgICAgICAgaWYgKE5TTWVudUl0ZW0gKm1l
bnVJdGVtID0gV2ViS2l0OjptZW51SXRlbShpdGVtKSkKICAgICAgICAgICAgIFttZW51SXRlbSBz
ZXRUaXRsZTpXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTaG93U3Vic3RpdHV0aW9ucyghW1tb
TlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBzdWJzdGl0dXRpb25zUGFuZWxdIGlz
VmlzaWJsZV0pXTsKLSAgICAgICAgcmV0dXJuIG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlzQ29udGVu
dEVkaXRhYmxlOworICAgICAgICByZXR1cm4gbV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVu
dEVkaXRhYmxlOwogICAgIH0KIAogICAgIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZVNt
YXJ0SW5zZXJ0RGVsZXRlOikpIHsKLSAgICAgICAgYm9vbCBjaGVja2VkID0gbV9wYWdlLmlzU21h
cnRJbnNlcnREZWxldGVFbmFibGVkKCk7CisgICAgICAgIGJvb2wgY2hlY2tlZCA9IG1fcGFnZS0+
aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKICAgICAgICAgW21lbnVJdGVtKGl0ZW0pIHNl
dFN0YXRlOmNoZWNrZWQgPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKLSAgICAgICAgcmV0dXJu
IG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlOworICAgICAgICByZXR1cm4g
bV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlOwogICAgIH0KIAogICAgIGlm
IChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZUF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uOikp
IHsKICAgICAgICAgYm9vbCBjaGVja2VkID0gVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0
aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQ7CiAgICAgICAgIFttZW51SXRlbShpdGVtKSBzZXRT
dGF0ZTpjaGVja2VkID8gTlNPblN0YXRlIDogTlNPZmZTdGF0ZV07Ci0gICAgICAgIHJldHVybiBt
X3BhZ2UuZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZTsKKyAgICAgICAgcmV0dXJuIG1f
cGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZTsKICAgICB9CiAKICAgICBpZiAo
YWN0aW9uID09IEBzZWxlY3Rvcih0b2dnbGVBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uOikpIHsK
ICAgICAgICAgYm9vbCBjaGVja2VkID0gVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNE
YXNoU3Vic3RpdHV0aW9uRW5hYmxlZDsKICAgICAgICAgW21lbnVJdGVtKGl0ZW0pIHNldFN0YXRl
OmNoZWNrZWQgPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKLSAgICAgICAgcmV0dXJuIG1fcGFn
ZS5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlOworICAgICAgICByZXR1cm4gbV9wYWdl
LT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlOwogICAgIH0KIAogICAgIGlmIChhY3Rp
b24gPT0gQHNlbGVjdG9yKHRvZ2dsZUF1dG9tYXRpY0xpbmtEZXRlY3Rpb246KSkgewogICAgICAg
ICBib29sIGNoZWNrZWQgPSBUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRpY0xpbmtEZXRl
Y3Rpb25FbmFibGVkOwogICAgICAgICBbbWVudUl0ZW0oaXRlbSkgc2V0U3RhdGU6Y2hlY2tlZCA/
IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVdOwotICAgICAgICByZXR1cm4gbV9wYWdlLmVkaXRvclN0
YXRlKCkuaXNDb250ZW50RWRpdGFibGU7CisgICAgICAgIHJldHVybiBtX3BhZ2UtPmVkaXRvclN0
YXRlKCkuaXNDb250ZW50RWRpdGFibGU7CiAgICAgfQogCiAgICAgaWYgKGFjdGlvbiA9PSBAc2Vs
ZWN0b3IodG9nZ2xlQXV0b21hdGljVGV4dFJlcGxhY2VtZW50OikpIHsKICAgICAgICAgYm9vbCBj
aGVja2VkID0gVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRF
bmFibGVkOwogICAgICAgICBbbWVudUl0ZW0oaXRlbSkgc2V0U3RhdGU6Y2hlY2tlZCA/IE5TT25T
dGF0ZSA6IE5TT2ZmU3RhdGVdOwotICAgICAgICByZXR1cm4gbV9wYWdlLmVkaXRvclN0YXRlKCku
aXNDb250ZW50RWRpdGFibGU7CisgICAgICAgIHJldHVybiBtX3BhZ2UtPmVkaXRvclN0YXRlKCku
aXNDb250ZW50RWRpdGFibGU7CiAgICAgfQogCiAgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3Io
dXBwZXJjYXNlV29yZDopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IobG93ZXJjYXNlV29yZDopIHx8
IGFjdGlvbiA9PSBAc2VsZWN0b3IoY2FwaXRhbGl6ZVdvcmQ6KSkKLSAgICAgICAgcmV0dXJuIG1f
cGFnZS5lZGl0b3JTdGF0ZSgpLnNlbGVjdGlvbklzUmFuZ2UgJiYgbV9wYWdlLmVkaXRvclN0YXRl
KCkuaXNDb250ZW50RWRpdGFibGU7CisgICAgICAgIHJldHVybiBtX3BhZ2UtPmVkaXRvclN0YXRl
KCkuc2VsZWN0aW9uSXNSYW5nZSAmJiBtX3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRp
dGFibGU7CiAKICAgICBpZiAoYWN0aW9uID09IEBzZWxlY3RvcihzdG9wU3BlYWtpbmc6KSkKICAg
ICAgICAgcmV0dXJuIFtOU0FwcCBpc1NwZWFraW5nXTsKIAogICAgIC8vIFRoZSBjZW50ZXJTZWxl
Y3Rpb25JblZpc2libGVBcmVhOiBzZWxlY3RvciBpcyBlbmFibGVkIGlmIHRoZXJlJ3MgYSBzZWxl
Y3Rpb24gcmFuZ2Ugb3IgaWYgdGhlcmUncyBhbiBpbnNlcnRpb24gcG9pbnQgaW4gYW4gZWRpdGFi
bGUgYXJlYS4KICAgICBpZiAoYWN0aW9uID09IEBzZWxlY3RvcihjZW50ZXJTZWxlY3Rpb25JblZp
c2libGVBcmVhOikpCi0gICAgICAgIHJldHVybiBtX3BhZ2UuZWRpdG9yU3RhdGUoKS5zZWxlY3Rp
b25Jc1JhbmdlIHx8IChtX3BhZ2UuZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZSAmJiAh
bV9wYWdlLmVkaXRvclN0YXRlKCkuc2VsZWN0aW9uSXNOb25lKTsKKyAgICAgICAgcmV0dXJuIG1f
cGFnZS0+ZWRpdG9yU3RhdGUoKS5zZWxlY3Rpb25Jc1JhbmdlIHx8IChtX3BhZ2UtPmVkaXRvclN0
YXRlKCkuaXNDb250ZW50RWRpdGFibGUgJiYgIW1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5zZWxlY3Rp
b25Jc05vbmUpOwogCiAgICAgLy8gTmV4dCwgaGFuZGxlIGVkaXRvciBjb21tYW5kcy4gU3RhcnQg
YnkgcmV0dXJuaW5nIHRydWUgZm9yIGFueXRoaW5nIHRoYXQgaXMgbm90IGFuIGVkaXRvciBjb21t
YW5kLgogICAgIC8vIFJldHVybmluZyB0cnVlIGlzIHRoZSBkZWZhdWx0IHRoaW5nIHRvIGRvIGlu
IGFuIEFwcEtpdCB2YWxpZGF0ZSBtZXRob2QgZm9yIGFueSBzZWxlY3RvciB0aGF0IGlzIG5vdCBy
ZWNvZ25pemVkLgpAQCAtMTg3MCw3ICsxOTE0LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6dmFsaWRh
dGVVc2VySW50ZXJmYWNlSXRlbShpZCA8TlNWYWxpZGF0ZWRVc2VySW50ZXJmYWNlSXRlbT4gaXQK
ICAgICAgICAgLy8gRklYTUU6IFRoZW9yZXRpY2FsbHksIHRoZXJlIGlzIGEgcmFjZSBoZXJlOyB3
aGVuIHdlIGdldCB0aGUgYW5zd2VyIGl0IG1pZ2h0IGJlIG9sZCwgZnJvbSBhIHByZXZpb3VzIHRp
bWUKICAgICAgICAgLy8gd2UgYXNrZWQgZm9yIHRoZSBzYW1lIGNvbW1hbmQ7IHRoZXJlIGlzIG5v
IGd1YXJhbnRlZSB0aGUgYW5zd2VyIGlzIHN0aWxsIHZhbGlkLgogICAgICAgICBhdXRvIHdlYWtU
aGlzID0gY3JlYXRlV2Vha1B0cigpOwotICAgICAgICBtX3BhZ2UudmFsaWRhdGVDb21tYW5kKGNv
bW1hbmROYW1lLCBbd2Vha1RoaXNdKGNvbnN0IFN0cmluZyYgY29tbWFuZE5hbWUsIGJvb2wgaXNF
bmFibGVkLCBpbnQzMl90IHN0YXRlLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3Ip
IHsKKyAgICAgICAgbV9wYWdlLT52YWxpZGF0ZUNvbW1hbmQoY29tbWFuZE5hbWUsIFt3ZWFrVGhp
c10oY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgYm9vbCBpc0VuYWJsZWQsIGludDMyX3Qgc3Rh
dGUsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewogICAgICAgICAgICAgaWYg
KCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CiAKQEAgLTE5MDEsNyArMTk0NSw3
IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldFVzZXJJbnRlcmZhY2VJdGVtU3RhdGUoTlNTdHJpbmcg
KmNvbW1hbmROYW1lLCBib29sIGVuYWJsZWQsCiAKIHZvaWQgV2ViVmlld0ltcGw6OnN0YXJ0U3Bl
YWtpbmcoKQogewotICAgIG1fcGFnZS5nZXRTZWxlY3Rpb25PckNvbnRlbnRzQXNTdHJpbmcoW10o
Y29uc3QgU3RyaW5nJiBzdHJpbmcsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikg
eworICAgIG1fcGFnZS0+Z2V0U2VsZWN0aW9uT3JDb250ZW50c0FzU3RyaW5nKFtdKGNvbnN0IFN0
cmluZyYgc3RyaW5nLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKICAgICAg
ICAgaWYgKGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKCFzdHJpbmcpCkBAIC0xOTMwLDIwICsxOTc0LDIw
IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNob3dHdWVzc1BhbmVsKGlkIHNlbmRlcikKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIG1fcGFnZS5hZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcodHJ1
ZSk7CisgICAgbV9wYWdlLT5hZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmcodHJ1ZSk7CiAgICAgW3Nw
ZWxsaW5nUGFuZWwgb3JkZXJGcm9udDpzZW5kZXJdOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpj
aGVja1NwZWxsaW5nKCkKIHsKLSAgICBtX3BhZ2UuYWR2YW5jZVRvTmV4dE1pc3NwZWxsaW5nKGZh
bHNlKTsKKyAgICBtX3BhZ2UtPmFkdmFuY2VUb05leHRNaXNzcGVsbGluZyhmYWxzZSk7CiB9CiAK
IHZvaWQgV2ViVmlld0ltcGw6OmNoYW5nZVNwZWxsaW5nKGlkIHNlbmRlcikKIHsKICAgICBOU1N0
cmluZyAqd29yZCA9IFtbc2VuZGVyIHNlbGVjdGVkQ2VsbF0gc3RyaW5nVmFsdWVdOwogCi0gICAg
bV9wYWdlLmNoYW5nZVNwZWxsaW5nVG9Xb3JkKHdvcmQpOworICAgIG1fcGFnZS0+Y2hhbmdlU3Bl
bGxpbmdUb1dvcmQod29yZCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnRvZ2dsZUNvbnRpbnVv
dXNTcGVsbENoZWNraW5nKCkKQEAgLTE5NTEsNyArMTk5NSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6
OnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCkKICAgICBib29sIHNwZWxsQ2hlY2tpbmdF
bmFibGVkID0gIVRleHRDaGVja2VyOjpzdGF0ZSgpLmlzQ29udGludW91c1NwZWxsQ2hlY2tpbmdF
bmFibGVkOwogICAgIFRleHRDaGVja2VyOjpzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJs
ZWQoc3BlbGxDaGVja2luZ0VuYWJsZWQpOwogCi0gICAgbV9wYWdlLnByb2Nlc3MoKS51cGRhdGVU
ZXh0Q2hlY2tlclN0YXRlKCk7CisgICAgbV9wYWdlLT5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNr
ZXJTdGF0ZSgpOwogfQogCiBib29sIFdlYlZpZXdJbXBsOjppc0dyYW1tYXJDaGVja2luZ0VuYWJs
ZWQoKQpAQCAtMTk2NSw3ICsyMDA5LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0R3JhbW1hckNo
ZWNraW5nRW5hYmxlZChib29sIGZsYWcpCiAgICAgICAgIHJldHVybjsKIAogICAgIFRleHRDaGVj
a2VyOjpzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKGZsYWcpOwotICAgIG1fcGFnZS5wcm9jZXNz
KCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOworICAgIG1fcGFnZS0+cHJvY2VzcygpLnVwZGF0
ZVRleHRDaGVja2VyU3RhdGUoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6dG9nZ2xlR3JhbW1h
ckNoZWNraW5nKCkKQEAgLTE5NzMsMTQgKzIwMTcsMTQgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dG9n
Z2xlR3JhbW1hckNoZWNraW5nKCkKICAgICBib29sIGdyYW1tYXJDaGVja2luZ0VuYWJsZWQgPSAh
VGV4dENoZWNrZXI6OnN0YXRlKCkuaXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkOwogICAgIFRleHRD
aGVja2VyOjpzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKGdyYW1tYXJDaGVja2luZ0VuYWJsZWQp
OwogCi0gICAgbV9wYWdlLnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CisgICAg
bV9wYWdlLT5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOwogfQogCiB2b2lkIFdl
YlZpZXdJbXBsOjp0b2dnbGVBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb24oKQogewogICAgIFRl
eHRDaGVja2VyOjpzZXRBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25FbmFibGVkKCFUZXh0Q2hl
Y2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlvbkVuYWJsZWQpOwogCi0g
ICAgbV9wYWdlLnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CisgICAgbV9wYWdl
LT5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOwogfQogCiB2b2lkIFdlYlZpZXdJ
bXBsOjpvcmRlckZyb250U3Vic3RpdHV0aW9uc1BhbmVsKGlkIHNlbmRlcikKQEAgLTIwMDEsNyAr
MjA0NSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6Om9yZGVyRnJvbnRTdWJzdGl0dXRpb25zUGFuZWwo
aWQgc2VuZGVyKQogCiB2b2lkIFdlYlZpZXdJbXBsOjp0b2dnbGVTbWFydEluc2VydERlbGV0ZSgp
CiB7Ci0gICAgbV9wYWdlLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCghbV9wYWdlLmlzU21h
cnRJbnNlcnREZWxldGVFbmFibGVkKCkpOworICAgIG1fcGFnZS0+c2V0U21hcnRJbnNlcnREZWxl
dGVFbmFibGVkKCFtX3BhZ2UtPmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkpOwogfQogCiBi
b29sIFdlYlZpZXdJbXBsOjppc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCgpCkBA
IC0yMDE1LDEzICsyMDU5LDEzIEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldEF1dG9tYXRpY1F1b3Rl
U3Vic3RpdHV0aW9uRW5hYmxlZChib29sIGZsYWcpCiAgICAgICAgIHJldHVybjsKIAogICAgIFRl
eHRDaGVja2VyOjpzZXRBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQoZmxhZyk7Ci0g
ICAgbV9wYWdlLnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CisgICAgbV9wYWdl
LT5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOwogfQogCiB2b2lkIFdlYlZpZXdJ
bXBsOjp0b2dnbGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbigpCiB7CiAgICAgVGV4dENoZWNr
ZXI6OnNldEF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6OnN0
YXRlKCkuaXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQpOwotICAgIG1fcGFnZS5w
cm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOworICAgIG1fcGFnZS0+cHJvY2Vzcygp
LnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKIH0KIAogYm9vbCBXZWJWaWV3SW1wbDo6aXNBdXRv
bWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCgpCkBAIC0yMDM1LDEzICsyMDc5LDEzIEBAIHZv
aWQgV2ViVmlld0ltcGw6OnNldEF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkKGJvb2wg
ZmxhZykKICAgICAgICAgcmV0dXJuOwogCiAgICAgVGV4dENoZWNrZXI6OnNldEF1dG9tYXRpY0Rh
c2hTdWJzdGl0dXRpb25FbmFibGVkKGZsYWcpOwotICAgIG1fcGFnZS5wcm9jZXNzKCkudXBkYXRl
VGV4dENoZWNrZXJTdGF0ZSgpOworICAgIG1fcGFnZS0+cHJvY2VzcygpLnVwZGF0ZVRleHRDaGVj
a2VyU3RhdGUoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6dG9nZ2xlQXV0b21hdGljRGFzaFN1
YnN0aXR1dGlvbigpCiB7CiAgICAgVGV4dENoZWNrZXI6OnNldEF1dG9tYXRpY0Rhc2hTdWJzdGl0
dXRpb25FbmFibGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRpY0Rhc2hTdWJzdGl0
dXRpb25FbmFibGVkKTsKLSAgICBtX3BhZ2UucHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3Rh
dGUoKTsKKyAgICBtX3BhZ2UtPnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiB9
CiAKIGJvb2wgV2ViVmlld0ltcGw6OmlzQXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQoKQpA
QCAtMjA1NSwxMyArMjA5OSwxMyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRBdXRvbWF0aWNMaW5r
RGV0ZWN0aW9uRW5hYmxlZChib29sIGZsYWcpCiAgICAgICAgIHJldHVybjsKIAogICAgIFRleHRD
aGVja2VyOjpzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZChmbGFnKTsKLSAgICBtX3Bh
Z2UucHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKKyAgICBtX3BhZ2UtPnByb2Nl
c3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnRv
Z2dsZUF1dG9tYXRpY0xpbmtEZXRlY3Rpb24oKQogewogICAgIFRleHRDaGVja2VyOjpzZXRBdXRv
bWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0
aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCk7Ci0gICAgbV9wYWdlLnByb2Nlc3MoKS51cGRhdGVUZXh0
Q2hlY2tlclN0YXRlKCk7CisgICAgbV9wYWdlLT5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJT
dGF0ZSgpOwogfQogCiBib29sIFdlYlZpZXdJbXBsOjppc0F1dG9tYXRpY1RleHRSZXBsYWNlbWVu
dEVuYWJsZWQoKQpAQCAtMjA3NSwzMyArMjExOSwzMyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRB
dXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkKGJvb2wgZmxhZykKICAgICAgICAgcmV0dXJu
OwogICAgIAogICAgIFRleHRDaGVja2VyOjpzZXRBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFi
bGVkKGZsYWcpOwotICAgIG1fcGFnZS5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgp
OworICAgIG1fcGFnZS0+cHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKIH0KIAog
dm9pZCBXZWJWaWV3SW1wbDo6dG9nZ2xlQXV0b21hdGljVGV4dFJlcGxhY2VtZW50KCkKIHsKICAg
ICBUZXh0Q2hlY2tlcjo6c2V0QXV0b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZCghVGV4dENo
ZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkKTsKLSAgICBt
X3BhZ2UucHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKKyAgICBtX3BhZ2UtPnBy
b2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6
OnVwcGVyY2FzZVdvcmQoKQogewotICAgIG1fcGFnZS51cHBlcmNhc2VXb3JkKCk7CisgICAgbV9w
YWdlLT51cHBlcmNhc2VXb3JkKCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6Omxvd2VyY2FzZVdv
cmQoKQogewotICAgIG1fcGFnZS5sb3dlcmNhc2VXb3JkKCk7CisgICAgbV9wYWdlLT5sb3dlcmNh
c2VXb3JkKCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OmNhcGl0YWxpemVXb3JkKCkKIHsKLSAg
ICBtX3BhZ2UuY2FwaXRhbGl6ZVdvcmQoKTsKKyAgICBtX3BhZ2UtPmNhcGl0YWxpemVXb3JkKCk7
CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkKIHsKLSAgICBC
T09MIG5lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9IG1fcGFnZS5wcmVmZXJlbmNl
cygpLnBsdWdpbnNFbmFibGVkKCk7CisgICAgQk9PTCBuZWVkc1ZpZXdGcmFtZUluV2luZG93Q29v
cmRpbmF0ZXMgPSBtX3BhZ2UtPnByZWZlcmVuY2VzKCkucGx1Z2luc0VuYWJsZWQoKTsKIAogICAg
IGlmICghIW5lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9PSAhIW1fbmVlZHNWaWV3
RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKQogICAgICAgICByZXR1cm47CkBAIC0yMTcxLDcgKzIy
MTUsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5k
b3dzRnJvbVZpZXdPbmx5KCkKICAgICBbbV9pbW1lZGlhdGVBY3Rpb25Db250cm9sbGVyIGRpc21p
c3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdOwogI2VuZGlmCiAgICAgCi0gICAgbV9wYWdl
Q2xpZW50LmRpc21pc3NDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6UmVhc29uRm9yRGlzbWlzc2lu
Z0FsdGVybmF0aXZlVGV4dElnbm9yZWQpOworICAgIG1fcGFnZUNsaWVudC0+ZGlzbWlzc0NvcnJl
Y3Rpb25QYW5lbChXZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQWx0ZXJuYXRpdmVUZXh0SWdu
b3JlZCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OmhpZGVXb3JkRGVmaW5pdGlvbldpbmRvdygp
CkBAIC0yMTkyLDcgKzIyMzYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpxdWlja0xvb2tXaXRoRXZl
bnQoTlNFdmVudCAqZXZlbnQpCiAjZW5kaWYKIAogICAgIE5TUG9pbnQgbG9jYXRpb25JblZpZXdD
b29yZGluYXRlcyA9IFttX3ZpZXcgY29udmVydFBvaW50OltldmVudCBsb2NhdGlvbkluV2luZG93
XSBmcm9tVmlldzpuaWxdOwotICAgIG1fcGFnZS5wZXJmb3JtRGljdGlvbmFyeUxvb2t1cEF0TG9j
YXRpb24oV2ViQ29yZTo6RmxvYXRQb2ludChsb2NhdGlvbkluVmlld0Nvb3JkaW5hdGVzKSk7Cisg
ICAgbV9wYWdlLT5wZXJmb3JtRGljdGlvbmFyeUxvb2t1cEF0TG9jYXRpb24oV2ViQ29yZTo6Rmxv
YXRQb2ludChsb2NhdGlvbkluVmlld0Nvb3JkaW5hdGVzKSk7CiB9CiAKIHZvaWQgV2ViVmlld0lt
cGw6OnByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwKCkKQEAgLTIyMjAsMTQgKzIyNjQsOSBAQCB2
b2lkIFdlYlZpZXdJbXBsOjpzZXRBbGxvd3NMaW5rUHJldmlldyhib29sIGFsbG93c0xpbmtQcmV2
aWV3KQogI2VuZGlmCiB9CiAKLXZvaWQqIFdlYlZpZXdJbXBsOjppbW1lZGlhdGVBY3Rpb25Bbmlt
YXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdChXS0hpdFRlc3RSZXN1bHRSZWYgaGl0VGVz
dFJlc3VsdCwgdWludDMyX3QgdHlwZSwgV0tUeXBlUmVmIHVzZXJEYXRhKQordm9pZCogV2ViVmll
d0ltcGw6OmltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0
KEFQSTo6SGl0VGVzdFJlc3VsdCogaGl0VGVzdFJlc3VsdCwgdWludDMyX3QgdHlwZSwgQVBJOjpP
YmplY3QqIHVzZXJEYXRhKQogewotICAgIHJldHVybiBbbV92aWV3IF9pbW1lZGlhdGVBY3Rpb25B
bmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdDpoaXRUZXN0UmVzdWx0IHdpdGhUeXBl
OnR5cGUgdXNlckRhdGE6dXNlckRhdGFdOwotfQotCi12b2lkKiBXZWJWaWV3SW1wbDo6aW1tZWRp
YXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHRGcm9tVmlld09ubHko
V0tIaXRUZXN0UmVzdWx0UmVmIGhpdFRlc3RSZXN1bHQsIHVpbnQzMl90IHR5cGUsIFdLVHlwZVJl
ZiB1c2VyRGF0YSkKLXsKLSAgICByZXR1cm4gbmlsOworICAgIHJldHVybiBbbV92aWV3IF93ZWJf
aW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHRJbnRlcm5h
bDpoaXRUZXN0UmVzdWx0IHdpdGhUeXBlOnR5cGUgdXNlckRhdGE6dXNlckRhdGFdOwogfQogCiB2
b2lkIFdlYlZpZXdJbXBsOjpkaWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9uSGl0VGVzdChjb25zdCBX
ZWJIaXRUZXN0UmVzdWx0RGF0YSYgcmVzdWx0LCBib29sIGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQs
IEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkKQEAgLTIyNTIsMTMgKzIyOTEsMTggQEAgdm9pZCBXZWJW
aWV3SW1wbDo6Y29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24oKQogICAgIFttX3ZpZXcg
X2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uXTsKIH0KIAordm9pZCBXZWJWaWV3SW1w
bDo6ZGlkQ2hhbmdlQ29udGVudFNpemUoQ0dTaXplIG5ld1NpemUpCit7CisgICAgW21fdmlldyBf
ZGlkQ2hhbmdlQ29udGVudFNpemU6TlNTaXplRnJvbUNHU2l6ZShuZXdTaXplKV07Cit9CisKIHZv
aWQgV2ViVmlld0ltcGw6OnNldElnbm9yZXNOb25XaGVlbEV2ZW50cyhib29sIGlnbm9yZXNOb25X
aGVlbEV2ZW50cykKIHsKICAgICBpZiAobV9pZ25vcmVzTm9uV2hlZWxFdmVudHMgPT0gaWdub3Jl
c05vbldoZWVsRXZlbnRzKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2lnbm9yZXNOb25XaGVl
bEV2ZW50cyA9IGlnbm9yZXNOb25XaGVlbEV2ZW50czsKLSAgICBtX3BhZ2Uuc2V0U2hvdWxkRGlz
cGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRzKCFpZ25vcmVzTm9uV2hlZWxFdmVudHMpOworICAgIG1f
cGFnZS0+c2V0U2hvdWxkRGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRzKCFpZ25vcmVzTm9uV2hl
ZWxFdmVudHMpOwogCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEw
MDAKICAgICBpZiAoaWdub3Jlc05vbldoZWVsRXZlbnRzKQpAQCAtMjI5NCw3ICsyMzM4LDcgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlUmVtb3RlQWNjZXNzaWJpbGl0eVJlZ2lzdHJhdGlvbihi
b29sIHJlZ2lzdGVyUHJvY2VzcykKICAgICAvLyBhd2F5LCB0aGF0IGluZm9ybWF0aW9uIGlzIG5v
dCBwcmVzZW50IGluIFdlYlByb2Nlc3MKICAgICBwaWRfdCBwaWQgPSAwOwogICAgIGlmIChyZWdp
c3RlclByb2Nlc3MpCi0gICAgICAgIHBpZCA9IG1fcGFnZS5wcm9jZXNzKCkucHJvY2Vzc0lkZW50
aWZpZXIoKTsKKyAgICAgICAgcGlkID0gbV9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc0lkZW50aWZp
ZXIoKTsKICAgICBlbHNlIGlmICghcmVnaXN0ZXJQcm9jZXNzKSB7CiAgICAgICAgIHBpZCA9IFdL
QVhSZW1vdGVQcm9jZXNzSWRlbnRpZmllcihtX3JlbW90ZUFjY2Vzc2liaWxpdHlDaGlsZC5nZXQo
KSk7CiAgICAgICAgIG1fcmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkID0gbmlsOwpAQCAtMjMxMCw3
ICsyMzU0LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YWNjZXNzaWJpbGl0eVJlZ2lzdGVyVUlQcm9j
ZXNzVG9rZW5zKCkKICAgICBOU0RhdGEgKnJlbW90ZVdpbmRvd1Rva2VuID0gV0tBWFJlbW90ZVRv
a2VuRm9yRWxlbWVudChtX3ZpZXcud2luZG93KTsKICAgICBJUEM6OkRhdGFSZWZlcmVuY2UgZWxl
bWVudFRva2VuID0gSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgdWlu
dDhfdCo+KFtyZW1vdGVFbGVtZW50VG9rZW4gYnl0ZXNdKSwgW3JlbW90ZUVsZW1lbnRUb2tlbiBs
ZW5ndGhdKTsKICAgICBJUEM6OkRhdGFSZWZlcmVuY2Ugd2luZG93VG9rZW4gPSBJUEM6OkRhdGFS
ZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4oW3JlbW90ZVdpbmRvd1Rv
a2VuIGJ5dGVzXSksIFtyZW1vdGVXaW5kb3dUb2tlbiBsZW5ndGhdKTsKLSAgICBtX3BhZ2UucmVn
aXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW5zKGVsZW1lbnRUb2tlbiwgd2luZG93VG9r
ZW4pOworICAgIG1fcGFnZS0+cmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW5zKGVs
ZW1lbnRUb2tlbiwgd2luZG93VG9rZW4pOwogfQogCiBpZCBXZWJWaWV3SW1wbDo6YWNjZXNzaWJp
bGl0eUZvY3VzZWRVSUVsZW1lbnQoKQpAQCAtMjQ2Miw3ICsyNTA2LDcgQEAgdm9pZCBXZWJWaWV3
SW1wbDo6c2VuZFRvb2xUaXBNb3VzZUVudGVyZWQoKQogCiBOU1N0cmluZyAqV2ViVmlld0ltcGw6
OnN0cmluZ0ZvclRvb2xUaXAoTlNUb29sVGlwVGFnIHRhZykKIHsKLSAgICByZXR1cm4gbnNTdHJp
bmdGcm9tV2ViQ29yZVN0cmluZyhtX3BhZ2UudG9vbFRpcCgpKTsKKyAgICByZXR1cm4gbnNTdHJp
bmdGcm9tV2ViQ29yZVN0cmluZyhtX3BhZ2UtPnRvb2xUaXAoKSk7CiB9CiAKIHZvaWQgV2ViVmll
d0ltcGw6OnRvb2xUaXBDaGFuZ2VkKGNvbnN0IFN0cmluZyYgb2xkVG9vbFRpcCwgY29uc3QgU3Ry
aW5nJiBuZXdUb29sVGlwKQpAQCAtMjU2MCw3ICsyNjA0LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6
c2V0SW5zcGVjdG9yQXR0YWNobWVudFZpZXcoTlNWaWV3ICpuZXdWaWV3KQogICAgICAgICByZXR1
cm47CiAKICAgICBtX2luc3BlY3RvckF0dGFjaG1lbnRWaWV3ID0gbmV3VmlldzsKLSAgICBtX3Bh
Z2UuaW5zcGVjdG9yKCktPmF0dGFjaG1lbnRWaWV3RGlkQ2hhbmdlKG9sZFZpZXcgPyBvbGRWaWV3
IDogbV92aWV3LCBuZXdWaWV3ID8gbmV3VmlldyA6IG1fdmlldyk7CisgICAgbV9wYWdlLT5pbnNw
ZWN0b3IoKS0+YXR0YWNobWVudFZpZXdEaWRDaGFuZ2Uob2xkVmlldyA/IG9sZFZpZXcgOiBtX3Zp
ZXcsIG5ld1ZpZXcgPyBuZXdWaWV3IDogbV92aWV3KTsKIH0KIAogTlNWaWV3ICpXZWJWaWV3SW1w
bDo6aW5zcGVjdG9yQXR0YWNobWVudFZpZXcoKQpAQCAtMjU3MywyNiArMjYxNywxNiBAQCBfV0tS
ZW1vdGVPYmplY3RSZWdpc3RyeSAqV2ViVmlld0ltcGw6OnJlbW90ZU9iamVjdFJlZ2lzdHJ5KCkK
IHsKICAgICBpZiAoIW1fcmVtb3RlT2JqZWN0UmVnaXN0cnkpIHsKICAgICAgICAgbV9yZW1vdGVP
YmplY3RSZWdpc3RyeSA9IGFkb3B0TlMoW1tfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSBhbGxvY10g
X2luaXRXaXRoTWVzc2FnZVNlbmRlcjptX3BhZ2VdKTsKLSAgICAgICAgbV9wYWdlLnByb2Nlc3Mo
KS5wcm9jZXNzUG9vbCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0
UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLnBhZ2VJRCgpLCBbbV9yZW1v
dGVPYmplY3RSZWdpc3RyeSByZW1vdGVPYmplY3RSZWdpc3RyeV0pOworICAgICAgICBtX3BhZ2Ut
PnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVt
b3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLT5wYWdlSUQo
KSwgW21fcmVtb3RlT2JqZWN0UmVnaXN0cnkgcmVtb3RlT2JqZWN0UmVnaXN0cnldKTsKICAgICB9
CiAKICAgICByZXR1cm4gbV9yZW1vdGVPYmplY3RSZWdpc3RyeS5nZXQoKTsKIH0KIAotdm9pZCBX
ZWJWaWV3SW1wbDo6ZGVzdHJveVJlbW90ZU9iamVjdFJlZ2lzdHJ5KCkKLXsKLSAgICBpZiAoIW1f
cmVtb3RlT2JqZWN0UmVnaXN0cnkpCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcGFnZS5wcm9j
ZXNzKCkucHJvY2Vzc1Bvb2woKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90
ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS5wYWdlSUQoKSk7
Ci0gICAgW21fcmVtb3RlT2JqZWN0UmVnaXN0cnkgX2ludmFsaWRhdGVdOwotICAgIG1fcmVtb3Rl
T2JqZWN0UmVnaXN0cnkgPSBuaWw7Ci19Ci0KIFdLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciAq
V2ViVmlld0ltcGw6OmJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIoKQogewogICAgIGlmICghbV9i
cm93c2luZ0NvbnRleHRDb250cm9sbGVyKQotICAgICAgICBtX2Jyb3dzaW5nQ29udGV4dENvbnRy
b2xsZXIgPSBhZG9wdE5TKFtbV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyIGFsbG9jXSBfaW5p
dFdpdGhQYWdlUmVmOnRvQVBJKCZtX3BhZ2UpXSk7CisgICAgICAgIG1fYnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlciA9IGFkb3B0TlMoW1tXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIgYWxsb2Nd
IF9pbml0V2l0aFBhZ2VSZWY6dG9BUEkobV9wYWdlLnB0cigpKV0pOwogCiAgICAgcmV0dXJuIG1f
YnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5nZXQoKTsKIH0KQEAgLTI2MTAsNyArMjY0NCw3IEBA
IHZvaWQgV2ViVmlld0ltcGw6OmRyYWdnZWRJbWFnZShOU0ltYWdlICppbWFnZSwgQ0dQb2ludCBl
bmRQb2ludCwgTlNEcmFnT3BlcmF0aW9uCiAgICAgLy8gUHJldmVudCBxdWV1ZWQgbW91c2VEcmFn
Z2VkIGV2ZW50cyBmcm9tIGNvbWluZyBhZnRlciB0aGUgZHJhZyBhbmQgZmFrZSBtb3VzZVVwIGV2
ZW50LgogICAgIG1faWdub3Jlc01vdXNlRHJhZ2dlZEV2ZW50cyA9IHRydWU7CiAKLSAgICBtX3Bh
Z2UuZHJhZ0VuZGVkKFdlYkNvcmU6OkludFBvaW50KHdpbmRvd01vdXNlTG9jKSwgV2ViQ29yZTo6
Z2xvYmFsUG9pbnQod2luZG93TW91c2VMb2MsIG1fdmlldy53aW5kb3cpLCBvcGVyYXRpb24pOwor
ICAgIG1fcGFnZS0+ZHJhZ0VuZGVkKFdlYkNvcmU6OkludFBvaW50KHdpbmRvd01vdXNlTG9jKSwg
V2ViQ29yZTo6Z2xvYmFsUG9pbnQod2luZG93TW91c2VMb2MsIG1fdmlldy53aW5kb3cpLCBvcGVy
YXRpb24pOwogfQogCiBzdGF0aWMgV2ViQ29yZTo6RHJhZ0FwcGxpY2F0aW9uRmxhZ3MgYXBwbGlj
YXRpb25GbGFnc0ZvckRyYWcoTlNWaWV3ICp2aWV3LCBpZCA8TlNEcmFnZ2luZ0luZm8+IGRyYWdn
aW5nSW5mbykKQEAgLTI2MzQsOCArMjY2OCw4IEBAIE5TRHJhZ09wZXJhdGlvbiBXZWJWaWV3SW1w
bDo6ZHJhZ2dpbmdFbnRlcmVkKGlkIDxOU0RyYWdnaW5nSW5mbz4gZHJhZ2dpbmdJbmZvKQogICAg
IFdlYkNvcmU6OkludFBvaW50IGdsb2JhbChXZWJDb3JlOjpnbG9iYWxQb2ludChkcmFnZ2luZ0lu
Zm8uZHJhZ2dpbmdMb2NhdGlvbiwgbV92aWV3LndpbmRvdykpOwogICAgIFdlYkNvcmU6OkRyYWdE
YXRhIGRyYWdEYXRhKGRyYWdnaW5nSW5mbywgY2xpZW50LCBnbG9iYWwsIHN0YXRpY19jYXN0PFdl
YkNvcmU6OkRyYWdPcGVyYXRpb24+KGRyYWdnaW5nSW5mby5kcmFnZ2luZ1NvdXJjZU9wZXJhdGlv
bk1hc2spLCBhcHBsaWNhdGlvbkZsYWdzRm9yRHJhZyhtX3ZpZXcsIGRyYWdnaW5nSW5mbykpOwog
Ci0gICAgbV9wYWdlLnJlc2V0Q3VycmVudERyYWdJbmZvcm1hdGlvbigpOwotICAgIG1fcGFnZS5k
cmFnRW50ZXJlZChkcmFnRGF0YSwgZHJhZ2dpbmdJbmZvLmRyYWdnaW5nUGFzdGVib2FyZC5uYW1l
KTsKKyAgICBtX3BhZ2UtPnJlc2V0Q3VycmVudERyYWdJbmZvcm1hdGlvbigpOworICAgIG1fcGFn
ZS0+ZHJhZ0VudGVyZWQoZHJhZ0RhdGEsIGRyYWdnaW5nSW5mby5kcmFnZ2luZ1Bhc3RlYm9hcmQu
bmFtZSk7CiAgICAgcmV0dXJuIE5TRHJhZ09wZXJhdGlvbkNvcHk7CiB9CiAKQEAgLTI2NDQsMTEg
KzI2NzgsMTEgQEAgTlNEcmFnT3BlcmF0aW9uIFdlYlZpZXdJbXBsOjpkcmFnZ2luZ1VwZGF0ZWQo
aWQgPE5TRHJhZ2dpbmdJbmZvPiBkcmFnZ2luZ0luZm8pCiAgICAgV2ViQ29yZTo6SW50UG9pbnQg
Y2xpZW50KFttX3ZpZXcgY29udmVydFBvaW50OmRyYWdnaW5nSW5mby5kcmFnZ2luZ0xvY2F0aW9u
IGZyb21WaWV3Om5pbF0pOwogICAgIFdlYkNvcmU6OkludFBvaW50IGdsb2JhbChXZWJDb3JlOjpn
bG9iYWxQb2ludChkcmFnZ2luZ0luZm8uZHJhZ2dpbmdMb2NhdGlvbiwgbV92aWV3LndpbmRvdykp
OwogICAgIFdlYkNvcmU6OkRyYWdEYXRhIGRyYWdEYXRhKGRyYWdnaW5nSW5mbywgY2xpZW50LCBn
bG9iYWwsIHN0YXRpY19jYXN0PFdlYkNvcmU6OkRyYWdPcGVyYXRpb24+KGRyYWdnaW5nSW5mby5k
cmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2spLCBhcHBsaWNhdGlvbkZsYWdzRm9yRHJhZyhtX3Zp
ZXcsIGRyYWdnaW5nSW5mbykpOwotICAgIG1fcGFnZS5kcmFnVXBkYXRlZChkcmFnRGF0YSwgZHJh
Z2dpbmdJbmZvLmRyYWdnaW5nUGFzdGVib2FyZC5uYW1lKTsKKyAgICBtX3BhZ2UtPmRyYWdVcGRh
dGVkKGRyYWdEYXRhLCBkcmFnZ2luZ0luZm8uZHJhZ2dpbmdQYXN0ZWJvYXJkLm5hbWUpOwogCi0g
ICAgTlNJbnRlZ2VyIG51bWJlck9mVmFsaWRJdGVtc0ZvckRyb3AgPSBtX3BhZ2UuY3VycmVudERy
YWdOdW1iZXJPZkZpbGVzVG9CZUFjY2VwdGVkKCk7CisgICAgTlNJbnRlZ2VyIG51bWJlck9mVmFs
aWRJdGVtc0ZvckRyb3AgPSBtX3BhZ2UtPmN1cnJlbnREcmFnTnVtYmVyT2ZGaWxlc1RvQmVBY2Nl
cHRlZCgpOwogICAgIE5TRHJhZ2dpbmdGb3JtYXRpb24gZHJhZ2dpbmdGb3JtYXRpb24gPSBOU0Ry
YWdnaW5nRm9ybWF0aW9uTm9uZTsKLSAgICBpZiAobV9wYWdlLmN1cnJlbnREcmFnSXNPdmVyRmls
ZUlucHV0KCkgJiYgbnVtYmVyT2ZWYWxpZEl0ZW1zRm9yRHJvcCA+IDApCisgICAgaWYgKG1fcGFn
ZS0+Y3VycmVudERyYWdJc092ZXJGaWxlSW5wdXQoKSAmJiBudW1iZXJPZlZhbGlkSXRlbXNGb3JE
cm9wID4gMCkKICAgICAgICAgZHJhZ2dpbmdGb3JtYXRpb24gPSBOU0RyYWdnaW5nRm9ybWF0aW9u
TGlzdDsKIAogICAgIGlmIChkcmFnZ2luZ0luZm8ubnVtYmVyT2ZWYWxpZEl0ZW1zRm9yRHJvcCAh
PSBudW1iZXJPZlZhbGlkSXRlbXNGb3JEcm9wKQpAQCAtMjY1Niw3ICsyNjkwLDcgQEAgTlNEcmFn
T3BlcmF0aW9uIFdlYlZpZXdJbXBsOjpkcmFnZ2luZ1VwZGF0ZWQoaWQgPE5TRHJhZ2dpbmdJbmZv
PiBkcmFnZ2luZ0luZm8pCiAgICAgaWYgKGRyYWdnaW5nSW5mby5kcmFnZ2luZ0Zvcm1hdGlvbiAh
PSBkcmFnZ2luZ0Zvcm1hdGlvbikKICAgICAgICAgW2RyYWdnaW5nSW5mbyBzZXREcmFnZ2luZ0Zv
cm1hdGlvbjpkcmFnZ2luZ0Zvcm1hdGlvbl07CiAKLSAgICByZXR1cm4gbV9wYWdlLmN1cnJlbnRE
cmFnT3BlcmF0aW9uKCk7CisgICAgcmV0dXJuIG1fcGFnZS0+Y3VycmVudERyYWdPcGVyYXRpb24o
KTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6ZHJhZ2dpbmdFeGl0ZWQoaWQgPE5TRHJhZ2dpbmdJ
bmZvPiBkcmFnZ2luZ0luZm8pCkBAIC0yNjY0LDggKzI2OTgsOCBAQCB2b2lkIFdlYlZpZXdJbXBs
OjpkcmFnZ2luZ0V4aXRlZChpZCA8TlNEcmFnZ2luZ0luZm8+IGRyYWdnaW5nSW5mbykKICAgICBX
ZWJDb3JlOjpJbnRQb2ludCBjbGllbnQoW21fdmlldyBjb252ZXJ0UG9pbnQ6ZHJhZ2dpbmdJbmZv
LmRyYWdnaW5nTG9jYXRpb24gZnJvbVZpZXc6bmlsXSk7CiAgICAgV2ViQ29yZTo6SW50UG9pbnQg
Z2xvYmFsKFdlYkNvcmU6Omdsb2JhbFBvaW50KGRyYWdnaW5nSW5mby5kcmFnZ2luZ0xvY2F0aW9u
LCBtX3ZpZXcud2luZG93KSk7CiAgICAgV2ViQ29yZTo6RHJhZ0RhdGEgZHJhZ0RhdGEoZHJhZ2dp
bmdJbmZvLCBjbGllbnQsIGdsb2JhbCwgc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RHJhZ09wZXJhdGlv
bj4oZHJhZ2dpbmdJbmZvLmRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFzayksIGFwcGxpY2F0aW9u
RmxhZ3NGb3JEcmFnKG1fdmlldywgZHJhZ2dpbmdJbmZvKSk7Ci0gICAgbV9wYWdlLmRyYWdFeGl0
ZWQoZHJhZ0RhdGEsIGRyYWdnaW5nSW5mby5kcmFnZ2luZ1Bhc3RlYm9hcmQubmFtZSk7Ci0gICAg
bV9wYWdlLnJlc2V0Q3VycmVudERyYWdJbmZvcm1hdGlvbigpOworICAgIG1fcGFnZS0+ZHJhZ0V4
aXRlZChkcmFnRGF0YSwgZHJhZ2dpbmdJbmZvLmRyYWdnaW5nUGFzdGVib2FyZC5uYW1lKTsKKyAg
ICBtX3BhZ2UtPnJlc2V0Q3VycmVudERyYWdJbmZvcm1hdGlvbigpOwogfQogCiBib29sIFdlYlZp
ZXdJbXBsOjpwcmVwYXJlRm9yRHJhZ09wZXJhdGlvbihpZCA8TlNEcmFnZ2luZ0luZm8+KQpAQCAt
MjcyMywxMiArMjc1NywxMiBAQCBib29sIFdlYlZpZXdJbXBsOjpwZXJmb3JtRHJhZ09wZXJhdGlv
bihpZCA8TlNEcmFnZ2luZ0luZm8+IGRyYWdnaW5nSW5mbykKICAgICBTYW5kYm94RXh0ZW5zaW9u
OjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZTsKICAgICBib29sIGNyZWF0ZWRFeHRlbnNp
b24gPSBtYXliZUNyZWF0ZVNhbmRib3hFeHRlbnNpb25Gcm9tUGFzdGVib2FyZChkcmFnZ2luZ0lu
Zm8uZHJhZ2dpbmdQYXN0ZWJvYXJkLCBzYW5kYm94RXh0ZW5zaW9uSGFuZGxlKTsKICAgICBpZiAo
Y3JlYXRlZEV4dGVuc2lvbikKLSAgICAgICAgbV9wYWdlLnByb2Nlc3MoKS53aWxsQWNxdWlyZVVu
aXZlcnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbigpOworICAgICAgICBtX3BhZ2UtPnByb2Nl
c3MoKS53aWxsQWNxdWlyZVVuaXZlcnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbigpOwogCiAg
ICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgc2FuZGJveEV4dGVuc2lvbkZvclVwbG9h
ZDsKICAgICBjcmVhdGVTYW5kYm94RXh0ZW5zaW9uc0ZvckZpbGVVcGxvYWQoZHJhZ2dpbmdJbmZv
LmRyYWdnaW5nUGFzdGVib2FyZCwgc2FuZGJveEV4dGVuc2lvbkZvclVwbG9hZCk7CiAKLSAgICBt
X3BhZ2UucGVyZm9ybURyYWdPcGVyYXRpb24oZHJhZ0RhdGEsIGRyYWdnaW5nSW5mby5kcmFnZ2lu
Z1Bhc3RlYm9hcmQubmFtZSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwgc2FuZGJveEV4dGVuc2lv
bkZvclVwbG9hZCk7CisgICAgbV9wYWdlLT5wZXJmb3JtRHJhZ09wZXJhdGlvbihkcmFnRGF0YSwg
ZHJhZ2dpbmdJbmZvLmRyYWdnaW5nUGFzdGVib2FyZC5uYW1lLCBzYW5kYm94RXh0ZW5zaW9uSGFu
ZGxlLCBzYW5kYm94RXh0ZW5zaW9uRm9yVXBsb2FkKTsKIAogICAgIHJldHVybiB0cnVlOwogfQpA
QCAtMjk1OSw3ICsyOTkzLDcgQEAgUmVmUHRyPFZpZXdTbmFwc2hvdD4gV2ViVmlld0ltcGw6OnRh
a2VWaWV3U25hcHNob3QoKQogICAgICAgICB3aW5kb3dDYXB0dXJlUmVjdCA9IGJvdW5kc0ZvckN1
c3RvbVN3aXBlVmlld3M7CiAgICAgZWxzZSB7CiAgICAgICAgIE5TUmVjdCB1bm9ic2N1cmVkQm91
bmRzID0gbV92aWV3LmJvdW5kczsKLSAgICAgICAgZmxvYXQgdG9wQ29udGVudEluc2V0ID0gbV9w
YWdlLnRvcENvbnRlbnRJbnNldCgpOworICAgICAgICBmbG9hdCB0b3BDb250ZW50SW5zZXQgPSBt
X3BhZ2UtPnRvcENvbnRlbnRJbnNldCgpOwogICAgICAgICB1bm9ic2N1cmVkQm91bmRzLm9yaWdp
bi55ICs9IHRvcENvbnRlbnRJbnNldDsKICAgICAgICAgdW5vYnNjdXJlZEJvdW5kcy5zaXplLmhl
aWdodCAtPSB0b3BDb250ZW50SW5zZXQ7CiAgICAgICAgIHdpbmRvd0NhcHR1cmVSZWN0ID0gW21f
dmlldyBjb252ZXJ0UmVjdDp1bm9ic2N1cmVkQm91bmRzIHRvVmlldzpuaWxdOwpAQCAtMjk4NCwx
MiArMzAxOCwxMiBAQCBSZWZQdHI8Vmlld1NuYXBzaG90PiBXZWJWaWV3SW1wbDo6dGFrZVZpZXdT
bmFwc2hvdCgpCiAKIHZvaWQgV2ViVmlld0ltcGw6OnNhdmVCYWNrRm9yd2FyZFNuYXBzaG90Rm9y
Q3VycmVudEl0ZW0oKQogewotICAgIG1fcGFnZS5yZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoKTsK
KyAgICBtX3BhZ2UtPnJlY29yZE5hdmlnYXRpb25TbmFwc2hvdCgpOwogfQogCiB2b2lkIFdlYlZp
ZXdJbXBsOjpzYXZlQmFja0ZvcndhcmRTbmFwc2hvdEZvckl0ZW0oV2ViQmFja0ZvcndhcmRMaXN0
SXRlbSYgaXRlbSkKIHsKLSAgICBtX3BhZ2UucmVjb3JkTmF2aWdhdGlvblNuYXBzaG90KGl0ZW0p
OworICAgIG1fcGFnZS0+cmVjb3JkTmF2aWdhdGlvblNuYXBzaG90KGl0ZW0pOwogfQogCiBWaWV3
R2VzdHVyZUNvbnRyb2xsZXImIFdlYlZpZXdJbXBsOjplbnN1cmVHZXN0dXJlQ29udHJvbGxlcigp
CkBAIC0zMDAyLDggKzMwMzYsOCBAQCBWaWV3R2VzdHVyZUNvbnRyb2xsZXImIFdlYlZpZXdJbXBs
OjplbnN1cmVHZXN0dXJlQ29udHJvbGxlcigpCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRBbGxvd3NC
YWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcyhib29sIGFsbG93c0JhY2tGb3J3YXJkTmF2aWdh
dGlvbkdlc3R1cmVzKQogewogICAgIG1fYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVy
ZXMgPSBhbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlczsKLSAgICBtX3BhZ2Uuc2V0
U2hvdWxkUmVjb3JkTmF2aWdhdGlvblNuYXBzaG90cyhhbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRp
b25HZXN0dXJlcyk7Ci0gICAgbV9wYWdlLnNldFNob3VsZFVzZUltcGxpY2l0UnViYmVyQmFuZENv
bnRyb2woYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMpOworICAgIG1fcGFnZS0+
c2V0U2hvdWxkUmVjb3JkTmF2aWdhdGlvblNuYXBzaG90cyhhbGxvd3NCYWNrRm9yd2FyZE5hdmln
YXRpb25HZXN0dXJlcyk7CisgICAgbV9wYWdlLT5zZXRTaG91bGRVc2VJbXBsaWNpdFJ1YmJlckJh
bmRDb250cm9sKGFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzKTsKIH0KIAogdm9p
ZCBXZWJWaWV3SW1wbDo6c2V0QWxsb3dzTWFnbmlmaWNhdGlvbihib29sIGFsbG93c01hZ25pZmlj
YXRpb24pCkBAIC0zMDE4LDcgKzMwNTIsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRNYWduaWZp
Y2F0aW9uKGRvdWJsZSBtYWduaWZpY2F0aW9uLCBDR1BvaW50IGNlbnRlclBvaW50KQogCiAgICAg
ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb24oZmFsc2UpOwog
Ci0gICAgbV9wYWdlLnNjYWxlUGFnZUluVmlld0Nvb3JkaW5hdGVzKG1hZ25pZmljYXRpb24sIFdl
YkNvcmU6OnJvdW5kZWRJbnRQb2ludChjZW50ZXJQb2ludCkpOworICAgIG1fcGFnZS0+c2NhbGVQ
YWdlSW5WaWV3Q29vcmRpbmF0ZXMobWFnbmlmaWNhdGlvbiwgV2ViQ29yZTo6cm91bmRlZEludFBv
aW50KGNlbnRlclBvaW50KSk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldE1hZ25pZmljYXRp
b24oZG91YmxlIG1hZ25pZmljYXRpb24pCkBAIC0zMDI5LDE0ICszMDYzLDE0IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OnNldE1hZ25pZmljYXRpb24oZG91YmxlIG1hZ25pZmljYXRpb24pCiAgICAgZGlz
bWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb24oZmFsc2UpOwogCiAg
ICAgV2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3Q2VudGVyKE5TTWlkWChbbV92aWV3IGJvdW5kc10p
LCBOU01pZFkoW21fdmlldyBib3VuZHNdKSk7Ci0gICAgbV9wYWdlLnNjYWxlUGFnZUluVmlld0Nv
b3JkaW5hdGVzKG1hZ25pZmljYXRpb24sIHJvdW5kZWRJbnRQb2ludCh2aWV3Q2VudGVyKSk7Cisg
ICAgbV9wYWdlLT5zY2FsZVBhZ2VJblZpZXdDb29yZGluYXRlcyhtYWduaWZpY2F0aW9uLCByb3Vu
ZGVkSW50UG9pbnQodmlld0NlbnRlcikpOwogfQogCiBkb3VibGUgV2ViVmlld0ltcGw6Om1hZ25p
ZmljYXRpb24oKSBjb25zdAogewogICAgIGlmIChtX2dlc3R1cmVDb250cm9sbGVyKQogICAgICAg
ICByZXR1cm4gbV9nZXN0dXJlQ29udHJvbGxlci0+bWFnbmlmaWNhdGlvbigpOwotICAgIHJldHVy
biBtX3BhZ2UucGFnZVNjYWxlRmFjdG9yKCk7CisgICAgcmV0dXJuIG1fcGFnZS0+cGFnZVNjYWxl
RmFjdG9yKCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldEN1c3RvbVN3aXBlVmlld3MoTlNB
cnJheSAqY3VzdG9tU3dpcGVWaWV3cykKQEAgLTMwOTQsNyArMzEyOCw3IEBAIHZvaWQgV2ViVmll
d0ltcGw6OnNjcm9sbFdoZWVsKE5TRXZlbnQgKmV2ZW50KQogICAgICAgICByZXR1cm47CiAKICAg
ICBOYXRpdmVXZWJXaGVlbEV2ZW50IHdlYkV2ZW50ID0gTmF0aXZlV2ViV2hlZWxFdmVudChldmVu
dCwgbV92aWV3KTsKLSAgICBtX3BhZ2UuaGFuZGxlV2hlZWxFdmVudCh3ZWJFdmVudCk7CisgICAg
bV9wYWdlLT5oYW5kbGVXaGVlbEV2ZW50KHdlYkV2ZW50KTsKIH0KIAogdm9pZCBXZWJWaWV3SW1w
bDo6c3dpcGVXaXRoRXZlbnQoTlNFdmVudCAqZXZlbnQpCkBAIC0zMTA4LDkgKzMxNDIsOSBAQCB2
b2lkIFdlYlZpZXdJbXBsOjpzd2lwZVdpdGhFdmVudChOU0V2ZW50ICpldmVudCkKICAgICB9CiAK
ICAgICBpZiAoZXZlbnQuZGVsdGFYID4gMC4wKQotICAgICAgICBtX3BhZ2UuZ29CYWNrKCk7Cisg
ICAgICAgIG1fcGFnZS0+Z29CYWNrKCk7CiAgICAgZWxzZSBpZiAoZXZlbnQuZGVsdGFYIDwgMC4w
KQotICAgICAgICBtX3BhZ2UuZ29Gb3J3YXJkKCk7CisgICAgICAgIG1fcGFnZS0+Z29Gb3J3YXJk
KCk7CiAgICAgZWxzZQogICAgICAgICBbbV92aWV3IF9zdXBlclN3aXBlV2l0aEV2ZW50OmV2ZW50
XTsKIH0KQEAgLTMxMjAsNyArMzE1NCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6Om1hZ25pZnlXaXRo
RXZlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgaWYgKCFtX2FsbG93c01hZ25pZmljYXRpb24pIHsK
ICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogICAgICAgICBOYXRpdmVXZWJHZXN0dXJl
RXZlbnQgd2ViRXZlbnQgPSBOYXRpdmVXZWJHZXN0dXJlRXZlbnQoZXZlbnQsIG1fdmlldyk7Ci0g
ICAgICAgIG1fcGFnZS5oYW5kbGVHZXN0dXJlRXZlbnQod2ViRXZlbnQpOworICAgICAgICBtX3Bh
Z2UtPmhhbmRsZUdlc3R1cmVFdmVudCh3ZWJFdmVudCk7CiAjZW5kaWYKICAgICAgICAgW21fdmll
dyBfc3VwZXJNYWduaWZ5V2l0aEV2ZW50OmV2ZW50XTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzEz
Nyw3ICszMTcxLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6bWFnbmlmeVdpdGhFdmVudChOU0V2ZW50
ICpldmVudCkKICAgICB9CiAKICAgICBOYXRpdmVXZWJHZXN0dXJlRXZlbnQgd2ViRXZlbnQgPSBO
YXRpdmVXZWJHZXN0dXJlRXZlbnQoZXZlbnQsIG1fdmlldyk7Ci0gICAgbV9wYWdlLmhhbmRsZUdl
c3R1cmVFdmVudCh3ZWJFdmVudCk7CisgICAgbV9wYWdlLT5oYW5kbGVHZXN0dXJlRXZlbnQod2Vi
RXZlbnQpOwogI2Vsc2UKICAgICBnZXN0dXJlQ29udHJvbGxlci5oYW5kbGVNYWduaWZpY2F0aW9u
R2VzdHVyZUV2ZW50KGV2ZW50LCBbbV92aWV3IGNvbnZlcnRQb2ludDpldmVudC5sb2NhdGlvbklu
V2luZG93IGZyb21WaWV3Om5pbF0pOwogI2VuZGlmCkBAIC0zMTY5LDcgKzMyMDMsNyBAQCB2b2lk
IFdlYlZpZXdJbXBsOjpzZXRMYXN0TW91c2VEb3duRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB2b2lk
IFdlYlZpZXdJbXBsOjpyb3RhdGVXaXRoRXZlbnQoTlNFdmVudCAqZXZlbnQpCiB7CiAgICAgTmF0
aXZlV2ViR2VzdHVyZUV2ZW50IHdlYkV2ZW50ID0gTmF0aXZlV2ViR2VzdHVyZUV2ZW50KGV2ZW50
LCBtX3ZpZXcpOwotICAgIG1fcGFnZS5oYW5kbGVHZXN0dXJlRXZlbnQod2ViRXZlbnQpOworICAg
IG1fcGFnZS0+aGFuZGxlR2VzdHVyZUV2ZW50KHdlYkV2ZW50KTsKIH0KICNlbmRpZgogCkBAIC0z
MzIwLDcgKzMzNTQsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkb0NvbW1hbmRCeVNlbGVjdG9yKFNF
TCBzZWxlY3RvcikKICAgICAgICAgV2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kIGNvbW1hbmQoTlNT
dHJpbmdGcm9tU2VsZWN0b3Ioc2VsZWN0b3IpKTsKICAgICAgICAga2V5cHJlc3NDb21tYW5kcy0+
YXBwZW5kKGNvbW1hbmQpOwogICAgICAgICBMT0coVGV4dElucHV0LCAiLi4uc3RvcmVkIik7Ci0g
ICAgICAgIG1fcGFnZS5yZWdpc3RlcktleXByZXNzQ29tbWFuZE5hbWUoY29tbWFuZC5jb21tYW5k
TmFtZSk7CisgICAgICAgIG1fcGFnZS0+cmVnaXN0ZXJLZXlwcmVzc0NvbW1hbmROYW1lKGNvbW1h
bmQuY29tbWFuZE5hbWUpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIEZJWE1FOiBTZW5kIHRo
ZSBjb21tYW5kIHRvIEVkaXRvciBzeW5jaHJvbm91c2x5IGFuZCBvbmx5IHNlbmQgaXQgYWxvbmcg
dGhlCiAgICAgICAgIC8vIHJlc3BvbmRlciBjaGFpbiBpZiBpdCdzIGEgc2VsZWN0b3IgdGhhdCBk
b2VzIG5vdCBjb3JyZXNwb25kIHRvIGFuIGVkaXRpbmcgY29tbWFuZC4KQEAgLTMzNzMsMTYgKzM0
MDcsMTYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6aW5zZXJ0VGV4dChpZCBzdHJpbmcsIE5TUmFuZ2Ug
cmVwbGFjZW1lbnRSYW5nZSkKICAgICAgICAgV2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kIGNvbW1h
bmQoImluc2VydFRleHQ6IiwgdGV4dCk7CiAgICAgICAgIGtleXByZXNzQ29tbWFuZHMtPmFwcGVu
ZChjb21tYW5kKTsKICAgICAgICAgTE9HKFRleHRJbnB1dCwgIi4uLnN0b3JlZCIpOwotICAgICAg
ICBtX3BhZ2UucmVnaXN0ZXJLZXlwcmVzc0NvbW1hbmROYW1lKGNvbW1hbmQuY29tbWFuZE5hbWUp
OworICAgICAgICBtX3BhZ2UtPnJlZ2lzdGVyS2V5cHJlc3NDb21tYW5kTmFtZShjb21tYW5kLmNv
bW1hbmROYW1lKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIFN0cmluZyBldmVudFRl
eHQgPSB0ZXh0OwogICAgIGV2ZW50VGV4dC5yZXBsYWNlKE5TQmFja1RhYkNoYXJhY3RlciwgTlNU
YWJDaGFyYWN0ZXIpOyAvLyBzYW1lIHRoaW5nIGlzIGRvbmUgaW4gS2V5RXZlbnRNYWMubW0gaW4g
V2ViQ29yZQogICAgIGlmICghZGljdGF0aW9uQWx0ZXJuYXRpdmVzLmlzRW1wdHkoKSkKLSAgICAg
ICAgbV9wYWdlLmluc2VydERpY3RhdGVkVGV4dEFzeW5jKGV2ZW50VGV4dCwgcmVwbGFjZW1lbnRS
YW5nZSwgZGljdGF0aW9uQWx0ZXJuYXRpdmVzLCByZWdpc3RlclVuZG9Hcm91cCk7CisgICAgICAg
IG1fcGFnZS0+aW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMoZXZlbnRUZXh0LCByZXBsYWNlbWVudFJh
bmdlLCBkaWN0YXRpb25BbHRlcm5hdGl2ZXMsIHJlZ2lzdGVyVW5kb0dyb3VwKTsKICAgICBlbHNl
Ci0gICAgICAgIG1fcGFnZS5pbnNlcnRUZXh0QXN5bmMoZXZlbnRUZXh0LCByZXBsYWNlbWVudFJh
bmdlLCByZWdpc3RlclVuZG9Hcm91cCk7CisgICAgICAgIG1fcGFnZS0+aW5zZXJ0VGV4dEFzeW5j
KGV2ZW50VGV4dCwgcmVwbGFjZW1lbnRSYW5nZSwgcmVnaXN0ZXJVbmRvR3JvdXApOwogfQogCiB2
b2lkIFdlYlZpZXdJbXBsOjpzZWxlY3RlZFJhbmdlV2l0aENvbXBsZXRpb25IYW5kbGVyKHZvaWQo
XmNvbXBsZXRpb25IYW5kbGVyUHRyKShOU1JhbmdlIHNlbGVjdGVkUmFuZ2UpKQpAQCAtMzM5MCw3
ICszNDI0LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2VsZWN0ZWRSYW5nZVdpdGhDb21wbGV0aW9u
SGFuZGxlcih2b2lkKF5jb21wbGV0aW9uSGFuZGxlclB0cikKICAgICBhdXRvIGNvbXBsZXRpb25I
YW5kbGVyID0gYWRvcHROUyhbY29tcGxldGlvbkhhbmRsZXJQdHIgY29weV0pOwogCiAgICAgTE9H
KFRleHRJbnB1dCwgInNlbGVjdGVkUmFuZ2UiKTsKLSAgICBtX3BhZ2UuZ2V0U2VsZWN0ZWRSYW5n
ZUFzeW5jKFtjb21wbGV0aW9uSGFuZGxlcl0oY29uc3QgRWRpdGluZ1JhbmdlJiBlZGl0aW5nUmFu
Z2VSZXN1bHQsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgIG1fcGFn
ZS0+Z2V0U2VsZWN0ZWRSYW5nZUFzeW5jKFtjb21wbGV0aW9uSGFuZGxlcl0oY29uc3QgRWRpdGlu
Z1JhbmdlJiBlZGl0aW5nUmFuZ2VSZXN1bHQsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBl
cnJvcikgewogICAgICAgICB2b2lkICheY29tcGxldGlvbkhhbmRsZXJCbG9jaykoTlNSYW5nZSkg
PSAodm9pZCAoXikoTlNSYW5nZSkpY29tcGxldGlvbkhhbmRsZXIuZ2V0KCk7CiAgICAgICAgIGlm
IChlcnJvciAhPSBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpIHsKICAgICAgICAg
ICAgIExPRyhUZXh0SW5wdXQsICIgICAgLi4uc2VsZWN0ZWRSYW5nZSBmYWlsZWQuIik7CkBAIC0z
NDExLDcgKzM0NDUsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjptYXJrZWRSYW5nZVdpdGhDb21wbGV0
aW9uSGFuZGxlcih2b2lkKF5jb21wbGV0aW9uSGFuZGxlclB0cikoTgogICAgIGF1dG8gY29tcGxl
dGlvbkhhbmRsZXIgPSBhZG9wdE5TKFtjb21wbGV0aW9uSGFuZGxlclB0ciBjb3B5XSk7CiAKICAg
ICBMT0coVGV4dElucHV0LCAibWFya2VkUmFuZ2UiKTsKLSAgICBtX3BhZ2UuZ2V0TWFya2VkUmFu
Z2VBc3luYyhbY29tcGxldGlvbkhhbmRsZXJdKGNvbnN0IEVkaXRpbmdSYW5nZSYgZWRpdGluZ1Jh
bmdlUmVzdWx0LCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICBtX3Bh
Z2UtPmdldE1hcmtlZFJhbmdlQXN5bmMoW2NvbXBsZXRpb25IYW5kbGVyXShjb25zdCBFZGl0aW5n
UmFuZ2UmIGVkaXRpbmdSYW5nZVJlc3VsdCwgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVy
cm9yKSB7CiAgICAgICAgIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlckJsb2NrKShOU1JhbmdlKSA9
ICh2b2lkICheKShOU1JhbmdlKSljb21wbGV0aW9uSGFuZGxlci5nZXQoKTsKICAgICAgICAgaWYg
KGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkgewogICAgICAgICAg
ICAgTE9HKFRleHRJbnB1dCwgIiAgICAuLi5tYXJrZWRSYW5nZSBmYWlsZWQuIik7CkBAIC0zNDMy
LDcgKzM0NjYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpoYXNNYXJrZWRUZXh0V2l0aENvbXBsZXRp
b25IYW5kbGVyKHZvaWQoXmNvbXBsZXRpb25IYW5kbGVyUHRyKQogICAgIGF1dG8gY29tcGxldGlv
bkhhbmRsZXIgPSBhZG9wdE5TKFtjb21wbGV0aW9uSGFuZGxlclB0ciBjb3B5XSk7CiAKICAgICBM
T0coVGV4dElucHV0LCAiaGFzTWFya2VkVGV4dCIpOwotICAgIG1fcGFnZS5nZXRNYXJrZWRSYW5n
ZUFzeW5jKFtjb21wbGV0aW9uSGFuZGxlcl0oY29uc3QgRWRpdGluZ1JhbmdlJiBlZGl0aW5nUmFu
Z2VSZXN1bHQsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgIG1fcGFn
ZS0+Z2V0TWFya2VkUmFuZ2VBc3luYyhbY29tcGxldGlvbkhhbmRsZXJdKGNvbnN0IEVkaXRpbmdS
YW5nZSYgZWRpdGluZ1JhbmdlUmVzdWx0LCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJy
b3IpIHsKICAgICAgICAgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyQmxvY2spKEJPT0wpID0gKHZv
aWQgKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyLmdldCgpOwogICAgICAgICBpZiAoZXJyb3Ig
IT0gV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKSB7CiAgICAgICAgICAgICBMT0co
VGV4dElucHV0LCAiICAgIC4uLmhhc01hcmtlZFRleHQgZmFpbGVkLiIpOwpAQCAtMzQ1MCw3ICsz
NDg0LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2Vk
UmFuZ2UoTlNSYW5nZSBwcm9wb3NlZFJhbmdlLCB2b2kKICAgICBhdXRvIGNvbXBsZXRpb25IYW5k
bGVyID0gYWRvcHROUyhbY29tcGxldGlvbkhhbmRsZXJQdHIgY29weV0pOwogCiAgICAgTE9HKFRl
eHRJbnB1dCwgImF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9tUmFuZ2U6KCV1LCAldSkiLCBwcm9wb3Nl
ZFJhbmdlLmxvY2F0aW9uLCBwcm9wb3NlZFJhbmdlLmxlbmd0aCk7Ci0gICAgbV9wYWdlLmF0dHJp
YnV0ZWRTdWJzdHJpbmdGb3JDaGFyYWN0ZXJSYW5nZUFzeW5jKHByb3Bvc2VkUmFuZ2UsIFtjb21w
bGV0aW9uSGFuZGxlcl0oY29uc3QgQXR0cmlidXRlZFN0cmluZyYgc3RyaW5nLCBjb25zdCBFZGl0
aW5nUmFuZ2UmIGFjdHVhbFJhbmdlLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3Ip
IHsKKyAgICBtX3BhZ2UtPmF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JDaGFyYWN0ZXJSYW5nZUFzeW5j
KHByb3Bvc2VkUmFuZ2UsIFtjb21wbGV0aW9uSGFuZGxlcl0oY29uc3QgQXR0cmlidXRlZFN0cmlu
ZyYgc3RyaW5nLCBjb25zdCBFZGl0aW5nUmFuZ2UmIGFjdHVhbFJhbmdlLCBXZWJLaXQ6OkNhbGxi
YWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKICAgICAgICAgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVy
QmxvY2spKE5TQXR0cmlidXRlZFN0cmluZyAqLCBOU1JhbmdlKSA9ICh2b2lkICheKShOU0F0dHJp
YnV0ZWRTdHJpbmcgKiwgTlNSYW5nZSkpY29tcGxldGlvbkhhbmRsZXIuZ2V0KCk7CiAgICAgICAg
IGlmIChlcnJvciAhPSBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpIHsKICAgICAg
ICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLi4uYXR0cmlidXRlZFN1YnN0cmluZ0Zyb21SYW5n
ZSBmYWlsZWQuIik7CkBAIC0zNDgxLDcgKzM1MTUsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpmaXJz
dFJlY3RGb3JDaGFyYWN0ZXJSYW5nZShOU1JhbmdlIHJhbmdlLCB2b2lkKF5jb21wbGV0aW9uSGFu
ZAogICAgIH0KIAogICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7Ci0gICAgbV9w
YWdlLmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlQXN5bmMocmFuZ2UsIFt3ZWFrVGhpcywgY29t
cGxldGlvbkhhbmRsZXJdKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QsIGNvbnN0IEVkaXRp
bmdSYW5nZSYgYWN0dWFsUmFuZ2UsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikg
eworICAgIG1fcGFnZS0+Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2VBc3luYyhyYW5nZSwgW3dl
YWtUaGlzLCBjb21wbGV0aW9uSGFuZGxlcl0oY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCwg
Y29uc3QgRWRpdGluZ1JhbmdlJiBhY3R1YWxSYW5nZSwgV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVy
cm9yIGVycm9yKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47
CiAKQEAgLTM1MTUsNyArMzU0OSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmNoYXJhY3RlckluZGV4
Rm9yUG9pbnQoTlNQb2ludCBwb2ludCwgdm9pZCheY29tcGxldGlvbkhhbmRsZXJQCiAjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgcG9pbnQgPSBbbV92aWV3IGNvbnZlcnRQb2ludDpw
b2ludCBmcm9tVmlldzpuaWxdOyAgLy8gdGhlIHBvaW50IGlzIHJlbGF0aXZlIHRvIHRoZSBtYWlu
IGZyYW1lCiAKLSAgICBtX3BhZ2UuY2hhcmFjdGVySW5kZXhGb3JQb2ludEFzeW5jKFdlYkNvcmU6
OkludFBvaW50KHBvaW50KSwgW2NvbXBsZXRpb25IYW5kbGVyXSh1aW50NjRfdCByZXN1bHQsIFdl
YktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgIG1fcGFnZS0+Y2hhcmFjdGVy
SW5kZXhGb3JQb2ludEFzeW5jKFdlYkNvcmU6OkludFBvaW50KHBvaW50KSwgW2NvbXBsZXRpb25I
YW5kbGVyXSh1aW50NjRfdCByZXN1bHQsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJv
cikgewogICAgICAgICB2b2lkICheY29tcGxldGlvbkhhbmRsZXJCbG9jaykoTlNVSW50ZWdlcikg
PSAodm9pZCAoXikoTlNVSW50ZWdlcikpY29tcGxldGlvbkhhbmRsZXIuZ2V0KCk7CiAgICAgICAg
IGlmIChlcnJvciAhPSBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpIHsKICAgICAg
ICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLi4uY2hhcmFjdGVySW5kZXhGb3JQb2ludCBmYWls
ZWQuIik7CkBAIC0zNTM3LDcgKzM1NzEsNyBAQCBOU1RleHRJbnB1dENvbnRleHQgKldlYlZpZXdJ
bXBsOjppbnB1dENvbnRleHQoKQogICAgIH0KIAogICAgIC8vIERpc2FibGUgdGV4dCBpbnB1dCBt
YWNoaW5lcnkgd2hlbiBpbiBub24tZWRpdGFibGUgY29udGVudC4gQW4gaW52aXNpYmxlIGlubGlu
ZSBpbnB1dCBhcmVhIGFmZmVjdHMgcGVyZm9ybWFuY2UsIGFuZCBjYW4gcHJldmVudCBFeHBvc2Ug
ZnJvbSB3b3JraW5nLgotICAgIGlmICghbV9wYWdlLmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRp
dGFibGUpCisgICAgaWYgKCFtX3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGUp
CiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICByZXR1cm4gW21fdmlldyBfc3VwZXJJbnB1dENv
bnRleHRdOwpAQCAtMzU0Nyw3ICszNTgxLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dW5tYXJrVGV4
dCgpCiB7CiAgICAgTE9HKFRleHRJbnB1dCwgInVubWFya1RleHQiKTsKIAotICAgIG1fcGFnZS5j
b25maXJtQ29tcG9zaXRpb25Bc3luYygpOworICAgIG1fcGFnZS0+Y29uZmlybUNvbXBvc2l0aW9u
QXN5bmMoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0TWFya2VkVGV4dChpZCBzdHJpbmcs
IE5TUmFuZ2Ugc2VsZWN0ZWRSYW5nZSwgTlNSYW5nZSByZXBsYWNlbWVudFJhbmdlKQpAQCAtMzU3
MCwxNyArMzYwNCwxNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRNYXJrZWRUZXh0KGlkIHN0cmlu
ZywgTlNSYW5nZSBzZWxlY3RlZFJhbmdlLCBOU1JhbmdlIHJlcGxhYwogICAgIGlmIChpblNlY3Vy
ZUlucHV0U3RhdGUoKSkgewogICAgICAgICAvLyBJbiBwYXNzd29yZCBmaWVsZHMsIHdlIG9ubHkg
YWxsb3cgQVNDSUkgZGVhZCBrZXlzLCBhbmQgZG9uJ3QgYWxsb3cgaW5saW5lIGlucHV0LCBtYXRj
aGluZyBOU1NlY3VyZVRleHRJbnB1dEZpZWxkLgogICAgICAgICAvLyBBbGxvd2luZyBBU0NJSSBk
ZWFkIGtleXMgaXMgbmVjZXNzYXJ5IHRvIGVuYWJsZSBmdWxsIFJvbWFuIGlucHV0IHdoZW4gdXNp
bmcgYSBWaWV0bmFtZXNlIGtleWJvYXJkLgotICAgICAgICBBU1NFUlQoIW1fcGFnZS5lZGl0b3JT
dGF0ZSgpLmhhc0NvbXBvc2l0aW9uKTsKKyAgICAgICAgQVNTRVJUKCFtX3BhZ2UtPmVkaXRvclN0
YXRlKCkuaGFzQ29tcG9zaXRpb24pOwogICAgICAgICBub3RpZnlJbnB1dENvbnRleHRBYm91dERp
c2NhcmRlZENvbXBvc2l0aW9uKCk7CiAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgc3RvcmUg
dGhlIGNvbW1hbmQgdG8gaGFuZGxlIGl0IGFmdGVyIERPTSBldmVudCBwcm9jZXNzaW5nLCBhcyBp
dCdzIHJlZ3VsYXIga2V5Ym9hcmQgaW5wdXQgbm93LCBub3QgYSBjb21wb3NpdGlvbi4KICAgICAg
ICAgaWYgKFt0ZXh0IGxlbmd0aF0gPT0gMSAmJiBpc0FTQ0lJKFt0ZXh0IGNoYXJhY3RlckF0SW5k
ZXg6MF0pKQotICAgICAgICAgICAgbV9wYWdlLmluc2VydFRleHRBc3luYyh0ZXh0LCByZXBsYWNl
bWVudFJhbmdlKTsKKyAgICAgICAgICAgIG1fcGFnZS0+aW5zZXJ0VGV4dEFzeW5jKHRleHQsIHJl
cGxhY2VtZW50UmFuZ2UpOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBOU0JlZXAoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fcGFnZS5zZXRDb21wb3NpdGlvbkFzeW5jKHRl
eHQsIHVuZGVybGluZXMsIHNlbGVjdGVkUmFuZ2UsIHJlcGxhY2VtZW50UmFuZ2UpOworICAgIG1f
cGFnZS0+c2V0Q29tcG9zaXRpb25Bc3luYyh0ZXh0LCB1bmRlcmxpbmVzLCBzZWxlY3RlZFJhbmdl
LCByZXBsYWNlbWVudFJhbmdlKTsKIH0KIAogLy8gU3luY2hyb25vdXMgTlNUZXh0SW5wdXRDbGll
bnQgaXMgc3RpbGwgaW1wbGVtZW50ZWQgdG8gY2F0Y2ggc3B1cmlvdXMgc3luYyBjYWxscy4gUmVt
b3ZlIHdoZW4gdGhhdCBpcyBubyBsb25nZXIgbmVlZGVkLgpAQCAtMzY1Myw3ICszNjg3LDcgQEAg
Ym9vbCBXZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVxdWl2YWxlbnQoTlNFdmVudCAqZXZlbnQpCiAg
ICAgLy8gRklYTUU6IFdoeSBpcyB0aGUgZmlyc3RSZXNwb25kZXIgY2hlY2sgbmVlZGVkPwogICAg
IGlmIChtX3ZpZXcgPT0gbV92aWV3LndpbmRvdy5maXJzdFJlc3BvbmRlcikgewogICAgICAgICBp
bnRlcnByZXRLZXlFdmVudChldmVudCwgXihCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25z
dCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKLSAgICAgICAg
ICAgIG1fcGFnZS5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZl
bnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykpOworICAgICAgICAgICAgbV9wYWdl
LT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRs
ZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJu
IFlFUzsKICAgICB9CkBAIC0zNjcwLDcgKzM3MDQsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjprZXlV
cChOU0V2ZW50ICpldmVudCkKIAogICAgIGludGVycHJldEtleUV2ZW50KGV2ZW50LCBeKEJPT0wg
aGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1h
bmQ+JiBjb21tYW5kcykgewogICAgICAgICBBU1NFUlQoIWhhbmRsZWRCeUlucHV0TWV0aG9kIHx8
IGNvbW1hbmRzLmlzRW1wdHkoKSk7Ci0gICAgICAgIG1fcGFnZS5oYW5kbGVLZXlib2FyZEV2ZW50
KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21t
YW5kcykpOworICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSk7CiAgICAg
fSk7CiB9CiAKQEAgLTM2OTcsNyArMzczMSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmtleURvd24o
TlNFdmVudCAqZXZlbnQpCiAKICAgICBpbnRlcnByZXRLZXlFdmVudChldmVudCwgXihCT09MIGhh
bmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5k
PiYgY29tbWFuZHMpIHsKICAgICAgICAgQVNTRVJUKCFoYW5kbGVkQnlJbnB1dE1ldGhvZCB8fCBj
b21tYW5kcy5pc0VtcHR5KCkpOwotICAgICAgICBtX3BhZ2UuaGFuZGxlS2V5Ym9hcmRFdmVudChO
YXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFu
ZHMpKTsKKyAgICAgICAgbV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJv
YXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykpOwogICAgIH0p
OwogfQogCkBAIC0zNzEzLDcgKzM3NDcsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpmbGFnc0NoYW5n
ZWQoTlNFdmVudCAqZXZlbnQpCiAgICAgICAgIHJldHVybjsKIAogICAgIGludGVycHJldEtleUV2
ZW50KGV2ZW50LCBeKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykgewotICAgICAgICBtX3BhZ2UuaGFuZGxl
S2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1
dE1ldGhvZCwgY29tbWFuZHMpKTsKKyAgICAgICAgbV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50
KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21t
YW5kcykpOwogICAgIH0pOwogfQogCkBAIC0zNzY5LDcgKzM4MDMsNyBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpleGVjdXRlU2F2ZWRLZXlwcmVzc0NvbW1hbmRzKCkKICAgICBMT0coVGV4dElucHV0LCAi
RXhlY3V0aW5nICV1IHNhdmVkIGtleXByZXNzIGNvbW1hbmRzLi4uIiwgcGFyYW1ldGVycy0+Y29t
bWFuZHMtPnNpemUoKSk7CiAKICAgICBwYXJhbWV0ZXJzLT5leGVjdXRpbmdTYXZlZEtleXByZXNz
Q29tbWFuZHMgPSB0cnVlOwotICAgIHBhcmFtZXRlcnMtPmV2ZW50SW50ZXJwcmV0YXRpb25IYWRT
aWRlRWZmZWN0cyB8PSBtX3BhZ2UuZXhlY3V0ZUtleXByZXNzQ29tbWFuZHMoKnBhcmFtZXRlcnMt
PmNvbW1hbmRzKTsKKyAgICBwYXJhbWV0ZXJzLT5ldmVudEludGVycHJldGF0aW9uSGFkU2lkZUVm
ZmVjdHMgfD0gbV9wYWdlLT5leGVjdXRlS2V5cHJlc3NDb21tYW5kcygqcGFyYW1ldGVycy0+Y29t
bWFuZHMpOwogICAgIHBhcmFtZXRlcnMtPmNvbW1hbmRzLT5jbGVhcigpOwogICAgIHBhcmFtZXRl
cnMtPmV4ZWN1dGluZ1NhdmVkS2V5cHJlc3NDb21tYW5kcyA9IGZhbHNlOwogCkBAIC0zNzg1LDEz
ICszODE5LDEzIEBAIHZvaWQgV2ViVmlld0ltcGw6OmRvQ29tbWFuZEJ5U2VsZWN0b3IoU0VMIHNl
bGVjdG9yKQogICAgICAgICBwYXJhbWV0ZXJzLT5jb25zdW1lZEJ5SU0gPSBmYWxzZTsKIAogICAg
IC8vIEFzIGluIGluc2VydFRleHQ6cmVwbGFjZW1lbnRSYW5nZTosIHdlIGFzc3VtZSB0aGF0IHRo
ZSBjYWxsIGNvbWVzIGZyb20gYW4gaW5wdXQgbWV0aG9kIGlmIHRoZXJlIGlzIG1hcmtlZCB0ZXh0
LgotICAgIGJvb2wgaXNGcm9tSW5wdXRNZXRob2QgPSBtX3BhZ2UuZWRpdG9yU3RhdGUoKS5oYXND
b21wb3NpdGlvbjsKKyAgICBib29sIGlzRnJvbUlucHV0TWV0aG9kID0gbV9wYWdlLT5lZGl0b3JT
dGF0ZSgpLmhhc0NvbXBvc2l0aW9uOwogCiAgICAgaWYgKHBhcmFtZXRlcnMgJiYgIWlzRnJvbUlu
cHV0TWV0aG9kKSB7CiAgICAgICAgIFdlYkNvcmU6OktleXByZXNzQ29tbWFuZCBjb21tYW5kKE5T
U3RyaW5nRnJvbVNlbGVjdG9yKHNlbGVjdG9yKSk7CiAgICAgICAgIHBhcmFtZXRlcnMtPmNvbW1h
bmRzLT5hcHBlbmQoY29tbWFuZCk7CiAgICAgICAgIExPRyhUZXh0SW5wdXQsICIuLi5zdG9yZWQi
KTsKLSAgICAgICAgbV9wYWdlLnJlZ2lzdGVyS2V5cHJlc3NDb21tYW5kTmFtZShjb21tYW5kLmNv
bW1hbmROYW1lKTsKKyAgICAgICAgbV9wYWdlLT5yZWdpc3RlcktleXByZXNzQ29tbWFuZE5hbWUo
Y29tbWFuZC5jb21tYW5kTmFtZSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gRklYTUU6IFNl
bmQgdGhlIGNvbW1hbmQgdG8gRWRpdG9yIHN5bmNocm9ub3VzbHkgYW5kIG9ubHkgc2VuZCBpdCBh
bG9uZyB0aGUKICAgICAgICAgLy8gcmVzcG9uZGVyIGNoYWluIGlmIGl0J3MgYSBzZWxlY3RvciB0
aGF0IGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYW4gZWRpdGluZyBjb21tYW5kLgpAQCAtMzgyMSw3
ICszODU1LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6aW5zZXJ0VGV4dChpZCBzdHJpbmcsIE5TUmFu
Z2UgcmVwbGFjZW1lbnRSYW5nZSkKICAgICAgICAgcGFyYW1ldGVycy0+Y29uc3VtZWRCeUlNID0g
ZmFsc2U7CiAKICAgICBOU1N0cmluZyAqdGV4dDsKLSAgICBib29sIGlzRnJvbUlucHV0TWV0aG9k
ID0gbV9wYWdlLmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb247CisgICAgYm9vbCBpc0Zyb21J
bnB1dE1ldGhvZCA9IG1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5oYXNDb21wb3NpdGlvbjsKIAogICAg
IFZlY3RvcjxXZWJDb3JlOjpUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2U+IGRpY3RhdGlvbkFsdGVy
bmF0aXZlczsKIApAQCAtMzg0NSw3ICszODc5LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6aW5zZXJ0
VGV4dChpZCBzdHJpbmcsIE5TUmFuZ2UgcmVwbGFjZW1lbnRSYW5nZSkKICAgICAgICAgQVNTRVJU
KHJlcGxhY2VtZW50UmFuZ2UubG9jYXRpb24gPT0gTlNOb3RGb3VuZCk7CiAgICAgICAgIFdlYkNv
cmU6OktleXByZXNzQ29tbWFuZCBjb21tYW5kKCJpbnNlcnRUZXh0OiIsIHRleHQpOwogICAgICAg
ICBwYXJhbWV0ZXJzLT5jb21tYW5kcy0+YXBwZW5kKGNvbW1hbmQpOwotICAgICAgICBtX3BhZ2Uu
cmVnaXN0ZXJLZXlwcmVzc0NvbW1hbmROYW1lKGNvbW1hbmQuY29tbWFuZE5hbWUpOworICAgICAg
ICBtX3BhZ2UtPnJlZ2lzdGVyS2V5cHJlc3NDb21tYW5kTmFtZShjb21tYW5kLmNvbW1hbmROYW1l
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzg1Myw5ICszODg3LDkgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6aW5zZXJ0VGV4dChpZCBzdHJpbmcsIE5TUmFuZ2UgcmVwbGFjZW1lbnRSYW5n
ZSkKICAgICBldmVudFRleHQucmVwbGFjZShOU0JhY2tUYWJDaGFyYWN0ZXIsIE5TVGFiQ2hhcmFj
dGVyKTsgLy8gc2FtZSB0aGluZyBpcyBkb25lIGluIEtleUV2ZW50TWFjLm1tIGluIFdlYkNvcmUK
ICAgICBib29sIGV2ZW50SGFuZGxlZDsKICAgICBpZiAoIWRpY3RhdGlvbkFsdGVybmF0aXZlcy5p
c0VtcHR5KCkpCi0gICAgICAgIGV2ZW50SGFuZGxlZCA9IG1fcGFnZS5pbnNlcnREaWN0YXRlZFRl
eHQoZXZlbnRUZXh0LCByZXBsYWNlbWVudFJhbmdlLCBkaWN0YXRpb25BbHRlcm5hdGl2ZXMpOwor
ICAgICAgICBldmVudEhhbmRsZWQgPSBtX3BhZ2UtPmluc2VydERpY3RhdGVkVGV4dChldmVudFRl
eHQsIHJlcGxhY2VtZW50UmFuZ2UsIGRpY3RhdGlvbkFsdGVybmF0aXZlcyk7CiAgICAgZWxzZQot
ICAgICAgICBldmVudEhhbmRsZWQgPSBtX3BhZ2UuaW5zZXJ0VGV4dChldmVudFRleHQsIHJlcGxh
Y2VtZW50UmFuZ2UpOworICAgICAgICBldmVudEhhbmRsZWQgPSBtX3BhZ2UtPmluc2VydFRleHQo
ZXZlbnRUZXh0LCByZXBsYWNlbWVudFJhbmdlKTsKIAogICAgIGlmIChwYXJhbWV0ZXJzKQogICAg
ICAgICBwYXJhbWV0ZXJzLT5ldmVudEludGVycHJldGF0aW9uSGFkU2lkZUVmZmVjdHMgfD0gZXZl
bnRIYW5kbGVkOwpAQCAtMzg2OSw3ICszOTAzLDcgQEAgTlNUZXh0SW5wdXRDb250ZXh0ICpXZWJW
aWV3SW1wbDo6aW5wdXRDb250ZXh0KCkKICAgICAgICAgcmV0dXJuIFtbV0tUZXh0SW5wdXRXaW5k
b3dDb250cm9sbGVyIHNoYXJlZFRleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXJdIGlucHV0Q29udGV4
dF07CiAKICAgICAvLyBEaXNhYmxlIHRleHQgaW5wdXQgbWFjaGluZXJ5IHdoZW4gaW4gbm9uLWVk
aXRhYmxlIGNvbnRlbnQuIEFuIGludmlzaWJsZSBpbmxpbmUgaW5wdXQgYXJlYSBhZmZlY3RzIHBl
cmZvcm1hbmNlLCBhbmQgY2FuIHByZXZlbnQgRXhwb3NlIGZyb20gd29ya2luZy4KLSAgICBpZiAo
IW1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlKQorICAgIGlmICghbV9wYWdl
LT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlKQogICAgICAgICByZXR1cm4gbmlsOwog
CiAgICAgcmV0dXJuIFttX3ZpZXcgX3N1cGVySW5wdXRDb250ZXh0XTsKQEAgLTM4ODAsNyArMzkx
NCw3IEBAIE5TUmFuZ2UgV2ViVmlld0ltcGw6OnNlbGVjdGVkUmFuZ2UoKQogICAgIGV4ZWN1dGVT
YXZlZEtleXByZXNzQ29tbWFuZHMoKTsKIAogICAgIEVkaXRpbmdSYW5nZSBzZWxlY3RlZFJhbmdl
OwotICAgIG1fcGFnZS5nZXRTZWxlY3RlZFJhbmdlKHNlbGVjdGVkUmFuZ2UpOworICAgIG1fcGFn
ZS0+Z2V0U2VsZWN0ZWRSYW5nZShzZWxlY3RlZFJhbmdlKTsKIAogICAgIE5TUmFuZ2UgcmVzdWx0
ID0gc2VsZWN0ZWRSYW5nZTsKICAgICBpZiAocmVzdWx0LmxvY2F0aW9uID09IE5TTm90Rm91bmQp
CkBAIC0zODk3LDE1ICszOTMxLDE1IEBAIGJvb2wgV2ViVmlld0ltcGw6Omhhc01hcmtlZFRleHQo
KQogCiAgICAgQk9PTCByZXN1bHQ7CiAgICAgaWYgKHBhcmFtZXRlcnMpIHsKLSAgICAgICAgcmVz
dWx0ID0gbV9wYWdlLmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb247CisgICAgICAgIHJlc3Vs
dCA9IG1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5oYXNDb21wb3NpdGlvbjsKICAgICAgICAgaWYgKHJl
c3VsdCkgewogICAgICAgICAgICAgLy8gQSBzYXZlZCBjb21tYW5kIGNhbiBjb25maXJtIGEgY29t
cG9zaXRpb24sIGJ1dCBpdCBjYW5ub3Qgc3RhcnQgYSBuZXcgb25lLgogICAgICAgICAgICAgZXhl
Y3V0ZVNhdmVkS2V5cHJlc3NDb21tYW5kcygpOwotICAgICAgICAgICAgcmVzdWx0ID0gbV9wYWdl
LmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb247CisgICAgICAgICAgICByZXN1bHQgPSBtX3Bh
Z2UtPmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb247CiAgICAgICAgIH0KICAgICB9IGVsc2Ug
ewogICAgICAgICBFZGl0aW5nUmFuZ2UgbWFya2VkUmFuZ2U7Ci0gICAgICAgIG1fcGFnZS5nZXRN
YXJrZWRSYW5nZShtYXJrZWRSYW5nZSk7CisgICAgICAgIG1fcGFnZS0+Z2V0TWFya2VkUmFuZ2Uo
bWFya2VkUmFuZ2UpOwogICAgICAgICByZXN1bHQgPSBtYXJrZWRSYW5nZS5sb2NhdGlvbiAhPSBu
b3RGb3VuZDsKICAgICB9CiAKQEAgLTM5MjYsNyArMzk2MCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6
OnVubWFya1RleHQoKQogICAgICAgICBwYXJhbWV0ZXJzLT5jb25zdW1lZEJ5SU0gPSBmYWxzZTsK
ICAgICB9CiAKLSAgICBtX3BhZ2UuY29uZmlybUNvbXBvc2l0aW9uKCk7CisgICAgbV9wYWdlLT5j
b25maXJtQ29tcG9zaXRpb24oKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0TWFya2VkVGV4
dChpZCBzdHJpbmcsIE5TUmFuZ2UgbmV3U2VsZWN0ZWRSYW5nZSwgTlNSYW5nZSByZXBsYWNlbWVu
dFJhbmdlKQpAQCAtMzk1NSwxOSArMzk4OSwxOSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRNYXJr
ZWRUZXh0KGlkIHN0cmluZywgTlNSYW5nZSBuZXdTZWxlY3RlZFJhbmdlLCBOU1JhbmdlIHJlcAog
ICAgIH0gZWxzZQogICAgICAgICB0ZXh0ID0gc3RyaW5nOwogCi0gICAgaWYgKG1fcGFnZS5lZGl0
b3JTdGF0ZSgpLmlzSW5QYXNzd29yZEZpZWxkKSB7CisgICAgaWYgKG1fcGFnZS0+ZWRpdG9yU3Rh
dGUoKS5pc0luUGFzc3dvcmRGaWVsZCkgewogICAgICAgICAvLyBJbiBwYXNzd29yZCBmaWVsZHMs
IHdlIG9ubHkgYWxsb3cgQVNDSUkgZGVhZCBrZXlzLCBhbmQgZG9uJ3QgYWxsb3cgaW5saW5lIGlu
cHV0LCBtYXRjaGluZyBOU1NlY3VyZVRleHRJbnB1dEZpZWxkLgogICAgICAgICAvLyBBbGxvd2lu
ZyBBU0NJSSBkZWFkIGtleXMgaXMgbmVjZXNzYXJ5IHRvIGVuYWJsZSBmdWxsIFJvbWFuIGlucHV0
IHdoZW4gdXNpbmcgYSBWaWV0bmFtZXNlIGtleWJvYXJkLgotICAgICAgICBBU1NFUlQoIW1fcGFn
ZS5lZGl0b3JTdGF0ZSgpLmhhc0NvbXBvc2l0aW9uKTsKKyAgICAgICAgQVNTRVJUKCFtX3BhZ2Ut
PmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb24pOwogICAgICAgICBub3RpZnlJbnB1dENvbnRl
eHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uKCk7CiAgICAgICAgIGlmIChbdGV4dCBsZW5ndGhd
ID09IDEgJiYgW1t0ZXh0IGRlY29tcG9zZWRTdHJpbmdXaXRoQ2Fub25pY2FsTWFwcGluZ10gY2hh
cmFjdGVyQXRJbmRleDowXSA8IDB4ODApIHsKLSAgICAgICAgICAgIG1fcGFnZS5pbnNlcnRUZXh0
KHRleHQsIHJlcGxhY2VtZW50UmFuZ2UpOworICAgICAgICAgICAgbV9wYWdlLT5pbnNlcnRUZXh0
KHRleHQsIHJlcGxhY2VtZW50UmFuZ2UpOwogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIE5T
QmVlcCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9wYWdlLnNldENvbXBvc2l0
aW9uKHRleHQsIHVuZGVybGluZXMsIG5ld1NlbGVjdGVkUmFuZ2UsIHJlcGxhY2VtZW50UmFuZ2Up
OworICAgIG1fcGFnZS0+c2V0Q29tcG9zaXRpb24odGV4dCwgdW5kZXJsaW5lcywgbmV3U2VsZWN0
ZWRSYW5nZSwgcmVwbGFjZW1lbnRSYW5nZSk7CiB9CiAKIE5TUmFuZ2UgV2ViVmlld0ltcGw6Om1h
cmtlZFJhbmdlKCkKQEAgLTM5NzUsNyArNDAwOSw3IEBAIE5TUmFuZ2UgV2ViVmlld0ltcGw6Om1h
cmtlZFJhbmdlKCkKICAgICBleGVjdXRlU2F2ZWRLZXlwcmVzc0NvbW1hbmRzKCk7CiAKICAgICBF
ZGl0aW5nUmFuZ2UgbWFya2VkUmFuZ2U7Ci0gICAgbV9wYWdlLmdldE1hcmtlZFJhbmdlKG1hcmtl
ZFJhbmdlKTsKKyAgICBtX3BhZ2UtPmdldE1hcmtlZFJhbmdlKG1hcmtlZFJhbmdlKTsKIAogICAg
IE5TUmFuZ2UgcmVzdWx0ID0gbWFya2VkUmFuZ2U7CiAgICAgaWYgKHJlc3VsdC5sb2NhdGlvbiA9
PSBOU05vdEZvdW5kKQpAQCAtMzk5MCwxNiArNDAyNCwxNiBAQCBOU0F0dHJpYnV0ZWRTdHJpbmcg
KldlYlZpZXdJbXBsOjphdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZShOU1Jhbmdl
IHBybwogewogICAgIGV4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHMoKTsKIAotICAgIGlmICgh
bV9wYWdlLmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGUpIHsKKyAgICBpZiAoIW1fcGFn
ZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZSkgewogICAgICAgICBMT0coVGV4dElu
cHV0LCAiYXR0cmlidXRlZFN1YnN0cmluZ0Zyb21SYW5nZTooJXUsICV1KSAtPiBuaWwiLCBwcm9w
b3NlZFJhbmdlLmxvY2F0aW9uLCBwcm9wb3NlZFJhbmdlLmxlbmd0aCk7CiAgICAgICAgIHJldHVy
biBuaWw7CiAgICAgfQogCi0gICAgaWYgKG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlzSW5QYXNzd29y
ZEZpZWxkKQorICAgIGlmIChtX3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNJblBhc3N3b3JkRmllbGQp
CiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBBdHRyaWJ1dGVkU3RyaW5nIHJlc3VsdDsKLSAg
ICBtX3BhZ2UuZ2V0QXR0cmlidXRlZFN1YnN0cmluZ0Zyb21SYW5nZShwcm9wb3NlZFJhbmdlLCBy
ZXN1bHQpOworICAgIG1fcGFnZS0+Z2V0QXR0cmlidXRlZFN1YnN0cmluZ0Zyb21SYW5nZShwcm9w
b3NlZFJhbmdlLCByZXN1bHQpOwogCiAgICAgaWYgKGFjdHVhbFJhbmdlKSB7CiAgICAgICAgICph
Y3R1YWxSYW5nZSA9IHByb3Bvc2VkUmFuZ2U7CkBAIC00MDIzLDcgKzQwNTcsNyBAQCBOU1VJbnRl
Z2VyIFdlYlZpZXdJbXBsOjpjaGFyYWN0ZXJJbmRleEZvclBvaW50KE5TUG9pbnQgcG9pbnQpCiAj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgcG9pbnQgPSBbbV92aWV3IGNvbnZlcnRQ
b2ludDpwb2ludCBmcm9tVmlldzpuaWxdOyAgLy8gdGhlIHBvaW50IGlzIHJlbGF0aXZlIHRvIHRo
ZSBtYWluIGZyYW1lCiAgICAgCi0gICAgdWludDY0X3QgcmVzdWx0ID0gbV9wYWdlLmNoYXJhY3Rl
ckluZGV4Rm9yUG9pbnQoV2ViQ29yZTo6SW50UG9pbnQocG9pbnQpKTsKKyAgICB1aW50NjRfdCBy
ZXN1bHQgPSBtX3BhZ2UtPmNoYXJhY3RlckluZGV4Rm9yUG9pbnQoV2ViQ29yZTo6SW50UG9pbnQo
cG9pbnQpKTsKICAgICBpZiAocmVzdWx0ID09IG5vdEZvdW5kKQogICAgICAgICByZXN1bHQgPSBO
U05vdEZvdW5kOwogICAgIExPRyhUZXh0SW5wdXQsICJjaGFyYWN0ZXJJbmRleEZvclBvaW50Oigl
ZiwgJWYpIC0+ICV1IiwgcG9pbnQueCwgcG9pbnQueSwgcmVzdWx0KTsKQEAgLTQwNDcsNyArNDA4
MSw3IEBAIE5TUmVjdCBXZWJWaWV3SW1wbDo6Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UoTlNS
YW5nZSByYW5nZSwgTlNSYW5nZVBvaW50ZXIgYWN0CiAgICAgICAgIHJldHVybiBOU1plcm9SZWN0
OwogICAgIH0KIAotICAgIE5TUmVjdCByZXN1bHRSZWN0ID0gbV9wYWdlLmZpcnN0UmVjdEZvckNo
YXJhY3RlclJhbmdlKHJhbmdlKTsKKyAgICBOU1JlY3QgcmVzdWx0UmVjdCA9IG1fcGFnZS0+Zmly
c3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UocmFuZ2UpOwogICAgIHJlc3VsdFJlY3QgPSBbbV92aWV3
IGNvbnZlcnRSZWN0OnJlc3VsdFJlY3QgdG9WaWV3Om5pbF07CiAgICAgcmVzdWx0UmVjdCA9IFtt
X3ZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46cmVzdWx0UmVjdF07CiAKQEAgLTQwOTMs
NyArNDEyNyw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OnBlcmZvcm1LZXlFcXVpdmFsZW50KE5TRXZl
bnQgKmV2ZW50KQogICAgIGlmIChtX3ZpZXcgPT0gbV92aWV3LndpbmRvdy5maXJzdFJlc3BvbmRl
cikgewogICAgICAgICBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiBjb21tYW5kczsK
ICAgICAgICAgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCA9IGludGVycHJldEtleUV2ZW50KGV2
ZW50LCBjb21tYW5kcyk7Ci0gICAgICAgIG1fcGFnZS5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2
ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykp
OworICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSk7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KICAgICAKQEAgLTQxMDcsNyArNDE0MSw3IEBAIHZvaWQgV2ViVmll
d0ltcGw6OmtleVVwKE5TRXZlbnQgKmV2ZW50KQogCiAgICAgTE9HKFRleHRJbnB1dCwgImtleVVw
OiVwICVAIiwgZXZlbnQsIGV2ZW50KTsKICAgICAvLyBXZSBkb24ndCBpbnRlcnByZXQgdGhlIGtl
eVVwIGV2ZW50LCBhcyB0aGlzIGJyZWFrcyBrZXkgYmluZGluZ3MgKHNlZSA8aHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDEwMD4pLgotICAgIG1fcGFnZS5oYW5kbGVL
ZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGZhbHNlLCB7IH0pKTsK
KyAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChl
dmVudCwgZmFsc2UsIHsgfSkpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjprZXlEb3duKE5TRXZl
bnQgKmV2ZW50KQpAQCAtNDE0NSw3ICs0MTc5LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6a2V5RG93
bihOU0V2ZW50ICpldmVudCkKICAgICAgICAgaGFuZGxlZEJ5SW5wdXRNZXRob2QgPSBmYWxzZTsK
ICAgICB9CiAKLSAgICBtX3BhZ2UuaGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2Fy
ZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFuZHMpKTsKKyAgICBtX3Bh
Z2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFu
ZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OmZs
YWdzQ2hhbmdlZChOU0V2ZW50ICpldmVudCkKQEAgLTQxNjQsNyArNDE5OCw3IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OmZsYWdzQ2hhbmdlZChOU0V2ZW50ICpldmVudCkKICAgICBpZiAoZXZlbnRLZXlD
b2RlSXNaZXJvT3JOdW1Mb2NrT3JGbihldmVudCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1f
cGFnZS5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGZh
bHNlLCB7IH0pKTsKKyAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5
Ym9hcmRFdmVudChldmVudCwgZmFsc2UsIHsgfSkpOwogfQogCiAjZW5kaWYgLy8gVVNFKEFTWU5D
X05TVEVYVElOUFVUQ0xJRU5UKQpAQCAtNDE4NSwxMyArNDIxOSwxMyBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpmbGFnc0NoYW5nZWQoTlNFdmVudCAqZXZlbnQpCiAgICAgICAgICAgICAgICAgICAgIExP
RyhUZXh0SW5wdXQsICIlcyB3YXMgaGFuZGxlZCBieSB0ZXh0IGlucHV0IGNvbnRleHQiLCBTdHJp
bmcoI0V2ZW50TmFtZSkuc3Vic3RyaW5nKDAsIFN0cmluZygjRXZlbnROYW1lKS5maW5kKCJJbnRl
cm5hbCIpKS5hc2NpaSgpLmRhdGEoKSk7IFwKICAgICAgICAgICAgICAgICBlbHNlIHsgXAogICAg
ICAgICAgICAgICAgICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KHJldGFpbmVkRXZl
bnQuZ2V0KCksIHdlYWtUaGlzLT5tX2xhc3RQcmVzc3VyZUV2ZW50LmdldCgpLCB3ZWFrVGhpcy0+
bV92aWV3KTsgXAotICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wYWdlLmhhbmRsZU1v
dXNlRXZlbnQod2ViRXZlbnQpOyBcCisgICAgICAgICAgICAgICAgICAgIHdlYWtUaGlzLT5tX3Bh
Z2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOyBcCiAgICAgICAgICAgICAgICAgfSBcCiAg
ICAgICAgICAgICB9XTsgXAogICAgICAgICAgICAgcmV0dXJuOyBcCiAgICAgICAgIH0gXAogICAg
ICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KGV2ZW50LCBtX2xhc3RQcmVzc3VyZUV2
ZW50LmdldCgpLCBtX3ZpZXcpOyBcCi0gICAgICAgIG1fcGFnZS5oYW5kbGVNb3VzZUV2ZW50KHdl
YkV2ZW50KTsgXAorICAgICAgICBtX3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOyBc
CiAgICAgfQogI2RlZmluZSBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExFUl9JTlRFUk5BTChFdmVu
dE5hbWUpIFwKICAgICB2b2lkIFdlYlZpZXdJbXBsOjpFdmVudE5hbWUoTlNFdmVudCAqZXZlbnQp
IFwKQEAgLTQyMDgsMTMgKzQyNDIsMTMgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZmxhZ3NDaGFuZ2Vk
KE5TRXZlbnQgKmV2ZW50KQogICAgICAgICAgICAgICAgICAgICBMT0coVGV4dElucHV0LCAiJXMg
d2FzIGhhbmRsZWQgYnkgdGV4dCBpbnB1dCBjb250ZXh0IiwgU3RyaW5nKCNFdmVudE5hbWUpLnN1
YnN0cmluZygwLCBTdHJpbmcoI0V2ZW50TmFtZSkuZmluZCgiSW50ZXJuYWwiKSkuYXNjaWkoKS5k
YXRhKCkpOyBcCiAgICAgICAgICAgICAgICAgZWxzZSB7IFwKICAgICAgICAgICAgICAgICAgICAg
TmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudChyZXRhaW5lZEV2ZW50LmdldCgpLCB3ZWFrVGhp
cy0+bV9sYXN0UHJlc3N1cmVFdmVudC5nZXQoKSwgd2Vha1RoaXMtPm1fdmlldyk7IFwKLSAgICAg
ICAgICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGFnZS5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50
KTsgXAorICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wYWdlLT5oYW5kbGVNb3VzZUV2
ZW50KHdlYkV2ZW50KTsgXAogICAgICAgICAgICAgICAgIH0gXAogICAgICAgICAgICAgfV07IFwK
ICAgICAgICAgICAgIHJldHVybjsgXAogICAgICAgICB9IFwKICAgICAgICAgTmF0aXZlV2ViTW91
c2VFdmVudCB3ZWJFdmVudChldmVudCwgbV9sYXN0UHJlc3N1cmVFdmVudC5nZXQoKSwgbV92aWV3
KTsgXAotICAgICAgICBtX3BhZ2UuaGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7IFwKKyAgICAg
ICAgbV9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsgXAogICAgIH0KICAgICAKICNl
bHNlIC8vIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKQEAgLTQyMjgsNyArNDI2Miw3IEBA
IHZvaWQgV2ViVmlld0ltcGw6OmZsYWdzQ2hhbmdlZChOU0V2ZW50ICpldmVudCkKICAgICAgICAg
ICAgIHJldHVybjsgXAogICAgICAgICB9IFwKICAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3
ZWJFdmVudChldmVudCwgbV9sYXN0UHJlc3N1cmVFdmVudC5nZXQoKSwgbV92aWV3KTsgXAotICAg
ICAgICBtX3BhZ2UuaGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7IFwKKyAgICAgICAgbV9wYWdl
LT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsgXAogICAgIH0KICNkZWZpbmUgTkFUSVZFX01P
VVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwoRXZlbnROYW1lKSBcCiAgICAgdm9pZCBXZWJWaWV3
SW1wbDo6RXZlbnROYW1lKE5TRXZlbnQgKmV2ZW50KSBcCkBAIC00MjQwLDcgKzQyNzQsNyBAQCB2
b2lkIFdlYlZpZXdJbXBsOjpmbGFnc0NoYW5nZWQoTlNFdmVudCAqZXZlbnQpCiAgICAgICAgICAg
ICByZXR1cm47IFwKICAgICAgICAgfSBcCiAgICAgICAgIE5hdGl2ZVdlYk1vdXNlRXZlbnQgd2Vi
RXZlbnQoZXZlbnQsIG1fbGFzdFByZXNzdXJlRXZlbnQuZ2V0KCksIG1fdmlldyk7IFwKLSAgICAg
ICAgbV9wYWdlLmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOyBcCisgICAgICAgIG1fcGFnZS0+
aGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7IFwKICAgICB9CiAjZW5kaWYgLy8gVVNFKEFTWU5D
X05TVEVYVElOUFVUQ0xJRU5UKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKaW5kZXggY2ZiZGI0NC4uNWE5NDY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaApAQCAtOTg2LDEwICs5ODYsMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGlkU2F2
ZVRvUGFnZUNhY2hlKCk7CiAgICAgICAgIAogICAgIHZvaWQgc2V0U2Nyb2xsUGlubmluZ0JlaGF2
aW9yKFdlYkNvcmU6OlNjcm9sbFBpbm5pbmdCZWhhdmlvcik7Ci0gICAgV2ViQ29yZTo6U2Nyb2xs
UGlubmluZ0JlaGF2aW9yIHNjcm9sbFBpbm5pbmdCZWhhdmlvcigpIHsgcmV0dXJuIG1fc2Nyb2xs
UGlubmluZ0JlaGF2aW9yOyB9CisgICAgV2ViQ29yZTo6U2Nyb2xsUGlubmluZ0JlaGF2aW9yIHNj
cm9sbFBpbm5pbmdCZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Nyb2xsUGlubmluZ0JlaGF2
aW9yOyB9CiAKICAgICB2b2lkIHNldE92ZXJsYXlTY3JvbGxiYXJTdHlsZShXVEY6Ok9wdGlvbmFs
PFdlYkNvcmU6OlNjcm9sbGJhck92ZXJsYXlTdHlsZT4pOwotICAgIFdURjo6T3B0aW9uYWw8V2Vi
Q29yZTo6U2Nyb2xsYmFyT3ZlcmxheVN0eWxlPiBvdmVybGF5U2Nyb2xsYmFyU3R5bGUoKSB7IHJl
dHVybiBtX3Njcm9sbGJhck92ZXJsYXlTdHlsZTsgfQorICAgIFdURjo6T3B0aW9uYWw8V2ViQ29y
ZTo6U2Nyb2xsYmFyT3ZlcmxheVN0eWxlPiBvdmVybGF5U2Nyb2xsYmFyU3R5bGUoKSBjb25zdCB7
IHJldHVybiBtX3Njcm9sbGJhck92ZXJsYXlTdHlsZTsgfQogCiAgICAgYm9vbCBzaG91bGRSZWNv
cmROYXZpZ2F0aW9uU25hcHNob3RzKCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRSZWNvcmROYXZp
Z2F0aW9uU25hcHNob3RzOyB9CiAgICAgdm9pZCBzZXRTaG91bGRSZWNvcmROYXZpZ2F0aW9uU25h
cHNob3RzKGJvb2wgc2hvdWxkUmVjb3JkU25hcHNob3RzKSB7IG1fc2hvdWxkUmVjb3JkTmF2aWdh
dGlvblNuYXBzaG90cyA9IHNob3VsZFJlY29yZFNuYXBzaG90czsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggZDQ0ZGFjMC4uYTI5YTUzMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC04MzYsNyAr
ODM2LDcgQEAgV2ViUHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlTmV3V2ViUHJv
Y2Vzc1Jlc3BlY3RpbmdQcm9jZXNzQ291bnRMaW1pdCgKICAgICByZXR1cm4gKnByb2Nlc3M7CiB9
CiAKLVBhc3NSZWZQdHI8V2ViUGFnZVByb3h5PiBXZWJQcm9jZXNzUG9vbDo6Y3JlYXRlV2ViUGFn
ZShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBSZWY8QVBJOjpQYWdlQ29uZmlndXJhdGlvbj4mJiBw
YWdlQ29uZmlndXJhdGlvbikKK1JlZjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQb29sOjpjcmVh
dGVXZWJQYWdlKFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0
aW9uPiYmIHBhZ2VDb25maWd1cmF0aW9uKQogewogICAgIGlmICghcGFnZUNvbmZpZ3VyYXRpb24t
PnBhZ2VHcm91cCgpKQogICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+c2V0UGFnZUdyb3VwKG1f
ZGVmYXVsdFBhZ2VHcm91cC5wdHIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUG9vbC5oCmluZGV4IDVmM2UyNjcuLmNmZjA2ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0xNzEsNyArMTcxLDcgQEAgcHVibGljOgogCiAgICAg
QVBJOjpXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlKCkgY29uc3QgeyByZXR1cm4g
bV93ZWJzaXRlRGF0YVN0b3JlLmdldCgpOyB9CiAKLSAgICBQYXNzUmVmUHRyPFdlYlBhZ2VQcm94
eT4gY3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiwgUmVmPEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24+
JiYpOworICAgIFJlZjxXZWJQYWdlUHJveHk+IGNyZWF0ZVdlYlBhZ2UoUGFnZUNsaWVudCYsIFJl
ZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKIAogICAgIGNvbnN0IFN0cmluZyYgaW5qZWN0
ZWRCdW5kbGVQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLT5pbmplY3RlZEJ1
bmRsZVBhdGgoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGll
bnRJbXBsLmgKaW5kZXggZDE4NmExMi4uZDkwYzg0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaApAQCAtNTEsMTIgKzUxLDkgQEAgY2xhc3MgUGFn
ZUNsaWVudEltcGwgZmluYWwgOiBwdWJsaWMgUGFnZUNsaWVudAogI2VuZGlmCiAgICAgewogcHVi
bGljOgotICAgIFBhZ2VDbGllbnRJbXBsKFdLVmlldyAqLCBXS1dlYlZpZXcgKik7CisgICAgUGFn
ZUNsaWVudEltcGwoTlNWaWV3ICosIFdLV2ViVmlldyAqLCBXZWJWaWV3SW1wbCYpOwogICAgIHZp
cnR1YWwgflBhZ2VDbGllbnRJbXBsKCk7CiAKLSAgICAvLyBGSVhNRTogRXZlbnR1YWxseSBXZWJW
aWV3SW1wbCBzaG91bGQgYmVjb21lIHRoZSBQYWdlQ2xpZW50LgotICAgIHZvaWQgc2V0SW1wbChX
ZWJWaWV3SW1wbCYgaW1wbCkgeyBtX2ltcGwgPSAmaW1wbDsgfQotCiAgICAgdm9pZCB2aWV3V2ls
bE1vdmVUb0Fub3RoZXJXaW5kb3coKTsKIAogcHJpdmF0ZToKQEAgLTIyNCw5ICsyMjEsOSBAQCBw
cml2YXRlOgogICAgIHZpcnR1YWwgX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKnJlbW90ZU9iamVj
dFJlZ2lzdHJ5KCkgb3ZlcnJpZGU7CiAjZW5kaWYKIAotICAgIFdLVmlldyAqbV93a1ZpZXc7Cisg
ICAgTlNWaWV3ICptX3ZpZXc7CiAgICAgV0tXZWJWaWV3ICptX3dlYlZpZXc7Ci0gICAgV2ViVmll
d0ltcGwqIG1faW1wbCB7IG51bGxwdHIgfTsKKyAgICBXZWJWaWV3SW1wbCYgbV9pbXBsOwogI2lm
IFVTRShBVVRPQ09SUkVDVElPTl9QQU5FTCkKICAgICBDb3JyZWN0aW9uUGFuZWwgbV9jb3JyZWN0
aW9uUGFuZWw7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvUGFnZUNsaWVudEltcGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VD
bGllbnRJbXBsLm1tCmluZGV4IGQ0ZjBhYjMuLjk0OWI5YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQpAQCAtOTMsOSArOTMsMTAgQEAgdXNp
bmcgbmFtZXNwYWNlIFdlYktpdDsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVBhZ2VDbGllbnRJ
bXBsOjpQYWdlQ2xpZW50SW1wbChXS1ZpZXcqIHdrVmlldywgV0tXZWJWaWV3ICp3ZWJWaWV3KQot
ICAgIDogbV93a1ZpZXcod2tWaWV3KQorUGFnZUNsaWVudEltcGw6OlBhZ2VDbGllbnRJbXBsKE5T
VmlldyogdmlldywgV0tXZWJWaWV3ICp3ZWJWaWV3LCBXZWJWaWV3SW1wbCYgaW1wbCkKKyAgICA6
IG1fdmlldyh2aWV3KQogICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCisgICAgLCBtX2ltcGwoaW1w
bCkKICNpZiBVU0UoRElDVEFUSU9OX0FMVEVSTkFUSVZFUykKICAgICAsIG1fYWx0ZXJuYXRpdmVU
ZXh0VUlDb250cm9sbGVyKHN0ZDo6bWFrZV91bmlxdWU8QWx0ZXJuYXRpdmVUZXh0VUlDb250cm9s
bGVyPigpKQogI2VuZGlmCkBAIC0xMTEsNyArMTEyLDcgQEAgUGFnZUNsaWVudEltcGw6On5QYWdl
Q2xpZW50SW1wbCgpCiAKIHN0ZDo6dW5pcXVlX3B0cjxEcmF3aW5nQXJlYVByb3h5PiBQYWdlQ2xp
ZW50SW1wbDo6Y3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpCiB7Ci0gICAgcmV0dXJuIG1faW1wbC0+
Y3JlYXRlRHJhd2luZ0FyZWFQcm94eSgpOworICAgIHJldHVybiBtX2ltcGwuY3JlYXRlRHJhd2lu
Z0FyZWFQcm94eSgpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRWaWV3TmVlZHNEaXNw
bGF5KGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QpCkBAIC0xNDEsMjcgKzE0MiwyNyBAQCB2
b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1ZXN0U2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9s
bFBvc2l0aW9uLCBjb25zdCBJbnRQbwogCiBJbnRTaXplIFBhZ2VDbGllbnRJbXBsOjp2aWV3U2l6
ZSgpCiB7Ci0gICAgcmV0dXJuIEludFNpemUoW21fd2tWaWV3IGJvdW5kc10uc2l6ZSk7CisgICAg
cmV0dXJuIEludFNpemUoW21fdmlldyBib3VuZHNdLnNpemUpOwogfQogCiBOU1ZpZXcgKlBhZ2VD
bGllbnRJbXBsOjphY3RpdmVWaWV3KCkgY29uc3QKIHsKICNpZiBXS19BUElfRU5BQkxFRAotICAg
IHJldHVybiBtX3drVmlldy5fdGh1bWJuYWlsVmlldyA/IChOU1ZpZXcgKiltX3drVmlldy5fdGh1
bWJuYWlsVmlldyA6IChOU1ZpZXcgKiltX3drVmlldzsKKyAgICByZXR1cm4gbV9pbXBsLnRodW1i
bmFpbFZpZXcoKSA/IChOU1ZpZXcgKiltX2ltcGwudGh1bWJuYWlsVmlldygpIDogbV92aWV3Owog
I2Vsc2UKLSAgICByZXR1cm4gbV93a1ZpZXc7CisgICAgcmV0dXJuIG1fdmlldzsKICNlbmRpZgog
fQogCiBOU1dpbmRvdyAqUGFnZUNsaWVudEltcGw6OmFjdGl2ZVdpbmRvdygpIGNvbnN0CiB7CiAj
aWYgV0tfQVBJX0VOQUJMRUQKLSAgICBpZiAobV93a1ZpZXcuX3RodW1ibmFpbFZpZXcpCi0gICAg
ICAgIHJldHVybiBtX3drVmlldy5fdGh1bWJuYWlsVmlldy53aW5kb3c7CisgICAgaWYgKG1faW1w
bC50aHVtYm5haWxWaWV3KCkpCisgICAgICAgIHJldHVybiBtX2ltcGwudGh1bWJuYWlsVmlldygp
LndpbmRvdzsKICNlbmRpZgotICAgIGlmIChtX2ltcGwgJiYgbV9pbXBsLT50YXJnZXRXaW5kb3dG
b3JNb3ZlUHJlcGFyYXRpb24oKSkKLSAgICAgICAgcmV0dXJuIG1faW1wbC0+dGFyZ2V0V2luZG93
Rm9yTW92ZVByZXBhcmF0aW9uKCk7Ci0gICAgcmV0dXJuIG1fd2tWaWV3LndpbmRvdzsKKyAgICBp
ZiAobV9pbXBsLnRhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbigpKQorICAgICAgICByZXR1
cm4gbV9pbXBsLnRhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbigpOworICAgIHJldHVybiBt
X3ZpZXcud2luZG93OwogfQogCiBib29sIFBhZ2VDbGllbnRJbXBsOjppc1ZpZXdXaW5kb3dBY3Rp
dmUoKQpAQCAtMTcyLDE3ICsxNzMsMTIgQEAgYm9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3V2lu
ZG93QWN0aXZlKCkKIAogYm9vbCBQYWdlQ2xpZW50SW1wbDo6aXNWaWV3Rm9jdXNlZCgpCiB7Ci0g
ICAgLy8gRklYTUU6IFRoaXMgaXMgY2FsbGVkIGZyb20gdGhlIFdlYlBhZ2VQcm94eSBjb25zdHJ1
Y3RvciBiZWZvcmUgd2UgaGF2ZSBhIFdlYlZpZXdJbXBsLgotICAgIC8vIE9uY2UgV2ViVmlld0lt
cGwgYW5kIFBhZ2VDbGllbnQgbWVyZ2UsIHRoaXMgd29uJ3QgYmUgYSBwcm9ibGVtLgotICAgIGlm
ICghbV9pbXBsKQotICAgICAgICByZXR1cm4gTk87Ci0KLSAgICByZXR1cm4gbV9pbXBsLT5pc0Zv
Y3VzZWQoKTsKKyAgICByZXR1cm4gbV9pbXBsLmlzRm9jdXNlZCgpOwogfQogCiB2b2lkIFBhZ2VD
bGllbnRJbXBsOjptYWtlRmlyc3RSZXNwb25kZXIoKQogewotICAgICBbW21fd2tWaWV3IHdpbmRv
d10gbWFrZUZpcnN0UmVzcG9uZGVyOm1fd2tWaWV3XTsKKyAgICAgW1ttX3ZpZXcgd2luZG93XSBt
YWtlRmlyc3RSZXNwb25kZXI6bV92aWV3XTsKIH0KICAgICAKIGJvb2wgUGFnZUNsaWVudEltcGw6
OmlzVmlld1Zpc2libGUoKQpAQCAtMTk5LDcgKzE5NSw3IEBAIGJvb2wgUGFnZUNsaWVudEltcGw6
OmlzVmlld1Zpc2libGUoKQogICAgIGlmIChhY3RpdmVWaWV3LmlzSGlkZGVuT3JIYXNIaWRkZW5B
bmNlc3RvcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgaWYgKG1faW1wbC0+d2luZG93
T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZCgpICYmIChhY3RpdmVWaWV3V2luZG93Lm9jY2x1c2lv
blN0YXRlICYgTlNXaW5kb3dPY2NsdXNpb25TdGF0ZVZpc2libGUpICE9IE5TV2luZG93T2NjbHVz
aW9uU3RhdGVWaXNpYmxlKQorICAgIGlmIChtX2ltcGwud2luZG93T2NjbHVzaW9uRGV0ZWN0aW9u
RW5hYmxlZCgpICYmIChhY3RpdmVWaWV3V2luZG93Lm9jY2x1c2lvblN0YXRlICYgTlNXaW5kb3dP
Y2NsdXNpb25TdGF0ZVZpc2libGUpICE9IE5TV2luZG93T2NjbHVzaW9uU3RhdGVWaXNpYmxlKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAgLTIzNiwxNyArMjMy
LDE3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnZpZXdXaWxsTW92ZVRvQW5vdGhlcldpbmRvdygp
CiAKIENvbG9yU3BhY2VEYXRhIFBhZ2VDbGllbnRJbXBsOjpjb2xvclNwYWNlKCkKIHsKLSAgICBy
ZXR1cm4gbV9pbXBsLT5jb2xvclNwYWNlKCk7CisgICAgcmV0dXJuIG1faW1wbC5jb2xvclNwYWNl
KCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnByb2Nlc3NEaWRFeGl0KCkKIHsKLSAgICBt
X2ltcGwtPnByb2Nlc3NEaWRFeGl0KCk7CisgICAgbV9pbXBsLnByb2Nlc3NEaWRFeGl0KCk7CiB9
CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnBhZ2VDbG9zZWQoKQogewotICAgIG1faW1wbC0+cGFn
ZUNsb3NlZCgpOworICAgIG1faW1wbC5wYWdlQ2xvc2VkKCk7CiAjaWYgVVNFKERJQ1RBVElPTl9B
TFRFUk5BVElWRVMpCiAgICAgbV9hbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXItPmNsZWFyKCk7
CiAjZW5kaWYKQEAgLTI1NCwyMiArMjUwLDIyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnBhZ2VD
bG9zZWQoKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRSZWxhdW5jaFByb2Nlc3MoKQogewot
ICAgIG1faW1wbC0+ZGlkUmVsYXVuY2hQcm9jZXNzKCk7CisgICAgbV9pbXBsLmRpZFJlbGF1bmNo
UHJvY2VzcygpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpwcmVmZXJlbmNlc0RpZENoYW5n
ZSgpCiB7Ci0gICAgbV9pbXBsLT5wcmVmZXJlbmNlc0RpZENoYW5nZSgpOworICAgIG1faW1wbC5w
cmVmZXJlbmNlc0RpZENoYW5nZSgpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjp0b29sVGlw
Q2hhbmdlZChjb25zdCBTdHJpbmcmIG9sZFRvb2xUaXAsIGNvbnN0IFN0cmluZyYgbmV3VG9vbFRp
cCkKIHsKLSAgICBtX2ltcGwtPnRvb2xUaXBDaGFuZ2VkKG9sZFRvb2xUaXAsIG5ld1Rvb2xUaXAp
OworICAgIG1faW1wbC50b29sVGlwQ2hhbmdlZChvbGRUb29sVGlwLCBuZXdUb29sVGlwKTsKIH0K
IAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZShjb25zdCBT
dHJpbmcmIG1pbWVUeXBlLCBib29sIHVzZUN1c3RvbUNvbnRlbnRQcm92aWRlcikKIHsKLSAgICBt
X2ltcGwtPnVwZGF0ZVN1cHBvcnRzQXJiaXRyYXJ5TGF5b3V0TW9kZXMoKTsKKyAgICBtX2ltcGwu
dXBkYXRlU3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcygpOwogfQogCiB2b2lkIFBhZ2VDbGll
bnRJbXBsOjpkaWRGaW5pc2hMb2FkaW5nRGF0YUZvckN1c3RvbUNvbnRlbnRQcm92aWRlcihjb25z
dCBTdHJpbmcmIHN1Z2dlc3RlZEZpbGVuYW1lLCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRh
dGFSZWZlcmVuY2UpCkBAIC0yODcsNyArMjgzLDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6aGFu
ZGxlRG93bmxvYWRSZXF1ZXN0KERvd25sb2FkUHJveHkqIGRvd25sb2FkKQogCiB2b2lkIFBhZ2VD
bGllbnRJbXBsOjpkaWRDaGFuZ2VDb250ZW50U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJiBu
ZXdTaXplKQogewotICAgIFttX3drVmlldyBfZGlkQ2hhbmdlQ29udGVudFNpemU6bmV3U2l6ZV07
CisgICAgbV9pbXBsLmRpZENoYW5nZUNvbnRlbnRTaXplKG5ld1NpemUpOwogfQogCiB2b2lkIFBh
Z2VDbGllbnRJbXBsOjpzZXRDdXJzb3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJiBjdXJzb3IpCkBA
IC0yOTcsMTAgKzI5MywxMCBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRDdXJzb3IoY29uc3Qg
V2ViQ29yZTo6Q3Vyc29yJiBjdXJzb3IpCiAgICAgaWYgKFtOU0FwcCBfY3Vyc29yUmVjdEN1cnNv
cl0pCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghbV93a1ZpZXcpCisgICAgaWYgKCFtX3Zp
ZXcpCiAgICAgICAgIHJldHVybjsKIAotICAgIE5TV2luZG93ICp3aW5kb3cgPSBbbV93a1ZpZXcg
d2luZG93XTsKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gW21fdmlldyB3aW5kb3ddOwogICAgIGlm
ICghd2luZG93KQogICAgICAgICByZXR1cm47CiAKQEAgLTMyNSwyOSArMzIxLDI5IEBAIHZvaWQg
UGFnZUNsaWVudEltcGw6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3Jl
OjpWaWV3cG9ydEF0dHJpYnV0CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnJlZ2lzdGVyRWRpdENv
bW1hbmQoUGFzc1JlZlB0cjxXZWJFZGl0Q29tbWFuZFByb3h5PiBwcnBDb21tYW5kLCBXZWJQYWdl
UHJveHk6OlVuZG9PclJlZG8gdW5kb09yUmVkbykKIHsKLSAgICBtX2ltcGwtPnJlZ2lzdGVyRWRp
dENvbW1hbmQocHJwQ29tbWFuZCwgdW5kb09yUmVkbyk7CisgICAgbV9pbXBsLnJlZ2lzdGVyRWRp
dENvbW1hbmQocHJwQ29tbWFuZCwgdW5kb09yUmVkbyk7CiB9CiAKICNpZiBVU0UoSU5TRVJUSU9O
X1VORE9fR1JPVVBJTkcpCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZWdpc3Rlckluc2VydGlvblVu
ZG9Hcm91cGluZygpCiB7Ci0gICAgcmVnaXN0ZXJJbnNlcnRpb25VbmRvR3JvdXBpbmdXaXRoVW5k
b01hbmFnZXIoW21fd2tWaWV3IHVuZG9NYW5hZ2VyXSk7CisgICAgcmVnaXN0ZXJJbnNlcnRpb25V
bmRvR3JvdXBpbmdXaXRoVW5kb01hbmFnZXIoW21fdmlldyB1bmRvTWFuYWdlcl0pOwogfQogI2Vu
ZGlmCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmNsZWFyQWxsRWRpdENvbW1hbmRzKCkKIHsKLSAg
ICBtX2ltcGwtPmNsZWFyQWxsRWRpdENvbW1hbmRzKCk7CisgICAgbV9pbXBsLmNsZWFyQWxsRWRp
dENvbW1hbmRzKCk7CiB9CiAKIGJvb2wgUGFnZUNsaWVudEltcGw6OmNhblVuZG9SZWRvKFdlYlBh
Z2VQcm94eTo6VW5kb09yUmVkbyB1bmRvT3JSZWRvKQogewotICAgIHJldHVybiAodW5kb09yUmVk
byA9PSBXZWJQYWdlUHJveHk6OlVuZG8pID8gW1ttX3drVmlldyB1bmRvTWFuYWdlcl0gY2FuVW5k
b10gOiBbW21fd2tWaWV3IHVuZG9NYW5hZ2VyXSBjYW5SZWRvXTsKKyAgICByZXR1cm4gKHVuZG9P
clJlZG8gPT0gV2ViUGFnZVByb3h5OjpVbmRvKSA/IFtbbV92aWV3IHVuZG9NYW5hZ2VyXSBjYW5V
bmRvXSA6IFtbbV92aWV3IHVuZG9NYW5hZ2VyXSBjYW5SZWRvXTsKIH0KIAogdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6ZXhlY3V0ZVVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbyB1bmRvT3JS
ZWRvKQogewotICAgIHJldHVybiAodW5kb09yUmVkbyA9PSBXZWJQYWdlUHJveHk6OlVuZG8pID8g
W1ttX3drVmlldyB1bmRvTWFuYWdlcl0gdW5kb10gOiBbW21fd2tWaWV3IHVuZG9NYW5hZ2VyXSBy
ZWRvXTsKKyAgICByZXR1cm4gKHVuZG9PclJlZG8gPT0gV2ViUGFnZVByb3h5OjpVbmRvKSA/IFtb
bV92aWV3IHVuZG9NYW5hZ2VyXSB1bmRvXSA6IFtbbV92aWV3IHVuZG9NYW5hZ2VyXSByZWRvXTsK
IH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0RHJhZ0ltYWdlKGNvbnN0IEludFBvaW50JiBj
bGllbnRQb3NpdGlvbiwgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGRyYWdJbWFnZSwgYm9v
bCBpc0xpbmtEcmFnKQpAQCAtMzU1LDQ1ICszNTEsNDUgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6
c2V0RHJhZ0ltYWdlKGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgUGFzc1JlZlB0cjxT
aGEKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gZHJhZ0NHSW1hZ2UgPSBkcmFnSW1hZ2UtPm1h
a2VDR0ltYWdlKCk7CiAgICAgUmV0YWluUHRyPE5TSW1hZ2U+IGRyYWdOU0ltYWdlID0gYWRvcHRO
UyhbW05TSW1hZ2UgYWxsb2NdIGluaXRXaXRoQ0dJbWFnZTpkcmFnQ0dJbWFnZS5nZXQoKSBzaXpl
OmRyYWdJbWFnZS0+c2l6ZSgpXSk7CiAgICAgSW50U2l6ZSBzaXplKFtkcmFnTlNJbWFnZSBzaXpl
XSk7Ci0gICAgc2l6ZS5zY2FsZSgxLjAgLyB0b0ltcGwoW21fd2tWaWV3IHBhZ2VSZWZdKS0+ZGV2
aWNlU2NhbGVGYWN0b3IoKSk7CisgICAgc2l6ZS5zY2FsZSgxLjAgLyBtX2ltcGwucGFnZSgpLmRl
dmljZVNjYWxlRmFjdG9yKCkpOwogICAgIFtkcmFnTlNJbWFnZSBzZXRTaXplOnNpemVdOwogCiAj
aWYgV0tfQVBJX0VOQUJMRUQKICAgICBpZiAobV93ZWJWaWV3KSB7Ci0gICAgICAgIE5TUG9pbnQg
d2ViVmlld1Bvc2l0aW9uID0gW21fd2tWaWV3IGNvbnZlcnRQb2ludDpjbGllbnRQb3NpdGlvbiB0
b1ZpZXc6bV93ZWJWaWV3XTsKLSAgICAgICAgbV9pbXBsLT5kcmFnSW1hZ2VGb3JWaWV3KG1fd2Vi
VmlldywgZHJhZ05TSW1hZ2UuZ2V0KCksIHdlYlZpZXdQb3NpdGlvbiwgaXNMaW5rRHJhZyk7Cisg
ICAgICAgIE5TUG9pbnQgd2ViVmlld1Bvc2l0aW9uID0gW21fdmlldyBjb252ZXJ0UG9pbnQ6Y2xp
ZW50UG9zaXRpb24gdG9WaWV3Om1fd2ViVmlld107CisgICAgICAgIG1faW1wbC5kcmFnSW1hZ2VG
b3JWaWV3KG1fd2ViVmlldywgZHJhZ05TSW1hZ2UuZ2V0KCksIHdlYlZpZXdQb3NpdGlvbiwgaXNM
aW5rRHJhZyk7CiAgICAgfSBlbHNlCiAjZW5kaWYKLSAgICAgICAgbV9pbXBsLT5kcmFnSW1hZ2VG
b3JWaWV3KG1fd2tWaWV3LCBkcmFnTlNJbWFnZS5nZXQoKSwgY2xpZW50UG9zaXRpb24sIGlzTGlu
a0RyYWcpOworICAgICAgICBtX2ltcGwuZHJhZ0ltYWdlRm9yVmlldyhtX3ZpZXcsIGRyYWdOU0lt
YWdlLmdldCgpLCBjbGllbnRQb3NpdGlvbiwgaXNMaW5rRHJhZyk7CiB9CiAKIHZvaWQgUGFnZUNs
aWVudEltcGw6OnNldFByb21pc2VkRGF0YUZvckltYWdlKGNvbnN0IFN0cmluZyYgcGFzdGVib2Fy
ZE5hbWUsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBpbWFnZUJ1ZmZlciwgY29uc3QgU3RyaW5n
JiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBleHRlbnNpb24sIGNvbnN0IFN0cmluZyYgdGl0bGUs
IGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHZpc2libGVVUkwsIFBhc3NSZWZQdHI8
U2hhcmVkQnVmZmVyPiBhcmNoaXZlQnVmZmVyKQogewogICAgIFJlZlB0cjxJbWFnZT4gaW1hZ2Ug
PSBCaXRtYXBJbWFnZTo6Y3JlYXRlKCk7CiAgICAgaW1hZ2UtPnNldERhdGEoaW1hZ2VCdWZmZXIu
Z2V0KCksIHRydWUpOwotICAgIG1faW1wbC0+c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UoaW1hZ2Uu
Z2V0KCksIGZpbGVuYW1lLCBleHRlbnNpb24sIHRpdGxlLCB1cmwsIHZpc2libGVVUkwsIGFyY2hp
dmVCdWZmZXIuZ2V0KCksIHBhc3RlYm9hcmROYW1lKTsKKyAgICBtX2ltcGwuc2V0UHJvbWlzZWRE
YXRhRm9ySW1hZ2UoaW1hZ2UuZ2V0KCksIGZpbGVuYW1lLCBleHRlbnNpb24sIHRpdGxlLCB1cmws
IHZpc2libGVVUkwsIGFyY2hpdmVCdWZmZXIuZ2V0KCksIHBhc3RlYm9hcmROYW1lKTsKIH0KIAog
I2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRQ
cm9taXNlZERhdGFGb3JBdHRhY2htZW50KGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUsIGNv
bnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uLCBjb25zdCBTdHJp
bmcmIHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB2aXNpYmxlVVJMKQog
ewotICAgIG1faW1wbC0+c2V0UHJvbWlzZWREYXRhRm9yQXR0YWNobWVudChmaWxlbmFtZSwgZXh0
ZW5zaW9uLCB0aXRsZSwgdXJsLCB2aXNpYmxlVVJMLCBwYXN0ZWJvYXJkTmFtZSk7CisgICAgbV9p
bXBsLnNldFByb21pc2VkRGF0YUZvckF0dGFjaG1lbnQoZmlsZW5hbWUsIGV4dGVuc2lvbiwgdGl0
bGUsIHVybCwgdmlzaWJsZVVSTCwgcGFzdGVib2FyZE5hbWUpOwogfQogI2VuZGlmCiAKIHZvaWQg
UGFnZUNsaWVudEltcGw6OnVwZGF0ZVNlY3VyZUlucHV0U3RhdGUoKQogewotICAgIG1faW1wbC0+
dXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSgpOworICAgIG1faW1wbC51cGRhdGVTZWN1cmVJbnB1dFN0
YXRlKCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnJlc2V0U2VjdXJlSW5wdXRTdGF0ZSgp
CiB7Ci0gICAgbV9pbXBsLT5yZXNldFNlY3VyZUlucHV0U3RhdGUoKTsKKyAgICBtX2ltcGwucmVz
ZXRTZWN1cmVJbnB1dFN0YXRlKCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6Om5vdGlmeUlu
cHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb24oKQogewotICAgIG1faW1wbC0+bm90
aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbigpOworICAgIG1faW1wbC5u
b3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uKCk7CiB9CiAKICNpZiBQ
TEFURk9STShNQUMpICYmICFVU0UoQVNZTkNfTlNURVhUSU5QVVRDTElFTlQpCkBAIC00MDUsNzYg
KzQwMSw3NiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpub3RpZnlBcHBsaWNhdGlvbkFib3V0SW5w
dXRDb250ZXh0Q2hhbmdlKCkKIAogRmxvYXRSZWN0IFBhZ2VDbGllbnRJbXBsOjpjb252ZXJ0VG9E
ZXZpY2VTcGFjZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAgcmV0dXJuIHRvRGV2aWNl
U3BhY2UocmVjdCwgW21fd2tWaWV3IHdpbmRvd10pOworICAgIHJldHVybiB0b0RldmljZVNwYWNl
KHJlY3QsIFttX3ZpZXcgd2luZG93XSk7CiB9CiAKIEZsb2F0UmVjdCBQYWdlQ2xpZW50SW1wbDo6
Y29udmVydFRvVXNlclNwYWNlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkKIHsKLSAgICByZXR1cm4g
dG9Vc2VyU3BhY2UocmVjdCwgW21fd2tWaWV3IHdpbmRvd10pOworICAgIHJldHVybiB0b1VzZXJT
cGFjZShyZWN0LCBbbV92aWV3IHdpbmRvd10pOwogfQogICAgCiBJbnRQb2ludCBQYWdlQ2xpZW50
SW1wbDo6c2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYgcG9pbnQpCiB7CiAjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNQb2ludCB3aW5kb3dDb29yZCA9IFtb
bV93a1ZpZXcgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOnBvaW50XTsKKyAgICBOU1BvaW50
IHdpbmRvd0Nvb3JkID0gW1ttX3ZpZXcgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOnBvaW50
XTsKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICByZXR1cm4gSW50UG9pbnQoW21f
d2tWaWV3IGNvbnZlcnRQb2ludDp3aW5kb3dDb29yZCBmcm9tVmlldzpuaWxdKTsKKyAgICByZXR1
cm4gSW50UG9pbnQoW21fdmlldyBjb252ZXJ0UG9pbnQ6d2luZG93Q29vcmQgZnJvbVZpZXc6bmls
XSk7CiB9CiAgICAgCiBJbnRSZWN0IFBhZ2VDbGllbnRJbXBsOjpyb290Vmlld1RvU2NyZWVuKGNv
bnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgTlNSZWN0IHRlbXBSZWN0ID0gcmVjdDsKLSAgICB0
ZW1wUmVjdCA9IFttX3drVmlldyBjb252ZXJ0UmVjdDp0ZW1wUmVjdCB0b1ZpZXc6bmlsXTsKKyAg
ICB0ZW1wUmVjdCA9IFttX3ZpZXcgY29udmVydFJlY3Q6dGVtcFJlY3QgdG9WaWV3Om5pbF07CiAj
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGln
bm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgdGVtcFJlY3Qub3JpZ2luID0g
W1ttX3drVmlldyB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46dGVtcFJlY3Qub3JpZ2luXTsK
KyAgICB0ZW1wUmVjdC5vcmlnaW4gPSBbW21fdmlldyB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3Jl
ZW46dGVtcFJlY3Qub3JpZ2luXTsKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICBy
ZXR1cm4gZW5jbG9zaW5nSW50UmVjdCh0ZW1wUmVjdCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudElt
cGw6OmRvbmVXaXRoS2V5RXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYgZXZlbnQs
IGJvb2wgZXZlbnRXYXNIYW5kbGVkKQogewotICAgIG1faW1wbC0+ZG9uZVdpdGhLZXlFdmVudChl
dmVudC5uYXRpdmVFdmVudCgpLCBldmVudFdhc0hhbmRsZWQpOworICAgIG1faW1wbC5kb25lV2l0
aEtleUV2ZW50KGV2ZW50Lm5hdGl2ZUV2ZW50KCksIGV2ZW50V2FzSGFuZGxlZCk7CiB9CiAKIFJl
ZlB0cjxXZWJQb3B1cE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudVBy
b3h5KFdlYlBhZ2VQcm94eSYgcGFnZSkKIHsKLSAgICByZXR1cm4gV2ViUG9wdXBNZW51UHJveHlN
YWM6OmNyZWF0ZShtX3drVmlldywgcGFnZSk7CisgICAgcmV0dXJuIFdlYlBvcHVwTWVudVByb3h5
TWFjOjpjcmVhdGUobV92aWV3LCBwYWdlKTsKIH0KIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVT
KQogc3RkOjp1bmlxdWVfcHRyPFdlYkNvbnRleHRNZW51UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpj
cmVhdGVDb250ZXh0TWVudVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgQ29udGV4dE1l
bnVDb250ZXh0RGF0YSYgY29udGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAg
IHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPFdlYkNvbnRleHRNZW51UHJveHlNYWM+KG1fd2tWaWV3
LCBwYWdlLCBjb250ZXh0LCB1c2VyRGF0YSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8
V2ViQ29udGV4dE1lbnVQcm94eU1hYz4obV92aWV3LCBwYWdlLCBjb250ZXh0LCB1c2VyRGF0YSk7
CiB9CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogUmVmUHRyPFdlYkNv
bG9yUGlja2VyPiBQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5
KiBwYWdlLCBjb25zdCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCAgY29uc3QgV2ViQ29y
ZTo6SW50UmVjdCYgcmVjdCkKIHsKLSAgICByZXR1cm4gV2ViQ29sb3JQaWNrZXJNYWM6OmNyZWF0
ZShwYWdlLCBpbml0aWFsQ29sb3IsIHJlY3QsIG1fd2tWaWV3KTsKKyAgICByZXR1cm4gV2ViQ29s
b3JQaWNrZXJNYWM6OmNyZWF0ZShwYWdlLCBpbml0aWFsQ29sb3IsIHJlY3QsIG1fdmlldyk7CiB9
CiAjZW5kaWYKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvcihSZWY8VGV4
dEluZGljYXRvcj4gdGV4dEluZGljYXRvciwgV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0xp
ZmV0aW1lIGxpZmV0aW1lKQogewotICAgIG1faW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5k
aWNhdG9yLmdldCgpLCBsaWZldGltZSk7CisgICAgbV9pbXBsLnNldFRleHRJbmRpY2F0b3IodGV4
dEluZGljYXRvci5nZXQoKSwgbGlmZXRpbWUpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpj
bGVhclRleHRJbmRpY2F0b3IoV2ViQ29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFu
aW1hdGlvbiBkaXNtaXNzYWxBbmltYXRpb24pCiB7Ci0gICAgbV9pbXBsLT5jbGVhclRleHRJbmRp
Y2F0b3JXaXRoQW5pbWF0aW9uKGRpc21pc3NhbEFuaW1hdGlvbik7CisgICAgbV9pbXBsLmNsZWFy
VGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oZGlzbWlzc2FsQW5pbWF0aW9uKTsKIH0KIAogdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dyZXNzKGZsb2F0
IHByb2dyZXNzKQogewotICAgIG1faW1wbC0+c2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dy
ZXNzKHByb2dyZXNzKTsKKyAgICBtX2ltcGwuc2V0VGV4dEluZGljYXRvckFuaW1hdGlvblByb2dy
ZXNzKHByb2dyZXNzKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6YWNjZXNzaWJpbGl0eVdl
YlByb2Nlc3NUb2tlblJlY2VpdmVkKGNvbnN0IElQQzo6RGF0YVJlZmVyZW5jZSYgZGF0YSkKIHsK
LSAgICBtX2ltcGwtPnNldEFjY2Vzc2liaWxpdHlXZWJQcm9jZXNzVG9rZW4oW05TRGF0YSBkYXRh
V2l0aEJ5dGVzOmRhdGEuZGF0YSgpIGxlbmd0aDpkYXRhLnNpemUoKV0pOworICAgIG1faW1wbC5z
ZXRBY2Nlc3NpYmlsaXR5V2ViUHJvY2Vzc1Rva2VuKFtOU0RhdGEgZGF0YVdpdGhCeXRlczpkYXRh
LmRhdGEoKSBsZW5ndGg6ZGF0YS5zaXplKCldKTsKIH0KICAgICAKIHZvaWQgUGFnZUNsaWVudElt
cGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29udGV4
dCYgbGF5ZXJUcmVlQ29udGV4dCkKQEAgLTQ4MiwxMiArNDc4LDEyIEBAIHZvaWQgUGFnZUNsaWVu
dEltcGw6OmVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoY29uc3QgTGF5ZXJUcmVlQ29u
dGV4dCYgbGF5CiAgICAgQVNTRVJUKCFsYXllclRyZWVDb250ZXh0LmlzRW1wdHkoKSk7CiAKICAg
ICBDQUxheWVyICpyZW5kZXJMYXllciA9IFdLTWFrZVJlbmRlckxheWVyKGxheWVyVHJlZUNvbnRl
eHQuY29udGV4dElEKTsKLSAgICBtX2ltcGwtPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290
TGF5ZXIocmVuZGVyTGF5ZXIpOworICAgIG1faW1wbC5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5n
Um9vdExheWVyKHJlbmRlckxheWVyKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZXhpdEFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKCkKIHsKLSAgICBtX2ltcGwtPnNldEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdSb290TGF5ZXIobmlsKTsKKyAgICBtX2ltcGwuc2V0QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ1Jvb3RMYXllcihuaWwpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjp1cGRhdGVB
Y2NlbGVyYXRlZENvbXBvc2l0aW5nTW9kZShjb25zdCBMYXllclRyZWVDb250ZXh0JiBsYXllclRy
ZWVDb250ZXh0KQpAQCAtNDk1LDcgKzQ5MSw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnVwZGF0
ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKGNvbnN0IExheWVyVHJlZUNvbnRleHQmIGxhCiAg
ICAgQVNTRVJUKCFsYXllclRyZWVDb250ZXh0LmlzRW1wdHkoKSk7CiAKICAgICBDQUxheWVyICpy
ZW5kZXJMYXllciA9IFdLTWFrZVJlbmRlckxheWVyKGxheWVyVHJlZUNvbnRleHQuY29udGV4dElE
KTsKLSAgICBtX2ltcGwtPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5ZXIocmVuZGVy
TGF5ZXIpOworICAgIG1faW1wbC5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKHJl
bmRlckxheWVyKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6d2lsbEVudGVyQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ01vZGUoKQpAQCAtNTA0LDU5ICs1MDAsNTkgQEAgdm9pZCBQYWdlQ2xpZW50
SW1wbDo6d2lsbEVudGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUoKQogCiB2b2lkIFBhZ2VD
bGllbnRJbXBsOjpzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nUm9vdExheWVyKENBTGF5ZXIgKnJv
b3RMYXllcikKIHsKLSAgICBtX2ltcGwtPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdSb290TGF5
ZXIocm9vdExheWVyKTsKKyAgICBtX2ltcGwuc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RM
YXllcihyb290TGF5ZXIpOwogfQogCiBDQUxheWVyICpQYWdlQ2xpZW50SW1wbDo6YWNjZWxlcmF0
ZWRDb21wb3NpdGluZ1Jvb3RMYXllcigpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1faW1wbC0+YWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcigpOworICAgIHJldHVybiBtX2ltcGwuYWNjZWxl
cmF0ZWRDb21wb3NpdGluZ1Jvb3RMYXllcigpOwogfQogCiBQYXNzUmVmUHRyPFZpZXdTbmFwc2hv
dD4gUGFnZUNsaWVudEltcGw6OnRha2VWaWV3U25hcHNob3QoKQogewotICAgIHJldHVybiBtX2lt
cGwtPnRha2VWaWV3U25hcHNob3QoKTsKKyAgICByZXR1cm4gbV9pbXBsLnRha2VWaWV3U25hcHNo
b3QoKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2VsZWN0aW9uRGlkQ2hhbmdlKCkKIHsK
LSAgICBtX2ltcGwtPnNlbGVjdGlvbkRpZENoYW5nZSgpOworICAgIG1faW1wbC5zZWxlY3Rpb25E
aWRDaGFuZ2UoKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6d2hlZWxFdmVudFdhc05vdEhh
bmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViV2hlZWxFdmVudCYgZXZlbnQpCiB7Ci0gICAg
aWYgKGF1dG8gZ2VzdHVyZUNvbnRyb2xsZXIgPSBtX2ltcGwtPmdlc3R1cmVDb250cm9sbGVyKCkp
CisgICAgaWYgKGF1dG8gZ2VzdHVyZUNvbnRyb2xsZXIgPSBtX2ltcGwuZ2VzdHVyZUNvbnRyb2xs
ZXIoKSkKICAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPndoZWVsRXZlbnRXYXNOb3RIYW5kbGVk
QnlXZWJDb3JlKGV2ZW50Lm5hdGl2ZUV2ZW50KCkpOwogfQogCiAjaWYgRU5BQkxFKE1BQ19HRVNU
VVJFX0VWRU5UUykKIHZvaWQgUGFnZUNsaWVudEltcGw6Omdlc3R1cmVFdmVudFdhc05vdEhhbmRs
ZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViR2VzdHVyZUV2ZW50JiBldmVudCkKIHsKLSAgICBb
bV93a1ZpZXcgX2dlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmU6ZXZlbnQubmF0aXZl
RXZlbnQoKV07CisgICAgbV9pbXBsLmdlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmUo
ZXZlbnQubmF0aXZlRXZlbnQoKSk7CiB9CiAjZW5kaWYKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6
cGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZCh1aW50NjRfdCBwbHVnaW5Db21wbGV4VGV4
dElucHV0SWRlbnRpZmllciwgYm9vbCBwbHVnaW5IYXNGb2N1c0FuZFdpbmRvd0hhc0ZvY3VzKQog
ewotICAgIG1faW1wbC0+cGx1Z2luRm9jdXNPcldpbmRvd0ZvY3VzQ2hhbmdlZChwbHVnaW5IYXNG
b2N1c0FuZFdpbmRvd0hhc0ZvY3VzLCBwbHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllcik7
CisgICAgbV9pbXBsLnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQocGx1Z2luSGFzRm9j
dXNBbmRXaW5kb3dIYXNGb2N1cywgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIpOwog
fQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUo
dWludDY0X3QgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIsIFBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRTdGF0ZSBwbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpCiB7Ci0gICAgbV9pbXBs
LT5zZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGVBbmRJZGVudGlmaWVyKHBsdWdpbkNvbXBs
ZXhUZXh0SW5wdXRTdGF0ZSwgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIpOworICAg
IG1faW1wbC5zZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGVBbmRJZGVudGlmaWVyKHBsdWdp
bkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSwgcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIp
OwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRQZXJmb3JtRGljdGlvbmFyeUxvb2t1cChj
b25zdCBEaWN0aW9uYXJ5UG9wdXBJbmZvJiBkaWN0aW9uYXJ5UG9wdXBJbmZvKQogewotICAgIG1f
aW1wbC0+cHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXAoKTsKKyAgICBtX2ltcGwucHJlcGFyZUZv
ckRpY3Rpb25hcnlMb29rdXAoKTsKIAotICAgIERpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChk
aWN0aW9uYXJ5UG9wdXBJbmZvLCBtX3drVmlldywgW3RoaXNdKFRleHRJbmRpY2F0b3ImIHRleHRJ
bmRpY2F0b3IpIHsKLSAgICAgICAgbV9pbXBsLT5zZXRUZXh0SW5kaWNhdG9yKHRleHRJbmRpY2F0
b3IsIFRleHRJbmRpY2F0b3JXaW5kb3dMaWZldGltZTo6UGVybWFuZW50KTsKKyAgICBEaWN0aW9u
YXJ5TG9va3VwOjpzaG93UG9wdXAoZGljdGlvbmFyeVBvcHVwSW5mbywgbV92aWV3LCBbdGhpc10o
VGV4dEluZGljYXRvciYgdGV4dEluZGljYXRvcikgeworICAgICAgICBtX2ltcGwuc2V0VGV4dElu
ZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNhdG9yV2luZG93TGlmZXRpbWU6OlBlcm1h
bmVudCk7CiAgICAgfSk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpc21pc3NDb250ZW50
UmVsYXRpdmVDaGlsZFdpbmRvd3MoYm9vbCB3aXRoQW5pbWF0aW9uKQogewotICAgIFttX3drVmll
dyBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb246d2l0aEFu
aW1hdGlvbl07CisgICAgbV9pbXBsLmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NX
aXRoQW5pbWF0aW9uKHdpdGhBbmltYXRpb24pOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpz
aG93Q29ycmVjdGlvblBhbmVsKEFsdGVybmF0aXZlVGV4dFR5cGUgdHlwZSwgY29uc3QgRmxvYXRS
ZWN0JiBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRT
dHJpbmcsIGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIGNvbnN0IFZlY3RvcjxTdHJp
bmc+JiBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncykKQEAgLTU2NCw3ICs1NjAsNyBAQCB2
b2lkIFBhZ2VDbGllbnRJbXBsOjpzaG93Q29ycmVjdGlvblBhbmVsKEFsdGVybmF0aXZlVGV4dFR5
cGUgdHlwZSwgY29uc3QgRmxvYXRSZQogI2lmIFVTRShBVVRPQ09SUkVDVElPTl9QQU5FTCkKICAg
ICBpZiAoIWlzVmlld1Zpc2libGUoKSB8fCAhaXNWaWV3SW5XaW5kb3coKSkKICAgICAgICAgcmV0
dXJuOwotICAgIG1fY29ycmVjdGlvblBhbmVsLnNob3cobV93a1ZpZXcsICptX2ltcGwsIHR5cGUs
IGJvdW5kaW5nQm94T2ZSZXBsYWNlZFN0cmluZywgcmVwbGFjZWRTdHJpbmcsIHJlcGxhY2VtZW50
U3RyaW5nLCBhbHRlcm5hdGl2ZVJlcGxhY2VtZW50U3RyaW5ncyk7CisgICAgbV9jb3JyZWN0aW9u
UGFuZWwuc2hvdyhtX3ZpZXcsIG1faW1wbCwgdHlwZSwgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3Ry
aW5nLCByZXBsYWNlZFN0cmluZywgcmVwbGFjZW1lbnRTdHJpbmcsIGFsdGVybmF0aXZlUmVwbGFj
ZW1lbnRTdHJpbmdzKTsKICNlbmRpZgogfQogCkBAIC01ODcsNyArNTgzLDcgQEAgU3RyaW5nIFBh
Z2VDbGllbnRJbXBsOjpkaXNtaXNzQ29ycmVjdGlvblBhbmVsU29vbihXZWJDb3JlOjpSZWFzb25G
b3JEaXNtaXNzaW5nQWwKIHZvaWQgUGFnZUNsaWVudEltcGw6OnJlY29yZEF1dG9jb3JyZWN0aW9u
UmVzcG9uc2UoQXV0b2NvcnJlY3Rpb25SZXNwb25zZVR5cGUgcmVzcG9uc2VUeXBlLCBjb25zdCBT
dHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nKQog
ewogICAgIE5TQ29ycmVjdGlvblJlc3BvbnNlIHJlc3BvbnNlID0gcmVzcG9uc2VUeXBlID09IEF1
dG9jb3JyZWN0aW9uUmV2ZXJ0ZWQgPyBOU0NvcnJlY3Rpb25SZXNwb25zZVJldmVydGVkIDogTlND
b3JyZWN0aW9uUmVzcG9uc2VFZGl0ZWQ7Ci0gICAgQ29ycmVjdGlvblBhbmVsOjpyZWNvcmRBdXRv
Y29ycmVjdGlvblJlc3BvbnNlKG1fd2tWaWV3LCBtX2ltcGwtPnNwZWxsQ2hlY2tlckRvY3VtZW50
VGFnKCksIHJlc3BvbnNlLCByZXBsYWNlZFN0cmluZywgcmVwbGFjZW1lbnRTdHJpbmcpOworICAg
IENvcnJlY3Rpb25QYW5lbDo6cmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZShtX3ZpZXcsIG1f
aW1wbC5zcGVsbENoZWNrZXJEb2N1bWVudFRhZygpLCByZXNwb25zZSwgcmVwbGFjZWRTdHJpbmcs
IHJlcGxhY2VtZW50U3RyaW5nKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVjb21tZW5k
ZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShTY3JvbGxiYXJTdHlsZSBuZXdTdHlsZSkKQEAgLTU5
OSw4ICs1OTUsOCBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZWNvbW1lbmRlZFNjcm9sbGJhclN0
eWxlRGlkQ2hhbmdlKFNjcm9sbGJhclN0eWxlIG5ld1N0eWxlKQogICAgIGVsc2UKICAgICAgICAg
b3B0aW9ucyB8PSBOU1RyYWNraW5nQWN0aXZlSW5LZXlXaW5kb3c7CiAKLSAgICBSZXRhaW5QdHI8
TlNUcmFja2luZ0FyZWE+IHRyYWNraW5nQXJlYSA9IGFkb3B0TlMoW1tOU1RyYWNraW5nQXJlYSBh
bGxvY10gaW5pdFdpdGhSZWN0OlttX3drVmlldyBmcmFtZV0gb3B0aW9uczpvcHRpb25zIG93bmVy
Om1fd2tWaWV3IHVzZXJJbmZvOm5pbF0pOwotICAgIG1faW1wbC0+c2V0UHJpbWFyeVRyYWNraW5n
QXJlYSh0cmFja2luZ0FyZWEuZ2V0KCkpOworICAgIFJldGFpblB0cjxOU1RyYWNraW5nQXJlYT4g
dHJhY2tpbmdBcmVhID0gYWRvcHROUyhbW05TVHJhY2tpbmdBcmVhIGFsbG9jXSBpbml0V2l0aFJl
Y3Q6W21fdmlldyBmcmFtZV0gb3B0aW9uczpvcHRpb25zIG93bmVyOm1fdmlldyB1c2VySW5mbzpu
aWxdKTsKKyAgICBtX2ltcGwuc2V0UHJpbWFyeVRyYWNraW5nQXJlYSh0cmFja2luZ0FyZWEuZ2V0
KCkpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjppbnRyaW5zaWNDb250ZW50U2l6ZURpZENo
YW5nZShjb25zdCBJbnRTaXplJiBpbnRyaW5zaWNDb250ZW50U2l6ZSkKQEAgLTYxMiwxMiArNjA4
LDEyIEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmludHJpbnNpY0NvbnRlbnRTaXplRGlkQ2hhbmdl
KGNvbnN0IEludFNpemUmIGludHJpbnNpY0NvbnRlCiAgICAgfQogI2VuZGlmCiAKLSAgICBtX2lt
cGwtPnNldEludHJpbnNpY0NvbnRlbnRTaXplKGludHJpbnNpY0NvbnRlbnRTaXplKTsKKyAgICBt
X2ltcGwuc2V0SW50cmluc2ljQ29udGVudFNpemUoaW50cmluc2ljQ29udGVudFNpemUpOwogfQog
CiBib29sIFBhZ2VDbGllbnRJbXBsOjpleGVjdXRlU2F2ZWRDb21tYW5kQnlTZWxlY3Rvcihjb25z
dCBTdHJpbmcmIHNlbGVjdG9yU3RyaW5nKQogewotICAgIHJldHVybiBtX2ltcGwtPmV4ZWN1dGVT
YXZlZENvbW1hbmRCeVNlbGVjdG9yKE5TU2VsZWN0b3JGcm9tU3RyaW5nKHNlbGVjdG9yU3RyaW5n
KSk7CisgICAgcmV0dXJuIG1faW1wbC5leGVjdXRlU2F2ZWRDb21tYW5kQnlTZWxlY3RvcihOU1Nl
bGVjdG9yRnJvbVN0cmluZyhzZWxlY3RvclN0cmluZykpOwogfQogCiAjaWYgVVNFKERJQ1RBVElP
Tl9BTFRFUk5BVElWRVMpCkBAIC02MzUsOCArNjMxLDggQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6
c2hvd0RpY3RhdGlvbkFsdGVybmF0aXZlVUkoY29uc3QgV2ViQ29yZTo6RmxvYXRSZWN0JiBib3Vu
ZGkKIHsKICAgICBpZiAoIWlzVmlld1Zpc2libGUoKSB8fCAhaXNWaWV3SW5XaW5kb3coKSkKICAg
ICAgICAgcmV0dXJuOwotICAgIG1fYWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLT5zaG93QWx0
ZXJuYXRpdmVzKG1fd2tWaWV3LCBib3VuZGluZ0JveE9mRGljdGF0ZWRUZXh0LCBkaWN0YXRpb25D
b250ZXh0LCBeKE5TU3RyaW5nICphY2NlcHRlZEFsdGVybmF0aXZlKSB7Ci0gICAgICAgIG1faW1w
bC0+aGFuZGxlQWNjZXB0ZWRBbHRlcm5hdGl2ZVRleHQoYWNjZXB0ZWRBbHRlcm5hdGl2ZSk7Cisg
ICAgbV9hbHRlcm5hdGl2ZVRleHRVSUNvbnRyb2xsZXItPnNob3dBbHRlcm5hdGl2ZXMobV92aWV3
LCBib3VuZGluZ0JveE9mRGljdGF0ZWRUZXh0LCBkaWN0YXRpb25Db250ZXh0LCBeKE5TU3RyaW5n
ICphY2NlcHRlZEFsdGVybmF0aXZlKSB7CisgICAgICAgIG1faW1wbC5oYW5kbGVBY2NlcHRlZEFs
dGVybmF0aXZlVGV4dChhY2NlcHRlZEFsdGVybmF0aXZlKTsKICAgICB9KTsKIH0KIApAQCAtNjU3
LDM3ICs2NTMsMzcgQEAgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eUNsaWVudCYgUGFnZUNsaWVu
dEltcGw6OmZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlDbGllbnQoKQogCiB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpjbG9zZUZ1bGxTY3JlZW5NYW5hZ2VyKCkKIHsKLSAgICBtX2ltcGwtPmNsb3NlRnVsbFNj
cmVlbldpbmRvd0NvbnRyb2xsZXIoKTsKKyAgICBtX2ltcGwuY2xvc2VGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlcigpOwogfQogCiBib29sIFBhZ2VDbGllbnRJbXBsOjppc0Z1bGxTY3JlZW4oKQog
ewotICAgIGlmICghbV9pbXBsLT5oYXNGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpKQorICAg
IGlmICghbV9pbXBsLmhhc0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyKCkpCiAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAotICAgIHJldHVybiBtX2ltcGwtPmZ1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyKCkuaXNGdWxsU2NyZWVuOworICAgIHJldHVybiBtX2ltcGwuZnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIoKS5pc0Z1bGxTY3JlZW47CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmVudGVy
RnVsbFNjcmVlbigpCiB7Ci0gICAgW21faW1wbC0+ZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIo
KSBlbnRlckZ1bGxTY3JlZW46bmlsXTsKKyAgICBbbV9pbXBsLmZ1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyKCkgZW50ZXJGdWxsU2NyZWVuOm5pbF07CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6
OmV4aXRGdWxsU2NyZWVuKCkKIHsKLSAgICBbbV9pbXBsLT5mdWxsU2NyZWVuV2luZG93Q29udHJv
bGxlcigpIGV4aXRGdWxsU2NyZWVuXTsKKyAgICBbbV9pbXBsLmZ1bGxTY3JlZW5XaW5kb3dDb250
cm9sbGVyKCkgZXhpdEZ1bGxTY3JlZW5dOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpiZWdh
bkVudGVyRnVsbFNjcmVlbihjb25zdCBJbnRSZWN0JiBpbml0aWFsRnJhbWUsIGNvbnN0IEludFJl
Y3QmIGZpbmFsRnJhbWUpCiB7Ci0gICAgW21faW1wbC0+ZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIoKSBiZWdhbkVudGVyRnVsbFNjcmVlbldpdGhJbml0aWFsRnJhbWU6aW5pdGlhbEZyYW1lIGZp
bmFsRnJhbWU6ZmluYWxGcmFtZV07Ci0gICAgbV9pbXBsLT51cGRhdGVTdXBwb3J0c0FyYml0cmFy
eUxheW91dE1vZGVzKCk7CisgICAgW21faW1wbC5mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigp
IGJlZ2FuRW50ZXJGdWxsU2NyZWVuV2l0aEluaXRpYWxGcmFtZTppbml0aWFsRnJhbWUgZmluYWxG
cmFtZTpmaW5hbEZyYW1lXTsKKyAgICBtX2ltcGwudXBkYXRlU3VwcG9ydHNBcmJpdHJhcnlMYXlv
dXRNb2RlcygpOwogfQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpiZWdhbkV4aXRGdWxsU2NyZWVu
KGNvbnN0IEludFJlY3QmIGluaXRpYWxGcmFtZSwgY29uc3QgSW50UmVjdCYgZmluYWxGcmFtZSkK
IHsKLSAgICBbbV9pbXBsLT5mdWxsU2NyZWVuV2luZG93Q29udHJvbGxlcigpIGJlZ2FuRXhpdEZ1
bGxTY3JlZW5XaXRoSW5pdGlhbEZyYW1lOmluaXRpYWxGcmFtZSBmaW5hbEZyYW1lOmZpbmFsRnJh
bWVdOwotICAgIG1faW1wbC0+dXBkYXRlU3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcygpOwor
ICAgIFttX2ltcGwuZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIoKSBiZWdhbkV4aXRGdWxsU2Ny
ZWVuV2l0aEluaXRpYWxGcmFtZTppbml0aWFsRnJhbWUgZmluYWxGcmFtZTpmaW5hbEZyYW1lXTsK
KyAgICBtX2ltcGwudXBkYXRlU3VwcG9ydHNBcmJpdHJhcnlMYXlvdXRNb2RlcygpOwogfQogCiAj
ZW5kaWYgLy8gRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQpAQCAtNzQ4LDMxICs3NDQsMzEgQEAgdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdCgpCiAK
IHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1h
aW5GcmFtZSgpCiB7Ci0gICAgaWYgKGF1dG8gZ2VzdHVyZUNvbnRyb2xsZXIgPSBtX2ltcGwtPmdl
c3R1cmVDb250cm9sbGVyKCkpCisgICAgaWYgKGF1dG8gZ2VzdHVyZUNvbnRyb2xsZXIgPSBtX2lt
cGwuZ2VzdHVyZUNvbnRyb2xsZXIoKSkKICAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZp
cnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvck1haW5GcmFtZSgpOwogfQogCiB2b2lkIFBhZ2VD
bGllbnRJbXBsOjpkaWRGaW5pc2hMb2FkRm9yTWFpbkZyYW1lKCkKIHsKLSAgICBpZiAoYXV0byBn
ZXN0dXJlQ29udHJvbGxlciA9IG1faW1wbC0+Z2VzdHVyZUNvbnRyb2xsZXIoKSkKKyAgICBpZiAo
YXV0byBnZXN0dXJlQ29udHJvbGxlciA9IG1faW1wbC5nZXN0dXJlQ29udHJvbGxlcigpKQogICAg
ICAgICBnZXN0dXJlQ29udHJvbGxlci0+ZGlkRmluaXNoTG9hZEZvck1haW5GcmFtZSgpOwogfQog
CiB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRGYWlsTG9hZEZvck1haW5GcmFtZSgpCiB7Ci0gICAg
aWYgKGF1dG8gZ2VzdHVyZUNvbnRyb2xsZXIgPSBtX2ltcGwtPmdlc3R1cmVDb250cm9sbGVyKCkp
CisgICAgaWYgKGF1dG8gZ2VzdHVyZUNvbnRyb2xsZXIgPSBtX2ltcGwuZ2VzdHVyZUNvbnRyb2xs
ZXIoKSkKICAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPmRpZEZhaWxMb2FkRm9yTWFpbkZyYW1l
KCk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFNhbWVEb2N1bWVudE5hdmlnYXRpb25G
b3JNYWluRnJhbWUoU2FtZURvY3VtZW50TmF2aWdhdGlvblR5cGUgdHlwZSkKIHsKLSAgICBpZiAo
YXV0byBnZXN0dXJlQ29udHJvbGxlciA9IG1faW1wbC0+Z2VzdHVyZUNvbnRyb2xsZXIoKSkKKyAg
ICBpZiAoYXV0byBnZXN0dXJlQ29udHJvbGxlciA9IG1faW1wbC5nZXN0dXJlQ29udHJvbGxlcigp
KQogICAgICAgICBnZXN0dXJlQ29udHJvbGxlci0+ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZv
ck1haW5GcmFtZSh0eXBlKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVtb3ZlTmF2aWdh
dGlvbkdlc3R1cmVTbmFwc2hvdCgpCiB7Ci0gICAgaWYgKGF1dG8gZ2VzdHVyZUNvbnRyb2xsZXIg
PSBtX2ltcGwtPmdlc3R1cmVDb250cm9sbGVyKCkpCisgICAgaWYgKGF1dG8gZ2VzdHVyZUNvbnRy
b2xsZXIgPSBtX2ltcGwuZ2VzdHVyZUNvbnRyb2xsZXIoKSkKICAgICAgICAgZ2VzdHVyZUNvbnRy
b2xsZXItPnJlbW92ZVN3aXBlU25hcHNob3QoKTsKIH0KIApAQCAtNzgzLDcgKzc3OSw3IEBAIHZv
aWQgUGFnZUNsaWVudEltcGw6OmRpZENoYW5nZUJhY2tncm91bmRDb2xvcigpCiAKIENHUmVjdCBQ
YWdlQ2xpZW50SW1wbDo6Ym91bmRzT2ZMYXllckluTGF5ZXJCYWNrZWRXaW5kb3dDb29yZGluYXRl
cyhDQUxheWVyICpsYXllcikgY29uc3QKIHsKLSAgICBDQUxheWVyICp3aW5kb3dDb250ZW50TGF5
ZXIgPSBzdGF0aWNfY2FzdDxOU1ZpZXcgKj4obV93a1ZpZXcud2luZG93LmNvbnRlbnRWaWV3KS5s
YXllcjsKKyAgICBDQUxheWVyICp3aW5kb3dDb250ZW50TGF5ZXIgPSBzdGF0aWNfY2FzdDxOU1Zp
ZXcgKj4obV92aWV3LndpbmRvdy5jb250ZW50VmlldykubGF5ZXI7CiAgICAgQVNTRVJUKHdpbmRv
d0NvbnRlbnRMYXllcik7CiAKICAgICByZXR1cm4gW3dpbmRvd0NvbnRlbnRMYXllciBjb252ZXJ0
UmVjdDpsYXllci5ib3VuZHMgZnJvbUxheWVyOmxheWVyXTsKQEAgLTc5Miw3ICs3ODgsNyBAQCBD
R1JlY3QgUGFnZUNsaWVudEltcGw6OmJvdW5kc09mTGF5ZXJJbkxheWVyQmFja2VkV2luZG93Q29v
cmRpbmF0ZXMoQ0FMYXllciAqbGF5ZQogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybUlt
bWVkaWF0ZUFjdGlvbkhpdFRlc3QoY29uc3QgV2ViSGl0VGVzdFJlc3VsdERhdGEmIHJlc3VsdCwg
Ym9vbCBjb250ZW50UHJldmVudHNEZWZhdWx0LCBBUEk6Ok9iamVjdCogdXNlckRhdGEpCiB7CiAj
aWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICBtX2ltcGwt
PmRpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRUZXN0KHJlc3VsdCwgY29udGVudFByZXZlbnRz
RGVmYXVsdCwgdXNlckRhdGEpOworICAgIG1faW1wbC5kaWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9u
SGl0VGVzdChyZXN1bHQsIGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQsIHVzZXJEYXRhKTsKICNlbmRp
ZgogfQogCkBAIC04MDIsMTIgKzc5OCwxMiBAQCB2b2lkKiBQYWdlQ2xpZW50SW1wbDo6aW1tZWRp
YXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQoUmVmUHRyPAogICAg
IGlmIChtX3dlYlZpZXcpCiAgICAgICAgIHJldHVybiBbbV93ZWJWaWV3IF9pbW1lZGlhdGVBY3Rp
b25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdDp3cmFwcGVyKCpoaXRUZXN0UmVz
dWx0KSB3aXRoVHlwZTooX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSl0eXBlIHVzZXJEYXRhOihpZCko
dXNlckRhdGEuZ2V0KCkpXTsKICNlbmRpZgotICAgIHJldHVybiBtX2ltcGwtPmltbWVkaWF0ZUFj
dGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0KHRvQVBJKGhpdFRlc3RSZXN1
bHQuZ2V0KCkpLCB0eXBlLCB0b0FQSSh1c2VyRGF0YS5nZXQoKSkpOworICAgIHJldHVybiBtX2lt
cGwuaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQoaGl0
VGVzdFJlc3VsdC5nZXQoKSwgdHlwZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCiB2b2lkIFBhZ2VD
bGllbnRJbXBsOjpzaG93UGxhdGZvcm1Db250ZXh0TWVudShOU01lbnUgKm1lbnUsIEludFBvaW50
IGxvY2F0aW9uKQogewotICAgIFttZW51IHBvcFVwTWVudVBvc2l0aW9uaW5nSXRlbTpuaWwgYXRM
b2NhdGlvbjpsb2NhdGlvbiBpblZpZXc6bV93a1ZpZXddOworICAgIFttZW51IHBvcFVwTWVudVBv
c2l0aW9uaW5nSXRlbTpuaWwgYXRMb2NhdGlvbjpsb2NhdGlvbiBpblZpZXc6bV92aWV3XTsKIH0K
IAogI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCkBAIC04MTksMzUgKzgxNSwz
NSBAQCBXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyJiBQYWdlQ2xpZW50SW1wbDo6bWVk
aWFTZXNzaW9uTWFuYWdlcigpCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnJlZlZpZXcoKQogewot
ICAgIENGUmV0YWluKG1fd2tWaWV3KTsKKyAgICBDRlJldGFpbihtX3ZpZXcpOwogfQogCiB2b2lk
IFBhZ2VDbGllbnRJbXBsOjpkZXJlZlZpZXcoKQogewotICAgIENGUmVsZWFzZShtX3drVmlldyk7
CisgICAgQ0ZSZWxlYXNlKG1fdmlldyk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnN0YXJ0
V2luZG93RHJhZygpCiB7CiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAx
MDExMDAKLSAgICBtX2ltcGwtPnN0YXJ0V2luZG93RHJhZygpOworICAgIG1faW1wbC5zdGFydFdp
bmRvd0RyYWcoKTsKICNlbmRpZgogfQogCiBOU1dpbmRvdyAqUGFnZUNsaWVudEltcGw6OnBsYXRm
b3JtV2luZG93KCkKIHsKLSAgICByZXR1cm4gbV9pbXBsLT53aW5kb3coKTsKKyAgICByZXR1cm4g
bV9pbXBsLndpbmRvdygpOwogfQogCiAjaWYgV0tfQVBJX0VOQUJMRUQKIE5TVmlldyAqUGFnZUNs
aWVudEltcGw6Omluc3BlY3RvckF0dGFjaG1lbnRWaWV3KCkKIHsKLSAgICByZXR1cm4gbV9pbXBs
LT5pbnNwZWN0b3JBdHRhY2htZW50VmlldygpOworICAgIHJldHVybiBtX2ltcGwuaW5zcGVjdG9y
QXR0YWNobWVudFZpZXcoKTsKIH0KIAogX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnkgKlBhZ2VDbGll
bnRJbXBsOjpyZW1vdGVPYmplY3RSZWdpc3RyeSgpCiB7Ci0gICAgcmV0dXJuIG1faW1wbC0+cmVt
b3RlT2JqZWN0UmVnaXN0cnkoKTsKKyAgICByZXR1cm4gbV9pbXBsLnJlbW90ZU9iamVjdFJlZ2lz
dHJ5KCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L21hYy9XZWJDb2xvclBpY2tlck1hYy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJDb2xvclBpY2tlck1hYy5oCmluZGV4IGNmMmY2ZTguLjQ1Nzg3MjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLmgKQEAgLTM3LDcgKzM3
LDYgQEAKICNpZiBVU0UoQVBQS0lUKQogCiAjaW1wb3J0ICJXZWJDb2xvclBpY2tlci5oIgotI2lt
cG9ydCAiV0tWaWV3LmgiCiAjaW1wb3J0IDxXZWJDb3JlL0ludFJlY3QuaD4KICNpbmNsdWRlIDx3
dGYvUmV0YWluUHRyLmg+CiAKQEAgLTYwLDcgKzU5LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAg
ICAgCiBjbGFzcyBXZWJDb2xvclBpY2tlck1hYyA6IHB1YmxpYyBXZWJDb2xvclBpY2tlciB7CiBw
dWJsaWM6ICAgICAgICAKLSAgICBzdGF0aWMgUmVmPFdlYkNvbG9yUGlja2VyTWFjPiBjcmVhdGUo
V2ViQ29sb3JQaWNrZXI6OkNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYsIFdLVmlldyopOworICAgIHN0YXRpYyBSZWY8V2ViQ29sb3JQaWNrZXJN
YWM+IGNyZWF0ZShXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3Im
LCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgTlNWaWV3Kik7CiAgICAgfldlYkNvbG9yUGlja2Vy
TWFjKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgZW5kUGlja2VyKCkgb3ZlcnJpZGU7CkBAIC03MCw3
ICs2OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZENob29zZUNvbG9yKGNvbnN0IFdlYkNvcmU6
OkNvbG9yJik7CiAKIHByaXZhdGU6Ci0gICAgV2ViQ29sb3JQaWNrZXJNYWMoV2ViQ29sb3JQaWNr
ZXI6OkNsaWVudCosIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgV2ViQ29yZTo6SW50UmVj
dCYsIFdLVmlldyopOworICAgIFdlYkNvbG9yUGlja2VyTWFjKFdlYkNvbG9yUGlja2VyOjpDbGll
bnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmLCBOU1Zp
ZXcqKTsKICAgICBSZXRhaW5QdHI8TlNPYmplY3Q8V0tDb2xvclBpY2tlclVJTWFjPiA+IG1fY29s
b3JQaWNrZXJVSTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvV2ViQ29sb3JQaWNrZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dl
YkNvbG9yUGlja2VyTWFjLm1tCmluZGV4IDI2YWM2OWYuLjhlMDAyNzAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMubW0KKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbQpAQCAtNTgsNyAr
NTgsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogICAgIFdlYkNvbG9yUGlja2VyTWFjICpf
cGlja2VyOwogICAgIFJldGFpblB0cjxOU1BvcG92ZXJDb2xvcldlbGw+IF9wb3BvdmVyV2VsbDsK
IH0KLS0gKGlkKWluaXRXaXRoRnJhbWU6KGNvbnN0IFdlYkNvcmU6OkludFJlY3QgJilyZWN0IGlu
VmlldzooV0tWaWV3ICopdmlldzsKKy0gKGlkKWluaXRXaXRoRnJhbWU6KGNvbnN0IFdlYkNvcmU6
OkludFJlY3QgJilyZWN0IGluVmlldzooTlNWaWV3ICopdmlldzsKIEBlbmQKIAogI2Vsc2UKQEAg
LTc1LDcgKzc1LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLVJlZjxXZWJDb2xvclBpY2tlck1hYz4gV2ViQ29sb3JQaWNrZXJNYWM6OmNyZWF0ZShX
ZWJDb2xvclBpY2tlcjo6Q2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0
aWFsQ29sb3IsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QsIFdLVmlldyogdmlldykKK1Jl
ZjxXZWJDb2xvclBpY2tlck1hYz4gV2ViQ29sb3JQaWNrZXJNYWM6OmNyZWF0ZShXZWJDb2xvclBp
Y2tlcjo6Q2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3Is
IGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QsIE5TVmlldyogdmlldykKIHsKICAgICByZXR1
cm4gYWRvcHRSZWYoKm5ldyBXZWJDb2xvclBpY2tlck1hYyhjbGllbnQsIGluaXRpYWxDb2xvciwg
cmVjdCwgdmlldykpOwogfQpAQCAtODYsNyArODYsNyBAQCBXZWJDb2xvclBpY2tlck1hYzo6fldl
YkNvbG9yUGlja2VyTWFjKCkKICAgICAgICAgZW5kUGlja2VyKCk7CiB9CiAKLVdlYkNvbG9yUGlj
a2VyTWFjOjpXZWJDb2xvclBpY2tlck1hYyhXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiBjbGllbnQs
IGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBpbml0aWFsQ29sb3IsIGNvbnN0IFdlYkNvcmU6OkludFJl
Y3QmIHJlY3QsIFdLVmlldyogdmlldykKK1dlYkNvbG9yUGlja2VyTWFjOjpXZWJDb2xvclBpY2tl
ck1hYyhXZWJDb2xvclBpY2tlcjo6Q2xpZW50KiBjbGllbnQsIGNvbnN0IFdlYkNvcmU6OkNvbG9y
JiBpbml0aWFsQ29sb3IsIGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJlY3QsIE5TVmlldyogdmll
dykKICAgICA6IFdlYkNvbG9yUGlja2VyKGNsaWVudCkKIHsKICNpZiBFTkFCTEUoSU5QVVRfVFlQ
RV9DT0xPUl9QT1BPVkVSKQpAQCAtMTM2LDcgKzEzNiw3IEBAIHZvaWQgV2ViQ29sb3JQaWNrZXJN
YWM6OnNob3dDb2xvclBpY2tlcihjb25zdCBXZWJDb3JlOjpDb2xvciYgY29sb3IpCiAjaWYgRU5B
QkxFKElOUFVUX1RZUEVfQ09MT1JfUE9QT1ZFUikKIAogQGltcGxlbWVudGF0aW9uIFdLQ29sb3JQ
b3BvdmVyTWFjCi0tIChpZClpbml0V2l0aEZyYW1lOihjb25zdCBXZWJDb3JlOjpJbnRSZWN0ICYp
cmVjdCBpblZpZXc6KFdLVmlldyAqKXZpZXcKKy0gKGlkKWluaXRXaXRoRnJhbWU6KGNvbnN0IFdl
YkNvcmU6OkludFJlY3QgJilyZWN0IGluVmlldzooTlNWaWV3ICopdmlldwogewogICAgIGlmKCEo
c2VsZiA9IFtzdXBlciBpbml0XSkpCiAgICAgICAgIHJldHVybiBzZWxmOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaAppbmRl
eCAxYjJiMDc2Li5iZGQxN2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaApAQCAtMzIsOCArMzIsOCBAQAogI2luY2x1
ZGUgPHd0Zi9SZXRhaW5QdHIuaD4KIAogT0JKQ19DTEFTUyBOU1BvcFVwQnV0dG9uQ2VsbDsKK09C
SkNfQ0xBU1MgTlNWaWV3OwogT0JKQ19DTEFTUyBOU1dpbmRvdzsKLU9CSkNfQ0xBU1MgV0tWaWV3
OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtNDQsNyArNDQsNyBAQCBjbGFzcyBXZWJQYWdl
UHJveHk7CiAKIGNsYXNzIFdlYkNvbnRleHRNZW51UHJveHlNYWMgOiBwdWJsaWMgV2ViQ29udGV4
dE1lbnVQcm94eSB7CiBwdWJsaWM6Ci0gICAgV2ViQ29udGV4dE1lbnVQcm94eU1hYyhXS1ZpZXcq
LCBXZWJQYWdlUHJveHkmLCBjb25zdCBDb250ZXh0TWVudUNvbnRleHREYXRhJiwgY29uc3QgVXNl
ckRhdGEmKTsKKyAgICBXZWJDb250ZXh0TWVudVByb3h5TWFjKE5TVmlldyosIFdlYlBhZ2VQcm94
eSYsIGNvbnN0IENvbnRleHRNZW51Q29udGV4dERhdGEmLCBjb25zdCBVc2VyRGF0YSYpOwogICAg
IH5XZWJDb250ZXh0TWVudVByb3h5TWFjKCk7CiAKICAgICB2b2lkIGNvbnRleHRNZW51SXRlbVNl
bGVjdGVkKGNvbnN0IFdlYkNvbnRleHRNZW51SXRlbURhdGEmKTsKQEAgLTcxLDcgKzcxLDcgQEAg
cHJpdmF0ZToKIAogICAgIFJldGFpblB0cjxOU01lbnU+IG1fbWVudTsKIAotICAgIFdLVmlldyog
bV93ZWJWaWV3OworICAgIE5TVmlldyogbV93ZWJWaWV3OwogICAgIFdlYlBhZ2VQcm94eSYgbV9w
YWdlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJD
b250ZXh0TWVudVByb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJD
b250ZXh0TWVudVByb3h5TWFjLm1tCmluZGV4IGUyYzAxZDcuLjUyMGVlNjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMu
bW0KQEAgLTM2LDcgKzM2LDYgQEAKICNpbXBvcnQgIlNoYXJlYWJsZUJpdG1hcC5oIgogI2ltcG9y
dCAiU3RyaW5nVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJXS1NoYXJpbmdTZXJ2aWNlUGlja2VyRGVs
ZWdhdGUuaCIKLSNpbXBvcnQgIldLVmlldy5oIgogI2ltcG9ydCAiV2ViQ29udGV4dE1lbnVJdGVt
LmgiCiAjaW1wb3J0ICJXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgiCiAjaW1wb3J0ICJXZWJQcm9j
ZXNzUHJveHkuaCIKQEAgLTE1Miw3ICsxNTEsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYkNvbnRleHRNZW51UHJveHlNYWM6OldlYkNvbnRl
eHRNZW51UHJveHlNYWMoV0tWaWV3KiB3ZWJWaWV3LCBXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0
IENvbnRleHRNZW51Q29udGV4dERhdGEmIGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0
YSkKK1dlYkNvbnRleHRNZW51UHJveHlNYWM6OldlYkNvbnRleHRNZW51UHJveHlNYWMoTlNWaWV3
KiB3ZWJWaWV3LCBXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IENvbnRleHRNZW51Q29udGV4dERh
dGEmIGNvbnRleHQsIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSkKICAgICA6IFdlYkNvbnRleHRN
ZW51UHJveHkoY29udGV4dCwgdXNlckRhdGEpCiAgICAgLCBtX3dlYlZpZXcod2ViVmlldykKICAg
ICAsIG1fcGFnZShwYWdlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XZWJQb3B1cE1lbnVQcm94eU1hYy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJQb3B1cE1lbnVQcm94eU1hYy5oCmluZGV4IDlmZGU4ZTM4Li5mYjFlY2MwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLmgKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5oCkBA
IC00MCw3ICs0MCw3IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAogY2xhc3MgV2ViUG9wdXBNZW51
UHJveHlNYWMgOiBwdWJsaWMgV2ViUG9wdXBNZW51UHJveHkgewogcHVibGljOgotICAgIHN0YXRp
YyBSZWY8V2ViUG9wdXBNZW51UHJveHlNYWM+IGNyZWF0ZShXS1ZpZXcgKndlYlZpZXcsIFdlYlBv
cHVwTWVudVByb3h5OjpDbGllbnQmIGNsaWVudCkKKyAgICBzdGF0aWMgUmVmPFdlYlBvcHVwTWVu
dVByb3h5TWFjPiBjcmVhdGUoTlNWaWV3ICp3ZWJWaWV3LCBXZWJQb3B1cE1lbnVQcm94eTo6Q2xp
ZW50JiBjbGllbnQpCiAgICAgewogICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJQb3B1
cE1lbnVQcm94eU1hYyh3ZWJWaWV3LCBjbGllbnQpKTsKICAgICB9CkBAIC01MSwxMiArNTEsMTIg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjYW5jZWxUcmFja2luZygpIG92ZXJyaWRlOwog
CiBwcml2YXRlOgotICAgIFdlYlBvcHVwTWVudVByb3h5TWFjKFdLVmlldyAqLCBXZWJQb3B1cE1l
bnVQcm94eTo6Q2xpZW50Jik7CisgICAgV2ViUG9wdXBNZW51UHJveHlNYWMoTlNWaWV3ICosIFdl
YlBvcHVwTWVudVByb3h5OjpDbGllbnQmKTsKIAogICAgIHZvaWQgcG9wdWxhdGUoY29uc3QgVmVj
dG9yPFdlYlBvcHVwSXRlbT4mLCBOU0ZvbnQgKiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbik7CiAK
ICAgICBSZXRhaW5QdHI8TlNQb3BVcEJ1dHRvbkNlbGw+IG1fcG9wdXA7Ci0gICAgV0tWaWV3ICpt
X3dlYlZpZXc7CisgICAgTlNWaWV3ICptX3dlYlZpZXc7CiAgICAgYm9vbCBtX3dhc0NhbmNlbGVk
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1
cE1lbnVQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBN
ZW51UHJveHlNYWMubW0KaW5kZXggNDhkNDkyNi4uZDMzM2NkYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCkBAIC0zMiw3
ICszMiw2IEBACiAjaW1wb3J0ICJQYWdlQ2xpZW50SW1wbC5oIgogI2ltcG9ydCAiUGxhdGZvcm1Q
b3B1cE1lbnVEYXRhLmgiCiAjaW1wb3J0ICJTdHJpbmdVdGlsaXRpZXMuaCIKLSNpbXBvcnQgIldL
Vmlldy5oIgogI2ltcG9ydCAiV2ViUG9wdXBJdGVtLmgiCiAjaW1wb3J0IDxXZWJLaXRTeXN0ZW1J
bnRlcmZhY2UuaD4KIApAQCAtNDAsNyArMzksNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLVdlYlBvcHVwTWVudVByb3h5TWFjOjpXZWJQb3B1cE1l
bnVQcm94eU1hYyhXS1ZpZXcgKndlYlZpZXcsIFdlYlBvcHVwTWVudVByb3h5OjpDbGllbnQmIGNs
aWVudCkKK1dlYlBvcHVwTWVudVByb3h5TWFjOjpXZWJQb3B1cE1lbnVQcm94eU1hYyhOU1ZpZXcg
KndlYlZpZXcsIFdlYlBvcHVwTWVudVByb3h5OjpDbGllbnQmIGNsaWVudCkKICAgICA6IFdlYlBv
cHVwTWVudVByb3h5KGNsaWVudCkKICAgICAsIG1fd2ViVmlldyh3ZWJWaWV3KQogICAgICwgbV93
YXNDYW5jZWxlZChmYWxzZSkK
</data>
<flag name="commit-queue"
          id="289557"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>264427</attachid>
            <date>2015-10-30 15:22:30 -0700</date>
            <delta_ts>2015-10-30 15:28:25 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews105 for mac-mavericks-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>973233</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
a3heRwAAAAAAAAAAAAAAAA4AHABjYW52YXMvcGhpbGlwL1VUCQADKukzVgzqM1Z1eAsAAQT1AQAA
BBQAAABQSwMECgAAAAAAa3heRwAAAAAAAAAAAAAAABQAHABjYW52YXMvcGhpbGlwL3Rlc3RzL1VU
CQADKukzVgzqM1Z1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAa3heRxXePUq6AAAAGQEAADEAHABj
YW52YXMvcGhpbGlwL3Rlc3RzLzJkLmNhbnZhcy5yZWFkb25seS1zdGRlcnIudHh0VVQJAAMq6TNW
KukzVnV4CwABBPUBAAAEFAAAAJ3OzWoCMRSG4b1XcW5gpslMg5JdGacgLUxJLS6kSDSfGGrPyEkU
e/f1BxduXb+L96mUNoVWRa1IG6tqW+lyaEY0w/It5ilSdntmyNyYkbH6WdXf1DrXOUuLRfP65d4b
v9rANgKfMfXLLdILhwkHHJHoAEmxZ1pdMhUUYvqhyVNHEOmlpFak6QMsaVUOqgcwdwqH66j93eW/
j/M7ZXD+zL2g4/HpfbJ1O7C9ifJFTJ4DxbOZ1j5uEcrBP1BLAwQKAAAAAAB9eF5HAAAAAAAAAAAA
AAAADAAcAGNvbXBvc2l0aW5nL1VUCQADTukzVgzqM1Z1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA
a3heRzSf6maaAAAAtwAAADgAHABjb21wb3NpdGluZy9hYnNvbHV0ZS1pbnNpZGUtb3V0LW9mLXZp
ZXctZml4ZWQtc3RkZXJyLnR4dFVUCQADKukzVirpM1Z1eAsAAQT1AQAABBQAAABdjkEOgjAURPee
oheAtmAT7EqDuJEEgxIXxhAKP7FRW/L7WXB7ie7cTSYv8yYRUkVSRKlgUmmR6kTGmUzYFczR0gUC
1ZNzgDelso2Wa5HeWdvmh6Yu865/gK6hR+gIivdI8wkw2EDg6EweoXJ7G547N1QjOM2cZ34JbMt4
ExaSm8m+BuOJl9ZghzP/Tgb+L//18WBiViAuL1YfUEsDBAoAAAAAAGt4XkcAAAAAAAAAAAAAAAAW
ABwAY29tcG9zaXRpbmcvYW5pbWF0aW9uL1VUCQADKukzVgzqM1Z1eAsAAQT1AQAABBQAAABQSwME
FAACAAgAa3heRxmvN/y9AAAAGQEAAEIAHABjb21wb3NpdGluZy9hbmltYXRpb24vYW5pbWF0ZWQt
Y29tcG9zaXRlZC1pbnNpZGUtaGlkZGVuLXN0ZGVyci50eHRVVAkAAyrpM1Yq6TNWdXgLAAEE9QEA
AAQUAAAAfc7BagIxFEbhvU9xX2DGZOIUzK6MUxCFkdTShRSJ5peG2jtyE4u+fdXSRaG4PovzVUrX
hVaFUaRrq4ytdDl+qOgVm1nMS6TsjsyQVV2PjdUjZd6oda5zltbr5unFzRu/fYdtBD5j6Td7pEcO
Uw44IdEXJMWeaXvLVFCI6YOmw44g0ktJrUjTB1jSqhxU/2LMXcwfhcPPqP085PPi+k4ZnJ9zL+h4
cnlfbN0BbH9F+SYmz4Hi1Uw7H/cI5eAbUEsDBAoAAAAAAGt4XkcAAAAAAAAAAAAAAAAgABwAY29t
cG9zaXRpbmcvYmFja2ZhY2UtdmlzaWJpbGl0eS9VVAkAAyrpM1YM6jNWdXgLAAEE9QEAAAQUAAAA
UEsDBBQAAgAIAGt4XkeMgZ+gvQAAABkBAABBABwAY29tcG9zaXRpbmcvYmFja2ZhY2UtdmlzaWJp
bGl0eS9iYWNrZmFjZS12aXNpYmlsaXR5LTNkLXN0ZGVyci50eHRVVAkAAyrpM1Yq6TNWdXgLAAEE
9QEAAAQUAAAAfc7BasJAFIXhvU9xXyDpTNJQnJ3ECGIhZap0ISKjc0oH9UbujNK+vVHpolBcHs7i
/wqlq0yrrFSkK6NKUxS56scHNrOQ5ojJnpghy6oavhj9rMoVNda21tB6XU8W9rV22y+YWuAS5m6z
Rxyxn7LHNyKdITF0TNvbTRn5EHc0fWoJIp3k1IjUnYchrfJB8S9GP8T8UVjcQ83hmH7eru2YwOk9
dYKWx327t7VHsPkVpZuYHHsKVzN9urCHzwcXUEsDBAoAAAAAAGt4XkcAAAAAAAAAAAAAAAAdABwA
Y29tcG9zaXRpbmcvYmFja2dyb3VuZC1jb2xvci9VVAkAAyrpM1YM6jNWdXgLAAEE9QEAAAQUAAAA
UEsDBBQAAgAIAGt4XkeYmAQCmQAAALcAAABLABwAY29tcG9zaXRpbmcvYmFja2dyb3VuZC1jb2xv
ci9iYWNrZ3JvdW5kLWNvbG9yLWFscGhhLXdpdGgtb3BhY2l0eS1zdGRlcnIudHh0VVQJAAMq6TNW
KukzVnV4CwABBPUBAAAEFAAAAF2NzQqCQBRG9z3FvIDOj1k0q8Jsk2BY0iJCHL3QUM3InevCt09q
1+7jcDifEjKNpIgSwWSqRaKViqXasCuYo6ULBKpG5wBv6UpILUGs76xpskNdFVnbPUBX0CG0BPl7
oOkEGGwgcHQmj1C6vQ3PnevLAZxmzjM/D7ZlvA6zyc1oX73xxAtrsMWJf5OB/5//eNybmOWIWi4X
H1BLAwQKAAAAAABseF5HAAAAAAAAAAAAAAAAGAAcAGNvbXBvc2l0aW5nL2JhY2tncm91bmRzL1VU
CQADK+kzVgzqM1Z1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAbHheRy9itliZAAAAtwAAAEEAHABj
b21wb3NpdGluZy9iYWNrZ3JvdW5kcy9maXhlZC1iYWNrZ3JvdW5kLW9uLWRlc2NlbmRhbnQtc3Rk
ZXJyLnR4dFVUCQADK+kzVivpM1Z1eAsAAQT1AQAABBQAAABdjb0KwjAURnef4r6AzU+NQial1sVC
pVocRErTXjCoSUluh769RTe3j8PhfJILtRR8mXIQSvNUS5lImcIVzdHSBSNVo3MYbmrNlRbIN3do
muxQV0XWdg/UFXYBW8L8PdB0whBtJHR0Jh+wdHsbnzvXlwM6Dc6DnwdsgdVxNpkZ7as3nlhhTWjD
xL7JyP7PfzzpTQJ5CFqsFh9QSwMECgAAAAAAbHheRwAAAAAAAAAAAAAAABQAHABjb21wb3NpdGlu
Zy9iYWNraW5nL1VUCQADK+kzVgzqM1Z1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAbHheRx4Dtuya
AAAAtwAAADcAHABjb21wb3NpdGluZy9iYWNraW5nL2JhY2tmYWNlLXZpc2liaWxpdHktZmxpcC1z
dGRlcnIudHh0VVQJAAMr6TNWK+kzVnV4CwABBPUBAAAEFAAAAF2NsQ6CMBRFd7+iPwBtqWjspEFc
JMGgxMEYQuElNmpLXh8Dfy/Rze3m5OTcRMg0kiJSgslUC6WTJFZKsiuYo6ULBKpG5wBv6UpstASx
vrOmyQ51VWRt9wBdQYfQEuTvgaYTYLCBwNGZPELp9jY8d64vB3CaOc/8PNiW8TrMJjejffXGEy+s
wRYn/k0G/n/+43FvYpYjarlcfABQSwMECgAAAAAAbHheRwAAAAAAAAAAAAAAABwAHABjb21wb3Np
dGluZy9jb250ZW50cy1vcGFxdWUvVVQJAAMr6TNWDOozVnV4CwABBPUBAAAEFAAAAFBLAwQUAAIA
CABseF5HcAMobb4AAAAZAQAANgAcAGNvbXBvc2l0aW5nL2NvbnRlbnRzLW9wYXF1ZS9iYWNrZ3Jv
dW5kLWNsaXAtc3RkZXJyLnR4dFVUCQADK+kzVivpM1Z1eAsAAQT1AQAABBQAAAB9zs1KAzEUhuF9
r+LcwIxJprGQnUxHKAojseKiSEmbrxisZ8pJWvTu+yMuBOn6XbyPUdpWWlWNIm2dapwx9cSO6RWr
h1TmyMXvmSELe2sap8eqeaPO+947Wi7b+xf/2Ib1O1wrCAXzsNoi33GcccQXMh0gOQ1M60umimLK
HzS76Qkig9TUibRDhCOt6pH5F2OvYv4oPH5G3eeufD+d37mAy3MZBD1PT++Trd+B3a+oXMQUOFI6
m2kT0haxHh0BUEsDBAoAAAAAAG94XkcAAAAAAAAAAAAAAAAVABwAY29tcG9zaXRpbmcvZ2VvbWV0
cnkvVVQJAAMy6TNWDOozVnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABveF5HCsj/F98AAABMAwAA
LgAcAGNvbXBvc2l0aW5nL2dlb21ldHJ5L291dGxpbmUtY2hhbmdlLXN0ZGVyci50eHRVVAkAAzLp
M1Yy6TNWdXgLAAEE9QEAAAQUAAAA7ZExT8MwEIVn+ituBKlxHEdpJa+UoQIEqEgMiMF2rukJ+xw5
Noh/T4rYYASJgektT9/p3qdk01WNrFoJTadlq1spVNuAi0GYcfQoHtBeUha3vgzEolVigy/o4xiQ
82O3Wnd6jdI+wUVKMYGPpiceoL4im0x6q7ecMTFmOAKqLU/1XSH3fE8B4ZM5fkR9Hucq56m+Nu5m
96WmAfr5LPLpz7OXoFbdmQaOMBXKxnoECmZA2MfCvQDYUA974l4vTn7jtWDcoYpLsCXDa4rzgCa5
A2V0uSRcqG8tqX9Lf8rSO1BLAwQKAAAAAAB9eF5HAAAAAAAAAAAAAAAAFQAcAGNvbXBvc2l0aW5n
L292ZXJmbG93L1VUCQADTekzVgzqM1Z1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAfXheR06ogyb7
PgAAQdYAAEIAHABjb21wb3NpdGluZy9vdmVyZmxvdy9pZnJhbWUtaW5zaWRlLW92ZXJmbG93LWNs
aXBwaW5nLWNyYXNoLWxvZy50eHRVVAkAA03pM1ZN6TNWdXgLAAEE9QEAAAQUAAAA5Fpbc9vGkn4+
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
wIW+UJ9sG1sgCPzBd7+Zp6pz0FAgvb0eOzO3GYLOoc8updJSdNnR0LcVBFAq1zJe4gzcqAkf0Fp/
5ovpuQeL/nBGG9IvFHrgOj/Sh40eyGQqsD3zYIwhfwFQSwMECgACAAAAu3heR6zw9KMuAAAALgAA
ADIAHABmYXN0L2RvbS9ob3Jpem9udGFsLXNjcm9sbGJhci1pbi1ydGwtY3Jhc2gtbG9nLnR4dFVU
CQADwekzVsHpM1Z1eAsAAQT1AQAABBQAAABObyBjcmFzaCBsb2cgZm91bmQgZm9yIFdlYktpdFRl
c3RSdW5uZXI6NTYxNS4KUEsDBAoAAAAAAJV4XkcAAAAAAAAAAAAAAAAZABwAZmFzdC9kb20vSFRN
TEJhc2VFbGVtZW50L1VUCQADeekzVgzqM1Z1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAlXheR19Z
QelUQAAAnfIAAFcAHABmYXN0L2RvbS9IVE1MQmFzZUVsZW1lbnQvaHJlZi1hdHRyaWJ1dGUtcmVz
b2x2ZXMtd2l0aC1yZXNwZWN0LXRvLWRvY3VtZW50LWNyYXNoLWxvZy50eHRVVAkAA3npM1Z56TNW
dXgLAAEE9QEAAAQUAAAA7Fxbb9vGtn4++hV8KuQklOc+pBAEoHhJferEPpGdFigKgSKHNk9lUaWo
JN6//qwZ6kJKlGN1FxvFcfVgS+Rwre9bs24zpHRdFolaLofW5vWzmv6UVzdqWX1azeeqtH7l3KW/
9a7j6n43Cl7nn4vZ6kEtzz9fXd5+CM9fne9f2rtI1bzKs1yVw27hvc+qXObFfCcY9fwiVdbN40Jt
Dv7iCFswq/8xrvIv6gyQlCDWut4iv36s7ou5AUp+631Sy0UxX+bT2VrC8t76Feszt0ugcxHslHGE
e70grtT5Tf6w1UcQ5jZGNkUW5kPEhpgNXJdbNpII9a7GVhv0hzix4OAvFkYDd8CtPqYRxpSdAZJF
UVaN4Rj3vHkxf3woVkvr9tZAcQRzPY9SOySI2NwPIlsGvm97wUiMsBTc5WGv1/PLeHmvUuvmvlRx
Ctchywry5SKuknvrj5VaAfykeBjEi8VMDR7ifG5XZmivF35L1KICBBurhr/4k5EXTDzfD8djqz++
eD8O338+a4zUkwCm1SMvqCMm76+jy5tezwPpeRKbIeOFSmBuE+tinhXlgzk47BXT/00mD8u7sZqn
/TNrqWYqqYrSmsfawF/zeVp87fmfvPGPFx/fWzfh+GZoZfGyOk+Lh/Mfbz5cjuKlCmfqAab4HAhk
dlxVZT5dVcou1bKYfVFL+2te3etPgKCyq8JOi2SlLxjcVw+zXq+2EVhobbTh8JmmAptas3yqOQy8
QfoI763267/QNwQvmWWZkyQqRi62mpSt1xaWPQwjdxpqp++UAy+MElchB8t1cAyH1/Gd8mc58Ll4
WMyGw3z5OVdffzam8xIdA2BY0IOtfnvo4OFhiCU665HT9MdZmkm61Q//tVyIr2+Pw+FqkUKAaATj
Ct70VxBad3PwxHxeaRhCWv3mFYNksRiC+4P/05NhpMQ5AqP5qX9oqR/etK6rU4MZDGe2kGfF/M78
gdE30XD4SWVvveuLtaBinuV3q9I48rsfftDkCCasgx4TYGR2MjuW8CPsEnA/sO1/jJdwrT4MGtwP
MSdnPX4alSlPSMqPAduwWTM8QupZMDmvjd+QbuxPiHvWE6eCJjGSXaCLYvYXYqYUbDuu0st8Gn6r
IAGBkSl3znryRLxyqrK0iVfHYJ0RGh/6H8f67SuA99P68Ks3R1g+m4Nbx/RGh84rjImznnMihQQp
gi37159/0qIgY+TVz5C6o1IXg0XD/EkTxPBrrXr4m85yBou5XsNwXXBX91QYEvHYwFiT2kPS1m60
Yka12vV4rZlKmEOMOhqko5qnqYinkoDRP4GtZ3Gl6+Ra5MGBnbbWjOjJ1JdrfVemNi+B+3xZ1c4m
ERSBtiDoR0whwDBhUCNOwisTNsU7hYCkKovZDPq34WKtxTeBclXdq7IOlQ5yAPpqEUOp/fmnAxer
0T9NCyOobW0AfpEUsfEACrTIibQQEkk3rWSPThP3Fur3yWxGfIy/5HfmlK7UHQPqMh6B0hU0MNvT
X4o8XX8wdcfZ51/nPazJ09O8PxZMQd4z4Meq0v9uL+qkNhzu3tWG+Ki+thJgs0y184oJncZxvyjV
cDhWyarMq8erMr/L59Bax+tpbYyBBr1YlYn6pMAiy+pwQJeNGoVw38YNLdp2UpjQHd/DMiGFNOdD
d6kLHZVgO3aa7ZBDM/Fkzd4YrLMW/02s0tUp7DUW2rE1H7gQllcwsxUsWupYJKS7nmF+mi2JUIjW
jn5x7YP94tnsg3qYqjJazQ1kXWvedhl7HR/97ol4dfb/1PpvrGUFi5fJBA+H1Qqs/PZEnscJHmX2
NKV3byy0mr2xsP5D9B+q/zD955lYnybdUPDuWBL6xxf+Hr7www9/1aRvBIF29W2y1LDmiXp7xNXe
PT363WaB82M8T2fqA/SYoFVnLQxJS5yYtJgTx42kdd+U+Xb9f7nvhX6zNLyx/klpWzd+1zdmXBsu
UEmRqhIubR4N55uj/ySAneW0VzMHWhuvvDObXWszgWML7djyRMdGhKsjnU2ap59UovIvavw4T9az
Uk8cNKRzZUjtTdpuKncpYTXPwYCTRVW+7Zjf5shUZfFqVk1SNQO6XaPfWe/qpalo78esR63x1m0y
BnJgEee0TThXcli6N1VvhH6IF9oo9Q7i388k0Nla/UPItSmwC5ZwT7MEpw7HW9/w7/NZ2t7g+Tvb
wuofAK4twSBKCDpxzygVe1GyZ4e/b6DoJWTX3hlH4BEEn+gREnFm7RF7wg/2uBo8CCL3QT0U5eOQ
CAkLWVhYnAaCuUodB7EB8F2zrlE906zr0WDWetMdVkM77cairt6NJPRUixImjpO5mm+ajHqvHxx3
ZzyHgb7WSva/4y/xOCnzRaULVIc+JjPFpuvtv9X8siggpS1UaTZtivJ3o4Vx6Jqy9WIsnkHIUA6a
+GmaHKgs5AlNunqbTQ7KrP56hB8ZS1JtyFaHppVExWqe1tst+/dgXCxwzKfYmkz86NPtx8urq+vJ
xXjie5eXFx/fT65ubyY3VxNvMr66/eSHaHIdfoquPn2YRLcf/ZuLq4+TSX3HhsjTtKJpIkittWYQ
FGPTMyyR9nVGesQ5VSJVWVMi/ANRDsU94p4oKlaSW01B23t1YHXk9mgrDe4L2xdIpCAoSyz714/j
tcj+9t2ZVa7mHyBChlMFU6z03VSzhUo47dGTtx95nDy9/QhCbudVPutP6w3ttFhNZ8rEiBBHNw2x
Tnr01F1DmZF4h+Zi/qWob33qpceX4vc6NDkjtdrd+brecK2SnqiSpCLuNgCYWR/qJ/dx2dwp1Opb
mQHC6kSdmes8qTOf341VCV2Fmfo6DYrODUqMhEbAT9wlzxLMuhG0P/fzOaxWGxao84gg3WB0xafi
RCxu5ihL3xTWCVFL1u+1D5n5lOYGcfo4SztvD+/dIEYQh1kKdSYuK2217a1p/OQtaa1hfdJ+iOdQ
BMrNrenl47JSD5PfVTlXszaElmYqkADwv6svsFIQzOypm9vSDdkdDFoyuKMYNAqTzfjJw105qT1f
Ox51zX3m0wRimI+2wPrWuw4ksjUPGZ7Ml2cxjSF9LtXD1zivJnqRFc9avNeykqdhukgKkSbImsfz
YjlTamGaF7Qhm7x+PcDdk99EFGfcmVKnuUFyny/XbIdDI3gCCa3RriT3ZTEvoAdY31x421i/7kaZ
c2+x3utAm9cMupPmDjjfu/X+/aINqx+ZWtOHeDYrkuFQm9Ck2SieLTtaKhj0+9vtaP1gQJ58WFXq
27tWX/tnGGkubyyT3U2mYVhvP28V6OUu37/5/hx+zM12/H5Uekm3TGIIj7v/PD/TbMGi7bN5NgYo
Hd6Efw4lkrB9SuAEyarUz0eNN+TMdhgsBiaTB81gMo2Xaoips38H/RkaYzVtOIm3hLb/Jl42LKVB
bPZn9pC9OuufvdNRoANg00aYFb3e09iI0jdqGN2/Wf4MaFOUpkbxq4blJ+t4myz08uft/mZljROA
/TuUXp29+bdM8gr8YdcTa2MYcEPzBI3TylyLmk0r+bSyIBOZ47rWZuBkWqSPZlHsmHvmp0mS0Pxs
JW1LGJXmJvgpoiTNEtc6ELTN9vTPZHsldLb/CguKP8z4UlWrct6V758BEGXI2XH9+se2JlG6zfun
0J26dc1vimoQZsPhXj/vzfP6AboBhC6sNu2l6bdOt8s0xjF0L7q2Lu8mVRkvukzyDEFxip2tIJ1B
2N5TZf+zAoL/2sXjfhmVrptQKS3f0xuqmpTefNWsIPGa/+vg3Dk/dvcL13OUELDoeuYys2Qi3JSH
vyZu+F8XN8L6a+OGv7S4ES+NsHxphJ2XRth9aYQxenGM8YtjTF4c4xfXw2L24hi/uH4Lv7iGC7+4
jgu/uJYLv7iei7y4nou8uJ6LvLiei7y4nou8uJ6LvLiei7y4nou8uJ4LWcn62/z6i+z69w3WX+u3
zFesrb5g9jSvzoY9yyrjb0MLfSNIMOGKRGSSEkRjODE1J9aKp7HjYIz0M69lsj2hb45hKVRKY7Bw
mTZPoCSJmZBIaiVpfkTJMm8oyZxMEsbwVGtfNE9wqlyhHK1k2XFCOKDEKp0WLqYyAW/0CbeJa/2S
cByj9hUgUBolGB8wmSapZoJJyyrcwVNHaavAEn3/hEiNLHaonWb6BD80sNJMyrzFcftDAFaZzfZk
YaQf84P5Jk0m+oYlhzcgq3dZ3OVJPLP869v6ByUw64VlWZTmNxjWvzGxk9m70fd0Pq7096bW48Gx
eqN8HpeP1sWD+TpCb/NjGt/MIy3GzLbVOuhgQG69Png0po/OrLccYT5yw8iORgGyqc+ZPfIYsZkf
YuJJFwWe8+45PwDSUpnQDhwJzTJmvYZgWj9dr68e3+cP6wgzeGjAGKKU2lHoMpvKyLNd5HGbIzcA
w2M3HEVdeI5J3cOVHuBKOHKyjDxxD7ovEHkNF8G/AR5g9FrDHI1CwQmxXeYRm3LK7RFxItujPhLU
dSKXyy6YbdGDTD/0rzPb+fqXQ5bn3t6YJoHEpfyQQMK5NuzhM6ldwAliAUxtYEt/xG0aIGx7Uno2
JywaYRdDMpDH57sbcH2uCTSlKTsAmnKssqzjAfVLdRcnj51wJRuN3CDwbIEdsDOmzHY8gmwchQwY
+I7jkuNwa8FPga5HtKCLVB1AV9KZZtn+c7/HvUO62OHcsaOAjWyKpG97DHM7clwqMQpQFKEjqI+7
xfpkAytmUhyY2RzUAX9gZtKJlUWIIC8I7VCbmWLwBXcUMTuSUgRh6IS+eMIhyFPGJS2sUyoPsU6F
TvRNrJdF8ftqEW2kWn0AChdhSgCsyyh3ZEBtGlFsU+JG9mjEPRvsGjk49INQeAB2bAr4+WU+LSFV
nl+X+RcotluZy/NaSQN7faBX49KZXjgqacTa9mDm6N9vsfRjgVafUHfAtJd6AaMjd2RzPwQb+jK0
XYcK20PCRW7k+h4XAGu1LHWeOtcXN1Q5bkbcfVVwkCOoRc2GJJ9nxSZXMubCFGrlmPiBG0LKdvww
tKnnBPYIIQHO5olw5DoORHxDeS3rvEtqE1OMGT3AFONYGEy76apN3f6mvJ4yWs+aeaMjgroe8Vxk
Bx6BtEO9yHackNskGlHHk9yJwvBw4hoz1qGn2/U6BrZ5xbKDV8L23HAre6B/CAn6HaJ/hAemG650
GRoIXawQg7n2IzA4lxDnkatNH4W277GRK31GXeE8xx13Kro57c63qSjcQSWTe9Gvs8YHleaxt6ru
izKf34HnDoghIoFFhB1HeIjb2CcusHAcmBsf2cyDLhNKG2QH/BwWh3q62RyOa7PKnENW0Itmmepk
dXEF0YCcgb6EcannRRKdZhn0D1FkqjMwCkNsw2QRFElfIA896W0N4d/hcHHVa+Pkh+AZpI32lHhp
WqrlcgRZZyff6tckMIAf6GwngxE0597IZmEAXFwcQqLzfRsT7hARgBsS8SSNTjUtx9oN6LURZ4c0
pEB7fYa2gulDTWQMtOmJL6iARGyjCEMq5FD6oLuMbMSgw5AiCoKIP4l59xxQN+S9WTLqj8+ROd2i
5tDDXBs7DHrkxOTa99Ev9e9JbDKtOxBmNngYBWIE/oRcR9pUSGGP/BGx/ZGUFI1GQhL8JLOrhZq/
v+zGWg/PocAeQmjDF0kH/BTtOVgaV3GqKvPQ6TIxfQo3zkU5G3Bg47uRN2LQ/dEohBAhBNsjgXw7
ZJAOGIaKFT0r6PUXXoONouOzdjCsRcrNOnJyzNVeTtbX3Vb5bKnzlx5OEBpQZqpgyKEAS8i9IRIw
OzSC6uv62A5Y6BPoGKORGz03iRkdx33KnO61oXaEC9QZgx9m8F/bx8j7nOqei4TId3wBhQJSE4Vy
YTsCu3ZAINJ5EDCXhI2S3ZTQ1itVh95papxBO9Ll7b4XB4I7NHAEdNAjH+ykUyMdSXBlqMEIMo7L
g7/IizfKW5CnmB1Cnuru+qBm6UcI80QtB1fjzVvdwSJTg81/HZUegw4WljKwDoMc6UhuQzPLbD5i
MhDQiRGOv5vqt5q+l3F2SLqH7s63SU87eqkEkaM9Rz6v9MZYFSdJsZpXxuF1P0WwzrGBxJK7DrcR
hZUxhQW8PZJQtWEJ7yOE3REKn9UFX6y1eGst3Zz2R/XaJLqYYbXx/GtoAtYeCAXZ0YkHs8iRDNtu
pAOVBLp7Fx60qxIWCHxEYcHx5ISZlH6sLm++z288cKu8BVnpmNmHnKGsI9l4n/0fA505pUk30FyA
0w1MBEPrJ1xoksIA1iAUYWQ7AYl0GHHi8Eg6yHluujFajqcbc7rFIMMdRoeD+01GkqiZghZYDb6o
5FLPAR24cNn6E3zQ3Z8TIN+XElYsHiSEEaxa3SgUNvIJZwRW3XL0nSZjp+Z74VMr7h5Wn9vj2ZEr
MiE26a35/Zw+JsisZoUTRD4sLBBQgkWHAytv5kKi9XkEy1k5CvYya0NIW7noqElZhjrc5DqIoAWt
G1DA4AW+HyBIRIRLKK2+YLbrM2QL6VHku/4I0uxzfQNEH/cMONmGnOEuyNmeXxSQwe9m65KgVwHr
0oAiBEsyl9ojPBLQF0BucTEEauS60BKEkvvc/9OloT7XhPt/xF3Jkhw3kr3XV8xRF5RhX45YNRxr
TlMstfocuZFpKlaxa5GJ8/XjjsgNEcisHOsyzUFWqYwgwh3hcH/P3YFcjFnOVtwFZXYywz+vH9Yj
jxvu7wA+VLg5xn+maV2NWhoJXs8SoEgw4z6CDQd460YkrXmgTlB5zYx3HtXXpnNjqxrvqcYhMI8b
Khb/gwkYurddjguRBlyBmEhkCAqki8RSLQiH7w1QZAAHsTXdZpTJ89ed5ws9mdrn7+v18uvt03r5
+OVh23JqtGheQ239i8kXGwK4Z0k0F8ATcwEfTgEAg214mkSwSb8RaoenxTnafkr1q1Sfe0I1RH96
WzsDYr58F05tnBHT5fvz0/D963b5jHkLhBXV1Tt3K9Qtw9yFCwWWc3AAlEwC4K8LcZjFiAXgGgMs
F7J+E2LsH3J+Ne/vaNRwizmfXAxmljQbXh+WX48oCRzPreA1ZOEHdEpSO5dyIooh6KcalggEYoha
NBhvZYjGvR9OauU5AxabexqtF7Lz8hZys3f8u8zV6uH5+UDTFOe3jld3AE4LgoCGGMZCzYgZYpUS
QNyy906qIku+lBE7GbcVS3VW9UKxPdgZJ+82HEIScwbzrEjlYaEIVSIAhIw2ZACyeR0hJkTuXPDZ
JNcu7nawiRy8J8c06/tteFo+Iu4afSX8E4RfwFJljBGCEwXgIg2YtReRSKmsjr5wVq7Cjh9x8P6L
rZcagVcd0rpYGTGx4u9fHx/WD7XeVRfjLvNLka8aiJ5a5EC4lABTJDqfUjxJzOuQE1BXcRVf/YTP
GGtqZ+zy9I5WCzOHI6CXmmjh/35Xiy/gmTWKb8bo6pJVDDAVhFObMc8egKBmRriB2CV5COD7r8oV
1uHPpHPqtZtWPt0RehZkP77ev2xfHl9hQb5+x6PsTwMBl2qf0N1/xJSu5RBbHSdRC7Ak5SlxDhyk
T+ARCy8WuOVVlnT+0Y1VTW9r1WSup+aw9xjgag7BFlmI5tqCLoowqwEx6JJhGVBJwMiCY1xpWYWf
u4jDQO3jBe883k4NfHhdbR9HZoGfxhDLdiEW55SawgOjgviMqVjGLAkhAn70hmcmAoX/3vTSdewL
fAIvt9LbnmEvV+fyyNW20bS5EbcKV6cXpeTMI2ESbUFST4IDpJADAzKOVUXKrku4vpFubeVe9eRe
2b0//vlDmZBPJRCCc04ko+BFUoFQzgWSnag02K2WXr0T+Tw8vBV53RN5bfYinxw3cagugazGpGTA
c1AwimCBMYMrJIb7DMA2J7CMrq0eB2tkYHQxl4Gxw7T9OTwdaRWerwbzBjjCe8NIdjZhyhC8r6Qc
jFMCdsg0GzahVSeDtA/nnQlgiIzHUlf8ueYbNgPihr0MBteGtrmEDAvVKAr0BMIp+BvPiQra5QQY
zQT7bkT1Qlq5ectzcSfarjvaimm29m69xA6QfwIC/I6NGWJcXpjqySZ6ZyFMBBtgYQFFt1IlQnVS
0RYsclwV9tonnAHUzT2tHoL19OB7k0nb4cvD4zMenbA7J3M8a/q4/Co5jynQAoEvUo9egkuAQ0Al
pFPa6UJTmFrR5XFbEXVvqpfTysuHu134QCfmajpEYREssyykgEXGOUd8gWmQxAopEeJnMIVFRa/K
qd1djGKHy63sy01H9hWb0rXdgZZft0jeK00BRIr+1zmrIAZ5QrHMJYyu6SgIIykJp5WXidl3oWY7
Cf7zw1kT2l1v9Vt1wqOYJax++bUCJ3NrbgViDQAYI3kJwL+iZpTIorCfglISVFJE+WCNkiFn/UZR
6dezmKleumkF67goADMTaf9VC1Wb7f3LDq7uqneYLER45CK11GriLDARYTiEGsnhvbCitHVMulSu
KIS9+UrG28ooxhkVT29pVZUddCikq8Wwk0Xz97vX6uPA7lh9N/gHV40T0qpakgxgdwyQLXAZsLug
BA9cSyfeiKf7kc8sl/3lidRDR2qt996o11sKIBYIImMAXzGmWsY0xVgWBDAJkRUFNC4kUUanpIUG
VCAvUcTTsVvZOmlD+HI5xdu1/r3E8xq3i+09LJk9qJI4r0lQ4AsC2HrxQBYMFogUEMdSQvI2aB0s
vziv8/HPoOrZfRNtVnNtpFrsYfV/feIThMVcECYGTaLVWI8RYPFYlgtgEcUqyUug74SwDg+/aaVb
dkTWUzC7XT1vjofhTUhyEllrqQPAREDggiZBgiyGJA+AwwZwqfmqfOKHdHc8ce+MhZ/e0irSC2jS
qImVt13KPymxawvyQUJQUBo8pcIiEc3EUczmapOjy5QCXL9k4c24rWCm4zSkneak/rHY/ut1Z9ij
O3c1/1BYMLDSYgZUI4SEJZhBLBs4TU55Vly4Zmr3o/dndX+1ldvN0zdLZQ8csTw+vHwanp4BHx0S
OJiE0Jh+MFwJLTj6C40lNwY+DhhvZLlg5kRb/wb4PP6c2tVZNP/r3RXLYCr2TateB+urQe11npzn
9pMAzuFGLhpllp4h3I8Cgm7EfLQBAuIlN/CqwHlm06cdzZitOIPuiTPsbXo5LL+u97LoMfTDFGuI
+kBAwF6Sh+CCTSWBw0tw0ftEQ1eKk6FaEZbz9qKlplOs9UtCGK5ql4Eb65aFUwM+LeVCASDGArbg
A4Y6aWnSElzGu1vAL2fqgr80BUEQv4OvtBgmOn1ef3vc/b7bIVM8FlIcegxRYDVqcNgiJeQajAE8
5xbmW3sHXiRD7Llmac4fc86Kp/e1SomO6Ro1deTDH6d+fFRHK1i3oxUXy4E+JkuMVQ77XMCKQ0pE
WmYtV4orf7nx0P/2lgs/veOmFbbjwc16PcMCLwP269QoNFaaLTa20EpLAPlmoUkBpoRJNoXlFoip
WgbJjC3xjXaN/1Pafi/JOawwXm11XHeoi50x3E/jqcDDw3LtH4b7H8/bCpmlQcSD/CuFCFHBZVBP
UswwIMTPQBC1B94vKDPZXZXfnT/oTJp3fuNNqwPrKSb2nvPzAMgJ/vE0w5S09lknwgKFRSQAGzsG
DiM54bOhTEcT3gn/tBJMhO9QGGunnaF3y+F+WNyv8ddSD3mMQ3YPnV4xUoH/I0YYMD/glOD0AOkb
bhLYonZZ2vfq5usKc4Zm9m5tJ8Da3gQcgCtK9NvHNkmhbPUYGVaajtoBgnUag18C7G2x4OkoF9lk
pcv7dEjNhZjo0EGydgPkrDnSvRdXADlA+NK14U+LimAstxE8ISNSYWdEMQowLTgWEVIR3KYSGPvr
EAxcaHXddCidW5lDq8fTj+8vj7f4s7v2WPGDz7X3jwpMHRkiY9RjT1vQBtiSdiED4eDgJidNH7Ph
GmmG3tofLJ/mK163y99x58DJboWxy1ID10SvxowGepwjiQ43ghSLKZkMcZVLK2kQ4OHkG+tn94hz
zH53uRXf6p7405rP6pBcu3/8ssTDlJc9MkSlFCp4QwxDc8kMiEQIHtxa1JrrYry+igwdc3l/e/wS
D4870y/av3miZqfmMywXezA5vL4ctkswq2rbK4B1WN0ZDQSTyNYiPwrY+wqOLhtAlt62pnIcpX34
srM4h820jzGtF69f7n58Wzxi1yobK4JU18geUk7UEsWFxwoUxDpshnNJRcN4oT6aq6b15Aln5vLk
jkaHRadtdbnQdrLt5OHxZbv5ceyzYrec3o6NEQJQCJD7ojxWBZAcKIh1UvtShAJ74eISxTwduBWs
V9hZLg7e+89v9/z2kHngeiyxZ20D2qlO1iKz9LDWTCGumKAjd1SZyas9HeamfVTn5S7Xcj8xfz7f
v5x0nonaT22cdLBANMR8nAvsezfYacEcDQ7AWmSTp58M0j59Pe/5WK4d33Az/83qn5QaOwxQ1+Ss
JODkMzwW7MkLzYgGYi2YywCvQivA6Tg37bNET4DD9H+s7O6of+1e4ow75EOSYpMMdR7zPoBWs7G8
SG2UmOT2m1Ga529Ux39tFmqyto7tshhI//k3/99YUBU12SCFuB3zUYWZ4hknsOglypWIs7DqItD5
JKUqXuc3ATSOfb4wiVdb+Rdz+VdUbGb11PvHJ/w9FRR7zOfXv8h6jdLBgZjOJ2zRV4BBRHHEeBqo
tsKaxN89WB/kOafq7vJNo5akHV3lIUv1+oA/BH9IL6iaNjY2xSiUJbxEXCI8A6x0ilCmsG87AqU2
Z6rvx9FaMQzriOF0p1vzt+1q/Vjz9eiLmandGWCgYDJAP7jGbdAKtx07EFBybgUH4QLjb5pJHfm8
ndTLrdTOdKReLg99Ts/3ZyAPQAlsM8VGASy4G4Y7TJMipXDmksCEtmmX22SsVo7lqiPHZrlZ8dNA
cNioLag0t0xXQy0084xex9RtFyCHsYYkLQUNWtCkLubRv/Wk2XSkYdZN3uX2odk7BaDF1S0hiLus
VzRYh2iLIm/hGjvAFIQnCFe+UFukeY962IeH3881zTeQDMSf49sV59PeoU+p1BIYhxeF7Xv1L7Lj
wmOGN0s0Vxo72jwJAHmJYrko4CMqRPsexaTx+WcIc73WaMU7TZYrrg5l4fi53L1uXw4cWaDplgJE
GBdYVBIClbOBeO8MYZZpGZMz1qXWdNthWgk6KRb8ci/B7+sf3748Na0/wnubLHjUWChF+oMZRU9J
5jYzL7gH/NA12dOxJkJsOkKYmfMpyAzT9qnugvpxMFlmxK0bEZUJEfACTAsLNQsSAcNEIN1cAItQ
SavU686bcM/DE972+OWK+yc3tZqbngGYaan016fX55f8x3D/Ov5U4hcgvIc9XKpuD5YeYQKRPuOp
DwyRJHBVC944UAO0m19VFeg9qK9V786JanN2sVJytVk2L/WP3f7HMW83ln4TlyyFgu9OYhdX5rhB
PZHsfRTgyGh09K/oVPljtvsRFFj3tFqf3TpS2yTg/pNvWN03oiiwQG5AyVw76HTCt2UJApTEmYlF
/Xv7Ro7XJxp0Fps67pW/Wz6t1w+f18PqWMcRgAYV+p4gpQVyFUhkCgt7QWCfGh4swXTGNcZkmbTh
zoZrpRlkR5rBTWng9vl3/7TYvjwd8tS6unddW7OZVtifDIsJHGLiBpggM4CGAB0Vq3iwl4PVZPRz
jLq5qdVi2dNiKWeAdfk4/MdPuiKnut0mO5qdSwaLQritH08TofApuUxjYswx+xa6xp/tOgOZ4FIr
5rrjbdRmWroB7Hs3PKwWj3+edlK5wk3C/tuosB/DZ2z9A9+fYgGKIrRjOl25V383+tm9+rvrjey6
06C60pvVRHbcqvu63e/P52LkdgzwfrFYgPNYVK9rDWgVNgQKBqFUxGSu3tz64cLO1g+tzJuOszC7
ptoOD3u+/f603qyf8Deavw8PWF5ierdRpzpGqhyai61t77jXzGGSH7vzaUrGw/swl9tFPh3G/4Tj
nwEq7U03rfSLjkrHnNEfH7fPh05hycXYf0Sli9QI7BYGTgZkwBGHja5Gx4DHMhgpy1+xR64VsFHM
8o5idg32tZoSoF/Xf75gdhiYj6gJYvxQS/POcc2AA2WIvyJp3BpgE+53DyYlmwR7u9aEg583MLza
iN0caHTyZRUbdEToMZ6FtH34ghuvD0kHZerSSCLoXDPaEYuWTMCrCU4SQFFOA1oygk2yPmeGPBVr
veh0qa4XcrkPMp8/fDrJwJzsFcpWRPAqnGADCQAZiPpeAGSPTIZiZEoy5n9zr1BbAzoK0irQqR2s
F8O0LDd8f253fI1JiHqQQ5I8xQSvXymISthX6EyxpEQpTZBOJZGvPtvk0+vzfqfPhRNOTu5qlRnm
5H4NlHWz3sx6qnY/DHhXf4amc05AiVzmCFYNpBU3ORpNfNEQe6UrglplgtNX7VqYPexCg1Vz302r
xVy1jZVmHtLGA71GwsC1uuU1qKXIBKAwYgFxYrcVWD/8P7yuBAYIa2Tc7noxT3SG8MXdtZtWMtsR
dzHNeu8bVU8r83rXsMr4uEmLlhRtAdTDKG7occISD1iHqCBEBGTmfbocC/a9pm+V5+f3tSp1cr24
2Wey1+x5F/MPLekWFvy4bTY6kQMHExI1OBusXAN34Xh+nldcaqcupUCakRvRXKd7fOPc2fh7++Hv
u+wBrbtKHAUfCaZfOx4ZdYIzJjAfDuvZAuP1CII9EE4P8DN29x81rZpnUwP1Uiu6W3REH9i0eW33
U6/HJs09E8a6q0geoi0P2LchQXCbI0kW3LtnMMvhYm2hHbmVbeAd2TZTzI6NKeFpu/pyqIjLcSeX
9EXEgEVxAI24xxzoXcJUXMgqRpjJbK46auT4gP6sHq+34ndKpZsBD7BZHNrYPq+/bJ9fnk6KNuZ2
nNfCtSkQc4nO0gMEyzCvJjJCrfcALgG38/z/2MjWCn7Tqsh7evMLJ4dgbK6beesZbdoZQJukMOOw
pxPwvyjw6oKiIuacyxv+5u1OmtM7JqIve6JPWffH4eHL0+MfTQeG4UXFEA2RwFIAUEg8Wi57EjH1
xoC2UJmv2685jn1uy+Z4tZF6NXTW8Jqxy2WYbdmehl0+MhglgQoCICPGRoXEWxOns4PlnFKOBezQ
iLfLMDD2hTIMXL1pRe0YzJrzvWdfPH87bsEXoh5e5SOlsJ6ZgEgkKPfE2pqp1CZJAMTMTHbpnozR
PrsDIOFLt382/tzeoThtJebAWOKOoVlGKmqOlwN0LIkAtygGuFIZO2PnHu9krBMZgG6KWWkGvpy1
om9Xz9OSvxa8GOY4ocI57HXEenkIRGqReJFgeple2f98tuu5FXXeZw5fGjZb29++PT4gq6vV9Nsx
i+IwiaKDFOCYE1G04DqBFQNhTROmeWQmC6OCeI+M/6kI52zxeEerpOE9JWfgaTyU4fnHw8vXddO+
hgDd7PaLmt0eXFGCUoZki5uK8VwGy4MlTBVXrFXB0PevE44HL9zN5ZufznC4aTIRy85E2OO5LnUG
49ijs28GpkDCsbITZaERwIvAfAjg3EgCUwr4Fk+JM2sy6592OR+0lWnYdGTCd7PrhRieT3sOWD1n
MNrMlWEQTC2emKKxLFNEJhKQiuFAPY35X96urDluI0m/878Ut+7jsc4ZzUgOxUj27ttGX7QYpkgu
STnG/34zC91oFFB9zAzDjrBEEYhCJlCVd345y7k3yzQEMNo5AozLu7tVJcD/UobG3oPA4kNmyGcj
Nai1lHEHAM1YIGpIUSkbrjTNRv+H9a2Nkm7JaDngqsfBPG0/HDT04BFchA3ddyUyzyIlCI4DXCh4
kRQ8glg8z4ZhP4b7t0/vcG1Gql6SCm9rXiG1e/3t7en5dTQnsMlL1CYvW50YzlXIkVNSbMZ8DQJC
K2y+c9Qzr4Kj13UNpuFBhyOIN5yq5VnceNPyYDqM6XmIdP26vd2v8alOnf8+zcjs/X+Obj42oONB
w5qaQOG7gNELtqL1XBdxwT+brX/KPZvd1vKjOzKT73PBk0qi3Vu1QEY3YuiBoalmoAWJBpGYMpge
lqO0LIH6GLNg6nyB0nTZhq5O4xz80s1Lu4eqq72ArQXP1X13YDNUgE/rsw0IvViYwmgRouJGDZ4k
BotoKKVclfZqHnMKFndyS8uK60g+sZlXq3zYHFUEvGFVU3e3DE+vNODvcvAqS0gKZTK8ZgVSkdok
s2Ra53KVjTp9xAm7YXJHy8S2Y+uIrZztk9e31dvYVu5q2rVGPhWoTwoGV6plmki7Kw72uk9WBCEp
T2cBYybLNlSB67+kSpo51vBPuzeEwj0Uj6rbQbcwlrUGgZKx8j8YSSwcPIJIUJrLIri+am/sF++/
z/3FlmijekTvlikt8LH/OHyN8t8oPmyNJ1OQjvsuS+0dAt6wEHG4gNHEIroFCy5kWgwXIVxXOto8
62SCa3rTjKfOHpd2Ad0ywcvFmN1q8/ZaJjGsGT6vl1RkB8pWB4TOw8YFxNDBvJJUHC55Ea5Ly8wf
dcqynN/XMml1j8ntxKx6vn/Yvfzvy9uxHmtoy3dMB/B6AkNgW/B6AnAGUpJLz5KPTLJTJlW7YEvO
MmqLv+QHi+pl9x08zrv7h13jgwklRQFHC94iGjQJ6PJYGWB8ALEoHfgepUvNfL2GGC3lkhjt+PHd
vOw2jcHJ9OC5FuGMwDYoJtHGQ2T1EHggFFNWhTofojnxdtolW3qWJZb4y/Uy7vuw+/KPzwfRUAs9
4YGFgjpmBaWt0aCYXRFg9pkilMqOBnF1YB7WPhOQh6st1duOjap384AkghdXlHEmhjwm2xurxVkh
nPSEc50wqCeHUGnxCpgJ2qfrOsz2Dzih6YaLLeG79ZJwY+bqYcz8OWcOukGXJOCgUyIDBtaDU/C6
KXgdWWeXaDK2luSc1A2bztc3rnM0jHN1xERFFYmfvvQTTNx5KTymZQwGHzMeD8+xqFVpBccDbHD9
ngmmhpSGifWmI27Wd/IEaMX9sb9oxK6onV9oSyXrHeHRe3DrYCt7xIdVJXjYzYVlE69KBFxqGprf
1nCz62mIHQK32xZo7/HXaQObaTAfbMlMIHgmY7Z6qKC9bVEkuuiCgU8MiuHd3fEpSaeQ9o53tEzb
HtNuHlIdZEEl+sPj3dOhqkJUnjUDpg1mn2rZPQMb1lvBCbfU52iLBLl9vTgaH3JOKo03tcz0ROqd
mqfS1qtNM/oDv6K6VfUrDj0iEQfiyBKJCQYlPoaSZADrtshgmaQJ3KBrOAqzJ00ZGa5N6Wd0iS6I
vzQHfbl5ev5jqi3BkBpbtQt3qRRNaG1UUw4MESEjODuZC7C/Gc/2hI6arjkjx3bIQWuigQb5mPzn
SfsTv5W3vBZWuwFnXmVFmbGCUOy6ESg5fRESjnjxCQzrIi6AZ+IDTmxruNKSbHdLkvlu7sncY1Xc
PlGG3x30AKpVH1NmOu8RnQPuYwMHWLvggRlu1AXotStLbD/sn37Cwdlfbfjid52doTAPqKZ8/fXD
16enh1r2xPfYibq2roOrjlXakbCYDNa6AWuxYKCoiKS4AX2i3yM2OhLQv3O8fNPysVTNsGFoJ61T
mnQyZnas2rughruQdPJgFGnwljK4+55JS4B1znIoiofLwHmX7e/pPTctwazDheMzA2P1esSjYWaP
1KEVqDohBVE8ws7LCCPOKi4G0O19Lu78AJ9x0ZaijjhkZkdns86ewVaa7MXbz/jvYbDVviWlFk3b
ZLkSWWBSpAxWuYsqEmV4DM7IbC+E1/8dzTbScqrOa3+54dvyjhCoFUWNGli0WaNW21cLDp3cJRVf
Es5zUogcIGghThlLJC2yaF4Uu8Dy2U7u/cWGdKeXnjfbrsWszqX2kYxHfQ7FmGx0LmtFisK6XI5O
KaUc7EXGooF9ai60CkyXP5WYPt7RMLDdLU1Czjamju6BDfrRf/bx70cFttcRJhvvgk2EaUS+dgxn
EGZKtBYBJJhW8P+fVF43pfCm5WKpDjkXaoHkt3rZfNvjv8q9cTgUVAVkEUNLHkNlQgdKnMiOgPEE
BrADv02q94NyGAk5ZQzvL9+0/HS+Xw3gz0I/tRkXyPsyiYzXglWKJ8cr4TzYD/AVFegblTP4KNQS
rOXPVijYrO8IWrGk5lR8aH5fy/t66dtyfUdn885+v8f1bgv4D4OUBJlxsIbrZy6Sh4JgOTQwjcwj
WjgFE5IFUxIYwyWqa6zHwxNO8L+/etNSy3os2OrDwIZ+qIjbx6wzP9iP4N96MHMDiAuk2QWcslgR
OJIIvrDkbd/Hna44I2UZ+eS1xqaRwkuNDnanHlR6ht0CElgTFbEMKOdALI5fwnoxcC1ALfLz5+W8
Oo//1VflvNM9D7908xTK2BBzqGssi160SWMP5/CCuaAkFuzORafQO2mIAqsTeMk0XZiysXjciT3e
3tUwtu6oF16n0MzM42Fe1AwSDV63zEIRAw7dkHx13ID0stwq+IPZchXa84dPpzf1cO2mJU/0aJ5H
nH7avZUvhxrDQdzazHWkzpGYHZZGMgdH0IM9L7OHrRg1E+e7KuqaJ8PmpSlg4LtVR3rs1qvZwLQ9
/Mfq8SAwa4QRyDJSIswIFn5w8DfxfSKaNk5TozT5q9In4+JnoUdW7W7frZfmt6CYCbVt79pPQy4M
XjLsaiy7qH9Xdxn8IwTQRmsVXrQEgWcUDuIqloEvaqm6YHof1j7Vf7a/fNOSaDp0281MXDdz0A5R
VC6HdgQWZRQC8Qtq5WYKHpyGEIkEBZaVk7Ek8S/PQLti/lnLiN12GFmPiNCH8lDWKT0V2RoVbSCF
IToww/yKxWGz3NlEleO+tok39QfNai0la9uhZDtvUYnffjz+dv/46/59jLNY0BVDMwfxiaNBZH60
nbH5zWmgKbGSadTcUnFVgfXsMSf2RntTy8526QiA77sZ0cE/Dq1zswFpUoE37ALGe3HMX6aMuBQs
KZI5a7K1Uuj3GpA2IaAhnXHeIV2OBTL/fN4cW7Ep6hg+ID7SmMDiKlLh6MsEZjROHQYrWkSaFLz8
fi/2uFxLhOycMGbGEt7nzer5GKOWdcYBS6KAY0QSygN4qCIO3BEMh/JMcxRJzZoxpos0T+dyacuI
5WTjA77U9+enV6z3VzXsIdjQNp1tcgmR3hN2GQnclc5xAf8E+QG+XNbhHTF4D1ScA+E93HPTsrXq
8bo+MzT0kApMFTdulpcEkZCEpJpEmRAKBMSyU7YQJULMJjDjvP9X8pLpJCTc9I4ZS8sSL2E3dDZE
exiI8LZ3Nmth0cSxZYP7VGfewZEEFzdbsJgwLVhASQYLZnVkOmhlNDjkF+qWJ4ufCC5P7rhp6e7s
RUc38woJPM1x9fz242XvG0zz+UVxl1OKJPOCFbCYJ65ND4UL7nRQUV0BDDdZ/kxcYXLXTUtzR9es
NuoQYr7f/EDbb5J5AkUjUMnDjomoygmPDKOjFjSNB18hBQUaFE5XtLI92bO1btpHLk1ssRFjOi58
9F8WUYKUnfAY2lY4mUxwjyE+HYlKJhmhQfm5P6sJ70hfw9amp8o3K7pM6tZzc//YYv0HOLScIh6+
wD5ghyZV5GAWFixcV0ZJe23H1bj+yTTKeEfLQSdnL7Z0PvT7r7v779vVw6FhbCgYi9ymEH0mlGE1
hBYeAYcrwJzAyjil+FWKf7/4iRjycLEhGru/l0QrNWt9HGTNj8f7t9dB0vz8OIRpGjGD5VhgtRKl
PHrvWhAvEsKeabCmTMrBlMtiBlc+I2Pw8oyDjuWFgb/2tfsM1rceklX4dz2YIM5BphuSpBNESO3B
eTCZ6FRAgcssnTHvF2vx+QRbueVnLTv87C3JYebian0/mg5ucJGZB4GeBAHHguMEBkWCMQUcTpFd
wfbsQhejG8dl2ufvOgdxezeaLt+GXURWr4/sWE9b02nVjAEFmb0HSeMCJhMctvsGhrB34DdGiSmT
lpLlgg09d9vO973bzhX81xinrR8g4qhRCeSBKQlzGkCBAvcklADWnBVgkcarQDFiPIGBEWNL5m7p
bEvK5imDSb83bp602n0fihuHytg6HlV4sEaiHDIxwoDaw7lrxHGlXWTc+ySvbVgf1u9xECbXb1qa
WY+RzXEu8tzqzz5iVY0mDGQwQT1DfAbLVTOZFdUhKc/fy+pfbhCgbdsjeNsfOdGkrofENW6XAAKK
YxO0KyB/wZwA4zuAJKCqCAP/lQsBj3PG7nBtRvOuQ7OYW0VYafF2/303KaJuA0s5ae80mBIFtV7G
sDEoQpJw4IHlHuElroqXfr0gxb72wr5yqBydc7GoBP/77mW9e3l6nerrwqj1JQcCjiG20nkc/4tD
U1OJWalciju/Zw6L9gk+XG3INaulU4a/7FRszLJtIGcxL19TWyKLAloayzUkSBYDvoEVKhMXoyzW
gvMp3gkLtnNjy89yvqWTK0w5qF4R0QFnRykJvg6Tt6Lmtz1wAJuFSESfFBxnA1qQloXbbLThMtHr
WonPFw41hK86Do5cLTGfXlav3/6xw4k/u5fj5KEhPqwEdrQErjx1OSJyCgPq4SeriyVUBWmFAb85
XWX29R51wmvr3NkyZzq7bLUaJ4S93W//ODoJOFOlQvUXo0wWkRiBiKZBB2IRB9ILJ12SWmo9g4Cc
rtMSsHIdAjajAfG3z/kvM+BtER2IiijAL1HwGqMHpe2DJaa4FDzHHaLfbfDI4ekt0Z2Ak1zdzXsV
vq8eHp6O0wgFGJ5DEkaDdpcIf2Uz5pt5Jh7bFrhLgsGBZcKe7SOfrtvQtaYdbbjejXCer//3cP+2
E8fPia+TUg4ud0FnBGeoukxBOlhFuFRWBYyixFkop1mmIWC3RPKHX6oR3PkFXu7D77du9DprvzqL
PCJwX2EI6gyGF4G3Y4nONEqWZPFNW/1imZaCjoGtmN31pvKczqxzjfBsEUxtDKvwjBMgGLyhEtAw
NCkYf3koz9kQxPSOKQM4H23JgN4XU88q9coXjDJhqKjm1ZSudm21E2rUW+MUHmdAT6G8YSbhkaFE
RiHBLhOqXDdSbvmsMzV7zX0NZ4Yvd6cycnumrbtWcD6i/8msHDJt+DfanSkjxKMjllWnLSG2IEgk
VlwETygIYdy1duf8aZd7vg93tvwtEdccxqs6Q9lfD6g0Q/EAG9rjBucI/A6N3VipNnomF0hwAjER
jLCOFmEvtO1fWcLVgOOcnuQ+3tKyajqsWjk2Pf+evnxeYCthq5PgIGNSwhY6i2neqCTJElSJlsUY
b/4sbKWRvpuWg7sOW9tehdqs30vsgTiYxDHtFS9VOZlr/SPzAoMkYKqAi0F0SYw77sCUFFdv0Mtd
X4vbpoxp5pbGl+aLrTmCzP/84TTQvbCSGZwsLhHZS+HQBI2zgzK1iXJEPHynSPtIywVE/AbLDNla
9Xhdz5TzGlTob2OHmEZftgSrdEyMcI8JLUcNAQUNVn9WMmjLTbH8nF6eLtmQpN3yuMDLHzN/Xz+U
+fxaULvUaa8J5TFiJWciTjnwWuFjSkEjzcW8k5FzfHpL9F2HaCd7QMtpP9Omznix+4GBBgQWqBmS
BeIsixgQgEYSzWkA5ynw7C63L5zLRwxXb1rqTI/k+TiEbiXkoQqS6wp3mCktPjOSPMIKZ9jqVoGj
oTQHayJK7Zx8Dyn8uSVlUfQ4Y8912EMMVjdl7y9fvrTxWti40fMgCQUfCRubgBmjFJxbHpgLKl5y
X2HFPo1woaXQ9CjczCvzUQVuHjCfDAZXxXKuP1TsRikKeHwkijoFCYPi1iWSwRK0KbKiwuXoTPx4
Wp/Fjw3BK9oheEWP02N++fTl88OPX+8fD37WLJyUXPQWQ4bMAK3CW0psAMtRgS+XS0KoYfFOM2T6
pLTssB47bGwMfF59n0xTGGoVRcxYpJQ8RgmoZySwAra4xY52MJ3h4M4Succ1Zs/uyIvtnZrVtNbB
5D9HLOHhoFmqahl+qq3oJkWnIwneCpzhRUFoiEIi7KukqOci2WuVJjzkzGj0n5uAKNCpe8TfLUAV
EVpiaOGdnrCQDKdgcRLwi3FsrUJw9ICVMTRrSwtW+VxH92H9c4gj80beOj5yQf1uYVlX+/wX36r2
W26GzCX8UGMUoMUL0J9zgv2sMP3nLM7aCfARsk1Z6at9hl/8GUfhF9/ysO2o7Ts+RvI3P55fj3tX
mAFRN4bEC42FFM9Ay2iQ2J4lhX3HUgepggizAP50nZv2WbxHwDgG7GH1+Ov99jgwEt+WU1JnjbM2
DU7T84GCoxhBXNHMS0rMgP3ePn66yuzxsvf4ebzv2+7huUbgh+EXFVU4Gy201CRRA2YLtrP7mCRB
OKkEOjhn8T5NH/DoU7m6h+cZM0svHNy/cwhee7SQuK9INOANmRo7rj9VNHcwGeCtEhCsYHgmqQga
toQxsG0tZV6z+H75ryM156BG5nl34FH2GJ/PZ/yfz3FPyVhUVV2/rAWIQFIyVlNr2NaOwYeMysCZ
5JmG69AVjqv3aT9eb2gXdnkA4Jdjrh5zEqtH8AXHSipTccvAweEh4qx3gRqQKxKKx4SQwlKOxKPo
t6TN15sRozrEbOBF6rYTqilMH85ErUyX2YHyDWA1oyGhFc5Vjppk7VlUIvpY3h/97kjNqb6oXmgc
2FpGzYzkdlGue3qOMUjmoEvxJAQsmVAgg7wzBkSCczpnVYRL1xXtXhxj/KlfTQ0Euw4XQh7k52//
fNj2R3QzwUyhpuAUJwQIrcVbQhEOklUk+KPQE3MaxiUbSmwHAsDUkYjN+1w/fYfXuG/dcGIYCYhI
CNhOoxMOdzI4pjKACwi+AM3So9d1VSY2wFP67aBP31ta7VJ1G4e1d25fqPP0+PtR78laPhIkWJxM
gZjH/LmF7wyUJcxjai64l0qLeYnOZJWb9lG893x5aFA/9LY/Pd7d//pjDzs/dqvrW1ZxJZyzMeg6
0kyi4ww/FRBhKjGPh43BhjzbOb9cfUZkRxisEZ9Q9EoEqwYZEEoEr413sQRgNCH+gADJanFml5cG
HH39/61dS2/iMBC++1fMpVKQtigJeSJxcCFELLjslrTdPVkpcduoPKokqNt/vzPhUWgJ2arrAxL2
ZPzZmfErnhmXlu+uZZlfim75Vs4OMZrHgH8wux5PRPqwDcLw5v6Be31yXHnRpfCUuCI/57xvnRsc
37DPdRxz/82P/Y57xWpsV/4Oe+sY9vfBv2sjnaDyOroReLhGIrtg0zQpVo997nByzdVyXb/b/2qk
k6q4JQi4dUx0LPfEjb7tScAmQBdOu47dw4WV3jLI4pqMUy5woPU9nO8s3rvo/5eTgH0E9Rf+GAv+
bI7GxTJJ77cHkZPVfI71t7EPuvFslsM8ThTcvcKyeFQZPGdLnHxynC2LOHtQ5Ql08Zjm24J22XdF
nD/J+2Umn9OkDcY6r4wRL6f4W6g26PuZuSpKx0ib/MOK69jrX2OPf/ZahT1Q1keOMnFdcbQ5vqU7
n6uT3Qggd7X7/UtxQsaL2SvQTpxKlvew2663IVoW8axj2qgFAjKVp4laFB2KqGgJzfLOGpC/oOSp
RC5XhURsq0X5UQ9rTDrkRMUWmm2eNdhtlhYUABeZEIAda9wBhPCChYVadAyn6QnNQK67qnBHbQrN
PKyoow81HbMOKkNGmo+IGLCrIByMLyH6/SOAinQzuIqu+Yh13lIV6aaYdUPIH+NMJVDa4+fHqQ3X
HLLeJqA8aiYtDNcRe94/YHlNXbA9g7KTyRqy7xP4PojgQS3KjwcJckfh+Zi8KlItKy+1qKSxwdrU
w+1D2yJAIYnX97YBG0Er+71ubrAhaquaAaccGC+mqgIvghB8NBp3TzeLjModsSXV4mSeLhqV1C3s
28nPUYoTzDMFMZqifhwHYNoOkka8O4Twml/1qhGQ9Z5gkyKePgHUgW22BGqRLNHyKKgmRVG2BLtV
d2RZK8r+qyQlLWFS9njE6wB4BEDKgeBhUENrm/gKpBwNLodBD2WhOvk+9YCUUfArOs3TsC0cCJD0
+nLQHfdOQ7AtlNl5qbRALjtOyLZOADbKNVdzmoFPasIntDYaR3xU92LJH064Jv0GKIGr/EAf1npQ
Jse3m67AMYb9BVBLAwQUAAIACAC9eF5HvNamZeEAAABMAwAAMgAcAGZhc3QvZG9tL29iamVjdC1w
bHVnaW4taGlkZXMtcHJvcGVydGllcy1zdGRlcnIudHh0VVQJAAPG6TNWxukzVnV4CwABBPUBAAAE
FAAAAO2RMU/DMBCFZ/orbixS4ziJnBavLUMFCBBIHRCD41zSE845cmwQ/56A2GAEiYHpLU/f6d5X
ykJlhcwqCYXSUmm1EaqqwfpBmHF0KA7YXFAUNy71xKIqxQ6f0flxQI4P9aY80+tONo9wHoIP4Lxp
iXvIL6kJJrzme44YGCO8A7I9T/ltIvt0TwPCJ3P8iHzr5yrHKb8y9vruS00DtPNZ5OXPs1dQ1upU
A3uYEkXTOAQaTI/Q+cStANhRCx1xqxcnv/HaYOwx8ytoUoSX4OcBTbBHimhjCrgov7W0/rf0pyy9
AVBLAwQUAAIACADieF5HRYdoXqI/AACI2gAAMgAcAGZhc3QvZG9tL3Njcm9sbC1yZXZlYWwtbGVm
dC1vdmVyZmxvdy1jcmFzaC1sb2cudHh0VVQJAAMI6jNW5ukzVnV4CwABBPUBAAAEFAAAAORbW5Ob
SLJ+PvoVPE2obaOuCwVVCh9HcPX0cbvttXyZcyYmFAiKbtaS0ACy3fvrT1ahC0io3Zrt2NiI7Qc3
DUXml1l5+RLw+7JIZFWNje3PFzl7k9cfZVV/WC+XsjR+tx1u/TF4H9d3+1Xwc/m5mK8Xsrr8/O76
09vw8tnl4a2Dq1Qu6zzLZTnuFz74LMsqL5Z7wWjgF6k0Pt6v5Pbkb9w2bcsY3sR1/k1eAJISxBrv
d8jf39d3xdL4ndkYgH6Q1apYVvlsvpFQ3Rm/Y0H+GHyqwJyrYK+MITwYBHEtLz/mi50+gjAzMTIp
MjAbI3uM0Mhh3DCRg9Dg3cTogn4bJwac/M3AaCRGzBhiGmFMrQtAsirKurUc44G7LJb3i2JdGZ8+
aSjctoTrUmqGBBGT+UFkOoHvm27g2R52bCZYOBgM/DKu7mRqfLwrZZzCfcgwgrxaxXVyZ/y5lmuA
nxSLUbxazeVoEedLs9ZLB4PwRyJXNSDYejX8zZ96bjB1fT+cTIzh5Or1JHz9+aK1Um0CuPZN+OFm
enXz2b2+guVB8EGtj2sD/UCdH8wHg89vjQ/yFm6ujBsZl7AG8/HANF8ZA+Wm6fRj+NtH4/BnKwA5
sySFA7N1Qgo4MH5XfiNv/jBK88dl+f2HMXn73/67Lz0BOBi4YH2exNqEyUomEHuJcbXMinKhT44H
xezvyXRR3U7kMh1eGJWcy6QuSmMZqwDIqzfy/ku+TIvvA/+DO/n16ua18TGcfBwbWVzVl2mxuKyS
spjPzVJ+k/HcnMusNotvsszmxffRXb2YDwbNHsEObTZtPH7kVsGeGvN8pjCO3FF6D8cH7vqvxvNO
lmU8SWSMhGO0TTKeG4QOMKzca2iSrleOdjTnls1JvEnO8fh9fCv9eQ45drVYzcfjvPqcy++NV9xE
5SA47rkB6THsLh0tFmPs4IsBOU+/sGnm0J1++K3kQn7/uB+P16sUElQhmNRwMFxDat8uIRPyZa1g
2I4xbN8xSlarMaQf5B89G0ZK+AkY7b+Gx5765UXnvqY06cVwZQd5Xixv9T+w+mM0Hn+Q2Uv3/dVG
ULHM8tt1qQP11S+/KOMIJlaPeZaNLgbW2dZZCTthXQLhB779l9llC2MIi0Z3Y8zIxYCdaUpCSMpO
Adtas7HwhFGPgslY4/yWdO1/QsTFwD4T9IzHyOkDXRTzJ8RMKfh2UqfX+Sz8UUMBAidTxi8Gzpl4
JZZZ2sarcrCpCK0/hjcTdfgM4L3ZnH724oSVj7ZBNDm91aHqimXZFwN+ngkxsSXBhvn7lzdKFFSM
vP6S13dRqYr9quX+pA1i/L1RPf4DoGCNRd+vYAgB4SrOhZEiFmsYG6MOkHS1a63YokrtZr3STB3Y
Q4x6CNpJzc4sxTOHgNM/gK/nca364Ebk0Ym9ts6OqM1Utyt97zQ3qMD2ZVU3weaoJtAVBHxINwIM
G4bxeXgltZC1VwhIatVsgT+OVxst/jZRNOh3qxg66pc3R5HUgHwYvcWN4UIuivJ+TGwODQOTM93L
iX0CbtKGqbZ6o374AB4CJHPYFdSUew49FdNzscVE9mOTy2pdNi11vVIUtdpgiYpSrd1jvFp+K5KW
PzVMLOxemDZSLrTOhClYTE64cLOfGukjofU7UFgMkLEzkckUKE6PPmBEcPx1w4I2vthfbggIhg6N
7XN9kdpxvy/K9VKbn9wBs25CW0eMRQ5D2DlXZyb4gzrzJTDLEhjudVGstM2Q2r1uxshWCPiZCOwE
n0ii7t9DYHwvjJYHnjUbQPrBWCppxJlYUMaloSi5Kg9KsjpW5YxBxydI03Pg5WkvOT+g50g6DDpo
VccwBILXdoMBHm+ZfnVf1XIx/SrLpZx3ZXZEUZZJCI3p9HtRfv1Try9lvS4VTIw0399LWzXTREdc
R5rloAxxY7tw+v3P5kCzB6TZ+1nSaDYTjZltUZjuDCYPTkDKpZuL5iJeQiUvz/aPjWzYra8wky1r
KMltr2xl92xZRwbj0gK2MN2uny5uy2mT6XqqElvHnCEQQ3noCty5h5Gde+iD7mnid7ThUdfxepnc
/QUPsVmMYwhthaO6nQIzXPUFzyMExSmk+FaQIvPWwcCXKVajInV09W5LjdoyoOKkHDIjL6YVVJY8
kdNbWU8Xyn6oNtuTCp7NDqa4n8umhGTcuHo3aaS8lvXbjeDJXi7hB/NTVKyXadNO+nZTEIc6KcfG
899vJlE+l1/AfysoJtMkXk7iTM7v38YrdaFya/2o7A/d0PHBbPNzNThDiQ1k8WYSxHU8bH5d7Bij
qnIQ49W7TCkbF03jHsuyLMqGOlr0YDT5uc50Zs+4Nq2jE26KH6WTiXOnC0ciCyrtdk4I7pfxIk+u
8yXEX7j8lpfFcgEq9QSjns88YgnAntQlbDOQvs2zAQHD80/v09MFOnu44ByLZP+0IE7T4H+vg5YC
N03zDeXbTnPdFB6Pm6MuEXxhzGAi2Y9QLYmf4zKPZxBizZCkqHdX4pZ6U3z2kMI5smhmnIQ610eb
05oFOEKcAkAt0swqewD/E3+LJ0mZr6BPl7IHACQtg1lrOp3+3w2FMVF8gST/myqGfFtAw5tJTadT
zDPQpnx2FX37FobhdDYvkq/tWm0Mt0viOTAByppR5KzineHZrFW8k3g+3yiKl+m0lHMZV00t0XPD
WbITwtO2bD3iaxXFWnEFrun+eb3GdmhLpG4j07TcUBkoRIqZn+cAkeAjiTsnY9U62Jki04w7LZFl
UdQHSB2mafOZO+W0paruILedlijrkabF5zEkmZ1gSNjSFPdpGZL1IAVQfhqlMovX8+ZhM1xa5LW5
KvOizOv7fz8ycJYMlEBj3SwsV8lUi1NzKWQZ+KKqp8tCvUbajHsq5aimBSDyxyo5wcU7PY5Cx88c
YUx/dORXQKJXzWEKesriXmpuxjQ7OEu8k1lJIx7q+FLq4jOFmqgLk4obi2sucJbQmZWmR0IVFdD1
19GN/jyBeEaOBJayWi/kVi7Et2M8eT3jZ3NnaAkPlwpKbN3lnrxWoCetFfipawX7K+NjTNX4WMnF
9ziHuM9voTP2pXzysAsFcmw7TZCxjJdFNZdS1Q2CdkNj8vz5CPfHYhtRnDE+oxzMTMdj6OjjcX2X
V5ttGI+14GkGnG6/ILkDFlSMx+nmAd/L1kuH/Sp97SUG/oR3Lyfnr4xXrWdEzuFI8VNqQgG1kxqz
hYrnZDxWLvy0rPN5FM8r2cK4XuYQolNFEl7uVqvXVnnydl3LH69+aWP9KxYpWxqG2DzvsrB62L9T
MLob2+zw1dBj7LNEtrfvVxmvYBOSGKbp23+9ffrRrGMMP+s3s2DS8Suix5hEEuvQJAiCZF2qrwcm
W+P02yhuDKfThbJgOgNSBwSaH77feYRGLGetIHGr+2XyMa5anlIgXhjfijw1hgfInl0ML16pLFAJ
8GG93D1rE8Bld6LU+zKLHr7KeQQ0gqCPKMXPWp6fbvJtulIvtl62cnENYl82OAHYP2PSs4sX/5RL
nkE8DDXwrTM0uLF+v8vPfFBlZxxmll2hnhXpva6sfNtGzpDkkHgvafeIjzrndw+aJcI4ErSr9vZ/
2sNCZ9ymviqk3WXefL4xgtRNZWlW+nn0v/MjsL+twcB/7PPxsI3C8JxQYCK+q16HKqOgkGqroPDq
35vk3Ac/FoeN6zFKCHh0s3MwEutnUltu+wR5w54ub2zjafOG/6fljejkzc3k04drf8fxr4s4/ffO
GBXGh08q28GMbTTLMIPt8aNNg9w8z30LUt8Xzf5zfJAjjxHLqGiL/aDzBGMbHxCpR8iKpcOMtqTd
V2jqgylx9tNglqknJurJbGc7h81+XhhqdivWZSLVCaVSP49Vs6Z9tqaUz8ANN5MmnoAQwZg1neog
w3w7Ez5B0eBPVzTEExcNZCSb7yy/5/Wd+vJ088GloT8+M4a2Zc7y+mI8MIwy/jHefwiJMYq5iHEC
F2anLiQ9FyTkZJm2L+x+lJI0PyGr2l1o3nuAj2wilfZV+wLjCHZPvbksq54LiKuPM0u+v8IlExZ2
bEfVilL04YLzGJ3QjvEpSzA5VqIepJWYHl1AtlZiHcuimbrAundwPENSWQIkuINr+4mkUWbzA1kY
EQtyJCnJuO9zVsMYXBe3eQJTsv/+U/OpL0zzoXrnob+O3Xz9u7vVGnxU1fFmvZhtP3eG9YOBly/j
8t64WsS3shoPtp+9/th98WqYRuek5IDceH702nqILoyXDGHmiTAyIy9AJvWZZXquRUzLDzFxHYEC
l796zKfZbZVAEo5xwMkss4znkEpwsyp96u7JXb7Y5JfGQwPLQpRSMwqFZVInck2BXGYyJAIkMBah
F/XhOSW1i4taR7g4tcE95IH5Z2gj8hxugl8jPMLouYLpeaHNCDGF5RKTMspMj/DIdKmPbCp4JJjT
B7Mrev/y8XLzTXd16R6saRvAHTE7NiCezZRjj1/O9AEnyApgawPT8T1m0gBh03Uc12TEijwsMEHU
Ob3f/YCba22ggtDsCKigXEBnOAZ6LW/j5L4XrmN5nggC14TMBj9japncJcjEUWiBBT7ngpyG2wh+
CHSzogOdWcfBG7MM0p8eQD8dHY7AnDFuRoHlmRQ5vulamJkRF9TBKEBRhE6gPh0Wm4strBgxmhxi
1SdVwh+5mfRitSIY5t0gNEPlZoohFoQXWWbkOHYQhjz07QcCgjzkXNLFals9WAVgddpYgXN8Xa+i
rVRjCEDhJkwJgBUWZdwJqEkjik1KRGR6HnNN8GvEcegHoe0C2Ilu35fX+ayEUnn5vsy/QbPdyawu
GyUt7M2JQYNLVXpgXpjt8e5OWpyrVz/qkx1jSKgYWSpK3cCinvBM5ofgQ98JTQF1xXSRLZCIhO8y
G2Ctq1LVqUt1c0sVZAURh6rgJENZNmvTkXyZFdtaaVkCtlApx8QPRAglm/thaFKXB6aHkA3B5tqh
J9R72KClvJF12Se1jSnGFj3CBNzd1pj229W4uvulpNoy2uyaPlAZQYVLXIHMwCVQdqgbmZyHzCSR
R7nrMB6F4fHGtXasR09/6PUs7NoVOz12JdZBGO4/C1H/BURyRDA2hrDdcKew0MhWzQpZsNd+BA5n
DuR5JJTro9D0XcsTjm9RYfPHhONeRb9N++tdUyTuMUVVquxwyngr0zx21/VdoT5ogMgdEW2IA1ZE
mHPbRczEPhFgBeewNz4yLRcjDK0NqgN+jBXHevqtOV7XtSrjx1YRCzZI9lp19Q6yAfGRusVijtoX
h6gyawF/iCLdncGiMMQmbBZBkePbyEUPRltL+E9suHo36OJkx+AtLg+2xE1TmLMqD6rOXr4xbIyA
OQSPVLVzAo9CbfZMKwzAFoFDKHS+b2LCOLEDCENiP2hGr5pOYO0XDLqIs2MzHBsd8AzlBc1DdWaM
lOuJb1MbCrGJIgylkEHrA3YZmcgChuHYURBE7EHM+2dQ/ZAPdkmrP71H+nLHNE6Pa23MLZxlia61
r6PfJndxKbdTH1hm691gYRTYHsQTEtwxqe3Ypud7xPQ9x6HI82yH4Acte7eSy9fX/Vib5Tk02GMI
Xfh20gM/RQcBpr60SmWtX3hUieYpTAcXZdaIgTW+iFzPAvZHoxBShBBsejbyzdCCcmBh6FjRo5Je
fdgVbBWd3rWjZR2jRNZTk2MmD2qyuu9Tnc8rVb/UcoLQiFq6C4YMGrADtTdENuwOjaD7Ch+bgRX6
BBhj5InosUVM6zgdU/ryoAu1J12gz2j8sIP/2L3CHDKqOBcJkc99GxoFlCYK7cLkNhZmQCDTWRBY
goStlt2W0NXryB69s1QHgwqk60+HURzYjNOA28CgPR/8pEoj9RwIZejBCCqOYMETRfFWeQfyDFvH
kGd81tOzNk/jqtG7yfZQMVike7D+rbLStYDBwigDcxjUSO4wE8isZTLPcgIbmBhh+KelfqfpZxVn
j6R/6f561+hZD5dKEDnJOfJlrZ6A1nGSFOtlrQNe8SmCVY0NHOwwwZmJKEzGFAZ403Oga8MI7yOE
hYfCR7Hgq40Wd6Ol36bDVYOuEX2WYbmN/PdAAjYRCA2Zq8KDrYg7FjZFpBKVBIq92y7QVYc6iHkU
Bo4HN0yX9FN9+cPm6aWOwJ3yDmQp0THkTBXQo2LjfvZ/DVTldHS5AXIBQTfSGQzUzxZAksIAZhCK
MDJ5QCKVRoxwFjkc8ceWG63ldLnRlzsWZLjH6XDykGQkiZxLoMBy9E0m12oP6EjAbZu/4A/F/niA
fN9xYGJxoSB4MLWKKLRN5BNmEZi6He8nJGOv5mfp0yjuX9ZcO7Czp1Zktr0tb+1vQ4aYID3N2jyI
fBgsEJgEQweHydsSUGh9FsE463jBQWVtCekqt3t6UpahnjB5H0RAQRsCChjcwPcDBIWIMAdaq29b
pvAtZNqOS5EvfA/K7GNjA0Sfjgy42IWc4T7I2UFcFFDBb+eblqCmgE1rQBGCkUxQ08OeDbwAaovA
kKiREEAJQof5zP/LraG51oY72zz77cCdIcwPPPxaLmUzx/0/cVfSHUdupO/8FT72BfWwL0esHs1z
j9Viu+dcq1SvKVJmkZrW/PqJQNaGTFSxxuazD36imdlAABmI+L5YwPnDPcCHCjcH/880radRSyPB
6lkCFAl23EfQ4QBf3YikNQ/UCSpv2fHOVP3VdF5sl8Z7S+PgmIdk/uJ/MQBDD7rL8SDSgCcQA4kM
QYF0kViqBeHwewMUGcBBbFW3GWU0/7ozP0Y6m63dfVuvl19mz+vl0+fHbcupUaN5dbX1Xwy+2BDA
PEuiuQCemAvYcAoAGHTD0ySCTfoNVzt/Xlyi7edUv0r1qSdUQ/THr7U7IKbHd+HUxhkxPr5/fp5/
+7Jd7jBugbCimnrnZkLNGMYuXChwnIMDoGQSAH9diMMoRiwA1xhguZD1mxDjMMnl03x4o1mGW0z5
5GJuxs5qKJc/oSQwPDPBq8vCH9AoSe1cyokohqCfajgi4IjBa9FgvJUhGvd+OKmV5wJYbN5pVr2Q
nY+3kJuD4d9HrlaPu92RpinOZ45XcwBGC5yABh/GQo2IGWKVEkDcsvdOqiJLvhYROxu3FUt1TvVC
sQPYGTZvFo4uiTmDcVak8nBQhCoRAEJGHTIA2byO4BMidy74bJJrD3c72EgO3pNDjuz81/nz8glx
12Ar4T9B+AUsVcYYwTlRAC7SgFp7EYmUyuroC2flJuz4Mw7e/7D1USPwqkNaFysjRlr87cvT4/qx
5rvqYdxHfinyVQPeU4scCJcSYIpE41OKJ4l5HXIC6ipu4qsfcY4hp3ZBL8/faFdhpnAE1qVGq/B/
va/JF7DMGsU3g3d1ySoGmArcqc0YZw9AUDMj3IDvkjwEsP03xQrr8BfCOfXZXSuf7gg9cbI/vz68
bF+eXuFADh3c546AS3UI6B5+xJCu5eBbHSdRC9Ak5SlxDgykT2ARCy8WuOVNmnR56karxq+1y2Su
t8z5wWKAqTk6W2QhmmsLa1GEWQ2IQZcMx4BKAkoWHONKyyr81EQcB2qnF7wzvR0r+Px1tX0amAX+
NLhYtnexuKfUFB4YFcRnDMUyZkkIEfCjNzwzESj8700rXce+wifwcSu97Sn2cnUpjlx1G1WbGzFT
eDq9KCVnHgmTqAuSehIcIIUcGJBxzCpSdlvA9Y1wayv3qif3yh7s8Z8/lBH5VAIhOOdEMgpWJBVw
5Vwg2YlKg95q6dU7kc/j5K3I657Ia3MQ+awV/JhdAlmNScmA5aCgFMECYwZTSAz3GYBtTqAZXV09
DdbIwOhiKgNjx237Y/58olWc1tgn4AjvDSPZ2YQhQ7C+knJQTgnYIdNs2IhWnQ3STt5BpkvgsyNd
u18vsSbi0BQLxLUqHAY/soneWTCcwQZQNSCtVqpEqE4q2oJh/5scQTvDBYjZvNOuQ7DeOvhhE9N2
/vnxaYeF7OvdDks1hmt3TgpZ6WpMgRZwBZF6PDdcAkAAcC2d0k4XmsJ4X6+P24qoe1u9HOciPtzv
DSoea1cDBArTQpllIQWoHeccPS4GBhIrpETwKMEUFhW9Kcp0f9WuHx+3si83HdlXbExg1stX7Ff7
skU6W4E7YDS0SM5ZBVbZE4qJH2F0DdCAYU1JOK28TMy+C1nZS/AfHy6q0P55u75Vx2GISQjnl18r
lDAzMxPofcHlDnA+ACOJmlEii8IKA0pJUEkR5YM1Soac9Rtpll8vooj66K4VrGO1wL2PpP17Td1s
tg8vewC3z2dh+AwBg4vUUquJs4DNheFgfCWH78KK0tYx6VK5ITX05icZXiuDGBeWeP5Ku1TZwUtA
xmt66OzQ/PX+9XkzX2Lmi9Vvg//gqXFCWlWTdAH0jgHWA3QPeheU4IFr6cQbHuYw8oXjcng8knre
kVrrgzXqldUCrAPKxBgAOvQyljFN0boHAdhaZEUBnwpJlNEpaaHBT8prpOl87Fa2TiANfjmu+xgy
wkts/t4utg9wZA4wQ+K+JkEBQQvgr8UDfDaYMlFApUoJydugdbD86r5Ox7+AMyfvjVazmq5GqsUB
aP7nRz7CHMwFYWLQJFqNGQoBGo+JqgAaUaySvAT6TpjjOPldK92yI7Iew7vtarc5FfWOaGMSWWup
AwAnwKSCJkGCLIYk7zy3AUxqvinC9iHdnyqHL2j4+SvtQnoOTRo10vK2avcnJfaFMj5IcApKg6VU
mDahmTiK8U1tcnSZUgCw1zS8GbcVzHSMhrTjKM3fFtu/v+4VezDnrjLywoKBkxYzoBohJBzBDGLZ
wGlyyrPiwi1bexi9v6uHp63cbhrQWCp7ZE3l6fHl4/x5B/joGNJAWq6RkBuuhBYc7YXGJBQDGwcc
MLJcMJagrb/uYM+uVr05ruR/vb/hGIzFvmuX10G/aq4Oax51/v4kAIW7gZ1FmaVnCICjAKcbMUJr
AJJ7yQ18KjCe2fSBeDNmK85c98SZH3R6OV9+WR9k0YPrhy3W4PUBkoO+JA/OBcssAoeP4KL3iYau
FGdDtSIspwU3S03HWOuXhDBc1by7GzJ5hVMDNi3lQgEgxgK64AO6Omlp0hJMxrtrwC8XMmW/NCky
EL+Dr7SYj9b0af31aX8X7DF2OqQWHFoMUeA0ajDYIiXkGowBPOcW9lt7B1Ykg++55WhOp7mkxeP3
2kWJjuoaNTbk8+/ndnxYjlZwbgctLpZzw5IlxiqHlR+gxSElIi2zlivFlb9eiud/e8uEn79x1wrb
seBmvZ5ggZc5VrBULzTkXi2WetBKSwD5ZuDsBZgShp0UJiDAp2oZJDO2xDcKGP5fgeyDJJewwvC0
XeO6Q13shOF+XD/XW6Qfl2v/OH/4sdtWyCwNIh7kXylE8Aouw/IkRc6NED8DQdTe5iIoM9ndFPGc
TnQh8Dl98a5dA+stTBws56c5ICf4j8cxl6S1zzoRFigcIgHY2DEwGMkJnw1lOprwTvinlWAkfIfC
WDuulbxfzh/wRiS82b0WPgwYnx3DD7EYqcD+ESMMqB9wSjB6gPQNNwl0Ubss7XvVt3WFuUAze6+2
G2BtbwOOwBUl+u3nNkihbLUYGU6ajtoBgnUanV8C7G0xBegoF9lkpcv71AxNhRitoYNk7QbIGWsi
8B2/AsgB3JeuJXBaVARjuY1gCRmRCmsFilGAacGwiJCK4DaVwNi/DsHAg3atmw6lcytzLH54/vHt
5WmGfyLAnnJg8HOthqMCQ0eGyBj1UOUVtAG2pF3IQDg4mMlRGcRkuEaaee/szy0fxytet8vfsZb+
rH5/qDvUwDXRqjGjgR7nSKLD1ohiMSSTwa9yaSUNAiycfOP87Ke4xOz3j1vxre6JP86CrI7BtYen
z0u8+nPZI0NUSqGCN8QwVJfMgEiE4MGsRa25Lsbrm8jQKZb3l6fP8TjdhQrK/sujZXayIPPl4gAm
568vxwYCZlUtBAWwDqc7o4JQWIy1yI8CVoOCocsGkKW3raqcRmknX3YO53wzruxL68Xr5/sfXxdP
WMfJhhwZ1dWzh5QTtURx4TEnA74Oy8NcUtEwXqiP5qZtPZvhwl6evdGsYdEp5FwutB01YtTbo36c
Ko/YjNPZUCogAIUAuS/KY5wcyYECXye1L0Uo0BcurlHM84FbwXqpjuXiaL3/+PrAZ8fIA9dD0jlr
G1BPdbIWmaWHs2YKccUEHbmjyow+7fkwd+1UnY+7XMvDxvyxe3g5q8UStcLYOOnggGjw+bgXWAlu
sPaAORocgLXIRrOfDdLOvp5WQSzXjm+4mf59i5+UGnLuuNbkrCRg5DNMC/rkhWZEA7EWzGWAV6EV
4Hycu3Yu0RPguP31QtCz9dd6Hs64Qz4kKZaNUOcx7gNoNRvLi9RGiVFsvxmlmX+jOvZrs1Cjs3Uq
IEVH+t9/8f+FKUZRgw1SiNkQjyrMFM84gUMvUa5EnIVTF4HOJylV8Tq/CaBx7MupOnzayr+Yyr+i
YjPJMD48Pd//eFyi2EM8v/6LrNcoHRyI6XzConUFGEQUR4yngWorrEn83Z31UZ5LS90/vmuWJWln
rfIYpXp9/J/t4zE6JVQNGxubYhTKEl4iHhGeAVY6RShTWMkcgVKbC/no02itGIZ1xHC6U7/423a1
fqrxerTFzNR6BVBQUBmgH1xjY7DCRlwHAkrOreAgXGD8TTWpI1/Wk/q4ldqZjtTL5bHyZ/dwAfIA
lMDCS0ydYwraMOy5TIqUwplLAgPapj1uo7FaOZarjhyb5WbFzx3BsXVZUGlmTFdFLTTzjFbH1EYE
kMNYQ5KWggYtaFJX4+hfe9JsOtIw7KZtvuX2sekmwj8fVZskEHdZr2iwDtEWRd7CNdZEKXBP4K58
obZI8x75sA+Pv18qI28gGYg/xbcrzsfVNB9TqSkwDh8KC9rqv8iOC48ZvizRXGms8fIkAOQliuWi
gI+oEO17JJOG+S8Q5vqsWRXvlB2uuDqmheOncv+6fTlyZIGqWwoQYTxgUUlwVM4G4r0zhFmmZUzO
WJda1W2HaSXohFjwlwcJfl//+Pr5uSmGEd7bZMGixkIp0h+MKHpKMreZecE94Ieuyp6PNRJi0xHC
TIxPQWaYts+1L+jHUWWZETM3ICoTIuAF2BYWahQkAoaJQLq5ABahklapV6824p7HGd62+OWG90cv
tSs3PQUw41Tpr8+vu5f8ff7wWj2S/4x/gO7Q1aRqw6z0CBOI9BnvQWCIJIGrWrDGgRqg3fymrEBv
ov6qem+OljZlFyslV5tl81G/7zsCh7jdkPpNXLIUCn47iXVNmWPLdiLZ+yjAkNHo6Ls1GVxpCfw+
6QeEBax7q1pfbKaoZRLw/tlvWO2kUBRYIDewyFxrynTCr2UJApTEmYlF/XOdFKfnoxV0Dps6dY/f
L5/X68dPa7zg55TVEDOFtidIaYFcBRKZwsReEFi5hVctMJ3xjDFZRoWpk+FaaeayI83cjWngdve7
f15sX56PcWpdzbuuxcpMK6zYhcMEBjFxA0yQGUBDgI6KVTzY685qNPolRt281K5i2VvFUk4A6/Jp
/qefdEVOtQElO5qdSwaTQtjojvdrUPgpuUxjYswx+xa6hiEvQSZ41Iq57lgbtRmnbgD73s8fV4un
P84rqVzhJmFFalRYj+EzFsOB7U+xAEUR2jGdbuxe349+sXt9/7yRXXdKNld6sxrJjs2rr9tDxzoX
A7djgPeLxQScx6R6PWtAq7BETjBwpSImc3O754crvZ4fWpk3HWNh9mWmHR62m317Xm/Wz+vH5frb
/BHTS0zvW1eqYaTKobrYWgiO3VcOg/xYr05TMh6+h7leLvLxOP5HHP8CUGlfumulX3SWdIoZff95
uzvWzkouhvojKl2kRmD9LHAyIAOOOCz9NDoGvKjASFn+FV1jrYDNwizvLMyuQb9WYwL06/qPF4wO
A/MRNUCMP9TUvHNcM+BAGfyvSBqL5W3CDvBgUrJJsLdzTTj4ZQXDp43YTkxjHfjLKjasEaHHcDvQ
9vEztiIfgw7K1KORRNC5RrQjJi2ZgE8TnCSAopwGtGQEG0V9Lgx5LtZ60Qm9rxfzcVZr/m3XthAN
HL7eDJAkTzHB7ikFRh3L8pwplpQopQnSqSTyzZdlfHzdHVpHrlyZcfZWu5j5lBuvgfFt1ptJSdL+
r0Dd1zs1O43nJXKZIygFcD7smjOa+KLBdUlXBLXKBKdvKoOfTHalPql5765dxXRpGyvN1CMMN0QN
eJtrNePVJ6TIBIAYYgGwYbESKA/8f/hcKWsNKjb0T14Ns1zgS3H/7K6VzHbEXYyDxoc6z/PEtt7X
ezI+dP3QkqItABoYxQ4RJyzxABWICkJEADbep+um9FCq+VZ2e/peu6ROqBS7R0bNS7u9yzwQMWNn
bLj2A8CwyIGDConq2wwmfgH6c7yQzSsutVPXIgjNyI1orlN8vXHuovva/0kkVPrapuAomBhQ/Vow
iBd6ccYEhpPhPFsgjB4xpAe+5gG9xW5DS1PpeJFZ10et6G7REX3OxrVf+z/qeKpxPBBJTFuK5MFZ
8YBlDxIEtzmSZME6ega7HK6G5tuRW9nmvCPbZgx5sa4jPG9Xn48JZTm0BklfRAyYUwbMhU3LwI4S
RrJCVjHCTmZz090Vpwn6u3p63orfyTRu5ngjyuJYBYZ/iHv38nyW8zCzYV8L16aAyyI6Sw8IJsO+
msgItd4DNgPYy/O/sQ6sFfyuXSLvrZtfuYriTz+pWh/v6qVf2hkAa6Qw47AkEuCzKPDpgqIi5pzL
G/bm7UKU8zdGoi97oo9J68/zx8/PT9+bAgbDi4ohGiIB5BNhJN5Vlj2JGLligPqpzLc1AA5jX+oB
HJ42Uq/mnTO8Zux6FmNbtudulw8EQElgUoBniLFRIW/VxOns4DinlGMBPTTi7SwGjH0liwFP71pR
Owqz5vxg2Re7r6eebiHqbUg+UgrnmQnwRIJyT6ytgT5tkgQ8ycyo7fNsjHZuLntzu8PceBPyMbdr
JYaQWOKOoVpGKmqIlBMvSiIAzYsBqlGGwtKpxTsb60wGYGtiktmAX04quber3ThjrgUvhjlOqHAO
SwUx3RwCkRrIfZGgepneWD58sWi4FXVapg2/NGxytr9+fXpEUlST0bMhCOEwBqGDFGCYE1G04DmB
EwNuTROmeWQmC6OCeI+A+bkIl3Tx9Ea7SMN7i5yAp6HLf/fj8eXLuqn+QoBu9g2IZt/UKUpQypBs
sUsVG/0tD5YAp3bFWhUMff8029DJfz+Vb9ruf3xptBHLzkbY00UhdQfjUOJyqKXFv1GCiZEoC40A
XgSGEwDnRhKYUiRrnhJn1mTWvz5xOmgr03zTkQm/zb6UYL47T9mzenFdtJkrw8CZWryCQ2NWo4hM
JCAVw4G5GTNKWTfDNAIw2jkCjMvNZl4F8L+VoVP0YLD4kFjx2UgNbi1l1ACQGesrDSkqZcOVptno
f7I8tHHSrRjtCrjqrWCc9R4OGhJgvK2CDc1rJTLPIiV42wqsQsFGUmAEsXieDcN2BvcPn97h2UhU
PRUVdmtcYLTe/R9vV9Yct5Gk3/lfilv38VinRzuyVzGUPfu20RdlhimSK1KO8b/fzEI3GgVUH7Nm
2BGWKAJRyASq8s4vf3t7fnkdzQnskRK1R8pWJ4ZzFXLklBSbMd2BCMMKe9cc9cyr4Oh1TXdpeNDh
COINp0phFjfetDyYDmN6HmFcv25vR/R8nLj7dZrQ2Pv/HN187GjGg4YlKYHCdwGjF2xF67ku4oJ/
Nlv/lHs2u63lR3dkJt+nUieFOLu3aoGMbsTQQkJTTeAKEg1C+2QwPSxHaVkC9TFmwdT5+p7psg1d
nb4z+KWbV0YPRUuHwXVYL1zddwc2Q0WMtD7bgFh+hYFVZATCrEYNnmQoRtJQSrkqa9Q85hTO6uSW
lhXXkXwVk7jtO90cVQS8YVUzX7cMT6804O9y8CpLSAplMrxmBVKR2iSzZFrncpWNOn3ECbthckfL
xLZj64itnO2T17fV2+uIsVezljVwqEB9UjC4Uq1yRNpdcbDXfbIiCEl5OotAMlm2oQpc/yVV0szB
a3/avSG26qH2Ut0OuoWxrDUIlIyF88FIYuHgEYQW0lwWwfVVe2O/eP997i+2RBvVI3q3zAiBj/3H
4WuUf6L4sDUcS0E67psUtXeIoMJCRLR6o4lFuAQWXMi0GC5CuK7ysnnWyfzQ9KYZT509Lu0CC2QC
wIoxu9Xm7XUyOWMO+OolFdmBstUBsdiw7h9BWTAtIxWHS16E67Ia80edsizn97VMWt1jcjsxq14e
Hnff/ufb27Gcaehqd0wH8HoCQ6RU8HoCcAZSkkvPko9MslMmVbtgS84yaou/5AeL6tvuK3ic9w+P
u8YHE0qKAo4WvEU0aBLQ5TGxbnwAsSgd+B6lS818vYYYLeWSGO348d18220ag5PpwXMtwhmBXURM
oo2HUN0h8EAoZnwKdT5Ec+LttEu29CwrFPGX62Xc93F3949PB9FQ6yThgYWCOmYFpa3RoJhdEWD2
mSKUyo4GcXVgHtY+E5CHqy3V246NqnfzgCSi4VbYaiaGNCDbG6vFWSGc9IRznTCoJ4dQafEKmAna
p+satPYPOKHphost4bv1knBj5uphTJw5Zw66QZck4KBTIgMG1oNT8LopeB1ZZ5doMrZWtJzUDZvO
1zeuczSMc3VmAdYL/RB/vJtUyE7QzbjzUnhMyxgMPmY8Hp5jTajSCo4H2OB/Ft2ssfcbUhom1puO
uFnfyxOYDw/H9pwR+qE2TqEtlax3hEfvwa2DrewRcFSV4GE3F5ZNvCoRcKnnZn5bw82upyF2iARu
W+S2py/T/i/TQCbYkplANEbGbPVQQXvbokh00QUDnxgUw7u741OSTkG3He9ombY9pt08pDrIgkr0
h6f750NRgqg8awZMG8w+1ap1Bjast4ITbqnP0RYJcvt6cTQ+5JxUGm9qmemJ1Hs1T6WtV5tmlgR+
RXWr6lccWiwiTliRJRITDEp8DCXJANZtkcEySRO4QddwFGZPmjIyXJvSz+gSrg5/aQ76cvP88sdU
W4IhNXY6F+5SKZrQ2uelHBgiQkZwdjIXYH8znu0JHTVdc0aO7ZCD1kSDrPEx+U+T7iF+K295rUt2
A3C5yooyYwWh2LQiUHL6IiQc8eITGNZFXEBjxAec2NZwpSXZ7pYk893ck3nAorJ9ogy/O+gBVKs+
psx03kMEB9zHBg6wdsEDM9yoC1heV1aoftg//YSDs7/a8MXvOztDYR5QTfn624fPz8+PtWqI78H4
dO38Blcdi5wjYTEZLBUD1mLBQFERSXED+kS/R2x0JKB/53j5puVjqZphw9BOWqc06WTM7Fi1d0EN
dyHp5MEo0uAtZXD3PZOWAOuc5VAUD5eR2C7b39N7blqCWYcLx2cGxur1COfCzB7oQitQdUIKoniE
nZcRl5pVWAmg2/tc3PmJMOOiLUUdccjMjs6GZ72ArTTZi7ef8N/DpKR9R0etObbJciWywKRIGaxy
F1UkyvAYnJHZXgiv/38020jLqTKp/eWGb8s7QqAW5DRqYNGljFptX2w3NEKXVHxJOCBIYeO9oIU4
ZSyRtMiieVHsAstnG6H3FxvSnV563my7FrM6l9qGMR71ObZfstG5rBUpCstaOTqllHKwFxmLBvap
uVBpP13+VGL6eEfDwHa3NAk525g6CwY26Ef/yce/HxXYXkeYbLwLNhGmEUrZMRxqlynRWgSQYFrB
/39RddqUwpuWi6U65FyoBRDe6tvm1z2gqNwbh0NBVUAWMbTkMVQmdKDEiewIGE9gADvw26R6PySE
kZBTxvD+8k3LT+f71QD+LPRTe1mBvLtJZLzWe1I8OV4J58F+gK+oQN+onMFHoZZgKXy2QsFmfUfM
hyU1p+JD8/ta3tdL35brezoboPX7A653W8B/GKQkyIyDNVw/c5E8FMSaoYFpZB7hpymYkCyYksAY
LlFdYz0ennCC//3Vm5Za1mPBVh8GNvRjhXA+Zp35wX4E/9aDmRtAXCDNLuDYvgpgkUTwhSVv+z7u
dMUZKcvIJ681NubEWNpDbRtVelDpGXYLSGBNVMQyoJwDsTjPB+vFwLUAtcjPn5fz6jz+R1+V807z
OfzSzVMoYz/Joa6xLFq5Jn0xnMML5oKSWLC5FZ1C76QhCqxO4CXTdGFsw+JxJ/Z4e1fD2LqjXngd
azIzj4cBRDNEMXjdMgtFDDh0Q/LVcQPSy3Kr4A9my1XwwR9+PL2ph2s3LXmiR/M84vTT7q3cHWoM
B3FrM9eROkdidlgayRwcQQ/2vMwetmLUTJxvSqhrngybl6aAge9WHemxW69mE7j26Bmrp4PArBFG
IMtIiSgdWPjBwd/E94nwzDiei9Lkr0qfjIufRe5Ytbt9t16a34JiJtS2rV8/DbkweMmwq7Hsov5d
3WXwjxCRGa1VeNESBJ5RONmpWAa+qKXqgul9WPtU+9b+8k1LounQbTczcd0M1jpEUbkcqvlZlFEI
bP+vlZspeHAaQiQSFFhWTsaSxL89VOuKgVotI3bbYWQ9QgwfykNZp/RUZGtUtIEUhuC6DPMrFqeX
cmcTVY772mXd1B80q7WUrG2Hku28wyP++v3pt4enL/v3MQ73QFcMzRyE940God7RdsbeMaeBpsRK
plFzS8VVBdazx5zYG+1NLTvbpSMAvu9mhJv+OHSezSZuSQXesAsY78W5cZky4lKwpEjmrMnWSqHf
a+LWhICGdMZ5h3Q5Fsj862Vz7GSmqGP4AJhIYwKLq0iFsxQTmNE4xhasaBFpUvDy+63M43ItEbJz
wpgZS3hfNquXY4xaVtB8lkQBx4gklAfwUEUcuCMYDuWZ5iiSmvUyTBdpns7l0pYRRssFgs0Az/T1
5fkV6/1VDXsINnQdZ5tcQujwhE06Anelc1zAP0F+gC+XdXhHCNsDFecwbA/33LRsrXq8rs9MoTyk
AlOFXZvlJUEkJCGpJlEmRNIAseyULUSJELMJzDjv/528ZDqJqDa9Y8bSssRL2A2dTWUeEPbf9s5m
LSyaOLZscJ/qEDU4kuDiZgsWE6YFCyjJYMGsjkwHrYwGh/xC3fJk8RPB5ckdNy3dnb3o6Hxscz3N
cfXy9v3b3jeY5vOL4i6nFEnmBStgMU9cmx4KF9zpoKK6AldtsvyZuMLkrpuW5o6uWW3UIcT8sPmO
tt8k8wSKRqCShx0TUZUTHhlGRy1oGg++QgoKNCicrmhle7Jna920j1ya2GIjxnRc+OjvFlGClJ3w
GNpWOOpKcI8hPh2JSiYZoUH5ub+qh+1IX8PWpqfKNyu6TOrWc/Pw1ELlBzi0nCKcvMA2WocmVeRg
FhYsXFdGSXttx9W4/sk0ynhHy0EnZy+2dD5F+m+7h6/b1eOhYWwoGIvcphB9JpRhNYQWHvF6Kz6b
wMo4pfhVin+/+IkY8nCxIRqbp5dEKzXrHBxkzfenh7fXQdL8/DSEaRoxg+VYYLUSpTx671oQLxKi
hmmwpkzKwZTLYgZXPiNj8PKMg47lhYG/9rX7DNa3HpJV+Hc9mCDOQaYbkqQTREjtwXkwmehUQIHL
LJ0x7xdr8fkEW7nlZy07/OwtyWGI32r9MJoObnCRmQeBngQBx4LjAANFgjEFHE6RXcHu5kIXswDH
Zdrn7zoHcXs/mi6/DruIrF6f2LGetqbTqhkDCjJ7D5LGBUwmOOyWDQxR48BvjBJTJi0lywUbeu63
ne97v50r+M8xTls/QMRRoxLIA1MS5jSAAgXuSSgBrDkrwCKNV2FKxHgCQiLGlszd0tmWlM1TBpN2
adw8abX7OhQ3DpWxdd6m8GCNRDlkYoQBtYeDvIjjSrvIuPdJXtvvPazf4yBMrt+0NLMeI5vjoN25
1Z99xKoaTRjIYIJ6hvgMlqtmMiuqQ1Kev5fVv9wgQNu2R/C2P7GhSV0PiWvcLgEEFMceYldA/oI5
AcZ3AElAVREG/isXAh7njN3h2ozmXYdmMbeKsNLi7eHrblJE3QaWctLeaTAlCmq9jGFjUIQk4bwA
yz2iM1wVL/18QYp97oV95VA5OudiUQn+99239e7b8+tUXxdGrS85EHAMsZXO4zxZnMKZSsxK5VLc
+T1zWLRP8OFqQ65ZLZ0y/GWnYmOWbQM5i3n5mtoSWRTQ0liuIUGyGPANrFCZuBhlsRacT/FOUKqd
G1t+lgMTnVxhykH1iogOMDVKSfB1mLwVNb/tgQPYLEQieKPgOGzOgrQs3GajDZeJXtdKfL5wqCF8
1XFw5GoJmfRt9frrP3Y4MGf37Ti4Z4gPK4EdLYErT12OCDzCgHr4yepiCVVBWmHAb05XmX29R53w
2jp3tsyZzi5brcaRU28P2z+OTgKOJKlI98Uok0UkRiAgaNCBWIRR9MJJl6SWWs8QFKfrtASsXIeA
zWhA/Oen/MMMt1pEB6IiCvBLFMMh7aC0fbDEFJeC57hD9LvN7Tg8vSW6E3CSq/t5r8LX1ePj83G8
nQDDc0jCaNDuEtGjbMZ8M8/EY9sCd0kwOLBM2LN95NN1G7rWtKMN17sRDfP1fx8f3nbi+DnxdVLK
weUu6IzgUE6XKUgHqwiXyqqAUZQ4C+U0yzQE7JZA+PBLNWIjf4OX+/j7rRu9ztqvziKPiHtXGGIi
g+FF4O1YojONkiVZfNNWv1impaBjYCtmd72hNqcz61wjulkEUxvDKjzjAAUGb6gENAxNCsZfnmlz
NgQxvWPKAI4XWzKg98XUs0q9codRJgwV1bya0tWurXZCjXprHGLjDOgplDfMJDwylMgoJNhlQpXr
JrItn3WmZq+5r+HM8OXuVEZuz7R1DyPu0f9kVg6ZNvwb7c6UESHREcuq05YQmg8kEisugicUhDDu
Wrtz/rTLPd+HO1v+loBlDuNVnSnfrwdQl6F4gA3tcYNzBH6Hxm6sVBs9kwskOIGYCEZYR4uwF9r2
ryzharBlTo8GH29pWTUdVq0cm55/T3efFtBE2OokOMiYlLCFzmKaNypJssw4i70Y481fBU000nfT
cnDfYWvbq1Cb9XuJPRAHkzj3u8KNKidzrX9kXmCQhOHQdjDSS2LccQempLh6g17u+lrcNmVMM7c0
vjRfbM0Ro/3nD6dx4oWVzOCoaonAWApnDmgcvZOpTZQjYOA7RdpHWi4AyjdQYMjWqsfreqac16BC
fxs7xDT6siVYpWNihHtMaDlqCChosPqzkkFbborl5/TydMmGJO2WxwVe/pj5+/yhzAeigtqlTntN
KI8RKzkTccqB1wofUwoaaS7mnYyc49Nbou87RDvZwylO+5EwdUSK3c/bMyCwQM2QLBCmWMSAADQ4
o54GcJ4Cz+5y+8K5fMRw9aalzvRInk8T6FZCHqogua5ogZnS4jMjySMqb4atbhU4GkpzsCYizmyX
7yGFP7WkLIoeZ+y5DnsIYeqm7P1wd9fGa2HjRs+DJBR8JGxsAmaMUnBueWAuqHjJfYUV+zTChZZC
06NwM6/MRxW4ecR8MhhcFQq5/lChD6Uo4PGRKOoQIQyKW5dIjjg6PrKiwuXoTPx4Wp/Fjw3BK9oh
eEWPw1d++fHu0+P3Lw9PBz9rFk5KLnqLIUNmgFbhLSU2gOWowJfLJSFSr3inESx9Ulp2WI8dNjYG
vqy+ToYRDLWKImYsUkoeowTUMxJYAVvcYkc7mM5wcGeJ3OMas2d35MX2Xs1qWuuk658jlvBw0CxV
tQw/1VZ0k6LTkQRvBY7AoiA0RCER9lVS1HOR7LVKEx5yZtb2z01AFOjUPeLvF5iECC0xtPBOT1hI
hlOwOAn4xTj1VSG2eMDKGJq1pQWrfK6j+7D+OcSReSNvnb64oH63sKyrff6Lb1X7LTdD5hJ+qDEK
0OIF6M85wX5WmP5zFkfVBPgI2aas9NU+wy/+jKPwi2952HbU9j0fI/mb7y+vx70rzABIG0PihcZC
imegZTRIbM+Swr5jqYNUQYRZAH+6zk37LN4jYJyi9bh6+vKwPc5bxLfllNRZ46hKg8PofKDgKEYQ
VzTzkhIzYL+3j5+uMnu87D1+Hu/7dff4UiPww+yICsqbjRZaapKoAbMF29l9TJIgnFQCHZyzeJ+m
D3j0qVzd48uMmaUXDu7fOQSvPVpI3FckGvCGTI0d158qGDqYDPBWCQhWMDyTVAQNW8IY2LaWMq9Z
fL/815Gac1Aj87w78Ch7jM/HG/73p7inZCyqqq5f1oLjPPmM1dQatrVj8CGjMnAmeabhOnSF4+p9
2o/XG9qFXR4A+OWYq8ecxOoJfMGxkspU3DJwcHiIOCpdoAbkioTiMSGksJQj8Sj6LWnz9WbEqA4x
G3iRuu2EagrThzNRK9NldqB8A1jNaEhohWOJoyZZexaViD6W90e/O1Jzqi+qFxoHtpZRMyO5XZTr
nh4DDJI56FI8CQFLJhTIIO+MAZHgnM5ZFeHSdUW7F6cA/9ivpgaCXYcLIQ/y87d/PW77E66ZYKZQ
U3AIEgKE1uItoQgHySoS/FHoiTEH45INJbYDAWDqRMHmfa6fv8Jr3LduODFM1EMkBGyn0QlnIxmc
8hjABQRfgGbp0eu6KhMb4Cn9dtDnry2tdqm6jcPaO7cv1Hl++v2o92QtHwkSLE6mQMxj/tzCdwbK
EuYxNRfcS6XFvERnsspN+yjee748NKgfetufn+4fvnzfo7aP3er6llVcCedsDLpOBJPoOMNPBUSY
SszjYWOwIc92zi9XnxHZEQZrxCcUvRLBqkEGhBLBa+NdLAEYTYg/IECyWhx55aUBR18bNN+NlPxP
DYc8Xr9paeQ9whdt1/919+PDl8MMgyP8g7cFgStDxOmOYJET74skzMMXdp6CzL0OBn5c/YQ1Nl6f
0S56tM9nZ18cFAKHV1OWLdhI2BfMOcdRN4poj9BcwhgXy58dFHJq7AcQLHpbR5ozFX2HSMB+vhWo
Xa0SGFZUMOy4xuaUAILW/V9rR9ejJhB8318xL5dg0hhUUDDhgQolHCKt4l37RDhZT3ICF1hzvX/f
2UUttiK5tPNg4u4wX8wwy7K7o2G+U0zr85f/MhPQlKB7wR8h9s/j1LhfJOn2NBG5OmQZ8p+iDWbx
fl9BFicUnt6hYDtawmtZYPKpMFuyuHymYgaa7dLq1DEVtmNx9RJtizJ6TZMpDOo2UWI92uAvo1OQ
m40VZeJgpGP7JeMu8vK/kcc/Da3QAoIfPygTxxVX1dFxmPMxnuTBB35cbdO+vMxGkO/fgb+J855i
C+fX9SmEBYv3xlAd9Sc+lLRKE5ozgxck1HxJ0e56UL2h59EkKg4sQtkOufiohxwTA/NhX/cldXjX
I49lynj9WCTCBTiTxjcAB96wk9Hc4IttPGmAVM+sdG0yrJsajAzZk2RsumCGhCRdR1ZAlrbjBgsI
f3y1oQUe3GW4NufE+A1tqMduMnOg2sUlTUDsx6+uYw9QXmId67FjZPKBYV3w5s8LFK0v+6Sxoewm
KB65X8G9G8IzzcXHgwSpo/P8DVobqlSKRS006R1l7cvO6aJTF6CTxPW6bUAl+Mi+YeYe8TBa6R5M
3gJBvqEt8qIQvjmfB7PbavFN5Yp/QpXiJEvzXiv2CG27+jZPMcG88hpAouL8dbroSWQVmjMPnLW5
tNolUMf8NqxYvHmBDuAFzn2MokhIa4b2DdQxV+uRPvGdtb6wXxuqNh6gWlFkmaHZIcBQ6498RHV9
07E7cNWhxqnO3YVnW+gL7aDrXK0oCu3vYYcBVAUfBIi6XrizwLotgqqgz2YiaIEf2XFDLZWrdQyu
jGY8A9+MhA9EbRiE5hw672x/4tSonwA98FBdxEMdBwLG4wk3FhDyC1BLAwQKAAAAAACgeF5HAAAA
AAAAAAAAAAAAEAAcAGZhc3QvZG9tL1dpbmRvdy9VVAkAA4vpM1YM6jNWdXgLAAEE9QEAAAQUAAAA
UEsDBBQAAgAIAKB4XkfQ7zPqzAAAADQBAAA5ABwAZmFzdC9kb20vV2luZG93L2RvbS1hY2Nlc3Mt
ZnJvbS1jbG9zdXJlLXdpbmRvdy1zdGRlcnIudHh0VVQJAAOL6TNWi+kzVnV4CwABBPUBAAAEFAAA
AH3PwWrCQBDG8btPMS+QsGsMpnsrMQVRiGwtPZQS1uwnXYybsLOCvn0TSwuF0vP8h/nNXMg8kSLJ
BMlciYXKi7QQS3rFYePiHhz1xXuEt3yZPSi5ENk7VVrXWlHTlE8velua9gOqDDARe3PowI/err3F
FUwBPPSeQe19TgnFKaH2eAld006rzU9jujGyN8LVceSUqhDK3kKRTGfzP53Fv85fQI0vQnUe4m2H
wOMN+Pgc+4DarxyfRnY9wKtv613KZLwlN71DR+M62HT2CVBLAwQUAAIACACdeF5HOjA5GJIAAAD+
AAAARAAcAGZhc3QvZG9tL1dpbmRvdy9kb20tYWNjZXNzLWZyb20tY2xvc3VyZS13aW5kb3ctd2l0
aC1nYy1jcmFzaC1sb2cudHh0VVQJAAOK6TNWiukzVnV4CwABBPUBAAAEFAAAALXOSwrCMBAA0L2n
mF1XNWkxCF1bNxaFoLgQKfmMbaB0ZCZFenu9hO8Er7X2Yhs4ujRhhEzA6CIU6ibIovySpugpqy55
dryqjgZRh+SGmSSnYPFNnEXd0Z9SvqJku8wzcl/rypSVLvW+rHa10abHj1TabAM7GYsGHi3zTFA/
4UwgSxjh9RsAMcTEGDLx2vy9sfkCUEsDBAoAAAAAAKZ4XkcAAAAAAAAAAAAAAAAMABwAZmFzdC9l
dmVudHMvVVQJAAOY6TNWDOozVnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACPeF5HWCpndTkAAABD
AAAAMgAcAGZhc3QvZXZlbnRzL2Rpc3BsYXktbm9uZS1vbi1mb2N1cy1jcmFzaC1zdGRlcnIudHh0
VVQJAANu6TNWbukzVnV4CwABBPUBAAAEFAAAAMvNLy1O9c0vSw3JV0hLzMxJTVEoAbIy81IUEhVK
EovSU0sUyjJTyxUSSxQMDQwM9AzAQMcUzuQCAFBLAwQUAAIACACVeF5HMLVt4zkAAABDAAAAKwAc
AGZhc3QvZXZlbnRzL21vdXNlLWZvY3VzLWltYWdlbWFwLXN0ZGVyci50eHRVVAkAA3npM1Z56TNW
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
xegeFygNbILCuLbhFifri5bwCQN3Fy6btzUshs6Z5KTfKPTAfXpiD7kd8EfDSNIODEfkL1BLAwQU
AAIACACgeF5H2wjTQjsAAAA/AAAALwAcAGZhc3QvZnJhbWVzL2ZyYW1lLWRpc3BsYXktbm9uZS1m
b2N1cy1zdGRlcnIudHh0VVQJAAOL6TNWi+kzVnV4CwABBPUBAAAEFAAAAHMsKUnNLShRKMlXSM0r
LE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBAoAAAAAAKZ4
XkcAAAAAAAAAAAAAAAAMABwAZmFzdC9pbWFnZXMvVVQJAAOX6TNWDOozVnV4CwABBPUBAAAEFAAA
AFBLAwQUAAIACADieF5HapBXugNBAABh9gAANgAcAGZhc3QvaW1hZ2VzL2FuaW1hdGVkLWdpZi13
aW5kb3ctcmVzaXppbmctY3Jhc2gtbG9nLnR4dFVUCQADCOozVonpM1Z1eAsAAQT1AQAABBQAAADs
XFlv20i2fr78FXxqyEko18pFyBiguKQ98XYtO2kgCASKLNq8kSk1RSVx//p7qqiFpCjHmgkGwbgd
IJLJ4jnf2U8t5lUxi8ViMdDXPx/F5H1W3ohFeb3Mc1Honzi3+WftKirvt6Pg5/jDbLp8EIvjD5dn
t+fB8avj9qPaaSLyMkszUQy6iWsfRLHIZvmWMNK8WSL0m8e5WF/8wzYNk+m9i6jMvoojQFIAWf1q
g/zqsbyf5Qoo+6xdi8V8li+yyXRFYXGvf8IO+azdLkCcU3/LjCOsaX5UiuOb7GHDjyDMDYwMinTM
B4gNKO0ThnQDWQhplyO9Cfo8inW4+IeOUd/pc72HaYgxZUeAZD4rytpwjDU3n+WPD7PlQr+9VVBs
kzmuS6kREEQM7vmhYfmeZ7j+0Bxiy+QODzRN84pocS8S/ea+EFECzyFd97PFPCrje/3PpVgC/Hj2
0I/m86noP0RZbpRqqKYF32MxLwHBWqvBH9546Ppj1/OC0UjvjU7fjYJ3H45qI6URQLXvg+uL8enF
B/fsFIb7/rUcH5U6+o4aP9jWtA/n+rW4g4cX+oWIChiD7YFmGCe6JtU0Ht8Ef9zo7Z81AWTjCYUv
Ru1CnMIX/ZPUG3n/WS+M78fFt+/66Pwf3uXHDgfUNBekz+JIiTCaixh8L9ZP83RWPKiLA202+b94
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
LWJsb2NrLXRpbWVyLWNyYXNoLWxvZy50eHRVVAkAA73pM1a96TNWdXgLAAEE9QEAAAQUAAAAtc5B
CsIwEADAu6/YW081TbWgPVsvFoWgeBApSbO2gZKV3RTp7/UTzgumMeZiajjaMKGHRMBoPWTqJsii
3Bwm7yipNji2vKiWBlGHYIdIkkJv8E2cRN3RnUK6oiQzx4jclYWucl3kpc71brsp9x1+RBfVumcr
Y1bDo2GOBOUTzgQy9yO8fgMgBh8Y+0S81H9vrL5QSwMEFAACAAgAuXheR9sI00I7AAAAPwAAAFIA
HABmYXN0L2xvYWRlci9kaXNwbGF5LWltYWdlLXVuc2V0LWNhbi1ibG9jay1pbWFnZS1hbmQtY2Fu
LXJlbG9hZC1pbi1wbGFjZS1zdGRlcnIudHh0VVQJAAO+6TNWvukzVnV4CwABBPUBAAAEFAAAAHMs
KUnNLShRKMlXSM0rLE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgA
UEsDBBQAAgAIALp4XkfbCNNCOwAAAD8AAABTABwAZmFzdC9sb2FkZXIvaW1hZ2VzLWVuYWJsZWQt
dW5zZXQtY2FuLWJsb2NrLWltYWdlLWFuZC1jYW4tcmVsb2FkLWluLXBsYWNlLXN0ZGVyci50eHRV
VAkAA8DpM1bA6TNWdXgLAAEE9QEAAAQUAAAAcywpSc0tKFEoyVdIzSssTS1NVUhUKM8vylbIBEoo
lGdk5qQqQMQzixWSUjPz0hUKivKTU4uLU1P0uABQSwMEFAACAAgAwXheR9sI00I7AAAAPwAAAC0A
HABmYXN0L2xvYWRlci9yZWxvYWQtcG9saWN5LWRlbGVnYXRlLXN0ZGVyci50eHRVVAkAA8npM1bJ
6TNWdXgLAAEE9QEAAAQUAAAAcywpSc0tKFEoyVdIzSssTS1NVUhUKM8vylbIBEoolGdk5qQqQMQz
ixWSUjPz0hUKivKTU4uLU1P0uABQSwMECgAAAAAAxnheRwAAAAAAAAAAAAAAAA4AHABmYXN0L211
bHRpY29sL1VUCQAD0+kzVgzqM1Z1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAxnheRwAAAAAAAAAA
AAAAABkAHABmYXN0L211bHRpY29sL3BhZ2luYXRpb24vVVQJAAPT6TNWDOozVnV4CwABBPUBAAAE
FAAAAFBLAwQKAAIAAADGeF5H+5D0Di4AAAAuAAAANQAcAGZhc3QvbXVsdGljb2wvcGFnaW5hdGlv
bi9SaWdodFRvTGVmdC1ybC1jcmFzaC1sb2cudHh0VVQJAAPT6TNW0+kzVnV4CwABBPUBAAAEFAAA
AE5vIGNyYXNoIGxvZyBmb3VuZCBmb3IgV2ViS2l0VGVzdFJ1bm5lcjo1NjMxLgpQSwMECgAAAAAA
nHheRwAAAAAAAAAAAAAAAA0AHABmYXN0L3JlZ2lvbnMvVVQJAAOH6TNWDOozVnV4CwABBPUBAAAE
FAAAAFBLAwQKAAAAAACceF5HAAAAAAAAAAAAAAAAFwAcAGZhc3QvcmVnaW9ucy9zY3JvbGxpbmcv
VVQJAAOH6TNWDOozVnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACceF5HOQHL3UAAAAB6AAAANQAc
AGZhc3QvcmVnaW9ucy9zY3JvbGxpbmcvd2hlZWwtc2Nyb2xsLWFic3Bvcy1zdGRlcnIudHh0VVQJ
AAOH6TNWh+kzVnV4CwABBPUBAAAEFAAAAHMtS80rCU7NS0ktCijKr6i0skrOzyvJzCvNLy32BeLU
4OSi/Jwcp0qFzGKFvPwShczcgpzUXKCm1BQuV0o0AwBQSwMEFAACAAgAnHheRzkBy91AAAAAegAA
AC4AHABmYXN0L3JlZ2lvbnMvc2Nyb2xsaW5nL3doZWVsLXNjcm9sbC1zdGRlcnIudHh0VVQJAAOH
6TNWh+kzVnV4CwABBPUBAAAEFAAAAHMtS80rCU7NS0ktCijKr6i0skrOzyvJzCvNLy32BeLU4OSi
/Jwcp0qFzGKFvPwShczcgpzUXKCm1BQuV0o0AwBQSwMEFAACAAgAnHheR+SKx0M8AAAAPQAAAEAA
HABmYXN0L3JlZ2lvbnMvc2Nyb2xsaW5nL3doZWVsLXNjcm9sbGFibGUtc2luZ2xlLXJlZ2lvbi1z
dGRlcnIudHh0VVQJAAOH6TNWh+kzVnV4CwABBPUBAAAEFAAAAHMtS80rCU7NS0ktCijKr6i0skrO
zyvJzCvNLy32BeLU4OSi/Jwcp0qFzGKFvPwShczcgpzUXKCm1BQuAFBLAwQKAAAAAADFeF5HAAAA
AAAAAAAAAAAACgAcAGZhc3QvdGV4dC9VVAkAA9LpM1YM6jNWdXgLAAEE9QEAAAQUAAAAUEsDBBQA
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
gmlX1xxYWImKhB7X6JwyhIHWMmG+U6kzHP2Xk4BjDi5f+BME9095NO6lUbyqDiIX280G6PdBBna4
XudkE0aMPL6TtHhmGXnNUph8cpgtizB7YvwEuniO86qhz2VXhPlLsEqz4DWO+kTe1fEc8cESPgvW
J+JxZc4KHhiprD8lfAm9+DX08OOoVyABTg8DZcK6oo6eBNPiJ7sk3HsEw9UeyxfzhMyT9TvBnTi2
pCuy3673iZ8W4Xoga2AFHslYHkcsKQaYUdHyOqp51SX5G2gei4J0WwTA2zbhL/WAYjTAICqi19Hk
q67wkMUFJsAFJMjAHjXsAMbkDRoLlgwkqWd4HQmwHkipPW1XdURoIE47IlSdEANEHcsCUkS4dceT
+Q3xf/9wSUO5n9z6d3QmDA6lCbRsFuwxyZ/DjEWE++Pn9dCSIU8Fp0woD5aJC8Ndxp7zB1QTpCMc
OZS1FnUqfF+Q7xOfPLGEvzyIADsoz8diNoF2Mn6phUXdkteeOK4eqpoIKEm4u7dNoBO4sj8Sc1eY
grWyNaFYQ+bJkjXwC0x4dDab2+3dQqdy1atAO2G0iZNuI7QCsl38nMUwwbxiEqMl2Ec9A7KmA6hP
7SkZ39Fbp5kD9N7zhEURLl8IucRsz/TAigLOLfXdZlBJx249sEf0rPW4/JpATdj1ToUgcKhPLzFg
9hQPQCceHbsXYDXZRKyzyc3UdUAXmotloQSCwHd/+e04JU0FwwfQu5uJPXfaWdBU0NkNN1qCITta
uqWhJZTGtWEbnIFbLeETVuvPfTq79MdiPJzxDvQbAQ3c5if2sLMDXnRDRx0ggvAXUEsDBAoAAAAA
AMx4XkcAAAAAAAAAAAAAAAAUABwAaHR0cC90ZXN0cy9zZWN1cml0eS9VVAkAA+DpM1YM6jNWdXgL
AAEE9QEAAAQUAAAAUEsDBAoAAAAAALN4XkcAAAAAAAAAAAAAAAAqABwAaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvVVQJAAOx6TNWDOozVnV4CwABBPUBAAAEFAAAAFBL
AwQUAAIACACzeF5HY6qsbIIAAACoAAAAQAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L3hzbC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAA7HpM1ax6TNWdXgLAAEE9QEA
AAQUAAAALY1BCsMwDATveYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFEe2HQ
4d5SCMttnePIku4xxmDIlxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQD9gB+DRoekNt
XCeSyp2WOdKOza8xRJuC7GpN1PGavlBLAwQUAAIACACzeF5HY6qsbIIAAACoAAAAUgAcAGh0dHAv
dGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC11bmFmZmVjdGVkLWJ5LXN0
eWxlLXNyYy0yLXN0ZGVyci50eHRVVAkAA7HpM1ax6TNWdXgLAAEE9QEAAAQUAAAALY1BCsMwDATv
eYVeEDu9pPgVhb4guBtiUCwjKaX+fU0pe1qG2c1ytsKbF6kEVdFEe2HQ4d5SCMttnePIku4xxmDI
lxbvIUt1VH/++0O45B4UJpdmWDDvjPljTFwqaCUwziHQD9gB+DRoekNtXCeSyp2WOdKOza8xRJuC
7GpN1PGavlBLAwQKAAAAAADNeF5HAAAAAAAAAAAAAAAAJAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkv
ZnJhbWVOYXZpZ2F0aW9uL1VUCQAD4ekzVgzqM1Z1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAzHhe
R/uQthKRAAAA/gAAAEUAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2ZyYW1lTmF2aWdhdGlvbi9jcm9z
cy1vcmlnaW4tb3BlbmVyLWNyYXNoLWxvZy50eHRVVAkAA+DpM1bg6TNWdXgLAAEE9QEAAAQUAAAA
tc6xCsIwEADQ3a+4rVNNWi1IZ+tiUQiKg0hJk7MNlJzcpUj/3v6Ey5tfY8zV1HCyYUIPiYDResjU
XZBF9XOYfE9JtaFny4tqaRB1DHaIJCk4gx/iJOqB/TmkG0oyc4zIXamLKi90Xh5Wd3pfdfiVQldb
x1bGrIZnwxwJyhdcCGR2I7zXARCDD4wuES/13xubH1BLAwQUAAIACADNeF5HWPuRsL8AAAAcAQAA
WAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvZnJhbWVOYXZpZ2F0aW9uL2luYWN0aXZlLWZ1bmN0aW9u
LWluLXBvcHVwLW5hdmlnYXRlLWNoaWxkLXN0ZGVyci50eHRVVAkAA+HpM1bh6TNWdXgLAAEE9QEA
AAQUAAAAfc7BSsNAFEbhfZ/ivkDCTGxMmZ2kEUQhMka6EAmTzC8OjTdh5ir69raVLgRxfRbnK5Qu
M62yC0W6NOrSFOt8valoh+E2SIck9p0Z8alSujIaqnqmxtrWGur7+vrR3tVufIWpI5ygc8OEdMX+
hj0+kegDMYWZaTxlysg7cYNLoJBomsc9fE5NjPXsYajMV8Wfns2/nl8Qi59X87bI1/1xnwQsDzJH
tLwNaX/gtQvYnFFyQpNjT+HIphcXpoNr9Q1QSwMECgAAAAAAsnheRwAAAAAAAAAAAAAAACIAHABo
dHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvVVQJAAOw6TNWDOozVnV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACACyeF5HI+C+yJIAAAD+AAAAQQAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNv
bGF0ZWRXb3JsZC91c2VyR2VzdHVyZUV2ZW50cy1jcmFzaC1sb2cudHh0VVQJAAOw6TNWsOkzVnV4
CwABBPUBAAAEFAAAALXOwQqCQBAA0HtfMTdPtq6yRJ6zS1KwFB0iZHUnXZCdmFkJ/75+ovcFr7H2
Yms4ujCjh0TA6Dxk6ibIovolzL6npNrQs+NVtTSKOgQ3RpIUBotv4iTqjv0ppCtKskuMyF1ZaJPr
Itf7vKjMzlQdfkQXZjuwkymr4dEwR4LyCWcCWYYJXr8BEIMPjEMiXuu/NzZfUEsDBBQAAgAIALJ4
XkcKhA3t+AkAACNQAAA+ABwAaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3VzZXJH
ZXN0dXJlRXZlbnRzLXN0ZGVyci50eHRVVAkAA7DpM1aw6TNWdXgLAAEE9QEAAAQUAAAA7Vpbc9pI
Fn42v0JvuW1S6psuvKS8ROwQ20AhPJ7KVErVSC1bCZZYSdhmf/2ebiEMGGGnK7s7syPKLoQufb5z
6dPntD5sIvYeme+JaSDWNVmX4A+Ow4wrMTtLyqkoyskyTUX+O7NMt8tM+6vx/vcgGPq9/nB5OxO5
cZ+kUXb/tWss01yE2XWa/EtERiHmIiyzHA7S0igzI0mLkqehMMwHi1nEim3MTAtbjNkdfAiES46B
OE1BXsiX1zelIR5CsSiTLDXueWHkPClEpDPmH0Kx150T0zCMXpaLfrZMI64UO/gxH0z42HEcu8gS
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
L4e96WA0rGgOkJ4gzfy4bHMWWriSXSn2KfPVHmohSQ6YQgSA8jrjEhFvjwtfMKBDYJlgRGdALpkq
28P5CxEmcRJK05vgXJiexnND7g2Lbaj/4lBRVdYDv94cvTHyZXoBE6U7E+BpAZWAqGgqDBIl03ux
yHjz6zmrfrEIo12mZTL3JrNIOteCnMG02gYnxnxX3iC9y0JlISuBw+/V9GPK0VqVP4ks3qSSDRaU
Z6CaDzfh5GhJiV2n8Y2suRYDpZsvcqgapPvWlBlpOldHohki2iSxh71kXOkEHUTnxDJ1WkceO8K4
5YmcGFQNgxSFK1rNoyMErl0KlwnTIo6MouS56mRhFJivHz9+NJ77bMDUHyxPSTd13jRw26xj3La3
b98aU5HfJimXnjD4YmFESyFZdAfIfK+GPoQinyfRaX69vJXdf33t1d+MXPAiS7vGq5/O2nvVkTj7
SV7AnYroJt8kSvuF37udlp/X8vNafl7Lz2v5eS0/r+Xntfy8lp/X8vNafl7Lz2v5eS0/r+Xntfy8
lp/X8vNafl7Lz2v5eS0/r+Xntfy8lp/X8vNafl7Lz2v5eS0/r+Xntfy8lp/X8vNafl7Lz2v5eS0/
7z/KzwPh4bt3fJZUQLpGucW8u0/Km0Ocuyw2ytVCGNBY1+c6/wZQSwMECgAAAAAAzXheRwAAAAAA
AAAAAAAAACEAHABodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9VVAkAA+HpM1YM6jNW
dXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAMx4Xkf7kLYSkQAAAP4AAABJABwAaHR0cC90ZXN0cy9z
ZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtY3NzLWluLW1haW4tZnJhbWUtY3Jhc2gtbG9n
LnR4dFVUCQAD4OkzVuDpM1Z1eAsAAQT1AQAABBQAAAC1zrEKwjAQANDdr7itU01aLUhn62JRCIqD
SEmTsw2UnNylSP/e/oTLm19jzNXUcLJhQg+JgNF6yNRdkEX1c5h8T0m1oWfLi2ppEHUMdogkKTiD
H+Ik6oH9OaQbSjJzjMhdqYsqL3ReHlZ3el91+JVCV1vHVsashmfDHAnKF1wIZHYjvNcBEIMPjC4R
L/XfG5sfUEsDBBQAAgAIAM14XkeN/dQDwAAAABwBAABFABwAaHR0cC90ZXN0cy9zZWN1cml0eS9t
aXhlZENvbnRlbnQvaW5zZWN1cmUtaWZyYW1lLWluLWlmcmFtZS1zdGRlcnIudHh0VVQJAAPh6TNW
4ekzVnV4CwABBPUBAAAEFAAAAH3OzUrDQBSG4X2v4txAwkxsTJmdxBSkhci04qJImWQ+cWg8KTOn
Re++P+JCkK7fxfsUSpeZVtmdIl0adW+KaV6qil7RLYKskcQemBE3ldIzo6GqN2qsba2h7baev9hl
7foPmDrCCdauG5Ae2D+xxxcSHRFTGJn6a6aMvBPXuQQKiYax38Hn1MRYjx6GynxS/OuZ3fT8gVj8
vJrPvXw/X/ZJwLKSMaLlx5B2Z167B5tflFzR5NhTuLDp3YXh7JqcAFBLAwQKAAAAAADTeF5HAAAA
AAAAAAAAAAAAHwAcAGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9VVAkAA+3pM1YM6jNW
dXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAOJ4XkfHbeA+dUAAAKLiAABCABwAaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL2xpbmstb3BlbnMtbmV3LXdpbmRvdy1jcmFzaC1sb2cudHh0VVQJ
AAMI6jNWyukzVnV4CwABBPUBAAAEFAAAAOxcW3Ob2JZ+Hv0KnrrkJMj7DqgyqUJc0p74NpaddFWq
S4VgYzORkRpQEp9fP2sDkgAhxzonNZWaPnmwZdis9a37WnujXGfLUOb5WNv8+yTnH5LiVubFzTpN
ZaZ95gblfw6ug+Jhtwr+nX5cLtaPMj/9eHV+d+GdvjrtPjo4i2RaJHEis3E/8cFHmeXJMt0RRgNn
GUnt9mklNxf/MIUumDa8DIrkqzwBJBmQ1a63yK+fiodlCkC5yf4c3Mh8tUzzZL6oKeQP2mdskT8H
dzmIc+bumHGEBwM3KOTpbfK45UcQ5jpGOkUa5mPEx4yMOCKajgyEBldTrQ36Igg1uPiHhtHIGnFt
iKmPMWUngGS1zIrGcowHdrpMnx6X61y7uyuhmIJZtk2p7hFEdO64vm64jqPb7kRMsCG4xb3BYOBk
Qf4gI+32IZNBBM8hTXOTfBUU4YP211quAX64fBwFq9VCjh6DJNWLculg4H0P5aoABButen84s4nt
zmzH8aZTbTg9ez/13n88aaxURgDVfvBuLmdnlx/t8zNY7ro3an1QaOg7av3jZDD4eKHdyHt4ONcu
ZZDBGk7GA11/pw2UmmazW++PW637ryaAEYtJCB/0xgVmwgfts9Ib+fCnlunfT7Nv37XpxX86V596
HHAwsEH6JAxKEaYrGYLvhdpZGi+zx/LieLCc/084e8zvpzKNhidaLhcyLJaZlgbKAb4labT8NnBu
7OnvZ5fvtVtvejvWTnMZrrOkeDr9nuf2OkrggdNFkn7RlyuZ5noqv+nVk6OH4nExGFRGAhPVVhuP
X2grMKq2SOYK5MgeRU/wuaOv/6hUb8RxbIahDJCFtaZM2msNGwMMK3ccqqjrpVNqms8DaWKjjs7x
+Dq4l84igSA7e1wtxuMk/5jIb59KCe1QBSFoDvhgbdheOnp8HGMDnQzIcfzDcB4bdMsffiu6EODf
n8bj9SqCCFUIpgV8GK4htu9TCIUkLRQMYWjD5hOjcLUaQ/xBANKjYUTEPACj+ddwX1O/vWk9V+Wm
cjHc2UJeLNP78gesvvXH4xsZv7Wvz2pCyzRO7tdZ6anvfvtNCUcwYT3iMQFKZkdLx0J+QLoQ3A90
+38ml7C0ISwaPYwxJycDfpwoEQlIxA8B20hTS3hAqBfB5LxSfoN6qX9CrJOBOBY0CpDRB3q5XPxE
zJSCbqdFdJ7Mve8FJCBQMuXmycA4Ei+zZBw18aoYrDJC44/h5VR9fAXwPtSXX705IOWLZbCqmN7w
UHmFMXEyMI8UwZSSYE3//OmDIgUZIyk+JcWDn6lsv2qoP2yCGH+rWI//VFmuxFI+r2BYFrirdSQM
iyMelDBqoTpI2txLrphRxbZerzhTA2yIUU+HdpAziymaGwSUfgO6XgSFKoQ1yb0LO24tiyhjqscV
v6uyOchB9jQvKmczEBSBNiFoiMpCgMFgUCOOwssIm+MdQ0BSZMvFAhrI8arm4pSBclU8yKwKlR7h
APTVKoBS++nDnotV6J8XCyOobW0AzjJcBqUHUBCLHGkGgUTYL1bYEaeJewv1x8JsVlwGX5P78paq
1D0LqjLuA9N1JvPt7a/LJKr/KOuO2ZW/yntYCU+P836DMQl5rwQ/lYX6dXdWJbXxePepUsSl/NZK
gM0y1c4rZeg0rjvLTI7H07pVu8qS+ySF3j6ozdpYAxPCcp2F8kaCRvJif0GfjhqFsKvjBhelO0OU
oTt9gDklgjTnBHmhCh01QHfsuJodCRqLZ2v2RmG9tfgX0Upfp9BpLJRjK3ngQZjvwLIFTE1VLBLS
X88wP06XMZOIVo5+du2A/oLF4kI+zmXmr9MSsqo1b/uUXcfHsN8Qr07+n2r/jZYXMLzMZng8Ltag
5bdHynlYwIOSPS/SuzcaWi/eaFj9IOoHVT+Y+vFCrM8L3WDw7lAS+rcv/Bq+8NtvP8voG0LAXX6f
5QpWGsq3B1zt3fOr320GnN+DNFrIC+gxgavKWhiSljgyaREzCBpJ66FJ8239O+96odMsDW+0f6e0
rRu/G5ZqrBXnynAZyQwebV710s3VfyeAneaUVzMTWhs7u18/QstWqwkcWyjHNo5zbJjMuDzQ2URJ
dCNDmXyV06c0rK1SGQ4a0lSWQnWMtjPlLiWs0wQUOFsV2dse+zZXRjIO1otiFskFiNu3+p32rhpN
RXs/pl5V463aZEwQTInYPG4TTnAOo3uT9YboRbBSSql2EH89lUBnqw33IVeqwBZowjpOEwSbHG99
w3lIFlF7g+dX1oU23ANcaYJBlBB05J4ReIU8vNH1KweKGiH79s44Ao8g+EiP4IgzrSPYM37QkbXE
gyByH+XjMnsaE2HAIAuDxXEgiCXlYRAbAD9Ua43qhWqtV4Naq013mIZ23EuNWmo3ktBjNUqYOCzM
VbppMqq9fnDcnfJMBvxak+x/BV+DaZglq0IVqB5+ghmSzevtv3V6vlxCSlvJrNy0WWZfSi6MQ9cU
18NYsICQoRw48SM5mSDbM5xU9S43OSjThvUKxy81SZUiWx2aYuIv12lUbbd0z2AsLHDA51ibzRz/
5u7y/OrqenY2nTn2+fnZ5fvZ1d3t7PZqZs+mV3c3jodm196Nf3VzMfPvLp3bs6vL2aw6sSHGcVzR
PBSk4lpJ4C6nZc+QI+XrjAyIeSxFKuMmRfgFpEyKB8Q6klQgDa41CW0P40DryBrQVhrsEusSJIYg
KA41/fPltCY53H460bJ1egERMp5LMLFUx7nlFirhdECP3n7kQfj89iMQuUuLZDGcVxva0XI9X8gy
RoQ4uGmIVdKjx+4aRjEJdmjO0q/L6mxTjR5fl1+q0OSMVGx396t6wxVLeiRLMxJBvwJAzerSMHwI
suZOoWLfygwQVkfyjC3zWZ5Jej+VGXQVpemrNCh6NygxEgoBPxIBDzHrR9D+e5ikMK02NFDlEUH6
waiKT8VxWEgcm1JTh8IqISrK6rPyodKeRnlAHD0tot7j4c4BMYI4jCOoM0FWKK1tj6bxs0fSikN9
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
MpTfxTZw48WigCxOONy/wap84jm85CucfAqcLcs4f+TiBLp8SotdQVe0XRkXz9HDKo9e0qQL6iZP
xIiP5vhb8i7Ix5kFL4VjpG3+qeAm9vLX2OOfo1phCwh55CgT1xXn5Cl0RvE5mdJtAOSu9rh9KU7I
dLl4A9qJU8nqAfbb9S6EqzJe9FQDtSCAnBdpwpdljyIqOkFLty/aULxiz+NJtFqXEWJbL8VHPZSY
9MiJihy0DPWiLd3laUkBcJEJAdizxh3AEF6xsOTLHk1iQUtBrgdRTkfZZB0J6snjloxZJ8KQUctx
UBRI1/5wNL2C8PcPHyrS7eg6vGETqXdIVaTbYskdQvEU5zwBYY9fnKdWLHUseduA8qiZtDDcROx5
/4BuY22lI4Oy2qSPpe8z+D4K4ZEvxceDBLlj5/mY7CrSVi4utfCkvcXakYe7h3ZFgJ0k3tzbBqwE
reyPmrktjVFb+QIY5cB0OecVeBFEwCaTqVtfLTIqt4IdaStOsnTZrqTWsG1nPycpTjAvFMRojvpx
HoBqmEgaMncMwxt27VUjMEx6DbMynj9DQ1KUjhmgFkUCLQv9GlKzowfSHb8ny9pAtF8VqW3a+HKj
yGMhawCg2h0tQNJRwIZ+A62h2sR1Mroa+x72herkkI4haej/ChsawNBR8ZH05mrkTr16CIaO1cqE
0gK57Kjp2zIB2CpXxjOagWs14RNaG05DNoHGN9uxhhvSb4A9cF2c6MNGD0QybRrTcIyR/gJQSwME
FAACAAgA4nheR1TNMsWnPwAAs94AAFYAHABodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
d2luZG93LW9wZW4td2l0aG91dC11cmwtc2hvdWxkLW5vdC1hc3NlcnQtY3Jhc2gtbG9nLnR4dFVU
CQADCOozVu3pM1Z1eAsAAQT1AQAABBQAAADsXFtz28aSfl78CjylKNug5gpgWF5X4epoI0taUXJS
lUqxQGAgYUOBDADa1vn12wPwAoCgLJ6T2kptjh8kCjPo/rqnrzND3xTLWJblRN/++1nOf8qqO1lW
t+s8l4X+q2lT/pt2E1WP+1nw7/zzcrF+kuX55+vL+0/B+Zvz/qvaRSLzKkszWUyGiWufZVFmy3xP
GGneMpH63fNKbh/+YpuGyfTRVVRlX+QZICmArH6zQ37zXD0uc/1Xzm32m3Yry9UyL7P5YkOhfNR/
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
dGVkL2JsaW5rL2Zhc3QvZm9ybXMvcmFuZ2UvcmFuZ2UtZm9jdXMtYnktbW91c2Utc3RkZXJyLnR4
dFVUCQADyukzVsrpM1Z1eAsAAQT1AQAABBQAAADLzS8tTvXNL0sNyVdIS8zMSU1RKAGyMvNSFBIV
ShKL0lNLFMoyU8sVEksULAwM9AzAQAfG4AIAUEsDBAoAAAAAAMF4XkcAAAAAAAAAAAAAAAAhABwA
aW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9zdWJtaXQvVVQJAAPK6TNWDOozVnV4CwABBPUBAAAE
FAAAAFBLAwQUAAIACADBeF5HxyHv2zcAAABAAAAAQQAcAGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9y
bXMvc3VibWl0L3N1Ym1pdC1mb2N1cy1ieS1tb3VzZS1zdGRlcnIudHh0VVQJAAPK6TNWyukzVnV4
CwABBPUBAAAEFAAAAMvNLy1O9c0vSw3JV0hLzMxJTVEoAbIy81IUEhVKEovSU0sUyjJTyxUSSxQs
DAz0DMBAB8bgAgBQSwMECgAAAAAA4HheRwAAAAAAAAAAAAAAAAoAHABpbnNwZWN0b3IvVVQJAAME
6jNWDOozVnV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADgeF5HAAAAAAAAAAAAAAAADgAcAGluc3Bl
Y3Rvci9kb20vVVQJAAME6jNWDOozVnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADieF5Hbyql8RJB
AABl9QAALQAcAGluc3BlY3Rvci9kb20vZG9tLXJlbW92ZS1ldmVudHMtY3Jhc2gtbG9nLnR4dFVU
CQADCOozVgTqM1Z1eAsAAQT1AQAABBQAAADsXG1zm8iy/nz1K/i0JSdBnlcGVLmuQrzs+sSxfS07
2aqtLRWCweauDFpASXx+/e0BvQBCjnVO6tTW9aYqtgxD9/P09HT3vIjrPAtlUYy1zb/Pcv4hKW9l
Ud6s0lTm2m9cUPP3wXVQPuxawb/TT9li9SiL009XF3cfvdM3p91HB+eRTMskTmQ+7hc++CTzIsnS
nWA0cLJIardPS7m5+Ktp6AbThpdBmXyRJ4AkB7Ha9Rb59VP5kKUA1EDk98GNLJZZWiTzxVpC8aD9
hi24c1cAnXN3p4wjPBi4QSlPb5PHrT6CMNcx0inSMB8jY0yNkQUAdCQQGlxNtTboj0GowcVfNYxG
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
V7wCAADvKQAAKwAcAHB5d2Vic29ja2V0LndzLmxvZy0zME9jdDIwMTUtMTUwMzE5LWVyci50eHRV
VAkAA9jpM1Yn6TNWdXgLAAEE9QEAAAQUAAAA7Zhbb5swFIDf8yusvjTRKOYSQuFtl3SbOnVTUrUP
UWQ5cGisOJjZTrPs188h6UrVdi8r3SJZICGwrfNxbH86MAk8PzrxvZPQQ36UelEanjqxN5iiyXA0
+jqaIkKWlJWEuNcwG4tsAXoM8hZkioY/Mqg0EyViJaqkyEApVt4gCd9XoDQqpFimqHucpv6xgwZ+
4gcO8szZ61xKmsGMZgvUXQrTVUIGpUYZ5RxxqnQv7SB0xjigIzzeKA1L/IXNJJUbfCbpEtZCLhT+
ttFzUbrF3RN8BVIZHoUDN8aczXBV99jeNdHdanPkIM5KQFESOg18smcnei6B5gYCIQW8cAtWMjW/
a+7urw7KODPghOa5NMN7r0Qdhv2a+iHVPe1o9+ATLXMO8r3JqHoO2alHNMCvBF8tQeEPVFM8vB5j
M+/nTONLIbjC40yySiu8htmC6WqD9ZzJvKJSb/BS5KTamBZVU2OlTXzKRQkN9MEgqNEJMeyakN/Q
DvoD4fb9Xyu5g8h/mnC/CLqvBRL7XmOW7zHWhQnuZlwoeHmW3dw1KII4qSnqeI1c8FUbqXgUPvR2
G7SOdx+ebDu6CrYLjHdvGawna8k0EFEUCnTavHkzWxUFSKLYT5j2OiClMPaaDKUsBQqDKXonxQKM
A1gFnc7ksRETJ4lCY8Trt6OLzxcfn3Liwx2XIt/1/upg1cClsqLoBGUiB9T3zI4321LRG9hlvBTG
sGJV5k8Q9z0n9l/U4X4Q11x7kyeBdbh1uHW4dfiBOLwfOH54+q8dHjYcLuSM5TmUz8EmLZTggefF
tgS3+rb6tvo+LH1HThBHrRW0QRDG1ojWiNaI1oiHY8Sw77VoxL5vjWiNaI1ojXhIRhy0WSMm1ojW
iNaI1oiHZMS4zRrR/ke0RrRGtEY8GCPGjh+EbdaI9qvZGtEa0Rrx/zTiL1BLAwQUAAIACAC3eF5H
c/DXhAgBAACPAgAAKwAcAHB5d2Vic29ja2V0LndzLmxvZy0zME9jdDIwMTUtMTUwMzE5LW91dC50
eHRVVAkAA7rpM1Yn6TNWdXgLAAEE9QEAAAQUAAAAtZDNboJAFIX3k/AO8wJWIIJCwoICVn5sUATF
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
HgMUAAIACABreF5HVzTgnLoAAAAZAQAAPQAYAAAAAAABAAAApIGoGAEAYWNjZXNzaWJpbGl0eS9h
Y2Nlc3NpYmlsaXR5LW5vZGUtbWVtb3J5LW1hbmFnZW1lbnQtc3RkZXJyLnR4dFVUBQADKukzVnV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAGt4XkcAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQdkZ
AQBhbmltYXRpb25zL1VUBQADKukzVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAGt4XkcAAAAA
AAAAAAAAAAAOABgAAAAAAAAAEADtQR4aAQBhbmltYXRpb25zLzNkL1VUBQADKukzVnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAGt4XkfGQ75RvgAAABkBAAA2ABgAAAAAAAEAAACkgWYaAQBhbmlt
YXRpb25zLzNkL2NoYW5nZS10cmFuc2Zvcm0taW4tZW5kLWV2ZW50LXN0ZGVyci50eHRVVAUAAyrp
M1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABreF5HOLwj07wAAAAZAQAAKwAYAAAAAAABAAAA
pIGUGwEAYW5pbWF0aW9ucy9hZGRlZC13aGlsZS1zdXNwZW5kZWQtc3RkZXJyLnR4dFVUBQADKukz
VnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAGt4XkcAAAAAAAAAAAAAAAAHABgAAAAAAAAAEADt
QbUcAQBjYW52YXMvVVQFAAMq6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAa3heRwAAAAAA
AAAAAAAAAA4AGAAAAAAAAAAQAO1B9hwBAGNhbnZhcy9waGlsaXAvVVQFAAMq6TNWdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAa3heRwAAAAAAAAAAAAAAABQAGAAAAAAAAAAQAO1BPh0BAGNhbnZh
cy9waGlsaXAvdGVzdHMvVVQFAAMq6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAa3heRxXe
PUq6AAAAGQEAADEAGAAAAAAAAQAAAKSBjB0BAGNhbnZhcy9waGlsaXAvdGVzdHMvMmQuY2FudmFz
LnJlYWRvbmx5LXN0ZGVyci50eHRVVAUAAyrpM1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAB9
eF5HAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UGxHgEAY29tcG9zaXRpbmcvVVQFAANO6TNWdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAa3heRzSf6maaAAAAtwAAADgAGAAAAAAAAQAAAKSB9x4B
AGNvbXBvc2l0aW5nL2Fic29sdXRlLWluc2lkZS1vdXQtb2Ytdmlldy1maXhlZC1zdGRlcnIudHh0
VVQFAAMq6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAa3heRwAAAAAAAAAAAAAAABYAGAAA
AAAAAAAQAO1BAyABAGNvbXBvc2l0aW5nL2FuaW1hdGlvbi9VVAUAAyrpM1Z1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACABreF5HGa83/L0AAAAZAQAAQgAYAAAAAAABAAAApIFTIAEAY29tcG9zaXRp
bmcvYW5pbWF0aW9uL2FuaW1hdGVkLWNvbXBvc2l0ZWQtaW5zaWRlLWhpZGRlbi1zdGRlcnIudHh0
VVQFAAMq6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAa3heRwAAAAAAAAAAAAAAACAAGAAA
AAAAAAAQAO1BjCEBAGNvbXBvc2l0aW5nL2JhY2tmYWNlLXZpc2liaWxpdHkvVVQFAAMq6TNWdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAa3heR4yBn6C9AAAAGQEAAEEAGAAAAAAAAQAAAKSB5iEB
AGNvbXBvc2l0aW5nL2JhY2tmYWNlLXZpc2liaWxpdHkvYmFja2ZhY2UtdmlzaWJpbGl0eS0zZC1z
dGRlcnIudHh0VVQFAAMq6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAa3heRwAAAAAAAAAA
AAAAAB0AGAAAAAAAAAAQAO1BHiMBAGNvbXBvc2l0aW5nL2JhY2tncm91bmQtY29sb3IvVVQFAAMq
6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAa3heR5iYBAKZAAAAtwAAAEsAGAAAAAAAAQAA
AKSBdSMBAGNvbXBvc2l0aW5nL2JhY2tncm91bmQtY29sb3IvYmFja2dyb3VuZC1jb2xvci1hbHBo
YS13aXRoLW9wYWNpdHktc3RkZXJyLnR4dFVUBQADKukzVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAGx4XkcAAAAAAAAAAAAAAAAYABgAAAAAAAAAEADtQZMkAQBjb21wb3NpdGluZy9iYWNrZ3Jv
dW5kcy9VVAUAAyvpM1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABseF5HL2K2WJkAAAC3AAAA
QQAYAAAAAAABAAAApIHlJAEAY29tcG9zaXRpbmcvYmFja2dyb3VuZHMvZml4ZWQtYmFja2dyb3Vu
ZC1vbi1kZXNjZW5kYW50LXN0ZGVyci50eHRVVAUAAyvpM1Z1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAABseF5HAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA7UH5JQEAY29tcG9zaXRpbmcvYmFja2lu
Zy9VVAUAAyvpM1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABseF5HHgO27JoAAAC3AAAANwAY
AAAAAAABAAAApIFHJgEAY29tcG9zaXRpbmcvYmFja2luZy9iYWNrZmFjZS12aXNpYmlsaXR5LWZs
aXAtc3RkZXJyLnR4dFVUBQADK+kzVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAGx4XkcAAAAA
AAAAAAAAAAAcABgAAAAAAAAAEADtQVInAQBjb21wb3NpdGluZy9jb250ZW50cy1vcGFxdWUvVVQF
AAMr6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAbHheR3ADKG2+AAAAGQEAADYAGAAAAAAA
AQAAAKSBqCcBAGNvbXBvc2l0aW5nL2NvbnRlbnRzLW9wYXF1ZS9iYWNrZ3JvdW5kLWNsaXAtc3Rk
ZXJyLnR4dFVUBQADK+kzVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAG94XkcAAAAAAAAAAAAA
AAAVABgAAAAAAAAAEADtQdYoAQBjb21wb3NpdGluZy9nZW9tZXRyeS9VVAUAAzLpM1Z1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABveF5HCsj/F98AAABMAwAALgAYAAAAAAABAAAApIElKQEAY29t
cG9zaXRpbmcvZ2VvbWV0cnkvb3V0bGluZS1jaGFuZ2Utc3RkZXJyLnR4dFVUBQADMukzVnV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAH14XkcAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQWwqAQBj
b21wb3NpdGluZy9vdmVyZmxvdy9VVAUAA03pM1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB9
eF5HTqiDJvs+AABB1gAAQgAYAAAAAAABAAAApIG7KgEAY29tcG9zaXRpbmcvb3ZlcmZsb3cvaWZy
YW1lLWluc2lkZS1vdmVyZmxvdy1jbGlwcGluZy1jcmFzaC1sb2cudHh0VVQFAANN6TNWdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAfXheRwAAAAAAAAAAAAAAABAAGAAAAAAAAAAQAO1BMmoBAGNv
bXBvc2l0aW5nL3J0bC9VVAUAA07pM1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAB9eF5H2XJo
jaE+AADA5AAANAAYAAAAAAABAAAApIF8agEAY29tcG9zaXRpbmcvcnRsL3J0bC1vdmVyZmxvdy1z
Y3JvbGxpbmctY3Jhc2gtbG9nLnR4dFVUBQADTukzVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AOF4XkebsPjB/BYAAI4qAwANABgAAAAAAAEAAACkgYupAQBlcnJvcl9sb2cudHh0VVQFAAMF6jNW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAxnheRwAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1B
zsABAGZhc3QvVVQFAAPT6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAjXheRwAAAAAAAAAA
AAAAAAsAGAAAAAAAAAAQAO1BDcEBAGZhc3QvYmxvY2svVVQFAANq6TNWdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAj3heRwAAAAAAAAAAAAAAABcAGAAAAAAAAAAQAO1BUsEBAGZhc3QvYmxvY2sv
cG9zaXRpb25pbmcvVVQFAANu6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAj3heRx8aE6x0
PgAAhuMAADoAGAAAAAAAAQAAAKSBo8EBAGZhc3QvYmxvY2svcG9zaXRpb25pbmcvcnRsLWZpeGVk
LXBvc2l0aW9uaW5nLWNyYXNoLWxvZy50eHRVVAUAA27pM1Z1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAACNeF5HAAAAAAAAAAAAAAAAIwAYAAAAAAAAABAA7UGLAAIAZmFzdC9ibG9jay9wb3NpdGlv
bmluZy92ZXJ0aWNhbC1ybC9VVAUAA2rpM1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACNeF5H
ZxQ0p0k+AABi5wAAQgAYAAAAAAABAAAApIHoAAIAZmFzdC9ibG9jay9wb3NpdGlvbmluZy92ZXJ0
aWNhbC1ybC9maXhlZC1wb3NpdGlvbmluZy1jcmFzaC1sb2cudHh0VVQFAANq6TNWdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAinheRwAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1BrT8CAGZhc3Qv
Y2FudmFzL1VUBQADZOkzVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIp4XkcSmNTUlwAAAEoB
AAAmABgAAAAAAAEAAACkgfM/AgBmYXN0L2NhbnZhcy9jYW52YXMtbGluZURhc2gtc3RkZXJyLnR4
dFVUBQADZOkzVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAIh4XkcAAAAAAAAAAAAAAAAJABgA
AAAAAAAAEADtQepAAgBmYXN0L2Nzcy9VVAUAA2DpM1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CACIeF5H2wjTQjsAAAA/AAAAKQAYAAAAAAABAAAApIEtQQIAZmFzdC9jc3MvY29tcGFyZS1jb250
ZW50LXN0eWxlLXN0ZGVyci50eHRVVAUAA2DpM1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADP
eF5HAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UHLQQIAZmFzdC9kb20vVVQFAAPm6TNWdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAlXheRwAAAAAAAAAAAAAAABIAGAAAAAAAAAAQAO1BDkICAGZh
c3QvZG9tL0RvY3VtZW50L1VUBQADeukzVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJV4Xkfk
kPuDxkAAAMD1AAA1ABgAAAAAAAEAAACkgVpCAgBmYXN0L2RvbS9Eb2N1bWVudC9lYXJseS1kb2N1
bWVudC1hY2Nlc3MtY3Jhc2gtbG9nLnR4dFVUBQADeukzVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAJZ4XkcAAAAAAAAAAAAAAAAVABgAAAAAAAAAEADtQY+DAgBmYXN0L2RvbS9HZW9sb2NhdGlv
bi9VVAUAA3vpM1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADieF5HKMGJwvxAAABz9QAANQAY
AAAAAAABAAAApIHegwIAZmFzdC9kb20vR2VvbG9jYXRpb24vd2luZG93LWNsb3NlLWNyYXNoLWNy
YXNoLWxvZy50eHRVVAUAAwjqM1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAIAAAC7eF5HrPD0oy4A
AAAuAAAAMgAYAAAAAAABAAAApIFJxQIAZmFzdC9kb20vaG9yaXpvbnRhbC1zY3JvbGxiYXItaW4t
cnRsLWNyYXNoLWxvZy50eHRVVAUAA8HpM1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACVeF5H
AAAAAAAAAAAAAAAAGQAYAAAAAAAAABAA7UHjxQIAZmFzdC9kb20vSFRNTEJhc2VFbGVtZW50L1VU
BQADeekzVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJV4XkdfWUHpVEAAAJ3yAABXABgAAAAA
AAEAAACkgTbGAgBmYXN0L2RvbS9IVE1MQmFzZUVsZW1lbnQvaHJlZi1hdHRyaWJ1dGUtcmVzb2x2
ZXMtd2l0aC1yZXNwZWN0LXRvLWRvY3VtZW50LWNyYXNoLWxvZy50eHRVVAUAA3npM1Z1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACAC9eF5HvNamZeEAAABMAwAAMgAYAAAAAAABAAAApIEbBwMAZmFz
dC9kb20vb2JqZWN0LXBsdWdpbi1oaWRlcy1wcm9wZXJ0aWVzLXN0ZGVyci50eHRVVAUAA8bpM1Z1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADieF5HRYdoXqI/AACI2gAAMgAYAAAAAAABAAAApIFo
CAMAZmFzdC9kb20vc2Nyb2xsLXJldmVhbC1sZWZ0LW92ZXJmbG93LWNyYXNoLWxvZy50eHRVVAUA
AwjqM1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACgeF5HAAAAAAAAAAAAAAAAEAAYAAAAAAAA
ABAA7UF2SAMAZmFzdC9kb20vV2luZG93L1VUBQADi+kzVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAKB4XkfQ7zPqzAAAADQBAAA5ABgAAAAAAAEAAACkgcBIAwBmYXN0L2RvbS9XaW5kb3cvZG9t
LWFjY2Vzcy1mcm9tLWNsb3N1cmUtd2luZG93LXN0ZGVyci50eHRVVAUAA4vpM1Z1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACdeF5HOjA5GJIAAAD+AAAARAAYAAAAAAABAAAApIH/SQMAZmFzdC9k
b20vV2luZG93L2RvbS1hY2Nlc3MtZnJvbS1jbG9zdXJlLXdpbmRvdy13aXRoLWdjLWNyYXNoLWxv
Zy50eHRVVAUAA4rpM1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACmeF5HAAAAAAAAAAAAAAAA
DAAYAAAAAAAAABAA7UEPSwMAZmFzdC9ldmVudHMvVVQFAAOY6TNWdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAj3heR1gqZ3U5AAAAQwAAADIAGAAAAAAAAQAAAKSBVUsDAGZhc3QvZXZlbnRzL2Rp
c3BsYXktbm9uZS1vbi1mb2N1cy1jcmFzaC1zdGRlcnIudHh0VVQFAANu6TNWdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAlXheRzC1beM5AAAAQwAAACsAGAAAAAAAAQAAAKSB+ksDAGZhc3QvZXZl
bnRzL21vdXNlLWZvY3VzLWltYWdlbWFwLXN0ZGVyci50eHRVVAUAA3npM1Z1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACACVeF5H5669XzsAAABDAAAALwAYAAAAAAABAAAApIGYTAMAZmFzdC9ldmVu
dHMvbW91c2V1cC1vdXRzaWRlLWRvY3VtZW50LXN0ZGVyci50eHRVVAUAA3rpM1Z1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADieF5HbE4x4t9CAABp9gAARAAYAAAAAAABAAAApIE8TQMAZmFzdC9l
dmVudHMvcG9wdXAtYWxsb3dlZC1mcm9tLWdlc3R1cmUtaW5pdGlhdGVkLWV2ZW50LWNyYXNoLWxv
Zy50eHRVVAUAAwjqM1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACkeF5HAAAAAAAAAAAAAAAA
CwAYAAAAAAAAABAA7UGZkAMAZmFzdC9mb3Jtcy9VVAUAA5TpM1Z1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADieF5HvrdW3vxAAABB9gAAQgAYAAAAAAABAAAApIHekAMAZmFzdC9mb3Jtcy9tdWx0
aXBsZS1mb3JtLXN1Ym1pc3Npb24tcHJvdGVjdGlvbi1tb3VzZS1jcmFzaC1sb2cudHh0VVQFAAMI
6jNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAoHheRwAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQ
AO1BVtIDAGZhc3QvZnJhbWVzL1VUBQADi+kzVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOJ4
XkdeqDq6+UAAAF33AAA1ABgAAAAAAAEAAACkgZzSAwBmYXN0L2ZyYW1lcy9mcmFtZS1jcmFzaC13
aXRoLXBhZ2UtY2FjaGUtY3Jhc2gtbG9nLnR4dFVUBQADCOozVnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAKB4XkfbCNNCOwAAAD8AAAAvABgAAAAAAAEAAACkgQQUBABmYXN0L2ZyYW1lcy9mcmFt
ZS1kaXNwbGF5LW5vbmUtZm9jdXMtc3RkZXJyLnR4dFVUBQADi+kzVnV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAKZ4XkcAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQagUBABmYXN0L2ltYWdlcy9V
VAUAA5fpM1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADieF5HapBXugNBAABh9gAANgAYAAAA
AAABAAAApIHuFAQAZmFzdC9pbWFnZXMvYW5pbWF0ZWQtZ2lmLXdpbmRvdy1yZXNpemluZy1jcmFz
aC1sb2cudHh0VVQFAAMI6jNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgApnheRyGPvTgyAAAA
MwAAACwAGAAAAAAAAQAAAKSBYVYEAGZhc3QvaW1hZ2VzL3BkZi1hcy1pbWFnZS1jcm9wLWJveC1z
dGRlcnIudHh0VVQFAAOX6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAwXheRwAAAAAAAAAA
AAAAAAwAGAAAAAAAAAAQAO1B+VYEAGZhc3QvbG9hZGVyL1VUBQADyekzVnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIALl4XkfIOMWrkgAAAP4AAAA9ABgAAAAAAAEAAACkgT9XBABmYXN0L2xvYWRl
ci9jYW5jZWwtbG9hZC1kdXJpbmctcG9ydC1ibG9jay10aW1lci1jcmFzaC1sb2cudHh0VVQFAAO9
6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAuXheR9sI00I7AAAAPwAAAFIAGAAAAAAAAQAA
AKSBSFgEAGZhc3QvbG9hZGVyL2Rpc3BsYXktaW1hZ2UtdW5zZXQtY2FuLWJsb2NrLWltYWdlLWFu
ZC1jYW4tcmVsb2FkLWluLXBsYWNlLXN0ZGVyci50eHRVVAUAA77pM1Z1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACAC6eF5H2wjTQjsAAAA/AAAAUwAYAAAAAAABAAAApIEPWQQAZmFzdC9sb2FkZXIv
aW1hZ2VzLWVuYWJsZWQtdW5zZXQtY2FuLWJsb2NrLWltYWdlLWFuZC1jYW4tcmVsb2FkLWluLXBs
YWNlLXN0ZGVyci50eHRVVAUAA8DpM1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADBeF5H2wjT
QjsAAAA/AAAALQAYAAAAAAABAAAApIHXWQQAZmFzdC9sb2FkZXIvcmVsb2FkLXBvbGljeS1kZWxl
Z2F0ZS1zdGRlcnIudHh0VVQFAAPJ6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAxnheRwAA
AAAAAAAAAAAAAA4AGAAAAAAAAAAQAO1BeVoEAGZhc3QvbXVsdGljb2wvVVQFAAPT6TNWdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAxnheRwAAAAAAAAAAAAAAABkAGAAAAAAAAAAQAO1BwVoEAGZh
c3QvbXVsdGljb2wvcGFnaW5hdGlvbi9VVAUAA9PpM1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAIA
AADGeF5H+5D0Di4AAAAuAAAANQAYAAAAAAABAAAApIEUWwQAZmFzdC9tdWx0aWNvbC9wYWdpbmF0
aW9uL1JpZ2h0VG9MZWZ0LXJsLWNyYXNoLWxvZy50eHRVVAUAA9PpM1Z1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAACceF5HAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA7UGxWwQAZmFzdC9yZWdpb25z
L1VUBQADh+kzVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJx4XkcAAAAAAAAAAAAAAAAXABgA
AAAAAAAAEADtQfhbBABmYXN0L3JlZ2lvbnMvc2Nyb2xsaW5nL1VUBQADh+kzVnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAJx4Xkc5AcvdQAAAAHoAAAA1ABgAAAAAAAEAAACkgUlcBABmYXN0L3Jl
Z2lvbnMvc2Nyb2xsaW5nL3doZWVsLXNjcm9sbC1hYnNwb3Mtc3RkZXJyLnR4dFVUBQADh+kzVnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJx4Xkc5AcvdQAAAAHoAAAAuABgAAAAAAAEAAACkgfhc
BABmYXN0L3JlZ2lvbnMvc2Nyb2xsaW5nL3doZWVsLXNjcm9sbC1zdGRlcnIudHh0VVQFAAOH6TNW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAnHheR+SKx0M8AAAAPQAAAEAAGAAAAAAAAQAAAKSB
oF0EAGZhc3QvcmVnaW9ucy9zY3JvbGxpbmcvd2hlZWwtc2Nyb2xsYWJsZS1zaW5nbGUtcmVnaW9u
LXN0ZGVyci50eHRVVAUAA4fpM1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADFeF5HAAAAAAAA
AAAAAAAACgAYAAAAAAAAABAA7UFWXgQAZmFzdC90ZXh0L1VUBQAD0ukzVnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAOJ4Xkc7X8l5RD8AABjrAAA9ABgAAAAAAAEAAACkgZpeBABmYXN0L3RleHQv
Y29tYmluaW5nLWNoYXJhY3Rlci1zZXF1ZW5jZS12ZXJ0aWNhbC1jcmFzaC1sb2cudHh0VVQFAAMI
6jNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAsXheRzsT6O1KAQAAyAMAACQAGAAAAAAAAQAA
AKSBVZ4EAGZhc3QvdGV4dC9mb250LXdlaWdodHMtemgtc3RkZXJyLnR4dFVUBQADrukzVnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAOJ4XkdZhfeKQT4AAAbkAAAwABgAAAAAAAEAAACkgf2fBABm
YXN0L3RleHQvdmVydGljYWwtcXVvdGF0aW9uLW1hcmtzLWNyYXNoLWxvZy50eHRVVAUAAwjqM1Z1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACmeF5HAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UGo
3gQAZmFzdC94c2wvVVQFAAOX6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgApXheR3L9ZfKF
AAAA6QAAACUAGAAAAAAAAQAAAKSB694EAGZhc3QveHNsL3RyYW5zZm9ybS14aHItZG9jLXN0ZGVy
ci50eHRVVAUAA5bpM1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACleF5HzgkoAo0AAADwAAAA
JwAYAAAAAAABAAAApIHP3wQAZmFzdC94c2wveHNsdC1iYWQtaW1wb3J0LXVyaS1zdGRlcnIudHh0
VVQFAAOW6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgApXheR8+PZg5QAAAAoAAAACQAGAAA
AAAAAQAAAKSBveAEAGZhc3QveHNsL3hzbHQtY29udGVudFR5cGUtc3RkZXJyLnR4dFVUBQADlukz
VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKZ4XkeBSnetSwAAAKwAAAA0ABgAAAAAAAEAAACk
gWvhBABmYXN0L3hzbC94c2x0LXRyYW5zZm9ybS10by1mcmFnbWVudC1jcmFzaC1zdGRlcnIudHh0
VVQFAAOX6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA43heR7s/A24ABAAAkA4AABEAGAAA
AAAAAQAAAKSBJOIEAGZ1bGxfcmVzdWx0cy5qc29uVVQFAAMK6jNWdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAArnheRwAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1Bb+YEAGh0dHAvVVQFAAOn6TNW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAzHheRwAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1B
ruYEAGh0dHAvdGVzdHMvVVQFAAPg6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAsnheRwAA
AAAAAAAAAAAAABQAGAAAAAAAAAAQAO1B8+YEAGh0dHAvdGVzdHMvYXBwY2FjaGUvVVQFAAOw6TNW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4nheR1sEP2OmQAAAZuQAAEYAGAAAAAAAAQAAAKSB
QecEAGh0dHAvdGVzdHMvYXBwY2FjaGUvY3Jhc2gtd2hlbi1uYXZpZ2F0aW5nLWF3YXktdGhlbi1i
YWNrLWNyYXNoLWxvZy50eHRVVAUAAwjqM1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACzeF5H
AAAAAAAAAAAAAAAAEQAYAAAAAAAAABAA7UFnKAUAaHR0cC90ZXN0cy9jYWNoZS9VVAUAA7HpM1Z1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADieF5HnUpVtRNBAADr9gAASwAYAAAAAAABAAAApIGy
KAUAaHR0cC90ZXN0cy9jYWNoZS9kaXNwbGF5LWltYWdlLXVuc2V0LWFsbG93cy1jYWNoZWQtaW1h
Z2UtbG9hZC1jcmFzaC1sb2cudHh0VVQFAAMI6jNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
tHheRwAAAAAAAAAAAAAAAB0AGAAAAAAAAAAQAO1BSmoFAGh0dHAvdGVzdHMvY29udGVudGV4dGVu
c2lvbnMvVVQFAAOz6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4nheR4Jbqm09QQAA6fcA
ADEAGAAAAAAAAQAAAKSBoWoFAGh0dHAvdGVzdHMvY29udGVudGV4dGVuc2lvbnMvcG9wdXBzLWNy
YXNoLWxvZy50eHRVVAUAAwjqM1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADSeF5HAAAAAAAA
AAAAAAAAEAAYAAAAAAAAABAA7UFJrAUAaHR0cC90ZXN0cy9taXNjL1VUBQAD6+kzVnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAOJ4XkfgLE69XUAAAMriAAAxABgAAAAAAAEAAACkgZOsBQBodHRw
L3Rlc3RzL21pc2Mvc2xvdy1wcmVsb2FkLWNhbmNlbC1jcmFzaC1sb2cudHh0VVQFAAMI6jNWdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA0nheRxU1NZJ6AAAAvAAAACoAGAAAAAAAAQAAAKSBW+0F
AGh0dHAvdGVzdHMvbWlzYy94c2x0LWJhZC1pbXBvcnQtc3RkZXJyLnR4dFVUBQAD6+kzVnV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAALl4XkcAAAAAAAAAAAAAAAAWABgAAAAAAAAAEADtQTnuBQBo
dHRwL3Rlc3RzL25hdmlnYXRpb24vVVQFAAO96TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
rnheR9sI00I7AAAAPwAAADcAGAAAAAAAAQAAAKSBie4FAGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9m
YWxsYmFjay1hbmNob3ItcmVsb2FkLXN0ZGVyci50eHRVVAUAA6fpM1Z1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADieF5HYJXTCbdCAABl9AAANQAYAAAAAAABAAAApIE17wUAaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL25vLXJlZmVycmVyLXJlc2V0LWNyYXNoLWxvZy50eHRVVAUAAwjqM1Z1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAAC5eF5HAAAAAAAAAAAAAAAAGQAYAAAAAAAAABAA7UFbMgYAaHR0
cC90ZXN0cy9ub3RpZmljYXRpb25zL1VUBQADvukzVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AOJ4XkeLYrwit0AAAMD1AAA7ABgAAAAAAAEAAACkga4yBgBodHRwL3Rlc3RzL25vdGlmaWNhdGlv
bnMvd2luZG93LXNob3ctb24tY2xpY2stY3Jhc2gtbG9nLnR4dFVUBQADCOozVnV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAMx4XkcAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADtQdpzBgBodHRwL3Rl
c3RzL3NlY3VyaXR5L1VUBQAD4OkzVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALN4XkcAAAAA
AAAAAAAAAAAqABgAAAAAAAAAEADtQSh0BgBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS9VVAUAA7HpM1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACzeF5HY6qsbIIA
AACoAAAAQAAYAAAAAAABAAAApIGMdAYAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kveHNsLWFsbG93ZWQtc3RkZXJyLnR4dFVUBQADsekzVnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIALN4XkdjqqxsggAAAKgAAABSABgAAAAAAAEAAACkgYh1BgBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZlY3RlZC1ieS1zdHlsZS1zcmMt
Mi1zdGRlcnIudHh0VVQFAAOx6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAzXheRwAAAAAA
AAAAAAAAACQAGAAAAAAAAAAQAO1BlnYGAGh0dHAvdGVzdHMvc2VjdXJpdHkvZnJhbWVOYXZpZ2F0
aW9uL1VUBQAD4ekzVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMx4Xkf7kLYSkQAAAP4AAABF
ABgAAAAAAAEAAACkgfR2BgBodHRwL3Rlc3RzL3NlY3VyaXR5L2ZyYW1lTmF2aWdhdGlvbi9jcm9z
cy1vcmlnaW4tb3BlbmVyLWNyYXNoLWxvZy50eHRVVAUAA+DpM1Z1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADNeF5HWPuRsL8AAAAcAQAAWAAYAAAAAAABAAAApIEEeAYAaHR0cC90ZXN0cy9zZWN1
cml0eS9mcmFtZU5hdmlnYXRpb24vaW5hY3RpdmUtZnVuY3Rpb24taW4tcG9wdXAtbmF2aWdhdGUt
Y2hpbGQtc3RkZXJyLnR4dFVUBQAD4ekzVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALJ4XkcA
AAAAAAAAAAAAAAAiABgAAAAAAAAAEADtQVV5BgBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVk
V29ybGQvVVQFAAOw6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAsnheRyPgvsiSAAAA/gAA
AEEAGAAAAAAAAQAAAKSBsXkGAGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC91c2Vy
R2VzdHVyZUV2ZW50cy1jcmFzaC1sb2cudHh0VVQFAAOw6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAsnheRwqEDe34CQAAI1AAAD4AGAAAAAAAAQAAAKSBvnoGAGh0dHAvdGVzdHMvc2VjdXJp
dHkvaXNvbGF0ZWRXb3JsZC91c2VyR2VzdHVyZUV2ZW50cy1zdGRlcnIudHh0VVQFAAOw6TNWdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAzXheRwAAAAAAAAAAAAAAACEAGAAAAAAAAAAQAO1BLoUG
AGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L1VUBQAD4ekzVnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAMx4Xkf7kLYSkQAAAP4AAABJABgAAAAAAAEAAACkgYmFBgBodHRwL3Rlc3Rz
L3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1jc3MtaW4tbWFpbi1mcmFtZS1jcmFzaC1s
b2cudHh0VVQFAAPg6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAzXheR4391APAAAAAHAEA
AEUAGAAAAAAAAQAAAKSBnYYGAGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2Vj
dXJlLWlmcmFtZS1pbi1pZnJhbWUtc3RkZXJyLnR4dFVUBQAD4ekzVnV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAANN4XkcAAAAAAAAAAAAAAAAfABgAAAAAAAAAEADtQdyHBgBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzc0F1ZGl0b3IvVVQFAAPt6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4nhe
R8dt4D51QAAAouIAAEIAGAAAAAAAAQAAAKSBNYgGAGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9saW5rLW9wZW5zLW5ldy13aW5kb3ctY3Jhc2gtbG9nLnR4dFVUBQADCOozVnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAOJ4XkdUzTLFpz8AALPeAABWABgAAAAAAAEAAACkgSbJBgBodHRw
L3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivd2luZG93LW9wZW4td2l0aG91dC11cmwtc2hvdWxk
LW5vdC1hc3NlcnQtY3Jhc2gtbG9nLnR4dFVUBQADCOozVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAGl4XkfqinxCYQUAAAUPAAAKABgAAAAAAAEAAACkgV0JBwBodHRwZC5jb25mVVQFAAMl6TNW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAwXheRwAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1B
Ag8HAGltcG9ydGVkL1VUBQADyukzVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAMF4XkcAAAAA
AAAAAAAAAAAPABgAAAAAAAAAEADtQUUPBwBpbXBvcnRlZC9ibGluay9VVAUAA8rpM1Z1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAADBeF5HAAAAAAAAAAAAAAAAFAAYAAAAAAAAABAA7UGODwcAaW1w
b3J0ZWQvYmxpbmsvZmFzdC9VVAUAA8rpM1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADBeF5H
AAAAAAAAAAAAAAAAGgAYAAAAAAAAABAA7UHcDwcAaW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9V
VAUAA8rpM1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADBeF5HAAAAAAAAAAAAAAAAIQAYAAAA
AAAAABAA7UEwEAcAaW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9idXR0b24vVVQFAAPK6TNWdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAwXheR8ch79s3AAAAQAAAAEcAGAAAAAAAAQAAAKSBixAH
AGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9ybXMvYnV0dG9uL2J1dHRvbi1yZXNldC1mb2N1cy1ieS1t
b3VzZS1zdGRlcnIudHh0VVQFAAPK6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAwXheRwAA
AAAAAAAAAAAAACAAGAAAAAAAAAAQAO1BQxEHAGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9ybXMvcmFu
Z2UvVVQFAAPK6TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAwXheR8ch79s3AAAAQAAAAD8A
GAAAAAAAAQAAAKSBnREHAGltcG9ydGVkL2JsaW5rL2Zhc3QvZm9ybXMvcmFuZ2UvcmFuZ2UtZm9j
dXMtYnktbW91c2Utc3RkZXJyLnR4dFVUBQADyukzVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AMF4XkcAAAAAAAAAAAAAAAAhABgAAAAAAAAAEADtQU0SBwBpbXBvcnRlZC9ibGluay9mYXN0L2Zv
cm1zL3N1Ym1pdC9VVAUAA8rpM1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADBeF5HxyHv2zcA
AABAAAAAQQAYAAAAAAABAAAApIGoEgcAaW1wb3J0ZWQvYmxpbmsvZmFzdC9mb3Jtcy9zdWJtaXQv
c3VibWl0LWZvY3VzLWJ5LW1vdXNlLXN0ZGVyci50eHRVVAUAA8rpM1Z1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAADgeF5HAAAAAAAAAAAAAAAACgAYAAAAAAAAABAA7UFaEwcAaW5zcGVjdG9yL1VU
BQADBOozVnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAOB4XkcAAAAAAAAAAAAAAAAOABgAAAAA
AAAAEADtQZ4TBwBpbnNwZWN0b3IvZG9tL1VUBQADBOozVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAOJ4XkdvKqXxEkEAAGX1AAAtABgAAAAAAAEAAACkgeYTBwBpbnNwZWN0b3IvZG9tL2RvbS1y
ZW1vdmUtZXZlbnRzLWNyYXNoLWxvZy50eHRVVAUAAwjqM1Z1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADIeF5HfyFKV7wCAADvKQAAKwAYAAAAAAABAAAApIFfVQcAcHl3ZWJzb2NrZXQud3MubG9n
LTMwT2N0MjAxNS0xNTAzMTktZXJyLnR4dFVUBQAD2OkzVnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIALd4Xkdz8NeECAEAAI8CAAArABgAAAAAAAEAAACkgYBYBwBweXdlYnNvY2tldC53cy5sb2ct
MzBPY3QyMDE1LTE1MDMxOS1vdXQudHh0VVQFAAO66TNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgA43heR/1BU4cRJwAAyqgAAAwAGAAAAAAAAQAAAKSB7VkHAHJlc3VsdHMuaHRtbFVUBQADCuoz
VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAON4XkespRHwUJgFAJX9HQAKABgAAAAAAAEAAACk
gUSBBwBzdGF0cy5qc29uVVQFAAMK6jNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4nheR1Mb
pLKmQQAAugABACMAGAAAAAAAAQAAAKSB2BkNAFdlYktpdFRlc3RSdW5uZXItNTcwOS1jcmFzaC1s
b2cudHh0VVQFAAMI6jNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4nheR7ohfLzFQAAAL+8A
ACMAGAAAAAAAAQAAAKSB21sNAFdlYktpdFRlc3RSdW5uZXItNjQ0OC1jcmFzaC1sb2cudHh0VVQF
AAMI6jNWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4nheR/J1e+9uQgAAnPYAACMAGAAAAAAA
AQAAAKSB/ZwNAFdlYktpdFRlc3RSdW5uZXItNjY3OC1jcmFzaC1sb2cudHh0VVQFAAMI6jNWdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4nheR7eeDPM9twAAi2sSABkAGAAAAAAAAAAAAKSByN8N
AHdwdHdrX3Byb2Nlc3NfbG9nLm91dC50eHRVVAUAAwjqM1Z1eAsAAQT1AQAABBQAAABQSwUGAAAA
AJ4AngBDQgAAWJcOAAAA
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264428</attachid>
            <date>2015-10-30 15:28:25 -0700</date>
            <delta_ts>2015-10-30 15:50:21 -0700</delta_ts>
            <desc>Part 17 - move WebPageProxy and PageClientImpl</desc>
            <filename>17.diff</filename>
            <type>text/plain</type>
            <size>129056</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAzMjFkMWViLi5mOTNiMjE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjY3
IEBACisyMDE1LTEwLTMwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIFdLVmlldyBiZWluZyBpbnNpZGUgV0tXZWJWaWV3IGxlYWRzIHRvIHdlaXJkIEFQ
SSBpc3N1ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE1MDE3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgaW5pdFdp
dGhGcmFtZTpwcm9jZXNzR3JvdXA6YnJvd3NpbmdDb250ZXh0R3JvdXA6cmVsYXRlZFRvVmlldzpd
KToKKyAgICAgICAgKC1bV0tWaWV3IHByZXBhcmVDb250ZW50SW5SZWN0Ol0pOgorICAgICAgICAo
LVtXS1ZpZXcgaW5pdFdpdGhGcmFtZTpwcm9jZXNzUG9vbDpjb25maWd1cmF0aW9uOndlYlZpZXc6
XSk6CisgICAgICAgICgtW1dLVmlldyBwYWdlUmVmXSk6CisgICAgICAgICgtW1dLVmlldyBfd2Vi
X2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0SW50ZXJu
YWw6d2l0aFR5cGU6dXNlckRhdGE6XSk6CisgICAgICAgICgtW1dLVmlldyBkZWFsbG9jXSk6IERl
bGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmg6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwYWdlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
V2ViVmlld0ltcGwubW06CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIGlu
aXRXaXRoVmlldzppbXBsOl0pOgorICAgICAgICAoLVtXS1dpbmRvd1Zpc2liaWxpdHlPYnNlcnZl
ciBkZWFsbG9jXSk6CisgICAgICAgICgtW1dLV2luZG93VmlzaWJpbGl0eU9ic2VydmVyIF9hY3Rp
dmVTcGFjZURpZENoYW5nZTpdKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OldlYlZp
ZXdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6On5XZWJWaWV3SW1wbCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXREcmF3c0JhY2tncm91bmQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZHJhd3NCYWNrZ3JvdW5kKToKKyAgICAgICAgKFdlYktp
dDo6V2ViVmlld0ltcGw6OnNldERyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmlzT3BhcXVlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmFjY2VwdHNGaXJzdE1vdXNlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0lt
cGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
OnJlc2lnbkZpcnN0UmVzcG9uZGVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZp
ZXdXaWxsU3RhcnRMaXZlUmVzaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZp
ZXdEaWRFbmRMaXZlUmVzaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0
ZVdpbmRvd0FuZFZpZXdGcmFtZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0
Rml4ZWRMYXlvdXRTaXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmZpeGVkTGF5
b3V0U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppc1VzaW5nVUlTaWRlQ29t
cG9zaXRpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0RHJhd2luZ0FyZWFT
aXplKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmZvcmNlQXN5bmNEcmF3aW5nQXJl
YVNpemVVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2FpdEZvckFzeW5j
RHJhd2luZ0FyZWFTaXplVXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVw
ZGF0ZUxheWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRyYXdSZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnByZXBhcmVDb250ZW50SW5SZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZVZpZXdFeHBvc2VkUmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRNaW5pbXVtU2l6ZUZvckF1dG9MYXlvdXQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWluaW11bVNpemVGb3JBdXRvTGF5b3V0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFNob3VsZEV4cGFuZFRvVmlld0hlaWdo
dEZvckF1dG9MYXlvdXQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2hvdWxkRXhw
YW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpzZXRJbnRyaW5zaWNDb250ZW50U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpzZXRWaWV3U2NhbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dmlld1Nj
YWxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnN1cHBvcnRzQXJiaXRyYXJ5TGF5
b3V0TW9kZXMpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0T3ZlcnJpZGVEZXZp
Y2VTY2FsZUZhY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRP
cmRlck9mZlNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRP
cmRlck9uU2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OndpbmRvd0RpZEJl
Y29tZUtleSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRSZXNpZ25L
ZXkpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkTWluaWF0dXJpemUp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkRGVtaW5pYXR1cml6ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VCYWNraW5nUHJv
cGVydGllcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VT
Y3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2luZG93RGlkQ2hhbmdlTGF5
ZXJIb3N0aW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OndpbmRvd0RpZENoYW5n
ZU9jY2x1c2lvblN0YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNob3VsZERl
bGF5V2luZG93T3JkZXJpbmdGb3JFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojp3aW5kb3dSZXNpemVNb3VzZUxvY2F0aW9uSXNJblZpc2libGVTY3JvbGxlclRodW1iKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZpZXdEaWRNb3ZlVG9XaW5kb3cpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dmlld0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZpZXdEaWRIaWRlKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnZpZXdEaWRVbmhpZGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6YWN0aXZlU3BhY2VEaWRDaGFuZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6cG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRFdmVudCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRVbmRlcmxheUNvbG9yKToKKyAgICAgICAgKFdl
YktpdDo6V2ViVmlld0ltcGw6OnVuZGVybGF5Q29sb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6cGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNldE92ZXJsYXlTY3JvbGxiYXJTdHlsZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYlZpZXdJbXBsOjpvdmVybGF5U2Nyb2xsYmFyU3R5bGUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6ZW5kRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcyk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjplbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzU3luYyk6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwcmVwYXJlRm9yTW92ZVRvV2luZG93KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnVwZGF0ZVNlY3VyZUlucHV0U3RhdGUpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0
YXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZVBsdWdpbkNvbXBsZXhU
ZXh0SW5wdXRLZXlEb3duKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmhhbmRsZUFj
Y2VwdGVkQWx0ZXJuYXRpdmVUZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBy
ZXNzdXJlQ2hhbmdlV2l0aEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omlz
RWRpdGFibGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZXhlY3V0ZUVkaXRDb21t
YW5kRm9yU2VsZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6d3JpdGVTZWxl
Y3Rpb25Ub1Bhc3RlYm9hcmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cmVhZFNl
bGVjdGlvbkZyb21QYXN0ZWJvYXJkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnZh
bGlkUmVxdWVzdG9yRm9yU2VuZEFuZFJldHVyblR5cGVzKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6dXBkYXRlRm9udFBhbmVsSWZOZWVkZWQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6Y2hhbmdlRm9udEZyb21Gb250UGFuZWwpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6dmFsaWRhdGVVc2VySW50ZXJmYWNlSXRlbSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpzdGFydFNwZWFraW5nKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OnNob3dHdWVzc1BhbmVsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNo
ZWNrU3BlbGxpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y2hhbmdlU3BlbGxp
bmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dG9nZ2xlQ29udGludW91c1NwZWxs
Q2hlY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0R3JhbW1hckNoZWNr
aW5nRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp0b2dnbGVHcmFtbWFy
Q2hlY2tpbmcpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6dG9nZ2xlQXV0b21hdGlj
U3BlbGxpbmdDb3JyZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRvZ2ds
ZVNtYXJ0SW5zZXJ0RGVsZXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEF1
dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjp0b2dnbGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbik6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpzZXRBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp0b2dnbGVBdXRvbWF0aWNEYXNoU3Vic3RpdHV0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEF1dG9tYXRpY0xpbmtEZXRl
Y3Rpb25FbmFibGVkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnRvZ2dsZUF1dG9t
YXRpY0xpbmtEZXRlY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0QXV0
b21hdGljVGV4dFJlcGxhY2VtZW50RW5hYmxlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjp0b2dnbGVBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnQpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6dXBwZXJjYXNlV29yZCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBs
Ojpsb3dlcmNhc2VXb3JkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNhcGl0YWxp
emVXb3JkKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnByZWZlcmVuY2VzRGlkQ2hh
bmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRp
dmVDaGlsZFdpbmRvd3NGcm9tVmlld09ubHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6cXVpY2tMb29rV2l0aEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omlt
bWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRpZENoYW5nZUNvbnRlbnRTaXplKToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnNldElnbm9yZXNOb25XaGVlbEV2ZW50cyk6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1cGRhdGVSZW1vdGVBY2Nlc3NpYmlsaXR5UmVnaXN0cmF0
aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmFjY2Vzc2liaWxpdHlSZWdpc3Rl
clVJUHJvY2Vzc1Rva2Vucyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzdHJpbmdG
b3JUb29sVGlwKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldEluc3BlY3RvckF0
dGFjaG1lbnRWaWV3KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlbW90ZU9iamVj
dFJlZ2lzdHJ5KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmJyb3dzaW5nQ29udGV4
dENvbnRyb2xsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZHJhZ2dlZEltYWdl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRyYWdnaW5nRW50ZXJlZCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkcmFnZ2luZ1VwZGF0ZWQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6ZHJhZ2dpbmdFeGl0ZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJW
aWV3SW1wbDo6cGVyZm9ybURyYWdPcGVyYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6dGFrZVZpZXdTbmFwc2hvdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpz
YXZlQmFja0ZvcndhcmRTbmFwc2hvdEZvckN1cnJlbnRJdGVtKToKKyAgICAgICAgKFdlYktpdDo6
V2ViVmlld0ltcGw6OnNhdmVCYWNrRm9yd2FyZFNuYXBzaG90Rm9ySXRlbSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRBbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJl
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRNYWduaWZpY2F0aW9uKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Om1hZ25pZmljYXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6c2Nyb2xsV2hlZWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6c3dpcGVXaXRoRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWFn
bmlmeVdpdGhFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyb3RhdGVXaXRo
RXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZG9Db21tYW5kQnlTZWxlY3Rv
cik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppbnNlcnRUZXh0KToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OnNlbGVjdGVkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXIp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWFya2VkUmFuZ2VXaXRoQ29tcGxldGlv
bkhhbmRsZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aGFzTWFya2VkVGV4dFdp
dGhDb21wbGV0aW9uSGFuZGxlcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphdHRy
aWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZp
ZXdJbXBsOjpmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjpjaGFyYWN0ZXJJbmRleEZvclBvaW50KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
Vmlld0ltcGw6OmlucHV0Q29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjp1
bm1hcmtUZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldE1hcmtlZFRleHQp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVxdWl2YWxlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6a2V5VXApOgorICAgICAgICAoV2ViS2l0OjpX
ZWJWaWV3SW1wbDo6a2V5RG93bik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpmbGFn
c0NoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZXhlY3V0ZVNhdmVkS2V5
cHJlc3NDb21tYW5kcyk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZWxlY3RlZFJh
bmdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omhhc01hcmtlZFRleHQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6bWFya2VkUmFuZ2UpOgorICAgICAgICAoV2ViS2l0
OjpXZWJWaWV3SW1wbDo6c2V0Q29udGVudFByZXBhcmF0aW9uUmVjdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9s
bGVyRm9ySGl0VGVzdFJlc3VsdEZyb21WaWV3T25seSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjpkZXN0cm95UmVtb3RlT2JqZWN0UmVnaXN0cnkpOiBEZWxldGVkLgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpzY3JvbGxQaW5uaW5nQmVoYXZpb3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
YWdlUHJveHk6Om92ZXJsYXlTY3JvbGxiYXJTdHlsZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w6OmNyZWF0
ZVdlYlBhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
bWFjL1BhZ2VDbGllbnRJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6
UGFnZUNsaWVudEltcGwpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRl
RHJhd2luZ0FyZWFQcm94eSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp2aWV3
U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjphY3RpdmVWaWV3KToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmFjdGl2ZVdpbmRvdyk6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjppc1ZpZXdGb2N1c2VkKToKKyAgICAgICAgKFdlYktpdDo6
UGFnZUNsaWVudEltcGw6Om1ha2VGaXJzdFJlc3BvbmRlcik6CisgICAgICAgIChXZWJLaXQ6OlBh
Z2VDbGllbnRJbXBsOjppc1ZpZXdWaXNpYmxlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6OmNvbG9yU3BhY2UpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cHJv
Y2Vzc0RpZEV4aXQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cGFnZUNsb3Nl
ZCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRSZWxhdW5jaFByb2Nlc3Mp
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cHJlZmVyZW5jZXNEaWRDaGFuZ2Up
OgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6dG9vbFRpcENoYW5nZWQpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkQ29tbWl0TG9hZEZvck1haW5GcmFtZSk6
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkaWRDaGFuZ2VDb250ZW50U2l6ZSk6
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzZXRDdXJzb3IpOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVnaXN0ZXJFZGl0Q29tbWFuZCk6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZWdpc3Rlckluc2VydGlvblVuZG9Hcm91cGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjbGVhckFsbEVkaXRDb21tYW5kcyk6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjYW5VbmRvUmVkbyk6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpleGVjdXRlVW5kb1JlZG8pOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6c2V0RHJhZ0ltYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnNldFByb21pc2VkRGF0YUZvckltYWdlKToKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudEltcGw6OnNldFByb21pc2VkRGF0YUZvckF0dGFjaG1lbnQpOgorICAgICAgICAoV2Vi
S2l0OjpQYWdlQ2xpZW50SW1wbDo6dXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyZXNldFNlY3VyZUlucHV0U3RhdGUpOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6bm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRD
b21wb3NpdGlvbik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjb252ZXJ0VG9E
ZXZpY2VTcGFjZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjb252ZXJ0VG9V
c2VyU3BhY2UpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2NyZWVuVG9Sb290
Vmlldyk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpyb290Vmlld1RvU2NyZWVu
KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRvbmVXaXRoS2V5RXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlUG9wdXBNZW51UHJveHkpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29udGV4dE1lbnVQcm94eSk6
CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpjcmVhdGVDb2xvclBpY2tlcik6Cisg
ICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yKToKKyAgICAg
ICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmNsZWFyVGV4dEluZGljYXRvcik6CisgICAgICAg
IChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpzZXRUZXh0SW5kaWNhdG9yQW5pbWF0aW9uUHJvZ3Jl
c3MpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6YWNjZXNzaWJpbGl0eVdlYlBy
b2Nlc3NUb2tlblJlY2VpdmVkKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmVu
dGVyQWNjZWxlcmF0ZWRDb21wb3NpdGluZ01vZGUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6ZXhpdEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OnVwZGF0ZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdNb2RlKToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdS
b290TGF5ZXIpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6YWNjZWxlcmF0ZWRD
b21wb3NpdGluZ1Jvb3RMYXllcik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp0
YWtlVmlld1NuYXBzaG90KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OnNlbGVj
dGlvbkRpZENoYW5nZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjp3aGVlbEV2
ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJ
bXBsOjpnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlKToKKyAgICAgICAgKFdlYktp
dDo6UGFnZUNsaWVudEltcGw6OnBsdWdpbkZvY3VzT3JXaW5kb3dGb2N1c0NoYW5nZWQpOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0
YXRlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1EaWN0aW9u
YXJ5TG9va3VwKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpc21pc3NDb250
ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3MpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6c2hvd0NvcnJlY3Rpb25QYW5lbCk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpyZWNvcmRBdXRvY29ycmVjdGlvblJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2UpOgorICAgICAgICAo
V2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6aW50cmluc2ljQ29udGVudFNpemVEaWRDaGFuZ2UpOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZXhlY3V0ZVNhdmVkQ29tbWFuZEJ5U2Vs
ZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2hvd0RpY3RhdGlvbkFs
dGVybmF0aXZlVUkpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6Y2xvc2VGdWxs
U2NyZWVuTWFuYWdlcik6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjppc0Z1bGxT
Y3JlZW4pOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZW50ZXJGdWxsU2NyZWVu
KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmV4aXRGdWxsU2NyZWVuKToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmJlZ2FuRW50ZXJGdWxsU2NyZWVuKToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmJlZ2FuRXhpdEZ1bGxTY3JlZW4pOgorICAg
ICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5
b3V0Rm9yTWFpbkZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmRpZEZp
bmlzaExvYWRGb3JNYWluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6
ZGlkRmFpbExvYWRGb3JNYWluRnJhbWUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1w
bDo6ZGlkU2FtZURvY3VtZW50TmF2aWdhdGlvbkZvck1haW5GcmFtZSk6CisgICAgICAgIChXZWJL
aXQ6OlBhZ2VDbGllbnRJbXBsOjpyZW1vdmVOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6OmJvdW5kc09mTGF5ZXJJbkxheWVyQmFja2Vk
V2luZG93Q29vcmRpbmF0ZXMpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6ZGlk
UGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3QpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xp
ZW50SW1wbDo6aW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1
bHQpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6c2hvd1BsYXRmb3JtQ29udGV4
dE1lbnUpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6cmVmVmlldyk6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkZXJlZlZpZXcpOgorICAgICAgICAoV2ViS2l0
OjpQYWdlQ2xpZW50SW1wbDo6c3RhcnRXaW5kb3dEcmFnKToKKyAgICAgICAgKFdlYktpdDo6UGFn
ZUNsaWVudEltcGw6OnBsYXRmb3JtV2luZG93KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVu
dEltcGw6Omluc3BlY3RvckF0dGFjaG1lbnRWaWV3KToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNs
aWVudEltcGw6OnJlbW90ZU9iamVjdFJlZ2lzdHJ5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFj
L1dlYkNvbG9yUGlja2VyTWFjLmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJDb2xvclBp
Y2tlck1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJNYWM6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJLaXQ6OldlYkNvbG9yUGlja2VyTWFjOjpXZWJDb2xvclBpY2tlck1hYyk6
CisgICAgICAgICgtW1dLQ29sb3JQb3BvdmVyTWFjIGluaXRXaXRoRnJhbWU6aW5WaWV3Ol0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbToKKyAgICAgICAgKFdl
YktpdDo6V2ViQ29udGV4dE1lbnVQcm94eU1hYzo6V2ViQ29udGV4dE1lbnVQcm94eU1hYyk6Cisg
ICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1hYy5oOgorICAgICAgICAo
V2ViS2l0OjpXZWJQb3B1cE1lbnVQcm94eU1hYzo6Y3JlYXRlKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQb3B1
cE1lbnVQcm94eU1hYzo6V2ViUG9wdXBNZW51UHJveHlNYWMpOgorICAgICAgICBNb3ZlIG93bmVy
c2hpcCBvZiBXZWJQYWdlUHJveHkgYW5kIFBhZ2VDbGllbnRJbXBsIHRvIFdlYlZpZXdJbXBsLgor
CiAyMDE1LTEwLTMwICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBB
bm90aGVyIHNwZWN1bGF0aXZlIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlldy5tbQppbmRleCAxN2U5YmYxLi41NWEzNWI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0yNCwxMDUgKzI0LDI1IEBACiAgKi8K
IAogI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJXS1ZpZXcuaCIKKyNpbXBvcnQgIldLVmll
d0ludGVybmFsLmgiCiAKICNpZiBQTEFURk9STShNQUMpCiAKLSNpZiBVU0UoRElDVEFUSU9OX0FM
VEVSTkFUSVZFUykKLSNpbXBvcnQgPEFwcEtpdC9OU1RleHRBbHRlcm5hdGl2ZXMuaD4KLSNpbXBv
cnQgPEFwcEtpdC9OU0F0dHJpYnV0ZWRTdHJpbmcuaD4KLSNlbmRpZgotCi0jaW1wb3J0ICJBUElM
ZWdhY3lDb250ZXh0SGlzdG9yeUNsaWVudC5oIgorI2ltcG9ydCAiQVBJSGl0VGVzdFJlc3VsdC5o
IgogI2ltcG9ydCAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIKLSNpbXBvcnQgIkFwcEtpdFNQSS5o
IgotI2ltcG9ydCAiQXR0cmlidXRlZFN0cmluZy5oIgotI2ltcG9ydCAiRGF0YVJlZmVyZW5jZS5o
IgotI2ltcG9ydCAiRWRpdGluZ1JhbmdlLmgiCi0jaW1wb3J0ICJFZGl0b3JTdGF0ZS5oIgotI2lt
cG9ydCAiTGF5ZXJUcmVlQ29udGV4dC5oIgotI2ltcG9ydCAiTG9nZ2luZy5oIgotI2ltcG9ydCAi
TmF0aXZlV2ViS2V5Ym9hcmRFdmVudC5oIgotI2ltcG9ydCAiTmF0aXZlV2ViTW91c2VFdmVudC5o
IgotI2ltcG9ydCAiTmF0aXZlV2ViV2hlZWxFdmVudC5oIgotI2ltcG9ydCAiUGFnZUNsaWVudElt
cGwuaCIKLSNpbXBvcnQgIlBhc3RlYm9hcmRUeXBlcy5oIgotI2ltcG9ydCAiU3RyaW5nVXRpbGl0
aWVzLmgiCi0jaW1wb3J0ICJUZXh0Q2hlY2tlci5oIgotI2ltcG9ydCAiVGV4dENoZWNrZXJTdGF0
ZS5oIgotI2ltcG9ydCAiV0tBUElDYXN0LmgiCi0jaW1wb3J0ICJXS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyLmgiCi0jaW1wb3J0ICJXS0xheW91dE1vZGUuaCIKLSNpbXBvcnQgIldLUHJvY2Vz
c1Bvb2xJbnRlcm5hbC5oIgotI2ltcG9ydCAiV0tTdHJpbmdDRi5oIgotI2ltcG9ydCAiV0tUZXh0
SW5wdXRXaW5kb3dDb250cm9sbGVyLmgiCi0jaW1wb3J0ICJXS1ZpZXdJbnRlcm5hbC5oIgotI2lt
cG9ydCAiV0tWaWV3UHJpdmF0ZS5oIgotI2ltcG9ydCAiV0tXZWJWaWV3LmgiCi0jaW1wb3J0ICJX
ZWJCYWNrRm9yd2FyZExpc3QuaCIKLSNpbXBvcnQgIldlYkV2ZW50RmFjdG9yeS5oIgotI2ltcG9y
dCAiV2ViSGl0VGVzdFJlc3VsdERhdGEuaCIKKyNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0R3Jv
dXBQcml2YXRlLmgiCisjaW1wb3J0ICJXS1Byb2Nlc3NHcm91cFByaXZhdGUuaCIKKyNpbXBvcnQg
IldlYkJhY2tGb3J3YXJkTGlzdEl0ZW0uaCIKICNpbXBvcnQgIldlYktpdDJJbml0aWFsaXplLmgi
Ci0jaW1wb3J0ICJXZWJQYWdlLmgiCiAjaW1wb3J0ICJXZWJQYWdlR3JvdXAuaCIKLSNpbXBvcnQg
IldlYlBhZ2VQcm94eS5oIgotI2ltcG9ydCAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbXBvcnQgIldl
YlByb2Nlc3NQb29sLmgiCi0jaW1wb3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKLSNpbXBvcnQgIldl
YlN5c3RlbUludGVyZmFjZS5oIgogI2ltcG9ydCAiV2ViVmlld0ltcGwuaCIKLSNpbXBvcnQgPFF1
YXJ0ekNvcmUvUXVhcnR6Q29yZS5oPgotI2ltcG9ydCA8V2ViQ29yZS9BWE9iamVjdENhY2hlLmg+
Ci0jaW1wb3J0IDxXZWJDb3JlL0NvbG9yTWFjLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0NvcmVHcmFw
aGljc1NQSS5oPgotI2ltcG9ydCA8V2ViQ29yZS9EYXRhRGV0ZWN0b3JzU1BJLmg+Ci0jaW1wb3J0
IDxXZWJDb3JlL0RyYWdDb250cm9sbGVyLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0RyYWdEYXRhLmg+
Ci0jaW1wb3J0IDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgotI2ltcG9ydCA8V2ViQ29yZS9JbWFnZS5o
PgotI2ltcG9ydCA8V2ViQ29yZS9JbnRSZWN0Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL0ZpbGVTeXN0
ZW0uaD4KLSNpbXBvcnQgPFdlYkNvcmUvS2V5Ym9hcmRFdmVudC5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL05TTWVudVNQSS5oPgotI2lt
cG9ydCA8V2ViQ29yZS9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5oPgotI2ltcG9ydCA8V2ViQ29y
ZS9QbGF0Zm9ybVNjcmVlbi5oPgotI2ltcG9ydCA8V2ViQ29yZS9SZWdpb24uaD4KLSNpbXBvcnQg
PFdlYkNvcmUvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1No
YXJlZEJ1ZmZlci5oPgotI2ltcG9ydCA8V2ViQ29yZS9UZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2Uu
aD4KLSNpbXBvcnQgPFdlYkNvcmUvVGV4dEluZGljYXRvci5oPgotI2ltcG9ydCA8V2ViQ29yZS9U
ZXh0SW5kaWNhdG9yV2luZG93Lmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1RleHRVbmRvSW5zZXJ0aW9u
TWFya3VwTWFjLmg+Ci0jaW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVDQUxheWVyRXh0cmFzLmg+Ci0j
aW1wb3J0IDxXZWJDb3JlL1dlYkNvcmVGdWxsU2NyZWVuUGxhY2Vob2xkZXJWaWV3Lmg+Ci0jaW1w
b3J0IDxXZWJDb3JlL1dlYkNvcmVGdWxsU2NyZWVuV2luZG93Lmg+Ci0jaW1wb3J0IDxXZWJDb3Jl
L1dlYkNvcmVOU1N0cmluZ0V4dHJhcy5oPgotI2ltcG9ydCA8V2ViS2l0U3lzdGVtSW50ZXJmYWNl
Lmg+Ci0jaW1wb3J0IDxzeXMvc3RhdC5oPgotI2ltcG9ydCA8d3RmL1JlZlB0ci5oPgotI2ltcG9y
dCA8d3RmL1JldGFpblB0ci5oPgotI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KLQotLyogQVBJIGlu
dGVybmFscy4gKi8KLSNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0R3JvdXBQcml2YXRlLmgiCi0j
aW1wb3J0ICJXS1Byb2Nlc3NHcm91cFByaXZhdGUuaCIKIAogdXNpbmcgbmFtZXNwYWNlIFdlYktp
dDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0jaWYgVVNFKEFTWU5DX05TVEVYVElOUFVU
Q0xJRU5UKQotQGludGVyZmFjZSBOU1RleHRJbnB1dENvbnRleHQgKFdLTlNUZXh0SW5wdXRDb250
ZXh0RGV0YWlscykKLS0gKHZvaWQpaGFuZGxlRXZlbnQ6KE5TRXZlbnQgKilldmVudCBjb21wbGV0
aW9uSGFuZGxlcjoodm9pZCheKShCT09MIGhhbmRsZWQpKWNvbXBsZXRpb25IYW5kbGVyOwotLSAo
dm9pZCloYW5kbGVFdmVudEJ5SW5wdXRNZXRob2Q6KE5TRXZlbnQgKilldmVudCBjb21wbGV0aW9u
SGFuZGxlcjoodm9pZCheKShCT09MIGhhbmRsZWQpKWNvbXBsZXRpb25IYW5kbGVyOwotLSAoQk9P
TCloYW5kbGVFdmVudEJ5S2V5Ym9hcmRMYXlvdXQ6KE5TRXZlbnQgKilldmVudDsKLUBlbmQKLSNl
bmRpZgotCiBAaW50ZXJmYWNlIFdLVmlld0RhdGEgOiBOU09iamVjdCB7CiBAcHVibGljCi0gICAg
c3RkOjp1bmlxdWVfcHRyPFBhZ2VDbGllbnRJbXBsPiBfcGFnZUNsaWVudDsKLSAgICBSZWZQdHI8
V2ViUGFnZVByb3h5PiBfcGFnZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViVmlld0ltcGw+IF9p
bXBsOwogfQogCkBAIC0xNDUsMjkgKzY1LDE4IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwog
CiAtIChpZClpbml0V2l0aEZyYW1lOihOU1JlY3QpZnJhbWUgcHJvY2Vzc0dyb3VwOihXS1Byb2Nl
c3NHcm91cCAqKXByb2Nlc3NHcm91cCBicm93c2luZ0NvbnRleHRHcm91cDooV0tCcm93c2luZ0Nv
bnRleHRHcm91cCAqKWJyb3dzaW5nQ29udGV4dEdyb3VwIHJlbGF0ZWRUb1ZpZXc6KFdLVmlldyAq
KXJlbGF0ZWRWaWV3CiB7Ci0gICAgcmV0dXJuIFtzZWxmIGluaXRXaXRoRnJhbWU6ZnJhbWUgY29u
dGV4dFJlZjpwcm9jZXNzR3JvdXAuX2NvbnRleHRSZWYgcGFnZUdyb3VwUmVmOmJyb3dzaW5nQ29u
dGV4dEdyb3VwLl9wYWdlR3JvdXBSZWYgcmVsYXRlZFRvUGFnZTpyZWxhdGVkVmlldyA/IHRvQVBJ
KHJlbGF0ZWRWaWV3LT5fZGF0YS0+X3BhZ2UuZ2V0KCkpIDogbmlsXTsKKyAgICByZXR1cm4gW3Nl
bGYgaW5pdFdpdGhGcmFtZTpmcmFtZSBjb250ZXh0UmVmOnByb2Nlc3NHcm91cC5fY29udGV4dFJl
ZiBwYWdlR3JvdXBSZWY6YnJvd3NpbmdDb250ZXh0R3JvdXAuX3BhZ2VHcm91cFJlZiByZWxhdGVk
VG9QYWdlOnJlbGF0ZWRWaWV3ID8gcmVsYXRlZFZpZXcucGFnZVJlZiA6IG5pbF07CiB9CiAKICNl
bmRpZiAvLyBXS19BUElfRU5BQkxFRAogCiAtICh2b2lkKWRlYWxsb2MKIHsKLSNpZiBXS19BUElf
RU5BQkxFRAotICAgIF9kYXRhLT5faW1wbC0+ZGVzdHJveVJlbW90ZU9iamVjdFJlZ2lzdHJ5KCk7
Ci0jZW5kaWYKLQotICAgIF9kYXRhLT5fcGFnZS0+Y2xvc2UoKTsKLQogICAgIF9kYXRhLT5faW1w
bCA9IG51bGxwdHI7CiAKICAgICBbX2RhdGEgcmVsZWFzZV07CiAgICAgX2RhdGEgPSBuaWw7CiAK
LSAgICBOU05vdGlmaWNhdGlvbkNlbnRlciogd29ya3NwYWNlTm90aWZpY2F0aW9uQ2VudGVyID0g
W1tOU1dvcmtzcGFjZSBzaGFyZWRXb3Jrc3BhY2VdIG5vdGlmaWNhdGlvbkNlbnRlcl07Ci0gICAg
W3dvcmtzcGFjZU5vdGlmaWNhdGlvbkNlbnRlciByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNX
b3Jrc3BhY2VBY3RpdmVTcGFjZURpZENoYW5nZU5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKLQot
ICAgIFdlYlByb2Nlc3NQb29sOjpzdGF0aXN0aWNzKCkud2tWaWV3Q291bnQtLTsKLQogICAgIFtz
dXBlciBkZWFsbG9jXTsKIH0KIApAQCAtMjM1LDggKzE0NCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBX
ZWJDb3JlOwogCiAtICh2b2lkKXByZXBhcmVDb250ZW50SW5SZWN0OihOU1JlY3QpcmVjdAogewot
ICAgIF9kYXRhLT5faW1wbC0+c2V0Q29udGVudFByZXBhcmF0aW9uUmVjdChOU1JlY3RUb0NHUmVj
dChyZWN0KSk7Ci0gICAgX2RhdGEtPl9pbXBsLT51cGRhdGVWaWV3RXhwb3NlZFJlY3QoKTsKKyAg
ICBfZGF0YS0+X2ltcGwtPnByZXBhcmVDb250ZW50SW5SZWN0KE5TUmVjdFRvQ0dSZWN0KHJlY3Qp
KTsKIH0KIAogLSAodm9pZClzZXRGcmFtZVNpemU6KE5TU2l6ZSlzaXplCkBAIC0xMDA3LDMzICs5
MTUsMTAgQEAgU29tZSBvdGhlciBlZGl0aW5nLXJlbGF0ZWQgbWV0aG9kcyBzdGlsbCB1bmltcGxl
bWVudGVkOgogICAgIGlmICghc2VsZikKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIFtOU0Fw
cCByZWdpc3RlclNlcnZpY2VzTWVudVNlbmRUeXBlczpQYXN0ZWJvYXJkVHlwZXM6OmZvclNlbGVj
dGlvbigpIHJldHVyblR5cGVzOlBhc3RlYm9hcmRUeXBlczo6Zm9yRWRpdGluZygpXTsKLQogICAg
IEluaXRpYWxpemVXZWJLaXQyKCk7CiAKICAgICBfZGF0YSA9IFtbV0tWaWV3RGF0YSBhbGxvY10g
aW5pdF07Ci0KLSAgICBfZGF0YS0+X3BhZ2VDbGllbnQgPSBzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VD
bGllbnRJbXBsPihzZWxmLCB3ZWJWaWV3KTsKLSAgICBfZGF0YS0+X3BhZ2UgPSBwcm9jZXNzUG9v
bC5jcmVhdGVXZWJQYWdlKCpfZGF0YS0+X3BhZ2VDbGllbnQsIFdURjo6bW92ZShjb25maWd1cmF0
aW9uKSk7Ci0KLSAgICBfZGF0YS0+X2ltcGwgPSBzdGQ6Om1ha2VfdW5pcXVlPFdlYlZpZXdJbXBs
PihzZWxmLCAqX2RhdGEtPl9wYWdlLCAqX2RhdGEtPl9wYWdlQ2xpZW50KTsKLSAgICBzdGF0aWNf
Y2FzdDxQYWdlQ2xpZW50SW1wbCY+KCpfZGF0YS0+X3BhZ2VDbGllbnQpLnNldEltcGwoKl9kYXRh
LT5faW1wbCk7Ci0KLSAgICBfZGF0YS0+X3BhZ2UtPnNldEFkZHNWaXNpdGVkTGlua3MocHJvY2Vz
c1Bvb2wuaGlzdG9yeUNsaWVudCgpLmFkZHNWaXNpdGVkTGlua3MoKSk7Ci0KLSAgICBfZGF0YS0+
X3BhZ2UtPmluaXRpYWxpemVXZWJQYWdlKCk7Ci0KLSAgICBfZGF0YS0+X2ltcGwtPnJlZ2lzdGVy
RHJhZ2dlZFR5cGVzKCk7Ci0KLSAgICBzZWxmLndhbnRzTGF5ZXIgPSBZRVM7Ci0KLSAgICAvLyBF
eHBsaWNpdGx5IHNldCB0aGUgbGF5ZXIgY29udGVudHMgcGxhY2VtZW50IHNvIEFwcEtpdCB3aWxs
IG1ha2Ugc3VyZSB0aGF0IG91ciBsYXllciBoYXMgbWFza3NUb0JvdW5kcyBzZXQgdG8gWUVTLgot
ICAgIHNlbGYubGF5ZXJDb250ZW50c1BsYWNlbWVudCA9IE5TVmlld0xheWVyQ29udGVudHNQbGFj
ZW1lbnRUb3BMZWZ0OwotCi0gICAgV2ViUHJvY2Vzc1Bvb2w6OnN0YXRpc3RpY3MoKS53a1ZpZXdD
b3VudCsrOwotCi0gICAgTlNOb3RpZmljYXRpb25DZW50ZXIqIHdvcmtzcGFjZU5vdGlmaWNhdGlv
bkNlbnRlciA9IFtbTlNXb3Jrc3BhY2Ugc2hhcmVkV29ya3NwYWNlXSBub3RpZmljYXRpb25DZW50
ZXJdOwotICAgIFt3b3Jrc3BhY2VOb3RpZmljYXRpb25DZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBz
ZWxlY3RvcjpAc2VsZWN0b3IoX2FjdGl2ZVNwYWNlRGlkQ2hhbmdlOikgbmFtZTpOU1dvcmtzcGFj
ZUFjdGl2ZVNwYWNlRGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOworICAgIF9kYXRh
LT5faW1wbCA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViVmlld0ltcGw+KHNlbGYsIHdlYlZpZXcsIHBy
b2Nlc3NQb29sLCBXVEY6Om1vdmUoY29uZmlndXJhdGlvbikpOwogCiAgICAgcmV0dXJuIHNlbGY7
CiB9CkBAIC0xMTAxLDcgKzk4Niw3IEBAIFNvbWUgb3RoZXIgZWRpdGluZy1yZWxhdGVkIG1ldGhv
ZHMgc3RpbGwgdW5pbXBsZW1lbnRlZDoKIAogLSAoV0tQYWdlUmVmKXBhZ2VSZWYKIHsKLSAgICBy
ZXR1cm4gdG9BUEkoX2RhdGEtPl9wYWdlLmdldCgpKTsKKyAgICByZXR1cm4gdG9BUEkoJl9kYXRh
LT5faW1wbC0+cGFnZSgpKTsKIH0KIAogLSAoQk9PTCljYW5DaGFuZ2VGcmFtZUxheW91dDooV0tG
cmFtZVJlZilmcmFtZVJlZgpAQCAtMTQ3NCw2ICsxMzU5LDExIEBAIHN0YXRpYyBfV0tPdmVybGF5
U2Nyb2xsYmFyU3R5bGUgdG9BUElTY3JvbGxiYXJTdHlsZShXVEY6Ok9wdGlvbmFsPFdlYkNvcmU6
OlNjcm9sCiAgICAgX2RhdGEtPl9pbXBsLT5zZXREaWRNb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNr
KGNhbGxiYWNrKTsKIH0KIAorLSAoaWQpX3dlYl9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250
cm9sbGVyRm9ySGl0VGVzdFJlc3VsdEludGVybmFsOihBUEk6OkhpdFRlc3RSZXN1bHQqKWhpdFRl
c3RSZXN1bHQgd2l0aFR5cGU6KHVpbnQzMl90KXR5cGUgdXNlckRhdGE6KEFQSTo6T2JqZWN0Kil1
c2VyRGF0YQoreworICAgIHJldHVybiBbc2VsZiBfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29u
dHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6dG9BUEkoaGl0VGVzdFJlc3VsdCkgd2l0aFR5cGU6dHlw
ZSB1c2VyRGF0YTp0b0FQSSh1c2VyRGF0YSldOworfQorCiAtIChpZClfaW1tZWRpYXRlQWN0aW9u
QW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6KFdLSGl0VGVzdFJlc3VsdFJlZilo
aXRUZXN0UmVzdWx0IHdpdGhUeXBlOih1aW50MzJfdCl0eXBlIHVzZXJEYXRhOihXS1R5cGVSZWYp
dXNlckRhdGEKIHsKICAgICByZXR1cm4gbmlsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvV2ViVmlld0ltcGwuaAppbmRleCBhMjMyYjk1Li5jODc0YzBhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApAQCAtNDYsNiArNDYsNyBAQCBP
QkpDX0NMQVNTIFdLRWRpdG9yVW5kb1RhcmdldE9iakM7CiBPQkpDX0NMQVNTIFdLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXI7CiBPQkpDX0NMQVNTIFdLSW1tZWRpYXRlQWN0aW9uQ29udHJvbGxl
cjsKIE9CSkNfQ0xBU1MgV0tWaWV3TGF5b3V0U3RyYXRlZ3k7CitPQkpDX0NMQVNTIFdLV2ViVmll
dzsKIE9CSkNfQ0xBU1MgV0tXaW5kb3dWaXNpYmlsaXR5T2JzZXJ2ZXI7CiBPQkpDX0NMQVNTIF9X
S1RodW1ibmFpbFZpZXc7CiAKQEAgLTY3LDEzICs2OCwxNSBAQCBPQkpDX0NMQVNTIF9XS1RodW1i
bmFpbFZpZXc7CiAvLyBUaGV5J3JlIG5vdCBhY3R1YWxseSBvcHRpb25hbC4KIEBvcHRpb25hbAog
Ci0tIChpZClfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1
bHQ6KFdLSGl0VGVzdFJlc3VsdFJlZiloaXRUZXN0UmVzdWx0IHdpdGhUeXBlOih1aW50MzJfdCl0
eXBlIHVzZXJEYXRhOihXS1R5cGVSZWYpdXNlckRhdGE7CistIChpZClfd2ViX2ltbWVkaWF0ZUFj
dGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0SW50ZXJuYWw6KEFQSTo6SGl0
VGVzdFJlc3VsdCopaGl0VGVzdFJlc3VsdCB3aXRoVHlwZToodWludDMyX3QpdHlwZSB1c2VyRGF0
YTooQVBJOjpPYmplY3QqKXVzZXJEYXRhOworCiAtICh2b2lkKV9wcmVwYXJlRm9ySW1tZWRpYXRl
QWN0aW9uQW5pbWF0aW9uOwogLSAodm9pZClfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9u
OwogLSAodm9pZClfY29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb247CiAtICh2b2lkKV9k
aXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzOwogLSAodm9pZClfZGlzbWlzc0NvbnRl
bnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb246KEJPT0wpYW5pbWF0ZTsKIC0gKHZv
aWQpX2dlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmU6KE5TRXZlbnQgKilldmVudDsK
Ky0gKHZvaWQpX2RpZENoYW5nZUNvbnRlbnRTaXplOihOU1NpemUpbmV3U2l6ZTsKIAogQGVuZAog
CkBAIC04Myw2ICs4Niw3IEBAIHN0cnVjdCBLZXlQcmVzc0NvbW1hbmQ7CiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCitjbGFzcyBQYWdlQ2xpZW50SW1wbDsKIGNsYXNzIERyYXdpbmdBcmVhUHJveHk7
CiBjbGFzcyBWaWV3R2VzdHVyZUNvbnRyb2xsZXI7CiBjbGFzcyBXZWJFZGl0Q29tbWFuZFByb3h5
OwpAQCAtMTA2LDEyICsxMTAsMTQgQEAgY2xhc3MgV2ViVmlld0ltcGwgewogICAgIFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKFdlYlZpZXdJbXBsKTsK
IHB1YmxpYzoKLSAgICBXZWJWaWV3SW1wbChOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICos
IFdlYlBhZ2VQcm94eSYsIFBhZ2VDbGllbnQmKTsKKyAgICBXZWJWaWV3SW1wbChOU1ZpZXcgPFdl
YlZpZXdJbXBsRGVsZWdhdGU+ICosIFdLV2ViVmlldyAqb3V0ZXJXZWJWaWV3LCBXZWJQcm9jZXNz
UG9vbCYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKIAogICAgIH5XZWJWaWV3SW1w
bCgpOwogCiAgICAgTlNXaW5kb3cgKndpbmRvdygpOwogCisgICAgV2ViUGFnZVByb3h5JiBwYWdl
KCkgeyByZXR1cm4gbV9wYWdlLmdldCgpOyB9CisKICAgICB2b2lkIHByb2Nlc3NEaWRFeGl0KCk7
CiAgICAgdm9pZCBwYWdlQ2xvc2VkKCk7CiAgICAgdm9pZCBkaWRSZWxhdW5jaFByb2Nlc3MoKTsK
QEAgLTE2MCw3ICsxNjYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUb3BDb250ZW50SW5zZXQo
Q0dGbG9hdCk7CiAgICAgQ0dGbG9hdCB0b3BDb250ZW50SW5zZXQoKSBjb25zdCB7IHJldHVybiBt
X3RvcENvbnRlbnRJbnNldDsgfQogCi0gICAgdm9pZCBzZXRDb250ZW50UHJlcGFyYXRpb25SZWN0
KENHUmVjdCk7CisgICAgdm9pZCBwcmVwYXJlQ29udGVudEluUmVjdChDR1JlY3QpOwogICAgIHZv
aWQgdXBkYXRlVmlld0V4cG9zZWRSZWN0KCk7CiAgICAgdm9pZCBzZXRDbGlwc1RvVmlzaWJsZVJl
Y3QoYm9vbCk7CiAgICAgYm9vbCBjbGlwc1RvVmlzaWJsZVJlY3QoKSBjb25zdCB7IHJldHVybiBt
X2NsaXBzVG9WaXNpYmxlUmVjdDsgfQpAQCAtMzE4LDEyICszMjQsMTIgQEAgcHVibGljOgogICAg
IHZvaWQgcHJlcGFyZUZvckRpY3Rpb25hcnlMb29rdXAoKTsKICAgICB2b2lkIHNldEFsbG93c0xp
bmtQcmV2aWV3KGJvb2wpOwogICAgIGJvb2wgYWxsb3dzTGlua1ByZXZpZXcoKSBjb25zdCB7IHJl
dHVybiBtX2FsbG93c0xpbmtQcmV2aWV3OyB9Ci0gICAgdm9pZCogaW1tZWRpYXRlQWN0aW9uQW5p
bWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQoV0tIaXRUZXN0UmVzdWx0UmVmLCB1aW50
MzJfdCB0eXBlLCBXS1R5cGVSZWYgdXNlckRhdGEpOwotICAgIHZvaWQqIGltbWVkaWF0ZUFjdGlv
bkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0RnJvbVZpZXdPbmx5KFdLSGl0VGVz
dFJlc3VsdFJlZiwgdWludDMyX3QgdHlwZSwgV0tUeXBlUmVmIHVzZXJEYXRhKTsKKyAgICB2b2lk
KiBpbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdChBUEk6
OkhpdFRlc3RSZXN1bHQqLCB1aW50MzJfdCB0eXBlLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpOwog
ICAgIHZvaWQgZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3QoY29uc3QgV2ViSGl0VGVz
dFJlc3VsdERhdGEmLCBib29sIGNvbnRlbnRQcmV2ZW50c0RlZmF1bHQsIEFQSTo6T2JqZWN0KiB1
c2VyRGF0YSk7CiAgICAgdm9pZCBwcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uKCk7
CiAgICAgdm9pZCBjYW5jZWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24oKTsKICAgICB2b2lkIGNv
bXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uKCk7CisgICAgdm9pZCBkaWRDaGFuZ2VDb250
ZW50U2l6ZShDR1NpemUpOwogCiAgICAgdm9pZCBzZXRJZ25vcmVzTm9uV2hlZWxFdmVudHMoYm9v
bCk7CiAgICAgYm9vbCBpZ25vcmVzTm9uV2hlZWxFdmVudHMoKSBjb25zdCB7IHJldHVybiBtX2ln
bm9yZXNOb25XaGVlbEV2ZW50czsgfQpAQCAtMzYzLDcgKzM2OSw2IEBAIHB1YmxpYzoKICAgICBO
U1ZpZXcgKmluc3BlY3RvckF0dGFjaG1lbnRWaWV3KCk7CiAKICAgICBfV0tSZW1vdGVPYmplY3RS
ZWdpc3RyeSAqcmVtb3RlT2JqZWN0UmVnaXN0cnkoKTsKLSAgICB2b2lkIGRlc3Ryb3lSZW1vdGVP
YmplY3RSZWdpc3RyeSgpOyAvLyBGSVhNRTogVGVtcG9yYXJ5LiBDYW4gZm9sZCBpbiBhZnRlciB3
ZSBtb3ZlIG93bmVyc2hpcCBvZiBXZWJQYWdlUHJveHkgaGVyZS4KIAogICAgIFdLQnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlciAqYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlcigpOwogI2VuZGlmIC8v
IFdLX0FQSV9FTkFCTEVECkBAIC01MDQsOCArNTA5LDggQEAgcHJpdmF0ZToKICAgICB2b2lkIG1v
dXNlRHJhZ2dlZEludGVybmFsKE5TRXZlbnQgKik7CiAKICAgICBOU1ZpZXcgPFdlYlZpZXdJbXBs
RGVsZWdhdGU+ICptX3ZpZXc7Ci0gICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7Ci0gICAgUGFnZUNs
aWVudCYgbV9wYWdlQ2xpZW50OworICAgIHN0ZDo6dW5pcXVlX3B0cjxQYWdlQ2xpZW50PiBtX3Bh
Z2VDbGllbnQ7CisgICAgUmVmPFdlYlBhZ2VQcm94eT4gbV9wYWdlOwogCiAgICAgV2Vha1B0ckZh
Y3Rvcnk8V2ViVmlld0ltcGw+IG1fd2Vha1B0ckZhY3Rvcnk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCBmNDg3MTQ5Li41YzVkMzhiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0y
OCw2ICsyOCw3IEBACiAKICNpZiBQTEFURk9STShNQUMpCiAKKyNpbXBvcnQgIkFQSUxlZ2FjeUNv
bnRleHRIaXN0b3J5Q2xpZW50LmgiCiAjaW1wb3J0ICJBcHBLaXRTUEkuaCIKICNpbXBvcnQgIkNv
bG9yU3BhY2VEYXRhLmgiCiAjaW1wb3J0ICJHZW5lcmljQ2FsbGJhY2suaCIKQEAgLTM3LDYgKzM4
LDcgQEAKICNpbXBvcnQgIk5hdGl2ZVdlYk1vdXNlRXZlbnQuaCIKICNpbXBvcnQgIk5hdGl2ZVdl
YldoZWVsRXZlbnQuaCIKICNpbXBvcnQgIlBhZ2VDbGllbnQuaCIKKyNpbXBvcnQgIlBhZ2VDbGll
bnRJbXBsLmgiCiAjaW1wb3J0ICJQYXN0ZWJvYXJkVHlwZXMuaCIKICNpbXBvcnQgIlJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCIKICNpbXBvcnQgIlJlbW90ZU9iamVjdFJlZ2lzdHJ5
LmgiCkBAIC0xMjEsNiArMTIzLDkgQEAgU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMKExvb2t1
cCwgTFVOb3RpZmljYXRpb25Qb3BvdmVyV2lsbENsb3NlLCBOU1N0cmluZyAqKQogICAgIF92aWV3
ID0gdmlldzsKICAgICBfaW1wbCA9ICZpbXBsOwogCisgICAgTlNOb3RpZmljYXRpb25DZW50ZXIq
IHdvcmtzcGFjZU5vdGlmaWNhdGlvbkNlbnRlciA9IFtbTlNXb3Jrc3BhY2Ugc2hhcmVkV29ya3Nw
YWNlXSBub3RpZmljYXRpb25DZW50ZXJdOworICAgIFt3b3Jrc3BhY2VOb3RpZmljYXRpb25DZW50
ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoX2FjdGl2ZVNwYWNlRGlkQ2hh
bmdlOikgbmFtZTpOU1dvcmtzcGFjZUFjdGl2ZVNwYWNlRGlkQ2hhbmdlTm90aWZpY2F0aW9uIG9i
amVjdDpuaWxdOworCiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKQEAgLTEyOSw2ICsxMzQsOSBAQCBT
T0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUwoTG9va3VwLCBMVU5vdGlmaWNhdGlvblBvcG92ZXJX
aWxsQ2xvc2UsIE5TU3RyaW5nICopCiAgICAgaWYgKGNhbkxvYWRMVU5vdGlmaWNhdGlvblBvcG92
ZXJXaWxsQ2xvc2UoKSkKICAgICAgICAgW1tOU05vdGlmaWNhdGlvbkNlbnRlciBkZWZhdWx0Q2Vu
dGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmIG5hbWU6Z2V0TFVOb3RpZmljYXRpb25Qb3BvdmVyV2ls
bENsb3NlKCkgb2JqZWN0Om5pbF07CiAKKyAgICBOU05vdGlmaWNhdGlvbkNlbnRlciAqd29ya3Nw
YWNlTm90aWZpY2F0aW9uQ2VudGVyID0gW1tOU1dvcmtzcGFjZSBzaGFyZWRXb3Jrc3BhY2VdIG5v
dGlmaWNhdGlvbkNlbnRlcl07CisgICAgW3dvcmtzcGFjZU5vdGlmaWNhdGlvbkNlbnRlciByZW1v
dmVPYnNlcnZlcjpzZWxmIG5hbWU6TlNXb3Jrc3BhY2VBY3RpdmVTcGFjZURpZENoYW5nZU5vdGlm
aWNhdGlvbiBvYmplY3Q6bmlsXTsKKwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIApAQCAtMjg3
LDYgKzI5NSwxMSBAQCBzdGF0aWMgdm9pZCoga2V5VmFsdWVPYnNlcnZpbmdDb250ZXh0ID0gJmtl
eVZhbHVlT2JzZXJ2aW5nQ29udGV4dDsKICAgICBfaW1wbC0+Y2xlYXJUZXh0SW5kaWNhdG9yV2l0
aEFuaW1hdGlvbihXZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9u
OjpOb25lKTsKIH0KIAorLSAodm9pZClfYWN0aXZlU3BhY2VEaWRDaGFuZ2U6KE5TTm90aWZpY2F0
aW9uICopbm90aWZpY2F0aW9uCit7CisgICAgX2ltcGwtPmFjdGl2ZVNwYWNlRGlkQ2hhbmdlKCk7
Cit9CisKIEBlbmQKIAogQGludGVyZmFjZSBXS0VkaXRDb21tYW5kT2JqQyA6IE5TT2JqZWN0IHsK
QEAgLTQyNywyMSArNDQwLDI1IEBAIHN0YXRpYyBOU1RyYWNraW5nQXJlYU9wdGlvbnMgdHJhY2tp
bmdBcmVhT3B0aW9ucygpCiAgICAgcmV0dXJuIG9wdGlvbnM7CiB9CiAKLVdlYlZpZXdJbXBsOjpX
ZWJWaWV3SW1wbChOU1ZpZXcgPFdlYlZpZXdJbXBsRGVsZWdhdGU+ICp2aWV3LCBXZWJQYWdlUHJv
eHkmIHBhZ2UsIFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQpCitXZWJWaWV3SW1wbDo6V2ViVmlld0lt
cGwoTlNWaWV3IDxXZWJWaWV3SW1wbERlbGVnYXRlPiAqdmlldywgV0tXZWJWaWV3ICpvdXRlcldl
YlZpZXcsIFdlYlByb2Nlc3NQb29sJiBwcm9jZXNzUG9vbCwgUmVmPEFQSTo6UGFnZUNvbmZpZ3Vy
YXRpb24+JiYgY29uZmlndXJhdGlvbikKICAgICA6IG1fdmlldyh2aWV3KQotICAgICwgbV9wYWdl
KHBhZ2UpCi0gICAgLCBtX3BhZ2VDbGllbnQocGFnZUNsaWVudCkKKyAgICAsIG1fcGFnZUNsaWVu
dChzdGQ6Om1ha2VfdW5pcXVlPFBhZ2VDbGllbnRJbXBsPih2aWV3LCBvdXRlcldlYlZpZXcpKQor
ICAgICwgbV9wYWdlKHByb2Nlc3NQb29sLmNyZWF0ZVdlYlBhZ2UoKm1fcGFnZUNsaWVudCwgV1RG
Ojptb3ZlKGNvbmZpZ3VyYXRpb24pKSkKICAgICAsIG1fd2Vha1B0ckZhY3RvcnkodGhpcykKLSAg
ICAsIG1fbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKG1fcGFnZS5wcmVmZXJlbmNl
cygpLnBsdWdpbnNFbmFibGVkKCkpCisgICAgLCBtX25lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29y
ZGluYXRlcyhtX3BhZ2UtPnByZWZlcmVuY2VzKCkucGx1Z2luc0VuYWJsZWQoKSkKICAgICAsIG1f
aW50cmluc2ljQ29udGVudFNpemUoQ0dTaXplTWFrZShOU1ZpZXdOb0luc3RyaW5zaWNNZXRyaWMs
IE5TVmlld05vSW5zdHJpbnNpY01ldHJpYykpCiAgICAgLCBtX2xheW91dFN0cmF0ZWd5KFtXS1Zp
ZXdMYXlvdXRTdHJhdGVneSBsYXlvdXRTdHJhdGVneVdpdGhQYWdlOm1fcGFnZSB2aWV3Om1fdmll
dyB2aWV3SW1wbDoqdGhpcyBtb2RlOmtXS0xheW91dE1vZGVWaWV3U2l6ZV0pCiAgICAgLCBtX3Vu
ZG9UYXJnZXQoYWRvcHROUyhbW1dLRWRpdG9yVW5kb1RhcmdldE9iakMgYWxsb2NdIGluaXRdKSkK
ICAgICAsIG1fd2luZG93VmlzaWJpbGl0eU9ic2VydmVyKGFkb3B0TlMoW1tXS1dpbmRvd1Zpc2li
aWxpdHlPYnNlcnZlciBhbGxvY10gaW5pdFdpdGhWaWV3OnZpZXcgaW1wbDoqdGhpc10pKQogICAg
ICwgbV9wcmltYXJ5VHJhY2tpbmdBcmVhKGFkb3B0TlMoW1tOU1RyYWNraW5nQXJlYSBhbGxvY10g
aW5pdFdpdGhSZWN0Om1fdmlldy5mcmFtZSBvcHRpb25zOnRyYWNraW5nQXJlYU9wdGlvbnMoKSBv
d25lcjptX3ZpZXcgdXNlckluZm86bmlsXSkpCiB7CisgICAgc3RhdGljX2Nhc3Q8UGFnZUNsaWVu
dEltcGwmPigqbV9wYWdlQ2xpZW50KS5zZXRJbXBsKCp0aGlzKTsKKworICAgIFtOU0FwcCByZWdp
c3RlclNlcnZpY2VzTWVudVNlbmRUeXBlczpQYXN0ZWJvYXJkVHlwZXM6OmZvclNlbGVjdGlvbigp
IHJldHVyblR5cGVzOlBhc3RlYm9hcmRUeXBlczo6Zm9yRWRpdGluZygpXTsKKwogICAgIFttX3Zp
ZXcgYWRkVHJhY2tpbmdBcmVhOm1fcHJpbWFyeVRyYWNraW5nQXJlYS5nZXQoKV07CiAKLSAgICBt
X3BhZ2Uuc2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoaW50cmluc2ljRGV2aWNlU2NhbGVG
YWN0b3IoKSk7CisgICAgbV9wYWdlLT5zZXRJbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcihpbnRy
aW5zaWNEZXZpY2VTY2FsZUZhY3RvcigpKTsKIAogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5f
UkVRVUlSRUQgPj0gMTAxMDAwCiAgICAgaWYgKENsYXNzIGdlc3R1cmVDbGFzcyA9IE5TQ2xhc3NG
cm9tU3RyaW5nKEAiTlNJbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciIpKSB7CkBAIC00
NTEsMTAgKzQ2OCwzMiBAQCBXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwoTlNWaWV3IDxXZWJWaWV3
SW1wbERlbGVnYXRlPiAqdmlldywgV2ViUGFnZVByb3h5JiBwYWdlLAogICAgICAgICBbbV9pbW1l
ZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXplciBzZXREZWxheXNQcmltYXJ5TW91c2VCdXR0b25F
dmVudHM6Tk9dOwogICAgIH0KICNlbmRpZgorCisKKyAgICBtX3BhZ2UtPnNldEFkZHNWaXNpdGVk
TGlua3MocHJvY2Vzc1Bvb2wuaGlzdG9yeUNsaWVudCgpLmFkZHNWaXNpdGVkTGlua3MoKSk7CisK
KyAgICBtX3BhZ2UtPmluaXRpYWxpemVXZWJQYWdlKCk7CisKKyAgICByZWdpc3RlckRyYWdnZWRU
eXBlcygpOworCisgICAgbV92aWV3LndhbnRzTGF5ZXIgPSBZRVM7CisKKyAgICAvLyBFeHBsaWNp
dGx5IHNldCB0aGUgbGF5ZXIgY29udGVudHMgcGxhY2VtZW50IHNvIEFwcEtpdCB3aWxsIG1ha2Ug
c3VyZSB0aGF0IG91ciBsYXllciBoYXMgbWFza3NUb0JvdW5kcyBzZXQgdG8gWUVTLgorICAgIG1f
dmlldy5sYXllckNvbnRlbnRzUGxhY2VtZW50ID0gTlNWaWV3TGF5ZXJDb250ZW50c1BsYWNlbWVu
dFRvcExlZnQ7CisKKyAgICBXZWJQcm9jZXNzUG9vbDo6c3RhdGlzdGljcygpLndrVmlld0NvdW50
Kys7CiB9CiAKIFdlYlZpZXdJbXBsOjp+V2ViVmlld0ltcGwoKQogeworI2lmIFdLX0FQSV9FTkFC
TEVECisgICAgaWYgKG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkpIHsKKyAgICAgICAgbV9wYWdlLT5w
cm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJl
bW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fcGFnZS0+cGFnZUlE
KCkpOworICAgICAgICBbbV9yZW1vdGVPYmplY3RSZWdpc3RyeSBfaW52YWxpZGF0ZV07CisgICAg
ICAgIG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBuaWw7CisgICAgfQorI2VuZGlmCisKICAgICBB
U1NFUlQoIW1faW5TZWN1cmVJbnB1dFN0YXRlKTsKIAogI2lmIFdLX0FQSV9FTkFCTEVECkBAIC00
NjYsNiArNTA1LDExIEBAIFdlYlZpZXdJbXBsOjp+V2ViVmlld0ltcGwoKQogI2lmIF9fTUFDX09T
X1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCiAgICAgW21faW1tZWRpYXRlQWN0aW9u
Q29udHJvbGxlciB3aWxsRGVzdHJveVZpZXc6bV92aWV3XTsKICNlbmRpZgorCisgICAgbV9wYWdl
LT5jbG9zZSgpOworCisgICAgV2ViUHJvY2Vzc1Bvb2w6OnN0YXRpc3RpY3MoKS53a1ZpZXdDb3Vu
dC0tOworCiB9CiAKIE5TV2luZG93ICpXZWJWaWV3SW1wbDo6d2luZG93KCkKQEAgLTQ5NywyNyAr
NTQxLDI3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpZFJlbGF1bmNoUHJvY2VzcygpCiAKIHZvaWQg
V2ViVmlld0ltcGw6OnNldERyYXdzQmFja2dyb3VuZChib29sIGRyYXdzQmFja2dyb3VuZCkKIHsK
LSAgICBtX3BhZ2Uuc2V0RHJhd3NCYWNrZ3JvdW5kKGRyYXdzQmFja2dyb3VuZCk7CisgICAgbV9w
YWdlLT5zZXREcmF3c0JhY2tncm91bmQoZHJhd3NCYWNrZ3JvdW5kKTsKIH0KIAogYm9vbCBXZWJW
aWV3SW1wbDo6ZHJhd3NCYWNrZ3JvdW5kKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wYWdlLmRy
YXdzQmFja2dyb3VuZCgpOworICAgIHJldHVybiBtX3BhZ2UtPmRyYXdzQmFja2dyb3VuZCgpOwog
fQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZChib29s
IGRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKQogewotICAgIG1fcGFnZS5zZXREcmF3c1RyYW5z
cGFyZW50QmFja2dyb3VuZChkcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZCk7CisgICAgbV9wYWdl
LT5zZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZChkcmF3c1RyYW5zcGFyZW50QmFja2dyb3Vu
ZCk7CiB9CiAKIGJvb2wgV2ViVmlld0ltcGw6OmRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV9wYWdlLmRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKCk7
CisgICAgcmV0dXJuIG1fcGFnZS0+ZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoKTsKIH0KIAog
Ym9vbCBXZWJWaWV3SW1wbDo6aXNPcGFxdWUoKSBjb25zdAogewotICAgIHJldHVybiBtX3BhZ2Uu
ZHJhd3NCYWNrZ3JvdW5kKCk7CisgICAgcmV0dXJuIG1fcGFnZS0+ZHJhd3NCYWNrZ3JvdW5kKCk7
CiB9CiAKIGJvb2wgV2ViVmlld0ltcGw6OmFjY2VwdHNGaXJzdE1vdXNlKE5TRXZlbnQgKmV2ZW50
KQpAQCAtNTMxLDcgKzU3NSw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OmFjY2VwdHNGaXJzdE1vdXNl
KE5TRXZlbnQgKmV2ZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBzZXRMYXN0TW91
c2VEb3duRXZlbnQoZXZlbnQpOwotICAgIGJvb2wgcmVzdWx0ID0gbV9wYWdlLmFjY2VwdHNGaXJz
dE1vdXNlKGV2ZW50LmV2ZW50TnVtYmVyLCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNl
RXZlbnQoZXZlbnQsIG1fbGFzdFByZXNzdXJlRXZlbnQuZ2V0KCksIG1fdmlldykpOworICAgIGJv
b2wgcmVzdWx0ID0gbV9wYWdlLT5hY2NlcHRzRmlyc3RNb3VzZShldmVudC5ldmVudE51bWJlciwg
V2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KGV2ZW50LCBtX2xhc3RQcmVzc3Vy
ZUV2ZW50LmdldCgpLCBtX3ZpZXcpKTsKICAgICBzZXRMYXN0TW91c2VEb3duRXZlbnQobmlsKTsK
ICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtNTU1LDkgKzU5OSw5IEBAIGJvb2wgV2ViVmlld0lt
cGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKCkKICAgICBtX2luQmVjb21lRmlyc3RSZXNwb25kZXIg
PSB0cnVlOwogCiAgICAgdXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSgpOwotICAgIG1fcGFnZS52aWV3
U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0ZvY3VzZWQpOworICAgIG1fcGFn
ZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNGb2N1c2VkKTsKICAg
ICAvLyBSZXN0b3JlIHRoZSBzZWxlY3Rpb24gaW4gdGhlIGVkaXRhYmxlIHJlZ2lvbiBpZiByZXNp
Z25pbmcgZmlyc3QgcmVzcG9uZGVyIGNsZWFyZWQgc2VsZWN0aW9uLgotICAgIG1fcGFnZS5yZXN0
b3JlU2VsZWN0aW9uSW5Gb2N1c2VkRWRpdGFibGVFbGVtZW50KCk7CisgICAgbV9wYWdlLT5yZXN0
b3JlU2VsZWN0aW9uSW5Gb2N1c2VkRWRpdGFibGVFbGVtZW50KCk7CiAKICAgICBtX2luQmVjb21l
Rmlyc3RSZXNwb25kZXIgPSBmYWxzZTsKIApAQCAtNTY2LDcgKzYxMCw3IEBAIGJvb2wgV2ViVmll
d0ltcGw6OmJlY29tZUZpcnN0UmVzcG9uZGVyKCkKICAgICAgICAgTlNFdmVudCAqa2V5Ym9hcmRF
dmVudCA9IG5pbDsKICAgICAgICAgaWYgKFtldmVudCB0eXBlXSA9PSBOU0tleURvd24gfHwgW2V2
ZW50IHR5cGVdID09IE5TS2V5VXApCiAgICAgICAgICAgICBrZXlib2FyZEV2ZW50ID0gZXZlbnQ7
Ci0gICAgICAgIG1fcGFnZS5zZXRJbml0aWFsRm9jdXMoZGlyZWN0aW9uID09IE5TU2VsZWN0aW5n
TmV4dCwga2V5Ym9hcmRFdmVudCAhPSBuaWwsIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoa2V5Ym9h
cmRFdmVudCwgZmFsc2UsIHsgfSksIFtdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgeyB9
KTsKKyAgICAgICAgbV9wYWdlLT5zZXRJbml0aWFsRm9jdXMoZGlyZWN0aW9uID09IE5TU2VsZWN0
aW5nTmV4dCwga2V5Ym9hcmRFdmVudCAhPSBuaWwsIE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoa2V5
Ym9hcmRFdmVudCwgZmFsc2UsIHsgfSksIFtdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikg
eyB9KTsKICAgICB9CiAgICAgcmV0dXJuIHRydWU7CiB9CkBAIC01ODksMjAgKzYzMywyMCBAQCBi
b29sIFdlYlZpZXdJbXBsOjpyZXNpZ25GaXJzdFJlc3BvbmRlcigpCiAgICAgbV9pblJlc2lnbkZp
cnN0UmVzcG9uZGVyID0gdHJ1ZTsKIAogI2lmIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkK
LSAgICBtX3BhZ2UuY29uZmlybUNvbXBvc2l0aW9uQXN5bmMoKTsKKyAgICBtX3BhZ2UtPmNvbmZp
cm1Db21wb3NpdGlvbkFzeW5jKCk7CiAjZWxzZQotICAgIGlmIChtX3BhZ2UuZWRpdG9yU3RhdGUo
KS5oYXNDb21wb3NpdGlvbiAmJiAhbV9wYWdlLmVkaXRvclN0YXRlKCkuc2hvdWxkSWdub3JlQ29t
cG9zaXRpb25TZWxlY3Rpb25DaGFuZ2UpCi0gICAgICAgIG1fcGFnZS5jYW5jZWxDb21wb3NpdGlv
bigpOworICAgIGlmIChtX3BhZ2UtPmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb24gJiYgIW1f
cGFnZS0+ZWRpdG9yU3RhdGUoKS5zaG91bGRJZ25vcmVDb21wb3NpdGlvblNlbGVjdGlvbkNoYW5n
ZSkKKyAgICAgICAgbV9wYWdlLT5jYW5jZWxDb21wb3NpdGlvbigpOwogI2VuZGlmCiAKICAgICBu
b3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uKCk7CiAKICAgICByZXNl
dFNlY3VyZUlucHV0U3RhdGUoKTsKIAotICAgIGlmICghbV9wYWdlLm1haW50YWluc0luYWN0aXZl
U2VsZWN0aW9uKCkpCi0gICAgICAgIG1fcGFnZS5jbGVhclNlbGVjdGlvbigpOworICAgIGlmICgh
bV9wYWdlLT5tYWludGFpbnNJbmFjdGl2ZVNlbGVjdGlvbigpKQorICAgICAgICBtX3BhZ2UtPmNs
ZWFyU2VsZWN0aW9uKCk7CiAKLSAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6
OlZpZXdTdGF0ZTo6SXNGb2N1c2VkKTsKKyAgICBtX3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShX
ZWJDb3JlOjpWaWV3U3RhdGU6OklzRm9jdXNlZCk7CiAgICAgCiAgICAgbV9pblJlc2lnbkZpcnN0
UmVzcG9uZGVyID0gZmFsc2U7CiAgICAgCkBAIC02MjAsMTQgKzY2NCwxNCBAQCBib29sIFdlYlZp
ZXdJbXBsOjppc0ZvY3VzZWQoKSBjb25zdAogCiB2b2lkIFdlYlZpZXdJbXBsOjp2aWV3V2lsbFN0
YXJ0TGl2ZVJlc2l6ZSgpCiB7Ci0gICAgbV9wYWdlLnZpZXdXaWxsU3RhcnRMaXZlUmVzaXplKCk7
CisgICAgbV9wYWdlLT52aWV3V2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpOwogCiAgICAgW21fbGF5b3V0
U3RyYXRlZ3kgd2lsbFN0YXJ0TGl2ZVJlc2l6ZV07CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnZp
ZXdEaWRFbmRMaXZlUmVzaXplKCkKIHsKLSAgICBtX3BhZ2Uudmlld1dpbGxFbmRMaXZlUmVzaXpl
KCk7CisgICAgbV9wYWdlLT52aWV3V2lsbEVuZExpdmVSZXNpemUoKTsKIAogICAgIFttX2xheW91
dFN0cmF0ZWd5IGRpZEVuZExpdmVSZXNpemVdOwogfQpAQCAtNzAxLDE4ICs3NDUsMTggQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6dXBkYXRlV2luZG93QW5kVmlld0ZyYW1lcygpCiAgICAgICAgICAgICBh
Y2Nlc3NpYmlsaXR5UG9zaXRpb24gPSBbW3dlYWtUaGlzLT5tX3ZpZXcgYWNjZXNzaWJpbGl0eUF0
dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVBvc2l0aW9uQXR0cmlidXRlXSBwb2ludFZhbHVl
XTsKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKICAgICAgICAgCi0gICAgICAgIHdlYWtU
aGlzLT5tX3BhZ2Uud2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQodmlld0ZyYW1lSW5XaW5kb3dD
b29yZGluYXRlcywgYWNjZXNzaWJpbGl0eVBvc2l0aW9uKTsKKyAgICAgICAgd2Vha1RoaXMtPm1f
cGFnZS0+d2luZG93QW5kVmlld0ZyYW1lc0NoYW5nZWQodmlld0ZyYW1lSW5XaW5kb3dDb29yZGlu
YXRlcywgYWNjZXNzaWJpbGl0eVBvc2l0aW9uKTsKICAgICB9KTsKIH0KIAogdm9pZCBXZWJWaWV3
SW1wbDo6c2V0Rml4ZWRMYXlvdXRTaXplKENHU2l6ZSBmaXhlZExheW91dFNpemUpCiB7Ci0gICAg
bV9wYWdlLnNldEZpeGVkTGF5b3V0U2l6ZShXZWJDb3JlOjpleHBhbmRlZEludFNpemUoV2ViQ29y
ZTo6RmxvYXRTaXplKGZpeGVkTGF5b3V0U2l6ZSkpKTsKKyAgICBtX3BhZ2UtPnNldEZpeGVkTGF5
b3V0U2l6ZShXZWJDb3JlOjpleHBhbmRlZEludFNpemUoV2ViQ29yZTo6RmxvYXRTaXplKGZpeGVk
TGF5b3V0U2l6ZSkpKTsKIH0KIAogQ0dTaXplIFdlYlZpZXdJbXBsOjpmaXhlZExheW91dFNpemUo
KSBjb25zdAogewotICAgIHJldHVybiBtX3BhZ2UuZml4ZWRMYXlvdXRTaXplKCk7CisgICAgcmV0
dXJuIG1fcGFnZS0+Zml4ZWRMYXlvdXRTaXplKCk7CiB9CiAKIHN0ZDo6dW5pcXVlX3B0cjxXZWJL
aXQ6OkRyYXdpbmdBcmVhUHJveHk+IFdlYlZpZXdJbXBsOjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5
KCkKQEAgLTcyNSwxNiArNzY5LDE2IEBAIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OkRyYXdpbmdB
cmVhUHJveHk+IFdlYlZpZXdJbXBsOjpjcmVhdGVEcmF3aW5nQXJlYVByb3h5KCkKIAogYm9vbCBX
ZWJWaWV3SW1wbDo6aXNVc2luZ1VJU2lkZUNvbXBvc2l0aW5nKCkgY29uc3QKIHsKLSAgICBhdXRv
KiBkcmF3aW5nQXJlYSA9IG1fcGFnZS5kcmF3aW5nQXJlYSgpOworICAgIGF1dG8qIGRyYXdpbmdB
cmVhID0gbV9wYWdlLT5kcmF3aW5nQXJlYSgpOwogICAgIHJldHVybiBkcmF3aW5nQXJlYSAmJiBk
cmF3aW5nQXJlYS0+dHlwZSgpID09IERyYXdpbmdBcmVhVHlwZVJlbW90ZUxheWVyVHJlZTsKIH0K
IAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0RHJhd2luZ0FyZWFTaXplKENHU2l6ZSBzaXplKQogewot
ICAgIGlmICghbV9wYWdlLmRyYXdpbmdBcmVhKCkpCisgICAgaWYgKCFtX3BhZ2UtPmRyYXdpbmdB
cmVhKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fcGFnZS5kcmF3aW5nQXJlYSgpLT5zZXRT
aXplKFdlYkNvcmU6OkludFNpemUoc2l6ZSksIFdlYkNvcmU6OkludFNpemUoKSwgV2ViQ29yZTo6
SW50U2l6ZShtX3Jlc2l6ZVNjcm9sbE9mZnNldCkpOworICAgIG1fcGFnZS0+ZHJhd2luZ0FyZWEo
KS0+c2V0U2l6ZShXZWJDb3JlOjpJbnRTaXplKHNpemUpLCBXZWJDb3JlOjpJbnRTaXplKCksIFdl
YkNvcmU6OkludFNpemUobV9yZXNpemVTY3JvbGxPZmZzZXQpKTsKICAgICBtX3Jlc2l6ZVNjcm9s
bE9mZnNldCA9IENHU2l6ZVplcm87CiB9CiAKQEAgLTc1NSw3ICs3OTksNyBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjpmb3JjZUFzeW5jRHJhd2luZ0FyZWFTaXplVXBkYXRlKENHU2l6ZSBzaXplKQogICAg
IC8vIElmIGEgZ2VvbWV0cnkgdXBkYXRlIGlzIHBlbmRpbmcgdGhlIG5ldyB1cGRhdGUgd29uJ3Qg
YmUgc2VudC4gUG9sbCB3aXRob3V0IHdhaXRpbmcgZm9yIGFueQogICAgIC8vIHBlbmRpbmcgZGlk
LXVwZGF0ZSBtZXNzYWdlIG5vdywgc3VjaCB0aGF0IHRoZSBuZXcgdXBkYXRlIGNhbiBiZSBzZW50
LiBXZSBkbyBzbyBhZnRlciBzZXR0aW5nCiAgICAgLy8gdGhlIGRyYXdpbmcgYXJlYSBzaXplIHN1
Y2ggdGhhdCB0aGUgbGF0ZXN0IHVwZGF0ZSBpcyBzZW50LgotICAgIGlmIChEcmF3aW5nQXJlYVBy
b3h5KiBkcmF3aW5nQXJlYSA9IG1fcGFnZS5kcmF3aW5nQXJlYSgpKQorICAgIGlmIChEcmF3aW5n
QXJlYVByb3h5KiBkcmF3aW5nQXJlYSA9IG1fcGFnZS0+ZHJhd2luZ0FyZWEoKSkKICAgICAgICAg
ZHJhd2luZ0FyZWEtPndhaXRGb3JQb3NzaWJsZUdlb21ldHJ5VXBkYXRlKHN0ZDo6Y2hyb25vOjpt
aWxsaXNlY29uZHM6Onplcm8oKSk7CiAjZWxzZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpA
QCAtNzY2LDcgKzgxMCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OndhaXRGb3JBc3luY0RyYXdpbmdB
cmVhU2l6ZVVwZGF0ZSgpCiB7CiAgICAgLy8gVGhpcyBTUEkgaXMgb25seSB1c2VkIG9uIDEwLjkg
YW5kIGJlbG93LCBhbmQgaXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGZlbmNlLWJhc2VkIGRyYXdp
bmcgYXJlYSBzaXplIHN5bmNocm9uaXphdGlvbiBpbiAxMC4xMCsuCiAjaWYgX19NQUNfT1NfWF9W
RVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDkwCi0gICAgaWYgKERyYXdpbmdBcmVhUHJveHkqIGRy
YXdpbmdBcmVhID0gbV9wYWdlLmRyYXdpbmdBcmVhKCkpIHsKKyAgICBpZiAoRHJhd2luZ0FyZWFQ
cm94eSogZHJhd2luZ0FyZWEgPSBtX3BhZ2UtPmRyYXdpbmdBcmVhKCkpIHsKICAgICAgICAgLy8g
SWYgYSBnZW9tZXRyeSB1cGRhdGUgaXMgc3RpbGwgcGVuZGluZyB0aGVuIHRoZSBhY3Rpb24gb2Yg
cmVjZWl2aW5nIHRoZQogICAgICAgICAvLyBmaXJzdCBnZW9tZXRyeSB1cGRhdGUgbWF5IHJlc3Vs
dCBpbiBhbm90aGVyIHVwZGF0ZSBiZWluZyBzY2hlZHVsZWQgLQogICAgICAgICAvLyB3ZSBzaG91
bGQgd2FpdCBmb3IgdGhpcyB0byBjb21wbGV0ZSB0b28uCkBAIC03OTIsMTQgKzgzNiwxNCBAQCB2
b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVMYXllcigpCiAgICAgaWYgKGZyYW1lU2l6ZVVwZGF0ZXNE
aXNhYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBpZiAoRHJhd2luZ0FyZWFQcm94eSog
ZHJhd2luZ0FyZWEgPSBtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKKyAgICBpZiAoRHJhd2luZ0FyZWFQ
cm94eSogZHJhd2luZ0FyZWEgPSBtX3BhZ2UtPmRyYXdpbmdBcmVhKCkpCiAgICAgICAgIGRyYXdp
bmdBcmVhLT53YWl0Rm9yUG9zc2libGVHZW9tZXRyeVVwZGF0ZSgpOwogfQogCiB2b2lkIFdlYlZp
ZXdJbXBsOjpkcmF3UmVjdChDR1JlY3QgcmVjdCkKIHsKICAgICBMT0coUHJpbnRpbmcsICJkcmF3
UmVjdDogeDolZywgeTolZywgd2lkdGg6JWcsIGhlaWdodDolZyIsIHJlY3Qub3JpZ2luLngsIHJl
Y3Qub3JpZ2luLnksIHJlY3Quc2l6ZS53aWR0aCwgcmVjdC5zaXplLmhlaWdodCk7Ci0gICAgbV9w
YWdlLmVuZFByaW50aW5nKCk7CisgICAgbV9wYWdlLT5lbmRQcmludGluZygpOwogfQogCiBib29s
IFdlYlZpZXdJbXBsOjpjYW5DaGFuZ2VGcmFtZUxheW91dChXZWJGcmFtZVByb3h5JiBmcmFtZSkK
QEAgLTg2OSwxMyArOTEzLDE1IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRpc3BhdGNoU2V0VG9wQ29u
dGVudEluc2V0KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9kaWRTY2hlZHVsZVNldFRvcENv
bnRlbnRJbnNldCA9IGZhbHNlOwotICAgIG1fcGFnZS5zZXRUb3BDb250ZW50SW5zZXQobV90b3BD
b250ZW50SW5zZXQpOworICAgIG1fcGFnZS0+c2V0VG9wQ29udGVudEluc2V0KG1fdG9wQ29udGVu
dEluc2V0KTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6c2V0Q29udGVudFByZXBhcmF0aW9uUmVj
dChDR1JlY3QgcmVjdCkKK3ZvaWQgV2ViVmlld0ltcGw6OnByZXBhcmVDb250ZW50SW5SZWN0KENH
UmVjdCByZWN0KQogewogICAgIG1fY29udGVudFByZXBhcmF0aW9uUmVjdCA9IHJlY3Q7CiAgICAg
bV91c2VDb250ZW50UHJlcGFyYXRpb25SZWN0Rm9yVmlzaWJsZVJlY3QgPSB0cnVlOworCisgICAg
dXBkYXRlVmlld0V4cG9zZWRSZWN0KCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnVwZGF0ZVZp
ZXdFeHBvc2VkUmVjdCgpCkBAIC04ODUsNyArOTMxLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBk
YXRlVmlld0V4cG9zZWRSZWN0KCkKICAgICBpZiAobV91c2VDb250ZW50UHJlcGFyYXRpb25SZWN0
Rm9yVmlzaWJsZVJlY3QpCiAgICAgICAgIGV4cG9zZWRSZWN0ID0gQ0dSZWN0VW5pb24obV9jb250
ZW50UHJlcGFyYXRpb25SZWN0LCBleHBvc2VkUmVjdCk7CiAKLSAgICBpZiAoYXV0byBkcmF3aW5n
QXJlYSA9IG1fcGFnZS5kcmF3aW5nQXJlYSgpKQorICAgIGlmIChhdXRvIGRyYXdpbmdBcmVhID0g
bV9wYWdlLT5kcmF3aW5nQXJlYSgpKQogICAgICAgICBkcmF3aW5nQXJlYS0+c2V0RXhwb3NlZFJl
Y3QobV9jbGlwc1RvVmlzaWJsZVJlY3QgPyBXZWJDb3JlOjpGbG9hdFJlY3QoZXhwb3NlZFJlY3Qp
IDogV2ViQ29yZTo6RmxvYXRSZWN0OjppbmZpbml0ZVJlY3QoKSk7CiB9CiAKQEAgLTg5OSwyNSAr
OTQ1LDI1IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldE1pbmltdW1TaXplRm9yQXV0b0xheW91dChD
R1NpemUgbWluaW11bVNpemVGb3JBdXRvTGF5b3V0KQogewogICAgIGJvb2wgZXhwYW5kc1RvRml0
ID0gbWluaW11bVNpemVGb3JBdXRvTGF5b3V0LndpZHRoID4gMDsKIAotICAgIG1fcGFnZS5zZXRN
aW5pbXVtTGF5b3V0U2l6ZShXZWJDb3JlOjpJbnRTaXplKG1pbmltdW1TaXplRm9yQXV0b0xheW91
dCkpOwotICAgIG1fcGFnZS5zZXRNYWluRnJhbWVJc1Njcm9sbGFibGUoIWV4cGFuZHNUb0ZpdCk7
CisgICAgbV9wYWdlLT5zZXRNaW5pbXVtTGF5b3V0U2l6ZShXZWJDb3JlOjpJbnRTaXplKG1pbmlt
dW1TaXplRm9yQXV0b0xheW91dCkpOworICAgIG1fcGFnZS0+c2V0TWFpbkZyYW1lSXNTY3JvbGxh
YmxlKCFleHBhbmRzVG9GaXQpOwogCiAgICAgc2V0Q2xpcHNUb1Zpc2libGVSZWN0KGV4cGFuZHNU
b0ZpdCk7CiB9CiAKIENHU2l6ZSBXZWJWaWV3SW1wbDo6bWluaW11bVNpemVGb3JBdXRvTGF5b3V0
KCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wYWdlLm1pbmltdW1MYXlvdXRTaXplKCk7CisgICAg
cmV0dXJuIG1fcGFnZS0+bWluaW11bUxheW91dFNpemUoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1w
bDo6c2V0U2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0b0xheW91dChib29sIHNob3VsZEV4
cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQpCiB7Ci0gICAgbV9wYWdlLnNldEF1dG9TaXpp
bmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQoc2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0Rm9yQXV0
b0xheW91dCk7CisgICAgbV9wYWdlLT5zZXRBdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVp
Z2h0KHNob3VsZEV4cGFuZFRvVmlld0hlaWdodEZvckF1dG9MYXlvdXQpOwogfQogCiBib29sIFdl
YlZpZXdJbXBsOjpzaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHRGb3JBdXRvTGF5b3V0KCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9wYWdlLmF1dG9TaXppbmdTaG91bGRFeHBhbmRUb1ZpZXdIZWlnaHQo
KTsKKyAgICByZXR1cm4gbV9wYWdlLT5hdXRvU2l6aW5nU2hvdWxkRXhwYW5kVG9WaWV3SGVpZ2h0
KCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldEludHJpbnNpY0NvbnRlbnRTaXplKENHU2l6
ZSBpbnRyaW5zaWNDb250ZW50U2l6ZSkKQEAgLTkyNyw3ICs5NzMsNyBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpzZXRJbnRyaW5zaWNDb250ZW50U2l6ZShDR1NpemUgaW50cmluc2ljQ29udGVudFNpemUp
CiAgICAgLy8gc28gdGhhdCBhdXRvbGF5b3V0IHdpbGwga25vdyB0byBwcm92aWRlIHNwYWNlIGZv
ciB1cy4KIAogICAgIENHU2l6ZSBpbnRyaW5zaWNDb250ZW50U2l6ZUFja25vd2xlZGdpbmdGbGV4
aWJsZVdpZHRoID0gaW50cmluc2ljQ29udGVudFNpemU7Ci0gICAgaWYgKGludHJpbnNpY0NvbnRl
bnRTaXplLndpZHRoIDwgbV9wYWdlLm1pbmltdW1MYXlvdXRTaXplKCkud2lkdGgoKSkKKyAgICBp
ZiAoaW50cmluc2ljQ29udGVudFNpemUud2lkdGggPCBtX3BhZ2UtPm1pbmltdW1MYXlvdXRTaXpl
KCkud2lkdGgoKSkKICAgICAgICAgaW50cmluc2ljQ29udGVudFNpemVBY2tub3dsZWRnaW5nRmxl
eGlibGVXaWR0aC53aWR0aCA9IE5TVmlld05vSW5zdHJpbnNpY01ldHJpYzsKIAogICAgIG1faW50
cmluc2ljQ29udGVudFNpemUgPSBpbnRyaW5zaWNDb250ZW50U2l6ZUFja25vd2xlZGdpbmdGbGV4
aWJsZVdpZHRoOwpAQCAtOTQ5LDEzICs5OTUsMTMgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0Vmll
d1NjYWxlKENHRmxvYXQgdmlld1NjYWxlKQogICAgIGlmICh2aWV3U2NhbGUgPD0gMCB8fCBpc25h
bih2aWV3U2NhbGUpIHx8IGlzaW5mKHZpZXdTY2FsZSkpCiAgICAgICAgIFtOU0V4Y2VwdGlvbiBy
YWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJWaWV3IHNjYWxlIHNob3Vs
ZCBiZSBhIHBvc2l0aXZlIG51bWJlciJdOwogCi0gICAgbV9wYWdlLnNjYWxlVmlldyh2aWV3U2Nh
bGUpOworICAgIG1fcGFnZS0+c2NhbGVWaWV3KHZpZXdTY2FsZSk7CiAgICAgW21fbGF5b3V0U3Ry
YXRlZ3kgZGlkQ2hhbmdlVmlld1NjYWxlXTsKIH0KIAogQ0dGbG9hdCBXZWJWaWV3SW1wbDo6dmll
d1NjYWxlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9wYWdlLnZpZXdTY2FsZUZhY3RvcigpOwor
ICAgIHJldHVybiBtX3BhZ2UtPnZpZXdTY2FsZUZhY3RvcigpOwogfQogCiBXS0xheW91dE1vZGUg
V2ViVmlld0ltcGw6OmxheW91dE1vZGUoKSBjb25zdApAQCAtOTgyLDcgKzEwMjgsNyBAQCBib29s
IFdlYlZpZXdJbXBsOjpzdXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVzKCkgY29uc3QKICAgICBp
ZiAoW21fZnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIgaXNGdWxsU2NyZWVuXSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3BhZ2UubWFpbkZy
YW1lKCk7CisgICAgV2ViRnJhbWVQcm94eSogZnJhbWUgPSBtX3BhZ2UtPm1haW5GcmFtZSgpOwog
ICAgIGlmICghZnJhbWUpCiAgICAgICAgIHJldHVybiB0cnVlOwogCkBAIC0xMDE1LDcgKzEwNjEs
NyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVTdXBwb3J0c0FyYml0cmFyeUxheW91dE1vZGVz
KCkKIHZvaWQgV2ViVmlld0ltcGw6OnNldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IoQ0dGbG9h
dCBkZXZpY2VTY2FsZUZhY3RvcikKIHsKICAgICBtX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3Ig
PSBkZXZpY2VTY2FsZUZhY3RvcjsKLSAgICBtX3BhZ2Uuc2V0SW50cmluc2ljRGV2aWNlU2NhbGVG
YWN0b3IoaW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoKSk7CisgICAgbV9wYWdlLT5zZXRJbnRy
aW5zaWNEZXZpY2VTY2FsZUZhY3RvcihpbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcigpKTsKIH0K
IAogZmxvYXQgV2ViVmlld0ltcGw6OmludHJpbnNpY0RldmljZVNjYWxlRmFjdG9yKCkgY29uc3QK
QEAgLTEwMzEsMTkgKzEwNzcsMTkgQEAgZmxvYXQgV2ViVmlld0ltcGw6OmludHJpbnNpY0Rldmlj
ZVNjYWxlRmFjdG9yKCkgY29uc3QKIAogdm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkT3JkZXJP
ZmZTY3JlZW4oKQogewotICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmll
d1N0YXRlOjpJc1Zpc2libGUgfCBXZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsK
KyAgICBtX3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OklzVmlz
aWJsZSB8IFdlYkNvcmU6OlZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOwogfQogCiB2b2lkIFdl
YlZpZXdJbXBsOjp3aW5kb3dEaWRPcmRlck9uU2NyZWVuKCkKIHsKLSAgICBtX3BhZ2Uudmlld1N0
YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlIHwgV2ViQ29yZTo6Vmll
d1N0YXRlOjpXaW5kb3dJc0FjdGl2ZSk7CisgICAgbV9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2Uo
V2ViQ29yZTo6Vmlld1N0YXRlOjpJc1Zpc2libGUgfCBXZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRv
d0lzQWN0aXZlKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkQmVjb21lS2V5KE5T
V2luZG93ICprZXlXaW5kb3cpCiB7CiAgICAgaWYgKGtleVdpbmRvdyA9PSBtX3ZpZXcud2luZG93
IHx8IGtleVdpbmRvdyA9PSBtX3ZpZXcud2luZG93LmF0dGFjaGVkU2hlZXQpIHsKICAgICAgICAg
dXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSgpOwotICAgICAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hh
bmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6V2luZG93SXNBY3RpdmUpOworICAgICAgICBtX3BhZ2Ut
PnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsK
ICAgICB9CiB9CiAKQEAgLTEwNTEsMTggKzEwOTcsMTggQEAgdm9pZCBXZWJWaWV3SW1wbDo6d2lu
ZG93RGlkUmVzaWduS2V5KE5TV2luZG93ICpmb3JtZXJLZXlXaW5kb3cpCiB7CiAgICAgaWYgKGZv
cm1lcktleVdpbmRvdyA9PSBtX3ZpZXcud2luZG93IHx8IGZvcm1lcktleVdpbmRvdyA9PSBtX3Zp
ZXcud2luZG93LmF0dGFjaGVkU2hlZXQpIHsKICAgICAgICAgdXBkYXRlU2VjdXJlSW5wdXRTdGF0
ZSgpOwotICAgICAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0
ZTo6V2luZG93SXNBY3RpdmUpOworICAgICAgICBtX3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShX
ZWJDb3JlOjpWaWV3U3RhdGU6OldpbmRvd0lzQWN0aXZlKTsKICAgICB9CiB9CiAKIHZvaWQgV2Vi
Vmlld0ltcGw6OndpbmRvd0RpZE1pbmlhdHVyaXplKCkKIHsKLSAgICBtX3BhZ2Uudmlld1N0YXRl
RGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsKKyAgICBtX3BhZ2UtPnZp
ZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OklzVmlzaWJsZSk7CiB9CiAKIHZv
aWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZERlbWluaWF0dXJpemUoKQogewotICAgIG1fcGFnZS52
aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc1Zpc2libGUpOworICAgIG1f
cGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsK
IH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkTW92ZSgpCkBAIC0xMDgxLDMwICsxMTI3
LDMwIEBAIHZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVz
KENHRmxvYXQgb2xkQmFja2luZ1NjYWxlRmFjdG9yCiAgICAgaWYgKG9sZEJhY2tpbmdTY2FsZUZh
Y3RvciA9PSBuZXdCYWNraW5nU2NhbGVGYWN0b3IpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1f
cGFnZS5zZXRJbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcihuZXdCYWNraW5nU2NhbGVGYWN0b3Ip
OworICAgIG1fcGFnZS0+c2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IobmV3QmFja2luZ1Nj
YWxlRmFjdG9yKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6d2luZG93RGlkQ2hhbmdlU2NyZWVu
KCkKIHsKICAgICBOU1dpbmRvdyAqd2luZG93ID0gbV90YXJnZXRXaW5kb3dGb3JNb3ZlUHJlcGFy
YXRpb24gPyBtX3RhcmdldFdpbmRvd0Zvck1vdmVQcmVwYXJhdGlvbiA6IG1fdmlldy53aW5kb3c7
Ci0gICAgbV9wYWdlLndpbmRvd1NjcmVlbkRpZENoYW5nZSgoUGxhdGZvcm1EaXNwbGF5SUQpW1tb
W3dpbmRvdyBzY3JlZW5dIGRldmljZURlc2NyaXB0aW9uXSBvYmplY3RGb3JLZXk6QCJOU1NjcmVl
bk51bWJlciJdIGludFZhbHVlXSk7CisgICAgbV9wYWdlLT53aW5kb3dTY3JlZW5EaWRDaGFuZ2Uo
KFBsYXRmb3JtRGlzcGxheUlEKVtbW1t3aW5kb3cgc2NyZWVuXSBkZXZpY2VEZXNjcmlwdGlvbl0g
b2JqZWN0Rm9yS2V5OkAiTlNTY3JlZW5OdW1iZXIiXSBpbnRWYWx1ZV0pOwogfQogCiB2b2lkIFdl
YlZpZXdJbXBsOjp3aW5kb3dEaWRDaGFuZ2VMYXllckhvc3RpbmcoKQogewotICAgIG1fcGFnZS5s
YXllckhvc3RpbmdNb2RlRGlkQ2hhbmdlKCk7CisgICAgbV9wYWdlLT5sYXllckhvc3RpbmdNb2Rl
RGlkQ2hhbmdlKCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OndpbmRvd0RpZENoYW5nZU9jY2x1
c2lvblN0YXRlKCkKIHsKLSAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdlYkNvcmU6OlZp
ZXdTdGF0ZTo6SXNWaXNpYmxlKTsKKyAgICBtX3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShXZWJD
b3JlOjpWaWV3U3RhdGU6OklzVmlzaWJsZSk7CiB9CiAKIGJvb2wgV2ViVmlld0ltcGw6OnNob3Vs
ZERlbGF5V2luZG93T3JkZXJpbmdGb3JFdmVudChOU0V2ZW50ICpldmVudCkKIHsKICAgICAvLyBJ
ZiB0aGlzIGlzIHRoZSBhY3RpdmUgd2luZG93IG9yIHdlIGRvbid0IGhhdmUgYSByYW5nZSBzZWxl
Y3Rpb24sIHRoZXJlIGlzIG5vIG5lZWQgdG8gcGVyZm9ybSBhZGRpdGlvbmFsIGNoZWNrcwogICAg
IC8vIGFuZCB3ZSBjYW4gYXZvaWQgbWFraW5nIGEgc3luY2hyb25vdXMgY2FsbCB0byB0aGUgV2Vi
UHJvY2Vzcy4KLSAgICBpZiAobV92aWV3LndpbmRvdy5pc0tleVdpbmRvdyB8fCBtX3BhZ2UuZWRp
dG9yU3RhdGUoKS5zZWxlY3Rpb25Jc05vbmUgfHwgIW1fcGFnZS5lZGl0b3JTdGF0ZSgpLnNlbGVj
dGlvbklzUmFuZ2UpCisgICAgaWYgKG1fdmlldy53aW5kb3cuaXNLZXlXaW5kb3cgfHwgbV9wYWdl
LT5lZGl0b3JTdGF0ZSgpLnNlbGVjdGlvbklzTm9uZSB8fCAhbV9wYWdlLT5lZGl0b3JTdGF0ZSgp
LnNlbGVjdGlvbklzUmFuZ2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIC8vIFRoZXJl
J3MgYSBjaGFuY2UgdGhhdCByZXNwb25kaW5nIHRvIHRoaXMgZXZlbnQgd2lsbCBydW4gYSBuZXN0
ZWQgZXZlbnQgbG9vcCwgYW5kCkBAIC0xMTE2LDcgKzExNjIsNyBAQCBib29sIFdlYlZpZXdJbXBs
OjpzaG91bGREZWxheVdpbmRvd09yZGVyaW5nRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIHNldExhc3RNb3VzZURvd25FdmVudChldmVudCk7Ci0g
ICAgYm9vbCByZXN1bHQgPSBtX3BhZ2Uuc2hvdWxkRGVsYXlXaW5kb3dPcmRlcmluZ0ZvckV2ZW50
KFdlYkV2ZW50RmFjdG9yeTo6Y3JlYXRlV2ViTW91c2VFdmVudChldmVudCwgbV9sYXN0UHJlc3N1
cmVFdmVudC5nZXQoKSwgbV92aWV3KSk7CisgICAgYm9vbCByZXN1bHQgPSBtX3BhZ2UtPnNob3Vs
ZERlbGF5V2luZG93T3JkZXJpbmdGb3JFdmVudChXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYk1v
dXNlRXZlbnQoZXZlbnQsIG1fbGFzdFByZXNzdXJlRXZlbnQuZ2V0KCksIG1fdmlldykpOwogICAg
IHNldExhc3RNb3VzZURvd25FdmVudChuaWwpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CkBAIC0x
MTI0LDcgKzExNzAsNyBAQCBib29sIFdlYlZpZXdJbXBsOjpzaG91bGREZWxheVdpbmRvd09yZGVy
aW5nRm9yRXZlbnQoTlNFdmVudCAqZXZlbnQpCiBib29sIFdlYlZpZXdJbXBsOjp3aW5kb3dSZXNp
emVNb3VzZUxvY2F0aW9uSXNJblZpc2libGVTY3JvbGxlclRodW1iKENHUG9pbnQgcG9pbnQpCiB7
CiAgICAgTlNQb2ludCBsb2NhbFBvaW50ID0gW21fdmlldyBjb252ZXJ0UG9pbnQ6TlNQb2ludEZy
b21DR1BvaW50KHBvaW50KSBmcm9tVmlldzpuaWxdOwotICAgIE5TUmVjdCB2aXNpYmxlVGh1bWJS
ZWN0ID0gTlNSZWN0KG1fcGFnZS52aXNpYmxlU2Nyb2xsZXJUaHVtYlJlY3QoKSk7CisgICAgTlNS
ZWN0IHZpc2libGVUaHVtYlJlY3QgPSBOU1JlY3QobV9wYWdlLT52aXNpYmxlU2Nyb2xsZXJUaHVt
YlJlY3QoKSk7CiAgICAgcmV0dXJuIE5TTW91c2VJblJlY3QobG9jYWxQb2ludCwgdmlzaWJsZVRo
dW1iUmVjdCwgbV92aWV3LmlzRmxpcHBlZCk7CiB9CiAKQEAgLTExNTYsMTIgKzEyMDIsMTIgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6dmlld0RpZE1vdmVUb1dpbmRvdygpCiAgICAgICAgICAgICBtX3Zp
ZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVkID0gdHJ1ZTsKICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgdmlld1N0YXRlQ2hhbmdlcyB8PSBXZWJDb3JlOjpWaWV3U3RhdGU6OklzSW5XaW5kb3c7
Ci0gICAgICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2Uodmlld1N0YXRlQ2hhbmdlcyk7Cisg
ICAgICAgIG1fcGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKHZpZXdTdGF0ZUNoYW5nZXMpOwogCiAg
ICAgICAgIHVwZGF0ZVdpbmRvd0FuZFZpZXdGcmFtZXMoKTsKIAogICAgICAgICAvLyBGSVhNRSgx
MzU1MDkpIFRoaXMgY2FsbCBiZWNvbWVzIHVubmVjZXNzYXJ5IG9uY2UgMTM1NTA5IGlzIGZpeGVk
OyByZW1vdmUuCi0gICAgICAgIG1fcGFnZS5sYXllckhvc3RpbmdNb2RlRGlkQ2hhbmdlKCk7Cisg
ICAgICAgIG1fcGFnZS0+bGF5ZXJIb3N0aW5nTW9kZURpZENoYW5nZSgpOwogCiAgICAgICAgIGlm
ICghbV9mbGFnc0NoYW5nZWRFdmVudE1vbml0b3IpIHsKICAgICAgICAgICAgIGF1dG8gd2Vha1Ro
aXMgPSBjcmVhdGVXZWFrUHRyKCk7CkBAIC0xMTg0LDcgKzEyMzAsNyBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjp2aWV3RGlkTW92ZVRvV2luZG93KCkKICAgICAgICAgICAgIG1fdmlld0luV2luZG93Q2hh
bmdlV2FzRGVmZXJyZWQgPSB0cnVlOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICB2aWV3U3Rh
dGVDaGFuZ2VzIHw9IFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNJbldpbmRvdzsKLSAgICAgICAgbV9w
YWdlLnZpZXdTdGF0ZURpZENoYW5nZSh2aWV3U3RhdGVDaGFuZ2VzKTsKKyAgICAgICAgbV9wYWdl
LT52aWV3U3RhdGVEaWRDaGFuZ2Uodmlld1N0YXRlQ2hhbmdlcyk7CiAKICAgICAgICAgW05TRXZl
bnQgcmVtb3ZlTW9uaXRvcjptX2ZsYWdzQ2hhbmdlZEV2ZW50TW9uaXRvcl07CiAgICAgICAgIG1f
ZmxhZ3NDaGFuZ2VkRXZlbnRNb25pdG9yID0gbmlsOwpAQCAtMTE5Nyw3ICsxMjQzLDcgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6dmlld0RpZE1vdmVUb1dpbmRvdygpCiAjZW5kaWYKICAgICB9CiAKLSAg
ICBtX3BhZ2Uuc2V0SW50cmluc2ljRGV2aWNlU2NhbGVGYWN0b3IoaW50cmluc2ljRGV2aWNlU2Nh
bGVGYWN0b3IoKSk7CisgICAgbV9wYWdlLT5zZXRJbnRyaW5zaWNEZXZpY2VTY2FsZUZhY3Rvcihp
bnRyaW5zaWNEZXZpY2VTY2FsZUZhY3RvcigpKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6dmll
d0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzKCkKQEAgLTEyMDcsMjMgKzEyNTMsMjMgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6dmlld0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzKCkKICAgICAgICAg
cmV0dXJuOwogCiAgICAgbV9jb2xvclNwYWNlID0gbnVsbHB0cjsKLSAgICBpZiAoRHJhd2luZ0Fy
ZWFQcm94eSAqZHJhd2luZ0FyZWEgPSBtX3BhZ2UuZHJhd2luZ0FyZWEoKSkKKyAgICBpZiAoRHJh
d2luZ0FyZWFQcm94eSAqZHJhd2luZ0FyZWEgPSBtX3BhZ2UtPmRyYXdpbmdBcmVhKCkpCiAgICAg
ICAgIGRyYXdpbmdBcmVhLT5jb2xvclNwYWNlRGlkQ2hhbmdlKCk7CiB9CiAKIHZvaWQgV2ViVmll
d0ltcGw6OnZpZXdEaWRIaWRlKCkKIHsKLSAgICBtX3BhZ2Uudmlld1N0YXRlRGlkQ2hhbmdlKFdl
YkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsKKyAgICBtX3BhZ2UtPnZpZXdTdGF0ZURpZENo
YW5nZShXZWJDb3JlOjpWaWV3U3RhdGU6OklzVmlzaWJsZSk7CiB9CiAKIHZvaWQgV2ViVmlld0lt
cGw6OnZpZXdEaWRVbmhpZGUoKQogewotICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2Vi
Q29yZTo6Vmlld1N0YXRlOjpJc1Zpc2libGUpOworICAgIG1fcGFnZS0+dmlld1N0YXRlRGlkQ2hh
bmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1w
bDo6YWN0aXZlU3BhY2VEaWRDaGFuZ2UoKQogewotICAgIG1fcGFnZS52aWV3U3RhdGVEaWRDaGFu
Z2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc1Zpc2libGUpOworICAgIG1fcGFnZS0+dmlld1N0YXRl
RGlkQ2hhbmdlKFdlYkNvcmU6OlZpZXdTdGF0ZTo6SXNWaXNpYmxlKTsKIH0KIAogTlNWaWV3ICpX
ZWJWaWV3SW1wbDo6aGl0VGVzdChDR1BvaW50IHBvaW50KQpAQCAtMTI0MSw3ICsxMjg3LDcgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6cG9zdEZha2VNb3VzZU1vdmVkRXZlbnRGb3JGbGFnc0NoYW5nZWRF
dmVudChOU0V2ZW50ICpmbGFnc0NoYW4KICAgICAgICAgbW9kaWZpZXJGbGFnczpmbGFnc0NoYW5n
ZWRFdmVudC5tb2RpZmllckZsYWdzIHRpbWVzdGFtcDpmbGFnc0NoYW5nZWRFdmVudC50aW1lc3Rh
bXAgd2luZG93TnVtYmVyOmZsYWdzQ2hhbmdlZEV2ZW50LndpbmRvd051bWJlcgogICAgICAgICBj
b250ZXh0OmZsYWdzQ2hhbmdlZEV2ZW50LmNvbnRleHQgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50
OjAgcHJlc3N1cmU6MF07CiAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudChmYWtlRXZl
bnQsIG1fbGFzdFByZXNzdXJlRXZlbnQuZ2V0KCksIG1fdmlldyk7Ci0gICAgbV9wYWdlLmhhbmRs
ZU1vdXNlRXZlbnQod2ViRXZlbnQpOworICAgIG1fcGFnZS0+aGFuZGxlTW91c2VFdmVudCh3ZWJF
dmVudCk7CiB9CiAKIENvbG9yU3BhY2VEYXRhIFdlYlZpZXdJbXBsOjpjb2xvclNwYWNlKCkKQEAg
LTEyNjMsMTIgKzEzMDksMTIgQEAgQ29sb3JTcGFjZURhdGEgV2ViVmlld0ltcGw6OmNvbG9yU3Bh
Y2UoKQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRVbmRlcmxheUNvbG9yKE5TQ29sb3IgKnVuZGVy
bGF5Q29sb3IpCiB7Ci0gICAgbV9wYWdlLnNldFVuZGVybGF5Q29sb3IoV2ViQ29yZTo6Y29sb3JG
cm9tTlNDb2xvcih1bmRlcmxheUNvbG9yKSk7CisgICAgbV9wYWdlLT5zZXRVbmRlcmxheUNvbG9y
KFdlYkNvcmU6OmNvbG9yRnJvbU5TQ29sb3IodW5kZXJsYXlDb2xvcikpOwogfQogCiBOU0NvbG9y
ICpXZWJWaWV3SW1wbDo6dW5kZXJsYXlDb2xvcigpIGNvbnN0CiB7Ci0gICAgV2ViQ29yZTo6Q29s
b3Igd2ViQ29sb3IgPSBtX3BhZ2UudW5kZXJsYXlDb2xvcigpOworICAgIFdlYkNvcmU6OkNvbG9y
IHdlYkNvbG9yID0gbV9wYWdlLT51bmRlcmxheUNvbG9yKCk7CiAgICAgaWYgKCF3ZWJDb2xvci5p
c1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiBuaWw7CiAKQEAgLTEyNzcsNyArMTMyMyw3IEBAIE5T
Q29sb3IgKldlYlZpZXdJbXBsOjp1bmRlcmxheUNvbG9yKCkgY29uc3QKIAogTlNDb2xvciAqV2Vi
Vmlld0ltcGw6OnBhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcigpIGNvbnN0CiB7Ci0gICAgV2Vi
Q29yZTo6Q29sb3IgY29sb3IgPSBtX3BhZ2UucGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yKCk7
CisgICAgV2ViQ29yZTo6Q29sb3IgY29sb3IgPSBtX3BhZ2UtPnBhZ2VFeHRlbmRlZEJhY2tncm91
bmRDb2xvcigpOwogICAgIGlmICghY29sb3IuaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gbmls
OwogCkBAIC0xMjg2LDEyICsxMzMyLDEyIEBAIE5TQ29sb3IgKldlYlZpZXdJbXBsOjpwYWdlRXh0
ZW5kZWRCYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRPdmVy
bGF5U2Nyb2xsYmFyU3R5bGUoV1RGOjpPcHRpb25hbDxXZWJDb3JlOjpTY3JvbGxiYXJPdmVybGF5
U3R5bGU+IHNjcm9sbGJhclN0eWxlKQogewotICAgIG1fcGFnZS5zZXRPdmVybGF5U2Nyb2xsYmFy
U3R5bGUoc2Nyb2xsYmFyU3R5bGUpOworICAgIG1fcGFnZS0+c2V0T3ZlcmxheVNjcm9sbGJhclN0
eWxlKHNjcm9sbGJhclN0eWxlKTsKIH0KIAogV1RGOjpPcHRpb25hbDxXZWJDb3JlOjpTY3JvbGxi
YXJPdmVybGF5U3R5bGU+IFdlYlZpZXdJbXBsOjpvdmVybGF5U2Nyb2xsYmFyU3R5bGUoKSBjb25z
dAogewotICAgIHJldHVybiBtX3BhZ2Uub3ZlcmxheVNjcm9sbGJhclN0eWxlKCk7CisgICAgcmV0
dXJuIG1fcGFnZS0+b3ZlcmxheVNjcm9sbGJhclN0eWxlKCk7CiB9CiAKIHZvaWQgV2ViVmlld0lt
cGw6OmJlZ2luRGVmZXJyaW5nVmlld0luV2luZG93Q2hhbmdlcygpCkBAIC0xMzE1LDcgKzEzNjEs
NyBAQCB2b2lkIFdlYlZpZXdJbXBsOjplbmREZWZlcnJpbmdWaWV3SW5XaW5kb3dDaGFuZ2VzKCkK
IAogICAgIGlmIChtX3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVycmVkKSB7CiAgICAgICAgIGRp
c3BhdGNoU2V0VG9wQ29udGVudEluc2V0KCk7Ci0gICAgICAgIG1fcGFnZS52aWV3U3RhdGVEaWRD
aGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0luV2luZG93KTsKKyAgICAgICAgbV9wYWdlLT52
aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0luV2luZG93KTsKICAgICAg
ICAgbV92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9IGZhbHNlOwogICAgIH0KIH0KQEAg
LTEzMzEsNyArMTM3Nyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmVuZERlZmVycmluZ1ZpZXdJbldp
bmRvd0NoYW5nZXNTeW5jKCkKIAogICAgIGlmIChtX3ZpZXdJbldpbmRvd0NoYW5nZVdhc0RlZmVy
cmVkKSB7CiAgICAgICAgIGRpc3BhdGNoU2V0VG9wQ29udGVudEluc2V0KCk7Ci0gICAgICAgIG1f
cGFnZS52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJc0luV2luZG93KTsK
KyAgICAgICAgbV9wYWdlLT52aWV3U3RhdGVEaWRDaGFuZ2UoV2ViQ29yZTo6Vmlld1N0YXRlOjpJ
c0luV2luZG93KTsKICAgICAgICAgbV92aWV3SW5XaW5kb3dDaGFuZ2VXYXNEZWZlcnJlZCA9IGZh
bHNlOwogICAgIH0KIH0KQEAgLTEzNDYsNyArMTM5Miw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnBy
ZXBhcmVGb3JNb3ZlVG9XaW5kb3coTlNXaW5kb3cgKnRhcmdldFdpbmRvdywgc3RkOjpmdW5jdGlv
bjx2CiAgICAgbV9zaG91bGREZWZlclZpZXdJbldpbmRvd0NoYW5nZXMgPSBmYWxzZTsKIAogICAg
IGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFrUHRyKCk7Ci0gICAgbV9wYWdlLmluc3RhbGxWaWV3
U3RhdGVDaGFuZ2VDb21wbGV0aW9uSGFuZGxlcihbd2Vha1RoaXMsIGNvbXBsZXRpb25IYW5kbGVy
XSgpIHsKKyAgICBtX3BhZ2UtPmluc3RhbGxWaWV3U3RhdGVDaGFuZ2VDb21wbGV0aW9uSGFuZGxl
cihbd2Vha1RoaXMsIGNvbXBsZXRpb25IYW5kbGVyXSgpIHsKICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKIAogICAgICAgICBpZiAoIXdlYWtUaGlzKQpAQCAtMTM1Nyw3ICsxNDAzLDcgQEAg
dm9pZCBXZWJWaWV3SW1wbDo6cHJlcGFyZUZvck1vdmVUb1dpbmRvdyhOU1dpbmRvdyAqdGFyZ2V0
V2luZG93LCBzdGQ6OmZ1bmN0aW9uPHYKICAgICB9KTsKIAogICAgIGRpc3BhdGNoU2V0VG9wQ29u
dGVudEluc2V0KCk7Ci0gICAgbV9wYWdlLnZpZXdTdGF0ZURpZENoYW5nZShXZWJDb3JlOjpWaWV3
U3RhdGU6OklzSW5XaW5kb3csIGZhbHNlLCBXZWJQYWdlUHJveHk6OlZpZXdTdGF0ZUNoYW5nZURp
c3BhdGNoTW9kZTo6SW1tZWRpYXRlKTsKKyAgICBtX3BhZ2UtPnZpZXdTdGF0ZURpZENoYW5nZShX
ZWJDb3JlOjpWaWV3U3RhdGU6OklzSW5XaW5kb3csIGZhbHNlLCBXZWJQYWdlUHJveHk6OlZpZXdT
dGF0ZUNoYW5nZURpc3BhdGNoTW9kZTo6SW1tZWRpYXRlKTsKICAgICBtX3ZpZXdJbldpbmRvd0No
YW5nZVdhc0RlZmVycmVkID0gZmFsc2U7CiB9CiAKQEAgLTEzNzIsNyArMTQxOCw3IEBAIHZvaWQg
V2ViVmlld0ltcGw6OnVwZGF0ZVNlY3VyZUlucHV0U3RhdGUoKQogICAgIH0KICAgICAvLyBXS1Zp
ZXcgaGFzIGEgc2luZ2xlIGlucHV0IGNvbnRleHQgZm9yIGFsbCBlZGl0YWJsZSBhcmVhcyAoZXhj
ZXB0IGZvciBwbHVnLWlucykuCiAgICAgTlNUZXh0SW5wdXRDb250ZXh0ICpjb250ZXh0ID0gW21f
dmlldyBfc3VwZXJJbnB1dENvbnRleHRdOwotICAgIGJvb2wgaXNJblBhc3N3b3JkRmllbGQgPSBt
X3BhZ2UuZWRpdG9yU3RhdGUoKS5pc0luUGFzc3dvcmRGaWVsZDsKKyAgICBib29sIGlzSW5QYXNz
d29yZEZpZWxkID0gbV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzSW5QYXNzd29yZEZpZWxkOwogCiAg
ICAgaWYgKGlzSW5QYXNzd29yZEZpZWxkKSB7CiAgICAgICAgIGlmICghbV9pblNlY3VyZUlucHV0
U3RhdGUpCkBAIC0xNDE4LDcgKzE0NjQsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRQbHVnaW5D
b21wbGV4VGV4dElucHV0U3RhdGUoUGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlIHBsdQogICAg
ICAgICByZXR1cm47CiAKICAgICAvLyBTZW5kIGJhY2sgYW4gZW1wdHkgc3RyaW5nIHRvIHRoZSBw
bHVnLWluLiBUaGlzIHdpbGwgZGlzYWJsZSB0ZXh0IGlucHV0LgotICAgIG1fcGFnZS5zZW5kQ29t
cGxleFRleHRJbnB1dFRvUGx1Z2luKG1fcGx1Z2luQ29tcGxleFRleHRJbnB1dElkZW50aWZpZXIs
IFN0cmluZygpKTsKKyAgICBtX3BhZ2UtPnNlbmRDb21wbGV4VGV4dElucHV0VG9QbHVnaW4obV9w
bHVnaW5Db21wbGV4VGV4dElucHV0SWRlbnRpZmllciwgU3RyaW5nKCkpOwogfQogCiB2b2lkIFdl
YlZpZXdJbXBsOjpzZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGVBbmRJZGVudGlmaWVyKFBs
dWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSBwbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUsIHVp
bnQ2NF90IHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyKQpAQCAtMTQ1NSw3ICsxNTAx
LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6aGFuZGxlUGx1Z2luQ29tcGxleFRleHRJbnB1dEtleURv
d24oTlNFdmVudCAqZXZlbnQpCiAgICAgQk9PTCBkaWRIYW5kbGVFdmVudCA9IFtbV0tUZXh0SW5w
dXRXaW5kb3dDb250cm9sbGVyIHNoYXJlZFRleHRJbnB1dFdpbmRvd0NvbnRyb2xsZXJdIGludGVy
cHJldEtleUV2ZW50OmV2ZW50IHVzaW5nTGVnYWN5Q29jb2FUZXh0SW5wdXQ6dXNpbmdMZWdhY3lD
b2NvYVRleHRJbnB1dCBzdHJpbmc6JnN0cmluZ107CiAKICAgICBpZiAoc3RyaW5nKSB7Ci0gICAg
ICAgIG1fcGFnZS5zZW5kQ29tcGxleFRleHRJbnB1dFRvUGx1Z2luKG1fcGx1Z2luQ29tcGxleFRl
eHRJbnB1dElkZW50aWZpZXIsIHN0cmluZyk7CisgICAgICAgIG1fcGFnZS0+c2VuZENvbXBsZXhU
ZXh0SW5wdXRUb1BsdWdpbihtX3BsdWdpbkNvbXBsZXhUZXh0SW5wdXRJZGVudGlmaWVyLCBzdHJp
bmcpOwogCiAgICAgICAgIGlmICghdXNpbmdMZWdhY3lDb2NvYVRleHRJbnB1dCkKICAgICAgICAg
ICAgIG1fcGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlID0gUGx1Z2luQ29tcGxleFRleHRJbnB1
dERpc2FibGVkOwpAQCAtMTUyMiw3ICsxNTY4LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6dHJ5UG9z
dFByb2Nlc3NQbHVnaW5Db21wbGV4VGV4dElucHV0S2V5RG93bihOU0V2ZW50ICpldmVudCkKIAog
dm9pZCBXZWJWaWV3SW1wbDo6aGFuZGxlQWNjZXB0ZWRBbHRlcm5hdGl2ZVRleHQoY29uc3QgU3Ry
aW5nJiBhY2NlcHRlZEFsdGVybmF0aXZlKQogewotICAgIG1fcGFnZS5oYW5kbGVBbHRlcm5hdGl2
ZVRleHRVSVJlc3VsdChhY2NlcHRlZEFsdGVybmF0aXZlKTsKKyAgICBtX3BhZ2UtPmhhbmRsZUFs
dGVybmF0aXZlVGV4dFVJUmVzdWx0KGFjY2VwdGVkQWx0ZXJuYXRpdmUpOwogfQogCiAKQEAgLTE1
NDYsNyArMTU5Miw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnByZXNzdXJlQ2hhbmdlV2l0aEV2ZW50
KE5TRXZlbnQgKmV2ZW50KQogICAgICAgICByZXR1cm47CiAKICAgICBOYXRpdmVXZWJNb3VzZUV2
ZW50IHdlYkV2ZW50KGV2ZW50LCBtX2xhc3RQcmVzc3VyZUV2ZW50LmdldCgpLCBtX3ZpZXcpOwot
ICAgIG1fcGFnZS5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsKKyAgICBtX3BhZ2UtPmhhbmRs
ZU1vdXNlRXZlbnQod2ViRXZlbnQpOwogCiAgICAgbV9sYXN0UHJlc3N1cmVFdmVudCA9IGV2ZW50
OwogI2VuZGlmCkBAIC0xNTk2LDcgKzE2NDIsNyBAQCBOU1dpbmRvdyAqV2ViVmlld0ltcGw6OmNy
ZWF0ZUZ1bGxTY3JlZW5XaW5kb3coKQogCiBib29sIFdlYlZpZXdJbXBsOjppc0VkaXRhYmxlKCkg
Y29uc3QKIHsKLSAgICByZXR1cm4gbV9wYWdlLmlzRWRpdGFibGUoKTsKKyAgICByZXR1cm4gbV9w
YWdlLT5pc0VkaXRhYmxlKCk7CiB9CiAKIHR5cGVkZWYgSGFzaE1hcDxTRUwsIFN0cmluZz4gU2Vs
ZWN0b3JOYW1lTWFwOwpAQCAtMTY2MSw3ICsxNzA3LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6ZXhl
Y3V0ZVNhdmVkQ29tbWFuZEJ5U2VsZWN0b3IoU0VMIHNlbGVjdG9yKQogCiB2b2lkIFdlYlZpZXdJ
bXBsOjpleGVjdXRlRWRpdENvbW1hbmRGb3JTZWxlY3RvcihTRUwgc2VsZWN0b3IsIGNvbnN0IFN0
cmluZyYgYXJndW1lbnQpCiB7Ci0gICAgbV9wYWdlLmV4ZWN1dGVFZGl0Q29tbWFuZChjb21tYW5k
TmFtZUZvclNlbGVjdG9yKHNlbGVjdG9yKSwgYXJndW1lbnQpOworICAgIG1fcGFnZS0+ZXhlY3V0
ZUVkaXRDb21tYW5kKGNvbW1hbmROYW1lRm9yU2VsZWN0b3Ioc2VsZWN0b3IpLCBhcmd1bWVudCk7
CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnJlZ2lzdGVyRWRpdENvbW1hbmQoUmVmUHRyPFdlYkVk
aXRDb21tYW5kUHJveHk+IHBycENvbW1hbmQsIFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbyB1bmRv
T3JSZWRvKQpAQCAtMTY4OCw5ICsxNzM0LDkgQEAgYm9vbCBXZWJWaWV3SW1wbDo6d3JpdGVTZWxl
Y3Rpb25Ub1Bhc3RlYm9hcmQoTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkLCBOU0FycmF5ICoKICAg
ICBbcGFzdGVib2FyZCBkZWNsYXJlVHlwZXM6dHlwZXMgb3duZXI6bmlsXTsKICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8IG51bVR5cGVzOyArK2kpIHsKICAgICAgICAgaWYgKFtbdHlwZXMgb2Jq
ZWN0QXRJbmRleDppXSBpc0VxdWFsVG86TlNTdHJpbmdQYm9hcmRUeXBlXSkKLSAgICAgICAgICAg
IFtwYXN0ZWJvYXJkIHNldFN0cmluZzptX3BhZ2Uuc3RyaW5nU2VsZWN0aW9uRm9yUGFzdGVib2Fy
ZCgpIGZvclR5cGU6TlNTdHJpbmdQYm9hcmRUeXBlXTsKKyAgICAgICAgICAgIFtwYXN0ZWJvYXJk
IHNldFN0cmluZzptX3BhZ2UtPnN0cmluZ1NlbGVjdGlvbkZvclBhc3RlYm9hcmQoKSBmb3JUeXBl
Ok5TU3RyaW5nUGJvYXJkVHlwZV07CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgUmVmUHRy
PFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gYnVmZmVyID0gbV9wYWdlLmRhdGFTZWxlY3Rpb25Gb3JQ
YXN0ZWJvYXJkKFt0eXBlcyBvYmplY3RBdEluZGV4OmldKTsKKyAgICAgICAgICAgIFJlZlB0cjxX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI+IGJ1ZmZlciA9IG1fcGFnZS0+ZGF0YVNlbGVjdGlvbkZvclBh
c3RlYm9hcmQoW3R5cGVzIG9iamVjdEF0SW5kZXg6aV0pOwogICAgICAgICAgICAgW3Bhc3RlYm9h
cmQgc2V0RGF0YTpidWZmZXIgPyBidWZmZXItPmNyZWF0ZU5TRGF0YSgpLmdldCgpIDogbmlsIGZv
clR5cGU6W3R5cGVzIG9iamVjdEF0SW5kZXg6aV1dOwogICAgICAgICB9CiAgICAgfQpAQCAtMTY5
OSwxMiArMTc0NSwxMiBAQCBib29sIFdlYlZpZXdJbXBsOjp3cml0ZVNlbGVjdGlvblRvUGFzdGVi
b2FyZChOU1Bhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIE5TQXJyYXkgKgogCiBib29sIFdlYlZpZXdJ
bXBsOjpyZWFkU2VsZWN0aW9uRnJvbVBhc3RlYm9hcmQoTlNQYXN0ZWJvYXJkICpwYXN0ZWJvYXJk
KQogewotICAgIHJldHVybiBtX3BhZ2UucmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkKFtwYXN0
ZWJvYXJkIG5hbWVdKTsKKyAgICByZXR1cm4gbV9wYWdlLT5yZWFkU2VsZWN0aW9uRnJvbVBhc3Rl
Ym9hcmQoW3Bhc3RlYm9hcmQgbmFtZV0pOwogfQogCiBpZCBXZWJWaWV3SW1wbDo6dmFsaWRSZXF1
ZXN0b3JGb3JTZW5kQW5kUmV0dXJuVHlwZXMoTlNTdHJpbmcgKnNlbmRUeXBlLCBOU1N0cmluZyAq
cmV0dXJuVHlwZSkKIHsKLSAgICBFZGl0b3JTdGF0ZSBlZGl0b3JTdGF0ZSA9IG1fcGFnZS5lZGl0
b3JTdGF0ZSgpOworICAgIEVkaXRvclN0YXRlIGVkaXRvclN0YXRlID0gbV9wYWdlLT5lZGl0b3JT
dGF0ZSgpOwogICAgIGJvb2wgaXNWYWxpZFNlbmRUeXBlID0gZmFsc2U7CiAKICAgICBpZiAoc2Vu
ZFR5cGUgJiYgIWVkaXRvclN0YXRlLnNlbGVjdGlvbklzTm9uZSkgewpAQCAtMTcyOCw3ICsxNzc0
LDcgQEAgaWQgV2ViVmlld0ltcGw6OnZhbGlkUmVxdWVzdG9yRm9yU2VuZEFuZFJldHVyblR5cGVz
KE5TU3RyaW5nICpzZW5kVHlwZSwgTlNTdHJpbmcKIAogdm9pZCBXZWJWaWV3SW1wbDo6Y2VudGVy
U2VsZWN0aW9uSW5WaXNpYmxlQXJlYSgpCiB7Ci0gICAgbV9wYWdlLmNlbnRlclNlbGVjdGlvbklu
VmlzaWJsZUFyZWEoKTsKKyAgICBtX3BhZ2UtPmNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWEo
KTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2VsZWN0aW9uRGlkQ2hhbmdlKCkKQEAgLTE3NDMs
MTEgKzE3ODksMTEgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c3RhcnRPYnNlcnZpbmdGb250UGFuZWwo
KQogCiB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVGb250UGFuZWxJZk5lZWRlZCgpCiB7Ci0gICAg
Y29uc3QgRWRpdG9yU3RhdGUmIGVkaXRvclN0YXRlID0gbV9wYWdlLmVkaXRvclN0YXRlKCk7Cisg
ICAgY29uc3QgRWRpdG9yU3RhdGUmIGVkaXRvclN0YXRlID0gbV9wYWdlLT5lZGl0b3JTdGF0ZSgp
OwogICAgIGlmIChlZGl0b3JTdGF0ZS5zZWxlY3Rpb25Jc05vbmUgfHwgIWVkaXRvclN0YXRlLmlz
Q29udGVudEVkaXRhYmxlKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKFtOU0ZvbnRQYW5lbCBz
aGFyZWRGb250UGFuZWxFeGlzdHNdICYmIFtbTlNGb250UGFuZWwgc2hhcmVkRm9udFBhbmVsXSBp
c1Zpc2libGVdKSB7Ci0gICAgICAgIG1fcGFnZS5mb250QXRTZWxlY3Rpb24oW10oY29uc3QgU3Ry
aW5nJiBmb250TmFtZSwgZG91YmxlIGZvbnRTaXplLCBib29sIHNlbGVjdGlvbkhhc011bHRpcGxl
Rm9udHMsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgICAgICBtX3Bh
Z2UtPmZvbnRBdFNlbGVjdGlvbihbXShjb25zdCBTdHJpbmcmIGZvbnROYW1lLCBkb3VibGUgZm9u
dFNpemUsIGJvb2wgc2VsZWN0aW9uSGFzTXVsdGlwbGVGb250cywgV2ViS2l0OjpDYWxsYmFja0Jh
c2U6OkVycm9yIGVycm9yKSB7CiAgICAgICAgICAgICBOU0ZvbnQgKmZvbnQgPSBbTlNGb250IGZv
bnRXaXRoTmFtZTpmb250TmFtZSBzaXplOmZvbnRTaXplXTsKICAgICAgICAgICAgIGlmIChmb250
KQogICAgICAgICAgICAgICAgIFtbTlNGb250TWFuYWdlciBzaGFyZWRGb250TWFuYWdlcl0gc2V0
U2VsZWN0ZWRGb250OmZvbnQgaXNNdWx0aXBsZTpzZWxlY3Rpb25IYXNNdWx0aXBsZUZvbnRzXTsK
QEAgLTE3NjEsNyArMTgwNyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmNoYW5nZUZvbnRGcm9tRm9u
dFBhbmVsKCkKICAgICBOU0ZvbnQgKmZvbnQgPSBbZm9udE1hbmFnZXIgY29udmVydEZvbnQ6Zm9u
dE1hbmFnZXIuc2VsZWN0ZWRGb250XTsKICAgICBpZiAoIWZvbnQpCiAgICAgICAgIHJldHVybjsK
LSAgICBtX3BhZ2Uuc2V0Rm9udChmb250LmZhbWlseU5hbWUsIGZvbnQucG9pbnRTaXplLCBmb250
LmZvbnREZXNjcmlwdG9yLnN5bWJvbGljVHJhaXRzKTsKKyAgICBtX3BhZ2UtPnNldEZvbnQoZm9u
dC5mYW1pbHlOYW1lLCBmb250LnBvaW50U2l6ZSwgZm9udC5mb250RGVzY3JpcHRvci5zeW1ib2xp
Y1RyYWl0cyk7CiB9CiAKIHN0YXRpYyBOU01lbnVJdGVtICptZW51SXRlbShpZCA8TlNWYWxpZGF0
ZWRVc2VySW50ZXJmYWNlSXRlbT4gaXRlbSkKQEAgLTE3ODUsMTEgKzE4MzEsMTEgQEAgYm9vbCBX
ZWJWaWV3SW1wbDo6dmFsaWRhdGVVc2VySW50ZXJmYWNlSXRlbShpZCA8TlNWYWxpZGF0ZWRVc2Vy
SW50ZXJmYWNlSXRlbT4gaXQKICAgICBpZiAoYWN0aW9uID09IEBzZWxlY3RvcihzaG93R3Vlc3NQ
YW5lbDopKSB7CiAgICAgICAgIGlmIChOU01lbnVJdGVtICptZW51SXRlbSA9IFdlYktpdDo6bWVu
dUl0ZW0oaXRlbSkpCiAgICAgICAgICAgICBbbWVudUl0ZW0gc2V0VGl0bGU6V2ViQ29yZTo6Y29u
dGV4dE1lbnVJdGVtVGFnU2hvd1NwZWxsaW5nUGFuZWwoIVtbW05TU3BlbGxDaGVja2VyIHNoYXJl
ZFNwZWxsQ2hlY2tlcl0gc3BlbGxpbmdQYW5lbF0gaXNWaXNpYmxlXSldOwotICAgICAgICByZXR1
cm4gbV9wYWdlLmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGU7CisgICAgICAgIHJldHVy
biBtX3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGU7CiAgICAgfQogCiAgICAg
aWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IoY2hlY2tTcGVsbGluZzopIHx8IGFjdGlvbiA9PSBAc2Vs
ZWN0b3IoY2hhbmdlU3BlbGxpbmc6KSkKLSAgICAgICAgcmV0dXJuIG1fcGFnZS5lZGl0b3JTdGF0
ZSgpLmlzQ29udGVudEVkaXRhYmxlOworICAgICAgICByZXR1cm4gbV9wYWdlLT5lZGl0b3JTdGF0
ZSgpLmlzQ29udGVudEVkaXRhYmxlOwogCiAgICAgaWYgKGFjdGlvbiA9PSBAc2VsZWN0b3IodG9n
Z2xlQ29udGludW91c1NwZWxsQ2hlY2tpbmc6KSkgewogICAgICAgICBib29sIGVuYWJsZWQgPSBU
ZXh0Q2hlY2tlcjo6aXNDb250aW51b3VzU3BlbGxDaGVja2luZ0FsbG93ZWQoKTsKQEAgLTE4MDcs
NTQgKzE4NTMsNTQgQEAgYm9vbCBXZWJWaWV3SW1wbDo6dmFsaWRhdGVVc2VySW50ZXJmYWNlSXRl
bShpZCA8TlNWYWxpZGF0ZWRVc2VySW50ZXJmYWNlSXRlbT4gaXQKICAgICBpZiAoYWN0aW9uID09
IEBzZWxlY3Rvcih0b2dnbGVBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb246KSkgewogICAgICAg
ICBib29sIGNoZWNrZWQgPSBUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRpY1NwZWxsaW5n
Q29ycmVjdGlvbkVuYWJsZWQ7CiAgICAgICAgIFttZW51SXRlbShpdGVtKSBzZXRTdGF0ZTpjaGVj
a2VkID8gTlNPblN0YXRlIDogTlNPZmZTdGF0ZV07Ci0gICAgICAgIHJldHVybiBtX3BhZ2UuZWRp
dG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZTsKKyAgICAgICAgcmV0dXJuIG1fcGFnZS0+ZWRp
dG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZTsKICAgICB9CiAKICAgICBpZiAoYWN0aW9uID09
IEBzZWxlY3RvcihvcmRlckZyb250U3Vic3RpdHV0aW9uc1BhbmVsOikpIHsKICAgICAgICAgaWYg
KE5TTWVudUl0ZW0gKm1lbnVJdGVtID0gV2ViS2l0OjptZW51SXRlbShpdGVtKSkKICAgICAgICAg
ICAgIFttZW51SXRlbSBzZXRUaXRsZTpXZWJDb3JlOjpjb250ZXh0TWVudUl0ZW1UYWdTaG93U3Vi
c3RpdHV0aW9ucyghW1tbTlNTcGVsbENoZWNrZXIgc2hhcmVkU3BlbGxDaGVja2VyXSBzdWJzdGl0
dXRpb25zUGFuZWxdIGlzVmlzaWJsZV0pXTsKLSAgICAgICAgcmV0dXJuIG1fcGFnZS5lZGl0b3JT
dGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlOworICAgICAgICByZXR1cm4gbV9wYWdlLT5lZGl0b3JT
dGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlOwogICAgIH0KIAogICAgIGlmIChhY3Rpb24gPT0gQHNl
bGVjdG9yKHRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlOikpIHsKLSAgICAgICAgYm9vbCBjaGVja2Vk
ID0gbV9wYWdlLmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CisgICAgICAgIGJvb2wgY2hl
Y2tlZCA9IG1fcGFnZS0+aXNTbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKICAgICAgICAgW21l
bnVJdGVtKGl0ZW0pIHNldFN0YXRlOmNoZWNrZWQgPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsK
LSAgICAgICAgcmV0dXJuIG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlOwor
ICAgICAgICByZXR1cm4gbV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlOwog
ICAgIH0KIAogICAgIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZUF1dG9tYXRpY1F1b3Rl
U3Vic3RpdHV0aW9uOikpIHsKICAgICAgICAgYm9vbCBjaGVja2VkID0gVGV4dENoZWNrZXI6OnN0
YXRlKCkuaXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQ7CiAgICAgICAgIFttZW51
SXRlbShpdGVtKSBzZXRTdGF0ZTpjaGVja2VkID8gTlNPblN0YXRlIDogTlNPZmZTdGF0ZV07Ci0g
ICAgICAgIHJldHVybiBtX3BhZ2UuZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZTsKKyAg
ICAgICAgcmV0dXJuIG1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZTsKICAg
ICB9CiAKICAgICBpZiAoYWN0aW9uID09IEBzZWxlY3Rvcih0b2dnbGVBdXRvbWF0aWNEYXNoU3Vi
c3RpdHV0aW9uOikpIHsKICAgICAgICAgYm9vbCBjaGVja2VkID0gVGV4dENoZWNrZXI6OnN0YXRl
KCkuaXNBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZDsKICAgICAgICAgW21lbnVJdGVt
KGl0ZW0pIHNldFN0YXRlOmNoZWNrZWQgPyBOU09uU3RhdGUgOiBOU09mZlN0YXRlXTsKLSAgICAg
ICAgcmV0dXJuIG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlOworICAgICAg
ICByZXR1cm4gbV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlOwogICAgIH0K
IAogICAgIGlmIChhY3Rpb24gPT0gQHNlbGVjdG9yKHRvZ2dsZUF1dG9tYXRpY0xpbmtEZXRlY3Rp
b246KSkgewogICAgICAgICBib29sIGNoZWNrZWQgPSBUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1
dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkOwogICAgICAgICBbbWVudUl0ZW0oaXRlbSkgc2V0
U3RhdGU6Y2hlY2tlZCA/IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVdOwotICAgICAgICByZXR1cm4g
bV9wYWdlLmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGU7CisgICAgICAgIHJldHVybiBt
X3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGU7CiAgICAgfQogCiAgICAgaWYg
KGFjdGlvbiA9PSBAc2VsZWN0b3IodG9nZ2xlQXV0b21hdGljVGV4dFJlcGxhY2VtZW50OikpIHsK
ICAgICAgICAgYm9vbCBjaGVja2VkID0gVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNU
ZXh0UmVwbGFjZW1lbnRFbmFibGVkOwogICAgICAgICBbbWVudUl0ZW0oaXRlbSkgc2V0U3RhdGU6
Y2hlY2tlZCA/IE5TT25TdGF0ZSA6IE5TT2ZmU3RhdGVdOwotICAgICAgICByZXR1cm4gbV9wYWdl
LmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGU7CisgICAgICAgIHJldHVybiBtX3BhZ2Ut
PmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGU7CiAgICAgfQogCiAgICAgaWYgKGFjdGlv
biA9PSBAc2VsZWN0b3IodXBwZXJjYXNlV29yZDopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IobG93
ZXJjYXNlV29yZDopIHx8IGFjdGlvbiA9PSBAc2VsZWN0b3IoY2FwaXRhbGl6ZVdvcmQ6KSkKLSAg
ICAgICAgcmV0dXJuIG1fcGFnZS5lZGl0b3JTdGF0ZSgpLnNlbGVjdGlvbklzUmFuZ2UgJiYgbV9w
YWdlLmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGU7CisgICAgICAgIHJldHVybiBtX3Bh
Z2UtPmVkaXRvclN0YXRlKCkuc2VsZWN0aW9uSXNSYW5nZSAmJiBtX3BhZ2UtPmVkaXRvclN0YXRl
KCkuaXNDb250ZW50RWRpdGFibGU7CiAKICAgICBpZiAoYWN0aW9uID09IEBzZWxlY3RvcihzdG9w
U3BlYWtpbmc6KSkKICAgICAgICAgcmV0dXJuIFtOU0FwcCBpc1NwZWFraW5nXTsKIAogICAgIC8v
IFRoZSBjZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhOiBzZWxlY3RvciBpcyBlbmFibGVkIGlm
IHRoZXJlJ3MgYSBzZWxlY3Rpb24gcmFuZ2Ugb3IgaWYgdGhlcmUncyBhbiBpbnNlcnRpb24gcG9p
bnQgaW4gYW4gZWRpdGFibGUgYXJlYS4KICAgICBpZiAoYWN0aW9uID09IEBzZWxlY3RvcihjZW50
ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhOikpCi0gICAgICAgIHJldHVybiBtX3BhZ2UuZWRpdG9y
U3RhdGUoKS5zZWxlY3Rpb25Jc1JhbmdlIHx8IChtX3BhZ2UuZWRpdG9yU3RhdGUoKS5pc0NvbnRl
bnRFZGl0YWJsZSAmJiAhbV9wYWdlLmVkaXRvclN0YXRlKCkuc2VsZWN0aW9uSXNOb25lKTsKKyAg
ICAgICAgcmV0dXJuIG1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5zZWxlY3Rpb25Jc1JhbmdlIHx8ICht
X3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGUgJiYgIW1fcGFnZS0+ZWRpdG9y
U3RhdGUoKS5zZWxlY3Rpb25Jc05vbmUpOwogCiAgICAgLy8gTmV4dCwgaGFuZGxlIGVkaXRvciBj
b21tYW5kcy4gU3RhcnQgYnkgcmV0dXJuaW5nIHRydWUgZm9yIGFueXRoaW5nIHRoYXQgaXMgbm90
IGFuIGVkaXRvciBjb21tYW5kLgogICAgIC8vIFJldHVybmluZyB0cnVlIGlzIHRoZSBkZWZhdWx0
IHRoaW5nIHRvIGRvIGluIGFuIEFwcEtpdCB2YWxpZGF0ZSBtZXRob2QgZm9yIGFueSBzZWxlY3Rv
ciB0aGF0IGlzIG5vdCByZWNvZ25pemVkLgpAQCAtMTg3MCw3ICsxOTE2LDcgQEAgYm9vbCBXZWJW
aWV3SW1wbDo6dmFsaWRhdGVVc2VySW50ZXJmYWNlSXRlbShpZCA8TlNWYWxpZGF0ZWRVc2VySW50
ZXJmYWNlSXRlbT4gaXQKICAgICAgICAgLy8gRklYTUU6IFRoZW9yZXRpY2FsbHksIHRoZXJlIGlz
IGEgcmFjZSBoZXJlOyB3aGVuIHdlIGdldCB0aGUgYW5zd2VyIGl0IG1pZ2h0IGJlIG9sZCwgZnJv
bSBhIHByZXZpb3VzIHRpbWUKICAgICAgICAgLy8gd2UgYXNrZWQgZm9yIHRoZSBzYW1lIGNvbW1h
bmQ7IHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGUgYW5zd2VyIGlzIHN0aWxsIHZhbGlkLgogICAg
ICAgICBhdXRvIHdlYWtUaGlzID0gY3JlYXRlV2Vha1B0cigpOwotICAgICAgICBtX3BhZ2UudmFs
aWRhdGVDb21tYW5kKGNvbW1hbmROYW1lLCBbd2Vha1RoaXNdKGNvbnN0IFN0cmluZyYgY29tbWFu
ZE5hbWUsIGJvb2wgaXNFbmFibGVkLCBpbnQzMl90IHN0YXRlLCBXZWJLaXQ6OkNhbGxiYWNrQmFz
ZTo6RXJyb3IgZXJyb3IpIHsKKyAgICAgICAgbV9wYWdlLT52YWxpZGF0ZUNvbW1hbmQoY29tbWFu
ZE5hbWUsIFt3ZWFrVGhpc10oY29uc3QgU3RyaW5nJiBjb21tYW5kTmFtZSwgYm9vbCBpc0VuYWJs
ZWQsIGludDMyX3Qgc3RhdGUsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewog
ICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgICAgICByZXR1cm47CiAKQEAg
LTE5MDEsNyArMTk0Nyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldFVzZXJJbnRlcmZhY2VJdGVt
U3RhdGUoTlNTdHJpbmcgKmNvbW1hbmROYW1lLCBib29sIGVuYWJsZWQsCiAKIHZvaWQgV2ViVmll
d0ltcGw6OnN0YXJ0U3BlYWtpbmcoKQogewotICAgIG1fcGFnZS5nZXRTZWxlY3Rpb25PckNvbnRl
bnRzQXNTdHJpbmcoW10oY29uc3QgU3RyaW5nJiBzdHJpbmcsIFdlYktpdDo6Q2FsbGJhY2tCYXNl
OjpFcnJvciBlcnJvcikgeworICAgIG1fcGFnZS0+Z2V0U2VsZWN0aW9uT3JDb250ZW50c0FzU3Ry
aW5nKFtdKGNvbnN0IFN0cmluZyYgc3RyaW5nLCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3Ig
ZXJyb3IpIHsKICAgICAgICAgaWYgKGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJv
cjo6Tm9uZSkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgaWYgKCFzdHJpbmcpCkBAIC0x
OTMwLDIwICsxOTc2LDIwIEBAIHZvaWQgV2ViVmlld0ltcGw6OnNob3dHdWVzc1BhbmVsKGlkIHNl
bmRlcikKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fcGFnZS5hZHZhbmNlVG9OZXh0
TWlzc3BlbGxpbmcodHJ1ZSk7CisgICAgbV9wYWdlLT5hZHZhbmNlVG9OZXh0TWlzc3BlbGxpbmco
dHJ1ZSk7CiAgICAgW3NwZWxsaW5nUGFuZWwgb3JkZXJGcm9udDpzZW5kZXJdOwogfQogCiB2b2lk
IFdlYlZpZXdJbXBsOjpjaGVja1NwZWxsaW5nKCkKIHsKLSAgICBtX3BhZ2UuYWR2YW5jZVRvTmV4
dE1pc3NwZWxsaW5nKGZhbHNlKTsKKyAgICBtX3BhZ2UtPmFkdmFuY2VUb05leHRNaXNzcGVsbGlu
ZyhmYWxzZSk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OmNoYW5nZVNwZWxsaW5nKGlkIHNlbmRl
cikKIHsKICAgICBOU1N0cmluZyAqd29yZCA9IFtbc2VuZGVyIHNlbGVjdGVkQ2VsbF0gc3RyaW5n
VmFsdWVdOwogCi0gICAgbV9wYWdlLmNoYW5nZVNwZWxsaW5nVG9Xb3JkKHdvcmQpOworICAgIG1f
cGFnZS0+Y2hhbmdlU3BlbGxpbmdUb1dvcmQod29yZCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6
OnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCkKQEAgLTE5NTEsNyArMTk5Nyw3IEBAIHZv
aWQgV2ViVmlld0ltcGw6OnRvZ2dsZUNvbnRpbnVvdXNTcGVsbENoZWNraW5nKCkKICAgICBib29s
IHNwZWxsQ2hlY2tpbmdFbmFibGVkID0gIVRleHRDaGVja2VyOjpzdGF0ZSgpLmlzQ29udGludW91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkOwogICAgIFRleHRDaGVja2VyOjpzZXRDb250aW51b3VzU3Bl
bGxDaGVja2luZ0VuYWJsZWQoc3BlbGxDaGVja2luZ0VuYWJsZWQpOwogCi0gICAgbV9wYWdlLnBy
b2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CisgICAgbV9wYWdlLT5wcm9jZXNzKCku
dXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOwogfQogCiBib29sIFdlYlZpZXdJbXBsOjppc0dyYW1t
YXJDaGVja2luZ0VuYWJsZWQoKQpAQCAtMTk2NSw3ICsyMDExLDcgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6c2V0R3JhbW1hckNoZWNraW5nRW5hYmxlZChib29sIGZsYWcpCiAgICAgICAgIHJldHVybjsK
IAogICAgIFRleHRDaGVja2VyOjpzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKGZsYWcpOwotICAg
IG1fcGFnZS5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOworICAgIG1fcGFnZS0+
cHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1w
bDo6dG9nZ2xlR3JhbW1hckNoZWNraW5nKCkKQEAgLTE5NzMsMTQgKzIwMTksMTQgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6dG9nZ2xlR3JhbW1hckNoZWNraW5nKCkKICAgICBib29sIGdyYW1tYXJDaGVj
a2luZ0VuYWJsZWQgPSAhVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNHcmFtbWFyQ2hlY2tpbmdFbmFi
bGVkOwogICAgIFRleHRDaGVja2VyOjpzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKGdyYW1tYXJD
aGVja2luZ0VuYWJsZWQpOwogCi0gICAgbV9wYWdlLnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tl
clN0YXRlKCk7CisgICAgbV9wYWdlLT5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgp
OwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjp0b2dnbGVBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rp
b24oKQogewogICAgIFRleHRDaGVja2VyOjpzZXRBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb25F
bmFibGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1dG9tYXRpY1NwZWxsaW5nQ29ycmVjdGlv
bkVuYWJsZWQpOwogCi0gICAgbV9wYWdlLnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRl
KCk7CisgICAgbV9wYWdlLT5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOwogfQog
CiB2b2lkIFdlYlZpZXdJbXBsOjpvcmRlckZyb250U3Vic3RpdHV0aW9uc1BhbmVsKGlkIHNlbmRl
cikKQEAgLTIwMDEsNyArMjA0Nyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6Om9yZGVyRnJvbnRTdWJz
dGl0dXRpb25zUGFuZWwoaWQgc2VuZGVyKQogCiB2b2lkIFdlYlZpZXdJbXBsOjp0b2dnbGVTbWFy
dEluc2VydERlbGV0ZSgpCiB7Ci0gICAgbV9wYWdlLnNldFNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxl
ZCghbV9wYWdlLmlzU21hcnRJbnNlcnREZWxldGVFbmFibGVkKCkpOworICAgIG1fcGFnZS0+c2V0
U21hcnRJbnNlcnREZWxldGVFbmFibGVkKCFtX3BhZ2UtPmlzU21hcnRJbnNlcnREZWxldGVFbmFi
bGVkKCkpOwogfQogCiBib29sIFdlYlZpZXdJbXBsOjppc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0
aW9uRW5hYmxlZCgpCkBAIC0yMDE1LDEzICsyMDYxLDEzIEBAIHZvaWQgV2ViVmlld0ltcGw6OnNl
dEF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZChib29sIGZsYWcpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIFRleHRDaGVja2VyOjpzZXRBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVu
YWJsZWQoZmxhZyk7Ci0gICAgbV9wYWdlLnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRl
KCk7CisgICAgbV9wYWdlLT5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOwogfQog
CiB2b2lkIFdlYlZpZXdJbXBsOjp0b2dnbGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbigpCiB7
CiAgICAgVGV4dENoZWNrZXI6OnNldEF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZCgh
VGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQp
OwotICAgIG1fcGFnZS5wcm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOworICAgIG1f
cGFnZS0+cHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKIH0KIAogYm9vbCBXZWJW
aWV3SW1wbDo6aXNBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZCgpCkBAIC0yMDM1LDEz
ICsyMDgxLDEzIEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldEF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRp
b25FbmFibGVkKGJvb2wgZmxhZykKICAgICAgICAgcmV0dXJuOwogCiAgICAgVGV4dENoZWNrZXI6
OnNldEF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkKGZsYWcpOwotICAgIG1fcGFnZS5w
cm9jZXNzKCkudXBkYXRlVGV4dENoZWNrZXJTdGF0ZSgpOworICAgIG1fcGFnZS0+cHJvY2Vzcygp
LnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6dG9nZ2xl
QXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbigpCiB7CiAgICAgVGV4dENoZWNrZXI6OnNldEF1dG9t
YXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkKCFUZXh0Q2hlY2tlcjo6c3RhdGUoKS5pc0F1dG9t
YXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkKTsKLSAgICBtX3BhZ2UucHJvY2VzcygpLnVwZGF0
ZVRleHRDaGVja2VyU3RhdGUoKTsKKyAgICBtX3BhZ2UtPnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hl
Y2tlclN0YXRlKCk7CiB9CiAKIGJvb2wgV2ViVmlld0ltcGw6OmlzQXV0b21hdGljTGlua0RldGVj
dGlvbkVuYWJsZWQoKQpAQCAtMjA1NSwxMyArMjEwMSwxMyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpz
ZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZChib29sIGZsYWcpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIFRleHRDaGVja2VyOjpzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZChm
bGFnKTsKLSAgICBtX3BhZ2UucHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsKKyAg
ICBtX3BhZ2UtPnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiB9CiAKIHZvaWQg
V2ViVmlld0ltcGw6OnRvZ2dsZUF1dG9tYXRpY0xpbmtEZXRlY3Rpb24oKQogewogICAgIFRleHRD
aGVja2VyOjpzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCghVGV4dENoZWNrZXI6OnN0
YXRlKCkuaXNBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCk7Ci0gICAgbV9wYWdlLnByb2Nl
c3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CisgICAgbV9wYWdlLT5wcm9jZXNzKCkudXBk
YXRlVGV4dENoZWNrZXJTdGF0ZSgpOwogfQogCiBib29sIFdlYlZpZXdJbXBsOjppc0F1dG9tYXRp
Y1RleHRSZXBsYWNlbWVudEVuYWJsZWQoKQpAQCAtMjA3NSwzMyArMjEyMSwzMyBAQCB2b2lkIFdl
YlZpZXdJbXBsOjpzZXRBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFibGVkKGJvb2wgZmxhZykK
ICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIFRleHRDaGVja2VyOjpzZXRBdXRvbWF0aWNUZXh0
UmVwbGFjZW1lbnRFbmFibGVkKGZsYWcpOwotICAgIG1fcGFnZS5wcm9jZXNzKCkudXBkYXRlVGV4
dENoZWNrZXJTdGF0ZSgpOworICAgIG1fcGFnZS0+cHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2Vy
U3RhdGUoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6dG9nZ2xlQXV0b21hdGljVGV4dFJlcGxh
Y2VtZW50KCkKIHsKICAgICBUZXh0Q2hlY2tlcjo6c2V0QXV0b21hdGljVGV4dFJlcGxhY2VtZW50
RW5hYmxlZCghVGV4dENoZWNrZXI6OnN0YXRlKCkuaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRF
bmFibGVkKTsKLSAgICBtX3BhZ2UucHJvY2VzcygpLnVwZGF0ZVRleHRDaGVja2VyU3RhdGUoKTsK
KyAgICBtX3BhZ2UtPnByb2Nlc3MoKS51cGRhdGVUZXh0Q2hlY2tlclN0YXRlKCk7CiB9CiAKIHZv
aWQgV2ViVmlld0ltcGw6OnVwcGVyY2FzZVdvcmQoKQogewotICAgIG1fcGFnZS51cHBlcmNhc2VX
b3JkKCk7CisgICAgbV9wYWdlLT51cHBlcmNhc2VXb3JkKCk7CiB9CiAKIHZvaWQgV2ViVmlld0lt
cGw6Omxvd2VyY2FzZVdvcmQoKQogewotICAgIG1fcGFnZS5sb3dlcmNhc2VXb3JkKCk7CisgICAg
bV9wYWdlLT5sb3dlcmNhc2VXb3JkKCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OmNhcGl0YWxp
emVXb3JkKCkKIHsKLSAgICBtX3BhZ2UuY2FwaXRhbGl6ZVdvcmQoKTsKKyAgICBtX3BhZ2UtPmNh
cGl0YWxpemVXb3JkKCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnByZWZlcmVuY2VzRGlkQ2hh
bmdlKCkKIHsKLSAgICBCT09MIG5lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9IG1f
cGFnZS5wcmVmZXJlbmNlcygpLnBsdWdpbnNFbmFibGVkKCk7CisgICAgQk9PTCBuZWVkc1ZpZXdG
cmFtZUluV2luZG93Q29vcmRpbmF0ZXMgPSBtX3BhZ2UtPnByZWZlcmVuY2VzKCkucGx1Z2luc0Vu
YWJsZWQoKTsKIAogICAgIGlmICghIW5lZWRzVmlld0ZyYW1lSW5XaW5kb3dDb29yZGluYXRlcyA9
PSAhIW1fbmVlZHNWaWV3RnJhbWVJbldpbmRvd0Nvb3JkaW5hdGVzKQogICAgICAgICByZXR1cm47
CkBAIC0yMTcxLDcgKzIyMTcsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkaXNtaXNzQ29udGVudFJl
bGF0aXZlQ2hpbGRXaW5kb3dzRnJvbVZpZXdPbmx5KCkKICAgICBbbV9pbW1lZGlhdGVBY3Rpb25D
b250cm9sbGVyIGRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdOwogI2VuZGlmCiAg
ICAgCi0gICAgbV9wYWdlQ2xpZW50LmRpc21pc3NDb3JyZWN0aW9uUGFuZWwoV2ViQ29yZTo6UmVh
c29uRm9yRGlzbWlzc2luZ0FsdGVybmF0aXZlVGV4dElnbm9yZWQpOworICAgIG1fcGFnZUNsaWVu
dC0+ZGlzbWlzc0NvcnJlY3Rpb25QYW5lbChXZWJDb3JlOjpSZWFzb25Gb3JEaXNtaXNzaW5nQWx0
ZXJuYXRpdmVUZXh0SWdub3JlZCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OmhpZGVXb3JkRGVm
aW5pdGlvbldpbmRvdygpCkBAIC0yMTkyLDcgKzIyMzgsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpx
dWlja0xvb2tXaXRoRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAjZW5kaWYKIAogICAgIE5TUG9pbnQg
bG9jYXRpb25JblZpZXdDb29yZGluYXRlcyA9IFttX3ZpZXcgY29udmVydFBvaW50OltldmVudCBs
b2NhdGlvbkluV2luZG93XSBmcm9tVmlldzpuaWxdOwotICAgIG1fcGFnZS5wZXJmb3JtRGljdGlv
bmFyeUxvb2t1cEF0TG9jYXRpb24oV2ViQ29yZTo6RmxvYXRQb2ludChsb2NhdGlvbkluVmlld0Nv
b3JkaW5hdGVzKSk7CisgICAgbV9wYWdlLT5wZXJmb3JtRGljdGlvbmFyeUxvb2t1cEF0TG9jYXRp
b24oV2ViQ29yZTo6RmxvYXRQb2ludChsb2NhdGlvbkluVmlld0Nvb3JkaW5hdGVzKSk7CiB9CiAK
IHZvaWQgV2ViVmlld0ltcGw6OnByZXBhcmVGb3JEaWN0aW9uYXJ5TG9va3VwKCkKQEAgLTIyMjAs
MTQgKzIyNjYsOSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRBbGxvd3NMaW5rUHJldmlldyhib29s
IGFsbG93c0xpbmtQcmV2aWV3KQogI2VuZGlmCiB9CiAKLXZvaWQqIFdlYlZpZXdJbXBsOjppbW1l
ZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdChXS0hpdFRlc3RS
ZXN1bHRSZWYgaGl0VGVzdFJlc3VsdCwgdWludDMyX3QgdHlwZSwgV0tUeXBlUmVmIHVzZXJEYXRh
KQordm9pZCogV2ViVmlld0ltcGw6OmltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJG
b3JIaXRUZXN0UmVzdWx0KEFQSTo6SGl0VGVzdFJlc3VsdCogaGl0VGVzdFJlc3VsdCwgdWludDMy
X3QgdHlwZSwgQVBJOjpPYmplY3QqIHVzZXJEYXRhKQogewotICAgIHJldHVybiBbbV92aWV3IF9p
bW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdDpoaXRUZXN0
UmVzdWx0IHdpdGhUeXBlOnR5cGUgdXNlckRhdGE6dXNlckRhdGFdOwotfQotCi12b2lkKiBXZWJW
aWV3SW1wbDo6aW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1
bHRGcm9tVmlld09ubHkoV0tIaXRUZXN0UmVzdWx0UmVmIGhpdFRlc3RSZXN1bHQsIHVpbnQzMl90
IHR5cGUsIFdLVHlwZVJlZiB1c2VyRGF0YSkKLXsKLSAgICByZXR1cm4gbmlsOworICAgIHJldHVy
biBbbV92aWV3IF93ZWJfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRl
c3RSZXN1bHRJbnRlcm5hbDpoaXRUZXN0UmVzdWx0IHdpdGhUeXBlOnR5cGUgdXNlckRhdGE6dXNl
ckRhdGFdOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpkaWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9u
SGl0VGVzdChjb25zdCBXZWJIaXRUZXN0UmVzdWx0RGF0YSYgcmVzdWx0LCBib29sIGNvbnRlbnRQ
cmV2ZW50c0RlZmF1bHQsIEFQSTo6T2JqZWN0KiB1c2VyRGF0YSkKQEAgLTIyNTIsMTMgKzIyOTMs
MTggQEAgdm9pZCBXZWJWaWV3SW1wbDo6Y29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24o
KQogICAgIFttX3ZpZXcgX2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uXTsKIH0KIAor
dm9pZCBXZWJWaWV3SW1wbDo6ZGlkQ2hhbmdlQ29udGVudFNpemUoQ0dTaXplIG5ld1NpemUpCit7
CisgICAgW21fdmlldyBfZGlkQ2hhbmdlQ29udGVudFNpemU6TlNTaXplRnJvbUNHU2l6ZShuZXdT
aXplKV07Cit9CisKIHZvaWQgV2ViVmlld0ltcGw6OnNldElnbm9yZXNOb25XaGVlbEV2ZW50cyhi
b29sIGlnbm9yZXNOb25XaGVlbEV2ZW50cykKIHsKICAgICBpZiAobV9pZ25vcmVzTm9uV2hlZWxF
dmVudHMgPT0gaWdub3Jlc05vbldoZWVsRXZlbnRzKQogICAgICAgICByZXR1cm47CiAKICAgICBt
X2lnbm9yZXNOb25XaGVlbEV2ZW50cyA9IGlnbm9yZXNOb25XaGVlbEV2ZW50czsKLSAgICBtX3Bh
Z2Uuc2V0U2hvdWxkRGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRzKCFpZ25vcmVzTm9uV2hlZWxF
dmVudHMpOworICAgIG1fcGFnZS0+c2V0U2hvdWxkRGlzcGF0Y2hGYWtlTW91c2VNb3ZlRXZlbnRz
KCFpZ25vcmVzTm9uV2hlZWxFdmVudHMpOwogCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9S
RVFVSVJFRCA+PSAxMDEwMDAKICAgICBpZiAoaWdub3Jlc05vbldoZWVsRXZlbnRzKQpAQCAtMjI5
NCw3ICsyMzQwLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlUmVtb3RlQWNjZXNzaWJpbGl0
eVJlZ2lzdHJhdGlvbihib29sIHJlZ2lzdGVyUHJvY2VzcykKICAgICAvLyBhd2F5LCB0aGF0IGlu
Zm9ybWF0aW9uIGlzIG5vdCBwcmVzZW50IGluIFdlYlByb2Nlc3MKICAgICBwaWRfdCBwaWQgPSAw
OwogICAgIGlmIChyZWdpc3RlclByb2Nlc3MpCi0gICAgICAgIHBpZCA9IG1fcGFnZS5wcm9jZXNz
KCkucHJvY2Vzc0lkZW50aWZpZXIoKTsKKyAgICAgICAgcGlkID0gbV9wYWdlLT5wcm9jZXNzKCku
cHJvY2Vzc0lkZW50aWZpZXIoKTsKICAgICBlbHNlIGlmICghcmVnaXN0ZXJQcm9jZXNzKSB7CiAg
ICAgICAgIHBpZCA9IFdLQVhSZW1vdGVQcm9jZXNzSWRlbnRpZmllcihtX3JlbW90ZUFjY2Vzc2li
aWxpdHlDaGlsZC5nZXQoKSk7CiAgICAgICAgIG1fcmVtb3RlQWNjZXNzaWJpbGl0eUNoaWxkID0g
bmlsOwpAQCAtMjMxMCw3ICsyMzU2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YWNjZXNzaWJpbGl0
eVJlZ2lzdGVyVUlQcm9jZXNzVG9rZW5zKCkKICAgICBOU0RhdGEgKnJlbW90ZVdpbmRvd1Rva2Vu
ID0gV0tBWFJlbW90ZVRva2VuRm9yRWxlbWVudChtX3ZpZXcud2luZG93KTsKICAgICBJUEM6OkRh
dGFSZWZlcmVuY2UgZWxlbWVudFRva2VuID0gSVBDOjpEYXRhUmVmZXJlbmNlKHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgdWludDhfdCo+KFtyZW1vdGVFbGVtZW50VG9rZW4gYnl0ZXNdKSwgW3JlbW90
ZUVsZW1lbnRUb2tlbiBsZW5ndGhdKTsKICAgICBJUEM6OkRhdGFSZWZlcmVuY2Ugd2luZG93VG9r
ZW4gPSBJUEM6OkRhdGFSZWZlcmVuY2UocmVpbnRlcnByZXRfY2FzdDxjb25zdCB1aW50OF90Kj4o
W3JlbW90ZVdpbmRvd1Rva2VuIGJ5dGVzXSksIFtyZW1vdGVXaW5kb3dUb2tlbiBsZW5ndGhdKTsK
LSAgICBtX3BhZ2UucmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW5zKGVsZW1lbnRU
b2tlbiwgd2luZG93VG9rZW4pOworICAgIG1fcGFnZS0+cmVnaXN0ZXJVSVByb2Nlc3NBY2Nlc3Np
YmlsaXR5VG9rZW5zKGVsZW1lbnRUb2tlbiwgd2luZG93VG9rZW4pOwogfQogCiBpZCBXZWJWaWV3
SW1wbDo6YWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQoKQpAQCAtMjQ2Miw3ICsyNTA4LDcg
QEAgdm9pZCBXZWJWaWV3SW1wbDo6c2VuZFRvb2xUaXBNb3VzZUVudGVyZWQoKQogCiBOU1N0cmlu
ZyAqV2ViVmlld0ltcGw6OnN0cmluZ0ZvclRvb2xUaXAoTlNUb29sVGlwVGFnIHRhZykKIHsKLSAg
ICByZXR1cm4gbnNTdHJpbmdGcm9tV2ViQ29yZVN0cmluZyhtX3BhZ2UudG9vbFRpcCgpKTsKKyAg
ICByZXR1cm4gbnNTdHJpbmdGcm9tV2ViQ29yZVN0cmluZyhtX3BhZ2UtPnRvb2xUaXAoKSk7CiB9
CiAKIHZvaWQgV2ViVmlld0ltcGw6OnRvb2xUaXBDaGFuZ2VkKGNvbnN0IFN0cmluZyYgb2xkVG9v
bFRpcCwgY29uc3QgU3RyaW5nJiBuZXdUb29sVGlwKQpAQCAtMjU2MCw3ICsyNjA2LDcgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6c2V0SW5zcGVjdG9yQXR0YWNobWVudFZpZXcoTlNWaWV3ICpuZXdWaWV3
KQogICAgICAgICByZXR1cm47CiAKICAgICBtX2luc3BlY3RvckF0dGFjaG1lbnRWaWV3ID0gbmV3
VmlldzsKLSAgICBtX3BhZ2UuaW5zcGVjdG9yKCktPmF0dGFjaG1lbnRWaWV3RGlkQ2hhbmdlKG9s
ZFZpZXcgPyBvbGRWaWV3IDogbV92aWV3LCBuZXdWaWV3ID8gbmV3VmlldyA6IG1fdmlldyk7Cisg
ICAgbV9wYWdlLT5pbnNwZWN0b3IoKS0+YXR0YWNobWVudFZpZXdEaWRDaGFuZ2Uob2xkVmlldyA/
IG9sZFZpZXcgOiBtX3ZpZXcsIG5ld1ZpZXcgPyBuZXdWaWV3IDogbV92aWV3KTsKIH0KIAogTlNW
aWV3ICpXZWJWaWV3SW1wbDo6aW5zcGVjdG9yQXR0YWNobWVudFZpZXcoKQpAQCAtMjU3MywyNiAr
MjYxOSwxNiBAQCBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqV2ViVmlld0ltcGw6OnJlbW90ZU9i
amVjdFJlZ2lzdHJ5KCkKIHsKICAgICBpZiAoIW1fcmVtb3RlT2JqZWN0UmVnaXN0cnkpIHsKICAg
ICAgICAgbV9yZW1vdGVPYmplY3RSZWdpc3RyeSA9IGFkb3B0TlMoW1tfV0tSZW1vdGVPYmplY3RS
ZWdpc3RyeSBhbGxvY10gX2luaXRXaXRoTWVzc2FnZVNlbmRlcjptX3BhZ2VdKTsKLSAgICAgICAg
bV9wYWdlLnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdl
czo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9wYWdlLnBh
Z2VJRCgpLCBbbV9yZW1vdGVPYmplY3RSZWdpc3RyeSByZW1vdGVPYmplY3RSZWdpc3RyeV0pOwor
ICAgICAgICBtX3BhZ2UtPnByb2Nlc3MoKS5wcm9jZXNzUG9vbCgpLmFkZE1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6UmVtb3RlT2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
bV9wYWdlLT5wYWdlSUQoKSwgW21fcmVtb3RlT2JqZWN0UmVnaXN0cnkgcmVtb3RlT2JqZWN0UmVn
aXN0cnldKTsKICAgICB9CiAKICAgICByZXR1cm4gbV9yZW1vdGVPYmplY3RSZWdpc3RyeS5nZXQo
KTsKIH0KIAotdm9pZCBXZWJWaWV3SW1wbDo6ZGVzdHJveVJlbW90ZU9iamVjdFJlZ2lzdHJ5KCkK
LXsKLSAgICBpZiAoIW1fcmVtb3RlT2JqZWN0UmVnaXN0cnkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1fcGFnZS5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlJlbW90ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1f
cGFnZS5wYWdlSUQoKSk7Ci0gICAgW21fcmVtb3RlT2JqZWN0UmVnaXN0cnkgX2ludmFsaWRhdGVd
OwotICAgIG1fcmVtb3RlT2JqZWN0UmVnaXN0cnkgPSBuaWw7Ci19Ci0KIFdLQnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlciAqV2ViVmlld0ltcGw6OmJyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIoKQog
ewogICAgIGlmICghbV9icm93c2luZ0NvbnRleHRDb250cm9sbGVyKQotICAgICAgICBtX2Jyb3dz
aW5nQ29udGV4dENvbnRyb2xsZXIgPSBhZG9wdE5TKFtbV0tCcm93c2luZ0NvbnRleHRDb250cm9s
bGVyIGFsbG9jXSBfaW5pdFdpdGhQYWdlUmVmOnRvQVBJKCZtX3BhZ2UpXSk7CisgICAgICAgIG1f
YnJvd3NpbmdDb250ZXh0Q29udHJvbGxlciA9IGFkb3B0TlMoW1tXS0Jyb3dzaW5nQ29udGV4dENv
bnRyb2xsZXIgYWxsb2NdIF9pbml0V2l0aFBhZ2VSZWY6dG9BUEkobV9wYWdlLnB0cigpKV0pOwog
CiAgICAgcmV0dXJuIG1fYnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5nZXQoKTsKIH0KQEAgLTI2
MTAsNyArMjY0Niw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRyYWdnZWRJbWFnZShOU0ltYWdlICpp
bWFnZSwgQ0dQb2ludCBlbmRQb2ludCwgTlNEcmFnT3BlcmF0aW9uCiAgICAgLy8gUHJldmVudCBx
dWV1ZWQgbW91c2VEcmFnZ2VkIGV2ZW50cyBmcm9tIGNvbWluZyBhZnRlciB0aGUgZHJhZyBhbmQg
ZmFrZSBtb3VzZVVwIGV2ZW50LgogICAgIG1faWdub3Jlc01vdXNlRHJhZ2dlZEV2ZW50cyA9IHRy
dWU7CiAKLSAgICBtX3BhZ2UuZHJhZ0VuZGVkKFdlYkNvcmU6OkludFBvaW50KHdpbmRvd01vdXNl
TG9jKSwgV2ViQ29yZTo6Z2xvYmFsUG9pbnQod2luZG93TW91c2VMb2MsIG1fdmlldy53aW5kb3cp
LCBvcGVyYXRpb24pOworICAgIG1fcGFnZS0+ZHJhZ0VuZGVkKFdlYkNvcmU6OkludFBvaW50KHdp
bmRvd01vdXNlTG9jKSwgV2ViQ29yZTo6Z2xvYmFsUG9pbnQod2luZG93TW91c2VMb2MsIG1fdmll
dy53aW5kb3cpLCBvcGVyYXRpb24pOwogfQogCiBzdGF0aWMgV2ViQ29yZTo6RHJhZ0FwcGxpY2F0
aW9uRmxhZ3MgYXBwbGljYXRpb25GbGFnc0ZvckRyYWcoTlNWaWV3ICp2aWV3LCBpZCA8TlNEcmFn
Z2luZ0luZm8+IGRyYWdnaW5nSW5mbykKQEAgLTI2MzQsOCArMjY3MCw4IEBAIE5TRHJhZ09wZXJh
dGlvbiBXZWJWaWV3SW1wbDo6ZHJhZ2dpbmdFbnRlcmVkKGlkIDxOU0RyYWdnaW5nSW5mbz4gZHJh
Z2dpbmdJbmZvKQogICAgIFdlYkNvcmU6OkludFBvaW50IGdsb2JhbChXZWJDb3JlOjpnbG9iYWxQ
b2ludChkcmFnZ2luZ0luZm8uZHJhZ2dpbmdMb2NhdGlvbiwgbV92aWV3LndpbmRvdykpOwogICAg
IFdlYkNvcmU6OkRyYWdEYXRhIGRyYWdEYXRhKGRyYWdnaW5nSW5mbywgY2xpZW50LCBnbG9iYWws
IHN0YXRpY19jYXN0PFdlYkNvcmU6OkRyYWdPcGVyYXRpb24+KGRyYWdnaW5nSW5mby5kcmFnZ2lu
Z1NvdXJjZU9wZXJhdGlvbk1hc2spLCBhcHBsaWNhdGlvbkZsYWdzRm9yRHJhZyhtX3ZpZXcsIGRy
YWdnaW5nSW5mbykpOwogCi0gICAgbV9wYWdlLnJlc2V0Q3VycmVudERyYWdJbmZvcm1hdGlvbigp
OwotICAgIG1fcGFnZS5kcmFnRW50ZXJlZChkcmFnRGF0YSwgZHJhZ2dpbmdJbmZvLmRyYWdnaW5n
UGFzdGVib2FyZC5uYW1lKTsKKyAgICBtX3BhZ2UtPnJlc2V0Q3VycmVudERyYWdJbmZvcm1hdGlv
bigpOworICAgIG1fcGFnZS0+ZHJhZ0VudGVyZWQoZHJhZ0RhdGEsIGRyYWdnaW5nSW5mby5kcmFn
Z2luZ1Bhc3RlYm9hcmQubmFtZSk7CiAgICAgcmV0dXJuIE5TRHJhZ09wZXJhdGlvbkNvcHk7CiB9
CiAKQEAgLTI2NDQsMTEgKzI2ODAsMTEgQEAgTlNEcmFnT3BlcmF0aW9uIFdlYlZpZXdJbXBsOjpk
cmFnZ2luZ1VwZGF0ZWQoaWQgPE5TRHJhZ2dpbmdJbmZvPiBkcmFnZ2luZ0luZm8pCiAgICAgV2Vi
Q29yZTo6SW50UG9pbnQgY2xpZW50KFttX3ZpZXcgY29udmVydFBvaW50OmRyYWdnaW5nSW5mby5k
cmFnZ2luZ0xvY2F0aW9uIGZyb21WaWV3Om5pbF0pOwogICAgIFdlYkNvcmU6OkludFBvaW50IGds
b2JhbChXZWJDb3JlOjpnbG9iYWxQb2ludChkcmFnZ2luZ0luZm8uZHJhZ2dpbmdMb2NhdGlvbiwg
bV92aWV3LndpbmRvdykpOwogICAgIFdlYkNvcmU6OkRyYWdEYXRhIGRyYWdEYXRhKGRyYWdnaW5n
SW5mbywgY2xpZW50LCBnbG9iYWwsIHN0YXRpY19jYXN0PFdlYkNvcmU6OkRyYWdPcGVyYXRpb24+
KGRyYWdnaW5nSW5mby5kcmFnZ2luZ1NvdXJjZU9wZXJhdGlvbk1hc2spLCBhcHBsaWNhdGlvbkZs
YWdzRm9yRHJhZyhtX3ZpZXcsIGRyYWdnaW5nSW5mbykpOwotICAgIG1fcGFnZS5kcmFnVXBkYXRl
ZChkcmFnRGF0YSwgZHJhZ2dpbmdJbmZvLmRyYWdnaW5nUGFzdGVib2FyZC5uYW1lKTsKKyAgICBt
X3BhZ2UtPmRyYWdVcGRhdGVkKGRyYWdEYXRhLCBkcmFnZ2luZ0luZm8uZHJhZ2dpbmdQYXN0ZWJv
YXJkLm5hbWUpOwogCi0gICAgTlNJbnRlZ2VyIG51bWJlck9mVmFsaWRJdGVtc0ZvckRyb3AgPSBt
X3BhZ2UuY3VycmVudERyYWdOdW1iZXJPZkZpbGVzVG9CZUFjY2VwdGVkKCk7CisgICAgTlNJbnRl
Z2VyIG51bWJlck9mVmFsaWRJdGVtc0ZvckRyb3AgPSBtX3BhZ2UtPmN1cnJlbnREcmFnTnVtYmVy
T2ZGaWxlc1RvQmVBY2NlcHRlZCgpOwogICAgIE5TRHJhZ2dpbmdGb3JtYXRpb24gZHJhZ2dpbmdG
b3JtYXRpb24gPSBOU0RyYWdnaW5nRm9ybWF0aW9uTm9uZTsKLSAgICBpZiAobV9wYWdlLmN1cnJl
bnREcmFnSXNPdmVyRmlsZUlucHV0KCkgJiYgbnVtYmVyT2ZWYWxpZEl0ZW1zRm9yRHJvcCA+IDAp
CisgICAgaWYgKG1fcGFnZS0+Y3VycmVudERyYWdJc092ZXJGaWxlSW5wdXQoKSAmJiBudW1iZXJP
ZlZhbGlkSXRlbXNGb3JEcm9wID4gMCkKICAgICAgICAgZHJhZ2dpbmdGb3JtYXRpb24gPSBOU0Ry
YWdnaW5nRm9ybWF0aW9uTGlzdDsKIAogICAgIGlmIChkcmFnZ2luZ0luZm8ubnVtYmVyT2ZWYWxp
ZEl0ZW1zRm9yRHJvcCAhPSBudW1iZXJPZlZhbGlkSXRlbXNGb3JEcm9wKQpAQCAtMjY1Niw3ICsy
NjkyLDcgQEAgTlNEcmFnT3BlcmF0aW9uIFdlYlZpZXdJbXBsOjpkcmFnZ2luZ1VwZGF0ZWQoaWQg
PE5TRHJhZ2dpbmdJbmZvPiBkcmFnZ2luZ0luZm8pCiAgICAgaWYgKGRyYWdnaW5nSW5mby5kcmFn
Z2luZ0Zvcm1hdGlvbiAhPSBkcmFnZ2luZ0Zvcm1hdGlvbikKICAgICAgICAgW2RyYWdnaW5nSW5m
byBzZXREcmFnZ2luZ0Zvcm1hdGlvbjpkcmFnZ2luZ0Zvcm1hdGlvbl07CiAKLSAgICByZXR1cm4g
bV9wYWdlLmN1cnJlbnREcmFnT3BlcmF0aW9uKCk7CisgICAgcmV0dXJuIG1fcGFnZS0+Y3VycmVu
dERyYWdPcGVyYXRpb24oKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6ZHJhZ2dpbmdFeGl0ZWQo
aWQgPE5TRHJhZ2dpbmdJbmZvPiBkcmFnZ2luZ0luZm8pCkBAIC0yNjY0LDggKzI3MDAsOCBAQCB2
b2lkIFdlYlZpZXdJbXBsOjpkcmFnZ2luZ0V4aXRlZChpZCA8TlNEcmFnZ2luZ0luZm8+IGRyYWdn
aW5nSW5mbykKICAgICBXZWJDb3JlOjpJbnRQb2ludCBjbGllbnQoW21fdmlldyBjb252ZXJ0UG9p
bnQ6ZHJhZ2dpbmdJbmZvLmRyYWdnaW5nTG9jYXRpb24gZnJvbVZpZXc6bmlsXSk7CiAgICAgV2Vi
Q29yZTo6SW50UG9pbnQgZ2xvYmFsKFdlYkNvcmU6Omdsb2JhbFBvaW50KGRyYWdnaW5nSW5mby5k
cmFnZ2luZ0xvY2F0aW9uLCBtX3ZpZXcud2luZG93KSk7CiAgICAgV2ViQ29yZTo6RHJhZ0RhdGEg
ZHJhZ0RhdGEoZHJhZ2dpbmdJbmZvLCBjbGllbnQsIGdsb2JhbCwgc3RhdGljX2Nhc3Q8V2ViQ29y
ZTo6RHJhZ09wZXJhdGlvbj4oZHJhZ2dpbmdJbmZvLmRyYWdnaW5nU291cmNlT3BlcmF0aW9uTWFz
ayksIGFwcGxpY2F0aW9uRmxhZ3NGb3JEcmFnKG1fdmlldywgZHJhZ2dpbmdJbmZvKSk7Ci0gICAg
bV9wYWdlLmRyYWdFeGl0ZWQoZHJhZ0RhdGEsIGRyYWdnaW5nSW5mby5kcmFnZ2luZ1Bhc3RlYm9h
cmQubmFtZSk7Ci0gICAgbV9wYWdlLnJlc2V0Q3VycmVudERyYWdJbmZvcm1hdGlvbigpOworICAg
IG1fcGFnZS0+ZHJhZ0V4aXRlZChkcmFnRGF0YSwgZHJhZ2dpbmdJbmZvLmRyYWdnaW5nUGFzdGVi
b2FyZC5uYW1lKTsKKyAgICBtX3BhZ2UtPnJlc2V0Q3VycmVudERyYWdJbmZvcm1hdGlvbigpOwog
fQogCiBib29sIFdlYlZpZXdJbXBsOjpwcmVwYXJlRm9yRHJhZ09wZXJhdGlvbihpZCA8TlNEcmFn
Z2luZ0luZm8+KQpAQCAtMjcyMywxMiArMjc1OSwxMiBAQCBib29sIFdlYlZpZXdJbXBsOjpwZXJm
b3JtRHJhZ09wZXJhdGlvbihpZCA8TlNEcmFnZ2luZ0luZm8+IGRyYWdnaW5nSW5mbykKICAgICBT
YW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUgc2FuZGJveEV4dGVuc2lvbkhhbmRsZTsKICAgICBib29s
IGNyZWF0ZWRFeHRlbnNpb24gPSBtYXliZUNyZWF0ZVNhbmRib3hFeHRlbnNpb25Gcm9tUGFzdGVi
b2FyZChkcmFnZ2luZ0luZm8uZHJhZ2dpbmdQYXN0ZWJvYXJkLCBzYW5kYm94RXh0ZW5zaW9uSGFu
ZGxlKTsKICAgICBpZiAoY3JlYXRlZEV4dGVuc2lvbikKLSAgICAgICAgbV9wYWdlLnByb2Nlc3Mo
KS53aWxsQWNxdWlyZVVuaXZlcnNhbEZpbGVSZWFkU2FuZGJveEV4dGVuc2lvbigpOworICAgICAg
ICBtX3BhZ2UtPnByb2Nlc3MoKS53aWxsQWNxdWlyZVVuaXZlcnNhbEZpbGVSZWFkU2FuZGJveEV4
dGVuc2lvbigpOwogCiAgICAgU2FuZGJveEV4dGVuc2lvbjo6SGFuZGxlQXJyYXkgc2FuZGJveEV4
dGVuc2lvbkZvclVwbG9hZDsKICAgICBjcmVhdGVTYW5kYm94RXh0ZW5zaW9uc0ZvckZpbGVVcGxv
YWQoZHJhZ2dpbmdJbmZvLmRyYWdnaW5nUGFzdGVib2FyZCwgc2FuZGJveEV4dGVuc2lvbkZvclVw
bG9hZCk7CiAKLSAgICBtX3BhZ2UucGVyZm9ybURyYWdPcGVyYXRpb24oZHJhZ0RhdGEsIGRyYWdn
aW5nSW5mby5kcmFnZ2luZ1Bhc3RlYm9hcmQubmFtZSwgc2FuZGJveEV4dGVuc2lvbkhhbmRsZSwg
c2FuZGJveEV4dGVuc2lvbkZvclVwbG9hZCk7CisgICAgbV9wYWdlLT5wZXJmb3JtRHJhZ09wZXJh
dGlvbihkcmFnRGF0YSwgZHJhZ2dpbmdJbmZvLmRyYWdnaW5nUGFzdGVib2FyZC5uYW1lLCBzYW5k
Ym94RXh0ZW5zaW9uSGFuZGxlLCBzYW5kYm94RXh0ZW5zaW9uRm9yVXBsb2FkKTsKIAogICAgIHJl
dHVybiB0cnVlOwogfQpAQCAtMjk1OSw3ICsyOTk1LDcgQEAgUmVmUHRyPFZpZXdTbmFwc2hvdD4g
V2ViVmlld0ltcGw6OnRha2VWaWV3U25hcHNob3QoKQogICAgICAgICB3aW5kb3dDYXB0dXJlUmVj
dCA9IGJvdW5kc0ZvckN1c3RvbVN3aXBlVmlld3M7CiAgICAgZWxzZSB7CiAgICAgICAgIE5TUmVj
dCB1bm9ic2N1cmVkQm91bmRzID0gbV92aWV3LmJvdW5kczsKLSAgICAgICAgZmxvYXQgdG9wQ29u
dGVudEluc2V0ID0gbV9wYWdlLnRvcENvbnRlbnRJbnNldCgpOworICAgICAgICBmbG9hdCB0b3BD
b250ZW50SW5zZXQgPSBtX3BhZ2UtPnRvcENvbnRlbnRJbnNldCgpOwogICAgICAgICB1bm9ic2N1
cmVkQm91bmRzLm9yaWdpbi55ICs9IHRvcENvbnRlbnRJbnNldDsKICAgICAgICAgdW5vYnNjdXJl
ZEJvdW5kcy5zaXplLmhlaWdodCAtPSB0b3BDb250ZW50SW5zZXQ7CiAgICAgICAgIHdpbmRvd0Nh
cHR1cmVSZWN0ID0gW21fdmlldyBjb252ZXJ0UmVjdDp1bm9ic2N1cmVkQm91bmRzIHRvVmlldzpu
aWxdOwpAQCAtMjk4NCwxMiArMzAyMCwxMiBAQCBSZWZQdHI8Vmlld1NuYXBzaG90PiBXZWJWaWV3
SW1wbDo6dGFrZVZpZXdTbmFwc2hvdCgpCiAKIHZvaWQgV2ViVmlld0ltcGw6OnNhdmVCYWNrRm9y
d2FyZFNuYXBzaG90Rm9yQ3VycmVudEl0ZW0oKQogewotICAgIG1fcGFnZS5yZWNvcmROYXZpZ2F0
aW9uU25hcHNob3QoKTsKKyAgICBtX3BhZ2UtPnJlY29yZE5hdmlnYXRpb25TbmFwc2hvdCgpOwog
fQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzYXZlQmFja0ZvcndhcmRTbmFwc2hvdEZvckl0ZW0oV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbSYgaXRlbSkKIHsKLSAgICBtX3BhZ2UucmVjb3JkTmF2aWdhdGlv
blNuYXBzaG90KGl0ZW0pOworICAgIG1fcGFnZS0+cmVjb3JkTmF2aWdhdGlvblNuYXBzaG90KGl0
ZW0pOwogfQogCiBWaWV3R2VzdHVyZUNvbnRyb2xsZXImIFdlYlZpZXdJbXBsOjplbnN1cmVHZXN0
dXJlQ29udHJvbGxlcigpCkBAIC0zMDAyLDggKzMwMzgsOCBAQCBWaWV3R2VzdHVyZUNvbnRyb2xs
ZXImIFdlYlZpZXdJbXBsOjplbnN1cmVHZXN0dXJlQ29udHJvbGxlcigpCiB2b2lkIFdlYlZpZXdJ
bXBsOjpzZXRBbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcyhib29sIGFsbG93c0Jh
Y2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzKQogewogICAgIG1fYWxsb3dzQmFja0ZvcndhcmRO
YXZpZ2F0aW9uR2VzdHVyZXMgPSBhbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlczsK
LSAgICBtX3BhZ2Uuc2V0U2hvdWxkUmVjb3JkTmF2aWdhdGlvblNuYXBzaG90cyhhbGxvd3NCYWNr
Rm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcyk7Ci0gICAgbV9wYWdlLnNldFNob3VsZFVzZUltcGxp
Y2l0UnViYmVyQmFuZENvbnRyb2woYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMp
OworICAgIG1fcGFnZS0+c2V0U2hvdWxkUmVjb3JkTmF2aWdhdGlvblNuYXBzaG90cyhhbGxvd3NC
YWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcyk7CisgICAgbV9wYWdlLT5zZXRTaG91bGRVc2VJ
bXBsaWNpdFJ1YmJlckJhbmRDb250cm9sKGFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1
cmVzKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0QWxsb3dzTWFnbmlmaWNhdGlvbihib29s
IGFsbG93c01hZ25pZmljYXRpb24pCkBAIC0zMDE4LDcgKzMwNTQsNyBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpzZXRNYWduaWZpY2F0aW9uKGRvdWJsZSBtYWduaWZpY2F0aW9uLCBDR1BvaW50IGNlbnRl
clBvaW50KQogCiAgICAgZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmlt
YXRpb24oZmFsc2UpOwogCi0gICAgbV9wYWdlLnNjYWxlUGFnZUluVmlld0Nvb3JkaW5hdGVzKG1h
Z25pZmljYXRpb24sIFdlYkNvcmU6OnJvdW5kZWRJbnRQb2ludChjZW50ZXJQb2ludCkpOworICAg
IG1fcGFnZS0+c2NhbGVQYWdlSW5WaWV3Q29vcmRpbmF0ZXMobWFnbmlmaWNhdGlvbiwgV2ViQ29y
ZTo6cm91bmRlZEludFBvaW50KGNlbnRlclBvaW50KSk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6
OnNldE1hZ25pZmljYXRpb24oZG91YmxlIG1hZ25pZmljYXRpb24pCkBAIC0zMDI5LDE0ICszMDY1
LDE0IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldE1hZ25pZmljYXRpb24oZG91YmxlIG1hZ25pZmlj
YXRpb24pCiAgICAgZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRp
b24oZmFsc2UpOwogCiAgICAgV2ViQ29yZTo6RmxvYXRQb2ludCB2aWV3Q2VudGVyKE5TTWlkWChb
bV92aWV3IGJvdW5kc10pLCBOU01pZFkoW21fdmlldyBib3VuZHNdKSk7Ci0gICAgbV9wYWdlLnNj
YWxlUGFnZUluVmlld0Nvb3JkaW5hdGVzKG1hZ25pZmljYXRpb24sIHJvdW5kZWRJbnRQb2ludCh2
aWV3Q2VudGVyKSk7CisgICAgbV9wYWdlLT5zY2FsZVBhZ2VJblZpZXdDb29yZGluYXRlcyhtYWdu
aWZpY2F0aW9uLCByb3VuZGVkSW50UG9pbnQodmlld0NlbnRlcikpOwogfQogCiBkb3VibGUgV2Vi
Vmlld0ltcGw6Om1hZ25pZmljYXRpb24oKSBjb25zdAogewogICAgIGlmIChtX2dlc3R1cmVDb250
cm9sbGVyKQogICAgICAgICByZXR1cm4gbV9nZXN0dXJlQ29udHJvbGxlci0+bWFnbmlmaWNhdGlv
bigpOwotICAgIHJldHVybiBtX3BhZ2UucGFnZVNjYWxlRmFjdG9yKCk7CisgICAgcmV0dXJuIG1f
cGFnZS0+cGFnZVNjYWxlRmFjdG9yKCk7CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldEN1c3Rv
bVN3aXBlVmlld3MoTlNBcnJheSAqY3VzdG9tU3dpcGVWaWV3cykKQEAgLTMwOTQsNyArMzEzMCw3
IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNjcm9sbFdoZWVsKE5TRXZlbnQgKmV2ZW50KQogICAgICAg
ICByZXR1cm47CiAKICAgICBOYXRpdmVXZWJXaGVlbEV2ZW50IHdlYkV2ZW50ID0gTmF0aXZlV2Vi
V2hlZWxFdmVudChldmVudCwgbV92aWV3KTsKLSAgICBtX3BhZ2UuaGFuZGxlV2hlZWxFdmVudCh3
ZWJFdmVudCk7CisgICAgbV9wYWdlLT5oYW5kbGVXaGVlbEV2ZW50KHdlYkV2ZW50KTsKIH0KIAog
dm9pZCBXZWJWaWV3SW1wbDo6c3dpcGVXaXRoRXZlbnQoTlNFdmVudCAqZXZlbnQpCkBAIC0zMTA4
LDkgKzMxNDQsOSBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzd2lwZVdpdGhFdmVudChOU0V2ZW50ICpl
dmVudCkKICAgICB9CiAKICAgICBpZiAoZXZlbnQuZGVsdGFYID4gMC4wKQotICAgICAgICBtX3Bh
Z2UuZ29CYWNrKCk7CisgICAgICAgIG1fcGFnZS0+Z29CYWNrKCk7CiAgICAgZWxzZSBpZiAoZXZl
bnQuZGVsdGFYIDwgMC4wKQotICAgICAgICBtX3BhZ2UuZ29Gb3J3YXJkKCk7CisgICAgICAgIG1f
cGFnZS0+Z29Gb3J3YXJkKCk7CiAgICAgZWxzZQogICAgICAgICBbbV92aWV3IF9zdXBlclN3aXBl
V2l0aEV2ZW50OmV2ZW50XTsKIH0KQEAgLTMxMjAsNyArMzE1Niw3IEBAIHZvaWQgV2ViVmlld0lt
cGw6Om1hZ25pZnlXaXRoRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgaWYgKCFtX2FsbG93c01h
Z25pZmljYXRpb24pIHsKICNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQogICAgICAgICBO
YXRpdmVXZWJHZXN0dXJlRXZlbnQgd2ViRXZlbnQgPSBOYXRpdmVXZWJHZXN0dXJlRXZlbnQoZXZl
bnQsIG1fdmlldyk7Ci0gICAgICAgIG1fcGFnZS5oYW5kbGVHZXN0dXJlRXZlbnQod2ViRXZlbnQp
OworICAgICAgICBtX3BhZ2UtPmhhbmRsZUdlc3R1cmVFdmVudCh3ZWJFdmVudCk7CiAjZW5kaWYK
ICAgICAgICAgW21fdmlldyBfc3VwZXJNYWduaWZ5V2l0aEV2ZW50OmV2ZW50XTsKICAgICAgICAg
cmV0dXJuOwpAQCAtMzEzNyw3ICszMTczLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6bWFnbmlmeVdp
dGhFdmVudChOU0V2ZW50ICpldmVudCkKICAgICB9CiAKICAgICBOYXRpdmVXZWJHZXN0dXJlRXZl
bnQgd2ViRXZlbnQgPSBOYXRpdmVXZWJHZXN0dXJlRXZlbnQoZXZlbnQsIG1fdmlldyk7Ci0gICAg
bV9wYWdlLmhhbmRsZUdlc3R1cmVFdmVudCh3ZWJFdmVudCk7CisgICAgbV9wYWdlLT5oYW5kbGVH
ZXN0dXJlRXZlbnQod2ViRXZlbnQpOwogI2Vsc2UKICAgICBnZXN0dXJlQ29udHJvbGxlci5oYW5k
bGVNYWduaWZpY2F0aW9uR2VzdHVyZUV2ZW50KGV2ZW50LCBbbV92aWV3IGNvbnZlcnRQb2ludDpl
dmVudC5sb2NhdGlvbkluV2luZG93IGZyb21WaWV3Om5pbF0pOwogI2VuZGlmCkBAIC0zMTY5LDcg
KzMyMDUsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRMYXN0TW91c2VEb3duRXZlbnQoTlNFdmVu
dCAqZXZlbnQpCiB2b2lkIFdlYlZpZXdJbXBsOjpyb3RhdGVXaXRoRXZlbnQoTlNFdmVudCAqZXZl
bnQpCiB7CiAgICAgTmF0aXZlV2ViR2VzdHVyZUV2ZW50IHdlYkV2ZW50ID0gTmF0aXZlV2ViR2Vz
dHVyZUV2ZW50KGV2ZW50LCBtX3ZpZXcpOwotICAgIG1fcGFnZS5oYW5kbGVHZXN0dXJlRXZlbnQo
d2ViRXZlbnQpOworICAgIG1fcGFnZS0+aGFuZGxlR2VzdHVyZUV2ZW50KHdlYkV2ZW50KTsKIH0K
ICNlbmRpZgogCkBAIC0zMzIwLDcgKzMzNTYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkb0NvbW1h
bmRCeVNlbGVjdG9yKFNFTCBzZWxlY3RvcikKICAgICAgICAgV2ViQ29yZTo6S2V5cHJlc3NDb21t
YW5kIGNvbW1hbmQoTlNTdHJpbmdGcm9tU2VsZWN0b3Ioc2VsZWN0b3IpKTsKICAgICAgICAga2V5
cHJlc3NDb21tYW5kcy0+YXBwZW5kKGNvbW1hbmQpOwogICAgICAgICBMT0coVGV4dElucHV0LCAi
Li4uc3RvcmVkIik7Ci0gICAgICAgIG1fcGFnZS5yZWdpc3RlcktleXByZXNzQ29tbWFuZE5hbWUo
Y29tbWFuZC5jb21tYW5kTmFtZSk7CisgICAgICAgIG1fcGFnZS0+cmVnaXN0ZXJLZXlwcmVzc0Nv
bW1hbmROYW1lKGNvbW1hbmQuY29tbWFuZE5hbWUpOwogICAgIH0gZWxzZSB7CiAgICAgICAgIC8v
IEZJWE1FOiBTZW5kIHRoZSBjb21tYW5kIHRvIEVkaXRvciBzeW5jaHJvbm91c2x5IGFuZCBvbmx5
IHNlbmQgaXQgYWxvbmcgdGhlCiAgICAgICAgIC8vIHJlc3BvbmRlciBjaGFpbiBpZiBpdCdzIGEg
c2VsZWN0b3IgdGhhdCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGFuIGVkaXRpbmcgY29tbWFuZC4K
QEAgLTMzNzMsMTYgKzM0MDksMTYgQEAgdm9pZCBXZWJWaWV3SW1wbDo6aW5zZXJ0VGV4dChpZCBz
dHJpbmcsIE5TUmFuZ2UgcmVwbGFjZW1lbnRSYW5nZSkKICAgICAgICAgV2ViQ29yZTo6S2V5cHJl
c3NDb21tYW5kIGNvbW1hbmQoImluc2VydFRleHQ6IiwgdGV4dCk7CiAgICAgICAgIGtleXByZXNz
Q29tbWFuZHMtPmFwcGVuZChjb21tYW5kKTsKICAgICAgICAgTE9HKFRleHRJbnB1dCwgIi4uLnN0
b3JlZCIpOwotICAgICAgICBtX3BhZ2UucmVnaXN0ZXJLZXlwcmVzc0NvbW1hbmROYW1lKGNvbW1h
bmQuY29tbWFuZE5hbWUpOworICAgICAgICBtX3BhZ2UtPnJlZ2lzdGVyS2V5cHJlc3NDb21tYW5k
TmFtZShjb21tYW5kLmNvbW1hbmROYW1lKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IFN0cmluZyBldmVudFRleHQgPSB0ZXh0OwogICAgIGV2ZW50VGV4dC5yZXBsYWNlKE5TQmFja1Rh
YkNoYXJhY3RlciwgTlNUYWJDaGFyYWN0ZXIpOyAvLyBzYW1lIHRoaW5nIGlzIGRvbmUgaW4gS2V5
RXZlbnRNYWMubW0gaW4gV2ViQ29yZQogICAgIGlmICghZGljdGF0aW9uQWx0ZXJuYXRpdmVzLmlz
RW1wdHkoKSkKLSAgICAgICAgbV9wYWdlLmluc2VydERpY3RhdGVkVGV4dEFzeW5jKGV2ZW50VGV4
dCwgcmVwbGFjZW1lbnRSYW5nZSwgZGljdGF0aW9uQWx0ZXJuYXRpdmVzLCByZWdpc3RlclVuZG9H
cm91cCk7CisgICAgICAgIG1fcGFnZS0+aW5zZXJ0RGljdGF0ZWRUZXh0QXN5bmMoZXZlbnRUZXh0
LCByZXBsYWNlbWVudFJhbmdlLCBkaWN0YXRpb25BbHRlcm5hdGl2ZXMsIHJlZ2lzdGVyVW5kb0dy
b3VwKTsKICAgICBlbHNlCi0gICAgICAgIG1fcGFnZS5pbnNlcnRUZXh0QXN5bmMoZXZlbnRUZXh0
LCByZXBsYWNlbWVudFJhbmdlLCByZWdpc3RlclVuZG9Hcm91cCk7CisgICAgICAgIG1fcGFnZS0+
aW5zZXJ0VGV4dEFzeW5jKGV2ZW50VGV4dCwgcmVwbGFjZW1lbnRSYW5nZSwgcmVnaXN0ZXJVbmRv
R3JvdXApOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZWxlY3RlZFJhbmdlV2l0aENvbXBsZXRp
b25IYW5kbGVyKHZvaWQoXmNvbXBsZXRpb25IYW5kbGVyUHRyKShOU1JhbmdlIHNlbGVjdGVkUmFu
Z2UpKQpAQCAtMzM5MCw3ICszNDI2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2VsZWN0ZWRSYW5n
ZVdpdGhDb21wbGV0aW9uSGFuZGxlcih2b2lkKF5jb21wbGV0aW9uSGFuZGxlclB0cikKICAgICBh
dXRvIGNvbXBsZXRpb25IYW5kbGVyID0gYWRvcHROUyhbY29tcGxldGlvbkhhbmRsZXJQdHIgY29w
eV0pOwogCiAgICAgTE9HKFRleHRJbnB1dCwgInNlbGVjdGVkUmFuZ2UiKTsKLSAgICBtX3BhZ2Uu
Z2V0U2VsZWN0ZWRSYW5nZUFzeW5jKFtjb21wbGV0aW9uSGFuZGxlcl0oY29uc3QgRWRpdGluZ1Jh
bmdlJiBlZGl0aW5nUmFuZ2VSZXN1bHQsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJv
cikgeworICAgIG1fcGFnZS0+Z2V0U2VsZWN0ZWRSYW5nZUFzeW5jKFtjb21wbGV0aW9uSGFuZGxl
cl0oY29uc3QgRWRpdGluZ1JhbmdlJiBlZGl0aW5nUmFuZ2VSZXN1bHQsIFdlYktpdDo6Q2FsbGJh
Y2tCYXNlOjpFcnJvciBlcnJvcikgewogICAgICAgICB2b2lkICheY29tcGxldGlvbkhhbmRsZXJC
bG9jaykoTlNSYW5nZSkgPSAodm9pZCAoXikoTlNSYW5nZSkpY29tcGxldGlvbkhhbmRsZXIuZ2V0
KCk7CiAgICAgICAgIGlmIChlcnJvciAhPSBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok5v
bmUpIHsKICAgICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLi4uc2VsZWN0ZWRSYW5nZSBm
YWlsZWQuIik7CkBAIC0zNDExLDcgKzM0NDcsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjptYXJrZWRS
YW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcih2b2lkKF5jb21wbGV0aW9uSGFuZGxlclB0cikoTgog
ICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBhZG9wdE5TKFtjb21wbGV0aW9uSGFuZGxlclB0
ciBjb3B5XSk7CiAKICAgICBMT0coVGV4dElucHV0LCAibWFya2VkUmFuZ2UiKTsKLSAgICBtX3Bh
Z2UuZ2V0TWFya2VkUmFuZ2VBc3luYyhbY29tcGxldGlvbkhhbmRsZXJdKGNvbnN0IEVkaXRpbmdS
YW5nZSYgZWRpdGluZ1JhbmdlUmVzdWx0LCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJy
b3IpIHsKKyAgICBtX3BhZ2UtPmdldE1hcmtlZFJhbmdlQXN5bmMoW2NvbXBsZXRpb25IYW5kbGVy
XShjb25zdCBFZGl0aW5nUmFuZ2UmIGVkaXRpbmdSYW5nZVJlc3VsdCwgV2ViS2l0OjpDYWxsYmFj
a0Jhc2U6OkVycm9yIGVycm9yKSB7CiAgICAgICAgIHZvaWQgKF5jb21wbGV0aW9uSGFuZGxlckJs
b2NrKShOU1JhbmdlKSA9ICh2b2lkICheKShOU1JhbmdlKSljb21wbGV0aW9uSGFuZGxlci5nZXQo
KTsKICAgICAgICAgaWYgKGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9u
ZSkgewogICAgICAgICAgICAgTE9HKFRleHRJbnB1dCwgIiAgICAuLi5tYXJrZWRSYW5nZSBmYWls
ZWQuIik7CkBAIC0zNDMyLDcgKzM0NjgsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpoYXNNYXJrZWRU
ZXh0V2l0aENvbXBsZXRpb25IYW5kbGVyKHZvaWQoXmNvbXBsZXRpb25IYW5kbGVyUHRyKQogICAg
IGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBhZG9wdE5TKFtjb21wbGV0aW9uSGFuZGxlclB0ciBj
b3B5XSk7CiAKICAgICBMT0coVGV4dElucHV0LCAiaGFzTWFya2VkVGV4dCIpOwotICAgIG1fcGFn
ZS5nZXRNYXJrZWRSYW5nZUFzeW5jKFtjb21wbGV0aW9uSGFuZGxlcl0oY29uc3QgRWRpdGluZ1Jh
bmdlJiBlZGl0aW5nUmFuZ2VSZXN1bHQsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJv
cikgeworICAgIG1fcGFnZS0+Z2V0TWFya2VkUmFuZ2VBc3luYyhbY29tcGxldGlvbkhhbmRsZXJd
KGNvbnN0IEVkaXRpbmdSYW5nZSYgZWRpdGluZ1JhbmdlUmVzdWx0LCBXZWJLaXQ6OkNhbGxiYWNr
QmFzZTo6RXJyb3IgZXJyb3IpIHsKICAgICAgICAgdm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyQmxv
Y2spKEJPT0wpID0gKHZvaWQgKF4pKEJPT0wpKWNvbXBsZXRpb25IYW5kbGVyLmdldCgpOwogICAg
ICAgICBpZiAoZXJyb3IgIT0gV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKSB7CiAg
ICAgICAgICAgICBMT0coVGV4dElucHV0LCAiICAgIC4uLmhhc01hcmtlZFRleHQgZmFpbGVkLiIp
OwpAQCAtMzQ1MCw3ICszNDg2LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YXR0cmlidXRlZFN1YnN0
cmluZ0ZvclByb3Bvc2VkUmFuZ2UoTlNSYW5nZSBwcm9wb3NlZFJhbmdlLCB2b2kKICAgICBhdXRv
IGNvbXBsZXRpb25IYW5kbGVyID0gYWRvcHROUyhbY29tcGxldGlvbkhhbmRsZXJQdHIgY29weV0p
OwogCiAgICAgTE9HKFRleHRJbnB1dCwgImF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9tUmFuZ2U6KCV1
LCAldSkiLCBwcm9wb3NlZFJhbmdlLmxvY2F0aW9uLCBwcm9wb3NlZFJhbmdlLmxlbmd0aCk7Ci0g
ICAgbV9wYWdlLmF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JDaGFyYWN0ZXJSYW5nZUFzeW5jKHByb3Bv
c2VkUmFuZ2UsIFtjb21wbGV0aW9uSGFuZGxlcl0oY29uc3QgQXR0cmlidXRlZFN0cmluZyYgc3Ry
aW5nLCBjb25zdCBFZGl0aW5nUmFuZ2UmIGFjdHVhbFJhbmdlLCBXZWJLaXQ6OkNhbGxiYWNrQmFz
ZTo6RXJyb3IgZXJyb3IpIHsKKyAgICBtX3BhZ2UtPmF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JDaGFy
YWN0ZXJSYW5nZUFzeW5jKHByb3Bvc2VkUmFuZ2UsIFtjb21wbGV0aW9uSGFuZGxlcl0oY29uc3Qg
QXR0cmlidXRlZFN0cmluZyYgc3RyaW5nLCBjb25zdCBFZGl0aW5nUmFuZ2UmIGFjdHVhbFJhbmdl
LCBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKICAgICAgICAgdm9pZCAoXmNv
bXBsZXRpb25IYW5kbGVyQmxvY2spKE5TQXR0cmlidXRlZFN0cmluZyAqLCBOU1JhbmdlKSA9ICh2
b2lkICheKShOU0F0dHJpYnV0ZWRTdHJpbmcgKiwgTlNSYW5nZSkpY29tcGxldGlvbkhhbmRsZXIu
Z2V0KCk7CiAgICAgICAgIGlmIChlcnJvciAhPSBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6
Ok5vbmUpIHsKICAgICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLi4uYXR0cmlidXRlZFN1
YnN0cmluZ0Zyb21SYW5nZSBmYWlsZWQuIik7CkBAIC0zNDgxLDcgKzM1MTcsNyBAQCB2b2lkIFdl
YlZpZXdJbXBsOjpmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZShOU1JhbmdlIHJhbmdlLCB2b2lk
KF5jb21wbGV0aW9uSGFuZAogICAgIH0KIAogICAgIGF1dG8gd2Vha1RoaXMgPSBjcmVhdGVXZWFr
UHRyKCk7Ci0gICAgbV9wYWdlLmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlQXN5bmMocmFuZ2Us
IFt3ZWFrVGhpcywgY29tcGxldGlvbkhhbmRsZXJdKGNvbnN0IFdlYkNvcmU6OkludFJlY3QmIHJl
Y3QsIGNvbnN0IEVkaXRpbmdSYW5nZSYgYWN0dWFsUmFuZ2UsIFdlYktpdDo6Q2FsbGJhY2tCYXNl
OjpFcnJvciBlcnJvcikgeworICAgIG1fcGFnZS0+Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2VB
c3luYyhyYW5nZSwgW3dlYWtUaGlzLCBjb21wbGV0aW9uSGFuZGxlcl0oY29uc3QgV2ViQ29yZTo6
SW50UmVjdCYgcmVjdCwgY29uc3QgRWRpdGluZ1JhbmdlJiBhY3R1YWxSYW5nZSwgV2ViS2l0OjpD
YWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCiAgICAg
ICAgICAgICByZXR1cm47CiAKQEAgLTM1MTUsNyArMzU1MSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6
OmNoYXJhY3RlckluZGV4Rm9yUG9pbnQoTlNQb2ludCBwb2ludCwgdm9pZCheY29tcGxldGlvbkhh
bmRsZXJQCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgcG9pbnQgPSBbbV92aWV3
IGNvbnZlcnRQb2ludDpwb2ludCBmcm9tVmlldzpuaWxdOyAgLy8gdGhlIHBvaW50IGlzIHJlbGF0
aXZlIHRvIHRoZSBtYWluIGZyYW1lCiAKLSAgICBtX3BhZ2UuY2hhcmFjdGVySW5kZXhGb3JQb2lu
dEFzeW5jKFdlYkNvcmU6OkludFBvaW50KHBvaW50KSwgW2NvbXBsZXRpb25IYW5kbGVyXSh1aW50
NjRfdCByZXN1bHQsIFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgIG1f
cGFnZS0+Y2hhcmFjdGVySW5kZXhGb3JQb2ludEFzeW5jKFdlYkNvcmU6OkludFBvaW50KHBvaW50
KSwgW2NvbXBsZXRpb25IYW5kbGVyXSh1aW50NjRfdCByZXN1bHQsIFdlYktpdDo6Q2FsbGJhY2tC
YXNlOjpFcnJvciBlcnJvcikgewogICAgICAgICB2b2lkICheY29tcGxldGlvbkhhbmRsZXJCbG9j
aykoTlNVSW50ZWdlcikgPSAodm9pZCAoXikoTlNVSW50ZWdlcikpY29tcGxldGlvbkhhbmRsZXIu
Z2V0KCk7CiAgICAgICAgIGlmIChlcnJvciAhPSBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6
Ok5vbmUpIHsKICAgICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIgICAgLi4uY2hhcmFjdGVySW5k
ZXhGb3JQb2ludCBmYWlsZWQuIik7CkBAIC0zNTM3LDcgKzM1NzMsNyBAQCBOU1RleHRJbnB1dENv
bnRleHQgKldlYlZpZXdJbXBsOjppbnB1dENvbnRleHQoKQogICAgIH0KIAogICAgIC8vIERpc2Fi
bGUgdGV4dCBpbnB1dCBtYWNoaW5lcnkgd2hlbiBpbiBub24tZWRpdGFibGUgY29udGVudC4gQW4g
aW52aXNpYmxlIGlubGluZSBpbnB1dCBhcmVhIGFmZmVjdHMgcGVyZm9ybWFuY2UsIGFuZCBjYW4g
cHJldmVudCBFeHBvc2UgZnJvbSB3b3JraW5nLgotICAgIGlmICghbV9wYWdlLmVkaXRvclN0YXRl
KCkuaXNDb250ZW50RWRpdGFibGUpCisgICAgaWYgKCFtX3BhZ2UtPmVkaXRvclN0YXRlKCkuaXND
b250ZW50RWRpdGFibGUpCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICByZXR1cm4gW21fdmll
dyBfc3VwZXJJbnB1dENvbnRleHRdOwpAQCAtMzU0Nyw3ICszNTgzLDcgQEAgdm9pZCBXZWJWaWV3
SW1wbDo6dW5tYXJrVGV4dCgpCiB7CiAgICAgTE9HKFRleHRJbnB1dCwgInVubWFya1RleHQiKTsK
IAotICAgIG1fcGFnZS5jb25maXJtQ29tcG9zaXRpb25Bc3luYygpOworICAgIG1fcGFnZS0+Y29u
ZmlybUNvbXBvc2l0aW9uQXN5bmMoKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6c2V0TWFya2Vk
VGV4dChpZCBzdHJpbmcsIE5TUmFuZ2Ugc2VsZWN0ZWRSYW5nZSwgTlNSYW5nZSByZXBsYWNlbWVu
dFJhbmdlKQpAQCAtMzU3MCwxNyArMzYwNiwxNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRNYXJr
ZWRUZXh0KGlkIHN0cmluZywgTlNSYW5nZSBzZWxlY3RlZFJhbmdlLCBOU1JhbmdlIHJlcGxhYwog
ICAgIGlmIChpblNlY3VyZUlucHV0U3RhdGUoKSkgewogICAgICAgICAvLyBJbiBwYXNzd29yZCBm
aWVsZHMsIHdlIG9ubHkgYWxsb3cgQVNDSUkgZGVhZCBrZXlzLCBhbmQgZG9uJ3QgYWxsb3cgaW5s
aW5lIGlucHV0LCBtYXRjaGluZyBOU1NlY3VyZVRleHRJbnB1dEZpZWxkLgogICAgICAgICAvLyBB
bGxvd2luZyBBU0NJSSBkZWFkIGtleXMgaXMgbmVjZXNzYXJ5IHRvIGVuYWJsZSBmdWxsIFJvbWFu
IGlucHV0IHdoZW4gdXNpbmcgYSBWaWV0bmFtZXNlIGtleWJvYXJkLgotICAgICAgICBBU1NFUlQo
IW1fcGFnZS5lZGl0b3JTdGF0ZSgpLmhhc0NvbXBvc2l0aW9uKTsKKyAgICAgICAgQVNTRVJUKCFt
X3BhZ2UtPmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb24pOwogICAgICAgICBub3RpZnlJbnB1
dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uKCk7CiAgICAgICAgIC8vIEZJWE1FOiBX
ZSBzaG91bGQgc3RvcmUgdGhlIGNvbW1hbmQgdG8gaGFuZGxlIGl0IGFmdGVyIERPTSBldmVudCBw
cm9jZXNzaW5nLCBhcyBpdCdzIHJlZ3VsYXIga2V5Ym9hcmQgaW5wdXQgbm93LCBub3QgYSBjb21w
b3NpdGlvbi4KICAgICAgICAgaWYgKFt0ZXh0IGxlbmd0aF0gPT0gMSAmJiBpc0FTQ0lJKFt0ZXh0
IGNoYXJhY3RlckF0SW5kZXg6MF0pKQotICAgICAgICAgICAgbV9wYWdlLmluc2VydFRleHRBc3lu
Yyh0ZXh0LCByZXBsYWNlbWVudFJhbmdlKTsKKyAgICAgICAgICAgIG1fcGFnZS0+aW5zZXJ0VGV4
dEFzeW5jKHRleHQsIHJlcGxhY2VtZW50UmFuZ2UpOwogICAgICAgICBlbHNlCiAgICAgICAgICAg
ICBOU0JlZXAoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fcGFnZS5zZXRDb21w
b3NpdGlvbkFzeW5jKHRleHQsIHVuZGVybGluZXMsIHNlbGVjdGVkUmFuZ2UsIHJlcGxhY2VtZW50
UmFuZ2UpOworICAgIG1fcGFnZS0+c2V0Q29tcG9zaXRpb25Bc3luYyh0ZXh0LCB1bmRlcmxpbmVz
LCBzZWxlY3RlZFJhbmdlLCByZXBsYWNlbWVudFJhbmdlKTsKIH0KIAogLy8gU3luY2hyb25vdXMg
TlNUZXh0SW5wdXRDbGllbnQgaXMgc3RpbGwgaW1wbGVtZW50ZWQgdG8gY2F0Y2ggc3B1cmlvdXMg
c3luYyBjYWxscy4gUmVtb3ZlIHdoZW4gdGhhdCBpcyBubyBsb25nZXIgbmVlZGVkLgpAQCAtMzY1
Myw3ICszNjg5LDcgQEAgYm9vbCBXZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVxdWl2YWxlbnQoTlNF
dmVudCAqZXZlbnQpCiAgICAgLy8gRklYTUU6IFdoeSBpcyB0aGUgZmlyc3RSZXNwb25kZXIgY2hl
Y2sgbmVlZGVkPwogICAgIGlmIChtX3ZpZXcgPT0gbV92aWV3LndpbmRvdy5maXJzdFJlc3BvbmRl
cikgewogICAgICAgICBpbnRlcnByZXRLZXlFdmVudChldmVudCwgXihCT09MIGhhbmRsZWRCeUlu
cHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21tYW5kPiYgY29tbWFu
ZHMpIHsKLSAgICAgICAgICAgIG1fcGFnZS5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktl
eWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykpOworICAg
ICAgICAgICAgbV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZl
bnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21tYW5kcykpOwogICAgICAgICB9KTsK
ICAgICAgICAgcmV0dXJuIFlFUzsKICAgICB9CkBAIC0zNjcwLDcgKzM3MDYsNyBAQCB2b2lkIFdl
YlZpZXdJbXBsOjprZXlVcChOU0V2ZW50ICpldmVudCkKIAogICAgIGludGVycHJldEtleUV2ZW50
KGV2ZW50LCBeKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbnN0IFZlY3RvcjxXZWJDb3Jl
OjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykgewogICAgICAgICBBU1NFUlQoIWhhbmRsZWRC
eUlucHV0TWV0aG9kIHx8IGNvbW1hbmRzLmlzRW1wdHkoKSk7Ci0gICAgICAgIG1fcGFnZS5oYW5k
bGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlu
cHV0TWV0aG9kLCBjb21tYW5kcykpOworICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZl
bnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNv
bW1hbmRzKSk7CiAgICAgfSk7CiB9CiAKQEAgLTM2OTcsNyArMzczMyw3IEBAIHZvaWQgV2ViVmll
d0ltcGw6OmtleURvd24oTlNFdmVudCAqZXZlbnQpCiAKICAgICBpbnRlcnByZXRLZXlFdmVudChl
dmVudCwgXihCT09MIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb25zdCBWZWN0b3I8V2ViQ29yZTo6
S2V5cHJlc3NDb21tYW5kPiYgY29tbWFuZHMpIHsKICAgICAgICAgQVNTRVJUKCFoYW5kbGVkQnlJ
bnB1dE1ldGhvZCB8fCBjb21tYW5kcy5pc0VtcHR5KCkpOwotICAgICAgICBtX3BhZ2UuaGFuZGxl
S2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1
dE1ldGhvZCwgY29tbWFuZHMpKTsKKyAgICAgICAgbV9wYWdlLT5oYW5kbGVLZXlib2FyZEV2ZW50
KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBjb21t
YW5kcykpOwogICAgIH0pOwogfQogCkBAIC0zNzEzLDcgKzM3NDksNyBAQCB2b2lkIFdlYlZpZXdJ
bXBsOjpmbGFnc0NoYW5nZWQoTlNFdmVudCAqZXZlbnQpCiAgICAgICAgIHJldHVybjsKIAogICAg
IGludGVycHJldEtleUV2ZW50KGV2ZW50LCBeKEJPT0wgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNv
bnN0IFZlY3RvcjxXZWJDb3JlOjpLZXlwcmVzc0NvbW1hbmQ+JiBjb21tYW5kcykgewotICAgICAg
ICBtX3BhZ2UuaGFuZGxlS2V5Ym9hcmRFdmVudChOYXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50
LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFuZHMpKTsKKyAgICAgICAgbV9wYWdlLT5oYW5k
bGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlu
cHV0TWV0aG9kLCBjb21tYW5kcykpOwogICAgIH0pOwogfQogCkBAIC0zNzY5LDcgKzM4MDUsNyBA
QCB2b2lkIFdlYlZpZXdJbXBsOjpleGVjdXRlU2F2ZWRLZXlwcmVzc0NvbW1hbmRzKCkKICAgICBM
T0coVGV4dElucHV0LCAiRXhlY3V0aW5nICV1IHNhdmVkIGtleXByZXNzIGNvbW1hbmRzLi4uIiwg
cGFyYW1ldGVycy0+Y29tbWFuZHMtPnNpemUoKSk7CiAKICAgICBwYXJhbWV0ZXJzLT5leGVjdXRp
bmdTYXZlZEtleXByZXNzQ29tbWFuZHMgPSB0cnVlOwotICAgIHBhcmFtZXRlcnMtPmV2ZW50SW50
ZXJwcmV0YXRpb25IYWRTaWRlRWZmZWN0cyB8PSBtX3BhZ2UuZXhlY3V0ZUtleXByZXNzQ29tbWFu
ZHMoKnBhcmFtZXRlcnMtPmNvbW1hbmRzKTsKKyAgICBwYXJhbWV0ZXJzLT5ldmVudEludGVycHJl
dGF0aW9uSGFkU2lkZUVmZmVjdHMgfD0gbV9wYWdlLT5leGVjdXRlS2V5cHJlc3NDb21tYW5kcygq
cGFyYW1ldGVycy0+Y29tbWFuZHMpOwogICAgIHBhcmFtZXRlcnMtPmNvbW1hbmRzLT5jbGVhcigp
OwogICAgIHBhcmFtZXRlcnMtPmV4ZWN1dGluZ1NhdmVkS2V5cHJlc3NDb21tYW5kcyA9IGZhbHNl
OwogCkBAIC0zNzg1LDEzICszODIxLDEzIEBAIHZvaWQgV2ViVmlld0ltcGw6OmRvQ29tbWFuZEJ5
U2VsZWN0b3IoU0VMIHNlbGVjdG9yKQogICAgICAgICBwYXJhbWV0ZXJzLT5jb25zdW1lZEJ5SU0g
PSBmYWxzZTsKIAogICAgIC8vIEFzIGluIGluc2VydFRleHQ6cmVwbGFjZW1lbnRSYW5nZTosIHdl
IGFzc3VtZSB0aGF0IHRoZSBjYWxsIGNvbWVzIGZyb20gYW4gaW5wdXQgbWV0aG9kIGlmIHRoZXJl
IGlzIG1hcmtlZCB0ZXh0LgotICAgIGJvb2wgaXNGcm9tSW5wdXRNZXRob2QgPSBtX3BhZ2UuZWRp
dG9yU3RhdGUoKS5oYXNDb21wb3NpdGlvbjsKKyAgICBib29sIGlzRnJvbUlucHV0TWV0aG9kID0g
bV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmhhc0NvbXBvc2l0aW9uOwogCiAgICAgaWYgKHBhcmFtZXRl
cnMgJiYgIWlzRnJvbUlucHV0TWV0aG9kKSB7CiAgICAgICAgIFdlYkNvcmU6OktleXByZXNzQ29t
bWFuZCBjb21tYW5kKE5TU3RyaW5nRnJvbVNlbGVjdG9yKHNlbGVjdG9yKSk7CiAgICAgICAgIHBh
cmFtZXRlcnMtPmNvbW1hbmRzLT5hcHBlbmQoY29tbWFuZCk7CiAgICAgICAgIExPRyhUZXh0SW5w
dXQsICIuLi5zdG9yZWQiKTsKLSAgICAgICAgbV9wYWdlLnJlZ2lzdGVyS2V5cHJlc3NDb21tYW5k
TmFtZShjb21tYW5kLmNvbW1hbmROYW1lKTsKKyAgICAgICAgbV9wYWdlLT5yZWdpc3RlcktleXBy
ZXNzQ29tbWFuZE5hbWUoY29tbWFuZC5jb21tYW5kTmFtZSk7CiAgICAgfSBlbHNlIHsKICAgICAg
ICAgLy8gRklYTUU6IFNlbmQgdGhlIGNvbW1hbmQgdG8gRWRpdG9yIHN5bmNocm9ub3VzbHkgYW5k
IG9ubHkgc2VuZCBpdCBhbG9uZyB0aGUKICAgICAgICAgLy8gcmVzcG9uZGVyIGNoYWluIGlmIGl0
J3MgYSBzZWxlY3RvciB0aGF0IGRvZXMgbm90IGNvcnJlc3BvbmQgdG8gYW4gZWRpdGluZyBjb21t
YW5kLgpAQCAtMzgyMSw3ICszODU3LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6aW5zZXJ0VGV4dChp
ZCBzdHJpbmcsIE5TUmFuZ2UgcmVwbGFjZW1lbnRSYW5nZSkKICAgICAgICAgcGFyYW1ldGVycy0+
Y29uc3VtZWRCeUlNID0gZmFsc2U7CiAKICAgICBOU1N0cmluZyAqdGV4dDsKLSAgICBib29sIGlz
RnJvbUlucHV0TWV0aG9kID0gbV9wYWdlLmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb247Cisg
ICAgYm9vbCBpc0Zyb21JbnB1dE1ldGhvZCA9IG1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5oYXNDb21w
b3NpdGlvbjsKIAogICAgIFZlY3RvcjxXZWJDb3JlOjpUZXh0QWx0ZXJuYXRpdmVXaXRoUmFuZ2U+
IGRpY3RhdGlvbkFsdGVybmF0aXZlczsKIApAQCAtMzg0NSw3ICszODgxLDcgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6aW5zZXJ0VGV4dChpZCBzdHJpbmcsIE5TUmFuZ2UgcmVwbGFjZW1lbnRSYW5nZSkK
ICAgICAgICAgQVNTRVJUKHJlcGxhY2VtZW50UmFuZ2UubG9jYXRpb24gPT0gTlNOb3RGb3VuZCk7
CiAgICAgICAgIFdlYkNvcmU6OktleXByZXNzQ29tbWFuZCBjb21tYW5kKCJpbnNlcnRUZXh0OiIs
IHRleHQpOwogICAgICAgICBwYXJhbWV0ZXJzLT5jb21tYW5kcy0+YXBwZW5kKGNvbW1hbmQpOwot
ICAgICAgICBtX3BhZ2UucmVnaXN0ZXJLZXlwcmVzc0NvbW1hbmROYW1lKGNvbW1hbmQuY29tbWFu
ZE5hbWUpOworICAgICAgICBtX3BhZ2UtPnJlZ2lzdGVyS2V5cHJlc3NDb21tYW5kTmFtZShjb21t
YW5kLmNvbW1hbmROYW1lKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzg1Myw5ICsz
ODg5LDkgQEAgdm9pZCBXZWJWaWV3SW1wbDo6aW5zZXJ0VGV4dChpZCBzdHJpbmcsIE5TUmFuZ2Ug
cmVwbGFjZW1lbnRSYW5nZSkKICAgICBldmVudFRleHQucmVwbGFjZShOU0JhY2tUYWJDaGFyYWN0
ZXIsIE5TVGFiQ2hhcmFjdGVyKTsgLy8gc2FtZSB0aGluZyBpcyBkb25lIGluIEtleUV2ZW50TWFj
Lm1tIGluIFdlYkNvcmUKICAgICBib29sIGV2ZW50SGFuZGxlZDsKICAgICBpZiAoIWRpY3RhdGlv
bkFsdGVybmF0aXZlcy5pc0VtcHR5KCkpCi0gICAgICAgIGV2ZW50SGFuZGxlZCA9IG1fcGFnZS5p
bnNlcnREaWN0YXRlZFRleHQoZXZlbnRUZXh0LCByZXBsYWNlbWVudFJhbmdlLCBkaWN0YXRpb25B
bHRlcm5hdGl2ZXMpOworICAgICAgICBldmVudEhhbmRsZWQgPSBtX3BhZ2UtPmluc2VydERpY3Rh
dGVkVGV4dChldmVudFRleHQsIHJlcGxhY2VtZW50UmFuZ2UsIGRpY3RhdGlvbkFsdGVybmF0aXZl
cyk7CiAgICAgZWxzZQotICAgICAgICBldmVudEhhbmRsZWQgPSBtX3BhZ2UuaW5zZXJ0VGV4dChl
dmVudFRleHQsIHJlcGxhY2VtZW50UmFuZ2UpOworICAgICAgICBldmVudEhhbmRsZWQgPSBtX3Bh
Z2UtPmluc2VydFRleHQoZXZlbnRUZXh0LCByZXBsYWNlbWVudFJhbmdlKTsKIAogICAgIGlmIChw
YXJhbWV0ZXJzKQogICAgICAgICBwYXJhbWV0ZXJzLT5ldmVudEludGVycHJldGF0aW9uSGFkU2lk
ZUVmZmVjdHMgfD0gZXZlbnRIYW5kbGVkOwpAQCAtMzg2OSw3ICszOTA1LDcgQEAgTlNUZXh0SW5w
dXRDb250ZXh0ICpXZWJWaWV3SW1wbDo6aW5wdXRDb250ZXh0KCkKICAgICAgICAgcmV0dXJuIFtb
V0tUZXh0SW5wdXRXaW5kb3dDb250cm9sbGVyIHNoYXJlZFRleHRJbnB1dFdpbmRvd0NvbnRyb2xs
ZXJdIGlucHV0Q29udGV4dF07CiAKICAgICAvLyBEaXNhYmxlIHRleHQgaW5wdXQgbWFjaGluZXJ5
IHdoZW4gaW4gbm9uLWVkaXRhYmxlIGNvbnRlbnQuIEFuIGludmlzaWJsZSBpbmxpbmUgaW5wdXQg
YXJlYSBhZmZlY3RzIHBlcmZvcm1hbmNlLCBhbmQgY2FuIHByZXZlbnQgRXhwb3NlIGZyb20gd29y
a2luZy4KLSAgICBpZiAoIW1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlKQor
ICAgIGlmICghbV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRhYmxlKQogICAgICAg
ICByZXR1cm4gbmlsOwogCiAgICAgcmV0dXJuIFttX3ZpZXcgX3N1cGVySW5wdXRDb250ZXh0XTsK
QEAgLTM4ODAsNyArMzkxNiw3IEBAIE5TUmFuZ2UgV2ViVmlld0ltcGw6OnNlbGVjdGVkUmFuZ2Uo
KQogICAgIGV4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHMoKTsKIAogICAgIEVkaXRpbmdSYW5n
ZSBzZWxlY3RlZFJhbmdlOwotICAgIG1fcGFnZS5nZXRTZWxlY3RlZFJhbmdlKHNlbGVjdGVkUmFu
Z2UpOworICAgIG1fcGFnZS0+Z2V0U2VsZWN0ZWRSYW5nZShzZWxlY3RlZFJhbmdlKTsKIAogICAg
IE5TUmFuZ2UgcmVzdWx0ID0gc2VsZWN0ZWRSYW5nZTsKICAgICBpZiAocmVzdWx0LmxvY2F0aW9u
ID09IE5TTm90Rm91bmQpCkBAIC0zODk3LDE1ICszOTMzLDE1IEBAIGJvb2wgV2ViVmlld0ltcGw6
Omhhc01hcmtlZFRleHQoKQogCiAgICAgQk9PTCByZXN1bHQ7CiAgICAgaWYgKHBhcmFtZXRlcnMp
IHsKLSAgICAgICAgcmVzdWx0ID0gbV9wYWdlLmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb247
CisgICAgICAgIHJlc3VsdCA9IG1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5oYXNDb21wb3NpdGlvbjsK
ICAgICAgICAgaWYgKHJlc3VsdCkgewogICAgICAgICAgICAgLy8gQSBzYXZlZCBjb21tYW5kIGNh
biBjb25maXJtIGEgY29tcG9zaXRpb24sIGJ1dCBpdCBjYW5ub3Qgc3RhcnQgYSBuZXcgb25lLgog
ICAgICAgICAgICAgZXhlY3V0ZVNhdmVkS2V5cHJlc3NDb21tYW5kcygpOwotICAgICAgICAgICAg
cmVzdWx0ID0gbV9wYWdlLmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb247CisgICAgICAgICAg
ICByZXN1bHQgPSBtX3BhZ2UtPmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb247CiAgICAgICAg
IH0KICAgICB9IGVsc2UgewogICAgICAgICBFZGl0aW5nUmFuZ2UgbWFya2VkUmFuZ2U7Ci0gICAg
ICAgIG1fcGFnZS5nZXRNYXJrZWRSYW5nZShtYXJrZWRSYW5nZSk7CisgICAgICAgIG1fcGFnZS0+
Z2V0TWFya2VkUmFuZ2UobWFya2VkUmFuZ2UpOwogICAgICAgICByZXN1bHQgPSBtYXJrZWRSYW5n
ZS5sb2NhdGlvbiAhPSBub3RGb3VuZDsKICAgICB9CiAKQEAgLTM5MjYsNyArMzk2Miw3IEBAIHZv
aWQgV2ViVmlld0ltcGw6OnVubWFya1RleHQoKQogICAgICAgICBwYXJhbWV0ZXJzLT5jb25zdW1l
ZEJ5SU0gPSBmYWxzZTsKICAgICB9CiAKLSAgICBtX3BhZ2UuY29uZmlybUNvbXBvc2l0aW9uKCk7
CisgICAgbV9wYWdlLT5jb25maXJtQ29tcG9zaXRpb24oKTsKIH0KIAogdm9pZCBXZWJWaWV3SW1w
bDo6c2V0TWFya2VkVGV4dChpZCBzdHJpbmcsIE5TUmFuZ2UgbmV3U2VsZWN0ZWRSYW5nZSwgTlNS
YW5nZSByZXBsYWNlbWVudFJhbmdlKQpAQCAtMzk1NSwxOSArMzk5MSwxOSBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjpzZXRNYXJrZWRUZXh0KGlkIHN0cmluZywgTlNSYW5nZSBuZXdTZWxlY3RlZFJhbmdl
LCBOU1JhbmdlIHJlcAogICAgIH0gZWxzZQogICAgICAgICB0ZXh0ID0gc3RyaW5nOwogCi0gICAg
aWYgKG1fcGFnZS5lZGl0b3JTdGF0ZSgpLmlzSW5QYXNzd29yZEZpZWxkKSB7CisgICAgaWYgKG1f
cGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0luUGFzc3dvcmRGaWVsZCkgewogICAgICAgICAvLyBJbiBw
YXNzd29yZCBmaWVsZHMsIHdlIG9ubHkgYWxsb3cgQVNDSUkgZGVhZCBrZXlzLCBhbmQgZG9uJ3Qg
YWxsb3cgaW5saW5lIGlucHV0LCBtYXRjaGluZyBOU1NlY3VyZVRleHRJbnB1dEZpZWxkLgogICAg
ICAgICAvLyBBbGxvd2luZyBBU0NJSSBkZWFkIGtleXMgaXMgbmVjZXNzYXJ5IHRvIGVuYWJsZSBm
dWxsIFJvbWFuIGlucHV0IHdoZW4gdXNpbmcgYSBWaWV0bmFtZXNlIGtleWJvYXJkLgotICAgICAg
ICBBU1NFUlQoIW1fcGFnZS5lZGl0b3JTdGF0ZSgpLmhhc0NvbXBvc2l0aW9uKTsKKyAgICAgICAg
QVNTRVJUKCFtX3BhZ2UtPmVkaXRvclN0YXRlKCkuaGFzQ29tcG9zaXRpb24pOwogICAgICAgICBu
b3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uKCk7CiAgICAgICAgIGlm
IChbdGV4dCBsZW5ndGhdID09IDEgJiYgW1t0ZXh0IGRlY29tcG9zZWRTdHJpbmdXaXRoQ2Fub25p
Y2FsTWFwcGluZ10gY2hhcmFjdGVyQXRJbmRleDowXSA8IDB4ODApIHsKLSAgICAgICAgICAgIG1f
cGFnZS5pbnNlcnRUZXh0KHRleHQsIHJlcGxhY2VtZW50UmFuZ2UpOworICAgICAgICAgICAgbV9w
YWdlLT5pbnNlcnRUZXh0KHRleHQsIHJlcGxhY2VtZW50UmFuZ2UpOwogICAgICAgICB9IGVsc2UK
ICAgICAgICAgICAgIE5TQmVlcCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9w
YWdlLnNldENvbXBvc2l0aW9uKHRleHQsIHVuZGVybGluZXMsIG5ld1NlbGVjdGVkUmFuZ2UsIHJl
cGxhY2VtZW50UmFuZ2UpOworICAgIG1fcGFnZS0+c2V0Q29tcG9zaXRpb24odGV4dCwgdW5kZXJs
aW5lcywgbmV3U2VsZWN0ZWRSYW5nZSwgcmVwbGFjZW1lbnRSYW5nZSk7CiB9CiAKIE5TUmFuZ2Ug
V2ViVmlld0ltcGw6Om1hcmtlZFJhbmdlKCkKQEAgLTM5NzUsNyArNDAxMSw3IEBAIE5TUmFuZ2Ug
V2ViVmlld0ltcGw6Om1hcmtlZFJhbmdlKCkKICAgICBleGVjdXRlU2F2ZWRLZXlwcmVzc0NvbW1h
bmRzKCk7CiAKICAgICBFZGl0aW5nUmFuZ2UgbWFya2VkUmFuZ2U7Ci0gICAgbV9wYWdlLmdldE1h
cmtlZFJhbmdlKG1hcmtlZFJhbmdlKTsKKyAgICBtX3BhZ2UtPmdldE1hcmtlZFJhbmdlKG1hcmtl
ZFJhbmdlKTsKIAogICAgIE5TUmFuZ2UgcmVzdWx0ID0gbWFya2VkUmFuZ2U7CiAgICAgaWYgKHJl
c3VsdC5sb2NhdGlvbiA9PSBOU05vdEZvdW5kKQpAQCAtMzk5MCwxNiArNDAyNiwxNiBAQCBOU0F0
dHJpYnV0ZWRTdHJpbmcgKldlYlZpZXdJbXBsOjphdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9z
ZWRSYW5nZShOU1JhbmdlIHBybwogewogICAgIGV4ZWN1dGVTYXZlZEtleXByZXNzQ29tbWFuZHMo
KTsKIAotICAgIGlmICghbV9wYWdlLmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGUpIHsK
KyAgICBpZiAoIW1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZSkgewogICAg
ICAgICBMT0coVGV4dElucHV0LCAiYXR0cmlidXRlZFN1YnN0cmluZ0Zyb21SYW5nZTooJXUsICV1
KSAtPiBuaWwiLCBwcm9wb3NlZFJhbmdlLmxvY2F0aW9uLCBwcm9wb3NlZFJhbmdlLmxlbmd0aCk7
CiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgfQogCi0gICAgaWYgKG1fcGFnZS5lZGl0b3JTdGF0
ZSgpLmlzSW5QYXNzd29yZEZpZWxkKQorICAgIGlmIChtX3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNJ
blBhc3N3b3JkRmllbGQpCiAgICAgICAgIHJldHVybiBuaWw7CiAKICAgICBBdHRyaWJ1dGVkU3Ry
aW5nIHJlc3VsdDsKLSAgICBtX3BhZ2UuZ2V0QXR0cmlidXRlZFN1YnN0cmluZ0Zyb21SYW5nZShw
cm9wb3NlZFJhbmdlLCByZXN1bHQpOworICAgIG1fcGFnZS0+Z2V0QXR0cmlidXRlZFN1YnN0cmlu
Z0Zyb21SYW5nZShwcm9wb3NlZFJhbmdlLCByZXN1bHQpOwogCiAgICAgaWYgKGFjdHVhbFJhbmdl
KSB7CiAgICAgICAgICphY3R1YWxSYW5nZSA9IHByb3Bvc2VkUmFuZ2U7CkBAIC00MDIzLDcgKzQw
NTksNyBAQCBOU1VJbnRlZ2VyIFdlYlZpZXdJbXBsOjpjaGFyYWN0ZXJJbmRleEZvclBvaW50KE5T
UG9pbnQgcG9pbnQpCiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCiAgICAgcG9pbnQgPSBb
bV92aWV3IGNvbnZlcnRQb2ludDpwb2ludCBmcm9tVmlldzpuaWxdOyAgLy8gdGhlIHBvaW50IGlz
IHJlbGF0aXZlIHRvIHRoZSBtYWluIGZyYW1lCiAgICAgCi0gICAgdWludDY0X3QgcmVzdWx0ID0g
bV9wYWdlLmNoYXJhY3RlckluZGV4Rm9yUG9pbnQoV2ViQ29yZTo6SW50UG9pbnQocG9pbnQpKTsK
KyAgICB1aW50NjRfdCByZXN1bHQgPSBtX3BhZ2UtPmNoYXJhY3RlckluZGV4Rm9yUG9pbnQoV2Vi
Q29yZTo6SW50UG9pbnQocG9pbnQpKTsKICAgICBpZiAocmVzdWx0ID09IG5vdEZvdW5kKQogICAg
ICAgICByZXN1bHQgPSBOU05vdEZvdW5kOwogICAgIExPRyhUZXh0SW5wdXQsICJjaGFyYWN0ZXJJ
bmRleEZvclBvaW50OiglZiwgJWYpIC0+ICV1IiwgcG9pbnQueCwgcG9pbnQueSwgcmVzdWx0KTsK
QEAgLTQwNDcsNyArNDA4Myw3IEBAIE5TUmVjdCBXZWJWaWV3SW1wbDo6Zmlyc3RSZWN0Rm9yQ2hh
cmFjdGVyUmFuZ2UoTlNSYW5nZSByYW5nZSwgTlNSYW5nZVBvaW50ZXIgYWN0CiAgICAgICAgIHJl
dHVybiBOU1plcm9SZWN0OwogICAgIH0KIAotICAgIE5TUmVjdCByZXN1bHRSZWN0ID0gbV9wYWdl
LmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKHJhbmdlKTsKKyAgICBOU1JlY3QgcmVzdWx0UmVj
dCA9IG1fcGFnZS0+Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UocmFuZ2UpOwogICAgIHJlc3Vs
dFJlY3QgPSBbbV92aWV3IGNvbnZlcnRSZWN0OnJlc3VsdFJlY3QgdG9WaWV3Om5pbF07CiAgICAg
cmVzdWx0UmVjdCA9IFttX3ZpZXcud2luZG93IGNvbnZlcnRSZWN0VG9TY3JlZW46cmVzdWx0UmVj
dF07CiAKQEAgLTQwOTMsNyArNDEyOSw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OnBlcmZvcm1LZXlF
cXVpdmFsZW50KE5TRXZlbnQgKmV2ZW50KQogICAgIGlmIChtX3ZpZXcgPT0gbV92aWV3LndpbmRv
dy5maXJzdFJlc3BvbmRlcikgewogICAgICAgICBWZWN0b3I8V2ViQ29yZTo6S2V5cHJlc3NDb21t
YW5kPiBjb21tYW5kczsKICAgICAgICAgYm9vbCBoYW5kbGVkQnlJbnB1dE1ldGhvZCA9IGludGVy
cHJldEtleUV2ZW50KGV2ZW50LCBjb21tYW5kcyk7Ci0gICAgICAgIG1fcGFnZS5oYW5kbGVLZXli
b2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQsIGhhbmRsZWRCeUlucHV0TWV0
aG9kLCBjb21tYW5kcykpOworICAgICAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0
aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRz
KSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICAKQEAgLTQxMDcsNyArNDE0Myw3
IEBAIHZvaWQgV2ViVmlld0ltcGw6OmtleVVwKE5TRXZlbnQgKmV2ZW50KQogCiAgICAgTE9HKFRl
eHRJbnB1dCwgImtleVVwOiVwICVAIiwgZXZlbnQsIGV2ZW50KTsKICAgICAvLyBXZSBkb24ndCBp
bnRlcnByZXQgdGhlIGtleVVwIGV2ZW50LCBhcyB0aGlzIGJyZWFrcyBrZXkgYmluZGluZ3MgKHNl
ZSA8aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMDEwMD4pLgotICAg
IG1fcGFnZS5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJkRXZlbnQoZXZlbnQs
IGZhbHNlLCB7IH0pKTsKKyAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2Vi
S2V5Ym9hcmRFdmVudChldmVudCwgZmFsc2UsIHsgfSkpOwogfQogCiB2b2lkIFdlYlZpZXdJbXBs
OjprZXlEb3duKE5TRXZlbnQgKmV2ZW50KQpAQCAtNDE0NSw3ICs0MTgxLDcgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6a2V5RG93bihOU0V2ZW50ICpldmVudCkKICAgICAgICAgaGFuZGxlZEJ5SW5wdXRN
ZXRob2QgPSBmYWxzZTsKICAgICB9CiAKLSAgICBtX3BhZ2UuaGFuZGxlS2V5Ym9hcmRFdmVudChO
YXRpdmVXZWJLZXlib2FyZEV2ZW50KGV2ZW50LCBoYW5kbGVkQnlJbnB1dE1ldGhvZCwgY29tbWFu
ZHMpKTsKKyAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZlbnQoTmF0aXZlV2ViS2V5Ym9hcmRF
dmVudChldmVudCwgaGFuZGxlZEJ5SW5wdXRNZXRob2QsIGNvbW1hbmRzKSk7CiB9CiAKIHZvaWQg
V2ViVmlld0ltcGw6OmZsYWdzQ2hhbmdlZChOU0V2ZW50ICpldmVudCkKQEAgLTQxNjQsNyArNDIw
MCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmZsYWdzQ2hhbmdlZChOU0V2ZW50ICpldmVudCkKICAg
ICBpZiAoZXZlbnRLZXlDb2RlSXNaZXJvT3JOdW1Mb2NrT3JGbihldmVudCkpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIG1fcGFnZS5oYW5kbGVLZXlib2FyZEV2ZW50KE5hdGl2ZVdlYktleWJvYXJk
RXZlbnQoZXZlbnQsIGZhbHNlLCB7IH0pKTsKKyAgICBtX3BhZ2UtPmhhbmRsZUtleWJvYXJkRXZl
bnQoTmF0aXZlV2ViS2V5Ym9hcmRFdmVudChldmVudCwgZmFsc2UsIHsgfSkpOwogfQogCiAjZW5k
aWYgLy8gVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQpAQCAtNDE4NSwxMyArNDIyMSwxMyBA
QCB2b2lkIFdlYlZpZXdJbXBsOjpmbGFnc0NoYW5nZWQoTlNFdmVudCAqZXZlbnQpCiAgICAgICAg
ICAgICAgICAgICAgIExPRyhUZXh0SW5wdXQsICIlcyB3YXMgaGFuZGxlZCBieSB0ZXh0IGlucHV0
IGNvbnRleHQiLCBTdHJpbmcoI0V2ZW50TmFtZSkuc3Vic3RyaW5nKDAsIFN0cmluZygjRXZlbnRO
YW1lKS5maW5kKCJJbnRlcm5hbCIpKS5hc2NpaSgpLmRhdGEoKSk7IFwKICAgICAgICAgICAgICAg
ICBlbHNlIHsgXAogICAgICAgICAgICAgICAgICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2
ZW50KHJldGFpbmVkRXZlbnQuZ2V0KCksIHdlYWtUaGlzLT5tX2xhc3RQcmVzc3VyZUV2ZW50Lmdl
dCgpLCB3ZWFrVGhpcy0+bV92aWV3KTsgXAotICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+
bV9wYWdlLmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOyBcCisgICAgICAgICAgICAgICAgICAg
IHdlYWtUaGlzLT5tX3BhZ2UtPmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOyBcCiAgICAgICAg
ICAgICAgICAgfSBcCiAgICAgICAgICAgICB9XTsgXAogICAgICAgICAgICAgcmV0dXJuOyBcCiAg
ICAgICAgIH0gXAogICAgICAgICBOYXRpdmVXZWJNb3VzZUV2ZW50IHdlYkV2ZW50KGV2ZW50LCBt
X2xhc3RQcmVzc3VyZUV2ZW50LmdldCgpLCBtX3ZpZXcpOyBcCi0gICAgICAgIG1fcGFnZS5oYW5k
bGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsgXAorICAgICAgICBtX3BhZ2UtPmhhbmRsZU1vdXNlRXZl
bnQod2ViRXZlbnQpOyBcCiAgICAgfQogI2RlZmluZSBOQVRJVkVfTU9VU0VfRVZFTlRfSEFORExF
Ul9JTlRFUk5BTChFdmVudE5hbWUpIFwKICAgICB2b2lkIFdlYlZpZXdJbXBsOjpFdmVudE5hbWUo
TlNFdmVudCAqZXZlbnQpIFwKQEAgLTQyMDgsMTMgKzQyNDQsMTMgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6ZmxhZ3NDaGFuZ2VkKE5TRXZlbnQgKmV2ZW50KQogICAgICAgICAgICAgICAgICAgICBMT0co
VGV4dElucHV0LCAiJXMgd2FzIGhhbmRsZWQgYnkgdGV4dCBpbnB1dCBjb250ZXh0IiwgU3RyaW5n
KCNFdmVudE5hbWUpLnN1YnN0cmluZygwLCBTdHJpbmcoI0V2ZW50TmFtZSkuZmluZCgiSW50ZXJu
YWwiKSkuYXNjaWkoKS5kYXRhKCkpOyBcCiAgICAgICAgICAgICAgICAgZWxzZSB7IFwKICAgICAg
ICAgICAgICAgICAgICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudChyZXRhaW5lZEV2ZW50
LmdldCgpLCB3ZWFrVGhpcy0+bV9sYXN0UHJlc3N1cmVFdmVudC5nZXQoKSwgd2Vha1RoaXMtPm1f
dmlldyk7IFwKLSAgICAgICAgICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGFnZS5oYW5kbGVNb3Vz
ZUV2ZW50KHdlYkV2ZW50KTsgXAorICAgICAgICAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wYWdl
LT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsgXAogICAgICAgICAgICAgICAgIH0gXAogICAg
ICAgICAgICAgfV07IFwKICAgICAgICAgICAgIHJldHVybjsgXAogICAgICAgICB9IFwKICAgICAg
ICAgTmF0aXZlV2ViTW91c2VFdmVudCB3ZWJFdmVudChldmVudCwgbV9sYXN0UHJlc3N1cmVFdmVu
dC5nZXQoKSwgbV92aWV3KTsgXAotICAgICAgICBtX3BhZ2UuaGFuZGxlTW91c2VFdmVudCh3ZWJF
dmVudCk7IFwKKyAgICAgICAgbV9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsgXAog
ICAgIH0KICAgICAKICNlbHNlIC8vIFVTRShBU1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKQEAgLTQy
MjgsNyArNDI2NCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmZsYWdzQ2hhbmdlZChOU0V2ZW50ICpl
dmVudCkKICAgICAgICAgICAgIHJldHVybjsgXAogICAgICAgICB9IFwKICAgICAgICAgTmF0aXZl
V2ViTW91c2VFdmVudCB3ZWJFdmVudChldmVudCwgbV9sYXN0UHJlc3N1cmVFdmVudC5nZXQoKSwg
bV92aWV3KTsgXAotICAgICAgICBtX3BhZ2UuaGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7IFwK
KyAgICAgICAgbV9wYWdlLT5oYW5kbGVNb3VzZUV2ZW50KHdlYkV2ZW50KTsgXAogICAgIH0KICNk
ZWZpbmUgTkFUSVZFX01PVVNFX0VWRU5UX0hBTkRMRVJfSU5URVJOQUwoRXZlbnROYW1lKSBcCiAg
ICAgdm9pZCBXZWJWaWV3SW1wbDo6RXZlbnROYW1lKE5TRXZlbnQgKmV2ZW50KSBcCkBAIC00MjQw
LDcgKzQyNzYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpmbGFnc0NoYW5nZWQoTlNFdmVudCAqZXZl
bnQpCiAgICAgICAgICAgICByZXR1cm47IFwKICAgICAgICAgfSBcCiAgICAgICAgIE5hdGl2ZVdl
Yk1vdXNlRXZlbnQgd2ViRXZlbnQoZXZlbnQsIG1fbGFzdFByZXNzdXJlRXZlbnQuZ2V0KCksIG1f
dmlldyk7IFwKLSAgICAgICAgbV9wYWdlLmhhbmRsZU1vdXNlRXZlbnQod2ViRXZlbnQpOyBcCisg
ICAgICAgIG1fcGFnZS0+aGFuZGxlTW91c2VFdmVudCh3ZWJFdmVudCk7IFwKICAgICB9CiAjZW5k
aWYgLy8gVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmgKaW5kZXggY2ZiZGI0NC4uNWE5NDY4NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtOTg2LDEwICs5ODYsMTAgQEAgcHVibGljOgog
ICAgIHZvaWQgZGlkU2F2ZVRvUGFnZUNhY2hlKCk7CiAgICAgICAgIAogICAgIHZvaWQgc2V0U2Ny
b2xsUGlubmluZ0JlaGF2aW9yKFdlYkNvcmU6OlNjcm9sbFBpbm5pbmdCZWhhdmlvcik7Ci0gICAg
V2ViQ29yZTo6U2Nyb2xsUGlubmluZ0JlaGF2aW9yIHNjcm9sbFBpbm5pbmdCZWhhdmlvcigpIHsg
cmV0dXJuIG1fc2Nyb2xsUGlubmluZ0JlaGF2aW9yOyB9CisgICAgV2ViQ29yZTo6U2Nyb2xsUGlu
bmluZ0JlaGF2aW9yIHNjcm9sbFBpbm5pbmdCZWhhdmlvcigpIGNvbnN0IHsgcmV0dXJuIG1fc2Ny
b2xsUGlubmluZ0JlaGF2aW9yOyB9CiAKICAgICB2b2lkIHNldE92ZXJsYXlTY3JvbGxiYXJTdHls
ZShXVEY6Ok9wdGlvbmFsPFdlYkNvcmU6OlNjcm9sbGJhck92ZXJsYXlTdHlsZT4pOwotICAgIFdU
Rjo6T3B0aW9uYWw8V2ViQ29yZTo6U2Nyb2xsYmFyT3ZlcmxheVN0eWxlPiBvdmVybGF5U2Nyb2xs
YmFyU3R5bGUoKSB7IHJldHVybiBtX3Njcm9sbGJhck92ZXJsYXlTdHlsZTsgfQorICAgIFdURjo6
T3B0aW9uYWw8V2ViQ29yZTo6U2Nyb2xsYmFyT3ZlcmxheVN0eWxlPiBvdmVybGF5U2Nyb2xsYmFy
U3R5bGUoKSBjb25zdCB7IHJldHVybiBtX3Njcm9sbGJhck92ZXJsYXlTdHlsZTsgfQogCiAgICAg
Ym9vbCBzaG91bGRSZWNvcmROYXZpZ2F0aW9uU25hcHNob3RzKCkgY29uc3QgeyByZXR1cm4gbV9z
aG91bGRSZWNvcmROYXZpZ2F0aW9uU25hcHNob3RzOyB9CiAgICAgdm9pZCBzZXRTaG91bGRSZWNv
cmROYXZpZ2F0aW9uU25hcHNob3RzKGJvb2wgc2hvdWxkUmVjb3JkU25hcHNob3RzKSB7IG1fc2hv
dWxkUmVjb3JkTmF2aWdhdGlvblNuYXBzaG90cyA9IHNob3VsZFJlY29yZFNuYXBzaG90czsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggZDQ0ZGFj
MC4uYTI5YTUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCkBAIC04MzYsNyArODM2LDcgQEAgV2ViUHJvY2Vzc1Byb3h5JiBXZWJQcm9jZXNzUG9vbDo6
Y3JlYXRlTmV3V2ViUHJvY2Vzc1Jlc3BlY3RpbmdQcm9jZXNzQ291bnRMaW1pdCgKICAgICByZXR1
cm4gKnByb2Nlc3M7CiB9CiAKLVBhc3NSZWZQdHI8V2ViUGFnZVByb3h5PiBXZWJQcm9jZXNzUG9v
bDo6Y3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBSZWY8QVBJOjpQYWdlQ29u
ZmlndXJhdGlvbj4mJiBwYWdlQ29uZmlndXJhdGlvbikKK1JlZjxXZWJQYWdlUHJveHk+IFdlYlBy
b2Nlc3NQb29sOjpjcmVhdGVXZWJQYWdlKFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFJlZjxBUEk6
OlBhZ2VDb25maWd1cmF0aW9uPiYmIHBhZ2VDb25maWd1cmF0aW9uKQogewogICAgIGlmICghcGFn
ZUNvbmZpZ3VyYXRpb24tPnBhZ2VHcm91cCgpKQogICAgICAgICBwYWdlQ29uZmlndXJhdGlvbi0+
c2V0UGFnZUdyb3VwKG1fZGVmYXVsdFBhZ2VHcm91cC5wdHIoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDVmM2UyNjcuLmNmZjA2ZjEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0xNzEsNyArMTcxLDcgQEAg
cHVibGljOgogCiAgICAgQVBJOjpXZWJzaXRlRGF0YVN0b3JlKiB3ZWJzaXRlRGF0YVN0b3JlKCkg
Y29uc3QgeyByZXR1cm4gbV93ZWJzaXRlRGF0YVN0b3JlLmdldCgpOyB9CiAKLSAgICBQYXNzUmVm
UHRyPFdlYlBhZ2VQcm94eT4gY3JlYXRlV2ViUGFnZShQYWdlQ2xpZW50JiwgUmVmPEFQSTo6UGFn
ZUNvbmZpZ3VyYXRpb24+JiYpOworICAgIFJlZjxXZWJQYWdlUHJveHk+IGNyZWF0ZVdlYlBhZ2Uo
UGFnZUNsaWVudCYsIFJlZjxBUEk6OlBhZ2VDb25maWd1cmF0aW9uPiYmKTsKIAogICAgIGNvbnN0
IFN0cmluZyYgaW5qZWN0ZWRCdW5kbGVQYXRoKCkgY29uc3QgeyByZXR1cm4gbV9jb25maWd1cmF0
aW9uLT5pbmplY3RlZEJ1bmRsZVBhdGgoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvbWFjL1BhZ2VDbGllbnRJbXBsLmgKaW5kZXggZDE4NmExMi4uNGE5MWMwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwuaApAQCAtNTEsNyArNTEs
NyBAQCBjbGFzcyBQYWdlQ2xpZW50SW1wbCBmaW5hbCA6IHB1YmxpYyBQYWdlQ2xpZW50CiAjZW5k
aWYKICAgICB7CiBwdWJsaWM6Ci0gICAgUGFnZUNsaWVudEltcGwoV0tWaWV3ICosIFdLV2ViVmll
dyAqKTsKKyAgICBQYWdlQ2xpZW50SW1wbChOU1ZpZXcgKiwgV0tXZWJWaWV3ICopOwogICAgIHZp
cnR1YWwgflBhZ2VDbGllbnRJbXBsKCk7CiAKICAgICAvLyBGSVhNRTogRXZlbnR1YWxseSBXZWJW
aWV3SW1wbCBzaG91bGQgYmVjb21lIHRoZSBQYWdlQ2xpZW50LgpAQCAtMjI0LDcgKzIyNCw3IEBA
IHByaXZhdGU6CiAgICAgdmlydHVhbCBfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqcmVtb3RlT2Jq
ZWN0UmVnaXN0cnkoKSBvdmVycmlkZTsKICNlbmRpZgogCi0gICAgV0tWaWV3ICptX3drVmlldzsK
KyAgICBOU1ZpZXcgKm1fdmlldzsKICAgICBXS1dlYlZpZXcgKm1fd2ViVmlldzsKICAgICBXZWJW
aWV3SW1wbCogbV9pbXBsIHsgbnVsbHB0ciB9OwogI2lmIFVTRShBVVRPQ09SUkVDVElPTl9QQU5F
TCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudElt
cGwubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCmlu
ZGV4IGQ0ZjBhYjMuLjA1MTNjYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGwubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9QYWdlQ2xpZW50SW1wbC5tbQpAQCAtOTMsOCArOTMsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2Vi
S2l0OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUGFnZUNsaWVudEltcGw6OlBhZ2VDbGllbnRJ
bXBsKFdLVmlldyogd2tWaWV3LCBXS1dlYlZpZXcgKndlYlZpZXcpCi0gICAgOiBtX3drVmlldyh3
a1ZpZXcpCitQYWdlQ2xpZW50SW1wbDo6UGFnZUNsaWVudEltcGwoTlNWaWV3KiB2aWV3LCBXS1dl
YlZpZXcgKndlYlZpZXcpCisgICAgOiBtX3ZpZXcodmlldykKICAgICAsIG1fd2ViVmlldyh3ZWJW
aWV3KQogI2lmIFVTRShESUNUQVRJT05fQUxURVJOQVRJVkVTKQogICAgICwgbV9hbHRlcm5hdGl2
ZVRleHRVSUNvbnRyb2xsZXIoc3RkOjptYWtlX3VuaXF1ZTxBbHRlcm5hdGl2ZVRleHRVSUNvbnRy
b2xsZXI+KCkpCkBAIC0xNDEsMjcgKzE0MSwyNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpyZXF1
ZXN0U2Nyb2xsKGNvbnN0IEZsb2F0UG9pbnQmIHNjcm9sbFBvc2l0aW9uLCBjb25zdCBJbnRQbwog
CiBJbnRTaXplIFBhZ2VDbGllbnRJbXBsOjp2aWV3U2l6ZSgpCiB7Ci0gICAgcmV0dXJuIEludFNp
emUoW21fd2tWaWV3IGJvdW5kc10uc2l6ZSk7CisgICAgcmV0dXJuIEludFNpemUoW21fdmlldyBi
b3VuZHNdLnNpemUpOwogfQogCiBOU1ZpZXcgKlBhZ2VDbGllbnRJbXBsOjphY3RpdmVWaWV3KCkg
Y29uc3QKIHsKICNpZiBXS19BUElfRU5BQkxFRAotICAgIHJldHVybiBtX3drVmlldy5fdGh1bWJu
YWlsVmlldyA/IChOU1ZpZXcgKiltX3drVmlldy5fdGh1bWJuYWlsVmlldyA6IChOU1ZpZXcgKilt
X3drVmlldzsKKyAgICByZXR1cm4gKG1faW1wbCAmJiBtX2ltcGwtPnRodW1ibmFpbFZpZXcoKSkg
PyAoTlNWaWV3ICopbV9pbXBsLT50aHVtYm5haWxWaWV3KCkgOiBtX3ZpZXc7CiAjZWxzZQotICAg
IHJldHVybiBtX3drVmlldzsKKyAgICByZXR1cm4gbV92aWV3OwogI2VuZGlmCiB9CiAKIE5TV2lu
ZG93ICpQYWdlQ2xpZW50SW1wbDo6YWN0aXZlV2luZG93KCkgY29uc3QKIHsKICNpZiBXS19BUElf
RU5BQkxFRAotICAgIGlmIChtX3drVmlldy5fdGh1bWJuYWlsVmlldykKLSAgICAgICAgcmV0dXJu
IG1fd2tWaWV3Ll90aHVtYm5haWxWaWV3LndpbmRvdzsKKyAgICBpZiAobV9pbXBsICYmIG1faW1w
bC0+dGh1bWJuYWlsVmlldygpKQorICAgICAgICByZXR1cm4gbV9pbXBsLT50aHVtYm5haWxWaWV3
KCkud2luZG93OwogI2VuZGlmCiAgICAgaWYgKG1faW1wbCAmJiBtX2ltcGwtPnRhcmdldFdpbmRv
d0Zvck1vdmVQcmVwYXJhdGlvbigpKQogICAgICAgICByZXR1cm4gbV9pbXBsLT50YXJnZXRXaW5k
b3dGb3JNb3ZlUHJlcGFyYXRpb24oKTsKLSAgICByZXR1cm4gbV93a1ZpZXcud2luZG93OworICAg
IHJldHVybiBtX3ZpZXcud2luZG93OwogfQogCiBib29sIFBhZ2VDbGllbnRJbXBsOjppc1ZpZXdX
aW5kb3dBY3RpdmUoKQpAQCAtMTgyLDcgKzE4Miw3IEBAIGJvb2wgUGFnZUNsaWVudEltcGw6Omlz
Vmlld0ZvY3VzZWQoKQogCiB2b2lkIFBhZ2VDbGllbnRJbXBsOjptYWtlRmlyc3RSZXNwb25kZXIo
KQogewotICAgICBbW21fd2tWaWV3IHdpbmRvd10gbWFrZUZpcnN0UmVzcG9uZGVyOm1fd2tWaWV3
XTsKKyAgICAgW1ttX3ZpZXcgd2luZG93XSBtYWtlRmlyc3RSZXNwb25kZXI6bV92aWV3XTsKIH0K
ICAgICAKIGJvb2wgUGFnZUNsaWVudEltcGw6OmlzVmlld1Zpc2libGUoKQpAQCAtMjg3LDcgKzI4
Nyw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmhhbmRsZURvd25sb2FkUmVxdWVzdChEb3dubG9h
ZFByb3h5KiBkb3dubG9hZCkKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkQ2hhbmdlQ29udGVu
dFNpemUoY29uc3QgV2ViQ29yZTo6SW50U2l6ZSYgbmV3U2l6ZSkKIHsKLSAgICBbbV93a1ZpZXcg
X2RpZENoYW5nZUNvbnRlbnRTaXplOm5ld1NpemVdOworICAgIG1faW1wbC0+ZGlkQ2hhbmdlQ29u
dGVudFNpemUobmV3U2l6ZSk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnNldEN1cnNvcihj
b25zdCBXZWJDb3JlOjpDdXJzb3ImIGN1cnNvcikKQEAgLTI5NywxMCArMjk3LDEwIEBAIHZvaWQg
UGFnZUNsaWVudEltcGw6OnNldEN1cnNvcihjb25zdCBXZWJDb3JlOjpDdXJzb3ImIGN1cnNvcikK
ICAgICBpZiAoW05TQXBwIF9jdXJzb3JSZWN0Q3Vyc29yXSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgaWYgKCFtX3drVmlldykKKyAgICBpZiAoIW1fdmlldykKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgTlNXaW5kb3cgKndpbmRvdyA9IFttX3drVmlldyB3aW5kb3ddOworICAgIE5TV2luZG93ICp3
aW5kb3cgPSBbbV92aWV3IHdpbmRvd107CiAgICAgaWYgKCF3aW5kb3cpCiAgICAgICAgIHJldHVy
bjsKIApAQCAtMzMxLDcgKzMzMSw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OnJlZ2lzdGVyRWRp
dENvbW1hbmQoUGFzc1JlZlB0cjxXZWJFZGl0Q29tbWFuZFByb3h5PiBwcnBDb21tCiAjaWYgVVNF
KElOU0VSVElPTl9VTkRPX0dST1VQSU5HKQogdm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVnaXN0ZXJJ
bnNlcnRpb25VbmRvR3JvdXBpbmcoKQogewotICAgIHJlZ2lzdGVySW5zZXJ0aW9uVW5kb0dyb3Vw
aW5nV2l0aFVuZG9NYW5hZ2VyKFttX3drVmlldyB1bmRvTWFuYWdlcl0pOworICAgIHJlZ2lzdGVy
SW5zZXJ0aW9uVW5kb0dyb3VwaW5nV2l0aFVuZG9NYW5hZ2VyKFttX3ZpZXcgdW5kb01hbmFnZXJd
KTsKIH0KICNlbmRpZgogCkBAIC0zNDIsMTIgKzM0MiwxMiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBs
OjpjbGVhckFsbEVkaXRDb21tYW5kcygpCiAKIGJvb2wgUGFnZUNsaWVudEltcGw6OmNhblVuZG9S
ZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVkbyB1bmRvT3JSZWRvKQogewotICAgIHJldHVybiAo
dW5kb09yUmVkbyA9PSBXZWJQYWdlUHJveHk6OlVuZG8pID8gW1ttX3drVmlldyB1bmRvTWFuYWdl
cl0gY2FuVW5kb10gOiBbW21fd2tWaWV3IHVuZG9NYW5hZ2VyXSBjYW5SZWRvXTsKKyAgICByZXR1
cm4gKHVuZG9PclJlZG8gPT0gV2ViUGFnZVByb3h5OjpVbmRvKSA/IFtbbV92aWV3IHVuZG9NYW5h
Z2VyXSBjYW5VbmRvXSA6IFtbbV92aWV3IHVuZG9NYW5hZ2VyXSBjYW5SZWRvXTsKIH0KIAogdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6ZXhlY3V0ZVVuZG9SZWRvKFdlYlBhZ2VQcm94eTo6VW5kb09yUmVk
byB1bmRvT3JSZWRvKQogewotICAgIHJldHVybiAodW5kb09yUmVkbyA9PSBXZWJQYWdlUHJveHk6
OlVuZG8pID8gW1ttX3drVmlldyB1bmRvTWFuYWdlcl0gdW5kb10gOiBbW21fd2tWaWV3IHVuZG9N
YW5hZ2VyXSByZWRvXTsKKyAgICByZXR1cm4gKHVuZG9PclJlZG8gPT0gV2ViUGFnZVByb3h5OjpV
bmRvKSA/IFtbbV92aWV3IHVuZG9NYW5hZ2VyXSB1bmRvXSA6IFtbbV92aWV3IHVuZG9NYW5hZ2Vy
XSByZWRvXTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0RHJhZ0ltYWdlKGNvbnN0IElu
dFBvaW50JiBjbGllbnRQb3NpdGlvbiwgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGRyYWdJ
bWFnZSwgYm9vbCBpc0xpbmtEcmFnKQpAQCAtMzU1LDE2ICszNTUsMTYgQEAgdm9pZCBQYWdlQ2xp
ZW50SW1wbDo6c2V0RHJhZ0ltYWdlKGNvbnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgUGFz
c1JlZlB0cjxTaGEKICAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gZHJhZ0NHSW1hZ2UgPSBkcmFn
SW1hZ2UtPm1ha2VDR0ltYWdlKCk7CiAgICAgUmV0YWluUHRyPE5TSW1hZ2U+IGRyYWdOU0ltYWdl
ID0gYWRvcHROUyhbW05TSW1hZ2UgYWxsb2NdIGluaXRXaXRoQ0dJbWFnZTpkcmFnQ0dJbWFnZS5n
ZXQoKSBzaXplOmRyYWdJbWFnZS0+c2l6ZSgpXSk7CiAgICAgSW50U2l6ZSBzaXplKFtkcmFnTlNJ
bWFnZSBzaXplXSk7Ci0gICAgc2l6ZS5zY2FsZSgxLjAgLyB0b0ltcGwoW21fd2tWaWV3IHBhZ2VS
ZWZdKS0+ZGV2aWNlU2NhbGVGYWN0b3IoKSk7CisgICAgc2l6ZS5zY2FsZSgxLjAgLyBtX2ltcGwt
PnBhZ2UoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKICAgICBbZHJhZ05TSW1hZ2Ugc2V0U2l6ZTpz
aXplXTsKIAogI2lmIFdLX0FQSV9FTkFCTEVECiAgICAgaWYgKG1fd2ViVmlldykgewotICAgICAg
ICBOU1BvaW50IHdlYlZpZXdQb3NpdGlvbiA9IFttX3drVmlldyBjb252ZXJ0UG9pbnQ6Y2xpZW50
UG9zaXRpb24gdG9WaWV3Om1fd2ViVmlld107CisgICAgICAgIE5TUG9pbnQgd2ViVmlld1Bvc2l0
aW9uID0gW21fdmlldyBjb252ZXJ0UG9pbnQ6Y2xpZW50UG9zaXRpb24gdG9WaWV3Om1fd2ViVmll
d107CiAgICAgICAgIG1faW1wbC0+ZHJhZ0ltYWdlRm9yVmlldyhtX3dlYlZpZXcsIGRyYWdOU0lt
YWdlLmdldCgpLCB3ZWJWaWV3UG9zaXRpb24sIGlzTGlua0RyYWcpOwogICAgIH0gZWxzZQogI2Vu
ZGlmCi0gICAgICAgIG1faW1wbC0+ZHJhZ0ltYWdlRm9yVmlldyhtX3drVmlldywgZHJhZ05TSW1h
Z2UuZ2V0KCksIGNsaWVudFBvc2l0aW9uLCBpc0xpbmtEcmFnKTsKKyAgICAgICAgbV9pbXBsLT5k
cmFnSW1hZ2VGb3JWaWV3KG1fdmlldywgZHJhZ05TSW1hZ2UuZ2V0KCksIGNsaWVudFBvc2l0aW9u
LCBpc0xpbmtEcmFnKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0UHJvbWlzZWREYXRh
Rm9ySW1hZ2UoY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgUGFzc1JlZlB0cjxTaGFyZWRC
dWZmZXI+IGltYWdlQnVmZmVyLCBjb25zdCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJpbmcm
IGV4dGVuc2lvbiwgY29uc3QgU3RyaW5nJiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0
IFN0cmluZyYgdmlzaWJsZVVSTCwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGFyY2hpdmVCdWZm
ZXIpCkBAIC00MDUsMzAgKzQwNSwzMCBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpub3RpZnlBcHBs
aWNhdGlvbkFib3V0SW5wdXRDb250ZXh0Q2hhbmdlKCkKIAogRmxvYXRSZWN0IFBhZ2VDbGllbnRJ
bXBsOjpjb252ZXJ0VG9EZXZpY2VTcGFjZShjb25zdCBGbG9hdFJlY3QmIHJlY3QpCiB7Ci0gICAg
cmV0dXJuIHRvRGV2aWNlU3BhY2UocmVjdCwgW21fd2tWaWV3IHdpbmRvd10pOworICAgIHJldHVy
biB0b0RldmljZVNwYWNlKHJlY3QsIFttX3ZpZXcgd2luZG93XSk7CiB9CiAKIEZsb2F0UmVjdCBQ
YWdlQ2xpZW50SW1wbDo6Y29udmVydFRvVXNlclNwYWNlKGNvbnN0IEZsb2F0UmVjdCYgcmVjdCkK
IHsKLSAgICByZXR1cm4gdG9Vc2VyU3BhY2UocmVjdCwgW21fd2tWaWV3IHdpbmRvd10pOworICAg
IHJldHVybiB0b1VzZXJTcGFjZShyZWN0LCBbbV92aWV3IHdpbmRvd10pOwogfQogICAgCiBJbnRQ
b2ludCBQYWdlQ2xpZW50SW1wbDo6c2NyZWVuVG9Sb290Vmlldyhjb25zdCBJbnRQb2ludCYgcG9p
bnQpCiB7CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFuZyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgTlNQb2ludCB3
aW5kb3dDb29yZCA9IFtbbV93a1ZpZXcgd2luZG93XSBjb252ZXJ0U2NyZWVuVG9CYXNlOnBvaW50
XTsKKyAgICBOU1BvaW50IHdpbmRvd0Nvb3JkID0gW1ttX3ZpZXcgd2luZG93XSBjb252ZXJ0U2Ny
ZWVuVG9CYXNlOnBvaW50XTsKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKLSAgICByZXR1
cm4gSW50UG9pbnQoW21fd2tWaWV3IGNvbnZlcnRQb2ludDp3aW5kb3dDb29yZCBmcm9tVmlldzpu
aWxdKTsKKyAgICByZXR1cm4gSW50UG9pbnQoW21fdmlldyBjb252ZXJ0UG9pbnQ6d2luZG93Q29v
cmQgZnJvbVZpZXc6bmlsXSk7CiB9CiAgICAgCiBJbnRSZWN0IFBhZ2VDbGllbnRJbXBsOjpyb290
Vmlld1RvU2NyZWVuKGNvbnN0IEludFJlY3QmIHJlY3QpCiB7CiAgICAgTlNSZWN0IHRlbXBSZWN0
ID0gcmVjdDsKLSAgICB0ZW1wUmVjdCA9IFttX3drVmlldyBjb252ZXJ0UmVjdDp0ZW1wUmVjdCB0
b1ZpZXc6bmlsXTsKKyAgICB0ZW1wUmVjdCA9IFttX3ZpZXcgY29udmVydFJlY3Q6dGVtcFJlY3Qg
dG9WaWV3Om5pbF07CiAjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAogI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgdGVt
cFJlY3Qub3JpZ2luID0gW1ttX3drVmlldyB3aW5kb3ddIGNvbnZlcnRCYXNlVG9TY3JlZW46dGVt
cFJlY3Qub3JpZ2luXTsKKyAgICB0ZW1wUmVjdC5vcmlnaW4gPSBbW21fdmlldyB3aW5kb3ddIGNv
bnZlcnRCYXNlVG9TY3JlZW46dGVtcFJlY3Qub3JpZ2luXTsKICNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKICAgICByZXR1cm4gZW5jbG9zaW5nSW50UmVjdCh0ZW1wUmVjdCk7CiB9CkBAIC00
NDAsMjAgKzQ0MCwyMCBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkb25lV2l0aEtleUV2ZW50KGNv
bnN0IE5hdGl2ZVdlYktleWJvYXJkRXZlbnQmIGV2ZW50LCBib29sCiAKIFJlZlB0cjxXZWJQb3B1
cE1lbnVQcm94eT4gUGFnZUNsaWVudEltcGw6OmNyZWF0ZVBvcHVwTWVudVByb3h5KFdlYlBhZ2VQ
cm94eSYgcGFnZSkKIHsKLSAgICByZXR1cm4gV2ViUG9wdXBNZW51UHJveHlNYWM6OmNyZWF0ZSht
X3drVmlldywgcGFnZSk7CisgICAgcmV0dXJuIFdlYlBvcHVwTWVudVByb3h5TWFjOjpjcmVhdGUo
bV92aWV3LCBwYWdlKTsKIH0KIAogI2lmIEVOQUJMRShDT05URVhUX01FTlVTKQogc3RkOjp1bmlx
dWVfcHRyPFdlYkNvbnRleHRNZW51UHJveHk+IFBhZ2VDbGllbnRJbXBsOjpjcmVhdGVDb250ZXh0
TWVudVByb3h5KFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgQ29udGV4dE1lbnVDb250ZXh0RGF0
YSYgY29udGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogewotICAgIHJldHVybiBzdGQ6
Om1ha2VfdW5pcXVlPFdlYkNvbnRleHRNZW51UHJveHlNYWM+KG1fd2tWaWV3LCBwYWdlLCBjb250
ZXh0LCB1c2VyRGF0YSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8V2ViQ29udGV4dE1l
bnVQcm94eU1hYz4obV92aWV3LCBwYWdlLCBjb250ZXh0LCB1c2VyRGF0YSk7CiB9CiAjZW5kaWYK
IAogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SKQogUmVmUHRyPFdlYkNvbG9yUGlja2VyPiBQ
YWdlQ2xpZW50SW1wbDo6Y3JlYXRlQ29sb3JQaWNrZXIoV2ViUGFnZVByb3h5KiBwYWdlLCBjb25z
dCBXZWJDb3JlOjpDb2xvciYgaW5pdGlhbENvbG9yLCAgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYg
cmVjdCkKIHsKLSAgICByZXR1cm4gV2ViQ29sb3JQaWNrZXJNYWM6OmNyZWF0ZShwYWdlLCBpbml0
aWFsQ29sb3IsIHJlY3QsIG1fd2tWaWV3KTsKKyAgICByZXR1cm4gV2ViQ29sb3JQaWNrZXJNYWM6
OmNyZWF0ZShwYWdlLCBpbml0aWFsQ29sb3IsIHJlY3QsIG1fdmlldyk7CiB9CiAjZW5kaWYKIApA
QCAtNTMxLDcgKzUzMSw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OndoZWVsRXZlbnRXYXNOb3RI
YW5kbGVkQnlXZWJDb3JlKGNvbnN0IE5hdGl2ZVdlYldoZWVsRXZlbnQmCiAjaWYgRU5BQkxFKE1B
Q19HRVNUVVJFX0VWRU5UUykKIHZvaWQgUGFnZUNsaWVudEltcGw6Omdlc3R1cmVFdmVudFdhc05v
dEhhbmRsZWRCeVdlYkNvcmUoY29uc3QgTmF0aXZlV2ViR2VzdHVyZUV2ZW50JiBldmVudCkKIHsK
LSAgICBbbV93a1ZpZXcgX2dlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmU6ZXZlbnQu
bmF0aXZlRXZlbnQoKV07CisgICAgbV9pbXBsLT5nZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlX
ZWJDb3JlKGV2ZW50Lm5hdGl2ZUV2ZW50KCkpOwogfQogI2VuZGlmCiAKQEAgLTU0OSwxNCArNTQ5
LDE0IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1EaWN0aW9uYXJ5TG9va3VwKGNv
bnN0IERpY3Rpb25hcnlQb3B1cEluZm8mIGRpY3RpCiB7CiAgICAgbV9pbXBsLT5wcmVwYXJlRm9y
RGljdGlvbmFyeUxvb2t1cCgpOwogCi0gICAgRGljdGlvbmFyeUxvb2t1cDo6c2hvd1BvcHVwKGRp
Y3Rpb25hcnlQb3B1cEluZm8sIG1fd2tWaWV3LCBbdGhpc10oVGV4dEluZGljYXRvciYgdGV4dElu
ZGljYXRvcikgeworICAgIERpY3Rpb25hcnlMb29rdXA6OnNob3dQb3B1cChkaWN0aW9uYXJ5UG9w
dXBJbmZvLCBtX3ZpZXcsIFt0aGlzXShUZXh0SW5kaWNhdG9yJiB0ZXh0SW5kaWNhdG9yKSB7CiAg
ICAgICAgIG1faW1wbC0+c2V0VGV4dEluZGljYXRvcih0ZXh0SW5kaWNhdG9yLCBUZXh0SW5kaWNh
dG9yV2luZG93TGlmZXRpbWU6OlBlcm1hbmVudCk7CiAgICAgfSk7CiB9CiAKIHZvaWQgUGFnZUNs
aWVudEltcGw6OmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3MoYm9vbCB3aXRoQW5p
bWF0aW9uKQogewotICAgIFttX3drVmlldyBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2lu
ZG93c1dpdGhBbmltYXRpb246d2l0aEFuaW1hdGlvbl07CisgICAgbV9pbXBsLT5kaXNtaXNzQ29u
dGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbih3aXRoQW5pbWF0aW9uKTsKIH0K
IAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd0NvcnJlY3Rpb25QYW5lbChBbHRlcm5hdGl2ZVRl
eHRUeXBlIHR5cGUsIGNvbnN0IEZsb2F0UmVjdCYgYm91bmRpbmdCb3hPZlJlcGxhY2VkU3RyaW5n
LCBjb25zdCBTdHJpbmcmIHJlcGxhY2VkU3RyaW5nLCBjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50
U3RyaW5nLCBjb25zdCBWZWN0b3I8U3RyaW5nPiYgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmlu
Z3MpCkBAIC01NjQsNyArNTY0LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2hvd0NvcnJlY3Rp
b25QYW5lbChBbHRlcm5hdGl2ZVRleHRUeXBlIHR5cGUsIGNvbnN0IEZsb2F0UmUKICNpZiBVU0Uo
QVVUT0NPUlJFQ1RJT05fUEFORUwpCiAgICAgaWYgKCFpc1ZpZXdWaXNpYmxlKCkgfHwgIWlzVmll
d0luV2luZG93KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2NvcnJlY3Rpb25QYW5lbC5zaG93
KG1fd2tWaWV3LCAqbV9pbXBsLCB0eXBlLCBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIHJl
cGxhY2VkU3RyaW5nLCByZXBsYWNlbWVudFN0cmluZywgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0
cmluZ3MpOworICAgIG1fY29ycmVjdGlvblBhbmVsLnNob3cobV92aWV3LCAqbV9pbXBsLCB0eXBl
LCBib3VuZGluZ0JveE9mUmVwbGFjZWRTdHJpbmcsIHJlcGxhY2VkU3RyaW5nLCByZXBsYWNlbWVu
dFN0cmluZywgYWx0ZXJuYXRpdmVSZXBsYWNlbWVudFN0cmluZ3MpOwogI2VuZGlmCiB9CiAKQEAg
LTU4Nyw3ICs1ODcsNyBAQCBTdHJpbmcgUGFnZUNsaWVudEltcGw6OmRpc21pc3NDb3JyZWN0aW9u
UGFuZWxTb29uKFdlYkNvcmU6OlJlYXNvbkZvckRpc21pc3NpbmdBbAogdm9pZCBQYWdlQ2xpZW50
SW1wbDo6cmVjb3JkQXV0b2NvcnJlY3Rpb25SZXNwb25zZShBdXRvY29ycmVjdGlvblJlc3BvbnNl
VHlwZSByZXNwb25zZVR5cGUsIGNvbnN0IFN0cmluZyYgcmVwbGFjZWRTdHJpbmcsIGNvbnN0IFN0
cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcpCiB7CiAgICAgTlNDb3JyZWN0aW9uUmVzcG9uc2UgcmVz
cG9uc2UgPSByZXNwb25zZVR5cGUgPT0gQXV0b2NvcnJlY3Rpb25SZXZlcnRlZCA/IE5TQ29ycmVj
dGlvblJlc3BvbnNlUmV2ZXJ0ZWQgOiBOU0NvcnJlY3Rpb25SZXNwb25zZUVkaXRlZDsKLSAgICBD
b3JyZWN0aW9uUGFuZWw6OnJlY29yZEF1dG9jb3JyZWN0aW9uUmVzcG9uc2UobV93a1ZpZXcsIG1f
aW1wbC0+c3BlbGxDaGVja2VyRG9jdW1lbnRUYWcoKSwgcmVzcG9uc2UsIHJlcGxhY2VkU3RyaW5n
LCByZXBsYWNlbWVudFN0cmluZyk7CisgICAgQ29ycmVjdGlvblBhbmVsOjpyZWNvcmRBdXRvY29y
cmVjdGlvblJlc3BvbnNlKG1fdmlldywgbV9pbXBsLT5zcGVsbENoZWNrZXJEb2N1bWVudFRhZygp
LCByZXNwb25zZSwgcmVwbGFjZWRTdHJpbmcsIHJlcGxhY2VtZW50U3RyaW5nKTsKIH0KIAogdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6cmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShTY3Jv
bGxiYXJTdHlsZSBuZXdTdHlsZSkKQEAgLTU5OSw3ICs1OTksNyBAQCB2b2lkIFBhZ2VDbGllbnRJ
bXBsOjpyZWNvbW1lbmRlZFNjcm9sbGJhclN0eWxlRGlkQ2hhbmdlKFNjcm9sbGJhclN0eWxlIG5l
d1N0eWxlKQogICAgIGVsc2UKICAgICAgICAgb3B0aW9ucyB8PSBOU1RyYWNraW5nQWN0aXZlSW5L
ZXlXaW5kb3c7CiAKLSAgICBSZXRhaW5QdHI8TlNUcmFja2luZ0FyZWE+IHRyYWNraW5nQXJlYSA9
IGFkb3B0TlMoW1tOU1RyYWNraW5nQXJlYSBhbGxvY10gaW5pdFdpdGhSZWN0OlttX3drVmlldyBm
cmFtZV0gb3B0aW9uczpvcHRpb25zIG93bmVyOm1fd2tWaWV3IHVzZXJJbmZvOm5pbF0pOworICAg
IFJldGFpblB0cjxOU1RyYWNraW5nQXJlYT4gdHJhY2tpbmdBcmVhID0gYWRvcHROUyhbW05TVHJh
Y2tpbmdBcmVhIGFsbG9jXSBpbml0V2l0aFJlY3Q6W21fdmlldyBmcmFtZV0gb3B0aW9uczpvcHRp
b25zIG93bmVyOm1fdmlldyB1c2VySW5mbzpuaWxdKTsKICAgICBtX2ltcGwtPnNldFByaW1hcnlU
cmFja2luZ0FyZWEodHJhY2tpbmdBcmVhLmdldCgpKTsKIH0KIApAQCAtNjM1LDcgKzYzNSw3IEBA
IHZvaWQgUGFnZUNsaWVudEltcGw6OnNob3dEaWN0YXRpb25BbHRlcm5hdGl2ZVVJKGNvbnN0IFdl
YkNvcmU6OkZsb2F0UmVjdCYgYm91bmRpCiB7CiAgICAgaWYgKCFpc1ZpZXdWaXNpYmxlKCkgfHwg
IWlzVmlld0luV2luZG93KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBtX2FsdGVybmF0aXZlVGV4
dFVJQ29udHJvbGxlci0+c2hvd0FsdGVybmF0aXZlcyhtX3drVmlldywgYm91bmRpbmdCb3hPZkRp
Y3RhdGVkVGV4dCwgZGljdGF0aW9uQ29udGV4dCwgXihOU1N0cmluZyAqYWNjZXB0ZWRBbHRlcm5h
dGl2ZSkgeworICAgIG1fYWx0ZXJuYXRpdmVUZXh0VUlDb250cm9sbGVyLT5zaG93QWx0ZXJuYXRp
dmVzKG1fdmlldywgYm91bmRpbmdCb3hPZkRpY3RhdGVkVGV4dCwgZGljdGF0aW9uQ29udGV4dCwg
XihOU1N0cmluZyAqYWNjZXB0ZWRBbHRlcm5hdGl2ZSkgewogICAgICAgICBtX2ltcGwtPmhhbmRs
ZUFjY2VwdGVkQWx0ZXJuYXRpdmVUZXh0KGFjY2VwdGVkQWx0ZXJuYXRpdmUpOwogICAgIH0pOwog
fQpAQCAtNzgzLDcgKzc4Myw3IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZENoYW5nZUJhY2tn
cm91bmRDb2xvcigpCiAKIENHUmVjdCBQYWdlQ2xpZW50SW1wbDo6Ym91bmRzT2ZMYXllckluTGF5
ZXJCYWNrZWRXaW5kb3dDb29yZGluYXRlcyhDQUxheWVyICpsYXllcikgY29uc3QKIHsKLSAgICBD
QUxheWVyICp3aW5kb3dDb250ZW50TGF5ZXIgPSBzdGF0aWNfY2FzdDxOU1ZpZXcgKj4obV93a1Zp
ZXcud2luZG93LmNvbnRlbnRWaWV3KS5sYXllcjsKKyAgICBDQUxheWVyICp3aW5kb3dDb250ZW50
TGF5ZXIgPSBzdGF0aWNfY2FzdDxOU1ZpZXcgKj4obV92aWV3LndpbmRvdy5jb250ZW50Vmlldyku
bGF5ZXI7CiAgICAgQVNTRVJUKHdpbmRvd0NvbnRlbnRMYXllcik7CiAKICAgICByZXR1cm4gW3dp
bmRvd0NvbnRlbnRMYXllciBjb252ZXJ0UmVjdDpsYXllci5ib3VuZHMgZnJvbUxheWVyOmxheWVy
XTsKQEAgLTgwMiwxMiArODAyLDEyIEBAIHZvaWQqIFBhZ2VDbGllbnRJbXBsOjppbW1lZGlhdGVB
Y3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdChSZWZQdHI8CiAgICAgaWYg
KG1fd2ViVmlldykKICAgICAgICAgcmV0dXJuIFttX3dlYlZpZXcgX2ltbWVkaWF0ZUFjdGlvbkFu
aW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0OndyYXBwZXIoKmhpdFRlc3RSZXN1bHQp
IHdpdGhUeXBlOihfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKXR5cGUgdXNlckRhdGE6KGlkKSh1c2Vy
RGF0YS5nZXQoKSldOwogI2VuZGlmCi0gICAgcmV0dXJuIG1faW1wbC0+aW1tZWRpYXRlQWN0aW9u
QW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQodG9BUEkoaGl0VGVzdFJlc3VsdC5n
ZXQoKSksIHR5cGUsIHRvQVBJKHVzZXJEYXRhLmdldCgpKSk7CisgICAgcmV0dXJuIG1faW1wbC0+
aW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQoaGl0VGVz
dFJlc3VsdC5nZXQoKSwgdHlwZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCiB2b2lkIFBhZ2VDbGll
bnRJbXBsOjpzaG93UGxhdGZvcm1Db250ZXh0TWVudShOU01lbnUgKm1lbnUsIEludFBvaW50IGxv
Y2F0aW9uKQogewotICAgIFttZW51IHBvcFVwTWVudVBvc2l0aW9uaW5nSXRlbTpuaWwgYXRMb2Nh
dGlvbjpsb2NhdGlvbiBpblZpZXc6bV93a1ZpZXddOworICAgIFttZW51IHBvcFVwTWVudVBvc2l0
aW9uaW5nSXRlbTpuaWwgYXRMb2NhdGlvbjpsb2NhdGlvbiBpblZpZXc6bV92aWV3XTsKIH0KIAog
I2lmIEVOQUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCkBAIC04MTksMTIgKzgxOSwxMiBA
QCBXZWJDb3JlOjpXZWJNZWRpYVNlc3Npb25NYW5hZ2VyJiBQYWdlQ2xpZW50SW1wbDo6bWVkaWFT
ZXNzaW9uTWFuYWdlcigpCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnJlZlZpZXcoKQogewotICAg
IENGUmV0YWluKG1fd2tWaWV3KTsKKyAgICBDRlJldGFpbihtX3ZpZXcpOwogfQogCiB2b2lkIFBh
Z2VDbGllbnRJbXBsOjpkZXJlZlZpZXcoKQogewotICAgIENGUmVsZWFzZShtX3drVmlldyk7Cisg
ICAgQ0ZSZWxlYXNlKG1fdmlldyk7CiB9CiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OnN0YXJ0V2lu
ZG93RHJhZygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNv
bG9yUGlja2VyTWFjLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlj
a2VyTWFjLmgKaW5kZXggY2YyZjZlOC4uNDU3ODcyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNrZXJNYWMuaApAQCAtMzcsNyArMzcsNiBAQAogI2lm
IFVTRShBUFBLSVQpCiAKICNpbXBvcnQgIldlYkNvbG9yUGlja2VyLmgiCi0jaW1wb3J0ICJXS1Zp
ZXcuaCIKICNpbXBvcnQgPFdlYkNvcmUvSW50UmVjdC5oPgogI2luY2x1ZGUgPHd0Zi9SZXRhaW5Q
dHIuaD4KIApAQCAtNjAsNyArNTksNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICAKIGNsYXNz
IFdlYkNvbG9yUGlja2VyTWFjIDogcHVibGljIFdlYkNvbG9yUGlja2VyIHsKIHB1YmxpYzogICAg
ICAgIAotICAgIHN0YXRpYyBSZWY8V2ViQ29sb3JQaWNrZXJNYWM+IGNyZWF0ZShXZWJDb2xvclBp
Y2tlcjo6Q2xpZW50KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3JlOjpJbnRS
ZWN0JiwgV0tWaWV3Kik7CisgICAgc3RhdGljIFJlZjxXZWJDb2xvclBpY2tlck1hYz4gY3JlYXRl
KFdlYkNvbG9yUGlja2VyOjpDbGllbnQqLCBjb25zdCBXZWJDb3JlOjpDb2xvciYsIGNvbnN0IFdl
YkNvcmU6OkludFJlY3QmLCBOU1ZpZXcqKTsKICAgICB+V2ViQ29sb3JQaWNrZXJNYWMoKTsKIAog
ICAgIHZpcnR1YWwgdm9pZCBlbmRQaWNrZXIoKSBvdmVycmlkZTsKQEAgLTcwLDcgKzY5LDcgQEAg
cHVibGljOgogICAgIHZvaWQgZGlkQ2hvb3NlQ29sb3IoY29uc3QgV2ViQ29yZTo6Q29sb3ImKTsK
IAogcHJpdmF0ZToKLSAgICBXZWJDb2xvclBpY2tlck1hYyhXZWJDb2xvclBpY2tlcjo6Q2xpZW50
KiwgY29uc3QgV2ViQ29yZTo6Q29sb3ImLCBjb25zdCBXZWJDb3JlOjpJbnRSZWN0JiwgV0tWaWV3
Kik7CisgICAgV2ViQ29sb3JQaWNrZXJNYWMoV2ViQ29sb3JQaWNrZXI6OkNsaWVudCosIGNvbnN0
IFdlYkNvcmU6OkNvbG9yJiwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYsIE5TVmlldyopOwogICAg
IFJldGFpblB0cjxOU09iamVjdDxXS0NvbG9yUGlja2VyVUlNYWM+ID4gbV9jb2xvclBpY2tlclVJ
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb2xv
clBpY2tlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29sb3JQaWNr
ZXJNYWMubW0KaW5kZXggMjZhYzY5Zi4uOGUwMDI3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9XZWJDb2xvclBpY2tlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbG9yUGlja2VyTWFjLm1tCkBAIC01OCw3ICs1OCw3IEBAIHVz
aW5nIG5hbWVzcGFjZSBXZWJLaXQ7CiAgICAgV2ViQ29sb3JQaWNrZXJNYWMgKl9waWNrZXI7CiAg
ICAgUmV0YWluUHRyPE5TUG9wb3ZlckNvbG9yV2VsbD4gX3BvcG92ZXJXZWxsOwogfQotLSAoaWQp
aW5pdFdpdGhGcmFtZTooY29uc3QgV2ViQ29yZTo6SW50UmVjdCAmKXJlY3QgaW5WaWV3OihXS1Zp
ZXcgKil2aWV3OworLSAoaWQpaW5pdFdpdGhGcmFtZTooY29uc3QgV2ViQ29yZTo6SW50UmVjdCAm
KXJlY3QgaW5WaWV3OihOU1ZpZXcgKil2aWV3OwogQGVuZAogCiAjZWxzZQpAQCAtNzUsNyArNzUs
NyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotUmVm
PFdlYkNvbG9yUGlja2VyTWFjPiBXZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKFdlYkNvbG9yUGlj
a2VyOjpDbGllbnQqIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwg
Y29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCwgV0tWaWV3KiB2aWV3KQorUmVmPFdlYkNvbG9y
UGlja2VyTWFjPiBXZWJDb2xvclBpY2tlck1hYzo6Y3JlYXRlKFdlYkNvbG9yUGlja2VyOjpDbGll
bnQqIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2Vi
Q29yZTo6SW50UmVjdCYgcmVjdCwgTlNWaWV3KiB2aWV3KQogewogICAgIHJldHVybiBhZG9wdFJl
ZigqbmV3IFdlYkNvbG9yUGlja2VyTWFjKGNsaWVudCwgaW5pdGlhbENvbG9yLCByZWN0LCB2aWV3
KSk7CiB9CkBAIC04Niw3ICs4Niw3IEBAIFdlYkNvbG9yUGlja2VyTWFjOjp+V2ViQ29sb3JQaWNr
ZXJNYWMoKQogICAgICAgICBlbmRQaWNrZXIoKTsKIH0KIAotV2ViQ29sb3JQaWNrZXJNYWM6Oldl
YkNvbG9yUGlja2VyTWFjKFdlYkNvbG9yUGlja2VyOjpDbGllbnQqIGNsaWVudCwgY29uc3QgV2Vi
Q29yZTo6Q29sb3ImIGluaXRpYWxDb2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCwg
V0tWaWV3KiB2aWV3KQorV2ViQ29sb3JQaWNrZXJNYWM6OldlYkNvbG9yUGlja2VyTWFjKFdlYkNv
bG9yUGlja2VyOjpDbGllbnQqIGNsaWVudCwgY29uc3QgV2ViQ29yZTo6Q29sb3ImIGluaXRpYWxD
b2xvciwgY29uc3QgV2ViQ29yZTo6SW50UmVjdCYgcmVjdCwgTlNWaWV3KiB2aWV3KQogICAgIDog
V2ViQ29sb3JQaWNrZXIoY2xpZW50KQogewogI2lmIEVOQUJMRShJTlBVVF9UWVBFX0NPTE9SX1BP
UE9WRVIpCkBAIC0xMzYsNyArMTM2LDcgQEAgdm9pZCBXZWJDb2xvclBpY2tlck1hYzo6c2hvd0Nv
bG9yUGlja2VyKGNvbnN0IFdlYkNvcmU6OkNvbG9yJiBjb2xvcikKICNpZiBFTkFCTEUoSU5QVVRf
VFlQRV9DT0xPUl9QT1BPVkVSKQogCiBAaW1wbGVtZW50YXRpb24gV0tDb2xvclBvcG92ZXJNYWMK
LS0gKGlkKWluaXRXaXRoRnJhbWU6KGNvbnN0IFdlYkNvcmU6OkludFJlY3QgJilyZWN0IGluVmll
dzooV0tWaWV3ICopdmlldworLSAoaWQpaW5pdFdpdGhGcmFtZTooY29uc3QgV2ViQ29yZTo6SW50
UmVjdCAmKXJlY3QgaW5WaWV3OihOU1ZpZXcgKil2aWV3CiB7CiAgICAgaWYoIShzZWxmID0gW3N1
cGVyIGluaXRdKSkKICAgICAgICAgcmV0dXJuIHNlbGY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51UHJveHlNYWMuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5oCmluZGV4IDFiMmIwNzYu
LmJkZDE3ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1lbnVQcm94eU1hYy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2Vi
Q29udGV4dE1lbnVQcm94eU1hYy5oCkBAIC0zMiw4ICszMiw4IEBACiAjaW5jbHVkZSA8d3RmL1Jl
dGFpblB0ci5oPgogCiBPQkpDX0NMQVNTIE5TUG9wVXBCdXR0b25DZWxsOworT0JKQ19DTEFTUyBO
U1ZpZXc7CiBPQkpDX0NMQVNTIE5TV2luZG93OwotT0JKQ19DTEFTUyBXS1ZpZXc7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCkBAIC00NCw3ICs0NCw3IEBAIGNsYXNzIFdlYlBhZ2VQcm94eTsKIAog
Y2xhc3MgV2ViQ29udGV4dE1lbnVQcm94eU1hYyA6IHB1YmxpYyBXZWJDb250ZXh0TWVudVByb3h5
IHsKIHB1YmxpYzoKLSAgICBXZWJDb250ZXh0TWVudVByb3h5TWFjKFdLVmlldyosIFdlYlBhZ2VQ
cm94eSYsIGNvbnN0IENvbnRleHRNZW51Q29udGV4dERhdGEmLCBjb25zdCBVc2VyRGF0YSYpOwor
ICAgIFdlYkNvbnRleHRNZW51UHJveHlNYWMoTlNWaWV3KiwgV2ViUGFnZVByb3h5JiwgY29uc3Qg
Q29udGV4dE1lbnVDb250ZXh0RGF0YSYsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgfldlYkNvbnRl
eHRNZW51UHJveHlNYWMoKTsKIAogICAgIHZvaWQgY29udGV4dE1lbnVJdGVtU2VsZWN0ZWQoY29u
c3QgV2ViQ29udGV4dE1lbnVJdGVtRGF0YSYpOwpAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgog
CiAgICAgUmV0YWluUHRyPE5TTWVudT4gbV9tZW51OwogCi0gICAgV0tWaWV3KiBtX3dlYlZpZXc7
CisgICAgTlNWaWV3KiBtX3dlYlZpZXc7CiAgICAgV2ViUGFnZVByb3h5JiBtX3BhZ2U7CiB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51
UHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNZW51
UHJveHlNYWMubW0KaW5kZXggZTJjMDFkNy4uNTIwZWU2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWVudVByb3h5TWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1lbnVQcm94eU1hYy5tbQpAQCAtMzYs
NyArMzYsNiBAQAogI2ltcG9ydCAiU2hhcmVhYmxlQml0bWFwLmgiCiAjaW1wb3J0ICJTdHJpbmdV
dGlsaXRpZXMuaCIKICNpbXBvcnQgIldLU2hhcmluZ1NlcnZpY2VQaWNrZXJEZWxlZ2F0ZS5oIgot
I2ltcG9ydCAiV0tWaWV3LmgiCiAjaW1wb3J0ICJXZWJDb250ZXh0TWVudUl0ZW0uaCIKICNpbXBv
cnQgIldlYkNvbnRleHRNZW51SXRlbURhdGEuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5o
IgpAQCAtMTUyLDcgKzE1MSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotV2ViQ29udGV4dE1lbnVQcm94eU1hYzo6V2ViQ29udGV4dE1lbnVQcm94
eU1hYyhXS1ZpZXcqIHdlYlZpZXcsIFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgQ29udGV4dE1l
bnVDb250ZXh0RGF0YSYgY29udGV4dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQorV2ViQ29u
dGV4dE1lbnVQcm94eU1hYzo6V2ViQ29udGV4dE1lbnVQcm94eU1hYyhOU1ZpZXcqIHdlYlZpZXcs
IFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgQ29udGV4dE1lbnVDb250ZXh0RGF0YSYgY29udGV4
dCwgY29uc3QgVXNlckRhdGEmIHVzZXJEYXRhKQogICAgIDogV2ViQ29udGV4dE1lbnVQcm94eShj
b250ZXh0LCB1c2VyRGF0YSkKICAgICAsIG1fd2ViVmlldyh3ZWJWaWV3KQogICAgICwgbV9wYWdl
KHBhZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVw
TWVudVByb3h5TWFjLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVu
dVByb3h5TWFjLmgKaW5kZXggOWZkZThlMzguLmZiMWVjYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLmgKQEAgLTQwLDcgKzQw
LDcgQEAgY2xhc3MgV2ViUGFnZVByb3h5OwogCiBjbGFzcyBXZWJQb3B1cE1lbnVQcm94eU1hYyA6
IHB1YmxpYyBXZWJQb3B1cE1lbnVQcm94eSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZjxXZWJQ
b3B1cE1lbnVQcm94eU1hYz4gY3JlYXRlKFdLVmlldyAqd2ViVmlldywgV2ViUG9wdXBNZW51UHJv
eHk6OkNsaWVudCYgY2xpZW50KQorICAgIHN0YXRpYyBSZWY8V2ViUG9wdXBNZW51UHJveHlNYWM+
IGNyZWF0ZShOU1ZpZXcgKndlYlZpZXcsIFdlYlBvcHVwTWVudVByb3h5OjpDbGllbnQmIGNsaWVu
dCkKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlBvcHVwTWVudVByb3h5
TWFjKHdlYlZpZXcsIGNsaWVudCkpOwogICAgIH0KQEAgLTUxLDEyICs1MSwxMiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIGNhbmNlbFRyYWNraW5nKCkgb3ZlcnJpZGU7CiAKIHByaXZhdGU6
Ci0gICAgV2ViUG9wdXBNZW51UHJveHlNYWMoV0tWaWV3ICosIFdlYlBvcHVwTWVudVByb3h5OjpD
bGllbnQmKTsKKyAgICBXZWJQb3B1cE1lbnVQcm94eU1hYyhOU1ZpZXcgKiwgV2ViUG9wdXBNZW51
UHJveHk6OkNsaWVudCYpOwogCiAgICAgdm9pZCBwb3B1bGF0ZShjb25zdCBWZWN0b3I8V2ViUG9w
dXBJdGVtPiYsIE5TRm9udCAqLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKTsKIAogICAgIFJldGFp
blB0cjxOU1BvcFVwQnV0dG9uQ2VsbD4gbV9wb3B1cDsKLSAgICBXS1ZpZXcgKm1fd2ViVmlldzsK
KyAgICBOU1ZpZXcgKm1fd2ViVmlldzsKICAgICBib29sIG1fd2FzQ2FuY2VsZWQ7CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5
TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQb3B1cE1lbnVQcm94eU1h
Yy5tbQppbmRleCA0OGQ0OTI2Li5kMzMzY2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dlYlBvcHVwTWVudVByb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV2ViUG9wdXBNZW51UHJveHlNYWMubW0KQEAgLTMyLDcgKzMyLDYgQEAK
ICNpbXBvcnQgIlBhZ2VDbGllbnRJbXBsLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybVBvcHVwTWVudURh
dGEuaCIKICNpbXBvcnQgIlN0cmluZ1V0aWxpdGllcy5oIgotI2ltcG9ydCAiV0tWaWV3LmgiCiAj
aW1wb3J0ICJXZWJQb3B1cEl0ZW0uaCIKICNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5o
PgogCkBAIC00MCw3ICszOSw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAotV2ViUG9wdXBNZW51UHJveHlNYWM6OldlYlBvcHVwTWVudVByb3h5TWFj
KFdLVmlldyAqd2ViVmlldywgV2ViUG9wdXBNZW51UHJveHk6OkNsaWVudCYgY2xpZW50KQorV2Vi
UG9wdXBNZW51UHJveHlNYWM6OldlYlBvcHVwTWVudVByb3h5TWFjKE5TVmlldyAqd2ViVmlldywg
V2ViUG9wdXBNZW51UHJveHk6OkNsaWVudCYgY2xpZW50KQogICAgIDogV2ViUG9wdXBNZW51UHJv
eHkoY2xpZW50KQogICAgICwgbV93ZWJWaWV3KHdlYlZpZXcpCiAgICAgLCBtX3dhc0NhbmNlbGVk
KGZhbHNlKQo=
</data>
<flag name="review"
          id="289558"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264604</attachid>
            <date>2015-11-02 11:30:53 -0800</date>
            <delta_ts>2015-11-02 13:09:13 -0800</delta_ts>
            <desc>Part 19 - remove WKView from inside of WKWebView</desc>
            <filename>19.diff</filename>
            <type>text/plain</type>
            <size>68709</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyNjQ4OWM3Li5mYzAxYTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUw
IEBACisyMDE1LTExLTAyICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIEdldCByaWQgb2YgV0tXZWJWaWV3J3MgaW5uZXIgV0tWaWV3IChXS1ZpZXcgYmVp
bmcgaW5zaWRlIFdLV2ViVmlldyBsZWFkcyB0byB3ZWlyZCBBUEkgaXNzdWVzKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwMTc0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGluaXRXaXRoRnJhbWU6Y29u
ZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGRlYWxsb2NdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IGFsbG93c0xpbmtQcmV2aWV3XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBz
ZXRBbGxvd3NMaW5rUHJldmlldzpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGFjY2VwdHNGaXJz
dFJlc3BvbmRlcl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgYmVjb21lRmlyc3RSZXNwb25kZXJd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHJlc2lnbkZpcnN0UmVzcG9uZGVyXSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyB2aWV3V2lsbFN0YXJ0TGl2ZVJlc2l6ZV0pOgorICAgICAgICAoLVtXS1dl
YlZpZXcgdmlld0RpZEVuZExpdmVSZXNpemVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGlzRmxp
cHBlZF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgaW50cmluc2ljQ29udGVudFNpemVdKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IHByZXBhcmVDb250ZW50SW5SZWN0Ol0pOgorICAgICAgICAoLVtX
S1dlYlZpZXcgc2V0RnJhbWVTaXplOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgcmVuZXdHU3Rh
dGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkOnR5
cGVzOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgY2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJl
YTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHZhbGlkUmVxdWVzdG9yRm9yU2VuZFR5cGU6cmV0
dXJuVHlwZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHJlYWRTZWxlY3Rpb25Gcm9tUGFzdGVi
b2FyZDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGNoYW5nZUZvbnQ6XSk6CisgICAgICAgICgt
W1dLV2ViVmlldyB2YWxpZGF0ZVVzZXJJbnRlcmZhY2VJdGVtOl0pOgorICAgICAgICAoLVtXS1dl
YlZpZXcgc3RhcnRTcGVha2luZzpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHN0b3BTcGVha2lu
ZzpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNob3dHdWVzc1BhbmVsOl0pOgorICAgICAgICAo
LVtXS1dlYlZpZXcgY2hlY2tTcGVsbGluZzpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGNoYW5n
ZVNwZWxsaW5nOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgdG9nZ2xlQ29udGludW91c1NwZWxs
Q2hlY2tpbmc6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBpc0dyYW1tYXJDaGVja2luZ0VuYWJs
ZWRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldEdyYW1tYXJDaGVja2luZ0VuYWJsZWQ6XSk6
CisgICAgICAgICgtW1dLV2ViVmlldyB0b2dnbGVHcmFtbWFyQ2hlY2tpbmc6XSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyB0b2dnbGVBdXRvbWF0aWNTcGVsbGluZ0NvcnJlY3Rpb246XSk6CisgICAg
ICAgICgtW1dLV2ViVmlldyBvcmRlckZyb250U3Vic3RpdHV0aW9uc1BhbmVsOl0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgdG9nZ2xlU21hcnRJbnNlcnREZWxldGU6XSk6CisgICAgICAgICgtW1dL
V2ViVmlldyBpc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZF0pOgorICAgICAgICAo
LVtXS1dlYlZpZXcgc2V0QXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgdG9nZ2xlQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb246XSk6Cisg
ICAgICAgICgtW1dLV2ViVmlldyBpc0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkXSk6
CisgICAgICAgICgtW1dLV2ViVmlldyBzZXRBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxl
ZDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHRvZ2dsZUF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRp
b246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBpc0F1dG9tYXRpY0xpbmtEZXRlY3Rpb25FbmFi
bGVkXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBzZXRBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5h
YmxlZDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHRvZ2dsZUF1dG9tYXRpY0xpbmtEZXRlY3Rp
b246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBpc0F1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVu
YWJsZWRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldEF1dG9tYXRpY1RleHRSZXBsYWNlbWVu
dEVuYWJsZWQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyB0b2dnbGVBdXRvbWF0aWNUZXh0UmVw
bGFjZW1lbnQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyB1cHBlcmNhc2VXb3JkOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgbG93ZXJjYXNlV29yZDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IGNhcGl0YWxpemVXb3JkOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3dhbnRzS2V5RG93bkZv
ckV2ZW50Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgc2Nyb2xsV2hlZWw6XSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyBzd2lwZVdpdGhFdmVudDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1v
dXNlTW92ZWQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBtb3VzZURvd246XSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyBtb3VzZVVwOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgbW91c2VEcmFn
Z2VkOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgbW91c2VFbnRlcmVkOl0pOgorICAgICAgICAo
LVtXS1dlYlZpZXcgbW91c2VFeGl0ZWQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBvdGhlck1v
dXNlRG93bjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG90aGVyTW91c2VEcmFnZ2VkOl0pOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgb3RoZXJNb3VzZVVwOl0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgcmlnaHRNb3VzZURvd246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyByaWdodE1vdXNlRHJh
Z2dlZDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHJpZ2h0TW91c2VVcDpdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IHByZXNzdXJlQ2hhbmdlV2l0aEV2ZW50Ol0pOgorICAgICAgICAoLVtXS1dl
YlZpZXcgYWNjZXB0c0ZpcnN0TW91c2U6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBzaG91bGRE
ZWxheVdpbmRvd09yZGVyaW5nRm9yRXZlbnQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBkb0Nv
bW1hbmRCeVNlbGVjdG9yOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgaW5zZXJ0VGV4dDpdKToK
KyAgICAgICAgKC1bV0tXZWJWaWV3IGluc2VydFRleHQ6cmVwbGFjZW1lbnRSYW5nZTpdKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IGlucHV0Q29udGV4dF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
cGVyZm9ybUtleUVxdWl2YWxlbnQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBrZXlVcDpdKToK
KyAgICAgICAgKC1bV0tXZWJWaWV3IGtleURvd246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBm
bGFnc0NoYW5nZWQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBzZXRNYXJrZWRUZXh0OnNlbGVj
dGVkUmFuZ2U6cmVwbGFjZW1lbnRSYW5nZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHVubWFy
a1RleHRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNlbGVjdGVkUmFuZ2VdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IGhhc01hcmtlZFRleHRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1hcmtl
ZFJhbmdlXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBhdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJv
cG9zZWRSYW5nZTphY3R1YWxSYW5nZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGNoYXJhY3Rl
ckluZGV4Rm9yUG9pbnQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBmaXJzdFJlY3RGb3JDaGFy
YWN0ZXJSYW5nZTphY3R1YWxSYW5nZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNlbGVjdGVk
UmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBtYXJr
ZWRSYW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGhh
c01hcmtlZFRleHRXaXRoQ29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBhdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZTpjb21wbGV0aW9uSGFuZGxlcjpd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlOmNvbXBs
ZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgY2hhcmFjdGVySW5kZXhGb3JQ
b2ludDpjb21wbGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHZhbGlkQXR0
cmlidXRlc0Zvck1hcmtlZFRleHRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGRyYWdnZWRJbWFn
ZTplbmRlZEF0Om9wZXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGRyYWdnaW5nRW50
ZXJlZDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGRyYWdnaW5nVXBkYXRlZDpdKToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IGRyYWdnaW5nRXhpdGVkOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
cHJlcGFyZUZvckRyYWdPcGVyYXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBwZXJmb3Jt
RHJhZ09wZXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9oaXRUZXN0OmRyYWdUeXBl
czpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF93aW5kb3dSZXNpemVNb3VzZUxvY2F0aW9uSXNJ
blZpc2libGVTY3JvbGxlclRodW1iOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgdmlld1dpbGxN
b3ZlVG9XaW5kb3c6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyB2aWV3RGlkTW92ZVRvV2luZG93
XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBkcmF3UmVjdDpdKToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IGlzT3BhcXVlXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBtb3VzZURvd25DYW5Nb3ZlV2lu
ZG93XSk6CisgICAgICAgICgtW1dLV2ViVmlldyB2aWV3RGlkSGlkZV0pOgorICAgICAgICAoLVtX
S1dlYlZpZXcgdmlld0RpZFVuaGlkZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgdmlld0RpZENo
YW5nZUJhY2tpbmdQcm9wZXJ0aWVzXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfYWN0aXZlU3Bh
Y2VEaWRDaGFuZ2U6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBhY2Nlc3NpYmlsaXR5Rm9jdXNl
ZFVJRWxlbWVudF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgYWNjZXNzaWJpbGl0eUlzSWdub3Jl
ZF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgYWNjZXNzaWJpbGl0eUhpdFRlc3Q6XSk6CisgICAg
ICAgICgtW1dLV2ViVmlldyBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6XSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyBoaXRUZXN0Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgY29udmVyc2F0
aW9uSWRlbnRpZmllcl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgcXVpY2tMb29rV2l0aEV2ZW50
Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgYWRkVHJhY2tpbmdSZWN0Om93bmVyOnVzZXJEYXRh
OmFzc3VtZUluc2lkZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9hZGRUcmFja2luZ1JlY3Q6
b3duZXI6dXNlckRhdGE6YXNzdW1lSW5zaWRlOnVzZVRyYWNraW5nTnVtOl0pOgorICAgICAgICAo
LVtXS1dlYlZpZXcgX2FkZFRyYWNraW5nUmVjdHM6b3duZXI6dXNlckRhdGFMaXN0OmFzc3VtZUlu
c2lkZUxpc3Q6dHJhY2tpbmdOdW1zOmNvdW50Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgcmVt
b3ZlVHJhY2tpbmdSZWN0Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3JlbW92ZVRyYWNraW5n
UmVjdHM6Y291bnQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyB2aWV3OnN0cmluZ0ZvclRvb2xU
aXA6cG9pbnQ6dXNlckRhdGE6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBwYXN0ZWJvYXJkQ2hh
bmdlZE93bmVyOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgcGFzdGVib2FyZDpwcm92aWRlRGF0
YUZvclR5cGU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBuYW1lc09mUHJvbWlzZWRGaWxlc0Ry
b3BwZWRBdERlc3RpbmF0aW9uOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgd2FudHNVcGRhdGVM
YXllcl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgdXBkYXRlTGF5ZXJdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IHNldEFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXNdKToK
KyAgICAgICAgKC1bV0tXZWJWaWV3IHNtYXJ0TWFnbmlmeVdpdGhFdmVudDpdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IHNldE1hZ25pZmljYXRpb246Y2VudGVyZWRBdFBvaW50Ol0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgc2V0TWFnbmlmaWNhdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IG1hZ25pZmljYXRpb25dKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNldEFsbG93c01hZ25pZmlj
YXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBhbGxvd3NNYWduaWZpY2F0aW9uXSk6Cisg
ICAgICAgICgtW1dLV2ViVmlldyBtYWduaWZ5V2l0aEV2ZW50Ol0pOgorICAgICAgICAoLVtXS1dl
YlZpZXcgcm90YXRlV2l0aEV2ZW50Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3dlYl9zdXBl
cklucHV0Q29udGV4dF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3dlYl9zdXBlclF1aWNrTG9v
a1dpdGhFdmVudDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF93ZWJfc3VwZXJTd2lwZVdpdGhF
dmVudDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF93ZWJfc3VwZXJNYWduaWZ5V2l0aEV2ZW50
Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3dlYl9zdXBlclNtYXJ0TWFnbmlmeVdpdGhFdmVu
dDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF93ZWJfc3VwZXJSZW1vdmVUcmFja2luZ1JlY3Q6
XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfd2ViX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJpYnV0
ZVZhbHVlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3dlYl9zdXBlckRvQ29tbWFuZEJ5U2Vs
ZWN0b3I6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfd2ViX3N1cGVyUGVyZm9ybUtleUVxdWl2
YWxlbnQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfd2ViX3N1cGVyS2V5RG93bjpdKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF93ZWJfc3VwZXJIaXRUZXN0Ol0pOgorICAgICAgICAoLVtXS1dl
YlZpZXcgX3dlYl9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJl
c3VsdEludGVybmFsOndpdGhUeXBlOnVzZXJEYXRhOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
X3dlYl9wcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uXSk6CisgICAgICAgICgtW1dL
V2ViVmlldyBfd2ViX2NhbmNlbEltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl0pOgorICAgICAgICAo
LVtXS1dlYlZpZXcgX3dlYl9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX3dlYl9kaWRDaGFuZ2VDb250ZW50U2l6ZTpdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF93ZWJfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c10pOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX3dlYl9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5k
b3dzV2l0aEFuaW1hdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF93ZWJfZ2VzdHVyZUV2
ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRF
ZGl0YWJsZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9yZW1vdGVPYmplY3RSZWdpc3RyeV0p
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX2xheW91dE1vZGVdKToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IF9zZXRMYXlvdXRNb2RlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldFZpZXdTY2Fs
ZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9kcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZF0p
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldERyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kOl0p
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX2luc3BlY3RvckF0dGFjaG1lbnRWaWV3XSk6CisgICAg
ICAgICgtW1dLV2ViVmlldyBfc2V0SW5zcGVjdG9yQXR0YWNobWVudFZpZXc6XSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyBfd2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZF0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX3NldFdpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQ6XSk6Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfc2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcjpdKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yXSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyBfc2V0VG9wQ29udGVudEluc2V0Ol0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgX3RvcENvbnRlbnRJbnNldF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3BhZ2VFeHRlbmRl
ZEJhY2tncm91bmRDb2xvcl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2ltbWVkaWF0ZUFjdGlv
bkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0OndpdGhUeXBlOnVzZXJEYXRhOl0p
OgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldEF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudElu
c2V0czpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRl
bnRJbnNldHNdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRNaW5pbXVtTGF5b3V0V2lkdGg6
XSk6CisgICAgICAgICgtW1dLV2ViVmlldyByZXNpemVTdWJ2aWV3c1dpdGhPbGRTaXplOl0pOiBE
ZWxldGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgX2lnbm9yZXNOb25XaGVlbEV2ZW50c10pOiBE
ZWxldGVkLgorICAgICAgICAoLVtXS1dlYlZpZXcgX3NldElnbm9yZXNOb25XaGVlbEV2ZW50czpd
KTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRJbnRyaW5zaWNDb250ZW50U2l6
ZTpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0lu
dGVybmFsLmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAg
ICAoLVtXS1ZpZXcgX3dlYl9zdXBlcklucHV0Q29udGV4dF0pOgorICAgICAgICAoLVtXS1ZpZXcg
X3dlYl9zdXBlclF1aWNrTG9va1dpdGhFdmVudDpdKToKKyAgICAgICAgKC1bV0tWaWV3IF93ZWJf
c3VwZXJTd2lwZVdpdGhFdmVudDpdKToKKyAgICAgICAgKC1bV0tWaWV3IF93ZWJfc3VwZXJNYWdu
aWZ5V2l0aEV2ZW50Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgX3dlYl9zdXBlclNtYXJ0TWFnbmlm
eVdpdGhFdmVudDpdKToKKyAgICAgICAgKC1bV0tWaWV3IF93ZWJfc3VwZXJSZW1vdmVUcmFja2lu
Z1JlY3Q6XSk6CisgICAgICAgICgtW1dLVmlldyBfd2ViX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJp
YnV0ZVZhbHVlOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX3dlYl9zdXBlckRvQ29tbWFuZEJ5U2Vs
ZWN0b3I6XSk6CisgICAgICAgICgtW1dLVmlldyBfd2ViX3N1cGVyUGVyZm9ybUtleUVxdWl2YWxl
bnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBfd2ViX3N1cGVyS2V5RG93bjpdKToKKyAgICAgICAg
KC1bV0tWaWV3IF93ZWJfc3VwZXJIaXRUZXN0Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgX3dlYl9p
bW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdEludGVybmFs
OndpdGhUeXBlOnVzZXJEYXRhOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX3dlYl9wcmVwYXJlRm9y
SW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uXSk6CisgICAgICAgICgtW1dLVmlldyBfd2ViX2NhbmNl
bEltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl0pOgorICAgICAgICAoLVtXS1ZpZXcgX3dlYl9jb21w
bGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl0pOgorICAgICAgICAoLVtXS1ZpZXcgX3dlYl9k
aWRDaGFuZ2VDb250ZW50U2l6ZTpdKToKKyAgICAgICAgKC1bV0tWaWV3IF93ZWJfZGlzbWlzc0Nv
bnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c10pOgorICAgICAgICAoLVtXS1ZpZXcgX3dlYl9kaXNt
aXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbjpdKToKKyAgICAgICAg
KC1bV0tWaWV3IF93ZWJfZ2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZTpdKToKKyAg
ICAgICAgKC1bV0tWaWV3IF9zdXBlcklucHV0Q29udGV4dF0pOiBEZWxldGVkLgorICAgICAgICAo
LVtXS1ZpZXcgX3N1cGVyUXVpY2tMb29rV2l0aEV2ZW50Ol0pOiBEZWxldGVkLgorICAgICAgICAo
LVtXS1ZpZXcgX3N1cGVyU3dpcGVXaXRoRXZlbnQ6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dL
VmlldyBfc3VwZXJNYWduaWZ5V2l0aEV2ZW50Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1Zp
ZXcgX3N1cGVyU21hcnRNYWduaWZ5V2l0aEV2ZW50Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S1ZpZXcgX3N1cGVyUmVtb3ZlVHJhY2tpbmdSZWN0Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S1ZpZXcgX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOl0pOiBEZWxldGVkLgorICAg
ICAgICAoLVtXS1ZpZXcgX3N1cGVyRG9Db21tYW5kQnlTZWxlY3RvcjpdKTogRGVsZXRlZC4KKyAg
ICAgICAgKC1bV0tWaWV3IF9zdXBlclBlcmZvcm1LZXlFcXVpdmFsZW50Ol0pOiBEZWxldGVkLgor
ICAgICAgICAoLVtXS1ZpZXcgX3N1cGVyS2V5RG93bjpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1b
V0tWaWV3IF9zdXBlckhpdFRlc3Q6XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLVmlldyBfYWRk
Rm9udFBhbmVsT2JzZXJ2ZXJdKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL21h
Yy9XS1ZpZXdJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAgICAgICAg
KFdlYktpdDo6V2ViVmlld0ltcGw6OmhpdFRlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6dXBkYXRlU2VjdXJlSW5wdXRTdGF0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJ
bXBsOjpub3RpZnlJbnB1dENvbnRleHRBYm91dERpc2NhcmRlZENvbXBvc2l0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVjdG9yKToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGls
ZFdpbmRvd3NXaXRoQW5pbWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRp
c21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uRnJvbVZpZXdPbmx5
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnF1aWNrTG9va1dpdGhFdmVudCk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpwcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5p
bWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNhbmNlbEltbWVkaWF0ZUFj
dGlvbkFuaW1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjb21wbGV0ZUlt
bWVkaWF0ZUFjdGlvbkFuaW1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpk
aWRDaGFuZ2VDb250ZW50U2l6ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjphY2Nl
c3NpYmlsaXR5QXR0cmlidXRlVmFsdWUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
cmVtb3ZlVHJhY2tpbmdSZWN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnN3aXBl
V2l0aEV2ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Om1hZ25pZnlXaXRoRXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c21hcnRNYWduaWZ5V2l0aEV2ZW50
KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6Omdlc3R1cmVFdmVudFdhc05vdEhhbmRs
ZWRCeVdlYkNvcmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6ZG9Db21tYW5kQnlT
ZWxlY3Rvcik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjppbnB1dENvbnRleHQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVxdWl2YWxlbnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6a2V5RG93bik6CisgICAgICAgICogVUlQcm9jZXNz
L21hYy9QYWdlQ2xpZW50SW1wbC5tbToKKyAgICAgICAgKFdlYktpdDo6UGFnZUNsaWVudEltcGw6
OnNldERyYWdJbWFnZSk6CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjppbnRyaW5z
aWNDb250ZW50U2l6ZURpZENoYW5nZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OlBhZ2VD
bGllbnRJbXBsOjppbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJl
c3VsdCk6IERlbGV0ZWQuCisgICAgICAgIFBsb3AuCisKIDIwMTUtMTEtMDIgIFlvbmdqdW4gWmhh
bmcgIDx5b25nanVuX3poYW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgb2JqQyBkZWxlZ2F0
ZSBjYWxsYmFjayBmb3Igd2ViUHJvY2Vzc0RpZEJlY29tZVJlc3BvbnNpdmUgYW5kIHdlYlByb2Nl
c3NEaWRCZWNvbWVVbnJlc3BvbnNpdmUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Lm1tCmluZGV4IDVjOWY2YzQuLmJlZWI3NWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC03Miw5ICs3
MiwxMSBAQAogI2ltcG9ydCAiV2ViUHJlZmVyZW5jZXNLZXlzLmgiCiAjaW1wb3J0ICJXZWJQcm9j
ZXNzUG9vbC5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW1wb3J0ICJXZWJWaWV3
SW1wbC5oIgogI2ltcG9ydCAiX1dLRGlhZ25vc3RpY0xvZ2dpbmdEZWxlZ2F0ZS5oIgogI2ltcG9y
dCAiX1dLRmluZERlbGVnYXRlLmgiCiAjaW1wb3J0ICJfV0tGb3JtRGVsZWdhdGUuaCIKKyNpbXBv
cnQgIl9XS0hpdFRlc3RSZXN1bHRJbnRlcm5hbC5oIgogI2ltcG9ydCAiX1dLSW5wdXREZWxlZ2F0
ZS5oIgogI2ltcG9ydCAiX1dLUmVtb3RlT2JqZWN0UmVnaXN0cnlJbnRlcm5hbC5oIgogI2ltcG9y
dCAiX1dLU2Vzc2lvblN0YXRlSW50ZXJuYWwuaCIKQEAgLTE0Myw2ICsxNDUsOSBAQCBlbnVtIGNs
YXNzIER5bmFtaWNWaWV3cG9ydFVwZGF0ZU1vZGUgewogI2lmIFBMQVRGT1JNKE1BQykKICNpbXBv
cnQgIldLVmlld0ludGVybmFsLmgiCiAjaW1wb3J0IDxXZWJDb3JlL0NvbG9yTWFjLmg+CisKK0Bp
bnRlcmZhY2UgV0tXZWJWaWV3ICgpIDxXZWJWaWV3SW1wbERlbGVnYXRlPgorQGVuZAogI2VuZGlm
CiAKIHN0YXRpYyBIYXNoTWFwPFdlYktpdDo6V2ViUGFnZVByb3h5KiwgV0tXZWJWaWV3ICo+JiBw
YWdlVG9WaWV3TWFwKCkKQEAgLTE2MCwxMiArMTY1LDEzIEBAIFdLV2ViVmlldyogZnJvbVdlYlBh
Z2VQcm94eShXZWJLaXQ6OldlYlBhZ2VQcm94eSYgcGFnZSkKICAgICBzdGQ6OnVuaXF1ZV9wdHI8
V2ViS2l0OjpOYXZpZ2F0aW9uU3RhdGU+IF9uYXZpZ2F0aW9uU3RhdGU7CiAgICAgc3RkOjp1bmlx
dWVfcHRyPFdlYktpdDo6VUlEZWxlZ2F0ZT4gX3VpRGVsZWdhdGU7CiAKLSAgICBSZXRhaW5QdHI8
X1dLUmVtb3RlT2JqZWN0UmVnaXN0cnk+IF9yZW1vdGVPYmplY3RSZWdpc3RyeTsKICAgICBfV0tS
ZW5kZXJpbmdQcm9ncmVzc0V2ZW50cyBfb2JzZXJ2ZWRSZW5kZXJpbmdQcm9ncmVzc0V2ZW50czsK
IAogICAgIFdlYktpdDo6V2Vha09iakNQdHI8aWQgPF9XS0lucHV0RGVsZWdhdGU+PiBfaW5wdXRE
ZWxlZ2F0ZTsKIAogI2lmIFBMQVRGT1JNKElPUykKKyAgICBSZXRhaW5QdHI8X1dLUmVtb3RlT2Jq
ZWN0UmVnaXN0cnk+IF9yZW1vdGVPYmplY3RSZWdpc3RyeTsKKwogICAgIFJldGFpblB0cjxXS1Nj
cm9sbFZpZXc+IF9zY3JvbGxWaWV3OwogICAgIFJldGFpblB0cjxXS0NvbnRlbnRWaWV3PiBfY29u
dGVudFZpZXc7CiAKQEAgLTIyNyw4ICsyMzMsNyBAQCBXS1dlYlZpZXcqIGZyb21XZWJQYWdlUHJv
eHkoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UpCiAgICAgVmVjdG9yPHN0ZDo6ZnVuY3Rpb248
dm9pZCAoKT4+IF9zbmFwc2hvdHNEZWZlcnJlZER1cmluZ1Jlc2l6ZTsKICNlbmRpZgogI2lmIFBM
QVRGT1JNKE1BQykKLSAgICBSZXRhaW5QdHI8V0tWaWV3PiBfd2tWaWV3OwotICAgIENHU2l6ZSBf
aW50cmluc2ljQ29udGVudFNpemU7CisgICAgc3RkOjp1bmlxdWVfcHRyPFdlYktpdDo6V2ViVmll
d0ltcGw+IF9pbXBsOwogI2VuZGlmCiB9CiAKQEAgLTMwNyw3ICszMTIsNiBAQCBzdGF0aWMgYm9v
bCBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNrKCkKIAogICAgIFtfY29u
ZmlndXJhdGlvbiBfdmFsaWRhdGVdOwogCi0gICAgQ0dSZWN0IGJvdW5kcyA9IHNlbGYuYm91bmRz
OwogCiAgICAgV2ViS2l0OjpXZWJQcm9jZXNzUG9vbCYgcHJvY2Vzc1Bvb2wgPSAqW19jb25maWd1
cmF0aW9uIHByb2Nlc3NQb29sXS0+X3Byb2Nlc3NQb29sOwogICAgIApAQCAtMzQ2LDYgKzM1MCw3
IEBAIHN0YXRpYyBib29sIHNob3VsZEFsbG93UGljdHVyZUluUGljdHVyZU1lZGlhUGxheWJhY2so
KQogI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1MpCisgICAgQ0dSZWN0IGJvdW5kcyA9IHNlbGYu
Ym91bmRzOwogICAgIF9zY3JvbGxWaWV3ID0gYWRvcHROUyhbW1dLU2Nyb2xsVmlldyBhbGxvY10g
aW5pdFdpdGhGcmFtZTpib3VuZHNdKTsKICAgICBbX3Njcm9sbFZpZXcgc2V0SW50ZXJuYWxEZWxl
Z2F0ZTpzZWxmXTsKICAgICBbX3Njcm9sbFZpZXcgc2V0Qm91bmNlc1pvb206WUVTXTsKQEAgLTM4
MiwxNCArMzg3LDExIEBAIHN0YXRpYyBib29sIHNob3VsZEFsbG93UGljdHVyZUluUGljdHVyZU1l
ZGlhUGxheWJhY2soKQogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgX3drVmlldyA9
IGFkb3B0TlMoW1tXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Ym91bmRzIHByb2Nlc3NQb29s
OnByb2Nlc3NQb29sIGNvbmZpZ3VyYXRpb246V1RGOjptb3ZlKHBhZ2VDb25maWd1cmF0aW9uKSB3
ZWJWaWV3OnNlbGZdKTsKLSAgICBbc2VsZiBhZGRTdWJ2aWV3Ol93a1ZpZXcuZ2V0KCldOwotICAg
IF9wYWdlID0gV2ViS2l0Ojp0b0ltcGwoW193a1ZpZXcgcGFnZVJlZl0pOwotCi0gICAgX2ludHJp
bnNpY0NvbnRlbnRTaXplID0gQ0dTaXplTWFrZShOU1ZpZXdOb0luc3RyaW5zaWNNZXRyaWMsIE5T
Vmlld05vSW5zdHJpbnNpY01ldHJpYyk7CisgICAgX2ltcGwgPSBzdGQ6Om1ha2VfdW5pcXVlPFdl
YktpdDo6V2ViVmlld0ltcGw+KHNlbGYsIHNlbGYsIHByb2Nlc3NQb29sLCBXVEY6Om1vdmUocGFn
ZUNvbmZpZ3VyYXRpb24pKTsKKyAgICBfcGFnZSA9ICZfaW1wbC0+cGFnZSgpOwogCiAjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKLSAgICBbX3drVmlldyBfc2V0
QXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzOllFU107CisgICAgX2ltcGwtPnNldEF1
dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0cyh0cnVlKTsKICNlbmRpZgogI2VuZGlmCiAK
QEAgLTQxNiwxMyArNDE4LDEzIEBAIHN0YXRpYyBib29sIHNob3VsZEFsbG93UGljdHVyZUluUGlj
dHVyZU1lZGlhUGxheWJhY2soKQogCiAtICh2b2lkKWRlYWxsb2MKIHsKKyNpZiBQTEFURk9STShJ
T1MpCiAgICAgaWYgKF9yZW1vdGVPYmplY3RSZWdpc3RyeSkKICAgICAgICAgX3BhZ2UtPnByb2Nl
c3MoKS5wcm9jZXNzUG9vbCgpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3Rl
T2JqZWN0UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgX3BhZ2UtPnBhZ2VJRCgpKTsK
IAogICAgIF9wYWdlLT5jbG9zZSgpOwogCiAgICAgW19yZW1vdGVPYmplY3RSZWdpc3RyeSBfaW52
YWxpZGF0ZV07Ci0jaWYgUExBVEZPUk0oSU9TKQogICAgIFtbX2NvbmZpZ3VyYXRpb24gX2NvbnRl
bnRQcm92aWRlclJlZ2lzdHJ5XSByZW1vdmVQYWdlOipfcGFnZV07CiAgICAgW1tOU05vdGlmaWNh
dGlvbkNlbnRlciBkZWZhdWx0Q2VudGVyXSByZW1vdmVPYnNlcnZlcjpzZWxmXTsKICAgICBbX3Nj
cm9sbFZpZXcgc2V0SW50ZXJuYWxEZWxlZ2F0ZTpuaWxdOwpAQCAtNjk2LDcgKzY5OCw3IEBAIHN0
YXRpYyBXS0Vycm9yQ29kZSBjYWxsYmFja0Vycm9yQ29kZShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6
RXJyb3IgZXJyb3IpCiAtIChCT09MKWFsbG93c0xpbmtQcmV2aWV3CiB7CiAjaWYgUExBVEZPUk0o
TUFDKQotICAgIHJldHVybiBbX3drVmlldyBhbGxvd3NMaW5rUHJldmlld107CisgICAgcmV0dXJu
IF9pbXBsLT5hbGxvd3NMaW5rUHJldmlldygpOwogI2VsaWYgUExBVEZPUk0oSU9TKQogICAgIHJl
dHVybiBfYWxsb3dzTGlua1ByZXZpZXc7CiAjZW5kaWYKQEAgLTcwNSw3ICs3MDcsNyBAQCBzdGF0
aWMgV0tFcnJvckNvZGUgY2FsbGJhY2tFcnJvckNvZGUoV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVy
cm9yIGVycm9yKQogLSAodm9pZClzZXRBbGxvd3NMaW5rUHJldmlldzooQk9PTClhbGxvd3NMaW5r
UHJldmlldwogewogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBbX3drVmlldyBzZXRBbGxvd3NMaW5r
UHJldmlldzphbGxvd3NMaW5rUHJldmlld107CisgICAgX2ltcGwtPnNldEFsbG93c0xpbmtQcmV2
aWV3KGFsbG93c0xpbmtQcmV2aWV3KTsKICAgICByZXR1cm47CiAjZWxpZiBQTEFURk9STShJT1Mp
CiAgICAgaWYgKF9hbGxvd3NMaW5rUHJldmlldyA9PSBhbGxvd3NMaW5rUHJldmlldykKQEAgLTE4
NzYsMTA4ICsxODc4LDg3MCBAQCBzdGF0aWMgV2ViQ29yZTo6RmxvYXRQb2ludCBjb25zdHJhaW5D
b250ZW50T2Zmc2V0KFdlYkNvcmU6OkZsb2F0UG9pbnQgY29udGVudE9mZgogCiAjaWYgUExBVEZP
Uk0oTUFDKQogCistIChCT09MKWFjY2VwdHNGaXJzdFJlc3BvbmRlcgoreworICAgIHJldHVybiBf
aW1wbC0+YWNjZXB0c0ZpcnN0UmVzcG9uZGVyKCk7Cit9CisKIC0gKEJPT0wpYmVjb21lRmlyc3RS
ZXNwb25kZXIKIHsKLSAgICByZXR1cm4gW1tzZWxmIHdpbmRvd10gbWFrZUZpcnN0UmVzcG9uZGVy
OiBfd2tWaWV3LmdldCgpXTsKKyAgICByZXR1cm4gX2ltcGwtPmJlY29tZUZpcnN0UmVzcG9uZGVy
KCk7CiB9CiAKLS0gKEJPT0wpYWNjZXB0c0ZpcnN0UmVzcG9uZGVyCistIChCT09MKXJlc2lnbkZp
cnN0UmVzcG9uZGVyCit7CisgICAgcmV0dXJuIF9pbXBsLT5yZXNpZ25GaXJzdFJlc3BvbmRlcigp
OworfQorCistICh2b2lkKXZpZXdXaWxsU3RhcnRMaXZlUmVzaXplCit7CisgICAgX2ltcGwtPnZp
ZXdXaWxsU3RhcnRMaXZlUmVzaXplKCk7Cit9CisKKy0gKHZvaWQpdmlld0RpZEVuZExpdmVSZXNp
emUKK3sKKyAgICBfaW1wbC0+dmlld0RpZEVuZExpdmVSZXNpemUoKTsKK30KKworLSAoQk9PTClp
c0ZsaXBwZWQKK3sKKyAgICByZXR1cm4gWUVTOworfQorCistIChOU1NpemUpaW50cmluc2ljQ29u
dGVudFNpemUKK3sKKyAgICByZXR1cm4gTlNTaXplRnJvbUNHU2l6ZShfaW1wbC0+aW50cmluc2lj
Q29udGVudFNpemUoKSk7Cit9CisKKy0gKHZvaWQpcHJlcGFyZUNvbnRlbnRJblJlY3Q6KE5TUmVj
dClyZWN0Cit7CisgICAgX2ltcGwtPnByZXBhcmVDb250ZW50SW5SZWN0KE5TUmVjdFRvQ0dSZWN0
KHJlY3QpKTsKK30KKworLSAodm9pZClzZXRGcmFtZVNpemU6KE5TU2l6ZSlzaXplCit7CisgICAg
W3N1cGVyIHNldEZyYW1lU2l6ZTpzaXplXTsKKyAgICBfaW1wbC0+c2V0RnJhbWVTaXplKE5TU2l6
ZVRvQ0dTaXplKHNpemUpKTsKK30KKworLSAodm9pZClyZW5ld0dTdGF0ZQoreworICAgIF9pbXBs
LT5yZW5ld0dTdGF0ZSgpOworICAgIFtzdXBlciByZW5ld0dTdGF0ZV07Cit9CisKKyNkZWZpbmUg
V0VCQ09SRV9DT01NQU5EKGNvbW1hbmQpIC0gKHZvaWQpY29tbWFuZDooaWQpc2VuZGVyIHsgX2lt
cGwtPmV4ZWN1dGVFZGl0Q29tbWFuZEZvclNlbGVjdG9yKF9jbWQpOyB9CisKK1dFQkNPUkVfQ09N
TUFORChhbGlnbkNlbnRlcikKK1dFQkNPUkVfQ09NTUFORChhbGlnbkp1c3RpZmllZCkKK1dFQkNP
UkVfQ09NTUFORChhbGlnbkxlZnQpCitXRUJDT1JFX0NPTU1BTkQoYWxpZ25SaWdodCkKK1dFQkNP
UkVfQ09NTUFORChjb3B5KQorV0VCQ09SRV9DT01NQU5EKGN1dCkKK1dFQkNPUkVfQ09NTUFORChk
ZWxldGUpCitXRUJDT1JFX0NPTU1BTkQoZGVsZXRlQmFja3dhcmQpCitXRUJDT1JFX0NPTU1BTkQo
ZGVsZXRlQmFja3dhcmRCeURlY29tcG9zaW5nUHJldmlvdXNDaGFyYWN0ZXIpCitXRUJDT1JFX0NP
TU1BTkQoZGVsZXRlRm9yd2FyZCkKK1dFQkNPUkVfQ09NTUFORChkZWxldGVUb0JlZ2lubmluZ09m
TGluZSkKK1dFQkNPUkVfQ09NTUFORChkZWxldGVUb0JlZ2lubmluZ09mUGFyYWdyYXBoKQorV0VC
Q09SRV9DT01NQU5EKGRlbGV0ZVRvRW5kT2ZMaW5lKQorV0VCQ09SRV9DT01NQU5EKGRlbGV0ZVRv
RW5kT2ZQYXJhZ3JhcGgpCitXRUJDT1JFX0NPTU1BTkQoZGVsZXRlVG9NYXJrKQorV0VCQ09SRV9D
T01NQU5EKGRlbGV0ZVdvcmRCYWNrd2FyZCkKK1dFQkNPUkVfQ09NTUFORChkZWxldGVXb3JkRm9y
d2FyZCkKK1dFQkNPUkVfQ09NTUFORChpZ25vcmVTcGVsbGluZykKK1dFQkNPUkVfQ09NTUFORChp
bmRlbnQpCitXRUJDT1JFX0NPTU1BTkQoaW5zZXJ0QmFja3RhYikKK1dFQkNPUkVfQ09NTUFORChp
bnNlcnRMaW5lQnJlYWspCitXRUJDT1JFX0NPTU1BTkQoaW5zZXJ0TmV3bGluZSkKK1dFQkNPUkVf
Q09NTUFORChpbnNlcnROZXdsaW5lSWdub3JpbmdGaWVsZEVkaXRvcikKK1dFQkNPUkVfQ09NTUFO
RChpbnNlcnRQYXJhZ3JhcGhTZXBhcmF0b3IpCitXRUJDT1JFX0NPTU1BTkQoaW5zZXJ0VGFiKQor
V0VCQ09SRV9DT01NQU5EKGluc2VydFRhYklnbm9yaW5nRmllbGRFZGl0b3IpCitXRUJDT1JFX0NP
TU1BTkQobWFrZVRleHRXcml0aW5nRGlyZWN0aW9uTGVmdFRvUmlnaHQpCitXRUJDT1JFX0NPTU1B
TkQobWFrZVRleHRXcml0aW5nRGlyZWN0aW9uTmF0dXJhbCkKK1dFQkNPUkVfQ09NTUFORChtYWtl
VGV4dFdyaXRpbmdEaXJlY3Rpb25SaWdodFRvTGVmdCkKK1dFQkNPUkVfQ09NTUFORChtb3ZlQmFj
a3dhcmQpCitXRUJDT1JFX0NPTU1BTkQobW92ZUJhY2t3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uKQor
V0VCQ09SRV9DT01NQU5EKG1vdmVEb3duKQorV0VCQ09SRV9DT01NQU5EKG1vdmVEb3duQW5kTW9k
aWZ5U2VsZWN0aW9uKQorV0VCQ09SRV9DT01NQU5EKG1vdmVGb3J3YXJkKQorV0VCQ09SRV9DT01N
QU5EKG1vdmVGb3J3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uKQorV0VCQ09SRV9DT01NQU5EKG1vdmVM
ZWZ0KQorV0VCQ09SRV9DT01NQU5EKG1vdmVMZWZ0QW5kTW9kaWZ5U2VsZWN0aW9uKQorV0VCQ09S
RV9DT01NQU5EKG1vdmVQYXJhZ3JhcGhCYWNrd2FyZEFuZE1vZGlmeVNlbGVjdGlvbikKK1dFQkNP
UkVfQ09NTUFORChtb3ZlUGFyYWdyYXBoRm9yd2FyZEFuZE1vZGlmeVNlbGVjdGlvbikKK1dFQkNP
UkVfQ09NTUFORChtb3ZlUmlnaHQpCitXRUJDT1JFX0NPTU1BTkQobW92ZVJpZ2h0QW5kTW9kaWZ5
U2VsZWN0aW9uKQorV0VCQ09SRV9DT01NQU5EKG1vdmVUb0JlZ2lubmluZ09mRG9jdW1lbnQpCitX
RUJDT1JFX0NPTU1BTkQobW92ZVRvQmVnaW5uaW5nT2ZEb2N1bWVudEFuZE1vZGlmeVNlbGVjdGlv
bikKK1dFQkNPUkVfQ09NTUFORChtb3ZlVG9CZWdpbm5pbmdPZkxpbmUpCitXRUJDT1JFX0NPTU1B
TkQobW92ZVRvQmVnaW5uaW5nT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9uKQorV0VCQ09SRV9DT01N
QU5EKG1vdmVUb0JlZ2lubmluZ09mUGFyYWdyYXBoKQorV0VCQ09SRV9DT01NQU5EKG1vdmVUb0Jl
Z2lubmluZ09mUGFyYWdyYXBoQW5kTW9kaWZ5U2VsZWN0aW9uKQorV0VCQ09SRV9DT01NQU5EKG1v
dmVUb0JlZ2lubmluZ09mU2VudGVuY2UpCitXRUJDT1JFX0NPTU1BTkQobW92ZVRvQmVnaW5uaW5n
T2ZTZW50ZW5jZUFuZE1vZGlmeVNlbGVjdGlvbikKK1dFQkNPUkVfQ09NTUFORChtb3ZlVG9FbmRP
ZkRvY3VtZW50KQorV0VCQ09SRV9DT01NQU5EKG1vdmVUb0VuZE9mRG9jdW1lbnRBbmRNb2RpZnlT
ZWxlY3Rpb24pCitXRUJDT1JFX0NPTU1BTkQobW92ZVRvRW5kT2ZMaW5lKQorV0VCQ09SRV9DT01N
QU5EKG1vdmVUb0VuZE9mTGluZUFuZE1vZGlmeVNlbGVjdGlvbikKK1dFQkNPUkVfQ09NTUFORCht
b3ZlVG9FbmRPZlBhcmFncmFwaCkKK1dFQkNPUkVfQ09NTUFORChtb3ZlVG9FbmRPZlBhcmFncmFw
aEFuZE1vZGlmeVNlbGVjdGlvbikKK1dFQkNPUkVfQ09NTUFORChtb3ZlVG9FbmRPZlNlbnRlbmNl
KQorV0VCQ09SRV9DT01NQU5EKG1vdmVUb0VuZE9mU2VudGVuY2VBbmRNb2RpZnlTZWxlY3Rpb24p
CitXRUJDT1JFX0NPTU1BTkQobW92ZVRvTGVmdEVuZE9mTGluZSkKK1dFQkNPUkVfQ09NTUFORCht
b3ZlVG9MZWZ0RW5kT2ZMaW5lQW5kTW9kaWZ5U2VsZWN0aW9uKQorV0VCQ09SRV9DT01NQU5EKG1v
dmVUb1JpZ2h0RW5kT2ZMaW5lKQorV0VCQ09SRV9DT01NQU5EKG1vdmVUb1JpZ2h0RW5kT2ZMaW5l
QW5kTW9kaWZ5U2VsZWN0aW9uKQorV0VCQ09SRV9DT01NQU5EKG1vdmVVcCkKK1dFQkNPUkVfQ09N
TUFORChtb3ZlVXBBbmRNb2RpZnlTZWxlY3Rpb24pCitXRUJDT1JFX0NPTU1BTkQobW92ZVdvcmRC
YWNrd2FyZCkKK1dFQkNPUkVfQ09NTUFORChtb3ZlV29yZEJhY2t3YXJkQW5kTW9kaWZ5U2VsZWN0
aW9uKQorV0VCQ09SRV9DT01NQU5EKG1vdmVXb3JkRm9yd2FyZCkKK1dFQkNPUkVfQ09NTUFORCht
b3ZlV29yZEZvcndhcmRBbmRNb2RpZnlTZWxlY3Rpb24pCitXRUJDT1JFX0NPTU1BTkQobW92ZVdv
cmRMZWZ0KQorV0VCQ09SRV9DT01NQU5EKG1vdmVXb3JkTGVmdEFuZE1vZGlmeVNlbGVjdGlvbikK
K1dFQkNPUkVfQ09NTUFORChtb3ZlV29yZFJpZ2h0KQorV0VCQ09SRV9DT01NQU5EKG1vdmVXb3Jk
UmlnaHRBbmRNb2RpZnlTZWxlY3Rpb24pCitXRUJDT1JFX0NPTU1BTkQob3V0ZGVudCkKK1dFQkNP
UkVfQ09NTUFORChwYWdlRG93bikKK1dFQkNPUkVfQ09NTUFORChwYWdlRG93bkFuZE1vZGlmeVNl
bGVjdGlvbikKK1dFQkNPUkVfQ09NTUFORChwYWdlVXApCitXRUJDT1JFX0NPTU1BTkQocGFnZVVw
QW5kTW9kaWZ5U2VsZWN0aW9uKQorV0VCQ09SRV9DT01NQU5EKHBhc3RlKQorV0VCQ09SRV9DT01N
QU5EKHBhc3RlQXNQbGFpblRleHQpCitXRUJDT1JFX0NPTU1BTkQoc2Nyb2xsUGFnZURvd24pCitX
RUJDT1JFX0NPTU1BTkQoc2Nyb2xsUGFnZVVwKQorV0VCQ09SRV9DT01NQU5EKHNjcm9sbExpbmVE
b3duKQorV0VCQ09SRV9DT01NQU5EKHNjcm9sbExpbmVVcCkKK1dFQkNPUkVfQ09NTUFORChzY3Jv
bGxUb0JlZ2lubmluZ09mRG9jdW1lbnQpCitXRUJDT1JFX0NPTU1BTkQoc2Nyb2xsVG9FbmRPZkRv
Y3VtZW50KQorV0VCQ09SRV9DT01NQU5EKHNlbGVjdEFsbCkKK1dFQkNPUkVfQ09NTUFORChzZWxl
Y3RMaW5lKQorV0VCQ09SRV9DT01NQU5EKHNlbGVjdFBhcmFncmFwaCkKK1dFQkNPUkVfQ09NTUFO
RChzZWxlY3RTZW50ZW5jZSkKK1dFQkNPUkVfQ09NTUFORChzZWxlY3RUb01hcmspCitXRUJDT1JF
X0NPTU1BTkQoc2VsZWN0V29yZCkKK1dFQkNPUkVfQ09NTUFORChzZXRNYXJrKQorV0VCQ09SRV9D
T01NQU5EKHN1YnNjcmlwdCkKK1dFQkNPUkVfQ09NTUFORChzdXBlcnNjcmlwdCkKK1dFQkNPUkVf
Q09NTUFORChzd2FwV2l0aE1hcmspCitXRUJDT1JFX0NPTU1BTkQodGFrZUZpbmRTdHJpbmdGcm9t
U2VsZWN0aW9uKQorV0VCQ09SRV9DT01NQU5EKHRyYW5zcG9zZSkKK1dFQkNPUkVfQ09NTUFORCh1
bmRlcmxpbmUpCitXRUJDT1JFX0NPTU1BTkQodW5zY3JpcHQpCitXRUJDT1JFX0NPTU1BTkQoeWFu
aykKK1dFQkNPUkVfQ09NTUFORCh5YW5rQW5kU2VsZWN0KQorCisjdW5kZWYgV0VCQ09SRV9DT01N
QU5ECisKKy0gKEJPT0wpd3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAq
KXBhc3RlYm9hcmQgdHlwZXM6KE5TQXJyYXkgKil0eXBlcworeworICAgIHJldHVybiBfaW1wbC0+
d3JpdGVTZWxlY3Rpb25Ub1Bhc3RlYm9hcmQocGFzdGVib2FyZCwgdHlwZXMpOworfQorCistICh2
b2lkKWNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFyZWE6KGlkKXNlbmRlcgoreworICAgIF9pbXBs
LT5jZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhKCk7Cit9CisKKy0gKGlkKXZhbGlkUmVxdWVz
dG9yRm9yU2VuZFR5cGU6KE5TU3RyaW5nICopc2VuZFR5cGUgcmV0dXJuVHlwZTooTlNTdHJpbmcg
KilyZXR1cm5UeXBlCit7CisgICAgcmV0dXJuIF9pbXBsLT52YWxpZFJlcXVlc3RvckZvclNlbmRB
bmRSZXR1cm5UeXBlcyhzZW5kVHlwZSwgcmV0dXJuVHlwZSk7Cit9CisKKy0gKEJPT0wpcmVhZFNl
bGVjdGlvbkZyb21QYXN0ZWJvYXJkOihOU1Bhc3RlYm9hcmQgKilwYXN0ZWJvYXJkCit7CisgICAg
cmV0dXJuIF9pbXBsLT5yZWFkU2VsZWN0aW9uRnJvbVBhc3RlYm9hcmQocGFzdGVib2FyZCk7Cit9
CisKKy0gKHZvaWQpY2hhbmdlRm9udDooaWQpc2VuZGVyCit7CisgICAgX2ltcGwtPmNoYW5nZUZv
bnRGcm9tRm9udFBhbmVsKCk7Cit9CisKKy0gKEJPT0wpdmFsaWRhdGVVc2VySW50ZXJmYWNlSXRl
bTooaWQgPE5TVmFsaWRhdGVkVXNlckludGVyZmFjZUl0ZW0+KWl0ZW0KK3sKKyAgICByZXR1cm4g
X2ltcGwtPnZhbGlkYXRlVXNlckludGVyZmFjZUl0ZW0oaXRlbSk7Cit9CisKKy0gKElCQWN0aW9u
KXN0YXJ0U3BlYWtpbmc6KGlkKXNlbmRlcgoreworICAgIF9pbXBsLT5zdGFydFNwZWFraW5nKCk7
Cit9CisKKy0gKElCQWN0aW9uKXN0b3BTcGVha2luZzooaWQpc2VuZGVyCit7CisgICAgX2ltcGwt
PnN0b3BTcGVha2luZyhzZW5kZXIpOworfQorCistIChJQkFjdGlvbilzaG93R3Vlc3NQYW5lbDoo
aWQpc2VuZGVyCit7CisgICAgX2ltcGwtPnNob3dHdWVzc1BhbmVsKHNlbmRlcik7Cit9CisKKy0g
KElCQWN0aW9uKWNoZWNrU3BlbGxpbmc6KGlkKXNlbmRlcgoreworICAgIF9pbXBsLT5jaGVja1Nw
ZWxsaW5nKCk7Cit9CisKKy0gKHZvaWQpY2hhbmdlU3BlbGxpbmc6KGlkKXNlbmRlcgoreworICAg
IF9pbXBsLT5jaGFuZ2VTcGVsbGluZyhzZW5kZXIpOworfQorCistIChJQkFjdGlvbil0b2dnbGVD
b250aW51b3VzU3BlbGxDaGVja2luZzooaWQpc2VuZGVyCit7CisgICAgX2ltcGwtPnRvZ2dsZUNv
bnRpbnVvdXNTcGVsbENoZWNraW5nKCk7Cit9CisKKy0gKEJPT0wpaXNHcmFtbWFyQ2hlY2tpbmdF
bmFibGVkCit7CisgICAgcmV0dXJuIF9pbXBsLT5pc0dyYW1tYXJDaGVja2luZ0VuYWJsZWQoKTsK
K30KKworLSAodm9pZClzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkOihCT09MKWZsYWcKK3sKKyAg
ICBfaW1wbC0+c2V0R3JhbW1hckNoZWNraW5nRW5hYmxlZChmbGFnKTsKK30KKworLSAoSUJBY3Rp
b24pdG9nZ2xlR3JhbW1hckNoZWNraW5nOihpZClzZW5kZXIKK3sKKyAgICBfaW1wbC0+dG9nZ2xl
R3JhbW1hckNoZWNraW5nKCk7Cit9CisKKy0gKElCQWN0aW9uKXRvZ2dsZUF1dG9tYXRpY1NwZWxs
aW5nQ29ycmVjdGlvbjooaWQpc2VuZGVyCit7CisgICAgX2ltcGwtPnRvZ2dsZUF1dG9tYXRpY1Nw
ZWxsaW5nQ29ycmVjdGlvbigpOworfQorCistICh2b2lkKW9yZGVyRnJvbnRTdWJzdGl0dXRpb25z
UGFuZWw6KGlkKXNlbmRlcgoreworICAgIF9pbXBsLT5vcmRlckZyb250U3Vic3RpdHV0aW9uc1Bh
bmVsKHNlbmRlcik7Cit9CisKKy0gKElCQWN0aW9uKXRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlOihp
ZClzZW5kZXIKK3sKKyAgICBfaW1wbC0+dG9nZ2xlU21hcnRJbnNlcnREZWxldGUoKTsKK30KKwor
LSAoQk9PTClpc0F1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZAoreworICAgIHJldHVy
biBfaW1wbC0+aXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQoKTsKK30KKworLSAo
dm9pZClzZXRBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQ6KEJPT0wpZmxhZworewor
ICAgIF9pbXBsLT5zZXRBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQoZmxhZyk7Cit9
CisKKy0gKHZvaWQpdG9nZ2xlQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb246KGlkKXNlbmRlcgor
eworICAgIF9pbXBsLT50b2dnbGVBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbigpOworfQorCist
IChCT09MKWlzQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQKK3sKKyAgICByZXR1cm4g
X2ltcGwtPmlzQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQoKTsKK30KKworLSAodm9p
ZClzZXRBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZDooQk9PTClmbGFnCit7CisgICAg
X2ltcGwtPnNldEF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkKGZsYWcpOworfQorCist
ICh2b2lkKXRvZ2dsZUF1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb246KGlkKXNlbmRlcgoreworICAg
IF9pbXBsLT50b2dnbGVBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uKCk7Cit9CisKKy0gKEJPT0wp
aXNBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZAoreworICAgIHJldHVybiBfaW1wbC0+aXNB
dXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZCgpOworfQorCistICh2b2lkKXNldEF1dG9tYXRp
Y0xpbmtEZXRlY3Rpb25FbmFibGVkOihCT09MKWZsYWcKK3sKKyAgICBfaW1wbC0+c2V0QXV0b21h
dGljTGlua0RldGVjdGlvbkVuYWJsZWQoZmxhZyk7Cit9CisKKy0gKHZvaWQpdG9nZ2xlQXV0b21h
dGljTGlua0RldGVjdGlvbjooaWQpc2VuZGVyCit7CisgICAgX2ltcGwtPnRvZ2dsZUF1dG9tYXRp
Y0xpbmtEZXRlY3Rpb24oKTsKK30KKworLSAoQk9PTClpc0F1dG9tYXRpY1RleHRSZXBsYWNlbWVu
dEVuYWJsZWQKK3sKKyAgICByZXR1cm4gX2ltcGwtPmlzQXV0b21hdGljVGV4dFJlcGxhY2VtZW50
RW5hYmxlZCgpOworfQorCistICh2b2lkKXNldEF1dG9tYXRpY1RleHRSZXBsYWNlbWVudEVuYWJs
ZWQ6KEJPT0wpZmxhZworeworICAgIF9pbXBsLT5zZXRBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRF
bmFibGVkKGZsYWcpOworfQorCistICh2b2lkKXRvZ2dsZUF1dG9tYXRpY1RleHRSZXBsYWNlbWVu
dDooaWQpc2VuZGVyCit7CisgICAgX2ltcGwtPnRvZ2dsZUF1dG9tYXRpY1RleHRSZXBsYWNlbWVu
dCgpOworfQorCistICh2b2lkKXVwcGVyY2FzZVdvcmQ6KGlkKXNlbmRlcgoreworICAgIF9pbXBs
LT51cHBlcmNhc2VXb3JkKCk7Cit9CisKKy0gKHZvaWQpbG93ZXJjYXNlV29yZDooaWQpc2VuZGVy
Cit7CisgICAgX2ltcGwtPmxvd2VyY2FzZVdvcmQoKTsKK30KKworLSAodm9pZCljYXBpdGFsaXpl
V29yZDooaWQpc2VuZGVyCit7CisgICAgX2ltcGwtPmNhcGl0YWxpemVXb3JkKCk7Cit9CisKKy0g
KEJPT0wpX3dhbnRzS2V5RG93bkZvckV2ZW50OihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICByZXR1
cm4gX2ltcGwtPndhbnRzS2V5RG93bkZvckV2ZW50KGV2ZW50KTsKK30KKworLSAodm9pZClzY3Jv
bGxXaGVlbDooTlNFdmVudCAqKWV2ZW50Cit7CisgICAgX2ltcGwtPnNjcm9sbFdoZWVsKGV2ZW50
KTsKK30KKworLSAodm9pZClzd2lwZVdpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50Cit7CisgICAg
X2ltcGwtPnN3aXBlV2l0aEV2ZW50KGV2ZW50KTsKK30KKworLSAodm9pZCltb3VzZU1vdmVkOihO
U0V2ZW50ICopZXZlbnQKK3sKKyAgICBfaW1wbC0+bW91c2VNb3ZlZChldmVudCk7Cit9CisKKy0g
KHZvaWQpbW91c2VEb3duOihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICBfaW1wbC0+bW91c2VEb3du
KGV2ZW50KTsKK30KKworLSAodm9pZCltb3VzZVVwOihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICBf
aW1wbC0+bW91c2VVcChldmVudCk7Cit9CisKKy0gKHZvaWQpbW91c2VEcmFnZ2VkOihOU0V2ZW50
ICopZXZlbnQKK3sKKyAgICBfaW1wbC0+bW91c2VEcmFnZ2VkKGV2ZW50KTsKK30KKworLSAodm9p
ZCltb3VzZUVudGVyZWQ6KE5TRXZlbnQgKilldmVudAoreworICAgIF9pbXBsLT5tb3VzZUVudGVy
ZWQoZXZlbnQpOworfQorCistICh2b2lkKW1vdXNlRXhpdGVkOihOU0V2ZW50ICopZXZlbnQKK3sK
KyAgICBfaW1wbC0+bW91c2VFeGl0ZWQoZXZlbnQpOworfQorCistICh2b2lkKW90aGVyTW91c2VE
b3duOihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICBfaW1wbC0+b3RoZXJNb3VzZURvd24oZXZlbnQp
OworfQorCistICh2b2lkKW90aGVyTW91c2VEcmFnZ2VkOihOU0V2ZW50ICopZXZlbnQKK3sKKyAg
ICBfaW1wbC0+b3RoZXJNb3VzZURyYWdnZWQoZXZlbnQpOworfQorCistICh2b2lkKW90aGVyTW91
c2VVcDooTlNFdmVudCAqKWV2ZW50Cit7CisgICAgX2ltcGwtPm90aGVyTW91c2VVcChldmVudCk7
Cit9CisKKy0gKHZvaWQpcmlnaHRNb3VzZURvd246KE5TRXZlbnQgKilldmVudAoreworICAgIF9p
bXBsLT5yaWdodE1vdXNlRG93bihldmVudCk7Cit9CisKKy0gKHZvaWQpcmlnaHRNb3VzZURyYWdn
ZWQ6KE5TRXZlbnQgKilldmVudAoreworICAgIF9pbXBsLT5yaWdodE1vdXNlRHJhZ2dlZChldmVu
dCk7Cit9CisKKy0gKHZvaWQpcmlnaHRNb3VzZVVwOihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICBf
aW1wbC0+cmlnaHRNb3VzZVVwKGV2ZW50KTsKK30KKworLSAodm9pZClwcmVzc3VyZUNoYW5nZVdp
dGhFdmVudDooTlNFdmVudCAqKWV2ZW50Cit7CisgICAgX2ltcGwtPnByZXNzdXJlQ2hhbmdlV2l0
aEV2ZW50KGV2ZW50KTsKK30KKworLSAoQk9PTClhY2NlcHRzRmlyc3RNb3VzZTooTlNFdmVudCAq
KWV2ZW50Cit7CisgICAgcmV0dXJuIF9pbXBsLT5hY2NlcHRzRmlyc3RNb3VzZShldmVudCk7Cit9
CisKKy0gKEJPT0wpc2hvdWxkRGVsYXlXaW5kb3dPcmRlcmluZ0ZvckV2ZW50OihOU0V2ZW50ICop
ZXZlbnQKK3sKKyAgICByZXR1cm4gX2ltcGwtPnNob3VsZERlbGF5V2luZG93T3JkZXJpbmdGb3JF
dmVudChldmVudCk7Cit9CisKKy0gKHZvaWQpZG9Db21tYW5kQnlTZWxlY3RvcjooU0VMKXNlbGVj
dG9yCit7CisgICAgX2ltcGwtPmRvQ29tbWFuZEJ5U2VsZWN0b3Ioc2VsZWN0b3IpOworfQorCist
ICh2b2lkKWluc2VydFRleHQ6KGlkKXN0cmluZworeworICAgIF9pbXBsLT5pbnNlcnRUZXh0KHN0
cmluZyk7Cit9CisKKy0gKHZvaWQpaW5zZXJ0VGV4dDooaWQpc3RyaW5nIHJlcGxhY2VtZW50UmFu
Z2U6KE5TUmFuZ2UpcmVwbGFjZW1lbnRSYW5nZQoreworICAgIF9pbXBsLT5pbnNlcnRUZXh0KHN0
cmluZywgcmVwbGFjZW1lbnRSYW5nZSk7Cit9CisKKy0gKE5TVGV4dElucHV0Q29udGV4dCAqKWlu
cHV0Q29udGV4dAoreworICAgIHJldHVybiBfaW1wbC0+aW5wdXRDb250ZXh0KCk7Cit9CisKKy0g
KEJPT0wpcGVyZm9ybUtleUVxdWl2YWxlbnQ6KE5TRXZlbnQgKilldmVudAoreworICAgIHJldHVy
biBfaW1wbC0+cGVyZm9ybUtleUVxdWl2YWxlbnQoZXZlbnQpOworfQorCistICh2b2lkKWtleVVw
OihOU0V2ZW50ICopdGhlRXZlbnQKK3sKKyAgICBfaW1wbC0+a2V5VXAodGhlRXZlbnQpOworfQor
CistICh2b2lkKWtleURvd246KE5TRXZlbnQgKil0aGVFdmVudAoreworICAgIF9pbXBsLT5rZXlE
b3duKHRoZUV2ZW50KTsKK30KKworLSAodm9pZClmbGFnc0NoYW5nZWQ6KE5TRXZlbnQgKil0aGVF
dmVudAoreworICAgIF9pbXBsLT5mbGFnc0NoYW5nZWQodGhlRXZlbnQpOworfQorCistICh2b2lk
KXNldE1hcmtlZFRleHQ6KGlkKXN0cmluZyBzZWxlY3RlZFJhbmdlOihOU1JhbmdlKW5ld1NlbGVj
dGVkUmFuZ2UgcmVwbGFjZW1lbnRSYW5nZTooTlNSYW5nZSlyZXBsYWNlbWVudFJhbmdlCit7Cisg
ICAgX2ltcGwtPnNldE1hcmtlZFRleHQoc3RyaW5nLCBuZXdTZWxlY3RlZFJhbmdlLCByZXBsYWNl
bWVudFJhbmdlKTsKK30KKworLSAodm9pZCl1bm1hcmtUZXh0Cit7CisgICAgX2ltcGwtPnVubWFy
a1RleHQoKTsKK30KKworLSAoTlNSYW5nZSlzZWxlY3RlZFJhbmdlCit7CisgICAgcmV0dXJuIF9p
bXBsLT5zZWxlY3RlZFJhbmdlKCk7Cit9CisKKy0gKEJPT0wpaGFzTWFya2VkVGV4dAoreworICAg
IHJldHVybiBfaW1wbC0+aGFzTWFya2VkVGV4dCgpOworfQorCistIChOU1JhbmdlKW1hcmtlZFJh
bmdlCit7CisgICAgcmV0dXJuIF9pbXBsLT5tYXJrZWRSYW5nZSgpOworfQorCistIChOU0F0dHJp
YnV0ZWRTdHJpbmcgKilhdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZTooTlNSYW5n
ZSluc1JhbmdlIGFjdHVhbFJhbmdlOihOU1JhbmdlUG9pbnRlcilhY3R1YWxSYW5nZQoreworICAg
IHJldHVybiBfaW1wbC0+YXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2UobnNSYW5n
ZSwgYWN0dWFsUmFuZ2UpOworfQorCistIChOU1VJbnRlZ2VyKWNoYXJhY3RlckluZGV4Rm9yUG9p
bnQ6KE5TUG9pbnQpdGhlUG9pbnQKK3sKKyAgICByZXR1cm4gX2ltcGwtPmNoYXJhY3RlckluZGV4
Rm9yUG9pbnQodGhlUG9pbnQpOworfQorCistIChOU1JlY3QpZmlyc3RSZWN0Rm9yQ2hhcmFjdGVy
UmFuZ2U6KE5TUmFuZ2UpdGhlUmFuZ2UgYWN0dWFsUmFuZ2U6KE5TUmFuZ2VQb2ludGVyKWFjdHVh
bFJhbmdlCit7CisgICAgcmV0dXJuIF9pbXBsLT5maXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZSh0
aGVSYW5nZSwgYWN0dWFsUmFuZ2UpOworfQorCisjaWYgVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJ
RU5UKQorCistICh2b2lkKXNlbGVjdGVkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZvaWQo
XikoTlNSYW5nZSBzZWxlY3RlZFJhbmdlKSljb21wbGV0aW9uSGFuZGxlclB0cgoreworICAgIF9p
bXBsLT5zZWxlY3RlZFJhbmdlV2l0aENvbXBsZXRpb25IYW5kbGVyKGNvbXBsZXRpb25IYW5kbGVy
UHRyKTsKK30KKworLSAodm9pZCltYXJrZWRSYW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCheKShOU1JhbmdlIG1hcmtlZFJhbmdlKSljb21wbGV0aW9uSGFuZGxlclB0cgoreworICAgIF9p
bXBsLT5tYXJrZWRSYW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcihjb21wbGV0aW9uSGFuZGxlclB0
cik7Cit9CisKKy0gKHZvaWQpaGFzTWFya2VkVGV4dFdpdGhDb21wbGV0aW9uSGFuZGxlcjoodm9p
ZCheKShCT09MIGhhc01hcmtlZFRleHQpKWNvbXBsZXRpb25IYW5kbGVyUHRyCit7CisgICAgX2lt
cGwtPmhhc01hcmtlZFRleHRXaXRoQ29tcGxldGlvbkhhbmRsZXIoY29tcGxldGlvbkhhbmRsZXJQ
dHIpOworfQorCistICh2b2lkKWF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlOihO
U1JhbmdlKW5zUmFuZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoTlNBdHRyaWJ1dGVkU3Ry
aW5nICphdHRyU3RyaW5nLCBOU1JhbmdlIGFjdHVhbFJhbmdlKSljb21wbGV0aW9uSGFuZGxlclB0
cgoreworICAgIF9pbXBsLT5hdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZShuc1Jh
bmdlLCBjb21wbGV0aW9uSGFuZGxlclB0cik7Cit9CisKKy0gKHZvaWQpZmlyc3RSZWN0Rm9yQ2hh
cmFjdGVyUmFuZ2U6KE5TUmFuZ2UpdGhlUmFuZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXiko
TlNSZWN0IGZpcnN0UmVjdCwgTlNSYW5nZSBhY3R1YWxSYW5nZSkpY29tcGxldGlvbkhhbmRsZXJQ
dHIKK3sKKyAgICBfaW1wbC0+Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UodGhlUmFuZ2UsIGNv
bXBsZXRpb25IYW5kbGVyUHRyKTsKK30KKworLSAodm9pZCljaGFyYWN0ZXJJbmRleEZvclBvaW50
OihOU1BvaW50KXRoZVBvaW50IGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKE5TVUludGVnZXIp
KWNvbXBsZXRpb25IYW5kbGVyUHRyCit7CisgICAgX2ltcGwtPmNoYXJhY3RlckluZGV4Rm9yUG9p
bnQodGhlUG9pbnQsIGNvbXBsZXRpb25IYW5kbGVyUHRyKTsKK30KKworI2VuZGlmIC8vIFVTRShB
U1lOQ19OU1RFWFRJTlBVVENMSUVOVCkKKworLSAoTlNBcnJheSAqKXZhbGlkQXR0cmlidXRlc0Zv
ck1hcmtlZFRleHQKK3sKKyAgICByZXR1cm4gX2ltcGwtPnZhbGlkQXR0cmlidXRlc0Zvck1hcmtl
ZFRleHQoKTsKK30KKworI2lmIEVOQUJMRShEUkFHX1NVUFBPUlQpCistICh2b2lkKWRyYWdnZWRJ
bWFnZTooTlNJbWFnZSAqKWltYWdlIGVuZGVkQXQ6KE5TUG9pbnQpZW5kUG9pbnQgb3BlcmF0aW9u
OihOU0RyYWdPcGVyYXRpb24pb3BlcmF0aW9uCit7CisgICAgX2ltcGwtPmRyYWdnZWRJbWFnZShp
bWFnZSwgTlNQb2ludFRvQ0dQb2ludChlbmRQb2ludCksIG9wZXJhdGlvbik7Cit9CisKKy0gKE5T
RHJhZ09wZXJhdGlvbilkcmFnZ2luZ0VudGVyZWQ6KGlkIDxOU0RyYWdnaW5nSW5mbz4pZHJhZ2dp
bmdJbmZvCit7CisgICAgcmV0dXJuIF9pbXBsLT5kcmFnZ2luZ0VudGVyZWQoZHJhZ2dpbmdJbmZv
KTsKK30KKworLSAoTlNEcmFnT3BlcmF0aW9uKWRyYWdnaW5nVXBkYXRlZDooaWQgPE5TRHJhZ2dp
bmdJbmZvPilkcmFnZ2luZ0luZm8KK3sKKyAgICByZXR1cm4gX2ltcGwtPmRyYWdnaW5nVXBkYXRl
ZChkcmFnZ2luZ0luZm8pOworfQorCistICh2b2lkKWRyYWdnaW5nRXhpdGVkOihpZCA8TlNEcmFn
Z2luZ0luZm8+KWRyYWdnaW5nSW5mbworeworICAgIF9pbXBsLT5kcmFnZ2luZ0V4aXRlZChkcmFn
Z2luZ0luZm8pOworfQorCistIChCT09MKXByZXBhcmVGb3JEcmFnT3BlcmF0aW9uOihpZCA8TlNE
cmFnZ2luZ0luZm8+KWRyYWdnaW5nSW5mbworeworICAgIHJldHVybiBfaW1wbC0+cHJlcGFyZUZv
ckRyYWdPcGVyYXRpb24oZHJhZ2dpbmdJbmZvKTsKK30KKworLSAoQk9PTClwZXJmb3JtRHJhZ09w
ZXJhdGlvbjooaWQgPE5TRHJhZ2dpbmdJbmZvPilkcmFnZ2luZ0luZm8KK3sKKyAgICByZXR1cm4g
X2ltcGwtPnBlcmZvcm1EcmFnT3BlcmF0aW9uKGRyYWdnaW5nSW5mbyk7Cit9CisKKy0gKE5TVmll
dyAqKV9oaXRUZXN0OihOU1BvaW50ICopcG9pbnQgZHJhZ1R5cGVzOihOU1NldCAqKXR5cGVzCit7
CisgICAgcmV0dXJuIF9pbXBsLT5oaXRUZXN0Rm9yRHJhZ1R5cGVzKE5TUG9pbnRUb0NHUG9pbnQo
KnBvaW50KSwgdHlwZXMpOworfQorI2VuZGlmIC8vIEVOQUJMRShEUkFHX1NVUFBPUlQpCisKKy0g
KEJPT0wpX3dpbmRvd1Jlc2l6ZU1vdXNlTG9jYXRpb25Jc0luVmlzaWJsZVNjcm9sbGVyVGh1bWI6
KE5TUG9pbnQpcG9pbnQKK3sKKyAgICByZXR1cm4gX2ltcGwtPndpbmRvd1Jlc2l6ZU1vdXNlTG9j
YXRpb25Jc0luVmlzaWJsZVNjcm9sbGVyVGh1bWIoTlNQb2ludFRvQ0dQb2ludChwb2ludCkpOwor
fQorCistICh2b2lkKXZpZXdXaWxsTW92ZVRvV2luZG93OihOU1dpbmRvdyAqKXdpbmRvdworewor
ICAgIF9pbXBsLT52aWV3V2lsbE1vdmVUb1dpbmRvdyh3aW5kb3cpOworfQorCistICh2b2lkKXZp
ZXdEaWRNb3ZlVG9XaW5kb3cKK3sKKyAgICBfaW1wbC0+dmlld0RpZE1vdmVUb1dpbmRvdygpOwor
fQorCistICh2b2lkKWRyYXdSZWN0OihOU1JlY3QpcmVjdAoreworICAgIF9pbXBsLT5kcmF3UmVj
dChOU1JlY3RUb0NHUmVjdChyZWN0KSk7Cit9CisKKy0gKEJPT0wpaXNPcGFxdWUKK3sKKyAgICBy
ZXR1cm4gX2ltcGwtPmlzT3BhcXVlKCk7Cit9CisKKy0gKEJPT0wpbW91c2VEb3duQ2FuTW92ZVdp
bmRvdworeworICAgIHJldHVybiBXZWJLaXQ6OldlYlZpZXdJbXBsOjptb3VzZURvd25DYW5Nb3Zl
V2luZG93KCk7Cit9CisKKy0gKHZvaWQpdmlld0RpZEhpZGUKK3sKKyAgICBfaW1wbC0+dmlld0Rp
ZEhpZGUoKTsKK30KKworLSAodm9pZCl2aWV3RGlkVW5oaWRlCit7CisgICAgX2ltcGwtPnZpZXdE
aWRVbmhpZGUoKTsKK30KKworLSAodm9pZCl2aWV3RGlkQ2hhbmdlQmFja2luZ1Byb3BlcnRpZXMK
K3sKKyAgICBfaW1wbC0+dmlld0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVzKCk7Cit9CisKKy0g
KHZvaWQpX2FjdGl2ZVNwYWNlRGlkQ2hhbmdlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNhdGlv
bgoreworICAgIF9pbXBsLT5hY3RpdmVTcGFjZURpZENoYW5nZSgpOworfQorCistIChpZClhY2Nl
c3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudAoreworICAgIHJldHVybiBfaW1wbC0+YWNjZXNzaWJp
bGl0eUZvY3VzZWRVSUVsZW1lbnQoKTsKK30KKworLSAoQk9PTClhY2Nlc3NpYmlsaXR5SXNJZ25v
cmVkCit7CisgICAgcmV0dXJuIF9pbXBsLT5hY2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCk7Cit9CisK
Ky0gKGlkKWFjY2Vzc2liaWxpdHlIaXRUZXN0OihOU1BvaW50KXBvaW50Cit7CisgICAgcmV0dXJu
IF9pbXBsLT5hY2Nlc3NpYmlsaXR5SGl0VGVzdChOU1BvaW50VG9DR1BvaW50KHBvaW50KSk7Cit9
CisKKy0gKGlkKWFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTooTlNTdHJpbmcgKilhdHRyaWJ1
dGUKK3sKKyAgICByZXR1cm4gX2ltcGwtPmFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZShhdHRy
aWJ1dGUpOworfQorCistIChOU1ZpZXcgKiloaXRUZXN0OihOU1BvaW50KXBvaW50Cit7CisgICAg
aWYgKCFfaW1wbCkKKyAgICAgICAgcmV0dXJuIFtzdXBlciBoaXRUZXN0OnBvaW50XTsKKyAgICBy
ZXR1cm4gX2ltcGwtPmhpdFRlc3QoTlNQb2ludFRvQ0dQb2ludChwb2ludCkpOworfQorCistIChO
U0ludGVnZXIpY29udmVyc2F0aW9uSWRlbnRpZmllcgoreworICAgIHJldHVybiAoTlNJbnRlZ2Vy
KXNlbGY7Cit9CisKKy0gKHZvaWQpcXVpY2tMb29rV2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQK
K3sKKyAgICBfaW1wbC0+cXVpY2tMb29rV2l0aEV2ZW50KGV2ZW50KTsKK30KKworLSAoTlNUcmFj
a2luZ1JlY3RUYWcpYWRkVHJhY2tpbmdSZWN0OihOU1JlY3QpcmVjdCBvd25lcjooaWQpb3duZXIg
dXNlckRhdGE6KHZvaWQgKilkYXRhIGFzc3VtZUluc2lkZTooQk9PTClhc3N1bWVJbnNpZGUKK3sK
KyAgICByZXR1cm4gX2ltcGwtPmFkZFRyYWNraW5nUmVjdChOU1JlY3RUb0NHUmVjdChyZWN0KSwg
b3duZXIsIGRhdGEsIGFzc3VtZUluc2lkZSk7Cit9CisKKy0gKE5TVHJhY2tpbmdSZWN0VGFnKV9h
ZGRUcmFja2luZ1JlY3Q6KE5TUmVjdClyZWN0IG93bmVyOihpZClvd25lciB1c2VyRGF0YToodm9p
ZCAqKWRhdGEgYXNzdW1lSW5zaWRlOihCT09MKWFzc3VtZUluc2lkZSB1c2VUcmFja2luZ051bToo
aW50KXRhZworeworICAgIHJldHVybiBfaW1wbC0+YWRkVHJhY2tpbmdSZWN0V2l0aFRyYWNraW5n
TnVtKE5TUmVjdFRvQ0dSZWN0KHJlY3QpLCBvd25lciwgZGF0YSwgYXNzdW1lSW5zaWRlLCB0YWcp
OworfQorCistICh2b2lkKV9hZGRUcmFja2luZ1JlY3RzOihOU1JlY3QgKilyZWN0cyBvd25lcjoo
aWQpb3duZXIgdXNlckRhdGFMaXN0Oih2b2lkICoqKXVzZXJEYXRhTGlzdCBhc3N1bWVJbnNpZGVM
aXN0OihCT09MICopYXNzdW1lSW5zaWRlTGlzdCB0cmFja2luZ051bXM6KE5TVHJhY2tpbmdSZWN0
VGFnICopdHJhY2tpbmdOdW1zIGNvdW50OihpbnQpY291bnQKK3sKKyAgICBDR1JlY3QgKmNnUmVj
dHMgPSAoQ0dSZWN0ICopY2FsbG9jKDEsIHNpemVvZihDR1JlY3QpKTsKKyAgICBmb3IgKGludCBp
ID0gMDsgaSA8IGNvdW50OyBpKyspCisgICAgICAgIGNnUmVjdHNbaV0gPSBOU1JlY3RUb0NHUmVj
dChyZWN0c1tpXSk7CisgICAgX2ltcGwtPmFkZFRyYWNraW5nUmVjdHNXaXRoVHJhY2tpbmdOdW1z
KGNnUmVjdHMsIG93bmVyLCB1c2VyRGF0YUxpc3QsIGFzc3VtZUluc2lkZUxpc3QsIHRyYWNraW5n
TnVtcywgY291bnQpOworICAgIGZyZWUoY2dSZWN0cyk7Cit9CisKKy0gKHZvaWQpcmVtb3ZlVHJh
Y2tpbmdSZWN0OihOU1RyYWNraW5nUmVjdFRhZyl0YWcKK3sKKyAgICBpZiAoIV9pbXBsKQorICAg
ICAgICByZXR1cm47CisgICAgX2ltcGwtPnJlbW92ZVRyYWNraW5nUmVjdCh0YWcpOworfQorCist
ICh2b2lkKV9yZW1vdmVUcmFja2luZ1JlY3RzOihOU1RyYWNraW5nUmVjdFRhZyAqKXRhZ3MgY291
bnQ6KGludCljb3VudAogewotICAgIHJldHVybiBbX3drVmlldyBhY2NlcHRzRmlyc3RSZXNwb25k
ZXJdOworICAgIGlmICghX2ltcGwpCisgICAgICAgIHJldHVybjsKKyAgICBfaW1wbC0+cmVtb3Zl
VHJhY2tpbmdSZWN0cyh0YWdzLCBjb3VudCk7CiB9CiAKLS0gKHZvaWQpcmVzaXplU3Vidmlld3NX
aXRoT2xkU2l6ZTooTlNTaXplKW9sZFNpemUKKy0gKE5TU3RyaW5nICopdmlldzooTlNWaWV3ICop
dmlldyBzdHJpbmdGb3JUb29sVGlwOihOU1Rvb2xUaXBUYWcpdGFnIHBvaW50OihOU1BvaW50KXBv
aW50IHVzZXJEYXRhOih2b2lkICopZGF0YQogewotICAgIFtfd2tWaWV3IHNldEZyYW1lOnNlbGYu
Ym91bmRzXTsKKyAgICByZXR1cm4gX2ltcGwtPnN0cmluZ0ZvclRvb2xUaXAodGFnKTsKK30KKwor
LSAodm9pZClwYXN0ZWJvYXJkQ2hhbmdlZE93bmVyOihOU1Bhc3RlYm9hcmQgKilwYXN0ZWJvYXJk
Cit7CisgICAgX2ltcGwtPnBhc3RlYm9hcmRDaGFuZ2VkT3duZXIocGFzdGVib2FyZCk7Cit9CisK
Ky0gKHZvaWQpcGFzdGVib2FyZDooTlNQYXN0ZWJvYXJkICopcGFzdGVib2FyZCBwcm92aWRlRGF0
YUZvclR5cGU6KE5TU3RyaW5nICopdHlwZQoreworICAgIF9pbXBsLT5wcm92aWRlRGF0YUZvclBh
c3RlYm9hcmQocGFzdGVib2FyZCwgdHlwZSk7Cit9CisKKy0gKE5TQXJyYXkgKiluYW1lc09mUHJv
bWlzZWRGaWxlc0Ryb3BwZWRBdERlc3RpbmF0aW9uOihOU1VSTCAqKWRyb3BEZXN0aW5hdGlvbgor
eworICAgIHJldHVybiBfaW1wbC0+bmFtZXNPZlByb21pc2VkRmlsZXNEcm9wcGVkQXREZXN0aW5h
dGlvbihkcm9wRGVzdGluYXRpb24pOworfQorCistIChCT09MKXdhbnRzVXBkYXRlTGF5ZXIKK3sK
KyAgICByZXR1cm4gV2ViS2l0OjpXZWJWaWV3SW1wbDo6d2FudHNVcGRhdGVMYXllcigpOworfQor
CistICh2b2lkKXVwZGF0ZUxheWVyCit7CisgICAgX2ltcGwtPnVwZGF0ZUxheWVyKCk7CiB9CiAK
IC0gKHZvaWQpc2V0QWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXM6KEJPT0wpYWxs
b3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMKIHsKLSAgICBbX3drVmlldyBzZXRBbGxv
d3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlczphbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRp
b25HZXN0dXJlc107CisgICAgX2ltcGwtPnNldEFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdl
c3R1cmVzKGFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzKTsKIH0KIAogLSAoQk9P
TClhbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcwogewotICAgIHJldHVybiBbX3dr
VmlldyBhbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlc107CisgICAgcmV0dXJuIF9p
bXBsLT5hbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcygpOworfQorCistICh2b2lk
KXNtYXJ0TWFnbmlmeVdpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50Cit7CisgICAgX2ltcGwtPnNt
YXJ0TWFnbmlmeVdpdGhFdmVudChldmVudCk7Cit9CisKKy0gKHZvaWQpc2V0TWFnbmlmaWNhdGlv
bjooZG91YmxlKW1hZ25pZmljYXRpb24gY2VudGVyZWRBdFBvaW50OihOU1BvaW50KXBvaW50Cit7
CisgICAgX2ltcGwtPnNldE1hZ25pZmljYXRpb24obWFnbmlmaWNhdGlvbiwgTlNQb2ludFRvQ0dQ
b2ludChwb2ludCkpOworfQorCistICh2b2lkKXNldE1hZ25pZmljYXRpb246KGRvdWJsZSltYWdu
aWZpY2F0aW9uCit7CisgICAgX2ltcGwtPnNldE1hZ25pZmljYXRpb24obWFnbmlmaWNhdGlvbik7
Cit9CisKKy0gKGRvdWJsZSltYWduaWZpY2F0aW9uCit7CisgICAgcmV0dXJuIF9pbXBsLT5tYWdu
aWZpY2F0aW9uKCk7CiB9CiAKIC0gKHZvaWQpc2V0QWxsb3dzTWFnbmlmaWNhdGlvbjooQk9PTClh
bGxvd3NNYWduaWZpY2F0aW9uCiB7Ci0gICAgW193a1ZpZXcgc2V0QWxsb3dzTWFnbmlmaWNhdGlv
bjphbGxvd3NNYWduaWZpY2F0aW9uXTsKKyAgICBfaW1wbC0+c2V0QWxsb3dzTWFnbmlmaWNhdGlv
bihhbGxvd3NNYWduaWZpY2F0aW9uKTsKIH0KIAogLSAoQk9PTClhbGxvd3NNYWduaWZpY2F0aW9u
CiB7Ci0gICAgcmV0dXJuIFtfd2tWaWV3IGFsbG93c01hZ25pZmljYXRpb25dOworICAgIHJldHVy
biBfaW1wbC0+YWxsb3dzTWFnbmlmaWNhdGlvbigpOworfQorCistICh2b2lkKW1hZ25pZnlXaXRo
RXZlbnQ6KE5TRXZlbnQgKilldmVudAoreworICAgIF9pbXBsLT5tYWduaWZ5V2l0aEV2ZW50KGV2
ZW50KTsKIH0KIAotLSAodm9pZClzZXRNYWduaWZpY2F0aW9uOihDR0Zsb2F0KW1hZ25pZmljYXRp
b24KKyNpZiBFTkFCTEUoTUFDX0dFU1RVUkVfRVZFTlRTKQorLSAodm9pZClyb3RhdGVXaXRoRXZl
bnQ6KE5TRXZlbnQgKilldmVudAogewotICAgIFtfd2tWaWV3IHNldE1hZ25pZmljYXRpb246bWFn
bmlmaWNhdGlvbl07CisgICAgX2ltcGwtPnJvdGF0ZVdpdGhFdmVudChldmVudCk7CiB9CisjZW5k
aWYKIAotLSAoQ0dGbG9hdCltYWduaWZpY2F0aW9uCistIChOU1RleHRJbnB1dENvbnRleHQgKilf
d2ViX3N1cGVySW5wdXRDb250ZXh0CiB7Ci0gICAgcmV0dXJuIFtfd2tWaWV3IG1hZ25pZmljYXRp
b25dOworICAgIHJldHVybiBbc3VwZXIgaW5wdXRDb250ZXh0XTsKIH0KIAotLSAodm9pZClzZXRN
YWduaWZpY2F0aW9uOihDR0Zsb2F0KW1hZ25pZmljYXRpb24gY2VudGVyZWRBdFBvaW50OihDR1Bv
aW50KXBvaW50CistICh2b2lkKV93ZWJfc3VwZXJRdWlja0xvb2tXaXRoRXZlbnQ6KE5TRXZlbnQg
KilldmVudAogewotICAgIFtfd2tWaWV3IHNldE1hZ25pZmljYXRpb246bWFnbmlmaWNhdGlvbiBj
ZW50ZXJlZEF0UG9pbnQ6TlNQb2ludEZyb21DR1BvaW50KHBvaW50KV07CisgICAgW3N1cGVyIHF1
aWNrTG9va1dpdGhFdmVudDpldmVudF07CiB9CiAKLS0gKEJPT0wpX2lnbm9yZXNOb25XaGVlbEV2
ZW50cworLSAodm9pZClfd2ViX3N1cGVyU3dpcGVXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAog
ewotICAgIHJldHVybiBbX3drVmlldyBfaWdub3Jlc05vbldoZWVsRXZlbnRzXTsKKyAgICBbc3Vw
ZXIgc3dpcGVXaXRoRXZlbnQ6ZXZlbnRdOwogfQogCi0tICh2b2lkKV9zZXRJZ25vcmVzTm9uV2hl
ZWxFdmVudHM6KEJPT0wpaWdub3Jlc05vbldoZWVsRXZlbnRzCistICh2b2lkKV93ZWJfc3VwZXJN
YWduaWZ5V2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBbX3drVmlldyBfc2V0SWdu
b3Jlc05vbldoZWVsRXZlbnRzOmlnbm9yZXNOb25XaGVlbEV2ZW50c107CisgICAgW3N1cGVyIG1h
Z25pZnlXaXRoRXZlbnQ6ZXZlbnRdOwogfQogCi0tIChOU0RyYWdPcGVyYXRpb24pZHJhZ2dpbmdF
bnRlcmVkOihpZCA8TlNEcmFnZ2luZ0luZm8+KXNlbmRlcgorLSAodm9pZClfd2ViX3N1cGVyU21h
cnRNYWduaWZ5V2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICByZXR1cm4gW193a1Zp
ZXcgZHJhZ2dpbmdFbnRlcmVkOnNlbmRlcl07CisgICAgW3N1cGVyIHNtYXJ0TWFnbmlmeVdpdGhF
dmVudDpldmVudF07CiB9CiAKLS0gKE5TRHJhZ09wZXJhdGlvbilkcmFnZ2luZ1VwZGF0ZWQ6KGlk
IDxOU0RyYWdnaW5nSW5mbz4pc2VuZGVyCistICh2b2lkKV93ZWJfc3VwZXJSZW1vdmVUcmFja2lu
Z1JlY3Q6KE5TVHJhY2tpbmdSZWN0VGFnKXRhZwogewotICAgIHJldHVybiBbX3drVmlldyBkcmFn
Z2luZ1VwZGF0ZWQ6c2VuZGVyXTsKKyAgICBbc3VwZXIgcmVtb3ZlVHJhY2tpbmdSZWN0OnRhZ107
CiB9CiAKLS0gKHZvaWQpZHJhZ2dpbmdFeGl0ZWQ6KGlkIDxOU0RyYWdnaW5nSW5mbz4pc2VuZGVy
CistIChpZClfd2ViX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOihOU1N0cmluZyAq
KWF0dHJpYnV0ZQogewotICAgIFtfd2tWaWV3IGRyYWdnaW5nRXhpdGVkOnNlbmRlcl07CisjcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgcmV0dXJuIFtzdXBlciBhY2Nlc3Np
YmlsaXR5QXR0cmlidXRlVmFsdWU6YXR0cmlidXRlXTsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKIH0KIAotLSAoQk9PTClwcmVwYXJlRm9yRHJhZ09wZXJhdGlvbjooaWQgPE5TRHJhZ2dp
bmdJbmZvPilzZW5kZXIKKy0gKHZvaWQpX3dlYl9zdXBlckRvQ29tbWFuZEJ5U2VsZWN0b3I6KFNF
TClzZWxlY3RvcgogewotICAgIHJldHVybiBbX3drVmlldyBwcmVwYXJlRm9yRHJhZ09wZXJhdGlv
bjpzZW5kZXJdOworICAgIFtzdXBlciBkb0NvbW1hbmRCeVNlbGVjdG9yOnNlbGVjdG9yXTsKIH0K
IAotLSAoQk9PTClwZXJmb3JtRHJhZ09wZXJhdGlvbjooaWQgPE5TRHJhZ2dpbmdJbmZvPilzZW5k
ZXIKKy0gKEJPT0wpX3dlYl9zdXBlclBlcmZvcm1LZXlFcXVpdmFsZW50OihOU0V2ZW50ICopZXZl
bnQKIHsKLSAgICByZXR1cm4gW193a1ZpZXcgcGVyZm9ybURyYWdPcGVyYXRpb246c2VuZGVyXTsK
KyAgICByZXR1cm4gW3N1cGVyIHBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKIH0KIAotLSAo
Q0dTaXplKWludHJpbnNpY0NvbnRlbnRTaXplCistICh2b2lkKV93ZWJfc3VwZXJLZXlEb3duOihO
U0V2ZW50ICopZXZlbnQKIHsKLSAgICByZXR1cm4gX2ludHJpbnNpY0NvbnRlbnRTaXplOworICAg
IFtzdXBlciBrZXlEb3duOmV2ZW50XTsKIH0KIAotLSAodm9pZClfc2V0SW50cmluc2ljQ29udGVu
dFNpemU6KENHU2l6ZSlpbnRyaW5zaWNDb250ZW50U2l6ZQorLSAoTlNWaWV3ICopX3dlYl9zdXBl
ckhpdFRlc3Q6KE5TUG9pbnQpcG9pbnQKIHsKLSAgICAvLyBJZiB0aGUgaW50cmluc2ljIGNvbnRl
bnQgc2l6ZSBpcyBsZXNzIHRoYW4gdGhlIG1pbmltdW0gbGF5b3V0IHdpZHRoLCB0aGUgY29udGVu
dCBmbG93ZWQgdG8gZml0LAotICAgIC8vIHNvIHdlIGNhbiByZXBvcnQgdGhhdCB0aGF0IGRpbWVu
c2lvbiBpcyBmbGV4aWJsZS4gSWYgbm90LCB3ZSBuZWVkIHRvIHJlcG9ydCBvdXIgaW50cmluc2lj
IHdpZHRoCi0gICAgLy8gc28gdGhhdCBhdXRvbGF5b3V0IHdpbGwga25vdyB0byBwcm92aWRlIHNw
YWNlIGZvciB1cy4KKyAgICByZXR1cm4gW3N1cGVyIGhpdFRlc3Q6cG9pbnRdOworfQogCi0gICAg
Q0dTaXplIGludHJpbnNpY0NvbnRlbnRTaXplQWNrbm93bGVkZ2luZ0ZsZXhpYmxlV2lkdGggPSBp
bnRyaW5zaWNDb250ZW50U2l6ZTsKLSAgICBpZiAoaW50cmluc2ljQ29udGVudFNpemUud2lkdGgg
PCBfcGFnZS0+bWluaW11bUxheW91dFNpemUoKS53aWR0aCgpKQotICAgICAgICBpbnRyaW5zaWND
b250ZW50U2l6ZUFja25vd2xlZGdpbmdGbGV4aWJsZVdpZHRoLndpZHRoID0gTlNWaWV3Tm9JbnN0
cmluc2ljTWV0cmljOworLSAoaWQpX3dlYl9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9s
bGVyRm9ySGl0VGVzdFJlc3VsdEludGVybmFsOihBUEk6OkhpdFRlc3RSZXN1bHQqKWhpdFRlc3RS
ZXN1bHQgd2l0aFR5cGU6KHVpbnQzMl90KXR5cGUgdXNlckRhdGE6KEFQSTo6T2JqZWN0Kil1c2Vy
RGF0YQoreworICAgIHJldHVybiBbc2VsZiBfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJv
bGxlckZvckhpdFRlc3RSZXN1bHQ6d3JhcHBlcigqaGl0VGVzdFJlc3VsdCkgd2l0aFR5cGU6KF9X
S0ltbWVkaWF0ZUFjdGlvblR5cGUpdHlwZSB1c2VyRGF0YTooaWQpdXNlckRhdGFdOworfQogCi0g
ICAgX2ludHJpbnNpY0NvbnRlbnRTaXplID0gaW50cmluc2ljQ29udGVudFNpemVBY2tub3dsZWRn
aW5nRmxleGlibGVXaWR0aDsKLSAgICBbc2VsZiBpbnZhbGlkYXRlSW50cmluc2ljQ29udGVudFNp
emVdOworLy8gV2UgZG9uJ3QgZXhwb3NlIHRoZXNlIHZhcmlvdXMgYml0cyBvZiBTUEkgbGlrZSBX
S1ZpZXcgZG9lcywKKy8vIHNvIGhhdmUgdGhlc2UgaW50ZXJuYWwgbWV0aG9kcyBqdXN0IGRvIHRo
ZSB3b3JrIChvciBkbyBub3RoaW5nKToKKy0gKHZvaWQpX3dlYl9wcmVwYXJlRm9ySW1tZWRpYXRl
QWN0aW9uQW5pbWF0aW9uCit7Cit9CisKKy0gKHZvaWQpX3dlYl9jYW5jZWxJbW1lZGlhdGVBY3Rp
b25BbmltYXRpb24KK3sKK30KKworLSAodm9pZClfd2ViX2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9u
QW5pbWF0aW9uCit7Cit9CisKKy0gKHZvaWQpX3dlYl9kaWRDaGFuZ2VDb250ZW50U2l6ZTooTlNT
aXplKW5ld1NpemUKK3sKK30KKworLSAodm9pZClfd2ViX2Rpc21pc3NDb250ZW50UmVsYXRpdmVD
aGlsZFdpbmRvd3MKK3sKKyAgICBfaW1wbC0+ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2lu
ZG93c0Zyb21WaWV3T25seSgpOworfQorCistICh2b2lkKV93ZWJfZGlzbWlzc0NvbnRlbnRSZWxh
dGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb246KEJPT0wpd2l0aEFuaW1hdGlvbgoreworICAg
IF9pbXBsLT5kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbkZy
b21WaWV3T25seSh3aXRoQW5pbWF0aW9uKTsKK30KKworLSAodm9pZClfd2ViX2dlc3R1cmVFdmVu
dFdhc05vdEhhbmRsZWRCeVdlYkNvcmU6KE5TRXZlbnQgKilldmVudAoreworICAgIF9pbXBsLT5n
ZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlRnJvbVZpZXdPbmx5KGV2ZW50KTsKIH0K
IAogI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKQEAgLTE5OTQsMTkgKzI3NTgsMjMgQEAgc3RhdGlj
IFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3RyYWluQ29udGVudE9mZnNldChXZWJDb3JlOjpGbG9h
dFBvaW50IGNvbnRlbnRPZmYKIC0gKHZvaWQpX3NldEVkaXRhYmxlOihCT09MKWVkaXRhYmxlCiB7
CiAgICAgX3BhZ2UtPnNldEVkaXRhYmxlKGVkaXRhYmxlKTsKLSNpZiAhUExBVEZPUk0oSU9TKQot
ICAgIFtfd2tWaWV3IF9hZGRGb250UGFuZWxPYnNlcnZlcl07CisjaWYgUExBVEZPUk0oTUFDKQor
ICAgIF9pbXBsLT5zdGFydE9ic2VydmluZ0ZvbnRQYW5lbCgpOwogI2VuZGlmCiB9CiAKIC0gKF9X
S1JlbW90ZU9iamVjdFJlZ2lzdHJ5ICopX3JlbW90ZU9iamVjdFJlZ2lzdHJ5CiB7CisjaWYgUExB
VEZPUk0oTUFDKQorICAgIHJldHVybiBfaW1wbC0+cmVtb3RlT2JqZWN0UmVnaXN0cnkoKTsKKyNl
bHNlCiAgICAgaWYgKCFfcmVtb3RlT2JqZWN0UmVnaXN0cnkpIHsKICAgICAgICAgX3JlbW90ZU9i
amVjdFJlZ2lzdHJ5ID0gYWRvcHROUyhbW19XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5IGFsbG9jXSBf
aW5pdFdpdGhNZXNzYWdlU2VuZGVyOipfcGFnZV0pOwogICAgICAgICBfcGFnZS0+cHJvY2Vzcygp
LnByb2Nlc3NQb29sKCkuYWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpSZW1vdGVPYmplY3RS
ZWdpc3RyeTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBfcGFnZS0+cGFnZUlEKCksIFtfcmVtb3Rl
T2JqZWN0UmVnaXN0cnkgcmVtb3RlT2JqZWN0UmVnaXN0cnldKTsKICAgICB9CiAKICAgICByZXR1
cm4gX3JlbW90ZU9iamVjdFJlZ2lzdHJ5LmdldCgpOworI2VuZGlmCiB9CiAKIC0gKFdLQnJvd3Np
bmdDb250ZXh0SGFuZGxlICopX2hhbmRsZQpAQCAtMjYxNyw3ICszMzg1LDcgQEAgc3RhdGljIGlu
bGluZSBXZWJLaXQ6OkZpbmRPcHRpb25zIHRvRmluZE9wdGlvbnMoX1dLRmluZE9wdGlvbnMgd2tG
aW5kT3B0aW9ucykKIC0gKF9XS0xheW91dE1vZGUpX2xheW91dE1vZGUKIHsKICNpZiBQTEFURk9S
TShNQUMpCi0gICAgc3dpdGNoIChbX3drVmlldyBfbGF5b3V0TW9kZV0pIHsKKyAgICBzd2l0Y2gg
KF9pbXBsLT5sYXlvdXRNb2RlKCkpIHsKICAgICBjYXNlIGtXS0xheW91dE1vZGVGaXhlZFNpemU6
CiAgICAgICAgIHJldHVybiBfV0tMYXlvdXRNb2RlRml4ZWRTaXplOwogICAgIGNhc2Uga1dLTGF5
b3V0TW9kZUR5bmFtaWNTaXplQ29tcHV0ZWRGcm9tVmlld1NjYWxlOgpAQCAtMjY1Miw3ICszNDIw
LDcgQEAgc3RhdGljIGlubGluZSBXZWJLaXQ6OkZpbmRPcHRpb25zIHRvRmluZE9wdGlvbnMoX1dL
RmluZE9wdGlvbnMgd2tGaW5kT3B0aW9ucykKICAgICAgICAgd2tWaWV3TGF5b3V0TW9kZSA9IGtX
S0xheW91dE1vZGVWaWV3U2l6ZTsKICAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIFtfd2tWaWV3
IF9zZXRMYXlvdXRNb2RlOndrVmlld0xheW91dE1vZGVdOworICAgIF9pbXBsLT5zZXRMYXlvdXRN
b2RlKHdrVmlld0xheW91dE1vZGUpOwogI2Vsc2UKICAgICBfcGFnZS0+c2V0VXNlRml4ZWRMYXlv
dXQobGF5b3V0TW9kZSA9PSBfV0tMYXlvdXRNb2RlRml4ZWRTaXplIHx8IGxheW91dE1vZGUgPT0g
X1dLTGF5b3V0TW9kZUR5bmFtaWNTaXplQ29tcHV0ZWRGcm9tVmlld1NjYWxlKTsKICNlbmRpZgpA
QCAtMjY3Niw3ICszNDQ0LDcgQEAgc3RhdGljIGlubGluZSBXZWJLaXQ6OkZpbmRPcHRpb25zIHRv
RmluZE9wdGlvbnMoX1dLRmluZE9wdGlvbnMgd2tGaW5kT3B0aW9ucykKIC0gKHZvaWQpX3NldFZp
ZXdTY2FsZTooQ0dGbG9hdCl2aWV3U2NhbGUKIHsKICNpZiBQTEFURk9STShNQUMpCi0gICAgW193
a1ZpZXcgX3NldFZpZXdTY2FsZTp2aWV3U2NhbGVdOworICAgIF9pbXBsLT5zZXRWaWV3U2NhbGUo
dmlld1NjYWxlKTsKICNlbHNlCiAgICAgaWYgKHZpZXdTY2FsZSA8PSAwIHx8IGlzbmFuKHZpZXdT
Y2FsZSkgfHwgaXNpbmYodmlld1NjYWxlKSkKICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5T
SW52YWxpZEFyZ3VtZW50RXhjZXB0aW9uIGZvcm1hdDpAIlZpZXcgc2NhbGUgc2hvdWxkIGJlIGEg
cG9zaXRpdmUgbnVtYmVyIl07CkBAIC0zMTQyLDczICszOTEwLDc5IEBAIHN0YXRpYyBpbmxpbmUg
V2ViS2l0OjpGaW5kT3B0aW9ucyB0b0ZpbmRPcHRpb25zKF9XS0ZpbmRPcHRpb25zIHdrRmluZE9w
dGlvbnMpCiAKICNwcmFnbWEgbWFyayAtIE9TIFgtc3BlY2lmaWMgbWV0aG9kcwogCi0tIChOU0Nv
bG9yICopX3BhZ2VFeHRlbmRlZEJhY2tncm91bmRDb2xvcgorLSAoQk9PTClfZHJhd3NUcmFuc3Bh
cmVudEJhY2tncm91bmQKIHsKLSAgICBXZWJDb3JlOjpDb2xvciBjb2xvciA9IF9wYWdlLT5wYWdl
RXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3IoKTsKLSAgICBpZiAoIWNvbG9yLmlzVmFsaWQoKSkKLSAg
ICAgICAgcmV0dXJuIG5pbDsKKyAgICByZXR1cm4gX2ltcGwtPmRyYXdzVHJhbnNwYXJlbnRCYWNr
Z3JvdW5kKCk7Cit9CiAKLSAgICByZXR1cm4gbnNDb2xvcihjb2xvcik7CistICh2b2lkKV9zZXRE
cmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZDooQk9PTClkcmF3c1RyYW5zcGFyZW50QmFja2dyb3Vu
ZAoreworICAgIF9pbXBsLT5zZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZChkcmF3c1RyYW5z
cGFyZW50QmFja2dyb3VuZCk7CiB9CiAKLS0gKEJPT0wpX2RyYXdzVHJhbnNwYXJlbnRCYWNrZ3Jv
dW5kCisjaWYgV0tfQVBJX0VOQUJMRUQKKy0gKE5TVmlldyAqKV9pbnNwZWN0b3JBdHRhY2htZW50
VmlldwogewotICAgIHJldHVybiBfcGFnZS0+ZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoKTsK
KyAgICByZXR1cm4gX2ltcGwtPmluc3BlY3RvckF0dGFjaG1lbnRWaWV3KCk7CiB9CiAKLS0gKHZv
aWQpX3NldERyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kOihCT09MKWRyYXdzVHJhbnNwYXJlbnRC
YWNrZ3JvdW5kCistICh2b2lkKV9zZXRJbnNwZWN0b3JBdHRhY2htZW50VmlldzooTlNWaWV3ICop
bmV3VmlldwogewotICAgIF9wYWdlLT5zZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZChkcmF3
c1RyYW5zcGFyZW50QmFja2dyb3VuZCk7CisgICAgX2ltcGwtPnNldEluc3BlY3RvckF0dGFjaG1l
bnRWaWV3KG5ld1ZpZXcpOwogfQorI2VuZGlmCiAKLS0gKHZvaWQpX3NldE92ZXJyaWRlRGV2aWNl
U2NhbGVGYWN0b3I6KENHRmxvYXQpZGV2aWNlU2NhbGVGYWN0b3IKKy0gKEJPT0wpX3dpbmRvd09j
Y2x1c2lvbkRldGVjdGlvbkVuYWJsZWQKIHsKLSAgICBbX3drVmlldyBfc2V0T3ZlcnJpZGVEZXZp
Y2VTY2FsZUZhY3RvcjpkZXZpY2VTY2FsZUZhY3Rvcl07CisgICAgcmV0dXJuIF9pbXBsLT53aW5k
b3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkKCk7CiB9CiAKLS0gKENHRmxvYXQpX292ZXJyaWRl
RGV2aWNlU2NhbGVGYWN0b3IKKy0gKHZvaWQpX3NldFdpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVu
YWJsZWQ6KEJPT0wpZW5hYmxlZAogewotICAgIHJldHVybiBbX3drVmlldyBfb3ZlcnJpZGVEZXZp
Y2VTY2FsZUZhY3Rvcl07CisgICAgX2ltcGwtPnNldFdpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVu
YWJsZWQoZW5hYmxlZCk7CiB9CiAKLS0gKGlkKV9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250
cm9sbGVyRm9ySGl0VGVzdFJlc3VsdDooX1dLSGl0VGVzdFJlc3VsdCAqKWhpdFRlc3RSZXN1bHQg
d2l0aFR5cGU6KF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpdHlwZSB1c2VyRGF0YTooaWQ8TlNTZWN1
cmVDb2Rpbmc+KXVzZXJEYXRhCistICh2b2lkKV9zZXRPdmVycmlkZURldmljZVNjYWxlRmFjdG9y
OihDR0Zsb2F0KWRldmljZVNjYWxlRmFjdG9yCiB7Ci0gICAgcmV0dXJuIG5pbDsKKyAgICBfaW1w
bC0+c2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3RvcihkZXZpY2VTY2FsZUZhY3Rvcik7Cit9CisK
Ky0gKENHRmxvYXQpX292ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IKK3sKKyAgICByZXR1cm4gX2lt
cGwtPm92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IoKTsKIH0KIAogLSAodm9pZClfc2V0VG9wQ29u
dGVudEluc2V0OihDR0Zsb2F0KWNvbnRlbnRJbnNldAogewotICAgIFtfd2tWaWV3IF9zZXRUb3BD
b250ZW50SW5zZXQ6Y29udGVudEluc2V0XTsKKyAgICByZXR1cm4gX2ltcGwtPnNldFRvcENvbnRl
bnRJbnNldChjb250ZW50SW5zZXQpOwogfQogCiAtIChDR0Zsb2F0KV90b3BDb250ZW50SW5zZXQK
IHsKLSAgICByZXR1cm4gW193a1ZpZXcgX3RvcENvbnRlbnRJbnNldF07CisgICAgcmV0dXJuIF9p
bXBsLT50b3BDb250ZW50SW5zZXQoKTsKIH0KIAotLSAoQk9PTClfd2luZG93T2NjbHVzaW9uRGV0
ZWN0aW9uRW5hYmxlZAorLSAoTlNDb2xvciAqKV9wYWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3IK
IHsKLSAgICByZXR1cm4gW193a1ZpZXcgd2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZF07
CisgICAgcmV0dXJuIF9pbXBsLT5wYWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3IoKTsKIH0KIAot
LSAodm9pZClfc2V0V2luZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZDooQk9PTClmbGFnCist
IChpZClfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6
KF9XS0hpdFRlc3RSZXN1bHQgKiloaXRUZXN0UmVzdWx0IHdpdGhUeXBlOihfV0tJbW1lZGlhdGVB
Y3Rpb25UeXBlKXR5cGUgdXNlckRhdGE6KGlkPE5TU2VjdXJlQ29kaW5nPil1c2VyRGF0YQogewot
ICAgIFtfd2tWaWV3IHNldFdpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQ6ZmxhZ107Cisg
ICAgcmV0dXJuIG5pbDsKIH0KIAogI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQg
Pj0gMTAxMDAwCi0KIC0gKHZvaWQpX3NldEF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0
czooQk9PTClhdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHMKIHsKLSAgICBbX3drVmll
dyBfc2V0QXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzOmF1dG9tYXRpY2FsbHlBZGp1
c3RzQ29udGVudEluc2V0c107CisgICAgX2ltcGwtPnNldEF1dG9tYXRpY2FsbHlBZGp1c3RzQ29u
dGVudEluc2V0cyhhdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHMpOwogfQogCiAtIChC
T09MKV9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHMKIHsKLSAgICByZXR1cm4gW193
a1ZpZXcgX2F1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0c107CisgICAgcmV0dXJuIF9p
bXBsLT5hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHMoKTsKIH0KLQotI2VuZGlmIC8v
IF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCisjZW5kaWYKIAogLSAo
Q0dGbG9hdClfbWluaW11bUxheW91dFdpZHRoCiB7CkBAIC0zMjIyLDcgKzM5OTYsNyBAQCBzdGF0
aWMgaW5saW5lIFdlYktpdDo6RmluZE9wdGlvbnMgdG9GaW5kT3B0aW9ucyhfV0tGaW5kT3B0aW9u
cyB3a0ZpbmRPcHRpb25zKQogICAgIF9wYWdlLT5zZXRNaW5pbXVtTGF5b3V0U2l6ZShXZWJDb3Jl
OjpJbnRTaXplKHdpZHRoLCAwKSk7CiAgICAgX3BhZ2UtPnNldE1haW5GcmFtZUlzU2Nyb2xsYWJs
ZSghZXhwYW5kc1RvRml0KTsKIAotICAgIFtfd2tWaWV3IHNldFNob3VsZENsaXBUb1Zpc2libGVS
ZWN0OmV4cGFuZHNUb0ZpdF07CisgICAgX2ltcGwtPnNldENsaXBzVG9WaXNpYmxlUmVjdChleHBh
bmRzVG9GaXQpOwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3SW50ZXJuYWwuaAppbmRleCA0N2I5ZGUzLi5jYjI1OTE5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmll
d0ludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdJbnRlcm5hbC5oCkBAIC0xMTEsOSArMTExLDYgQEAgc3RydWN0IFByaW50SW5mbzsKIAog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9hbGxvd3NEb3VibGVUYXBHZXN0
dXJlczsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgVUlFZGdlSW5zZXRzIF9jb21w
dXRlZENvbnRlbnRJbnNldDsKLSNlbHNlCi1AcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9z
ZXRJZ25vcmVzTm9uV2hlZWxFdmVudHM6KSBCT09MIF9pZ25vcmVzTm9uV2hlZWxFdmVudHM7Ci0t
ICh2b2lkKV9zZXRJbnRyaW5zaWNDb250ZW50U2l6ZTooQ0dTaXplKWludHJpbnNpY0NvbnRlbnRT
aXplOwogI2VuZGlmCiAKIC0gKFdLUGFnZVJlZilfcGFnZUZvclRlc3Rpbmc7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5kZXggNTVhMzViNC4uZDM5MzFhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtNjY0LDY0
ICs2NjQsNiBAQCBTb21lIG90aGVyIGVkaXRpbmctcmVsYXRlZCBtZXRob2RzIHN0aWxsIHVuaW1w
bGVtZW50ZWQ6CiAKICNlbmRpZiAvLyBVU0UoQVNZTkNfTlNURVhUSU5QVVRDTElFTlQpCiAKLS0g
KE5TVGV4dElucHV0Q29udGV4dCAqKV9zdXBlcklucHV0Q29udGV4dAotewotICAgIHJldHVybiBb
c3VwZXIgaW5wdXRDb250ZXh0XTsKLX0KLQotLSAodm9pZClfc3VwZXJRdWlja0xvb2tXaXRoRXZl
bnQ6KE5TRXZlbnQgKilldmVudAotewotICAgIFtzdXBlciBxdWlja0xvb2tXaXRoRXZlbnQ6ZXZl
bnRdOwotfQotCi0tICh2b2lkKV9zdXBlclN3aXBlV2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQK
LXsKLSAgICBbc3VwZXIgc3dpcGVXaXRoRXZlbnQ6ZXZlbnRdOwotfQotCi0tICh2b2lkKV9zdXBl
ck1hZ25pZnlXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAotewotICAgIFtzdXBlciBtYWduaWZ5
V2l0aEV2ZW50OmV2ZW50XTsKLX0KLQotLSAodm9pZClfc3VwZXJTbWFydE1hZ25pZnlXaXRoRXZl
bnQ6KE5TRXZlbnQgKilldmVudAotewotICAgIFtzdXBlciBzbWFydE1hZ25pZnlXaXRoRXZlbnQ6
ZXZlbnRdOwotfQotCi0tICh2b2lkKV9zdXBlclJlbW92ZVRyYWNraW5nUmVjdDooTlNUcmFja2lu
Z1JlY3RUYWcpdGFnCi17Ci0gICAgW3N1cGVyIHJlbW92ZVRyYWNraW5nUmVjdDp0YWddOwotfQot
Ci0tIChpZClfc3VwZXJBY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6KE5TU3RyaW5nICopYXR0
cmlidXRlCi17Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBk
aWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCi0gICAgcmV0dXJu
IFtzdXBlciBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6YXR0cmlidXRlXTsKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBwb3AKLX0KLQotLSAodm9pZClfc3VwZXJEb0NvbW1hbmRCeVNlbGVj
dG9yOihTRUwpc2VsZWN0b3IKLXsKLSAgICBbc3VwZXIgZG9Db21tYW5kQnlTZWxlY3RvcjpzZWxl
Y3Rvcl07Ci19Ci0KLS0gKEJPT0wpX3N1cGVyUGVyZm9ybUtleUVxdWl2YWxlbnQ6KE5TRXZlbnQg
KilldmVudAotewotICAgIHJldHVybiBbc3VwZXIgcGVyZm9ybUtleUVxdWl2YWxlbnQ6ZXZlbnRd
OwotfQotCi0tICh2b2lkKV9zdXBlcktleURvd246KE5TRXZlbnQgKilldmVudAotewotICAgIFtz
dXBlciBrZXlEb3duOmV2ZW50XTsKLX0KLQotLSAoTlNWaWV3ICopX3N1cGVySGl0VGVzdDooTlNQ
b2ludClwb2ludAotewotICAgIHJldHVybiBbc3VwZXIgaGl0VGVzdDpwb2ludF07Ci19Ci0KIC0g
KE5TQXJyYXkgKil2YWxpZEF0dHJpYnV0ZXNGb3JNYXJrZWRUZXh0CiB7CiAgICAgcmV0dXJuIF9k
YXRhLT5faW1wbC0+dmFsaWRBdHRyaWJ1dGVzRm9yTWFya2VkVGV4dCgpOwpAQCAtNzY5LDExICs3
MTEsNiBAQCBTb21lIG90aGVyIGVkaXRpbmctcmVsYXRlZCBtZXRob2RzIHN0aWxsIHVuaW1wbGVt
ZW50ZWQ6CiAgICAgcmV0dXJuIF9kYXRhLT5faW1wbC0+d2luZG93UmVzaXplTW91c2VMb2NhdGlv
bklzSW5WaXNpYmxlU2Nyb2xsZXJUaHVtYihOU1BvaW50VG9DR1BvaW50KHBvaW50KSk7CiB9CiAK
LS0gKHZvaWQpX2FkZEZvbnRQYW5lbE9ic2VydmVyCi17Ci0gICAgX2RhdGEtPl9pbXBsLT5zdGFy
dE9ic2VydmluZ0ZvbnRQYW5lbCgpOwotfQotCiAtICh2b2lkKXZpZXdXaWxsTW92ZVRvV2luZG93
OihOU1dpbmRvdyAqKXdpbmRvdwogewogICAgIF9kYXRhLT5faW1wbC0+dmlld1dpbGxNb3ZlVG9X
aW5kb3cod2luZG93KTsKQEAgLTkzNyw2ICs4NzQsMTA0IEBAIFNvbWUgb3RoZXIgZWRpdGluZy1y
ZWxhdGVkIG1ldGhvZHMgc3RpbGwgdW5pbXBsZW1lbnRlZDoKIH0KICNlbmRpZiAvLyBXS19BUElf
RU5BQkxFRAogCistIChOU1RleHRJbnB1dENvbnRleHQgKilfd2ViX3N1cGVySW5wdXRDb250ZXh0
Cit7CisgICAgcmV0dXJuIFtzdXBlciBpbnB1dENvbnRleHRdOworfQorCistICh2b2lkKV93ZWJf
c3VwZXJRdWlja0xvb2tXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAoreworICAgIFtzdXBlciBx
dWlja0xvb2tXaXRoRXZlbnQ6ZXZlbnRdOworfQorCistICh2b2lkKV93ZWJfc3VwZXJTd2lwZVdp
dGhFdmVudDooTlNFdmVudCAqKWV2ZW50Cit7CisgICAgW3N1cGVyIHN3aXBlV2l0aEV2ZW50OmV2
ZW50XTsKK30KKworLSAodm9pZClfd2ViX3N1cGVyTWFnbmlmeVdpdGhFdmVudDooTlNFdmVudCAq
KWV2ZW50Cit7CisgICAgW3N1cGVyIG1hZ25pZnlXaXRoRXZlbnQ6ZXZlbnRdOworfQorCistICh2
b2lkKV93ZWJfc3VwZXJTbWFydE1hZ25pZnlXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAorewor
ICAgIFtzdXBlciBzbWFydE1hZ25pZnlXaXRoRXZlbnQ6ZXZlbnRdOworfQorCistICh2b2lkKV93
ZWJfc3VwZXJSZW1vdmVUcmFja2luZ1JlY3Q6KE5TVHJhY2tpbmdSZWN0VGFnKXRhZworeworICAg
IFtzdXBlciByZW1vdmVUcmFja2luZ1JlY3Q6dGFnXTsKK30KKworLSAoaWQpX3dlYl9zdXBlckFj
Y2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTooTlNTdHJpbmcgKilhdHRyaWJ1dGUKK3sKKyNwcmFn
bWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICByZXR1cm4gW3N1cGVyIGFjY2Vzc2li
aWxpdHlBdHRyaWJ1dGVWYWx1ZTphdHRyaWJ1dGVdOworI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGlj
IHBvcAorfQorCistICh2b2lkKV93ZWJfc3VwZXJEb0NvbW1hbmRCeVNlbGVjdG9yOihTRUwpc2Vs
ZWN0b3IKK3sKKyAgICBbc3VwZXIgZG9Db21tYW5kQnlTZWxlY3RvcjpzZWxlY3Rvcl07Cit9CisK
Ky0gKEJPT0wpX3dlYl9zdXBlclBlcmZvcm1LZXlFcXVpdmFsZW50OihOU0V2ZW50ICopZXZlbnQK
K3sKKyAgICByZXR1cm4gW3N1cGVyIHBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKK30KKwor
LSAodm9pZClfd2ViX3N1cGVyS2V5RG93bjooTlNFdmVudCAqKWV2ZW50Cit7CisgICAgW3N1cGVy
IGtleURvd246ZXZlbnRdOworfQorCistIChOU1ZpZXcgKilfd2ViX3N1cGVySGl0VGVzdDooTlNQ
b2ludClwb2ludAoreworICAgIHJldHVybiBbc3VwZXIgaGl0VGVzdDpwb2ludF07Cit9CisKKy0g
KGlkKV93ZWJfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1
bHRJbnRlcm5hbDooQVBJOjpIaXRUZXN0UmVzdWx0KiloaXRUZXN0UmVzdWx0IHdpdGhUeXBlOih1
aW50MzJfdCl0eXBlIHVzZXJEYXRhOihBUEk6Ok9iamVjdCopdXNlckRhdGEKK3sKKyAgICByZXR1
cm4gW3NlbGYgX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVz
dWx0OnRvQVBJKGhpdFRlc3RSZXN1bHQpIHdpdGhUeXBlOnR5cGUgdXNlckRhdGE6dG9BUEkodXNl
ckRhdGEpXTsKK30KKworLSAodm9pZClfd2ViX3ByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb25Bbmlt
YXRpb24KK3sKKyAgICBbc2VsZiBfcHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl07
Cit9CisKKy0gKHZvaWQpX3dlYl9jYW5jZWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24KK3sKKyAg
ICBbc2VsZiBfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uXTsKK30KKworLSAodm9pZClf
d2ViX2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uCit7CisgICAgW3NlbGYgX2NvbXBs
ZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uXTsKK30KKworLSAodm9pZClfd2ViX2RpZENoYW5n
ZUNvbnRlbnRTaXplOihOU1NpemUpbmV3U2l6ZQoreworICAgIFtzZWxmIF9kaWRDaGFuZ2VDb250
ZW50U2l6ZTpuZXdTaXplXTsKK30KKworLSAodm9pZClfd2ViX2Rpc21pc3NDb250ZW50UmVsYXRp
dmVDaGlsZFdpbmRvd3MKK3sKKyAgICBbc2VsZiBfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxk
V2luZG93c107Cit9CisKKy0gKHZvaWQpX3dlYl9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRX
aW5kb3dzV2l0aEFuaW1hdGlvbjooQk9PTCl3aXRoQW5pbWF0aW9uCit7CisgICAgW3NlbGYgX2Rp
c21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uOndpdGhBbmltYXRp
b25dOworfQorCistICh2b2lkKV93ZWJfZ2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29y
ZTooTlNFdmVudCAqKWV2ZW50Cit7CisgICAgW3NlbGYgX2dlc3R1cmVFdmVudFdhc05vdEhhbmRs
ZWRCeVdlYkNvcmU6ZXZlbnRdOworfQorCiBAZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXS1ZpZXcg
KFByaXZhdGUpCkBAIC0xMzU5LDExICsxMzk0LDYgQEAgc3RhdGljIF9XS092ZXJsYXlTY3JvbGxi
YXJTdHlsZSB0b0FQSVNjcm9sbGJhclN0eWxlKFdURjo6T3B0aW9uYWw8V2ViQ29yZTo6U2Nyb2wK
ICAgICBfZGF0YS0+X2ltcGwtPnNldERpZE1vdmVTd2lwZVNuYXBzaG90Q2FsbGJhY2soY2FsbGJh
Y2spOwogfQogCi0tIChpZClfd2ViX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJG
b3JIaXRUZXN0UmVzdWx0SW50ZXJuYWw6KEFQSTo6SGl0VGVzdFJlc3VsdCopaGl0VGVzdFJlc3Vs
dCB3aXRoVHlwZToodWludDMyX3QpdHlwZSB1c2VyRGF0YTooQVBJOjpPYmplY3QqKXVzZXJEYXRh
Ci17Ci0gICAgcmV0dXJuIFtzZWxmIF9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVy
Rm9ySGl0VGVzdFJlc3VsdDp0b0FQSShoaXRUZXN0UmVzdWx0KSB3aXRoVHlwZTp0eXBlIHVzZXJE
YXRhOnRvQVBJKHVzZXJEYXRhKV07Ci19Ci0KIC0gKGlkKV9pbW1lZGlhdGVBY3Rpb25BbmltYXRp
b25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdDooV0tIaXRUZXN0UmVzdWx0UmVmKWhpdFRlc3RS
ZXN1bHQgd2l0aFR5cGU6KHVpbnQzMl90KXR5cGUgdXNlckRhdGE6KFdLVHlwZVJlZil1c2VyRGF0
YQogewogICAgIHJldHVybiBuaWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3SW50ZXJuYWwuaAppbmRleCBkNGExNWRhLi43NmM2YzBjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlld0ludGVybmFsLmgKQEAgLTUw
LDggKzUwLDYgQEAgY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRUaHVtYm5haWxWaWV3OikgX1dLVGh1bWJuYWlsVmlldyAqX3RodW1ibmFpbFZp
ZXc7CiAjZW5kaWYKIAotLSAodm9pZClfYWRkRm9udFBhbmVsT2JzZXJ2ZXI7Ci0KIEBlbmQKIAog
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5oCmlu
ZGV4IGM4NzRjMGEuLmRiMmU4OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5oCkBAIC01MiwzMSArNTIsMjkgQEAgT0JKQ19DTEFTUyBfV0tUaHVtYm5h
aWxWaWV3OwogCiBAcHJvdG9jb2wgV2ViVmlld0ltcGxEZWxlZ2F0ZQogCi0tIChOU1RleHRJbnB1
dENvbnRleHQgKilfc3VwZXJJbnB1dENvbnRleHQ7Ci0tICh2b2lkKV9zdXBlclF1aWNrTG9va1dp
dGhFdmVudDooTlNFdmVudCAqKWV2ZW50OwotLSAodm9pZClfc3VwZXJSZW1vdmVUcmFja2luZ1Jl
Y3Q6KE5TVHJhY2tpbmdSZWN0VGFnKXRhZzsKLS0gKHZvaWQpX3N1cGVyU3dpcGVXaXRoRXZlbnQ6
KE5TRXZlbnQgKilldmVudDsKLS0gKHZvaWQpX3N1cGVyTWFnbmlmeVdpdGhFdmVudDooTlNFdmVu
dCAqKWV2ZW50OwotLSAodm9pZClfc3VwZXJTbWFydE1hZ25pZnlXaXRoRXZlbnQ6KE5TRXZlbnQg
KilldmVudDsKLS0gKGlkKV9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTooTlNTdHJp
bmcgKilhdHRyaWJ1dGU7Ci0tICh2b2lkKV9zdXBlckRvQ29tbWFuZEJ5U2VsZWN0b3I6KFNFTClz
ZWxlY3RvcjsKLS0gKEJPT0wpX3N1cGVyUGVyZm9ybUtleUVxdWl2YWxlbnQ6KE5TRXZlbnQgKill
dmVudDsKLS0gKHZvaWQpX3N1cGVyS2V5RG93bjooTlNFdmVudCAqKWV2ZW50OwotLSAoTlNWaWV3
ICopX3N1cGVySGl0VGVzdDooTlNQb2ludClwb2ludDsKLQotLy8gVGhpcyBpcyBhIGhhY2s7IHRo
ZXNlIHRoaW5ncyBsaXZlIGNhbiBsaXZlIG9uIGEgY2F0ZWdvcnkgKGUuZy4gV0tWaWV3IChQcml2
YXRlKSkgYnV0IFdLVmlldyBpdHNlbGYgY29uZm9ybXMgdG8gdGhpcyBwcm90b2NvbC4KLS8vIFRo
ZXkncmUgbm90IGFjdHVhbGx5IG9wdGlvbmFsLgotQG9wdGlvbmFsCistIChOU1RleHRJbnB1dENv
bnRleHQgKilfd2ViX3N1cGVySW5wdXRDb250ZXh0OworLSAodm9pZClfd2ViX3N1cGVyUXVpY2tM
b29rV2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQ7CistICh2b2lkKV93ZWJfc3VwZXJSZW1vdmVU
cmFja2luZ1JlY3Q6KE5TVHJhY2tpbmdSZWN0VGFnKXRhZzsKKy0gKHZvaWQpX3dlYl9zdXBlclN3
aXBlV2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQ7CistICh2b2lkKV93ZWJfc3VwZXJNYWduaWZ5
V2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQ7CistICh2b2lkKV93ZWJfc3VwZXJTbWFydE1hZ25p
ZnlXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudDsKKy0gKGlkKV93ZWJfc3VwZXJBY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6KE5TU3RyaW5nICopYXR0cmlidXRlOworLSAodm9pZClfd2ViX3N1
cGVyRG9Db21tYW5kQnlTZWxlY3RvcjooU0VMKXNlbGVjdG9yOworLSAoQk9PTClfd2ViX3N1cGVy
UGVyZm9ybUtleUVxdWl2YWxlbnQ6KE5TRXZlbnQgKilldmVudDsKKy0gKHZvaWQpX3dlYl9zdXBl
cktleURvd246KE5TRXZlbnQgKilldmVudDsKKy0gKE5TVmlldyAqKV93ZWJfc3VwZXJIaXRUZXN0
OihOU1BvaW50KXBvaW50OwogCiAtIChpZClfd2ViX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNv
bnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0SW50ZXJuYWw6KEFQSTo6SGl0VGVzdFJlc3VsdCopaGl0
VGVzdFJlc3VsdCB3aXRoVHlwZToodWludDMyX3QpdHlwZSB1c2VyRGF0YTooQVBJOjpPYmplY3Qq
KXVzZXJEYXRhOworLSAodm9pZClfd2ViX3ByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb25BbmltYXRp
b247CistICh2b2lkKV93ZWJfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uOworLSAodm9p
ZClfd2ViX2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uOwogCi0tICh2b2lkKV9wcmVw
YXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uOwotLSAodm9pZClfY2FuY2VsSW1tZWRpYXRl
QWN0aW9uQW5pbWF0aW9uOwotLSAodm9pZClfY29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRp
b247Ci0tICh2b2lkKV9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzOwotLSAodm9p
ZClfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb246KEJPT0wp
YW5pbWF0ZTsKLS0gKHZvaWQpX2dlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmU6KE5T
RXZlbnQgKilldmVudDsKLS0gKHZvaWQpX2RpZENoYW5nZUNvbnRlbnRTaXplOihOU1NpemUpbmV3
U2l6ZTsKKy0gKHZvaWQpX3dlYl9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzOwor
LSAodm9pZClfd2ViX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0
aW9uOihCT09MKWFuaW1hdGU7CisKKy0gKHZvaWQpX3dlYl9nZXN0dXJlRXZlbnRXYXNOb3RIYW5k
bGVkQnlXZWJDb3JlOihOU0V2ZW50ICopZXZlbnQ7CisKKy0gKHZvaWQpX3dlYl9kaWRDaGFuZ2VD
b250ZW50U2l6ZTooTlNTaXplKW5ld1NpemU7CiAKIEBlbmQKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDVjNWQzOGIuLjhlMTBmM2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTEy
NzQsNyArMTI3NCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmFjdGl2ZVNwYWNlRGlkQ2hhbmdlKCkK
IAogTlNWaWV3ICpXZWJWaWV3SW1wbDo6aGl0VGVzdChDR1BvaW50IHBvaW50KQogewotICAgIE5T
VmlldyAqaGl0VmlldyA9IFttX3ZpZXcgX3N1cGVySGl0VGVzdDpOU1BvaW50RnJvbUNHUG9pbnQo
cG9pbnQpXTsKKyAgICBOU1ZpZXcgKmhpdFZpZXcgPSBbbV92aWV3IF93ZWJfc3VwZXJIaXRUZXN0
Ok5TUG9pbnRGcm9tQ0dQb2ludChwb2ludCldOwogICAgIGlmIChoaXRWaWV3ICYmIGhpdFZpZXcg
PT0gbV9sYXllckhvc3RpbmdWaWV3KQogICAgICAgICBoaXRWaWV3ID0gbV92aWV3OwogCkBAIC0x
NDE3LDcgKzE0MTcsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjp1cGRhdGVTZWN1cmVJbnB1dFN0YXRl
KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAvLyBXS1ZpZXcgaGFzIGEgc2luZ2xlIGlu
cHV0IGNvbnRleHQgZm9yIGFsbCBlZGl0YWJsZSBhcmVhcyAoZXhjZXB0IGZvciBwbHVnLWlucyku
Ci0gICAgTlNUZXh0SW5wdXRDb250ZXh0ICpjb250ZXh0ID0gW21fdmlldyBfc3VwZXJJbnB1dENv
bnRleHRdOworICAgIE5TVGV4dElucHV0Q29udGV4dCAqY29udGV4dCA9IFttX3ZpZXcgX3dlYl9z
dXBlcklucHV0Q29udGV4dF07CiAgICAgYm9vbCBpc0luUGFzc3dvcmRGaWVsZCA9IG1fcGFnZS0+
ZWRpdG9yU3RhdGUoKS5pc0luUGFzc3dvcmRGaWVsZDsKIAogICAgIGlmIChpc0luUGFzc3dvcmRG
aWVsZCkgewpAQCAtMTQ1Myw3ICsxNDUzLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6bm90aWZ5SW5w
dXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbigpCiAKICAgICBMT0coVGV4dElucHV0
LCAiLT4gZGlzY2FyZE1hcmtlZFRleHQiKTsKIAotICAgIFtbbV92aWV3IF9zdXBlcklucHV0Q29u
dGV4dF0gZGlzY2FyZE1hcmtlZFRleHRdOyAvLyBJbmZvcm0gdGhlIGlucHV0IG1ldGhvZCB0aGF0
IHdlIHdvbid0IGhhdmUgYW4gaW5saW5lIGlucHV0IGFyZWEgZGVzcGl0ZSBoYXZpbmcgYmVlbiBh
c2tlZCB0by4KKyAgICBbW21fdmlldyBfd2ViX3N1cGVySW5wdXRDb250ZXh0XSBkaXNjYXJkTWFy
a2VkVGV4dF07IC8vIEluZm9ybSB0aGUgaW5wdXQgbWV0aG9kIHRoYXQgd2Ugd29uJ3QgaGF2ZSBh
biBpbmxpbmUgaW5wdXQgYXJlYSBkZXNwaXRlIGhhdmluZyBiZWVuIGFza2VkIHRvLgogfQogCiB2
b2lkIFdlYlZpZXdJbXBsOjpzZXRQbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUoUGx1Z2luQ29t
cGxleFRleHRJbnB1dFN0YXRlIHBsdWdpbkNvbXBsZXhUZXh0SW5wdXRTdGF0ZSkKQEAgLTE3MDAs
NyArMTcwMCw3IEBAIGJvb2wgV2ViVmlld0ltcGw6OmV4ZWN1dGVTYXZlZENvbW1hbmRCeVNlbGVj
dG9yKFNFTCBzZWxlY3RvcikKICAgICAvLyBUaGUgc2luayBkb2VzIHR3byB0aGluZ3M6IDEpIFRl
bGxzIHVzIGlmIHRoZSByZXNwb25kZXIgd2VudCB1bmhhbmRsZWQsIGFuZAogICAgIC8vIDIpIHBy
ZXZlbnRzIGFueSBOU0JlZXA7IHdlIGRvbid0IGV2ZXIgd2FudCB0byBiZWVwIGhlcmUuCiAgICAg
UmV0YWluUHRyPFdLUmVzcG9uZGVyQ2hhaW5TaW5rPiBzaW5rID0gYWRvcHROUyhbW1dLUmVzcG9u
ZGVyQ2hhaW5TaW5rIGFsbG9jXSBpbml0V2l0aFJlc3BvbmRlckNoYWluOm1fdmlld10pOwotICAg
IFttX3ZpZXcgX3N1cGVyRG9Db21tYW5kQnlTZWxlY3RvcjpzZWxlY3Rvcl07CisgICAgW21fdmll
dyBfd2ViX3N1cGVyRG9Db21tYW5kQnlTZWxlY3RvcjpzZWxlY3Rvcl07CiAgICAgW3NpbmsgZGV0
YWNoXTsKICAgICByZXR1cm4gIVtzaW5rIGRpZFJlY2VpdmVVbmhhbmRsZWRDb21tYW5kXTsKIH0K
QEAgLTIxODEsNyArMjE4MSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldFRleHRJbmRpY2F0b3JB
bmltYXRpb25Qcm9ncmVzcyhmbG9hdCBwcm9ncmVzcykKIAogdm9pZCBXZWJWaWV3SW1wbDo6ZGlz
bWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb24oYm9vbCBhbmltYXRl
KQogewotICAgIFttX3ZpZXcgX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRo
QW5pbWF0aW9uOmFuaW1hdGVdOworICAgIFttX3ZpZXcgX3dlYl9kaXNtaXNzQ29udGVudFJlbGF0
aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbjphbmltYXRlXTsKIH0KIAogdm9pZCBXZWJWaWV3
SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb25Gcm9t
Vmlld09ubHkoYm9vbCBhbmltYXRlKQpAQCAtMjE5MCw3ICsyMTkwLDcgQEAgdm9pZCBXZWJWaWV3
SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb25Gcm9t
Vmlld09ubHkoYm8KICAgICAvLyBXZSBjYW4ndCBpbnZlcnQgdGhlc2UgYmVjYXVzZSBjbGllbnRz
IGNhbiBvdmVycmlkZSAoYW5kIGhhdmUgb3ZlcnJpZGRlbikgX2Rpc21pc3NDb250ZW50UmVsYXRp
dmVDaGlsZFdpbmRvd3MsIHNvIGl0IG5lZWRzIHRvIGJlIGNhbGxlZC4KICAgICAvLyBGb3IgdGhp
cyBzYW1lIHJlYXNvbiwgdGhpcyBjYW4ndCBiZSBtb3ZlZCB0byBXZWJWaWV3SW1wbCB3aXRob3V0
IGNhcmUuCiAgICAgY2xlYXJUZXh0SW5kaWNhdG9yV2l0aEFuaW1hdGlvbihhbmltYXRlID8gV2Vi
Q29yZTo6VGV4dEluZGljYXRvcldpbmRvd0Rpc21pc3NhbEFuaW1hdGlvbjo6RmFkZU91dCA6IFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246Ok5vbmUpOwotICAg
IFttX3ZpZXcgX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdOworICAgIFttX3Zp
ZXcgX3dlYl9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXTsKIH0KIAogdm9pZCBX
ZWJWaWV3SW1wbDo6ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c0Zyb21WaWV3T25s
eSgpCkBAIC0yMjMyLDcgKzIyMzIsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpxdWlja0xvb2tXaXRo
RXZlbnQoTlNFdmVudCAqZXZlbnQpCiAKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJ
UkVEID49IDEwMTAwMAogICAgIGlmIChtX2ltbWVkaWF0ZUFjdGlvbkdlc3R1cmVSZWNvZ25pemVy
KSB7Ci0gICAgICAgIFttX3ZpZXcgX3N1cGVyUXVpY2tMb29rV2l0aEV2ZW50OmV2ZW50XTsKKyAg
ICAgICAgW21fdmlldyBfd2ViX3N1cGVyUXVpY2tMb29rV2l0aEV2ZW50OmV2ZW50XTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICNlbmRpZgpAQCAtMjI4MCwyMiArMjI4MCwyMiBAQCB2b2lkIFdl
YlZpZXdJbXBsOjpkaWRQZXJmb3JtSW1tZWRpYXRlQWN0aW9uSGl0VGVzdChjb25zdCBXZWJIaXRU
ZXN0UmVzdWx0RGF0YSYgcgogCiB2b2lkIFdlYlZpZXdJbXBsOjpwcmVwYXJlRm9ySW1tZWRpYXRl
QWN0aW9uQW5pbWF0aW9uKCkKIHsKLSAgICBbbV92aWV3IF9wcmVwYXJlRm9ySW1tZWRpYXRlQWN0
aW9uQW5pbWF0aW9uXTsKKyAgICBbbV92aWV3IF93ZWJfcHJlcGFyZUZvckltbWVkaWF0ZUFjdGlv
bkFuaW1hdGlvbl07CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OmNhbmNlbEltbWVkaWF0ZUFjdGlv
bkFuaW1hdGlvbigpCiB7Ci0gICAgW21fdmlldyBfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0
aW9uXTsKKyAgICBbbV92aWV3IF93ZWJfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uXTsK
IH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6Y29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb24o
KQogewotICAgIFttX3ZpZXcgX2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uXTsKKyAg
ICBbbV92aWV3IF93ZWJfY29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25dOwogfQogCiB2
b2lkIFdlYlZpZXdJbXBsOjpkaWRDaGFuZ2VDb250ZW50U2l6ZShDR1NpemUgbmV3U2l6ZSkKIHsK
LSAgICBbbV92aWV3IF9kaWRDaGFuZ2VDb250ZW50U2l6ZTpOU1NpemVGcm9tQ0dTaXplKG5ld1Np
emUpXTsKKyAgICBbbV92aWV3IF93ZWJfZGlkQ2hhbmdlQ29udGVudFNpemU6TlNTaXplRnJvbUNH
U2l6ZShuZXdTaXplKV07CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNldElnbm9yZXNOb25XaGVl
bEV2ZW50cyhib29sIGlnbm9yZXNOb25XaGVlbEV2ZW50cykKQEAgLTI0MDQsNyArMjQwNCw3IEBA
IGlkIFdlYlZpZXdJbXBsOjphY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWUoTlNTdHJpbmcgKmF0
dHJpYnV0ZSkKICAgICAgICAgICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWxUb1N0cmluZzpOU0Fj
Y2Vzc2liaWxpdHlFbmFibGVkQXR0cmlidXRlXSkKICAgICAgICAgICAgICAgICByZXR1cm4gQFlF
UzsKICAgICAKLSAgICByZXR1cm4gW21fdmlldyBfc3VwZXJBY2Nlc3NpYmlsaXR5QXR0cmlidXRl
VmFsdWU6YXR0cmlidXRlXTsKKyAgICByZXR1cm4gW21fdmlldyBfd2ViX3N1cGVyQWNjZXNzaWJp
bGl0eUF0dHJpYnV0ZVZhbHVlOmF0dHJpYnV0ZV07CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnNl
dFByaW1hcnlUcmFja2luZ0FyZWEoTlNUcmFja2luZ0FyZWEgKnRyYWNraW5nQXJlYSkKQEAgLTI0
NTUsNyArMjQ1NSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnJlbW92ZVRyYWNraW5nUmVjdChOU1Ry
YWNraW5nUmVjdFRhZyB0YWcpCiAgICAgfQogCiAgICAgaWYgKHRhZyA9PSBtX2xhc3RUb29sVGlw
VGFnKSB7Ci0gICAgICAgIFttX3ZpZXcgX3N1cGVyUmVtb3ZlVHJhY2tpbmdSZWN0OnRhZ107Cisg
ICAgICAgIFttX3ZpZXcgX3dlYl9zdXBlclJlbW92ZVRyYWNraW5nUmVjdDp0YWddOwogICAgICAg
ICBtX2xhc3RUb29sVGlwVGFnID0gMDsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTMxMzks
NyArMzEzOSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnN3aXBlV2l0aEV2ZW50KE5TRXZlbnQgKmV2
ZW50KQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fYWxsb3dzQmFja0ZvcndhcmROYXZp
Z2F0aW9uR2VzdHVyZXMpIHsKLSAgICAgICAgW21fdmlldyBfc3VwZXJTd2lwZVdpdGhFdmVudDpl
dmVudF07CisgICAgICAgIFttX3ZpZXcgX3dlYl9zdXBlclN3aXBlV2l0aEV2ZW50OmV2ZW50XTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzE0OCw3ICszMTQ4LDcgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6c3dpcGVXaXRoRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgZWxzZSBpZiAoZXZl
bnQuZGVsdGFYIDwgMC4wKQogICAgICAgICBtX3BhZ2UtPmdvRm9yd2FyZCgpOwogICAgIGVsc2UK
LSAgICAgICAgW21fdmlldyBfc3VwZXJTd2lwZVdpdGhFdmVudDpldmVudF07CisgICAgICAgIFtt
X3ZpZXcgX3dlYl9zdXBlclN3aXBlV2l0aEV2ZW50OmV2ZW50XTsKIH0KIAogdm9pZCBXZWJWaWV3
SW1wbDo6bWFnbmlmeVdpdGhFdmVudChOU0V2ZW50ICpldmVudCkKQEAgLTMxNTgsNyArMzE1OCw3
IEBAIHZvaWQgV2ViVmlld0ltcGw6Om1hZ25pZnlXaXRoRXZlbnQoTlNFdmVudCAqZXZlbnQpCiAg
ICAgICAgIE5hdGl2ZVdlYkdlc3R1cmVFdmVudCB3ZWJFdmVudCA9IE5hdGl2ZVdlYkdlc3R1cmVF
dmVudChldmVudCwgbV92aWV3KTsKICAgICAgICAgbV9wYWdlLT5oYW5kbGVHZXN0dXJlRXZlbnQo
d2ViRXZlbnQpOwogI2VuZGlmCi0gICAgICAgIFttX3ZpZXcgX3N1cGVyTWFnbmlmeVdpdGhFdmVu
dDpldmVudF07CisgICAgICAgIFttX3ZpZXcgX3dlYl9zdXBlck1hZ25pZnlXaXRoRXZlbnQ6ZXZl
bnRdOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zMTgyLDcgKzMxODIsNyBAQCB2b2lk
IFdlYlZpZXdJbXBsOjptYWduaWZ5V2l0aEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogdm9pZCBXZWJW
aWV3SW1wbDo6c21hcnRNYWduaWZ5V2l0aEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogewogICAgIGlm
ICghbV9hbGxvd3NNYWduaWZpY2F0aW9uKSB7Ci0gICAgICAgIFttX3ZpZXcgX3N1cGVyU21hcnRN
YWduaWZ5V2l0aEV2ZW50OmV2ZW50XTsKKyAgICAgICAgW21fdmlldyBfd2ViX3N1cGVyU21hcnRN
YWduaWZ5V2l0aEV2ZW50OmV2ZW50XTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzIx
MSw3ICszMjExLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6cm90YXRlV2l0aEV2ZW50KE5TRXZlbnQg
KmV2ZW50KQogCiB2b2lkIFdlYlZpZXdJbXBsOjpnZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlX
ZWJDb3JlKE5TRXZlbnQgKmV2ZW50KQogewotICAgIFttX3ZpZXcgX2dlc3R1cmVFdmVudFdhc05v
dEhhbmRsZWRCeVdlYkNvcmU6ZXZlbnRdOworICAgIFttX3ZpZXcgX3dlYl9nZXN0dXJlRXZlbnRX
YXNOb3RIYW5kbGVkQnlXZWJDb3JlOmV2ZW50XTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6Z2Vz
dHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZUZyb21WaWV3T25seShOU0V2ZW50ICpldmVu
dCkKQEAgLTMzNjAsNyArMzM2MCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmRvQ29tbWFuZEJ5U2Vs
ZWN0b3IoU0VMIHNlbGVjdG9yKQogICAgIH0gZWxzZSB7CiAgICAgICAgIC8vIEZJWE1FOiBTZW5k
IHRoZSBjb21tYW5kIHRvIEVkaXRvciBzeW5jaHJvbm91c2x5IGFuZCBvbmx5IHNlbmQgaXQgYWxv
bmcgdGhlCiAgICAgICAgIC8vIHJlc3BvbmRlciBjaGFpbiBpZiBpdCdzIGEgc2VsZWN0b3IgdGhh
dCBkb2VzIG5vdCBjb3JyZXNwb25kIHRvIGFuIGVkaXRpbmcgY29tbWFuZC4KLSAgICAgICAgW21f
dmlldyBfc3VwZXJEb0NvbW1hbmRCeVNlbGVjdG9yOnNlbGVjdG9yXTsKKyAgICAgICAgW21fdmll
dyBfd2ViX3N1cGVyRG9Db21tYW5kQnlTZWxlY3RvcjpzZWxlY3Rvcl07CiAgICAgfQogfQogCkBA
IC0zNTc2LDcgKzM1NzYsNyBAQCBOU1RleHRJbnB1dENvbnRleHQgKldlYlZpZXdJbXBsOjppbnB1
dENvbnRleHQoKQogICAgIGlmICghbV9wYWdlLT5lZGl0b3JTdGF0ZSgpLmlzQ29udGVudEVkaXRh
YmxlKQogICAgICAgICByZXR1cm4gbmlsOwogCi0gICAgcmV0dXJuIFttX3ZpZXcgX3N1cGVySW5w
dXRDb250ZXh0XTsKKyAgICByZXR1cm4gW21fdmlldyBfd2ViX3N1cGVySW5wdXRDb250ZXh0XTsK
IH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6dW5tYXJrVGV4dCgpCkBAIC0zNjcxLDEzICszNjcxLDEz
IEBAIGJvb2wgV2ViVmlld0ltcGw6OnBlcmZvcm1LZXlFcXVpdmFsZW50KE5TRXZlbnQgKmV2ZW50
KQogICAgIC8vIGJ1dCBib3RoIGdldCB0cmFuc2Zvcm1lZCB0byBhIGNhbmNlbE9wZXJhdGlvbjog
Y29tbWFuZCwgZXhlY3V0aW5nIHdoaWNoIHBhc3NlcyBhbiBFc2Mga2V5IGV2ZW50IHRvIC1wZXJm
b3JtS2V5RXF1aXZhbGVudDouCiAgICAgLy8gRG9uJ3QgaW50ZXJwcmV0IHRoaXMgZXZlbnQgYWdh
aW4sIGF2b2lkaW5nIHJlLWVudHJhbmN5IGFuZCBpbmZpbml0ZSBsb29wcy4KICAgICBpZiAoW1tl
dmVudCBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnNdIGlzRXF1YWxUb1N0cmluZzpAIlxlIl0g
JiYgIShbZXZlbnQgbW9kaWZpZXJGbGFnc10gJiBOU0RldmljZUluZGVwZW5kZW50TW9kaWZpZXJG
bGFnc01hc2spKQotICAgICAgICByZXR1cm4gW21fdmlldyBfc3VwZXJQZXJmb3JtS2V5RXF1aXZh
bGVudDpldmVudF07CisgICAgICAgIHJldHVybiBbbV92aWV3IF93ZWJfc3VwZXJQZXJmb3JtS2V5
RXF1aXZhbGVudDpldmVudF07CiAKICAgICBpZiAobV9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCkg
ewogICAgICAgICAvLyBXZWJDb3JlIGhhcyBhbHJlYWR5IHNlZW4gdGhlIGV2ZW50LCBubyBuZWVk
IGZvciBjdXN0b20gcHJvY2Vzc2luZy4KICAgICAgICAgLy8gTm90ZSB0aGF0IHdlIGNhbiBnZXQg
bXVsdGlwbGUgZXZlbnRzIGZvciBlYWNoIGV2ZW50IGJlaW5nIHJlLXNlbnQuIEZvciBleGFtcGxl
LCBmb3IgQ21kKyc9JyBBcHBLaXQKICAgICAgICAgLy8gZmlyc3QgcGVyZm9ybXMgdGhlIG9yaWdp
bmFsIGtleSBlcXVpdmFsZW50LCBhbmQgaWYgdGhhdCBpc24ndCBoYW5kbGVkLCBpdCBkaXNwYXRj
aGVzIGEgc3ludGhldGljIENtZCsnKycuCi0gICAgICAgIHJldHVybiBbbV92aWV3IF9zdXBlclBl
cmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKKyAgICAgICAgcmV0dXJuIFttX3ZpZXcgX3dlYl9z
dXBlclBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKICAgICB9CiAKICAgICBBU1NFUlQoZXZl
bnQgPT0gW05TQXBwIGN1cnJlbnRFdmVudF0pOwpAQCAtMzY5NCw3ICszNjk0LDcgQEAgYm9vbCBX
ZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVxdWl2YWxlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAgICAg
IHJldHVybiBZRVM7CiAgICAgfQogICAgIAotICAgIHJldHVybiBbbV92aWV3IF9zdXBlclBlcmZv
cm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKKyAgICByZXR1cm4gW21fdmlldyBfd2ViX3N1cGVyUGVy
Zm9ybUtleUVxdWl2YWxlbnQ6ZXZlbnRdOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjprZXlVcChO
U0V2ZW50ICpldmVudCkKQEAgLTM3MjcsNyArMzcyNyw3IEBAIHZvaWQgV2ViVmlld0ltcGw6Omtl
eURvd24oTlNFdmVudCAqZXZlbnQpCiAgICAgLy8gdGhlcmUgaXMgbm8gcmFuZ2Ugc2VsZWN0aW9u
KS4KICAgICAvLyBJZiB0aGlzIGlzIHRoZSBjYXNlIHdlIHNob3VsZCBpZ25vcmUgdGhlIGtleSBk
b3duLgogICAgIGlmIChtX2tleURvd25FdmVudEJlaW5nUmVzZW50ID09IGV2ZW50KSB7Ci0gICAg
ICAgIFttX3ZpZXcgX3N1cGVyS2V5RG93bjpldmVudF07CisgICAgICAgIFttX3ZpZXcgX3dlYl9z
dXBlcktleURvd246ZXZlbnRdOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0zODMxLDcg
KzM4MzEsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkb0NvbW1hbmRCeVNlbGVjdG9yKFNFTCBzZWxl
Y3RvcikKICAgICB9IGVsc2UgewogICAgICAgICAvLyBGSVhNRTogU2VuZCB0aGUgY29tbWFuZCB0
byBFZGl0b3Igc3luY2hyb25vdXNseSBhbmQgb25seSBzZW5kIGl0IGFsb25nIHRoZQogICAgICAg
ICAvLyByZXNwb25kZXIgY2hhaW4gaWYgaXQncyBhIHNlbGVjdG9yIHRoYXQgZG9lcyBub3QgY29y
cmVzcG9uZCB0byBhbiBlZGl0aW5nIGNvbW1hbmQuCi0gICAgICAgIFttX3ZpZXcgX3N1cGVyRG9D
b21tYW5kQnlTZWxlY3RvcjpzZWxlY3Rvcl07CisgICAgICAgIFttX3ZpZXcgX3dlYl9zdXBlckRv
Q29tbWFuZEJ5U2VsZWN0b3I6c2VsZWN0b3JdOwogICAgIH0KIH0KIApAQCAtMzkwOCw3ICszOTA4
LDcgQEAgTlNUZXh0SW5wdXRDb250ZXh0ICpXZWJWaWV3SW1wbDo6aW5wdXRDb250ZXh0KCkKICAg
ICBpZiAoIW1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0YWJsZSkKICAgICAgICAg
cmV0dXJuIG5pbDsKIAotICAgIHJldHVybiBbbV92aWV3IF9zdXBlcklucHV0Q29udGV4dF07Cisg
ICAgcmV0dXJuIFttX3ZpZXcgX3dlYl9zdXBlcklucHV0Q29udGV4dF07CiB9CiAKIE5TUmFuZ2Ug
V2ViVmlld0ltcGw6OnNlbGVjdGVkUmFuZ2UoKQpAQCAtNDExMCwxMyArNDExMCwxMyBAQCBib29s
IFdlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1aXZhbGVudChOU0V2ZW50ICpldmVudCkKICAgICAv
LyBidXQgYm90aCBnZXQgdHJhbnNmb3JtZWQgdG8gYSBjYW5jZWxPcGVyYXRpb246IGNvbW1hbmQs
IGV4ZWN1dGluZyB3aGljaCBwYXNzZXMgYW4gRXNjIGtleSBldmVudCB0byAtcGVyZm9ybUtleUVx
dWl2YWxlbnQ6LgogICAgIC8vIERvbid0IGludGVycHJldCB0aGlzIGV2ZW50IGFnYWluLCBhdm9p
ZGluZyByZS1lbnRyYW5jeSBhbmQgaW5maW5pdGUgbG9vcHMuCiAgICAgaWYgKFtbZXZlbnQgY2hh
cmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzXSBpc0VxdWFsVG9TdHJpbmc6QCJcZSJdICYmICEoW2V2
ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVyRmxhZ3NNYXNr
KSkKLSAgICAgICAgcmV0dXJuIFttX3ZpZXcgX3N1cGVyUGVyZm9ybUtleUVxdWl2YWxlbnQ6ZXZl
bnRdOworICAgICAgICByZXR1cm4gW21fdmlldyBfd2ViX3N1cGVyUGVyZm9ybUtleUVxdWl2YWxl
bnQ6ZXZlbnRdOwogCiAgICAgaWYgKG1fa2V5RG93bkV2ZW50QmVpbmdSZXNlbnQpIHsKICAgICAg
ICAgLy8gV2ViQ29yZSBoYXMgYWxyZWFkeSBzZWVuIHRoZSBldmVudCwgbm8gbmVlZCBmb3IgY3Vz
dG9tIHByb2Nlc3NpbmcuCiAgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSBjYW4gZ2V0IG11bHRpcGxl
IGV2ZW50cyBmb3IgZWFjaCBldmVudCBiZWluZyByZS1zZW50LiBGb3IgZXhhbXBsZSwgZm9yIENt
ZCsnPScgQXBwS2l0CiAgICAgICAgIC8vIGZpcnN0IHBlcmZvcm1zIHRoZSBvcmlnaW5hbCBrZXkg
ZXF1aXZhbGVudCwgYW5kIGlmIHRoYXQgaXNuJ3QgaGFuZGxlZCwgaXQgZGlzcGF0Y2hlcyBhIHN5
bnRoZXRpYyBDbWQrJysnLgotICAgICAgICByZXR1cm4gW21fdmlldyBfc3VwZXJQZXJmb3JtS2V5
RXF1aXZhbGVudDpldmVudF07CisgICAgICAgIHJldHVybiBbbV92aWV3IF93ZWJfc3VwZXJQZXJm
b3JtS2V5RXF1aXZhbGVudDpldmVudF07CiAgICAgfQogCiAgICAgQVNTRVJUKGV2ZW50ID09IFtO
U0FwcCBjdXJyZW50RXZlbnRdKTsKQEAgLTQxMzMsNyArNDEzMyw3IEBAIGJvb2wgV2ViVmlld0lt
cGw6OnBlcmZvcm1LZXlFcXVpdmFsZW50KE5TRXZlbnQgKmV2ZW50KQogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAgICAgCi0gICAgcmV0dXJuIFttX3ZpZXcgX3N1cGVyUGVyZm9ybUtleUVx
dWl2YWxlbnQ6ZXZlbnRdOworICAgIHJldHVybiBbbV92aWV3IF93ZWJfc3VwZXJQZXJmb3JtS2V5
RXF1aXZhbGVudDpldmVudF07CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OmtleVVwKE5TRXZlbnQg
KmV2ZW50KQpAQCAtNDE2OCw3ICs0MTY4LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6a2V5RG93bihO
U0V2ZW50ICpldmVudCkKICAgICAvLyB0aGVyZSBpcyBubyByYW5nZSBzZWxlY3Rpb24pLgogICAg
IC8vIElmIHRoaXMgaXMgdGhlIGNhc2Ugd2Ugc2hvdWxkIGlnbm9yZSB0aGUga2V5IGRvd24uCiAg
ICAgaWYgKG1fa2V5RG93bkV2ZW50QmVpbmdSZXNlbnQgPT0gZXZlbnQpIHsKLSAgICAgICAgW21f
dmlldyBfc3VwZXJLZXlEb3duOmV2ZW50XTsKKyAgICAgICAgW21fdmlldyBfd2ViX3N1cGVyS2V5
RG93bjpldmVudF07CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tCmluZGV4IDA1MTNjYWQuLjc1YzFjZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwu
bW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQpA
QCAtMzU4LDEzICszNTgsNyBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpzZXREcmFnSW1hZ2UoY29u
c3QgSW50UG9pbnQmIGNsaWVudFBvc2l0aW9uLCBQYXNzUmVmUHRyPFNoYQogICAgIHNpemUuc2Nh
bGUoMS4wIC8gbV9pbXBsLT5wYWdlKCkuZGV2aWNlU2NhbGVGYWN0b3IoKSk7CiAgICAgW2RyYWdO
U0ltYWdlIHNldFNpemU6c2l6ZV07CiAKLSNpZiBXS19BUElfRU5BQkxFRAotICAgIGlmIChtX3dl
YlZpZXcpIHsKLSAgICAgICAgTlNQb2ludCB3ZWJWaWV3UG9zaXRpb24gPSBbbV92aWV3IGNvbnZl
cnRQb2ludDpjbGllbnRQb3NpdGlvbiB0b1ZpZXc6bV93ZWJWaWV3XTsKLSAgICAgICAgbV9pbXBs
LT5kcmFnSW1hZ2VGb3JWaWV3KG1fd2ViVmlldywgZHJhZ05TSW1hZ2UuZ2V0KCksIHdlYlZpZXdQ
b3NpdGlvbiwgaXNMaW5rRHJhZyk7Ci0gICAgfSBlbHNlCi0jZW5kaWYKLSAgICAgICAgbV9pbXBs
LT5kcmFnSW1hZ2VGb3JWaWV3KG1fdmlldywgZHJhZ05TSW1hZ2UuZ2V0KCksIGNsaWVudFBvc2l0
aW9uLCBpc0xpbmtEcmFnKTsKKyAgICBtX2ltcGwtPmRyYWdJbWFnZUZvclZpZXcobV92aWV3LCBk
cmFnTlNJbWFnZS5nZXQoKSwgY2xpZW50UG9zaXRpb24sIGlzTGlua0RyYWcpOwogfQogCiB2b2lk
IFBhZ2VDbGllbnRJbXBsOjpzZXRQcm9taXNlZERhdGFGb3JJbWFnZShjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gaW1hZ2VCdWZmZXIsIGNvbnN0
IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgZXh0ZW5zaW9uLCBjb25zdCBTdHJpbmcm
IHRpdGxlLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiB2aXNpYmxlVVJMLCBQYXNz
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYXJjaGl2ZUJ1ZmZlcikKQEAgLTYwNSwxMyArNTk5LDYgQEAg
dm9pZCBQYWdlQ2xpZW50SW1wbDo6cmVjb21tZW5kZWRTY3JvbGxiYXJTdHlsZURpZENoYW5nZShT
Y3JvbGxiYXJTdHlsZSBuZXdTdHlsZSkKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6aW50cmluc2lj
Q29udGVudFNpemVEaWRDaGFuZ2UoY29uc3QgSW50U2l6ZSYgaW50cmluc2ljQ29udGVudFNpemUp
CiB7Ci0jaWYgV0tfQVBJX0VOQUJMRUQKLSAgICBpZiAobV93ZWJWaWV3KSB7Ci0gICAgICAgIFtt
X3dlYlZpZXcgX3NldEludHJpbnNpY0NvbnRlbnRTaXplOmludHJpbnNpY0NvbnRlbnRTaXplXTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLSNlbmRpZgotCiAgICAgbV9pbXBsLT5zZXRJbnRyaW5z
aWNDb250ZW50U2l6ZShpbnRyaW5zaWNDb250ZW50U2l6ZSk7CiB9CiAKQEAgLTc5OCwxMCArNzg1
LDYgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRl
c3QoY29uc3QgV2ViSGl0VGVzdFJlc3VsdERhdGEKIAogdm9pZCogUGFnZUNsaWVudEltcGw6Omlt
bWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0KFJlZlB0cjxB
UEk6OkhpdFRlc3RSZXN1bHQ+IGhpdFRlc3RSZXN1bHQsIHVpbnQ2NF90IHR5cGUsIFJlZlB0cjxB
UEk6Ok9iamVjdD4gdXNlckRhdGEpCiB7Ci0jaWYgV0tfQVBJX0VOQUJMRUQKLSAgICBpZiAobV93
ZWJWaWV3KQotICAgICAgICByZXR1cm4gW21fd2ViVmlldyBfaW1tZWRpYXRlQWN0aW9uQW5pbWF0
aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6d3JhcHBlcigqaGl0VGVzdFJlc3VsdCkgd2l0
aFR5cGU6KF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpdHlwZSB1c2VyRGF0YTooaWQpKHVzZXJEYXRh
LmdldCgpKV07Ci0jZW5kaWYKICAgICByZXR1cm4gbV9pbXBsLT5pbW1lZGlhdGVBY3Rpb25Bbmlt
YXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdChoaXRUZXN0UmVzdWx0LmdldCgpLCB0eXBl
LCB1c2VyRGF0YS5nZXQoKSk7CiB9CiAK
</data>
<flag name="review"
          id="289702"
          type_id="1"
          status="+"
          setter="andersca"
    />
    <flag name="commit-queue"
          id="289707"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>264611</attachid>
            <date>2015-11-02 12:06:10 -0800</date>
            <delta_ts>2015-11-02 13:09:13 -0800</delta_ts>
            <desc>Archive of layout-test-results from ews105 for mac-mavericks-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>313138</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
ABwAYWNjZXNzaWJpbGl0eS9hY2Nlc3NpYmlsaXR5LW5vZGUtbWVtb3J5LW1hbmFnZW1lbnQtc3Rk
ZXJyLnR4dFVUCQADUr83VlK/N1Z1eAsAAQT1AQAABBQAAAB9zsFqAjEURuG9T3FfYKaTZAZsdmU6
grQwJVq6kCLR/MVQe0duoujbVy1dFIrrszifrlRTKFVUmpSyjbFNXeqxpjesnmKeI2W3Z4YsTG3U
vVV1Zd6pc653lpbLdvLqnlu/3sC2Ap8x96st0gOHKQcckegASXFgWl8zFRRi+qTpXU8QGaSkTqQd
AiypqhzpfzXmtuYPw+Hn1H3t8unlMk8ZnGd5EPT8eJ6fcf0ObH9J+Uomz4HiBU0fPm4RytE3UEsD
BAoAAAAAAMFeYkcAAAAAAAAAAAAAAAASABwAYWNjZXNzaWJpbGl0eS9tYWMvVVQJAANZvzdWgL83
VnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADBXmJH+nojS/wAAAB7AgAAQAAcAGFjY2Vzc2liaWxp
dHkvbWFjL2VkaXRhYmxlLXdlYmFyZWEtY29udGV4dC1tZW51LXBvaW50LWFjdHVhbC50eHRVVAkA
A1m/N1ZZvzdWdXgLAAEE9QEAAAQUAAAAxZBBasMwEEX3OsXHqxaC7xBKCoWUBmLoeiyPY1FFCpoR
bm7fESG0PUE2sxBvnp40LEGgLGpzIbXB8DH4L1xySLpBFZ4w54J84RTSCT4n5W/FmVOVDfxC6cSC
kRqY081QS+GkEI7sNdhpSKAEnoLSGBkrj6DC1GN4cIB7cACexqtRqs3cNn83dA2ebWmyG88XKnfi
Tx1i9tRgeXbuI0Gq9ywWdc0Va4jRdKawWYIl5hndYXs8dtYuQla9sZfFmFcrt45u2B0HvHy8H/a7
Ydf1zrnX7dv+puXJIFlyjcYytFTu8UmCmaJw75r4HjDXGK8HKu1H2vca69w/uXM/UEsDBBQAAgAI
AMFeYkek2KLE/wAAAOsBAAA+ABwAYWNjZXNzaWJpbGl0eS9tYWMvZWRpdGFibGUtd2ViYXJlYS1j
b250ZXh0LW1lbnUtcG9pbnQtZGlmZi50eHRVVAkAA1m/N1ZZvzdWdXgLAAEE9QEAAAQUAAAAxY7d
SsNAEIXv8xRDbtPt3gjepmoEsdJigrmebCZ1YZotmVmavL3bKlifQAbOwPx85xhjwH4EjkcS+4SK
tmpr21L36vWnPUTPvX0nJhSyjEuIapREzUQSWcWicyTiO89eF3tEZ6n3ih2TOVOHE6FxYVSa1Rxp
jOYU/KiG5hM5pX6ts2ZFUfxXDnQaka8pyhLM3eoeiouUZQa7ESReqStIfnD2zCBEgEknTwJhgHy/
qescUnLBA6XLITCHM/XQLZA3Vd3A4+5tv62aKl9nkMpcPr7J1Kc7L6BTpKx43rxsb+byGSInDF3X
a2hRYEAWSphfhMgQmZc9TnLDSj5/rLMvUEsDBBQAAgAIAMFeYkd7gP2l6QAAAGgCAABCABwAYWNj
ZXNzaWJpbGl0eS9tYWMvZWRpdGFibGUtd2ViYXJlYS1jb250ZXh0LW1lbnUtcG9pbnQtZXhwZWN0
ZWQudHh0VVQJAANZvzdWWb83VnV4CwABBPUBAAAEFAAAAMWQQWrEMAxF9z6FyKqFMHcoJbuWCSQX
UBxlYuqRgyWT5vaVGUrTE8xGC/n/52ePaxBQErW5otog8DH4L9hSYG2hCM2wpAxpIw58A59Y6Vvh
TlykBb8i30hgwhpM/CCUnIkVhCJ5DbYNDMhAc1CcIsFOE2AmvMD4ZAH3ZAF4mQ5LqVZybf41dA+e
rDTbjfcN82/iZAcxeaxheXXuyiDFexKTOlKBPcRoOEPYzMEU0wJN/zYMjbmLoFm39rIY027m5tGM
3TDC+/Wz/+jGrrk452r8gaXZQvWvcqHTWmQpMR49Zjmdu38k534AUEsDBBQAAgAIAMFeYkfihT7j
MQgAABocAABGABwAYWNjZXNzaWJpbGl0eS9tYWMvZWRpdGFibGUtd2ViYXJlYS1jb250ZXh0LW1l
bnUtcG9pbnQtcHJldHR5LWRpZmYuaHRtbFVUCQADWb83Vlm/N1Z1eAsAAQT1AQAABBQAAAC9WWtv
4zYW/Z5fQSTYBigiyU7s1I+MFzOJgy463QabYOfjgpIoixNKdEUqsWe7/30vX7IkS7aBKZpBRg9e
kufee+6Dyl0qM7Y4u0sJjuGSEYlRlOJCEPnhspSJN7mE10JuGVmczRjNX6/Q7I0KKkmM/nuG4EeS
jfRiEvECS8rzGcp5TuZ6KORFTAov5FLybIaG6w2K4Z7E87P/nZnl7CIRZ7yYoYvBzVSP+Y+UkQea
JHY8xNHrquBlHntONJmof/WNzA6CMxqjiziOzVjCc+klOKNsO0MZz7lY48gCzHCxogB5SDI0MK/W
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
AwQKAAAAAAC8XmJHAAAAAAAAAAAAAAAAFAAcAGNhbnZhcy9waGlsaXAvdGVzdHMvVVQJAANTvzdW
gL83VnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAC8XmJHzjldnb4AAAAbAQAAMQAcAGNhbnZhcy9w
aGlsaXAvdGVzdHMvMmQuY2FudmFzLnJlYWRvbmx5LXN0ZGVyci50eHRVVAkAA1O/N1ZTvzdWdXgL
AAEE9QEAAAQUAAAAfc7NagIxFIbhvVdxbmDGZH6oZCfjFKTCSGrpQkSi+cRQe0ZOYtG7r1q6KBTX
7+J9CqXrTOtMFaS1qUtTV/lIPdE7Ni8hLRCTPTFDlmVVVsroSpUraq3trKH1unl+s7PGbfcwjcAl
LNzmgDhmP2WPMyJ9QWLombb3TBn5ED9oOuwIIr3k1Io0vYchrfJB8a9m9Fjzh2Hxc2o/j+kyv81j
AqfX1As6nlznV1x3BJtfUrqTybGncEPTzoUDfD74BlBLAwQKAAAAAADDXmJHAAAAAAAAAAAAAAAA
DAAcAGNvbXBvc2l0aW5nL1VUCQADXb83VoC/N1Z1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAvF5i
R0YceluaAAAAuAAAADgAHABjb21wb3NpdGluZy9hYnNvbHV0ZS1pbnNpZGUtb3V0LW9mLXZpZXct
Zml4ZWQtc3RkZXJyLnR4dFVUCQADU783VlO/N1Z1eAsAAQT1AQAABBQAAABdjbEOgjAURXe/4v2A
lNISTCcN4iIJBiUOxhAKL7FRW/JaBv5eopvbzcnJuUnM0zXn6zgBzlUqVCqjTSbgivpowgV9qCdr
kW5CCikVxzi7Q9vmh6Yu865/oKqxJ+wCFu8xzCckb3xAG87BEVZ2b/xzZ4dqRKvAOnDLgC2wxi8m
05N5DdoFVhpNHc3sm/Ts//3Ho0FHUBApLlcfUEsDBAoAAAAAALxeYkcAAAAAAAAAAAAAAAAWABwA
Y29tcG9zaXRpbmcvYW5pbWF0aW9uL1VUCQADU783VoC/N1Z1eAsAAQT1AQAABBQAAABQSwMEFAAC
AAgAvF5iRyDAGELAAAAAHgEAAEIAHABjb21wb3NpdGluZy9hbmltYXRpb24vYW5pbWF0ZWQtY29t
cG9zaXRlZC1pbnNpZGUtaGlkZGVuLXN0ZGVyci50eHRVVAkAA1O/N1ZTvzdWdXgLAAEE9QEAAAQU
AAAAfc7NSsNAFIbhfa/i3EBCJslImV1JIxSFyLTFhUiZZD7p0HhSZo6id29/cCEU1+/ifcpC6Uyp
rChJKaMro3VeaE3P6B+CbJDEfjAjvlR1Vc+NqovqlVprO2tot2vut/axccMepolwgo3rR6QF+xV7
fCHRJ2IKE9NwyZSRd+J6l0Ah0TgNB/ic2hibycOQzmflTdDd/6A/EovrrH0/yvfT+Z8ELGuZIjpe
hnQ4+boj2Pyq5KImx57C2U1vLown2OwHUEsDBAoAAAAAALxeYkcAAAAAAAAAAAAAAAAgABwAY29t
cG9zaXRpbmcvYmFja2ZhY2UtdmlzaWJpbGl0eS9VVAkAA1O/N1aAvzdWdXgLAAEE9QEAAAQUAAAA
UEsDBBQAAgAIALxeYkdqVhjGmwAAALgAAABBABwAY29tcG9zaXRpbmcvYmFja2ZhY2UtdmlzaWJp
bGl0eS9iYWNrZmFjZS12aXNpYmlsaXR5LTNkLXN0ZGVyci50eHRVVAkAA1O/N1ZTvzdWdXgLAAEE
9QEAAAQUAAAAXY5BDoIwFET3nuJfAEopjaYrDeJGEgxKXBhDKPzERm3Jb1lwe4nu3E0mL/MmTbiM
OI+SFDhXUigp42S9gSvqowkX9KGerEW6iUzIVPEsEXdo2/zQ1GXe9Q9UNfaEXcDiPYb5hOSND2jD
OTjCyu6Nf+7sUI1oFVgHbgmwBdb4hWR6Mq9Bu8BKo6mjmX0nPfu3//p40DEURMuL1QdQSwMECgAA
AAAAvF5iRwAAAAAAAAAAAAAAAB0AHABjb21wb3NpdGluZy9iYWNrZ3JvdW5kLWNvbG9yL1VUCQAD
VL83VoC/N1Z1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAvF5iR5E/ot26AAAAGwEAAEsAHABjb21w
b3NpdGluZy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQtY29sb3ItYWxwaGEtd2l0aC1vcGFj
aXR5LXN0ZGVyci50eHRVVAkAA1S/N1ZUvzdWdXgLAAEE9QEAAAQUAAAAnc69bsIwFIbhnas4N5AQ
x7iDtyqkEmqlIAPqUCFk8IdqlZ6gY4Po3fNTMbAyv8P71JUyhVJFVZNS1mhrTFlrTZ9Yv8c8R8ru
wAz50iNtXqwaVXpJrXOds7RaNW8L99H4zTdsI/AZc7/eIb1ymHDACYmOkBR7ps0tU0Ehph+aDDuC
SC8ltSJNH2BJVeWgfkbzwHD4P7W/+/w3vc5TBudZ7gUdjy/zC67bg+2dlG9k8hwoXtG09XGHUA7O
UEsDBAoAAAAAALxeYkcAAAAAAAAAAAAAAAAYABwAY29tcG9zaXRpbmcvYmFja2dyb3VuZHMvVVQJ
AANUvzdWgL83VnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACAC8XmJHO5lsZpoAAAC4AAAAQQAcAGNv
bXBvc2l0aW5nL2JhY2tncm91bmRzL2ZpeGVkLWJhY2tncm91bmQtb24tZGVzY2VuZGFudC1zdGRl
cnIudHh0VVQJAANUvzdWVL83VnV4CwABBPUBAAAEFAAAAF2NsQ6CMBRFd7+iPyDtA6qmkwZxkQSD
EgdjCIWX2KgteS0Dfy/Rze3m5OTcWIBcAixFzACUTJSUUbwBdkV9NOGCPlSjtUi3JE1WQgGK9Z01
TXaoqyJruweqCjvCNmD+HsJ0QvLGB7ThHBxhaffGP3e2Lwe0ilnH3DzYlvHazybXo3n12gVeGE0t
Tfyb9Pz//cejXkcsJ1KQLj5QSwMECgAAAAAAvF5iRwAAAAAAAAAAAAAAABQAHABjb21wb3NpdGlu
Zy9iYWNraW5nL1VUCQADVL83VoC/N1Z1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAvF5iR2nChGKb
AAAAuAAAADcAHABjb21wb3NpdGluZy9iYWNraW5nL2JhY2tmYWNlLXZpc2liaWxpdHktZmxpcC1z
dGRlcnIudHh0VVQJAANUvzdWVL83VnV4CwABBPUBAAAEFAAAAF2OQQ6CMBRE956iF4BSSk3sSoO4
kQSDEhfGEAo/sVFb8vtZcHuJ7txNJi/zJk2EioSIkpQJoZXUSsVyI9gVzNHSBQLVk3OAN5nJdaZF
lsg7a9v80NRl3vUP0DX0CB1B8R5pPgEGGwgcnckjVG5vw3PnhmoEp5nzzC+BbRlvwkJyM9nXYDzx
0hrscObfycD/7b8+HkzMCsTlxeoDUEsDBAoAAAAAAMNeYkcAAAAAAAAAAAAAAAAVABwAY29tcG9z
aXRpbmcvZ2VvbWV0cnkvVVQJAANdvzdWgL83VnV4CwABBPUBAAAEFAAAAFBLAwQUAAIACADDXmJH
TnHEJOEAAABOAwAALgAcAGNvbXBvc2l0aW5nL2dlb21ldHJ5L291dGxpbmUtY2hhbmdlLXN0ZGVy
ci50eHRVVAkAA12/N1ZdvzdWdXgLAAEE9QEAAAQUAAAA7ZE9T8MwEIZn+ituLFLjfDmt8NoyVIAA
gdQBMTj2JT3hnCPHBvHvCYgNRpAYmN7l1XO696mKssnKMisqKEvVSFVIcVZLMH4QehwdigO2FxTF
jUs9sagrscNndH4ckONDLaVs1KYrNo9wHoIP4Ly2xD3kl9QGHV7zPUcMjBHeCdmep/w2kXm6pwHh
Ezp+RL71c5XjlF9pc333paYA7HwXefnz7BVU6+ZUAXuYEkXdOgQadI/Q+cRWAOzIQkds1eLkN14b
tDlmfgVtivAS/DygDuZIEU1MARfVt5rW/5r+lqY3UEsDBAoAAAAAAMBeYkcAAAAAAAAAAAAAAAAU
ABwAY29tcG9zaXRpbmcvaWZyYW1lcy9VVAkAA1e/N1aAvzdWdXgLAAEE9QEAAAQUAAAAUEsDBBQA
AgAIAMBeYkew64p7VQAAAFcAAAA7ABwAY29tcG9zaXRpbmcvaWZyYW1lcy9sYXlvdXQtb24tY29t
cG9zaXRpbmctY2hhbmdlLWFjdHVhbC50eHRVVAkAA1e/N1ZXvzdWdXgLAAEE9QEAAAQUAAAADcQ7
CoAwEAXA3lO8UpscwE4QQbCSXCAmG13yg2QDHl+nGE2vAMO27McMxw65CG4S2Mg2kIM1MV7GBvha
EthXk0hh1A83CDVB6n8XofYMzlhPrabhA1BLAwQUAAIACADAXmJHjpgGbdQAAACOAQAAOQAcAGNv
bXBvc2l0aW5nL2lmcmFtZXMvbGF5b3V0LW9uLWNvbXBvc2l0aW5nLWNoYW5nZS1kaWZmLnR4dFVU
CQADV783Vle/N1Z1eAsAAQT1AQAABBQAAADFjrFOwzAQhnc/xY1UxrFg7JSiFgmVATURnS/2NbHq
2JV9lsLbU0MG3oDlv+H/9N+nlAL9GX2ZKes9MurDudNnGo6O1/NSnLf6RJ4wk/b4FQsrpswqUS6e
szZxvsXs2IVRu0vCurVyMag/rTIThpEULTcyTLbhhYWU8h8U0HBB/yPQtqCeHp9B1mhbAT0tDCDU
x67rtjA5BsY0EkOIlsAF+P0g5Ovu7X0L1tl7w1AJ4525kgWD3g9ornBJcV75Bh76yWWo4jCXewwE
qYS6uD/1zUZ8A1BLAwQKAAIAAADAXmJHNUqxSCcAAAAnAAAAPQAcAGNvbXBvc2l0aW5nL2lmcmFt
ZXMvbGF5b3V0LW9uLWNvbXBvc2l0aW5nLWNoYW5nZS1leHBlY3RlZC50eHRVVAkAA1e/N1ZXvzdW
dXgLAAEE9QEAAAQUAAAAVGV4dCAgClBBU1M6IGhpdCB0YXJnZXQgbm9kZSBpbiBpZnJhbWUKUEsD
BBQAAgAIAMBeYkdIfW7A0QcAANsYAABBABwAY29tcG9zaXRpbmcvaWZyYW1lcy9sYXlvdXQtb24t
Y29tcG9zaXRpbmctY2hhbmdlLXByZXR0eS1kaWZmLmh0bWxVVAkAA1e/N1ZXvzdWdXgLAAEE9QEA
AAQUAAAApVlrb+O4Ff2eX0EkaNNdRJKdxNPYzriYyQO72G2x2Ay6HwtKoixOKNElqcSZ3f73Xr5k
SpbsFJ1gIvF9n+dcKrelqtjq5LYkOIdHRRRGWYmFJOrjeaOK6OYcuqV6Y2R1smC0fr5AixcqqSI5
+v0EwT9FtirKScYFVpTXC1TzmizNUMpFTkSUcqV4tUDTzRbl8E7y5cl/Tux2bpOMMy4W6GxyNTdj
8SNl5J4WhRtPcfa8Fryp88hPLW70T3iQPUFyRnN0lue5HSt4raICV5S9LVDFay43OHMCVlisKYg8
JRWa2K4NB+WMHoIw0OiFGIHKaU/Sq6urgf0lrmUkiaBFMCjpN2LOCA+NGCnUAk3ime/PqdwwDJvQ
GizjJHyluSph8WTyJycfznNar9uVVjbnGv3W9Y4Tl9YlCKXa6SV/IaKn0Ww2W44ZmxBrhlj75Gc4
S7rFBeMY1BB0Xaqu5/SsO1Afgy7+KA6mpwpUnPRUVjhlJMoIYx0tI7Nvx0qvJWgXGR/qUHsVeLOT
7Ilk2nejQWMWd0OmHy4uZr3dIaAmm6094WG7AffC/qAauUCxfvQ1HBVP0pykb/o3MqJ+Zjx7/gUL
FYOqi4IKqaKspCwfNaw+7gnWXxzaTJAKXHtx5Dx3hje/Dbgo1VM6YTfzUQfRomiGWYQZXUNuKD6g
liA60n/Adc6IN4fbR5tQt0tiHbqL56wRUrtGi93PQJyCdxrvMTizDRybPEa8Q1J04nw/HNaCvC17
gRnPjvnLmhjFih81c1wIXvWM7fBRn6Gt/o+mSomAaCJhdNleL/g+jLqonc87AOjTZQgGfSZfX18P
wk3o/RZj9EYzmwI2DVrAd3HgwnMoRKy4nXC6coAVKG5UHAQcSxKjZjkAUhuhs1OL6Qzo0cRFjVek
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
SH/Anq3vx80YB6c42PnoDPReoPVJYijAJRr+oit4790Bis77Ang9vmno7GEq+PHxMmYiKKDBUFQw
D2jCo9bb4JPfRt/dPFzN7qeLrDxCnryyMs/gCHNOeIuhg4FCKJ0zw1PeoWPKT8t88M2zX1BLAwQU
AAIACADQXmJHxNGq+6MAAADcAAAARwAcAGVkaXRpbmcvZGVsZXRpbmcvc21hcnQtZGVsZXRlLWFj
cm9zcy1lZGl0YWJsZS1ib3VuZGFyaWVzLTItZXhwZWN0ZWQudHh0VVQJAAN3vzdWd783VnV4CwAB
BPUBAAAEFAAAADWOwQ6CQAxE73zFhAs30BiNGvQXvHjxuOsWIVm2pF2CJn68C8Gkh0mn86b3tlNE
0qhoWGBgxxemloRA78EE7TgsjvZGIhx5ioSJR+8QOOLJ6cSRgFwXjfUEy2NwRjrSErfgPyga5gLa
LhlLK8OVePD4XysRClgjRYlajJNzVQ3CiddX+91pczhur9kXtaaXZoG5OFKatfaSN8Yr5YuXz6Q8
+wFQSwMEFAACAAgA0F5iR8KJy/sFCAAAxxoAAEsAHABlZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRl
bGV0ZS1hY3Jvc3MtZWRpdGFibGUtYm91bmRhcmllcy0yLXByZXR0eS1kaWZmLmh0bWxVVAkAA3e/
N1Z3vzdWdXgLAAEE9QEAAAQUAAAAvVlrb+O4Ff2eX0EkaAIsItmO7dSPiYtOHijQdls0gy76qaAk
yuKEErUkldjT7X/fy5csyZKTYordwY4l8pI8995zH9R8ylTONmefMoIT+MmJwijOsJBE3V1VKg0W
VzAs1Z6RzdmK0eLlGq1eqaSKJOg/Zwj+U2SngoTEXGBFebFCBS/I2kxFXCREBBFXiucrNCl3KIFn
kqzP/ntmt3ObxJxxsUIX4+nSzIVPlJEHmqZuPsLxy1bwqkgCL5ou9J/mQfYEyRlN0EWSJHYu5YUK
UpxTtl+hnBdcljh2AHMsthQgT0iOxnao5KCc0UMQBhq9EgMom3SQTqfTnv0lLmQgiaBpY1LSb8Sc
0Tw0YCRVKzQO5348obJkGDahBVjGIXyjicpg8Xj8O4cPJwkttvVKi825Rj+1vePg0iIDUKoWz/gr
ER2N5vP5esjYhFgzhNonf4GzpFucMo5BDUG3mWp7Tkvdg/oYdPFHcTA9VaDiuKOywhEjQUwYa2kZ
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
KAAcAGVkaXRpbmcvbWFjL3NlbGVjdGlvbi93b3JkLXRoYWktZGlmZi50eHRVVAkAA3K/N1ZyvzdW
dXgLAAEE9QEAAAQUAAAAtdK9TsMwEMDxPU9xIyh1nY8mTjoVBEgIBkQlOpvkSi1MjOqLoBszj8DA
wjMghbfJoxAKExIwnJAiJ4r8v1t+QgiQF862N+jlgSYtDxdzucDLE0Nfr/3W2Fqeo0XtUVq9cS0J
Qk9ijb615CXWhkxzJW90Jf1wryLjGnnn1rWglTYC72+Hf1iP6Z6CMAz/f6OuqNV2u282AxGPJhDG
ozSF2SyAA9deWhSVNdX1MAR0s7lb4RrBNUAr4+FjzhT6t4e+e+67x7576bunvuu2H6/gV661NXzu
BTM8zXB6wIbMGmkzDiAQZ3vzeRAe7R2fTqH+vpBgJyuzESTR7tcYrMEtlx6HMUUE5KCIx7/leZT8
kOfbPP8rL1l5nLPyJGXlacTLFSufTFh5FvPygpXnGStXPHWKp67gqStZ6lQU8XKWOhWz1Kkk5uUs
dSplqVOThJez1KmMpU7lPHWKp07x1BU8dSVPXfm3OgjeAVBLAwQUAAIACADNXmJH5Xap8WcAAABp
AAAALAAcAGVkaXRpbmcvbWFjL3NlbGVjdGlvbi93b3JkLXRoYWktZXhwZWN0ZWQudHh0VVQJAANy
vzdWcr83VnV4CwABBPUBAAAEFAAAAHPJL03KSdVNzslMzs7MS1dIzKssz0gtSlXIz1MoycgsVijP
L0qxUniws+HBjnkPdnQ92LH4wY5ZD3bsADO2KhRn5JfmpCgUp+akJpcoZAJRHpAsVkjNK8ksSi2p
1OPiCnAMDubiAgBQSwMEFAACAAgAzV5iR9i6o4TdCAAA0zEAADAAHABlZGl0aW5nL21hYy9zZWxl
Y3Rpb24vd29yZC10aGFpLXByZXR0eS1kaWZmLmh0bWxVVAkAA3K/N1ZyvzdWdXgLAAEE9QEAAAQU
AAAAzVvbbuO4Gb7PUwgJ2rSLSLLks5NJMZMDWnRbLJpF97KgLMriRBK9Ip3Y0xbodR+hF73pMxRI
3yaP0p8nWZIlJ6vuoprBxLJIkd/3Hz8qmKuYp8n1yVWMUQgfKebIWsYoZ5h/ON/wyJ6dw23Gdwm+
PlkkJHu8sBZPhBGOQ+vPJxb84XjL7RAvaY44odnCymiGL+VQQPMQ53ZAOafpwvLWWyuEaxxenvz1
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
AwQUAAIACADOXmJH/VT37u0AAADEAQAANwAcAGVkaXRpbmcvcGFzdGVib2FyZC9jYW4tcmVhZC1p
bi1kcmFnc3RhcnQtZXZlbnQtZGlmZi50eHRVVAkAA3S/N1Z0vzdWdXgLAAEE9QEAAAQUAAAAvY89
T8MwEIb3/Ip365A4ViVYmCLaToiFAJ0v8Sm1cD5kn6H599glgn/AYvv0+p7nTikF/T67OHLQRxLS
p3Orz9w9Wdmux2id0S/smAJrR+scRQkHUZ5DdBI0Gyt2GvRCQbibyRvd05RiMspOyngagpAXxZ88
pfO6cC9sarlKUZblvw9AvURyN33TQO2re5T76g5NU6C14+IYGQ+5kMCkmRA4PaJPDhB+cbjhkFTo
GNmGjvqPGq8zfJxS/wYaaUpCt1YIGb/ipz2DhszMH3fHVOGZd0iLjpnbsZu/6gIFtqj42+QB7dvh
cGrbFH8DUEsDBBQAAgAIAM5eYkc2UqNpgAAAAK8AAAA7ABwAZWRpdGluZy9wYXN0ZWJvYXJkL2Nh
bi1yZWFkLWluLWRyYWdzdGFydC1ldmVudC1leHBlY3RlZC50eHRVVAkAA3S/N1Z0vzdWdXgLAAEE
9QEAAAQUAAAAPc0xDsIwDAXQ3af4WxfUA7AWRqbAAZzGChVJihKnqLcnERWbLf//bJb4DgKVotAn
Kxwro0gbal6SB8Nl9kU5K2STpJg5wQqysIPl+TXiviLX1PoHFDlVDmE/oXR+x6/eId/NHhwubcNN
BkiQ2F0rYf2MRMeB/n/PMI9puhpD9AVQSwMEFAACAAgAzl5iR4xSwHfTBwAAxBkAAD8AHABlZGl0
aW5nL3Bhc3RlYm9hcmQvY2FuLXJlYWQtaW4tZHJhZ3N0YXJ0LWV2ZW50LXByZXR0eS1kaWZmLmh0
bWxVVAkAA3S/N1Z0vzdWdXgLAAEE9QEAAAQUAAAAvVlrb+O4Ff2eX0Ek6AZYRLId29PYmUnRyQMF
ulss1tPux4ISKYsTStSSVGJPu/+9ly9ZkiUnRRfdwY4lPi7PfZ17qfmY64LfnX3MKSbwU1CNUZpj
qaj+dFnrLLq5hGGl95zena05K5+v0PqFKaYpQf86Q/CfpjsdEZoKiTUT5RqVoqS3dioRklAZJUJr
UazRrNohAs+U3J79dubEeSGp4EKu0cV0vrJz8RPj9IFlmZ9PcPq8laIuSRSWZjfmT/sgd4ISnBF0
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
qOI8Q/al56imSP1o6igPD3S5+b9ocrKBk7/UQKKvMntdQ5PFn7HwgCntWIMWvh1oN+moE47Yx0+h
g3FCAoWzGdvx3swJ+vLDjz/98vF0Q4+kROfDCBHogPlnrP8BUEsDBBQAAgAIANBeYkfSVUMS7AAA
AJsCAAAkABwAZWRpdGluZy9zZWxlY3Rpb24vNTMzMzcyNS1hY3R1YWwudHh0VVQJAAN3vzdWd783
VnV4CwABBPUBAAAEFAAAAK3SQWvCMBgG4Ht/xUt3ceAhaWvNvCkeFHQTFWHHro0YFhKpEevK/vui
rdUWRA87BT6e9w0fiYyOPEVk0CJt8oqd+OFghGQhIQ4w5yrh6Urwwx0in4gPpI6/kY+W08nvXVph
nRyRDz6Gn4VlbVbaLguyDgvOtlE9HK+azSdNWYkvfKykUBz5YtZ/bwZ879ZfEkueGeQvxh6PAsBJ
Id2rKzyIxGys7MEl1PNd50G771X1NKzX18oLV7TT0LYHHff/dw3Ys8sW8mbbsMveXCeOUm562Oqd
MEIreNBrxBshE9DqpmpEyoe0gy/7C5w/UEsDBBQAAgAIANBeYkfqcZGgBgEAAE4CAAAiABwAZWRp
dGluZy9zZWxlY3Rpb24vNTMzMzcyNS1kaWZmLnR4dFVUCQADd783Vne/N1Z1eAsAAQT1AQAABBQA
AAC1UDtPwzAQ3vMrTmUBpcZ5tDRkCqgMFRJCLWpnNzmoJWNX8VmkRPx3TKAhC0MHPNzpPn2POzPG
gK+Ncq9o+VyQ4HebFd/g9l7ST7t1UlV8iQqFRa7EwThihJZYjdYpshwrSVK/cOs5JUmj+TRN01ky
ZdjsPYLVJTUUhGH4n1miJCdUl1QUwOJkPIXQ1wkURQDHt0RdYb3QSmqEdvV48/ABguA8GkcXYOU7
Qpo0cfYrOEqesCFoz8i3b8Uk+1sC8MWD2ukB9U1WtPPcHEZXs+x6FLD+CLAkasphb6zs5gjMM5Q7
/xsQ96k9FEE7X6w7YGuqw9DI75r7+N4oOckoLEWNwz1Ok38CUEsDBBQAAgAIANBeYkc8gUOe/gAA
AO0CAAAmABwAZWRpdGluZy9zZWxlY3Rpb24vNTMzMzcyNS1leHBlY3RlZC50eHRVVAkAA3e/N1Z3
vzdWdXgLAAEE9QEAAAQUAAAArZJda8IwFIbv+yteupsNvEjaWrPeTbyYsC82EXbZtRHDQjLaDOvK
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
dGluZy91bmRvL3VuZG8tc21hcnQtZGVsZXRlLXdvcmQtYWN0dWFsLnR4dFVUCQADdr83Vna/N1Z1
eAsAAQT1AQAABBQAAACNjT0OgkAUhPs9xVxAItIIHUE0JigFdMZiYZ+CrjzDLmI8vfiT2GhiMc3M
NzNRus7SJMYqzrJwEQfQdUOYTANsuDhQaZHT1W5F9J3zA7iu/yP1xv+teO5rJSdjTQCRkX5UJHpu
FS61hOKu0DQqdV0eHcyG3JKDvKIGXaMYtiKojwtzliUNrrTYs4U5yda+AQVTcacVGu5RDOjzjJQj
dswoZDvoJubhMoln4g5QSwMEFAACAAgAz15iR64vzyUZAQAAKAIAACwAHABlZGl0aW5nL3VuZG8v
dW5kby1zbWFydC1kZWxldGUtd29yZC1kaWZmLnR4dFVUCQADdr83Vne/N1Z1eAsAAQT1AQAABBQA
AAC9UbFOw0AM3fMVb0+vRyhDmymFBoQoFJGKDojhkjNt4Jqrcj5a+HquaSWmSkwMtiX72c/PFkJA
Plvj1+TkRLGS+aKQCyrvaj6GS18bLZ/IkHIkjfqyngWTY9GS84adJF1z3Sylb7TtnHBr1bLQoYdJ
bG2rBe02VDHpPu84iuP4f1hVxV6ZjjPLIJLeBeKkN0SWRfHV7KGYTXPc50UxvslTmLohnA9TvNjy
PSyLOe349SRwlCJJRqfKg7M/zhkkhzkB5diliFAEAaFLYS8Bn7WCtr40JCpTVx99TDqBfcxX1GAv
HLwi6N8s3EZVFLKKsbSM7i5HgIZbWW80GrtFGaAdWfhLhDdrUao22HckHsdFkU+i+Hp8Ow3xB1BL
AwQUAAIACADPXmJH91VdInMAAACSAAAAMAAcAGVkaXRpbmcvdW5kby91bmRvLXNtYXJ0LWRlbGV0
ZS13b3JkLWV4cGVjdGVkLnR4dFVUCQADdr83Vna/N1Z1eAsAAQT1AQAABBQAAABFjUEKAjEQBO95
RX/APMCbsN6F7AcmmdEsxowkExd8vUEED32pLqhVuvUjXJAiyUDYtTFeG4F1xCKHVLZ091jmb+Kx
ZqkYlRWWBfyn6E9KMikZbmroD2r2Exg96yiMqjviVL8xYe+uqojU5t7ucgrhvLgPUEsDBBQAAgAI
ANBeYkdNcgqRJggAANMcAAA0ABwAZWRpdGluZy91bmRvL3VuZG8tc21hcnQtZGVsZXRlLXdvcmQt
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
n16Y1Q6sShfm/j/sC1BLAwQUAAIACADPXmJH3Uvd7vQAAAAlAgAATAAcAGZhc3QvYXR0YWNobWVu
dC9hdHRhY2htZW50LXNlbGVjdC1vbi1jbGljay1pbnNpZGUtdXNlci1zZWxlY3QtYWxsLWFjdHVh
bC50eHRVVAkAA3W/N1Z1vzdWdXgLAAEE9QEAAAQUAAAAjdHfa8IwEAfw9/4VR32Z4EPijzb6VufA
wdxgBGGPsb3SsNpIzLCu+L8vWpu5QodPgcvn7r4kuTiiBmHggQxIH/byG4ERUgaEeADvWCSo1xIP
HSTvaJ+OXPc8V/EnVEu+ejl1SWdVcoRq/rb4qCkbsCsN2bgMwwttDV48r9tz/+CGcywNVD1jj8ZP
xk3DqKTMeYAzAv1V3LiDTExm4Qz8y+0GU6UR/NaWyBgRZ1ss7K6I8+hxuXp65fXCcPibcHpHQDq5
iRj8F7GRdcjgHLIGIjWofS8WGs0MdmovjVQFUAoqhTiTeQJDt9OV6PVVbWFjf8T7AVBLAwQUAAIA
CADPXmJHRSOv3CgBAACwAgAASgAcAGZhc3QvYXR0YWNobWVudC9hdHRhY2htZW50LXNlbGVjdC1v
bi1jbGljay1pbnNpZGUtdXNlci1zZWxlY3QtYWxsLWRpZmYudHh0VVQJAAN1vzdWdb83VnV4CwAB
BPUBAAAEFAAAAM2QT08CMRDF73yKCV40u7UsgiucFoVEY/SAGziX7hAay5a007hI/O7W5a9ejDd7
men0/V5fyxgDPjHaL9HxoSDBR9MXPsXZo6JdufVKF3yMGoVDrsXaeGKEjphF5zU5PheOuCAScrHE
8rRlLmCSmCmZ1Eq+MlU6VSDzDu3+TGjNsFqFFotLqqgRRdF/yCQkeaHrRFkGrBd3IerFHciyBuzX
GMsC7eDgDZtBng/u7p9Gz/kHCILztB23LsCpd4S0V6XpTzbHKlBnFMoWSLqtuNvZIddXVXJzRAC+
dGB9+U36pgpaBG0fmluBmBPaZmP3GmVKcCQs9WFlnKr3LTBzkIvwi6HdX38YJbAZPkzqwcwU61Oj
ELofchyMkuSItX93iqSweBrkj/wnUEsDBBQAAgAIAM9eYkfVKJM3BgEAAHcCAABOABwAZmFzdC9h
dHRhY2htZW50L2F0dGFjaG1lbnQtc2VsZWN0LW9uLWNsaWNrLWluc2lkZS11c2VyLXNlbGVjdC1h
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
dHh0VVQFAANZvzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAwV5iR6TYosT/AAAA6wEAAD4A
GAAAAAAAAQAAAKSBTDgAAGFjY2Vzc2liaWxpdHkvbWFjL2VkaXRhYmxlLXdlYmFyZWEtY29udGV4
dC1tZW51LXBvaW50LWRpZmYudHh0VVQFAANZvzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
wV5iR3uA/aXpAAAAaAIAAEIAGAAAAAAAAQAAAKSBwzkAAGFjY2Vzc2liaWxpdHkvbWFjL2VkaXRh
YmxlLXdlYmFyZWEtY29udGV4dC1tZW51LXBvaW50LWV4cGVjdGVkLnR4dFVUBQADWb83VnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAMFeYkfihT7jMQgAABocAABGABgAAAAAAAEAAACkgSg7AABh
Y2Nlc3NpYmlsaXR5L21hYy9lZGl0YWJsZS13ZWJhcmVhLWNvbnRleHQtbWVudS1wb2ludC1wcmV0
dHktZGlmZi5odG1sVVQFAANZvzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAvF5iRwAAAAAA
AAAAAAAAAAsAGAAAAAAAAAAQAO1B2UMAAGFuaW1hdGlvbnMvVVQFAANTvzdWdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAvF5iRwAAAAAAAAAAAAAAAA4AGAAAAAAAAAAQAO1BHkQAAGFuaW1hdGlv
bnMvM2QvVVQFAANTvzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAvF5iRyKFoRe/AAAAGwEA
ADYAGAAAAAAAAQAAAKSBZkQAAGFuaW1hdGlvbnMvM2QvY2hhbmdlLXRyYW5zZm9ybS1pbi1lbmQt
ZXZlbnQtc3RkZXJyLnR4dFVUBQADU783VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALxeYkfL
e2W7uwAAABsBAAArABgAAAAAAAEAAACkgZVFAABhbmltYXRpb25zL2FkZGVkLXdoaWxlLXN1c3Bl
bmRlZC1zdGRlcnIudHh0VVQFAANTvzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAvF5iRwAA
AAAAAAAAAAAAAAcAGAAAAAAAAAAQAO1BtUYAAGNhbnZhcy9VVAUAA1O/N1Z1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAAC8XmJHAAAAAAAAAAAAAAAADgAYAAAAAAAAABAA7UH2RgAAY2FudmFzL3Bo
aWxpcC9VVAUAA1O/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAC8XmJHAAAAAAAAAAAAAAAA
FAAYAAAAAAAAABAA7UE+RwAAY2FudmFzL3BoaWxpcC90ZXN0cy9VVAUAA1O/N1Z1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACAC8XmJHzjldnb4AAAAbAQAAMQAYAAAAAAABAAAApIGMRwAAY2FudmFz
L3BoaWxpcC90ZXN0cy8yZC5jYW52YXMucmVhZG9ubHktc3RkZXJyLnR4dFVUBQADU783VnV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAMNeYkcAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQbVIAABj
b21wb3NpdGluZy9VVAUAA12/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC8XmJHRhx6W5oA
AAC4AAAAOAAYAAAAAAABAAAApIH7SAAAY29tcG9zaXRpbmcvYWJzb2x1dGUtaW5zaWRlLW91dC1v
Zi12aWV3LWZpeGVkLXN0ZGVyci50eHRVVAUAA1O/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AAC8XmJHAAAAAAAAAAAAAAAAFgAYAAAAAAAAABAA7UEHSgAAY29tcG9zaXRpbmcvYW5pbWF0aW9u
L1VUBQADU783VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALxeYkcgwBhCwAAAAB4BAABCABgA
AAAAAAEAAACkgVdKAABjb21wb3NpdGluZy9hbmltYXRpb24vYW5pbWF0ZWQtY29tcG9zaXRlZC1p
bnNpZGUtaGlkZGVuLXN0ZGVyci50eHRVVAUAA1O/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AAC8XmJHAAAAAAAAAAAAAAAAIAAYAAAAAAAAABAA7UGTSwAAY29tcG9zaXRpbmcvYmFja2ZhY2Ut
dmlzaWJpbGl0eS9VVAUAA1O/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC8XmJHalYYxpsA
AAC4AAAAQQAYAAAAAAABAAAApIHtSwAAY29tcG9zaXRpbmcvYmFja2ZhY2UtdmlzaWJpbGl0eS9i
YWNrZmFjZS12aXNpYmlsaXR5LTNkLXN0ZGVyci50eHRVVAUAA1O/N1Z1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAAC8XmJHAAAAAAAAAAAAAAAAHQAYAAAAAAAAABAA7UEDTQAAY29tcG9zaXRpbmcv
YmFja2dyb3VuZC1jb2xvci9VVAUAA1S/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC8XmJH
kT+i3boAAAAbAQAASwAYAAAAAAABAAAApIFaTQAAY29tcG9zaXRpbmcvYmFja2dyb3VuZC1jb2xv
ci9iYWNrZ3JvdW5kLWNvbG9yLWFscGhhLXdpdGgtb3BhY2l0eS1zdGRlcnIudHh0VVQFAANUvzdW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAvF5iRwAAAAAAAAAAAAAAABgAGAAAAAAAAAAQAO1B
mU4AAGNvbXBvc2l0aW5nL2JhY2tncm91bmRzL1VUBQADVL83VnV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIALxeYkc7mWxmmgAAALgAAABBABgAAAAAAAEAAACkgetOAABjb21wb3NpdGluZy9iYWNr
Z3JvdW5kcy9maXhlZC1iYWNrZ3JvdW5kLW9uLWRlc2NlbmRhbnQtc3RkZXJyLnR4dFVUBQADVL83
VnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALxeYkcAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADt
QQBQAABjb21wb3NpdGluZy9iYWNraW5nL1VUBQADVL83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIALxeYkdpwoRimwAAALgAAAA3ABgAAAAAAAEAAACkgU5QAABjb21wb3NpdGluZy9iYWNraW5n
L2JhY2tmYWNlLXZpc2liaWxpdHktZmxpcC1zdGRlcnIudHh0VVQFAANUvzdWdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAw15iRwAAAAAAAAAAAAAAABUAGAAAAAAAAAAQAO1BWlEAAGNvbXBvc2l0
aW5nL2dlb21ldHJ5L1VUBQADXb83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMNeYkdOccQk
4QAAAE4DAAAuABgAAAAAAAEAAACkgalRAABjb21wb3NpdGluZy9nZW9tZXRyeS9vdXRsaW5lLWNo
YW5nZS1zdGRlcnIudHh0VVQFAANdvzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAwF5iRwAA
AAAAAAAAAAAAABQAGAAAAAAAAAAQAO1B8lIAAGNvbXBvc2l0aW5nL2lmcmFtZXMvVVQFAANXvzdW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAwF5iR7DrintVAAAAVwAAADsAGAAAAAAAAQAAAKSB
QFMAAGNvbXBvc2l0aW5nL2lmcmFtZXMvbGF5b3V0LW9uLWNvbXBvc2l0aW5nLWNoYW5nZS1hY3R1
YWwudHh0VVQFAANXvzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAwF5iR46YBm3UAAAAjgEA
ADkAGAAAAAAAAQAAAKSBClQAAGNvbXBvc2l0aW5nL2lmcmFtZXMvbGF5b3V0LW9uLWNvbXBvc2l0
aW5nLWNoYW5nZS1kaWZmLnR4dFVUBQADV783VnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAAMBe
Ykc1SrFIJwAAACcAAAA9ABgAAAAAAAEAAACkgVFVAABjb21wb3NpdGluZy9pZnJhbWVzL2xheW91
dC1vbi1jb21wb3NpdGluZy1jaGFuZ2UtZXhwZWN0ZWQudHh0VVQFAANXvzdWdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAwF5iR0h9bsDRBwAA2xgAAEEAGAAAAAAAAQAAAKSB71UAAGNvbXBvc2l0
aW5nL2lmcmFtZXMvbGF5b3V0LW9uLWNvbXBvc2l0aW5nLWNoYW5nZS1wcmV0dHktZGlmZi5odG1s
VVQFAANXvzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAyl5iRwAAAAAAAAAAAAAAAAUAGAAA
AAAAAAAQAO1BO14AAGNzczMvVVQFAANsvzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAyl5i
RwAAAAAAAAAAAAAAACEAGAAAAAAAAAAQAO1Bel4AAGNzczMvdmlld3BvcnQtcGVyY2VudGFnZS1s
ZW5ndGhzL1VUBQADbL83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMpeYkftjK/kt0AAAAVn
AAA1ABgAAAAAAAAAAACkgdVeAABjc3MzL3ZpZXdwb3J0LXBlcmNlbnRhZ2UtbGVuZ3Rocy92aC1y
ZXNpemUtYWN0dWFsLnBuZ1VUBQADbL83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMpeYkf8
gkypWxYAAEMeAAAzABgAAAAAAAAAAACkgfufAABjc3MzL3ZpZXdwb3J0LXBlcmNlbnRhZ2UtbGVu
Z3Rocy92aC1yZXNpemUtZGlmZi5wbmdVVAUAA2y/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADKXmJHihDNDpcFAAAjEgAANQAYAAAAAAABAAAApIHDtgAAY3NzMy92aWV3cG9ydC1wZXJjZW50
YWdlLWxlbmd0aHMvdmgtcmVzaXplLWRpZmZzLmh0bWxVVAUAA2y/N1Z1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADKXmJHTULKYiwBAADwAQAAOAAYAAAAAAABAAAApIHJvAAAY3NzMy92aWV3cG9y
dC1wZXJjZW50YWdlLWxlbmd0aHMvdmgtcmVzaXplLWV4cGVjdGVkLmh0bWxVVAUAA2y/N1Z1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACADKXmJHwm6cUs02AACRXQAANwAYAAAAAAAAAAAApIFnvgAA
Y3NzMy92aWV3cG9ydC1wZXJjZW50YWdlLWxlbmd0aHMvdmgtcmVzaXplLWV4cGVjdGVkLnBuZ1VU
BQADbL83VnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAM9eYkcAAAAAAAAAAAAAAAAIABgAAAAA
AAAAEADtQaX1AABlZGl0aW5nL1VUBQADdr83VnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANBe
YkcAAAAAAAAAAAAAAAARABgAAAAAAAAAEADtQef1AABlZGl0aW5nL2RlbGV0aW5nL1VUBQADd783
VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM9eYkeUy67tmgIAAE8JAAAsABgAAAAAAAEAAACk
gTL2AABlZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS0wMDEtYWN0dWFsLnR4dFVUBQADdr83
VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM9eYke9LTkdXwIAAIAJAAAqABgAAAAAAAEAAACk
gTL5AABlZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS0wMDEtZGlmZi50eHRVVAUAA3a/N1Z1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADPXmJHuXOgQokCAAACCgAALgAYAAAAAAABAAAApIH1
+wAAZWRpdGluZy9kZWxldGluZy9zbWFydC1kZWxldGUtMDAxLWV4cGVjdGVkLnR4dFVUBQADdr83
VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM9eYkdhGhdtJAoAAA8xAAAyABgAAAAAAAEAAACk
geb+AABlZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS0wMDEtcHJldHR5LWRpZmYuaHRtbFVU
BQADdr83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM9eYkc8+zuumQIAAPMJAAAsABgAAAAA
AAEAAACkgXYJAQBlZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS0wMDItYWN0dWFsLnR4dFVU
BQADdr83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM9eYkexfxWTSQIAAGUJAAAqABgAAAAA
AAEAAACkgXUMAQBlZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS0wMDItZGlmZi50eHRVVAUA
A3a/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADPXmJHvkbCd4sCAAC2CgAALgAYAAAAAAAB
AAAApIEiDwEAZWRpdGluZy9kZWxldGluZy9zbWFydC1kZWxldGUtMDAyLWV4cGVjdGVkLnR4dFVU
BQADdr83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANBeYkcGiWHUEAoAANYwAAAyABgAAAAA
AAEAAACkgRUSAQBlZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS0wMDItcHJldHR5LWRpZmYu
aHRtbFVUBQADd783VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANBeYkclkLHOCwIAADMFAAAs
ABgAAAAAAAEAAACkgZEcAQBlZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS0wMDMtYWN0dWFs
LnR4dFVUBQADd783VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANBeYkf0F7CHnQIAABAMAAAq
ABgAAAAAAAEAAACkgQIfAQBlZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS0wMDMtZGlmZi50
eHRVVAUAA3e/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADQXmJHEAFBvz8CAAACCgAALgAY
AAAAAAABAAAApIEDIgEAZWRpdGluZy9kZWxldGluZy9zbWFydC1kZWxldGUtMDAzLWV4cGVjdGVk
LnR4dFVUBQADd783VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANBeYkezd8diGwoAAHc2AAAy
ABgAAAAAAAEAAACkgaokAQBlZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS0wMDMtcHJldHR5
LWRpZmYuaHRtbFVUBQADd783VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANBeYkdB5AebDAIA
ADsFAAAsABgAAAAAAAEAAACkgTEvAQBlZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS0wMDQt
YWN0dWFsLnR4dFVUBQADd783VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANBeYkemGsULoQIA
ABkMAAAqABgAAAAAAAEAAACkgaMxAQBlZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS0wMDQt
ZGlmZi50eHRVVAUAA3e/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADQXmJHjRItFUQCAAAK
CgAALgAYAAAAAAABAAAApIGoNAEAZWRpdGluZy9kZWxldGluZy9zbWFydC1kZWxldGUtMDA0LWV4
cGVjdGVkLnR4dFVUBQADd783VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANBeYkdIo1YIHgoA
AIA2AAAyABgAAAAAAAEAAACkgVQ3AQBlZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS0wMDQt
cHJldHR5LWRpZmYuaHRtbFVUBQADd783VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANBeYkdx
2NUuqAAAAOUAAABFABgAAAAAAAEAAACkgd5BAQBlZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0
ZS1hY3Jvc3MtZWRpdGFibGUtYm91bmRhcmllcy0yLWFjdHVhbC50eHRVVAUAA3e/N1Z1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADQXmJHs3EATBsBAAATAgAAQwAYAAAAAAABAAAApIEFQwEAZWRp
dGluZy9kZWxldGluZy9zbWFydC1kZWxldGUtYWNyb3NzLWVkaXRhYmxlLWJvdW5kYXJpZXMtMi1k
aWZmLnR4dFVUBQADd783VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANBeYkfE0ar7owAAANwA
AABHABgAAAAAAAEAAACkgZ1EAQBlZGl0aW5nL2RlbGV0aW5nL3NtYXJ0LWRlbGV0ZS1hY3Jvc3Mt
ZWRpdGFibGUtYm91bmRhcmllcy0yLWV4cGVjdGVkLnR4dFVUBQADd783VnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIANBeYkfCicv7BQgAAMcaAABLABgAAAAAAAEAAACkgcFFAQBlZGl0aW5nL2Rl
bGV0aW5nL3NtYXJ0LWRlbGV0ZS1hY3Jvc3MtZWRpdGFibGUtYm91bmRhcmllcy0yLXByZXR0eS1k
aWZmLmh0bWxVVAUAA3e/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADNXmJHAAAAAAAAAAAA
AAAAFAAYAAAAAAAAABAA7UFLTgEAZWRpdGluZy9leGVjQ29tbWFuZC9VVAUAA3K/N1Z1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADNXmJHF+RsTBoCAAA6BwAAKwAYAAAAAAABAAAApIGZTgEAZWRp
dGluZy9leGVjQ29tbWFuZC9maW5kU3RyaW5nLTItYWN0dWFsLnR4dFVUBQADcr83VnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAM1eYkdM64Tn/wEAAHUIAAApABgAAAAAAAEAAACkgRhRAQBlZGl0
aW5nL2V4ZWNDb21tYW5kL2ZpbmRTdHJpbmctMi1kaWZmLnR4dFVUBQADcr83VnV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAM1eYkeFwXELHgIAADsHAAAtABgAAAAAAAEAAACkgXpTAQBlZGl0aW5n
L2V4ZWNDb21tYW5kL2ZpbmRTdHJpbmctMi1leHBlY3RlZC50eHRVVAUAA3K/N1Z1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADNXmJHpYiCIVsJAAC0KQAAMQAYAAAAAAABAAAApIH/VQEAZWRpdGlu
Zy9leGVjQ29tbWFuZC9maW5kU3RyaW5nLTItcHJldHR5LWRpZmYuaHRtbFVUBQADcr83VnV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAM1eYkcAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQcVfAQBl
ZGl0aW5nL21hYy9VVAUAA3G/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADNXmJHAAAAAAAA
AAAAAAAAFgAYAAAAAAAAABAA7UELYAEAZWRpdGluZy9tYWMvc2VsZWN0aW9uL1VUBQADcr83VnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM1eYkdxzrMK0AAAAIwBAABLABgAAAAAAAEAAACkgVtg
AQBlZGl0aW5nL21hYy9zZWxlY3Rpb24vZG91YmxlY2xpY2stc2hvdWxkLW5vdC1leHBhbmQtYWNy
b3NzLWxpbmVzLWFjdHVhbC50eHRVVAUAA3G/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADN
XmJH47Th3yoBAAABAwAASQAYAAAAAAABAAAApIGwYQEAZWRpdGluZy9tYWMvc2VsZWN0aW9uL2Rv
dWJsZWNsaWNrLXNob3VsZC1ub3QtZXhwYW5kLWFjcm9zcy1saW5lcy1kaWZmLnR4dFVUBQADcb83
VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM1eYkeozAGJvQAAAF8BAABNABgAAAAAAAEAAACk
gV1jAQBlZGl0aW5nL21hYy9zZWxlY3Rpb24vZG91YmxlY2xpY2stc2hvdWxkLW5vdC1leHBhbmQt
YWNyb3NzLWxpbmVzLWV4cGVjdGVkLnR4dFVUBQADcb83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAM1eYkcFaCnNUggAANcfAABRABgAAAAAAAEAAACkgaFkAQBlZGl0aW5nL21hYy9zZWxlY3Rp
b24vZG91YmxlY2xpY2stc2hvdWxkLW5vdC1leHBhbmQtYWNyb3NzLWxpbmVzLXByZXR0eS1kaWZm
Lmh0bWxVVAUAA3G/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADNXmJHaHRZBfQAAACoBwAA
KgAYAAAAAAABAAAApIF+bQEAZWRpdGluZy9tYWMvc2VsZWN0aW9uL3dvcmQtdGhhaS1hY3R1YWwu
dHh0VVQFAANyvzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAzV5iRy/Rb3RpAQAAwggAACgA
GAAAAAAAAQAAAKSB1m4BAGVkaXRpbmcvbWFjL3NlbGVjdGlvbi93b3JkLXRoYWktZGlmZi50eHRV
VAUAA3K/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADNXmJH5Xap8WcAAABpAAAALAAYAAAA
AAABAAAApIGhcAEAZWRpdGluZy9tYWMvc2VsZWN0aW9uL3dvcmQtdGhhaS1leHBlY3RlZC50eHRV
VAUAA3K/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADNXmJH2LqjhN0IAADTMQAAMAAYAAAA
AAABAAAApIFucQEAZWRpdGluZy9tYWMvc2VsZWN0aW9uL3dvcmQtdGhhaS1wcmV0dHktZGlmZi5o
dG1sVVQFAANyvzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAzl5iRwAAAAAAAAAAAAAAABMA
GAAAAAAAAAAQAO1BtXoBAGVkaXRpbmcvcGFzdGVib2FyZC9VVAUAA3S/N1Z1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADNXmJH/lq+lbEBAAALBQAAJwAYAAAAAAABAAAApIECewEAZWRpdGluZy9w
YXN0ZWJvYXJkLzQ5NDQ3NzAtMi1hY3R1YWwudHh0VVQFAANyvzdWdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAzV5iR+Yky0yPAQAAigQAACUAGAAAAAAAAQAAAKSBFH0BAGVkaXRpbmcvcGFzdGVi
b2FyZC80OTQ0NzcwLTItZGlmZi50eHRVVAUAA3K/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADNXmJHA4DSTa8BAAALBQAAKQAYAAAAAAABAAAApIECfwEAZWRpdGluZy9wYXN0ZWJvYXJkLzQ5
NDQ3NzAtMi1leHBlY3RlZC50eHRVVAUAA3K/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADN
XmJHsbhK1g4JAAA2JgAALQAYAAAAAAABAAAApIEUgQEAZWRpdGluZy9wYXN0ZWJvYXJkLzQ5NDQ3
NzAtMi1wcmV0dHktZGlmZi5odG1sVVQFAANyvzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
zl5iR6vr0/RyAAAAnAAAADkAGAAAAAAAAQAAAKSBiYoBAGVkaXRpbmcvcGFzdGVib2FyZC9jYW4t
cmVhZC1pbi1kcmFnc3RhcnQtZXZlbnQtYWN0dWFsLnR4dFVUBQADdL83VnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAM5eYkf9VPfu7QAAAMQBAAA3ABgAAAAAAAEAAACkgW6LAQBlZGl0aW5nL3Bh
c3RlYm9hcmQvY2FuLXJlYWQtaW4tZHJhZ3N0YXJ0LWV2ZW50LWRpZmYudHh0VVQFAAN0vzdWdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAzl5iRzZSo2mAAAAArwAAADsAGAAAAAAAAQAAAKSBzIwB
AGVkaXRpbmcvcGFzdGVib2FyZC9jYW4tcmVhZC1pbi1kcmFnc3RhcnQtZXZlbnQtZXhwZWN0ZWQu
dHh0VVQFAAN0vzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAzl5iR4xSwHfTBwAAxBkAAD8A
GAAAAAAAAQAAAKSBwY0BAGVkaXRpbmcvcGFzdGVib2FyZC9jYW4tcmVhZC1pbi1kcmFnc3RhcnQt
ZXZlbnQtcHJldHR5LWRpZmYuaHRtbFVUBQADdL83VnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
ANFeYkcAAAAAAAAAAAAAAAASABgAAAAAAAAAEADtQQ2WAQBlZGl0aW5nL3NlbGVjdGlvbi9VVAUA
A3m/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADNXmJHvROnx4wBAAAqBAAAIgAYAAAAAAAB
AAAApIFZlgEAZWRpdGluZy9zZWxlY3Rpb24vMTQ5NzEtYWN0dWFsLnR4dFVUBQADcr83VnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAM1eYkcTni8eDQEAAIECAAAgABgAAAAAAAEAAACkgUGYAQBl
ZGl0aW5nL3NlbGVjdGlvbi8xNDk3MS1kaWZmLnR4dFVUBQADcr83VnV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAM1eYkdvSYZkmwEAAI4EAAAkABgAAAAAAAEAAACkgaiZAQBlZGl0aW5nL3NlbGVj
dGlvbi8xNDk3MS1leHBlY3RlZC50eHRVVAUAA3K/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIA
CADOXmJHL9S/UvQHAAAAGwAAKAAYAAAAAAABAAAApIGhmwEAZWRpdGluZy9zZWxlY3Rpb24vMTQ5
NzEtcHJldHR5LWRpZmYuaHRtbFVUBQADc783VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM5e
YkeRfEEQRQIAACsGAAAmABgAAAAAAAEAAACkgfejAQBlZGl0aW5nL3NlbGVjdGlvbi80ODk1NDI4
LTItYWN0dWFsLnR4dFVUBQADc783VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM5eYkezdAhU
awEAAG8DAAAkABgAAAAAAAEAAACkgZymAQBlZGl0aW5nL3NlbGVjdGlvbi80ODk1NDI4LTItZGlm
Zi50eHRVVAUAA3O/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADOXmJHHwWZuIwCAABBBwAA
KAAYAAAAAAABAAAApIFlqAEAZWRpdGluZy9zZWxlY3Rpb24vNDg5NTQyOC0yLWV4cGVjdGVkLnR4
dFVUBQADc783VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM5eYkdAXapzcAgAAOkeAAAsABgA
AAAAAAEAAACkgVOrAQBlZGl0aW5nL3NlbGVjdGlvbi80ODk1NDI4LTItcHJldHR5LWRpZmYuaHRt
bFVUBQADc783VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM5eYkdd7OS6OAIAAIEGAAAmABgA
AAAAAAEAAACkgSm0AQBlZGl0aW5nL3NlbGVjdGlvbi80ODk1NDI4LTMtYWN0dWFsLnR4dFVUBQAD
c783VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM5eYkf2C89DJwEAAIACAAAkABgAAAAAAAEA
AACkgcG2AQBlZGl0aW5nL3NlbGVjdGlvbi80ODk1NDI4LTMtZGlmZi50eHRVVAUAA3O/N1Z1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACADOXmJHWz2AQDcCAAA2BgAAKAAYAAAAAAABAAAApIFGuAEA
ZWRpdGluZy9zZWxlY3Rpb24vNDg5NTQyOC0zLWV4cGVjdGVkLnR4dFVUBQADc783VnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAM5eYkc6ewoPDggAAPgaAAAsABgAAAAAAAEAAACkgd+6AQBlZGl0
aW5nL3NlbGVjdGlvbi80ODk1NDI4LTMtcHJldHR5LWRpZmYuaHRtbFVUBQADdL83VnV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAM5eYkckWmWTsAIAAGcHAAAmABgAAAAAAAEAAACkgVPDAQBlZGl0
aW5nL3NlbGVjdGlvbi81MDU3NTA2LTItYWN0dWFsLnR4dFVUBQADdL83VnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAM5eYkcCy+VWKQEAAPYCAAAkABgAAAAAAAEAAACkgWPGAQBlZGl0aW5nL3Nl
bGVjdGlvbi81MDU3NTA2LTItZGlmZi50eHRVVAUAA3S/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACADOXmJHwwDUfMUCAAC/BwAAKAAYAAAAAAABAAAApIHqxwEAZWRpdGluZy9zZWxlY3Rpb24v
NTA1NzUwNi0yLWV4cGVjdGVkLnR4dFVUBQADdL83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AM5eYkdTo/reSggAAJUcAAAsABgAAAAAAAEAAACkgRHLAQBlZGl0aW5nL3NlbGVjdGlvbi81MDU3
NTA2LTItcHJldHR5LWRpZmYuaHRtbFVUBQADdL83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AM5eYkc0pFN+oQIAABUHAAAkABgAAAAAAAEAAACkgcHTAQBlZGl0aW5nL3NlbGVjdGlvbi81MDU3
NTA2LWFjdHVhbC50eHRVVAUAA3S/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADOXmJHwPGn
syoBAAChAgAAIgAYAAAAAAABAAAApIHA1gEAZWRpdGluZy9zZWxlY3Rpb24vNTA1NzUwNi1kaWZm
LnR4dFVUBQADdL83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM5eYkeQuqzuxgIAAL0HAAAm
ABgAAAAAAAEAAACkgUbYAQBlZGl0aW5nL3NlbGVjdGlvbi81MDU3NTA2LWV4cGVjdGVkLnR4dFVU
BQADdL83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM9eYkfxpAZCEwgAAB4bAAAqABgAAAAA
AAEAAACkgWzbAQBlZGl0aW5nL3NlbGVjdGlvbi81MDU3NTA2LXByZXR0eS1kaWZmLmh0bWxVVAUA
A3W/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADPXmJHvkCCmSYCAAC+BgAAJgAYAAAAAAAB
AAAApIHj4wEAZWRpdGluZy9zZWxlY3Rpb24vNTEzMTcxNi0xLWFjdHVhbC50eHRVVAUAA3W/N1Z1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADPXmJH69MkegkBAAAbAgAAJAAYAAAAAAABAAAApIFp
5gEAZWRpdGluZy9zZWxlY3Rpb24vNTEzMTcxNi0xLWRpZmYudHh0VVQFAAN1vzdWdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAz15iR3R/xeAnAgAAzwYAACgAGAAAAAAAAQAAAKSB0OcBAGVkaXRp
bmcvc2VsZWN0aW9uLzUxMzE3MTYtMS1leHBlY3RlZC50eHRVVAUAA3W/N1Z1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADPXmJHCVAJtvwHAAAqGgAALAAYAAAAAAABAAAApIFZ6gEAZWRpdGluZy9z
ZWxlY3Rpb24vNTEzMTcxNi0xLXByZXR0eS1kaWZmLmh0bWxVVAUAA3W/N1Z1eAsAAQT1AQAABBQA
AABQSwECHgMUAAIACADPXmJHRN8V8CQCAACqBgAAJgAYAAAAAAABAAAApIG78gEAZWRpdGluZy9z
ZWxlY3Rpb24vNTEzMTcxNi0yLWFjdHVhbC50eHRVVAUAA3W/N1Z1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADPXmJH1VYXrg8BAAAKAgAAJAAYAAAAAAABAAAApIE/9QEAZWRpdGluZy9zZWxlY3Rp
b24vNTEzMTcxNi0yLWRpZmYudHh0VVQFAAN1vzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
z15iR/lcg1UiAgAAqgYAACgAGAAAAAAAAQAAAKSBrPYBAGVkaXRpbmcvc2VsZWN0aW9uLzUxMzE3
MTYtMi1leHBlY3RlZC50eHRVVAUAA3W/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADPXmJH
4UdkbQwIAABbGgAALAAYAAAAAAABAAAApIEw+QEAZWRpdGluZy9zZWxlY3Rpb24vNTEzMTcxNi0y
LXByZXR0eS1kaWZmLmh0bWxVVAUAA3W/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADPXmJH
rDdkryACAACnBgAAJgAYAAAAAAABAAAApIGiAQIAZWRpdGluZy9zZWxlY3Rpb24vNTEzMTcxNi0z
LWFjdHVhbC50eHRVVAUAA3W/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADPXmJHknl8/AwB
AAAbAgAAJAAYAAAAAAABAAAApIEiBAIAZWRpdGluZy9zZWxlY3Rpb24vNTEzMTcxNi0zLWRpZmYu
dHh0VVQFAAN1vzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAz15iRyyEKHghAgAAuAYAACgA
GAAAAAAAAQAAAKSBjAUCAGVkaXRpbmcvc2VsZWN0aW9uLzUxMzE3MTYtMy1leHBlY3RlZC50eHRV
VAUAA3W/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADPXmJHwmhWoQUIAABLGgAALAAYAAAA
AAABAAAApIEPCAIAZWRpdGluZy9zZWxlY3Rpb24vNTEzMTcxNi0zLXByZXR0eS1kaWZmLmh0bWxV
VAUAA3a/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADPXmJHk4k5IRYCAACdBgAAJgAYAAAA
AAABAAAApIF6EAIAZWRpdGluZy9zZWxlY3Rpb24vNTEzMTcxNi00LWFjdHVhbC50eHRVVAUAA3a/
N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADPXmJH7WeBOQoBAAAaAgAAJAAYAAAAAAABAAAA
pIHwEgIAZWRpdGluZy9zZWxlY3Rpb24vNTEzMTcxNi00LWRpZmYudHh0VVQFAAN2vzdWdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAz15iRxgTEKYaAgAAsQYAACgAGAAAAAAAAQAAAKSBWBQCAGVk
aXRpbmcvc2VsZWN0aW9uLzUxMzE3MTYtNC1leHBlY3RlZC50eHRVVAUAA3a/N1Z1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADPXmJH/Xv3jwEIAAA/GgAALAAYAAAAAAABAAAApIHUFgIAZWRpdGlu
Zy9zZWxlY3Rpb24vNTEzMTcxNi00LXByZXR0eS1kaWZmLmh0bWxVVAUAA3a/N1Z1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADPXmJHK5WX/7EAAABeAQAAJgAYAAAAAAABAAAApIE7HwIAZWRpdGlu
Zy9zZWxlY3Rpb24vNTE5NTE2Ni0xLWFjdHVhbC50eHRVVAUAA3a/N1Z1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADPXmJHdV0tFx0BAABfAgAAJAAYAAAAAAABAAAApIFMIAIAZWRpdGluZy9zZWxl
Y3Rpb24vNTE5NTE2Ni0xLWRpZmYudHh0VVQFAAN2vzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAz15iR9pyh8eUAAAA7AAAACgAGAAAAAAAAQAAAKSBxyECAGVkaXRpbmcvc2VsZWN0aW9uLzUx
OTUxNjYtMS1leHBlY3RlZC50eHRVVAUAA3a/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADP
XmJHCEQ2UVEIAAB3HAAALAAYAAAAAAABAAAApIG9IgIAZWRpdGluZy9zZWxlY3Rpb24vNTE5NTE2
Ni0xLXByZXR0eS1kaWZmLmh0bWxVVAUAA3a/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADP
XmJHvsYACAQDAACBBwAAJAAYAAAAAAABAAAApIF0KwIAZWRpdGluZy9zZWxlY3Rpb24vNTIzMjE1
OS1hY3R1YWwudHh0VVQFAAN2vzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAz15iR/p1fe7X
AQAADQQAACIAGAAAAAAAAQAAAKSB1i4CAGVkaXRpbmcvc2VsZWN0aW9uLzUyMzIxNTktZGlmZi50
eHRVVAUAA3a/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADPXmJHcJTetCIDAAAJCAAAJgAY
AAAAAAABAAAApIEJMQIAZWRpdGluZy9zZWxlY3Rpb24vNTIzMjE1OS1leHBlY3RlZC50eHRVVAUA
A3a/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADQXmJHXamOj8oIAACeHAAAKgAYAAAAAAAB
AAAApIGLNAIAZWRpdGluZy9zZWxlY3Rpb24vNTIzMjE1OS1wcmV0dHktZGlmZi5odG1sVVQFAAN3
vzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA0F5iR8xFh8PhAQAA6QQAACQAGAAAAAAAAQAA
AKSBuT0CAGVkaXRpbmcvc2VsZWN0aW9uLzUyNDAyNjUtYWN0dWFsLnR4dFVUBQADd783VnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIANBeYkcTgAe2HgEAAFECAAAiABgAAAAAAAEAAACkgfg/AgBl
ZGl0aW5nL3NlbGVjdGlvbi81MjQwMjY1LWRpZmYudHh0VVQFAAN3vzdWdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgA0F5iR9x6KfrzAQAATQUAACYAGAAAAAAAAQAAAKSBckECAGVkaXRpbmcvc2Vs
ZWN0aW9uLzUyNDAyNjUtZXhwZWN0ZWQudHh0VVQFAAN3vzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgA0F5iRxYdu1cECAAAzhoAACoAGAAAAAAAAQAAAKSBxUMCAGVkaXRpbmcvc2VsZWN0aW9u
LzUyNDAyNjUtcHJldHR5LWRpZmYuaHRtbFVUBQADd783VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIANBeYkfSVUMS7AAAAJsCAAAkABgAAAAAAAEAAACkgS1MAgBlZGl0aW5nL3NlbGVjdGlvbi81
MzMzNzI1LWFjdHVhbC50eHRVVAUAA3e/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADQXmJH
6nGRoAYBAABOAgAAIgAYAAAAAAABAAAApIF3TQIAZWRpdGluZy9zZWxlY3Rpb24vNTMzMzcyNS1k
aWZmLnR4dFVUBQADd783VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANBeYkc8gUOe/gAAAO0C
AAAmABgAAAAAAAEAAACkgdlOAgBlZGl0aW5nL3NlbGVjdGlvbi81MzMzNzI1LWV4cGVjdGVkLnR4
dFVUBQADd783VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANBeYkcD5qrE7AcAAMsaAAAqABgA
AAAAAAEAAACkgTdQAgBlZGl0aW5nL3NlbGVjdGlvbi81MzMzNzI1LXByZXR0eS1kaWZmLmh0bWxV
VAUAA3e/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADNXmJHKwwai00DAAA+CQAAIQAYAAAA
AAABAAAApIGHWAIAZWRpdGluZy9zZWxlY3Rpb24vNjQ3Ni1hY3R1YWwudHh0VVQFAANyvzdWdXgL
AAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAzV5iRzHtC0s5AgAAzAUAAB8AGAAAAAAAAQAAAKSBL1wC
AGVkaXRpbmcvc2VsZWN0aW9uLzY0NzYtZGlmZi50eHRVVAUAA3K/N1Z1eAsAAQT1AQAABBQAAABQ
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
R3LaiodbAQAA9AMAACwAGAAAAAAAAQAAAKSB3J0CAGVkaXRpbmcvc2VsZWN0aW9uL2FuY2hvci1m
b2N1czMtZXhwZWN0ZWQudHh0VVQFAAN4vzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA0V5i
R1F66vcFCQAAoCEAADAAGAAAAAAAAQAAAKSBnZ8CAGVkaXRpbmcvc2VsZWN0aW9uL2FuY2hvci1m
b2N1czMtcHJldHR5LWRpZmYuaHRtbFVUBQADeb83VnV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
ANBeYkcAAAAAAAAAAAAAAAANABgAAAAAAAAAEADtQQypAgBlZGl0aW5nL3VuZG8vVVQFAAN3vzdW
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAz15iR37QGbzyAAAAnwEAADwAGAAAAAAAAQAAAKSB
U6kCAGVkaXRpbmcvdW5kby91bmRvLXNtYXJ0LWRlbGV0ZS1yZXZlcnNlZC1zZWxlY3Rpb24tYWN0
dWFsLnR4dFVUBQADdr83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM9eYkf+KlVCXgEAALkC
AAA6ABgAAAAAAAEAAACkgbuqAgBlZGl0aW5nL3VuZG8vdW5kby1zbWFydC1kZWxldGUtcmV2ZXJz
ZWQtc2VsZWN0aW9uLWRpZmYudHh0VVQFAAN2vzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
z15iR7sqame1AAAAFgEAAD4AGAAAAAAAAQAAAKSBjawCAGVkaXRpbmcvdW5kby91bmRvLXNtYXJ0
LWRlbGV0ZS1yZXZlcnNlZC1zZWxlY3Rpb24tZXhwZWN0ZWQudHh0VVQFAAN2vzdWdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAz15iR588uV1ZCAAAzBoAAEIAGAAAAAAAAQAAAKSBuq0CAGVkaXRp
bmcvdW5kby91bmRvLXNtYXJ0LWRlbGV0ZS1yZXZlcnNlZC1zZWxlY3Rpb24tcHJldHR5LWRpZmYu
aHRtbFVUBQADdr83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM9eYkd1HdZTqwAAAB4BAAAu
ABgAAAAAAAEAAACkgY+2AgBlZGl0aW5nL3VuZG8vdW5kby1zbWFydC1kZWxldGUtd29yZC1hY3R1
YWwudHh0VVQFAAN2vzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAz15iR64vzyUZAQAAKAIA
ACwAGAAAAAAAAQAAAKSBorcCAGVkaXRpbmcvdW5kby91bmRvLXNtYXJ0LWRlbGV0ZS13b3JkLWRp
ZmYudHh0VVQFAAN2vzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAz15iR/dVXSJzAAAAkgAA
ADAAGAAAAAAAAQAAAKSBIbkCAGVkaXRpbmcvdW5kby91bmRvLXNtYXJ0LWRlbGV0ZS13b3JkLWV4
cGVjdGVkLnR4dFVUBQADdr83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANBeYkdNcgqRJggA
ANMcAAA0ABgAAAAAAAEAAACkgf65AgBlZGl0aW5nL3VuZG8vdW5kby1zbWFydC1kZWxldGUtd29y
ZC1wcmV0dHktZGlmZi5odG1sVVQFAAN3vzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA0V5i
R1u5T/PKAAAALgEAAA0AGAAAAAAAAQAAAKSBksICAGVycm9yX2xvZy50eHRVVAUAA3m/N1Z1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAADRXmJHAAAAAAAAAAAAAAAABQAYAAAAAAAAABAA7UGjwwIA
ZmFzdC9VVAUAA3m/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADPXmJHAAAAAAAAAAAAAAAA
EAAYAAAAAAAAABAA7UHiwwIAZmFzdC9hdHRhY2htZW50L1VUBQADdr83VnV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAM9eYkfdS93u9AAAACUCAAA1ABgAAAAAAAEAAACkgSzEAgBmYXN0L2F0dGFj
aG1lbnQvYXR0YWNobWVudC1zZWxlY3Qtb24tY2xpY2stYWN0dWFsLnR4dFVUBQADdr83VnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAM9eYkepLdt8HgEAAIsCAAAzABgAAAAAAAEAAACkgY/FAgBm
YXN0L2F0dGFjaG1lbnQvYXR0YWNobWVudC1zZWxlY3Qtb24tY2xpY2stZGlmZi50eHRVVAUAA3a/
N1Z1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADPXmJHe4Ob+QIBAACAAgAANwAYAAAAAAABAAAA
pIEaxwIAZmFzdC9hdHRhY2htZW50L2F0dGFjaG1lbnQtc2VsZWN0LW9uLWNsaWNrLWV4cGVjdGVk
LnR4dFVUBQADdr83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAM9eYkfdS93u9AAAACUCAABM
ABgAAAAAAAEAAACkgY3IAgBmYXN0L2F0dGFjaG1lbnQvYXR0YWNobWVudC1zZWxlY3Qtb24tY2xp
Y2staW5zaWRlLXVzZXItc2VsZWN0LWFsbC1hY3R1YWwudHh0VVQFAAN1vzdWdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAz15iR0Ujr9woAQAAsAIAAEoAGAAAAAAAAQAAAKSBB8oCAGZhc3QvYXR0
YWNobWVudC9hdHRhY2htZW50LXNlbGVjdC1vbi1jbGljay1pbnNpZGUtdXNlci1zZWxlY3QtYWxs
LWRpZmYudHh0VVQFAAN1vzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAz15iR9UokzcGAQAA
dwIAAE4AGAAAAAAAAQAAAKSBs8sCAGZhc3QvYXR0YWNobWVudC9hdHRhY2htZW50LXNlbGVjdC1v
bi1jbGljay1pbnNpZGUtdXNlci1zZWxlY3QtYWxsLWV4cGVjdGVkLnR4dFVUBQADdb83VnV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAM9eYkfql/euEggAAAUbAABSABgAAAAAAAEAAACkgUHNAgBm
YXN0L2F0dGFjaG1lbnQvYXR0YWNobWVudC1zZWxlY3Qtb24tY2xpY2staW5zaWRlLXVzZXItc2Vs
ZWN0LWFsbC1wcmV0dHktZGlmZi5odG1sVVQFAAN1vzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAz15iR/+nGHMHCAAA9xoAADsAGAAAAAAAAQAAAKSB39UCAGZhc3QvYXR0YWNobWVudC9hdHRh
Y2htZW50LXNlbGVjdC1vbi1jbGljay1wcmV0dHktZGlmZi5odG1sVVQFAAN2vzdWdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAA0V5iRwAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQAO1BW94CAGZhc3Qv
YmxvY2svVVQFAAN5vzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA0V5iRwAAAAAAAAAAAAAA
ABEAGAAAAAAAAAAQAO1BoN4CAGZhc3QvYmxvY2svZmxvYXQvVVQFAAN5vzdWdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgA0V5iR9tDzqAcAgAA6gUAADYAGAAAAAAAAQAAAKSB694CAGZhc3QvYmxv
Y2svZmxvYXQvZmxvYXQtaW4tZmxvYXQtaGl0LXRlc3RpbmctYWN0dWFsLnR4dFVUBQADeb83VnV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANFeYkcD1DB28wEAAM4FAAA0ABgAAAAAAAEAAACkgXfh
AgBmYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LWluLWZsb2F0LWhpdC10ZXN0aW5nLWRpZmYudHh0VVQF
AAN5vzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA0V5iR8sA4Wz5AQAAmwUAADgAGAAAAAAA
AQAAAKSB2OMCAGZhc3QvYmxvY2svZmxvYXQvZmxvYXQtaW4tZmxvYXQtaGl0LXRlc3RpbmctZXhw
ZWN0ZWQudHh0VVQFAAN5vzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA0V5iR08uP0ZUCQAA
dikAADwAGAAAAAAAAQAAAKSBQ+YCAGZhc3QvYmxvY2svZmxvYXQvZmxvYXQtaW4tZmxvYXQtaGl0
LXRlc3RpbmctcHJldHR5LWRpZmYuaHRtbFVUBQADeb83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIANNeYkdjsbOWywIAAOILAAARABgAAAAAAAEAAACkgQ3wAgBmdWxsX3Jlc3VsdHMuanNvblVU
BQADfb83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALleYkfqinxCYQUAAAUPAAAKABgAAAAA
AAEAAACkgSPzAgBodHRwZC5jb25mVVQFAANOvzdWdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
ul5iRwAAAAAAAAAAAAAAACsAGAAAAAAAAAAAAKSByPgCAHB5d2Vic29ja2V0LndzLmxvZy0wMk5v
djIwMTUtMTE1MzUyLWVyci50eHRVVAUAA1C/N1Z1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAC6
XmJHAAAAAAAAAAAAAAAAKwAYAAAAAAAAAAAApIEt+QIAcHl3ZWJzb2NrZXQud3MubG9nLTAyTm92
MjAxNS0xMTUzNTItb3V0LnR4dFVUBQADUL83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANNe
Ykf9QVOHEScAAMqoAAAMABgAAAAAAAEAAACkgZL5AgByZXN1bHRzLmh0bWxVVAUAA36/N1Z1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACADTXmJHgz/xTCxHAQCoXQcACgAYAAAAAAABAAAApIHpIAMA
c3RhdHMuanNvblVUBQADfb83VnV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMpeYkc8Aex8ygQA
ACAZAAAZABgAAAAAAAAAAACkgVloBAB3cHR3a19wcm9jZXNzX2xvZy5vdXQudHh0VVQFAANsvzdW
dXgLAAEE9QEAAAQUAAAAUEsFBgAAAADPAM8AplkAAHZtBAAAAA==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264617</attachid>
            <date>2015-11-02 13:09:13 -0800</date>
            <delta_ts>2015-11-02 13:09:13 -0800</delta_ts>
            <desc>Part 19 - remove WKView from inside of WKWebView</desc>
            <filename>19.diff</filename>
            <type>text/plain</type>
            <size>71194</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZwppbmRleCAyNjQ4OWM3Li45MzcwZjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUw
IEBACisyMDE1LTExLTAyICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgor
CisgICAgICAgIEdldCByaWQgb2YgV0tXZWJWaWV3J3MgaW5uZXIgV0tWaWV3IChXS1ZpZXcgYmVp
bmcgaW5zaWRlIFdLV2ViVmlldyBsZWFkcyB0byB3ZWlyZCBBUEkgaXNzdWVzKQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwMTc0CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQW5kZXJzIENhcmxzc29uLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXcubW06CisgICAgICAgICgtW1dLV2ViVmlldyBpbml0V2l0aEZyYW1lOmNv
bmZpZ3VyYXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBkZWFsbG9jXSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyBhbGxvd3NMaW5rUHJldmlld10pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
c2V0QWxsb3dzTGlua1ByZXZpZXc6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBhY2NlcHRzRmly
c3RSZXNwb25kZXJdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGJlY29tZUZpcnN0UmVzcG9uZGVy
XSk6CisgICAgICAgICgtW1dLV2ViVmlldyByZXNpZ25GaXJzdFJlc3BvbmRlcl0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgdmlld1dpbGxTdGFydExpdmVSZXNpemVdKToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IHZpZXdEaWRFbmRMaXZlUmVzaXplXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBpc0Zs
aXBwZWRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGludHJpbnNpY0NvbnRlbnRTaXplXSk6Cisg
ICAgICAgICgtW1dLV2ViVmlldyBwcmVwYXJlQ29udGVudEluUmVjdDpdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IHNldEZyYW1lU2l6ZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHJlbmV3R1N0
YXRlXSk6CisgICAgICAgICgtW1dLV2ViVmlldyB3cml0ZVNlbGVjdGlvblRvUGFzdGVib2FyZDp0
eXBlczpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGNlbnRlclNlbGVjdGlvbkluVmlzaWJsZUFy
ZWE6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyB2YWxpZFJlcXVlc3RvckZvclNlbmRUeXBlOnJl
dHVyblR5cGU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyByZWFkU2VsZWN0aW9uRnJvbVBhc3Rl
Ym9hcmQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBjaGFuZ2VGb250Ol0pOgorICAgICAgICAo
LVtXS1dlYlZpZXcgdmFsaWRhdGVVc2VySW50ZXJmYWNlSXRlbTpdKToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IHN0YXJ0U3BlYWtpbmc6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBzdG9wU3BlYWtp
bmc6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBzaG93R3Vlc3NQYW5lbDpdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IGNoZWNrU3BlbGxpbmc6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBjaGFu
Z2VTcGVsbGluZzpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHRvZ2dsZUNvbnRpbnVvdXNTcGVs
bENoZWNraW5nOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgaXNHcmFtbWFyQ2hlY2tpbmdFbmFi
bGVkXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBzZXRHcmFtbWFyQ2hlY2tpbmdFbmFibGVkOl0p
OgorICAgICAgICAoLVtXS1dlYlZpZXcgdG9nZ2xlR3JhbW1hckNoZWNraW5nOl0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgdG9nZ2xlQXV0b21hdGljU3BlbGxpbmdDb3JyZWN0aW9uOl0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgb3JkZXJGcm9udFN1YnN0aXR1dGlvbnNQYW5lbDpdKToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IHRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlOl0pOgorICAgICAgICAoLVtX
S1dlYlZpZXcgaXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWRdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IHNldEF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uRW5hYmxlZDpdKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IHRvZ2dsZUF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uOl0pOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgaXNBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZF0p
OgorICAgICAgICAoLVtXS1dlYlZpZXcgc2V0QXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJs
ZWQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyB0b2dnbGVBdXRvbWF0aWNEYXNoU3Vic3RpdHV0
aW9uOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgaXNBdXRvbWF0aWNMaW5rRGV0ZWN0aW9uRW5h
YmxlZF0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgc2V0QXV0b21hdGljTGlua0RldGVjdGlvbkVu
YWJsZWQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyB0b2dnbGVBdXRvbWF0aWNMaW5rRGV0ZWN0
aW9uOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRF
bmFibGVkXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBzZXRBdXRvbWF0aWNUZXh0UmVwbGFjZW1l
bnRFbmFibGVkOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgdG9nZ2xlQXV0b21hdGljVGV4dFJl
cGxhY2VtZW50Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgdXBwZXJjYXNlV29yZDpdKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IGxvd2VyY2FzZVdvcmQ6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBjYXBpdGFsaXplV29yZDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF93YW50c0tleURvd25G
b3JFdmVudDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHNjcm9sbFdoZWVsOl0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgc3dpcGVXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBt
b3VzZU1vdmVkOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgbW91c2VEb3duOl0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgbW91c2VVcDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1vdXNlRHJh
Z2dlZDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IG1vdXNlRW50ZXJlZDpdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IG1vdXNlRXhpdGVkOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgb3RoZXJN
b3VzZURvd246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBvdGhlck1vdXNlRHJhZ2dlZDpdKToK
KyAgICAgICAgKC1bV0tXZWJWaWV3IG90aGVyTW91c2VVcDpdKToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IHJpZ2h0TW91c2VEb3duOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgcmlnaHRNb3VzZURy
YWdnZWQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyByaWdodE1vdXNlVXA6XSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyBwcmVzc3VyZUNoYW5nZVdpdGhFdmVudDpdKToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IGFjY2VwdHNGaXJzdE1vdXNlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgc2hvdWxk
RGVsYXlXaW5kb3dPcmRlcmluZ0ZvckV2ZW50Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgZG9D
b21tYW5kQnlTZWxlY3RvcjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGluc2VydFRleHQ6XSk6
CisgICAgICAgICgtW1dLV2ViVmlldyBpbnNlcnRUZXh0OnJlcGxhY2VtZW50UmFuZ2U6XSk6Cisg
ICAgICAgICgtW1dLV2ViVmlldyBpbnB1dENvbnRleHRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IHBlcmZvcm1LZXlFcXVpdmFsZW50Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcga2V5VXA6XSk6
CisgICAgICAgICgtW1dLV2ViVmlldyBrZXlEb3duOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcg
ZmxhZ3NDaGFuZ2VkOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgc2V0TWFya2VkVGV4dDpzZWxl
Y3RlZFJhbmdlOnJlcGxhY2VtZW50UmFuZ2U6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyB1bm1h
cmtUZXh0XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBzZWxlY3RlZFJhbmdlXSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyBoYXNNYXJrZWRUZXh0XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBtYXJr
ZWRSYW5nZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgYXR0cmlidXRlZFN1YnN0cmluZ0ZvclBy
b3Bvc2VkUmFuZ2U6YWN0dWFsUmFuZ2U6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBjaGFyYWN0
ZXJJbmRleEZvclBvaW50Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgZmlyc3RSZWN0Rm9yQ2hh
cmFjdGVyUmFuZ2U6YWN0dWFsUmFuZ2U6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBzZWxlY3Rl
ZFJhbmdlV2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgbWFy
a2VkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBo
YXNNYXJrZWRUZXh0V2l0aENvbXBsZXRpb25IYW5kbGVyOl0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXcgYXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2U6Y29tcGxldGlvbkhhbmRsZXI6
XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5nZTpjb21w
bGV0aW9uSGFuZGxlcjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGNoYXJhY3RlckluZGV4Rm9y
UG9pbnQ6Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyB2YWxpZEF0
dHJpYnV0ZXNGb3JNYXJrZWRUZXh0XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBkcmFnZ2VkSW1h
Z2U6ZW5kZWRBdDpvcGVyYXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBkcmFnZ2luZ0Vu
dGVyZWQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBkcmFnZ2luZ1VwZGF0ZWQ6XSk6CisgICAg
ICAgICgtW1dLV2ViVmlldyBkcmFnZ2luZ0V4aXRlZDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IHByZXBhcmVGb3JEcmFnT3BlcmF0aW9uOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgcGVyZm9y
bURyYWdPcGVyYXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfaGl0VGVzdDpkcmFnVHlw
ZXM6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfd2luZG93UmVzaXplTW91c2VMb2NhdGlvbklz
SW5WaXNpYmxlU2Nyb2xsZXJUaHVtYjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHZpZXdXaWxs
TW92ZVRvV2luZG93Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgdmlld0RpZE1vdmVUb1dpbmRv
d10pOgorICAgICAgICAoLVtXS1dlYlZpZXcgZHJhd1JlY3Q6XSk6CisgICAgICAgICgtW1dLV2Vi
VmlldyBpc09wYXF1ZV0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgbW91c2VEb3duQ2FuTW92ZVdp
bmRvd10pOgorICAgICAgICAoLVtXS1dlYlZpZXcgdmlld0RpZEhpZGVdKToKKyAgICAgICAgKC1b
V0tXZWJWaWV3IHZpZXdEaWRVbmhpZGVdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHZpZXdEaWRD
aGFuZ2VCYWNraW5nUHJvcGVydGllc10pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2FjdGl2ZVNw
YWNlRGlkQ2hhbmdlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgYWNjZXNzaWJpbGl0eUZvY3Vz
ZWRVSUVsZW1lbnRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGFjY2Vzc2liaWxpdHlJc0lnbm9y
ZWRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGFjY2Vzc2liaWxpdHlIaXRUZXN0Ol0pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOl0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgaGl0VGVzdDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGNvbnZlcnNh
dGlvbklkZW50aWZpZXJdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHF1aWNrTG9va1dpdGhFdmVu
dDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IGFkZFRyYWNraW5nUmVjdDpvd25lcjp1c2VyRGF0
YTphc3N1bWVJbnNpZGU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfYWRkVHJhY2tpbmdSZWN0
Om93bmVyOnVzZXJEYXRhOmFzc3VtZUluc2lkZTp1c2VUcmFja2luZ051bTpdKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF9hZGRUcmFja2luZ1JlY3RzOm93bmVyOnVzZXJEYXRhTGlzdDphc3N1bWVJ
bnNpZGVMaXN0OnRyYWNraW5nTnVtczpjb3VudDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHJl
bW92ZVRyYWNraW5nUmVjdDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9yZW1vdmVUcmFja2lu
Z1JlY3RzOmNvdW50Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgdmlldzpzdHJpbmdGb3JUb29s
VGlwOnBvaW50OnVzZXJEYXRhOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgcGFzdGVib2FyZENo
YW5nZWRPd25lcjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHBhc3RlYm9hcmQ6cHJvdmlkZURh
dGFGb3JUeXBlOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgbmFtZXNPZlByb21pc2VkRmlsZXNE
cm9wcGVkQXREZXN0aW5hdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHdhbnRzVXBkYXRl
TGF5ZXJdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IHVwZGF0ZUxheWVyXSk6CisgICAgICAgICgt
W1dLV2ViVmlldyBzZXRBbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlczpdKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IGFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzXSk6
CisgICAgICAgICgtW1dLV2ViVmlldyBzbWFydE1hZ25pZnlXaXRoRXZlbnQ6XSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyBzZXRNYWduaWZpY2F0aW9uOmNlbnRlcmVkQXRQb2ludDpdKToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IHNldE1hZ25pZmljYXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBtYWduaWZpY2F0aW9uXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBzZXRBbGxvd3NNYWduaWZp
Y2F0aW9uOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgYWxsb3dzTWFnbmlmaWNhdGlvbl0pOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgbWFnbmlmeVdpdGhFdmVudDpdKToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IHJvdGF0ZVdpdGhFdmVudDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF93ZWJfc3Vw
ZXJJbnB1dENvbnRleHRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF93ZWJfc3VwZXJRdWlja0xv
b2tXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfd2ViX3N1cGVyU3dpcGVXaXRo
RXZlbnQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfd2ViX3N1cGVyTWFnbmlmeVdpdGhFdmVu
dDpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF93ZWJfc3VwZXJTbWFydE1hZ25pZnlXaXRoRXZl
bnQ6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfd2ViX3N1cGVyUmVtb3ZlVHJhY2tpbmdSZWN0
Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3dlYl9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1
dGVWYWx1ZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF93ZWJfc3VwZXJEb0NvbW1hbmRCeVNl
bGVjdG9yOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3dlYl9zdXBlclBlcmZvcm1LZXlFcXVp
dmFsZW50Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgX3dlYl9zdXBlcktleURvd246XSk6Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfd2ViX3N1cGVySGl0VGVzdDpdKToKKyAgICAgICAgKC1bV0tX
ZWJWaWV3IF93ZWJfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RS
ZXN1bHRJbnRlcm5hbDp3aXRoVHlwZTp1c2VyRGF0YTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3
IF93ZWJfcHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl0pOgorICAgICAgICAoLVtX
S1dlYlZpZXcgX3dlYl9jYW5jZWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25dKToKKyAgICAgICAg
KC1bV0tXZWJWaWV3IF93ZWJfY29tcGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25dKToKKyAg
ICAgICAgKC1bV0tXZWJWaWV3IF93ZWJfZGlkQ2hhbmdlQ29udGVudFNpemU6XSk6CisgICAgICAg
ICgtW1dLV2ViVmlldyBfd2ViX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdKToK
KyAgICAgICAgKC1bV0tXZWJWaWV3IF93ZWJfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2lu
ZG93c1dpdGhBbmltYXRpb246XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfd2ViX2dlc3R1cmVF
dmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0
RWRpdGFibGU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfcmVtb3RlT2JqZWN0UmVnaXN0cnld
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9sYXlvdXRNb2RlXSk6CisgICAgICAgICgtW1dLV2Vi
VmlldyBfc2V0TGF5b3V0TW9kZTpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRWaWV3U2Nh
bGU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmRd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZDpd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9pbnNwZWN0b3JBdHRhY2htZW50Vmlld10pOgorICAg
ICAgICAoLVtXS1dlYlZpZXcgX3NldEluc3BlY3RvckF0dGFjaG1lbnRWaWV3Ol0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX3dpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWRdKToKKyAgICAg
ICAgKC1bV0tXZWJWaWV3IF9zZXRXaW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOl0pOgor
ICAgICAgICAoLVtXS1dlYlZpZXcgX3NldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3I6XSk6Cisg
ICAgICAgICgtW1dLV2ViVmlldyBfb3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3Rvcl0pOgorICAgICAg
ICAoLVtXS1dlYlZpZXcgX3NldFRvcENvbnRlbnRJbnNldDpdKToKKyAgICAgICAgKC1bV0tXZWJW
aWV3IF90b3BDb250ZW50SW5zZXRdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9wYWdlRXh0ZW5k
ZWRCYWNrZ3JvdW5kQ29sb3JdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9pbW1lZGlhdGVBY3Rp
b25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdDp3aXRoVHlwZTp1c2VyRGF0YTpd
KToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRBdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJ
bnNldHM6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfYXV0b21hdGljYWxseUFkanVzdHNDb250
ZW50SW5zZXRzXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0TWluaW11bUxheW91dFdpZHRo
Ol0pOgorICAgICAgICAoLVtXS1dlYlZpZXcgcmVzaXplU3Vidmlld3NXaXRoT2xkU2l6ZTpdKTog
RGVsZXRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9pZ25vcmVzTm9uV2hlZWxFdmVudHNdKTog
RGVsZXRlZC4KKyAgICAgICAgKC1bV0tXZWJWaWV3IF9zZXRJZ25vcmVzTm9uV2hlZWxFdmVudHM6
XSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0SW50cmluc2ljQ29udGVudFNp
emU6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdJ
bnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbToKKyAgICAg
ICAgKC1bV0tWaWV3IF93ZWJfc3VwZXJJbnB1dENvbnRleHRdKToKKyAgICAgICAgKC1bV0tWaWV3
IF93ZWJfc3VwZXJRdWlja0xvb2tXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBfd2Vi
X3N1cGVyU3dpcGVXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBfd2ViX3N1cGVyTWFn
bmlmeVdpdGhFdmVudDpdKToKKyAgICAgICAgKC1bV0tWaWV3IF93ZWJfc3VwZXJTbWFydE1hZ25p
ZnlXaXRoRXZlbnQ6XSk6CisgICAgICAgICgtW1dLVmlldyBfd2ViX3N1cGVyUmVtb3ZlVHJhY2tp
bmdSZWN0Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgX3dlYl9zdXBlckFjY2Vzc2liaWxpdHlBdHRy
aWJ1dGVWYWx1ZTpdKToKKyAgICAgICAgKC1bV0tWaWV3IF93ZWJfc3VwZXJEb0NvbW1hbmRCeVNl
bGVjdG9yOl0pOgorICAgICAgICAoLVtXS1ZpZXcgX3dlYl9zdXBlclBlcmZvcm1LZXlFcXVpdmFs
ZW50Ol0pOgorICAgICAgICAoLVtXS1ZpZXcgX3dlYl9zdXBlcktleURvd246XSk6CisgICAgICAg
ICgtW1dLVmlldyBfd2ViX3N1cGVySGl0VGVzdDpdKToKKyAgICAgICAgKC1bV0tWaWV3IF93ZWJf
aW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHRJbnRlcm5h
bDp3aXRoVHlwZTp1c2VyRGF0YTpdKToKKyAgICAgICAgKC1bV0tWaWV3IF93ZWJfcHJlcGFyZUZv
ckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl0pOgorICAgICAgICAoLVtXS1ZpZXcgX3dlYl9jYW5j
ZWxJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25dKToKKyAgICAgICAgKC1bV0tWaWV3IF93ZWJfY29t
cGxldGVJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25dKToKKyAgICAgICAgKC1bV0tWaWV3IF93ZWJf
ZGlkQ2hhbmdlQ29udGVudFNpemU6XSk6CisgICAgICAgICgtW1dLVmlldyBfd2ViX2Rpc21pc3ND
b250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NdKToKKyAgICAgICAgKC1bV0tWaWV3IF93ZWJfZGlz
bWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb246XSk6CisgICAgICAg
ICgtW1dLVmlldyBfd2ViX2dlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmU6XSk6Cisg
ICAgICAgICgtW1dLVmlldyBfc3VwZXJJbnB1dENvbnRleHRdKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bV0tWaWV3IF9zdXBlclF1aWNrTG9va1dpdGhFdmVudDpdKTogRGVsZXRlZC4KKyAgICAgICAg
KC1bV0tWaWV3IF9zdXBlclN3aXBlV2l0aEV2ZW50Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtX
S1ZpZXcgX3N1cGVyTWFnbmlmeVdpdGhFdmVudDpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV0tW
aWV3IF9zdXBlclNtYXJ0TWFnbmlmeVdpdGhFdmVudDpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1b
V0tWaWV3IF9zdXBlclJlbW92ZVRyYWNraW5nUmVjdDpdKTogRGVsZXRlZC4KKyAgICAgICAgKC1b
V0tWaWV3IF9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpdKTogRGVsZXRlZC4KKyAg
ICAgICAgKC1bV0tWaWV3IF9zdXBlckRvQ29tbWFuZEJ5U2VsZWN0b3I6XSk6IERlbGV0ZWQuCisg
ICAgICAgICgtW1dLVmlldyBfc3VwZXJQZXJmb3JtS2V5RXF1aXZhbGVudDpdKTogRGVsZXRlZC4K
KyAgICAgICAgKC1bV0tWaWV3IF9zdXBlcktleURvd246XSk6IERlbGV0ZWQuCisgICAgICAgICgt
W1dLVmlldyBfc3VwZXJIaXRUZXN0Ol0pOiBEZWxldGVkLgorICAgICAgICAoLVtXS1ZpZXcgX2Fk
ZEZvbnRQYW5lbE9ic2VydmVyXSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9t
YWMvV0tWaWV3SW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW06CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpoaXRUZXN0KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmll
d0ltcGw6OnVwZGF0ZVNlY3VyZUlucHV0U3RhdGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3
SW1wbDo6bm90aWZ5SW5wdXRDb250ZXh0QWJvdXREaXNjYXJkZWRDb21wb3NpdGlvbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpleGVjdXRlU2F2ZWRDb21tYW5kQnlTZWxlY3Rvcik6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpkaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hp
bGRXaW5kb3dzV2l0aEFuaW1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpk
aXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbkZyb21WaWV3T25s
eSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpxdWlja0xvb2tXaXRoRXZlbnQpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cHJlcGFyZUZvckltbWVkaWF0ZUFjdGlvbkFu
aW1hdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjYW5jZWxJbW1lZGlhdGVB
Y3Rpb25BbmltYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y29tcGxldGVJ
bW1lZGlhdGVBY3Rpb25BbmltYXRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6
ZGlkQ2hhbmdlQ29udGVudFNpemUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6YWNj
ZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
OnJlbW92ZVRyYWNraW5nUmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzd2lw
ZVdpdGhFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjptYWduaWZ5V2l0aEV2
ZW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNtYXJ0TWFnbmlmeVdpdGhFdmVu
dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpnZXN0dXJlRXZlbnRXYXNOb3RIYW5k
bGVkQnlXZWJDb3JlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmRvQ29tbWFuZEJ5
U2VsZWN0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6aW5wdXRDb250ZXh0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnBlcmZvcm1LZXlFcXVpdmFsZW50KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmtleURvd24pOgorICAgICAgICAqIFVJUHJvY2Vz
cy9tYWMvUGFnZUNsaWVudEltcGwubW06CisgICAgICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBs
OjpzZXREcmFnSW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpQYWdlQ2xpZW50SW1wbDo6aW50cmlu
c2ljQ29udGVudFNpemVEaWRDaGFuZ2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpQYWdl
Q2xpZW50SW1wbDo6aW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RS
ZXN1bHQpOiBEZWxldGVkLgorICAgICAgICBQbG9wLgorCiAyMDE1LTExLTAyICBZb25nanVuIFpo
YW5nICA8eW9uZ2p1bl96aGFuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIG9iakMgZGVsZWdh
dGUgY2FsbGJhY2sgZm9yIHdlYlByb2Nlc3NEaWRCZWNvbWVSZXNwb25zaXZlIGFuZCB3ZWJQcm9j
ZXNzRGlkQmVjb21lVW5yZXNwb25zaXZlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA1YzlmNmM0Li5iZWViNzViIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpAQCAtNzIsOSAr
NzIsMTEgQEAKICNpbXBvcnQgIldlYlByZWZlcmVuY2VzS2V5cy5oIgogI2ltcG9ydCAiV2ViUHJv
Y2Vzc1Bvb2wuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgorI2ltcG9ydCAiV2ViVmll
d0ltcGwuaCIKICNpbXBvcnQgIl9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGUuaCIKICNpbXBv
cnQgIl9XS0ZpbmREZWxlZ2F0ZS5oIgogI2ltcG9ydCAiX1dLRm9ybURlbGVnYXRlLmgiCisjaW1w
b3J0ICJfV0tIaXRUZXN0UmVzdWx0SW50ZXJuYWwuaCIKICNpbXBvcnQgIl9XS0lucHV0RGVsZWdh
dGUuaCIKICNpbXBvcnQgIl9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5SW50ZXJuYWwuaCIKICNpbXBv
cnQgIl9XS1Nlc3Npb25TdGF0ZUludGVybmFsLmgiCkBAIC0xNDMsNiArMTQ1LDkgQEAgZW51bSBj
bGFzcyBEeW5hbWljVmlld3BvcnRVcGRhdGVNb2RlIHsKICNpZiBQTEFURk9STShNQUMpCiAjaW1w
b3J0ICJXS1ZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCA8V2ViQ29yZS9Db2xvck1hYy5oPgorCitA
aW50ZXJmYWNlIFdLV2ViVmlldyAoKSA8V2ViVmlld0ltcGxEZWxlZ2F0ZT4KK0BlbmQKICNlbmRp
ZgogCiBzdGF0aWMgSGFzaE1hcDxXZWJLaXQ6OldlYlBhZ2VQcm94eSosIFdLV2ViVmlldyAqPiYg
cGFnZVRvVmlld01hcCgpCkBAIC0xNjAsMTIgKzE2NSwxMyBAQCBXS1dlYlZpZXcqIGZyb21XZWJQ
YWdlUHJveHkoV2ViS2l0OjpXZWJQYWdlUHJveHkmIHBhZ2UpCiAgICAgc3RkOjp1bmlxdWVfcHRy
PFdlYktpdDo6TmF2aWdhdGlvblN0YXRlPiBfbmF2aWdhdGlvblN0YXRlOwogICAgIHN0ZDo6dW5p
cXVlX3B0cjxXZWJLaXQ6OlVJRGVsZWdhdGU+IF91aURlbGVnYXRlOwogCi0gICAgUmV0YWluUHRy
PF9XS1JlbW90ZU9iamVjdFJlZ2lzdHJ5PiBfcmVtb3RlT2JqZWN0UmVnaXN0cnk7CiAgICAgX1dL
UmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHMgX29ic2VydmVkUmVuZGVyaW5nUHJvZ3Jlc3NFdmVudHM7
CiAKICAgICBXZWJLaXQ6OldlYWtPYmpDUHRyPGlkIDxfV0tJbnB1dERlbGVnYXRlPj4gX2lucHV0
RGVsZWdhdGU7CiAKICNpZiBQTEFURk9STShJT1MpCisgICAgUmV0YWluUHRyPF9XS1JlbW90ZU9i
amVjdFJlZ2lzdHJ5PiBfcmVtb3RlT2JqZWN0UmVnaXN0cnk7CisKICAgICBSZXRhaW5QdHI8V0tT
Y3JvbGxWaWV3PiBfc2Nyb2xsVmlldzsKICAgICBSZXRhaW5QdHI8V0tDb250ZW50Vmlldz4gX2Nv
bnRlbnRWaWV3OwogCkBAIC0yMjcsOCArMjMzLDcgQEAgV0tXZWJWaWV3KiBmcm9tV2ViUGFnZVBy
b3h5KFdlYktpdDo6V2ViUGFnZVByb3h5JiBwYWdlKQogICAgIFZlY3RvcjxzdGQ6OmZ1bmN0aW9u
PHZvaWQgKCk+PiBfc25hcHNob3RzRGVmZXJyZWREdXJpbmdSZXNpemU7CiAjZW5kaWYKICNpZiBQ
TEFURk9STShNQUMpCi0gICAgUmV0YWluUHRyPFdLVmlldz4gX3drVmlldzsKLSAgICBDR1NpemUg
X2ludHJpbnNpY0NvbnRlbnRTaXplOworICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJLaXQ6OldlYlZp
ZXdJbXBsPiBfaW1wbDsKICNlbmRpZgogfQogCkBAIC0zMDcsNyArMzEyLDYgQEAgc3RhdGljIGJv
b2wgc2hvdWxkQWxsb3dQaWN0dXJlSW5QaWN0dXJlTWVkaWFQbGF5YmFjaygpCiAKICAgICBbX2Nv
bmZpZ3VyYXRpb24gX3ZhbGlkYXRlXTsKIAotICAgIENHUmVjdCBib3VuZHMgPSBzZWxmLmJvdW5k
czsKIAogICAgIFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2wmIHByb2Nlc3NQb29sID0gKltfY29uZmln
dXJhdGlvbiBwcm9jZXNzUG9vbF0tPl9wcm9jZXNzUG9vbDsKICAgICAKQEAgLTM0Niw2ICszNTAs
NyBAQCBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVNZWRpYVBsYXliYWNr
KCkKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oSU9TKQorICAgIENHUmVjdCBib3VuZHMgPSBzZWxm
LmJvdW5kczsKICAgICBfc2Nyb2xsVmlldyA9IGFkb3B0TlMoW1tXS1Njcm9sbFZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6Ym91bmRzXSk7CiAgICAgW19zY3JvbGxWaWV3IHNldEludGVybmFsRGVs
ZWdhdGU6c2VsZl07CiAgICAgW19zY3JvbGxWaWV3IHNldEJvdW5jZXNab29tOllFU107CkBAIC0z
ODIsMTQgKzM4NywxMSBAQCBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJblBpY3R1cmVN
ZWRpYVBsYXliYWNrKCkKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIF93a1ZpZXcg
PSBhZG9wdE5TKFtbV0tWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOmJvdW5kcyBwcm9jZXNzUG9v
bDpwcm9jZXNzUG9vbCBjb25maWd1cmF0aW9uOldURjo6bW92ZShwYWdlQ29uZmlndXJhdGlvbikg
d2ViVmlldzpzZWxmXSk7Ci0gICAgW3NlbGYgYWRkU3Vidmlldzpfd2tWaWV3LmdldCgpXTsKLSAg
ICBfcGFnZSA9IFdlYktpdDo6dG9JbXBsKFtfd2tWaWV3IHBhZ2VSZWZdKTsKLQotICAgIF9pbnRy
aW5zaWNDb250ZW50U2l6ZSA9IENHU2l6ZU1ha2UoTlNWaWV3Tm9JbnN0cmluc2ljTWV0cmljLCBO
U1ZpZXdOb0luc3RyaW5zaWNNZXRyaWMpOworICAgIF9pbXBsID0gc3RkOjptYWtlX3VuaXF1ZTxX
ZWJLaXQ6OldlYlZpZXdJbXBsPihzZWxmLCBzZWxmLCBwcm9jZXNzUG9vbCwgV1RGOjptb3ZlKHBh
Z2VDb25maWd1cmF0aW9uKSk7CisgICAgX3BhZ2UgPSAmX2ltcGwtPnBhZ2UoKTsKIAogI2lmIF9f
TUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCi0gICAgW193a1ZpZXcgX3Nl
dEF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0czpZRVNdOworICAgIF9pbXBsLT5zZXRB
dXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHModHJ1ZSk7CiAjZW5kaWYKICNlbmRpZgog
CkBAIC00MTYsMTMgKzQxOCwxMyBAQCBzdGF0aWMgYm9vbCBzaG91bGRBbGxvd1BpY3R1cmVJblBp
Y3R1cmVNZWRpYVBsYXliYWNrKCkKIAogLSAodm9pZClkZWFsbG9jCiB7CisjaWYgUExBVEZPUk0o
SU9TKQogICAgIGlmIChfcmVtb3RlT2JqZWN0UmVnaXN0cnkpCiAgICAgICAgIF9wYWdlLT5wcm9j
ZXNzKCkucHJvY2Vzc1Bvb2woKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90
ZU9iamVjdFJlZ2lzdHJ5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIF9wYWdlLT5wYWdlSUQoKSk7
CiAKICAgICBfcGFnZS0+Y2xvc2UoKTsKIAogICAgIFtfcmVtb3RlT2JqZWN0UmVnaXN0cnkgX2lu
dmFsaWRhdGVdOwotI2lmIFBMQVRGT1JNKElPUykKICAgICBbW19jb25maWd1cmF0aW9uIF9jb250
ZW50UHJvdmlkZXJSZWdpc3RyeV0gcmVtb3ZlUGFnZToqX3BhZ2VdOwogICAgIFtbTlNOb3RpZmlj
YXRpb25DZW50ZXIgZGVmYXVsdENlbnRlcl0gcmVtb3ZlT2JzZXJ2ZXI6c2VsZl07CiAgICAgW19z
Y3JvbGxWaWV3IHNldEludGVybmFsRGVsZWdhdGU6bmlsXTsKQEAgLTY5Niw3ICs2OTgsNyBAQCBz
dGF0aWMgV0tFcnJvckNvZGUgY2FsbGJhY2tFcnJvckNvZGUoV2ViS2l0OjpDYWxsYmFja0Jhc2U6
OkVycm9yIGVycm9yKQogLSAoQk9PTClhbGxvd3NMaW5rUHJldmlldwogewogI2lmIFBMQVRGT1JN
KE1BQykKLSAgICByZXR1cm4gW193a1ZpZXcgYWxsb3dzTGlua1ByZXZpZXddOworICAgIHJldHVy
biBfaW1wbC0+YWxsb3dzTGlua1ByZXZpZXcoKTsKICNlbGlmIFBMQVRGT1JNKElPUykKICAgICBy
ZXR1cm4gX2FsbG93c0xpbmtQcmV2aWV3OwogI2VuZGlmCkBAIC03MDUsNyArNzA3LDcgQEAgc3Rh
dGljIFdLRXJyb3JDb2RlIGNhbGxiYWNrRXJyb3JDb2RlKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpF
cnJvciBlcnJvcikKIC0gKHZvaWQpc2V0QWxsb3dzTGlua1ByZXZpZXc6KEJPT0wpYWxsb3dzTGlu
a1ByZXZpZXcKIHsKICNpZiBQTEFURk9STShNQUMpCi0gICAgW193a1ZpZXcgc2V0QWxsb3dzTGlu
a1ByZXZpZXc6YWxsb3dzTGlua1ByZXZpZXddOworICAgIF9pbXBsLT5zZXRBbGxvd3NMaW5rUHJl
dmlldyhhbGxvd3NMaW5rUHJldmlldyk7CiAgICAgcmV0dXJuOwogI2VsaWYgUExBVEZPUk0oSU9T
KQogICAgIGlmIChfYWxsb3dzTGlua1ByZXZpZXcgPT0gYWxsb3dzTGlua1ByZXZpZXcpCkBAIC0x
ODc2LDEwOCArMTg3OCw4NzAgQEAgc3RhdGljIFdlYkNvcmU6OkZsb2F0UG9pbnQgY29uc3RyYWlu
Q29udGVudE9mZnNldChXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnRlbnRPZmYKIAogI2lmIFBMQVRG
T1JNKE1BQykKIAorLSAoQk9PTClhY2NlcHRzRmlyc3RSZXNwb25kZXIKK3sKKyAgICByZXR1cm4g
X2ltcGwtPmFjY2VwdHNGaXJzdFJlc3BvbmRlcigpOworfQorCiAtIChCT09MKWJlY29tZUZpcnN0
UmVzcG9uZGVyCiB7Ci0gICAgcmV0dXJuIFtbc2VsZiB3aW5kb3ddIG1ha2VGaXJzdFJlc3BvbmRl
cjogX3drVmlldy5nZXQoKV07CisgICAgcmV0dXJuIF9pbXBsLT5iZWNvbWVGaXJzdFJlc3BvbmRl
cigpOwogfQogCi0tIChCT09MKWFjY2VwdHNGaXJzdFJlc3BvbmRlcgorLSAoQk9PTClyZXNpZ25G
aXJzdFJlc3BvbmRlcgoreworICAgIHJldHVybiBfaW1wbC0+cmVzaWduRmlyc3RSZXNwb25kZXIo
KTsKK30KKworLSAodm9pZCl2aWV3V2lsbFN0YXJ0TGl2ZVJlc2l6ZQoreworICAgIF9pbXBsLT52
aWV3V2lsbFN0YXJ0TGl2ZVJlc2l6ZSgpOworfQorCistICh2b2lkKXZpZXdEaWRFbmRMaXZlUmVz
aXplCit7CisgICAgX2ltcGwtPnZpZXdEaWRFbmRMaXZlUmVzaXplKCk7Cit9CisKKy0gKEJPT0wp
aXNGbGlwcGVkCit7CisgICAgcmV0dXJuIFlFUzsKK30KKworLSAoTlNTaXplKWludHJpbnNpY0Nv
bnRlbnRTaXplCit7CisgICAgcmV0dXJuIE5TU2l6ZUZyb21DR1NpemUoX2ltcGwtPmludHJpbnNp
Y0NvbnRlbnRTaXplKCkpOworfQorCistICh2b2lkKXByZXBhcmVDb250ZW50SW5SZWN0OihOU1Jl
Y3QpcmVjdAoreworICAgIF9pbXBsLT5wcmVwYXJlQ29udGVudEluUmVjdChOU1JlY3RUb0NHUmVj
dChyZWN0KSk7Cit9CisKKy0gKHZvaWQpc2V0RnJhbWVTaXplOihOU1NpemUpc2l6ZQoreworICAg
IFtzdXBlciBzZXRGcmFtZVNpemU6c2l6ZV07CisgICAgX2ltcGwtPnNldEZyYW1lU2l6ZShOU1Np
emVUb0NHU2l6ZShzaXplKSk7Cit9CisKKy0gKHZvaWQpcmVuZXdHU3RhdGUKK3sKKyAgICBfaW1w
bC0+cmVuZXdHU3RhdGUoKTsKKyAgICBbc3VwZXIgcmVuZXdHU3RhdGVdOworfQorCisjZGVmaW5l
IFdFQkNPUkVfQ09NTUFORChjb21tYW5kKSAtICh2b2lkKWNvbW1hbmQ6KGlkKXNlbmRlciB7IF9p
bXBsLT5leGVjdXRlRWRpdENvbW1hbmRGb3JTZWxlY3RvcihfY21kKTsgfQorCitXRUJDT1JFX0NP
TU1BTkQoYWxpZ25DZW50ZXIpCitXRUJDT1JFX0NPTU1BTkQoYWxpZ25KdXN0aWZpZWQpCitXRUJD
T1JFX0NPTU1BTkQoYWxpZ25MZWZ0KQorV0VCQ09SRV9DT01NQU5EKGFsaWduUmlnaHQpCitXRUJD
T1JFX0NPTU1BTkQoY29weSkKK1dFQkNPUkVfQ09NTUFORChjdXQpCitXRUJDT1JFX0NPTU1BTkQo
ZGVsZXRlKQorV0VCQ09SRV9DT01NQU5EKGRlbGV0ZUJhY2t3YXJkKQorV0VCQ09SRV9DT01NQU5E
KGRlbGV0ZUJhY2t3YXJkQnlEZWNvbXBvc2luZ1ByZXZpb3VzQ2hhcmFjdGVyKQorV0VCQ09SRV9D
T01NQU5EKGRlbGV0ZUZvcndhcmQpCitXRUJDT1JFX0NPTU1BTkQoZGVsZXRlVG9CZWdpbm5pbmdP
ZkxpbmUpCitXRUJDT1JFX0NPTU1BTkQoZGVsZXRlVG9CZWdpbm5pbmdPZlBhcmFncmFwaCkKK1dF
QkNPUkVfQ09NTUFORChkZWxldGVUb0VuZE9mTGluZSkKK1dFQkNPUkVfQ09NTUFORChkZWxldGVU
b0VuZE9mUGFyYWdyYXBoKQorV0VCQ09SRV9DT01NQU5EKGRlbGV0ZVRvTWFyaykKK1dFQkNPUkVf
Q09NTUFORChkZWxldGVXb3JkQmFja3dhcmQpCitXRUJDT1JFX0NPTU1BTkQoZGVsZXRlV29yZEZv
cndhcmQpCitXRUJDT1JFX0NPTU1BTkQoaWdub3JlU3BlbGxpbmcpCitXRUJDT1JFX0NPTU1BTkQo
aW5kZW50KQorV0VCQ09SRV9DT01NQU5EKGluc2VydEJhY2t0YWIpCitXRUJDT1JFX0NPTU1BTkQo
aW5zZXJ0TGluZUJyZWFrKQorV0VCQ09SRV9DT01NQU5EKGluc2VydE5ld2xpbmUpCitXRUJDT1JF
X0NPTU1BTkQoaW5zZXJ0TmV3bGluZUlnbm9yaW5nRmllbGRFZGl0b3IpCitXRUJDT1JFX0NPTU1B
TkQoaW5zZXJ0UGFyYWdyYXBoU2VwYXJhdG9yKQorV0VCQ09SRV9DT01NQU5EKGluc2VydFRhYikK
K1dFQkNPUkVfQ09NTUFORChpbnNlcnRUYWJJZ25vcmluZ0ZpZWxkRWRpdG9yKQorV0VCQ09SRV9D
T01NQU5EKG1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvbkxlZnRUb1JpZ2h0KQorV0VCQ09SRV9DT01N
QU5EKG1ha2VUZXh0V3JpdGluZ0RpcmVjdGlvbk5hdHVyYWwpCitXRUJDT1JFX0NPTU1BTkQobWFr
ZVRleHRXcml0aW5nRGlyZWN0aW9uUmlnaHRUb0xlZnQpCitXRUJDT1JFX0NPTU1BTkQobW92ZUJh
Y2t3YXJkKQorV0VCQ09SRV9DT01NQU5EKG1vdmVCYWNrd2FyZEFuZE1vZGlmeVNlbGVjdGlvbikK
K1dFQkNPUkVfQ09NTUFORChtb3ZlRG93bikKK1dFQkNPUkVfQ09NTUFORChtb3ZlRG93bkFuZE1v
ZGlmeVNlbGVjdGlvbikKK1dFQkNPUkVfQ09NTUFORChtb3ZlRm9yd2FyZCkKK1dFQkNPUkVfQ09N
TUFORChtb3ZlRm9yd2FyZEFuZE1vZGlmeVNlbGVjdGlvbikKK1dFQkNPUkVfQ09NTUFORChtb3Zl
TGVmdCkKK1dFQkNPUkVfQ09NTUFORChtb3ZlTGVmdEFuZE1vZGlmeVNlbGVjdGlvbikKK1dFQkNP
UkVfQ09NTUFORChtb3ZlUGFyYWdyYXBoQmFja3dhcmRBbmRNb2RpZnlTZWxlY3Rpb24pCitXRUJD
T1JFX0NPTU1BTkQobW92ZVBhcmFncmFwaEZvcndhcmRBbmRNb2RpZnlTZWxlY3Rpb24pCitXRUJD
T1JFX0NPTU1BTkQobW92ZVJpZ2h0KQorV0VCQ09SRV9DT01NQU5EKG1vdmVSaWdodEFuZE1vZGlm
eVNlbGVjdGlvbikKK1dFQkNPUkVfQ09NTUFORChtb3ZlVG9CZWdpbm5pbmdPZkRvY3VtZW50KQor
V0VCQ09SRV9DT01NQU5EKG1vdmVUb0JlZ2lubmluZ09mRG9jdW1lbnRBbmRNb2RpZnlTZWxlY3Rp
b24pCitXRUJDT1JFX0NPTU1BTkQobW92ZVRvQmVnaW5uaW5nT2ZMaW5lKQorV0VCQ09SRV9DT01N
QU5EKG1vdmVUb0JlZ2lubmluZ09mTGluZUFuZE1vZGlmeVNlbGVjdGlvbikKK1dFQkNPUkVfQ09N
TUFORChtb3ZlVG9CZWdpbm5pbmdPZlBhcmFncmFwaCkKK1dFQkNPUkVfQ09NTUFORChtb3ZlVG9C
ZWdpbm5pbmdPZlBhcmFncmFwaEFuZE1vZGlmeVNlbGVjdGlvbikKK1dFQkNPUkVfQ09NTUFORCht
b3ZlVG9CZWdpbm5pbmdPZlNlbnRlbmNlKQorV0VCQ09SRV9DT01NQU5EKG1vdmVUb0JlZ2lubmlu
Z09mU2VudGVuY2VBbmRNb2RpZnlTZWxlY3Rpb24pCitXRUJDT1JFX0NPTU1BTkQobW92ZVRvRW5k
T2ZEb2N1bWVudCkKK1dFQkNPUkVfQ09NTUFORChtb3ZlVG9FbmRPZkRvY3VtZW50QW5kTW9kaWZ5
U2VsZWN0aW9uKQorV0VCQ09SRV9DT01NQU5EKG1vdmVUb0VuZE9mTGluZSkKK1dFQkNPUkVfQ09N
TUFORChtb3ZlVG9FbmRPZkxpbmVBbmRNb2RpZnlTZWxlY3Rpb24pCitXRUJDT1JFX0NPTU1BTkQo
bW92ZVRvRW5kT2ZQYXJhZ3JhcGgpCitXRUJDT1JFX0NPTU1BTkQobW92ZVRvRW5kT2ZQYXJhZ3Jh
cGhBbmRNb2RpZnlTZWxlY3Rpb24pCitXRUJDT1JFX0NPTU1BTkQobW92ZVRvRW5kT2ZTZW50ZW5j
ZSkKK1dFQkNPUkVfQ09NTUFORChtb3ZlVG9FbmRPZlNlbnRlbmNlQW5kTW9kaWZ5U2VsZWN0aW9u
KQorV0VCQ09SRV9DT01NQU5EKG1vdmVUb0xlZnRFbmRPZkxpbmUpCitXRUJDT1JFX0NPTU1BTkQo
bW92ZVRvTGVmdEVuZE9mTGluZUFuZE1vZGlmeVNlbGVjdGlvbikKK1dFQkNPUkVfQ09NTUFORCht
b3ZlVG9SaWdodEVuZE9mTGluZSkKK1dFQkNPUkVfQ09NTUFORChtb3ZlVG9SaWdodEVuZE9mTGlu
ZUFuZE1vZGlmeVNlbGVjdGlvbikKK1dFQkNPUkVfQ09NTUFORChtb3ZlVXApCitXRUJDT1JFX0NP
TU1BTkQobW92ZVVwQW5kTW9kaWZ5U2VsZWN0aW9uKQorV0VCQ09SRV9DT01NQU5EKG1vdmVXb3Jk
QmFja3dhcmQpCitXRUJDT1JFX0NPTU1BTkQobW92ZVdvcmRCYWNrd2FyZEFuZE1vZGlmeVNlbGVj
dGlvbikKK1dFQkNPUkVfQ09NTUFORChtb3ZlV29yZEZvcndhcmQpCitXRUJDT1JFX0NPTU1BTkQo
bW92ZVdvcmRGb3J3YXJkQW5kTW9kaWZ5U2VsZWN0aW9uKQorV0VCQ09SRV9DT01NQU5EKG1vdmVX
b3JkTGVmdCkKK1dFQkNPUkVfQ09NTUFORChtb3ZlV29yZExlZnRBbmRNb2RpZnlTZWxlY3Rpb24p
CitXRUJDT1JFX0NPTU1BTkQobW92ZVdvcmRSaWdodCkKK1dFQkNPUkVfQ09NTUFORChtb3ZlV29y
ZFJpZ2h0QW5kTW9kaWZ5U2VsZWN0aW9uKQorV0VCQ09SRV9DT01NQU5EKG91dGRlbnQpCitXRUJD
T1JFX0NPTU1BTkQocGFnZURvd24pCitXRUJDT1JFX0NPTU1BTkQocGFnZURvd25BbmRNb2RpZnlT
ZWxlY3Rpb24pCitXRUJDT1JFX0NPTU1BTkQocGFnZVVwKQorV0VCQ09SRV9DT01NQU5EKHBhZ2VV
cEFuZE1vZGlmeVNlbGVjdGlvbikKK1dFQkNPUkVfQ09NTUFORChwYXN0ZSkKK1dFQkNPUkVfQ09N
TUFORChwYXN0ZUFzUGxhaW5UZXh0KQorV0VCQ09SRV9DT01NQU5EKHNjcm9sbFBhZ2VEb3duKQor
V0VCQ09SRV9DT01NQU5EKHNjcm9sbFBhZ2VVcCkKK1dFQkNPUkVfQ09NTUFORChzY3JvbGxMaW5l
RG93bikKK1dFQkNPUkVfQ09NTUFORChzY3JvbGxMaW5lVXApCitXRUJDT1JFX0NPTU1BTkQoc2Ny
b2xsVG9CZWdpbm5pbmdPZkRvY3VtZW50KQorV0VCQ09SRV9DT01NQU5EKHNjcm9sbFRvRW5kT2ZE
b2N1bWVudCkKK1dFQkNPUkVfQ09NTUFORChzZWxlY3RBbGwpCitXRUJDT1JFX0NPTU1BTkQoc2Vs
ZWN0TGluZSkKK1dFQkNPUkVfQ09NTUFORChzZWxlY3RQYXJhZ3JhcGgpCitXRUJDT1JFX0NPTU1B
TkQoc2VsZWN0U2VudGVuY2UpCitXRUJDT1JFX0NPTU1BTkQoc2VsZWN0VG9NYXJrKQorV0VCQ09S
RV9DT01NQU5EKHNlbGVjdFdvcmQpCitXRUJDT1JFX0NPTU1BTkQoc2V0TWFyaykKK1dFQkNPUkVf
Q09NTUFORChzdWJzY3JpcHQpCitXRUJDT1JFX0NPTU1BTkQoc3VwZXJzY3JpcHQpCitXRUJDT1JF
X0NPTU1BTkQoc3dhcFdpdGhNYXJrKQorV0VCQ09SRV9DT01NQU5EKHRha2VGaW5kU3RyaW5nRnJv
bVNlbGVjdGlvbikKK1dFQkNPUkVfQ09NTUFORCh0cmFuc3Bvc2UpCitXRUJDT1JFX0NPTU1BTkQo
dW5kZXJsaW5lKQorV0VCQ09SRV9DT01NQU5EKHVuc2NyaXB0KQorV0VCQ09SRV9DT01NQU5EKHlh
bmspCitXRUJDT1JFX0NPTU1BTkQoeWFua0FuZFNlbGVjdCkKKworI3VuZGVmIFdFQkNPUkVfQ09N
TUFORAorCistIChCT09MKXdyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkOihOU1Bhc3RlYm9hcmQg
KilwYXN0ZWJvYXJkIHR5cGVzOihOU0FycmF5ICopdHlwZXMKK3sKKyAgICByZXR1cm4gX2ltcGwt
PndyaXRlU2VsZWN0aW9uVG9QYXN0ZWJvYXJkKHBhc3RlYm9hcmQsIHR5cGVzKTsKK30KKworLSAo
dm9pZCljZW50ZXJTZWxlY3Rpb25JblZpc2libGVBcmVhOihpZClzZW5kZXIKK3sKKyAgICBfaW1w
bC0+Y2VudGVyU2VsZWN0aW9uSW5WaXNpYmxlQXJlYSgpOworfQorCistIChpZCl2YWxpZFJlcXVl
c3RvckZvclNlbmRUeXBlOihOU1N0cmluZyAqKXNlbmRUeXBlIHJldHVyblR5cGU6KE5TU3RyaW5n
ICopcmV0dXJuVHlwZQoreworICAgIHJldHVybiBfaW1wbC0+dmFsaWRSZXF1ZXN0b3JGb3JTZW5k
QW5kUmV0dXJuVHlwZXMoc2VuZFR5cGUsIHJldHVyblR5cGUpOworfQorCistIChCT09MKXJlYWRT
ZWxlY3Rpb25Gcm9tUGFzdGVib2FyZDooTlNQYXN0ZWJvYXJkICopcGFzdGVib2FyZAoreworICAg
IHJldHVybiBfaW1wbC0+cmVhZFNlbGVjdGlvbkZyb21QYXN0ZWJvYXJkKHBhc3RlYm9hcmQpOwor
fQorCistICh2b2lkKWNoYW5nZUZvbnQ6KGlkKXNlbmRlcgoreworICAgIF9pbXBsLT5jaGFuZ2VG
b250RnJvbUZvbnRQYW5lbCgpOworfQorCistIChCT09MKXZhbGlkYXRlVXNlckludGVyZmFjZUl0
ZW06KGlkIDxOU1ZhbGlkYXRlZFVzZXJJbnRlcmZhY2VJdGVtPilpdGVtCit7CisgICAgcmV0dXJu
IF9pbXBsLT52YWxpZGF0ZVVzZXJJbnRlcmZhY2VJdGVtKGl0ZW0pOworfQorCistIChJQkFjdGlv
bilzdGFydFNwZWFraW5nOihpZClzZW5kZXIKK3sKKyAgICBfaW1wbC0+c3RhcnRTcGVha2luZygp
OworfQorCistIChJQkFjdGlvbilzdG9wU3BlYWtpbmc6KGlkKXNlbmRlcgoreworICAgIF9pbXBs
LT5zdG9wU3BlYWtpbmcoc2VuZGVyKTsKK30KKworLSAoSUJBY3Rpb24pc2hvd0d1ZXNzUGFuZWw6
KGlkKXNlbmRlcgoreworICAgIF9pbXBsLT5zaG93R3Vlc3NQYW5lbChzZW5kZXIpOworfQorCist
IChJQkFjdGlvbiljaGVja1NwZWxsaW5nOihpZClzZW5kZXIKK3sKKyAgICBfaW1wbC0+Y2hlY2tT
cGVsbGluZygpOworfQorCistICh2b2lkKWNoYW5nZVNwZWxsaW5nOihpZClzZW5kZXIKK3sKKyAg
ICBfaW1wbC0+Y2hhbmdlU3BlbGxpbmcoc2VuZGVyKTsKK30KKworLSAoSUJBY3Rpb24pdG9nZ2xl
Q29udGludW91c1NwZWxsQ2hlY2tpbmc6KGlkKXNlbmRlcgoreworICAgIF9pbXBsLT50b2dnbGVD
b250aW51b3VzU3BlbGxDaGVja2luZygpOworfQorCistIChCT09MKWlzR3JhbW1hckNoZWNraW5n
RW5hYmxlZAoreworICAgIHJldHVybiBfaW1wbC0+aXNHcmFtbWFyQ2hlY2tpbmdFbmFibGVkKCk7
Cit9CisKKy0gKHZvaWQpc2V0R3JhbW1hckNoZWNraW5nRW5hYmxlZDooQk9PTClmbGFnCit7Cisg
ICAgX2ltcGwtPnNldEdyYW1tYXJDaGVja2luZ0VuYWJsZWQoZmxhZyk7Cit9CisKKy0gKElCQWN0
aW9uKXRvZ2dsZUdyYW1tYXJDaGVja2luZzooaWQpc2VuZGVyCit7CisgICAgX2ltcGwtPnRvZ2ds
ZUdyYW1tYXJDaGVja2luZygpOworfQorCistIChJQkFjdGlvbil0b2dnbGVBdXRvbWF0aWNTcGVs
bGluZ0NvcnJlY3Rpb246KGlkKXNlbmRlcgoreworICAgIF9pbXBsLT50b2dnbGVBdXRvbWF0aWNT
cGVsbGluZ0NvcnJlY3Rpb24oKTsKK30KKworLSAodm9pZClvcmRlckZyb250U3Vic3RpdHV0aW9u
c1BhbmVsOihpZClzZW5kZXIKK3sKKyAgICBfaW1wbC0+b3JkZXJGcm9udFN1YnN0aXR1dGlvbnNQ
YW5lbChzZW5kZXIpOworfQorCistIChJQkFjdGlvbil0b2dnbGVTbWFydEluc2VydERlbGV0ZToo
aWQpc2VuZGVyCit7CisgICAgX2ltcGwtPnRvZ2dsZVNtYXJ0SW5zZXJ0RGVsZXRlKCk7Cit9CisK
Ky0gKEJPT0wpaXNBdXRvbWF0aWNRdW90ZVN1YnN0aXR1dGlvbkVuYWJsZWQKK3sKKyAgICByZXR1
cm4gX2ltcGwtPmlzQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkKCk7Cit9CisKKy0g
KHZvaWQpc2V0QXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkOihCT09MKWZsYWcKK3sK
KyAgICBfaW1wbC0+c2V0QXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb25FbmFibGVkKGZsYWcpOwor
fQorCistICh2b2lkKXRvZ2dsZUF1dG9tYXRpY1F1b3RlU3Vic3RpdHV0aW9uOihpZClzZW5kZXIK
K3sKKyAgICBfaW1wbC0+dG9nZ2xlQXV0b21hdGljUXVvdGVTdWJzdGl0dXRpb24oKTsKK30KKwor
LSAoQk9PTClpc0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkCit7CisgICAgcmV0dXJu
IF9pbXBsLT5pc0F1dG9tYXRpY0Rhc2hTdWJzdGl0dXRpb25FbmFibGVkKCk7Cit9CisKKy0gKHZv
aWQpc2V0QXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbkVuYWJsZWQ6KEJPT0wpZmxhZworeworICAg
IF9pbXBsLT5zZXRBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uRW5hYmxlZChmbGFnKTsKK30KKwor
LSAodm9pZCl0b2dnbGVBdXRvbWF0aWNEYXNoU3Vic3RpdHV0aW9uOihpZClzZW5kZXIKK3sKKyAg
ICBfaW1wbC0+dG9nZ2xlQXV0b21hdGljRGFzaFN1YnN0aXR1dGlvbigpOworfQorCistIChCT09M
KWlzQXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQKK3sKKyAgICByZXR1cm4gX2ltcGwtPmlz
QXV0b21hdGljTGlua0RldGVjdGlvbkVuYWJsZWQoKTsKK30KKworLSAodm9pZClzZXRBdXRvbWF0
aWNMaW5rRGV0ZWN0aW9uRW5hYmxlZDooQk9PTClmbGFnCit7CisgICAgX2ltcGwtPnNldEF1dG9t
YXRpY0xpbmtEZXRlY3Rpb25FbmFibGVkKGZsYWcpOworfQorCistICh2b2lkKXRvZ2dsZUF1dG9t
YXRpY0xpbmtEZXRlY3Rpb246KGlkKXNlbmRlcgoreworICAgIF9pbXBsLT50b2dnbGVBdXRvbWF0
aWNMaW5rRGV0ZWN0aW9uKCk7Cit9CisKKy0gKEJPT0wpaXNBdXRvbWF0aWNUZXh0UmVwbGFjZW1l
bnRFbmFibGVkCit7CisgICAgcmV0dXJuIF9pbXBsLT5pc0F1dG9tYXRpY1RleHRSZXBsYWNlbWVu
dEVuYWJsZWQoKTsKK30KKworLSAodm9pZClzZXRBdXRvbWF0aWNUZXh0UmVwbGFjZW1lbnRFbmFi
bGVkOihCT09MKWZsYWcKK3sKKyAgICBfaW1wbC0+c2V0QXV0b21hdGljVGV4dFJlcGxhY2VtZW50
RW5hYmxlZChmbGFnKTsKK30KKworLSAodm9pZCl0b2dnbGVBdXRvbWF0aWNUZXh0UmVwbGFjZW1l
bnQ6KGlkKXNlbmRlcgoreworICAgIF9pbXBsLT50b2dnbGVBdXRvbWF0aWNUZXh0UmVwbGFjZW1l
bnQoKTsKK30KKworLSAodm9pZCl1cHBlcmNhc2VXb3JkOihpZClzZW5kZXIKK3sKKyAgICBfaW1w
bC0+dXBwZXJjYXNlV29yZCgpOworfQorCistICh2b2lkKWxvd2VyY2FzZVdvcmQ6KGlkKXNlbmRl
cgoreworICAgIF9pbXBsLT5sb3dlcmNhc2VXb3JkKCk7Cit9CisKKy0gKHZvaWQpY2FwaXRhbGl6
ZVdvcmQ6KGlkKXNlbmRlcgoreworICAgIF9pbXBsLT5jYXBpdGFsaXplV29yZCgpOworfQorCist
IChCT09MKV93YW50c0tleURvd25Gb3JFdmVudDooTlNFdmVudCAqKWV2ZW50Cit7CisgICAgcmV0
dXJuIF9pbXBsLT53YW50c0tleURvd25Gb3JFdmVudChldmVudCk7Cit9CisKKy0gKHZvaWQpc2Ny
b2xsV2hlZWw6KE5TRXZlbnQgKilldmVudAoreworICAgIF9pbXBsLT5zY3JvbGxXaGVlbChldmVu
dCk7Cit9CisKKy0gKHZvaWQpc3dpcGVXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAoreworICAg
IF9pbXBsLT5zd2lwZVdpdGhFdmVudChldmVudCk7Cit9CisKKy0gKHZvaWQpbW91c2VNb3ZlZDoo
TlNFdmVudCAqKWV2ZW50Cit7CisgICAgX2ltcGwtPm1vdXNlTW92ZWQoZXZlbnQpOworfQorCist
ICh2b2lkKW1vdXNlRG93bjooTlNFdmVudCAqKWV2ZW50Cit7CisgICAgX2ltcGwtPm1vdXNlRG93
bihldmVudCk7Cit9CisKKy0gKHZvaWQpbW91c2VVcDooTlNFdmVudCAqKWV2ZW50Cit7CisgICAg
X2ltcGwtPm1vdXNlVXAoZXZlbnQpOworfQorCistICh2b2lkKW1vdXNlRHJhZ2dlZDooTlNFdmVu
dCAqKWV2ZW50Cit7CisgICAgX2ltcGwtPm1vdXNlRHJhZ2dlZChldmVudCk7Cit9CisKKy0gKHZv
aWQpbW91c2VFbnRlcmVkOihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICBfaW1wbC0+bW91c2VFbnRl
cmVkKGV2ZW50KTsKK30KKworLSAodm9pZCltb3VzZUV4aXRlZDooTlNFdmVudCAqKWV2ZW50Cit7
CisgICAgX2ltcGwtPm1vdXNlRXhpdGVkKGV2ZW50KTsKK30KKworLSAodm9pZClvdGhlck1vdXNl
RG93bjooTlNFdmVudCAqKWV2ZW50Cit7CisgICAgX2ltcGwtPm90aGVyTW91c2VEb3duKGV2ZW50
KTsKK30KKworLSAodm9pZClvdGhlck1vdXNlRHJhZ2dlZDooTlNFdmVudCAqKWV2ZW50Cit7Cisg
ICAgX2ltcGwtPm90aGVyTW91c2VEcmFnZ2VkKGV2ZW50KTsKK30KKworLSAodm9pZClvdGhlck1v
dXNlVXA6KE5TRXZlbnQgKilldmVudAoreworICAgIF9pbXBsLT5vdGhlck1vdXNlVXAoZXZlbnQp
OworfQorCistICh2b2lkKXJpZ2h0TW91c2VEb3duOihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICBf
aW1wbC0+cmlnaHRNb3VzZURvd24oZXZlbnQpOworfQorCistICh2b2lkKXJpZ2h0TW91c2VEcmFn
Z2VkOihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICBfaW1wbC0+cmlnaHRNb3VzZURyYWdnZWQoZXZl
bnQpOworfQorCistICh2b2lkKXJpZ2h0TW91c2VVcDooTlNFdmVudCAqKWV2ZW50Cit7CisgICAg
X2ltcGwtPnJpZ2h0TW91c2VVcChldmVudCk7Cit9CisKKy0gKHZvaWQpcHJlc3N1cmVDaGFuZ2VX
aXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAoreworICAgIF9pbXBsLT5wcmVzc3VyZUNoYW5nZVdp
dGhFdmVudChldmVudCk7Cit9CisKKy0gKEJPT0wpYWNjZXB0c0ZpcnN0TW91c2U6KE5TRXZlbnQg
KilldmVudAoreworICAgIHJldHVybiBfaW1wbC0+YWNjZXB0c0ZpcnN0TW91c2UoZXZlbnQpOwor
fQorCistIChCT09MKXNob3VsZERlbGF5V2luZG93T3JkZXJpbmdGb3JFdmVudDooTlNFdmVudCAq
KWV2ZW50Cit7CisgICAgcmV0dXJuIF9pbXBsLT5zaG91bGREZWxheVdpbmRvd09yZGVyaW5nRm9y
RXZlbnQoZXZlbnQpOworfQorCistICh2b2lkKWRvQ29tbWFuZEJ5U2VsZWN0b3I6KFNFTClzZWxl
Y3RvcgoreworICAgIF9pbXBsLT5kb0NvbW1hbmRCeVNlbGVjdG9yKHNlbGVjdG9yKTsKK30KKwor
LSAodm9pZClpbnNlcnRUZXh0OihpZClzdHJpbmcKK3sKKyAgICBfaW1wbC0+aW5zZXJ0VGV4dChz
dHJpbmcpOworfQorCistICh2b2lkKWluc2VydFRleHQ6KGlkKXN0cmluZyByZXBsYWNlbWVudFJh
bmdlOihOU1JhbmdlKXJlcGxhY2VtZW50UmFuZ2UKK3sKKyAgICBfaW1wbC0+aW5zZXJ0VGV4dChz
dHJpbmcsIHJlcGxhY2VtZW50UmFuZ2UpOworfQorCistIChOU1RleHRJbnB1dENvbnRleHQgKilp
bnB1dENvbnRleHQKK3sKKyAgICByZXR1cm4gX2ltcGwtPmlucHV0Q29udGV4dCgpOworfQorCist
IChCT09MKXBlcmZvcm1LZXlFcXVpdmFsZW50OihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICByZXR1
cm4gX2ltcGwtPnBlcmZvcm1LZXlFcXVpdmFsZW50KGV2ZW50KTsKK30KKworLSAodm9pZClrZXlV
cDooTlNFdmVudCAqKXRoZUV2ZW50Cit7CisgICAgX2ltcGwtPmtleVVwKHRoZUV2ZW50KTsKK30K
KworLSAodm9pZClrZXlEb3duOihOU0V2ZW50ICopdGhlRXZlbnQKK3sKKyAgICBfaW1wbC0+a2V5
RG93bih0aGVFdmVudCk7Cit9CisKKy0gKHZvaWQpZmxhZ3NDaGFuZ2VkOihOU0V2ZW50ICopdGhl
RXZlbnQKK3sKKyAgICBfaW1wbC0+ZmxhZ3NDaGFuZ2VkKHRoZUV2ZW50KTsKK30KKworLSAodm9p
ZClzZXRNYXJrZWRUZXh0OihpZClzdHJpbmcgc2VsZWN0ZWRSYW5nZTooTlNSYW5nZSluZXdTZWxl
Y3RlZFJhbmdlIHJlcGxhY2VtZW50UmFuZ2U6KE5TUmFuZ2UpcmVwbGFjZW1lbnRSYW5nZQorewor
ICAgIF9pbXBsLT5zZXRNYXJrZWRUZXh0KHN0cmluZywgbmV3U2VsZWN0ZWRSYW5nZSwgcmVwbGFj
ZW1lbnRSYW5nZSk7Cit9CisKKy0gKHZvaWQpdW5tYXJrVGV4dAoreworICAgIF9pbXBsLT51bm1h
cmtUZXh0KCk7Cit9CisKKy0gKE5TUmFuZ2Upc2VsZWN0ZWRSYW5nZQoreworICAgIHJldHVybiBf
aW1wbC0+c2VsZWN0ZWRSYW5nZSgpOworfQorCistIChCT09MKWhhc01hcmtlZFRleHQKK3sKKyAg
ICByZXR1cm4gX2ltcGwtPmhhc01hcmtlZFRleHQoKTsKK30KKworLSAoTlNSYW5nZSltYXJrZWRS
YW5nZQoreworICAgIHJldHVybiBfaW1wbC0+bWFya2VkUmFuZ2UoKTsKK30KKworLSAoTlNBdHRy
aWJ1dGVkU3RyaW5nICopYXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2U6KE5TUmFu
Z2UpbnNSYW5nZSBhY3R1YWxSYW5nZTooTlNSYW5nZVBvaW50ZXIpYWN0dWFsUmFuZ2UKK3sKKyAg
ICByZXR1cm4gX2ltcGwtPmF0dHJpYnV0ZWRTdWJzdHJpbmdGb3JQcm9wb3NlZFJhbmdlKG5zUmFu
Z2UsIGFjdHVhbFJhbmdlKTsKK30KKworLSAoTlNVSW50ZWdlciljaGFyYWN0ZXJJbmRleEZvclBv
aW50OihOU1BvaW50KXRoZVBvaW50Cit7CisgICAgcmV0dXJuIF9pbXBsLT5jaGFyYWN0ZXJJbmRl
eEZvclBvaW50KHRoZVBvaW50KTsKK30KKworLSAoTlNSZWN0KWZpcnN0UmVjdEZvckNoYXJhY3Rl
clJhbmdlOihOU1JhbmdlKXRoZVJhbmdlIGFjdHVhbFJhbmdlOihOU1JhbmdlUG9pbnRlcilhY3R1
YWxSYW5nZQoreworICAgIHJldHVybiBfaW1wbC0+Zmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2Uo
dGhlUmFuZ2UsIGFjdHVhbFJhbmdlKTsKK30KKworI2lmIFVTRShBU1lOQ19OU1RFWFRJTlBVVENM
SUVOVCkKKworLSAodm9pZClzZWxlY3RlZFJhbmdlV2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lk
KF4pKE5TUmFuZ2Ugc2VsZWN0ZWRSYW5nZSkpY29tcGxldGlvbkhhbmRsZXJQdHIKK3sKKyAgICBf
aW1wbC0+c2VsZWN0ZWRSYW5nZVdpdGhDb21wbGV0aW9uSGFuZGxlcihjb21wbGV0aW9uSGFuZGxl
clB0cik7Cit9CisKKy0gKHZvaWQpbWFya2VkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZv
aWQoXikoTlNSYW5nZSBtYXJrZWRSYW5nZSkpY29tcGxldGlvbkhhbmRsZXJQdHIKK3sKKyAgICBf
aW1wbC0+bWFya2VkUmFuZ2VXaXRoQ29tcGxldGlvbkhhbmRsZXIoY29tcGxldGlvbkhhbmRsZXJQ
dHIpOworfQorCistICh2b2lkKWhhc01hcmtlZFRleHRXaXRoQ29tcGxldGlvbkhhbmRsZXI6KHZv
aWQoXikoQk9PTCBoYXNNYXJrZWRUZXh0KSljb21wbGV0aW9uSGFuZGxlclB0cgoreworICAgIF9p
bXBsLT5oYXNNYXJrZWRUZXh0V2l0aENvbXBsZXRpb25IYW5kbGVyKGNvbXBsZXRpb25IYW5kbGVy
UHRyKTsKK30KKworLSAodm9pZClhdHRyaWJ1dGVkU3Vic3RyaW5nRm9yUHJvcG9zZWRSYW5nZToo
TlNSYW5nZSluc1JhbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKE5TQXR0cmlidXRlZFN0
cmluZyAqYXR0clN0cmluZywgTlNSYW5nZSBhY3R1YWxSYW5nZSkpY29tcGxldGlvbkhhbmRsZXJQ
dHIKK3sKKyAgICBfaW1wbC0+YXR0cmlidXRlZFN1YnN0cmluZ0ZvclByb3Bvc2VkUmFuZ2UobnNS
YW5nZSwgY29tcGxldGlvbkhhbmRsZXJQdHIpOworfQorCistICh2b2lkKWZpcnN0UmVjdEZvckNo
YXJhY3RlclJhbmdlOihOU1JhbmdlKXRoZVJhbmdlIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4p
KE5TUmVjdCBmaXJzdFJlY3QsIE5TUmFuZ2UgYWN0dWFsUmFuZ2UpKWNvbXBsZXRpb25IYW5kbGVy
UHRyCit7CisgICAgX2ltcGwtPmZpcnN0UmVjdEZvckNoYXJhY3RlclJhbmdlKHRoZVJhbmdlLCBj
b21wbGV0aW9uSGFuZGxlclB0cik7Cit9CisKKy0gKHZvaWQpY2hhcmFjdGVySW5kZXhGb3JQb2lu
dDooTlNQb2ludCl0aGVQb2ludCBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShOU1VJbnRlZ2Vy
KSljb21wbGV0aW9uSGFuZGxlclB0cgoreworICAgIF9pbXBsLT5jaGFyYWN0ZXJJbmRleEZvclBv
aW50KHRoZVBvaW50LCBjb21wbGV0aW9uSGFuZGxlclB0cik7Cit9CisKKyNlbmRpZiAvLyBVU0Uo
QVNZTkNfTlNURVhUSU5QVVRDTElFTlQpCisKKy0gKE5TQXJyYXkgKil2YWxpZEF0dHJpYnV0ZXNG
b3JNYXJrZWRUZXh0Cit7CisgICAgcmV0dXJuIF9pbXBsLT52YWxpZEF0dHJpYnV0ZXNGb3JNYXJr
ZWRUZXh0KCk7Cit9CisKKyNpZiBFTkFCTEUoRFJBR19TVVBQT1JUKQorLSAodm9pZClkcmFnZ2Vk
SW1hZ2U6KE5TSW1hZ2UgKilpbWFnZSBlbmRlZEF0OihOU1BvaW50KWVuZFBvaW50IG9wZXJhdGlv
bjooTlNEcmFnT3BlcmF0aW9uKW9wZXJhdGlvbgoreworICAgIF9pbXBsLT5kcmFnZ2VkSW1hZ2Uo
aW1hZ2UsIE5TUG9pbnRUb0NHUG9pbnQoZW5kUG9pbnQpLCBvcGVyYXRpb24pOworfQorCistIChO
U0RyYWdPcGVyYXRpb24pZHJhZ2dpbmdFbnRlcmVkOihpZCA8TlNEcmFnZ2luZ0luZm8+KWRyYWdn
aW5nSW5mbworeworICAgIHJldHVybiBfaW1wbC0+ZHJhZ2dpbmdFbnRlcmVkKGRyYWdnaW5nSW5m
byk7Cit9CisKKy0gKE5TRHJhZ09wZXJhdGlvbilkcmFnZ2luZ1VwZGF0ZWQ6KGlkIDxOU0RyYWdn
aW5nSW5mbz4pZHJhZ2dpbmdJbmZvCit7CisgICAgcmV0dXJuIF9pbXBsLT5kcmFnZ2luZ1VwZGF0
ZWQoZHJhZ2dpbmdJbmZvKTsKK30KKworLSAodm9pZClkcmFnZ2luZ0V4aXRlZDooaWQgPE5TRHJh
Z2dpbmdJbmZvPilkcmFnZ2luZ0luZm8KK3sKKyAgICBfaW1wbC0+ZHJhZ2dpbmdFeGl0ZWQoZHJh
Z2dpbmdJbmZvKTsKK30KKworLSAoQk9PTClwcmVwYXJlRm9yRHJhZ09wZXJhdGlvbjooaWQgPE5T
RHJhZ2dpbmdJbmZvPilkcmFnZ2luZ0luZm8KK3sKKyAgICByZXR1cm4gX2ltcGwtPnByZXBhcmVG
b3JEcmFnT3BlcmF0aW9uKGRyYWdnaW5nSW5mbyk7Cit9CisKKy0gKEJPT0wpcGVyZm9ybURyYWdP
cGVyYXRpb246KGlkIDxOU0RyYWdnaW5nSW5mbz4pZHJhZ2dpbmdJbmZvCit7CisgICAgcmV0dXJu
IF9pbXBsLT5wZXJmb3JtRHJhZ09wZXJhdGlvbihkcmFnZ2luZ0luZm8pOworfQorCistIChOU1Zp
ZXcgKilfaGl0VGVzdDooTlNQb2ludCAqKXBvaW50IGRyYWdUeXBlczooTlNTZXQgKil0eXBlcwor
eworICAgIHJldHVybiBfaW1wbC0+aGl0VGVzdEZvckRyYWdUeXBlcyhOU1BvaW50VG9DR1BvaW50
KCpwb2ludCksIHR5cGVzKTsKK30KKyNlbmRpZiAvLyBFTkFCTEUoRFJBR19TVVBQT1JUKQorCist
IChCT09MKV93aW5kb3dSZXNpemVNb3VzZUxvY2F0aW9uSXNJblZpc2libGVTY3JvbGxlclRodW1i
OihOU1BvaW50KXBvaW50Cit7CisgICAgcmV0dXJuIF9pbXBsLT53aW5kb3dSZXNpemVNb3VzZUxv
Y2F0aW9uSXNJblZpc2libGVTY3JvbGxlclRodW1iKE5TUG9pbnRUb0NHUG9pbnQocG9pbnQpKTsK
K30KKworLSAodm9pZCl2aWV3V2lsbE1vdmVUb1dpbmRvdzooTlNXaW5kb3cgKil3aW5kb3cKK3sK
KyAgICBfaW1wbC0+dmlld1dpbGxNb3ZlVG9XaW5kb3cod2luZG93KTsKK30KKworLSAodm9pZCl2
aWV3RGlkTW92ZVRvV2luZG93Cit7CisgICAgX2ltcGwtPnZpZXdEaWRNb3ZlVG9XaW5kb3coKTsK
K30KKworLSAodm9pZClkcmF3UmVjdDooTlNSZWN0KXJlY3QKK3sKKyAgICBfaW1wbC0+ZHJhd1Jl
Y3QoTlNSZWN0VG9DR1JlY3QocmVjdCkpOworfQorCistIChCT09MKWlzT3BhcXVlCit7CisgICAg
cmV0dXJuIF9pbXBsLT5pc09wYXF1ZSgpOworfQorCistIChCT09MKW1vdXNlRG93bkNhbk1vdmVX
aW5kb3cKK3sKKyAgICByZXR1cm4gV2ViS2l0OjpXZWJWaWV3SW1wbDo6bW91c2VEb3duQ2FuTW92
ZVdpbmRvdygpOworfQorCistICh2b2lkKXZpZXdEaWRIaWRlCit7CisgICAgX2ltcGwtPnZpZXdE
aWRIaWRlKCk7Cit9CisKKy0gKHZvaWQpdmlld0RpZFVuaGlkZQoreworICAgIF9pbXBsLT52aWV3
RGlkVW5oaWRlKCk7Cit9CisKKy0gKHZvaWQpdmlld0RpZENoYW5nZUJhY2tpbmdQcm9wZXJ0aWVz
Cit7CisgICAgX2ltcGwtPnZpZXdEaWRDaGFuZ2VCYWNraW5nUHJvcGVydGllcygpOworfQorCist
ICh2b2lkKV9hY3RpdmVTcGFjZURpZENoYW5nZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRp
b24KK3sKKyAgICBfaW1wbC0+YWN0aXZlU3BhY2VEaWRDaGFuZ2UoKTsKK30KKworLSAoaWQpYWNj
ZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnQKK3sKKyAgICByZXR1cm4gX2ltcGwtPmFjY2Vzc2li
aWxpdHlGb2N1c2VkVUlFbGVtZW50KCk7Cit9CisKKy0gKEJPT0wpYWNjZXNzaWJpbGl0eUlzSWdu
b3JlZAoreworICAgIHJldHVybiBfaW1wbC0+YWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpOworfQor
CistIChpZClhY2Nlc3NpYmlsaXR5SGl0VGVzdDooTlNQb2ludClwb2ludAoreworICAgIHJldHVy
biBfaW1wbC0+YWNjZXNzaWJpbGl0eUhpdFRlc3QoTlNQb2ludFRvQ0dQb2ludChwb2ludCkpOwor
fQorCistIChpZClhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6KE5TU3RyaW5nICopYXR0cmli
dXRlCit7CisgICAgcmV0dXJuIF9pbXBsLT5hY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWUoYXR0
cmlidXRlKTsKK30KKworLSAoTlNWaWV3ICopaGl0VGVzdDooTlNQb2ludClwb2ludAoreworICAg
IGlmICghX2ltcGwpCisgICAgICAgIHJldHVybiBbc3VwZXIgaGl0VGVzdDpwb2ludF07CisgICAg
cmV0dXJuIF9pbXBsLT5oaXRUZXN0KE5TUG9pbnRUb0NHUG9pbnQocG9pbnQpKTsKK30KKworLSAo
TlNJbnRlZ2VyKWNvbnZlcnNhdGlvbklkZW50aWZpZXIKK3sKKyAgICByZXR1cm4gKE5TSW50ZWdl
cilzZWxmOworfQorCistICh2b2lkKXF1aWNrTG9va1dpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50
Cit7CisgICAgX2ltcGwtPnF1aWNrTG9va1dpdGhFdmVudChldmVudCk7Cit9CisKKy0gKE5TVHJh
Y2tpbmdSZWN0VGFnKWFkZFRyYWNraW5nUmVjdDooTlNSZWN0KXJlY3Qgb3duZXI6KGlkKW93bmVy
IHVzZXJEYXRhOih2b2lkICopZGF0YSBhc3N1bWVJbnNpZGU6KEJPT0wpYXNzdW1lSW5zaWRlCit7
CisgICAgcmV0dXJuIF9pbXBsLT5hZGRUcmFja2luZ1JlY3QoTlNSZWN0VG9DR1JlY3QocmVjdCks
IG93bmVyLCBkYXRhLCBhc3N1bWVJbnNpZGUpOworfQorCistIChOU1RyYWNraW5nUmVjdFRhZylf
YWRkVHJhY2tpbmdSZWN0OihOU1JlY3QpcmVjdCBvd25lcjooaWQpb3duZXIgdXNlckRhdGE6KHZv
aWQgKilkYXRhIGFzc3VtZUluc2lkZTooQk9PTClhc3N1bWVJbnNpZGUgdXNlVHJhY2tpbmdOdW06
KGludCl0YWcKK3sKKyAgICByZXR1cm4gX2ltcGwtPmFkZFRyYWNraW5nUmVjdFdpdGhUcmFja2lu
Z051bShOU1JlY3RUb0NHUmVjdChyZWN0KSwgb3duZXIsIGRhdGEsIGFzc3VtZUluc2lkZSwgdGFn
KTsKK30KKworLSAodm9pZClfYWRkVHJhY2tpbmdSZWN0czooTlNSZWN0ICopcmVjdHMgb3duZXI6
KGlkKW93bmVyIHVzZXJEYXRhTGlzdDoodm9pZCAqKil1c2VyRGF0YUxpc3QgYXNzdW1lSW5zaWRl
TGlzdDooQk9PTCAqKWFzc3VtZUluc2lkZUxpc3QgdHJhY2tpbmdOdW1zOihOU1RyYWNraW5nUmVj
dFRhZyAqKXRyYWNraW5nTnVtcyBjb3VudDooaW50KWNvdW50Cit7CisgICAgQ0dSZWN0ICpjZ1Jl
Y3RzID0gKENHUmVjdCAqKWNhbGxvYygxLCBzaXplb2YoQ0dSZWN0KSk7CisgICAgZm9yIChpbnQg
aSA9IDA7IGkgPCBjb3VudDsgaSsrKQorICAgICAgICBjZ1JlY3RzW2ldID0gTlNSZWN0VG9DR1Jl
Y3QocmVjdHNbaV0pOworICAgIF9pbXBsLT5hZGRUcmFja2luZ1JlY3RzV2l0aFRyYWNraW5nTnVt
cyhjZ1JlY3RzLCBvd25lciwgdXNlckRhdGFMaXN0LCBhc3N1bWVJbnNpZGVMaXN0LCB0cmFja2lu
Z051bXMsIGNvdW50KTsKKyAgICBmcmVlKGNnUmVjdHMpOworfQorCistICh2b2lkKXJlbW92ZVRy
YWNraW5nUmVjdDooTlNUcmFja2luZ1JlY3RUYWcpdGFnCit7CisgICAgaWYgKCFfaW1wbCkKKyAg
ICAgICAgcmV0dXJuOworICAgIF9pbXBsLT5yZW1vdmVUcmFja2luZ1JlY3QodGFnKTsKK30KKwor
LSAodm9pZClfcmVtb3ZlVHJhY2tpbmdSZWN0czooTlNUcmFja2luZ1JlY3RUYWcgKil0YWdzIGNv
dW50OihpbnQpY291bnQKIHsKLSAgICByZXR1cm4gW193a1ZpZXcgYWNjZXB0c0ZpcnN0UmVzcG9u
ZGVyXTsKKyAgICBpZiAoIV9pbXBsKQorICAgICAgICByZXR1cm47CisgICAgX2ltcGwtPnJlbW92
ZVRyYWNraW5nUmVjdHModGFncywgY291bnQpOwogfQogCi0tICh2b2lkKXJlc2l6ZVN1YnZpZXdz
V2l0aE9sZFNpemU6KE5TU2l6ZSlvbGRTaXplCistIChOU1N0cmluZyAqKXZpZXc6KE5TVmlldyAq
KXZpZXcgc3RyaW5nRm9yVG9vbFRpcDooTlNUb29sVGlwVGFnKXRhZyBwb2ludDooTlNQb2ludClw
b2ludCB1c2VyRGF0YToodm9pZCAqKWRhdGEKIHsKLSAgICBbX3drVmlldyBzZXRGcmFtZTpzZWxm
LmJvdW5kc107CisgICAgcmV0dXJuIF9pbXBsLT5zdHJpbmdGb3JUb29sVGlwKHRhZyk7Cit9CisK
Ky0gKHZvaWQpcGFzdGVib2FyZENoYW5nZWRPd25lcjooTlNQYXN0ZWJvYXJkICopcGFzdGVib2Fy
ZAoreworICAgIF9pbXBsLT5wYXN0ZWJvYXJkQ2hhbmdlZE93bmVyKHBhc3RlYm9hcmQpOworfQor
CistICh2b2lkKXBhc3RlYm9hcmQ6KE5TUGFzdGVib2FyZCAqKXBhc3RlYm9hcmQgcHJvdmlkZURh
dGFGb3JUeXBlOihOU1N0cmluZyAqKXR5cGUKK3sKKyAgICBfaW1wbC0+cHJvdmlkZURhdGFGb3JQ
YXN0ZWJvYXJkKHBhc3RlYm9hcmQsIHR5cGUpOworfQorCistIChOU0FycmF5ICopbmFtZXNPZlBy
b21pc2VkRmlsZXNEcm9wcGVkQXREZXN0aW5hdGlvbjooTlNVUkwgKilkcm9wRGVzdGluYXRpb24K
K3sKKyAgICByZXR1cm4gX2ltcGwtPm5hbWVzT2ZQcm9taXNlZEZpbGVzRHJvcHBlZEF0RGVzdGlu
YXRpb24oZHJvcERlc3RpbmF0aW9uKTsKK30KKworLSAoQk9PTCl3YW50c1VwZGF0ZUxheWVyCit7
CisgICAgcmV0dXJuIFdlYktpdDo6V2ViVmlld0ltcGw6OndhbnRzVXBkYXRlTGF5ZXIoKTsKK30K
KworLSAodm9pZCl1cGRhdGVMYXllcgoreworICAgIF9pbXBsLT51cGRhdGVMYXllcigpOwogfQog
CiAtICh2b2lkKXNldEFsbG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzOihCT09MKWFs
bG93c0JhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmVzCiB7Ci0gICAgW193a1ZpZXcgc2V0QWxs
b3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXM6YWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0
aW9uR2VzdHVyZXNdOworICAgIF9pbXBsLT5zZXRBbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25H
ZXN0dXJlcyhhbGxvd3NCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlcyk7CiB9CiAKIC0gKEJP
T0wpYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMKIHsKLSAgICByZXR1cm4gW193
a1ZpZXcgYWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXNdOworICAgIHJldHVybiBf
aW1wbC0+YWxsb3dzQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZXMoKTsKK30KKworLSAodm9p
ZClzbWFydE1hZ25pZnlXaXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAoreworICAgIF9pbXBsLT5z
bWFydE1hZ25pZnlXaXRoRXZlbnQoZXZlbnQpOworfQorCistICh2b2lkKXNldE1hZ25pZmljYXRp
b246KGRvdWJsZSltYWduaWZpY2F0aW9uIGNlbnRlcmVkQXRQb2ludDooTlNQb2ludClwb2ludAor
eworICAgIF9pbXBsLT5zZXRNYWduaWZpY2F0aW9uKG1hZ25pZmljYXRpb24sIE5TUG9pbnRUb0NH
UG9pbnQocG9pbnQpKTsKK30KKworLSAodm9pZClzZXRNYWduaWZpY2F0aW9uOihkb3VibGUpbWFn
bmlmaWNhdGlvbgoreworICAgIF9pbXBsLT5zZXRNYWduaWZpY2F0aW9uKG1hZ25pZmljYXRpb24p
OworfQorCistIChkb3VibGUpbWFnbmlmaWNhdGlvbgoreworICAgIHJldHVybiBfaW1wbC0+bWFn
bmlmaWNhdGlvbigpOwogfQogCiAtICh2b2lkKXNldEFsbG93c01hZ25pZmljYXRpb246KEJPT0wp
YWxsb3dzTWFnbmlmaWNhdGlvbgogewotICAgIFtfd2tWaWV3IHNldEFsbG93c01hZ25pZmljYXRp
b246YWxsb3dzTWFnbmlmaWNhdGlvbl07CisgICAgX2ltcGwtPnNldEFsbG93c01hZ25pZmljYXRp
b24oYWxsb3dzTWFnbmlmaWNhdGlvbik7CiB9CiAKIC0gKEJPT0wpYWxsb3dzTWFnbmlmaWNhdGlv
bgogewotICAgIHJldHVybiBbX3drVmlldyBhbGxvd3NNYWduaWZpY2F0aW9uXTsKKyAgICByZXR1
cm4gX2ltcGwtPmFsbG93c01hZ25pZmljYXRpb24oKTsKK30KKworLSAodm9pZCltYWduaWZ5V2l0
aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICBfaW1wbC0+bWFnbmlmeVdpdGhFdmVudChl
dmVudCk7CiB9CiAKLS0gKHZvaWQpc2V0TWFnbmlmaWNhdGlvbjooQ0dGbG9hdCltYWduaWZpY2F0
aW9uCisjaWYgRU5BQkxFKE1BQ19HRVNUVVJFX0VWRU5UUykKKy0gKHZvaWQpcm90YXRlV2l0aEV2
ZW50OihOU0V2ZW50ICopZXZlbnQKIHsKLSAgICBbX3drVmlldyBzZXRNYWduaWZpY2F0aW9uOm1h
Z25pZmljYXRpb25dOworICAgIF9pbXBsLT5yb3RhdGVXaXRoRXZlbnQoZXZlbnQpOwogfQorI2Vu
ZGlmCiAKLS0gKENHRmxvYXQpbWFnbmlmaWNhdGlvbgorLSAoTlNUZXh0SW5wdXRDb250ZXh0ICop
X3dlYl9zdXBlcklucHV0Q29udGV4dAogewotICAgIHJldHVybiBbX3drVmlldyBtYWduaWZpY2F0
aW9uXTsKKyAgICByZXR1cm4gW3N1cGVyIGlucHV0Q29udGV4dF07CiB9CiAKLS0gKHZvaWQpc2V0
TWFnbmlmaWNhdGlvbjooQ0dGbG9hdCltYWduaWZpY2F0aW9uIGNlbnRlcmVkQXRQb2ludDooQ0dQ
b2ludClwb2ludAorLSAodm9pZClfd2ViX3N1cGVyUXVpY2tMb29rV2l0aEV2ZW50OihOU0V2ZW50
ICopZXZlbnQKIHsKLSAgICBbX3drVmlldyBzZXRNYWduaWZpY2F0aW9uOm1hZ25pZmljYXRpb24g
Y2VudGVyZWRBdFBvaW50Ok5TUG9pbnRGcm9tQ0dQb2ludChwb2ludCldOworICAgIFtzdXBlciBx
dWlja0xvb2tXaXRoRXZlbnQ6ZXZlbnRdOwogfQogCi0tIChCT09MKV9pZ25vcmVzTm9uV2hlZWxF
dmVudHMKKy0gKHZvaWQpX3dlYl9zdXBlclN3aXBlV2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQK
IHsKLSAgICByZXR1cm4gW193a1ZpZXcgX2lnbm9yZXNOb25XaGVlbEV2ZW50c107CisgICAgW3N1
cGVyIHN3aXBlV2l0aEV2ZW50OmV2ZW50XTsKIH0KIAotLSAodm9pZClfc2V0SWdub3Jlc05vbldo
ZWVsRXZlbnRzOihCT09MKWlnbm9yZXNOb25XaGVlbEV2ZW50cworLSAodm9pZClfd2ViX3N1cGVy
TWFnbmlmeVdpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50CiB7Ci0gICAgW193a1ZpZXcgX3NldEln
bm9yZXNOb25XaGVlbEV2ZW50czppZ25vcmVzTm9uV2hlZWxFdmVudHNdOworICAgIFtzdXBlciBt
YWduaWZ5V2l0aEV2ZW50OmV2ZW50XTsKIH0KIAotLSAoTlNEcmFnT3BlcmF0aW9uKWRyYWdnaW5n
RW50ZXJlZDooaWQgPE5TRHJhZ2dpbmdJbmZvPilzZW5kZXIKKy0gKHZvaWQpX3dlYl9zdXBlclNt
YXJ0TWFnbmlmeVdpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50CiB7Ci0gICAgcmV0dXJuIFtfd2tW
aWV3IGRyYWdnaW5nRW50ZXJlZDpzZW5kZXJdOworICAgIFtzdXBlciBzbWFydE1hZ25pZnlXaXRo
RXZlbnQ6ZXZlbnRdOwogfQogCi0tIChOU0RyYWdPcGVyYXRpb24pZHJhZ2dpbmdVcGRhdGVkOihp
ZCA8TlNEcmFnZ2luZ0luZm8+KXNlbmRlcgorLSAodm9pZClfd2ViX3N1cGVyUmVtb3ZlVHJhY2tp
bmdSZWN0OihOU1RyYWNraW5nUmVjdFRhZyl0YWcKIHsKLSAgICByZXR1cm4gW193a1ZpZXcgZHJh
Z2dpbmdVcGRhdGVkOnNlbmRlcl07CisgICAgW3N1cGVyIHJlbW92ZVRyYWNraW5nUmVjdDp0YWdd
OwogfQogCi0tICh2b2lkKWRyYWdnaW5nRXhpdGVkOihpZCA8TlNEcmFnZ2luZ0luZm8+KXNlbmRl
cgorLSAoaWQpX3dlYl9zdXBlckFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTooTlNTdHJpbmcg
KilhdHRyaWJ1dGUKIHsKLSAgICBbX3drVmlldyBkcmFnZ2luZ0V4aXRlZDpzZW5kZXJdOworI3By
YWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25v
cmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgorICAgIHJldHVybiBbc3VwZXIgYWNjZXNz
aWJpbGl0eUF0dHJpYnV0ZVZhbHVlOmF0dHJpYnV0ZV07CisjcHJhZ21hIGNsYW5nIGRpYWdub3N0
aWMgcG9wCiB9CiAKLS0gKEJPT0wpcHJlcGFyZUZvckRyYWdPcGVyYXRpb246KGlkIDxOU0RyYWdn
aW5nSW5mbz4pc2VuZGVyCistICh2b2lkKV93ZWJfc3VwZXJEb0NvbW1hbmRCeVNlbGVjdG9yOihT
RUwpc2VsZWN0b3IKIHsKLSAgICByZXR1cm4gW193a1ZpZXcgcHJlcGFyZUZvckRyYWdPcGVyYXRp
b246c2VuZGVyXTsKKyAgICBbc3VwZXIgZG9Db21tYW5kQnlTZWxlY3RvcjpzZWxlY3Rvcl07CiB9
CiAKLS0gKEJPT0wpcGVyZm9ybURyYWdPcGVyYXRpb246KGlkIDxOU0RyYWdnaW5nSW5mbz4pc2Vu
ZGVyCistIChCT09MKV93ZWJfc3VwZXJQZXJmb3JtS2V5RXF1aXZhbGVudDooTlNFdmVudCAqKWV2
ZW50CiB7Ci0gICAgcmV0dXJuIFtfd2tWaWV3IHBlcmZvcm1EcmFnT3BlcmF0aW9uOnNlbmRlcl07
CisgICAgcmV0dXJuIFtzdXBlciBwZXJmb3JtS2V5RXF1aXZhbGVudDpldmVudF07CiB9CiAKLS0g
KENHU2l6ZSlpbnRyaW5zaWNDb250ZW50U2l6ZQorLSAodm9pZClfd2ViX3N1cGVyS2V5RG93bjoo
TlNFdmVudCAqKWV2ZW50CiB7Ci0gICAgcmV0dXJuIF9pbnRyaW5zaWNDb250ZW50U2l6ZTsKKyAg
ICBbc3VwZXIga2V5RG93bjpldmVudF07CiB9CiAKLS0gKHZvaWQpX3NldEludHJpbnNpY0NvbnRl
bnRTaXplOihDR1NpemUpaW50cmluc2ljQ29udGVudFNpemUKKy0gKE5TVmlldyAqKV93ZWJfc3Vw
ZXJIaXRUZXN0OihOU1BvaW50KXBvaW50CiB7Ci0gICAgLy8gSWYgdGhlIGludHJpbnNpYyBjb250
ZW50IHNpemUgaXMgbGVzcyB0aGFuIHRoZSBtaW5pbXVtIGxheW91dCB3aWR0aCwgdGhlIGNvbnRl
bnQgZmxvd2VkIHRvIGZpdCwKLSAgICAvLyBzbyB3ZSBjYW4gcmVwb3J0IHRoYXQgdGhhdCBkaW1l
bnNpb24gaXMgZmxleGlibGUuIElmIG5vdCwgd2UgbmVlZCB0byByZXBvcnQgb3VyIGludHJpbnNp
YyB3aWR0aAotICAgIC8vIHNvIHRoYXQgYXV0b2xheW91dCB3aWxsIGtub3cgdG8gcHJvdmlkZSBz
cGFjZSBmb3IgdXMuCisgICAgcmV0dXJuIFtzdXBlciBoaXRUZXN0OnBvaW50XTsKK30KIAotICAg
IENHU2l6ZSBpbnRyaW5zaWNDb250ZW50U2l6ZUFja25vd2xlZGdpbmdGbGV4aWJsZVdpZHRoID0g
aW50cmluc2ljQ29udGVudFNpemU7Ci0gICAgaWYgKGludHJpbnNpY0NvbnRlbnRTaXplLndpZHRo
IDwgX3BhZ2UtPm1pbmltdW1MYXlvdXRTaXplKCkud2lkdGgoKSkKLSAgICAgICAgaW50cmluc2lj
Q29udGVudFNpemVBY2tub3dsZWRnaW5nRmxleGlibGVXaWR0aC53aWR0aCA9IE5TVmlld05vSW5z
dHJpbnNpY01ldHJpYzsKKy0gKGlkKV93ZWJfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJv
bGxlckZvckhpdFRlc3RSZXN1bHRJbnRlcm5hbDooQVBJOjpIaXRUZXN0UmVzdWx0KiloaXRUZXN0
UmVzdWx0IHdpdGhUeXBlOih1aW50MzJfdCl0eXBlIHVzZXJEYXRhOihBUEk6Ok9iamVjdCopdXNl
ckRhdGEKK3sKKyAgICByZXR1cm4gW3NlbGYgX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRy
b2xsZXJGb3JIaXRUZXN0UmVzdWx0OndyYXBwZXIoKmhpdFRlc3RSZXN1bHQpIHdpdGhUeXBlOihf
V0tJbW1lZGlhdGVBY3Rpb25UeXBlKXR5cGUgdXNlckRhdGE6KGlkKXVzZXJEYXRhXTsKK30KIAot
ICAgIF9pbnRyaW5zaWNDb250ZW50U2l6ZSA9IGludHJpbnNpY0NvbnRlbnRTaXplQWNrbm93bGVk
Z2luZ0ZsZXhpYmxlV2lkdGg7Ci0gICAgW3NlbGYgaW52YWxpZGF0ZUludHJpbnNpY0NvbnRlbnRT
aXplXTsKKy8vIFdlIGRvbid0IGV4cG9zZSB0aGVzZSB2YXJpb3VzIGJpdHMgb2YgU1BJIGxpa2Ug
V0tWaWV3IGRvZXMsCisvLyBzbyBoYXZlIHRoZXNlIGludGVybmFsIG1ldGhvZHMganVzdCBkbyB0
aGUgd29yayAob3IgZG8gbm90aGluZyk6CistICh2b2lkKV93ZWJfcHJlcGFyZUZvckltbWVkaWF0
ZUFjdGlvbkFuaW1hdGlvbgoreworfQorCistICh2b2lkKV93ZWJfY2FuY2VsSW1tZWRpYXRlQWN0
aW9uQW5pbWF0aW9uCit7Cit9CisKKy0gKHZvaWQpX3dlYl9jb21wbGV0ZUltbWVkaWF0ZUFjdGlv
bkFuaW1hdGlvbgoreworfQorCistICh2b2lkKV93ZWJfZGlkQ2hhbmdlQ29udGVudFNpemU6KE5T
U2l6ZSluZXdTaXplCit7Cit9CisKKy0gKHZvaWQpX3dlYl9kaXNtaXNzQ29udGVudFJlbGF0aXZl
Q2hpbGRXaW5kb3dzCit7CisgICAgX2ltcGwtPmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdp
bmRvd3NGcm9tVmlld09ubHkoKTsKK30KKworLSAodm9pZClfd2ViX2Rpc21pc3NDb250ZW50UmVs
YXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uOihCT09MKXdpdGhBbmltYXRpb24KK3sKKyAg
ICBfaW1wbC0+ZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb25G
cm9tVmlld09ubHkod2l0aEFuaW1hdGlvbik7Cit9CisKKy0gKHZvaWQpX3dlYl9nZXN0dXJlRXZl
bnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICBfaW1wbC0+
Z2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZUZyb21WaWV3T25seShldmVudCk7CiB9
CiAKICNlbmRpZiAvLyBQTEFURk9STShNQUMpCkBAIC0xOTk0LDE5ICsyNzU4LDIzIEBAIHN0YXRp
YyBXZWJDb3JlOjpGbG9hdFBvaW50IGNvbnN0cmFpbkNvbnRlbnRPZmZzZXQoV2ViQ29yZTo6Rmxv
YXRQb2ludCBjb250ZW50T2ZmCiAtICh2b2lkKV9zZXRFZGl0YWJsZTooQk9PTCllZGl0YWJsZQog
ewogICAgIF9wYWdlLT5zZXRFZGl0YWJsZShlZGl0YWJsZSk7Ci0jaWYgIVBMQVRGT1JNKElPUykK
LSAgICBbX3drVmlldyBfYWRkRm9udFBhbmVsT2JzZXJ2ZXJdOworI2lmIFBMQVRGT1JNKE1BQykK
KyAgICBfaW1wbC0+c3RhcnRPYnNlcnZpbmdGb250UGFuZWwoKTsKICNlbmRpZgogfQogCiAtIChf
V0tSZW1vdGVPYmplY3RSZWdpc3RyeSAqKV9yZW1vdGVPYmplY3RSZWdpc3RyeQogeworI2lmIFBM
QVRGT1JNKE1BQykKKyAgICByZXR1cm4gX2ltcGwtPnJlbW90ZU9iamVjdFJlZ2lzdHJ5KCk7Cisj
ZWxzZQogICAgIGlmICghX3JlbW90ZU9iamVjdFJlZ2lzdHJ5KSB7CiAgICAgICAgIF9yZW1vdGVP
YmplY3RSZWdpc3RyeSA9IGFkb3B0TlMoW1tfV0tSZW1vdGVPYmplY3RSZWdpc3RyeSBhbGxvY10g
X2luaXRXaXRoTWVzc2FnZVNlbmRlcjoqX3BhZ2VdKTsKICAgICAgICAgX3BhZ2UtPnByb2Nlc3Mo
KS5wcm9jZXNzUG9vbCgpLmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6UmVtb3RlT2JqZWN0
UmVnaXN0cnk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgX3BhZ2UtPnBhZ2VJRCgpLCBbX3JlbW90
ZU9iamVjdFJlZ2lzdHJ5IHJlbW90ZU9iamVjdFJlZ2lzdHJ5XSk7CiAgICAgfQogCiAgICAgcmV0
dXJuIF9yZW1vdGVPYmplY3RSZWdpc3RyeS5nZXQoKTsKKyNlbmRpZgogfQogCiAtIChXS0Jyb3dz
aW5nQ29udGV4dEhhbmRsZSAqKV9oYW5kbGUKQEAgLTI2MTcsNyArMzM4NSw3IEBAIHN0YXRpYyBp
bmxpbmUgV2ViS2l0OjpGaW5kT3B0aW9ucyB0b0ZpbmRPcHRpb25zKF9XS0ZpbmRPcHRpb25zIHdr
RmluZE9wdGlvbnMpCiAtIChfV0tMYXlvdXRNb2RlKV9sYXlvdXRNb2RlCiB7CiAjaWYgUExBVEZP
Uk0oTUFDKQotICAgIHN3aXRjaCAoW193a1ZpZXcgX2xheW91dE1vZGVdKSB7CisgICAgc3dpdGNo
IChfaW1wbC0+bGF5b3V0TW9kZSgpKSB7CiAgICAgY2FzZSBrV0tMYXlvdXRNb2RlRml4ZWRTaXpl
OgogICAgICAgICByZXR1cm4gX1dLTGF5b3V0TW9kZUZpeGVkU2l6ZTsKICAgICBjYXNlIGtXS0xh
eW91dE1vZGVEeW5hbWljU2l6ZUNvbXB1dGVkRnJvbVZpZXdTY2FsZToKQEAgLTI2NTIsNyArMzQy
MCw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViS2l0OjpGaW5kT3B0aW9ucyB0b0ZpbmRPcHRpb25zKF9X
S0ZpbmRPcHRpb25zIHdrRmluZE9wdGlvbnMpCiAgICAgICAgIHdrVmlld0xheW91dE1vZGUgPSBr
V0tMYXlvdXRNb2RlVmlld1NpemU7CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBbX3drVmll
dyBfc2V0TGF5b3V0TW9kZTp3a1ZpZXdMYXlvdXRNb2RlXTsKKyAgICBfaW1wbC0+c2V0TGF5b3V0
TW9kZSh3a1ZpZXdMYXlvdXRNb2RlKTsKICNlbHNlCiAgICAgX3BhZ2UtPnNldFVzZUZpeGVkTGF5
b3V0KGxheW91dE1vZGUgPT0gX1dLTGF5b3V0TW9kZUZpeGVkU2l6ZSB8fCBsYXlvdXRNb2RlID09
IF9XS0xheW91dE1vZGVEeW5hbWljU2l6ZUNvbXB1dGVkRnJvbVZpZXdTY2FsZSk7CiAjZW5kaWYK
QEAgLTI2NzYsNyArMzQ0NCw3IEBAIHN0YXRpYyBpbmxpbmUgV2ViS2l0OjpGaW5kT3B0aW9ucyB0
b0ZpbmRPcHRpb25zKF9XS0ZpbmRPcHRpb25zIHdrRmluZE9wdGlvbnMpCiAtICh2b2lkKV9zZXRW
aWV3U2NhbGU6KENHRmxvYXQpdmlld1NjYWxlCiB7CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFtf
d2tWaWV3IF9zZXRWaWV3U2NhbGU6dmlld1NjYWxlXTsKKyAgICBfaW1wbC0+c2V0Vmlld1NjYWxl
KHZpZXdTY2FsZSk7CiAjZWxzZQogICAgIGlmICh2aWV3U2NhbGUgPD0gMCB8fCBpc25hbih2aWV3
U2NhbGUpIHx8IGlzaW5mKHZpZXdTY2FsZSkpCiAgICAgICAgIFtOU0V4Y2VwdGlvbiByYWlzZTpO
U0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJWaWV3IHNjYWxlIHNob3VsZCBiZSBh
IHBvc2l0aXZlIG51bWJlciJdOwpAQCAtMzE0Miw3MyArMzkxMCw3OSBAQCBzdGF0aWMgaW5saW5l
IFdlYktpdDo6RmluZE9wdGlvbnMgdG9GaW5kT3B0aW9ucyhfV0tGaW5kT3B0aW9ucyB3a0ZpbmRP
cHRpb25zKQogCiAjcHJhZ21hIG1hcmsgLSBPUyBYLXNwZWNpZmljIG1ldGhvZHMKIAotLSAoTlND
b2xvciAqKV9wYWdlRXh0ZW5kZWRCYWNrZ3JvdW5kQ29sb3IKKy0gKEJPT0wpX2RyYXdzVHJhbnNw
YXJlbnRCYWNrZ3JvdW5kCiB7Ci0gICAgV2ViQ29yZTo6Q29sb3IgY29sb3IgPSBfcGFnZS0+cGFn
ZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yKCk7Ci0gICAgaWYgKCFjb2xvci5pc1ZhbGlkKCkpCi0g
ICAgICAgIHJldHVybiBuaWw7CisgICAgcmV0dXJuIF9pbXBsLT5kcmF3c1RyYW5zcGFyZW50QmFj
a2dyb3VuZCgpOworfQogCi0gICAgcmV0dXJuIG5zQ29sb3IoY29sb3IpOworLSAodm9pZClfc2V0
RHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQ6KEJPT0wpZHJhd3NUcmFuc3BhcmVudEJhY2tncm91
bmQKK3sKKyAgICBfaW1wbC0+c2V0RHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoZHJhd3NUcmFu
c3BhcmVudEJhY2tncm91bmQpOwogfQogCi0tIChCT09MKV9kcmF3c1RyYW5zcGFyZW50QmFja2dy
b3VuZAorI2lmIFdLX0FQSV9FTkFCTEVECistIChOU1ZpZXcgKilfaW5zcGVjdG9yQXR0YWNobWVu
dFZpZXcKIHsKLSAgICByZXR1cm4gX3BhZ2UtPmRyYXdzVHJhbnNwYXJlbnRCYWNrZ3JvdW5kKCk7
CisgICAgcmV0dXJuIF9pbXBsLT5pbnNwZWN0b3JBdHRhY2htZW50VmlldygpOwogfQogCi0tICh2
b2lkKV9zZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZDooQk9PTClkcmF3c1RyYW5zcGFyZW50
QmFja2dyb3VuZAorLSAodm9pZClfc2V0SW5zcGVjdG9yQXR0YWNobWVudFZpZXc6KE5TVmlldyAq
KW5ld1ZpZXcKIHsKLSAgICBfcGFnZS0+c2V0RHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQoZHJh
d3NUcmFuc3BhcmVudEJhY2tncm91bmQpOworICAgIF9pbXBsLT5zZXRJbnNwZWN0b3JBdHRhY2ht
ZW50VmlldyhuZXdWaWV3KTsKIH0KKyNlbmRpZgogCi0tICh2b2lkKV9zZXRPdmVycmlkZURldmlj
ZVNjYWxlRmFjdG9yOihDR0Zsb2F0KWRldmljZVNjYWxlRmFjdG9yCistIChCT09MKV93aW5kb3dP
Y2NsdXNpb25EZXRlY3Rpb25FbmFibGVkCiB7Ci0gICAgW193a1ZpZXcgX3NldE92ZXJyaWRlRGV2
aWNlU2NhbGVGYWN0b3I6ZGV2aWNlU2NhbGVGYWN0b3JdOworICAgIHJldHVybiBfaW1wbC0+d2lu
ZG93T2NjbHVzaW9uRGV0ZWN0aW9uRW5hYmxlZCgpOwogfQogCi0tIChDR0Zsb2F0KV9vdmVycmlk
ZURldmljZVNjYWxlRmFjdG9yCistICh2b2lkKV9zZXRXaW5kb3dPY2NsdXNpb25EZXRlY3Rpb25F
bmFibGVkOihCT09MKWVuYWJsZWQKIHsKLSAgICByZXR1cm4gW193a1ZpZXcgX292ZXJyaWRlRGV2
aWNlU2NhbGVGYWN0b3JdOworICAgIF9pbXBsLT5zZXRXaW5kb3dPY2NsdXNpb25EZXRlY3Rpb25F
bmFibGVkKGVuYWJsZWQpOwogfQogCi0tIChpZClfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29u
dHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6KF9XS0hpdFRlc3RSZXN1bHQgKiloaXRUZXN0UmVzdWx0
IHdpdGhUeXBlOihfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKXR5cGUgdXNlckRhdGE6KGlkPE5TU2Vj
dXJlQ29kaW5nPil1c2VyRGF0YQorLSAodm9pZClfc2V0T3ZlcnJpZGVEZXZpY2VTY2FsZUZhY3Rv
cjooQ0dGbG9hdClkZXZpY2VTY2FsZUZhY3RvcgogewotICAgIHJldHVybiBuaWw7CisgICAgX2lt
cGwtPnNldE92ZXJyaWRlRGV2aWNlU2NhbGVGYWN0b3IoZGV2aWNlU2NhbGVGYWN0b3IpOworfQor
CistIChDR0Zsb2F0KV9vdmVycmlkZURldmljZVNjYWxlRmFjdG9yCit7CisgICAgcmV0dXJuIF9p
bXBsLT5vdmVycmlkZURldmljZVNjYWxlRmFjdG9yKCk7CiB9CiAKIC0gKHZvaWQpX3NldFRvcENv
bnRlbnRJbnNldDooQ0dGbG9hdCljb250ZW50SW5zZXQKIHsKLSAgICBbX3drVmlldyBfc2V0VG9w
Q29udGVudEluc2V0OmNvbnRlbnRJbnNldF07CisgICAgcmV0dXJuIF9pbXBsLT5zZXRUb3BDb250
ZW50SW5zZXQoY29udGVudEluc2V0KTsKIH0KIAogLSAoQ0dGbG9hdClfdG9wQ29udGVudEluc2V0
CiB7Ci0gICAgcmV0dXJuIFtfd2tWaWV3IF90b3BDb250ZW50SW5zZXRdOworICAgIHJldHVybiBf
aW1wbC0+dG9wQ29udGVudEluc2V0KCk7CiB9CiAKLS0gKEJPT0wpX3dpbmRvd09jY2x1c2lvbkRl
dGVjdGlvbkVuYWJsZWQKKy0gKE5TQ29sb3IgKilfcGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9y
CiB7Ci0gICAgcmV0dXJuIFtfd2tWaWV3IHdpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWRd
OworICAgIHJldHVybiBfaW1wbC0+cGFnZUV4dGVuZGVkQmFja2dyb3VuZENvbG9yKCk7CiB9CiAK
LS0gKHZvaWQpX3NldFdpbmRvd09jY2x1c2lvbkRldGVjdGlvbkVuYWJsZWQ6KEJPT0wpZmxhZwor
LSAoaWQpX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0
OihfV0tIaXRUZXN0UmVzdWx0ICopaGl0VGVzdFJlc3VsdCB3aXRoVHlwZTooX1dLSW1tZWRpYXRl
QWN0aW9uVHlwZSl0eXBlIHVzZXJEYXRhOihpZDxOU1NlY3VyZUNvZGluZz4pdXNlckRhdGEKIHsK
LSAgICBbX3drVmlldyBzZXRXaW5kb3dPY2NsdXNpb25EZXRlY3Rpb25FbmFibGVkOmZsYWddOwor
ICAgIHJldHVybiBuaWw7CiB9CiAKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVE
ID49IDEwMTAwMAotCiAtICh2b2lkKV9zZXRBdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNl
dHM6KEJPT0wpYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzCiB7Ci0gICAgW193a1Zp
ZXcgX3NldEF1dG9tYXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0czphdXRvbWF0aWNhbGx5QWRq
dXN0c0NvbnRlbnRJbnNldHNdOworICAgIF9pbXBsLT5zZXRBdXRvbWF0aWNhbGx5QWRqdXN0c0Nv
bnRlbnRJbnNldHMoYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzKTsKIH0KIAogLSAo
Qk9PTClfYXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzCiB7Ci0gICAgcmV0dXJuIFtf
d2tWaWV3IF9hdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHNdOworICAgIHJldHVybiBf
aW1wbC0+YXV0b21hdGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzKCk7CiB9Ci0KLSNlbmRpZiAv
LyBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAorI2VuZGlmCiAKIC0g
KENHRmxvYXQpX21pbmltdW1MYXlvdXRXaWR0aAogewpAQCAtMzIyMiw3ICszOTk2LDcgQEAgc3Rh
dGljIGlubGluZSBXZWJLaXQ6OkZpbmRPcHRpb25zIHRvRmluZE9wdGlvbnMoX1dLRmluZE9wdGlv
bnMgd2tGaW5kT3B0aW9ucykKICAgICBfcGFnZS0+c2V0TWluaW11bUxheW91dFNpemUoV2ViQ29y
ZTo6SW50U2l6ZSh3aWR0aCwgMCkpOwogICAgIF9wYWdlLT5zZXRNYWluRnJhbWVJc1Njcm9sbGFi
bGUoIWV4cGFuZHNUb0ZpdCk7CiAKLSAgICBbX3drVmlldyBzZXRTaG91bGRDbGlwVG9WaXNpYmxl
UmVjdDpleHBhbmRzVG9GaXRdOworICAgIF9pbXBsLT5zZXRDbGlwc1RvVmlzaWJsZVJlY3QoZXhw
YW5kc1RvRml0KTsKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0ludGVybmFsLmgKaW5kZXggNDdiOWRlMy4uY2IyNTkx
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZp
ZXdJbnRlcm5hbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3SW50ZXJuYWwuaApAQCAtMTExLDkgKzExMSw2IEBAIHN0cnVjdCBQcmludEluZm87CiAK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfYWxsb3dzRG91YmxlVGFwR2Vz
dHVyZXM7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIFVJRWRnZUluc2V0cyBfY29t
cHV0ZWRDb250ZW50SW5zZXQ7Ci0jZWxzZQotQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0SWdub3Jlc05vbldoZWVsRXZlbnRzOikgQk9PTCBfaWdub3Jlc05vbldoZWVsRXZlbnRzOwot
LSAodm9pZClfc2V0SW50cmluc2ljQ29udGVudFNpemU6KENHU2l6ZSlpbnRyaW5zaWNDb250ZW50
U2l6ZTsKICNlbmRpZgogCiAtIChXS1BhZ2VSZWYpX3BhZ2VGb3JUZXN0aW5nOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDU1YTM1YjQuLmQzOTMxYWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KQEAgLTY2NCw2
NCArNjY0LDYgQEAgU29tZSBvdGhlciBlZGl0aW5nLXJlbGF0ZWQgbWV0aG9kcyBzdGlsbCB1bmlt
cGxlbWVudGVkOgogCiAjZW5kaWYgLy8gVVNFKEFTWU5DX05TVEVYVElOUFVUQ0xJRU5UKQogCi0t
IChOU1RleHRJbnB1dENvbnRleHQgKilfc3VwZXJJbnB1dENvbnRleHQKLXsKLSAgICByZXR1cm4g
W3N1cGVyIGlucHV0Q29udGV4dF07Ci19Ci0KLS0gKHZvaWQpX3N1cGVyUXVpY2tMb29rV2l0aEV2
ZW50OihOU0V2ZW50ICopZXZlbnQKLXsKLSAgICBbc3VwZXIgcXVpY2tMb29rV2l0aEV2ZW50OmV2
ZW50XTsKLX0KLQotLSAodm9pZClfc3VwZXJTd2lwZVdpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50
Ci17Ci0gICAgW3N1cGVyIHN3aXBlV2l0aEV2ZW50OmV2ZW50XTsKLX0KLQotLSAodm9pZClfc3Vw
ZXJNYWduaWZ5V2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKLXsKLSAgICBbc3VwZXIgbWFnbmlm
eVdpdGhFdmVudDpldmVudF07Ci19Ci0KLS0gKHZvaWQpX3N1cGVyU21hcnRNYWduaWZ5V2l0aEV2
ZW50OihOU0V2ZW50ICopZXZlbnQKLXsKLSAgICBbc3VwZXIgc21hcnRNYWduaWZ5V2l0aEV2ZW50
OmV2ZW50XTsKLX0KLQotLSAodm9pZClfc3VwZXJSZW1vdmVUcmFja2luZ1JlY3Q6KE5TVHJhY2tp
bmdSZWN0VGFnKXRhZwotewotICAgIFtzdXBlciByZW1vdmVUcmFja2luZ1JlY3Q6dGFnXTsKLX0K
LQotLSAoaWQpX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOihOU1N0cmluZyAqKWF0
dHJpYnV0ZQotewotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKLSNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBpZ25vcmVkICItV2RlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgIHJldHVy
biBbc3VwZXIgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOmF0dHJpYnV0ZV07Ci0jcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCi19Ci0KLS0gKHZvaWQpX3N1cGVyRG9Db21tYW5kQnlTZWxl
Y3RvcjooU0VMKXNlbGVjdG9yCi17Ci0gICAgW3N1cGVyIGRvQ29tbWFuZEJ5U2VsZWN0b3I6c2Vs
ZWN0b3JdOwotfQotCi0tIChCT09MKV9zdXBlclBlcmZvcm1LZXlFcXVpdmFsZW50OihOU0V2ZW50
ICopZXZlbnQKLXsKLSAgICByZXR1cm4gW3N1cGVyIHBlcmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50
XTsKLX0KLQotLSAodm9pZClfc3VwZXJLZXlEb3duOihOU0V2ZW50ICopZXZlbnQKLXsKLSAgICBb
c3VwZXIga2V5RG93bjpldmVudF07Ci19Ci0KLS0gKE5TVmlldyAqKV9zdXBlckhpdFRlc3Q6KE5T
UG9pbnQpcG9pbnQKLXsKLSAgICByZXR1cm4gW3N1cGVyIGhpdFRlc3Q6cG9pbnRdOwotfQotCiAt
IChOU0FycmF5ICopdmFsaWRBdHRyaWJ1dGVzRm9yTWFya2VkVGV4dAogewogICAgIHJldHVybiBf
ZGF0YS0+X2ltcGwtPnZhbGlkQXR0cmlidXRlc0Zvck1hcmtlZFRleHQoKTsKQEAgLTc2OSwxMSAr
NzExLDYgQEAgU29tZSBvdGhlciBlZGl0aW5nLXJlbGF0ZWQgbWV0aG9kcyBzdGlsbCB1bmltcGxl
bWVudGVkOgogICAgIHJldHVybiBfZGF0YS0+X2ltcGwtPndpbmRvd1Jlc2l6ZU1vdXNlTG9jYXRp
b25Jc0luVmlzaWJsZVNjcm9sbGVyVGh1bWIoTlNQb2ludFRvQ0dQb2ludChwb2ludCkpOwogfQog
Ci0tICh2b2lkKV9hZGRGb250UGFuZWxPYnNlcnZlcgotewotICAgIF9kYXRhLT5faW1wbC0+c3Rh
cnRPYnNlcnZpbmdGb250UGFuZWwoKTsKLX0KLQogLSAodm9pZCl2aWV3V2lsbE1vdmVUb1dpbmRv
dzooTlNXaW5kb3cgKil3aW5kb3cKIHsKICAgICBfZGF0YS0+X2ltcGwtPnZpZXdXaWxsTW92ZVRv
V2luZG93KHdpbmRvdyk7CkBAIC05MzcsNiArODc0LDEwNCBAQCBTb21lIG90aGVyIGVkaXRpbmct
cmVsYXRlZCBtZXRob2RzIHN0aWxsIHVuaW1wbGVtZW50ZWQ6CiB9CiAjZW5kaWYgLy8gV0tfQVBJ
X0VOQUJMRUQKIAorLSAoTlNUZXh0SW5wdXRDb250ZXh0ICopX3dlYl9zdXBlcklucHV0Q29udGV4
dAoreworICAgIHJldHVybiBbc3VwZXIgaW5wdXRDb250ZXh0XTsKK30KKworLSAodm9pZClfd2Vi
X3N1cGVyUXVpY2tMb29rV2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICBbc3VwZXIg
cXVpY2tMb29rV2l0aEV2ZW50OmV2ZW50XTsKK30KKworLSAodm9pZClfd2ViX3N1cGVyU3dpcGVX
aXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudAoreworICAgIFtzdXBlciBzd2lwZVdpdGhFdmVudDpl
dmVudF07Cit9CisKKy0gKHZvaWQpX3dlYl9zdXBlck1hZ25pZnlXaXRoRXZlbnQ6KE5TRXZlbnQg
KilldmVudAoreworICAgIFtzdXBlciBtYWduaWZ5V2l0aEV2ZW50OmV2ZW50XTsKK30KKworLSAo
dm9pZClfd2ViX3N1cGVyU21hcnRNYWduaWZ5V2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQKK3sK
KyAgICBbc3VwZXIgc21hcnRNYWduaWZ5V2l0aEV2ZW50OmV2ZW50XTsKK30KKworLSAodm9pZClf
d2ViX3N1cGVyUmVtb3ZlVHJhY2tpbmdSZWN0OihOU1RyYWNraW5nUmVjdFRhZyl0YWcKK3sKKyAg
ICBbc3VwZXIgcmVtb3ZlVHJhY2tpbmdSZWN0OnRhZ107Cit9CisKKy0gKGlkKV93ZWJfc3VwZXJB
Y2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6KE5TU3RyaW5nICopYXR0cmlidXRlCit7CisjcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCisgICAgcmV0dXJuIFtzdXBlciBhY2Nlc3Np
YmlsaXR5QXR0cmlidXRlVmFsdWU6YXR0cmlidXRlXTsKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3Rp
YyBwb3AKK30KKworLSAodm9pZClfd2ViX3N1cGVyRG9Db21tYW5kQnlTZWxlY3RvcjooU0VMKXNl
bGVjdG9yCit7CisgICAgW3N1cGVyIGRvQ29tbWFuZEJ5U2VsZWN0b3I6c2VsZWN0b3JdOworfQor
CistIChCT09MKV93ZWJfc3VwZXJQZXJmb3JtS2V5RXF1aXZhbGVudDooTlNFdmVudCAqKWV2ZW50
Cit7CisgICAgcmV0dXJuIFtzdXBlciBwZXJmb3JtS2V5RXF1aXZhbGVudDpldmVudF07Cit9CisK
Ky0gKHZvaWQpX3dlYl9zdXBlcktleURvd246KE5TRXZlbnQgKilldmVudAoreworICAgIFtzdXBl
ciBrZXlEb3duOmV2ZW50XTsKK30KKworLSAoTlNWaWV3ICopX3dlYl9zdXBlckhpdFRlc3Q6KE5T
UG9pbnQpcG9pbnQKK3sKKyAgICByZXR1cm4gW3N1cGVyIGhpdFRlc3Q6cG9pbnRdOworfQorCist
IChpZClfd2ViX2ltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVz
dWx0SW50ZXJuYWw6KEFQSTo6SGl0VGVzdFJlc3VsdCopaGl0VGVzdFJlc3VsdCB3aXRoVHlwZToo
dWludDMyX3QpdHlwZSB1c2VyRGF0YTooQVBJOjpPYmplY3QqKXVzZXJEYXRhCit7CisgICAgcmV0
dXJuIFtzZWxmIF9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJl
c3VsdDp0b0FQSShoaXRUZXN0UmVzdWx0KSB3aXRoVHlwZTp0eXBlIHVzZXJEYXRhOnRvQVBJKHVz
ZXJEYXRhKV07Cit9CisKKy0gKHZvaWQpX3dlYl9wcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5p
bWF0aW9uCit7CisgICAgW3NlbGYgX3ByZXBhcmVGb3JJbW1lZGlhdGVBY3Rpb25BbmltYXRpb25d
OworfQorCistICh2b2lkKV93ZWJfY2FuY2VsSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uCit7Cisg
ICAgW3NlbGYgX2NhbmNlbEltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl07Cit9CisKKy0gKHZvaWQp
X3dlYl9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbgoreworICAgIFtzZWxmIF9jb21w
bGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl07Cit9CisKKy0gKHZvaWQpX3dlYl9kaWRDaGFu
Z2VDb250ZW50U2l6ZTooTlNTaXplKW5ld1NpemUKK3sKKyAgICBbc2VsZiBfZGlkQ2hhbmdlQ29u
dGVudFNpemU6bmV3U2l6ZV07Cit9CisKKy0gKHZvaWQpX3dlYl9kaXNtaXNzQ29udGVudFJlbGF0
aXZlQ2hpbGRXaW5kb3dzCit7CisgICAgW3NlbGYgX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGls
ZFdpbmRvd3NdOworfQorCistICh2b2lkKV93ZWJfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxk
V2luZG93c1dpdGhBbmltYXRpb246KEJPT0wpd2l0aEFuaW1hdGlvbgoreworICAgIFtzZWxmIF9k
aXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1hdGlvbjp3aXRoQW5pbWF0
aW9uXTsKK30KKworLSAodm9pZClfd2ViX2dlc3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNv
cmU6KE5TRXZlbnQgKilldmVudAoreworICAgIFtzZWxmIF9nZXN0dXJlRXZlbnRXYXNOb3RIYW5k
bGVkQnlXZWJDb3JlOmV2ZW50XTsKK30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV0tWaWV3
IChQcml2YXRlKQpAQCAtMTM1OSwxMSArMTM5NCw2IEBAIHN0YXRpYyBfV0tPdmVybGF5U2Nyb2xs
YmFyU3R5bGUgdG9BUElTY3JvbGxiYXJTdHlsZShXVEY6Ok9wdGlvbmFsPFdlYkNvcmU6OlNjcm9s
CiAgICAgX2RhdGEtPl9pbXBsLT5zZXREaWRNb3ZlU3dpcGVTbmFwc2hvdENhbGxiYWNrKGNhbGxi
YWNrKTsKIH0KIAotLSAoaWQpX3dlYl9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVy
Rm9ySGl0VGVzdFJlc3VsdEludGVybmFsOihBUEk6OkhpdFRlc3RSZXN1bHQqKWhpdFRlc3RSZXN1
bHQgd2l0aFR5cGU6KHVpbnQzMl90KXR5cGUgdXNlckRhdGE6KEFQSTo6T2JqZWN0Kil1c2VyRGF0
YQotewotICAgIHJldHVybiBbc2VsZiBfaW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uQ29udHJvbGxl
ckZvckhpdFRlc3RSZXN1bHQ6dG9BUEkoaGl0VGVzdFJlc3VsdCkgd2l0aFR5cGU6dHlwZSB1c2Vy
RGF0YTp0b0FQSSh1c2VyRGF0YSldOwotfQotCiAtIChpZClfaW1tZWRpYXRlQWN0aW9uQW5pbWF0
aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQ6KFdLSGl0VGVzdFJlc3VsdFJlZiloaXRUZXN0
UmVzdWx0IHdpdGhUeXBlOih1aW50MzJfdCl0eXBlIHVzZXJEYXRhOihXS1R5cGVSZWYpdXNlckRh
dGEKIHsKICAgICByZXR1cm4gbmlsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvbWFjL1dLVmlld0ludGVybmFsLmgKaW5kZXggZDRhMTVkYS4uNzZjNmMwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3SW50ZXJuYWwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXdJbnRlcm5hbC5oCkBAIC01
MCw4ICs1MCw2IEBAIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0VGh1bWJuYWlsVmlldzopIF9XS1RodW1ibmFpbFZpZXcgKl90aHVtYm5haWxW
aWV3OwogI2VuZGlmCiAKLS0gKHZvaWQpX2FkZEZvbnRQYW5lbE9ic2VydmVyOwotCiBAZW5kCiAK
ICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZp
ZXdJbXBsLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwuaApp
bmRleCBjODc0YzBhLi5kYjJlODk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwuaApAQCAtNTIsMzEgKzUyLDI5IEBAIE9CSkNfQ0xBU1MgX1dLVGh1bWJu
YWlsVmlldzsKIAogQHByb3RvY29sIFdlYlZpZXdJbXBsRGVsZWdhdGUKIAotLSAoTlNUZXh0SW5w
dXRDb250ZXh0ICopX3N1cGVySW5wdXRDb250ZXh0OwotLSAodm9pZClfc3VwZXJRdWlja0xvb2tX
aXRoRXZlbnQ6KE5TRXZlbnQgKilldmVudDsKLS0gKHZvaWQpX3N1cGVyUmVtb3ZlVHJhY2tpbmdS
ZWN0OihOU1RyYWNraW5nUmVjdFRhZyl0YWc7Ci0tICh2b2lkKV9zdXBlclN3aXBlV2l0aEV2ZW50
OihOU0V2ZW50ICopZXZlbnQ7Ci0tICh2b2lkKV9zdXBlck1hZ25pZnlXaXRoRXZlbnQ6KE5TRXZl
bnQgKilldmVudDsKLS0gKHZvaWQpX3N1cGVyU21hcnRNYWduaWZ5V2l0aEV2ZW50OihOU0V2ZW50
ICopZXZlbnQ7Ci0tIChpZClfc3VwZXJBY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6KE5TU3Ry
aW5nICopYXR0cmlidXRlOwotLSAodm9pZClfc3VwZXJEb0NvbW1hbmRCeVNlbGVjdG9yOihTRUwp
c2VsZWN0b3I7Ci0tIChCT09MKV9zdXBlclBlcmZvcm1LZXlFcXVpdmFsZW50OihOU0V2ZW50ICop
ZXZlbnQ7Ci0tICh2b2lkKV9zdXBlcktleURvd246KE5TRXZlbnQgKilldmVudDsKLS0gKE5TVmll
dyAqKV9zdXBlckhpdFRlc3Q6KE5TUG9pbnQpcG9pbnQ7Ci0KLS8vIFRoaXMgaXMgYSBoYWNrOyB0
aGVzZSB0aGluZ3MgbGl2ZSBjYW4gbGl2ZSBvbiBhIGNhdGVnb3J5IChlLmcuIFdLVmlldyAoUHJp
dmF0ZSkpIGJ1dCBXS1ZpZXcgaXRzZWxmIGNvbmZvcm1zIHRvIHRoaXMgcHJvdG9jb2wuCi0vLyBU
aGV5J3JlIG5vdCBhY3R1YWxseSBvcHRpb25hbC4KLUBvcHRpb25hbAorLSAoTlNUZXh0SW5wdXRD
b250ZXh0ICopX3dlYl9zdXBlcklucHV0Q29udGV4dDsKKy0gKHZvaWQpX3dlYl9zdXBlclF1aWNr
TG9va1dpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50OworLSAodm9pZClfd2ViX3N1cGVyUmVtb3Zl
VHJhY2tpbmdSZWN0OihOU1RyYWNraW5nUmVjdFRhZyl0YWc7CistICh2b2lkKV93ZWJfc3VwZXJT
d2lwZVdpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50OworLSAodm9pZClfd2ViX3N1cGVyTWFnbmlm
eVdpdGhFdmVudDooTlNFdmVudCAqKWV2ZW50OworLSAodm9pZClfd2ViX3N1cGVyU21hcnRNYWdu
aWZ5V2l0aEV2ZW50OihOU0V2ZW50ICopZXZlbnQ7CistIChpZClfd2ViX3N1cGVyQWNjZXNzaWJp
bGl0eUF0dHJpYnV0ZVZhbHVlOihOU1N0cmluZyAqKWF0dHJpYnV0ZTsKKy0gKHZvaWQpX3dlYl9z
dXBlckRvQ29tbWFuZEJ5U2VsZWN0b3I6KFNFTClzZWxlY3RvcjsKKy0gKEJPT0wpX3dlYl9zdXBl
clBlcmZvcm1LZXlFcXVpdmFsZW50OihOU0V2ZW50ICopZXZlbnQ7CistICh2b2lkKV93ZWJfc3Vw
ZXJLZXlEb3duOihOU0V2ZW50ICopZXZlbnQ7CistIChOU1ZpZXcgKilfd2ViX3N1cGVySGl0VGVz
dDooTlNQb2ludClwb2ludDsKIAogLSAoaWQpX3dlYl9pbW1lZGlhdGVBY3Rpb25BbmltYXRpb25D
b250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdEludGVybmFsOihBUEk6OkhpdFRlc3RSZXN1bHQqKWhp
dFRlc3RSZXN1bHQgd2l0aFR5cGU6KHVpbnQzMl90KXR5cGUgdXNlckRhdGE6KEFQSTo6T2JqZWN0
Kil1c2VyRGF0YTsKKy0gKHZvaWQpX3dlYl9wcmVwYXJlRm9ySW1tZWRpYXRlQWN0aW9uQW5pbWF0
aW9uOworLSAodm9pZClfd2ViX2NhbmNlbEltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbjsKKy0gKHZv
aWQpX3dlYl9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbjsKIAotLSAodm9pZClfcHJl
cGFyZUZvckltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbjsKLS0gKHZvaWQpX2NhbmNlbEltbWVkaWF0
ZUFjdGlvbkFuaW1hdGlvbjsKLS0gKHZvaWQpX2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0
aW9uOwotLSAodm9pZClfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93czsKLS0gKHZv
aWQpX2Rpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uOihCT09M
KWFuaW1hdGU7Ci0tICh2b2lkKV9nZXN0dXJlRXZlbnRXYXNOb3RIYW5kbGVkQnlXZWJDb3JlOihO
U0V2ZW50ICopZXZlbnQ7Ci0tICh2b2lkKV9kaWRDaGFuZ2VDb250ZW50U2l6ZTooTlNTaXplKW5l
d1NpemU7CistICh2b2lkKV93ZWJfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93czsK
Ky0gKHZvaWQpX3dlYl9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0aEFuaW1h
dGlvbjooQk9PTClhbmltYXRlOworCistICh2b2lkKV93ZWJfZ2VzdHVyZUV2ZW50V2FzTm90SGFu
ZGxlZEJ5V2ViQ29yZTooTlNFdmVudCAqKWV2ZW50OworCistICh2b2lkKV93ZWJfZGlkQ2hhbmdl
Q29udGVudFNpemU6KE5TU2l6ZSluZXdTaXplOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA1YzVkMzhiLi44ZTEwZjNjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0x
Mjc0LDcgKzEyNzQsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjphY3RpdmVTcGFjZURpZENoYW5nZSgp
CiAKIE5TVmlldyAqV2ViVmlld0ltcGw6OmhpdFRlc3QoQ0dQb2ludCBwb2ludCkKIHsKLSAgICBO
U1ZpZXcgKmhpdFZpZXcgPSBbbV92aWV3IF9zdXBlckhpdFRlc3Q6TlNQb2ludEZyb21DR1BvaW50
KHBvaW50KV07CisgICAgTlNWaWV3ICpoaXRWaWV3ID0gW21fdmlldyBfd2ViX3N1cGVySGl0VGVz
dDpOU1BvaW50RnJvbUNHUG9pbnQocG9pbnQpXTsKICAgICBpZiAoaGl0VmlldyAmJiBoaXRWaWV3
ID09IG1fbGF5ZXJIb3N0aW5nVmlldykKICAgICAgICAgaGl0VmlldyA9IG1fdmlldzsKIApAQCAt
MTQxNyw3ICsxNDE3LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dXBkYXRlU2VjdXJlSW5wdXRTdGF0
ZSgpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gV0tWaWV3IGhhcyBhIHNpbmdsZSBp
bnB1dCBjb250ZXh0IGZvciBhbGwgZWRpdGFibGUgYXJlYXMgKGV4Y2VwdCBmb3IgcGx1Zy1pbnMp
LgotICAgIE5TVGV4dElucHV0Q29udGV4dCAqY29udGV4dCA9IFttX3ZpZXcgX3N1cGVySW5wdXRD
b250ZXh0XTsKKyAgICBOU1RleHRJbnB1dENvbnRleHQgKmNvbnRleHQgPSBbbV92aWV3IF93ZWJf
c3VwZXJJbnB1dENvbnRleHRdOwogICAgIGJvb2wgaXNJblBhc3N3b3JkRmllbGQgPSBtX3BhZ2Ut
PmVkaXRvclN0YXRlKCkuaXNJblBhc3N3b3JkRmllbGQ7CiAKICAgICBpZiAoaXNJblBhc3N3b3Jk
RmllbGQpIHsKQEAgLTE0NTMsNyArMTQ1Myw3IEBAIHZvaWQgV2ViVmlld0ltcGw6Om5vdGlmeUlu
cHV0Q29udGV4dEFib3V0RGlzY2FyZGVkQ29tcG9zaXRpb24oKQogCiAgICAgTE9HKFRleHRJbnB1
dCwgIi0+IGRpc2NhcmRNYXJrZWRUZXh0Iik7CiAKLSAgICBbW21fdmlldyBfc3VwZXJJbnB1dENv
bnRleHRdIGRpc2NhcmRNYXJrZWRUZXh0XTsgLy8gSW5mb3JtIHRoZSBpbnB1dCBtZXRob2QgdGhh
dCB3ZSB3b24ndCBoYXZlIGFuIGlubGluZSBpbnB1dCBhcmVhIGRlc3BpdGUgaGF2aW5nIGJlZW4g
YXNrZWQgdG8uCisgICAgW1ttX3ZpZXcgX3dlYl9zdXBlcklucHV0Q29udGV4dF0gZGlzY2FyZE1h
cmtlZFRleHRdOyAvLyBJbmZvcm0gdGhlIGlucHV0IG1ldGhvZCB0aGF0IHdlIHdvbid0IGhhdmUg
YW4gaW5saW5lIGlucHV0IGFyZWEgZGVzcGl0ZSBoYXZpbmcgYmVlbiBhc2tlZCB0by4KIH0KIAog
dm9pZCBXZWJWaWV3SW1wbDo6c2V0UGx1Z2luQ29tcGxleFRleHRJbnB1dFN0YXRlKFBsdWdpbkNv
bXBsZXhUZXh0SW5wdXRTdGF0ZSBwbHVnaW5Db21wbGV4VGV4dElucHV0U3RhdGUpCkBAIC0xNzAw
LDcgKzE3MDAsNyBAQCBib29sIFdlYlZpZXdJbXBsOjpleGVjdXRlU2F2ZWRDb21tYW5kQnlTZWxl
Y3RvcihTRUwgc2VsZWN0b3IpCiAgICAgLy8gVGhlIHNpbmsgZG9lcyB0d28gdGhpbmdzOiAxKSBU
ZWxscyB1cyBpZiB0aGUgcmVzcG9uZGVyIHdlbnQgdW5oYW5kbGVkLCBhbmQKICAgICAvLyAyKSBw
cmV2ZW50cyBhbnkgTlNCZWVwOyB3ZSBkb24ndCBldmVyIHdhbnQgdG8gYmVlcCBoZXJlLgogICAg
IFJldGFpblB0cjxXS1Jlc3BvbmRlckNoYWluU2luaz4gc2luayA9IGFkb3B0TlMoW1tXS1Jlc3Bv
bmRlckNoYWluU2luayBhbGxvY10gaW5pdFdpdGhSZXNwb25kZXJDaGFpbjptX3ZpZXddKTsKLSAg
ICBbbV92aWV3IF9zdXBlckRvQ29tbWFuZEJ5U2VsZWN0b3I6c2VsZWN0b3JdOworICAgIFttX3Zp
ZXcgX3dlYl9zdXBlckRvQ29tbWFuZEJ5U2VsZWN0b3I6c2VsZWN0b3JdOwogICAgIFtzaW5rIGRl
dGFjaF07CiAgICAgcmV0dXJuICFbc2luayBkaWRSZWNlaXZlVW5oYW5kbGVkQ29tbWFuZF07CiB9
CkBAIC0yMTgxLDcgKzIxODEsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRUZXh0SW5kaWNhdG9y
QW5pbWF0aW9uUHJvZ3Jlc3MoZmxvYXQgcHJvZ3Jlc3MpCiAKIHZvaWQgV2ViVmlld0ltcGw6OmRp
c21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uKGJvb2wgYW5pbWF0
ZSkKIHsKLSAgICBbbV92aWV3IF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzV2l0
aEFuaW1hdGlvbjphbmltYXRlXTsKKyAgICBbbV92aWV3IF93ZWJfZGlzbWlzc0NvbnRlbnRSZWxh
dGl2ZUNoaWxkV2luZG93c1dpdGhBbmltYXRpb246YW5pbWF0ZV07CiB9CiAKIHZvaWQgV2ViVmll
d0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uRnJv
bVZpZXdPbmx5KGJvb2wgYW5pbWF0ZSkKQEAgLTIxOTAsNyArMjE5MCw3IEBAIHZvaWQgV2ViVmll
d0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NXaXRoQW5pbWF0aW9uRnJv
bVZpZXdPbmx5KGJvCiAgICAgLy8gV2UgY2FuJ3QgaW52ZXJ0IHRoZXNlIGJlY2F1c2UgY2xpZW50
cyBjYW4gb3ZlcnJpZGUgKGFuZCBoYXZlIG92ZXJyaWRkZW4pIF9kaXNtaXNzQ29udGVudFJlbGF0
aXZlQ2hpbGRXaW5kb3dzLCBzbyBpdCBuZWVkcyB0byBiZSBjYWxsZWQuCiAgICAgLy8gRm9yIHRo
aXMgc2FtZSByZWFzb24sIHRoaXMgY2FuJ3QgYmUgbW92ZWQgdG8gV2ViVmlld0ltcGwgd2l0aG91
dCBjYXJlLgogICAgIGNsZWFyVGV4dEluZGljYXRvcldpdGhBbmltYXRpb24oYW5pbWF0ZSA/IFdl
YkNvcmU6OlRleHRJbmRpY2F0b3JXaW5kb3dEaXNtaXNzYWxBbmltYXRpb246OkZhZGVPdXQgOiBX
ZWJDb3JlOjpUZXh0SW5kaWNhdG9yV2luZG93RGlzbWlzc2FsQW5pbWF0aW9uOjpOb25lKTsKLSAg
ICBbbV92aWV3IF9kaXNtaXNzQ29udGVudFJlbGF0aXZlQ2hpbGRXaW5kb3dzXTsKKyAgICBbbV92
aWV3IF93ZWJfZGlzbWlzc0NvbnRlbnRSZWxhdGl2ZUNoaWxkV2luZG93c107CiB9CiAKIHZvaWQg
V2ViVmlld0ltcGw6OmRpc21pc3NDb250ZW50UmVsYXRpdmVDaGlsZFdpbmRvd3NGcm9tVmlld09u
bHkoKQpAQCAtMjIzMiw3ICsyMjMyLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6cXVpY2tMb29rV2l0
aEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogCiAjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFV
SVJFRCA+PSAxMDEwMDAKICAgICBpZiAobV9pbW1lZGlhdGVBY3Rpb25HZXN0dXJlUmVjb2duaXpl
cikgewotICAgICAgICBbbV92aWV3IF9zdXBlclF1aWNrTG9va1dpdGhFdmVudDpldmVudF07Cisg
ICAgICAgIFttX3ZpZXcgX3dlYl9zdXBlclF1aWNrTG9va1dpdGhFdmVudDpldmVudF07CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAjZW5kaWYKQEAgLTIyODAsMjIgKzIyODAsMjIgQEAgdm9pZCBX
ZWJWaWV3SW1wbDo6ZGlkUGVyZm9ybUltbWVkaWF0ZUFjdGlvbkhpdFRlc3QoY29uc3QgV2ViSGl0
VGVzdFJlc3VsdERhdGEmIHIKIAogdm9pZCBXZWJWaWV3SW1wbDo6cHJlcGFyZUZvckltbWVkaWF0
ZUFjdGlvbkFuaW1hdGlvbigpCiB7Ci0gICAgW21fdmlldyBfcHJlcGFyZUZvckltbWVkaWF0ZUFj
dGlvbkFuaW1hdGlvbl07CisgICAgW21fdmlldyBfd2ViX3ByZXBhcmVGb3JJbW1lZGlhdGVBY3Rp
b25BbmltYXRpb25dOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpjYW5jZWxJbW1lZGlhdGVBY3Rp
b25BbmltYXRpb24oKQogewotICAgIFttX3ZpZXcgX2NhbmNlbEltbWVkaWF0ZUFjdGlvbkFuaW1h
dGlvbl07CisgICAgW21fdmlldyBfd2ViX2NhbmNlbEltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl07
CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OmNvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9u
KCkKIHsKLSAgICBbbV92aWV3IF9jb21wbGV0ZUltbWVkaWF0ZUFjdGlvbkFuaW1hdGlvbl07Cisg
ICAgW21fdmlldyBfd2ViX2NvbXBsZXRlSW1tZWRpYXRlQWN0aW9uQW5pbWF0aW9uXTsKIH0KIAog
dm9pZCBXZWJWaWV3SW1wbDo6ZGlkQ2hhbmdlQ29udGVudFNpemUoQ0dTaXplIG5ld1NpemUpCiB7
Ci0gICAgW21fdmlldyBfZGlkQ2hhbmdlQ29udGVudFNpemU6TlNTaXplRnJvbUNHU2l6ZShuZXdT
aXplKV07CisgICAgW21fdmlldyBfd2ViX2RpZENoYW5nZUNvbnRlbnRTaXplOk5TU2l6ZUZyb21D
R1NpemUobmV3U2l6ZSldOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRJZ25vcmVzTm9uV2hl
ZWxFdmVudHMoYm9vbCBpZ25vcmVzTm9uV2hlZWxFdmVudHMpCkBAIC0yNDA0LDcgKzI0MDQsNyBA
QCBpZCBXZWJWaWV3SW1wbDo6YWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlKE5TU3RyaW5nICph
dHRyaWJ1dGUpCiAgICAgICAgICAgICBpZiAoW2F0dHJpYnV0ZSBpc0VxdWFsVG9TdHJpbmc6TlNB
Y2Nlc3NpYmlsaXR5RW5hYmxlZEF0dHJpYnV0ZV0pCiAgICAgICAgICAgICAgICAgcmV0dXJuIEBZ
RVM7CiAgICAgCi0gICAgcmV0dXJuIFttX3ZpZXcgX3N1cGVyQWNjZXNzaWJpbGl0eUF0dHJpYnV0
ZVZhbHVlOmF0dHJpYnV0ZV07CisgICAgcmV0dXJuIFttX3ZpZXcgX3dlYl9zdXBlckFjY2Vzc2li
aWxpdHlBdHRyaWJ1dGVWYWx1ZTphdHRyaWJ1dGVdOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjpz
ZXRQcmltYXJ5VHJhY2tpbmdBcmVhKE5TVHJhY2tpbmdBcmVhICp0cmFja2luZ0FyZWEpCkBAIC0y
NDU1LDcgKzI0NTUsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpyZW1vdmVUcmFja2luZ1JlY3QoTlNU
cmFja2luZ1JlY3RUYWcgdGFnKQogICAgIH0KIAogICAgIGlmICh0YWcgPT0gbV9sYXN0VG9vbFRp
cFRhZykgewotICAgICAgICBbbV92aWV3IF9zdXBlclJlbW92ZVRyYWNraW5nUmVjdDp0YWddOwor
ICAgICAgICBbbV92aWV3IF93ZWJfc3VwZXJSZW1vdmVUcmFja2luZ1JlY3Q6dGFnXTsKICAgICAg
ICAgbV9sYXN0VG9vbFRpcFRhZyA9IDA7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zMTM5
LDcgKzMxMzksNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzd2lwZVdpdGhFdmVudChOU0V2ZW50ICpl
dmVudCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKCFtX2FsbG93c0JhY2tGb3J3YXJkTmF2
aWdhdGlvbkdlc3R1cmVzKSB7Ci0gICAgICAgIFttX3ZpZXcgX3N1cGVyU3dpcGVXaXRoRXZlbnQ6
ZXZlbnRdOworICAgICAgICBbbV92aWV3IF93ZWJfc3VwZXJTd2lwZVdpdGhFdmVudDpldmVudF07
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTMxNDgsNyArMzE0OCw3IEBAIHZvaWQgV2Vi
Vmlld0ltcGw6OnN3aXBlV2l0aEV2ZW50KE5TRXZlbnQgKmV2ZW50KQogICAgIGVsc2UgaWYgKGV2
ZW50LmRlbHRhWCA8IDAuMCkKICAgICAgICAgbV9wYWdlLT5nb0ZvcndhcmQoKTsKICAgICBlbHNl
Ci0gICAgICAgIFttX3ZpZXcgX3N1cGVyU3dpcGVXaXRoRXZlbnQ6ZXZlbnRdOworICAgICAgICBb
bV92aWV3IF93ZWJfc3VwZXJTd2lwZVdpdGhFdmVudDpldmVudF07CiB9CiAKIHZvaWQgV2ViVmll
d0ltcGw6Om1hZ25pZnlXaXRoRXZlbnQoTlNFdmVudCAqZXZlbnQpCkBAIC0zMTU4LDcgKzMxNTgs
NyBAQCB2b2lkIFdlYlZpZXdJbXBsOjptYWduaWZ5V2l0aEV2ZW50KE5TRXZlbnQgKmV2ZW50KQog
ICAgICAgICBOYXRpdmVXZWJHZXN0dXJlRXZlbnQgd2ViRXZlbnQgPSBOYXRpdmVXZWJHZXN0dXJl
RXZlbnQoZXZlbnQsIG1fdmlldyk7CiAgICAgICAgIG1fcGFnZS0+aGFuZGxlR2VzdHVyZUV2ZW50
KHdlYkV2ZW50KTsKICNlbmRpZgotICAgICAgICBbbV92aWV3IF9zdXBlck1hZ25pZnlXaXRoRXZl
bnQ6ZXZlbnRdOworICAgICAgICBbbV92aWV3IF93ZWJfc3VwZXJNYWduaWZ5V2l0aEV2ZW50OmV2
ZW50XTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzE4Miw3ICszMTgyLDcgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6bWFnbmlmeVdpdGhFdmVudChOU0V2ZW50ICpldmVudCkKIHZvaWQgV2Vi
Vmlld0ltcGw6OnNtYXJ0TWFnbmlmeVdpdGhFdmVudChOU0V2ZW50ICpldmVudCkKIHsKICAgICBp
ZiAoIW1fYWxsb3dzTWFnbmlmaWNhdGlvbikgewotICAgICAgICBbbV92aWV3IF9zdXBlclNtYXJ0
TWFnbmlmeVdpdGhFdmVudDpldmVudF07CisgICAgICAgIFttX3ZpZXcgX3dlYl9zdXBlclNtYXJ0
TWFnbmlmeVdpdGhFdmVudDpldmVudF07CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTMy
MTEsNyArMzIxMSw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnJvdGF0ZVdpdGhFdmVudChOU0V2ZW50
ICpldmVudCkKIAogdm9pZCBXZWJWaWV3SW1wbDo6Z2VzdHVyZUV2ZW50V2FzTm90SGFuZGxlZEJ5
V2ViQ29yZShOU0V2ZW50ICpldmVudCkKIHsKLSAgICBbbV92aWV3IF9nZXN0dXJlRXZlbnRXYXNO
b3RIYW5kbGVkQnlXZWJDb3JlOmV2ZW50XTsKKyAgICBbbV92aWV3IF93ZWJfZ2VzdHVyZUV2ZW50
V2FzTm90SGFuZGxlZEJ5V2ViQ29yZTpldmVudF07CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6Omdl
c3R1cmVFdmVudFdhc05vdEhhbmRsZWRCeVdlYkNvcmVGcm9tVmlld09ubHkoTlNFdmVudCAqZXZl
bnQpCkBAIC0zMzYwLDcgKzMzNjAsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkb0NvbW1hbmRCeVNl
bGVjdG9yKFNFTCBzZWxlY3RvcikKICAgICB9IGVsc2UgewogICAgICAgICAvLyBGSVhNRTogU2Vu
ZCB0aGUgY29tbWFuZCB0byBFZGl0b3Igc3luY2hyb25vdXNseSBhbmQgb25seSBzZW5kIGl0IGFs
b25nIHRoZQogICAgICAgICAvLyByZXNwb25kZXIgY2hhaW4gaWYgaXQncyBhIHNlbGVjdG9yIHRo
YXQgZG9lcyBub3QgY29ycmVzcG9uZCB0byBhbiBlZGl0aW5nIGNvbW1hbmQuCi0gICAgICAgIFtt
X3ZpZXcgX3N1cGVyRG9Db21tYW5kQnlTZWxlY3RvcjpzZWxlY3Rvcl07CisgICAgICAgIFttX3Zp
ZXcgX3dlYl9zdXBlckRvQ29tbWFuZEJ5U2VsZWN0b3I6c2VsZWN0b3JdOwogICAgIH0KIH0KIApA
QCAtMzU3Niw3ICszNTc2LDcgQEAgTlNUZXh0SW5wdXRDb250ZXh0ICpXZWJWaWV3SW1wbDo6aW5w
dXRDb250ZXh0KCkKICAgICBpZiAoIW1fcGFnZS0+ZWRpdG9yU3RhdGUoKS5pc0NvbnRlbnRFZGl0
YWJsZSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIHJldHVybiBbbV92aWV3IF9zdXBlcklu
cHV0Q29udGV4dF07CisgICAgcmV0dXJuIFttX3ZpZXcgX3dlYl9zdXBlcklucHV0Q29udGV4dF07
CiB9CiAKIHZvaWQgV2ViVmlld0ltcGw6OnVubWFya1RleHQoKQpAQCAtMzY3MSwxMyArMzY3MSwx
MyBAQCBib29sIFdlYlZpZXdJbXBsOjpwZXJmb3JtS2V5RXF1aXZhbGVudChOU0V2ZW50ICpldmVu
dCkKICAgICAvLyBidXQgYm90aCBnZXQgdHJhbnNmb3JtZWQgdG8gYSBjYW5jZWxPcGVyYXRpb246
IGNvbW1hbmQsIGV4ZWN1dGluZyB3aGljaCBwYXNzZXMgYW4gRXNjIGtleSBldmVudCB0byAtcGVy
Zm9ybUtleUVxdWl2YWxlbnQ6LgogICAgIC8vIERvbid0IGludGVycHJldCB0aGlzIGV2ZW50IGFn
YWluLCBhdm9pZGluZyByZS1lbnRyYW5jeSBhbmQgaW5maW5pdGUgbG9vcHMuCiAgICAgaWYgKFtb
ZXZlbnQgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzXSBpc0VxdWFsVG9TdHJpbmc6QCJcZSJd
ICYmICEoW2V2ZW50IG1vZGlmaWVyRmxhZ3NdICYgTlNEZXZpY2VJbmRlcGVuZGVudE1vZGlmaWVy
RmxhZ3NNYXNrKSkKLSAgICAgICAgcmV0dXJuIFttX3ZpZXcgX3N1cGVyUGVyZm9ybUtleUVxdWl2
YWxlbnQ6ZXZlbnRdOworICAgICAgICByZXR1cm4gW21fdmlldyBfd2ViX3N1cGVyUGVyZm9ybUtl
eUVxdWl2YWxlbnQ6ZXZlbnRdOwogCiAgICAgaWYgKG1fa2V5RG93bkV2ZW50QmVpbmdSZXNlbnQp
IHsKICAgICAgICAgLy8gV2ViQ29yZSBoYXMgYWxyZWFkeSBzZWVuIHRoZSBldmVudCwgbm8gbmVl
ZCBmb3IgY3VzdG9tIHByb2Nlc3NpbmcuCiAgICAgICAgIC8vIE5vdGUgdGhhdCB3ZSBjYW4gZ2V0
IG11bHRpcGxlIGV2ZW50cyBmb3IgZWFjaCBldmVudCBiZWluZyByZS1zZW50LiBGb3IgZXhhbXBs
ZSwgZm9yIENtZCsnPScgQXBwS2l0CiAgICAgICAgIC8vIGZpcnN0IHBlcmZvcm1zIHRoZSBvcmln
aW5hbCBrZXkgZXF1aXZhbGVudCwgYW5kIGlmIHRoYXQgaXNuJ3QgaGFuZGxlZCwgaXQgZGlzcGF0
Y2hlcyBhIHN5bnRoZXRpYyBDbWQrJysnLgotICAgICAgICByZXR1cm4gW21fdmlldyBfc3VwZXJQ
ZXJmb3JtS2V5RXF1aXZhbGVudDpldmVudF07CisgICAgICAgIHJldHVybiBbbV92aWV3IF93ZWJf
c3VwZXJQZXJmb3JtS2V5RXF1aXZhbGVudDpldmVudF07CiAgICAgfQogCiAgICAgQVNTRVJUKGV2
ZW50ID09IFtOU0FwcCBjdXJyZW50RXZlbnRdKTsKQEAgLTM2OTQsNyArMzY5NCw3IEBAIGJvb2wg
V2ViVmlld0ltcGw6OnBlcmZvcm1LZXlFcXVpdmFsZW50KE5TRXZlbnQgKmV2ZW50KQogICAgICAg
ICByZXR1cm4gWUVTOwogICAgIH0KICAgICAKLSAgICByZXR1cm4gW21fdmlldyBfc3VwZXJQZXJm
b3JtS2V5RXF1aXZhbGVudDpldmVudF07CisgICAgcmV0dXJuIFttX3ZpZXcgX3dlYl9zdXBlclBl
cmZvcm1LZXlFcXVpdmFsZW50OmV2ZW50XTsKIH0KIAogdm9pZCBXZWJWaWV3SW1wbDo6a2V5VXAo
TlNFdmVudCAqZXZlbnQpCkBAIC0zNzI3LDcgKzM3MjcsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpr
ZXlEb3duKE5TRXZlbnQgKmV2ZW50KQogICAgIC8vIHRoZXJlIGlzIG5vIHJhbmdlIHNlbGVjdGlv
bikuCiAgICAgLy8gSWYgdGhpcyBpcyB0aGUgY2FzZSB3ZSBzaG91bGQgaWdub3JlIHRoZSBrZXkg
ZG93bi4KICAgICBpZiAobV9rZXlEb3duRXZlbnRCZWluZ1Jlc2VudCA9PSBldmVudCkgewotICAg
ICAgICBbbV92aWV3IF9zdXBlcktleURvd246ZXZlbnRdOworICAgICAgICBbbV92aWV3IF93ZWJf
c3VwZXJLZXlEb3duOmV2ZW50XTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzgzMSw3
ICszODMxLDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6ZG9Db21tYW5kQnlTZWxlY3RvcihTRUwgc2Vs
ZWN0b3IpCiAgICAgfSBlbHNlIHsKICAgICAgICAgLy8gRklYTUU6IFNlbmQgdGhlIGNvbW1hbmQg
dG8gRWRpdG9yIHN5bmNocm9ub3VzbHkgYW5kIG9ubHkgc2VuZCBpdCBhbG9uZyB0aGUKICAgICAg
ICAgLy8gcmVzcG9uZGVyIGNoYWluIGlmIGl0J3MgYSBzZWxlY3RvciB0aGF0IGRvZXMgbm90IGNv
cnJlc3BvbmQgdG8gYW4gZWRpdGluZyBjb21tYW5kLgotICAgICAgICBbbV92aWV3IF9zdXBlckRv
Q29tbWFuZEJ5U2VsZWN0b3I6c2VsZWN0b3JdOworICAgICAgICBbbV92aWV3IF93ZWJfc3VwZXJE
b0NvbW1hbmRCeVNlbGVjdG9yOnNlbGVjdG9yXTsKICAgICB9CiB9CiAKQEAgLTM5MDgsNyArMzkw
OCw3IEBAIE5TVGV4dElucHV0Q29udGV4dCAqV2ViVmlld0ltcGw6OmlucHV0Q29udGV4dCgpCiAg
ICAgaWYgKCFtX3BhZ2UtPmVkaXRvclN0YXRlKCkuaXNDb250ZW50RWRpdGFibGUpCiAgICAgICAg
IHJldHVybiBuaWw7CiAKLSAgICByZXR1cm4gW21fdmlldyBfc3VwZXJJbnB1dENvbnRleHRdOwor
ICAgIHJldHVybiBbbV92aWV3IF93ZWJfc3VwZXJJbnB1dENvbnRleHRdOwogfQogCiBOU1Jhbmdl
IFdlYlZpZXdJbXBsOjpzZWxlY3RlZFJhbmdlKCkKQEAgLTQxMTAsMTMgKzQxMTAsMTMgQEAgYm9v
bCBXZWJWaWV3SW1wbDo6cGVyZm9ybUtleUVxdWl2YWxlbnQoTlNFdmVudCAqZXZlbnQpCiAgICAg
Ly8gYnV0IGJvdGggZ2V0IHRyYW5zZm9ybWVkIHRvIGEgY2FuY2VsT3BlcmF0aW9uOiBjb21tYW5k
LCBleGVjdXRpbmcgd2hpY2ggcGFzc2VzIGFuIEVzYyBrZXkgZXZlbnQgdG8gLXBlcmZvcm1LZXlF
cXVpdmFsZW50Oi4KICAgICAvLyBEb24ndCBpbnRlcnByZXQgdGhpcyBldmVudCBhZ2FpbiwgYXZv
aWRpbmcgcmUtZW50cmFuY3kgYW5kIGluZmluaXRlIGxvb3BzLgogICAgIGlmIChbW2V2ZW50IGNo
YXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyc10gaXNFcXVhbFRvU3RyaW5nOkAiXGUiXSAmJiAhKFtl
dmVudCBtb2RpZmllckZsYWdzXSAmIE5TRGV2aWNlSW5kZXBlbmRlbnRNb2RpZmllckZsYWdzTWFz
aykpCi0gICAgICAgIHJldHVybiBbbV92aWV3IF9zdXBlclBlcmZvcm1LZXlFcXVpdmFsZW50OmV2
ZW50XTsKKyAgICAgICAgcmV0dXJuIFttX3ZpZXcgX3dlYl9zdXBlclBlcmZvcm1LZXlFcXVpdmFs
ZW50OmV2ZW50XTsKIAogICAgIGlmIChtX2tleURvd25FdmVudEJlaW5nUmVzZW50KSB7CiAgICAg
ICAgIC8vIFdlYkNvcmUgaGFzIGFscmVhZHkgc2VlbiB0aGUgZXZlbnQsIG5vIG5lZWQgZm9yIGN1
c3RvbSBwcm9jZXNzaW5nLgogICAgICAgICAvLyBOb3RlIHRoYXQgd2UgY2FuIGdldCBtdWx0aXBs
ZSBldmVudHMgZm9yIGVhY2ggZXZlbnQgYmVpbmcgcmUtc2VudC4gRm9yIGV4YW1wbGUsIGZvciBD
bWQrJz0nIEFwcEtpdAogICAgICAgICAvLyBmaXJzdCBwZXJmb3JtcyB0aGUgb3JpZ2luYWwga2V5
IGVxdWl2YWxlbnQsIGFuZCBpZiB0aGF0IGlzbid0IGhhbmRsZWQsIGl0IGRpc3BhdGNoZXMgYSBz
eW50aGV0aWMgQ21kKycrJy4KLSAgICAgICAgcmV0dXJuIFttX3ZpZXcgX3N1cGVyUGVyZm9ybUtl
eUVxdWl2YWxlbnQ6ZXZlbnRdOworICAgICAgICByZXR1cm4gW21fdmlldyBfd2ViX3N1cGVyUGVy
Zm9ybUtleUVxdWl2YWxlbnQ6ZXZlbnRdOwogICAgIH0KIAogICAgIEFTU0VSVChldmVudCA9PSBb
TlNBcHAgY3VycmVudEV2ZW50XSk7CkBAIC00MTMzLDcgKzQxMzMsNyBAQCBib29sIFdlYlZpZXdJ
bXBsOjpwZXJmb3JtS2V5RXF1aXZhbGVudChOU0V2ZW50ICpldmVudCkKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogICAgIAotICAgIHJldHVybiBbbV92aWV3IF9zdXBlclBlcmZvcm1LZXlF
cXVpdmFsZW50OmV2ZW50XTsKKyAgICByZXR1cm4gW21fdmlldyBfd2ViX3N1cGVyUGVyZm9ybUtl
eUVxdWl2YWxlbnQ6ZXZlbnRdOwogfQogCiB2b2lkIFdlYlZpZXdJbXBsOjprZXlVcChOU0V2ZW50
ICpldmVudCkKQEAgLTQxNjgsNyArNDE2OCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OmtleURvd24o
TlNFdmVudCAqZXZlbnQpCiAgICAgLy8gdGhlcmUgaXMgbm8gcmFuZ2Ugc2VsZWN0aW9uKS4KICAg
ICAvLyBJZiB0aGlzIGlzIHRoZSBjYXNlIHdlIHNob3VsZCBpZ25vcmUgdGhlIGtleSBkb3duLgog
ICAgIGlmIChtX2tleURvd25FdmVudEJlaW5nUmVzZW50ID09IGV2ZW50KSB7Ci0gICAgICAgIFtt
X3ZpZXcgX3N1cGVyS2V5RG93bjpldmVudF07CisgICAgICAgIFttX3ZpZXcgX3dlYl9zdXBlcktl
eURvd246ZXZlbnRdOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBsLm1tIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9QYWdlQ2xpZW50SW1wbC5tbQppbmRleCAwNTEzY2FkLi43NWMxY2Vh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1BhZ2VDbGllbnRJbXBs
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvUGFnZUNsaWVudEltcGwubW0K
QEAgLTM1OCwxMyArMzU4LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6c2V0RHJhZ0ltYWdlKGNv
bnN0IEludFBvaW50JiBjbGllbnRQb3NpdGlvbiwgUGFzc1JlZlB0cjxTaGEKICAgICBzaXplLnNj
YWxlKDEuMCAvIG1faW1wbC0+cGFnZSgpLmRldmljZVNjYWxlRmFjdG9yKCkpOwogICAgIFtkcmFn
TlNJbWFnZSBzZXRTaXplOnNpemVdOwogCi0jaWYgV0tfQVBJX0VOQUJMRUQKLSAgICBpZiAobV93
ZWJWaWV3KSB7Ci0gICAgICAgIE5TUG9pbnQgd2ViVmlld1Bvc2l0aW9uID0gW21fdmlldyBjb252
ZXJ0UG9pbnQ6Y2xpZW50UG9zaXRpb24gdG9WaWV3Om1fd2ViVmlld107Ci0gICAgICAgIG1faW1w
bC0+ZHJhZ0ltYWdlRm9yVmlldyhtX3dlYlZpZXcsIGRyYWdOU0ltYWdlLmdldCgpLCB3ZWJWaWV3
UG9zaXRpb24sIGlzTGlua0RyYWcpOwotICAgIH0gZWxzZQotI2VuZGlmCi0gICAgICAgIG1faW1w
bC0+ZHJhZ0ltYWdlRm9yVmlldyhtX3ZpZXcsIGRyYWdOU0ltYWdlLmdldCgpLCBjbGllbnRQb3Np
dGlvbiwgaXNMaW5rRHJhZyk7CisgICAgbV9pbXBsLT5kcmFnSW1hZ2VGb3JWaWV3KG1fdmlldywg
ZHJhZ05TSW1hZ2UuZ2V0KCksIGNsaWVudFBvc2l0aW9uLCBpc0xpbmtEcmFnKTsKIH0KIAogdm9p
ZCBQYWdlQ2xpZW50SW1wbDo6c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UoY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGltYWdlQnVmZmVyLCBjb25z
dCBTdHJpbmcmIGZpbGVuYW1lLCBjb25zdCBTdHJpbmcmIGV4dGVuc2lvbiwgY29uc3QgU3RyaW5n
JiB0aXRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgdmlzaWJsZVVSTCwgUGFz
c1JlZlB0cjxTaGFyZWRCdWZmZXI+IGFyY2hpdmVCdWZmZXIpCkBAIC02MDUsMTMgKzU5OSw2IEBA
IHZvaWQgUGFnZUNsaWVudEltcGw6OnJlY29tbWVuZGVkU2Nyb2xsYmFyU3R5bGVEaWRDaGFuZ2Uo
U2Nyb2xsYmFyU3R5bGUgbmV3U3R5bGUpCiAKIHZvaWQgUGFnZUNsaWVudEltcGw6OmludHJpbnNp
Y0NvbnRlbnRTaXplRGlkQ2hhbmdlKGNvbnN0IEludFNpemUmIGludHJpbnNpY0NvbnRlbnRTaXpl
KQogewotI2lmIFdLX0FQSV9FTkFCTEVECi0gICAgaWYgKG1fd2ViVmlldykgewotICAgICAgICBb
bV93ZWJWaWV3IF9zZXRJbnRyaW5zaWNDb250ZW50U2l6ZTppbnRyaW5zaWNDb250ZW50U2l6ZV07
Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLQogICAgIG1faW1wbC0+c2V0SW50cmlu
c2ljQ29udGVudFNpemUoaW50cmluc2ljQ29udGVudFNpemUpOwogfQogCkBAIC03OTgsMTAgKzc4
NSw2IEBAIHZvaWQgUGFnZUNsaWVudEltcGw6OmRpZFBlcmZvcm1JbW1lZGlhdGVBY3Rpb25IaXRU
ZXN0KGNvbnN0IFdlYkhpdFRlc3RSZXN1bHREYXRhCiAKIHZvaWQqIFBhZ2VDbGllbnRJbXBsOjpp
bW1lZGlhdGVBY3Rpb25BbmltYXRpb25Db250cm9sbGVyRm9ySGl0VGVzdFJlc3VsdChSZWZQdHI8
QVBJOjpIaXRUZXN0UmVzdWx0PiBoaXRUZXN0UmVzdWx0LCB1aW50NjRfdCB0eXBlLCBSZWZQdHI8
QVBJOjpPYmplY3Q+IHVzZXJEYXRhKQogewotI2lmIFdLX0FQSV9FTkFCTEVECi0gICAgaWYgKG1f
d2ViVmlldykKLSAgICAgICAgcmV0dXJuIFttX3dlYlZpZXcgX2ltbWVkaWF0ZUFjdGlvbkFuaW1h
dGlvbkNvbnRyb2xsZXJGb3JIaXRUZXN0UmVzdWx0OndyYXBwZXIoKmhpdFRlc3RSZXN1bHQpIHdp
dGhUeXBlOihfV0tJbW1lZGlhdGVBY3Rpb25UeXBlKXR5cGUgdXNlckRhdGE6KGlkKSh1c2VyRGF0
YS5nZXQoKSldOwotI2VuZGlmCiAgICAgcmV0dXJuIG1faW1wbC0+aW1tZWRpYXRlQWN0aW9uQW5p
bWF0aW9uQ29udHJvbGxlckZvckhpdFRlc3RSZXN1bHQoaGl0VGVzdFJlc3VsdC5nZXQoKSwgdHlw
ZSwgdXNlckRhdGEuZ2V0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggYjdiZDgzMi4uM2E5NjlkZiAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE1LTEx
LTAyICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIEdl
dCByaWQgb2YgV0tXZWJWaWV3J3MgaW5uZXIgV0tWaWV3IChXS1ZpZXcgYmVpbmcgaW5zaWRlIFdL
V2ViVmlldyBsZWFkcyB0byB3ZWlyZCBBUEkgaXNzdWVzKQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUwMTc0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
QW5kZXJzIENhcmxzc29uLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRT
ZW5kZXJQcm94eS5tbToKKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94eTo6bW91c2VVcCk6
CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6Om1vdXNlTW92ZVRvKToKKyAgICAgICAg
UmV2ZXJ0IHNvbWUgcGFydHMgb2YgcjE4ODgyOCB3aGljaCBubyBsb25nZXIgYXBwbHkuCisKIDIw
MTUtMTEtMDIgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBGaXggdGhlIEZUTCBKSVQgYnVpbGQgd2l0aCBzeXN0ZW0gTExWTSBvbiBMaW51eApkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRTZW5kZXJQcm94eS5tbSBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvbWFjL0V2ZW50U2VuZGVyUHJveHkubW0KaW5kZXggZGQzNDQz
ZS4uZjdjYjcyOCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9tYWMvRXZlbnRT
ZW5kZXJQcm94eS5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL21hYy9FdmVudFNlbmRl
clByb3h5Lm1tCkBAIC0zNDgsMTcgKzM0OCw5IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91
c2VVcCh1bnNpZ25lZCBidXR0b25OdW1iZXIsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzCiAg
ICAgLy8gRklYTUU6IFNpbGx5IGhhY2sgdG8gdGVhY2ggV0tUUiB0byByZXNwZWN0IGNhcHR1cmlu
ZyBtb3VzZSBldmVudHMgb3V0c2lkZSB0aGUgV0tWaWV3LgogICAgIC8vIFRoZSByaWdodCBzb2x1
dGlvbiBpcyBqdXN0IHRvIHVzZSBOU0FwcGxpY2F0aW9uJ3MgYnVpbHQtaW4gZXZlbnQgc2VuZGlu
ZyBtZXRob2RzLCAKICAgICAvLyBpbnN0ZWFkIG9mIHJvbGxpbmcgb3VyIG93biBhbGdvcml0aG0g
Zm9yIHNlbGVjdGluZyBhbiBldmVudCB0YXJnZXQuCi0gICAgLy8gRklYTUU6IFRoaXMgaXMgZXZl
biB3b3JzZSBub3csIGJlY2F1c2Ugd2UgbmVlZCB0byBoaXQgdGhlIFdLV2ViVmlldydzIGlubmVy
IFdLVmlldwotICAgIC8vIHdoZW4gdXNpbmcgdGhlIG1vZGVybiBBUEksIHNvIHRoZSBsZXZlbCBv
ZiBmYWtlcnkgYW5kIGhvcnJvciBpbmNyZWFzZXMuCi0gICAgaWYgKCF0YXJnZXRWaWV3KSB7Cisg
ICAgaWYgKCF0YXJnZXRWaWV3KQogICAgICAgICB0YXJnZXRWaWV3ID0gbV90ZXN0Q29udHJvbGxl
ci0+bWFpbldlYlZpZXcoKS0+cGxhdGZvcm1WaWV3KCk7Ci0gICAgICAgIGZvciAoTlNWaWV3ICp3
a1dlYlZpZXdDaGlsZCBpbiB0YXJnZXRWaWV3LnN1YnZpZXdzKSB7Ci0gICAgICAgICAgICBpZiAo
W3drV2ViVmlld0NoaWxkIGlzS2luZE9mQ2xhc3M6W1dLVmlldyBjbGFzc11dKSB7Ci0gICAgICAg
ICAgICAgICAgdGFyZ2V0VmlldyA9IHdrV2ViVmlld0NoaWxkOwotICAgICAgICAgICAgICAgIGJy
ZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgfQorCiAgICAgQVNTRVJUKHRhcmdl
dFZpZXcpOwogICAgIFtOU0FwcCBfc2V0Q3VycmVudEV2ZW50OmV2ZW50XTsKICAgICBbdGFyZ2V0
VmlldyBtb3VzZVVwOmV2ZW50XTsKQEAgLTYyMiw3ICs2MTQsNyBAQCB2b2lkIEV2ZW50U2VuZGVy
UHJveHk6OnN0YXJ0QW5kQ2FuY2VsTW91c2VGb3JjZUNsaWNrKCkKIHZvaWQgRXZlbnRTZW5kZXJQ
cm94eTo6bW91c2VNb3ZlVG8oZG91YmxlIHgsIGRvdWJsZSB5KQogewogICAgIE5TVmlldyAqdmll
dyA9IG1fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpOwotICAg
IE5TUG9pbnQgcG9zaXRpb24gPSBbdmlldyBjb252ZXJ0UG9pbnQ6TlNNYWtlUG9pbnQoeCwgdmll
dy5mcmFtZS5zaXplLmhlaWdodCAtIHkpIHRvVmlldzpuaWxdOworICAgIE5TUG9pbnQgcG9zaXRp
b24gPSBbdmlldyBjb252ZXJ0UG9pbnQ6TlNNYWtlUG9pbnQoeCwgeSkgdG9WaWV3Om5pbF07CiAg
ICAgbV9wb3NpdGlvbi54ID0gcG9zaXRpb24ueDsKICAgICBtX3Bvc2l0aW9uLnkgPSBwb3NpdGlv
bi55OwogICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOiht
X2xlZnRNb3VzZUJ1dHRvbkRvd24gPyBOU0xlZnRNb3VzZURyYWdnZWQgOiBOU01vdXNlTW92ZWQp
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>