<?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>3248</bug_id>
          
          <creation_ts>2005-06-01 16:19:17 -0700</creation_ts>
          <short_desc>Mouse events on OPTION element seem to be ignored</short_desc>
          <delta_ts>2009-02-18 11:35:00 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>412</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Hyatt">hyatt</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adele</cc>
    
    <cc>ap</cc>
    
    <cc>feng</cc>
    
    <cc>ian</cc>
    
    <cc>mad</cc>
    
    <cc>ovafai</cc>
    
    <cc>will.mccullough</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>10449</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2005-06-01 16:19:17 -0700</bug_when>
    <thetext>* SUMMARY
With Safari 2.0 or 1.2, Mouse events such as ommouseup, omousedown, onclick, and ondblclick seem 
to be ignored with OPTION element

* STEPS TO REPRODUCE
1. Open the attached test case called &quot;option_onmouseup.html&quot; in Safari 2.0 (412)
2. Click on the &lt;option&gt; items called &apos;kiwi&apos;. Verify that no alert dialog is displayed after a mouse event.
3. Open this same test case in Firefox 1.0.3. Notice that a alert dialog is displayed for each event.


* REGRESSION
No, this problem also occurs in Safari 1.2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>10450</commentid>
    <comment_count>1</comment_count>
    <who name="Dave Hyatt">hyatt</who>
    <bug_when>2005-06-01 16:19:34 -0700</bug_when>
    <thetext>Apple Bug: rdar://4099606/
</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>11495</commentid>
    <comment_count>2</comment_count>
      <attachid>2254</attachid>
    <who name="Stuart Morgan">stuartmorgan</who>
    <bug_when>2005-06-11 14:44:22 -0700</bug_when>
    <thetext>Created attachment 2254
test case

The test case mentioned above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>26941</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2005-12-28 00:49:38 -0800</bug_when>
    <thetext>This should be a pretty simple fix.  And we might actually get this for free when hyatt/beth move this form 
control off of AppKit and onto our own engine.

However someone could also probably make this work with the existing form controls with under an hour 
worth of effort.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>36662</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2007-01-06 15:06:05 -0800</bug_when>
    <thetext>*** Bug 4341 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>84570</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2008-06-27 08:51:16 -0700</bug_when>
    <thetext>*** Bug 19782 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89853</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-09-01 03:00:57 -0700</bug_when>
    <thetext>Wow.  This still doesn&apos;t work in Safari 3.1.  Huh.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97443</commentid>
    <comment_count>7</comment_count>
      <attachid>24856</attachid>
    <who name="Sriram">sriram.yadavalli</who>
    <bug_when>2008-11-02 20:43:07 -0800</bug_when>
    <thetext>Created attachment 24856
Patch to fix the firing of mouse down

This patch only fixes the firing of the mouse down event.  Is this the correct place to fix this problem?  The issue in this bug is that the hit test result only returns the HTMLSelectElement as the node under mouse.  Another way to fix it would be to implement nodeAtPoint for both HTMLSelectElement and HTMLOptionElement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>97444</commentid>
    <comment_count>8</comment_count>
      <attachid>24856</attachid>
    <who name="Adele Peterson">adele</who>
    <bug_when>2008-11-02 21:15:53 -0800</bug_when>
    <thetext>Comment on attachment 24856
Patch to fix the firing of mouse down

I don&apos;t think this is the right approach- but I&apos;m not sure the nodeatpoint approach is right either.  The tricky thing is that the option elements don&apos;t have renderers, so real hit testing will never happen.  Maybe you can implement htmlselectelement::nodeatpoint and fake the option hittesting</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108482</commentid>
    <comment_count>9</comment_count>
      <attachid>27357</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2009-02-05 12:48:36 -0800</bug_when>
    <thetext>Created attachment 27357
First attempt

This patch implements mouse events for option elements in list boxes.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108489</commentid>
    <comment_count>10</comment_count>
      <attachid>27357</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-02-05 12:57:53 -0800</bug_when>
    <thetext>Comment on attachment 27357
First attempt

&gt; +        * html/HTMLSelectElement.cpp:
&gt; +        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
&gt; +        * rendering/RenderListBox.cpp:
&gt; +        (WebCore::RenderListBox::nodeAtPoint):
&gt; +        * rendering/RenderListBox.h:

Per-function and per-file comments are preferred.

&gt; @@ -1743,6 +1760,7 @@
&gt;          (WebCore::RenderLayer::setHasCompositingDescendant):
&gt;          Maintain a bit to tell if this layer has composited descendants.
&gt;  
&gt; +
&gt;  2009-02-03  Simon Fraser  &lt;simon.fraser@apple.com&gt;

Why add a blank line here?

&gt; +        // convert to coords relative to the list box if needed

Sentence-form comments with capital letters and periods are preferred.

&gt;          MouseEvent* mEvt = static_cast&lt;MouseEvent*&gt;(evt);

The name mouseEvent seems much better than &quot;mEvt&quot;; maybe you should change it while modifying this code.

&gt; +        Node* targ = evt-&gt;target()-&gt;toNode();

How about &quot;target&quot; rather than &quot;targ&quot;?

&gt; +        if (targ != this) {
&gt; +            FloatPoint absPos = renderer()-&gt;absoluteToLocal(FloatPoint(offsetX, offsetY), false, true);
&gt; +            offsetX = absPos.x();
&gt; +            offsetY = absPos.y();
&gt; +        }

Do we really need to optimize the &quot;targ == this&quot; case? Is there a downside to always calling absoluteToLocal?

&gt; +bool RenderListBox::nodeAtPoint(const HitTestRequest&amp; request, HitTestResult&amp; result, int _x, int _y, int _tx, int _ty, HitTestAction hitTestAction)

Why the underscores in the argument names here? Just &quot;x&quot; and &quot;y&quot; would be better than &quot;_x&quot; and &quot;_y&quot;. And it&apos;s bizarre to have both &quot;_tx&quot; and &quot;tx&quot; as names in the same function.

&gt; +    bool ret = RenderBlock::nodeAtPoint( request, result, _x, _y, _tx, _ty, hitTestAction );
&gt; +    if ( !ret )
&gt; +        return false;

Extra spaces here. The name &quot;ret&quot; is too short. Maybe just put the nodeAtPoint call inside the if instead of including a local variable.

&gt; +    int size = numItems();

The right type for the size of a vector is size_t. Why are we calling numItems() rather than calling size() on the vector? I worry that we might walk off the end of the vector.

