<?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>93108</bug_id>
          
          <creation_ts>2012-08-03 06:38:50 -0700</creation_ts>
          <short_desc>[chromium] Add a test to WebFrameTest for selectRange and visiblePositionForWindowPoint.</short_desc>
          <delta_ts>2012-08-14 10:55:23 -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>
          <dependson>93154</dependson>
          <blocked>93998</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Oli Lan">olilan</reporter>
          <assigned_to name="Oli Lan">olilan</assigned_to>
          <cc>abarth</cc>
    
    <cc>husky</cc>
    
    <cc>olilan</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>686647</commentid>
    <comment_count>0</comment_count>
    <who name="Oli Lan">olilan</who>
    <bug_when>2012-08-03 06:38:50 -0700</bug_when>
    <thetext>[chromium] Add a test to WebFrameTest for selectRange and visiblePositionForWindowPoint.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686651</commentid>
    <comment_count>1</comment_count>
      <attachid>156354</attachid>
    <who name="Oli Lan">olilan</who>
    <bug_when>2012-08-03 06:45:03 -0700</bug_when>
    <thetext>Created attachment 156354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686653</commentid>
    <comment_count>2</comment_count>
    <who name="Oli Lan">olilan</who>
    <bug_when>2012-08-03 06:46:43 -0700</bug_when>
    <thetext>As mentioned in the changelog, this tests https://bugs.webkit.org/show_bug.cgi?id=79117</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686860</commentid>
    <comment_count>3</comment_count>
      <attachid>156354</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-03 09:51:45 -0700</bug_when>
    <thetext>Comment on attachment 156354
Patch

Thanks for the test!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686993</commentid>
    <comment_count>4</comment_count>
      <attachid>156354</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-03 11:36:46 -0700</bug_when>
    <thetext>Comment on attachment 156354
Patch

Clearing flags on attachment: 156354

Committed r124632: &lt;http://trac.webkit.org/changeset/124632&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>686994</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-03 11:36:49 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687089</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-03 13:22:02 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 93154</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694976</commentid>
    <comment_count>7</comment_count>
      <attachid>158330</attachid>
    <who name="Iain Merrick">husky</who>
    <bug_when>2012-08-14 08:00:17 -0700</bug_when>
    <thetext>Created attachment 158330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694987</commentid>
    <comment_count>8</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2012-08-14 08:08:42 -0700</bug_when>
    <thetext>This is an update of Oli&apos;s patch, hopefully passing reliably on all platforms. The crucial changes:

- We manually set the font size and view size. The defaults are all 0, which messes up the rendering.
- We subtract (1,1) from the selection endpoint. This is ugly, but I think it&apos;s correct (see FIXME in bottomRightMinusOne).

And some additional cleanup:

- &quot;&lt;!DOCTYPE html&gt;&quot; added to test files
- Calling webView-&gt;close() after each test
- Added extra tests for editable selections (testing code added in https://bugs.webkit.org/show_bug.cgi?id=92513)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>694993</commentid>
    <comment_count>9</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2012-08-14 08:12:07 -0700</bug_when>
    <thetext>Note: I tried setting the font and view size in createWebViewAndLoad() in FrameTestHelpers.cpp, but that broke several of the other tests. They&apos;re worryingly fragile if they *expect* a zero-width window, so the page is laid out in a narrow vertical line.

It might be worth making all the tests in WebFrameTest more robust, but I figure that&apos;s outside the scope of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695032</commentid>
    <comment_count>10</comment_count>
      <attachid>158330</attachid>
    <who name="Peter Beverloo">peter</who>
    <bug_when>2012-08-14 09:15:09 -0700</bug_when>
    <thetext>Comment on attachment 158330
Patch

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

Some nits.. thanks for the tests!

&gt; Source/WebKit/chromium/tests/WebFrameTest.cpp:976
&gt; +    // FIXME: If we don&apos;t subtract 1 from the x- and y-coordinates of the

Should the API be fixed? If so, it may be a good idea to file a bug about it doesn&apos;t fly under the radar (regardless who&apos;s going to fix it).

&gt; Source/WebKit/chromium/tests/WebFrameTest.cpp:997
&gt; +    EXPECT_EQ(&quot;Some test text for testing.&quot;, std::string(frame-&gt;selectionAsText().utf8().data()));

Maybe add a &quot;std::string selectionText(WebFrame*)&quot; helper? I count 14 uses.

&gt; Source/WebKit/chromium/tests/data/select_range_basic.html:9
&gt; +&lt;script&gt;

This &lt;script&gt; should be somewhere in the &lt;body&gt; or &lt;head&gt; element.

&gt; Source/WebKit/chromium/tests/data/select_range_editable.html:11
&gt; +&lt;script&gt;

dito.

&gt; Source/WebKit/chromium/tests/data/select_range_iframe.html:8
&gt; +&lt;script&gt;

dito.

&gt; Source/WebKit/chromium/tests/data/select_range_scroll.html:5
&gt; +&lt;script&gt;

dito.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695037</commentid>
    <comment_count>11</comment_count>
      <attachid>158330</attachid>
    <who name="Iain Merrick">husky</who>
    <bug_when>2012-08-14 09:22:20 -0700</bug_when>
    <thetext>Comment on attachment 158330
Patch

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

&gt;&gt; Source/WebKit/chromium/tests/WebFrameTest.cpp:976
&gt;&gt; +    // FIXME: If we don&apos;t subtract 1 from the x- and y-coordinates of the
&gt; 
&gt; Should the API be fixed? If so, it may be a good idea to file a bug about it doesn&apos;t fly under the radar (regardless who&apos;s going to fix it).

Hmm, I&apos;d like to discuss it with people who understand the code before suggesting a specific fix.

In general, I think this will be covered by the ongoing SelectRange work (https://code.google.com/p/chromium/issues/detail?id=138939), so it will stay on my radar.

&gt;&gt; Source/WebKit/chromium/tests/WebFrameTest.cpp:997
&gt;&gt; +    EXPECT_EQ(&quot;Some test text for testing.&quot;, std::string(frame-&gt;selectionAsText().utf8().data()));
&gt; 
&gt; Maybe add a &quot;std::string selectionText(WebFrame*)&quot; helper? I count 14 uses.

Good idea, done.

&gt;&gt; Source/WebKit/chromium/tests/data/select_range_basic.html:9
&gt;&gt; +&lt;script&gt;
&gt; 
&gt; This &lt;script&gt; should be somewhere in the &lt;body&gt; or &lt;head&gt; element.

Done (along with the others)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695054</commentid>
    <comment_count>12</comment_count>
      <attachid>158348</attachid>
    <who name="Iain Merrick">husky</who>
    <bug_when>2012-08-14 09:37:12 -0700</bug_when>
    <thetext>Created attachment 158348
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695090</commentid>
    <comment_count>13</comment_count>
      <attachid>158348</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-14 10:09:53 -0700</bug_when>
    <thetext>Comment on attachment 158348
Patch

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

Thanks for following up on the tests.

&gt; Source/WebKit/chromium/tests/WebFrameTest.cpp:972
&gt; +static WebPoint topLeft(const WebRect&amp; rect)
&gt; +{
&gt; +    return WebPoint(rect.x, rect.y);
&gt; +}

Should we add this function to WebRect?

&gt; Source/WebKit/chromium/tests/WebFrameTest.cpp:980
&gt; +    // FIXME: If we don&apos;t subtract 1 from the x- and y-coordinates of the
&gt; +    // selection bounds, selectRange() will select the *next* element. That&apos;s
&gt; +    // strictly correct, as hit-testing checks the pixel to the lower-right of
&gt; +    // the input coordinate, but it&apos;s a wart on the API.
&gt; +    return WebPoint(rect.x + rect.width - 1, rect.y + rect.height - 1);

Interesting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695124</commentid>
    <comment_count>14</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2012-08-14 10:29:05 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebKit/chromium/tests/WebFrameTest.cpp:980
&gt; &gt; +    // FIXME: If we don&apos;t subtract 1 from the x- and y-coordinates of the
&gt; &gt; +    // selection bounds, selectRange() will select the *next* element. That&apos;s
&gt; &gt; +    // strictly correct, as hit-testing checks the pixel to the lower-right of
&gt; &gt; +    // the input coordinate, but it&apos;s a wart on the API.
&gt; &gt; +    return WebPoint(rect.x + rect.width - 1, rect.y + rect.height - 1);
&gt; 
&gt; Interesting.

I&apos;m thinking an API change might improve this. I&apos;ve posted some thoughts on https://code.google.com/p/chromium/issues/detail?id=138939</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695129</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-08-14 10:32:56 -0700</bug_when>
    <thetext>&gt; I&apos;m thinking an API change might improve this. I&apos;ve posted some thoughts on https://code.google.com/p/chromium/issues/detail?id=138939

It&apos;s somewhat lame that the bug isn&apos;t publicly visible.  Shall we have this discussion in a public forum, such as bugs.webkit.org?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695141</commentid>
    <comment_count>16</comment_count>
    <who name="Iain Merrick">husky</who>
    <bug_when>2012-08-14 10:45:25 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; &gt; I&apos;m thinking an API change might improve this. I&apos;ve posted some thoughts on https://code.google.com/p/chromium/issues/detail?id=138939
&gt; 
&gt; It&apos;s somewhat lame that the bug isn&apos;t publicly visible.  Shall we have this discussion in a public forum, such as bugs.webkit.org?

Didn&apos;t realize it was locked. Nothing secret here, so I&apos;ve moved my comments to https://bugs.webkit.org/show_bug.cgi?id=93998</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695150</commentid>
    <comment_count>17</comment_count>
      <attachid>158348</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-14 10:55:18 -0700</bug_when>
    <thetext>Comment on attachment 158348
Patch

Clearing flags on attachment: 158348

Committed r125581: &lt;http://trac.webkit.org/changeset/125581&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>695151</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-14 10:55:23 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156354</attachid>
            <date>2012-08-03 06:45:03 -0700</date>
            <delta_ts>2012-08-03 11:36:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93108-20120803144442.patch</filename>
            <type>text/plain</type>
            <size>6162</size>
            <attacher name="Oli Lan">olilan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI0MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IDk2ODQ5OTM0NDc4Y2NmMGNlMjU3MGI1OWE5ZDMwMzkzZWUwZmNhMGYuLmMyZGQ1OTM5YWMwMzcy
OGJhMjRjNjZlN2M4MTY4OWQ3OTRhMGU2YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMjYgQEAKKzIwMTItMDgtMDMgIE9saSBMYW4gIDxvbGlsYW5AY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIGEgdGVzdCB0byBXZWJGcmFtZVRlc3QgZm9yIHNl
bGVjdFJhbmdlIGFuZCB2aXNpYmxlUG9zaXRpb25Gb3JXaW5kb3dQb2ludC4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkzMTA4CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBhIG5ldyB0ZXN0IFdlYkZy
YW1lVGVzdC5TZWxlY3RSYW5nZS4gVGhpcyB0ZXN0cyBXZWJGcmFtZUltcGw6OnNlbGVjdFJhbmdl
LCBhbmQgYWxzbworICAgICAgICBzZXJ2ZXMgdG8gdGVzdCBXZWJGcmFtZUltcGw6OnZpc2libGVQ
b3NpdGlvbkZvcldpbmRvd1BvaW50IGFzIGl0IGlzIHVzZWQgYnkgc2VsZWN0UmFuZ2UuCisKKyAg
ICAgICAgVGhlIHRlc3QgdXNlcyBzYW1wbGUgZmlsZXMgdGhhdCBjb250YWluIHNlbGVjdGVkIHRl
eHQgb24gbG9hZC4gVGhlIHRlc3QgdXNlcworICAgICAgICBXZWJWaWV3SW1wbDo6c2VsZWN0aW9u
Qm91bmRzIHRvIHJldHJpZXZlIHRoZSBlbmRzIG9mIHRoZSBzZWxlY3Rpb24sIHRoZW4gdW5zZWxl
Y3RzCisgICAgICAgIGFuZCBjYWxscyBXZWJGcmFtZUltcGw6OnNlbGVjdFJhbmdlIHRvIGF0dGVt
cHQgdG8gcmVzZWxlY3QgdGhlIHNhbWUgdGV4dC4KKworICAgICAgICBUaHJlZSBjYXNlcyBhcmUg
dGVzdGVkOiB0aGUgbm9ybWFsIGNhc2UsIHRoZSBjYXNlIHdoZXJlIHRoZSBzZWxlY3RlZCB0ZXh0
IGlzIG9mZnNjcmVlbgorICAgICAgICBkdWUgdG8gYSBzY3JvbGwsIGFuZCB0aGUgY2FzZSB3aGVy
ZSB0aGUgc2VsZWN0ZWQgdGV4dCBpcyBpbiBhbiBpZnJhbWUuIFRoaXMgYWxsb3dzIHRoZQorICAg
ICAgICBwcm9ibGVtIGNhc2VzIGFuZCBmaXggaW4gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTc5MTE3IHRvIGJlIHRlc3RlZC4KKworICAgICAgICAqIHRlc3RzL1dlYkZy
YW1lVGVzdC5jcHA6CisgICAgICAgICogdGVzdHMvZGF0YS9zZWxlY3RfcmFuZ2VfYmFzaWMuaHRt
bDogQWRkZWQuCisgICAgICAgICogdGVzdHMvZGF0YS9zZWxlY3RfcmFuZ2VfaWZyYW1lLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIHRlc3RzL2RhdGEvc2VsZWN0X3JhbmdlX3Njcm9sbC5odG1sOiBB
ZGRlZC4KKwogMjAxMi0wOC0wMSAgSWx5YSBUaWtob25vdnNreSAgPGxvaXNsb0BjaHJvbWl1bS5v
cmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogdGVzdCBuYXRpdmUgbWVtb3J5IGluc3RydW1l
bnRhdGlvbiBjb2RlIHdpdGggaGVscCBvZiB1bml0dGVzdHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvV2ViRnJhbWVUZXN0LmNwcAppbmRleCA5Yjc0NWUwMjlhMzMyYjlhOTZiYjdi
YmJjY2M4ZWM0ZDg0NDIzZjQ0Li5iYmYyNjM2NTczZjBmY2I5NTVmYjkzNWY2NTY5OGYxY2ZhMDE5
Mjg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVz
dC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3Bw
CkBAIC04MDQsNCArODA0LDM4IEBAIFRFU1RfRihXZWJGcmFtZVRlc3QsIEdldEZ1bGxIdG1sT2ZQ
YWdlKQogICAgIEVYUEVDVF9UUlVFKHNlbGVjdGlvbkh0bWwuaXNFbXB0eSgpKTsKIH0KIAorVEVT
VF9GKFdlYkZyYW1lVGVzdCwgU2VsZWN0UmFuZ2UpCit7CisgICAgcmVnaXN0ZXJNb2NrZWRIdHRw
VVJMTG9hZCgic2VsZWN0X3JhbmdlX2Jhc2ljLmh0bWwiKTsKKyAgICBXZWJWaWV3KiB3ZWJWaWV3
ID0gRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExvYWQobV9iYXNlVVJMICsgInNl
bGVjdF9yYW5nZV9iYXNpYy5odG1sIiwgdHJ1ZSk7CisgICAgV2ViRnJhbWUqIGZyYW1lID0gd2Vi
Vmlldy0+bWFpbkZyYW1lKCk7CisgICAgV2ViUmVjdCBzdGFydFdlYlJlY3Q7CisgICAgV2ViUmVj
dCBlbmRXZWJSZWN0OworICAgIHdlYlZpZXctPnNlbGVjdGlvbkJvdW5kcyhzdGFydFdlYlJlY3Qs
IGVuZFdlYlJlY3QpOworICAgIGZyYW1lLT5leGVjdXRlQ29tbWFuZChXZWJTdHJpbmc6OmZyb21V
VEY4KCJVbnNlbGVjdCIpKTsKKyAgICBFWFBFQ1RfRVEoIiIsIHN0ZDo6c3RyaW5nKGZyYW1lLT5z
ZWxlY3Rpb25Bc1RleHQoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgZnJhbWUtPnNlbGVjdFJhbmdl
KFdlYlBvaW50KHN0YXJ0V2ViUmVjdC54LCBzdGFydFdlYlJlY3QueSksIFdlYlBvaW50KGVuZFdl
YlJlY3QueCArIGVuZFdlYlJlY3Qud2lkdGgsIGVuZFdlYlJlY3QueSArIGVuZFdlYlJlY3QuaGVp
Z2h0KSk7CisgICAgRVhQRUNUX0VRKCJzb21lIHRlc3QgdGV4dCBmb3IgdGVzdGluZyIsIHN0ZDo6
c3RyaW5nKGZyYW1lLT5zZWxlY3Rpb25Bc1RleHQoKS51dGY4KCkuZGF0YSgpKSk7CisKKyAgICBy
ZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJzZWxlY3RfcmFuZ2Vfc2Nyb2xsLmh0bWwiKTsKKyAg
ICB3ZWJWaWV3ID0gRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmlld0FuZExvYWQobV9iYXNl
VVJMICsgInNlbGVjdF9yYW5nZV9zY3JvbGwuaHRtbCIsIHRydWUpOworICAgIGZyYW1lID0gd2Vi
Vmlldy0+bWFpbkZyYW1lKCk7CisgICAgd2ViVmlldy0+c2VsZWN0aW9uQm91bmRzKHN0YXJ0V2Vi
UmVjdCwgZW5kV2ViUmVjdCk7CisgICAgZnJhbWUtPmV4ZWN1dGVDb21tYW5kKFdlYlN0cmluZzo6
ZnJvbVVURjgoIlVuc2VsZWN0IikpOworICAgIEVYUEVDVF9FUSgiIiwgc3RkOjpzdHJpbmcoZnJh
bWUtPnNlbGVjdGlvbkFzVGV4dCgpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICBmcmFtZS0+c2VsZWN0
UmFuZ2UoV2ViUG9pbnQoc3RhcnRXZWJSZWN0LngsIHN0YXJ0V2ViUmVjdC55KSwgV2ViUG9pbnQo
ZW5kV2ViUmVjdC54ICsgZW5kV2ViUmVjdC53aWR0aCwgZW5kV2ViUmVjdC55ICsgZW5kV2ViUmVj
dC5oZWlnaHQpKTsKKyAgICBFWFBFQ1RfRVEoInNvbWUgb2Zmc2NyZWVuIHRlc3QgdGV4dCBmb3Ig
dGVzdGluZyIsIHN0ZDo6c3RyaW5nKGZyYW1lLT5zZWxlY3Rpb25Bc1RleHQoKS51dGY4KCkuZGF0
YSgpKSk7CisKKyAgICByZWdpc3Rlck1vY2tlZEh0dHBVUkxMb2FkKCJzZWxlY3RfcmFuZ2VfaWZy
YW1lLmh0bWwiKTsKKyAgICB3ZWJWaWV3ID0gRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2ViVmll
d0FuZExvYWQobV9iYXNlVVJMICsgInNlbGVjdF9yYW5nZV9pZnJhbWUuaHRtbCIsIHRydWUpOwor
ICAgIGZyYW1lID0gd2ViVmlldy0+bWFpbkZyYW1lKCk7CisgICAgV2ViRnJhbWUqIHN1YmZyYW1l
ID0gZnJhbWUtPmZpbmRDaGlsZEJ5RXhwcmVzc2lvbihXZWJTdHJpbmc6OmZyb21VVEY4KCIvaHRt
bC9ib2R5L2lmcmFtZSIpKTsKKyAgICB3ZWJWaWV3LT5zZWxlY3Rpb25Cb3VuZHMoc3RhcnRXZWJS
ZWN0LCBlbmRXZWJSZWN0KTsKKyAgICBFWFBFQ1RfRVEoInNvbWUgdGVzdCB0ZXh0IGZvciB0ZXN0
aW5nIiwgc3RkOjpzdHJpbmcoc3ViZnJhbWUtPnNlbGVjdGlvbkFzVGV4dCgpLnV0ZjgoKS5kYXRh
KCkpKTsKKyAgICBzdWJmcmFtZS0+ZXhlY3V0ZUNvbW1hbmQoV2ViU3RyaW5nOjpmcm9tVVRGOCgi
VW5zZWxlY3QiKSk7CisgICAgRVhQRUNUX0VRKCIiLCBzdGQ6OnN0cmluZyhzdWJmcmFtZS0+c2Vs
ZWN0aW9uQXNUZXh0KCkudXRmOCgpLmRhdGEoKSkpOworICAgIHN1YmZyYW1lLT5zZWxlY3RSYW5n
ZShXZWJQb2ludChzdGFydFdlYlJlY3QueCwgc3RhcnRXZWJSZWN0LnkpLCBXZWJQb2ludChlbmRX
ZWJSZWN0LnggKyBlbmRXZWJSZWN0LndpZHRoLCBlbmRXZWJSZWN0LnkgKyBlbmRXZWJSZWN0Lmhl
aWdodCkpOworICAgIEVYUEVDVF9FUSgic29tZSB0ZXN0IHRleHQgZm9yIHRlc3RpbmciLCBzdGQ6
OnN0cmluZyhzdWJmcmFtZS0+c2VsZWN0aW9uQXNUZXh0KCkudXRmOCgpLmRhdGEoKSkpOworfQor
CiB9IC8vIG5hbWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9kYXRhL3NlbGVjdF9yYW5nZV9iYXNpYy5odG1sIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9kYXRhL3NlbGVjdF9yYW5nZV9iYXNpYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdmNzY1MzIyMzEy
ZWE5YWMwNmEzYTM1YTMxZmQwNjQzNjVkMjgxZjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvc2VsZWN0X3JhbmdlX2Jhc2ljLmh0bWwKQEAgLTAs
MCArMSw5IEBACis8c3BhbiBpZD0ndGFyZ2V0Jz5zb21lIHRlc3QgdGV4dCBmb3IgdGVzdGluZzwv
c3Bhbj4KKzxzY3JpcHQ+CisgICAgZnVuY3Rpb24gc2VsZWN0KCkgeworICAgICAgICB2YXIgcmFu
Z2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOworICAgICAgICByYW5nZS5zZWxlY3ROb2RlKGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKSk7CisgICAgICAgIHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5hZGRSYW5nZShyYW5nZSk7CisgICAgfQorICAgIHdpbmRvdy5vbmxvYWQgPSBzZWxl
Y3Q7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
ZGF0YS9zZWxlY3RfcmFuZ2VfaWZyYW1lLmh0bWwgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL2RhdGEvc2VsZWN0X3JhbmdlX2lmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY1Yzk3ZTE4NTUx
OTE4NDk4NzdiMzQxMDgzNjA2Yjc4NTk0M2NhMWYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvc2VsZWN0X3JhbmdlX2lmcmFtZS5odG1sCkBAIC0w
LDAgKzEsOSBAQAorPGh0bWw+CisgIDxib2R5PgorICAgIFRoaXMgaXMgYSB0ZXN0IGNhc2UgZm9y
IHNlbGVjdGluZyBhIHJhbmdlIHdpdGhpbiBhbiBpZnJhbWUuCisgICAgPGlmcmFtZSB3aWR0aD00
MDAgaGVpZ2h0PTIwMCBpZD0iaWZyYW1lIiBzcmM9InNlbGVjdF9yYW5nZV9iYXNpYy5odG1sIj48
L2lmcmFtZT4KKyAgPC9ib2R5PgorPC9odG1sPgorPHNjcmlwdD4KKyAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnaWZyYW1lJykuY29udGVudFdpbmRvdy5mb2N1cygpOworPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvc2VsZWN0X3Jhbmdl
X3Njcm9sbC5odG1sIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL3NlbGVjdF9y
YW5nZV9zY3JvbGwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45OTRjYTJiYjljNDg0ODAyZDczMzZmNmFlMDVh
ZWUzOGYzYTdlZWM0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9kYXRhL3NlbGVjdF9yYW5nZV9zY3JvbGwuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxkaXYg
c3R5bGU9J2hlaWdodDozMDAwcHgnPgorICAgIDxzcGFuIGlkPSJ0YXJnZXQiPnNvbWUgb2Zmc2Ny
ZWVuIHRlc3QgdGV4dCBmb3IgdGVzdGluZzwvc3Bhbj4KKzwvZGl2PgorPHNjcmlwdD4KKyAgICB2
YXIgcmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOworICAgIHJhbmdlLnNlbGVjdE5vZGUo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpKTsKKyAgICB3aW5kb3cuZ2V0U2VsZWN0
aW9uKCkuYWRkUmFuZ2UocmFuZ2UpOworICAgIHdpbmRvdy5zY3JvbGxCeSgwLDUwMCk7Cis8L3Nj
cmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158330</attachid>
            <date>2012-08-14 08:00:17 -0700</date>
            <delta_ts>2012-08-14 09:37:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93108-20120814155944.patch</filename>
            <type>text/plain</type>
            <size>9562</size>
            <attacher name="Iain Merrick">husky</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGE1YjI2YjQ1OGYyZmJlODE2ZWRlODE3YWZmNTMwNGRjZGQyMDA3MjUuLmRmZDljMjFjY2QxZjBh
YzM0NmQzODY4ODY0NDU4N2YyMjc2N2FjZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMTItMDgtMTQgIElhaW4gTWVycmljayAgPGh1c2t5QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCBhIHRlc3QgdG8gV2ViRnJhbWVUZXN0IGZv
ciBzZWxlY3RSYW5nZSBhbmQgdmlzaWJsZVBvc2l0aW9uRm9yV2luZG93UG9pbnQuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzEwOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgYSBuZXcgdGVzdCBX
ZWJGcmFtZVRlc3QuU2VsZWN0UmFuZ2UuIFRoaXMgdGVzdHMgV2ViRnJhbWVJbXBsOjpzZWxlY3RS
YW5nZSwKKyAgICAgICAgYW5kIGFsc28gc2VydmVzIHRvIHRlc3QgV2ViRnJhbWVJbXBsOjp2aXNp
YmxlUG9zaXRpb25Gb3JXaW5kb3dQb2ludCBhcyBpdCBpcworICAgICAgICB1c2VkIGJ5IHNlbGVj
dFJhbmdlLgorCisgICAgICAgIFRoZSB0ZXN0IHVzZXMgc2FtcGxlIGZpbGVzIHRoYXQgY29udGFp
biBzZWxlY3RlZCB0ZXh0IG9uIGxvYWQuIFRoZSB0ZXN0IHVzZXMKKyAgICAgICAgV2ViVmlld0lt
cGw6OnNlbGVjdGlvbkJvdW5kcyB0byBnZXQgdGhlIGNvb3JkaW5hdGVzLCBkZXNlbGVjdHMgYWxs
LCB0aGVuCisgICAgICAgIGNhbGxzIFdlYkZyYW1lSW1wbDo6c2VsZWN0UmFuZ2UgdG8gYXR0ZW1w
dCB0byByZXNlbGVjdCB0aGUgc2FtZSB0ZXh0LgorCisgICAgICAgIEZvdXIgY2FzZXMgYXJlIHRl
c3RlZDoKKyAgICAgICAgLSB0aGUgYmFzaWMgY2FzZQorICAgICAgICAtIHRoZSBjYXNlIHdoZXJl
IHRoZSBzZWxlY3RlZCB0ZXh0IGlzIG9mZnNjcmVlbiBkdWUgdG8gYSBzY3JvbGwKKyAgICAgICAg
LSB0aGUgY2FzZSB3aGVyZSB0aGUgc2VsZWN0ZWQgdGV4dCBpcyBpbiBhbiBpZnJhbWUKKyAgICAg
ICAgLSB0aGUgY2FzZSB3aGVyZSB0aGUgc2VsZWN0ZWQgdGV4dCBpcyBpbiBhbiBlZGl0YWJsZSBl
bGVtZW50CisKKyAgICAgICAgKiB0ZXN0cy9XZWJGcmFtZVRlc3QuY3BwOgorICAgICAgICAqIHRl
c3RzL2RhdGEvc2VsZWN0X3JhbmdlX2Jhc2ljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRlc3Rz
L2RhdGEvc2VsZWN0X3JhbmdlX2VkaXRhYmxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRlc3Rz
L2RhdGEvc2VsZWN0X3JhbmdlX2lmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9k
YXRhL3NlbGVjdF9yYW5nZV9zY3JvbGwuaHRtbDogQWRkZWQuCisKIDIwMTItMDgtMTMgIFRvbSBT
ZXBleiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSByZWxlYXNl
IEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6bV9wbHVnaW5XaWRnZXQgcmVmcHRyIHVwb24gUGx1Z2lu
IERvY3VtZW50IGRldGFjaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvV2ViRnJhbWVUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJh
bWVUZXN0LmNwcAppbmRleCAwYjQwYzFkOTBjMDE0NjY0OWJjZGM2ZmJhNDc1MzlhMTIxOTFmNWNi
Li4xY2RlYWY3OGJjZjY3NmQ0MWI3NDQ0OTA0NjViOThkOGJmZWUwOWI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCkBAIC05NTgsNCArOTU4LDkw
IEBAIFRFU1RfRihXZWJGcmFtZVRlc3QsIEZpbmRJblBhZ2VNYXRjaFJlY3RzKQogICAgIHdlYlZp
ZXctPmNsb3NlKCk7CiB9CiAKK3N0YXRpYyBXZWJWaWV3KiBzZWxlY3RSYW5nZVRlc3RDcmVhdGVX
ZWJWaWV3KGNvbnN0IHN0ZDo6c3RyaW5nJiB1cmwpCit7CisgICAgV2ViVmlldyogd2ViVmlldyA9
IEZyYW1lVGVzdEhlbHBlcnM6OmNyZWF0ZVdlYlZpZXdBbmRMb2FkKHVybCwgdHJ1ZSk7CisgICAg
d2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0RGVmYXVsdEZvbnRTaXplKDEyKTsKKyAgICB3ZWJWaWV3
LT5yZXNpemUoV2ViU2l6ZSg2NDAsIDQ4MCkpOworICAgIHJldHVybiB3ZWJWaWV3OworfQorCitz
dGF0aWMgV2ViUG9pbnQgdG9wTGVmdChjb25zdCBXZWJSZWN0JiByZWN0KQoreworICAgIHJldHVy
biBXZWJQb2ludChyZWN0LngsIHJlY3QueSk7Cit9CisKK3N0YXRpYyBXZWJQb2ludCBib3R0b21S
aWdodE1pbnVzT25lKGNvbnN0IFdlYlJlY3QmIHJlY3QpCit7CisgICAgLy8gRklYTUU6IElmIHdl
IGRvbid0IHN1YnRyYWN0IDEgZnJvbSB0aGUgeC0gYW5kIHktY29vcmRpbmF0ZXMgb2YgdGhlCisg
ICAgLy8gc2VsZWN0aW9uIGJvdW5kcywgc2VsZWN0UmFuZ2UoKSB3aWxsIHNlbGVjdCB0aGUgKm5l
eHQqIGVsZW1lbnQuIFRoYXQncworICAgIC8vIHN0cmljdGx5IGNvcnJlY3QsIGFzIGhpdC10ZXN0
aW5nIGNoZWNrcyB0aGUgcGl4ZWwgdG8gdGhlIGxvd2VyLXJpZ2h0IG9mCisgICAgLy8gdGhlIGlu
cHV0IGNvb3JkaW5hdGUsIGJ1dCBpdCdzIGEgd2FydCBvbiB0aGUgQVBJLgorICAgIHJldHVybiBX
ZWJQb2ludChyZWN0LnggKyByZWN0LndpZHRoIC0gMSwgcmVjdC55ICsgcmVjdC5oZWlnaHQgLSAx
KTsKK30KKworVEVTVF9GKFdlYkZyYW1lVGVzdCwgU2VsZWN0UmFuZ2UpCit7CisgICAgV2ViVmll
dyogd2ViVmlldzsKKyAgICBXZWJGcmFtZSogZnJhbWU7CisgICAgV2ViUmVjdCBzdGFydFdlYlJl
Y3Q7CisgICAgV2ViUmVjdCBlbmRXZWJSZWN0OworCisgICAgcmVnaXN0ZXJNb2NrZWRIdHRwVVJM
TG9hZCgic2VsZWN0X3JhbmdlX2Jhc2ljLmh0bWwiKTsKKyAgICByZWdpc3Rlck1vY2tlZEh0dHBV
UkxMb2FkKCJzZWxlY3RfcmFuZ2Vfc2Nyb2xsLmh0bWwiKTsKKyAgICByZWdpc3Rlck1vY2tlZEh0
dHBVUkxMb2FkKCJzZWxlY3RfcmFuZ2VfaWZyYW1lLmh0bWwiKTsKKyAgICByZWdpc3Rlck1vY2tl
ZEh0dHBVUkxMb2FkKCJzZWxlY3RfcmFuZ2VfZWRpdGFibGUuaHRtbCIpOworCisgICAgd2ViVmll
dyA9IHNlbGVjdFJhbmdlVGVzdENyZWF0ZVdlYlZpZXcobV9iYXNlVVJMICsgInNlbGVjdF9yYW5n
ZV9iYXNpYy5odG1sIik7CisgICAgZnJhbWUgPSB3ZWJWaWV3LT5tYWluRnJhbWUoKTsKKyAgICBF
WFBFQ1RfRVEoIlNvbWUgdGVzdCB0ZXh0IGZvciB0ZXN0aW5nLiIsIHN0ZDo6c3RyaW5nKGZyYW1l
LT5zZWxlY3Rpb25Bc1RleHQoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgd2ViVmlldy0+c2VsZWN0
aW9uQm91bmRzKHN0YXJ0V2ViUmVjdCwgZW5kV2ViUmVjdCk7CisgICAgZnJhbWUtPmV4ZWN1dGVD
b21tYW5kKFdlYlN0cmluZzo6ZnJvbVVURjgoIlVuc2VsZWN0IikpOworICAgIEVYUEVDVF9FUSgi
Iiwgc3RkOjpzdHJpbmcoZnJhbWUtPnNlbGVjdGlvbkFzVGV4dCgpLnV0ZjgoKS5kYXRhKCkpKTsK
KyAgICBmcmFtZS0+c2VsZWN0UmFuZ2UodG9wTGVmdChzdGFydFdlYlJlY3QpLCBib3R0b21SaWdo
dE1pbnVzT25lKGVuZFdlYlJlY3QpKTsKKyAgICBFWFBFQ1RfRVEoIlNvbWUgdGVzdCB0ZXh0IGZv
ciB0ZXN0aW5nLiIsIHN0ZDo6c3RyaW5nKGZyYW1lLT5zZWxlY3Rpb25Bc1RleHQoKS51dGY4KCku
ZGF0YSgpKSk7CisgICAgd2ViVmlldy0+Y2xvc2UoKTsKKworICAgIHdlYlZpZXcgPSBzZWxlY3RS
YW5nZVRlc3RDcmVhdGVXZWJWaWV3KG1fYmFzZVVSTCArICJzZWxlY3RfcmFuZ2Vfc2Nyb2xsLmh0
bWwiKTsKKyAgICBmcmFtZSA9IHdlYlZpZXctPm1haW5GcmFtZSgpOworICAgIEVYUEVDVF9FUSgi
U29tZSBvZmZzY3JlZW4gdGVzdCB0ZXh0IGZvciB0ZXN0aW5nLiIsIHN0ZDo6c3RyaW5nKGZyYW1l
LT5zZWxlY3Rpb25Bc1RleHQoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgd2ViVmlldy0+c2VsZWN0
aW9uQm91bmRzKHN0YXJ0V2ViUmVjdCwgZW5kV2ViUmVjdCk7CisgICAgZnJhbWUtPmV4ZWN1dGVD
b21tYW5kKFdlYlN0cmluZzo6ZnJvbVVURjgoIlVuc2VsZWN0IikpOworICAgIEVYUEVDVF9FUSgi
Iiwgc3RkOjpzdHJpbmcoZnJhbWUtPnNlbGVjdGlvbkFzVGV4dCgpLnV0ZjgoKS5kYXRhKCkpKTsK
KyAgICBmcmFtZS0+c2VsZWN0UmFuZ2UodG9wTGVmdChzdGFydFdlYlJlY3QpLCBib3R0b21SaWdo
dE1pbnVzT25lKGVuZFdlYlJlY3QpKTsKKyAgICBFWFBFQ1RfRVEoIlNvbWUgb2Zmc2NyZWVuIHRl
c3QgdGV4dCBmb3IgdGVzdGluZy4iLCBzdGQ6OnN0cmluZyhmcmFtZS0+c2VsZWN0aW9uQXNUZXh0
KCkudXRmOCgpLmRhdGEoKSkpOworICAgIHdlYlZpZXctPmNsb3NlKCk7CisKKyAgICB3ZWJWaWV3
ID0gc2VsZWN0UmFuZ2VUZXN0Q3JlYXRlV2ViVmlldyhtX2Jhc2VVUkwgKyAic2VsZWN0X3Jhbmdl
X2lmcmFtZS5odG1sIik7CisgICAgZnJhbWUgPSB3ZWJWaWV3LT5tYWluRnJhbWUoKTsKKyAgICBX
ZWJGcmFtZSogc3ViZnJhbWUgPSBmcmFtZS0+ZmluZENoaWxkQnlFeHByZXNzaW9uKFdlYlN0cmlu
Zzo6ZnJvbVVURjgoIi9odG1sL2JvZHkvaWZyYW1lIikpOworICAgIEVYUEVDVF9FUSgiU29tZSB0
ZXN0IHRleHQgZm9yIHRlc3RpbmcuIiwgc3RkOjpzdHJpbmcoc3ViZnJhbWUtPnNlbGVjdGlvbkFz
VGV4dCgpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICB3ZWJWaWV3LT5zZWxlY3Rpb25Cb3VuZHMoc3Rh
cnRXZWJSZWN0LCBlbmRXZWJSZWN0KTsKKyAgICBzdWJmcmFtZS0+ZXhlY3V0ZUNvbW1hbmQoV2Vi
U3RyaW5nOjpmcm9tVVRGOCgiVW5zZWxlY3QiKSk7CisgICAgRVhQRUNUX0VRKCIiLCBzdGQ6OnN0
cmluZyhzdWJmcmFtZS0+c2VsZWN0aW9uQXNUZXh0KCkudXRmOCgpLmRhdGEoKSkpOworICAgIHN1
YmZyYW1lLT5zZWxlY3RSYW5nZSh0b3BMZWZ0KHN0YXJ0V2ViUmVjdCksIGJvdHRvbVJpZ2h0TWlu
dXNPbmUoZW5kV2ViUmVjdCkpOworICAgIEVYUEVDVF9FUSgiU29tZSB0ZXN0IHRleHQgZm9yIHRl
c3RpbmcuIiwgc3RkOjpzdHJpbmcoc3ViZnJhbWUtPnNlbGVjdGlvbkFzVGV4dCgpLnV0ZjgoKS5k
YXRhKCkpKTsKKyAgICB3ZWJWaWV3LT5jbG9zZSgpOworCisgICAgLy8gU2VsZWN0IHRoZSBtaWRk
bGUgb2YgYW4gZWRpdGFibGUgZWxlbWVudCwgdGhlbiB0cnkgdG8gZXh0ZW5kIHRoZSBzZWxlY3Rp
b24gdG8gdGhlIHRvcCBvZiB0aGUgZG9jdW1lbnQuCisgICAgLy8gVGhlIHNlbGVjdGlvbiByYW5n
ZSBzaG91bGQgYmUgY2xpcHBlZCB0byB0aGUgYm91bmRzIG9mIHRoZSBlZGl0YWJsZSBlbGVtZW50
LgorICAgIHdlYlZpZXcgPSBzZWxlY3RSYW5nZVRlc3RDcmVhdGVXZWJWaWV3KG1fYmFzZVVSTCAr
ICJzZWxlY3RfcmFuZ2VfZWRpdGFibGUuaHRtbCIpOworICAgIGZyYW1lID0gd2ViVmlldy0+bWFp
bkZyYW1lKCk7CisgICAgRVhQRUNUX0VRKCJUaGlzIHRleHQgaXMgaW5pdGlhbGx5IHNlbGVjdGVk
LiIsIHN0ZDo6c3RyaW5nKGZyYW1lLT5zZWxlY3Rpb25Bc1RleHQoKS51dGY4KCkuZGF0YSgpKSk7
CisgICAgd2ViVmlldy0+c2VsZWN0aW9uQm91bmRzKHN0YXJ0V2ViUmVjdCwgZW5kV2ViUmVjdCk7
CisgICAgRVhQRUNUX0VRKCJUaGlzIHRleHQgaXMgaW5pdGlhbGx5IHNlbGVjdGVkLiIsIHN0ZDo6
c3RyaW5nKGZyYW1lLT5zZWxlY3Rpb25Bc1RleHQoKS51dGY4KCkuZGF0YSgpKSk7CisgICAgZnJh
bWUtPnNlbGVjdFJhbmdlKFdlYlBvaW50KDAsIDApLCBib3R0b21SaWdodE1pbnVzT25lKGVuZFdl
YlJlY3QpKTsKKyAgICBFWFBFQ1RfRVEoIjE2LWNoYXIgaGVhZGVyLiBUaGlzIHRleHQgaXMgaW5p
dGlhbGx5IHNlbGVjdGVkLiIsIHN0ZDo6c3RyaW5nKGZyYW1lLT5zZWxlY3Rpb25Bc1RleHQoKS51
dGY4KCkuZGF0YSgpKSk7CisgICAgd2ViVmlldy0+Y2xvc2UoKTsKKworICAgIC8vIEFzIGFib3Zl
LCBidXQgZXh0ZW5kaW5nIHRoZSBzZWxlY3Rpb24gdG8gdGhlIGJvdHRvbSBvZiB0aGUgZG9jdW1l
bnQuCisgICAgd2ViVmlldyA9IHNlbGVjdFJhbmdlVGVzdENyZWF0ZVdlYlZpZXcobV9iYXNlVVJM
ICsgInNlbGVjdF9yYW5nZV9lZGl0YWJsZS5odG1sIik7CisgICAgZnJhbWUgPSB3ZWJWaWV3LT5t
YWluRnJhbWUoKTsKKyAgICBFWFBFQ1RfRVEoIlRoaXMgdGV4dCBpcyBpbml0aWFsbHkgc2VsZWN0
ZWQuIiwgc3RkOjpzdHJpbmcoZnJhbWUtPnNlbGVjdGlvbkFzVGV4dCgpLnV0ZjgoKS5kYXRhKCkp
KTsKKyAgICB3ZWJWaWV3LT5zZWxlY3Rpb25Cb3VuZHMoc3RhcnRXZWJSZWN0LCBlbmRXZWJSZWN0
KTsKKyAgICBmcmFtZS0+c2VsZWN0UmFuZ2UodG9wTGVmdChzdGFydFdlYlJlY3QpLCBXZWJQb2lu
dCg2NDAsIDQ4MCkpOworICAgIEVYUEVDVF9FUSgiVGhpcyB0ZXh0IGlzIGluaXRpYWxseSBzZWxl
Y3RlZC4gMTYtY2hhciBmb290ZXIuIiwgc3RkOjpzdHJpbmcoZnJhbWUtPnNlbGVjdGlvbkFzVGV4
dCgpLnV0ZjgoKS5kYXRhKCkpKTsKKyAgICB3ZWJWaWV3LT5jbG9zZSgpOworfQorCiB9IC8vIG5h
bWVzcGFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL3Nl
bGVjdF9yYW5nZV9iYXNpYy5odG1sIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRh
L3NlbGVjdF9yYW5nZV9iYXNpYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA2OTM4YjY2NGI5YmFmNGRlMGU0
OGE0YjNhNjFhODlkNzIwMmZkMTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3Rlc3RzL2RhdGEvc2VsZWN0X3JhbmdlX2Jhc2ljLmh0bWwKQEAgLTAsMCArMSwxNiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorU29tZSBleHRyYSB0ZXh0LgorPHNw
YW4gaWQ9J3RhcmdldCc+U29tZSB0ZXN0IHRleHQgZm9yIHRlc3RpbmcuPC9zcGFuPgorU29tZSBl
eHRyYSB0ZXh0LgorPC9ib2R5PgorPC9odG1sPgorPHNjcmlwdD4KKyAgICBmdW5jdGlvbiBzZWxl
Y3QoKSB7CisgICAgICAgIHZhciByYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CisgICAg
ICAgIHJhbmdlLnNlbGVjdE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpKTsK
KyAgICAgICAgd2luZG93LmdldFNlbGVjdGlvbigpLmFkZFJhbmdlKHJhbmdlKTsKKyAgICB9Cisg
ICAgd2luZG93Lm9ubG9hZCA9IHNlbGVjdDsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL3NlbGVjdF9yYW5nZV9lZGl0YWJsZS5odG1sIGIv
U291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL3NlbGVjdF9yYW5nZV9lZGl0YWJsZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjUxM2Q3MDUxNDU4MDY2MTRjNzk5ZWRlYmRlOWEwMTk5YzdiYThkMTIK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvc2Vs
ZWN0X3JhbmdlX2VkaXRhYmxlLmh0bWwKQEAgLTAsMCArMSwyMCBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxib2R5PgorPGRpdj4KK1RoaXMgdGV4dCB3b24ndCBiZSBzZWxlY3RlZCBiZWNh
dXNlIGl0IGlzbid0IGVkaXRhYmxlLgorPHNwYW4gaWQ9J3RhcmdldCcgY29udGVudGVkaXRhYmxl
PSJ0cnVlIj4xNi1jaGFyIGhlYWRlci4gVGhpcyB0ZXh0IGlzIGluaXRpYWxseSBzZWxlY3RlZC4g
MTYtY2hhciBmb290ZXIuPC9zcGFuPgorVGhpcyB0ZXh0IHdvbid0IGJlIHNlbGVjdGVkIGJlY2F1
c2UgaXQgaXNuJ3QgZWRpdGFibGUuCis8L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KKzxzY3JpcHQ+
CisgICAgZnVuY3Rpb24gc2VsZWN0KCkgeworICAgICAgICB2YXIgdGV4dCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5maXJzdENoaWxkOworICAgICAgICB2YXIgcmFuZ2UgPSBk
b2N1bWVudC5jcmVhdGVSYW5nZSgpOworICAgICAgICByYW5nZS5zZXRTdGFydCh0ZXh0LCAxNik7
CisgICAgICAgIHJhbmdlLnNldEVuZCh0ZXh0LCA0OCk7CisgICAgICAgIHdpbmRvdy5nZXRTZWxl
Y3Rpb24oKS5hZGRSYW5nZShyYW5nZSk7CisgICAgfQorICAgIHdpbmRvdy5vbmxvYWQgPSBzZWxl
Y3Q7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
ZGF0YS9zZWxlY3RfcmFuZ2VfaWZyYW1lLmh0bWwgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL2RhdGEvc2VsZWN0X3JhbmdlX2lmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJhZDQ0NGRjNzM5
YmE3YjU2N2E0YjFlNTQ0YzMxYjZjYmE1ZTJmYzIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvc2VsZWN0X3JhbmdlX2lmcmFtZS5odG1sCkBAIC0w
LDAgKzEsMTAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgIDxib2R5PgorICAgIFRoaXMg
aXMgYSB0ZXN0IGNhc2UgZm9yIHNlbGVjdGluZyBhIHJhbmdlIHdpdGhpbiBhbiBpZnJhbWUuCisg
ICAgPGlmcmFtZSB3aWR0aD00MDAgaGVpZ2h0PTIwMCBpZD0iaWZyYW1lIiBzcmM9InNlbGVjdF9y
YW5nZV9iYXNpYy5odG1sIj48L2lmcmFtZT4KKyAgPC9ib2R5PgorPC9odG1sPgorPHNjcmlwdD4K
KyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaWZyYW1lJykuY29udGVudFdpbmRvdy5mb2N1
cygpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L2RhdGEvc2VsZWN0X3JhbmdlX3Njcm9sbC5odG1sIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90
ZXN0cy9kYXRhL3NlbGVjdF9yYW5nZV9zY3JvbGwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNWUxNzU5ZjA5
OTgxNDRjYjBhMGNiZGJlZjc0ZTRmMzQ0OTY3MzE5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9kYXRhL3NlbGVjdF9yYW5nZV9zY3JvbGwuaHRtbApAQCAt
MCwwICsxLDEwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxkaXYgc3R5bGU9J2hlaWdodDozMDAwcHgn
PgorICAgIDxzcGFuIGlkPSJ0YXJnZXQiPlNvbWUgb2Zmc2NyZWVuIHRlc3QgdGV4dCBmb3IgdGVz
dGluZy48L3NwYW4+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIHJhbmdlID0gZG9jdW1lbnQu
Y3JlYXRlUmFuZ2UoKTsKKyAgICByYW5nZS5zZWxlY3ROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCd0YXJnZXQnKSk7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLmFkZFJhbmdlKHJhbmdl
KTsKKyAgICB3aW5kb3cuc2Nyb2xsQnkoMCw1MDApOworPC9zY3JpcHQ+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>158348</attachid>
            <date>2012-08-14 09:37:12 -0700</date>
            <delta_ts>2012-08-14 10:55:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93108-20120814173639.patch</filename>
            <type>text/plain</type>
            <size>9249</size>
            <attacher name="Iain Merrick">husky</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4
IGE1YjI2YjQ1OGYyZmJlODE2ZWRlODE3YWZmNTMwNGRjZGQyMDA3MjUuLmRmZDljMjFjY2QxZjBh
YzM0NmQzODY4ODY0NDU4N2YyMjc2N2FjZDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMTItMDgtMTQgIElhaW4gTWVycmljayAgPGh1c2t5QGNocm9taXVt
Lm9yZz4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCBhIHRlc3QgdG8gV2ViRnJhbWVUZXN0IGZv
ciBzZWxlY3RSYW5nZSBhbmQgdmlzaWJsZVBvc2l0aW9uRm9yV2luZG93UG9pbnQuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MzEwOAorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgYSBuZXcgdGVzdCBX
ZWJGcmFtZVRlc3QuU2VsZWN0UmFuZ2UuIFRoaXMgdGVzdHMgV2ViRnJhbWVJbXBsOjpzZWxlY3RS
YW5nZSwKKyAgICAgICAgYW5kIGFsc28gc2VydmVzIHRvIHRlc3QgV2ViRnJhbWVJbXBsOjp2aXNp
YmxlUG9zaXRpb25Gb3JXaW5kb3dQb2ludCBhcyBpdCBpcworICAgICAgICB1c2VkIGJ5IHNlbGVj
dFJhbmdlLgorCisgICAgICAgIFRoZSB0ZXN0IHVzZXMgc2FtcGxlIGZpbGVzIHRoYXQgY29udGFp
biBzZWxlY3RlZCB0ZXh0IG9uIGxvYWQuIFRoZSB0ZXN0IHVzZXMKKyAgICAgICAgV2ViVmlld0lt
cGw6OnNlbGVjdGlvbkJvdW5kcyB0byBnZXQgdGhlIGNvb3JkaW5hdGVzLCBkZXNlbGVjdHMgYWxs
LCB0aGVuCisgICAgICAgIGNhbGxzIFdlYkZyYW1lSW1wbDo6c2VsZWN0UmFuZ2UgdG8gYXR0ZW1w
dCB0byByZXNlbGVjdCB0aGUgc2FtZSB0ZXh0LgorCisgICAgICAgIEZvdXIgY2FzZXMgYXJlIHRl
c3RlZDoKKyAgICAgICAgLSB0aGUgYmFzaWMgY2FzZQorICAgICAgICAtIHRoZSBjYXNlIHdoZXJl
IHRoZSBzZWxlY3RlZCB0ZXh0IGlzIG9mZnNjcmVlbiBkdWUgdG8gYSBzY3JvbGwKKyAgICAgICAg
LSB0aGUgY2FzZSB3aGVyZSB0aGUgc2VsZWN0ZWQgdGV4dCBpcyBpbiBhbiBpZnJhbWUKKyAgICAg
ICAgLSB0aGUgY2FzZSB3aGVyZSB0aGUgc2VsZWN0ZWQgdGV4dCBpcyBpbiBhbiBlZGl0YWJsZSBl
bGVtZW50CisKKyAgICAgICAgKiB0ZXN0cy9XZWJGcmFtZVRlc3QuY3BwOgorICAgICAgICAqIHRl
c3RzL2RhdGEvc2VsZWN0X3JhbmdlX2Jhc2ljLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRlc3Rz
L2RhdGEvc2VsZWN0X3JhbmdlX2VkaXRhYmxlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRlc3Rz
L2RhdGEvc2VsZWN0X3JhbmdlX2lmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0cy9k
YXRhL3NlbGVjdF9yYW5nZV9zY3JvbGwuaHRtbDogQWRkZWQuCisKIDIwMTItMDgtMTMgIFRvbSBT
ZXBleiAgPHRzZXBlekBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSByZWxlYXNl
IEZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6bV9wbHVnaW5XaWRnZXQgcmVmcHRyIHVwb24gUGx1Z2lu
IERvY3VtZW50IGRldGFjaC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvV2ViRnJhbWVUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViRnJh
bWVUZXN0LmNwcAppbmRleCAwYjQwYzFkOTBjMDE0NjY0OWJjZGM2ZmJhNDc1MzlhMTIxOTFmNWNi
Li44ZmM3NDk4OGViNTY0YmYwNWMzYzQ2Y2E4MmZjNmVhNjlmMjg5NjEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkZyYW1lVGVzdC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJGcmFtZVRlc3QuY3BwCkBAIC05NTgsNCArOTU4LDk0
IEBAIFRFU1RfRihXZWJGcmFtZVRlc3QsIEZpbmRJblBhZ2VNYXRjaFJlY3RzKQogICAgIHdlYlZp
ZXctPmNsb3NlKCk7CiB9CiAKK3N0YXRpYyBXZWJWaWV3KiBzZWxlY3RSYW5nZVRlc3RDcmVhdGVX
ZWJWaWV3KGNvbnN0IHN0ZDo6c3RyaW5nJiB1cmwpCit7CisgICAgV2ViVmlldyogd2ViVmlldyA9
IEZyYW1lVGVzdEhlbHBlcnM6OmNyZWF0ZVdlYlZpZXdBbmRMb2FkKHVybCwgdHJ1ZSk7CisgICAg
d2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0RGVmYXVsdEZvbnRTaXplKDEyKTsKKyAgICB3ZWJWaWV3
LT5yZXNpemUoV2ViU2l6ZSg2NDAsIDQ4MCkpOworICAgIHJldHVybiB3ZWJWaWV3OworfQorCitz
dGF0aWMgV2ViUG9pbnQgdG9wTGVmdChjb25zdCBXZWJSZWN0JiByZWN0KQoreworICAgIHJldHVy
biBXZWJQb2ludChyZWN0LngsIHJlY3QueSk7Cit9CisKK3N0YXRpYyBXZWJQb2ludCBib3R0b21S
aWdodE1pbnVzT25lKGNvbnN0IFdlYlJlY3QmIHJlY3QpCit7CisgICAgLy8gRklYTUU6IElmIHdl
IGRvbid0IHN1YnRyYWN0IDEgZnJvbSB0aGUgeC0gYW5kIHktY29vcmRpbmF0ZXMgb2YgdGhlCisg
ICAgLy8gc2VsZWN0aW9uIGJvdW5kcywgc2VsZWN0UmFuZ2UoKSB3aWxsIHNlbGVjdCB0aGUgKm5l
eHQqIGVsZW1lbnQuIFRoYXQncworICAgIC8vIHN0cmljdGx5IGNvcnJlY3QsIGFzIGhpdC10ZXN0
aW5nIGNoZWNrcyB0aGUgcGl4ZWwgdG8gdGhlIGxvd2VyLXJpZ2h0IG9mCisgICAgLy8gdGhlIGlu
cHV0IGNvb3JkaW5hdGUsIGJ1dCBpdCdzIGEgd2FydCBvbiB0aGUgQVBJLgorICAgIHJldHVybiBX
ZWJQb2ludChyZWN0LnggKyByZWN0LndpZHRoIC0gMSwgcmVjdC55ICsgcmVjdC5oZWlnaHQgLSAx
KTsKK30KKworc3RhdGljIHN0ZDo6c3RyaW5nIHNlbGVjdGlvbkFzU3RyaW5nKFdlYkZyYW1lKiBm
cmFtZSkKK3sKKyAgICByZXR1cm4gc3RkOjpzdHJpbmcoZnJhbWUtPnNlbGVjdGlvbkFzVGV4dCgp
LnV0ZjgoKS5kYXRhKCkpOworfQorCitURVNUX0YoV2ViRnJhbWVUZXN0LCBTZWxlY3RSYW5nZSkK
K3sKKyAgICBXZWJWaWV3KiB3ZWJWaWV3OworICAgIFdlYkZyYW1lKiBmcmFtZTsKKyAgICBXZWJS
ZWN0IHN0YXJ0V2ViUmVjdDsKKyAgICBXZWJSZWN0IGVuZFdlYlJlY3Q7CisKKyAgICByZWdpc3Rl
ck1vY2tlZEh0dHBVUkxMb2FkKCJzZWxlY3RfcmFuZ2VfYmFzaWMuaHRtbCIpOworICAgIHJlZ2lz
dGVyTW9ja2VkSHR0cFVSTExvYWQoInNlbGVjdF9yYW5nZV9zY3JvbGwuaHRtbCIpOworICAgIHJl
Z2lzdGVyTW9ja2VkSHR0cFVSTExvYWQoInNlbGVjdF9yYW5nZV9pZnJhbWUuaHRtbCIpOworICAg
IHJlZ2lzdGVyTW9ja2VkSHR0cFVSTExvYWQoInNlbGVjdF9yYW5nZV9lZGl0YWJsZS5odG1sIik7
CisKKyAgICB3ZWJWaWV3ID0gc2VsZWN0UmFuZ2VUZXN0Q3JlYXRlV2ViVmlldyhtX2Jhc2VVUkwg
KyAic2VsZWN0X3JhbmdlX2Jhc2ljLmh0bWwiKTsKKyAgICBmcmFtZSA9IHdlYlZpZXctPm1haW5G
cmFtZSgpOworICAgIEVYUEVDVF9FUSgiU29tZSB0ZXN0IHRleHQgZm9yIHRlc3RpbmcuIiwgc2Vs
ZWN0aW9uQXNTdHJpbmcoZnJhbWUpKTsKKyAgICB3ZWJWaWV3LT5zZWxlY3Rpb25Cb3VuZHMoc3Rh
cnRXZWJSZWN0LCBlbmRXZWJSZWN0KTsKKyAgICBmcmFtZS0+ZXhlY3V0ZUNvbW1hbmQoV2ViU3Ry
aW5nOjpmcm9tVVRGOCgiVW5zZWxlY3QiKSk7CisgICAgRVhQRUNUX0VRKCIiLCBzZWxlY3Rpb25B
c1N0cmluZyhmcmFtZSkpOworICAgIGZyYW1lLT5zZWxlY3RSYW5nZSh0b3BMZWZ0KHN0YXJ0V2Vi
UmVjdCksIGJvdHRvbVJpZ2h0TWludXNPbmUoZW5kV2ViUmVjdCkpOworICAgIEVYUEVDVF9FUSgi
U29tZSB0ZXN0IHRleHQgZm9yIHRlc3RpbmcuIiwgc2VsZWN0aW9uQXNTdHJpbmcoZnJhbWUpKTsK
KyAgICB3ZWJWaWV3LT5jbG9zZSgpOworCisgICAgd2ViVmlldyA9IHNlbGVjdFJhbmdlVGVzdENy
ZWF0ZVdlYlZpZXcobV9iYXNlVVJMICsgInNlbGVjdF9yYW5nZV9zY3JvbGwuaHRtbCIpOworICAg
IGZyYW1lID0gd2ViVmlldy0+bWFpbkZyYW1lKCk7CisgICAgRVhQRUNUX0VRKCJTb21lIG9mZnNj
cmVlbiB0ZXN0IHRleHQgZm9yIHRlc3RpbmcuIiwgc2VsZWN0aW9uQXNTdHJpbmcoZnJhbWUpKTsK
KyAgICB3ZWJWaWV3LT5zZWxlY3Rpb25Cb3VuZHMoc3RhcnRXZWJSZWN0LCBlbmRXZWJSZWN0KTsK
KyAgICBmcmFtZS0+ZXhlY3V0ZUNvbW1hbmQoV2ViU3RyaW5nOjpmcm9tVVRGOCgiVW5zZWxlY3Qi
KSk7CisgICAgRVhQRUNUX0VRKCIiLCBzZWxlY3Rpb25Bc1N0cmluZyhmcmFtZSkpOworICAgIGZy
YW1lLT5zZWxlY3RSYW5nZSh0b3BMZWZ0KHN0YXJ0V2ViUmVjdCksIGJvdHRvbVJpZ2h0TWludXNP
bmUoZW5kV2ViUmVjdCkpOworICAgIEVYUEVDVF9FUSgiU29tZSBvZmZzY3JlZW4gdGVzdCB0ZXh0
IGZvciB0ZXN0aW5nLiIsIHNlbGVjdGlvbkFzU3RyaW5nKGZyYW1lKSk7CisgICAgd2ViVmlldy0+
Y2xvc2UoKTsKKworICAgIHdlYlZpZXcgPSBzZWxlY3RSYW5nZVRlc3RDcmVhdGVXZWJWaWV3KG1f
YmFzZVVSTCArICJzZWxlY3RfcmFuZ2VfaWZyYW1lLmh0bWwiKTsKKyAgICBmcmFtZSA9IHdlYlZp
ZXctPm1haW5GcmFtZSgpOworICAgIFdlYkZyYW1lKiBzdWJmcmFtZSA9IGZyYW1lLT5maW5kQ2hp
bGRCeUV4cHJlc3Npb24oV2ViU3RyaW5nOjpmcm9tVVRGOCgiL2h0bWwvYm9keS9pZnJhbWUiKSk7
CisgICAgRVhQRUNUX0VRKCJTb21lIHRlc3QgdGV4dCBmb3IgdGVzdGluZy4iLCBzZWxlY3Rpb25B
c1N0cmluZyhzdWJmcmFtZSkpOworICAgIHdlYlZpZXctPnNlbGVjdGlvbkJvdW5kcyhzdGFydFdl
YlJlY3QsIGVuZFdlYlJlY3QpOworICAgIHN1YmZyYW1lLT5leGVjdXRlQ29tbWFuZChXZWJTdHJp
bmc6OmZyb21VVEY4KCJVbnNlbGVjdCIpKTsKKyAgICBFWFBFQ1RfRVEoIiIsIHNlbGVjdGlvbkFz
U3RyaW5nKHN1YmZyYW1lKSk7CisgICAgc3ViZnJhbWUtPnNlbGVjdFJhbmdlKHRvcExlZnQoc3Rh
cnRXZWJSZWN0KSwgYm90dG9tUmlnaHRNaW51c09uZShlbmRXZWJSZWN0KSk7CisgICAgRVhQRUNU
X0VRKCJTb21lIHRlc3QgdGV4dCBmb3IgdGVzdGluZy4iLCBzZWxlY3Rpb25Bc1N0cmluZyhzdWJm
cmFtZSkpOworICAgIHdlYlZpZXctPmNsb3NlKCk7CisKKyAgICAvLyBTZWxlY3QgdGhlIG1pZGRs
ZSBvZiBhbiBlZGl0YWJsZSBlbGVtZW50LCB0aGVuIHRyeSB0byBleHRlbmQgdGhlIHNlbGVjdGlv
biB0byB0aGUgdG9wIG9mIHRoZSBkb2N1bWVudC4KKyAgICAvLyBUaGUgc2VsZWN0aW9uIHJhbmdl
IHNob3VsZCBiZSBjbGlwcGVkIHRvIHRoZSBib3VuZHMgb2YgdGhlIGVkaXRhYmxlIGVsZW1lbnQu
CisgICAgd2ViVmlldyA9IHNlbGVjdFJhbmdlVGVzdENyZWF0ZVdlYlZpZXcobV9iYXNlVVJMICsg
InNlbGVjdF9yYW5nZV9lZGl0YWJsZS5odG1sIik7CisgICAgZnJhbWUgPSB3ZWJWaWV3LT5tYWlu
RnJhbWUoKTsKKyAgICBFWFBFQ1RfRVEoIlRoaXMgdGV4dCBpcyBpbml0aWFsbHkgc2VsZWN0ZWQu
Iiwgc2VsZWN0aW9uQXNTdHJpbmcoZnJhbWUpKTsKKyAgICB3ZWJWaWV3LT5zZWxlY3Rpb25Cb3Vu
ZHMoc3RhcnRXZWJSZWN0LCBlbmRXZWJSZWN0KTsKKyAgICBmcmFtZS0+c2VsZWN0UmFuZ2UoV2Vi
UG9pbnQoMCwgMCksIGJvdHRvbVJpZ2h0TWludXNPbmUoZW5kV2ViUmVjdCkpOworICAgIEVYUEVD
VF9FUSgiMTYtY2hhciBoZWFkZXIuIFRoaXMgdGV4dCBpcyBpbml0aWFsbHkgc2VsZWN0ZWQuIiwg
c2VsZWN0aW9uQXNTdHJpbmcoZnJhbWUpKTsKKyAgICB3ZWJWaWV3LT5jbG9zZSgpOworCisgICAg
Ly8gQXMgYWJvdmUsIGJ1dCBleHRlbmRpbmcgdGhlIHNlbGVjdGlvbiB0byB0aGUgYm90dG9tIG9m
IHRoZSBkb2N1bWVudC4KKyAgICB3ZWJWaWV3ID0gc2VsZWN0UmFuZ2VUZXN0Q3JlYXRlV2ViVmll
dyhtX2Jhc2VVUkwgKyAic2VsZWN0X3JhbmdlX2VkaXRhYmxlLmh0bWwiKTsKKyAgICBmcmFtZSA9
IHdlYlZpZXctPm1haW5GcmFtZSgpOworICAgIEVYUEVDVF9FUSgiVGhpcyB0ZXh0IGlzIGluaXRp
YWxseSBzZWxlY3RlZC4iLCBzZWxlY3Rpb25Bc1N0cmluZyhmcmFtZSkpOworICAgIHdlYlZpZXct
PnNlbGVjdGlvbkJvdW5kcyhzdGFydFdlYlJlY3QsIGVuZFdlYlJlY3QpOworICAgIGZyYW1lLT5z
ZWxlY3RSYW5nZSh0b3BMZWZ0KHN0YXJ0V2ViUmVjdCksIFdlYlBvaW50KDY0MCwgNDgwKSk7Cisg
ICAgRVhQRUNUX0VRKCJUaGlzIHRleHQgaXMgaW5pdGlhbGx5IHNlbGVjdGVkLiAxNi1jaGFyIGZv
b3Rlci4iLCBzZWxlY3Rpb25Bc1N0cmluZyhmcmFtZSkpOworICAgIHdlYlZpZXctPmNsb3NlKCk7
Cit9CisKIH0gLy8gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL2RhdGEvc2VsZWN0X3JhbmdlX2Jhc2ljLmh0bWwgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3Rlc3RzL2RhdGEvc2VsZWN0X3JhbmdlX2Jhc2ljLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGZmYzNm
YzJmZGUzMGY4ZTcwNGI3YWYxNzJkNzM1MjNhMDJiM2UxNwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS9zZWxlY3RfcmFuZ2VfYmFzaWMuaHRtbApA
QCAtMCwwICsxLDE3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+CitTb21lIGV4
dHJhIHRleHQuCis8c3BhbiBpZD0ndGFyZ2V0Jz5Tb21lIHRlc3QgdGV4dCBmb3IgdGVzdGluZy48
L3NwYW4+CitTb21lIGV4dHJhIHRleHQuCis8c2NyaXB0PgorICAgIGZ1bmN0aW9uIHNlbGVjdCgp
IHsKKyAgICAgICAgdmFyIHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKKyAgICAgICAg
cmFuZ2Uuc2VsZWN0Tm9kZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFyZ2V0JykpOworICAg
ICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYWRkUmFuZ2UocmFuZ2UpOworICAgIH0KKyAgICB3
aW5kb3cub25sb2FkID0gc2VsZWN0OworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS9zZWxlY3RfcmFuZ2Vf
ZWRpdGFibGUuaHRtbCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS9zZWxlY3Rf
cmFuZ2VfZWRpdGFibGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMTg2OTc5YWY1ZGQxYjljYmMzNDc1MGQ0
YTgzN2I1MzA3YjJiNzhhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9kYXRhL3NlbGVjdF9yYW5nZV9lZGl0YWJsZS5odG1sCkBAIC0wLDAgKzEsMTkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KK1RoaXMgdGV4dCB3b24ndCBiZSBzZWxl
Y3RlZCBiZWNhdXNlIGl0IGlzbid0IGVkaXRhYmxlLgorPHNwYW4gaWQ9J3RhcmdldCcgY29udGVu
dGVkaXRhYmxlPSJ0cnVlIj4xNi1jaGFyIGhlYWRlci4gVGhpcyB0ZXh0IGlzIGluaXRpYWxseSBz
ZWxlY3RlZC4gMTYtY2hhciBmb290ZXIuPC9zcGFuPgorVGhpcyB0ZXh0IHdvbid0IGJlIHNlbGVj
dGVkIGJlY2F1c2UgaXQgaXNuJ3QgZWRpdGFibGUuCis8c2NyaXB0PgorICAgIGZ1bmN0aW9uIHNl
bGVjdCgpIHsKKyAgICAgICAgdmFyIHRleHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFy
Z2V0JykuZmlyc3RDaGlsZDsKKyAgICAgICAgdmFyIHJhbmdlID0gZG9jdW1lbnQuY3JlYXRlUmFu
Z2UoKTsKKyAgICAgICAgcmFuZ2Uuc2V0U3RhcnQodGV4dCwgMTYpOworICAgICAgICByYW5nZS5z
ZXRFbmQodGV4dCwgNDgpOworICAgICAgICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYWRkUmFuZ2Uo
cmFuZ2UpOworICAgIH0KKyAgICB3aW5kb3cub25sb2FkID0gc2VsZWN0OworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVz
dHMvZGF0YS9zZWxlY3RfcmFuZ2VfaWZyYW1lLmh0bWwgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3Rlc3RzL2RhdGEvc2VsZWN0X3JhbmdlX2lmcmFtZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY3ODA4OWFi
YjI1MDZhYTFiYjUyODY1MzY0YWJlZjAwZWU5MWE5YjkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2RhdGEvc2VsZWN0X3JhbmdlX2lmcmFtZS5odG1sCkBA
IC0wLDAgKzEsMTEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KK1RoaXMgaXMg
YSB0ZXN0IGNhc2UgZm9yIHNlbGVjdGluZyBhIHJhbmdlIHdpdGhpbiBhbiBpZnJhbWUuCis8aWZy
YW1lIHdpZHRoPTQwMCBoZWlnaHQ9MjAwIGlkPSJpZnJhbWUiIHNyYz0ic2VsZWN0X3JhbmdlX2Jh
c2ljLmh0bWwiPjwvaWZyYW1lPgorPHNjcmlwdD4KKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnaWZyYW1lJykuY29udGVudFdpbmRvdy5mb2N1cygpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvZGF0YS9z
ZWxlY3RfcmFuZ2Vfc2Nyb2xsLmh0bWwgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL2Rh
dGEvc2VsZWN0X3JhbmdlX3Njcm9sbC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE2N2YxODljM2NkZGUwOTdj
MmM2NzlkMTRkNmU5YjliOTcxMmUzOTkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL2RhdGEvc2VsZWN0X3JhbmdlX3Njcm9sbC5odG1sCkBAIC0wLDAgKzEs
MTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4KKzxkaXYgc3R5bGU9J2hlaWdo
dDozMDAwcHgnPgorICAgIDxzcGFuIGlkPSJ0YXJnZXQiPlNvbWUgb2Zmc2NyZWVuIHRlc3QgdGV4
dCBmb3IgdGVzdGluZy48L3NwYW4+Cis8L2Rpdj4KKzxzY3JpcHQ+CisgICAgdmFyIHJhbmdlID0g
ZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsKKyAgICByYW5nZS5zZWxlY3ROb2RlKGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0YXJnZXQnKSk7CisgICAgd2luZG93LmdldFNlbGVjdGlvbigpLmFkZFJh
bmdlKHJhbmdlKTsKKyAgICB3aW5kb3cuc2Nyb2xsQnkoMCw1MDApOworPC9zY3JpcHQ+Cis8L2Jv
ZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
      

    </bug>

</bugzilla>