<?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>34328</bug_id>
          
          <creation_ts>2010-01-29 06:26:33 -0800</creation_ts>
          <short_desc>Manipulating SVG element attributes in Javascript does not work as expected</short_desc>
          <delta_ts>2010-06-08 07:00:43 -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>SVG</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.go2mk.com/temporary/Webkit_SVG_Bug/webkit-bug-demo.xhtml</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Mohannad Hussain">mohannad.hussain</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>krit</cc>
    
    <cc>mohannad.hussain</cc>
    
    <cc>rwlbuis</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>185849</commentid>
    <comment_count>0</comment_count>
    <who name="Mohannad Hussain">mohannad.hussain</who>
    <bug_when>2010-01-29 06:26:33 -0800</bug_when>
    <thetext>Our application is almost pure Javascript, where we do tons of SVG work. However, we find that manipulating attributes of SVG in Javascript either makes no difference, or renders the image wrong (wrong size, wrong clipping...etc).

In the URL example, http://www.go2mk.com/temporary/Webkit_SVG_Bug/webkit-bug-demo.xhtml, I am removing the viewBox attribute and nothing happens on the screen. The work around I discovered that works is to find the div containing the SVG and do div.innerHTML = div.innerHTML!! Removing the node completely, replacing it with another, then placing it back seems to work too.

We have seen this problem with many attributes other than viewBox, like the x,y coordinates as an example. Functions like forceRedraw() seem to make no difference. 

We can confirm this problem is happening on Windows and Mac. We have both Chrome and Safari running webkit 532.5 and 531.21.8 respectively.

This could be related to issue #16491, but I am not 100% sure.

Thanks for your help!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>229788</commentid>
    <comment_count>1</comment_count>
      <attachid>56900</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2010-05-24 10:01:56 -0700</bug_when>
    <thetext>Created attachment 56900
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230677</commentid>
    <comment_count>2</comment_count>
      <attachid>56900</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-05-26 05:18:25 -0700</bug_when>
    <thetext>Comment on attachment 56900
Patch

Hi Rob,

in general the patch looks fine, though some comments, regarding code &amp; test:
We&apos;re not adding new tests using the &quot;manual style&quot;, but instead make use of make-js-test-wrappers.
You should add a test under svg/custom/script-tests/foo.js, and use make-js-test-wrappers to let it create svg/custom/foo.html for you.
This way you dynamically create the testcase, and use the existing nice framework for logging / verifying (shouldBe, etc..).
Can you have a look and change that?

Some notes on the code:
* Can you make parseViewBox take a &quot;const String&amp;&quot; parameter, that would save the need to pass in two pointers. Sounds safer to encapsulate that code in parseViewBox, instead of letting the callers do that.
* I&apos;d suggest to change parseViewBox to take a &quot;FloatRect&amp;&quot; parameter instead of four individual floats. That would make the code more readable:
FloatRect viewBox;
if (!attr-&gt;value().isNull()) {
    if (!parseViewBox(document, attr-&gt;value(), viewBox))
        return true;
}
setViewBoxBaseValue(viewBox);

Thanks in advance,
Niko</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230678</commentid>
    <comment_count>3</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2010-05-26 05:30:21 -0700</bug_when>
    <thetext>Hi Niko,

(In reply to comment #2)
&gt; (From update of attachment 56900 [details])
&gt; Hi Rob,
&gt; 
&gt; in general the patch looks fine, though some comments, regarding code &amp; test:
&gt; We&apos;re not adding new tests using the &quot;manual style&quot;, but instead make use of make-js-test-wrappers.

[snip]

Thanks for the review, I&apos;ll look into improving the patch using these hints.
For the record, I wanted to add a comment that from the original bug report only
the viewBox problem could be reproduced, I am not sure what x,y coord problems the original reporter meant, but we can always add new bug reports for that later.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230686</commentid>
    <comment_count>4</comment_count>
    <who name="Mohannad Hussain">mohannad.hussain</who>
    <bug_when>2010-05-26 05:54:43 -0700</bug_when>
    <thetext>Hi Niko and Rob,

At the time when I reported the bug, it seemed like anytime we change any DOM attributes of SVG elements in Javascript, nothing gets updated on the screen to reflect our changes. The xy coords I mentioned are the simply the ones like you&apos;d have in &lt;svg x=&quot;50%&quot; y=&quot;50%&quot; ....etc.

Like I mentioned in my original description, we also noticed that the SVG objects had functions like forceRedraw() but they didn&apos;t do anything either.

I hope I explained it a bit better this time, if not just let me know!

Mohannad</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230689</commentid>
    <comment_count>5</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2010-05-26 06:18:59 -0700</bug_when>
    <thetext>Hello Mohannad

Nice to see such a quick reply. I&apos;ll try to do the same now :)

(In reply to comment #4)
&gt; Hi Niko and Rob,
&gt; 
&gt; At the time when I reported the bug, it seemed like anytime we change any DOM attributes of SVG elements in Javascript, nothing gets updated on the screen to reflect our changes. The xy coords I mentioned are the simply the ones like you&apos;d have in &lt;svg x=&quot;50%&quot; y=&quot;50%&quot; ....etc.

Ok, I &apos;ll test that later on.

&gt; Like I mentioned in my original description, we also noticed that the SVG objects had functions like forceRedraw() but they didn&apos;t do anything either.

Looks unimplemented, with a reference to bug 11275. Is probably easy, but I don&apos;t know if it should layout + redraw or only redraw.

&gt; I hope I explained it a bit better this time, if not just let me know!

Yes, thanks!
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230829</commentid>
    <comment_count>6</comment_count>
      <attachid>57127</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2010-05-26 13:06:39 -0700</bug_when>
    <thetext>Created attachment 57127
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>230835</commentid>
    <comment_count>7</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2010-05-26 13:19:14 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Created an attachment (id=57127) [details]
&gt; Patch

I did a similar test for changing width on the &lt;svg&gt;, it did reflect the removeAttribute
call into the relevant DOM value. Let me know if such a test is needed in this patch and/or
whether it is covered elsewhere.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232202</commentid>
    <comment_count>8</comment_count>
      <attachid>57423</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2010-05-30 11:21:08 -0700</bug_when>
    <thetext>Created attachment 57423
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232205</commentid>
    <comment_count>9</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2010-05-30 11:23:18 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; Created an attachment (id=57423) [details]
&gt; Patch

I made this new patch since I noticed the old one broke viewSpec. Basically it relied
on the c pointer to be updated after parsing the viewBox. I also included a changed (improved!) result.
And now there are no regressions anymore.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232271</commentid>
    <comment_count>10</comment_count>
      <attachid>57423</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-05-30 23:31:36 -0700</bug_when>
    <thetext>Comment on attachment 57423
Patch

Patch looks great. Just some style issues:

WebCore/svg/SVGFitToViewBox.cpp:58
 +      float x = 0.0f, y = 0.0f, w = 0.0f, h = 0.0f;
WebKit style wants newlines for every declaration. Can you rename w and h to width and height? This would match the style in other code parts.

WebCore/svg/SVGFitToViewBox.cpp:99
 +          FloatRect r;
Can you please name the rect viewBox, like everywhere else?

WebCore/svg/SVGFitToViewBox.h:47
 +      bool parseViewBox(Document*, const String&amp; s, FloatRect&amp; viewBox);
The names s and viewBox are not needed here.

WebCore/svg/SVGViewSpec.cpp:53
 +      FloatRect r;
Rename r to viewBox and the current viewBox to maybe viewBoxString.

WebCore/svg/SVGViewSpec.cpp:104
 +                  FloatRect r;
dito

r- because of the style issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232279</commentid>
    <comment_count>11</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2010-05-31 00:35:41 -0700</bug_when>
    <thetext>Hello Dirk,

Thanks for the review!

(In reply to comment #10)
&gt; (From update of attachment 57423 [details])
&gt; Patch looks great. Just some style issues:
&gt; 
&gt; WebCore/svg/SVGFitToViewBox.cpp:58
&gt;  +      float x = 0.0f, y = 0.0f, w = 0.0f, h = 0.0f;
&gt; WebKit style wants newlines for every declaration. Can you rename w and h to width and height? This would match the style in other code parts.
&gt; 
&gt; WebCore/svg/SVGFitToViewBox.cpp:99
&gt;  +          FloatRect r;
&gt; Can you please name the rect viewBox, like everywhere else?
&gt; 
&gt; WebCore/svg/SVGFitToViewBox.h:47
&gt;  +      bool parseViewBox(Document*, const String&amp; s, FloatRect&amp; viewBox);
&gt; The names s and viewBox are not needed here.
&gt; 
&gt; WebCore/svg/SVGViewSpec.cpp:53
&gt;  +      FloatRect r;
&gt; Rename r to viewBox and the current viewBox to maybe viewBoxString.
&gt; 
&gt; WebCore/svg/SVGViewSpec.cpp:104
&gt;  +                  FloatRect r;
&gt; dito
&gt; 
&gt; r- because of the style issues.

Ok, that looks reasonable. I wonder if the normal webkit style check script caught some of that, but I did not pay attention to that anyway when I was
running the upload script. Looks like I can fix above tonight and then the patch should be landeable.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232459</commentid>
    <comment_count>12</comment_count>
      <attachid>57480</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2010-05-31 10:50:11 -0700</bug_when>
    <thetext>Created attachment 57480
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>232718</commentid>
    <comment_count>13</comment_count>
      <attachid>57480</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-06-01 06:33:00 -0700</bug_when>
    <thetext>Comment on attachment 57480
Patch

Thanks for the changes. r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235233</commentid>
    <comment_count>14</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-06-08 06:46:56 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 57480 [details])
&gt; Thanks for the changes. r=me.

Rob, did you commit your patch?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235237</commentid>
    <comment_count>15</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2010-06-08 06:56:06 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (In reply to comment #13)
&gt; &gt; (From update of attachment 57480 [details] [details])
&gt; &gt; Thanks for the changes. r=me.
&gt; 
&gt; Rob, did you commit your patch?

Moin Dirk,

Yes, please have a quick look in the ChangeLog or git log to be sure :) IIRC I wanted last week to wait a few days to see if there were any regressions and then forgot to close this. So feel free to close provided I did commit it :)
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235240</commentid>
    <comment_count>16</comment_count>
      <attachid>57480</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-06-08 07:00:03 -0700</bug_when>
    <thetext>Comment on attachment 57480
Patch

Ahh found it. Got landed in 
http://trac.webkit.org/changeset/60501</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>235241</commentid>
    <comment_count>17</comment_count>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2010-06-08 07:00:43 -0700</bug_when>
    <thetext>All patches landed. Closing bug now.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>56900</attachid>
            <date>2010-05-24 10:01:56 -0700</date>
            <delta_ts>2010-05-26 13:06:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34328-20100524190414.patch</filename>
            <type>text/plain</type>
            <size>4335</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMzFkYjI0NzczNWUxODkwNWY4NTg3Mjg4YzlkNDk3MzRhMmU1YWJmLi5mYzk1MmM5
