<?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>51693</bug_id>
          
          <creation_ts>2010-12-28 17:26:57 -0800</creation_ts>
          <short_desc>[chromium] editing/input/ime-composition-clearpreedit.html fails in chromium.</short_desc>
          <delta_ts>2011-01-04 13:27:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit API</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>51715</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Su">suzhe</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>andreip</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>jhanssen</cc>
    
    <cc>jparent</cc>
    
    <cc>kbr</cc>
    
    <cc>mihaip</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>327451</commentid>
    <comment_count>0</comment_count>
    <who name="James Su">suzhe</who>
    <bug_when>2010-12-28 17:26:57 -0800</bug_when>
    <thetext>See http://crbug.com/67960</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327454</commentid>
    <comment_count>1</comment_count>
      <attachid>77593</attachid>
    <who name="James Su">suzhe</who>
    <bug_when>2010-12-28 17:35:31 -0800</bug_when>
    <thetext>Created attachment 77593
Patch to fix the test in chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327455</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-28 17:37:47 -0800</bug_when>
    <thetext>Attachment 77593 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/platform/chromium/test_expectations.txt&apos;, u&apos;WebKit/chromium/ChangeLog&apos;, u&apos;WebKit/chromium/src/WebFrameImpl.cpp&apos;]&quot; exit_code: 1
LayoutTests/ChangeLog:6:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 2 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327457</commentid>
    <comment_count>3</comment_count>
      <attachid>77594</attachid>
    <who name="James Su">suzhe</who>
    <bug_when>2010-12-28 17:40:48 -0800</bug_when>
    <thetext>Created attachment 77594
Remove tab character in ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327475</commentid>
    <comment_count>4</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-28 20:20:39 -0800</bug_when>
    <thetext>It&apos;s unclear what this patch is doing or why removing that line is OK.  Please update your ChangeLog to explain.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327476</commentid>
    <comment_count>5</comment_count>
      <attachid>77594</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-28 20:21:01 -0800</bug_when>
    <thetext>Comment on attachment 77594
Remove tab character in ChangeLog

Please explain what you&apos;re doing and why in the ChagneLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327477</commentid>
    <comment_count>6</comment_count>
      <attachid>77599</attachid>
    <who name="James Su">suzhe</who>
    <bug_when>2010-12-28 20:33:38 -0800</bug_when>
    <thetext>Created attachment 77599
Update ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327478</commentid>
    <comment_count>7</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-28 20:39:32 -0800</bug_when>
    <thetext>CCing the author and reviewer of the original test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327495</commentid>
    <comment_count>8</comment_count>
    <who name="Jan Erik Hanssen">jhanssen</who>
    <bug_when>2010-12-29 00:15:41 -0800</bug_when>
    <thetext>Seems reasonable to me.

My understanding is that setMarkedText() should just replace the selected text and then update the selection, not confirm the text. This is also what other ports (at least Mac and Qt) are doing from what I can tell.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327502</commentid>
    <comment_count>9</comment_count>
      <attachid>77599</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-29 01:01:30 -0800</bug_when>
    <thetext>Comment on attachment 77599
Update ChangeLog

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327508</commentid>
    <comment_count>10</comment_count>
      <attachid>77599</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-29 01:22:31 -0800</bug_when>
    <thetext>Comment on attachment 77599
Update ChangeLog

Clearing flags on attachment: 77599

Committed r74735: &lt;http://trac.webkit.org/changeset/74735&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327509</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-29 01:22:38 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327633</commentid>
    <comment_count>12</comment_count>
    <who name="Mihai Parparita">mihaip</who>
    <bug_when>2010-12-29 11:15:30 -0800</bug_when>
    <thetext>Re-opening since I rolled out this patch with http://trac.webkit.org/changeset/74749

It causing assert failures on fast/forms/input-maxlength-ime-completed.html (http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=fast%2Fforms%2Finput-maxlength-ime-completed.html&amp;master=ChromiumWebkit):

ASSERTION FAILED: m_offset + m_count &lt;= m_node-&gt;length()
(third_party/WebKit/WebCore/editing/DeleteFromTextNodeCommand.cpp:42 WebCore::DeleteFromTextNodeCommand::DeleteFromTextNodeCommand(WTF::PassRefPtr&lt;WebCore::Text&gt;, unsigned int, unsigned int))
[28117:28117:1434569528609:ERROR:process_util_posix.cc(106)] Received signal 11

Even before then, it needed an expectations update for another layout test that I did with http://trac.webkit.org/changeset/74748 (I&apos;ll be rolling that out too).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327664</commentid>
    <comment_count>13</comment_count>
    <who name="James Su">suzhe</who>
    <bug_when>2010-12-29 12:28:46 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Re-opening since I rolled out this patch with http://trac.webkit.org/changeset/74749
&gt; 
&gt; It causing assert failures on fast/forms/input-maxlength-ime-completed.html (http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=fast%2Fforms%2Finput-maxlength-ime-completed.html&amp;master=ChromiumWebkit):
&gt; 
&gt; ASSERTION FAILED: m_offset + m_count &lt;= m_node-&gt;length()
&gt; (third_party/WebKit/WebCore/editing/DeleteFromTextNodeCommand.cpp:42 WebCore::DeleteFromTextNodeCommand::DeleteFromTextNodeCommand(WTF::PassRefPtr&lt;WebCore::Text&gt;, unsigned int, unsigned int))
&gt; [28117:28117:1434569528609:ERROR:process_util_posix.cc(106)] Received signal 11
&gt; 
&gt; Even before then, it needed an expectations update for another layout test that I did with http://trac.webkit.org/changeset/74748 (I&apos;ll be rolling that out too).

This failure is caused by incorrect implementation of test_shell&apos;s TextInputController::insertText() rather than this patch.

And in order to fix WebKit/LayoutTests/fast/events/ime-composition-events-001.html in chromium, we need to modify both WebWidget API in WebKit/chromium and the corresponding part in chromium. I&apos;ll post a separated patch for that part as well as the test_shell fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327667</commentid>
    <comment_count>14</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-29 12:35:04 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; ASSERTION FAILED: m_offset + m_count &lt;= m_node-&gt;length()
&gt; (third_party/WebKit/WebCore/editing/DeleteFromTextNodeCommand.cpp:42 WebCore::DeleteFromTextNodeCommand::DeleteFromTextNodeCommand(WTF::PassRefPtr&lt;WebCore::Text&gt;, unsigned int, unsigned int))
&gt; [28117:28117:1434569528609:ERROR:process_util_posix.cc(106)] Received signal 11

This sounds like the bug 51389.  Maybe this bug should depend on the bug 51389 if fixing this bug causes the assertion failure to appear.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327668</commentid>
    <comment_count>15</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2010-12-29 12:38:33 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; This failure is caused by incorrect implementation of test_shell&apos;s TextInputController::insertText() rather than this patch.
&gt; 
&gt; And in order to fix WebKit/LayoutTests/fast/events/ime-composition-events-001.html in chromium, we need to modify both WebWidget API in WebKit/chromium and the corresponding part in chromium. I&apos;ll post a separated patch for that part as well as the test_shell fix.

I don&apos;t think we use test_shell anymore.  You should just fix DRT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327688</commentid>
    <comment_count>16</comment_count>
    <who name="James Su">suzhe</who>
    <bug_when>2010-12-29 14:01:59 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #12)
&gt; &gt; ASSERTION FAILED: m_offset + m_count &lt;= m_node-&gt;length()
&gt; &gt; (third_party/WebKit/WebCore/editing/DeleteFromTextNodeCommand.cpp:42 WebCore::DeleteFromTextNodeCommand::DeleteFromTextNodeCommand(WTF::PassRefPtr&lt;WebCore::Text&gt;, unsigned int, unsigned int))
&gt; &gt; [28117:28117:1434569528609:ERROR:process_util_posix.cc(106)] Received signal 11
&gt; 
&gt; This sounds like the bug 51389.  Maybe this bug should depend on the bug 51389 if fixing this bug causes the assertion failure to appear.

