<?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>89406</bug_id>
          
          <creation_ts>2012-06-18 17:53:45 -0700</creation_ts>
          <short_desc>[Chromium] Let the embedder override the max page scale factor set by the page</short_desc>
          <delta_ts>2012-06-25 19:01: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>New Bugs</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>66687</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>aelias</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>olilan</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>651931</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-18 17:53:45 -0700</bug_when>
    <thetext>[Chromium] Let the embedder override the max page scale factor set by the page</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651932</commentid>
    <comment_count>1</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-18 17:55:17 -0700</bug_when>
    <thetext>WebView.h:

    // PageScaleFactor will be force-clamped between minPageScale and maxPageScale
    // (and these values will persist until setPageScaleFactorLimits is called
    // again).
    virtual void setPageScaleFactorLimits(float minPageScale, float maxPageScale) = 0;


is that not sufficient?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651934</commentid>
    <comment_count>2</comment_count>
      <attachid>148217</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-18 17:56:01 -0700</bug_when>
    <thetext>Created attachment 148217
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651935</commentid>
    <comment_count>3</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-18 17:56:39 -0700</bug_when>
    <thetext>&gt; is that not sufficient?

No, that&apos;s a ceiling for the max page scale factor.  This patch lets the embedder set a floor for the max page scale factor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>651937</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-18 17:58:45 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656188</commentid>
    <comment_count>5</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-24 01:58:32 -0700</bug_when>
    <thetext>@jamesr: What&apos;s the next step here?  Are you happy with the design if the API, or do we need to iterate?  I&apos;ve verified that this feature is actively used in chromium-android.  (In Chrome for Android, if you go into Settings -&gt; Accessibility, this code implements the &quot;Force enable zoom&quot; checkbox.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656855</commentid>
    <comment_count>6</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-06-25 14:22:24 -0700</bug_when>
    <thetext>FYI, setPageScaleFactorLimits is no longer used by Chrome for Android (because it was for viewport tag logic now moved into WebViewImpl), nor are there plans to use it again in the future.  The only user is now on desktop platforms to disable pinch-zoom.  We should probably remove it, especially since the setting is liable to be unexpectedly overridden by the viewport tag anyway.

Anyway, as for this value, I think passing a boolean would be clearer, there are already confusingly many min/max values and I can&apos;t think of a reason the embedder would want to pass a specific number.  I suggest naming it &quot;ignoreViewportTagMaximumScale&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656867</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-25 14:31:45 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; FYI, setPageScaleFactorLimits is no longer used by Chrome for Android (because it was for viewport tag logic now moved into WebViewImpl), nor are there plans to use it again in the future.  The only user is now on desktop platforms to disable pinch-zoom.  We should probably remove it, especially since the setting is liable to be unexpectedly overridden by the viewport tag anyway.

Ok.  I&apos;ll investigate and prepare a patch to remove it.

&gt; Anyway, as for this value, I think passing a boolean would be clearer, there are already confusingly many min/max values and I can&apos;t think of a reason the embedder would want to pass a specific number.  I suggest naming it &quot;ignoreViewportTagMaximumScale&quot;.

The implementation in the chromium-android branch uses a boolean, but then there&apos;s this funny 5.0f constant.  I guess that constant needs to be somewhere.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656870</commentid>
    <comment_count>8</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-06-25 14:35:23 -0700</bug_when>
    <thetext>For the number, we can use:

const float WebView::maxPageScaleFactor = 4.0;

which is defined in WebViewImpl and already exported in WebView.  (The exact number 5 is not important, 4 is fine.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656873</commentid>
    <comment_count>9</comment_count>
      <attachid>148217</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-25 14:37:20 -0700</bug_when>
    <thetext>Comment on attachment 148217
Patch

Ok.  Will do.  By the way, I think 4.0 was the real limit in practice in the chromium-android branch too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656918</commentid>
    <comment_count>10</comment_count>
      <attachid>149367</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-25 15:20:35 -0700</bug_when>
    <thetext>Created attachment 149367
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656957</commentid>
    <comment_count>11</comment_count>
      <attachid>149379</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-25 15:59:55 -0700</bug_when>
    <thetext>Created attachment 149379
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656962</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-25 16:05:16 -0700</bug_when>
    <thetext>&gt; &gt; FYI, setPageScaleFactorLimits is no longer used by Chrome for Android (because it was for viewport tag logic now moved into WebViewImpl), nor are there plans to use it again in the future.  The only user is now on desktop platforms to disable pinch-zoom.  We should probably remove it, especially since the setting is liable to be unexpectedly overridden by the viewport tag anyway.
&gt; 
&gt; Ok.  I&apos;ll investigate and prepare a patch to remove it.

Turns out setPageScaleFactorLimits is still used by WebKit internally to implement the viewport meta tag.  We might still want to remove the API given that it&apos;s not clear that the page can override it using a meta tag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>656965</commentid>
    <comment_count>13</comment_count>
      <attachid>149381</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-25 16:07:51 -0700</bug_when>
    <thetext>Created attachment 149381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657009</commentid>
    <comment_count>14</comment_count>
      <attachid>149381</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2012-06-25 16:49:55 -0700</bug_when>
    <thetext>Comment on attachment 149381
Patch

R=me, looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657013</commentid>
    <comment_count>15</comment_count>
      <attachid>149381</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-06-25 16:53:18 -0700</bug_when>
    <thetext>Comment on attachment 149381
Patch

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657151</commentid>
    <comment_count>16</comment_count>
      <attachid>149381</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-25 19:00:12 -0700</bug_when>
    <thetext>Comment on attachment 149381
Patch

Clearing flags on attachment: 149381

Committed r121213: &lt;http://trac.webkit.org/changeset/121213&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657152</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-06-25 19:00:18 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>657153</commentid>
    <comment_count>18</comment_count>
    <who name="Alexandre Elias">aelias</who>
    <bug_when>2012-06-25 19:01:36 -0700</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt; &gt; FYI, setPageScaleFactorLimits is no longer used by Chrome for Android (because it was for viewport tag logic now moved into WebViewImpl), nor are there plans to use it again in the future.  The only user is now on desktop platforms to disable pinch-zoom.  We should probably remove it, especially since the setting is liable to be unexpectedly overridden by the viewport tag anyway.
&gt; &gt; 
&gt; &gt; Ok.  I&apos;ll investigate and prepare a patch to remove it.
&gt; 
&gt; Turns out setPageScaleFactorLimits is still used by WebKit internally to implement the viewport meta tag.  We might still want to remove the API given that it&apos;s not clear that the page can override it using a meta tag.

Right, sorry I wasn&apos;t clear, I only meant remove the API from public WebView.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148217</attachid>
            <date>2012-06-18 17:56:01 -0700</date>
            <delta_ts>2012-06-25 15:20:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89406-20120618175600.patch</filename>
            <type>text/plain</type>
            <size>7890</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIwNjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGEzZGQwN2JlMWEzOTc4Zjk3YmVjMDdhZjQ0OGZlZGI5MjJhYzMyOTcuLjllN2UyYmEzNGM4NWI3
OWFmMjU0OTBlM2Q2N2IxNjFmODRhMDAwMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMTItMDYtMTggIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBbQ2hyb21pdW1dIExldCB0aGUgZW1iZWRkZXIgb3ZlcnJpZGUgdGhlIG1h
eCBwYWdlIHNjYWxlIGZhY3RvciBzZXQgYnkgdGhlIHBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5NDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hyb21lIG9uIEFuZHJvaWQgaGFzIGFuIG9wdGlv
biB0byBmb3JjZSB0aGUgd2ViIHNpdGUgdG8gYWxsb3cgcGFnZQorICAgICAgICBzY2FsaW5nIChm
b3IgYWNjZXNzaWJpbGl0eSkuIFRoaXMgcGF0Y2ggYWRkcworICAgICAgICBXZWJWaWV3OjpzZXRN
aW5pbXVtTWF4UGFnZVNjYWxlRnJvbUNvbnRlbnQsIHdoaWNoIHNldHMgYSBtaW5pbXVtIHZhbHVl
CisgICAgICAgIGZvciB0aGUgbWF4IHBhZ2Ugc2NhbGUgZmFjdG9yIHByb3ZpZGVkIGJ5IHRoZSBw
YWdlLgorCisgICAgICAgIFRoaXMgcGF0Y2ggaXMgYSBiaXQgZGlmZmVyZW50IGZyb20gaG93IHRo
aXMgaXMgaW1wbGVtZW50ZWQgb24gdGhlCisgICAgICAgIGNocm9taXVtLWFuZHJvaWQgYnJhbmNo
LCBidXQgSSdsbCBjbGVhbiB1cCB0aGUgYnJhbmNoIG9uY2UgdGhpcyBwYXRjaAorICAgICAgICBs
YW5kcy4KKworICAgICAgICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgIChXZWJWaWV3KToK
KyAgICAgICAgKiBzcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNo
cm9tZUNsaWVudEltcGw6OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKToKKyAg
ICAgICAgKiBzcmMvV2ViVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6V2ViVmlld0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0TWluaW11
bU1heFBhZ2VTY2FsZUZyb21Db250ZW50KToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICog
c3JjL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJWaWV3SW1wbCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlZpZXdJbXBsOjptaW5pbXVtTWF4UGFnZVNjYWxlRnJvbUNvbnRlbnQpOgorICAgICAg
ICAqIHRlc3RzL1dlYkZyYW1lVGVzdC5jcHA6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAo
V2ViS2l0OjpURVNUX0YpOgorICAgICAgICAqIHRlc3RzL2RhdGEvbm9fc2NhbGVfZm9yX3lvdS5o
dG1sOiBBZGRlZC4KKwogMjAxMi0wNi0xOCAgSWx5YSBTaGVybWFuICA8aXNoZXJtYW5AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0gRW5zdXJlIGxheW91dCBoYXMgaGFwcGVuZWQg
YmVmb3JlIGNhbGxpbmcgaW50byBoYXNOb25FbXB0eUJvdW5kaW5nQm94KCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXcuaAppbmRleCA1NDJiMTAyMWE2NDQ2NWUzODZhYjQzZjRh
Y2NlM2IwZjgzNjFjZTkzLi43NDAxZjYyZDVjZDNmZTNjYWExOGYyNDg4ZWVhNjQyOGFkMzdhMzUx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmgKKysr
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCkBAIC0yNDIsNiArMjQy
LDExIEBAIHB1YmxpYzoKICAgICAvLyBhZ2FpbikuCiAgICAgdmlydHVhbCB2b2lkIHNldFBhZ2VT
Y2FsZUZhY3RvckxpbWl0cyhmbG9hdCBtaW5QYWdlU2NhbGUsIGZsb2F0IG1heFBhZ2VTY2FsZSkg
PSAwOwogCisgICAgLy8gRm9yY2VzIHRoZSBtYXhpbXVtIHBhZ2Ugc2NhbGUgY29tcHV0ZWQgZnJv
bSB0aGUgdmlld3BvcnQgbWV0YSB0YWcgdG8gYmUKKyAgICAvLyBhdCBsZWFzdCBzY2FsZUZhY3Rv
ciAocHJldmVudHMgdGhlIGNvbnRlbnQgaW4gdGhlIHZpZXcgZnJvbSBibG9ja2luZworICAgIC8v
IHNjYWxpbmcpLiBVc2UgLTEgZm9yIHNjYWxlRmFjdG9yIHRvIHVuY29uc3RyYWluIHRoZSBtYXgg
cGFnZSBzY2FsZS4KKyAgICB2aXJ0dWFsIHZvaWQgc2V0TWluaW11bU1heFBhZ2VTY2FsZUZyb21D
b250ZW50KGZsb2F0IHNjYWxlRmFjdG9yKSA9IDA7CisKICAgICB2aXJ0dWFsIGZsb2F0IG1pbmlt
dW1QYWdlU2NhbGVGYWN0b3IoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBmbG9hdCBtYXhpbXVt
UGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IGRkMWUyMTA0YmRiOGQwNzdkODgyMTZl
ZDVhNDdhMDJmM2ZkMjJjYjkuLjgxZjBhMjVkYzJjYTY4NmI2NDRhZDA2ZDk2NjQzN2JlMDA1NWRk
ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudElt
cGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwu
Y3BwCkBAIC02NTcsNiArNjU3LDExIEBAIHZvaWQgQ2hyb21lQ2xpZW50SW1wbDo6ZGlzcGF0Y2hW
aWV3cG9ydFByb3BlcnRpZXNEaWRDaGFuZ2UoY29uc3QgVmlld3BvcnRBcmd1bWVuCiAgICAgICAg
IGFyZ3MsIHNldHRpbmdzLT5sYXlvdXRGYWxsYmFja1dpZHRoKCksIGRldmljZVJlY3Qud2lkdGgs
IGRldmljZVJlY3QuaGVpZ2h0LAogICAgICAgICBkcGksIEludFNpemUoZGV2aWNlUmVjdC53aWR0
aCwgZGV2aWNlUmVjdC5oZWlnaHQpKTsKIAorICAgIGlmIChtX3dlYlZpZXctPm1pbmltdW1NYXhQ
YWdlU2NhbGVGcm9tQ29udGVudCgpICE9IC0xKSB7CisgICAgICAgIGNvbXB1dGVkLm1heGltdW1T
Y2FsZSA9IG1heChjb21wdXRlZC5tYXhpbXVtU2NhbGUsIG1fd2ViVmlldy0+bWluaW11bU1heFBh
Z2VTY2FsZUZyb21Db250ZW50KCkpOworICAgICAgICBjb21wdXRlZC51c2VyU2NhbGFibGUgPSB0
cnVlOworICAgIH0KKwogICAgIGludCBsYXlvdXRXaWR0aCA9IGNvbXB1dGVkLmxheW91dFNpemUu
d2lkdGgoKTsKICAgICBpbnQgbGF5b3V0SGVpZ2h0ID0gY29tcHV0ZWQubGF5b3V0U2l6ZS5oZWln
aHQoKTsKICAgICBtX3dlYlZpZXctPnNldEZpeGVkTGF5b3V0U2l6ZShJbnRTaXplKGxheW91dFdp
ZHRoLCBsYXlvdXRIZWlnaHQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJ
bXBsLmNwcAppbmRleCA2N2I3YzA0MWU2MjgzNTI2YjA3MGVjZWFhOTFkODQ5MWIyNzk0YTc1Li42
MjUwNDA1ZDZjZjMxNWM0NTQ1Y2UyODc3M2ZmNGY4Zjk1MTY3YzhmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0zODYsNiArMzg2LDcgQEAgV2ViVmll
d0ltcGw6OldlYlZpZXdJbXBsKFdlYlZpZXdDbGllbnQqIGNsaWVudCkKICAgICAsIG1fcGFnZURl
ZmluZWRNYXhpbXVtUGFnZVNjYWxlRmFjdG9yKC0xKQogICAgICwgbV9taW5pbXVtUGFnZVNjYWxl
RmFjdG9yKG1pblBhZ2VTY2FsZUZhY3RvcikKICAgICAsIG1fbWF4aW11bVBhZ2VTY2FsZUZhY3Rv
cihtYXhQYWdlU2NhbGVGYWN0b3IpCisgICAgLCBtX21pbmltdW1NYXhQYWdlU2NhbGVGcm9tQ29u
dGVudCgtMSkKICAgICAsIG1fcGFnZVNjYWxlRmFjdG9ySXNTZXQoZmFsc2UpCiAgICAgLCBtX2Nv
bnRleHRNZW51QWxsb3dlZChmYWxzZSkKICAgICAsIG1fZG9pbmdEcmFnQW5kRHJvcChmYWxzZSkK
QEAgLTI1NDQsNiArMjU0NSwxNiBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRQYWdlU2NhbGVGYWN0
b3JMaW1pdHMoZmxvYXQgbWluUGFnZVNjYWxlLCBmbG9hdCBtYXhQYWdlU2NhbAogICAgIGNvbXB1
dGVQYWdlU2NhbGVGYWN0b3JMaW1pdHMoKTsKIH0KIAordm9pZCBXZWJWaWV3SW1wbDo6c2V0TWlu
aW11bU1heFBhZ2VTY2FsZUZyb21Db250ZW50KGZsb2F0IHNjYWxlRmFjdG9yKQoreworICAgIG1f
bWluaW11bU1heFBhZ2VTY2FsZUZyb21Db250ZW50ID0gc2NhbGVGYWN0b3I7CisKKyAgICBpZiAo
IXBhZ2UoKSB8fCAhcGFnZSgpLT5tYWluRnJhbWUoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
bV9wYWdlLT5jaHJvbWUoKS0+Y2xpZW50KCktPmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlk
Q2hhbmdlKHBhZ2UoKS0+bWFpbkZyYW1lKCktPmRvY3VtZW50KCktPnZpZXdwb3J0QXJndW1lbnRz
KCkpOworfQorCiBib29sIFdlYlZpZXdJbXBsOjpjb21wdXRlUGFnZVNjYWxlRmFjdG9yTGltaXRz
KCkKIHsKICAgICBpZiAobV9wYWdlRGVmaW5lZE1pbmltdW1QYWdlU2NhbGVGYWN0b3IgPT0gLTEg
fHwgbV9wYWdlRGVmaW5lZE1heGltdW1QYWdlU2NhbGVGYWN0b3IgPT0gLTEpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaAppbmRleCA0ZjVjMDQ4ZDk3NzQyYWQ1OWIxNWVj
YjM0M2Q4NWM4ZDNhMDMxODZmLi4zNWIwNmI1MmMzNWFlOGU2M2Q4ZmQwYWE4Mzg3MDE2NDRlOWYy
MWEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKQEAgLTIwMyw2
ICsyMDMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvclBy
ZXNlcnZpbmdTY3JvbGxPZmZzZXQoZmxvYXQpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdlU2Nh
bGVGYWN0b3IoZmxvYXQgc2NhbGVGYWN0b3IsIGNvbnN0IFdlYlBvaW50JiBvcmlnaW4pOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMoZmxvYXQgbWluUGFnZVNjYWxl
LCBmbG9hdCBtYXhQYWdlU2NhbGUpOworICAgIHZpcnR1YWwgdm9pZCBzZXRNaW5pbXVtTWF4UGFn
ZVNjYWxlRnJvbUNvbnRlbnQoZmxvYXQgc2NhbGVGYWN0b3IpOwogICAgIHZpcnR1YWwgZmxvYXQg
bWluaW11bVBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0OwogICAgIHZpcnR1YWwgZmxvYXQgbWF4aW11
bVBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0OwogCkBAIC0zNjEsNiArMzYyLDggQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gbV9wYWdlLmdldCgpOwogICAgIH0KIAorICAgIGZsb2F0IG1pbmltdW1N
YXhQYWdlU2NhbGVGcm9tQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fbWluaW11bU1heFBhZ2VT
Y2FsZUZyb21Db250ZW50OyB9CisKICAgICBXZWJDb3JlOjpSZW5kZXJUaGVtZSogdGhlbWUoKSBj
b25zdDsKIAogICAgIC8vIFJldHVybnMgdGhlIG1haW4gZnJhbWUgYXNzb2NpYXRlZCB3aXRoIHRo
aXMgdmlldy4gVGhpcyBtYXkgYmUgbnVsbCB3aGVuCkBAIC03MDYsNiArNzA5LDcgQEAgcHJpdmF0
ZToKICAgICBmbG9hdCBtX3BhZ2VEZWZpbmVkTWF4aW11bVBhZ2VTY2FsZUZhY3RvcjsKICAgICBm
bG9hdCBtX21pbmltdW1QYWdlU2NhbGVGYWN0b3I7CiAgICAgZmxvYXQgbV9tYXhpbXVtUGFnZVNj
YWxlRmFjdG9yOworICAgIGZsb2F0IG1fbWluaW11bU1heFBhZ2VTY2FsZUZyb21Db250ZW50Owog
CiAgICAgYm9vbCBtX3BhZ2VTY2FsZUZhY3RvcklzU2V0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKaW5kZXggNDA3MDU4MDhkODViYTBkZTAwNzg5
OGFmZTZhMmM3NjE2NWNjMjQ0NC4uNDI3MWQzMTMzY2VmOGQ0Yzk0NTQwNzhlMzczNjFkMzhlYmJl
MGU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRl
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNw
cApAQCAtMjgyLDYgKzI4MiwyOCBAQCBURVNUX0YoV2ViRnJhbWVUZXN0LCBGaXhlZExheW91dElu
aXRpYWxpemVBdE1pbmltdW1QYWdlU2NhbGUpCiAgICAgd2ViVmlld0ltcGwtPnJlc2l6ZShXZWJT
aXplKHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0ICsgMTAwKSk7CiAgICAgRVhQRUNUX0VR
KHVzZXJQaW5jaFBhZ2VTY2FsZUZhY3Rvciwgd2ViVmlld0ltcGwtPnBhZ2VTY2FsZUZhY3Rvcigp
KTsKIH0KKworVEVTVF9GKFdlYkZyYW1lVGVzdCwgQ2FuT3ZlcnJpZGVNYXhpbXVtU2NhbGVGYWN0
b3IpCit7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgibm9fc2NhbGVfZm9yX3lvdS5o
dG1sIik7CisKKyAgICBGaXhlZExheW91dFRlc3RXZWJWaWV3Q2xpZW50IGNsaWVudDsKKyAgICBj
bGllbnQubV9zY3JlZW5JbmZvLmhvcml6b250YWxEUEkgPSAxNjA7CisgICAgaW50IHZpZXdwb3J0
V2lkdGggPSA2NDA7CisgICAgaW50IHZpZXdwb3J0SGVpZ2h0ID0gNDgwOworICAgIGNsaWVudC5t
X3dpbmRvd1JlY3QgPSBXZWJSZWN0KDAsIDAsIHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0
KTsKKworICAgIFdlYlZpZXdJbXBsKiB3ZWJWaWV3SW1wbCA9IHN0YXRpY19jYXN0PFdlYlZpZXdJ
bXBsKj4oRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExvYWQobV9iYXNlVVJMICsg
Im5vX3NjYWxlX2Zvcl95b3UuaHRtbCIsIHRydWUsIDAsICZjbGllbnQpKTsKKyAgICB3ZWJWaWV3
SW1wbC0+ZW5hYmxlRml4ZWRMYXlvdXRNb2RlKHRydWUpOworICAgIHdlYlZpZXdJbXBsLT5zZXR0
aW5ncygpLT5zZXRWaWV3cG9ydEVuYWJsZWQodHJ1ZSk7CisgICAgd2ViVmlld0ltcGwtPnJlc2l6
ZShXZWJTaXplKHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0KSk7CisKKyAgICBFWFBFQ1Rf
RVEoMS4wZiwgd2ViVmlld0ltcGwtPm1heGltdW1QYWdlU2NhbGVGYWN0b3IoKSk7CisKKyAgICB3
ZWJWaWV3SW1wbC0+c2V0TWluaW11bU1heFBhZ2VTY2FsZUZyb21Db250ZW50KDMuMGYpOworCisg
ICAgRVhQRUNUX0VRKDMuMGYsIHdlYlZpZXdJbXBsLT5tYXhpbXVtUGFnZVNjYWxlRmFjdG9yKCkp
OworfQogI2VuZGlmCiAKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvbm9fc2NhbGVfZm9yX3lvdS5odG1sIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL25vX3NjYWxlX2Zvcl95b3UuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi44NmJhYzJjYWI4NTAxZmJhZGVmOGM4YzVjNGE5ZmEyNjc1ODEyZGM1Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL25vX3NjYWxl
X2Zvcl95b3UuaHRtbApAQCAtMCwwICsxIEBACis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVu
dD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0x
LjAsIHVzZXItc2NhbGFibGU9bm8iID4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149367</attachid>
            <date>2012-06-25 15:20:35 -0700</date>
            <delta_ts>2012-06-25 15:59:38 -0700</delta_ts>
            <desc>work in progress</desc>
            <filename>bug-89406-20120625152035.patch</filename>
            <type>text/plain</type>
            <size>5659</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9X
ZWJWaWV3LmgKaW5kZXggYzE1Mjk4MjA0MGQ5NDAzZWM3YmI4NGQ3YjQ2YjgxMTNhYTc5NGRlNS4u
NGEyODA0ZmNhYTI2OTUyMzA3NDIzNDA2OTA2NTI4ZjkxMDJhYzZjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMjQ5LDYgKzI0OSwxMSBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCBmbG9hdCBtaW5pbXVtUGFnZVNjYWxlRmFjdG9yKCkgY29uc3QgPSAwOwogICAg
IHZpcnR1YWwgZmxvYXQgbWF4aW11bVBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0ID0gMDsKIAorICAg
IC8vIFByZXZlbnQgdGhlIHdlYiBwYWdlIGZyb20gc2V0dGluZyBhIG1heGltdW0gc2NhbGUgdmlh
IHRoZSB2aWV3cG9ydCBtZXRhCisgICAgLy8gdGFnLiBUaGlzIGlzIGFuIGFjY2Vzc2liaWxpdHkg
ZmVhdHVyZSB0aGF0IGxldHMgZm9sa3Mgem9vbSBpbiB0byB3ZWIKKyAgICAvLyBwYWdlcyBldmVu
IGlmIHRoZSB3ZWIgcGFnZSB0cmllcyB0byBibG9jayBzY2FsaW5nLgorICAgIHZpcnR1YWwgdm9p
ZCBzZXRJZ25vcmVWaWV3cG9ydFRhZ01heGltdW1TY2FsZShib29sKSA9IDA7CisKICAgICAvLyBU
aGUgcmF0aW8gb2YgdGhlIGN1cnJlbnQgZGV2aWNlJ3Mgc2NyZWVuIERQSSB0byB0aGUgdGFyZ2V0
IGRldmljZSdzIHNjcmVlbiBEUEkuCiAgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VTY2FsZUZhY3Rv
cigpIGNvbnN0ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
Q2hyb21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVD
bGllbnRJbXBsLmNwcAppbmRleCBkZDFlMjEwNGJkYjhkMDc3ZDg4MjE2ZWQ1YTQ3YTAyZjNmZDIy
Y2I5Li41MGM1NjA5MDgwYTU5ZGUzNjYxZmI3N2ViMjMyMGZlZjY4NDU0MTU2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApAQCAtNjU3LDYg
KzY1NywxMSBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0
aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbgogICAgICAgICBhcmdzLCBzZXR0aW5n
cy0+bGF5b3V0RmFsbGJhY2tXaWR0aCgpLCBkZXZpY2VSZWN0LndpZHRoLCBkZXZpY2VSZWN0Lmhl
aWdodCwKICAgICAgICAgZHBpLCBJbnRTaXplKGRldmljZVJlY3Qud2lkdGgsIGRldmljZVJlY3Qu
aGVpZ2h0KSk7CiAKKyAgICBpZiAobV93ZWJWaWV3LT5pZ25vcmVWaWV3cG9ydFRhZ01heGltdW1T
Y2FsZSgpKSB7CisgICAgICAgIGNvbXB1dGVkLm1heGltdW1TY2FsZSA9IG1heChjb21wdXRlZC5t
YXhpbXVtU2NhbGUsIG1fd2ViVmlldy0+bWF4UGFnZVNjYWxlRmFjdG9yKTsKKyAgICAgICAgY29t
cHV0ZWQudXNlclNjYWxhYmxlID0gdHJ1ZTsKKyAgICB9CisKICAgICBpbnQgbGF5b3V0V2lkdGgg
PSBjb21wdXRlZC5sYXlvdXRTaXplLndpZHRoKCk7CiAgICAgaW50IGxheW91dEhlaWdodCA9IGNv
bXB1dGVkLmxheW91dFNpemUuaGVpZ2h0KCk7CiAgICAgbV93ZWJWaWV3LT5zZXRGaXhlZExheW91
dFNpemUoSW50U2l6ZShsYXlvdXRXaWR0aCwgbGF5b3V0SGVpZ2h0KSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggZDIzOTNjMzFjMzE4Y2M5YTg4ZjIz
ODk2M2I0MzZhMWE5MDFkN2M5OC4uMDJkYjYzZTgwMDQwMjZhN2Q4NGVlODkyMTY5MGUzZjE5MmE4
OTA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcApAQCAt
Mzg2LDYgKzM4Niw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3Q2xpZW50KiBj
bGllbnQpCiAgICAgLCBtX3BhZ2VEZWZpbmVkTWF4aW11bVBhZ2VTY2FsZUZhY3RvcigtMSkKICAg
ICAsIG1fbWluaW11bVBhZ2VTY2FsZUZhY3RvcihtaW5QYWdlU2NhbGVGYWN0b3IpCiAgICAgLCBt
X21heGltdW1QYWdlU2NhbGVGYWN0b3IobWF4UGFnZVNjYWxlRmFjdG9yKQorICAgICwgbV9pZ25v
cmVWaWV3cG9ydFRhZ01heGltdW1TY2FsZShmYWxzZSkKICAgICAsIG1fcGFnZVNjYWxlRmFjdG9y
SXNTZXQoZmFsc2UpCiAgICAgLCBtX2NvbnRleHRNZW51QWxsb3dlZChmYWxzZSkKICAgICAsIG1f
ZG9pbmdEcmFnQW5kRHJvcChmYWxzZSkKQEAgLTI2MDcsNiArMjYwOCwxNiBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjpzZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMoZmxvYXQgbWluUGFnZVNjYWxlLCBmbG9h
dCBtYXhQYWdlU2NhbAogICAgIGNvbXB1dGVQYWdlU2NhbGVGYWN0b3JMaW1pdHMoKTsKIH0KIAor
dm9pZCBXZWJWaWV3SW1wbDo6c2V0SWdub3JlVmlld3BvcnRUYWdNYXhpbXVtU2NhbGUoYm9vbCBm
bGFnKQoreworICAgIG1faWdub3JlVmlld3BvcnRUYWdNYXhpbXVtU2NhbGUgPSBmbGFnOworCisg
ICAgaWYgKCFwYWdlKCkgfHwgIXBhZ2UoKS0+bWFpbkZyYW1lKCkpCisgICAgICAgIHJldHVybjsK
KworICAgIG1fcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5kaXNwYXRjaFZpZXdwb3J0UHJvcGVy
dGllc0RpZENoYW5nZShwYWdlKCktPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT52aWV3cG9ydEFy
Z3VtZW50cygpKTsKK30KKwogYm9vbCBXZWJWaWV3SW1wbDo6Y29tcHV0ZVBhZ2VTY2FsZUZhY3Rv
ckxpbWl0cygpCiB7CiAgICAgaWYgKG1fcGFnZURlZmluZWRNaW5pbXVtUGFnZVNjYWxlRmFjdG9y
ID09IC0xIHx8IG1fcGFnZURlZmluZWRNYXhpbXVtUGFnZVNjYWxlRmFjdG9yID09IC0xKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggZDQ1MjdkYTBkNDdjYWIy
ZmY1OGI4NjEwMTAyMzZhNzYyNjdiZTMzYi4uYTBkZGVkYjgxN2FhOTc3MjYzZjZmNTFjNGFiMzdl
YzYwOTkzMWU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmll
d0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5oCkBA
IC0yMDcsNiArMjA3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQYWdlU2NhbGVG
YWN0b3JMaW1pdHMoZmxvYXQgbWluUGFnZVNjYWxlLCBmbG9hdCBtYXhQYWdlU2NhbGUpOwogICAg
IHZpcnR1YWwgZmxvYXQgbWluaW11bVBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0OwogICAgIHZpcnR1
YWwgZmxvYXQgbWF4aW11bVBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0OworICAgIHZpcnR1YWwgdm9p
ZCBzZXRJZ25vcmVWaWV3cG9ydFRhZ01heGltdW1TY2FsZShib29sKTsKIAogICAgIHZpcnR1YWwg
ZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0RGV2
aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwpAQCAtNDUxLDYgKzQ1Miw4IEBAIHB1YmxpYzoKICAgICAg
ICAgcmV0dXJuIG1fZW11bGF0ZWRUZXh0Wm9vbUZhY3RvcjsKICAgICB9CiAKKyAgICBib29sIGln
bm9yZVZpZXdwb3J0VGFnTWF4aW11bVNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9pZ25vcmVWaWV3
cG9ydFRhZ01heGltdW1TY2FsZTsgfQorCiAgICAgLy8gRGV0ZXJtaW5lcyB3aGV0aGVyIGEgcGFn
ZSBzaG91bGQgZS5nLiBiZSBvcGVuZWQgaW4gYSBiYWNrZ3JvdW5kIHRhYi4KICAgICAvLyBSZXR1
cm5zIGZhbHNlIGlmIGl0IGhhcyBubyBvcGluaW9uLCBpbiB3aGljaCBjYXNlIGl0IGRvZXNuJ3Qg
c2V0ICpwb2xpY3kuCiAgICAgc3RhdGljIGJvb2wgbmF2aWdhdGlvblBvbGljeUZyb21Nb3VzZUV2
ZW50KApAQCAtNzA5LDYgKzcxMiw4IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9taW5pbXVtUGFn
ZVNjYWxlRmFjdG9yOwogICAgIGZsb2F0IG1fbWF4aW11bVBhZ2VTY2FsZUZhY3RvcjsKIAorICAg
IGJvb2wgbV9pZ25vcmVWaWV3cG9ydFRhZ01heGltdW1TY2FsZTsKKwogICAgIGJvb2wgbV9wYWdl
U2NhbGVGYWN0b3JJc1NldDsKIAogICAgIGJvb2wgbV9jb250ZXh0TWVudUFsbG93ZWQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKaW5kZXggNDA3MDU4
MDhkODViYTBkZTAwNzg5OGFmZTZhMmM3NjE2NWNjMjQ0NC4uNGUyYjBjNWVhMDZiOWU2MTExN2Vi
ODE3MmIyYTBkNGViNTVjMmMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
V2ViRnJhbWVUZXN0LmNwcApAQCAtMjg0LDYgKzI4NCwyOCBAQCBURVNUX0YoV2ViRnJhbWVUZXN0
LCBGaXhlZExheW91dEluaXRpYWxpemVBdE1pbmltdW1QYWdlU2NhbGUpCiB9CiAjZW5kaWYKIAor
VEVTVF9GKFdlYkZyYW1lVGVzdCwgQ2FuT3ZlcnJpZGVNYXhpbXVtU2NhbGVGYWN0b3IpCit7Cisg
ICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgibm9fc2NhbGVfZm9yX3lvdS5odG1sIik7CisK
KyAgICBGaXhlZExheW91dFRlc3RXZWJWaWV3Q2xpZW50IGNsaWVudDsKKyAgICBjbGllbnQubV9z
Y3JlZW5JbmZvLmhvcml6b250YWxEUEkgPSAxNjA7CisgICAgaW50IHZpZXdwb3J0V2lkdGggPSA2
NDA7CisgICAgaW50IHZpZXdwb3J0SGVpZ2h0ID0gNDgwOworICAgIGNsaWVudC5tX3dpbmRvd1Jl
Y3QgPSBXZWJSZWN0KDAsIDAsIHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0KTsKKworICAg
IFdlYlZpZXdJbXBsKiB3ZWJWaWV3SW1wbCA9IHN0YXRpY19jYXN0PFdlYlZpZXdJbXBsKj4oRnJh
bWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExvYWQobV9iYXNlVVJMICsgIm5vX3NjYWxl
X2Zvcl95b3UuaHRtbCIsIHRydWUsIDAsICZjbGllbnQpKTsKKyAgICB3ZWJWaWV3SW1wbC0+ZW5h
YmxlRml4ZWRMYXlvdXRNb2RlKHRydWUpOworICAgIHdlYlZpZXdJbXBsLT5zZXR0aW5ncygpLT5z
ZXRWaWV3cG9ydEVuYWJsZWQodHJ1ZSk7CisgICAgd2ViVmlld0ltcGwtPnJlc2l6ZShXZWJTaXpl
KHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0KSk7CisKKyAgICBFWFBFQ1RfRVEoMS4wZiwg
d2ViVmlld0ltcGwtPm1heGltdW1QYWdlU2NhbGVGYWN0b3IoKSk7CisKKyAgICB3ZWJWaWV3SW1w
bC0+c2V0SWdub3JlVmlld3BvcnRUYWdNYXhpbXVtU2NhbGUodHJ1ZSk7CisKKyAgICBFWFBFQ1Rf
RVEoNC4wZiwgd2ViVmlld0ltcGwtPm1heGltdW1QYWdlU2NhbGVGYWN0b3IoKSk7Cit9CisKICNp
ZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCiBURVNUX0YoV2ViRnJhbWVUZXN0LCBEaXZBdXRvWm9v
bVBhcmFtc1Rlc3QpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149379</attachid>
            <date>2012-06-25 15:59:55 -0700</date>
            <delta_ts>2012-06-25 16:07:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89406-20120625155954.patch</filename>
            <type>text/plain</type>
            <size>7321</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDdmOWE1ZTUyMTJiYWQxZGMzM2U5YjQ4MmI1MGQ5OTg0Zjg3ZWE2MmYuLjg1NDJlZTNlMTE2YjRj
MTA0NzBiNTA1MGExMzQyMjhhNWZkMTdlNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMTItMDYtMjUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBbQ2hyb21pdW1dIExldCB0aGUgZW1iZWRkZXIgb3ZlcnJpZGUgdGhlIG1h
eCBwYWdlIHNjYWxlIGZhY3RvciBzZXQgYnkgdGhlIHBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5NDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hyb21lIG9uIEFuZHJvaWQgaGFzIGFuIG9wdGlv
biB0byBmb3JjZSB0aGUgd2ViIHNpdGUgdG8gYWxsb3cgcGFnZQorICAgICAgICBzY2FsaW5nIChm
b3IgYWNjZXNzaWJpbGl0eSkuIFRoaXMgcGF0Y2ggYWRkcworICAgICAgICBXZWJWaWV3OjpzZXRJ
Z25vcmVWaWV3cG9ydFRhZ01heGltdW1TY2FsZSwgd2hpY2ggaW5zdHJ1Y3RzIHRoZSBXZWJWaWV3
CisgICAgICAgIHRvIGlnbm9yZSB0aGUgbWF4aW11bSBzY2FsZSBmYWN0b3Igc3VwcGxpZWQgYnkg
YnkgdGhlIHBhZ2UgaW4gdGhlCisgICAgICAgIHZpZXdwb3J0IG1ldGEgdGFnLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaXMgYSBiaXQgZGlmZmVyZW50IGZyb20gaG93IHRoaXMgaXMgaW1wbGVtZW50
ZWQgb24gdGhlCisgICAgICAgIGNocm9taXVtLWFuZHJvaWQgYnJhbmNoLCBidXQgSSdsbCBjbGVh
biB1cCB0aGUgYnJhbmNoIG9uY2UgdGhpcyBwYXRjaAorICAgICAgICBsYW5kcy4KKworICAgICAg
ICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgIChXZWJWaWV3KToKKyAgICAgICAgKiBzcmMv
Q2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6
OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKToKKyAgICAgICAgKiBzcmMvV2Vi
Vmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SWdub3JlVmlld3BvcnRUYWdNYXhp
bXVtU2NhbGUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
aDoKKyAgICAgICAgKFdlYlZpZXdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
Omlnbm9yZVZpZXdwb3J0VGFnTWF4aW11bVNjYWxlKToKKyAgICAgICAgKiB0ZXN0cy9XZWJGcmFt
ZVRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpURVNUX0YpOgorICAgICAgICAoV2ViS2l0KToK
KwogMjAxMi0wNi0yNSAgSWFuIFZvbGxpY2sgIDx2b2xsaWNrQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbY2hyb21pdW1dIExheWVyIGNocm9taXVtIHNob3VsZCBuZWVkIGEgcmVkcmF3IGFmdGVy
IGdldHRpbmcgaXRzIGZpcnN0IG5vbi1lbXB0eSBib3VuZHMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggYzE1Mjk4MjA0MGQ5NDAzZWM3YmI4NGQ3YjQ2YjgxMTNh
YTc5NGRlNS4uNGEyODA0ZmNhYTI2OTUyMzA3NDIzNDA2OTA2NTI4ZjkxMDJhYzZjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMjQ5LDYgKzI0OSwxMSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBmbG9hdCBtaW5pbXVtUGFnZVNjYWxlRmFjdG9yKCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgZmxvYXQgbWF4aW11bVBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0ID0g
MDsKIAorICAgIC8vIFByZXZlbnQgdGhlIHdlYiBwYWdlIGZyb20gc2V0dGluZyBhIG1heGltdW0g
c2NhbGUgdmlhIHRoZSB2aWV3cG9ydCBtZXRhCisgICAgLy8gdGFnLiBUaGlzIGlzIGFuIGFjY2Vz
c2liaWxpdHkgZmVhdHVyZSB0aGF0IGxldHMgZm9sa3Mgem9vbSBpbiB0byB3ZWIKKyAgICAvLyBw
YWdlcyBldmVuIGlmIHRoZSB3ZWIgcGFnZSB0cmllcyB0byBibG9jayBzY2FsaW5nLgorICAgIHZp
cnR1YWwgdm9pZCBzZXRJZ25vcmVWaWV3cG9ydFRhZ01heGltdW1TY2FsZShib29sKSA9IDA7CisK
ICAgICAvLyBUaGUgcmF0aW8gb2YgdGhlIGN1cnJlbnQgZGV2aWNlJ3Mgc2NyZWVuIERQSSB0byB0
aGUgdGFyZ2V0IGRldmljZSdzIHNjcmVlbiBEUEkuCiAgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VT
Y2FsZUZhY3RvcigpIGNvbnN0ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCBkZDFlMjEwNGJkYjhkMDc3ZDg4MjE2ZWQ1YTQ3
YTAyZjNmZDIyY2I5Li41MGM1NjA5MDgwYTU5ZGUzNjYxZmI3N2ViMjMyMGZlZjY4NDU0MTU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApA
QCAtNjU3LDYgKzY1NywxMSBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OmRpc3BhdGNoVmlld3Bv
cnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbgogICAgICAgICBhcmdz
LCBzZXR0aW5ncy0+bGF5b3V0RmFsbGJhY2tXaWR0aCgpLCBkZXZpY2VSZWN0LndpZHRoLCBkZXZp
Y2VSZWN0LmhlaWdodCwKICAgICAgICAgZHBpLCBJbnRTaXplKGRldmljZVJlY3Qud2lkdGgsIGRl
dmljZVJlY3QuaGVpZ2h0KSk7CiAKKyAgICBpZiAobV93ZWJWaWV3LT5pZ25vcmVWaWV3cG9ydFRh
Z01heGltdW1TY2FsZSgpKSB7CisgICAgICAgIGNvbXB1dGVkLm1heGltdW1TY2FsZSA9IG1heChj
b21wdXRlZC5tYXhpbXVtU2NhbGUsIG1fd2ViVmlldy0+bWF4UGFnZVNjYWxlRmFjdG9yKTsKKyAg
ICAgICAgY29tcHV0ZWQudXNlclNjYWxhYmxlID0gdHJ1ZTsKKyAgICB9CisKICAgICBpbnQgbGF5
b3V0V2lkdGggPSBjb21wdXRlZC5sYXlvdXRTaXplLndpZHRoKCk7CiAgICAgaW50IGxheW91dEhl
aWdodCA9IGNvbXB1dGVkLmxheW91dFNpemUuaGVpZ2h0KCk7CiAgICAgbV93ZWJWaWV3LT5zZXRG
aXhlZExheW91dFNpemUoSW50U2l6ZShsYXlvdXRXaWR0aCwgbGF5b3V0SGVpZ2h0KSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggZDIzOTNjMzFjMzE4
Y2M5YTg4ZjIzODk2M2I0MzZhMWE5MDFkN2M5OC4uMDJkYjYzZTgwMDQwMjZhN2Q4NGVlODkyMTY5
MGUzZjE5MmE4OTA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcApAQCAtMzg2LDYgKzM4Niw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3
Q2xpZW50KiBjbGllbnQpCiAgICAgLCBtX3BhZ2VEZWZpbmVkTWF4aW11bVBhZ2VTY2FsZUZhY3Rv
cigtMSkKICAgICAsIG1fbWluaW11bVBhZ2VTY2FsZUZhY3RvcihtaW5QYWdlU2NhbGVGYWN0b3Ip
CiAgICAgLCBtX21heGltdW1QYWdlU2NhbGVGYWN0b3IobWF4UGFnZVNjYWxlRmFjdG9yKQorICAg
ICwgbV9pZ25vcmVWaWV3cG9ydFRhZ01heGltdW1TY2FsZShmYWxzZSkKICAgICAsIG1fcGFnZVNj
YWxlRmFjdG9ySXNTZXQoZmFsc2UpCiAgICAgLCBtX2NvbnRleHRNZW51QWxsb3dlZChmYWxzZSkK
ICAgICAsIG1fZG9pbmdEcmFnQW5kRHJvcChmYWxzZSkKQEAgLTI2MDcsNiArMjYwOCwxNiBAQCB2
b2lkIFdlYlZpZXdJbXBsOjpzZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMoZmxvYXQgbWluUGFnZVNj
YWxlLCBmbG9hdCBtYXhQYWdlU2NhbAogICAgIGNvbXB1dGVQYWdlU2NhbGVGYWN0b3JMaW1pdHMo
KTsKIH0KIAordm9pZCBXZWJWaWV3SW1wbDo6c2V0SWdub3JlVmlld3BvcnRUYWdNYXhpbXVtU2Nh
bGUoYm9vbCBmbGFnKQoreworICAgIG1faWdub3JlVmlld3BvcnRUYWdNYXhpbXVtU2NhbGUgPSBm
bGFnOworCisgICAgaWYgKCFwYWdlKCkgfHwgIXBhZ2UoKS0+bWFpbkZyYW1lKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5kaXNwYXRjaFZpZXdw
b3J0UHJvcGVydGllc0RpZENoYW5nZShwYWdlKCktPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT52
aWV3cG9ydEFyZ3VtZW50cygpKTsKK30KKwogYm9vbCBXZWJWaWV3SW1wbDo6Y29tcHV0ZVBhZ2VT
Y2FsZUZhY3RvckxpbWl0cygpCiB7CiAgICAgaWYgKG1fcGFnZURlZmluZWRNaW5pbXVtUGFnZVNj
YWxlRmFjdG9yID09IC0xIHx8IG1fcGFnZURlZmluZWRNYXhpbXVtUGFnZVNjYWxlRmFjdG9yID09
IC0xKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggZDQ1Mjdk
YTBkNDdjYWIyZmY1OGI4NjEwMTAyMzZhNzYyNjdiZTMzYi4uYTBkZGVkYjgxN2FhOTc3MjYzZjZm
NTFjNGFiMzdlYzYwOTkzMWU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5oCkBAIC0yMDcsNiArMjA3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQ
YWdlU2NhbGVGYWN0b3JMaW1pdHMoZmxvYXQgbWluUGFnZVNjYWxlLCBmbG9hdCBtYXhQYWdlU2Nh
bGUpOwogICAgIHZpcnR1YWwgZmxvYXQgbWluaW11bVBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0Owog
ICAgIHZpcnR1YWwgZmxvYXQgbWF4aW11bVBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0OworICAgIHZp
cnR1YWwgdm9pZCBzZXRJZ25vcmVWaWV3cG9ydFRhZ01heGltdW1TY2FsZShib29sKTsKIAogICAg
IHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwpAQCAtNDUxLDYgKzQ1Miw4IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIG1fZW11bGF0ZWRUZXh0Wm9vbUZhY3RvcjsKICAgICB9CiAKKyAg
ICBib29sIGlnbm9yZVZpZXdwb3J0VGFnTWF4aW11bVNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9p
Z25vcmVWaWV3cG9ydFRhZ01heGltdW1TY2FsZTsgfQorCiAgICAgLy8gRGV0ZXJtaW5lcyB3aGV0
aGVyIGEgcGFnZSBzaG91bGQgZS5nLiBiZSBvcGVuZWQgaW4gYSBiYWNrZ3JvdW5kIHRhYi4KICAg
ICAvLyBSZXR1cm5zIGZhbHNlIGlmIGl0IGhhcyBubyBvcGluaW9uLCBpbiB3aGljaCBjYXNlIGl0
IGRvZXNuJ3Qgc2V0ICpwb2xpY3kuCiAgICAgc3RhdGljIGJvb2wgbmF2aWdhdGlvblBvbGljeUZy
b21Nb3VzZUV2ZW50KApAQCAtNzA5LDYgKzcxMiw4IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9t
aW5pbXVtUGFnZVNjYWxlRmFjdG9yOwogICAgIGZsb2F0IG1fbWF4aW11bVBhZ2VTY2FsZUZhY3Rv
cjsKIAorICAgIGJvb2wgbV9pZ25vcmVWaWV3cG9ydFRhZ01heGltdW1TY2FsZTsKKwogICAgIGJv
b2wgbV9wYWdlU2NhbGVGYWN0b3JJc1NldDsKIAogICAgIGJvb2wgbV9jb250ZXh0TWVudUFsbG93
ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKaW5k
ZXggNDA3MDU4MDhkODViYTBkZTAwNzg5OGFmZTZhMmM3NjE2NWNjMjQ0NC4uNGUyYjBjNWVhMDZi
OWU2MTExN2ViODE3MmIyYTBkNGViNTVjMmMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcApAQCAtMjg0LDYgKzI4NCwyOCBAQCBURVNUX0YoV2Vi
RnJhbWVUZXN0LCBGaXhlZExheW91dEluaXRpYWxpemVBdE1pbmltdW1QYWdlU2NhbGUpCiB9CiAj
ZW5kaWYKIAorVEVTVF9GKFdlYkZyYW1lVGVzdCwgQ2FuT3ZlcnJpZGVNYXhpbXVtU2NhbGVGYWN0
b3IpCit7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgibm9fc2NhbGVfZm9yX3lvdS5o
dG1sIik7CisKKyAgICBGaXhlZExheW91dFRlc3RXZWJWaWV3Q2xpZW50IGNsaWVudDsKKyAgICBj
bGllbnQubV9zY3JlZW5JbmZvLmhvcml6b250YWxEUEkgPSAxNjA7CisgICAgaW50IHZpZXdwb3J0
V2lkdGggPSA2NDA7CisgICAgaW50IHZpZXdwb3J0SGVpZ2h0ID0gNDgwOworICAgIGNsaWVudC5t
X3dpbmRvd1JlY3QgPSBXZWJSZWN0KDAsIDAsIHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0
KTsKKworICAgIFdlYlZpZXdJbXBsKiB3ZWJWaWV3SW1wbCA9IHN0YXRpY19jYXN0PFdlYlZpZXdJ
bXBsKj4oRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExvYWQobV9iYXNlVVJMICsg
Im5vX3NjYWxlX2Zvcl95b3UuaHRtbCIsIHRydWUsIDAsICZjbGllbnQpKTsKKyAgICB3ZWJWaWV3
SW1wbC0+ZW5hYmxlRml4ZWRMYXlvdXRNb2RlKHRydWUpOworICAgIHdlYlZpZXdJbXBsLT5zZXR0
aW5ncygpLT5zZXRWaWV3cG9ydEVuYWJsZWQodHJ1ZSk7CisgICAgd2ViVmlld0ltcGwtPnJlc2l6
ZShXZWJTaXplKHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0KSk7CisKKyAgICBFWFBFQ1Rf
RVEoMS4wZiwgd2ViVmlld0ltcGwtPm1heGltdW1QYWdlU2NhbGVGYWN0b3IoKSk7CisKKyAgICB3
ZWJWaWV3SW1wbC0+c2V0SWdub3JlVmlld3BvcnRUYWdNYXhpbXVtU2NhbGUodHJ1ZSk7CisKKyAg
ICBFWFBFQ1RfRVEoNC4wZiwgd2ViVmlld0ltcGwtPm1heGltdW1QYWdlU2NhbGVGYWN0b3IoKSk7
Cit9CisKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCiBURVNUX0YoV2ViRnJhbWVUZXN0LCBE
aXZBdXRvWm9vbVBhcmFtc1Rlc3QpCiB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>149381</attachid>
            <date>2012-06-25 16:07:51 -0700</date>
            <delta_ts>2012-06-25 19:00:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89406-20120625160750.patch</filename>
            <type>text/plain</type>
            <size>7758</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIxMTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDdmOWE1ZTUyMTJiYWQxZGMzM2U5YjQ4MmI1MGQ5OTg0Zjg3ZWE2MmYuLjg1NDJlZTNlMTE2YjRj
MTA0NzBiNTA1MGExMzQyMjhhNWZkMTdlNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzUgQEAKKzIwMTItMDYtMjUgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9y
Zz4KKworICAgICAgICBbQ2hyb21pdW1dIExldCB0aGUgZW1iZWRkZXIgb3ZlcnJpZGUgdGhlIG1h
eCBwYWdlIHNjYWxlIGZhY3RvciBzZXQgYnkgdGhlIHBhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTg5NDA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hyb21lIG9uIEFuZHJvaWQgaGFzIGFuIG9wdGlv
biB0byBmb3JjZSB0aGUgd2ViIHNpdGUgdG8gYWxsb3cgcGFnZQorICAgICAgICBzY2FsaW5nIChm
b3IgYWNjZXNzaWJpbGl0eSkuIFRoaXMgcGF0Y2ggYWRkcworICAgICAgICBXZWJWaWV3OjpzZXRJ
Z25vcmVWaWV3cG9ydFRhZ01heGltdW1TY2FsZSwgd2hpY2ggaW5zdHJ1Y3RzIHRoZSBXZWJWaWV3
CisgICAgICAgIHRvIGlnbm9yZSB0aGUgbWF4aW11bSBzY2FsZSBmYWN0b3Igc3VwcGxpZWQgYnkg
YnkgdGhlIHBhZ2UgaW4gdGhlCisgICAgICAgIHZpZXdwb3J0IG1ldGEgdGFnLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggaXMgYSBiaXQgZGlmZmVyZW50IGZyb20gaG93IHRoaXMgaXMgaW1wbGVtZW50
ZWQgb24gdGhlCisgICAgICAgIGNocm9taXVtLWFuZHJvaWQgYnJhbmNoLCBidXQgSSdsbCBjbGVh
biB1cCB0aGUgYnJhbmNoIG9uY2UgdGhpcyBwYXRjaAorICAgICAgICBsYW5kcy4KKworICAgICAg
ICAqIHB1YmxpYy9XZWJWaWV3Lmg6CisgICAgICAgIChXZWJWaWV3KToKKyAgICAgICAgKiBzcmMv
Q2hyb21lQ2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkNocm9tZUNsaWVudEltcGw6
OmRpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKToKKyAgICAgICAgKiBzcmMvV2Vi
Vmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6V2ViVmlld0ltcGwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0SWdub3JlVmlld3BvcnRUYWdNYXhp
bXVtU2NhbGUpOgorICAgICAgICAoV2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViVmlld0ltcGwu
aDoKKyAgICAgICAgKFdlYlZpZXdJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6
Omlnbm9yZVZpZXdwb3J0VGFnTWF4aW11bVNjYWxlKToKKyAgICAgICAgKiB0ZXN0cy9XZWJGcmFt
ZVRlc3QuY3BwOgorICAgICAgICAoV2ViS2l0OjpURVNUX0YpOgorICAgICAgICAoV2ViS2l0KToK
KwogMjAxMi0wNi0yNSAgSWFuIFZvbGxpY2sgIDx2b2xsaWNrQGNocm9taXVtLm9yZz4KIAogICAg
ICAgICBbY2hyb21pdW1dIExheWVyIGNocm9taXVtIHNob3VsZCBuZWVkIGEgcmVkcmF3IGFmdGVy
IGdldHRpbmcgaXRzIGZpcnN0IG5vbi1lbXB0eSBib3VuZHMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3B1YmxpYy9XZWJWaWV3LmgKaW5kZXggYzE1Mjk4MjA0MGQ5NDAzZWM3YmI4NGQ3YjQ2YjgxMTNh
YTc5NGRlNS4uNGEyODA0ZmNhYTI2OTUyMzA3NDIzNDA2OTA2NTI4ZjkxMDJhYzZjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlldy5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXcuaApAQCAtMjQ5LDYgKzI0OSwxMSBAQCBw
dWJsaWM6CiAgICAgdmlydHVhbCBmbG9hdCBtaW5pbXVtUGFnZVNjYWxlRmFjdG9yKCkgY29uc3Qg
PSAwOwogICAgIHZpcnR1YWwgZmxvYXQgbWF4aW11bVBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0ID0g
MDsKIAorICAgIC8vIFByZXZlbnQgdGhlIHdlYiBwYWdlIGZyb20gc2V0dGluZyBhIG1heGltdW0g
c2NhbGUgdmlhIHRoZSB2aWV3cG9ydCBtZXRhCisgICAgLy8gdGFnLiBUaGlzIGlzIGFuIGFjY2Vz
c2liaWxpdHkgZmVhdHVyZSB0aGF0IGxldHMgZm9sa3Mgem9vbSBpbiB0byB3ZWIKKyAgICAvLyBw
YWdlcyBldmVuIGlmIHRoZSB3ZWIgcGFnZSB0cmllcyB0byBibG9jayBzY2FsaW5nLgorICAgIHZp
cnR1YWwgdm9pZCBzZXRJZ25vcmVWaWV3cG9ydFRhZ01heGltdW1TY2FsZShib29sKSA9IDA7CisK
ICAgICAvLyBUaGUgcmF0aW8gb2YgdGhlIGN1cnJlbnQgZGV2aWNlJ3Mgc2NyZWVuIERQSSB0byB0
aGUgdGFyZ2V0IGRldmljZSdzIHNjcmVlbiBEUEkuCiAgICAgdmlydHVhbCBmbG9hdCBkZXZpY2VT
Y2FsZUZhY3RvcigpIGNvbnN0ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9DaHJvbWVDbGllbnRJbXBsLmNwcAppbmRleCBkZDFlMjEwNGJkYjhkMDc3ZDg4MjE2ZWQ1YTQ3
YTAyZjNmZDIyY2I5Li41MGM1NjA5MDgwYTU5ZGUzNjYxZmI3N2ViMjMyMGZlZjY4NDU0MTU2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcApA
QCAtNjU3LDYgKzY1NywxMSBAQCB2b2lkIENocm9tZUNsaWVudEltcGw6OmRpc3BhdGNoVmlld3Bv
cnRQcm9wZXJ0aWVzRGlkQ2hhbmdlKGNvbnN0IFZpZXdwb3J0QXJndW1lbgogICAgICAgICBhcmdz
LCBzZXR0aW5ncy0+bGF5b3V0RmFsbGJhY2tXaWR0aCgpLCBkZXZpY2VSZWN0LndpZHRoLCBkZXZp
Y2VSZWN0LmhlaWdodCwKICAgICAgICAgZHBpLCBJbnRTaXplKGRldmljZVJlY3Qud2lkdGgsIGRl
dmljZVJlY3QuaGVpZ2h0KSk7CiAKKyAgICBpZiAobV93ZWJWaWV3LT5pZ25vcmVWaWV3cG9ydFRh
Z01heGltdW1TY2FsZSgpKSB7CisgICAgICAgIGNvbXB1dGVkLm1heGltdW1TY2FsZSA9IG1heChj
b21wdXRlZC5tYXhpbXVtU2NhbGUsIG1fd2ViVmlldy0+bWF4UGFnZVNjYWxlRmFjdG9yKTsKKyAg
ICAgICAgY29tcHV0ZWQudXNlclNjYWxhYmxlID0gdHJ1ZTsKKyAgICB9CisKICAgICBpbnQgbGF5
b3V0V2lkdGggPSBjb21wdXRlZC5sYXlvdXRTaXplLndpZHRoKCk7CiAgICAgaW50IGxheW91dEhl
aWdodCA9IGNvbXB1dGVkLmxheW91dFNpemUuaGVpZ2h0KCk7CiAgICAgbV93ZWJWaWV3LT5zZXRG
aXhlZExheW91dFNpemUoSW50U2l6ZShsYXlvdXRXaWR0aCwgbGF5b3V0SGVpZ2h0KSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKaW5kZXggZDIzOTNjMzFjMzE4
Y2M5YTg4ZjIzODk2M2I0MzZhMWE5MDFkN2M5OC4uMDJkYjYzZTgwMDQwMjZhN2Q4NGVlODkyMTY5
MGUzZjE5MmE4OTA3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
Vmlld0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBs
LmNwcApAQCAtMzg2LDYgKzM4Niw3IEBAIFdlYlZpZXdJbXBsOjpXZWJWaWV3SW1wbChXZWJWaWV3
Q2xpZW50KiBjbGllbnQpCiAgICAgLCBtX3BhZ2VEZWZpbmVkTWF4aW11bVBhZ2VTY2FsZUZhY3Rv
cigtMSkKICAgICAsIG1fbWluaW11bVBhZ2VTY2FsZUZhY3RvcihtaW5QYWdlU2NhbGVGYWN0b3Ip
CiAgICAgLCBtX21heGltdW1QYWdlU2NhbGVGYWN0b3IobWF4UGFnZVNjYWxlRmFjdG9yKQorICAg
ICwgbV9pZ25vcmVWaWV3cG9ydFRhZ01heGltdW1TY2FsZShmYWxzZSkKICAgICAsIG1fcGFnZVNj
YWxlRmFjdG9ySXNTZXQoZmFsc2UpCiAgICAgLCBtX2NvbnRleHRNZW51QWxsb3dlZChmYWxzZSkK
ICAgICAsIG1fZG9pbmdEcmFnQW5kRHJvcChmYWxzZSkKQEAgLTI2MDcsNiArMjYwOCwxNiBAQCB2
b2lkIFdlYlZpZXdJbXBsOjpzZXRQYWdlU2NhbGVGYWN0b3JMaW1pdHMoZmxvYXQgbWluUGFnZVNj
YWxlLCBmbG9hdCBtYXhQYWdlU2NhbAogICAgIGNvbXB1dGVQYWdlU2NhbGVGYWN0b3JMaW1pdHMo
KTsKIH0KIAordm9pZCBXZWJWaWV3SW1wbDo6c2V0SWdub3JlVmlld3BvcnRUYWdNYXhpbXVtU2Nh
bGUoYm9vbCBmbGFnKQoreworICAgIG1faWdub3JlVmlld3BvcnRUYWdNYXhpbXVtU2NhbGUgPSBm
bGFnOworCisgICAgaWYgKCFwYWdlKCkgfHwgIXBhZ2UoKS0+bWFpbkZyYW1lKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fcGFnZS0+Y2hyb21lKCktPmNsaWVudCgpLT5kaXNwYXRjaFZpZXdw
b3J0UHJvcGVydGllc0RpZENoYW5nZShwYWdlKCktPm1haW5GcmFtZSgpLT5kb2N1bWVudCgpLT52
aWV3cG9ydEFyZ3VtZW50cygpKTsKK30KKwogYm9vbCBXZWJWaWV3SW1wbDo6Y29tcHV0ZVBhZ2VT
Y2FsZUZhY3RvckxpbWl0cygpCiB7CiAgICAgaWYgKG1fcGFnZURlZmluZWRNaW5pbXVtUGFnZVNj
YWxlRmFjdG9yID09IC0xIHx8IG1fcGFnZURlZmluZWRNYXhpbXVtUGFnZVNjYWxlRmFjdG9yID09
IC0xKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwu
aCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgKaW5kZXggZDQ1Mjdk
YTBkNDdjYWIyZmY1OGI4NjEwMTAyMzZhNzYyNjdiZTMzYi4uYTBkZGVkYjgxN2FhOTc3MjYzZjZm
NTFjNGFiMzdlYzYwOTkzMWU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3
SW1wbC5oCkBAIC0yMDcsNiArMjA3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRQ
YWdlU2NhbGVGYWN0b3JMaW1pdHMoZmxvYXQgbWluUGFnZVNjYWxlLCBmbG9hdCBtYXhQYWdlU2Nh
bGUpOwogICAgIHZpcnR1YWwgZmxvYXQgbWluaW11bVBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0Owog
ICAgIHZpcnR1YWwgZmxvYXQgbWF4aW11bVBhZ2VTY2FsZUZhY3RvcigpIGNvbnN0OworICAgIHZp
cnR1YWwgdm9pZCBzZXRJZ25vcmVWaWV3cG9ydFRhZ01heGltdW1TY2FsZShib29sKTsKIAogICAg
IHZpcnR1YWwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IoKSBjb25zdDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0RGV2aWNlU2NhbGVGYWN0b3IoZmxvYXQpOwpAQCAtNDUxLDYgKzQ1Miw4IEBAIHB1Ymxp
YzoKICAgICAgICAgcmV0dXJuIG1fZW11bGF0ZWRUZXh0Wm9vbUZhY3RvcjsKICAgICB9CiAKKyAg
ICBib29sIGlnbm9yZVZpZXdwb3J0VGFnTWF4aW11bVNjYWxlKCkgY29uc3QgeyByZXR1cm4gbV9p
Z25vcmVWaWV3cG9ydFRhZ01heGltdW1TY2FsZTsgfQorCiAgICAgLy8gRGV0ZXJtaW5lcyB3aGV0
aGVyIGEgcGFnZSBzaG91bGQgZS5nLiBiZSBvcGVuZWQgaW4gYSBiYWNrZ3JvdW5kIHRhYi4KICAg
ICAvLyBSZXR1cm5zIGZhbHNlIGlmIGl0IGhhcyBubyBvcGluaW9uLCBpbiB3aGljaCBjYXNlIGl0
IGRvZXNuJ3Qgc2V0ICpwb2xpY3kuCiAgICAgc3RhdGljIGJvb2wgbmF2aWdhdGlvblBvbGljeUZy
b21Nb3VzZUV2ZW50KApAQCAtNzA5LDYgKzcxMiw4IEBAIHByaXZhdGU6CiAgICAgZmxvYXQgbV9t
aW5pbXVtUGFnZVNjYWxlRmFjdG9yOwogICAgIGZsb2F0IG1fbWF4aW11bVBhZ2VTY2FsZUZhY3Rv
cjsKIAorICAgIGJvb2wgbV9pZ25vcmVWaWV3cG9ydFRhZ01heGltdW1TY2FsZTsKKwogICAgIGJv
b2wgbV9wYWdlU2NhbGVGYWN0b3JJc1NldDsKIAogICAgIGJvb2wgbV9jb250ZXh0TWVudUFsbG93
ZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVz
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKaW5k
ZXggNDA3MDU4MDhkODViYTBkZTAwNzg5OGFmZTZhMmM3NjE2NWNjMjQ0NC4uNGUyYjBjNWVhMDZi
OWU2MTExN2ViODE3MmIyYTBkNGViNTVjMmMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcApAQCAtMjg0LDYgKzI4NCwyOCBAQCBURVNUX0YoV2Vi
RnJhbWVUZXN0LCBGaXhlZExheW91dEluaXRpYWxpemVBdE1pbmltdW1QYWdlU2NhbGUpCiB9CiAj
ZW5kaWYKIAorVEVTVF9GKFdlYkZyYW1lVGVzdCwgQ2FuT3ZlcnJpZGVNYXhpbXVtU2NhbGVGYWN0
b3IpCit7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJMTG9hZCgibm9fc2NhbGVfZm9yX3lvdS5o
dG1sIik7CisKKyAgICBGaXhlZExheW91dFRlc3RXZWJWaWV3Q2xpZW50IGNsaWVudDsKKyAgICBj
bGllbnQubV9zY3JlZW5JbmZvLmhvcml6b250YWxEUEkgPSAxNjA7CisgICAgaW50IHZpZXdwb3J0
V2lkdGggPSA2NDA7CisgICAgaW50IHZpZXdwb3J0SGVpZ2h0ID0gNDgwOworICAgIGNsaWVudC5t
X3dpbmRvd1JlY3QgPSBXZWJSZWN0KDAsIDAsIHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0
KTsKKworICAgIFdlYlZpZXdJbXBsKiB3ZWJWaWV3SW1wbCA9IHN0YXRpY19jYXN0PFdlYlZpZXdJ
bXBsKj4oRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExvYWQobV9iYXNlVVJMICsg
Im5vX3NjYWxlX2Zvcl95b3UuaHRtbCIsIHRydWUsIDAsICZjbGllbnQpKTsKKyAgICB3ZWJWaWV3
SW1wbC0+ZW5hYmxlRml4ZWRMYXlvdXRNb2RlKHRydWUpOworICAgIHdlYlZpZXdJbXBsLT5zZXR0
aW5ncygpLT5zZXRWaWV3cG9ydEVuYWJsZWQodHJ1ZSk7CisgICAgd2ViVmlld0ltcGwtPnJlc2l6
ZShXZWJTaXplKHZpZXdwb3J0V2lkdGgsIHZpZXdwb3J0SGVpZ2h0KSk7CisKKyAgICBFWFBFQ1Rf
RVEoMS4wZiwgd2ViVmlld0ltcGwtPm1heGltdW1QYWdlU2NhbGVGYWN0b3IoKSk7CisKKyAgICB3
ZWJWaWV3SW1wbC0+c2V0SWdub3JlVmlld3BvcnRUYWdNYXhpbXVtU2NhbGUodHJ1ZSk7CisKKyAg
ICBFWFBFQ1RfRVEoNC4wZiwgd2ViVmlld0ltcGwtPm1heGltdW1QYWdlU2NhbGVGYWN0b3IoKSk7
Cit9CisKICNpZiBFTkFCTEUoR0VTVFVSRV9FVkVOVFMpCiBURVNUX0YoV2ViRnJhbWVUZXN0LCBE
aXZBdXRvWm9vbVBhcmFtc1Rlc3QpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL2RhdGEvbm9fc2NhbGVfZm9yX3lvdS5odG1sIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9kYXRhL25vX3NjYWxlX2Zvcl95b3UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NmJhYzJj
YWI4NTAxZmJhZGVmOGM4YzVjNGE5ZmEyNjc1ODEyZGM1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL25vX3NjYWxlX2Zvcl95b3UuaHRtbApAQCAt
MCwwICsxIEBACis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdp
ZHRoLCBpbml0aWFsLXNjYWxlPTEuMCwgbWF4aW11bS1zY2FsZT0xLjAsIHVzZXItc2NhbGFibGU9
bm8iID4K
</data>

          </attachment>
      

    </bug>

</bugzilla>