<?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>76555</bug_id>
          
          <creation_ts>2012-01-18 11:08:18 -0800</creation_ts>
          <short_desc>window.innerWidth/Height should not include page scale</short_desc>
          <delta_ts>2012-03-16 03:35:11 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>68075</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Sami Kyostila">skyostil</reporter>
          <assigned_to name="Kenneth Rohde Christiansen">kenneth</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>anilsson</cc>
    
    <cc>anssi.kostiainen</cc>
    
    <cc>ap</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>dglazkov</cc>
    
    <cc>efidler</cc>
    
    <cc>fsamuel</cc>
    
    <cc>kenneth</cc>
    
    <cc>manyoso</cc>
    
    <cc>peter</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>538006</commentid>
    <comment_count>0</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-01-18 11:08:18 -0800</bug_when>
    <thetext>The values of window.innerWidth and window.innerHeight seem to return CSS pixels multiplied with the page scale. I have not found an authoritative reference on whether these values should include page scale or not, but seeing as 1) the effects of text zoom is already cancelled out and 2) providing scaled CSS pixel values to web developers does not seem useful, I believe the page scale should not be included.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538011</commentid>
    <comment_count>1</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-18 11:13:06 -0800</bug_when>
    <thetext>I tend to agree with this. What should happen if I do a css -webkit-transform: scale(3) on an iframe? what should its innerWidth return?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538020</commentid>
    <comment_count>2</comment_count>
      <attachid>122969</attachid>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-01-18 11:17:46 -0800</bug_when>
    <thetext>Created attachment 122969
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538025</commentid>
    <comment_count>3</comment_count>
      <attachid>122969</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-18 11:22:59 -0800</bug_when>
    <thetext>Comment on attachment 122969
Patch

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

&gt; Source/WebCore/page/DOMWindow.cpp:1129
&gt; +    return static_cast&lt;int&gt;(view-&gt;visibleContentRect(/* includeScrollbars */ true).height() / (m_frame-&gt;pageZoomFactor() * m_frame-&gt;frameScaleFactor()));

looks correct

&gt; LayoutTests/fast/dom/iframe-inner-size-scaling.html:5
&gt; +&lt;!DOCTYPE html&gt;
&gt; +&lt;html&gt;
&gt; +&lt;head&gt;
&gt; +    &lt;script&gt;
&gt; +        function debug(str) {

I think there is some smarter way for doing script only tests, though I havent done any myself

&gt; LayoutTests/fast/dom/iframe-inner-size-scaling.html:14
&gt; +            // We must use setTimeout since the innerWidth/innerHeight are not yet valid for the iframe.
&gt; +            window.setTimeout(runTests, 0);

Will this trick always work? We really don&apos;t want more flaky tests :-)

&gt; LayoutTests/fast/dom/iframe-inner-size-scaling.html:40
&gt; +            debug(&quot;SUCCESS!&quot;);

log*, but is not debugging</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538026</commentid>
    <comment_count>4</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-01-18 11:23:44 -0800</bug_when>
    <thetext>I admit I haven&apos;t thought about CSS transforms on conjunction with this too deeply, but intuitively it seems that any transform should not affect the value of  innerWidth/Height since the transform does not alter the available CSS coordinate range inside the iframe.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538028</commentid>
    <comment_count>5</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-01-18 11:26:49 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; I think there is some smarter way for doing script only tests, though I havent done any myself

Hmm, I&apos;ll have to dig around to find some better examples then. This one is based on fast/dom/client-width-height.html.
 
&gt; &gt; LayoutTests/fast/dom/iframe-inner-size-scaling.html:14
&gt; &gt; +            // We must use setTimeout since the innerWidth/innerHeight are not yet valid for the iframe.
&gt; &gt; +            window.setTimeout(runTests, 0);
&gt; 
&gt; Will this trick always work? We really don&apos;t want more flaky tests :-)

All I can say is that it has worked reliably for me :) If you can suggest a better way then I&apos;m all ears.
 
&gt; &gt; LayoutTests/fast/dom/iframe-inner-size-scaling.html:40
&gt; &gt; +            debug(&quot;SUCCESS!&quot;);
&gt; 
&gt; log*, but is not debugging

Sure, I&apos;ll fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>538068</commentid>
    <comment_count>6</comment_count>
      <attachid>122969</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-18 12:22:22 -0800</bug_when>
    <thetext>Comment on attachment 122969
Patch

Attachment 122969 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11194327

New failing tests:
fast/frames/frame-set-scaling-hit.html
fast/frames/frame-set-rotation-hit.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539405</commentid>
    <comment_count>7</comment_count>
      <attachid>123285</attachid>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-01-20 04:17:43 -0800</bug_when>
    <thetext>Created attachment 123285
Patch

 - Rebased.
 - Fixed two failing tests. (The panel geometry needed to be calculated before changing the visual viewport.)
 - Rewrote tests to use existing JS infrastructure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539413</commentid>
    <comment_count>8</comment_count>
      <attachid>123285</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-01-20 04:27:41 -0800</bug_when>
    <thetext>Comment on attachment 123285
Patch

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

&gt; LayoutTests/ChangeLog:14
&gt; +        with page scaling.
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        * fast/dom/iframe-inner-size-scaling-expected.txt: Added.
&gt; +        * fast/dom/iframe-inner-size-scaling.html: Added.
&gt; +        * fast/dom/window-inner-size-scaling-expected.txt: Added.
&gt; +        * fast/dom/window-inner-size-scaling.html: Added.

the changelog doesnt mention that you modified other tests or why</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539456</commentid>
    <comment_count>9</comment_count>
      <attachid>123303</attachid>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-01-20 06:13:23 -0800</bug_when>
    <thetext>Created attachment 123303
Patch

 - Added note to ChangeLog about modifying two existing tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539476</commentid>
    <comment_count>10</comment_count>
      <attachid>123303</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-20 07:03:37 -0800</bug_when>
    <thetext>Comment on attachment 123303
Patch

Clearing flags on attachment: 123303

Committed r105512: &lt;http://trac.webkit.org/changeset/105512&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>539477</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-20 07:03:42 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579375</commentid>
    <comment_count>12</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-03-15 07:46:11 -0700</bug_when>
    <thetext>(In reply to comment #0)
&gt; The values of window.innerWidth and window.innerHeight seem to return CSS pixels multiplied with the page scale. I have not found an authoritative reference on whether these values should include page scale or not, but seeing as 1) the effects of text zoom is already cancelled out and 2) providing scaled CSS pixel values to web developers does not seem useful, I believe the page scale should not be included.

I am wondering whether this change we made makes sense as it seems be differ from most widespread mobile implementations.

http://www.quirksmode.org/mobile/tableViewport.html

&quot;Dimensions of the visual viewport in CSS pixels.&quot;

This is also what current OS X Safari supports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579390</commentid>
    <comment_count>13</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-15 08:01:10 -0700</bug_when>
    <thetext>&gt; I am wondering whether this change we made makes sense as it seems be differ from most widespread mobile implementations.
&gt;
&gt; &quot;Dimensions of the visual viewport in CSS pixels.&quot;