MTIzMGZmYzQ0YzYwODcxYzgxMjNmOTZlYzE2N2UyNWY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAK
KzIwMTAtMDUtMjQgIFJvYiBCdWlzICA8cndsYnVpc0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFuaXB1bGF0aW5nIFNWRyBlbGVt
ZW50IGF0dHJpYnV0ZXMgaW4gSmF2YXNjcmlwdCBkb2VzIG5vdCB3b3JrIGFzIGV4cGVjdGVkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDMyOAorCisg
ICAgICAgIEFkZCB0ZXN0IHRvIHZlcmlmeSB0aGF0IGFmdGVyIHJlbW92ZUF0dHJpYnV0ZSB2aWV3
Qm94IGlzIHNldCB0byBiZSBlbXB0eS4KKworICAgICAgICAqIHN2Zy9jdXN0b20vdmlld0JveC1y
ZW1vdmVBdHRyaWJ1dGUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdmcvY3VzdG9t
L3ZpZXdCb3gtcmVtb3ZlQXR0cmlidXRlLnN2ZzogQWRkZWQuCisKIDIwMTAtMDUtMjQgIENoYW5n
IFNodSAgPGNoYW5nLnNodUBub2tpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vdmlld0JveC1yZW1vdmVBdHRyaWJ1dGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS92aWV3Qm94LXJlbW92ZUF0dHJpYnV0
ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDk5NjIxMmUwM2I5NGE4NWUxZGRiMTM0Njg2NWNi
MmYxYzBmZDlhZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vdmll
d0JveC1yZW1vdmVBdHRyaWJ1dGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorVGVzdCBy
ZXN1bHQ6IFBBU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS92aWV3Qm94
LXJlbW92ZUF0dHJpYnV0ZS5zdmcgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3ZpZXdCb3gtcmVt
b3ZlQXR0cmlidXRlLnN2ZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44M2Q5N2UyYzI2YzA4ZjUxODNjNDUwZGIzM2U4
YmZjNWViZTI4NTViCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS92
aWV3Qm94LXJlbW92ZUF0dHJpYnV0ZS5zdmcKQEAgLTAsMCArMSwyMSBAQAorPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzxzdmcgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9y
Zy8yMDAwL3N2ZyIKKyB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIg
aWQ9InN2Zy1yb290IiB3aWR0aD0iMTAwJSIgaGVpZ2h0PSIxMDAlIiB2aWV3Qm94PSIwIDAgMjAw
IDIwMCIgb25sb2FkPSJydW5UZXN0KCkiPgorICAgIDx0aXRsZSBpZD0idGVzdC10aXRsZSI+UmVt
b3ZlIHZpZXdCb3ggYXR0cmlidXRlIHRlc3Q8L3RpdGxlPgorICAgIDxkZXNjIGlkPSJ0ZXN0LWRl
c2MiPlJlbW92ZSB2aWV3Qm94IGF0dHJpYnV0ZSB0ZXN0PC9kZXNjPgorCisgICAgPHNjcmlwdCA+
PCFbQ0RBVEFbCisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgICAgIHBhc3MgPSBkb2N1bWVudC5yb290RWxlbWVudC52aWV3Qm94LmJh
c2VWYWwud2lkdGggPT0gMjAwOworICAgICAgICBpZiAocGFzcykgeworICAgICAgICAgICAgZG9j
dW1lbnQucm9vdEVsZW1lbnQucmVtb3ZlQXR0cmlidXRlTlMobnVsbCwidmlld0JveCIpOworICAg
ICAgICAgICAgcGFzcyA9IGRvY3VtZW50LnJvb3RFbGVtZW50LnZpZXdCb3guYmFzZVZhbC53aWR0
aCA9PSAwOworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1
bHQiKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShwYXNzID8gIlBBU1MiIDog
IkZBSUwiKSk7CisgICAgfQorXV0+PC9zY3JpcHQ+CisgICAgPHRleHQ+VGVzdCByZXN1bHQ6IDx0
c3BhbiBpZD0icmVzdWx0Ij48L3RzcGFuPjwvdGV4dD4KKyAgICA8cmVjdCBpZD0iZ3JlZW4iIHg9
IjAiIHk9IjAiIHdpZHRoPSIyMDAiIGhlaWdodD0iMjAwIiBmaWxsPSJncmVlbiIgLz4KKzwvc3Zn
PgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRl
eCAzNjI5YjU3NjQ4YzhiZmZjNTQ2ZjdkNTA3YTBjNjFhNzAyOTJhZjdjLi5mNDZjMDY5OTJiY2Y4
ZjA3Y2M5M2NhMTAzYWM0NzA3YTU5OGI4NzZjIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxv
ZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDEwLTA1LTI0ICBS
b2IgQnVpcyAgPHJ3bGJ1aXNAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIE1hbmlwdWxhdGluZyBTVkcgZWxlbWVudCBhdHRyaWJ1dGVz
IGluIEphdmFzY3JpcHQgZG9lcyBub3Qgd29yayBhcyBleHBlY3RlZAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQzMjgKKworICAgICAgICBSZXNldCB0
aGUgdmlld0JveCB0byBiZSBlbXB0eSB3aGVuIHJlbW92aW5nIHRoZSB2aWV3Qm94IGF0dHJpYnV0
ZS4KKworICAgICAgICBUZXN0OiBzdmcvY3VzdG9tL3ZpZXdCb3gtcmVtb3ZlQXR0cmlidXRlLnN2
ZworCisgICAgICAgICogc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlTWFwcGVkQXR0cmlidXRlKToKKwogMjAxMC0wNS0yNCAg
SmVyZW15IE9ybG93ICA8am9ybG93QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
LiAgQ2hlY2tlZCBpbiBtZXJnZSBlcnJvci4gIDotKApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcv
U1ZHRml0VG9WaWV3Qm94LmNwcCBiL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHAKaW5k
ZXggZjRkZTQ2YjRiN2U4NDlhOGIyZjhiYzc1Y2FmMzNhNTI0MDliMTY0Ny4uYmZiNTJjZTRhMmI4
MzdjZTU4Zjc3MTM5NzJiMzM3Nzc5NWRmNDI1OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZH
Rml0VG9WaWV3Qm94LmNwcAorKysgYi9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwCkBA
IC04NiwxMCArODYsMTMgQEAgYm9vbCBTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlTWFwcGVkQXR0cmli
dXRlKERvY3VtZW50KiBkb2N1bWVudCwgQXR0cmlidXRlKiBhdHRyKQogewogICAgIGlmIChhdHRy
LT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnZpZXdCb3hBdHRyKSB7CiAgICAgICAgIGZsb2F0IHggPSAw
LjBmLCB5ID0gMC4wZiwgdyA9IDAuMGYsIGggPSAwLjBmOwotICAgICAgICBjb25zdCBVQ2hhciog
YyA9IGF0dHItPnZhbHVlKCkuY2hhcmFjdGVycygpOwotICAgICAgICBjb25zdCBVQ2hhciogZW5k
ID0gYyArIGF0dHItPnZhbHVlKCkubGVuZ3RoKCk7Ci0gICAgICAgIGlmIChwYXJzZVZpZXdCb3go
ZG9jdW1lbnQsIGMsIGVuZCwgeCwgeSwgdywgaCkpCi0gICAgICAgICAgICBzZXRWaWV3Qm94QmFz
ZVZhbHVlKEZsb2F0UmVjdCh4LCB5LCB3LCBoKSk7CisgICAgICAgIGlmICghYXR0ci0+dmFsdWUo
KS5pc051bGwoKSkgeworICAgICAgICAgICAgY29uc3QgVUNoYXIqIGMgPSBhdHRyLT52YWx1ZSgp
LmNoYXJhY3RlcnMoKTsKKyAgICAgICAgICAgIGNvbnN0IFVDaGFyKiBlbmQgPSBjICsgYXR0ci0+
dmFsdWUoKS5sZW5ndGgoKTsKKyAgICAgICAgICAgIGlmICghcGFyc2VWaWV3Qm94KGRvY3VtZW50
LCBjLCBlbmQsIHgsIHksIHcsIGgpKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICB9CisgICAgICAgIHNldFZpZXdCb3hCYXNlVmFsdWUoRmxvYXRSZWN0KHgsIHksIHcsIGgp
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0g
U1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyKSB7CiAgICAgICAgIFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW86OnBhcnNlUHJlc2VydmVBc3BlY3RSYXRpbyh0aGlzLCBhdHRyLT52YWx1ZSgp
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57127</attachid>
            <date>2010-05-26 13:06:39 -0700</date>
            <delta_ts>2010-05-30 11:21:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34328-20100526220900.patch</filename>
            <type>text/plain</type>
            <size>8349</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vc2NyaXB0LXRlc3RzL3N2Zy12aWV3
