<?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>38603</bug_id>
          
          <creation_ts>2010-05-05 12:58:46 -0700</creation_ts>
          <short_desc>Expose the editing behavior setting in DRT to test all editing code paths</short_desc>
          <delta_ts>2010-05-25 15:27:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>39433</dependson>
          <blocked>36627</blocked>
    
    <blocked>39680</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>ojan</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>221240</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-05-05 12:58:46 -0700</bug_when>
    <thetext>This was discussed here: https://lists.webkit.org/pipermail/webkit-dev/2010-March/012118.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221344</commentid>
    <comment_count>1</comment_count>
      <attachid>55171</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-05-05 16:29:05 -0700</bug_when>
    <thetext>Created attachment 55171
Expose the editing behavior setting to DRT

I&apos;ve attached a rough patch for this. A couple notes:

1. I&apos;ve implemented the necessary API points and DRT support for Windows/Mac, GTK+ and Chromium ports. This is my first shot at mucking with some of these ports so the style/implementation might be wrong. Qt and Wx are just stubbed out right now. I don&apos;t see LayoutTestController implementations for EFL or Haiku.

2. I&apos;ve only converted one test because fixing this bug is the bootstrapping phase of fixing many GTK+ selection and DRT bugs. The test I converted is only 1 patch away from passing on GTK+, so it&apos;s a good starting point. I plan to iteratively convert tests as I fix bugs on GTK+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221351</commentid>
    <comment_count>2</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2010-05-05 16:40:44 -0700</bug_when>
    <thetext>Attachment 55171 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/2183002</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221355</commentid>
    <comment_count>3</comment_count>
      <attachid>55171</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-05-05 16:45:22 -0700</bug_when>
    <thetext>Comment on attachment 55171
Expose the editing behavior setting to DRT

Removing review flags so that I can fix the EWS build errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221428</commentid>
    <comment_count>4</comment_count>
      <attachid>55190</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-05-05 18:38:30 -0700</bug_when>
    <thetext>Created attachment 55190
Previous patch with build fix for qt (hopefully)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221432</commentid>
    <comment_count>5</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-05 18:50:41 -0700</bug_when>
    <thetext>Attachment 55190 did not build on mac:
Build output: http://webkit-commit-queue.appspot.com/results/2227003</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221434</commentid>
    <comment_count>6</comment_count>
      <attachid>55192</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-05-05 19:00:37 -0700</bug_when>
    <thetext>Created attachment 55192
Previous patch with build fix for Mac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221444</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-05 19:35:10 -0700</bug_when>
    <thetext>Attachment 55192 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2183003</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221686</commentid>
    <comment_count>8</comment_count>
      <attachid>55239</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-05-06 08:10:08 -0700</bug_when>
    <thetext>Created attachment 55239
Previous patch with build fix for Chromium</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221693</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-06 08:19:54 -0700</bug_when>
    <thetext>Attachment 55239 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2197023</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221694</commentid>
    <comment_count>10</comment_count>
      <attachid>55243</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-05-06 08:31:26 -0700</bug_when>
    <thetext>Created attachment 55243
Patch with Chromium build fix (take 2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221701</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-06 08:42:18 -0700</bug_when>
    <thetext>Attachment 55243 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2232018</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221705</commentid>
    <comment_count>12</comment_count>
      <attachid>55245</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-05-06 08:49:52 -0700</bug_when>
    <thetext>Created attachment 55245
Patch with Chromium build fix (take 3) :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221712</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-06 09:02:31 -0700</bug_when>
    <thetext>Attachment 55245 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2211027</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221735</commentid>
    <comment_count>14</comment_count>
      <attachid>55251</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-05-06 09:39:08 -0700</bug_when>
    <thetext>Created attachment 55251
Patch with Chromium build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>223148</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-09 21:17:03 -0700</bug_when>
    <thetext>Attachment 55251 did not build on win:
Build output: http://webkit-commit-queue.appspot.com/results/2189103</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224970</commentid>
    <comment_count>16</comment_count>
      <attachid>55251</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-12 16:13:38 -0700</bug_when>
    <thetext>Comment on attachment 55251
Patch with Chromium build fix

Thanks for doing this! At a high-level, this looks good to me. I have mostly cleanup comments. The only significant change I&apos;d like to see is for the layoutTestController call throw a JS error if you pass it an invalid value.

I&apos;m also on the fence about having a getter for editingBehavior. Having a getter is more consistent with the other preferences, but I also can&apos;t think of any case where we&apos;d use it.

r- for now for the cleanup nits and the throwing a JS error. I&apos;m new to being a reviewer and I don&apos;t know this code too well, so I&apos;d prefer if another reviewer gave the final r+. Maybe that person can also comment on whether it makes sense to have a getter that we don&apos;t actually expose to layoutTestController.

&gt; +        layoutTestController.setEditingBehavior(&quot;mac&quot;);
&gt; +        if (!runTest(&quot;a paragraph&quot;))
&gt; +            return;
&gt; +
&gt; +        layoutTestController.setEditingBehavior(&quot;windows&quot;);
&gt; +        if (!runTest(&quot;paragra&quot;))
&gt; +            return;
&gt; +
&gt; +        logResult(&quot;SUCCESS&quot;);

It would be better if the test ran both tests and printed out SUCCESS/FAIL for each test. Gives more information about what&apos;s going wrong when the test starts failing. It&apos;s fine to have two lines that say &quot;PASSED&quot;. Most of the script-tests do that. The expected results for this test will change obviously, but that&apos;s OK.

While I&apos;m nit-picking, you could make the platform string an argument of runTest and then just call setEditingBehavior once from in there.

&gt; +++ b/WebKit/chromium/public/WebSettings.h
I&apos;d like fishd@chromium to review this as it affects chromium&apos;s public WebKit API. Looks fine to me though.

&gt; @@ -43,6 +43,11 @@ class WebURL;
&gt;  // these functions have a 1:1 mapping with the methods in WebCore/page/settings.h.
&gt;  class WebSettings {
&gt;  public:
&gt; +    enum EditingBehavior {
&gt; +        EditingBehaviorMac = 1,
&gt; +        EditingBehaviorWindows
&gt; +    };

Why start this at 1? It&apos;s my understanding that it should match the enum in Settings.h. Also, it&apos;s a bit weird to have the names of this enum be slightly different than the one in Settings.h. Was that intentional?

&gt; +++ b/WebKit/chromium/src/WebSettingsImpl.cpp
&gt; +void WebSettingsImpl::setEditingBehavior(EditingBehavior behavior)
&gt; +{
&gt; +    if (behavior == EditingBehaviorMac) {
&gt; +        m_settings-&gt;setEditingBehavior(WebCore::EditingMacBehavior);
&gt; +        return;
&gt; +    }
&gt; +
&gt; +    m_settings-&gt;setEditingBehavior(WebCore::EditingWindowsBehavior);
&gt; +}

This implementation doesn&apos;t match the one in WebKit/mac/WebView/WebFrame.mm. Did you do that for a reason? It would be good to have them match, at least in behavior (e.g. they do something different if you were to pass in a new enum value). The behavior in WebKit/mac/WebView/WebFrame.mm seems more robust than this one.

&gt; +++ b/WebKit/mac/ChangeLog
&gt; @@ -1,3 +1,24 @@
&gt; +2010-05-06  Martin Robinson  &lt;mrobinson@webkit.org&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        Expose the editing behavior setting in DRT to test all editing code paths
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=38603
&gt; +
&gt; +        Expose the EditingBehavior setting in the Mac API.

No need to have this extra line of description as it just repeats the summary line above. This section is really if you have more detailed explanation to give, which I don&apos;t think is necessary in this case.

&gt; +typedef enum {
&gt; +    WebKitEditingMacBehavior,
&gt; +    WebKitEditingWindowsBehavior,
&gt; +} WebKitEditingBehavior;

Could you use these enum names in the chromium files as well? Would be better to be consistent and I these names are more clear.

&gt; +void LayoutTestController::setEditingBehavior(const CppArgumentList&amp; arguments, CppVariant* results)
&gt; +{
&gt; +    WebSettings* settings = m_shell-&gt;webView()-&gt;settings();
&gt; +    string key = arguments[0].toString();
&gt; +    if (key == &quot;mac&quot;)
&gt; +        settings-&gt;setEditingBehavior(WebSettings::EditingBehaviorMac);
&gt; +
&gt; +    if (key == &quot;windows&quot;)
&gt; +        settings-&gt;setEditingBehavior(WebSettings::EditingBehaviorWindows);
&gt; +}

Would be nice if this errored if you passed it an invalid key. It would be really annoying to misspell &quot;windows&quot; in a test and have it silently fail. Also, you should use and &quot;else if&quot; clause for the second if-statement since the key can&apos;t be both mac and windows. Ditto for the other implementations of this method as well.

&gt; diff --git a/WebKitTools/DumpRenderTree/wx/LayoutTestControllerWx.cpp b/WebKitTools/DumpRenderTree/wx/LayoutTestControllerWx.cpp
&gt; index 4614aca..b82a171 100644
&gt; --- a/WebKitTools/DumpRenderTree/wx/LayoutTestControllerWx.cpp
&gt; +++ b/WebKitTools/DumpRenderTree/wx/LayoutTestControllerWx.cpp
&gt; @@ -441,3 +441,8 @@ JSValueRef LayoutTestController::computedStyleIncludingVisitedInfo(JSContextRef,
&gt;  void LayoutTestController::authenticateSession(JSStringRef, JSStringRef, JSStringRef)
&gt;  {
&gt;  }
&gt; +
&gt; +void LayoutTestController::setEditingBehavior(JSStringRef editingBehavior)
&gt; +{
&gt; +    // FIXME: Implement
&gt; +}
&gt; -- 

Did you mean to delete this line?

&gt; 1.6.3.3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224971</commentid>
    <comment_count>17</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-12 16:14:16 -0700</bug_when>
    <thetext>Darin, can you vet the chromium webkit API changes?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>224987</commentid>
    <comment_count>18</comment_count>
      <attachid>55251</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-12 17:02:13 -0700</bug_when>
    <thetext>Comment on attachment 55251
Patch with Chromium build fix

WebKit/chromium/public/WebSettings.h:47
 +          EditingBehaviorMac = 1,
If you do not assign 1 to EditingBehaviorMac, then it will have a value of 0,
and that will mean that EditingBehaviorMac == WebCore::EditingMacBehavior
and EditingBehaviorWindows == WebCore::EditingWindowsBehavior.

This means that in the .cpp file you can just static_cast between the two
enum types.

Then to ensure that they do not get out of sync, you can add some lines to
chromium/src/AssertMatchingEnums.cpp (note that the enum groups are alphabetized).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225517</commentid>
    <comment_count>19</comment_count>
      <attachid>56026</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-05-13 14:48:40 -0700</bug_when>
    <thetext>Created attachment 56026
Updated patch based on suggestions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225520</commentid>
    <comment_count>20</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-05-13 14:55:00 -0700</bug_when>
    <thetext>(In reply to comment #16)

Thanks for the review and the great feedback!

&gt; (From update of attachment 55251 [details])

&gt; It would be better if the test ran both tests and printed out SUCCESS/FAIL for each test. Gives more information about what&apos;s going wrong when the test starts failing. It&apos;s fine to have two lines that say &quot;PASSED&quot;. Most of the script-tests do that. The expected results for this test will change obviously, but that&apos;s OK.
&gt; While I&apos;m nit-picking, you could make the platform string an argument of runTest and then just call setEditingBehavior once from in there.

Done!

&gt; Why start this at 1? It&apos;s my understanding that it should match the enum in Settings.h. Also, it&apos;s a bit weird to have the names of this enum be slightly different than the one in Settings.h. Was that intentional?
&gt; This implementation doesn&apos;t match the one in WebKit/mac/WebView/WebFrame.mm. Did you do that for a reason? It would be good to have them match, at least in behavior (e.g. they do something different if you were to pass in a new enum value). The behavior in WebKit/mac/WebView/WebFrame.mm seems more robust than this one.

The enum now starts at zero and I&apos;ve added a compile-time assertion for equality with the WebCore enum. I&apos;ve gone with the static_cast approach that Darin suggested. This seems to match the behavior in other parts of the Chromium API.

&gt; Could you use these enum names in the chromium files as well? Would be better to be consistent and I these names are more clear.

I&apos;m this case I tried to follow the naming scheme of the Chromium public API. For example (from AssertMatchingEnums.cpp):

COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleSliderThumb, SliderThumbRole);

The API seems to consistently use [EnumName][Value]. I can change it around if you still think I should. :)


&gt; Would be nice if this errored if you passed it an invalid key. It would be really annoying to misspell &quot;windows&quot; in a test and have it silently fail. Also, you should use and &quot;else if&quot; clause for the second if-statement since the key can&apos;t be both mac and windows. Ditto for the other implementations of this method as well.

I agree! On JSC versions, I throw an exception and on the Chromium version I use logErrorToConsole (which seems to be the convention there). There didn&apos;t appear to be an easy way to throw an exception from CppBoundClass methods, but I&apos;m not very familiar with it.


&gt; &gt; +void LayoutTestController::setEditingBehavior(JSStringRef editingBehavior)
&gt; &gt; +{
&gt; &gt; +    // FIXME: Implement
&gt; &gt; +}
&gt; &gt; -- 
&gt; Did you mean to delete this line?

Just a reminder, which seems to match the other stubs in the file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>225649</commentid>
    <comment_count>21</comment_count>
      <attachid>56026</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-05-13 20:42:54 -0700</bug_when>
    <thetext>Comment on attachment 56026
Updated patch based on suggestions

WebKit/chromium/src/WebSettingsImpl.cpp:274
 +      m_settings-&gt;setEditingBehavior(static_cast&lt;WebCore::EditingBehavior&gt;(behavior));
nit: no need for WebCore:: prefix given the using directive at the top of the file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227867</commentid>
    <comment_count>22</comment_count>
      <attachid>56497</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-05-19 10:11:20 -0700</bug_when>
    <thetext>Created attachment 56497
Patch (de-nitted)

I&apos;ve attached a patch for this issue that addresses this nit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227874</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-19 10:29:22 -0700</bug_when>
    <thetext>Attachment 56497 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2294329</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227875</commentid>
    <comment_count>24</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-05-19 10:33:24 -0700</bug_when>
    <thetext>?(In reply to comment #21)
&gt; nit: no need for WebCore:: prefix given the using directive at the top of the file.

It looks like in this case the namespace specifier was necessary because of namespace collision. Would you prefer the original patch or something like &quot;using WebCore::EditingBehavior&quot; at the top</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>227954</commentid>
    <comment_count>25</comment_count>
      <attachid>56497</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-19 12:53:37 -0700</bug_when>
    <thetext>Comment on attachment 56497
Patch (de-nitted)

Just a few more nits.

(In reply to comment #24)
&gt; ?(In reply to comment #21)
&gt; &gt; nit: no need for WebCore:: prefix given the using directive at the top of the file.
&gt; 
&gt; It looks like in this case the namespace specifier was necessary because of namespace collision. Would you prefer the original patch or something like &quot;using WebCore::EditingBehavior&quot; at the top

I&apos;m not sure, but I think the prefix is preferred (i.e. original patch).


&gt; &gt; Could you use these enum names in the chromium files as well? Would be better to be consistent and I these names are more clear.
&gt; 
&gt; I&apos;m this case I tried to follow the naming scheme of the Chromium public API. For example (from AssertMatchingEnums.cpp):
&gt; 
&gt; COMPILE_ASSERT_MATCHING_ENUM(WebAccessibilityRoleSliderThumb, SliderThumbRole);
&gt; 
&gt; The API seems to consistently use [EnumName][Value]. I can change it around if you still think I should. :)

Talked to fishd. He agrees with using EditingBehaviorMac and EditingBehaviorWin in the Chromium files. To make it as self-consistent as possible, note that he also suggested abbreviating both Mac and Win. Maybe we could change the JS call to setEditingBehavior to take &apos;mac&apos; and &apos;win&apos; as arguments as well? Then, one day, we can make the enum in WebCore consistent as well (a separate patch).


I&apos;m confused by the last two lines here:
+++ b/WebKitTools/DumpRenderTree/wx/LayoutTestControllerWx.cpp
@@ -446,3 +446,8 @@ JSValueRef LayoutTestController::computedStyleIncludingVisitedInfo(JSContextRef,
 void LayoutTestController::authenticateSession(JSStringRef, JSStringRef, JSStringRef)
 {
 }
+
+void LayoutTestController::setEditingBehavior(JSStringRef editingBehavior)
+{
+    // FIXME: Implement
+}
-- 
1.6.3.3

Where did the following come from?
-- 
1.6.3.3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228107</commentid>
    <comment_count>26</comment_count>
      <attachid>56539</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-05-19 17:45:01 -0700</bug_when>
    <thetext>Created attachment 56539
Patch with suggestions</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228109</commentid>
    <comment_count>27</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-05-19 17:47:05 -0700</bug_when>
    <thetext>(In reply to comment #25)
&gt; I&apos;m not sure, but I think the prefix is preferred (i.e. original patch).

Okay, I&apos;ve used the prefix here.
&gt; Talked to fishd. He agrees with using EditingBehaviorMac and EditingBehaviorWin in the Chromium files. To make it as self-consistent as possible, note that he also suggested abbreviating both Mac and Win. Maybe we could change the JS call to setEditingBehavior to take &apos;mac&apos; and &apos;win&apos; as arguments as well? Then, one day, we can make the enum in WebCore consistent as well (a separate patch).

Using the abbreviated version in all the new APIs now and changed
LayoutTestController&apos;s setEditingBehavior to look for &quot;win.&quot;

&gt; Where did the following come from?
&gt; -- 
&gt; 1.6.3.3

This is just an artifact of git-format-patch. It&apos;s my git version. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228135</commentid>
    <comment_count>28</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-19 18:34:24 -0700</bug_when>
    <thetext>Attachment 56539 did not build on chromium:
Build output: http://webkit-commit-queue.appspot.com/results/2313336</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228136</commentid>
    <comment_count>29</comment_count>
      <attachid>56539</attachid>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2010-05-19 18:38:29 -0700</bug_when>
    <thetext>Comment on attachment 56539
Patch with suggestions

r=me once you resolve the chromium build issue. Thanks for fixing this!

WebKit/chromium/public/WebSettings.h:48
 +          EditingBehaviorWindows
I think you&apos;re missing a comma here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228137</commentid>
    <comment_count>30</comment_count>
      <attachid>56545</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-05-19 18:38:46 -0700</bug_when>
    <thetext>Created attachment 56545
Patch (with build fix)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228398</commentid>
    <comment_count>31</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-05-20 08:49:00 -0700</bug_when>
    <thetext>Committed r59840: &lt;http://trac.webkit.org/changeset/59840&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>228426</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-20 09:47:57 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/59840 might have broken Tiger Intel Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/59840
http://trac.webkit.org/changeset/59839</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230345</commentid>
    <comment_count>33</comment_count>
      <attachid>56545</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-05-25 10:52:06 -0700</bug_when>
    <thetext>Comment on attachment 56545
Patch (with build fix)

Patch committed. Clearing flags.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55171</attachid>
            <date>2010-05-05 16:29:05 -0700</date>
            <delta_ts>2010-05-05 18:38:30 -0700</delta_ts>
            <desc>Expose the editing behavior setting to DRT</desc>
            <filename>0001-Expose-the-editing-behavior-setting-in-DRT-to-test-a.patch</filename>
            <type>text/plain</type>
            <size>33995</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">RnJvbSBjZDRiYzRmODU0YzhjOWViYjk0ZjNiY2M2MWVlNjgxMzhhZGQwOTMyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gUm9iaW5zb24gPG1yb2JpbnNvbkB3ZWJraXQub3Jn
PgpEYXRlOiBXZWQsIDUgTWF5IDIwMTAgMTY6MTg6NTkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBF
eHBvc2UgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRp
dGluZyBjb2RlIHBhdGhzCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzg2MDMKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKV2ViS2l0L2Nocm9taXVtOgoKRXhw
b3NlIHRoZSBFZGl0aW5nQmVoYXZpb3IgcHJlZmVyZW5jZSBpbiB0aGUgQ2hyb21pdW0gQVBJLgoK
KiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKFdlYktpdDo6V2ViU2V0dGluZ3M6Oik6IEFkZGVkIGFu
IGVudW0gZm9yIEVkaXRpbmdCZWhhdmlvciB0eXBlcy4KKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNw
cDoKKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGRlZC4K
KiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CgpXZWJLaXQvbWFjOgoKRXhwb3NlIHRoZSBFZGl0aW5n
QmVoYXZpb3Igc2V0dGluZyBpbiB0aGUgTWFjIEFQSS4KCiogV2ViVmlldy9XZWJGcmFtZS5tbToK
KGNvcmUpOgoqIFdlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oOiBBZGRlZCBhIGNvbnZlcnNpb24g
bWV0aG9kIGZyb20gdGhlIEFQSSBlbnVtIHRvIHRoZSBXZWJDb3JlIGVudW0uCiogV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogQWRkZWQgYSBwcmVmZXJlbmNlIGtleSBmb3IgdGhl
IG5ldyBzZXR0aW5nLgoqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CigrW1dlYlByZWZlcmVu
Y2VzIGluaXRpYWxpemVdKTogSW5pdGlhbGl6ZSB0aGUgRWRpdGluZ0JlaGF2aW9yIHRvIE1hYyBz
dHlsZS4KKC1bV2ViUHJlZmVyZW5jZXMgZWRpdGluZ0JlaGF2aW9yXSk6IEFkZGVkLgooLVtXZWJQ
cmVmZXJlbmNlcyBzZXRFZGl0aW5nQmVoYXZpb3I6XSk6IEFkZGVkLgoqIFdlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmg6IEFkZGVkIHRoZSBuZXcgQVBJIHBvaW50cyB0byB0aGUgcHJpdmF0
ZSBBUEkuCiogV2ViVmlldy9XZWJWaWV3Lm1tOgooLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5n
ZWROb3RpZmljYXRpb246XSk6IFNldCB0aGUgZWRpdGluZyBiZWhhdmlvciB2aWEgdGhlIFdlYlBy
ZWZlcmVuY2VzIHNldHRpbmcuCgpXZWJLaXQvd2luOgoKRXhwb3NlIHRoZSBFZGl0aW5nQmVoYXZp
b3Igc2V0dGluZyBpbiB0aGUgV2luZG93cyBBUEkuCgoqIEludGVyZmFjZXMvSVdlYlByZWZlcmVu
Y2VzLmlkbDogQWRkIHRoZSBBUEkgcG9pbnQgZm9yIHNldHRpbmcgdGhlIGVkaXRpbmcgYmVoYXZp
b3IuCiogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZCBhIGtleSBmb3IgdGhlIGVkaXRp
bmcgYmVoYXZpb3Igc2V0dGluZy4KKiBXZWJQcmVmZXJlbmNlcy5jcHA6CihXZWJQcmVmZXJlbmNl
czo6ZWRpdGluZ0JlaGF2aW9yKTogQWRkZWQuCihXZWJQcmVmZXJlbmNlczo6c2V0RWRpdGluZ0Jl
aGF2aW9yKTogQWRkZWQuCiogV2ViUHJlZmVyZW5jZXMuaDogQWRkIG1ldGhvZCBkZWNsYXJhdGlv
bnMuCiogV2ViVmlldy5jcHA6CihXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOiBV
cGRhdGUgdGhlIFdlYkNvcmUgc2V0dGluZyBiYXNlZCBvbiB0aGUgV2ViUHJlZmVyZW5jZXMgc2V0
dGluZy4KCldlYktpdFRvb2xzOgoKKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHA6CihzZXRFZGl0aW5nQmVoYXZpb3JDYWxsYmFjayk6IEFkZGVkLgooTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6IEV4cG9zZSB0aGUgc2V0RWRpdGluZ0JlaGF2aW9y
Q2FsbGJhY2sgZnVuY3Rpb24uCiogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aDoKKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6IEFk
ZCBjYWxsYmFjayBtZXRob2QgZm9yIHNldHRpbmcgZWRpdGluZyBiZWhhdmlvci4KKiBEdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOiBEZWNsYXJhdGlvbiBmb3Ig
dGhpcyBtZXRob2QuCiogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcDoKKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBJbXBsZW1l
bnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCiogRHVtcFJlbmRlclRyZWUvbWFj
L0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVk
aXRpbmdCZWhhdmlvcik6IERpdHRvCiogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5jcHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTog
QWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wKKiBE
dW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgooTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IEltcGxlbWVudGF0aW9uIG9mIGVkaXRp
bmcgYmVoYXZpb3IgY29udHJvbC4KKiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJv
bGxlcld4LmNwcDoKKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBB
ZGRlZCBzdHViIGltcGxlbWVudGF0aW9uIG9mIGVkaXRpbmcgYmVoYXZpb3IgY29udHJvbAoKTGF5
b3V0VGVzdHM6CgoqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91
YmxlLWNsaWNrLmh0bWw6IFVzZSB0aGUgbmV3IERSVCBzdXBwb3J0IGZvciBjaGFuZ2luZyBlZGl0
aW5nIGJlaGF2aW9yLgotLS0KIExheW91dFRlc3RzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHwgICAgOSArKysrKwogLi4uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91
YmxlLWNsaWNrLmh0bWwgICAgICAgfCAgIDMzICsrKysrKysrKysrKysrLS0tLS0KIFdlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSArKysrKysr
KysKIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCAgICAgICAgICAgICAgIHwg
ICAgNiArKysKIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcCAgICAgICAg
ICAgIHwgICAxMCArKysrKysKIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgg
ICAgICAgICAgICAgIHwgICAgMSArCiBXZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICB8ICAgMjEgKysrKysrKysrKysrCiBXZWJLaXQvbWFjL1dlYlZpZXcv
V2ViRnJhbWUubW0gICAgICAgICAgICAgICAgICAgICB8ICAgMTIgKysrKysrKwogV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaCAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktp
dC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCAgICAgIHwgICAgMSArCiBX
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gICAgICAgICAgICAgICB8ICAgMTEg
KysrKysrCiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggICAgICAg
ICB8ICAgIDggKysrKysKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tICAgICAgICAgICAg
ICAgICAgICAgIHwgICAgMSArCiBXZWJLaXQvd2luL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICB8ICAgMTggKysrKysrKysrKysKIFdlYktpdC93aW4vSW50ZXJmYWNlcy9J
V2ViUHJlZmVyZW5jZXMuaWRsICAgICAgICAgIHwgICAgOSArKysrKwogV2ViS2l0L3dpbi9XZWJQ
cmVmZXJlbmNlS2V5c1ByaXZhdGUuaCAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdC93aW4v
V2ViUHJlZmVyZW5jZXMuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgICAxNSArKysrKysrKysK
IFdlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAg
NiArKysKIFdlYktpdC93aW4vV2ViVmlldy5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHwgICAgNiArKysKIFdlYktpdFRvb2xzL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHwgICAyNCArKysrKysrKysrKysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcCAgICAgICAgfCAgIDE2ICsrKysrKysrKwogV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCAgfCAgICAxICsKIC4uLi9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgICAgICAgICAgICAgIHwgICAxMiArKysrKysrCiAu
Li4vRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCB8ICAgIDIg
KwogLi4uL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgfCAg
IDE0ICsrKysrKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVy
TWFjLm1tICB8ICAgIDkgKysrKysKIC4uLi9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29u
dHJvbGxlclF0LmNwcCAgIHwgICAgNSArKysKIC4uLi9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0
VGVzdENvbnRyb2xsZXJXaW4uY3BwIHwgICAxNyArKysrKysrKysrCiAuLi4vRHVtcFJlbmRlclRy
ZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAgICB8ICAgIDUgKysrCiAyOSBmaWxlcyBj
aGFuZ2VkLCAyODAgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYzNlN2Y5
ZC4uODk4OTFhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDEwLTA1LTA1ICBNYXJ0aW4gUm9i
aW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBFeHBvc2UgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGlu
ZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRpdGluZyBjb2RlIHBhdGhzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODYwMworCisgICAgICAgICogZWRpdGlu
Zy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbDogVXNl
IHRoZSBuZXcgRFJUIHN1cHBvcnQgZm9yIGNoYW5naW5nIGVkaXRpbmcgYmVoYXZpb3IuCisKIDIw
MTAtMDUtMDUgIEppYW4gTGkgIDxqaWFubGlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbCBiL0xheW91dFRl
c3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNr
Lmh0bWwKaW5kZXggODkxMDgwYi4uMzM4ODQ5NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRp
dGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFmdGVy
LWRvdWJsZS1jbGljay5odG1sCkBAIC0xOCwxMyArMTgsMzEgQEAKICAgICAgICAgZXZlbnRTZW5k
ZXIubGVhcEZvcndhcmQoMTAwMCk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gcnVuVGVzdCgpCisg
ICAgZnVuY3Rpb24gbG9nUmVzdWx0KHJlc3VsdCkKKyAgICB7CisgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5maXJzdENoaWxkLmRhdGEgPSByZXN1bHQ7CisgICAgfQor
CisgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgIHsKICAgICAgICAgaWYgKCF3aW5kb3cuZXZl
bnRTZW5kZXIgfHwgIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgICAgIHJl
dHVybjsKIAogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0RWRpdGluZ0JlaGF2aW9yKCJtYWMiKTsKKyAg
ICAgICAgaWYgKCFydW5UZXN0KCJhIHBhcmFncmFwaCIpKQorICAgICAgICAgICAgcmV0dXJuOwor
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEVkaXRpbmdCZWhhdmlvcigid2luZG93
cyIpOworICAgICAgICBpZiAoIXJ1blRlc3QoInBhcmFncmEiKSkKKyAgICAgICAgICAgIHJldHVy
bjsKKworICAgICAgICBsb2dSZXN1bHQoIlNVQ0NFU1MiKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBydW5UZXN0KGV4cGVjdGVkVGV4dCkKKyAgICB7CiAgICAgICAgIGRvdWJsZUNsaWNrV29yZCgp
OwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5tb2RpZnkoImV4dGVuZCIsICJiYWNrd2FyZCIsICJj
aGFyYWN0ZXIiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCJleHRlbmQiLCAiYmFj
a3dhcmQiLCAiY2hhcmFjdGVyIik7CkBAIC0zMiwxOSArNTAsMTYgQEAKICAgICAgICAgZ2V0U2Vs
ZWN0aW9uKCkubW9kaWZ5KCJleHRlbmQiLCAiYmFja3dhcmQiLCAiY2hhcmFjdGVyIik7CiAgICAg
ICAgIGdldFNlbGVjdGlvbigpLm1vZGlmeSgiZXh0ZW5kIiwgImJhY2t3YXJkIiwgImNoYXJhY3Rl
ciIpOwogCi0gICAgICAgIHZhciByZXN1bHQ7CiAgICAgICAgIHZhciBzZWxlY3RlZFRleHQgPSBn
ZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAgICAgICB2YXIgb25NYWNQbGF0Zm9ybSA9IG5h
dmlnYXRvci51c2VyQWdlbnQuc2VhcmNoKC9cYk1hYyBPUyBYXGIvKSAhPSAtMTsKLSAgICAgICAg
dmFyIGV4cGVjdGVkVGV4dCA9IG9uTWFjUGxhdGZvcm0gPyAiYSBwYXJhZ3JhcGgiIDogInBhcmFn
cmEiOwogICAgICAgICBpZiAoc2VsZWN0ZWRUZXh0ID09IGV4cGVjdGVkVGV4dCkKLSAgICAgICAg
ICAgIHJlc3VsdCA9ICJTVUNDRVNTIjsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0
ID0gIkZBSUxVUkU6IFRoZSBzZWxlY3RlZCB0ZXh0IGlzIFwiIiArIHNlbGVjdGVkVGV4dCArICJc
IiBhbmQgc2hvdWxkIGJlIFwiIiArIGV4cGVjdGVkVGV4dCArICJcIi4iOwotICAgICAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuZmlyc3RDaGlsZC5kYXRhID0gcmVzdWx0Owor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAgbG9nUmVzdWx0KCJGQUlMVVJFOiBU
aGUgc2VsZWN0ZWQgdGV4dCBpcyBcIiIgKyBzZWxlY3RlZFRleHQgKyAiXCIgYW5kIHNob3VsZCBi
ZSBcIiIgKyBleHBlY3RlZFRleHQgKyAiXCIuIik7CisgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KLTxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxib2R5
IG9ubG9hZD0icnVuVGVzdHMoKSI+CiA8cD5UaGlzIHRlc3RzIG1vZGlmeWluZyBhIHNlbGVjdGlv
biBjcmVhdGVkIHdpdGggYSBkb3VibGUgY2xpY2sgd2l0aCBzaGlmdCBhcnJvdyBrZXkuPC9wPgog
PHAgc3R5bGU9ImNvbG9yOmdyZWVuIj4KICAgICBUaGlzIHRlc3QgZG9lcyBub3QgcnVuIGludGVy
YWN0aXZlbHkuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAxYzA5ZmIxLi4yYzcwM2IzIDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOCBAQAorMjAxMC0wNS0wNSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29u
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRXhwb3NlIHRoZSBlZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcgaW4gRFJUIHRvIHRlc3Qg
YWxsIGVkaXRpbmcgY29kZSBwYXRocworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mzg2MDMKKworICAgICAgICBFeHBvc2UgdGhlIEVkaXRpbmdCZWhhdmlv
ciBwcmVmZXJlbmNlIGluIHRoZSBDaHJvbWl1bSBBUEkuCisKKyAgICAgICAgKiBwdWJsaWMvV2Vi
U2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3M6Oik6IEFkZGVkIGFuIGVu
dW0gZm9yIEVkaXRpbmdCZWhhdmlvciB0eXBlcy4KKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJ
bXBsLmNwcDogCisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0RWRpdGluZ0Jl
aGF2aW9yKTogQWRkZWQuCisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5oOgorCiAyMDEw
LTA1LTA1ICBEYXJpbiBGaXNoZXIgIDxkYXJpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJTZXR0aW5ncy5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5o
CmluZGV4IDM1NmQ5ZmEuLjFjM2U5MzcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViU2V0dGluZ3MuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdz
LmgKQEAgLTQzLDYgKzQzLDExIEBAIGNsYXNzIFdlYlVSTDsKIC8vIHRoZXNlIGZ1bmN0aW9ucyBo
YXZlIGEgMToxIG1hcHBpbmcgd2l0aCB0aGUgbWV0aG9kcyBpbiBXZWJDb3JlL3BhZ2Uvc2V0dGlu
Z3MuaC4KIGNsYXNzIFdlYlNldHRpbmdzIHsKIHB1YmxpYzoKKyAgICBlbnVtIEVkaXRpbmdCZWhh
dmlvciB7CisgICAgICAgIEVkaXRpbmdCZWhhdmlvck1hYyA9IDE7CisgICAgICAgIEVkaXRpbmdC
ZWhhdmlvcldpbmRvd3M7CisgICAgfTsKKwogICAgIHZpcnR1YWwgdm9pZCBzZXRTdGFuZGFyZEZv
bnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGaXhl
ZEZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRT
ZXJpZkZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJikgPSAwOwpAQCAtODQsNiArODksNyBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5h
YmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEV4cGVyaW1lbnRhbFdlYkdMRW5h
YmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3dEZWJ1Z0JvcmRlcnMoYm9v
bCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2
aW9yKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICB+V2ViU2V0dGluZ3MoKSB7IH0KZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcCBiL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAppbmRleCAzYWRmM2FjLi5jMmUyNmJkIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBAIC0yNjksNCArMjY5LDE0IEBA
IHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRTaG93RGVidWdCb3JkZXJzKGJvb2wgc2hvdykKICAg
ICBtX3NldHRpbmdzLT5zZXRTaG93RGVidWdCb3JkZXJzKHNob3cpOwogfQogCit2b2lkIFdlYlNl
dHRpbmdzSW1wbDo6c2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcikK
K3sKKyAgICBpZiAoYmVoYXZpb3IgPT0gRWRpdGluZ0JlaGF2aW9yTWFjKSB7CisgICAgICAgIG1f
c2V0dGluZ3MtPnNldEVkaXRpbmdCZWhhdmlvcihXZWJDb3JlOjpFZGl0aW5nTWFjQmVoYXZpb3Ip
CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3NldHRpbmdzLT5zZXRFZGl0aW5nQmVo
YXZpb3IoV2ViQ29yZTo6RWRpdGluZ1dpbmRvd3NCZWhhdmlvcikKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1w
bC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAppbmRleCA1NGM2NjBi
Li43MDIyNWZmIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1w
bC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKQEAgLTg2LDYg
Kzg2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRPZmZsaW5lV2ViQXBwbGljYXRp
b25DYWNoZUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEV4cGVyaW1lbnRhbFdl
YkdMRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd0RlYnVnQm9yZGVycyhi
b29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlv
cik7CiAKIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6U2V0dGluZ3MqIG1fc2V0dGluZ3M7CmRpZmYg
LS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4
IDI5NjI5NjguLjZjNTFiN2MgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBi
L1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTAtMDUtMDUgIE1hcnRp
biBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSB0aGUgZWRpdGluZyBiZWhhdmlvciBz
ZXR0aW5nIGluIERSVCB0byB0ZXN0IGFsbCBlZGl0aW5nIGNvZGUgcGF0aHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NjAzCisKKyAgICAgICAgRXhw
b3NlIHRoZSBFZGl0aW5nQmVoYXZpb3Igc2V0dGluZyBpbiB0aGUgTWFjIEFQSS4KKworICAgICAg
ICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgIChjb3JlKToKKyAgICAgICAgKiBXZWJW
aWV3L1dlYkZyYW1lSW50ZXJuYWwuaDogQWRkZWQgYSBjb252ZXJzaW9uIG1ldGhvZCBmcm9tIHRo
ZSBBUEkgZW51bSB0byB0aGUgV2ViQ29yZSBlbnVtLgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZGVkIGEgcHJlZmVyZW5jZSBrZXkgZm9yIHRoZSBuZXcg
c2V0dGluZy4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAo
K1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6IEluaXRpYWxpemUgdGhlIEVkaXRpbmdCZWhh
dmlvciB0byBNYWMgc3R5bGUuCisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIGVkaXRpbmdCZWhh
dmlvcl0pOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0RWRpdGluZ0JlaGF2
aW9yOl0pOiBBZGRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5o
OiBBZGRlZCB0aGUgbmV3IEFQSSBwb2ludHMgdG8gdGhlIHByaXZhdGUgQVBJLgorICAgICAgICAq
IFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJlZmVyZW5jZXNDaGFu
Z2VkTm90aWZpY2F0aW9uOl0pOiBTZXQgdGhlIGVkaXRpbmcgYmVoYXZpb3IgdmlhIHRoZSBXZWJQ
cmVmZXJlbmNlcyBzZXR0aW5nLgorCiAyMDEwLTA1LTA0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRp
ZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViRnJhbWUubW0KaW5kZXggYjQxNjliNi4uOGNkMzAzNSAxMDA2NDQKLS0tIGEvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJG
cmFtZS5tbQpAQCAtMTk2LDYgKzE5NiwxOCBAQCBFZGl0YWJsZUxpbmtCZWhhdmlvciBjb3JlKFdl
YktpdEVkaXRhYmxlTGlua0JlaGF2aW9yIGVkaXRhYmxlTGlua0JlaGF2aW9yKQogICAgIHJldHVy
biBFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3I7CiB9CiAKK1dlYkNvcmU6OkVkaXRpbmdCZWhh
dmlvciBjb3JlKFdlYktpdEVkaXRpbmdCZWhhdmlvcikKK3sKKyAgICBzd2l0Y2ggKGJlaGF2aW9y
KSB7CisgICAgICAgIGNhc2UgV2ViS2l0RWRpdGluZ01hY0JlaGF2aW9yOgorICAgICAgICAgICAg
cmV0dXJuIFdlYkNvcmU6OkVkaXRpbmdNYWNCZWhhdmlvcjsKKyAgICAgICAgY2FzZSBXZWJLaXRF
ZGl0aW5nV2luZG93c0JlaGF2aW9yOgorICAgICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRp
bmdXaW5kb3dzQmVoYXZpb3I7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
IHJldHVybiBXZWJLaXRFZGl0aW5nTWFjQmVoYXZpb3I7Cit9CisKIFRleHREaXJlY3Rpb25TdWJt
ZW51SW5jbHVzaW9uQmVoYXZpb3IgY29yZShXZWJUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lv
bkJlaGF2aW9yIGJlaGF2aW9yKQogewogICAgIHN3aXRjaCAoYmVoYXZpb3IpIHsKZGlmZiAtLWdp
dCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmggYi9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCmluZGV4IDRjMWVlNDAuLjliMjI0OGEgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgKKysrIGIvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaApAQCAtNzEsNiArNzEsNyBAQCBXZWJWaWV3ICpr
aXQoV2ViQ29yZTo6UGFnZSopOwogCiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvciBjb3Jl
KFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yKTsKIFdlYkNvcmU6OlRleHREaXJlY3Rpb25TdWJt
ZW51SW5jbHVzaW9uQmVoYXZpb3IgY29yZShXZWJUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lv
bkJlaGF2aW9yKTsKK1dlYkNvcmU6OkVkaXRpbmdCZWhhdmlvciBjb3JlKFdlYktpdEVkaXRpbmdC
ZWhhdmlvcik7CiAKIFdlYlZpZXcgKmdldFdlYlZpZXcoV2ViRnJhbWUgKndlYkZyYW1lKTsKIApk
aWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5o
IGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IGY0
YWUzMzMuLjRjMjJmNTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlS2V5c1ByaXZhdGUuaAorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmgKQEAgLTEwNCw2ICsxMDQsNyBAQAogI2RlZmluZSBXZWJLaXRFZGl0YWJsZUxp
bmtCZWhhdmlvclByZWZlcmVuY2VLZXkgQCJXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciIKICNk
ZWZpbmUgV2ViS2l0Q2FjaGVNb2RlbFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDYWNoZU1vZGVsUHJl
ZmVyZW5jZUtleSIKICNkZWZpbmUgV2ViS2l0VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25C
ZWhhdmlvclByZWZlcmVuY2VLZXkgQCJXZWJLaXRUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lv
bkJlaGF2aW9yUHJlZmVyZW5jZUtleSIKKyNkZWZpbmUgV2ViS2l0RWRpdGluZ0JlaGF2aW9yUHJl
ZmVyZW5jZUtleSBAIldlYktpdEVkaXRpbmdCZWhhdmlvciIKIAogLy8gQ29yZUdyYXBoaWNzIGRl
ZmVycmVkIHVwZGF0ZXMgYXJlIGRpc2FibGVkIGlmIFdlYktpdEVuYWJsZUNvYWxlc2NlZFVwZGF0
ZXNQcmVmZXJlbmNlS2V5IGlzIHNldAogLy8gdG8gTk8sIG9yIGhhcyBubyB2YWx1ZS4gIEZvciBj
b21wYXRpYmlsaXR5IHdpdGggTWFjIE9TIFggMTAuNC42LCBkZWZlcnJlZCB1cGRhdGVzIGFyZSBP
RkYgYnkKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBi
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRleCA5ZGU4NDk1Li42OTJh
NmFmIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysr
IGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0zMzQsNiArMzM0LDcg
QEAgc3RhdGljIFdlYkNhY2hlTW9kZWwgY2FjaGVNb2RlbEZvck1haW5CdW5kbGUodm9pZCkKICAg
ICAgICAgQCIwIiwgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRQREZTY2FsZUZhY3Rv
clByZWZlcmVuY2VLZXksCiAgICAgICAgIEAiMCIsICAgICAgICAgICAgICAgICAgICAgICAgICAg
V2ViS2l0VXNlU2l0ZVNwZWNpZmljU3Bvb2ZpbmdQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNO
dW1iZXIgbnVtYmVyV2l0aEludDpXZWJLaXRFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3JdLCBX
ZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvclByZWZlcmVuY2VLZXksCisgICAgICAgIFtOU051bWJl
ciBudW1iZXJXaXRoSW50OldlYkVkaXRpbmdNYWNCZWhhdmlvcl0sIFdlYktpdEVkaXRpbmdCZWhh
dmlvclByZWZlcmVuY2VLZXksCiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFk
ZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRo
SW50OldlYlRleHREaXJlY3Rpb25TdWJtZW51QXV0b21hdGljYWxseUluY2x1ZGVkXSwKICNlbHNl
CkBAIC0xMjM3LDYgKzEyMzgsMTYgQEAgc3RhdGljIE5TU3RyaW5nICpjbGFzc0lCQ3JlYXRvcklE
ID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0RnJhbWVG
bGF0dGVuaW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOwogfQogCistIChXZWJFZGl0aW5nQmVoYXZp
b3IpZWRpdGluZ0JlaGF2aW9yCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdEVkaXRp
bmdCZWhhdmlvcj4gKFtzZWxmIF9pbnRlZ2VyVmFsdWVGb3JLZXk6V2ViS2l0RWRpdGluZ0JlaGF2
aW9yUHJlZmVyZW5jZUtleV0pOworfQorCistICh2b2lkKXNldEVkaXRpbmdCZWhhdmlvcjooV2Vi
RWRpdGluZ0JlaGF2aW9yKWJlaGF2aW9yCit7CisgICAgW3NlbGYgX3NldEludGVnZXJWYWx1ZTpi
ZWhhdmlvciBmb3JLZXk6V2ViS2l0RWRpdGluZ0JlaGF2aW9yUHJlZmVyZW5jZUtleV07Cit9CisK
IC0gKHZvaWQpZGlkUmVtb3ZlRnJvbVdlYlZpZXcKIHsKICAgICBBU1NFUlQoX3ByaXZhdGUtPm51
bVdlYlZpZXdzKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
c1ByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApp
bmRleCBlZTc4NWU5Li43NmE0MTU0IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
UHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzUHJpdmF0ZS5oCkBAIC00Myw2ICs0MywxMSBAQCB0eXBlZGVmIGVudW0gewogICAgIFdlYlRl
eHREaXJlY3Rpb25TdWJtZW51QWx3YXlzSW5jbHVkZWQKIH0gV2ViVGV4dERpcmVjdGlvblN1Ym1l
bnVJbmNsdXNpb25CZWhhdmlvcjsKIAordHlwZWRlZiBlbnVtIHsKKyAgICBXZWJLaXRFZGl0aW5n
TWFjQmVoYXZpb3IsCisgICAgV2ViS2l0RWRpdGluZ1dpbmRvd3NCZWhhdmlvciwKK30gV2ViS2l0
RWRpdGluZ0JlaGF2aW9yOworCiBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2hhbmdl
ZE5vdGlmaWNhdGlvbjsKIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNSZW1vdmVkTm90
aWZpY2F0aW9uOwogCkBAIC0xMjksNiArMTM0LDkgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVm
ZXJlbmNlc1JlbW92ZWROb3RpZmljYXRpb247CiAtIChXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlv
cillZGl0YWJsZUxpbmtCZWhhdmlvcjsKIC0gKHZvaWQpc2V0RWRpdGFibGVMaW5rQmVoYXZpb3I6
KFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yKWJlaGF2aW9yOwogCistIChXZWJFZGl0aW5nQmVo
YXZpb3IpZWRpdGluZ0JlaGF2aW9yOworLSAodm9pZClzZXRFZGl0aW5nQmVoYXZpb3I6KFdlYkVk
aXRpbmdCZWhhdmlvciliZWhhdmlvcjsKKwogLSAoV2ViVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNs
dXNpb25CZWhhdmlvcil0ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yOwogLSAo
dm9pZClzZXRUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yOihXZWJUZXh0RGly
ZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKWJlaGF2aW9yOwogCmRpZmYgLS1naXQgYS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3
Lm1tCmluZGV4IDQ4MTg2OTEuLmViNWM2NmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xMzIx
LDYgKzEzMjEsNyBAQCBzdGF0aWMgYm9vbCBmYXN0RG9jdW1lbnRUZWFyZG93bkVuYWJsZWQoKQog
ICAgIHNldHRpbmdzLT5zZXRUZXh0QXJlYXNBcmVSZXNpemFibGUoW3ByZWZlcmVuY2VzIHRleHRB
cmVhc0FyZVJlc2l6YWJsZV0pOwogICAgIHNldHRpbmdzLT5zZXRTaHJpbmtzU3RhbmRhbG9uZUlt
YWdlc1RvRml0KFtwcmVmZXJlbmNlcyBzaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0XSk7CiAg
ICAgc2V0dGluZ3MtPnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKGNvcmUoW3ByZWZlcmVuY2VzIGVk
aXRhYmxlTGlua0JlaGF2aW9yXSkpOworICAgIHNldHRpbmdzLT5zZXRFZGl0aW5nQmVoYXZpb3Io
Y29yZShbcHJlZmVyZW5jZXMgZWRpdGluZ0JlaGF2aW9yXSkpOwogICAgIHNldHRpbmdzLT5zZXRU
ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKGNvcmUoW3ByZWZlcmVuY2VzIHRl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JdKSk7CiAgICAgc2V0dGluZ3MtPnNl
dERPTVBhc3RlQWxsb3dlZChbcHJlZmVyZW5jZXMgaXNET01QYXN0ZUFsbG93ZWRdKTsKICAgICBz
ZXR0aW5ncy0+c2V0VXNlc1BhZ2VDYWNoZShbc2VsZiB1c2VzUGFnZUNhY2hlXSk7CmRpZmYgLS1n
aXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGU3
NzEzY2UuLmU1ZTY3MDUgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDUtMDUgIE1hcnRpbiBS
b2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSB0aGUgZWRpdGluZyBiZWhhdmlvciBzZXR0
aW5nIGluIERSVCB0byB0ZXN0IGFsbCBlZGl0aW5nIGNvZGUgcGF0aHMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NjAzCisKKyAgICAgICAgRXhwb3Nl
IHRoZSBFZGl0aW5nQmVoYXZpb3Igc2V0dGluZyBpbiB0aGUgV2luZG93cyBBUEkuCisKKyAgICAg
ICAgKiBJbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGw6IEFkZCB0aGUgQVBJIHBvaW50IGZv
ciBzZXR0aW5nIHRoZSBlZGl0aW5nIGJlaGF2aW9yLgorICAgICAgICAqIFdlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oOiBBZGQgYSBrZXkgZm9yIHRoZSBlZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcu
CisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6
OmVkaXRpbmdCZWhhdmlvcik6IEFkZGVkLgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OnNldEVk
aXRpbmdCZWhhdmlvcik6IEFkZGVkLgorICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmg6IEFkZCBt
ZXRob2QgZGVjbGFyYXRpb25zLgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2Vi
Vmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKTogVXBkYXRlIHRoZSBXZWJDb3JlIHNldHRp
bmcgYmFzZWQgb24gdGhlIFdlYlByZWZlcmVuY2VzIHNldHRpbmcuCisKIDIwMTAtMDUtMDUgIFN0
dWFydCBNb3JnYW4gIDxzdHVhcnRtb3JnYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vSW50ZXJmYWNlcy9J
V2ViUHJlZmVyZW5jZXMuaWRsIGIvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNl
cy5pZGwKaW5kZXggMWM0MzEzNS4uZmYzMGEwMyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9JbnRl
cmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGwKKysrIGIvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lX
ZWJQcmVmZXJlbmNlcy5pZGwKQEAgLTQ3LDYgKzQ3LDEyIEBAIHR5cGVkZWYgZW51bSBXZWJLaXRF
ZGl0YWJsZUxpbmtCZWhhdmlvciB7CiAgICAgV2ViS2l0RWRpdGFibGVMaW5rTmV2ZXJMaXZlCiB9
IFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yOwogCit0eXBlZGVmIGVudW0gV2ViS2l0RWRpdGlu
Z0JlaGF2aW9yIHsKKyAgICBXZWJLaXRFZGl0aW5nTWFjQmVoYXZpb3IgPSAwLAorICAgIFdlYktp
dEVkaXRpbmdXaW5kb3dzQmVoYXZpb3IsCit9IFdlYktpdEVkaXRpbmdCZWhhdmlvcjsKKworCiB0
eXBlZGVmIGVudW0gV2ViS2l0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeSB7CiAgICAgV2ViS2l0
Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeUFsd2F5cyA9IDAsCiAgICAgV2ViS2l0Q29va2llU3Rv
cmFnZUFjY2VwdFBvbGljeU5ldmVyLApAQCAtMTYyLDYgKzE2OCw5IEBAIGludGVyZmFjZSBJV2Vi
UHJlZmVyZW5jZXMgOiBJVW5rbm93bgogICAgIEhSRVNVTFQgZWRpdGFibGVMaW5rQmVoYXZpb3Io
W291dCwgcmV0dmFsXSBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciogZWRpdGFibGVMaW5rQmVo
YXZpb3IpOwogICAgIEhSRVNVTFQgc2V0RWRpdGFibGVMaW5rQmVoYXZpb3IoW2luXSBXZWJLaXRF
ZGl0YWJsZUxpbmtCZWhhdmlvciBiZWhhdmlvcik7CiAKKyAgICBIUkVTVUxUIGVkaXRpbmdCZWhh
dmlvcihbb3V0LCByZXR2YWxdIFdlYktpdEVkaXRpbmdCZWhhdmlvciogZWRpdGluZ0JlaGF2aW9y
KTsKKyAgICBIUkVTVUxUIHNldEVkaXRpbmdCZWhhdmlvcihbaW5dIFdlYktpdEVkaXRpbmdCZWhh
dmlvciBiZWhhdmlvcik7CisKICAgICBIUkVTVUxUIGNvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3ko
W291dCwgcmV0dmFsXSBXZWJLaXRDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5KiBhY2NlcHRQb2xp
Y3kpOwogICAgIEhSRVNVTFQgc2V0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeShbaW5dIFdlYktp
dENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kgYWNjZXB0UG9saWN5KTsKIApkaWZmIC0tZ2l0IGEv
V2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1dlYktpdC93aW4vV2ViUHJl
ZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggYzQ5YTk2ZC4uZGE2Mzc1NCAxMDA2NDQKLS0tIGEv
V2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9XZWJLaXQvd2luL1dl
YlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC03NCw2ICs3NCw3IEBACiAjZGVmaW5lIFdlYktp
dFBERkRpc3BsYXlNb2RlUHJlZmVyZW5jZUtleSAiV2ViS2l0UERGRGlzcGxheU1vZGUiCiAjZGVm
aW5lIFdlYktpdFBERlNjYWxlRmFjdG9yUHJlZmVyZW5jZUtleSAiV2ViS2l0UERGU2NhbGVGYWN0
b3IiCiAjZGVmaW5lIFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yUHJlZmVyZW5jZUtleSAiV2Vi
S2l0RWRpdGFibGVMaW5rQmVoYXZpb3IiCisjZGVmaW5lIFdlYktpdEVkaXRpbmdCZWhhdmlvclBy
ZWZlcmVuY2VLZXkgIldlYktpdEVkaXRpbmdCZWhhdmlvciIKIAogLy8gV2luZG93IGRpc3BsYXkg
aXMgdGhyb3R0bGVkIHRvIDYwIGZyYW1lcyBwZXIgc2Vjb25kIGlmIFdlYktpdFRocm90dGxlV2lu
ZG93RGlzcGxheVByZWZlcmVuY2VLZXkKIC8vIGlzIHNldCB0byBZRVMuICBUaGUgd2luZG93IGRp
c3BsYXkgdGhyb3R0bGUgaXMgT0ZGIGJ5IGRlZmF1bHQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBN
YWMgT1MgWApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgYi9XZWJL
aXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCAzM2U5MDRkLi4zZTdlYTQyIDEwMDY0NAot
LS0gYS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9XZWJLaXQvd2luL1dlYlBy
ZWZlcmVuY2VzLmNwcApAQCAtMTEzMCw2ICsxMTMwLDIxIEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgV2ViUHJlZmVyZW5jZXM6OnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKAogICAgIHJldHVy
biBTX09LOwogfQogCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlByZWZlcmVuY2VzOjpl
ZGl0aW5nQmVoYXZpb3IoCisgICAgLyogW291dCwgcmV0dmFsXSAqLyBXZWJLaXRFZGl0aW5nQmVo
YXZpb3IqIGVkaXRpbmdCZWhhdmlvcikKK3sKKyAgICAqZWRpdGluZ0JlaGF2aW9yID0gKFdlYktp
dEVkaXRpbmdCZWhhdmlvcikgaW50ZWdlclZhbHVlRm9yS2V5KENGU1RSKFdlYktpdEVkaXRpbmdC
ZWhhdmlvclByZWZlcmVuY2VLZXkpKTsKKyAgICByZXR1cm4gU19PSzsKK30KKworSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6c2V0RWRpdGluZ0JlaGF2aW9yKAorICAg
IC8qIFtpbl0gKi8gV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IgYmVoYXZpb3IpCit7CisgICAg
c2V0SW50ZWdlclZhbHVlKENGU1RSKFdlYktpdEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXkp
LCBiZWhhdmlvcik7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKKwogSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6Y29va2llU3RvcmFnZUFjY2VwdFBvbGljeSggCiAgICAg
ICAgIC8qIFtyZXR2YWxdW291dF0gKi8gV2ViS2l0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeSAq
YWNjZXB0UG9saWN5ICkKIHsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMu
aCBiL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaAppbmRleCBjZmRlZmE4Li4xZWE2OWM3IDEw
MDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvV2ViS2l0L3dpbi9X
ZWJQcmVmZXJlbmNlcy5oCkBAIC0yMzgsNiArMjM4LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0RWRpdGFibGVMaW5rQmVoYXZpb3IoIAogICAg
ICAgICAvKiBbaW5dICovIFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yIGJlaGF2aW9yKTsKIAor
ICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBlZGl0aW5nQmVoYXZpb3IoCisg
ICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gV2ViS2l0RWRpdGluZ0JlaGF2aW9yKiBiZWhhdmlv
cik7CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0RWRpdGluZ0Jl
aGF2aW9yKAorICAgICAgICAvKiBbaW5dICovIFdlYktpdEVkaXRpbmdCZWhhdmlvciBiZWhhdmlv
cik7CisKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgY29va2llU3RvcmFn
ZUFjY2VwdFBvbGljeSggCiAgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gV2ViS2l0Q29va2ll
U3RvcmFnZUFjY2VwdFBvbGljeSAqYWNjZXB0UG9saWN5KTsKICAgICAgICAgCmRpZmYgLS1naXQg
YS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCAy
NDhlM2NkLi4yNmEwNDA5IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBi
L1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTQ1ODYsNiArNDU4NiwxMiBAQCBIUkVTVUxUIFdl
YlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBub3RpZmlj
YXRpb24pCiAgICAgICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy0+c2V0RWRpdGFibGVMaW5r
QmVoYXZpb3IoKEVkaXRhYmxlTGlua0JlaGF2aW9yKWJlaGF2aW9yKTsKIAorICAgIFdlYktpdEVk
aXRpbmdCZWhhdmlvciBiZWhhdmlvcjsKKyAgICBociA9IHByZWZlcmVuY2VzLT5lZGl0aW5nQmVo
YXZpb3IoJmJlaGF2aW9yKTsKKyAgICBpZiAoRkFJTEVEKGhyKSkKKyAgICAgICAgcmV0dXJuIGhy
OworICAgIHNldHRpbmdzLT5zZXRFZGl0aW5nQmVoYXZpb3IoKEVkaXRpbmdCZWhhdmlvciliZWhh
dmlvcik7CisKICAgICBociA9IHByZWZlcmVuY2VzLT51c2VzUGFnZUNhY2hlKCZlbmFibGVkKTsK
ICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBjZTI1MzUu
LjU4Y2VlZjYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRU
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0wNS0wNSAgTWFydGluIFJvYmlu
c29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRoZSBlZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcg
aW4gRFJUIHRvIHRlc3QgYWxsIGVkaXRpbmcgY29kZSBwYXRocworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2MDMKKworICAgICAgICAqIER1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKHNldEVkaXRpbmdCZWhh
dmlvckNhbGxiYWNrKTogQWRkZWQuCisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3Rh
dGljRnVuY3Rpb25zKTogRXhwb3NlIHRoZSBzZXRFZGl0aW5nQmVoYXZpb3JDYWxsYmFjayBmdW5j
dGlvbi4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cDogQWRkIGNhbGxiYWNrIG1ldGhvZCBmb3Igc2V0dGluZyBlZGl0aW5nIGJlaGF2aW9yLgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6IERl
Y2xhcmF0aW9uIGZvciB0aGlzIG1ldGhvZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsv
TGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOiAKKyAgICAgICAgKExheW91dFRlc3RDb250cm9s
bGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBJbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2
aW9yIGNvbnRyb2wuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250
cm9sbGVyTWFjLm1tOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdC
ZWhhdmlvcik6IERpdHRvCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENv
bnRyb2xsZXJRdC5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGlu
Z0JlaGF2aW9yKTogQWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9y
IGNvbnRyb2wKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xs
ZXJXaW4uY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhh
dmlvcik6IEltcGxlbWVudGF0aW9uIG9mIGVkaXRpbmcgYmVoYXZpb3IgY29udHJvbC4KKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcDoKKyAgICAg
ICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGRlZCBzdHVi
IGltcGxlbWVudGF0aW9uIG9mIGVkaXRpbmcgYmVoYXZpb3IgY29udHJvbAorCiAyMDEwLTA1LTA0
ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBT
aGluaWNoaXJvIEhhbWFqaS4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCBiNGI1YmYyLi41ZDBmMmU0IDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysr
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBA
IC0xNDQxLDYgKzE0NDEsMjEgQEAgc3RhdGljIEpTVmFsdWVSZWYgYXV0aGVudGljYXRlU2Vzc2lv
bkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiwKICAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIHNl
dEVkaXRpbmdCZWhhdmlvckNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJl
ZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQs
IGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sK
KyAgICAvLyBUaGUgZWRpdGluZyBiZWhhdmlvciBzdHJpbmcuCisgICAgaWYgKGFyZ3VtZW50Q291
bnQgPCAxKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisK
KyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gZWRpdGluZ0JlaGF2aW9yKEFkb3B0LCBKU1Zh
bHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKSk7CisgICAg
QVNTRVJUKCEqZXhjZXB0aW9uKTsKKworICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9s
bGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZh
dGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXItPnNldEVkaXRpbmdCZWhhdmlvcihlZGl0
aW5nQmVoYXZpb3IuZ2V0KCkpOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNv
bnRleHQpOworfQorCiAvLyBTdGF0aWMgVmFsdWVzCiAKIHN0YXRpYyBKU1ZhbHVlUmVmIGdldEds
b2JhbEZsYWdDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhpc09i
amVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCkBA
IC0xNTkwLDYgKzE2MDUsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAic2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUi
LCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNl
dERhdGFiYXNlUXVvdGEiLCBzZXREYXRhYmFzZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCiAgICAg
ICAgIHsgInNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUiLCBzZXREb21h
aW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAg
ICAgeyAic2V0RWRpdGluZ0JlaGF2aW9yIiwgc2V0RWRpdGluZ0JlaGF2aW9yQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAic2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCIsIHNldEZyYW1lRmxh
dHRlbmluZ0VuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRHZW9sb2NhdGlv
blBlcm1pc3Npb24iLCBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb25DYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJzZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzIiwgc2V0SGFuZGxl
c0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCAwOGY5Njky
Li43MjY2ZjBhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmgKQEAgLTk4LDYgKzk4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RnJh
bWVGbGF0dGVuaW5nRW5hYmxlZChib29sIGVuYWJsZSk7CiAgICAgdm9pZCBzZXRTcGF0aWFsTmF2
aWdhdGlvbkVuYWJsZWQoYm9vbCBlbmFibGUpOwogICAgIHZvaWQgc2V0U2Nyb2xsYmFyUG9saWN5
KEpTU3RyaW5nUmVmIG9yaWVudGF0aW9uLCBKU1N0cmluZ1JlZiBwb2xpY3kpOworICAgIHZvaWQg
c2V0RWRpdGluZ0JlaGF2aW9yKEpTU3RyaW5nUmVmIGVkaXRpbmdCZWhhdmlvcik7CiAKICAgICB2
b2lkIHdhaXRGb3JQb2xpY3lEZWxlZ2F0ZSgpOwogICAgIHNpemVfdCB3ZWJIaXN0b3J5SXRlbUNv
dW50KCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMjFiMTY4Yy4uYzk3ZWM1YiAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTQ4LDYgKzE0OCw3IEBAIExheW91dFRlc3RDb250
cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRN
ZXRob2QoInNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxl
cjo6c2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJldmFsdWF0
ZUluV2ViSW5zcGVjdG9yIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpldmFsdWF0ZUluV2ViSW5z
cGVjdG9yKTsKICAgICBiaW5kTWV0aG9kKCJmb3JjZVJlZFNlbGVjdGlvbkNvbG9ycyIsICZMYXlv
dXRUZXN0Q29udHJvbGxlcjo6Zm9yY2VSZWRTZWxlY3Rpb25Db2xvcnMpOworICAgIGJpbmRNZXRo
b2QoInNldEVkaXRpbmdCZWhhdmlvciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGlu
Z0JlaGF2aW9yKTsKIAogICAgIC8vIFRoZSBmYWxsYmFjayBtZXRob2QgaXMgY2FsbGVkIHdoZW4g
YW4gdW5rbm93biBtZXRob2QgaXMgaW52b2tlZC4KICAgICBiaW5kRmFsbGJhY2tNZXRob2QoJkxh
eW91dFRlc3RDb250cm9sbGVyOjpmYWxsYmFja01ldGhvZCk7CkBAIC0xMTg3LDMgKzExODgsMTQg
QEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVXNlclNjcmlwdChjb25zdCBDcHBBcmd1
bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmEKICAgICAgICAgcmV0dXJuOwogICAgIG1fc2hlbGwt
PndlYlZpZXcoKS0+YWRkVXNlclNjcmlwdChXZWJTdHJpbmc6OmZyb21VVEY4KGFyZ3VtZW50c1sw
XS50b1N0cmluZygpKSwgYXJndW1lbnRzWzFdLnRvQm9vbGVhbigpKTsKIH0KKwordm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYsIENwcFZhcmlhbnQqKTsKK3sKKyAgICBXZWJTZXR0aW5ncyogc2V0dGluZ3MgPSBtX3NoZWxs
LT53ZWJWaWV3KCktPnNldHRpbmdzKCk7CisgICAgc3RyaW5nIGtleSA9IGFyZ3VtZW50c1swXS50
b1N0cmluZygpOworICAgIGlmIChrZXkgPT0gIm1hYyIpCisgICAgICAgIHNldHRpbmdzLT5zZXRF
ZGl0aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yTWFjKTsKKworICAgIGlmIChrZXkgPT0gIndp
bmRvd3MiKQorICAgICAgICBzZXR0aW5ncy0+c2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhh
dmlvcldpbmRvd3MpOworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggY2E4YjAxNC4uZjllZDhj
YyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0
VGVzdENvbnRyb2xsZXIuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0xOTUsNiArMTk1LDggQEAgcHVibGljOgogCiAg
ICAgdm9pZCBkdW1wU2VsZWN0aW9uUmVjdChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7CiAKKyAgICB2b2lkIHNldEVkaXRpbmdCZWhhdmlvcihjb25zdCBDcHBBcmd1bWVudExp
c3QmLCBDcHBWYXJpYW50Kik7CisKICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZSBvbmx5IHN0dWJz
LiAgVE9ETyhwYW1nKTogSW1wbGVtZW50IGFueSBvZiB0aGVzZSB0aGF0CiAgICAgLy8gYXJlIG5l
ZWRlZCB0byBwYXNzIHRoZSBsYXlvdXQgdGVzdHMuCiAgICAgdm9pZCBkdW1wQXNXZWJBcmNoaXZl
KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgYi9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3Bw
CmluZGV4IGNiYmE3Y2UuLjBhMjBiY2MgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtMzksNiAr
MzksNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUmV0YWluUHRyLmg+CiAjaW5jbHVk
ZSA8SmF2YVNjcmlwdENvcmUvSlNTdHJpbmdSZWYuaD4KIAorI2luY2x1ZGUgPGNzdHJpbmc+CiAj
aW5jbHVkZSA8aW9zdHJlYW0+CiAjaW5jbHVkZSA8c3N0cmVhbT4KICNpbmNsdWRlIDxzdGRpby5o
PgpAQCAtNjg4LDMgKzY4OSwxNiBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVz
dENvbnRyb2xsZXI6Om1hcmtlclRleHRGb3JMaXN0SXRlbShKU0NvbnRleHRSZQogdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6YXV0aGVudGljYXRlU2Vzc2lvbihKU1N0cmluZ1JlZiwgSlNTdHJp
bmdSZWYsIEpTU3RyaW5nUmVmKQogewogfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpz
ZXRFZGl0aW5nQmVoYXZpb3IoSlNTdHJpbmdSZWYgZWRpdGluZ0JlaGF2aW9yKQoreworICAgIFdl
YktpdFdlYlZpZXcqIHdlYlZpZXcgPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyhtYWlu
RnJhbWUpOworICAgIFdlYktpdFdlYlNldHRpbmdzKiBzZXR0aW5ncyA9IHdlYmtpdF93ZWJfdmll
d19nZXRfc2V0dGluZ3Mod2ViVmlldyk7CisKKyAgICBjaGFyKiBlZGl0aW5nQmVoYXZpb3JTdHJp
bmcgPSBKU1N0cmluZ0NvcHlVVEY4Q1N0cmluZyhlZGl0aW5nQmVoYXZpb3IpOworICAgIGlmICgh
c3RyY21wKGVkaXRpbmdCZWhhdmlvclN0cmluZywgIndpbmRvd3MiKSkKKyAgICAgICAgZ19vYmpl
Y3Rfc2V0KEdfT0JKRUNUKHNldHRpbmdzKSwgImVkaXRpbmctYmVoYXZpb3IiLCBXRUJLSVRfRURJ
VElOR19CRUhBVklPUl9XSU5ET1dTLCBOVUxMKTsKKyAgICBpZiAoIXN0cmNtcChlZGl0aW5nQmVo
YXZpb3JTdHJpbmcsICJtYWMiKSkKKyAgICAgICAgZ19vYmplY3Rfc2V0KEdfT0JKRUNUKHNldHRp
bmdzKSwgImVkaXRpbmctYmVoYXZpb3IiLCBXRUJLSVRfRURJVElOR19CRUhBVklPUl9NQUMsIE5V
TEwpOworICAgIGdfZnJlZShlZGl0aW5nQmVoYXZpb3JTdHJpbmcpOworfQpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1t
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFj
Lm1tCmluZGV4IDNiMDNhZWMuLjc5NzQ5Y2IgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQorKysgYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KQEAgLTgzNSwz
ICs4MzUsMTIgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXV0aGVudGljYXRlU2Vzc2lv
bihKU1N0cmluZ1JlZiB1cmwsIEpTU3RyaW5nUmVmIHVzZXIKICAgICBbU3luY2hyb25vdXNMb2Fk
ZXIgbWFrZVJlcXVlc3Q6cmVxdWVzdCB3aXRoVXNlcm5hbWU6KE5TU3RyaW5nICopdXNlcm5hbWVD
Ri5nZXQoKSBwYXNzd29yZDooTlNTdHJpbmcgKilwYXNzd29yZENGLmdldCgpXTsKICNlbmRpZgog
fQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IoSlNTdHJp
bmdSZWYgZWRpdGluZ0JlaGF2aW9yKQoreworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZWRp
dGluZ0JlaGF2aW9yQ0YoQWRvcHRDRiwgSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgZWRpdGluZ0JlaGF2aW9yKSk7CisgICAgaWYgKFsoTlNTdHJpbmcgKillZGl0aW5n
QmVoYXZpb3JDRi5nZXQoKSBpc0VxdWFsVG9TdHJpbmc6QCJtYWMiXSkKKyAgICAgICAgW1tXZWJQ
cmVmZXJlbmNlcyBzdGFuZGFyZFByZWZlcmVuY2VzXSBzZXRFZGl0aW5nQmVoYXZpb3I6V2ViS2l0
RWRpdGluZ01hY0JlaGF2aW9yXTsKKyAgICBpZiAoWyhOU1N0cmluZyAqKWVkaXRpbmdCZWhhdmlv
ckNGLmdldCgpIGlzRXF1YWxUb1N0cmluZzpAIndpbmRvd3MiXSkKKyAgICAgICAgW1tXZWJQcmVm
ZXJlbmNlcyBzdGFuZGFyZFByZWZlcmVuY2VzXSBzZXRFZGl0aW5nQmVoYXZpb3I6V2ViS2l0RWRp
dGluZ01hY0JlaGF2aW9yXTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKaW5kZXggOTc3MDk2ZC4uNzFlY2Y1
NCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENv
bnRyb2xsZXJRdC5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0
VGVzdENvbnRyb2xsZXJRdC5jcHAKQEAgLTYyNCw2ICs2MjQsMTEgQEAgdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6YXV0aGVudGljYXRlU2Vzc2lvbihjb25zdCBRU3RyaW5nJiwgY29uc3QgUVN0
cmluZyYsIGMKICAgICAvLyBGSVhNRTogSWYgdGhlcmUgaXMgYSBjb25jZXB0IHBlci1zZXNzaW9u
IChwZXItcHJvY2VzcykgY3JlZGVudGlhbCBzdG9yYWdlLCB0aGUgY3JlZGVudGlhbHMgc2hvdWxk
IGJlIGFkZGVkIHRvIGl0IGZvciBsYXRlciB1c2UuCiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcihKU1N0cmluZ1JlZiBlZGl0aW5nQmVoYXZpb3IpCit7
CisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KK30KKwogCiBjb25zdCB1bnNpZ25lZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6bWF4Vmlld1dpZHRoID0gODAwOwogY29uc3QgdW5zaWduZWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6Om1heFZpZXdIZWlnaHQgPSA2MDA7CmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcApp
bmRleCBkODg5Y2ZjLi44NjBlZmRmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKQEAgLTEyNjIsMyAr
MTI2MiwyMCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRXZWJWaWV3RWRpdGFibGUo
Ym9vbCkKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmF1dGhlbnRpY2F0ZVNlc3Npb24oSlNT
dHJpbmdSZWYsIEpTU3RyaW5nUmVmLCBKU1N0cmluZ1JlZikKIHsKIH0KKwordm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKEpTU3RyaW5nUmVmIGVkaXRpbmdCZWhh
dmlvcikKK3sKKyAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7CisgICAgaWYgKEZBSUxFRChm
cmFtZS0+d2ViVmlldygmd2ViVmlldykpKQorICAgICAgICByZXR1cm47CisKKyAgICBDT01QdHI8
SVdlYlByZWZlcmVuY2VzPiBwcmVmZXJlbmNlczsKKyAgICBpZiAoRkFJTEVEKHdlYlZpZXctPnBy
ZWZlcmVuY2VzKCZwcmVmZXJlbmNlcykpKQorICAgICAgICByZXR1cm47CisKKyAgICB3c3RyaW5n
IGJlaGF2aW9yV3N0cmluZyA9IGpzU3RyaW5nUmVmVG9XU3RyaW5nKGVkaXRpbmdCZWhhdmlvcik7
CisgICAgaWYgKGJlaGF2aW9yV3N0cmluZyA9PSBMIm1hYyIpCisgICAgICAgIHByZWZlcmVuY2Vz
LT5zZXRFZGl0aW5nQmVoYXZpb3IoV2ViS2l0RWRpdGluZ01hY0JlaGF2aW9yKTsKKyAgICBpZiAo
YmVoYXZpb3JXc3RyaW5nID09IEwid2luZG93cyIpCisgICAgICAgIHByZWZlcmVuY2VzLT5zZXRF
ZGl0aW5nQmVoYXZpb3IoV2ViS2l0RWRpdGluZ1dpbmRvd3NCZWhhdmlvcik7Cit9CmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4
LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVy
V3guY3BwCmluZGV4IDQ2MTRhY2EuLmI4MmExNzEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCisrKyBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCkBAIC00NDEs
MyArNDQxLDggQEAgSlNWYWx1ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y29tcHV0ZWRTdHls
ZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEpTQ29udGV4dFJlZiwKIHZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmF1dGhlbnRpY2F0ZVNlc3Npb24oSlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmLCBKU1N0
cmluZ1JlZikKIHsKIH0KKwordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0Jl
aGF2aW9yKEpTU3RyaW5nUmVmIGVkaXRpbmdCZWhhdmlvcikKK3sKKyAgICAvLyBGSVhNRTogSW1w
bGVtZW50Cit9Ci0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55190</attachid>
            <date>2010-05-05 18:38:30 -0700</date>
            <delta_ts>2010-05-05 19:00:37 -0700</delta_ts>
            <desc>Previous patch with build fix for qt (hopefully)</desc>
            <filename>0001-Expose-the-editing-behavior-setting-in-DRT-to-test-a.patch</filename>
            <type>text/plain</type>
            <size>34821</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">RnJvbSAwYjYxODVhMjRiZjlmMzg3NTAxNzFkMmYxYjYyZDY4ZTU1NjdlZjNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gUm9iaW5zb24gPG1yb2JpbnNvbkB3ZWJraXQub3Jn
PgpEYXRlOiBXZWQsIDUgTWF5IDIwMTAgMTY6MTg6NTkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBF
eHBvc2UgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRp
dGluZyBjb2RlIHBhdGhzCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzg2MDMKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKV2ViS2l0L2Nocm9taXVtOgoKRXhw
b3NlIHRoZSBFZGl0aW5nQmVoYXZpb3IgcHJlZmVyZW5jZSBpbiB0aGUgQ2hyb21pdW0gQVBJLgoK
KiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKFdlYktpdDo6V2ViU2V0dGluZ3M6Oik6IEFkZGVkIGFu
IGVudW0gZm9yIEVkaXRpbmdCZWhhdmlvciB0eXBlcy4KKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNw
cDoKKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGRlZC4K
KiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CgpXZWJLaXQvbWFjOgoKRXhwb3NlIHRoZSBFZGl0aW5n
QmVoYXZpb3Igc2V0dGluZyBpbiB0aGUgTWFjIEFQSS4KCiogV2ViVmlldy9XZWJGcmFtZS5tbToK
KGNvcmUpOgoqIFdlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oOiBBZGRlZCBhIGNvbnZlcnNpb24g
bWV0aG9kIGZyb20gdGhlIEFQSSBlbnVtIHRvIHRoZSBXZWJDb3JlIGVudW0uCiogV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogQWRkZWQgYSBwcmVmZXJlbmNlIGtleSBmb3IgdGhl
IG5ldyBzZXR0aW5nLgoqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CigrW1dlYlByZWZlcmVu
Y2VzIGluaXRpYWxpemVdKTogSW5pdGlhbGl6ZSB0aGUgRWRpdGluZ0JlaGF2aW9yIHRvIE1hYyBz
dHlsZS4KKC1bV2ViUHJlZmVyZW5jZXMgZWRpdGluZ0JlaGF2aW9yXSk6IEFkZGVkLgooLVtXZWJQ
cmVmZXJlbmNlcyBzZXRFZGl0aW5nQmVoYXZpb3I6XSk6IEFkZGVkLgoqIFdlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmg6IEFkZGVkIHRoZSBuZXcgQVBJIHBvaW50cyB0byB0aGUgcHJpdmF0
ZSBBUEkuCiogV2ViVmlldy9XZWJWaWV3Lm1tOgooLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5n
ZWROb3RpZmljYXRpb246XSk6IFNldCB0aGUgZWRpdGluZyBiZWhhdmlvciB2aWEgdGhlIFdlYlBy
ZWZlcmVuY2VzIHNldHRpbmcuCgpXZWJLaXQvd2luOgoKRXhwb3NlIHRoZSBFZGl0aW5nQmVoYXZp
b3Igc2V0dGluZyBpbiB0aGUgV2luZG93cyBBUEkuCgoqIEludGVyZmFjZXMvSVdlYlByZWZlcmVu
Y2VzLmlkbDogQWRkIHRoZSBBUEkgcG9pbnQgZm9yIHNldHRpbmcgdGhlIGVkaXRpbmcgYmVoYXZp
b3IuCiogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZCBhIGtleSBmb3IgdGhlIGVkaXRp
bmcgYmVoYXZpb3Igc2V0dGluZy4KKiBXZWJQcmVmZXJlbmNlcy5jcHA6CihXZWJQcmVmZXJlbmNl
czo6ZWRpdGluZ0JlaGF2aW9yKTogQWRkZWQuCihXZWJQcmVmZXJlbmNlczo6c2V0RWRpdGluZ0Jl
aGF2aW9yKTogQWRkZWQuCiogV2ViUHJlZmVyZW5jZXMuaDogQWRkIG1ldGhvZCBkZWNsYXJhdGlv
bnMuCiogV2ViVmlldy5jcHA6CihXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOiBV
cGRhdGUgdGhlIFdlYkNvcmUgc2V0dGluZyBiYXNlZCBvbiB0aGUgV2ViUHJlZmVyZW5jZXMgc2V0
dGluZy4KCldlYktpdFRvb2xzOgoKKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHA6CihzZXRFZGl0aW5nQmVoYXZpb3JDYWxsYmFjayk6IEFkZGVkLgooTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6IEV4cG9zZSB0aGUgc2V0RWRpdGluZ0JlaGF2aW9y
Q2FsbGJhY2sgZnVuY3Rpb24uCiogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aDoKKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6IEFk
ZCBjYWxsYmFjayBtZXRob2QgZm9yIHNldHRpbmcgZWRpdGluZyBiZWhhdmlvci4KKiBEdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOiBEZWNsYXJhdGlvbiBmb3Ig
dGhpcyBtZXRob2QuCiogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcDoKKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBJbXBsZW1l
bnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCiogRHVtcFJlbmRlclRyZWUvbWFj
L0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVk
aXRpbmdCZWhhdmlvcik6IERpdHRvCiogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5jcHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTog
QWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCiog
RHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oOgooTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZCBzbG90IGZvciBjb250cm9sbGluZyBl
ZGl0b3IgYmVoYXZpb3IuCiogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVy
V2luLmNwcDoKKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBJbXBs
ZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCiogRHVtcFJlbmRlclRyZWUv
d3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
RWRpdGluZ0JlaGF2aW9yKTogQWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJl
aGF2aW9yIGNvbnRyb2wuCgpMYXlvdXRUZXN0czoKCiogZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5k
LXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbDogVXNlIHRoZSBuZXcgRFJUIHN1cHBv
cnQgZm9yIGNoYW5naW5nIGVkaXRpbmcgYmVoYXZpb3IuCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5ICsrKysrCiAuLi4vZXh0ZW5k
LXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbCAgICAgICB8ICAgMzMgKysrKysrKysr
KysrKystLS0tLQogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDE1ICsrKysrKysrKwogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5n
cy5oICAgICAgICAgICAgICAgfCAgICA2ICsrKwogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuY3BwICAgICAgICAgICAgfCAgIDEwICsrKysrKwogV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTZXR0aW5nc0ltcGwuaCAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdC9tYWMvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysrKysrKysrKysK
IFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSAgICAgICAgICAgICAgICAgICAgIHwgICAx
MiArKysrKysrCiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oICAgICAgICAg
ICAgICB8ICAgIDEgKwogV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oICAgICAgfCAgICAxICsKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSAg
ICAgICAgICAgICAgIHwgICAxMSArKysrKysKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaCAgICAgICAgIHwgICAgOCArKysrKwogV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0gICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdC93aW4vQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOCArKysrKysrKysrKwogV2Vi
S2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGwgICAgICAgICAgfCAgICA5ICsr
KysrCiBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oICAgICAgICAgICAgICB8
ICAgIDEgKwogV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDE1ICsrKysrKysrKwogV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICA2ICsrKwogV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICsrKwogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI0ICsrKysrKysrKysrKysrCiAuLi4vRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwICAgICAgICB8ICAgMTYgKysrKysr
KysrCiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oICB8
ICAgIDEgKwogLi4uL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCAgICAgICAgICAg
ICAgfCAgIDEyICsrKysrKysKIC4uLi9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oIHwgICAgMiArCiAuLi4vRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RD
b250cm9sbGVyR3RrLmNwcCB8ICAgMTQgKysrKysrKysKIC4uLi9EdW1wUmVuZGVyVHJlZS9tYWMv
TGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0gIHwgICAgOSArKysrKwogLi4uL0R1bXBSZW5kZXJU
cmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwICAgfCAgICA1ICsrKwogLi4uL0R1bXBS
ZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaCAgICAgfCAgICAyICsKIC4uLi9E
dW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIHwgICAxNyArKysr
KysrKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAg
ICB8ICAgIDUgKysrCiAzMCBmaWxlcyBjaGFuZ2VkLCAyODIgaW5zZXJ0aW9ucygrKSwgOSBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggYzNlN2Y5ZC4uODk4OTFhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDEwLTA1LTA1ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBvc2UgdGhl
IGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRpdGluZyBjb2Rl
IHBhdGhzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
ODYwMworCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRl
ci1kb3VibGUtY2xpY2suaHRtbDogVXNlIHRoZSBuZXcgRFJUIHN1cHBvcnQgZm9yIGNoYW5naW5n
IGVkaXRpbmcgYmVoYXZpb3IuCisKIDIwMTAtMDUtMDUgIEppYW4gTGkgIDxqaWFubGlAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRlci1kb3Vi
bGUtY2xpY2suaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxl
Y3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLmh0bWwKaW5kZXggODkxMDgwYi4uMzM4ODQ5NiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1h
ZnRlci1kb3VibGUtY2xpY2suaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGljay5odG1sCkBAIC0xOCwxMyArMTgs
MzEgQEAKICAgICAgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTAwMCk7CiAgICAgfQogCi0g
ICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgZnVuY3Rpb24gbG9nUmVzdWx0KHJlc3VsdCkKKyAg
ICB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5maXJzdENoaWxk
LmRhdGEgPSByZXN1bHQ7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgIHsK
ICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIgfHwgIXdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CiAKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0RWRp
dGluZ0JlaGF2aW9yKCJtYWMiKTsKKyAgICAgICAgaWYgKCFydW5UZXN0KCJhIHBhcmFncmFwaCIp
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dEVkaXRpbmdCZWhhdmlvcigid2luZG93cyIpOworICAgICAgICBpZiAoIXJ1blRlc3QoInBhcmFn
cmEiKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsb2dSZXN1bHQoIlNVQ0NFU1Mi
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KGV4cGVjdGVkVGV4dCkKKyAgICB7CiAg
ICAgICAgIGRvdWJsZUNsaWNrV29yZCgpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5tb2RpZnko
ImV4dGVuZCIsICJiYWNrd2FyZCIsICJjaGFyYWN0ZXIiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9u
KCkubW9kaWZ5KCJleHRlbmQiLCAiYmFja3dhcmQiLCAiY2hhcmFjdGVyIik7CkBAIC0zMiwxOSAr
NTAsMTYgQEAKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCJleHRlbmQiLCAiYmFja3dh
cmQiLCAiY2hhcmFjdGVyIik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLm1vZGlmeSgiZXh0ZW5k
IiwgImJhY2t3YXJkIiwgImNoYXJhY3RlciIpOwogCi0gICAgICAgIHZhciByZXN1bHQ7CiAgICAg
ICAgIHZhciBzZWxlY3RlZFRleHQgPSBnZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAgICAg
ICB2YXIgb25NYWNQbGF0Zm9ybSA9IG5hdmlnYXRvci51c2VyQWdlbnQuc2VhcmNoKC9cYk1hYyBP
UyBYXGIvKSAhPSAtMTsKLSAgICAgICAgdmFyIGV4cGVjdGVkVGV4dCA9IG9uTWFjUGxhdGZvcm0g
PyAiYSBwYXJhZ3JhcGgiIDogInBhcmFncmEiOwogICAgICAgICBpZiAoc2VsZWN0ZWRUZXh0ID09
IGV4cGVjdGVkVGV4dCkKLSAgICAgICAgICAgIHJlc3VsdCA9ICJTVUNDRVNTIjsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgcmVzdWx0ID0gIkZBSUxVUkU6IFRoZSBzZWxlY3RlZCB0ZXh0IGlz
IFwiIiArIHNlbGVjdGVkVGV4dCArICJcIiBhbmQgc2hvdWxkIGJlIFwiIiArIGV4cGVjdGVkVGV4
dCArICJcIi4iOwotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuZmly
c3RDaGlsZC5kYXRhID0gcmVzdWx0OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAg
ICAgbG9nUmVzdWx0KCJGQUlMVVJFOiBUaGUgc2VsZWN0ZWQgdGV4dCBpcyBcIiIgKyBzZWxlY3Rl
ZFRleHQgKyAiXCIgYW5kIHNob3VsZCBiZSBcIiIgKyBleHBlY3RlZFRleHQgKyAiXCIuIik7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KLTxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CiA8cD5UaGlzIHRl
c3RzIG1vZGlmeWluZyBhIHNlbGVjdGlvbiBjcmVhdGVkIHdpdGggYSBkb3VibGUgY2xpY2sgd2l0
aCBzaGlmdCBhcnJvdyBrZXkuPC9wPgogPHAgc3R5bGU9ImNvbG9yOmdyZWVuIj4KICAgICBUaGlz
IHRlc3QgZG9lcyBub3QgcnVuIGludGVyYWN0aXZlbHkuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAxYzA5ZmIx
Li4yYzcwM2IzIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wNS0wNSAgTWFy
dGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRoZSBlZGl0aW5nIGJlaGF2aW9y
IHNldHRpbmcgaW4gRFJUIHRvIHRlc3QgYWxsIGVkaXRpbmcgY29kZSBwYXRocworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2MDMKKworICAgICAgICBF
eHBvc2UgdGhlIEVkaXRpbmdCZWhhdmlvciBwcmVmZXJlbmNlIGluIHRoZSBDaHJvbWl1bSBBUEku
CisKKyAgICAgICAgKiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
U2V0dGluZ3M6Oik6IEFkZGVkIGFuIGVudW0gZm9yIEVkaXRpbmdCZWhhdmlvciB0eXBlcy4KKyAg
ICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDogCisgICAgICAgIChXZWJLaXQ6OldlYlNl
dHRpbmdzSW1wbDo6c2V0RWRpdGluZ0JlaGF2aW9yKTogQWRkZWQuCisgICAgICAgICogc3JjL1dl
YlNldHRpbmdzSW1wbC5oOgorCiAyMDEwLTA1LTA1ICBEYXJpbiBGaXNoZXIgIDxkYXJpbkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oIGIvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCmluZGV4IDM1NmQ5ZmEuLjFjM2U5MzcgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAorKysgYi9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKQEAgLTQzLDYgKzQzLDExIEBAIGNsYXNzIFdlYlVS
TDsKIC8vIHRoZXNlIGZ1bmN0aW9ucyBoYXZlIGEgMToxIG1hcHBpbmcgd2l0aCB0aGUgbWV0aG9k
cyBpbiBXZWJDb3JlL3BhZ2Uvc2V0dGluZ3MuaC4KIGNsYXNzIFdlYlNldHRpbmdzIHsKIHB1Ymxp
YzoKKyAgICBlbnVtIEVkaXRpbmdCZWhhdmlvciB7CisgICAgICAgIEVkaXRpbmdCZWhhdmlvck1h
YyA9IDE7CisgICAgICAgIEVkaXRpbmdCZWhhdmlvcldpbmRvd3M7CisgICAgfTsKKwogICAgIHZp
cnR1YWwgdm9pZCBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRGaXhlZEZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRTZXJpZkZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJikg
PSAwOwpAQCAtODQsNiArODksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldE9mZmxp
bmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHNldEV4cGVyaW1lbnRhbFdlYkdMRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHNldFNob3dEZWJ1Z0JvcmRlcnMoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0
aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICB+V2Vi
U2V0dGluZ3MoKSB7IH0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGlu
Z3NJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAppbmRl
eCAzYWRmM2FjLi5jMmUyNmJkIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNl
dHRpbmdzSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwu
Y3BwCkBAIC0yNjksNCArMjY5LDE0IEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRTaG93RGVi
dWdCb3JkZXJzKGJvb2wgc2hvdykKICAgICBtX3NldHRpbmdzLT5zZXRTaG93RGVidWdCb3JkZXJz
KHNob3cpOwogfQogCit2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0RWRpdGluZ0JlaGF2aW9yKEVk
aXRpbmdCZWhhdmlvciBiZWhhdmlvcikKK3sKKyAgICBpZiAoYmVoYXZpb3IgPT0gRWRpdGluZ0Jl
aGF2aW9yTWFjKSB7CisgICAgICAgIG1fc2V0dGluZ3MtPnNldEVkaXRpbmdCZWhhdmlvcihXZWJD
b3JlOjpFZGl0aW5nTWFjQmVoYXZpb3IpCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBt
X3NldHRpbmdzLT5zZXRFZGl0aW5nQmVoYXZpb3IoV2ViQ29yZTo6RWRpdGluZ1dpbmRvd3NCZWhh
dmlvcikKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuaAppbmRleCA1NGM2NjBiLi43MDIyNWZmIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
U2V0dGluZ3NJbXBsLmgKQEAgLTg2LDYgKzg2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldEV4cGVyaW1lbnRhbFdlYkdMRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0U2hvd0RlYnVnQm9yZGVycyhib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdGlu
Z0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvcik7CiAKIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6U2V0
dGluZ3MqIG1fc2V0dGluZ3M7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDI5NjI5NjguLjZjNTFiN2MgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjQgQEAKKzIwMTAtMDUtMDUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9z
ZSB0aGUgZWRpdGluZyBiZWhhdmlvciBzZXR0aW5nIGluIERSVCB0byB0ZXN0IGFsbCBlZGl0aW5n
IGNvZGUgcGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM4NjAzCisKKyAgICAgICAgRXhwb3NlIHRoZSBFZGl0aW5nQmVoYXZpb3Igc2V0dGluZyBp
biB0aGUgTWFjIEFQSS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAg
IChjb3JlKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaDogQWRkZWQgYSBj
b252ZXJzaW9uIG1ldGhvZCBmcm9tIHRoZSBBUEkgZW51bSB0byB0aGUgV2ViQ29yZSBlbnVtLgor
ICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZGVkIGEgcHJl
ZmVyZW5jZSBrZXkgZm9yIHRoZSBuZXcgc2V0dGluZy4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzLm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6IElu
aXRpYWxpemUgdGhlIEVkaXRpbmdCZWhhdmlvciB0byBNYWMgc3R5bGUuCisgICAgICAgICgtW1dl
YlByZWZlcmVuY2VzIGVkaXRpbmdCZWhhdmlvcl0pOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViUHJl
ZmVyZW5jZXMgc2V0RWRpdGluZ0JlaGF2aW9yOl0pOiBBZGRlZC4KKyAgICAgICAgKiBXZWJWaWV3
L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOiBBZGRlZCB0aGUgbmV3IEFQSSBwb2ludHMgdG8gdGhl
IHByaXZhdGUgQVBJLgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1b
V2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uOl0pOiBTZXQgdGhlIGVkaXRp
bmcgYmVoYXZpb3IgdmlhIHRoZSBXZWJQcmVmZXJlbmNlcyBzZXR0aW5nLgorCiAyMDEwLTA1LTA0
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RnJhbWUubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggYjQxNjliNi4u
OGNkMzAzNSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBi
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtMTk2LDYgKzE5NiwxOCBAQCBFZGl0
YWJsZUxpbmtCZWhhdmlvciBjb3JlKFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yIGVkaXRhYmxl
TGlua0JlaGF2aW9yKQogICAgIHJldHVybiBFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3I7CiB9
CiAKK1dlYkNvcmU6OkVkaXRpbmdCZWhhdmlvciBjb3JlKFdlYktpdEVkaXRpbmdCZWhhdmlvcikK
K3sKKyAgICBzd2l0Y2ggKGJlaGF2aW9yKSB7CisgICAgICAgIGNhc2UgV2ViS2l0RWRpdGluZ01h
Y0JlaGF2aW9yOgorICAgICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRpbmdNYWNCZWhhdmlv
cjsKKyAgICAgICAgY2FzZSBXZWJLaXRFZGl0aW5nV2luZG93c0JlaGF2aW9yOgorICAgICAgICAg
ICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRpbmdXaW5kb3dzQmVoYXZpb3I7CisgICAgfQorICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBXZWJLaXRFZGl0aW5nTWFjQmVoYXZpb3I7
Cit9CisKIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgY29yZShXZWJUZXh0
RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yIGJlaGF2aW9yKQogewogICAgIHN3aXRj
aCAoYmVoYXZpb3IpIHsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUlu
dGVybmFsLmggYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCmluZGV4IDRj
MWVlNDAuLjliMjI0OGEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUlu
dGVybmFsLmgKKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaApAQCAt
NzEsNiArNzEsNyBAQCBXZWJWaWV3ICpraXQoV2ViQ29yZTo6UGFnZSopOwogCiBXZWJDb3JlOjpF
ZGl0YWJsZUxpbmtCZWhhdmlvciBjb3JlKFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yKTsKIFdl
YkNvcmU6OlRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgY29yZShXZWJUZXh0
RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKTsKK1dlYkNvcmU6OkVkaXRpbmdCZWhh
dmlvciBjb3JlKFdlYktpdEVkaXRpbmdCZWhhdmlvcik7CiAKIFdlYlZpZXcgKmdldFdlYlZpZXco
V2ViRnJhbWUgKndlYkZyYW1lKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oCmluZGV4IGY0YWUzMzMuLjRjMjJmNTkgMTAwNjQ0Ci0tLSBhL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTEwNCw2ICsxMDQsNyBAQAog
I2RlZmluZSBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvclByZWZlcmVuY2VLZXkgQCJXZWJLaXRF
ZGl0YWJsZUxpbmtCZWhhdmlvciIKICNkZWZpbmUgV2ViS2l0Q2FjaGVNb2RlbFByZWZlcmVuY2VL
ZXkgQCJXZWJLaXRDYWNoZU1vZGVsUHJlZmVyZW5jZUtleSIKICNkZWZpbmUgV2ViS2l0VGV4dERp
cmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvclByZWZlcmVuY2VLZXkgQCJXZWJLaXRUZXh0
RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yUHJlZmVyZW5jZUtleSIKKyNkZWZpbmUg
V2ViS2l0RWRpdGluZ0JlaGF2aW9yUHJlZmVyZW5jZUtleSBAIldlYktpdEVkaXRpbmdCZWhhdmlv
ciIKIAogLy8gQ29yZUdyYXBoaWNzIGRlZmVycmVkIHVwZGF0ZXMgYXJlIGRpc2FibGVkIGlmIFdl
YktpdEVuYWJsZUNvYWxlc2NlZFVwZGF0ZXNQcmVmZXJlbmNlS2V5IGlzIHNldAogLy8gdG8gTk8s
IG9yIGhhcyBubyB2YWx1ZS4gIEZvciBjb21wYXRpYmlsaXR5IHdpdGggTWFjIE9TIFggMTAuNC42
LCBkZWZlcnJlZCB1cGRhdGVzIGFyZSBPRkYgYnkKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNl
cy5tbQppbmRleCA5ZGU4NDk1Li42OTJhNmFmIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzLm1tCkBAIC0zMzQsNiArMzM0LDcgQEAgc3RhdGljIFdlYkNhY2hlTW9kZWwgY2FjaGVNb2Rl
bEZvck1haW5CdW5kbGUodm9pZCkKICAgICAgICAgQCIwIiwgICAgICAgICAgICAgICAgICAgICAg
ICAgICBXZWJLaXRQREZTY2FsZUZhY3RvclByZWZlcmVuY2VLZXksCiAgICAgICAgIEAiMCIsICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VXNlU2l0ZVNwZWNpZmljU3Bvb2ZpbmdQcmVm
ZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpXZWJLaXRFZGl0YWJs
ZUxpbmtEZWZhdWx0QmVoYXZpb3JdLCBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvclByZWZlcmVu
Y2VLZXksCisgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OldlYkVkaXRpbmdNYWNCZWhh
dmlvcl0sIFdlYktpdEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXksCiAjaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCiAgICAg
ICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OldlYlRleHREaXJlY3Rpb25TdWJtZW51QXV0b21h
dGljYWxseUluY2x1ZGVkXSwKICNlbHNlCkBAIC0xMjM3LDYgKzEyMzgsMTYgQEAgc3RhdGljIE5T
U3RyaW5nICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6
ZmxhZyBmb3JLZXk6V2ViS2l0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOwog
fQogCistIChXZWJFZGl0aW5nQmVoYXZpb3IpZWRpdGluZ0JlaGF2aW9yCit7CisgICAgcmV0dXJu
IHN0YXRpY19jYXN0PFdlYktpdEVkaXRpbmdCZWhhdmlvcj4gKFtzZWxmIF9pbnRlZ2VyVmFsdWVG
b3JLZXk6V2ViS2l0RWRpdGluZ0JlaGF2aW9yUHJlZmVyZW5jZUtleV0pOworfQorCistICh2b2lk
KXNldEVkaXRpbmdCZWhhdmlvcjooV2ViRWRpdGluZ0JlaGF2aW9yKWJlaGF2aW9yCit7CisgICAg
W3NlbGYgX3NldEludGVnZXJWYWx1ZTpiZWhhdmlvciBmb3JLZXk6V2ViS2l0RWRpdGluZ0JlaGF2
aW9yUHJlZmVyZW5jZUtleV07Cit9CisKIC0gKHZvaWQpZGlkUmVtb3ZlRnJvbVdlYlZpZXcKIHsK
ICAgICBBU1NFUlQoX3ByaXZhdGUtPm51bVdlYlZpZXdzKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCBlZTc4NWU5Li43NmE0MTU0IDEwMDY0NAotLS0g
YS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC00Myw2ICs0MywxMSBAQCB0
eXBlZGVmIGVudW0gewogICAgIFdlYlRleHREaXJlY3Rpb25TdWJtZW51QWx3YXlzSW5jbHVkZWQK
IH0gV2ViVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjsKIAordHlwZWRlZiBl
bnVtIHsKKyAgICBXZWJLaXRFZGl0aW5nTWFjQmVoYXZpb3IsCisgICAgV2ViS2l0RWRpdGluZ1dp
bmRvd3NCZWhhdmlvciwKK30gV2ViS2l0RWRpdGluZ0JlaGF2aW9yOworCiBleHRlcm4gTlNTdHJp
bmcgKldlYlByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbjsKIGV4dGVybiBOU1N0cmluZyAq
V2ViUHJlZmVyZW5jZXNSZW1vdmVkTm90aWZpY2F0aW9uOwogCkBAIC0xMjksNiArMTM0LDkgQEAg
ZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc1JlbW92ZWROb3RpZmljYXRpb247CiAtIChX
ZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvcillZGl0YWJsZUxpbmtCZWhhdmlvcjsKIC0gKHZvaWQp
c2V0RWRpdGFibGVMaW5rQmVoYXZpb3I6KFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yKWJlaGF2
aW9yOwogCistIChXZWJFZGl0aW5nQmVoYXZpb3IpZWRpdGluZ0JlaGF2aW9yOworLSAodm9pZClz
ZXRFZGl0aW5nQmVoYXZpb3I6KFdlYkVkaXRpbmdCZWhhdmlvciliZWhhdmlvcjsKKwogLSAoV2Vi
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcil0ZXh0RGlyZWN0aW9uU3VibWVu
dUluY2x1c2lvbkJlaGF2aW9yOwogLSAodm9pZClzZXRUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1
c2lvbkJlaGF2aW9yOihXZWJUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKWJl
aGF2aW9yOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IDQ4MTg2OTEuLmViNWM2NmIgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJWaWV3Lm1tCkBAIC0xMzIxLDYgKzEzMjEsNyBAQCBzdGF0aWMgYm9vbCBmYXN0RG9j
dW1lbnRUZWFyZG93bkVuYWJsZWQoKQogICAgIHNldHRpbmdzLT5zZXRUZXh0QXJlYXNBcmVSZXNp
emFibGUoW3ByZWZlcmVuY2VzIHRleHRBcmVhc0FyZVJlc2l6YWJsZV0pOwogICAgIHNldHRpbmdz
LT5zZXRTaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KFtwcmVmZXJlbmNlcyBzaHJpbmtzU3Rh
bmRhbG9uZUltYWdlc1RvRml0XSk7CiAgICAgc2V0dGluZ3MtPnNldEVkaXRhYmxlTGlua0JlaGF2
aW9yKGNvcmUoW3ByZWZlcmVuY2VzIGVkaXRhYmxlTGlua0JlaGF2aW9yXSkpOworICAgIHNldHRp
bmdzLT5zZXRFZGl0aW5nQmVoYXZpb3IoY29yZShbcHJlZmVyZW5jZXMgZWRpdGluZ0JlaGF2aW9y
XSkpOwogICAgIHNldHRpbmdzLT5zZXRUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2
aW9yKGNvcmUoW3ByZWZlcmVuY2VzIHRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZp
b3JdKSk7CiAgICAgc2V0dGluZ3MtPnNldERPTVBhc3RlQWxsb3dlZChbcHJlZmVyZW5jZXMgaXNE
T01QYXN0ZUFsbG93ZWRdKTsKICAgICBzZXR0aW5ncy0+c2V0VXNlc1BhZ2VDYWNoZShbc2VsZiB1
c2VzUGFnZUNhY2hlXSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktp
dC93aW4vQ2hhbmdlTG9nCmluZGV4IGU3NzEzY2UuLmU1ZTY3MDUgMTAwNjQ0Ci0tLSBhL1dlYktp
dC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEg
QEAKKzIwMTAtMDUtMDUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSB0
aGUgZWRpdGluZyBiZWhhdmlvciBzZXR0aW5nIGluIERSVCB0byB0ZXN0IGFsbCBlZGl0aW5nIGNv
ZGUgcGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM4NjAzCisKKyAgICAgICAgRXhwb3NlIHRoZSBFZGl0aW5nQmVoYXZpb3Igc2V0dGluZyBpbiB0
aGUgV2luZG93cyBBUEkuCisKKyAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5p
ZGw6IEFkZCB0aGUgQVBJIHBvaW50IGZvciBzZXR0aW5nIHRoZSBlZGl0aW5nIGJlaGF2aW9yLgor
ICAgICAgICAqIFdlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOiBBZGQgYSBrZXkgZm9yIHRoZSBl
ZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcuCisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOgor
ICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OmVkaXRpbmdCZWhhdmlvcik6IEFkZGVkLgorICAgICAg
ICAoV2ViUHJlZmVyZW5jZXM6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZGVkLgorICAgICAgICAq
IFdlYlByZWZlcmVuY2VzLmg6IEFkZCBtZXRob2QgZGVjbGFyYXRpb25zLgorICAgICAgICAqIFdl
YlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKTog
VXBkYXRlIHRoZSBXZWJDb3JlIHNldHRpbmcgYmFzZWQgb24gdGhlIFdlYlByZWZlcmVuY2VzIHNl
dHRpbmcuCisKIDIwMTAtMDUtMDUgIFN0dWFydCBNb3JnYW4gIDxzdHVhcnRtb3JnYW5AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBh
L1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXMuaWRsIGIvV2ViS2l0L3dpbi9J
bnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGwKaW5kZXggMWM0MzEzNS4uZmYzMGEwMyAxMDA2
NDQKLS0tIGEvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGwKKysrIGIv
V2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGwKQEAgLTQ3LDYgKzQ3LDEy
IEBAIHR5cGVkZWYgZW51bSBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciB7CiAgICAgV2ViS2l0
RWRpdGFibGVMaW5rTmV2ZXJMaXZlCiB9IFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yOwogCit0
eXBlZGVmIGVudW0gV2ViS2l0RWRpdGluZ0JlaGF2aW9yIHsKKyAgICBXZWJLaXRFZGl0aW5nTWFj
QmVoYXZpb3IgPSAwLAorICAgIFdlYktpdEVkaXRpbmdXaW5kb3dzQmVoYXZpb3IsCit9IFdlYktp
dEVkaXRpbmdCZWhhdmlvcjsKKworCiB0eXBlZGVmIGVudW0gV2ViS2l0Q29va2llU3RvcmFnZUFj
Y2VwdFBvbGljeSB7CiAgICAgV2ViS2l0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeUFsd2F5cyA9
IDAsCiAgICAgV2ViS2l0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeU5ldmVyLApAQCAtMTYyLDYg
KzE2OCw5IEBAIGludGVyZmFjZSBJV2ViUHJlZmVyZW5jZXMgOiBJVW5rbm93bgogICAgIEhSRVNV
TFQgZWRpdGFibGVMaW5rQmVoYXZpb3IoW291dCwgcmV0dmFsXSBXZWJLaXRFZGl0YWJsZUxpbmtC
ZWhhdmlvciogZWRpdGFibGVMaW5rQmVoYXZpb3IpOwogICAgIEhSRVNVTFQgc2V0RWRpdGFibGVM
aW5rQmVoYXZpb3IoW2luXSBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciBiZWhhdmlvcik7CiAK
KyAgICBIUkVTVUxUIGVkaXRpbmdCZWhhdmlvcihbb3V0LCByZXR2YWxdIFdlYktpdEVkaXRpbmdC
ZWhhdmlvciogZWRpdGluZ0JlaGF2aW9yKTsKKyAgICBIUkVTVUxUIHNldEVkaXRpbmdCZWhhdmlv
cihbaW5dIFdlYktpdEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcik7CisKICAgICBIUkVTVUxUIGNv
b2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3koW291dCwgcmV0dmFsXSBXZWJLaXRDb29raWVTdG9yYWdl
QWNjZXB0UG9saWN5KiBhY2NlcHRQb2xpY3kpOwogICAgIEhSRVNVTFQgc2V0Q29va2llU3RvcmFn
ZUFjY2VwdFBvbGljeShbaW5dIFdlYktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kgYWNjZXB0
UG9saWN5KTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZh
dGUuaCBiL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggYzQ5YTk2
ZC4uZGE2Mzc1NCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZh
dGUuaAorKysgYi9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC03NCw2
ICs3NCw3IEBACiAjZGVmaW5lIFdlYktpdFBERkRpc3BsYXlNb2RlUHJlZmVyZW5jZUtleSAiV2Vi
S2l0UERGRGlzcGxheU1vZGUiCiAjZGVmaW5lIFdlYktpdFBERlNjYWxlRmFjdG9yUHJlZmVyZW5j
ZUtleSAiV2ViS2l0UERGU2NhbGVGYWN0b3IiCiAjZGVmaW5lIFdlYktpdEVkaXRhYmxlTGlua0Jl
aGF2aW9yUHJlZmVyZW5jZUtleSAiV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IiCisjZGVmaW5l
IFdlYktpdEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXkgIldlYktpdEVkaXRpbmdCZWhhdmlv
ciIKIAogLy8gV2luZG93IGRpc3BsYXkgaXMgdGhyb3R0bGVkIHRvIDYwIGZyYW1lcyBwZXIgc2Vj
b25kIGlmIFdlYktpdFRocm90dGxlV2luZG93RGlzcGxheVByZWZlcmVuY2VLZXkKIC8vIGlzIHNl
dCB0byBZRVMuICBUaGUgd2luZG93IGRpc3BsYXkgdGhyb3R0bGUgaXMgT0ZGIGJ5IGRlZmF1bHQg
Zm9yIGNvbXBhdGliaWxpdHkgd2l0aCBNYWMgT1MgWApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9X
ZWJQcmVmZXJlbmNlcy5jcHAgYi9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCAz
M2U5MDRkLi4zZTdlYTQyIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNw
cAorKysgYi9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcApAQCAtMTEzMCw2ICsxMTMwLDIx
IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViUHJlZmVyZW5jZXM6OnNldEVkaXRhYmxl
TGlua0JlaGF2aW9yKAogICAgIHJldHVybiBTX09LOwogfQogCitIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIFdlYlByZWZlcmVuY2VzOjplZGl0aW5nQmVoYXZpb3IoCisgICAgLyogW291dCwgcmV0
dmFsXSAqLyBXZWJLaXRFZGl0aW5nQmVoYXZpb3IqIGVkaXRpbmdCZWhhdmlvcikKK3sKKyAgICAq
ZWRpdGluZ0JlaGF2aW9yID0gKFdlYktpdEVkaXRpbmdCZWhhdmlvcikgaW50ZWdlclZhbHVlRm9y
S2V5KENGU1RSKFdlYktpdEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXkpKTsKKyAgICByZXR1
cm4gU19PSzsKK30KKworSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6
c2V0RWRpdGluZ0JlaGF2aW9yKAorICAgIC8qIFtpbl0gKi8gV2ViS2l0RWRpdGFibGVMaW5rQmVo
YXZpb3IgYmVoYXZpb3IpCit7CisgICAgc2V0SW50ZWdlclZhbHVlKENGU1RSKFdlYktpdEVkaXRp
bmdCZWhhdmlvclByZWZlcmVuY2VLZXkpLCBiZWhhdmlvcik7CisgICAgcmV0dXJuIFNfT0s7Cit9
CisKKwogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6Y29va2llU3Rv
cmFnZUFjY2VwdFBvbGljeSggCiAgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gV2ViS2l0Q29v
a2llU3RvcmFnZUFjY2VwdFBvbGljeSAqYWNjZXB0UG9saWN5ICkKIHsKZGlmZiAtLWdpdCBhL1dl
YktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaCBiL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaApp
bmRleCBjZmRlZmE4Li4xZWE2OWM3IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYlByZWZlcmVu
Y2VzLmgKKysrIGIvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCkBAIC0yMzgsNiArMjM4LDEy
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0RWRp
dGFibGVMaW5rQmVoYXZpb3IoIAogICAgICAgICAvKiBbaW5dICovIFdlYktpdEVkaXRhYmxlTGlu
a0JlaGF2aW9yIGJlaGF2aW9yKTsKIAorICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBlZGl0aW5nQmVoYXZpb3IoCisgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gV2ViS2l0
RWRpdGluZ0JlaGF2aW9yKiBiZWhhdmlvcik7CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgc2V0RWRpdGluZ0JlaGF2aW9yKAorICAgICAgICAvKiBbaW5dICovIFdlYktp
dEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcik7CisKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgY29va2llU3RvcmFnZUFjY2VwdFBvbGljeSggCiAgICAgICAgIC8qIFtyZXR2
YWxdW291dF0gKi8gV2ViS2l0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeSAqYWNjZXB0UG9saWN5
KTsKICAgICAgICAgCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvV2ViS2l0
L3dpbi9XZWJWaWV3LmNwcAppbmRleCAyNDhlM2NkLi4yNmEwNDA5IDEwMDY0NAotLS0gYS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTQ1ODYs
NiArNDU4NiwxMiBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJ
V2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAgICAgIHJldHVybiBocjsKICAgICBz
ZXR0aW5ncy0+c2V0RWRpdGFibGVMaW5rQmVoYXZpb3IoKEVkaXRhYmxlTGlua0JlaGF2aW9yKWJl
aGF2aW9yKTsKIAorICAgIFdlYktpdEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcjsKKyAgICBociA9
IHByZWZlcmVuY2VzLT5lZGl0aW5nQmVoYXZpb3IoJmJlaGF2aW9yKTsKKyAgICBpZiAoRkFJTEVE
KGhyKSkKKyAgICAgICAgcmV0dXJuIGhyOworICAgIHNldHRpbmdzLT5zZXRFZGl0aW5nQmVoYXZp
b3IoKEVkaXRpbmdCZWhhdmlvciliZWhhdmlvcik7CisKICAgICBociA9IHByZWZlcmVuY2VzLT51
c2VzUGFnZUNhY2hlKCZlbmFibGVkKTsKICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0
dXJuIGhyOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDBjZTI1MzUuLjU4Y2VlZjYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAor
MjAxMC0wNS0wNSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRoZSBl
ZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcgaW4gRFJUIHRvIHRlc3QgYWxsIGVkaXRpbmcgY29kZSBw
YXRocworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2
MDMKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKHNldEVkaXRpbmdCZWhhdmlvckNhbGxiYWNrKTogQWRkZWQuCisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKTogRXhwb3NlIHRoZSBzZXRFZGl0
aW5nQmVoYXZpb3JDYWxsYmFjayBmdW5jdGlvbi4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcDogQWRkIGNhbGxiYWNrIG1ldGhvZCBmb3Igc2V0dGlu
ZyBlZGl0aW5nIGJlaGF2aW9yLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmg6IERlY2xhcmF0aW9uIGZvciB0aGlzIG1ldGhvZC4KKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOiAKKyAg
ICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBJbXBsZW1l
bnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IERpdHRvCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHA6CisgICAgICAgIChMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTogQWRkZWQgc3R1YiBpbXBsZW1lbnRh
dGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJl
ZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IEltcGxlbWVudGF0aW9uIG9mIGVkaXRpbmcg
YmVoYXZpb3IgY29udHJvbC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0
Q29udHJvbGxlcld4LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0
aW5nQmVoYXZpb3IpOiBBZGRlZCBzdHViIGltcGxlbWVudGF0aW9uIG9mIGVkaXRpbmcgYmVoYXZp
b3IgY29udHJvbAorCiAyMDEwLTA1LTA0ICBFcmljIFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBTaGluaWNoaXJvIEhhbWFqaS4KZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCBiNGI1
YmYyLi41ZDBmMmU0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5
b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNDQxLDYgKzE0NDEsMjEgQEAgc3RhdGljIEpTVmFs
dWVSZWYgYXV0aGVudGljYXRlU2Vzc2lvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiwKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9
CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIHNldEVkaXRpbmdCZWhhdmlvckNhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVj
dCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpT
VmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICAvLyBUaGUgZWRpdGluZyBiZWhhdmlvciBzdHJp
bmcuCisgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1h
a2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gZWRp
dGluZ0JlaGF2aW9yKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50
c1swXSwgZXhjZXB0aW9uKSk7CisgICAgQVNTRVJUKCEqZXhjZXB0aW9uKTsKKworICAgIExheW91
dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRy
b2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXIt
PnNldEVkaXRpbmdCZWhhdmlvcihlZGl0aW5nQmVoYXZpb3IuZ2V0KCkpOworCisgICAgcmV0dXJu
IEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCiAvLyBTdGF0aWMgVmFsdWVzCiAK
IHN0YXRpYyBKU1ZhbHVlUmVmIGdldEdsb2JhbEZsYWdDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pCkBAIC0xNTkwLDYgKzE2MDUsNyBAQCBKU1N0YXRpY0Z1bmN0
aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAi
c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUiLCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZUNhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgInNldERhdGFiYXNlUXVvdGEiLCBzZXREYXRhYmFzZVF1b3Rh
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwgCiAgICAgICAgIHsgInNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRk
ZW5Gb3JVUkxTY2hlbWUiLCBzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1l
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2V0RWRpdGluZ0JlaGF2aW9yIiwgc2V0RWRp
dGluZ0JlaGF2aW9yQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0RnJhbWVGbGF0dGVu
aW5nRW5hYmxlZCIsIHNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24iLCBzZXRHZW9sb2NhdGlvblBlcm1p
c3Npb25DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRIYW5kbGVzQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VzIiwgc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlc0NhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuaAppbmRleCAwOGY5NjkyLi43MjY2ZjBhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTk4LDYgKzk4LDcgQEAg
cHVibGljOgogICAgIHZvaWQgc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChib29sIGVuYWJsZSk7
CiAgICAgdm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbCBlbmFibGUpOwogICAg
IHZvaWQgc2V0U2Nyb2xsYmFyUG9saWN5KEpTU3RyaW5nUmVmIG9yaWVudGF0aW9uLCBKU1N0cmlu
Z1JlZiBwb2xpY3kpOworICAgIHZvaWQgc2V0RWRpdGluZ0JlaGF2aW9yKEpTU3RyaW5nUmVmIGVk
aXRpbmdCZWhhdmlvcik7CiAKICAgICB2b2lkIHdhaXRGb3JQb2xpY3lEZWxlZ2F0ZSgpOwogICAg
IHNpemVfdCB3ZWJIaXN0b3J5SXRlbUNvdW50KCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5k
ZXggMjFiMTY4Yy4uYzk3ZWM1YiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTQ4LDYg
KzE0OCw3IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0
U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoInNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxl
ZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKTsK
ICAgICBiaW5kTWV0aG9kKCJldmFsdWF0ZUluV2ViSW5zcGVjdG9yIiwgJkxheW91dFRlc3RDb250
cm9sbGVyOjpldmFsdWF0ZUluV2ViSW5zcGVjdG9yKTsKICAgICBiaW5kTWV0aG9kKCJmb3JjZVJl
ZFNlbGVjdGlvbkNvbG9ycyIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6Zm9yY2VSZWRTZWxlY3Rp
b25Db2xvcnMpOworICAgIGJpbmRNZXRob2QoInNldEVkaXRpbmdCZWhhdmlvciIsICZMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTsKIAogICAgIC8vIFRoZSBmYWxsYmFj
ayBtZXRob2QgaXMgY2FsbGVkIHdoZW4gYW4gdW5rbm93biBtZXRob2QgaXMgaW52b2tlZC4KICAg
ICBiaW5kRmFsbGJhY2tNZXRob2QoJkxheW91dFRlc3RDb250cm9sbGVyOjpmYWxsYmFja01ldGhv
ZCk7CkBAIC0xMTg3LDMgKzExODgsMTQgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRk
VXNlclNjcmlwdChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmEKICAgICAg
ICAgcmV0dXJuOwogICAgIG1fc2hlbGwtPndlYlZpZXcoKS0+YWRkVXNlclNjcmlwdChXZWJTdHJp
bmc6OmZyb21VVEY4KGFyZ3VtZW50c1swXS50b1N0cmluZygpKSwgYXJndW1lbnRzWzFdLnRvQm9v
bGVhbigpKTsKIH0KKwordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2
aW9yKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKK3sKKyAgICBXZWJTZXR0
aW5ncyogc2V0dGluZ3MgPSBtX3NoZWxsLT53ZWJWaWV3KCktPnNldHRpbmdzKCk7CisgICAgc3Ry
aW5nIGtleSA9IGFyZ3VtZW50c1swXS50b1N0cmluZygpOworICAgIGlmIChrZXkgPT0gIm1hYyIp
CisgICAgICAgIHNldHRpbmdzLT5zZXRFZGl0aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yTWFj
KTsKKworICAgIGlmIChrZXkgPT0gIndpbmRvd3MiKQorICAgICAgICBzZXR0aW5ncy0+c2V0RWRp
dGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvcldpbmRvd3MpOworfQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmgKaW5kZXggY2E4YjAxNC4uZjllZDhjYyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0xOTUs
NiArMTk1LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBkdW1wU2VsZWN0aW9uUmVjdChjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKKyAgICB2b2lkIHNldEVkaXRpbmdCZWhh
dmlvcihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisKICAgICAvLyBUaGUg
Zm9sbG93aW5nIGFyZSBvbmx5IHN0dWJzLiAgVE9ETyhwYW1nKTogSW1wbGVtZW50IGFueSBvZiB0
aGVzZSB0aGF0CiAgICAgLy8gYXJlIG5lZWRlZCB0byBwYXNzIHRoZSBsYXlvdXQgdGVzdHMuCiAg
ICAgdm9pZCBkdW1wQXNXZWJBcmNoaXZlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlh
bnQqKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRU
ZXN0Q29udHJvbGxlckd0ay5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5
b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IGNiYmE3Y2UuLjBhMjBiY2MgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0
ay5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250
cm9sbGVyR3RrLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3Jl
L0pTUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTdHJpbmdSZWYuaD4K
IAorI2luY2x1ZGUgPGNzdHJpbmc+CiAjaW5jbHVkZSA8aW9zdHJlYW0+CiAjaW5jbHVkZSA8c3N0
cmVhbT4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtNjg4LDMgKzY4OSwxNiBAQCBKU1JldGFpblB0
cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6Om1hcmtlclRleHRGb3JMaXN0SXRl
bShKU0NvbnRleHRSZQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXV0aGVudGljYXRlU2Vz
c2lvbihKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmKQogewogfQorCit2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IoSlNTdHJpbmdSZWYgZWRp
dGluZ0JlaGF2aW9yKQoreworICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSB3ZWJraXRfd2Vi
X2ZyYW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUpOworICAgIFdlYktpdFdlYlNldHRpbmdzKiBz
ZXR0aW5ncyA9IHdlYmtpdF93ZWJfdmlld19nZXRfc2V0dGluZ3Mod2ViVmlldyk7CisKKyAgICBj
aGFyKiBlZGl0aW5nQmVoYXZpb3JTdHJpbmcgPSBKU1N0cmluZ0NvcHlVVEY4Q1N0cmluZyhlZGl0
aW5nQmVoYXZpb3IpOworICAgIGlmICghc3RyY21wKGVkaXRpbmdCZWhhdmlvclN0cmluZywgIndp
bmRvd3MiKSkKKyAgICAgICAgZ19vYmplY3Rfc2V0KEdfT0JKRUNUKHNldHRpbmdzKSwgImVkaXRp
bmctYmVoYXZpb3IiLCBXRUJLSVRfRURJVElOR19CRUhBVklPUl9XSU5ET1dTLCBOVUxMKTsKKyAg
ICBpZiAoIXN0cmNtcChlZGl0aW5nQmVoYXZpb3JTdHJpbmcsICJtYWMiKSkKKyAgICAgICAgZ19v
YmplY3Rfc2V0KEdfT0JKRUNUKHNldHRpbmdzKSwgImVkaXRpbmctYmVoYXZpb3IiLCBXRUJLSVRf
RURJVElOR19CRUhBVklPUl9NQUMsIE5VTEwpOworICAgIGdfZnJlZShlZGl0aW5nQmVoYXZpb3JT
dHJpbmcpOworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xh
eW91dFRlc3RDb250cm9sbGVyTWFjLm1tIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFj
L0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCmluZGV4IDNiMDNhZWMuLjc5NzQ5Y2IgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxl
ck1hYy5tbQorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENv
bnRyb2xsZXJNYWMubW0KQEAgLTgzNSwzICs4MzUsMTIgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6YXV0aGVudGljYXRlU2Vzc2lvbihKU1N0cmluZ1JlZiB1cmwsIEpTU3RyaW5nUmVmIHVz
ZXIKICAgICBbU3luY2hyb25vdXNMb2FkZXIgbWFrZVJlcXVlc3Q6cmVxdWVzdCB3aXRoVXNlcm5h
bWU6KE5TU3RyaW5nICopdXNlcm5hbWVDRi5nZXQoKSBwYXNzd29yZDooTlNTdHJpbmcgKilwYXNz
d29yZENGLmdldCgpXTsKICNlbmRpZgogfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpz
ZXRFZGl0aW5nQmVoYXZpb3IoSlNTdHJpbmdSZWYgZWRpdGluZ0JlaGF2aW9yKQoreworICAgIFJl
dGFpblB0cjxDRlN0cmluZ1JlZj4gZWRpdGluZ0JlaGF2aW9yQ0YoQWRvcHRDRiwgSlNTdHJpbmdD
b3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZWRpdGluZ0JlaGF2aW9yKSk7CisgICAg
aWYgKFsoTlNTdHJpbmcgKillZGl0aW5nQmVoYXZpb3JDRi5nZXQoKSBpc0VxdWFsVG9TdHJpbmc6
QCJtYWMiXSkKKyAgICAgICAgW1tXZWJQcmVmZXJlbmNlcyBzdGFuZGFyZFByZWZlcmVuY2VzXSBz
ZXRFZGl0aW5nQmVoYXZpb3I6V2ViS2l0RWRpdGluZ01hY0JlaGF2aW9yXTsKKyAgICBpZiAoWyhO
U1N0cmluZyAqKWVkaXRpbmdCZWhhdmlvckNGLmdldCgpIGlzRXF1YWxUb1N0cmluZzpAIndpbmRv
d3MiXSkKKyAgICAgICAgW1tXZWJQcmVmZXJlbmNlcyBzdGFuZGFyZFByZWZlcmVuY2VzXSBzZXRF
ZGl0aW5nQmVoYXZpb3I6V2ViS2l0RWRpdGluZ01hY0JlaGF2aW9yXTsKK30KZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3Bw
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5j
cHAKaW5kZXggOTc3MDk2ZC4uZjQ1MGYwNCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKKysrIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKQEAgLTYyNCw2ICs2
MjQsMTEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXV0aGVudGljYXRlU2Vzc2lvbihj
b25zdCBRU3RyaW5nJiwgY29uc3QgUVN0cmluZyYsIGMKICAgICAvLyBGSVhNRTogSWYgdGhlcmUg
aXMgYSBjb25jZXB0IHBlci1zZXNzaW9uIChwZXItcHJvY2VzcykgY3JlZGVudGlhbCBzdG9yYWdl
LCB0aGUgY3JlZGVudGlhbHMgc2hvdWxkIGJlIGFkZGVkIHRvIGl0IGZvciBsYXRlciB1c2UuCiB9
CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcihjb25zdCBR
U3RyaW5nJiBlZGl0aW5nQmVoYXZpb3IpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudC4KK30K
KwogCiBjb25zdCB1bnNpZ25lZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bWF4Vmlld1dpZHRoID0g
ODAwOwogY29uc3QgdW5zaWduZWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om1heFZpZXdIZWlnaHQg
PSA2MDA7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0LmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0LmgKaW5kZXggYjEzZjJhZC4uOGU3MTFiOSAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCisrKyBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaApA
QCAtMTg5LDYgKzE4OSw4IEBAIHB1YmxpYyBzbG90czoKICAgICAvLyBTaW11bGF0ZSBhIHJlcXVl
c3QgYW4gZW1iZWRkaW5nIGFwcGxpY2F0aW9uIGNvdWxkIG1ha2UsIHBvcHVsYXRpbmcgcGVyLXNl
c3Npb24gY3JlZGVudGlhbCBzdG9yYWdlLgogICAgIHZvaWQgYXV0aGVudGljYXRlU2Vzc2lvbihj
b25zdCBRU3RyaW5nJiB1cmwsIGNvbnN0IFFTdHJpbmcmIHVzZXJuYW1lLCBjb25zdCBRU3RyaW5n
JiBwYXNzd29yZCk7CiAKKyAgICB2b2lkIHNldEVkaXRpbmdCZWhhdmlvcihjb25zdCBRU3RyaW5n
JiBlZGl0aW5nQmVoYXZpb3IpOworCiBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQgcHJvY2Vzc1dv
cmsoKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91
dFRlc3RDb250cm9sbGVyV2luLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9M
YXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKaW5kZXggZDg4OWNmYy4uODYwZWZkZiAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVy
V2luLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENv
bnRyb2xsZXJXaW4uY3BwCkBAIC0xMjYyLDMgKzEyNjIsMjAgQEAgdm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0V2ViVmlld0VkaXRhYmxlKGJvb2wpCiB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjphdXRoZW50aWNhdGVTZXNzaW9uKEpTU3RyaW5nUmVmLCBKU1N0cmluZ1JlZiwgSlNTdHJp
bmdSZWYpCiB7CiB9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhh
dmlvcihKU1N0cmluZ1JlZiBlZGl0aW5nQmVoYXZpb3IpCit7CisgICAgQ09NUHRyPElXZWJWaWV3
PiB3ZWJWaWV3OworICAgIGlmIChGQUlMRUQoZnJhbWUtPndlYlZpZXcoJndlYlZpZXcpKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgQ09NUHRyPElXZWJQcmVmZXJlbmNlcz4gcHJlZmVyZW5jZXM7
CisgICAgaWYgKEZBSUxFRCh3ZWJWaWV3LT5wcmVmZXJlbmNlcygmcHJlZmVyZW5jZXMpKSkKKyAg
ICAgICAgcmV0dXJuOworCisgICAgd3N0cmluZyBiZWhhdmlvcldzdHJpbmcgPSBqc1N0cmluZ1Jl
ZlRvV1N0cmluZyhlZGl0aW5nQmVoYXZpb3IpOworICAgIGlmIChiZWhhdmlvcldzdHJpbmcgPT0g
TCJtYWMiKQorICAgICAgICBwcmVmZXJlbmNlcy0+c2V0RWRpdGluZ0JlaGF2aW9yKFdlYktpdEVk
aXRpbmdNYWNCZWhhdmlvcik7CisgICAgaWYgKGJlaGF2aW9yV3N0cmluZyA9PSBMIndpbmRvd3Mi
KQorICAgICAgICBwcmVmZXJlbmNlcy0+c2V0RWRpdGluZ0JlaGF2aW9yKFdlYktpdEVkaXRpbmdX
aW5kb3dzQmVoYXZpb3IpOworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAppbmRleCA0NjE0YWNhLi5iODJhMTcx
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29u
dHJvbGxlcld4LmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRU
ZXN0Q29udHJvbGxlcld4LmNwcApAQCAtNDQxLDMgKzQ0MSw4IEBAIEpTVmFsdWVSZWYgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mbyhKU0NvbnRl
eHRSZWYsCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphdXRoZW50aWNhdGVTZXNzaW9uKEpT
U3RyaW5nUmVmLCBKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYpCiB7CiB9CisKK3ZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcihKU1N0cmluZ1JlZiBlZGl0aW5nQmVo
YXZpb3IpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudAorfQotLSAKMS42LjMuMwoK
</data>
<flag name="commit-queue"
          id="39316"
          type_id="3"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55192</attachid>
            <date>2010-05-05 19:00:37 -0700</date>
            <delta_ts>2010-05-06 08:10:08 -0700</delta_ts>
            <desc>Previous patch with build fix for Mac</desc>
            <filename>0001-Expose-the-editing-behavior-setting-in-DRT-to-test-a.patch</filename>
            <type>text/plain</type>
            <size>34848</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">RnJvbSBkNGNkNjMwNDEyYTBlNTE0ZDlmYjEzMDgxNDg2ODcxNmRkOGQ2Y2E5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gUm9iaW5zb24gPG1yb2JpbnNvbkB3ZWJraXQub3Jn
PgpEYXRlOiBXZWQsIDUgTWF5IDIwMTAgMTY6MTg6NTkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBF
eHBvc2UgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRp
dGluZyBjb2RlIHBhdGhzCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzg2MDMKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKV2ViS2l0L2Nocm9taXVtOgoKRXhw
b3NlIHRoZSBFZGl0aW5nQmVoYXZpb3IgcHJlZmVyZW5jZSBpbiB0aGUgQ2hyb21pdW0gQVBJLgoK
KiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKFdlYktpdDo6V2ViU2V0dGluZ3M6Oik6IEFkZGVkIGFu
IGVudW0gZm9yIEVkaXRpbmdCZWhhdmlvciB0eXBlcy4KKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNw
cDoKKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGRlZC4K
KiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CgpXZWJLaXQvbWFjOgoKRXhwb3NlIHRoZSBFZGl0aW5n
QmVoYXZpb3Igc2V0dGluZyBpbiB0aGUgTWFjIEFQSS4KCiogV2ViVmlldy9XZWJGcmFtZS5tbToK
KGNvcmUpOgoqIFdlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oOiBBZGRlZCBhIGNvbnZlcnNpb24g
bWV0aG9kIGZyb20gdGhlIEFQSSBlbnVtIHRvIHRoZSBXZWJDb3JlIGVudW0uCiogV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogQWRkZWQgYSBwcmVmZXJlbmNlIGtleSBmb3IgdGhl
IG5ldyBzZXR0aW5nLgoqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CigrW1dlYlByZWZlcmVu
Y2VzIGluaXRpYWxpemVdKTogSW5pdGlhbGl6ZSB0aGUgRWRpdGluZ0JlaGF2aW9yIHRvIE1hYyBz
dHlsZS4KKC1bV2ViUHJlZmVyZW5jZXMgZWRpdGluZ0JlaGF2aW9yXSk6IEFkZGVkLgooLVtXZWJQ
cmVmZXJlbmNlcyBzZXRFZGl0aW5nQmVoYXZpb3I6XSk6IEFkZGVkLgoqIFdlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmg6IEFkZGVkIHRoZSBuZXcgQVBJIHBvaW50cyB0byB0aGUgcHJpdmF0
ZSBBUEkuCiogV2ViVmlldy9XZWJWaWV3Lm1tOgooLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5n
ZWROb3RpZmljYXRpb246XSk6IFNldCB0aGUgZWRpdGluZyBiZWhhdmlvciB2aWEgdGhlIFdlYlBy
ZWZlcmVuY2VzIHNldHRpbmcuCgpXZWJLaXQvd2luOgoKRXhwb3NlIHRoZSBFZGl0aW5nQmVoYXZp
b3Igc2V0dGluZyBpbiB0aGUgV2luZG93cyBBUEkuCgoqIEludGVyZmFjZXMvSVdlYlByZWZlcmVu
Y2VzLmlkbDogQWRkIHRoZSBBUEkgcG9pbnQgZm9yIHNldHRpbmcgdGhlIGVkaXRpbmcgYmVoYXZp
b3IuCiogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZCBhIGtleSBmb3IgdGhlIGVkaXRp
bmcgYmVoYXZpb3Igc2V0dGluZy4KKiBXZWJQcmVmZXJlbmNlcy5jcHA6CihXZWJQcmVmZXJlbmNl
czo6ZWRpdGluZ0JlaGF2aW9yKTogQWRkZWQuCihXZWJQcmVmZXJlbmNlczo6c2V0RWRpdGluZ0Jl
aGF2aW9yKTogQWRkZWQuCiogV2ViUHJlZmVyZW5jZXMuaDogQWRkIG1ldGhvZCBkZWNsYXJhdGlv
bnMuCiogV2ViVmlldy5jcHA6CihXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOiBV
cGRhdGUgdGhlIFdlYkNvcmUgc2V0dGluZyBiYXNlZCBvbiB0aGUgV2ViUHJlZmVyZW5jZXMgc2V0
dGluZy4KCldlYktpdFRvb2xzOgoKKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHA6CihzZXRFZGl0aW5nQmVoYXZpb3JDYWxsYmFjayk6IEFkZGVkLgooTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6IEV4cG9zZSB0aGUgc2V0RWRpdGluZ0JlaGF2aW9y
Q2FsbGJhY2sgZnVuY3Rpb24uCiogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aDoKKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6IEFk
ZCBjYWxsYmFjayBtZXRob2QgZm9yIHNldHRpbmcgZWRpdGluZyBiZWhhdmlvci4KKiBEdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOiBEZWNsYXJhdGlvbiBmb3Ig
dGhpcyBtZXRob2QuCiogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcDoKKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBJbXBsZW1l
bnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCiogRHVtcFJlbmRlclRyZWUvbWFj
L0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVk
aXRpbmdCZWhhdmlvcik6IERpdHRvCiogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5jcHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTog
QWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCiog
RHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oOgooTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZCBzbG90IGZvciBjb250cm9sbGluZyBl
ZGl0b3IgYmVoYXZpb3IuCiogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVy
V2luLmNwcDoKKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBJbXBs
ZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCiogRHVtcFJlbmRlclRyZWUv
d3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
RWRpdGluZ0JlaGF2aW9yKTogQWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJl
aGF2aW9yIGNvbnRyb2wuCgpMYXlvdXRUZXN0czoKCiogZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5k
LXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbDogVXNlIHRoZSBuZXcgRFJUIHN1cHBv
cnQgZm9yIGNoYW5naW5nIGVkaXRpbmcgYmVoYXZpb3IuCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5ICsrKysrCiAuLi4vZXh0ZW5k
LXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbCAgICAgICB8ICAgMzMgKysrKysrKysr
KysrKystLS0tLQogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDE1ICsrKysrKysrKwogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5n
cy5oICAgICAgICAgICAgICAgfCAgICA2ICsrKwogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuY3BwICAgICAgICAgICAgfCAgIDEwICsrKysrKwogV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTZXR0aW5nc0ltcGwuaCAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdC9tYWMvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysrKysrKysrKysK
IFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSAgICAgICAgICAgICAgICAgICAgIHwgICAx
MiArKysrKysrCiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oICAgICAgICAg
ICAgICB8ICAgIDEgKwogV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oICAgICAgfCAgICAxICsKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSAg
ICAgICAgICAgICAgIHwgICAxMSArKysrKysKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaCAgICAgICAgIHwgICAgOCArKysrKwogV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0gICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdC93aW4vQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOCArKysrKysrKysrKwogV2Vi
S2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGwgICAgICAgICAgfCAgICA5ICsr
KysrCiBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oICAgICAgICAgICAgICB8
ICAgIDEgKwogV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDE1ICsrKysrKysrKwogV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICA2ICsrKwogV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICsrKwogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI0ICsrKysrKysrKysrKysrCiAuLi4vRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwICAgICAgICB8ICAgMTYgKysrKysr
KysrCiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oICB8
ICAgIDEgKwogLi4uL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCAgICAgICAgICAg
ICAgfCAgIDEyICsrKysrKysKIC4uLi9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oIHwgICAgMiArCiAuLi4vRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RD
b250cm9sbGVyR3RrLmNwcCB8ICAgMTQgKysrKysrKysKIC4uLi9EdW1wUmVuZGVyVHJlZS9tYWMv
TGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0gIHwgICAgOSArKysrKwogLi4uL0R1bXBSZW5kZXJU
cmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwICAgfCAgICA1ICsrKwogLi4uL0R1bXBS
ZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaCAgICAgfCAgICAyICsKIC4uLi9E
dW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIHwgICAxNyArKysr
KysrKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAg
ICB8ICAgIDUgKysrCiAzMCBmaWxlcyBjaGFuZ2VkLCAyODIgaW5zZXJ0aW9ucygrKSwgOSBkZWxl
dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggYzNlN2Y5ZC4uODk4OTFhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDEwLTA1LTA1ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBvc2UgdGhl
IGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRpdGluZyBjb2Rl
IHBhdGhzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
ODYwMworCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRl
ci1kb3VibGUtY2xpY2suaHRtbDogVXNlIHRoZSBuZXcgRFJUIHN1cHBvcnQgZm9yIGNoYW5naW5n
IGVkaXRpbmcgYmVoYXZpb3IuCisKIDIwMTAtMDUtMDUgIEppYW4gTGkgIDxqaWFubGlAY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhdmlkIExldmluLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRlci1kb3Vi
bGUtY2xpY2suaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxl
Y3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLmh0bWwKaW5kZXggODkxMDgwYi4uMzM4ODQ5NiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1h
ZnRlci1kb3VibGUtY2xpY2suaHRtbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGljay5odG1sCkBAIC0xOCwxMyArMTgs
MzEgQEAKICAgICAgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTAwMCk7CiAgICAgfQogCi0g
ICAgZnVuY3Rpb24gcnVuVGVzdCgpCisgICAgZnVuY3Rpb24gbG9nUmVzdWx0KHJlc3VsdCkKKyAg
ICB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5maXJzdENoaWxk
LmRhdGEgPSByZXN1bHQ7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgIHsK
ICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIgfHwgIXdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CiAKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0RWRp
dGluZ0JlaGF2aW9yKCJtYWMiKTsKKyAgICAgICAgaWYgKCFydW5UZXN0KCJhIHBhcmFncmFwaCIp
KQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dEVkaXRpbmdCZWhhdmlvcigid2luZG93cyIpOworICAgICAgICBpZiAoIXJ1blRlc3QoInBhcmFn
cmEiKSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBsb2dSZXN1bHQoIlNVQ0NFU1Mi
KTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KGV4cGVjdGVkVGV4dCkKKyAgICB7CiAg
ICAgICAgIGRvdWJsZUNsaWNrV29yZCgpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5tb2RpZnko
ImV4dGVuZCIsICJiYWNrd2FyZCIsICJjaGFyYWN0ZXIiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9u
KCkubW9kaWZ5KCJleHRlbmQiLCAiYmFja3dhcmQiLCAiY2hhcmFjdGVyIik7CkBAIC0zMiwxOSAr
NTAsMTYgQEAKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCJleHRlbmQiLCAiYmFja3dh
cmQiLCAiY2hhcmFjdGVyIik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLm1vZGlmeSgiZXh0ZW5k
IiwgImJhY2t3YXJkIiwgImNoYXJhY3RlciIpOwogCi0gICAgICAgIHZhciByZXN1bHQ7CiAgICAg
ICAgIHZhciBzZWxlY3RlZFRleHQgPSBnZXRTZWxlY3Rpb24oKS50b1N0cmluZygpOwotICAgICAg
ICB2YXIgb25NYWNQbGF0Zm9ybSA9IG5hdmlnYXRvci51c2VyQWdlbnQuc2VhcmNoKC9cYk1hYyBP
UyBYXGIvKSAhPSAtMTsKLSAgICAgICAgdmFyIGV4cGVjdGVkVGV4dCA9IG9uTWFjUGxhdGZvcm0g
PyAiYSBwYXJhZ3JhcGgiIDogInBhcmFncmEiOwogICAgICAgICBpZiAoc2VsZWN0ZWRUZXh0ID09
IGV4cGVjdGVkVGV4dCkKLSAgICAgICAgICAgIHJlc3VsdCA9ICJTVUNDRVNTIjsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgcmVzdWx0ID0gIkZBSUxVUkU6IFRoZSBzZWxlY3RlZCB0ZXh0IGlz
IFwiIiArIHNlbGVjdGVkVGV4dCArICJcIiBhbmQgc2hvdWxkIGJlIFwiIiArIGV4cGVjdGVkVGV4
dCArICJcIi4iOwotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuZmly
c3RDaGlsZC5kYXRhID0gcmVzdWx0OworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAg
ICAgbG9nUmVzdWx0KCJGQUlMVVJFOiBUaGUgc2VsZWN0ZWQgdGV4dCBpcyBcIiIgKyBzZWxlY3Rl
ZFRleHQgKyAiXCIgYW5kIHNob3VsZCBiZSBcIiIgKyBleHBlY3RlZFRleHQgKyAiXCIuIik7Cisg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KLTxib2R5IG9u
bG9hZD0icnVuVGVzdCgpIj4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CiA8cD5UaGlzIHRl
c3RzIG1vZGlmeWluZyBhIHNlbGVjdGlvbiBjcmVhdGVkIHdpdGggYSBkb3VibGUgY2xpY2sgd2l0
aCBzaGlmdCBhcnJvdyBrZXkuPC9wPgogPHAgc3R5bGU9ImNvbG9yOmdyZWVuIj4KICAgICBUaGlz
IHRlc3QgZG9lcyBub3QgcnVuIGludGVyYWN0aXZlbHkuCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCAxYzA5ZmIx
Li4yYzcwM2IzIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMC0wNS0wNSAgTWFy
dGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRoZSBlZGl0aW5nIGJlaGF2aW9y
IHNldHRpbmcgaW4gRFJUIHRvIHRlc3QgYWxsIGVkaXRpbmcgY29kZSBwYXRocworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2MDMKKworICAgICAgICBF
eHBvc2UgdGhlIEVkaXRpbmdCZWhhdmlvciBwcmVmZXJlbmNlIGluIHRoZSBDaHJvbWl1bSBBUEku
CisKKyAgICAgICAgKiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
U2V0dGluZ3M6Oik6IEFkZGVkIGFuIGVudW0gZm9yIEVkaXRpbmdCZWhhdmlvciB0eXBlcy4KKyAg
ICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDogCisgICAgICAgIChXZWJLaXQ6OldlYlNl
dHRpbmdzSW1wbDo6c2V0RWRpdGluZ0JlaGF2aW9yKTogQWRkZWQuCisgICAgICAgICogc3JjL1dl
YlNldHRpbmdzSW1wbC5oOgorCiAyMDEwLTA1LTA1ICBEYXJpbiBGaXNoZXIgIDxkYXJpbkBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGltaXRyaSBHbGF6a292LgpkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oIGIvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCmluZGV4IDM1NmQ5ZmEuLjFjM2U5MzcgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAorKysgYi9XZWJLaXQvY2hy
b21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKQEAgLTQzLDYgKzQzLDExIEBAIGNsYXNzIFdlYlVS
TDsKIC8vIHRoZXNlIGZ1bmN0aW9ucyBoYXZlIGEgMToxIG1hcHBpbmcgd2l0aCB0aGUgbWV0aG9k
cyBpbiBXZWJDb3JlL3BhZ2Uvc2V0dGluZ3MuaC4KIGNsYXNzIFdlYlNldHRpbmdzIHsKIHB1Ymxp
YzoKKyAgICBlbnVtIEVkaXRpbmdCZWhhdmlvciB7CisgICAgICAgIEVkaXRpbmdCZWhhdmlvck1h
YyA9IDE7CisgICAgICAgIEVkaXRpbmdCZWhhdmlvcldpbmRvd3M7CisgICAgfTsKKwogICAgIHZp
cnR1YWwgdm9pZCBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRGaXhlZEZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJikgPSAw
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRTZXJpZkZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJikg
PSAwOwpAQCAtODQsNiArODksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldE9mZmxp
bmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHNldEV4cGVyaW1lbnRhbFdlYkdMRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHNldFNob3dEZWJ1Z0JvcmRlcnMoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0
aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICB+V2Vi
U2V0dGluZ3MoKSB7IH0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGlu
Z3NJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAppbmRl
eCAzYWRmM2FjLi5jMmUyNmJkIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNl
dHRpbmdzSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwu
Y3BwCkBAIC0yNjksNCArMjY5LDE0IEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRTaG93RGVi
dWdCb3JkZXJzKGJvb2wgc2hvdykKICAgICBtX3NldHRpbmdzLT5zZXRTaG93RGVidWdCb3JkZXJz
KHNob3cpOwogfQogCit2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0RWRpdGluZ0JlaGF2aW9yKEVk
aXRpbmdCZWhhdmlvciBiZWhhdmlvcikKK3sKKyAgICBpZiAoYmVoYXZpb3IgPT0gRWRpdGluZ0Jl
aGF2aW9yTWFjKSB7CisgICAgICAgIG1fc2V0dGluZ3MtPnNldEVkaXRpbmdCZWhhdmlvcihXZWJD
b3JlOjpFZGl0aW5nTWFjQmVoYXZpb3IpCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBt
X3NldHRpbmdzLT5zZXRFZGl0aW5nQmVoYXZpb3IoV2ViQ29yZTo6RWRpdGluZ1dpbmRvd3NCZWhh
dmlvcikKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuaAppbmRleCA1NGM2NjBiLi43MDIyNWZmIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
U2V0dGluZ3NJbXBsLmgKQEAgLTg2LDYgKzg2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVh
bCB2b2lkIHNldEV4cGVyaW1lbnRhbFdlYkdMRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0U2hvd0RlYnVnQm9yZGVycyhib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdGlu
Z0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvcik7CiAKIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6U2V0
dGluZ3MqIG1fc2V0dGluZ3M7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDI5NjI5NjguLjZjNTFiN2MgMTAwNjQ0Ci0tLSBhL1dl
YktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjQgQEAKKzIwMTAtMDUtMDUgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9z
ZSB0aGUgZWRpdGluZyBiZWhhdmlvciBzZXR0aW5nIGluIERSVCB0byB0ZXN0IGFsbCBlZGl0aW5n
IGNvZGUgcGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM4NjAzCisKKyAgICAgICAgRXhwb3NlIHRoZSBFZGl0aW5nQmVoYXZpb3Igc2V0dGluZyBp
biB0aGUgTWFjIEFQSS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAg
IChjb3JlKToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaDogQWRkZWQgYSBj
b252ZXJzaW9uIG1ldGhvZCBmcm9tIHRoZSBBUEkgZW51bSB0byB0aGUgV2ViQ29yZSBlbnVtLgor
ICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZGVkIGEgcHJl
ZmVyZW5jZSBrZXkgZm9yIHRoZSBuZXcgc2V0dGluZy4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzLm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6IElu
aXRpYWxpemUgdGhlIEVkaXRpbmdCZWhhdmlvciB0byBNYWMgc3R5bGUuCisgICAgICAgICgtW1dl
YlByZWZlcmVuY2VzIGVkaXRpbmdCZWhhdmlvcl0pOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViUHJl
ZmVyZW5jZXMgc2V0RWRpdGluZ0JlaGF2aW9yOl0pOiBBZGRlZC4KKyAgICAgICAgKiBXZWJWaWV3
L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOiBBZGRlZCB0aGUgbmV3IEFQSSBwb2ludHMgdG8gdGhl
IHByaXZhdGUgQVBJLgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1b
V2ViVmlldyBfcHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uOl0pOiBTZXQgdGhlIGVkaXRp
bmcgYmVoYXZpb3IgdmlhIHRoZSBXZWJQcmVmZXJlbmNlcyBzZXR0aW5nLgorCiAyMDEwLTA1LTA0
ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IERhbiBCZXJuc3RlaW4uCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RnJhbWUubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggYjQxNjliNi4u
OGM4N2EzMyAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBi
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQpAQCAtMTk2LDYgKzE5NiwxOCBAQCBFZGl0
YWJsZUxpbmtCZWhhdmlvciBjb3JlKFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yIGVkaXRhYmxl
TGlua0JlaGF2aW9yKQogICAgIHJldHVybiBFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3I7CiB9
CiAKK1dlYkNvcmU6OkVkaXRpbmdCZWhhdmlvciBjb3JlKFdlYktpdEVkaXRpbmdCZWhhdmlvciBi
ZWhhdmlvcikKK3sKKyAgICBzd2l0Y2ggKGJlaGF2aW9yKSB7CisgICAgICAgIGNhc2UgV2ViS2l0
RWRpdGluZ01hY0JlaGF2aW9yOgorICAgICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRpbmdN
YWNCZWhhdmlvcjsKKyAgICAgICAgY2FzZSBXZWJLaXRFZGl0aW5nV2luZG93c0JlaGF2aW9yOgor
ICAgICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRpbmdXaW5kb3dzQmVoYXZpb3I7CisgICAg
fQorICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBXZWJDb3JlOjpFZGl0aW5n
TWFjQmVoYXZpb3I7Cit9CisKIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3Ig
Y29yZShXZWJUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yIGJlaGF2aW9yKQog
ewogICAgIHN3aXRjaCAoYmVoYXZpb3IpIHsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZUludGVybmFsLmggYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5h
bC5oCmluZGV4IDRjMWVlNDAuLjliMjI0OGEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJGcmFtZUludGVybmFsLmgKKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50
ZXJuYWwuaApAQCAtNzEsNiArNzEsNyBAQCBXZWJWaWV3ICpraXQoV2ViQ29yZTo6UGFnZSopOwog
CiBXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvciBjb3JlKFdlYktpdEVkaXRhYmxlTGlua0Jl
aGF2aW9yKTsKIFdlYkNvcmU6OlRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3Ig
Y29yZShXZWJUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKTsKK1dlYkNvcmU6
OkVkaXRpbmdCZWhhdmlvciBjb3JlKFdlYktpdEVkaXRpbmdCZWhhdmlvcik7CiAKIFdlYlZpZXcg
KmdldFdlYlZpZXcoV2ViRnJhbWUgKndlYkZyYW1lKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IGY0YWUzMzMuLjRjMjJmNTkgMTAwNjQ0
Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysg
Yi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTEwNCw2
ICsxMDQsNyBAQAogI2RlZmluZSBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvclByZWZlcmVuY2VL
ZXkgQCJXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciIKICNkZWZpbmUgV2ViS2l0Q2FjaGVNb2Rl
bFByZWZlcmVuY2VLZXkgQCJXZWJLaXRDYWNoZU1vZGVsUHJlZmVyZW5jZUtleSIKICNkZWZpbmUg
V2ViS2l0VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvclByZWZlcmVuY2VLZXkg
QCJXZWJLaXRUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yUHJlZmVyZW5jZUtl
eSIKKyNkZWZpbmUgV2ViS2l0RWRpdGluZ0JlaGF2aW9yUHJlZmVyZW5jZUtleSBAIldlYktpdEVk
aXRpbmdCZWhhdmlvciIKIAogLy8gQ29yZUdyYXBoaWNzIGRlZmVycmVkIHVwZGF0ZXMgYXJlIGRp
c2FibGVkIGlmIFdlYktpdEVuYWJsZUNvYWxlc2NlZFVwZGF0ZXNQcmVmZXJlbmNlS2V5IGlzIHNl
dAogLy8gdG8gTk8sIG9yIGhhcyBubyB2YWx1ZS4gIEZvciBjb21wYXRpYmlsaXR5IHdpdGggTWFj
IE9TIFggMTAuNC42LCBkZWZlcnJlZCB1cGRhdGVzIGFyZSBPRkYgYnkKZGlmZiAtLWdpdCBhL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSBiL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJQcmVmZXJlbmNlcy5tbQppbmRleCA5ZGU4NDk1Li45MDZhZjQxIDEwMDY0NAotLS0gYS9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VzLm1tCkBAIC0zMzQsNiArMzM0LDcgQEAgc3RhdGljIFdlYkNhY2hlTW9k
ZWwgY2FjaGVNb2RlbEZvck1haW5CdW5kbGUodm9pZCkKICAgICAgICAgQCIwIiwgICAgICAgICAg
ICAgICAgICAgICAgICAgICBXZWJLaXRQREZTY2FsZUZhY3RvclByZWZlcmVuY2VLZXksCiAgICAg
ICAgIEAiMCIsICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VXNlU2l0ZVNwZWNpZmlj
U3Bvb2ZpbmdQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpX
ZWJLaXRFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3JdLCBXZWJLaXRFZGl0YWJsZUxpbmtCZWhh
dmlvclByZWZlcmVuY2VLZXksCisgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OldlYktp
dEVkaXRpbmdNYWNCZWhhdmlvcl0sIFdlYktpdEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXks
CiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09O
X0xFT1BBUkQpCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OldlYlRleHREaXJlY3Rp
b25TdWJtZW51QXV0b21hdGljYWxseUluY2x1ZGVkXSwKICNlbHNlCkBAIC0xMjM3LDYgKzEyMzgs
MTYgQEAgc3RhdGljIE5TU3RyaW5nICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIFtzZWxm
IF9zZXRCb29sVmFsdWU6ZmxhZyBmb3JLZXk6V2ViS2l0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZFBy
ZWZlcmVuY2VLZXldOwogfQogCistIChXZWJLaXRFZGl0aW5nQmVoYXZpb3IpZWRpdGluZ0JlaGF2
aW9yCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdEVkaXRpbmdCZWhhdmlvcj4gKFtz
ZWxmIF9pbnRlZ2VyVmFsdWVGb3JLZXk6V2ViS2l0RWRpdGluZ0JlaGF2aW9yUHJlZmVyZW5jZUtl
eV0pOworfQorCistICh2b2lkKXNldEVkaXRpbmdCZWhhdmlvcjooV2ViS2l0RWRpdGluZ0JlaGF2
aW9yKWJlaGF2aW9yCit7CisgICAgW3NlbGYgX3NldEludGVnZXJWYWx1ZTpiZWhhdmlvciBmb3JL
ZXk6V2ViS2l0RWRpdGluZ0JlaGF2aW9yUHJlZmVyZW5jZUtleV07Cit9CisKIC0gKHZvaWQpZGlk
UmVtb3ZlRnJvbVdlYlZpZXcKIHsKICAgICBBU1NFUlQoX3ByaXZhdGUtPm51bVdlYlZpZXdzKTsK
ZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCBi
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCBlZTc4NWU5
Li44MzJjMDg4IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQ
cml2YXRlLmgKKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5o
CkBAIC00Myw2ICs0MywxMSBAQCB0eXBlZGVmIGVudW0gewogICAgIFdlYlRleHREaXJlY3Rpb25T
dWJtZW51QWx3YXlzSW5jbHVkZWQKIH0gV2ViVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25C
ZWhhdmlvcjsKIAordHlwZWRlZiBlbnVtIHsKKyAgICBXZWJLaXRFZGl0aW5nTWFjQmVoYXZpb3Is
CisgICAgV2ViS2l0RWRpdGluZ1dpbmRvd3NCZWhhdmlvciwKK30gV2ViS2l0RWRpdGluZ0JlaGF2
aW9yOworCiBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlv
bjsKIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNSZW1vdmVkTm90aWZpY2F0aW9uOwog
CkBAIC0xMjksNiArMTM0LDkgQEAgZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc1JlbW92
ZWROb3RpZmljYXRpb247CiAtIChXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvcillZGl0YWJsZUxp
bmtCZWhhdmlvcjsKIC0gKHZvaWQpc2V0RWRpdGFibGVMaW5rQmVoYXZpb3I6KFdlYktpdEVkaXRh
YmxlTGlua0JlaGF2aW9yKWJlaGF2aW9yOwogCistIChXZWJLaXRFZGl0aW5nQmVoYXZpb3IpZWRp
dGluZ0JlaGF2aW9yOworLSAodm9pZClzZXRFZGl0aW5nQmVoYXZpb3I6KFdlYktpdEVkaXRpbmdC
ZWhhdmlvciliZWhhdmlvcjsKKwogLSAoV2ViVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25C
ZWhhdmlvcil0ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yOwogLSAodm9pZClz
ZXRUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yOihXZWJUZXh0RGlyZWN0aW9u
U3VibWVudUluY2x1c2lvbkJlaGF2aW9yKWJlaGF2aW9yOwogCmRpZmYgLS1naXQgYS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmlu
ZGV4IDQ4MTg2OTEuLmViNWM2NmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0xMzIxLDYgKzEz
MjEsNyBAQCBzdGF0aWMgYm9vbCBmYXN0RG9jdW1lbnRUZWFyZG93bkVuYWJsZWQoKQogICAgIHNl
dHRpbmdzLT5zZXRUZXh0QXJlYXNBcmVSZXNpemFibGUoW3ByZWZlcmVuY2VzIHRleHRBcmVhc0Fy
ZVJlc2l6YWJsZV0pOwogICAgIHNldHRpbmdzLT5zZXRTaHJpbmtzU3RhbmRhbG9uZUltYWdlc1Rv
Rml0KFtwcmVmZXJlbmNlcyBzaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0XSk7CiAgICAgc2V0
dGluZ3MtPnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKGNvcmUoW3ByZWZlcmVuY2VzIGVkaXRhYmxl
TGlua0JlaGF2aW9yXSkpOworICAgIHNldHRpbmdzLT5zZXRFZGl0aW5nQmVoYXZpb3IoY29yZShb
cHJlZmVyZW5jZXMgZWRpdGluZ0JlaGF2aW9yXSkpOwogICAgIHNldHRpbmdzLT5zZXRUZXh0RGly
ZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKGNvcmUoW3ByZWZlcmVuY2VzIHRleHREaXJl
Y3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JdKSk7CiAgICAgc2V0dGluZ3MtPnNldERPTVBh
c3RlQWxsb3dlZChbcHJlZmVyZW5jZXMgaXNET01QYXN0ZUFsbG93ZWRdKTsKICAgICBzZXR0aW5n
cy0+c2V0VXNlc1BhZ2VDYWNoZShbc2VsZiB1c2VzUGFnZUNhY2hlXSk7CmRpZmYgLS1naXQgYS9X
ZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCmluZGV4IGU3NzEzY2Uu
LmU1ZTY3MDUgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93
aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDUtMDUgIE1hcnRpbiBSb2JpbnNv
biAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEV4cG9zZSB0aGUgZWRpdGluZyBiZWhhdmlvciBzZXR0aW5nIGlu
IERSVCB0byB0ZXN0IGFsbCBlZGl0aW5nIGNvZGUgcGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NjAzCisKKyAgICAgICAgRXhwb3NlIHRoZSBF
ZGl0aW5nQmVoYXZpb3Igc2V0dGluZyBpbiB0aGUgV2luZG93cyBBUEkuCisKKyAgICAgICAgKiBJ
bnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGw6IEFkZCB0aGUgQVBJIHBvaW50IGZvciBzZXR0
aW5nIHRoZSBlZGl0aW5nIGJlaGF2aW9yLgorICAgICAgICAqIFdlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oOiBBZGQgYSBrZXkgZm9yIHRoZSBlZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcuCisgICAg
ICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OmVkaXRp
bmdCZWhhdmlvcik6IEFkZGVkLgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OnNldEVkaXRpbmdC
ZWhhdmlvcik6IEFkZGVkLgorICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmg6IEFkZCBtZXRob2Qg
ZGVjbGFyYXRpb25zLgorICAgICAgICAqIFdlYlZpZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6
bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKTogVXBkYXRlIHRoZSBXZWJDb3JlIHNldHRpbmcgYmFz
ZWQgb24gdGhlIFdlYlByZWZlcmVuY2VzIHNldHRpbmcuCisKIDIwMTAtMDUtMDUgIFN0dWFydCBN
b3JnYW4gIDxzdHVhcnRtb3JnYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IERhcmluIEZpc2hlci4KZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJl
ZmVyZW5jZXMuaWRsIGIvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGwK
aW5kZXggMWM0MzEzNS4uZmYzMGEwMyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9JbnRlcmZhY2Vz
L0lXZWJQcmVmZXJlbmNlcy5pZGwKKysrIGIvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVm
ZXJlbmNlcy5pZGwKQEAgLTQ3LDYgKzQ3LDEyIEBAIHR5cGVkZWYgZW51bSBXZWJLaXRFZGl0YWJs
ZUxpbmtCZWhhdmlvciB7CiAgICAgV2ViS2l0RWRpdGFibGVMaW5rTmV2ZXJMaXZlCiB9IFdlYktp
dEVkaXRhYmxlTGlua0JlaGF2aW9yOwogCit0eXBlZGVmIGVudW0gV2ViS2l0RWRpdGluZ0JlaGF2
aW9yIHsKKyAgICBXZWJLaXRFZGl0aW5nTWFjQmVoYXZpb3IgPSAwLAorICAgIFdlYktpdEVkaXRp
bmdXaW5kb3dzQmVoYXZpb3IsCit9IFdlYktpdEVkaXRpbmdCZWhhdmlvcjsKKworCiB0eXBlZGVm
IGVudW0gV2ViS2l0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeSB7CiAgICAgV2ViS2l0Q29va2ll
U3RvcmFnZUFjY2VwdFBvbGljeUFsd2F5cyA9IDAsCiAgICAgV2ViS2l0Q29va2llU3RvcmFnZUFj
Y2VwdFBvbGljeU5ldmVyLApAQCAtMTYyLDYgKzE2OCw5IEBAIGludGVyZmFjZSBJV2ViUHJlZmVy
ZW5jZXMgOiBJVW5rbm93bgogICAgIEhSRVNVTFQgZWRpdGFibGVMaW5rQmVoYXZpb3IoW291dCwg
cmV0dmFsXSBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciogZWRpdGFibGVMaW5rQmVoYXZpb3Ip
OwogICAgIEhSRVNVTFQgc2V0RWRpdGFibGVMaW5rQmVoYXZpb3IoW2luXSBXZWJLaXRFZGl0YWJs
ZUxpbmtCZWhhdmlvciBiZWhhdmlvcik7CiAKKyAgICBIUkVTVUxUIGVkaXRpbmdCZWhhdmlvcihb
b3V0LCByZXR2YWxdIFdlYktpdEVkaXRpbmdCZWhhdmlvciogZWRpdGluZ0JlaGF2aW9yKTsKKyAg
ICBIUkVTVUxUIHNldEVkaXRpbmdCZWhhdmlvcihbaW5dIFdlYktpdEVkaXRpbmdCZWhhdmlvciBi
ZWhhdmlvcik7CisKICAgICBIUkVTVUxUIGNvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3koW291dCwg
cmV0dmFsXSBXZWJLaXRDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5KiBhY2NlcHRQb2xpY3kpOwog
ICAgIEhSRVNVTFQgc2V0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeShbaW5dIFdlYktpdENvb2tp
ZVN0b3JhZ2VBY2NlcHRQb2xpY3kgYWNjZXB0UG9saWN5KTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0
L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1dlYktpdC93aW4vV2ViUHJlZmVyZW5j
ZUtleXNQcml2YXRlLmgKaW5kZXggYzQ5YTk2ZC4uZGE2Mzc1NCAxMDA2NDQKLS0tIGEvV2ViS2l0
L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9XZWJLaXQvd2luL1dlYlByZWZl
cmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC03NCw2ICs3NCw3IEBACiAjZGVmaW5lIFdlYktpdFBERkRp
c3BsYXlNb2RlUHJlZmVyZW5jZUtleSAiV2ViS2l0UERGRGlzcGxheU1vZGUiCiAjZGVmaW5lIFdl
YktpdFBERlNjYWxlRmFjdG9yUHJlZmVyZW5jZUtleSAiV2ViS2l0UERGU2NhbGVGYWN0b3IiCiAj
ZGVmaW5lIFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yUHJlZmVyZW5jZUtleSAiV2ViS2l0RWRp
dGFibGVMaW5rQmVoYXZpb3IiCisjZGVmaW5lIFdlYktpdEVkaXRpbmdCZWhhdmlvclByZWZlcmVu
Y2VLZXkgIldlYktpdEVkaXRpbmdCZWhhdmlvciIKIAogLy8gV2luZG93IGRpc3BsYXkgaXMgdGhy
b3R0bGVkIHRvIDYwIGZyYW1lcyBwZXIgc2Vjb25kIGlmIFdlYktpdFRocm90dGxlV2luZG93RGlz
cGxheVByZWZlcmVuY2VLZXkKIC8vIGlzIHNldCB0byBZRVMuICBUaGUgd2luZG93IGRpc3BsYXkg
dGhyb3R0bGUgaXMgT0ZGIGJ5IGRlZmF1bHQgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBNYWMgT1Mg
WApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgYi9XZWJLaXQvd2lu
L1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCAzM2U5MDRkLi4zZTdlYTQyIDEwMDY0NAotLS0gYS9X
ZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9XZWJLaXQvd2luL1dlYlByZWZlcmVu
Y2VzLmNwcApAQCAtMTEzMCw2ICsxMTMwLDIxIEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
V2ViUHJlZmVyZW5jZXM6OnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKAogICAgIHJldHVybiBTX09L
OwogfQogCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlByZWZlcmVuY2VzOjplZGl0aW5n
QmVoYXZpb3IoCisgICAgLyogW291dCwgcmV0dmFsXSAqLyBXZWJLaXRFZGl0aW5nQmVoYXZpb3Iq
IGVkaXRpbmdCZWhhdmlvcikKK3sKKyAgICAqZWRpdGluZ0JlaGF2aW9yID0gKFdlYktpdEVkaXRp
bmdCZWhhdmlvcikgaW50ZWdlclZhbHVlRm9yS2V5KENGU1RSKFdlYktpdEVkaXRpbmdCZWhhdmlv
clByZWZlcmVuY2VLZXkpKTsKKyAgICByZXR1cm4gU19PSzsKK30KKworSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6c2V0RWRpdGluZ0JlaGF2aW9yKAorICAgIC8qIFtp
bl0gKi8gV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IgYmVoYXZpb3IpCit7CisgICAgc2V0SW50
ZWdlclZhbHVlKENGU1RSKFdlYktpdEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXkpLCBiZWhh
dmlvcik7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKKwogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQ
RSBXZWJQcmVmZXJlbmNlczo6Y29va2llU3RvcmFnZUFjY2VwdFBvbGljeSggCiAgICAgICAgIC8q
IFtyZXR2YWxdW291dF0gKi8gV2ViS2l0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeSAqYWNjZXB0
UG9saWN5ICkKIHsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaCBiL1dl
YktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaAppbmRleCBjZmRlZmE4Li4xZWE2OWM3IDEwMDY0NAot
LS0gYS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvV2ViS2l0L3dpbi9XZWJQcmVm
ZXJlbmNlcy5oCkBAIC0yMzgsNiArMjM4LDEyIEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0RWRpdGFibGVMaW5rQmVoYXZpb3IoIAogICAgICAgICAv
KiBbaW5dICovIFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yIGJlaGF2aW9yKTsKIAorICAgIHZp
cnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBlZGl0aW5nQmVoYXZpb3IoCisgICAgICAg
IC8qIFtyZXR2YWxdW291dF0gKi8gV2ViS2l0RWRpdGluZ0JlaGF2aW9yKiBiZWhhdmlvcik7CisK
KyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0RWRpdGluZ0JlaGF2aW9y
KAorICAgICAgICAvKiBbaW5dICovIFdlYktpdEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcik7CisK
ICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgY29va2llU3RvcmFnZUFjY2Vw
dFBvbGljeSggCiAgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gV2ViS2l0Q29va2llU3RvcmFn
ZUFjY2VwdFBvbGljeSAqYWNjZXB0UG9saWN5KTsKICAgICAgICAgCmRpZmYgLS1naXQgYS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwIGIvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAppbmRleCAyNDhlM2Nk
Li4yNmEwNDA5IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1dlYktp
dC93aW4vV2ViVmlldy5jcHAKQEAgLTQ1ODYsNiArNDU4NiwxMiBAQCBIUkVTVUxUIFdlYlZpZXc6
Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24p
CiAgICAgICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy0+c2V0RWRpdGFibGVMaW5rQmVoYXZp
b3IoKEVkaXRhYmxlTGlua0JlaGF2aW9yKWJlaGF2aW9yKTsKIAorICAgIFdlYktpdEVkaXRpbmdC
ZWhhdmlvciBiZWhhdmlvcjsKKyAgICBociA9IHByZWZlcmVuY2VzLT5lZGl0aW5nQmVoYXZpb3Io
JmJlaGF2aW9yKTsKKyAgICBpZiAoRkFJTEVEKGhyKSkKKyAgICAgICAgcmV0dXJuIGhyOworICAg
IHNldHRpbmdzLT5zZXRFZGl0aW5nQmVoYXZpb3IoKEVkaXRpbmdCZWhhdmlvciliZWhhdmlvcik7
CisKICAgICBociA9IHByZWZlcmVuY2VzLT51c2VzUGFnZUNhY2hlKCZlbmFibGVkKTsKICAgICBp
ZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4IDBjZTI1MzUuLjU4Y2Vl
ZjYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMC0wNS0wNSAgTWFydGluIFJvYmluc29uICA8
bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgRXhwb3NlIHRoZSBlZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcgaW4gRFJU
IHRvIHRlc3QgYWxsIGVkaXRpbmcgY29kZSBwYXRocworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2MDMKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKHNldEVkaXRpbmdCZWhhdmlvckNh
bGxiYWNrKTogQWRkZWQuCisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVu
Y3Rpb25zKTogRXhwb3NlIHRoZSBzZXRFZGl0aW5nQmVoYXZpb3JDYWxsYmFjayBmdW5jdGlvbi4K
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDogQWRk
IGNhbGxiYWNrIG1ldGhvZCBmb3Igc2V0dGluZyBlZGl0aW5nIGJlaGF2aW9yLgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmg6IERlY2xhcmF0
aW9uIGZvciB0aGlzIG1ldGhvZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0
VGVzdENvbnRyb2xsZXJHdGsuY3BwOiAKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpz
ZXRFZGl0aW5nQmVoYXZpb3IpOiBJbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNv
bnRyb2wuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVy
TWFjLm1tOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlv
cik6IERpdHRvCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xs
ZXJRdC5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2
aW9yKTogQWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRy
b2wKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4u
Y3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6
IEltcGxlbWVudGF0aW9uIG9mIGVkaXRpbmcgYmVoYXZpb3IgY29udHJvbC4KKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcDoKKyAgICAgICAgKExh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGRlZCBzdHViIGltcGxl
bWVudGF0aW9uIG9mIGVkaXRpbmcgYmVoYXZpb3IgY29udHJvbAorCiAyMDEwLTA1LTA0ICBFcmlj
IFNlaWRlbCAgPGVyaWNAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaGluaWNo
aXJvIEhhbWFqaS4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcAppbmRleCBiNGI1YmYyLi41ZDBmMmU0IDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNDQx
LDYgKzE0NDEsMjEgQEAgc3RhdGljIEpTVmFsdWVSZWYgYXV0aGVudGljYXRlU2Vzc2lvbkNhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiwKICAgICByZXR1cm4gSlNWYWx1
ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIHNldEVkaXRp
bmdCZWhhdmlvckNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5j
dGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0
IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICAv
LyBUaGUgZWRpdGluZyBiZWhhdmlvciBzdHJpbmcuCisgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAx
KQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBK
U1JldGFpblB0cjxKU1N0cmluZ1JlZj4gZWRpdGluZ0JlaGF2aW9yKEFkb3B0LCBKU1ZhbHVlVG9T
dHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKSk7CisgICAgQVNTRVJU
KCEqZXhjZXB0aW9uKTsKKworICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0g
c3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhp
c09iamVjdCkpOworICAgIGNvbnRyb2xsZXItPnNldEVkaXRpbmdCZWhhdmlvcihlZGl0aW5nQmVo
YXZpb3IuZ2V0KCkpOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQp
OworfQorCiAvLyBTdGF0aWMgVmFsdWVzCiAKIHN0YXRpYyBKU1ZhbHVlUmVmIGdldEdsb2JhbEZs
YWdDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwg
SlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCkBAIC0xNTkw
LDYgKzE2MDUsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3Rh
dGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAic2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUiLCBzZXRD
dXN0b21Qb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldERhdGFi
YXNlUXVvdGEiLCBzZXREYXRhYmFzZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCiAgICAgICAgIHsg
InNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUiLCBzZXREb21haW5SZWxh
eGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAi
c2V0RWRpdGluZ0JlaGF2aW9yIiwgc2V0RWRpdGluZ0JlaGF2aW9yQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAic2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCIsIHNldEZyYW1lRmxhdHRlbmlu
Z0VuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRHZW9sb2NhdGlvblBlcm1p
c3Npb24iLCBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb25DYWxsYmFjaywga0pTUHJvcGVydHlBdHRy
aWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAg
ICB7ICJzZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzIiwgc2V0SGFuZGxlc0F1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCAwOGY5NjkyLi43MjY2
ZjBhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmgKQEAgLTk4LDYgKzk4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RnJhbWVGbGF0
dGVuaW5nRW5hYmxlZChib29sIGVuYWJsZSk7CiAgICAgdm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlv
bkVuYWJsZWQoYm9vbCBlbmFibGUpOwogICAgIHZvaWQgc2V0U2Nyb2xsYmFyUG9saWN5KEpTU3Ry
aW5nUmVmIG9yaWVudGF0aW9uLCBKU1N0cmluZ1JlZiBwb2xpY3kpOworICAgIHZvaWQgc2V0RWRp
dGluZ0JlaGF2aW9yKEpTU3RyaW5nUmVmIGVkaXRpbmdCZWhhdmlvcik7CiAKICAgICB2b2lkIHdh
aXRGb3JQb2xpY3lEZWxlZ2F0ZSgpOwogICAgIHNpemVfdCB3ZWJIaXN0b3J5SXRlbUNvdW50KCk7
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMjFiMTY4Yy4uYzk3ZWM1YiAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcApAQCAtMTQ4LDYgKzE0OCw3IEBAIExheW91dFRlc3RDb250cm9sbGVy
OjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2Qo
InNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJldmFsdWF0ZUluV2Vi
SW5zcGVjdG9yIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpldmFsdWF0ZUluV2ViSW5zcGVjdG9y
KTsKICAgICBiaW5kTWV0aG9kKCJmb3JjZVJlZFNlbGVjdGlvbkNvbG9ycyIsICZMYXlvdXRUZXN0
Q29udHJvbGxlcjo6Zm9yY2VSZWRTZWxlY3Rpb25Db2xvcnMpOworICAgIGJpbmRNZXRob2QoInNl
dEVkaXRpbmdCZWhhdmlvciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2
aW9yKTsKIAogICAgIC8vIFRoZSBmYWxsYmFjayBtZXRob2QgaXMgY2FsbGVkIHdoZW4gYW4gdW5r
bm93biBtZXRob2QgaXMgaW52b2tlZC4KICAgICBiaW5kRmFsbGJhY2tNZXRob2QoJkxheW91dFRl
c3RDb250cm9sbGVyOjpmYWxsYmFja01ldGhvZCk7CkBAIC0xMTg3LDMgKzExODgsMTQgQEAgdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVXNlclNjcmlwdChjb25zdCBDcHBBcmd1bWVudExp
c3QmIGFyZ3VtZW50cywgQ3BwVmEKICAgICAgICAgcmV0dXJuOwogICAgIG1fc2hlbGwtPndlYlZp
ZXcoKS0+YWRkVXNlclNjcmlwdChXZWJTdHJpbmc6OmZyb21VVEY4KGFyZ3VtZW50c1swXS50b1N0
cmluZygpKSwgYXJndW1lbnRzWzFdLnRvQm9vbGVhbigpKTsKIH0KKwordm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENw
cFZhcmlhbnQqKTsKK3sKKyAgICBXZWJTZXR0aW5ncyogc2V0dGluZ3MgPSBtX3NoZWxsLT53ZWJW
aWV3KCktPnNldHRpbmdzKCk7CisgICAgc3RyaW5nIGtleSA9IGFyZ3VtZW50c1swXS50b1N0cmlu
ZygpOworICAgIGlmIChrZXkgPT0gIm1hYyIpCisgICAgICAgIHNldHRpbmdzLT5zZXRFZGl0aW5n
QmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yTWFjKTsKKworICAgIGlmIChrZXkgPT0gIndpbmRvd3Mi
KQorICAgICAgICBzZXR0aW5ncy0+c2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvcldp
bmRvd3MpOworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggY2E4YjAxNC4uZjllZDhjYyAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENv
bnRyb2xsZXIuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oCkBAIC0xOTUsNiArMTk1LDggQEAgcHVibGljOgogCiAgICAgdm9p
ZCBkdW1wU2VsZWN0aW9uUmVjdChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7
CiAKKyAgICB2b2lkIHNldEVkaXRpbmdCZWhhdmlvcihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBD
cHBWYXJpYW50Kik7CisKICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZSBvbmx5IHN0dWJzLiAgVE9E
TyhwYW1nKTogSW1wbGVtZW50IGFueSBvZiB0aGVzZSB0aGF0CiAgICAgLy8gYXJlIG5lZWRlZCB0
byBwYXNzIHRoZSBsYXlvdXQgdGVzdHMuCiAgICAgdm9pZCBkdW1wQXNXZWJBcmNoaXZlKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCmluZGV4
IGNiYmE3Y2UuLjBhMjBiY2MgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtMzksNiArMzksNyBA
QAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8SmF2
YVNjcmlwdENvcmUvSlNTdHJpbmdSZWYuaD4KIAorI2luY2x1ZGUgPGNzdHJpbmc+CiAjaW5jbHVk
ZSA8aW9zdHJlYW0+CiAjaW5jbHVkZSA8c3N0cmVhbT4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAt
Njg4LDMgKzY4OSwxNiBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRy
b2xsZXI6Om1hcmtlclRleHRGb3JMaXN0SXRlbShKU0NvbnRleHRSZQogdm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6YXV0aGVudGljYXRlU2Vzc2lvbihKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYs
IEpTU3RyaW5nUmVmKQogewogfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0
aW5nQmVoYXZpb3IoSlNTdHJpbmdSZWYgZWRpdGluZ0JlaGF2aW9yKQoreworICAgIFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcgPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUp
OworICAgIFdlYktpdFdlYlNldHRpbmdzKiBzZXR0aW5ncyA9IHdlYmtpdF93ZWJfdmlld19nZXRf
c2V0dGluZ3Mod2ViVmlldyk7CisKKyAgICBjaGFyKiBlZGl0aW5nQmVoYXZpb3JTdHJpbmcgPSBK
U1N0cmluZ0NvcHlVVEY4Q1N0cmluZyhlZGl0aW5nQmVoYXZpb3IpOworICAgIGlmICghc3RyY21w
KGVkaXRpbmdCZWhhdmlvclN0cmluZywgIndpbmRvd3MiKSkKKyAgICAgICAgZ19vYmplY3Rfc2V0
KEdfT0JKRUNUKHNldHRpbmdzKSwgImVkaXRpbmctYmVoYXZpb3IiLCBXRUJLSVRfRURJVElOR19C
RUhBVklPUl9XSU5ET1dTLCBOVUxMKTsKKyAgICBpZiAoIXN0cmNtcChlZGl0aW5nQmVoYXZpb3JT
dHJpbmcsICJtYWMiKSkKKyAgICAgICAgZ19vYmplY3Rfc2V0KEdfT0JKRUNUKHNldHRpbmdzKSwg
ImVkaXRpbmctYmVoYXZpb3IiLCBXRUJLSVRfRURJVElOR19CRUhBVklPUl9NQUMsIE5VTEwpOwor
ICAgIGdfZnJlZShlZGl0aW5nQmVoYXZpb3JTdHJpbmcpOworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCmlu
ZGV4IDNiMDNhZWMuLjc5NzQ5Y2IgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQorKysgYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KQEAgLTgzNSwzICs4MzUs
MTIgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXV0aGVudGljYXRlU2Vzc2lvbihKU1N0
cmluZ1JlZiB1cmwsIEpTU3RyaW5nUmVmIHVzZXIKICAgICBbU3luY2hyb25vdXNMb2FkZXIgbWFr
ZVJlcXVlc3Q6cmVxdWVzdCB3aXRoVXNlcm5hbWU6KE5TU3RyaW5nICopdXNlcm5hbWVDRi5nZXQo
KSBwYXNzd29yZDooTlNTdHJpbmcgKilwYXNzd29yZENGLmdldCgpXTsKICNlbmRpZgogfQorCit2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IoSlNTdHJpbmdSZWYg
ZWRpdGluZ0JlaGF2aW9yKQoreworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZWRpdGluZ0Jl
aGF2aW9yQ0YoQWRvcHRDRiwgSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVs
dCwgZWRpdGluZ0JlaGF2aW9yKSk7CisgICAgaWYgKFsoTlNTdHJpbmcgKillZGl0aW5nQmVoYXZp
b3JDRi5nZXQoKSBpc0VxdWFsVG9TdHJpbmc6QCJtYWMiXSkKKyAgICAgICAgW1tXZWJQcmVmZXJl
bmNlcyBzdGFuZGFyZFByZWZlcmVuY2VzXSBzZXRFZGl0aW5nQmVoYXZpb3I6V2ViS2l0RWRpdGlu
Z01hY0JlaGF2aW9yXTsKKyAgICBpZiAoWyhOU1N0cmluZyAqKWVkaXRpbmdCZWhhdmlvckNGLmdl
dCgpIGlzRXF1YWxUb1N0cmluZzpAIndpbmRvd3MiXSkKKyAgICAgICAgW1tXZWJQcmVmZXJlbmNl
cyBzdGFuZGFyZFByZWZlcmVuY2VzXSBzZXRFZGl0aW5nQmVoYXZpb3I6V2ViS2l0RWRpdGluZ01h
Y0JlaGF2aW9yXTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
cXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKaW5kZXggOTc3MDk2ZC4uZjQ1MGYwNCAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xs
ZXJRdC5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENv
bnRyb2xsZXJRdC5jcHAKQEAgLTYyNCw2ICs2MjQsMTEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6YXV0aGVudGljYXRlU2Vzc2lvbihjb25zdCBRU3RyaW5nJiwgY29uc3QgUVN0cmluZyYs
IGMKICAgICAvLyBGSVhNRTogSWYgdGhlcmUgaXMgYSBjb25jZXB0IHBlci1zZXNzaW9uIChwZXIt
cHJvY2VzcykgY3JlZGVudGlhbCBzdG9yYWdlLCB0aGUgY3JlZGVudGlhbHMgc2hvdWxkIGJlIGFk
ZGVkIHRvIGl0IGZvciBsYXRlciB1c2UuCiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldEVkaXRpbmdCZWhhdmlvcihjb25zdCBRU3RyaW5nJiBlZGl0aW5nQmVoYXZpb3IpCit7Cisg
ICAgLy8gRklYTUU6IEltcGxlbWVudC4KK30KKwogCiBjb25zdCB1bnNpZ25lZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6bWF4Vmlld1dpZHRoID0gODAwOwogY29uc3QgdW5zaWduZWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6Om1heFZpZXdIZWlnaHQgPSA2MDA7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmggYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKaW5kZXggYjEzZjJh
ZC4uOGU3MTFiOSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5
b3V0VGVzdENvbnRyb2xsZXJRdC5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0
L0xheW91dFRlc3RDb250cm9sbGVyUXQuaApAQCAtMTg5LDYgKzE4OSw4IEBAIHB1YmxpYyBzbG90
czoKICAgICAvLyBTaW11bGF0ZSBhIHJlcXVlc3QgYW4gZW1iZWRkaW5nIGFwcGxpY2F0aW9uIGNv
dWxkIG1ha2UsIHBvcHVsYXRpbmcgcGVyLXNlc3Npb24gY3JlZGVudGlhbCBzdG9yYWdlLgogICAg
IHZvaWQgYXV0aGVudGljYXRlU2Vzc2lvbihjb25zdCBRU3RyaW5nJiB1cmwsIGNvbnN0IFFTdHJp
bmcmIHVzZXJuYW1lLCBjb25zdCBRU3RyaW5nJiBwYXNzd29yZCk7CiAKKyAgICB2b2lkIHNldEVk
aXRpbmdCZWhhdmlvcihjb25zdCBRU3RyaW5nJiBlZGl0aW5nQmVoYXZpb3IpOworCiBwcml2YXRl
IHNsb3RzOgogICAgIHZvaWQgcHJvY2Vzc1dvcmsoKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcCBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKaW5k
ZXggZDg4OWNmYy4uODYwZWZkZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCkBAIC0xMjYyLDMgKzEy
NjIsMjAgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0V2ViVmlld0VkaXRhYmxlKGJv
b2wpCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphdXRoZW50aWNhdGVTZXNzaW9uKEpTU3Ry
aW5nUmVmLCBKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYpCiB7CiB9CisKK3ZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcihKU1N0cmluZ1JlZiBlZGl0aW5nQmVoYXZp
b3IpCit7CisgICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OworICAgIGlmIChGQUlMRUQoZnJh
bWUtPndlYlZpZXcoJndlYlZpZXcpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ09NUHRyPElX
ZWJQcmVmZXJlbmNlcz4gcHJlZmVyZW5jZXM7CisgICAgaWYgKEZBSUxFRCh3ZWJWaWV3LT5wcmVm
ZXJlbmNlcygmcHJlZmVyZW5jZXMpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgd3N0cmluZyBi
ZWhhdmlvcldzdHJpbmcgPSBqc1N0cmluZ1JlZlRvV1N0cmluZyhlZGl0aW5nQmVoYXZpb3IpOwor
ICAgIGlmIChiZWhhdmlvcldzdHJpbmcgPT0gTCJtYWMiKQorICAgICAgICBwcmVmZXJlbmNlcy0+
c2V0RWRpdGluZ0JlaGF2aW9yKFdlYktpdEVkaXRpbmdNYWNCZWhhdmlvcik7CisgICAgaWYgKGJl
aGF2aW9yV3N0cmluZyA9PSBMIndpbmRvd3MiKQorICAgICAgICBwcmVmZXJlbmNlcy0+c2V0RWRp
dGluZ0JlaGF2aW9yKFdlYktpdEVkaXRpbmdXaW5kb3dzQmVoYXZpb3IpOworfQpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5j
cHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4
LmNwcAppbmRleCA0NjE0YWNhLi5iODJhMTcxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAorKysgYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcApAQCAtNDQxLDMg
KzQ0MSw4IEBAIEpTVmFsdWVSZWYgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvbXB1dGVkU3R5bGVJ
bmNsdWRpbmdWaXNpdGVkSW5mbyhKU0NvbnRleHRSZWYsCiB2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjphdXRoZW50aWNhdGVTZXNzaW9uKEpTU3RyaW5nUmVmLCBKU1N0cmluZ1JlZiwgSlNTdHJp
bmdSZWYpCiB7CiB9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhh
dmlvcihKU1N0cmluZ1JlZiBlZGl0aW5nQmVoYXZpb3IpCit7CisgICAgLy8gRklYTUU6IEltcGxl
bWVudAorfQotLSAKMS42LjMuMwoK
</data>
<flag name="commit-queue"
          id="39320"
          type_id="3"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55239</attachid>
            <date>2010-05-06 08:10:08 -0700</date>
            <delta_ts>2010-05-06 08:31:26 -0700</delta_ts>
            <desc>Previous patch with build fix for Chromium</desc>
            <filename>0001-Expose-the-editing-behavior-setting-in-DRT-to-test-a.patch</filename>
            <type>text/plain</type>
            <size>35011</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">RnJvbSBmN2IxMGJjMTgxOTk0MmM0ZmZkNDM2ZmJhZjA3NDA4N2E0ZDhlYzQ5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gUm9iaW5zb24gPG1yb2JpbnNvbkB3ZWJraXQub3Jn
PgpEYXRlOiBXZWQsIDUgTWF5IDIwMTAgMTY6MTg6NTkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBF
eHBvc2UgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRp
dGluZyBjb2RlIHBhdGhzCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzg2MDMKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKV2ViS2l0L2Nocm9taXVtOgoKRXhw
b3NlIHRoZSBFZGl0aW5nQmVoYXZpb3IgcHJlZmVyZW5jZSBpbiB0aGUgQ2hyb21pdW0gQVBJLgoK
KiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKFdlYktpdDo6V2ViU2V0dGluZ3M6Oik6IEFkZGVkIGFu
IGVudW0gZm9yIEVkaXRpbmdCZWhhdmlvciB0eXBlcy4KKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNw
cDoKKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGRlZC4K
KiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CgpXZWJLaXQvbWFjOgoKRXhwb3NlIHRoZSBFZGl0aW5n
QmVoYXZpb3Igc2V0dGluZyBpbiB0aGUgTWFjIEFQSS4KCiogV2ViVmlldy9XZWJGcmFtZS5tbToK
KGNvcmUpOgoqIFdlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oOiBBZGRlZCBhIGNvbnZlcnNpb24g
bWV0aG9kIGZyb20gdGhlIEFQSSBlbnVtIHRvIHRoZSBXZWJDb3JlIGVudW0uCiogV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogQWRkZWQgYSBwcmVmZXJlbmNlIGtleSBmb3IgdGhl
IG5ldyBzZXR0aW5nLgoqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CigrW1dlYlByZWZlcmVu
Y2VzIGluaXRpYWxpemVdKTogSW5pdGlhbGl6ZSB0aGUgRWRpdGluZ0JlaGF2aW9yIHRvIE1hYyBz
dHlsZS4KKC1bV2ViUHJlZmVyZW5jZXMgZWRpdGluZ0JlaGF2aW9yXSk6IEFkZGVkLgooLVtXZWJQ
cmVmZXJlbmNlcyBzZXRFZGl0aW5nQmVoYXZpb3I6XSk6IEFkZGVkLgoqIFdlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmg6IEFkZGVkIHRoZSBuZXcgQVBJIHBvaW50cyB0byB0aGUgcHJpdmF0
ZSBBUEkuCiogV2ViVmlldy9XZWJWaWV3Lm1tOgooLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5n
ZWROb3RpZmljYXRpb246XSk6IFNldCB0aGUgZWRpdGluZyBiZWhhdmlvciB2aWEgdGhlIFdlYlBy
ZWZlcmVuY2VzIHNldHRpbmcuCgpXZWJLaXQvd2luOgoKRXhwb3NlIHRoZSBFZGl0aW5nQmVoYXZp
b3Igc2V0dGluZyBpbiB0aGUgV2luZG93cyBBUEkuCgoqIEludGVyZmFjZXMvSVdlYlByZWZlcmVu
Y2VzLmlkbDogQWRkIHRoZSBBUEkgcG9pbnQgZm9yIHNldHRpbmcgdGhlIGVkaXRpbmcgYmVoYXZp
b3IuCiogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZCBhIGtleSBmb3IgdGhlIGVkaXRp
bmcgYmVoYXZpb3Igc2V0dGluZy4KKiBXZWJQcmVmZXJlbmNlcy5jcHA6CihXZWJQcmVmZXJlbmNl
czo6ZWRpdGluZ0JlaGF2aW9yKTogQWRkZWQuCihXZWJQcmVmZXJlbmNlczo6c2V0RWRpdGluZ0Jl
aGF2aW9yKTogQWRkZWQuCiogV2ViUHJlZmVyZW5jZXMuaDogQWRkIG1ldGhvZCBkZWNsYXJhdGlv
bnMuCiogV2ViVmlldy5jcHA6CihXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOiBV
cGRhdGUgdGhlIFdlYkNvcmUgc2V0dGluZyBiYXNlZCBvbiB0aGUgV2ViUHJlZmVyZW5jZXMgc2V0
dGluZy4KCldlYktpdFRvb2xzOgoKKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHA6CihzZXRFZGl0aW5nQmVoYXZpb3JDYWxsYmFjayk6IEFkZGVkLgooTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6IEV4cG9zZSB0aGUgc2V0RWRpdGluZ0JlaGF2aW9y
Q2FsbGJhY2sgZnVuY3Rpb24uCiogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aDoKKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6IEFk
ZCBjYWxsYmFjayBtZXRob2QgZm9yIHNldHRpbmcgZWRpdGluZyBiZWhhdmlvci4KKiBEdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOiBEZWNsYXJhdGlvbiBmb3Ig
dGhpcyBtZXRob2QuCiogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcDoKKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBJbXBsZW1l
bnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCiogRHVtcFJlbmRlclRyZWUvbWFj
L0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVk
aXRpbmdCZWhhdmlvcik6IERpdHRvCiogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5jcHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTog
QWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCiog
RHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oOgooTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZCBzbG90IGZvciBjb250cm9sbGluZyBl
ZGl0b3IgYmVoYXZpb3IuCiogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVy
V2luLmNwcDoKKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBJbXBs
ZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCiogRHVtcFJlbmRlclRyZWUv
d3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
RWRpdGluZ0JlaGF2aW9yKTogQWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJl
aGF2aW9yIGNvbnRyb2wuCgpMYXlvdXRUZXN0czoKCiogZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5k
LXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbDogVXNlIHRoZSBuZXcgRFJUIHN1cHBv
cnQgZm9yIGNoYW5naW5nIGVkaXRpbmcgYmVoYXZpb3IuCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5ICsrKysrCiAuLi4vZXh0ZW5k
LXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbCAgICAgICB8ICAgMzMgKysrKysrKysr
KysrKystLS0tLQogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDE1ICsrKysrKysrKwogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5n
cy5oICAgICAgICAgICAgICAgfCAgICA2ICsrKwogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuY3BwICAgICAgICAgICAgfCAgIDEwICsrKysrKwogV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTZXR0aW5nc0ltcGwuaCAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdC9tYWMvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysrKysrKysrKysK
IFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSAgICAgICAgICAgICAgICAgICAgIHwgICAx
MiArKysrKysrCiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oICAgICAgICAg
ICAgICB8ICAgIDEgKwogV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oICAgICAgfCAgICAxICsKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSAg
ICAgICAgICAgICAgIHwgICAxMSArKysrKysKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaCAgICAgICAgIHwgICAgOCArKysrKwogV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0gICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdC93aW4vQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOCArKysrKysrKysrKwogV2Vi
S2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGwgICAgICAgICAgfCAgICA5ICsr
KysrCiBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oICAgICAgICAgICAgICB8
ICAgIDEgKwogV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDE1ICsrKysrKysrKwogV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICA2ICsrKwogV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICsrKwogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI2ICsrKysrKysrKysrKysrKwogLi4uL0R1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCAgICAgICAgfCAgIDE2ICsrKysr
KysrKwogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCAg
fCAgICAxICsKIC4uLi9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgICAgICAgICAg
ICAgIHwgICAxMiArKysrKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuaCB8ICAgIDIgKwogLi4uL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0
Q29udHJvbGxlckd0ay5jcHAgfCAgIDE0ICsrKysrKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvbWFj
L0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tICB8ICAgIDkgKysrKysKIC4uLi9EdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCAgIHwgICAgNSArKysKIC4uLi9EdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmggICAgIHwgICAgMiArCiAuLi4v
RHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcCB8ICAgMTcgKysr
KysrKysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3Bw
ICAgfCAgICA1ICsrKwogMzAgZmlsZXMgY2hhbmdlZCwgMjg0IGluc2VydGlvbnMoKyksIDkgZGVs
ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDAzM2NjMTguLjBmYzc5ZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxMC0wNS0wNiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRo
ZSBlZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcgaW4gRFJUIHRvIHRlc3QgYWxsIGVkaXRpbmcgY29k
ZSBwYXRocworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzg2MDMKKworICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0
ZXItZG91YmxlLWNsaWNrLmh0bWw6IFVzZSB0aGUgbmV3IERSVCBzdXBwb3J0IGZvciBjaGFuZ2lu
ZyBlZGl0aW5nIGJlaGF2aW9yLgorCiAyMDEwLTA1LTA2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRv
dWJsZS1jbGljay5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNl
bGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbAppbmRleCA4OTEwODBiLi4zMzg4NDk2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9u
LWFmdGVyLWRvdWJsZS1jbGljay5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLmh0bWwKQEAgLTE4LDEzICsx
OCwzMSBAQAogICAgICAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgxMDAwKTsKICAgICB9CiAK
LSAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICBmdW5jdGlvbiBsb2dSZXN1bHQocmVzdWx0KQor
ICAgIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmZpcnN0Q2hp
bGQuZGF0YSA9IHJlc3VsdDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAg
ewogICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlciB8fCAhd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKIAorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRF
ZGl0aW5nQmVoYXZpb3IoIm1hYyIpOworICAgICAgICBpZiAoIXJ1blRlc3QoImEgcGFyYWdyYXBo
IikpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0RWRpdGluZ0JlaGF2aW9yKCJ3aW5kb3dzIik7CisgICAgICAgIGlmICghcnVuVGVzdCgicGFy
YWdyYSIpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxvZ1Jlc3VsdCgiU1VDQ0VT
UyIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoZXhwZWN0ZWRUZXh0KQorICAgIHsK
ICAgICAgICAgZG91YmxlQ2xpY2tXb3JkKCk7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLm1vZGlm
eSgiZXh0ZW5kIiwgImJhY2t3YXJkIiwgImNoYXJhY3RlciIpOwogICAgICAgICBnZXRTZWxlY3Rp
b24oKS5tb2RpZnkoImV4dGVuZCIsICJiYWNrd2FyZCIsICJjaGFyYWN0ZXIiKTsKQEAgLTMyLDE5
ICs1MCwxNiBAQAogICAgICAgICBnZXRTZWxlY3Rpb24oKS5tb2RpZnkoImV4dGVuZCIsICJiYWNr
d2FyZCIsICJjaGFyYWN0ZXIiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCJleHRl
bmQiLCAiYmFja3dhcmQiLCAiY2hhcmFjdGVyIik7CiAKLSAgICAgICAgdmFyIHJlc3VsdDsKICAg
ICAgICAgdmFyIHNlbGVjdGVkVGV4dCA9IGdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0gICAg
ICAgIHZhciBvbk1hY1BsYXRmb3JtID0gbmF2aWdhdG9yLnVzZXJBZ2VudC5zZWFyY2goL1xiTWFj
IE9TIFhcYi8pICE9IC0xOwotICAgICAgICB2YXIgZXhwZWN0ZWRUZXh0ID0gb25NYWNQbGF0Zm9y
bSA/ICJhIHBhcmFncmFwaCIgOiAicGFyYWdyYSI7CiAgICAgICAgIGlmIChzZWxlY3RlZFRleHQg
PT0gZXhwZWN0ZWRUZXh0KQotICAgICAgICAgICAgcmVzdWx0ID0gIlNVQ0NFU1MiOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICByZXN1bHQgPSAiRkFJTFVSRTogVGhlIHNlbGVjdGVkIHRleHQg
aXMgXCIiICsgc2VsZWN0ZWRUZXh0ICsgIlwiIGFuZCBzaG91bGQgYmUgXCIiICsgZXhwZWN0ZWRU
ZXh0ICsgIlwiLiI7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5m
aXJzdENoaWxkLmRhdGEgPSByZXN1bHQ7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
ICAgICBsb2dSZXN1bHQoIkZBSUxVUkU6IFRoZSBzZWxlY3RlZCB0ZXh0IGlzIFwiIiArIHNlbGVj
dGVkVGV4dCArICJcIiBhbmQgc2hvdWxkIGJlIFwiIiArIGV4cGVjdGVkVGV4dCArICJcIi4iKTsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIDwvc2NyaXB0PgogPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KIDxwPlRoaXMg
dGVzdHMgbW9kaWZ5aW5nIGEgc2VsZWN0aW9uIGNyZWF0ZWQgd2l0aCBhIGRvdWJsZSBjbGljayB3
aXRoIHNoaWZ0IGFycm93IGtleS48L3A+CiA8cCBzdHlsZT0iY29sb3I6Z3JlZW4iPgogICAgIFRo
aXMgdGVzdCBkb2VzIG5vdCBydW4gaW50ZXJhY3RpdmVseS4KZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGNjZGE0
NWIuLjIxNjFiYWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTA1LTA2ICBN
YXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBvc2UgdGhlIGVkaXRpbmcgYmVoYXZp
b3Igc2V0dGluZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRpdGluZyBjb2RlIHBhdGhzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODYwMworCisgICAgICAg
IEV4cG9zZSB0aGUgRWRpdGluZ0JlaGF2aW9yIHByZWZlcmVuY2UgaW4gdGhlIENocm9taXVtIEFQ
SS4KKworICAgICAgICAqIHB1YmxpYy9XZWJTZXR0aW5ncy5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTZXR0aW5nczo6KTogQWRkZWQgYW4gZW51bSBmb3IgRWRpdGluZ0JlaGF2aW9yIHR5cGVzLgor
ICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuY3BwOiAKKyAgICAgICAgKFdlYktpdDo6V2Vi
U2V0dGluZ3NJbXBsOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGRlZC4KKyAgICAgICAgKiBzcmMv
V2ViU2V0dGluZ3NJbXBsLmg6CisKIDIwMTAtMDUtMDYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBiL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViU2V0dGluZ3MuaAppbmRleCAzNTZkOWZhLi44NTliNjQxIDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJTZXR0aW5ncy5oCkBAIC00Myw2ICs0MywxMSBAQCBjbGFzcyBXZWJVUkw7CiAv
LyB0aGVzZSBmdW5jdGlvbnMgaGF2ZSBhIDE6MSBtYXBwaW5nIHdpdGggdGhlIG1ldGhvZHMgaW4g
V2ViQ29yZS9wYWdlL3NldHRpbmdzLmguCiBjbGFzcyBXZWJTZXR0aW5ncyB7CiBwdWJsaWM6Cisg
ICAgZW51bSBFZGl0aW5nQmVoYXZpb3IgeworICAgICAgICBFZGl0aW5nQmVoYXZpb3JNYWMgPSAx
LAorICAgICAgICBFZGl0aW5nQmVoYXZpb3JXaW5kb3dzCisgICAgfTsKKwogICAgIHZpcnR1YWwg
dm9pZCBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRGaXhlZEZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRTZXJpZkZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJikgPSAwOwpA
QCAtODQsNiArODksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldE9mZmxpbmVXZWJB
cHBsaWNhdGlvbkNhY2hlRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEV4
cGVyaW1lbnRhbFdlYkdMRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNo
b3dEZWJ1Z0JvcmRlcnMoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0aW5nQmVo
YXZpb3IoRWRpdGluZ0JlaGF2aW9yKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICB+V2ViU2V0dGlu
Z3MoKSB7IH0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBs
LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAppbmRleCAzYWRm
M2FjLi5jMmUyNmJkIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdz
SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBA
IC0yNjksNCArMjY5LDE0IEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRTaG93RGVidWdCb3Jk
ZXJzKGJvb2wgc2hvdykKICAgICBtX3NldHRpbmdzLT5zZXRTaG93RGVidWdCb3JkZXJzKHNob3cp
OwogfQogCit2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdC
ZWhhdmlvciBiZWhhdmlvcikKK3sKKyAgICBpZiAoYmVoYXZpb3IgPT0gRWRpdGluZ0JlaGF2aW9y
TWFjKSB7CisgICAgICAgIG1fc2V0dGluZ3MtPnNldEVkaXRpbmdCZWhhdmlvcihXZWJDb3JlOjpF
ZGl0aW5nTWFjQmVoYXZpb3IpCisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBtX3NldHRp
bmdzLT5zZXRFZGl0aW5nQmVoYXZpb3IoV2ViQ29yZTo6RWRpdGluZ1dpbmRvd3NCZWhhdmlvcikK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNldHRpbmdzSW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0lt
cGwuaAppbmRleCA1NGM2NjBiLi43MDIyNWZmIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNldHRpbmdzSW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGlu
Z3NJbXBsLmgKQEAgLTg2LDYgKzg2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRP
ZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lk
IHNldEV4cGVyaW1lbnRhbFdlYkdMRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
U2hvd0RlYnVnQm9yZGVycyhib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdGluZ0JlaGF2
aW9yKEVkaXRpbmdCZWhhdmlvcik7CiAKIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6U2V0dGluZ3Mq
IG1fc2V0dGluZ3M7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCmluZGV4IDgwN2UyYWQuLjM4OGQxMDUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9t
YWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAK
KzIwMTAtMDUtMDYgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSB0aGUg
ZWRpdGluZyBiZWhhdmlvciBzZXR0aW5nIGluIERSVCB0byB0ZXN0IGFsbCBlZGl0aW5nIGNvZGUg
cGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4
NjAzCisKKyAgICAgICAgRXhwb3NlIHRoZSBFZGl0aW5nQmVoYXZpb3Igc2V0dGluZyBpbiB0aGUg
TWFjIEFQSS4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgIChjb3Jl
KToKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaDogQWRkZWQgYSBjb252ZXJz
aW9uIG1ldGhvZCBmcm9tIHRoZSBBUEkgZW51bSB0byB0aGUgV2ViQ29yZSBlbnVtLgorICAgICAg
ICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZGVkIGEgcHJlZmVyZW5j
ZSBrZXkgZm9yIHRoZSBuZXcgc2V0dGluZy4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVu
Y2VzLm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6IEluaXRpYWxp
emUgdGhlIEVkaXRpbmdCZWhhdmlvciB0byBNYWMgc3R5bGUuCisgICAgICAgICgtW1dlYlByZWZl
cmVuY2VzIGVkaXRpbmdCZWhhdmlvcl0pOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViUHJlZmVyZW5j
ZXMgc2V0RWRpdGluZ0JlaGF2aW9yOl0pOiBBZGRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlBy
ZWZlcmVuY2VzUHJpdmF0ZS5oOiBBZGRlZCB0aGUgbmV3IEFQSSBwb2ludHMgdG8gdGhlIHByaXZh
dGUgQVBJLgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmll
dyBfcHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uOl0pOiBTZXQgdGhlIGVkaXRpbmcgYmVo
YXZpb3IgdmlhIHRoZSBXZWJQcmVmZXJlbmNlcyBzZXR0aW5nLgorCiAyMDEwLTA1LTA2ICBTdGV2
ZSBCbG9jayAgPHN0ZXZlYmxvY2tAZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBF
cmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSBi
L1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQppbmRleCBiNDE2OWI2Li44Yzg3YTMzIDEw
MDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KKysrIGIvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lLm1tCkBAIC0xOTYsNiArMTk2LDE4IEBAIEVkaXRhYmxlTGlua0Jl
aGF2aW9yIGNvcmUoV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IgZWRpdGFibGVMaW5rQmVoYXZp
b3IpCiAgICAgcmV0dXJuIEVkaXRhYmxlTGlua0RlZmF1bHRCZWhhdmlvcjsKIH0KIAorV2ViQ29y
ZTo6RWRpdGluZ0JlaGF2aW9yIGNvcmUoV2ViS2l0RWRpdGluZ0JlaGF2aW9yIGJlaGF2aW9yKQor
eworICAgIHN3aXRjaCAoYmVoYXZpb3IpIHsKKyAgICAgICAgY2FzZSBXZWJLaXRFZGl0aW5nTWFj
QmVoYXZpb3I6CisgICAgICAgICAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGluZ01hY0JlaGF2aW9y
OworICAgICAgICBjYXNlIFdlYktpdEVkaXRpbmdXaW5kb3dzQmVoYXZpb3I6CisgICAgICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6RWRpdGluZ1dpbmRvd3NCZWhhdmlvcjsKKyAgICB9CisgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRpbmdNYWNCZWhhdmlv
cjsKK30KKwogVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciBjb3JlKFdlYlRl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgYmVoYXZpb3IpCiB7CiAgICAgc3dp
dGNoIChiZWhhdmlvcikgewpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
SW50ZXJuYWwuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgKaW5kZXgg
NGMxZWU0MC4uOWIyMjQ4YSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
SW50ZXJuYWwuaAorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCkBA
IC03MSw2ICs3MSw3IEBAIFdlYlZpZXcgKmtpdChXZWJDb3JlOjpQYWdlKik7CiAKIFdlYkNvcmU6
OkVkaXRhYmxlTGlua0JlaGF2aW9yIGNvcmUoV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IpOwog
V2ViQ29yZTo6VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciBjb3JlKFdlYlRl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IpOworV2ViQ29yZTo6RWRpdGluZ0Jl
aGF2aW9yIGNvcmUoV2ViS2l0RWRpdGluZ0JlaGF2aW9yKTsKIAogV2ViVmlldyAqZ2V0V2ViVmll
dyhXZWJGcmFtZSAqd2ViRnJhbWUpOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZUtleXNQcml2YXRlLmgKaW5kZXggZjRhZTMzMy4uNGMyMmY1OSAxMDA2NDQKLS0tIGEvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTA0LDYgKzEwNCw3IEBA
CiAjZGVmaW5lIFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yUHJlZmVyZW5jZUtleSBAIldlYktp
dEVkaXRhYmxlTGlua0JlaGF2aW9yIgogI2RlZmluZSBXZWJLaXRDYWNoZU1vZGVsUHJlZmVyZW5j
ZUtleSBAIldlYktpdENhY2hlTW9kZWxQcmVmZXJlbmNlS2V5IgogI2RlZmluZSBXZWJLaXRUZXh0
RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yUHJlZmVyZW5jZUtleSBAIldlYktpdFRl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JQcmVmZXJlbmNlS2V5IgorI2RlZmlu
ZSBXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RWRpdGluZ0JlaGF2
aW9yIgogCiAvLyBDb3JlR3JhcGhpY3MgZGVmZXJyZWQgdXBkYXRlcyBhcmUgZGlzYWJsZWQgaWYg
V2ViS2l0RW5hYmxlQ29hbGVzY2VkVXBkYXRlc1ByZWZlcmVuY2VLZXkgaXMgc2V0CiAvLyB0byBO
Tywgb3IgaGFzIG5vIHZhbHVlLiAgRm9yIGNvbXBhdGliaWxpdHkgd2l0aCBNYWMgT1MgWCAxMC40
LjYsIGRlZmVycmVkIHVwZGF0ZXMgYXJlIE9GRiBieQpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VzLm1tCmluZGV4IDlkZTg0OTUuLjkwNmFmNDEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW0KQEAgLTMzNCw2ICszMzQsNyBAQCBzdGF0aWMgV2ViQ2FjaGVNb2RlbCBjYWNoZU1v
ZGVsRm9yTWFpbkJ1bmRsZSh2b2lkKQogICAgICAgICBAIjAiLCAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFdlYktpdFBERlNjYWxlRmFjdG9yUHJlZmVyZW5jZUtleSwKICAgICAgICAgQCIwIiwg
ICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJLaXRVc2VTaXRlU3BlY2lmaWNTcG9vZmluZ1By
ZWZlcmVuY2VLZXksCiAgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OldlYktpdEVkaXRh
YmxlTGlua0RlZmF1bHRCZWhhdmlvcl0sIFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yUHJlZmVy
ZW5jZUtleSwKKyAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6V2ViS2l0RWRpdGluZ01h
Y0JlaGF2aW9yXSwgV2ViS2l0RWRpdGluZ0JlaGF2aW9yUHJlZmVyZW5jZUtleSwKICNpZiAhZGVm
aW5lZChCVUlMRElOR19PTl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkK
ICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6V2ViVGV4dERpcmVjdGlvblN1Ym1lbnVB
dXRvbWF0aWNhbGx5SW5jbHVkZWRdLAogI2Vsc2UKQEAgLTEyMzcsNiArMTIzOCwxNiBAQCBzdGF0
aWMgTlNTdHJpbmcgKmNsYXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3NlbGYgX3NldEJvb2xW
YWx1ZTpmbGFnIGZvcktleTpXZWJLaXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkUHJlZmVyZW5jZUtl
eV07CiB9CiAKKy0gKFdlYktpdEVkaXRpbmdCZWhhdmlvcillZGl0aW5nQmVoYXZpb3IKK3sKKyAg
ICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViS2l0RWRpdGluZ0JlaGF2aW9yPiAoW3NlbGYgX2ludGVn
ZXJWYWx1ZUZvcktleTpXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJlbmNlS2V5XSk7Cit9CisK
Ky0gKHZvaWQpc2V0RWRpdGluZ0JlaGF2aW9yOihXZWJLaXRFZGl0aW5nQmVoYXZpb3IpYmVoYXZp
b3IKK3sKKyAgICBbc2VsZiBfc2V0SW50ZWdlclZhbHVlOmJlaGF2aW9yIGZvcktleTpXZWJLaXRF
ZGl0aW5nQmVoYXZpb3JQcmVmZXJlbmNlS2V5XTsKK30KKwogLSAodm9pZClkaWRSZW1vdmVGcm9t
V2ViVmlldwogewogICAgIEFTU0VSVChfcHJpdmF0ZS0+bnVtV2ViVmlld3MpOwpkaWZmIC0tZ2l0
IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IGVlNzg1ZTkuLjgzMmMwODgg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAor
KysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTQzLDYg
KzQzLDExIEBAIHR5cGVkZWYgZW51bSB7CiAgICAgV2ViVGV4dERpcmVjdGlvblN1Ym1lbnVBbHdh
eXNJbmNsdWRlZAogfSBXZWJUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yOwog
Cit0eXBlZGVmIGVudW0geworICAgIFdlYktpdEVkaXRpbmdNYWNCZWhhdmlvciwKKyAgICBXZWJL
aXRFZGl0aW5nV2luZG93c0JlaGF2aW9yLAorfSBXZWJLaXRFZGl0aW5nQmVoYXZpb3I7CisKIGV4
dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uOwogZXh0ZXJu
IE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc1JlbW92ZWROb3RpZmljYXRpb247CiAKQEAgLTEyOSw2
ICsxMzQsOSBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzUmVtb3ZlZE5vdGlmaWNh
dGlvbjsKIC0gKFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yKWVkaXRhYmxlTGlua0JlaGF2aW9y
OwogLSAodm9pZClzZXRFZGl0YWJsZUxpbmtCZWhhdmlvcjooV2ViS2l0RWRpdGFibGVMaW5rQmVo
YXZpb3IpYmVoYXZpb3I7CiAKKy0gKFdlYktpdEVkaXRpbmdCZWhhdmlvcillZGl0aW5nQmVoYXZp
b3I7CistICh2b2lkKXNldEVkaXRpbmdCZWhhdmlvcjooV2ViS2l0RWRpdGluZ0JlaGF2aW9yKWJl
aGF2aW9yOworCiAtIChXZWJUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKXRl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I7CiAtICh2b2lkKXNldFRleHREaXJl
Y3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I6KFdlYlRleHREaXJlY3Rpb25TdWJtZW51SW5j
bHVzaW9uQmVoYXZpb3IpYmVoYXZpb3I7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggMTllYjQx
OC4uMmE3NzlmOCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysr
IGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTEzMjMsNiArMTMyMyw3IEBAIHN0
YXRpYyBib29sIGZhc3REb2N1bWVudFRlYXJkb3duRW5hYmxlZCgpCiAgICAgc2V0dGluZ3MtPnNl
dFRleHRBcmVhc0FyZVJlc2l6YWJsZShbcHJlZmVyZW5jZXMgdGV4dEFyZWFzQXJlUmVzaXphYmxl
XSk7CiAgICAgc2V0dGluZ3MtPnNldFNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQoW3ByZWZl
cmVuY2VzIHNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXRdKTsKICAgICBzZXR0aW5ncy0+c2V0
RWRpdGFibGVMaW5rQmVoYXZpb3IoY29yZShbcHJlZmVyZW5jZXMgZWRpdGFibGVMaW5rQmVoYXZp
b3JdKSk7CisgICAgc2V0dGluZ3MtPnNldEVkaXRpbmdCZWhhdmlvcihjb3JlKFtwcmVmZXJlbmNl
cyBlZGl0aW5nQmVoYXZpb3JdKSk7CiAgICAgc2V0dGluZ3MtPnNldFRleHREaXJlY3Rpb25TdWJt
ZW51SW5jbHVzaW9uQmVoYXZpb3IoY29yZShbcHJlZmVyZW5jZXMgdGV4dERpcmVjdGlvblN1Ym1l
bnVJbmNsdXNpb25CZWhhdmlvcl0pKTsKICAgICBzZXR0aW5ncy0+c2V0RE9NUGFzdGVBbGxvd2Vk
KFtwcmVmZXJlbmNlcyBpc0RPTVBhc3RlQWxsb3dlZF0pOwogICAgIHNldHRpbmdzLT5zZXRVc2Vz
UGFnZUNhY2hlKFtzZWxmIHVzZXNQYWdlQ2FjaGVdKTsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4v
Q2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggZTc3MTNjZS4uMmYxZGZiNSAx
MDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNS0wNiAgTWFydGluIFJvYmluc29uICA8bXJvYmlu
c29uQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgRXhwb3NlIHRoZSBlZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcgaW4gRFJUIHRvIHRl
c3QgYWxsIGVkaXRpbmcgY29kZSBwYXRocworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2MDMKKworICAgICAgICBFeHBvc2UgdGhlIEVkaXRpbmdCZWhh
dmlvciBzZXR0aW5nIGluIHRoZSBXaW5kb3dzIEFQSS4KKworICAgICAgICAqIEludGVyZmFjZXMv
SVdlYlByZWZlcmVuY2VzLmlkbDogQWRkIHRoZSBBUEkgcG9pbnQgZm9yIHNldHRpbmcgdGhlIGVk
aXRpbmcgYmVoYXZpb3IuCisgICAgICAgICogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEFk
ZCBhIGtleSBmb3IgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZy4KKyAgICAgICAgKiBXZWJQ
cmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6ZWRpdGluZ0JlaGF2aW9y
KTogQWRkZWQuCisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6c2V0RWRpdGluZ0JlaGF2aW9yKTog
QWRkZWQuCisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuaDogQWRkIG1ldGhvZCBkZWNsYXJhdGlv
bnMuCisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVm
ZXJlbmNlc0NoYW5nZWQpOiBVcGRhdGUgdGhlIFdlYkNvcmUgc2V0dGluZyBiYXNlZCBvbiB0aGUg
V2ViUHJlZmVyZW5jZXMgc2V0dGluZy4KKwogMjAxMC0wNS0wNSAgU3R1YXJ0IE1vcmdhbiAgPHN0
dWFydG1vcmdhbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlz
aGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5p
ZGwgYi9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzLmlkbAppbmRleCAxYzQz
MTM1Li5mZjMwYTAzIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZl
cmVuY2VzLmlkbAorKysgYi9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzLmlk
bApAQCAtNDcsNiArNDcsMTIgQEAgdHlwZWRlZiBlbnVtIFdlYktpdEVkaXRhYmxlTGlua0JlaGF2
aW9yIHsKICAgICBXZWJLaXRFZGl0YWJsZUxpbmtOZXZlckxpdmUKIH0gV2ViS2l0RWRpdGFibGVM
aW5rQmVoYXZpb3I7CiAKK3R5cGVkZWYgZW51bSBXZWJLaXRFZGl0aW5nQmVoYXZpb3IgeworICAg
IFdlYktpdEVkaXRpbmdNYWNCZWhhdmlvciA9IDAsCisgICAgV2ViS2l0RWRpdGluZ1dpbmRvd3NC
ZWhhdmlvciwKK30gV2ViS2l0RWRpdGluZ0JlaGF2aW9yOworCisKIHR5cGVkZWYgZW51bSBXZWJL
aXRDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5IHsKICAgICBXZWJLaXRDb29raWVTdG9yYWdlQWNj
ZXB0UG9saWN5QWx3YXlzID0gMCwKICAgICBXZWJLaXRDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5
TmV2ZXIsCkBAIC0xNjIsNiArMTY4LDkgQEAgaW50ZXJmYWNlIElXZWJQcmVmZXJlbmNlcyA6IElV
bmtub3duCiAgICAgSFJFU1VMVCBlZGl0YWJsZUxpbmtCZWhhdmlvcihbb3V0LCByZXR2YWxdIFdl
YktpdEVkaXRhYmxlTGlua0JlaGF2aW9yKiBlZGl0YWJsZUxpbmtCZWhhdmlvcik7CiAgICAgSFJF
U1VMVCBzZXRFZGl0YWJsZUxpbmtCZWhhdmlvcihbaW5dIFdlYktpdEVkaXRhYmxlTGlua0JlaGF2
aW9yIGJlaGF2aW9yKTsKIAorICAgIEhSRVNVTFQgZWRpdGluZ0JlaGF2aW9yKFtvdXQsIHJldHZh
bF0gV2ViS2l0RWRpdGluZ0JlaGF2aW9yKiBlZGl0aW5nQmVoYXZpb3IpOworICAgIEhSRVNVTFQg
c2V0RWRpdGluZ0JlaGF2aW9yKFtpbl0gV2ViS2l0RWRpdGluZ0JlaGF2aW9yIGJlaGF2aW9yKTsK
KwogICAgIEhSRVNVTFQgY29va2llU3RvcmFnZUFjY2VwdFBvbGljeShbb3V0LCByZXR2YWxdIFdl
YktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kqIGFjY2VwdFBvbGljeSk7CiAgICAgSFJFU1VM
VCBzZXRDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5KFtpbl0gV2ViS2l0Q29va2llU3RvcmFnZUFj
Y2VwdFBvbGljeSBhY2NlcHRQb2xpY3kpOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYlBy
ZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZh
dGUuaAppbmRleCBjNDlhOTZkLi5kYTYzNzU0IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYlBy
ZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQ
cml2YXRlLmgKQEAgLTc0LDYgKzc0LDcgQEAKICNkZWZpbmUgV2ViS2l0UERGRGlzcGxheU1vZGVQ
cmVmZXJlbmNlS2V5ICJXZWJLaXRQREZEaXNwbGF5TW9kZSIKICNkZWZpbmUgV2ViS2l0UERGU2Nh
bGVGYWN0b3JQcmVmZXJlbmNlS2V5ICJXZWJLaXRQREZTY2FsZUZhY3RvciIKICNkZWZpbmUgV2Vi
S2l0RWRpdGFibGVMaW5rQmVoYXZpb3JQcmVmZXJlbmNlS2V5ICJXZWJLaXRFZGl0YWJsZUxpbmtC
ZWhhdmlvciIKKyNkZWZpbmUgV2ViS2l0RWRpdGluZ0JlaGF2aW9yUHJlZmVyZW5jZUtleSAiV2Vi
S2l0RWRpdGluZ0JlaGF2aW9yIgogCiAvLyBXaW5kb3cgZGlzcGxheSBpcyB0aHJvdHRsZWQgdG8g
NjAgZnJhbWVzIHBlciBzZWNvbmQgaWYgV2ViS2l0VGhyb3R0bGVXaW5kb3dEaXNwbGF5UHJlZmVy
ZW5jZUtleQogLy8gaXMgc2V0IHRvIFlFUy4gIFRoZSB3aW5kb3cgZGlzcGxheSB0aHJvdHRsZSBp
cyBPRkYgYnkgZGVmYXVsdCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIE1hYyBPUyBYCmRpZmYgLS1n
aXQgYS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcCBiL1dlYktpdC93aW4vV2ViUHJlZmVy
ZW5jZXMuY3BwCmluZGV4IDMzZTkwNGQuLjNlN2VhNDIgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4v
V2ViUHJlZmVyZW5jZXMuY3BwCisrKyBiL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwCkBA
IC0xMTMwLDYgKzExMzAsMjEgQEAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJl
bmNlczo6c2V0RWRpdGFibGVMaW5rQmVoYXZpb3IoCiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKK0hS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViUHJlZmVyZW5jZXM6OmVkaXRpbmdCZWhhdmlvcigK
KyAgICAvKiBbb3V0LCByZXR2YWxdICovIFdlYktpdEVkaXRpbmdCZWhhdmlvciogZWRpdGluZ0Jl
aGF2aW9yKQoreworICAgICplZGl0aW5nQmVoYXZpb3IgPSAoV2ViS2l0RWRpdGluZ0JlaGF2aW9y
KSBpbnRlZ2VyVmFsdWVGb3JLZXkoQ0ZTVFIoV2ViS2l0RWRpdGluZ0JlaGF2aW9yUHJlZmVyZW5j
ZUtleSkpOworICAgIHJldHVybiBTX09LOworfQorCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IFdlYlByZWZlcmVuY2VzOjpzZXRFZGl0aW5nQmVoYXZpb3IoCisgICAgLyogW2luXSAqLyBXZWJL
aXRFZGl0YWJsZUxpbmtCZWhhdmlvciBiZWhhdmlvcikKK3sKKyAgICBzZXRJbnRlZ2VyVmFsdWUo
Q0ZTVFIoV2ViS2l0RWRpdGluZ0JlaGF2aW9yUHJlZmVyZW5jZUtleSksIGJlaGF2aW9yKTsKKyAg
ICByZXR1cm4gU19PSzsKK30KKworCiBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlByZWZl
cmVuY2VzOjpjb29raWVTdG9yYWdlQWNjZXB0UG9saWN5KCAKICAgICAgICAgLyogW3JldHZhbF1b
b3V0XSAqLyBXZWJLaXRDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5ICphY2NlcHRQb2xpY3kgKQog
ewpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oIGIvV2ViS2l0L3dpbi9X
ZWJQcmVmZXJlbmNlcy5oCmluZGV4IGNmZGVmYTguLjFlYTY5YzcgMTAwNjQ0Ci0tLSBhL1dlYktp
dC93aW4vV2ViUHJlZmVyZW5jZXMuaAorKysgYi9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgK
QEAgLTIzOCw2ICsyMzgsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRI
T0RDQUxMVFlQRSBzZXRFZGl0YWJsZUxpbmtCZWhhdmlvciggCiAgICAgICAgIC8qIFtpbl0gKi8g
V2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IgYmVoYXZpb3IpOwogCisgICAgdmlydHVhbCBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIGVkaXRpbmdCZWhhdmlvcigKKyAgICAgICAgLyogW3JldHZh
bF1bb3V0XSAqLyBXZWJLaXRFZGl0aW5nQmVoYXZpb3IqIGJlaGF2aW9yKTsKKworICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRFZGl0aW5nQmVoYXZpb3IoCisgICAgICAg
IC8qIFtpbl0gKi8gV2ViS2l0RWRpdGluZ0JlaGF2aW9yIGJlaGF2aW9yKTsKKwogICAgIHZpcnR1
YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBjb29raWVTdG9yYWdlQWNjZXB0UG9saWN5KCAK
ICAgICAgICAgLyogW3JldHZhbF1bb3V0XSAqLyBXZWJLaXRDb29raWVTdG9yYWdlQWNjZXB0UG9s
aWN5ICphY2NlcHRQb2xpY3kpOwogICAgICAgICAKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2Vi
Vmlldy5jcHAgYi9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCmluZGV4IDI0OGUzY2QuLjI2YTA0MDkg
MTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViVmlldy5jcHAKKysrIGIvV2ViS2l0L3dpbi9XZWJW
aWV3LmNwcApAQCAtNDU4Niw2ICs0NTg2LDEyIEBAIEhSRVNVTFQgV2ViVmlldzo6bm90aWZ5UHJl
ZmVyZW5jZXNDaGFuZ2VkKElXZWJOb3RpZmljYXRpb24qIG5vdGlmaWNhdGlvbikKICAgICAgICAg
cmV0dXJuIGhyOwogICAgIHNldHRpbmdzLT5zZXRFZGl0YWJsZUxpbmtCZWhhdmlvcigoRWRpdGFi
bGVMaW5rQmVoYXZpb3IpYmVoYXZpb3IpOwogCisgICAgV2ViS2l0RWRpdGluZ0JlaGF2aW9yIGJl
aGF2aW9yOworICAgIGhyID0gcHJlZmVyZW5jZXMtPmVkaXRpbmdCZWhhdmlvcigmYmVoYXZpb3Ip
OworICAgIGlmIChGQUlMRUQoaHIpKQorICAgICAgICByZXR1cm4gaHI7CisgICAgc2V0dGluZ3Mt
PnNldEVkaXRpbmdCZWhhdmlvcigoRWRpdGluZ0JlaGF2aW9yKWJlaGF2aW9yKTsKKwogICAgIGhy
ID0gcHJlZmVyZW5jZXMtPnVzZXNQYWdlQ2FjaGUoJmVuYWJsZWQpOwogICAgIGlmIChGQUlMRUQo
aHIpKQogICAgICAgICByZXR1cm4gaHI7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9DaGFuZ2VM
b2cgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKaW5kZXggN2VjMDI2YS4uNTgzMWIxNiAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDI5IEBACisyMDEwLTA1LTA2ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25A
d2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBFeHBvc2UgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZyBpbiBEUlQgdG8gdGVzdCBh
bGwgZWRpdGluZyBjb2RlIHBhdGhzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zODYwMworCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoc2V0RWRpdGluZ0JlaGF2aW9yQ2FsbGJhY2spOiBB
ZGRlZC4KKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOiBF
eHBvc2UgdGhlIHNldEVkaXRpbmdCZWhhdmlvckNhbGxiYWNrIGZ1bmN0aW9uLgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6CisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOiBBZGQgY2FsbGJhY2sg
bWV0aG9kIGZvciBzZXR0aW5nIGVkaXRpbmcgYmVoYXZpb3IuCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaDogRGVjbGFyYXRpb24gZm9yIHRo
aXMgbWV0aG9kLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJv
bGxlckd0ay5jcHA6IAorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdC
ZWhhdmlvcik6IEltcGxlbWVudGF0aW9uIG9mIGVkaXRpbmcgYmVoYXZpb3IgY29udHJvbC4KKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW06Cisg
ICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTogRGl0dG8K
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcDoK
KyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGRl
ZCBzdHViIGltcGxlbWVudGF0aW9uIG9mIGVkaXRpbmcgYmVoYXZpb3IgY29udHJvbC4KKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0Lmg6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTogQWRkIHNsb3QgZm9y
IGNvbnRyb2xsaW5nIGVkaXRvciBiZWhhdmlvci4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93
aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IEltcGxlbWVudGF0aW9uIG9mIGVkaXRpbmcgYmVo
YXZpb3IgY29udHJvbC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29u
dHJvbGxlcld4LmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5n
QmVoYXZpb3IpOiBBZGRlZCBzdHViIGltcGxlbWVudGF0aW9uIG9mIGVkaXRpbmcgYmVoYXZpb3Ig
Y29udHJvbC4KKwogMjAxMC0wNS0wNiAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBu
b2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5z
ZW4uCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKaW5kZXggYjRiNWJmMi4uNWQwZjJlNCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTQ0MSw2ICsxNDQx
LDIxIEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGF1dGhlbnRpY2F0ZVNlc3Npb25DYWxsYmFjayhKU0Nv
bnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYsCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5k
ZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBzZXRFZGl0aW5nQmVoYXZp
b3JDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpT
T2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVl
UmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgLy8gVGhlIGVk
aXRpbmcgYmVoYXZpb3Igc3RyaW5nLgorICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKKyAgICAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IGVkaXRpbmdCZWhhdmlvcihBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29w
eShjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikpOworICAgIEFTU0VSVCghKmV4Y2Vw
dGlvbik7CisKKyAgICBMYXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19j
YXN0PExheW91dFRlc3RDb250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3Qp
KTsKKyAgICBjb250cm9sbGVyLT5zZXRFZGl0aW5nQmVoYXZpb3IoZWRpdGluZ0JlaGF2aW9yLmdl
dCgpKTsKKworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKK30KKwog
Ly8gU3RhdGljIFZhbHVlcwogCiBzdGF0aWMgSlNWYWx1ZVJlZiBnZXRHbG9iYWxGbGFnQ2FsbGJh
Y2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIEpTU3RyaW5n
UmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpAQCAtMTU5MCw2ICsxNjA1
LDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0
aW9ucygpCiAgICAgICAgIHsgInNldEN1c3RvbVBvbGljeURlbGVnYXRlIiwgc2V0Q3VzdG9tUG9s
aWN5RGVsZWdhdGVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXREYXRhYmFzZVF1b3Rh
Iiwgc2V0RGF0YWJhc2VRdW90YUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sIAogICAgICAgICB7ICJzZXREb21h
aW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lIiwgc2V0RG9tYWluUmVsYXhhdGlvbkZv
cmJpZGRlbkZvclVSTFNjaGVtZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5
IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsgInNldEVkaXRp
bmdCZWhhdmlvciIsIHNldEVkaXRpbmdCZWhhdmlvckNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAg
IHsgInNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQiLCBzZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVk
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uIiwg
c2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0
SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyIsIHNldEhhbmRsZXNBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZXNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggMDhmOTY5Mi4uNzI2NmYwYSAxMDA2
NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5o
CkBAIC05OCw2ICs5OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZyYW1lRmxhdHRlbmluZ0Vu
YWJsZWQoYm9vbCBlbmFibGUpOwogICAgIHZvaWQgc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVk
KGJvb2wgZW5hYmxlKTsKICAgICB2b2lkIHNldFNjcm9sbGJhclBvbGljeShKU1N0cmluZ1JlZiBv
cmllbnRhdGlvbiwgSlNTdHJpbmdSZWYgcG9saWN5KTsKKyAgICB2b2lkIHNldEVkaXRpbmdCZWhh
dmlvcihKU1N0cmluZ1JlZiBlZGl0aW5nQmVoYXZpb3IpOwogCiAgICAgdm9pZCB3YWl0Rm9yUG9s
aWN5RGVsZWdhdGUoKTsKICAgICBzaXplX3Qgd2ViSGlzdG9yeUl0ZW1Db3VudCgpOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwCmluZGV4IDIxYjE2OGMuLmM5N2VjNWIgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAor
KysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAKQEAgLTE0OCw2ICsxNDgsNyBAQCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6TGF5b3V0
VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAgICBiaW5kTWV0aG9kKCJzZXRUaW1l
bGluZVByb2ZpbGluZ0VuYWJsZWQiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFRpbWVsaW5l
UHJvZmlsaW5nRW5hYmxlZCk7CiAgICAgYmluZE1ldGhvZCgiZXZhbHVhdGVJbldlYkluc3BlY3Rv
ciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldlYkluc3BlY3Rvcik7CiAgICAg
YmluZE1ldGhvZCgiZm9yY2VSZWRTZWxlY3Rpb25Db2xvcnMiLCAmTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmZvcmNlUmVkU2VsZWN0aW9uQ29sb3JzKTsKKyAgICBiaW5kTWV0aG9kKCJzZXRFZGl0aW5n
QmVoYXZpb3IiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik7CiAK
ICAgICAvLyBUaGUgZmFsbGJhY2sgbWV0aG9kIGlzIGNhbGxlZCB3aGVuIGFuIHVua25vd24gbWV0
aG9kIGlzIGludm9rZWQuCiAgICAgYmluZEZhbGxiYWNrTWV0aG9kKCZMYXlvdXRUZXN0Q29udHJv
bGxlcjo6ZmFsbGJhY2tNZXRob2QpOwpAQCAtMTE4NywzICsxMTg4LDE0IEBAIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTY3JpcHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1
bWVudHMsIENwcFZhCiAgICAgICAgIHJldHVybjsKICAgICBtX3NoZWxsLT53ZWJWaWV3KCktPmFk
ZFVzZXJTY3JpcHQoV2ViU3RyaW5nOjpmcm9tVVRGOChhcmd1bWVudHNbMF0udG9TdHJpbmcoKSks
IGFyZ3VtZW50c1sxXS50b0Jvb2xlYW4oKSk7CiB9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldEVkaXRpbmdCZWhhdmlvcihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7Cit7CisgICAgV2ViU2V0dGluZ3MqIHNldHRpbmdzID0gbV9zaGVsbC0+d2ViVmlldygpLT5z
ZXR0aW5ncygpOworICAgIHN0cmluZyBrZXkgPSBhcmd1bWVudHNbMF0udG9TdHJpbmcoKTsKKyAg
ICBpZiAoa2V5ID09ICJtYWMiKQorICAgICAgICBzZXR0aW5ncy0+c2V0RWRpdGluZ0JlaGF2aW9y
KEVkaXRpbmdCZWhhdmlvck1hYyk7CisKKyAgICBpZiAoa2V5ID09ICJ3aW5kb3dzIikKKyAgICAg
ICAgc2V0dGluZ3MtPnNldEVkaXRpbmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3JXaW5kb3dzKTsK
K30KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91
dFRlc3RDb250cm9sbGVyLmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGNhOGIwMTQuLmY5ZWQ4Y2MgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVy
LmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENv
bnRyb2xsZXIuaApAQCAtMTk1LDYgKzE5NSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZHVtcFNl
bGVjdGlvblJlY3QoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCisgICAg
dm9pZCBzZXRFZGl0aW5nQmVoYXZpb3IoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFu
dCopOworCiAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmUgb25seSBzdHVicy4gIFRPRE8ocGFtZyk6
IEltcGxlbWVudCBhbnkgb2YgdGhlc2UgdGhhdAogICAgIC8vIGFyZSBuZWVkZWQgdG8gcGFzcyB0
aGUgbGF5b3V0IHRlc3RzLgogICAgIHZvaWQgZHVtcEFzV2ViQXJjaGl2ZShjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVu
ZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAppbmRleCBjYmJhN2Nl
Li4wYTIwYmNjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5
b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNs
dWRlIDxKYXZhU2NyaXB0Q29yZS9KU1JldGFpblB0ci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRD
b3JlL0pTU3RyaW5nUmVmLmg+CiAKKyNpbmNsdWRlIDxjc3RyaW5nPgogI2luY2x1ZGUgPGlvc3Ry
ZWFtPgogI2luY2x1ZGUgPHNzdHJlYW0+CiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTY4OCwzICs2
ODksMTYgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjpt
YXJrZXJUZXh0Rm9yTGlzdEl0ZW0oSlNDb250ZXh0UmUKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OmF1dGhlbnRpY2F0ZVNlc3Npb24oSlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmLCBKU1N0cmlu
Z1JlZikKIHsKIH0KKwordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2
aW9yKEpTU3RyaW5nUmVmIGVkaXRpbmdCZWhhdmlvcikKK3sKKyAgICBXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3ID0gd2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcobWFpbkZyYW1lKTsKKyAgICBX
ZWJLaXRXZWJTZXR0aW5ncyogc2V0dGluZ3MgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NldHRpbmdz
KHdlYlZpZXcpOworCisgICAgY2hhciogZWRpdGluZ0JlaGF2aW9yU3RyaW5nID0gSlNTdHJpbmdD
b3B5VVRGOENTdHJpbmcoZWRpdGluZ0JlaGF2aW9yKTsKKyAgICBpZiAoIXN0cmNtcChlZGl0aW5n
QmVoYXZpb3JTdHJpbmcsICJ3aW5kb3dzIikpCisgICAgICAgIGdfb2JqZWN0X3NldChHX09CSkVD
VChzZXR0aW5ncyksICJlZGl0aW5nLWJlaGF2aW9yIiwgV0VCS0lUX0VESVRJTkdfQkVIQVZJT1Jf
V0lORE9XUywgTlVMTCk7CisgICAgaWYgKCFzdHJjbXAoZWRpdGluZ0JlaGF2aW9yU3RyaW5nLCAi
bWFjIikpCisgICAgICAgIGdfb2JqZWN0X3NldChHX09CSkVDVChzZXR0aW5ncyksICJlZGl0aW5n
LWJlaGF2aW9yIiwgV0VCS0lUX0VESVRJTkdfQkVIQVZJT1JfTUFDLCBOVUxMKTsKKyAgICBnX2Zy
ZWUoZWRpdGluZ0JlaGF2aW9yU3RyaW5nKTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbSBiL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQppbmRleCAzYjAz
YWVjLi43OTc0OWNiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMv
TGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCkBAIC04MzUsMyArODM1LDEyIEBAIHZv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmF1dGhlbnRpY2F0ZVNlc3Npb24oSlNTdHJpbmdSZWYg
dXJsLCBKU1N0cmluZ1JlZiB1c2VyCiAgICAgW1N5bmNocm9ub3VzTG9hZGVyIG1ha2VSZXF1ZXN0
OnJlcXVlc3Qgd2l0aFVzZXJuYW1lOihOU1N0cmluZyAqKXVzZXJuYW1lQ0YuZ2V0KCkgcGFzc3dv
cmQ6KE5TU3RyaW5nICopcGFzc3dvcmRDRi5nZXQoKV07CiAjZW5kaWYKIH0KKwordm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKEpTU3RyaW5nUmVmIGVkaXRpbmdC
ZWhhdmlvcikKK3sKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGVkaXRpbmdCZWhhdmlvckNG
KEFkb3B0Q0YsIEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGVkaXRp
bmdCZWhhdmlvcikpOworICAgIGlmIChbKE5TU3RyaW5nICopZWRpdGluZ0JlaGF2aW9yQ0YuZ2V0
KCkgaXNFcXVhbFRvU3RyaW5nOkAibWFjIl0pCisgICAgICAgIFtbV2ViUHJlZmVyZW5jZXMgc3Rh
bmRhcmRQcmVmZXJlbmNlc10gc2V0RWRpdGluZ0JlaGF2aW9yOldlYktpdEVkaXRpbmdNYWNCZWhh
dmlvcl07CisgICAgaWYgKFsoTlNTdHJpbmcgKillZGl0aW5nQmVoYXZpb3JDRi5nZXQoKSBpc0Vx
dWFsVG9TdHJpbmc6QCJ3aW5kb3dzIl0pCisgICAgICAgIFtbV2ViUHJlZmVyZW5jZXMgc3RhbmRh
cmRQcmVmZXJlbmNlc10gc2V0RWRpdGluZ0JlaGF2aW9yOldlYktpdEVkaXRpbmdNYWNCZWhhdmlv
cl07Cit9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91
dFRlc3RDb250cm9sbGVyUXQuY3BwCmluZGV4IDk3NzA5NmQuLmY0NTBmMDQgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3Bw
CisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuY3BwCkBAIC02MjQsNiArNjI0LDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmF1
dGhlbnRpY2F0ZVNlc3Npb24oY29uc3QgUVN0cmluZyYsIGNvbnN0IFFTdHJpbmcmLCBjCiAgICAg
Ly8gRklYTUU6IElmIHRoZXJlIGlzIGEgY29uY2VwdCBwZXItc2Vzc2lvbiAocGVyLXByb2Nlc3Mp
IGNyZWRlbnRpYWwgc3RvcmFnZSwgdGhlIGNyZWRlbnRpYWxzIHNob3VsZCBiZSBhZGRlZCB0byBp
dCBmb3IgbGF0ZXIgdXNlLgogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0
aW5nQmVoYXZpb3IoY29uc3QgUVN0cmluZyYgZWRpdGluZ0JlaGF2aW9yKQoreworICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQuCit9CisKIAogY29uc3QgdW5zaWduZWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6Om1heFZpZXdXaWR0aCA9IDgwMDsKIGNvbnN0IHVuc2lnbmVkIExheW91dFRlc3RDb250cm9s
bGVyOjptYXhWaWV3SGVpZ2h0ID0gNjAwOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCmluZGV4IGIxM2YyYWQuLjhlNzEx
YjkgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RD
b250cm9sbGVyUXQuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0LmgKQEAgLTE4OSw2ICsxODksOCBAQCBwdWJsaWMgc2xvdHM6CiAgICAg
Ly8gU2ltdWxhdGUgYSByZXF1ZXN0IGFuIGVtYmVkZGluZyBhcHBsaWNhdGlvbiBjb3VsZCBtYWtl
LCBwb3B1bGF0aW5nIHBlci1zZXNzaW9uIGNyZWRlbnRpYWwgc3RvcmFnZS4KICAgICB2b2lkIGF1
dGhlbnRpY2F0ZVNlc3Npb24oY29uc3QgUVN0cmluZyYgdXJsLCBjb25zdCBRU3RyaW5nJiB1c2Vy
bmFtZSwgY29uc3QgUVN0cmluZyYgcGFzc3dvcmQpOwogCisgICAgdm9pZCBzZXRFZGl0aW5nQmVo
YXZpb3IoY29uc3QgUVN0cmluZyYgZWRpdGluZ0JlaGF2aW9yKTsKKwogcHJpdmF0ZSBzbG90czoK
ICAgICB2b2lkIHByb2Nlc3NXb3JrKCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAgYi9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCmluZGV4IGQ4ODlj
ZmMuLjg2MGVmZGYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9M
YXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcApAQCAtMTI2MiwzICsxMjYyLDIwIEBA
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFdlYlZpZXdFZGl0YWJsZShib29sKQogdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXV0aGVudGljYXRlU2Vzc2lvbihKU1N0cmluZ1JlZiwg
SlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmKQogewogfQorCit2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IoSlNTdHJpbmdSZWYgZWRpdGluZ0JlaGF2aW9yKQorewor
ICAgIENPTVB0cjxJV2ViVmlldz4gd2ViVmlldzsKKyAgICBpZiAoRkFJTEVEKGZyYW1lLT53ZWJW
aWV3KCZ3ZWJWaWV3KSkpCisgICAgICAgIHJldHVybjsKKworICAgIENPTVB0cjxJV2ViUHJlZmVy
ZW5jZXM+IHByZWZlcmVuY2VzOworICAgIGlmIChGQUlMRUQod2ViVmlldy0+cHJlZmVyZW5jZXMo
JnByZWZlcmVuY2VzKSkpCisgICAgICAgIHJldHVybjsKKworICAgIHdzdHJpbmcgYmVoYXZpb3JX
c3RyaW5nID0ganNTdHJpbmdSZWZUb1dTdHJpbmcoZWRpdGluZ0JlaGF2aW9yKTsKKyAgICBpZiAo
YmVoYXZpb3JXc3RyaW5nID09IEwibWFjIikKKyAgICAgICAgcHJlZmVyZW5jZXMtPnNldEVkaXRp
bmdCZWhhdmlvcihXZWJLaXRFZGl0aW5nTWFjQmVoYXZpb3IpOworICAgIGlmIChiZWhhdmlvcldz
dHJpbmcgPT0gTCJ3aW5kb3dzIikKKyAgICAgICAgcHJlZmVyZW5jZXMtPnNldEVkaXRpbmdCZWhh
dmlvcihXZWJLaXRFZGl0aW5nV2luZG93c0JlaGF2aW9yKTsKK30KZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKaW5k
ZXggNDYxNGFjYS4uYjgyYTE3MSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKQEAgLTQ0MSwzICs0NDEsOCBA
QCBKU1ZhbHVlUmVmIExheW91dFRlc3RDb250cm9sbGVyOjpjb21wdXRlZFN0eWxlSW5jbHVkaW5n
VmlzaXRlZEluZm8oSlNDb250ZXh0UmVmLAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXV0
aGVudGljYXRlU2Vzc2lvbihKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmKQog
ewogfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IoSlNT
dHJpbmdSZWYgZWRpdGluZ0JlaGF2aW9yKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQKK30K
LS0gCjEuNi4zLjMKCg==
</data>
<flag name="commit-queue"
          id="39384"
          type_id="3"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55243</attachid>
            <date>2010-05-06 08:31:26 -0700</date>
            <delta_ts>2010-05-06 08:49:52 -0700</delta_ts>
            <desc>Patch with Chromium build fix (take 2)</desc>
            <filename>0001-Expose-the-editing-behavior-setting-in-DRT-to-test-a.patch</filename>
            <type>text/plain</type>
            <size>35013</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">RnJvbSA5MDNhN2UyOTRkMTA4OWUzYjI1ZThmMTY5M2EwOGIxYzEwMTUwOGJlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gUm9iaW5zb24gPG1yb2JpbnNvbkB3ZWJraXQub3Jn
PgpEYXRlOiBXZWQsIDUgTWF5IDIwMTAgMTY6MTg6NTkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBF
eHBvc2UgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRp
dGluZyBjb2RlIHBhdGhzCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzg2MDMKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKV2ViS2l0L2Nocm9taXVtOgoKRXhw
b3NlIHRoZSBFZGl0aW5nQmVoYXZpb3IgcHJlZmVyZW5jZSBpbiB0aGUgQ2hyb21pdW0gQVBJLgoK
KiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKFdlYktpdDo6V2ViU2V0dGluZ3M6Oik6IEFkZGVkIGFu
IGVudW0gZm9yIEVkaXRpbmdCZWhhdmlvciB0eXBlcy4KKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNw
cDoKKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGRlZC4K
KiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CgpXZWJLaXQvbWFjOgoKRXhwb3NlIHRoZSBFZGl0aW5n
QmVoYXZpb3Igc2V0dGluZyBpbiB0aGUgTWFjIEFQSS4KCiogV2ViVmlldy9XZWJGcmFtZS5tbToK
KGNvcmUpOgoqIFdlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oOiBBZGRlZCBhIGNvbnZlcnNpb24g
bWV0aG9kIGZyb20gdGhlIEFQSSBlbnVtIHRvIHRoZSBXZWJDb3JlIGVudW0uCiogV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogQWRkZWQgYSBwcmVmZXJlbmNlIGtleSBmb3IgdGhl
IG5ldyBzZXR0aW5nLgoqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CigrW1dlYlByZWZlcmVu
Y2VzIGluaXRpYWxpemVdKTogSW5pdGlhbGl6ZSB0aGUgRWRpdGluZ0JlaGF2aW9yIHRvIE1hYyBz
dHlsZS4KKC1bV2ViUHJlZmVyZW5jZXMgZWRpdGluZ0JlaGF2aW9yXSk6IEFkZGVkLgooLVtXZWJQ
cmVmZXJlbmNlcyBzZXRFZGl0aW5nQmVoYXZpb3I6XSk6IEFkZGVkLgoqIFdlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmg6IEFkZGVkIHRoZSBuZXcgQVBJIHBvaW50cyB0byB0aGUgcHJpdmF0
ZSBBUEkuCiogV2ViVmlldy9XZWJWaWV3Lm1tOgooLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5n
ZWROb3RpZmljYXRpb246XSk6IFNldCB0aGUgZWRpdGluZyBiZWhhdmlvciB2aWEgdGhlIFdlYlBy
ZWZlcmVuY2VzIHNldHRpbmcuCgpXZWJLaXQvd2luOgoKRXhwb3NlIHRoZSBFZGl0aW5nQmVoYXZp
b3Igc2V0dGluZyBpbiB0aGUgV2luZG93cyBBUEkuCgoqIEludGVyZmFjZXMvSVdlYlByZWZlcmVu
Y2VzLmlkbDogQWRkIHRoZSBBUEkgcG9pbnQgZm9yIHNldHRpbmcgdGhlIGVkaXRpbmcgYmVoYXZp
b3IuCiogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZCBhIGtleSBmb3IgdGhlIGVkaXRp
bmcgYmVoYXZpb3Igc2V0dGluZy4KKiBXZWJQcmVmZXJlbmNlcy5jcHA6CihXZWJQcmVmZXJlbmNl
czo6ZWRpdGluZ0JlaGF2aW9yKTogQWRkZWQuCihXZWJQcmVmZXJlbmNlczo6c2V0RWRpdGluZ0Jl
aGF2aW9yKTogQWRkZWQuCiogV2ViUHJlZmVyZW5jZXMuaDogQWRkIG1ldGhvZCBkZWNsYXJhdGlv
bnMuCiogV2ViVmlldy5jcHA6CihXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOiBV
cGRhdGUgdGhlIFdlYkNvcmUgc2V0dGluZyBiYXNlZCBvbiB0aGUgV2ViUHJlZmVyZW5jZXMgc2V0
dGluZy4KCldlYktpdFRvb2xzOgoKKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHA6CihzZXRFZGl0aW5nQmVoYXZpb3JDYWxsYmFjayk6IEFkZGVkLgooTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6IEV4cG9zZSB0aGUgc2V0RWRpdGluZ0JlaGF2aW9y
Q2FsbGJhY2sgZnVuY3Rpb24uCiogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aDoKKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6IEFk
ZCBjYWxsYmFjayBtZXRob2QgZm9yIHNldHRpbmcgZWRpdGluZyBiZWhhdmlvci4KKiBEdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOiBEZWNsYXJhdGlvbiBmb3Ig
dGhpcyBtZXRob2QuCiogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcDoKKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBJbXBsZW1l
bnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCiogRHVtcFJlbmRlclRyZWUvbWFj
L0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVk
aXRpbmdCZWhhdmlvcik6IERpdHRvCiogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5jcHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTog
QWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCiog
RHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oOgooTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZCBzbG90IGZvciBjb250cm9sbGluZyBl
ZGl0b3IgYmVoYXZpb3IuCiogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVy
V2luLmNwcDoKKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBJbXBs
ZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCiogRHVtcFJlbmRlclRyZWUv
d3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
RWRpdGluZ0JlaGF2aW9yKTogQWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJl
aGF2aW9yIGNvbnRyb2wuCgpMYXlvdXRUZXN0czoKCiogZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5k
LXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbDogVXNlIHRoZSBuZXcgRFJUIHN1cHBv
cnQgZm9yIGNoYW5naW5nIGVkaXRpbmcgYmVoYXZpb3IuCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5ICsrKysrCiAuLi4vZXh0ZW5k
LXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbCAgICAgICB8ICAgMzMgKysrKysrKysr
KysrKystLS0tLQogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDE1ICsrKysrKysrKwogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5n
cy5oICAgICAgICAgICAgICAgfCAgICA2ICsrKwogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuY3BwICAgICAgICAgICAgfCAgIDEwICsrKysrKwogV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTZXR0aW5nc0ltcGwuaCAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdC9tYWMvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysrKysrKysrKysK
IFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSAgICAgICAgICAgICAgICAgICAgIHwgICAx
MiArKysrKysrCiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oICAgICAgICAg
ICAgICB8ICAgIDEgKwogV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oICAgICAgfCAgICAxICsKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSAg
ICAgICAgICAgICAgIHwgICAxMSArKysrKysKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaCAgICAgICAgIHwgICAgOCArKysrKwogV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0gICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdC93aW4vQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOCArKysrKysrKysrKwogV2Vi
S2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGwgICAgICAgICAgfCAgICA5ICsr
KysrCiBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oICAgICAgICAgICAgICB8
ICAgIDEgKwogV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDE1ICsrKysrKysrKwogV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICA2ICsrKwogV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICsrKwogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI2ICsrKysrKysrKysrKysrKwogLi4uL0R1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCAgICAgICAgfCAgIDE2ICsrKysr
KysrKwogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCAg
fCAgICAxICsKIC4uLi9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgICAgICAgICAg
ICAgIHwgICAxMiArKysrKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuaCB8ICAgIDIgKwogLi4uL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0
Q29udHJvbGxlckd0ay5jcHAgfCAgIDE0ICsrKysrKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvbWFj
L0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tICB8ICAgIDkgKysrKysKIC4uLi9EdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCAgIHwgICAgNSArKysKIC4uLi9EdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmggICAgIHwgICAgMiArCiAuLi4v
RHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcCB8ICAgMTcgKysr
KysrKysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3Bw
ICAgfCAgICA1ICsrKwogMzAgZmlsZXMgY2hhbmdlZCwgMjg0IGluc2VydGlvbnMoKyksIDkgZGVs
ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDAzM2NjMTguLjBmYzc5ZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxMC0wNS0wNiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRo
ZSBlZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcgaW4gRFJUIHRvIHRlc3QgYWxsIGVkaXRpbmcgY29k
ZSBwYXRocworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzg2MDMKKworICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0
ZXItZG91YmxlLWNsaWNrLmh0bWw6IFVzZSB0aGUgbmV3IERSVCBzdXBwb3J0IGZvciBjaGFuZ2lu
ZyBlZGl0aW5nIGJlaGF2aW9yLgorCiAyMDEwLTA1LTA2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRv
dWJsZS1jbGljay5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNl
bGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbAppbmRleCA4OTEwODBiLi4zMzg4NDk2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9u
LWFmdGVyLWRvdWJsZS1jbGljay5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLmh0bWwKQEAgLTE4LDEzICsx
OCwzMSBAQAogICAgICAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgxMDAwKTsKICAgICB9CiAK
LSAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICBmdW5jdGlvbiBsb2dSZXN1bHQocmVzdWx0KQor
ICAgIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmZpcnN0Q2hp
bGQuZGF0YSA9IHJlc3VsdDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAg
ewogICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlciB8fCAhd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKIAorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRF
ZGl0aW5nQmVoYXZpb3IoIm1hYyIpOworICAgICAgICBpZiAoIXJ1blRlc3QoImEgcGFyYWdyYXBo
IikpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0RWRpdGluZ0JlaGF2aW9yKCJ3aW5kb3dzIik7CisgICAgICAgIGlmICghcnVuVGVzdCgicGFy
YWdyYSIpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxvZ1Jlc3VsdCgiU1VDQ0VT
UyIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoZXhwZWN0ZWRUZXh0KQorICAgIHsK
ICAgICAgICAgZG91YmxlQ2xpY2tXb3JkKCk7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLm1vZGlm
eSgiZXh0ZW5kIiwgImJhY2t3YXJkIiwgImNoYXJhY3RlciIpOwogICAgICAgICBnZXRTZWxlY3Rp
b24oKS5tb2RpZnkoImV4dGVuZCIsICJiYWNrd2FyZCIsICJjaGFyYWN0ZXIiKTsKQEAgLTMyLDE5
ICs1MCwxNiBAQAogICAgICAgICBnZXRTZWxlY3Rpb24oKS5tb2RpZnkoImV4dGVuZCIsICJiYWNr
d2FyZCIsICJjaGFyYWN0ZXIiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCJleHRl
bmQiLCAiYmFja3dhcmQiLCAiY2hhcmFjdGVyIik7CiAKLSAgICAgICAgdmFyIHJlc3VsdDsKICAg
ICAgICAgdmFyIHNlbGVjdGVkVGV4dCA9IGdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0gICAg
ICAgIHZhciBvbk1hY1BsYXRmb3JtID0gbmF2aWdhdG9yLnVzZXJBZ2VudC5zZWFyY2goL1xiTWFj
IE9TIFhcYi8pICE9IC0xOwotICAgICAgICB2YXIgZXhwZWN0ZWRUZXh0ID0gb25NYWNQbGF0Zm9y
bSA/ICJhIHBhcmFncmFwaCIgOiAicGFyYWdyYSI7CiAgICAgICAgIGlmIChzZWxlY3RlZFRleHQg
PT0gZXhwZWN0ZWRUZXh0KQotICAgICAgICAgICAgcmVzdWx0ID0gIlNVQ0NFU1MiOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICByZXN1bHQgPSAiRkFJTFVSRTogVGhlIHNlbGVjdGVkIHRleHQg
aXMgXCIiICsgc2VsZWN0ZWRUZXh0ICsgIlwiIGFuZCBzaG91bGQgYmUgXCIiICsgZXhwZWN0ZWRU
ZXh0ICsgIlwiLiI7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5m
aXJzdENoaWxkLmRhdGEgPSByZXN1bHQ7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
ICAgICBsb2dSZXN1bHQoIkZBSUxVUkU6IFRoZSBzZWxlY3RlZCB0ZXh0IGlzIFwiIiArIHNlbGVj
dGVkVGV4dCArICJcIiBhbmQgc2hvdWxkIGJlIFwiIiArIGV4cGVjdGVkVGV4dCArICJcIi4iKTsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIDwvc2NyaXB0PgogPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KIDxwPlRoaXMg
dGVzdHMgbW9kaWZ5aW5nIGEgc2VsZWN0aW9uIGNyZWF0ZWQgd2l0aCBhIGRvdWJsZSBjbGljayB3
aXRoIHNoaWZ0IGFycm93IGtleS48L3A+CiA8cCBzdHlsZT0iY29sb3I6Z3JlZW4iPgogICAgIFRo
aXMgdGVzdCBkb2VzIG5vdCBydW4gaW50ZXJhY3RpdmVseS4KZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGNjZGE0
NWIuLjIxNjFiYWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTA1LTA2ICBN
YXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBvc2UgdGhlIGVkaXRpbmcgYmVoYXZp
b3Igc2V0dGluZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRpdGluZyBjb2RlIHBhdGhzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODYwMworCisgICAgICAg
IEV4cG9zZSB0aGUgRWRpdGluZ0JlaGF2aW9yIHByZWZlcmVuY2UgaW4gdGhlIENocm9taXVtIEFQ
SS4KKworICAgICAgICAqIHB1YmxpYy9XZWJTZXR0aW5ncy5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTZXR0aW5nczo6KTogQWRkZWQgYW4gZW51bSBmb3IgRWRpdGluZ0JlaGF2aW9yIHR5cGVzLgor
ICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuY3BwOiAKKyAgICAgICAgKFdlYktpdDo6V2Vi
U2V0dGluZ3NJbXBsOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGRlZC4KKyAgICAgICAgKiBzcmMv
V2ViU2V0dGluZ3NJbXBsLmg6CisKIDIwMTAtMDUtMDYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBiL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViU2V0dGluZ3MuaAppbmRleCAzNTZkOWZhLi44NTliNjQxIDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJTZXR0aW5ncy5oCkBAIC00Myw2ICs0MywxMSBAQCBjbGFzcyBXZWJVUkw7CiAv
LyB0aGVzZSBmdW5jdGlvbnMgaGF2ZSBhIDE6MSBtYXBwaW5nIHdpdGggdGhlIG1ldGhvZHMgaW4g
V2ViQ29yZS9wYWdlL3NldHRpbmdzLmguCiBjbGFzcyBXZWJTZXR0aW5ncyB7CiBwdWJsaWM6Cisg
ICAgZW51bSBFZGl0aW5nQmVoYXZpb3IgeworICAgICAgICBFZGl0aW5nQmVoYXZpb3JNYWMgPSAx
LAorICAgICAgICBFZGl0aW5nQmVoYXZpb3JXaW5kb3dzCisgICAgfTsKKwogICAgIHZpcnR1YWwg
dm9pZCBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRGaXhlZEZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRTZXJpZkZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJikgPSAwOwpA
QCAtODQsNiArODksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldE9mZmxpbmVXZWJB
cHBsaWNhdGlvbkNhY2hlRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEV4
cGVyaW1lbnRhbFdlYkdMRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNo
b3dEZWJ1Z0JvcmRlcnMoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0aW5nQmVo
YXZpb3IoRWRpdGluZ0JlaGF2aW9yKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICB+V2ViU2V0dGlu
Z3MoKSB7IH0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBs
LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAppbmRleCAzYWRm
M2FjLi40N2ZmYjJmIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdz
SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBA
IC0yNjksNCArMjY5LDE0IEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRTaG93RGVidWdCb3Jk
ZXJzKGJvb2wgc2hvdykKICAgICBtX3NldHRpbmdzLT5zZXRTaG93RGVidWdCb3JkZXJzKHNob3cp
OwogfQogCit2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdC
ZWhhdmlvciBiZWhhdmlvcikKK3sKKyAgICBpZiAoYmVoYXZpb3IgPT0gRWRpdGluZ0JlaGF2aW9y
TWFjKSB7CisgICAgICAgIG1fc2V0dGluZ3MtPnNldEVkaXRpbmdCZWhhdmlvcihXZWJDb3JlOjpF
ZGl0aW5nTWFjQmVoYXZpb3IpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zZXR0
aW5ncy0+c2V0RWRpdGluZ0JlaGF2aW9yKFdlYkNvcmU6OkVkaXRpbmdXaW5kb3dzQmVoYXZpb3Ip
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdz
SW1wbC5oCmluZGV4IDU0YzY2MGIuLjcwMjI1ZmYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuaApAQCAtODYsNiArODYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNl
dE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RXhwZXJpbWVudGFsV2ViR0xFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRTaG93RGVidWdCb3JkZXJzKGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0aW5nQmVo
YXZpb3IoRWRpdGluZ0JlaGF2aW9yKTsKIAogcHJpdmF0ZToKICAgICBXZWJDb3JlOjpTZXR0aW5n
cyogbV9zZXR0aW5nczsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKaW5kZXggODA3ZTJhZC4uMzg4ZDEwNSAxMDA2NDQKLS0tIGEvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBA
QAorMjAxMC0wNS0wNiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRo
ZSBlZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcgaW4gRFJUIHRvIHRlc3QgYWxsIGVkaXRpbmcgY29k
ZSBwYXRocworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzg2MDMKKworICAgICAgICBFeHBvc2UgdGhlIEVkaXRpbmdCZWhhdmlvciBzZXR0aW5nIGluIHRo
ZSBNYWMgQVBJLgorCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKGNv
cmUpOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oOiBBZGRlZCBhIGNvbnZl
cnNpb24gbWV0aG9kIGZyb20gdGhlIEFQSSBlbnVtIHRvIHRoZSBXZWJDb3JlIGVudW0uCisgICAg
ICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogQWRkZWQgYSBwcmVmZXJl
bmNlIGtleSBmb3IgdGhlIG5ldyBzZXR0aW5nLgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW06CisgICAgICAgICgrW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKTogSW5pdGlh
bGl6ZSB0aGUgRWRpdGluZ0JlaGF2aW9yIHRvIE1hYyBzdHlsZS4KKyAgICAgICAgKC1bV2ViUHJl
ZmVyZW5jZXMgZWRpdGluZ0JlaGF2aW9yXSk6IEFkZGVkLgorICAgICAgICAoLVtXZWJQcmVmZXJl
bmNlcyBzZXRFZGl0aW5nQmVoYXZpb3I6XSk6IEFkZGVkLgorICAgICAgICAqIFdlYlZpZXcvV2Vi
UHJlZmVyZW5jZXNQcml2YXRlLmg6IEFkZGVkIHRoZSBuZXcgQVBJIHBvaW50cyB0byB0aGUgcHJp
dmF0ZSBBUEkuCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJW
aWV3IF9wcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb246XSk6IFNldCB0aGUgZWRpdGluZyBi
ZWhhdmlvciB2aWEgdGhlIFdlYlByZWZlcmVuY2VzIHNldHRpbmcuCisKIDIwMTAtMDUtMDYgIFN0
ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1t
IGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IGI0MTY5YjYuLjhjODdhMzMg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTE5Niw2ICsxOTYsMTggQEAgRWRpdGFibGVMaW5r
QmVoYXZpb3IgY29yZShXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciBlZGl0YWJsZUxpbmtCZWhh
dmlvcikKICAgICByZXR1cm4gRWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yOwogfQogCitXZWJD
b3JlOjpFZGl0aW5nQmVoYXZpb3IgY29yZShXZWJLaXRFZGl0aW5nQmVoYXZpb3IgYmVoYXZpb3Ip
Cit7CisgICAgc3dpdGNoIChiZWhhdmlvcikgeworICAgICAgICBjYXNlIFdlYktpdEVkaXRpbmdN
YWNCZWhhdmlvcjoKKyAgICAgICAgICAgIHJldHVybiBXZWJDb3JlOjpFZGl0aW5nTWFjQmVoYXZp
b3I7CisgICAgICAgIGNhc2UgV2ViS2l0RWRpdGluZ1dpbmRvd3NCZWhhdmlvcjoKKyAgICAgICAg
ICAgIHJldHVybiBXZWJDb3JlOjpFZGl0aW5nV2luZG93c0JlaGF2aW9yOworICAgIH0KKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGluZ01hY0JlaGF2
aW9yOworfQorCiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yIGNvcmUoV2Vi
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciBiZWhhdmlvcikKIHsKICAgICBz
d2l0Y2ggKGJlaGF2aW9yKSB7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJh
bWVJbnRlcm5hbC5oIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaAppbmRl
eCA0YzFlZTQwLi45YjIyNDhhIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJh
bWVJbnRlcm5hbC5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgK
QEAgLTcxLDYgKzcxLDcgQEAgV2ViVmlldyAqa2l0KFdlYkNvcmU6OlBhZ2UqKTsKIAogV2ViQ29y
ZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgY29yZShXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvcik7
CiBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yIGNvcmUoV2Vi
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcik7CitXZWJDb3JlOjpFZGl0aW5n
QmVoYXZpb3IgY29yZShXZWJLaXRFZGl0aW5nQmVoYXZpb3IpOwogCiBXZWJWaWV3ICpnZXRXZWJW
aWV3KFdlYkZyYW1lICp3ZWJGcmFtZSk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCBmNGFlMzMzLi40YzIyZjU5IDEwMDY0NAotLS0gYS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0xMDQsNiArMTA0LDcg
QEAKICNkZWZpbmUgV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3JQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0RWRpdGFibGVMaW5rQmVoYXZpb3IiCiAjZGVmaW5lIFdlYktpdENhY2hlTW9kZWxQcmVmZXJl
bmNlS2V5IEAiV2ViS2l0Q2FjaGVNb2RlbFByZWZlcmVuY2VLZXkiCiAjZGVmaW5lIFdlYktpdFRl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JQcmVmZXJlbmNlS2V5IEAiV2ViS2l0
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvclByZWZlcmVuY2VLZXkiCisjZGVm
aW5lIFdlYktpdEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXkgQCJXZWJLaXRFZGl0aW5nQmVo
YXZpb3IiCiAKIC8vIENvcmVHcmFwaGljcyBkZWZlcnJlZCB1cGRhdGVzIGFyZSBkaXNhYmxlZCBp
ZiBXZWJLaXRFbmFibGVDb2FsZXNjZWRVcGRhdGVzUHJlZmVyZW5jZUtleSBpcyBzZXQKIC8vIHRv
IE5PLCBvciBoYXMgbm8gdmFsdWUuICBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIE1hYyBPUyBYIDEw
LjQuNiwgZGVmZXJyZWQgdXBkYXRlcyBhcmUgT0ZGIGJ5CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW0KaW5kZXggOWRlODQ5NS4uOTA2YWY0MSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlcy5tbQpAQCAtMzM0LDYgKzMzNCw3IEBAIHN0YXRpYyBXZWJDYWNoZU1vZGVsIGNhY2hl
TW9kZWxGb3JNYWluQnVuZGxlKHZvaWQpCiAgICAgICAgIEAiMCIsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2ViS2l0UERGU2NhbGVGYWN0b3JQcmVmZXJlbmNlS2V5LAogICAgICAgICBAIjAi
LCAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFVzZVNpdGVTcGVjaWZpY1Nwb29maW5n
UHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6V2ViS2l0RWRp
dGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yXSwgV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3JQcmVm
ZXJlbmNlS2V5LAorICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpXZWJLaXRFZGl0aW5n
TWFjQmVoYXZpb3JdLCBXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJlbmNlS2V5LAogI2lmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KQogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpXZWJUZXh0RGlyZWN0aW9uU3VibWVu
dUF1dG9tYXRpY2FsbHlJbmNsdWRlZF0sCiAjZWxzZQpAQCAtMTIzNyw2ICsxMjM4LDE2IEBAIHN0
YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAgICBbc2VsZiBfc2V0Qm9v
bFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdEZyYW1lRmxhdHRlbmluZ0VuYWJsZWRQcmVmZXJlbmNl
S2V5XTsKIH0KIAorLSAoV2ViS2l0RWRpdGluZ0JlaGF2aW9yKWVkaXRpbmdCZWhhdmlvcgorewor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJLaXRFZGl0aW5nQmVoYXZpb3I+IChbc2VsZiBfaW50
ZWdlclZhbHVlRm9yS2V5OldlYktpdEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXldKTsKK30K
KworLSAodm9pZClzZXRFZGl0aW5nQmVoYXZpb3I6KFdlYktpdEVkaXRpbmdCZWhhdmlvciliZWhh
dmlvcgoreworICAgIFtzZWxmIF9zZXRJbnRlZ2VyVmFsdWU6YmVoYXZpb3IgZm9yS2V5OldlYktp
dEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXldOworfQorCiAtICh2b2lkKWRpZFJlbW92ZUZy
b21XZWJWaWV3CiB7CiAgICAgQVNTRVJUKF9wcml2YXRlLT5udW1XZWJWaWV3cyk7CmRpZmYgLS1n
aXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggZWU3ODVlOS4uODMyYzA4
OCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5o
CisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNDMs
NiArNDMsMTEgQEAgdHlwZWRlZiBlbnVtIHsKICAgICBXZWJUZXh0RGlyZWN0aW9uU3VibWVudUFs
d2F5c0luY2x1ZGVkCiB9IFdlYlRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I7
CiAKK3R5cGVkZWYgZW51bSB7CisgICAgV2ViS2l0RWRpdGluZ01hY0JlaGF2aW9yLAorICAgIFdl
YktpdEVkaXRpbmdXaW5kb3dzQmVoYXZpb3IsCit9IFdlYktpdEVkaXRpbmdCZWhhdmlvcjsKKwog
ZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb247CiBleHRl
cm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzUmVtb3ZlZE5vdGlmaWNhdGlvbjsKIApAQCAtMTI5
LDYgKzEzNCw5IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNSZW1vdmVkTm90aWZp
Y2F0aW9uOwogLSAoV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IpZWRpdGFibGVMaW5rQmVoYXZp
b3I7CiAtICh2b2lkKXNldEVkaXRhYmxlTGlua0JlaGF2aW9yOihXZWJLaXRFZGl0YWJsZUxpbmtC
ZWhhdmlvciliZWhhdmlvcjsKIAorLSAoV2ViS2l0RWRpdGluZ0JlaGF2aW9yKWVkaXRpbmdCZWhh
dmlvcjsKKy0gKHZvaWQpc2V0RWRpdGluZ0JlaGF2aW9yOihXZWJLaXRFZGl0aW5nQmVoYXZpb3Ip
YmVoYXZpb3I7CisKIC0gKFdlYlRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3Ip
dGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjsKIC0gKHZvaWQpc2V0VGV4dERp
cmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjooV2ViVGV4dERpcmVjdGlvblN1Ym1lbnVJ
bmNsdXNpb25CZWhhdmlvciliZWhhdmlvcjsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCAxOWVi
NDE4Li4yYTc3OWY4IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQor
KysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTMyMyw2ICsxMzIzLDcgQEAg
c3RhdGljIGJvb2wgZmFzdERvY3VtZW50VGVhcmRvd25FbmFibGVkKCkKICAgICBzZXR0aW5ncy0+
c2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKFtwcmVmZXJlbmNlcyB0ZXh0QXJlYXNBcmVSZXNpemFi
bGVdKTsKICAgICBzZXR0aW5ncy0+c2V0U2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdChbcHJl
ZmVyZW5jZXMgc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdF0pOwogICAgIHNldHRpbmdzLT5z
ZXRFZGl0YWJsZUxpbmtCZWhhdmlvcihjb3JlKFtwcmVmZXJlbmNlcyBlZGl0YWJsZUxpbmtCZWhh
dmlvcl0pKTsKKyAgICBzZXR0aW5ncy0+c2V0RWRpdGluZ0JlaGF2aW9yKGNvcmUoW3ByZWZlcmVu
Y2VzIGVkaXRpbmdCZWhhdmlvcl0pKTsKICAgICBzZXR0aW5ncy0+c2V0VGV4dERpcmVjdGlvblN1
Ym1lbnVJbmNsdXNpb25CZWhhdmlvcihjb3JlKFtwcmVmZXJlbmNlcyB0ZXh0RGlyZWN0aW9uU3Vi
bWVudUluY2x1c2lvbkJlaGF2aW9yXSkpOwogICAgIHNldHRpbmdzLT5zZXRET01QYXN0ZUFsbG93
ZWQoW3ByZWZlcmVuY2VzIGlzRE9NUGFzdGVBbGxvd2VkXSk7CiAgICAgc2V0dGluZ3MtPnNldFVz
ZXNQYWdlQ2FjaGUoW3NlbGYgdXNlc1BhZ2VDYWNoZV0pOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBlNzcxM2NlLi4yZjFkZmI1
IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEwLTA1LTA2ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9i
aW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeHBvc2UgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZyBpbiBEUlQgdG8g
dGVzdCBhbGwgZWRpdGluZyBjb2RlIHBhdGhzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zODYwMworCisgICAgICAgIEV4cG9zZSB0aGUgRWRpdGluZ0Jl
aGF2aW9yIHNldHRpbmcgaW4gdGhlIFdpbmRvd3MgQVBJLgorCisgICAgICAgICogSW50ZXJmYWNl
cy9JV2ViUHJlZmVyZW5jZXMuaWRsOiBBZGQgdGhlIEFQSSBwb2ludCBmb3Igc2V0dGluZyB0aGUg
ZWRpdGluZyBiZWhhdmlvci4KKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDog
QWRkIGEga2V5IGZvciB0aGUgZWRpdGluZyBiZWhhdmlvciBzZXR0aW5nLgorICAgICAgICAqIFdl
YlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjplZGl0aW5nQmVoYXZp
b3IpOiBBZGRlZC4KKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpzZXRFZGl0aW5nQmVoYXZpb3Ip
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlcy5oOiBBZGQgbWV0aG9kIGRlY2xhcmF0
aW9ucy4KKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6Om5vdGlmeVBy
ZWZlcmVuY2VzQ2hhbmdlZCk6IFVwZGF0ZSB0aGUgV2ViQ29yZSBzZXR0aW5nIGJhc2VkIG9uIHRo
ZSBXZWJQcmVmZXJlbmNlcyBzZXR0aW5nLgorCiAyMDEwLTA1LTA1ICBTdHVhcnQgTW9yZ2FuICA8
c3R1YXJ0bW9yZ2FuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBG
aXNoZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2Vz
LmlkbCBiL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXMuaWRsCmluZGV4IDFj
NDMxMzUuLmZmMzBhMDMgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJl
ZmVyZW5jZXMuaWRsCisrKyBiL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXMu
aWRsCkBAIC00Nyw2ICs0NywxMiBAQCB0eXBlZGVmIGVudW0gV2ViS2l0RWRpdGFibGVMaW5rQmVo
YXZpb3IgewogICAgIFdlYktpdEVkaXRhYmxlTGlua05ldmVyTGl2ZQogfSBXZWJLaXRFZGl0YWJs
ZUxpbmtCZWhhdmlvcjsKIAordHlwZWRlZiBlbnVtIFdlYktpdEVkaXRpbmdCZWhhdmlvciB7Cisg
ICAgV2ViS2l0RWRpdGluZ01hY0JlaGF2aW9yID0gMCwKKyAgICBXZWJLaXRFZGl0aW5nV2luZG93
c0JlaGF2aW9yLAorfSBXZWJLaXRFZGl0aW5nQmVoYXZpb3I7CisKKwogdHlwZWRlZiBlbnVtIFdl
YktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kgewogICAgIFdlYktpdENvb2tpZVN0b3JhZ2VB
Y2NlcHRQb2xpY3lBbHdheXMgPSAwLAogICAgIFdlYktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xp
Y3lOZXZlciwKQEAgLTE2Miw2ICsxNjgsOSBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzIDog
SVVua25vd24KICAgICBIUkVTVUxUIGVkaXRhYmxlTGlua0JlaGF2aW9yKFtvdXQsIHJldHZhbF0g
V2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IqIGVkaXRhYmxlTGlua0JlaGF2aW9yKTsKICAgICBI
UkVTVUxUIHNldEVkaXRhYmxlTGlua0JlaGF2aW9yKFtpbl0gV2ViS2l0RWRpdGFibGVMaW5rQmVo
YXZpb3IgYmVoYXZpb3IpOwogCisgICAgSFJFU1VMVCBlZGl0aW5nQmVoYXZpb3IoW291dCwgcmV0
dmFsXSBXZWJLaXRFZGl0aW5nQmVoYXZpb3IqIGVkaXRpbmdCZWhhdmlvcik7CisgICAgSFJFU1VM
VCBzZXRFZGl0aW5nQmVoYXZpb3IoW2luXSBXZWJLaXRFZGl0aW5nQmVoYXZpb3IgYmVoYXZpb3Ip
OworCiAgICAgSFJFU1VMVCBjb29raWVTdG9yYWdlQWNjZXB0UG9saWN5KFtvdXQsIHJldHZhbF0g
V2ViS2l0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeSogYWNjZXB0UG9saWN5KTsKICAgICBIUkVT
VUxUIHNldENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3koW2luXSBXZWJLaXRDb29raWVTdG9yYWdl
QWNjZXB0UG9saWN5IGFjY2VwdFBvbGljeSk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oCmluZGV4IGM0OWE5NmQuLmRhNjM3NTQgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaApAQCAtNzQsNiArNzQsNyBAQAogI2RlZmluZSBXZWJLaXRQREZEaXNwbGF5TW9k
ZVByZWZlcmVuY2VLZXkgIldlYktpdFBERkRpc3BsYXlNb2RlIgogI2RlZmluZSBXZWJLaXRQREZT
Y2FsZUZhY3RvclByZWZlcmVuY2VLZXkgIldlYktpdFBERlNjYWxlRmFjdG9yIgogI2RlZmluZSBX
ZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvclByZWZlcmVuY2VLZXkgIldlYktpdEVkaXRhYmxlTGlu
a0JlaGF2aW9yIgorI2RlZmluZSBXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJlbmNlS2V5ICJX
ZWJLaXRFZGl0aW5nQmVoYXZpb3IiCiAKIC8vIFdpbmRvdyBkaXNwbGF5IGlzIHRocm90dGxlZCB0
byA2MCBmcmFtZXMgcGVyIHNlY29uZCBpZiBXZWJLaXRUaHJvdHRsZVdpbmRvd0Rpc3BsYXlQcmVm
ZXJlbmNlS2V5CiAvLyBpcyBzZXQgdG8gWUVTLiAgVGhlIHdpbmRvdyBkaXNwbGF5IHRocm90dGxl
IGlzIE9GRiBieSBkZWZhdWx0IGZvciBjb21wYXRpYmlsaXR5IHdpdGggTWFjIE9TIFgKZGlmZiAt
LWdpdCBhL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwIGIvV2ViS2l0L3dpbi9XZWJQcmVm
ZXJlbmNlcy5jcHAKaW5kZXggMzNlOTA0ZC4uM2U3ZWE0MiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dp
bi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAK
QEAgLTExMzAsNiArMTEzMCwyMSBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlByZWZl
cmVuY2VzOjpzZXRFZGl0YWJsZUxpbmtCZWhhdmlvcigKICAgICByZXR1cm4gU19PSzsKIH0KIAor
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6ZWRpdGluZ0JlaGF2aW9y
KAorICAgIC8qIFtvdXQsIHJldHZhbF0gKi8gV2ViS2l0RWRpdGluZ0JlaGF2aW9yKiBlZGl0aW5n
QmVoYXZpb3IpCit7CisgICAgKmVkaXRpbmdCZWhhdmlvciA9IChXZWJLaXRFZGl0aW5nQmVoYXZp
b3IpIGludGVnZXJWYWx1ZUZvcktleShDRlNUUihXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJl
bmNlS2V5KSk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgV2ViUHJlZmVyZW5jZXM6OnNldEVkaXRpbmdCZWhhdmlvcigKKyAgICAvKiBbaW5dICovIFdl
YktpdEVkaXRhYmxlTGlua0JlaGF2aW9yIGJlaGF2aW9yKQoreworICAgIHNldEludGVnZXJWYWx1
ZShDRlNUUihXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJlbmNlS2V5KSwgYmVoYXZpb3IpOwor
ICAgIHJldHVybiBTX09LOworfQorCisKIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViUHJl
ZmVyZW5jZXM6OmNvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3koIAogICAgICAgICAvKiBbcmV0dmFs
XVtvdXRdICovIFdlYktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kgKmFjY2VwdFBvbGljeSAp
CiB7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmggYi9XZWJLaXQvd2lu
L1dlYlByZWZlcmVuY2VzLmgKaW5kZXggY2ZkZWZhOC4uMWVhNjljNyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMu
aApAQCAtMjM4LDYgKzIzOCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIHNldEVkaXRhYmxlTGlua0JlaGF2aW9yKCAKICAgICAgICAgLyogW2luXSAq
LyBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciBiZWhhdmlvcik7CiAKKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZWRpdGluZ0JlaGF2aW9yKAorICAgICAgICAvKiBbcmV0
dmFsXVtvdXRdICovIFdlYktpdEVkaXRpbmdCZWhhdmlvciogYmVoYXZpb3IpOworCisgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEVkaXRpbmdCZWhhdmlvcigKKyAgICAg
ICAgLyogW2luXSAqLyBXZWJLaXRFZGl0aW5nQmVoYXZpb3IgYmVoYXZpb3IpOworCiAgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGNvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3ko
IAogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIFdlYktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQ
b2xpY3kgKmFjY2VwdFBvbGljeSk7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9X
ZWJWaWV3LmNwcCBiL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggMjQ4ZTNjZC4uMjZhMDQw
OSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9XZWJLaXQvd2luL1dl
YlZpZXcuY3BwCkBAIC00NTg2LDYgKzQ1ODYsMTIgQEAgSFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQ
cmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQogICAgICAg
ICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3MtPnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKChFZGl0
YWJsZUxpbmtCZWhhdmlvciliZWhhdmlvcik7CiAKKyAgICBXZWJLaXRFZGl0aW5nQmVoYXZpb3Ig
YmVoYXZpb3I7CisgICAgaHIgPSBwcmVmZXJlbmNlcy0+ZWRpdGluZ0JlaGF2aW9yKCZiZWhhdmlv
cik7CisgICAgaWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVybiBocjsKKyAgICBzZXR0aW5n
cy0+c2V0RWRpdGluZ0JlaGF2aW9yKChFZGl0aW5nQmVoYXZpb3IpYmVoYXZpb3IpOworCiAgICAg
aHIgPSBwcmVmZXJlbmNlcy0+dXNlc1BhZ2VDYWNoZSgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxF
RChocikpCiAgICAgICAgIHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5n
ZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCA3ZWMwMjZhLi41ODMxYjE2IDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDUtMDYgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNv
bkB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEV4cG9zZSB0aGUgZWRpdGluZyBiZWhhdmlvciBzZXR0aW5nIGluIERSVCB0byB0ZXN0
IGFsbCBlZGl0aW5nIGNvZGUgcGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM4NjAzCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChzZXRFZGl0aW5nQmVoYXZpb3JDYWxsYmFjayk6
IEFkZGVkLgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6
IEV4cG9zZSB0aGUgc2V0RWRpdGluZ0JlaGF2aW9yQ2FsbGJhY2sgZnVuY3Rpb24uCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6IEFkZCBjYWxsYmFj
ayBtZXRob2QgZm9yIHNldHRpbmcgZWRpdGluZyBiZWhhdmlvci4KKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOiBEZWNsYXJhdGlvbiBmb3Ig
dGhpcyBtZXRob2QuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250
cm9sbGVyR3RrLmNwcDogCisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGlu
Z0JlaGF2aW9yKTogSW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToK
KyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBEaXR0
bworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3Bw
OgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFk
ZGVkIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaDoKKyAgICAg
ICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGQgc2xvdCBm
b3IgY29udHJvbGxpbmcgZWRpdG9yIGJlaGF2aW9yLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTogSW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBi
ZWhhdmlvciBjb250cm9sLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RD
b250cm9sbGVyV3guY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRp
bmdCZWhhdmlvcik6IEFkZGVkIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlv
ciBjb250cm9sLgorCiAyMDEwLTA1LTA2ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5u
QG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlh
bnNlbi4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcAppbmRleCBiNGI1YmYyLi41ZDBmMmU0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNDQxLDYgKzE0
NDEsMjEgQEAgc3RhdGljIEpTVmFsdWVSZWYgYXV0aGVudGljYXRlU2Vzc2lvbkNhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiwKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VV
bmRlZmluZWQoY29udGV4dCk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIHNldEVkaXRpbmdCZWhh
dmlvckNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwg
SlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFs
dWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICAvLyBUaGUg
ZWRpdGluZyBiZWhhdmlvciBzdHJpbmcuCisgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQorICAg
ICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gZWRpdGluZ0JlaGF2aW9yKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdD
b3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKSk7CisgICAgQVNTRVJUKCEqZXhj
ZXB0aW9uKTsKKworICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGlj
X2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVj
dCkpOworICAgIGNvbnRyb2xsZXItPnNldEVkaXRpbmdCZWhhdmlvcihlZGl0aW5nQmVoYXZpb3Iu
Z2V0KCkpOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQor
CiAvLyBTdGF0aWMgVmFsdWVzCiAKIHN0YXRpYyBKU1ZhbHVlUmVmIGdldEdsb2JhbEZsYWdDYWxs
YmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgSlNTdHJp
bmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCkBAIC0xNTkwLDYgKzE2
MDUsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVu
Y3Rpb25zKCkKICAgICAgICAgeyAic2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUiLCBzZXRDdXN0b21Q
b2xpY3lEZWxlZ2F0ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldERhdGFiYXNlUXVv
dGEiLCBzZXREYXRhYmFzZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCiAgICAgICAgIHsgInNldERv
bWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUiLCBzZXREb21haW5SZWxheGF0aW9u
Rm9yYmlkZGVuRm9yVVJMU2NoZW1lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2V0RWRp
dGluZ0JlaGF2aW9yIiwgc2V0RWRpdGluZ0JlaGF2aW9yQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAic2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCIsIHNldEZyYW1lRmxhdHRlbmluZ0VuYWJs
ZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24i
LCBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb25DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJz
ZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzIiwgc2V0SGFuZGxlc0F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCAwOGY5NjkyLi43MjY2ZjBhIDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmgKQEAgLTk4LDYgKzk4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RnJhbWVGbGF0dGVuaW5n
RW5hYmxlZChib29sIGVuYWJsZSk7CiAgICAgdm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJs
ZWQoYm9vbCBlbmFibGUpOwogICAgIHZvaWQgc2V0U2Nyb2xsYmFyUG9saWN5KEpTU3RyaW5nUmVm
IG9yaWVudGF0aW9uLCBKU1N0cmluZ1JlZiBwb2xpY3kpOworICAgIHZvaWQgc2V0RWRpdGluZ0Jl
aGF2aW9yKEpTU3RyaW5nUmVmIGVkaXRpbmdCZWhhdmlvcik7CiAKICAgICB2b2lkIHdhaXRGb3JQ
b2xpY3lEZWxlZ2F0ZSgpOwogICAgIHNpemVfdCB3ZWJIaXN0b3J5SXRlbUNvdW50KCk7CmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMjFiMTY4Yy4uYzk3ZWM1YiAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3Bw
CisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcApAQCAtMTQ4LDYgKzE0OCw3IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlv
dXRUZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoInNldFRp
bWVsaW5lUHJvZmlsaW5nRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0VGltZWxp
bmVQcm9maWxpbmdFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJldmFsdWF0ZUluV2ViSW5zcGVj
dG9yIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpldmFsdWF0ZUluV2ViSW5zcGVjdG9yKTsKICAg
ICBiaW5kTWV0aG9kKCJmb3JjZVJlZFNlbGVjdGlvbkNvbG9ycyIsICZMYXlvdXRUZXN0Q29udHJv
bGxlcjo6Zm9yY2VSZWRTZWxlY3Rpb25Db2xvcnMpOworICAgIGJpbmRNZXRob2QoInNldEVkaXRp
bmdCZWhhdmlvciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTsK
IAogICAgIC8vIFRoZSBmYWxsYmFjayBtZXRob2QgaXMgY2FsbGVkIHdoZW4gYW4gdW5rbm93biBt
ZXRob2QgaXMgaW52b2tlZC4KICAgICBiaW5kRmFsbGJhY2tNZXRob2QoJkxheW91dFRlc3RDb250
cm9sbGVyOjpmYWxsYmFja01ldGhvZCk7CkBAIC0xMTg3LDMgKzExODgsMTQgQEAgdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6YWRkVXNlclNjcmlwdChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFy
Z3VtZW50cywgQ3BwVmEKICAgICAgICAgcmV0dXJuOwogICAgIG1fc2hlbGwtPndlYlZpZXcoKS0+
YWRkVXNlclNjcmlwdChXZWJTdHJpbmc6OmZyb21VVEY4KGFyZ3VtZW50c1swXS50b1N0cmluZygp
KSwgYXJndW1lbnRzWzFdLnRvQm9vbGVhbigpKTsKIH0KKwordm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlh
bnQqKTsKK3sKKyAgICBXZWJTZXR0aW5ncyogc2V0dGluZ3MgPSBtX3NoZWxsLT53ZWJWaWV3KCkt
PnNldHRpbmdzKCk7CisgICAgc3RyaW5nIGtleSA9IGFyZ3VtZW50c1swXS50b1N0cmluZygpOwor
ICAgIGlmIChrZXkgPT0gIm1hYyIpCisgICAgICAgIHNldHRpbmdzLT5zZXRFZGl0aW5nQmVoYXZp
b3IoRWRpdGluZ0JlaGF2aW9yTWFjKTsKKworICAgIGlmIChrZXkgPT0gIndpbmRvd3MiKQorICAg
ICAgICBzZXR0aW5ncy0+c2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvcldpbmRvd3Mp
OworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5
b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggY2E4YjAxNC4uZjllZDhjYyAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xs
ZXIuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCkBAIC0xOTUsNiArMTk1LDggQEAgcHVibGljOgogCiAgICAgdm9pZCBkdW1w
U2VsZWN0aW9uUmVjdChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CiAKKyAg
ICB2b2lkIHNldEVkaXRpbmdCZWhhdmlvcihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJp
YW50Kik7CisKICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZSBvbmx5IHN0dWJzLiAgVE9ETyhwYW1n
KTogSW1wbGVtZW50IGFueSBvZiB0aGVzZSB0aGF0CiAgICAgLy8gYXJlIG5lZWRlZCB0byBwYXNz
IHRoZSBsYXlvdXQgdGVzdHMuCiAgICAgdm9pZCBkdW1wQXNXZWJBcmNoaXZlKGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAgYi9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCmluZGV4IGNiYmE3
Y2UuLjBhMjBiY2MgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9M
YXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcApAQCAtMzksNiArMzksNyBAQAogI2lu
Y2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUmV0YWluUHRyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlw
dENvcmUvSlNTdHJpbmdSZWYuaD4KIAorI2luY2x1ZGUgPGNzdHJpbmc+CiAjaW5jbHVkZSA8aW9z
dHJlYW0+CiAjaW5jbHVkZSA8c3N0cmVhbT4KICNpbmNsdWRlIDxzdGRpby5oPgpAQCAtNjg4LDMg
KzY4OSwxNiBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6
Om1hcmtlclRleHRGb3JMaXN0SXRlbShKU0NvbnRleHRSZQogdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6YXV0aGVudGljYXRlU2Vzc2lvbihKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYsIEpTU3Ry
aW5nUmVmKQogewogfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVo
YXZpb3IoSlNTdHJpbmdSZWYgZWRpdGluZ0JlaGF2aW9yKQoreworICAgIFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcgPSB3ZWJraXRfd2ViX2ZyYW1lX2dldF93ZWJfdmlldyhtYWluRnJhbWUpOworICAg
IFdlYktpdFdlYlNldHRpbmdzKiBzZXR0aW5ncyA9IHdlYmtpdF93ZWJfdmlld19nZXRfc2V0dGlu
Z3Mod2ViVmlldyk7CisKKyAgICBjaGFyKiBlZGl0aW5nQmVoYXZpb3JTdHJpbmcgPSBKU1N0cmlu
Z0NvcHlVVEY4Q1N0cmluZyhlZGl0aW5nQmVoYXZpb3IpOworICAgIGlmICghc3RyY21wKGVkaXRp
bmdCZWhhdmlvclN0cmluZywgIndpbmRvd3MiKSkKKyAgICAgICAgZ19vYmplY3Rfc2V0KEdfT0JK
RUNUKHNldHRpbmdzKSwgImVkaXRpbmctYmVoYXZpb3IiLCBXRUJLSVRfRURJVElOR19CRUhBVklP
Ul9XSU5ET1dTLCBOVUxMKTsKKyAgICBpZiAoIXN0cmNtcChlZGl0aW5nQmVoYXZpb3JTdHJpbmcs
ICJtYWMiKSkKKyAgICAgICAgZ19vYmplY3Rfc2V0KEdfT0JKRUNUKHNldHRpbmdzKSwgImVkaXRp
bmctYmVoYXZpb3IiLCBXRUJLSVRfRURJVElOR19CRUhBVklPUl9NQUMsIE5VTEwpOworICAgIGdf
ZnJlZShlZGl0aW5nQmVoYXZpb3JTdHJpbmcpOworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCmluZGV4IDNi
MDNhZWMuLjc5NzQ5Y2IgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21h
Yy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KQEAgLTgzNSwzICs4MzUsMTIgQEAg
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXV0aGVudGljYXRlU2Vzc2lvbihKU1N0cmluZ1Jl
ZiB1cmwsIEpTU3RyaW5nUmVmIHVzZXIKICAgICBbU3luY2hyb25vdXNMb2FkZXIgbWFrZVJlcXVl
c3Q6cmVxdWVzdCB3aXRoVXNlcm5hbWU6KE5TU3RyaW5nICopdXNlcm5hbWVDRi5nZXQoKSBwYXNz
d29yZDooTlNTdHJpbmcgKilwYXNzd29yZENGLmdldCgpXTsKICNlbmRpZgogfQorCit2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IoSlNTdHJpbmdSZWYgZWRpdGlu
Z0JlaGF2aW9yKQoreworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gZWRpdGluZ0JlaGF2aW9y
Q0YoQWRvcHRDRiwgSlNTdHJpbmdDb3B5Q0ZTdHJpbmcoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZWRp
dGluZ0JlaGF2aW9yKSk7CisgICAgaWYgKFsoTlNTdHJpbmcgKillZGl0aW5nQmVoYXZpb3JDRi5n
ZXQoKSBpc0VxdWFsVG9TdHJpbmc6QCJtYWMiXSkKKyAgICAgICAgW1tXZWJQcmVmZXJlbmNlcyBz
dGFuZGFyZFByZWZlcmVuY2VzXSBzZXRFZGl0aW5nQmVoYXZpb3I6V2ViS2l0RWRpdGluZ01hY0Jl
aGF2aW9yXTsKKyAgICBpZiAoWyhOU1N0cmluZyAqKWVkaXRpbmdCZWhhdmlvckNGLmdldCgpIGlz
RXF1YWxUb1N0cmluZzpAIndpbmRvd3MiXSkKKyAgICAgICAgW1tXZWJQcmVmZXJlbmNlcyBzdGFu
ZGFyZFByZWZlcmVuY2VzXSBzZXRFZGl0aW5nQmVoYXZpb3I6V2ViS2l0RWRpdGluZ01hY0JlaGF2
aW9yXTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91
dFRlc3RDb250cm9sbGVyUXQuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5
b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKaW5kZXggOTc3MDk2ZC4uZjQ1MGYwNCAxMDA2NDQKLS0t
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5j
cHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xs
ZXJRdC5jcHAKQEAgLTYyNCw2ICs2MjQsMTEgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
YXV0aGVudGljYXRlU2Vzc2lvbihjb25zdCBRU3RyaW5nJiwgY29uc3QgUVN0cmluZyYsIGMKICAg
ICAvLyBGSVhNRTogSWYgdGhlcmUgaXMgYSBjb25jZXB0IHBlci1zZXNzaW9uIChwZXItcHJvY2Vz
cykgY3JlZGVudGlhbCBzdG9yYWdlLCB0aGUgY3JlZGVudGlhbHMgc2hvdWxkIGJlIGFkZGVkIHRv
IGl0IGZvciBsYXRlciB1c2UuCiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVk
aXRpbmdCZWhhdmlvcihjb25zdCBRU3RyaW5nJiBlZGl0aW5nQmVoYXZpb3IpCit7CisgICAgLy8g
RklYTUU6IEltcGxlbWVudC4KK30KKwogCiBjb25zdCB1bnNpZ25lZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6bWF4Vmlld1dpZHRoID0gODAwOwogY29uc3QgdW5zaWduZWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6Om1heFZpZXdIZWlnaHQgPSA2MDA7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmggYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKaW5kZXggYjEzZjJhZC4uOGU3
MTFiOSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91
dFRlc3RDb250cm9sbGVyUXQuaApAQCAtMTg5LDYgKzE4OSw4IEBAIHB1YmxpYyBzbG90czoKICAg
ICAvLyBTaW11bGF0ZSBhIHJlcXVlc3QgYW4gZW1iZWRkaW5nIGFwcGxpY2F0aW9uIGNvdWxkIG1h
a2UsIHBvcHVsYXRpbmcgcGVyLXNlc3Npb24gY3JlZGVudGlhbCBzdG9yYWdlLgogICAgIHZvaWQg
YXV0aGVudGljYXRlU2Vzc2lvbihjb25zdCBRU3RyaW5nJiB1cmwsIGNvbnN0IFFTdHJpbmcmIHVz
ZXJuYW1lLCBjb25zdCBRU3RyaW5nJiBwYXNzd29yZCk7CiAKKyAgICB2b2lkIHNldEVkaXRpbmdC
ZWhhdmlvcihjb25zdCBRU3RyaW5nJiBlZGl0aW5nQmVoYXZpb3IpOworCiBwcml2YXRlIHNsb3Rz
OgogICAgIHZvaWQgcHJvY2Vzc1dvcmsoKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcCBiL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKaW5kZXggZDg4
OWNmYy4uODYwZWZkZiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCkBAIC0xMjYyLDMgKzEyNjIsMjAg
QEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0V2ViVmlld0VkaXRhYmxlKGJvb2wpCiB2
b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphdXRoZW50aWNhdGVTZXNzaW9uKEpTU3RyaW5nUmVm
LCBKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYpCiB7CiB9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcihKU1N0cmluZ1JlZiBlZGl0aW5nQmVoYXZpb3IpCit7
CisgICAgQ09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OworICAgIGlmIChGQUlMRUQoZnJhbWUtPndl
YlZpZXcoJndlYlZpZXcpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ09NUHRyPElXZWJQcmVm
ZXJlbmNlcz4gcHJlZmVyZW5jZXM7CisgICAgaWYgKEZBSUxFRCh3ZWJWaWV3LT5wcmVmZXJlbmNl
cygmcHJlZmVyZW5jZXMpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgd3N0cmluZyBiZWhhdmlv
cldzdHJpbmcgPSBqc1N0cmluZ1JlZlRvV1N0cmluZyhlZGl0aW5nQmVoYXZpb3IpOworICAgIGlm
IChiZWhhdmlvcldzdHJpbmcgPT0gTCJtYWMiKQorICAgICAgICBwcmVmZXJlbmNlcy0+c2V0RWRp
dGluZ0JlaGF2aW9yKFdlYktpdEVkaXRpbmdNYWNCZWhhdmlvcik7CisgICAgaWYgKGJlaGF2aW9y
V3N0cmluZyA9PSBMIndpbmRvd3MiKQorICAgICAgICBwcmVmZXJlbmNlcy0+c2V0RWRpdGluZ0Jl
aGF2aW9yKFdlYktpdEVkaXRpbmdXaW5kb3dzQmVoYXZpb3IpOworfQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAgYi9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcApp
bmRleCA0NjE0YWNhLi5iODJhMTcxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcApAQCAtNDQxLDMgKzQ0MSw4
IEBAIEpTVmFsdWVSZWYgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNvbXB1dGVkU3R5bGVJbmNsdWRp
bmdWaXNpdGVkSW5mbyhKU0NvbnRleHRSZWYsCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjph
dXRoZW50aWNhdGVTZXNzaW9uKEpTU3RyaW5nUmVmLCBKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYp
CiB7CiB9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcihK
U1N0cmluZ1JlZiBlZGl0aW5nQmVoYXZpb3IpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudAor
fQotLSAKMS42LjMuMwoK
</data>
<flag name="commit-queue"
          id="39390"
          type_id="3"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55245</attachid>
            <date>2010-05-06 08:49:52 -0700</date>
            <delta_ts>2010-05-06 09:39:08 -0700</delta_ts>
            <desc>Patch with Chromium build fix (take 3) :(</desc>
            <filename>0001-Expose-the-editing-behavior-setting-in-DRT-to-test-a.patch</filename>
            <type>text/plain</type>
            <size>35030</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">RnJvbSAwNWZmNGQ2NjY4YmZiMDJkZGQzNGZjZGMyNjExMjE0ZWY5MGIxOTk5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gUm9iaW5zb24gPG1yb2JpbnNvbkB3ZWJraXQub3Jn
PgpEYXRlOiBXZWQsIDUgTWF5IDIwMTAgMTY6MTg6NTkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBF
eHBvc2UgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRp
dGluZyBjb2RlIHBhdGhzCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzg2MDMKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKV2ViS2l0L2Nocm9taXVtOgoKRXhw
b3NlIHRoZSBFZGl0aW5nQmVoYXZpb3IgcHJlZmVyZW5jZSBpbiB0aGUgQ2hyb21pdW0gQVBJLgoK
KiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKFdlYktpdDo6V2ViU2V0dGluZ3M6Oik6IEFkZGVkIGFu
IGVudW0gZm9yIEVkaXRpbmdCZWhhdmlvciB0eXBlcy4KKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNw
cDoKKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGRlZC4K
KiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CgpXZWJLaXQvbWFjOgoKRXhwb3NlIHRoZSBFZGl0aW5n
QmVoYXZpb3Igc2V0dGluZyBpbiB0aGUgTWFjIEFQSS4KCiogV2ViVmlldy9XZWJGcmFtZS5tbToK
KGNvcmUpOgoqIFdlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oOiBBZGRlZCBhIGNvbnZlcnNpb24g
bWV0aG9kIGZyb20gdGhlIEFQSSBlbnVtIHRvIHRoZSBXZWJDb3JlIGVudW0uCiogV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogQWRkZWQgYSBwcmVmZXJlbmNlIGtleSBmb3IgdGhl
IG5ldyBzZXR0aW5nLgoqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CigrW1dlYlByZWZlcmVu
Y2VzIGluaXRpYWxpemVdKTogSW5pdGlhbGl6ZSB0aGUgRWRpdGluZ0JlaGF2aW9yIHRvIE1hYyBz
dHlsZS4KKC1bV2ViUHJlZmVyZW5jZXMgZWRpdGluZ0JlaGF2aW9yXSk6IEFkZGVkLgooLVtXZWJQ
cmVmZXJlbmNlcyBzZXRFZGl0aW5nQmVoYXZpb3I6XSk6IEFkZGVkLgoqIFdlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmg6IEFkZGVkIHRoZSBuZXcgQVBJIHBvaW50cyB0byB0aGUgcHJpdmF0
ZSBBUEkuCiogV2ViVmlldy9XZWJWaWV3Lm1tOgooLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5n
ZWROb3RpZmljYXRpb246XSk6IFNldCB0aGUgZWRpdGluZyBiZWhhdmlvciB2aWEgdGhlIFdlYlBy
ZWZlcmVuY2VzIHNldHRpbmcuCgpXZWJLaXQvd2luOgoKRXhwb3NlIHRoZSBFZGl0aW5nQmVoYXZp
b3Igc2V0dGluZyBpbiB0aGUgV2luZG93cyBBUEkuCgoqIEludGVyZmFjZXMvSVdlYlByZWZlcmVu
Y2VzLmlkbDogQWRkIHRoZSBBUEkgcG9pbnQgZm9yIHNldHRpbmcgdGhlIGVkaXRpbmcgYmVoYXZp
b3IuCiogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZCBhIGtleSBmb3IgdGhlIGVkaXRp
bmcgYmVoYXZpb3Igc2V0dGluZy4KKiBXZWJQcmVmZXJlbmNlcy5jcHA6CihXZWJQcmVmZXJlbmNl
czo6ZWRpdGluZ0JlaGF2aW9yKTogQWRkZWQuCihXZWJQcmVmZXJlbmNlczo6c2V0RWRpdGluZ0Jl
aGF2aW9yKTogQWRkZWQuCiogV2ViUHJlZmVyZW5jZXMuaDogQWRkIG1ldGhvZCBkZWNsYXJhdGlv
bnMuCiogV2ViVmlldy5jcHA6CihXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOiBV
cGRhdGUgdGhlIFdlYkNvcmUgc2V0dGluZyBiYXNlZCBvbiB0aGUgV2ViUHJlZmVyZW5jZXMgc2V0
dGluZy4KCldlYktpdFRvb2xzOgoKKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHA6CihzZXRFZGl0aW5nQmVoYXZpb3JDYWxsYmFjayk6IEFkZGVkLgooTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6IEV4cG9zZSB0aGUgc2V0RWRpdGluZ0JlaGF2aW9y
Q2FsbGJhY2sgZnVuY3Rpb24uCiogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aDoKKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6IEFk
ZCBjYWxsYmFjayBtZXRob2QgZm9yIHNldHRpbmcgZWRpdGluZyBiZWhhdmlvci4KKiBEdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOiBEZWNsYXJhdGlvbiBmb3Ig
dGhpcyBtZXRob2QuCiogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcDoKKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBJbXBsZW1l
bnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCiogRHVtcFJlbmRlclRyZWUvbWFj
L0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVk
aXRpbmdCZWhhdmlvcik6IERpdHRvCiogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5jcHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTog
QWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCiog
RHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oOgooTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZCBzbG90IGZvciBjb250cm9sbGluZyBl
ZGl0b3IgYmVoYXZpb3IuCiogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVy
V2luLmNwcDoKKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBJbXBs
ZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCiogRHVtcFJlbmRlclRyZWUv
d3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
RWRpdGluZ0JlaGF2aW9yKTogQWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJl
aGF2aW9yIGNvbnRyb2wuCgpMYXlvdXRUZXN0czoKCiogZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5k
LXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbDogVXNlIHRoZSBuZXcgRFJUIHN1cHBv
cnQgZm9yIGNoYW5naW5nIGVkaXRpbmcgYmVoYXZpb3IuCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5ICsrKysrCiAuLi4vZXh0ZW5k
LXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbCAgICAgICB8ICAgMzMgKysrKysrKysr
KysrKystLS0tLQogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDE1ICsrKysrKysrKwogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5n
cy5oICAgICAgICAgICAgICAgfCAgICA2ICsrKwogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuY3BwICAgICAgICAgICAgfCAgIDEwICsrKysrKwogV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTZXR0aW5nc0ltcGwuaCAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdC9tYWMvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysrKysrKysrKysK
IFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSAgICAgICAgICAgICAgICAgICAgIHwgICAx
MiArKysrKysrCiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oICAgICAgICAg
ICAgICB8ICAgIDEgKwogV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oICAgICAgfCAgICAxICsKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSAg
ICAgICAgICAgICAgIHwgICAxMSArKysrKysKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaCAgICAgICAgIHwgICAgOCArKysrKwogV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0gICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdC93aW4vQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOCArKysrKysrKysrKwogV2Vi
S2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGwgICAgICAgICAgfCAgICA5ICsr
KysrCiBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oICAgICAgICAgICAgICB8
ICAgIDEgKwogV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDE1ICsrKysrKysrKwogV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICA2ICsrKwogV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICsrKwogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI2ICsrKysrKysrKysrKysrKwogLi4uL0R1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCAgICAgICAgfCAgIDE2ICsrKysr
KysrKwogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCAg
fCAgICAxICsKIC4uLi9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgICAgICAgICAg
ICAgIHwgICAxMiArKysrKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuaCB8ICAgIDIgKwogLi4uL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0
Q29udHJvbGxlckd0ay5jcHAgfCAgIDE0ICsrKysrKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvbWFj
L0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tICB8ICAgIDkgKysrKysKIC4uLi9EdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCAgIHwgICAgNSArKysKIC4uLi9EdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmggICAgIHwgICAgMiArCiAuLi4v
RHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcCB8ICAgMTcgKysr
KysrKysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3Bw
ICAgfCAgICA1ICsrKwogMzAgZmlsZXMgY2hhbmdlZCwgMjg0IGluc2VydGlvbnMoKyksIDkgZGVs
ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDAzM2NjMTguLjBmYzc5ZDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxMC0wNS0wNiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRo
ZSBlZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcgaW4gRFJUIHRvIHRlc3QgYWxsIGVkaXRpbmcgY29k
ZSBwYXRocworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzg2MDMKKworICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0
ZXItZG91YmxlLWNsaWNrLmh0bWw6IFVzZSB0aGUgbmV3IERSVCBzdXBwb3J0IGZvciBjaGFuZ2lu
ZyBlZGl0aW5nIGJlaGF2aW9yLgorCiAyMDEwLTA1LTA2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdl
YmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRv
dWJsZS1jbGljay5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNl
bGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbAppbmRleCA4OTEwODBiLi4zMzg4NDk2IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9u
LWFmdGVyLWRvdWJsZS1jbGljay5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLmh0bWwKQEAgLTE4LDEzICsx
OCwzMSBAQAogICAgICAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgxMDAwKTsKICAgICB9CiAK
LSAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICBmdW5jdGlvbiBsb2dSZXN1bHQocmVzdWx0KQor
ICAgIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmZpcnN0Q2hp
bGQuZGF0YSA9IHJlc3VsdDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAg
ewogICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlciB8fCAhd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKIAorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRF
ZGl0aW5nQmVoYXZpb3IoIm1hYyIpOworICAgICAgICBpZiAoIXJ1blRlc3QoImEgcGFyYWdyYXBo
IikpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0RWRpdGluZ0JlaGF2aW9yKCJ3aW5kb3dzIik7CisgICAgICAgIGlmICghcnVuVGVzdCgicGFy
YWdyYSIpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxvZ1Jlc3VsdCgiU1VDQ0VT
UyIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoZXhwZWN0ZWRUZXh0KQorICAgIHsK
ICAgICAgICAgZG91YmxlQ2xpY2tXb3JkKCk7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLm1vZGlm
eSgiZXh0ZW5kIiwgImJhY2t3YXJkIiwgImNoYXJhY3RlciIpOwogICAgICAgICBnZXRTZWxlY3Rp
b24oKS5tb2RpZnkoImV4dGVuZCIsICJiYWNrd2FyZCIsICJjaGFyYWN0ZXIiKTsKQEAgLTMyLDE5
ICs1MCwxNiBAQAogICAgICAgICBnZXRTZWxlY3Rpb24oKS5tb2RpZnkoImV4dGVuZCIsICJiYWNr
d2FyZCIsICJjaGFyYWN0ZXIiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCJleHRl
bmQiLCAiYmFja3dhcmQiLCAiY2hhcmFjdGVyIik7CiAKLSAgICAgICAgdmFyIHJlc3VsdDsKICAg
ICAgICAgdmFyIHNlbGVjdGVkVGV4dCA9IGdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0gICAg
ICAgIHZhciBvbk1hY1BsYXRmb3JtID0gbmF2aWdhdG9yLnVzZXJBZ2VudC5zZWFyY2goL1xiTWFj
IE9TIFhcYi8pICE9IC0xOwotICAgICAgICB2YXIgZXhwZWN0ZWRUZXh0ID0gb25NYWNQbGF0Zm9y
bSA/ICJhIHBhcmFncmFwaCIgOiAicGFyYWdyYSI7CiAgICAgICAgIGlmIChzZWxlY3RlZFRleHQg
PT0gZXhwZWN0ZWRUZXh0KQotICAgICAgICAgICAgcmVzdWx0ID0gIlNVQ0NFU1MiOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICByZXN1bHQgPSAiRkFJTFVSRTogVGhlIHNlbGVjdGVkIHRleHQg
aXMgXCIiICsgc2VsZWN0ZWRUZXh0ICsgIlwiIGFuZCBzaG91bGQgYmUgXCIiICsgZXhwZWN0ZWRU
ZXh0ICsgIlwiLiI7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5m
aXJzdENoaWxkLmRhdGEgPSByZXN1bHQ7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAg
ICAgICBsb2dSZXN1bHQoIkZBSUxVUkU6IFRoZSBzZWxlY3RlZCB0ZXh0IGlzIFwiIiArIHNlbGVj
dGVkVGV4dCArICJcIiBhbmQgc2hvdWxkIGJlIFwiIiArIGV4cGVjdGVkVGV4dCArICJcIi4iKTsK
KyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIDwvc2NyaXB0PgogPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KIDxwPlRoaXMg
dGVzdHMgbW9kaWZ5aW5nIGEgc2VsZWN0aW9uIGNyZWF0ZWQgd2l0aCBhIGRvdWJsZSBjbGljayB3
aXRoIHNoaWZ0IGFycm93IGtleS48L3A+CiA8cCBzdHlsZT0iY29sb3I6Z3JlZW4iPgogICAgIFRo
aXMgdGVzdCBkb2VzIG5vdCBydW4gaW50ZXJhY3RpdmVseS4KZGlmZiAtLWdpdCBhL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGNjZGE0
NWIuLjIxNjFiYWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIv
V2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDEwLTA1LTA2ICBN
YXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBvc2UgdGhlIGVkaXRpbmcgYmVoYXZp
b3Igc2V0dGluZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRpdGluZyBjb2RlIHBhdGhzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODYwMworCisgICAgICAg
IEV4cG9zZSB0aGUgRWRpdGluZ0JlaGF2aW9yIHByZWZlcmVuY2UgaW4gdGhlIENocm9taXVtIEFQ
SS4KKworICAgICAgICAqIHB1YmxpYy9XZWJTZXR0aW5ncy5oOgorICAgICAgICAoV2ViS2l0OjpX
ZWJTZXR0aW5nczo6KTogQWRkZWQgYW4gZW51bSBmb3IgRWRpdGluZ0JlaGF2aW9yIHR5cGVzLgor
ICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuY3BwOiAKKyAgICAgICAgKFdlYktpdDo6V2Vi
U2V0dGluZ3NJbXBsOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGRlZC4KKyAgICAgICAgKiBzcmMv
V2ViU2V0dGluZ3NJbXBsLmg6CisKIDIwMTAtMDUtMDYgIEFkYW0gQmFydGggIDxhYmFydGhAd2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBiL1dlYktpdC9jaHJvbWl1bS9w
dWJsaWMvV2ViU2V0dGluZ3MuaAppbmRleCAzNTZkOWZhLi44NTliNjQxIDEwMDY0NAotLS0gYS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJTZXR0aW5ncy5oCkBAIC00Myw2ICs0MywxMSBAQCBjbGFzcyBXZWJVUkw7CiAv
LyB0aGVzZSBmdW5jdGlvbnMgaGF2ZSBhIDE6MSBtYXBwaW5nIHdpdGggdGhlIG1ldGhvZHMgaW4g
V2ViQ29yZS9wYWdlL3NldHRpbmdzLmguCiBjbGFzcyBXZWJTZXR0aW5ncyB7CiBwdWJsaWM6Cisg
ICAgZW51bSBFZGl0aW5nQmVoYXZpb3IgeworICAgICAgICBFZGl0aW5nQmVoYXZpb3JNYWMgPSAx
LAorICAgICAgICBFZGl0aW5nQmVoYXZpb3JXaW5kb3dzCisgICAgfTsKKwogICAgIHZpcnR1YWwg
dm9pZCBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRGaXhlZEZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJikgPSAwOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRTZXJpZkZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJikgPSAwOwpA
QCAtODQsNiArODksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldE9mZmxpbmVXZWJB
cHBsaWNhdGlvbkNhY2hlRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEV4
cGVyaW1lbnRhbFdlYkdMRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNo
b3dEZWJ1Z0JvcmRlcnMoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0aW5nQmVo
YXZpb3IoRWRpdGluZ0JlaGF2aW9yKSA9IDA7CiAKIHByb3RlY3RlZDoKICAgICB+V2ViU2V0dGlu
Z3MoKSB7IH0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBs
LmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAppbmRleCAzYWRm
M2FjLi40N2ZmYjJmIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdz
SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBA
IC0yNjksNCArMjY5LDE0IEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRTaG93RGVidWdCb3Jk
ZXJzKGJvb2wgc2hvdykKICAgICBtX3NldHRpbmdzLT5zZXRTaG93RGVidWdCb3JkZXJzKHNob3cp
OwogfQogCit2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdC
ZWhhdmlvciBiZWhhdmlvcikKK3sKKyAgICBpZiAoYmVoYXZpb3IgPT0gRWRpdGluZ0JlaGF2aW9y
TWFjKSB7CisgICAgICAgIG1fc2V0dGluZ3MtPnNldEVkaXRpbmdCZWhhdmlvcihXZWJDb3JlOjpF
ZGl0aW5nTWFjQmVoYXZpb3IpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgbV9zZXR0
aW5ncy0+c2V0RWRpdGluZ0JlaGF2aW9yKFdlYkNvcmU6OkVkaXRpbmdXaW5kb3dzQmVoYXZpb3Ip
OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdz
SW1wbC5oCmluZGV4IDU0YzY2MGIuLjcwMjI1ZmYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuaApAQCAtODYsNiArODYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNl
dE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RXhwZXJpbWVudGFsV2ViR0xFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRTaG93RGVidWdCb3JkZXJzKGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0aW5nQmVo
YXZpb3IoRWRpdGluZ0JlaGF2aW9yKTsKIAogcHJpdmF0ZToKICAgICBXZWJDb3JlOjpTZXR0aW5n
cyogbV9zZXR0aW5nczsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKaW5kZXggODA3ZTJhZC4uMzg4ZDEwNSAxMDA2NDQKLS0tIGEvV2ViS2l0
L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBA
QAorMjAxMC0wNS0wNiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRo
ZSBlZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcgaW4gRFJUIHRvIHRlc3QgYWxsIGVkaXRpbmcgY29k
ZSBwYXRocworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzg2MDMKKworICAgICAgICBFeHBvc2UgdGhlIEVkaXRpbmdCZWhhdmlvciBzZXR0aW5nIGluIHRo
ZSBNYWMgQVBJLgorCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKGNv
cmUpOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oOiBBZGRlZCBhIGNvbnZl
cnNpb24gbWV0aG9kIGZyb20gdGhlIEFQSSBlbnVtIHRvIHRoZSBXZWJDb3JlIGVudW0uCisgICAg
ICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogQWRkZWQgYSBwcmVmZXJl
bmNlIGtleSBmb3IgdGhlIG5ldyBzZXR0aW5nLgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW06CisgICAgICAgICgrW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKTogSW5pdGlh
bGl6ZSB0aGUgRWRpdGluZ0JlaGF2aW9yIHRvIE1hYyBzdHlsZS4KKyAgICAgICAgKC1bV2ViUHJl
ZmVyZW5jZXMgZWRpdGluZ0JlaGF2aW9yXSk6IEFkZGVkLgorICAgICAgICAoLVtXZWJQcmVmZXJl
bmNlcyBzZXRFZGl0aW5nQmVoYXZpb3I6XSk6IEFkZGVkLgorICAgICAgICAqIFdlYlZpZXcvV2Vi
UHJlZmVyZW5jZXNQcml2YXRlLmg6IEFkZGVkIHRoZSBuZXcgQVBJIHBvaW50cyB0byB0aGUgcHJp
dmF0ZSBBUEkuCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJW
aWV3IF9wcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb246XSk6IFNldCB0aGUgZWRpdGluZyBi
ZWhhdmlvciB2aWEgdGhlIFdlYlByZWZlcmVuY2VzIHNldHRpbmcuCisKIDIwMTAtMDUtMDYgIFN0
ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1t
IGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IGI0MTY5YjYuLjhjODdhMzMg
MTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTE5Niw2ICsxOTYsMTggQEAgRWRpdGFibGVMaW5r
QmVoYXZpb3IgY29yZShXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciBlZGl0YWJsZUxpbmtCZWhh
dmlvcikKICAgICByZXR1cm4gRWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yOwogfQogCitXZWJD
b3JlOjpFZGl0aW5nQmVoYXZpb3IgY29yZShXZWJLaXRFZGl0aW5nQmVoYXZpb3IgYmVoYXZpb3Ip
Cit7CisgICAgc3dpdGNoIChiZWhhdmlvcikgeworICAgICAgICBjYXNlIFdlYktpdEVkaXRpbmdN
YWNCZWhhdmlvcjoKKyAgICAgICAgICAgIHJldHVybiBXZWJDb3JlOjpFZGl0aW5nTWFjQmVoYXZp
b3I7CisgICAgICAgIGNhc2UgV2ViS2l0RWRpdGluZ1dpbmRvd3NCZWhhdmlvcjoKKyAgICAgICAg
ICAgIHJldHVybiBXZWJDb3JlOjpFZGl0aW5nV2luZG93c0JlaGF2aW9yOworICAgIH0KKyAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6RWRpdGluZ01hY0JlaGF2
aW9yOworfQorCiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yIGNvcmUoV2Vi
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciBiZWhhdmlvcikKIHsKICAgICBz
d2l0Y2ggKGJlaGF2aW9yKSB7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJh
bWVJbnRlcm5hbC5oIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaAppbmRl
eCA0YzFlZTQwLi45YjIyNDhhIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJh
bWVJbnRlcm5hbC5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgK
QEAgLTcxLDYgKzcxLDcgQEAgV2ViVmlldyAqa2l0KFdlYkNvcmU6OlBhZ2UqKTsKIAogV2ViQ29y
ZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgY29yZShXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvcik7
CiBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yIGNvcmUoV2Vi
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcik7CitXZWJDb3JlOjpFZGl0aW5n
QmVoYXZpb3IgY29yZShXZWJLaXRFZGl0aW5nQmVoYXZpb3IpOwogCiBXZWJWaWV3ICpnZXRXZWJW
aWV3KFdlYkZyYW1lICp3ZWJGcmFtZSk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCBmNGFlMzMzLi40YzIyZjU5IDEwMDY0NAotLS0gYS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0xMDQsNiArMTA0LDcg
QEAKICNkZWZpbmUgV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3JQcmVmZXJlbmNlS2V5IEAiV2Vi
S2l0RWRpdGFibGVMaW5rQmVoYXZpb3IiCiAjZGVmaW5lIFdlYktpdENhY2hlTW9kZWxQcmVmZXJl
bmNlS2V5IEAiV2ViS2l0Q2FjaGVNb2RlbFByZWZlcmVuY2VLZXkiCiAjZGVmaW5lIFdlYktpdFRl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JQcmVmZXJlbmNlS2V5IEAiV2ViS2l0
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvclByZWZlcmVuY2VLZXkiCisjZGVm
aW5lIFdlYktpdEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXkgQCJXZWJLaXRFZGl0aW5nQmVo
YXZpb3IiCiAKIC8vIENvcmVHcmFwaGljcyBkZWZlcnJlZCB1cGRhdGVzIGFyZSBkaXNhYmxlZCBp
ZiBXZWJLaXRFbmFibGVDb2FsZXNjZWRVcGRhdGVzUHJlZmVyZW5jZUtleSBpcyBzZXQKIC8vIHRv
IE5PLCBvciBoYXMgbm8gdmFsdWUuICBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIE1hYyBPUyBYIDEw
LjQuNiwgZGVmZXJyZWQgdXBkYXRlcyBhcmUgT0ZGIGJ5CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW0KaW5kZXggOWRlODQ5NS4uOTA2YWY0MSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9X
ZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlcy5tbQpAQCAtMzM0LDYgKzMzNCw3IEBAIHN0YXRpYyBXZWJDYWNoZU1vZGVsIGNhY2hl
TW9kZWxGb3JNYWluQnVuZGxlKHZvaWQpCiAgICAgICAgIEAiMCIsICAgICAgICAgICAgICAgICAg
ICAgICAgICAgV2ViS2l0UERGU2NhbGVGYWN0b3JQcmVmZXJlbmNlS2V5LAogICAgICAgICBAIjAi
LCAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFVzZVNpdGVTcGVjaWZpY1Nwb29maW5n
UHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6V2ViS2l0RWRp
dGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yXSwgV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3JQcmVm
ZXJlbmNlS2V5LAorICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpXZWJLaXRFZGl0aW5n
TWFjQmVoYXZpb3JdLCBXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJlbmNlS2V5LAogI2lmICFk
ZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElOR19PTl9MRU9QQVJE
KQogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpXZWJUZXh0RGlyZWN0aW9uU3VibWVu
dUF1dG9tYXRpY2FsbHlJbmNsdWRlZF0sCiAjZWxzZQpAQCAtMTIzNyw2ICsxMjM4LDE2IEBAIHN0
YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAgICBbc2VsZiBfc2V0Qm9v
bFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdEZyYW1lRmxhdHRlbmluZ0VuYWJsZWRQcmVmZXJlbmNl
S2V5XTsKIH0KIAorLSAoV2ViS2l0RWRpdGluZ0JlaGF2aW9yKWVkaXRpbmdCZWhhdmlvcgorewor
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJLaXRFZGl0aW5nQmVoYXZpb3I+IChbc2VsZiBfaW50
ZWdlclZhbHVlRm9yS2V5OldlYktpdEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXldKTsKK30K
KworLSAodm9pZClzZXRFZGl0aW5nQmVoYXZpb3I6KFdlYktpdEVkaXRpbmdCZWhhdmlvciliZWhh
dmlvcgoreworICAgIFtzZWxmIF9zZXRJbnRlZ2VyVmFsdWU6YmVoYXZpb3IgZm9yS2V5OldlYktp
dEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXldOworfQorCiAtICh2b2lkKWRpZFJlbW92ZUZy
b21XZWJWaWV3CiB7CiAgICAgQVNTRVJUKF9wcml2YXRlLT5udW1XZWJWaWV3cyk7CmRpZmYgLS1n
aXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggZWU3ODVlOS4uODMyYzA4
OCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5o
CisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNDMs
NiArNDMsMTEgQEAgdHlwZWRlZiBlbnVtIHsKICAgICBXZWJUZXh0RGlyZWN0aW9uU3VibWVudUFs
d2F5c0luY2x1ZGVkCiB9IFdlYlRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I7
CiAKK3R5cGVkZWYgZW51bSB7CisgICAgV2ViS2l0RWRpdGluZ01hY0JlaGF2aW9yLAorICAgIFdl
YktpdEVkaXRpbmdXaW5kb3dzQmVoYXZpb3IsCit9IFdlYktpdEVkaXRpbmdCZWhhdmlvcjsKKwog
ZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb247CiBleHRl
cm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzUmVtb3ZlZE5vdGlmaWNhdGlvbjsKIApAQCAtMTI5
LDYgKzEzNCw5IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNSZW1vdmVkTm90aWZp
Y2F0aW9uOwogLSAoV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IpZWRpdGFibGVMaW5rQmVoYXZp
b3I7CiAtICh2b2lkKXNldEVkaXRhYmxlTGlua0JlaGF2aW9yOihXZWJLaXRFZGl0YWJsZUxpbmtC
ZWhhdmlvciliZWhhdmlvcjsKIAorLSAoV2ViS2l0RWRpdGluZ0JlaGF2aW9yKWVkaXRpbmdCZWhh
dmlvcjsKKy0gKHZvaWQpc2V0RWRpdGluZ0JlaGF2aW9yOihXZWJLaXRFZGl0aW5nQmVoYXZpb3Ip
YmVoYXZpb3I7CisKIC0gKFdlYlRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3Ip
dGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjsKIC0gKHZvaWQpc2V0VGV4dERp
cmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjooV2ViVGV4dERpcmVjdGlvblN1Ym1lbnVJ
bmNsdXNpb25CZWhhdmlvciliZWhhdmlvcjsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlZpZXcubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQppbmRleCAxOWVi
NDE4Li4yYTc3OWY4IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQor
KysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTMyMyw2ICsxMzIzLDcgQEAg
c3RhdGljIGJvb2wgZmFzdERvY3VtZW50VGVhcmRvd25FbmFibGVkKCkKICAgICBzZXR0aW5ncy0+
c2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKFtwcmVmZXJlbmNlcyB0ZXh0QXJlYXNBcmVSZXNpemFi
bGVdKTsKICAgICBzZXR0aW5ncy0+c2V0U2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdChbcHJl
ZmVyZW5jZXMgc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdF0pOwogICAgIHNldHRpbmdzLT5z
ZXRFZGl0YWJsZUxpbmtCZWhhdmlvcihjb3JlKFtwcmVmZXJlbmNlcyBlZGl0YWJsZUxpbmtCZWhh
dmlvcl0pKTsKKyAgICBzZXR0aW5ncy0+c2V0RWRpdGluZ0JlaGF2aW9yKGNvcmUoW3ByZWZlcmVu
Y2VzIGVkaXRpbmdCZWhhdmlvcl0pKTsKICAgICBzZXR0aW5ncy0+c2V0VGV4dERpcmVjdGlvblN1
Ym1lbnVJbmNsdXNpb25CZWhhdmlvcihjb3JlKFtwcmVmZXJlbmNlcyB0ZXh0RGlyZWN0aW9uU3Vi
bWVudUluY2x1c2lvbkJlaGF2aW9yXSkpOwogICAgIHNldHRpbmdzLT5zZXRET01QYXN0ZUFsbG93
ZWQoW3ByZWZlcmVuY2VzIGlzRE9NUGFzdGVBbGxvd2VkXSk7CiAgICAgc2V0dGluZ3MtPnNldFVz
ZXNQYWdlQ2FjaGUoW3NlbGYgdXNlc1BhZ2VDYWNoZV0pOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBlNzcxM2NlLi4yZjFkZmI1
IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9XZWJLaXQvd2luL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEwLTA1LTA2ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9i
aW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBFeHBvc2UgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZyBpbiBEUlQgdG8g
dGVzdCBhbGwgZWRpdGluZyBjb2RlIHBhdGhzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zODYwMworCisgICAgICAgIEV4cG9zZSB0aGUgRWRpdGluZ0Jl
aGF2aW9yIHNldHRpbmcgaW4gdGhlIFdpbmRvd3MgQVBJLgorCisgICAgICAgICogSW50ZXJmYWNl
cy9JV2ViUHJlZmVyZW5jZXMuaWRsOiBBZGQgdGhlIEFQSSBwb2ludCBmb3Igc2V0dGluZyB0aGUg
ZWRpdGluZyBiZWhhdmlvci4KKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDog
QWRkIGEga2V5IGZvciB0aGUgZWRpdGluZyBiZWhhdmlvciBzZXR0aW5nLgorICAgICAgICAqIFdl
YlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjplZGl0aW5nQmVoYXZp
b3IpOiBBZGRlZC4KKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpzZXRFZGl0aW5nQmVoYXZpb3Ip
OiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlcy5oOiBBZGQgbWV0aG9kIGRlY2xhcmF0
aW9ucy4KKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdlYlZpZXc6Om5vdGlmeVBy
ZWZlcmVuY2VzQ2hhbmdlZCk6IFVwZGF0ZSB0aGUgV2ViQ29yZSBzZXR0aW5nIGJhc2VkIG9uIHRo
ZSBXZWJQcmVmZXJlbmNlcyBzZXR0aW5nLgorCiAyMDEwLTA1LTA1ICBTdHVhcnQgTW9yZ2FuICA8
c3R1YXJ0bW9yZ2FuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBG
aXNoZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2Vz
LmlkbCBiL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXMuaWRsCmluZGV4IDFj
NDMxMzUuLmZmMzBhMDMgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJl
ZmVyZW5jZXMuaWRsCisrKyBiL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXMu
aWRsCkBAIC00Nyw2ICs0NywxMiBAQCB0eXBlZGVmIGVudW0gV2ViS2l0RWRpdGFibGVMaW5rQmVo
YXZpb3IgewogICAgIFdlYktpdEVkaXRhYmxlTGlua05ldmVyTGl2ZQogfSBXZWJLaXRFZGl0YWJs
ZUxpbmtCZWhhdmlvcjsKIAordHlwZWRlZiBlbnVtIFdlYktpdEVkaXRpbmdCZWhhdmlvciB7Cisg
ICAgV2ViS2l0RWRpdGluZ01hY0JlaGF2aW9yID0gMCwKKyAgICBXZWJLaXRFZGl0aW5nV2luZG93
c0JlaGF2aW9yLAorfSBXZWJLaXRFZGl0aW5nQmVoYXZpb3I7CisKKwogdHlwZWRlZiBlbnVtIFdl
YktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kgewogICAgIFdlYktpdENvb2tpZVN0b3JhZ2VB
Y2NlcHRQb2xpY3lBbHdheXMgPSAwLAogICAgIFdlYktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xp
Y3lOZXZlciwKQEAgLTE2Miw2ICsxNjgsOSBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzIDog
SVVua25vd24KICAgICBIUkVTVUxUIGVkaXRhYmxlTGlua0JlaGF2aW9yKFtvdXQsIHJldHZhbF0g
V2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IqIGVkaXRhYmxlTGlua0JlaGF2aW9yKTsKICAgICBI
UkVTVUxUIHNldEVkaXRhYmxlTGlua0JlaGF2aW9yKFtpbl0gV2ViS2l0RWRpdGFibGVMaW5rQmVo
YXZpb3IgYmVoYXZpb3IpOwogCisgICAgSFJFU1VMVCBlZGl0aW5nQmVoYXZpb3IoW291dCwgcmV0
dmFsXSBXZWJLaXRFZGl0aW5nQmVoYXZpb3IqIGVkaXRpbmdCZWhhdmlvcik7CisgICAgSFJFU1VM
VCBzZXRFZGl0aW5nQmVoYXZpb3IoW2luXSBXZWJLaXRFZGl0aW5nQmVoYXZpb3IgYmVoYXZpb3Ip
OworCiAgICAgSFJFU1VMVCBjb29raWVTdG9yYWdlQWNjZXB0UG9saWN5KFtvdXQsIHJldHZhbF0g
V2ViS2l0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeSogYWNjZXB0UG9saWN5KTsKICAgICBIUkVT
VUxUIHNldENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3koW2luXSBXZWJLaXRDb29raWVTdG9yYWdl
QWNjZXB0UG9saWN5IGFjY2VwdFBvbGljeSk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oCmluZGV4IGM0OWE5NmQuLmRhNjM3NTQgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2Vi
UHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5
c1ByaXZhdGUuaApAQCAtNzQsNiArNzQsNyBAQAogI2RlZmluZSBXZWJLaXRQREZEaXNwbGF5TW9k
ZVByZWZlcmVuY2VLZXkgIldlYktpdFBERkRpc3BsYXlNb2RlIgogI2RlZmluZSBXZWJLaXRQREZT
Y2FsZUZhY3RvclByZWZlcmVuY2VLZXkgIldlYktpdFBERlNjYWxlRmFjdG9yIgogI2RlZmluZSBX
ZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvclByZWZlcmVuY2VLZXkgIldlYktpdEVkaXRhYmxlTGlu
a0JlaGF2aW9yIgorI2RlZmluZSBXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJlbmNlS2V5ICJX
ZWJLaXRFZGl0aW5nQmVoYXZpb3IiCiAKIC8vIFdpbmRvdyBkaXNwbGF5IGlzIHRocm90dGxlZCB0
byA2MCBmcmFtZXMgcGVyIHNlY29uZCBpZiBXZWJLaXRUaHJvdHRsZVdpbmRvd0Rpc3BsYXlQcmVm
ZXJlbmNlS2V5CiAvLyBpcyBzZXQgdG8gWUVTLiAgVGhlIHdpbmRvdyBkaXNwbGF5IHRocm90dGxl
IGlzIE9GRiBieSBkZWZhdWx0IGZvciBjb21wYXRpYmlsaXR5IHdpdGggTWFjIE9TIFgKZGlmZiAt
LWdpdCBhL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwIGIvV2ViS2l0L3dpbi9XZWJQcmVm
ZXJlbmNlcy5jcHAKaW5kZXggMzNlOTA0ZC4uM2U3ZWE0MiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dp
bi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAK
QEAgLTExMzAsNiArMTEzMCwyMSBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlByZWZl
cmVuY2VzOjpzZXRFZGl0YWJsZUxpbmtCZWhhdmlvcigKICAgICByZXR1cm4gU19PSzsKIH0KIAor
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6ZWRpdGluZ0JlaGF2aW9y
KAorICAgIC8qIFtvdXQsIHJldHZhbF0gKi8gV2ViS2l0RWRpdGluZ0JlaGF2aW9yKiBlZGl0aW5n
QmVoYXZpb3IpCit7CisgICAgKmVkaXRpbmdCZWhhdmlvciA9IChXZWJLaXRFZGl0aW5nQmVoYXZp
b3IpIGludGVnZXJWYWx1ZUZvcktleShDRlNUUihXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJl
bmNlS2V5KSk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgV2ViUHJlZmVyZW5jZXM6OnNldEVkaXRpbmdCZWhhdmlvcigKKyAgICAvKiBbaW5dICovIFdl
YktpdEVkaXRhYmxlTGlua0JlaGF2aW9yIGJlaGF2aW9yKQoreworICAgIHNldEludGVnZXJWYWx1
ZShDRlNUUihXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJlbmNlS2V5KSwgYmVoYXZpb3IpOwor
ICAgIHJldHVybiBTX09LOworfQorCisKIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViUHJl
ZmVyZW5jZXM6OmNvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3koIAogICAgICAgICAvKiBbcmV0dmFs
XVtvdXRdICovIFdlYktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kgKmFjY2VwdFBvbGljeSAp
CiB7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmggYi9XZWJLaXQvd2lu
L1dlYlByZWZlcmVuY2VzLmgKaW5kZXggY2ZkZWZhOC4uMWVhNjljNyAxMDA2NDQKLS0tIGEvV2Vi
S2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMu
aApAQCAtMjM4LDYgKzIzOCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIHNldEVkaXRhYmxlTGlua0JlaGF2aW9yKCAKICAgICAgICAgLyogW2luXSAq
LyBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciBiZWhhdmlvcik7CiAKKyAgICB2aXJ0dWFsIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZWRpdGluZ0JlaGF2aW9yKAorICAgICAgICAvKiBbcmV0
dmFsXVtvdXRdICovIFdlYktpdEVkaXRpbmdCZWhhdmlvciogYmVoYXZpb3IpOworCisgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEVkaXRpbmdCZWhhdmlvcigKKyAgICAg
ICAgLyogW2luXSAqLyBXZWJLaXRFZGl0aW5nQmVoYXZpb3IgYmVoYXZpb3IpOworCiAgICAgdmly
dHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGNvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3ko
IAogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIFdlYktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQ
b2xpY3kgKmFjY2VwdFBvbGljeSk7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9X
ZWJWaWV3LmNwcCBiL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggMjQ4ZTNjZC4uMjZhMDQw
OSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9XZWJLaXQvd2luL1dl
YlZpZXcuY3BwCkBAIC00NTg2LDYgKzQ1ODYsMTIgQEAgSFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQ
cmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQogICAgICAg
ICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3MtPnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKChFZGl0
YWJsZUxpbmtCZWhhdmlvciliZWhhdmlvcik7CiAKKyAgICBXZWJLaXRFZGl0aW5nQmVoYXZpb3Ig
YmVoYXZpb3I7CisgICAgaHIgPSBwcmVmZXJlbmNlcy0+ZWRpdGluZ0JlaGF2aW9yKCZiZWhhdmlv
cik7CisgICAgaWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVybiBocjsKKyAgICBzZXR0aW5n
cy0+c2V0RWRpdGluZ0JlaGF2aW9yKChFZGl0aW5nQmVoYXZpb3IpYmVoYXZpb3IpOworCiAgICAg
aHIgPSBwcmVmZXJlbmNlcy0+dXNlc1BhZ2VDYWNoZSgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxF
RChocikpCiAgICAgICAgIHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5n
ZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCA3ZWMwMjZhLi41ODMxYjE2IDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDUtMDYgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNv
bkB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEV4cG9zZSB0aGUgZWRpdGluZyBiZWhhdmlvciBzZXR0aW5nIGluIERSVCB0byB0ZXN0
IGFsbCBlZGl0aW5nIGNvZGUgcGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTM4NjAzCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChzZXRFZGl0aW5nQmVoYXZpb3JDYWxsYmFjayk6
IEFkZGVkLgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6
IEV4cG9zZSB0aGUgc2V0RWRpdGluZ0JlaGF2aW9yQ2FsbGJhY2sgZnVuY3Rpb24uCisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6IEFkZCBjYWxsYmFj
ayBtZXRob2QgZm9yIHNldHRpbmcgZWRpdGluZyBiZWhhdmlvci4KKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOiBEZWNsYXJhdGlvbiBmb3Ig
dGhpcyBtZXRob2QuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250
cm9sbGVyR3RrLmNwcDogCisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGlu
Z0JlaGF2aW9yKTogSW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToK
KyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBEaXR0
bworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3Bw
OgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFk
ZGVkIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaDoKKyAgICAg
ICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGQgc2xvdCBm
b3IgY29udHJvbGxpbmcgZWRpdG9yIGJlaGF2aW9yLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTogSW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBi
ZWhhdmlvciBjb250cm9sLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RD
b250cm9sbGVyV3guY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRp
bmdCZWhhdmlvcik6IEFkZGVkIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlv
ciBjb250cm9sLgorCiAyMDEwLTA1LTA2ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5u
QG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlh
bnNlbi4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcAppbmRleCBiNGI1YmYyLi41ZDBmMmU0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0xNDQxLDYgKzE0
NDEsMjEgQEAgc3RhdGljIEpTVmFsdWVSZWYgYXV0aGVudGljYXRlU2Vzc2lvbkNhbGxiYWNrKEpT
Q29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiwKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VV
bmRlZmluZWQoY29udGV4dCk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIHNldEVkaXRpbmdCZWhh
dmlvckNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwg
SlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFs
dWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICAvLyBUaGUg
ZWRpdGluZyBiZWhhdmlvciBzdHJpbmcuCisgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQorICAg
ICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gZWRpdGluZ0JlaGF2aW9yKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdD
b3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKSk7CisgICAgQVNTRVJUKCEqZXhj
ZXB0aW9uKTsKKworICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250cm9sbGVyID0gc3RhdGlj
X2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVj
dCkpOworICAgIGNvbnRyb2xsZXItPnNldEVkaXRpbmdCZWhhdmlvcihlZGl0aW5nQmVoYXZpb3Iu
Z2V0KCkpOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQor
CiAvLyBTdGF0aWMgVmFsdWVzCiAKIHN0YXRpYyBKU1ZhbHVlUmVmIGdldEdsb2JhbEZsYWdDYWxs
YmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgSlNTdHJp
bmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCkBAIC0xNTkwLDYgKzE2
MDUsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVu
Y3Rpb25zKCkKICAgICAgICAgeyAic2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUiLCBzZXRDdXN0b21Q
b2xpY3lEZWxlZ2F0ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldERhdGFiYXNlUXVv
dGEiLCBzZXREYXRhYmFzZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCiAgICAgICAgIHsgInNldERv
bWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUiLCBzZXREb21haW5SZWxheGF0aW9u
Rm9yYmlkZGVuRm9yVVJMU2NoZW1lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2V0RWRp
dGluZ0JlaGF2aW9yIiwgc2V0RWRpdGluZ0JlaGF2aW9yQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAic2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCIsIHNldEZyYW1lRmxhdHRlbmluZ0VuYWJs
ZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24i
LCBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb25DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJz
ZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzIiwgc2V0SGFuZGxlc0F1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCAwOGY5NjkyLi43MjY2ZjBhIDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVy
LmgKQEAgLTk4LDYgKzk4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RnJhbWVGbGF0dGVuaW5n
RW5hYmxlZChib29sIGVuYWJsZSk7CiAgICAgdm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJs
ZWQoYm9vbCBlbmFibGUpOwogICAgIHZvaWQgc2V0U2Nyb2xsYmFyUG9saWN5KEpTU3RyaW5nUmVm
IG9yaWVudGF0aW9uLCBKU1N0cmluZ1JlZiBwb2xpY3kpOworICAgIHZvaWQgc2V0RWRpdGluZ0Jl
aGF2aW9yKEpTU3RyaW5nUmVmIGVkaXRpbmdCZWhhdmlvcik7CiAKICAgICB2b2lkIHdhaXRGb3JQ
b2xpY3lEZWxlZ2F0ZSgpOwogICAgIHNpemVfdCB3ZWJIaXN0b3J5SXRlbUNvdW50KCk7CmRpZmYg
LS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMjFiMTY4Yy4uZTcwM2MzNiAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3Bw
CisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcApAQCAtMTQ4LDYgKzE0OCw3IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlv
dXRUZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoInNldFRp
bWVsaW5lUHJvZmlsaW5nRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0VGltZWxp
bmVQcm9maWxpbmdFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJldmFsdWF0ZUluV2ViSW5zcGVj
dG9yIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpldmFsdWF0ZUluV2ViSW5zcGVjdG9yKTsKICAg
ICBiaW5kTWV0aG9kKCJmb3JjZVJlZFNlbGVjdGlvbkNvbG9ycyIsICZMYXlvdXRUZXN0Q29udHJv
bGxlcjo6Zm9yY2VSZWRTZWxlY3Rpb25Db2xvcnMpOworICAgIGJpbmRNZXRob2QoInNldEVkaXRp
bmdCZWhhdmlvciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTsK
IAogICAgIC8vIFRoZSBmYWxsYmFjayBtZXRob2QgaXMgY2FsbGVkIHdoZW4gYW4gdW5rbm93biBt
ZXRob2QgaXMgaW52b2tlZC4KICAgICBiaW5kRmFsbGJhY2tNZXRob2QoJkxheW91dFRlc3RDb250
cm9sbGVyOjpmYWxsYmFja01ldGhvZCk7CkBAIC0xMTg3LDMgKzExODgsMTQgQEAgdm9pZCBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6YWRkVXNlclNjcmlwdChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFy
Z3VtZW50cywgQ3BwVmEKICAgICAgICAgcmV0dXJuOwogICAgIG1fc2hlbGwtPndlYlZpZXcoKS0+
YWRkVXNlclNjcmlwdChXZWJTdHJpbmc6OmZyb21VVEY4KGFyZ3VtZW50c1swXS50b1N0cmluZygp
KSwgYXJndW1lbnRzWzFdLnRvQm9vbGVhbigpKTsKIH0KKwordm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRz
LCBDcHBWYXJpYW50KiByZXN1bHRzKQoreworICAgIFdlYlNldHRpbmdzKiBzZXR0aW5ncyA9IG1f
c2hlbGwtPndlYlZpZXcoKS0+c2V0dGluZ3MoKTsKKyAgICBzdHJpbmcga2V5ID0gYXJndW1lbnRz
WzBdLnRvU3RyaW5nKCk7CisgICAgaWYgKGtleSA9PSAibWFjIikKKyAgICAgICAgc2V0dGluZ3Mt
PnNldEVkaXRpbmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3JNYWMpOworCisgICAgaWYgKGtleSA9
PSAid2luZG93cyIpCisgICAgICAgIHNldHRpbmdzLT5zZXRFZGl0aW5nQmVoYXZpb3IoRWRpdGlu
Z0JlaGF2aW9yV2luZG93cyk7Cit9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCBjYThiMDE0Li5m
OWVkOGNjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTE5NSw2ICsxOTUsOCBAQCBwdWJsaWM6
CiAKICAgICB2b2lkIGR1bXBTZWxlY3Rpb25SZWN0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENw
cFZhcmlhbnQqKTsKIAorICAgIHZvaWQgc2V0RWRpdGluZ0JlaGF2aW9yKGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKwogICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJlIG9ubHkg
c3R1YnMuICBUT0RPKHBhbWcpOiBJbXBsZW1lbnQgYW55IG9mIHRoZXNlIHRoYXQKICAgICAvLyBh
cmUgbmVlZGVkIHRvIHBhc3MgdGhlIGxheW91dCB0ZXN0cy4KICAgICB2b2lkIGR1bXBBc1dlYkFy
Y2hpdmUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwpkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNw
cCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0
ay5jcHAKaW5kZXggY2JiYTdjZS4uMGEyMGJjYyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAorKysgYi9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCkBAIC0z
OSw2ICszOSw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNSZXRhaW5QdHIuaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZ1JlZi5oPgogCisjaW5jbHVkZSA8Y3N0cmlu
Zz4KICNpbmNsdWRlIDxpb3N0cmVhbT4KICNpbmNsdWRlIDxzc3RyZWFtPgogI2luY2x1ZGUgPHN0
ZGlvLmg+CkBAIC02ODgsMyArNjg5LDE2IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBMYXlv
dXRUZXN0Q29udHJvbGxlcjo6bWFya2VyVGV4dEZvckxpc3RJdGVtKEpTQ29udGV4dFJlCiB2b2lk
IExheW91dFRlc3RDb250cm9sbGVyOjphdXRoZW50aWNhdGVTZXNzaW9uKEpTU3RyaW5nUmVmLCBK
U1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYpCiB7CiB9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldEVkaXRpbmdCZWhhdmlvcihKU1N0cmluZ1JlZiBlZGl0aW5nQmVoYXZpb3IpCit7Cisg
ICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IHdlYmtpdF93ZWJfZnJhbWVfZ2V0X3dlYl92aWV3
KG1haW5GcmFtZSk7CisgICAgV2ViS2l0V2ViU2V0dGluZ3MqIHNldHRpbmdzID0gd2Via2l0X3dl
Yl92aWV3X2dldF9zZXR0aW5ncyh3ZWJWaWV3KTsKKworICAgIGNoYXIqIGVkaXRpbmdCZWhhdmlv
clN0cmluZyA9IEpTU3RyaW5nQ29weVVURjhDU3RyaW5nKGVkaXRpbmdCZWhhdmlvcik7CisgICAg
aWYgKCFzdHJjbXAoZWRpdGluZ0JlaGF2aW9yU3RyaW5nLCAid2luZG93cyIpKQorICAgICAgICBn
X29iamVjdF9zZXQoR19PQkpFQ1Qoc2V0dGluZ3MpLCAiZWRpdGluZy1iZWhhdmlvciIsIFdFQktJ
VF9FRElUSU5HX0JFSEFWSU9SX1dJTkRPV1MsIE5VTEwpOworICAgIGlmICghc3RyY21wKGVkaXRp
bmdCZWhhdmlvclN0cmluZywgIm1hYyIpKQorICAgICAgICBnX29iamVjdF9zZXQoR19PQkpFQ1Qo
c2V0dGluZ3MpLCAiZWRpdGluZy1iZWhhdmlvciIsIFdFQktJVF9FRElUSU5HX0JFSEFWSU9SX01B
QywgTlVMTCk7CisgICAgZ19mcmVlKGVkaXRpbmdCZWhhdmlvclN0cmluZyk7Cit9CmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJN
YWMubW0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xs
ZXJNYWMubW0KaW5kZXggM2IwM2FlYy4uNzk3NDljYiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisrKyBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQpAQCAt
ODM1LDMgKzgzNSwxMiBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphdXRoZW50aWNhdGVT
ZXNzaW9uKEpTU3RyaW5nUmVmIHVybCwgSlNTdHJpbmdSZWYgdXNlcgogICAgIFtTeW5jaHJvbm91
c0xvYWRlciBtYWtlUmVxdWVzdDpyZXF1ZXN0IHdpdGhVc2VybmFtZTooTlNTdHJpbmcgKil1c2Vy
bmFtZUNGLmdldCgpIHBhc3N3b3JkOihOU1N0cmluZyAqKXBhc3N3b3JkQ0YuZ2V0KCldOwogI2Vu
ZGlmCiB9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcihK
U1N0cmluZ1JlZiBlZGl0aW5nQmVoYXZpb3IpCit7CisgICAgUmV0YWluUHRyPENGU3RyaW5nUmVm
PiBlZGl0aW5nQmVoYXZpb3JDRihBZG9wdENGLCBKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBlZGl0aW5nQmVoYXZpb3IpKTsKKyAgICBpZiAoWyhOU1N0cmluZyAqKWVk
aXRpbmdCZWhhdmlvckNGLmdldCgpIGlzRXF1YWxUb1N0cmluZzpAIm1hYyJdKQorICAgICAgICBb
W1dlYlByZWZlcmVuY2VzIHN0YW5kYXJkUHJlZmVyZW5jZXNdIHNldEVkaXRpbmdCZWhhdmlvcjpX
ZWJLaXRFZGl0aW5nTWFjQmVoYXZpb3JdOworICAgIGlmIChbKE5TU3RyaW5nICopZWRpdGluZ0Jl
aGF2aW9yQ0YuZ2V0KCkgaXNFcXVhbFRvU3RyaW5nOkAid2luZG93cyJdKQorICAgICAgICBbW1dl
YlByZWZlcmVuY2VzIHN0YW5kYXJkUHJlZmVyZW5jZXNdIHNldEVkaXRpbmdCZWhhdmlvcjpXZWJL
aXRFZGl0aW5nTWFjQmVoYXZpb3JdOworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAgYi9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAppbmRleCA5NzcwOTZkLi5m
NDUwZjA0IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0LmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9M
YXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcApAQCAtNjI0LDYgKzYyNCwxMSBAQCB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjphdXRoZW50aWNhdGVTZXNzaW9uKGNvbnN0IFFTdHJpbmcmLCBjb25z
dCBRU3RyaW5nJiwgYwogICAgIC8vIEZJWE1FOiBJZiB0aGVyZSBpcyBhIGNvbmNlcHQgcGVyLXNl
c3Npb24gKHBlci1wcm9jZXNzKSBjcmVkZW50aWFsIHN0b3JhZ2UsIHRoZSBjcmVkZW50aWFscyBz
aG91bGQgYmUgYWRkZWQgdG8gaXQgZm9yIGxhdGVyIHVzZS4KIH0KIAordm9pZCBMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKGNvbnN0IFFTdHJpbmcmIGVkaXRpbmdCZWhh
dmlvcikKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorfQorCiAKIGNvbnN0IHVuc2lnbmVk
IExheW91dFRlc3RDb250cm9sbGVyOjptYXhWaWV3V2lkdGggPSA4MDA7CiBjb25zdCB1bnNpZ25l
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bWF4Vmlld0hlaWdodCA9IDYwMDsKZGlmZiAtLWdpdCBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaCBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaApp
bmRleCBiMTNmMmFkLi44ZTcxMWI5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCkBAIC0xODksNiArMTg5LDggQEAg
cHVibGljIHNsb3RzOgogICAgIC8vIFNpbXVsYXRlIGEgcmVxdWVzdCBhbiBlbWJlZGRpbmcgYXBw
bGljYXRpb24gY291bGQgbWFrZSwgcG9wdWxhdGluZyBwZXItc2Vzc2lvbiBjcmVkZW50aWFsIHN0
b3JhZ2UuCiAgICAgdm9pZCBhdXRoZW50aWNhdGVTZXNzaW9uKGNvbnN0IFFTdHJpbmcmIHVybCwg
Y29uc3QgUVN0cmluZyYgdXNlcm5hbWUsIGNvbnN0IFFTdHJpbmcmIHBhc3N3b3JkKTsKIAorICAg
IHZvaWQgc2V0RWRpdGluZ0JlaGF2aW9yKGNvbnN0IFFTdHJpbmcmIGVkaXRpbmdCZWhhdmlvcik7
CisKIHByaXZhdGUgc2xvdHM6CiAgICAgdm9pZCBwcm9jZXNzV29yaygpOwogCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4u
Y3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVy
V2luLmNwcAppbmRleCBkODg5Y2ZjLi44NjBlZmRmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCisrKyBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKQEAg
LTEyNjIsMyArMTI2MiwyMCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRXZWJWaWV3
RWRpdGFibGUoYm9vbCkKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmF1dGhlbnRpY2F0ZVNl
c3Npb24oSlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmLCBKU1N0cmluZ1JlZikKIHsKIH0KKwordm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKEpTU3RyaW5nUmVmIGVk
aXRpbmdCZWhhdmlvcikKK3sKKyAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7CisgICAgaWYg
KEZBSUxFRChmcmFtZS0+d2ViVmlldygmd2ViVmlldykpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBDT01QdHI8SVdlYlByZWZlcmVuY2VzPiBwcmVmZXJlbmNlczsKKyAgICBpZiAoRkFJTEVEKHdl
YlZpZXctPnByZWZlcmVuY2VzKCZwcmVmZXJlbmNlcykpKQorICAgICAgICByZXR1cm47CisKKyAg
ICB3c3RyaW5nIGJlaGF2aW9yV3N0cmluZyA9IGpzU3RyaW5nUmVmVG9XU3RyaW5nKGVkaXRpbmdC
ZWhhdmlvcik7CisgICAgaWYgKGJlaGF2aW9yV3N0cmluZyA9PSBMIm1hYyIpCisgICAgICAgIHBy
ZWZlcmVuY2VzLT5zZXRFZGl0aW5nQmVoYXZpb3IoV2ViS2l0RWRpdGluZ01hY0JlaGF2aW9yKTsK
KyAgICBpZiAoYmVoYXZpb3JXc3RyaW5nID09IEwid2luZG93cyIpCisgICAgICAgIHByZWZlcmVu
Y2VzLT5zZXRFZGl0aW5nQmVoYXZpb3IoV2ViS2l0RWRpdGluZ1dpbmRvd3NCZWhhdmlvcik7Cit9
CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29u
dHJvbGxlcld4LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RD
b250cm9sbGVyV3guY3BwCmluZGV4IDQ2MTRhY2EuLmI4MmExNzEgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCisrKyBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3Bw
CkBAIC00NDEsMyArNDQxLDggQEAgSlNWYWx1ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y29t
cHV0ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEpTQ29udGV4dFJlZiwKIHZvaWQgTGF5b3V0
VGVzdENvbnRyb2xsZXI6OmF1dGhlbnRpY2F0ZVNlc3Npb24oSlNTdHJpbmdSZWYsIEpTU3RyaW5n
UmVmLCBKU1N0cmluZ1JlZikKIHsKIH0KKwordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
RWRpdGluZ0JlaGF2aW9yKEpTU3RyaW5nUmVmIGVkaXRpbmdCZWhhdmlvcikKK3sKKyAgICAvLyBG
SVhNRTogSW1wbGVtZW50Cit9Ci0tIAoxLjYuMy4zCgo=
</data>
<flag name="commit-queue"
          id="39393"
          type_id="3"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55251</attachid>
            <date>2010-05-06 09:39:08 -0700</date>
            <delta_ts>2010-05-13 14:48:40 -0700</delta_ts>
            <desc>Patch with Chromium build fix</desc>
            <filename>0001-Expose-the-editing-behavior-setting-in-DRT-to-test-a.patch</filename>
            <type>text/plain</type>
            <size>35071</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">RnJvbSBjMGEzYTQwODkxMmE2MDRjY2YyMzQ2MGUzMzUzZTg2NGI5YTU2Y2E4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gUm9iaW5zb24gPG1yb2JpbnNvbkB3ZWJraXQub3Jn
PgpEYXRlOiBXZWQsIDUgTWF5IDIwMTAgMTY6MTg6NTkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBF
eHBvc2UgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRp
dGluZyBjb2RlIHBhdGhzCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzg2MDMKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKV2ViS2l0L2Nocm9taXVtOgoKRXhw
b3NlIHRoZSBFZGl0aW5nQmVoYXZpb3IgcHJlZmVyZW5jZSBpbiB0aGUgQ2hyb21pdW0gQVBJLgoK
KiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKFdlYktpdDo6V2ViU2V0dGluZ3M6Oik6IEFkZGVkIGFu
IGVudW0gZm9yIEVkaXRpbmdCZWhhdmlvciB0eXBlcy4KKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNw
cDoKKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGRlZC4K
KiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CgpXZWJLaXQvbWFjOgoKRXhwb3NlIHRoZSBFZGl0aW5n
QmVoYXZpb3Igc2V0dGluZyBpbiB0aGUgTWFjIEFQSS4KCiogV2ViVmlldy9XZWJGcmFtZS5tbToK
KGNvcmUpOgoqIFdlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oOiBBZGRlZCBhIGNvbnZlcnNpb24g
bWV0aG9kIGZyb20gdGhlIEFQSSBlbnVtIHRvIHRoZSBXZWJDb3JlIGVudW0uCiogV2ViVmlldy9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogQWRkZWQgYSBwcmVmZXJlbmNlIGtleSBmb3IgdGhl
IG5ldyBzZXR0aW5nLgoqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CigrW1dlYlByZWZlcmVu
Y2VzIGluaXRpYWxpemVdKTogSW5pdGlhbGl6ZSB0aGUgRWRpdGluZ0JlaGF2aW9yIHRvIE1hYyBz
dHlsZS4KKC1bV2ViUHJlZmVyZW5jZXMgZWRpdGluZ0JlaGF2aW9yXSk6IEFkZGVkLgooLVtXZWJQ
cmVmZXJlbmNlcyBzZXRFZGl0aW5nQmVoYXZpb3I6XSk6IEFkZGVkLgoqIFdlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmg6IEFkZGVkIHRoZSBuZXcgQVBJIHBvaW50cyB0byB0aGUgcHJpdmF0
ZSBBUEkuCiogV2ViVmlldy9XZWJWaWV3Lm1tOgooLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5n
ZWROb3RpZmljYXRpb246XSk6IFNldCB0aGUgZWRpdGluZyBiZWhhdmlvciB2aWEgdGhlIFdlYlBy
ZWZlcmVuY2VzIHNldHRpbmcuCgpXZWJLaXQvd2luOgoKRXhwb3NlIHRoZSBFZGl0aW5nQmVoYXZp
b3Igc2V0dGluZyBpbiB0aGUgV2luZG93cyBBUEkuCgoqIEludGVyZmFjZXMvSVdlYlByZWZlcmVu
Y2VzLmlkbDogQWRkIHRoZSBBUEkgcG9pbnQgZm9yIHNldHRpbmcgdGhlIGVkaXRpbmcgYmVoYXZp
b3IuCiogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZCBhIGtleSBmb3IgdGhlIGVkaXRp
bmcgYmVoYXZpb3Igc2V0dGluZy4KKiBXZWJQcmVmZXJlbmNlcy5jcHA6CihXZWJQcmVmZXJlbmNl
czo6ZWRpdGluZ0JlaGF2aW9yKTogQWRkZWQuCihXZWJQcmVmZXJlbmNlczo6c2V0RWRpdGluZ0Jl
aGF2aW9yKTogQWRkZWQuCiogV2ViUHJlZmVyZW5jZXMuaDogQWRkIG1ldGhvZCBkZWNsYXJhdGlv
bnMuCiogV2ViVmlldy5jcHA6CihXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOiBV
cGRhdGUgdGhlIFdlYkNvcmUgc2V0dGluZyBiYXNlZCBvbiB0aGUgV2ViUHJlZmVyZW5jZXMgc2V0
dGluZy4KCldlYktpdFRvb2xzOgoKKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxl
ci5jcHA6CihzZXRFZGl0aW5nQmVoYXZpb3JDYWxsYmFjayk6IEFkZGVkLgooTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6IEV4cG9zZSB0aGUgc2V0RWRpdGluZ0JlaGF2aW9y
Q2FsbGJhY2sgZnVuY3Rpb24uCiogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIu
aDoKKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6IEFk
ZCBjYWxsYmFjayBtZXRob2QgZm9yIHNldHRpbmcgZWRpdGluZyBiZWhhdmlvci4KKiBEdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOiBEZWNsYXJhdGlvbiBmb3Ig
dGhpcyBtZXRob2QuCiogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcDoKKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBJbXBsZW1l
bnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCiogRHVtcFJlbmRlclRyZWUvbWFj
L0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVk
aXRpbmdCZWhhdmlvcik6IERpdHRvCiogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5jcHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTog
QWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCiog
RHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oOgooTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZCBzbG90IGZvciBjb250cm9sbGluZyBl
ZGl0b3IgYmVoYXZpb3IuCiogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVy
V2luLmNwcDoKKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBJbXBs
ZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCiogRHVtcFJlbmRlclRyZWUv
d3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
RWRpdGluZ0JlaGF2aW9yKTogQWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJl
aGF2aW9yIGNvbnRyb2wuCgpMYXlvdXRUZXN0czoKCiogZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5k
LXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbDogVXNlIHRoZSBuZXcgRFJUIHN1cHBv
cnQgZm9yIGNoYW5naW5nIGVkaXRpbmcgYmVoYXZpb3IuCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICA5ICsrKysrCiAuLi4vZXh0ZW5k
LXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbCAgICAgICB8ICAgMzMgKysrKysrKysr
KysrKystLS0tLQogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAg
ICAgICAgfCAgIDE1ICsrKysrKysrKwogV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5n
cy5oICAgICAgICAgICAgICAgfCAgICA2ICsrKwogV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuY3BwICAgICAgICAgICAgfCAgIDEwICsrKysrKwogV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTZXR0aW5nc0ltcGwuaCAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdC9tYWMvQ2hh
bmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyMSArKysrKysrKysrKysK
IFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbSAgICAgICAgICAgICAgICAgICAgIHwgICAx
MiArKysrKysrCiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oICAgICAgICAg
ICAgICB8ICAgIDEgKwogV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0
ZS5oICAgICAgfCAgICAxICsKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbSAg
ICAgICAgICAgICAgIHwgICAxMSArKysrKysKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaCAgICAgICAgIHwgICAgOCArKysrKwogV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0gICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKIFdlYktpdC93aW4vQ2hhbmdl
TG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxOCArKysrKysrKysrKwogV2Vi
S2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGwgICAgICAgICAgfCAgICA5ICsr
KysrCiBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oICAgICAgICAgICAgICB8
ICAgIDEgKwogV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAgICAgICAgICAgICAgICAgICAg
ICAgfCAgIDE1ICsrKysrKysrKwogV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICA2ICsrKwogV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgfCAgICA2ICsrKwogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDI2ICsrKysrKysrKysrKysrKwogLi4uL0R1
bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCAgICAgICAgfCAgIDE2ICsrKysr
KysrKwogV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCAg
fCAgICAxICsKIC4uLi9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgICAgICAgICAg
ICAgIHwgICAxMiArKysrKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuaCB8ICAgIDIgKwogLi4uL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0
Q29udHJvbGxlckd0ay5jcHAgfCAgIDE0ICsrKysrKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvbWFj
L0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tICB8ICAgIDkgKysrKysKIC4uLi9EdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCAgIHwgICAgNSArKysKIC4uLi9EdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmggICAgIHwgICAgMiArCiAuLi4v
RHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcCB8ICAgMTcgKysr
KysrKysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3Bw
ICAgfCAgICA1ICsrKwogMzAgZmlsZXMgY2hhbmdlZCwgMjg0IGluc2VydGlvbnMoKyksIDkgZGVs
ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDc4ZTQyNjguLjM1NGVkNWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBA
QAorMjAxMC0wNS0wNiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRo
ZSBlZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcgaW4gRFJUIHRvIHRlc3QgYWxsIGVkaXRpbmcgY29k
ZSBwYXRocworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzg2MDMKKworICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0
ZXItZG91YmxlLWNsaWNrLmh0bWw6IFVzZSB0aGUgbmV3IERSVCBzdXBwb3J0IGZvciBjaGFuZ2lu
ZyBlZGl0aW5nIGJlaGF2aW9yLgorCiAyMDEwLTA1LTA1ICBBbnRvbmlvIEdvbWVzICA8dG9uaWtp
dG9vQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBDaHJpc3RpYW5z
ZW4uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2Vs
ZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGljay5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbAppbmRleCA4OTEw
ODBiLi4zMzg4NDk2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9l
eHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGljay5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLmh0
bWwKQEAgLTE4LDEzICsxOCwzMSBAQAogICAgICAgICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgx
MDAwKTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICBmdW5jdGlvbiBsb2dS
ZXN1bHQocmVzdWx0KQorICAgIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJl
c3VsdCIpLmZpcnN0Q2hpbGQuZGF0YSA9IHJlc3VsdDsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBy
dW5UZXN0cygpCiAgICAgewogICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlciB8fCAhd2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKIAorICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRFZGl0aW5nQmVoYXZpb3IoIm1hYyIpOworICAgICAgICBpZiAoIXJ1blRl
c3QoImEgcGFyYWdyYXBoIikpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuc2V0RWRpdGluZ0JlaGF2aW9yKCJ3aW5kb3dzIik7CisgICAgICAgIGlm
ICghcnVuVGVzdCgicGFyYWdyYSIpKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGxv
Z1Jlc3VsdCgiU1VDQ0VTUyIpOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoZXhwZWN0
ZWRUZXh0KQorICAgIHsKICAgICAgICAgZG91YmxlQ2xpY2tXb3JkKCk7CiAgICAgICAgIGdldFNl
bGVjdGlvbigpLm1vZGlmeSgiZXh0ZW5kIiwgImJhY2t3YXJkIiwgImNoYXJhY3RlciIpOwogICAg
ICAgICBnZXRTZWxlY3Rpb24oKS5tb2RpZnkoImV4dGVuZCIsICJiYWNrd2FyZCIsICJjaGFyYWN0
ZXIiKTsKQEAgLTMyLDE5ICs1MCwxNiBAQAogICAgICAgICBnZXRTZWxlY3Rpb24oKS5tb2RpZnko
ImV4dGVuZCIsICJiYWNrd2FyZCIsICJjaGFyYWN0ZXIiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9u
KCkubW9kaWZ5KCJleHRlbmQiLCAiYmFja3dhcmQiLCAiY2hhcmFjdGVyIik7CiAKLSAgICAgICAg
dmFyIHJlc3VsdDsKICAgICAgICAgdmFyIHNlbGVjdGVkVGV4dCA9IGdldFNlbGVjdGlvbigpLnRv
U3RyaW5nKCk7Ci0gICAgICAgIHZhciBvbk1hY1BsYXRmb3JtID0gbmF2aWdhdG9yLnVzZXJBZ2Vu
dC5zZWFyY2goL1xiTWFjIE9TIFhcYi8pICE9IC0xOwotICAgICAgICB2YXIgZXhwZWN0ZWRUZXh0
ID0gb25NYWNQbGF0Zm9ybSA/ICJhIHBhcmFncmFwaCIgOiAicGFyYWdyYSI7CiAgICAgICAgIGlm
IChzZWxlY3RlZFRleHQgPT0gZXhwZWN0ZWRUZXh0KQotICAgICAgICAgICAgcmVzdWx0ID0gIlNV
Q0NFU1MiOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICByZXN1bHQgPSAiRkFJTFVSRTogVGhl
IHNlbGVjdGVkIHRleHQgaXMgXCIiICsgc2VsZWN0ZWRUZXh0ICsgIlwiIGFuZCBzaG91bGQgYmUg
XCIiICsgZXhwZWN0ZWRUZXh0ICsgIlwiLiI7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJyZXN1bHQiKS5maXJzdENoaWxkLmRhdGEgPSByZXN1bHQ7CisgICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgICAgICBsb2dSZXN1bHQoIkZBSUxVUkU6IFRoZSBzZWxlY3RlZCB0ZXh0
IGlzIFwiIiArIHNlbGVjdGVkVGV4dCArICJcIiBhbmQgc2hvdWxkIGJlIFwiIiArIGV4cGVjdGVk
VGV4dCArICJcIi4iKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIDwvc2NyaXB0Pgog
PC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGJvZHkgb25sb2FkPSJydW5UZXN0
cygpIj4KIDxwPlRoaXMgdGVzdHMgbW9kaWZ5aW5nIGEgc2VsZWN0aW9uIGNyZWF0ZWQgd2l0aCBh
IGRvdWJsZSBjbGljayB3aXRoIHNoaWZ0IGFycm93IGtleS48L3A+CiA8cCBzdHlsZT0iY29sb3I6
Z3JlZW4iPgogICAgIFRoaXMgdGVzdCBkb2VzIG5vdCBydW4gaW50ZXJhY3RpdmVseS4KZGlmZiAt
LWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdl
TG9nCmluZGV4IGNjZGE0NWIuLjIxNjFiYWIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBA
CisyMDEwLTA1LTA2ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBvc2UgdGhl
IGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRpdGluZyBjb2Rl
IHBhdGhzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
ODYwMworCisgICAgICAgIEV4cG9zZSB0aGUgRWRpdGluZ0JlaGF2aW9yIHByZWZlcmVuY2UgaW4g
dGhlIENocm9taXVtIEFQSS4KKworICAgICAgICAqIHB1YmxpYy9XZWJTZXR0aW5ncy5oOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nczo6KTogQWRkZWQgYW4gZW51bSBmb3IgRWRpdGluZ0Jl
aGF2aW9yIHR5cGVzLgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuY3BwOiAKKyAgICAg
ICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGRlZC4K
KyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CisKIDIwMTAtMDUtMDYgIEFkYW0gQmFy
dGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRl
bC4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBiL1dl
YktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAppbmRleCAzNTZkOWZhLi44NTliNjQx
IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCkBAIC00Myw2ICs0MywxMSBAQCBj
bGFzcyBXZWJVUkw7CiAvLyB0aGVzZSBmdW5jdGlvbnMgaGF2ZSBhIDE6MSBtYXBwaW5nIHdpdGgg
dGhlIG1ldGhvZHMgaW4gV2ViQ29yZS9wYWdlL3NldHRpbmdzLmguCiBjbGFzcyBXZWJTZXR0aW5n
cyB7CiBwdWJsaWM6CisgICAgZW51bSBFZGl0aW5nQmVoYXZpb3IgeworICAgICAgICBFZGl0aW5n
QmVoYXZpb3JNYWMgPSAxLAorICAgICAgICBFZGl0aW5nQmVoYXZpb3JXaW5kb3dzCisgICAgfTsK
KwogICAgIHZpcnR1YWwgdm9pZCBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5n
JikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRGaXhlZEZvbnRGYW1pbHkoY29uc3QgV2ViU3Ry
aW5nJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTZXJpZkZvbnRGYW1pbHkoY29uc3QgV2Vi
U3RyaW5nJikgPSAwOwpAQCAtODQsNiArODksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lk
IHNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNldEV4cGVyaW1lbnRhbFdlYkdMRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNldFNob3dEZWJ1Z0JvcmRlcnMoYm9vbCkgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRFZGl0aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yKSA9IDA7CiAKIHByb3RlY3RlZDoK
ICAgICB+V2ViU2V0dGluZ3MoKSB7IH0KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU2V0dGluZ3NJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBs
LmNwcAppbmRleCAzYWRmM2FjLi40N2ZmYjJmIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuY3BwCkBAIC0yNjksNCArMjY5LDE0IEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpz
ZXRTaG93RGVidWdCb3JkZXJzKGJvb2wgc2hvdykKICAgICBtX3NldHRpbmdzLT5zZXRTaG93RGVi
dWdCb3JkZXJzKHNob3cpOwogfQogCit2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0RWRpdGluZ0Jl
aGF2aW9yKEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcikKK3sKKyAgICBpZiAoYmVoYXZpb3IgPT0g
RWRpdGluZ0JlaGF2aW9yTWFjKSB7CisgICAgICAgIG1fc2V0dGluZ3MtPnNldEVkaXRpbmdCZWhh
dmlvcihXZWJDb3JlOjpFZGl0aW5nTWFjQmVoYXZpb3IpOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgbV9zZXR0aW5ncy0+c2V0RWRpdGluZ0JlaGF2aW9yKFdlYkNvcmU6OkVkaXRpbmdX
aW5kb3dzQmVoYXZpb3IpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlNldHRpbmdzSW1wbC5oCmluZGV4IDU0YzY2MGIuLjcwMjI1ZmYgMTAwNjQ0Ci0tLSBh
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaApAQCAtODYsNiArODYsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHNldE9mZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChib29sKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0RXhwZXJpbWVudGFsV2ViR0xFbmFibGVkKGJvb2wpOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRTaG93RGVidWdCb3JkZXJzKGJvb2wpOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRFZGl0aW5nQmVoYXZpb3IoRWRpdGluZ0JlaGF2aW9yKTsKIAogcHJpdmF0ZToKICAgICBX
ZWJDb3JlOjpTZXR0aW5ncyogbV9zZXR0aW5nczsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hh
bmdlTG9nIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggODA3ZTJhZC4uMzg4ZDEwNSAxMDA2
NDQKLS0tIGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNCBAQAorMjAxMC0wNS0wNiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29u
QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgRXhwb3NlIHRoZSBlZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcgaW4gRFJUIHRvIHRlc3Qg
YWxsIGVkaXRpbmcgY29kZSBwYXRocworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9Mzg2MDMKKworICAgICAgICBFeHBvc2UgdGhlIEVkaXRpbmdCZWhhdmlv
ciBzZXR0aW5nIGluIHRoZSBNYWMgQVBJLgorCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5t
bToKKyAgICAgICAgKGNvcmUpOgorICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5o
OiBBZGRlZCBhIGNvbnZlcnNpb24gbWV0aG9kIGZyb20gdGhlIEFQSSBlbnVtIHRvIHRoZSBXZWJD
b3JlIGVudW0uCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDog
QWRkZWQgYSBwcmVmZXJlbmNlIGtleSBmb3IgdGhlIG5ldyBzZXR0aW5nLgorICAgICAgICAqIFdl
YlZpZXcvV2ViUHJlZmVyZW5jZXMubW06CisgICAgICAgICgrW1dlYlByZWZlcmVuY2VzIGluaXRp
YWxpemVdKTogSW5pdGlhbGl6ZSB0aGUgRWRpdGluZ0JlaGF2aW9yIHRvIE1hYyBzdHlsZS4KKyAg
ICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgZWRpdGluZ0JlaGF2aW9yXSk6IEFkZGVkLgorICAgICAg
ICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRFZGl0aW5nQmVoYXZpb3I6XSk6IEFkZGVkLgorICAgICAg
ICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6IEFkZGVkIHRoZSBuZXcgQVBJIHBv
aW50cyB0byB0aGUgcHJpdmF0ZSBBUEkuCisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgor
ICAgICAgICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb246XSk6IFNl
dCB0aGUgZWRpdGluZyBiZWhhdmlvciB2aWEgdGhlIFdlYlByZWZlcmVuY2VzIHNldHRpbmcuCisK
IDIwMTAtMDUtMDYgIFN0ZXZlIEJsb2NrICA8c3RldmVibG9ja0Bnb29nbGUuY29tPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYkZyYW1lLm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IGI0
MTY5YjYuLjhjODdhMzMgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5t
bQorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTE5Niw2ICsxOTYsMTgg
QEAgRWRpdGFibGVMaW5rQmVoYXZpb3IgY29yZShXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciBl
ZGl0YWJsZUxpbmtCZWhhdmlvcikKICAgICByZXR1cm4gRWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2
aW9yOwogfQogCitXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3IgY29yZShXZWJLaXRFZGl0aW5nQmVo
YXZpb3IgYmVoYXZpb3IpCit7CisgICAgc3dpdGNoIChiZWhhdmlvcikgeworICAgICAgICBjYXNl
IFdlYktpdEVkaXRpbmdNYWNCZWhhdmlvcjoKKyAgICAgICAgICAgIHJldHVybiBXZWJDb3JlOjpF
ZGl0aW5nTWFjQmVoYXZpb3I7CisgICAgICAgIGNhc2UgV2ViS2l0RWRpdGluZ1dpbmRvd3NCZWhh
dmlvcjoKKyAgICAgICAgICAgIHJldHVybiBXZWJDb3JlOjpFZGl0aW5nV2luZG93c0JlaGF2aW9y
OworICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6
RWRpdGluZ01hY0JlaGF2aW9yOworfQorCiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJl
aGF2aW9yIGNvcmUoV2ViVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciBiZWhh
dmlvcikKIHsKICAgICBzd2l0Y2ggKGJlaGF2aW9yKSB7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1l
SW50ZXJuYWwuaAppbmRleCA0YzFlZTQwLi45YjIyNDhhIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJG
cmFtZUludGVybmFsLmgKQEAgLTcxLDYgKzcxLDcgQEAgV2ViVmlldyAqa2l0KFdlYkNvcmU6OlBh
Z2UqKTsKIAogV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgY29yZShXZWJLaXRFZGl0YWJs
ZUxpbmtCZWhhdmlvcik7CiBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJl
aGF2aW9yIGNvcmUoV2ViVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcik7CitX
ZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3IgY29yZShXZWJLaXRFZGl0aW5nQmVoYXZpb3IpOwogCiBX
ZWJWaWV3ICpnZXRXZWJWaWV3KFdlYkZyYW1lICp3ZWJGcmFtZSk7CiAKZGlmZiAtLWdpdCBhL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCBmNGFlMzMzLi40YzIyZjU5
IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmgKKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBA
IC0xMDQsNiArMTA0LDcgQEAKICNkZWZpbmUgV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3JQcmVm
ZXJlbmNlS2V5IEAiV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IiCiAjZGVmaW5lIFdlYktpdENh
Y2hlTW9kZWxQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q2FjaGVNb2RlbFByZWZlcmVuY2VLZXkiCiAj
ZGVmaW5lIFdlYktpdFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JQcmVmZXJl
bmNlS2V5IEAiV2ViS2l0VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvclByZWZl
cmVuY2VLZXkiCisjZGVmaW5lIFdlYktpdEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXkgQCJX
ZWJLaXRFZGl0aW5nQmVoYXZpb3IiCiAKIC8vIENvcmVHcmFwaGljcyBkZWZlcnJlZCB1cGRhdGVz
IGFyZSBkaXNhYmxlZCBpZiBXZWJLaXRFbmFibGVDb2FsZXNjZWRVcGRhdGVzUHJlZmVyZW5jZUtl
eSBpcyBzZXQKIC8vIHRvIE5PLCBvciBoYXMgbm8gdmFsdWUuICBGb3IgY29tcGF0aWJpbGl0eSB3
aXRoIE1hYyBPUyBYIDEwLjQuNiwgZGVmZXJyZWQgdXBkYXRlcyBhcmUgT0ZGIGJ5CmRpZmYgLS1n
aXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggOWRlODQ5NS4uOTA2YWY0MSAxMDA2NDQKLS0t
IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtMzM0LDYgKzMzNCw3IEBAIHN0YXRpYyBXZWJD
YWNoZU1vZGVsIGNhY2hlTW9kZWxGb3JNYWluQnVuZGxlKHZvaWQpCiAgICAgICAgIEAiMCIsICAg
ICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0UERGU2NhbGVGYWN0b3JQcmVmZXJlbmNlS2V5
LAogICAgICAgICBAIjAiLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFVzZVNpdGVT
cGVjaWZpY1Nwb29maW5nUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldp
dGhJbnQ6V2ViS2l0RWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yXSwgV2ViS2l0RWRpdGFibGVM
aW5rQmVoYXZpb3JQcmVmZXJlbmNlS2V5LAorICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aElu
dDpXZWJLaXRFZGl0aW5nTWFjQmVoYXZpb3JdLCBXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJl
bmNlS2V5LAogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlM
RElOR19PTl9MRU9QQVJEKQogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpXZWJUZXh0
RGlyZWN0aW9uU3VibWVudUF1dG9tYXRpY2FsbHlJbmNsdWRlZF0sCiAjZWxzZQpAQCAtMTIzNyw2
ICsxMjM4LDE2IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAg
ICBbc2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdEZyYW1lRmxhdHRlbmluZ0Vu
YWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0KIAorLSAoV2ViS2l0RWRpdGluZ0JlaGF2aW9yKWVkaXRp
bmdCZWhhdmlvcgoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJLaXRFZGl0aW5nQmVoYXZp
b3I+IChbc2VsZiBfaW50ZWdlclZhbHVlRm9yS2V5OldlYktpdEVkaXRpbmdCZWhhdmlvclByZWZl
cmVuY2VLZXldKTsKK30KKworLSAodm9pZClzZXRFZGl0aW5nQmVoYXZpb3I6KFdlYktpdEVkaXRp
bmdCZWhhdmlvciliZWhhdmlvcgoreworICAgIFtzZWxmIF9zZXRJbnRlZ2VyVmFsdWU6YmVoYXZp
b3IgZm9yS2V5OldlYktpdEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXldOworfQorCiAtICh2
b2lkKWRpZFJlbW92ZUZyb21XZWJWaWV3CiB7CiAgICAgQVNTRVJUKF9wcml2YXRlLT5udW1XZWJW
aWV3cyk7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2
YXRlLmggYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXgg
ZWU3ODVlOS4uODMyYzA4OCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzUHJpdmF0ZS5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1By
aXZhdGUuaApAQCAtNDMsNiArNDMsMTEgQEAgdHlwZWRlZiBlbnVtIHsKICAgICBXZWJUZXh0RGly
ZWN0aW9uU3VibWVudUFsd2F5c0luY2x1ZGVkCiB9IFdlYlRleHREaXJlY3Rpb25TdWJtZW51SW5j
bHVzaW9uQmVoYXZpb3I7CiAKK3R5cGVkZWYgZW51bSB7CisgICAgV2ViS2l0RWRpdGluZ01hY0Jl
aGF2aW9yLAorICAgIFdlYktpdEVkaXRpbmdXaW5kb3dzQmVoYXZpb3IsCit9IFdlYktpdEVkaXRp
bmdCZWhhdmlvcjsKKwogZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc0NoYW5nZWROb3Rp
ZmljYXRpb247CiBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzUmVtb3ZlZE5vdGlmaWNh
dGlvbjsKIApAQCAtMTI5LDYgKzEzNCw5IEBAIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5j
ZXNSZW1vdmVkTm90aWZpY2F0aW9uOwogLSAoV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IpZWRp
dGFibGVMaW5rQmVoYXZpb3I7CiAtICh2b2lkKXNldEVkaXRhYmxlTGlua0JlaGF2aW9yOihXZWJL
aXRFZGl0YWJsZUxpbmtCZWhhdmlvciliZWhhdmlvcjsKIAorLSAoV2ViS2l0RWRpdGluZ0JlaGF2
aW9yKWVkaXRpbmdCZWhhdmlvcjsKKy0gKHZvaWQpc2V0RWRpdGluZ0JlaGF2aW9yOihXZWJLaXRF
ZGl0aW5nQmVoYXZpb3IpYmVoYXZpb3I7CisKIC0gKFdlYlRleHREaXJlY3Rpb25TdWJtZW51SW5j
bHVzaW9uQmVoYXZpb3IpdGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjsKIC0g
KHZvaWQpc2V0VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjooV2ViVGV4dERp
cmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciliZWhhdmlvcjsKIApkaWZmIC0tZ2l0IGEv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0gYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmll
dy5tbQppbmRleCAxOWViNDE4Li4yYTc3OWY4IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViVmlldy5tbQorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbQpAQCAtMTMy
Myw2ICsxMzIzLDcgQEAgc3RhdGljIGJvb2wgZmFzdERvY3VtZW50VGVhcmRvd25FbmFibGVkKCkK
ICAgICBzZXR0aW5ncy0+c2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKFtwcmVmZXJlbmNlcyB0ZXh0
QXJlYXNBcmVSZXNpemFibGVdKTsKICAgICBzZXR0aW5ncy0+c2V0U2hyaW5rc1N0YW5kYWxvbmVJ
bWFnZXNUb0ZpdChbcHJlZmVyZW5jZXMgc2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdF0pOwog
ICAgIHNldHRpbmdzLT5zZXRFZGl0YWJsZUxpbmtCZWhhdmlvcihjb3JlKFtwcmVmZXJlbmNlcyBl
ZGl0YWJsZUxpbmtCZWhhdmlvcl0pKTsKKyAgICBzZXR0aW5ncy0+c2V0RWRpdGluZ0JlaGF2aW9y
KGNvcmUoW3ByZWZlcmVuY2VzIGVkaXRpbmdCZWhhdmlvcl0pKTsKICAgICBzZXR0aW5ncy0+c2V0
VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcihjb3JlKFtwcmVmZXJlbmNlcyB0
ZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yXSkpOwogICAgIHNldHRpbmdzLT5z
ZXRET01QYXN0ZUFsbG93ZWQoW3ByZWZlcmVuY2VzIGlzRE9NUGFzdGVBbGxvd2VkXSk7CiAgICAg
c2V0dGluZ3MtPnNldFVzZXNQYWdlQ2FjaGUoW3NlbGYgdXNlc1BhZ2VDYWNoZV0pOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9XZWJLaXQvd2luL0NoYW5nZUxvZwppbmRleCBl
NzcxM2NlLi4yZjFkZmI1IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL0NoYW5nZUxvZworKysgYi9X
ZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDEwLTA1LTA2ICBNYXJ0aW4g
Um9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBvc2UgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0
dGluZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRpdGluZyBjb2RlIHBhdGhzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODYwMworCisgICAgICAgIEV4cG9z
ZSB0aGUgRWRpdGluZ0JlaGF2aW9yIHNldHRpbmcgaW4gdGhlIFdpbmRvd3MgQVBJLgorCisgICAg
ICAgICogSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXMuaWRsOiBBZGQgdGhlIEFQSSBwb2ludCBm
b3Igc2V0dGluZyB0aGUgZWRpdGluZyBiZWhhdmlvci4KKyAgICAgICAgKiBXZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaDogQWRkIGEga2V5IGZvciB0aGUgZWRpdGluZyBiZWhhdmlvciBzZXR0aW5n
LgorICAgICAgICAqIFdlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2Vz
OjplZGl0aW5nQmVoYXZpb3IpOiBBZGRlZC4KKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpzZXRF
ZGl0aW5nQmVoYXZpb3IpOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlcy5oOiBBZGQg
bWV0aG9kIGRlY2xhcmF0aW9ucy4KKyAgICAgICAgKiBXZWJWaWV3LmNwcDoKKyAgICAgICAgKFdl
YlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZCk6IFVwZGF0ZSB0aGUgV2ViQ29yZSBzZXR0
aW5nIGJhc2VkIG9uIHRoZSBXZWJQcmVmZXJlbmNlcyBzZXR0aW5nLgorCiAyMDEwLTA1LTA1ICBT
dHVhcnQgTW9yZ2FuICA8c3R1YXJ0bW9yZ2FuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0ludGVyZmFjZXMv
SVdlYlByZWZlcmVuY2VzLmlkbCBiL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5j
ZXMuaWRsCmluZGV4IDFjNDMxMzUuLmZmMzBhMDMgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vSW50
ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXMuaWRsCisrKyBiL1dlYktpdC93aW4vSW50ZXJmYWNlcy9J
V2ViUHJlZmVyZW5jZXMuaWRsCkBAIC00Nyw2ICs0NywxMiBAQCB0eXBlZGVmIGVudW0gV2ViS2l0
RWRpdGFibGVMaW5rQmVoYXZpb3IgewogICAgIFdlYktpdEVkaXRhYmxlTGlua05ldmVyTGl2ZQog
fSBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvcjsKIAordHlwZWRlZiBlbnVtIFdlYktpdEVkaXRp
bmdCZWhhdmlvciB7CisgICAgV2ViS2l0RWRpdGluZ01hY0JlaGF2aW9yID0gMCwKKyAgICBXZWJL
aXRFZGl0aW5nV2luZG93c0JlaGF2aW9yLAorfSBXZWJLaXRFZGl0aW5nQmVoYXZpb3I7CisKKwog
dHlwZWRlZiBlbnVtIFdlYktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kgewogICAgIFdlYktp
dENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3lBbHdheXMgPSAwLAogICAgIFdlYktpdENvb2tpZVN0
b3JhZ2VBY2NlcHRQb2xpY3lOZXZlciwKQEAgLTE2Miw2ICsxNjgsOSBAQCBpbnRlcmZhY2UgSVdl
YlByZWZlcmVuY2VzIDogSVVua25vd24KICAgICBIUkVTVUxUIGVkaXRhYmxlTGlua0JlaGF2aW9y
KFtvdXQsIHJldHZhbF0gV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IqIGVkaXRhYmxlTGlua0Jl
aGF2aW9yKTsKICAgICBIUkVTVUxUIHNldEVkaXRhYmxlTGlua0JlaGF2aW9yKFtpbl0gV2ViS2l0
RWRpdGFibGVMaW5rQmVoYXZpb3IgYmVoYXZpb3IpOwogCisgICAgSFJFU1VMVCBlZGl0aW5nQmVo
YXZpb3IoW291dCwgcmV0dmFsXSBXZWJLaXRFZGl0aW5nQmVoYXZpb3IqIGVkaXRpbmdCZWhhdmlv
cik7CisgICAgSFJFU1VMVCBzZXRFZGl0aW5nQmVoYXZpb3IoW2luXSBXZWJLaXRFZGl0aW5nQmVo
YXZpb3IgYmVoYXZpb3IpOworCiAgICAgSFJFU1VMVCBjb29raWVTdG9yYWdlQWNjZXB0UG9saWN5
KFtvdXQsIHJldHZhbF0gV2ViS2l0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeSogYWNjZXB0UG9s
aWN5KTsKICAgICBIUkVTVUxUIHNldENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3koW2luXSBXZWJL
aXRDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5IGFjY2VwdFBvbGljeSk7CiAKZGlmZiAtLWdpdCBh
L1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9XZWJLaXQvd2luL1dlYlBy
ZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IGM0OWE5NmQuLmRhNjM3NTQgMTAwNjQ0Ci0tLSBh
L1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvV2ViS2l0L3dpbi9X
ZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtNzQsNiArNzQsNyBAQAogI2RlZmluZSBXZWJL
aXRQREZEaXNwbGF5TW9kZVByZWZlcmVuY2VLZXkgIldlYktpdFBERkRpc3BsYXlNb2RlIgogI2Rl
ZmluZSBXZWJLaXRQREZTY2FsZUZhY3RvclByZWZlcmVuY2VLZXkgIldlYktpdFBERlNjYWxlRmFj
dG9yIgogI2RlZmluZSBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvclByZWZlcmVuY2VLZXkgIldl
YktpdEVkaXRhYmxlTGlua0JlaGF2aW9yIgorI2RlZmluZSBXZWJLaXRFZGl0aW5nQmVoYXZpb3JQ
cmVmZXJlbmNlS2V5ICJXZWJLaXRFZGl0aW5nQmVoYXZpb3IiCiAKIC8vIFdpbmRvdyBkaXNwbGF5
IGlzIHRocm90dGxlZCB0byA2MCBmcmFtZXMgcGVyIHNlY29uZCBpZiBXZWJLaXRUaHJvdHRsZVdp
bmRvd0Rpc3BsYXlQcmVmZXJlbmNlS2V5CiAvLyBpcyBzZXQgdG8gWUVTLiAgVGhlIHdpbmRvdyBk
aXNwbGF5IHRocm90dGxlIGlzIE9GRiBieSBkZWZhdWx0IGZvciBjb21wYXRpYmlsaXR5IHdpdGgg
TWFjIE9TIFgKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwIGIvV2Vi
S2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggMzNlOTA0ZC4uM2U3ZWE0MiAxMDA2NDQK
LS0tIGEvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvV2ViS2l0L3dpbi9XZWJQ
cmVmZXJlbmNlcy5jcHAKQEAgLTExMzAsNiArMTEzMCwyMSBAQCBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIFdlYlByZWZlcmVuY2VzOjpzZXRFZGl0YWJsZUxpbmtCZWhhdmlvcigKICAgICByZXR1
cm4gU19PSzsKIH0KIAorSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6
ZWRpdGluZ0JlaGF2aW9yKAorICAgIC8qIFtvdXQsIHJldHZhbF0gKi8gV2ViS2l0RWRpdGluZ0Jl
aGF2aW9yKiBlZGl0aW5nQmVoYXZpb3IpCit7CisgICAgKmVkaXRpbmdCZWhhdmlvciA9IChXZWJL
aXRFZGl0aW5nQmVoYXZpb3IpIGludGVnZXJWYWx1ZUZvcktleShDRlNUUihXZWJLaXRFZGl0aW5n
QmVoYXZpb3JQcmVmZXJlbmNlS2V5KSk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgV2ViUHJlZmVyZW5jZXM6OnNldEVkaXRpbmdCZWhhdmlvcigKKyAg
ICAvKiBbaW5dICovIFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yIGJlaGF2aW9yKQoreworICAg
IHNldEludGVnZXJWYWx1ZShDRlNUUihXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJlbmNlS2V5
KSwgYmVoYXZpb3IpOworICAgIHJldHVybiBTX09LOworfQorCisKIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgV2ViUHJlZmVyZW5jZXM6OmNvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3koIAogICAg
ICAgICAvKiBbcmV0dmFsXVtvdXRdICovIFdlYktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kg
KmFjY2VwdFBvbGljeSApCiB7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2Vz
LmggYi9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggY2ZkZWZhOC4uMWVhNjljNyAx
MDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1dlYktpdC93aW4v
V2ViUHJlZmVyZW5jZXMuaApAQCAtMjM4LDYgKzIzOCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEVkaXRhYmxlTGlua0JlaGF2aW9yKCAKICAg
ICAgICAgLyogW2luXSAqLyBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciBiZWhhdmlvcik7CiAK
KyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZWRpdGluZ0JlaGF2aW9yKAor
ICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIFdlYktpdEVkaXRpbmdCZWhhdmlvciogYmVoYXZp
b3IpOworCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEVkaXRpbmdC
ZWhhdmlvcigKKyAgICAgICAgLyogW2luXSAqLyBXZWJLaXRFZGl0aW5nQmVoYXZpb3IgYmVoYXZp
b3IpOworCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGNvb2tpZVN0b3Jh
Z2VBY2NlcHRQb2xpY3koIAogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIFdlYktpdENvb2tp
ZVN0b3JhZ2VBY2NlcHRQb2xpY3kgKmFjY2VwdFBvbGljeSk7CiAgICAgICAgIApkaWZmIC0tZ2l0
IGEvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXgg
MjQ4ZTNjZC4uMjZhMDQwOSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysg
Yi9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC00NTg2LDYgKzQ1ODYsMTIgQEAgSFJFU1VMVCBX
ZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlvbiogbm90aWZp
Y2F0aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3MtPnNldEVkaXRhYmxlTGlu
a0JlaGF2aW9yKChFZGl0YWJsZUxpbmtCZWhhdmlvciliZWhhdmlvcik7CiAKKyAgICBXZWJLaXRF
ZGl0aW5nQmVoYXZpb3IgYmVoYXZpb3I7CisgICAgaHIgPSBwcmVmZXJlbmNlcy0+ZWRpdGluZ0Jl
aGF2aW9yKCZiZWhhdmlvcik7CisgICAgaWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVybiBo
cjsKKyAgICBzZXR0aW5ncy0+c2V0RWRpdGluZ0JlaGF2aW9yKChFZGl0aW5nQmVoYXZpb3IpYmVo
YXZpb3IpOworCiAgICAgaHIgPSBwcmVmZXJlbmNlcy0+dXNlc1BhZ2VDYWNoZSgmZW5hYmxlZCk7
CiAgICAgaWYgKEZBSUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCA3ZWMwMjZh
Li41ODMxYjE2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0
VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDUtMDYgIE1hcnRpbiBSb2Jp
bnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSB0aGUgZWRpdGluZyBiZWhhdmlvciBzZXR0aW5n
IGluIERSVCB0byB0ZXN0IGFsbCBlZGl0aW5nIGNvZGUgcGF0aHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NjAzCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChzZXRFZGl0aW5nQmVo
YXZpb3JDYWxsYmFjayk6IEFkZGVkLgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0
YXRpY0Z1bmN0aW9ucyk6IEV4cG9zZSB0aGUgc2V0RWRpdGluZ0JlaGF2aW9yQ2FsbGJhY2sgZnVu
Y3Rpb24uCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5j
cHA6IEFkZCBjYWxsYmFjayBtZXRob2QgZm9yIHNldHRpbmcgZWRpdGluZyBiZWhhdmlvci4KKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOiBE
ZWNsYXJhdGlvbiBmb3IgdGhpcyBtZXRob2QuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3Rr
L0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcDogCisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTogSW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhh
dmlvciBjb250cm9sLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29u
dHJvbGxlck1hYy5tbToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5n
QmVoYXZpb3IpOiBEaXR0bworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RD
b250cm9sbGVyUXQuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRp
bmdCZWhhdmlvcik6IEFkZGVkIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlv
ciBjb250cm9sLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9s
bGVyUXQuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZp
b3IpOiBBZGQgc2xvdCBmb3IgY29udHJvbGxpbmcgZWRpdG9yIGJlaGF2aW9yLgorICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAg
IChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTogSW1wbGVtZW50YXRp
b24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZGVkIHN0dWIgaW1wbGVtZW50YXRpb24gb2Yg
ZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgorCiAyMDEwLTA1LTA2ICBTaW1vbiBIYXVzbWFubiAg
PHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRo
IFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCBiNGI1YmYyLi41ZDBmMmU0IDEwMDY0NAot
LS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAK
KysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3Bw
CkBAIC0xNDQxLDYgKzE0NDEsMjEgQEAgc3RhdGljIEpTVmFsdWVSZWYgYXV0aGVudGljYXRlU2Vz
c2lvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiwKICAgICByZXR1
cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVm
IHNldEVkaXRpbmdCZWhhdmlvckNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVj
dFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291
bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikK
K3sKKyAgICAvLyBUaGUgZWRpdGluZyBiZWhhdmlvciBzdHJpbmcuCisgICAgaWYgKGFyZ3VtZW50
Q291bnQgPCAxKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7
CisKKyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gZWRpdGluZ0JlaGF2aW9yKEFkb3B0LCBK
U1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKSk7Cisg
ICAgQVNTRVJUKCEqZXhjZXB0aW9uKTsKKworICAgIExheW91dFRlc3RDb250cm9sbGVyKiBjb250
cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVjdEdldFBy
aXZhdGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXItPnNldEVkaXRpbmdCZWhhdmlvcihl
ZGl0aW5nQmVoYXZpb3IuZ2V0KCkpOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVk
KGNvbnRleHQpOworfQorCiAvLyBTdGF0aWMgVmFsdWVzCiAKIHN0YXRpYyBKU1ZhbHVlUmVmIGdl
dEdsb2JhbEZsYWdDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhp
c09iamVjdCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
CkBAIC0xNTkwLDYgKzE2MDUsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAic2V0Q3VzdG9tUG9saWN5RGVsZWdh
dGUiLCBzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsg
InNldERhdGFiYXNlUXVvdGEiLCBzZXREYXRhYmFzZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCiAg
ICAgICAgIHsgInNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUiLCBzZXRE
b21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAg
ICAgICAgeyAic2V0RWRpdGluZ0JlaGF2aW9yIiwgc2V0RWRpdGluZ0JlaGF2aW9yQ2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAic2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCIsIHNldEZyYW1l
RmxhdHRlbmluZ0VuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRHZW9sb2Nh
dGlvblBlcm1pc3Npb24iLCBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb25DYWxsYmFjaywga0pTUHJv
cGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9
LAogICAgICAgICB7ICJzZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzIiwgc2V0SGFu
ZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCAwOGY5
NjkyLi43MjY2ZjBhIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91
dFRlc3RDb250cm9sbGVyLmgKQEAgLTk4LDYgKzk4LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0
RnJhbWVGbGF0dGVuaW5nRW5hYmxlZChib29sIGVuYWJsZSk7CiAgICAgdm9pZCBzZXRTcGF0aWFs
TmF2aWdhdGlvbkVuYWJsZWQoYm9vbCBlbmFibGUpOwogICAgIHZvaWQgc2V0U2Nyb2xsYmFyUG9s
aWN5KEpTU3RyaW5nUmVmIG9yaWVudGF0aW9uLCBKU1N0cmluZ1JlZiBwb2xpY3kpOworICAgIHZv
aWQgc2V0RWRpdGluZ0JlaGF2aW9yKEpTU3RyaW5nUmVmIGVkaXRpbmdCZWhhdmlvcik7CiAKICAg
ICB2b2lkIHdhaXRGb3JQb2xpY3lEZWxlZ2F0ZSgpOwogICAgIHNpemVfdCB3ZWJIaXN0b3J5SXRl
bUNvdW50KCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggMjFiMTY4Yy4uYmRjZWQ0NiAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTQ4LDYgKzE0OCw3IEBAIExheW91dFRlc3RD
b250cm9sbGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJp
bmRNZXRob2QoInNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJldmFs
dWF0ZUluV2ViSW5zcGVjdG9yIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpldmFsdWF0ZUluV2Vi
SW5zcGVjdG9yKTsKICAgICBiaW5kTWV0aG9kKCJmb3JjZVJlZFNlbGVjdGlvbkNvbG9ycyIsICZM
YXlvdXRUZXN0Q29udHJvbGxlcjo6Zm9yY2VSZWRTZWxlY3Rpb25Db2xvcnMpOworICAgIGJpbmRN
ZXRob2QoInNldEVkaXRpbmdCZWhhdmlvciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRp
dGluZ0JlaGF2aW9yKTsKIAogICAgIC8vIFRoZSBmYWxsYmFjayBtZXRob2QgaXMgY2FsbGVkIHdo
ZW4gYW4gdW5rbm93biBtZXRob2QgaXMgaW52b2tlZC4KICAgICBiaW5kRmFsbGJhY2tNZXRob2Qo
JkxheW91dFRlc3RDb250cm9sbGVyOjpmYWxsYmFja01ldGhvZCk7CkBAIC0xMTg3LDMgKzExODgs
MTQgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVXNlclNjcmlwdChjb25zdCBDcHBB
cmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmEKICAgICAgICAgcmV0dXJuOwogICAgIG1fc2hl
bGwtPndlYlZpZXcoKS0+YWRkVXNlclNjcmlwdChXZWJTdHJpbmc6OmZyb21VVEY4KGFyZ3VtZW50
c1swXS50b1N0cmluZygpKSwgYXJndW1lbnRzWzFdLnRvQm9vbGVhbigpKTsKIH0KKwordm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHRzKQoreworICAgIFdlYlNldHRpbmdz
KiBzZXR0aW5ncyA9IG1fc2hlbGwtPndlYlZpZXcoKS0+c2V0dGluZ3MoKTsKKyAgICBzdHJpbmcg
a2V5ID0gYXJndW1lbnRzWzBdLnRvU3RyaW5nKCk7CisgICAgaWYgKGtleSA9PSAibWFjIikKKyAg
ICAgICAgc2V0dGluZ3MtPnNldEVkaXRpbmdCZWhhdmlvcihXZWJTZXR0aW5nczo6RWRpdGluZ0Jl
aGF2aW9yTWFjKTsKKworICAgIGlmIChrZXkgPT0gIndpbmRvd3MiKQorICAgICAgICBzZXR0aW5n
cy0+c2V0RWRpdGluZ0JlaGF2aW9yKFdlYlNldHRpbmdzOjpFZGl0aW5nQmVoYXZpb3JXaW5kb3dz
KTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGNhOGIwMTQuLmY5ZWQ4Y2MgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVz
dENvbnRyb2xsZXIuaApAQCAtMTk1LDYgKzE5NSw4IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZHVt
cFNlbGVjdGlvblJlY3QoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCisg
ICAgdm9pZCBzZXRFZGl0aW5nQmVoYXZpb3IoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCopOworCiAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmUgb25seSBzdHVicy4gIFRPRE8ocGFt
Zyk6IEltcGxlbWVudCBhbnkgb2YgdGhlc2UgdGhhdAogICAgIC8vIGFyZSBuZWVkZWQgdG8gcGFz
cyB0aGUgbGF5b3V0IHRlc3RzLgogICAgIHZvaWQgZHVtcEFzV2ViQXJjaGl2ZShjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIGIvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcAppbmRleCBjYmJh
N2NlLi4wYTIwYmNjIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsv
TGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1JldGFpblB0ci5oPgogI2luY2x1ZGUgPEphdmFTY3Jp
cHRDb3JlL0pTU3RyaW5nUmVmLmg+CiAKKyNpbmNsdWRlIDxjc3RyaW5nPgogI2luY2x1ZGUgPGlv
c3RyZWFtPgogI2luY2x1ZGUgPHNzdHJlYW0+CiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTY4OCwz
ICs2ODksMTYgQEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVy
OjptYXJrZXJUZXh0Rm9yTGlzdEl0ZW0oSlNDb250ZXh0UmUKIHZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmF1dGhlbnRpY2F0ZVNlc3Npb24oSlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmLCBKU1N0
cmluZ1JlZikKIHsKIH0KKwordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0Jl
aGF2aW9yKEpTU3RyaW5nUmVmIGVkaXRpbmdCZWhhdmlvcikKK3sKKyAgICBXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3ID0gd2Via2l0X3dlYl9mcmFtZV9nZXRfd2ViX3ZpZXcobWFpbkZyYW1lKTsKKyAg
ICBXZWJLaXRXZWJTZXR0aW5ncyogc2V0dGluZ3MgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NldHRp
bmdzKHdlYlZpZXcpOworCisgICAgY2hhciogZWRpdGluZ0JlaGF2aW9yU3RyaW5nID0gSlNTdHJp
bmdDb3B5VVRGOENTdHJpbmcoZWRpdGluZ0JlaGF2aW9yKTsKKyAgICBpZiAoIXN0cmNtcChlZGl0
aW5nQmVoYXZpb3JTdHJpbmcsICJ3aW5kb3dzIikpCisgICAgICAgIGdfb2JqZWN0X3NldChHX09C
SkVDVChzZXR0aW5ncyksICJlZGl0aW5nLWJlaGF2aW9yIiwgV0VCS0lUX0VESVRJTkdfQkVIQVZJ
T1JfV0lORE9XUywgTlVMTCk7CisgICAgaWYgKCFzdHJjbXAoZWRpdGluZ0JlaGF2aW9yU3RyaW5n
LCAibWFjIikpCisgICAgICAgIGdfb2JqZWN0X3NldChHX09CSkVDVChzZXR0aW5ncyksICJlZGl0
aW5nLWJlaGF2aW9yIiwgV0VCS0lUX0VESVRJTkdfQkVIQVZJT1JfTUFDLCBOVUxMKTsKKyAgICBn
X2ZyZWUoZWRpdGluZ0JlaGF2aW9yU3RyaW5nKTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xz
L0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbSBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbQppbmRleCAz
YjAzYWVjLi43OTc0OWNiIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9t
YWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCkBAIC04MzUsMyArODM1LDEyIEBA
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmF1dGhlbnRpY2F0ZVNlc3Npb24oSlNTdHJpbmdS
ZWYgdXJsLCBKU1N0cmluZ1JlZiB1c2VyCiAgICAgW1N5bmNocm9ub3VzTG9hZGVyIG1ha2VSZXF1
ZXN0OnJlcXVlc3Qgd2l0aFVzZXJuYW1lOihOU1N0cmluZyAqKXVzZXJuYW1lQ0YuZ2V0KCkgcGFz
c3dvcmQ6KE5TU3RyaW5nICopcGFzc3dvcmRDRi5nZXQoKV07CiAjZW5kaWYKIH0KKwordm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKEpTU3RyaW5nUmVmIGVkaXRp
bmdCZWhhdmlvcikKK3sKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IGVkaXRpbmdCZWhhdmlv
ckNGKEFkb3B0Q0YsIEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIGVk
aXRpbmdCZWhhdmlvcikpOworICAgIGlmIChbKE5TU3RyaW5nICopZWRpdGluZ0JlaGF2aW9yQ0Yu
Z2V0KCkgaXNFcXVhbFRvU3RyaW5nOkAibWFjIl0pCisgICAgICAgIFtbV2ViUHJlZmVyZW5jZXMg
c3RhbmRhcmRQcmVmZXJlbmNlc10gc2V0RWRpdGluZ0JlaGF2aW9yOldlYktpdEVkaXRpbmdNYWNC
ZWhhdmlvcl07CisgICAgaWYgKFsoTlNTdHJpbmcgKillZGl0aW5nQmVoYXZpb3JDRi5nZXQoKSBp
c0VxdWFsVG9TdHJpbmc6QCJ3aW5kb3dzIl0pCisgICAgICAgIFtbV2ViUHJlZmVyZW5jZXMgc3Rh
bmRhcmRQcmVmZXJlbmNlc10gc2V0RWRpdGluZ0JlaGF2aW9yOldlYktpdEVkaXRpbmdNYWNCZWhh
dmlvcl07Cit9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlv
dXRUZXN0Q29udHJvbGxlclF0LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xh
eW91dFRlc3RDb250cm9sbGVyUXQuY3BwCmluZGV4IDk3NzA5NmQuLmY0NTBmMDQgMTAwNjQ0Ci0t
LSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQu
Y3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9s
bGVyUXQuY3BwCkBAIC02MjQsNiArNjI0LDExIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OmF1dGhlbnRpY2F0ZVNlc3Npb24oY29uc3QgUVN0cmluZyYsIGNvbnN0IFFTdHJpbmcmLCBjCiAg
ICAgLy8gRklYTUU6IElmIHRoZXJlIGlzIGEgY29uY2VwdCBwZXItc2Vzc2lvbiAocGVyLXByb2Nl
c3MpIGNyZWRlbnRpYWwgc3RvcmFnZSwgdGhlIGNyZWRlbnRpYWxzIHNob3VsZCBiZSBhZGRlZCB0
byBpdCBmb3IgbGF0ZXIgdXNlLgogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRF
ZGl0aW5nQmVoYXZpb3IoY29uc3QgUVN0cmluZyYgZWRpdGluZ0JlaGF2aW9yKQoreworICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQuCit9CisKIAogY29uc3QgdW5zaWduZWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6Om1heFZpZXdXaWR0aCA9IDgwMDsKIGNvbnN0IHVuc2lnbmVkIExheW91dFRlc3RDb250
cm9sbGVyOjptYXhWaWV3SGVpZ2h0ID0gNjAwOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCmluZGV4IGIxM2YyYWQuLjhl
NzExYjkgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlv
dXRUZXN0Q29udHJvbGxlclF0LmgKQEAgLTE4OSw2ICsxODksOCBAQCBwdWJsaWMgc2xvdHM6CiAg
ICAgLy8gU2ltdWxhdGUgYSByZXF1ZXN0IGFuIGVtYmVkZGluZyBhcHBsaWNhdGlvbiBjb3VsZCBt
YWtlLCBwb3B1bGF0aW5nIHBlci1zZXNzaW9uIGNyZWRlbnRpYWwgc3RvcmFnZS4KICAgICB2b2lk
IGF1dGhlbnRpY2F0ZVNlc3Npb24oY29uc3QgUVN0cmluZyYgdXJsLCBjb25zdCBRU3RyaW5nJiB1
c2VybmFtZSwgY29uc3QgUVN0cmluZyYgcGFzc3dvcmQpOwogCisgICAgdm9pZCBzZXRFZGl0aW5n
QmVoYXZpb3IoY29uc3QgUVN0cmluZyYgZWRpdGluZ0JlaGF2aW9yKTsKKwogcHJpdmF0ZSBzbG90
czoKICAgICB2b2lkIHByb2Nlc3NXb3JrKCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAgYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCmluZGV4IGQ4
ODljZmMuLjg2MGVmZGYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dp
bi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcApAQCAtMTI2MiwzICsxMjYyLDIw
IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFdlYlZpZXdFZGl0YWJsZShib29sKQog
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXV0aGVudGljYXRlU2Vzc2lvbihKU1N0cmluZ1Jl
ZiwgSlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmKQogewogfQorCit2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IoSlNTdHJpbmdSZWYgZWRpdGluZ0JlaGF2aW9yKQor
eworICAgIENPTVB0cjxJV2ViVmlldz4gd2ViVmlldzsKKyAgICBpZiAoRkFJTEVEKGZyYW1lLT53
ZWJWaWV3KCZ3ZWJWaWV3KSkpCisgICAgICAgIHJldHVybjsKKworICAgIENPTVB0cjxJV2ViUHJl
ZmVyZW5jZXM+IHByZWZlcmVuY2VzOworICAgIGlmIChGQUlMRUQod2ViVmlldy0+cHJlZmVyZW5j
ZXMoJnByZWZlcmVuY2VzKSkpCisgICAgICAgIHJldHVybjsKKworICAgIHdzdHJpbmcgYmVoYXZp
b3JXc3RyaW5nID0ganNTdHJpbmdSZWZUb1dTdHJpbmcoZWRpdGluZ0JlaGF2aW9yKTsKKyAgICBp
ZiAoYmVoYXZpb3JXc3RyaW5nID09IEwibWFjIikKKyAgICAgICAgcHJlZmVyZW5jZXMtPnNldEVk
aXRpbmdCZWhhdmlvcihXZWJLaXRFZGl0aW5nTWFjQmVoYXZpb3IpOworICAgIGlmIChiZWhhdmlv
cldzdHJpbmcgPT0gTCJ3aW5kb3dzIikKKyAgICAgICAgcHJlZmVyZW5jZXMtPnNldEVkaXRpbmdC
ZWhhdmlvcihXZWJLaXRFZGl0aW5nV2luZG93c0JlaGF2aW9yKTsKK30KZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwIGIv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAK
aW5kZXggNDYxNGFjYS4uYjgyYTE3MSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAKQEAgLTQ0MSwzICs0NDEs
OCBAQCBKU1ZhbHVlUmVmIExheW91dFRlc3RDb250cm9sbGVyOjpjb21wdXRlZFN0eWxlSW5jbHVk
aW5nVmlzaXRlZEluZm8oSlNDb250ZXh0UmVmLAogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
YXV0aGVudGljYXRlU2Vzc2lvbihKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVm
KQogewogfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3Io
SlNTdHJpbmdSZWYgZWRpdGluZ0JlaGF2aW9yKQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQK
K30KLS0gCjEuNi4zLjMKCg==
</data>
<flag name="review"
          id="39400"
          type_id="1"
          status="-"
          setter="ojan"
    />
    <flag name="commit-queue"
          id="39401"
          type_id="3"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56026</attachid>
            <date>2010-05-13 14:48:40 -0700</date>
            <delta_ts>2010-05-19 10:11:20 -0700</delta_ts>
            <desc>Updated patch based on suggestions</desc>
            <filename>0001-Expose-the-editing-behavior-setting-in-DRT-to-test-a.patch</filename>
            <type>text/plain</type>
            <size>38213</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">RnJvbSAzNzczZmI2MDVhNjdmNjg2N2I3ZDU4NjkzMTBlOWI2NGVjYjFjNTZlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gUm9iaW5zb24gPG1yb2JpbnNvbkB3ZWJraXQub3Jn
PgpEYXRlOiBXZWQsIDUgTWF5IDIwMTAgMTY6MTg6NTkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBF
eHBvc2UgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRp
dGluZyBjb2RlIHBhdGhzCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzg2MDMKCldlYktpdC9jaHJvbWl1bToKClBhdGNoIGJ5IE1hcnRpbiBSb2JpbnNvbiA8bXJvYmlu
c29uQHdlYmtpdC5vcmc+IG9uIDIwMTAtMDUtMTMKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CgoqIHB1YmxpYy9XZWJTZXR0aW5ncy5oOgooV2ViS2l0OjpXZWJTZXR0aW5nczo6KTogQWRkZWQg
YW4gZW51bSBmb3IgRWRpdGluZ0JlaGF2aW9yIHR5cGVzLgoqIHNyYy9XZWJTZXR0aW5nc0ltcGwu
Y3BwOgooV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZGVk
LgoqIHNyYy9XZWJTZXR0aW5nc0ltcGwuaDoKCldlYktpdC9tYWM6CgpQYXRjaCBieSBNYXJ0aW4g
Um9iaW5zb24gPG1yb2JpbnNvbkB3ZWJraXQub3JnPiBvbiAyMDEwLTA1LTEzClJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgoKKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgooY29yZSk6CiogV2ViVmll
dy9XZWJGcmFtZUludGVybmFsLmg6IEFkZGVkIGEgY29udmVyc2lvbiBtZXRob2QgZnJvbSB0aGUg
QVBJIGVudW0gdG8gdGhlIFdlYkNvcmUgZW51bS4KKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlz
UHJpdmF0ZS5oOiBBZGRlZCBhIHByZWZlcmVuY2Uga2V5IGZvciB0aGUgbmV3IHNldHRpbmcuCiog
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0p
OiBJbml0aWFsaXplIHRoZSBFZGl0aW5nQmVoYXZpb3IgdG8gTWFjIHN0eWxlLgooLVtXZWJQcmVm
ZXJlbmNlcyBlZGl0aW5nQmVoYXZpb3JdKTogQWRkZWQuCigtW1dlYlByZWZlcmVuY2VzIHNldEVk
aXRpbmdCZWhhdmlvcjpdKTogQWRkZWQuCiogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUu
aDogQWRkZWQgdGhlIG5ldyBBUEkgcG9pbnRzIHRvIHRoZSBwcml2YXRlIEFQSS4KKiBXZWJWaWV3
L1dlYlZpZXcubW06CigtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbjpd
KTogU2V0IHRoZSBlZGl0aW5nIGJlaGF2aW9yIHZpYSB0aGUgV2ViUHJlZmVyZW5jZXMgc2V0dGlu
Zy4KCldlYktpdC93aW46CgpQYXRjaCBieSBNYXJ0aW4gUm9iaW5zb24gPG1yb2JpbnNvbkB3ZWJr
aXQub3JnPiBvbiAyMDEwLTA1LTEzClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKRXhwb3Nl
IHRoZSBFZGl0aW5nQmVoYXZpb3Igc2V0dGluZyBpbiB0aGUgV2luZG93cyBBUEkuCgoqIEludGVy
ZmFjZXMvSVdlYlByZWZlcmVuY2VzLmlkbDogQWRkIHRoZSBBUEkgcG9pbnQgZm9yIHNldHRpbmcg
dGhlIGVkaXRpbmcgYmVoYXZpb3IuCiogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZCBh
IGtleSBmb3IgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZy4KKiBXZWJQcmVmZXJlbmNlcy5j
cHA6CihXZWJQcmVmZXJlbmNlczo6ZWRpdGluZ0JlaGF2aW9yKTogQWRkZWQuCihXZWJQcmVmZXJl
bmNlczo6c2V0RWRpdGluZ0JlaGF2aW9yKTogQWRkZWQuCiogV2ViUHJlZmVyZW5jZXMuaDogQWRk
IG1ldGhvZCBkZWNsYXJhdGlvbnMuCiogV2ViVmlldy5jcHA6CihXZWJWaWV3Ojpub3RpZnlQcmVm
ZXJlbmNlc0NoYW5nZWQpOiBVcGRhdGUgdGhlIFdlYkNvcmUgc2V0dGluZyBiYXNlZCBvbiB0aGUg
V2ViUHJlZmVyZW5jZXMgc2V0dGluZy4KCldlYktpdFRvb2xzOgoKUGF0Y2ggYnkgTWFydGluIFJv
Ymluc29uIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4gb24gMjAxMC0wNS0wNgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCiogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3Bw
Ogooc2V0RWRpdGluZ0JlaGF2aW9yQ2FsbGJhY2spOiBBZGRlZC4KKExheW91dFRlc3RDb250cm9s
bGVyOjpzdGF0aWNGdW5jdGlvbnMpOiBFeHBvc2UgdGhlIHNldEVkaXRpbmdCZWhhdmlvckNhbGxi
YWNrIGZ1bmN0aW9uLgoqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6Ciog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOiBBZGQgY2Fs
bGJhY2sgbWV0aG9kIGZvciBzZXR0aW5nIGVkaXRpbmcgYmVoYXZpb3IuCiogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaDogRGVjbGFyYXRpb24gZm9yIHRoaXMg
bWV0aG9kLgoqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHA6
CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTogSW1wbGVtZW50YXRp
b24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgoqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlv
dXRUZXN0Q29udHJvbGxlck1hYy5tbToKKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5n
QmVoYXZpb3IpOiBEaXR0bwoqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuY3BwOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZGVk
IHN0dWIgaW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgoqIER1bXBS
ZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaDoKKExheW91dFRlc3RDb250cm9s
bGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGQgc2xvdCBmb3IgY29udHJvbGxpbmcgZWRpdG9y
IGJlaGF2aW9yLgoqIER1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5j
cHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTogSW1wbGVtZW50
YXRpb24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgoqIER1bXBSZW5kZXJUcmVlL3d4L0xh
eW91dFRlc3RDb250cm9sbGVyV3guY3BwOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRp
bmdCZWhhdmlvcik6IEFkZGVkIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlv
ciBjb250cm9sLgoKTGF5b3V0VGVzdHM6CgpQYXRjaCBieSBNYXJ0aW4gUm9iaW5zb24gPG1yb2Jp
bnNvbkB3ZWJraXQub3JnPiBvbiAyMDEwLTA1LTEzClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgoKKiBlZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGlj
ay5odG1sOiBVc2UgdGhlIG5ldyBEUlQgc3VwcG9ydCBmb3IgY2hhbmdpbmcgZWRpdGluZyBiZWhh
dmlvci4KKiBlZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1j
bGljay1leHBlY3RlZC50eHQ6IFVwZGF0ZSBleHBlY3RlZCByZXN1bHRzIHRvIHJlZmxlY3QgYm90
aCBiZWhhdmlvcnMuCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDEwICsrKysrKysKIC4uLnh0ZW5kLXNlbGVjdGlvbi1hZnRlci1kb3Vi
bGUtY2xpY2stZXhwZWN0ZWQudHh0IHwgICAgMiArCiAuLi4vZXh0ZW5kLXNlbGVjdGlvbi1hZnRl
ci1kb3VibGUtY2xpY2suaHRtbCAgICAgICB8ICAgMjYgKysrKysrKysrKystLS0tLS0KIFdlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMyArKysr
KysrKysKIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCAgICAgICAgICAgICAg
IHwgICAgNiArKysrCiBXZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3Bw
ICAgICAgICB8ICAgIDUgKysrCiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5j
cHAgICAgICAgICAgICB8ICAgIDUgKysrCiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdz
SW1wbC5oICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViS2l0L21hYy9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE5ICsrKysrKysrKysrKysKIFdlYktpdC9tYWMv
V2ViVmlldy9XZWJGcmFtZS5tbSAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKysrKysrKwog
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaCAgICAgICAgICAgICAgfCAgICAx
ICsKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCAgICAgIHwg
ICAgMSArCiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gICAgICAgICAgICAg
ICB8ICAgMTEgKysrKysrKwogV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0
ZS5oICAgICAgICAgfCAgICA4ICsrKysrCiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSAg
ICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE4ICsrKysrKysrKysrKwogV2ViS2l0L3dpbi9J
bnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGwgICAgICAgICAgfCAgICA5ICsrKysrKwogV2Vi
S2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCAgICAgICAgICAgICAgfCAgICAxICsK
IFdlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgICAx
NSArKysrKysrKysrCiBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmggICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDYgKysrKwogV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICA2ICsrKysKIFdlYktpdFRvb2xzL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAyNiArKysrKysrKysrKysrKysrKwogLi4uL0R1bXBS
ZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCAgICAgICAgfCAgIDI5ICsrKysrKysr
KysrKysrKysrKysrCiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oICB8ICAgIDEgKwogLi4uL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCAg
ICAgICAgICAgICAgfCAgIDEzICsrKysrKysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmggfCAgICAyICsKIC4uLi9EdW1wUmVuZGVyVHJlZS9ndGsv
TGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIHwgICAxMiArKysrKysrKwogLi4uL0R1bXBSZW5k
ZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbSAgfCAgIDEwICsrKysrKysKIC4u
Li9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCAgIHwgICAgNSAr
KysKIC4uLi9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmggICAgIHwg
ICAgMiArCiAuLi4vRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNw
cCB8ICAgMTcgKysrKysrKysrKysKIC4uLi9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29u
dHJvbGxlcld4LmNwcCAgIHwgICAgNSArKysKIDMyIGZpbGVzIGNoYW5nZWQsIDI4OSBpbnNlcnRp
b25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1Njg4YmI2Li5iYmEyMTc1IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTAtMDUtMTMgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3
ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEV4cG9zZSB0aGUgZWRpdGluZyBiZWhhdmlvciBzZXR0aW5nIGluIERSVCB0byB0ZXN0IGFs
bCBlZGl0aW5nIGNvZGUgcGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM4NjAzCisKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQt
c2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGljay5odG1sOiBVc2UgdGhlIG5ldyBEUlQgc3VwcG9y
dCBmb3IgY2hhbmdpbmcgZWRpdGluZyBiZWhhdmlvci4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGljay1leHBlY3RlZC50eHQ6IFVw
ZGF0ZSBleHBlY3RlZCByZXN1bHRzIHRvIHJlZmxlY3QgYm90aCBiZWhhdmlvcnMuCisKIDIwMTAt
MDUtMTMgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24t
YWZ0ZXItZG91YmxlLWNsaWNrLWV4cGVjdGVkLnR4dAppbmRleCBlZDJkNmE1Li40MzEwNzU5IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9u
LWFmdGVyLWRvdWJsZS1jbGljay1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGlu
Zy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2stZXhwZWN0ZWQu
dHh0CkBAIC01LDMgKzUsNSBAQCBUaGlzIHRlc3QgZG9lcyBub3QgcnVuIGludGVyYWN0aXZlbHku
IEl0IHVzZXMgdGhlIGV2ZW50IHNlbmRlciB0byBkbyBtb3VzZSBjbGljawogVGhpcyBpcyBhIHBh
cmFncmFwaC4KIAogU1VDQ0VTUworU1VDQ0VTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9l
ZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGljay5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRlci1k
b3VibGUtY2xpY2suaHRtbAppbmRleCA4OTEwODBiLi40NTliZTU1IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1j
bGljay5odG1sCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxl
Y3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLmh0bWwKQEAgLTE4LDEzICsxOCwyNSBAQAogICAgICAg
ICBldmVudFNlbmRlci5sZWFwRm9yd2FyZCgxMDAwKTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBy
dW5UZXN0KCkKKyAgICBmdW5jdGlvbiBsb2dSZXN1bHQocmVzdWx0KQorICAgIHsKKyAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCArPSByZXN1bHQgKyAi
PGJyLz4iOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKICAgICB7CiAgICAgICAg
IGlmICghd2luZG93LmV2ZW50U2VuZGVyIHx8ICF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwogCisgICAgICAgIHJ1blRlc3QoIm1hYyIsICJhIHBhcmFncmFwaCIpOworICAg
ICAgICBydW5UZXN0KCJ3aW5kb3dzIiwgInBhcmFncmEiKTsKKyAgICB9CisKKyAgICBmdW5jdGlv
biBydW5UZXN0KGJlaGF2aW9yLCBleHBlY3RlZFRleHQpCisgICAgeworICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRFZGl0aW5nQmVoYXZpb3IoYmVoYXZpb3IpOwogICAgICAgICBkb3Vi
bGVDbGlja1dvcmQoKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCJleHRlbmQiLCAi
YmFja3dhcmQiLCAiY2hhcmFjdGVyIik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLm1vZGlmeSgi
ZXh0ZW5kIiwgImJhY2t3YXJkIiwgImNoYXJhY3RlciIpOwpAQCAtMzIsMTkgKzQ0LDE1IEBACiAg
ICAgICAgIGdldFNlbGVjdGlvbigpLm1vZGlmeSgiZXh0ZW5kIiwgImJhY2t3YXJkIiwgImNoYXJh
Y3RlciIpOwogICAgICAgICBnZXRTZWxlY3Rpb24oKS5tb2RpZnkoImV4dGVuZCIsICJiYWNrd2Fy
ZCIsICJjaGFyYWN0ZXIiKTsKIAotICAgICAgICB2YXIgcmVzdWx0OwogICAgICAgICB2YXIgc2Vs
ZWN0ZWRUZXh0ID0gZ2V0U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAgdmFyIG9uTWFj
UGxhdGZvcm0gPSBuYXZpZ2F0b3IudXNlckFnZW50LnNlYXJjaCgvXGJNYWMgT1MgWFxiLykgIT0g
LTE7Ci0gICAgICAgIHZhciBleHBlY3RlZFRleHQgPSBvbk1hY1BsYXRmb3JtID8gImEgcGFyYWdy
YXBoIiA6ICJwYXJhZ3JhIjsKICAgICAgICAgaWYgKHNlbGVjdGVkVGV4dCA9PSBleHBlY3RlZFRl
eHQpCi0gICAgICAgICAgICByZXN1bHQgPSAiU1VDQ0VTUyI7CisgICAgICAgICAgICBsb2dSZXN1
bHQoIlNVQ0NFU1MiKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0ID0gIkZBSUxV
UkU6IFRoZSBzZWxlY3RlZCB0ZXh0IGlzIFwiIiArIHNlbGVjdGVkVGV4dCArICJcIiBhbmQgc2hv
dWxkIGJlIFwiIiArIGV4cGVjdGVkVGV4dCArICJcIi4iOwotICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicmVzdWx0IikuZmlyc3RDaGlsZC5kYXRhID0gcmVzdWx0OworICAgICAgICAg
ICAgbG9nUmVzdWx0KCJGQUlMVVJFOiBUaGUgc2VsZWN0ZWQgdGV4dCBpcyBcIiIgKyBzZWxlY3Rl
ZFRleHQgKyAiXCIgYW5kIHNob3VsZCBiZSBcIiIgKyBleHBlY3RlZFRleHQgKyAiXCIuIik7CiAg
ICAgfQogPC9zY3JpcHQ+CiA8L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8Ym9k
eSBvbmxvYWQ9InJ1blRlc3RzKCkiPgogPHA+VGhpcyB0ZXN0cyBtb2RpZnlpbmcgYSBzZWxlY3Rp
b24gY3JlYXRlZCB3aXRoIGEgZG91YmxlIGNsaWNrIHdpdGggc2hpZnQgYXJyb3cga2V5LjwvcD4K
IDxwIHN0eWxlPSJjb2xvcjpncmVlbiI+CiAgICAgVGhpcyB0ZXN0IGRvZXMgbm90IHJ1biBpbnRl
cmFjdGl2ZWx5LgpAQCAtNTQsNSArNjIsNSBAQAogICAgIFRoZSBzZWxlY3Rpb24gc2hvdWxkIGlu
Y2x1ZGUgdGhlIHdvcmRzICJhIHBhcmFncmFwaCIgb24gbWFjIGFuZCAicGFyYWdyYSIgb24gd2lu
L2xpbnV4Li4KIDwvcD4KIDxwPlRoaXMgaXMgYSBwYXJhPHNwYW4gc3R5bGU9ImNvbG9yOmJsdWUi
IGlkPSJzdGFydCI+Zzwvc3Bhbj5yYXBoLjwvcD4KLTxwIGlkPSJyZXN1bHQiPlRFU1QgSEFTIE5P
VCBSVU48L3A+Cis8cCBpZD0icmVzdWx0Ij48L3A+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA2
M2RjYTljLi4yOTUxMTI5IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNS0x
MyAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRoZSBlZGl0aW5nIGJl
aGF2aW9yIHNldHRpbmcgaW4gRFJUIHRvIHRlc3QgYWxsIGVkaXRpbmcgY29kZSBwYXRocworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2MDMKKworICAg
ICAgICAqIHB1YmxpYy9XZWJTZXR0aW5ncy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5n
czo6KTogQWRkZWQgYW4gZW51bSBmb3IgRWRpdGluZ0JlaGF2aW9yIHR5cGVzLgorICAgICAgICAq
IHNyYy9XZWJTZXR0aW5nc0ltcGwuY3BwOiAKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJ
bXBsOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvV2ViU2V0dGlu
Z3NJbXBsLmg6CisKIDIwMTAtMDUtMTMgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdp
dCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBiL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAppbmRleCAzNTZkOWZhLi40ZDkwYzM5IDEwMDY0NAotLS0g
YS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvV2ViS2l0L2Nocm9t
aXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCkBAIC00Myw2ICs0MywxMSBAQCBjbGFzcyBXZWJVUkw7
CiAvLyB0aGVzZSBmdW5jdGlvbnMgaGF2ZSBhIDE6MSBtYXBwaW5nIHdpdGggdGhlIG1ldGhvZHMg
aW4gV2ViQ29yZS9wYWdlL3NldHRpbmdzLmguCiBjbGFzcyBXZWJTZXR0aW5ncyB7CiBwdWJsaWM6
CisgICAgZW51bSBFZGl0aW5nQmVoYXZpb3IgeworICAgICAgICBFZGl0aW5nQmVoYXZpb3JNYWMs
CisgICAgICAgIEVkaXRpbmdCZWhhdmlvcldpbmRvd3MKKyAgICB9OworCiAgICAgdmlydHVhbCB2
b2lkIHNldFN0YW5kYXJkRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNldEZpeGVkRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcmKSA9IDA7CiAgICAg
dmlydHVhbCB2b2lkIHNldFNlcmlmRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcmKSA9IDA7CkBA
IC04NCw2ICs4OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0T2ZmbGluZVdlYkFw
cGxpY2F0aW9uQ2FjaGVFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RXhw
ZXJpbWVudGFsV2ViR0xFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hv
d0RlYnVnQm9yZGVycyhib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEVkaXRpbmdCZWhh
dmlvcihFZGl0aW5nQmVoYXZpb3IpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIH5XZWJTZXR0aW5n
cygpIHsgfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0Vu
dW1zLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKaW5k
ZXggZTdhZWI0OS4uYjIxYzJlMCAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3Nl
cnRNYXRjaGluZ0VudW1zLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNo
aW5nRW51bXMuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUHJl
c2VudGVyLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZFByaXZhdGUuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybUN1cnNvci5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiU3RyaW5nSW1w
bC5oIgogI2luY2x1ZGUgIlRleHRBZmZpbml0eS5oIgogI2luY2x1ZGUgIldlYkFjY2Vzc2liaWxp
dHlPYmplY3QuaCIKQEAgLTUyLDYgKzUzLDcgQEAKICNpbmNsdWRlICJXZWJNZWRpYVBsYXllci5o
IgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgogI2luY2x1ZGUgIldlYlNj
cm9sbGJhci5oIgorI2luY2x1ZGUgIldlYlNldHRpbmdzLmgiCiAjaW5jbHVkZSAiV2ViVGV4dEFm
ZmluaXR5LmgiCiAjaW5jbHVkZSAiV2ViVGV4dENhc2VTZW5zaXRpdml0eS5oIgogI2luY2x1ZGUg
PHd0Zi9Bc3NlcnRpb25zLmg+CkBAIC0zMDAsNiArMzAyLDkgQEAgQ09NUElMRV9BU1NFUlRfTUFU
Q0hJTkdfRU5VTShXZWJTY3JvbGxiYXI6OlNjcm9sbEJ5UGFnZSwgU2Nyb2xsQnlQYWdlKTsKIENP
TVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViU2Nyb2xsYmFyOjpTY3JvbGxCeURvY3VtZW50
LCBTY3JvbGxCeURvY3VtZW50KTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViU2Ny
b2xsYmFyOjpTY3JvbGxCeVBpeGVsLCBTY3JvbGxCeVBpeGVsKTsKIAorQ09NUElMRV9BU1NFUlRf
TUFUQ0hJTkdfRU5VTShXZWJTZXR0aW5nczo6RWRpdGluZ0JlaGF2aW9yTWFjLCBFZGl0aW5nTWFj
QmVoYXZpb3IpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJTZXR0aW5nczo6RWRp
dGluZ0JlaGF2aW9yV2luZG93cywgRWRpdGluZ1dpbmRvd3NCZWhhdmlvcik7CisKIENPTVBJTEVf
QVNTRVJUX01BVENISU5HX0VOVU0oV2ViVGV4dEFmZmluaXR5VXBzdHJlYW0sIFVQU1RSRUFNKTsK
IENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViVGV4dEFmZmluaXR5RG93bnN0cmVhbSwg
RE9XTlNUUkVBTSk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGlu
Z3NJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAppbmRl
eCAzYWRmM2FjLi41ZjMyMzQ2IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNl
dHRpbmdzSW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwu
Y3BwCkBAIC0yNjksNCArMjY5LDkgQEAgdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldFNob3dEZWJ1
Z0JvcmRlcnMoYm9vbCBzaG93KQogICAgIG1fc2V0dGluZ3MtPnNldFNob3dEZWJ1Z0JvcmRlcnMo
c2hvdyk7CiB9CiAKK3ZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRFZGl0aW5nQmVoYXZpb3IoRWRp
dGluZ0JlaGF2aW9yIGJlaGF2aW9yKQoreworICAgIG1fc2V0dGluZ3MtPnNldEVkaXRpbmdCZWhh
dmlvcihzdGF0aWNfY2FzdDxXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3I+KGJlaGF2aW9yKSk7Cit9
CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTZXR0aW5nc0ltcGwuaCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBs
LmgKaW5kZXggNTRjNjYwYi4uNzAyMjVmZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJTZXR0aW5nc0ltcGwuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdz
SW1wbC5oCkBAIC04Niw2ICs4Niw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0T2Zm
bGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRFeHBlcmltZW50YWxXZWJHTEVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFNo
b3dEZWJ1Z0JvcmRlcnMoYm9vbCk7CisgICAgdmlydHVhbCB2b2lkIHNldEVkaXRpbmdCZWhhdmlv
cihFZGl0aW5nQmVoYXZpb3IpOwogCiBwcml2YXRlOgogICAgIFdlYkNvcmU6OlNldHRpbmdzKiBt
X3NldHRpbmdzOwpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9XZWJLaXQvbWFj
L0NoYW5nZUxvZwppbmRleCBjZWRlMGRiLi4xNzI4Nzc5IDEwMDY0NAotLS0gYS9XZWJLaXQvbWFj
L0NoYW5nZUxvZworKysgYi9XZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisy
MDEwLTA1LTEzICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFeHBvc2UgdGhlIGVk
aXRpbmcgYmVoYXZpb3Igc2V0dGluZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRpdGluZyBjb2RlIHBh
dGhzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zODYw
MworCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZS5tbToKKyAgICAgICAgKGNvcmUpOgorICAg
ICAgICAqIFdlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oOiBBZGRlZCBhIGNvbnZlcnNpb24gbWV0
aG9kIGZyb20gdGhlIEFQSSBlbnVtIHRvIHRoZSBXZWJDb3JlIGVudW0uCisgICAgICAgICogV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDogQWRkZWQgYSBwcmVmZXJlbmNlIGtleSBm
b3IgdGhlIG5ldyBzZXR0aW5nLgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW06
CisgICAgICAgICgrW1dlYlByZWZlcmVuY2VzIGluaXRpYWxpemVdKTogSW5pdGlhbGl6ZSB0aGUg
RWRpdGluZ0JlaGF2aW9yIHRvIE1hYyBzdHlsZS4KKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMg
ZWRpdGluZ0JlaGF2aW9yXSk6IEFkZGVkLgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBzZXRF
ZGl0aW5nQmVoYXZpb3I6XSk6IEFkZGVkLgorICAgICAgICAqIFdlYlZpZXcvV2ViUHJlZmVyZW5j
ZXNQcml2YXRlLmg6IEFkZGVkIHRoZSBuZXcgQVBJIHBvaW50cyB0byB0aGUgcHJpdmF0ZSBBUEku
CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9wcmVm
ZXJlbmNlc0NoYW5nZWROb3RpZmljYXRpb246XSk6IFNldCB0aGUgZWRpdGluZyBiZWhhdmlvciB2
aWEgdGhlIFdlYlByZWZlcmVuY2VzIHNldHRpbmcuCisKIDIwMTAtMDUtMTIgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGF2aWQg
SHlhdHQuCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9XZWJL
aXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggNzU0NWJkOC4uODJkMjcyYiAxMDA2NDQK
LS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJGcmFtZS5tbQpAQCAtMTk2LDYgKzE5NiwxOCBAQCBFZGl0YWJsZUxpbmtCZWhhdmlv
ciBjb3JlKFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yIGVkaXRhYmxlTGlua0JlaGF2aW9yKQog
ICAgIHJldHVybiBFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3I7CiB9CiAKK1dlYkNvcmU6OkVk
aXRpbmdCZWhhdmlvciBjb3JlKFdlYktpdEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcikKK3sKKyAg
ICBzd2l0Y2ggKGJlaGF2aW9yKSB7CisgICAgICAgIGNhc2UgV2ViS2l0RWRpdGluZ01hY0JlaGF2
aW9yOgorICAgICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRpbmdNYWNCZWhhdmlvcjsKKyAg
ICAgICAgY2FzZSBXZWJLaXRFZGl0aW5nV2luZG93c0JlaGF2aW9yOgorICAgICAgICAgICAgcmV0
dXJuIFdlYkNvcmU6OkVkaXRpbmdXaW5kb3dzQmVoYXZpb3I7CisgICAgfQorICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgIHJldHVybiBXZWJDb3JlOjpFZGl0aW5nTWFjQmVoYXZpb3I7Cit9
CisKIFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgY29yZShXZWJUZXh0RGly
ZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yIGJlaGF2aW9yKQogewogICAgIHN3aXRjaCAo
YmVoYXZpb3IpIHsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVy
bmFsLmggYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCmluZGV4IDRjMWVl
NDAuLjliMjI0OGEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVy
bmFsLmgKKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaApAQCAtNzEs
NiArNzEsNyBAQCBXZWJWaWV3ICpraXQoV2ViQ29yZTo6UGFnZSopOwogCiBXZWJDb3JlOjpFZGl0
YWJsZUxpbmtCZWhhdmlvciBjb3JlKFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yKTsKIFdlYkNv
cmU6OlRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgY29yZShXZWJUZXh0RGly
ZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKTsKK1dlYkNvcmU6OkVkaXRpbmdCZWhhdmlv
ciBjb3JlKFdlYktpdEVkaXRpbmdCZWhhdmlvcik7CiAKIFdlYlZpZXcgKmdldFdlYlZpZXcoV2Vi
RnJhbWUgKndlYkZyYW1lKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlBy
ZWZlcmVuY2VLZXlzUHJpdmF0ZS5oIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oCmluZGV4IGY0YWUzMzMuLjRjMjJmNTkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTEwNCw2ICsxMDQsNyBAQAogI2Rl
ZmluZSBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvclByZWZlcmVuY2VLZXkgQCJXZWJLaXRFZGl0
YWJsZUxpbmtCZWhhdmlvciIKICNkZWZpbmUgV2ViS2l0Q2FjaGVNb2RlbFByZWZlcmVuY2VLZXkg
QCJXZWJLaXRDYWNoZU1vZGVsUHJlZmVyZW5jZUtleSIKICNkZWZpbmUgV2ViS2l0VGV4dERpcmVj
dGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvclByZWZlcmVuY2VLZXkgQCJXZWJLaXRUZXh0RGly
ZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yUHJlZmVyZW5jZUtleSIKKyNkZWZpbmUgV2Vi
S2l0RWRpdGluZ0JlaGF2aW9yUHJlZmVyZW5jZUtleSBAIldlYktpdEVkaXRpbmdCZWhhdmlvciIK
IAogLy8gQ29yZUdyYXBoaWNzIGRlZmVycmVkIHVwZGF0ZXMgYXJlIGRpc2FibGVkIGlmIFdlYktp
dEVuYWJsZUNvYWxlc2NlZFVwZGF0ZXNQcmVmZXJlbmNlS2V5IGlzIHNldAogLy8gdG8gTk8sIG9y
IGhhcyBubyB2YWx1ZS4gIEZvciBjb21wYXRpYmlsaXR5IHdpdGggTWFjIE9TIFggMTAuNC42LCBk
ZWZlcnJlZCB1cGRhdGVzIGFyZSBPRkYgYnkKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbSBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5t
bQppbmRleCA5ZGU4NDk1Li5iZWRlMzQxIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZXMubW0KKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2Vz
Lm1tCkBAIC0zMzQsNiArMzM0LDcgQEAgc3RhdGljIFdlYkNhY2hlTW9kZWwgY2FjaGVNb2RlbEZv
ck1haW5CdW5kbGUodm9pZCkKICAgICAgICAgQCIwIiwgICAgICAgICAgICAgICAgICAgICAgICAg
ICBXZWJLaXRQREZTY2FsZUZhY3RvclByZWZlcmVuY2VLZXksCiAgICAgICAgIEAiMCIsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViS2l0VXNlU2l0ZVNwZWNpZmljU3Bvb2ZpbmdQcmVmZXJl
bmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpXZWJLaXRFZGl0YWJsZUxp
bmtEZWZhdWx0QmVoYXZpb3JdLCBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvclByZWZlcmVuY2VL
ZXksCisgICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OldlYktpdEVkaXRpbmdNYWNCZWhh
dmlvcl0sIFdlYktpdEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXksCiAjaWYgIWRlZmluZWQo
QlVJTERJTkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCiAgICAg
ICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OldlYlRleHREaXJlY3Rpb25TdWJtZW51QXV0b21h
dGljYWxseUluY2x1ZGVkXSwKICNlbHNlCkBAIC0xMjM3LDYgKzEyMzgsMTYgQEAgc3RhdGljIE5T
U3RyaW5nICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6
ZmxhZyBmb3JLZXk6V2ViS2l0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZFByZWZlcmVuY2VLZXldOwog
fQogCistIChXZWJLaXRFZGl0aW5nQmVoYXZpb3IpZWRpdGluZ0JlaGF2aW9yCit7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PFdlYktpdEVkaXRpbmdCZWhhdmlvcj4oW3NlbGYgX2ludGVnZXJWYWx1
ZUZvcktleTpXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJlbmNlS2V5XSk7Cit9CisKKy0gKHZv
aWQpc2V0RWRpdGluZ0JlaGF2aW9yOihXZWJLaXRFZGl0aW5nQmVoYXZpb3IpYmVoYXZpb3IKK3sK
KyAgICBbc2VsZiBfc2V0SW50ZWdlclZhbHVlOmJlaGF2aW9yIGZvcktleTpXZWJLaXRFZGl0aW5n
QmVoYXZpb3JQcmVmZXJlbmNlS2V5XTsKK30KKwogLSAodm9pZClkaWRSZW1vdmVGcm9tV2ViVmll
dwogewogICAgIEFTU0VSVChfcHJpdmF0ZS0+bnVtV2ViVmlld3MpOwpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IGVlNzg1ZTkuLjgzMmMwODggMTAwNjQ0
Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTQzLDYgKzQzLDEx
IEBAIHR5cGVkZWYgZW51bSB7CiAgICAgV2ViVGV4dERpcmVjdGlvblN1Ym1lbnVBbHdheXNJbmNs
dWRlZAogfSBXZWJUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yOwogCit0eXBl
ZGVmIGVudW0geworICAgIFdlYktpdEVkaXRpbmdNYWNCZWhhdmlvciwKKyAgICBXZWJLaXRFZGl0
aW5nV2luZG93c0JlaGF2aW9yLAorfSBXZWJLaXRFZGl0aW5nQmVoYXZpb3I7CisKIGV4dGVybiBO
U1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uOwogZXh0ZXJuIE5TU3Ry
aW5nICpXZWJQcmVmZXJlbmNlc1JlbW92ZWROb3RpZmljYXRpb247CiAKQEAgLTEyOSw2ICsxMzQs
OSBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzUmVtb3ZlZE5vdGlmaWNhdGlvbjsK
IC0gKFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yKWVkaXRhYmxlTGlua0JlaGF2aW9yOwogLSAo
dm9pZClzZXRFZGl0YWJsZUxpbmtCZWhhdmlvcjooV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3Ip
YmVoYXZpb3I7CiAKKy0gKFdlYktpdEVkaXRpbmdCZWhhdmlvcillZGl0aW5nQmVoYXZpb3I7Cist
ICh2b2lkKXNldEVkaXRpbmdCZWhhdmlvcjooV2ViS2l0RWRpdGluZ0JlaGF2aW9yKWJlaGF2aW9y
OworCiAtIChXZWJUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKXRleHREaXJl
Y3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I7CiAtICh2b2lkKXNldFRleHREaXJlY3Rpb25T
dWJtZW51SW5jbHVzaW9uQmVoYXZpb3I6KFdlYlRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9u
QmVoYXZpb3IpYmVoYXZpb3I7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJW
aWV3Lm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggNDkyYTkzMC4uNjc3
MWFmNCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTEzNTMsNiArMTM1Myw3IEBAIHN0YXRpYyBi
b29sIGZhc3REb2N1bWVudFRlYXJkb3duRW5hYmxlZCgpCiAgICAgc2V0dGluZ3MtPnNldFRleHRB
cmVhc0FyZVJlc2l6YWJsZShbcHJlZmVyZW5jZXMgdGV4dEFyZWFzQXJlUmVzaXphYmxlXSk7CiAg
ICAgc2V0dGluZ3MtPnNldFNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQoW3ByZWZlcmVuY2Vz
IHNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXRdKTsKICAgICBzZXR0aW5ncy0+c2V0RWRpdGFi
bGVMaW5rQmVoYXZpb3IoY29yZShbcHJlZmVyZW5jZXMgZWRpdGFibGVMaW5rQmVoYXZpb3JdKSk7
CisgICAgc2V0dGluZ3MtPnNldEVkaXRpbmdCZWhhdmlvcihjb3JlKFtwcmVmZXJlbmNlcyBlZGl0
aW5nQmVoYXZpb3JdKSk7CiAgICAgc2V0dGluZ3MtPnNldFRleHREaXJlY3Rpb25TdWJtZW51SW5j
bHVzaW9uQmVoYXZpb3IoY29yZShbcHJlZmVyZW5jZXMgdGV4dERpcmVjdGlvblN1Ym1lbnVJbmNs
dXNpb25CZWhhdmlvcl0pKTsKICAgICBzZXR0aW5ncy0+c2V0RE9NUGFzdGVBbGxvd2VkKFtwcmVm
ZXJlbmNlcyBpc0RPTVBhc3RlQWxsb3dlZF0pOwogICAgIHNldHRpbmdzLT5zZXRVc2VzUGFnZUNh
Y2hlKFtzZWxmIHVzZXNQYWdlQ2FjaGVdKTsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdl
TG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggNDE2OWJhMy4uZDQzOGI3NSAxMDA2NDQK
LS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMSBAQAorMjAxMC0wNS0xMyAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgRXhwb3NlIHRoZSBlZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcgaW4gRFJUIHRvIHRlc3QgYWxs
IGVkaXRpbmcgY29kZSBwYXRocworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9Mzg2MDMKKworICAgICAgICBFeHBvc2UgdGhlIEVkaXRpbmdCZWhhdmlvciBz
ZXR0aW5nIGluIHRoZSBXaW5kb3dzIEFQSS4KKworICAgICAgICAqIEludGVyZmFjZXMvSVdlYlBy
ZWZlcmVuY2VzLmlkbDogQWRkIHRoZSBBUEkgcG9pbnQgZm9yIHNldHRpbmcgdGhlIGVkaXRpbmcg
YmVoYXZpb3IuCisgICAgICAgICogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZCBhIGtl
eSBmb3IgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZy4KKyAgICAgICAgKiBXZWJQcmVmZXJl
bmNlcy5jcHA6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6ZWRpdGluZ0JlaGF2aW9yKTogQWRk
ZWQuCisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6c2V0RWRpdGluZ0JlaGF2aW9yKTogQWRkZWQu
CisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuaDogQWRkIG1ldGhvZCBkZWNsYXJhdGlvbnMuCisg
ICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNl
c0NoYW5nZWQpOiBVcGRhdGUgdGhlIFdlYkNvcmUgc2V0dGluZyBiYXNlZCBvbiB0aGUgV2ViUHJl
ZmVyZW5jZXMgc2V0dGluZy4KKwogMjAxMC0wNS0xMiAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFw
cGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBh
L1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXMuaWRsIGIvV2ViS2l0L3dpbi9J
bnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGwKaW5kZXggMWM0MzEzNS4uZmYzMGEwMyAxMDA2
NDQKLS0tIGEvV2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGwKKysrIGIv
V2ViS2l0L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGwKQEAgLTQ3LDYgKzQ3LDEy
IEBAIHR5cGVkZWYgZW51bSBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciB7CiAgICAgV2ViS2l0
RWRpdGFibGVMaW5rTmV2ZXJMaXZlCiB9IFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yOwogCit0
eXBlZGVmIGVudW0gV2ViS2l0RWRpdGluZ0JlaGF2aW9yIHsKKyAgICBXZWJLaXRFZGl0aW5nTWFj
QmVoYXZpb3IgPSAwLAorICAgIFdlYktpdEVkaXRpbmdXaW5kb3dzQmVoYXZpb3IsCit9IFdlYktp
dEVkaXRpbmdCZWhhdmlvcjsKKworCiB0eXBlZGVmIGVudW0gV2ViS2l0Q29va2llU3RvcmFnZUFj
Y2VwdFBvbGljeSB7CiAgICAgV2ViS2l0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeUFsd2F5cyA9
IDAsCiAgICAgV2ViS2l0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeU5ldmVyLApAQCAtMTYyLDYg
KzE2OCw5IEBAIGludGVyZmFjZSBJV2ViUHJlZmVyZW5jZXMgOiBJVW5rbm93bgogICAgIEhSRVNV
TFQgZWRpdGFibGVMaW5rQmVoYXZpb3IoW291dCwgcmV0dmFsXSBXZWJLaXRFZGl0YWJsZUxpbmtC
ZWhhdmlvciogZWRpdGFibGVMaW5rQmVoYXZpb3IpOwogICAgIEhSRVNVTFQgc2V0RWRpdGFibGVM
aW5rQmVoYXZpb3IoW2luXSBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciBiZWhhdmlvcik7CiAK
KyAgICBIUkVTVUxUIGVkaXRpbmdCZWhhdmlvcihbb3V0LCByZXR2YWxdIFdlYktpdEVkaXRpbmdC
ZWhhdmlvciogZWRpdGluZ0JlaGF2aW9yKTsKKyAgICBIUkVTVUxUIHNldEVkaXRpbmdCZWhhdmlv
cihbaW5dIFdlYktpdEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcik7CisKICAgICBIUkVTVUxUIGNv
b2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3koW291dCwgcmV0dmFsXSBXZWJLaXRDb29raWVTdG9yYWdl
QWNjZXB0UG9saWN5KiBhY2NlcHRQb2xpY3kpOwogICAgIEhSRVNVTFQgc2V0Q29va2llU3RvcmFn
ZUFjY2VwdFBvbGljeShbaW5dIFdlYktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kgYWNjZXB0
UG9saWN5KTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZh
dGUuaCBiL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggYzQ5YTk2
ZC4uZGE2Mzc1NCAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZh
dGUuaAorKysgYi9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC03NCw2
ICs3NCw3IEBACiAjZGVmaW5lIFdlYktpdFBERkRpc3BsYXlNb2RlUHJlZmVyZW5jZUtleSAiV2Vi
S2l0UERGRGlzcGxheU1vZGUiCiAjZGVmaW5lIFdlYktpdFBERlNjYWxlRmFjdG9yUHJlZmVyZW5j
ZUtleSAiV2ViS2l0UERGU2NhbGVGYWN0b3IiCiAjZGVmaW5lIFdlYktpdEVkaXRhYmxlTGlua0Jl
aGF2aW9yUHJlZmVyZW5jZUtleSAiV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IiCisjZGVmaW5l
IFdlYktpdEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXkgIldlYktpdEVkaXRpbmdCZWhhdmlv
ciIKIAogLy8gV2luZG93IGRpc3BsYXkgaXMgdGhyb3R0bGVkIHRvIDYwIGZyYW1lcyBwZXIgc2Vj
b25kIGlmIFdlYktpdFRocm90dGxlV2luZG93RGlzcGxheVByZWZlcmVuY2VLZXkKIC8vIGlzIHNl
dCB0byBZRVMuICBUaGUgd2luZG93IGRpc3BsYXkgdGhyb3R0bGUgaXMgT0ZGIGJ5IGRlZmF1bHQg
Zm9yIGNvbXBhdGliaWxpdHkgd2l0aCBNYWMgT1MgWApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9X
ZWJQcmVmZXJlbmNlcy5jcHAgYi9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCAz
M2U5MDRkLi4zZTdlYTQyIDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNw
cAorKysgYi9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcApAQCAtMTEzMCw2ICsxMTMwLDIx
IEBAIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViUHJlZmVyZW5jZXM6OnNldEVkaXRhYmxl
TGlua0JlaGF2aW9yKAogICAgIHJldHVybiBTX09LOwogfQogCitIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIFdlYlByZWZlcmVuY2VzOjplZGl0aW5nQmVoYXZpb3IoCisgICAgLyogW291dCwgcmV0
dmFsXSAqLyBXZWJLaXRFZGl0aW5nQmVoYXZpb3IqIGVkaXRpbmdCZWhhdmlvcikKK3sKKyAgICAq
ZWRpdGluZ0JlaGF2aW9yID0gKFdlYktpdEVkaXRpbmdCZWhhdmlvcikgaW50ZWdlclZhbHVlRm9y
S2V5KENGU1RSKFdlYktpdEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXkpKTsKKyAgICByZXR1
cm4gU19PSzsKK30KKworSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6
c2V0RWRpdGluZ0JlaGF2aW9yKAorICAgIC8qIFtpbl0gKi8gV2ViS2l0RWRpdGFibGVMaW5rQmVo
YXZpb3IgYmVoYXZpb3IpCit7CisgICAgc2V0SW50ZWdlclZhbHVlKENGU1RSKFdlYktpdEVkaXRp
bmdCZWhhdmlvclByZWZlcmVuY2VLZXkpLCBiZWhhdmlvcik7CisgICAgcmV0dXJuIFNfT0s7Cit9
CisKKwogSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6Y29va2llU3Rv
cmFnZUFjY2VwdFBvbGljeSggCiAgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gV2ViS2l0Q29v
a2llU3RvcmFnZUFjY2VwdFBvbGljeSAqYWNjZXB0UG9saWN5ICkKIHsKZGlmZiAtLWdpdCBhL1dl
YktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaCBiL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaApp
bmRleCBjZmRlZmE4Li4xZWE2OWM3IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYlByZWZlcmVu
Y2VzLmgKKysrIGIvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCkBAIC0yMzgsNiArMjM4LDEy
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0RWRp
dGFibGVMaW5rQmVoYXZpb3IoIAogICAgICAgICAvKiBbaW5dICovIFdlYktpdEVkaXRhYmxlTGlu
a0JlaGF2aW9yIGJlaGF2aW9yKTsKIAorICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBlZGl0aW5nQmVoYXZpb3IoCisgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gV2ViS2l0
RWRpdGluZ0JlaGF2aW9yKiBiZWhhdmlvcik7CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgc2V0RWRpdGluZ0JlaGF2aW9yKAorICAgICAgICAvKiBbaW5dICovIFdlYktp
dEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcik7CisKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVU
SE9EQ0FMTFRZUEUgY29va2llU3RvcmFnZUFjY2VwdFBvbGljeSggCiAgICAgICAgIC8qIFtyZXR2
YWxdW291dF0gKi8gV2ViS2l0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeSAqYWNjZXB0UG9saWN5
KTsKICAgICAgICAgCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvV2ViS2l0
L3dpbi9XZWJWaWV3LmNwcAppbmRleCA2ZjQ0MzYwLi5kZDg5N2Y2IDEwMDY0NAotLS0gYS9XZWJL
aXQvd2luL1dlYlZpZXcuY3BwCisrKyBiL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTQ1OTIs
NiArNDU5MiwxMiBAQCBIUkVTVUxUIFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJ
V2ViTm90aWZpY2F0aW9uKiBub3RpZmljYXRpb24pCiAgICAgICAgIHJldHVybiBocjsKICAgICBz
ZXR0aW5ncy0+c2V0RWRpdGFibGVMaW5rQmVoYXZpb3IoKEVkaXRhYmxlTGlua0JlaGF2aW9yKWJl
aGF2aW9yKTsKIAorICAgIFdlYktpdEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcjsKKyAgICBociA9
IHByZWZlcmVuY2VzLT5lZGl0aW5nQmVoYXZpb3IoJmJlaGF2aW9yKTsKKyAgICBpZiAoRkFJTEVE
KGhyKSkKKyAgICAgICAgcmV0dXJuIGhyOworICAgIHNldHRpbmdzLT5zZXRFZGl0aW5nQmVoYXZp
b3IoKEVkaXRpbmdCZWhhdmlvciliZWhhdmlvcik7CisKICAgICBociA9IHByZWZlcmVuY2VzLT51
c2VzUGFnZUNhY2hlKCZlbmFibGVkKTsKICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0
dXJuIGhyOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGU4MTY4YTMuLjA5OGE5NGIgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xz
L0NoYW5nZUxvZworKysgYi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAor
MjAxMC0wNS0wNiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRoZSBl
ZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcgaW4gRFJUIHRvIHRlc3QgYWxsIGVkaXRpbmcgY29kZSBw
YXRocworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2
MDMKKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoK
KyAgICAgICAgKHNldEVkaXRpbmdCZWhhdmlvckNhbGxiYWNrKTogQWRkZWQuCisgICAgICAgIChM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rpb25zKTogRXhwb3NlIHRoZSBzZXRFZGl0
aW5nQmVoYXZpb3JDYWxsYmFjayBmdW5jdGlvbi4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcDogQWRkIGNhbGxiYWNrIG1ldGhvZCBmb3Igc2V0dGlu
ZyBlZGl0aW5nIGJlaGF2aW9yLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xh
eW91dFRlc3RDb250cm9sbGVyLmg6IERlY2xhcmF0aW9uIGZvciB0aGlzIG1ldGhvZC4KKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOiAKKyAg
ICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBJbXBsZW1l
bnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoTGF5b3V0VGVz
dENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IERpdHRvCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHA6CisgICAgICAgIChMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTogQWRkZWQgc3R1YiBpbXBsZW1lbnRh
dGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRy
b2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZCBzbG90IGZvciBjb250cm9sbGluZyBlZGl0
b3IgYmVoYXZpb3IuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250
cm9sbGVyV2luLmNwcDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5n
QmVoYXZpb3IpOiBJbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHA6Cisg
ICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTogQWRkZWQg
c3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCisKIDIwMTAt
MDUtMTMgIERpZWdvIEdvbnphbGV6ICA8ZGllZ29oY2dAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcAppbmRleCBmNTY0YWZh
Li5lOTQwN2ZkIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAKICNpbmNsdWRlICJXb3JrUXVl
dWUuaCIKICNpbmNsdWRlICJXb3JrUXVldWVJdGVtLmgiCisjaW5jbHVkZSA8Y3N0cmluZz4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NvbnRleHRSZWYuaD4KICNpbmNsdWRlIDxKYXZhU2Ny
aXB0Q29yZS9KU09iamVjdFJlZi5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUmV0YWlu
UHRyLmg+CkBAIC0xNDUzLDYgKzE0NTQsMzMgQEAgc3RhdGljIEpTVmFsdWVSZWYgYXV0aGVudGlj
YXRlU2Vzc2lvbkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiwKICAg
ICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKK3N0YXRpYyBKU1Zh
bHVlUmVmIHNldEVkaXRpbmdCZWhhdmlvckNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3Vt
ZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKK3sKKyAgICAvLyBUaGUgZWRpdGluZyBiZWhhdmlvciBzdHJpbmcuCisgICAgaWYgKGFy
Z3VtZW50Q291bnQgPCAxKQorICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29u
dGV4dCk7CisKKyAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gZWRpdGluZ0JlaGF2aW9yKEFk
b3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9u
KSk7CisgICAgQVNTRVJUKCEqZXhjZXB0aW9uKTsKKworICAgIHNpemVfdCBtYXhMZW5ndGggPSBK
U1N0cmluZ0dldE1heGltdW1VVEY4Q1N0cmluZ1NpemUoZWRpdGluZ0JlaGF2aW9yLmdldCgpKTsK
KyAgICBjaGFyKiBiZWhhdmlvckJ1ZmZlciA9IG5ldyBjaGFyW21heExlbmd0aCArIDFdOworICAg
IEpTU3RyaW5nR2V0VVRGOENTdHJpbmcoZWRpdGluZ0JlaGF2aW9yLmdldCgpLCBiZWhhdmlvckJ1
ZmZlciwgbWF4TGVuZ3RoKTsKKworICAgIGlmIChzdHJjbXAoYmVoYXZpb3JCdWZmZXIsICJtYWMi
KSAmJiBzdHJjbXAoYmVoYXZpb3JCdWZmZXIsICJ3aW5kb3dzIikpIHsKKyAgICAgICAgSlNSZXRh
aW5QdHI8SlNTdHJpbmdSZWY+IGludmFsaWRBcmd1bWVudChKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4
Q1N0cmluZygiUGFzc2VkIGludmFsaWQgZWRpdGluZyBiZWhhdmlvci4gTXVzdCBiZSAnbWFjJyBv
ciAnd2luZG93cycuIikpOworICAgICAgICAqZXhjZXB0aW9uID0gSlNWYWx1ZU1ha2VTdHJpbmco
Y29udGV4dCwgaW52YWxpZEFyZ3VtZW50LmdldCgpKTsKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVN
YWtlVW5kZWZpbmVkKGNvbnRleHQpOworICAgIH0KKworICAgIExheW91dFRlc3RDb250cm9sbGVy
KiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8TGF5b3V0VGVzdENvbnRyb2xsZXIqPihKU09iamVj
dEdldFByaXZhdGUodGhpc09iamVjdCkpOworICAgIGNvbnRyb2xsZXItPnNldEVkaXRpbmdCZWhh
dmlvcihiZWhhdmlvckJ1ZmZlcik7CisKKyAgICBkZWxldGUgW10gYmVoYXZpb3JCdWZmZXI7CisK
KyAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7Cit9CisKIC8vIFN0YXRp
YyBWYWx1ZXMKIAogc3RhdGljIEpTVmFsdWVSZWYgZ2V0R2xvYmFsRmxhZ0NhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBKU1N0cmluZ1JlZiBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKQEAgLTE2MDIsNiArMTYzMCw3IEBAIEpT
U3RhdGljRnVuY3Rpb24qIExheW91dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMoKQog
ICAgICAgICB7ICJzZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSIsIHNldEN1c3RvbVBvbGljeURlbGVn
YXRlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0RGF0YWJhc2VRdW90YSIsIHNldERh
dGFiYXNlUXVvdGFDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LCAKICAgICAgICAgeyAic2V0RG9tYWluUmVsYXhh
dGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZSIsIHNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5G
b3JVUkxTY2hlbWVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJzZXRFZGl0aW5nQmVoYXZp
b3IiLCBzZXRFZGl0aW5nQmVoYXZpb3JDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRG
cmFtZUZsYXR0ZW5pbmdFbmFibGVkIiwgc2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZENhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEdlb2xvY2F0aW9uUGVybWlzc2lvbiIsIHNldEdlb2xv
Y2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldEhhbmRsZXNB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZXMiLCBzZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJU
cmVlL0xheW91dFRlc3RDb250cm9sbGVyLmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9M
YXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGM2ZGEyZmYuLjhmZjM4ZDEgMTAwNjQ0Ci0tLSBh
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKKysrIGIv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaApAQCAtOTks
NiArOTksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRGcmFtZUZsYXR0ZW5pbmdFbmFibGVkKGJv
b2wgZW5hYmxlKTsKICAgICB2b2lkIHNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChib29sIGVu
YWJsZSk7CiAgICAgdm9pZCBzZXRTY3JvbGxiYXJQb2xpY3koSlNTdHJpbmdSZWYgb3JpZW50YXRp
b24sIEpTU3RyaW5nUmVmIHBvbGljeSk7CisgICAgdm9pZCBzZXRFZGl0aW5nQmVoYXZpb3IoY29u
c3QgY2hhciogZWRpdGluZ0JlaGF2aW9yKTsKIAogICAgIHZvaWQgd2FpdEZvclBvbGljeURlbGVn
YXRlKCk7CiAgICAgc2l6ZV90IHdlYkhpc3RvcnlJdGVtQ291bnQoKTsKZGlmZiAtLWdpdCBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNw
cCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcAppbmRleCA2YzYwZmU5Li4xNmEyMDIzIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3Bw
CkBAIC0xNTksNiArMTU5LDcgQEAgTGF5b3V0VGVzdENvbnRyb2xsZXI6OkxheW91dFRlc3RDb250
cm9sbGVyKFRlc3RTaGVsbCogc2hlbGwpCiAgICAgYmluZE1ldGhvZCgic2V0VGltZWxpbmVQcm9m
aWxpbmdFbmFibGVkIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRUaW1lbGluZVByb2ZpbGlu
Z0VuYWJsZWQpOwogICAgIGJpbmRNZXRob2QoImV2YWx1YXRlSW5XZWJJbnNwZWN0b3IiLCAmTGF5
b3V0VGVzdENvbnRyb2xsZXI6OmV2YWx1YXRlSW5XZWJJbnNwZWN0b3IpOwogICAgIGJpbmRNZXRo
b2QoImZvcmNlUmVkU2VsZWN0aW9uQ29sb3JzIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpmb3Jj
ZVJlZFNlbGVjdGlvbkNvbG9ycyk7CisgICAgYmluZE1ldGhvZCgic2V0RWRpdGluZ0JlaGF2aW9y
IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOwogCiAgICAgLy8g
VGhlIGZhbGxiYWNrIG1ldGhvZCBpcyBjYWxsZWQgd2hlbiBhbiB1bmtub3duIG1ldGhvZCBpcyBp
bnZva2VkLgogICAgIGJpbmRGYWxsYmFja01ldGhvZCgmTGF5b3V0VGVzdENvbnRyb2xsZXI6OmZh
bGxiYWNrTWV0aG9kKTsKQEAgLTEyNzAsMyArMTI3MSwxNSBAQCB2b2lkIExheW91dFRlc3RDb250
cm9sbGVyOjphZGRVc2VyU3R5bGVTaGVldChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50
cywgQwogICAgICAgICByZXR1cm47CiAgICAgbV9zaGVsbC0+d2ViVmlldygpLT5hZGRVc2VyU3R5
bGVTaGVldChXZWJTdHJpbmc6OmZyb21VVEY4KGFyZ3VtZW50c1swXS50b1N0cmluZygpKSk7CiB9
CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcihjb25zdCBD
cHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0cykKK3sKKyAgICBX
ZWJTZXR0aW5ncyogc2V0dGluZ3MgPSBtX3NoZWxsLT53ZWJWaWV3KCktPnNldHRpbmdzKCk7Cisg
ICAgc3RyaW5nIGtleSA9IGFyZ3VtZW50c1swXS50b1N0cmluZygpOworICAgIGlmIChrZXkgPT0g
Im1hYyIpCisgICAgICAgIHNldHRpbmdzLT5zZXRFZGl0aW5nQmVoYXZpb3IoV2ViU2V0dGluZ3M6
OkVkaXRpbmdCZWhhdmlvck1hYyk7CisgICAgZWxzZSBpZiAoa2V5ID09ICJ3aW5kb3dzIikKKyAg
ICAgICAgc2V0dGluZ3MtPnNldEVkaXRpbmdCZWhhdmlvcihXZWJTZXR0aW5nczo6RWRpdGluZ0Jl
aGF2aW9yV2luZG93cyk7CisgICAgZWxzZQorICAgICAgICBsb2dFcnJvclRvQ29uc29sZSgiUGFz
c2VkIGludmFsaWQgZWRpdGluZyBiZWhhdmlvci4gU2hvdWxkIGJlICdtYWMnIG9yICd3aW5kb3dz
Jy4iKTsKK30KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCmluZGV4IGU3YTQ4ZTIuLmZhZjdhY2MgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0
VGVzdENvbnRyb2xsZXIuaApAQCAtMjA5LDYgKzIwOSw4IEBAIHB1YmxpYzoKICAgICAvLyBHcmFu
dHMgcGVybWlzc2lvbiBmb3IgZGVza3RvcCBub3RpZmljYXRpb25zIHRvIGFuIG9yaWdpbgogICAg
IHZvaWQgZ3JhbnREZXNrdG9wTm90aWZpY2F0aW9uUGVybWlzc2lvbihjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7CiAKKyAgICB2b2lkIHNldEVkaXRpbmdCZWhhdmlvcihjb25z
dCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisKICAgICAvLyBUaGUgZm9sbG93aW5n
IGFyZSBvbmx5IHN0dWJzLiAgVE9ETyhwYW1nKTogSW1wbGVtZW50IGFueSBvZiB0aGVzZSB0aGF0
CiAgICAgLy8gYXJlIG5lZWRlZCB0byBwYXNzIHRoZSBsYXlvdXQgdGVzdHMuCiAgICAgdm9pZCBk
dW1wQXNXZWJBcmNoaXZlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJv
bGxlckd0ay5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENv
bnRyb2xsZXJHdGsuY3BwCmluZGV4IDRmZmFiODguLjcyMGMzYzYgMTAwNjQ0Ci0tLSBhL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKKysr
IGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3Rr
LmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTUmV0YWlu
UHRyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNTdHJpbmdSZWYuaD4KIAorI2luY2x1
ZGUgPGNzdHJpbmc+CiAjaW5jbHVkZSA8aW9zdHJlYW0+CiAjaW5jbHVkZSA8c3N0cmVhbT4KICNp
bmNsdWRlIDxzdGRpby5oPgpAQCAtNjkzLDMgKzY5NCwxNCBAQCBKU1JldGFpblB0cjxKU1N0cmlu
Z1JlZj4gTGF5b3V0VGVzdENvbnRyb2xsZXI6Om1hcmtlclRleHRGb3JMaXN0SXRlbShKU0NvbnRl
eHRSZQogdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXV0aGVudGljYXRlU2Vzc2lvbihKU1N0
cmluZ1JlZiwgSlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmKQogewogfQorCit2b2lkIExheW91dFRl
c3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IoY29uc3QgY2hhciogZWRpdGluZ0JlaGF2
aW9yKQoreworICAgIFdlYktpdFdlYlZpZXcqIHdlYlZpZXcgPSB3ZWJraXRfd2ViX2ZyYW1lX2dl
dF93ZWJfdmlldyhtYWluRnJhbWUpOworICAgIFdlYktpdFdlYlNldHRpbmdzKiBzZXR0aW5ncyA9
IHdlYmtpdF93ZWJfdmlld19nZXRfc2V0dGluZ3Mod2ViVmlldyk7CisKKyAgICBpZiAoIXN0cmNt
cChlZGl0aW5nQmVoYXZpb3IsICJ3aW5kb3dzIikpCisgICAgICAgIGdfb2JqZWN0X3NldChHX09C
SkVDVChzZXR0aW5ncyksICJlZGl0aW5nLWJlaGF2aW9yIiwgV0VCS0lUX0VESVRJTkdfQkVIQVZJ
T1JfV0lORE9XUywgTlVMTCk7CisgICAgaWYgKCFzdHJjbXAoZWRpdGluZ0JlaGF2aW9yLCAibWFj
IikpCisgICAgICAgIGdfb2JqZWN0X3NldChHX09CSkVDVChzZXR0aW5ncyksICJlZGl0aW5nLWJl
aGF2aW9yIiwgV0VCS0lUX0VESVRJTkdfQkVIQVZJT1JfTUFDLCBOVUxMKTsKK30KZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1h
Yy5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxl
ck1hYy5tbQppbmRleCA0NGFlYTgxLi4zNzNmNDEwIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCkBAIC04
NDksMyArODQ5LDEzIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmF1dGhlbnRpY2F0ZVNl
c3Npb24oSlNTdHJpbmdSZWYgdXJsLCBKU1N0cmluZ1JlZiB1c2VyCiAgICAgW1N5bmNocm9ub3Vz
TG9hZGVyIG1ha2VSZXF1ZXN0OnJlcXVlc3Qgd2l0aFVzZXJuYW1lOihOU1N0cmluZyAqKXVzZXJu
YW1lQ0YuZ2V0KCkgcGFzc3dvcmQ6KE5TU3RyaW5nICopcGFzc3dvcmRDRi5nZXQoKV07CiAjZW5k
aWYKIH0KKwordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKGNv
bnN0IGNoYXIqIGVkaXRpbmdCZWhhdmlvcikKK3sKKyAgICBOU1N0cmluZyogZWRpdGluZ0JlaGF2
aW9yTlMgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6ZWRpdGluZ0JlaGF2aW9yXTsK
KyAgICBpZiAoW2VkaXRpbmdCZWhhdmlvck5TIGlzRXF1YWxUb1N0cmluZzpAIm1hYyJdKQorICAg
ICAgICBbW1dlYlByZWZlcmVuY2VzIHN0YW5kYXJkUHJlZmVyZW5jZXNdIHNldEVkaXRpbmdCZWhh
dmlvcjpXZWJLaXRFZGl0aW5nTWFjQmVoYXZpb3JdOworICAgIGlmIChbZWRpdGluZ0JlaGF2aW9y
TlMgaXNFcXVhbFRvU3RyaW5nOkAid2luZG93cyJdKQorICAgICAgICBbW1dlYlByZWZlcmVuY2Vz
IHN0YW5kYXJkUHJlZmVyZW5jZXNdIHNldEVkaXRpbmdCZWhhdmlvcjpXZWJLaXRFZGl0aW5nTWFj
QmVoYXZpb3JdOworICAgIFtlZGl0aW5nQmVoYXZpb3JOUyByZWxlYXNlXTsKK30KZGlmZiAtLWdp
dCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQu
Y3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJR
dC5jcHAKaW5kZXggZDEzMDdhNC4uY2NkNWJjMiAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVt
cFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKKysrIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKQEAgLTYzNCw1
ICs2MzQsMTAgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXV0aGVudGljYXRlU2Vzc2lv
bihjb25zdCBRU3RyaW5nJiwgY29uc3QgUVN0cmluZyYsIGMKICAgICAvLyBGSVhNRTogSWYgdGhl
cmUgaXMgYSBjb25jZXB0IHBlci1zZXNzaW9uIChwZXItcHJvY2VzcykgY3JlZGVudGlhbCBzdG9y
YWdlLCB0aGUgY3JlZGVudGlhbHMgc2hvdWxkIGJlIGFkZGVkIHRvIGl0IGZvciBsYXRlciB1c2Uu
CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcihjb25z
dCBRU3RyaW5nJiBlZGl0aW5nQmVoYXZpb3IpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudC4K
K30KKwogY29uc3QgdW5zaWduZWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6Om1heFZpZXdXaWR0aCA9
IDgwMDsKIGNvbnN0IHVuc2lnbmVkIExheW91dFRlc3RDb250cm9sbGVyOjptYXhWaWV3SGVpZ2h0
ID0gNjAwOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0
VGVzdENvbnRyb2xsZXJRdC5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0
VGVzdENvbnRyb2xsZXJRdC5oCmluZGV4IDE2N2JhMDcuLmYzMzZjZjcgMTAwNjQ0Ci0tLSBhL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAorKysg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgK
QEAgLTE5MSw2ICsxOTEsOCBAQCBwdWJsaWMgc2xvdHM6CiAgICAgLy8gU2ltdWxhdGUgYSByZXF1
ZXN0IGFuIGVtYmVkZGluZyBhcHBsaWNhdGlvbiBjb3VsZCBtYWtlLCBwb3B1bGF0aW5nIHBlci1z
ZXNzaW9uIGNyZWRlbnRpYWwgc3RvcmFnZS4KICAgICB2b2lkIGF1dGhlbnRpY2F0ZVNlc3Npb24o
Y29uc3QgUVN0cmluZyYgdXJsLCBjb25zdCBRU3RyaW5nJiB1c2VybmFtZSwgY29uc3QgUVN0cmlu
ZyYgcGFzc3dvcmQpOwogCisgICAgdm9pZCBzZXRFZGl0aW5nQmVoYXZpb3IoY29uc3QgUVN0cmlu
ZyYgZWRpdGluZ0JlaGF2aW9yKTsKKwogcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIHByb2Nlc3NX
b3JrKCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlv
dXRUZXN0Q29udHJvbGxlcldpbi5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93aW4v
TGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCmluZGV4IDExMmIzNTUuLmZkNGY2YTUgMTAwNjQ0
Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxl
cldpbi5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RD
b250cm9sbGVyV2luLmNwcApAQCAtMTI2NywzICsxMjY3LDIwIEBAIHZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnNldFdlYlZpZXdFZGl0YWJsZShib29sKQogdm9pZCBMYXlvdXRUZXN0Q29udHJv
bGxlcjo6YXV0aGVudGljYXRlU2Vzc2lvbihKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYsIEpTU3Ry
aW5nUmVmKQogewogfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVo
YXZpb3IoY29uc3QgY2hhciogZWRpdGluZ0JlaGF2aW9yKQoreworICAgIENPTVB0cjxJV2ViVmll
dz4gd2ViVmlldzsKKyAgICBpZiAoRkFJTEVEKGZyYW1lLT53ZWJWaWV3KCZ3ZWJWaWV3KSkpCisg
ICAgICAgIHJldHVybjsKKworICAgIENPTVB0cjxJV2ViUHJlZmVyZW5jZXM+IHByZWZlcmVuY2Vz
OworICAgIGlmIChGQUlMRUQod2ViVmlldy0+cHJlZmVyZW5jZXMoJnByZWZlcmVuY2VzKSkpCisg
ICAgICAgIHJldHVybjsKKworICAgIHN0cmluZyBiZWhhdmlvclN0cmluZyhlZGl0aW5nQmVoYXZp
b3IpOworICAgIGlmIChiZWhhdmlvclN0cmluZyA9PSAibWFjIikKKyAgICAgICAgcHJlZmVyZW5j
ZXMtPnNldEVkaXRpbmdCZWhhdmlvcihXZWJLaXRFZGl0aW5nTWFjQmVoYXZpb3IpOworICAgIGlm
IChiZWhhdmlvclN0cmluZyA9PSAid2luZG93cyIpCisgICAgICAgIHByZWZlcmVuY2VzLT5zZXRF
ZGl0aW5nQmVoYXZpb3IoV2ViS2l0RWRpdGluZ1dpbmRvd3NCZWhhdmlvcik7Cit9CmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4
LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVy
V3guY3BwCmluZGV4IGJjMTU3YmUuLmQzNGU0MGEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCisrKyBiL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCkBAIC00NDYs
MyArNDQ2LDggQEAgSlNWYWx1ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y29tcHV0ZWRTdHls
ZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEpTQ29udGV4dFJlZiwKIHZvaWQgTGF5b3V0VGVzdENvbnRy
b2xsZXI6OmF1dGhlbnRpY2F0ZVNlc3Npb24oSlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmLCBKU1N0
cmluZ1JlZikKIHsKIH0KKwordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0Jl
aGF2aW9yKEpTU3RyaW5nUmVmIGVkaXRpbmdCZWhhdmlvcikKK3sKKyAgICAvLyBGSVhNRTogSW1w
bGVtZW50Cit9Ci0tIAoxLjYuMy4zCgo=
</data>
<flag name="commit-queue"
          id="40347"
          type_id="3"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56497</attachid>
            <date>2010-05-19 10:11:20 -0700</date>
            <delta_ts>2010-05-19 17:45:01 -0700</delta_ts>
            <desc>Patch (de-nitted)</desc>
            <filename>0001-Expose-the-editing-behavior-setting-in-DRT-to-test-a.patch</filename>
            <type>text/plain</type>
            <size>38064</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">RnJvbSA1MmYzZjBkYjc4MmMyODFjNzExNmE1Y2JkOWIyYzAwOTYyYmE2ZDI1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gUm9iaW5zb24gPG1yb2JpbnNvbkB3ZWJraXQub3Jn
PgpEYXRlOiBXZWQsIDUgTWF5IDIwMTAgMTY6MTg6NTkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBF
eHBvc2UgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRp
dGluZyBjb2RlIHBhdGhzCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzg2MDMKCldlYktpdC9jaHJvbWl1bToKClBhdGNoIGJ5IE1hcnRpbiBSb2JpbnNvbiA8bXJvYmlu
c29uQHdlYmtpdC5vcmc+IG9uIDIwMTAtMDUtMTMKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CgoqIHB1YmxpYy9XZWJTZXR0aW5ncy5oOgooV2ViS2l0OjpXZWJTZXR0aW5nczo6KTogQWRkZWQg
YW4gZW51bSBmb3IgRWRpdGluZ0JlaGF2aW9yIHR5cGVzLgoqIHNyYy9XZWJTZXR0aW5nc0ltcGwu
Y3BwOgooV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZGVk
LgoqIHNyYy9XZWJTZXR0aW5nc0ltcGwuaDoKCldlYktpdC9tYWM6CgpQYXRjaCBieSBNYXJ0aW4g
Um9iaW5zb24gPG1yb2JpbnNvbkB3ZWJraXQub3JnPiBvbiAyMDEwLTA1LTEzClJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgoKKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgooY29yZSk6CiogV2ViVmll
dy9XZWJGcmFtZUludGVybmFsLmg6IEFkZGVkIGEgY29udmVyc2lvbiBtZXRob2QgZnJvbSB0aGUg
QVBJIGVudW0gdG8gdGhlIFdlYkNvcmUgZW51bS4KKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlz
UHJpdmF0ZS5oOiBBZGRlZCBhIHByZWZlcmVuY2Uga2V5IGZvciB0aGUgbmV3IHNldHRpbmcuCiog
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0p
OiBJbml0aWFsaXplIHRoZSBFZGl0aW5nQmVoYXZpb3IgdG8gTWFjIHN0eWxlLgooLVtXZWJQcmVm
ZXJlbmNlcyBlZGl0aW5nQmVoYXZpb3JdKTogQWRkZWQuCigtW1dlYlByZWZlcmVuY2VzIHNldEVk
aXRpbmdCZWhhdmlvcjpdKTogQWRkZWQuCiogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUu
aDogQWRkZWQgdGhlIG5ldyBBUEkgcG9pbnRzIHRvIHRoZSBwcml2YXRlIEFQSS4KKiBXZWJWaWV3
L1dlYlZpZXcubW06CigtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbjpd
KTogU2V0IHRoZSBlZGl0aW5nIGJlaGF2aW9yIHZpYSB0aGUgV2ViUHJlZmVyZW5jZXMgc2V0dGlu
Zy4KCldlYktpdC93aW46CgpQYXRjaCBieSBNYXJ0aW4gUm9iaW5zb24gPG1yb2JpbnNvbkB3ZWJr
aXQub3JnPiBvbiAyMDEwLTA1LTEzClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKRXhwb3Nl
IHRoZSBFZGl0aW5nQmVoYXZpb3Igc2V0dGluZyBpbiB0aGUgV2luZG93cyBBUEkuCgoqIEludGVy
ZmFjZXMvSVdlYlByZWZlcmVuY2VzLmlkbDogQWRkIHRoZSBBUEkgcG9pbnQgZm9yIHNldHRpbmcg
dGhlIGVkaXRpbmcgYmVoYXZpb3IuCiogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZCBh
IGtleSBmb3IgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZy4KKiBXZWJQcmVmZXJlbmNlcy5j
cHA6CihXZWJQcmVmZXJlbmNlczo6ZWRpdGluZ0JlaGF2aW9yKTogQWRkZWQuCihXZWJQcmVmZXJl
bmNlczo6c2V0RWRpdGluZ0JlaGF2aW9yKTogQWRkZWQuCiogV2ViUHJlZmVyZW5jZXMuaDogQWRk
IG1ldGhvZCBkZWNsYXJhdGlvbnMuCiogV2ViVmlldy5jcHA6CihXZWJWaWV3Ojpub3RpZnlQcmVm
ZXJlbmNlc0NoYW5nZWQpOiBVcGRhdGUgdGhlIFdlYkNvcmUgc2V0dGluZyBiYXNlZCBvbiB0aGUg
V2ViUHJlZmVyZW5jZXMgc2V0dGluZy4KCldlYktpdFRvb2xzOgoKUGF0Y2ggYnkgTWFydGluIFJv
Ymluc29uIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4gb24gMjAxMC0wNS0wNgpSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KCiogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3Bw
Ogooc2V0RWRpdGluZ0JlaGF2aW9yQ2FsbGJhY2spOiBBZGRlZC4KKExheW91dFRlc3RDb250cm9s
bGVyOjpzdGF0aWNGdW5jdGlvbnMpOiBFeHBvc2UgdGhlIHNldEVkaXRpbmdCZWhhdmlvckNhbGxi
YWNrIGZ1bmN0aW9uLgoqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmg6Ciog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwOiBBZGQgY2Fs
bGJhY2sgbWV0aG9kIGZvciBzZXR0aW5nIGVkaXRpbmcgYmVoYXZpb3IuCiogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaDogRGVjbGFyYXRpb24gZm9yIHRoaXMg
bWV0aG9kLgoqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHA6
CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTogSW1wbGVtZW50YXRp
b24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgoqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlv
dXRUZXN0Q29udHJvbGxlck1hYy5tbToKKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5n
QmVoYXZpb3IpOiBEaXR0bwoqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuY3BwOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZGVk
IHN0dWIgaW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgoqIER1bXBS
ZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaDoKKExheW91dFRlc3RDb250cm9s
bGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGQgc2xvdCBmb3IgY29udHJvbGxpbmcgZWRpdG9y
IGJlaGF2aW9yLgoqIER1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5j
cHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTogSW1wbGVtZW50
YXRpb24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgoqIER1bXBSZW5kZXJUcmVlL3d4L0xh
eW91dFRlc3RDb250cm9sbGVyV3guY3BwOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRp
bmdCZWhhdmlvcik6IEFkZGVkIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlv
ciBjb250cm9sLgoKTGF5b3V0VGVzdHM6CgpQYXRjaCBieSBNYXJ0aW4gUm9iaW5zb24gPG1yb2Jp
bnNvbkB3ZWJraXQub3JnPiBvbiAyMDEwLTA1LTEzClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgoKKiBlZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGlj
ay5odG1sOiBVc2UgdGhlIG5ldyBEUlQgc3VwcG9ydCBmb3IgY2hhbmdpbmcgZWRpdGluZyBiZWhh
dmlvci4KKiBlZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1j
bGljay1leHBlY3RlZC50eHQ6IFVwZGF0ZSBleHBlY3RlZCByZXN1bHRzIHRvIHJlZmxlY3QgYm90
aCBiZWhhdmlvcnMuCi0tLQogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgfCAgIDEwICsrKysrKysKIC4uLnh0ZW5kLXNlbGVjdGlvbi1hZnRlci1kb3Vi
bGUtY2xpY2stZXhwZWN0ZWQudHh0IHwgICAgMiArCiAuLi4vZXh0ZW5kLXNlbGVjdGlvbi1hZnRl
ci1kb3VibGUtY2xpY2suaHRtbCAgICAgICB8ICAgMjYgKysrKysrKysrKystLS0tLS0KIFdlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxMyArKysr
KysrKysKIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCAgICAgICAgICAgICAg
IHwgICAgNiArKysrCiBXZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3Bw
ICAgICAgICB8ICAgIDUgKysrCiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5j
cHAgICAgICAgICAgICB8ICAgIDUgKysrCiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdz
SW1wbC5oICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViS2l0L21hYy9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE5ICsrKysrKysrKysrKysKIFdlYktpdC9tYWMv
V2ViVmlldy9XZWJGcmFtZS5tbSAgICAgICAgICAgICAgICAgICAgIHwgICAxMiArKysrKysrKwog
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaCAgICAgICAgICAgICAgfCAgICAx
ICsKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCAgICAgIHwg
ICAgMSArCiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gICAgICAgICAgICAg
ICB8ICAgMTEgKysrKysrKwogV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0
ZS5oICAgICAgICAgfCAgICA4ICsrKysrCiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSAg
ICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViS2l0L3dpbi9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE4ICsrKysrKysrKysrKwogV2ViS2l0L3dpbi9J
bnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGwgICAgICAgICAgfCAgICA5ICsrKysrKwogV2Vi
S2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCAgICAgICAgICAgICAgfCAgICAxICsK
IFdlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwICAgICAgICAgICAgICAgICAgICAgIHwgICAx
NSArKysrKysrKysrCiBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmggICAgICAgICAgICAgICAg
ICAgICAgICB8ICAgIDYgKysrKwogV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgfCAgICA2ICsrKysKIFdlYktpdFRvb2xzL0NoYW5nZUxvZyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHwgICAyNiArKysrKysrKysrKysrKysrKwogLi4uL0R1bXBS
ZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCAgICAgICAgfCAgIDI5ICsrKysrKysr
KysrKysrKysrKysrCiBXZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oICB8ICAgIDEgKwogLi4uL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmNwcCAg
ICAgICAgICAgICAgfCAgIDEzICsrKysrKysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmggfCAgICAyICsKIC4uLi9EdW1wUmVuZGVyVHJlZS9ndGsv
TGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwIHwgICAxMiArKysrKysrKwogLi4uL0R1bXBSZW5k
ZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbSAgfCAgIDEwICsrKysrKysKIC4u
Li9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcCAgIHwgICAgNSAr
KysKIC4uLi9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmggICAgIHwg
ICAgMiArCiAuLi4vRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNw
cCB8ICAgMTcgKysrKysrKysrKysKIC4uLi9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29u
dHJvbGxlcld4LmNwcCAgIHwgICAgNSArKysKIDMyIGZpbGVzIGNoYW5nZWQsIDI4OSBpbnNlcnRp
b25zKCspLCA5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4ZDRkMDhhLi4wMjY2MDgyIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTAtMDUtMTkgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3
ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEV4cG9zZSB0aGUgZWRpdGluZyBiZWhhdmlvciBzZXR0aW5nIGluIERSVCB0byB0ZXN0IGFs
bCBlZGl0aW5nIGNvZGUgcGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM4NjAzCisKKyAgICAgICAgKiBlZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQt
c2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGljay5odG1sOiBVc2UgdGhlIG5ldyBEUlQgc3VwcG9y
dCBmb3IgY2hhbmdpbmcgZWRpdGluZyBiZWhhdmlvci4KKyAgICAgICAgKiBlZGl0aW5nL3NlbGVj
dGlvbi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGljay1leHBlY3RlZC50eHQ6IFVw
ZGF0ZSBleHBlY3RlZCByZXN1bHRzIHRvIHJlZmxlY3QgYm90aCBiZWhhdmlvcnMuCisKIDIwMTAt
MDUtMTkgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAg
IE5vdCByZXZpZXdlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9u
L2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNs
aWNrLWV4cGVjdGVkLnR4dAppbmRleCBlZDJkNmE1Li40MzEwNzU5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1j
bGljay1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0
ZW5kLXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2stZXhwZWN0ZWQudHh0CkBAIC01LDMgKzUs
NSBAQCBUaGlzIHRlc3QgZG9lcyBub3QgcnVuIGludGVyYWN0aXZlbHkuIEl0IHVzZXMgdGhlIGV2
ZW50IHNlbmRlciB0byBkbyBtb3VzZSBjbGljawogVGhpcyBpcyBhIHBhcmFncmFwaC4KIAogU1VD
Q0VTUworU1VDQ0VTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlv
bi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGljay5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRt
bAppbmRleCA4OTEwODBiLi40NTliZTU1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9lZGl0aW5n
L3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGljay5odG1sCisrKyBi
L0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91
YmxlLWNsaWNrLmh0bWwKQEAgLTE4LDEzICsxOCwyNSBAQAogICAgICAgICBldmVudFNlbmRlci5s
ZWFwRm9yd2FyZCgxMDAwKTsKICAgICB9CiAKLSAgICBmdW5jdGlvbiBydW5UZXN0KCkKKyAgICBm
dW5jdGlvbiBsb2dSZXN1bHQocmVzdWx0KQorICAgIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCArPSByZXN1bHQgKyAiPGJyLz4iOworICAgIH0K
KworICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKICAgICB7CiAgICAgICAgIGlmICghd2luZG93LmV2
ZW50U2VuZGVyIHx8ICF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgICAgICBy
ZXR1cm47CiAKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogCisg
ICAgICAgIHJ1blRlc3QoIm1hYyIsICJhIHBhcmFncmFwaCIpOworICAgICAgICBydW5UZXN0KCJ3
aW5kb3dzIiwgInBhcmFncmEiKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBydW5UZXN0KGJlaGF2
aW9yLCBleHBlY3RlZFRleHQpCisgICAgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRFZGl0aW5nQmVoYXZpb3IoYmVoYXZpb3IpOwogICAgICAgICBkb3VibGVDbGlja1dvcmQoKTsK
ICAgICAgICAgZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCJleHRlbmQiLCAiYmFja3dhcmQiLCAiY2hh
cmFjdGVyIik7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLm1vZGlmeSgiZXh0ZW5kIiwgImJhY2t3
YXJkIiwgImNoYXJhY3RlciIpOwpAQCAtMzIsMTkgKzQ0LDE1IEBACiAgICAgICAgIGdldFNlbGVj
dGlvbigpLm1vZGlmeSgiZXh0ZW5kIiwgImJhY2t3YXJkIiwgImNoYXJhY3RlciIpOwogICAgICAg
ICBnZXRTZWxlY3Rpb24oKS5tb2RpZnkoImV4dGVuZCIsICJiYWNrd2FyZCIsICJjaGFyYWN0ZXIi
KTsKIAotICAgICAgICB2YXIgcmVzdWx0OwogICAgICAgICB2YXIgc2VsZWN0ZWRUZXh0ID0gZ2V0
U2VsZWN0aW9uKCkudG9TdHJpbmcoKTsKLSAgICAgICAgdmFyIG9uTWFjUGxhdGZvcm0gPSBuYXZp
Z2F0b3IudXNlckFnZW50LnNlYXJjaCgvXGJNYWMgT1MgWFxiLykgIT0gLTE7Ci0gICAgICAgIHZh
ciBleHBlY3RlZFRleHQgPSBvbk1hY1BsYXRmb3JtID8gImEgcGFyYWdyYXBoIiA6ICJwYXJhZ3Jh
IjsKICAgICAgICAgaWYgKHNlbGVjdGVkVGV4dCA9PSBleHBlY3RlZFRleHQpCi0gICAgICAgICAg
ICByZXN1bHQgPSAiU1VDQ0VTUyI7CisgICAgICAgICAgICBsb2dSZXN1bHQoIlNVQ0NFU1MiKTsK
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgcmVzdWx0ID0gIkZBSUxVUkU6IFRoZSBzZWxlY3Rl
ZCB0ZXh0IGlzIFwiIiArIHNlbGVjdGVkVGV4dCArICJcIiBhbmQgc2hvdWxkIGJlIFwiIiArIGV4
cGVjdGVkVGV4dCArICJcIi4iOwotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVz
dWx0IikuZmlyc3RDaGlsZC5kYXRhID0gcmVzdWx0OworICAgICAgICAgICAgbG9nUmVzdWx0KCJG
QUlMVVJFOiBUaGUgc2VsZWN0ZWQgdGV4dCBpcyBcIiIgKyBzZWxlY3RlZFRleHQgKyAiXCIgYW5k
IHNob3VsZCBiZSBcIiIgKyBleHBlY3RlZFRleHQgKyAiXCIuIik7CiAgICAgfQogPC9zY3JpcHQ+
CiA8L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8Ym9keSBvbmxvYWQ9InJ1blRl
c3RzKCkiPgogPHA+VGhpcyB0ZXN0cyBtb2RpZnlpbmcgYSBzZWxlY3Rpb24gY3JlYXRlZCB3aXRo
IGEgZG91YmxlIGNsaWNrIHdpdGggc2hpZnQgYXJyb3cga2V5LjwvcD4KIDxwIHN0eWxlPSJjb2xv
cjpncmVlbiI+CiAgICAgVGhpcyB0ZXN0IGRvZXMgbm90IHJ1biBpbnRlcmFjdGl2ZWx5LgpAQCAt
NTQsNSArNjIsNSBAQAogICAgIFRoZSBzZWxlY3Rpb24gc2hvdWxkIGluY2x1ZGUgdGhlIHdvcmRz
ICJhIHBhcmFncmFwaCIgb24gbWFjIGFuZCAicGFyYWdyYSIgb24gd2luL2xpbnV4Li4KIDwvcD4K
IDxwPlRoaXMgaXMgYSBwYXJhPHNwYW4gc3R5bGU9ImNvbG9yOmJsdWUiIGlkPSJzdGFydCI+Zzwv
c3Bhbj5yYXBoLjwvcD4KLTxwIGlkPSJyZXN1bHQiPlRFU1QgSEFTIE5PVCBSVU48L3A+Cis8cCBp
ZD0icmVzdWx0Ij48L3A+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBhNDMzOTM4Li5hNmUyZTM3
IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMC0wNS0xOSAgTWFydGluIFJvYmlu
c29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRoZSBlZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcg
aW4gRFJUIHRvIHRlc3QgYWxsIGVkaXRpbmcgY29kZSBwYXRocworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2MDMKKworICAgICAgICAqIHB1YmxpYy9X
ZWJTZXR0aW5ncy5oOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nczo6KTogQWRkZWQgYW4g
ZW51bSBmb3IgRWRpdGluZ0JlaGF2aW9yIHR5cGVzLgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5n
c0ltcGwuY3BwOiAKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRFZGl0aW5n
QmVoYXZpb3IpOiBBZGRlZC4KKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CisKIDIw
MTAtMDUtMTcgIEplcmVteSBPcmxvdyAgPGpvcmxvd0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1
YmxpYy9XZWJTZXR0aW5ncy5oIGIvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5o
CmluZGV4IDM1NmQ5ZmEuLjRkOTBjMzkgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViU2V0dGluZ3MuaAorKysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdz
LmgKQEAgLTQzLDYgKzQzLDExIEBAIGNsYXNzIFdlYlVSTDsKIC8vIHRoZXNlIGZ1bmN0aW9ucyBo
YXZlIGEgMToxIG1hcHBpbmcgd2l0aCB0aGUgbWV0aG9kcyBpbiBXZWJDb3JlL3BhZ2Uvc2V0dGlu
Z3MuaC4KIGNsYXNzIFdlYlNldHRpbmdzIHsKIHB1YmxpYzoKKyAgICBlbnVtIEVkaXRpbmdCZWhh
dmlvciB7CisgICAgICAgIEVkaXRpbmdCZWhhdmlvck1hYywKKyAgICAgICAgRWRpdGluZ0JlaGF2
aW9yV2luZG93cworICAgIH07CisKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhbmRhcmRGb250RmFt
aWx5KGNvbnN0IFdlYlN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Rml4ZWRGb250
RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VyaWZG
b250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYpID0gMDsKQEAgLTg0LDYgKzg5LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQo
Ym9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRFeHBlcmltZW50YWxXZWJHTEVuYWJsZWQo
Ym9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93RGVidWdCb3JkZXJzKGJvb2wpID0g
MDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvcikg
PSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgfldlYlNldHRpbmdzKCkgeyB9CmRpZmYgLS1naXQgYS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwIGIvV2ViS2l0L2Nocm9t
aXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAppbmRleCBlN2FlYjQ5Li5iMjFjMmUwIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCisr
KyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAKQEAgLTQxLDYg
KzQxLDcgQEAKICNpbmNsdWRlICJOb3RpZmljYXRpb25QcmVzZW50ZXIuaCIKICNpbmNsdWRlICJQ
YXN0ZWJvYXJkUHJpdmF0ZS5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ3Vyc29yLmgiCisjaW5jbHVk
ZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHJpbmdJbXBsLmgiCiAjaW5jbHVkZSAiVGV4dEFm
ZmluaXR5LmgiCiAjaW5jbHVkZSAiV2ViQWNjZXNzaWJpbGl0eU9iamVjdC5oIgpAQCAtNTIsNiAr
NTMsNyBAQAogI2luY2x1ZGUgIldlYk1lZGlhUGxheWVyLmgiCiAjaW5jbHVkZSAiV2ViTm90aWZp
Y2F0aW9uUHJlc2VudGVyLmgiCiAjaW5jbHVkZSAiV2ViU2Nyb2xsYmFyLmgiCisjaW5jbHVkZSAi
V2ViU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJUZXh0QWZmaW5pdHkuaCIKICNpbmNsdWRlICJX
ZWJUZXh0Q2FzZVNlbnNpdGl2aXR5LmgiCiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KQEAg
LTMwMCw2ICszMDIsOSBAQCBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlNjcm9sbGJh
cjo6U2Nyb2xsQnlQYWdlLCBTY3JvbGxCeVBhZ2UpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdf
RU5VTShXZWJTY3JvbGxiYXI6OlNjcm9sbEJ5RG9jdW1lbnQsIFNjcm9sbEJ5RG9jdW1lbnQpOwog
Q09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJTY3JvbGxiYXI6OlNjcm9sbEJ5UGl4ZWws
IFNjcm9sbEJ5UGl4ZWwpOwogCitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlNldHRp
bmdzOjpFZGl0aW5nQmVoYXZpb3JNYWMsIEVkaXRpbmdNYWNCZWhhdmlvcik7CitDT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdlYlNldHRpbmdzOjpFZGl0aW5nQmVoYXZpb3JXaW5kb3dzLCBF
ZGl0aW5nV2luZG93c0JlaGF2aW9yKTsKKwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
ZWJUZXh0QWZmaW5pdHlVcHN0cmVhbSwgVVBTVFJFQU0pOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJ
TkdfRU5VTShXZWJUZXh0QWZmaW5pdHlEb3duc3RyZWFtLCBET1dOU1RSRUFNKTsKIApkaWZmIC0t
Z2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCmluZGV4IDNhZGYzYWMuLmUxNTAzNzEgMTAw
NjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAorKysgYi9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKQEAgLTI2OSw0ICsyNjksOSBA
QCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0U2hvd0RlYnVnQm9yZGVycyhib29sIHNob3cpCiAg
ICAgbV9zZXR0aW5ncy0+c2V0U2hvd0RlYnVnQm9yZGVycyhzaG93KTsKIH0KIAordm9pZCBXZWJT
ZXR0aW5nc0ltcGw6OnNldEVkaXRpbmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3IgYmVoYXZpb3Ip
Cit7CisgICAgbV9zZXR0aW5ncy0+c2V0RWRpdGluZ0JlaGF2aW9yKHN0YXRpY19jYXN0PEVkaXRp
bmdCZWhhdmlvcj4oYmVoYXZpb3IpKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYg
LS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oIGIvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAppbmRleCBmZGMwM2YwLi4wYTkwMDkxIDEwMDY0
NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCisrKyBiL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKQEAgLTg1LDYgKzg1LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQo
Ym9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldEV4cGVyaW1lbnRhbFdlYkdMRW5hYmxlZChib29s
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd0RlYnVnQm9yZGVycyhib29sKTsKKyAgICB2aXJ0
dWFsIHZvaWQgc2V0RWRpdGluZ0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvcik7CiAKIHByaXZhdGU6
CiAgICAgV2ViQ29yZTo6U2V0dGluZ3MqIG1fc2V0dGluZ3M7CmRpZmYgLS1naXQgYS9XZWJLaXQv
bWFjL0NoYW5nZUxvZyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGE5OTBhNTAuLjUxYWM4
MTggMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTAtMDUtMTkgIE1hcnRpbiBSb2JpbnNvbiAgPG1y
b2JpbnNvbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEV4cG9zZSB0aGUgZWRpdGluZyBiZWhhdmlvciBzZXR0aW5nIGluIERSVCB0
byB0ZXN0IGFsbCBlZGl0aW5nIGNvZGUgcGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NjAzCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1l
Lm1tOgorICAgICAgICAoY29yZSk6CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZUludGVybmFs
Lmg6IEFkZGVkIGEgY29udmVyc2lvbiBtZXRob2QgZnJvbSB0aGUgQVBJIGVudW0gdG8gdGhlIFdl
YkNvcmUgZW51bS4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5o
OiBBZGRlZCBhIHByZWZlcmVuY2Uga2V5IGZvciB0aGUgbmV3IHNldHRpbmcuCisgICAgICAgICog
V2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5p
dGlhbGl6ZV0pOiBJbml0aWFsaXplIHRoZSBFZGl0aW5nQmVoYXZpb3IgdG8gTWFjIHN0eWxlLgor
ICAgICAgICAoLVtXZWJQcmVmZXJlbmNlcyBlZGl0aW5nQmVoYXZpb3JdKTogQWRkZWQuCisgICAg
ICAgICgtW1dlYlByZWZlcmVuY2VzIHNldEVkaXRpbmdCZWhhdmlvcjpdKTogQWRkZWQuCisgICAg
ICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaDogQWRkZWQgdGhlIG5ldyBBUEkg
cG9pbnRzIHRvIHRoZSBwcml2YXRlIEFQSS4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06
CisgICAgICAgICgtW1dlYlZpZXcgX3ByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbjpdKTog
U2V0IHRoZSBlZGl0aW5nIGJlaGF2aW9yIHZpYSB0aGUgV2ViUHJlZmVyZW5jZXMgc2V0dGluZy4K
KwogMjAxMC0wNS0xOCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkZyYW1lLm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IDc1NDVi
ZDguLjgyZDI3MmIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQor
KysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0KQEAgLTE5Niw2ICsxOTYsMTggQEAg
RWRpdGFibGVMaW5rQmVoYXZpb3IgY29yZShXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciBlZGl0
YWJsZUxpbmtCZWhhdmlvcikKICAgICByZXR1cm4gRWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9y
OwogfQogCitXZWJDb3JlOjpFZGl0aW5nQmVoYXZpb3IgY29yZShXZWJLaXRFZGl0aW5nQmVoYXZp
b3IgYmVoYXZpb3IpCit7CisgICAgc3dpdGNoIChiZWhhdmlvcikgeworICAgICAgICBjYXNlIFdl
YktpdEVkaXRpbmdNYWNCZWhhdmlvcjoKKyAgICAgICAgICAgIHJldHVybiBXZWJDb3JlOjpFZGl0
aW5nTWFjQmVoYXZpb3I7CisgICAgICAgIGNhc2UgV2ViS2l0RWRpdGluZ1dpbmRvd3NCZWhhdmlv
cjoKKyAgICAgICAgICAgIHJldHVybiBXZWJDb3JlOjpFZGl0aW5nV2luZG93c0JlaGF2aW9yOwor
ICAgIH0KKyAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6RWRp
dGluZ01hY0JlaGF2aW9yOworfQorCiBUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2
aW9yIGNvcmUoV2ViVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciBiZWhhdmlv
cikKIHsKICAgICBzd2l0Y2ggKGJlaGF2aW9yKSB7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50
ZXJuYWwuaAppbmRleCA0YzFlZTQwLi45YjIyNDhhIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFt
ZUludGVybmFsLmgKQEAgLTcxLDYgKzcxLDcgQEAgV2ViVmlldyAqa2l0KFdlYkNvcmU6OlBhZ2Uq
KTsKIAogV2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3IgY29yZShXZWJLaXRFZGl0YWJsZUxp
bmtCZWhhdmlvcik7CiBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2
aW9yIGNvcmUoV2ViVGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcik7CitXZWJD
b3JlOjpFZGl0aW5nQmVoYXZpb3IgY29yZShXZWJLaXRFZGl0aW5nQmVoYXZpb3IpOwogCiBXZWJW
aWV3ICpnZXRXZWJWaWV3KFdlYkZyYW1lICp3ZWJGcmFtZSk7CiAKZGlmZiAtLWdpdCBhL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAppbmRleCAwZDE1NDZmLi5iYTRkZjhmIDEw
MDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgK
KysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC0x
MDUsNiArMTA1LDcgQEAKICNkZWZpbmUgV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3JQcmVmZXJl
bmNlS2V5IEAiV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IiCiAjZGVmaW5lIFdlYktpdENhY2hl
TW9kZWxQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q2FjaGVNb2RlbFByZWZlcmVuY2VLZXkiCiAjZGVm
aW5lIFdlYktpdFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3JQcmVmZXJlbmNl
S2V5IEAiV2ViS2l0VGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvclByZWZlcmVu
Y2VLZXkiCisjZGVmaW5lIFdlYktpdEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXkgQCJXZWJL
aXRFZGl0aW5nQmVoYXZpb3IiCiAKIC8vIENvcmVHcmFwaGljcyBkZWZlcnJlZCB1cGRhdGVzIGFy
ZSBkaXNhYmxlZCBpZiBXZWJLaXRFbmFibGVDb2FsZXNjZWRVcGRhdGVzUHJlZmVyZW5jZUtleSBp
cyBzZXQKIC8vIHRvIE5PLCBvciBoYXMgbm8gdmFsdWUuICBGb3IgY29tcGF0aWJpbGl0eSB3aXRo
IE1hYyBPUyBYIDEwLjQuNiwgZGVmZXJyZWQgdXBkYXRlcyBhcmUgT0ZGIGJ5CmRpZmYgLS1naXQg
YS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0gYi9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViUHJlZmVyZW5jZXMubW0KaW5kZXggNDI3ZjZmZS4uYWM5ODI4MiAxMDA2NDQKLS0tIGEv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCisrKyBiL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbQpAQCAtMzM0LDYgKzMzNCw3IEBAIHN0YXRpYyBXZWJDYWNo
ZU1vZGVsIGNhY2hlTW9kZWxGb3JNYWluQnVuZGxlKHZvaWQpCiAgICAgICAgIEAiMCIsICAgICAg
ICAgICAgICAgICAgICAgICAgICAgV2ViS2l0UERGU2NhbGVGYWN0b3JQcmVmZXJlbmNlS2V5LAog
ICAgICAgICBAIjAiLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFVzZVNpdGVTcGVj
aWZpY1Nwb29maW5nUHJlZmVyZW5jZUtleSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhJ
bnQ6V2ViS2l0RWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yXSwgV2ViS2l0RWRpdGFibGVMaW5r
QmVoYXZpb3JQcmVmZXJlbmNlS2V5LAorICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpX
ZWJLaXRFZGl0aW5nTWFjQmVoYXZpb3JdLCBXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJlbmNl
S2V5LAogI2lmICFkZWZpbmVkKEJVSUxESU5HX09OX1RJR0VSKSAmJiAhZGVmaW5lZChCVUlMRElO
R19PTl9MRU9QQVJEKQogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpXZWJUZXh0RGly
ZWN0aW9uU3VibWVudUF1dG9tYXRpY2FsbHlJbmNsdWRlZF0sCiAjZWxzZQpAQCAtMTI0Nyw2ICsx
MjQ4LDE2IEBAIHN0YXRpYyBOU1N0cmluZyAqY2xhc3NJQkNyZWF0b3JJRCA9IG5pbDsKICAgICBb
c2VsZiBfc2V0Qm9vbFZhbHVlOmZsYWcgZm9yS2V5OldlYktpdEhUTUw1UGFyc2VyRW5hYmxlZFBy
ZWZlcmVuY2VLZXldOwogfQogCistIChXZWJLaXRFZGl0aW5nQmVoYXZpb3IpZWRpdGluZ0JlaGF2
aW9yCit7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFdlYktpdEVkaXRpbmdCZWhhdmlvcj4oW3Nl
bGYgX2ludGVnZXJWYWx1ZUZvcktleTpXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJlbmNlS2V5
XSk7Cit9CisKKy0gKHZvaWQpc2V0RWRpdGluZ0JlaGF2aW9yOihXZWJLaXRFZGl0aW5nQmVoYXZp
b3IpYmVoYXZpb3IKK3sKKyAgICBbc2VsZiBfc2V0SW50ZWdlclZhbHVlOmJlaGF2aW9yIGZvcktl
eTpXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJlbmNlS2V5XTsKK30KKwogLSAodm9pZClkaWRS
ZW1vdmVGcm9tV2ViVmlldwogewogICAgIEFTU0VSVChfcHJpdmF0ZS0+bnVtV2ViVmlld3MpOwpk
aWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oIGIv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IDdhMTQ5MWMu
LjM3ZDBmZmQgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlc1By
aXZhdGUuaAorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgK
QEAgLTQzLDYgKzQzLDExIEBAIHR5cGVkZWYgZW51bSB7CiAgICAgV2ViVGV4dERpcmVjdGlvblN1
Ym1lbnVBbHdheXNJbmNsdWRlZAogfSBXZWJUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJl
aGF2aW9yOwogCit0eXBlZGVmIGVudW0geworICAgIFdlYktpdEVkaXRpbmdNYWNCZWhhdmlvciwK
KyAgICBXZWJLaXRFZGl0aW5nV2luZG93c0JlaGF2aW9yLAorfSBXZWJLaXRFZGl0aW5nQmVoYXZp
b3I7CisKIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9u
OwogZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNlc1JlbW92ZWROb3RpZmljYXRpb247CiAK
QEAgLTEyOSw2ICsxMzQsOSBAQCBleHRlcm4gTlNTdHJpbmcgKldlYlByZWZlcmVuY2VzUmVtb3Zl
ZE5vdGlmaWNhdGlvbjsKIC0gKFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yKWVkaXRhYmxlTGlu
a0JlaGF2aW9yOwogLSAodm9pZClzZXRFZGl0YWJsZUxpbmtCZWhhdmlvcjooV2ViS2l0RWRpdGFi
bGVMaW5rQmVoYXZpb3IpYmVoYXZpb3I7CiAKKy0gKFdlYktpdEVkaXRpbmdCZWhhdmlvcillZGl0
aW5nQmVoYXZpb3I7CistICh2b2lkKXNldEVkaXRpbmdCZWhhdmlvcjooV2ViS2l0RWRpdGluZ0Jl
aGF2aW9yKWJlaGF2aW9yOworCiAtIChXZWJUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJl
aGF2aW9yKXRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I7CiAtICh2b2lkKXNl
dFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I6KFdlYlRleHREaXJlY3Rpb25T
dWJtZW51SW5jbHVzaW9uQmVoYXZpb3IpYmVoYXZpb3I7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KaW5k
ZXggY2QxNjQ3MS4uODM3ZTkwOCAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZp
ZXcubW0KKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KQEAgLTEzNjgsNiArMTM2
OCw3IEBAIHN0YXRpYyBib29sIGZhc3REb2N1bWVudFRlYXJkb3duRW5hYmxlZCgpCiAgICAgc2V0
dGluZ3MtPnNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShbcHJlZmVyZW5jZXMgdGV4dEFyZWFzQXJl
UmVzaXphYmxlXSk7CiAgICAgc2V0dGluZ3MtPnNldFNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9G
aXQoW3ByZWZlcmVuY2VzIHNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXRdKTsKICAgICBzZXR0
aW5ncy0+c2V0RWRpdGFibGVMaW5rQmVoYXZpb3IoY29yZShbcHJlZmVyZW5jZXMgZWRpdGFibGVM
aW5rQmVoYXZpb3JdKSk7CisgICAgc2V0dGluZ3MtPnNldEVkaXRpbmdCZWhhdmlvcihjb3JlKFtw
cmVmZXJlbmNlcyBlZGl0aW5nQmVoYXZpb3JdKSk7CiAgICAgc2V0dGluZ3MtPnNldFRleHREaXJl
Y3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IoY29yZShbcHJlZmVyZW5jZXMgdGV4dERpcmVj
dGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcl0pKTsKICAgICBzZXR0aW5ncy0+c2V0RE9NUGFz
dGVBbGxvd2VkKFtwcmVmZXJlbmNlcyBpc0RPTVBhc3RlQWxsb3dlZF0pOwogICAgIHNldHRpbmdz
LT5zZXRVc2VzUGFnZUNhY2hlKFtzZWxmIHVzZXNQYWdlQ2FjaGVdKTsKZGlmZiAtLWdpdCBhL1dl
YktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKaW5kZXggYTY3ZTEwZi4u
MjA5MjI2NSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dp
bi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMC0wNS0xOSAgTWFydGluIFJvYmluc29u
ICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRoZSBlZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcgaW4g
RFJUIHRvIHRlc3QgYWxsIGVkaXRpbmcgY29kZSBwYXRocworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2MDMKKworICAgICAgICBFeHBvc2UgdGhlIEVk
aXRpbmdCZWhhdmlvciBzZXR0aW5nIGluIHRoZSBXaW5kb3dzIEFQSS4KKworICAgICAgICAqIElu
dGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzLmlkbDogQWRkIHRoZSBBUEkgcG9pbnQgZm9yIHNldHRp
bmcgdGhlIGVkaXRpbmcgYmVoYXZpb3IuCisgICAgICAgICogV2ViUHJlZmVyZW5jZUtleXNQcml2
YXRlLmg6IEFkZCBhIGtleSBmb3IgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZy4KKyAgICAg
ICAgKiBXZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6ZWRpdGlu
Z0JlaGF2aW9yKTogQWRkZWQuCisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6c2V0RWRpdGluZ0Jl
aGF2aW9yKTogQWRkZWQuCisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuaDogQWRkIG1ldGhvZCBk
ZWNsYXJhdGlvbnMuCisgICAgICAgICogV2ViVmlldy5jcHA6CisgICAgICAgIChXZWJWaWV3Ojpu
b3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOiBVcGRhdGUgdGhlIFdlYkNvcmUgc2V0dGluZyBiYXNl
ZCBvbiB0aGUgV2ViUHJlZmVyZW5jZXMgc2V0dGluZy4KKwogMjAxMC0wNS0xMyAgQnJpYW4gV2Vp
bnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGlt
IEhhdGNoZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVu
Y2VzLmlkbCBiL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXMuaWRsCmluZGV4
IDFjNDMxMzUuLmZmMzBhMDMgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2Vi
UHJlZmVyZW5jZXMuaWRsCisrKyBiL1dlYktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5j
ZXMuaWRsCkBAIC00Nyw2ICs0NywxMiBAQCB0eXBlZGVmIGVudW0gV2ViS2l0RWRpdGFibGVMaW5r
QmVoYXZpb3IgewogICAgIFdlYktpdEVkaXRhYmxlTGlua05ldmVyTGl2ZQogfSBXZWJLaXRFZGl0
YWJsZUxpbmtCZWhhdmlvcjsKIAordHlwZWRlZiBlbnVtIFdlYktpdEVkaXRpbmdCZWhhdmlvciB7
CisgICAgV2ViS2l0RWRpdGluZ01hY0JlaGF2aW9yID0gMCwKKyAgICBXZWJLaXRFZGl0aW5nV2lu
ZG93c0JlaGF2aW9yLAorfSBXZWJLaXRFZGl0aW5nQmVoYXZpb3I7CisKKwogdHlwZWRlZiBlbnVt
IFdlYktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kgewogICAgIFdlYktpdENvb2tpZVN0b3Jh
Z2VBY2NlcHRQb2xpY3lBbHdheXMgPSAwLAogICAgIFdlYktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQ
b2xpY3lOZXZlciwKQEAgLTE2Miw2ICsxNjgsOSBAQCBpbnRlcmZhY2UgSVdlYlByZWZlcmVuY2Vz
IDogSVVua25vd24KICAgICBIUkVTVUxUIGVkaXRhYmxlTGlua0JlaGF2aW9yKFtvdXQsIHJldHZh
bF0gV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IqIGVkaXRhYmxlTGlua0JlaGF2aW9yKTsKICAg
ICBIUkVTVUxUIHNldEVkaXRhYmxlTGlua0JlaGF2aW9yKFtpbl0gV2ViS2l0RWRpdGFibGVMaW5r
QmVoYXZpb3IgYmVoYXZpb3IpOwogCisgICAgSFJFU1VMVCBlZGl0aW5nQmVoYXZpb3IoW291dCwg
cmV0dmFsXSBXZWJLaXRFZGl0aW5nQmVoYXZpb3IqIGVkaXRpbmdCZWhhdmlvcik7CisgICAgSFJF
U1VMVCBzZXRFZGl0aW5nQmVoYXZpb3IoW2luXSBXZWJLaXRFZGl0aW5nQmVoYXZpb3IgYmVoYXZp
b3IpOworCiAgICAgSFJFU1VMVCBjb29raWVTdG9yYWdlQWNjZXB0UG9saWN5KFtvdXQsIHJldHZh
bF0gV2ViS2l0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeSogYWNjZXB0UG9saWN5KTsKICAgICBI
UkVTVUxUIHNldENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3koW2luXSBXZWJLaXRDb29raWVTdG9y
YWdlQWNjZXB0UG9saWN5IGFjY2VwdFBvbGljeSk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4v
V2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VLZXlz
UHJpdmF0ZS5oCmluZGV4IGM0OWE5NmQuLmRhNjM3NTQgMTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4v
V2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNl
S2V5c1ByaXZhdGUuaApAQCAtNzQsNiArNzQsNyBAQAogI2RlZmluZSBXZWJLaXRQREZEaXNwbGF5
TW9kZVByZWZlcmVuY2VLZXkgIldlYktpdFBERkRpc3BsYXlNb2RlIgogI2RlZmluZSBXZWJLaXRQ
REZTY2FsZUZhY3RvclByZWZlcmVuY2VLZXkgIldlYktpdFBERlNjYWxlRmFjdG9yIgogI2RlZmlu
ZSBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvclByZWZlcmVuY2VLZXkgIldlYktpdEVkaXRhYmxl
TGlua0JlaGF2aW9yIgorI2RlZmluZSBXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJlbmNlS2V5
ICJXZWJLaXRFZGl0aW5nQmVoYXZpb3IiCiAKIC8vIFdpbmRvdyBkaXNwbGF5IGlzIHRocm90dGxl
ZCB0byA2MCBmcmFtZXMgcGVyIHNlY29uZCBpZiBXZWJLaXRUaHJvdHRsZVdpbmRvd0Rpc3BsYXlQ
cmVmZXJlbmNlS2V5CiAvLyBpcyBzZXQgdG8gWUVTLiAgVGhlIHdpbmRvdyBkaXNwbGF5IHRocm90
dGxlIGlzIE9GRiBieSBkZWZhdWx0IGZvciBjb21wYXRpYmlsaXR5IHdpdGggTWFjIE9TIFgKZGlm
ZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuY3BwIGIvV2ViS2l0L3dpbi9XZWJQ
cmVmZXJlbmNlcy5jcHAKaW5kZXggMzNlOTA0ZC4uM2U3ZWE0MiAxMDA2NDQKLS0tIGEvV2ViS2l0
L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5j
cHAKQEAgLTExMzAsNiArMTEzMCwyMSBAQCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlBy
ZWZlcmVuY2VzOjpzZXRFZGl0YWJsZUxpbmtCZWhhdmlvcigKICAgICByZXR1cm4gU19PSzsKIH0K
IAorSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6ZWRpdGluZ0JlaGF2
aW9yKAorICAgIC8qIFtvdXQsIHJldHZhbF0gKi8gV2ViS2l0RWRpdGluZ0JlaGF2aW9yKiBlZGl0
aW5nQmVoYXZpb3IpCit7CisgICAgKmVkaXRpbmdCZWhhdmlvciA9IChXZWJLaXRFZGl0aW5nQmVo
YXZpb3IpIGludGVnZXJWYWx1ZUZvcktleShDRlNUUihXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVm
ZXJlbmNlS2V5KSk7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgV2ViUHJlZmVyZW5jZXM6OnNldEVkaXRpbmdCZWhhdmlvcigKKyAgICAvKiBbaW5dICov
IFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yIGJlaGF2aW9yKQoreworICAgIHNldEludGVnZXJW
YWx1ZShDRlNUUihXZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJlbmNlS2V5KSwgYmVoYXZpb3Ip
OworICAgIHJldHVybiBTX09LOworfQorCisKIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2Vi
UHJlZmVyZW5jZXM6OmNvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3koIAogICAgICAgICAvKiBbcmV0
dmFsXVtvdXRdICovIFdlYktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kgKmFjY2VwdFBvbGlj
eSApCiB7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmggYi9XZWJLaXQv
d2luL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggY2ZkZWZhOC4uMWVhNjljNyAxMDA2NDQKLS0tIGEv
V2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBiL1dlYktpdC93aW4vV2ViUHJlZmVyZW5j
ZXMuaApAQCAtMjM4LDYgKzIzOCwxMiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIHNldEVkaXRhYmxlTGlua0JlaGF2aW9yKCAKICAgICAgICAgLyogW2lu
XSAqLyBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciBiZWhhdmlvcik7CiAKKyAgICB2aXJ0dWFs
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZWRpdGluZ0JlaGF2aW9yKAorICAgICAgICAvKiBb
cmV0dmFsXVtvdXRdICovIFdlYktpdEVkaXRpbmdCZWhhdmlvciogYmVoYXZpb3IpOworCisgICAg
dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEVkaXRpbmdCZWhhdmlvcigKKyAg
ICAgICAgLyogW2luXSAqLyBXZWJLaXRFZGl0aW5nQmVoYXZpb3IgYmVoYXZpb3IpOworCiAgICAg
dmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGNvb2tpZVN0b3JhZ2VBY2NlcHRQb2xp
Y3koIAogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIFdlYktpdENvb2tpZVN0b3JhZ2VBY2Nl
cHRQb2xpY3kgKmFjY2VwdFBvbGljeSk7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dp
bi9XZWJWaWV3LmNwcCBiL1dlYktpdC93aW4vV2ViVmlldy5jcHAKaW5kZXggMWZiZDhkMy4uMTMz
Yzk3NyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcAorKysgYi9XZWJLaXQvd2lu
L1dlYlZpZXcuY3BwCkBAIC00NTkzLDYgKzQ1OTMsMTIgQEAgSFJFU1VMVCBXZWJWaWV3Ojpub3Rp
ZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNhdGlvbiogbm90aWZpY2F0aW9uKQogICAg
ICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3MtPnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKChF
ZGl0YWJsZUxpbmtCZWhhdmlvciliZWhhdmlvcik7CiAKKyAgICBXZWJLaXRFZGl0aW5nQmVoYXZp
b3IgYmVoYXZpb3I7CisgICAgaHIgPSBwcmVmZXJlbmNlcy0+ZWRpdGluZ0JlaGF2aW9yKCZiZWhh
dmlvcik7CisgICAgaWYgKEZBSUxFRChocikpCisgICAgICAgIHJldHVybiBocjsKKyAgICBzZXR0
aW5ncy0+c2V0RWRpdGluZ0JlaGF2aW9yKChFZGl0aW5nQmVoYXZpb3IpYmVoYXZpb3IpOworCiAg
ICAgaHIgPSBwcmVmZXJlbmNlcy0+dXNlc1BhZ2VDYWNoZSgmZW5hYmxlZCk7CiAgICAgaWYgKEZB
SUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0No
YW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwppbmRleCA3ZTA1MDUyLi4wZTNmYjlmIDEw
MDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDUtMTkgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2Jp
bnNvbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEV4cG9zZSB0aGUgZWRpdGluZyBiZWhhdmlvciBzZXR0aW5nIGluIERSVCB0byB0
ZXN0IGFsbCBlZGl0aW5nIGNvZGUgcGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTM4NjAzCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChzZXRFZGl0aW5nQmVoYXZpb3JDYWxsYmFj
ayk6IEFkZGVkLgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9u
cyk6IEV4cG9zZSB0aGUgc2V0RWRpdGluZ0JlaGF2aW9yQ2FsbGJhY2sgZnVuY3Rpb24uCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6IEFkZCBjYWxs
YmFjayBtZXRob2QgZm9yIHNldHRpbmcgZWRpdGluZyBiZWhhdmlvci4KKyAgICAgICAgKiBEdW1w
UmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oOiBEZWNsYXJhdGlvbiBm
b3IgdGhpcyBtZXRob2QuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RD
b250cm9sbGVyR3RrLmNwcDogCisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRp
dGluZ0JlaGF2aW9yKTogSW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250cm9s
LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5t
bToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBE
aXR0bworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQu
Y3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6
IEFkZGVkIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaDoKKyAg
ICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGQgc2xv
dCBmb3IgY29udHJvbGxpbmcgZWRpdG9yIGJlaGF2aW9yLgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0
Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTogSW1wbGVtZW50YXRpb24gb2YgZWRpdGlu
ZyBiZWhhdmlvciBjb250cm9sLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRl
c3RDb250cm9sbGVyV3guY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVk
aXRpbmdCZWhhdmlvcik6IEFkZGVkIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhh
dmlvciBjb250cm9sLgorCiAyMDEwLTA1LTE4ICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQg
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAgYi9X
ZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXgg
ZjU2NGFmYS4uZTk0MDdmZCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUv
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVl
L0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMzEsNiArMzEsNyBAQAogCiAjaW5jbHVkZSAi
V29ya1F1ZXVlLmgiCiAjaW5jbHVkZSAiV29ya1F1ZXVlSXRlbS5oIgorI2luY2x1ZGUgPGNzdHJp
bmc+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDb250ZXh0UmVmLmg+CiAjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSlNPYmplY3RSZWYuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9K
U1JldGFpblB0ci5oPgpAQCAtMTQ1Myw2ICsxNDU0LDMzIEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGF1
dGhlbnRpY2F0ZVNlc3Npb25DYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RS
ZWYsCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCitzdGF0
aWMgSlNWYWx1ZVJlZiBzZXRFZGl0aW5nQmVoYXZpb3JDYWxsYmFjayhKU0NvbnRleHRSZWYgY29u
dGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVf
dCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVm
KiBleGNlcHRpb24pCit7CisgICAgLy8gVGhlIGVkaXRpbmcgYmVoYXZpb3Igc3RyaW5nLgorICAg
IGlmIChhcmd1bWVudENvdW50IDwgMSkKKyAgICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOworCisgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGVkaXRpbmdCZWhh
dmlvcihBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0LCBhcmd1bWVudHNbMF0sIGV4
Y2VwdGlvbikpOworICAgIEFTU0VSVCghKmV4Y2VwdGlvbik7CisKKyAgICBzaXplX3QgbWF4TGVu
Z3RoID0gSlNTdHJpbmdHZXRNYXhpbXVtVVRGOENTdHJpbmdTaXplKGVkaXRpbmdCZWhhdmlvci5n
ZXQoKSk7CisgICAgY2hhciogYmVoYXZpb3JCdWZmZXIgPSBuZXcgY2hhclttYXhMZW5ndGggKyAx
XTsKKyAgICBKU1N0cmluZ0dldFVURjhDU3RyaW5nKGVkaXRpbmdCZWhhdmlvci5nZXQoKSwgYmVo
YXZpb3JCdWZmZXIsIG1heExlbmd0aCk7CisKKyAgICBpZiAoc3RyY21wKGJlaGF2aW9yQnVmZmVy
LCAibWFjIikgJiYgc3RyY21wKGJlaGF2aW9yQnVmZmVyLCAid2luZG93cyIpKSB7CisgICAgICAg
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBpbnZhbGlkQXJndW1lbnQoSlNTdHJpbmdDcmVhdGVX
aXRoVVRGOENTdHJpbmcoIlBhc3NlZCBpbnZhbGlkIGVkaXRpbmcgYmVoYXZpb3IuIE11c3QgYmUg
J21hYycgb3IgJ3dpbmRvd3MnLiIpKTsKKyAgICAgICAgKmV4Y2VwdGlvbiA9IEpTVmFsdWVNYWtl
U3RyaW5nKGNvbnRleHQsIGludmFsaWRBcmd1bWVudC5nZXQoKSk7CisgICAgICAgIHJldHVybiBK
U1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKyAgICB9CisKKyAgICBMYXlvdXRUZXN0Q29u
dHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RDb250cm9sbGVyKj4o
SlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKyAgICBjb250cm9sbGVyLT5zZXRFZGl0
aW5nQmVoYXZpb3IoYmVoYXZpb3JCdWZmZXIpOworCisgICAgZGVsZXRlIFtdIGJlaGF2aW9yQnVm
ZmVyOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworfQorCiAv
LyBTdGF0aWMgVmFsdWVzCiAKIHN0YXRpYyBKU1ZhbHVlUmVmIGdldEdsb2JhbEZsYWdDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgSlNTdHJpbmdS
ZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCkBAIC0xNjAyLDYgKzE2MzAs
NyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c3RhdGljRnVuY3Rp
b25zKCkKICAgICAgICAgeyAic2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUiLCBzZXRDdXN0b21Qb2xp
Y3lEZWxlZ2F0ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldERhdGFiYXNlUXVvdGEi
LCBzZXREYXRhYmFzZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCiAgICAgICAgIHsgInNldERvbWFp
blJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUiLCBzZXREb21haW5SZWxheGF0aW9uRm9y
YmlkZGVuRm9yVVJMU2NoZW1lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAgeyAic2V0RWRpdGlu
Z0JlaGF2aW9yIiwgc2V0RWRpdGluZ0JlaGF2aW9yQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAg
eyAic2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCIsIHNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWRD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRHZW9sb2NhdGlvblBlcm1pc3Npb24iLCBz
ZXRHZW9sb2NhdGlvblBlcm1pc3Npb25DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRI
YW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzIiwgc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCBjNmRhMmZmLi44ZmYzOGQxIDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5o
CisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgK
QEAgLTk5LDYgKzk5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RnJhbWVGbGF0dGVuaW5nRW5h
YmxlZChib29sIGVuYWJsZSk7CiAgICAgdm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQo
Ym9vbCBlbmFibGUpOwogICAgIHZvaWQgc2V0U2Nyb2xsYmFyUG9saWN5KEpTU3RyaW5nUmVmIG9y
aWVudGF0aW9uLCBKU1N0cmluZ1JlZiBwb2xpY3kpOworICAgIHZvaWQgc2V0RWRpdGluZ0JlaGF2
aW9yKGNvbnN0IGNoYXIqIGVkaXRpbmdCZWhhdmlvcik7CiAKICAgICB2b2lkIHdhaXRGb3JQb2xp
Y3lEZWxlZ2F0ZSgpOwogICAgIHNpemVfdCB3ZWJIaXN0b3J5SXRlbUNvdW50KCk7CmRpZmYgLS1n
aXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29udHJv
bGxlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHAKaW5kZXggYzQ1OTEzNi4uZWY0ZWYzNiAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisr
KyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmNwcApAQCAtMTU5LDYgKzE1OSw3IEBAIExheW91dFRlc3RDb250cm9sbGVyOjpMYXlvdXRU
ZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRob2QoInNldFRpbWVs
aW5lUHJvZmlsaW5nRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0VGltZWxpbmVQ
cm9maWxpbmdFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJldmFsdWF0ZUluV2ViSW5zcGVjdG9y
IiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpldmFsdWF0ZUluV2ViSW5zcGVjdG9yKTsKICAgICBi
aW5kTWV0aG9kKCJmb3JjZVJlZFNlbGVjdGlvbkNvbG9ycyIsICZMYXlvdXRUZXN0Q29udHJvbGxl
cjo6Zm9yY2VSZWRTZWxlY3Rpb25Db2xvcnMpOworICAgIGJpbmRNZXRob2QoInNldEVkaXRpbmdC
ZWhhdmlvciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTsKIAog
ICAgIC8vIFRoZSBmYWxsYmFjayBtZXRob2QgaXMgY2FsbGVkIHdoZW4gYW4gdW5rbm93biBtZXRo
b2QgaXMgaW52b2tlZC4KICAgICBiaW5kRmFsbGJhY2tNZXRob2QoJkxheW91dFRlc3RDb250cm9s
bGVyOjpmYWxsYmFja01ldGhvZCk7CkBAIC0xMjcyLDMgKzEyNzMsMTUgQEAgdm9pZCBMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6YWRkVXNlclN0eWxlU2hlZXQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBh
cmd1bWVudHMsIEMKICAgICAgICAgcmV0dXJuOwogICAgIG1fc2hlbGwtPndlYlZpZXcoKS0+YWRk
VXNlclN0eWxlU2hlZXQoV2ViU3RyaW5nOjpmcm9tVVRGOChhcmd1bWVudHNbMF0udG9TdHJpbmco
KSkpOwogfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3Io
Y29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdHMpCit7
CisgICAgV2ViU2V0dGluZ3MqIHNldHRpbmdzID0gbV9zaGVsbC0+d2ViVmlldygpLT5zZXR0aW5n
cygpOworICAgIHN0cmluZyBrZXkgPSBhcmd1bWVudHNbMF0udG9TdHJpbmcoKTsKKyAgICBpZiAo
a2V5ID09ICJtYWMiKQorICAgICAgICBzZXR0aW5ncy0+c2V0RWRpdGluZ0JlaGF2aW9yKFdlYlNl
dHRpbmdzOjpFZGl0aW5nQmVoYXZpb3JNYWMpOworICAgIGVsc2UgaWYgKGtleSA9PSAid2luZG93
cyIpCisgICAgICAgIHNldHRpbmdzLT5zZXRFZGl0aW5nQmVoYXZpb3IoV2ViU2V0dGluZ3M6OkVk
aXRpbmdCZWhhdmlvcldpbmRvd3MpOworICAgIGVsc2UKKyAgICAgICAgbG9nRXJyb3JUb0NvbnNv
bGUoIlBhc3NlZCBpbnZhbGlkIGVkaXRpbmcgYmVoYXZpb3IuIFNob3VsZCBiZSAnbWFjJyBvciAn
d2luZG93cycuIik7Cit9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCA3MGYzZmY2Li5hMWMyZGEw
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTIwOSw2ICsyMDksOCBAQCBwdWJsaWM6CiAgICAg
Ly8gR3JhbnRzIHBlcm1pc3Npb24gZm9yIGRlc2t0b3Agbm90aWZpY2F0aW9ucyB0byBhbiBvcmln
aW4KICAgICB2b2lkIGdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCisgICAgdm9pZCBzZXRFZGl0aW5nQmVoYXZp
b3IoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworCiAgICAgLy8gVGhlIGZv
bGxvd2luZyBhcmUgb25seSBzdHVicy4gIFRPRE8ocGFtZyk6IEltcGxlbWVudCBhbnkgb2YgdGhl
c2UgdGhhdAogICAgIC8vIGFyZSBuZWVkZWQgdG8gcGFzcyB0aGUgbGF5b3V0IHRlc3RzLgogICAg
IHZvaWQgZHVtcEFzV2ViQXJjaGl2ZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVz
dENvbnRyb2xsZXJHdGsuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91
dFRlc3RDb250cm9sbGVyR3RrLmNwcAppbmRleCA0ZmZhYjg4Li43MjBjM2M2IDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsu
Y3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJv
bGxlckd0ay5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9K
U1JldGFpblB0ci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTU3RyaW5nUmVmLmg+CiAK
KyNpbmNsdWRlIDxjc3RyaW5nPgogI2luY2x1ZGUgPGlvc3RyZWFtPgogI2luY2x1ZGUgPHNzdHJl
YW0+CiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTY5MywzICs2OTQsMTQgQEAgSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjptYXJrZXJUZXh0Rm9yTGlzdEl0ZW0o
SlNDb250ZXh0UmUKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmF1dGhlbnRpY2F0ZVNlc3Np
b24oSlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmLCBKU1N0cmluZ1JlZikKIHsKIH0KKwordm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKGNvbnN0IGNoYXIqIGVkaXRp
bmdCZWhhdmlvcikKK3sKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gd2Via2l0X3dlYl9m
cmFtZV9nZXRfd2ViX3ZpZXcobWFpbkZyYW1lKTsKKyAgICBXZWJLaXRXZWJTZXR0aW5ncyogc2V0
dGluZ3MgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NldHRpbmdzKHdlYlZpZXcpOworCisgICAgaWYg
KCFzdHJjbXAoZWRpdGluZ0JlaGF2aW9yLCAid2luZG93cyIpKQorICAgICAgICBnX29iamVjdF9z
ZXQoR19PQkpFQ1Qoc2V0dGluZ3MpLCAiZWRpdGluZy1iZWhhdmlvciIsIFdFQktJVF9FRElUSU5H
X0JFSEFWSU9SX1dJTkRPV1MsIE5VTEwpOworICAgIGlmICghc3RyY21wKGVkaXRpbmdCZWhhdmlv
ciwgIm1hYyIpKQorICAgICAgICBnX29iamVjdF9zZXQoR19PQkpFQ1Qoc2V0dGluZ3MpLCAiZWRp
dGluZy1iZWhhdmlvciIsIFdFQktJVF9FRElUSU5HX0JFSEFWSU9SX01BQywgTlVMTCk7Cit9CmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRy
b2xsZXJNYWMubW0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENv
bnRyb2xsZXJNYWMubW0KaW5kZXggNDRhZWE4MS4uMzczZjQxMCAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisrKyBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5t
bQpAQCAtODQ5LDMgKzg0OSwxMyBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphdXRoZW50
aWNhdGVTZXNzaW9uKEpTU3RyaW5nUmVmIHVybCwgSlNTdHJpbmdSZWYgdXNlcgogICAgIFtTeW5j
aHJvbm91c0xvYWRlciBtYWtlUmVxdWVzdDpyZXF1ZXN0IHdpdGhVc2VybmFtZTooTlNTdHJpbmcg
Kil1c2VybmFtZUNGLmdldCgpIHBhc3N3b3JkOihOU1N0cmluZyAqKXBhc3N3b3JkQ0YuZ2V0KCld
OwogI2VuZGlmCiB9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhh
dmlvcihjb25zdCBjaGFyKiBlZGl0aW5nQmVoYXZpb3IpCit7CisgICAgTlNTdHJpbmcqIGVkaXRp
bmdCZWhhdmlvck5TID0gW05TU3RyaW5nIHN0cmluZ1dpdGhVVEY4U3RyaW5nOmVkaXRpbmdCZWhh
dmlvcl07CisgICAgaWYgKFtlZGl0aW5nQmVoYXZpb3JOUyBpc0VxdWFsVG9TdHJpbmc6QCJtYWMi
XSkKKyAgICAgICAgW1tXZWJQcmVmZXJlbmNlcyBzdGFuZGFyZFByZWZlcmVuY2VzXSBzZXRFZGl0
aW5nQmVoYXZpb3I6V2ViS2l0RWRpdGluZ01hY0JlaGF2aW9yXTsKKyAgICBpZiAoW2VkaXRpbmdC
ZWhhdmlvck5TIGlzRXF1YWxUb1N0cmluZzpAIndpbmRvd3MiXSkKKyAgICAgICAgW1tXZWJQcmVm
ZXJlbmNlcyBzdGFuZGFyZFByZWZlcmVuY2VzXSBzZXRFZGl0aW5nQmVoYXZpb3I6V2ViS2l0RWRp
dGluZ01hY0JlaGF2aW9yXTsKKyAgICBbZWRpdGluZ0JlaGF2aW9yTlMgcmVsZWFzZV07Cit9CmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJv
bGxlclF0LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250
cm9sbGVyUXQuY3BwCmluZGV4IDFmYWRkNjEuLjk2MTY4MzUgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCisrKyBiL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwCkBA
IC02MzgsNSArNjM4LDEwIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEljb25EYXRh
YmFzZUVuYWJsZWQoYm9vbCBlbmFibGUpCiAgICAgICAgIFFXZWJTZXR0aW5nczo6c2V0SWNvbkRh
dGFiYXNlUGF0aChRU3RyaW5nKCkpOwogfQogCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpz
ZXRFZGl0aW5nQmVoYXZpb3IoY29uc3QgUVN0cmluZyYgZWRpdGluZ0JlaGF2aW9yKQoreworICAg
IC8vIEZJWE1FOiBJbXBsZW1lbnQuCit9CisKIGNvbnN0IHVuc2lnbmVkIExheW91dFRlc3RDb250
cm9sbGVyOjptYXhWaWV3V2lkdGggPSA4MDA7CiBjb25zdCB1bnNpZ25lZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6bWF4Vmlld0hlaWdodCA9IDYwMDsKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaCBiL1dlYktpdFRvb2xzL0R1
bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaAppbmRleCAxMzU5YTZmLi41
ZmI0MGI2IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0LmgKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5
b3V0VGVzdENvbnRyb2xsZXJRdC5oCkBAIC0xOTMsNiArMTkzLDggQEAgcHVibGljIHNsb3RzOgog
ICAgIC8vIFNpbXVsYXRlIGEgcmVxdWVzdCBhbiBlbWJlZGRpbmcgYXBwbGljYXRpb24gY291bGQg
bWFrZSwgcG9wdWxhdGluZyBwZXItc2Vzc2lvbiBjcmVkZW50aWFsIHN0b3JhZ2UuCiAgICAgdm9p
ZCBhdXRoZW50aWNhdGVTZXNzaW9uKGNvbnN0IFFTdHJpbmcmIHVybCwgY29uc3QgUVN0cmluZyYg
dXNlcm5hbWUsIGNvbnN0IFFTdHJpbmcmIHBhc3N3b3JkKTsKIAorICAgIHZvaWQgc2V0RWRpdGlu
Z0JlaGF2aW9yKGNvbnN0IFFTdHJpbmcmIGVkaXRpbmdCZWhhdmlvcik7CisKIHByaXZhdGUgc2xv
dHM6CiAgICAgdm9pZCBwcm9jZXNzV29yaygpOwogCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcAppbmRleCAx
MTJiMzU1Li5mZDRmNmE1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93
aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKQEAgLTEyNjcsMyArMTI2Nywy
MCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRXZWJWaWV3RWRpdGFibGUoYm9vbCkK
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmF1dGhlbnRpY2F0ZVNlc3Npb24oSlNTdHJpbmdS
ZWYsIEpTU3RyaW5nUmVmLCBKU1N0cmluZ1JlZikKIHsKIH0KKwordm9pZCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKGNvbnN0IGNoYXIqIGVkaXRpbmdCZWhhdmlvcikK
K3sKKyAgICBDT01QdHI8SVdlYlZpZXc+IHdlYlZpZXc7CisgICAgaWYgKEZBSUxFRChmcmFtZS0+
d2ViVmlldygmd2ViVmlldykpKQorICAgICAgICByZXR1cm47CisKKyAgICBDT01QdHI8SVdlYlBy
ZWZlcmVuY2VzPiBwcmVmZXJlbmNlczsKKyAgICBpZiAoRkFJTEVEKHdlYlZpZXctPnByZWZlcmVu
Y2VzKCZwcmVmZXJlbmNlcykpKQorICAgICAgICByZXR1cm47CisKKyAgICBzdHJpbmcgYmVoYXZp
b3JTdHJpbmcoZWRpdGluZ0JlaGF2aW9yKTsKKyAgICBpZiAoYmVoYXZpb3JTdHJpbmcgPT0gIm1h
YyIpCisgICAgICAgIHByZWZlcmVuY2VzLT5zZXRFZGl0aW5nQmVoYXZpb3IoV2ViS2l0RWRpdGlu
Z01hY0JlaGF2aW9yKTsKKyAgICBpZiAoYmVoYXZpb3JTdHJpbmcgPT0gIndpbmRvd3MiKQorICAg
ICAgICBwcmVmZXJlbmNlcy0+c2V0RWRpdGluZ0JlaGF2aW9yKFdlYktpdEVkaXRpbmdXaW5kb3dz
QmVoYXZpb3IpOworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gv
TGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93
eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAppbmRleCBiYzE1N2JlLi5kMzRlNDBhIDEwMDY0
NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxl
cld4LmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29u
dHJvbGxlcld4LmNwcApAQCAtNDQ2LDMgKzQ0Niw4IEBAIEpTVmFsdWVSZWYgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OmNvbXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mbyhKU0NvbnRleHRSZWYs
CiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphdXRoZW50aWNhdGVTZXNzaW9uKEpTU3RyaW5n
UmVmLCBKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYpCiB7CiB9CisKK3ZvaWQgTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcihKU1N0cmluZ1JlZiBlZGl0aW5nQmVoYXZpb3Ip
Cit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudAorfQotLSAKMS42LjMuMwoK
</data>
<flag name="review"
          id="40922"
          type_id="1"
          status="-"
          setter="ojan"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56539</attachid>
            <date>2010-05-19 17:45:01 -0700</date>
            <delta_ts>2010-05-19 18:38:46 -0700</delta_ts>
            <desc>Patch with suggestions</desc>
            <filename>0001-Expose-the-editing-behavior-setting-in-DRT-to-test-a.patch</filename>
            <type>text/plain</type>
            <size>37653</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">RnJvbSAyMTU4ZDUxNzA3MGJkZTcwN2EwNmMzYjhmOWY5MWI0NzQ4ZmUxNGJmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gUm9iaW5zb24gPG1yb2JpbnNvbkB3ZWJraXQub3Jn
PgpEYXRlOiBXZWQsIDUgTWF5IDIwMTAgMTY6MTg6NTkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBF
eHBvc2UgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRp
dGluZyBjb2RlIHBhdGhzCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzg2MDMKClBhdGNoIGJ5IE1hcnRpbiBSb2JpbnNvbiA8bXJvYmluc29uQHdlYmtpdC5vcmc+IG9u
IDIwMTAtMDUtMTkKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXZWJLaXQvY2hyb21pdW06
CgoqIHB1YmxpYy9XZWJTZXR0aW5ncy5oOgooV2ViS2l0OjpXZWJTZXR0aW5nczo6KTogQWRkZWQg
YW4gZW51bSBmb3IgRWRpdGluZ0JlaGF2aW9yIHR5cGVzLgoqIHNyYy9XZWJTZXR0aW5nc0ltcGwu
Y3BwOgooV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZGVk
LgoqIHNyYy9XZWJTZXR0aW5nc0ltcGwuaDoKCldlYktpdC9tYWM6CgoqIFdlYlZpZXcvV2ViRnJh
bWUubW06Cihjb3JlKToKKiBXZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaDogQWRkZWQgYSBjb252
ZXJzaW9uIG1ldGhvZCBmcm9tIHRoZSBBUEkgZW51bSB0byB0aGUgV2ViQ29yZSBlbnVtLgoqIFdl
YlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZGVkIGEgcHJlZmVyZW5jZSBrZXkg
Zm9yIHRoZSBuZXcgc2V0dGluZy4KKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgooK1tXZWJQ
cmVmZXJlbmNlcyBpbml0aWFsaXplXSk6IEluaXRpYWxpemUgdGhlIEVkaXRpbmdCZWhhdmlvciB0
byBNYWMgc3R5bGUuCigtW1dlYlByZWZlcmVuY2VzIGVkaXRpbmdCZWhhdmlvcl0pOiBBZGRlZC4K
KC1bV2ViUHJlZmVyZW5jZXMgc2V0RWRpdGluZ0JlaGF2aW9yOl0pOiBBZGRlZC4KKiBXZWJWaWV3
L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOiBBZGRlZCB0aGUgbmV3IEFQSSBwb2ludHMgdG8gdGhl
IHByaXZhdGUgQVBJLgoqIFdlYlZpZXcvV2ViVmlldy5tbToKKC1bV2ViVmlldyBfcHJlZmVyZW5j
ZXNDaGFuZ2VkTm90aWZpY2F0aW9uOl0pOiBTZXQgdGhlIGVkaXRpbmcgYmVoYXZpb3IgdmlhIHRo
ZSBXZWJQcmVmZXJlbmNlcyBzZXR0aW5nLgoKV2ViS2l0L3dpbjoKCkV4cG9zZSB0aGUgRWRpdGlu
Z0JlaGF2aW9yIHNldHRpbmcgaW4gdGhlIFdpbmRvd3MgQVBJLgoKKiBJbnRlcmZhY2VzL0lXZWJQ
cmVmZXJlbmNlcy5pZGw6IEFkZCB0aGUgQVBJIHBvaW50IGZvciBzZXR0aW5nIHRoZSBlZGl0aW5n
IGJlaGF2aW9yLgoqIFdlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOiBBZGQgYSBrZXkgZm9yIHRo
ZSBlZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcuCiogV2ViUHJlZmVyZW5jZXMuY3BwOgooV2ViUHJl
ZmVyZW5jZXM6OmVkaXRpbmdCZWhhdmlvcik6IEFkZGVkLgooV2ViUHJlZmVyZW5jZXM6OnNldEVk
aXRpbmdCZWhhdmlvcik6IEFkZGVkLgoqIFdlYlByZWZlcmVuY2VzLmg6IEFkZCBtZXRob2QgZGVj
bGFyYXRpb25zLgoqIFdlYlZpZXcuY3BwOgooV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFu
Z2VkKTogVXBkYXRlIHRoZSBXZWJDb3JlIHNldHRpbmcgYmFzZWQgb24gdGhlIFdlYlByZWZlcmVu
Y2VzIHNldHRpbmcuCgpXZWJLaXRUb29sczoKCiogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwOgooc2V0RWRpdGluZ0JlaGF2aW9yQ2FsbGJhY2spOiBBZGRlZC4KKExheW91
dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOiBFeHBvc2UgdGhlIHNldEVkaXRpbmdC
ZWhhdmlvckNhbGxiYWNrIGZ1bmN0aW9uLgoqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmg6CiogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwOiBBZGQgY2FsbGJhY2sgbWV0aG9kIGZvciBzZXR0aW5nIGVkaXRpbmcgYmVoYXZpb3IuCiog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaDogRGVjbGFyYXRp
b24gZm9yIHRoaXMgbWV0aG9kLgoqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJv
bGxlckd0ay5jcHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTog
SW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgoqIER1bXBSZW5kZXJU
cmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKExheW91dFRlc3RDb250cm9sbGVy
OjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBEaXR0bwoqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuY3BwOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhh
dmlvcik6IEFkZGVkIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250
cm9sLgoqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaDoKKExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGQgc2xvdCBmb3IgY29udHJv
bGxpbmcgZWRpdG9yIGJlaGF2aW9yLgoqIER1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29u
dHJvbGxlcldpbi5jcHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9y
KTogSW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgoqIER1bXBSZW5k
ZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwOgooTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZGVkIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgZWRp
dGluZyBiZWhhdmlvciBjb250cm9sLgoKTGF5b3V0VGVzdHM6CgoqIGVkaXRpbmcvc2VsZWN0aW9u
L2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLmh0bWw6IFVzZSB0aGUgbmV3IERS
VCBzdXBwb3J0IGZvciBjaGFuZ2luZyBlZGl0aW5nIGJlaGF2aW9yLgoqIGVkaXRpbmcvc2VsZWN0
aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLWV4cGVjdGVkLnR4dDogVXBk
YXRlIGV4cGVjdGVkIHJlc3VsdHMgdG8gcmVmbGVjdCBib3RoIGJlaGF2aW9ycy4KLS0tCiBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKysr
KysrKwogLi4ueHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGljay1leHBlY3RlZC50eHQg
fCAgICAyICsKIC4uLi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGljay5odG1sICAg
ICAgIHwgICAyNiArKysrKysrKysrKy0tLS0tLQogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsrKysrKysrKwogV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJTZXR0aW5ncy5oICAgICAgICAgICAgICAgfCAgICA2ICsrKysKIFdlYktpdC9j
aHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgICAgICAgIHwgICAgNSArKysKIFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcCAgICAgICAgICAgIHwgICAgNSAr
KysKIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmggICAgICAgICAgICAgIHwg
ICAgMSArCiBXZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMTkgKysrKysrKysrKysrKwogV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tICAg
ICAgICAgICAgICAgICAgICAgfCAgIDEyICsrKysrKysrCiBXZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RnJhbWVJbnRlcm5hbC5oICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oICAgICAgfCAgICAxICsKIFdlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbSAgICAgICAgICAgICAgIHwgICAxMSArKysrKysrCiBXZWJL
aXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggICAgICAgICB8ICAgIDggKysr
KysKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMSArCiBXZWJLaXQvd2luL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMTggKysrKysrKysrKysrCiBXZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVu
Y2VzLmlkbCAgICAgICAgICB8ICAgIDkgKysrKysrCiBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViS2l0L3dpbi9XZWJQcmVmZXJl
bmNlcy5jcHAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKysrKysrKysKIFdlYktpdC93
aW4vV2ViUHJlZmVyZW5jZXMuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArKysrCiBX
ZWJLaXQvd2luL1dlYlZpZXcuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYg
KysrKwogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDI2ICsrKysrKysrKysrKysrKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwICAgICAgICB8ICAgMjkgKysrKysrKysrKysrKysrKysrKysKIFdlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmggIHwgICAgMSArCiAuLi4v
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwICAgICAgICAgICAgICB8ICAgMTMgKysr
KysrKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
aCB8ICAgIDIgKwogLi4uL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0
ay5jcHAgfCAgIDEyICsrKysrKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RD
b250cm9sbGVyTWFjLm1tICB8ICAgMTAgKysrKysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL3F0L0xh
eW91dFRlc3RDb250cm9sbGVyUXQuY3BwICAgfCAgICA1ICsrKwogLi4uL0R1bXBSZW5kZXJUcmVl
L3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaCAgICAgfCAgICAyICsKIC4uLi9EdW1wUmVuZGVy
VHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIHwgICAxNyArKysrKysrKysrKwog
Li4uL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwICAgfCAgICA1
ICsrKwogMzIgZmlsZXMgY2hhbmdlZCwgMjg5IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDhkNGQwOGEuLjAyNjYwODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0w
NS0xOSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRoZSBlZGl0aW5n
IGJlaGF2aW9yIHNldHRpbmcgaW4gRFJUIHRvIHRlc3QgYWxsIGVkaXRpbmcgY29kZSBwYXRocwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2MDMKKwor
ICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91Ymxl
LWNsaWNrLmh0bWw6IFVzZSB0aGUgbmV3IERSVCBzdXBwb3J0IGZvciBjaGFuZ2luZyBlZGl0aW5n
IGJlaGF2aW9yLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24t
YWZ0ZXItZG91YmxlLWNsaWNrLWV4cGVjdGVkLnR4dDogVXBkYXRlIGV4cGVjdGVkIHJlc3VsdHMg
dG8gcmVmbGVjdCBib3RoIGJlaGF2aW9ycy4KKwogMjAxMC0wNS0xOSAgTWFydGluIFJvYmluc29u
ICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgTm90IHJldmlld2VkLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRl
ci1kb3VibGUtY2xpY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2stZXhwZWN0ZWQudHh0CmluZGV4
IGVkMmQ2YTUuLjQzMTA3NTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRv
dWJsZS1jbGljay1leHBlY3RlZC50eHQKQEAgLTUsMyArNSw1IEBAIFRoaXMgdGVzdCBkb2VzIG5v
dCBydW4gaW50ZXJhY3RpdmVseS4gSXQgdXNlcyB0aGUgZXZlbnQgc2VuZGVyIHRvIGRvIG1vdXNl
IGNsaWNrCiBUaGlzIGlzIGEgcGFyYWdyYXBoLgogCiBTVUNDRVNTCitTVUNDRVNTCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0
ZXItZG91YmxlLWNsaWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRl
bmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGljay5odG1sCmluZGV4IDg5MTA4MGIuLjhiODhj
ODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxl
Y3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbApAQCAtMTgs
MTMgKzE4LDI1IEBACiAgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDEwMDApOwogICAg
IH0KIAotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIGZ1bmN0aW9uIGxvZ1Jlc3VsdChyZXN1
bHQpCisgICAgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5u
ZXJIVE1MICs9IHJlc3VsdCArICI8YnIvPiI7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVz
dHMoKQogICAgIHsKICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIgfHwgIXdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAKKyAgICAgICAgcnVuVGVzdCgibWFjIiwg
ImEgcGFyYWdyYXBoIik7CisgICAgICAgIHJ1blRlc3QoIndpbiIsICJwYXJhZ3JhIik7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcnVuVGVzdChiZWhhdmlvciwgZXhwZWN0ZWRUZXh0KQorICAgIHsK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0RWRpdGluZ0JlaGF2aW9yKGJlaGF2aW9y
KTsKICAgICAgICAgZG91YmxlQ2xpY2tXb3JkKCk7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLm1v
ZGlmeSgiZXh0ZW5kIiwgImJhY2t3YXJkIiwgImNoYXJhY3RlciIpOwogICAgICAgICBnZXRTZWxl
Y3Rpb24oKS5tb2RpZnkoImV4dGVuZCIsICJiYWNrd2FyZCIsICJjaGFyYWN0ZXIiKTsKQEAgLTMy
LDE5ICs0NCwxNSBAQAogICAgICAgICBnZXRTZWxlY3Rpb24oKS5tb2RpZnkoImV4dGVuZCIsICJi
YWNrd2FyZCIsICJjaGFyYWN0ZXIiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCJl
eHRlbmQiLCAiYmFja3dhcmQiLCAiY2hhcmFjdGVyIik7CiAKLSAgICAgICAgdmFyIHJlc3VsdDsK
ICAgICAgICAgdmFyIHNlbGVjdGVkVGV4dCA9IGdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0g
ICAgICAgIHZhciBvbk1hY1BsYXRmb3JtID0gbmF2aWdhdG9yLnVzZXJBZ2VudC5zZWFyY2goL1xi
TWFjIE9TIFhcYi8pICE9IC0xOwotICAgICAgICB2YXIgZXhwZWN0ZWRUZXh0ID0gb25NYWNQbGF0
Zm9ybSA/ICJhIHBhcmFncmFwaCIgOiAicGFyYWdyYSI7CiAgICAgICAgIGlmIChzZWxlY3RlZFRl
eHQgPT0gZXhwZWN0ZWRUZXh0KQotICAgICAgICAgICAgcmVzdWx0ID0gIlNVQ0NFU1MiOworICAg
ICAgICAgICAgbG9nUmVzdWx0KCJTVUNDRVNTIik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
IHJlc3VsdCA9ICJGQUlMVVJFOiBUaGUgc2VsZWN0ZWQgdGV4dCBpcyBcIiIgKyBzZWxlY3RlZFRl
eHQgKyAiXCIgYW5kIHNob3VsZCBiZSBcIiIgKyBleHBlY3RlZFRleHQgKyAiXCIuIjsKLSAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmZpcnN0Q2hpbGQuZGF0YSA9IHJl
c3VsdDsKKyAgICAgICAgICAgIGxvZ1Jlc3VsdCgiRkFJTFVSRTogVGhlIHNlbGVjdGVkIHRleHQg
aXMgXCIiICsgc2VsZWN0ZWRUZXh0ICsgIlwiIGFuZCBzaG91bGQgYmUgXCIiICsgZXhwZWN0ZWRU
ZXh0ICsgIlwiLiIpOwogICAgIH0KIDwvc2NyaXB0PgogPC9oZWFkPgotPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KIDxwPlRoaXMgdGVzdHMgbW9k
aWZ5aW5nIGEgc2VsZWN0aW9uIGNyZWF0ZWQgd2l0aCBhIGRvdWJsZSBjbGljayB3aXRoIHNoaWZ0
IGFycm93IGtleS48L3A+CiA8cCBzdHlsZT0iY29sb3I6Z3JlZW4iPgogICAgIFRoaXMgdGVzdCBk
b2VzIG5vdCBydW4gaW50ZXJhY3RpdmVseS4KQEAgLTU0LDUgKzYyLDUgQEAKICAgICBUaGUgc2Vs
ZWN0aW9uIHNob3VsZCBpbmNsdWRlIHRoZSB3b3JkcyAiYSBwYXJhZ3JhcGgiIG9uIG1hYyBhbmQg
InBhcmFncmEiIG9uIHdpbi9saW51eC4uCiA8L3A+CiA8cD5UaGlzIGlzIGEgcGFyYTxzcGFuIHN0
eWxlPSJjb2xvcjpibHVlIiBpZD0ic3RhcnQiPmc8L3NwYW4+cmFwaC48L3A+Ci08cCBpZD0icmVz
dWx0Ij5URVNUIEhBUyBOT1QgUlVOPC9wPgorPHAgaWQ9InJlc3VsdCI+PC9wPgogPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggYTQzMzkzOC4uYTZlMmUzNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTAtMDUtMTkgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9z
ZSB0aGUgZWRpdGluZyBiZWhhdmlvciBzZXR0aW5nIGluIERSVCB0byB0ZXN0IGFsbCBlZGl0aW5n
IGNvZGUgcGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM4NjAzCisKKyAgICAgICAgKiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViU2V0dGluZ3M6Oik6IEFkZGVkIGFuIGVudW0gZm9yIEVkaXRpbmdCZWhhdmlvciB0
eXBlcy4KKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDogCisgICAgICAgIChXZWJL
aXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0RWRpdGluZ0JlaGF2aW9yKTogQWRkZWQuCisgICAgICAg
ICogc3JjL1dlYlNldHRpbmdzSW1wbC5oOgorCiAyMDEwLTA1LTE3ICBKZXJlbXkgT3Jsb3cgIDxq
b3Jsb3dAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBiL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAppbmRleCAzNTZkOWZhLi40ZDkwYzM5IDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCkBAIC00Myw2ICs0MywxMSBAQCBjbGFz
cyBXZWJVUkw7CiAvLyB0aGVzZSBmdW5jdGlvbnMgaGF2ZSBhIDE6MSBtYXBwaW5nIHdpdGggdGhl
IG1ldGhvZHMgaW4gV2ViQ29yZS9wYWdlL3NldHRpbmdzLmguCiBjbGFzcyBXZWJTZXR0aW5ncyB7
CiBwdWJsaWM6CisgICAgZW51bSBFZGl0aW5nQmVoYXZpb3IgeworICAgICAgICBFZGl0aW5nQmVo
YXZpb3JNYWMsCisgICAgICAgIEVkaXRpbmdCZWhhdmlvcldpbmRvd3MKKyAgICB9OworCiAgICAg
dmlydHVhbCB2b2lkIHNldFN0YW5kYXJkRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHNldEZpeGVkRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcmKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFNlcmlmRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcm
KSA9IDA7CkBAIC04NCw2ICs4OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0T2Zm
bGluZVdlYkFwcGxpY2F0aW9uQ2FjaGVFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RXhwZXJpbWVudGFsV2ViR0xFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0U2hvd0RlYnVnQm9yZGVycyhib29sKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldEVk
aXRpbmdCZWhhdmlvcihFZGl0aW5nQmVoYXZpb3IpID0gMDsKIAogcHJvdGVjdGVkOgogICAgIH5X
ZWJTZXR0aW5ncygpIHsgfQpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRN
YXRjaGluZ0VudW1zLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVt
cy5jcHAKaW5kZXggZTdhZWI0OS4uZmE3ZDczYSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Fz
c2VydE1hdGNoaW5nRW51bXMuY3BwCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiTm90aWZp
Y2F0aW9uUHJlc2VudGVyLmgiCiAjaW5jbHVkZSAiUGFzdGVib2FyZFByaXZhdGUuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybUN1cnNvci5oIgorI2luY2x1ZGUgIlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
U3RyaW5nSW1wbC5oIgogI2luY2x1ZGUgIlRleHRBZmZpbml0eS5oIgogI2luY2x1ZGUgIldlYkFj
Y2Vzc2liaWxpdHlPYmplY3QuaCIKQEAgLTUyLDYgKzUzLDcgQEAKICNpbmNsdWRlICJXZWJNZWRp
YVBsYXllci5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvblByZXNlbnRlci5oIgogI2luY2x1
ZGUgIldlYlNjcm9sbGJhci5oIgorI2luY2x1ZGUgIldlYlNldHRpbmdzLmgiCiAjaW5jbHVkZSAi
V2ViVGV4dEFmZmluaXR5LmgiCiAjaW5jbHVkZSAiV2ViVGV4dENhc2VTZW5zaXRpdml0eS5oIgog
I2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CkBAIC0zMDAsNiArMzAyLDkgQEAgQ09NUElMRV9B
U1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJTY3JvbGxiYXI6OlNjcm9sbEJ5UGFnZSwgU2Nyb2xsQnlQ
YWdlKTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VOVU0oV2ViU2Nyb2xsYmFyOjpTY3JvbGxC
eURvY3VtZW50LCBTY3JvbGxCeURvY3VtZW50KTsKIENPTVBJTEVfQVNTRVJUX01BVENISU5HX0VO
VU0oV2ViU2Nyb2xsYmFyOjpTY3JvbGxCeVBpeGVsLCBTY3JvbGxCeVBpeGVsKTsKIAorQ09NUElM
RV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJTZXR0aW5nczo6RWRpdGluZ0JlaGF2aW9yTWFjLCBF
ZGl0aW5nTWFjQmVoYXZpb3IpOworQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJTZXR0
aW5nczo6RWRpdGluZ0JlaGF2aW9yV2luLCBFZGl0aW5nV2luZG93c0JlaGF2aW9yKTsKKwogQ09N
UElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJUZXh0QWZmaW5pdHlVcHN0cmVhbSwgVVBTVFJF
QU0pOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJUZXh0QWZmaW5pdHlEb3duc3Ry
ZWFtLCBET1dOU1RSRUFNKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJT
ZXR0aW5nc0ltcGwuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3Bw
CmluZGV4IDNhZGYzYWMuLjVmMzIzNDYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU2V0dGluZ3NJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdz
SW1wbC5jcHAKQEAgLTI2OSw0ICsyNjksOSBAQCB2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0U2hv
d0RlYnVnQm9yZGVycyhib29sIHNob3cpCiAgICAgbV9zZXR0aW5ncy0+c2V0U2hvd0RlYnVnQm9y
ZGVycyhzaG93KTsKIH0KIAordm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldEVkaXRpbmdCZWhhdmlv
cihFZGl0aW5nQmVoYXZpb3IgYmVoYXZpb3IpCit7CisgICAgbV9zZXR0aW5ncy0+c2V0RWRpdGlu
Z0JlaGF2aW9yKHN0YXRpY19jYXN0PFdlYkNvcmU6OkVkaXRpbmdCZWhhdmlvcj4oYmVoYXZpb3Ip
KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5n
c0ltcGwuaAppbmRleCBmZGMwM2YwLi4wYTkwMDkxIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0
dGluZ3NJbXBsLmgKQEAgLTg1LDYgKzg1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBz
ZXRPZmZsaW5lV2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldEV4cGVyaW1lbnRhbFdlYkdMRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0U2hvd0RlYnVnQm9yZGVycyhib29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdGluZ0Jl
aGF2aW9yKEVkaXRpbmdCZWhhdmlvcik7CiAKIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6U2V0dGlu
Z3MqIG1fc2V0dGluZ3M7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL0NoYW5nZUxvZyBiL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCmluZGV4IGE5OTBhNTAuLjUxYWM4MTggMTAwNjQ0Ci0tLSBhL1dlYktp
dC9tYWMvQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTAtMDUtMTkgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSB0
aGUgZWRpdGluZyBiZWhhdmlvciBzZXR0aW5nIGluIERSVCB0byB0ZXN0IGFsbCBlZGl0aW5nIGNv
ZGUgcGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTM4NjAzCisKKyAgICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lLm1tOgorICAgICAgICAoY29yZSk6
CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmg6IEFkZGVkIGEgY29udmVyc2lv
biBtZXRob2QgZnJvbSB0aGUgQVBJIGVudW0gdG8gdGhlIFdlYkNvcmUgZW51bS4KKyAgICAgICAg
KiBXZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOiBBZGRlZCBhIHByZWZlcmVuY2Ug
a2V5IGZvciB0aGUgbmV3IHNldHRpbmcuCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNl
cy5tbToKKyAgICAgICAgKCtbV2ViUHJlZmVyZW5jZXMgaW5pdGlhbGl6ZV0pOiBJbml0aWFsaXpl
IHRoZSBFZGl0aW5nQmVoYXZpb3IgdG8gTWFjIHN0eWxlLgorICAgICAgICAoLVtXZWJQcmVmZXJl
bmNlcyBlZGl0aW5nQmVoYXZpb3JdKTogQWRkZWQuCisgICAgICAgICgtW1dlYlByZWZlcmVuY2Vz
IHNldEVkaXRpbmdCZWhhdmlvcjpdKTogQWRkZWQuCisgICAgICAgICogV2ViVmlldy9XZWJQcmVm
ZXJlbmNlc1ByaXZhdGUuaDogQWRkZWQgdGhlIG5ldyBBUEkgcG9pbnRzIHRvIHRoZSBwcml2YXRl
IEFQSS4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlZpZXcubW06CisgICAgICAgICgtW1dlYlZpZXcg
X3ByZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbjpdKTogU2V0IHRoZSBlZGl0aW5nIGJlaGF2
aW9yIHZpYSB0aGUgV2ViUHJlZmVyZW5jZXMgc2V0dGluZy4KKwogMjAxMC0wNS0xOCAgVG9ueSBD
aGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFk
bGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tIGIvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCmluZGV4IDc1NDViZDguLjVkMGIwMmEgMTAwNjQ0Ci0t
LSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZS5tbQorKysgYi9XZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRnJhbWUubW0KQEAgLTE5Niw2ICsxOTYsMTggQEAgRWRpdGFibGVMaW5rQmVoYXZpb3Ig
Y29yZShXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciBlZGl0YWJsZUxpbmtCZWhhdmlvcikKICAg
ICByZXR1cm4gRWRpdGFibGVMaW5rRGVmYXVsdEJlaGF2aW9yOwogfQogCitXZWJDb3JlOjpFZGl0
aW5nQmVoYXZpb3IgY29yZShXZWJLaXRFZGl0aW5nQmVoYXZpb3IgYmVoYXZpb3IpCit7CisgICAg
c3dpdGNoIChiZWhhdmlvcikgeworICAgICAgICBjYXNlIFdlYktpdEVkaXRpbmdNYWNCZWhhdmlv
cjoKKyAgICAgICAgICAgIHJldHVybiBXZWJDb3JlOjpFZGl0aW5nTWFjQmVoYXZpb3I7CisgICAg
ICAgIGNhc2UgV2ViS2l0RWRpdGluZ1dpbkJlaGF2aW9yOgorICAgICAgICAgICAgcmV0dXJuIFdl
YkNvcmU6OkVkaXRpbmdXaW5kb3dzQmVoYXZpb3I7CisgICAgfQorICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOworICAgIHJldHVybiBXZWJDb3JlOjpFZGl0aW5nTWFjQmVoYXZpb3I7Cit9CisKIFRl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgY29yZShXZWJUZXh0RGlyZWN0aW9u
U3VibWVudUluY2x1c2lvbkJlaGF2aW9yIGJlaGF2aW9yKQogewogICAgIHN3aXRjaCAoYmVoYXZp
b3IpIHsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgg
Yi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCmluZGV4IDRjMWVlNDAuLjli
MjI0OGEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgK
KysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaApAQCAtNzEsNiArNzEs
NyBAQCBXZWJWaWV3ICpraXQoV2ViQ29yZTo6UGFnZSopOwogCiBXZWJDb3JlOjpFZGl0YWJsZUxp
bmtCZWhhdmlvciBjb3JlKFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yKTsKIFdlYkNvcmU6OlRl
eHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IgY29yZShXZWJUZXh0RGlyZWN0aW9u
U3VibWVudUluY2x1c2lvbkJlaGF2aW9yKTsKK1dlYkNvcmU6OkVkaXRpbmdCZWhhdmlvciBjb3Jl
KFdlYktpdEVkaXRpbmdCZWhhdmlvcik7CiAKIFdlYlZpZXcgKmdldFdlYlZpZXcoV2ViRnJhbWUg
KndlYkZyYW1lKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVu
Y2VLZXlzUHJpdmF0ZS5oIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJp
dmF0ZS5oCmluZGV4IDBkMTU0NmYuLmJhNGRmOGYgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTEwNSw2ICsxMDUsNyBAQAogI2RlZmluZSBX
ZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvclByZWZlcmVuY2VLZXkgQCJXZWJLaXRFZGl0YWJsZUxp
bmtCZWhhdmlvciIKICNkZWZpbmUgV2ViS2l0Q2FjaGVNb2RlbFByZWZlcmVuY2VLZXkgQCJXZWJL
aXRDYWNoZU1vZGVsUHJlZmVyZW5jZUtleSIKICNkZWZpbmUgV2ViS2l0VGV4dERpcmVjdGlvblN1
Ym1lbnVJbmNsdXNpb25CZWhhdmlvclByZWZlcmVuY2VLZXkgQCJXZWJLaXRUZXh0RGlyZWN0aW9u
U3VibWVudUluY2x1c2lvbkJlaGF2aW9yUHJlZmVyZW5jZUtleSIKKyNkZWZpbmUgV2ViS2l0RWRp
dGluZ0JlaGF2aW9yUHJlZmVyZW5jZUtleSBAIldlYktpdEVkaXRpbmdCZWhhdmlvciIKIAogLy8g
Q29yZUdyYXBoaWNzIGRlZmVycmVkIHVwZGF0ZXMgYXJlIGRpc2FibGVkIGlmIFdlYktpdEVuYWJs
ZUNvYWxlc2NlZFVwZGF0ZXNQcmVmZXJlbmNlS2V5IGlzIHNldAogLy8gdG8gTk8sIG9yIGhhcyBu
byB2YWx1ZS4gIEZvciBjb21wYXRpYmlsaXR5IHdpdGggTWFjIE9TIFggMTAuNC42LCBkZWZlcnJl
ZCB1cGRhdGVzIGFyZSBPRkYgYnkKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlcy5tbSBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQppbmRl
eCA0MjdmNmZlLi5hYzk4MjgyIDEwMDY0NAotLS0gYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZXMubW0KKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBA
IC0zMzQsNiArMzM0LDcgQEAgc3RhdGljIFdlYkNhY2hlTW9kZWwgY2FjaGVNb2RlbEZvck1haW5C
dW5kbGUodm9pZCkKICAgICAgICAgQCIwIiwgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJL
aXRQREZTY2FsZUZhY3RvclByZWZlcmVuY2VLZXksCiAgICAgICAgIEAiMCIsICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV2ViS2l0VXNlU2l0ZVNwZWNpZmljU3Bvb2ZpbmdQcmVmZXJlbmNlS2V5
LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEludDpXZWJLaXRFZGl0YWJsZUxpbmtEZWZh
dWx0QmVoYXZpb3JdLCBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvclByZWZlcmVuY2VLZXksCisg
ICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OldlYktpdEVkaXRpbmdNYWNCZWhhdmlvcl0s
IFdlYktpdEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXksCiAjaWYgIWRlZmluZWQoQlVJTERJ
TkdfT05fVElHRVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCiAgICAgICAgIFtO
U051bWJlciBudW1iZXJXaXRoSW50OldlYlRleHREaXJlY3Rpb25TdWJtZW51QXV0b21hdGljYWxs
eUluY2x1ZGVkXSwKICNlbHNlCkBAIC0xMjQ3LDYgKzEyNDgsMTYgQEAgc3RhdGljIE5TU3RyaW5n
ICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZmxhZyBm
b3JLZXk6V2ViS2l0SFRNTDVQYXJzZXJFbmFibGVkUHJlZmVyZW5jZUtleV07CiB9CiAKKy0gKFdl
YktpdEVkaXRpbmdCZWhhdmlvcillZGl0aW5nQmVoYXZpb3IKK3sKKyAgICByZXR1cm4gc3RhdGlj
X2Nhc3Q8V2ViS2l0RWRpdGluZ0JlaGF2aW9yPihbc2VsZiBfaW50ZWdlclZhbHVlRm9yS2V5Oldl
YktpdEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXldKTsKK30KKworLSAodm9pZClzZXRFZGl0
aW5nQmVoYXZpb3I6KFdlYktpdEVkaXRpbmdCZWhhdmlvciliZWhhdmlvcgoreworICAgIFtzZWxm
IF9zZXRJbnRlZ2VyVmFsdWU6YmVoYXZpb3IgZm9yS2V5OldlYktpdEVkaXRpbmdCZWhhdmlvclBy
ZWZlcmVuY2VLZXldOworfQorCiAtICh2b2lkKWRpZFJlbW92ZUZyb21XZWJWaWV3CiB7CiAgICAg
QVNTRVJUKF9wcml2YXRlLT5udW1XZWJWaWV3cyk7CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dl
YlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggN2ExNDkxYy4uNjMzNzAwOCAxMDA2NDQKLS0tIGEvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCisrKyBiL1dlYktpdC9tYWMv
V2ViVmlldy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtNDMsNiArNDMsMTEgQEAgdHlwZWRl
ZiBlbnVtIHsKICAgICBXZWJUZXh0RGlyZWN0aW9uU3VibWVudUFsd2F5c0luY2x1ZGVkCiB9IFdl
YlRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3I7CiAKK3R5cGVkZWYgZW51bSB7
CisgICAgV2ViS2l0RWRpdGluZ01hY0JlaGF2aW9yLAorICAgIFdlYktpdEVkaXRpbmdXaW5CZWhh
dmlvciwKK30gV2ViS2l0RWRpdGluZ0JlaGF2aW9yOworCiBleHRlcm4gTlNTdHJpbmcgKldlYlBy
ZWZlcmVuY2VzQ2hhbmdlZE5vdGlmaWNhdGlvbjsKIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVy
ZW5jZXNSZW1vdmVkTm90aWZpY2F0aW9uOwogCkBAIC0xMjksNiArMTM0LDkgQEAgZXh0ZXJuIE5T
U3RyaW5nICpXZWJQcmVmZXJlbmNlc1JlbW92ZWROb3RpZmljYXRpb247CiAtIChXZWJLaXRFZGl0
YWJsZUxpbmtCZWhhdmlvcillZGl0YWJsZUxpbmtCZWhhdmlvcjsKIC0gKHZvaWQpc2V0RWRpdGFi
bGVMaW5rQmVoYXZpb3I6KFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yKWJlaGF2aW9yOwogCist
IChXZWJLaXRFZGl0aW5nQmVoYXZpb3IpZWRpdGluZ0JlaGF2aW9yOworLSAodm9pZClzZXRFZGl0
aW5nQmVoYXZpb3I6KFdlYktpdEVkaXRpbmdCZWhhdmlvciliZWhhdmlvcjsKKwogLSAoV2ViVGV4
dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcil0ZXh0RGlyZWN0aW9uU3VibWVudUlu
Y2x1c2lvbkJlaGF2aW9yOwogLSAodm9pZClzZXRUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lv
bkJlaGF2aW9yOihXZWJUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKWJlaGF2
aW9yOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1dlYktp
dC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCmluZGV4IGNkMTY0NzEuLjgzN2U5MDggMTAwNjQ0Ci0t
LSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJWaWV3Lm1tCkBAIC0xMzY4LDYgKzEzNjgsNyBAQCBzdGF0aWMgYm9vbCBmYXN0RG9jdW1l
bnRUZWFyZG93bkVuYWJsZWQoKQogICAgIHNldHRpbmdzLT5zZXRUZXh0QXJlYXNBcmVSZXNpemFi
bGUoW3ByZWZlcmVuY2VzIHRleHRBcmVhc0FyZVJlc2l6YWJsZV0pOwogICAgIHNldHRpbmdzLT5z
ZXRTaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KFtwcmVmZXJlbmNlcyBzaHJpbmtzU3RhbmRh
bG9uZUltYWdlc1RvRml0XSk7CiAgICAgc2V0dGluZ3MtPnNldEVkaXRhYmxlTGlua0JlaGF2aW9y
KGNvcmUoW3ByZWZlcmVuY2VzIGVkaXRhYmxlTGlua0JlaGF2aW9yXSkpOworICAgIHNldHRpbmdz
LT5zZXRFZGl0aW5nQmVoYXZpb3IoY29yZShbcHJlZmVyZW5jZXMgZWRpdGluZ0JlaGF2aW9yXSkp
OwogICAgIHNldHRpbmdzLT5zZXRUZXh0RGlyZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9y
KGNvcmUoW3ByZWZlcmVuY2VzIHRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3Jd
KSk7CiAgICAgc2V0dGluZ3MtPnNldERPTVBhc3RlQWxsb3dlZChbcHJlZmVyZW5jZXMgaXNET01Q
YXN0ZUFsbG93ZWRdKTsKICAgICBzZXR0aW5ncy0+c2V0VXNlc1BhZ2VDYWNoZShbc2VsZiB1c2Vz
UGFnZUNhY2hlXSk7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL0NoYW5nZUxvZyBiL1dlYktpdC93
aW4vQ2hhbmdlTG9nCmluZGV4IGE2N2UxMGYuLjIwOTIyNjUgMTAwNjQ0Ci0tLSBhL1dlYktpdC93
aW4vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC93aW4vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMTAtMDUtMTkgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSB0aGUg
ZWRpdGluZyBiZWhhdmlvciBzZXR0aW5nIGluIERSVCB0byB0ZXN0IGFsbCBlZGl0aW5nIGNvZGUg
cGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4
NjAzCisKKyAgICAgICAgRXhwb3NlIHRoZSBFZGl0aW5nQmVoYXZpb3Igc2V0dGluZyBpbiB0aGUg
V2luZG93cyBBUEkuCisKKyAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGw6
IEFkZCB0aGUgQVBJIHBvaW50IGZvciBzZXR0aW5nIHRoZSBlZGl0aW5nIGJlaGF2aW9yLgorICAg
ICAgICAqIFdlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOiBBZGQgYSBrZXkgZm9yIHRoZSBlZGl0
aW5nIGJlaGF2aW9yIHNldHRpbmcuCisgICAgICAgICogV2ViUHJlZmVyZW5jZXMuY3BwOgorICAg
ICAgICAoV2ViUHJlZmVyZW5jZXM6OmVkaXRpbmdCZWhhdmlvcik6IEFkZGVkLgorICAgICAgICAo
V2ViUHJlZmVyZW5jZXM6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZGVkLgorICAgICAgICAqIFdl
YlByZWZlcmVuY2VzLmg6IEFkZCBtZXRob2QgZGVjbGFyYXRpb25zLgorICAgICAgICAqIFdlYlZp
ZXcuY3BwOgorICAgICAgICAoV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFuZ2VkKTogVXBk
YXRlIHRoZSBXZWJDb3JlIHNldHRpbmcgYmFzZWQgb24gdGhlIFdlYlByZWZlcmVuY2VzIHNldHRp
bmcuCisKIDIwMTAtMDUtMTMgIEJyaWFuIFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFJldmlld2VkIGJ5IFRpbSBIYXRjaGVyLgpkaWZmIC0tZ2l0IGEvV2ViS2l0
L3dpbi9JbnRlcmZhY2VzL0lXZWJQcmVmZXJlbmNlcy5pZGwgYi9XZWJLaXQvd2luL0ludGVyZmFj
ZXMvSVdlYlByZWZlcmVuY2VzLmlkbAppbmRleCAxYzQzMTM1Li5iNmQ4ZTdkIDEwMDY0NAotLS0g
YS9XZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzLmlkbAorKysgYi9XZWJLaXQv
d2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzLmlkbApAQCAtNDcsNiArNDcsMTIgQEAgdHlw
ZWRlZiBlbnVtIFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yIHsKICAgICBXZWJLaXRFZGl0YWJs
ZUxpbmtOZXZlckxpdmUKIH0gV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3I7CiAKK3R5cGVkZWYg
ZW51bSBXZWJLaXRFZGl0aW5nQmVoYXZpb3IgeworICAgIFdlYktpdEVkaXRpbmdNYWNCZWhhdmlv
ciA9IDAsCisgICAgV2ViS2l0RWRpdGluZ1dpbkJlaGF2aW9yLAorfSBXZWJLaXRFZGl0aW5nQmVo
YXZpb3I7CisKKwogdHlwZWRlZiBlbnVtIFdlYktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kg
ewogICAgIFdlYktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3lBbHdheXMgPSAwLAogICAgIFdl
YktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3lOZXZlciwKQEAgLTE2Miw2ICsxNjgsOSBAQCBp
bnRlcmZhY2UgSVdlYlByZWZlcmVuY2VzIDogSVVua25vd24KICAgICBIUkVTVUxUIGVkaXRhYmxl
TGlua0JlaGF2aW9yKFtvdXQsIHJldHZhbF0gV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IqIGVk
aXRhYmxlTGlua0JlaGF2aW9yKTsKICAgICBIUkVTVUxUIHNldEVkaXRhYmxlTGlua0JlaGF2aW9y
KFtpbl0gV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IgYmVoYXZpb3IpOwogCisgICAgSFJFU1VM
VCBlZGl0aW5nQmVoYXZpb3IoW291dCwgcmV0dmFsXSBXZWJLaXRFZGl0aW5nQmVoYXZpb3IqIGVk
aXRpbmdCZWhhdmlvcik7CisgICAgSFJFU1VMVCBzZXRFZGl0aW5nQmVoYXZpb3IoW2luXSBXZWJL
aXRFZGl0aW5nQmVoYXZpb3IgYmVoYXZpb3IpOworCiAgICAgSFJFU1VMVCBjb29raWVTdG9yYWdl
QWNjZXB0UG9saWN5KFtvdXQsIHJldHZhbF0gV2ViS2l0Q29va2llU3RvcmFnZUFjY2VwdFBvbGlj
eSogYWNjZXB0UG9saWN5KTsKICAgICBIUkVTVUxUIHNldENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xp
Y3koW2luXSBXZWJLaXRDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5IGFjY2VwdFBvbGljeSk7CiAK
ZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmggYi9XZWJL
aXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCmluZGV4IGM0OWE5NmQuLmRhNjM3NTQg
MTAwNjQ0Ci0tLSBhL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKKysrIGIv
V2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtNzQsNiArNzQsNyBAQAog
I2RlZmluZSBXZWJLaXRQREZEaXNwbGF5TW9kZVByZWZlcmVuY2VLZXkgIldlYktpdFBERkRpc3Bs
YXlNb2RlIgogI2RlZmluZSBXZWJLaXRQREZTY2FsZUZhY3RvclByZWZlcmVuY2VLZXkgIldlYktp
dFBERlNjYWxlRmFjdG9yIgogI2RlZmluZSBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvclByZWZl
cmVuY2VLZXkgIldlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yIgorI2RlZmluZSBXZWJLaXRFZGl0
aW5nQmVoYXZpb3JQcmVmZXJlbmNlS2V5ICJXZWJLaXRFZGl0aW5nQmVoYXZpb3IiCiAKIC8vIFdp
bmRvdyBkaXNwbGF5IGlzIHRocm90dGxlZCB0byA2MCBmcmFtZXMgcGVyIHNlY29uZCBpZiBXZWJL
aXRUaHJvdHRsZVdpbmRvd0Rpc3BsYXlQcmVmZXJlbmNlS2V5CiAvLyBpcyBzZXQgdG8gWUVTLiAg
VGhlIHdpbmRvdyBkaXNwbGF5IHRocm90dGxlIGlzIE9GRiBieSBkZWZhdWx0IGZvciBjb21wYXRp
YmlsaXR5IHdpdGggTWFjIE9TIFgKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViUHJlZmVyZW5j
ZXMuY3BwIGIvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKaW5kZXggMzNlOTA0ZC4uM2U3
ZWE0MiAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvV2Vi
S2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTExMzAsNiArMTEzMCwyMSBAQCBIUkVTVUxU
IFNURE1FVEhPRENBTExUWVBFIFdlYlByZWZlcmVuY2VzOjpzZXRFZGl0YWJsZUxpbmtCZWhhdmlv
cigKICAgICByZXR1cm4gU19PSzsKIH0KIAorSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQ
cmVmZXJlbmNlczo6ZWRpdGluZ0JlaGF2aW9yKAorICAgIC8qIFtvdXQsIHJldHZhbF0gKi8gV2Vi
S2l0RWRpdGluZ0JlaGF2aW9yKiBlZGl0aW5nQmVoYXZpb3IpCit7CisgICAgKmVkaXRpbmdCZWhh
dmlvciA9IChXZWJLaXRFZGl0aW5nQmVoYXZpb3IpIGludGVnZXJWYWx1ZUZvcktleShDRlNUUihX
ZWJLaXRFZGl0aW5nQmVoYXZpb3JQcmVmZXJlbmNlS2V5KSk7CisgICAgcmV0dXJuIFNfT0s7Cit9
CisKK0hSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViUHJlZmVyZW5jZXM6OnNldEVkaXRpbmdC
ZWhhdmlvcigKKyAgICAvKiBbaW5dICovIFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yIGJlaGF2
aW9yKQoreworICAgIHNldEludGVnZXJWYWx1ZShDRlNUUihXZWJLaXRFZGl0aW5nQmVoYXZpb3JQ
cmVmZXJlbmNlS2V5KSwgYmVoYXZpb3IpOworICAgIHJldHVybiBTX09LOworfQorCisKIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgV2ViUHJlZmVyZW5jZXM6OmNvb2tpZVN0b3JhZ2VBY2NlcHRQ
b2xpY3koIAogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIFdlYktpdENvb2tpZVN0b3JhZ2VB
Y2NlcHRQb2xpY3kgKmFjY2VwdFBvbGljeSApCiB7CmRpZmYgLS1naXQgYS9XZWJLaXQvd2luL1dl
YlByZWZlcmVuY2VzLmggYi9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgKaW5kZXggY2ZkZWZh
OC4uMWVhNjljNyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCisrKyBi
L1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaApAQCAtMjM4LDYgKzIzOCwxMiBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEVkaXRhYmxlTGlua0Jl
aGF2aW9yKCAKICAgICAgICAgLyogW2luXSAqLyBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciBi
ZWhhdmlvcik7CiAKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgZWRpdGlu
Z0JlaGF2aW9yKAorICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICovIFdlYktpdEVkaXRpbmdCZWhh
dmlvciogYmVoYXZpb3IpOworCisgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IHNldEVkaXRpbmdCZWhhdmlvcigKKyAgICAgICAgLyogW2luXSAqLyBXZWJLaXRFZGl0aW5nQmVo
YXZpb3IgYmVoYXZpb3IpOworCiAgICAgdmlydHVhbCBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBF
IGNvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3koIAogICAgICAgICAvKiBbcmV0dmFsXVtvdXRdICov
IFdlYktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kgKmFjY2VwdFBvbGljeSk7CiAgICAgICAg
IApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJWaWV3LmNwcCBiL1dlYktpdC93aW4vV2ViVmll
dy5jcHAKaW5kZXggMWZiZDhkMy4uMTMzYzk3NyAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJW
aWV3LmNwcAorKysgYi9XZWJLaXQvd2luL1dlYlZpZXcuY3BwCkBAIC00NTkzLDYgKzQ1OTMsMTIg
QEAgSFJFU1VMVCBXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQoSVdlYk5vdGlmaWNh
dGlvbiogbm90aWZpY2F0aW9uKQogICAgICAgICByZXR1cm4gaHI7CiAgICAgc2V0dGluZ3MtPnNl
dEVkaXRhYmxlTGlua0JlaGF2aW9yKChFZGl0YWJsZUxpbmtCZWhhdmlvciliZWhhdmlvcik7CiAK
KyAgICBXZWJLaXRFZGl0aW5nQmVoYXZpb3IgYmVoYXZpb3I7CisgICAgaHIgPSBwcmVmZXJlbmNl
cy0+ZWRpdGluZ0JlaGF2aW9yKCZiZWhhdmlvcik7CisgICAgaWYgKEZBSUxFRChocikpCisgICAg
ICAgIHJldHVybiBocjsKKyAgICBzZXR0aW5ncy0+c2V0RWRpdGluZ0JlaGF2aW9yKChFZGl0aW5n
QmVoYXZpb3IpYmVoYXZpb3IpOworCiAgICAgaHIgPSBwcmVmZXJlbmNlcy0+dXNlc1BhZ2VDYWNo
ZSgmZW5hYmxlZCk7CiAgICAgaWYgKEZBSUxFRChocikpCiAgICAgICAgIHJldHVybiBocjsKZGlm
ZiAtLWdpdCBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZyBiL1dlYktpdFRvb2xzL0NoYW5nZUxvZwpp
bmRleCA3ZTA1MDUyLi4wZTNmYjlmIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMDUtMTkg
IE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9zZSB0aGUgZWRpdGluZyBiZWhh
dmlvciBzZXR0aW5nIGluIERSVCB0byB0ZXN0IGFsbCBlZGl0aW5nIGNvZGUgcGF0aHMKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4NjAzCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChz
ZXRFZGl0aW5nQmVoYXZpb3JDYWxsYmFjayk6IEFkZGVkLgorICAgICAgICAoTGF5b3V0VGVzdENv
bnRyb2xsZXI6OnN0YXRpY0Z1bmN0aW9ucyk6IEV4cG9zZSB0aGUgc2V0RWRpdGluZ0JlaGF2aW9y
Q2FsbGJhY2sgZnVuY3Rpb24uCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0
Q29udHJvbGxlci5jcHA6IEFkZCBjYWxsYmFjayBtZXRob2QgZm9yIHNldHRpbmcgZWRpdGluZyBi
ZWhhdmlvci4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRUZXN0Q29u
dHJvbGxlci5oOiBEZWNsYXJhdGlvbiBmb3IgdGhpcyBtZXRob2QuCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVyR3RrLmNwcDogCisgICAgICAgIChMYXlv
dXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTogSW1wbGVtZW50YXRpb24gb2Yg
ZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL21hYy9M
YXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVy
OjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBEaXR0bworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0
L0xheW91dFRlc3RDb250cm9sbGVyUXQuY3BwOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZGVkIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgZWRp
dGluZyBiZWhhdmlvciBjb250cm9sLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91
dFRlc3RDb250cm9sbGVyUXQuaDoKKyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRF
ZGl0aW5nQmVoYXZpb3IpOiBBZGQgc2xvdCBmb3IgY29udHJvbGxpbmcgZWRpdG9yIGJlaGF2aW9y
LgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5j
cHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTog
SW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwOgorICAgICAgICAoTGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZGVkIHN0dWIgaW1wbGVt
ZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgorCiAyMDEwLTA1LTE4ICBLZW50
IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEaW1p
dHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZjU2NGFmYS4uYjk2YTljOSAxMDA2NDQKLS0tIGEvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCisrKyBiL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMzEs
NiArMzEsNyBAQAogCiAjaW5jbHVkZSAiV29ya1F1ZXVlLmgiCiAjaW5jbHVkZSAiV29ya1F1ZXVl
SXRlbS5oIgorI2luY2x1ZGUgPGNzdHJpbmc+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlND
b250ZXh0UmVmLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNPYmplY3RSZWYuaD4KICNp
bmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1JldGFpblB0ci5oPgpAQCAtMTQ1Myw2ICsxNDU0LDMz
IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGF1dGhlbnRpY2F0ZVNlc3Npb25DYWxsYmFjayhKU0NvbnRl
eHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYsCiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZp
bmVkKGNvbnRleHQpOwogfQogCitzdGF0aWMgSlNWYWx1ZVJlZiBzZXRFZGl0aW5nQmVoYXZpb3JD
YWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTT2Jq
ZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVm
IGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCit7CisgICAgLy8gVGhlIGVkaXRp
bmcgYmVoYXZpb3Igc3RyaW5nLgorICAgIGlmIChhcmd1bWVudENvdW50IDwgMSkKKyAgICAgICAg
cmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOworCisgICAgSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IGVkaXRpbmdCZWhhdmlvcihBZG9wdCwgSlNWYWx1ZVRvU3RyaW5nQ29weShj
b250ZXh0LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbikpOworICAgIEFTU0VSVCghKmV4Y2VwdGlv
bik7CisKKyAgICBzaXplX3QgbWF4TGVuZ3RoID0gSlNTdHJpbmdHZXRNYXhpbXVtVVRGOENTdHJp
bmdTaXplKGVkaXRpbmdCZWhhdmlvci5nZXQoKSk7CisgICAgY2hhciogYmVoYXZpb3JCdWZmZXIg
PSBuZXcgY2hhclttYXhMZW5ndGggKyAxXTsKKyAgICBKU1N0cmluZ0dldFVURjhDU3RyaW5nKGVk
aXRpbmdCZWhhdmlvci5nZXQoKSwgYmVoYXZpb3JCdWZmZXIsIG1heExlbmd0aCk7CisKKyAgICBp
ZiAoc3RyY21wKGJlaGF2aW9yQnVmZmVyLCAibWFjIikgJiYgc3RyY21wKGJlaGF2aW9yQnVmZmVy
LCAid2luIikpIHsKKyAgICAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IGludmFsaWRBcmd1
bWVudChKU1N0cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiUGFzc2VkIGludmFsaWQgZWRpdGlu
ZyBiZWhhdmlvci4gTXVzdCBiZSAnbWFjJyBvciAnd2luJy4iKSk7CisgICAgICAgICpleGNlcHRp
b24gPSBKU1ZhbHVlTWFrZVN0cmluZyhjb250ZXh0LCBpbnZhbGlkQXJndW1lbnQuZ2V0KCkpOwor
ICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisgICAgfQorCisg
ICAgTGF5b3V0VGVzdENvbnRyb2xsZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxMYXlvdXRU
ZXN0Q29udHJvbGxlcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7CisgICAgY29u
dHJvbGxlci0+c2V0RWRpdGluZ0JlaGF2aW9yKGJlaGF2aW9yQnVmZmVyKTsKKworICAgIGRlbGV0
ZSBbXSBiZWhhdmlvckJ1ZmZlcjsKKworICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChj
b250ZXh0KTsKK30KKwogLy8gU3RhdGljIFZhbHVlcwogCiBzdGF0aWMgSlNWYWx1ZVJlZiBnZXRH
bG9iYWxGbGFnQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIHRoaXNP
YmplY3QsIEpTU3RyaW5nUmVmIHByb3BlcnR5TmFtZSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpA
QCAtMTYwMiw2ICsxNjMwLDcgQEAgSlNTdGF0aWNGdW5jdGlvbiogTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnN0YXRpY0Z1bmN0aW9ucygpCiAgICAgICAgIHsgInNldEN1c3RvbVBvbGljeURlbGVnYXRl
Iiwgc2V0Q3VzdG9tUG9saWN5RGVsZWdhdGVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJz
ZXREYXRhYmFzZVF1b3RhIiwgc2V0RGF0YWJhc2VRdW90YUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sIAogICAg
ICAgICB7ICJzZXREb21haW5SZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lIiwgc2V0RG9t
YWluUmVsYXhhdGlvbkZvcmJpZGRlbkZvclVSTFNjaGVtZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAg
ICAgIHsgInNldEVkaXRpbmdCZWhhdmlvciIsIHNldEVkaXRpbmdCZWhhdmlvckNhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCiAgICAgICAgIHsgInNldEZyYW1lRmxhdHRlbmluZ0VuYWJsZWQiLCBzZXRGcmFtZUZs
YXR0ZW5pbmdFbmFibGVkQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAic2V0R2VvbG9jYXRp
b25QZXJtaXNzaW9uIiwgc2V0R2VvbG9jYXRpb25QZXJtaXNzaW9uQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
ICAgICAgICAgeyAic2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyIsIHNldEhhbmRs
ZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXNDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LApkaWZmIC0tZ2l0IGEv
V2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktp
dFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggYzZkYTJm
Zi4uOGZmMzhkMSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0
VGVzdENvbnRyb2xsZXIuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCkBAIC05OSw2ICs5OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEZy
YW1lRmxhdHRlbmluZ0VuYWJsZWQoYm9vbCBlbmFibGUpOwogICAgIHZvaWQgc2V0U3BhdGlhbE5h
dmlnYXRpb25FbmFibGVkKGJvb2wgZW5hYmxlKTsKICAgICB2b2lkIHNldFNjcm9sbGJhclBvbGlj
eShKU1N0cmluZ1JlZiBvcmllbnRhdGlvbiwgSlNTdHJpbmdSZWYgcG9saWN5KTsKKyAgICB2b2lk
IHNldEVkaXRpbmdCZWhhdmlvcihjb25zdCBjaGFyKiBlZGl0aW5nQmVoYXZpb3IpOwogCiAgICAg
dm9pZCB3YWl0Rm9yUG9saWN5RGVsZWdhdGUoKTsKICAgICBzaXplX3Qgd2ViSGlzdG9yeUl0ZW1D
b3VudCgpOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
TGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCmluZGV4IGM0NTkxMzYuLjZiOWE2MTcgMTAw
NjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9M
YXlvdXRUZXN0Q29udHJvbGxlci5jcHAKQEAgLTE1OSw2ICsxNTksNyBAQCBMYXlvdXRUZXN0Q29u
dHJvbGxlcjo6TGF5b3V0VGVzdENvbnRyb2xsZXIoVGVzdFNoZWxsKiBzaGVsbCkKICAgICBiaW5k
TWV0aG9kKCJzZXRUaW1lbGluZVByb2ZpbGluZ0VuYWJsZWQiLCAmTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZCk7CiAgICAgYmluZE1ldGhvZCgiZXZhbHVh
dGVJbldlYkluc3BlY3RvciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6ZXZhbHVhdGVJbldlYklu
c3BlY3Rvcik7CiAgICAgYmluZE1ldGhvZCgiZm9yY2VSZWRTZWxlY3Rpb25Db2xvcnMiLCAmTGF5
b3V0VGVzdENvbnRyb2xsZXI6OmZvcmNlUmVkU2VsZWN0aW9uQ29sb3JzKTsKKyAgICBiaW5kTWV0
aG9kKCJzZXRFZGl0aW5nQmVoYXZpb3IiLCAmTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRp
bmdCZWhhdmlvcik7CiAKICAgICAvLyBUaGUgZmFsbGJhY2sgbWV0aG9kIGlzIGNhbGxlZCB3aGVu
IGFuIHVua25vd24gbWV0aG9kIGlzIGludm9rZWQuCiAgICAgYmluZEZhbGxiYWNrTWV0aG9kKCZM
YXlvdXRUZXN0Q29udHJvbGxlcjo6ZmFsbGJhY2tNZXRob2QpOwpAQCAtMTI3MiwzICsxMjczLDE1
IEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmFkZFVzZXJTdHlsZVNoZWV0KGNvbnN0IENw
cEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDCiAgICAgICAgIHJldHVybjsKICAgICBtX3NoZWxs
LT53ZWJWaWV3KCktPmFkZFVzZXJTdHlsZVNoZWV0KFdlYlN0cmluZzo6ZnJvbVVURjgoYXJndW1l
bnRzWzBdLnRvU3RyaW5nKCkpKTsKIH0KKwordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0
RWRpdGluZ0JlaGF2aW9yKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJp
YW50KiByZXN1bHRzKQoreworICAgIFdlYlNldHRpbmdzKiBzZXR0aW5ncyA9IG1fc2hlbGwtPndl
YlZpZXcoKS0+c2V0dGluZ3MoKTsKKyAgICBzdHJpbmcga2V5ID0gYXJndW1lbnRzWzBdLnRvU3Ry
aW5nKCk7CisgICAgaWYgKGtleSA9PSAibWFjIikKKyAgICAgICAgc2V0dGluZ3MtPnNldEVkaXRp
bmdCZWhhdmlvcihXZWJTZXR0aW5nczo6RWRpdGluZ0JlaGF2aW9yTWFjKTsKKyAgICBlbHNlIGlm
IChrZXkgPT0gIndpbiIpCisgICAgICAgIHNldHRpbmdzLT5zZXRFZGl0aW5nQmVoYXZpb3IoV2Vi
U2V0dGluZ3M6OkVkaXRpbmdCZWhhdmlvcldpbik7CisgICAgZWxzZQorICAgICAgICBsb2dFcnJv
clRvQ29uc29sZSgiUGFzc2VkIGludmFsaWQgZWRpdGluZyBiZWhhdmlvci4gU2hvdWxkIGJlICdt
YWMnIG9yICd3aW4nLiIpOworfQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaCBiL1dlYktpdFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9sbGVyLmgKaW5kZXggNzBmM2ZmNi4uYTFj
MmRhMCAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5
b3V0VGVzdENvbnRyb2xsZXIuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oCkBAIC0yMDksNiArMjA5LDggQEAgcHVibGljOgog
ICAgIC8vIEdyYW50cyBwZXJtaXNzaW9uIGZvciBkZXNrdG9wIG5vdGlmaWNhdGlvbnMgdG8gYW4g
b3JpZ2luCiAgICAgdm9pZCBncmFudERlc2t0b3BOb3RpZmljYXRpb25QZXJtaXNzaW9uKGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKIAorICAgIHZvaWQgc2V0RWRpdGluZ0Jl
aGF2aW9yKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKwogICAgIC8vIFRo
ZSBmb2xsb3dpbmcgYXJlIG9ubHkgc3R1YnMuICBUT0RPKHBhbWcpOiBJbXBsZW1lbnQgYW55IG9m
IHRoZXNlIHRoYXQKICAgICAvLyBhcmUgbmVlZGVkIHRvIHBhc3MgdGhlIGxheW91dCB0ZXN0cy4K
ICAgICB2b2lkIGR1bXBBc1dlYkFyY2hpdmUoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFy
aWFudCopOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91
dFRlc3RDb250cm9sbGVyR3RrLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9M
YXlvdXRUZXN0Q29udHJvbGxlckd0ay5jcHAKaW5kZXggNGZmYWI4OC4uZThiODYyNyAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91dFRlc3RDb250cm9sbGVy
R3RrLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENv
bnRyb2xsZXJHdGsuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSA8SmF2YVNjcmlwdENv
cmUvSlNSZXRhaW5QdHIuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU1N0cmluZ1JlZi5o
PgogCisjaW5jbHVkZSA8Y3N0cmluZz4KICNpbmNsdWRlIDxpb3N0cmVhbT4KICNpbmNsdWRlIDxz
c3RyZWFtPgogI2luY2x1ZGUgPHN0ZGlvLmg+CkBAIC02OTMsMyArNjk0LDE0IEBAIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6bWFya2VyVGV4dEZvckxpc3RJ
dGVtKEpTQ29udGV4dFJlCiB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphdXRoZW50aWNhdGVT
ZXNzaW9uKEpTU3RyaW5nUmVmLCBKU1N0cmluZ1JlZiwgSlNTdHJpbmdSZWYpCiB7CiB9CisKK3Zv
aWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhhdmlvcihjb25zdCBjaGFyKiBl
ZGl0aW5nQmVoYXZpb3IpCit7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IHdlYmtpdF93
ZWJfZnJhbWVfZ2V0X3dlYl92aWV3KG1haW5GcmFtZSk7CisgICAgV2ViS2l0V2ViU2V0dGluZ3Mq
IHNldHRpbmdzID0gd2Via2l0X3dlYl92aWV3X2dldF9zZXR0aW5ncyh3ZWJWaWV3KTsKKworICAg
IGlmICghc3RyY21wKGVkaXRpbmdCZWhhdmlvciwgIndpbiIpKQorICAgICAgICBnX29iamVjdF9z
ZXQoR19PQkpFQ1Qoc2V0dGluZ3MpLCAiZWRpdGluZy1iZWhhdmlvciIsIFdFQktJVF9FRElUSU5H
X0JFSEFWSU9SX1dJTkRPV1MsIE5VTEwpOworICAgIGlmICghc3RyY21wKGVkaXRpbmdCZWhhdmlv
ciwgIm1hYyIpKQorICAgICAgICBnX29iamVjdF9zZXQoR19PQkpFQ1Qoc2V0dGluZ3MpLCAiZWRp
dGluZy1iZWhhdmlvciIsIFdFQktJVF9FRElUSU5HX0JFSEFWSU9SX01BQywgTlVMTCk7Cit9CmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRy
b2xsZXJNYWMubW0gYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENv
bnRyb2xsZXJNYWMubW0KaW5kZXggNDRhZWE4MS4uOWU1ZmQ2OSAxMDA2NDQKLS0tIGEvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCisrKyBi
L1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5t
bQpAQCAtODQ5LDMgKzg0OSwxMyBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjphdXRoZW50
aWNhdGVTZXNzaW9uKEpTU3RyaW5nUmVmIHVybCwgSlNTdHJpbmdSZWYgdXNlcgogICAgIFtTeW5j
aHJvbm91c0xvYWRlciBtYWtlUmVxdWVzdDpyZXF1ZXN0IHdpdGhVc2VybmFtZTooTlNTdHJpbmcg
Kil1c2VybmFtZUNGLmdldCgpIHBhc3N3b3JkOihOU1N0cmluZyAqKXBhc3N3b3JkQ0YuZ2V0KCld
OwogI2VuZGlmCiB9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhh
dmlvcihjb25zdCBjaGFyKiBlZGl0aW5nQmVoYXZpb3IpCit7CisgICAgTlNTdHJpbmcqIGVkaXRp
bmdCZWhhdmlvck5TID0gW05TU3RyaW5nIHN0cmluZ1dpdGhVVEY4U3RyaW5nOmVkaXRpbmdCZWhh
dmlvcl07CisgICAgaWYgKFtlZGl0aW5nQmVoYXZpb3JOUyBpc0VxdWFsVG9TdHJpbmc6QCJtYWMi
XSkKKyAgICAgICAgW1tXZWJQcmVmZXJlbmNlcyBzdGFuZGFyZFByZWZlcmVuY2VzXSBzZXRFZGl0
aW5nQmVoYXZpb3I6V2ViS2l0RWRpdGluZ01hY0JlaGF2aW9yXTsKKyAgICBpZiAoW2VkaXRpbmdC
ZWhhdmlvck5TIGlzRXF1YWxUb1N0cmluZzpAIndpbiJdKQorICAgICAgICBbW1dlYlByZWZlcmVu
Y2VzIHN0YW5kYXJkUHJlZmVyZW5jZXNdIHNldEVkaXRpbmdCZWhhdmlvcjpXZWJLaXRFZGl0aW5n
V2luQmVoYXZpb3JdOworICAgIFtlZGl0aW5nQmVoYXZpb3JOUyByZWxlYXNlXTsKK30KZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVy
UXQuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xs
ZXJRdC5jcHAKaW5kZXggMWZhZGQ2MS4uOTYxNjgzNSAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMv
RHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKKysrIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5jcHAKQEAgLTYz
OCw1ICs2MzgsMTAgQEAgdm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0SWNvbkRhdGFiYXNl
RW5hYmxlZChib29sIGVuYWJsZSkKICAgICAgICAgUVdlYlNldHRpbmdzOjpzZXRJY29uRGF0YWJh
c2VQYXRoKFFTdHJpbmcoKSk7CiB9CiAKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVk
aXRpbmdCZWhhdmlvcihjb25zdCBRU3RyaW5nJiBlZGl0aW5nQmVoYXZpb3IpCit7CisgICAgLy8g
RklYTUU6IEltcGxlbWVudC4KK30KKwogY29uc3QgdW5zaWduZWQgTGF5b3V0VGVzdENvbnRyb2xs
ZXI6Om1heFZpZXdXaWR0aCA9IDgwMDsKIGNvbnN0IHVuc2lnbmVkIExheW91dFRlc3RDb250cm9s
bGVyOjptYXhWaWV3SGVpZ2h0ID0gNjAwOwpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oIGIvV2ViS2l0VG9vbHMvRHVtcFJl
bmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5oCmluZGV4IDEzNTlhNmYuLjVmYjQw
YjYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RD
b250cm9sbGVyUXQuaAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRU
ZXN0Q29udHJvbGxlclF0LmgKQEAgLTE5Myw2ICsxOTMsOCBAQCBwdWJsaWMgc2xvdHM6CiAgICAg
Ly8gU2ltdWxhdGUgYSByZXF1ZXN0IGFuIGVtYmVkZGluZyBhcHBsaWNhdGlvbiBjb3VsZCBtYWtl
LCBwb3B1bGF0aW5nIHBlci1zZXNzaW9uIGNyZWRlbnRpYWwgc3RvcmFnZS4KICAgICB2b2lkIGF1
dGhlbnRpY2F0ZVNlc3Npb24oY29uc3QgUVN0cmluZyYgdXJsLCBjb25zdCBRU3RyaW5nJiB1c2Vy
bmFtZSwgY29uc3QgUVN0cmluZyYgcGFzc3dvcmQpOwogCisgICAgdm9pZCBzZXRFZGl0aW5nQmVo
YXZpb3IoY29uc3QgUVN0cmluZyYgZWRpdGluZ0JlaGF2aW9yKTsKKwogcHJpdmF0ZSBzbG90czoK
ICAgICB2b2lkIHByb2Nlc3NXb3JrKCk7CiAKZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAgYi9XZWJLaXRUb29scy9E
dW1wUmVuZGVyVHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCmluZGV4IDExMmIz
NTUuLmM3MGI1MTcgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9M
YXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKKysrIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcApAQCAtMTI2NywzICsxMjY3LDIwIEBA
IHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldFdlYlZpZXdFZGl0YWJsZShib29sKQogdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YXV0aGVudGljYXRlU2Vzc2lvbihKU1N0cmluZ1JlZiwg
SlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmKQogewogfQorCit2b2lkIExheW91dFRlc3RDb250cm9s
bGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IoY29uc3QgY2hhciogZWRpdGluZ0JlaGF2aW9yKQorewor
ICAgIENPTVB0cjxJV2ViVmlldz4gd2ViVmlldzsKKyAgICBpZiAoRkFJTEVEKGZyYW1lLT53ZWJW
aWV3KCZ3ZWJWaWV3KSkpCisgICAgICAgIHJldHVybjsKKworICAgIENPTVB0cjxJV2ViUHJlZmVy
ZW5jZXM+IHByZWZlcmVuY2VzOworICAgIGlmIChGQUlMRUQod2ViVmlldy0+cHJlZmVyZW5jZXMo
JnByZWZlcmVuY2VzKSkpCisgICAgICAgIHJldHVybjsKKworICAgIHN0cmluZyBiZWhhdmlvclN0
cmluZyhlZGl0aW5nQmVoYXZpb3IpOworICAgIGlmIChiZWhhdmlvclN0cmluZyA9PSAibWFjIikK
KyAgICAgICAgcHJlZmVyZW5jZXMtPnNldEVkaXRpbmdCZWhhdmlvcihXZWJLaXRFZGl0aW5nTWFj
QmVoYXZpb3IpOworICAgIGlmIChiZWhhdmlvclN0cmluZyA9PSAid2luIikKKyAgICAgICAgcHJl
ZmVyZW5jZXMtPnNldEVkaXRpbmdCZWhhdmlvcihXZWJLaXRFZGl0aW5nV2luQmVoYXZpb3IpOwor
fQpkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd3gvTGF5b3V0VGVzdENv
bnRyb2xsZXJXeC5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0
Q29udHJvbGxlcld4LmNwcAppbmRleCBiYzE1N2JlLi5kMzRlNDBhIDEwMDY0NAotLS0gYS9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNwcAorKysg
Yi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJvbGxlcld4LmNw
cApAQCAtNDQ2LDMgKzQ0Niw4IEBAIEpTVmFsdWVSZWYgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmNv
bXB1dGVkU3R5bGVJbmNsdWRpbmdWaXNpdGVkSW5mbyhKU0NvbnRleHRSZWYsCiB2b2lkIExheW91
dFRlc3RDb250cm9sbGVyOjphdXRoZW50aWNhdGVTZXNzaW9uKEpTU3RyaW5nUmVmLCBKU1N0cmlu
Z1JlZiwgSlNTdHJpbmdSZWYpCiB7CiB9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNl
dEVkaXRpbmdCZWhhdmlvcihKU1N0cmluZ1JlZiBlZGl0aW5nQmVoYXZpb3IpCit7CisgICAgLy8g
RklYTUU6IEltcGxlbWVudAorfQotLSAKMS42LjMuMwoK
</data>
<flag name="review"
          id="40974"
          type_id="1"
          status="+"
          setter="ojan"
    />
    <flag name="commit-queue"
          id="40975"
          type_id="3"
          status="-"
          setter="mrobinson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56545</attachid>
            <date>2010-05-19 18:38:46 -0700</date>
            <delta_ts>2010-05-25 10:52:06 -0700</delta_ts>
            <desc>Patch (with build fix)</desc>
            <filename>0001-Expose-the-editing-behavior-setting-in-DRT-to-test-a.patch</filename>
            <type>text/plain</type>
            <size>37649</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">RnJvbSA1YmJjYmJiNTNiYmQ1ZjlhZTIxNDdhNGFiM2Y0MTQ4NTk1ODQ0NWEzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJ0aW4gUm9iaW5zb24gPG1yb2JpbnNvbkB3ZWJraXQub3Jn
PgpEYXRlOiBXZWQsIDUgTWF5IDIwMTAgMTY6MTg6NTkgLTA3MDAKU3ViamVjdDogW1BBVENIXSBF
eHBvc2UgdGhlIGVkaXRpbmcgYmVoYXZpb3Igc2V0dGluZyBpbiBEUlQgdG8gdGVzdCBhbGwgZWRp
dGluZyBjb2RlIHBhdGhzCiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
Mzg2MDMKClBhdGNoIGJ5IE1hcnRpbiBSb2JpbnNvbiA8bXJvYmluc29uQHdlYmtpdC5vcmc+IG9u
IDIwMTAtMDUtMTkKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXZWJLaXQvY2hyb21pdW06
CgoqIHB1YmxpYy9XZWJTZXR0aW5ncy5oOgooV2ViS2l0OjpXZWJTZXR0aW5nczo6KTogQWRkZWQg
YW4gZW51bSBmb3IgRWRpdGluZ0JlaGF2aW9yIHR5cGVzLgoqIHNyYy9XZWJTZXR0aW5nc0ltcGwu
Y3BwOgooV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZGVk
LgoqIHNyYy9XZWJTZXR0aW5nc0ltcGwuaDoKCldlYktpdC9tYWM6CgoqIFdlYlZpZXcvV2ViRnJh
bWUubW06Cihjb3JlKToKKiBXZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaDogQWRkZWQgYSBjb252
ZXJzaW9uIG1ldGhvZCBmcm9tIHRoZSBBUEkgZW51bSB0byB0aGUgV2ViQ29yZSBlbnVtLgoqIFdl
YlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZGVkIGEgcHJlZmVyZW5jZSBrZXkg
Zm9yIHRoZSBuZXcgc2V0dGluZy4KKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgooK1tXZWJQ
cmVmZXJlbmNlcyBpbml0aWFsaXplXSk6IEluaXRpYWxpemUgdGhlIEVkaXRpbmdCZWhhdmlvciB0
byBNYWMgc3R5bGUuCigtW1dlYlByZWZlcmVuY2VzIGVkaXRpbmdCZWhhdmlvcl0pOiBBZGRlZC4K
KC1bV2ViUHJlZmVyZW5jZXMgc2V0RWRpdGluZ0JlaGF2aW9yOl0pOiBBZGRlZC4KKiBXZWJWaWV3
L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oOiBBZGRlZCB0aGUgbmV3IEFQSSBwb2ludHMgdG8gdGhl
IHByaXZhdGUgQVBJLgoqIFdlYlZpZXcvV2ViVmlldy5tbToKKC1bV2ViVmlldyBfcHJlZmVyZW5j
ZXNDaGFuZ2VkTm90aWZpY2F0aW9uOl0pOiBTZXQgdGhlIGVkaXRpbmcgYmVoYXZpb3IgdmlhIHRo
ZSBXZWJQcmVmZXJlbmNlcyBzZXR0aW5nLgoKV2ViS2l0L3dpbjoKCkV4cG9zZSB0aGUgRWRpdGlu
Z0JlaGF2aW9yIHNldHRpbmcgaW4gdGhlIFdpbmRvd3MgQVBJLgoKKiBJbnRlcmZhY2VzL0lXZWJQ
cmVmZXJlbmNlcy5pZGw6IEFkZCB0aGUgQVBJIHBvaW50IGZvciBzZXR0aW5nIHRoZSBlZGl0aW5n
IGJlaGF2aW9yLgoqIFdlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oOiBBZGQgYSBrZXkgZm9yIHRo
ZSBlZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcuCiogV2ViUHJlZmVyZW5jZXMuY3BwOgooV2ViUHJl
ZmVyZW5jZXM6OmVkaXRpbmdCZWhhdmlvcik6IEFkZGVkLgooV2ViUHJlZmVyZW5jZXM6OnNldEVk
aXRpbmdCZWhhdmlvcik6IEFkZGVkLgoqIFdlYlByZWZlcmVuY2VzLmg6IEFkZCBtZXRob2QgZGVj
bGFyYXRpb25zLgoqIFdlYlZpZXcuY3BwOgooV2ViVmlldzo6bm90aWZ5UHJlZmVyZW5jZXNDaGFu
Z2VkKTogVXBkYXRlIHRoZSBXZWJDb3JlIHNldHRpbmcgYmFzZWQgb24gdGhlIFdlYlByZWZlcmVu
Y2VzIHNldHRpbmcuCgpXZWJLaXRUb29sczoKCiogRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwOgooc2V0RWRpdGluZ0JlaGF2aW9yQ2FsbGJhY2spOiBBZGRlZC4KKExheW91
dFRlc3RDb250cm9sbGVyOjpzdGF0aWNGdW5jdGlvbnMpOiBFeHBvc2UgdGhlIHNldEVkaXRpbmdC
ZWhhdmlvckNhbGxiYWNrIGZ1bmN0aW9uLgoqIER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250
cm9sbGVyLmg6CiogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
Y3BwOiBBZGQgY2FsbGJhY2sgbWV0aG9kIGZvciBzZXR0aW5nIGVkaXRpbmcgYmVoYXZpb3IuCiog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaDogRGVjbGFyYXRp
b24gZm9yIHRoaXMgbWV0aG9kLgoqIER1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJv
bGxlckd0ay5jcHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTog
SW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgoqIER1bXBSZW5kZXJU
cmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxlck1hYy5tbToKKExheW91dFRlc3RDb250cm9sbGVy
OjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBEaXR0bwoqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRl
c3RDb250cm9sbGVyUXQuY3BwOgooTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRpbmdCZWhh
dmlvcik6IEFkZGVkIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250
cm9sLgoqIER1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaDoKKExheW91
dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBBZGQgc2xvdCBmb3IgY29udHJv
bGxpbmcgZWRpdG9yIGJlaGF2aW9yLgoqIER1bXBSZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29u
dHJvbGxlcldpbi5jcHA6CihMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9y
KTogSW1wbGVtZW50YXRpb24gb2YgZWRpdGluZyBiZWhhdmlvciBjb250cm9sLgoqIER1bXBSZW5k
ZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwOgooTGF5b3V0VGVzdENvbnRyb2xs
ZXI6OnNldEVkaXRpbmdCZWhhdmlvcik6IEFkZGVkIHN0dWIgaW1wbGVtZW50YXRpb24gb2YgZWRp
dGluZyBiZWhhdmlvciBjb250cm9sLgoKTGF5b3V0VGVzdHM6CgoqIGVkaXRpbmcvc2VsZWN0aW9u
L2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLmh0bWw6IFVzZSB0aGUgbmV3IERS
VCBzdXBwb3J0IGZvciBjaGFuZ2luZyBlZGl0aW5nIGJlaGF2aW9yLgoqIGVkaXRpbmcvc2VsZWN0
aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLWV4cGVjdGVkLnR4dDogVXBk
YXRlIGV4cGVjdGVkIHJlc3VsdHMgdG8gcmVmbGVjdCBib3RoIGJlaGF2aW9ycy4KLS0tCiBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTAgKysr
KysrKwogLi4ueHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGljay1leHBlY3RlZC50eHQg
fCAgICAyICsKIC4uLi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGljay5odG1sICAg
ICAgIHwgICAyNiArKysrKysrKysrKy0tLS0tLQogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAg
ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsrKysrKysrKwogV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJTZXR0aW5ncy5oICAgICAgICAgICAgICAgfCAgICA2ICsrKysKIFdlYktpdC9j
aHJvbWl1bS9zcmMvQXNzZXJ0TWF0Y2hpbmdFbnVtcy5jcHAgICAgICAgIHwgICAgNSArKysKIFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcCAgICAgICAgICAgIHwgICAgNSAr
KysKIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmggICAgICAgICAgICAgIHwg
ICAgMSArCiBXZWJLaXQvbWFjL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMTkgKysrKysrKysrKysrKwogV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tICAg
ICAgICAgICAgICAgICAgICAgfCAgIDEyICsrKysrKysrCiBXZWJLaXQvbWFjL1dlYlZpZXcvV2Vi
RnJhbWVJbnRlcm5hbC5oICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oICAgICAgfCAgICAxICsKIFdlYktpdC9tYWMvV2Vi
Vmlldy9XZWJQcmVmZXJlbmNlcy5tbSAgICAgICAgICAgICAgIHwgICAxMSArKysrKysrCiBXZWJL
aXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggICAgICAgICB8ICAgIDggKysr
KysKIFdlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tICAgICAgICAgICAgICAgICAgICAgIHwg
ICAgMSArCiBXZWJLaXQvd2luL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICB8ICAgMTggKysrKysrKysrKysrCiBXZWJLaXQvd2luL0ludGVyZmFjZXMvSVdlYlByZWZlcmVu
Y2VzLmlkbCAgICAgICAgICB8ICAgIDkgKysrKysrCiBXZWJLaXQvd2luL1dlYlByZWZlcmVuY2VL
ZXlzUHJpdmF0ZS5oICAgICAgICAgICAgICB8ICAgIDEgKwogV2ViS2l0L3dpbi9XZWJQcmVmZXJl
bmNlcy5jcHAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE1ICsrKysrKysrKysKIFdlYktpdC93
aW4vV2ViUHJlZmVyZW5jZXMuaCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiArKysrCiBX
ZWJLaXQvd2luL1dlYlZpZXcuY3BwICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYg
KysrKwogV2ViS2l0VG9vbHMvQ2hhbmdlTG9nICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
fCAgIDI2ICsrKysrKysrKysrKysrKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENv
bnRyb2xsZXIuY3BwICAgICAgICB8ICAgMjkgKysrKysrKysrKysrKysrKysrKysKIFdlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmggIHwgICAgMSArCiAuLi4v
Y2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwICAgICAgICAgICAgICB8ICAgMTMgKysr
KysrKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIu
aCB8ICAgIDIgKwogLi4uL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJvbGxlckd0
ay5jcHAgfCAgIDEyICsrKysrKysrCiAuLi4vRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RD
b250cm9sbGVyTWFjLm1tICB8ICAgMTAgKysrKysrKwogLi4uL0R1bXBSZW5kZXJUcmVlL3F0L0xh
eW91dFRlc3RDb250cm9sbGVyUXQuY3BwICAgfCAgICA1ICsrKwogLi4uL0R1bXBSZW5kZXJUcmVl
L3F0L0xheW91dFRlc3RDb250cm9sbGVyUXQuaCAgICAgfCAgICAyICsKIC4uLi9EdW1wUmVuZGVy
VHJlZS93aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwIHwgICAxNyArKysrKysrKysrKwog
Li4uL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwICAgfCAgICA1
ICsrKwogMzIgZmlsZXMgY2hhbmdlZCwgMjg5IGluc2VydGlvbnMoKyksIDkgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCmluZGV4IDhkNGQwOGEuLjAyNjYwODIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMC0w
NS0xOSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRoZSBlZGl0aW5n
IGJlaGF2aW9yIHNldHRpbmcgaW4gRFJUIHRvIHRlc3QgYWxsIGVkaXRpbmcgY29kZSBwYXRocwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2MDMKKwor
ICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91Ymxl
LWNsaWNrLmh0bWw6IFVzZSB0aGUgbmV3IERSVCBzdXBwb3J0IGZvciBjaGFuZ2luZyBlZGl0aW5n
IGJlaGF2aW9yLgorICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24t
YWZ0ZXItZG91YmxlLWNsaWNrLWV4cGVjdGVkLnR4dDogVXBkYXRlIGV4cGVjdGVkIHJlc3VsdHMg
dG8gcmVmbGVjdCBib3RoIGJlaGF2aW9ycy4KKwogMjAxMC0wNS0xOSAgTWFydGluIFJvYmluc29u
ICA8bXJvYmluc29uQGlnYWxpYS5jb20+CiAKICAgICAgICAgTm90IHJldmlld2VkLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRl
ci1kb3VibGUtY2xpY2stZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rp
b24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2stZXhwZWN0ZWQudHh0CmluZGV4
IGVkMmQ2YTUuLjQzMTA3NTkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0
aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRlbmQtc2VsZWN0aW9uLWFmdGVyLWRv
dWJsZS1jbGljay1leHBlY3RlZC50eHQKQEAgLTUsMyArNSw1IEBAIFRoaXMgdGVzdCBkb2VzIG5v
dCBydW4gaW50ZXJhY3RpdmVseS4gSXQgdXNlcyB0aGUgZXZlbnQgc2VuZGVyIHRvIGRvIG1vdXNl
IGNsaWNrCiBUaGlzIGlzIGEgcGFyYWdyYXBoLgogCiBTVUNDRVNTCitTVUNDRVNTCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxlY3Rpb24tYWZ0
ZXItZG91YmxlLWNsaWNrLmh0bWwgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9leHRl
bmQtc2VsZWN0aW9uLWFmdGVyLWRvdWJsZS1jbGljay5odG1sCmluZGV4IDg5MTA4MGIuLjhiODhj
ODkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2VkaXRpbmcvc2VsZWN0aW9uL2V4dGVuZC1zZWxl
Y3Rpb24tYWZ0ZXItZG91YmxlLWNsaWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9z
ZWxlY3Rpb24vZXh0ZW5kLXNlbGVjdGlvbi1hZnRlci1kb3VibGUtY2xpY2suaHRtbApAQCAtMTgs
MTMgKzE4LDI1IEBACiAgICAgICAgIGV2ZW50U2VuZGVyLmxlYXBGb3J3YXJkKDEwMDApOwogICAg
IH0KIAotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQorICAgIGZ1bmN0aW9uIGxvZ1Jlc3VsdChyZXN1
bHQpCisgICAgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5u
ZXJIVE1MICs9IHJlc3VsdCArICI8YnIvPiI7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVz
dHMoKQogICAgIHsKICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIgfHwgIXdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAKKyAgICAgICAgcnVuVGVzdCgibWFjIiwg
ImEgcGFyYWdyYXBoIik7CisgICAgICAgIHJ1blRlc3QoIndpbiIsICJwYXJhZ3JhIik7CisgICAg
fQorCisgICAgZnVuY3Rpb24gcnVuVGVzdChiZWhhdmlvciwgZXhwZWN0ZWRUZXh0KQorICAgIHsK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0RWRpdGluZ0JlaGF2aW9yKGJlaGF2aW9y
KTsKICAgICAgICAgZG91YmxlQ2xpY2tXb3JkKCk7CiAgICAgICAgIGdldFNlbGVjdGlvbigpLm1v
ZGlmeSgiZXh0ZW5kIiwgImJhY2t3YXJkIiwgImNoYXJhY3RlciIpOwogICAgICAgICBnZXRTZWxl
Y3Rpb24oKS5tb2RpZnkoImV4dGVuZCIsICJiYWNrd2FyZCIsICJjaGFyYWN0ZXIiKTsKQEAgLTMy
LDE5ICs0NCwxNSBAQAogICAgICAgICBnZXRTZWxlY3Rpb24oKS5tb2RpZnkoImV4dGVuZCIsICJi
YWNrd2FyZCIsICJjaGFyYWN0ZXIiKTsKICAgICAgICAgZ2V0U2VsZWN0aW9uKCkubW9kaWZ5KCJl
eHRlbmQiLCAiYmFja3dhcmQiLCAiY2hhcmFjdGVyIik7CiAKLSAgICAgICAgdmFyIHJlc3VsdDsK
ICAgICAgICAgdmFyIHNlbGVjdGVkVGV4dCA9IGdldFNlbGVjdGlvbigpLnRvU3RyaW5nKCk7Ci0g
ICAgICAgIHZhciBvbk1hY1BsYXRmb3JtID0gbmF2aWdhdG9yLnVzZXJBZ2VudC5zZWFyY2goL1xi
TWFjIE9TIFhcYi8pICE9IC0xOwotICAgICAgICB2YXIgZXhwZWN0ZWRUZXh0ID0gb25NYWNQbGF0
Zm9ybSA/ICJhIHBhcmFncmFwaCIgOiAicGFyYWdyYSI7CiAgICAgICAgIGlmIChzZWxlY3RlZFRl
eHQgPT0gZXhwZWN0ZWRUZXh0KQotICAgICAgICAgICAgcmVzdWx0ID0gIlNVQ0NFU1MiOworICAg
ICAgICAgICAgbG9nUmVzdWx0KCJTVUNDRVNTIik7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAg
IHJlc3VsdCA9ICJGQUlMVVJFOiBUaGUgc2VsZWN0ZWQgdGV4dCBpcyBcIiIgKyBzZWxlY3RlZFRl
eHQgKyAiXCIgYW5kIHNob3VsZCBiZSBcIiIgKyBleHBlY3RlZFRleHQgKyAiXCIuIjsKLSAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmZpcnN0Q2hpbGQuZGF0YSA9IHJl
c3VsdDsKKyAgICAgICAgICAgIGxvZ1Jlc3VsdCgiRkFJTFVSRTogVGhlIHNlbGVjdGVkIHRleHQg
aXMgXCIiICsgc2VsZWN0ZWRUZXh0ICsgIlwiIGFuZCBzaG91bGQgYmUgXCIiICsgZXhwZWN0ZWRU
ZXh0ICsgIlwiLiIpOwogICAgIH0KIDwvc2NyaXB0PgogPC9oZWFkPgotPGJvZHkgb25sb2FkPSJy
dW5UZXN0KCkiPgorPGJvZHkgb25sb2FkPSJydW5UZXN0cygpIj4KIDxwPlRoaXMgdGVzdHMgbW9k
aWZ5aW5nIGEgc2VsZWN0aW9uIGNyZWF0ZWQgd2l0aCBhIGRvdWJsZSBjbGljayB3aXRoIHNoaWZ0
IGFycm93IGtleS48L3A+CiA8cCBzdHlsZT0iY29sb3I6Z3JlZW4iPgogICAgIFRoaXMgdGVzdCBk
b2VzIG5vdCBydW4gaW50ZXJhY3RpdmVseS4KQEAgLTU0LDUgKzYyLDUgQEAKICAgICBUaGUgc2Vs
ZWN0aW9uIHNob3VsZCBpbmNsdWRlIHRoZSB3b3JkcyAiYSBwYXJhZ3JhcGgiIG9uIG1hYyBhbmQg
InBhcmFncmEiIG9uIHdpbi9saW51eC4uCiA8L3A+CiA8cD5UaGlzIGlzIGEgcGFyYTxzcGFuIHN0
eWxlPSJjb2xvcjpibHVlIiBpZD0ic3RhcnQiPmc8L3NwYW4+cmFwaC48L3A+Ci08cCBpZD0icmVz
dWx0Ij5URVNUIEhBUyBOT1QgUlVOPC9wPgorPHAgaWQ9InJlc3VsdCI+PC9wPgogPC9ib2R5Pgpk
aWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKaW5kZXggYTQzMzkzOC4uYTZlMmUzNyAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTYgQEAKKzIwMTAtMDUtMTkgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkB3ZWJraXQub3Jn
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV4cG9z
ZSB0aGUgZWRpdGluZyBiZWhhdmlvciBzZXR0aW5nIGluIERSVCB0byB0ZXN0IGFsbCBlZGl0aW5n
IGNvZGUgcGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTM4NjAzCisKKyAgICAgICAgKiBwdWJsaWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViU2V0dGluZ3M6Oik6IEFkZGVkIGFuIGVudW0gZm9yIEVkaXRpbmdCZWhhdmlvciB0
eXBlcy4KKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDogCisgICAgICAgIChXZWJL
aXQ6OldlYlNldHRpbmdzSW1wbDo6c2V0RWRpdGluZ0JlaGF2aW9yKTogQWRkZWQuCisgICAgICAg
ICogc3JjL1dlYlNldHRpbmdzSW1wbC5oOgorCiAyMDEwLTA1LTE3ICBKZXJlbXkgT3Jsb3cgIDxq
b3Jsb3dAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4K
ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBiL1dlYktp
dC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAppbmRleCAzNTZkOWZhLi5kZDMxZWEwIDEw
MDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCkBAIC00Myw2ICs0MywxMSBAQCBjbGFz
cyBXZWJVUkw7CiAvLyB0aGVzZSBmdW5jdGlvbnMgaGF2ZSBhIDE6MSBtYXBwaW5nIHdpdGggdGhl
IG1ldGhvZHMgaW4gV2ViQ29yZS9wYWdlL3NldHRpbmdzLmguCiBjbGFzcyBXZWJTZXR0aW5ncyB7
CiBwdWJsaWM6CisgICAgZW51bSBFZGl0aW5nQmVoYXZpb3IgeworICAgICAgICBFZGl0aW5nQmVo
YXZpb3JNYWMsCisgICAgICAgIEVkaXRpbmdCZWhhdmlvcldpbgorICAgIH07CisKICAgICB2aXJ0
dWFsIHZvaWQgc2V0U3RhbmRhcmRGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0Rml4ZWRGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0U2VyaWZGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYpID0g
MDsKQEAgLTg0LDYgKzg5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRPZmZsaW5l
V2ViQXBwbGljYXRpb25DYWNoZUVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRFeHBlcmltZW50YWxXZWJHTEVuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRTaG93RGVidWdCb3JkZXJzKGJvb2wpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0RWRpdGlu
Z0JlaGF2aW9yKEVkaXRpbmdCZWhhdmlvcikgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgfldlYlNl
dHRpbmdzKCkgeyB9CmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL0Fzc2VydE1hdGNo
aW5nRW51bXMuY3BwIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9Bc3NlcnRNYXRjaGluZ0VudW1zLmNw
cAppbmRleCBlN2FlYjQ5Li5mYTdkNzNhIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vc3Jj
L0Fzc2VydE1hdGNoaW5nRW51bXMuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQXNzZXJ0
TWF0Y2hpbmdFbnVtcy5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJOb3RpZmljYXRp
b25QcmVzZW50ZXIuaCIKICNpbmNsdWRlICJQYXN0ZWJvYXJkUHJpdmF0ZS5oIgogI2luY2x1ZGUg
IlBsYXRmb3JtQ3Vyc29yLmgiCisjaW5jbHVkZSAiU2V0dGluZ3MuaCIKICNpbmNsdWRlICJTdHJp
bmdJbXBsLmgiCiAjaW5jbHVkZSAiVGV4dEFmZmluaXR5LmgiCiAjaW5jbHVkZSAiV2ViQWNjZXNz
aWJpbGl0eU9iamVjdC5oIgpAQCAtNTIsNiArNTMsNyBAQAogI2luY2x1ZGUgIldlYk1lZGlhUGxh
eWVyLmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uUHJlc2VudGVyLmgiCiAjaW5jbHVkZSAi
V2ViU2Nyb2xsYmFyLmgiCisjaW5jbHVkZSAiV2ViU2V0dGluZ3MuaCIKICNpbmNsdWRlICJXZWJU
ZXh0QWZmaW5pdHkuaCIKICNpbmNsdWRlICJXZWJUZXh0Q2FzZVNlbnNpdGl2aXR5LmgiCiAjaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KQEAgLTMwMCw2ICszMDIsOSBAQCBDT01QSUxFX0FTU0VS
VF9NQVRDSElOR19FTlVNKFdlYlNjcm9sbGJhcjo6U2Nyb2xsQnlQYWdlLCBTY3JvbGxCeVBhZ2Up
OwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShXZWJTY3JvbGxiYXI6OlNjcm9sbEJ5RG9j
dW1lbnQsIFNjcm9sbEJ5RG9jdW1lbnQpOwogQ09NUElMRV9BU1NFUlRfTUFUQ0hJTkdfRU5VTShX
ZWJTY3JvbGxiYXI6OlNjcm9sbEJ5UGl4ZWwsIFNjcm9sbEJ5UGl4ZWwpOwogCitDT01QSUxFX0FT
U0VSVF9NQVRDSElOR19FTlVNKFdlYlNldHRpbmdzOjpFZGl0aW5nQmVoYXZpb3JNYWMsIEVkaXRp
bmdNYWNCZWhhdmlvcik7CitDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlNldHRpbmdz
OjpFZGl0aW5nQmVoYXZpb3JXaW4sIEVkaXRpbmdXaW5kb3dzQmVoYXZpb3IpOworCiBDT01QSUxF
X0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlRleHRBZmZpbml0eVVwc3RyZWFtLCBVUFNUUkVBTSk7
CiBDT01QSUxFX0FTU0VSVF9NQVRDSElOR19FTlVNKFdlYlRleHRBZmZpbml0eURvd25zdHJlYW0s
IERPV05TVFJFQU0pOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRp
bmdzSW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKaW5k
ZXggM2FkZjNhYy4uNWYzMjM0NiAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJT
ZXR0aW5nc0ltcGwuY3BwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBs
LmNwcApAQCAtMjY5LDQgKzI2OSw5IEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRTaG93RGVi
dWdCb3JkZXJzKGJvb2wgc2hvdykKICAgICBtX3NldHRpbmdzLT5zZXRTaG93RGVidWdCb3JkZXJz
KHNob3cpOwogfQogCit2b2lkIFdlYlNldHRpbmdzSW1wbDo6c2V0RWRpdGluZ0JlaGF2aW9yKEVk
aXRpbmdCZWhhdmlvciBiZWhhdmlvcikKK3sKKyAgICBtX3NldHRpbmdzLT5zZXRFZGl0aW5nQmVo
YXZpb3Ioc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yPihiZWhhdmlvcikpOwor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU2V0dGluZ3NJbXBsLmggYi9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1w
bC5oCmluZGV4IGZkYzAzZjAuLjBhOTAwOTEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5n
c0ltcGwuaApAQCAtODUsNiArODUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldE9m
ZmxpbmVXZWJBcHBsaWNhdGlvbkNhY2hlRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0RXhwZXJpbWVudGFsV2ViR0xFbmFibGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRT
aG93RGVidWdCb3JkZXJzKGJvb2wpOworICAgIHZpcnR1YWwgdm9pZCBzZXRFZGl0aW5nQmVoYXZp
b3IoRWRpdGluZ0JlaGF2aW9yKTsKIAogcHJpdmF0ZToKICAgICBXZWJDb3JlOjpTZXR0aW5ncyog
bV9zZXR0aW5nczsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKaW5kZXggYTk5MGE1MC4uNTFhYzgxOCAxMDA2NDQKLS0tIGEvV2ViS2l0L21h
Yy9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAor
MjAxMC0wNS0xOSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRoZSBl
ZGl0aW5nIGJlaGF2aW9yIHNldHRpbmcgaW4gRFJUIHRvIHRlc3QgYWxsIGVkaXRpbmcgY29kZSBw
YXRocworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2
MDMKKworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWUubW06CisgICAgICAgIChjb3JlKToKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaDogQWRkZWQgYSBjb252ZXJzaW9uIG1l
dGhvZCBmcm9tIHRoZSBBUEkgZW51bSB0byB0aGUgV2ViQ29yZSBlbnVtLgorICAgICAgICAqIFdl
YlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZGVkIGEgcHJlZmVyZW5jZSBrZXkg
Zm9yIHRoZSBuZXcgc2V0dGluZy4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1t
OgorICAgICAgICAoK1tXZWJQcmVmZXJlbmNlcyBpbml0aWFsaXplXSk6IEluaXRpYWxpemUgdGhl
IEVkaXRpbmdCZWhhdmlvciB0byBNYWMgc3R5bGUuCisgICAgICAgICgtW1dlYlByZWZlcmVuY2Vz
IGVkaXRpbmdCZWhhdmlvcl0pOiBBZGRlZC4KKyAgICAgICAgKC1bV2ViUHJlZmVyZW5jZXMgc2V0
RWRpdGluZ0JlaGF2aW9yOl0pOiBBZGRlZC4KKyAgICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVu
Y2VzUHJpdmF0ZS5oOiBBZGRlZCB0aGUgbmV3IEFQSSBwb2ludHMgdG8gdGhlIHByaXZhdGUgQVBJ
LgorICAgICAgICAqIFdlYlZpZXcvV2ViVmlldy5tbToKKyAgICAgICAgKC1bV2ViVmlldyBfcHJl
ZmVyZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uOl0pOiBTZXQgdGhlIGVkaXRpbmcgYmVoYXZpb3Ig
dmlhIHRoZSBXZWJQcmVmZXJlbmNlcyBzZXR0aW5nLgorCiAyMDEwLTA1LTE4ICBUb255IENoYW5n
ICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIu
CmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWUubW0gYi9XZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWUubW0KaW5kZXggNzU0NWJkOC4uNWQwYjAyYSAxMDA2NDQKLS0tIGEv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lLm1tCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9X
ZWJGcmFtZS5tbQpAQCAtMTk2LDYgKzE5NiwxOCBAQCBFZGl0YWJsZUxpbmtCZWhhdmlvciBjb3Jl
KFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yIGVkaXRhYmxlTGlua0JlaGF2aW9yKQogICAgIHJl
dHVybiBFZGl0YWJsZUxpbmtEZWZhdWx0QmVoYXZpb3I7CiB9CiAKK1dlYkNvcmU6OkVkaXRpbmdC
ZWhhdmlvciBjb3JlKFdlYktpdEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcikKK3sKKyAgICBzd2l0
Y2ggKGJlaGF2aW9yKSB7CisgICAgICAgIGNhc2UgV2ViS2l0RWRpdGluZ01hY0JlaGF2aW9yOgor
ICAgICAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRpbmdNYWNCZWhhdmlvcjsKKyAgICAgICAg
Y2FzZSBXZWJLaXRFZGl0aW5nV2luQmVoYXZpb3I6CisgICAgICAgICAgICByZXR1cm4gV2ViQ29y
ZTo6RWRpdGluZ1dpbmRvd3NCZWhhdmlvcjsKKyAgICB9CisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7CisgICAgcmV0dXJuIFdlYkNvcmU6OkVkaXRpbmdNYWNCZWhhdmlvcjsKK30KKwogVGV4dERp
cmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciBjb3JlKFdlYlRleHREaXJlY3Rpb25TdWJt
ZW51SW5jbHVzaW9uQmVoYXZpb3IgYmVoYXZpb3IpCiB7CiAgICAgc3dpdGNoIChiZWhhdmlvcikg
ewpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaCBiL1dl
YktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZUludGVybmFsLmgKaW5kZXggNGMxZWU0MC4uOWIyMjQ4
YSAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lSW50ZXJuYWwuaAorKysg
Yi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVJbnRlcm5hbC5oCkBAIC03MSw2ICs3MSw3IEBA
IFdlYlZpZXcgKmtpdChXZWJDb3JlOjpQYWdlKik7CiAKIFdlYkNvcmU6OkVkaXRhYmxlTGlua0Jl
aGF2aW9yIGNvcmUoV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IpOwogV2ViQ29yZTo6VGV4dERp
cmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvciBjb3JlKFdlYlRleHREaXJlY3Rpb25TdWJt
ZW51SW5jbHVzaW9uQmVoYXZpb3IpOworV2ViQ29yZTo6RWRpdGluZ0JlaGF2aW9yIGNvcmUoV2Vi
S2l0RWRpdGluZ0JlaGF2aW9yKTsKIAogV2ViVmlldyAqZ2V0V2ViVmlldyhXZWJGcmFtZSAqd2Vi
RnJhbWUpOwogCmRpZmYgLS1naXQgYS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtl
eXNQcml2YXRlLmggYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRl
LmgKaW5kZXggMGQxNTQ2Zi4uYmE0ZGY4ZiAxMDA2NDQKLS0tIGEvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQ
cmVmZXJlbmNlS2V5c1ByaXZhdGUuaApAQCAtMTA1LDYgKzEwNSw3IEBACiAjZGVmaW5lIFdlYktp
dEVkaXRhYmxlTGlua0JlaGF2aW9yUHJlZmVyZW5jZUtleSBAIldlYktpdEVkaXRhYmxlTGlua0Jl
aGF2aW9yIgogI2RlZmluZSBXZWJLaXRDYWNoZU1vZGVsUHJlZmVyZW5jZUtleSBAIldlYktpdENh
Y2hlTW9kZWxQcmVmZXJlbmNlS2V5IgogI2RlZmluZSBXZWJLaXRUZXh0RGlyZWN0aW9uU3VibWVu
dUluY2x1c2lvbkJlaGF2aW9yUHJlZmVyZW5jZUtleSBAIldlYktpdFRleHREaXJlY3Rpb25TdWJt
ZW51SW5jbHVzaW9uQmVoYXZpb3JQcmVmZXJlbmNlS2V5IgorI2RlZmluZSBXZWJLaXRFZGl0aW5n
QmVoYXZpb3JQcmVmZXJlbmNlS2V5IEAiV2ViS2l0RWRpdGluZ0JlaGF2aW9yIgogCiAvLyBDb3Jl
R3JhcGhpY3MgZGVmZXJyZWQgdXBkYXRlcyBhcmUgZGlzYWJsZWQgaWYgV2ViS2l0RW5hYmxlQ29h
bGVzY2VkVXBkYXRlc1ByZWZlcmVuY2VLZXkgaXMgc2V0CiAvLyB0byBOTywgb3IgaGFzIG5vIHZh
bHVlLiAgRm9yIGNvbXBhdGliaWxpdHkgd2l0aCBNYWMgT1MgWCAxMC40LjYsIGRlZmVycmVkIHVw
ZGF0ZXMgYXJlIE9GRiBieQpkaWZmIC0tZ2l0IGEvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZl
cmVuY2VzLm1tIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCmluZGV4IDQy
N2Y2ZmUuLmFjOTgyODIgMTAwNjQ0Ci0tLSBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlcy5tbQorKysgYi9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXMubW0KQEAgLTMz
NCw2ICszMzQsNyBAQCBzdGF0aWMgV2ViQ2FjaGVNb2RlbCBjYWNoZU1vZGVsRm9yTWFpbkJ1bmRs
ZSh2b2lkKQogICAgICAgICBAIjAiLCAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYktpdFBE
RlNjYWxlRmFjdG9yUHJlZmVyZW5jZUtleSwKICAgICAgICAgQCIwIiwgICAgICAgICAgICAgICAg
ICAgICAgICAgICBXZWJLaXRVc2VTaXRlU3BlY2lmaWNTcG9vZmluZ1ByZWZlcmVuY2VLZXksCiAg
ICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoSW50OldlYktpdEVkaXRhYmxlTGlua0RlZmF1bHRC
ZWhhdmlvcl0sIFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yUHJlZmVyZW5jZUtleSwKKyAgICAg
ICAgW05TTnVtYmVyIG51bWJlcldpdGhJbnQ6V2ViS2l0RWRpdGluZ01hY0JlaGF2aW9yXSwgV2Vi
S2l0RWRpdGluZ0JlaGF2aW9yUHJlZmVyZW5jZUtleSwKICNpZiAhZGVmaW5lZChCVUlMRElOR19P
Tl9USUdFUikgJiYgIWRlZmluZWQoQlVJTERJTkdfT05fTEVPUEFSRCkKICAgICAgICAgW05TTnVt
YmVyIG51bWJlcldpdGhJbnQ6V2ViVGV4dERpcmVjdGlvblN1Ym1lbnVBdXRvbWF0aWNhbGx5SW5j
bHVkZWRdLAogI2Vsc2UKQEAgLTEyNDcsNiArMTI0OCwxNiBAQCBzdGF0aWMgTlNTdHJpbmcgKmNs
YXNzSUJDcmVhdG9ySUQgPSBuaWw7CiAgICAgW3NlbGYgX3NldEJvb2xWYWx1ZTpmbGFnIGZvcktl
eTpXZWJLaXRIVE1MNVBhcnNlckVuYWJsZWRQcmVmZXJlbmNlS2V5XTsKIH0KIAorLSAoV2ViS2l0
RWRpdGluZ0JlaGF2aW9yKWVkaXRpbmdCZWhhdmlvcgoreworICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxXZWJLaXRFZGl0aW5nQmVoYXZpb3I+KFtzZWxmIF9pbnRlZ2VyVmFsdWVGb3JLZXk6V2ViS2l0
RWRpdGluZ0JlaGF2aW9yUHJlZmVyZW5jZUtleV0pOworfQorCistICh2b2lkKXNldEVkaXRpbmdC
ZWhhdmlvcjooV2ViS2l0RWRpdGluZ0JlaGF2aW9yKWJlaGF2aW9yCit7CisgICAgW3NlbGYgX3Nl
dEludGVnZXJWYWx1ZTpiZWhhdmlvciBmb3JLZXk6V2ViS2l0RWRpdGluZ0JlaGF2aW9yUHJlZmVy
ZW5jZUtleV07Cit9CisKIC0gKHZvaWQpZGlkUmVtb3ZlRnJvbVdlYlZpZXcKIHsKICAgICBBU1NF
UlQoX3ByaXZhdGUtPm51bVdlYlZpZXdzKTsKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJl
bmNlc1ByaXZhdGUuaAppbmRleCA3YTE0OTFjLi42MzM3MDA4IDEwMDY0NAotLS0gYS9XZWJLaXQv
bWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvV2ViS2l0L21hYy9XZWJW
aWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC00Myw2ICs0MywxMSBAQCB0eXBlZGVmIGVu
dW0gewogICAgIFdlYlRleHREaXJlY3Rpb25TdWJtZW51QWx3YXlzSW5jbHVkZWQKIH0gV2ViVGV4
dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcjsKIAordHlwZWRlZiBlbnVtIHsKKyAg
ICBXZWJLaXRFZGl0aW5nTWFjQmVoYXZpb3IsCisgICAgV2ViS2l0RWRpdGluZ1dpbkJlaGF2aW9y
LAorfSBXZWJLaXRFZGl0aW5nQmVoYXZpb3I7CisKIGV4dGVybiBOU1N0cmluZyAqV2ViUHJlZmVy
ZW5jZXNDaGFuZ2VkTm90aWZpY2F0aW9uOwogZXh0ZXJuIE5TU3RyaW5nICpXZWJQcmVmZXJlbmNl
c1JlbW92ZWROb3RpZmljYXRpb247CiAKQEAgLTEyOSw2ICsxMzQsOSBAQCBleHRlcm4gTlNTdHJp
bmcgKldlYlByZWZlcmVuY2VzUmVtb3ZlZE5vdGlmaWNhdGlvbjsKIC0gKFdlYktpdEVkaXRhYmxl
TGlua0JlaGF2aW9yKWVkaXRhYmxlTGlua0JlaGF2aW9yOwogLSAodm9pZClzZXRFZGl0YWJsZUxp
bmtCZWhhdmlvcjooV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IpYmVoYXZpb3I7CiAKKy0gKFdl
YktpdEVkaXRpbmdCZWhhdmlvcillZGl0aW5nQmVoYXZpb3I7CistICh2b2lkKXNldEVkaXRpbmdC
ZWhhdmlvcjooV2ViS2l0RWRpdGluZ0JlaGF2aW9yKWJlaGF2aW9yOworCiAtIChXZWJUZXh0RGly
ZWN0aW9uU3VibWVudUluY2x1c2lvbkJlaGF2aW9yKXRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVz
aW9uQmVoYXZpb3I7CiAtICh2b2lkKXNldFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVo
YXZpb3I6KFdlYlRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IpYmVoYXZpb3I7
CiAKZGlmZiAtLWdpdCBhL1dlYktpdC9tYWMvV2ViVmlldy9XZWJWaWV3Lm1tIGIvV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYlZpZXcubW0KaW5kZXggY2QxNjQ3MS4uODM3ZTkwOCAxMDA2NDQKLS0tIGEv
V2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvV2ViS2l0L21hYy9XZWJWaWV3L1dl
YlZpZXcubW0KQEAgLTEzNjgsNiArMTM2OCw3IEBAIHN0YXRpYyBib29sIGZhc3REb2N1bWVudFRl
YXJkb3duRW5hYmxlZCgpCiAgICAgc2V0dGluZ3MtPnNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShb
cHJlZmVyZW5jZXMgdGV4dEFyZWFzQXJlUmVzaXphYmxlXSk7CiAgICAgc2V0dGluZ3MtPnNldFNo
cmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQoW3ByZWZlcmVuY2VzIHNocmlua3NTdGFuZGFsb25l
SW1hZ2VzVG9GaXRdKTsKICAgICBzZXR0aW5ncy0+c2V0RWRpdGFibGVMaW5rQmVoYXZpb3IoY29y
ZShbcHJlZmVyZW5jZXMgZWRpdGFibGVMaW5rQmVoYXZpb3JdKSk7CisgICAgc2V0dGluZ3MtPnNl
dEVkaXRpbmdCZWhhdmlvcihjb3JlKFtwcmVmZXJlbmNlcyBlZGl0aW5nQmVoYXZpb3JdKSk7CiAg
ICAgc2V0dGluZ3MtPnNldFRleHREaXJlY3Rpb25TdWJtZW51SW5jbHVzaW9uQmVoYXZpb3IoY29y
ZShbcHJlZmVyZW5jZXMgdGV4dERpcmVjdGlvblN1Ym1lbnVJbmNsdXNpb25CZWhhdmlvcl0pKTsK
ICAgICBzZXR0aW5ncy0+c2V0RE9NUGFzdGVBbGxvd2VkKFtwcmVmZXJlbmNlcyBpc0RPTVBhc3Rl
QWxsb3dlZF0pOwogICAgIHNldHRpbmdzLT5zZXRVc2VzUGFnZUNhY2hlKFtzZWxmIHVzZXNQYWdl
Q2FjaGVdKTsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vQ2hhbmdlTG9nIGIvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKaW5kZXggYTY3ZTEwZi4uMjA5MjI2NSAxMDA2NDQKLS0tIGEvV2ViS2l0L3dpbi9D
aGFuZ2VMb2cKKysrIGIvV2ViS2l0L3dpbi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAx
MC0wNS0xOSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRoZSBlZGl0
aW5nIGJlaGF2aW9yIHNldHRpbmcgaW4gRFJUIHRvIHRlc3QgYWxsIGVkaXRpbmcgY29kZSBwYXRo
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2MDMK
KworICAgICAgICBFeHBvc2UgdGhlIEVkaXRpbmdCZWhhdmlvciBzZXR0aW5nIGluIHRoZSBXaW5k
b3dzIEFQSS4KKworICAgICAgICAqIEludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzLmlkbDogQWRk
IHRoZSBBUEkgcG9pbnQgZm9yIHNldHRpbmcgdGhlIGVkaXRpbmcgYmVoYXZpb3IuCisgICAgICAg
ICogV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmg6IEFkZCBhIGtleSBmb3IgdGhlIGVkaXRpbmcg
YmVoYXZpb3Igc2V0dGluZy4KKyAgICAgICAgKiBXZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAg
IChXZWJQcmVmZXJlbmNlczo6ZWRpdGluZ0JlaGF2aW9yKTogQWRkZWQuCisgICAgICAgIChXZWJQ
cmVmZXJlbmNlczo6c2V0RWRpdGluZ0JlaGF2aW9yKTogQWRkZWQuCisgICAgICAgICogV2ViUHJl
ZmVyZW5jZXMuaDogQWRkIG1ldGhvZCBkZWNsYXJhdGlvbnMuCisgICAgICAgICogV2ViVmlldy5j
cHA6CisgICAgICAgIChXZWJWaWV3Ojpub3RpZnlQcmVmZXJlbmNlc0NoYW5nZWQpOiBVcGRhdGUg
dGhlIFdlYkNvcmUgc2V0dGluZyBiYXNlZCBvbiB0aGUgV2ViUHJlZmVyZW5jZXMgc2V0dGluZy4K
KwogMjAxMC0wNS0xMyAgQnJpYW4gV2VpbnN0ZWluICA8YndlaW5zdGVpbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgUmV2aWV3ZWQgYnkgVGltIEhhdGNoZXIuCmRpZmYgLS1naXQgYS9XZWJLaXQvd2lu
L0ludGVyZmFjZXMvSVdlYlByZWZlcmVuY2VzLmlkbCBiL1dlYktpdC93aW4vSW50ZXJmYWNlcy9J
V2ViUHJlZmVyZW5jZXMuaWRsCmluZGV4IDFjNDMxMzUuLmI2ZDhlN2QgMTAwNjQ0Ci0tLSBhL1dl
YktpdC93aW4vSW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXMuaWRsCisrKyBiL1dlYktpdC93aW4v
SW50ZXJmYWNlcy9JV2ViUHJlZmVyZW5jZXMuaWRsCkBAIC00Nyw2ICs0NywxMiBAQCB0eXBlZGVm
IGVudW0gV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IgewogICAgIFdlYktpdEVkaXRhYmxlTGlu
a05ldmVyTGl2ZQogfSBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvcjsKIAordHlwZWRlZiBlbnVt
IFdlYktpdEVkaXRpbmdCZWhhdmlvciB7CisgICAgV2ViS2l0RWRpdGluZ01hY0JlaGF2aW9yID0g
MCwKKyAgICBXZWJLaXRFZGl0aW5nV2luQmVoYXZpb3IsCit9IFdlYktpdEVkaXRpbmdCZWhhdmlv
cjsKKworCiB0eXBlZGVmIGVudW0gV2ViS2l0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeSB7CiAg
ICAgV2ViS2l0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeUFsd2F5cyA9IDAsCiAgICAgV2ViS2l0
Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeU5ldmVyLApAQCAtMTYyLDYgKzE2OCw5IEBAIGludGVy
ZmFjZSBJV2ViUHJlZmVyZW5jZXMgOiBJVW5rbm93bgogICAgIEhSRVNVTFQgZWRpdGFibGVMaW5r
QmVoYXZpb3IoW291dCwgcmV0dmFsXSBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciogZWRpdGFi
bGVMaW5rQmVoYXZpb3IpOwogICAgIEhSRVNVTFQgc2V0RWRpdGFibGVMaW5rQmVoYXZpb3IoW2lu
XSBXZWJLaXRFZGl0YWJsZUxpbmtCZWhhdmlvciBiZWhhdmlvcik7CiAKKyAgICBIUkVTVUxUIGVk
aXRpbmdCZWhhdmlvcihbb3V0LCByZXR2YWxdIFdlYktpdEVkaXRpbmdCZWhhdmlvciogZWRpdGlu
Z0JlaGF2aW9yKTsKKyAgICBIUkVTVUxUIHNldEVkaXRpbmdCZWhhdmlvcihbaW5dIFdlYktpdEVk
aXRpbmdCZWhhdmlvciBiZWhhdmlvcik7CisKICAgICBIUkVTVUxUIGNvb2tpZVN0b3JhZ2VBY2Nl
cHRQb2xpY3koW291dCwgcmV0dmFsXSBXZWJLaXRDb29raWVTdG9yYWdlQWNjZXB0UG9saWN5KiBh
Y2NlcHRQb2xpY3kpOwogICAgIEhSRVNVTFQgc2V0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeShb
aW5dIFdlYktpdENvb2tpZVN0b3JhZ2VBY2NlcHRQb2xpY3kgYWNjZXB0UG9saWN5KTsKIApkaWZm
IC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaCBiL1dlYktpdC93
aW4vV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKaW5kZXggYzQ5YTk2ZC4uZGE2Mzc1NCAxMDA2
NDQKLS0tIGEvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaAorKysgYi9XZWJL
aXQvd2luL1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCkBAIC03NCw2ICs3NCw3IEBACiAjZGVm
aW5lIFdlYktpdFBERkRpc3BsYXlNb2RlUHJlZmVyZW5jZUtleSAiV2ViS2l0UERGRGlzcGxheU1v
ZGUiCiAjZGVmaW5lIFdlYktpdFBERlNjYWxlRmFjdG9yUHJlZmVyZW5jZUtleSAiV2ViS2l0UERG
U2NhbGVGYWN0b3IiCiAjZGVmaW5lIFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yUHJlZmVyZW5j
ZUtleSAiV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IiCisjZGVmaW5lIFdlYktpdEVkaXRpbmdC
ZWhhdmlvclByZWZlcmVuY2VLZXkgIldlYktpdEVkaXRpbmdCZWhhdmlvciIKIAogLy8gV2luZG93
IGRpc3BsYXkgaXMgdGhyb3R0bGVkIHRvIDYwIGZyYW1lcyBwZXIgc2Vjb25kIGlmIFdlYktpdFRo
cm90dGxlV2luZG93RGlzcGxheVByZWZlcmVuY2VLZXkKIC8vIGlzIHNldCB0byBZRVMuICBUaGUg
d2luZG93IGRpc3BsYXkgdGhyb3R0bGUgaXMgT0ZGIGJ5IGRlZmF1bHQgZm9yIGNvbXBhdGliaWxp
dHkgd2l0aCBNYWMgT1MgWApkaWZmIC0tZ2l0IGEvV2ViS2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5j
cHAgYi9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCAzM2U5MDRkLi4zZTdlYTQy
IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9XZWJLaXQv
d2luL1dlYlByZWZlcmVuY2VzLmNwcApAQCAtMTEzMCw2ICsxMTMwLDIxIEBAIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgV2ViUHJlZmVyZW5jZXM6OnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKAog
ICAgIHJldHVybiBTX09LOwogfQogCitIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIFdlYlByZWZl
cmVuY2VzOjplZGl0aW5nQmVoYXZpb3IoCisgICAgLyogW291dCwgcmV0dmFsXSAqLyBXZWJLaXRF
ZGl0aW5nQmVoYXZpb3IqIGVkaXRpbmdCZWhhdmlvcikKK3sKKyAgICAqZWRpdGluZ0JlaGF2aW9y
ID0gKFdlYktpdEVkaXRpbmdCZWhhdmlvcikgaW50ZWdlclZhbHVlRm9yS2V5KENGU1RSKFdlYktp
dEVkaXRpbmdCZWhhdmlvclByZWZlcmVuY2VLZXkpKTsKKyAgICByZXR1cm4gU19PSzsKK30KKwor
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6c2V0RWRpdGluZ0JlaGF2
aW9yKAorICAgIC8qIFtpbl0gKi8gV2ViS2l0RWRpdGFibGVMaW5rQmVoYXZpb3IgYmVoYXZpb3Ip
Cit7CisgICAgc2V0SW50ZWdlclZhbHVlKENGU1RSKFdlYktpdEVkaXRpbmdCZWhhdmlvclByZWZl
cmVuY2VLZXkpLCBiZWhhdmlvcik7CisgICAgcmV0dXJuIFNfT0s7Cit9CisKKwogSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBXZWJQcmVmZXJlbmNlczo6Y29va2llU3RvcmFnZUFjY2VwdFBvbGlj
eSggCiAgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gV2ViS2l0Q29va2llU3RvcmFnZUFjY2Vw
dFBvbGljeSAqYWNjZXB0UG9saWN5ICkKIHsKZGlmZiAtLWdpdCBhL1dlYktpdC93aW4vV2ViUHJl
ZmVyZW5jZXMuaCBiL1dlYktpdC93aW4vV2ViUHJlZmVyZW5jZXMuaAppbmRleCBjZmRlZmE4Li4x
ZWE2OWM3IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvV2Vi
S2l0L3dpbi9XZWJQcmVmZXJlbmNlcy5oCkBAIC0yMzgsNiArMjM4LDEyIEBAIHB1YmxpYzoKICAg
ICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0RWRpdGFibGVMaW5rQmVoYXZp
b3IoIAogICAgICAgICAvKiBbaW5dICovIFdlYktpdEVkaXRhYmxlTGlua0JlaGF2aW9yIGJlaGF2
aW9yKTsKIAorICAgIHZpcnR1YWwgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBlZGl0aW5nQmVo
YXZpb3IoCisgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gV2ViS2l0RWRpdGluZ0JlaGF2aW9y
KiBiZWhhdmlvcik7CisKKyAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0
RWRpdGluZ0JlaGF2aW9yKAorICAgICAgICAvKiBbaW5dICovIFdlYktpdEVkaXRpbmdCZWhhdmlv
ciBiZWhhdmlvcik7CisKICAgICB2aXJ0dWFsIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgY29v
a2llU3RvcmFnZUFjY2VwdFBvbGljeSggCiAgICAgICAgIC8qIFtyZXR2YWxdW291dF0gKi8gV2Vi
S2l0Q29va2llU3RvcmFnZUFjY2VwdFBvbGljeSAqYWNjZXB0UG9saWN5KTsKICAgICAgICAgCmRp
ZmYgLS1naXQgYS9XZWJLaXQvd2luL1dlYlZpZXcuY3BwIGIvV2ViS2l0L3dpbi9XZWJWaWV3LmNw
cAppbmRleCAxZmJkOGQzLi4xMzNjOTc3IDEwMDY0NAotLS0gYS9XZWJLaXQvd2luL1dlYlZpZXcu
Y3BwCisrKyBiL1dlYktpdC93aW4vV2ViVmlldy5jcHAKQEAgLTQ1OTMsNiArNDU5MywxMiBAQCBI
UkVTVUxUIFdlYlZpZXc6Om5vdGlmeVByZWZlcmVuY2VzQ2hhbmdlZChJV2ViTm90aWZpY2F0aW9u
KiBub3RpZmljYXRpb24pCiAgICAgICAgIHJldHVybiBocjsKICAgICBzZXR0aW5ncy0+c2V0RWRp
dGFibGVMaW5rQmVoYXZpb3IoKEVkaXRhYmxlTGlua0JlaGF2aW9yKWJlaGF2aW9yKTsKIAorICAg
IFdlYktpdEVkaXRpbmdCZWhhdmlvciBiZWhhdmlvcjsKKyAgICBociA9IHByZWZlcmVuY2VzLT5l
ZGl0aW5nQmVoYXZpb3IoJmJlaGF2aW9yKTsKKyAgICBpZiAoRkFJTEVEKGhyKSkKKyAgICAgICAg
cmV0dXJuIGhyOworICAgIHNldHRpbmdzLT5zZXRFZGl0aW5nQmVoYXZpb3IoKEVkaXRpbmdCZWhh
dmlvciliZWhhdmlvcik7CisKICAgICBociA9IHByZWZlcmVuY2VzLT51c2VzUGFnZUNhY2hlKCZl
bmFibGVkKTsKICAgICBpZiAoRkFJTEVEKGhyKSkKICAgICAgICAgcmV0dXJuIGhyOwpkaWZmIC0t
Z2l0IGEvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nIGIvV2ViS2l0VG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDdlMDUwNTIuLjBlM2ZiOWYgMTAwNjQ0Ci0tLSBhL1dlYktpdFRvb2xzL0NoYW5nZUxvZworKysg
Yi9XZWJLaXRUb29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMC0wNS0xOSAgTWFy
dGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRXhwb3NlIHRoZSBlZGl0aW5nIGJlaGF2aW9y
IHNldHRpbmcgaW4gRFJUIHRvIHRlc3QgYWxsIGVkaXRpbmcgY29kZSBwYXRocworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Mzg2MDMKKworICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKHNldEVk
aXRpbmdCZWhhdmlvckNhbGxiYWNrKTogQWRkZWQuCisgICAgICAgIChMYXlvdXRUZXN0Q29udHJv
bGxlcjo6c3RhdGljRnVuY3Rpb25zKTogRXhwb3NlIHRoZSBzZXRFZGl0aW5nQmVoYXZpb3JDYWxs
YmFjayBmdW5jdGlvbi4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJv
bGxlci5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250
cm9sbGVyLmNwcDogQWRkIGNhbGxiYWNrIG1ldGhvZCBmb3Igc2V0dGluZyBlZGl0aW5nIGJlaGF2
aW9yLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91dFRlc3RDb250cm9s
bGVyLmg6IERlY2xhcmF0aW9uIGZvciB0aGlzIG1ldGhvZC4KKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsuY3BwOiAKKyAgICAgICAgKExheW91dFRl
c3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBJbXBsZW1lbnRhdGlvbiBvZiBlZGl0
aW5nIGJlaGF2aW9yIGNvbnRyb2wuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL0xheW91
dFRlc3RDb250cm9sbGVyTWFjLm1tOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNl
dEVkaXRpbmdCZWhhdmlvcik6IERpdHRvCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5
b3V0VGVzdENvbnRyb2xsZXJRdC5jcHA6CisgICAgICAgIChMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0RWRpdGluZ0JlaGF2aW9yKTogQWRkZWQgc3R1YiBpbXBsZW1lbnRhdGlvbiBvZiBlZGl0aW5n
IGJlaGF2aW9yIGNvbnRyb2wuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVz
dENvbnRyb2xsZXJRdC5oOgorICAgICAgICAoTGF5b3V0VGVzdENvbnRyb2xsZXI6OnNldEVkaXRp
bmdCZWhhdmlvcik6IEFkZCBzbG90IGZvciBjb250cm9sbGluZyBlZGl0b3IgYmVoYXZpb3IuCisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcDoK
KyAgICAgICAgKExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0aW5nQmVoYXZpb3IpOiBJbXBs
ZW1lbnRhdGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCisgICAgICAgICogRHVtcFJl
bmRlclRyZWUvd3gvTGF5b3V0VGVzdENvbnRyb2xsZXJXeC5jcHA6CisgICAgICAgIChMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKTogQWRkZWQgc3R1YiBpbXBsZW1lbnRh
dGlvbiBvZiBlZGl0aW5nIGJlaGF2aW9yIGNvbnRyb2wuCisKIDIwMTAtMDUtMTggIEtlbnQgVGFt
dXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERpbWl0cmkg
R2xhemtvdi4KZGlmZiAtLWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRl
c3RDb250cm9sbGVyLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmNwcAppbmRleCBmNTY0YWZhLi5iOTZhOWM5IDEwMDY0NAotLS0gYS9XZWJLaXRU
b29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKKysrIGIvV2ViS2l0
VG9vbHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuY3BwCkBAIC0zMSw2ICsz
MSw3IEBACiAKICNpbmNsdWRlICJXb3JrUXVldWUuaCIKICNpbmNsdWRlICJXb3JrUXVldWVJdGVt
LmgiCisjaW5jbHVkZSA8Y3N0cmluZz4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU0NvbnRl
eHRSZWYuaD4KICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9KU09iamVjdFJlZi5oPgogI2luY2x1
ZGUgPEphdmFTY3JpcHRDb3JlL0pTUmV0YWluUHRyLmg+CkBAIC0xNDUzLDYgKzE0NTQsMzMgQEAg
c3RhdGljIEpTVmFsdWVSZWYgYXV0aGVudGljYXRlU2Vzc2lvbkNhbGxiYWNrKEpTQ29udGV4dFJl
ZiBjb250ZXh0LCBKU09iamVjdFJlZiwKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQo
Y29udGV4dCk7CiB9CiAKK3N0YXRpYyBKU1ZhbHVlUmVmIHNldEVkaXRpbmdCZWhhdmlvckNhbGxi
YWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RS
ZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJn
dW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3sKKyAgICAvLyBUaGUgZWRpdGluZyBi
ZWhhdmlvciBzdHJpbmcuCisgICAgaWYgKGFyZ3VtZW50Q291bnQgPCAxKQorICAgICAgICByZXR1
cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CisKKyAgICBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gZWRpdGluZ0JlaGF2aW9yKEFkb3B0LCBKU1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRl
eHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKSk7CisgICAgQVNTRVJUKCEqZXhjZXB0aW9uKTsK
KworICAgIHNpemVfdCBtYXhMZW5ndGggPSBKU1N0cmluZ0dldE1heGltdW1VVEY4Q1N0cmluZ1Np
emUoZWRpdGluZ0JlaGF2aW9yLmdldCgpKTsKKyAgICBjaGFyKiBiZWhhdmlvckJ1ZmZlciA9IG5l
dyBjaGFyW21heExlbmd0aCArIDFdOworICAgIEpTU3RyaW5nR2V0VVRGOENTdHJpbmcoZWRpdGlu
Z0JlaGF2aW9yLmdldCgpLCBiZWhhdmlvckJ1ZmZlciwgbWF4TGVuZ3RoKTsKKworICAgIGlmIChz
dHJjbXAoYmVoYXZpb3JCdWZmZXIsICJtYWMiKSAmJiBzdHJjbXAoYmVoYXZpb3JCdWZmZXIsICJ3
aW4iKSkgeworICAgICAgICBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gaW52YWxpZEFyZ3VtZW50
KEpTU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJQYXNzZWQgaW52YWxpZCBlZGl0aW5nIGJl
aGF2aW9yLiBNdXN0IGJlICdtYWMnIG9yICd3aW4nLiIpKTsKKyAgICAgICAgKmV4Y2VwdGlvbiA9
IEpTVmFsdWVNYWtlU3RyaW5nKGNvbnRleHQsIGludmFsaWRBcmd1bWVudC5nZXQoKSk7CisgICAg
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKKyAgICB9CisKKyAgICBM
YXlvdXRUZXN0Q29udHJvbGxlciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PExheW91dFRlc3RD
b250cm9sbGVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKKyAgICBjb250cm9s
bGVyLT5zZXRFZGl0aW5nQmVoYXZpb3IoYmVoYXZpb3JCdWZmZXIpOworCisgICAgZGVsZXRlIFtd
IGJlaGF2aW9yQnVmZmVyOworCisgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRl
eHQpOworfQorCiAvLyBTdGF0aWMgVmFsdWVzCiAKIHN0YXRpYyBKU1ZhbHVlUmVmIGdldEdsb2Jh
bEZsYWdDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgdGhpc09iamVj
dCwgSlNTdHJpbmdSZWYgcHJvcGVydHlOYW1lLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCkBAIC0x
NjAyLDYgKzE2MzAsNyBAQCBKU1N0YXRpY0Z1bmN0aW9uKiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c3RhdGljRnVuY3Rpb25zKCkKICAgICAgICAgeyAic2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUiLCBz
ZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldERh
dGFiYXNlUXVvdGEiLCBzZXREYXRhYmFzZVF1b3RhQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwgCiAgICAgICAg
IHsgInNldERvbWFpblJlbGF4YXRpb25Gb3JiaWRkZW5Gb3JVUkxTY2hlbWUiLCBzZXREb21haW5S
ZWxheGF0aW9uRm9yYmlkZGVuRm9yVVJMU2NoZW1lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmli
dXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKKyAgICAgICAg
eyAic2V0RWRpdGluZ0JlaGF2aW9yIiwgc2V0RWRpdGluZ0JlaGF2aW9yQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAic2V0RnJhbWVGbGF0dGVuaW5nRW5hYmxlZCIsIHNldEZyYW1lRmxhdHRl
bmluZ0VuYWJsZWRDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1By
b3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRHZW9sb2NhdGlvblBl
cm1pc3Npb24iLCBzZXRHZW9sb2NhdGlvblBlcm1pc3Npb25DYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJzZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzIiwgc2V0SGFuZGxlc0F1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCmRpZmYgLS1naXQgYS9XZWJL
aXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9v
bHMvRHVtcFJlbmRlclRyZWUvTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCBjNmRhMmZmLi44
ZmYzOGQxIDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9MYXlvdXRUZXN0
Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL0xheW91dFRlc3RD
b250cm9sbGVyLmgKQEAgLTk5LDYgKzk5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0RnJhbWVG
bGF0dGVuaW5nRW5hYmxlZChib29sIGVuYWJsZSk7CiAgICAgdm9pZCBzZXRTcGF0aWFsTmF2aWdh
dGlvbkVuYWJsZWQoYm9vbCBlbmFibGUpOwogICAgIHZvaWQgc2V0U2Nyb2xsYmFyUG9saWN5KEpT
U3RyaW5nUmVmIG9yaWVudGF0aW9uLCBKU1N0cmluZ1JlZiBwb2xpY3kpOworICAgIHZvaWQgc2V0
RWRpdGluZ0JlaGF2aW9yKGNvbnN0IGNoYXIqIGVkaXRpbmdCZWhhdmlvcik7CiAKICAgICB2b2lk
IHdhaXRGb3JQb2xpY3lEZWxlZ2F0ZSgpOwogICAgIHNpemVfdCB3ZWJIaXN0b3J5SXRlbUNvdW50
KCk7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlv
dXRUZXN0Q29udHJvbGxlci5jcHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9MYXlvdXRUZXN0Q29udHJvbGxlci5jcHAKaW5kZXggYzQ1OTEzNi4uNmI5YTYxNyAxMDA2NDQK
LS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRy
b2xsZXIuY3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0xheW91
dFRlc3RDb250cm9sbGVyLmNwcApAQCAtMTU5LDYgKzE1OSw3IEBAIExheW91dFRlc3RDb250cm9s
bGVyOjpMYXlvdXRUZXN0Q29udHJvbGxlcihUZXN0U2hlbGwqIHNoZWxsKQogICAgIGJpbmRNZXRo
b2QoInNldFRpbWVsaW5lUHJvZmlsaW5nRW5hYmxlZCIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6
c2V0VGltZWxpbmVQcm9maWxpbmdFbmFibGVkKTsKICAgICBiaW5kTWV0aG9kKCJldmFsdWF0ZUlu
V2ViSW5zcGVjdG9yIiwgJkxheW91dFRlc3RDb250cm9sbGVyOjpldmFsdWF0ZUluV2ViSW5zcGVj
dG9yKTsKICAgICBiaW5kTWV0aG9kKCJmb3JjZVJlZFNlbGVjdGlvbkNvbG9ycyIsICZMYXlvdXRU
ZXN0Q29udHJvbGxlcjo6Zm9yY2VSZWRTZWxlY3Rpb25Db2xvcnMpOworICAgIGJpbmRNZXRob2Qo
InNldEVkaXRpbmdCZWhhdmlvciIsICZMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0Jl
aGF2aW9yKTsKIAogICAgIC8vIFRoZSBmYWxsYmFjayBtZXRob2QgaXMgY2FsbGVkIHdoZW4gYW4g
dW5rbm93biBtZXRob2QgaXMgaW52b2tlZC4KICAgICBiaW5kRmFsbGJhY2tNZXRob2QoJkxheW91
dFRlc3RDb250cm9sbGVyOjpmYWxsYmFja01ldGhvZCk7CkBAIC0xMjcyLDMgKzEyNzMsMTUgQEAg
dm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6YWRkVXNlclN0eWxlU2hlZXQoY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiBhcmd1bWVudHMsIEMKICAgICAgICAgcmV0dXJuOwogICAgIG1fc2hlbGwtPndl
YlZpZXcoKS0+YWRkVXNlclN0eWxlU2hlZXQoV2ViU3RyaW5nOjpmcm9tVVRGOChhcmd1bWVudHNb
MF0udG9TdHJpbmcoKSkpOwogfQorCit2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRFZGl0
aW5nQmVoYXZpb3IoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQq
IHJlc3VsdHMpCit7CisgICAgV2ViU2V0dGluZ3MqIHNldHRpbmdzID0gbV9zaGVsbC0+d2ViVmll
dygpLT5zZXR0aW5ncygpOworICAgIHN0cmluZyBrZXkgPSBhcmd1bWVudHNbMF0udG9TdHJpbmco
KTsKKyAgICBpZiAoa2V5ID09ICJtYWMiKQorICAgICAgICBzZXR0aW5ncy0+c2V0RWRpdGluZ0Jl
aGF2aW9yKFdlYlNldHRpbmdzOjpFZGl0aW5nQmVoYXZpb3JNYWMpOworICAgIGVsc2UgaWYgKGtl
eSA9PSAid2luIikKKyAgICAgICAgc2V0dGluZ3MtPnNldEVkaXRpbmdCZWhhdmlvcihXZWJTZXR0
aW5nczo6RWRpdGluZ0JlaGF2aW9yV2luKTsKKyAgICBlbHNlCisgICAgICAgIGxvZ0Vycm9yVG9D
b25zb2xlKCJQYXNzZWQgaW52YWxpZCBlZGl0aW5nIGJlaGF2aW9yLiBTaG91bGQgYmUgJ21hYycg
b3IgJ3dpbicuIik7Cit9CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9MYXlvdXRUZXN0Q29udHJvbGxlci5oIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vTGF5b3V0VGVzdENvbnRyb2xsZXIuaAppbmRleCA3MGYzZmY2Li5hMWMyZGEw
IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9MYXlvdXRU
ZXN0Q29udHJvbGxlci5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L0xheW91dFRlc3RDb250cm9sbGVyLmgKQEAgLTIwOSw2ICsyMDksOCBAQCBwdWJsaWM6CiAgICAg
Ly8gR3JhbnRzIHBlcm1pc3Npb24gZm9yIGRlc2t0b3Agbm90aWZpY2F0aW9ucyB0byBhbiBvcmln
aW4KICAgICB2b2lkIGdyYW50RGVza3RvcE5vdGlmaWNhdGlvblBlcm1pc3Npb24oY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwogCisgICAgdm9pZCBzZXRFZGl0aW5nQmVoYXZp
b3IoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworCiAgICAgLy8gVGhlIGZv
bGxvd2luZyBhcmUgb25seSBzdHVicy4gIFRPRE8ocGFtZyk6IEltcGxlbWVudCBhbnkgb2YgdGhl
c2UgdGhhdAogICAgIC8vIGFyZSBuZWVkZWQgdG8gcGFzcyB0aGUgbGF5b3V0IHRlc3RzLgogICAg
IHZvaWQgZHVtcEFzV2ViQXJjaGl2ZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50
Kik7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVz
dENvbnRyb2xsZXJHdGsuY3BwIGIvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvZ3RrL0xheW91
dFRlc3RDb250cm9sbGVyR3RrLmNwcAppbmRleCA0ZmZhYjg4Li5lOGI4NjI3IDEwMDY0NAotLS0g
YS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9ndGsvTGF5b3V0VGVzdENvbnRyb2xsZXJHdGsu
Y3BwCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL2d0ay9MYXlvdXRUZXN0Q29udHJv
bGxlckd0ay5jcHAKQEAgLTM5LDYgKzM5LDcgQEAKICNpbmNsdWRlIDxKYXZhU2NyaXB0Q29yZS9K
U1JldGFpblB0ci5oPgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTU3RyaW5nUmVmLmg+CiAK
KyNpbmNsdWRlIDxjc3RyaW5nPgogI2luY2x1ZGUgPGlvc3RyZWFtPgogI2luY2x1ZGUgPHNzdHJl
YW0+CiAjaW5jbHVkZSA8c3RkaW8uaD4KQEAgLTY5MywzICs2OTQsMTQgQEAgSlNSZXRhaW5QdHI8
SlNTdHJpbmdSZWY+IExheW91dFRlc3RDb250cm9sbGVyOjptYXJrZXJUZXh0Rm9yTGlzdEl0ZW0o
SlNDb250ZXh0UmUKIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmF1dGhlbnRpY2F0ZVNlc3Np
b24oSlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVmLCBKU1N0cmluZ1JlZikKIHsKIH0KKwordm9pZCBM
YXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9yKGNvbnN0IGNoYXIqIGVkaXRp
bmdCZWhhdmlvcikKK3sKKyAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gd2Via2l0X3dlYl9m
cmFtZV9nZXRfd2ViX3ZpZXcobWFpbkZyYW1lKTsKKyAgICBXZWJLaXRXZWJTZXR0aW5ncyogc2V0
dGluZ3MgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NldHRpbmdzKHdlYlZpZXcpOworCisgICAgaWYg
KCFzdHJjbXAoZWRpdGluZ0JlaGF2aW9yLCAid2luIikpCisgICAgICAgIGdfb2JqZWN0X3NldChH
X09CSkVDVChzZXR0aW5ncyksICJlZGl0aW5nLWJlaGF2aW9yIiwgV0VCS0lUX0VESVRJTkdfQkVI
QVZJT1JfV0lORE9XUywgTlVMTCk7CisgICAgaWYgKCFzdHJjbXAoZWRpdGluZ0JlaGF2aW9yLCAi
bWFjIikpCisgICAgICAgIGdfb2JqZWN0X3NldChHX09CSkVDVChzZXR0aW5ncyksICJlZGl0aW5n
LWJlaGF2aW9yIiwgV0VCS0lUX0VESVRJTkdfQkVIQVZJT1JfTUFDLCBOVUxMKTsKK30KZGlmZiAt
LWdpdCBhL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJvbGxl
ck1hYy5tbSBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9MYXlvdXRUZXN0Q29udHJv
bGxlck1hYy5tbQppbmRleCA0NGFlYTgxLi45ZTVmZDY5IDEwMDY0NAotLS0gYS9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9tYWMvTGF5b3V0VGVzdENvbnRyb2xsZXJNYWMubW0KKysrIGIvV2Vi
S2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0xheW91dFRlc3RDb250cm9sbGVyTWFjLm1tCkBA
IC04NDksMyArODQ5LDEzIEBAIHZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6OmF1dGhlbnRpY2F0
ZVNlc3Npb24oSlNTdHJpbmdSZWYgdXJsLCBKU1N0cmluZ1JlZiB1c2VyCiAgICAgW1N5bmNocm9u
b3VzTG9hZGVyIG1ha2VSZXF1ZXN0OnJlcXVlc3Qgd2l0aFVzZXJuYW1lOihOU1N0cmluZyAqKXVz
ZXJuYW1lQ0YuZ2V0KCkgcGFzc3dvcmQ6KE5TU3RyaW5nICopcGFzc3dvcmRDRi5nZXQoKV07CiAj
ZW5kaWYKIH0KKwordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGluZ0JlaGF2aW9y
KGNvbnN0IGNoYXIqIGVkaXRpbmdCZWhhdmlvcikKK3sKKyAgICBOU1N0cmluZyogZWRpdGluZ0Jl
aGF2aW9yTlMgPSBbTlNTdHJpbmcgc3RyaW5nV2l0aFVURjhTdHJpbmc6ZWRpdGluZ0JlaGF2aW9y
XTsKKyAgICBpZiAoW2VkaXRpbmdCZWhhdmlvck5TIGlzRXF1YWxUb1N0cmluZzpAIm1hYyJdKQor
ICAgICAgICBbW1dlYlByZWZlcmVuY2VzIHN0YW5kYXJkUHJlZmVyZW5jZXNdIHNldEVkaXRpbmdC
ZWhhdmlvcjpXZWJLaXRFZGl0aW5nTWFjQmVoYXZpb3JdOworICAgIGlmIChbZWRpdGluZ0JlaGF2
aW9yTlMgaXNFcXVhbFRvU3RyaW5nOkAid2luIl0pCisgICAgICAgIFtbV2ViUHJlZmVyZW5jZXMg
c3RhbmRhcmRQcmVmZXJlbmNlc10gc2V0RWRpdGluZ0JlaGF2aW9yOldlYktpdEVkaXRpbmdXaW5C
ZWhhdmlvcl07CisgICAgW2VkaXRpbmdCZWhhdmlvck5TIHJlbGVhc2VdOworfQpkaWZmIC0tZ2l0
IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRyb2xsZXJRdC5j
cHAgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0
LmNwcAppbmRleCAxZmFkZDYxLi45NjE2ODM1IDEwMDY0NAotLS0gYS9XZWJLaXRUb29scy9EdW1w
UmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcAorKysgYi9XZWJLaXRUb29s
cy9EdW1wUmVuZGVyVHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmNwcApAQCAtNjM4LDUg
KzYzOCwxMCBAQCB2b2lkIExheW91dFRlc3RDb250cm9sbGVyOjpzZXRJY29uRGF0YWJhc2VFbmFi
bGVkKGJvb2wgZW5hYmxlKQogICAgICAgICBRV2ViU2V0dGluZ3M6OnNldEljb25EYXRhYmFzZVBh
dGgoUVN0cmluZygpKTsKIH0KIAordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRpdGlu
Z0JlaGF2aW9yKGNvbnN0IFFTdHJpbmcmIGVkaXRpbmdCZWhhdmlvcikKK3sKKyAgICAvLyBGSVhN
RTogSW1wbGVtZW50LgorfQorCiBjb25zdCB1bnNpZ25lZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6
bWF4Vmlld1dpZHRoID0gODAwOwogY29uc3QgdW5zaWduZWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
Om1heFZpZXdIZWlnaHQgPSA2MDA7CmRpZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmggYi9XZWJLaXRUb29scy9EdW1wUmVuZGVy
VHJlZS9xdC9MYXlvdXRUZXN0Q29udHJvbGxlclF0LmgKaW5kZXggMTM1OWE2Zi4uNWZiNDBiNiAx
MDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvcXQvTGF5b3V0VGVzdENvbnRy
b2xsZXJRdC5oCisrKyBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3F0L0xheW91dFRlc3RD
b250cm9sbGVyUXQuaApAQCAtMTkzLDYgKzE5Myw4IEBAIHB1YmxpYyBzbG90czoKICAgICAvLyBT
aW11bGF0ZSBhIHJlcXVlc3QgYW4gZW1iZWRkaW5nIGFwcGxpY2F0aW9uIGNvdWxkIG1ha2UsIHBv
cHVsYXRpbmcgcGVyLXNlc3Npb24gY3JlZGVudGlhbCBzdG9yYWdlLgogICAgIHZvaWQgYXV0aGVu
dGljYXRlU2Vzc2lvbihjb25zdCBRU3RyaW5nJiB1cmwsIGNvbnN0IFFTdHJpbmcmIHVzZXJuYW1l
LCBjb25zdCBRU3RyaW5nJiBwYXNzd29yZCk7CiAKKyAgICB2b2lkIHNldEVkaXRpbmdCZWhhdmlv
cihjb25zdCBRU3RyaW5nJiBlZGl0aW5nQmVoYXZpb3IpOworCiBwcml2YXRlIHNsb3RzOgogICAg
IHZvaWQgcHJvY2Vzc1dvcmsoKTsKIApkaWZmIC0tZ2l0IGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0xheW91dFRlc3RDb250cm9sbGVyV2luLmNwcCBiL1dlYktpdFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9MYXlvdXRUZXN0Q29udHJvbGxlcldpbi5jcHAKaW5kZXggMTEyYjM1NS4u
YzcwYjUxNyAxMDA2NDQKLS0tIGEvV2ViS2l0VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0xheW91
dFRlc3RDb250cm9sbGVyV2luLmNwcAorKysgYi9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93
aW4vTGF5b3V0VGVzdENvbnRyb2xsZXJXaW4uY3BwCkBAIC0xMjY3LDMgKzEyNjcsMjAgQEAgdm9p
ZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0V2ViVmlld0VkaXRhYmxlKGJvb2wpCiB2b2lkIExh
eW91dFRlc3RDb250cm9sbGVyOjphdXRoZW50aWNhdGVTZXNzaW9uKEpTU3RyaW5nUmVmLCBKU1N0
cmluZ1JlZiwgSlNTdHJpbmdSZWYpCiB7CiB9CisKK3ZvaWQgTGF5b3V0VGVzdENvbnRyb2xsZXI6
OnNldEVkaXRpbmdCZWhhdmlvcihjb25zdCBjaGFyKiBlZGl0aW5nQmVoYXZpb3IpCit7CisgICAg
Q09NUHRyPElXZWJWaWV3PiB3ZWJWaWV3OworICAgIGlmIChGQUlMRUQoZnJhbWUtPndlYlZpZXco
JndlYlZpZXcpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgQ09NUHRyPElXZWJQcmVmZXJlbmNl
cz4gcHJlZmVyZW5jZXM7CisgICAgaWYgKEZBSUxFRCh3ZWJWaWV3LT5wcmVmZXJlbmNlcygmcHJl
ZmVyZW5jZXMpKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3RyaW5nIGJlaGF2aW9yU3RyaW5n
KGVkaXRpbmdCZWhhdmlvcik7CisgICAgaWYgKGJlaGF2aW9yU3RyaW5nID09ICJtYWMiKQorICAg
ICAgICBwcmVmZXJlbmNlcy0+c2V0RWRpdGluZ0JlaGF2aW9yKFdlYktpdEVkaXRpbmdNYWNCZWhh
dmlvcik7CisgICAgaWYgKGJlaGF2aW9yU3RyaW5nID09ICJ3aW4iKQorICAgICAgICBwcmVmZXJl
bmNlcy0+c2V0RWRpdGluZ0JlaGF2aW9yKFdlYktpdEVkaXRpbmdXaW5CZWhhdmlvcik7Cit9CmRp
ZmYgLS1naXQgYS9XZWJLaXRUb29scy9EdW1wUmVuZGVyVHJlZS93eC9MYXlvdXRUZXN0Q29udHJv
bGxlcld4LmNwcCBiL1dlYktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250
cm9sbGVyV3guY3BwCmluZGV4IGJjMTU3YmUuLmQzNGU0MGEgMTAwNjQ0Ci0tLSBhL1dlYktpdFRv
b2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCisrKyBiL1dl
YktpdFRvb2xzL0R1bXBSZW5kZXJUcmVlL3d4L0xheW91dFRlc3RDb250cm9sbGVyV3guY3BwCkBA
IC00NDYsMyArNDQ2LDggQEAgSlNWYWx1ZVJlZiBMYXlvdXRUZXN0Q29udHJvbGxlcjo6Y29tcHV0
ZWRTdHlsZUluY2x1ZGluZ1Zpc2l0ZWRJbmZvKEpTQ29udGV4dFJlZiwKIHZvaWQgTGF5b3V0VGVz
dENvbnRyb2xsZXI6OmF1dGhlbnRpY2F0ZVNlc3Npb24oSlNTdHJpbmdSZWYsIEpTU3RyaW5nUmVm
LCBKU1N0cmluZ1JlZikKIHsKIH0KKwordm9pZCBMYXlvdXRUZXN0Q29udHJvbGxlcjo6c2V0RWRp
dGluZ0JlaGF2aW9yKEpTU3RyaW5nUmVmIGVkaXRpbmdCZWhhdmlvcikKK3sKKyAgICAvLyBGSVhN
RTogSW1wbGVtZW50Cit9Ci0tIAoxLjYuMy4zCgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>