<?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>31742</bug_id>
          
          <creation_ts>2009-11-20 13:29:53 -0800</creation_ts>
          <short_desc>[Qt] QWebView ignores a palette set with QWebView::setPalette()</short_desc>
          <delta_ts>2011-02-23 03:17:14 -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 Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Windows 7</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>EasyFix, Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>55029</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Strahinja Markovic">strahinja.markovic</reporter>
          <assigned_to name="Alexis Menard (darktears)">menard</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fabrizio.machado</cc>
    
    <cc>kent.hansen</cc>
    
    <cc>menard</cc>
    
    <cc>ostap73</cc>
    
    <cc>rion4ik</cc>
    
    <cc>robert</cc>
    
    <cc>vestbo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>165430</commentid>
    <comment_count>0</comment_count>
    <who name="Strahinja Markovic">strahinja.markovic</who>
    <bug_when>2009-11-20 13:29:53 -0800</bug_when>
    <thetext>In Qt, the QWebView widget ignores a custom palette set with QWebView::setPalette(), but does use a custom palette set with QApplication::setPalette(). QWebView should use the palette set specifically for it. There is no reason it can&apos;t.

For instance (code written from memory, may not compile):

QPalette palette;
QBrush brush( QColor( 170, 3, 148, 255 ) ); // deep purple
brush.setStyle( Qt::SolidPattern );
palette.setBrush( QPalette::Active, QPalette::Highlight );

webview-&gt;setPalette( palette );

This should cause QWebView to use a deep shade of purple for highlighted text. It doesn&apos;t.

This on the other hand, does work:

QPalette palette;
QBrush brush( QColor( 170, 3, 148, 255 ) ); // deep purple
brush.setStyle( Qt::SolidPattern );
palette.setBrush( QPalette::Active, QPalette::Highlight );

qApp-&gt;setPalette( palette );

Which means that the current style is not overriding anything. Analyzing the RenderThemeQt.cpp file in webkit sources clearly shows that the custom widget palette is being ignored. The color is read directly from the application palette.

This is all on Win7 x64, Qt 4.5.2. I don&apos;t know which version of webkit that is so I just left the default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198028</commentid>
    <comment_count>1</comment_count>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2010-03-10 06:26:40 -0800</bug_when>
    <thetext>
Please follow the QtWebKit bug reporting guidelines when reporting bugs.

See http://trac.webkit.org/wiki/QtWebKitBugs

Specifically:

  - The &apos;QtWebKit&apos; component should only be used for bugs/features in the
    public QtWebKit API layer, not to signify that the bug is specific to
    the Qt port of WebKit

      http://trac.webkit.org/wiki/QtWebKitBugs#Component

  - Add the keyword &apos;Qt&apos; to signal that it&apos;s a Qt-related bug

      http://trac.webkit.org/wiki/QtWebKitBugs#Keywords</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198968</commentid>
    <comment_count>2</comment_count>
    <who name="Kent Hansen">kent.hansen</who>
    <bug_when>2010-03-12 02:43:56 -0800</bug_when>
    <thetext>If you could provide a testcase, that would be great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199753</commentid>
    <comment_count>3</comment_count>
      <attachid>50724</attachid>
    <who name="Strahinja Markovic">strahinja.markovic</who>
    <bug_when>2010-03-15 12:49:38 -0700</bug_when>
    <thetext>Created attachment 50724
Palette test case

Here is the test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200309</commentid>
    <comment_count>4</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2010-03-16 11:13:15 -0700</bug_when>
    <thetext>I can reproduce this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200332</commentid>
    <comment_count>5</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2010-03-16 11:33:10 -0700</bug_when>
    <thetext>*** Bug 29480 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>200334</commentid>
    <comment_count>6</comment_count>
    <who name="Jocelyn Turcotte">jturcotte</who>
    <bug_when>2010-03-16 11:34:05 -0700</bug_when>
    <thetext>*** Bug 35649 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>210198</commentid>
    <comment_count>7</comment_count>
    <who name="Viatcheslav Ostapenko">ostap73</who>
    <bug_when>2010-04-08 08:08:04 -0700</bug_when>
    <thetext>The problem is in RenderThemeQt.cpp . It takes palette from widget which comes in PaintInfo, but not from webpage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342757</commentid>
    <comment_count>8</comment_count>
      <attachid>80671</attachid>
    <who name="Fabrizio">fabrizio.machado</who>
    <bug_when>2011-01-31 12:40:55 -0800</bug_when>
    <thetext>Created attachment 80671
Use QWebView custom palette if application provides one</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342765</commentid>
    <comment_count>9</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-01-31 12:53:14 -0800</bug_when>
    <thetext>I think some of those could be tested with autotest (selection color).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343359</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-01 11:10:49 -0800</bug_when>
    <thetext>Attachment 80671 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebCore/ChangeLog:7:  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>344069</commentid>
    <comment_count>11</comment_count>
      <attachid>80934</attachid>
    <who name="Fabrizio">fabrizio.machado</who>
    <bug_when>2011-02-02 11:09:35 -0800</bug_when>
    <thetext>Created attachment 80934
Reworked patch to remove tab from ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344072</commentid>
    <comment_count>12</comment_count>
    <who name="Fabrizio">fabrizio.machado</who>
    <bug_when>2011-02-02 11:16:53 -0800</bug_when>
    <thetext>Tried to add qt autotest to tst_qwebview (setPalette test) but had problems getting visual confirmation that fix is working.  Basic approach to test was set the highlight palette on the view of a page containing text with same color as highlight, set the page, trigger select all and confirm that all pixels were same color.  Even if I would be able to confirm it is working from visual inspection, not sure on what condition I assert to report the test result.

I can confirm that original attached test case is working, however, and no regressions in layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344591</commentid>
    <comment_count>13</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-02-03 01:38:53 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; Even if I would be able to confirm it is working from visual inspection, not sure on what condition I assert to report the test result.

What is done in those cases is rendering the selected element to QImage, and check the pixel values. For example, look at tst_QWebElement::render().

I think this is a good opportunity to make the test. You will learn how to make rendering test for Qt. And WebKit will enjoy better test coverage :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344625</commentid>
    <comment_count>14</comment_count>
    <who name="Fabrizio">fabrizio.machado</who>
    <bug_when>2011-02-03 04:15:31 -0800</bug_when>
    <thetext>Aha, I see.  Let me try that, thanks for the description on how to do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346236</commentid>
    <comment_count>15</comment_count>
      <attachid>81387</attachid>
    <who name="Fabrizio">fabrizio.machado</who>
    <bug_when>2011-02-05 21:26:29 -0800</bug_when>
    <thetext>Created attachment 81387
Added api tests to verify fix, minor cleanup based on check-webkit-style results</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346237</commentid>
    <comment_count>16</comment_count>
      <attachid>81388</attachid>
    <who name="Fabrizio">fabrizio.machado</who>
    <bug_when>2011-02-05 21:45:50 -0800</bug_when>
    <thetext>Created attachment 81388
Update ChangeLogs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346238</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-05 21:47:25 -0800</bug_when>
    <thetext>Attachment 81388 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit/qt/ChangeLog:8:  Line contains tab character.  [whitespace/tab] [5]
Source/WebCore/ChangeLog:9:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 2 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346239</commentid>
    <comment_count>18</comment_count>
      <attachid>81389</attachid>
    <who name="Fabrizio">fabrizio.machado</who>
    <bug_when>2011-02-05 21:57:39 -0800</bug_when>
    <thetext>Created attachment 81389
fix style check failure:  remove tab from ChangeLog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346240</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-02-05 22:00:05 -0800</bug_when>
    <thetext>Attachment 81389 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit/qt/ChangeLog:8:  Line contains tab character.  [whitespace/tab] [5]
Total errors found: 1 in 4 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346241</commentid>
    <comment_count>20</comment_count>
      <attachid>81390</attachid>
    <who name="Fabrizio">fabrizio.machado</who>
    <bug_when>2011-02-05 22:02:56 -0800</bug_when>
    <thetext>Created attachment 81390
more tab removals</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348329</commentid>
    <comment_count>21</comment_count>
    <who name="Fabrizio">fabrizio.machado</who>
    <bug_when>2011-02-09 09:48:12 -0800</bug_when>
    <thetext>Ping for review, anyone?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348338</commentid>
    <comment_count>22</comment_count>
      <attachid>81390</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-02-09 10:01:06 -0800</bug_when>
    <thetext>Comment on attachment 81390
more tab removals

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

The test needs some rework to make it simpler and test one feature at the time.

&gt; Source/WebCore/platform/qt/RenderThemeQt.cpp:1435
&gt;  {
&gt; -    return  QApplication::cursorFlashTime() / 1000.0 / 2.0;
&gt; +    return QApplication::cursorFlashTime() / 1000.0 / 2.0;
&gt;  }

This is unrelated. You should a separate patch for this.

&gt; Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp:34
&gt; -{
&gt; +class tst_QWebView : public QObject {

You should fix the style in a separate patch.

&gt; Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp:325
&gt; +    // Test 1:  BEGIN:  Selection background color on active QWebView   

You should split the test in multiple, simpler functions. Each testing one aspect of the patch.

&gt; Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp:349
&gt; +    QString strActiveRedBg=&quot;activeRedBg.png&quot;;
&gt; +    imgActiveRedBg.save(strActiveRedBg);

Why do you save the image in a test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348386</commentid>
    <comment_count>23</comment_count>
    <who name="Fabrizio">fabrizio.machado</who>
    <bug_when>2011-02-09 10:54:32 -0800</bug_when>
    <thetext>Thanks for the feedback.  The images were saved for debugging purposes only.  I wanted to visually inspect the impact of setting the custom palette.  I can remove those in the final patch.

Should get another patch in tonight to address your concerns.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>348724</commentid>
    <comment_count>24</comment_count>
      <attachid>81897</attachid>
    <who name="Fabrizio">fabrizio.machado</who>
    <bug_when>2011-02-09 17:15:29 -0800</bug_when>
    <thetext>Created attachment 81897
rework to address comment #22

Remove style fixes (should be done in another bug/patch), divide setPalette() test into smaller test functions, remove image save from original  patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>349126</commentid>
    <comment_count>25</comment_count>
      <attachid>81992</attachid>
    <who name="Fabrizio">fabrizio.machado</who>
    <bug_when>2011-02-10 09:24:54 -0800</bug_when>
    <thetext>Created attachment 81992
fix test names</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355287</commentid>
    <comment_count>26</comment_count>
      <attachid>81992</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-02-22 08:26:48 -0800</bug_when>
    <thetext>Comment on attachment 81992
fix test names

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

Looks good to me, we should honor the palette enforced on the QWebView.

&gt; Source/WebCore/ChangeLog:5
&gt; +        Use custom QWebView palette if application provides one.

You need to prefix with [Qt] as stated in https://trac.webkit.org/wiki/QtWebKitContrib.

&gt; Source/WebKit/qt/ChangeLog:5
&gt; +        Tests for setting custom palette on highlighted

You need to prefix with [Qt] as stated in https://trac.webkit.org/wiki/QtWebKitContrib.

&gt; Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp:317
&gt; +// and inactive QWebView and highlighted FG and BG, resulting in 4 assertions.

combin. -&gt; combination</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355299</commentid>
    <comment_count>27</comment_count>
      <attachid>81992</attachid>
    <who name="Tor Arne Vestbø">vestbo</who>
    <bug_when>2011-02-22 08:41:10 -0800</bug_when>
    <thetext>Comment on attachment 81992
fix test names

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

&gt; Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp:58
&gt; +    void setPaletteActiveBG();
&gt; +    void setPaletteActiveFG();
&gt; +    void setPaletteInactiveBG();  
&gt; +    void setPaletteInactiveFG();  

Can we share some code in these tests by using a data-function?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355305</commentid>
    <comment_count>28</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-02-22 08:46:23 -0800</bug_when>
    <thetext>I will clean the patch and add a test for the QGraphicsWebView because that part seems buggy too :).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355307</commentid>
    <comment_count>29</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-02-22 08:46:48 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; (From update of attachment 81992 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=81992&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/qt/tests/qwebview/tst_qwebview.cpp:58
&gt; &gt; +    void setPaletteActiveBG();
&gt; &gt; +    void setPaletteActiveFG();
&gt; &gt; +    void setPaletteInactiveBG();  
&gt; &gt; +    void setPaletteInactiveFG();  
&gt; 
&gt; Can we share some code in these tests by using a data-function?

Will do :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355358</commentid>
    <comment_count>30</comment_count>
    <who name="Fabrizio">fabrizio.machado</who>
    <bug_when>2011-02-22 10:04:16 -0800</bug_when>
    <thetext>Hi Alexis, do you need me to address your review, or are you taking over from here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355362</commentid>
    <comment_count>31</comment_count>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-02-22 10:11:18 -0800</bug_when>
    <thetext>I&apos;ll finish it :). Thanks Fabrizio for the patch. I will put your name in the changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355363</commentid>
    <comment_count>32</comment_count>
    <who name="Fabrizio">fabrizio.machado</who>
    <bug_when>2011-02-22 10:12:15 -0800</bug_when>
    <thetext>Thanks, appreciate your help!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355397</commentid>
    <comment_count>33</comment_count>
      <attachid>83341</attachid>
    <who name="Alexis Menard (darktears)">menard</who>
    <bug_when>2011-02-22 10:54:09 -0800</bug_when>
    <thetext>Created attachment 83341
Patch with comments taken into accounts and a better test case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355404</commentid>
    <comment_count>34</comment_count>
      <attachid>83341</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-02-22 10:58:26 -0800</bug_when>
    <thetext>Comment on attachment 83341
Patch with comments taken into accounts and a better test case.

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355885</commentid>
    <comment_count>35</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-22 22:52:46 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 83341:

media/invalid-media-url-crash.html bug 51138 (author: inferno@chromium.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355886</commentid>
    <comment_count>36</comment_count>
      <attachid>83341</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-22 22:54:51 -0800</bug_when>
    <thetext>Comment on attachment 83341
Patch with comments taken into accounts and a better test case.

Clearing flags on attachment: 83341

Committed r79409: &lt;http://trac.webkit.org/changeset/79409&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>355887</commentid>
    <comment_count>37</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-22 22:54:58 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>50724</attachid>
            <date>2010-03-15 12:49:38 -0700</date>
            <delta_ts>2011-02-22 10:54:09 -0800</delta_ts>
            <desc>Palette test case</desc>
            <filename>palette_test.zip</filename>
            <type>application/zip</type>
            <size>1427</size>
            <attacher name="Strahinja Markovic">strahinja.markovic</attacher>
            
              <data encoding="base64">UEsDBAoAAAAAAKKjbzwAAAAAAAAAAAAAAAANAAAAcGFsZXR0ZV90ZXN0L1BLAwQUAAAACACtpW88
TqvrXYYCAAA7BQAAFQAAAHBhbGV0dGVfdGVzdC9tYWluLmNwcJVUbW/TMBD+vEr9D0emoXRk6TqY
QB6btA2NIUBbGC8fAE1uek3MXDs4Tttp8N85x0kbTSDAUp307jnfy/M4m0KlspogPE+Oi0KKlFuh
1VG/t7l22JeVuGf5hOPXwg4Ten4UuCBvvyeUhRkXKnQv3GRpBGnODWzT+/zz10G/d9fvbXTTAC+K
0CMdZnDQ7wEtvydX1giVwbSSsuA2h0NIzoTEV2qqQwgsljZe5nYmAxjEfFxqWVl0gEsCh+1ZdQhM
aQvXJzmnd4sphPDAuWNdoAo9nrF3yCcXSt7Cj9byHpcWBjDwcXf+UWd4i2XJMzzRS8YW3CgqOoTd
aI34/Uouxt8wtYxZQ+0UXKK1eO3aoob+M/qUK6UtGKq67hW2RuyL2tqLg7bgP6+YRt+dzT/i3cjQ
GG08TSGNBv4S2nLilkFbGQWjxvSzJSRxc6Yjkc+ApAQP63ZWbDaacLRfl7oyKZIshIpd58dShvck
1MgTtuduPwRFe2u8j730DEDDRJvxxFRlDmO3kzpOtdQ08NHT3QgeRzB68iyCvf19J4wDGA5hglhA
UZlCoo+vA+MSqadbp8GEKLvSUkxIpRZpAm0VTVoHPWmSNRUxdpxaMceoYzkXWS7pZyOfoSNpquI0
5ypDCFzXAVgNwXe6dQENCmwuSpBCIazQXE3gVldQ5rqSEygRYZFzC8K2phVUan1D0TeEEJZ8ls5D
GFdZ7CEu4c4RtdAUGrZtdepbYc6JxLBLJTX4wUjGpkbP3uiUy7P62tLQDXa+Gozx9Z8Xwvj7Do8g
GAaeiJrUjSZRrtdUe1NBtzUc7ByRlrIMjZuudlefhHFJLiIIJd0t0lNd9kajVcoa4xLT+jQS7C9Q
SwMEFAAAAAgAk4hkPHrjHzc2AAAAOQAAAB0AAABwYWxldHRlX3Rlc3QvcGFsZXR0ZV90ZXN0LnBy
bwsMUdC2VShPTcrOLOHlcvb3c/N0B4kUligUpeakJhan8nLxcgX7hwY5uwaDJHITM/P0kgsKAFBL
AwQUAAAACABmpW88COGQ9eUAAAA9AQAAFwAAAHBhbGV0dGVfdGVzdC90ZXN0LnhodG1sbY5BTsMw
EEX3lXqHwft6iLoKclOJpBJIBSpIBSyb2tQRIbbsCQlnY8GRuAJO3CWz8Ujf7/35/f4R6+GjgU/l
fG3aFUv4JVtn85m4KB7y8nW3AU0h3+2vt7c5sAXi8zJHLMoCXm7Kuy0EAJ7I1UdC3Nyz+QzCME1k
rxD7vuf9kht3wvIRh1GVjOx5XfgJ5JIkyyIZmqfCcFTrV/94kjRNIz4iQquDnFBBNTUqExjfEOE5
E5WRXxA/2azUCqrD8f3kTNdKMG9AuvZAaiDw2nSNhEqBVMqC7ZxtFBdoJ92oid5QHs79A1BLAQIU
AAoAAAAAAKKjbzwAAAAAAAAAAAAAAAANAAAAAAAAAAAAEAAAAAAAAABwYWxldHRlX3Rlc3QvUEsB
AhQAFAAAAAgAraVvPE6r612GAgAAOwUAABUAAAAAAAAAAQAgAAAAKwAAAHBhbGV0dGVfdGVzdC9t
YWluLmNwcFBLAQIUABQAAAAIAJOIZDx64x83NgAAADkAAAAdAAAAAAAAAAEAIAAAAOQCAABwYWxl
dHRlX3Rlc3QvcGFsZXR0ZV90ZXN0LnByb1BLAQIUABQAAAAIAGalbzwI4ZD15QAAAD0BAAAXAAAA
AAAAAAEAIAAAAFUDAABwYWxldHRlX3Rlc3QvdGVzdC54aHRtbFBLBQYAAAAABAAEAA4BAABvBAAA
AAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80671</attachid>
            <date>2011-01-31 12:40:55 -0800</date>
            <delta_ts>2011-02-02 11:09:35 -0800</delta_ts>
            <desc>Use QWebView custom palette if application provides one</desc>
            <filename>31742_update.patch</filename>
            <type>text/plain</type>
            <size>2510</size>
            <attacher name="Fabrizio">fabrizio.machado</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3MTUyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDEtMzEgIEZhYnJpemlv
IE1hY2hhZG8gPGZhYnJpemlvLm1hY2hhZG9Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBjdXN0b20gUVdlYlZpZXcgcGFsZXR0
ZSBpZiBhcHBsaWNhdGlvbiBwcm92aWRlcyBvbmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTc0MgorCQorICAgICAgICBObyBuZXcgdGVzdHMgcmVx
dWlyZWQuIENhbiBiZSB0ZXN0ZWQgb25seSBmcm9tIFF0IGFwcCwgbm90IGNvbnRlbnQuCisKKyAg
ICAgICAgKiBwbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6cGxh
dGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcik6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVF0OjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9y
KToKKwogMjAxMS0wMS0zMSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAg
ICAgIENvbnZlcnQgbWFya3N0YWNrIHRvIGEgc2xvdCB2aXNpdG9yIEFQSQpJbmRleDogU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAJKHJldmlzaW9uIDc2NTg2
KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM4MCwzMCArMzgwLDM1IEBAIHZvaWQgUmVuZGVyVGhlbWVRdDo6YWRqdXN0
UmVwYWludFJlY3QoY28KIENvbG9yIFJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtQWN0aXZlU2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKCkgY29uc3QKIHsKICAgICBRUGFsZXR0ZSBwYWwgPSBRQXBwbGlj
YXRpb246OnBhbGV0dGUoKTsKKyAgICBzZXRQYWxldHRlRnJvbVBhZ2VDbGllbnRJZkV4aXN0cyhw
YWwpOwogICAgIHJldHVybiBwYWwuYnJ1c2goUVBhbGV0dGU6OkFjdGl2ZSwgUVBhbGV0dGU6Okhp
Z2hsaWdodCkuY29sb3IoKTsKIH0KIAogQ29sb3IgUmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1JbmFj
dGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAgUVBhbGV0dGUgcGFs
ID0gUUFwcGxpY2F0aW9uOjpwYWxldHRlKCk7CisgICAgc2V0UGFsZXR0ZUZyb21QYWdlQ2xpZW50
SWZFeGlzdHMocGFsKTsKICAgICByZXR1cm4gcGFsLmJydXNoKFFQYWxldHRlOjpJbmFjdGl2ZSwg
UVBhbGV0dGU6OkhpZ2hsaWdodCkuY29sb3IoKTsKIH0KIAogQ29sb3IgUmVuZGVyVGhlbWVRdDo6
cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAogewogICAgIFFQ
YWxldHRlIHBhbCA9IFFBcHBsaWNhdGlvbjo6cGFsZXR0ZSgpOworICAgIHNldFBhbGV0dGVGcm9t
UGFnZUNsaWVudElmRXhpc3RzKHBhbCk7CiAgICAgcmV0dXJuIHBhbC5icnVzaChRUGFsZXR0ZTo6
QWN0aXZlLCBRUGFsZXR0ZTo6SGlnaGxpZ2h0ZWRUZXh0KS5jb2xvcigpOwogfQogCiBDb2xvciBS
ZW5kZXJUaGVtZVF0OjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkg
Y29uc3QKIHsKICAgICBRUGFsZXR0ZSBwYWwgPSBRQXBwbGljYXRpb246OnBhbGV0dGUoKTsKKyAg
ICBzZXRQYWxldHRlRnJvbVBhZ2VDbGllbnRJZkV4aXN0cyhwYWwpOwogICAgIHJldHVybiBwYWwu
YnJ1c2goUVBhbGV0dGU6OkluYWN0aXZlLCBRUGFsZXR0ZTo6SGlnaGxpZ2h0ZWRUZXh0KS5jb2xv
cigpOwogfQogCiBDb2xvciBSZW5kZXJUaGVtZVF0OjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKCkg
Y29uc3QKIHsKICAgICBRUGFsZXR0ZSBwYWwgPSBRQXBwbGljYXRpb246OnBhbGV0dGUoKTsKKyAg
ICBzZXRQYWxldHRlRnJvbVBhZ2VDbGllbnRJZkV4aXN0cyhwYWwpOwogICAgIHJldHVybiBwYWwu
YnJ1c2goUVBhbGV0dGU6OkFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodCkuY29sb3IoKTsKIH0K
IAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80934</attachid>
            <date>2011-02-02 11:09:35 -0800</date>
            <delta_ts>2011-02-05 21:26:29 -0800</delta_ts>
            <desc>Reworked patch to remove tab from ChangeLog</desc>
            <filename>31742.patch</filename>
            <type>text/plain</type>
            <size>2494</size>
            <attacher name="Fabrizio">fabrizio.machado</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3MjQ2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDItMDEgIEZhYnJpemlv
IE1hY2hhZG8gPGZhYnJpemlvLm1hY2hhZG9Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBjdXN0b20gUVdlYlZpZXcgcGFsZXR0
ZSBpZiBhcHBsaWNhdGlvbiBwcm92aWRlcyBvbmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTc0MgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyByZXF1
aXJlZC4gQ2FuIGJlIHRlc3RlZCBvbmx5IGZyb20gUXQgYXBwLCBub3QgY29udGVudC4KKworICAg
ICAgICAqIHBsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVF0OjpwbGF0
Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZVF0OjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3Ip
OgorCiAyMDExLTAyLTAxICBBbnRvbiBNdWhpbiAgPGFudG9ubUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgQWRhbSBCYXJ0aC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCShyZXZpc2lvbiA3NzI0NikKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
ODAsMjkgKzM4MCwzNCBAQCB2b2lkIFJlbmRlclRoZW1lUXQ6OmFkanVzdFJlcGFpbnRSZWN0KGNv
CiBDb2xvciBSZW5kZXJUaGVtZVF0OjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcigpIGNvbnN0CiB7CiAgICAgUVBhbGV0dGUgcGFsID0gUUFwcGxpY2F0aW9uOjpwYWxldHRl
KCk7CisgICAgc2V0UGFsZXR0ZUZyb21QYWdlQ2xpZW50SWZFeGlzdHMocGFsKTsKICAgICByZXR1
cm4gcGFsLmJydXNoKFFQYWxldHRlOjpBY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHQpLmNvbG9y
KCk7CiB9CiAKIENvbG9yIFJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogewogICAgIFFQYWxldHRlIHBhbCA9IFFBcHBsaWNhdGlv
bjo6cGFsZXR0ZSgpOworICAgIHNldFBhbGV0dGVGcm9tUGFnZUNsaWVudElmRXhpc3RzKHBhbCk7
CiAgICAgcmV0dXJuIHBhbC5icnVzaChRUGFsZXR0ZTo6SW5hY3RpdmUsIFFQYWxldHRlOjpIaWdo
bGlnaHQpLmNvbG9yKCk7CiB9CiAKIENvbG9yIFJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtQWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKIHsKICAgICBRUGFsZXR0ZSBwYWwgPSBR
QXBwbGljYXRpb246OnBhbGV0dGUoKTsKKyAgICBzZXRQYWxldHRlRnJvbVBhZ2VDbGllbnRJZkV4
aXN0cyhwYWwpOwogICAgIHJldHVybiBwYWwuYnJ1c2goUVBhbGV0dGU6OkFjdGl2ZSwgUVBhbGV0
dGU6OkhpZ2hsaWdodGVkVGV4dCkuY29sb3IoKTsKIH0KIAogQ29sb3IgUmVuZGVyVGhlbWVRdDo6
cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAg
UVBhbGV0dGUgcGFsID0gUUFwcGxpY2F0aW9uOjpwYWxldHRlKCk7CisgICAgc2V0UGFsZXR0ZUZy
b21QYWdlQ2xpZW50SWZFeGlzdHMocGFsKTsKICAgICByZXR1cm4gcGFsLmJydXNoKFFQYWxldHRl
OjpJbmFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodGVkVGV4dCkuY29sb3IoKTsKIH0KIAogQ29s
b3IgUmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcigpIGNvbnN0CiB7CiAgICAg
UVBhbGV0dGUgcGFsID0gUUFwcGxpY2F0aW9uOjpwYWxldHRlKCk7CisgICAgc2V0UGFsZXR0ZUZy
b21QYWdlQ2xpZW50SWZFeGlzdHMocGFsKTsKICAgICByZXR1cm4gcGFsLmJydXNoKFFQYWxldHRl
OjpBY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHQpLmNvbG9yKCk7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81387</attachid>
            <date>2011-02-05 21:26:29 -0800</date>
            <delta_ts>2011-02-05 21:45:50 -0800</delta_ts>
            <desc>Added api tests to verify fix, minor cleanup based on check-webkit-style results</desc>
            <filename>31742_6Feb2011.patch</filename>
            <type>text/plain</type>
            <size>16403</size>
            <attacher name="Fabrizio">fabrizio.machado</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3NjI4KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDItMDQgIEZhYnJpemlv
IE1hY2hhZG8gPGZhYnJpemlvLm1hY2hhZG9Abm9raWEuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBjdXN0b20gUVdlYlZpZXcgcGFsZXR0
ZSBpZiBhcHBsaWNhdGlvbiBwcm92aWRlcyBvbmUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTc0MgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyByZXF1
aXJlZC4gQ2FuIGJlIHRlc3RlZCBvbmx5IGZyb20gUXQgYXBwLCBub3QgY29udGVudC4KKworICAg
ICAgICAqIHBsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVF0OjpwbGF0
Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUaGVtZVF0OjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKToK
KyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3Ip
OgorCiAyMDExLTAyLTA0ICBQZXRlciBWYXJnYSAgPHB2YXJnYUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJ1YmJlci1zdGFtcGVkIGJ5IENzYWJhIE9zenRyb2dvbsOhYy4KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCShyZXZpc2lvbiA3NzYyOCkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zODAsMzAgKzM4MCwzNSBAQCB2b2lkIFJlbmRlclRoZW1lUXQ6OmFkanVzdFJl
cGFpbnRSZWN0KGNvCiBDb2xvciBSZW5kZXJUaGVtZVF0OjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlv
bkJhY2tncm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAgUVBhbGV0dGUgcGFsID0gUUFwcGxpY2F0
aW9uOjpwYWxldHRlKCk7CisgICAgc2V0UGFsZXR0ZUZyb21QYWdlQ2xpZW50SWZFeGlzdHMocGFs
KTsKICAgICByZXR1cm4gcGFsLmJydXNoKFFQYWxldHRlOjpBY3RpdmUsIFFQYWxldHRlOjpIaWdo
bGlnaHQpLmNvbG9yKCk7CiB9CiAKIENvbG9yIFJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtSW5hY3Rp
dmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogewogICAgIFFQYWxldHRlIHBhbCA9
IFFBcHBsaWNhdGlvbjo6cGFsZXR0ZSgpOworICAgIHNldFBhbGV0dGVGcm9tUGFnZUNsaWVudElm
RXhpc3RzKHBhbCk7CiAgICAgcmV0dXJuIHBhbC5icnVzaChRUGFsZXR0ZTo6SW5hY3RpdmUsIFFQ
YWxldHRlOjpIaWdobGlnaHQpLmNvbG9yKCk7CiB9CiAKIENvbG9yIFJlbmRlclRoZW1lUXQ6OnBs
YXRmb3JtQWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKIHsKICAgICBRUGFs
ZXR0ZSBwYWwgPSBRQXBwbGljYXRpb246OnBhbGV0dGUoKTsKKyAgICBzZXRQYWxldHRlRnJvbVBh
Z2VDbGllbnRJZkV4aXN0cyhwYWwpOwogICAgIHJldHVybiBwYWwuYnJ1c2goUVBhbGV0dGU6OkFj
dGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodGVkVGV4dCkuY29sb3IoKTsKIH0KIAogQ29sb3IgUmVu
ZGVyVGhlbWVRdDo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNv
bnN0CiB7CiAgICAgUVBhbGV0dGUgcGFsID0gUUFwcGxpY2F0aW9uOjpwYWxldHRlKCk7CisgICAg
c2V0UGFsZXR0ZUZyb21QYWdlQ2xpZW50SWZFeGlzdHMocGFsKTsKICAgICByZXR1cm4gcGFsLmJy
dXNoKFFQYWxldHRlOjpJbmFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodGVkVGV4dCkuY29sb3Io
KTsKIH0KIAogQ29sb3IgUmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcigpIGNv
bnN0CiB7CiAgICAgUVBhbGV0dGUgcGFsID0gUUFwcGxpY2F0aW9uOjpwYWxldHRlKCk7CisgICAg
c2V0UGFsZXR0ZUZyb21QYWdlQ2xpZW50SWZFeGlzdHMocGFsKTsKICAgICByZXR1cm4gcGFsLmJy
dXNoKFFQYWxldHRlOjpBY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHQpLmNvbG9yKCk7CiB9CiAK
QEAgLTE0MjYsNyArMTQzMSw3IEBAIHZvaWQgUmVuZGVyVGhlbWVRdDo6YWRqdXN0U2xpZGVyVGh1
bWJTaXoKIAogZG91YmxlIFJlbmRlclRoZW1lUXQ6OmNhcmV0QmxpbmtJbnRlcnZhbCgpIGNvbnN0
CiB7Ci0gICAgcmV0dXJuICBRQXBwbGljYXRpb246OmN1cnNvckZsYXNoVGltZSgpIC8gMTAwMC4w
IC8gMi4wOworICAgIHJldHVybiBRQXBwbGljYXRpb246OmN1cnNvckZsYXNoVGltZSgpIC8gMTAw
MC4wIC8gMi4wOwogfQogCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3
L3RzdF9xd2Vidmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC90ZXN0cy9x
d2Vidmlldy90c3RfcXdlYnZpZXcuY3BwCShyZXZpc2lvbiA3NzYyOCkKKysrIFNvdXJjZS9XZWJL
aXQvcXQvdGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTksMjAgKzE5LDE5IEBACiAgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCiAqLwogCi0j
aW5jbHVkZSA8cXRlc3QuaD4KICNpbmNsdWRlICIuLi91dGlsLmgiCiAKLSNpbmNsdWRlIDxxcGFp
bnRlci5oPgotI2luY2x1ZGUgPHF3ZWJ2aWV3Lmg+Ci0jaW5jbHVkZSA8cXdlYnBhZ2UuaD4KLSNp
bmNsdWRlIDxxbmV0d29ya3JlcXVlc3QuaD4KICNpbmNsdWRlIDxxZGlyaXRlcmF0b3IuaD4KLSNp
bmNsdWRlIDxxd2Via2l0dmVyc2lvbi5oPgorI2luY2x1ZGUgPHFuZXR3b3JrcmVxdWVzdC5oPgor
I2luY2x1ZGUgPHFwYWludGVyLmg+CisjaW5jbHVkZSA8cXRlc3QuaD4KICNpbmNsdWRlIDxxd2Vi
ZWxlbWVudC5oPgogI2luY2x1ZGUgPHF3ZWJmcmFtZS5oPgorI2luY2x1ZGUgPHF3ZWJraXR2ZXJz
aW9uLmg+CisjaW5jbHVkZSA8cXdlYnBhZ2UuaD4KKyNpbmNsdWRlIDxxd2Vidmlldy5oPgogCi1j
bGFzcyB0c3RfUVdlYlZpZXcgOiBwdWJsaWMgUU9iamVjdAoteworY2xhc3MgdHN0X1FXZWJWaWV3
IDogcHVibGljIFFPYmplY3QgewogICAgIFFfT0JKRUNUCiAKIHB1YmxpYyBzbG90czoKQEAgLTQ5
LDggKzQ4LDggQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIHJldXNlUGFnZSgpOwogICAgIHZv
aWQgbWljcm9Gb2N1c0Nvb3JkaW5hdGVzKCk7CiAgICAgdm9pZCBmb2N1c0lucHV0VHlwZXMoKTsK
LQogICAgIHZvaWQgY3Jhc2hUZXN0cygpOworICAgIHZvaWQgc2V0UGFsZXR0ZSgpOwogfTsKIAog
Ly8gVGhpcyB3aWxsIGJlIGNhbGxlZCBiZWZvcmUgdGhlIGZpcnN0IHRlc3QgZnVuY3Rpb24gaXMg
ZXhlY3V0ZWQuCkBAIC0xNDQsOSArMTQzLDkgQEAgdm9pZCB0c3RfUVdlYlZpZXc6OnJldXNlUGFn
ZSgpCiAgICAgdmlldzEtPnNob3coKTsKICAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bih2
aWV3MSk7CiAgICAgZGVsZXRlIHZpZXcxOwotICAgIFFWRVJJRlkocGFnZSAhPSAwKTsgLy8gZGVs
ZXRpbmcgdmlldyBtdXN0IG5vdCBoYXZlIGRlbGV0ZWQgdGhlIHBhZ2UsIHNpbmNlIGl0J3Mgbm90
IGEgY2hpbGQgb2YgdmlldworICAgIFFWRVJJRlkocGFnZSk7IC8vIGRlbGV0aW5nIHZpZXcgbXVz
dCBub3QgaGF2ZSBkZWxldGVkIHRoZSBwYWdlLCBzaW5jZSBpdCdzIG5vdCBhIGNoaWxkIG9mIHZp
ZXcKIAotICAgIFFXZWJWaWV3ICp2aWV3MiA9IG5ldyBRV2ViVmlldzsKKyAgICBRV2ViVmlldyog
dmlldzIgPSBuZXcgUVdlYlZpZXc7CiAgICAgdmlldzItPnNldFBhZ2UocGFnZSk7CiAgICAgdmll
dzItPnNob3coKTsgLy8gaW4gV2luZG93bGVzcyBtb2RlLCB5b3Ugc2hvdWxkIHN0aWxsIGJlIGFi
bGUgdG8gc2VlIHRoZSBwbHVnaW4gaGVyZQogICAgIFFUZXN0OjpxV2FpdEZvcldpbmRvd1Nob3du
KHZpZXcyKTsKQEAgLTIwMCw3ICsxOTksNyBAQCB2b2lkIHRzdF9RV2ViVmlldzo6bWljcm9Gb2N1
c0Nvb3JkaW5hdGVzCiB7CiAgICAgUVdlYlBhZ2UqIHBhZ2UgPSBuZXcgUVdlYlBhZ2U7CiAgICAg
UVdlYlZpZXcqIHdlYlZpZXcgPSBuZXcgUVdlYlZpZXc7Ci0gICAgd2ViVmlldy0+c2V0UGFnZSgg
cGFnZSApOworICAgIHdlYlZpZXctPnNldFBhZ2UocGFnZSk7CiAKICAgICBwYWdlLT5tYWluRnJh
bWUoKS0+c2V0SHRtbCgiPGh0bWw+PGJvZHk+IiBcCiAgICAgICAgICI8aW5wdXQgdHlwZT0ndGV4
dCcgaWQ9J2lucHV0MScgc3R5bGU9J2ZvbnQtLWZhbWlseTogc2VyaWYnIHZhbHVlPScnIG1heGxl
bmd0aD0nMjAnLz48YnI+IiBcCkBAIC0yMTQsMTIgKzIxMywxMiBAQCB2b2lkIHRzdF9RV2ViVmll
dzo6bWljcm9Gb2N1c0Nvb3JkaW5hdGVzCiAgICAgUVZhcmlhbnQgaW5pdGlhbE1pY3JvRm9jdXMg
PSBwYWdlLT5pbnB1dE1ldGhvZFF1ZXJ5KFF0OjpJbU1pY3JvRm9jdXMpOwogICAgIFFWRVJJRlko
aW5pdGlhbE1pY3JvRm9jdXMuaXNWYWxpZCgpKTsKIAotICAgIHBhZ2UtPm1haW5GcmFtZSgpLT5z
Y3JvbGwoMCw1MCk7CisgICAgcGFnZS0+bWFpbkZyYW1lKCktPnNjcm9sbCgwLCA1MCk7CiAKICAg
ICBRVmFyaWFudCBjdXJyZW50TWljcm9Gb2N1cyA9IHBhZ2UtPmlucHV0TWV0aG9kUXVlcnkoUXQ6
OkltTWljcm9Gb2N1cyk7CiAgICAgUVZFUklGWShjdXJyZW50TWljcm9Gb2N1cy5pc1ZhbGlkKCkp
OwogCi0gICAgUUNPTVBBUkUoaW5pdGlhbE1pY3JvRm9jdXMudG9SZWN0KCkudHJhbnNsYXRlZChR
UG9pbnQoMCwtNTApKSwgY3VycmVudE1pY3JvRm9jdXMudG9SZWN0KCkpOworICAgIFFDT01QQVJF
KGluaXRpYWxNaWNyb0ZvY3VzLnRvUmVjdCgpLnRyYW5zbGF0ZWQoUVBvaW50KDAsIC01MCkpLCBj
dXJyZW50TWljcm9Gb2N1cy50b1JlY3QoKSk7CiB9CiAKIHZvaWQgdHN0X1FXZWJWaWV3Ojpmb2N1
c0lucHV0VHlwZXMoKQpAQCAtMzA2LDYgKzMwNSwyNzcgQEAgdm9pZCB0c3RfUVdlYlZpZXc6OmZv
Y3VzSW5wdXRUeXBlcygpCiAgICAgUVZFUklGWSh3ZWJWaWV3LnRlc3RBdHRyaWJ1dGUoUXQ6OldB
X0lucHV0TWV0aG9kRW5hYmxlZCkpOwogfQogCisvLyBSZW5kZXIgYSBRV2ViVmlldyB0byBhIFFJ
bWFnZSB0d2ljZSwgZWFjaCB0aW1lIHdpdGggYSBkaWZmZXJlbnQgcGFsZXR0ZSBzZXQsIAorLy8g
dmVyaWZ5IHRoYXQgaW1hZ2VzIHJlbmRlcmVkIGFyZSBub3QgdGhlIHNhbWUsIGNvbmZpcm1pbmcg
V2ViQ29yZSB1c2FnZSBvZiAKKy8vIGN1c3RvbSBwYWxldHRlIG9uIHNlbGVjdGlvbnMuICBUaGlz
IHNlcXVlbmNlIGRvbmUgZm9yIGFsbCBjb21iaW4uIG9mIGFjdGl2ZQorLy8gYW5kIGluYWN0aXZl
IFFXZWJWaWV3IGFuZCBoaWdobGlnaHRlZCBGRyBhbmQgQkcsIHJlc3VsdGluZyBpbiA0IGFzc2Vy
dGlvbnMuCit2b2lkIHRzdF9RV2ViVmlldzo6c2V0UGFsZXR0ZSgpCit7CisgICAgUVN0cmluZyBo
dG1sID0gIjxodG1sPjxoZWFkPjwvaGVhZD4iCisgICAgICAgICAgICAgICAgICAgIjxib2R5PiIK
KyAgICAgICAgICAgICAgICAgICAiU29tZSB0ZXh0IGhlcmUiCisgICAgICAgICAgICAgICAgICAg
IjwvYm9keT4iCisgICAgICAgICAgICAgICAgICAgIjwvaHRtbD4iOworCisgICAgLy8gdXNlIGNv
bnRyb2xWaWV3IHRvIG1hbmFnZSBhY3RpdmUvaW5hY3RpdmUgc3RhdGUgb2YgdGVzdCB2aWV3cyBi
eSByYWlzaW5nCisgICAgLy8gb3IgbG93ZXJpbmcgdGhlaXIgcG9zaXRpb24gaW4gdGhlIHdpbmRv
dyBzdGFjay4KKyAgICBRV2ViVmlldyBjb250cm9sVmlldzsKKyAgICBjb250cm9sVmlldy5zZXRI
dG1sKGh0bWwpOworCisgICAgLy8gVGVzdCAxOiAgQkVHSU46ICBTZWxlY3Rpb24gYmFja2dyb3Vu
ZCBjb2xvciBvbiBhY3RpdmUgUVdlYlZpZXcgICAKKyAgICBRV2ViVmlldyB2aWV3QWN0aXZlUmVk
Qmc7CisKKyAgICBRUGFsZXR0ZSBwYWxSZWRIbDsKKyAgICBRQnJ1c2ggYnJ1c2hSZWRIbChRQ29s
b3IoUXQ6OnJlZCkpOyAKKyAgICBicnVzaFJlZEhsLnNldFN0eWxlKFF0OjpTb2xpZFBhdHRlcm4p
OworICAgIHBhbFJlZEhsLnNldEJydXNoKFFQYWxldHRlOjpBY3RpdmUsIFFQYWxldHRlOjpIaWdo
bGlnaHQsIGJydXNoUmVkSGwpOworCisgICAgdmlld0FjdGl2ZVJlZEJnLnNldFBhbGV0dGUocGFs
UmVkSGwpOworICAgIHZpZXdBY3RpdmVSZWRCZy5zZXRIdG1sKGh0bWwpOworICAgIHZpZXdBY3Rp
dmVSZWRCZy5wYWdlKCktPnNldFZpZXdwb3J0U2l6ZSh2aWV3QWN0aXZlUmVkQmcucGFnZSgpLT5j
dXJyZW50RnJhbWUoKS0+Y29udGVudHNTaXplKCkpOworICAgIHZpZXdBY3RpdmVSZWRCZy5zaG93
KCk7CisKKyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmdmlld0FjdGl2ZVJlZEJnKTsK
KworICAgIHZpZXdBY3RpdmVSZWRCZy5hY3RpdmF0ZVdpbmRvdygpOworICAgIHZpZXdBY3RpdmVS
ZWRCZy5wYWdlKCktPnRyaWdnZXJBY3Rpb24oUVdlYlBhZ2U6OlNlbGVjdEFsbCk7CisKKyAgICAv
LyByZW5kZXJlZCBpbWFnZSBtdXN0IGhhdmUgcmVkIGJhY2tncm91bmQgb24gYW4gYWN0aXZlIFFX
ZWJWaWV3CisgICAgUUltYWdlIGltZ0FjdGl2ZVJlZEJnKHZpZXdBY3RpdmVSZWRCZy5wYWdlKCkt
PnZpZXdwb3J0U2l6ZSgpLCBRSW1hZ2U6OkZvcm1hdF9BUkdCMzIpOworICAgIFFQYWludGVyIHBh
aW50QWN0aXZlUmVkQmcoJmltZ0FjdGl2ZVJlZEJnKTsKKyAgICB2aWV3QWN0aXZlUmVkQmcucGFn
ZSgpLT5jdXJyZW50RnJhbWUoKS0+cmVuZGVyKCZwYWludEFjdGl2ZVJlZEJnKTsKKyAgICBwYWlu
dEFjdGl2ZVJlZEJnLmVuZCgpOworICAgIFFTdHJpbmcgc3RyQWN0aXZlUmVkQmc9ImFjdGl2ZVJl
ZEJnLnBuZyI7CisgICAgaW1nQWN0aXZlUmVkQmcuc2F2ZShzdHJBY3RpdmVSZWRCZyk7CisKKyAg
ICB2aWV3QWN0aXZlUmVkQmcuY2xvc2UoKTsKKworICAgIFFXZWJWaWV3IHZpZXdBY3RpdmVCbHVl
Qmc7CisKKyAgICBRUGFsZXR0ZSBwYWxCbHVlSGw7CisgICAgUUJydXNoIGJydXNoQmx1ZUhsKFFD
b2xvcihRdDo6Ymx1ZSkpOyAKKyAgICBicnVzaEJsdWVIbC5zZXRTdHlsZShRdDo6U29saWRQYXR0
ZXJuKTsKKyAgICBwYWxCbHVlSGwuc2V0QnJ1c2goUVBhbGV0dGU6OkFjdGl2ZSwgUVBhbGV0dGU6
OkhpZ2hsaWdodCwgYnJ1c2hCbHVlSGwpOworCisgICAgdmlld0FjdGl2ZUJsdWVCZy5zZXRQYWxl
dHRlKHBhbEJsdWVIbCk7CisgICAgdmlld0FjdGl2ZUJsdWVCZy5zZXRIdG1sKGh0bWwpOworICAg
IHZpZXdBY3RpdmVCbHVlQmcucGFnZSgpLT5zZXRWaWV3cG9ydFNpemUodmlld0FjdGl2ZUJsdWVC
Zy5wYWdlKCktPmN1cnJlbnRGcmFtZSgpLT5jb250ZW50c1NpemUoKSk7CisgICAgdmlld0FjdGl2
ZUJsdWVCZy5zaG93KCk7CisKKyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmdmlld0Fj
dGl2ZUJsdWVCZyk7CisKKyAgICB2aWV3QWN0aXZlQmx1ZUJnLmFjdGl2YXRlV2luZG93KCk7Cisg
ICAgdmlld0FjdGl2ZUJsdWVCZy5wYWdlKCktPnRyaWdnZXJBY3Rpb24oUVdlYlBhZ2U6OlNlbGVj
dEFsbCk7CisKKyAgICAvLyByZW5kZXJlZCBpbWFnZSBtdXN0IGhhdmUgYmx1ZSBiYWNrZ3JvdW5k
IG9uIGFuIGFjdGl2ZSBRV2ViVmlldworICAgIFFJbWFnZSBpbWdBY3RpdmVCbHVlQmcodmlld0Fj
dGl2ZUJsdWVCZy5wYWdlKCktPnZpZXdwb3J0U2l6ZSgpLCBRSW1hZ2U6OkZvcm1hdF9BUkdCMzIp
OworICAgIFFQYWludGVyIHBhaW50QWN0aXZlQmx1ZUJnKCZpbWdBY3RpdmVCbHVlQmcpOworICAg
IHZpZXdBY3RpdmVCbHVlQmcucGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+cmVuZGVyKCZwYWludEFj
dGl2ZUJsdWVCZyk7CisgICAgcGFpbnRBY3RpdmVCbHVlQmcuZW5kKCk7CisKKyAgICBRU3RyaW5n
IHN0ckFjdGl2ZUJsdWVCZz0iYWN0aXZlQmx1ZUJnLnBuZyI7CisgICAgaW1nQWN0aXZlQmx1ZUJn
LnNhdmUoc3RyQWN0aXZlQmx1ZUJnKTsKKworICAgIHZpZXdBY3RpdmVCbHVlQmcuY2xvc2UoKTsK
KworICAgIFFWRVJJRlkoaW1nQWN0aXZlQmx1ZUJnICE9IGltZ0FjdGl2ZVJlZEJnKTsKKyAgICAv
LyBUZXN0IDE6ICBFTkQ6ICBTZWxlY3Rpb24gYmFja2dyb3VuZCBjb2xvciBvbiBhY3RpdmUgUVdl
YlZpZXcgCisKKyAgICAvLyBUZXN0IDI6ICBCRUdJTjogIFNlbGVjdGlvbiBiYWNrZ3JvdW5kIGNv
bG9yIG9uIGFuIGluYWN0aXZlIFFXZWJWaWV3ICAgCisgICAgUVdlYlZpZXcgdmlld0luYWN0aXZl
Q3lhbkJnOworCisgICAgUVBhbGV0dGUgcGFsQ3lhbkhsOworICAgIFFCcnVzaCBicnVzaEN5YW5I
bChRQ29sb3IoUXQ6OmN5YW4pKTsgCisgICAgYnJ1c2hDeWFuSGwuc2V0U3R5bGUoUXQ6OlNvbGlk
UGF0dGVybik7CisgICAgcGFsQ3lhbkhsLnNldEJydXNoKFFQYWxldHRlOjpJbmFjdGl2ZSwgUVBh
bGV0dGU6OkhpZ2hsaWdodCwgYnJ1c2hDeWFuSGwpOworCisgICAgdmlld0luYWN0aXZlQ3lhbkJn
LnNldFBhbGV0dGUocGFsQ3lhbkhsKTsKKyAgICB2aWV3SW5hY3RpdmVDeWFuQmcuc2V0SHRtbCho
dG1sKTsKKyAgICB2aWV3SW5hY3RpdmVDeWFuQmcucGFnZSgpLT5zZXRWaWV3cG9ydFNpemUodmll
d0luYWN0aXZlQ3lhbkJnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPmNvbnRlbnRzU2l6ZSgpKTsK
KyAgICB2aWV3SW5hY3RpdmVDeWFuQmcuc2hvdygpOworCisgICAgUVRlc3Q6OnFXYWl0Rm9yV2lu
ZG93U2hvd24oJnZpZXdJbmFjdGl2ZUN5YW5CZyk7IAorCisgICAgY29udHJvbFZpZXcuc2hvdygp
OworICAgIGNvbnRyb2xWaWV3LmFjdGl2YXRlV2luZG93KCk7CisKKyAgICBRVGVzdDo6cVdhaXRG
b3JXaW5kb3dTaG93bigmY29udHJvbFZpZXcpOyAKKworICAgIHZpZXdJbmFjdGl2ZUN5YW5CZy5w
YWdlKCktPnRyaWdnZXJBY3Rpb24oUVdlYlBhZ2U6OlNlbGVjdEFsbCk7CisKKyAgICBRSW1hZ2Ug
aW1nSW5hY3RpdmVDeWFuQmcodmlld0luYWN0aXZlQ3lhbkJnLnBhZ2UoKS0+dmlld3BvcnRTaXpl
KCksIFFJbWFnZTo6Rm9ybWF0X0FSR0IzMik7CisgICAgUVBhaW50ZXIgcGFpbnRJbmFjdGl2ZUN5
YW5CZygmaW1nSW5hY3RpdmVDeWFuQmcpOworICAgIHZpZXdJbmFjdGl2ZUN5YW5CZy5wYWdlKCkt
PmN1cnJlbnRGcmFtZSgpLT5yZW5kZXIoJnBhaW50SW5hY3RpdmVDeWFuQmcpOworICAgIHBhaW50
SW5hY3RpdmVDeWFuQmcuZW5kKCk7CisgICAgLy8gcmVuZGVyZWQgaW1hZ2UgbXVzdCBoYXZlIGN5
YW4gYmFja2dyb3VuZCBvbiBhbiBpbmFjdGl2ZSBRV2ViVmlldworICAgIFFTdHJpbmcgc3RySW5h
Y3RpdmVDeWFuQmc9ImluYWN0aXZlQ3lhbkJnLnBuZyI7CisgICAgaW1nSW5hY3RpdmVDeWFuQmcu
c2F2ZShzdHJJbmFjdGl2ZUN5YW5CZyk7CisgCisgICAgY29udHJvbFZpZXcuY2xvc2UoKTsKKyAg
ICB2aWV3SW5hY3RpdmVDeWFuQmcuY2xvc2UoKTsKKworICAgIFFXZWJWaWV3IHZpZXdJbmFjdGl2
ZU1hZ2VudGFCZzsKKworICAgIFFQYWxldHRlIHBhbE1hZ2VudGFIbDsKKyAgICBRQnJ1c2ggYnJ1
c2hNYWdlbnRhSGwoUUNvbG9yKFF0OjptYWdlbnRhKSk7IAorICAgIGJydXNoTWFnZW50YUhsLnNl
dFN0eWxlKFF0OjpTb2xpZFBhdHRlcm4pOworICAgIHBhbE1hZ2VudGFIbC5zZXRCcnVzaChRUGFs
ZXR0ZTo6SW5hY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHQsIGJydXNoTWFnZW50YUhsKTsKKwor
ICAgIHZpZXdJbmFjdGl2ZU1hZ2VudGFCZy5zZXRQYWxldHRlKHBhbE1hZ2VudGFIbCk7CisgICAg
dmlld0luYWN0aXZlTWFnZW50YUJnLnNldEh0bWwoaHRtbCk7CisgICAgdmlld0luYWN0aXZlTWFn
ZW50YUJnLnBhZ2UoKS0+c2V0Vmlld3BvcnRTaXplKHZpZXdJbmFjdGl2ZU1hZ2VudGFCZy5wYWdl
KCktPmN1cnJlbnRGcmFtZSgpLT5jb250ZW50c1NpemUoKSk7CisgICAgdmlld0luYWN0aXZlTWFn
ZW50YUJnLnNob3coKTsKKworICAgIFFUZXN0OjpxV2FpdEZvcldpbmRvd1Nob3duKCZ2aWV3SW5h
Y3RpdmVNYWdlbnRhQmcpOworCisgICAgY29udHJvbFZpZXcuc2hvdygpOworICAgIGNvbnRyb2xW
aWV3LmFjdGl2YXRlV2luZG93KCk7CisKKyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigm
Y29udHJvbFZpZXcpOyAKKworICAgIHZpZXdJbmFjdGl2ZU1hZ2VudGFCZy5wYWdlKCktPnRyaWdn
ZXJBY3Rpb24oUVdlYlBhZ2U6OlNlbGVjdEFsbCk7CisKKyAgICBRSW1hZ2UgaW1nSW5hY3RpdmVN
YWdlbnRhQmcodmlld0luYWN0aXZlTWFnZW50YUJnLnBhZ2UoKS0+dmlld3BvcnRTaXplKCksIFFJ
bWFnZTo6Rm9ybWF0X0FSR0IzMik7CisgICAgUVBhaW50ZXIgcGFpbnRJbmFjdGl2ZU1hZ2VudGFC
ZygmaW1nSW5hY3RpdmVNYWdlbnRhQmcpOworICAgIHZpZXdJbmFjdGl2ZU1hZ2VudGFCZy5wYWdl
KCktPmN1cnJlbnRGcmFtZSgpLT5yZW5kZXIoJnBhaW50SW5hY3RpdmVNYWdlbnRhQmcpOworICAg
IHBhaW50SW5hY3RpdmVNYWdlbnRhQmcuZW5kKCk7CisgICAgLy8gcmVuZGVyZWQgaW1hZ2UgbXVz
dCBoYXZlIG1hZ2VudGEgYmFja2dyb3VuZCBvbiBhbiBpbmFjdGl2ZSBRV2ViVmlldworICAgIFFT
dHJpbmcgc3RySW5hY3RpdmVNYWdlbnRhQmc9ImluYWN0aXZlTWFnZW50YUJnLnBuZyI7CisgICAg
aW1nSW5hY3RpdmVNYWdlbnRhQmcuc2F2ZShzdHJJbmFjdGl2ZU1hZ2VudGFCZyk7CisKKyAgICBj
b250cm9sVmlldy5jbG9zZSgpOworICAgIHZpZXdJbmFjdGl2ZU1hZ2VudGFCZy5jbG9zZSgpOwor
CisgICAgUVZFUklGWShpbWdJbmFjdGl2ZUN5YW5CZyAhPSBpbWdJbmFjdGl2ZU1hZ2VudGFCZyk7
CisgICAgLy8gVGVzdCAyOiAgRU5EOiAgU2VsZWN0aW9uIGJhY2tncm91bmQgY29sb3Igb24gYW4g
aW5hY3RpdmUgUVdlYlZpZXcgICAKKworICAgIC8vIFRlc3QgMzogIEJFR0lOOiAgU2VsZWN0aW9u
IGZvcmVncm91bmQgY29sb3Igb24gYW4gYWN0aXZlIFFXZWJWaWV3ICAgCisgICAgUVdlYlZpZXcg
dmlld0FjdGl2ZUJsYWNrRmc7CisKKyAgICBRUGFsZXR0ZSBwYWxCbGFja0hsVGV4dDsKKyAgICBR
QnJ1c2ggYnJ1c2hCbGFja0hsVGV4dChRQ29sb3IoUXQ6OmJsYWNrKSk7IAorICAgIGJydXNoQmxh
Y2tIbFRleHQuc2V0U3R5bGUoUXQ6OlNvbGlkUGF0dGVybik7CisgICAgcGFsQmxhY2tIbFRleHQu
c2V0QnJ1c2goUVBhbGV0dGU6OkFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodGVkVGV4dCwgYnJ1
c2hCbGFja0hsVGV4dCk7CisKKyAgICB2aWV3QWN0aXZlQmxhY2tGZy5zZXRQYWxldHRlKHBhbEJs
YWNrSGxUZXh0KTsKKyAgICB2aWV3QWN0aXZlQmxhY2tGZy5zZXRIdG1sKGh0bWwpOworICAgIHZp
ZXdBY3RpdmVCbGFja0ZnLnBhZ2UoKS0+c2V0Vmlld3BvcnRTaXplKHZpZXdBY3RpdmVCbGFja0Zn
LnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPmNvbnRlbnRzU2l6ZSgpKTsKKyAgICB2aWV3QWN0aXZl
QmxhY2tGZy5zaG93KCk7CisKKyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmdmlld0Fj
dGl2ZUJsYWNrRmcpOworCisgICAgdmlld0FjdGl2ZUJsYWNrRmcuYWN0aXZhdGVXaW5kb3coKTsK
KyAgICB2aWV3QWN0aXZlQmxhY2tGZy5wYWdlKCktPnRyaWdnZXJBY3Rpb24oUVdlYlBhZ2U6OlNl
bGVjdEFsbCk7CisKKyAgICBRSW1hZ2UgaW1nQWN0aXZlQmxhY2tGZyh2aWV3QWN0aXZlQmxhY2tG
Zy5wYWdlKCktPnZpZXdwb3J0U2l6ZSgpLCBRSW1hZ2U6OkZvcm1hdF9BUkdCMzIpOworICAgIFFQ
YWludGVyIHBhaW50QWN0aXZlQmxhY2tGZygmaW1nQWN0aXZlQmxhY2tGZyk7CisgICAgdmlld0Fj
dGl2ZUJsYWNrRmcucGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+cmVuZGVyKCZwYWludEFjdGl2ZUJs
YWNrRmcpOworICAgIHBhaW50QWN0aXZlQmxhY2tGZy5lbmQoKTsKKyAgICAvLyByZW5kZXJlZCBp
bWFnZSBtdXN0IGhhdmUgYmxhY2sgZm9yZWdyb3VuZCBvbiBhbiBhY3RpdmUgUVdlYlZpZXcKKyAg
ICBRU3RyaW5nIHN0ckFjdGl2ZUJsYWNrRmc9ImFjdGl2ZUJsYWNrRmcucG5nIjsKKyAgICBpbWdB
Y3RpdmVCbGFja0ZnLnNhdmUoc3RyQWN0aXZlQmxhY2tGZyk7CisKKyAgICB2aWV3QWN0aXZlQmxh
Y2tGZy5jbG9zZSgpOworCisgICAgUVdlYlZpZXcgdmlld0FjdGl2ZUdyZWVuRmc7CisKKyAgICBR
UGFsZXR0ZSBwYWxHcmVlbkhsVGV4dDsKKyAgICBRQnJ1c2ggYnJ1c2hHcmVlbkhsVGV4dChRQ29s
b3IoUXQ6OmdyZWVuKSk7IAorICAgIGJydXNoR3JlZW5IbFRleHQuc2V0U3R5bGUoUXQ6OlNvbGlk
UGF0dGVybik7CisgICAgcGFsR3JlZW5IbFRleHQuc2V0QnJ1c2goUVBhbGV0dGU6OkFjdGl2ZSwg
UVBhbGV0dGU6OkhpZ2hsaWdodGVkVGV4dCwgYnJ1c2hHcmVlbkhsVGV4dCk7CisKKyAgICB2aWV3
QWN0aXZlR3JlZW5GZy5zZXRQYWxldHRlKHBhbEdyZWVuSGxUZXh0KTsKKyAgICB2aWV3QWN0aXZl
R3JlZW5GZy5zZXRIdG1sKGh0bWwpOworICAgIHZpZXdBY3RpdmVHcmVlbkZnLnBhZ2UoKS0+c2V0
Vmlld3BvcnRTaXplKHZpZXdBY3RpdmVHcmVlbkZnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPmNv
bnRlbnRzU2l6ZSgpKTsKKyAgICB2aWV3QWN0aXZlR3JlZW5GZy5zaG93KCk7CisKKyAgICBRVGVz
dDo6cVdhaXRGb3JXaW5kb3dTaG93bigmdmlld0FjdGl2ZUdyZWVuRmcpOworCisgICAgdmlld0Fj
dGl2ZUdyZWVuRmcuYWN0aXZhdGVXaW5kb3coKTsKKyAgICB2aWV3QWN0aXZlR3JlZW5GZy5wYWdl
KCktPnRyaWdnZXJBY3Rpb24oUVdlYlBhZ2U6OlNlbGVjdEFsbCk7CisKKyAgICBRSW1hZ2UgaW1n
QWN0aXZlR3JlZW5GZyh2aWV3QWN0aXZlR3JlZW5GZy5wYWdlKCktPnZpZXdwb3J0U2l6ZSgpLCBR
SW1hZ2U6OkZvcm1hdF9BUkdCMzIpOworICAgIFFQYWludGVyIHBhaW50QWN0aXZlR3JlZW5GZygm
aW1nQWN0aXZlR3JlZW5GZyk7CisgICAgdmlld0FjdGl2ZUdyZWVuRmcucGFnZSgpLT5jdXJyZW50
RnJhbWUoKS0+cmVuZGVyKCZwYWludEFjdGl2ZUdyZWVuRmcpOworICAgIHBhaW50QWN0aXZlR3Jl
ZW5GZy5lbmQoKTsKKyAgICAvLyByZW5kZXJlZCBpbWFnZSBtdXN0IGhhdmUgZ3JlZW4gZm9yZWdy
b3VuZCBvbiBhbiBhY3RpdmUgUVdlYlZpZXcKKyAgICBRU3RyaW5nIHN0ckFjdGl2ZUdyZWVuRmc9
ImFjdGl2ZUdyZWVuRmcucG5nIjsKKyAgICBpbWdBY3RpdmVHcmVlbkZnLnNhdmUoc3RyQWN0aXZl
R3JlZW5GZyk7CisKKyAgICB2aWV3QWN0aXZlR3JlZW5GZy5jbG9zZSgpOworCisgICAgUVZFUklG
WShpbWdBY3RpdmVCbGFja0ZnICE9IGltZ0FjdGl2ZUdyZWVuRmcpOworICAgIC8vIFRlc3QgMzog
IEVORDogIFNlbGVjdGlvbiBmb3JlZ3JvdW5kIGNvbG9yIG9uIGFjdGl2ZSBRV2ViVmlldyAgIAor
CisgICAgLy8gVGVzdCA0OiAgQkVHSU46ICBTZWxlY3Rpb24gZm9yZWdyb3VuZCBjb2xvciBvbiBh
biBpbmFjdGl2ZSBRV2ViVmlldyAgIAorICAgIFFXZWJWaWV3IHZpZXdJbmFjdGl2ZUdyYXlGZzsK
KworICAgIFFQYWxldHRlIHBhbEdyYXlIbFRleHQ7CisgICAgUUJydXNoIGJydXNoR3JheUhsVGV4
dChRQ29sb3IoUXQ6OmdyYXkpKTsgCisgICAgYnJ1c2hHcmF5SGxUZXh0LnNldFN0eWxlKFF0OjpT
b2xpZFBhdHRlcm4pOworICAgIHBhbEdyYXlIbFRleHQuc2V0QnJ1c2goUVBhbGV0dGU6OkluYWN0
aXZlLCBRUGFsZXR0ZTo6SGlnaGxpZ2h0ZWRUZXh0LCBicnVzaEdyYXlIbFRleHQpOworCisgICAg
dmlld0luYWN0aXZlR3JheUZnLnNldFBhbGV0dGUocGFsR3JheUhsVGV4dCk7CisgICAgdmlld0lu
YWN0aXZlR3JheUZnLnNldEh0bWwoaHRtbCk7CisgICAgdmlld0luYWN0aXZlR3JheUZnLnBhZ2Uo
KS0+c2V0Vmlld3BvcnRTaXplKHZpZXdJbmFjdGl2ZUdyYXlGZy5wYWdlKCktPmN1cnJlbnRGcmFt
ZSgpLT5jb250ZW50c1NpemUoKSk7CisgICAgdmlld0luYWN0aXZlR3JheUZnLnNob3coKTsKKwor
ICAgIFFUZXN0OjpxV2FpdEZvcldpbmRvd1Nob3duKCZ2aWV3SW5hY3RpdmVHcmF5RmcpOworCisg
ICAgY29udHJvbFZpZXcuc2hvdygpOworICAgIGNvbnRyb2xWaWV3LmFjdGl2YXRlV2luZG93KCk7
CisKKyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmY29udHJvbFZpZXcpOyAKKworICAg
IHZpZXdJbmFjdGl2ZUdyYXlGZy5wYWdlKCktPnRyaWdnZXJBY3Rpb24oUVdlYlBhZ2U6OlNlbGVj
dEFsbCk7CisKKyAgICBRSW1hZ2UgaW1nSW5hY3RpdmVHcmF5Rmcodmlld0luYWN0aXZlR3JheUZn
LnBhZ2UoKS0+dmlld3BvcnRTaXplKCksIFFJbWFnZTo6Rm9ybWF0X0FSR0IzMik7CisgICAgUVBh
aW50ZXIgcGFpbnRJbmFjdGl2ZUdyYXlGZygmaW1nSW5hY3RpdmVHcmF5RmcpOworICAgIHZpZXdJ
bmFjdGl2ZUdyYXlGZy5wYWdlKCktPmN1cnJlbnRGcmFtZSgpLT5yZW5kZXIoJnBhaW50SW5hY3Rp
dmVHcmF5RmcpOworICAgIHBhaW50SW5hY3RpdmVHcmF5RmcuZW5kKCk7CisgICAgLy8gcmVuZGVy
ZWQgaW1hZ2UgbXVzdCBoYXZlIGdyYXkgZm9yZWdyb3VuZCBvbiBhbiBpbmFjdGl2ZSBRV2ViVmll
dworICAgIFFTdHJpbmcgc3RySW5hY3RpdmVHcmF5Rmc9ImluYWN0aXZlR3JheUZnLnBuZyI7Cisg
ICAgaW1nSW5hY3RpdmVHcmF5Rmcuc2F2ZShzdHJJbmFjdGl2ZUdyYXlGZyk7CisKKyAgICBjb250
cm9sVmlldy5jbG9zZSgpOworICAgIHZpZXdJbmFjdGl2ZUdyYXlGZy5jbG9zZSgpOworCisgICAg
UVdlYlZpZXcgdmlld0luYWN0aXZlWWVsbG93Rmc7CisKKyAgICBRUGFsZXR0ZSBwYWxZZWxsb3dI
bFRleHQ7CisgICAgUUJydXNoIGJydXNoWWVsbG93SGxUZXh0KFFDb2xvcihRdDo6eWVsbG93KSk7
IAorICAgIGJydXNoWWVsbG93SGxUZXh0LnNldFN0eWxlKFF0OjpTb2xpZFBhdHRlcm4pOworICAg
IHBhbFllbGxvd0hsVGV4dC5zZXRCcnVzaChRUGFsZXR0ZTo6SW5hY3RpdmUsIFFQYWxldHRlOjpI
aWdobGlnaHRlZFRleHQsIGJydXNoWWVsbG93SGxUZXh0KTsKKworICAgIHZpZXdJbmFjdGl2ZVll
bGxvd0ZnLnNldFBhbGV0dGUocGFsWWVsbG93SGxUZXh0KTsKKyAgICB2aWV3SW5hY3RpdmVZZWxs
b3dGZy5zZXRIdG1sKGh0bWwpOworICAgIHZpZXdJbmFjdGl2ZVllbGxvd0ZnLnBhZ2UoKS0+c2V0
Vmlld3BvcnRTaXplKHZpZXdJbmFjdGl2ZVllbGxvd0ZnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCkt
PmNvbnRlbnRzU2l6ZSgpKTsKKyAgICB2aWV3SW5hY3RpdmVZZWxsb3dGZy5zaG93KCk7CisKKyAg
ICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmdmlld0luYWN0aXZlWWVsbG93RmcpOworCisg
ICAgY29udHJvbFZpZXcuc2hvdygpOworICAgIGNvbnRyb2xWaWV3LmFjdGl2YXRlV2luZG93KCk7
CisKKyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmY29udHJvbFZpZXcpOyAKKworICAg
IHZpZXdJbmFjdGl2ZVllbGxvd0ZnLnBhZ2UoKS0+dHJpZ2dlckFjdGlvbihRV2ViUGFnZTo6U2Vs
ZWN0QWxsKTsKKworICAgIFFJbWFnZSBpbWdJbmFjdGl2ZVllbGxvd0ZnKHZpZXdJbmFjdGl2ZVll
bGxvd0ZnLnBhZ2UoKS0+dmlld3BvcnRTaXplKCksIFFJbWFnZTo6Rm9ybWF0X0FSR0IzMik7Cisg
ICAgUVBhaW50ZXIgcGFpbnRJbmFjdGl2ZVllbGxvd0ZnKCZpbWdJbmFjdGl2ZVllbGxvd0ZnKTsK
KyAgICB2aWV3SW5hY3RpdmVZZWxsb3dGZy5wYWdlKCktPmN1cnJlbnRGcmFtZSgpLT5yZW5kZXIo
JnBhaW50SW5hY3RpdmVZZWxsb3dGZyk7CisgICAgcGFpbnRJbmFjdGl2ZVllbGxvd0ZnLmVuZCgp
OworICAgIC8vIHJlbmRlcmVkIGltYWdlIG11c3QgaGF2ZSB5ZWxsb3cgZm9yZWdyb3VuZCBvbiBh
biBpbmFjdGl2ZSBRV2ViVmlldworICAgIFFTdHJpbmcgc3RySW5hY3RpdmVZZWxsb3dGZz0iaW5h
Y3RpdmVZZWxsb3dGZy5wbmciOworICAgIGltZ0luYWN0aXZlWWVsbG93Rmcuc2F2ZShzdHJJbmFj
dGl2ZVllbGxvd0ZnKTsKKworICAgIGNvbnRyb2xWaWV3LmNsb3NlKCk7CisgICAgdmlld0luYWN0
aXZlWWVsbG93RmcuY2xvc2UoKTsKKworICAgIFFWRVJJRlkoaW1nSW5hY3RpdmVHcmF5RmcgIT0g
aW1nSW5hY3RpdmVZZWxsb3dGZyk7CisgICAgLy8gVGVzdCA0OiAgRU5EOiAgU2VsZWN0aW9uIGZv
cmVncm91bmQgY29sb3Igb24gaW5hY3RpdmUgUVdlYlZpZXcgICAKK30KKwogUVRFU1RfTUFJTih0
c3RfUVdlYlZpZXcpCiAjaW5jbHVkZSAidHN0X3F3ZWJ2aWV3Lm1vYyIKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81388</attachid>
            <date>2011-02-05 21:45:50 -0800</date>
            <delta_ts>2011-02-05 21:57:39 -0800</delta_ts>
            <desc>Update ChangeLogs</desc>
            <filename>31742_6Feb2011.patch</filename>
            <type>text/plain</type>
            <size>17263</size>
            <attacher name="Fabrizio">fabrizio.machado</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3NzU5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDItMDUgIEZhYnJpemlv
IE1hY2hhZG8gIDxmYWJyaXppby5tYWNoYWRvQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgY3VzdG9tIFFXZWJWaWV3IHBhbGV0
dGUgaWYgYXBwbGljYXRpb24gcHJvdmlkZXMgb25lLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE3NDIKKworICAgICAgICBDYW5ub3QgYmUgdGVzdGVk
IGZyb20gbGF5b3V0IHRlc3RzIChjb25maXJtZWQgbm8gcmVncmVzc2lvbikuCisJVGVzdHMgYWRk
ZWQgaW4gYXV0b3Rlc3RzIHVuZGVyIFdlYktpdC9xdC90ZXN0cy9xd2Vidmlldy4KKworICAgICAg
ICAqIHBsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyVGhlbWVRdDo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJh
Y2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVF0OjpwbGF0Zm9y
bUFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUaGVtZVF0OjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6Y2FyZXRCbGlua0ludGVydmFsKToKKwog
MjAxMS0wMi0wNSAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQv
UmVuZGVyVGhlbWVRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvUmVuZGVyVGhlbWVRdC5jcHAJKHJldmlzaW9uIDc3NjI4KQorKysgU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM4MCwzMCAr
MzgwLDM1IEBAIHZvaWQgUmVuZGVyVGhlbWVRdDo6YWRqdXN0UmVwYWludFJlY3QoY28KIENvbG9y
IFJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkg
Y29uc3QKIHsKICAgICBRUGFsZXR0ZSBwYWwgPSBRQXBwbGljYXRpb246OnBhbGV0dGUoKTsKKyAg
ICBzZXRQYWxldHRlRnJvbVBhZ2VDbGllbnRJZkV4aXN0cyhwYWwpOwogICAgIHJldHVybiBwYWwu
YnJ1c2goUVBhbGV0dGU6OkFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodCkuY29sb3IoKTsKIH0K
IAogQ29sb3IgUmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcigpIGNvbnN0CiB7CiAgICAgUVBhbGV0dGUgcGFsID0gUUFwcGxpY2F0aW9uOjpwYWxl
dHRlKCk7CisgICAgc2V0UGFsZXR0ZUZyb21QYWdlQ2xpZW50SWZFeGlzdHMocGFsKTsKICAgICBy
ZXR1cm4gcGFsLmJydXNoKFFQYWxldHRlOjpJbmFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodCku
Y29sb3IoKTsKIH0KIAogQ29sb3IgUmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rp
b25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAogewogICAgIFFQYWxldHRlIHBhbCA9IFFBcHBsaWNh
dGlvbjo6cGFsZXR0ZSgpOworICAgIHNldFBhbGV0dGVGcm9tUGFnZUNsaWVudElmRXhpc3RzKHBh
bCk7CiAgICAgcmV0dXJuIHBhbC5icnVzaChRUGFsZXR0ZTo6QWN0aXZlLCBRUGFsZXR0ZTo6SGln
aGxpZ2h0ZWRUZXh0KS5jb2xvcigpOwogfQogCiBDb2xvciBSZW5kZXJUaGVtZVF0OjpwbGF0Zm9y
bUluYWN0aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKIHsKICAgICBRUGFsZXR0
ZSBwYWwgPSBRQXBwbGljYXRpb246OnBhbGV0dGUoKTsKKyAgICBzZXRQYWxldHRlRnJvbVBhZ2VD
bGllbnRJZkV4aXN0cyhwYWwpOwogICAgIHJldHVybiBwYWwuYnJ1c2goUVBhbGV0dGU6OkluYWN0
aXZlLCBRUGFsZXR0ZTo6SGlnaGxpZ2h0ZWRUZXh0KS5jb2xvcigpOwogfQogCiBDb2xvciBSZW5k
ZXJUaGVtZVF0OjpwbGF0Zm9ybUZvY3VzUmluZ0NvbG9yKCkgY29uc3QKIHsKICAgICBRUGFsZXR0
ZSBwYWwgPSBRQXBwbGljYXRpb246OnBhbGV0dGUoKTsKKyAgICBzZXRQYWxldHRlRnJvbVBhZ2VD
bGllbnRJZkV4aXN0cyhwYWwpOwogICAgIHJldHVybiBwYWwuYnJ1c2goUVBhbGV0dGU6OkFjdGl2
ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodCkuY29sb3IoKTsKIH0KIApAQCAtMTQyNiw3ICsxNDMxLDcg
QEAgdm9pZCBSZW5kZXJUaGVtZVF0OjphZGp1c3RTbGlkZXJUaHVtYlNpegogCiBkb3VibGUgUmVu
ZGVyVGhlbWVRdDo6Y2FyZXRCbGlua0ludGVydmFsKCkgY29uc3QKIHsKLSAgICByZXR1cm4gIFFB
cHBsaWNhdGlvbjo6Y3Vyc29yRmxhc2hUaW1lKCkgLyAxMDAwLjAgLyAyLjA7CisgICAgcmV0dXJu
IFFBcHBsaWNhdGlvbjo6Y3Vyc29yRmxhc2hUaW1lKCkgLyAxMDAwLjAgLyAyLjA7CiB9CiAKIH0K
SW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA3Nzc1OSkKKysrIFNvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDItMDUgIEZh
YnJpemlvIE1hY2hhZG8gIDxmYWJyaXppby5tYWNoYWRvQG5va2lhLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyBmb3IgYmVsb3cgYnVn
IGZpeDoKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMx
NzQyCisKKwlUZXN0cyBhZGRlZCBpbiBhdXRvdGVzdHMgdW5kZXIgV2ViS2l0L3F0L3Rlc3RzL3F3
ZWJ2aWV3LgorCisgICAgICAgICogdGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcDoKKyAg
ICAgICAgKHRzdF9RV2ViVmlldzo6cmV1c2VQYWdlKToKKyAgICAgICAgKHRzdF9RV2ViVmlldzo6
bWljcm9Gb2N1c0Nvb3JkaW5hdGVzKToKKyAgICAgICAgKHRzdF9RV2ViVmlldzo6Zm9jdXNJbnB1
dFR5cGVzKToKKyAgICAgICAgKHRzdF9RV2ViVmlldzo6c2V0UGFsZXR0ZSk6CisKIDIwMTEtMDIt
MDMgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2
aWV3ZWQgYnkgUGF2ZWwgRmVsZG1hbi4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdl
YnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L3Rl
c3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAJKHJldmlzaW9uIDc3NjI4KQorKysgU291cmNl
L1dlYktpdC9xdC90ZXN0cy9xd2Vidmlldy90c3RfcXdlYnZpZXcuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xOSwyMCArMTksMTkgQEAKICAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KICov
CiAKLSNpbmNsdWRlIDxxdGVzdC5oPgogI2luY2x1ZGUgIi4uL3V0aWwuaCIKIAotI2luY2x1ZGUg
PHFwYWludGVyLmg+Ci0jaW5jbHVkZSA8cXdlYnZpZXcuaD4KLSNpbmNsdWRlIDxxd2VicGFnZS5o
PgotI2luY2x1ZGUgPHFuZXR3b3JrcmVxdWVzdC5oPgogI2luY2x1ZGUgPHFkaXJpdGVyYXRvci5o
PgotI2luY2x1ZGUgPHF3ZWJraXR2ZXJzaW9uLmg+CisjaW5jbHVkZSA8cW5ldHdvcmtyZXF1ZXN0
Lmg+CisjaW5jbHVkZSA8cXBhaW50ZXIuaD4KKyNpbmNsdWRlIDxxdGVzdC5oPgogI2luY2x1ZGUg
PHF3ZWJlbGVtZW50Lmg+CiAjaW5jbHVkZSA8cXdlYmZyYW1lLmg+CisjaW5jbHVkZSA8cXdlYmtp
dHZlcnNpb24uaD4KKyNpbmNsdWRlIDxxd2VicGFnZS5oPgorI2luY2x1ZGUgPHF3ZWJ2aWV3Lmg+
CiAKLWNsYXNzIHRzdF9RV2ViVmlldyA6IHB1YmxpYyBRT2JqZWN0Ci17CitjbGFzcyB0c3RfUVdl
YlZpZXcgOiBwdWJsaWMgUU9iamVjdCB7CiAgICAgUV9PQkpFQ1QKIAogcHVibGljIHNsb3RzOgpA
QCAtNDksOCArNDgsOCBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQgcmV1c2VQYWdlKCk7CiAg
ICAgdm9pZCBtaWNyb0ZvY3VzQ29vcmRpbmF0ZXMoKTsKICAgICB2b2lkIGZvY3VzSW5wdXRUeXBl
cygpOwotCiAgICAgdm9pZCBjcmFzaFRlc3RzKCk7CisgICAgdm9pZCBzZXRQYWxldHRlKCk7CiB9
OwogCiAvLyBUaGlzIHdpbGwgYmUgY2FsbGVkIGJlZm9yZSB0aGUgZmlyc3QgdGVzdCBmdW5jdGlv
biBpcyBleGVjdXRlZC4KQEAgLTE0NCw5ICsxNDMsOSBAQCB2b2lkIHRzdF9RV2ViVmlldzo6cmV1
c2VQYWdlKCkKICAgICB2aWV3MS0+c2hvdygpOwogICAgIFFUZXN0OjpxV2FpdEZvcldpbmRvd1No
b3duKHZpZXcxKTsKICAgICBkZWxldGUgdmlldzE7Ci0gICAgUVZFUklGWShwYWdlICE9IDApOyAv
LyBkZWxldGluZyB2aWV3IG11c3Qgbm90IGhhdmUgZGVsZXRlZCB0aGUgcGFnZSwgc2luY2UgaXQn
cyBub3QgYSBjaGlsZCBvZiB2aWV3CisgICAgUVZFUklGWShwYWdlKTsgLy8gZGVsZXRpbmcgdmll
dyBtdXN0IG5vdCBoYXZlIGRlbGV0ZWQgdGhlIHBhZ2UsIHNpbmNlIGl0J3Mgbm90IGEgY2hpbGQg
b2YgdmlldwogCi0gICAgUVdlYlZpZXcgKnZpZXcyID0gbmV3IFFXZWJWaWV3OworICAgIFFXZWJW
aWV3KiB2aWV3MiA9IG5ldyBRV2ViVmlldzsKICAgICB2aWV3Mi0+c2V0UGFnZShwYWdlKTsKICAg
ICB2aWV3Mi0+c2hvdygpOyAvLyBpbiBXaW5kb3dsZXNzIG1vZGUsIHlvdSBzaG91bGQgc3RpbGwg
YmUgYWJsZSB0byBzZWUgdGhlIHBsdWdpbiBoZXJlCiAgICAgUVRlc3Q6OnFXYWl0Rm9yV2luZG93
U2hvd24odmlldzIpOwpAQCAtMjAwLDcgKzE5OSw3IEBAIHZvaWQgdHN0X1FXZWJWaWV3OjptaWNy
b0ZvY3VzQ29vcmRpbmF0ZXMKIHsKICAgICBRV2ViUGFnZSogcGFnZSA9IG5ldyBRV2ViUGFnZTsK
ICAgICBRV2ViVmlldyogd2ViVmlldyA9IG5ldyBRV2ViVmlldzsKLSAgICB3ZWJWaWV3LT5zZXRQ
YWdlKCBwYWdlICk7CisgICAgd2ViVmlldy0+c2V0UGFnZShwYWdlKTsKIAogICAgIHBhZ2UtPm1h
aW5GcmFtZSgpLT5zZXRIdG1sKCI8aHRtbD48Ym9keT4iIFwKICAgICAgICAgIjxpbnB1dCB0eXBl
PSd0ZXh0JyBpZD0naW5wdXQxJyBzdHlsZT0nZm9udC0tZmFtaWx5OiBzZXJpZicgdmFsdWU9Jycg
bWF4bGVuZ3RoPScyMCcvPjxicj4iIFwKQEAgLTIxNCwxMiArMjEzLDEyIEBAIHZvaWQgdHN0X1FX
ZWJWaWV3OjptaWNyb0ZvY3VzQ29vcmRpbmF0ZXMKICAgICBRVmFyaWFudCBpbml0aWFsTWljcm9G
b2N1cyA9IHBhZ2UtPmlucHV0TWV0aG9kUXVlcnkoUXQ6OkltTWljcm9Gb2N1cyk7CiAgICAgUVZF
UklGWShpbml0aWFsTWljcm9Gb2N1cy5pc1ZhbGlkKCkpOwogCi0gICAgcGFnZS0+bWFpbkZyYW1l
KCktPnNjcm9sbCgwLDUwKTsKKyAgICBwYWdlLT5tYWluRnJhbWUoKS0+c2Nyb2xsKDAsIDUwKTsK
IAogICAgIFFWYXJpYW50IGN1cnJlbnRNaWNyb0ZvY3VzID0gcGFnZS0+aW5wdXRNZXRob2RRdWVy
eShRdDo6SW1NaWNyb0ZvY3VzKTsKICAgICBRVkVSSUZZKGN1cnJlbnRNaWNyb0ZvY3VzLmlzVmFs
aWQoKSk7CiAKLSAgICBRQ09NUEFSRShpbml0aWFsTWljcm9Gb2N1cy50b1JlY3QoKS50cmFuc2xh
dGVkKFFQb2ludCgwLC01MCkpLCBjdXJyZW50TWljcm9Gb2N1cy50b1JlY3QoKSk7CisgICAgUUNP
TVBBUkUoaW5pdGlhbE1pY3JvRm9jdXMudG9SZWN0KCkudHJhbnNsYXRlZChRUG9pbnQoMCwgLTUw
KSksIGN1cnJlbnRNaWNyb0ZvY3VzLnRvUmVjdCgpKTsKIH0KIAogdm9pZCB0c3RfUVdlYlZpZXc6
OmZvY3VzSW5wdXRUeXBlcygpCkBAIC0zMDYsNiArMzA1LDI3NyBAQCB2b2lkIHRzdF9RV2ViVmll
dzo6Zm9jdXNJbnB1dFR5cGVzKCkKICAgICBRVkVSSUZZKHdlYlZpZXcudGVzdEF0dHJpYnV0ZShR
dDo6V0FfSW5wdXRNZXRob2RFbmFibGVkKSk7CiB9CiAKKy8vIFJlbmRlciBhIFFXZWJWaWV3IHRv
IGEgUUltYWdlIHR3aWNlLCBlYWNoIHRpbWUgd2l0aCBhIGRpZmZlcmVudCBwYWxldHRlIHNldCwg
CisvLyB2ZXJpZnkgdGhhdCBpbWFnZXMgcmVuZGVyZWQgYXJlIG5vdCB0aGUgc2FtZSwgY29uZmly
bWluZyBXZWJDb3JlIHVzYWdlIG9mIAorLy8gY3VzdG9tIHBhbGV0dGUgb24gc2VsZWN0aW9ucy4g
IFRoaXMgc2VxdWVuY2UgZG9uZSBmb3IgYWxsIGNvbWJpbi4gb2YgYWN0aXZlCisvLyBhbmQgaW5h
Y3RpdmUgUVdlYlZpZXcgYW5kIGhpZ2hsaWdodGVkIEZHIGFuZCBCRywgcmVzdWx0aW5nIGluIDQg
YXNzZXJ0aW9ucy4KK3ZvaWQgdHN0X1FXZWJWaWV3OjpzZXRQYWxldHRlKCkKK3sKKyAgICBRU3Ry
aW5nIGh0bWwgPSAiPGh0bWw+PGhlYWQ+PC9oZWFkPiIKKyAgICAgICAgICAgICAgICAgICAiPGJv
ZHk+IgorICAgICAgICAgICAgICAgICAgICJTb21lIHRleHQgaGVyZSIKKyAgICAgICAgICAgICAg
ICAgICAiPC9ib2R5PiIKKyAgICAgICAgICAgICAgICAgICAiPC9odG1sPiI7CisKKyAgICAvLyB1
c2UgY29udHJvbFZpZXcgdG8gbWFuYWdlIGFjdGl2ZS9pbmFjdGl2ZSBzdGF0ZSBvZiB0ZXN0IHZp
ZXdzIGJ5IHJhaXNpbmcKKyAgICAvLyBvciBsb3dlcmluZyB0aGVpciBwb3NpdGlvbiBpbiB0aGUg
d2luZG93IHN0YWNrLgorICAgIFFXZWJWaWV3IGNvbnRyb2xWaWV3OworICAgIGNvbnRyb2xWaWV3
LnNldEh0bWwoaHRtbCk7CisKKyAgICAvLyBUZXN0IDE6ICBCRUdJTjogIFNlbGVjdGlvbiBiYWNr
Z3JvdW5kIGNvbG9yIG9uIGFjdGl2ZSBRV2ViVmlldyAgIAorICAgIFFXZWJWaWV3IHZpZXdBY3Rp
dmVSZWRCZzsKKworICAgIFFQYWxldHRlIHBhbFJlZEhsOworICAgIFFCcnVzaCBicnVzaFJlZEhs
KFFDb2xvcihRdDo6cmVkKSk7IAorICAgIGJydXNoUmVkSGwuc2V0U3R5bGUoUXQ6OlNvbGlkUGF0
dGVybik7CisgICAgcGFsUmVkSGwuc2V0QnJ1c2goUVBhbGV0dGU6OkFjdGl2ZSwgUVBhbGV0dGU6
OkhpZ2hsaWdodCwgYnJ1c2hSZWRIbCk7CisKKyAgICB2aWV3QWN0aXZlUmVkQmcuc2V0UGFsZXR0
ZShwYWxSZWRIbCk7CisgICAgdmlld0FjdGl2ZVJlZEJnLnNldEh0bWwoaHRtbCk7CisgICAgdmll
d0FjdGl2ZVJlZEJnLnBhZ2UoKS0+c2V0Vmlld3BvcnRTaXplKHZpZXdBY3RpdmVSZWRCZy5wYWdl
KCktPmN1cnJlbnRGcmFtZSgpLT5jb250ZW50c1NpemUoKSk7CisgICAgdmlld0FjdGl2ZVJlZEJn
LnNob3coKTsKKworICAgIFFUZXN0OjpxV2FpdEZvcldpbmRvd1Nob3duKCZ2aWV3QWN0aXZlUmVk
QmcpOworCisgICAgdmlld0FjdGl2ZVJlZEJnLmFjdGl2YXRlV2luZG93KCk7CisgICAgdmlld0Fj
dGl2ZVJlZEJnLnBhZ2UoKS0+dHJpZ2dlckFjdGlvbihRV2ViUGFnZTo6U2VsZWN0QWxsKTsKKwor
ICAgIC8vIHJlbmRlcmVkIGltYWdlIG11c3QgaGF2ZSByZWQgYmFja2dyb3VuZCBvbiBhbiBhY3Rp
dmUgUVdlYlZpZXcKKyAgICBRSW1hZ2UgaW1nQWN0aXZlUmVkQmcodmlld0FjdGl2ZVJlZEJnLnBh
Z2UoKS0+dmlld3BvcnRTaXplKCksIFFJbWFnZTo6Rm9ybWF0X0FSR0IzMik7CisgICAgUVBhaW50
ZXIgcGFpbnRBY3RpdmVSZWRCZygmaW1nQWN0aXZlUmVkQmcpOworICAgIHZpZXdBY3RpdmVSZWRC
Zy5wYWdlKCktPmN1cnJlbnRGcmFtZSgpLT5yZW5kZXIoJnBhaW50QWN0aXZlUmVkQmcpOworICAg
IHBhaW50QWN0aXZlUmVkQmcuZW5kKCk7CisgICAgUVN0cmluZyBzdHJBY3RpdmVSZWRCZz0iYWN0
aXZlUmVkQmcucG5nIjsKKyAgICBpbWdBY3RpdmVSZWRCZy5zYXZlKHN0ckFjdGl2ZVJlZEJnKTsK
KworICAgIHZpZXdBY3RpdmVSZWRCZy5jbG9zZSgpOworCisgICAgUVdlYlZpZXcgdmlld0FjdGl2
ZUJsdWVCZzsKKworICAgIFFQYWxldHRlIHBhbEJsdWVIbDsKKyAgICBRQnJ1c2ggYnJ1c2hCbHVl
SGwoUUNvbG9yKFF0OjpibHVlKSk7IAorICAgIGJydXNoQmx1ZUhsLnNldFN0eWxlKFF0OjpTb2xp
ZFBhdHRlcm4pOworICAgIHBhbEJsdWVIbC5zZXRCcnVzaChRUGFsZXR0ZTo6QWN0aXZlLCBRUGFs
ZXR0ZTo6SGlnaGxpZ2h0LCBicnVzaEJsdWVIbCk7CisKKyAgICB2aWV3QWN0aXZlQmx1ZUJnLnNl
dFBhbGV0dGUocGFsQmx1ZUhsKTsKKyAgICB2aWV3QWN0aXZlQmx1ZUJnLnNldEh0bWwoaHRtbCk7
CisgICAgdmlld0FjdGl2ZUJsdWVCZy5wYWdlKCktPnNldFZpZXdwb3J0U2l6ZSh2aWV3QWN0aXZl
Qmx1ZUJnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPmNvbnRlbnRzU2l6ZSgpKTsKKyAgICB2aWV3
QWN0aXZlQmx1ZUJnLnNob3coKTsKKworICAgIFFUZXN0OjpxV2FpdEZvcldpbmRvd1Nob3duKCZ2
aWV3QWN0aXZlQmx1ZUJnKTsKKworICAgIHZpZXdBY3RpdmVCbHVlQmcuYWN0aXZhdGVXaW5kb3co
KTsKKyAgICB2aWV3QWN0aXZlQmx1ZUJnLnBhZ2UoKS0+dHJpZ2dlckFjdGlvbihRV2ViUGFnZTo6
U2VsZWN0QWxsKTsKKworICAgIC8vIHJlbmRlcmVkIGltYWdlIG11c3QgaGF2ZSBibHVlIGJhY2tn
cm91bmQgb24gYW4gYWN0aXZlIFFXZWJWaWV3CisgICAgUUltYWdlIGltZ0FjdGl2ZUJsdWVCZyh2
aWV3QWN0aXZlQmx1ZUJnLnBhZ2UoKS0+dmlld3BvcnRTaXplKCksIFFJbWFnZTo6Rm9ybWF0X0FS
R0IzMik7CisgICAgUVBhaW50ZXIgcGFpbnRBY3RpdmVCbHVlQmcoJmltZ0FjdGl2ZUJsdWVCZyk7
CisgICAgdmlld0FjdGl2ZUJsdWVCZy5wYWdlKCktPmN1cnJlbnRGcmFtZSgpLT5yZW5kZXIoJnBh
aW50QWN0aXZlQmx1ZUJnKTsKKyAgICBwYWludEFjdGl2ZUJsdWVCZy5lbmQoKTsKKworICAgIFFT
dHJpbmcgc3RyQWN0aXZlQmx1ZUJnPSJhY3RpdmVCbHVlQmcucG5nIjsKKyAgICBpbWdBY3RpdmVC
bHVlQmcuc2F2ZShzdHJBY3RpdmVCbHVlQmcpOworCisgICAgdmlld0FjdGl2ZUJsdWVCZy5jbG9z
ZSgpOworCisgICAgUVZFUklGWShpbWdBY3RpdmVCbHVlQmcgIT0gaW1nQWN0aXZlUmVkQmcpOwor
ICAgIC8vIFRlc3QgMTogIEVORDogIFNlbGVjdGlvbiBiYWNrZ3JvdW5kIGNvbG9yIG9uIGFjdGl2
ZSBRV2ViVmlldyAKKworICAgIC8vIFRlc3QgMjogIEJFR0lOOiAgU2VsZWN0aW9uIGJhY2tncm91
bmQgY29sb3Igb24gYW4gaW5hY3RpdmUgUVdlYlZpZXcgICAKKyAgICBRV2ViVmlldyB2aWV3SW5h
Y3RpdmVDeWFuQmc7CisKKyAgICBRUGFsZXR0ZSBwYWxDeWFuSGw7CisgICAgUUJydXNoIGJydXNo
Q3lhbkhsKFFDb2xvcihRdDo6Y3lhbikpOyAKKyAgICBicnVzaEN5YW5IbC5zZXRTdHlsZShRdDo6
U29saWRQYXR0ZXJuKTsKKyAgICBwYWxDeWFuSGwuc2V0QnJ1c2goUVBhbGV0dGU6OkluYWN0aXZl
LCBRUGFsZXR0ZTo6SGlnaGxpZ2h0LCBicnVzaEN5YW5IbCk7CisKKyAgICB2aWV3SW5hY3RpdmVD
eWFuQmcuc2V0UGFsZXR0ZShwYWxDeWFuSGwpOworICAgIHZpZXdJbmFjdGl2ZUN5YW5CZy5zZXRI
dG1sKGh0bWwpOworICAgIHZpZXdJbmFjdGl2ZUN5YW5CZy5wYWdlKCktPnNldFZpZXdwb3J0U2l6
ZSh2aWV3SW5hY3RpdmVDeWFuQmcucGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+Y29udGVudHNTaXpl
KCkpOworICAgIHZpZXdJbmFjdGl2ZUN5YW5CZy5zaG93KCk7CisKKyAgICBRVGVzdDo6cVdhaXRG
b3JXaW5kb3dTaG93bigmdmlld0luYWN0aXZlQ3lhbkJnKTsgCisKKyAgICBjb250cm9sVmlldy5z
aG93KCk7CisgICAgY29udHJvbFZpZXcuYWN0aXZhdGVXaW5kb3coKTsKKworICAgIFFUZXN0Ojpx
V2FpdEZvcldpbmRvd1Nob3duKCZjb250cm9sVmlldyk7IAorCisgICAgdmlld0luYWN0aXZlQ3lh
bkJnLnBhZ2UoKS0+dHJpZ2dlckFjdGlvbihRV2ViUGFnZTo6U2VsZWN0QWxsKTsKKworICAgIFFJ
bWFnZSBpbWdJbmFjdGl2ZUN5YW5CZyh2aWV3SW5hY3RpdmVDeWFuQmcucGFnZSgpLT52aWV3cG9y
dFNpemUoKSwgUUltYWdlOjpGb3JtYXRfQVJHQjMyKTsKKyAgICBRUGFpbnRlciBwYWludEluYWN0
aXZlQ3lhbkJnKCZpbWdJbmFjdGl2ZUN5YW5CZyk7CisgICAgdmlld0luYWN0aXZlQ3lhbkJnLnBh
Z2UoKS0+Y3VycmVudEZyYW1lKCktPnJlbmRlcigmcGFpbnRJbmFjdGl2ZUN5YW5CZyk7CisgICAg
cGFpbnRJbmFjdGl2ZUN5YW5CZy5lbmQoKTsKKyAgICAvLyByZW5kZXJlZCBpbWFnZSBtdXN0IGhh
dmUgY3lhbiBiYWNrZ3JvdW5kIG9uIGFuIGluYWN0aXZlIFFXZWJWaWV3CisgICAgUVN0cmluZyBz
dHJJbmFjdGl2ZUN5YW5CZz0iaW5hY3RpdmVDeWFuQmcucG5nIjsKKyAgICBpbWdJbmFjdGl2ZUN5
YW5CZy5zYXZlKHN0ckluYWN0aXZlQ3lhbkJnKTsKKyAKKyAgICBjb250cm9sVmlldy5jbG9zZSgp
OworICAgIHZpZXdJbmFjdGl2ZUN5YW5CZy5jbG9zZSgpOworCisgICAgUVdlYlZpZXcgdmlld0lu
YWN0aXZlTWFnZW50YUJnOworCisgICAgUVBhbGV0dGUgcGFsTWFnZW50YUhsOworICAgIFFCcnVz
aCBicnVzaE1hZ2VudGFIbChRQ29sb3IoUXQ6Om1hZ2VudGEpKTsgCisgICAgYnJ1c2hNYWdlbnRh
SGwuc2V0U3R5bGUoUXQ6OlNvbGlkUGF0dGVybik7CisgICAgcGFsTWFnZW50YUhsLnNldEJydXNo
KFFQYWxldHRlOjpJbmFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodCwgYnJ1c2hNYWdlbnRhSGwp
OworCisgICAgdmlld0luYWN0aXZlTWFnZW50YUJnLnNldFBhbGV0dGUocGFsTWFnZW50YUhsKTsK
KyAgICB2aWV3SW5hY3RpdmVNYWdlbnRhQmcuc2V0SHRtbChodG1sKTsKKyAgICB2aWV3SW5hY3Rp
dmVNYWdlbnRhQmcucGFnZSgpLT5zZXRWaWV3cG9ydFNpemUodmlld0luYWN0aXZlTWFnZW50YUJn
LnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPmNvbnRlbnRzU2l6ZSgpKTsKKyAgICB2aWV3SW5hY3Rp
dmVNYWdlbnRhQmcuc2hvdygpOworCisgICAgUVRlc3Q6OnFXYWl0Rm9yV2luZG93U2hvd24oJnZp
ZXdJbmFjdGl2ZU1hZ2VudGFCZyk7CisKKyAgICBjb250cm9sVmlldy5zaG93KCk7CisgICAgY29u
dHJvbFZpZXcuYWN0aXZhdGVXaW5kb3coKTsKKworICAgIFFUZXN0OjpxV2FpdEZvcldpbmRvd1No
b3duKCZjb250cm9sVmlldyk7IAorCisgICAgdmlld0luYWN0aXZlTWFnZW50YUJnLnBhZ2UoKS0+
dHJpZ2dlckFjdGlvbihRV2ViUGFnZTo6U2VsZWN0QWxsKTsKKworICAgIFFJbWFnZSBpbWdJbmFj
dGl2ZU1hZ2VudGFCZyh2aWV3SW5hY3RpdmVNYWdlbnRhQmcucGFnZSgpLT52aWV3cG9ydFNpemUo
KSwgUUltYWdlOjpGb3JtYXRfQVJHQjMyKTsKKyAgICBRUGFpbnRlciBwYWludEluYWN0aXZlTWFn
ZW50YUJnKCZpbWdJbmFjdGl2ZU1hZ2VudGFCZyk7CisgICAgdmlld0luYWN0aXZlTWFnZW50YUJn
LnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPnJlbmRlcigmcGFpbnRJbmFjdGl2ZU1hZ2VudGFCZyk7
CisgICAgcGFpbnRJbmFjdGl2ZU1hZ2VudGFCZy5lbmQoKTsKKyAgICAvLyByZW5kZXJlZCBpbWFn
ZSBtdXN0IGhhdmUgbWFnZW50YSBiYWNrZ3JvdW5kIG9uIGFuIGluYWN0aXZlIFFXZWJWaWV3Cisg
ICAgUVN0cmluZyBzdHJJbmFjdGl2ZU1hZ2VudGFCZz0iaW5hY3RpdmVNYWdlbnRhQmcucG5nIjsK
KyAgICBpbWdJbmFjdGl2ZU1hZ2VudGFCZy5zYXZlKHN0ckluYWN0aXZlTWFnZW50YUJnKTsKKwor
ICAgIGNvbnRyb2xWaWV3LmNsb3NlKCk7CisgICAgdmlld0luYWN0aXZlTWFnZW50YUJnLmNsb3Nl
KCk7CisKKyAgICBRVkVSSUZZKGltZ0luYWN0aXZlQ3lhbkJnICE9IGltZ0luYWN0aXZlTWFnZW50
YUJnKTsKKyAgICAvLyBUZXN0IDI6ICBFTkQ6ICBTZWxlY3Rpb24gYmFja2dyb3VuZCBjb2xvciBv
biBhbiBpbmFjdGl2ZSBRV2ViVmlldyAgIAorCisgICAgLy8gVGVzdCAzOiAgQkVHSU46ICBTZWxl
Y3Rpb24gZm9yZWdyb3VuZCBjb2xvciBvbiBhbiBhY3RpdmUgUVdlYlZpZXcgICAKKyAgICBRV2Vi
VmlldyB2aWV3QWN0aXZlQmxhY2tGZzsKKworICAgIFFQYWxldHRlIHBhbEJsYWNrSGxUZXh0Owor
ICAgIFFCcnVzaCBicnVzaEJsYWNrSGxUZXh0KFFDb2xvcihRdDo6YmxhY2spKTsgCisgICAgYnJ1
c2hCbGFja0hsVGV4dC5zZXRTdHlsZShRdDo6U29saWRQYXR0ZXJuKTsKKyAgICBwYWxCbGFja0hs
VGV4dC5zZXRCcnVzaChRUGFsZXR0ZTo6QWN0aXZlLCBRUGFsZXR0ZTo6SGlnaGxpZ2h0ZWRUZXh0
LCBicnVzaEJsYWNrSGxUZXh0KTsKKworICAgIHZpZXdBY3RpdmVCbGFja0ZnLnNldFBhbGV0dGUo
cGFsQmxhY2tIbFRleHQpOworICAgIHZpZXdBY3RpdmVCbGFja0ZnLnNldEh0bWwoaHRtbCk7Cisg
ICAgdmlld0FjdGl2ZUJsYWNrRmcucGFnZSgpLT5zZXRWaWV3cG9ydFNpemUodmlld0FjdGl2ZUJs
YWNrRmcucGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+Y29udGVudHNTaXplKCkpOworICAgIHZpZXdB
Y3RpdmVCbGFja0ZnLnNob3coKTsKKworICAgIFFUZXN0OjpxV2FpdEZvcldpbmRvd1Nob3duKCZ2
aWV3QWN0aXZlQmxhY2tGZyk7CisKKyAgICB2aWV3QWN0aXZlQmxhY2tGZy5hY3RpdmF0ZVdpbmRv
dygpOworICAgIHZpZXdBY3RpdmVCbGFja0ZnLnBhZ2UoKS0+dHJpZ2dlckFjdGlvbihRV2ViUGFn
ZTo6U2VsZWN0QWxsKTsKKworICAgIFFJbWFnZSBpbWdBY3RpdmVCbGFja0ZnKHZpZXdBY3RpdmVC
bGFja0ZnLnBhZ2UoKS0+dmlld3BvcnRTaXplKCksIFFJbWFnZTo6Rm9ybWF0X0FSR0IzMik7Cisg
ICAgUVBhaW50ZXIgcGFpbnRBY3RpdmVCbGFja0ZnKCZpbWdBY3RpdmVCbGFja0ZnKTsKKyAgICB2
aWV3QWN0aXZlQmxhY2tGZy5wYWdlKCktPmN1cnJlbnRGcmFtZSgpLT5yZW5kZXIoJnBhaW50QWN0
aXZlQmxhY2tGZyk7CisgICAgcGFpbnRBY3RpdmVCbGFja0ZnLmVuZCgpOworICAgIC8vIHJlbmRl
cmVkIGltYWdlIG11c3QgaGF2ZSBibGFjayBmb3JlZ3JvdW5kIG9uIGFuIGFjdGl2ZSBRV2ViVmll
dworICAgIFFTdHJpbmcgc3RyQWN0aXZlQmxhY2tGZz0iYWN0aXZlQmxhY2tGZy5wbmciOworICAg
IGltZ0FjdGl2ZUJsYWNrRmcuc2F2ZShzdHJBY3RpdmVCbGFja0ZnKTsKKworICAgIHZpZXdBY3Rp
dmVCbGFja0ZnLmNsb3NlKCk7CisKKyAgICBRV2ViVmlldyB2aWV3QWN0aXZlR3JlZW5GZzsKKwor
ICAgIFFQYWxldHRlIHBhbEdyZWVuSGxUZXh0OworICAgIFFCcnVzaCBicnVzaEdyZWVuSGxUZXh0
KFFDb2xvcihRdDo6Z3JlZW4pKTsgCisgICAgYnJ1c2hHcmVlbkhsVGV4dC5zZXRTdHlsZShRdDo6
U29saWRQYXR0ZXJuKTsKKyAgICBwYWxHcmVlbkhsVGV4dC5zZXRCcnVzaChRUGFsZXR0ZTo6QWN0
aXZlLCBRUGFsZXR0ZTo6SGlnaGxpZ2h0ZWRUZXh0LCBicnVzaEdyZWVuSGxUZXh0KTsKKworICAg
IHZpZXdBY3RpdmVHcmVlbkZnLnNldFBhbGV0dGUocGFsR3JlZW5IbFRleHQpOworICAgIHZpZXdB
Y3RpdmVHcmVlbkZnLnNldEh0bWwoaHRtbCk7CisgICAgdmlld0FjdGl2ZUdyZWVuRmcucGFnZSgp
LT5zZXRWaWV3cG9ydFNpemUodmlld0FjdGl2ZUdyZWVuRmcucGFnZSgpLT5jdXJyZW50RnJhbWUo
KS0+Y29udGVudHNTaXplKCkpOworICAgIHZpZXdBY3RpdmVHcmVlbkZnLnNob3coKTsKKworICAg
IFFUZXN0OjpxV2FpdEZvcldpbmRvd1Nob3duKCZ2aWV3QWN0aXZlR3JlZW5GZyk7CisKKyAgICB2
aWV3QWN0aXZlR3JlZW5GZy5hY3RpdmF0ZVdpbmRvdygpOworICAgIHZpZXdBY3RpdmVHcmVlbkZn
LnBhZ2UoKS0+dHJpZ2dlckFjdGlvbihRV2ViUGFnZTo6U2VsZWN0QWxsKTsKKworICAgIFFJbWFn
ZSBpbWdBY3RpdmVHcmVlbkZnKHZpZXdBY3RpdmVHcmVlbkZnLnBhZ2UoKS0+dmlld3BvcnRTaXpl
KCksIFFJbWFnZTo6Rm9ybWF0X0FSR0IzMik7CisgICAgUVBhaW50ZXIgcGFpbnRBY3RpdmVHcmVl
bkZnKCZpbWdBY3RpdmVHcmVlbkZnKTsKKyAgICB2aWV3QWN0aXZlR3JlZW5GZy5wYWdlKCktPmN1
cnJlbnRGcmFtZSgpLT5yZW5kZXIoJnBhaW50QWN0aXZlR3JlZW5GZyk7CisgICAgcGFpbnRBY3Rp
dmVHcmVlbkZnLmVuZCgpOworICAgIC8vIHJlbmRlcmVkIGltYWdlIG11c3QgaGF2ZSBncmVlbiBm
b3JlZ3JvdW5kIG9uIGFuIGFjdGl2ZSBRV2ViVmlldworICAgIFFTdHJpbmcgc3RyQWN0aXZlR3Jl
ZW5GZz0iYWN0aXZlR3JlZW5GZy5wbmciOworICAgIGltZ0FjdGl2ZUdyZWVuRmcuc2F2ZShzdHJB
Y3RpdmVHcmVlbkZnKTsKKworICAgIHZpZXdBY3RpdmVHcmVlbkZnLmNsb3NlKCk7CisKKyAgICBR
VkVSSUZZKGltZ0FjdGl2ZUJsYWNrRmcgIT0gaW1nQWN0aXZlR3JlZW5GZyk7CisgICAgLy8gVGVz
dCAzOiAgRU5EOiAgU2VsZWN0aW9uIGZvcmVncm91bmQgY29sb3Igb24gYWN0aXZlIFFXZWJWaWV3
ICAgCisKKyAgICAvLyBUZXN0IDQ6ICBCRUdJTjogIFNlbGVjdGlvbiBmb3JlZ3JvdW5kIGNvbG9y
IG9uIGFuIGluYWN0aXZlIFFXZWJWaWV3ICAgCisgICAgUVdlYlZpZXcgdmlld0luYWN0aXZlR3Jh
eUZnOworCisgICAgUVBhbGV0dGUgcGFsR3JheUhsVGV4dDsKKyAgICBRQnJ1c2ggYnJ1c2hHcmF5
SGxUZXh0KFFDb2xvcihRdDo6Z3JheSkpOyAKKyAgICBicnVzaEdyYXlIbFRleHQuc2V0U3R5bGUo
UXQ6OlNvbGlkUGF0dGVybik7CisgICAgcGFsR3JheUhsVGV4dC5zZXRCcnVzaChRUGFsZXR0ZTo6
SW5hY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHRlZFRleHQsIGJydXNoR3JheUhsVGV4dCk7CisK
KyAgICB2aWV3SW5hY3RpdmVHcmF5Rmcuc2V0UGFsZXR0ZShwYWxHcmF5SGxUZXh0KTsKKyAgICB2
aWV3SW5hY3RpdmVHcmF5Rmcuc2V0SHRtbChodG1sKTsKKyAgICB2aWV3SW5hY3RpdmVHcmF5Rmcu
cGFnZSgpLT5zZXRWaWV3cG9ydFNpemUodmlld0luYWN0aXZlR3JheUZnLnBhZ2UoKS0+Y3VycmVu
dEZyYW1lKCktPmNvbnRlbnRzU2l6ZSgpKTsKKyAgICB2aWV3SW5hY3RpdmVHcmF5Rmcuc2hvdygp
OworCisgICAgUVRlc3Q6OnFXYWl0Rm9yV2luZG93U2hvd24oJnZpZXdJbmFjdGl2ZUdyYXlGZyk7
CisKKyAgICBjb250cm9sVmlldy5zaG93KCk7CisgICAgY29udHJvbFZpZXcuYWN0aXZhdGVXaW5k
b3coKTsKKworICAgIFFUZXN0OjpxV2FpdEZvcldpbmRvd1Nob3duKCZjb250cm9sVmlldyk7IAor
CisgICAgdmlld0luYWN0aXZlR3JheUZnLnBhZ2UoKS0+dHJpZ2dlckFjdGlvbihRV2ViUGFnZTo6
U2VsZWN0QWxsKTsKKworICAgIFFJbWFnZSBpbWdJbmFjdGl2ZUdyYXlGZyh2aWV3SW5hY3RpdmVH
cmF5RmcucGFnZSgpLT52aWV3cG9ydFNpemUoKSwgUUltYWdlOjpGb3JtYXRfQVJHQjMyKTsKKyAg
ICBRUGFpbnRlciBwYWludEluYWN0aXZlR3JheUZnKCZpbWdJbmFjdGl2ZUdyYXlGZyk7CisgICAg
dmlld0luYWN0aXZlR3JheUZnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPnJlbmRlcigmcGFpbnRJ
bmFjdGl2ZUdyYXlGZyk7CisgICAgcGFpbnRJbmFjdGl2ZUdyYXlGZy5lbmQoKTsKKyAgICAvLyBy
ZW5kZXJlZCBpbWFnZSBtdXN0IGhhdmUgZ3JheSBmb3JlZ3JvdW5kIG9uIGFuIGluYWN0aXZlIFFX
ZWJWaWV3CisgICAgUVN0cmluZyBzdHJJbmFjdGl2ZUdyYXlGZz0iaW5hY3RpdmVHcmF5RmcucG5n
IjsKKyAgICBpbWdJbmFjdGl2ZUdyYXlGZy5zYXZlKHN0ckluYWN0aXZlR3JheUZnKTsKKworICAg
IGNvbnRyb2xWaWV3LmNsb3NlKCk7CisgICAgdmlld0luYWN0aXZlR3JheUZnLmNsb3NlKCk7CisK
KyAgICBRV2ViVmlldyB2aWV3SW5hY3RpdmVZZWxsb3dGZzsKKworICAgIFFQYWxldHRlIHBhbFll
bGxvd0hsVGV4dDsKKyAgICBRQnJ1c2ggYnJ1c2hZZWxsb3dIbFRleHQoUUNvbG9yKFF0Ojp5ZWxs
b3cpKTsgCisgICAgYnJ1c2hZZWxsb3dIbFRleHQuc2V0U3R5bGUoUXQ6OlNvbGlkUGF0dGVybik7
CisgICAgcGFsWWVsbG93SGxUZXh0LnNldEJydXNoKFFQYWxldHRlOjpJbmFjdGl2ZSwgUVBhbGV0
dGU6OkhpZ2hsaWdodGVkVGV4dCwgYnJ1c2hZZWxsb3dIbFRleHQpOworCisgICAgdmlld0luYWN0
aXZlWWVsbG93Rmcuc2V0UGFsZXR0ZShwYWxZZWxsb3dIbFRleHQpOworICAgIHZpZXdJbmFjdGl2
ZVllbGxvd0ZnLnNldEh0bWwoaHRtbCk7CisgICAgdmlld0luYWN0aXZlWWVsbG93RmcucGFnZSgp
LT5zZXRWaWV3cG9ydFNpemUodmlld0luYWN0aXZlWWVsbG93RmcucGFnZSgpLT5jdXJyZW50RnJh
bWUoKS0+Y29udGVudHNTaXplKCkpOworICAgIHZpZXdJbmFjdGl2ZVllbGxvd0ZnLnNob3coKTsK
KworICAgIFFUZXN0OjpxV2FpdEZvcldpbmRvd1Nob3duKCZ2aWV3SW5hY3RpdmVZZWxsb3dGZyk7
CisKKyAgICBjb250cm9sVmlldy5zaG93KCk7CisgICAgY29udHJvbFZpZXcuYWN0aXZhdGVXaW5k
b3coKTsKKworICAgIFFUZXN0OjpxV2FpdEZvcldpbmRvd1Nob3duKCZjb250cm9sVmlldyk7IAor
CisgICAgdmlld0luYWN0aXZlWWVsbG93RmcucGFnZSgpLT50cmlnZ2VyQWN0aW9uKFFXZWJQYWdl
OjpTZWxlY3RBbGwpOworCisgICAgUUltYWdlIGltZ0luYWN0aXZlWWVsbG93Rmcodmlld0luYWN0
aXZlWWVsbG93RmcucGFnZSgpLT52aWV3cG9ydFNpemUoKSwgUUltYWdlOjpGb3JtYXRfQVJHQjMy
KTsKKyAgICBRUGFpbnRlciBwYWludEluYWN0aXZlWWVsbG93RmcoJmltZ0luYWN0aXZlWWVsbG93
RmcpOworICAgIHZpZXdJbmFjdGl2ZVllbGxvd0ZnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPnJl
bmRlcigmcGFpbnRJbmFjdGl2ZVllbGxvd0ZnKTsKKyAgICBwYWludEluYWN0aXZlWWVsbG93Rmcu
ZW5kKCk7CisgICAgLy8gcmVuZGVyZWQgaW1hZ2UgbXVzdCBoYXZlIHllbGxvdyBmb3JlZ3JvdW5k
IG9uIGFuIGluYWN0aXZlIFFXZWJWaWV3CisgICAgUVN0cmluZyBzdHJJbmFjdGl2ZVllbGxvd0Zn
PSJpbmFjdGl2ZVllbGxvd0ZnLnBuZyI7CisgICAgaW1nSW5hY3RpdmVZZWxsb3dGZy5zYXZlKHN0
ckluYWN0aXZlWWVsbG93RmcpOworCisgICAgY29udHJvbFZpZXcuY2xvc2UoKTsKKyAgICB2aWV3
SW5hY3RpdmVZZWxsb3dGZy5jbG9zZSgpOworCisgICAgUVZFUklGWShpbWdJbmFjdGl2ZUdyYXlG
ZyAhPSBpbWdJbmFjdGl2ZVllbGxvd0ZnKTsKKyAgICAvLyBUZXN0IDQ6ICBFTkQ6ICBTZWxlY3Rp
b24gZm9yZWdyb3VuZCBjb2xvciBvbiBpbmFjdGl2ZSBRV2ViVmlldyAgIAorfQorCiBRVEVTVF9N
QUlOKHRzdF9RV2ViVmlldykKICNpbmNsdWRlICJ0c3RfcXdlYnZpZXcubW9jIgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81389</attachid>
            <date>2011-02-05 21:57:39 -0800</date>
            <delta_ts>2011-02-05 22:02:56 -0800</delta_ts>
            <desc>fix style check failure:  remove tab from ChangeLog</desc>
            <filename>31742_6Feb2011.patch</filename>
            <type>text/plain</type>
            <size>17270</size>
            <attacher name="Fabrizio">fabrizio.machado</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3NzU5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDItMDUgIEZhYnJpemlv
IE1hY2hhZG8gIDxmYWJyaXppby5tYWNoYWRvQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgY3VzdG9tIFFXZWJWaWV3IHBhbGV0
dGUgaWYgYXBwbGljYXRpb24gcHJvdmlkZXMgb25lLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE3NDIKKworICAgICAgICBDYW5ub3QgYmUgdGVzdGVk
IGZyb20gbGF5b3V0IHRlc3RzIChjb25maXJtZWQgbm8gcmVncmVzc2lvbikuCisgICAgICAgIFRl
c3RzIGFkZGVkIGluIGF1dG90ZXN0cyB1bmRlciBXZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtSW5hY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6
cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVF0OjpwbGF0Zm9ybUZvY3VzUmluZ0Nv
bG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OmNhcmV0QmxpbmtJbnRlcnZh
bCk6CisKIDIwMTEtMDItMDUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCShyZXZpc2lvbiA3NzYyOCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
ODAsMzAgKzM4MCwzNSBAQCB2b2lkIFJlbmRlclRoZW1lUXQ6OmFkanVzdFJlcGFpbnRSZWN0KGNv
CiBDb2xvciBSZW5kZXJUaGVtZVF0OjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcigpIGNvbnN0CiB7CiAgICAgUVBhbGV0dGUgcGFsID0gUUFwcGxpY2F0aW9uOjpwYWxldHRl
KCk7CisgICAgc2V0UGFsZXR0ZUZyb21QYWdlQ2xpZW50SWZFeGlzdHMocGFsKTsKICAgICByZXR1
cm4gcGFsLmJydXNoKFFQYWxldHRlOjpBY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHQpLmNvbG9y
KCk7CiB9CiAKIENvbG9yIFJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogewogICAgIFFQYWxldHRlIHBhbCA9IFFBcHBsaWNhdGlv
bjo6cGFsZXR0ZSgpOworICAgIHNldFBhbGV0dGVGcm9tUGFnZUNsaWVudElmRXhpc3RzKHBhbCk7
CiAgICAgcmV0dXJuIHBhbC5icnVzaChRUGFsZXR0ZTo6SW5hY3RpdmUsIFFQYWxldHRlOjpIaWdo
bGlnaHQpLmNvbG9yKCk7CiB9CiAKIENvbG9yIFJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtQWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKIHsKICAgICBRUGFsZXR0ZSBwYWwgPSBR
QXBwbGljYXRpb246OnBhbGV0dGUoKTsKKyAgICBzZXRQYWxldHRlRnJvbVBhZ2VDbGllbnRJZkV4
aXN0cyhwYWwpOwogICAgIHJldHVybiBwYWwuYnJ1c2goUVBhbGV0dGU6OkFjdGl2ZSwgUVBhbGV0
dGU6OkhpZ2hsaWdodGVkVGV4dCkuY29sb3IoKTsKIH0KIAogQ29sb3IgUmVuZGVyVGhlbWVRdDo6
cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAg
UVBhbGV0dGUgcGFsID0gUUFwcGxpY2F0aW9uOjpwYWxldHRlKCk7CisgICAgc2V0UGFsZXR0ZUZy
b21QYWdlQ2xpZW50SWZFeGlzdHMocGFsKTsKICAgICByZXR1cm4gcGFsLmJydXNoKFFQYWxldHRl
OjpJbmFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodGVkVGV4dCkuY29sb3IoKTsKIH0KIAogQ29s
b3IgUmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcigpIGNvbnN0CiB7CiAgICAg
UVBhbGV0dGUgcGFsID0gUUFwcGxpY2F0aW9uOjpwYWxldHRlKCk7CisgICAgc2V0UGFsZXR0ZUZy
b21QYWdlQ2xpZW50SWZFeGlzdHMocGFsKTsKICAgICByZXR1cm4gcGFsLmJydXNoKFFQYWxldHRl
OjpBY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHQpLmNvbG9yKCk7CiB9CiAKQEAgLTE0MjYsNyAr
MTQzMSw3IEBAIHZvaWQgUmVuZGVyVGhlbWVRdDo6YWRqdXN0U2xpZGVyVGh1bWJTaXoKIAogZG91
YmxlIFJlbmRlclRoZW1lUXQ6OmNhcmV0QmxpbmtJbnRlcnZhbCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuICBRQXBwbGljYXRpb246OmN1cnNvckZsYXNoVGltZSgpIC8gMTAwMC4wIC8gMi4wOworICAg
IHJldHVybiBRQXBwbGljYXRpb246OmN1cnNvckZsYXNoVGltZSgpIC8gMTAwMC4wIC8gMi4wOwog
fQogCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gNzc3NTkpCisrKyBTb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDExLTAy
LTA1ICBGYWJyaXppbyBNYWNoYWRvICA8ZmFicml6aW8ubWFjaGFkb0Bub2tpYS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgZm9yIGJl
bG93IGJ1ZyBmaXg6CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zMTc0MgorCisJVGVzdHMgYWRkZWQgaW4gYXV0b3Rlc3RzIHVuZGVyIFdlYktpdC9xdC90
ZXN0cy9xd2Vidmlldy4KKworICAgICAgICAqIHRlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5j
cHA6CisgICAgICAgICh0c3RfUVdlYlZpZXc6OnJldXNlUGFnZSk6CisgICAgICAgICh0c3RfUVdl
YlZpZXc6Om1pY3JvRm9jdXNDb29yZGluYXRlcyk6CisgICAgICAgICh0c3RfUVdlYlZpZXc6OmZv
Y3VzSW5wdXRUeXBlcyk6CisgICAgICAgICh0c3RfUVdlYlZpZXc6OnNldFBhbGV0dGUpOgorCiAy
MDExLTAyLTAzICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IFBhdmVsIEZlbGRtYW4uCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L3Rl
c3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9xdC90ZXN0cy9xd2Vidmlldy90c3RfcXdlYnZpZXcuY3BwCShyZXZpc2lvbiA3NzYyOCkKKysr
IFNvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTksMjAgKzE5LDE5IEBACiAgICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBV
U0EuCiAqLwogCi0jaW5jbHVkZSA8cXRlc3QuaD4KICNpbmNsdWRlICIuLi91dGlsLmgiCiAKLSNp
bmNsdWRlIDxxcGFpbnRlci5oPgotI2luY2x1ZGUgPHF3ZWJ2aWV3Lmg+Ci0jaW5jbHVkZSA8cXdl
YnBhZ2UuaD4KLSNpbmNsdWRlIDxxbmV0d29ya3JlcXVlc3QuaD4KICNpbmNsdWRlIDxxZGlyaXRl
cmF0b3IuaD4KLSNpbmNsdWRlIDxxd2Via2l0dmVyc2lvbi5oPgorI2luY2x1ZGUgPHFuZXR3b3Jr
cmVxdWVzdC5oPgorI2luY2x1ZGUgPHFwYWludGVyLmg+CisjaW5jbHVkZSA8cXRlc3QuaD4KICNp
bmNsdWRlIDxxd2ViZWxlbWVudC5oPgogI2luY2x1ZGUgPHF3ZWJmcmFtZS5oPgorI2luY2x1ZGUg
PHF3ZWJraXR2ZXJzaW9uLmg+CisjaW5jbHVkZSA8cXdlYnBhZ2UuaD4KKyNpbmNsdWRlIDxxd2Vi
dmlldy5oPgogCi1jbGFzcyB0c3RfUVdlYlZpZXcgOiBwdWJsaWMgUU9iamVjdAoteworY2xhc3Mg
dHN0X1FXZWJWaWV3IDogcHVibGljIFFPYmplY3QgewogICAgIFFfT0JKRUNUCiAKIHB1YmxpYyBz
bG90czoKQEAgLTQ5LDggKzQ4LDggQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIHJldXNlUGFn
ZSgpOwogICAgIHZvaWQgbWljcm9Gb2N1c0Nvb3JkaW5hdGVzKCk7CiAgICAgdm9pZCBmb2N1c0lu
cHV0VHlwZXMoKTsKLQogICAgIHZvaWQgY3Jhc2hUZXN0cygpOworICAgIHZvaWQgc2V0UGFsZXR0
ZSgpOwogfTsKIAogLy8gVGhpcyB3aWxsIGJlIGNhbGxlZCBiZWZvcmUgdGhlIGZpcnN0IHRlc3Qg
ZnVuY3Rpb24gaXMgZXhlY3V0ZWQuCkBAIC0xNDQsOSArMTQzLDkgQEAgdm9pZCB0c3RfUVdlYlZp
ZXc6OnJldXNlUGFnZSgpCiAgICAgdmlldzEtPnNob3coKTsKICAgICBRVGVzdDo6cVdhaXRGb3JX
aW5kb3dTaG93bih2aWV3MSk7CiAgICAgZGVsZXRlIHZpZXcxOwotICAgIFFWRVJJRlkocGFnZSAh
PSAwKTsgLy8gZGVsZXRpbmcgdmlldyBtdXN0IG5vdCBoYXZlIGRlbGV0ZWQgdGhlIHBhZ2UsIHNp
bmNlIGl0J3Mgbm90IGEgY2hpbGQgb2YgdmlldworICAgIFFWRVJJRlkocGFnZSk7IC8vIGRlbGV0
aW5nIHZpZXcgbXVzdCBub3QgaGF2ZSBkZWxldGVkIHRoZSBwYWdlLCBzaW5jZSBpdCdzIG5vdCBh
IGNoaWxkIG9mIHZpZXcKIAotICAgIFFXZWJWaWV3ICp2aWV3MiA9IG5ldyBRV2ViVmlldzsKKyAg
ICBRV2ViVmlldyogdmlldzIgPSBuZXcgUVdlYlZpZXc7CiAgICAgdmlldzItPnNldFBhZ2UocGFn
ZSk7CiAgICAgdmlldzItPnNob3coKTsgLy8gaW4gV2luZG93bGVzcyBtb2RlLCB5b3Ugc2hvdWxk
IHN0aWxsIGJlIGFibGUgdG8gc2VlIHRoZSBwbHVnaW4gaGVyZQogICAgIFFUZXN0OjpxV2FpdEZv
cldpbmRvd1Nob3duKHZpZXcyKTsKQEAgLTIwMCw3ICsxOTksNyBAQCB2b2lkIHRzdF9RV2ViVmll
dzo6bWljcm9Gb2N1c0Nvb3JkaW5hdGVzCiB7CiAgICAgUVdlYlBhZ2UqIHBhZ2UgPSBuZXcgUVdl
YlBhZ2U7CiAgICAgUVdlYlZpZXcqIHdlYlZpZXcgPSBuZXcgUVdlYlZpZXc7Ci0gICAgd2ViVmll
dy0+c2V0UGFnZSggcGFnZSApOworICAgIHdlYlZpZXctPnNldFBhZ2UocGFnZSk7CiAKICAgICBw
YWdlLT5tYWluRnJhbWUoKS0+c2V0SHRtbCgiPGh0bWw+PGJvZHk+IiBcCiAgICAgICAgICI8aW5w
dXQgdHlwZT0ndGV4dCcgaWQ9J2lucHV0MScgc3R5bGU9J2ZvbnQtLWZhbWlseTogc2VyaWYnIHZh
bHVlPScnIG1heGxlbmd0aD0nMjAnLz48YnI+IiBcCkBAIC0yMTQsMTIgKzIxMywxMiBAQCB2b2lk
IHRzdF9RV2ViVmlldzo6bWljcm9Gb2N1c0Nvb3JkaW5hdGVzCiAgICAgUVZhcmlhbnQgaW5pdGlh
bE1pY3JvRm9jdXMgPSBwYWdlLT5pbnB1dE1ldGhvZFF1ZXJ5KFF0OjpJbU1pY3JvRm9jdXMpOwog
ICAgIFFWRVJJRlkoaW5pdGlhbE1pY3JvRm9jdXMuaXNWYWxpZCgpKTsKIAotICAgIHBhZ2UtPm1h
aW5GcmFtZSgpLT5zY3JvbGwoMCw1MCk7CisgICAgcGFnZS0+bWFpbkZyYW1lKCktPnNjcm9sbCgw
LCA1MCk7CiAKICAgICBRVmFyaWFudCBjdXJyZW50TWljcm9Gb2N1cyA9IHBhZ2UtPmlucHV0TWV0
aG9kUXVlcnkoUXQ6OkltTWljcm9Gb2N1cyk7CiAgICAgUVZFUklGWShjdXJyZW50TWljcm9Gb2N1
cy5pc1ZhbGlkKCkpOwogCi0gICAgUUNPTVBBUkUoaW5pdGlhbE1pY3JvRm9jdXMudG9SZWN0KCku
dHJhbnNsYXRlZChRUG9pbnQoMCwtNTApKSwgY3VycmVudE1pY3JvRm9jdXMudG9SZWN0KCkpOwor
ICAgIFFDT01QQVJFKGluaXRpYWxNaWNyb0ZvY3VzLnRvUmVjdCgpLnRyYW5zbGF0ZWQoUVBvaW50
KDAsIC01MCkpLCBjdXJyZW50TWljcm9Gb2N1cy50b1JlY3QoKSk7CiB9CiAKIHZvaWQgdHN0X1FX
ZWJWaWV3Ojpmb2N1c0lucHV0VHlwZXMoKQpAQCAtMzA2LDYgKzMwNSwyNzcgQEAgdm9pZCB0c3Rf
UVdlYlZpZXc6OmZvY3VzSW5wdXRUeXBlcygpCiAgICAgUVZFUklGWSh3ZWJWaWV3LnRlc3RBdHRy
aWJ1dGUoUXQ6OldBX0lucHV0TWV0aG9kRW5hYmxlZCkpOwogfQogCisvLyBSZW5kZXIgYSBRV2Vi
VmlldyB0byBhIFFJbWFnZSB0d2ljZSwgZWFjaCB0aW1lIHdpdGggYSBkaWZmZXJlbnQgcGFsZXR0
ZSBzZXQsIAorLy8gdmVyaWZ5IHRoYXQgaW1hZ2VzIHJlbmRlcmVkIGFyZSBub3QgdGhlIHNhbWUs
IGNvbmZpcm1pbmcgV2ViQ29yZSB1c2FnZSBvZiAKKy8vIGN1c3RvbSBwYWxldHRlIG9uIHNlbGVj
dGlvbnMuICBUaGlzIHNlcXVlbmNlIGRvbmUgZm9yIGFsbCBjb21iaW4uIG9mIGFjdGl2ZQorLy8g
YW5kIGluYWN0aXZlIFFXZWJWaWV3IGFuZCBoaWdobGlnaHRlZCBGRyBhbmQgQkcsIHJlc3VsdGlu
ZyBpbiA0IGFzc2VydGlvbnMuCit2b2lkIHRzdF9RV2ViVmlldzo6c2V0UGFsZXR0ZSgpCit7Cisg
ICAgUVN0cmluZyBodG1sID0gIjxodG1sPjxoZWFkPjwvaGVhZD4iCisgICAgICAgICAgICAgICAg
ICAgIjxib2R5PiIKKyAgICAgICAgICAgICAgICAgICAiU29tZSB0ZXh0IGhlcmUiCisgICAgICAg
ICAgICAgICAgICAgIjwvYm9keT4iCisgICAgICAgICAgICAgICAgICAgIjwvaHRtbD4iOworCisg
ICAgLy8gdXNlIGNvbnRyb2xWaWV3IHRvIG1hbmFnZSBhY3RpdmUvaW5hY3RpdmUgc3RhdGUgb2Yg
dGVzdCB2aWV3cyBieSByYWlzaW5nCisgICAgLy8gb3IgbG93ZXJpbmcgdGhlaXIgcG9zaXRpb24g
aW4gdGhlIHdpbmRvdyBzdGFjay4KKyAgICBRV2ViVmlldyBjb250cm9sVmlldzsKKyAgICBjb250
cm9sVmlldy5zZXRIdG1sKGh0bWwpOworCisgICAgLy8gVGVzdCAxOiAgQkVHSU46ICBTZWxlY3Rp
b24gYmFja2dyb3VuZCBjb2xvciBvbiBhY3RpdmUgUVdlYlZpZXcgICAKKyAgICBRV2ViVmlldyB2
aWV3QWN0aXZlUmVkQmc7CisKKyAgICBRUGFsZXR0ZSBwYWxSZWRIbDsKKyAgICBRQnJ1c2ggYnJ1
c2hSZWRIbChRQ29sb3IoUXQ6OnJlZCkpOyAKKyAgICBicnVzaFJlZEhsLnNldFN0eWxlKFF0OjpT
b2xpZFBhdHRlcm4pOworICAgIHBhbFJlZEhsLnNldEJydXNoKFFQYWxldHRlOjpBY3RpdmUsIFFQ
YWxldHRlOjpIaWdobGlnaHQsIGJydXNoUmVkSGwpOworCisgICAgdmlld0FjdGl2ZVJlZEJnLnNl
dFBhbGV0dGUocGFsUmVkSGwpOworICAgIHZpZXdBY3RpdmVSZWRCZy5zZXRIdG1sKGh0bWwpOwor
ICAgIHZpZXdBY3RpdmVSZWRCZy5wYWdlKCktPnNldFZpZXdwb3J0U2l6ZSh2aWV3QWN0aXZlUmVk
QmcucGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+Y29udGVudHNTaXplKCkpOworICAgIHZpZXdBY3Rp
dmVSZWRCZy5zaG93KCk7CisKKyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmdmlld0Fj
dGl2ZVJlZEJnKTsKKworICAgIHZpZXdBY3RpdmVSZWRCZy5hY3RpdmF0ZVdpbmRvdygpOworICAg
IHZpZXdBY3RpdmVSZWRCZy5wYWdlKCktPnRyaWdnZXJBY3Rpb24oUVdlYlBhZ2U6OlNlbGVjdEFs
bCk7CisKKyAgICAvLyByZW5kZXJlZCBpbWFnZSBtdXN0IGhhdmUgcmVkIGJhY2tncm91bmQgb24g
YW4gYWN0aXZlIFFXZWJWaWV3CisgICAgUUltYWdlIGltZ0FjdGl2ZVJlZEJnKHZpZXdBY3RpdmVS
ZWRCZy5wYWdlKCktPnZpZXdwb3J0U2l6ZSgpLCBRSW1hZ2U6OkZvcm1hdF9BUkdCMzIpOworICAg
IFFQYWludGVyIHBhaW50QWN0aXZlUmVkQmcoJmltZ0FjdGl2ZVJlZEJnKTsKKyAgICB2aWV3QWN0
aXZlUmVkQmcucGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+cmVuZGVyKCZwYWludEFjdGl2ZVJlZEJn
KTsKKyAgICBwYWludEFjdGl2ZVJlZEJnLmVuZCgpOworICAgIFFTdHJpbmcgc3RyQWN0aXZlUmVk
Qmc9ImFjdGl2ZVJlZEJnLnBuZyI7CisgICAgaW1nQWN0aXZlUmVkQmcuc2F2ZShzdHJBY3RpdmVS
ZWRCZyk7CisKKyAgICB2aWV3QWN0aXZlUmVkQmcuY2xvc2UoKTsKKworICAgIFFXZWJWaWV3IHZp
ZXdBY3RpdmVCbHVlQmc7CisKKyAgICBRUGFsZXR0ZSBwYWxCbHVlSGw7CisgICAgUUJydXNoIGJy
dXNoQmx1ZUhsKFFDb2xvcihRdDo6Ymx1ZSkpOyAKKyAgICBicnVzaEJsdWVIbC5zZXRTdHlsZShR
dDo6U29saWRQYXR0ZXJuKTsKKyAgICBwYWxCbHVlSGwuc2V0QnJ1c2goUVBhbGV0dGU6OkFjdGl2
ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodCwgYnJ1c2hCbHVlSGwpOworCisgICAgdmlld0FjdGl2ZUJs
dWVCZy5zZXRQYWxldHRlKHBhbEJsdWVIbCk7CisgICAgdmlld0FjdGl2ZUJsdWVCZy5zZXRIdG1s
KGh0bWwpOworICAgIHZpZXdBY3RpdmVCbHVlQmcucGFnZSgpLT5zZXRWaWV3cG9ydFNpemUodmll
d0FjdGl2ZUJsdWVCZy5wYWdlKCktPmN1cnJlbnRGcmFtZSgpLT5jb250ZW50c1NpemUoKSk7Cisg
ICAgdmlld0FjdGl2ZUJsdWVCZy5zaG93KCk7CisKKyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dT
aG93bigmdmlld0FjdGl2ZUJsdWVCZyk7CisKKyAgICB2aWV3QWN0aXZlQmx1ZUJnLmFjdGl2YXRl
V2luZG93KCk7CisgICAgdmlld0FjdGl2ZUJsdWVCZy5wYWdlKCktPnRyaWdnZXJBY3Rpb24oUVdl
YlBhZ2U6OlNlbGVjdEFsbCk7CisKKyAgICAvLyByZW5kZXJlZCBpbWFnZSBtdXN0IGhhdmUgYmx1
ZSBiYWNrZ3JvdW5kIG9uIGFuIGFjdGl2ZSBRV2ViVmlldworICAgIFFJbWFnZSBpbWdBY3RpdmVC
bHVlQmcodmlld0FjdGl2ZUJsdWVCZy5wYWdlKCktPnZpZXdwb3J0U2l6ZSgpLCBRSW1hZ2U6OkZv
cm1hdF9BUkdCMzIpOworICAgIFFQYWludGVyIHBhaW50QWN0aXZlQmx1ZUJnKCZpbWdBY3RpdmVC
bHVlQmcpOworICAgIHZpZXdBY3RpdmVCbHVlQmcucGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+cmVu
ZGVyKCZwYWludEFjdGl2ZUJsdWVCZyk7CisgICAgcGFpbnRBY3RpdmVCbHVlQmcuZW5kKCk7CisK
KyAgICBRU3RyaW5nIHN0ckFjdGl2ZUJsdWVCZz0iYWN0aXZlQmx1ZUJnLnBuZyI7CisgICAgaW1n
QWN0aXZlQmx1ZUJnLnNhdmUoc3RyQWN0aXZlQmx1ZUJnKTsKKworICAgIHZpZXdBY3RpdmVCbHVl
QmcuY2xvc2UoKTsKKworICAgIFFWRVJJRlkoaW1nQWN0aXZlQmx1ZUJnICE9IGltZ0FjdGl2ZVJl
ZEJnKTsKKyAgICAvLyBUZXN0IDE6ICBFTkQ6ICBTZWxlY3Rpb24gYmFja2dyb3VuZCBjb2xvciBv
biBhY3RpdmUgUVdlYlZpZXcgCisKKyAgICAvLyBUZXN0IDI6ICBCRUdJTjogIFNlbGVjdGlvbiBi
YWNrZ3JvdW5kIGNvbG9yIG9uIGFuIGluYWN0aXZlIFFXZWJWaWV3ICAgCisgICAgUVdlYlZpZXcg
dmlld0luYWN0aXZlQ3lhbkJnOworCisgICAgUVBhbGV0dGUgcGFsQ3lhbkhsOworICAgIFFCcnVz
aCBicnVzaEN5YW5IbChRQ29sb3IoUXQ6OmN5YW4pKTsgCisgICAgYnJ1c2hDeWFuSGwuc2V0U3R5
bGUoUXQ6OlNvbGlkUGF0dGVybik7CisgICAgcGFsQ3lhbkhsLnNldEJydXNoKFFQYWxldHRlOjpJ
bmFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodCwgYnJ1c2hDeWFuSGwpOworCisgICAgdmlld0lu
YWN0aXZlQ3lhbkJnLnNldFBhbGV0dGUocGFsQ3lhbkhsKTsKKyAgICB2aWV3SW5hY3RpdmVDeWFu
Qmcuc2V0SHRtbChodG1sKTsKKyAgICB2aWV3SW5hY3RpdmVDeWFuQmcucGFnZSgpLT5zZXRWaWV3
cG9ydFNpemUodmlld0luYWN0aXZlQ3lhbkJnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPmNvbnRl
bnRzU2l6ZSgpKTsKKyAgICB2aWV3SW5hY3RpdmVDeWFuQmcuc2hvdygpOworCisgICAgUVRlc3Q6
OnFXYWl0Rm9yV2luZG93U2hvd24oJnZpZXdJbmFjdGl2ZUN5YW5CZyk7IAorCisgICAgY29udHJv
bFZpZXcuc2hvdygpOworICAgIGNvbnRyb2xWaWV3LmFjdGl2YXRlV2luZG93KCk7CisKKyAgICBR
VGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmY29udHJvbFZpZXcpOyAKKworICAgIHZpZXdJbmFj
dGl2ZUN5YW5CZy5wYWdlKCktPnRyaWdnZXJBY3Rpb24oUVdlYlBhZ2U6OlNlbGVjdEFsbCk7CisK
KyAgICBRSW1hZ2UgaW1nSW5hY3RpdmVDeWFuQmcodmlld0luYWN0aXZlQ3lhbkJnLnBhZ2UoKS0+
dmlld3BvcnRTaXplKCksIFFJbWFnZTo6Rm9ybWF0X0FSR0IzMik7CisgICAgUVBhaW50ZXIgcGFp
bnRJbmFjdGl2ZUN5YW5CZygmaW1nSW5hY3RpdmVDeWFuQmcpOworICAgIHZpZXdJbmFjdGl2ZUN5
YW5CZy5wYWdlKCktPmN1cnJlbnRGcmFtZSgpLT5yZW5kZXIoJnBhaW50SW5hY3RpdmVDeWFuQmcp
OworICAgIHBhaW50SW5hY3RpdmVDeWFuQmcuZW5kKCk7CisgICAgLy8gcmVuZGVyZWQgaW1hZ2Ug
bXVzdCBoYXZlIGN5YW4gYmFja2dyb3VuZCBvbiBhbiBpbmFjdGl2ZSBRV2ViVmlldworICAgIFFT
dHJpbmcgc3RySW5hY3RpdmVDeWFuQmc9ImluYWN0aXZlQ3lhbkJnLnBuZyI7CisgICAgaW1nSW5h
Y3RpdmVDeWFuQmcuc2F2ZShzdHJJbmFjdGl2ZUN5YW5CZyk7CisgCisgICAgY29udHJvbFZpZXcu
Y2xvc2UoKTsKKyAgICB2aWV3SW5hY3RpdmVDeWFuQmcuY2xvc2UoKTsKKworICAgIFFXZWJWaWV3
IHZpZXdJbmFjdGl2ZU1hZ2VudGFCZzsKKworICAgIFFQYWxldHRlIHBhbE1hZ2VudGFIbDsKKyAg
ICBRQnJ1c2ggYnJ1c2hNYWdlbnRhSGwoUUNvbG9yKFF0OjptYWdlbnRhKSk7IAorICAgIGJydXNo
TWFnZW50YUhsLnNldFN0eWxlKFF0OjpTb2xpZFBhdHRlcm4pOworICAgIHBhbE1hZ2VudGFIbC5z
ZXRCcnVzaChRUGFsZXR0ZTo6SW5hY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHQsIGJydXNoTWFn
ZW50YUhsKTsKKworICAgIHZpZXdJbmFjdGl2ZU1hZ2VudGFCZy5zZXRQYWxldHRlKHBhbE1hZ2Vu
dGFIbCk7CisgICAgdmlld0luYWN0aXZlTWFnZW50YUJnLnNldEh0bWwoaHRtbCk7CisgICAgdmll
d0luYWN0aXZlTWFnZW50YUJnLnBhZ2UoKS0+c2V0Vmlld3BvcnRTaXplKHZpZXdJbmFjdGl2ZU1h
Z2VudGFCZy5wYWdlKCktPmN1cnJlbnRGcmFtZSgpLT5jb250ZW50c1NpemUoKSk7CisgICAgdmll
d0luYWN0aXZlTWFnZW50YUJnLnNob3coKTsKKworICAgIFFUZXN0OjpxV2FpdEZvcldpbmRvd1No
b3duKCZ2aWV3SW5hY3RpdmVNYWdlbnRhQmcpOworCisgICAgY29udHJvbFZpZXcuc2hvdygpOwor
ICAgIGNvbnRyb2xWaWV3LmFjdGl2YXRlV2luZG93KCk7CisKKyAgICBRVGVzdDo6cVdhaXRGb3JX
aW5kb3dTaG93bigmY29udHJvbFZpZXcpOyAKKworICAgIHZpZXdJbmFjdGl2ZU1hZ2VudGFCZy5w
YWdlKCktPnRyaWdnZXJBY3Rpb24oUVdlYlBhZ2U6OlNlbGVjdEFsbCk7CisKKyAgICBRSW1hZ2Ug
aW1nSW5hY3RpdmVNYWdlbnRhQmcodmlld0luYWN0aXZlTWFnZW50YUJnLnBhZ2UoKS0+dmlld3Bv
cnRTaXplKCksIFFJbWFnZTo6Rm9ybWF0X0FSR0IzMik7CisgICAgUVBhaW50ZXIgcGFpbnRJbmFj
dGl2ZU1hZ2VudGFCZygmaW1nSW5hY3RpdmVNYWdlbnRhQmcpOworICAgIHZpZXdJbmFjdGl2ZU1h
Z2VudGFCZy5wYWdlKCktPmN1cnJlbnRGcmFtZSgpLT5yZW5kZXIoJnBhaW50SW5hY3RpdmVNYWdl
bnRhQmcpOworICAgIHBhaW50SW5hY3RpdmVNYWdlbnRhQmcuZW5kKCk7CisgICAgLy8gcmVuZGVy
ZWQgaW1hZ2UgbXVzdCBoYXZlIG1hZ2VudGEgYmFja2dyb3VuZCBvbiBhbiBpbmFjdGl2ZSBRV2Vi
VmlldworICAgIFFTdHJpbmcgc3RySW5hY3RpdmVNYWdlbnRhQmc9ImluYWN0aXZlTWFnZW50YUJn
LnBuZyI7CisgICAgaW1nSW5hY3RpdmVNYWdlbnRhQmcuc2F2ZShzdHJJbmFjdGl2ZU1hZ2VudGFC
Zyk7CisKKyAgICBjb250cm9sVmlldy5jbG9zZSgpOworICAgIHZpZXdJbmFjdGl2ZU1hZ2VudGFC
Zy5jbG9zZSgpOworCisgICAgUVZFUklGWShpbWdJbmFjdGl2ZUN5YW5CZyAhPSBpbWdJbmFjdGl2
ZU1hZ2VudGFCZyk7CisgICAgLy8gVGVzdCAyOiAgRU5EOiAgU2VsZWN0aW9uIGJhY2tncm91bmQg
Y29sb3Igb24gYW4gaW5hY3RpdmUgUVdlYlZpZXcgICAKKworICAgIC8vIFRlc3QgMzogIEJFR0lO
OiAgU2VsZWN0aW9uIGZvcmVncm91bmQgY29sb3Igb24gYW4gYWN0aXZlIFFXZWJWaWV3ICAgCisg
ICAgUVdlYlZpZXcgdmlld0FjdGl2ZUJsYWNrRmc7CisKKyAgICBRUGFsZXR0ZSBwYWxCbGFja0hs
VGV4dDsKKyAgICBRQnJ1c2ggYnJ1c2hCbGFja0hsVGV4dChRQ29sb3IoUXQ6OmJsYWNrKSk7IAor
ICAgIGJydXNoQmxhY2tIbFRleHQuc2V0U3R5bGUoUXQ6OlNvbGlkUGF0dGVybik7CisgICAgcGFs
QmxhY2tIbFRleHQuc2V0QnJ1c2goUVBhbGV0dGU6OkFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdo
dGVkVGV4dCwgYnJ1c2hCbGFja0hsVGV4dCk7CisKKyAgICB2aWV3QWN0aXZlQmxhY2tGZy5zZXRQ
YWxldHRlKHBhbEJsYWNrSGxUZXh0KTsKKyAgICB2aWV3QWN0aXZlQmxhY2tGZy5zZXRIdG1sKGh0
bWwpOworICAgIHZpZXdBY3RpdmVCbGFja0ZnLnBhZ2UoKS0+c2V0Vmlld3BvcnRTaXplKHZpZXdB
Y3RpdmVCbGFja0ZnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPmNvbnRlbnRzU2l6ZSgpKTsKKyAg
ICB2aWV3QWN0aXZlQmxhY2tGZy5zaG93KCk7CisKKyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dT
aG93bigmdmlld0FjdGl2ZUJsYWNrRmcpOworCisgICAgdmlld0FjdGl2ZUJsYWNrRmcuYWN0aXZh
dGVXaW5kb3coKTsKKyAgICB2aWV3QWN0aXZlQmxhY2tGZy5wYWdlKCktPnRyaWdnZXJBY3Rpb24o
UVdlYlBhZ2U6OlNlbGVjdEFsbCk7CisKKyAgICBRSW1hZ2UgaW1nQWN0aXZlQmxhY2tGZyh2aWV3
QWN0aXZlQmxhY2tGZy5wYWdlKCktPnZpZXdwb3J0U2l6ZSgpLCBRSW1hZ2U6OkZvcm1hdF9BUkdC
MzIpOworICAgIFFQYWludGVyIHBhaW50QWN0aXZlQmxhY2tGZygmaW1nQWN0aXZlQmxhY2tGZyk7
CisgICAgdmlld0FjdGl2ZUJsYWNrRmcucGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+cmVuZGVyKCZw
YWludEFjdGl2ZUJsYWNrRmcpOworICAgIHBhaW50QWN0aXZlQmxhY2tGZy5lbmQoKTsKKyAgICAv
LyByZW5kZXJlZCBpbWFnZSBtdXN0IGhhdmUgYmxhY2sgZm9yZWdyb3VuZCBvbiBhbiBhY3RpdmUg
UVdlYlZpZXcKKyAgICBRU3RyaW5nIHN0ckFjdGl2ZUJsYWNrRmc9ImFjdGl2ZUJsYWNrRmcucG5n
IjsKKyAgICBpbWdBY3RpdmVCbGFja0ZnLnNhdmUoc3RyQWN0aXZlQmxhY2tGZyk7CisKKyAgICB2
aWV3QWN0aXZlQmxhY2tGZy5jbG9zZSgpOworCisgICAgUVdlYlZpZXcgdmlld0FjdGl2ZUdyZWVu
Rmc7CisKKyAgICBRUGFsZXR0ZSBwYWxHcmVlbkhsVGV4dDsKKyAgICBRQnJ1c2ggYnJ1c2hHcmVl
bkhsVGV4dChRQ29sb3IoUXQ6OmdyZWVuKSk7IAorICAgIGJydXNoR3JlZW5IbFRleHQuc2V0U3R5
bGUoUXQ6OlNvbGlkUGF0dGVybik7CisgICAgcGFsR3JlZW5IbFRleHQuc2V0QnJ1c2goUVBhbGV0
dGU6OkFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodGVkVGV4dCwgYnJ1c2hHcmVlbkhsVGV4dCk7
CisKKyAgICB2aWV3QWN0aXZlR3JlZW5GZy5zZXRQYWxldHRlKHBhbEdyZWVuSGxUZXh0KTsKKyAg
ICB2aWV3QWN0aXZlR3JlZW5GZy5zZXRIdG1sKGh0bWwpOworICAgIHZpZXdBY3RpdmVHcmVlbkZn
LnBhZ2UoKS0+c2V0Vmlld3BvcnRTaXplKHZpZXdBY3RpdmVHcmVlbkZnLnBhZ2UoKS0+Y3VycmVu
dEZyYW1lKCktPmNvbnRlbnRzU2l6ZSgpKTsKKyAgICB2aWV3QWN0aXZlR3JlZW5GZy5zaG93KCk7
CisKKyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmdmlld0FjdGl2ZUdyZWVuRmcpOwor
CisgICAgdmlld0FjdGl2ZUdyZWVuRmcuYWN0aXZhdGVXaW5kb3coKTsKKyAgICB2aWV3QWN0aXZl
R3JlZW5GZy5wYWdlKCktPnRyaWdnZXJBY3Rpb24oUVdlYlBhZ2U6OlNlbGVjdEFsbCk7CisKKyAg
ICBRSW1hZ2UgaW1nQWN0aXZlR3JlZW5GZyh2aWV3QWN0aXZlR3JlZW5GZy5wYWdlKCktPnZpZXdw
b3J0U2l6ZSgpLCBRSW1hZ2U6OkZvcm1hdF9BUkdCMzIpOworICAgIFFQYWludGVyIHBhaW50QWN0
aXZlR3JlZW5GZygmaW1nQWN0aXZlR3JlZW5GZyk7CisgICAgdmlld0FjdGl2ZUdyZWVuRmcucGFn
ZSgpLT5jdXJyZW50RnJhbWUoKS0+cmVuZGVyKCZwYWludEFjdGl2ZUdyZWVuRmcpOworICAgIHBh
aW50QWN0aXZlR3JlZW5GZy5lbmQoKTsKKyAgICAvLyByZW5kZXJlZCBpbWFnZSBtdXN0IGhhdmUg
Z3JlZW4gZm9yZWdyb3VuZCBvbiBhbiBhY3RpdmUgUVdlYlZpZXcKKyAgICBRU3RyaW5nIHN0ckFj
dGl2ZUdyZWVuRmc9ImFjdGl2ZUdyZWVuRmcucG5nIjsKKyAgICBpbWdBY3RpdmVHcmVlbkZnLnNh
dmUoc3RyQWN0aXZlR3JlZW5GZyk7CisKKyAgICB2aWV3QWN0aXZlR3JlZW5GZy5jbG9zZSgpOwor
CisgICAgUVZFUklGWShpbWdBY3RpdmVCbGFja0ZnICE9IGltZ0FjdGl2ZUdyZWVuRmcpOworICAg
IC8vIFRlc3QgMzogIEVORDogIFNlbGVjdGlvbiBmb3JlZ3JvdW5kIGNvbG9yIG9uIGFjdGl2ZSBR
V2ViVmlldyAgIAorCisgICAgLy8gVGVzdCA0OiAgQkVHSU46ICBTZWxlY3Rpb24gZm9yZWdyb3Vu
ZCBjb2xvciBvbiBhbiBpbmFjdGl2ZSBRV2ViVmlldyAgIAorICAgIFFXZWJWaWV3IHZpZXdJbmFj
dGl2ZUdyYXlGZzsKKworICAgIFFQYWxldHRlIHBhbEdyYXlIbFRleHQ7CisgICAgUUJydXNoIGJy
dXNoR3JheUhsVGV4dChRQ29sb3IoUXQ6OmdyYXkpKTsgCisgICAgYnJ1c2hHcmF5SGxUZXh0LnNl
dFN0eWxlKFF0OjpTb2xpZFBhdHRlcm4pOworICAgIHBhbEdyYXlIbFRleHQuc2V0QnJ1c2goUVBh
bGV0dGU6OkluYWN0aXZlLCBRUGFsZXR0ZTo6SGlnaGxpZ2h0ZWRUZXh0LCBicnVzaEdyYXlIbFRl
eHQpOworCisgICAgdmlld0luYWN0aXZlR3JheUZnLnNldFBhbGV0dGUocGFsR3JheUhsVGV4dCk7
CisgICAgdmlld0luYWN0aXZlR3JheUZnLnNldEh0bWwoaHRtbCk7CisgICAgdmlld0luYWN0aXZl
R3JheUZnLnBhZ2UoKS0+c2V0Vmlld3BvcnRTaXplKHZpZXdJbmFjdGl2ZUdyYXlGZy5wYWdlKCkt
PmN1cnJlbnRGcmFtZSgpLT5jb250ZW50c1NpemUoKSk7CisgICAgdmlld0luYWN0aXZlR3JheUZn
LnNob3coKTsKKworICAgIFFUZXN0OjpxV2FpdEZvcldpbmRvd1Nob3duKCZ2aWV3SW5hY3RpdmVH
cmF5RmcpOworCisgICAgY29udHJvbFZpZXcuc2hvdygpOworICAgIGNvbnRyb2xWaWV3LmFjdGl2
YXRlV2luZG93KCk7CisKKyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmY29udHJvbFZp
ZXcpOyAKKworICAgIHZpZXdJbmFjdGl2ZUdyYXlGZy5wYWdlKCktPnRyaWdnZXJBY3Rpb24oUVdl
YlBhZ2U6OlNlbGVjdEFsbCk7CisKKyAgICBRSW1hZ2UgaW1nSW5hY3RpdmVHcmF5Rmcodmlld0lu
YWN0aXZlR3JheUZnLnBhZ2UoKS0+dmlld3BvcnRTaXplKCksIFFJbWFnZTo6Rm9ybWF0X0FSR0Iz
Mik7CisgICAgUVBhaW50ZXIgcGFpbnRJbmFjdGl2ZUdyYXlGZygmaW1nSW5hY3RpdmVHcmF5Rmcp
OworICAgIHZpZXdJbmFjdGl2ZUdyYXlGZy5wYWdlKCktPmN1cnJlbnRGcmFtZSgpLT5yZW5kZXIo
JnBhaW50SW5hY3RpdmVHcmF5RmcpOworICAgIHBhaW50SW5hY3RpdmVHcmF5RmcuZW5kKCk7Cisg
ICAgLy8gcmVuZGVyZWQgaW1hZ2UgbXVzdCBoYXZlIGdyYXkgZm9yZWdyb3VuZCBvbiBhbiBpbmFj
dGl2ZSBRV2ViVmlldworICAgIFFTdHJpbmcgc3RySW5hY3RpdmVHcmF5Rmc9ImluYWN0aXZlR3Jh
eUZnLnBuZyI7CisgICAgaW1nSW5hY3RpdmVHcmF5Rmcuc2F2ZShzdHJJbmFjdGl2ZUdyYXlGZyk7
CisKKyAgICBjb250cm9sVmlldy5jbG9zZSgpOworICAgIHZpZXdJbmFjdGl2ZUdyYXlGZy5jbG9z
ZSgpOworCisgICAgUVdlYlZpZXcgdmlld0luYWN0aXZlWWVsbG93Rmc7CisKKyAgICBRUGFsZXR0
ZSBwYWxZZWxsb3dIbFRleHQ7CisgICAgUUJydXNoIGJydXNoWWVsbG93SGxUZXh0KFFDb2xvcihR
dDo6eWVsbG93KSk7IAorICAgIGJydXNoWWVsbG93SGxUZXh0LnNldFN0eWxlKFF0OjpTb2xpZFBh
dHRlcm4pOworICAgIHBhbFllbGxvd0hsVGV4dC5zZXRCcnVzaChRUGFsZXR0ZTo6SW5hY3RpdmUs
IFFQYWxldHRlOjpIaWdobGlnaHRlZFRleHQsIGJydXNoWWVsbG93SGxUZXh0KTsKKworICAgIHZp
ZXdJbmFjdGl2ZVllbGxvd0ZnLnNldFBhbGV0dGUocGFsWWVsbG93SGxUZXh0KTsKKyAgICB2aWV3
SW5hY3RpdmVZZWxsb3dGZy5zZXRIdG1sKGh0bWwpOworICAgIHZpZXdJbmFjdGl2ZVllbGxvd0Zn
LnBhZ2UoKS0+c2V0Vmlld3BvcnRTaXplKHZpZXdJbmFjdGl2ZVllbGxvd0ZnLnBhZ2UoKS0+Y3Vy
cmVudEZyYW1lKCktPmNvbnRlbnRzU2l6ZSgpKTsKKyAgICB2aWV3SW5hY3RpdmVZZWxsb3dGZy5z
aG93KCk7CisKKyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmdmlld0luYWN0aXZlWWVs
bG93RmcpOworCisgICAgY29udHJvbFZpZXcuc2hvdygpOworICAgIGNvbnRyb2xWaWV3LmFjdGl2
YXRlV2luZG93KCk7CisKKyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmY29udHJvbFZp
ZXcpOyAKKworICAgIHZpZXdJbmFjdGl2ZVllbGxvd0ZnLnBhZ2UoKS0+dHJpZ2dlckFjdGlvbihR
V2ViUGFnZTo6U2VsZWN0QWxsKTsKKworICAgIFFJbWFnZSBpbWdJbmFjdGl2ZVllbGxvd0ZnKHZp
ZXdJbmFjdGl2ZVllbGxvd0ZnLnBhZ2UoKS0+dmlld3BvcnRTaXplKCksIFFJbWFnZTo6Rm9ybWF0
X0FSR0IzMik7CisgICAgUVBhaW50ZXIgcGFpbnRJbmFjdGl2ZVllbGxvd0ZnKCZpbWdJbmFjdGl2
ZVllbGxvd0ZnKTsKKyAgICB2aWV3SW5hY3RpdmVZZWxsb3dGZy5wYWdlKCktPmN1cnJlbnRGcmFt
ZSgpLT5yZW5kZXIoJnBhaW50SW5hY3RpdmVZZWxsb3dGZyk7CisgICAgcGFpbnRJbmFjdGl2ZVll
bGxvd0ZnLmVuZCgpOworICAgIC8vIHJlbmRlcmVkIGltYWdlIG11c3QgaGF2ZSB5ZWxsb3cgZm9y
ZWdyb3VuZCBvbiBhbiBpbmFjdGl2ZSBRV2ViVmlldworICAgIFFTdHJpbmcgc3RySW5hY3RpdmVZ
ZWxsb3dGZz0iaW5hY3RpdmVZZWxsb3dGZy5wbmciOworICAgIGltZ0luYWN0aXZlWWVsbG93Rmcu
c2F2ZShzdHJJbmFjdGl2ZVllbGxvd0ZnKTsKKworICAgIGNvbnRyb2xWaWV3LmNsb3NlKCk7Cisg
ICAgdmlld0luYWN0aXZlWWVsbG93RmcuY2xvc2UoKTsKKworICAgIFFWRVJJRlkoaW1nSW5hY3Rp
dmVHcmF5RmcgIT0gaW1nSW5hY3RpdmVZZWxsb3dGZyk7CisgICAgLy8gVGVzdCA0OiAgRU5EOiAg
U2VsZWN0aW9uIGZvcmVncm91bmQgY29sb3Igb24gaW5hY3RpdmUgUVdlYlZpZXcgICAKK30KKwog
UVRFU1RfTUFJTih0c3RfUVdlYlZpZXcpCiAjaW5jbHVkZSAidHN0X3F3ZWJ2aWV3Lm1vYyIKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81390</attachid>
            <date>2011-02-05 22:02:56 -0800</date>
            <delta_ts>2011-02-09 17:15:29 -0800</delta_ts>
            <desc>more tab removals</desc>
            <filename>31742_6Feb2011.patch</filename>
            <type>text/plain</type>
            <size>17277</size>
            <attacher name="Fabrizio">fabrizio.machado</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3NzU5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDItMDUgIEZhYnJpemlv
IE1hY2hhZG8gIDxmYWJyaXppby5tYWNoYWRvQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgY3VzdG9tIFFXZWJWaWV3IHBhbGV0
dGUgaWYgYXBwbGljYXRpb24gcHJvdmlkZXMgb25lLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE3NDIKKworICAgICAgICBDYW5ub3QgYmUgdGVzdGVk
IGZyb20gbGF5b3V0IHRlc3RzIChjb25maXJtZWQgbm8gcmVncmVzc2lvbikuCisgICAgICAgIFRl
c3RzIGFkZGVkIGluIGF1dG90ZXN0cyB1bmRlciBXZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtQWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtSW5hY3RpdmVTZWxl
Y3Rpb25CYWNrZ3JvdW5kQ29sb3IpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6
cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xv
cik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVF0OjpwbGF0Zm9ybUZvY3VzUmluZ0Nv
bG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OmNhcmV0QmxpbmtJbnRlcnZh
bCk6CisKIDIwMTEtMDItMDUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCShyZXZpc2lvbiA3NzYyOCkKKysrIFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0z
ODAsMzAgKzM4MCwzNSBAQCB2b2lkIFJlbmRlclRoZW1lUXQ6OmFkanVzdFJlcGFpbnRSZWN0KGNv
CiBDb2xvciBSZW5kZXJUaGVtZVF0OjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRD
b2xvcigpIGNvbnN0CiB7CiAgICAgUVBhbGV0dGUgcGFsID0gUUFwcGxpY2F0aW9uOjpwYWxldHRl
KCk7CisgICAgc2V0UGFsZXR0ZUZyb21QYWdlQ2xpZW50SWZFeGlzdHMocGFsKTsKICAgICByZXR1
cm4gcGFsLmJydXNoKFFQYWxldHRlOjpBY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHQpLmNvbG9y
KCk7CiB9CiAKIENvbG9yIFJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25C
YWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogewogICAgIFFQYWxldHRlIHBhbCA9IFFBcHBsaWNhdGlv
bjo6cGFsZXR0ZSgpOworICAgIHNldFBhbGV0dGVGcm9tUGFnZUNsaWVudElmRXhpc3RzKHBhbCk7
CiAgICAgcmV0dXJuIHBhbC5icnVzaChRUGFsZXR0ZTo6SW5hY3RpdmUsIFFQYWxldHRlOjpIaWdo
bGlnaHQpLmNvbG9yKCk7CiB9CiAKIENvbG9yIFJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtQWN0aXZl
U2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKIHsKICAgICBRUGFsZXR0ZSBwYWwgPSBR
QXBwbGljYXRpb246OnBhbGV0dGUoKTsKKyAgICBzZXRQYWxldHRlRnJvbVBhZ2VDbGllbnRJZkV4
aXN0cyhwYWwpOwogICAgIHJldHVybiBwYWwuYnJ1c2goUVBhbGV0dGU6OkFjdGl2ZSwgUVBhbGV0
dGU6OkhpZ2hsaWdodGVkVGV4dCkuY29sb3IoKTsKIH0KIAogQ29sb3IgUmVuZGVyVGhlbWVRdDo6
cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAg
UVBhbGV0dGUgcGFsID0gUUFwcGxpY2F0aW9uOjpwYWxldHRlKCk7CisgICAgc2V0UGFsZXR0ZUZy
b21QYWdlQ2xpZW50SWZFeGlzdHMocGFsKTsKICAgICByZXR1cm4gcGFsLmJydXNoKFFQYWxldHRl
OjpJbmFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodGVkVGV4dCkuY29sb3IoKTsKIH0KIAogQ29s
b3IgUmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcigpIGNvbnN0CiB7CiAgICAg
UVBhbGV0dGUgcGFsID0gUUFwcGxpY2F0aW9uOjpwYWxldHRlKCk7CisgICAgc2V0UGFsZXR0ZUZy
b21QYWdlQ2xpZW50SWZFeGlzdHMocGFsKTsKICAgICByZXR1cm4gcGFsLmJydXNoKFFQYWxldHRl
OjpBY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHQpLmNvbG9yKCk7CiB9CiAKQEAgLTE0MjYsNyAr
MTQzMSw3IEBAIHZvaWQgUmVuZGVyVGhlbWVRdDo6YWRqdXN0U2xpZGVyVGh1bWJTaXoKIAogZG91
YmxlIFJlbmRlclRoZW1lUXQ6OmNhcmV0QmxpbmtJbnRlcnZhbCgpIGNvbnN0CiB7Ci0gICAgcmV0
dXJuICBRQXBwbGljYXRpb246OmN1cnNvckZsYXNoVGltZSgpIC8gMTAwMC4wIC8gMi4wOworICAg
IHJldHVybiBRQXBwbGljYXRpb246OmN1cnNvckZsYXNoVGltZSgpIC8gMTAwMC4wIC8gMi4wOwog
fQogCiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gNzc3NTkpCisrKyBTb3VyY2UvV2Vi
S2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE4IEBACisyMDExLTAy
LTA1ICBGYWJyaXppbyBNYWNoYWRvICA8ZmFicml6aW8ubWFjaGFkb0Bub2tpYS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHMgZm9yIGJl
bG93IGJ1ZyBmaXg6CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0zMTc0MgorCisgICAgICAgIFRlc3RzIGFkZGVkIGluIGF1dG90ZXN0cyB1bmRlciBXZWJL
aXQvcXQvdGVzdHMvcXdlYnZpZXcuCisKKyAgICAgICAgKiB0ZXN0cy9xd2Vidmlldy90c3RfcXdl
YnZpZXcuY3BwOgorICAgICAgICAodHN0X1FXZWJWaWV3OjpyZXVzZVBhZ2UpOgorICAgICAgICAo
dHN0X1FXZWJWaWV3OjptaWNyb0ZvY3VzQ29vcmRpbmF0ZXMpOgorICAgICAgICAodHN0X1FXZWJW
aWV3Ojpmb2N1c0lucHV0VHlwZXMpOgorICAgICAgICAodHN0X1FXZWJWaWV3OjpzZXRQYWxldHRl
KToKKwogMjAxMS0wMi0wMyAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBQYXZlbCBGZWxkbWFuLgpJbmRleDogU291cmNlL1dlYktp
dC9xdC90ZXN0cy9xd2Vidmlldy90c3RfcXdlYnZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcAkocmV2aXNpb24gNzc2
MjgpCisrKyBTb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTE5LDIwICsxOSwxOSBAQAogICAgIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgogKi8KIAotI2luY2x1ZGUgPHF0ZXN0Lmg+CiAjaW5jbHVkZSAiLi4vdXRpbC5o
IgogCi0jaW5jbHVkZSA8cXBhaW50ZXIuaD4KLSNpbmNsdWRlIDxxd2Vidmlldy5oPgotI2luY2x1
ZGUgPHF3ZWJwYWdlLmg+Ci0jaW5jbHVkZSA8cW5ldHdvcmtyZXF1ZXN0Lmg+CiAjaW5jbHVkZSA8
cWRpcml0ZXJhdG9yLmg+Ci0jaW5jbHVkZSA8cXdlYmtpdHZlcnNpb24uaD4KKyNpbmNsdWRlIDxx
bmV0d29ya3JlcXVlc3QuaD4KKyNpbmNsdWRlIDxxcGFpbnRlci5oPgorI2luY2x1ZGUgPHF0ZXN0
Lmg+CiAjaW5jbHVkZSA8cXdlYmVsZW1lbnQuaD4KICNpbmNsdWRlIDxxd2ViZnJhbWUuaD4KKyNp
bmNsdWRlIDxxd2Via2l0dmVyc2lvbi5oPgorI2luY2x1ZGUgPHF3ZWJwYWdlLmg+CisjaW5jbHVk
ZSA8cXdlYnZpZXcuaD4KIAotY2xhc3MgdHN0X1FXZWJWaWV3IDogcHVibGljIFFPYmplY3QKLXsK
K2NsYXNzIHRzdF9RV2ViVmlldyA6IHB1YmxpYyBRT2JqZWN0IHsKICAgICBRX09CSkVDVAogCiBw
dWJsaWMgc2xvdHM6CkBAIC00OSw4ICs0OCw4IEBAIHByaXZhdGUgc2xvdHM6CiAgICAgdm9pZCBy
ZXVzZVBhZ2UoKTsKICAgICB2b2lkIG1pY3JvRm9jdXNDb29yZGluYXRlcygpOwogICAgIHZvaWQg
Zm9jdXNJbnB1dFR5cGVzKCk7Ci0KICAgICB2b2lkIGNyYXNoVGVzdHMoKTsKKyAgICB2b2lkIHNl
dFBhbGV0dGUoKTsKIH07CiAKIC8vIFRoaXMgd2lsbCBiZSBjYWxsZWQgYmVmb3JlIHRoZSBmaXJz
dCB0ZXN0IGZ1bmN0aW9uIGlzIGV4ZWN1dGVkLgpAQCAtMTQ0LDkgKzE0Myw5IEBAIHZvaWQgdHN0
X1FXZWJWaWV3OjpyZXVzZVBhZ2UoKQogICAgIHZpZXcxLT5zaG93KCk7CiAgICAgUVRlc3Q6OnFX
YWl0Rm9yV2luZG93U2hvd24odmlldzEpOwogICAgIGRlbGV0ZSB2aWV3MTsKLSAgICBRVkVSSUZZ
KHBhZ2UgIT0gMCk7IC8vIGRlbGV0aW5nIHZpZXcgbXVzdCBub3QgaGF2ZSBkZWxldGVkIHRoZSBw
YWdlLCBzaW5jZSBpdCdzIG5vdCBhIGNoaWxkIG9mIHZpZXcKKyAgICBRVkVSSUZZKHBhZ2UpOyAv
LyBkZWxldGluZyB2aWV3IG11c3Qgbm90IGhhdmUgZGVsZXRlZCB0aGUgcGFnZSwgc2luY2UgaXQn
cyBub3QgYSBjaGlsZCBvZiB2aWV3CiAKLSAgICBRV2ViVmlldyAqdmlldzIgPSBuZXcgUVdlYlZp
ZXc7CisgICAgUVdlYlZpZXcqIHZpZXcyID0gbmV3IFFXZWJWaWV3OwogICAgIHZpZXcyLT5zZXRQ
YWdlKHBhZ2UpOwogICAgIHZpZXcyLT5zaG93KCk7IC8vIGluIFdpbmRvd2xlc3MgbW9kZSwgeW91
IHNob3VsZCBzdGlsbCBiZSBhYmxlIHRvIHNlZSB0aGUgcGx1Z2luIGhlcmUKICAgICBRVGVzdDo6
cVdhaXRGb3JXaW5kb3dTaG93bih2aWV3Mik7CkBAIC0yMDAsNyArMTk5LDcgQEAgdm9pZCB0c3Rf
UVdlYlZpZXc6Om1pY3JvRm9jdXNDb29yZGluYXRlcwogewogICAgIFFXZWJQYWdlKiBwYWdlID0g
bmV3IFFXZWJQYWdlOwogICAgIFFXZWJWaWV3KiB3ZWJWaWV3ID0gbmV3IFFXZWJWaWV3OwotICAg
IHdlYlZpZXctPnNldFBhZ2UoIHBhZ2UgKTsKKyAgICB3ZWJWaWV3LT5zZXRQYWdlKHBhZ2UpOwog
CiAgICAgcGFnZS0+bWFpbkZyYW1lKCktPnNldEh0bWwoIjxodG1sPjxib2R5PiIgXAogICAgICAg
ICAiPGlucHV0IHR5cGU9J3RleHQnIGlkPSdpbnB1dDEnIHN0eWxlPSdmb250LS1mYW1pbHk6IHNl
cmlmJyB2YWx1ZT0nJyBtYXhsZW5ndGg9JzIwJy8+PGJyPiIgXApAQCAtMjE0LDEyICsyMTMsMTIg
QEAgdm9pZCB0c3RfUVdlYlZpZXc6Om1pY3JvRm9jdXNDb29yZGluYXRlcwogICAgIFFWYXJpYW50
IGluaXRpYWxNaWNyb0ZvY3VzID0gcGFnZS0+aW5wdXRNZXRob2RRdWVyeShRdDo6SW1NaWNyb0Zv
Y3VzKTsKICAgICBRVkVSSUZZKGluaXRpYWxNaWNyb0ZvY3VzLmlzVmFsaWQoKSk7CiAKLSAgICBw
YWdlLT5tYWluRnJhbWUoKS0+c2Nyb2xsKDAsNTApOworICAgIHBhZ2UtPm1haW5GcmFtZSgpLT5z
Y3JvbGwoMCwgNTApOwogCiAgICAgUVZhcmlhbnQgY3VycmVudE1pY3JvRm9jdXMgPSBwYWdlLT5p
bnB1dE1ldGhvZFF1ZXJ5KFF0OjpJbU1pY3JvRm9jdXMpOwogICAgIFFWRVJJRlkoY3VycmVudE1p
Y3JvRm9jdXMuaXNWYWxpZCgpKTsKIAotICAgIFFDT01QQVJFKGluaXRpYWxNaWNyb0ZvY3VzLnRv
UmVjdCgpLnRyYW5zbGF0ZWQoUVBvaW50KDAsLTUwKSksIGN1cnJlbnRNaWNyb0ZvY3VzLnRvUmVj
dCgpKTsKKyAgICBRQ09NUEFSRShpbml0aWFsTWljcm9Gb2N1cy50b1JlY3QoKS50cmFuc2xhdGVk
KFFQb2ludCgwLCAtNTApKSwgY3VycmVudE1pY3JvRm9jdXMudG9SZWN0KCkpOwogfQogCiB2b2lk
IHRzdF9RV2ViVmlldzo6Zm9jdXNJbnB1dFR5cGVzKCkKQEAgLTMwNiw2ICszMDUsMjc3IEBAIHZv
aWQgdHN0X1FXZWJWaWV3Ojpmb2N1c0lucHV0VHlwZXMoKQogICAgIFFWRVJJRlkod2ViVmlldy50
ZXN0QXR0cmlidXRlKFF0OjpXQV9JbnB1dE1ldGhvZEVuYWJsZWQpKTsKIH0KIAorLy8gUmVuZGVy
IGEgUVdlYlZpZXcgdG8gYSBRSW1hZ2UgdHdpY2UsIGVhY2ggdGltZSB3aXRoIGEgZGlmZmVyZW50
IHBhbGV0dGUgc2V0LCAKKy8vIHZlcmlmeSB0aGF0IGltYWdlcyByZW5kZXJlZCBhcmUgbm90IHRo
ZSBzYW1lLCBjb25maXJtaW5nIFdlYkNvcmUgdXNhZ2Ugb2YgCisvLyBjdXN0b20gcGFsZXR0ZSBv
biBzZWxlY3Rpb25zLiAgVGhpcyBzZXF1ZW5jZSBkb25lIGZvciBhbGwgY29tYmluLiBvZiBhY3Rp
dmUKKy8vIGFuZCBpbmFjdGl2ZSBRV2ViVmlldyBhbmQgaGlnaGxpZ2h0ZWQgRkcgYW5kIEJHLCBy
ZXN1bHRpbmcgaW4gNCBhc3NlcnRpb25zLgordm9pZCB0c3RfUVdlYlZpZXc6OnNldFBhbGV0dGUo
KQoreworICAgIFFTdHJpbmcgaHRtbCA9ICI8aHRtbD48aGVhZD48L2hlYWQ+IgorICAgICAgICAg
ICAgICAgICAgICI8Ym9keT4iCisgICAgICAgICAgICAgICAgICAgIlNvbWUgdGV4dCBoZXJlIgor
ICAgICAgICAgICAgICAgICAgICI8L2JvZHk+IgorICAgICAgICAgICAgICAgICAgICI8L2h0bWw+
IjsKKworICAgIC8vIHVzZSBjb250cm9sVmlldyB0byBtYW5hZ2UgYWN0aXZlL2luYWN0aXZlIHN0
YXRlIG9mIHRlc3Qgdmlld3MgYnkgcmFpc2luZworICAgIC8vIG9yIGxvd2VyaW5nIHRoZWlyIHBv
c2l0aW9uIGluIHRoZSB3aW5kb3cgc3RhY2suCisgICAgUVdlYlZpZXcgY29udHJvbFZpZXc7Cisg
ICAgY29udHJvbFZpZXcuc2V0SHRtbChodG1sKTsKKworICAgIC8vIFRlc3QgMTogIEJFR0lOOiAg
U2VsZWN0aW9uIGJhY2tncm91bmQgY29sb3Igb24gYWN0aXZlIFFXZWJWaWV3ICAgCisgICAgUVdl
YlZpZXcgdmlld0FjdGl2ZVJlZEJnOworCisgICAgUVBhbGV0dGUgcGFsUmVkSGw7CisgICAgUUJy
dXNoIGJydXNoUmVkSGwoUUNvbG9yKFF0OjpyZWQpKTsgCisgICAgYnJ1c2hSZWRIbC5zZXRTdHls
ZShRdDo6U29saWRQYXR0ZXJuKTsKKyAgICBwYWxSZWRIbC5zZXRCcnVzaChRUGFsZXR0ZTo6QWN0
aXZlLCBRUGFsZXR0ZTo6SGlnaGxpZ2h0LCBicnVzaFJlZEhsKTsKKworICAgIHZpZXdBY3RpdmVS
ZWRCZy5zZXRQYWxldHRlKHBhbFJlZEhsKTsKKyAgICB2aWV3QWN0aXZlUmVkQmcuc2V0SHRtbCho
dG1sKTsKKyAgICB2aWV3QWN0aXZlUmVkQmcucGFnZSgpLT5zZXRWaWV3cG9ydFNpemUodmlld0Fj
dGl2ZVJlZEJnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPmNvbnRlbnRzU2l6ZSgpKTsKKyAgICB2
aWV3QWN0aXZlUmVkQmcuc2hvdygpOworCisgICAgUVRlc3Q6OnFXYWl0Rm9yV2luZG93U2hvd24o
JnZpZXdBY3RpdmVSZWRCZyk7CisKKyAgICB2aWV3QWN0aXZlUmVkQmcuYWN0aXZhdGVXaW5kb3co
KTsKKyAgICB2aWV3QWN0aXZlUmVkQmcucGFnZSgpLT50cmlnZ2VyQWN0aW9uKFFXZWJQYWdlOjpT
ZWxlY3RBbGwpOworCisgICAgLy8gcmVuZGVyZWQgaW1hZ2UgbXVzdCBoYXZlIHJlZCBiYWNrZ3Jv
dW5kIG9uIGFuIGFjdGl2ZSBRV2ViVmlldworICAgIFFJbWFnZSBpbWdBY3RpdmVSZWRCZyh2aWV3
QWN0aXZlUmVkQmcucGFnZSgpLT52aWV3cG9ydFNpemUoKSwgUUltYWdlOjpGb3JtYXRfQVJHQjMy
KTsKKyAgICBRUGFpbnRlciBwYWludEFjdGl2ZVJlZEJnKCZpbWdBY3RpdmVSZWRCZyk7CisgICAg
dmlld0FjdGl2ZVJlZEJnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPnJlbmRlcigmcGFpbnRBY3Rp
dmVSZWRCZyk7CisgICAgcGFpbnRBY3RpdmVSZWRCZy5lbmQoKTsKKyAgICBRU3RyaW5nIHN0ckFj
dGl2ZVJlZEJnPSJhY3RpdmVSZWRCZy5wbmciOworICAgIGltZ0FjdGl2ZVJlZEJnLnNhdmUoc3Ry
QWN0aXZlUmVkQmcpOworCisgICAgdmlld0FjdGl2ZVJlZEJnLmNsb3NlKCk7CisKKyAgICBRV2Vi
VmlldyB2aWV3QWN0aXZlQmx1ZUJnOworCisgICAgUVBhbGV0dGUgcGFsQmx1ZUhsOworICAgIFFC
cnVzaCBicnVzaEJsdWVIbChRQ29sb3IoUXQ6OmJsdWUpKTsgCisgICAgYnJ1c2hCbHVlSGwuc2V0
U3R5bGUoUXQ6OlNvbGlkUGF0dGVybik7CisgICAgcGFsQmx1ZUhsLnNldEJydXNoKFFQYWxldHRl
OjpBY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHQsIGJydXNoQmx1ZUhsKTsKKworICAgIHZpZXdB
Y3RpdmVCbHVlQmcuc2V0UGFsZXR0ZShwYWxCbHVlSGwpOworICAgIHZpZXdBY3RpdmVCbHVlQmcu
c2V0SHRtbChodG1sKTsKKyAgICB2aWV3QWN0aXZlQmx1ZUJnLnBhZ2UoKS0+c2V0Vmlld3BvcnRT
aXplKHZpZXdBY3RpdmVCbHVlQmcucGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+Y29udGVudHNTaXpl
KCkpOworICAgIHZpZXdBY3RpdmVCbHVlQmcuc2hvdygpOworCisgICAgUVRlc3Q6OnFXYWl0Rm9y
V2luZG93U2hvd24oJnZpZXdBY3RpdmVCbHVlQmcpOworCisgICAgdmlld0FjdGl2ZUJsdWVCZy5h
Y3RpdmF0ZVdpbmRvdygpOworICAgIHZpZXdBY3RpdmVCbHVlQmcucGFnZSgpLT50cmlnZ2VyQWN0
aW9uKFFXZWJQYWdlOjpTZWxlY3RBbGwpOworCisgICAgLy8gcmVuZGVyZWQgaW1hZ2UgbXVzdCBo
YXZlIGJsdWUgYmFja2dyb3VuZCBvbiBhbiBhY3RpdmUgUVdlYlZpZXcKKyAgICBRSW1hZ2UgaW1n
QWN0aXZlQmx1ZUJnKHZpZXdBY3RpdmVCbHVlQmcucGFnZSgpLT52aWV3cG9ydFNpemUoKSwgUUlt
YWdlOjpGb3JtYXRfQVJHQjMyKTsKKyAgICBRUGFpbnRlciBwYWludEFjdGl2ZUJsdWVCZygmaW1n
QWN0aXZlQmx1ZUJnKTsKKyAgICB2aWV3QWN0aXZlQmx1ZUJnLnBhZ2UoKS0+Y3VycmVudEZyYW1l
KCktPnJlbmRlcigmcGFpbnRBY3RpdmVCbHVlQmcpOworICAgIHBhaW50QWN0aXZlQmx1ZUJnLmVu
ZCgpOworCisgICAgUVN0cmluZyBzdHJBY3RpdmVCbHVlQmc9ImFjdGl2ZUJsdWVCZy5wbmciOwor
ICAgIGltZ0FjdGl2ZUJsdWVCZy5zYXZlKHN0ckFjdGl2ZUJsdWVCZyk7CisKKyAgICB2aWV3QWN0
aXZlQmx1ZUJnLmNsb3NlKCk7CisKKyAgICBRVkVSSUZZKGltZ0FjdGl2ZUJsdWVCZyAhPSBpbWdB
Y3RpdmVSZWRCZyk7CisgICAgLy8gVGVzdCAxOiAgRU5EOiAgU2VsZWN0aW9uIGJhY2tncm91bmQg
Y29sb3Igb24gYWN0aXZlIFFXZWJWaWV3IAorCisgICAgLy8gVGVzdCAyOiAgQkVHSU46ICBTZWxl
Y3Rpb24gYmFja2dyb3VuZCBjb2xvciBvbiBhbiBpbmFjdGl2ZSBRV2ViVmlldyAgIAorICAgIFFX
ZWJWaWV3IHZpZXdJbmFjdGl2ZUN5YW5CZzsKKworICAgIFFQYWxldHRlIHBhbEN5YW5IbDsKKyAg
ICBRQnJ1c2ggYnJ1c2hDeWFuSGwoUUNvbG9yKFF0OjpjeWFuKSk7IAorICAgIGJydXNoQ3lhbkhs
LnNldFN0eWxlKFF0OjpTb2xpZFBhdHRlcm4pOworICAgIHBhbEN5YW5IbC5zZXRCcnVzaChRUGFs
ZXR0ZTo6SW5hY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHQsIGJydXNoQ3lhbkhsKTsKKworICAg
IHZpZXdJbmFjdGl2ZUN5YW5CZy5zZXRQYWxldHRlKHBhbEN5YW5IbCk7CisgICAgdmlld0luYWN0
aXZlQ3lhbkJnLnNldEh0bWwoaHRtbCk7CisgICAgdmlld0luYWN0aXZlQ3lhbkJnLnBhZ2UoKS0+
c2V0Vmlld3BvcnRTaXplKHZpZXdJbmFjdGl2ZUN5YW5CZy5wYWdlKCktPmN1cnJlbnRGcmFtZSgp
LT5jb250ZW50c1NpemUoKSk7CisgICAgdmlld0luYWN0aXZlQ3lhbkJnLnNob3coKTsKKworICAg
IFFUZXN0OjpxV2FpdEZvcldpbmRvd1Nob3duKCZ2aWV3SW5hY3RpdmVDeWFuQmcpOyAKKworICAg
IGNvbnRyb2xWaWV3LnNob3coKTsKKyAgICBjb250cm9sVmlldy5hY3RpdmF0ZVdpbmRvdygpOwor
CisgICAgUVRlc3Q6OnFXYWl0Rm9yV2luZG93U2hvd24oJmNvbnRyb2xWaWV3KTsgCisKKyAgICB2
aWV3SW5hY3RpdmVDeWFuQmcucGFnZSgpLT50cmlnZ2VyQWN0aW9uKFFXZWJQYWdlOjpTZWxlY3RB
bGwpOworCisgICAgUUltYWdlIGltZ0luYWN0aXZlQ3lhbkJnKHZpZXdJbmFjdGl2ZUN5YW5CZy5w
YWdlKCktPnZpZXdwb3J0U2l6ZSgpLCBRSW1hZ2U6OkZvcm1hdF9BUkdCMzIpOworICAgIFFQYWlu
dGVyIHBhaW50SW5hY3RpdmVDeWFuQmcoJmltZ0luYWN0aXZlQ3lhbkJnKTsKKyAgICB2aWV3SW5h
Y3RpdmVDeWFuQmcucGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+cmVuZGVyKCZwYWludEluYWN0aXZl
Q3lhbkJnKTsKKyAgICBwYWludEluYWN0aXZlQ3lhbkJnLmVuZCgpOworICAgIC8vIHJlbmRlcmVk
IGltYWdlIG11c3QgaGF2ZSBjeWFuIGJhY2tncm91bmQgb24gYW4gaW5hY3RpdmUgUVdlYlZpZXcK
KyAgICBRU3RyaW5nIHN0ckluYWN0aXZlQ3lhbkJnPSJpbmFjdGl2ZUN5YW5CZy5wbmciOworICAg
IGltZ0luYWN0aXZlQ3lhbkJnLnNhdmUoc3RySW5hY3RpdmVDeWFuQmcpOworIAorICAgIGNvbnRy
b2xWaWV3LmNsb3NlKCk7CisgICAgdmlld0luYWN0aXZlQ3lhbkJnLmNsb3NlKCk7CisKKyAgICBR
V2ViVmlldyB2aWV3SW5hY3RpdmVNYWdlbnRhQmc7CisKKyAgICBRUGFsZXR0ZSBwYWxNYWdlbnRh
SGw7CisgICAgUUJydXNoIGJydXNoTWFnZW50YUhsKFFDb2xvcihRdDo6bWFnZW50YSkpOyAKKyAg
ICBicnVzaE1hZ2VudGFIbC5zZXRTdHlsZShRdDo6U29saWRQYXR0ZXJuKTsKKyAgICBwYWxNYWdl
bnRhSGwuc2V0QnJ1c2goUVBhbGV0dGU6OkluYWN0aXZlLCBRUGFsZXR0ZTo6SGlnaGxpZ2h0LCBi
cnVzaE1hZ2VudGFIbCk7CisKKyAgICB2aWV3SW5hY3RpdmVNYWdlbnRhQmcuc2V0UGFsZXR0ZShw
YWxNYWdlbnRhSGwpOworICAgIHZpZXdJbmFjdGl2ZU1hZ2VudGFCZy5zZXRIdG1sKGh0bWwpOwor
ICAgIHZpZXdJbmFjdGl2ZU1hZ2VudGFCZy5wYWdlKCktPnNldFZpZXdwb3J0U2l6ZSh2aWV3SW5h
Y3RpdmVNYWdlbnRhQmcucGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+Y29udGVudHNTaXplKCkpOwor
ICAgIHZpZXdJbmFjdGl2ZU1hZ2VudGFCZy5zaG93KCk7CisKKyAgICBRVGVzdDo6cVdhaXRGb3JX
aW5kb3dTaG93bigmdmlld0luYWN0aXZlTWFnZW50YUJnKTsKKworICAgIGNvbnRyb2xWaWV3LnNo
b3coKTsKKyAgICBjb250cm9sVmlldy5hY3RpdmF0ZVdpbmRvdygpOworCisgICAgUVRlc3Q6OnFX
YWl0Rm9yV2luZG93U2hvd24oJmNvbnRyb2xWaWV3KTsgCisKKyAgICB2aWV3SW5hY3RpdmVNYWdl
bnRhQmcucGFnZSgpLT50cmlnZ2VyQWN0aW9uKFFXZWJQYWdlOjpTZWxlY3RBbGwpOworCisgICAg
UUltYWdlIGltZ0luYWN0aXZlTWFnZW50YUJnKHZpZXdJbmFjdGl2ZU1hZ2VudGFCZy5wYWdlKCkt
PnZpZXdwb3J0U2l6ZSgpLCBRSW1hZ2U6OkZvcm1hdF9BUkdCMzIpOworICAgIFFQYWludGVyIHBh
aW50SW5hY3RpdmVNYWdlbnRhQmcoJmltZ0luYWN0aXZlTWFnZW50YUJnKTsKKyAgICB2aWV3SW5h
Y3RpdmVNYWdlbnRhQmcucGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+cmVuZGVyKCZwYWludEluYWN0
aXZlTWFnZW50YUJnKTsKKyAgICBwYWludEluYWN0aXZlTWFnZW50YUJnLmVuZCgpOworICAgIC8v
IHJlbmRlcmVkIGltYWdlIG11c3QgaGF2ZSBtYWdlbnRhIGJhY2tncm91bmQgb24gYW4gaW5hY3Rp
dmUgUVdlYlZpZXcKKyAgICBRU3RyaW5nIHN0ckluYWN0aXZlTWFnZW50YUJnPSJpbmFjdGl2ZU1h
Z2VudGFCZy5wbmciOworICAgIGltZ0luYWN0aXZlTWFnZW50YUJnLnNhdmUoc3RySW5hY3RpdmVN
YWdlbnRhQmcpOworCisgICAgY29udHJvbFZpZXcuY2xvc2UoKTsKKyAgICB2aWV3SW5hY3RpdmVN
YWdlbnRhQmcuY2xvc2UoKTsKKworICAgIFFWRVJJRlkoaW1nSW5hY3RpdmVDeWFuQmcgIT0gaW1n
SW5hY3RpdmVNYWdlbnRhQmcpOworICAgIC8vIFRlc3QgMjogIEVORDogIFNlbGVjdGlvbiBiYWNr
Z3JvdW5kIGNvbG9yIG9uIGFuIGluYWN0aXZlIFFXZWJWaWV3ICAgCisKKyAgICAvLyBUZXN0IDM6
ICBCRUdJTjogIFNlbGVjdGlvbiBmb3JlZ3JvdW5kIGNvbG9yIG9uIGFuIGFjdGl2ZSBRV2ViVmll
dyAgIAorICAgIFFXZWJWaWV3IHZpZXdBY3RpdmVCbGFja0ZnOworCisgICAgUVBhbGV0dGUgcGFs
QmxhY2tIbFRleHQ7CisgICAgUUJydXNoIGJydXNoQmxhY2tIbFRleHQoUUNvbG9yKFF0OjpibGFj
aykpOyAKKyAgICBicnVzaEJsYWNrSGxUZXh0LnNldFN0eWxlKFF0OjpTb2xpZFBhdHRlcm4pOwor
ICAgIHBhbEJsYWNrSGxUZXh0LnNldEJydXNoKFFQYWxldHRlOjpBY3RpdmUsIFFQYWxldHRlOjpI
aWdobGlnaHRlZFRleHQsIGJydXNoQmxhY2tIbFRleHQpOworCisgICAgdmlld0FjdGl2ZUJsYWNr
Rmcuc2V0UGFsZXR0ZShwYWxCbGFja0hsVGV4dCk7CisgICAgdmlld0FjdGl2ZUJsYWNrRmcuc2V0
SHRtbChodG1sKTsKKyAgICB2aWV3QWN0aXZlQmxhY2tGZy5wYWdlKCktPnNldFZpZXdwb3J0U2l6
ZSh2aWV3QWN0aXZlQmxhY2tGZy5wYWdlKCktPmN1cnJlbnRGcmFtZSgpLT5jb250ZW50c1NpemUo
KSk7CisgICAgdmlld0FjdGl2ZUJsYWNrRmcuc2hvdygpOworCisgICAgUVRlc3Q6OnFXYWl0Rm9y
V2luZG93U2hvd24oJnZpZXdBY3RpdmVCbGFja0ZnKTsKKworICAgIHZpZXdBY3RpdmVCbGFja0Zn
LmFjdGl2YXRlV2luZG93KCk7CisgICAgdmlld0FjdGl2ZUJsYWNrRmcucGFnZSgpLT50cmlnZ2Vy
QWN0aW9uKFFXZWJQYWdlOjpTZWxlY3RBbGwpOworCisgICAgUUltYWdlIGltZ0FjdGl2ZUJsYWNr
Rmcodmlld0FjdGl2ZUJsYWNrRmcucGFnZSgpLT52aWV3cG9ydFNpemUoKSwgUUltYWdlOjpGb3Jt
YXRfQVJHQjMyKTsKKyAgICBRUGFpbnRlciBwYWludEFjdGl2ZUJsYWNrRmcoJmltZ0FjdGl2ZUJs
YWNrRmcpOworICAgIHZpZXdBY3RpdmVCbGFja0ZnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPnJl
bmRlcigmcGFpbnRBY3RpdmVCbGFja0ZnKTsKKyAgICBwYWludEFjdGl2ZUJsYWNrRmcuZW5kKCk7
CisgICAgLy8gcmVuZGVyZWQgaW1hZ2UgbXVzdCBoYXZlIGJsYWNrIGZvcmVncm91bmQgb24gYW4g
YWN0aXZlIFFXZWJWaWV3CisgICAgUVN0cmluZyBzdHJBY3RpdmVCbGFja0ZnPSJhY3RpdmVCbGFj
a0ZnLnBuZyI7CisgICAgaW1nQWN0aXZlQmxhY2tGZy5zYXZlKHN0ckFjdGl2ZUJsYWNrRmcpOwor
CisgICAgdmlld0FjdGl2ZUJsYWNrRmcuY2xvc2UoKTsKKworICAgIFFXZWJWaWV3IHZpZXdBY3Rp
dmVHcmVlbkZnOworCisgICAgUVBhbGV0dGUgcGFsR3JlZW5IbFRleHQ7CisgICAgUUJydXNoIGJy
dXNoR3JlZW5IbFRleHQoUUNvbG9yKFF0OjpncmVlbikpOyAKKyAgICBicnVzaEdyZWVuSGxUZXh0
LnNldFN0eWxlKFF0OjpTb2xpZFBhdHRlcm4pOworICAgIHBhbEdyZWVuSGxUZXh0LnNldEJydXNo
KFFQYWxldHRlOjpBY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHRlZFRleHQsIGJydXNoR3JlZW5I
bFRleHQpOworCisgICAgdmlld0FjdGl2ZUdyZWVuRmcuc2V0UGFsZXR0ZShwYWxHcmVlbkhsVGV4
dCk7CisgICAgdmlld0FjdGl2ZUdyZWVuRmcuc2V0SHRtbChodG1sKTsKKyAgICB2aWV3QWN0aXZl
R3JlZW5GZy5wYWdlKCktPnNldFZpZXdwb3J0U2l6ZSh2aWV3QWN0aXZlR3JlZW5GZy5wYWdlKCkt
PmN1cnJlbnRGcmFtZSgpLT5jb250ZW50c1NpemUoKSk7CisgICAgdmlld0FjdGl2ZUdyZWVuRmcu
c2hvdygpOworCisgICAgUVRlc3Q6OnFXYWl0Rm9yV2luZG93U2hvd24oJnZpZXdBY3RpdmVHcmVl
bkZnKTsKKworICAgIHZpZXdBY3RpdmVHcmVlbkZnLmFjdGl2YXRlV2luZG93KCk7CisgICAgdmll
d0FjdGl2ZUdyZWVuRmcucGFnZSgpLT50cmlnZ2VyQWN0aW9uKFFXZWJQYWdlOjpTZWxlY3RBbGwp
OworCisgICAgUUltYWdlIGltZ0FjdGl2ZUdyZWVuRmcodmlld0FjdGl2ZUdyZWVuRmcucGFnZSgp
LT52aWV3cG9ydFNpemUoKSwgUUltYWdlOjpGb3JtYXRfQVJHQjMyKTsKKyAgICBRUGFpbnRlciBw
YWludEFjdGl2ZUdyZWVuRmcoJmltZ0FjdGl2ZUdyZWVuRmcpOworICAgIHZpZXdBY3RpdmVHcmVl
bkZnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPnJlbmRlcigmcGFpbnRBY3RpdmVHcmVlbkZnKTsK
KyAgICBwYWludEFjdGl2ZUdyZWVuRmcuZW5kKCk7CisgICAgLy8gcmVuZGVyZWQgaW1hZ2UgbXVz
dCBoYXZlIGdyZWVuIGZvcmVncm91bmQgb24gYW4gYWN0aXZlIFFXZWJWaWV3CisgICAgUVN0cmlu
ZyBzdHJBY3RpdmVHcmVlbkZnPSJhY3RpdmVHcmVlbkZnLnBuZyI7CisgICAgaW1nQWN0aXZlR3Jl
ZW5GZy5zYXZlKHN0ckFjdGl2ZUdyZWVuRmcpOworCisgICAgdmlld0FjdGl2ZUdyZWVuRmcuY2xv
c2UoKTsKKworICAgIFFWRVJJRlkoaW1nQWN0aXZlQmxhY2tGZyAhPSBpbWdBY3RpdmVHcmVlbkZn
KTsKKyAgICAvLyBUZXN0IDM6ICBFTkQ6ICBTZWxlY3Rpb24gZm9yZWdyb3VuZCBjb2xvciBvbiBh
Y3RpdmUgUVdlYlZpZXcgICAKKworICAgIC8vIFRlc3QgNDogIEJFR0lOOiAgU2VsZWN0aW9uIGZv
cmVncm91bmQgY29sb3Igb24gYW4gaW5hY3RpdmUgUVdlYlZpZXcgICAKKyAgICBRV2ViVmlldyB2
aWV3SW5hY3RpdmVHcmF5Rmc7CisKKyAgICBRUGFsZXR0ZSBwYWxHcmF5SGxUZXh0OworICAgIFFC
cnVzaCBicnVzaEdyYXlIbFRleHQoUUNvbG9yKFF0OjpncmF5KSk7IAorICAgIGJydXNoR3JheUhs
VGV4dC5zZXRTdHlsZShRdDo6U29saWRQYXR0ZXJuKTsKKyAgICBwYWxHcmF5SGxUZXh0LnNldEJy
dXNoKFFQYWxldHRlOjpJbmFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodGVkVGV4dCwgYnJ1c2hH
cmF5SGxUZXh0KTsKKworICAgIHZpZXdJbmFjdGl2ZUdyYXlGZy5zZXRQYWxldHRlKHBhbEdyYXlI
bFRleHQpOworICAgIHZpZXdJbmFjdGl2ZUdyYXlGZy5zZXRIdG1sKGh0bWwpOworICAgIHZpZXdJ
bmFjdGl2ZUdyYXlGZy5wYWdlKCktPnNldFZpZXdwb3J0U2l6ZSh2aWV3SW5hY3RpdmVHcmF5Rmcu
cGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+Y29udGVudHNTaXplKCkpOworICAgIHZpZXdJbmFjdGl2
ZUdyYXlGZy5zaG93KCk7CisKKyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmdmlld0lu
YWN0aXZlR3JheUZnKTsKKworICAgIGNvbnRyb2xWaWV3LnNob3coKTsKKyAgICBjb250cm9sVmll
dy5hY3RpdmF0ZVdpbmRvdygpOworCisgICAgUVRlc3Q6OnFXYWl0Rm9yV2luZG93U2hvd24oJmNv
bnRyb2xWaWV3KTsgCisKKyAgICB2aWV3SW5hY3RpdmVHcmF5RmcucGFnZSgpLT50cmlnZ2VyQWN0
aW9uKFFXZWJQYWdlOjpTZWxlY3RBbGwpOworCisgICAgUUltYWdlIGltZ0luYWN0aXZlR3JheUZn
KHZpZXdJbmFjdGl2ZUdyYXlGZy5wYWdlKCktPnZpZXdwb3J0U2l6ZSgpLCBRSW1hZ2U6OkZvcm1h
dF9BUkdCMzIpOworICAgIFFQYWludGVyIHBhaW50SW5hY3RpdmVHcmF5RmcoJmltZ0luYWN0aXZl
R3JheUZnKTsKKyAgICB2aWV3SW5hY3RpdmVHcmF5RmcucGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+
cmVuZGVyKCZwYWludEluYWN0aXZlR3JheUZnKTsKKyAgICBwYWludEluYWN0aXZlR3JheUZnLmVu
ZCgpOworICAgIC8vIHJlbmRlcmVkIGltYWdlIG11c3QgaGF2ZSBncmF5IGZvcmVncm91bmQgb24g
YW4gaW5hY3RpdmUgUVdlYlZpZXcKKyAgICBRU3RyaW5nIHN0ckluYWN0aXZlR3JheUZnPSJpbmFj
dGl2ZUdyYXlGZy5wbmciOworICAgIGltZ0luYWN0aXZlR3JheUZnLnNhdmUoc3RySW5hY3RpdmVH
cmF5RmcpOworCisgICAgY29udHJvbFZpZXcuY2xvc2UoKTsKKyAgICB2aWV3SW5hY3RpdmVHcmF5
RmcuY2xvc2UoKTsKKworICAgIFFXZWJWaWV3IHZpZXdJbmFjdGl2ZVllbGxvd0ZnOworCisgICAg
UVBhbGV0dGUgcGFsWWVsbG93SGxUZXh0OworICAgIFFCcnVzaCBicnVzaFllbGxvd0hsVGV4dChR
Q29sb3IoUXQ6OnllbGxvdykpOyAKKyAgICBicnVzaFllbGxvd0hsVGV4dC5zZXRTdHlsZShRdDo6
U29saWRQYXR0ZXJuKTsKKyAgICBwYWxZZWxsb3dIbFRleHQuc2V0QnJ1c2goUVBhbGV0dGU6Oklu
YWN0aXZlLCBRUGFsZXR0ZTo6SGlnaGxpZ2h0ZWRUZXh0LCBicnVzaFllbGxvd0hsVGV4dCk7CisK
KyAgICB2aWV3SW5hY3RpdmVZZWxsb3dGZy5zZXRQYWxldHRlKHBhbFllbGxvd0hsVGV4dCk7Cisg
ICAgdmlld0luYWN0aXZlWWVsbG93Rmcuc2V0SHRtbChodG1sKTsKKyAgICB2aWV3SW5hY3RpdmVZ
ZWxsb3dGZy5wYWdlKCktPnNldFZpZXdwb3J0U2l6ZSh2aWV3SW5hY3RpdmVZZWxsb3dGZy5wYWdl
KCktPmN1cnJlbnRGcmFtZSgpLT5jb250ZW50c1NpemUoKSk7CisgICAgdmlld0luYWN0aXZlWWVs
bG93Rmcuc2hvdygpOworCisgICAgUVRlc3Q6OnFXYWl0Rm9yV2luZG93U2hvd24oJnZpZXdJbmFj
dGl2ZVllbGxvd0ZnKTsKKworICAgIGNvbnRyb2xWaWV3LnNob3coKTsKKyAgICBjb250cm9sVmll
dy5hY3RpdmF0ZVdpbmRvdygpOworCisgICAgUVRlc3Q6OnFXYWl0Rm9yV2luZG93U2hvd24oJmNv
bnRyb2xWaWV3KTsgCisKKyAgICB2aWV3SW5hY3RpdmVZZWxsb3dGZy5wYWdlKCktPnRyaWdnZXJB
Y3Rpb24oUVdlYlBhZ2U6OlNlbGVjdEFsbCk7CisKKyAgICBRSW1hZ2UgaW1nSW5hY3RpdmVZZWxs
b3dGZyh2aWV3SW5hY3RpdmVZZWxsb3dGZy5wYWdlKCktPnZpZXdwb3J0U2l6ZSgpLCBRSW1hZ2U6
OkZvcm1hdF9BUkdCMzIpOworICAgIFFQYWludGVyIHBhaW50SW5hY3RpdmVZZWxsb3dGZygmaW1n
SW5hY3RpdmVZZWxsb3dGZyk7CisgICAgdmlld0luYWN0aXZlWWVsbG93RmcucGFnZSgpLT5jdXJy
ZW50RnJhbWUoKS0+cmVuZGVyKCZwYWludEluYWN0aXZlWWVsbG93RmcpOworICAgIHBhaW50SW5h
Y3RpdmVZZWxsb3dGZy5lbmQoKTsKKyAgICAvLyByZW5kZXJlZCBpbWFnZSBtdXN0IGhhdmUgeWVs
bG93IGZvcmVncm91bmQgb24gYW4gaW5hY3RpdmUgUVdlYlZpZXcKKyAgICBRU3RyaW5nIHN0cklu
YWN0aXZlWWVsbG93Rmc9ImluYWN0aXZlWWVsbG93RmcucG5nIjsKKyAgICBpbWdJbmFjdGl2ZVll
bGxvd0ZnLnNhdmUoc3RySW5hY3RpdmVZZWxsb3dGZyk7CisKKyAgICBjb250cm9sVmlldy5jbG9z
ZSgpOworICAgIHZpZXdJbmFjdGl2ZVllbGxvd0ZnLmNsb3NlKCk7CisKKyAgICBRVkVSSUZZKGlt
Z0luYWN0aXZlR3JheUZnICE9IGltZ0luYWN0aXZlWWVsbG93RmcpOworICAgIC8vIFRlc3QgNDog
IEVORDogIFNlbGVjdGlvbiBmb3JlZ3JvdW5kIGNvbG9yIG9uIGluYWN0aXZlIFFXZWJWaWV3ICAg
Cit9CisKIFFURVNUX01BSU4odHN0X1FXZWJWaWV3KQogI2luY2x1ZGUgInRzdF9xd2Vidmlldy5t
b2MiCiAK
</data>
<flag name="review"
          id="72954"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81897</attachid>
            <date>2011-02-09 17:15:29 -0800</date>
            <delta_ts>2011-02-10 09:24:54 -0800</delta_ts>
            <desc>rework to address comment #22</desc>
            <filename>31742_9Feb2011.patch</filename>
            <type>text/plain</type>
            <size>15203</size>
            <attacher name="Fabrizio">fabrizio.machado</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4MTYyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDItMDkgIEZhYnJpemlv
IE1hY2hhZG8gIDxmYWJyaXppby5tYWNoYWRvQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgY3VzdG9tIFFXZWJWaWV3IHBhbGV0
dGUgaWYgYXBwbGljYXRpb24gcHJvdmlkZXMgb25lLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE3NDIKKworICAgICAgICBUZXN0cyBhZGRlZCBpbiBX
ZWJLaXQvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2VidmlldworCisgICAgICAgICogcGxhdGZv
cm0vcXQvUmVuZGVyVGhlbWVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVF0
OjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZVF0OjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtQWN0aXZlU2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6
OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcik6CisgCiAyMDExLTAy
LTA5ICBCZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBTaW1vbiBGcmFzZXIuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5kZXJU
aGVtZVF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9xdC9SZW5k
ZXJUaGVtZVF0LmNwcAkocmV2aXNpb24gNzc2MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9xdC9SZW5kZXJUaGVtZVF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzgwLDMwICszODAsMzUg
QEAgdm9pZCBSZW5kZXJUaGVtZVF0OjphZGp1c3RSZXBhaW50UmVjdChjbwogQ29sb3IgUmVuZGVy
VGhlbWVRdDo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAog
ewogICAgIFFQYWxldHRlIHBhbCA9IFFBcHBsaWNhdGlvbjo6cGFsZXR0ZSgpOworICAgIHNldFBh
bGV0dGVGcm9tUGFnZUNsaWVudElmRXhpc3RzKHBhbCk7CiAgICAgcmV0dXJuIHBhbC5icnVzaChR
UGFsZXR0ZTo6QWN0aXZlLCBRUGFsZXR0ZTo6SGlnaGxpZ2h0KS5jb2xvcigpOwogfQogCiBDb2xv
ciBSZW5kZXJUaGVtZVF0OjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENvbG9y
KCkgY29uc3QKIHsKICAgICBRUGFsZXR0ZSBwYWwgPSBRQXBwbGljYXRpb246OnBhbGV0dGUoKTsK
KyAgICBzZXRQYWxldHRlRnJvbVBhZ2VDbGllbnRJZkV4aXN0cyhwYWwpOwogICAgIHJldHVybiBw
YWwuYnJ1c2goUVBhbGV0dGU6OkluYWN0aXZlLCBRUGFsZXR0ZTo6SGlnaGxpZ2h0KS5jb2xvcigp
OwogfQogCiBDb2xvciBSZW5kZXJUaGVtZVF0OjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkZvcmVn
cm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAgUVBhbGV0dGUgcGFsID0gUUFwcGxpY2F0aW9uOjpw
YWxldHRlKCk7CisgICAgc2V0UGFsZXR0ZUZyb21QYWdlQ2xpZW50SWZFeGlzdHMocGFsKTsKICAg
ICByZXR1cm4gcGFsLmJydXNoKFFQYWxldHRlOjpBY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHRl
ZFRleHQpLmNvbG9yKCk7CiB9CiAKIENvbG9yIFJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtSW5hY3Rp
dmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAogewogICAgIFFQYWxldHRlIHBhbCA9
IFFBcHBsaWNhdGlvbjo6cGFsZXR0ZSgpOworICAgIHNldFBhbGV0dGVGcm9tUGFnZUNsaWVudElm
RXhpc3RzKHBhbCk7CiAgICAgcmV0dXJuIHBhbC5icnVzaChRUGFsZXR0ZTo6SW5hY3RpdmUsIFFQ
YWxldHRlOjpIaWdobGlnaHRlZFRleHQpLmNvbG9yKCk7CiB9CiAKIENvbG9yIFJlbmRlclRoZW1l
UXQ6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoKSBjb25zdAogewogICAgIFFQYWxldHRlIHBhbCA9
IFFBcHBsaWNhdGlvbjo6cGFsZXR0ZSgpOworICAgIHNldFBhbGV0dGVGcm9tUGFnZUNsaWVudElm
RXhpc3RzKHBhbCk7CiAgICAgcmV0dXJuIHBhbC5icnVzaChRUGFsZXR0ZTo6QWN0aXZlLCBRUGFs
ZXR0ZTo6SGlnaGxpZ2h0KS5jb2xvcigpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkocmV2aXNp
b24gNzgxNjIpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE4IEBACisyMDExLTAyLTA5ICBGYWJyaXppbyBNYWNoYWRvICA8ZmFicml6aW8u
bWFjaGFkb0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVGVzdHMgZm9yIHNldHRpbmcgY3VzdG9tIHBhbGV0dGUgb24gaGlnaGxpZ2h0
ZWQKKyAgICAgICAgdGV4dCBpbiBXZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3Bw
CisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMxNzQy
CisgICAgICAgICogdGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKHRz
dF9RV2ViVmlldzo6Zm9jdXNJbnB1dFR5cGVzKToKKyAgICAgICAgKHRzdF9RV2ViVmlldzo6c2V0
UGFsZXR0ZUFjdGl2ZUJHKToKKyAgICAgICAgKHRzdF9RV2ViVmlldzo6c2V0UGFsZXR0ZUFjdGl2
ZUZHKToKKyAgICAgICAgKHRzdF9RV2ViVmlldzo6c2V0UGFsZXR0ZUluYWN0aXZlQkcpOgorICAg
ICAgICAodHN0X1FXZWJWaWV3OjpzZXRQYWxldHRlSW5hY3RpdmVGRyk6CisKIDIwMTEtMDItMDkg
IFJvYmVydCBIb2dhbiAgPHJvYmVydEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5
IENzYWJhIE9zenRyb2dvbsOhYy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnZp
ZXcvdHN0X3F3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L3Rlc3Rz
L3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAJKHJldmlzaW9uIDc3NjI4KQorKysgU291cmNlL1dl
YktpdC9xdC90ZXN0cy9xd2Vidmlldy90c3RfcXdlYnZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC01MSw2ICs1MSwxMSBAQCBwcml2YXRlIHNsb3RzOgogICAgIHZvaWQgZm9jdXNJbnB1dFR5cGVz
KCk7CiAKICAgICB2b2lkIGNyYXNoVGVzdHMoKTsKKworICAgIHZvaWQgc2V0UGFsZXR0ZUFjdGl2
ZUJHKCk7CisgICAgdm9pZCBzZXRQYWxldHRlQWN0aXZlRkcoKTsKKyAgICB2b2lkIHNldFBhbGV0
dGVJbmFjdGl2ZUJHKCk7ICAKKyAgICB2b2lkIHNldFBhbGV0dGVJbmFjdGl2ZUZHKCk7ICAKIH07
CiAKIC8vIFRoaXMgd2lsbCBiZSBjYWxsZWQgYmVmb3JlIHRoZSBmaXJzdCB0ZXN0IGZ1bmN0aW9u
IGlzIGV4ZWN1dGVkLgpAQCAtMzA2LDYgKzMxMSwzMDUgQEAgdm9pZCB0c3RfUVdlYlZpZXc6OmZv
Y3VzSW5wdXRUeXBlcygpCiAgICAgUVZFUklGWSh3ZWJWaWV3LnRlc3RBdHRyaWJ1dGUoUXQ6OldB
X0lucHV0TWV0aG9kRW5hYmxlZCkpOwogfQogCisvLyBSZW5kZXIgYSBRV2ViVmlldyB0byBhIFFJ
bWFnZSB0d2ljZSwgZWFjaCB0aW1lIHdpdGggYSBkaWZmZXJlbnQgcGFsZXR0ZSBzZXQsIAorLy8g
dmVyaWZ5IHRoYXQgaW1hZ2VzIHJlbmRlcmVkIGFyZSBub3QgdGhlIHNhbWUsIGNvbmZpcm1pbmcg
V2ViQ29yZSB1c2FnZSBvZiAKKy8vIGN1c3RvbSBwYWxldHRlIG9uIHNlbGVjdGlvbnMuICBUaGlz
IHNlcXVlbmNlIGRvbmUgZm9yIGFsbCBjb21iaW4uIG9mIGFjdGl2ZQorLy8gYW5kIGluYWN0aXZl
IFFXZWJWaWV3IGFuZCBoaWdobGlnaHRlZCBGRyBhbmQgQkcsIHJlc3VsdGluZyBpbiA0IGFzc2Vy
dGlvbnMuCisKKwordm9pZCB0c3RfUVdlYlZpZXc6OnNldFBhbGV0dGVBY3RpdmVCRygpCit7Cisg
ICAgUVN0cmluZyBodG1sID0gIjxodG1sPjxoZWFkPjwvaGVhZD4iCisgICAgICAgICAgICAgICAg
ICAgIjxib2R5PiIKKyAgICAgICAgICAgICAgICAgICAiU29tZSB0ZXh0IGhlcmUiCisgICAgICAg
ICAgICAgICAgICAgIjwvYm9keT4iCisgICAgICAgICAgICAgICAgICAgIjwvaHRtbD4iOworCisg
ICAgLy8gdXNlIGNvbnRyb2xWaWV3IHRvIG1hbmFnZSBhY3RpdmUvaW5hY3RpdmUgc3RhdGUgb2Yg
dGVzdCB2aWV3cyBieSByYWlzaW5nCisgICAgLy8gb3IgbG93ZXJpbmcgdGhlaXIgcG9zaXRpb24g
aW4gdGhlIHdpbmRvdyBzdGFjay4KKyAgICBRV2ViVmlldyBjb250cm9sVmlldzsKKyAgICBjb250
cm9sVmlldy5zZXRIdG1sKGh0bWwpOworCisgICAgUVdlYlZpZXcgdmlld0FjdGl2ZVJlZEJnOwor
CisgICAgUVBhbGV0dGUgcGFsUmVkSGw7CisgICAgUUJydXNoIGJydXNoUmVkSGwoUUNvbG9yKFF0
OjpyZWQpKTsgCisgICAgYnJ1c2hSZWRIbC5zZXRTdHlsZShRdDo6U29saWRQYXR0ZXJuKTsKKyAg
ICBwYWxSZWRIbC5zZXRCcnVzaChRUGFsZXR0ZTo6QWN0aXZlLCBRUGFsZXR0ZTo6SGlnaGxpZ2h0
LCBicnVzaFJlZEhsKTsKKworICAgIHZpZXdBY3RpdmVSZWRCZy5zZXRQYWxldHRlKHBhbFJlZEhs
KTsKKyAgICB2aWV3QWN0aXZlUmVkQmcuc2V0SHRtbChodG1sKTsKKyAgICB2aWV3QWN0aXZlUmVk
QmcucGFnZSgpLT5zZXRWaWV3cG9ydFNpemUodmlld0FjdGl2ZVJlZEJnLnBhZ2UoKS0+Y3VycmVu
dEZyYW1lKCktPmNvbnRlbnRzU2l6ZSgpKTsKKyAgICB2aWV3QWN0aXZlUmVkQmcuc2hvdygpOwor
CisgICAgUVRlc3Q6OnFXYWl0Rm9yV2luZG93U2hvd24oJnZpZXdBY3RpdmVSZWRCZyk7CisKKyAg
ICB2aWV3QWN0aXZlUmVkQmcuYWN0aXZhdGVXaW5kb3coKTsKKyAgICB2aWV3QWN0aXZlUmVkQmcu
cGFnZSgpLT50cmlnZ2VyQWN0aW9uKFFXZWJQYWdlOjpTZWxlY3RBbGwpOworCisgICAgLy8gcmVu
ZGVyZWQgaW1hZ2UgbXVzdCBoYXZlIHJlZCBiYWNrZ3JvdW5kIG9uIGFuIGFjdGl2ZSBRV2ViVmll
dworICAgIFFJbWFnZSBpbWdBY3RpdmVSZWRCZyh2aWV3QWN0aXZlUmVkQmcucGFnZSgpLT52aWV3
cG9ydFNpemUoKSwgUUltYWdlOjpGb3JtYXRfQVJHQjMyKTsKKyAgICBRUGFpbnRlciBwYWludEFj
dGl2ZVJlZEJnKCZpbWdBY3RpdmVSZWRCZyk7CisgICAgdmlld0FjdGl2ZVJlZEJnLnBhZ2UoKS0+
Y3VycmVudEZyYW1lKCktPnJlbmRlcigmcGFpbnRBY3RpdmVSZWRCZyk7CisgICAgcGFpbnRBY3Rp
dmVSZWRCZy5lbmQoKTsKKyAgICBRU3RyaW5nIHN0ckFjdGl2ZVJlZEJnPSJhY3RpdmVSZWRCZy5w
bmciOworCisgICAgdmlld0FjdGl2ZVJlZEJnLmNsb3NlKCk7CisKKyAgICBRV2ViVmlldyB2aWV3
QWN0aXZlQmx1ZUJnOworCisgICAgUVBhbGV0dGUgcGFsQmx1ZUhsOworICAgIFFCcnVzaCBicnVz
aEJsdWVIbChRQ29sb3IoUXQ6OmJsdWUpKTsgCisgICAgYnJ1c2hCbHVlSGwuc2V0U3R5bGUoUXQ6
OlNvbGlkUGF0dGVybik7CisgICAgcGFsQmx1ZUhsLnNldEJydXNoKFFQYWxldHRlOjpBY3RpdmUs
IFFQYWxldHRlOjpIaWdobGlnaHQsIGJydXNoQmx1ZUhsKTsKKworICAgIHZpZXdBY3RpdmVCbHVl
Qmcuc2V0UGFsZXR0ZShwYWxCbHVlSGwpOworICAgIHZpZXdBY3RpdmVCbHVlQmcuc2V0SHRtbCho
dG1sKTsKKyAgICB2aWV3QWN0aXZlQmx1ZUJnLnBhZ2UoKS0+c2V0Vmlld3BvcnRTaXplKHZpZXdB
Y3RpdmVCbHVlQmcucGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+Y29udGVudHNTaXplKCkpOworICAg
IHZpZXdBY3RpdmVCbHVlQmcuc2hvdygpOworCisgICAgUVRlc3Q6OnFXYWl0Rm9yV2luZG93U2hv
d24oJnZpZXdBY3RpdmVCbHVlQmcpOworCisgICAgdmlld0FjdGl2ZUJsdWVCZy5hY3RpdmF0ZVdp
bmRvdygpOworICAgIHZpZXdBY3RpdmVCbHVlQmcucGFnZSgpLT50cmlnZ2VyQWN0aW9uKFFXZWJQ
YWdlOjpTZWxlY3RBbGwpOworCisgICAgLy8gcmVuZGVyZWQgaW1hZ2UgbXVzdCBoYXZlIGJsdWUg
YmFja2dyb3VuZCBvbiBhbiBhY3RpdmUgUVdlYlZpZXcKKyAgICBRSW1hZ2UgaW1nQWN0aXZlQmx1
ZUJnKHZpZXdBY3RpdmVCbHVlQmcucGFnZSgpLT52aWV3cG9ydFNpemUoKSwgUUltYWdlOjpGb3Jt
YXRfQVJHQjMyKTsKKyAgICBRUGFpbnRlciBwYWludEFjdGl2ZUJsdWVCZygmaW1nQWN0aXZlQmx1
ZUJnKTsKKyAgICB2aWV3QWN0aXZlQmx1ZUJnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPnJlbmRl
cigmcGFpbnRBY3RpdmVCbHVlQmcpOworICAgIHBhaW50QWN0aXZlQmx1ZUJnLmVuZCgpOworCisg
ICAgUVN0cmluZyBzdHJBY3RpdmVCbHVlQmc9ImFjdGl2ZUJsdWVCZy5wbmciOworCisgICAgdmll
d0FjdGl2ZUJsdWVCZy5jbG9zZSgpOworCisgICAgUVZFUklGWShpbWdBY3RpdmVCbHVlQmcgIT0g
aW1nQWN0aXZlUmVkQmcpOworfQorCit2b2lkIHRzdF9RV2ViVmlldzo6c2V0UGFsZXR0ZUFjdGl2
ZUZHKCkKK3sKKyAgICBRU3RyaW5nIGh0bWwgPSAiPGh0bWw+PGhlYWQ+PC9oZWFkPiIKKyAgICAg
ICAgICAgICAgICAgICAiPGJvZHk+IgorICAgICAgICAgICAgICAgICAgICJTb21lIHRleHQgaGVy
ZSIKKyAgICAgICAgICAgICAgICAgICAiPC9ib2R5PiIKKyAgICAgICAgICAgICAgICAgICAiPC9o
dG1sPiI7CisKKyAgICAvLyB1c2UgY29udHJvbFZpZXcgdG8gbWFuYWdlIGFjdGl2ZS9pbmFjdGl2
ZSBzdGF0ZSBvZiB0ZXN0IHZpZXdzIGJ5IHJhaXNpbmcKKyAgICAvLyBvciBsb3dlcmluZyB0aGVp
ciBwb3NpdGlvbiBpbiB0aGUgd2luZG93IHN0YWNrLgorICAgIFFXZWJWaWV3IGNvbnRyb2xWaWV3
OworICAgIGNvbnRyb2xWaWV3LnNldEh0bWwoaHRtbCk7CisKKyAgICBRV2ViVmlldyB2aWV3SW5h
Y3RpdmVDeWFuQmc7CisKKyAgICBRUGFsZXR0ZSBwYWxDeWFuSGw7CisgICAgUUJydXNoIGJydXNo
Q3lhbkhsKFFDb2xvcihRdDo6Y3lhbikpOyAKKyAgICBicnVzaEN5YW5IbC5zZXRTdHlsZShRdDo6
U29saWRQYXR0ZXJuKTsKKyAgICBwYWxDeWFuSGwuc2V0QnJ1c2goUVBhbGV0dGU6OkluYWN0aXZl
LCBRUGFsZXR0ZTo6SGlnaGxpZ2h0LCBicnVzaEN5YW5IbCk7CisKKyAgICB2aWV3SW5hY3RpdmVD
eWFuQmcuc2V0UGFsZXR0ZShwYWxDeWFuSGwpOworICAgIHZpZXdJbmFjdGl2ZUN5YW5CZy5zZXRI
dG1sKGh0bWwpOworICAgIHZpZXdJbmFjdGl2ZUN5YW5CZy5wYWdlKCktPnNldFZpZXdwb3J0U2l6
ZSh2aWV3SW5hY3RpdmVDeWFuQmcucGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+Y29udGVudHNTaXpl
KCkpOworICAgIHZpZXdJbmFjdGl2ZUN5YW5CZy5zaG93KCk7CisKKyAgICBRVGVzdDo6cVdhaXRG
b3JXaW5kb3dTaG93bigmdmlld0luYWN0aXZlQ3lhbkJnKTsgCisKKyAgICBjb250cm9sVmlldy5z
aG93KCk7CisgICAgY29udHJvbFZpZXcuYWN0aXZhdGVXaW5kb3coKTsKKworICAgIFFUZXN0Ojpx
V2FpdEZvcldpbmRvd1Nob3duKCZjb250cm9sVmlldyk7IAorCisgICAgdmlld0luYWN0aXZlQ3lh
bkJnLnBhZ2UoKS0+dHJpZ2dlckFjdGlvbihRV2ViUGFnZTo6U2VsZWN0QWxsKTsKKworICAgIFFJ
bWFnZSBpbWdJbmFjdGl2ZUN5YW5CZyh2aWV3SW5hY3RpdmVDeWFuQmcucGFnZSgpLT52aWV3cG9y
dFNpemUoKSwgUUltYWdlOjpGb3JtYXRfQVJHQjMyKTsKKyAgICBRUGFpbnRlciBwYWludEluYWN0
aXZlQ3lhbkJnKCZpbWdJbmFjdGl2ZUN5YW5CZyk7CisgICAgdmlld0luYWN0aXZlQ3lhbkJnLnBh
Z2UoKS0+Y3VycmVudEZyYW1lKCktPnJlbmRlcigmcGFpbnRJbmFjdGl2ZUN5YW5CZyk7CisgICAg
cGFpbnRJbmFjdGl2ZUN5YW5CZy5lbmQoKTsKKyAgICAvLyByZW5kZXJlZCBpbWFnZSBtdXN0IGhh
dmUgY3lhbiBiYWNrZ3JvdW5kIG9uIGFuIGluYWN0aXZlIFFXZWJWaWV3CisgICAgUVN0cmluZyBz
dHJJbmFjdGl2ZUN5YW5CZz0iaW5hY3RpdmVDeWFuQmcucG5nIjsKKyAKKyAgICBjb250cm9sVmll
dy5jbG9zZSgpOworICAgIHZpZXdJbmFjdGl2ZUN5YW5CZy5jbG9zZSgpOworCisgICAgUVdlYlZp
ZXcgdmlld0luYWN0aXZlTWFnZW50YUJnOworCisgICAgUVBhbGV0dGUgcGFsTWFnZW50YUhsOwor
ICAgIFFCcnVzaCBicnVzaE1hZ2VudGFIbChRQ29sb3IoUXQ6Om1hZ2VudGEpKTsgCisgICAgYnJ1
c2hNYWdlbnRhSGwuc2V0U3R5bGUoUXQ6OlNvbGlkUGF0dGVybik7CisgICAgcGFsTWFnZW50YUhs
LnNldEJydXNoKFFQYWxldHRlOjpJbmFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodCwgYnJ1c2hN
YWdlbnRhSGwpOworCisgICAgdmlld0luYWN0aXZlTWFnZW50YUJnLnNldFBhbGV0dGUocGFsTWFn
ZW50YUhsKTsKKyAgICB2aWV3SW5hY3RpdmVNYWdlbnRhQmcuc2V0SHRtbChodG1sKTsKKyAgICB2
aWV3SW5hY3RpdmVNYWdlbnRhQmcucGFnZSgpLT5zZXRWaWV3cG9ydFNpemUodmlld0luYWN0aXZl
TWFnZW50YUJnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPmNvbnRlbnRzU2l6ZSgpKTsKKyAgICB2
aWV3SW5hY3RpdmVNYWdlbnRhQmcuc2hvdygpOworCisgICAgUVRlc3Q6OnFXYWl0Rm9yV2luZG93
U2hvd24oJnZpZXdJbmFjdGl2ZU1hZ2VudGFCZyk7CisKKyAgICBjb250cm9sVmlldy5zaG93KCk7
CisgICAgY29udHJvbFZpZXcuYWN0aXZhdGVXaW5kb3coKTsKKworICAgIFFUZXN0OjpxV2FpdEZv
cldpbmRvd1Nob3duKCZjb250cm9sVmlldyk7IAorCisgICAgdmlld0luYWN0aXZlTWFnZW50YUJn
LnBhZ2UoKS0+dHJpZ2dlckFjdGlvbihRV2ViUGFnZTo6U2VsZWN0QWxsKTsKKworICAgIFFJbWFn
ZSBpbWdJbmFjdGl2ZU1hZ2VudGFCZyh2aWV3SW5hY3RpdmVNYWdlbnRhQmcucGFnZSgpLT52aWV3
cG9ydFNpemUoKSwgUUltYWdlOjpGb3JtYXRfQVJHQjMyKTsKKyAgICBRUGFpbnRlciBwYWludElu
YWN0aXZlTWFnZW50YUJnKCZpbWdJbmFjdGl2ZU1hZ2VudGFCZyk7CisgICAgdmlld0luYWN0aXZl
TWFnZW50YUJnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPnJlbmRlcigmcGFpbnRJbmFjdGl2ZU1h
Z2VudGFCZyk7CisgICAgcGFpbnRJbmFjdGl2ZU1hZ2VudGFCZy5lbmQoKTsKKyAgICAvLyByZW5k
ZXJlZCBpbWFnZSBtdXN0IGhhdmUgbWFnZW50YSBiYWNrZ3JvdW5kIG9uIGFuIGluYWN0aXZlIFFX
ZWJWaWV3CisgICAgUVN0cmluZyBzdHJJbmFjdGl2ZU1hZ2VudGFCZz0iaW5hY3RpdmVNYWdlbnRh
QmcucG5nIjsKKworICAgIGNvbnRyb2xWaWV3LmNsb3NlKCk7CisgICAgdmlld0luYWN0aXZlTWFn
ZW50YUJnLmNsb3NlKCk7CisKKyAgICBRVkVSSUZZKGltZ0luYWN0aXZlQ3lhbkJnICE9IGltZ0lu
YWN0aXZlTWFnZW50YUJnKTsKK30KKwordm9pZCB0c3RfUVdlYlZpZXc6OnNldFBhbGV0dGVJbmFj
dGl2ZUJHKCkKK3sKKyAgICBRU3RyaW5nIGh0bWwgPSAiPGh0bWw+PGhlYWQ+PC9oZWFkPiIKKyAg
ICAgICAgICAgICAgICAgICAiPGJvZHk+IgorICAgICAgICAgICAgICAgICAgICJTb21lIHRleHQg
aGVyZSIKKyAgICAgICAgICAgICAgICAgICAiPC9ib2R5PiIKKyAgICAgICAgICAgICAgICAgICAi
PC9odG1sPiI7CisKKyAgICAvLyB1c2UgY29udHJvbFZpZXcgdG8gbWFuYWdlIGFjdGl2ZS9pbmFj
dGl2ZSBzdGF0ZSBvZiB0ZXN0IHZpZXdzIGJ5IHJhaXNpbmcKKyAgICAvLyBvciBsb3dlcmluZyB0
aGVpciBwb3NpdGlvbiBpbiB0aGUgd2luZG93IHN0YWNrLgorICAgIFFXZWJWaWV3IGNvbnRyb2xW
aWV3OworICAgIGNvbnRyb2xWaWV3LnNldEh0bWwoaHRtbCk7CisKKyAgICBRV2ViVmlldyB2aWV3
QWN0aXZlQmxhY2tGZzsKKworICAgIFFQYWxldHRlIHBhbEJsYWNrSGxUZXh0OworICAgIFFCcnVz
aCBicnVzaEJsYWNrSGxUZXh0KFFDb2xvcihRdDo6YmxhY2spKTsgCisgICAgYnJ1c2hCbGFja0hs
VGV4dC5zZXRTdHlsZShRdDo6U29saWRQYXR0ZXJuKTsKKyAgICBwYWxCbGFja0hsVGV4dC5zZXRC
cnVzaChRUGFsZXR0ZTo6QWN0aXZlLCBRUGFsZXR0ZTo6SGlnaGxpZ2h0ZWRUZXh0LCBicnVzaEJs
YWNrSGxUZXh0KTsKKworICAgIHZpZXdBY3RpdmVCbGFja0ZnLnNldFBhbGV0dGUocGFsQmxhY2tI
bFRleHQpOworICAgIHZpZXdBY3RpdmVCbGFja0ZnLnNldEh0bWwoaHRtbCk7CisgICAgdmlld0Fj
dGl2ZUJsYWNrRmcucGFnZSgpLT5zZXRWaWV3cG9ydFNpemUodmlld0FjdGl2ZUJsYWNrRmcucGFn
ZSgpLT5jdXJyZW50RnJhbWUoKS0+Y29udGVudHNTaXplKCkpOworICAgIHZpZXdBY3RpdmVCbGFj
a0ZnLnNob3coKTsKKworICAgIFFUZXN0OjpxV2FpdEZvcldpbmRvd1Nob3duKCZ2aWV3QWN0aXZl
QmxhY2tGZyk7CisKKyAgICB2aWV3QWN0aXZlQmxhY2tGZy5hY3RpdmF0ZVdpbmRvdygpOworICAg
IHZpZXdBY3RpdmVCbGFja0ZnLnBhZ2UoKS0+dHJpZ2dlckFjdGlvbihRV2ViUGFnZTo6U2VsZWN0
QWxsKTsKKworICAgIFFJbWFnZSBpbWdBY3RpdmVCbGFja0ZnKHZpZXdBY3RpdmVCbGFja0ZnLnBh
Z2UoKS0+dmlld3BvcnRTaXplKCksIFFJbWFnZTo6Rm9ybWF0X0FSR0IzMik7CisgICAgUVBhaW50
ZXIgcGFpbnRBY3RpdmVCbGFja0ZnKCZpbWdBY3RpdmVCbGFja0ZnKTsKKyAgICB2aWV3QWN0aXZl
QmxhY2tGZy5wYWdlKCktPmN1cnJlbnRGcmFtZSgpLT5yZW5kZXIoJnBhaW50QWN0aXZlQmxhY2tG
Zyk7CisgICAgcGFpbnRBY3RpdmVCbGFja0ZnLmVuZCgpOworICAgIC8vIHJlbmRlcmVkIGltYWdl
IG11c3QgaGF2ZSBibGFjayBmb3JlZ3JvdW5kIG9uIGFuIGFjdGl2ZSBRV2ViVmlldworICAgIFFT
dHJpbmcgc3RyQWN0aXZlQmxhY2tGZz0iYWN0aXZlQmxhY2tGZy5wbmciOworCisgICAgdmlld0Fj
dGl2ZUJsYWNrRmcuY2xvc2UoKTsKKworICAgIFFXZWJWaWV3IHZpZXdBY3RpdmVHcmVlbkZnOwor
CisgICAgUVBhbGV0dGUgcGFsR3JlZW5IbFRleHQ7CisgICAgUUJydXNoIGJydXNoR3JlZW5IbFRl
eHQoUUNvbG9yKFF0OjpncmVlbikpOyAKKyAgICBicnVzaEdyZWVuSGxUZXh0LnNldFN0eWxlKFF0
OjpTb2xpZFBhdHRlcm4pOworICAgIHBhbEdyZWVuSGxUZXh0LnNldEJydXNoKFFQYWxldHRlOjpB
Y3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHRlZFRleHQsIGJydXNoR3JlZW5IbFRleHQpOworCisg
ICAgdmlld0FjdGl2ZUdyZWVuRmcuc2V0UGFsZXR0ZShwYWxHcmVlbkhsVGV4dCk7CisgICAgdmll
d0FjdGl2ZUdyZWVuRmcuc2V0SHRtbChodG1sKTsKKyAgICB2aWV3QWN0aXZlR3JlZW5GZy5wYWdl
KCktPnNldFZpZXdwb3J0U2l6ZSh2aWV3QWN0aXZlR3JlZW5GZy5wYWdlKCktPmN1cnJlbnRGcmFt
ZSgpLT5jb250ZW50c1NpemUoKSk7CisgICAgdmlld0FjdGl2ZUdyZWVuRmcuc2hvdygpOworCisg
ICAgUVRlc3Q6OnFXYWl0Rm9yV2luZG93U2hvd24oJnZpZXdBY3RpdmVHcmVlbkZnKTsKKworICAg
IHZpZXdBY3RpdmVHcmVlbkZnLmFjdGl2YXRlV2luZG93KCk7CisgICAgdmlld0FjdGl2ZUdyZWVu
RmcucGFnZSgpLT50cmlnZ2VyQWN0aW9uKFFXZWJQYWdlOjpTZWxlY3RBbGwpOworCisgICAgUUlt
YWdlIGltZ0FjdGl2ZUdyZWVuRmcodmlld0FjdGl2ZUdyZWVuRmcucGFnZSgpLT52aWV3cG9ydFNp
emUoKSwgUUltYWdlOjpGb3JtYXRfQVJHQjMyKTsKKyAgICBRUGFpbnRlciBwYWludEFjdGl2ZUdy
ZWVuRmcoJmltZ0FjdGl2ZUdyZWVuRmcpOworICAgIHZpZXdBY3RpdmVHcmVlbkZnLnBhZ2UoKS0+
Y3VycmVudEZyYW1lKCktPnJlbmRlcigmcGFpbnRBY3RpdmVHcmVlbkZnKTsKKyAgICBwYWludEFj
dGl2ZUdyZWVuRmcuZW5kKCk7CisgICAgLy8gcmVuZGVyZWQgaW1hZ2UgbXVzdCBoYXZlIGdyZWVu
IGZvcmVncm91bmQgb24gYW4gYWN0aXZlIFFXZWJWaWV3CisgICAgUVN0cmluZyBzdHJBY3RpdmVH
cmVlbkZnPSJhY3RpdmVHcmVlbkZnLnBuZyI7CisKKyAgICB2aWV3QWN0aXZlR3JlZW5GZy5jbG9z
ZSgpOworCisgICAgUVZFUklGWShpbWdBY3RpdmVCbGFja0ZnICE9IGltZ0FjdGl2ZUdyZWVuRmcp
OworfQorCit2b2lkIHRzdF9RV2ViVmlldzo6c2V0UGFsZXR0ZUluYWN0aXZlRkcoKQoreworICAg
IFFTdHJpbmcgaHRtbCA9ICI8aHRtbD48aGVhZD48L2hlYWQ+IgorICAgICAgICAgICAgICAgICAg
ICI8Ym9keT4iCisgICAgICAgICAgICAgICAgICAgIlNvbWUgdGV4dCBoZXJlIgorICAgICAgICAg
ICAgICAgICAgICI8L2JvZHk+IgorICAgICAgICAgICAgICAgICAgICI8L2h0bWw+IjsKKworICAg
IC8vIHVzZSBjb250cm9sVmlldyB0byBtYW5hZ2UgYWN0aXZlL2luYWN0aXZlIHN0YXRlIG9mIHRl
c3Qgdmlld3MgYnkgcmFpc2luZworICAgIC8vIG9yIGxvd2VyaW5nIHRoZWlyIHBvc2l0aW9uIGlu
IHRoZSB3aW5kb3cgc3RhY2suCisgICAgUVdlYlZpZXcgY29udHJvbFZpZXc7CisgICAgY29udHJv
bFZpZXcuc2V0SHRtbChodG1sKTsKKworICAgIFFXZWJWaWV3IHZpZXdJbmFjdGl2ZUdyYXlGZzsK
KworICAgIFFQYWxldHRlIHBhbEdyYXlIbFRleHQ7CisgICAgUUJydXNoIGJydXNoR3JheUhsVGV4
dChRQ29sb3IoUXQ6OmdyYXkpKTsgCisgICAgYnJ1c2hHcmF5SGxUZXh0LnNldFN0eWxlKFF0OjpT
b2xpZFBhdHRlcm4pOworICAgIHBhbEdyYXlIbFRleHQuc2V0QnJ1c2goUVBhbGV0dGU6OkluYWN0
aXZlLCBRUGFsZXR0ZTo6SGlnaGxpZ2h0ZWRUZXh0LCBicnVzaEdyYXlIbFRleHQpOworCisgICAg
dmlld0luYWN0aXZlR3JheUZnLnNldFBhbGV0dGUocGFsR3JheUhsVGV4dCk7CisgICAgdmlld0lu
YWN0aXZlR3JheUZnLnNldEh0bWwoaHRtbCk7CisgICAgdmlld0luYWN0aXZlR3JheUZnLnBhZ2Uo
KS0+c2V0Vmlld3BvcnRTaXplKHZpZXdJbmFjdGl2ZUdyYXlGZy5wYWdlKCktPmN1cnJlbnRGcmFt
ZSgpLT5jb250ZW50c1NpemUoKSk7CisgICAgdmlld0luYWN0aXZlR3JheUZnLnNob3coKTsKKwor
ICAgIFFUZXN0OjpxV2FpdEZvcldpbmRvd1Nob3duKCZ2aWV3SW5hY3RpdmVHcmF5RmcpOworCisg
ICAgY29udHJvbFZpZXcuc2hvdygpOworICAgIGNvbnRyb2xWaWV3LmFjdGl2YXRlV2luZG93KCk7
CisKKyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmY29udHJvbFZpZXcpOyAKKworICAg
IHZpZXdJbmFjdGl2ZUdyYXlGZy5wYWdlKCktPnRyaWdnZXJBY3Rpb24oUVdlYlBhZ2U6OlNlbGVj
dEFsbCk7CisKKyAgICBRSW1hZ2UgaW1nSW5hY3RpdmVHcmF5Rmcodmlld0luYWN0aXZlR3JheUZn
LnBhZ2UoKS0+dmlld3BvcnRTaXplKCksIFFJbWFnZTo6Rm9ybWF0X0FSR0IzMik7CisgICAgUVBh
aW50ZXIgcGFpbnRJbmFjdGl2ZUdyYXlGZygmaW1nSW5hY3RpdmVHcmF5RmcpOworICAgIHZpZXdJ
bmFjdGl2ZUdyYXlGZy5wYWdlKCktPmN1cnJlbnRGcmFtZSgpLT5yZW5kZXIoJnBhaW50SW5hY3Rp
dmVHcmF5RmcpOworICAgIHBhaW50SW5hY3RpdmVHcmF5RmcuZW5kKCk7CisgICAgLy8gcmVuZGVy
ZWQgaW1hZ2UgbXVzdCBoYXZlIGdyYXkgZm9yZWdyb3VuZCBvbiBhbiBpbmFjdGl2ZSBRV2ViVmll
dworICAgIFFTdHJpbmcgc3RySW5hY3RpdmVHcmF5Rmc9ImluYWN0aXZlR3JheUZnLnBuZyI7CisK
KyAgICBjb250cm9sVmlldy5jbG9zZSgpOworICAgIHZpZXdJbmFjdGl2ZUdyYXlGZy5jbG9zZSgp
OworCisgICAgUVdlYlZpZXcgdmlld0luYWN0aXZlWWVsbG93Rmc7CisKKyAgICBRUGFsZXR0ZSBw
YWxZZWxsb3dIbFRleHQ7CisgICAgUUJydXNoIGJydXNoWWVsbG93SGxUZXh0KFFDb2xvcihRdDo6
eWVsbG93KSk7IAorICAgIGJydXNoWWVsbG93SGxUZXh0LnNldFN0eWxlKFF0OjpTb2xpZFBhdHRl
cm4pOworICAgIHBhbFllbGxvd0hsVGV4dC5zZXRCcnVzaChRUGFsZXR0ZTo6SW5hY3RpdmUsIFFQ
YWxldHRlOjpIaWdobGlnaHRlZFRleHQsIGJydXNoWWVsbG93SGxUZXh0KTsKKworICAgIHZpZXdJ
bmFjdGl2ZVllbGxvd0ZnLnNldFBhbGV0dGUocGFsWWVsbG93SGxUZXh0KTsKKyAgICB2aWV3SW5h
Y3RpdmVZZWxsb3dGZy5zZXRIdG1sKGh0bWwpOworICAgIHZpZXdJbmFjdGl2ZVllbGxvd0ZnLnBh
Z2UoKS0+c2V0Vmlld3BvcnRTaXplKHZpZXdJbmFjdGl2ZVllbGxvd0ZnLnBhZ2UoKS0+Y3VycmVu
dEZyYW1lKCktPmNvbnRlbnRzU2l6ZSgpKTsKKyAgICB2aWV3SW5hY3RpdmVZZWxsb3dGZy5zaG93
KCk7CisKKyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmdmlld0luYWN0aXZlWWVsbG93
RmcpOworCisgICAgY29udHJvbFZpZXcuc2hvdygpOworICAgIGNvbnRyb2xWaWV3LmFjdGl2YXRl
V2luZG93KCk7CisKKyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmY29udHJvbFZpZXcp
OyAKKworICAgIHZpZXdJbmFjdGl2ZVllbGxvd0ZnLnBhZ2UoKS0+dHJpZ2dlckFjdGlvbihRV2Vi
UGFnZTo6U2VsZWN0QWxsKTsKKworICAgIFFJbWFnZSBpbWdJbmFjdGl2ZVllbGxvd0ZnKHZpZXdJ
bmFjdGl2ZVllbGxvd0ZnLnBhZ2UoKS0+dmlld3BvcnRTaXplKCksIFFJbWFnZTo6Rm9ybWF0X0FS
R0IzMik7CisgICAgUVBhaW50ZXIgcGFpbnRJbmFjdGl2ZVllbGxvd0ZnKCZpbWdJbmFjdGl2ZVll
bGxvd0ZnKTsKKyAgICB2aWV3SW5hY3RpdmVZZWxsb3dGZy5wYWdlKCktPmN1cnJlbnRGcmFtZSgp
LT5yZW5kZXIoJnBhaW50SW5hY3RpdmVZZWxsb3dGZyk7CisgICAgcGFpbnRJbmFjdGl2ZVllbGxv
d0ZnLmVuZCgpOworICAgIC8vIHJlbmRlcmVkIGltYWdlIG11c3QgaGF2ZSB5ZWxsb3cgZm9yZWdy
b3VuZCBvbiBhbiBpbmFjdGl2ZSBRV2ViVmlldworICAgIFFTdHJpbmcgc3RySW5hY3RpdmVZZWxs
b3dGZz0iaW5hY3RpdmVZZWxsb3dGZy5wbmciOworCisgICAgY29udHJvbFZpZXcuY2xvc2UoKTsK
KyAgICB2aWV3SW5hY3RpdmVZZWxsb3dGZy5jbG9zZSgpOworCisgICAgUVZFUklGWShpbWdJbmFj
dGl2ZUdyYXlGZyAhPSBpbWdJbmFjdGl2ZVllbGxvd0ZnKTsKK30KKwogUVRFU1RfTUFJTih0c3Rf
UVdlYlZpZXcpCiAjaW5jbHVkZSAidHN0X3F3ZWJ2aWV3Lm1vYyIKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81992</attachid>
            <date>2011-02-10 09:24:54 -0800</date>
            <delta_ts>2011-02-22 10:54:09 -0800</delta_ts>
            <desc>fix test names</desc>
            <filename>31742_10Feb2011.patch</filename>
            <type>text/plain</type>
            <size>15172</size>
            <attacher name="Fabrizio">fabrizio.machado</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc4MjMyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTEtMDItMTAgIEZhYnJpemlv
IE1hY2hhZG8gIDxmYWJyaXppby5tYWNoYWRvQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVc2UgY3VzdG9tIFFXZWJWaWV3IHBhbGV0
dGUgaWYgYXBwbGljYXRpb24gcHJvdmlkZXMgb25lLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzE3NDIKKworICAgICAgICBUZXN0cyBhZGRlZCBpbiBX
ZWJLaXQvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2VidmlldworCisgICAgICAgICogcGxhdGZv
cm0vcXQvUmVuZGVyVGhlbWVRdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVF0
OjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91bmRDb2xvcik6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUaGVtZVF0OjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFja2dyb3VuZENv
bG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtQWN0aXZlU2Vs
ZWN0aW9uRm9yZWdyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6
OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IpOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcik6CisKIDIwMTEtMDIt
MTAgIFNoZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI3ODIxOS4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCShyZXZpc2lvbiA3ODIxMSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1lUXQuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zODAsMzAgKzM4MCwzNSBAQCB2b2lkIFJlbmRlclRoZW1lUXQ6OmFkanVzdFJlcGFpbnRSZWN0
KGNvCiBDb2xvciBSZW5kZXJUaGVtZVF0OjpwbGF0Zm9ybUFjdGl2ZVNlbGVjdGlvbkJhY2tncm91
bmRDb2xvcigpIGNvbnN0CiB7CiAgICAgUVBhbGV0dGUgcGFsID0gUUFwcGxpY2F0aW9uOjpwYWxl
dHRlKCk7CisgICAgc2V0UGFsZXR0ZUZyb21QYWdlQ2xpZW50SWZFeGlzdHMocGFsKTsKICAgICBy
ZXR1cm4gcGFsLmJydXNoKFFQYWxldHRlOjpBY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHQpLmNv
bG9yKCk7CiB9CiAKIENvbG9yIFJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtSW5hY3RpdmVTZWxlY3Rp
b25CYWNrZ3JvdW5kQ29sb3IoKSBjb25zdAogewogICAgIFFQYWxldHRlIHBhbCA9IFFBcHBsaWNh
dGlvbjo6cGFsZXR0ZSgpOworICAgIHNldFBhbGV0dGVGcm9tUGFnZUNsaWVudElmRXhpc3RzKHBh
bCk7CiAgICAgcmV0dXJuIHBhbC5icnVzaChRUGFsZXR0ZTo6SW5hY3RpdmUsIFFQYWxldHRlOjpI
aWdobGlnaHQpLmNvbG9yKCk7CiB9CiAKIENvbG9yIFJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtQWN0
aXZlU2VsZWN0aW9uRm9yZWdyb3VuZENvbG9yKCkgY29uc3QKIHsKICAgICBRUGFsZXR0ZSBwYWwg
PSBRQXBwbGljYXRpb246OnBhbGV0dGUoKTsKKyAgICBzZXRQYWxldHRlRnJvbVBhZ2VDbGllbnRJ
ZkV4aXN0cyhwYWwpOwogICAgIHJldHVybiBwYWwuYnJ1c2goUVBhbGV0dGU6OkFjdGl2ZSwgUVBh
bGV0dGU6OkhpZ2hsaWdodGVkVGV4dCkuY29sb3IoKTsKIH0KIAogQ29sb3IgUmVuZGVyVGhlbWVR
dDo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0CiB7CiAg
ICAgUVBhbGV0dGUgcGFsID0gUUFwcGxpY2F0aW9uOjpwYWxldHRlKCk7CisgICAgc2V0UGFsZXR0
ZUZyb21QYWdlQ2xpZW50SWZFeGlzdHMocGFsKTsKICAgICByZXR1cm4gcGFsLmJydXNoKFFQYWxl
dHRlOjpJbmFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodGVkVGV4dCkuY29sb3IoKTsKIH0KIAog
Q29sb3IgUmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1Gb2N1c1JpbmdDb2xvcigpIGNvbnN0CiB7CiAg
ICAgUVBhbGV0dGUgcGFsID0gUUFwcGxpY2F0aW9uOjpwYWxldHRlKCk7CisgICAgc2V0UGFsZXR0
ZUZyb21QYWdlQ2xpZW50SWZFeGlzdHMocGFsKTsKICAgICByZXR1cm4gcGFsLmJydXNoKFFQYWxl
dHRlOjpBY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHQpLmNvbG9yKCk7CiB9CiAKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nCShyZXZpc2lvbiA3ODIzMikKKysrIFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDItMTAgIEZhYnJpemlvIE1h
Y2hhZG8gIDxmYWJyaXppby5tYWNoYWRvQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0cyBmb3Igc2V0dGluZyBjdXN0b20gcGFs
ZXR0ZSBvbiBoaWdobGlnaHRlZAorICAgICAgICB0ZXh0IGluIFdlYkNvcmUvcGxhdGZvcm0vcXQv
UmVuZGVyVGhlbWVRdC5jcHAKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzE3NDIKKworICAgICAgICAqIHRlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmll
dy5jcHA6CisgICAgICAgICh0c3RfUVdlYlZpZXc6OnNldFBhbGV0dGVBY3RpdmVCRyk6CisgICAg
ICAgICh0c3RfUVdlYlZpZXc6OnNldFBhbGV0dGVBY3RpdmVGRyk6CisgICAgICAgICh0c3RfUVdl
YlZpZXc6OnNldFBhbGV0dGVJbmFjdGl2ZUJHKToKKyAgICAgICAgKHRzdF9RV2ViVmlldzo6c2V0
UGFsZXR0ZUluYWN0aXZlRkcpOgorCiAyMDExLTAyLTEwICBrYXN0aHVyaSAgPGthc3RodXJpLm4t
c0Bub2tpYS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW50b25pbyBHb21lcy4KSW5kZXg6
IFNvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAJ
KHJldmlzaW9uIDc4MjExKQorKysgU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2Vidmlldy90c3Rf
cXdlYnZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01MSw2ICs1MSwxMSBAQCBwcml2YXRlIHNs
b3RzOgogICAgIHZvaWQgZm9jdXNJbnB1dFR5cGVzKCk7CiAKICAgICB2b2lkIGNyYXNoVGVzdHMo
KTsKKworICAgIHZvaWQgc2V0UGFsZXR0ZUFjdGl2ZUJHKCk7CisgICAgdm9pZCBzZXRQYWxldHRl
QWN0aXZlRkcoKTsKKyAgICB2b2lkIHNldFBhbGV0dGVJbmFjdGl2ZUJHKCk7ICAKKyAgICB2b2lk
IHNldFBhbGV0dGVJbmFjdGl2ZUZHKCk7ICAKIH07CiAKIC8vIFRoaXMgd2lsbCBiZSBjYWxsZWQg
YmVmb3JlIHRoZSBmaXJzdCB0ZXN0IGZ1bmN0aW9uIGlzIGV4ZWN1dGVkLgpAQCAtMzA2LDYgKzMx
MSwzMDMgQEAgdm9pZCB0c3RfUVdlYlZpZXc6OmZvY3VzSW5wdXRUeXBlcygpCiAgICAgUVZFUklG
WSh3ZWJWaWV3LnRlc3RBdHRyaWJ1dGUoUXQ6OldBX0lucHV0TWV0aG9kRW5hYmxlZCkpOwogfQog
CisvLyBSZW5kZXIgYSBRV2ViVmlldyB0byBhIFFJbWFnZSB0d2ljZSwgZWFjaCB0aW1lIHdpdGgg
YSBkaWZmZXJlbnQgcGFsZXR0ZSBzZXQsIAorLy8gdmVyaWZ5IHRoYXQgaW1hZ2VzIHJlbmRlcmVk
IGFyZSBub3QgdGhlIHNhbWUsIGNvbmZpcm1pbmcgV2ViQ29yZSB1c2FnZSBvZiAKKy8vIGN1c3Rv
bSBwYWxldHRlIG9uIHNlbGVjdGlvbnMuICBUaGlzIHNlcXVlbmNlIGRvbmUgZm9yIGFsbCBjb21i
aW4uIG9mIGFjdGl2ZQorLy8gYW5kIGluYWN0aXZlIFFXZWJWaWV3IGFuZCBoaWdobGlnaHRlZCBG
RyBhbmQgQkcsIHJlc3VsdGluZyBpbiA0IGFzc2VydGlvbnMuCit2b2lkIHRzdF9RV2ViVmlldzo6
c2V0UGFsZXR0ZUFjdGl2ZUJHKCkKK3sKKyAgICBRU3RyaW5nIGh0bWwgPSAiPGh0bWw+PGhlYWQ+
PC9oZWFkPiIKKyAgICAgICAgICAgICAgICAgICAiPGJvZHk+IgorICAgICAgICAgICAgICAgICAg
ICJTb21lIHRleHQgaGVyZSIKKyAgICAgICAgICAgICAgICAgICAiPC9ib2R5PiIKKyAgICAgICAg
ICAgICAgICAgICAiPC9odG1sPiI7CisKKyAgICAvLyB1c2UgY29udHJvbFZpZXcgdG8gbWFuYWdl
IGFjdGl2ZS9pbmFjdGl2ZSBzdGF0ZSBvZiB0ZXN0IHZpZXdzIGJ5IHJhaXNpbmcKKyAgICAvLyBv
ciBsb3dlcmluZyB0aGVpciBwb3NpdGlvbiBpbiB0aGUgd2luZG93IHN0YWNrLgorICAgIFFXZWJW
aWV3IGNvbnRyb2xWaWV3OworICAgIGNvbnRyb2xWaWV3LnNldEh0bWwoaHRtbCk7CisKKyAgICBR
V2ViVmlldyB2aWV3QWN0aXZlUmVkQmc7CisKKyAgICBRUGFsZXR0ZSBwYWxSZWRIbDsKKyAgICBR
QnJ1c2ggYnJ1c2hSZWRIbChRQ29sb3IoUXQ6OnJlZCkpOyAKKyAgICBicnVzaFJlZEhsLnNldFN0
eWxlKFF0OjpTb2xpZFBhdHRlcm4pOworICAgIHBhbFJlZEhsLnNldEJydXNoKFFQYWxldHRlOjpB
Y3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHQsIGJydXNoUmVkSGwpOworCisgICAgdmlld0FjdGl2
ZVJlZEJnLnNldFBhbGV0dGUocGFsUmVkSGwpOworICAgIHZpZXdBY3RpdmVSZWRCZy5zZXRIdG1s
KGh0bWwpOworICAgIHZpZXdBY3RpdmVSZWRCZy5wYWdlKCktPnNldFZpZXdwb3J0U2l6ZSh2aWV3
QWN0aXZlUmVkQmcucGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+Y29udGVudHNTaXplKCkpOworICAg
IHZpZXdBY3RpdmVSZWRCZy5zaG93KCk7CisKKyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93
bigmdmlld0FjdGl2ZVJlZEJnKTsKKworICAgIHZpZXdBY3RpdmVSZWRCZy5hY3RpdmF0ZVdpbmRv
dygpOworICAgIHZpZXdBY3RpdmVSZWRCZy5wYWdlKCktPnRyaWdnZXJBY3Rpb24oUVdlYlBhZ2U6
OlNlbGVjdEFsbCk7CisKKyAgICAvLyByZW5kZXJlZCBpbWFnZSBtdXN0IGhhdmUgcmVkIGJhY2tn
cm91bmQgb24gYW4gYWN0aXZlIFFXZWJWaWV3CisgICAgUUltYWdlIGltZ0FjdGl2ZVJlZEJnKHZp
ZXdBY3RpdmVSZWRCZy5wYWdlKCktPnZpZXdwb3J0U2l6ZSgpLCBRSW1hZ2U6OkZvcm1hdF9BUkdC
MzIpOworICAgIFFQYWludGVyIHBhaW50QWN0aXZlUmVkQmcoJmltZ0FjdGl2ZVJlZEJnKTsKKyAg
ICB2aWV3QWN0aXZlUmVkQmcucGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+cmVuZGVyKCZwYWludEFj
dGl2ZVJlZEJnKTsKKyAgICBwYWludEFjdGl2ZVJlZEJnLmVuZCgpOworICAgIFFTdHJpbmcgc3Ry
QWN0aXZlUmVkQmc9ImFjdGl2ZVJlZEJnLnBuZyI7CisKKyAgICB2aWV3QWN0aXZlUmVkQmcuY2xv
c2UoKTsKKworICAgIFFXZWJWaWV3IHZpZXdBY3RpdmVCbHVlQmc7CisKKyAgICBRUGFsZXR0ZSBw
YWxCbHVlSGw7CisgICAgUUJydXNoIGJydXNoQmx1ZUhsKFFDb2xvcihRdDo6Ymx1ZSkpOyAKKyAg
ICBicnVzaEJsdWVIbC5zZXRTdHlsZShRdDo6U29saWRQYXR0ZXJuKTsKKyAgICBwYWxCbHVlSGwu
c2V0QnJ1c2goUVBhbGV0dGU6OkFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodCwgYnJ1c2hCbHVl
SGwpOworCisgICAgdmlld0FjdGl2ZUJsdWVCZy5zZXRQYWxldHRlKHBhbEJsdWVIbCk7CisgICAg
dmlld0FjdGl2ZUJsdWVCZy5zZXRIdG1sKGh0bWwpOworICAgIHZpZXdBY3RpdmVCbHVlQmcucGFn
ZSgpLT5zZXRWaWV3cG9ydFNpemUodmlld0FjdGl2ZUJsdWVCZy5wYWdlKCktPmN1cnJlbnRGcmFt
ZSgpLT5jb250ZW50c1NpemUoKSk7CisgICAgdmlld0FjdGl2ZUJsdWVCZy5zaG93KCk7CisKKyAg
ICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmdmlld0FjdGl2ZUJsdWVCZyk7CisKKyAgICB2
aWV3QWN0aXZlQmx1ZUJnLmFjdGl2YXRlV2luZG93KCk7CisgICAgdmlld0FjdGl2ZUJsdWVCZy5w
YWdlKCktPnRyaWdnZXJBY3Rpb24oUVdlYlBhZ2U6OlNlbGVjdEFsbCk7CisKKyAgICAvLyByZW5k
ZXJlZCBpbWFnZSBtdXN0IGhhdmUgYmx1ZSBiYWNrZ3JvdW5kIG9uIGFuIGFjdGl2ZSBRV2ViVmll
dworICAgIFFJbWFnZSBpbWdBY3RpdmVCbHVlQmcodmlld0FjdGl2ZUJsdWVCZy5wYWdlKCktPnZp
ZXdwb3J0U2l6ZSgpLCBRSW1hZ2U6OkZvcm1hdF9BUkdCMzIpOworICAgIFFQYWludGVyIHBhaW50
QWN0aXZlQmx1ZUJnKCZpbWdBY3RpdmVCbHVlQmcpOworICAgIHZpZXdBY3RpdmVCbHVlQmcucGFn
ZSgpLT5jdXJyZW50RnJhbWUoKS0+cmVuZGVyKCZwYWludEFjdGl2ZUJsdWVCZyk7CisgICAgcGFp
bnRBY3RpdmVCbHVlQmcuZW5kKCk7CisKKyAgICBRU3RyaW5nIHN0ckFjdGl2ZUJsdWVCZz0iYWN0
aXZlQmx1ZUJnLnBuZyI7CisKKyAgICB2aWV3QWN0aXZlQmx1ZUJnLmNsb3NlKCk7CisKKyAgICBR
VkVSSUZZKGltZ0FjdGl2ZUJsdWVCZyAhPSBpbWdBY3RpdmVSZWRCZyk7Cit9CisKK3ZvaWQgdHN0
X1FXZWJWaWV3OjpzZXRQYWxldHRlQWN0aXZlRkcoKQoreworICAgIFFTdHJpbmcgaHRtbCA9ICI8
aHRtbD48aGVhZD48L2hlYWQ+IgorICAgICAgICAgICAgICAgICAgICI8Ym9keT4iCisgICAgICAg
ICAgICAgICAgICAgIlNvbWUgdGV4dCBoZXJlIgorICAgICAgICAgICAgICAgICAgICI8L2JvZHk+
IgorICAgICAgICAgICAgICAgICAgICI8L2h0bWw+IjsKKworICAgIC8vIHVzZSBjb250cm9sVmll
dyB0byBtYW5hZ2UgYWN0aXZlL2luYWN0aXZlIHN0YXRlIG9mIHRlc3Qgdmlld3MgYnkgcmFpc2lu
ZworICAgIC8vIG9yIGxvd2VyaW5nIHRoZWlyIHBvc2l0aW9uIGluIHRoZSB3aW5kb3cgc3RhY2su
CisgICAgUVdlYlZpZXcgY29udHJvbFZpZXc7CisgICAgY29udHJvbFZpZXcuc2V0SHRtbChodG1s
KTsKKworICAgIFFXZWJWaWV3IHZpZXdBY3RpdmVCbGFja0ZnOworCisgICAgUVBhbGV0dGUgcGFs
QmxhY2tIbFRleHQ7CisgICAgUUJydXNoIGJydXNoQmxhY2tIbFRleHQoUUNvbG9yKFF0OjpibGFj
aykpOyAKKyAgICBicnVzaEJsYWNrSGxUZXh0LnNldFN0eWxlKFF0OjpTb2xpZFBhdHRlcm4pOwor
ICAgIHBhbEJsYWNrSGxUZXh0LnNldEJydXNoKFFQYWxldHRlOjpBY3RpdmUsIFFQYWxldHRlOjpI
aWdobGlnaHRlZFRleHQsIGJydXNoQmxhY2tIbFRleHQpOworCisgICAgdmlld0FjdGl2ZUJsYWNr
Rmcuc2V0UGFsZXR0ZShwYWxCbGFja0hsVGV4dCk7CisgICAgdmlld0FjdGl2ZUJsYWNrRmcuc2V0
SHRtbChodG1sKTsKKyAgICB2aWV3QWN0aXZlQmxhY2tGZy5wYWdlKCktPnNldFZpZXdwb3J0U2l6
ZSh2aWV3QWN0aXZlQmxhY2tGZy5wYWdlKCktPmN1cnJlbnRGcmFtZSgpLT5jb250ZW50c1NpemUo
KSk7CisgICAgdmlld0FjdGl2ZUJsYWNrRmcuc2hvdygpOworCisgICAgUVRlc3Q6OnFXYWl0Rm9y
V2luZG93U2hvd24oJnZpZXdBY3RpdmVCbGFja0ZnKTsKKworICAgIHZpZXdBY3RpdmVCbGFja0Zn
LmFjdGl2YXRlV2luZG93KCk7CisgICAgdmlld0FjdGl2ZUJsYWNrRmcucGFnZSgpLT50cmlnZ2Vy
QWN0aW9uKFFXZWJQYWdlOjpTZWxlY3RBbGwpOworCisgICAgUUltYWdlIGltZ0FjdGl2ZUJsYWNr
Rmcodmlld0FjdGl2ZUJsYWNrRmcucGFnZSgpLT52aWV3cG9ydFNpemUoKSwgUUltYWdlOjpGb3Jt
YXRfQVJHQjMyKTsKKyAgICBRUGFpbnRlciBwYWludEFjdGl2ZUJsYWNrRmcoJmltZ0FjdGl2ZUJs
YWNrRmcpOworICAgIHZpZXdBY3RpdmVCbGFja0ZnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPnJl
bmRlcigmcGFpbnRBY3RpdmVCbGFja0ZnKTsKKyAgICBwYWludEFjdGl2ZUJsYWNrRmcuZW5kKCk7
CisgICAgLy8gcmVuZGVyZWQgaW1hZ2UgbXVzdCBoYXZlIGJsYWNrIGZvcmVncm91bmQgb24gYW4g
YWN0aXZlIFFXZWJWaWV3CisgICAgUVN0cmluZyBzdHJBY3RpdmVCbGFja0ZnPSJhY3RpdmVCbGFj
a0ZnLnBuZyI7CisKKyAgICB2aWV3QWN0aXZlQmxhY2tGZy5jbG9zZSgpOworCisgICAgUVdlYlZp
ZXcgdmlld0FjdGl2ZUdyZWVuRmc7CisKKyAgICBRUGFsZXR0ZSBwYWxHcmVlbkhsVGV4dDsKKyAg
ICBRQnJ1c2ggYnJ1c2hHcmVlbkhsVGV4dChRQ29sb3IoUXQ6OmdyZWVuKSk7IAorICAgIGJydXNo
R3JlZW5IbFRleHQuc2V0U3R5bGUoUXQ6OlNvbGlkUGF0dGVybik7CisgICAgcGFsR3JlZW5IbFRl
eHQuc2V0QnJ1c2goUVBhbGV0dGU6OkFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodGVkVGV4dCwg
YnJ1c2hHcmVlbkhsVGV4dCk7CisKKyAgICB2aWV3QWN0aXZlR3JlZW5GZy5zZXRQYWxldHRlKHBh
bEdyZWVuSGxUZXh0KTsKKyAgICB2aWV3QWN0aXZlR3JlZW5GZy5zZXRIdG1sKGh0bWwpOworICAg
IHZpZXdBY3RpdmVHcmVlbkZnLnBhZ2UoKS0+c2V0Vmlld3BvcnRTaXplKHZpZXdBY3RpdmVHcmVl
bkZnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPmNvbnRlbnRzU2l6ZSgpKTsKKyAgICB2aWV3QWN0
aXZlR3JlZW5GZy5zaG93KCk7CisKKyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmdmll
d0FjdGl2ZUdyZWVuRmcpOworCisgICAgdmlld0FjdGl2ZUdyZWVuRmcuYWN0aXZhdGVXaW5kb3co
KTsKKyAgICB2aWV3QWN0aXZlR3JlZW5GZy5wYWdlKCktPnRyaWdnZXJBY3Rpb24oUVdlYlBhZ2U6
OlNlbGVjdEFsbCk7CisKKyAgICBRSW1hZ2UgaW1nQWN0aXZlR3JlZW5GZyh2aWV3QWN0aXZlR3Jl
ZW5GZy5wYWdlKCktPnZpZXdwb3J0U2l6ZSgpLCBRSW1hZ2U6OkZvcm1hdF9BUkdCMzIpOworICAg
IFFQYWludGVyIHBhaW50QWN0aXZlR3JlZW5GZygmaW1nQWN0aXZlR3JlZW5GZyk7CisgICAgdmll
d0FjdGl2ZUdyZWVuRmcucGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+cmVuZGVyKCZwYWludEFjdGl2
ZUdyZWVuRmcpOworICAgIHBhaW50QWN0aXZlR3JlZW5GZy5lbmQoKTsKKyAgICAvLyByZW5kZXJl
ZCBpbWFnZSBtdXN0IGhhdmUgZ3JlZW4gZm9yZWdyb3VuZCBvbiBhbiBhY3RpdmUgUVdlYlZpZXcK
KyAgICBRU3RyaW5nIHN0ckFjdGl2ZUdyZWVuRmc9ImFjdGl2ZUdyZWVuRmcucG5nIjsKKworICAg
IHZpZXdBY3RpdmVHcmVlbkZnLmNsb3NlKCk7CisKKyAgICBRVkVSSUZZKGltZ0FjdGl2ZUJsYWNr
RmcgIT0gaW1nQWN0aXZlR3JlZW5GZyk7Cit9CisKK3ZvaWQgdHN0X1FXZWJWaWV3OjpzZXRQYWxl
dHRlSW5hY3RpdmVCRygpCit7CisgICAgUVN0cmluZyBodG1sID0gIjxodG1sPjxoZWFkPjwvaGVh
ZD4iCisgICAgICAgICAgICAgICAgICAgIjxib2R5PiIKKyAgICAgICAgICAgICAgICAgICAiU29t
ZSB0ZXh0IGhlcmUiCisgICAgICAgICAgICAgICAgICAgIjwvYm9keT4iCisgICAgICAgICAgICAg
ICAgICAgIjwvaHRtbD4iOworCisgICAgLy8gdXNlIGNvbnRyb2xWaWV3IHRvIG1hbmFnZSBhY3Rp
dmUvaW5hY3RpdmUgc3RhdGUgb2YgdGVzdCB2aWV3cyBieSByYWlzaW5nCisgICAgLy8gb3IgbG93
ZXJpbmcgdGhlaXIgcG9zaXRpb24gaW4gdGhlIHdpbmRvdyBzdGFjay4KKyAgICBRV2ViVmlldyBj
b250cm9sVmlldzsKKyAgICBjb250cm9sVmlldy5zZXRIdG1sKGh0bWwpOworCisgICAgUVdlYlZp
ZXcgdmlld0luYWN0aXZlQ3lhbkJnOworCisgICAgUVBhbGV0dGUgcGFsQ3lhbkhsOworICAgIFFC
cnVzaCBicnVzaEN5YW5IbChRQ29sb3IoUXQ6OmN5YW4pKTsgCisgICAgYnJ1c2hDeWFuSGwuc2V0
U3R5bGUoUXQ6OlNvbGlkUGF0dGVybik7CisgICAgcGFsQ3lhbkhsLnNldEJydXNoKFFQYWxldHRl
OjpJbmFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodCwgYnJ1c2hDeWFuSGwpOworCisgICAgdmll
d0luYWN0aXZlQ3lhbkJnLnNldFBhbGV0dGUocGFsQ3lhbkhsKTsKKyAgICB2aWV3SW5hY3RpdmVD
eWFuQmcuc2V0SHRtbChodG1sKTsKKyAgICB2aWV3SW5hY3RpdmVDeWFuQmcucGFnZSgpLT5zZXRW
aWV3cG9ydFNpemUodmlld0luYWN0aXZlQ3lhbkJnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPmNv
bnRlbnRzU2l6ZSgpKTsKKyAgICB2aWV3SW5hY3RpdmVDeWFuQmcuc2hvdygpOworCisgICAgUVRl
c3Q6OnFXYWl0Rm9yV2luZG93U2hvd24oJnZpZXdJbmFjdGl2ZUN5YW5CZyk7IAorCisgICAgY29u
dHJvbFZpZXcuc2hvdygpOworICAgIGNvbnRyb2xWaWV3LmFjdGl2YXRlV2luZG93KCk7CisKKyAg
ICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmY29udHJvbFZpZXcpOyAKKworICAgIHZpZXdJ
bmFjdGl2ZUN5YW5CZy5wYWdlKCktPnRyaWdnZXJBY3Rpb24oUVdlYlBhZ2U6OlNlbGVjdEFsbCk7
CisKKyAgICBRSW1hZ2UgaW1nSW5hY3RpdmVDeWFuQmcodmlld0luYWN0aXZlQ3lhbkJnLnBhZ2Uo
KS0+dmlld3BvcnRTaXplKCksIFFJbWFnZTo6Rm9ybWF0X0FSR0IzMik7CisgICAgUVBhaW50ZXIg
cGFpbnRJbmFjdGl2ZUN5YW5CZygmaW1nSW5hY3RpdmVDeWFuQmcpOworICAgIHZpZXdJbmFjdGl2
ZUN5YW5CZy5wYWdlKCktPmN1cnJlbnRGcmFtZSgpLT5yZW5kZXIoJnBhaW50SW5hY3RpdmVDeWFu
QmcpOworICAgIHBhaW50SW5hY3RpdmVDeWFuQmcuZW5kKCk7CisgICAgLy8gcmVuZGVyZWQgaW1h
Z2UgbXVzdCBoYXZlIGN5YW4gYmFja2dyb3VuZCBvbiBhbiBpbmFjdGl2ZSBRV2ViVmlldworICAg
IFFTdHJpbmcgc3RySW5hY3RpdmVDeWFuQmc9ImluYWN0aXZlQ3lhbkJnLnBuZyI7CisgCisgICAg
Y29udHJvbFZpZXcuY2xvc2UoKTsKKyAgICB2aWV3SW5hY3RpdmVDeWFuQmcuY2xvc2UoKTsKKwor
ICAgIFFXZWJWaWV3IHZpZXdJbmFjdGl2ZU1hZ2VudGFCZzsKKworICAgIFFQYWxldHRlIHBhbE1h
Z2VudGFIbDsKKyAgICBRQnJ1c2ggYnJ1c2hNYWdlbnRhSGwoUUNvbG9yKFF0OjptYWdlbnRhKSk7
IAorICAgIGJydXNoTWFnZW50YUhsLnNldFN0eWxlKFF0OjpTb2xpZFBhdHRlcm4pOworICAgIHBh
bE1hZ2VudGFIbC5zZXRCcnVzaChRUGFsZXR0ZTo6SW5hY3RpdmUsIFFQYWxldHRlOjpIaWdobGln
aHQsIGJydXNoTWFnZW50YUhsKTsKKworICAgIHZpZXdJbmFjdGl2ZU1hZ2VudGFCZy5zZXRQYWxl
dHRlKHBhbE1hZ2VudGFIbCk7CisgICAgdmlld0luYWN0aXZlTWFnZW50YUJnLnNldEh0bWwoaHRt
bCk7CisgICAgdmlld0luYWN0aXZlTWFnZW50YUJnLnBhZ2UoKS0+c2V0Vmlld3BvcnRTaXplKHZp
ZXdJbmFjdGl2ZU1hZ2VudGFCZy5wYWdlKCktPmN1cnJlbnRGcmFtZSgpLT5jb250ZW50c1NpemUo
KSk7CisgICAgdmlld0luYWN0aXZlTWFnZW50YUJnLnNob3coKTsKKworICAgIFFUZXN0OjpxV2Fp
dEZvcldpbmRvd1Nob3duKCZ2aWV3SW5hY3RpdmVNYWdlbnRhQmcpOworCisgICAgY29udHJvbFZp
ZXcuc2hvdygpOworICAgIGNvbnRyb2xWaWV3LmFjdGl2YXRlV2luZG93KCk7CisKKyAgICBRVGVz
dDo6cVdhaXRGb3JXaW5kb3dTaG93bigmY29udHJvbFZpZXcpOyAKKworICAgIHZpZXdJbmFjdGl2
ZU1hZ2VudGFCZy5wYWdlKCktPnRyaWdnZXJBY3Rpb24oUVdlYlBhZ2U6OlNlbGVjdEFsbCk7CisK
KyAgICBRSW1hZ2UgaW1nSW5hY3RpdmVNYWdlbnRhQmcodmlld0luYWN0aXZlTWFnZW50YUJnLnBh
Z2UoKS0+dmlld3BvcnRTaXplKCksIFFJbWFnZTo6Rm9ybWF0X0FSR0IzMik7CisgICAgUVBhaW50
ZXIgcGFpbnRJbmFjdGl2ZU1hZ2VudGFCZygmaW1nSW5hY3RpdmVNYWdlbnRhQmcpOworICAgIHZp
ZXdJbmFjdGl2ZU1hZ2VudGFCZy5wYWdlKCktPmN1cnJlbnRGcmFtZSgpLT5yZW5kZXIoJnBhaW50
SW5hY3RpdmVNYWdlbnRhQmcpOworICAgIHBhaW50SW5hY3RpdmVNYWdlbnRhQmcuZW5kKCk7Cisg
ICAgLy8gcmVuZGVyZWQgaW1hZ2UgbXVzdCBoYXZlIG1hZ2VudGEgYmFja2dyb3VuZCBvbiBhbiBp
bmFjdGl2ZSBRV2ViVmlldworICAgIFFTdHJpbmcgc3RySW5hY3RpdmVNYWdlbnRhQmc9ImluYWN0
aXZlTWFnZW50YUJnLnBuZyI7CisKKyAgICBjb250cm9sVmlldy5jbG9zZSgpOworICAgIHZpZXdJ
bmFjdGl2ZU1hZ2VudGFCZy5jbG9zZSgpOworCisgICAgUVZFUklGWShpbWdJbmFjdGl2ZUN5YW5C
ZyAhPSBpbWdJbmFjdGl2ZU1hZ2VudGFCZyk7Cit9CisKK3ZvaWQgdHN0X1FXZWJWaWV3OjpzZXRQ
YWxldHRlSW5hY3RpdmVGRygpCit7CisgICAgUVN0cmluZyBodG1sID0gIjxodG1sPjxoZWFkPjwv
aGVhZD4iCisgICAgICAgICAgICAgICAgICAgIjxib2R5PiIKKyAgICAgICAgICAgICAgICAgICAi
U29tZSB0ZXh0IGhlcmUiCisgICAgICAgICAgICAgICAgICAgIjwvYm9keT4iCisgICAgICAgICAg
ICAgICAgICAgIjwvaHRtbD4iOworCisgICAgLy8gdXNlIGNvbnRyb2xWaWV3IHRvIG1hbmFnZSBh
Y3RpdmUvaW5hY3RpdmUgc3RhdGUgb2YgdGVzdCB2aWV3cyBieSByYWlzaW5nCisgICAgLy8gb3Ig
bG93ZXJpbmcgdGhlaXIgcG9zaXRpb24gaW4gdGhlIHdpbmRvdyBzdGFjay4KKyAgICBRV2ViVmll
dyBjb250cm9sVmlldzsKKyAgICBjb250cm9sVmlldy5zZXRIdG1sKGh0bWwpOworCisgICAgUVdl
YlZpZXcgdmlld0luYWN0aXZlR3JheUZnOworCisgICAgUVBhbGV0dGUgcGFsR3JheUhsVGV4dDsK
KyAgICBRQnJ1c2ggYnJ1c2hHcmF5SGxUZXh0KFFDb2xvcihRdDo6Z3JheSkpOyAKKyAgICBicnVz
aEdyYXlIbFRleHQuc2V0U3R5bGUoUXQ6OlNvbGlkUGF0dGVybik7CisgICAgcGFsR3JheUhsVGV4
dC5zZXRCcnVzaChRUGFsZXR0ZTo6SW5hY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHRlZFRleHQs
IGJydXNoR3JheUhsVGV4dCk7CisKKyAgICB2aWV3SW5hY3RpdmVHcmF5Rmcuc2V0UGFsZXR0ZShw
YWxHcmF5SGxUZXh0KTsKKyAgICB2aWV3SW5hY3RpdmVHcmF5Rmcuc2V0SHRtbChodG1sKTsKKyAg
ICB2aWV3SW5hY3RpdmVHcmF5RmcucGFnZSgpLT5zZXRWaWV3cG9ydFNpemUodmlld0luYWN0aXZl
R3JheUZnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPmNvbnRlbnRzU2l6ZSgpKTsKKyAgICB2aWV3
SW5hY3RpdmVHcmF5Rmcuc2hvdygpOworCisgICAgUVRlc3Q6OnFXYWl0Rm9yV2luZG93U2hvd24o
JnZpZXdJbmFjdGl2ZUdyYXlGZyk7CisKKyAgICBjb250cm9sVmlldy5zaG93KCk7CisgICAgY29u
dHJvbFZpZXcuYWN0aXZhdGVXaW5kb3coKTsKKworICAgIFFUZXN0OjpxV2FpdEZvcldpbmRvd1No
b3duKCZjb250cm9sVmlldyk7IAorCisgICAgdmlld0luYWN0aXZlR3JheUZnLnBhZ2UoKS0+dHJp
Z2dlckFjdGlvbihRV2ViUGFnZTo6U2VsZWN0QWxsKTsKKworICAgIFFJbWFnZSBpbWdJbmFjdGl2
ZUdyYXlGZyh2aWV3SW5hY3RpdmVHcmF5RmcucGFnZSgpLT52aWV3cG9ydFNpemUoKSwgUUltYWdl
OjpGb3JtYXRfQVJHQjMyKTsKKyAgICBRUGFpbnRlciBwYWludEluYWN0aXZlR3JheUZnKCZpbWdJ
bmFjdGl2ZUdyYXlGZyk7CisgICAgdmlld0luYWN0aXZlR3JheUZnLnBhZ2UoKS0+Y3VycmVudEZy
YW1lKCktPnJlbmRlcigmcGFpbnRJbmFjdGl2ZUdyYXlGZyk7CisgICAgcGFpbnRJbmFjdGl2ZUdy
YXlGZy5lbmQoKTsKKyAgICAvLyByZW5kZXJlZCBpbWFnZSBtdXN0IGhhdmUgZ3JheSBmb3JlZ3Jv
dW5kIG9uIGFuIGluYWN0aXZlIFFXZWJWaWV3CisgICAgUVN0cmluZyBzdHJJbmFjdGl2ZUdyYXlG
Zz0iaW5hY3RpdmVHcmF5RmcucG5nIjsKKworICAgIGNvbnRyb2xWaWV3LmNsb3NlKCk7CisgICAg
dmlld0luYWN0aXZlR3JheUZnLmNsb3NlKCk7CisKKyAgICBRV2ViVmlldyB2aWV3SW5hY3RpdmVZ
ZWxsb3dGZzsKKworICAgIFFQYWxldHRlIHBhbFllbGxvd0hsVGV4dDsKKyAgICBRQnJ1c2ggYnJ1
c2hZZWxsb3dIbFRleHQoUUNvbG9yKFF0Ojp5ZWxsb3cpKTsgCisgICAgYnJ1c2hZZWxsb3dIbFRl
eHQuc2V0U3R5bGUoUXQ6OlNvbGlkUGF0dGVybik7CisgICAgcGFsWWVsbG93SGxUZXh0LnNldEJy
dXNoKFFQYWxldHRlOjpJbmFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodGVkVGV4dCwgYnJ1c2hZ
ZWxsb3dIbFRleHQpOworCisgICAgdmlld0luYWN0aXZlWWVsbG93Rmcuc2V0UGFsZXR0ZShwYWxZ
ZWxsb3dIbFRleHQpOworICAgIHZpZXdJbmFjdGl2ZVllbGxvd0ZnLnNldEh0bWwoaHRtbCk7Cisg
ICAgdmlld0luYWN0aXZlWWVsbG93RmcucGFnZSgpLT5zZXRWaWV3cG9ydFNpemUodmlld0luYWN0
aXZlWWVsbG93RmcucGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+Y29udGVudHNTaXplKCkpOworICAg
IHZpZXdJbmFjdGl2ZVllbGxvd0ZnLnNob3coKTsKKworICAgIFFUZXN0OjpxV2FpdEZvcldpbmRv
d1Nob3duKCZ2aWV3SW5hY3RpdmVZZWxsb3dGZyk7CisKKyAgICBjb250cm9sVmlldy5zaG93KCk7
CisgICAgY29udHJvbFZpZXcuYWN0aXZhdGVXaW5kb3coKTsKKworICAgIFFUZXN0OjpxV2FpdEZv
cldpbmRvd1Nob3duKCZjb250cm9sVmlldyk7IAorCisgICAgdmlld0luYWN0aXZlWWVsbG93Rmcu
cGFnZSgpLT50cmlnZ2VyQWN0aW9uKFFXZWJQYWdlOjpTZWxlY3RBbGwpOworCisgICAgUUltYWdl
IGltZ0luYWN0aXZlWWVsbG93Rmcodmlld0luYWN0aXZlWWVsbG93RmcucGFnZSgpLT52aWV3cG9y
dFNpemUoKSwgUUltYWdlOjpGb3JtYXRfQVJHQjMyKTsKKyAgICBRUGFpbnRlciBwYWludEluYWN0
aXZlWWVsbG93RmcoJmltZ0luYWN0aXZlWWVsbG93RmcpOworICAgIHZpZXdJbmFjdGl2ZVllbGxv
d0ZnLnBhZ2UoKS0+Y3VycmVudEZyYW1lKCktPnJlbmRlcigmcGFpbnRJbmFjdGl2ZVllbGxvd0Zn
KTsKKyAgICBwYWludEluYWN0aXZlWWVsbG93RmcuZW5kKCk7CisgICAgLy8gcmVuZGVyZWQgaW1h
Z2UgbXVzdCBoYXZlIHllbGxvdyBmb3JlZ3JvdW5kIG9uIGFuIGluYWN0aXZlIFFXZWJWaWV3Cisg
ICAgUVN0cmluZyBzdHJJbmFjdGl2ZVllbGxvd0ZnPSJpbmFjdGl2ZVllbGxvd0ZnLnBuZyI7CisK
KyAgICBjb250cm9sVmlldy5jbG9zZSgpOworICAgIHZpZXdJbmFjdGl2ZVllbGxvd0ZnLmNsb3Nl
KCk7CisKKyAgICBRVkVSSUZZKGltZ0luYWN0aXZlR3JheUZnICE9IGltZ0luYWN0aXZlWWVsbG93
RmcpOworfQorCiBRVEVTVF9NQUlOKHRzdF9RV2ViVmlldykKICNpbmNsdWRlICJ0c3RfcXdlYnZp
ZXcubW9jIgogCg==
</data>
<flag name="review"
          id="73610"
          type_id="1"
          status="-"
          setter="menard"
    />
    <flag name="commit-queue"
          id="73611"
          type_id="3"
          status="-"
          setter="menard"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83341</attachid>
            <date>2011-02-22 10:54:09 -0800</date>
            <delta_ts>2011-02-22 22:54:51 -0800</delta_ts>
            <desc>Patch with comments taken into accounts and a better test case.</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>8119</size>
            <attacher name="Alexis Menard (darktears)">menard</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2ZDhkM2QxLi44YTcwZTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTEtMDItMjIgIEFsZXhpcyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5v
cmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0
XSBRV2ViVmlldyBpZ25vcmVzIGEgcGFsZXR0ZSBzZXQgd2l0aCBRV2ViVmlldzo6c2V0UGFsZXR0
ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTc0
MgorCisgICAgICAgIFVzZSBjdXN0b20gUVdlYlZpZXcgcGFsZXR0ZSBpZiB0aGUgdmlldyBwcm92
aWRlcyBvbmUuCisgICAgICAgIE1vZGlmaWVkIHZlcnNpb24gb2YgYSBwYXRjaCBtYWRlIGJ5IEZh
YnJpemlvIE1hY2hhZG8uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9SZW5kZXJUaGVtZVF0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtQWN0aXZlU2VsZWN0
aW9uQmFja2dyb3VuZENvbG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lUXQ6OnBs
YXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1JbmFjdGl2ZVNlbGVj
dGlvbkZvcmVncm91bmRDb2xvcik6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZVF0Ojpw
bGF0Zm9ybUZvY3VzUmluZ0NvbG9yKToKKwogMjAxMS0wMi0yMiAgSWx5YSBUaWtob25vdnNreSAg
PGxvaXNsb0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgWXVyeSBTZW1pa2hh
dHNreS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3F0L1JlbmRlclRoZW1l
UXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVuZGVyVGhlbWVRdC5jcHAKaW5k
ZXggODYzZWZmMi4uMTUzZjY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
cXQvUmVuZGVyVGhlbWVRdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vcXQvUmVu
ZGVyVGhlbWVRdC5jcHAKQEAgLTM4MCwzMCArMzgwLDM1IEBAIHZvaWQgUmVuZGVyVGhlbWVRdDo6
YWRqdXN0UmVwYWludFJlY3QoY29uc3QgUmVuZGVyT2JqZWN0KiBvLCBJbnRSZWN0JiByZWN0KQog
Q29sb3IgUmVuZGVyVGhlbWVRdDo6cGxhdGZvcm1BY3RpdmVTZWxlY3Rpb25CYWNrZ3JvdW5kQ29s
b3IoKSBjb25zdAogewogICAgIFFQYWxldHRlIHBhbCA9IFFBcHBsaWNhdGlvbjo6cGFsZXR0ZSgp
OworICAgIHNldFBhbGV0dGVGcm9tUGFnZUNsaWVudElmRXhpc3RzKHBhbCk7CiAgICAgcmV0dXJu
IHBhbC5icnVzaChRUGFsZXR0ZTo6QWN0aXZlLCBRUGFsZXR0ZTo6SGlnaGxpZ2h0KS5jb2xvcigp
OwogfQogCiBDb2xvciBSZW5kZXJUaGVtZVF0OjpwbGF0Zm9ybUluYWN0aXZlU2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKCkgY29uc3QKIHsKICAgICBRUGFsZXR0ZSBwYWwgPSBRQXBwbGljYXRpb246
OnBhbGV0dGUoKTsKKyAgICBzZXRQYWxldHRlRnJvbVBhZ2VDbGllbnRJZkV4aXN0cyhwYWwpOwog
ICAgIHJldHVybiBwYWwuYnJ1c2goUVBhbGV0dGU6OkluYWN0aXZlLCBRUGFsZXR0ZTo6SGlnaGxp
Z2h0KS5jb2xvcigpOwogfQogCiBDb2xvciBSZW5kZXJUaGVtZVF0OjpwbGF0Zm9ybUFjdGl2ZVNl
bGVjdGlvbkZvcmVncm91bmRDb2xvcigpIGNvbnN0CiB7CiAgICAgUVBhbGV0dGUgcGFsID0gUUFw
cGxpY2F0aW9uOjpwYWxldHRlKCk7CisgICAgc2V0UGFsZXR0ZUZyb21QYWdlQ2xpZW50SWZFeGlz
dHMocGFsKTsKICAgICByZXR1cm4gcGFsLmJydXNoKFFQYWxldHRlOjpBY3RpdmUsIFFQYWxldHRl
OjpIaWdobGlnaHRlZFRleHQpLmNvbG9yKCk7CiB9CiAKIENvbG9yIFJlbmRlclRoZW1lUXQ6OnBs
YXRmb3JtSW5hY3RpdmVTZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjb25zdAogewogICAgIFFQ
YWxldHRlIHBhbCA9IFFBcHBsaWNhdGlvbjo6cGFsZXR0ZSgpOworICAgIHNldFBhbGV0dGVGcm9t
UGFnZUNsaWVudElmRXhpc3RzKHBhbCk7CiAgICAgcmV0dXJuIHBhbC5icnVzaChRUGFsZXR0ZTo6
SW5hY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHRlZFRleHQpLmNvbG9yKCk7CiB9CiAKIENvbG9y
IFJlbmRlclRoZW1lUXQ6OnBsYXRmb3JtRm9jdXNSaW5nQ29sb3IoKSBjb25zdAogewogICAgIFFQ
YWxldHRlIHBhbCA9IFFBcHBsaWNhdGlvbjo6cGFsZXR0ZSgpOworICAgIHNldFBhbGV0dGVGcm9t
UGFnZUNsaWVudElmRXhpc3RzKHBhbCk7CiAgICAgcmV0dXJuIHBhbC5icnVzaChRUGFsZXR0ZTo6
QWN0aXZlLCBRUGFsZXR0ZTo6SGlnaGxpZ2h0KS5jb2xvcigpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCmlu
ZGV4IDZhYzJlNjYuLjFkZTNkMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTEtMDItMjIgIEFsZXhpcyBNZW5hcmQgIDxhbGV4aXMubWVuYXJkQG9wZW5ib3NzYS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBRV2Vi
VmlldyBpZ25vcmVzIGEgcGFsZXR0ZSBzZXQgd2l0aCBRV2ViVmlldzo6c2V0UGFsZXR0ZSgpCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMTc0MgorCisg
ICAgICAgIFRlc3QgY2FzZSB0byBjaGVjayB0aGF0IHRoZSBwYWxldHRlIHNldHMgb24gdGhlIFFX
ZWJWaWV3IGlzIHRha2VuCisgICAgICAgIGludG8gYWNjb3VudC4KKworICAgICAgICAqIHRlc3Rz
L3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHA6CisgICAgICAgICh0c3RfUVdlYlZpZXc6OnNldFBh
bGV0dGVfZGF0YSk6CisgICAgICAgICh0c3RfUVdlYlZpZXc6OnNldFBhbGV0dGUpOgorCiAyMDEx
LTAyLTIyICBBbmRyYXMgQmVjc2kgIDxhYmVjc2lAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBMYXN6bG8gR29tYm9zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC90ZXN0
cy9xd2Vidmlldy90c3RfcXdlYnZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2Vi
dmlldy90c3RfcXdlYnZpZXcuY3BwCmluZGV4IDdiZjY2YjcuLjY2NTc3MWIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2aWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAKQEAgLTUxLDYg
KzUxLDkgQEAgcHJpdmF0ZSBzbG90czoKICAgICB2b2lkIGZvY3VzSW5wdXRUeXBlcygpOwogCiAg
ICAgdm9pZCBjcmFzaFRlc3RzKCk7CisKKyAgICB2b2lkIHNldFBhbGV0dGVfZGF0YSgpOworICAg
IHZvaWQgc2V0UGFsZXR0ZSgpOwogfTsKIAogLy8gVGhpcyB3aWxsIGJlIGNhbGxlZCBiZWZvcmUg
dGhlIGZpcnN0IHRlc3QgZnVuY3Rpb24gaXMgZXhlY3V0ZWQuCkBAIC0zMDYsNiArMzA5LDEyMyBA
QCB2b2lkIHRzdF9RV2ViVmlldzo6Zm9jdXNJbnB1dFR5cGVzKCkKICAgICBRVkVSSUZZKHdlYlZp
ZXcudGVzdEF0dHJpYnV0ZShRdDo6V0FfSW5wdXRNZXRob2RFbmFibGVkKSk7CiB9CiAKK3ZvaWQg
dHN0X1FXZWJWaWV3OjpzZXRQYWxldHRlX2RhdGEoKQoreworICAgIFFUZXN0OjphZGRDb2x1bW48
Ym9vbD4oImFjdGl2ZSIpOworICAgIFFUZXN0OjphZGRDb2x1bW48Ym9vbD4oImJhY2tncm91bmQi
KTsKKyAgICBRVGVzdDo6bmV3Um93KCJhY3RpdmVCRyIpIDw8IHRydWUgPDwgdHJ1ZTsKKyAgICBR
VGVzdDo6bmV3Um93KCJhY3RpdmVGRyIpIDw8IHRydWUgPDwgZmFsc2U7CisgICAgUVRlc3Q6Om5l
d1JvdygiaW5hY3RpdmVCRyIpIDw8IGZhbHNlIDw8IHRydWU7CisgICAgUVRlc3Q6Om5ld1Jvdygi
aW5hY3RpdmVGRyIpIDw8IGZhbHNlIDw8IGZhbHNlOworfQorCisvLyBSZW5kZXIgYSBRV2ViVmll
dyB0byBhIFFJbWFnZSB0d2ljZSwgZWFjaCB0aW1lIHdpdGggYSBkaWZmZXJlbnQgcGFsZXR0ZSBz
ZXQsCisvLyB2ZXJpZnkgdGhhdCBpbWFnZXMgcmVuZGVyZWQgYXJlIG5vdCB0aGUgc2FtZSwgY29u
ZmlybWluZyBXZWJDb3JlIHVzYWdlIG9mCisvLyBjdXN0b20gcGFsZXR0ZSBvbiBzZWxlY3Rpb25z
Lgordm9pZCB0c3RfUVdlYlZpZXc6OnNldFBhbGV0dGUoKQoreworICAgIFFTdHJpbmcgaHRtbCA9
ICI8aHRtbD48aGVhZD48L2hlYWQ+IgorICAgICAgICAgICAgICAgICAgICI8Ym9keT4iCisgICAg
ICAgICAgICAgICAgICAgIlNvbWUgdGV4dCBoZXJlIgorICAgICAgICAgICAgICAgICAgICI8L2Jv
ZHk+IgorICAgICAgICAgICAgICAgICAgICI8L2h0bWw+IjsKKworICAgIFFGRVRDSChib29sLCBh
Y3RpdmUpOworICAgIFFGRVRDSChib29sLCBiYWNrZ3JvdW5kKTsKKworICAgIC8vIFVzZSBjb250
cm9sVmlldyB0byBtYW5hZ2UgYWN0aXZlL2luYWN0aXZlIHN0YXRlIG9mIHRlc3Qgdmlld3MgYnkg
cmFpc2luZworICAgIC8vIG9yIGxvd2VyaW5nIHRoZWlyIHBvc2l0aW9uIGluIHRoZSB3aW5kb3cg
c3RhY2suCisgICAgUVdlYlZpZXcgY29udHJvbFZpZXc7CisgICAgY29udHJvbFZpZXcuc2V0SHRt
bChodG1sKTsKKworICAgIFFXZWJWaWV3IHZpZXcxOworCisgICAgUVBhbGV0dGUgcGFsZXR0ZTE7
CisgICAgUUJydXNoIGJydXNoMShRQ29sb3IoUXQ6OnJlZCkpOworICAgIGJydXNoMS5zZXRTdHls
ZShRdDo6U29saWRQYXR0ZXJuKTsKKyAgICBpZiAoYWN0aXZlICYmIGJhY2tncm91bmQpIHsKKyAg
ICAgICAgLy8gUmVuZGVyZWQgaW1hZ2UgbXVzdCBoYXZlIHJlZCBiYWNrZ3JvdW5kIG9uIGFuIGFj
dGl2ZSBRV2ViVmlldy4KKyAgICAgICAgcGFsZXR0ZTEuc2V0QnJ1c2goUVBhbGV0dGU6OkFjdGl2
ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodCwgYnJ1c2gxKTsKKyAgICB9IGVsc2UgaWYgKGFjdGl2ZSAm
JiAhYmFja2dyb3VuZCkgeworICAgICAgICAvLyBSZW5kZXJlZCBpbWFnZSBtdXN0IGhhdmUgcmVk
IGZvcmVncm91bmQgb24gYW4gYWN0aXZlIFFXZWJWaWV3LgorICAgICAgICBwYWxldHRlMS5zZXRC
cnVzaChRUGFsZXR0ZTo6QWN0aXZlLCBRUGFsZXR0ZTo6SGlnaGxpZ2h0ZWRUZXh0LCBicnVzaDEp
OworICAgIH0gZWxzZSBpZiAoIWFjdGl2ZSAmJiBiYWNrZ3JvdW5kKSB7CisgICAgICAgIC8vIFJl
bmRlcmVkIGltYWdlIG11c3QgaGF2ZSByZWQgYmFja2dyb3VuZCBvbiBhbiBpbmFjdGl2ZSBRV2Vi
Vmlldy4KKyAgICAgICAgcGFsZXR0ZTEuc2V0QnJ1c2goUVBhbGV0dGU6OkluYWN0aXZlLCBRUGFs
ZXR0ZTo6SGlnaGxpZ2h0LCBicnVzaDEpOworICAgIH0gZWxzZSBpZiAoIWFjdGl2ZSAmJiAhYmFj
a2dyb3VuZCkgeworICAgICAgICAvLyBSZW5kZXJlZCBpbWFnZSBtdXN0IGhhdmUgcmVkIGZvcmVn
cm91bmQgb24gYW4gaW5hY3RpdmUgUVdlYlZpZXcuCisgICAgICAgIHBhbGV0dGUxLnNldEJydXNo
KFFQYWxldHRlOjpJbmFjdGl2ZSwgUVBhbGV0dGU6OkhpZ2hsaWdodGVkVGV4dCwgYnJ1c2gxKTsK
KyAgICB9CisKKyAgICB2aWV3MS5zZXRQYWxldHRlKHBhbGV0dGUxKTsKKyAgICB2aWV3MS5zZXRI
dG1sKGh0bWwpOworICAgIHZpZXcxLnBhZ2UoKS0+c2V0Vmlld3BvcnRTaXplKHZpZXcxLnBhZ2Uo
KS0+Y3VycmVudEZyYW1lKCktPmNvbnRlbnRzU2l6ZSgpKTsKKyAgICB2aWV3MS5zaG93KCk7CisK
KyAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmdmlldzEpOworCisgICAgaWYgKCFhY3Rp
dmUpIHsKKyAgICAgICAgY29udHJvbFZpZXcuc2hvdygpOworICAgICAgICBjb250cm9sVmlldy5h
Y3RpdmF0ZVdpbmRvdygpOworICAgICAgICBRVGVzdDo6cVdhaXRGb3JXaW5kb3dTaG93bigmY29u
dHJvbFZpZXcpOworICAgIH0gZWxzZQorICAgICAgICB2aWV3MS5hY3RpdmF0ZVdpbmRvdygpOwor
CisgICAgdmlldzEucGFnZSgpLT50cmlnZ2VyQWN0aW9uKFFXZWJQYWdlOjpTZWxlY3RBbGwpOwor
CisgICAgUUltYWdlIGltZzEodmlldzEucGFnZSgpLT52aWV3cG9ydFNpemUoKSwgUUltYWdlOjpG
b3JtYXRfQVJHQjMyKTsKKyAgICBRUGFpbnRlciBwYWludGVyMSgmaW1nMSk7CisgICAgdmlldzEu
cGFnZSgpLT5jdXJyZW50RnJhbWUoKS0+cmVuZGVyKCZwYWludGVyMSk7CisgICAgcGFpbnRlcjEu
ZW5kKCk7CisgICAgdmlldzEuY2xvc2UoKTsKKyAgICBjb250cm9sVmlldy5jbG9zZSgpOworCisg
ICAgUVdlYlZpZXcgdmlldzI7CisKKyAgICBRUGFsZXR0ZSBwYWxldHRlMjsKKyAgICBRQnJ1c2gg
YnJ1c2gyKFFDb2xvcihRdDo6Ymx1ZSkpOworICAgIGJydXNoMi5zZXRTdHlsZShRdDo6U29saWRQ
YXR0ZXJuKTsKKyAgICBpZiAoYWN0aXZlICYmIGJhY2tncm91bmQpIHsKKyAgICAgICAgLy8gUmVu
ZGVyZWQgaW1hZ2UgbXVzdCBoYXZlIGJsdWUgYmFja2dyb3VuZCBvbiBhbiBhY3RpdmUgUVdlYlZp
ZXcuCisgICAgICAgIHBhbGV0dGUyLnNldEJydXNoKFFQYWxldHRlOjpBY3RpdmUsIFFQYWxldHRl
OjpIaWdobGlnaHQsIGJydXNoMik7CisgICAgfSBlbHNlIGlmIChhY3RpdmUgJiYgIWJhY2tncm91
bmQpIHsKKyAgICAgICAgLy8gUmVuZGVyZWQgaW1hZ2UgbXVzdCBoYXZlIGJsdWUgZm9yZWdyb3Vu
ZCBvbiBhbiBhY3RpdmUgUVdlYlZpZXcuCisgICAgICAgIHBhbGV0dGUyLnNldEJydXNoKFFQYWxl
dHRlOjpBY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHRlZFRleHQsIGJydXNoMik7CisgICAgfSBl
bHNlIGlmICghYWN0aXZlICYmIGJhY2tncm91bmQpIHsKKyAgICAgICAgLy8gUmVuZGVyZWQgaW1h
Z2UgbXVzdCBoYXZlIGJsdWUgYmFja2dyb3VuZCBvbiBhbiBpbmFjdGl2ZSBRV2ViVmlldy4KKyAg
ICAgICAgcGFsZXR0ZTIuc2V0QnJ1c2goUVBhbGV0dGU6OkluYWN0aXZlLCBRUGFsZXR0ZTo6SGln
aGxpZ2h0LCBicnVzaDIpOworICAgIH0gZWxzZSBpZiAoIWFjdGl2ZSAmJiAhYmFja2dyb3VuZCkg
eworICAgICAgICAvLyBSZW5kZXJlZCBpbWFnZSBtdXN0IGhhdmUgYmx1ZSBmb3JlZ3JvdW5kIG9u
IGFuIGluYWN0aXZlIFFXZWJWaWV3LgorICAgICAgICBwYWxldHRlMi5zZXRCcnVzaChRUGFsZXR0
ZTo6SW5hY3RpdmUsIFFQYWxldHRlOjpIaWdobGlnaHRlZFRleHQsIGJydXNoMik7CisgICAgfQor
CisgICAgdmlldzIuc2V0UGFsZXR0ZShwYWxldHRlMik7CisgICAgdmlldzIuc2V0SHRtbChodG1s
KTsKKyAgICB2aWV3Mi5wYWdlKCktPnNldFZpZXdwb3J0U2l6ZSh2aWV3Mi5wYWdlKCktPmN1cnJl
bnRGcmFtZSgpLT5jb250ZW50c1NpemUoKSk7CisgICAgdmlldzIuc2hvdygpOworCisgICAgUVRl
c3Q6OnFXYWl0Rm9yV2luZG93U2hvd24oJnZpZXcyKTsKKworICAgIGlmICghYWN0aXZlKSB7Cisg
ICAgICAgIGNvbnRyb2xWaWV3LnNob3coKTsKKyAgICAgICAgY29udHJvbFZpZXcuYWN0aXZhdGVX
aW5kb3coKTsKKyAgICAgICAgUVRlc3Q6OnFXYWl0Rm9yV2luZG93U2hvd24oJmNvbnRyb2xWaWV3
KTsKKyAgICB9IGVsc2UKKyAgICAgICAgdmlldzIuYWN0aXZhdGVXaW5kb3coKTsKKworICAgIHZp
ZXcyLnBhZ2UoKS0+dHJpZ2dlckFjdGlvbihRV2ViUGFnZTo6U2VsZWN0QWxsKTsKKworICAgIFFJ
bWFnZSBpbWcyKHZpZXcyLnBhZ2UoKS0+dmlld3BvcnRTaXplKCksIFFJbWFnZTo6Rm9ybWF0X0FS
R0IzMik7CisgICAgUVBhaW50ZXIgcGFpbnRlcjIoJmltZzIpOworICAgIHZpZXcyLnBhZ2UoKS0+
Y3VycmVudEZyYW1lKCktPnJlbmRlcigmcGFpbnRlcjIpOworICAgIHBhaW50ZXIyLmVuZCgpOwor
CisgICAgdmlldzIuY2xvc2UoKTsKKyAgICBjb250cm9sVmlldy5jbG9zZSgpOworCisgICAgUVZF
UklGWShpbWcxICE9IGltZzIpOworfQorCiBRVEVTVF9NQUlOKHRzdF9RV2ViVmlldykKICNpbmNs
dWRlICJ0c3RfcXdlYnZpZXcubW9jIgogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>