Qm94LWR5bmFtaWMuanMgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3NjcmlwdC10ZXN0cy9zdmct
dmlld0JveC1keW5hbWljLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiYTIxNTE3YmE0NzNiZmM0NTgzMmM1MDk3
NzU3NzdmMjExMzVmZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9t
L3NjcmlwdC10ZXN0cy9zdmctdmlld0JveC1keW5hbWljLmpzCkBAIC0wLDAgKzEsMTYgQEAKK2Rl
c2NyaXB0aW9uKCJUZXN0cyB3aGV0aGVyIHJlbW92aW5nIHRoZSB2aWV3Qm94IGF0dHJpYnV0ZSBw
cm9wYWdhdGVzIHRvIHRoZSB2aWV3Qm94IERPTSB2YWx1ZXMuIik7CisKK3ZhciBzdmdEb2MgPSBk
b2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgiaHR0cDovL3d3dy53My5vcmcv
MjAwMC9zdmciLCAic3ZnIiwgbnVsbCk7Cit2YXIgc3ZnID0gc3ZnRG9jLnJvb3RFbGVtZW50Owor
c3ZnLnNldEF0dHJpYnV0ZSgidmlld0JveCIsICIyMCAxMCAyMDAgMTAwIik7CitzaG91bGRCZSgi
c3ZnLnZpZXdCb3guYmFzZVZhbC54IiwgIjIwIik7CitzaG91bGRCZSgic3ZnLnZpZXdCb3guYmFz
ZVZhbC55IiwgIjEwIik7CitzaG91bGRCZSgic3ZnLnZpZXdCb3guYmFzZVZhbC53aWR0aCIsICIy
MDAiKTsKK3Nob3VsZEJlKCJzdmcudmlld0JveC5iYXNlVmFsLmhlaWdodCIsICIxMDAiKTsKK3N2
Zy5yZW1vdmVBdHRyaWJ1dGUoInZpZXdCb3giKTsKK3Nob3VsZEJlKCJzdmcudmlld0JveC5iYXNl
VmFsLngiLCAiMCIpOworc2hvdWxkQmUoInN2Zy52aWV3Qm94LmJhc2VWYWwueSIsICIwIik7Citz
aG91bGRCZSgic3ZnLnZpZXdCb3guYmFzZVZhbC53aWR0aCIsICIwIik7CitzaG91bGRCZSgic3Zn
LnZpZXdCb3guYmFzZVZhbC5oZWlnaHQiLCAiMCIpOworCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2Vk
ID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vc3ZnLXZpZXdCb3gt
ZHluYW1pYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3N2Zy12aWV3Qm94
LWR5bmFtaWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxYTFjMGRhZjYyZThiY2Q5MjM3YTgy
NGJjM2MyYjM1YmE1YjdiNzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3Vz
dG9tL3N2Zy12aWV3Qm94LWR5bmFtaWMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcgQEAKK1Rl
c3RzIHdoZXRoZXIgcmVtb3ZpbmcgdGhlIHZpZXdCb3ggYXR0cmlidXRlIHByb3BhZ2F0ZXMgdG8g
dGhlIHZpZXdCb3ggRE9NIHZhbHVlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1BBU1Mgc3ZnLnZpZXdCb3guYmFzZVZhbC54IGlzIDIwCitQQVNTIHN2Zy52aWV3Qm94LmJhc2VW
YWwueSBpcyAxMAorUEFTUyBzdmcudmlld0JveC5iYXNlVmFsLndpZHRoIGlzIDIwMAorUEFTUyBz
dmcudmlld0JveC5iYXNlVmFsLmhlaWdodCBpcyAxMDAKK1BBU1Mgc3ZnLnZpZXdCb3guYmFzZVZh
bC54IGlzIDAKK1BBU1Mgc3ZnLnZpZXdCb3guYmFzZVZhbC55IGlzIDAKK1BBU1Mgc3ZnLnZpZXdC
b3guYmFzZVZhbC53aWR0aCBpcyAwCitQQVNTIHN2Zy52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0IGlz
IDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3N2Zy12aWV3Qm94LWR5bmFtaWMuaHRt
bCBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vc3ZnLXZpZXdCb3gtZHluYW1pYy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU3MWM5NTRmOTVlODJkY2NiOWYwYzM0YTY1N2MwZjhmNWIxZWY1ZDIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3N2Zy12aWV3Qm94LWR5bmFtaWMuaHRt
bApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBI
VE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIu
Li8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0i
Li4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmctdmlld0JveC1keW5hbWljLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9z
dmcvU1ZHRml0VG9WaWV3Qm94LmNwcCBiL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHAK
aW5kZXggZjRkZTQ2YjRiN2U4NDlhOGIyZjhiYzc1Y2FmMzNhNTI0MDliMTY0Ny4uNjI4NTFmNThk
YzQ1NGFlODYxODhhMzNiYWJkNjhkZDE0MjI2ZTI4MSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcv
U1ZHRml0VG9WaWV3Qm94LmNwcAorKysgYi9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3Bw
CkBAIC0xLDYgKzEsNiBAQAogLyoKICAgICBDb3B5cmlnaHQgKEMpIDIwMDQsIDIwMDUsIDIwMDgg
Tmlrb2xhcyBaaW1tZXJtYW5uIDx6aW1tZXJtYW5uQGtkZS5vcmc+Ci0gICAgICAgICAgICAgICAg
ICAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3IFJvYiBCdWlzIDxidWlzQGtkZS5vcmc+CisgICAgICAg
ICAgICAgICAgICAyMDA0LCAyMDA1LCAyMDA2LCAyMDA3LCAyMDEwIFJvYiBCdWlzIDxidWlzQGtk
ZS5vcmc+CiAKICAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRp
c3RyaWJ1dGUgaXQgYW5kL29yCiAgICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKQEAgLTQyLDIwICs0MiwyNSBAQCBTVkdGaXRUb1Zp
ZXdCb3g6On5TVkdGaXRUb1ZpZXdCb3goKQogewogfQogCi1ib29sIFNWR0ZpdFRvVmlld0JveDo6
cGFyc2VWaWV3Qm94KERvY3VtZW50KiBkb2MsIGNvbnN0IFVDaGFyKiYgYywgY29uc3QgVUNoYXIq
IGVuZCwgZmxvYXQmIHgsIGZsb2F0JiB5LCBmbG9hdCYgdywgZmxvYXQmIGgsIGJvb2wgdmFsaWRh
dGUpCitib29sIFNWR0ZpdFRvVmlld0JveDo6cGFyc2VWaWV3Qm94KERvY3VtZW50KiBkb2MsIGNv
bnN0IFN0cmluZyYgcywgRmxvYXRSZWN0JiB2aWV3Qm94LCBib29sIHZhbGlkYXRlKQogeworICAg
IGNvbnN0IFVDaGFyKiBjID0gcy5jaGFyYWN0ZXJzKCk7CisgICAgY29uc3QgVUNoYXIqIGVuZCA9
IGMgKyBzLmxlbmd0aCgpOwogICAgIFN0cmluZyBzdHIoYywgZW5kIC0gYyk7CiAKICAgICBza2lw
T3B0aW9uYWxTcGFjZXMoYywgZW5kKTsKIAorICAgIGZsb2F0IHggPSAwLjBmLCB5ID0gMC4wZiwg
dyA9IDAuMGYsIGggPSAwLjBmOwogICAgIGJvb2wgdmFsaWQgPSAocGFyc2VOdW1iZXIoYywgZW5k
LCB4KSAmJiBwYXJzZU51bWJlcihjLCBlbmQsIHkpICYmCiAgICAgICAgICAgcGFyc2VOdW1iZXIo
YywgZW5kLCB3KSAmJiBwYXJzZU51bWJlcihjLCBlbmQsIGgsIGZhbHNlKSk7Ci0gICAgaWYgKCF2
YWxpZGF0ZSkKLSAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgaWYgKCF2YWxpZCkgewogICAgICAg
ICBkb2MtPmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+cmVwb3J0V2FybmluZygiUHJvYmxlbSBwYXJz
aW5nIHZpZXdCb3g9XCIiICsgc3RyICsgIlwiIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CisgICAgaWYgKCF2YWxpZGF0ZSkgeworICAgICAgICB2aWV3Qm94ID0gRmxvYXRSZWN0KHgs
IHksIHcsIGgpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CiAKICAgICBpZiAodyA8IDAu
MCkgeyAvLyBjaGVjayB0aGF0IHdpZHRoIGlzIHBvc2l0aXZlCiAgICAgICAgIGRvYy0+YWNjZXNz
U1ZHRXh0ZW5zaW9ucygpLT5yZXBvcnRFcnJvcigiQSBuZWdhdGl2ZSB2YWx1ZSBmb3IgVmlld0Jv
eCB3aWR0aCBpcyBub3QgYWxsb3dlZCIpOwpAQCAtNzEsNiArNzYsNyBAQCBib29sIFNWR0ZpdFRv
Vmlld0JveDo6cGFyc2VWaWV3Qm94KERvY3VtZW50KiBkb2MsIGNvbnN0IFVDaGFyKiYgYywgY29u
c3QgVUNoYXIqCiAgICAgICAgIH0KICAgICB9CiAKKyAgICB2aWV3Qm94ID0gRmxvYXRSZWN0KHgs
IHksIHcsIGgpOwogICAgIHJldHVybiB0cnVlOwogfQogCkBAIC04NSwxMSArOTEsMTIgQEAgQWZm
aW5lVHJhbnNmb3JtIFNWR0ZpdFRvVmlld0JveDo6dmlld0JveFRvVmlld1RyYW5zZm9ybShjb25z
dCBGbG9hdFJlY3QmIHZpZXdCb3gKIGJvb2wgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZU1hcHBlZEF0
dHJpYnV0ZShEb2N1bWVudCogZG9jdW1lbnQsIEF0dHJpYnV0ZSogYXR0cikKIHsKICAgICBpZiAo
YXR0ci0+bmFtZSgpID09IFNWR05hbWVzOjp2aWV3Qm94QXR0cikgewotICAgICAgICBmbG9hdCB4
ID0gMC4wZiwgeSA9IDAuMGYsIHcgPSAwLjBmLCBoID0gMC4wZjsKLSAgICAgICAgY29uc3QgVUNo
YXIqIGMgPSBhdHRyLT52YWx1ZSgpLmNoYXJhY3RlcnMoKTsKLSAgICAgICAgY29uc3QgVUNoYXIq
IGVuZCA9IGMgKyBhdHRyLT52YWx1ZSgpLmxlbmd0aCgpOwotICAgICAgICBpZiAocGFyc2VWaWV3
Qm94KGRvY3VtZW50LCBjLCBlbmQsIHgsIHksIHcsIGgpKQotICAgICAgICAgICAgc2V0Vmlld0Jv
eEJhc2VWYWx1ZShGbG9hdFJlY3QoeCwgeSwgdywgaCkpOworICAgICAgICBGbG9hdFJlY3QgcjsK
KyAgICAgICAgaWYgKCFhdHRyLT52YWx1ZSgpLmlzTnVsbCgpKSB7CisgICAgICAgICAgICBpZiAo
IXBhcnNlVmlld0JveChkb2N1bWVudCwgYXR0ci0+dmFsdWUoKSwgcikpCisgICAgICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgc2V0Vmlld0JveEJhc2VWYWx1ZShy
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSBlbHNlIGlmIChhdHRyLT5uYW1lKCkgPT0g
U1ZHTmFtZXM6OnByZXNlcnZlQXNwZWN0UmF0aW9BdHRyKSB7CiAgICAgICAgIFNWR1ByZXNlcnZl
QXNwZWN0UmF0aW86OnBhcnNlUHJlc2VydmVBc3BlY3RSYXRpbyh0aGlzLCBhdHRyLT52YWx1ZSgp
KTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5oIGIvV2ViQ29yZS9z
dmcvU1ZHRml0VG9WaWV3Qm94LmgKaW5kZXggYzRhMGQxMThiZmFkMDE3ZTUyZjhhNmFiYTVkY2Rk
MmI0YzM4ZmViMi4uNGRkMjliNGY4NzgyYTI0NDBmZTY1MWEwODA1MTZjNWM0ZTk0OGQyYSAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmgKKysrIGIvV2ViQ29yZS9zdmcv
U1ZHRml0VG9WaWV3Qm94LmgKQEAgLTEsNiArMSw2IEBACiAvKgogICAgIENvcHlyaWdodCAoQykg
MjAwNCwgMjAwNSwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4K
LSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgUm9iIEJ1aXMgPGJ1aXNA
a2RlLm9yZz4KKyAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIwMTAg
Um9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAogICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3
YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkgaXQgdW5kZXIg
dGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzQsNyArMzQs
NyBAQCBwdWJsaWM6CiAgICAgU1ZHRml0VG9WaWV3Qm94KCk7CiAgICAgdmlydHVhbCB+U1ZHRml0
VG9WaWV3Qm94KCk7CiAKLSAgICBib29sIHBhcnNlVmlld0JveChEb2N1bWVudCosIGNvbnN0IFVD
aGFyKiYgc3RhcnQsIGNvbnN0IFVDaGFyKiBlbmQsIGZsb2F0JiB4LCBmbG9hdCYgeSwgZmxvYXQm
IHcsIGZsb2F0JiBoLCBib29sIHZhbGlkYXRlID0gdHJ1ZSk7CisgICAgYm9vbCBwYXJzZVZpZXdC
b3goRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIHMsIEZsb2F0UmVjdCYgdmlld0JveCwgYm9vbCB2
YWxpZGF0ZSA9IHRydWUpOwogICAgIHN0YXRpYyBBZmZpbmVUcmFuc2Zvcm0gdmlld0JveFRvVmll
d1RyYW5zZm9ybShjb25zdCBGbG9hdFJlY3QmIHZpZXdCb3hSZWN0LCBjb25zdCBTVkdQcmVzZXJ2
ZUFzcGVjdFJhdGlvJiwgZmxvYXQgdmlld1dpZHRoLCBmbG9hdCB2aWV3SGVpZ2h0KTsKIAogICAg
IGJvb2wgcGFyc2VNYXBwZWRBdHRyaWJ1dGUoRG9jdW1lbnQqLCBBdHRyaWJ1dGUqKTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1ZpZXdT
cGVjLmNwcAppbmRleCA2MDhiZGJmMjgxMWFjYTc1MjU0ZTYzYzBiMzkwODJlNjc1NDkxODhjLi42
NDBkOGZlNGUwY2NhOWZjYTBkMGI2YzUwZjBmZTExNjEzNDYzNWE0IDEwMDY0NAotLS0gYS9XZWJD
b3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3Bw
CkBAIC0xLDUgKzEsNSBAQAogLyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDcgUm9iIEJ1aXMgPGJ1
aXNAa2RlLm9yZz4KKyAgICBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTAgUm9iIEJ1aXMgPGJ1aXNA
a2RlLm9yZz4KIAogICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNTAsMTIgKzUwLDEwIEBAIHZvaWQgU1ZH
Vmlld1NwZWM6OnNldFRyYW5zZm9ybShjb25zdCBTdHJpbmcmIHRyYW5zZm9ybSkKIAogdm9pZCBT
VkdWaWV3U3BlYzo6c2V0Vmlld0JveFN0cmluZyhjb25zdCBTdHJpbmcmIHZpZXdCb3gpCiB7Ci0g
ICAgZmxvYXQgeCwgeSwgdywgaDsKLSAgICBjb25zdCBVQ2hhciogYyA9IHZpZXdCb3guY2hhcmFj
dGVycygpOwotICAgIGNvbnN0IFVDaGFyKiBlbmQgPSBjICsgdmlld0JveC5sZW5ndGgoKTsKLSAg
ICBpZiAoIXBhcnNlVmlld0JveChtX2NvbnRleHRFbGVtZW50LT5kb2N1bWVudCgpLCBjLCBlbmQs
IHgsIHksIHcsIGgsIGZhbHNlKSkKKyAgICBGbG9hdFJlY3QgcjsKKyAgICBpZiAoIXBhcnNlVmll
d0JveChtX2NvbnRleHRFbGVtZW50LT5kb2N1bWVudCgpLCB2aWV3Qm94LCByLCBmYWxzZSkpCiAg
ICAgICAgIHJldHVybjsKLSAgICBzZXRWaWV3Qm94QmFzZVZhbHVlKEZsb2F0UmVjdCh4LCB5LCB3
LCBoKSk7CisgICAgc2V0Vmlld0JveEJhc2VWYWx1ZShyKTsKIH0KIAogdm9pZCBTVkdWaWV3U3Bl
Yzo6c2V0UHJlc2VydmVBc3BlY3RSYXRpb1N0cmluZyhjb25zdCBTdHJpbmcmIHByZXNlcnZlKQpA
QCAtMTAxLDEwICs5OSwxMCBAQCBib29sIFNWR1ZpZXdTcGVjOjpwYXJzZVZpZXdTcGVjKGNvbnN0
IFN0cmluZyYgdmlld1NwZWMpCiAgICAgICAgICAgICAgICAgaWYgKGN1cnJWaWV3U3BlYyA+PSBl
bmQgfHwgKmN1cnJWaWV3U3BlYyAhPSAnKCcpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsKLSAgICAgICAgICAgICAgICBm
bG9hdCB4LCB5LCB3LCBoOwotICAgICAgICAgICAgICAgIGlmICghcGFyc2VWaWV3Qm94KG1fY29u
dGV4dEVsZW1lbnQtPmRvY3VtZW50KCksIGN1cnJWaWV3U3BlYywgZW5kLCB4LCB5LCB3LCBoLCBm
YWxzZSkpCisgICAgICAgICAgICAgICAgRmxvYXRSZWN0IHI7CisgICAgICAgICAgICAgICAgaWYg
KCFwYXJzZVZpZXdCb3gobV9jb250ZXh0RWxlbWVudC0+ZG9jdW1lbnQoKSwgU3RyaW5nKGN1cnJW
aWV3U3BlYywgZW5kIC0gY3VyclZpZXdTcGVjKSwgciwgZmFsc2UpKQogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgc2V0Vmlld0JveEJhc2VWYWx1ZShG
bG9hdFJlY3QoeCwgeSwgdywgaCkpOworICAgICAgICAgICAgICAgIHNldFZpZXdCb3hCYXNlVmFs
dWUocik7CiAgICAgICAgICAgICAgICAgaWYgKGN1cnJWaWV3U3BlYyA+PSBlbmQgfHwgKmN1cnJW
aWV3U3BlYyAhPSAnKScpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57423</attachid>
            <date>2010-05-30 11:21:08 -0700</date>
            <delta_ts>2010-05-31 10:50:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34328-20100530202332.patch</filename>
            <type>text/plain</type>
            <size>11190</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlNzAwMDRhNDJiODY0ZWIwN2QxOGVkNmI1ZjFmNmIyMThjYjdlNWVmLi44ZGRhOThk
