<?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>56424</bug_id>
          
          <creation_ts>2011-03-15 16:36:08 -0700</creation_ts>
          <short_desc>add beforeload to icon and prefetch link rel types</short_desc>
          <delta_ts>2016-04-18 20:48:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Page Loading</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>52577</blocked>
    
    <blocked>57180</blocked>
    
    <blocked>156727</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Gavin Peters">gavinp</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric</cc>
    
    <cc>gavinp</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>368032</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-03-15 16:36:08 -0700</bug_when>
    <thetext>Bug 52577 requests more universal beforeload support.  The icon and prefetch types are particularly easy to add, and can be done first.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368327</commentid>
    <comment_count>1</comment_count>
      <attachid>85930</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-03-16 07:57:43 -0700</bug_when>
    <thetext>Created attachment 85930
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>368328</commentid>
    <comment_count>2</comment_count>
      <attachid>85930</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-03-16 07:59:24 -0700</bug_when>
    <thetext>Comment on attachment 85930
Patch

The biggest question I have is the early exits from HTMLLinkElement::process() that this patch introduces.  In the case of &lt;link rel=&quot;prefetch stylesheet&quot; ....&gt; with a failing onbeforeload, the side effect of clearing the m_cachedSheet won&apos;t occur, and I&apos;m not sure if that&apos;s good or bad or indifferent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371538</commentid>
    <comment_count>3</comment_count>
      <attachid>85930</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-03-22 12:01:58 -0700</bug_when>
    <thetext>Comment on attachment 85930
Patch

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

&gt; LayoutTests/fast/dom/HTMLLinkElement/prefetch-beforeload.html:12
&gt; +}

It would be best to skip implementing a print() method and instead include &lt;script src=&quot;../js/resources/js-test-pre.js&quot;&gt;&lt;/script&gt; and use testPassed()/testFailed(). Ditto in the other tests.

&gt; LayoutTests/platform/chromium-mac/webarchive/test-link-rel-icon-beforeload-expected.txt:1
&gt; +CONSOLE MESSAGE: line 8: Uncaught TypeError: Object [object Object] has no method &apos;dumpDOMAsWebArchive&apos;

It is kind of unfortunate to need a pixel test for this behavior. Is there any particular reason why a webarchive test is needed to test a &lt;link rel=icon&gt; w/ a beforeload?

&gt; Source/WebCore/html/HTMLLinkElement.cpp:196
&gt; +bool HTMLLinkElement::checkBeforeLoadEvent()

Thanks for extracting this logic. This dance is non-obvious and failure to perform it properly has caused several bugs. The same code is in ScriptElement.cpp and might need to be in other places where these extra checks aren&apos;t performed. Is it possible to move it up to dispatchBeforeLoadEvent() or have another shared helper method to avoid the duplication? Or perhaps that should be a separate patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374120</commentid>
    <comment_count>4</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-03-27 07:02:53 -0700</bug_when>
    <thetext>Thank you for your review, Tony!  I&apos;ve made most of these changes locally, and on Monday I&apos;ll do the testing on a Mac etc... and get an upload of a new patch.  Until then, make do with my comments below...