Is this not what we are currently returning -- CSS pixels without the page scale applied? Or are you referring to the scrollbar bug 81208?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579398</commentid>
    <comment_count>14</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-03-15 08:15:50 -0700</bug_when>
    <thetext>(In reply to comment #13)
&gt; &gt; I am wondering whether this change we made makes sense as it seems be differ from most widespread mobile implementations.
&gt; &gt;
&gt; &gt; &quot;Dimensions of the visual viewport in CSS pixels.&quot;
&gt; 
&gt; Is this not what we are currently returning -- CSS pixels without the page scale applied? Or are you referring to the scrollbar bug 81208?

I think you are correct. It is just very confusing that visibleContentRect doesn&apos;t return the rect in CSS units but in layout units.

We should either add a comment or create a mapping method

int FrameView::mapFromLayoutToCSSUnits(LayoutUnit value)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579405</commentid>
    <comment_count>15</comment_count>
    <who name="Sami Kyostila">skyostil</who>
    <bug_when>2012-03-15 08:25:34 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; We should either add a comment or create a mapping method
&gt; 
&gt; int FrameView::mapFromLayoutToCSSUnits(LayoutUnit value)

I like this. Being more explicit about the coordinate systems is a good idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579410</commentid>
    <comment_count>16</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-03-15 08:37:07 -0700</bug_when>
    <thetext>If I understand this right, the page scale unlike page zoom, does change the size of the viewport. Like page zoom it changes the size of CSS pixels, but also changes the size of the viewport (allowing overflow and underflow). 

The question is if the visual viewport in this case, is the unscaled viewport in which case this patch is wrong and the original behaviour right? OR if the we should indeed give the webpage the scaled viewport?

Since page scale is supposed to be transparent to the web application, I think it would make more sense if they got the size of the original unscaled viewport. This value happens to also be thenew  visual viewport in device pixels, but that is not the point: It is the logical viewport in CSS pixels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579421</commentid>
    <comment_count>17</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-03-15 08:59:32 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579422</commentid>
    <comment_count>18</comment_count>
      <attachid>132058</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-03-15 08:59:37 -0700</bug_when>
    <thetext>Created attachment 132058
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>580336</commentid>
    <comment_count>19</comment_count>
      <attachid>132058</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2012-03-16 03:35:03 -0700</bug_when>
    <thetext>Comment on attachment 132058
Patch

Landed in 110981.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122969</attachid>
            <date>2012-01-18 11:17:46 -0800</date>
            <delta_ts>2012-01-20 04:17:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76555-20120118191744.patch</filename>
            <type>text/plain</type>
            <size>7794</size>
            <attacher name="Sami Kyostila">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1MjI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2FjYzFlNzRjN2QzMjRm
ZTBjNDM1MjVmZWViZTk4ZjZjZDliZWNmMy4uZjY5OGU1N2UxZWNjNGFlYzRkYTg2ZDk1NWI4YzU3
YmZhYWNmNDY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAxLTE4ICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIHdpbmRvdy5pbm5l
cldpZHRoL0hlaWdodCBzaG91bGQgbm90IGluY2x1ZGUgcGFnZSBzY2FsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1NTUKKworICAgICAgICBUaGUg
RE9NIGF0dHJpYnV0ZXMgd2luZG93LmlubmVyV2lkdGggYW5kIHdpbmRvdy5pbm5lckhlaWdodCBz
aG91bGQgYmUgaW4KKyAgICAgICAgQ1NTIHBpeGVscyBpbnN0ZWFkIG9mIGRldmljZSBwaXhlbHMu
IEN1cnJlbnRseSB0aGUgdGV4dCB6b29tIGZhY3RvciBpcworICAgICAgICBjYW5jZWxsZWQgb3V0
IHdoZW4gY2FsY3VsYXRpbmcgdGhlc2UgdmFsdWVzLCBidXQgdGhlIHNhbWUgYWxzbyBuZWVkcyB0
bworICAgICAgICBiZSBkb25lIGZvciB0aGUgcGFnZSBzY2FsZS4KKworICAgICAgICBUaGVyZSBp
cyBhbiBhZGRpdGlvbmFsIHN1YnRsZXR5IGNvbmNlcm5pbmcgZnJhbWVzL2lmcmFtZXMgc2luY2Ug
dGhlaXIKKyAgICAgICAgdmlzaWJsZSBjb250ZW50IHJlY3RhbmdsZSBpcyBhbHJlYWR5IGluICh1
bnNjYWxlZCkgQ1NTIHBpeGVscy4gQnkgdXNpbmcKKyAgICAgICAgRnJhbWU6OmZyYW1lU2NhbGVG
YWN0b3IoKSB3ZSBhdm9pZCB1bm5lY2Vzc2FyaWx5IGNhbmNlbGxpbmcgb3V0IHRoZSBwYWdlCisg
ICAgICAgIHNjYWxlIGZhY3RvciBpbiB0aGlzIGNhc2UuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL2lmcmFtZS1pbm5lci1z
aXplLXNjYWxpbmcuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vd2luZG93LWlubmVyLXNp
emUtc2NhbGluZy5odG1sCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3c6OmlubmVySGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6aW5uZXJXaWR0aCk6CisKIDIwMTItMDEtMTcgIE5hdGUgQ2hhcGluICA8amFwaGV0
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBFbnN1cmUgd2UgZG9uJ3QgY2FuY2VsIHJldmFsaWRh
dGlvbiBvZiBhIENhY2hlZFJlc291cmNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKaW5kZXgg
MjljY2ZiMWRlY2E4NWMzZDBhYTIwNmY4NmY1MGM0YmRiODJkODY5Yy4uZjVjODMyMTQ1YTJhZTFi
NWYxZDZmNjJhMmM4OTE0ZmE3NDk5NDU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcApA
QCAtMTEyNiw3ICsxMTI2LDcgQEAgaW50IERPTVdpbmRvdzo6aW5uZXJIZWlnaHQoKSBjb25zdAog
ICAgIGlmICghdmlldykKICAgICAgICAgcmV0dXJuIDA7CiAgICAgCi0gICAgcmV0dXJuIHN0YXRp
Y19jYXN0PGludD4odmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KC8qIGluY2x1ZGVTY3JvbGxiYXJz
ICovIHRydWUpLmhlaWdodCgpIC8gbV9mcmFtZS0+cGFnZVpvb21GYWN0b3IoKSk7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGludD4odmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KC8qIGluY2x1ZGVT
Y3JvbGxiYXJzICovIHRydWUpLmhlaWdodCgpIC8gKG1fZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkg
KiBtX2ZyYW1lLT5mcmFtZVNjYWxlRmFjdG9yKCkpKTsKIH0KIAogaW50IERPTVdpbmRvdzo6aW5u
ZXJXaWR0aCgpIGNvbnN0CkBAIC0xMTM4LDcgKzExMzgsNyBAQCBpbnQgRE9NV2luZG93Ojppbm5l
cldpZHRoKCkgY29uc3QKICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVybiAwOwogCi0gICAg
cmV0dXJuIHN0YXRpY19jYXN0PGludD4odmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KC8qIGluY2x1
ZGVTY3JvbGxiYXJzICovIHRydWUpLndpZHRoKCkgLyBtX2ZyYW1lLT5wYWdlWm9vbUZhY3Rvcigp
KTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50Pih2aWV3LT52aXNpYmxlQ29udGVudFJlY3Qo
LyogaW5jbHVkZVNjcm9sbGJhcnMgKi8gdHJ1ZSkud2lkdGgoKSAvIChtX2ZyYW1lLT5wYWdlWm9v
bUZhY3RvcigpICogbV9mcmFtZS0+ZnJhbWVTY2FsZUZhY3RvcigpKSk7CiB9CiAKIGludCBET01X
aW5kb3c6OnNjcmVlblgoKSBjb25zdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYyOWUxNTFmMzNlMWFmY2Y0ODA5NGMwZDQ5
NjVhYWNmNDUzZjJkM2YuLjE1ODMzYmYxZmNiNGNhMzAwYTBjY2VjNTE0YzUzOTZlZDFjNjNhNTcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxMi0wMS0xOCAgU2FtaSBLeW9zdGlsYSAgPHNreW9z
dGlsQGNocm9taXVtLm9yZz4KKworICAgICAgICB3aW5kb3cuaW5uZXJXaWR0aC9IZWlnaHQgc2hv
dWxkIG5vdCBpbmNsdWRlIHBhZ2Ugc2NhbGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTc2NTU1CisKKyAgICAgICAgQWRkIHR3byB0ZXN0cyBmb3Igd2lu
ZG93LmlubmVyV2lkdGggYW5kIHdpbmRvdy5pbm5lckhlaWdodCBpbnRlcmFjdGlvbgorICAgICAg
ICB3aXRoIHBhZ2Ugc2NhbGluZy4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGZhc3QvZG9tL2lmcmFtZS1pbm5lci1zaXplLXNjYWxpbmctZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9pZnJhbWUtaW5uZXItc2l6ZS1zY2Fs
aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZG9tL3dpbmRvdy1pbm5lci1zaXplLXNj
YWxpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS93aW5kb3ctaW5u
ZXItc2l6ZS1zY2FsaW5nLmh0bWw6IEFkZGVkLgorCiAyMDEyLTAxLTE3ICBKYW1lcyBSb2JpbnNv
biAgPGphbWVzckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBNYXJrIHNvbWUg
Y29tcG9zaXRpbmcgdGVzdHMgYXMgZmFpbGluZyB3aXRoIGFuIElNQUdFIGRpZmYgZHVlIHRvIHZp
ZGVvIHBsYXliYWNrIHByb2JsZW0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2lm
cmFtZS1pbm5lci1zaXplLXNjYWxpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vaWZyYW1lLWlubmVyLXNpemUtc2NhbGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2Rk
N2I0YzdhNmNmYTVlMjE0MzVkZGIyYzQ3MTk3Y2FkMWJmZmYxMgotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZG9tL2lmcmFtZS1pbm5lci1zaXplLXNjYWxpbmctZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorVGhpcyB0ZXN0cyB0aGF0IGlubmVyV2lkdGgvaW5uZXJIZWln
aHQgb24gYW4gaWZyYW1lIHdpbmRvdyByZXR1cm5zIHRoZSBzaXplIG9mIHRoZSBpZnJhbWUgaXRz
ZWxmIGluIENTUyBwaXhlbHMuIAorU1VDQ0VTUyEKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vaWZyYW1lLWlubmVyLXNpemUtc2NhbGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vaWZyYW1lLWlubmVyLXNpemUtc2NhbGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ2NDI2ZmQ3
ZWIzNGZmYWEzNGFlNzA2NDc2Mzc4OTcxZDM3NTdmMzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9pZnJhbWUtaW5uZXItc2l6ZS1zY2FsaW5nLmh0bWwKQEAgLTAsMCAr
MSw1MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+Cisg
ICAgICAgIGZ1bmN0aW9uIGRlYnVnKHN0cikgeworICAgICAgICAgICAgcHJlID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKTsKKyAgICAgICAgICAgIHByZS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShzdHIgKyAnXG4nKSk7CisgICAgICAgIH0KKworICAgICAg
ICBmdW5jdGlvbiBzY2hlZHVsZVRlc3RzKCkgeworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworICAgICAgICAgICAgLy8gV2UgbXVzdCB1c2Ugc2V0VGltZW91dCBzaW5j
ZSB0aGUgaW5uZXJXaWR0aC9pbm5lckhlaWdodCBhcmUgbm90IHlldCB2YWxpZCBmb3IgdGhlIGlm
cmFtZS4KKyAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KHJ1blRlc3RzLCAwKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkgeworICAgICAgICAgICAgaWYgKCF3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgfHwgIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAgICB2YXIgZnJhbWVXaW5kb3cgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lJykuY29udGVudFdpbmRvdzsKKyAgICAgICAgICAgIHZh
ciBzY2FsZSA9IDI7CisgICAgICAgICAgICB2YXIgZXhwZWN0ZWRGcmFtZVdpZHRoID0gNDAwOwor
ICAgICAgICAgICAgdmFyIGV4cGVjdGVkRnJhbWVIZWlnaHQgPSAzMDA7CisKKyAgICAgICAgICAg
IGlmIChmcmFtZVdpbmRvdy5pbm5lcldpZHRoICE9IGV4cGVjdGVkRnJhbWVXaWR0aCB8fAorICAg
ICAgICAgICAgICAgIGZyYW1lV2luZG93LmlubmVySGVpZ2h0ICE9IGV4cGVjdGVkRnJhbWVIZWln
aHQpIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiRkFJTFVSRSEiKQorICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgd2luZG93LmludGVybmFscy5z
ZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIHNjYWxlLCAwLCAwKTsKKworICAgICAgICAgICAg
aWYgKGZyYW1lV2luZG93LmlubmVyV2lkdGggIT0gZXhwZWN0ZWRGcmFtZVdpZHRoIHx8CisgICAg
ICAgICAgICAgICAgZnJhbWVXaW5kb3cuaW5uZXJIZWlnaHQgIT0gZXhwZWN0ZWRGcmFtZUhlaWdo
dCkgeworICAgICAgICAgICAgICAgIGRlYnVnKCJGQUlMVVJFISIpCisgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBkZWJ1ZygiU1VDQ0VTUyEiKTsK
KyAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
fQorICAgIDwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzY2hlZHVsZVRlc3RzKCki
PgorICAgIFRoaXMgdGVzdHMgdGhhdCBpbm5lcldpZHRoL2lubmVySGVpZ2h0IG9uIGFuIGlmcmFt
ZSB3aW5kb3cgcmV0dXJucyB0aGUgc2l6ZSBvZiB0aGUgaWZyYW1lIGl0c2VsZiBpbiBDU1MgcGl4
ZWxzLgorICAgIDxpZnJhbWUgaWQ9ImlmcmFtZSIgc3R5bGU9IndpZHRoOiA0MDBweDsgaGVpZ2h0
OiAzMDBweCI+PC9pZnJhbWU+CisgICAgPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93aW5kb3ctaW5uZXIt
c2l6ZS1zY2FsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dpbmRvdy1p
bm5lci1zaXplLXNjYWxpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5MjA3MGQ4MmEyMzRk
ZTJiYzJkMzZkMTIwNmRiMWQ1OWEzOTdiNmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS93aW5kb3ctaW5uZXItc2l6ZS1zY2FsaW5nLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKK1RoaXMgdGVzdHMgdGhhdCBpbm5lcldpZHRoL2lubmVySGVpZ2h0IG9uIHRoZSBi
b2R5IGVsZW1lbnQgcmV0dXJucyB0aGUgc2l6ZSBvZiB0aGUgdmlzdWFsIHZpZXdwb3J0IGluIENT
UyBwaXhlbHMuCitTVUNDRVNTIQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93
aW5kb3ctaW5uZXItc2l6ZS1zY2FsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS93aW5k
b3ctaW5uZXItc2l6ZS1zY2FsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWI0ZjZjZDUwYzAyOTkwMGZk
OGIwMmI3NzI4ZjhmNDZjOWE2ZTBlMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL3dpbmRvdy1pbm5lci1zaXplLXNjYWxpbmcuaHRtbApAQCAtMCwwICsxLDM1IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVu
Y3Rpb24gZGVidWcoc3RyKSB7CisgICAgICAgICAgICBwcmUgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpOworICAgICAgICAgICAgcHJlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKHN0ciArICdcbicpKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9u
IHJ1blRlc3RzKCkgeworICAgICAgICAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIgfHwgIXdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworCisgICAgICAgICAgICB2
YXIgd2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDsKKyAgICAgICAgICAgIHZhciBoZWlnaHQgPSB3
aW5kb3cuaW5uZXJIZWlnaHQ7CisgICAgICAgICAgICB2YXIgc2NhbGUgPSAyOworCisgICAgICAg
ICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgc2NhbGUsIDAsIDApOworCisgICAgICAg
ICAgICBpZiAod2luZG93LmlubmVyV2lkdGggIT0gd2lkdGggLyBzY2FsZSB8fAorICAgICAgICAg
ICAgICAgIHdpbmRvdy5pbm5lckhlaWdodCAhPSBoZWlnaHQgLyBzY2FsZSkgeworICAgICAgICAg
ICAgICAgIGRlYnVnKCJGQUlMVVJFISIpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgZGVidWcoIlNVQ0NFU1MhIik7CisgICAgICAgIH0KKyAgICA8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKSI+CisgICAgVGhpcyB0
ZXN0cyB0aGF0IGlubmVyV2lkdGgvaW5uZXJIZWlnaHQgb24gdGhlIGJvZHkgZWxlbWVudCByZXR1
cm5zIHRoZSBzaXplIG9mIHRoZSB2aXN1YWwgdmlld3BvcnQgaW4gQ1NTIHBpeGVscy4KKyAgICA8
cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123285</attachid>
            <date>2012-01-20 04:17:43 -0800</date>
            <delta_ts>2012-01-20 06:13:13 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76555-20120120121742.patch</filename>
            <type>text/plain</type>
            <size>9846</size>
            <attacher name="Sami Kyostila">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE3Y2E3ZTNjNTViMjIy
Nzk2NTdmYzNiYTI1MTY1ZmJkZDVkM2U5MC4uZTU2ZTAyZDU4OTU3OTMyYmY3Yjk2NTdkNGM5ZTVl
MTBlMWYzMDg1YyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAxLTE4ICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIHdpbmRvdy5pbm5l
cldpZHRoL0hlaWdodCBzaG91bGQgbm90IGluY2x1ZGUgcGFnZSBzY2FsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1NTUKKworICAgICAgICBUaGUg
RE9NIGF0dHJpYnV0ZXMgd2luZG93LmlubmVyV2lkdGggYW5kIHdpbmRvdy5pbm5lckhlaWdodCBz
aG91bGQgYmUgaW4KKyAgICAgICAgQ1NTIHBpeGVscyBpbnN0ZWFkIG9mIGRldmljZSBwaXhlbHMu
IEN1cnJlbnRseSB0aGUgdGV4dCB6b29tIGZhY3RvciBpcworICAgICAgICBjYW5jZWxsZWQgb3V0
IHdoZW4gY2FsY3VsYXRpbmcgdGhlc2UgdmFsdWVzLCBidXQgdGhlIHNhbWUgYWxzbyBuZWVkcyB0
bworICAgICAgICBiZSBkb25lIGZvciB0aGUgcGFnZSBzY2FsZS4KKworICAgICAgICBUaGVyZSBp
cyBhbiBhZGRpdGlvbmFsIHN1YnRsZXR5IGNvbmNlcm5pbmcgZnJhbWVzL2lmcmFtZXMgc2luY2Ug
dGhlaXIKKyAgICAgICAgdmlzaWJsZSBjb250ZW50IHJlY3RhbmdsZSBpcyBhbHJlYWR5IGluICh1
bnNjYWxlZCkgQ1NTIHBpeGVscy4gQnkgdXNpbmcKKyAgICAgICAgRnJhbWU6OmZyYW1lU2NhbGVG
YWN0b3IoKSB3ZSBhdm9pZCB1bm5lY2Vzc2FyaWx5IGNhbmNlbGxpbmcgb3V0IHRoZSBwYWdlCisg
ICAgICAgIHNjYWxlIGZhY3RvciBpbiB0aGlzIGNhc2UuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL2lmcmFtZS1pbm5lci1z
aXplLXNjYWxpbmcuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vd2luZG93LWlubmVyLXNp
emUtc2NhbGluZy5odG1sCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3c6OmlubmVySGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6aW5uZXJXaWR0aCk6CisKIDIwMTItMDEtMTggIFNhbSBXZWluaWcgIDxzYW1Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBNb3ZlIFJ1bkxvb3AgdG8gV2ViQ29yZS9wbGF0Zm9ybQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDFhYjk4N2I5Y2I2YTQxYWEzNWUzYmRiZDAyZTkz
MjMyODk1MjFmMTYuLjc4OWNhOGZlNGY3NzJlZjcxMTY3ZWM1MzI4MjhhNThiNTUyODliZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTExMzYsNyArMTEzNiw3IEBAIGludCBET01X
aW5kb3c6OmlubmVySGVpZ2h0KCkgY29uc3QKICAgICAKICAgICBsb25nIGhlaWdodCA9IHZpZXct
PnZpc2libGVDb250ZW50UmVjdCgvKiBpbmNsdWRlU2Nyb2xsYmFycyAqLyB0cnVlKS5oZWlnaHQo
KTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJp
ZGUobV9mcmFtZSwgJmhlaWdodCk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oaGVpZ2h0
IC8gbV9mcmFtZS0+cGFnZVpvb21GYWN0b3IoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGlu
dD4oaGVpZ2h0IC8gKG1fZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBtX2ZyYW1lLT5mcmFtZVNj
YWxlRmFjdG9yKCkpKTsKIH0KIAogaW50IERPTVdpbmRvdzo6aW5uZXJXaWR0aCgpIGNvbnN0CkBA
IC0xMTUwLDcgKzExNTAsNyBAQCBpbnQgRE9NV2luZG93Ojppbm5lcldpZHRoKCkgY29uc3QKIAog
ICAgIGxvbmcgd2lkdGggPSB2aWV3LT52aXNpYmxlQ29udGVudFJlY3QoLyogaW5jbHVkZVNjcm9s
bGJhcnMgKi8gdHJ1ZSkud2lkdGgoKTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFw
cGx5U2NyZWVuV2lkdGhPdmVycmlkZShtX2ZyYW1lLCAmd2lkdGgpOwotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxpbnQ+KHdpZHRoIC8gbV9mcmFtZS0+cGFnZVpvb21GYWN0b3IoKSk7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGludD4od2lkdGggLyAobV9mcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAq
IG1fZnJhbWUtPmZyYW1lU2NhbGVGYWN0b3IoKSkpOwogfQogCiBpbnQgRE9NV2luZG93OjpzY3Jl
ZW5YKCkgY29uc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA5ZTVlMTBhZGI5NjBmOTc5MTdlZTJhYTk3ZTA1ZTQ3YWViYmUy
M2RlLi42YTRjYzJiYmFiZWU3YzY5N2UzOWUyMjgzMzZiZDA4NDBhOWFkZDQ2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTItMDEtMTggIFNhbWkgS3lvc3RpbGEgIDxza3lvc3RpbEBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgd2luZG93LmlubmVyV2lkdGgvSGVpZ2h0IHNob3VsZCBub3QgaW5j
bHVkZSBwYWdlIHNjYWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NjU1NQorCisgICAgICAgIEFkZCB0d28gdGVzdHMgZm9yIHdpbmRvdy5pbm5lcldp
ZHRoIGFuZCB3aW5kb3cuaW5uZXJIZWlnaHQgaW50ZXJhY3Rpb24KKyAgICAgICAgd2l0aCBwYWdl
IHNjYWxpbmcuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBmYXN0L2RvbS9pZnJhbWUtaW5uZXItc2l6ZS1zY2FsaW5nLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vaWZyYW1lLWlubmVyLXNpemUtc2NhbGluZy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS93aW5kb3ctaW5uZXItc2l6ZS1zY2FsaW5nLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vd2luZG93LWlubmVyLXNpemUtc2Nh
bGluZy5odG1sOiBBZGRlZC4KKwogMjAxMi0wMS0xOSAgUm9sYW5kIFN0ZWluZXIgIDxyb2xhbmRz
dGVpbmVyQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkOiBhZGQgbGF5b3V0IHRl
c3QgdG8gQ2hyb21pdW0gdGVzdF9leHBlY3RhdGlvbnMudHh0IGZpbGUgYWZ0ZXIgY2hhbmdlcyB0
byBNYWMgdW5kZXJsaW5lIGRyYXdpbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9pZnJhbWUtaW5uZXItc2l6ZS1zY2FsaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL2lmcmFtZS1pbm5lci1zaXplLXNjYWxpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjQyNmI1OWFkMTZjZmIwNzFlYTk3ZDRkZmEwYTQ5MTEyOWI1ZTMwYjkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pZnJhbWUtaW5uZXItc2l6ZS1zY2FsaW5nLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUaGlzIHRlc3RzIHRoYXQgaW5uZXJXaWR0aC9pbm5l
ckhlaWdodCBvbiBhbiBmcmFtZSB3aW5kb3cgcmV0dXJucyB0aGUgc2l6ZSBvZiB0aGUgZnJhbWUg
aXRzZWxmIGluIENTUyBwaXhlbHMsIHJlZ2FyZGxlc3Mgb2YgcGFnZSBzY2FsZS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZnJhbWUuY29udGVudFdpbmRvdy5pbm5lcldp
ZHRoIGlzIG5vbi16ZXJvLgorUEFTUyBmcmFtZS5jb250ZW50V2luZG93LmlubmVySGVpZ2h0IGlz
IG5vbi16ZXJvLgorUEFTUyBmcmFtZS5jb250ZW50V2luZG93LmlubmVyV2lkdGggaXMgb3JpZ2lu
YWxXaWR0aAorUEFTUyBmcmFtZS5jb250ZW50V2luZG93LmlubmVySGVpZ2h0IGlzIG9yaWdpbmFs
SGVpZ2h0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWZyYW1lLWlubmVyLXNpemUtc2Nh
bGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWZyYW1lLWlubmVyLXNpemUtc2NhbGlu
Zy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjEzZDFiZGVkYTM1NDhiNjgxMGY2NjUxODRmNmJlZDI4YTVkNjg1
YzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9pZnJhbWUtaW5uZXIt
c2l6ZS1zY2FsaW5nLmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPGh0bWw+CisgICAgPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dD4KKyAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdHMgdGhhdCBpbm5lcldpZHRoL2lubmVy
SGVpZ2h0IG9uIGFuIGZyYW1lIHdpbmRvdyByZXR1cm5zIHRoZSBzaXplIG9mIHRoZSBmcmFtZSBp
dHNlbGYgaW4gQ1NTIHBpeGVscywgcmVnYXJkbGVzcyBvZiBwYWdlIHNjYWxlLiIpOworICAgICAg
ICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAgICAgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKKyAgICAgICAgICAgIGZyYW1lID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2lmcmFt
ZScpOworICAgICAgICAgICAgb3JpZ2luYWxXaWR0aCA9IGZyYW1lLmNvbnRlbnRXaW5kb3cuaW5u
ZXJXaWR0aDsKKyAgICAgICAgICAgIG9yaWdpbmFsSGVpZ2h0ID0gZnJhbWUuY29udGVudFdpbmRv
dy5pbm5lckhlaWdodDsKKworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAg
ICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQs
IDIsIDAsIDApOworCisgICAgICAgICAgICBzaG91bGRCZU5vblplcm8oImZyYW1lLmNvbnRlbnRX
aW5kb3cuaW5uZXJXaWR0aCIpOworICAgICAgICAgICAgc2hvdWxkQmVOb25aZXJvKCJmcmFtZS5j
b250ZW50V2luZG93LmlubmVySGVpZ2h0Iik7CisgICAgICAgICAgICBzaG91bGRCZSgiZnJhbWUu
Y29udGVudFdpbmRvdy5pbm5lcldpZHRoIiwgIm9yaWdpbmFsV2lkdGgiKTsKKyAgICAgICAgICAg
IHNob3VsZEJlKCJmcmFtZS5jb250ZW50V2luZG93LmlubmVySGVpZ2h0IiwgIm9yaWdpbmFsSGVp
Z2h0Iik7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAg
IHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAvLyBXZSBtdXN0IHVzZSBz
ZXRUaW1lb3V0IHNpbmNlIHRoZSBpbm5lcldpZHRoL2lubmVySGVpZ2h0IGFyZSBub3QgeWV0IHZh
bGlkIGZvciB0aGUgaWZyYW1lLgorICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KHJ1blRlc3Qs
IDApOworICAgICAgICB9CisgICAgPC9zY3JpcHQ+CisgICAgPGlmcmFtZSBpZD0iaWZyYW1lIiBz
dHlsZT0id2lkdGg6IDEwMCU7IGhlaWdodDogMTAwJTsiPjwvaWZyYW1lPgorICAgIDxzY3JpcHQg
c3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dpbmRvdy1pbm5lci1zaXplLXNjYWxp
bmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vd2luZG93LWlubmVyLXNpemUt
c2NhbGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmUwZWEwZTkyMzM4NzJmNTlhM2EyMzk5
MTcyYWUxMzE2NzVhYjUwZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3dpbmRvdy1pbm5lci1zaXplLXNjYWxpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAK
K1RoaXMgdGVzdCBlbnN1cmVzIHdpbmRvdy5pbm5lcldpZHRoL2lubmVySGVpZ2h0IHJldHVybiB0
aGUgc2l6ZSBvZiB0aGUgdmlzdWFsIHZpZXdwb3J0IGluIENTUyBwaXhlbHMuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHdpbmRvdy5pbm5lcldpZHRoIGlzIE1hdGguZmxv
b3Iob3JpZ2luYWxXaWR0aCAvIHNjYWxlKQorUEFTUyB3aW5kb3cuaW5uZXJIZWlnaHQgaXMgTWF0
aC5mbG9vcihvcmlnaW5hbEhlaWdodCAvIHNjYWxlKQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL3dpbmRvdy1pbm5lci1zaXplLXNjYWxpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9t
L3dpbmRvdy1pbm5lci1zaXplLXNjYWxpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDc2YzUwYjMwZWIy
N2FjZjBiMzNjNmYzMmJlNzQ5YTk0MmJiZDk4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9kb20vd2luZG93LWlubmVyLXNpemUtc2NhbGluZy5odG1sCkBAIC0wLDAgKzEsMTcg
QEAKKzxodG1sPgorICAgIDxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+CisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRl
c3QgZW5zdXJlcyB3aW5kb3cuaW5uZXJXaWR0aC9pbm5lckhlaWdodCByZXR1cm4gdGhlIHNpemUg
b2YgdGhlIHZpc3VhbCB2aWV3cG9ydCBpbiBDU1MgcGl4ZWxzLiIpOworCisgICAgICAgIHZhciBv
cmlnaW5hbFdpZHRoID0gd2luZG93LmlubmVyV2lkdGg7CisgICAgICAgIHZhciBvcmlnaW5hbEhl
aWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDsKKyAgICAgICAgdmFyIHNjYWxlID0gMjsKKworICAg
ICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCBzY2FsZSwgMCwgMCk7CisKKyAgICAgICAgc2hv
dWxkQmUoIndpbmRvdy5pbm5lcldpZHRoIiwgIk1hdGguZmxvb3Iob3JpZ2luYWxXaWR0aCAvIHNj
YWxlKSIpOworICAgICAgICBzaG91bGRCZSgid2luZG93LmlubmVySGVpZ2h0IiwgIk1hdGguZmxv
b3Iob3JpZ2luYWxIZWlnaHQgLyBzY2FsZSkiKTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c2NyaXB0
IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtcm90YXRpb24t
aGl0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtcm90YXRpb24taGl0
Lmh0bWwKaW5kZXggY2MyYzIxNGFkMjI2MTc3ZjlhOTZkNTJlYzk0MWE2M2Q0ODM2ZTE2Mi4uYTU3
OGY1MzMxMDUzMWNmOTc4MjU2MjkxNTE1NTUzNGJkMGNiZDZjOCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0LXJvdGF0aW9uLWhpdC5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1yb3RhdGlvbi1oaXQuaHRtbApAQCAtNywxMSAr
NywxMiBAQAogICAgICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIgfHwgIXdpbmRvdy5p
bnRlcm5hbHMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgLy8gU2NhbGUg
dGhlIHBhZ2UgYW5kIHJlc2l6ZSB0aGUgZnJhbWVzIHRvIHZlcmlmeSBoaXQgdGVzdGluZyBvbiB0
aGUgZnJhbWVzZXQKLSAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFj
dG9yKGRvY3VtZW50LCAwLjUsIDAsIDApOwogICAgICAgICAgICAgdmFyIGxlZnRQYW5lbFdpZHRo
ID0gd2luZG93LmlubmVyV2lkdGggLyA4OwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VN
b3ZlVG8od2luZG93LmlubmVyV2lkdGggLyA0LCBsZWZ0UGFuZWxXaWR0aCk7CisgICAgICAgICAg
ICB2YXIgcGFuZWxIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLyAyOworICAgICAgICAgICAg
d2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7
CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhwYW5lbEhlaWdodCAvIDIsIGxl
ZnRQYW5lbFdpZHRoKTsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8od2luZG93LmlubmVyV2lkdGggLyA0LCAy
ICogbGVmdFBhbmVsV2lkdGgpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8o
cGFuZWxIZWlnaHQgLyAyLCAyICogbGVmdFBhbmVsV2lkdGgpOwogICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VVcCgpOwogICAgICAgICB9CiAgICAgICAgIHdpbmRvdy5vbmxvYWQgPSBpbml0
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0LXNjYWxpbmct
aGl0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtc2NhbGluZy1oaXQu
aHRtbAppbmRleCBiMjIxMWI2YjhiOWZmNmQ5YTFhMzBmM2RmZDZhOTM2MTUzZDM3MTAwLi40Zjli
NzkzNzQ4ZDdkYjUxZWNhMWY5N2EyN2U1ODcxYTBlNmU4OGIxIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtc2NhbGluZy1oaXQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtc2NhbGluZy1oaXQuaHRtbApAQCAtOCwxMCArOCwx
MSBAQAogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIC8vIFNjYWxlIHRoZSBw
YWdlIGFuZCByZXNpemUgdGhlIGZyYW1lcyB0byB2ZXJpZnkgaGl0IHRlc3Rpbmcgb24gdGhlIGZy
YW1lc2V0CiAgICAgICAgICAgICB2YXIgbGVmdFBhbmVsV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0
aCAvIDg7CisgICAgICAgICAgICB2YXIgcGFuZWxIZWlnaHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQg
LyAyOwogICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9j
dW1lbnQsIDAuNSwgMCwgMCk7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhs
ZWZ0UGFuZWxXaWR0aCwgd2luZG93LmlubmVySGVpZ2h0IC8gNCk7CisgICAgICAgICAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyhsZWZ0UGFuZWxXaWR0aCwgcGFuZWxIZWlnaHQgLyAyKTsKICAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwotICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VNb3ZlVG8oMiAqIGxlZnRQYW5lbFdpZHRoLCB3aW5kb3cuaW5uZXJIZWlnaHQgLyA0
KTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIgKiBsZWZ0UGFuZWxXaWR0
aCwgcGFuZWxIZWlnaHQgLyAyKTsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsK
ICAgICAgICAgfQogICAgICAgICB3aW5kb3cub25sb2FkID0gaW5pdDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>123303</attachid>
            <date>2012-01-20 06:13:23 -0800</date>
            <delta_ts>2012-03-15 08:59:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76555-20120120141321.patch</filename>
            <type>text/plain</type>
            <size>10072</size>
            <attacher name="Sami Kyostila">skyostil</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA1NDgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGE3Y2E3ZTNjNTViMjIy
Nzk2NTdmYzNiYTI1MTY1ZmJkZDVkM2U5MC4uZTU2ZTAyZDU4OTU3OTMyYmY3Yjk2NTdkNGM5ZTVl
MTBlMWYzMDg1YyAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDEyLTAxLTE4ICBTYW1p
IEt5b3N0aWxhICA8c2t5b3N0aWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIHdpbmRvdy5pbm5l
cldpZHRoL0hlaWdodCBzaG91bGQgbm90IGluY2x1ZGUgcGFnZSBzY2FsZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzY1NTUKKworICAgICAgICBUaGUg
RE9NIGF0dHJpYnV0ZXMgd2luZG93LmlubmVyV2lkdGggYW5kIHdpbmRvdy5pbm5lckhlaWdodCBz
aG91bGQgYmUgaW4KKyAgICAgICAgQ1NTIHBpeGVscyBpbnN0ZWFkIG9mIGRldmljZSBwaXhlbHMu
IEN1cnJlbnRseSB0aGUgdGV4dCB6b29tIGZhY3RvciBpcworICAgICAgICBjYW5jZWxsZWQgb3V0
IHdoZW4gY2FsY3VsYXRpbmcgdGhlc2UgdmFsdWVzLCBidXQgdGhlIHNhbWUgYWxzbyBuZWVkcyB0
bworICAgICAgICBiZSBkb25lIGZvciB0aGUgcGFnZSBzY2FsZS4KKworICAgICAgICBUaGVyZSBp
cyBhbiBhZGRpdGlvbmFsIHN1YnRsZXR5IGNvbmNlcm5pbmcgZnJhbWVzL2lmcmFtZXMgc2luY2Ug
dGhlaXIKKyAgICAgICAgdmlzaWJsZSBjb250ZW50IHJlY3RhbmdsZSBpcyBhbHJlYWR5IGluICh1
bnNjYWxlZCkgQ1NTIHBpeGVscy4gQnkgdXNpbmcKKyAgICAgICAgRnJhbWU6OmZyYW1lU2NhbGVG
YWN0b3IoKSB3ZSBhdm9pZCB1bm5lY2Vzc2FyaWx5IGNhbmNlbGxpbmcgb3V0IHRoZSBwYWdlCisg
ICAgICAgIHNjYWxlIGZhY3RvciBpbiB0aGlzIGNhc2UuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6IGZhc3QvZG9tL2lmcmFtZS1pbm5lci1z
aXplLXNjYWxpbmcuaHRtbAorICAgICAgICAgICAgICAgZmFzdC9kb20vd2luZG93LWlubmVyLXNp
emUtc2NhbGluZy5odG1sCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3c6OmlubmVySGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6aW5uZXJXaWR0aCk6CisKIDIwMTItMDEtMTggIFNhbSBXZWluaWcgIDxzYW1Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBNb3ZlIFJ1bkxvb3AgdG8gV2ViQ29yZS9wbGF0Zm9ybQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwCmluZGV4IDFhYjk4N2I5Y2I2YTQxYWEzNWUzYmRiZDAyZTkz
MjMyODk1MjFmMTYuLjc4OWNhOGZlNGY3NzJlZjcxMTY3ZWM1MzI4MjhhNThiNTUyODliZDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKQEAgLTExMzYsNyArMTEzNiw3IEBAIGludCBET01X
aW5kb3c6OmlubmVySGVpZ2h0KCkgY29uc3QKICAgICAKICAgICBsb25nIGhlaWdodCA9IHZpZXct
PnZpc2libGVDb250ZW50UmVjdCgvKiBpbmNsdWRlU2Nyb2xsYmFycyAqLyB0cnVlKS5oZWlnaHQo
KTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFwcGx5U2NyZWVuSGVpZ2h0T3ZlcnJp
ZGUobV9mcmFtZSwgJmhlaWdodCk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0PGludD4oaGVpZ2h0
IC8gbV9mcmFtZS0+cGFnZVpvb21GYWN0b3IoKSk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PGlu
dD4oaGVpZ2h0IC8gKG1fZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBtX2ZyYW1lLT5mcmFtZVNj
YWxlRmFjdG9yKCkpKTsKIH0KIAogaW50IERPTVdpbmRvdzo6aW5uZXJXaWR0aCgpIGNvbnN0CkBA
IC0xMTUwLDcgKzExNTAsNyBAQCBpbnQgRE9NV2luZG93Ojppbm5lcldpZHRoKCkgY29uc3QKIAog
ICAgIGxvbmcgd2lkdGggPSB2aWV3LT52aXNpYmxlQ29udGVudFJlY3QoLyogaW5jbHVkZVNjcm9s
bGJhcnMgKi8gdHJ1ZSkud2lkdGgoKTsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmFw
cGx5U2NyZWVuV2lkdGhPdmVycmlkZShtX2ZyYW1lLCAmd2lkdGgpOwotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxpbnQ+KHdpZHRoIC8gbV9mcmFtZS0+cGFnZVpvb21GYWN0b3IoKSk7CisgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGludD4od2lkdGggLyAobV9mcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAq
IG1fZnJhbWUtPmZyYW1lU2NhbGVGYWN0b3IoKSkpOwogfQogCiBpbnQgRE9NV2luZG93OjpzY3Jl
ZW5YKCkgY29uc3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCA5ZTVlMTBhZGI5NjBmOTc5MTdlZTJhYTk3ZTA1ZTQ3YWViYmUy
M2RlLi4yN2JkYzg5YTM2N2EzZWY5ZGU4OGFiYmQ5ODU4ZGEwMDhiOWQ0NzU1IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMTItMDEtMTggIFNhbWkgS3lvc3RpbGEgIDxza3lvc3RpbEBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgd2luZG93LmlubmVyV2lkdGgvSGVpZ2h0IHNob3VsZCBub3QgaW5j
bHVkZSBwYWdlIHNjYWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD03NjU1NQorCisgICAgICAgIEFkZCB0d28gdGVzdHMgZm9yIHdpbmRvdy5pbm5lcldp
ZHRoIGFuZCB3aW5kb3cuaW5uZXJIZWlnaHQgaW50ZXJhY3Rpb24KKyAgICAgICAgd2l0aCBwYWdl
IHNjYWxpbmcuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBmYXN0L2RvbS9pZnJhbWUtaW5uZXItc2l6ZS1zY2FsaW5nLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogZmFzdC9kb20vaWZyYW1lLWlubmVyLXNpemUtc2NhbGluZy5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBmYXN0L2RvbS93aW5kb3ctaW5uZXItc2l6ZS1zY2FsaW5nLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vd2luZG93LWlubmVyLXNpemUtc2Nh
bGluZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mcmFtZS1zZXQtcm90YXRp
b24taGl0Lmh0bWw6IENhbGN1bGF0ZSB0aGUgcGFuZWwgaGVpZ2h0IGJlZm9yZSBjaGFuZ2luZyB0
aGUgcGFnZSBzY2FsZSwgYmVjYXVzZSB0aGUgdmlzdWFsIHZpZXdwb3J0IGNoYW5nZXMgd2l0aCB0
aGUgcGFnZSBzY2FsZS4KKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mcmFtZS1zZXQtc2NhbGluZy1o
aXQuaHRtbDogRGl0dG8uCisKIDIwMTItMDEtMTkgIFJvbGFuZCBTdGVpbmVyICA8cm9sYW5kc3Rl
aW5lckBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZDogYWRkIGxheW91dCB0ZXN0
IHRvIENocm9taXVtIHRlc3RfZXhwZWN0YXRpb25zLnR4dCBmaWxlIGFmdGVyIGNoYW5nZXMgdG8g
TWFjIHVuZGVybGluZSBkcmF3aW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
aWZyYW1lLWlubmVyLXNpemUtc2NhbGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9pZnJhbWUtaW5uZXItc2l6ZS1zY2FsaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40
MjZiNTlhZDE2Y2ZiMDcxZWE5N2Q0ZGZhMGE0OTExMjliNWUzMGI5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWZyYW1lLWlubmVyLXNpemUtc2NhbGluZy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwxMyBAQAorVGhpcyB0ZXN0cyB0aGF0IGlubmVyV2lkdGgvaW5uZXJI
ZWlnaHQgb24gYW4gZnJhbWUgd2luZG93IHJldHVybnMgdGhlIHNpemUgb2YgdGhlIGZyYW1lIGl0
c2VsZiBpbiBDU1MgcGl4ZWxzLCByZWdhcmRsZXNzIG9mIHBhZ2Ugc2NhbGUuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIGZyYW1lLmNvbnRlbnRXaW5kb3cuaW5uZXJXaWR0
aCBpcyBub24temVyby4KK1BBU1MgZnJhbWUuY29udGVudFdpbmRvdy5pbm5lckhlaWdodCBpcyBu
b24temVyby4KK1BBU1MgZnJhbWUuY29udGVudFdpbmRvdy5pbm5lcldpZHRoIGlzIG9yaWdpbmFs
V2lkdGgKK1BBU1MgZnJhbWUuY29udGVudFdpbmRvdy5pbm5lckhlaWdodCBpcyBvcmlnaW5hbEhl
aWdodAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL2lmcmFtZS1pbm5lci1zaXplLXNjYWxp
bmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL2lmcmFtZS1pbm5lci1zaXplLXNjYWxpbmcu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xM2QxYmRlZGEzNTQ4YjY4MTBmNjY1MTg0ZjZiZWQyOGE1ZDY4NWM5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vaWZyYW1lLWlubmVyLXNp
emUtc2NhbGluZy5odG1sCkBAIC0wLDAgKzEsMjkgQEAKKzxodG1sPgorICAgIDxzY3JpcHQgc3Jj
PSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQ+
CisgICAgICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3RzIHRoYXQgaW5uZXJXaWR0aC9pbm5lckhl
aWdodCBvbiBhbiBmcmFtZSB3aW5kb3cgcmV0dXJucyB0aGUgc2l6ZSBvZiB0aGUgZnJhbWUgaXRz
ZWxmIGluIENTUyBwaXhlbHMsIHJlZ2FyZGxlc3Mgb2YgcGFnZSBzY2FsZS4iKTsKKyAgICAgICAg
d2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3Qo
KSB7CisgICAgICAgICAgICBmcmFtZSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpZnJhbWUn
KTsKKyAgICAgICAgICAgIG9yaWdpbmFsV2lkdGggPSBmcmFtZS5jb250ZW50V2luZG93LmlubmVy
V2lkdGg7CisgICAgICAgICAgICBvcmlnaW5hbEhlaWdodCA9IGZyYW1lLmNvbnRlbnRXaW5kb3cu
aW5uZXJIZWlnaHQ7CisKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAg
ICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAy
LCAwLCAwKTsKKworICAgICAgICAgICAgc2hvdWxkQmVOb25aZXJvKCJmcmFtZS5jb250ZW50V2lu
ZG93LmlubmVyV2lkdGgiKTsKKyAgICAgICAgICAgIHNob3VsZEJlTm9uWmVybygiZnJhbWUuY29u
dGVudFdpbmRvdy5pbm5lckhlaWdodCIpOworICAgICAgICAgICAgc2hvdWxkQmUoImZyYW1lLmNv
bnRlbnRXaW5kb3cuaW5uZXJXaWR0aCIsICJvcmlnaW5hbFdpZHRoIik7CisgICAgICAgICAgICBz
aG91bGRCZSgiZnJhbWUuY29udGVudFdpbmRvdy5pbm5lckhlaWdodCIsICJvcmlnaW5hbEhlaWdo
dCIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICB3
aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgLy8gV2UgbXVzdCB1c2Ugc2V0
VGltZW91dCBzaW5jZSB0aGUgaW5uZXJXaWR0aC9pbm5lckhlaWdodCBhcmUgbm90IHlldCB2YWxp
ZCBmb3IgdGhlIGlmcmFtZS4KKyAgICAgICAgICB3aW5kb3cuc2V0VGltZW91dChydW5UZXN0LCAw
KTsKKyAgICAgICAgfQorICAgIDwvc2NyaXB0PgorICAgIDxpZnJhbWUgaWQ9ImlmcmFtZSIgc3R5
bGU9IndpZHRoOiAxMDAlOyBoZWlnaHQ6IDEwMCU7Ij48L2lmcmFtZT4KKyAgICA8c2NyaXB0IHNy
Yz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS93aW5kb3ctaW5uZXItc2l6ZS1zY2FsaW5n
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL3dpbmRvdy1pbm5lci1zaXplLXNj
YWxpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlMGVhMGU5MjMzODcyZjU5YTNhMjM5OTE3
MmFlMTMxNjc1YWI1MGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS93
aW5kb3ctaW5uZXItc2l6ZS1zY2FsaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDExIEBACitU
aGlzIHRlc3QgZW5zdXJlcyB3aW5kb3cuaW5uZXJXaWR0aC9pbm5lckhlaWdodCByZXR1cm4gdGhl
IHNpemUgb2YgdGhlIHZpc3VhbCB2aWV3cG9ydCBpbiBDU1MgcGl4ZWxzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyB3aW5kb3cuaW5uZXJXaWR0aCBpcyBNYXRoLmZsb29y
KG9yaWdpbmFsV2lkdGggLyBzY2FsZSkKK1BBU1Mgd2luZG93LmlubmVySGVpZ2h0IGlzIE1hdGgu
Zmxvb3Iob3JpZ2luYWxIZWlnaHQgLyBzY2FsZSkKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS93aW5kb3ctaW5uZXItc2l6ZS1zY2FsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS93
aW5kb3ctaW5uZXItc2l6ZS1zY2FsaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDA3NmM1MGIzMGViMjdh
Y2YwYjMzYzZmMzJiZTc0OWE5NDJiYmQ5OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL3dpbmRvdy1pbm5lci1zaXplLXNjYWxpbmcuaHRtbApAQCAtMCwwICsxLDE3IEBA
Cis8aHRtbD4KKyAgICA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0PgorICAgICAgICBkZXNjcmlwdGlvbigiVGhpcyB0ZXN0
IGVuc3VyZXMgd2luZG93LmlubmVyV2lkdGgvaW5uZXJIZWlnaHQgcmV0dXJuIHRoZSBzaXplIG9m
IHRoZSB2aXN1YWwgdmlld3BvcnQgaW4gQ1NTIHBpeGVscy4iKTsKKworICAgICAgICB2YXIgb3Jp
Z2luYWxXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoOworICAgICAgICB2YXIgb3JpZ2luYWxIZWln
aHQgPSB3aW5kb3cuaW5uZXJIZWlnaHQ7CisgICAgICAgIHZhciBzY2FsZSA9IDI7CisKKyAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgc2NhbGUsIDAsIDApOworCisgICAgICAgIHNob3Vs
ZEJlKCJ3aW5kb3cuaW5uZXJXaWR0aCIsICJNYXRoLmZsb29yKG9yaWdpbmFsV2lkdGggLyBzY2Fs
ZSkiKTsKKyAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5pbm5lckhlaWdodCIsICJNYXRoLmZsb29y
KG9yaWdpbmFsSGVpZ2h0IC8gc2NhbGUpIik7CisgICAgPC9zY3JpcHQ+CisgICAgPHNjcmlwdCBz
cmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0LXJvdGF0aW9uLWhp
dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0LXJvdGF0aW9uLWhpdC5o
dG1sCmluZGV4IGNjMmMyMTRhZDIyNjE3N2Y5YTk2ZDUyZWM5NDFhNjNkNDgzNmUxNjIuLmE1Nzhm
NTMzMTA1MzFjZjk3ODI1NjI5MTUxNTU1MzRiZDBjYmQ2YzggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1yb3RhdGlvbi1oaXQuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtcm90YXRpb24taGl0Lmh0bWwKQEAgLTcsMTEgKzcs
MTIgQEAKICAgICAgICAgICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyIHx8ICF3aW5kb3cuaW50
ZXJuYWxzKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIC8vIFNjYWxlIHRo
ZSBwYWdlIGFuZCByZXNpemUgdGhlIGZyYW1lcyB0byB2ZXJpZnkgaGl0IHRlc3Rpbmcgb24gdGhl
IGZyYW1lc2V0Ci0gICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rv
cihkb2N1bWVudCwgMC41LCAwLCAwKTsKICAgICAgICAgICAgIHZhciBsZWZ0UGFuZWxXaWR0aCA9
IHdpbmRvdy5pbm5lcldpZHRoIC8gODsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKHdpbmRvdy5pbm5lcldpZHRoIC8gNCwgbGVmdFBhbmVsV2lkdGgpOworICAgICAgICAgICAg
dmFyIHBhbmVsSGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC8gMjsKKyAgICAgICAgICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAsIDApOwor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8ocGFuZWxIZWlnaHQgLyAyLCBsZWZ0
UGFuZWxXaWR0aCk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHdpbmRvdy5pbm5lcldpZHRoIC8gNCwgMiAq
IGxlZnRQYW5lbFdpZHRoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHBh
bmVsSGVpZ2h0IC8gMiwgMiAqIGxlZnRQYW5lbFdpZHRoKTsKICAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlVXAoKTsKICAgICAgICAgfQogICAgICAgICB3aW5kb3cub25sb2FkID0gaW5pdDsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1zY2FsaW5nLWhp
dC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0LXNjYWxpbmctaGl0Lmh0
bWwKaW5kZXggYjIyMTFiNmI4YjlmZjZkOWExYTMwZjNkZmQ2YTkzNjE1M2QzNzEwMC4uNGY5Yjc5
Mzc0OGQ3ZGI1MWVjYTFmOTdhMjdlNTg3MWEwZTZlODhiMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0LXNjYWxpbmctaGl0Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0LXNjYWxpbmctaGl0Lmh0bWwKQEAgLTgsMTAgKzgsMTEg
QEAKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAvLyBTY2FsZSB0aGUgcGFn
ZSBhbmQgcmVzaXplIHRoZSBmcmFtZXMgdG8gdmVyaWZ5IGhpdCB0ZXN0aW5nIG9uIHRoZSBmcmFt
ZXNldAogICAgICAgICAgICAgdmFyIGxlZnRQYW5lbFdpZHRoID0gd2luZG93LmlubmVyV2lkdGgg
LyA4OworICAgICAgICAgICAgdmFyIHBhbmVsSGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0IC8g
MjsKICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3Vt
ZW50LCAwLjUsIDAsIDApOwotICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8obGVm
dFBhbmVsV2lkdGgsIHdpbmRvdy5pbm5lckhlaWdodCAvIDQpOworICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8obGVmdFBhbmVsV2lkdGgsIHBhbmVsSGVpZ2h0IC8gMik7CiAgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKDIgKiBsZWZ0UGFuZWxXaWR0aCwgd2luZG93LmlubmVySGVpZ2h0IC8gNCk7
CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygyICogbGVmdFBhbmVsV2lkdGgs
IHBhbmVsSGVpZ2h0IC8gMik7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CiAg
ICAgICAgIH0KICAgICAgICAgd2luZG93Lm9ubG9hZCA9IGluaXQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132058</attachid>
            <date>2012-03-15 08:59:37 -0700</date>
            <delta_ts>2012-03-16 03:35:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-76555-20120315165314.patch</filename>
            <type>text/plain</type>
            <size>4789</size>
            <attacher name="Kenneth Rohde Christiansen">kenneth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJmOTMwNzY0MjQ2Mjhh
MDI0NjE4OGY3MzBiZDJkMWYwNGFmYTQzNy4uZWIzNTZkM2U2MjQyYzczNzM2MWViZTZlOGQ0ZDY2
MGU3MjdhNjljNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDEyLTAzLTE1ICBLZW5u
ZXRoIFJvaGRlIENocmlzdGlhbnNlbiAgPGtlbm5ldGhAd2Via2l0Lm9yZz4KKworICAgICAgICBG
b2xsb3cgdXAgdG86IHdpbmRvdy5pbm5lcldpZHRoL0hlaWdodCBzaG91bGQgbm90IGluY2x1ZGUg
cGFnZSBzY2FsZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9NzY1NTUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbnRyb2R1Y2UgbWFwcGluZyBtZXRob2RzIGZvciBjb252ZXJ0aW5nIGJldHdlZW4gQ1NTIGFu
ZCBsYXlvdXQgdW5pdHMuCisKKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpET01XaW5kb3c6OmlubmVySGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OkRP
TVdpbmRvdzo6aW5uZXJXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3c6OnNjcm9s
bFgpOgorICAgICAgICAoV2ViQ29yZTo6RE9NV2luZG93OjpzY3JvbGxZKToKKyAgICAgICAgKFdl
YkNvcmU6OkRPTVdpbmRvdzo6c2Nyb2xsVG8pOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6
CisgICAgICAgIChGcmFtZVZpZXcpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjptYXBG
cm9tTGF5b3V0VG9DU1NVbml0cyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lVmlldzo6bWFwRnJvbUNTU1RvTGF5b3V0VW5pdHMpOgorCiAyMDEyLTAzLTE1ICBO
aWtvbGFzIFppbW1lcm1hbm4gIDxuemltbWVybWFubkByaW0uY29tPgogCiAgICAgICAgIEVuYWJs
ZSBhbmltVmFsIHN1cHBvcnQgZm9yIFNWR1RyYW5zZm9ybUxpc3QKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2lu
ZG93LmNwcAppbmRleCBjMTQxNjczOGQ3NjAxOTkwNGYzZmExMDQ0ZGM2MDY2MzJiMDRiNjdmLi5k
YmVjMzdiZjkxMjM1NGFmNTE5NzljY2UyMzg3MDY3ZjQzOGEzZjI2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9E
T01XaW5kb3cuY3BwCkBAIC0xMTMyLDEwICsxMTMyLDEwIEBAIGludCBET01XaW5kb3c6OmlubmVy
SGVpZ2h0KCkgY29uc3QKICAgICBGcmFtZVZpZXcqIHZpZXcgPSBtX2ZyYW1lLT52aWV3KCk7CiAg
ICAgaWYgKCF2aWV3KQogICAgICAgICByZXR1cm4gMDsKLSAgICAKKwogICAgIGxvbmcgaGVpZ2h0
ID0gdmlldy0+dmlzaWJsZUNvbnRlbnRSZWN0KC8qIGluY2x1ZGVTY3JvbGxiYXJzICovIHRydWUp
LmhlaWdodCgpOwogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YXBwbHlTY3JlZW5IZWln
aHRPdmVycmlkZShtX2ZyYW1lLCAmaGVpZ2h0KTsKLSAgICByZXR1cm4gc3RhdGljX2Nhc3Q8aW50
PihoZWlnaHQgLyAobV9mcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAqIG1fZnJhbWUtPmZyYW1lU2Nh
bGVGYWN0b3IoKSkpOworICAgIHJldHVybiB2aWV3LT5tYXBGcm9tTGF5b3V0VG9DU1NVbml0cyho
ZWlnaHQpOwogfQogCiBpbnQgRE9NV2luZG93Ojppbm5lcldpZHRoKCkgY29uc3QKQEAgLTExNDks
NyArMTE0OSw3IEBAIGludCBET01XaW5kb3c6OmlubmVyV2lkdGgoKSBjb25zdAogCiAgICAgbG9u
ZyB3aWR0aCA9IHZpZXctPnZpc2libGVDb250ZW50UmVjdCgvKiBpbmNsdWRlU2Nyb2xsYmFycyAq
LyB0cnVlKS53aWR0aCgpOwogICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6YXBwbHlTY3Jl
ZW5XaWR0aE92ZXJyaWRlKG1fZnJhbWUsICZ3aWR0aCk7Ci0gICAgcmV0dXJuIHN0YXRpY19jYXN0
PGludD4od2lkdGggLyAobV9mcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAqIG1fZnJhbWUtPmZyYW1l
U2NhbGVGYWN0b3IoKSkpOworICAgIHJldHVybiB2aWV3LT5tYXBGcm9tTGF5b3V0VG9DU1NVbml0
cyh3aWR0aCk7CiB9CiAKIGludCBET01XaW5kb3c6OnNjcmVlblgoKSBjb25zdApAQCAtMTE4Nyw3
ICsxMTg3LDcgQEAgaW50IERPTVdpbmRvdzo6c2Nyb2xsWCgpIGNvbnN0CiAKICAgICBtX2ZyYW1l
LT5kb2N1bWVudCgpLT51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAot
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxpbnQ+KHZpZXctPnNjcm9sbFgoKSAvIChtX2ZyYW1lLT5w
YWdlWm9vbUZhY3RvcigpICogbV9mcmFtZS0+ZnJhbWVTY2FsZUZhY3RvcigpKSk7CisgICAgcmV0
dXJuIHZpZXctPm1hcEZyb21MYXlvdXRUb0NTU1VuaXRzKHZpZXctPnNjcm9sbFgoKSk7CiB9CiAK
IGludCBET01XaW5kb3c6OnNjcm9sbFkoKSBjb25zdApAQCAtMTIwMSw3ICsxMjAxLDcgQEAgaW50
IERPTVdpbmRvdzo6c2Nyb2xsWSgpIGNvbnN0CiAKICAgICBtX2ZyYW1lLT5kb2N1bWVudCgpLT51
cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAotICAgIHJldHVybiBzdGF0
aWNfY2FzdDxpbnQ+KHZpZXctPnNjcm9sbFkoKSAvIChtX2ZyYW1lLT5wYWdlWm9vbUZhY3Rvcigp
ICogbV9mcmFtZS0+ZnJhbWVTY2FsZUZhY3RvcigpKSk7CisgICAgcmV0dXJuIHZpZXctPm1hcEZy
b21MYXlvdXRUb0NTU1VuaXRzKHZpZXctPnNjcm9sbFkoKSk7CiB9CiAKIGJvb2wgRE9NV2luZG93
OjpjbG9zZWQoKSBjb25zdApAQCAtMTQxOSw5ICsxNDE5LDggQEAgdm9pZCBET01XaW5kb3c6OnNj
cm9sbFRvKGludCB4LCBpbnQgeSkgY29uc3QKICAgICBpZiAoIXZpZXcpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIGludCB6b29tZWRYID0gc3RhdGljX2Nhc3Q8aW50Pih4ICogbV9mcmFtZS0+cGFn
ZVpvb21GYWN0b3IoKSAqIG1fZnJhbWUtPmZyYW1lU2NhbGVGYWN0b3IoKSk7Ci0gICAgaW50IHpv
b21lZFkgPSBzdGF0aWNfY2FzdDxpbnQ+KHkgKiBtX2ZyYW1lLT5wYWdlWm9vbUZhY3RvcigpICog
bV9mcmFtZS0+ZnJhbWVTY2FsZUZhY3RvcigpKTsKLSAgICB2aWV3LT5zZXRTY3JvbGxQb3NpdGlv
bihJbnRQb2ludCh6b29tZWRYLCB6b29tZWRZKSk7CisgICAgSW50UG9pbnQgbGF5b3V0UG9zKHZp
ZXctPm1hcEZyb21DU1NUb0xheW91dFVuaXRzKHgpLCB2aWV3LT5tYXBGcm9tQ1NTVG9MYXlvdXRV
bml0cyh5KSk7CisgICAgdmlldy0+c2V0U2Nyb2xsUG9zaXRpb24obGF5b3V0UG9zKTsKIH0KIAog
dm9pZCBET01XaW5kb3c6Om1vdmVCeShmbG9hdCB4LCBmbG9hdCB5KSBjb25zdApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmgKaW5kZXggZjE0YTIxMzBmYTM5OThmMGFjODAzZTYzYTQ4NDczOTFkODJlMzQ4
My4uM2MxZWMyYTk4OTNmZTI5Y2VlZTg4Yzg0NjA3OTEyMDIxNjUyNjdkNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbmNsdWRlICJBZGp1c3RWaWV3U2l6
ZU9yTm90LmgiCiAjaW5jbHVkZSAiQ29sb3IuaCIKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1
ZGUgIkxheW91dFR5cGVzLmgiCiAjaW5jbHVkZSAiUGFpbnRQaGFzZS5oIgogI2luY2x1ZGUgIlNj
cm9sbFZpZXcuaCIKQEAgLTc1LDYgKzc2LDkgQEAgcHVibGljOgogICAgIEZyYW1lKiBmcmFtZSgp
IGNvbnN0IHsgcmV0dXJuIG1fZnJhbWUuZ2V0KCk7IH0KICAgICB2b2lkIGNsZWFyRnJhbWUoKTsK
IAorICAgIGludCBtYXBGcm9tTGF5b3V0VG9DU1NVbml0cyhMYXlvdXRVbml0KTsKKyAgICBMYXlv
dXRVbml0IG1hcEZyb21DU1NUb0xheW91dFVuaXRzKGludCk7CisKICAgICBMYXlvdXRVbml0IG1h
cmdpbldpZHRoKCkgY29uc3QgeyByZXR1cm4gbV9tYXJnaW5zLndpZHRoKCk7IH0gLy8gLTEgbWVh
bnMgZGVmYXVsdAogICAgIExheW91dFVuaXQgbWFyZ2luSGVpZ2h0KCkgY29uc3QgeyByZXR1cm4g
bV9tYXJnaW5zLmhlaWdodCgpOyB9IC8vIC0xIG1lYW5zIGRlZmF1bHQKICAgICB2b2lkIHNldE1h
cmdpbldpZHRoKExheW91dFVuaXQpOwpAQCAtNTMwLDYgKzUzNCwxNiBAQCBpbmxpbmUgdm9pZCBG
cmFtZVZpZXc6OmluY3JlbWVudFZpc3VhbGx5Tm9uRW1wdHlQaXhlbENvdW50KGNvbnN0IEludFNp
emUmIHNpemUpCiAgICAgICAgIHNldElzVmlzdWFsbHlOb25FbXB0eSgpOwogfQogCitpbmxpbmUg
aW50IEZyYW1lVmlldzo6bWFwRnJvbUxheW91dFRvQ1NTVW5pdHMoTGF5b3V0VW5pdCB2YWx1ZSkK
K3sKKyAgICByZXR1cm4gdmFsdWUgLyAobV9mcmFtZS0+cGFnZVpvb21GYWN0b3IoKSAqIG1fZnJh
bWUtPmZyYW1lU2NhbGVGYWN0b3IoKSk7Cit9CisKK2lubGluZSBMYXlvdXRVbml0IEZyYW1lVmll
dzo6bWFwRnJvbUNTU1RvTGF5b3V0VW5pdHMoaW50IHZhbHVlKQoreworICAgIHJldHVybiB2YWx1
ZSAqIG1fZnJhbWUtPnBhZ2Vab29tRmFjdG9yKCkgKiBtX2ZyYW1lLT5mcmFtZVNjYWxlRmFjdG9y
KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEZyYW1lVmlld19o
Cg==
</data>
<flag name="review"
          id="135580"
          type_id="1"
          status="+"
          setter="hausmann"
    />
          </attachment>
      

    </bug>

</bugzilla>