NGQ5NWZhMzNhMjM5MjU5MzE5MWEyNjBmZmQ3Y2JlMzdiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDUtMzAgIFJvYiBCdWlzICA8cndsYnVpc0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFuaXB1bGF0aW5nIFNWRyBlbGVt
ZW50IGF0dHJpYnV0ZXMgaW4gSmF2YXNjcmlwdCBkb2VzIG5vdCB3b3JrIGFzIGV4cGVjdGVkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDMyOAorCisg
ICAgICAgIEFkZCB0ZXN0IHRvIHZlcmlmeSB0aGF0IGFmdGVyIHJlbW92ZUF0dHJpYnV0ZSB2aWV3
Qm94IGlzIHNldCB0byBiZSBlbXB0eS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3Vz
dG9tL3VzZS1tb2RpZnktdGFyZ2V0LXN5bWJvbC1leHBlY3RlZC50eHQ6IFJlbW92ZWQgd2Fybmlu
ZworICAgICAgICAqIHN2Zy9jdXN0b20vc2NyaXB0LXRlc3RzL3N2Zy12aWV3Qm94LWR5bmFtaWMu
anM6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vc3ZnLXZpZXdCb3gtZHluYW1pYy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vc3ZnLXZpZXdCb3gtZHluYW1p
Yy5odG1sOiBBZGRlZC4KKwogMjAxMC0wNS0yOSAgSnVzdGluIFNjaHVoICA8anNjaHVoQGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vdXNlLW1vZGlmeS10YXJnZXQtc3lt
Ym9sLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9zdmcvY3VzdG9tL3Vz
ZS1tb2RpZnktdGFyZ2V0LXN5bWJvbC1leHBlY3RlZC50eHQKaW5kZXggMWZlZDI0OTY5YzgyYjY0
MzA1OTczZmQ3NTQwMGYwYWQ3MzA5OTZkYi4uNTUwNjU0NzYzYmQ1ZDgzZTcxMjQ4ZjU5Njc2ZjAz
NDI4YzAzZDE0ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0
b20vdXNlLW1vZGlmeS10YXJnZXQtc3ltYm9sLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS91c2UtbW9kaWZ5LXRhcmdldC1zeW1ib2wtZXhwZWN0
ZWQudHh0CkBAIC0xLDQgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE5OiBXYXJuaW5n
OiBQcm9ibGVtIHBhcnNpbmcgdmlld0JveD0iIgogbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4NjAw
CiAgIFJlbmRlclZpZXcgYXQgKDAsMCkgc2l6ZSA4MDB4NjAwCiBsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHg2MDAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vc2NyaXB0LXRlc3Rz
L3N2Zy12aWV3Qm94LWR5bmFtaWMuanMgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3NjcmlwdC10
ZXN0cy9zdmctdmlld0JveC1keW5hbWljLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFiYTIxNTE3YmE0NzNiZmM0
NTgzMmM1MDk3NzU3NzdmMjExMzVmZGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9z
dmcvY3VzdG9tL3NjcmlwdC10ZXN0cy9zdmctdmlld0JveC1keW5hbWljLmpzCkBAIC0wLDAgKzEs
MTYgQEAKK2Rlc2NyaXB0aW9uKCJUZXN0cyB3aGV0aGVyIHJlbW92aW5nIHRoZSB2aWV3Qm94IGF0
dHJpYnV0ZSBwcm9wYWdhdGVzIHRvIHRoZSB2aWV3Qm94IERPTSB2YWx1ZXMuIik7CisKK3ZhciBz
dmdEb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgiaHR0cDovL3d3
dy53My5vcmcvMjAwMC9zdmciLCAic3ZnIiwgbnVsbCk7Cit2YXIgc3ZnID0gc3ZnRG9jLnJvb3RF
bGVtZW50Oworc3ZnLnNldEF0dHJpYnV0ZSgidmlld0JveCIsICIyMCAxMCAyMDAgMTAwIik7Citz
aG91bGRCZSgic3ZnLnZpZXdCb3guYmFzZVZhbC54IiwgIjIwIik7CitzaG91bGRCZSgic3ZnLnZp
ZXdCb3guYmFzZVZhbC55IiwgIjEwIik7CitzaG91bGRCZSgic3ZnLnZpZXdCb3guYmFzZVZhbC53
aWR0aCIsICIyMDAiKTsKK3Nob3VsZEJlKCJzdmcudmlld0JveC5iYXNlVmFsLmhlaWdodCIsICIx
MDAiKTsKK3N2Zy5yZW1vdmVBdHRyaWJ1dGUoInZpZXdCb3giKTsKK3Nob3VsZEJlKCJzdmcudmll
d0JveC5iYXNlVmFsLngiLCAiMCIpOworc2hvdWxkQmUoInN2Zy52aWV3Qm94LmJhc2VWYWwueSIs
ICIwIik7CitzaG91bGRCZSgic3ZnLnZpZXdCb3guYmFzZVZhbC53aWR0aCIsICIwIik7CitzaG91
bGRCZSgic3ZnLnZpZXdCb3guYmFzZVZhbC5oZWlnaHQiLCAiMCIpOworCit2YXIgc3VjY2Vzc2Z1
bGx5UGFyc2VkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vc3Zn
LXZpZXdCb3gtZHluYW1pYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3N2
Zy12aWV3Qm94LWR5bmFtaWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxYTFjMGRhZjYyZThi
Y2Q5MjM3YTgyNGJjM2MyYjM1YmE1YjdiNzgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9zdmcvY3VzdG9tL3N2Zy12aWV3Qm94LWR5bmFtaWMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTcgQEAKK1Rlc3RzIHdoZXRoZXIgcmVtb3ZpbmcgdGhlIHZpZXdCb3ggYXR0cmlidXRlIHByb3Bh
Z2F0ZXMgdG8gdGhlIHZpZXdCb3ggRE9NIHZhbHVlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwg
c2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExF
VEUiLgorCisKK1BBU1Mgc3ZnLnZpZXdCb3guYmFzZVZhbC54IGlzIDIwCitQQVNTIHN2Zy52aWV3
Qm94LmJhc2VWYWwueSBpcyAxMAorUEFTUyBzdmcudmlld0JveC5iYXNlVmFsLndpZHRoIGlzIDIw
MAorUEFTUyBzdmcudmlld0JveC5iYXNlVmFsLmhlaWdodCBpcyAxMDAKK1BBU1Mgc3ZnLnZpZXdC
b3guYmFzZVZhbC54IGlzIDAKK1BBU1Mgc3ZnLnZpZXdCb3guYmFzZVZhbC55IGlzIDAKK1BBU1Mg
c3ZnLnZpZXdCb3guYmFzZVZhbC53aWR0aCBpcyAwCitQQVNTIHN2Zy52aWV3Qm94LmJhc2VWYWwu
aGVpZ2h0IGlzIDAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3N2Zy12aWV3Qm94LWR5
bmFtaWMuaHRtbCBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vc3ZnLXZpZXdCb3gtZHluYW1pYy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmU3MWM5NTRmOTVlODJkY2NiOWYwYzM0YTY1N2MwZjhmNWIxZWY1ZDIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3N2Zy12aWV3Qm94LWR5
bmFtaWMuaHRtbApAQCAtMCwwICsxLDEzIEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lF
VEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxkaXYgaWQ9ImNv
bnNvbGUiPjwvZGl2PgorPHNjcmlwdCBzcmM9InNjcmlwdC10ZXN0cy9zdmctdmlld0JveC1keW5h
bWljLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9q
cy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAwYjFmMGYxYjViMDdi
YjQwMTQ1ODAwNWEzNjkxNjI2ZDQzYzg0M2YwLi4yM2U5ODdjYWNmYmJjMDc5ZDVkMmQ5ZDhiZThj
YTZkZjAxM2EwNDFmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3Jl
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDEwLTA1LTMwICBSb2IgQnVpcyAgPHJ3bGJ1
aXNAZ21haWwuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1hbmlwdWxhdGluZyBTVkcgZWxlbWVudCBhdHRyaWJ1dGVzIGluIEphdmFzY3JpcHQg
ZG9lcyBub3Qgd29yayBhcyBleHBlY3RlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzQzMjgKKworICAgICAgICBSZXNldCB0aGUgdmlld0JveCB0byBi
ZSBlbXB0eSB3aGVuIHJlbW92aW5nIHRoZSB2aWV3Qm94IGF0dHJpYnV0ZS4KKworICAgICAgICBU
ZXN0OiBzdmcvY3VzdG9tL3N2Zy12aWV3Qm94LWR5bmFtaWMuaHRtbAorCisgICAgICAgICogc3Zn
L1NWR0ZpdFRvVmlld0JveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaXRUb1ZpZXdCb3g6
OnBhcnNlVmlld0JveCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdGaXRUb1ZpZXdCb3g6OnBhcnNl
TWFwcGVkQXR0cmlidXRlKToKKyAgICAgICAgKiBzdmcvU1ZHRml0VG9WaWV3Qm94Lmg6CisgICAg
ICAgICogc3ZnL1NWR1ZpZXdTcGVjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVj
OjpzZXRWaWV3Qm94U3RyaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1ZpZXdTcGVjOjpwYXJz
ZVZpZXdTcGVjKToKKwogMjAxMC0wNS0yOSAgTHVjYXMgRGUgTWFyY2hpICA8bHVjYXMuZGVtYXJj
aGlAcHJvZnVzaW9uLm1vYmk+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwIGIvV2ViQ29yZS9zdmcv
U1ZHRml0VG9WaWV3Qm94LmNwcAppbmRleCBmNGRlNDZiNGI3ZTg0OWE4YjJmOGJjNzVjYWYzM2E1
MjQwOWIxNjQ3Li5lMDFmMDI0MDQ1NjEzODI2M2E5M2Q5NDJmOTc5YjU2ZGQzYjVlMDMwIDEwMDY0
NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guY3BwCisrKyBiL1dlYkNvcmUvc3Zn
L1NWR0ZpdFRvVmlld0JveC5jcHAKQEAgLTEsNiArMSw2IEBACiAvKgogICAgIENvcHlyaWdodCAo
QykgMjAwNCwgMjAwNSwgMjAwOCBOaWtvbGFzIFppbW1lcm1hbm4gPHppbW1lcm1hbm5Aa2RlLm9y
Zz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcgUm9iIEJ1aXMgPGJ1
aXNAa2RlLm9yZz4KKyAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIwMDYsIDIwMDcsIDIw
MTAgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAogICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAgICBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtNDIsMTYg
KzQyLDI2IEBAIFNWR0ZpdFRvVmlld0JveDo6flNWR0ZpdFRvVmlld0JveCgpCiB7CiB9CiAKLWJv
b2wgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZVZpZXdCb3goRG9jdW1lbnQqIGRvYywgY29uc3QgVUNo
YXIqJiBjLCBjb25zdCBVQ2hhciogZW5kLCBmbG9hdCYgeCwgZmxvYXQmIHksIGZsb2F0JiB3LCBm
bG9hdCYgaCwgYm9vbCB2YWxpZGF0ZSkKK2Jvb2wgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZVZpZXdC
b3goRG9jdW1lbnQqIGRvYywgY29uc3QgU3RyaW5nJiBzLCBGbG9hdFJlY3QmIHZpZXdCb3gpCit7
CisgICAgY29uc3QgVUNoYXIqIGMgPSBzLmNoYXJhY3RlcnMoKTsKKyAgICBjb25zdCBVQ2hhciog
ZW5kID0gYyArIHMubGVuZ3RoKCk7CisgICAgcmV0dXJuIHBhcnNlVmlld0JveChkb2MsIGMsIGVu
ZCwgdmlld0JveCwgdHJ1ZSk7Cit9CisKK2Jvb2wgU1ZHRml0VG9WaWV3Qm94OjpwYXJzZVZpZXdC
b3goRG9jdW1lbnQqIGRvYywgY29uc3QgVUNoYXIqJiBjLCBjb25zdCBVQ2hhciogZW5kLCBGbG9h
dFJlY3QmIHZpZXdCb3gsIGJvb2wgdmFsaWRhdGUpCiB7CiAgICAgU3RyaW5nIHN0cihjLCBlbmQg
LSBjKTsKIAogICAgIHNraXBPcHRpb25hbFNwYWNlcyhjLCBlbmQpOwogCisgICAgZmxvYXQgeCA9
IDAuMGYsIHkgPSAwLjBmLCB3ID0gMC4wZiwgaCA9IDAuMGY7CiAgICAgYm9vbCB2YWxpZCA9IChw
YXJzZU51bWJlcihjLCBlbmQsIHgpICYmIHBhcnNlTnVtYmVyKGMsIGVuZCwgeSkgJiYKICAgICAg
ICAgICBwYXJzZU51bWJlcihjLCBlbmQsIHcpICYmIHBhcnNlTnVtYmVyKGMsIGVuZCwgaCwgZmFs
c2UpKTsKLSAgICBpZiAoIXZhbGlkYXRlKQorICAgIGlmICghdmFsaWRhdGUpIHsKKyAgICAgICAg
dmlld0JveCA9IEZsb2F0UmVjdCh4LCB5LCB3LCBoKTsKICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgfQogICAgIGlmICghdmFsaWQpIHsKICAgICAgICAgZG9jLT5hY2Nlc3NTVkdFeHRlbnNpb25z
KCktPnJlcG9ydFdhcm5pbmcoIlByb2JsZW0gcGFyc2luZyB2aWV3Qm94PVwiIiArIHN0ciArICJc
IiIpOwogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC03MSw2ICs4MSw3IEBAIGJvb2wgU1ZHRml0
VG9WaWV3Qm94OjpwYXJzZVZpZXdCb3goRG9jdW1lbnQqIGRvYywgY29uc3QgVUNoYXIqJiBjLCBj
b25zdCBVQ2hhcioKICAgICAgICAgfQogICAgIH0KIAorICAgIHZpZXdCb3ggPSBGbG9hdFJlY3Qo
eCwgeSwgdywgaCk7CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKQEAgLTg1LDEyICs5NiwxMiBAQCBB
ZmZpbmVUcmFuc2Zvcm0gU1ZHRml0VG9WaWV3Qm94Ojp2aWV3Qm94VG9WaWV3VHJhbnNmb3JtKGNv
bnN0IEZsb2F0UmVjdCYgdmlld0JveAogYm9vbCBTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlTWFwcGVk
QXR0cmlidXRlKERvY3VtZW50KiBkb2N1bWVudCwgQXR0cmlidXRlKiBhdHRyKQogewogICAgIGlm
IChhdHRyLT5uYW1lKCkgPT0gU1ZHTmFtZXM6OnZpZXdCb3hBdHRyKSB7Ci0gICAgICAgIGZsb2F0
IHggPSAwLjBmLCB5ID0gMC4wZiwgdyA9IDAuMGYsIGggPSAwLjBmOwotICAgICAgICBjb25zdCBV
Q2hhciogYyA9IGF0dHItPnZhbHVlKCkuY2hhcmFjdGVycygpOwotICAgICAgICBjb25zdCBVQ2hh
ciogZW5kID0gYyArIGF0dHItPnZhbHVlKCkubGVuZ3RoKCk7Ci0gICAgICAgIGlmIChwYXJzZVZp
ZXdCb3goZG9jdW1lbnQsIGMsIGVuZCwgeCwgeSwgdywgaCkpCi0gICAgICAgICAgICBzZXRWaWV3
Qm94QmFzZVZhbHVlKEZsb2F0UmVjdCh4LCB5LCB3LCBoKSk7Ci0gICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICBGbG9hdFJlY3QgcjsKKyAgICAgICAgaWYgKCFhdHRyLT52YWx1ZSgpLmlzTnVs
bCgpKSB7CisgICAgICAgICAgICBpZiAoIXBhcnNlVmlld0JveChkb2N1bWVudCwgYXR0ci0+dmFs
dWUoKSwgcikpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAg
ICAgc2V0Vmlld0JveEJhc2VWYWx1ZShyKTsKICAgICB9IGVsc2UgaWYgKGF0dHItPm5hbWUoKSA9
PSBTVkdOYW1lczo6cHJlc2VydmVBc3BlY3RSYXRpb0F0dHIpIHsKICAgICAgICAgU1ZHUHJlc2Vy
dmVBc3BlY3RSYXRpbzo6cGFyc2VQcmVzZXJ2ZUFzcGVjdFJhdGlvKHRoaXMsIGF0dHItPnZhbHVl
KCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3ZnL1NWR0Zp
dFRvVmlld0JveC5oIGIvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmgKaW5kZXggYzRhMGQx
MThiZmFkMDE3ZTUyZjhhNmFiYTVkY2RkMmI0YzM4ZmViMi4uYTcxOThhN2YzMjE2NTA2MzlhMGRm
NWRjM2JhMzk2YmIxZTZkNzY1ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3
Qm94LmgKKysrIGIvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94LmgKQEAgLTEsNiArMSw2IEBA
CiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwNCwgMjAwNSwgMjAwOCBOaWtvbGFzIFppbW1lcm1h
bm4gPHppbW1lcm1hbm5Aa2RlLm9yZz4KLSAgICAgICAgICAgICAgICAgIDIwMDQsIDIwMDUsIDIw
MDYsIDIwMDcgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICAgICAgICAgICAgICAgIDIwMDQs
IDIwMDUsIDIwMDYsIDIwMDcsIDIwMTAgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAogICAgIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtMzQsNyArMzQsNyBAQCBwdWJsaWM6CiAgICAgU1ZHRml0VG9WaWV3Qm94
KCk7CiAgICAgdmlydHVhbCB+U1ZHRml0VG9WaWV3Qm94KCk7CiAKLSAgICBib29sIHBhcnNlVmll
d0JveChEb2N1bWVudCosIGNvbnN0IFVDaGFyKiYgc3RhcnQsIGNvbnN0IFVDaGFyKiBlbmQsIGZs
b2F0JiB4LCBmbG9hdCYgeSwgZmxvYXQmIHcsIGZsb2F0JiBoLCBib29sIHZhbGlkYXRlID0gdHJ1
ZSk7CisgICAgYm9vbCBwYXJzZVZpZXdCb3goRG9jdW1lbnQqLCBjb25zdCBVQ2hhciomIHN0YXJ0
LCBjb25zdCBVQ2hhciogZW5kLCBGbG9hdFJlY3QmIHZpZXdCb3gsIGJvb2wgdmFsaWRhdGUgPSB0
cnVlKTsKICAgICBzdGF0aWMgQWZmaW5lVHJhbnNmb3JtIHZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0o
Y29uc3QgRmxvYXRSZWN0JiB2aWV3Qm94UmVjdCwgY29uc3QgU1ZHUHJlc2VydmVBc3BlY3RSYXRp
byYsIGZsb2F0IHZpZXdXaWR0aCwgZmxvYXQgdmlld0hlaWdodCk7CiAKICAgICBib29sIHBhcnNl
TWFwcGVkQXR0cmlidXRlKERvY3VtZW50KiwgQXR0cmlidXRlKik7CkBAIC00Miw2ICs0Miw5IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3Qm94QmFzZVZhbHVlKFNWR0FuaW1h
dGVkUHJvcGVydHlUcmFpdHM8RmxvYXRSZWN0Pjo6UGFzc1R5cGUpID0gMDsKICAgICB2aXJ0dWFs
IHZvaWQgc2V0UHJlc2VydmVBc3BlY3RSYXRpb0Jhc2VWYWx1ZShTVkdBbmltYXRlZFByb3BlcnR5
VHJhaXRzPFNWR1ByZXNlcnZlQXNwZWN0UmF0aW8+OjpQYXNzVHlwZSkgPSAwOworCitwcml2YXRl
OgorICAgIGJvb2wgcGFyc2VWaWV3Qm94KERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiBzLCBGbG9h
dFJlY3QmIHZpZXdCb3gpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwIGIvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMu
Y3BwCmluZGV4IDYwOGJkYmYyODExYWNhNzUyNTRlNjNjMGIzOTA4MmU2NzU0OTE4OGMuLmRjZWFm
YzdiMDFhOWU3ODhkMTY3MTJhNjZmZWM1NTU3YjI0N2IyYjMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
c3ZnL1NWR1ZpZXdTcGVjLmNwcAorKysgYi9XZWJDb3JlL3N2Zy9TVkdWaWV3U3BlYy5jcHAKQEAg
LTEsNSArMSw1IEBACiAvKgotICAgIENvcHlyaWdodCAoQykgMjAwNyBSb2IgQnVpcyA8YnVpc0Br
ZGUub3JnPgorICAgIENvcHlyaWdodCAoQykgMjAwNywgMjAxMCBSb2IgQnVpcyA8YnVpc0BrZGUu
b3JnPgogCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0
cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC01MCwxMiArNTAsMTIgQEAgdm9pZCBTVkdWaWV3
U3BlYzo6c2V0VHJhbnNmb3JtKGNvbnN0IFN0cmluZyYgdHJhbnNmb3JtKQogCiB2b2lkIFNWR1Zp
ZXdTcGVjOjpzZXRWaWV3Qm94U3RyaW5nKGNvbnN0IFN0cmluZyYgdmlld0JveCkKIHsKLSAgICBm
bG9hdCB4LCB5LCB3LCBoOworICAgIEZsb2F0UmVjdCByOwogICAgIGNvbnN0IFVDaGFyKiBjID0g
dmlld0JveC5jaGFyYWN0ZXJzKCk7CiAgICAgY29uc3QgVUNoYXIqIGVuZCA9IGMgKyB2aWV3Qm94
Lmxlbmd0aCgpOwotICAgIGlmICghcGFyc2VWaWV3Qm94KG1fY29udGV4dEVsZW1lbnQtPmRvY3Vt
ZW50KCksIGMsIGVuZCwgeCwgeSwgdywgaCwgZmFsc2UpKQotICAgICAgICByZXR1cm47Ci0gICAg
c2V0Vmlld0JveEJhc2VWYWx1ZShGbG9hdFJlY3QoeCwgeSwgdywgaCkpOworICAgIGlmICghcGFy
c2VWaWV3Qm94KG1fY29udGV4dEVsZW1lbnQtPmRvY3VtZW50KCksIGMsIGVuZCwgciwgZmFsc2Up
KQorICAgICAgICAgcmV0dXJuOworICAgIHNldFZpZXdCb3hCYXNlVmFsdWUocik7CiB9CiAKIHZv
aWQgU1ZHVmlld1NwZWM6OnNldFByZXNlcnZlQXNwZWN0UmF0aW9TdHJpbmcoY29uc3QgU3RyaW5n
JiBwcmVzZXJ2ZSkKQEAgLTEwMSwxMCArMTAxLDEwIEBAIGJvb2wgU1ZHVmlld1NwZWM6OnBhcnNl
Vmlld1NwZWMoY29uc3QgU3RyaW5nJiB2aWV3U3BlYykKICAgICAgICAgICAgICAgICBpZiAoY3Vy
clZpZXdTcGVjID49IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9ICcoJykKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIGN1cnJWaWV3U3BlYysrOwotICAg
ICAgICAgICAgICAgIGZsb2F0IHgsIHksIHcsIGg7Ci0gICAgICAgICAgICAgICAgaWYgKCFwYXJz
ZVZpZXdCb3gobV9jb250ZXh0RWxlbWVudC0+ZG9jdW1lbnQoKSwgY3VyclZpZXdTcGVjLCBlbmQs
IHgsIHksIHcsIGgsIGZhbHNlKSkKKyAgICAgICAgICAgICAgICBGbG9hdFJlY3QgcjsKKyAgICAg
ICAgICAgICAgICBpZiAoIXBhcnNlVmlld0JveChtX2NvbnRleHRFbGVtZW50LT5kb2N1bWVudCgp
LCBjdXJyVmlld1NwZWMsIGVuZCwgciwgZmFsc2UpKQogICAgICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgc2V0Vmlld0JveEJhc2VWYWx1ZShGbG9hdFJlY3Qo
eCwgeSwgdywgaCkpOworICAgICAgICAgICAgICAgIHNldFZpZXdCb3hCYXNlVmFsdWUocik7CiAg
ICAgICAgICAgICAgICAgaWYgKGN1cnJWaWV3U3BlYyA+PSBlbmQgfHwgKmN1cnJWaWV3U3BlYyAh
PSAnKScpCiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAg
ICBjdXJyVmlld1NwZWMrKzsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57480</attachid>
            <date>2010-05-31 10:50:11 -0700</date>
            <delta_ts>2010-06-08 07:00:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34328-20100531195236.patch</filename>
            <type>text/plain</type>
            <size>12477</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBlNzAwMDRhNDJiODY0ZWIwN2QxOGVkNmI1ZjFmNmIyMThjYjdlNWVmLi5iY2Q0ZjQw
