<?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>53767</bug_id>
          
          <creation_ts>2011-02-04 07:33:29 -0800</creation_ts>
          <short_desc>SVG &lt;use&gt; element is not repositioned when moved to x=0 y=0 through script</short_desc>
          <delta_ts>2011-07-24 13:11:36 -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>PC</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Alexis Deveria">adeveria</reporter>
          <assigned_to name="Rob Buis">rwlbuis</assigned_to>
          <cc>emumonger</cc>
    
    <cc>jeffschiller</cc>
    
    <cc>marc.bernard</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>345481</commentid>
    <comment_count>0</comment_count>
    <who name="Alexis Deveria">adeveria</who>
    <bug_when>2011-02-04 07:33:29 -0800</bug_when>
    <thetext>SVG &lt;use&gt; elements will appear with x=&quot;0&quot; y=&quot;0&quot; statically and can moved using any other values in JS, but exactly x=0 and y=0 results in no visual difference. Same problem when removing both x and y attributes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345482</commentid>
    <comment_count>1</comment_count>
      <attachid>81217</attachid>
    <who name="Alexis Deveria">adeveria</who>
    <bug_when>2011-02-04 07:35:07 -0800</bug_when>
    <thetext>Created attachment 81217
Example of the problem, the green rect should cover the red one after one second.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441305</commentid>
    <comment_count>2</comment_count>
      <attachid>101798</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-07-22 18:09:17 -0700</bug_when>
    <thetext>Created attachment 101798
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441344</commentid>
    <comment_count>3</comment_count>
      <attachid>101798</attachid>
    <who name="Dirk Schulze">krit</who>
    <bug_when>2011-07-22 22:29:40 -0700</bug_when>
    <thetext>Comment on attachment 101798
Patch

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

&gt; Source/WebCore/rendering/svg/SVGShadowTreeElements.cpp:53
&gt; +    m_yOffset = y;
&gt; +    if (renderer())
&gt; +        static_cast&lt;RenderSVGTransformableContainer*&gt;(renderer())-&gt;setNeedsTransformUpdate();

Si it is not only 0,0 affected but every other position as well? Because according your patch I don&apos;t see a reason why just 0,0 should be affected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441350</commentid>
    <comment_count>4</comment_count>
      <attachid>101798</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-07-22 23:37:59 -0700</bug_when>
    <thetext>Comment on attachment 101798
Patch

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

&gt;&gt; Source/WebCore/rendering/svg/SVGShadowTreeElements.cpp:53
&gt;&gt; +        static_cast&lt;RenderSVGTransformableContainer*&gt;(renderer())-&gt;setNeedsTransformUpdate();
&gt; 
&gt; Si it is not only 0,0 affected but every other position as well? Because according your patch I don&apos;t see a reason why just 0,0 should be affected.

The more interessting question is why would you need a &quot;transform update&quot; if transform did not change?

Note that RenderSVGShadowTreeRootContainer inherits from RenderSVGTransformableContainer, and
bool RenderSVGTransformableContainer::calculateLocalTransform()

contains special code to apply the container offset to the local transform. This should work even _without_ touching setNeedsTransformUpdate.
If it doesn&apos;t there&apos;s another bug that you&apos;re hiding by this workaround.

r- for this reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441352</commentid>
    <comment_count>5</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-07-22 23:41:51 -0700</bug_when>
    <thetext>Good point Dirk - why is only x/y=0 affected.
Here&apos;s the answer:

bool RenderSVGTransformableContainer::calculateLocalTransform()
{
    SVGStyledTransformableElement* element = static_cast&lt;SVGStyledTransformableElement*&gt;(node());
......

    FloatSize translation = static_cast&lt;SVGShadowTreeContainerElement*&gt;(element)-&gt;containerTranslation();
    if (!translation.width() &amp;&amp; !translation.height())
        return needsUpdate;

if translation width/height (corresponds to x/y) is 0 we&apos;ll ignore updating the transform.
We need to store the previous translation, and compare it with the current translation, if they are equal just &quot;return needsUpdate&quot; otherwhise go on....

That explains why only x=0&amp;&amp;y=0 failed here, and avoids the setNeedsTransformUpdate hack from your current patch...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441372</commentid>
    <comment_count>6</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-07-23 05:32:28 -0700</bug_when>
    <thetext>Hi guys,

(In reply to comment #5)
&gt; Good point Dirk - why is only x/y=0 affected.
&gt; Here&apos;s the answer:
&gt; 
&gt; bool RenderSVGTransformableContainer::calculateLocalTransform()
&gt; {
&gt;     SVGStyledTransformableElement* element = static_cast&lt;SVGStyledTransformableElement*&gt;(node());
&gt; ......
&gt; 
&gt;     FloatSize translation = static_cast&lt;SVGShadowTreeContainerElement*&gt;(element)-&gt;containerTranslation();
&gt;     if (!translation.width() &amp;&amp; !translation.height())
&gt;         return needsUpdate;
&gt; 
&gt; if translation width/height (corresponds to x/y) is 0 we&apos;ll ignore updating the transform.
&gt; We need to store the previous translation, and compare it with the current translation, if they are equal just &quot;return needsUpdate&quot; otherwhise go on....
&gt; 
&gt; That explains why only x=0&amp;&amp;y=0 failed here, and avoids the setNeedsTransformUpdate hack from your current patch...

Was just about to hint at the same code (just woken up) :)
Will have a look at it again.
Cheers,

Rob.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441396</commentid>
    <comment_count>7</comment_count>
      <attachid>101814</attachid>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-07-23 09:45:15 -0700</bug_when>
    <thetext>Created attachment 101814
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441439</commentid>
    <comment_count>8</comment_count>
      <attachid>101814</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-07-24 02:44:50 -0700</bug_when>
    <thetext>Comment on attachment 101814
Patch

Excellent patch, r=me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>441482</commentid>
    <comment_count>9</comment_count>
    <who name="Rob Buis">rwlbuis</who>
    <bug_when>2011-07-24 13:11:36 -0700</bug_when>
    <thetext>Landed in r91644.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>81217</attachid>
            <date>2011-02-04 07:35:07 -0800</date>
            <delta_ts>2011-02-04 07:35:07 -0800</delta_ts>
            <desc>Example of the problem, the green rect should cover the red one after one second.</desc>
            <filename>use_bug.svg</filename>
            <type>image/svg+xml</type>
            <size>797</size>
            <attacher name="Alexis Deveria">adeveria</attacher>
            
              <data encoding="base64">PHN2ZyB3aWR0aD0iNjQwIiBoZWlnaHQ9IjQ4MCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIw
MDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayI+CiAgPGRl
ZnM+CiAgIDxyZWN0IGlkPSJyMSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiB4PSIwIiB5PSIwIiBm
aWxsPSJsaW1lIi8+CiAgPC9kZWZzPgogIDxyZWN0IGlkPSJyMiIgd2lkdGg9IjUwIiBoZWlnaHQ9
IjUwIiB4PSIwIiB5PSIwIiBmaWxsPSJyZWQiLz4KICA8dXNlIHhsaW5rOmhyZWY9IiNyMSIgeD0i
NTAiIHk9IjUwIiBpZD0idXNlMSIvPgogIDx0ZXh0IHg9IjUwIiB5PSIxMjAiLz4KPHNjcmlwdD4K
d2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7Cgl2YXIgdSA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoJyN1c2UxJyk7CgkKCS8vIEJ1ZyBvbmx5IG9jY3VycyB3aGVuIEJPVEggeCBhbmQgeSBh
cmUgZXhhY3RseSAwLgoJdS5zZXRBdHRyaWJ1dGUoJ3gnLCAwKTsKCXUuc2V0QXR0cmlidXRlKCd5
JywgMCk7CgoJLy8gU2FtZSBlZmZlY3Q6Ci8vIAl1LnguYmFzZVZhbC52YWx1ZSA9IDA7Ci8vIAl1
LnkuYmFzZVZhbC52YWx1ZSA9IDA7CgoJLy8gU2FtZSBlZmZlY3Q6Ci8vIAl1LnJlbW92ZUF0dHJp
YnV0ZSgneCcpOwovLyAJdS5yZW1vdmVBdHRyaWJ1dGUoJ3knKTsKCglkb2N1bWVudC5xdWVyeVNl
bGVjdG9yKCd0ZXh0JykudGV4dENvbnRlbnQgPSAnVGhlIHJlZCBzcXVhcmUgc2hvdWxkIG5vdyBi
ZSBjb3ZlcmVkIGJ5IHRoZSBncmVlbiBvbmUnOwp9LCAxMDAwKTsKPC9zY3JpcHQ+Cgo8L3N2Zz4=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101798</attachid>
            <date>2011-07-22 18:09:17 -0700</date>
            <delta_ts>2011-07-23 09:45:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53767-20110722210917.patch</filename>
            <type>text/plain</type>
            <size>7595</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTE1NzIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNmIyM2YxZDc1NWI3M2YyMjJlY2Mz
MDdiZGFkZTQyMTViZWU1ZmUzLi4xN2EwMDJjMWQ0YWY3OWRlNjlhMDFmZWY0MjA5YzI5NjQwMWQ5
MmYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDctMjIgIFJvYiBCdWlzICA8cmJ1aXNA
cmltLmNvbT4KKworICAgICAgICBTVkcgPHVzZT4gZWxlbWVudCBpcyBub3QgcmVwb3NpdGlvbmVk
IHdoZW4gbW92ZWQgdG8geD0wIHk9MCB0aHJvdWdoIHNjcmlwdCAKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzNzY3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdmcvY3VzdG9tL3VzZS1tb3ZlLXRvLW9m
ZnNldC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vdXNlLW1vdmUt
dG8tb2Zmc2V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS91c2Ut
bW92ZS10by1vZmZzZXQuc3ZnOiBBZGRlZC4KKwogMjAxMS0wNy0yMiAgQW5kcmV5IEtvc3lha292
ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtFeHRlbnNp
b25zIEFQSV0gYWRkIHdlYkluc3BlY3Rvci5yZXNvdXJjZXMub25Db250ZW50RWRpdGVkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VzZS1tb3ZlLXRvLW9mZnNldC1leHBlY3Rl
ZC5wbmcgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VzZS1tb3ZlLXRvLW9mZnNldC1leHBlY3Rl
ZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uN2NmMmQwMDYwOWUzZTE3MjdlZmZkNDcwMTc1YjdlZDdhNzA1NWE2
MQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTEzNDAKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5
fnlVeyt2WVYyYT5pMUIlUWxZYnBSem5rQjlnQ0NNNDckPVN1RnhlVnMhCno3OFZBXkRRTzBZN0Rn
dGlESGRyKSQ+dTMoaTNhQSRyZStxI015Vk98X3BTayZAR2pIWUlsJEF8U3N8YihLUEB2Uwp6bTRU
c3h1e0dwO3d5PmtmS2VOMSo3bkNAbnZpVVl1T2k9UVNUJUY7MSNxNihPUVp+PFJgRTlOZlFqOSZY
PChhKkgKenI/eiF6JENGMUZ3ZUdwVFVDOTJ3TDlYZ1Vpb1JFQ2wmaStRKWYhMCkjZFNaUCZHWHJ8
XndvaUxiKVdCPHpwdT9OCnp5VSlOfGJqanB2MUlyV008M1dvQUdqblIzdmlAezFeZXk2YUcqSnpg
e2wtcykmOVMtb1haNzxOUnM0PDdWVFlASwp6bXYxVXhKTH1UNlM/biE7OVVpI1B4fmE5e3k/N3k0
cSEzZXcmSGFVJSQ0Zlp3S2Zkd2xPfjBqSVd5UWcqe014b2gKekI5Jj8hT20peElgfGIhbnQ5c2Q/
Kn40UFcqVE52WElvRz9WVCRnM2YldTczVkxTVjF8Z2tgKFd5anp7TGFFeytNCnp6NnBFaGV5UWBA
ZTkhS1g7dnNJeXdmMWcxZGdwIVp4b1pDP0AhXnRaTjdgJjxCdXV+ak5EJHBGd2VwQVFBKDQwaQp6
VS1kO0hnKld3aEtoOVk5SHwmI0ZRXjVwX1F6P2xKI1pleXEqTTBKUz59cUdOUmw2Pnt7IXd7WTtL
UnkoO3EtZX4Kej8hSUB1I2tBZ2xQbkppRFhCTXdWZlBnRFk7KjFSZTRzQUE0aDk7WWU/M0d1dU5s
JmdlRHBrcWFVNlNPbyhYcmE+CnpqX3ZscUMza0s5WCgkeT1hbyktPz41dDwtdEBTN1VwSH1gbjlr
YnleKiFMLUdYVjJSOD40RWpwciEjai0kejh2RQp6OyZIS1dUK1AlZ1dzfTMqcj4mezErQjU1b2w+
TTlWPjR3am1PIzY9JVp9fE9ESC03NHc+NiQkdk08MGlOZSZ5WCMKejhmOXBIZXx9RUF3ZTJJbF5M
a3NhNnxlMj1IVj5PVUpeZ1ElJE0xS21fRHBeamBxTXd8PiZITG9YT0FSNShsa15uCno+dzIhKElz
S15LJDROSzVTOTNvfiRVVis2Y1dSc0ZyUUNfWFJJVmxAJS1adStLaHszRlZ5fDAwJikye3lsNG1a
Mwp6YmJoWnRxP0tZYWNQQyV8dW0wUHx8QTteTi10fk9HMjl0aXlnQSs0JTxwdmtON2coNk9HX1FD
YWxsY0NOd0k4PFMKeldpUEk/X2A/IW12cyFGemttLURkSiZaREM/TnhGd0ctcTYlSHRub3NQYGwz
aiQtNz5qTih3cD9hTjlYMz0oXzZsCnpSQnk0KEdlZVZKbWZlX25TdkY1KnB7M0xKQmc/JX5DO3dY
aVFFPGNHNE05SkR0X2l3WD1PPVpvYXImP1AxQUczdQp6OTtvUTxXTUVLV0BOe3R1c2JHQTIoPWc4
fFA9TGtwIV9sfDE+eCYhYnUzJkNicz9xS1o1WnFkXnw2a25zKTZjVjYKej1FZDZ8enkzI0o5fHQy
NzN4fE0kTHhZM2Zoc3BYPERoPj97RnAmZF8zSiFiez1PTk55KEp4RilPVSQ9PWo0QnhvCno3WiM0
dSF+bmBScW5UdjFXRWQ/bTJUd0tlcTBWbXA8N1lHQlEzN1BGWV5aayNAPUhkbCQ4O0RPSDxqRTBT
OT1oSgp6OTtfQExyIXNwR3gqQW0jOUgjWTIhPlU1Q0RHWipMeUBKM2o0Xl8yK2gyX01oTFM7RExL
fHhlTkwzNm53dl8xdT8Kem4lMk0mWF9iZCRAZShFYG04VHxkRmU4QSlobWU0Ul93aW1OaSRmZTVt
ZHJWWjxoQlNWcmooYUVrU3cwUyNXNypaCnpXZUZzPWN7Pz1kJGVKVHI5S15edHNZblhSWjMmemw2
UDcra3ZlLWRPVktoKWkxQkdRWXI3JHYkVyo+I29HS0U4Ngp6dzRoflo5SWJzdXQ3S3ExVnppd3kr
SVIhQFpid19SMHQlemVkezdUK3dDXis4QXJ1KHhDOWBtaDRqblglNGpte3MKempFPCk7alNkfEVO
OXsoMzRufkkjZmFBTlBMa0ZXbjJjWEhvITchUlhYTU5DQTFfcThCcHRTJnlpSDZaTyVWP1ZnCnoq
cWF9MXZ5OFNgS24yMlJuYE59a0dUTFNWUDJgVkdjTU9zPzMtUnJnNUJ5MH1kNncleEtCKXArOT9h
bkI+Z1RlfgpIRFdNNGZ4VXU3TgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS91c2UtbW92ZS10by1vZmZzZXQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS91c2UtbW92ZS10by1vZmZzZXQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjcxNzkxYjBlZDk1ZDk2ZjA0NmYyODUwYmFkZDE5ZmJhNjhjNTkwZTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VzZS1tb3ZlLXRvLW9mZnNldC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
KyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAorICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgMTAweDEwMAorICAg
IFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAg
IFJlbmRlclNWR1BhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0xMDAuMDBd
IFtoZWlnaHQ9MTAwLjAwXQorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMCwwKSBz
aXplIDEwMHgxMDAKKyAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDAsMCkgc2l6ZSAx
MDB4MTAwCisgICAgICAgIFJlbmRlclNWR1BhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgMTAweDEw
MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBd
IFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAwXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3ZnL2N1c3RvbS91c2UtbW92ZS10by1vZmZzZXQuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3Rv
bS91c2UtbW92ZS10by1vZmZzZXQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5MjA1NzViNjdiOWMwYTZmMWY5
OGEyMjI5MzJhMmMzMTE1ZjdiMTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL3VzZS1tb3ZlLXRvLW9mZnNldC5zdmcKQEAgLTAsMCArMSwyMiBAQAorPHN2ZyB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hsaW5rIiBvbmxvYWQ9InJ1blRlc3QoKSI+CisgIDxkZWZzPgorICAgIDxyZWN0
IGlkPSJyMSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImdyZWVuIi8+CisgIDwvZGVm
cz4KKyAgPHVzZSB4bGluazpocmVmPSIjcjEiIHg9IjUwIiBpZD0idXNlMSIgb25jbGljaz0icmVz
ZXQoKSIvPgorICA8c2NyaXB0PgorICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKDEwMCwgNTApOworICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgICB9CisgICAgICBmdW5jdGlvbiByZXNldCgp
IHsKKyAgICAgICAgdmFyIHUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdXNlMScpOworICAg
ICAgICB1LnNldEF0dHJpYnV0ZSgneCcsIDApOworICAgICAgICB1LnNldEF0dHJpYnV0ZSgneScs
IDApOworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgfQorICA8L3Njcmlw
dD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGIwNzA3YjNiNzg0MDNhMTE1MmFhMmU2MTllODY2NDc4
Y2JhMTBmMmUuLmVjNDQxYTk5ZDQ4ZTIwNjljZWUwNGRjNjNmOWY3NDBmMzI0MTFiYTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0wNy0yMiAgUm9iIEJ1aXMgIDxyYnVpc0ByaW0u
Y29tPgorCisgICAgICAgIFNWRyA8dXNlPiBlbGVtZW50IGlzIG5vdCByZXBvc2l0aW9uZWQgd2hl
biBtb3ZlZCB0byB4PTAgeT0wIHRocm91Z2ggc2NyaXB0IAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHN1cmUgcmVuZGVyZXIgd2lsbCB1cGRhdGUg
bG9jYWwgdHJhbnNmb3JtIGluZm9ybWF0aW9uIHdoZW4gY2FsbGluZyBzZXRDb250YWluZXJPZmZz
ZXQuCisKKyAgICAgICAgVGVzdDogc3ZnL2N1c3RvbS91c2UtbW92ZS10by1vZmZzZXQuc3ZnCisK
KyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1NoYWRvd1RyZWVFbGVtZW50cy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdTaGFkb3dUcmVlQ29udGFpbmVyRWxlbWVudDo6c2V0Q29udGFpbmVy
T2Zmc2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1NWR1NoYWRvd1RyZWVFbGVtZW50cy5o
OgorCiAyMDExLTA3LTIyICBEYXZpZCBHcm9nYW4gIDxkZ3JvZ2FuQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBGaXggY3Jhc2ggaW4gSURCUmVxdWVzdDo6YWJvcnQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHU2hhZG93VHJlZUVsZW1lbnRzLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHU2hhZG93VHJlZUVsZW1lbnRzLmNwcAppbmRleCA2
OThkMTgzZDRiNzM3NWZmOGJhZmVhOTA1M2IxY2NlODhhMzdhYjE0Li44ZGIxMzY2OTQ4YTlhODAz
ZjllZjk0ZGNkMDI1OWI0MWJiNDljZWE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3ZnL1NWR1NoYWRvd1RyZWVFbGVtZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9TVkdTaGFkb3dUcmVlRWxlbWVudHMuY3BwCkBAIC0yNSw2ICsyNSw3IEBA
CiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGbG9hdFNpemUuaCIKICNpbmNsdWRl
ICJSZW5kZXJPYmplY3QuaCIKKyNpbmNsdWRlICJSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFp
bmVyLmgiCiAjaW5jbHVkZSAiU1ZHTmFtZXMuaCIKICNpbmNsdWRlICJTVkdVc2VFbGVtZW50Lmgi
CiAKQEAgLTQyLDYgKzQzLDE2IEBAIFBhc3NSZWZQdHI8U1ZHU2hhZG93VHJlZUNvbnRhaW5lckVs
ZW1lbnQ+IFNWR1NoYWRvd1RyZWVDb250YWluZXJFbGVtZW50OjpjcmVhdGUoCiAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBTVkdTaGFkb3dUcmVlQ29udGFpbmVyRWxlbWVudChkb2N1bWVudCkpOwog
fQogCit2b2lkIFNWR1NoYWRvd1RyZWVDb250YWluZXJFbGVtZW50OjpzZXRDb250YWluZXJPZmZz
ZXQoY29uc3QgU1ZHTGVuZ3RoJiB4LCBjb25zdCBTVkdMZW5ndGgmIHkpCit7CisgICAgaWYgKHgg
PT0gbV94T2Zmc2V0ICYmIHkgPT0gbV95T2Zmc2V0KQorICAgICAgICByZXR1cm47CisgICAgbV94
T2Zmc2V0ID0geDsKKyAgICBtX3lPZmZzZXQgPSB5OworICAgIGlmIChyZW5kZXJlcigpKQorICAg
ICAgICBzdGF0aWNfY2FzdDxSZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyKj4ocmVuZGVy
ZXIoKSktPnNldE5lZWRzVHJhbnNmb3JtVXBkYXRlKCk7Cit9CisKIEZsb2F0U2l6ZSBTVkdTaGFk
b3dUcmVlQ29udGFpbmVyRWxlbWVudDo6Y29udGFpbmVyVHJhbnNsYXRpb24oKSBjb25zdAogewog
ICAgIHJldHVybiBGbG9hdFNpemUobV94T2Zmc2V0LnZhbHVlKHRoaXMpLCBtX3lPZmZzZXQudmFs
dWUodGhpcykpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdT
aGFkb3dUcmVlRWxlbWVudHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHU2hh
ZG93VHJlZUVsZW1lbnRzLmgKaW5kZXggMDJkZWZlZTFlOTY5ODQxYjQyZTZhOTBiYWU5MDUyMzhm
OWU4OTQwZi4uMTVjNTUxNjM0OTlkYTA4ZDk2YzliNWYzMGQwOGEwMzdhM2YxMzE5MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdTaGFkb3dUcmVlRWxlbWVudHMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1NoYWRvd1RyZWVFbGVtZW50
cy5oCkBAIC0zNCwxMSArMzQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U1ZH
U2hhZG93VHJlZUNvbnRhaW5lckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwogCiAgICAgRmxv
YXRTaXplIGNvbnRhaW5lclRyYW5zbGF0aW9uKCkgY29uc3Q7Ci0gICAgdm9pZCBzZXRDb250YWlu
ZXJPZmZzZXQoY29uc3QgU1ZHTGVuZ3RoJiB4LCBjb25zdCBTVkdMZW5ndGgmIHkpCi0gICAgewot
ICAgICAgICBtX3hPZmZzZXQgPSB4OwotICAgICAgICBtX3lPZmZzZXQgPSB5OwotICAgIH0KKyAg
ICB2b2lkIHNldENvbnRhaW5lck9mZnNldChjb25zdCBTVkdMZW5ndGgmIHgsIGNvbnN0IFNWR0xl
bmd0aCYgeSk7CiAKIHByb3RlY3RlZDoKICAgICBTVkdTaGFkb3dUcmVlQ29udGFpbmVyRWxlbWVu
dChEb2N1bWVudCopOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>101814</attachid>
            <date>2011-07-23 09:45:15 -0700</date>
            <delta_ts>2011-07-24 02:44:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-53767-20110723124514.patch</filename>
            <type>text/plain</type>
            <size>9938</size>
            <attacher name="Rob Buis">rwlbuis</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTE1NzIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxNmIyM2YxZDc1NWI3M2YyMjJlY2Mz
MDdiZGFkZTQyMTViZWU1ZmUzLi5lZmJlYzc2MzUwYmYyZGI4MmJjNWUwOWFkY2Q2ZDljYjc5Nzhm
YThmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTEtMDctMjMgIFJvYiBCdWlzICA8cmJ1aXNA
cmltLmNvbT4KKworICAgICAgICBTVkcgPHVzZT4gZWxlbWVudCBpcyBub3QgcmVwb3NpdGlvbmVk
IHdoZW4gbW92ZWQgdG8geD0wIHk9MCB0aHJvdWdoIHNjcmlwdCAKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUzNzY3CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdmcvY3VzdG9tL3VzZS1tb3ZlLXRvLW9m
ZnNldC1leHBlY3RlZC5wbmc6IEFkZGVkLgorICAgICAgICAqIHN2Zy9jdXN0b20vdXNlLW1vdmUt
dG8tb2Zmc2V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3ZnL2N1c3RvbS91c2Ut
bW92ZS10by1vZmZzZXQuc3ZnOiBBZGRlZC4KKwogMjAxMS0wNy0yMiAgQW5kcmV5IEtvc3lha292
ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtFeHRlbnNp
b25zIEFQSV0gYWRkIHdlYkluc3BlY3Rvci5yZXNvdXJjZXMub25Db250ZW50RWRpdGVkCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VzZS1tb3ZlLXRvLW9mZnNldC1leHBlY3Rl
ZC5wbmcgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VzZS1tb3ZlLXRvLW9mZnNldC1leHBlY3Rl
ZC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uN2NmMmQwMDYwOWUzZTE3MjdlZmZkNDcwMTc1YjdlZDdhNzA1NWE2
MQpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTEzNDAKemNtZUFTQE4/KG9sSHlgdVZCcSFpYTB5
fnlVeyt2WVYyYT5pMUIlUWxZYnBSem5rQjlnQ0NNNDckPVN1RnhlVnMhCno3OFZBXkRRTzBZN0Rn
dGlESGRyKSQ+dTMoaTNhQSRyZStxI015Vk98X3BTayZAR2pIWUlsJEF8U3N8YihLUEB2Uwp6bTRU
c3h1e0dwO3d5PmtmS2VOMSo3bkNAbnZpVVl1T2k9UVNUJUY7MSNxNihPUVp+PFJgRTlOZlFqOSZY
PChhKkgKenI/eiF6JENGMUZ3ZUdwVFVDOTJ3TDlYZ1Vpb1JFQ2wmaStRKWYhMCkjZFNaUCZHWHJ8
XndvaUxiKVdCPHpwdT9OCnp5VSlOfGJqanB2MUlyV008M1dvQUdqblIzdmlAezFeZXk2YUcqSnpg
e2wtcykmOVMtb1haNzxOUnM0PDdWVFlASwp6bXYxVXhKTH1UNlM/biE7OVVpI1B4fmE5e3k/N3k0
cSEzZXcmSGFVJSQ0Zlp3S2Zkd2xPfjBqSVd5UWcqe014b2gKekI5Jj8hT20peElgfGIhbnQ5c2Q/
Kn40UFcqVE52WElvRz9WVCRnM2YldTczVkxTVjF8Z2tgKFd5anp7TGFFeytNCnp6NnBFaGV5UWBA
ZTkhS1g7dnNJeXdmMWcxZGdwIVp4b1pDP0AhXnRaTjdgJjxCdXV+ak5EJHBGd2VwQVFBKDQwaQp6
VS1kO0hnKld3aEtoOVk5SHwmI0ZRXjVwX1F6P2xKI1pleXEqTTBKUz59cUdOUmw2Pnt7IXd7WTtL
UnkoO3EtZX4Kej8hSUB1I2tBZ2xQbkppRFhCTXdWZlBnRFk7KjFSZTRzQUE0aDk7WWU/M0d1dU5s
JmdlRHBrcWFVNlNPbyhYcmE+CnpqX3ZscUMza0s5WCgkeT1hbyktPz41dDwtdEBTN1VwSH1gbjlr
YnleKiFMLUdYVjJSOD40RWpwciEjai0kejh2RQp6OyZIS1dUK1AlZ1dzfTMqcj4mezErQjU1b2w+
TTlWPjR3am1PIzY9JVp9fE9ESC03NHc+NiQkdk08MGlOZSZ5WCMKejhmOXBIZXx9RUF3ZTJJbF5M
a3NhNnxlMj1IVj5PVUpeZ1ElJE0xS21fRHBeamBxTXd8PiZITG9YT0FSNShsa15uCno+dzIhKElz
S15LJDROSzVTOTNvfiRVVis2Y1dSc0ZyUUNfWFJJVmxAJS1adStLaHszRlZ5fDAwJikye3lsNG1a
Mwp6YmJoWnRxP0tZYWNQQyV8dW0wUHx8QTteTi10fk9HMjl0aXlnQSs0JTxwdmtON2coNk9HX1FD
YWxsY0NOd0k4PFMKeldpUEk/X2A/IW12cyFGemttLURkSiZaREM/TnhGd0ctcTYlSHRub3NQYGwz
aiQtNz5qTih3cD9hTjlYMz0oXzZsCnpSQnk0KEdlZVZKbWZlX25TdkY1KnB7M0xKQmc/JX5DO3dY
aVFFPGNHNE05SkR0X2l3WD1PPVpvYXImP1AxQUczdQp6OTtvUTxXTUVLV0BOe3R1c2JHQTIoPWc4
fFA9TGtwIV9sfDE+eCYhYnUzJkNicz9xS1o1WnFkXnw2a25zKTZjVjYKej1FZDZ8enkzI0o5fHQy
NzN4fE0kTHhZM2Zoc3BYPERoPj97RnAmZF8zSiFiez1PTk55KEp4RilPVSQ9PWo0QnhvCno3WiM0
dSF+bmBScW5UdjFXRWQ/bTJUd0tlcTBWbXA8N1lHQlEzN1BGWV5aayNAPUhkbCQ4O0RPSDxqRTBT
OT1oSgp6OTtfQExyIXNwR3gqQW0jOUgjWTIhPlU1Q0RHWipMeUBKM2o0Xl8yK2gyX01oTFM7RExL
fHhlTkwzNm53dl8xdT8Kem4lMk0mWF9iZCRAZShFYG04VHxkRmU4QSlobWU0Ul93aW1OaSRmZTVt
ZHJWWjxoQlNWcmooYUVrU3cwUyNXNypaCnpXZUZzPWN7Pz1kJGVKVHI5S15edHNZblhSWjMmemw2
UDcra3ZlLWRPVktoKWkxQkdRWXI3JHYkVyo+I29HS0U4Ngp6dzRoflo5SWJzdXQ3S3ExVnppd3kr
SVIhQFpid19SMHQlemVkezdUK3dDXis4QXJ1KHhDOWBtaDRqblglNGpte3MKempFPCk7alNkfEVO
OXsoMzRufkkjZmFBTlBMa0ZXbjJjWEhvITchUlhYTU5DQTFfcThCcHRTJnlpSDZaTyVWP1ZnCnoq
cWF9MXZ5OFNgS24yMlJuYE59a0dUTFNWUDJgVkdjTU9zPzMtUnJnNUJ5MH1kNncleEtCKXArOT9h
bkI+Z1RlfgpIRFdNNGZ4VXU3TgoKbGl0ZXJhbCAwCkhjbVY/ZDAwMDAxCgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS91c2UtbW92ZS10by1vZmZzZXQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3ZnL2N1c3RvbS91c2UtbW92ZS10by1vZmZzZXQtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjcxNzkxYjBlZDk1ZDk2ZjA0NmYyODUwYmFkZDE5ZmJhNjhjNTkwZTYKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcvY3VzdG9tL3VzZS1tb3ZlLXRvLW9mZnNldC1l
eHBlY3RlZC50eHQKQEAgLTAsMCArMSw5IEBACitsYXllciBhdCAoMCwwKSBzaXplIDgwMHg2MDAK
KyAgUmVuZGVyVmlldyBhdCAoMCwwKSBzaXplIDgwMHg2MDAKK2xheWVyIGF0ICgwLDApIHNpemUg
ODAweDYwMAorICBSZW5kZXJTVkdSb290IHtzdmd9IGF0ICgwLDApIHNpemUgMTAweDEwMAorICAg
IFJlbmRlclNWR0hpZGRlbkNvbnRhaW5lciB7ZGVmc30gYXQgKDAsMCkgc2l6ZSAweDAKKyAgICAg
IFJlbmRlclNWR1BhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgMTAweDEwMCBbZmlsbD17W3R5cGU9
U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBdIFt3aWR0aD0xMDAuMDBd
IFtoZWlnaHQ9MTAwLjAwXQorICAgIFJlbmRlclNWR0NvbnRhaW5lciB7dXNlfSBhdCAoMCwwKSBz
aXplIDEwMHgxMDAKKyAgICAgIFJlbmRlclNWR0NvbnRhaW5lciB7Z30gYXQgKDAsMCkgc2l6ZSAx
MDB4MTAwCisgICAgICAgIFJlbmRlclNWR1BhdGgge3JlY3R9IGF0ICgwLDApIHNpemUgMTAweDEw
MCBbZmlsbD17W3R5cGU9U09MSURdIFtjb2xvcj0jMDA4MDAwXX1dIFt4PTAuMDBdIFt5PTAuMDBd
IFt3aWR0aD0xMDAuMDBdIFtoZWlnaHQ9MTAwLjAwXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3ZnL2N1c3RvbS91c2UtbW92ZS10by1vZmZzZXQuc3ZnIGIvTGF5b3V0VGVzdHMvc3ZnL2N1c3Rv
bS91c2UtbW92ZS10by1vZmZzZXQuc3ZnCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM5MjA1NzViNjdiOWMwYTZmMWY5
OGEyMjI5MzJhMmMzMTE1ZjdiMTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdmcv
Y3VzdG9tL3VzZS1tb3ZlLXRvLW9mZnNldC5zdmcKQEAgLTAsMCArMSwyMiBAQAorPHN2ZyB4bWxu
cz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3Lncz
Lm9yZy8xOTk5L3hsaW5rIiBvbmxvYWQ9InJ1blRlc3QoKSI+CisgIDxkZWZzPgorICAgIDxyZWN0
IGlkPSJyMSIgd2lkdGg9IjEwMCIgaGVpZ2h0PSIxMDAiIGZpbGw9ImdyZWVuIi8+CisgIDwvZGVm
cz4KKyAgPHVzZSB4bGluazpocmVmPSIjcjEiIHg9IjUwIiBpZD0idXNlMSIgb25jbGljaz0icmVz
ZXQoKSIvPgorICA8c2NyaXB0PgorICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKDEwMCwgNTApOworICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisgICAgICB9CisgICAgICBmdW5jdGlvbiByZXNldCgp
IHsKKyAgICAgICAgdmFyIHUgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCcjdXNlMScpOworICAg
ICAgICB1LnNldEF0dHJpYnV0ZSgneCcsIDApOworICAgICAgICB1LnNldEF0dHJpYnV0ZSgneScs
IDApOworICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgfQorICA8L3Njcmlw
dD4KKzwvc3ZnPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGIwNzA3YjNiNzg0MDNhMTE1MmFhMmU2MTllODY2NDc4
Y2JhMTBmMmUuLjE5MjZhYjMzNDc5YjAzYjc0Nzc2ZTI1OTM5YmEyNTdjMjkyY2QwYTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxMS0wNy0yMyAgUm9iIEJ1aXMgIDxyYnVpc0ByaW0u
Y29tPgorCisgICAgICAgIFNWRyA8dXNlPiBlbGVtZW50IGlzIG5vdCByZXBvc2l0aW9uZWQgd2hl
biBtb3ZlZCB0byB4PTAgeT0wIHRocm91Z2ggc2NyaXB0IAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTM3NjcKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBPbmx5IGJhaWwgb3V0IG9uIHplcm8gb2Zmc2V0IGlm
IGl0IGlzIG5vdCBleHBsaWNpdGx5IHNldC4KKworICAgICAgICBUZXN0OiBzdmcvY3VzdG9tL3Vz
ZS1tb3ZlLXRvLW9mZnNldC5zdmcKKworICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
VHJhbnNmb3JtYWJsZUNvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJTVkdU
cmFuc2Zvcm1hYmxlQ29udGFpbmVyOjpjYWxjdWxhdGVMb2NhbFRyYW5zZm9ybSk6CisgICAgICAg
ICogcmVuZGVyaW5nL3N2Zy9TVkdTaGFkb3dUcmVlRWxlbWVudHMuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6U1ZHU2hhZG93VHJlZUNvbnRhaW5lckVsZW1lbnQ6OlNWR1NoYWRvd1RyZWVDb250YWlu
ZXJFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OlNWR1NoYWRvd1RyZWVDb250YWluZXJFbGVt
ZW50OjpzZXRDb250YWluZXJPZmZzZXQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvU1ZHU2hh
ZG93VHJlZUVsZW1lbnRzLmg6CisgICAgICAgIChXZWJDb3JlOjpTVkdTaGFkb3dUcmVlQ29udGFp
bmVyRWxlbWVudDo6Y29udGFpbmVyT2Zmc2V0Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdTaGFkb3dUcmVlQ29udGFpbmVyRWxlbWVudDo6c2V0Q29udGFpbmVyT2Zmc2V0Q2hhbmdlZCk6
CisKIDIwMTEtMDctMjIgIERhdmlkIEdyb2dhbiAgPGRncm9nYW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIEZpeCBjcmFzaCBpbiBJREJSZXF1ZXN0OjphYm9ydApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFpbmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNv
bnRhaW5lci5jcHAKaW5kZXggMjNhYWE4OTcyNTIxOWRjNTBiYmQyZGQ4MmZjZDMzMDFhNzY0OGYx
Ny4uMWRiNjM2NWIyNzc4ZTgzY2MzMDE4NGFlZGRjZWJmNTQ1Nzg5YjI2NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdUcmFuc2Zvcm1hYmxlQ29udGFp
bmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1RyYW5z
Zm9ybWFibGVDb250YWluZXIuY3BwCkBAIC00OSw4ICs0OSw5IEBAIGJvb2wgUmVuZGVyU1ZHVHJh
bnNmb3JtYWJsZUNvbnRhaW5lcjo6Y2FsY3VsYXRlTG9jYWxUcmFuc2Zvcm0oKQogICAgIGlmICgh
ZWxlbWVudC0+aGFzVGFnTmFtZShTVkdOYW1lczo6Z1RhZykgfHwgIXN0YXRpY19jYXN0PFNWR0dF
bGVtZW50Kj4oZWxlbWVudCktPmlzU2hhZG93VHJlZUNvbnRhaW5lckVsZW1lbnQoKSkKICAgICAg
ICAgcmV0dXJuIG5lZWRzVXBkYXRlOwogCi0gICAgRmxvYXRTaXplIHRyYW5zbGF0aW9uID0gc3Rh
dGljX2Nhc3Q8U1ZHU2hhZG93VHJlZUNvbnRhaW5lckVsZW1lbnQqPihlbGVtZW50KS0+Y29udGFp
bmVyVHJhbnNsYXRpb24oKTsKLSAgICBpZiAoIXRyYW5zbGF0aW9uLndpZHRoKCkgJiYgIXRyYW5z
bGF0aW9uLmhlaWdodCgpKQorICAgIFNWR1NoYWRvd1RyZWVDb250YWluZXJFbGVtZW50KiBzaGFk
b3dFbGVtZW50ID0gc3RhdGljX2Nhc3Q8U1ZHU2hhZG93VHJlZUNvbnRhaW5lckVsZW1lbnQqPihl
bGVtZW50KTsKKyAgICBGbG9hdFNpemUgdHJhbnNsYXRpb24gPSBzaGFkb3dFbGVtZW50LT5jb250
YWluZXJUcmFuc2xhdGlvbigpOworICAgIGlmICghc2hhZG93RWxlbWVudC0+Y29udGFpbmVyT2Zm
c2V0Q2hhbmdlZCgpICYmICF0cmFuc2xhdGlvbi53aWR0aCgpICYmICF0cmFuc2xhdGlvbi5oZWln
aHQoKSkKICAgICAgICAgcmV0dXJuIG5lZWRzVXBkYXRlOwogCiAgICAgLy8gRklYTUU6IENvdWxk
IG9wdGltaXplIHRoaXMgY2FzZSBmb3IgdXNlIHRvIGF2b2lkIHJlZmV0Y2hpbmcgdGhlIGFuaW1h
dGVkTG9jYWxUcmFuc2Zvcm0oKSBoZXJlLCBpZiBvbmx5IHRoZSBjb250YWluZXJUcmFuc2xhdGlv
bigpIGNoYW5nZWQuCkBAIC01OCw2ICs1OSw3IEBAIGJvb2wgUmVuZGVyU1ZHVHJhbnNmb3JtYWJs
ZUNvbnRhaW5lcjo6Y2FsY3VsYXRlTG9jYWxUcmFuc2Zvcm0oKQogICAgICAgICBtX2xvY2FsVHJh
bnNmb3JtID0gZWxlbWVudC0+YW5pbWF0ZWRMb2NhbFRyYW5zZm9ybSgpOwogCiAgICAgbV9sb2Nh
bFRyYW5zZm9ybS50cmFuc2xhdGUodHJhbnNsYXRpb24ud2lkdGgoKSwgdHJhbnNsYXRpb24uaGVp
Z2h0KCkpOworICAgIHNoYWRvd0VsZW1lbnQtPnNldENvbnRhaW5lck9mZnNldENoYW5nZWQoZmFs
c2UpOwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1NoYWRvd1RyZWVFbGVtZW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1NWR1NoYWRvd1RyZWVFbGVtZW50cy5jcHAKaW5kZXggNjk4ZDE4M2Q0Yjcz
NzVmZjhiYWZlYTkwNTNiMWNjZTg4YTM3YWIxNC4uYTE2ODdmNzY2NTAzY2NjY2M5NGVlNTdlYjdl
YzI2ODE0OWQzNDQ2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9T
VkdTaGFkb3dUcmVlRWxlbWVudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dmcvU1ZHU2hhZG93VHJlZUVsZW1lbnRzLmNwcApAQCAtMjUsNiArMjUsNyBAQAogI2luY2x1ZGUg
IkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRmxvYXRTaXplLmgiCiAjaW5jbHVkZSAiUmVuZGVyT2Jq
ZWN0LmgiCisjaW5jbHVkZSAiUmVuZGVyU1ZHVHJhbnNmb3JtYWJsZUNvbnRhaW5lci5oIgogI2lu
Y2x1ZGUgIlNWR05hbWVzLmgiCiAjaW5jbHVkZSAiU1ZHVXNlRWxlbWVudC5oIgogCkBAIC0zNCw2
ICszNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogU1ZHU2hhZG93VHJlZUNvbnRhaW5lckVs
ZW1lbnQ6OlNWR1NoYWRvd1RyZWVDb250YWluZXJFbGVtZW50KERvY3VtZW50KiBkb2N1bWVudCkK
ICAgICA6IFNWR0dFbGVtZW50KFNWR05hbWVzOjpnVGFnLCBkb2N1bWVudCkKKyAgICAsIG1fY29u
dGFpbmVyT2Zmc2V0Q2hhbmdlZChmYWxzZSkKIHsKIH0KIApAQCAtNDIsNiArNDQsMTMgQEAgUGFz
c1JlZlB0cjxTVkdTaGFkb3dUcmVlQ29udGFpbmVyRWxlbWVudD4gU1ZHU2hhZG93VHJlZUNvbnRh
aW5lckVsZW1lbnQ6OmNyZWF0ZSgKICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFNWR1NoYWRvd1Ry
ZWVDb250YWluZXJFbGVtZW50KGRvY3VtZW50KSk7CiB9CiAKK3ZvaWQgU1ZHU2hhZG93VHJlZUNv
bnRhaW5lckVsZW1lbnQ6OnNldENvbnRhaW5lck9mZnNldChjb25zdCBTVkdMZW5ndGgmIHgsIGNv
bnN0IFNWR0xlbmd0aCYgeSkKK3sKKyAgICBtX2NvbnRhaW5lck9mZnNldENoYW5nZWQgPSB0cnVl
OworICAgIG1feE9mZnNldCA9IHg7CisgICAgbV95T2Zmc2V0ID0geTsKK30KKwogRmxvYXRTaXpl
IFNWR1NoYWRvd1RyZWVDb250YWluZXJFbGVtZW50Ojpjb250YWluZXJUcmFuc2xhdGlvbigpIGNv
bnN0CiB7CiAgICAgcmV0dXJuIEZsb2F0U2l6ZShtX3hPZmZzZXQudmFsdWUodGhpcyksIG1feU9m
ZnNldC52YWx1ZSh0aGlzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3ZnL1NWR1NoYWRvd1RyZWVFbGVtZW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2
Zy9TVkdTaGFkb3dUcmVlRWxlbWVudHMuaAppbmRleCAwMmRlZmVlMWU5Njk4NDFiNDJlNmE5MGJh
ZTkwNTIzOGY5ZTg5NDBmLi5iMzdkNzIxNTJmNTIxMmRkNTMyYTY5ZmZmNDIwMGRiNGNkZjRiMjQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1NoYWRvd1RyZWVF
bGVtZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHU2hhZG93VHJl
ZUVsZW1lbnRzLmgKQEAgLTM0LDExICszNCwxMCBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NS
ZWZQdHI8U1ZHU2hhZG93VHJlZUNvbnRhaW5lckVsZW1lbnQ+IGNyZWF0ZShEb2N1bWVudCopOwog
CiAgICAgRmxvYXRTaXplIGNvbnRhaW5lclRyYW5zbGF0aW9uKCkgY29uc3Q7Ci0gICAgdm9pZCBz
ZXRDb250YWluZXJPZmZzZXQoY29uc3QgU1ZHTGVuZ3RoJiB4LCBjb25zdCBTVkdMZW5ndGgmIHkp
Ci0gICAgewotICAgICAgICBtX3hPZmZzZXQgPSB4OwotICAgICAgICBtX3lPZmZzZXQgPSB5Owot
ICAgIH0KKyAgICB2b2lkIHNldENvbnRhaW5lck9mZnNldChjb25zdCBTVkdMZW5ndGgmIHgsIGNv
bnN0IFNWR0xlbmd0aCYgeSk7CisKKyAgICBib29sIGNvbnRhaW5lck9mZnNldENoYW5nZWQoKSBj
b25zdCB7IHJldHVybiBtX2NvbnRhaW5lck9mZnNldENoYW5nZWQ7IH0KKyAgICB2b2lkIHNldENv
bnRhaW5lck9mZnNldENoYW5nZWQoYm9vbCBjb250YWluZXJPZmZzZXRDaGFuZ2VkKSB7IG1fY29u
dGFpbmVyT2Zmc2V0Q2hhbmdlZCA9IGNvbnRhaW5lck9mZnNldENoYW5nZWQ7IH0KIAogcHJvdGVj
dGVkOgogICAgIFNWR1NoYWRvd1RyZWVDb250YWluZXJFbGVtZW50KERvY3VtZW50Kik7CkBAIC00
OSw2ICs0OCw3IEBAIHByaXZhdGU6CiAKICAgICBTVkdMZW5ndGggbV94T2Zmc2V0OwogICAgIFNW
R0xlbmd0aCBtX3lPZmZzZXQ7CisgICAgYm9vbCBtX2NvbnRhaW5lck9mZnNldENoYW5nZWQ7CiB9
OwogCiBjbGFzcyBTVkdTaGFkb3dUcmVlUm9vdEVsZW1lbnQgOiBwdWJsaWMgU1ZHU2hhZG93VHJl
ZUNvbnRhaW5lckVsZW1lbnQgewo=
</data>
<flag name="review"
          id="96859"
          type_id="1"
          status="+"
          setter="zimmermann"
    />
          </attachment>
      

    </bug>

</bugzilla>