They are probably related. But the assertion disappears after fixing TextInputController::insertText().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327690</commentid>
    <comment_count>17</comment_count>
    <who name="James Su">suzhe</who>
    <bug_when>2010-12-29 14:03:11 -0800</bug_when>
    <thetext>(In reply to comment #15)
&gt; (In reply to comment #13)
&gt; &gt; This failure is caused by incorrect implementation of test_shell&apos;s TextInputController::insertText() rather than this patch.
&gt; &gt; 
&gt; &gt; And in order to fix WebKit/LayoutTests/fast/events/ime-composition-events-001.html in chromium, we need to modify both WebWidget API in WebKit/chromium and the corresponding part in chromium. I&apos;ll post a separated patch for that part as well as the test_shell fix.
&gt; 
&gt; I don&apos;t think we use test_shell anymore.  You should just fix DRT.

Then, I can fix all of them in one patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327802</commentid>
    <comment_count>18</comment_count>
      <attachid>77656</attachid>
    <who name="James Su">suzhe</who>
    <bug_when>2010-12-29 19:18:48 -0800</bug_when>
    <thetext>Created attachment 77656
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327803</commentid>
    <comment_count>19</comment_count>
    <who name="James Su">suzhe</who>
    <bug_when>2010-12-29 19:20:20 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; Created an attachment (id=77656) [details]
&gt; Patch

Can anybody help me test this patch, especially on Qt?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327882</commentid>
    <comment_count>20</comment_count>
    <who name="Jan Erik Hanssen">jhanssen</who>
    <bug_when>2010-12-30 04:50:15 -0800</bug_when>
    <thetext>(In reply to comment #19)
&gt; (In reply to comment #18)
&gt; &gt; Created an attachment (id=77656) [details] [details]
&gt; &gt; Patch
&gt; 
&gt; Can anybody help me test this patch, especially on Qt?

The Qt expected file seems to have the result duplicated after applying this patch, this is the expected result of run-webkit-tests:

http://pastebin.ca/2034153

and this is the actual output of the Qt DRT (on OS X):

http://pastebin.ca/2034154</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>327985</commentid>
    <comment_count>21</comment_count>
    <who name="James Su">suzhe</who>
    <bug_when>2010-12-30 11:51:54 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; (In reply to comment #19)
&gt; &gt; (In reply to comment #18)
&gt; &gt; &gt; Created an attachment (id=77656) [details] [details] [details]
&gt; &gt; &gt; Patch
&gt; &gt; 
&gt; &gt; Can anybody help me test this patch, especially on Qt?
&gt; 
&gt; The Qt expected file seems to have the result duplicated after applying this patch, this is the expected result of run-webkit-tests:
&gt; 
&gt; http://pastebin.ca/2034153
&gt; 
&gt; and this is the actual output of the Qt DRT (on OS X):
&gt; 
&gt; http://pastebin.ca/2034154

I can&apos;t see any problem from the patch itself. Please make sure that there is no LayoutTests/platform/qt/fast/events/ime-composition-events-001-expected.txt file before applying the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328081</commentid>
    <comment_count>22</comment_count>
    <who name="Jan Erik Hanssen">jhanssen</who>
    <bug_when>2010-12-30 17:47:16 -0800</bug_when>
    <thetext>(In reply to comment #21)
 &gt; I can&apos;t see any problem from the patch itself. Please make sure that there is no LayoutTests/platform/qt/fast/events/ime-composition-events-001-expected.txt file before applying the patch.

If I manually remove the Qt expected file before applying your patch then the test fails with the following diff:

--- /tmp/layout-test-results/fast/events/ime-composition-events-001-expected.txt	2010-12-31 02:45:29.000000000 +0100
+++ /tmp/layout-test-results/fast/events/ime-composition-events-001-actual.txt	2010-12-31 02:45:29.000000000 +0100
@@ -12,4 +12,5 @@
 SUCCESS: INPUT - compositionupdate - &quot;6&quot;
 SUCCESS: INPUT - compositionupdate - &quot;7&quot;
 SUCCESS: INPUT - compositionend - &quot;&quot;
+SUCCESS: INPUT - compositionend - &quot;8&quot;
 SUCCESS: INPUT - textInput - &quot;8&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328083</commentid>
    <comment_count>23</comment_count>
    <who name="James Su">suzhe</who>
    <bug_when>2010-12-30 18:17:28 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; (In reply to comment #21)
&gt;  &gt; I can&apos;t see any problem from the patch itself. Please make sure that there is no LayoutTests/platform/qt/fast/events/ime-composition-events-001-expected.txt file before applying the patch.
&gt; 
&gt; If I manually remove the Qt expected file before applying your patch then the test fails with the following diff:
&gt; 
&gt; --- /tmp/layout-test-results/fast/events/ime-composition-events-001-expected.txt    2010-12-31 02:45:29.000000000 +0100
&gt; +++ /tmp/layout-test-results/fast/events/ime-composition-events-001-actual.txt    2010-12-31 02:45:29.000000000 +0100
&gt; @@ -12,4 +12,5 @@
&gt;  SUCCESS: INPUT - compositionupdate - &quot;6&quot;
&gt;  SUCCESS: INPUT - compositionupdate - &quot;7&quot;
&gt;  SUCCESS: INPUT - compositionend - &quot;&quot;
&gt; +SUCCESS: INPUT - compositionend - &quot;8&quot;
&gt;  SUCCESS: INPUT - textInput - &quot;8&quot;

It&apos;s an issue of Qt port. That extra line is not expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328089</commentid>
    <comment_count>24</comment_count>
    <who name="Jan Erik Hanssen">jhanssen</who>
    <bug_when>2010-12-30 19:08:28 -0800</bug_when>
    <thetext>(In reply to comment #23)
&gt; It&apos;s an issue of Qt port. That extra line is not expected.

Looks like this is due to Qt&apos;s implementation of insertText(), which confirms the composition, which in turn sends a compositionend event to the input element (from Editor::confirmComposition()). 

However, looking at Chromium&apos;s insertText() implementation that appears to do something similar yet that one doesn&apos;t send such an event. Not sure why.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328627</commentid>
    <comment_count>25</comment_count>
      <attachid>77822</attachid>
    <who name="James Su">suzhe</who>
    <bug_when>2011-01-03 10:36:45 -0800</bug_when>
    <thetext>Created attachment 77822
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328629</commentid>
    <comment_count>26</comment_count>
      <attachid>77822</attachid>
    <who name="James Su">suzhe</who>
    <bug_when>2011-01-03 10:38:34 -0800</bug_when>
    <thetext>Comment on attachment 77822
Patch

Fix LayoutTests/fast/events/ime-composition-events-001.html on qt port.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>328741</commentid>
    <comment_count>27</comment_count>
    <who name="Jan Erik Hanssen">jhanssen</who>
    <bug_when>2011-01-03 13:21:49 -0800</bug_when>
    <thetext>(In reply to comment #26)
&gt; (From update of attachment 77822 [details])
&gt; Fix LayoutTests/fast/events/ime-composition-events-001.html on qt port.

The test does indeed pass on Qt now and the new code looks ok to me. Though I don&apos;t know enough about the Qt IM code to say for sure that this is the correct solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329061</commentid>
    <comment_count>28</comment_count>
      <attachid>77822</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-01-04 10:41:53 -0800</bug_when>
    <thetext>Comment on attachment 77822
Patch

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

The code changes look okay to me (though I am not an expert on input methods) -- but please document the Qt code changes in WebKit/qt/ChangeLog.

&gt; WebKit/qt/ChangeLog:10
&gt; +        * Api/qwebpage.cpp:
&gt; +        (QWebPagePrivate::inputMethodEvent):

Please document these changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329092</commentid>
    <comment_count>29</comment_count>
      <attachid>77909</attachid>
    <who name="James Su">suzhe</who>
    <bug_when>2011-01-04 11:09:06 -0800</bug_when>
    <thetext>Created attachment 77909
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329093</commentid>
    <comment_count>30</comment_count>
      <attachid>77909</attachid>
    <who name="James Su">suzhe</who>
    <bug_when>2011-01-04 11:10:11 -0800</bug_when>
    <thetext>Comment on attachment 77909
Patch

Update WebKit/qt/ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329099</commentid>
    <comment_count>31</comment_count>
      <attachid>77909</attachid>
    <who name="Kenneth Russell">kbr</who>
    <bug_when>2011-01-04 11:21:34 -0800</bug_when>
    <thetext>Comment on attachment 77909
Patch

Thanks, looks good. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329170</commentid>
    <comment_count>32</comment_count>
      <attachid>77909</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-04 13:27:18 -0800</bug_when>
    <thetext>Comment on attachment 77909
Patch

Clearing flags on attachment: 77909

Committed r75000: &lt;http://trac.webkit.org/changeset/75000&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329171</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-01-04 13:27:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77593</attachid>
            <date>2010-12-28 17:35:31 -0800</date>
            <delta_ts>2010-12-28 17:40:48 -0800</delta_ts>
            <desc>Patch to fix the test in chromium.</desc>
            <filename>fix-51693.patch</filename>
            <type>text/plain</type>
            <size>2273</size>
            <attacher name="James Su">suzhe</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzQ3MzMpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMTItMjggIFpoZSBT
dSAgPHN1emhlQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBGaXggZWRpdGluZy9pbnB1dC9pbWUtY29tcG9zaXRpb24tY2xlYXJw
cmVlZGl0Lmh0bWwgdGVzdCBpbiBjaHJvbWl1bS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUxNjkzCisKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpzZXRNYXJrZWRUZXh0KToKKwog
MjAxMC0xMi0yMyAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEtlbm5ldGggUnVzc2VsbC4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJh
bWVJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1w
bC5jcHAJKHJldmlzaW9uIDc0NzMxKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUlt
cGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgxLDggKzEwODEsNiBAQCB2b2lkIFdlYkZyYW1l
SW1wbDo6c2V0TWFya2VkVGV4dCgKIHsKICAgICBFZGl0b3IqIGVkaXRvciA9IGZyYW1lKCktPmVk
aXRvcigpOwogCi0gICAgZWRpdG9yLT5jb25maXJtQ29tcG9zaXRpb24odGV4dCk7Ci0KICAgICBW
ZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbmU+IGRlY29yYXRpb25zOwogICAgIGVkaXRvci0+c2V0
Q29tcG9zaXRpb24odGV4dCwgZGVjb3JhdGlvbnMsIGxvY2F0aW9uLCBsZW5ndGgpOwogfQpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gNzQ3MzMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0xMi0yOCAgWmhlIFN1ICA8c3V6aGVAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbW92ZSBlbnRyeSBmb3IgZWRpdGluZy9pbnB1dC9pbWUtY29tcG9zaXRpb24tY2xlYXJwcmVl
ZGl0Lmh0bWwgdGVzdC4KKwlodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTE2OTMKKworICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dDoKKwogMjAxMC0xMi0yOCAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHJpbS5jb20+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgQW50b25pbyBHb21lcy4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHJldmlzaW9uIDc0NzMx
KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0zMjgyLDcgKzMyODIsNSBAQCBCVUdDUjY3OTA1IE1BQyA6IHN2
Zy9jc3MvZ2V0Q29tcHV0ZWRTdHlsCiBCVUdDUjY3OTM1IFdJTiA6IGZhc3QvY2FudmFzL3dlYmds
L2NhbnZhcy10ZXN0Lmh0bWwgPSBDUkFTSAogQlVHQ1I2NzkzNSBXSU4gOiBmYXN0L2NhbnZhcy93
ZWJnbC9nbC1waXhlbHN0b3JlaS5odG1sID0gQ1JBU0gKIAotQlVHQ1I2Nzk2MCA6IGVkaXRpbmcv
aW5wdXQvaW1lLWNvbXBvc2l0aW9uLWNsZWFycHJlZWRpdC5odG1sID0gVEVYVAotCiAvLyBXZWJL
aXQgcm9sbCA3NDY2Nzo3NDY3OQogQlVHQ1I2ODA2NyBMSU5VWCBERUJVRyA6IGZhc3QvY2FudmFz
L3dlYmdsL3RleC1pbWFnZS13aXRoLWZvcm1hdC1hbmQtdHlwZS5odG1sID0gVEVYVAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77594</attachid>
            <date>2010-12-28 17:40:48 -0800</date>
            <delta_ts>2010-12-28 20:34:31 -0800</delta_ts>
            <desc>Remove tab character in ChangeLog</desc>
            <filename>fix-51693.patch</filename>
            <type>text/plain</type>
            <size>2280</size>
            <attacher name="James Su">suzhe</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzQ3MzMpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTAtMTItMjggIFpoZSBT
dSAgPHN1emhlQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBGaXggZWRpdGluZy9pbnB1dC9pbWUtY29tcG9zaXRpb24tY2xlYXJw
cmVlZGl0Lmh0bWwgdGVzdCBpbiBjaHJvbWl1bS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTUxNjkzCisKKyAgICAgICAgKiBzcmMvV2ViRnJhbWVJbXBs
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVJbXBsOjpzZXRNYXJrZWRUZXh0KToKKwog
MjAxMC0xMi0yMyAgWmhlbnlhbyBNbyAgPHptb0Bnb29nbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGJ5IEtlbm5ldGggUnVzc2VsbC4KSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJh
bWVJbXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1w
bC5jcHAJKHJldmlzaW9uIDc0NzMxKQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUlt
cGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDgxLDggKzEwODEsNiBAQCB2b2lkIFdlYkZyYW1l
SW1wbDo6c2V0TWFya2VkVGV4dCgKIHsKICAgICBFZGl0b3IqIGVkaXRvciA9IGZyYW1lKCktPmVk
aXRvcigpOwogCi0gICAgZWRpdG9yLT5jb25maXJtQ29tcG9zaXRpb24odGV4dCk7Ci0KICAgICBW
ZWN0b3I8Q29tcG9zaXRpb25VbmRlcmxpbmU+IGRlY29yYXRpb25zOwogICAgIGVkaXRvci0+c2V0
Q29tcG9zaXRpb24odGV4dCwgZGVjb3JhdGlvbnMsIGxvY2F0aW9uLCBsZW5ndGgpOwogfQpJbmRl
eDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkocmV2aXNpb24gNzQ3MzMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcg
Y29weSkKQEAgLTEsMyArMSwxMiBAQAorMjAxMC0xMi0yOCAgWmhlIFN1ICA8c3V6aGVAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFJlbW92ZSBlbnRyeSBmb3IgZWRpdGluZy9pbnB1dC9pbWUtY29tcG9zaXRpb24tY2xlYXJwcmVl
ZGl0Lmh0bWwgdGVzdC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTUxNjkzCisKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0
aW9ucy50eHQ6CisKIDIwMTAtMTItMjggIERhbmllbCBCYXRlcyAgPGRiYXRlc0ByaW0uY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CShyZXZpc2lv
biA3NDczMSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRp
b25zLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzI4Miw3ICszMjgyLDUgQEAgQlVHQ1I2NzkwNSBN
QUMgOiBzdmcvY3NzL2dldENvbXB1dGVkU3R5bAogQlVHQ1I2NzkzNSBXSU4gOiBmYXN0L2NhbnZh
cy93ZWJnbC9jYW52YXMtdGVzdC5odG1sID0gQ1JBU0gKIEJVR0NSNjc5MzUgV0lOIDogZmFzdC9j
YW52YXMvd2ViZ2wvZ2wtcGl4ZWxzdG9yZWkuaHRtbCA9IENSQVNICiAKLUJVR0NSNjc5NjAgOiBl
ZGl0aW5nL2lucHV0L2ltZS1jb21wb3NpdGlvbi1jbGVhcnByZWVkaXQuaHRtbCA9IFRFWFQKLQog
Ly8gV2ViS2l0IHJvbGwgNzQ2Njc6NzQ2NzkKIEJVR0NSNjgwNjcgTElOVVggREVCVUcgOiBmYXN0
L2NhbnZhcy93ZWJnbC90ZXgtaW1hZ2Utd2l0aC1mb3JtYXQtYW5kLXR5cGUuaHRtbCA9IFRFWFQK
</data>
<flag name="review"
          id="68742"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77599</attachid>
            <date>2010-12-28 20:33:38 -0800</date>
            <delta_ts>2010-12-29 19:18:43 -0800</delta_ts>
            <desc>Update ChangeLog</desc>
            <filename>fix-51693.patch</filename>
            <type>text/plain</type>
            <size>2497</size>
            <attacher name="James Su">suzhe</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gNzQ3MzMpCisrKyBXZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTItMjggIFpoZSBT
dSAgPHN1emhlQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBGaXggZWRpdGluZy9pbnB1dC9pbWUtY29tcG9zaXRpb24tY2xlYXJw
cmVlZGl0Lmh0bWwgdGVzdCBpbiBjaHJvbWl1bQorICAgICAgICBieSByZW1vdmluZyB0aGUgbGlu
ZSAiZWRpdG9yLT5jb25maXJtQ29tcG9zaXRpb24odGV4dCk7IiBmcm9tCisgICAgICAgIFdlYkZy
YW1lSW1wbDo6c2V0TWFya2VkVGV4dCgpIG1ldGhvZCwgYmVjYXVzZSB0aGF0IGxpbmUgd2lsbCBp
bnNlcnQgdGhlCisgICAgICAgIHRleHQgaW50byB0aGUgZm9jdXNlZCBub2RlLCB3aGljaCBpcyBh
cHBhcmVudGx5IHdyb25nLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01MTY5MworCisgICAgICAgICogc3JjL1dlYkZyYW1lSW1wbC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZyYW1lSW1wbDo6c2V0TWFya2VkVGV4dCk6CisKIDIwMTAtMTItMjMg
IFpoZW55YW8gTW8gIDx6bW9AZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5u
ZXRoIFJ1c3NlbGwuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCShyZXZp
c2lvbiA3NDczMSkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMTA4MSw4ICsxMDgxLDYgQEAgdm9pZCBXZWJGcmFtZUltcGw6OnNldE1h
cmtlZFRleHQoCiB7CiAgICAgRWRpdG9yKiBlZGl0b3IgPSBmcmFtZSgpLT5lZGl0b3IoKTsKIAot
ICAgIGVkaXRvci0+Y29uZmlybUNvbXBvc2l0aW9uKHRleHQpOwotCiAgICAgVmVjdG9yPENvbXBv
c2l0aW9uVW5kZXJsaW5lPiBkZWNvcmF0aW9uczsKICAgICBlZGl0b3ItPnNldENvbXBvc2l0aW9u
KHRleHQsIGRlY29yYXRpb25zLCBsb2NhdGlvbiwgbGVuZ3RoKTsKIH0KSW5kZXg6IExheW91dFRl
c3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDc0NzMzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTIgQEAKKzIwMTAtMTItMjggIFpoZSBTdSAgPHN1emhlQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgZW50
cnkgZm9yIGVkaXRpbmcvaW5wdXQvaW1lLWNvbXBvc2l0aW9uLWNsZWFycHJlZWRpdC5odG1sIHRl
c3QuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTY5
MworCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0Ogor
CiAyMDEwLTEyLTI4ICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAcmltLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBBbnRvbmlvIEdvbWVzLgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAkocmV2aXNpb24gNzQ3MzEpCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTMyODIsNyArMzI4Miw1IEBAIEJVR0NSNjc5MDUgTUFDIDogc3ZnL2Nz
cy9nZXRDb21wdXRlZFN0eWwKIEJVR0NSNjc5MzUgV0lOIDogZmFzdC9jYW52YXMvd2ViZ2wvY2Fu
dmFzLXRlc3QuaHRtbCA9IENSQVNICiBCVUdDUjY3OTM1IFdJTiA6IGZhc3QvY2FudmFzL3dlYmds
L2dsLXBpeGVsc3RvcmVpLmh0bWwgPSBDUkFTSAogCi1CVUdDUjY3OTYwIDogZWRpdGluZy9pbnB1
dC9pbWUtY29tcG9zaXRpb24tY2xlYXJwcmVlZGl0Lmh0bWwgPSBURVhUCi0KIC8vIFdlYktpdCBy
b2xsIDc0NjY3Ojc0Njc5CiBCVUdDUjY4MDY3IExJTlVYIERFQlVHIDogZmFzdC9jYW52YXMvd2Vi
Z2wvdGV4LWltYWdlLXdpdGgtZm9ybWF0LWFuZC10eXBlLmh0bWwgPSBURVhUCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77656</attachid>
            <date>2010-12-29 19:18:48 -0800</date>
            <delta_ts>2011-01-03 10:36:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51693-20101229191847.patch</filename>
            <type>text/plain</type>
            <size>18822</size>
            <attacher name="James Su">suzhe</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDc0NzczKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMTAtMTItMjkgIFpoZSBTdSAgPHN1emhlQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggaW5zZXJ0VGV4
dCwgc2V0TWFya2VkVGV4dCBhbmQgdW5tYXJrVGV4dCBtZXRob2RzIG9mCisgICAgICAgIFRleHRJ
bnB1dENvbnRyb2xsZXIgdG8gY2FsbCBjb3JyZXNwb25kaW5nIG1ldGhvZHMgb2YgV2ViS2l0OjpX
ZWJWaWV3CisgICAgICAgIHJhdGhlciB0aGFuIFdlYktpdDo6V2ViRnJhbWUuIFRoaXMgY2hhbmdl
IG1hdGNoZXMgdGhlIGJlaGF2aW9yIG9mCisgICAgICAgIGNocm9taXVtIGJyb3dzZXIuCisgICAg
ICAgIGluc2VydFRleHQgY29ycmVzcG9uZHMgdG8gV2ViVmlldzo6Y29uZmlybUNvbXBvc2l0aW9u
KHRleHQpCisgICAgICAgIHNldE1hcmtlZFRleHQgY29ycmVzcG9uZHMgdG8gV2ViVmlldzo6c2V0
Q29tcG9zaXRpb24oLi4uKQorICAgICAgICB1bm1hcmtUZXh0IGNvcnJlc3BvbmRzIHRvIFdlYlZp
ZXc6OmNvbmZpcm1Db21wb3NpdGlvbigpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MTY5MworCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGV4dElucHV0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChUZXh0SW5wdXRDb250cm9sbGVy
OjppbnNlcnRUZXh0KToKKyAgICAgICAgKFRleHRJbnB1dENvbnRyb2xsZXI6OnNldE1hcmtlZFRl
eHQpOgorICAgICAgICAoVGV4dElucHV0Q29udHJvbGxlcjo6dW5tYXJrVGV4dCk6CisKIDIwMTAt
MTItMjkgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IE9qYW4gVmFmYWkuCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXh0SW5wdXRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXh0SW5wdXRDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNzQ3NzMp
CisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXh0SW5wdXRDb250cm9sbGVyLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzksMTcgKzc5LDEwIEBAIHZvaWQgVGV4dElucHV0Q29udHJv
bGxlcjo6aW5zZXJ0VGV4dChjb24KIHsKICAgICByZXN1bHQtPnNldE51bGwoKTsKIAotICAgIFdl
YkZyYW1lKiBtYWluRnJhbWUgPSBnZXRNYWluRnJhbWUoKTsKLSAgICBpZiAoIW1haW5GcmFtZSkK
LSAgICAgICAgcmV0dXJuOwogICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpIDwgMSB8fCAhYXJndW1l
bnRzWzBdLmlzU3RyaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtYWluRnJhbWUt
Pmhhc01hcmtlZFRleHQoKSkgewotICAgICAgICBtYWluRnJhbWUtPnVubWFya1RleHQoKTsKLSAg
ICAgICAgbWFpbkZyYW1lLT5yZXBsYWNlU2VsZWN0aW9uKFdlYlN0cmluZygpKTsKLSAgICB9Ci0g
ICAgbWFpbkZyYW1lLT5pbnNlcnRUZXh0KFdlYlN0cmluZzo6ZnJvbVVURjgoYXJndW1lbnRzWzBd
LnRvU3RyaW5nKCkpKTsKKyAgICB0ZXN0U2hlbGwtPndlYlZpZXcoKS0+Y29uZmlybUNvbXBvc2l0
aW9uKFdlYlN0cmluZzo6ZnJvbVVURjgoYXJndW1lbnRzWzBdLnRvU3RyaW5nKCkpKTsKIH0KIAog
dm9pZCBUZXh0SW5wdXRDb250cm9sbGVyOjpkb0NvbW1hbmQoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKQEAgLTEwOCwxNSArMTAxLDEzIEBAIHZv
aWQgVGV4dElucHV0Q29udHJvbGxlcjo6c2V0TWFya2VkVGV4dCgKIHsKICAgICByZXN1bHQtPnNl
dE51bGwoKTsKIAotICAgIFdlYkZyYW1lKiBtYWluRnJhbWUgPSBnZXRNYWluRnJhbWUoKTsKLSAg
ICBpZiAoIW1haW5GcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKGFyZ3VtZW50cy5z
aXplKCkgPj0gMyAmJiBhcmd1bWVudHNbMF0uaXNTdHJpbmcoKQogICAgICAgICAmJiBhcmd1bWVu
dHNbMV0uaXNOdW1iZXIoKSAmJiBhcmd1bWVudHNbMl0uaXNOdW1iZXIoKSkgewotICAgICAgICBt
YWluRnJhbWUtPnNldE1hcmtlZFRleHQoV2ViU3RyaW5nOjpmcm9tVVRGOChhcmd1bWVudHNbMF0u
dG9TdHJpbmcoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHNb
MV0udG9JbnQzMigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRz
WzJdLnRvSW50MzIoKSk7CisgICAgICAgIFdlYlZlY3RvcjxXZWJDb21wb3NpdGlvblVuZGVybGlu
ZT4gdW5kZXJsaW5lczsKKyAgICAgICAgdGVzdFNoZWxsLT53ZWJWaWV3KCktPnNldENvbXBvc2l0
aW9uKFdlYlN0cmluZzo6ZnJvbVVURjgoYXJndW1lbnRzWzBdLnRvU3RyaW5nKCkpLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZXJsaW5lcywKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50c1sxXS50b0lu
dDMyKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1
bWVudHNbMV0udG9JbnQzMigpICsgYXJndW1lbnRzWzJdLnRvSW50MzIoKSk7CiAgICAgfQogfQog
CkBAIC0xMjQsMTEgKzExNSw3IEBAIHZvaWQgVGV4dElucHV0Q29udHJvbGxlcjo6dW5tYXJrVGV4
dChjb24KIHsKICAgICByZXN1bHQtPnNldE51bGwoKTsKIAotICAgIFdlYkZyYW1lKiBtYWluRnJh
bWUgPSBnZXRNYWluRnJhbWUoKTsKLSAgICBpZiAoIW1haW5GcmFtZSkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgbWFpbkZyYW1lLT51bm1hcmtUZXh0KCk7CisgICAgdGVzdFNoZWxsLT53ZWJWaWV3
KCktPmNvbmZpcm1Db21wb3NpdGlvbigpOwogfQogCiB2b2lkIFRleHRJbnB1dENvbnRyb2xsZXI6
Omhhc01hcmtlZFRleHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0
KQpJbmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA3NDc3MykKKysrIFdlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzNSBAQAorMjAxMC0xMi0yOSAgWmhl
IFN1ICA8c3V6aGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIENoYW5nZXM6CisgICAgICAgIDEuIEFkZCBXZWJLaXQ6OldlYldp
ZGdldDo6Y29uZmlybUNvbXBvc2l0aW9uKGNvbnN0IFdlYlN0cmluZyYgdGV4dCkKKyAgICAgICAg
ICAgVGhpcyBuZXcgbWV0aG9kIGNvcnJlc3BvbmRzIHRvIEVkaXRvcjo6Y29uZmlybUNvbXBvc2l0
aW9uKHRleHQpIGFuZAorICAgICAgICAgICBFZGl0b3I6Omluc2VydFRleHQodGV4dCkuIEl0J2xs
IGJlIHVzZWQgYnkgYm90aCBEdW1wUmVuZGVyVHJlZSdzCisgICAgICAgICAgIFRleHRJbnB1dENv
bnRyb2xsZXIgYW5kIGNocm9taXVtIGJyb3dzZXIuCisgICAgICAgIDIuIEZpeCBXZWJGcmFtZUlt
cGw6Omluc2VydFRleHQKKyAgICAgICAgICAgSXQgc2hvdWxkIGNhbGwgRWRpdG9yOjpjb25maXJt
Q29tcG9zaXRpb24odGV4dCkgcmF0aGVyIHRoYW4KKyAgICAgICAgICAgRWRpdG9yOjppbnNlcnRU
ZXh0KHRleHQpIGlmIHRoZXJlIGlzIGFuIG9uZ29pbmcgY29tcG9zaXRpb24uCisgICAgICAgICAg
IEl0IG1hdGNoZXMgdGhlIGJlaGF2aW9yIG9mIFdlYktpdCBNYWMgcG9ydC4KKyAgICAgICAgMy4g
Rml4IFdlYkZyYW1lSW1wbDo6c2V0TWFya2VkVGV4dAorICAgICAgICAgICBFZGl0b3I6OmNvbmZp
cm1Db21wb3NpdGlvbih0ZXh0KSBzaG91bGRuJ3QgYmUgY2FsbGVkIGluIHRoaXMKKyAgICAgICAg
ICAgbWV0aG9kLCB3aGljaCBpbmNvcnJlY3RseSBpbnNlcnRzIHRoZSB0ZXh0LgorCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTY5MworCisgICAgICAg
ICogcHVibGljL1dlYldpZGdldC5oOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgor
ICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6Omluc2VydFRleHQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGcmFtZUltcGw6OnNldE1hcmtlZFRleHQpOgorICAgICAgICAqIHNyYy9XZWJQb3B1
cE1lbnVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51SW1wbDo6Y29uZmly
bUNvbXBvc2l0aW9uKToKKyAgICAgICAgKiBzcmMvV2ViUG9wdXBNZW51SW1wbC5oOgorICAgICAg
ICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpj
b25maXJtQ29tcG9zaXRpb24pOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAg
ICAqIHRlc3RzL1BvcHVwTWVudVRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2ViV2lk
Z2V0Ojpjb25maXJtQ29tcG9zaXRpb24pOgorCiAyMDEwLTEyLTI5ICBTaGVyaWZmIEJvdCAgPHdl
YmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5n
IG91dCByNzQ3MzUuCkluZGV4OiBXZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgJKHJldmlzaW9u
IDc0NzczKQorKysgV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAkod29ya2luZyBj
b3B5KQpAQCAtMTAzLDkgKzEwMywxOCBAQCBwdWJsaWM6CiAgICAgICAgIGludCBzZWxlY3Rpb25F
bmQpID0gMDsKIAogICAgIC8vIENhbGxlZCB0byBpbmZvcm0gdGhlIFdlYldpZGdldCB0byBjb25m
aXJtIGFuIG9uZ29pbmcgY29tcG9zaXRpb24uCisgICAgLy8gVGhpcyBtZXRob2QgaXMgc2FtZSBh
cyBjb25maXJtQ29tcG9zaXRpb24oV2ViU3RyaW5nKCkpOwogICAgIC8vIFJldHVybnMgdHJ1ZSBp
ZiB0aGVyZSBpcyBhbiBvbmdvaW5nIGNvbXBvc2l0aW9uLgogICAgIHZpcnR1YWwgYm9vbCBjb25m
aXJtQ29tcG9zaXRpb24oKSA9IDA7CiAKKyAgICAvLyBDYWxsZWQgdG8gaW5mb3JtIHRoZSBXZWJX
aWRnZXQgdG8gY29uZmlybSBhbiBvbmdvaW5nIGNvbXBvc2l0aW9uIHdpdGggYQorICAgIC8vIG5l
dyBjb21wb3NpdGlvbiB0ZXh0LiBJZiB0aGUgdGV4dCBpcyBlbXB0eSB0aGVuIHRoZSBjdXJyZW50
IGNvbXBvc2l0aW9uCisgICAgLy8gdGV4dCBpcyBjb25maXJtZWQuIElmIHRoZXJlIGlzIG5vIG9u
Z29pbmcgY29tcG9zaXRpb24sIHRoZW4gZGVsZXRlcyB0aGUKKyAgICAvLyBjdXJyZW50IHNlbGVj
dGlvbiBhbmQgaW5zZXJ0cyB0aGUgdGV4dC4gVGhpcyBtZXRob2QgaGFzIG5vIGVmZmVjdCBpZgor
ICAgIC8vIHRoZXJlIGlzIG5vIG9uZ29pbmcgY29tcG9zaXRpb24gYW5kIHRoZSB0ZXh0IGlzIGVt
cHR5LgorICAgIC8vIFJldHVybnMgdHJ1ZSBpZiB0aGVyZSBpcyBhbiBvbmdvaW5nIGNvbXBvc2l0
aW9uIG9yIHRoZSB0ZXh0IGlzIGluc2VydGVkLgorICAgIHZpcnR1YWwgYm9vbCBjb25maXJtQ29t
cG9zaXRpb24oY29uc3QgV2ViU3RyaW5nJiB0ZXh0KSA9IDA7CisKICAgICAvLyBSZXR1cm5zIHRo
ZSBjdXJyZW50IHRleHQgaW5wdXQgdHlwZSBvZiB0aGlzIFdlYldpZGdldC4KICAgICB2aXJ0dWFs
IFdlYlRleHRJbnB1dFR5cGUgdGV4dElucHV0VHlwZSgpID0gMDsKIApJbmRleDogV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJGcmFtZUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1
bS9zcmMvV2ViRnJhbWVJbXBsLmNwcAkocmV2aXNpb24gNzQ3NzMpCisrKyBXZWJLaXQvY2hyb21p
dW0vc3JjL1dlYkZyYW1lSW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNzMsNyArMTA3Mywx
MiBAQCB2b2lkIFdlYkZyYW1lSW1wbDo6cmVwbGFjZVNlbGVjdGlvbihjb25zCiAKIHZvaWQgV2Vi
RnJhbWVJbXBsOjppbnNlcnRUZXh0KGNvbnN0IFdlYlN0cmluZyYgdGV4dCkKIHsKLSAgICBmcmFt
ZSgpLT5lZGl0b3IoKS0+aW5zZXJ0VGV4dCh0ZXh0LCAwKTsKKyAgICBFZGl0b3IqIGVkaXRvciA9
IGZyYW1lKCktPmVkaXRvcigpOworCisgICAgaWYgKGVkaXRvci0+aGFzQ29tcG9zaXRpb24oKSkK
KyAgICAgICAgZWRpdG9yLT5jb25maXJtQ29tcG9zaXRpb24odGV4dCk7CisgICAgZWxzZQorICAg
ICAgICBlZGl0b3ItPmluc2VydFRleHQodGV4dCwgMCk7CiB9CiAKIHZvaWQgV2ViRnJhbWVJbXBs
OjpzZXRNYXJrZWRUZXh0KApAQCAtMTA4MSw4ICsxMDg2LDYgQEAgdm9pZCBXZWJGcmFtZUltcGw6
OnNldE1hcmtlZFRleHQoCiB7CiAgICAgRWRpdG9yKiBlZGl0b3IgPSBmcmFtZSgpLT5lZGl0b3Io
KTsKIAotICAgIGVkaXRvci0+Y29uZmlybUNvbXBvc2l0aW9uKHRleHQpOwotCiAgICAgVmVjdG9y
PENvbXBvc2l0aW9uVW5kZXJsaW5lPiBkZWNvcmF0aW9uczsKICAgICBlZGl0b3ItPnNldENvbXBv
c2l0aW9uKHRleHQsIGRlY29yYXRpb25zLCBsb2NhdGlvbiwgbGVuZ3RoKTsKIH0KSW5kZXg6IFdl
YktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBsLmNwcAkocmV2aXNpb24gNzQ3NzMpCisr
KyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlBvcHVwTWVudUltcGwuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNTMsNiArMjUzLDExIEBAIGJvb2wgV2ViUG9wdXBNZW51SW1wbDo6Y29uZmlybUNvbXBv
c2l0aW8KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgV2ViUG9wdXBNZW51SW1wbDo6Y29u
ZmlybUNvbXBvc2l0aW9uKGNvbnN0IFdlYlN0cmluZyYgdGV4dCkKK3sKKyAgICByZXR1cm4gZmFs
c2U7Cit9CisKIFdlYlRleHRJbnB1dFR5cGUgV2ViUG9wdXBNZW51SW1wbDo6dGV4dElucHV0VHlw
ZSgpCiB7CiAgICAgcmV0dXJuIFdlYlRleHRJbnB1dFR5cGVOb25lOwpJbmRleDogV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBsLmgJKHJldmlzaW9uIDc0NzczKQorKysgV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJQb3B1cE1lbnVJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTczLDYgKzcz
LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBXZWJWZWN0b3I8V2ViQ29tcG9zaXRpb25VbmRl
cmxpbmU+JiB1bmRlcmxpbmVzLAogICAgICAgICBpbnQgc2VsZWN0aW9uU3RhcnQsIGludCBzZWxl
Y3Rpb25FbmQpOwogICAgIHZpcnR1YWwgYm9vbCBjb25maXJtQ29tcG9zaXRpb24oKTsKKyAgICB2
aXJ0dWFsIGJvb2wgY29uZmlybUNvbXBvc2l0aW9uKGNvbnN0IFdlYlN0cmluZyYgdGV4dCk7CiAg
ICAgdmlydHVhbCBXZWJUZXh0SW5wdXRUeXBlIHRleHRJbnB1dFR5cGUoKTsKICAgICB2aXJ0dWFs
IFdlYlJlY3QgY2FyZXRPclNlbGVjdGlvbkJvdW5kcygpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRU
ZXh0RGlyZWN0aW9uKFdlYlRleHREaXJlY3Rpb24gZGlyZWN0aW9uKTsKSW5kZXg6IFdlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCShyZXZpc2lvbiA3NDc3MykKKysrIFdlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAzLDExICsxMzAzLDE2
IEBAIGJvb2wgV2ViVmlld0ltcGw6OnNldENvbXBvc2l0aW9uKAogCiBib29sIFdlYlZpZXdJbXBs
Ojpjb25maXJtQ29tcG9zaXRpb24oKQogeworICAgIHJldHVybiBjb25maXJtQ29tcG9zaXRpb24o
V2ViU3RyaW5nKCkpOworfQorCitib29sIFdlYlZpZXdJbXBsOjpjb25maXJtQ29tcG9zaXRpb24o
Y29uc3QgV2ViU3RyaW5nJiB0ZXh0KQorewogICAgIEZyYW1lKiBmb2N1c2VkID0gZm9jdXNlZFdl
YkNvcmVGcmFtZSgpOwogICAgIGlmICghZm9jdXNlZCB8fCAhbV9pbWVBY2NlcHRFdmVudHMpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBFZGl0b3IqIGVkaXRvciA9IGZvY3VzZWQtPmVkaXRv
cigpOwotICAgIGlmICghZWRpdG9yIHx8ICFlZGl0b3ItPmhhc0NvbXBvc2l0aW9uKCkpCisgICAg
aWYgKCFlZGl0b3IgfHwgKCFlZGl0b3ItPmhhc0NvbXBvc2l0aW9uKCkgJiYgIXRleHQubGVuZ3Ro
KCkpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAvLyBXZSBzaG91bGQgdmVyaWZ5IHRo
ZSBwYXJlbnQgbm9kZSBvZiB0aGlzIElNRSBjb21wb3NpdGlvbiBub2RlIGFyZQpAQCAtMTMyMSw3
ICsxMzI2LDE0IEBAIGJvb2wgV2ViVmlld0ltcGw6OmNvbmZpcm1Db21wb3NpdGlvbigpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCi0gICAgZWRpdG9yLT5jb25maXJtQ29tcG9z
aXRpb24oKTsKKyAgICBpZiAoZWRpdG9yLT5oYXNDb21wb3NpdGlvbigpKSB7CisgICAgICAgIGlm
ICh0ZXh0Lmxlbmd0aCgpKQorICAgICAgICAgICAgZWRpdG9yLT5jb25maXJtQ29tcG9zaXRpb24o
U3RyaW5nKHRleHQpKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZWRpdG9yLT5jb25maXJt
Q29tcG9zaXRpb24oKTsKKyAgICB9IGVsc2UKKyAgICAgICAgZWRpdG9yLT5pbnNlcnRUZXh0KFN0
cmluZyh0ZXh0KSwgMCk7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApJbmRleDogV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuaAkocmV2aXNpb24gNzQ3NzMpCisrKyBXZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlZpZXdJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTEwNSw2ICsxMDUsNyBAQCBwdWJsaWM6
CiAgICAgICAgIGludCBzZWxlY3Rpb25TdGFydCwKICAgICAgICAgaW50IHNlbGVjdGlvbkVuZCk7
CiAgICAgdmlydHVhbCBib29sIGNvbmZpcm1Db21wb3NpdGlvbigpOworICAgIHZpcnR1YWwgYm9v
bCBjb25maXJtQ29tcG9zaXRpb24oY29uc3QgV2ViU3RyaW5nJiB0ZXh0KTsKICAgICB2aXJ0dWFs
IFdlYlRleHRJbnB1dFR5cGUgdGV4dElucHV0VHlwZSgpOwogICAgIHZpcnR1YWwgV2ViUmVjdCBj
YXJldE9yU2VsZWN0aW9uQm91bmRzKCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHREaXJlY3Rp
b24oV2ViVGV4dERpcmVjdGlvbiBkaXJlY3Rpb24pOwpJbmRleDogV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL1BvcHVwTWVudVRlc3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS90ZXN0
cy9Qb3B1cE1lbnVUZXN0LmNwcAkocmV2aXNpb24gNzQ3NzMpCisrKyBXZWJLaXQvY2hyb21pdW0v
dGVzdHMvUG9wdXBNZW51VGVzdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzOSw2ICsxMzksNyBA
QCBwdWJsaWM6CiAgICAgICAgIGludCBzZWxlY3Rpb25TdGFydCwKICAgICAgICAgaW50IHNlbGVj
dGlvbkVuZCkgeyByZXR1cm4gdHJ1ZTsgfQogICAgIHZpcnR1YWwgYm9vbCBjb25maXJtQ29tcG9z
aXRpb24oKSB7IHJldHVybiB0cnVlOyB9CisgICAgdmlydHVhbCBib29sIGNvbmZpcm1Db21wb3Np
dGlvbihjb25zdCBXZWJTdHJpbmcmIHRleHQpIHsgcmV0dXJuIHRydWU7IH0KICAgICB2aXJ0dWFs
IFdlYlRleHRJbnB1dFR5cGUgdGV4dElucHV0VHlwZSgpIHsgcmV0dXJuIFdlYktpdDo6V2ViVGV4
dElucHV0VHlwZU5vbmU7IH0KICAgICB2aXJ0dWFsIFdlYlJlY3QgY2FyZXRPclNlbGVjdGlvbkJv
dW5kcygpIHsgcmV0dXJuIFdlYlJlY3QoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0RGly
ZWN0aW9uKFdlYlRleHREaXJlY3Rpb24pIHsgfQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNzQ3NzMpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAor
MjAxMC0xMi0yOSAgWmhlIFN1ICA8c3V6aGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDEuIFJlbW92ZSBlbnRyeSBmb3IgZWRp
dGluZy9pbnB1dC9pbWUtY29tcG9zaXRpb24tY2xlYXJwcmVlZGl0Lmh0bWwgdGVzdC4KKyAgICAg
ICAgMi4gSW1wcm92ZSBmYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb24tZXZlbnRzLTAwMS5odG1s
IHRvIGNvdmVyIG1vcmUKKyAgICAgICAgICAgY2FzZXMuIEFuZCBmaXggdGVzdCBleHBlY3RhdGlv
bnMgb2YgY2hyb21pdW0gcG9ydC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTUxNjkzCisKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRp
b24tZXZlbnRzLTAwMS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9ldmVudHMvaW1lLWNv
bXBvc2l0aW9uLWV2ZW50cy0wMDEuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS1t
YWMvZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50cy0wMDEtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2V2ZW50cy9pbWUt
Y29tcG9zaXRpb24tZXZlbnRzLTAwMS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50cy0wMDEt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4
cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvZmFzdC9ldmVudHMvaW1lLWNv
bXBvc2l0aW9uLWV2ZW50cy0wMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAxMC0xMi0yOSAg
TWloYWkgUGFycGFyaXRhICA8bWloYWlwQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkIENocm9taXVtIGV4cGVjdGF0aW9ucyB1cGRhdGUuCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9pbWUtY29tcG9zaXRpb24tZXZlbnRzLTAwMS1leHBlY3RlZC50eHQKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50cy0wMDEt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA3NDc3MykKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L2ltZS1jb21wb3NpdGlvbi1ldmVudHMtMDAxLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpA
QCAtMTIsMyArMTIsNyBAQCBTVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uc3RhcnQgLSAiNSIK
IFNVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb251cGRhdGUgLSAiNiIKIFNVQ0NFU1M6IElOUFVU
IC0gY29tcG9zaXRpb251cGRhdGUgLSAiNyIKIFNVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb25l
bmQgLSAiIgorU1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5wdXQgLSAiOCIKK1NVQ0NFU1M6IElOUFVU
IC0gY29tcG9zaXRpb25zdGFydCAtICI5IgorU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbmVu
ZCAtICI5IgorU1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5wdXQgLSAiOSIKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlvbi1ldmVudHMtMDAxLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50cy0wMDEu
aHRtbAkocmV2aXNpb24gNzQ3NzMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbWUtY29t
cG9zaXRpb24tZXZlbnRzLTAwMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Nyw2ICs0NywxNiBA
QCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAgICAgdGV4dElucHV0Q29udHJv
bGxlci5zZXRNYXJrZWRUZXh0KCc2JywgMCwgMSk7CiAgICAgdGV4dElucHV0Q29udHJvbGxlci5z
ZXRNYXJrZWRUZXh0KCc3JywgMCwgMSk7CiAgICAgdGV4dElucHV0Q29udHJvbGxlci5zZXRNYXJr
ZWRUZXh0KCcnLCAwLCAwKTsKKworICAgIC8vIENhc2UgMzogSW5zZXJ0IGEgdGV4dCB3aXRob3V0
IGNvbXBvc2l0aW9uLgorICAgIHRleHRJbnB1dENvbnRyb2xsZXIuaW5zZXJ0VGV4dCgnOCcpOwor
CisgICAgLy8gQ2FzZSA0OiBDb21wb3NlIGEgdGV4dCBhbmQgY29tbWl0IGl0IGJ5IHJlbW92aW5n
IHRoZSBtYXJrLgorICAgIC8vIE9ubHkgTWFjIGFuZCBDaHJvbWl1bSBwb3J0cyBzdXBwb3J0IHVu
bWFya1RleHQuCisgICAgaWYgKHRleHRJbnB1dENvbnRyb2xsZXIudW5tYXJrVGV4dCkgeworICAg
ICAgICB0ZXh0SW5wdXRDb250cm9sbGVyLnNldE1hcmtlZFRleHQoJzknLCAwLCAxKTsKKyAgICAg
ICAgdGV4dElucHV0Q29udHJvbGxlci51bm1hcmtUZXh0KCk7CisgICAgfQogfQogPC9zY3JpcHQ+
CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMvZmFzdC9l
dmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50cy0wMDEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLW1hYy9mYXN0L2V2ZW50cy9pbWUtY29t
cG9zaXRpb24tZXZlbnRzLTAwMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDc0NzczKQorKysgTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlv
bi1ldmVudHMtMDAxLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwyOCArMCwwIEBA
Ci1UaGlzIHRlc3RzIHRoYXQgY2FsbGluZyBpbnB1dC1tZXRob2QgZnVuY3Rpb25zIHNlbmRzIENv
bXBvc2l0aW9uIEV2ZW50cyBhbmQgVGV4dCBFdmVudHMgaW50cm9kdWNlZCBpbiBET00gTGV2ZWwg
My4KLQotVG8gdGVzdCBtYW51YWxseSwgZW5hYmxlIGFuIElNRSwgaW5wdXQgQ0pLIGNoYXJhY3Rl
cnMsIGFuZCBzZWUgdGhpcyBwYWdlIGRvZXNuJ3Qgc2hvdyAnRkFJTEVEJyBsaW5lcy4KLQotCi1T
VUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uZW5kIC0gIjEiCi1TVUNDRVNTOiBJTlBVVCAtIHRl
eHRJbnB1dCAtICIxIgotU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbnN0YXJ0IC0gIjEiCi1T
VUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uZW5kIC0gIjIiCi1TVUNDRVNTOiBJTlBVVCAtIHRl
eHRJbnB1dCAtICIyIgotU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbnN0YXJ0IC0gIjIiCi1T
VUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uZW5kIC0gIjMiCi1TVUNDRVNTOiBJTlBVVCAtIHRl
eHRJbnB1dCAtICIzIgotU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbnN0YXJ0IC0gIjMiCi1T
VUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uZW5kIC0gIjMiCi1TVUNDRVNTOiBJTlBVVCAtIHRl
eHRJbnB1dCAtICIzIgotU1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5wdXQgLSAiNCIKLVNVQ0NFU1M6
IElOUFVUIC0gY29tcG9zaXRpb25lbmQgLSAiNSIKLVNVQ0NFU1M6IElOUFVUIC0gdGV4dElucHV0
IC0gIjUiCi1TVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uc3RhcnQgLSAiNSIKLVNVQ0NFU1M6
IElOUFVUIC0gY29tcG9zaXRpb25lbmQgLSAiNiIKLVNVQ0NFU1M6IElOUFVUIC0gdGV4dElucHV0
IC0gIjYiCi1TVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uc3RhcnQgLSAiNiIKLVNVQ0NFU1M6
IElOUFVUIC0gY29tcG9zaXRpb25lbmQgLSAiNyIKLVNVQ0NFU1M6IElOUFVUIC0gdGV4dElucHV0
IC0gIjciCi1TVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uc3RhcnQgLSAiNyIKLVNVQ0NFU1M6
IElOUFVUIC0gY29tcG9zaXRpb25lbmQgLSAiIgotU1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5wdXQg
LSAiIgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3QvZXZlbnRz
L2ltZS1jb21wb3NpdGlvbi1ldmVudHMtMDAxLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0
aW9uLWV2ZW50cy0wMDEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA3NDc3MykKKysrIExheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb24tZXZl
bnRzLTAwMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMjggKzAsMCBAQAotVGhp
cyB0ZXN0cyB0aGF0IGNhbGxpbmcgaW5wdXQtbWV0aG9kIGZ1bmN0aW9ucyBzZW5kcyBDb21wb3Np
dGlvbiBFdmVudHMgYW5kIFRleHQgRXZlbnRzIGludHJvZHVjZWQgaW4gRE9NIExldmVsIDMuCi0K
LVRvIHRlc3QgbWFudWFsbHksIGVuYWJsZSBhbiBJTUUsIGlucHV0IENKSyBjaGFyYWN0ZXJzLCBh
bmQgc2VlIHRoaXMgcGFnZSBkb2Vzbid0IHNob3cgJ0ZBSUxFRCcgbGluZXMuCi0KLQotU1VDQ0VT
UzogSU5QVVQgLSBjb21wb3NpdGlvbmVuZCAtICIxIgotU1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5w
dXQgLSAiMSIKLVNVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb25zdGFydCAtICIxIgotU1VDQ0VT
UzogSU5QVVQgLSBjb21wb3NpdGlvbmVuZCAtICIyIgotU1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5w
dXQgLSAiMiIKLVNVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb25zdGFydCAtICIyIgotU1VDQ0VT
UzogSU5QVVQgLSBjb21wb3NpdGlvbmVuZCAtICIzIgotU1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5w
dXQgLSAiMyIKLVNVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb25zdGFydCAtICIzIgotU1VDQ0VT
UzogSU5QVVQgLSBjb21wb3NpdGlvbmVuZCAtICIzIgotU1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5w
dXQgLSAiMyIKLVNVQ0NFU1M6IElOUFVUIC0gdGV4dElucHV0IC0gIjQiCi1TVUNDRVNTOiBJTlBV
VCAtIGNvbXBvc2l0aW9uZW5kIC0gIjUiCi1TVUNDRVNTOiBJTlBVVCAtIHRleHRJbnB1dCAtICI1
IgotU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbnN0YXJ0IC0gIjUiCi1TVUNDRVNTOiBJTlBV
VCAtIGNvbXBvc2l0aW9uZW5kIC0gIjYiCi1TVUNDRVNTOiBJTlBVVCAtIHRleHRJbnB1dCAtICI2
IgotU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbnN0YXJ0IC0gIjYiCi1TVUNDRVNTOiBJTlBV
VCAtIGNvbXBvc2l0aW9uZW5kIC0gIjciCi1TVUNDRVNTOiBJTlBVVCAtIHRleHRJbnB1dCAtICI3
IgotU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbnN0YXJ0IC0gIjciCi1TVUNDRVNTOiBJTlBV
VCAtIGNvbXBvc2l0aW9uZW5kIC0gIiIKLVNVQ0NFU1M6IElOUFVUIC0gdGV4dElucHV0IC0gIiIK
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQJKHJldmlzaW9uIDc0NzczKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zMjc1LDggKzMy
NzUsNiBAQCBCVUdXSzUxMzk4IE1BQyA6IGluc3BlY3Rvci9kZWJ1Z2dlci1leHBhCiAvLyBXZWJL
aXQgcm9sbCA3NDUzNDo3NDU0NQogQlVHV0s1MTUzNiA6IGZhc3QvY3NzL2JveC1zaGFkb3cuaHRt
bCA9IEZBSUwgVElNRU9VVAogCi1CVUdDUjY3OTYwIDogZWRpdGluZy9pbnB1dC9pbWUtY29tcG9z
aXRpb24tY2xlYXJwcmVlZGl0Lmh0bWwgPSBURVhUCi0KIC8vIFdlYktpdCByb2xsIDc0NjY3Ojc0
Njc5CiBCVUdDUjY4MDY3IExJTlVYIERFQlVHIDogZmFzdC9jYW52YXMvd2ViZ2wvdGV4LWltYWdl
LXdpdGgtZm9ybWF0LWFuZC10eXBlLmh0bWwgPSBURVhUIFBBU1MKIApJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50cy0w
MDEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlvbi1ldmVudHMtMDAxLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3QvZXZlbnRz
L2ltZS1jb21wb3NpdGlvbi1ldmVudHMtMDAxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxOCBAQAorVGhpcyB0ZXN0cyB0aGF0IGNhbGxpbmcgaW5wdXQtbWV0aG9kIGZ1bmN0
aW9ucyBzZW5kcyBDb21wb3NpdGlvbiBFdmVudHMgYW5kIFRleHQgRXZlbnRzIGludHJvZHVjZWQg
aW4gRE9NIExldmVsIDMuCisKK1RvIHRlc3QgbWFudWFsbHksIGVuYWJsZSBhbiBJTUUsIGlucHV0
IENKSyBjaGFyYWN0ZXJzLCBhbmQgc2VlIHRoaXMgcGFnZSBkb2Vzbid0IHNob3cgJ0ZBSUxFRCcg
bGluZXMuCisKKworU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbnN0YXJ0IC0gIjEiCitTVUND
RVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9udXBkYXRlIC0gIjIiCitTVUNDRVNTOiBJTlBVVCAtIGNv
bXBvc2l0aW9udXBkYXRlIC0gIjMiCitTVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uZW5kIC0g
IjQiCitTVUNDRVNTOiBJTlBVVCAtIHRleHRJbnB1dCAtICI0IgorU1VDQ0VTUzogSU5QVVQgLSBj
b21wb3NpdGlvbnN0YXJ0IC0gIjUiCitTVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9udXBkYXRl
IC0gIjYiCitTVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9udXBkYXRlIC0gIjciCitTVUNDRVNT
OiBJTlBVVCAtIGNvbXBvc2l0aW9uZW5kIC0gIiIKK1NVQ0NFU1M6IElOUFVUIC0gdGV4dElucHV0
IC0gIjgiCitTVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uc3RhcnQgLSAiOSIKK1NVQ0NFU1M6
IElOUFVUIC0gY29tcG9zaXRpb25lbmQgLSAiOSIKK1NVQ0NFU1M6IElOUFVUIC0gdGV4dElucHV0
IC0gIjkiCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2V2ZW50cy9pbWUtY29t
cG9zaXRpb24tZXZlbnRzLTAwMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50cy0wMDEtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9l
dmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50cy0wMDEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDE1IEBACitUaGlzIHRlc3RzIHRoYXQgY2FsbGluZyBpbnB1dC1tZXRob2Qg
ZnVuY3Rpb25zIHNlbmRzIENvbXBvc2l0aW9uIEV2ZW50cyBhbmQgVGV4dCBFdmVudHMgaW50cm9k
dWNlZCBpbiBET00gTGV2ZWwgMy4KKworVG8gdGVzdCBtYW51YWxseSwgZW5hYmxlIGFuIElNRSwg
aW5wdXQgQ0pLIGNoYXJhY3RlcnMsIGFuZCBzZWUgdGhpcyBwYWdlIGRvZXNuJ3Qgc2hvdyAnRkFJ
TEVEJyBsaW5lcy4KKworCitTVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uc3RhcnQgLSAiMSIK
K1NVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb251cGRhdGUgLSAiMiIKK1NVQ0NFU1M6IElOUFVU
IC0gY29tcG9zaXRpb251cGRhdGUgLSAiMyIKK1NVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb25l
bmQgLSAiNCIKK1NVQ0NFU1M6IElOUFVUIC0gdGV4dElucHV0IC0gIjQiCitTVUNDRVNTOiBJTlBV
VCAtIGNvbXBvc2l0aW9uc3RhcnQgLSAiNSIKK1NVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb251
cGRhdGUgLSAiNiIKK1NVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb251cGRhdGUgLSAiNyIKK1NV
Q0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb25lbmQgLSAiIgorU1VDQ0VTUzogSU5QVVQgLSB0ZXh0
SW5wdXQgLSAiOCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77822</attachid>
            <date>2011-01-03 10:36:45 -0800</date>
            <delta_ts>2011-01-04 11:09:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51693-20110103103644.patch</filename>
            <type>text/plain</type>
            <size>20512</size>
            <attacher name="James Su">suzhe</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDc0ODk1KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMTAtMTItMjkgIFpoZSBTdSAgPHN1emhlQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggaW5zZXJ0VGV4
dCwgc2V0TWFya2VkVGV4dCBhbmQgdW5tYXJrVGV4dCBtZXRob2RzIG9mCisgICAgICAgIFRleHRJ
bnB1dENvbnRyb2xsZXIgdG8gY2FsbCBjb3JyZXNwb25kaW5nIG1ldGhvZHMgb2YgV2ViS2l0OjpX
ZWJWaWV3CisgICAgICAgIHJhdGhlciB0aGFuIFdlYktpdDo6V2ViRnJhbWUuIFRoaXMgY2hhbmdl
IG1hdGNoZXMgdGhlIGJlaGF2aW9yIG9mCisgICAgICAgIGNocm9taXVtIGJyb3dzZXIuCisgICAg
ICAgIGluc2VydFRleHQgY29ycmVzcG9uZHMgdG8gV2ViVmlldzo6Y29uZmlybUNvbXBvc2l0aW9u
KHRleHQpCisgICAgICAgIHNldE1hcmtlZFRleHQgY29ycmVzcG9uZHMgdG8gV2ViVmlldzo6c2V0
Q29tcG9zaXRpb24oLi4uKQorICAgICAgICB1bm1hcmtUZXh0IGNvcnJlc3BvbmRzIHRvIFdlYlZp
ZXc6OmNvbmZpcm1Db21wb3NpdGlvbigpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MTY5MworCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGV4dElucHV0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChUZXh0SW5wdXRDb250cm9sbGVy
OjppbnNlcnRUZXh0KToKKyAgICAgICAgKFRleHRJbnB1dENvbnRyb2xsZXI6OnNldE1hcmtlZFRl
eHQpOgorICAgICAgICAoVGV4dElucHV0Q29udHJvbGxlcjo6dW5tYXJrVGV4dCk6CisKIDIwMTEt
MDEtMDMgIEtvYW4tU2luIFRhbiAgPGtvYW5zaW4udGFuQGdtYWlsLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBYYW4gTG9wZXouCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXh0SW5wdXRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXh0SW5wdXRDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNzQ4OTUpCisr
KyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXh0SW5wdXRDb250cm9sbGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzksMTcgKzc5LDEwIEBAIHZvaWQgVGV4dElucHV0Q29udHJvbGxl
cjo6aW5zZXJ0VGV4dChjb24KIHsKICAgICByZXN1bHQtPnNldE51bGwoKTsKIAotICAgIFdlYkZy
YW1lKiBtYWluRnJhbWUgPSBnZXRNYWluRnJhbWUoKTsKLSAgICBpZiAoIW1haW5GcmFtZSkKLSAg
ICAgICAgcmV0dXJuOwogICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpIDwgMSB8fCAhYXJndW1lbnRz
WzBdLmlzU3RyaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtYWluRnJhbWUtPmhh
c01hcmtlZFRleHQoKSkgewotICAgICAgICBtYWluRnJhbWUtPnVubWFya1RleHQoKTsKLSAgICAg
ICAgbWFpbkZyYW1lLT5yZXBsYWNlU2VsZWN0aW9uKFdlYlN0cmluZygpKTsKLSAgICB9Ci0gICAg
bWFpbkZyYW1lLT5pbnNlcnRUZXh0KFdlYlN0cmluZzo6ZnJvbVVURjgoYXJndW1lbnRzWzBdLnRv
U3RyaW5nKCkpKTsKKyAgICB0ZXN0U2hlbGwtPndlYlZpZXcoKS0+Y29uZmlybUNvbXBvc2l0aW9u
KFdlYlN0cmluZzo6ZnJvbVVURjgoYXJndW1lbnRzWzBdLnRvU3RyaW5nKCkpKTsKIH0KIAogdm9p
ZCBUZXh0SW5wdXRDb250cm9sbGVyOjpkb0NvbW1hbmQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBh
cmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKQEAgLTEwOCwxNSArMTAxLDEzIEBAIHZvaWQg
VGV4dElucHV0Q29udHJvbGxlcjo6c2V0TWFya2VkVGV4dCgKIHsKICAgICByZXN1bHQtPnNldE51
bGwoKTsKIAotICAgIFdlYkZyYW1lKiBtYWluRnJhbWUgPSBnZXRNYWluRnJhbWUoKTsKLSAgICBp
ZiAoIW1haW5GcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKGFyZ3VtZW50cy5zaXpl
KCkgPj0gMyAmJiBhcmd1bWVudHNbMF0uaXNTdHJpbmcoKQogICAgICAgICAmJiBhcmd1bWVudHNb
MV0uaXNOdW1iZXIoKSAmJiBhcmd1bWVudHNbMl0uaXNOdW1iZXIoKSkgewotICAgICAgICBtYWlu
RnJhbWUtPnNldE1hcmtlZFRleHQoV2ViU3RyaW5nOjpmcm9tVVRGOChhcmd1bWVudHNbMF0udG9T
dHJpbmcoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHNbMV0u
dG9JbnQzMigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzWzJd
LnRvSW50MzIoKSk7CisgICAgICAgIFdlYlZlY3RvcjxXZWJDb21wb3NpdGlvblVuZGVybGluZT4g
dW5kZXJsaW5lczsKKyAgICAgICAgdGVzdFNoZWxsLT53ZWJWaWV3KCktPnNldENvbXBvc2l0aW9u
KFdlYlN0cmluZzo6ZnJvbVVURjgoYXJndW1lbnRzWzBdLnRvU3RyaW5nKCkpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZXJsaW5lcywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50c1sxXS50b0ludDMy
KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVu
dHNbMV0udG9JbnQzMigpICsgYXJndW1lbnRzWzJdLnRvSW50MzIoKSk7CiAgICAgfQogfQogCkBA
IC0xMjQsMTEgKzExNSw3IEBAIHZvaWQgVGV4dElucHV0Q29udHJvbGxlcjo6dW5tYXJrVGV4dChj
b24KIHsKICAgICByZXN1bHQtPnNldE51bGwoKTsKIAotICAgIFdlYkZyYW1lKiBtYWluRnJhbWUg
PSBnZXRNYWluRnJhbWUoKTsKLSAgICBpZiAoIW1haW5GcmFtZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgbWFpbkZyYW1lLT51bm1hcmtUZXh0KCk7CisgICAgdGVzdFNoZWxsLT53ZWJWaWV3KCkt
PmNvbmZpcm1Db21wb3NpdGlvbigpOwogfQogCiB2b2lkIFRleHRJbnB1dENvbnRyb2xsZXI6Omhh
c01hcmtlZFRleHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQpJ
bmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA3NDg5NSkKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzNSBAQAorMjAxMC0xMi0yOSAgWmhlIFN1
ICA8c3V6aGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENoYW5nZXM6CisgICAgICAgIDEuIEFkZCBXZWJLaXQ6OldlYldpZGdl
dDo6Y29uZmlybUNvbXBvc2l0aW9uKGNvbnN0IFdlYlN0cmluZyYgdGV4dCkKKyAgICAgICAgICAg
VGhpcyBuZXcgbWV0aG9kIGNvcnJlc3BvbmRzIHRvIEVkaXRvcjo6Y29uZmlybUNvbXBvc2l0aW9u
KHRleHQpIGFuZAorICAgICAgICAgICBFZGl0b3I6Omluc2VydFRleHQodGV4dCkuIEl0J2xsIGJl
IHVzZWQgYnkgYm90aCBEdW1wUmVuZGVyVHJlZSdzCisgICAgICAgICAgIFRleHRJbnB1dENvbnRy
b2xsZXIgYW5kIGNocm9taXVtIGJyb3dzZXIuCisgICAgICAgIDIuIEZpeCBXZWJGcmFtZUltcGw6
Omluc2VydFRleHQKKyAgICAgICAgICAgSXQgc2hvdWxkIGNhbGwgRWRpdG9yOjpjb25maXJtQ29t
cG9zaXRpb24odGV4dCkgcmF0aGVyIHRoYW4KKyAgICAgICAgICAgRWRpdG9yOjppbnNlcnRUZXh0
KHRleHQpIGlmIHRoZXJlIGlzIGFuIG9uZ29pbmcgY29tcG9zaXRpb24uCisgICAgICAgICAgIEl0
IG1hdGNoZXMgdGhlIGJlaGF2aW9yIG9mIFdlYktpdCBNYWMgcG9ydC4KKyAgICAgICAgMy4gRml4
IFdlYkZyYW1lSW1wbDo6c2V0TWFya2VkVGV4dAorICAgICAgICAgICBFZGl0b3I6OmNvbmZpcm1D
b21wb3NpdGlvbih0ZXh0KSBzaG91bGRuJ3QgYmUgY2FsbGVkIGluIHRoaXMKKyAgICAgICAgICAg
bWV0aG9kLCB3aGljaCBpbmNvcnJlY3RseSBpbnNlcnRzIHRoZSB0ZXh0LgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTY5MworCisgICAgICAgICog
cHVibGljL1dlYldpZGdldC5oOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6Omluc2VydFRleHQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZUltcGw6OnNldE1hcmtlZFRleHQpOgorICAgICAgICAqIHNyYy9XZWJQb3B1cE1l
bnVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51SW1wbDo6Y29uZmlybUNv
bXBvc2l0aW9uKToKKyAgICAgICAgKiBzcmMvV2ViUG9wdXBNZW51SW1wbC5oOgorICAgICAgICAq
IHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjb25m
aXJtQ29tcG9zaXRpb24pOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAq
IHRlc3RzL1BvcHVwTWVudVRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2ViV2lkZ2V0
Ojpjb25maXJtQ29tcG9zaXRpb24pOgorCiAyMDExLTAxLTAyICBEaXJrIFNjaHVsemUgIDxrcml0
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDog
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCShyZXZpc2lvbiA3NDg5NSkKKysrIFdlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw5ICsxMDMs
MTggQEAgcHVibGljOgogICAgICAgICBpbnQgc2VsZWN0aW9uRW5kKSA9IDA7CiAKICAgICAvLyBD
YWxsZWQgdG8gaW5mb3JtIHRoZSBXZWJXaWRnZXQgdG8gY29uZmlybSBhbiBvbmdvaW5nIGNvbXBv
c2l0aW9uLgorICAgIC8vIFRoaXMgbWV0aG9kIGlzIHNhbWUgYXMgY29uZmlybUNvbXBvc2l0aW9u
KFdlYlN0cmluZygpKTsKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMgYW4gb25nb2lu
ZyBjb21wb3NpdGlvbi4KICAgICB2aXJ0dWFsIGJvb2wgY29uZmlybUNvbXBvc2l0aW9uKCkgPSAw
OwogCisgICAgLy8gQ2FsbGVkIHRvIGluZm9ybSB0aGUgV2ViV2lkZ2V0IHRvIGNvbmZpcm0gYW4g
b25nb2luZyBjb21wb3NpdGlvbiB3aXRoIGEKKyAgICAvLyBuZXcgY29tcG9zaXRpb24gdGV4dC4g
SWYgdGhlIHRleHQgaXMgZW1wdHkgdGhlbiB0aGUgY3VycmVudCBjb21wb3NpdGlvbgorICAgIC8v
IHRleHQgaXMgY29uZmlybWVkLiBJZiB0aGVyZSBpcyBubyBvbmdvaW5nIGNvbXBvc2l0aW9uLCB0
aGVuIGRlbGV0ZXMgdGhlCisgICAgLy8gY3VycmVudCBzZWxlY3Rpb24gYW5kIGluc2VydHMgdGhl
IHRleHQuIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYKKyAgICAvLyB0aGVyZSBpcyBubyBv
bmdvaW5nIGNvbXBvc2l0aW9uIGFuZCB0aGUgdGV4dCBpcyBlbXB0eS4KKyAgICAvLyBSZXR1cm5z
IHRydWUgaWYgdGhlcmUgaXMgYW4gb25nb2luZyBjb21wb3NpdGlvbiBvciB0aGUgdGV4dCBpcyBp
bnNlcnRlZC4KKyAgICB2aXJ0dWFsIGJvb2wgY29uZmlybUNvbXBvc2l0aW9uKGNvbnN0IFdlYlN0
cmluZyYgdGV4dCkgPSAwOworCiAgICAgLy8gUmV0dXJucyB0aGUgY3VycmVudCB0ZXh0IGlucHV0
IHR5cGUgb2YgdGhpcyBXZWJXaWRnZXQuCiAgICAgdmlydHVhbCBXZWJUZXh0SW5wdXRUeXBlIHRl
eHRJbnB1dFR5cGUoKSA9IDA7CiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJ
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAJKHJldmlzaW9uIDc0ODk1KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDczLDcgKzEwNzMsMTIgQEAgdm9pZCBXZWJGcmFtZUlt
cGw6OnJlcGxhY2VTZWxlY3Rpb24oY29ucwogCiB2b2lkIFdlYkZyYW1lSW1wbDo6aW5zZXJ0VGV4
dChjb25zdCBXZWJTdHJpbmcmIHRleHQpCiB7Ci0gICAgZnJhbWUoKS0+ZWRpdG9yKCktPmluc2Vy
dFRleHQodGV4dCwgMCk7CisgICAgRWRpdG9yKiBlZGl0b3IgPSBmcmFtZSgpLT5lZGl0b3IoKTsK
KworICAgIGlmIChlZGl0b3ItPmhhc0NvbXBvc2l0aW9uKCkpCisgICAgICAgIGVkaXRvci0+Y29u
ZmlybUNvbXBvc2l0aW9uKHRleHQpOworICAgIGVsc2UKKyAgICAgICAgZWRpdG9yLT5pbnNlcnRU
ZXh0KHRleHQsIDApOwogfQogCiB2b2lkIFdlYkZyYW1lSW1wbDo6c2V0TWFya2VkVGV4dCgKQEAg
LTEwODEsOCArMTA4Niw2IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpzZXRNYXJrZWRUZXh0KAogewog
ICAgIEVkaXRvciogZWRpdG9yID0gZnJhbWUoKS0+ZWRpdG9yKCk7CiAKLSAgICBlZGl0b3ItPmNv
bmZpcm1Db21wb3NpdGlvbih0ZXh0KTsKLQogICAgIFZlY3RvcjxDb21wb3NpdGlvblVuZGVybGlu
ZT4gZGVjb3JhdGlvbnM7CiAgICAgZWRpdG9yLT5zZXRDb21wb3NpdGlvbih0ZXh0LCBkZWNvcmF0
aW9ucywgbG9jYXRpb24sIGxlbmd0aCk7CiB9CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlBvcHVwTWVudUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
UG9wdXBNZW51SW1wbC5jcHAJKHJldmlzaW9uIDc0ODk1KQorKysgV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJQb3B1cE1lbnVJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUzLDYgKzI1MywxMSBA
QCBib29sIFdlYlBvcHVwTWVudUltcGw6OmNvbmZpcm1Db21wb3NpdGlvCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCitib29sIFdlYlBvcHVwTWVudUltcGw6OmNvbmZpcm1Db21wb3NpdGlvbihjb25z
dCBXZWJTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBXZWJUZXh0SW5w
dXRUeXBlIFdlYlBvcHVwTWVudUltcGw6OnRleHRJbnB1dFR5cGUoKQogewogICAgIHJldHVybiBX
ZWJUZXh0SW5wdXRUeXBlTm9uZTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBN
ZW51SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51
SW1wbC5oCShyZXZpc2lvbiA3NDg5NSkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBN
ZW51SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw2ICs3Myw3IEBAIHB1YmxpYzoKICAgICAg
ICAgY29uc3QgV2ViVmVjdG9yPFdlYkNvbXBvc2l0aW9uVW5kZXJsaW5lPiYgdW5kZXJsaW5lcywK
ICAgICAgICAgaW50IHNlbGVjdGlvblN0YXJ0LCBpbnQgc2VsZWN0aW9uRW5kKTsKICAgICB2aXJ0
dWFsIGJvb2wgY29uZmlybUNvbXBvc2l0aW9uKCk7CisgICAgdmlydHVhbCBib29sIGNvbmZpcm1D
b21wb3NpdGlvbihjb25zdCBXZWJTdHJpbmcmIHRleHQpOwogICAgIHZpcnR1YWwgV2ViVGV4dElu
cHV0VHlwZSB0ZXh0SW5wdXRUeXBlKCk7CiAgICAgdmlydHVhbCBXZWJSZWN0IGNhcmV0T3JTZWxl
Y3Rpb25Cb3VuZHMoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dERpcmVjdGlvbihXZWJUZXh0
RGlyZWN0aW9uIGRpcmVjdGlvbik7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cAkocmV2aXNpb24gNzQ4OTUpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTMwMywxMSArMTMwMywxNiBAQCBib29sIFdlYlZpZXdJbXBs
OjpzZXRDb21wb3NpdGlvbigKIAogYm9vbCBXZWJWaWV3SW1wbDo6Y29uZmlybUNvbXBvc2l0aW9u
KCkKIHsKKyAgICByZXR1cm4gY29uZmlybUNvbXBvc2l0aW9uKFdlYlN0cmluZygpKTsKK30KKwor
Ym9vbCBXZWJWaWV3SW1wbDo6Y29uZmlybUNvbXBvc2l0aW9uKGNvbnN0IFdlYlN0cmluZyYgdGV4
dCkKK3sKICAgICBGcmFtZSogZm9jdXNlZCA9IGZvY3VzZWRXZWJDb3JlRnJhbWUoKTsKICAgICBp
ZiAoIWZvY3VzZWQgfHwgIW1faW1lQWNjZXB0RXZlbnRzKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgRWRpdG9yKiBlZGl0b3IgPSBmb2N1c2VkLT5lZGl0b3IoKTsKLSAgICBpZiAoIWVkaXRv
ciB8fCAhZWRpdG9yLT5oYXNDb21wb3NpdGlvbigpKQorICAgIGlmICghZWRpdG9yIHx8ICghZWRp
dG9yLT5oYXNDb21wb3NpdGlvbigpICYmICF0ZXh0Lmxlbmd0aCgpKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgLy8gV2Ugc2hvdWxkIHZlcmlmeSB0aGUgcGFyZW50IG5vZGUgb2YgdGhp
cyBJTUUgY29tcG9zaXRpb24gbm9kZSBhcmUKQEAgLTEzMjEsNyArMTMyNiwxNCBAQCBib29sIFdl
YlZpZXdJbXBsOjpjb25maXJtQ29tcG9zaXRpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KIAotICAgIGVkaXRvci0+Y29uZmlybUNvbXBvc2l0aW9uKCk7CisgICAgaWYgKGVk
aXRvci0+aGFzQ29tcG9zaXRpb24oKSkgeworICAgICAgICBpZiAodGV4dC5sZW5ndGgoKSkKKyAg
ICAgICAgICAgIGVkaXRvci0+Y29uZmlybUNvbXBvc2l0aW9uKFN0cmluZyh0ZXh0KSk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGVkaXRvci0+Y29uZmlybUNvbXBvc2l0aW9uKCk7CisgICAg
fSBlbHNlCisgICAgICAgIGVkaXRvci0+aW5zZXJ0VGV4dChTdHJpbmcodGV4dCksIDApOworCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHJl
dmlzaW9uIDc0ODk1KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1LDcgQEAgcHVibGljOgogICAgICAgICBpbnQgc2VsZWN0
aW9uU3RhcnQsCiAgICAgICAgIGludCBzZWxlY3Rpb25FbmQpOwogICAgIHZpcnR1YWwgYm9vbCBj
b25maXJtQ29tcG9zaXRpb24oKTsKKyAgICB2aXJ0dWFsIGJvb2wgY29uZmlybUNvbXBvc2l0aW9u
KGNvbnN0IFdlYlN0cmluZyYgdGV4dCk7CiAgICAgdmlydHVhbCBXZWJUZXh0SW5wdXRUeXBlIHRl
eHRJbnB1dFR5cGUoKTsKICAgICB2aXJ0dWFsIFdlYlJlY3QgY2FyZXRPclNlbGVjdGlvbkJvdW5k
cygpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0RGlyZWN0aW9uKFdlYlRleHREaXJlY3Rpb24g
ZGlyZWN0aW9uKTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS90ZXN0cy9Qb3B1cE1lbnVUZXN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vdGVzdHMvUG9wdXBNZW51VGVzdC5jcHAJ
KHJldmlzaW9uIDc0ODk1KQorKysgV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BvcHVwTWVudVRlc3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzksNiArMTM5LDcgQEAgcHVibGljOgogICAgICAgICBp
bnQgc2VsZWN0aW9uU3RhcnQsCiAgICAgICAgIGludCBzZWxlY3Rpb25FbmQpIHsgcmV0dXJuIHRy
dWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgY29uZmlybUNvbXBvc2l0aW9uKCkgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjb25maXJtQ29tcG9zaXRpb24oY29uc3QgV2ViU3RyaW5n
JiB0ZXh0KSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBXZWJUZXh0SW5wdXRUeXBlIHRl
eHRJbnB1dFR5cGUoKSB7IHJldHVybiBXZWJLaXQ6OldlYlRleHRJbnB1dFR5cGVOb25lOyB9CiAg
ICAgdmlydHVhbCBXZWJSZWN0IGNhcmV0T3JTZWxlY3Rpb25Cb3VuZHMoKSB7IHJldHVybiBXZWJS
ZWN0KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dERpcmVjdGlvbihXZWJUZXh0RGlyZWN0
aW9uKSB7IH0KSW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gNzQ5MDQpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDEtMDMgIFpoZSBTdSAgPHN1emhl
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBGaXggdGVzdCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb24t
ZXZlbnRzLTAwMS5odG1sLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01MTY5MworCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAg
KFFXZWJQYWdlUHJpdmF0ZTo6aW5wdXRNZXRob2RFdmVudCk6CisKIDIwMTEtMDEtMDIgIEFudG9u
aW8gR29tZXMgIDxhZ29tZXNAcmltLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRo
IFJvaGRlIENocmlzdGlhbnNlbi4KSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCShyZXZpc2lvbiA3NDg5NSkK
KysrIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDk1LDkg
KzEwOTUsMTIgQEAgdm9pZCBRV2ViUGFnZVByaXZhdGU6OmlucHV0TWV0aG9kRXZlbnQoUQogICAg
ICAgICBzZXRTZWxlY3Rpb25SYW5nZShub2RlLCBzdGFydCwgc3RhcnQgKyBldi0+cmVwbGFjZW1l
bnRMZW5ndGgoKSk7CiAgICAgICAgIC8vIENvbW1pdCByZWdhcmRsZXNzIG9mIHdoZXRoZXIgY29t
bWl0U3RyaW5nIGlzIGVtcHR5LCB0byBnZXQgcmlkIG9mIHNlbGVjdGlvbi4KICAgICAgICAgZWRp
dG9yLT5jb25maXJtQ29tcG9zaXRpb24oZXYtPmNvbW1pdFN0cmluZygpKTsKLSAgICB9IGVsc2Ug
aWYgKCFldi0+Y29tbWl0U3RyaW5nKCkuaXNFbXB0eSgpKQotICAgICAgICBlZGl0b3ItPmNvbmZp
cm1Db21wb3NpdGlvbihldi0+Y29tbWl0U3RyaW5nKCkpOwotICAgIGVsc2UgaWYgKCFoYXNTZWxl
Y3Rpb24gJiYgIWV2LT5wcmVlZGl0U3RyaW5nKCkuaXNFbXB0eSgpKQorICAgIH0gZWxzZSBpZiAo
IWV2LT5jb21taXRTdHJpbmcoKS5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKGVkaXRvci0+aGFz
Q29tcG9zaXRpb24oKSkKKyAgICAgICAgICAgIGVkaXRvci0+Y29uZmlybUNvbXBvc2l0aW9uKGV2
LT5jb21taXRTdHJpbmcoKSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGVkaXRvci0+aW5z
ZXJ0VGV4dChldi0+Y29tbWl0U3RyaW5nKCksIDApOworICAgIH0gZWxzZSBpZiAoIWhhc1NlbGVj
dGlvbiAmJiAhZXYtPnByZWVkaXRTdHJpbmcoKS5pc0VtcHR5KCkpCiAgICAgICAgIGVkaXRvci0+
c2V0Q29tcG9zaXRpb24oZXYtPnByZWVkaXRTdHJpbmcoKSwgdW5kZXJsaW5lcywgMCwgMCk7CiAg
ICAgZWxzZSBpZiAoZXYtPnByZWVkaXRTdHJpbmcoKS5pc0VtcHR5KCkgJiYgZWRpdG9yLT5oYXND
b21wb3NpdGlvbigpKQogICAgICAgICBlZGl0b3ItPmNvbmZpcm1Db21wb3NpdGlvbihTdHJpbmco
KSk7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA3NDg5NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEwLTEyLTI5ICBaaGUgU3UgIDxzdXpo
ZUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgMS4gUmVtb3ZlIGVudHJ5IGZvciBlZGl0aW5nL2lucHV0L2ltZS1jb21wb3NpdGlv
bi1jbGVhcnByZWVkaXQuaHRtbCB0ZXN0LgorICAgICAgICAyLiBJbXByb3ZlIGZhc3QvZXZlbnRz
L2ltZS1jb21wb3NpdGlvbi1ldmVudHMtMDAxLmh0bWwgdG8gY292ZXIgbW9yZQorICAgICAgICAg
ICBjYXNlcy4gQW5kIGZpeCB0ZXN0IGV4cGVjdGF0aW9ucyBvZiBjaHJvbWl1bSBwb3J0LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTE2OTMKKworICAg
ICAgICAqIGZhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlvbi1ldmVudHMtMDAxLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb24tZXZlbnRzLTAwMS5odG1s
OgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtLW1hYy9mYXN0L2V2ZW50cy9pbWUtY29tcG9z
aXRpb24tZXZlbnRzLTAwMS1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0td2luL2Zhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlvbi1ldmVudHMtMDAxLWV4
cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2
ZW50cy9pbWUtY29tcG9zaXRpb24tZXZlbnRzLTAwMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9xdC9mYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb24tZXZlbnRzLTAwMS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorCiAyMDExLTAxLTAzICBNaWhhaSBQYXJwYXJpdGEgIDxtaWhhaXBA
Y2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIENocm9taXVtIHRlc3QgZXhwZWN0
YXRpb24gdXBkYXRlLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0
aW9uLWV2ZW50cy0wMDEtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL2ltZS1jb21wb3NpdGlvbi1ldmVudHMtMDAxLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gNzQ4OTUpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb24tZXZl
bnRzLTAwMS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEyLDMgKzEyLDcgQEAgU1VD
Q0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbnN0YXJ0IC0gIjUiCiBTVUNDRVNTOiBJTlBVVCAtIGNv
bXBvc2l0aW9udXBkYXRlIC0gIjYiCiBTVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9udXBkYXRl
IC0gIjciCiBTVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uZW5kIC0gIiIKK1NVQ0NFU1M6IElO
UFVUIC0gdGV4dElucHV0IC0gIjgiCitTVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uc3RhcnQg
LSAiOSIKK1NVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb25lbmQgLSAiOSIKK1NVQ0NFU1M6IElO
UFVUIC0gdGV4dElucHV0IC0gIjkiCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbWUt
Y29tcG9zaXRpb24tZXZlbnRzLTAwMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL2ltZS1jb21wb3NpdGlvbi1ldmVudHMtMDAxLmh0bWwJKHJldmlzaW9uIDc0ODk1
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50cy0wMDEu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsMTYgQEAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewogICAgIHRleHRJbnB1dENvbnRyb2xsZXIuc2V0TWFya2VkVGV4dCgn
NicsIDAsIDEpOwogICAgIHRleHRJbnB1dENvbnRyb2xsZXIuc2V0TWFya2VkVGV4dCgnNycsIDAs
IDEpOwogICAgIHRleHRJbnB1dENvbnRyb2xsZXIuc2V0TWFya2VkVGV4dCgnJywgMCwgMCk7CisK
KyAgICAvLyBDYXNlIDM6IEluc2VydCBhIHRleHQgd2l0aG91dCBjb21wb3NpdGlvbi4KKyAgICB0
ZXh0SW5wdXRDb250cm9sbGVyLmluc2VydFRleHQoJzgnKTsKKworICAgIC8vIENhc2UgNDogQ29t
cG9zZSBhIHRleHQgYW5kIGNvbW1pdCBpdCBieSByZW1vdmluZyB0aGUgbWFyay4KKyAgICAvLyBP
bmx5IE1hYyBhbmQgQ2hyb21pdW0gcG9ydHMgc3VwcG9ydCB1bm1hcmtUZXh0LgorICAgIGlmICh0
ZXh0SW5wdXRDb250cm9sbGVyLnVubWFya1RleHQpIHsKKyAgICAgICAgdGV4dElucHV0Q29udHJv
bGxlci5zZXRNYXJrZWRUZXh0KCc5JywgMCwgMSk7CisgICAgICAgIHRleHRJbnB1dENvbnRyb2xs
ZXIudW5tYXJrVGV4dCgpOworICAgIH0KIH0KIDwvc2NyaXB0PgogPC9ib2R5PgpJbmRleDogTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL2Zhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlv
bi1ldmVudHMtMDAxLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1tYWMvZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50cy0wMDEt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiA3NDg5NSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtLW1hYy9mYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb24tZXZlbnRzLTAwMS1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMjggKzAsMCBAQAotVGhpcyB0ZXN0cyB0aGF0IGNh
bGxpbmcgaW5wdXQtbWV0aG9kIGZ1bmN0aW9ucyBzZW5kcyBDb21wb3NpdGlvbiBFdmVudHMgYW5k
IFRleHQgRXZlbnRzIGludHJvZHVjZWQgaW4gRE9NIExldmVsIDMuCi0KLVRvIHRlc3QgbWFudWFs
bHksIGVuYWJsZSBhbiBJTUUsIGlucHV0IENKSyBjaGFyYWN0ZXJzLCBhbmQgc2VlIHRoaXMgcGFn
ZSBkb2Vzbid0IHNob3cgJ0ZBSUxFRCcgbGluZXMuCi0KLQotU1VDQ0VTUzogSU5QVVQgLSBjb21w
b3NpdGlvbmVuZCAtICIxIgotU1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5wdXQgLSAiMSIKLVNVQ0NF
U1M6IElOUFVUIC0gY29tcG9zaXRpb25zdGFydCAtICIxIgotU1VDQ0VTUzogSU5QVVQgLSBjb21w
b3NpdGlvbmVuZCAtICIyIgotU1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5wdXQgLSAiMiIKLVNVQ0NF
U1M6IElOUFVUIC0gY29tcG9zaXRpb25zdGFydCAtICIyIgotU1VDQ0VTUzogSU5QVVQgLSBjb21w
b3NpdGlvbmVuZCAtICIzIgotU1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5wdXQgLSAiMyIKLVNVQ0NF
U1M6IElOUFVUIC0gY29tcG9zaXRpb25zdGFydCAtICIzIgotU1VDQ0VTUzogSU5QVVQgLSBjb21w
b3NpdGlvbmVuZCAtICIzIgotU1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5wdXQgLSAiMyIKLVNVQ0NF
U1M6IElOUFVUIC0gdGV4dElucHV0IC0gIjQiCi1TVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9u
ZW5kIC0gIjUiCi1TVUNDRVNTOiBJTlBVVCAtIHRleHRJbnB1dCAtICI1IgotU1VDQ0VTUzogSU5Q
VVQgLSBjb21wb3NpdGlvbnN0YXJ0IC0gIjUiCi1TVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9u
ZW5kIC0gIjYiCi1TVUNDRVNTOiBJTlBVVCAtIHRleHRJbnB1dCAtICI2IgotU1VDQ0VTUzogSU5Q
VVQgLSBjb21wb3NpdGlvbnN0YXJ0IC0gIjYiCi1TVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9u
ZW5kIC0gIjciCi1TVUNDRVNTOiBJTlBVVCAtIHRleHRJbnB1dCAtICI3IgotU1VDQ0VTUzogSU5Q
VVQgLSBjb21wb3NpdGlvbnN0YXJ0IC0gIjciCi1TVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9u
ZW5kIC0gIiIKLVNVQ0NFU1M6IElOUFVUIC0gdGV4dElucHV0IC0gIiIKSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi9mYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb24tZXZl
bnRzLTAwMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Y2hyb21pdW0td2luL2Zhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlvbi1ldmVudHMtMDAxLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gNzQ4OTUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS13aW4vZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50cy0wMDEtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDI4ICswLDAgQEAKLVRoaXMgdGVzdHMgdGhhdCBjYWxsaW5n
IGlucHV0LW1ldGhvZCBmdW5jdGlvbnMgc2VuZHMgQ29tcG9zaXRpb24gRXZlbnRzIGFuZCBUZXh0
IEV2ZW50cyBpbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAzLgotCi1UbyB0ZXN0IG1hbnVhbGx5LCBl
bmFibGUgYW4gSU1FLCBpbnB1dCBDSksgY2hhcmFjdGVycywgYW5kIHNlZSB0aGlzIHBhZ2UgZG9l
c24ndCBzaG93ICdGQUlMRUQnIGxpbmVzLgotCi0KLVNVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRp
b25lbmQgLSAiMSIKLVNVQ0NFU1M6IElOUFVUIC0gdGV4dElucHV0IC0gIjEiCi1TVUNDRVNTOiBJ
TlBVVCAtIGNvbXBvc2l0aW9uc3RhcnQgLSAiMSIKLVNVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRp
b25lbmQgLSAiMiIKLVNVQ0NFU1M6IElOUFVUIC0gdGV4dElucHV0IC0gIjIiCi1TVUNDRVNTOiBJ
TlBVVCAtIGNvbXBvc2l0aW9uc3RhcnQgLSAiMiIKLVNVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRp
b25lbmQgLSAiMyIKLVNVQ0NFU1M6IElOUFVUIC0gdGV4dElucHV0IC0gIjMiCi1TVUNDRVNTOiBJ
TlBVVCAtIGNvbXBvc2l0aW9uc3RhcnQgLSAiMyIKLVNVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRp
b25lbmQgLSAiMyIKLVNVQ0NFU1M6IElOUFVUIC0gdGV4dElucHV0IC0gIjMiCi1TVUNDRVNTOiBJ
TlBVVCAtIHRleHRJbnB1dCAtICI0IgotU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbmVuZCAt
ICI1IgotU1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5wdXQgLSAiNSIKLVNVQ0NFU1M6IElOUFVUIC0g
Y29tcG9zaXRpb25zdGFydCAtICI1IgotU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbmVuZCAt
ICI2IgotU1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5wdXQgLSAiNiIKLVNVQ0NFU1M6IElOUFVUIC0g
Y29tcG9zaXRpb25zdGFydCAtICI2IgotU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbmVuZCAt
ICI3IgotU1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5wdXQgLSAiNyIKLVNVQ0NFU1M6IElOUFVUIC0g
Y29tcG9zaXRpb25zdGFydCAtICI3IgotU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbmVuZCAt
ICIiCi1TVUNDRVNTOiBJTlBVVCAtIHRleHRJbnB1dCAtICIiCkluZGV4OiBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CShyZXZpc2lv
biA3NDg5NSkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRp
b25zLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzA1Nyw4ICszMDU3LDYgQEAgQlVHV0s1MTM5OCBN
QUMgOiBpbnNwZWN0b3IvZGVidWdnZXItZXhwYQogLy8gV2ViS2l0IHJvbGwgNzQ1MzQ6NzQ1NDUK
IEJVR1dLNTE1MzYgOiBmYXN0L2Nzcy9ib3gtc2hhZG93Lmh0bWwgPSBGQUlMIFRJTUVPVVQKIAot
QlVHQ1I2Nzk2MCA6IGVkaXRpbmcvaW5wdXQvaW1lLWNvbXBvc2l0aW9uLWNsZWFycHJlZWRpdC5o
dG1sID0gVEVYVAotCiAvLyBXZWJLaXQgcm9sbCA3NDY2Nzo3NDY3OQogQlVHQ1I2ODA2NyBMSU5V
WCBERUJVRyA6IGZhc3QvY2FudmFzL3dlYmdsL3RleC1pbWFnZS13aXRoLWZvcm1hdC1hbmQtdHlw
ZS5odG1sID0gVEVYVCBQQVNTCiAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlvbi1ldmVudHMtMDAxLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy9pbWUt
Y29tcG9zaXRpb24tZXZlbnRzLTAwMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb24tZXZl
bnRzLTAwMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTggQEAKK1RoaXMg
dGVzdHMgdGhhdCBjYWxsaW5nIGlucHV0LW1ldGhvZCBmdW5jdGlvbnMgc2VuZHMgQ29tcG9zaXRp
b24gRXZlbnRzIGFuZCBUZXh0IEV2ZW50cyBpbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAzLgorCitU
byB0ZXN0IG1hbnVhbGx5LCBlbmFibGUgYW4gSU1FLCBpbnB1dCBDSksgY2hhcmFjdGVycywgYW5k
IHNlZSB0aGlzIHBhZ2UgZG9lc24ndCBzaG93ICdGQUlMRUQnIGxpbmVzLgorCisKK1NVQ0NFU1M6
IElOUFVUIC0gY29tcG9zaXRpb25zdGFydCAtICIxIgorU1VDQ0VTUzogSU5QVVQgLSBjb21wb3Np
dGlvbnVwZGF0ZSAtICIyIgorU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbnVwZGF0ZSAtICIz
IgorU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbmVuZCAtICI0IgorU1VDQ0VTUzogSU5QVVQg
LSB0ZXh0SW5wdXQgLSAiNCIKK1NVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb25zdGFydCAtICI1
IgorU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbnVwZGF0ZSAtICI2IgorU1VDQ0VTUzogSU5Q
VVQgLSBjb21wb3NpdGlvbnVwZGF0ZSAtICI3IgorU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlv
bmVuZCAtICIiCitTVUNDRVNTOiBJTlBVVCAtIHRleHRJbnB1dCAtICI4IgorU1VDQ0VTUzogSU5Q
VVQgLSBjb21wb3NpdGlvbnN0YXJ0IC0gIjkiCitTVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9u
ZW5kIC0gIjkiCitTVUNDRVNTOiBJTlBVVCAtIHRleHRJbnB1dCAtICI5IgpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50cy0wMDEt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3Qv
ZXZlbnRzL2ltZS1jb21wb3NpdGlvbi1ldmVudHMtMDAxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L2Zhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlv
bi1ldmVudHMtMDAxLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAor
VGhpcyB0ZXN0cyB0aGF0IGNhbGxpbmcgaW5wdXQtbWV0aG9kIGZ1bmN0aW9ucyBzZW5kcyBDb21w
b3NpdGlvbiBFdmVudHMgYW5kIFRleHQgRXZlbnRzIGludHJvZHVjZWQgaW4gRE9NIExldmVsIDMu
CisKK1RvIHRlc3QgbWFudWFsbHksIGVuYWJsZSBhbiBJTUUsIGlucHV0IENKSyBjaGFyYWN0ZXJz
LCBhbmQgc2VlIHRoaXMgcGFnZSBkb2Vzbid0IHNob3cgJ0ZBSUxFRCcgbGluZXMuCisKKworU1VD
Q0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbnN0YXJ0IC0gIjEiCitTVUNDRVNTOiBJTlBVVCAtIGNv
bXBvc2l0aW9udXBkYXRlIC0gIjIiCitTVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9udXBkYXRl
IC0gIjMiCitTVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uZW5kIC0gIjQiCitTVUNDRVNTOiBJ
TlBVVCAtIHRleHRJbnB1dCAtICI0IgorU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbnN0YXJ0
IC0gIjUiCitTVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9udXBkYXRlIC0gIjYiCitTVUNDRVNT
OiBJTlBVVCAtIGNvbXBvc2l0aW9udXBkYXRlIC0gIjciCitTVUNDRVNTOiBJTlBVVCAtIGNvbXBv
c2l0aW9uZW5kIC0gIiIKK1NVQ0NFU1M6IElOUFVUIC0gdGV4dElucHV0IC0gIjgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>77909</attachid>
            <date>2011-01-04 11:09:06 -0800</date>
            <delta_ts>2011-01-04 13:27:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-51693-20110104110905.patch</filename>
            <type>text/plain</type>
            <size>20615</size>
            <attacher name="James Su">suzhe</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDc0ODk1KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMjEgQEAKKzIwMTAtMTItMjkgIFpoZSBTdSAgPHN1emhlQGNocm9taXVtLm9yZz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBGaXggaW5zZXJ0VGV4
dCwgc2V0TWFya2VkVGV4dCBhbmQgdW5tYXJrVGV4dCBtZXRob2RzIG9mCisgICAgICAgIFRleHRJ
bnB1dENvbnRyb2xsZXIgdG8gY2FsbCBjb3JyZXNwb25kaW5nIG1ldGhvZHMgb2YgV2ViS2l0OjpX
ZWJWaWV3CisgICAgICAgIHJhdGhlciB0aGFuIFdlYktpdDo6V2ViRnJhbWUuIFRoaXMgY2hhbmdl
IG1hdGNoZXMgdGhlIGJlaGF2aW9yIG9mCisgICAgICAgIGNocm9taXVtIGJyb3dzZXIuCisgICAg
ICAgIGluc2VydFRleHQgY29ycmVzcG9uZHMgdG8gV2ViVmlldzo6Y29uZmlybUNvbXBvc2l0aW9u
KHRleHQpCisgICAgICAgIHNldE1hcmtlZFRleHQgY29ycmVzcG9uZHMgdG8gV2ViVmlldzo6c2V0
Q29tcG9zaXRpb24oLi4uKQorICAgICAgICB1bm1hcmtUZXh0IGNvcnJlc3BvbmRzIHRvIFdlYlZp
ZXc6OmNvbmZpcm1Db21wb3NpdGlvbigpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01MTY5MworCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGV4dElucHV0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChUZXh0SW5wdXRDb250cm9sbGVy
OjppbnNlcnRUZXh0KToKKyAgICAgICAgKFRleHRJbnB1dENvbnRyb2xsZXI6OnNldE1hcmtlZFRl
eHQpOgorICAgICAgICAoVGV4dElucHV0Q29udHJvbGxlcjo6dW5tYXJrVGV4dCk6CisKIDIwMTEt
MDEtMDMgIEtvYW4tU2luIFRhbiAgPGtvYW5zaW4udGFuQGdtYWlsLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBYYW4gTG9wZXouCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXh0SW5wdXRDb250cm9sbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9UZXh0SW5wdXRDb250cm9sbGVyLmNwcAkocmV2aXNpb24gNzQ4OTUpCisr
KyBUb29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXh0SW5wdXRDb250cm9sbGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtNzksMTcgKzc5LDEwIEBAIHZvaWQgVGV4dElucHV0Q29udHJvbGxl
cjo6aW5zZXJ0VGV4dChjb24KIHsKICAgICByZXN1bHQtPnNldE51bGwoKTsKIAotICAgIFdlYkZy
YW1lKiBtYWluRnJhbWUgPSBnZXRNYWluRnJhbWUoKTsKLSAgICBpZiAoIW1haW5GcmFtZSkKLSAg
ICAgICAgcmV0dXJuOwogICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpIDwgMSB8fCAhYXJndW1lbnRz
WzBdLmlzU3RyaW5nKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChtYWluRnJhbWUtPmhh
c01hcmtlZFRleHQoKSkgewotICAgICAgICBtYWluRnJhbWUtPnVubWFya1RleHQoKTsKLSAgICAg
ICAgbWFpbkZyYW1lLT5yZXBsYWNlU2VsZWN0aW9uKFdlYlN0cmluZygpKTsKLSAgICB9Ci0gICAg
bWFpbkZyYW1lLT5pbnNlcnRUZXh0KFdlYlN0cmluZzo6ZnJvbVVURjgoYXJndW1lbnRzWzBdLnRv
U3RyaW5nKCkpKTsKKyAgICB0ZXN0U2hlbGwtPndlYlZpZXcoKS0+Y29uZmlybUNvbXBvc2l0aW9u
KFdlYlN0cmluZzo6ZnJvbVVURjgoYXJndW1lbnRzWzBdLnRvU3RyaW5nKCkpKTsKIH0KIAogdm9p
ZCBUZXh0SW5wdXRDb250cm9sbGVyOjpkb0NvbW1hbmQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBh
cmd1bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKQEAgLTEwOCwxNSArMTAxLDEzIEBAIHZvaWQg
VGV4dElucHV0Q29udHJvbGxlcjo6c2V0TWFya2VkVGV4dCgKIHsKICAgICByZXN1bHQtPnNldE51
bGwoKTsKIAotICAgIFdlYkZyYW1lKiBtYWluRnJhbWUgPSBnZXRNYWluRnJhbWUoKTsKLSAgICBp
ZiAoIW1haW5GcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKGFyZ3VtZW50cy5zaXpl
KCkgPj0gMyAmJiBhcmd1bWVudHNbMF0uaXNTdHJpbmcoKQogICAgICAgICAmJiBhcmd1bWVudHNb
MV0uaXNOdW1iZXIoKSAmJiBhcmd1bWVudHNbMl0uaXNOdW1iZXIoKSkgewotICAgICAgICBtYWlu
RnJhbWUtPnNldE1hcmtlZFRleHQoV2ViU3RyaW5nOjpmcm9tVVRGOChhcmd1bWVudHNbMF0udG9T
dHJpbmcoKSksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVudHNbMV0u
dG9JbnQzMigpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJndW1lbnRzWzJd
LnRvSW50MzIoKSk7CisgICAgICAgIFdlYlZlY3RvcjxXZWJDb21wb3NpdGlvblVuZGVybGluZT4g
dW5kZXJsaW5lczsKKyAgICAgICAgdGVzdFNoZWxsLT53ZWJWaWV3KCktPnNldENvbXBvc2l0aW9u
KFdlYlN0cmluZzo6ZnJvbVVURjgoYXJndW1lbnRzWzBdLnRvU3RyaW5nKCkpLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZXJsaW5lcywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3VtZW50c1sxXS50b0ludDMy
KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmd1bWVu
dHNbMV0udG9JbnQzMigpICsgYXJndW1lbnRzWzJdLnRvSW50MzIoKSk7CiAgICAgfQogfQogCkBA
IC0xMjQsMTEgKzExNSw3IEBAIHZvaWQgVGV4dElucHV0Q29udHJvbGxlcjo6dW5tYXJrVGV4dChj
b24KIHsKICAgICByZXN1bHQtPnNldE51bGwoKTsKIAotICAgIFdlYkZyYW1lKiBtYWluRnJhbWUg
PSBnZXRNYWluRnJhbWUoKTsKLSAgICBpZiAoIW1haW5GcmFtZSkKLSAgICAgICAgcmV0dXJuOwot
Ci0gICAgbWFpbkZyYW1lLT51bm1hcmtUZXh0KCk7CisgICAgdGVzdFNoZWxsLT53ZWJWaWV3KCkt
PmNvbmZpcm1Db21wb3NpdGlvbigpOwogfQogCiB2b2lkIFRleHRJbnB1dENvbnRyb2xsZXI6Omhh
c01hcmtlZFRleHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQpJ
bmRleDogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCShyZXZpc2lvbiA3NDg5NSkKKysrIFdlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzNSBAQAorMjAxMC0xMi0yOSAgWmhlIFN1
ICA8c3V6aGVAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENoYW5nZXM6CisgICAgICAgIDEuIEFkZCBXZWJLaXQ6OldlYldpZGdl
dDo6Y29uZmlybUNvbXBvc2l0aW9uKGNvbnN0IFdlYlN0cmluZyYgdGV4dCkKKyAgICAgICAgICAg
VGhpcyBuZXcgbWV0aG9kIGNvcnJlc3BvbmRzIHRvIEVkaXRvcjo6Y29uZmlybUNvbXBvc2l0aW9u
KHRleHQpIGFuZAorICAgICAgICAgICBFZGl0b3I6Omluc2VydFRleHQodGV4dCkuIEl0J2xsIGJl
IHVzZWQgYnkgYm90aCBEdW1wUmVuZGVyVHJlZSdzCisgICAgICAgICAgIFRleHRJbnB1dENvbnRy
b2xsZXIgYW5kIGNocm9taXVtIGJyb3dzZXIuCisgICAgICAgIDIuIEZpeCBXZWJGcmFtZUltcGw6
Omluc2VydFRleHQKKyAgICAgICAgICAgSXQgc2hvdWxkIGNhbGwgRWRpdG9yOjpjb25maXJtQ29t
cG9zaXRpb24odGV4dCkgcmF0aGVyIHRoYW4KKyAgICAgICAgICAgRWRpdG9yOjppbnNlcnRUZXh0
KHRleHQpIGlmIHRoZXJlIGlzIGFuIG9uZ29pbmcgY29tcG9zaXRpb24uCisgICAgICAgICAgIEl0
IG1hdGNoZXMgdGhlIGJlaGF2aW9yIG9mIFdlYktpdCBNYWMgcG9ydC4KKyAgICAgICAgMy4gRml4
IFdlYkZyYW1lSW1wbDo6c2V0TWFya2VkVGV4dAorICAgICAgICAgICBFZGl0b3I6OmNvbmZpcm1D
b21wb3NpdGlvbih0ZXh0KSBzaG91bGRuJ3QgYmUgY2FsbGVkIGluIHRoaXMKKyAgICAgICAgICAg
bWV0aG9kLCB3aGljaCBpbmNvcnJlY3RseSBpbnNlcnRzIHRoZSB0ZXh0LgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MTY5MworCisgICAgICAgICog
cHVibGljL1dlYldpZGdldC5oOgorICAgICAgICAqIHNyYy9XZWJGcmFtZUltcGwuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGcmFtZUltcGw6Omluc2VydFRleHQpOgorICAgICAgICAoV2ViS2l0
OjpXZWJGcmFtZUltcGw6OnNldE1hcmtlZFRleHQpOgorICAgICAgICAqIHNyYy9XZWJQb3B1cE1l
bnVJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUG9wdXBNZW51SW1wbDo6Y29uZmlybUNv
bXBvc2l0aW9uKToKKyAgICAgICAgKiBzcmMvV2ViUG9wdXBNZW51SW1wbC5oOgorICAgICAgICAq
IHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpjb25m
aXJtQ29tcG9zaXRpb24pOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5oOgorICAgICAgICAq
IHRlc3RzL1BvcHVwTWVudVRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpUZXN0V2ViV2lkZ2V0
Ojpjb25maXJtQ29tcG9zaXRpb24pOgorCiAyMDExLTAxLTAyICBEaXJrIFNjaHVsemUgIDxrcml0
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDog
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJXaWRnZXQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYldpZGdldC5oCShyZXZpc2lvbiA3NDg5NSkKKysrIFdlYktpdC9j
aHJvbWl1bS9wdWJsaWMvV2ViV2lkZ2V0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwMyw5ICsxMDMs
MTggQEAgcHVibGljOgogICAgICAgICBpbnQgc2VsZWN0aW9uRW5kKSA9IDA7CiAKICAgICAvLyBD
YWxsZWQgdG8gaW5mb3JtIHRoZSBXZWJXaWRnZXQgdG8gY29uZmlybSBhbiBvbmdvaW5nIGNvbXBv
c2l0aW9uLgorICAgIC8vIFRoaXMgbWV0aG9kIGlzIHNhbWUgYXMgY29uZmlybUNvbXBvc2l0aW9u
KFdlYlN0cmluZygpKTsKICAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlcmUgaXMgYW4gb25nb2lu
ZyBjb21wb3NpdGlvbi4KICAgICB2aXJ0dWFsIGJvb2wgY29uZmlybUNvbXBvc2l0aW9uKCkgPSAw
OwogCisgICAgLy8gQ2FsbGVkIHRvIGluZm9ybSB0aGUgV2ViV2lkZ2V0IHRvIGNvbmZpcm0gYW4g
b25nb2luZyBjb21wb3NpdGlvbiB3aXRoIGEKKyAgICAvLyBuZXcgY29tcG9zaXRpb24gdGV4dC4g
SWYgdGhlIHRleHQgaXMgZW1wdHkgdGhlbiB0aGUgY3VycmVudCBjb21wb3NpdGlvbgorICAgIC8v
IHRleHQgaXMgY29uZmlybWVkLiBJZiB0aGVyZSBpcyBubyBvbmdvaW5nIGNvbXBvc2l0aW9uLCB0
aGVuIGRlbGV0ZXMgdGhlCisgICAgLy8gY3VycmVudCBzZWxlY3Rpb24gYW5kIGluc2VydHMgdGhl
IHRleHQuIFRoaXMgbWV0aG9kIGhhcyBubyBlZmZlY3QgaWYKKyAgICAvLyB0aGVyZSBpcyBubyBv
bmdvaW5nIGNvbXBvc2l0aW9uIGFuZCB0aGUgdGV4dCBpcyBlbXB0eS4KKyAgICAvLyBSZXR1cm5z
IHRydWUgaWYgdGhlcmUgaXMgYW4gb25nb2luZyBjb21wb3NpdGlvbiBvciB0aGUgdGV4dCBpcyBp
bnNlcnRlZC4KKyAgICB2aXJ0dWFsIGJvb2wgY29uZmlybUNvbXBvc2l0aW9uKGNvbnN0IFdlYlN0
cmluZyYgdGV4dCkgPSAwOworCiAgICAgLy8gUmV0dXJucyB0aGUgY3VycmVudCB0ZXh0IGlucHV0
IHR5cGUgb2YgdGhpcyBXZWJXaWRnZXQuCiAgICAgdmlydHVhbCBXZWJUZXh0SW5wdXRUeXBlIHRl
eHRJbnB1dFR5cGUoKSA9IDA7CiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViRnJhbWVJ
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYkZyYW1lSW1wbC5j
cHAJKHJldmlzaW9uIDc0ODk1KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJGcmFtZUltcGwu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDczLDcgKzEwNzMsMTIgQEAgdm9pZCBXZWJGcmFtZUlt
cGw6OnJlcGxhY2VTZWxlY3Rpb24oY29ucwogCiB2b2lkIFdlYkZyYW1lSW1wbDo6aW5zZXJ0VGV4
dChjb25zdCBXZWJTdHJpbmcmIHRleHQpCiB7Ci0gICAgZnJhbWUoKS0+ZWRpdG9yKCktPmluc2Vy
dFRleHQodGV4dCwgMCk7CisgICAgRWRpdG9yKiBlZGl0b3IgPSBmcmFtZSgpLT5lZGl0b3IoKTsK
KworICAgIGlmIChlZGl0b3ItPmhhc0NvbXBvc2l0aW9uKCkpCisgICAgICAgIGVkaXRvci0+Y29u
ZmlybUNvbXBvc2l0aW9uKHRleHQpOworICAgIGVsc2UKKyAgICAgICAgZWRpdG9yLT5pbnNlcnRU
ZXh0KHRleHQsIDApOwogfQogCiB2b2lkIFdlYkZyYW1lSW1wbDo6c2V0TWFya2VkVGV4dCgKQEAg
LTEwODEsOCArMTA4Niw2IEBAIHZvaWQgV2ViRnJhbWVJbXBsOjpzZXRNYXJrZWRUZXh0KAogewog
ICAgIEVkaXRvciogZWRpdG9yID0gZnJhbWUoKS0+ZWRpdG9yKCk7CiAKLSAgICBlZGl0b3ItPmNv
bmZpcm1Db21wb3NpdGlvbih0ZXh0KTsKLQogICAgIFZlY3RvcjxDb21wb3NpdGlvblVuZGVybGlu
ZT4gZGVjb3JhdGlvbnM7CiAgICAgZWRpdG9yLT5zZXRDb21wb3NpdGlvbih0ZXh0LCBkZWNvcmF0
aW9ucywgbG9jYXRpb24sIGxlbmd0aCk7CiB9CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlBvcHVwTWVudUltcGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
UG9wdXBNZW51SW1wbC5jcHAJKHJldmlzaW9uIDc0ODk1KQorKysgV2ViS2l0L2Nocm9taXVtL3Ny
Yy9XZWJQb3B1cE1lbnVJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjUzLDYgKzI1MywxMSBA
QCBib29sIFdlYlBvcHVwTWVudUltcGw6OmNvbmZpcm1Db21wb3NpdGlvCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCitib29sIFdlYlBvcHVwTWVudUltcGw6OmNvbmZpcm1Db21wb3NpdGlvbihjb25z
dCBXZWJTdHJpbmcmIHRleHQpCit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBXZWJUZXh0SW5w
dXRUeXBlIFdlYlBvcHVwTWVudUltcGw6OnRleHRJbnB1dFR5cGUoKQogewogICAgIHJldHVybiBX
ZWJUZXh0SW5wdXRUeXBlTm9uZTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBN
ZW51SW1wbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBNZW51
SW1wbC5oCShyZXZpc2lvbiA3NDg5NSkKKysrIFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViUG9wdXBN
ZW51SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw2ICs3Myw3IEBAIHB1YmxpYzoKICAgICAg
ICAgY29uc3QgV2ViVmVjdG9yPFdlYkNvbXBvc2l0aW9uVW5kZXJsaW5lPiYgdW5kZXJsaW5lcywK
ICAgICAgICAgaW50IHNlbGVjdGlvblN0YXJ0LCBpbnQgc2VsZWN0aW9uRW5kKTsKICAgICB2aXJ0
dWFsIGJvb2wgY29uZmlybUNvbXBvc2l0aW9uKCk7CisgICAgdmlydHVhbCBib29sIGNvbmZpcm1D
b21wb3NpdGlvbihjb25zdCBXZWJTdHJpbmcmIHRleHQpOwogICAgIHZpcnR1YWwgV2ViVGV4dElu
cHV0VHlwZSB0ZXh0SW5wdXRUeXBlKCk7CiAgICAgdmlydHVhbCBXZWJSZWN0IGNhcmV0T3JTZWxl
Y3Rpb25Cb3VuZHMoKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dERpcmVjdGlvbihXZWJUZXh0
RGlyZWN0aW9uIGRpcmVjdGlvbik7CkluZGV4OiBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cAkocmV2aXNpb24gNzQ4OTUpCisrKyBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMTMwMywxMSArMTMwMywxNiBAQCBib29sIFdlYlZpZXdJbXBs
OjpzZXRDb21wb3NpdGlvbigKIAogYm9vbCBXZWJWaWV3SW1wbDo6Y29uZmlybUNvbXBvc2l0aW9u
KCkKIHsKKyAgICByZXR1cm4gY29uZmlybUNvbXBvc2l0aW9uKFdlYlN0cmluZygpKTsKK30KKwor
Ym9vbCBXZWJWaWV3SW1wbDo6Y29uZmlybUNvbXBvc2l0aW9uKGNvbnN0IFdlYlN0cmluZyYgdGV4
dCkKK3sKICAgICBGcmFtZSogZm9jdXNlZCA9IGZvY3VzZWRXZWJDb3JlRnJhbWUoKTsKICAgICBp
ZiAoIWZvY3VzZWQgfHwgIW1faW1lQWNjZXB0RXZlbnRzKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgRWRpdG9yKiBlZGl0b3IgPSBmb2N1c2VkLT5lZGl0b3IoKTsKLSAgICBpZiAoIWVkaXRv
ciB8fCAhZWRpdG9yLT5oYXNDb21wb3NpdGlvbigpKQorICAgIGlmICghZWRpdG9yIHx8ICghZWRp
dG9yLT5oYXNDb21wb3NpdGlvbigpICYmICF0ZXh0Lmxlbmd0aCgpKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCiAgICAgLy8gV2Ugc2hvdWxkIHZlcmlmeSB0aGUgcGFyZW50IG5vZGUgb2YgdGhp
cyBJTUUgY29tcG9zaXRpb24gbm9kZSBhcmUKQEAgLTEzMjEsNyArMTMyNiwxNCBAQCBib29sIFdl
YlZpZXdJbXBsOjpjb25maXJtQ29tcG9zaXRpb24oKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KIAotICAgIGVkaXRvci0+Y29uZmlybUNvbXBvc2l0aW9uKCk7CisgICAgaWYgKGVk
aXRvci0+aGFzQ29tcG9zaXRpb24oKSkgeworICAgICAgICBpZiAodGV4dC5sZW5ndGgoKSkKKyAg
ICAgICAgICAgIGVkaXRvci0+Y29uZmlybUNvbXBvc2l0aW9uKFN0cmluZyh0ZXh0KSk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIGVkaXRvci0+Y29uZmlybUNvbXBvc2l0aW9uKCk7CisgICAg
fSBlbHNlCisgICAgICAgIGVkaXRvci0+aW5zZXJ0VGV4dChTdHJpbmcodGV4dCksIDApOworCiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0lt
cGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgJKHJl
dmlzaW9uIDc0ODk1KQorKysgV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1LDcgQEAgcHVibGljOgogICAgICAgICBpbnQgc2VsZWN0
aW9uU3RhcnQsCiAgICAgICAgIGludCBzZWxlY3Rpb25FbmQpOwogICAgIHZpcnR1YWwgYm9vbCBj
b25maXJtQ29tcG9zaXRpb24oKTsKKyAgICB2aXJ0dWFsIGJvb2wgY29uZmlybUNvbXBvc2l0aW9u
KGNvbnN0IFdlYlN0cmluZyYgdGV4dCk7CiAgICAgdmlydHVhbCBXZWJUZXh0SW5wdXRUeXBlIHRl
eHRJbnB1dFR5cGUoKTsKICAgICB2aXJ0dWFsIFdlYlJlY3QgY2FyZXRPclNlbGVjdGlvbkJvdW5k
cygpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0RGlyZWN0aW9uKFdlYlRleHREaXJlY3Rpb24g
ZGlyZWN0aW9uKTsKSW5kZXg6IFdlYktpdC9jaHJvbWl1bS90ZXN0cy9Qb3B1cE1lbnVUZXN0LmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQvY2hyb21pdW0vdGVzdHMvUG9wdXBNZW51VGVzdC5jcHAJ
KHJldmlzaW9uIDc0ODk1KQorKysgV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1BvcHVwTWVudVRlc3Qu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzksNiArMTM5LDcgQEAgcHVibGljOgogICAgICAgICBp
bnQgc2VsZWN0aW9uU3RhcnQsCiAgICAgICAgIGludCBzZWxlY3Rpb25FbmQpIHsgcmV0dXJuIHRy
dWU7IH0KICAgICB2aXJ0dWFsIGJvb2wgY29uZmlybUNvbXBvc2l0aW9uKCkgeyByZXR1cm4gdHJ1
ZTsgfQorICAgIHZpcnR1YWwgYm9vbCBjb25maXJtQ29tcG9zaXRpb24oY29uc3QgV2ViU3RyaW5n
JiB0ZXh0KSB7IHJldHVybiB0cnVlOyB9CiAgICAgdmlydHVhbCBXZWJUZXh0SW5wdXRUeXBlIHRl
eHRJbnB1dFR5cGUoKSB7IHJldHVybiBXZWJLaXQ6OldlYlRleHRJbnB1dFR5cGVOb25lOyB9CiAg
ICAgdmlydHVhbCBXZWJSZWN0IGNhcmV0T3JTZWxlY3Rpb25Cb3VuZHMoKSB7IHJldHVybiBXZWJS
ZWN0KCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dERpcmVjdGlvbihXZWJUZXh0RGlyZWN0
aW9uKSB7IH0KSW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gNzQ5MDQpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDEtMDMgIFpoZSBTdSAgPHN1emhl
QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBGaXggdGVzdCBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb24t
ZXZlbnRzLTAwMS5odG1sLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD01MTY5MworCisgICAgICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAg
KFFXZWJQYWdlUHJpdmF0ZTo6aW5wdXRNZXRob2RFdmVudCk6IENhbGxzIGVkaXRvci0+aW5zZXJ0
VGV4dCgpIHRvCisgICAgICAgIGluc2VydCB0aGUgY29tbWl0IHN0cmluZyB3aGVuIG5vIGNvbXBv
c2l0aW9uIHRleHQgaXMgYXZhaWxhYmxlLgorCiAyMDExLTAxLTAyICBBbnRvbmlvIEdvbWVzICA8
YWdvbWVzQHJpbS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJp
c3RpYW5zZW4uCkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAkocmV2aXNpb24gNzQ4OTUpCisrKyBXZWJLaXQv
cXQvQXBpL3F3ZWJwYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA5NSw5ICsxMDk1LDEyIEBA
IHZvaWQgUVdlYlBhZ2VQcml2YXRlOjppbnB1dE1ldGhvZEV2ZW50KFEKICAgICAgICAgc2V0U2Vs
ZWN0aW9uUmFuZ2Uobm9kZSwgc3RhcnQsIHN0YXJ0ICsgZXYtPnJlcGxhY2VtZW50TGVuZ3RoKCkp
OwogICAgICAgICAvLyBDb21taXQgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIGNvbW1pdFN0cmluZyBp
cyBlbXB0eSwgdG8gZ2V0IHJpZCBvZiBzZWxlY3Rpb24uCiAgICAgICAgIGVkaXRvci0+Y29uZmly
bUNvbXBvc2l0aW9uKGV2LT5jb21taXRTdHJpbmcoKSk7Ci0gICAgfSBlbHNlIGlmICghZXYtPmNv
bW1pdFN0cmluZygpLmlzRW1wdHkoKSkKLSAgICAgICAgZWRpdG9yLT5jb25maXJtQ29tcG9zaXRp
b24oZXYtPmNvbW1pdFN0cmluZygpKTsKLSAgICBlbHNlIGlmICghaGFzU2VsZWN0aW9uICYmICFl
di0+cHJlZWRpdFN0cmluZygpLmlzRW1wdHkoKSkKKyAgICB9IGVsc2UgaWYgKCFldi0+Y29tbWl0
U3RyaW5nKCkuaXNFbXB0eSgpKSB7CisgICAgICAgIGlmIChlZGl0b3ItPmhhc0NvbXBvc2l0aW9u
KCkpCisgICAgICAgICAgICBlZGl0b3ItPmNvbmZpcm1Db21wb3NpdGlvbihldi0+Y29tbWl0U3Ry
aW5nKCkpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBlZGl0b3ItPmluc2VydFRleHQoZXYt
PmNvbW1pdFN0cmluZygpLCAwKTsKKyAgICB9IGVsc2UgaWYgKCFoYXNTZWxlY3Rpb24gJiYgIWV2
LT5wcmVlZGl0U3RyaW5nKCkuaXNFbXB0eSgpKQogICAgICAgICBlZGl0b3ItPnNldENvbXBvc2l0
aW9uKGV2LT5wcmVlZGl0U3RyaW5nKCksIHVuZGVybGluZXMsIDAsIDApOwogICAgIGVsc2UgaWYg
KGV2LT5wcmVlZGl0U3RyaW5nKCkuaXNFbXB0eSgpICYmIGVkaXRvci0+aGFzQ29tcG9zaXRpb24o
KSkKICAgICAgICAgZWRpdG9yLT5jb25maXJtQ29tcG9zaXRpb24oU3RyaW5nKCkpOwpJbmRleDog
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxv
ZwkocmV2aXNpb24gNzQ4OTUpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0xMi0yOSAgWmhlIFN1ICA8c3V6aGVAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDEu
IFJlbW92ZSBlbnRyeSBmb3IgZWRpdGluZy9pbnB1dC9pbWUtY29tcG9zaXRpb24tY2xlYXJwcmVl
ZGl0Lmh0bWwgdGVzdC4KKyAgICAgICAgMi4gSW1wcm92ZSBmYXN0L2V2ZW50cy9pbWUtY29tcG9z
aXRpb24tZXZlbnRzLTAwMS5odG1sIHRvIGNvdmVyIG1vcmUKKyAgICAgICAgICAgY2FzZXMuIEFu
ZCBmaXggdGVzdCBleHBlY3RhdGlvbnMgb2YgY2hyb21pdW0gcG9ydC4KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUxNjkzCisKKyAgICAgICAgKiBmYXN0
L2V2ZW50cy9pbWUtY29tcG9zaXRpb24tZXZlbnRzLTAwMS1leHBlY3RlZC50eHQ6CisgICAgICAg
ICogZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50cy0wMDEuaHRtbDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9jaHJvbWl1bS1tYWMvZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50
cy0wMDEtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
LXdpbi9mYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb24tZXZlbnRzLTAwMS1leHBlY3RlZC50eHQ6
IFJlbW92ZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvaW1lLWNv
bXBvc2l0aW9uLWV2ZW50cy0wMDEtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0v
cXQvZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50cy0wMDEtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKwogMjAxMS0wMS0wMyAgTWloYWkgUGFycGFyaXRhICA8bWloYWlwQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBVbnJldmlld2VkLCBDaHJvbWl1bSB0ZXN0IGV4cGVjdGF0aW9uIHVwZGF0
ZS4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlvbi1ldmVudHMt
MDAxLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9p
bWUtY29tcG9zaXRpb24tZXZlbnRzLTAwMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDc0ODk1KQor
KysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50cy0wMDEtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMiwzICsxMiw3IEBAIFNVQ0NFU1M6IElOUFVU
IC0gY29tcG9zaXRpb25zdGFydCAtICI1IgogU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbnVw
ZGF0ZSAtICI2IgogU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbnVwZGF0ZSAtICI3IgogU1VD
Q0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbmVuZCAtICIiCitTVUNDRVNTOiBJTlBVVCAtIHRleHRJ
bnB1dCAtICI4IgorU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbnN0YXJ0IC0gIjkiCitTVUND
RVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uZW5kIC0gIjkiCitTVUNDRVNTOiBJTlBVVCAtIHRleHRJ
bnB1dCAtICI5IgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9u
LWV2ZW50cy0wMDEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9p
bWUtY29tcG9zaXRpb24tZXZlbnRzLTAwMS5odG1sCShyZXZpc2lvbiA3NDg5NSkKKysrIExheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlvbi1ldmVudHMtMDAxLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTQ3LDYgKzQ3LDE2IEBAIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKICAgICB0ZXh0SW5wdXRDb250cm9sbGVyLnNldE1hcmtlZFRleHQoJzYnLCAwLCAxKTsK
ICAgICB0ZXh0SW5wdXRDb250cm9sbGVyLnNldE1hcmtlZFRleHQoJzcnLCAwLCAxKTsKICAgICB0
ZXh0SW5wdXRDb250cm9sbGVyLnNldE1hcmtlZFRleHQoJycsIDAsIDApOworCisgICAgLy8gQ2Fz
ZSAzOiBJbnNlcnQgYSB0ZXh0IHdpdGhvdXQgY29tcG9zaXRpb24uCisgICAgdGV4dElucHV0Q29u
dHJvbGxlci5pbnNlcnRUZXh0KCc4Jyk7CisKKyAgICAvLyBDYXNlIDQ6IENvbXBvc2UgYSB0ZXh0
IGFuZCBjb21taXQgaXQgYnkgcmVtb3ZpbmcgdGhlIG1hcmsuCisgICAgLy8gT25seSBNYWMgYW5k
IENocm9taXVtIHBvcnRzIHN1cHBvcnQgdW5tYXJrVGV4dC4KKyAgICBpZiAodGV4dElucHV0Q29u
dHJvbGxlci51bm1hcmtUZXh0KSB7CisgICAgICAgIHRleHRJbnB1dENvbnRyb2xsZXIuc2V0TWFy
a2VkVGV4dCgnOScsIDAsIDEpOworICAgICAgICB0ZXh0SW5wdXRDb250cm9sbGVyLnVubWFya1Rl
eHQoKTsKKyAgICB9CiB9CiA8L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtLW1hYy9mYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb24tZXZlbnRzLTAw
MS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0tbWFjL2Zhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlvbi1ldmVudHMtMDAxLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gNzQ4OTUpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS1tYWMv
ZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50cy0wMDEtZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDI4ICswLDAgQEAKLVRoaXMgdGVzdHMgdGhhdCBjYWxsaW5nIGlucHV0
LW1ldGhvZCBmdW5jdGlvbnMgc2VuZHMgQ29tcG9zaXRpb24gRXZlbnRzIGFuZCBUZXh0IEV2ZW50
cyBpbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAzLgotCi1UbyB0ZXN0IG1hbnVhbGx5LCBlbmFibGUg
YW4gSU1FLCBpbnB1dCBDSksgY2hhcmFjdGVycywgYW5kIHNlZSB0aGlzIHBhZ2UgZG9lc24ndCBz
aG93ICdGQUlMRUQnIGxpbmVzLgotCi0KLVNVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb25lbmQg
LSAiMSIKLVNVQ0NFU1M6IElOUFVUIC0gdGV4dElucHV0IC0gIjEiCi1TVUNDRVNTOiBJTlBVVCAt
IGNvbXBvc2l0aW9uc3RhcnQgLSAiMSIKLVNVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb25lbmQg
LSAiMiIKLVNVQ0NFU1M6IElOUFVUIC0gdGV4dElucHV0IC0gIjIiCi1TVUNDRVNTOiBJTlBVVCAt
IGNvbXBvc2l0aW9uc3RhcnQgLSAiMiIKLVNVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb25lbmQg
LSAiMyIKLVNVQ0NFU1M6IElOUFVUIC0gdGV4dElucHV0IC0gIjMiCi1TVUNDRVNTOiBJTlBVVCAt
IGNvbXBvc2l0aW9uc3RhcnQgLSAiMyIKLVNVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb25lbmQg
LSAiMyIKLVNVQ0NFU1M6IElOUFVUIC0gdGV4dElucHV0IC0gIjMiCi1TVUNDRVNTOiBJTlBVVCAt
IHRleHRJbnB1dCAtICI0IgotU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbmVuZCAtICI1Igot
U1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5wdXQgLSAiNSIKLVNVQ0NFU1M6IElOUFVUIC0gY29tcG9z
aXRpb25zdGFydCAtICI1IgotU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbmVuZCAtICI2Igot
U1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5wdXQgLSAiNiIKLVNVQ0NFU1M6IElOUFVUIC0gY29tcG9z
aXRpb25zdGFydCAtICI2IgotU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbmVuZCAtICI3Igot
U1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5wdXQgLSAiNyIKLVNVQ0NFU1M6IElOUFVUIC0gY29tcG9z
aXRpb25zdGFydCAtICI3IgotU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbmVuZCAtICIiCi1T
VUNDRVNTOiBJTlBVVCAtIHRleHRJbnB1dCAtICIiCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS13aW4vZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50cy0wMDEtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdp
bi9mYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb24tZXZlbnRzLTAwMS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDc0ODk1KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0td2luL2Zhc3Qv
ZXZlbnRzL2ltZS1jb21wb3NpdGlvbi1ldmVudHMtMDAxLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMSwyOCArMCwwIEBACi1UaGlzIHRlc3RzIHRoYXQgY2FsbGluZyBpbnB1dC1tZXRo
b2QgZnVuY3Rpb25zIHNlbmRzIENvbXBvc2l0aW9uIEV2ZW50cyBhbmQgVGV4dCBFdmVudHMgaW50
cm9kdWNlZCBpbiBET00gTGV2ZWwgMy4KLQotVG8gdGVzdCBtYW51YWxseSwgZW5hYmxlIGFuIElN
RSwgaW5wdXQgQ0pLIGNoYXJhY3RlcnMsIGFuZCBzZWUgdGhpcyBwYWdlIGRvZXNuJ3Qgc2hvdyAn
RkFJTEVEJyBsaW5lcy4KLQotCi1TVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uZW5kIC0gIjEi
Ci1TVUNDRVNTOiBJTlBVVCAtIHRleHRJbnB1dCAtICIxIgotU1VDQ0VTUzogSU5QVVQgLSBjb21w
b3NpdGlvbnN0YXJ0IC0gIjEiCi1TVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uZW5kIC0gIjIi
Ci1TVUNDRVNTOiBJTlBVVCAtIHRleHRJbnB1dCAtICIyIgotU1VDQ0VTUzogSU5QVVQgLSBjb21w
b3NpdGlvbnN0YXJ0IC0gIjIiCi1TVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uZW5kIC0gIjMi
Ci1TVUNDRVNTOiBJTlBVVCAtIHRleHRJbnB1dCAtICIzIgotU1VDQ0VTUzogSU5QVVQgLSBjb21w
b3NpdGlvbnN0YXJ0IC0gIjMiCi1TVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uZW5kIC0gIjMi
Ci1TVUNDRVNTOiBJTlBVVCAtIHRleHRJbnB1dCAtICIzIgotU1VDQ0VTUzogSU5QVVQgLSB0ZXh0
SW5wdXQgLSAiNCIKLVNVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb25lbmQgLSAiNSIKLVNVQ0NF
U1M6IElOUFVUIC0gdGV4dElucHV0IC0gIjUiCi1TVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9u
c3RhcnQgLSAiNSIKLVNVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb25lbmQgLSAiNiIKLVNVQ0NF
U1M6IElOUFVUIC0gdGV4dElucHV0IC0gIjYiCi1TVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9u
c3RhcnQgLSAiNiIKLVNVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb25lbmQgLSAiNyIKLVNVQ0NF
U1M6IElOUFVUIC0gdGV4dElucHV0IC0gIjciCi1TVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9u
c3RhcnQgLSAiNyIKLVNVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb25lbmQgLSAiIgotU1VDQ0VT
UzogSU5QVVQgLSB0ZXh0SW5wdXQgLSAiIgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAkocmV2aXNpb24gNzQ4OTUpCisr
KyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTMwNTcsOCArMzA1Nyw2IEBAIEJVR1dLNTEzOTggTUFDIDogaW5zcGVj
dG9yL2RlYnVnZ2VyLWV4cGEKIC8vIFdlYktpdCByb2xsIDc0NTM0Ojc0NTQ1CiBCVUdXSzUxNTM2
IDogZmFzdC9jc3MvYm94LXNoYWRvdy5odG1sID0gRkFJTCBUSU1FT1VUCiAKLUJVR0NSNjc5NjAg
OiBlZGl0aW5nL2lucHV0L2ltZS1jb21wb3NpdGlvbi1jbGVhcnByZWVkaXQuaHRtbCA9IFRFWFQK
LQogLy8gV2ViS2l0IHJvbGwgNzQ2Njc6NzQ2NzkKIEJVR0NSNjgwNjcgTElOVVggREVCVUcgOiBm
YXN0L2NhbnZhcy93ZWJnbC90ZXgtaW1hZ2Utd2l0aC1mb3JtYXQtYW5kLXR5cGUuaHRtbCA9IFRF
WFQgUEFTUwogCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2V2ZW50
cy9pbWUtY29tcG9zaXRpb24tZXZlbnRzLTAwMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9u
LWV2ZW50cy0wMDEtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vY2hyb21pdW0vZmFzdC9ldmVudHMvaW1lLWNvbXBvc2l0aW9uLWV2ZW50cy0wMDEtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4IEBACitUaGlzIHRlc3RzIHRoYXQg
Y2FsbGluZyBpbnB1dC1tZXRob2QgZnVuY3Rpb25zIHNlbmRzIENvbXBvc2l0aW9uIEV2ZW50cyBh
bmQgVGV4dCBFdmVudHMgaW50cm9kdWNlZCBpbiBET00gTGV2ZWwgMy4KKworVG8gdGVzdCBtYW51
YWxseSwgZW5hYmxlIGFuIElNRSwgaW5wdXQgQ0pLIGNoYXJhY3RlcnMsIGFuZCBzZWUgdGhpcyBw
YWdlIGRvZXNuJ3Qgc2hvdyAnRkFJTEVEJyBsaW5lcy4KKworCitTVUNDRVNTOiBJTlBVVCAtIGNv
bXBvc2l0aW9uc3RhcnQgLSAiMSIKK1NVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb251cGRhdGUg
LSAiMiIKK1NVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb251cGRhdGUgLSAiMyIKK1NVQ0NFU1M6
IElOUFVUIC0gY29tcG9zaXRpb25lbmQgLSAiNCIKK1NVQ0NFU1M6IElOUFVUIC0gdGV4dElucHV0
IC0gIjQiCitTVUNDRVNTOiBJTlBVVCAtIGNvbXBvc2l0aW9uc3RhcnQgLSAiNSIKK1NVQ0NFU1M6
IElOUFVUIC0gY29tcG9zaXRpb251cGRhdGUgLSAiNiIKK1NVQ0NFU1M6IElOUFVUIC0gY29tcG9z
aXRpb251cGRhdGUgLSAiNyIKK1NVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb25lbmQgLSAiIgor
U1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5wdXQgLSAiOCIKK1NVQ0NFU1M6IElOUFVUIC0gY29tcG9z
aXRpb25zdGFydCAtICI5IgorU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbmVuZCAtICI5Igor
U1VDQ0VTUzogSU5QVVQgLSB0ZXh0SW5wdXQgLSAiOSIKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL3F0L2Zhc3QvZXZlbnRzL2ltZS1jb21wb3NpdGlvbi1ldmVudHMtMDAxLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2V2ZW50cy9pbWUt
Y29tcG9zaXRpb24tZXZlbnRzLTAwMS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9xdC9mYXN0L2V2ZW50cy9pbWUtY29tcG9zaXRpb24tZXZlbnRzLTAw
MS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKK1RoaXMgdGVzdHMg
dGhhdCBjYWxsaW5nIGlucHV0LW1ldGhvZCBmdW5jdGlvbnMgc2VuZHMgQ29tcG9zaXRpb24gRXZl
bnRzIGFuZCBUZXh0IEV2ZW50cyBpbnRyb2R1Y2VkIGluIERPTSBMZXZlbCAzLgorCitUbyB0ZXN0
IG1hbnVhbGx5LCBlbmFibGUgYW4gSU1FLCBpbnB1dCBDSksgY2hhcmFjdGVycywgYW5kIHNlZSB0
aGlzIHBhZ2UgZG9lc24ndCBzaG93ICdGQUlMRUQnIGxpbmVzLgorCisKK1NVQ0NFU1M6IElOUFVU
IC0gY29tcG9zaXRpb25zdGFydCAtICIxIgorU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbnVw
ZGF0ZSAtICIyIgorU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbnVwZGF0ZSAtICIzIgorU1VD
Q0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbmVuZCAtICI0IgorU1VDQ0VTUzogSU5QVVQgLSB0ZXh0
SW5wdXQgLSAiNCIKK1NVQ0NFU1M6IElOUFVUIC0gY29tcG9zaXRpb25zdGFydCAtICI1IgorU1VD
Q0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbnVwZGF0ZSAtICI2IgorU1VDQ0VTUzogSU5QVVQgLSBj
b21wb3NpdGlvbnVwZGF0ZSAtICI3IgorU1VDQ0VTUzogSU5QVVQgLSBjb21wb3NpdGlvbmVuZCAt
ICIiCitTVUNDRVNTOiBJTlBVVCAtIHRleHRJbnB1dCAtICI4Igo=
</data>

          </attachment>
      

    </bug>

</bugzilla>