OGRiNDE0M2Q0ZWFjNWM5MzE0ZTgyYzMzMGM3ZWVmY2Y1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDUtMzEgIFJvYiBCdWlzICA8cndsYnVpc0BnbWFpbC5jb20+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFuaXB1bGF0aW5nIFNWRyBlbGVt
ZW50IGF0dHJpYnV0ZXMgaW4gSmF2YXNjcmlwdCBkb2VzIG5vdCB3b3JrIGFzIGV4cGVjdGVkCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDMyOAorCisg
ICAgICAgIEFkZCB0ZXN0IHRvIHZlcmlmeSB0aGF0IGFmdGVyIHJlbW92ZUF0dHJpYnV0ZSB2aWV3
Qm94IGlzIHNldCB0byBiZSBlbXB0eS4KKworICAgICAgICAqIHBsYXRmb3JtL21hYy9zdmcvY3Vz
dG9tL3VzZS1tb2RpZnktdGFyZ2V0LXN5bWJvbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3Zn
L2N1c3RvbS9zY3JpcHQtdGVzdHMvc3ZnLXZpZXdCb3gtZHluYW1pYy5qczogQWRkZWQuCisgICAg
ICAgICogc3ZnL2N1c3RvbS9zdmctdmlld0JveC1keW5hbWljLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogc3ZnL2N1c3RvbS9zdmctdmlld0JveC1keW5hbWljLmh0bWw6IEFkZGVkLgor
CiAyMDEwLTA1LTI5ICBKdXN0aW4gU2NodWggIDxqc2NodWhAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvc3ZnL2N1c3RvbS91c2UtbW9kaWZ5LXRhcmdldC1zeW1ib2wtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL3N2Zy9jdXN0b20vdXNlLW1vZGlmeS10YXJnZXQt
c3ltYm9sLWV4cGVjdGVkLnR4dAppbmRleCAxZmVkMjQ5NjljODJiNjQzMDU5NzNmZDc1NDAwZjBh
ZDczMDk5NmRiLi41NTA2NTQ3NjNiZDVkODNlNzEyNDhmNTk2NzZmMDM0MjhjMDNkMTRkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvc3ZnL2N1c3RvbS91c2UtbW9kaWZ5LXRh
cmdldC1zeW1ib2wtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9z
dmcvY3VzdG9tL3VzZS1tb2RpZnktdGFyZ2V0LXN5bWJvbC1leHBlY3RlZC50eHQKQEAgLTEsNCAr
MSwzIEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgMTk6IFdhcm5pbmc6IFByb2JsZW0gcGFyc2lu
ZyB2aWV3Qm94PSIiCiBsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAKICAgUmVuZGVyVmlldyBh
dCAoMCwwKSBzaXplIDgwMHg2MDAKIGxheWVyIGF0ICgwLDApIHNpemUgODAweDYwMApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9zY3JpcHQtdGVzdHMvc3ZnLXZpZXdCb3gtZHlu
YW1pYy5qcyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vc2NyaXB0LXRlc3RzL3N2Zy12aWV3Qm94
LWR5bmFtaWMuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJhMjE1MTdiYTQ3M2JmYzQ1ODMyYzUwOTc3NTc3N2Yy
MTEzNWZkYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vc2NyaXB0
LXRlc3RzL3N2Zy12aWV3Qm94LWR5bmFtaWMuanMKQEAgLTAsMCArMSwxNiBAQAorZGVzY3JpcHRp
b24oIlRlc3RzIHdoZXRoZXIgcmVtb3ZpbmcgdGhlIHZpZXdCb3ggYXR0cmlidXRlIHByb3BhZ2F0
ZXMgdG8gdGhlIHZpZXdCb3ggRE9NIHZhbHVlcy4iKTsKKwordmFyIHN2Z0RvYyA9IGRvY3VtZW50
LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2
ZyIsICJzdmciLCBudWxsKTsKK3ZhciBzdmcgPSBzdmdEb2Mucm9vdEVsZW1lbnQ7Citzdmcuc2V0
QXR0cmlidXRlKCJ2aWV3Qm94IiwgIjIwIDEwIDIwMCAxMDAiKTsKK3Nob3VsZEJlKCJzdmcudmll
d0JveC5iYXNlVmFsLngiLCAiMjAiKTsKK3Nob3VsZEJlKCJzdmcudmlld0JveC5iYXNlVmFsLnki
LCAiMTAiKTsKK3Nob3VsZEJlKCJzdmcudmlld0JveC5iYXNlVmFsLndpZHRoIiwgIjIwMCIpOwor
c2hvdWxkQmUoInN2Zy52aWV3Qm94LmJhc2VWYWwuaGVpZ2h0IiwgIjEwMCIpOworc3ZnLnJlbW92
ZUF0dHJpYnV0ZSgidmlld0JveCIpOworc2hvdWxkQmUoInN2Zy52aWV3Qm94LmJhc2VWYWwueCIs
ICIwIik7CitzaG91bGRCZSgic3ZnLnZpZXdCb3guYmFzZVZhbC55IiwgIjAiKTsKK3Nob3VsZEJl
KCJzdmcudmlld0JveC5iYXNlVmFsLndpZHRoIiwgIjAiKTsKK3Nob3VsZEJlKCJzdmcudmlld0Jv
eC5iYXNlVmFsLmhlaWdodCIsICIwIik7CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVl
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS9zdmctdmlld0JveC1keW5hbWlj
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vc3ZnLXZpZXdCb3gtZHluYW1p
Yy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjFhMWMwZGFmNjJlOGJjZDkyMzdhODI0YmMzYzJi
MzViYTViN2I3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vc3Zn
LXZpZXdCb3gtZHluYW1pYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNyBAQAorVGVzdHMgd2hl
dGhlciByZW1vdmluZyB0aGUgdmlld0JveCBhdHRyaWJ1dGUgcHJvcGFnYXRlcyB0byB0aGUgdmll
d0JveCBET00gdmFsdWVzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyBz
dmcudmlld0JveC5iYXNlVmFsLnggaXMgMjAKK1BBU1Mgc3ZnLnZpZXdCb3guYmFzZVZhbC55IGlz
IDEwCitQQVNTIHN2Zy52aWV3Qm94LmJhc2VWYWwud2lkdGggaXMgMjAwCitQQVNTIHN2Zy52aWV3
Qm94LmJhc2VWYWwuaGVpZ2h0IGlzIDEwMAorUEFTUyBzdmcudmlld0JveC5iYXNlVmFsLnggaXMg
MAorUEFTUyBzdmcudmlld0JveC5iYXNlVmFsLnkgaXMgMAorUEFTUyBzdmcudmlld0JveC5iYXNl
VmFsLndpZHRoIGlzIDAKK1BBU1Mgc3ZnLnZpZXdCb3guYmFzZVZhbC5oZWlnaHQgaXMgMAorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vc3ZnLXZpZXdCb3gtZHluYW1pYy5odG1sIGIvTGF5
b3V0VGVzdHMvc3ZnL2N1c3RvbS9zdmctdmlld0JveC1keW5hbWljLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTcxYzk1NGY5NWU4MmRjY2I5ZjBjMzRhNjU3YzBmOGY1YjFlZjVkMgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N2Zy9jdXN0b20vc3ZnLXZpZXdCb3gtZHluYW1pYy5odG1sCkBAIC0w
LDAgKzEsMTMgQEAKKzwhRE9DVFlQRSBIVE1MIFBVQkxJQyAiLS8vSUVURi8vRFREIEhUTUwvL0VO
Ij4KKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uLy4uL2Zh
c3QvanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi8uLi9m
YXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8
c2NyaXB0IHNyYz0ic2NyaXB0LXRlc3RzL3N2Zy12aWV3Qm94LWR5bmFtaWMuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxv
ZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDBiMWYwZjFiNWIwN2JiNDAxNDU4MDA1YTM2OTE2
MjZkNDNjODQzZjAuLmUyYmY1ODMwMTQwMjQ1ZGQ5NGIwNTAyMjBkNzgyZWFlMDhkN2NiM2UgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjIgQEAKKzIwMTAtMDUtMzEgIFJvYiBCdWlzICA8cndsYnVpc0BnbWFpbC5jb20+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFuaXB1bGF0
aW5nIFNWRyBlbGVtZW50IGF0dHJpYnV0ZXMgaW4gSmF2YXNjcmlwdCBkb2VzIG5vdCB3b3JrIGFz
IGV4cGVjdGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zNDMyOAorCisgICAgICAgIFJlc2V0IHRoZSB2aWV3Qm94IHRvIGJlIGVtcHR5IHdoZW4gcmVt
b3ZpbmcgdGhlIHZpZXdCb3ggYXR0cmlidXRlLgorCisgICAgICAgIFRlc3Q6IHN2Zy9jdXN0b20v
c3ZnLXZpZXdCb3gtZHluYW1pYy5odG1sCisKKyAgICAgICAgKiBzdmcvU1ZHRml0VG9WaWV3Qm94
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpdFRvVmlld0JveDo6cGFyc2VWaWV3Qm94KToK
KyAgICAgICAgKFdlYkNvcmU6OlNWR0ZpdFRvVmlld0JveDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUp
OgorICAgICAgICAqIHN2Zy9TVkdGaXRUb1ZpZXdCb3guaDoKKyAgICAgICAgKiBzdmcvU1ZHVmll
d1NwZWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnNldFZpZXdCb3hTdHJp
bmcpOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVmlld1NwZWM6OnBhcnNlVmlld1NwZWMpOgorCiAy
MDEwLTA1LTI5ICBMdWNhcyBEZSBNYXJjaGkgIDxsdWNhcy5kZW1hcmNoaUBwcm9mdXNpb24ubW9i
aT4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KZGlmZiAtLWdpdCBhL1dlYkNv
cmUvc3ZnL1NWR0ZpdFRvVmlld0JveC5jcHAgYi9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3gu
Y3BwCmluZGV4IGY0ZGU0NmI0YjdlODQ5YThiMmY4YmM3NWNhZjMzYTUyNDA5YjE2NDcuLjFjMTUy
MWE0MjZiMGNjZTEyYjExZjA2ZjUzNjJkYjI4Y2U5MjhjYTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
c3ZnL1NWR0ZpdFRvVmlld0JveC5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHRml0VG9WaWV3Qm94
LmNwcApAQCAtMSw2ICsxLDYgQEAKIC8qCiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAy
MDA4IE5pa29sYXMgWmltbWVybWFubiA8emltbWVybWFubkBrZGUub3JnPgotICAgICAgICAgICAg
ICAgICAgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNyBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAg
ICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNiwgMjAwNywgMjAxMCBSb2IgQnVpcyA8YnVp
c0BrZGUub3JnPgogCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g
cmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00MiwzNSArNDIsNDkgQEAgU1ZHRml0
VG9WaWV3Qm94Ojp+U1ZHRml0VG9WaWV3Qm94KCkKIHsKIH0KIAotYm9vbCBTVkdGaXRUb1ZpZXdC
b3g6OnBhcnNlVmlld0JveChEb2N1bWVudCogZG9jLCBjb25zdCBVQ2hhciomIGMsIGNvbnN0IFVD
aGFyKiBlbmQsIGZsb2F0JiB4LCBmbG9hdCYgeSwgZmxvYXQmIHcsIGZsb2F0JiBoLCBib29sIHZh
bGlkYXRlKQorYm9vbCBTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlVmlld0JveChEb2N1bWVudCogZG9j
LCBjb25zdCBTdHJpbmcmIHMsIEZsb2F0UmVjdCYgdmlld0JveCkKK3sKKyAgICBjb25zdCBVQ2hh
ciogYyA9IHMuY2hhcmFjdGVycygpOworICAgIGNvbnN0IFVDaGFyKiBlbmQgPSBjICsgcy5sZW5n
dGgoKTsKKyAgICByZXR1cm4gcGFyc2VWaWV3Qm94KGRvYywgYywgZW5kLCB2aWV3Qm94LCB0cnVl
KTsKK30KKworYm9vbCBTVkdGaXRUb1ZpZXdCb3g6OnBhcnNlVmlld0JveChEb2N1bWVudCogZG9j
LCBjb25zdCBVQ2hhciomIGMsIGNvbnN0IFVDaGFyKiBlbmQsIEZsb2F0UmVjdCYgdmlld0JveCwg
Ym9vbCB2YWxpZGF0ZSkKIHsKICAgICBTdHJpbmcgc3RyKGMsIGVuZCAtIGMpOwogCiAgICAgc2tp
cE9wdGlvbmFsU3BhY2VzKGMsIGVuZCk7CiAKKyAgICBmbG9hdCB4ID0gMC4wZjsKKyAgICBmbG9h
dCB5ID0gMC4wZjsKKyAgICBmbG9hdCB3aWR0aCA9IDAuMGY7CisgICAgZmxvYXQgaGVpZ2h0ID0g
MC4wZjsKICAgICBib29sIHZhbGlkID0gKHBhcnNlTnVtYmVyKGMsIGVuZCwgeCkgJiYgcGFyc2VO
dW1iZXIoYywgZW5kLCB5KSAmJgotICAgICAgICAgIHBhcnNlTnVtYmVyKGMsIGVuZCwgdykgJiYg
cGFyc2VOdW1iZXIoYywgZW5kLCBoLCBmYWxzZSkpOwotICAgIGlmICghdmFsaWRhdGUpCisgICAg
ICAgICAgcGFyc2VOdW1iZXIoYywgZW5kLCB3aWR0aCkgJiYgcGFyc2VOdW1iZXIoYywgZW5kLCBo
ZWlnaHQsIGZhbHNlKSk7CisgICAgaWYgKCF2YWxpZGF0ZSkgeworICAgICAgICB2aWV3Qm94ID0g
RmxvYXRSZWN0KHgsIHksIHdpZHRoLCBoZWlnaHQpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CiAgICAgaWYgKCF2YWxpZCkgewogICAgICAgICBkb2MtPmFjY2Vzc1NWR0V4dGVuc2lvbnMo
KS0+cmVwb3J0V2FybmluZygiUHJvYmxlbSBwYXJzaW5nIHZpZXdCb3g9XCIiICsgc3RyICsgIlwi
Iik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBpZiAodyA8IDAuMCkgeyAv
LyBjaGVjayB0aGF0IHdpZHRoIGlzIHBvc2l0aXZlCisgICAgaWYgKHdpZHRoIDwgMC4wKSB7IC8v
IGNoZWNrIHRoYXQgd2lkdGggaXMgcG9zaXRpdmUKICAgICAgICAgZG9jLT5hY2Nlc3NTVkdFeHRl
bnNpb25zKCktPnJlcG9ydEVycm9yKCJBIG5lZ2F0aXZlIHZhbHVlIGZvciBWaWV3Qm94IHdpZHRo
IGlzIG5vdCBhbGxvd2VkIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9IGVsc2UgaWYg
KGggPCAwLjApIHsgLy8gY2hlY2sgdGhhdCBoZWlnaHQgaXMgcG9zaXRpdmUKKyAgICB9CisgICAg
aWYgKGhlaWdodCA8IDAuMCkgeyAvLyBjaGVjayB0aGF0IGhlaWdodCBpcyBwb3NpdGl2ZQogICAg
ICAgICBkb2MtPmFjY2Vzc1NWR0V4dGVuc2lvbnMoKS0+cmVwb3J0RXJyb3IoIkEgbmVnYXRpdmUg
dmFsdWUgZm9yIFZpZXdCb3ggaGVpZ2h0IGlzIG5vdCBhbGxvd2VkIik7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB9IGVsc2UgewotICAgICAgICBza2lwT3B0aW9uYWxTcGFjZXMoYywgZW5k
KTsKLSAgICAgICAgaWYgKGMgPCBlbmQpIHsgLy8gbm90aGluZyBzaG91bGQgY29tZSBhZnRlciB0
aGUgbGFzdCwgZm91cnRoIG51bWJlcgotICAgICAgICAgICAgZG9jLT5hY2Nlc3NTVkdFeHRlbnNp
b25zKCktPnJlcG9ydFdhcm5pbmcoIlByb2JsZW0gcGFyc2luZyB2aWV3Qm94PVwiIiArIHN0ciAr
ICJcIiIpOwotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICB9CisgICAgfQorICAg
IHNraXBPcHRpb25hbFNwYWNlcyhjLCBlbmQpOworICAgIGlmIChjIDwgZW5kKSB7IC8vIG5vdGhp
bmcgc2hvdWxkIGNvbWUgYWZ0ZXIgdGhlIGxhc3QsIGZvdXJ0aCBudW1iZXIKKyAgICAgICAgZG9j
LT5hY2Nlc3NTVkdFeHRlbnNpb25zKCktPnJlcG9ydFdhcm5pbmcoIlByb2JsZW0gcGFyc2luZyB2
aWV3Qm94PVwiIiArIHN0ciArICJcIiIpOworICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
CisgICAgdmlld0JveCA9IEZsb2F0UmVjdCh4LCB5LCB3aWR0aCwgaGVpZ2h0KTsKICAgICByZXR1
cm4gdHJ1ZTsKIH0KIApAQCAtODUsMTIgKzk5LDEyIEBAIEFmZmluZVRyYW5zZm9ybSBTVkdGaXRU
b1ZpZXdCb3g6OnZpZXdCb3hUb1ZpZXdUcmFuc2Zvcm0oY29uc3QgRmxvYXRSZWN0JiB2aWV3Qm94
CiBib29sIFNWR0ZpdFRvVmlld0JveDo6cGFyc2VNYXBwZWRBdHRyaWJ1dGUoRG9jdW1lbnQqIGRv
Y3VtZW50LCBBdHRyaWJ1dGUqIGF0dHIpCiB7CiAgICAgaWYgKGF0dHItPm5hbWUoKSA9PSBTVkdO
YW1lczo6dmlld0JveEF0dHIpIHsKLSAgICAgICAgZmxvYXQgeCA9IDAuMGYsIHkgPSAwLjBmLCB3
ID0gMC4wZiwgaCA9IDAuMGY7Ci0gICAgICAgIGNvbnN0IFVDaGFyKiBjID0gYXR0ci0+dmFsdWUo
KS5jaGFyYWN0ZXJzKCk7Ci0gICAgICAgIGNvbnN0IFVDaGFyKiBlbmQgPSBjICsgYXR0ci0+dmFs
dWUoKS5sZW5ndGgoKTsKLSAgICAgICAgaWYgKHBhcnNlVmlld0JveChkb2N1bWVudCwgYywgZW5k
LCB4LCB5LCB3LCBoKSkKLSAgICAgICAgICAgIHNldFZpZXdCb3hCYXNlVmFsdWUoRmxvYXRSZWN0
KHgsIHksIHcsIGgpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIEZsb2F0UmVjdCB2
aWV3Qm94OworICAgICAgICBpZiAoIWF0dHItPnZhbHVlKCkuaXNOdWxsKCkpIHsKKyAgICAgICAg
ICAgIGlmICghcGFyc2VWaWV3Qm94KGRvY3VtZW50LCBhdHRyLT52YWx1ZSgpLCB2aWV3Qm94KSkK
KyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBzZXRWaWV3
Qm94QmFzZVZhbHVlKHZpZXdCb3gpOwogICAgIH0gZWxzZSBpZiAoYXR0ci0+bmFtZSgpID09IFNW
R05hbWVzOjpwcmVzZXJ2ZUFzcGVjdFJhdGlvQXR0cikgewogICAgICAgICBTVkdQcmVzZXJ2ZUFz
cGVjdFJhdGlvOjpwYXJzZVByZXNlcnZlQXNwZWN0UmF0aW8odGhpcywgYXR0ci0+dmFsdWUoKSk7
CiAgICAgICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9zdmcvU1ZHRml0VG9W
aWV3Qm94LmggYi9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guaAppbmRleCBjNGEwZDExOGJm
YWQwMTdlNTJmOGE2YWJhNWRjZGQyYjRjMzhmZWIyLi4zMmVjYzI5MzY1Y2Q3ZTYwMTkzZmY3MzEy
Mjk5NDkwOWJjZjY5OTViIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3gu
aAorKysgYi9XZWJDb3JlL3N2Zy9TVkdGaXRUb1ZpZXdCb3guaApAQCAtMSw2ICsxLDYgQEAKIC8q
CiAgICAgQ29weXJpZ2h0IChDKSAyMDA0LCAyMDA1LCAyMDA4IE5pa29sYXMgWmltbWVybWFubiA8
emltbWVybWFubkBrZGUub3JnPgotICAgICAgICAgICAgICAgICAgMjAwNCwgMjAwNSwgMjAwNiwg
MjAwNyBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgorICAgICAgICAgICAgICAgICAgMjAwNCwgMjAw
NSwgMjAwNiwgMjAwNywgMjAxMCBSb2IgQnVpcyA8YnVpc0BrZGUub3JnPgogCiAgICAgVGhpcyBs
aWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgog
ICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwg
UHVibGljCkBAIC0zNCw3ICszNCw3IEBAIHB1YmxpYzoKICAgICBTVkdGaXRUb1ZpZXdCb3goKTsK
ICAgICB2aXJ0dWFsIH5TVkdGaXRUb1ZpZXdCb3goKTsKIAotICAgIGJvb2wgcGFyc2VWaWV3Qm94
KERvY3VtZW50KiwgY29uc3QgVUNoYXIqJiBzdGFydCwgY29uc3QgVUNoYXIqIGVuZCwgZmxvYXQm
IHgsIGZsb2F0JiB5LCBmbG9hdCYgdywgZmxvYXQmIGgsIGJvb2wgdmFsaWRhdGUgPSB0cnVlKTsK
KyAgICBib29sIHBhcnNlVmlld0JveChEb2N1bWVudCosIGNvbnN0IFVDaGFyKiYgc3RhcnQsIGNv
bnN0IFVDaGFyKiBlbmQsIEZsb2F0UmVjdCYgdmlld0JveCwgYm9vbCB2YWxpZGF0ZSA9IHRydWUp
OwogICAgIHN0YXRpYyBBZmZpbmVUcmFuc2Zvcm0gdmlld0JveFRvVmlld1RyYW5zZm9ybShjb25z
dCBGbG9hdFJlY3QmIHZpZXdCb3hSZWN0LCBjb25zdCBTVkdQcmVzZXJ2ZUFzcGVjdFJhdGlvJiwg
ZmxvYXQgdmlld1dpZHRoLCBmbG9hdCB2aWV3SGVpZ2h0KTsKIAogICAgIGJvb2wgcGFyc2VNYXBw
ZWRBdHRyaWJ1dGUoRG9jdW1lbnQqLCBBdHRyaWJ1dGUqKTsKQEAgLTQyLDYgKzQyLDkgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCB2b2lkIHNldFZpZXdCb3hCYXNlVmFsdWUoU1ZHQW5pbWF0ZWRQ
cm9wZXJ0eVRyYWl0czxGbG9hdFJlY3Q+OjpQYXNzVHlwZSkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRQcmVzZXJ2ZUFzcGVjdFJhdGlvQmFzZVZhbHVlKFNWR0FuaW1hdGVkUHJvcGVydHlUcmFp
dHM8U1ZHUHJlc2VydmVBc3BlY3RSYXRpbz46OlBhc3NUeXBlKSA9IDA7CisKK3ByaXZhdGU6Cisg
ICAgYm9vbCBwYXJzZVZpZXdCb3goRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmLCBGbG9hdFJlY3Qm
KTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1dlYkNvcmUvc3Zn
L1NWR1ZpZXdTcGVjLmNwcCBiL1dlYkNvcmUvc3ZnL1NWR1ZpZXdTcGVjLmNwcAppbmRleCA2MDhi
ZGJmMjgxMWFjYTc1MjU0ZTYzYzBiMzkwODJlNjc1NDkxODhjLi41MzE5NGE5NDE2Mzk0ZjlmODRi
MmE2ZjdkZTgxNDc2ODMyZjFlYjhlIDEwMDY0NAotLS0gYS9XZWJDb3JlL3N2Zy9TVkdWaWV3U3Bl
Yy5jcHAKKysrIGIvV2ViQ29yZS9zdmcvU1ZHVmlld1NwZWMuY3BwCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAgICBDb3B5cmlnaHQgKEMpIDIwMDcgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KKyAgICBD
b3B5cmlnaHQgKEMpIDIwMDcsIDIwMTAgUm9iIEJ1aXMgPGJ1aXNAa2RlLm9yZz4KIAogICAgIFRo
aXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQv
b3IKICAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYwpAQCAtNDgsMTQgKzQ4LDE0IEBAIHZvaWQgU1ZHVmlld1NwZWM6OnNldFRyYW5z
Zm9ybShjb25zdCBTdHJpbmcmIHRyYW5zZm9ybSkKICAgICBTVkdUcmFuc2Zvcm1hYmxlOjpwYXJz
ZVRyYW5zZm9ybUF0dHJpYnV0ZShtX3RyYW5zZm9ybS5nZXQoKSwgdHJhbnNmb3JtKTsKIH0KIAot
dm9pZCBTVkdWaWV3U3BlYzo6c2V0Vmlld0JveFN0cmluZyhjb25zdCBTdHJpbmcmIHZpZXdCb3gp
Cit2b2lkIFNWR1ZpZXdTcGVjOjpzZXRWaWV3Qm94U3RyaW5nKGNvbnN0IFN0cmluZyYgdmlld0Jv
eFN0cikKIHsKLSAgICBmbG9hdCB4LCB5LCB3LCBoOwotICAgIGNvbnN0IFVDaGFyKiBjID0gdmll
d0JveC5jaGFyYWN0ZXJzKCk7Ci0gICAgY29uc3QgVUNoYXIqIGVuZCA9IGMgKyB2aWV3Qm94Lmxl
bmd0aCgpOwotICAgIGlmICghcGFyc2VWaWV3Qm94KG1fY29udGV4dEVsZW1lbnQtPmRvY3VtZW50
KCksIGMsIGVuZCwgeCwgeSwgdywgaCwgZmFsc2UpKQotICAgICAgICByZXR1cm47Ci0gICAgc2V0
Vmlld0JveEJhc2VWYWx1ZShGbG9hdFJlY3QoeCwgeSwgdywgaCkpOworICAgIEZsb2F0UmVjdCB2
aWV3Qm94OworICAgIGNvbnN0IFVDaGFyKiBjID0gdmlld0JveFN0ci5jaGFyYWN0ZXJzKCk7Cisg
ICAgY29uc3QgVUNoYXIqIGVuZCA9IGMgKyB2aWV3Qm94U3RyLmxlbmd0aCgpOworICAgIGlmICgh
cGFyc2VWaWV3Qm94KG1fY29udGV4dEVsZW1lbnQtPmRvY3VtZW50KCksIGMsIGVuZCwgdmlld0Jv
eCwgZmFsc2UpKQorICAgICAgICAgcmV0dXJuOworICAgIHNldFZpZXdCb3hCYXNlVmFsdWUodmll
d0JveCk7CiB9CiAKIHZvaWQgU1ZHVmlld1NwZWM6OnNldFByZXNlcnZlQXNwZWN0UmF0aW9TdHJp
bmcoY29uc3QgU3RyaW5nJiBwcmVzZXJ2ZSkKQEAgLTEwMSwxMCArMTAxLDEwIEBAIGJvb2wgU1ZH
Vmlld1NwZWM6OnBhcnNlVmlld1NwZWMoY29uc3QgU3RyaW5nJiB2aWV3U3BlYykKICAgICAgICAg
ICAgICAgICBpZiAoY3VyclZpZXdTcGVjID49IGVuZCB8fCAqY3VyclZpZXdTcGVjICE9ICcoJykK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIGN1cnJW
aWV3U3BlYysrOwotICAgICAgICAgICAgICAgIGZsb2F0IHgsIHksIHcsIGg7Ci0gICAgICAgICAg
ICAgICAgaWYgKCFwYXJzZVZpZXdCb3gobV9jb250ZXh0RWxlbWVudC0+ZG9jdW1lbnQoKSwgY3Vy
clZpZXdTcGVjLCBlbmQsIHgsIHksIHcsIGgsIGZhbHNlKSkKKyAgICAgICAgICAgICAgICBGbG9h
dFJlY3Qgdmlld0JveDsKKyAgICAgICAgICAgICAgICBpZiAoIXBhcnNlVmlld0JveChtX2NvbnRl
eHRFbGVtZW50LT5kb2N1bWVudCgpLCBjdXJyVmlld1NwZWMsIGVuZCwgdmlld0JveCwgZmFsc2Up
KQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgICAgICAgICAgc2V0
Vmlld0JveEJhc2VWYWx1ZShGbG9hdFJlY3QoeCwgeSwgdywgaCkpOworICAgICAgICAgICAgICAg
IHNldFZpZXdCb3hCYXNlVmFsdWUodmlld0JveCk7CiAgICAgICAgICAgICAgICAgaWYgKGN1cnJW
aWV3U3BlYyA+PSBlbmQgfHwgKmN1cnJWaWV3U3BlYyAhPSAnKScpCiAgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICBjdXJyVmlld1NwZWMrKzsK
</data>

          </attachment>
      

    </bug>

</bugzilla>