&gt; +    for (int listIndex = 0;listIndex &lt; size;++listIndex) {

The rights size of a vector index is size_t. Need spaces after semicolons here. The name listIndex seems kind of long. How about just &quot;i&quot;? It&apos;s strange that for the index you chose a long name, but for the rectangle you chose &quot;r&quot;.

&gt; +            HTMLElement *node = listItems[listIndex];

The * needs to go next to the type name, not the variable name.

Enough things need fixing that I&apos;ll say review-.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108696</commentid>
    <comment_count>11</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2009-02-06 13:24:08 -0800</bug_when>
    <thetext>Hi Darin,

Thanks for the speedy review!

(In reply to comment #10)
&gt; (From update of attachment 27357 [review])
&gt; &gt; +        * html/HTMLSelectElement.cpp:
&gt; &gt; +        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
&gt; &gt; +        * rendering/RenderListBox.cpp:
&gt; &gt; +        (WebCore::RenderListBox::nodeAtPoint):
&gt; &gt; +        * rendering/RenderListBox.h:
&gt;
&gt;
&gt; Per-function and per-file comments are preferred.

Done.

&gt; &gt; @@ -1743,6 +1760,7 @@
&gt; &gt;          (WebCore::RenderLayer::setHasCompositingDescendant):
&gt; &gt;          Maintain a bit to tell if this layer has composited descendants.
&gt; &gt;  
&gt; &gt; +
&gt; &gt;  2009-02-03  Simon Fraser  &lt;simon.fraser@apple.com&gt;
&gt; 
&gt; Why add a blank line here?

Git merge leftover, fixed.
 
&gt; &gt; +        // convert to coords relative to the list box if needed
&gt; 
&gt; Sentence-form comments with capital letters and periods are preferred.

Fixed.
 
&gt; &gt;          MouseEvent* mEvt = static_cast&lt;MouseEvent*&gt;(evt);
&gt; 
&gt; The name mouseEvent seems much better than &quot;mEvt&quot;; maybe you should change it
&gt; while modifying this code.

Agreed, fixed.
 
&gt; &gt; +        Node* targ = evt-&gt;target()-&gt;toNode();
&gt; 
&gt; How about &quot;target&quot; rather than &quot;targ&quot;?

Agreed, fixed.

&gt; &gt; +        if (targ != this) {
&gt; &gt; +            FloatPoint absPos = renderer()-&gt;absoluteToLocal(FloatPoint(offsetX, offsetY), false, true);
&gt; &gt; +            offsetX = absPos.x();
&gt; &gt; +            offsetY = absPos.y();
&gt; &gt; +        }
&gt; 
&gt; Do we really need to optimize the &quot;targ == this&quot; case? Is there a downside to
&gt; always calling absoluteToLocal?

This may be the most tricky part of the patch. It took me a lot of time to find out that MouseRelatedEvent::receivedTarget does this translation when there is a renderer. Ofcourse there
is no renderer when the target is HTMLOptionElement, so the conversion is not done, therefore the
focus updating in default handler of HTMLSelectElement is not performed. I am afraid that targ != this test is not restrictive enough. Also doing the conversion twice for HTMLSelectElement is wrong, so there must be an if check AFAICS. One option is converting first to Element, then using hasLocalName(optiionElement) as the test. This sounds like a few more tests, but may be the best possible check?

&gt; &gt; +bool RenderListBox::nodeAtPoint(const HitTestRequest&amp; request, HitTestResult&amp; result, int _x, int _y, int _tx, int _ty, HitTestAction hitTestAction)
&gt; 
&gt; Why the underscores in the argument names here? Just &quot;x&quot; and &quot;y&quot; would be
&gt; better than &quot;_x&quot; and &quot;_y&quot;. And it&apos;s bizarre to have both &quot;_tx&quot; and &quot;tx&quot; as
&gt; names in the same function.

x is not used because it clashes with x(). Ofcourse this-&gt;x() can be used, not sure
whether that is optimized away(I guess so) and/or it looks better. I removed _tx, _ty for now.

&gt; &gt; +    bool ret = RenderBlock::nodeAtPoint( request, result, _x, _y, _tx, _ty, hitTestAction );
&gt; &gt; +    if ( !ret )
&gt; &gt; +        return false;
&gt; 
&gt; Extra spaces here. The name &quot;ret&quot; is too short. Maybe just put the nodeAtPoint
&gt; call inside the if instead of including a local variable.

Agreed, fixed.
 
&gt; &gt; +    int size = numItems();
&gt; 
&gt; The right type for the size of a vector is size_t. Why are we calling
&gt; numItems() rather than calling size() on the vector? I worry that we might walk
&gt; off the end of the vector.

I just did that since it is done like that in this file. numItems calls size(). I can use size_t and
explicitly call size() if needed....

&gt; &gt; +    for (int listIndex = 0;listIndex &lt; size;++listIndex) {
&gt; 
&gt; The rights size of a vector index is size_t. Need spaces after semicolons here.
&gt; The name listIndex seems kind of long. How about just &quot;i&quot;? It&apos;s strange that
&gt; for the index you chose a long name, but for the rectangle you chose &quot;r&quot;.

Copy and pasted code, now I use i, fixed.

&gt; &gt; +            HTMLElement *node = listItems[listIndex];
&gt; 
&gt; The * needs to go next to the type name, not the variable name.

Fixed (left after copy and paste I think).

I&apos;ll post the patch now which fixes these problems in the code department. I plan to extend the test so it also adds listeners to the &lt;select&gt; elements and try to do some boundary hit tests, for instance testing what happens when a part is clicked of the listbox that has no item. Anyway is free to review the code changes or wait until the test is updated(which might need code changes), I don&apos;t plan to make that take too long before the test is final.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108700</commentid>
    <comment_count>12</comment_count>
      <attachid>27416</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2009-02-06 13:27:16 -0800</bug_when>
    <thetext>Created attachment 27416
Code fixes

Fixes for the code review comments. Test is unchanged and will be improved in a follow-up patch, which I plan to post somewhen this weekend, but apart from that the patch should be reviewable, just maybe not in a landeable state because of the improvements the test needs to get first.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108816</commentid>
    <comment_count>13</comment_count>
      <attachid>27444</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2009-02-07 05:21:17 -0800</bug_when>
    <thetext>Created attachment 27444
Improved testcase

The testcase now also tests that the parent select event listeners are processed and verifies the event target. The last test tests that clicking in the list box below the final item does not deliver the event to the option element and that the event target is set to the select.
I now consider the patch and test in a final state.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108839</commentid>
    <comment_count>14</comment_count>
      <attachid>27444</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-02-07 11:13:02 -0800</bug_when>
    <thetext>Comment on attachment 27444
Improved testcase

I still think that size_t and calling size() on listItems directly would be slightly better in RenderListBox::nodeAtPoint. I also would not bother with a local variable for the result of itemBoundingBoxRect and I would have put the declaration of &quot;node&quot; inside the if statement, and called it element rather than node. But these are tiny nits. Good new test!

I also think it&apos;s unfortunate that we use offsetX/Y at all, since they have a crazy definition. I bet we could make the code easier to understand if we used pageX/Y instead some day. For now, fix is great, r=me!

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>108859</commentid>
    <comment_count>15</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2009-02-07 18:53:52 -0800</bug_when>
    <thetext>Committed in http://trac.webkit.org/changeset/40763</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109757</commentid>
    <comment_count>16</comment_count>
      <attachid>27675</attachid>
    <who name="Marc-André Decoste">mad</who>
    <bug_when>2009-02-13 16:45:53 -0800</bug_when>
    <thetext>Created attachment 27675
A proposal to modify the LayoutTest that has been created to validate the fix of this bug.

I&apos;m not sure if this is the appropriate procedure to reopen the bug or if I should open a new one instead... Please warn me if it is the latter...

Thanks!

BYE
MAD</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109758</commentid>
    <comment_count>17</comment_count>
    <who name="Marc-André Decoste">mad</who>
    <bug_when>2009-02-13 16:49:30 -0800</bug_when>
    <thetext>Is it OK to just add a new patch attachment to propose changes for the layout test validating this fix, or should I create a new bug?

The reason I propose this change is that the layout test fails on Chrome (and also WebKit on Windows) because the list boxes don&apos;t render with the exact same size as on the Mac. So I added absolute positions for the select elements and adapted the test coordinates accordingly... Hope it&apos;s OK...

</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>109771</commentid>
    <comment_count>18</comment_count>
      <attachid>27675</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-02-14 00:38:17 -0800</bug_when>
    <thetext>Comment on attachment 27675
A proposal to modify the LayoutTest that has been created to validate the fix of this bug.

Please file a new bug. I considered just giving a review and checking this in, but got confused by your statement about this test failing on Windows. That doesn&apos;t seem to be confirmed by build.webkit.org, so I now wonder if it&apos;s even OK for ports to change the size of list boxes - someone more familiar with rendering will need to weigh in.

+2009-02-13  mad  &lt;mad@chromium.org&gt;

This is not a strict formal requirement, but most contributors use full names in ChangeLogs. Also, please add a bug URL to ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>110103</commentid>
    <comment_count>19</comment_count>
    <who name="Marc-André Decoste">mad</who>
    <bug_when>2009-02-18 11:35:00 -0800</bug_when>
    <thetext>OK, created https://bugs.webkit.org/show_bug.cgi?id=24006 to fix the Layout Test.

Thanks!

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>2254</attachid>
            <date>2005-06-11 14:44:22 -0700</date>
            <delta_ts>2005-06-11 14:44:22 -0700</delta_ts>
            <desc>test case</desc>
            <filename>option_onmouseup.html</filename>
            <type>text/html</type>
            <size>1222</size>
            <attacher name="Stuart Morgan">stuartmorgan</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv
L0VOIj4KCgoKPGh0bWw+CgoKCjxoZWFkPgoKCgo8VElUTEU+SFRNTCBGdW5jdGlvbmFsIC0tIE9Q
VElPTiAtIE9OTU9VU0VVUC9PTk1PVVNFRE9XTi9PTkNMSUNLL09OREJMQ0xJQ0s8L1RJVExFPgoK
Cgo8L2hlYWQ+CgoKCjxib2R5PgoKPHA+TW91c2luZyB1cCBvbiB0aGUgbWVudSBpdGVtIGNhbGxl
ZCAiS2l3aSIgd2lsbCBhY3RpdmF0ZSB0aGUgb25tb3VzZXVwIGV2ZW50LjwvcD4KCjxmb3JtIGFj
dGlvbj0iIiBtZXRob2Q9InBvc3QiPgoKPHNlbGVjdCBzaXplPSIyIj4KPG9wdGlvbj5CYW5hbmEK
PG9wdGlvbiBvbm1vdXNldXA9ImFsZXJ0KCdZb3UgaGF2ZSBtb3VzZWQgdXAgb24gdGhlIEtpd2kg
b3B0aW9uIGl0ZW0gIScpIj5LaXdpCjwvc2VsZWN0PgoKPC9mb3JtPgoKPGhyPgoKPHA+TW91c2Ug
ZG93biBvbiB0aGUgbWVudSBpdGVtIGNhbGxlZCAiS2l3aSIgdG8gYWN0aXZhdGUgdGhlIG9ubW91
c2Vkb3duIGV2ZW50LjwvcD4KPGZvcm0gYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+CjxzZWxlY3Qg
c2l6ZT0iMiI+CjxvcHRpb24+QmFuYW5hCjxvcHRpb24gb25tb3VzZWRvd249ImFsZXJ0KCdZb3Ug
aGF2ZSBtb3VzZWQgZG93biBvbiB0aGUgS2l3aSBvcHRpb24gaXRlbSAhJykiPktpd2kKPC9zZWxl
Y3Q+CjwvZm9ybT4KCjxocj4KCjxwPkNsaWNraW5nIG9uIHRoZSBtZW51IGl0ZW0gY2FsbGVkICJL
aXdpIiB0byBhY3RpdmF0ZSB0aGUgb25jbGljayBldmVudC48L3A+Cgo8Zm9ybSBhY3Rpb249IiIg
bWV0aG9kPSJwb3N0Ij4KPHNlbGVjdCBzaXplPSIyIj4KPG9wdGlvbj5CYW5hbmEKPG9wdGlvbiBv
bmNsaWNrPSJhbGVydCgnWW91IGhhdmUgY2xpY2tlZCBvbiB0aGUgS2l3aSBvcHRpb24gaXRlbSAh
JykiPktpd2kKPC9zZWxlY3Q+CjwvZm9ybT4KPC9ib2R5PgoKPGhyPgoKPHA+RG91YmxlIGNsaWNr
IG9uIG1lbnUgaXRlbSBjYWxsZWQgIktpd2kiIHRvIGFjdGl2YXRlIHRoZSBvbmRibGNsaWNrIGV2
ZW50LjwvcD4KCgoKPGZvcm0gYWN0aW9uPSIiIG1ldGhvZD0icG9zdCI+CjxzZWxlY3Qgc2l6ZT0i
MiI+CjxvcHRpb24+QmFuYW5hCjxvcHRpb24gb25kYmxjbGljaz0iYWxlcnQoJ1lvdSBoYXZlIGRv
dWJsZS1jbGlja2VkIG9uIHRoZSBLaXdpIG9wdGlvbiBpdGVtICEnKSI+S2l3aQo8L3NlbGVjdD4K
PC9mb3JtPgoKCgoKCgo8L2h0bWw+CgoKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>24856</attachid>
            <date>2008-11-02 20:43:07 -0800</date>
            <delta_ts>2009-02-05 12:48:36 -0800</delta_ts>
            <desc>Patch to fix the firing of mouse down</desc>
            <filename>OptionPatch.patch</filename>
            <type>text/plain</type>
            <size>760</size>
            <attacher name="Sriram">sriram.yadavalli</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
V2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAkocmV2aXNpb24gMzgwNTgpCisrKyBX
ZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03NDks
NiArNzQ5LDEwIEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXYKICAg
ICAgICAgICAgICAgICAgICAgb3B0aW9uLT5zZXRTZWxlY3RlZFN0YXRlKGZhbHNlKTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIAorICAgICAgICAgICAgaWYob3B0aW9uKXsKKyAgICAgICAg
ICAgICAgIG9wdGlvbi0+ZGlzcGF0Y2hFdmVudEZvclR5cGUobW91c2Vkb3duRXZlbnQsIHRydWUs
IGZhbHNlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIAogICAgICAgICAgICAgLy8gSWYg
d2UncmUgbm90IGluIGFueSBzcGVjaWFsIG11bHRpcGxlIHNlbGVjdGlvbiBtb2RlLCB0aGVuIGRl
c2VsZWN0IGFsbCBvdGhlciBpdGVtcywgZXhjbHVkaW5nIHRoZSBjbGlja2VkIG9wdGlvbi4KICAg
ICAgICAgICAgIC8vIElmIG5vIG9wdGlvbiB3YXMgY2xpY2tlZCwgdGhlbiB0aGlzIHdpbGwgZGVz
ZWxlY3QgYWxsIGl0ZW1zIGluIHRoZSBsaXN0LgogICAgICAgICAgICAgaWYgKCFzaGlmdFNlbGVj
dCAmJiAhbXVsdGlTZWxlY3QpCg==
</data>
<flag name="review"
          id="11384"
          type_id="1"
          status="-"
          setter="adele"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27357</attachid>
            <date>2009-02-05 12:48:36 -0800</date>
            <delta_ts>2009-02-06 13:27:16 -0800</delta_ts>
            <desc>First attempt</desc>
            <filename>3248-2.diff</filename>
            <type>text/plain</type>
            <size>9785</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MjBjZTQ4Li5lNTJiM2M5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDIt
MDUgIFJvYiBCdWlzICA8cndsYnVpc0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCBmb3I6CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjQ4CisgICAgICAgIEJ1ZyAzMjQ4OiBNb3Vz
ZSBldmVudHMgb24gT1BUSU9OIGVsZW1lbnQgc2VlbSB0byBiZSBpZ25vcmVkCisKKyAgICAgICAg
KiBmYXN0L2Zvcm1zL29wdGlvbi1tb3VzZWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZm9ybXMvb3B0aW9uLW1vdXNlZXZlbnRzLmh0bWw6IEFkZGVkLgorCiAyMDA5
LTAyLTA1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gTGF5ZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL29wdGlv
bi1tb3VzZWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL29wdGlv
bi1tb3VzZWV2ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNjkzOWIxNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
b3B0aW9uLW1vdXNlZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM4IEBACitUaGlzIHBh
Z2UgdGVzdHMgd2hldGhlciBhIGNsaWNrIGV2ZW50IHByb3BvZ2F0ZXMgd2l0aCB0aGUgY29ycmVj
dCB0YXJnZXQgYW5kIHBvc2l0aW9uaW5nLgorCisKKworCisKK1BBU1M6IGV2ZW50IHR5cGUgc2hv
dWxkIGJlIG1vdXNlZG93biBhbmQgaXMKK1BBU1M6IGV2ZW50IHRhcmdldCBzaG91bGQgYmUgW29i
amVjdCBIVE1MT3B0aW9uRWxlbWVudF0gYW5kIGlzCitQQVNTOiBldmVudC5wYWdlWCBzaG91bGQg
YmUgMjIgYW5kIGlzCitQQVNTOiBldmVudC5wYWdlWSBzaG91bGQgYmUgNjQgYW5kIGlzCitQQVNT
OiBldmVudC5vZmZzZXRYIHNob3VsZCBiZSAyMiBhbmQgaXMKK1BBU1M6IGV2ZW50Lm9mZnNldFkg
c2hvdWxkIGJlIDY0IGFuZCBpcworUEFTUzogZXZlbnQueCBzaG91bGQgYmUgMjIgYW5kIGlzCitQ
QVNTOiBldmVudC55IHNob3VsZCBiZSA2NCBhbmQgaXMKK1BBU1M6IGV2ZW50IHR5cGUgc2hvdWxk
IGJlIG1vdXNldXAgYW5kIGlzCitQQVNTOiBldmVudCB0YXJnZXQgc2hvdWxkIGJlIFtvYmplY3Qg
SFRNTE9wdGlvbkVsZW1lbnRdIGFuZCBpcworUEFTUzogZXZlbnQucGFnZVggc2hvdWxkIGJlIDIy
IGFuZCBpcworUEFTUzogZXZlbnQucGFnZVkgc2hvdWxkIGJlIDEzNCBhbmQgaXMKK1BBU1M6IGV2
ZW50Lm9mZnNldFggc2hvdWxkIGJlIDIyIGFuZCBpcworUEFTUzogZXZlbnQub2Zmc2V0WSBzaG91
bGQgYmUgMTM0IGFuZCBpcworUEFTUzogZXZlbnQueCBzaG91bGQgYmUgMjIgYW5kIGlzCitQQVNT
OiBldmVudC55IHNob3VsZCBiZSAxMzQgYW5kIGlzCitQQVNTOiBldmVudCB0eXBlIHNob3VsZCBi
ZSBjbGljayBhbmQgaXMKK1BBU1M6IGV2ZW50IHRhcmdldCBzaG91bGQgYmUgW29iamVjdCBIVE1M
T3B0aW9uRWxlbWVudF0gYW5kIGlzCitQQVNTOiBldmVudC5wYWdlWCBzaG91bGQgYmUgMjIgYW5k
IGlzCitQQVNTOiBldmVudC5wYWdlWSBzaG91bGQgYmUgMjIyIGFuZCBpcworUEFTUzogZXZlbnQu
b2Zmc2V0WCBzaG91bGQgYmUgMjIgYW5kIGlzCitQQVNTOiBldmVudC5vZmZzZXRZIHNob3VsZCBi
ZSAyMjIgYW5kIGlzCitQQVNTOiBldmVudC54IHNob3VsZCBiZSAyMiBhbmQgaXMKK1BBU1M6IGV2
ZW50Lnkgc2hvdWxkIGJlIDIyMiBhbmQgaXMKK1BBU1M6IGV2ZW50IHR5cGUgc2hvdWxkIGJlIGRi
bGNsaWNrIGFuZCBpcworUEFTUzogZXZlbnQgdGFyZ2V0IHNob3VsZCBiZSBbb2JqZWN0IEhUTUxP
cHRpb25FbGVtZW50XSBhbmQgaXMKK1BBU1M6IGV2ZW50LnBhZ2VYIHNob3VsZCBiZSAyMiBhbmQg
aXMKK1BBU1M6IGV2ZW50LnBhZ2VZIHNob3VsZCBiZSAyOTQgYW5kIGlzCitQQVNTOiBldmVudC5v
ZmZzZXRYIHNob3VsZCBiZSAyMiBhbmQgaXMKK1BBU1M6IGV2ZW50Lm9mZnNldFkgc2hvdWxkIGJl
IDI5NCBhbmQgaXMKK1BBU1M6IGV2ZW50Lnggc2hvdWxkIGJlIDIyIGFuZCBpcworUEFTUzogZXZl
bnQueSBzaG91bGQgYmUgMjk0IGFuZCBpcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9vcHRpb24tbW91c2VldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvb3B0
aW9uLW1vdXNlZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MTI1MGE0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvb3B0aW9u
LW1vdXNlZXZlbnRzLmh0bWwKQEAgLTAsMCArMSwxMDAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0PgorZnVuY3Rpb24gcHJpbnQobWVzc2FnZSwgY29sb3IpIHsKKyAgICB2YXIgcGFyYWdyYXBo
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgcGFyYWdyYXBoLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAgICBwYXJhZ3JhcGguc3R5
bGUuZm9udEZhbWlseSA9ICJtb25vc3BhY2UiOworICAgIGlmIChjb2xvcikKKyAgICAgICAgcGFy
YWdyYXBoLnN0eWxlLmNvbG9yID0gY29sb3I7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOworfQorZnVuY3Rpb24gc2hvdWxkQmUo
ZGVzY3JpcHRpb24sIGFjdHVhbCwgZXhwZWN0ZWQpCit7CisgICAgaWYgKGV4cGVjdGVkID09PSBh
Y3R1YWwpIHsKKyAgICAgICAgcHJpbnQoIlBBU1M6ICIgKyBkZXNjcmlwdGlvbiArICIgc2hvdWxk
IGJlICIgKyBleHBlY3RlZCArIAorICAgICAgICAgICAgICAiIGFuZCBpc1xuIiwgCisgICAgICAg
ICAgICAgICJncmVlbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHByaW50KCJGQUlMOiAiICsg
ZGVzY3JpcHRpb24gKyAiIHNob3VsZCBiZSAiICsgZXhwZWN0ZWQgKyAKKyAgICAgICAgICAgICAg
IiBidXQgaW5zdGVhZCBpcyAiICsgYWN0dWFsICsgIlxuIiwgCisgICAgICAgICAgICAgICJyZWQi
KTsKKyAgICB9Cit9CitmdW5jdGlvbiBtb3VzZWV2ZW50dmVyaWZ5KGV2ZW50LCB4LCB5LCB0YXJn
ZXQsIHR5cGUpCit7CisgICAgc2hvdWxkQmUoImV2ZW50IHR5cGUiLCB0eXBlLCBldmVudC50eXBl
KTsKKyAgICBzaG91bGRCZSgiZXZlbnQgdGFyZ2V0IiwgdGFyZ2V0LCBldmVudC50YXJnZXQpOwor
ICAgIHNob3VsZEJlKCJldmVudC5wYWdlWCIsIGV2ZW50LnBhZ2VYLCB4KTsKKyAgICBzaG91bGRC
ZSgiZXZlbnQucGFnZVkiLCBldmVudC5wYWdlWSwgeSk7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9m
ZnNldFgiLCBldmVudC5vZmZzZXRYLCB4KTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2Zmc2V0WSIs
IGV2ZW50Lm9mZnNldFksIHkpOworICAgIHNob3VsZEJlKCJldmVudC54IiwgZXZlbnQueCwgeCk7
CisgICAgc2hvdWxkQmUoImV2ZW50LnkiLCBldmVudC55LCB5KTsKK30KK2Z1bmN0aW9uIHRlc3Qo
KSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVy
KSB7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIyLCA2NCk7CisgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cisg
ICAgfQorCisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbygyMiwgMTM0KTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7
CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICB9CisKKyAgICBpZiAod2luZG93
LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIyLCAyMjIp
OworICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgpOworICAgIH0KKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMjIsIDI5NCk7CisgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlRG93bigpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cisg
ICAgfQorCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InRlc3QoKTsiPgorPHA+VGhpcyBwYWdlIHRlc3RzIHdoZXRoZXIgYSBjbGlj
ayBldmVudCBwcm9wb2dhdGVzIHdpdGggdGhlIGNvcnJlY3QgdGFyZ2V0IGFuZCBwb3NpdGlvbmlu
Zy48L3A+Cis8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4KKzxzZWxlY3Qgc2l6ZT0iMiI+
Cis8b3B0aW9uPk9uZQorPG9wdGlvbiBvbm1vdXNlZG93bj0ibW91c2VldmVudHZlcmlmeShldmVu
dCwgMjIsIDY0LCB0aGlzLCAnbW91c2Vkb3duJykiPlR3bworPC9zZWxlY3Q+Cis8L2Zvcm0+Cis8
Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4KKzxzZWxlY3Qgc2l6ZT0iMiI+Cis8b3B0aW9u
Pk9uZQorPG9wdGlvbiBvbm1vdXNldXA9Im1vdXNlZXZlbnR2ZXJpZnkoZXZlbnQsIDIyLCAxMzQs
IHRoaXMsICdtb3VzZXVwJykiPlR3bworPC9zZWxlY3Q+Cis8L2Zvcm0+Cis8Zm9ybSBhY3Rpb249
IiIgbWV0aG9kPSJwb3N0Ij4KKzxzZWxlY3Qgc2l6ZT0iMiI+Cis8b3B0aW9uPk9uZQorPG9wdGlv
biBvbmNsaWNrPSJtb3VzZWV2ZW50dmVyaWZ5KGV2ZW50LCAyMiwgMjIyLCB0aGlzLCAnY2xpY2sn
KSI+VHdvCis8L3NlbGVjdD4KKzwvZm9ybT4KKzxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3Qi
PgorPHNlbGVjdCBzaXplPSIyIj4KKzxvcHRpb24+T25lCis8b3B0aW9uIG9uZGJsY2xpY2s9Im1v
dXNlZXZlbnR2ZXJpZnkoZXZlbnQsIDIyLCAyOTQsIHRoaXMsICdkYmxjbGljaycpIj5Ud28KKzwv
c2VsZWN0PgorPC9mb3JtPgorPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDogMzUw
OyIgaWQ9J2NvbnNvbGUnPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiNmU3NGExLi41NzExYjgz
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDA5LTAyLTA1ICBSb2IgQnVpcyAgPHJ3bGJ1aXNAZ21haWwuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjQ4CisgICAgICAgIEJ1ZyAzMjQ4
OiBNb3VzZSBldmVudHMgb24gT1BUSU9OIGVsZW1lbnQgc2VlbSB0byBiZSBpZ25vcmVkCisgICAg
ICAgIAorICAgICAgICBTdXBwb3J0IG1vdXNlIGV2ZW50cyBvbiBvcHRpb25zIGluIGEgc2VsZWN0
IHdoZW4gaXQgZm9ybXMgYSBsaXN0IGJveC4KKworICAgICAgICBUZXN0OiBmYXN0L2Zvcm1zL29w
dGlvbi1tb3VzZWV2ZW50cy5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVmYXVs
dEV2ZW50SGFuZGxlcik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6bm9kZUF0UG9pbnQpOgorICAgICAgICAq
IHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94Lmg6CisKIDIwMDktMDItMDQgIFNhbSBXZWluaWcgIDxz
YW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KQEAgLTE3
NDMsNiArMTc2MCw3IEBACiAgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXllcjo6c2V0SGFzQ29t
cG9zaXRpbmdEZXNjZW5kYW50KToKICAgICAgICAgTWFpbnRhaW4gYSBiaXQgdG8gdGVsbCBpZiB0
aGlzIGxheWVyIGhhcyBjb21wb3NpdGVkIGRlc2NlbmRhbnRzLgogCisKIDIwMDktMDItMDMgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGF2ZSBIeWF0dApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50
LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVudC5jcHAKaW5kZXggYjhlMjYwOC4u
OTM3YjZiOSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcAor
KysgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCkBAIC03MTEsOSArNzExLDE4
IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXZlbnRIYW5kbGVyKEV2
ZW50KiBldnQpCiB7CiAgICAgaWYgKGV2dC0+dHlwZSgpID09IGV2ZW50TmFtZXMoKS5tb3VzZWRv
d25FdmVudCAmJiBldnQtPmlzTW91c2VFdmVudCgpICYmIHN0YXRpY19jYXN0PE1vdXNlRXZlbnQq
PihldnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CiAgICAgICAgIGZvY3VzKCk7Ci0gICAg
ICAgIAorCisgICAgICAgIC8vIGNvbnZlcnQgdG8gY29vcmRzIHJlbGF0aXZlIHRvIHRoZSBsaXN0
IGJveCBpZiBuZWVkZWQKICAgICAgICAgTW91c2VFdmVudCogbUV2dCA9IHN0YXRpY19jYXN0PE1v
dXNlRXZlbnQqPihldnQpOwotICAgICAgICBpbnQgbGlzdEluZGV4ID0gc3RhdGljX2Nhc3Q8UmVu
ZGVyTGlzdEJveCo+KHJlbmRlcmVyKCkpLT5saXN0SW5kZXhBdE9mZnNldChtRXZ0LT5vZmZzZXRY
KCksIG1FdnQtPm9mZnNldFkoKSk7CisgICAgICAgIGludCBvZmZzZXRYID0gbUV2dC0+b2Zmc2V0
WCgpOyAKKyAgICAgICAgaW50IG9mZnNldFkgPSBtRXZ0LT5vZmZzZXRZKCk7IAorICAgICAgICBO
b2RlKiB0YXJnID0gZXZ0LT50YXJnZXQoKS0+dG9Ob2RlKCk7CisgICAgICAgIGlmICh0YXJnICE9
IHRoaXMpIHsKKyAgICAgICAgICAgIEZsb2F0UG9pbnQgYWJzUG9zID0gcmVuZGVyZXIoKS0+YWJz
b2x1dGVUb0xvY2FsKEZsb2F0UG9pbnQob2Zmc2V0WCwgb2Zmc2V0WSksIGZhbHNlLCB0cnVlKTsK
KyAgICAgICAgICAgIG9mZnNldFggPSBhYnNQb3MueCgpOworICAgICAgICAgICAgb2Zmc2V0WSA9
IGFic1Bvcy55KCk7CisgICAgICAgIH0KKyAgICAgICAgaW50IGxpc3RJbmRleCA9IHN0YXRpY19j
YXN0PFJlbmRlckxpc3RCb3gqPihyZW5kZXJlcigpKS0+bGlzdEluZGV4QXRPZmZzZXQob2Zmc2V0
WCwgb2Zmc2V0WSk7CiAgICAgICAgIGlmIChsaXN0SW5kZXggPj0gMCkgewogICAgICAgICAgICAg
Ly8gU2F2ZSB0aGUgc2VsZWN0aW9uIHNvIGl0IGNhbiBiZSBjb21wYXJlZCB0byB0aGUgbmV3IHNl
bGVjdGlvbiB3aGVuIHdlIGNhbGwgb25DaGFuZ2UgZHVyaW5nIG1vdXNldXAsIG9yIGFmdGVyIGF1
dG9zY3JvbGwgZmluaXNoZXMuCiAgICAgICAgICAgICBzYXZlTGFzdFNlbGVjdGlvbigpOwpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRleCAzNWI4NjA1Li4zOTkyZmE5IDEwMDY0NAot
LS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtNTc5LDYgKzU3OSwzMiBAQCB2b2lkIFJlbmRl
ckxpc3RCb3g6OnNldFNjcm9sbFRvcChpbnQgbmV3VG9wKQogICAgICAgICBtX3ZCYXItPnNldFZh
bHVlKGluZGV4KTsKIH0KIAorYm9vbCBSZW5kZXJMaXN0Qm94Ojpub2RlQXRQb2ludChjb25zdCBI
aXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBpbnQgX3gsIGlu
dCBfeSwgaW50IF90eCwgaW50IF90eSwgSGl0VGVzdEFjdGlvbiBoaXRUZXN0QWN0aW9uKQorewor
ICAgIGJvb2wgcmV0ID0gUmVuZGVyQmxvY2s6Om5vZGVBdFBvaW50KCByZXF1ZXN0LCByZXN1bHQs
IF94LCBfeSwgX3R4LCBfdHksIGhpdFRlc3RBY3Rpb24gKTsKKyAgICBpZiAoICFyZXQgKQorICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgaW50IHR4ID0gX3R4ICsgeCgpOworICAgIGludCB0eSA9
IF90eSArIHkoKTsKKyAgICBjb25zdCBWZWN0b3I8SFRNTEVsZW1lbnQqPiYgbGlzdEl0ZW1zID0g
c3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQqPihub2RlKCkpLT5saXN0SXRlbXMoKTsKKyAg
ICBpbnQgc2l6ZSA9IG51bUl0ZW1zKCk7CisgICAgZm9yIChpbnQgbGlzdEluZGV4ID0gMDtsaXN0
SW5kZXggPCBzaXplOysrbGlzdEluZGV4KSB7CisgICAgICAgIEludFJlY3QgciA9IGl0ZW1Cb3Vu
ZGluZ0JveFJlY3QoX3R4LCBfdHksIGxpc3RJbmRleCk7CisgICAgICAgIGlmIChyLmNvbnRhaW5z
KF94LCBfeSkpIHsKKyAgICAgICAgICAgIEhUTUxFbGVtZW50ICpub2RlID0gbGlzdEl0ZW1zW2xp
c3RJbmRleF07CisgICAgICAgICAgICBpZiAobm9kZSkgeworICAgICAgICAgICAgICAgIHJlc3Vs
dC5zZXRJbm5lck5vZGUobm9kZSk7CisgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuaW5uZXJO
b25TaGFyZWROb2RlKCkpCisgICAgICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRJbm5lck5vblNo
YXJlZE5vZGUobm9kZSk7CisgICAgICAgICAgICAgICAgcmVzdWx0LnNldExvY2FsUG9pbnQoSW50
UG9pbnQoX3ggLSB0eCwgX3kgLSB0eSkpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgcmV0dXJuIHRydWU7Cit9CisKIEludFJl
Y3QgUmVuZGVyTGlzdEJveDo6Y29udHJvbENsaXBSZWN0KGludCB0eCwgaW50IHR5KSBjb25zdAog
ewogICAgIEludFJlY3QgY2xpcFJlY3QgPSBjb250ZW50Qm94UmVjdCgpOwpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5oCmluZGV4IDQ2NGI0NGYuLmFjYzMxM2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAorKysgYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
aXN0Qm94LmgKQEAgLTkyLDYgKzkyLDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRT
Y3JvbGxMZWZ0KGludCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbFRvcChpbnQpOwogCisg
ICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVz
dFJlc3VsdCYsIGludCB4LCBpbnQgeSwgaW50IHR4LCBpbnQgdHksIEhpdFRlc3RBY3Rpb24pOwor
CiBwcm90ZWN0ZWQ6CiAgICAgdmlydHVhbCB2b2lkIHN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVy
ZW5jZSwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKTsKIAo=
</data>
<flag name="review"
          id="13207"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27416</attachid>
            <date>2009-02-06 13:27:16 -0800</date>
            <delta_ts>2009-02-07 05:21:17 -0800</delta_ts>
            <desc>Code fixes</desc>
            <filename>3248-3.diff</filename>
            <type>text/plain</type>
            <size>10453</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MjBjZTQ4Li5lNTJiM2M5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDIt
MDUgIFJvYiBCdWlzICA8cndsYnVpc0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCBmb3I6CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjQ4CisgICAgICAgIEJ1ZyAzMjQ4OiBNb3Vz
ZSBldmVudHMgb24gT1BUSU9OIGVsZW1lbnQgc2VlbSB0byBiZSBpZ25vcmVkCisKKyAgICAgICAg
KiBmYXN0L2Zvcm1zL29wdGlvbi1tb3VzZWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZm9ybXMvb3B0aW9uLW1vdXNlZXZlbnRzLmh0bWw6IEFkZGVkLgorCiAyMDA5
LTAyLTA1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gTGF5ZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL29wdGlv
bi1tb3VzZWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL29wdGlv
bi1tb3VzZWV2ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uNjkzOWIxNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
b3B0aW9uLW1vdXNlZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM4IEBACitUaGlzIHBh
Z2UgdGVzdHMgd2hldGhlciBhIGNsaWNrIGV2ZW50IHByb3BvZ2F0ZXMgd2l0aCB0aGUgY29ycmVj
dCB0YXJnZXQgYW5kIHBvc2l0aW9uaW5nLgorCisKKworCisKK1BBU1M6IGV2ZW50IHR5cGUgc2hv
dWxkIGJlIG1vdXNlZG93biBhbmQgaXMKK1BBU1M6IGV2ZW50IHRhcmdldCBzaG91bGQgYmUgW29i
amVjdCBIVE1MT3B0aW9uRWxlbWVudF0gYW5kIGlzCitQQVNTOiBldmVudC5wYWdlWCBzaG91bGQg
YmUgMjIgYW5kIGlzCitQQVNTOiBldmVudC5wYWdlWSBzaG91bGQgYmUgNjQgYW5kIGlzCitQQVNT
OiBldmVudC5vZmZzZXRYIHNob3VsZCBiZSAyMiBhbmQgaXMKK1BBU1M6IGV2ZW50Lm9mZnNldFkg
c2hvdWxkIGJlIDY0IGFuZCBpcworUEFTUzogZXZlbnQueCBzaG91bGQgYmUgMjIgYW5kIGlzCitQ
QVNTOiBldmVudC55IHNob3VsZCBiZSA2NCBhbmQgaXMKK1BBU1M6IGV2ZW50IHR5cGUgc2hvdWxk
IGJlIG1vdXNldXAgYW5kIGlzCitQQVNTOiBldmVudCB0YXJnZXQgc2hvdWxkIGJlIFtvYmplY3Qg
SFRNTE9wdGlvbkVsZW1lbnRdIGFuZCBpcworUEFTUzogZXZlbnQucGFnZVggc2hvdWxkIGJlIDIy
IGFuZCBpcworUEFTUzogZXZlbnQucGFnZVkgc2hvdWxkIGJlIDEzNCBhbmQgaXMKK1BBU1M6IGV2
ZW50Lm9mZnNldFggc2hvdWxkIGJlIDIyIGFuZCBpcworUEFTUzogZXZlbnQub2Zmc2V0WSBzaG91
bGQgYmUgMTM0IGFuZCBpcworUEFTUzogZXZlbnQueCBzaG91bGQgYmUgMjIgYW5kIGlzCitQQVNT
OiBldmVudC55IHNob3VsZCBiZSAxMzQgYW5kIGlzCitQQVNTOiBldmVudCB0eXBlIHNob3VsZCBi
ZSBjbGljayBhbmQgaXMKK1BBU1M6IGV2ZW50IHRhcmdldCBzaG91bGQgYmUgW29iamVjdCBIVE1M
T3B0aW9uRWxlbWVudF0gYW5kIGlzCitQQVNTOiBldmVudC5wYWdlWCBzaG91bGQgYmUgMjIgYW5k
IGlzCitQQVNTOiBldmVudC5wYWdlWSBzaG91bGQgYmUgMjIyIGFuZCBpcworUEFTUzogZXZlbnQu
b2Zmc2V0WCBzaG91bGQgYmUgMjIgYW5kIGlzCitQQVNTOiBldmVudC5vZmZzZXRZIHNob3VsZCBi
ZSAyMjIgYW5kIGlzCitQQVNTOiBldmVudC54IHNob3VsZCBiZSAyMiBhbmQgaXMKK1BBU1M6IGV2
ZW50Lnkgc2hvdWxkIGJlIDIyMiBhbmQgaXMKK1BBU1M6IGV2ZW50IHR5cGUgc2hvdWxkIGJlIGRi
bGNsaWNrIGFuZCBpcworUEFTUzogZXZlbnQgdGFyZ2V0IHNob3VsZCBiZSBbb2JqZWN0IEhUTUxP
cHRpb25FbGVtZW50XSBhbmQgaXMKK1BBU1M6IGV2ZW50LnBhZ2VYIHNob3VsZCBiZSAyMiBhbmQg
aXMKK1BBU1M6IGV2ZW50LnBhZ2VZIHNob3VsZCBiZSAyOTQgYW5kIGlzCitQQVNTOiBldmVudC5v
ZmZzZXRYIHNob3VsZCBiZSAyMiBhbmQgaXMKK1BBU1M6IGV2ZW50Lm9mZnNldFkgc2hvdWxkIGJl
IDI5NCBhbmQgaXMKK1BBU1M6IGV2ZW50Lnggc2hvdWxkIGJlIDIyIGFuZCBpcworUEFTUzogZXZl
bnQueSBzaG91bGQgYmUgMjk0IGFuZCBpcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9vcHRpb24tbW91c2VldmVudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvb3B0
aW9uLW1vdXNlZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
MTI1MGE0MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvb3B0aW9u
LW1vdXNlZXZlbnRzLmh0bWwKQEAgLTAsMCArMSwxMDAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0PgorZnVuY3Rpb24gcHJpbnQobWVzc2FnZSwgY29sb3IpIHsKKyAgICB2YXIgcGFyYWdyYXBo
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgcGFyYWdyYXBoLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAgICBwYXJhZ3JhcGguc3R5
bGUuZm9udEZhbWlseSA9ICJtb25vc3BhY2UiOworICAgIGlmIChjb2xvcikKKyAgICAgICAgcGFy
YWdyYXBoLnN0eWxlLmNvbG9yID0gY29sb3I7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
ImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOworfQorZnVuY3Rpb24gc2hvdWxkQmUo
ZGVzY3JpcHRpb24sIGFjdHVhbCwgZXhwZWN0ZWQpCit7CisgICAgaWYgKGV4cGVjdGVkID09PSBh
Y3R1YWwpIHsKKyAgICAgICAgcHJpbnQoIlBBU1M6ICIgKyBkZXNjcmlwdGlvbiArICIgc2hvdWxk
IGJlICIgKyBleHBlY3RlZCArIAorICAgICAgICAgICAgICAiIGFuZCBpc1xuIiwgCisgICAgICAg
ICAgICAgICJncmVlbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHByaW50KCJGQUlMOiAiICsg
ZGVzY3JpcHRpb24gKyAiIHNob3VsZCBiZSAiICsgZXhwZWN0ZWQgKyAKKyAgICAgICAgICAgICAg
IiBidXQgaW5zdGVhZCBpcyAiICsgYWN0dWFsICsgIlxuIiwgCisgICAgICAgICAgICAgICJyZWQi
KTsKKyAgICB9Cit9CitmdW5jdGlvbiBtb3VzZWV2ZW50dmVyaWZ5KGV2ZW50LCB4LCB5LCB0YXJn
ZXQsIHR5cGUpCit7CisgICAgc2hvdWxkQmUoImV2ZW50IHR5cGUiLCB0eXBlLCBldmVudC50eXBl
KTsKKyAgICBzaG91bGRCZSgiZXZlbnQgdGFyZ2V0IiwgdGFyZ2V0LCBldmVudC50YXJnZXQpOwor
ICAgIHNob3VsZEJlKCJldmVudC5wYWdlWCIsIGV2ZW50LnBhZ2VYLCB4KTsKKyAgICBzaG91bGRC
ZSgiZXZlbnQucGFnZVkiLCBldmVudC5wYWdlWSwgeSk7CisgICAgc2hvdWxkQmUoImV2ZW50Lm9m
ZnNldFgiLCBldmVudC5vZmZzZXRYLCB4KTsKKyAgICBzaG91bGRCZSgiZXZlbnQub2Zmc2V0WSIs
IGV2ZW50Lm9mZnNldFksIHkpOworICAgIHNob3VsZEJlKCJldmVudC54IiwgZXZlbnQueCwgeCk7
CisgICAgc2hvdWxkQmUoImV2ZW50LnkiLCBldmVudC55LCB5KTsKK30KK2Z1bmN0aW9uIHRlc3Qo
KSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmV2ZW50U2VuZGVy
KSB7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIyLCA2NCk7CisgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cisg
ICAgfQorCisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICBldmVudFNlbmRl
ci5tb3VzZU1vdmVUbygyMiwgMTM0KTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7
CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICB9CisKKyAgICBpZiAod2luZG93
LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIyLCAyMjIp
OworICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgpOworICAgIH0KKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMjIsIDI5NCk7CisgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlRG93bigpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Cisg
ICAgfQorCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keSBvbmxvYWQ9InRlc3QoKTsiPgorPHA+VGhpcyBwYWdlIHRlc3RzIHdoZXRoZXIgYSBjbGlj
ayBldmVudCBwcm9wb2dhdGVzIHdpdGggdGhlIGNvcnJlY3QgdGFyZ2V0IGFuZCBwb3NpdGlvbmlu
Zy48L3A+Cis8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4KKzxzZWxlY3Qgc2l6ZT0iMiI+
Cis8b3B0aW9uPk9uZQorPG9wdGlvbiBvbm1vdXNlZG93bj0ibW91c2VldmVudHZlcmlmeShldmVu
dCwgMjIsIDY0LCB0aGlzLCAnbW91c2Vkb3duJykiPlR3bworPC9zZWxlY3Q+Cis8L2Zvcm0+Cis8
Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4KKzxzZWxlY3Qgc2l6ZT0iMiI+Cis8b3B0aW9u
Pk9uZQorPG9wdGlvbiBvbm1vdXNldXA9Im1vdXNlZXZlbnR2ZXJpZnkoZXZlbnQsIDIyLCAxMzQs
IHRoaXMsICdtb3VzZXVwJykiPlR3bworPC9zZWxlY3Q+Cis8L2Zvcm0+Cis8Zm9ybSBhY3Rpb249
IiIgbWV0aG9kPSJwb3N0Ij4KKzxzZWxlY3Qgc2l6ZT0iMiI+Cis8b3B0aW9uPk9uZQorPG9wdGlv
biBvbmNsaWNrPSJtb3VzZWV2ZW50dmVyaWZ5KGV2ZW50LCAyMiwgMjIyLCB0aGlzLCAnY2xpY2sn
KSI+VHdvCis8L3NlbGVjdD4KKzwvZm9ybT4KKzxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3Qi
PgorPHNlbGVjdCBzaXplPSIyIj4KKzxvcHRpb24+T25lCis8b3B0aW9uIG9uZGJsY2xpY2s9Im1v
dXNlZXZlbnR2ZXJpZnkoZXZlbnQsIDIyLCAyOTQsIHRoaXMsICdkYmxjbGljaycpIj5Ud28KKzwv
c2VsZWN0PgorPC9mb3JtPgorPGRpdiBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDogMzUw
OyIgaWQ9J2NvbnNvbGUnPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiNmU3NGExLi5mZGI5NWY4
IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIwIEBACisyMDA5LTAyLTA1ICBSb2IgQnVpcyAgPHJ3bGJ1aXNAZ21haWwuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjQ4CisgICAgICAgIEJ1ZyAzMjQ4
OiBNb3VzZSBldmVudHMgb24gT1BUSU9OIGVsZW1lbnQgc2VlbSB0byBiZSBpZ25vcmVkCisgICAg
ICAgIAorICAgICAgICBTdXBwb3J0IG1vdXNlIGV2ZW50cyBvbiBvcHRpb25zIGluIGEgc2VsZWN0
IHdoZW4gaXQgZm9ybXMgYSBsaXN0IGJveC4KKworICAgICAgICBUZXN0OiBmYXN0L2Zvcm1zL29w
dGlvbi1tb3VzZWV2ZW50cy5odG1sCisKKyAgICAgICAgKiBodG1sL0hUTUxTZWxlY3RFbGVtZW50
LmNwcDogQ29udmVydCB0byBjb29yZHMgcmVsYXRpdmUgdG8gdGhlIGxpc3QgYm94LgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXZlbnRIYW5kbGVy
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6IEhhbmRsZSBoaXQgdGVz
dGluZyBmb3Igb3B0aW9uIGVsZW1lbnRzLgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJv
eDo6bm9kZUF0UG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94Lmg6CisK
IDIwMDktMDItMDQgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZp
ZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0
RWxlbWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQuY3BwCmluZGV4IGI4
ZTI2MDguLjFjMTg3OTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5jcHAKKysrIGIvV2ViQ29yZS9odG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcApAQCAtNzExLDkg
KzcxMSwxOCBAQCB2b2lkIEhUTUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVmYXVsdEV2ZW50SGFu
ZGxlcihFdmVudCogZXZ0KQogewogICAgIGlmIChldnQtPnR5cGUoKSA9PSBldmVudE5hbWVzKCku
bW91c2Vkb3duRXZlbnQgJiYgZXZ0LT5pc01vdXNlRXZlbnQoKSAmJiBzdGF0aWNfY2FzdDxNb3Vz
ZUV2ZW50Kj4oZXZ0KS0+YnV0dG9uKCkgPT0gTGVmdEJ1dHRvbikgewogICAgICAgICBmb2N1cygp
OwotICAgICAgICAKLSAgICAgICAgTW91c2VFdmVudCogbUV2dCA9IHN0YXRpY19jYXN0PE1vdXNl
RXZlbnQqPihldnQpOwotICAgICAgICBpbnQgbGlzdEluZGV4ID0gc3RhdGljX2Nhc3Q8UmVuZGVy
TGlzdEJveCo+KHJlbmRlcmVyKCkpLT5saXN0SW5kZXhBdE9mZnNldChtRXZ0LT5vZmZzZXRYKCks
IG1FdnQtPm9mZnNldFkoKSk7CisKKyAgICAgICAgLy8gQ29udmVydCB0byBjb29yZHMgcmVsYXRp
dmUgdG8gdGhlIGxpc3QgYm94IGlmIG5lZWRlZC4KKyAgICAgICAgTW91c2VFdmVudCogbW91c2VF
dmVudCA9IHN0YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldnQpOworICAgICAgICBpbnQgb2Zmc2V0
WCA9IG1vdXNlRXZlbnQtPm9mZnNldFgoKTsgCisgICAgICAgIGludCBvZmZzZXRZID0gbW91c2VF
dmVudC0+b2Zmc2V0WSgpOyAKKyAgICAgICAgTm9kZSogdGFyZ2V0ID0gZXZ0LT50YXJnZXQoKS0+
dG9Ob2RlKCk7CisgICAgICAgIGlmICh0YXJnZXQgIT0gdGhpcykgeworICAgICAgICAgICAgRmxv
YXRQb2ludCBhYnNQb3MgPSByZW5kZXJlcigpLT5hYnNvbHV0ZVRvTG9jYWwoRmxvYXRQb2ludChv
ZmZzZXRYLCBvZmZzZXRZKSwgZmFsc2UsIHRydWUpOworICAgICAgICAgICAgb2Zmc2V0WCA9IGFi
c1Bvcy54KCk7CisgICAgICAgICAgICBvZmZzZXRZID0gYWJzUG9zLnkoKTsKKyAgICAgICAgfQor
ICAgICAgICBpbnQgbGlzdEluZGV4ID0gc3RhdGljX2Nhc3Q8UmVuZGVyTGlzdEJveCo+KHJlbmRl
cmVyKCkpLT5saXN0SW5kZXhBdE9mZnNldChvZmZzZXRYLCBvZmZzZXRZKTsKICAgICAgICAgaWYg
KGxpc3RJbmRleCA+PSAwKSB7CiAgICAgICAgICAgICAvLyBTYXZlIHRoZSBzZWxlY3Rpb24gc28g
aXQgY2FuIGJlIGNvbXBhcmVkIHRvIHRoZSBuZXcgc2VsZWN0aW9uIHdoZW4gd2UgY2FsbCBvbkNo
YW5nZSBkdXJpbmcgbW91c2V1cCwgb3IgYWZ0ZXIgYXV0b3Njcm9sbCBmaW5pc2hlcy4KICAgICAg
ICAgICAgIHNhdmVMYXN0U2VsZWN0aW9uKCk7CkBAIC03MjIsMTMgKzczMSwxMyBAQCB2b2lkIEhU
TUxTZWxlY3RFbGVtZW50OjpsaXN0Qm94RGVmYXVsdEV2ZW50SGFuZGxlcihFdmVudCogZXZ0KQog
ICAgICAgICAgICAgCiAgICAgICAgICAgICBib29sIG11bHRpU2VsZWN0S2V5UHJlc3NlZCA9IGZh
bHNlOwogI2lmIFBMQVRGT1JNKE1BQykKLSAgICAgICAgICAgIG11bHRpU2VsZWN0S2V5UHJlc3Nl
ZCA9IG1FdnQtPm1ldGFLZXkoKTsKKyAgICAgICAgICAgIG11bHRpU2VsZWN0S2V5UHJlc3NlZCA9
IG1vdXNlRXZlbnQtPm1ldGFLZXkoKTsKICNlbHNlCi0gICAgICAgICAgICBtdWx0aVNlbGVjdEtl
eVByZXNzZWQgPSBtRXZ0LT5jdHJsS2V5KCk7CisgICAgICAgICAgICBtdWx0aVNlbGVjdEtleVBy
ZXNzZWQgPSBtb3VzZUV2ZW50LT5jdHJsS2V5KCk7CiAjZW5kaWYKIAotICAgICAgICAgICAgYm9v
bCBzaGlmdFNlbGVjdCA9IG11bHRpcGxlKCkgJiYgbUV2dC0+c2hpZnRLZXkoKTsKLSAgICAgICAg
ICAgIGJvb2wgbXVsdGlTZWxlY3QgPSBtdWx0aXBsZSgpICYmIG11bHRpU2VsZWN0S2V5UHJlc3Nl
ZCAmJiAhbUV2dC0+c2hpZnRLZXkoKTsKKyAgICAgICAgICAgIGJvb2wgc2hpZnRTZWxlY3QgPSBt
dWx0aXBsZSgpICYmIG1vdXNlRXZlbnQtPnNoaWZ0S2V5KCk7CisgICAgICAgICAgICBib29sIG11
bHRpU2VsZWN0ID0gbXVsdGlwbGUoKSAmJiBtdWx0aVNlbGVjdEtleVByZXNzZWQgJiYgIW1vdXNl
RXZlbnQtPnNoaWZ0S2V5KCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIEhUTUxFbGVtZW50
KiBjbGlja2VkRWxlbWVudCA9IGxpc3RJdGVtcygpW2xpc3RJbmRleF07ICAgICAgICAgICAgCiAg
ICAgICAgICAgICBIVE1MT3B0aW9uRWxlbWVudCogb3B0aW9uID0gMDsKZGlmZiAtLWdpdCBhL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5jcHAKaW5kZXggMzViODYwNS4uYmJjZTVjYyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGlzdEJveC5jcHAKQEAgLTU3OSw2ICs1NzksMjkgQEAgdm9pZCBSZW5kZXJMaXN0Qm94Ojpz
ZXRTY3JvbGxUb3AoaW50IG5ld1RvcCkKICAgICAgICAgbV92QmFyLT5zZXRWYWx1ZShpbmRleCk7
CiB9CiAKK2Jvb2wgUmVuZGVyTGlzdEJveDo6bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVl
c3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgaW50IF94LCBpbnQgX3ksIGludCB0
eCwgaW50IHR5LCBIaXRUZXN0QWN0aW9uIGhpdFRlc3RBY3Rpb24pCit7CisgICAgaWYgKCFSZW5k
ZXJCbG9jazo6bm9kZUF0UG9pbnQocmVxdWVzdCwgcmVzdWx0LCBfeCwgX3ksIHR4LCB0eSwgaGl0
VGVzdEFjdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBjb25zdCBWZWN0b3I8SFRN
TEVsZW1lbnQqPiYgbGlzdEl0ZW1zID0gc3RhdGljX2Nhc3Q8SFRNTFNlbGVjdEVsZW1lbnQqPihu
b2RlKCkpLT5saXN0SXRlbXMoKTsKKyAgICBpbnQgc2l6ZSA9IG51bUl0ZW1zKCk7CisgICAgZm9y
IChpbnQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgSW50UmVjdCByID0gaXRlbUJv
dW5kaW5nQm94UmVjdCh0eCwgdHksIGkpOworICAgICAgICBpZiAoci5jb250YWlucyhfeCwgX3kp
KSB7CisgICAgICAgICAgICBIVE1MRWxlbWVudCogbm9kZSA9IGxpc3RJdGVtc1tpXTsKKyAgICAg
ICAgICAgIGlmIChub2RlKSB7CisgICAgICAgICAgICAgICAgcmVzdWx0LnNldElubmVyTm9kZShu
b2RlKTsKKyAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5pbm5lck5vblNoYXJlZE5vZGUoKSkK
KyAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNldElubmVyTm9uU2hhcmVkTm9kZShub2RlKTsK
KyAgICAgICAgICAgICAgICByZXN1bHQuc2V0TG9jYWxQb2ludChJbnRQb2ludChfeCAtIHR4LCBf
eSAtIHR5KSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogSW50UmVjdCBSZW5kZXJMaXN0Qm94
Ojpjb250cm9sQ2xpcFJlY3QoaW50IHR4LCBpbnQgdHkpIGNvbnN0CiB7CiAgICAgSW50UmVjdCBj
bGlwUmVjdCA9IGNvbnRlbnRCb3hSZWN0KCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJMaXN0Qm94LmggYi9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKaW5k
ZXggNDY0YjQ0Zi4uYWNjMzEzZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGlzdEJveC5oCisrKyBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtOTIs
NiArOTIsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFNjcm9sbExlZnQoaW50KTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsVG9wKGludCk7CiAKKyAgICB2aXJ0dWFsIGJvb2wg
bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgaW50IHgs
IGludCB5LCBpbnQgdHgsIGludCB0eSwgSGl0VGVzdEFjdGlvbik7CisKIHByb3RlY3RlZDoKICAg
ICB2aXJ0dWFsIHZvaWQgc3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlLCBjb25zdCBSZW5k
ZXJTdHlsZSogb2xkU3R5bGUpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27444</attachid>
            <date>2009-02-07 05:21:17 -0800</date>
            <delta_ts>2009-02-07 11:13:02 -0800</delta_ts>
            <desc>Improved testcase</desc>
            <filename>3248-4.diff</filename>
            <type>text/plain</type>
            <size>14151</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA1MjBjZTQ4Li5lNTJiM2M5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMDktMDIt
MDUgIFJvYiBCdWlzICA8cndsYnVpc0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdCBmb3I6CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjQ4CisgICAgICAgIEJ1ZyAzMjQ4OiBNb3Vz
ZSBldmVudHMgb24gT1BUSU9OIGVsZW1lbnQgc2VlbSB0byBiZSBpZ25vcmVkCisKKyAgICAgICAg
KiBmYXN0L2Zvcm1zL29wdGlvbi1tb3VzZWV2ZW50cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGZhc3QvZm9ybXMvb3B0aW9uLW1vdXNlZXZlbnRzLmh0bWw6IEFkZGVkLgorCiAyMDA5
LTAyLTA1ICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gTGF5ZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL29wdGlv
bi1tb3VzZWV2ZW50cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL29wdGlv
bi1tb3VzZWV2ZW50cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uOTJhOWQ0NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
b3B0aW9uLW1vdXNlZXZlbnRzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDg5IEBACitUaGlzIHBh
Z2UgdGVzdHMgd2hldGhlciBhIGNsaWNrIGV2ZW50IG9uIGEgbGlzdCBib3ggaXRlbSBwcm9wb2dh
dGVzIHdpdGggdGhlIGNvcnJlY3QgdGFyZ2V0IGFuZCBwb3NpdGlvbmluZyB2YWx1ZXMuCitCdWcg
MzI0ODogTW91c2UgZXZlbnRzIG9uIE9QVElPTiBlbGVtZW50IHNlZW0gdG8gYmUgaWdub3JlZAor
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyNDgKKworCisKKworCisK
K1BBU1M6IGV2ZW50IHR5cGUgc2hvdWxkIGJlIG1vdXNlZG93biBhbmQgaXMKK1BBU1M6IGV2ZW50
IHRhcmdldCBzaG91bGQgYmUgW29iamVjdCBIVE1MT3B0aW9uRWxlbWVudF0gYW5kIGlzCitQQVNT
OiBldmVudC5wYWdlWCBzaG91bGQgYmUgMjIgYW5kIGlzCitQQVNTOiBldmVudC5wYWdlWSBzaG91
bGQgYmUgMTA0IGFuZCBpcworUEFTUzogZXZlbnQub2Zmc2V0WCBzaG91bGQgYmUgMjIgYW5kIGlz
CitQQVNTOiBldmVudC5vZmZzZXRZIHNob3VsZCBiZSAxMDQgYW5kIGlzCitQQVNTOiBldmVudC54
IHNob3VsZCBiZSAyMiBhbmQgaXMKK1BBU1M6IGV2ZW50Lnkgc2hvdWxkIGJlIDEwNCBhbmQgaXMK
K1BBU1M6IGV2ZW50IHR5cGUgc2hvdWxkIGJlIG1vdXNlZG93biBhbmQgaXMKK1BBU1M6IGV2ZW50
IHRhcmdldCBzaG91bGQgYmUgW29iamVjdCBIVE1MT3B0aW9uRWxlbWVudF0gYW5kIGlzCitQQVNT
OiBldmVudC5wYWdlWCBzaG91bGQgYmUgMjIgYW5kIGlzCitQQVNTOiBldmVudC5wYWdlWSBzaG91
bGQgYmUgMTA0IGFuZCBpcworUEFTUzogZXZlbnQub2Zmc2V0WCBzaG91bGQgYmUgMjIgYW5kIGlz
CitQQVNTOiBldmVudC5vZmZzZXRZIHNob3VsZCBiZSAxMDQgYW5kIGlzCitQQVNTOiBldmVudC54
IHNob3VsZCBiZSAyMiBhbmQgaXMKK1BBU1M6IGV2ZW50Lnkgc2hvdWxkIGJlIDEwNCBhbmQgaXMK
K1BBU1M6IGV2ZW50IHR5cGUgc2hvdWxkIGJlIG1vdXNldXAgYW5kIGlzCitQQVNTOiBldmVudCB0
YXJnZXQgc2hvdWxkIGJlIFtvYmplY3QgSFRNTE9wdGlvbkVsZW1lbnRdIGFuZCBpcworUEFTUzog
ZXZlbnQucGFnZVggc2hvdWxkIGJlIDIyIGFuZCBpcworUEFTUzogZXZlbnQucGFnZVkgc2hvdWxk
IGJlIDE3NCBhbmQgaXMKK1BBU1M6IGV2ZW50Lm9mZnNldFggc2hvdWxkIGJlIDIyIGFuZCBpcwor
UEFTUzogZXZlbnQub2Zmc2V0WSBzaG91bGQgYmUgMTc0IGFuZCBpcworUEFTUzogZXZlbnQueCBz
aG91bGQgYmUgMjIgYW5kIGlzCitQQVNTOiBldmVudC55IHNob3VsZCBiZSAxNzQgYW5kIGlzCitQ
QVNTOiBldmVudCB0eXBlIHNob3VsZCBiZSBtb3VzZXVwIGFuZCBpcworUEFTUzogZXZlbnQgdGFy
Z2V0IHNob3VsZCBiZSBbb2JqZWN0IEhUTUxPcHRpb25FbGVtZW50XSBhbmQgaXMKK1BBU1M6IGV2
ZW50LnBhZ2VYIHNob3VsZCBiZSAyMiBhbmQgaXMKK1BBU1M6IGV2ZW50LnBhZ2VZIHNob3VsZCBi
ZSAxNzQgYW5kIGlzCitQQVNTOiBldmVudC5vZmZzZXRYIHNob3VsZCBiZSAyMiBhbmQgaXMKK1BB
U1M6IGV2ZW50Lm9mZnNldFkgc2hvdWxkIGJlIDE3NCBhbmQgaXMKK1BBU1M6IGV2ZW50Lnggc2hv
dWxkIGJlIDIyIGFuZCBpcworUEFTUzogZXZlbnQueSBzaG91bGQgYmUgMTc0IGFuZCBpcworUEFT
UzogZXZlbnQgdHlwZSBzaG91bGQgYmUgY2xpY2sgYW5kIGlzCitQQVNTOiBldmVudCB0YXJnZXQg
c2hvdWxkIGJlIFtvYmplY3QgSFRNTE9wdGlvbkVsZW1lbnRdIGFuZCBpcworUEFTUzogZXZlbnQu
cGFnZVggc2hvdWxkIGJlIDIyIGFuZCBpcworUEFTUzogZXZlbnQucGFnZVkgc2hvdWxkIGJlIDI2
MiBhbmQgaXMKK1BBU1M6IGV2ZW50Lm9mZnNldFggc2hvdWxkIGJlIDIyIGFuZCBpcworUEFTUzog
ZXZlbnQub2Zmc2V0WSBzaG91bGQgYmUgMjYyIGFuZCBpcworUEFTUzogZXZlbnQueCBzaG91bGQg
YmUgMjIgYW5kIGlzCitQQVNTOiBldmVudC55IHNob3VsZCBiZSAyNjIgYW5kIGlzCitQQVNTOiBl
dmVudCB0eXBlIHNob3VsZCBiZSBjbGljayBhbmQgaXMKK1BBU1M6IGV2ZW50IHRhcmdldCBzaG91
bGQgYmUgW29iamVjdCBIVE1MT3B0aW9uRWxlbWVudF0gYW5kIGlzCitQQVNTOiBldmVudC5wYWdl
WCBzaG91bGQgYmUgMjIgYW5kIGlzCitQQVNTOiBldmVudC5wYWdlWSBzaG91bGQgYmUgMjYyIGFu
ZCBpcworUEFTUzogZXZlbnQub2Zmc2V0WCBzaG91bGQgYmUgMjIgYW5kIGlzCitQQVNTOiBldmVu
dC5vZmZzZXRZIHNob3VsZCBiZSAyNjIgYW5kIGlzCitQQVNTOiBldmVudC54IHNob3VsZCBiZSAy
MiBhbmQgaXMKK1BBU1M6IGV2ZW50Lnkgc2hvdWxkIGJlIDI2MiBhbmQgaXMKK1BBU1M6IGV2ZW50
IHR5cGUgc2hvdWxkIGJlIGRibGNsaWNrIGFuZCBpcworUEFTUzogZXZlbnQgdGFyZ2V0IHNob3Vs
ZCBiZSBbb2JqZWN0IEhUTUxPcHRpb25FbGVtZW50XSBhbmQgaXMKK1BBU1M6IGV2ZW50LnBhZ2VY
IHNob3VsZCBiZSAyMiBhbmQgaXMKK1BBU1M6IGV2ZW50LnBhZ2VZIHNob3VsZCBiZSAzMzQgYW5k
IGlzCitQQVNTOiBldmVudC5vZmZzZXRYIHNob3VsZCBiZSAyMiBhbmQgaXMKK1BBU1M6IGV2ZW50
Lm9mZnNldFkgc2hvdWxkIGJlIDMzNCBhbmQgaXMKK1BBU1M6IGV2ZW50Lnggc2hvdWxkIGJlIDIy
IGFuZCBpcworUEFTUzogZXZlbnQueSBzaG91bGQgYmUgMzM0IGFuZCBpcworUEFTUzogZXZlbnQg
dHlwZSBzaG91bGQgYmUgZGJsY2xpY2sgYW5kIGlzCitQQVNTOiBldmVudCB0YXJnZXQgc2hvdWxk
IGJlIFtvYmplY3QgSFRNTE9wdGlvbkVsZW1lbnRdIGFuZCBpcworUEFTUzogZXZlbnQucGFnZVgg
c2hvdWxkIGJlIDIyIGFuZCBpcworUEFTUzogZXZlbnQucGFnZVkgc2hvdWxkIGJlIDMzNCBhbmQg
aXMKK1BBU1M6IGV2ZW50Lm9mZnNldFggc2hvdWxkIGJlIDIyIGFuZCBpcworUEFTUzogZXZlbnQu
b2Zmc2V0WSBzaG91bGQgYmUgMzM0IGFuZCBpcworUEFTUzogZXZlbnQueCBzaG91bGQgYmUgMjIg
YW5kIGlzCitQQVNTOiBldmVudC55IHNob3VsZCBiZSAzMzQgYW5kIGlzCitQQVNTOiBldmVudCB0
eXBlIHNob3VsZCBiZSBtb3VzZWRvd24gYW5kIGlzCitQQVNTOiBldmVudCB0YXJnZXQgc2hvdWxk
IGJlIFtvYmplY3QgSFRNTFNlbGVjdEVsZW1lbnRdIGFuZCBpcworUEFTUzogZXZlbnQucGFnZVgg
c2hvdWxkIGJlIDIyIGFuZCBpcworUEFTUzogZXZlbnQucGFnZVkgc2hvdWxkIGJlIDQyOCBhbmQg
aXMKK1BBU1M6IGV2ZW50Lm9mZnNldFggc2hvdWxkIGJlIDEyIGFuZCBpcworUEFTUzogZXZlbnQu
b2Zmc2V0WSBzaG91bGQgYmUgNDAgYW5kIGlzCitQQVNTOiBldmVudC54IHNob3VsZCBiZSAyMiBh
bmQgaXMKK1BBU1M6IGV2ZW50Lnkgc2hvdWxkIGJlIDQyOCBhbmQgaXMKK1BBU1M6IGV2ZW50IHR5
cGUgc2hvdWxkIGJlIG1vdXNlZG93biBhbmQgaXMKK1BBU1M6IGV2ZW50IHRhcmdldCBzaG91bGQg
YmUgW29iamVjdCBIVE1MU2VsZWN0RWxlbWVudF0gYW5kIGlzCitQQVNTOiBldmVudC5wYWdlWCBz
aG91bGQgYmUgMjIgYW5kIGlzCitQQVNTOiBldmVudC5wYWdlWSBzaG91bGQgYmUgNDI4IGFuZCBp
cworUEFTUzogZXZlbnQub2Zmc2V0WCBzaG91bGQgYmUgMTIgYW5kIGlzCitQQVNTOiBldmVudC5v
ZmZzZXRZIHNob3VsZCBiZSA0MCBhbmQgaXMKK1BBU1M6IGV2ZW50Lnggc2hvdWxkIGJlIDIyIGFu
ZCBpcworUEFTUzogZXZlbnQueSBzaG91bGQgYmUgNDI4IGFuZCBpcwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9vcHRpb24tbW91c2VldmVudHMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZm9ybXMvb3B0aW9uLW1vdXNlZXZlbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYTUxNjc1ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvb3B0aW9uLW1vdXNlZXZlbnRzLmh0bWwKQEAgLTAsMCArMSwxMjYgQEAKKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0PgorZnVuY3Rpb24gcHJpbnQobWVzc2FnZSwgY29sb3IpIHsKKyAg
ICB2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgcGFy
YWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAg
ICBwYXJhZ3JhcGguc3R5bGUuZm9udEZhbWlseSA9ICJtb25vc3BhY2UiOworICAgIGlmIChjb2xv
cikKKyAgICAgICAgcGFyYWdyYXBoLnN0eWxlLmNvbG9yID0gY29sb3I7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOworfQorZnVu
Y3Rpb24gc2hvdWxkQmUoZGVzY3JpcHRpb24sIGFjdHVhbCwgZXhwZWN0ZWQpCit7CisgICAgaWYg
KGV4cGVjdGVkID09PSBhY3R1YWwpIHsKKyAgICAgICAgcHJpbnQoIlBBU1M6ICIgKyBkZXNjcmlw
dGlvbiArICIgc2hvdWxkIGJlICIgKyBleHBlY3RlZCArIAorICAgICAgICAgICAgICAiIGFuZCBp
c1xuIiwgCisgICAgICAgICAgICAgICJncmVlbiIpOworICAgIH0gZWxzZSB7CisgICAgICAgIHBy
aW50KCJGQUlMOiAiICsgZGVzY3JpcHRpb24gKyAiIHNob3VsZCBiZSAiICsgZXhwZWN0ZWQgKyAK
KyAgICAgICAgICAgICAgIiBidXQgaW5zdGVhZCBpcyAiICsgYWN0dWFsICsgIlxuIiwgCisgICAg
ICAgICAgICAgICJyZWQiKTsKKyAgICB9Cit9CitmdW5jdGlvbiBtb3VzZWV2ZW50dmVyaWZ5KGV2
ZW50LCB4LCB5LCB0YXJnZXQsIHR5cGUpCit7CisgICAgc2hvdWxkQmUoImV2ZW50IHR5cGUiLCBl
dmVudC50eXBlLCB0eXBlKTsKKyAgICBzaG91bGRCZSgiZXZlbnQgdGFyZ2V0IiwgZXZlbnQudGFy
Z2V0LCB0YXJnZXQpOworICAgIHNob3VsZEJlKCJldmVudC5wYWdlWCIsIGV2ZW50LnBhZ2VYLCB4
KTsKKyAgICBzaG91bGRCZSgiZXZlbnQucGFnZVkiLCBldmVudC5wYWdlWSwgeSk7CisgICAgc2hv
dWxkQmUoImV2ZW50Lm9mZnNldFgiLCBldmVudC5vZmZzZXRYLCB4KTsKKyAgICBzaG91bGRCZSgi
ZXZlbnQub2Zmc2V0WSIsIGV2ZW50Lm9mZnNldFksIHkpOworICAgIHNob3VsZEJlKCJldmVudC54
IiwgZXZlbnQueCwgeCk7CisgICAgc2hvdWxkQmUoImV2ZW50LnkiLCBldmVudC55LCB5KTsKK30K
K2Z1bmN0aW9uIG1vdXNlZXZlbnR2ZXJpZnkyKGV2ZW50LCB4LCB5LCBvZmZzZXRYLCBvZmZzZXRZ
LCB0YXJnZXQsIHR5cGUpCit7CisgICAgc2hvdWxkQmUoImV2ZW50IHR5cGUiLCBldmVudC50eXBl
LCB0eXBlKTsKKyAgICBzaG91bGRCZSgiZXZlbnQgdGFyZ2V0IiwgZXZlbnQudGFyZ2V0LCB0YXJn
ZXQpOworICAgIHNob3VsZEJlKCJldmVudC5wYWdlWCIsIGV2ZW50LnBhZ2VYLCB4KTsKKyAgICBz
aG91bGRCZSgiZXZlbnQucGFnZVkiLCBldmVudC5wYWdlWSwgeSk7CisgICAgc2hvdWxkQmUoImV2
ZW50Lm9mZnNldFgiLCBldmVudC5vZmZzZXRYLCBvZmZzZXRYKTsKKyAgICBzaG91bGRCZSgiZXZl
bnQub2Zmc2V0WSIsIGV2ZW50Lm9mZnNldFksIG9mZnNldFkpOworICAgIHNob3VsZEJlKCJldmVu
dC54IiwgZXZlbnQueCwgeCk7CisgICAgc2hvdWxkQmUoImV2ZW50LnkiLCBldmVudC55LCB5KTsK
K30KK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB9CisKKyAgICBpZiAo
d2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIy
LCAxMDQpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VVcCgpOworICAgIH0KKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsK
KyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMjIsIDE3NCk7CisgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAg
fQorCisgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbygyMiwgMjYyKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7Cisg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmV2
ZW50U2VuZGVyKSB7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIyLCAzMzQpOwor
ICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VVcCgpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VVcCgpOworICAgIH0KKworICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsK
KyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMjIsIDQyOCk7CisgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICBldmVudFNlbmRlci5tb3VzZVVw
KCk7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKTsiPgorPHA+VGhpcyBwYWdlIHRlc3RzIHdoZXRoZXIg
YSBjbGljayBldmVudCBvbiBhIGxpc3QgYm94IGl0ZW0gcHJvcG9nYXRlcyB3aXRoIHRoZSBjb3Jy
ZWN0IHRhcmdldCBhbmQgcG9zaXRpb25pbmcgdmFsdWVzLjxicj4KK0J1ZyAzMjQ4OiBNb3VzZSBl
dmVudHMgb24gT1BUSU9OIGVsZW1lbnQgc2VlbSB0byBiZSBpZ25vcmVkPGJyPgorPGEgaHJlZj0i
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyNDgiPmh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjQ4PC9hPjwvcD4KKzxmb3JtIGFjdGlvbj0i
IiBtZXRob2Q9InBvc3QiPgorPHNlbGVjdCBzaXplPSIyIiBvbm1vdXNlZG93bj0ibW91c2VldmVu
dHZlcmlmeShldmVudCwgMjIsIDEwNCwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ28xJyksICdt
b3VzZWRvd24nKSI+Cis8b3B0aW9uPk9uZQorPG9wdGlvbiBpZD0ibzEiIG9ubW91c2Vkb3duPSJt
b3VzZWV2ZW50dmVyaWZ5KGV2ZW50LCAyMiwgMTA0LCB0aGlzLCAnbW91c2Vkb3duJykiPlR3bwor
PC9zZWxlY3Q+Cis8L2Zvcm0+Cis8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4KKzxzZWxl
Y3Qgc2l6ZT0iMiIgb25tb3VzZXVwPSJtb3VzZWV2ZW50dmVyaWZ5KGV2ZW50LCAyMiwgMTc0LCBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbzInKSwgJ21vdXNldXAnKSI+Cis8b3B0aW9uPk9uZQor
PG9wdGlvbiBpZD0ibzIiIG9ubW91c2V1cD0ibW91c2VldmVudHZlcmlmeShldmVudCwgMjIsIDE3
NCwgdGhpcywgJ21vdXNldXAnKSI+VHdvCis8L3NlbGVjdD4KKzwvZm9ybT4KKzxmb3JtIGFjdGlv
bj0iIiBtZXRob2Q9InBvc3QiPgorPHNlbGVjdCBzaXplPSIyIiBvbmNsaWNrPSJtb3VzZWV2ZW50
dmVyaWZ5KGV2ZW50LCAyMiwgMjYyLCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbzMnKSwgJ2Ns
aWNrJykiPgorPG9wdGlvbj5PbmUKKzxvcHRpb24gaWQ9Im8zIiBvbmNsaWNrPSJtb3VzZWV2ZW50
dmVyaWZ5KGV2ZW50LCAyMiwgMjYyLCB0aGlzLCAnY2xpY2snKSI+VHdvCis8L3NlbGVjdD4KKzwv
Zm9ybT4KKzxmb3JtIGFjdGlvbj0iIiBtZXRob2Q9InBvc3QiPgorPHNlbGVjdCBzaXplPSIyIiBv
bmRibGNsaWNrPSJtb3VzZWV2ZW50dmVyaWZ5KGV2ZW50LCAyMiwgMzM0LCBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnbzQnKSwgJ2RibGNsaWNrJykiPgorPG9wdGlvbj5PbmUKKzxvcHRpb24gaWQ9
Im80IiBvbmRibGNsaWNrPSJtb3VzZWV2ZW50dmVyaWZ5KGV2ZW50LCAyMiwgMzM0LCB0aGlzLCAn
ZGJsY2xpY2snKSI+VHdvCis8L3NlbGVjdD4KKzwvZm9ybT4KKzxzZWxlY3Qgc2l6ZT0iMyIgb25t
b3VzZWRvd249Im1vdXNlZXZlbnR2ZXJpZnkyKGV2ZW50LCAyMiwgNDI4LCAxMiwgNDAsIHRoaXMs
ICdtb3VzZWRvd24nKSI+Cis8b3B0aW9uPk9uZQorPG9wdGlvbiBpZD0ibzUiIG9ubW91c2Vkb3du
PSJtb3VzZWV2ZW50dmVyaWZ5MihldmVudCwgMjIsIDQyOCwgMTIsIDQwLCB0aGlzLCAnbW91c2Vk
b3duJykiPlR3bworPC9zZWxlY3Q+Cis8L2Zvcm0+Cis8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNv
bHV0ZTsgdG9wOiA1NTA7IiBpZD0nY29uc29sZSc+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGI2
ZTc0YTEuLmZkYjk1ZjggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNv
cmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMDktMDItMDUgIFJvYiBCdWlzICA8cnds
YnVpc0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyNDgKKyAg
ICAgICAgQnVnIDMyNDg6IE1vdXNlIGV2ZW50cyBvbiBPUFRJT04gZWxlbWVudCBzZWVtIHRvIGJl
IGlnbm9yZWQKKyAgICAgICAgCisgICAgICAgIFN1cHBvcnQgbW91c2UgZXZlbnRzIG9uIG9wdGlv
bnMgaW4gYSBzZWxlY3Qgd2hlbiBpdCBmb3JtcyBhIGxpc3QgYm94LgorCisgICAgICAgIFRlc3Q6
IGZhc3QvZm9ybXMvb3B0aW9uLW1vdXNlZXZlbnRzLmh0bWwKKworICAgICAgICAqIGh0bWwvSFRN
TFNlbGVjdEVsZW1lbnQuY3BwOiBDb252ZXJ0IHRvIGNvb3JkcyByZWxhdGl2ZSB0byB0aGUgbGlz
dCBib3guCisgICAgICAgIChXZWJDb3JlOjpIVE1MU2VsZWN0RWxlbWVudDo6bGlzdEJveERlZmF1
bHRFdmVudEhhbmRsZXIpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcDog
SGFuZGxlIGhpdCB0ZXN0aW5nIGZvciBvcHRpb24gZWxlbWVudHMuCisgICAgICAgIChXZWJDb3Jl
OjpSZW5kZXJMaXN0Qm94Ojpub2RlQXRQb2ludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckxpc3RCb3guaDoKKwogMjAwOS0wMi0wNCAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL0hUTUxTZWxlY3RFbGVtZW50LmNwcCBiL1dlYkNvcmUvaHRtbC9IVE1MU2VsZWN0RWxlbWVu
dC5jcHAKaW5kZXggYjhlMjYwOC4uMWMxODc5NCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL0hU
TUxTZWxlY3RFbGVtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFNlbGVjdEVsZW1lbnQu
Y3BwCkBAIC03MTEsOSArNzExLDE4IEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hE
ZWZhdWx0RXZlbnRIYW5kbGVyKEV2ZW50KiBldnQpCiB7CiAgICAgaWYgKGV2dC0+dHlwZSgpID09
IGV2ZW50TmFtZXMoKS5tb3VzZWRvd25FdmVudCAmJiBldnQtPmlzTW91c2VFdmVudCgpICYmIHN0
YXRpY19jYXN0PE1vdXNlRXZlbnQqPihldnQpLT5idXR0b24oKSA9PSBMZWZ0QnV0dG9uKSB7CiAg
ICAgICAgIGZvY3VzKCk7Ci0gICAgICAgIAotICAgICAgICBNb3VzZUV2ZW50KiBtRXZ0ID0gc3Rh
dGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2dCk7Ci0gICAgICAgIGludCBsaXN0SW5kZXggPSBzdGF0
aWNfY2FzdDxSZW5kZXJMaXN0Qm94Kj4ocmVuZGVyZXIoKSktPmxpc3RJbmRleEF0T2Zmc2V0KG1F
dnQtPm9mZnNldFgoKSwgbUV2dC0+b2Zmc2V0WSgpKTsKKworICAgICAgICAvLyBDb252ZXJ0IHRv
IGNvb3JkcyByZWxhdGl2ZSB0byB0aGUgbGlzdCBib3ggaWYgbmVlZGVkLgorICAgICAgICBNb3Vz
ZUV2ZW50KiBtb3VzZUV2ZW50ID0gc3RhdGljX2Nhc3Q8TW91c2VFdmVudCo+KGV2dCk7CisgICAg
ICAgIGludCBvZmZzZXRYID0gbW91c2VFdmVudC0+b2Zmc2V0WCgpOyAKKyAgICAgICAgaW50IG9m
ZnNldFkgPSBtb3VzZUV2ZW50LT5vZmZzZXRZKCk7IAorICAgICAgICBOb2RlKiB0YXJnZXQgPSBl
dnQtPnRhcmdldCgpLT50b05vZGUoKTsKKyAgICAgICAgaWYgKHRhcmdldCAhPSB0aGlzKSB7Cisg
ICAgICAgICAgICBGbG9hdFBvaW50IGFic1BvcyA9IHJlbmRlcmVyKCktPmFic29sdXRlVG9Mb2Nh
bChGbG9hdFBvaW50KG9mZnNldFgsIG9mZnNldFkpLCBmYWxzZSwgdHJ1ZSk7CisgICAgICAgICAg
ICBvZmZzZXRYID0gYWJzUG9zLngoKTsKKyAgICAgICAgICAgIG9mZnNldFkgPSBhYnNQb3MueSgp
OworICAgICAgICB9CisgICAgICAgIGludCBsaXN0SW5kZXggPSBzdGF0aWNfY2FzdDxSZW5kZXJM
aXN0Qm94Kj4ocmVuZGVyZXIoKSktPmxpc3RJbmRleEF0T2Zmc2V0KG9mZnNldFgsIG9mZnNldFkp
OwogICAgICAgICBpZiAobGlzdEluZGV4ID49IDApIHsKICAgICAgICAgICAgIC8vIFNhdmUgdGhl
IHNlbGVjdGlvbiBzbyBpdCBjYW4gYmUgY29tcGFyZWQgdG8gdGhlIG5ldyBzZWxlY3Rpb24gd2hl
biB3ZSBjYWxsIG9uQ2hhbmdlIGR1cmluZyBtb3VzZXVwLCBvciBhZnRlciBhdXRvc2Nyb2xsIGZp
bmlzaGVzLgogICAgICAgICAgICAgc2F2ZUxhc3RTZWxlY3Rpb24oKTsKQEAgLTcyMiwxMyArNzMx
LDEzIEBAIHZvaWQgSFRNTFNlbGVjdEVsZW1lbnQ6Omxpc3RCb3hEZWZhdWx0RXZlbnRIYW5kbGVy
KEV2ZW50KiBldnQpCiAgICAgICAgICAgICAKICAgICAgICAgICAgIGJvb2wgbXVsdGlTZWxlY3RL
ZXlQcmVzc2VkID0gZmFsc2U7CiAjaWYgUExBVEZPUk0oTUFDKQotICAgICAgICAgICAgbXVsdGlT
ZWxlY3RLZXlQcmVzc2VkID0gbUV2dC0+bWV0YUtleSgpOworICAgICAgICAgICAgbXVsdGlTZWxl
Y3RLZXlQcmVzc2VkID0gbW91c2VFdmVudC0+bWV0YUtleSgpOwogI2Vsc2UKLSAgICAgICAgICAg
IG11bHRpU2VsZWN0S2V5UHJlc3NlZCA9IG1FdnQtPmN0cmxLZXkoKTsKKyAgICAgICAgICAgIG11
bHRpU2VsZWN0S2V5UHJlc3NlZCA9IG1vdXNlRXZlbnQtPmN0cmxLZXkoKTsKICNlbmRpZgogCi0g
ICAgICAgICAgICBib29sIHNoaWZ0U2VsZWN0ID0gbXVsdGlwbGUoKSAmJiBtRXZ0LT5zaGlmdEtl
eSgpOwotICAgICAgICAgICAgYm9vbCBtdWx0aVNlbGVjdCA9IG11bHRpcGxlKCkgJiYgbXVsdGlT
ZWxlY3RLZXlQcmVzc2VkICYmICFtRXZ0LT5zaGlmdEtleSgpOworICAgICAgICAgICAgYm9vbCBz
aGlmdFNlbGVjdCA9IG11bHRpcGxlKCkgJiYgbW91c2VFdmVudC0+c2hpZnRLZXkoKTsKKyAgICAg
ICAgICAgIGJvb2wgbXVsdGlTZWxlY3QgPSBtdWx0aXBsZSgpICYmIG11bHRpU2VsZWN0S2V5UHJl
c3NlZCAmJiAhbW91c2VFdmVudC0+c2hpZnRLZXkoKTsKICAgICAgICAgICAgIAogICAgICAgICAg
ICAgSFRNTEVsZW1lbnQqIGNsaWNrZWRFbGVtZW50ID0gbGlzdEl0ZW1zKClbbGlzdEluZGV4XTsg
ICAgICAgICAgICAKICAgICAgICAgICAgIEhUTUxPcHRpb25FbGVtZW50KiBvcHRpb24gPSAwOwpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAgYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRleCAzNWI4NjA1Li5kNzRlZjU0IDEwMDY0
NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcApAQCAtNTc5LDYgKzU3OSwzMSBAQCB2b2lkIFJl
bmRlckxpc3RCb3g6OnNldFNjcm9sbFRvcChpbnQgbmV3VG9wKQogICAgICAgICBtX3ZCYXItPnNl
dFZhbHVlKGluZGV4KTsKIH0KIAorYm9vbCBSZW5kZXJMaXN0Qm94Ojpub2RlQXRQb2ludChjb25z
dCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBpbnQgeCwg
aW50IHksIGludCB0eCwgaW50IHR5LCBIaXRUZXN0QWN0aW9uIGhpdFRlc3RBY3Rpb24pCit7Cisg
ICAgaWYgKCFSZW5kZXJCbG9jazo6bm9kZUF0UG9pbnQocmVxdWVzdCwgcmVzdWx0LCB4LCB5LCB0
eCwgdHksIGhpdFRlc3RBY3Rpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgY29uc3Qg
VmVjdG9yPEhUTUxFbGVtZW50Kj4mIGxpc3RJdGVtcyA9IHN0YXRpY19jYXN0PEhUTUxTZWxlY3RF
bGVtZW50Kj4obm9kZSgpKS0+bGlzdEl0ZW1zKCk7CisgICAgaW50IHNpemUgPSBudW1JdGVtcygp
OworICAgIHR4ICs9IHRoaXMtPngoKTsKKyAgICB0eSArPSB0aGlzLT55KCk7CisgICAgZm9yIChp
bnQgaSA9IDA7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAgSW50UmVjdCByID0gaXRlbUJvdW5k
aW5nQm94UmVjdCh0eCwgdHksIGkpOworICAgICAgICBpZiAoci5jb250YWlucyh4LCB5KSkgewor
ICAgICAgICAgICAgSFRNTEVsZW1lbnQqIG5vZGUgPSBsaXN0SXRlbXNbaV07CisgICAgICAgICAg
ICBpZiAobm9kZSkgeworICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRJbm5lck5vZGUobm9kZSk7
CisgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCkpCisgICAg
ICAgICAgICAgICAgICAgIHJlc3VsdC5zZXRJbm5lck5vblNoYXJlZE5vZGUobm9kZSk7CisgICAg
ICAgICAgICAgICAgcmVzdWx0LnNldExvY2FsUG9pbnQoSW50UG9pbnQoeCAtIHR4LCB5IC0gdHkp
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KKworICAgIHJldHVybiB0cnVlOworfQorCiBJbnRSZWN0IFJlbmRlckxpc3RCb3g6OmNvbnRy
b2xDbGlwUmVjdChpbnQgdHgsIGludCB0eSkgY29uc3QKIHsKICAgICBJbnRSZWN0IGNsaXBSZWN0
ID0gY29udGVudEJveFJlY3QoKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckxpc3RCb3guaCBiL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAppbmRleCA0NjRi
NDRmLi5hY2MzMTNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94
LmgKKysrIGIvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCkBAIC05Miw2ICs5Miw4
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2Nyb2xsTGVmdChpbnQpOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRTY3JvbGxUb3AoaW50KTsKIAorICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQ
b2ludChjb25zdCBIaXRUZXN0UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBpbnQgeCwgaW50IHks
IGludCB0eCwgaW50IHR5LCBIaXRUZXN0QWN0aW9uKTsKKwogcHJvdGVjdGVkOgogICAgIHZpcnR1
YWwgdm9pZCBzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UsIGNvbnN0IFJlbmRlclN0eWxl
KiBvbGRTdHlsZSk7CiAK
</data>
<flag name="review"
          id="13277"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>27675</attachid>
            <date>2009-02-13 16:45:53 -0800</date>
            <delta_ts>2009-02-14 00:38:17 -0800</delta_ts>
            <desc>A proposal to modify the LayoutTest that has been created to validate the fix of this bug.</desc>
            <filename>FixListBoxSizes</filename>
            <type>text/plain</type>
            <size>7600</size>
            <attacher name="Marc-André Decoste">mad</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDQwOTk3KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMDktMDItMTMgIG1hZCAgPG1hZEBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBGaXhlZCB0aGUgcG9zaXRpb25zIG9mIHRoZSBsaXN0IGJveGVzIHNvIHRoYXQgdGhl
IHNpemUgb2YgdGhlaXIKKyAgICAgICAgcmVuZGVyaW5nIGRvZXNuJ3QgYWZmZWN0IHRoZSB0ZXN0
IGNvb3JkaW5hdGVzLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9vcHRpb24tbW91c2VldmVudHMt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZm9ybXMvb3B0aW9uLW1vdXNlZXZlbnRzLmh0
bWw6CisKIDIwMDktMDItMTMgIEdlb2ZmcmV5IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9m
b3Jtcy9vcHRpb24tbW91c2VldmVudHMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvZm9ybXMvb3B0aW9uLW1vdXNlZXZlbnRzLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gNDA5OTcpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL29wdGlvbi1tb3VzZWV2ZW50cy1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw2IEBAIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0KIAogCiAKLQogUEFTUzogZXZlbnQgdHlwZSBzaG91
bGQgYmUgbW91c2Vkb3duIGFuZCBpcwogUEFTUzogZXZlbnQgdGFyZ2V0IHNob3VsZCBiZSBbb2Jq
ZWN0IEhUTUxPcHRpb25FbGVtZW50XSBhbmQgaXMKIFBBU1M6IGV2ZW50LnBhZ2VYIHNob3VsZCBi
ZSAyMiBhbmQgaXMKQEAgLTI2LDE5ICsyNSwxOSBAQCBQQVNTOiBldmVudC55IHNob3VsZCBiZSAx
MDQgYW5kIGlzCiBQQVNTOiBldmVudCB0eXBlIHNob3VsZCBiZSBtb3VzZXVwIGFuZCBpcwogUEFT
UzogZXZlbnQgdGFyZ2V0IHNob3VsZCBiZSBbb2JqZWN0IEhUTUxPcHRpb25FbGVtZW50XSBhbmQg
aXMKIFBBU1M6IGV2ZW50LnBhZ2VYIHNob3VsZCBiZSAyMiBhbmQgaXMKLVBBU1M6IGV2ZW50LnBh
Z2VZIHNob3VsZCBiZSAxNzQgYW5kIGlzCitQQVNTOiBldmVudC5wYWdlWSBzaG91bGQgYmUgMTg0
IGFuZCBpcwogUEFTUzogZXZlbnQub2Zmc2V0WCBzaG91bGQgYmUgMjIgYW5kIGlzCi1QQVNTOiBl
dmVudC5vZmZzZXRZIHNob3VsZCBiZSAxNzQgYW5kIGlzCitQQVNTOiBldmVudC5vZmZzZXRZIHNo
b3VsZCBiZSAxODQgYW5kIGlzCiBQQVNTOiBldmVudC54IHNob3VsZCBiZSAyMiBhbmQgaXMKLVBB
U1M6IGV2ZW50Lnkgc2hvdWxkIGJlIDE3NCBhbmQgaXMKK1BBU1M6IGV2ZW50Lnkgc2hvdWxkIGJl
IDE4NCBhbmQgaXMKIFBBU1M6IGV2ZW50IHR5cGUgc2hvdWxkIGJlIG1vdXNldXAgYW5kIGlzCiBQ
QVNTOiBldmVudCB0YXJnZXQgc2hvdWxkIGJlIFtvYmplY3QgSFRNTE9wdGlvbkVsZW1lbnRdIGFu
ZCBpcwogUEFTUzogZXZlbnQucGFnZVggc2hvdWxkIGJlIDIyIGFuZCBpcwotUEFTUzogZXZlbnQu
cGFnZVkgc2hvdWxkIGJlIDE3NCBhbmQgaXMKK1BBU1M6IGV2ZW50LnBhZ2VZIHNob3VsZCBiZSAx
ODQgYW5kIGlzCiBQQVNTOiBldmVudC5vZmZzZXRYIHNob3VsZCBiZSAyMiBhbmQgaXMKLVBBU1M6
IGV2ZW50Lm9mZnNldFkgc2hvdWxkIGJlIDE3NCBhbmQgaXMKK1BBU1M6IGV2ZW50Lm9mZnNldFkg
c2hvdWxkIGJlIDE4NCBhbmQgaXMKIFBBU1M6IGV2ZW50Lnggc2hvdWxkIGJlIDIyIGFuZCBpcwot
UEFTUzogZXZlbnQueSBzaG91bGQgYmUgMTc0IGFuZCBpcworUEFTUzogZXZlbnQueSBzaG91bGQg
YmUgMTg0IGFuZCBpcwogUEFTUzogZXZlbnQgdHlwZSBzaG91bGQgYmUgY2xpY2sgYW5kIGlzCiBQ
QVNTOiBldmVudCB0YXJnZXQgc2hvdWxkIGJlIFtvYmplY3QgSFRNTE9wdGlvbkVsZW1lbnRdIGFu
ZCBpcwogUEFTUzogZXZlbnQucGFnZVggc2hvdWxkIGJlIDIyIGFuZCBpcwpAQCAtNTgsMzIgKzU3
LDMyIEBAIFBBU1M6IGV2ZW50Lnkgc2hvdWxkIGJlIDI2MiBhbmQgaXMKIFBBU1M6IGV2ZW50IHR5
cGUgc2hvdWxkIGJlIGRibGNsaWNrIGFuZCBpcwogUEFTUzogZXZlbnQgdGFyZ2V0IHNob3VsZCBi
ZSBbb2JqZWN0IEhUTUxPcHRpb25FbGVtZW50XSBhbmQgaXMKIFBBU1M6IGV2ZW50LnBhZ2VYIHNo
b3VsZCBiZSAyMiBhbmQgaXMKLVBBU1M6IGV2ZW50LnBhZ2VZIHNob3VsZCBiZSAzMzQgYW5kIGlz
CitQQVNTOiBldmVudC5wYWdlWSBzaG91bGQgYmUgMzQ0IGFuZCBpcwogUEFTUzogZXZlbnQub2Zm
c2V0WCBzaG91bGQgYmUgMjIgYW5kIGlzCi1QQVNTOiBldmVudC5vZmZzZXRZIHNob3VsZCBiZSAz
MzQgYW5kIGlzCitQQVNTOiBldmVudC5vZmZzZXRZIHNob3VsZCBiZSAzNDQgYW5kIGlzCiBQQVNT
OiBldmVudC54IHNob3VsZCBiZSAyMiBhbmQgaXMKLVBBU1M6IGV2ZW50Lnkgc2hvdWxkIGJlIDMz
NCBhbmQgaXMKK1BBU1M6IGV2ZW50Lnkgc2hvdWxkIGJlIDM0NCBhbmQgaXMKIFBBU1M6IGV2ZW50
IHR5cGUgc2hvdWxkIGJlIGRibGNsaWNrIGFuZCBpcwogUEFTUzogZXZlbnQgdGFyZ2V0IHNob3Vs
ZCBiZSBbb2JqZWN0IEhUTUxPcHRpb25FbGVtZW50XSBhbmQgaXMKIFBBU1M6IGV2ZW50LnBhZ2VY
IHNob3VsZCBiZSAyMiBhbmQgaXMKLVBBU1M6IGV2ZW50LnBhZ2VZIHNob3VsZCBiZSAzMzQgYW5k
IGlzCitQQVNTOiBldmVudC5wYWdlWSBzaG91bGQgYmUgMzQ0IGFuZCBpcwogUEFTUzogZXZlbnQu
b2Zmc2V0WCBzaG91bGQgYmUgMjIgYW5kIGlzCi1QQVNTOiBldmVudC5vZmZzZXRZIHNob3VsZCBi
ZSAzMzQgYW5kIGlzCitQQVNTOiBldmVudC5vZmZzZXRZIHNob3VsZCBiZSAzNDQgYW5kIGlzCiBQ
QVNTOiBldmVudC54IHNob3VsZCBiZSAyMiBhbmQgaXMKLVBBU1M6IGV2ZW50Lnkgc2hvdWxkIGJl
IDMzNCBhbmQgaXMKK1BBU1M6IGV2ZW50Lnkgc2hvdWxkIGJlIDM0NCBhbmQgaXMKIFBBU1M6IGV2
ZW50IHR5cGUgc2hvdWxkIGJlIG1vdXNlZG93biBhbmQgaXMKIFBBU1M6IGV2ZW50IHRhcmdldCBz
aG91bGQgYmUgW29iamVjdCBIVE1MU2VsZWN0RWxlbWVudF0gYW5kIGlzCiBQQVNTOiBldmVudC5w
YWdlWCBzaG91bGQgYmUgMjIgYW5kIGlzCi1QQVNTOiBldmVudC5wYWdlWSBzaG91bGQgYmUgNDI4
IGFuZCBpcworUEFTUzogZXZlbnQucGFnZVkgc2hvdWxkIGJlIDQ0OCBhbmQgaXMKIFBBU1M6IGV2
ZW50Lm9mZnNldFggc2hvdWxkIGJlIDEyIGFuZCBpcwotUEFTUzogZXZlbnQub2Zmc2V0WSBzaG91
bGQgYmUgNDAgYW5kIGlzCitQQVNTOiBldmVudC5vZmZzZXRZIHNob3VsZCBiZSAzOCBhbmQgaXMK
IFBBU1M6IGV2ZW50Lnggc2hvdWxkIGJlIDIyIGFuZCBpcwotUEFTUzogZXZlbnQueSBzaG91bGQg
YmUgNDI4IGFuZCBpcworUEFTUzogZXZlbnQueSBzaG91bGQgYmUgNDQ4IGFuZCBpcwogUEFTUzog
ZXZlbnQgdHlwZSBzaG91bGQgYmUgbW91c2Vkb3duIGFuZCBpcwogUEFTUzogZXZlbnQgdGFyZ2V0
IHNob3VsZCBiZSBbb2JqZWN0IEhUTUxTZWxlY3RFbGVtZW50XSBhbmQgaXMKIFBBU1M6IGV2ZW50
LnBhZ2VYIHNob3VsZCBiZSAyMiBhbmQgaXMKLVBBU1M6IGV2ZW50LnBhZ2VZIHNob3VsZCBiZSA0
MjggYW5kIGlzCitQQVNTOiBldmVudC5wYWdlWSBzaG91bGQgYmUgNDQ4IGFuZCBpcwogUEFTUzog
ZXZlbnQub2Zmc2V0WCBzaG91bGQgYmUgMTIgYW5kIGlzCi1QQVNTOiBldmVudC5vZmZzZXRZIHNo
b3VsZCBiZSA0MCBhbmQgaXMKK1BBU1M6IGV2ZW50Lm9mZnNldFkgc2hvdWxkIGJlIDM4IGFuZCBp
cwogUEFTUzogZXZlbnQueCBzaG91bGQgYmUgMjIgYW5kIGlzCi1QQVNTOiBldmVudC55IHNob3Vs
ZCBiZSA0MjggYW5kIGlzCitQQVNTOiBldmVudC55IHNob3VsZCBiZSA0NDggYW5kIGlzCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL29wdGlvbi1tb3VzZWV2ZW50cy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvb3B0aW9uLW1vdXNlZXZlbnRzLmh0bWwJKHJl
dmlzaW9uIDQwOTk3KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9vcHRpb24tbW91c2VldmVu
dHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNTYsNyArNTYsNyBAQCBmdW5jdGlvbiB0ZXN0KCkg
ewogICAgIH0KIAogICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oMjIsIDE3NCk7CisgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKDIyLCAxODQpOwogICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOwogICAgIH0KQEAgLTY4LDcgKzY4LDcgQEAgZnVuY3Rpb24g
dGVzdCgpIHsKICAgICB9CiAKICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIyLCAzMzQpOworICAgICAgICBldmVudFNlbmRlci5t
b3VzZU1vdmVUbygyMiwgMzQ0KTsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CiAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7CkBAIC03Niw3ICs3Niw3IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgfQogCiAgICAg
aWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVU
bygyMiwgNDI4KTsKKyAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMjIsIDQ0OCk7CiAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwogICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZVVwKCk7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwpAQCAtOTMsMzIgKzkzLDMy
IEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiBCdWcgMzI0ODogTW91c2UgZXZlbnRzIG9uIE9QVElPTiBl
bGVtZW50IHNlZW0gdG8gYmUgaWdub3JlZDxicj4KIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjQ4Ij5odHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MzI0ODwvYT48L3A+CiA8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4K
LTxzZWxlY3Qgc2l6ZT0iMiIgb25tb3VzZWRvd249Im1vdXNlZXZlbnR2ZXJpZnkoZXZlbnQsIDIy
LCAxMDQsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvMScpLCAnbW91c2Vkb3duJykiPgorPHNl
bGVjdCBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDogODQ7IiBzaXplPSIyIiBvbm1vdXNl
ZG93bj0ibW91c2VldmVudHZlcmlmeShldmVudCwgMjIsIDEwNCwgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ28xJyksICdtb3VzZWRvd24nKSI+CiA8b3B0aW9uPk9uZQogPG9wdGlvbiBpZD0ibzEi
IG9ubW91c2Vkb3duPSJtb3VzZWV2ZW50dmVyaWZ5KGV2ZW50LCAyMiwgMTA0LCB0aGlzLCAnbW91
c2Vkb3duJykiPlR3bwogPC9zZWxlY3Q+CiA8L2Zvcm0+CiA8Zm9ybSBhY3Rpb249IiIgbWV0aG9k
PSJwb3N0Ij4KLTxzZWxlY3Qgc2l6ZT0iMiIgb25tb3VzZXVwPSJtb3VzZWV2ZW50dmVyaWZ5KGV2
ZW50LCAyMiwgMTc0LCBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbzInKSwgJ21vdXNldXAnKSI+
Cis8c2VsZWN0IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOiAxNjQ7IiBzaXplPSIyIiBv
bm1vdXNldXA9Im1vdXNlZXZlbnR2ZXJpZnkoZXZlbnQsIDIyLCAxODQsIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdvMicpLCAnbW91c2V1cCcpIj4KIDxvcHRpb24+T25lCi08b3B0aW9uIGlkPSJv
MiIgb25tb3VzZXVwPSJtb3VzZWV2ZW50dmVyaWZ5KGV2ZW50LCAyMiwgMTc0LCB0aGlzLCAnbW91
c2V1cCcpIj5Ud28KKzxvcHRpb24gaWQ9Im8yIiBvbm1vdXNldXA9Im1vdXNlZXZlbnR2ZXJpZnko
ZXZlbnQsIDIyLCAxODQsIHRoaXMsICdtb3VzZXVwJykiPlR3bwogPC9zZWxlY3Q+CiA8L2Zvcm0+
CiA8Zm9ybSBhY3Rpb249IiIgbWV0aG9kPSJwb3N0Ij4KLTxzZWxlY3Qgc2l6ZT0iMiIgb25jbGlj
az0ibW91c2VldmVudHZlcmlmeShldmVudCwgMjIsIDI2MiwgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ28zJyksICdjbGljaycpIj4KKzxzZWxlY3Qgc3R5bGU9InBvc2l0aW9uOmFic29sdXRlOyB0
b3A6IDI0MjsiIHNpemU9IjIiIG9uY2xpY2s9Im1vdXNlZXZlbnR2ZXJpZnkoZXZlbnQsIDIyLCAy
NjIsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvMycpLCAnY2xpY2snKSI+CiA8b3B0aW9uPk9u
ZQogPG9wdGlvbiBpZD0ibzMiIG9uY2xpY2s9Im1vdXNlZXZlbnR2ZXJpZnkoZXZlbnQsIDIyLCAy
NjIsIHRoaXMsICdjbGljaycpIj5Ud28KIDwvc2VsZWN0PgogPC9mb3JtPgogPGZvcm0gYWN0aW9u
PSIiIG1ldGhvZD0icG9zdCI+Ci08c2VsZWN0IHNpemU9IjIiIG9uZGJsY2xpY2s9Im1vdXNlZXZl
bnR2ZXJpZnkoZXZlbnQsIDIyLCAzMzQsIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvNCcpLCAn
ZGJsY2xpY2snKSI+Cis8c2VsZWN0IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOiAzMjQ7
IiBzaXplPSIyIiBvbmRibGNsaWNrPSJtb3VzZWV2ZW50dmVyaWZ5KGV2ZW50LCAyMiwgMzQ0LCBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbzQnKSwgJ2RibGNsaWNrJykiPgogPG9wdGlvbj5PbmUK
LTxvcHRpb24gaWQ9Im80IiBvbmRibGNsaWNrPSJtb3VzZWV2ZW50dmVyaWZ5KGV2ZW50LCAyMiwg
MzM0LCB0aGlzLCAnZGJsY2xpY2snKSI+VHdvCis8b3B0aW9uIGlkPSJvNCIgb25kYmxjbGljaz0i
bW91c2VldmVudHZlcmlmeShldmVudCwgMjIsIDM0NCwgdGhpcywgJ2RibGNsaWNrJykiPlR3bwog
PC9zZWxlY3Q+CiA8L2Zvcm0+Ci08c2VsZWN0IHNpemU9IjMiIG9ubW91c2Vkb3duPSJtb3VzZWV2
ZW50dmVyaWZ5MihldmVudCwgMjIsIDQyOCwgMTIsIDQwLCB0aGlzLCAnbW91c2Vkb3duJykiPgor
PHNlbGVjdCBzdHlsZT0icG9zaXRpb246YWJzb2x1dGU7IHRvcDogNDA4OyIgc2l6ZT0iMyIgb25t
b3VzZWRvd249Im1vdXNlZXZlbnR2ZXJpZnkyKGV2ZW50LCAyMiwgNDQ4LCAxMiwgMzgsIHRoaXMs
ICdtb3VzZWRvd24nKSI+CiA8b3B0aW9uPk9uZQotPG9wdGlvbiBpZD0ibzUiIG9ubW91c2Vkb3du
PSJtb3VzZWV2ZW50dmVyaWZ5MihldmVudCwgMjIsIDQyOCwgMTIsIDQwLCB0aGlzLCAnbW91c2Vk
b3duJykiPlR3bworPG9wdGlvbiBpZD0ibzUiIG9ubW91c2Vkb3duPSJtb3VzZWV2ZW50dmVyaWZ5
MihldmVudCwgMjIsIDQ0OCwgMTIsIDM4LCB0aGlzLCAnbW91c2Vkb3duJykiPlR3bwogPC9zZWxl
Y3Q+CiA8L2Zvcm0+CiA8ZGl2IHN0eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsgdG9wOiA1NTA7IiBp
ZD0nY29uc29sZSc+PC9kaXY+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>