(In reply to comment #3)
&gt; (From update of attachment 85930 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=85930&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/dom/HTMLLinkElement/prefetch-beforeload.html:12
&gt; &gt; +}
&gt; 
&gt; It would be best to skip implementing a print() method and instead include &lt;script src=&quot;../js/resources/js-test-pre.js&quot;&gt;&lt;/script&gt; and use testPassed()/testFailed(). Ditto in the other tests.

Done.
 
&gt; &gt; LayoutTests/platform/chromium-mac/webarchive/test-link-rel-icon-beforeload-expected.txt:1
&gt; &gt; +CONSOLE MESSAGE: line 8: Uncaught TypeError: Object [object Object] has no method &apos;dumpDOMAsWebArchive&apos;
&gt; 
&gt; It is kind of unfortunate to need a pixel test for this behavior. Is there any particular reason why a webarchive test is needed to test a &lt;link rel=icon&gt; w/ a beforeload?

I believe so.  The existing link rel=icon test was a webarchive, and that&apos;s the only way I could find to confirm the get or not of the icon itself: on the mac platform the webarchive includes the icon, if any, downloaded, so the webarchive provides proof positive that the favicon didn&apos;t come down in the beforeload test.  I spent some time today trying to see if I could do it with the DRT.dumpResoruceResponseMIMETYpes() as in the prefetch tests, and that did not work for me.

&gt; 
&gt; &gt; Source/WebCore/html/HTMLLinkElement.cpp:196
&gt; &gt; +bool HTMLLinkElement::checkBeforeLoadEvent()
&gt; 
&gt; Thanks for extracting this logic. This dance is non-obvious and failure to perform it properly has caused several bugs. The same code is in ScriptElement.cpp and might need to be in other places where these extra checks aren&apos;t performed. Is it possible to move it up to dispatchBeforeLoadEvent() or have another shared helper method to avoid the duplication? Or perhaps that should be a separate patch?

I think this belongs in another CL.  I&apos;ve gone ahead and created Bug 57180 for that.  I&apos;ll tackle it soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374502</commentid>
    <comment_count>5</comment_count>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-03-28 08:24:05 -0700</bug_when>
    <thetext>Tony,

I went ahead this morning and did a little more testing with webarchive and http tests, to see if I could make a more intuitive test of the beforeload handling.  I will shortly upload the HTTP test version, but basically I think the test doesn&apos;t work well in the chrome port; the chrome DRT doesn&apos;t load favicons, and so favicons are _always_ successfully blocked on that port.

However, an HTTP test works very well for testing the blocking in the mac port, so I think I&apos;ll go ahead and upload that version shortly with a chromium exception landed in chrome trunk.

I&apos;ll create a bug to track that chromium behaviour.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374540</commentid>
    <comment_count>6</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-03-28 09:28:29 -0700</bug_when>
    <thetext>&gt; &gt; It would be best to skip implementing a print() method and instead include &lt;script src=&quot;../js/resources/js-test-pre.js&quot;&gt;&lt;/script&gt; and use testPassed()/testFailed(). Ditto in the other tests.
&gt; 
&gt; Done.

Thanks. Is there a new version of the patch?

&gt; &gt; &gt; LayoutTests/platform/chromium-mac/webarchive/test-link-rel-icon-beforeload-expected.txt:1
&gt; &gt; &gt; +CONSOLE MESSAGE: line 8: Uncaught TypeError: Object [object Object] has no method &apos;dumpDOMAsWebArchive&apos;
&gt; &gt; 
&gt; &gt; It is kind of unfortunate to need a pixel test for this behavior. Is there any particular reason why a webarchive test is needed to test a &lt;link rel=icon&gt; w/ a beforeload?
&gt; 
&gt; I believe so.  The existing link rel=icon test was a webarchive, and that&apos;s the only way I could find to confirm the get or not of the icon itself: on the mac platform the webarchive includes the icon, if any, downloaded, so the webarchive provides proof positive that the favicon didn&apos;t come down in the beforeload test.  I spent some time today trying to see if I could do it with the DRT.dumpResoruceResponseMIMETYpes() as in the prefetch tests, and that did not work for me.

My main concern is only that it is a pixel test. Would be nice to avoid the platform specific results if possible.

&gt; &gt; Thanks for extracting this logic. This dance is non-obvious and failure to perform it properly has caused several bugs. The same code is in ScriptElement.cpp and might need to be in other places where these extra checks aren&apos;t performed. Is it possible to move it up to dispatchBeforeLoadEvent() or have another shared helper method to avoid the duplication? Or perhaps that should be a separate patch?
&gt; 
&gt; I think this belongs in another CL.  I&apos;ve gone ahead and created Bug 57180 for that.  I&apos;ll tackle it soon.

Thanks :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374746</commentid>
    <comment_count>7</comment_count>
      <attachid>87195</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-03-28 13:53:31 -0700</bug_when>
    <thetext>Created attachment 87195
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374750</commentid>
    <comment_count>8</comment_count>
      <attachid>87195</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-03-28 13:56:18 -0700</bug_when>
    <thetext>Comment on attachment 87195
Patch

Tony: I added a better ChangeLog here, and during all my experiments with testing this I uncovered a limitation of Chromium&apos;s DRT (captured in bug 57259 ), and also added an http test for this functionality.

I want to draw your attention to the fact that I still left my own implementation of print in the test in webarchive.  I didn&apos;t want to include from all the way over in fast/dom/...., so it seemed the best solution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374757</commentid>
    <comment_count>9</comment_count>
      <attachid>87195</attachid>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-03-28 14:01:15 -0700</bug_when>
    <thetext>Comment on attachment 87195
Patch

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

&gt; LayoutTests/ChangeLog:8
&gt; +        Unfortunately, there&apos;s lots of expectations changes here, in a strange

I don&apos;t see a lot of expectations changes, are files missing from the CL?

&gt; LayoutTests/platform/chromium/test_expectations.txt:3340
&gt; +BUGWK57259 : http/tests/misc/link-rel-icon-beforeload.html = FAIL PASS

Shouldn&apos;t this just be &quot;FAIL&quot; instead of &quot;FAIL PASS&quot;. That way it will force removing this line when that bug is fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374790</commentid>
    <comment_count>10</comment_count>
      <attachid>87210</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-03-28 14:38:56 -0700</bug_when>
    <thetext>Created attachment 87210
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374791</commentid>
    <comment_count>11</comment_count>
      <attachid>87210</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-03-28 14:40:37 -0700</bug_when>
    <thetext>Comment on attachment 87210
Patch

Tony,

I changed my changelog to comment on all the skipped tests &amp; the failure expectation.  Hopefully that&apos;s better.  As well, I modified the test_expectations.txt for chrome as you suggested.   Now hopefully it draws attention when/if we fix bug 57259.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375167</commentid>
    <comment_count>12</comment_count>
      <attachid>87210</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-29 03:43:08 -0700</bug_when>
    <thetext>Comment on attachment 87210
Patch

Rejecting attachment 87210 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-3&apos;, &apos;apply-...&quot; exit_code: 2

Last 500 characters of output:
beforeload.html
patching file Source/WebCore/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebCore/html/HTMLLinkElement.cpp
Hunk #1 succeeded at 195 (offset 2 lines).
Hunk #2 succeeded at 217 (offset 2 lines).
Hunk #3 succeeded at 233 (offset 2 lines).
Hunk #4 succeeded at 256 (offset 2 lines).
patching file Source/WebCore/html/HTMLLinkElement.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Tony Gentilcore&apos;, u&apos;--...&quot; exit_code: 1

Full output: http://queues.webkit.org/results/8283211</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375229</commentid>
    <comment_count>13</comment_count>
      <attachid>87301</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-03-29 06:05:33 -0700</bug_when>
    <thetext>Created attachment 87301
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375232</commentid>
    <comment_count>14</comment_count>
      <attachid>87301</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-03-29 06:06:23 -0700</bug_when>
    <thetext>Comment on attachment 87301
Patch

I actually conflicted with myself on this one.  The other question is... can you commit-queue a change to chrome test_expectations.txt ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375412</commentid>
    <comment_count>15</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-03-29 09:16:56 -0700</bug_when>
    <thetext>&gt; can you commit-queue a change to chrome test_expectations.txt ?

Yeah, that&apos;s no problem. The catch is that the cq only runs tests on the mac port, so it doesn&apos;t actually verify that the expectations update is accurate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375520</commentid>
    <comment_count>16</comment_count>
      <attachid>87301</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-29 10:48:16 -0700</bug_when>
    <thetext>Comment on attachment 87301
Patch

Rejecting attachment 87301 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-3&apos;, &apos;apply-...&quot; exit_code: 2

Last 500 characters of output:
utTests/platform/win/Skipped
patching file LayoutTests/webarchive/test-link-rel-icon-beforeload-expected.webarchive
patching file LayoutTests/webarchive/test-link-rel-icon-beforeload.html
patching file Source/WebCore/ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.
patching file Source/WebCore/html/HTMLLinkElement.cpp
patching file Source/WebCore/html/HTMLLinkElement.h

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--reviewer&apos;, u&apos;Tony Gentilcore&apos;, u&apos;--...&quot; exit_code: 1

Full output: http://queues.webkit.org/results/8282405</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375535</commentid>
    <comment_count>17</comment_count>
      <attachid>87365</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-03-29 10:58:40 -0700</bug_when>
    <thetext>Created attachment 87365
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375536</commentid>
    <comment_count>18</comment_count>
      <attachid>87365</attachid>
    <who name="Gavin Peters">gavinp</who>
    <bug_when>2011-03-29 10:59:31 -0700</bug_when>
    <thetext>Comment on attachment 87365
Patch

Another merge failure on linux chromium test_expectations.txt.  I wonder if it&apos;s possible to land changes to that file...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375541</commentid>
    <comment_count>19</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-03-29 11:01:36 -0700</bug_when>
    <thetext>(In reply to comment #18)
&gt; (From update of attachment 87365 [details])
&gt; Another merge failure on linux chromium test_expectations.txt.  I wonder if it&apos;s possible to land changes to that file...

If it doesn&apos;t work this time, you could try adding the new line somewhere else in the file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375826</commentid>
    <comment_count>20</comment_count>
      <attachid>87365</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-29 15:53:24 -0700</bug_when>
    <thetext>Comment on attachment 87365
Patch

Clearing flags on attachment: 87365

Committed r82342: &lt;http://trac.webkit.org/changeset/82342&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375827</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-29 15:53:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375899</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-29 17:02:37 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/82342 might have broken GTK Linux 32-bit Release
The following tests are not passing:
css1/basic/comments.html
css1/basic/containment.html
css1/basic/id_as_selector.html
css1/basic/inheritance.html
css1/box_properties/border.html
css1/box_properties/border_bottom.html
css1/box_properties/border_bottom_width.html
css1/box_properties/border_left.html
css1/box_properties/border_left_width.html
css1/box_properties/border_right_inline.html
css1/box_properties/border_right_width.html
css1/box_properties/border_style.html
css1/box_properties/border_top.html
css1/box_properties/border_top_width.html
css1/box_properties/border_width.html
css1/box_properties/clear.html
css1/box_properties/clear_float.html
css1/box_properties/float_elements_in_series.html
css1/box_properties/float_margin.html
css1/box_properties/float_on_text_elements.html
css1/box_properties/height.html
css1/box_properties/margin.html
css1/box_properties/margin_bottom.html
css1/box_properties/margin_inline.html
css1/box_properties/margin_left.html
css1/box_properties/margin_right.html
css1/box_properties/margin_top.html
css1/box_properties/padding.html
css1/box_properties/padding_bottom.html
css1/box_properties/padding_inline.html
css1/box_properties/padding_left.html
css1/box_properties/padding_right.html
css1/box_properties/padding_top.html
css1/box_properties/width.html
css1/cascade/cascade_order.html
css1/classification/display.html
css1/classification/list_style_type.html
css1/classification/white_space.html
css1/color_and_background/background.html
css1/color_and_background/background_attachment.html
css1/color_and_background/background_position.html
css1/color_and_background/background_repeat.html
css1/conformance/forward_compatible_parsing.html
css1/font_properties/font.html
css1/font_properties/font_family.html
css1/font_properties/font_size.html
css1/font_properties/font_weight.html
css1/formatting_model/floating_elements.html
css1/formatting_model/height_of_lines.html
css1/formatting_model/horizontal_formatting.html
css1/formatting_model/inline_elements.html
css1/formatting_model/replaced_elements.html
css1/formatting_model/vertical_formatting.html
css1/pseudo/anchor.html
css1/pseudo/firstletter.html
css1/pseudo/firstline.html
css1/pseudo/multiple_pseudo_elements.html
css1/text_properties/letter_spacing.html
css1/text_properties/line_height.html
css1/text_properties/text_decoration.html
css1/text_properties/text_indent.html
css1/text_properties/text_transform.html
css1/text_properties/vertical_align.html
css1/text_properties/word_spacing.html
css1/units/color_units.html
css1/units/length_units.html
css2.1/t0803-c5502-mrgn-r-02-c.html
css2.1/t0803-c5505-mrgn-02-c.html
css2.1/t080301-c411-vt-mrgn-00-b.html
css2.1/t0905-c5525-fltclr-00-c-ag.html
css2.1/t0905-c5525-fltmrgn-00-c-ag.html
css2.1/t0905-c5525-fltwidth-00-c-g.html
css2.1/t0905-c5526-fltclr-00-c-ag.html
css2.1/t1002-c5523-width-02-b-g.html
css2.1/t1202-counters-08-b.html
css2.1/t1202-counters-09-b.html
css2.1/t140201-c535-bg-fixd-00-b-g.html
css2.1/t140201-c537-bgfxps-00-c-ag.html
css2.1/t1508-c527-font-07-b.html
editing/deleting/delete-after-span-ws-001.html
editing/deleting/delete-after-span-ws-002.html
editing/deleting/delete-after-span-ws-003.html
editing/deleting/delete-line-end-ws-001.html
editing/deleting/delete-line-end-ws-002.html
editing/inserting/insert-div-023.html
editing/selection/focus_editable_html.html
editing/selection/select-all-001.html
editing/selection/select-all-002.html
editing/selection/select-all-003.html
editing/selection/select-all-004.html
editing/selection/unrendered-001.html
editing/selection/unrendered-002.html
editing/selection/unrendered-003.html
editing/selection/unrendered-004.html
editing/selection/unrendered-005.html
fast/text/international/complex-character-based-fallback.html
fast/text/international/thai-line-breaks.html
fonts/cursive.html
fonts/default.html
fonts/fantasy.html
fonts/monospace.html
fonts/sans-serif.html
fonts/serif.html
http/tests/misc/link-rel-icon-beforeload.html
media/video-controls-rendering.html
media/video-zoom.html
tables/mozilla/bugs/bug101674.html
tables/mozilla/bugs/bug10269-2.html
tables/mozilla/bugs/bug10296-1.html
tables/mozilla/bugs/bug1055-1.html
tables/mozilla/bugs/bug113235-1.html
tables/mozilla/bugs/bug113235-3.html
tables/mozilla/bugs/bug11944.html
tables/mozilla/bugs/bug120364.html
tables/mozilla/bugs/bug12384.html
tables/mozilla/bugs/bug1302.html
tables/mozilla/bugs/bug131020.html
tables/mozilla/bugs/bug131020_iframe.html
tables/mozilla/bugs/bug137388-2.html
tables/mozilla/bugs/bug194024.html
tables/mozilla/bugs/bug22019.html
tables/mozilla/bugs/bug23151.html
tables/mozilla/bugs/bug2479-1.html
tables/mozilla/bugs/bug2479-3.html
tables/mozilla/bugs/bug2479-4.html
tables/mozilla/bugs/bug27038-2.html
tables/mozilla/bugs/bug29314.html
tables/mozilla/bugs/bug2947.html
tables/mozilla/bugs/bug32205-2.html
tables/mozilla/bugs/bug38916.html
tables/mozilla/bugs/bug3977.html
tables/mozilla/bugs/bug43039.html
tables/mozilla/bugs/bug43854-1.html
tables/mozilla/bugs/bug44505.html
tables/mozilla/bugs/bug46480-1.html
tables/mozilla/bugs/bug46480-2.html
tables/mozilla/bugs/bug50695-1.html
tables/mozilla/bugs/bug56405.html
tables/mozilla/bugs/bug5797.html
tables/mozilla/bugs/bug5835.html
tables/mozilla/bugs/bug625.html
tables/mozilla/bugs/bug650.html
tables/mozilla/bugs/bug67915-1.html
tables/mozilla/bugs/bug7112-1.html
tables/mozilla/bugs/bug7112-2.html
tables/mozilla/bugs/bug73321.html
tables/mozilla/bugs/bug92143.html
tables/mozilla/bugs/bug96334.html
tables/mozilla/bugs/bug96343.html
tables/mozilla/collapsing_borders/bug41262-3.html
tables/mozilla/core/bloomberg.html
tables/mozilla/core/captions.html
tables/mozilla/core/cell_heights.html
tables/mozilla/core/col_span.html
tables/mozilla/core/col_widths_auto_fix.html
tables/mozilla/core/col_widths_fix_fixPer.html
tables/mozilla/core/nested1.html
tables/mozilla/core/one_row.html
tables/mozilla/core/row_span.html
tables/mozilla/marvin/backgr_index.html
tables/mozilla/marvin/backgr_layers-opacity.html
tables/mozilla/marvin/backgr_position-table.html
tables/mozilla/marvin/backgr_simple-table-cell.html
tables/mozilla/marvin/backgr_simple-table-column-group.html
tables/mozilla/marvin/backgr_simple-table-column.html
tables/mozilla/marvin/backgr_simple-table-row-group.html
tables/mozilla/marvin/backgr_simple-table-row.html
tables/mozilla/marvin/backgr_simple-table.html
tables/mozilla/marvin/x_table_bgcolor_name.xml
tables/mozilla/marvin/x_table_bgcolor_rgb.xml
tables/mozilla/marvin/x_td_bgcolor_name.xml
tables/mozilla/marvin/x_td_bgcolor_rgb.xml
tables/mozilla/marvin/x_td_height.xml
tables/mozilla/marvin/x_td_nowrap.xml
tables/mozilla/marvin/x_th_bgcolor_name.xml
tables/mozilla/marvin/x_th_bgcolor_rgb.xml
tables/mozilla/marvin/x_th_height.xml
tables/mozilla/marvin/x_th_nowrap.xml
tables/mozilla/marvin/x_tr_bgcolor_name.xml
tables/mozilla/marvin/x_tr_bgcolor_rgb.xml
tables/mozilla/other/cell_widths.html
tables/mozilla/other/nestedTables.html
tables/mozilla/other/test3.html
tables/mozilla/other/test6.html
tables/mozilla/other/wa_table_thtd_rowspan.html
tables/mozilla/other/wa_table_tr_align.html
tables/mozilla_expected_failures/bugs/bug10140.html
tables/mozilla_expected_failures/bugs/bug101759.html
tables/mozilla_expected_failures/bugs/bug10216.html
tables/mozilla_expected_failures/bugs/bug1055-2.html
tables/mozilla_expected_failures/bugs/bug106966.html
tables/mozilla_expected_failures/bugs/bug131020-3.html
tables/mozilla_expected_failures/bugs/bug14007-1.html
tables/mozilla_expected_failures/bugs/bug14007-2.html
tables/mozilla_expected_failures/bugs/bug19526.html
tables/mozilla_expected_failures/bugs/bug220653.html
tables/mozilla_expected_failures/bugs/bug22122.html
tables/mozilla_expected_failures/bugs/bug2479-5.html
tables/mozilla_expected_failures/bugs/bug32205-1.html
tables/mozilla_expected_failures/bugs/bug67915-2.html
tables/mozilla_expected_failures/bugs/bug7243.html
tables/mozilla_expected_failures/bugs/bug80762-2.html
tables/mozilla_expected_failures/bugs/bug85016.html
tables/mozilla_expected_failures/bugs/bug89315.html
tables/mozilla_expected_failures/bugs/bug91057.html
tables/mozilla_expected_failures/core/backgrounds.html
tables/mozilla_expected_failures/core/captions1.html
tables/mozilla_expected_failures/core/captions2.html
tables/mozilla_expected_failures/core/captions3.html
tables/mozilla_expected_failures/core/col_span2.html
tables/mozilla_expected_failures/core/columns.html
tables/mozilla_expected_failures/core/conflicts.html
tables/mozilla_expected_failures/core/standards1.html
tables/mozilla_expected_failures/marvin/backgr_border-table-cell.html
tables/mozilla_expected_failures/marvin/backgr_border-table-column-group.html
tables/mozilla_expected_failures/marvin/backgr_border-table-column.html
tables/mozilla_expected_failures/marvin/backgr_border-table-quirks.html
tables/mozilla_expected_failures/marvin/backgr_border-table-row-group.html
tables/mozilla_expected_failures/marvin/backgr_border-table-row.html
tables/mozilla_expected_failures/marvin/backgr_border-table.html
tables/mozilla_expected_failures/marvin/backgr_fixed-bg.html
tables/mozilla_expected_failures/marvin/backgr_layers-hide.html
tables/mozilla_expected_failures/marvin/backgr_layers-show.html
tables/mozilla_expected_failures/marvin/backgr_position-table-cell.html
tables/mozilla_expected_failures/marvin/backgr_position-table-column-group.html
tables/mozilla_expected_failures/marvin/backgr_position-table-column.html
tables/mozilla_expected_failures/marvin/backgr_position-table-row-group.html
tables/mozilla_expected_failures/marvin/backgr_position-table-row.html
tables/mozilla_expected_failures/marvin/table_overflow_dirty_reflow_row.html
tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_row_sibling.html
tables/mozilla_expected_failures/marvin/table_overflow_style_reflow_tbody_sibling.html
tables/mozilla_expected_failures/other/empty_cells.html
tables/mozilla_expected_failures/other/test4.html
transforms/2d/hindi-rotated.html
transforms/2d/transform-fixed-container.html</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85930</attachid>
            <date>2011-03-16 07:57:43 -0700</date>
            <delta_ts>2011-03-28 13:53:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56424-20110316105742.patch</filename>
            <type>text/plain</type>
            <size>13955</size>
            <attacher name="Gavin Peters">gavinp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODExMzQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4YjcwNmQ5ZWNmNjk5Y2MzOWViYzE1
YmFlZTE1NjJiZjA5N2EzODZmLi42ZTllNDQzZWExYTk1ZTNkM2UxMDc5OTAxOWIwY2FjNDRmYjk4
OGM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMDMtMTYgIEdhdmluIFBldGVycyAgPGdh
dmlucEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgYWRkIGJlZm9yZWxvYWQgdG8gaWNvbiBhbmQgcHJlZmV0Y2ggbGluayByZWwg
dHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2
NDI0CisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtYmVmb3Jl
bG9hZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxMaW5rRWxl
bWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3Jt
L2Nocm9taXVtLW1hYy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0td2luL3dlYmFy
Y2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
U2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRm
b3JtL3dpbi9Ta2lwcGVkOgorICAgICAgICAqIHdlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29u
LWJlZm9yZWxvYWQtZXhwZWN0ZWQud2ViYXJjaGl2ZTogQWRkZWQuCisgICAgICAgICogd2ViYXJj
aGl2ZS90ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9hZC5odG1sOiBBZGRlZC4KKwogMjAxMS0w
My0xNSAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBZdXJ5IFNlbWlraGF0c2t5LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLWJlZm9yZWxvYWQt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkMjFkY2Q4OTI5YzY0ZGI1MDlmMGQxYzYxOWIxNjhj
MWQzNjE3Y2UKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MTGlu
a0VsZW1lbnQvcHJlZmV0Y2gtYmVmb3JlbG9hZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyIEBA
CitQQVNTCitUaGlzIHRlc3Qgd2lsbCBvbmx5IHByaW50ICJQQVNTIiBvciAiRkFJTCIgaWYgbGlu
ayBwcmVmZXRjaGVzIGFyZSBiZWluZyBmb2xsb3dlZCwgb3RoZXJ3aXNlIGl0IHdpbGwgc2hvdyBu
b3RoaW5nIGJlbG93LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtF
bGVtZW50L3ByZWZldGNoLWJlZm9yZWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hU
TUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzA1OTRk
OTRhMzYyNzRiYzNlNTRjMDdjZjY2ODllOTMyZjFkZWJkZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0
bWwKQEAgLTAsMCArMSwyMiBAQAorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQ+CitmdW5jdGlvbiBwcmludChtZXNzYWdlLCBjb2xvcikgCit7CisgICAgdmFyIHBhcmFn
cmFwaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHBhcmFncmFwaC5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgcGFyYWdyYXBo
LnN0eWxlLmZvbnRGYW1pbHkgPSAibW9ub3NwYWNlIjsKKyAgICBpZiAoY29sb3IpCisgICAgICAg
IHBhcmFncmFwaC5zdHlsZS5jb2xvciA9IGNvbG9yOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQocGFyYWdyYXBoKTsKK30KK2lmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Cit9Cis8L3NjcmlwdD4KKzxodG1sPgorPHA+VGhpcyB0ZXN0IHdpbGwgb25seSBwcmludCAi
UEFTUyIgb3IgIkZBSUwiIGlmIGxpbmsgcHJlZmV0Y2hlcyBhcmUKK2JlaW5nIGZvbGxvd2VkLCBv
dGhlcndpc2UgaXQgd2lsbCBzaG93IG5vdGhpbmcgYmVsb3cuPC9wPgorPGxpbmsgaHJlZj0icHJl
ZmV0Y2gubGluayIgcmVsPSJwcmVmZXRjaCIgb25iZWZvcmVsb2FkPSJwcmludCgnUEFTUycsJ2dy
ZWVuJyk7cmV0dXJuIGZhbHNlIiBvbmxvYWQ9InByaW50KCdGQUlMJywgJ3JlZCcpIj4KKzwvaHRt
bD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL3dlYmFy
Y2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0tbWFjL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29u
LWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1NWZkM2QwMTAyNGI2N2U2MDNk
YjlhOGM3NTQxMDU4Y2Y3NzJmYWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS1tYWMvd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9h
ZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDg6
IFVuY2F1Z2h0IFR5cGVFcnJvcjogT2JqZWN0IFtvYmplY3QgT2JqZWN0XSBoYXMgbm8gbWV0aG9k
ICdkdW1wRE9NQXNXZWJBcmNoaXZlJworbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgIFJl
bmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2
MDAKKyAgUmVuZGVyQmxvY2sge0hUTUx9IGF0ICgwLDApIHNpemUgODAweDYwMAorICAgIFJlbmRl
ckJvZHkge0JPRFl9IGF0ICg4LDgpIHNpemUgNzg0eDU3NgorICAgICAgUmVuZGVyQmxvY2sge0RJ
Vn0gYXQgKDAsMCkgc2l6ZSA3ODR4MTYKKyAgICAgICAgUmVuZGVyQmxvY2sge0RJVn0gYXQgKDAs
MCkgc2l6ZSA3ODR4MTYgW2NvbG9yPSMwMDgwMDBdCisgICAgICAgICAgUmVuZGVyVGV4dCB7I3Rl
eHR9IGF0ICgwLDApIHNpemUgMzJ4MTYKKyAgICAgICAgICAgIHRleHQgcnVuIGF0ICgwLDApIHdp
ZHRoIDMyOiAiUEFTUyIKKyAgICAgIFJlbmRlckJsb2NrIHtQfSBhdCAoMCwzMikgc2l6ZSA3ODR4
MjAKKyAgICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgNDgweDE5CisgICAg
ICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzQzOiAiVGhpcyB0ZXN0IHNob3VsZCBoYXZl
IGEgZ3JlZW4gJ1BBU1MnIGp1c3QgYWJvdmUgdGhpcyBsaW5lLiAiCisgICAgICAgICAgdGV4dCBy
dW4gYXQgKDM0MywwKSB3aWR0aCAxMzc6ICJJZiBpdCBkb2Vzbid0LCB5b3UgZmFpbGVkLiIKKyAg
ICAgICAgUmVuZGVyVGV4dCB7I3RleHR9IGF0ICgwLDApIHNpemUgMHgwCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS13aW4vd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVs
LWljb24tYmVmb3JlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS13aW4vd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9hZC1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYTU1ZmQzZDAxMDI0YjY3ZTYwM2RiOWE4Yzc1NDEwNThjZjc3MmZh
YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtLXdpbi93
ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDE1IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgODogVW5jYXVnaHQgVHlwZUVycm9y
OiBPYmplY3QgW29iamVjdCBPYmplY3RdIGhhcyBubyBtZXRob2QgJ2R1bXBET01Bc1dlYkFyY2hp
dmUnCitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKKyAgUmVuZGVyVmlldyBhdCAoMCwwKSBz
aXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUgODAweDYwMAorICBSZW5kZXJCbG9jayB7
SFRNTH0gYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCisgICAgUmVuZGVyQm9keSB7Qk9EWX0gYXQgKDgs
OCkgc2l6ZSA3ODR4NTc2CisgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDc4
NHgxNgorICAgICAgICBSZW5kZXJCbG9jayB7RElWfSBhdCAoMCwwKSBzaXplIDc4NHgxNiBbY29s
b3I9IzAwODAwMF0KKyAgICAgICAgICBSZW5kZXJUZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSAz
MngxNgorICAgICAgICAgICAgdGV4dCBydW4gYXQgKDAsMCkgd2lkdGggMzI6ICJQQVNTIgorICAg
ICAgUmVuZGVyQmxvY2sge1B9IGF0ICgwLDMyKSBzaXplIDc4NHgyMAorICAgICAgICBSZW5kZXJU
ZXh0IHsjdGV4dH0gYXQgKDAsMCkgc2l6ZSA0ODB4MTkKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAo
MCwwKSB3aWR0aCAzNDM6ICJUaGlzIHRlc3Qgc2hvdWxkIGhhdmUgYSBncmVlbiAnUEFTUycganVz
dCBhYm92ZSB0aGlzIGxpbmUuICIKKyAgICAgICAgICB0ZXh0IHJ1biBhdCAoMzQzLDApIHdpZHRo
IDEzNzogIklmIGl0IGRvZXNuJ3QsIHlvdSBmYWlsZWQuIgorICAgICAgICBSZW5kZXJUZXh0IHsj
dGV4dH0gYXQgKDAsMCkgc2l6ZSAweDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2d0ay9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggMDI4
ZWU4ZmZmODU2OTJiNDMzZjY3NDQ0NjY1YjA0NmJlMGUyMGI0ZC4uNDEyNTM0M2ZjZWU1MTYyZDhh
OWU5MTljNDM5ZWJjNjYyZTE5YmU1NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
Z3RrL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTkx
Nyw2ICs5MTcsNyBAQCBmYXN0L2Zvcm1zL3NsaWRlci16b29tZWQuaHRtbAogZmFzdC9kb20vSFRN
TExpbmtFbGVtZW50L2xpbmstYW5kLXN1YnJlc291cmNlLXRlc3QuaHRtbAogZmFzdC9kb20vSFRN
TExpbmtFbGVtZW50L3ByZWZldGNoLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVm
ZXRjaC1vbmxvYWQuaHRtbAorZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLWJlZm9y
ZWxvYWQuaHRtbAogCiAjIFRlc3RzIGZhaWxpbmcgYmVjYXVzZSB0aGUgY29udGV4dCBtZW51IGlz
IGdyYWJiaW5nIG1vdXNlIGV2ZW50cy4KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQwNjAxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tp
cHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IDg2OTMzNGJiYTIz
MGY2NDk2MDhmMDFhMTNiNTM0Yjk2MWZkODczZDcuLjhkOWJhZjMwNTY2Y2NiZmQwNDBmNGExNWEw
ZjAzMGJiNTBlNWZjODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lw
cGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC0xODIsNiArMTgy
LDcgQEAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWRldmljZS1vcmllbnRhdGlv
bi5odG1sCiAjIExpbmsgcHJlZmV0Y2ggaXMgZGlzYWJsZWQgYnkgZGVmYXVsdAogZmFzdC9kb20v
SFRNTExpbmtFbGVtZW50L2xpbmstYW5kLXN1YnJlc291cmNlLXRlc3QuaHRtbAogZmFzdC9kb20v
SFRNTExpbmtFbGVtZW50L3ByZWZldGNoLmh0bWwKK2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9w
cmVmZXRjaC1iZWZvcmVsb2FkLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRj
aC1vbmxvYWQuaHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZldGNoLXB1cnBvc2UuaHRtbAogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCA3NzM3ZjAxNDQ0ZDk2NWI4N2FiN2JiMTNhNmQ2MjUw
OWNjMWQ2NWQ4Li5mN2JiNTI3MWU4YjI4YWE1NTJjODQ2YWRiMGYyNGM2ZTQzYTE5N2ZhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTI4OTcsNiArMjg5Nyw3IEBAIG1lZGlhL3ZpZGVvLWRl
bGF5LWxvYWQtZXZlbnQuaHRtbAogIyBMaW5rIHByZWZldGNoIGlzIGRpc2FibGVkIGJ5IGRlZmF1
bHQKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9saW5rLWFuZC1zdWJyZXNvdXJjZS10ZXN0Lmh0
bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC5odG1sCitmYXN0L2RvbS9IVE1M
TGlua0VsZW1lbnQvcHJlZmV0Y2gtYmVmb3JlbG9hZC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0Vs
ZW1lbnQvcHJlZmV0Y2gtb25sb2FkLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9wcmVmZXRjaC1wdXJw
b3NlLmh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCBhYzhmZmM0MmUwOTFlNTM1
OTJmMGI5MDIwNzU4ZDk5MzI5ODM5M2JhLi5kMDI3ZDk5YjNkZjg1ZWRiM2JkMjM4ZmYxNDRiOGY3
Y2ZkMDYwMDNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtOTg0LDYgKzk4NCw3IEBA
IGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1kZXZpY2Utb3JpZW50YXRpb24uaHRt
bAogIyBMaW5rIHByZWZldGNoIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQKIGZhc3QvZG9tL0hUTUxM
aW5rRWxlbWVudC9saW5rLWFuZC1zdWJyZXNvdXJjZS10ZXN0Lmh0bWwKIGZhc3QvZG9tL0hUTUxM
aW5rRWxlbWVudC9wcmVmZXRjaC5odG1sCitmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0
Y2gtYmVmb3JlbG9hZC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25s
b2FkLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9wcmVmZXRjaC1wdXJwb3NlLmh0bWwKIApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9h
ZC1leHBlY3RlZC53ZWJhcmNoaXZlIGIvTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWxpbmst
cmVsLWljb24tYmVmb3JlbG9hZC1leHBlY3RlZC53ZWJhcmNoaXZlCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5MGI2
ODIyNWI4NjYzMDYyNzQ3YmFkMWJkMGUwNzlhMzkzZTY4MzUKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLWV4cGVj
dGVkLndlYmFyY2hpdmUKQEAgLTAsMCArMSwzNSBAQAorPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNv
ZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJ
U1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5k
dGQiPgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5PldlYk1haW5SZXNvdXJj
ZTwva2V5PgorCTxkaWN0PgorCQk8a2V5PldlYlJlc291cmNlRGF0YTwva2V5PgorCQk8c3RyaW5n
PiZsdDtodG1sJmd0OyZsdDtoZWFkJmd0OworJmx0O3NjcmlwdCZndDsKK2Z1bmN0aW9uIHJ1blRl
c3QoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SWNvbkRhdGFiYXNlRW5hYmxlZCh0cnVlKTsKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOworICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZVJlbG9hZCgpOworICAgIH0KK30KKyZsdDsvc2NyaXB0
Jmd0OworJmx0O2xpbmsgcmVsPSJpY29uIiBvbmJlZm9yZWxvYWQ9InJldHVybiBmYWxzZSIgaHJl
Zj0icmVzb3VyY2VzL2Zhdmljb24uaWNvIiB0eXBlPSJpbWFnZS94LWljb24iJmd0OworJmx0Oy9o
ZWFkJmd0OworJmx0O2JvZHkgb25sb2FkPSJydW5UZXN0KCkiJmd0OworCisKKyZsdDsvYm9keSZn
dDsmbHQ7L2h0bWwmZ3Q7PC9zdHJpbmc+CisJCTxrZXk+V2ViUmVzb3VyY2VGcmFtZU5hbWU8L2tl
eT4KKwkJPHN0cmluZz48L3N0cmluZz4KKwkJPGtleT5XZWJSZXNvdXJjZU1JTUVUeXBlPC9rZXk+
CisJCTxzdHJpbmc+dGV4dC9odG1sPC9zdHJpbmc+CisJCTxrZXk+V2ViUmVzb3VyY2VUZXh0RW5j
b2RpbmdOYW1lPC9rZXk+CisJCTxzdHJpbmc+VVRGLTg8L3N0cmluZz4KKwkJPGtleT5XZWJSZXNv
dXJjZVVSTDwva2V5PgorCQk8c3RyaW5nPmZpbGU6Ly8vTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90
ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9hZC5odG1sPC9zdHJpbmc+CisJPC9kaWN0PgorPC9k
aWN0PgorPC9wbGlzdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1s
aW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVz
dC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzBiYjg0OTY0NTdm
MDg0MTRiYmI0YTUxY2E4MTRkZGFiOTAyZTliCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9hZC5odG1sCkBAIC0wLDAg
KzEsMzAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gcnVuVGVzdCgpCit7
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRJY29uRGF0YWJhc2VFbmFibGVkKHRydWUpOworICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLnF1ZXVlUmVsb2FkKCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQ+CitmdW5jdGlvbiBwcmludChtZXNzYWdlLCBjb2xvcikgCit7CisgICAgdmFyIHBhcmFn
cmFwaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgIHBhcmFncmFwaC5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CisgICAgcGFyYWdyYXBo
LnN0eWxlLmZvbnRGYW1pbHkgPSAibW9ub3NwYWNlIjsKKyAgICBpZiAoY29sb3IpCisgICAgICAg
IHBhcmFncmFwaC5zdHlsZS5jb2xvciA9IGNvbG9yOworICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQocGFyYWdyYXBoKTsKK30KKzwvc2NyaXB0PgorPHA+
VGhpcyB0ZXN0IHNob3VsZCBoYXZlIGEgZ3JlZW4gJ1BBU1MnIGp1c3QgYWJvdmUgdGhpcyBsaW5l
LiAgSWYgaXQgZG9lc24ndCwgeW91IGZhaWxlZC4KKzxsaW5rIHJlbD0iaWNvbiIgb25iZWZvcmVs
b2FkPSJwcmludCgnUEFTUycsJ2dyZWVuJyk7cmV0dXJuIGZhbHNlIiBocmVmPSJyZXNvdXJjZXMv
ZmF2aWNvbi5pY28iIHR5cGU9ImltYWdlL3gtaWNvbiI+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggYWM2ZDYzYjBmNjY5YjdhNDFmNmE4MzVjNGI1ZWMzZmQ0ZWZjOGUxYS4uN2JlYWRi
MTc4NWFiMjQwNzg1MGI4ZjZmODRmNDNkMDA2ZWZjYmZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE4IEBACisyMDExLTAzLTE2ICBHYXZpbiBQZXRlcnMgIDxnYXZpbnBAY2hyb21pdW0ub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGFkZCBiZWZv
cmVsb2FkIHRvIGljb24gYW5kIHByZWZldGNoIGxpbmsgcmVsIHR5cGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NjQyNAorCisgICAgICAgIFRlc3Rz
OiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtYmVmb3JlbG9hZC5odG1sCisgICAg
ICAgICAgICAgICB3ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwK
KworICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxMaW5rRWxlbWVudDo6Y2hlY2tCZWZvcmVMb2FkRXZlbnQpOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTExpbmtFbGVtZW50Ojpwcm9jZXNzKToKKyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxl
bWVudC5oOgorCiAyMDExLTAzLTE1ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGJ1aWxkIGZpeC4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTExpbmtFbGVtZW50LmNwcAppbmRleCBjMTBiZGRiYWRkNjcxYjNmZDA3ZDY0MDk1NWNjZDcw
MTk5MzZiYjhjLi4xMzQyZDQ1ODA0OTE1MmRhNzkwNzVmMmMyNjBhODYzZmY4NGRmMzM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCkBAIC0xOTMsNiArMTkzLDE3IEBA
IHZvaWQgSFRNTExpbmtFbGVtZW50Ojp0b2tlbml6ZVJlbEF0dHJpYnV0ZShjb25zdCBBdG9taWNT
dHJpbmcmIHJlbCwgUmVsQXR0cmlidXRlCiAgICAgfQogfQogCitib29sIEhUTUxMaW5rRWxlbWVu
dDo6Y2hlY2tCZWZvcmVMb2FkRXZlbnQoKQoreworICAgIFJlZlB0cjxEb2N1bWVudD4gb3JpZ2lu
YWxEb2N1bWVudCA9IGRvY3VtZW50KCk7CisgICAgaWYgKCFkaXNwYXRjaEJlZm9yZUxvYWRFdmVu
dChtX3VybCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBBIGJlZm9yZWxvYWQgaGFu
ZGxlciBtaWdodCBoYXZlIHJlbW92ZWQgdXMgZnJvbSB0aGUgZG9jdW1lbnQgb3IgY2hhbmdlZCB0
aGUgZG9jdW1lbnQuCisgICAgaWYgKCFpbkRvY3VtZW50KCkgfHwgZG9jdW1lbnQoKSAhPSBvcmln
aW5hbERvY3VtZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIHRydWU7Cit9
CisKIHZvaWQgSFRNTExpbmtFbGVtZW50Ojpwcm9jZXNzKCkKIHsKICAgICBpZiAoIWluRG9jdW1l
bnQoKSB8fCBtX2lzSW5TaGFkb3dUcmVlKSB7CkBAIC0yMDQsOCArMjE1LDExIEBAIHZvaWQgSFRN
TExpbmtFbGVtZW50Ojpwcm9jZXNzKCkKIAogICAgIC8vIElFIGV4dGVuc2lvbjogbG9jYXRpb24g
b2Ygc21hbGwgaWNvbiBmb3IgbG9jYXRpb25iYXIgLyBib29rbWFya3MKICAgICAvLyBXZSdsbCBy
ZWNvcmQgdGhpcyBVUkwgcGVyIGRvY3VtZW50LCBldmVuIGlmIHdlIGxhdGVyIG9ubHkgdXNlIGl0
IGluIHRvcCBsZXZlbCBmcmFtZXMKLSAgICBpZiAobV9yZWxBdHRyaWJ1dGUubV9pc0ljb24gJiYg
bV91cmwuaXNWYWxpZCgpICYmICFtX3VybC5pc0VtcHR5KCkpCisgICAgaWYgKG1fcmVsQXR0cmli
dXRlLm1faXNJY29uICYmIG1fdXJsLmlzVmFsaWQoKSAmJiAhbV91cmwuaXNFbXB0eSgpKSB7Cisg
ICAgICAgIGlmICghY2hlY2tCZWZvcmVMb2FkRXZlbnQoKSkgCisgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIGRvY3VtZW50KCktPnNldEljb25VUkwobV91cmwuc3RyaW5nKCksIHR5cGUpOwor
ICAgIH0KIAogICAgIGlmIChtX3JlbEF0dHJpYnV0ZS5tX2lzRE5TUHJlZmV0Y2gpIHsKICAgICAg
ICAgU2V0dGluZ3MqIHNldHRpbmdzID0gZG9jdW1lbnQoKS0+c2V0dGluZ3MoKTsKQEAgLTIxNyw2
ICsyMzEsOCBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cHJvY2VzcygpCiAKICNpZiBFTkFCTEUo
TElOS19QUkVGRVRDSCkKICAgICBpZiAobV9yZWxBdHRyaWJ1dGUubV9pc0xpbmtQcmVmZXRjaCAm
JiBtX3VybC5pc1ZhbGlkKCkgJiYgZG9jdW1lbnQoKS0+ZnJhbWUoKSkgeworICAgICAgICBpZiAo
IWNoZWNrQmVmb3JlTG9hZEV2ZW50KCkpCisgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIG1f
Y2FjaGVkTGlua1ByZWZldGNoID0gZG9jdW1lbnQoKS0+Y2FjaGVkUmVzb3VyY2VMb2FkZXIoKS0+
cmVxdWVzdExpbmtQcmVmZXRjaChtX3VybCk7CiAgICAgICAgIGlmIChtX2NhY2hlZExpbmtQcmVm
ZXRjaCkKICAgICAgICAgICAgIG1fY2FjaGVkTGlua1ByZWZldGNoLT5hZGRDbGllbnQodGhpcyk7
CkBAIC0yMzgsMTEgKzI1NCw3IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50Ojpwcm9jZXNzKCkKICAg
ICAgICAgICAgIG1fY2FjaGVkU2hlZXQgPSAwOwogICAgICAgICB9CiAKLSAgICAgICAgUmVmUHRy
PERvY3VtZW50PiBvcmlnaW5hbERvY3VtZW50ID0gZG9jdW1lbnQoKTsKLSAgICAgICAgaWYgKCFk
aXNwYXRjaEJlZm9yZUxvYWRFdmVudChtX3VybCkpCi0gICAgICAgICAgICByZXR1cm47Ci0gICAg
ICAgIC8vIEEgYmVmb3JlbG9hZCBoYW5kbGVyIG1pZ2h0IGhhdmUgcmVtb3ZlZCB1cyBmcm9tIHRo
ZSBkb2N1bWVudCBvciBjaGFuZ2VkIHRoZSBkb2N1bWVudC4KLSAgICAgICAgaWYgKCFpbkRvY3Vt
ZW50KCkgfHwgZG9jdW1lbnQoKSAhPSBvcmlnaW5hbERvY3VtZW50KQorICAgICAgICBpZiAoIWNo
ZWNrQmVmb3JlTG9hZEV2ZW50KCkpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgbV9s
b2FkaW5nID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCmluZGV4IDI5
OGQxYzk1OTg3MTU5Yzc4YzZkYmZmZTA0MTAyMzdhZTU5OTU2MjkuLjI3ODJlNzFmZjZkMTI0MjFl
OTZjOTQzODE5MWVhNzRhZTYyZGQxNWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTExpbmtFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1l
bnQuaApAQCAtODIsNiArODIsNyBAQCBwcml2YXRlOgogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENI
KQogICAgIHZvaWQgb25sb2FkVGltZXJGaXJlZChUaW1lcjxIVE1MTGlua0VsZW1lbnQ+Kik7CiAj
ZW5kaWYKKyAgICBib29sIGNoZWNrQmVmb3JlTG9hZEV2ZW50KCk7CiAgICAgdm9pZCBwcm9jZXNz
KCk7CiAgICAgc3RhdGljIHZvaWQgcHJvY2Vzc0NhbGxiYWNrKE5vZGUqKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87195</attachid>
            <date>2011-03-28 13:53:31 -0700</date>
            <delta_ts>2011-03-28 14:38:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56424-20110328165329.patch</filename>
            <type>text/plain</type>
            <size>15840</size>
            <attacher name="Gavin Peters">gavinp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIxNDgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyMjQ2ZmYzOTc5MGMyMDNkOGQ2NzZm
NTA2ZWIyMGJhMDQ4ZDlhOTQxLi45MjIyYzA3M2YzYjM5MjViNmM1YmM4ODc1MGY3NTJkNWQ0OTZh
N2NhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDMtMjggIEdhdmluIFBldGVycyAgPGdh
dmlucEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGJlZm9yZWxvYWQgdG8gaWNvbiBhbmQgcHJlZmV0Y2ggbGluayByZWwg
dHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2
NDI0CisKKyAgICAgICAgVW5mb3J0dW5hdGVseSwgdGhlcmUncyBsb3RzIG9mIGV4cGVjdGF0aW9u
cyBjaGFuZ2VzIGhlcmUsIGluIGEgc3RyYW5nZQorICAgICAgICBkaXNqb2ludCBzZXQuICBPbiB0
aGUgY2hyb21pdW0gcG9ydCwgZmF2aWNvbiBsb2FkcyBkb24ndCBvY2N1ciBpbiBEUlQsIHNvIHRo
ZQorICAgICAgICBmYXZpY29uIGNoYW5nZXMgYXJlIGV4cGVjdGVkIHRvIGZhaWwuICBPbiB0aGUg
cG9ydHMgd2l0aG91dCBwcmVmZXRjaGluZywgd2UKKyAgICAgICAgZXhwZWN0IHRoZSBwcmVmZXRj
aGluZyB0ZXN0IHRvIGZhaWwuCisKKyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQv
cHJlZmV0Y2gtYmVmb3JlbG9hZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3Qv
ZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvbWlzYy9saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvbGluay1yZWwtaWNvbi1iZWZv
cmVsb2FkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VzL25ldHdv
cmstc2ltdWxhdG9yLnBocDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoKKyAgICAgICAgKiB3ZWJhcmNoaXZlL3Rlc3Qt
bGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLWV4cGVjdGVkLndlYmFyY2hpdmU6IEFkZGVkLgorICAg
ICAgICAqIHdlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbDogQWRk
ZWQuCisKIDIwMTEtMDMtMjggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2Fk
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jN2ZiMDE4ODljMDgyNGFiNTUxNTYyNmU2NDA3MTU1
OWQxZjViZDZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExp
bmtFbGVtZW50L3ByZWZldGNoLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBA
QAorUEFTUyBiZWZvcmVsb2FkIGNhbGxlZAorVGhpcyB0ZXN0IHdpbGwgb25seSBwcmludCAiUEFT
UyIgb3IgIkZBSUwiIGlmIGxpbmsgcHJlZmV0Y2hlcyBhcmUgZW5hYmxlZCwgb3RoZXJ3aXNlIGl0
IHdpbGwgc2hvdyBub3RoaW5nIGJlbG93LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLWJlZm9yZWxvYWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMjdhNjJhZjNlMjMyNTdjZDNmMDM5MDYwZDJmNGMxODVjMzU5ODA0NgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1i
ZWZvcmVsb2FkLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xl
Ij48L2Rpdj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cit9Cis8L3NjcmlwdD4KKzxo
dG1sPgorPHA+VGhpcyB0ZXN0IHdpbGwgb25seSBwcmludCAiUEFTUyIgb3IgIkZBSUwiIGlmIGxp
bmsgcHJlZmV0Y2hlcyBhcmUKK2VuYWJsZWQsIG90aGVyd2lzZSBpdCB3aWxsIHNob3cgbm90aGlu
ZyBiZWxvdy48L3A+Cis8bGluayBocmVmPSJwcmVmZXRjaC5saW5rIiByZWw9InByZWZldGNoIiBv
bmJlZm9yZWxvYWQ9InRlc3RQYXNzZWQoJ2JlZm9yZWxvYWQgY2FsbGVkJyk7cmV0dXJuIGZhbHNl
IiBvbmxvYWQ9InRlc3RGYWlsZWQoJ29ubG9hZCcpIiBvbmVycm9yPSJ0ZXN0RmFpbGVkKCdvbmVy
cm9yJykiIC8+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWlzYy9saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9taXNjL2xpbmstcmVsLWljb24tYmVmb3JlbG9hZC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmM3ZDUzM2VmNWNkOWE5NmIzYzQ3ODcyNzg3ZTczZDBkM2UwYWNmNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9saW5rLXJlbC1pY29uLWJl
Zm9yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorPHVua25vd24+IC0gZGlkRmlu
aXNoTG9hZGluZworaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvbGluay1yZWwtaWNvbi1iZWZv
cmVsb2FkLmh0bWwgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwsIG1haW4gZG9j
dW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL2xpbmstcmVsLWljb24tYmVmb3Jl
bG9hZC5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwpCitodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbCAtIGRp
ZFJlY2VpdmVSZXNwb25zZSA8TlNVUkxSZXNwb25zZSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlz
Yy9saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbCwgaHR0cCBzdGF0dXMgY29kZSAyMDA+Cito
dHRwOi8vMTI3LjAuMC4xOjgwMDAvZmF2aWNvbi5pY28gLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJM
UmVxdWVzdCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2Zhdmljb24uaWNvLCBtYWluIGRvY3Vt
ZW50IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9saW5rLXJlbC1pY29uLWJlZm9yZWxv
YWQuaHRtbCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIChudWxsKQoraHR0cDov
LzEyNy4wLjAuMTo4MDAwL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwgLSBkaWRG
aW5pc2hMb2FkaW5nCitodHRwOi8vMTI3LjAuMC4xOjgwMDAvZmF2aWNvbi5pY28gLSBkaWRSZWNl
aXZlUmVzcG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2Zhdmljb24u
aWNvLCBodHRwIHN0YXR1cyBjb2RlIDIwMD4KK1RoaXMgdGVzdCBzaG91bGQgbm90IHNob3cgYSBy
ZXF1ZXN0IGZvciB0aGUgZmF2aWNvbiBkb250LWxvYWQtdGhpcy5pY28sIHNpbmNlIHRoZSBiZWZv
cmVsb2FkIGhhbmRsZXIgb24gdGhlIGZhdmljb24gbGluayByZXR1cm5zIGZhbHNlLiBUaGVyZWZv
cmUsIGlmIHRoZSByZXNvdXJjZSByZXF1ZXN0IGxpc3QgYmVsb3cgc2hvd3MgYSByZXF1ZXN0IGZv
ciBkb250LWxvYWQtdGhpcy5pY28sIHRoZW4gdGhpcyB0ZXN0IGhhcyBmYWlsZWQuCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVsb2Fk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVs
b2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNjg1YmZlZmM5YmE0YzJmNjFhMzYzNDc5NjQzM2QxOTczZTNk
YzRmMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9saW5r
LXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbApAQCAtMCwwICsxLDIyIEBACis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJh
Y2tzKCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEljb25EYXRhYmFzZUVuYWJs
ZWQodHJ1ZSk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlUmVsb2FkKCk7Cisg
ICAgfQorfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8
bGluayByZWw9Imljb24iIG9uYmVmb3JlbG9hZD0icmV0dXJuIGZhbHNlIiBocmVmPSJkb250LWxv
YWQtdGhpcy5pY28iPgorPHA+VGhpcyB0ZXN0IHNob3VsZCBub3Qgc2hvdyBhIHJlcXVlc3QgZm9y
IHRoZSBmYXZpY29uCitkb250LWxvYWQtdGhpcy5pY28sIHNpbmNlIHRoZSBiZWZvcmVsb2FkIGhh
bmRsZXIgb24gdGhlIGZhdmljb24gbGluaworcmV0dXJucyBmYWxzZS4gIFRoZXJlZm9yZSwgaWYg
dGhlIHJlc291cmNlIHJlcXVlc3QgbGlzdCBiZWxvdyBzaG93cyBhCityZXF1ZXN0IGZvciBkb250
LWxvYWQtdGhpcy5pY28sIHRoZW4gdGhpcyB0ZXN0IGhhcyBmYWlsZWQuCis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVj
dGF0aW9ucy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0
aW9ucy50eHQKaW5kZXggOTY4YjE0OTc0ODkzMjdmNmFkMzc0ZmQ5OGIzOGU3MzY1YTY2MzFhYS4u
N2FlZGNkNmVmN2M1OTYxZTIyNjlkYTAyNWVmZmU5ZTEyNDZkYmUyOSAxMDA3NTUKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMzMz
NSwzICszMzM1LDYgQEAgQlVHV0s4MjAxMyBXSU4gTElOVVggOiBmYXN0L3RleHQvanVzdGlmeS1p
ZGVvZ3JhcGgtbGVhZGluZy1leHBhbnNpb24uaHRtbCA9IElNQUcKIAogLy8gTmV3IHRlc3QgYWRk
ZWQgaW4gcjgyMDU2LiBUaGUgYXJyb3cgZG9lcyBub3QgcG9pbnQgdXB3YXJkcy4KIEJVR0NSNzc1
NzQgTElOVVggOiBmYXN0L2Jsb2NrZmxvdy9mYWxsYmFjay1vcmllbnRhdGlvbi5odG1sID0gSU1B
R0UKKworLy8gQ2hyb21lIGRvZXNuJ3QgbG9hZCBmYXZpY29ucyBpbiBEUlQgdGVzdHMuCitCVUdX
SzU3MjU5IDogaHR0cC90ZXN0cy9taXNjL2xpbmstcmVsLWljb24tYmVmb3JlbG9hZC5odG1sID0g
RkFJTCBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZCBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCmluZGV4IDRlOWNjZmJiYThkY2UwYmU4
NWI0OTcwOTUwOGYwM2Y0MDdiNDBlMjUuLmVhNzg3NjZjOWRkMDc1MzFkMjZjZGVkMTEyM2M4NDZk
NjgzOWNmMzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lwcGVkCkBAIC05MTcsNiArOTE3LDcgQEAg
ZmFzdC9mb3Jtcy9zbGlkZXItem9vbWVkLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9s
aW5rLWFuZC1zdWJyZXNvdXJjZS10ZXN0Lmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9w
cmVmZXRjaC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25sb2FkLmh0
bWwKK2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0bWwKIAog
IyBUZXN0cyBmYWlsaW5nIGJlY2F1c2UgdGhlIGNvbnRleHQgbWVudSBpcyBncmFiYmluZyBtb3Vz
ZSBldmVudHMuCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDYw
MQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCAxY2JhOGNlOWQwYTY5NmU5OTU5MGMxMWIz
OGVlNjk3ZDQyNTk1NjcxLi5hMjVkYjg3YjJmMDBjYTBjZmVmYWEyMTFiMWRkMTQyY2Q2Mjg1MGNl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMTgyLDYgKzE4Miw3IEBAIGZhc3QvZG9t
L1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1kZXZpY2Utb3JpZW50YXRpb24uaHRtbAogIyBMaW5r
IHByZWZldGNoIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVu
dC9saW5rLWFuZC1zdWJyZXNvdXJjZS10ZXN0Lmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVu
dC9wcmVmZXRjaC5odG1sCitmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtYmVmb3Jl
bG9hZC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25sb2FkLmh0bWwK
IGh0dHAvdGVzdHMvbWlzYy9wcmVmZXRjaC1wdXJwb3NlLmh0bWwKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1Nr
aXBwZWQKaW5kZXggNTI3ZDIyZDYxMTVkODE4NzRlMzE1MmEwOTFjNWQ3MTA4NmNiNjBjYS4uZTA1
YWJjMTU4ZjRmMDZiM2FjYTUwYTAyNWFlZDBlODFkZDA3NWJmNiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9T
a2lwcGVkCkBAIC0yOTc3LDYgKzI5NzcsNyBAQCBtZWRpYS92aWRlby1kZWxheS1sb2FkLWV2ZW50
Lmh0bWwKICMgTGluayBwcmVmZXRjaCBpcyBkaXNhYmxlZCBieSBkZWZhdWx0CiBmYXN0L2RvbS9I
VE1MTGlua0VsZW1lbnQvbGluay1hbmQtc3VicmVzb3VyY2UtdGVzdC5odG1sCiBmYXN0L2RvbS9I
VE1MTGlua0VsZW1lbnQvcHJlZmV0Y2guaHRtbAorZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3By
ZWZldGNoLWJlZm9yZWxvYWQuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNo
LW9ubG9hZC5odG1sCiBodHRwL3Rlc3RzL21pc2MvcHJlZmV0Y2gtcHVycG9zZS5odG1sCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggMzkxYTg0YzRhNmIzOTYxMmIwZDhlMTY2MDU5YjQ2
MmYzODM3ODA0Yi4uZjc4ODE1OGVlMTg0YzVlMTY4YTYzMzg1NjI4ODdlNWIxNDYyNTIyOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTk4Nyw2ICs5ODcsNyBAQCBmYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnRpZXMtZGV2aWNlLW9yaWVudGF0aW9uLmh0bWwKICMgTGluayBwcmVm
ZXRjaCBpcyBkaXNhYmxlZCBieSBkZWZhdWx0CiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvbGlu
ay1hbmQtc3VicmVzb3VyY2UtdGVzdC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJl
ZmV0Y2guaHRtbAorZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLWJlZm9yZWxvYWQu
aHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9ubG9hZC5odG1sCiBodHRw
L3Rlc3RzL21pc2MvcHJlZmV0Y2gtcHVycG9zZS5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQtZXhwZWN0ZWQud2Vi
YXJjaGl2ZSBiL0xheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWJlZm9y
ZWxvYWQtZXhwZWN0ZWQud2ViYXJjaGl2ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43M2M4ODVmZGY2ZTg2NWZhMDY5
YWY1NDJiODUzZTljMTUxMTAxYThlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2Vi
YXJjaGl2ZS90ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9hZC1leHBlY3RlZC53ZWJhcmNoaXZl
CkBAIC0wLDAgKzEsNDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+
Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJo
dHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxwbGlzdCB2
ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5XZWJNYWluUmVzb3VyY2U8L2tleT4KKwk8ZGlj
dD4KKwkJPGtleT5XZWJSZXNvdXJjZURhdGE8L2tleT4KKwkJPHN0cmluZz4mbHQ7aHRtbCZndDsm
bHQ7aGVhZCZndDsKKyZsdDtzY3JpcHQmZ3Q7CitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldEljb25EYXRhYmFzZUVuYWJsZWQodHJ1ZSk7CisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIucXVldWVSZWxvYWQoKTsKKyAgICB9Cit9CismbHQ7L3NjcmlwdCZndDsKKyZsdDsvaGVh
ZCZndDsKKyZsdDtib2R5IG9ubG9hZD0icnVuVGVzdCgpIiZndDsKKyZsdDtkaXYgaWQ9ImNvbnNv
bGUiJmd0OyZsdDtkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IGNvbG9yOiBncmVl
bjsgIiZndDtQQVNTJmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CismbHQ7c2NyaXB0Jmd0OworZnVu
Y3Rpb24gcHJpbnQobWVzc2FnZSwgY29sb3IpIAoreworICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSkpOworICAgIHBhcmFncmFwaC5zdHlsZS5mb250
RmFtaWx5ID0gIm1vbm9zcGFjZSI7CisgICAgaWYgKGNvbG9yKQorICAgICAgICBwYXJhZ3JhcGgu
c3R5bGUuY29sb3IgPSBjb2xvcjsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29s
ZSIpLmFwcGVuZENoaWxkKHBhcmFncmFwaCk7Cit9CismbHQ7L3NjcmlwdCZndDsKKyZsdDtwJmd0
O1RoaXMgdGVzdCBzaG91bGQgaGF2ZSBhIGdyZWVuICdQQVNTJyBqdXN0IGFib3ZlIHRoaXMgbGlu
ZS4gIElmIGl0IGRvZXNuJ3QsIHlvdSBmYWlsZWQuCismbHQ7bGluayByZWw9Imljb24iIG9uYmVm
b3JlbG9hZD0icHJpbnQoJ1BBU1MnLCdncmVlbicpO3JldHVybiBmYWxzZSIgaHJlZj0icmVzb3Vy
Y2VzL2Zhdmljb24uaWNvIiB0eXBlPSJpbWFnZS94LWljb24iJmd0OworCisKKyZsdDsvcCZndDsm
bHQ7L2JvZHkmZ3Q7Jmx0Oy9odG1sJmd0Ozwvc3RyaW5nPgorCQk8a2V5PldlYlJlc291cmNlRnJh
bWVOYW1lPC9rZXk+CisJCTxzdHJpbmc+PC9zdHJpbmc+CisJCTxrZXk+V2ViUmVzb3VyY2VNSU1F
VHlwZTwva2V5PgorCQk8c3RyaW5nPnRleHQvaHRtbDwvc3RyaW5nPgorCQk8a2V5PldlYlJlc291
cmNlVGV4dEVuY29kaW5nTmFtZTwva2V5PgorCQk8c3RyaW5nPlVURi04PC9zdHJpbmc+CisJCTxr
ZXk+V2ViUmVzb3VyY2VVUkw8L2tleT4KKwkJPHN0cmluZz5maWxlOi8vL0xheW91dFRlc3RzL3dl
YmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbDwvc3RyaW5nPgorCTwv
ZGljdD4KKzwvZGljdD4KKzwvcGxpc3Q+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhcmNo
aXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJh
cmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWMw
YmI4NDk2NDU3ZjA4NDE0YmJiNGE1MWNhODE0ZGRhYjkwMmU5YgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRt
bApAQCAtMCwwICsxLDMwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJ1
blRlc3QoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SWNvbkRhdGFiYXNlRW5hYmxlZCh0cnVlKTsKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOworICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZVJlbG9hZCgpOworICAgIH0KK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+Cis8c2NyaXB0PgorZnVuY3Rpb24gcHJpbnQobWVzc2FnZSwgY29sb3IpIAoreworICAg
IHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBwYXJh
Z3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSkpOworICAg
IHBhcmFncmFwaC5zdHlsZS5mb250RmFtaWx5ID0gIm1vbm9zcGFjZSI7CisgICAgaWYgKGNvbG9y
KQorICAgICAgICBwYXJhZ3JhcGguc3R5bGUuY29sb3IgPSBjb2xvcjsKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHBhcmFncmFwaCk7Cit9Cis8L3Nj
cmlwdD4KKzxwPlRoaXMgdGVzdCBzaG91bGQgaGF2ZSBhIGdyZWVuICdQQVNTJyBqdXN0IGFib3Zl
IHRoaXMgbGluZS4gIElmIGl0IGRvZXNuJ3QsIHlvdSBmYWlsZWQuCis8bGluayByZWw9Imljb24i
IG9uYmVmb3JlbG9hZD0icHJpbnQoJ1BBU1MnLCdncmVlbicpO3JldHVybiBmYWxzZSIgaHJlZj0i
cmVzb3VyY2VzL2Zhdmljb24uaWNvIiB0eXBlPSJpbWFnZS94LWljb24iPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCmluZGV4IGE0MjY2NDU3OWNjNDFjMGI1ZjlhMzIyZjhmMjU0ZmM0MDU4MGEy
ZjcuLjBlNzM3ODlhYzc4ZWJmYWQyODhhYzJlZmI5YWEwZDlkMmRiYzZjNzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNCBAQAorMjAxMS0wMy0yOCAgR2F2aW4gUGV0ZXJzICA8Z2F2aW5wQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGQgYmVmb3JlbG9hZCB0byBpY29uIGFuZCBwcmVmZXRjaCBsaW5rIHJlbCB0eXBlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY0MjQKKworICAg
ICAgICBPdmVyIGluIGh0dHBzOi8vbGlzdHMud2Via2l0Lm9yZy9waXBlcm1haWwvd2Via2l0LWRl
di8yMDExLUZlYnJ1YXJ5LzAxNjAzNC5odG1sICwgYSB3ZWJraXQtZGV2CisgICAgICAgIHRocmVh
ZCwgSSd2ZSBkaXNjdXNzZWQgbXkgaG9wZXMgZm9yIHRoZSBsaW5rIGVsZW1lbnQsIGFuZCBhZGRp
bmcgdGhlIGxpbmsgaGVhZGVyLiAgVGhpcworICAgICAgICBjaGFuZ2UgaGVscHMgaW1wcm92ZSB0
aGUgbGluayBoZWFkZXIgYnkgbWFraW5nIGl0IHBhcnRpY2lwYXRlIGluIHRoZSBiZWZvcmVsb2Fk
IGV2ZW50IGluCisgICAgICAgIHR3byBtb3JlIGltcG9ydGFudCBjYXNlcy4KKworICAgICAgICBU
ZXN0czogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLWJlZm9yZWxvYWQuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9taXNjL2xpbmstcmVsLWljb24tYmVmb3JlbG9hZC5o
dG1sCisgICAgICAgICAgICAgICB3ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVs
b2FkLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6Y2hlY2tCZWZvcmVMb2FkRXZlbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50Ojpwcm9jZXNzKToKKyAgICAgICAgKiBodG1sL0hU
TUxMaW5rRWxlbWVudC5oOgorCiAyMDExLTAzLTI4ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXggYzEwYmRkYmFkZDY3MWIzZmQwN2Q2NDA5NTVj
Y2Q3MDE5OTM2YmI4Yy4uMTM0MmQ0NTgwNDkxNTJkYTc5MDc1ZjJjMjYwYTg2M2ZmODRkZjMzNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcApAQCAtMTkzLDYgKzE5Mywx
NyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6dG9rZW5pemVSZWxBdHRyaWJ1dGUoY29uc3QgQXRv
bWljU3RyaW5nJiByZWwsIFJlbEF0dHJpYnV0ZQogICAgIH0KIH0KIAorYm9vbCBIVE1MTGlua0Vs
ZW1lbnQ6OmNoZWNrQmVmb3JlTG9hZEV2ZW50KCkKK3sKKyAgICBSZWZQdHI8RG9jdW1lbnQ+IG9y
aWdpbmFsRG9jdW1lbnQgPSBkb2N1bWVudCgpOworICAgIGlmICghZGlzcGF0Y2hCZWZvcmVMb2Fk
RXZlbnQobV91cmwpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgLy8gQSBiZWZvcmVsb2Fk
IGhhbmRsZXIgbWlnaHQgaGF2ZSByZW1vdmVkIHVzIGZyb20gdGhlIGRvY3VtZW50IG9yIGNoYW5n
ZWQgdGhlIGRvY3VtZW50LgorICAgIGlmICghaW5Eb2N1bWVudCgpIHx8IGRvY3VtZW50KCkgIT0g
b3JpZ2luYWxEb2N1bWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiB0cnVl
OworfQorCiB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cHJvY2VzcygpCiB7CiAgICAgaWYgKCFpbkRv
Y3VtZW50KCkgfHwgbV9pc0luU2hhZG93VHJlZSkgewpAQCAtMjA0LDggKzIxNSwxMSBAQCB2b2lk
IEhUTUxMaW5rRWxlbWVudDo6cHJvY2VzcygpCiAKICAgICAvLyBJRSBleHRlbnNpb246IGxvY2F0
aW9uIG9mIHNtYWxsIGljb24gZm9yIGxvY2F0aW9uYmFyIC8gYm9va21hcmtzCiAgICAgLy8gV2Un
bGwgcmVjb3JkIHRoaXMgVVJMIHBlciBkb2N1bWVudCwgZXZlbiBpZiB3ZSBsYXRlciBvbmx5IHVz
ZSBpdCBpbiB0b3AgbGV2ZWwgZnJhbWVzCi0gICAgaWYgKG1fcmVsQXR0cmlidXRlLm1faXNJY29u
ICYmIG1fdXJsLmlzVmFsaWQoKSAmJiAhbV91cmwuaXNFbXB0eSgpKQorICAgIGlmIChtX3JlbEF0
dHJpYnV0ZS5tX2lzSWNvbiAmJiBtX3VybC5pc1ZhbGlkKCkgJiYgIW1fdXJsLmlzRW1wdHkoKSkg
eworICAgICAgICBpZiAoIWNoZWNrQmVmb3JlTG9hZEV2ZW50KCkpIAorICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICBkb2N1bWVudCgpLT5zZXRJY29uVVJMKG1fdXJsLnN0cmluZygpLCB0eXBl
KTsKKyAgICB9CiAKICAgICBpZiAobV9yZWxBdHRyaWJ1dGUubV9pc0ROU1ByZWZldGNoKSB7CiAg
ICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50KCktPnNldHRpbmdzKCk7CkBAIC0y
MTcsNiArMjMxLDggQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnByb2Nlc3MoKQogCiAjaWYgRU5B
QkxFKExJTktfUFJFRkVUQ0gpCiAgICAgaWYgKG1fcmVsQXR0cmlidXRlLm1faXNMaW5rUHJlZmV0
Y2ggJiYgbV91cmwuaXNWYWxpZCgpICYmIGRvY3VtZW50KCktPmZyYW1lKCkpIHsKKyAgICAgICAg
aWYgKCFjaGVja0JlZm9yZUxvYWRFdmVudCgpKQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICBtX2NhY2hlZExpbmtQcmVmZXRjaCA9IGRvY3VtZW50KCktPmNhY2hlZFJlc291cmNlTG9hZGVy
KCktPnJlcXVlc3RMaW5rUHJlZmV0Y2gobV91cmwpOwogICAgICAgICBpZiAobV9jYWNoZWRMaW5r
UHJlZmV0Y2gpCiAgICAgICAgICAgICBtX2NhY2hlZExpbmtQcmVmZXRjaC0+YWRkQ2xpZW50KHRo
aXMpOwpAQCAtMjM4LDExICsyNTQsNyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cHJvY2Vzcygp
CiAgICAgICAgICAgICBtX2NhY2hlZFNoZWV0ID0gMDsKICAgICAgICAgfQogCi0gICAgICAgIFJl
ZlB0cjxEb2N1bWVudD4gb3JpZ2luYWxEb2N1bWVudCA9IGRvY3VtZW50KCk7Ci0gICAgICAgIGlm
ICghZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQobV91cmwpKQotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICAvLyBBIGJlZm9yZWxvYWQgaGFuZGxlciBtaWdodCBoYXZlIHJlbW92ZWQgdXMgZnJv
bSB0aGUgZG9jdW1lbnQgb3IgY2hhbmdlZCB0aGUgZG9jdW1lbnQuCi0gICAgICAgIGlmICghaW5E
b2N1bWVudCgpIHx8IGRvY3VtZW50KCkgIT0gb3JpZ2luYWxEb2N1bWVudCkKKyAgICAgICAgaWYg
KCFjaGVja0JlZm9yZUxvYWRFdmVudCgpKQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAg
IG1fbG9hZGluZyA9IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
aW5rRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaAppbmRl
eCAyOThkMWM5NTk4NzE1OWM3OGM2ZGJmZmUwNDEwMjM3YWU1OTk1NjI5Li4yNzgyZTcxZmY2ZDEy
NDIxZTk2Yzk0MzgxOTFlYTc0YWU2MmRkMTVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxMaW5rRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtF
bGVtZW50LmgKQEAgLTgyLDYgKzgyLDcgQEAgcHJpdmF0ZToKICNpZiBFTkFCTEUoTElOS19QUkVG
RVRDSCkKICAgICB2b2lkIG9ubG9hZFRpbWVyRmlyZWQoVGltZXI8SFRNTExpbmtFbGVtZW50Piop
OwogI2VuZGlmCisgICAgYm9vbCBjaGVja0JlZm9yZUxvYWRFdmVudCgpOwogICAgIHZvaWQgcHJv
Y2VzcygpOwogICAgIHN0YXRpYyB2b2lkIHByb2Nlc3NDYWxsYmFjayhOb2RlKik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87210</attachid>
            <date>2011-03-28 14:38:56 -0700</date>
            <delta_ts>2011-03-29 06:05:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56424-20110328173854.patch</filename>
            <type>text/plain</type>
            <size>15871</size>
            <attacher name="Gavin Peters">gavinp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIxNDgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyMjQ2ZmYzOTc5MGMyMDNkOGQ2NzZm
NTA2ZWIyMGJhMDQ4ZDlhOTQxLi42NGMxYjFkYmQzNmZhODA2OTVmOTI3NTAxNzQ5ODI4YTlmOGQ1
NzE2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMDMtMjggIEdhdmluIFBldGVycyAgPGdh
dmlucEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGJlZm9yZWxvYWQgdG8gaWNvbiBhbmQgcHJlZmV0Y2ggbGluayByZWwg
dHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2
NDI0CisKKyAgICAgICAgVW5mb3J0dW5hdGVseSwgdGhlcmUncyBsb3RzIG9mIHNraXBwZWQgdGVz
dHMsIGFuZCBhIGNocm9tZSBmYWlsdXJlCisgICAgICAgIGV4cGVjdGF0aW9uIGhlcmUsIGluIGEg
c3RyYW5nZSBkaXNqb2ludCBzZXQuICBPbiB0aGUgY2hyb21pdW0KKyAgICAgICAgcG9ydCwgZmF2
aWNvbiBsb2FkcyBkb24ndCBvY2N1ciBpbiBEUlQsIHNvIHRoZSBmYXZpY29uIGNoYW5nZXMgYXJl
CisgICAgICAgIGV4cGVjdGVkIHRvIGZhaWwuICBPbiB0aGUgcG9ydHMgd2l0aG91dCBwcmVmZXRj
aGluZywgd2UgZXhwZWN0IHRoZQorICAgICAgICBwcmVmZXRjaGluZyB0ZXN0IHRvIGZhaWwuCisK
KyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtYmVmb3JlbG9hZC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9w
cmVmZXRjaC1iZWZvcmVsb2FkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlz
Yy9saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VzL25ldHdvcmstc2ltdWxhdG9yLnBocDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAg
ICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6
CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4v
U2tpcHBlZDoKKyAgICAgICAgKiB3ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVs
b2FkLWV4cGVjdGVkLndlYmFyY2hpdmU6IEFkZGVkLgorICAgICAgICAqIHdlYmFyY2hpdmUvdGVz
dC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDMtMjggIEFk
YW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBFcmlj
IFNlaWRlbC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVu
dC9wcmVmZXRjaC1iZWZvcmVsb2FkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jN2ZiMDE4ODljMDgyNGFiNTUxNTYyNmU2NDA3MTU1OWQxZjViZDZlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLWJl
Zm9yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFTUyBiZWZvcmVsb2FkIGNh
bGxlZAorVGhpcyB0ZXN0IHdpbGwgb25seSBwcmludCAiUEFTUyIgb3IgIkZBSUwiIGlmIGxpbmsg
cHJlZmV0Y2hlcyBhcmUgZW5hYmxlZCwgb3RoZXJ3aXNlIGl0IHdpbGwgc2hvdyBub3RoaW5nIGJl
bG93LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3By
ZWZldGNoLWJlZm9yZWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxl
bWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjdhNjJhZjNlMjMyNTdj
ZDNmMDM5MDYwZDJmNGMxODVjMzU5ODA0NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0bWwKQEAgLTAs
MCArMSwxNCBAQAorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7Cit9Cis8L3NjcmlwdD4KKzxodG1sPgorPHA+VGhpcyB0ZXN0IHdp
bGwgb25seSBwcmludCAiUEFTUyIgb3IgIkZBSUwiIGlmIGxpbmsgcHJlZmV0Y2hlcyBhcmUKK2Vu
YWJsZWQsIG90aGVyd2lzZSBpdCB3aWxsIHNob3cgbm90aGluZyBiZWxvdy48L3A+Cis8bGluayBo
cmVmPSJwcmVmZXRjaC5saW5rIiByZWw9InByZWZldGNoIiBvbmJlZm9yZWxvYWQ9InRlc3RQYXNz
ZWQoJ2JlZm9yZWxvYWQgY2FsbGVkJyk7cmV0dXJuIGZhbHNlIiBvbmxvYWQ9InRlc3RGYWlsZWQo
J29ubG9hZCcpIiBvbmVycm9yPSJ0ZXN0RmFpbGVkKCdvbmVycm9yJykiIC8+Cis8L2h0bWw+CisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9saW5rLXJlbC1pY29uLWJl
Zm9yZWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2xpbmst
cmVsLWljb24tYmVmb3JlbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmM3ZDUzM2VmNWNk
OWE5NmIzYzQ3ODcyNzg3ZTczZDBkM2UwYWNmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWlzYy9saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNyBAQAorPHVua25vd24+IC0gZGlkRmluaXNoTG9hZGluZworaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwgLSB3aWxsU2Vu
ZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvbGlu
ay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwsIG1haW4gZG9jdW1lbnQgVVJMIGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9taXNjL2xpbmstcmVsLWljb24tYmVmb3JlbG9hZC5odG1sLCBodHRwIG1ldGhv
ZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwpCitodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlz
Yy9saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbCAtIGRpZFJlY2VpdmVSZXNwb25zZSA8TlNV
UkxSZXNwb25zZSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9saW5rLXJlbC1pY29uLWJlZm9y
ZWxvYWQuaHRtbCwgaHR0cCBzdGF0dXMgY29kZSAyMDA+CitodHRwOi8vMTI3LjAuMC4xOjgwMDAv
ZmF2aWNvbi5pY28gLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovLzEy
Ny4wLjAuMTo4MDAwL2Zhdmljb24uaWNvLCBtYWluIGRvY3VtZW50IFVSTCBodHRwOi8vMTI3LjAu
MC4xOjgwMDAvbWlzYy9saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbCwgaHR0cCBtZXRob2Qg
R0VUPiByZWRpcmVjdFJlc3BvbnNlIChudWxsKQoraHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2Mv
bGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwgLSBkaWRGaW5pc2hMb2FkaW5nCitodHRwOi8v
MTI3LjAuMC4xOjgwMDAvZmF2aWNvbi5pY28gLSBkaWRSZWNlaXZlUmVzcG9uc2UgPE5TVVJMUmVz
cG9uc2UgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2Zhdmljb24uaWNvLCBodHRwIHN0YXR1cyBjb2Rl
IDIwMD4KK1RoaXMgdGVzdCBzaG91bGQgbm90IHNob3cgYSByZXF1ZXN0IGZvciB0aGUgZmF2aWNv
biBkb250LWxvYWQtdGhpcy5pY28sIHNpbmNlIHRoZSBiZWZvcmVsb2FkIGhhbmRsZXIgb24gdGhl
IGZhdmljb24gbGluayByZXR1cm5zIGZhbHNlLiBUaGVyZWZvcmUsIGlmIHRoZSByZXNvdXJjZSBy
ZXF1ZXN0IGxpc3QgYmVsb3cgc2hvd3MgYSByZXF1ZXN0IGZvciBkb250LWxvYWQtdGhpcy5pY28s
IHRoZW4gdGhpcyB0ZXN0IGhhcyBmYWlsZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
Njg1YmZlZmM5YmE0YzJmNjFhMzYzNDc5NjQzM2QxOTczZTNkYzRmMAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQu
aHRtbApAQCAtMCwwICsxLDIyIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9u
IHJ1blRlc3QoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCk7CisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldEljb25EYXRhYmFzZUVuYWJsZWQodHJ1ZSk7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLnF1ZXVlUmVsb2FkKCk7CisgICAgfQorfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8bGluayByZWw9Imljb24iIG9uYmVm
b3JlbG9hZD0icmV0dXJuIGZhbHNlIiBocmVmPSJkb250LWxvYWQtdGhpcy5pY28iPgorPHA+VGhp
cyB0ZXN0IHNob3VsZCBub3Qgc2hvdyBhIHJlcXVlc3QgZm9yIHRoZSBmYXZpY29uCitkb250LWxv
YWQtdGhpcy5pY28sIHNpbmNlIHRoZSBiZWZvcmVsb2FkIGhhbmRsZXIgb24gdGhlIGZhdmljb24g
bGluaworcmV0dXJucyBmYWxzZS4gIFRoZXJlZm9yZSwgaWYgdGhlIHJlc291cmNlIHJlcXVlc3Qg
bGlzdCBiZWxvdyBzaG93cyBhCityZXF1ZXN0IGZvciBkb250LWxvYWQtdGhpcy5pY28sIHRoZW4g
dGhpcyB0ZXN0IGhhcyBmYWlsZWQuCis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKaW5kZXggOTY4YjE0
OTc0ODkzMjdmNmFkMzc0ZmQ5OGIzOGU3MzY1YTY2MzFhYS4uMjhhYzZiMDkzYWI5OTUwM2NmYWY0
NDY1YTA1YTgwNjc5NmJiNGY5OSAxMDA3NTUKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMzMzNSwzICszMzM1LDYgQEAgQlVHV0s4
MjAxMyBXSU4gTElOVVggOiBmYXN0L3RleHQvanVzdGlmeS1pZGVvZ3JhcGgtbGVhZGluZy1leHBh
bnNpb24uaHRtbCA9IElNQUcKIAogLy8gTmV3IHRlc3QgYWRkZWQgaW4gcjgyMDU2LiBUaGUgYXJy
b3cgZG9lcyBub3QgcG9pbnQgdXB3YXJkcy4KIEJVR0NSNzc1NzQgTElOVVggOiBmYXN0L2Jsb2Nr
Zmxvdy9mYWxsYmFjay1vcmllbnRhdGlvbi5odG1sID0gSU1BR0UKKworLy8gQ2hyb21lIGRvZXNu
J3QgbG9hZCBmYXZpY29ucyBpbiBEUlQgdGVzdHMuCitCVUdXSzU3MjU5IDogaHR0cC90ZXN0cy9t
aXNjL2xpbmstcmVsLWljb24tYmVmb3JlbG9hZC5odG1sID0gRkFJTApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
U2tpcHBlZAppbmRleCA0ZTljY2ZiYmE4ZGNlMGJlODViNDk3MDk1MDhmMDNmNDA3YjQwZTI1Li5l
YTc4NzY2YzlkZDA3NTMxZDI2Y2RlZDExMjNjODQ2ZDY4MzljZjMzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZApAQCAtOTE3LDYgKzkxNyw3IEBAIGZhc3QvZm9ybXMvc2xpZGVyLXpvb21lZC5o
dG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvbGluay1hbmQtc3VicmVzb3VyY2UtdGVzdC5o
dG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2guaHRtbAogZmFzdC9kb20vSFRN
TExpbmtFbGVtZW50L3ByZWZldGNoLW9ubG9hZC5odG1sCitmYXN0L2RvbS9IVE1MTGlua0VsZW1l
bnQvcHJlZmV0Y2gtYmVmb3JlbG9hZC5odG1sCiAKICMgVGVzdHMgZmFpbGluZyBiZWNhdXNlIHRo
ZSBjb250ZXh0IG1lbnUgaXMgZ3JhYmJpbmcgbW91c2UgZXZlbnRzLgogIyBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDA2MDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQK
aW5kZXggMWNiYThjZTlkMGE2OTZlOTk1OTBjMTFiMzhlZTY5N2Q0MjU5NTY3MS4uYTI1ZGI4N2Iy
ZjAwY2EwY2ZlZmFhMjExYjFkZDE0MmNkNjI4NTBjZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBw
ZWQKQEAgLTE4Miw2ICsxODIsNyBAQCBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMt
ZGV2aWNlLW9yaWVudGF0aW9uLmh0bWwKICMgTGluayBwcmVmZXRjaCBpcyBkaXNhYmxlZCBieSBk
ZWZhdWx0CiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvbGluay1hbmQtc3VicmVzb3VyY2UtdGVz
dC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2guaHRtbAorZmFzdC9kb20v
SFRNTExpbmtFbGVtZW50L3ByZWZldGNoLWJlZm9yZWxvYWQuaHRtbAogZmFzdC9kb20vSFRNTExp
bmtFbGVtZW50L3ByZWZldGNoLW9ubG9hZC5odG1sCiBodHRwL3Rlc3RzL21pc2MvcHJlZmV0Y2gt
cHVycG9zZS5odG1sCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBw
ZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IDUyN2QyMmQ2MTE1ZDgx
ODc0ZTMxNTJhMDkxYzVkNzEwODZjYjYwY2EuLmUwNWFiYzE1OGY0ZjA2YjNhY2E1MGEwMjVhZWQw
ZTgxZGQwNzViZjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtMjk3Nyw2ICsyOTc3LDcg
QEAgbWVkaWEvdmlkZW8tZGVsYXktbG9hZC1ldmVudC5odG1sCiAjIExpbmsgcHJlZmV0Y2ggaXMg
ZGlzYWJsZWQgYnkgZGVmYXVsdAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L2xpbmstYW5kLXN1
YnJlc291cmNlLXRlc3QuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLmh0
bWwKK2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0bWwKIGZh
c3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmxvYWQuaHRtbAogaHR0cC90ZXN0cy9t
aXNjL3ByZWZldGNoLXB1cnBvc2UuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCmluZGV4
IDM5MWE4NGM0YTZiMzk2MTJiMGQ4ZTE2NjA1OWI0NjJmMzgzNzgwNGIuLmY3ODgxNThlZTE4NGM1
ZTE2OGE2MzM4NTYyODg3ZTViMTQ2MjUyMjkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCkBA
IC05ODcsNiArOTg3LDcgQEAgZmFzdC9kb20vV2luZG93L3dpbmRvdy1wcm9wZXJ0aWVzLWRldmlj
ZS1vcmllbnRhdGlvbi5odG1sCiAjIExpbmsgcHJlZmV0Y2ggaXMgZGlzYWJsZWQgYnkgZGVmYXVs
dAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L2xpbmstYW5kLXN1YnJlc291cmNlLXRlc3QuaHRt
bAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLmh0bWwKK2Zhc3QvZG9tL0hUTUxM
aW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxl
bWVudC9wcmVmZXRjaC1vbmxvYWQuaHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZldGNoLXB1cnBv
c2UuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1y
ZWwtaWNvbi1iZWZvcmVsb2FkLWV4cGVjdGVkLndlYmFyY2hpdmUgYi9MYXlvdXRUZXN0cy93ZWJh
cmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLWV4cGVjdGVkLndlYmFyY2hpdmUK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNzNjODg1ZmRmNmU4NjVmYTA2OWFmNTQyYjg1M2U5YzE1MTEwMWE4ZQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29u
LWJlZm9yZWxvYWQtZXhwZWN0ZWQud2ViYXJjaGl2ZQpAQCAtMCwwICsxLDQ4IEBACis8P3htbCB2
ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAi
LS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Q
cm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4wIj4KKzxkaWN0PgorCTxr
ZXk+V2ViTWFpblJlc291cmNlPC9rZXk+CisJPGRpY3Q+CisJCTxrZXk+V2ViUmVzb3VyY2VEYXRh
PC9rZXk+CisJCTxzdHJpbmc+Jmx0O2h0bWwmZ3Q7Jmx0O2hlYWQmZ3Q7CismbHQ7c2NyaXB0Jmd0
OworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRJY29uRGF0YWJhc2VFbmFi
bGVkKHRydWUpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wRE9NQXNXZWJBcmNo
aXZlKCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlUmVsb2FkKCk7CisgICAg
fQorfQorJmx0Oy9zY3JpcHQmZ3Q7CismbHQ7L2hlYWQmZ3Q7CismbHQ7Ym9keSBvbmxvYWQ9InJ1
blRlc3QoKSImZ3Q7CismbHQ7ZGl2IGlkPSJjb25zb2xlIiZndDsmbHQ7ZGl2IHN0eWxlPSJmb250
LWZhbWlseTogbW9ub3NwYWNlOyBjb2xvcjogZ3JlZW47ICImZ3Q7UEFTUyZsdDsvZGl2Jmd0OyZs
dDsvZGl2Jmd0OworJmx0O3NjcmlwdCZndDsKK2Z1bmN0aW9uIHByaW50KG1lc3NhZ2UsIGNvbG9y
KSAKK3sKKyAgICB2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7
CisgICAgcGFyYWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3Nh
Z2UpKTsKKyAgICBwYXJhZ3JhcGguc3R5bGUuZm9udEZhbWlseSA9ICJtb25vc3BhY2UiOworICAg
IGlmIChjb2xvcikKKyAgICAgICAgcGFyYWdyYXBoLnN0eWxlLmNvbG9yID0gY29sb3I7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgp
OworfQorJmx0Oy9zY3JpcHQmZ3Q7CismbHQ7cCZndDtUaGlzIHRlc3Qgc2hvdWxkIGhhdmUgYSBn
cmVlbiAnUEFTUycganVzdCBhYm92ZSB0aGlzIGxpbmUuICBJZiBpdCBkb2Vzbid0LCB5b3UgZmFp
bGVkLgorJmx0O2xpbmsgcmVsPSJpY29uIiBvbmJlZm9yZWxvYWQ9InByaW50KCdQQVNTJywnZ3Jl
ZW4nKTtyZXR1cm4gZmFsc2UiIGhyZWY9InJlc291cmNlcy9mYXZpY29uLmljbyIgdHlwZT0iaW1h
Z2UveC1pY29uIiZndDsKKworCismbHQ7L3AmZ3Q7Jmx0Oy9ib2R5Jmd0OyZsdDsvaHRtbCZndDs8
L3N0cmluZz4KKwkJPGtleT5XZWJSZXNvdXJjZUZyYW1lTmFtZTwva2V5PgorCQk8c3RyaW5nPjwv
c3RyaW5nPgorCQk8a2V5PldlYlJlc291cmNlTUlNRVR5cGU8L2tleT4KKwkJPHN0cmluZz50ZXh0
L2h0bWw8L3N0cmluZz4KKwkJPGtleT5XZWJSZXNvdXJjZVRleHRFbmNvZGluZ05hbWU8L2tleT4K
KwkJPHN0cmluZz5VVEYtODwvc3RyaW5nPgorCQk8a2V5PldlYlJlc291cmNlVVJMPC9rZXk+CisJ
CTxzdHJpbmc+ZmlsZTovLy9MYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtaWNv
bi1iZWZvcmVsb2FkLmh0bWw8L3N0cmluZz4KKwk8L2RpY3Q+Cis8L2RpY3Q+Cis8L3BsaXN0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLWljb24tYmVm
b3JlbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLWljb24t
YmVmb3JlbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjMGJiODQ5NjQ1N2YwODQxNGJiYjRhNTFjYTgx
NGRkYWI5MDJlOWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rl
c3QtbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwKQEAgLTAsMCArMSwzMCBAQAorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dEljb25EYXRhYmFzZUVuYWJsZWQodHJ1ZSk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVl
dWVSZWxvYWQoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0i
cnVuVGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Z1bmN0aW9u
IHByaW50KG1lc3NhZ2UsIGNvbG9yKSAKK3sKKyAgICB2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgcGFyYWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAgICBwYXJhZ3JhcGguc3R5bGUuZm9udEZhbWls
eSA9ICJtb25vc3BhY2UiOworICAgIGlmIChjb2xvcikKKyAgICAgICAgcGFyYWdyYXBoLnN0eWxl
LmNvbG9yID0gY29sb3I7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5h
cHBlbmRDaGlsZChwYXJhZ3JhcGgpOworfQorPC9zY3JpcHQ+Cis8cD5UaGlzIHRlc3Qgc2hvdWxk
IGhhdmUgYSBncmVlbiAnUEFTUycganVzdCBhYm92ZSB0aGlzIGxpbmUuICBJZiBpdCBkb2Vzbid0
LCB5b3UgZmFpbGVkLgorPGxpbmsgcmVsPSJpY29uIiBvbmJlZm9yZWxvYWQ9InByaW50KCdQQVNT
JywnZ3JlZW4nKTtyZXR1cm4gZmFsc2UiIGhyZWY9InJlc291cmNlcy9mYXZpY29uLmljbyIgdHlw
ZT0iaW1hZ2UveC1pY29uIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhNDI2NjQ1
NzljYzQxYzBiNWY5YTMyMmY4ZjI1NGZjNDA1ODBhMmY3Li4wZTczNzg5YWM3OGViZmFkMjg4YWMy
ZWZiOWFhMGQ5ZDJkYmM2Yzc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMDMt
MjggIEdhdmluIFBldGVycyAgPGdhdmlucEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGJlZm9yZWxvYWQgdG8gaWNvbiBh
bmQgcHJlZmV0Y2ggbGluayByZWwgdHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU2NDI0CisKKyAgICAgICAgT3ZlciBpbiBodHRwczovL2xpc3Rz
LndlYmtpdC5vcmcvcGlwZXJtYWlsL3dlYmtpdC1kZXYvMjAxMS1GZWJydWFyeS8wMTYwMzQuaHRt
bCAsIGEgd2Via2l0LWRldgorICAgICAgICB0aHJlYWQsIEkndmUgZGlzY3Vzc2VkIG15IGhvcGVz
IGZvciB0aGUgbGluayBlbGVtZW50LCBhbmQgYWRkaW5nIHRoZSBsaW5rIGhlYWRlci4gIFRoaXMK
KyAgICAgICAgY2hhbmdlIGhlbHBzIGltcHJvdmUgdGhlIGxpbmsgaGVhZGVyIGJ5IG1ha2luZyBp
dCBwYXJ0aWNpcGF0ZSBpbiB0aGUgYmVmb3JlbG9hZCBldmVudCBpbgorICAgICAgICB0d28gbW9y
ZSBpbXBvcnRhbnQgY2FzZXMuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL0hUTUxMaW5rRWxl
bWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMv
bWlzYy9saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbAorICAgICAgICAgICAgICAgd2ViYXJj
aGl2ZS90ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9hZC5odG1sCisKKyAgICAgICAgKiBodG1s
L0hUTUxMaW5rRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTGlua0VsZW1lbnQ6
OmNoZWNrQmVmb3JlTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVu
dDo6cHJvY2Vzcyk6CisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1lbnQuaDoKKwogMjAxMS0w
My0yOCAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwCmlu
ZGV4IGMxMGJkZGJhZGQ2NzFiM2ZkMDdkNjQwOTU1Y2NkNzAxOTkzNmJiOGMuLjEzNDJkNDU4MDQ5
MTUyZGE3OTA3NWYyYzI2MGE4NjNmZjg0ZGYzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxM
aW5rRWxlbWVudC5jcHAKQEAgLTE5Myw2ICsxOTMsMTcgQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6
OnRva2VuaXplUmVsQXR0cmlidXRlKGNvbnN0IEF0b21pY1N0cmluZyYgcmVsLCBSZWxBdHRyaWJ1
dGUKICAgICB9CiB9CiAKK2Jvb2wgSFRNTExpbmtFbGVtZW50OjpjaGVja0JlZm9yZUxvYWRFdmVu
dCgpCit7CisgICAgUmVmUHRyPERvY3VtZW50PiBvcmlnaW5hbERvY3VtZW50ID0gZG9jdW1lbnQo
KTsKKyAgICBpZiAoIWRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KG1fdXJsKSkKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIC8vIEEgYmVmb3JlbG9hZCBoYW5kbGVyIG1pZ2h0IGhhdmUgcmVtb3Zl
ZCB1cyBmcm9tIHRoZSBkb2N1bWVudCBvciBjaGFuZ2VkIHRoZSBkb2N1bWVudC4KKyAgICBpZiAo
IWluRG9jdW1lbnQoKSB8fCBkb2N1bWVudCgpICE9IG9yaWdpbmFsRG9jdW1lbnQpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBIVE1MTGlua0VsZW1l
bnQ6OnByb2Nlc3MoKQogewogICAgIGlmICghaW5Eb2N1bWVudCgpIHx8IG1faXNJblNoYWRvd1Ry
ZWUpIHsKQEAgLTIwNCw4ICsyMTUsMTEgQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnByb2Nlc3Mo
KQogCiAgICAgLy8gSUUgZXh0ZW5zaW9uOiBsb2NhdGlvbiBvZiBzbWFsbCBpY29uIGZvciBsb2Nh
dGlvbmJhciAvIGJvb2ttYXJrcwogICAgIC8vIFdlJ2xsIHJlY29yZCB0aGlzIFVSTCBwZXIgZG9j
dW1lbnQsIGV2ZW4gaWYgd2UgbGF0ZXIgb25seSB1c2UgaXQgaW4gdG9wIGxldmVsIGZyYW1lcwot
ICAgIGlmIChtX3JlbEF0dHJpYnV0ZS5tX2lzSWNvbiAmJiBtX3VybC5pc1ZhbGlkKCkgJiYgIW1f
dXJsLmlzRW1wdHkoKSkKKyAgICBpZiAobV9yZWxBdHRyaWJ1dGUubV9pc0ljb24gJiYgbV91cmwu
aXNWYWxpZCgpICYmICFtX3VybC5pc0VtcHR5KCkpIHsKKyAgICAgICAgaWYgKCFjaGVja0JlZm9y
ZUxvYWRFdmVudCgpKSAKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZG9jdW1lbnQoKS0+
c2V0SWNvblVSTChtX3VybC5zdHJpbmcoKSwgdHlwZSk7CisgICAgfQogCiAgICAgaWYgKG1fcmVs
QXR0cmlidXRlLm1faXNETlNQcmVmZXRjaCkgewogICAgICAgICBTZXR0aW5ncyogc2V0dGluZ3Mg
PSBkb2N1bWVudCgpLT5zZXR0aW5ncygpOwpAQCAtMjE3LDYgKzIzMSw4IEBAIHZvaWQgSFRNTExp
bmtFbGVtZW50Ojpwcm9jZXNzKCkKIAogI2lmIEVOQUJMRShMSU5LX1BSRUZFVENIKQogICAgIGlm
IChtX3JlbEF0dHJpYnV0ZS5tX2lzTGlua1ByZWZldGNoICYmIG1fdXJsLmlzVmFsaWQoKSAmJiBk
b2N1bWVudCgpLT5mcmFtZSgpKSB7CisgICAgICAgIGlmICghY2hlY2tCZWZvcmVMb2FkRXZlbnQo
KSkKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbV9jYWNoZWRMaW5rUHJlZmV0Y2ggPSBk
b2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0TGlua1ByZWZldGNoKG1f
dXJsKTsKICAgICAgICAgaWYgKG1fY2FjaGVkTGlua1ByZWZldGNoKQogICAgICAgICAgICAgbV9j
YWNoZWRMaW5rUHJlZmV0Y2gtPmFkZENsaWVudCh0aGlzKTsKQEAgLTIzOCwxMSArMjU0LDcgQEAg
dm9pZCBIVE1MTGlua0VsZW1lbnQ6OnByb2Nlc3MoKQogICAgICAgICAgICAgbV9jYWNoZWRTaGVl
dCA9IDA7CiAgICAgICAgIH0KIAotICAgICAgICBSZWZQdHI8RG9jdW1lbnQ+IG9yaWdpbmFsRG9j
dW1lbnQgPSBkb2N1bWVudCgpOwotICAgICAgICBpZiAoIWRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50
KG1fdXJsKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgLy8gQSBiZWZvcmVsb2FkIGhh
bmRsZXIgbWlnaHQgaGF2ZSByZW1vdmVkIHVzIGZyb20gdGhlIGRvY3VtZW50IG9yIGNoYW5nZWQg
dGhlIGRvY3VtZW50LgotICAgICAgICBpZiAoIWluRG9jdW1lbnQoKSB8fCBkb2N1bWVudCgpICE9
IG9yaWdpbmFsRG9jdW1lbnQpCisgICAgICAgIGlmICghY2hlY2tCZWZvcmVMb2FkRXZlbnQoKSkK
ICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBtX2xvYWRpbmcgPSB0cnVlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKaW5kZXggMjk4ZDFjOTU5ODcxNTljNzhjNmRiZmZl
MDQxMDIzN2FlNTk5NTYyOS4uMjc4MmU3MWZmNmQxMjQyMWU5NmM5NDM4MTkxZWE3NGFlNjJkZDE1
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCkBAIC04Miw2ICs4Miw3IEBA
IHByaXZhdGU6CiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgdm9pZCBvbmxvYWRUaW1l
ckZpcmVkKFRpbWVyPEhUTUxMaW5rRWxlbWVudD4qKTsKICNlbmRpZgorICAgIGJvb2wgY2hlY2tC
ZWZvcmVMb2FkRXZlbnQoKTsKICAgICB2b2lkIHByb2Nlc3MoKTsKICAgICBzdGF0aWMgdm9pZCBw
cm9jZXNzQ2FsbGJhY2soTm9kZSopOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87301</attachid>
            <date>2011-03-29 06:05:33 -0700</date>
            <delta_ts>2011-03-29 10:58:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56424-20110329090531.patch</filename>
            <type>text/plain</type>
            <size>16035</size>
            <attacher name="Gavin Peters">gavinp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIyMzUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwYTQzZTZlMmI5YTQwODUyYTFhY2U5
NWNlZGY5YzU5MDdjN2JhMzkzLi42MWE1NWFmZDQ2NGQxNGEyNzY5Y2Y5YjYzOWMzNGRiMDhjYjhm
Y2QyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTEtMDMtMjggIEdhdmluIFBldGVycyAgPGdh
dmlucEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGJlZm9yZWxvYWQgdG8gaWNvbiBhbmQgcHJlZmV0Y2ggbGluayByZWwg
dHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2
NDI0CisKKyAgICAgICAgVW5mb3J0dW5hdGVseSwgdGhlcmUncyBsb3RzIG9mIHNraXBwZWQgdGVz
dHMsIGFuZCBhIGNocm9tZSBmYWlsdXJlCisgICAgICAgIGV4cGVjdGF0aW9uIGhlcmUsIGluIGEg
c3RyYW5nZSBkaXNqb2ludCBzZXQuICBPbiB0aGUgY2hyb21pdW0KKyAgICAgICAgcG9ydCwgZmF2
aWNvbiBsb2FkcyBkb24ndCBvY2N1ciBpbiBEUlQsIHNvIHRoZSBmYXZpY29uIGNoYW5nZXMgYXJl
CisgICAgICAgIGV4cGVjdGVkIHRvIGZhaWwuICBPbiB0aGUgcG9ydHMgd2l0aG91dCBwcmVmZXRj
aGluZywgd2UgZXhwZWN0IHRoZQorICAgICAgICBwcmVmZXRjaGluZyB0ZXN0IHRvIGZhaWwuCisK
KyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtYmVmb3JlbG9hZC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9w
cmVmZXRjaC1iZWZvcmVsb2FkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlz
Yy9saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvcmVzb3VyY2VzL25ldHdvcmstc2ltdWxhdG9yLnBocDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAg
ICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6
CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4v
U2tpcHBlZDoKKyAgICAgICAgKiB3ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVs
b2FkLWV4cGVjdGVkLndlYmFyY2hpdmU6IEFkZGVkLgorICAgICAgICAqIHdlYmFyY2hpdmUvdGVz
dC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbDogQWRkZWQuCisKIDIwMTEtMDMtMjkgIFBh
dmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgWXVyeSBTZW1pa2hhdHNreS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jN2ZiMDE4ODljMDgyNGFiNTUxNTYyNmU2NDA3MTU1OWQxZjVi
ZDZlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVt
ZW50L3ByZWZldGNoLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFT
UyBiZWZvcmVsb2FkIGNhbGxlZAorVGhpcyB0ZXN0IHdpbGwgb25seSBwcmludCAiUEFTUyIgb3Ig
IkZBSUwiIGlmIGxpbmsgcHJlZmV0Y2hlcyBhcmUgZW5hYmxlZCwgb3RoZXJ3aXNlIGl0IHdpbGwg
c2hvdyBub3RoaW5nIGJlbG93LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TExpbmtFbGVtZW50L3ByZWZldGNoLWJlZm9yZWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MjdhNjJhZjNlMjMyNTdjZDNmMDM5MDYwZDJmNGMxODVjMzU5ODA0NgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVs
b2FkLmh0bWwKQEAgLTAsMCArMSwxNCBAQAorPGJvZHk+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cit9Cis8L3NjcmlwdD4KKzxodG1sPgor
PHA+VGhpcyB0ZXN0IHdpbGwgb25seSBwcmludCAiUEFTUyIgb3IgIkZBSUwiIGlmIGxpbmsgcHJl
ZmV0Y2hlcyBhcmUKK2VuYWJsZWQsIG90aGVyd2lzZSBpdCB3aWxsIHNob3cgbm90aGluZyBiZWxv
dy48L3A+Cis8bGluayBocmVmPSJwcmVmZXRjaC5saW5rIiByZWw9InByZWZldGNoIiBvbmJlZm9y
ZWxvYWQ9InRlc3RQYXNzZWQoJ2JlZm9yZWxvYWQgY2FsbGVkJyk7cmV0dXJuIGZhbHNlIiBvbmxv
YWQ9InRlc3RGYWlsZWQoJ29ubG9hZCcpIiBvbmVycm9yPSJ0ZXN0RmFpbGVkKCdvbmVycm9yJyki
IC8+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9s
aW5rLXJlbC1pY29uLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9taXNjL2xpbmstcmVsLWljb24tYmVmb3JlbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmM3ZDUzM2VmNWNkOWE5NmIzYzQ3ODcyNzg3ZTczZDBkM2UwYWNmNQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9saW5rLXJlbC1pY29uLWJlZm9yZWxv
YWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorPHVua25vd24+IC0gZGlkRmluaXNoTG9h
ZGluZworaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVsb2Fk
Lmh0bWwgLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVzdCBVUkwgaHR0cDovLzEyNy4wLjAu
MTo4MDAwL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwsIG1haW4gZG9jdW1lbnQg
VVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL2xpbmstcmVsLWljb24tYmVmb3JlbG9hZC5o
dG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwpCitodHRwOi8vMTI3
LjAuMC4xOjgwMDAvbWlzYy9saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbCAtIGRpZFJlY2Vp
dmVSZXNwb25zZSA8TlNVUkxSZXNwb25zZSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9saW5r
LXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbCwgaHR0cCBzdGF0dXMgY29kZSAyMDA+CitodHRwOi8v
MTI3LjAuMC4xOjgwMDAvZmF2aWNvbi5pY28gLSB3aWxsU2VuZFJlcXVlc3QgPE5TVVJMUmVxdWVz
dCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2Zhdmljb24uaWNvLCBtYWluIGRvY3VtZW50IFVS
TCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRt
bCwgaHR0cCBtZXRob2QgR0VUPiByZWRpcmVjdFJlc3BvbnNlIChudWxsKQoraHR0cDovLzEyNy4w
LjAuMTo4MDAwL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwgLSBkaWRGaW5pc2hM
b2FkaW5nCitodHRwOi8vMTI3LjAuMC4xOjgwMDAvZmF2aWNvbi5pY28gLSBkaWRSZWNlaXZlUmVz
cG9uc2UgPE5TVVJMUmVzcG9uc2UgaHR0cDovLzEyNy4wLjAuMTo4MDAwL2Zhdmljb24uaWNvLCBo
dHRwIHN0YXR1cyBjb2RlIDIwMD4KK1RoaXMgdGVzdCBzaG91bGQgbm90IHNob3cgYSByZXF1ZXN0
IGZvciB0aGUgZmF2aWNvbiBkb250LWxvYWQtdGhpcy5pY28sIHNpbmNlIHRoZSBiZWZvcmVsb2Fk
IGhhbmRsZXIgb24gdGhlIGZhdmljb24gbGluayByZXR1cm5zIGZhbHNlLiBUaGVyZWZvcmUsIGlm
IHRoZSByZXNvdXJjZSByZXF1ZXN0IGxpc3QgYmVsb3cgc2hvd3MgYSByZXF1ZXN0IGZvciBkb250
LWxvYWQtdGhpcy5pY28sIHRoZW4gdGhpcyB0ZXN0IGhhcyBmYWlsZWQuCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjg1YmZlZmM5YmE0YzJmNjFhMzYzNDc5NjQzM2QxOTczZTNkYzRmMAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9saW5rLXJlbC1p
Y29uLWJlZm9yZWxvYWQuaHRtbApAQCAtMCwwICsxLDIyIEBACis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdD4KK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCk7
CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldEljb25EYXRhYmFzZUVuYWJsZWQodHJ1
ZSk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlUmVsb2FkKCk7CisgICAgfQor
fQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8bGluayBy
ZWw9Imljb24iIG9uYmVmb3JlbG9hZD0icmV0dXJuIGZhbHNlIiBocmVmPSJkb250LWxvYWQtdGhp
cy5pY28iPgorPHA+VGhpcyB0ZXN0IHNob3VsZCBub3Qgc2hvdyBhIHJlcXVlc3QgZm9yIHRoZSBm
YXZpY29uCitkb250LWxvYWQtdGhpcy5pY28sIHNpbmNlIHRoZSBiZWZvcmVsb2FkIGhhbmRsZXIg
b24gdGhlIGZhdmljb24gbGluaworcmV0dXJucyBmYWxzZS4gIFRoZXJlZm9yZSwgaWYgdGhlIHJl
c291cmNlIHJlcXVlc3QgbGlzdCBiZWxvdyBzaG93cyBhCityZXF1ZXN0IGZvciBkb250LWxvYWQt
dGhpcy5pY28sIHRoZW4gdGhpcyB0ZXN0IGhhcyBmYWlsZWQuCis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9u
cy50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50
eHQKaW5kZXggNmJmNTUxNTM4NzI0YmFkM2E2NTI3NjhlZmNmZDUyNWQ4NDM0Y2JlOS4uN2IwMGZh
NjFhMGJjYTkzZjVlNjQwNDE3M2NjZWM0NzhkOTQ5OTU0YiAxMDA3NTUKLS0tIGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dApAQCAtMzM0OCwzICsz
MzQ4LDcgQEAgQlVHQ1I3NzcwNiA6IGVkaXRpbmcvc3BlbGxpbmcvZ3JhbW1hci5odG1sID0gRkFJ
TAogCiAvLyBOZXcgdGVzdCBhZGRlZCBpbiByODIxNTIgYW5kIHRlc3QgZXhwZWN0YXRpb24gdXBk
YXRlZCBpbiByODIxODkuCiBCVUdDUjc3NzM0IDogaHR0cC90ZXN0cy91cmkvdXNlcm5hbWUtd2l0
aC1uby1ob3N0bmFtZS5odG1sID0gVEVYVAorCisvLyBDaHJvbWUgZG9lc24ndCBsb2FkIGZhdmlj
b25zIGluIERSVCB0ZXN0cy4KK0JVR1dLNTcyNTkgOiBodHRwL3Rlc3RzL21pc2MvbGluay1yZWwt
aWNvbi1iZWZvcmVsb2FkLmh0bWwgPSBGQUlMIFBBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBl
ZAppbmRleCAzZGU0Y2Q1ZmFhNzQ4MmUzMjM3MTZiMzE2ZTRhZjFlODlmNTllYjI3Li44NDc4OTE5
NjkzYTQ3NjUyYTA4ODg1NjVkYWZlM2U5ZTMyNjVkYWRmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tp
cHBlZApAQCAtOTE4LDYgKzkxOCw3IEBAIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9saW5rLWFu
ZC1zdWJyZXNvdXJjZS10ZXN0Lmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRj
aC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25lcnJvci5odG1sCiBm
YXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25sb2FkLmh0bWwKK2Zhc3QvZG9tL0hU
TUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0bWwKIAogIyBUZXN0cyBmYWlsaW5n
IGJlY2F1c2UgdGhlIGNvbnRleHQgbWVudSBpcyBncmFiYmluZyBtb3VzZSBldmVudHMuCiAjIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00MDYwMQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvU2tpcHBlZAppbmRleCAyOTYyYzE5ZTFjOGM0MTg4YTE2NWNhYmNmZGNiYWY3MmI2ZDZjNTVm
Li5iZTYzODQyNjg2MGIwYmFlNmM5OWJlYzJkMjQ2YzVmMDU4MTQyMzNlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvU2tpcHBlZApAQCAtMTgyLDYgKzE4Miw3IEBAIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ct
cHJvcGVydGllcy1kZXZpY2Utb3JpZW50YXRpb24uaHRtbAogIyBMaW5rIHByZWZldGNoIGlzIGRp
c2FibGVkIGJ5IGRlZmF1bHQKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9saW5rLWFuZC1zdWJy
ZXNvdXJjZS10ZXN0Lmh0bWwKIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC5odG1s
CitmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtYmVmb3JlbG9hZC5odG1sCiBmYXN0
L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25lcnJvci5odG1sCiBmYXN0L2RvbS9IVE1M
TGlua0VsZW1lbnQvcHJlZmV0Y2gtb25sb2FkLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9wcmVmZXRj
aC1wdXJwb3NlLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBw
ZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCmluZGV4IDFmMWUwMzg4OTllYzM1
YmE3NjM1OTU3YzcwZjgwYjIzMGY4M2M2NjQuLmY5NWFkYTJmYzk1YmJkNGRkZDBiOTZlNTU0ODQ5
YTJkNDZkZjk5MmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQK
KysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZApAQCAtMjk4MCw2ICsyOTgwLDcg
QEAgbWVkaWEvdmlkZW8tZGVsYXktbG9hZC1ldmVudC5odG1sCiAjIExpbmsgcHJlZmV0Y2ggaXMg
ZGlzYWJsZWQgYnkgZGVmYXVsdAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L2xpbmstYW5kLXN1
YnJlc291cmNlLXRlc3QuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLmh0
bWwKK2Zhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0bWwKIGZh
c3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmVycm9yLmh0bWwKIGZhc3QvZG9tL0hU
TUxMaW5rRWxlbWVudC9wcmVmZXRjaC1vbmxvYWQuaHRtbAogaHR0cC90ZXN0cy9taXNjL3ByZWZl
dGNoLXB1cnBvc2UuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Nr
aXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZAppbmRleCAzYzRmODgzMTIw
YTBiZDEwYjdlYmVmYjRiMmI0MDBmOTAxYTMzZjM1Li4wOGYwZTRlZWNiZWQxMzBiNmVkODczMjRl
ZWFlOGU4ODdjZjQyYWZiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tp
cHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZApAQCAtOTkwLDYgKzk5
MCw3IEBAIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctcHJvcGVydGllcy1kZXZpY2Utb3JpZW50YXRp
b24uaHRtbAogIyBMaW5rIHByZWZldGNoIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQKIGZhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9saW5rLWFuZC1zdWJyZXNvdXJjZS10ZXN0Lmh0bWwKIGZhc3QvZG9t
L0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC5odG1sCitmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQv
cHJlZmV0Y2gtYmVmb3JlbG9hZC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0
Y2gtb25lcnJvci5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtb25sb2Fk
Lmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9wcmVmZXRjaC1wdXJwb3NlLmh0bWwKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQtZXhw
ZWN0ZWQud2ViYXJjaGl2ZSBiL0xheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1p
Y29uLWJlZm9yZWxvYWQtZXhwZWN0ZWQud2ViYXJjaGl2ZQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43M2M4ODVmZGY2
ZTg2NWZhMDY5YWY1NDJiODUzZTljMTUxMTAxYThlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9hZC1leHBlY3RlZC53
ZWJhcmNoaXZlCkBAIC0wLDAgKzEsNDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9
IlVURi04Ij8+Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEu
MC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4K
KzxwbGlzdCB2ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5XZWJNYWluUmVzb3VyY2U8L2tl
eT4KKwk8ZGljdD4KKwkJPGtleT5XZWJSZXNvdXJjZURhdGE8L2tleT4KKwkJPHN0cmluZz4mbHQ7
aHRtbCZndDsmbHQ7aGVhZCZndDsKKyZsdDtzY3JpcHQmZ3Q7CitmdW5jdGlvbiBydW5UZXN0KCkK
K3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldEljb25EYXRhYmFzZUVuYWJsZWQodHJ1ZSk7CisgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIucXVldWVSZWxvYWQoKTsKKyAgICB9Cit9CismbHQ7L3NjcmlwdCZndDsK
KyZsdDsvaGVhZCZndDsKKyZsdDtib2R5IG9ubG9hZD0icnVuVGVzdCgpIiZndDsKKyZsdDtkaXYg
aWQ9ImNvbnNvbGUiJmd0OyZsdDtkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IGNv
bG9yOiBncmVlbjsgIiZndDtQQVNTJmx0Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CismbHQ7c2NyaXB0
Jmd0OworZnVuY3Rpb24gcHJpbnQobWVzc2FnZSwgY29sb3IpIAoreworICAgIHZhciBwYXJhZ3Jh
cGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICBwYXJhZ3JhcGguYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSkpOworICAgIHBhcmFncmFwaC5z
dHlsZS5mb250RmFtaWx5ID0gIm1vbm9zcGFjZSI7CisgICAgaWYgKGNvbG9yKQorICAgICAgICBw
YXJhZ3JhcGguc3R5bGUuY29sb3IgPSBjb2xvcjsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHBhcmFncmFwaCk7Cit9CismbHQ7L3NjcmlwdCZndDsK
KyZsdDtwJmd0O1RoaXMgdGVzdCBzaG91bGQgaGF2ZSBhIGdyZWVuICdQQVNTJyBqdXN0IGFib3Zl
IHRoaXMgbGluZS4gIElmIGl0IGRvZXNuJ3QsIHlvdSBmYWlsZWQuCismbHQ7bGluayByZWw9Imlj
b24iIG9uYmVmb3JlbG9hZD0icHJpbnQoJ1BBU1MnLCdncmVlbicpO3JldHVybiBmYWxzZSIgaHJl
Zj0icmVzb3VyY2VzL2Zhdmljb24uaWNvIiB0eXBlPSJpbWFnZS94LWljb24iJmd0OworCisKKyZs
dDsvcCZndDsmbHQ7L2JvZHkmZ3Q7Jmx0Oy9odG1sJmd0Ozwvc3RyaW5nPgorCQk8a2V5PldlYlJl
c291cmNlRnJhbWVOYW1lPC9rZXk+CisJCTxzdHJpbmc+PC9zdHJpbmc+CisJCTxrZXk+V2ViUmVz
b3VyY2VNSU1FVHlwZTwva2V5PgorCQk8c3RyaW5nPnRleHQvaHRtbDwvc3RyaW5nPgorCQk8a2V5
PldlYlJlc291cmNlVGV4dEVuY29kaW5nTmFtZTwva2V5PgorCQk8c3RyaW5nPlVURi04PC9zdHJp
bmc+CisJCTxrZXk+V2ViUmVzb3VyY2VVUkw8L2tleT4KKwkJPHN0cmluZz5maWxlOi8vL0xheW91
dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbDwvc3Ry
aW5nPgorCTwvZGljdD4KKzwvZGljdD4KKzwvcGxpc3Q+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwgYi9MYXlvdXRU
ZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNWMwYmI4NDk2NDU3ZjA4NDE0YmJiNGE1MWNhODE0ZGRhYjkwMmU5YgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWJlZm9y
ZWxvYWQuaHRtbApAQCAtMCwwICsxLDMwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1
bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SWNvbkRhdGFiYXNlRW5hYmxlZCh0
cnVlKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgp
OworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZVJlbG9hZCgpOworICAgIH0KK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0i
Y29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorZnVuY3Rpb24gcHJpbnQobWVzc2FnZSwgY29sb3Ip
IAoreworICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsK
KyAgICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2Fn
ZSkpOworICAgIHBhcmFncmFwaC5zdHlsZS5mb250RmFtaWx5ID0gIm1vbm9zcGFjZSI7CisgICAg
aWYgKGNvbG9yKQorICAgICAgICBwYXJhZ3JhcGguc3R5bGUuY29sb3IgPSBjb2xvcjsKKyAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHBhcmFncmFwaCk7
Cit9Cis8L3NjcmlwdD4KKzxwPlRoaXMgdGVzdCBzaG91bGQgaGF2ZSBhIGdyZWVuICdQQVNTJyBq
dXN0IGFib3ZlIHRoaXMgbGluZS4gIElmIGl0IGRvZXNuJ3QsIHlvdSBmYWlsZWQuCis8bGluayBy
ZWw9Imljb24iIG9uYmVmb3JlbG9hZD0icHJpbnQoJ1BBU1MnLCdncmVlbicpO3JldHVybiBmYWxz
ZSIgaHJlZj0icmVzb3VyY2VzL2Zhdmljb24uaWNvIiB0eXBlPSJpbWFnZS94LWljb24iPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGYzMDcxNTZkNjZhYTllOTRmZWM4YWRiNDIyNDE2
MmIzMGEyNjk3ZWEuLmVhZGM3OGI5ODg0OTAxNjA4ZjhmMGQ0NzdmNWMzZTdhOWYwNjZmMTQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMS0wMy0yOCAgR2F2aW4gUGV0ZXJzICA8Z2F2
aW5wQGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgYmVmb3JlbG9hZCB0byBpY29uIGFuZCBwcmVmZXRjaCBsaW5rIHJlbCB0
eXBlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY0
MjQKKworICAgICAgICBPdmVyIGluIGh0dHBzOi8vbGlzdHMud2Via2l0Lm9yZy9waXBlcm1haWwv
d2Via2l0LWRldi8yMDExLUZlYnJ1YXJ5LzAxNjAzNC5odG1sICwgYSB3ZWJraXQtZGV2CisgICAg
ICAgIHRocmVhZCwgSSd2ZSBkaXNjdXNzZWQgbXkgaG9wZXMgZm9yIHRoZSBsaW5rIGVsZW1lbnQs
IGFuZCBhZGRpbmcgdGhlIGxpbmsgaGVhZGVyLiAgVGhpcworICAgICAgICBjaGFuZ2UgaGVscHMg
aW1wcm92ZSB0aGUgbGluayBoZWFkZXIgYnkgbWFraW5nIGl0IHBhcnRpY2lwYXRlIGluIHRoZSBi
ZWZvcmVsb2FkIGV2ZW50IGluCisgICAgICAgIHR3byBtb3JlIGltcG9ydGFudCBjYXNlcy4KKwor
ICAgICAgICBUZXN0czogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLWJlZm9yZWxv
YWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9taXNjL2xpbmstcmVsLWljb24tYmVm
b3JlbG9hZC5odG1sCisgICAgICAgICAgICAgICB3ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtaWNv
bi1iZWZvcmVsb2FkLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRNTExpbmtFbGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkhUTUxMaW5rRWxlbWVudDo6Y2hlY2tCZWZvcmVMb2FkRXZlbnQp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTExpbmtFbGVtZW50Ojpwcm9jZXNzKToKKyAgICAgICAg
KiBodG1sL0hUTUxMaW5rRWxlbWVudC5oOgorCiAyMDExLTAzLTI5ICBQYXZlbCBQb2Rpdmlsb3Yg
IDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IFl1cnkgU2Vt
aWtoYXRza3kuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKaW5kZXggMDhi
OThiMWY3NTYxNGI4ODliMjc2YTVjNWU0ODIyMGIxNjczYTUxMi4uYmM2MDhhZmZlNzQ0NzQ0Nzky
ZjY4MjAwZDI2ZDllNTNjZDJmNDNiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MTGlua0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVt
ZW50LmNwcApAQCAtMTk1LDYgKzE5NSwxNyBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6dG9rZW5p
emVSZWxBdHRyaWJ1dGUoY29uc3QgQXRvbWljU3RyaW5nJiByZWwsIFJlbEF0dHJpYnV0ZQogICAg
IH0KIH0KIAorYm9vbCBIVE1MTGlua0VsZW1lbnQ6OmNoZWNrQmVmb3JlTG9hZEV2ZW50KCkKK3sK
KyAgICBSZWZQdHI8RG9jdW1lbnQ+IG9yaWdpbmFsRG9jdW1lbnQgPSBkb2N1bWVudCgpOworICAg
IGlmICghZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQobV91cmwpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgLy8gQSBiZWZvcmVsb2FkIGhhbmRsZXIgbWlnaHQgaGF2ZSByZW1vdmVkIHVzIGZy
b20gdGhlIGRvY3VtZW50IG9yIGNoYW5nZWQgdGhlIGRvY3VtZW50LgorICAgIGlmICghaW5Eb2N1
bWVudCgpIHx8IGRvY3VtZW50KCkgIT0gb3JpZ2luYWxEb2N1bWVudCkKKyAgICAgICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cHJv
Y2VzcygpCiB7CiAgICAgaWYgKCFpbkRvY3VtZW50KCkgfHwgbV9pc0luU2hhZG93VHJlZSkgewpA
QCAtMjA2LDggKzIxNywxMSBAQCB2b2lkIEhUTUxMaW5rRWxlbWVudDo6cHJvY2VzcygpCiAKICAg
ICAvLyBJRSBleHRlbnNpb246IGxvY2F0aW9uIG9mIHNtYWxsIGljb24gZm9yIGxvY2F0aW9uYmFy
IC8gYm9va21hcmtzCiAgICAgLy8gV2UnbGwgcmVjb3JkIHRoaXMgVVJMIHBlciBkb2N1bWVudCwg
ZXZlbiBpZiB3ZSBsYXRlciBvbmx5IHVzZSBpdCBpbiB0b3AgbGV2ZWwgZnJhbWVzCi0gICAgaWYg
KG1fcmVsQXR0cmlidXRlLm1faXNJY29uICYmIG1fdXJsLmlzVmFsaWQoKSAmJiAhbV91cmwuaXNF
bXB0eSgpKQorICAgIGlmIChtX3JlbEF0dHJpYnV0ZS5tX2lzSWNvbiAmJiBtX3VybC5pc1ZhbGlk
KCkgJiYgIW1fdXJsLmlzRW1wdHkoKSkgeworICAgICAgICBpZiAoIWNoZWNrQmVmb3JlTG9hZEV2
ZW50KCkpIAorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBkb2N1bWVudCgpLT5zZXRJY29u
VVJMKG1fdXJsLnN0cmluZygpLCB0eXBlKTsKKyAgICB9CiAKICAgICBpZiAobV9yZWxBdHRyaWJ1
dGUubV9pc0ROU1ByZWZldGNoKSB7CiAgICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3Vt
ZW50KCktPnNldHRpbmdzKCk7CkBAIC0yMTksNiArMjMzLDggQEAgdm9pZCBIVE1MTGlua0VsZW1l
bnQ6OnByb2Nlc3MoKQogCiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAgaWYgKG1fcmVs
QXR0cmlidXRlLm1faXNMaW5rUHJlZmV0Y2ggJiYgbV91cmwuaXNWYWxpZCgpICYmIGRvY3VtZW50
KCktPmZyYW1lKCkpIHsKKyAgICAgICAgaWYgKCFjaGVja0JlZm9yZUxvYWRFdmVudCgpKQorICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2NhY2hlZExpbmtQcmVmZXRjaCA9IGRvY3VtZW50
KCktPmNhY2hlZFJlc291cmNlTG9hZGVyKCktPnJlcXVlc3RMaW5rUHJlZmV0Y2gobV91cmwpOwog
ICAgICAgICBpZiAobV9jYWNoZWRMaW5rUHJlZmV0Y2gpCiAgICAgICAgICAgICBtX2NhY2hlZExp
bmtQcmVmZXRjaC0+YWRkQ2xpZW50KHRoaXMpOwpAQCAtMjQwLDExICsyNTYsNyBAQCB2b2lkIEhU
TUxMaW5rRWxlbWVudDo6cHJvY2VzcygpCiAgICAgICAgICAgICBtX2NhY2hlZFNoZWV0ID0gMDsK
ICAgICAgICAgfQogCi0gICAgICAgIFJlZlB0cjxEb2N1bWVudD4gb3JpZ2luYWxEb2N1bWVudCA9
IGRvY3VtZW50KCk7Ci0gICAgICAgIGlmICghZGlzcGF0Y2hCZWZvcmVMb2FkRXZlbnQobV91cmwp
KQotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAvLyBBIGJlZm9yZWxvYWQgaGFuZGxlciBt
aWdodCBoYXZlIHJlbW92ZWQgdXMgZnJvbSB0aGUgZG9jdW1lbnQgb3IgY2hhbmdlZCB0aGUgZG9j
dW1lbnQuCi0gICAgICAgIGlmICghaW5Eb2N1bWVudCgpIHx8IGRvY3VtZW50KCkgIT0gb3JpZ2lu
YWxEb2N1bWVudCkKKyAgICAgICAgaWYgKCFjaGVja0JlZm9yZUxvYWRFdmVudCgpKQogICAgICAg
ICAgICAgcmV0dXJuOwogCiAgICAgICAgIG1fbG9hZGluZyA9IHRydWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MTGlua0VsZW1lbnQuaAppbmRleCAyOThkMWM5NTk4NzE1OWM3OGM2ZGJmZmUwNDEwMjM3
YWU1OTk1NjI5Li4yNzgyZTcxZmY2ZDEyNDIxZTk2Yzk0MzgxOTFlYTc0YWU2MmRkMTVjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKQEAgLTgyLDYgKzgyLDcgQEAgcHJpdmF0
ZToKICNpZiBFTkFCTEUoTElOS19QUkVGRVRDSCkKICAgICB2b2lkIG9ubG9hZFRpbWVyRmlyZWQo
VGltZXI8SFRNTExpbmtFbGVtZW50PiopOwogI2VuZGlmCisgICAgYm9vbCBjaGVja0JlZm9yZUxv
YWRFdmVudCgpOwogICAgIHZvaWQgcHJvY2VzcygpOwogICAgIHN0YXRpYyB2b2lkIHByb2Nlc3ND
YWxsYmFjayhOb2RlKik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87365</attachid>
            <date>2011-03-29 10:58:40 -0700</date>
            <delta_ts>2011-03-29 15:53:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56424-20110329135839.patch</filename>
            <type>text/plain</type>
            <size>16114</size>
            <attacher name="Gavin Peters">gavinp</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODIyNzgKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyYTM0Njk0ZjAyZTY5ZTViZTQzZjg4
NTM1YzhjOTQ3MGY1OWQzYzk0Li5hMWI4ZjIzNjIwMjk0OTg3MGNhMGQwMGI3MTg0YjQwN2E5NzAz
ZjIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTEtMDMtMjggIEdhdmluIFBldGVycyAgPGdh
dmlucEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIGJlZm9yZWxvYWQgdG8gaWNvbiBhbmQgcHJlZmV0Y2ggbGluayByZWwg
dHlwZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2
NDI0CisKKyAgICAgICAgVW5mb3J0dW5hdGVseSwgdGhlcmUncyBsb3RzIG9mIHNraXBwZWQgdGVz
dHMsIGFuZCBhIGNocm9tZSBmYWlsdXJlCisgICAgICAgIGV4cGVjdGF0aW9uIGhlcmUsIGluIGEg
c3RyYW5nZSBkaXNqb2ludCBzZXQuICBPbiB0aGUgY2hyb21pdW0KKyAgICAgICAgcG9ydCwgZmF2
aWNvbiBsb2FkcyBkb24ndCBvY2N1ciBpbiBEUlQsIHNvIHRoZSBmYXZpY29uIGNoYW5nZXMgYXJl
CisgICAgICAgIGV4cGVjdGVkIHRvIGZhaWwuICBPbiB0aGUgcG9ydHMgd2l0aG91dCBwcmVmZXRj
aGluZywgd2UgZXhwZWN0IHRoZQorICAgICAgICBwcmVmZXRjaGluZyB0ZXN0IHRvIGZhaWwuCisK
KyAgICAgICAgKiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtYmVmb3JlbG9hZC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9w
cmVmZXRjaC1iZWZvcmVsb2FkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlz
Yy9saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tpcHBl
ZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3JtL3dp
bi9Ta2lwcGVkOgorICAgICAgICAqIHdlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWJlZm9y
ZWxvYWQtZXhwZWN0ZWQud2ViYXJjaGl2ZTogQWRkZWQuCisgICAgICAgICogd2ViYXJjaGl2ZS90
ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9hZC5odG1sOiBBZGRlZC4KKwogMjAxMS0wMy0yOSAg
UGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgc2tpcCBmYWlsaW5nIHRlc3Qgb24gR1RLLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLWJlZm9yZWxvYWQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLWJlZm9yZWxv
YWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3ZmIwMTg4OWMwODI0YWI1NTE1NjI2ZTY0MDcx
NTU5ZDFmNWJkNmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
TGlua0VsZW1lbnQvcHJlZmV0Y2gtYmVmb3JlbG9hZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwy
IEBACitQQVNTIGJlZm9yZWxvYWQgY2FsbGVkCitUaGlzIHRlc3Qgd2lsbCBvbmx5IHByaW50ICJQ
QVNTIiBvciAiRkFJTCIgaWYgbGluayBwcmVmZXRjaGVzIGFyZSBlbmFibGVkLCBvdGhlcndpc2Ug
aXQgd2lsbCBzaG93IG5vdGhpbmcgYmVsb3cuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2gtYmVmb3JlbG9hZC5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLWJlZm9yZWxvYWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yN2E2MmFmM2UyMzI1N2NkM2YwMzkwNjBkMmY0YzE4NWMzNTk4MDQ2Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNo
LWJlZm9yZWxvYWQuaHRtbApAQCAtMCwwICsxLDE0IEBACis8Ym9keT4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK30KKzwvc2NyaXB0Pgor
PGh0bWw+Cis8cD5UaGlzIHRlc3Qgd2lsbCBvbmx5IHByaW50ICJQQVNTIiBvciAiRkFJTCIgaWYg
bGluayBwcmVmZXRjaGVzIGFyZQorZW5hYmxlZCwgb3RoZXJ3aXNlIGl0IHdpbGwgc2hvdyBub3Ro
aW5nIGJlbG93LjwvcD4KKzxsaW5rIGhyZWY9InByZWZldGNoLmxpbmsiIHJlbD0icHJlZmV0Y2gi
IG9uYmVmb3JlbG9hZD0idGVzdFBhc3NlZCgnYmVmb3JlbG9hZCBjYWxsZWQnKTtyZXR1cm4gZmFs
c2UiIG9ubG9hZD0idGVzdEZhaWxlZCgnb25sb2FkJykiIG9uZXJyb3I9InRlc3RGYWlsZWQoJ29u
ZXJyb3InKSIgLz4KKzwvaHRtbD4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL2xpbmstcmVsLWljb24tYmVmb3JlbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yYzdkNTMzZWY1Y2Q5YTk2YjNjNDc4NzI3ODdlNzNkMGQzZTBhY2Y1Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2xpbmstcmVsLWljb24t
YmVmb3JlbG9hZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACis8dW5rbm93bj4gLSBkaWRG
aW5pc2hMb2FkaW5nCitodHRwOi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9saW5rLXJlbC1pY29uLWJl
Zm9yZWxvYWQuaHRtbCAtIHdpbGxTZW5kUmVxdWVzdCA8TlNVUkxSZXF1ZXN0IFVSTCBodHRwOi8v
MTI3LjAuMC4xOjgwMDAvbWlzYy9saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbCwgbWFpbiBk
b2N1bWVudCBVUkwgaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvbGluay1yZWwtaWNvbi1iZWZv
cmVsb2FkLmh0bWwsIGh0dHAgbWV0aG9kIEdFVD4gcmVkaXJlY3RSZXNwb25zZSAobnVsbCkKK2h0
dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL2xpbmstcmVsLWljb24tYmVmb3JlbG9hZC5odG1sIC0g
ZGlkUmVjZWl2ZVJlc3BvbnNlIDxOU1VSTFJlc3BvbnNlIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9t
aXNjL2xpbmstcmVsLWljb24tYmVmb3JlbG9hZC5odG1sLCBodHRwIHN0YXR1cyBjb2RlIDIwMD4K
K2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9mYXZpY29uLmljbyAtIHdpbGxTZW5kUmVxdWVzdCA8TlNV
UkxSZXF1ZXN0IFVSTCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvZmF2aWNvbi5pY28sIG1haW4gZG9j
dW1lbnQgVVJMIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9taXNjL2xpbmstcmVsLWljb24tYmVmb3Jl
bG9hZC5odG1sLCBodHRwIG1ldGhvZCBHRVQ+IHJlZGlyZWN0UmVzcG9uc2UgKG51bGwpCitodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvbWlzYy9saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbCAtIGRp
ZEZpbmlzaExvYWRpbmcKK2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9mYXZpY29uLmljbyAtIGRpZFJl
Y2VpdmVSZXNwb25zZSA8TlNVUkxSZXNwb25zZSBodHRwOi8vMTI3LjAuMC4xOjgwMDAvZmF2aWNv
bi5pY28sIGh0dHAgc3RhdHVzIGNvZGUgMjAwPgorVGhpcyB0ZXN0IHNob3VsZCBub3Qgc2hvdyBh
IHJlcXVlc3QgZm9yIHRoZSBmYXZpY29uIGRvbnQtbG9hZC10aGlzLmljbywgc2luY2UgdGhlIGJl
Zm9yZWxvYWQgaGFuZGxlciBvbiB0aGUgZmF2aWNvbiBsaW5rIHJldHVybnMgZmFsc2UuIFRoZXJl
Zm9yZSwgaWYgdGhlIHJlc291cmNlIHJlcXVlc3QgbGlzdCBiZWxvdyBzaG93cyBhIHJlcXVlc3Qg
Zm9yIGRvbnQtbG9hZC10aGlzLmljbywgdGhlbiB0aGlzIHRlc3QgaGFzIGZhaWxlZC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9saW5rLXJlbC1pY29uLWJlZm9yZWxv
YWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9saW5rLXJlbC1pY29uLWJlZm9y
ZWxvYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ODViZmVmYzliYTRjMmY2MWEzNjM0Nzk2NDMzZDE5NzNl
M2RjNGYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL2xp
bmstcmVsLWljb24tYmVmb3JlbG9hZC5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBSZXNvdXJjZUxvYWRDYWxs
YmFja3MoKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0SWNvbkRhdGFiYXNlRW5h
YmxlZCh0cnVlKTsKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVSZWxvYWQoKTsK
KyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4K
KzxsaW5rIHJlbD0iaWNvbiIgb25iZWZvcmVsb2FkPSJyZXR1cm4gZmFsc2UiIGhyZWY9ImRvbnQt
bG9hZC10aGlzLmljbyI+Cis8cD5UaGlzIHRlc3Qgc2hvdWxkIG5vdCBzaG93IGEgcmVxdWVzdCBm
b3IgdGhlIGZhdmljb24KK2RvbnQtbG9hZC10aGlzLmljbywgc2luY2UgdGhlIGJlZm9yZWxvYWQg
aGFuZGxlciBvbiB0aGUgZmF2aWNvbiBsaW5rCityZXR1cm5zIGZhbHNlLiAgVGhlcmVmb3JlLCBp
ZiB0aGUgcmVzb3VyY2UgcmVxdWVzdCBsaXN0IGJlbG93IHNob3dzIGEKK3JlcXVlc3QgZm9yIGRv
bnQtbG9hZC10aGlzLmljbywgdGhlbiB0aGlzIHRlc3QgaGFzIGZhaWxlZC4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0
YXRpb25zLnR4dAppbmRleCA1N2U0NmRkZmQ5NDY3YzM5NDA4NGFhNGM3ZWRlNzQzOTlkZWFiZmIz
Li4zYmEwNzA1MjA5OWMzZjg5ZDhlODAxZDZkYzFhMzhlMWZiNWRhMzIwIDEwMDc1NQotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC0z
MzU4LDMgKzMzNTgsNiBAQCBCVUdYWFggR1BVIE1BQyBTTk9XTEVPUEFSRCA6IGNvbXBvc2l0aW5n
L292ZXJmbG93L292ZXJmbG93LWNvbXBvc2l0aW5nLWRlc2NlbmRhbgogQlVHWFhYIEdQVSBNQUMg
U05PV0xFT1BBUkQgOiBjb21wb3NpdGluZy9vdmVyZmxvdy9zY3JvbGwtYW5jZXN0b3ItdXBkYXRl
Lmh0bWwgPSBGQUlMCiBCVUdYWFggR1BVIE1BQyBTTk9XTEVPUEFSRCA6IGNvbXBvc2l0aW5nL3Jl
ZmxlY3Rpb25zL2xvYWQtdmlkZW8taW4tcmVmbGVjdGlvbi5odG1sID0gRkFJTAogQlVHWFhYIEdQ
VSBNQUMgU05PV0xFT1BBUkQgOiBjb21wb3NpdGluZy9zZWxmLXBhaW50aW5nLWxheWVycy5odG1s
ID0gRkFJTAorCisvLyBDaHJvbWUgZG9lc24ndCBsb2FkIGZhdmljb25zIGluIERSVCB0ZXN0cy4K
K0JVR1dLNTcyNTkgOiBodHRwL3Rlc3RzL21pc2MvbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0
bWwgPSBGQUlMIFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggNTAwZWM1Yjg5YTJj
MWI2YzgxNWQzYzgyMDg5NDU5MjA1NDBhZTE3Yi4uN2ZjNmY1OTZlYWFhYjFhOWJkMTFhNjgwM2Qz
ZmVmZTdjMjRjZjgzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTkyMSw2ICs5MjEs
NyBAQCBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvbGluay1hbmQtc3VicmVzb3VyY2UtdGVzdC5o
dG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2guaHRtbAogZmFzdC9kb20vSFRN
TExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3IuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVt
ZW50L3ByZWZldGNoLW9ubG9hZC5odG1sCitmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0
Y2gtYmVmb3JlbG9hZC5odG1sCiAKICMgVGVzdHMgZmFpbGluZyBiZWNhdXNlIHRoZSBjb250ZXh0
IG1lbnUgaXMgZ3JhYmJpbmcgbW91c2UgZXZlbnRzLgogIyBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NDA2MDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKaW5kZXggMjk2
MmMxOWUxYzhjNDE4OGExNjVjYWJjZmRjYmFmNzJiNmQ2YzU1Zi4uYmU2Mzg0MjY4NjBiMGJhZTZj
OTliZWMyZDI0NmM1ZjA1ODE0MjMzZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
bWFjL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQKQEAgLTE4
Miw2ICsxODIsNyBAQCBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXByb3BlcnRpZXMtZGV2aWNlLW9y
aWVudGF0aW9uLmh0bWwKICMgTGluayBwcmVmZXRjaCBpcyBkaXNhYmxlZCBieSBkZWZhdWx0CiBm
YXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvbGluay1hbmQtc3VicmVzb3VyY2UtdGVzdC5odG1sCiBm
YXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0Y2guaHRtbAorZmFzdC9kb20vSFRNTExpbmtF
bGVtZW50L3ByZWZldGNoLWJlZm9yZWxvYWQuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50
L3ByZWZldGNoLW9uZXJyb3IuaHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNo
LW9ubG9hZC5odG1sCiBodHRwL3Rlc3RzL21pc2MvcHJlZmV0Y2gtcHVycG9zZS5odG1sCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvU2tpcHBlZAppbmRleCAxZjFlMDM4ODk5ZWMzNWJhNzYzNTk1N2M3MGY4MGIyMzBm
ODNjNjY0Li5mOTVhZGEyZmM5NWJiZDRkZGQwYjk2ZTU1NDg0OWEyZDQ2ZGY5OTJkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3F0L1NraXBwZWQKQEAgLTI5ODAsNiArMjk4MCw3IEBAIG1lZGlhL3ZpZGVvLWRlbGF5
LWxvYWQtZXZlbnQuaHRtbAogIyBMaW5rIHByZWZldGNoIGlzIGRpc2FibGVkIGJ5IGRlZmF1bHQK
IGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9saW5rLWFuZC1zdWJyZXNvdXJjZS10ZXN0Lmh0bWwK
IGZhc3QvZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC5odG1sCitmYXN0L2RvbS9IVE1MTGlu
a0VsZW1lbnQvcHJlZmV0Y2gtYmVmb3JlbG9hZC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1l
bnQvcHJlZmV0Y2gtb25lcnJvci5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJlZmV0
Y2gtb25sb2FkLmh0bWwKIGh0dHAvdGVzdHMvbWlzYy9wcmVmZXRjaC1wdXJwb3NlLmh0bWwKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggM2M0Zjg4MzEyMGEwYmQxMGI3ZWJlZmI0YjJiNDAw
ZjkwMWEzM2YzNS4uMDhmMGU0ZWVjYmVkMTMwYjZlZDg3MzI0ZWVhZThlODg3Y2Y0MmFmYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTk5MCw2ICs5OTAsNyBAQCBmYXN0L2RvbS9XaW5k
b3cvd2luZG93LXByb3BlcnRpZXMtZGV2aWNlLW9yaWVudGF0aW9uLmh0bWwKICMgTGluayBwcmVm
ZXRjaCBpcyBkaXNhYmxlZCBieSBkZWZhdWx0CiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvbGlu
ay1hbmQtc3VicmVzb3VyY2UtdGVzdC5odG1sCiBmYXN0L2RvbS9IVE1MTGlua0VsZW1lbnQvcHJl
ZmV0Y2guaHRtbAorZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLWJlZm9yZWxvYWQu
aHRtbAogZmFzdC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9uZXJyb3IuaHRtbAogZmFz
dC9kb20vSFRNTExpbmtFbGVtZW50L3ByZWZldGNoLW9ubG9hZC5odG1sCiBodHRwL3Rlc3RzL21p
c2MvcHJlZmV0Y2gtcHVycG9zZS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhcmNo
aXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLWV4cGVjdGVkLndlYmFyY2hpdmUgYi9M
YXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLWV4cGVj
dGVkLndlYmFyY2hpdmUKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzNjODg1ZmRmNmU4NjVmYTA2OWFmNTQyYjg1M2U5
YzE1MTEwMWE4ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVz
dC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQtZXhwZWN0ZWQud2ViYXJjaGl2ZQpAQCAtMCwwICsx
LDQ4IEBACis8P3htbCB2ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgorPCFET0NUWVBF
IHBsaXN0IFBVQkxJQyAiLS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5h
cHBsZS5jb20vRFREcy9Qcm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Cis8cGxpc3QgdmVyc2lvbj0iMS4w
Ij4KKzxkaWN0PgorCTxrZXk+V2ViTWFpblJlc291cmNlPC9rZXk+CisJPGRpY3Q+CisJCTxrZXk+
V2ViUmVzb3VyY2VEYXRhPC9rZXk+CisJCTxzdHJpbmc+Jmx0O2h0bWwmZ3Q7Jmx0O2hlYWQmZ3Q7
CismbHQ7c2NyaXB0Jmd0OworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRJ
Y29uRGF0YWJhc2VFbmFibGVkKHRydWUpOworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wRE9NQXNXZWJBcmNoaXZlKCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVl
UmVsb2FkKCk7CisgICAgfQorfQorJmx0Oy9zY3JpcHQmZ3Q7CismbHQ7L2hlYWQmZ3Q7CismbHQ7
Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSImZ3Q7CismbHQ7ZGl2IGlkPSJjb25zb2xlIiZndDsmbHQ7
ZGl2IHN0eWxlPSJmb250LWZhbWlseTogbW9ub3NwYWNlOyBjb2xvcjogZ3JlZW47ICImZ3Q7UEFT
UyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0OworJmx0O3NjcmlwdCZndDsKK2Z1bmN0aW9uIHByaW50
KG1lc3NhZ2UsIGNvbG9yKSAKK3sKKyAgICB2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgiZGl2Iik7CisgICAgcGFyYWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAgICBwYXJhZ3JhcGguc3R5bGUuZm9udEZhbWlseSA9ICJt
b25vc3BhY2UiOworICAgIGlmIChjb2xvcikKKyAgICAgICAgcGFyYWdyYXBoLnN0eWxlLmNvbG9y
ID0gY29sb3I7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRD
aGlsZChwYXJhZ3JhcGgpOworfQorJmx0Oy9zY3JpcHQmZ3Q7CismbHQ7cCZndDtUaGlzIHRlc3Qg
c2hvdWxkIGhhdmUgYSBncmVlbiAnUEFTUycganVzdCBhYm92ZSB0aGlzIGxpbmUuICBJZiBpdCBk
b2Vzbid0LCB5b3UgZmFpbGVkLgorJmx0O2xpbmsgcmVsPSJpY29uIiBvbmJlZm9yZWxvYWQ9InBy
aW50KCdQQVNTJywnZ3JlZW4nKTtyZXR1cm4gZmFsc2UiIGhyZWY9InJlc291cmNlcy9mYXZpY29u
LmljbyIgdHlwZT0iaW1hZ2UveC1pY29uIiZndDsKKworCismbHQ7L3AmZ3Q7Jmx0Oy9ib2R5Jmd0
OyZsdDsvaHRtbCZndDs8L3N0cmluZz4KKwkJPGtleT5XZWJSZXNvdXJjZUZyYW1lTmFtZTwva2V5
PgorCQk8c3RyaW5nPjwvc3RyaW5nPgorCQk8a2V5PldlYlJlc291cmNlTUlNRVR5cGU8L2tleT4K
KwkJPHN0cmluZz50ZXh0L2h0bWw8L3N0cmluZz4KKwkJPGtleT5XZWJSZXNvdXJjZVRleHRFbmNv
ZGluZ05hbWU8L2tleT4KKwkJPHN0cmluZz5VVEYtODwvc3RyaW5nPgorCQk8a2V5PldlYlJlc291
cmNlVVJMPC9rZXk+CisJCTxzdHJpbmc+ZmlsZTovLy9MYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rl
c3QtbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWw8L3N0cmluZz4KKwk8L2RpY3Q+Cis8L2Rp
Y3Q+Cis8L3BsaXN0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWxp
bmstcmVsLWljb24tYmVmb3JlbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0
LWxpbmstcmVsLWljb24tYmVmb3JlbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjMGJiODQ5NjQ1N2Yw
ODQxNGJiYjRhNTFjYTgxNGRkYWI5MDJlOWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwKQEAgLTAsMCAr
MSwzMCBAQAorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitmdW5jdGlvbiBydW5UZXN0KCkKK3sK
KyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLnNldEljb25EYXRhYmFzZUVuYWJsZWQodHJ1ZSk7CisgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKKyAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIucXVldWVSZWxvYWQoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNj
cmlwdD4KK2Z1bmN0aW9uIHByaW50KG1lc3NhZ2UsIGNvbG9yKSAKK3sKKyAgICB2YXIgcGFyYWdy
YXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgcGFyYWdyYXBoLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAgICBwYXJhZ3JhcGgu
c3R5bGUuZm9udEZhbWlseSA9ICJtb25vc3BhY2UiOworICAgIGlmIChjb2xvcikKKyAgICAgICAg
cGFyYWdyYXBoLnN0eWxlLmNvbG9yID0gY29sb3I7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOworfQorPC9zY3JpcHQ+Cis8cD5U
aGlzIHRlc3Qgc2hvdWxkIGhhdmUgYSBncmVlbiAnUEFTUycganVzdCBhYm92ZSB0aGlzIGxpbmUu
ICBJZiBpdCBkb2Vzbid0LCB5b3UgZmFpbGVkLgorPGxpbmsgcmVsPSJpY29uIiBvbmJlZm9yZWxv
YWQ9InByaW50KCdQQVNTJywnZ3JlZW4nKTtyZXR1cm4gZmFsc2UiIGhyZWY9InJlc291cmNlcy9m
YXZpY29uLmljbyIgdHlwZT0iaW1hZ2UveC1pY29uIj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA4YWE4NTkxYTY1NjBkZTVkYWQyMjlkZTM2MDBjMjdjNGI2OTgwYzg4Li43ZmEwYzQ2
NzI3ZGRhNTcxNDc4YzRhNDJlZDA0NmI0YmMyNDMwZWIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MjQgQEAKKzIwMTEtMDMtMjggIEdhdmluIFBldGVycyAgPGdhdmlucEBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGJlZm9y
ZWxvYWQgdG8gaWNvbiBhbmQgcHJlZmV0Y2ggbGluayByZWwgdHlwZXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU2NDI0CisKKyAgICAgICAgT3ZlciBp
biBodHRwczovL2xpc3RzLndlYmtpdC5vcmcvcGlwZXJtYWlsL3dlYmtpdC1kZXYvMjAxMS1GZWJy
dWFyeS8wMTYwMzQuaHRtbCAsIGEgd2Via2l0LWRldgorICAgICAgICB0aHJlYWQsIEkndmUgZGlz
Y3Vzc2VkIG15IGhvcGVzIGZvciB0aGUgbGluayBlbGVtZW50LCBhbmQgYWRkaW5nIHRoZSBsaW5r
IGhlYWRlci4gIFRoaXMKKyAgICAgICAgY2hhbmdlIGhlbHBzIGltcHJvdmUgdGhlIGxpbmsgaGVh
ZGVyIGJ5IG1ha2luZyBpdCBwYXJ0aWNpcGF0ZSBpbiB0aGUgYmVmb3JlbG9hZCBldmVudCBpbgor
ICAgICAgICB0d28gbW9yZSBpbXBvcnRhbnQgY2FzZXMuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qv
ZG9tL0hUTUxMaW5rRWxlbWVudC9wcmVmZXRjaC1iZWZvcmVsb2FkLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvbWlzYy9saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbAorICAgICAg
ICAgICAgICAgd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9hZC5odG1sCisK
KyAgICAgICAgKiBodG1sL0hUTUxMaW5rRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MTGlua0VsZW1lbnQ6OmNoZWNrQmVmb3JlTG9hZEV2ZW50KToKKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxMaW5rRWxlbWVudDo6cHJvY2Vzcyk6CisgICAgICAgICogaHRtbC9IVE1MTGlua0VsZW1l
bnQuaDoKKwogMjAxMS0wMy0yOSAgRXJpYyBTZWlkZWwgIDxlcmljQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgUnlvc3VrZSBOaXdhLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MTGlua0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuY3BwCmluZGV4IDA4Yjk4YjFmNzU2MTRiODg5YjI3NmE1YzVlNDgyMjBiMTY3M2E1
MTIuLmJjNjA4YWZmZTc0NDc0NDc5MmY2ODIwMGQyNmQ5ZTUzY2QyZjQzYmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5jcHAKQEAgLTE5NSw2ICsxOTUsMTcgQEAgdm9pZCBI
VE1MTGlua0VsZW1lbnQ6OnRva2VuaXplUmVsQXR0cmlidXRlKGNvbnN0IEF0b21pY1N0cmluZyYg
cmVsLCBSZWxBdHRyaWJ1dGUKICAgICB9CiB9CiAKK2Jvb2wgSFRNTExpbmtFbGVtZW50OjpjaGVj
a0JlZm9yZUxvYWRFdmVudCgpCit7CisgICAgUmVmUHRyPERvY3VtZW50PiBvcmlnaW5hbERvY3Vt
ZW50ID0gZG9jdW1lbnQoKTsKKyAgICBpZiAoIWRpc3BhdGNoQmVmb3JlTG9hZEV2ZW50KG1fdXJs
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIC8vIEEgYmVmb3JlbG9hZCBoYW5kbGVyIG1p
Z2h0IGhhdmUgcmVtb3ZlZCB1cyBmcm9tIHRoZSBkb2N1bWVudCBvciBjaGFuZ2VkIHRoZSBkb2N1
bWVudC4KKyAgICBpZiAoIWluRG9jdW1lbnQoKSB8fCBkb2N1bWVudCgpICE9IG9yaWdpbmFsRG9j
dW1lbnQpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9p
ZCBIVE1MTGlua0VsZW1lbnQ6OnByb2Nlc3MoKQogewogICAgIGlmICghaW5Eb2N1bWVudCgpIHx8
IG1faXNJblNoYWRvd1RyZWUpIHsKQEAgLTIwNiw4ICsyMTcsMTEgQEAgdm9pZCBIVE1MTGlua0Vs
ZW1lbnQ6OnByb2Nlc3MoKQogCiAgICAgLy8gSUUgZXh0ZW5zaW9uOiBsb2NhdGlvbiBvZiBzbWFs
bCBpY29uIGZvciBsb2NhdGlvbmJhciAvIGJvb2ttYXJrcwogICAgIC8vIFdlJ2xsIHJlY29yZCB0
aGlzIFVSTCBwZXIgZG9jdW1lbnQsIGV2ZW4gaWYgd2UgbGF0ZXIgb25seSB1c2UgaXQgaW4gdG9w
IGxldmVsIGZyYW1lcwotICAgIGlmIChtX3JlbEF0dHJpYnV0ZS5tX2lzSWNvbiAmJiBtX3VybC5p
c1ZhbGlkKCkgJiYgIW1fdXJsLmlzRW1wdHkoKSkKKyAgICBpZiAobV9yZWxBdHRyaWJ1dGUubV9p
c0ljb24gJiYgbV91cmwuaXNWYWxpZCgpICYmICFtX3VybC5pc0VtcHR5KCkpIHsKKyAgICAgICAg
aWYgKCFjaGVja0JlZm9yZUxvYWRFdmVudCgpKSAKKyAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgZG9jdW1lbnQoKS0+c2V0SWNvblVSTChtX3VybC5zdHJpbmcoKSwgdHlwZSk7CisgICAgfQog
CiAgICAgaWYgKG1fcmVsQXR0cmlidXRlLm1faXNETlNQcmVmZXRjaCkgewogICAgICAgICBTZXR0
aW5ncyogc2V0dGluZ3MgPSBkb2N1bWVudCgpLT5zZXR0aW5ncygpOwpAQCAtMjE5LDYgKzIzMyw4
IEBAIHZvaWQgSFRNTExpbmtFbGVtZW50Ojpwcm9jZXNzKCkKIAogI2lmIEVOQUJMRShMSU5LX1BS
RUZFVENIKQogICAgIGlmIChtX3JlbEF0dHJpYnV0ZS5tX2lzTGlua1ByZWZldGNoICYmIG1fdXJs
LmlzVmFsaWQoKSAmJiBkb2N1bWVudCgpLT5mcmFtZSgpKSB7CisgICAgICAgIGlmICghY2hlY2tC
ZWZvcmVMb2FkRXZlbnQoKSkKKyAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgbV9jYWNoZWRM
aW5rUHJlZmV0Y2ggPSBkb2N1bWVudCgpLT5jYWNoZWRSZXNvdXJjZUxvYWRlcigpLT5yZXF1ZXN0
TGlua1ByZWZldGNoKG1fdXJsKTsKICAgICAgICAgaWYgKG1fY2FjaGVkTGlua1ByZWZldGNoKQog
ICAgICAgICAgICAgbV9jYWNoZWRMaW5rUHJlZmV0Y2gtPmFkZENsaWVudCh0aGlzKTsKQEAgLTI0
MCwxMSArMjU2LDcgQEAgdm9pZCBIVE1MTGlua0VsZW1lbnQ6OnByb2Nlc3MoKQogICAgICAgICAg
ICAgbV9jYWNoZWRTaGVldCA9IDA7CiAgICAgICAgIH0KIAotICAgICAgICBSZWZQdHI8RG9jdW1l
bnQ+IG9yaWdpbmFsRG9jdW1lbnQgPSBkb2N1bWVudCgpOwotICAgICAgICBpZiAoIWRpc3BhdGNo
QmVmb3JlTG9hZEV2ZW50KG1fdXJsKSkKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgLy8g
QSBiZWZvcmVsb2FkIGhhbmRsZXIgbWlnaHQgaGF2ZSByZW1vdmVkIHVzIGZyb20gdGhlIGRvY3Vt
ZW50IG9yIGNoYW5nZWQgdGhlIGRvY3VtZW50LgotICAgICAgICBpZiAoIWluRG9jdW1lbnQoKSB8
fCBkb2N1bWVudCgpICE9IG9yaWdpbmFsRG9jdW1lbnQpCisgICAgICAgIGlmICghY2hlY2tCZWZv
cmVMb2FkRXZlbnQoKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICBtX2xvYWRpbmcg
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlua0VsZW1lbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTExpbmtFbGVtZW50LmgKaW5kZXggMjk4ZDFjOTU5
ODcxNTljNzhjNmRiZmZlMDQxMDIzN2FlNTk5NTYyOS4uMjc4MmU3MWZmNmQxMjQyMWU5NmM5NDM4
MTkxZWE3NGFlNjJkZDE1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTGlu
a0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxMaW5rRWxlbWVudC5oCkBA
IC04Miw2ICs4Miw3IEBAIHByaXZhdGU6CiAjaWYgRU5BQkxFKExJTktfUFJFRkVUQ0gpCiAgICAg
dm9pZCBvbmxvYWRUaW1lckZpcmVkKFRpbWVyPEhUTUxMaW5rRWxlbWVudD4qKTsKICNlbmRpZgor
ICAgIGJvb2wgY2hlY2tCZWZvcmVMb2FkRXZlbnQoKTsKICAgICB2b2lkIHByb2Nlc3MoKTsKICAg
ICBzdGF0aWMgdm9pZCBwcm9jZXNzQ2FsbGJhY2soTm9kZSopOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>