<?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>71230</bug_id>
          
          <creation_ts>2011-10-31 12:09:16 -0700</creation_ts>
          <short_desc>Clicking where the overlay scroll track would be should not scroll the page</short_desc>
          <delta_ts>2012-01-13 15:59:13 -0800</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Mentovai">mark</reporter>
          <assigned_to name="Beth Dakin">bdakin</assigned_to>
          <cc>ap</cc>
    
    <cc>bdakin</cc>
    
    <cc>sail</cc>
    
    <cc>sam</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>493437</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Mentovai">mark</who>
    <bug_when>2011-10-31 12:09:16 -0700</bug_when>
    <thetext>The overlay scrollbar eats clicks on Lion, even when the scrollbar is not visible. The user will place the mouse over web content such as a link, which is all that is visible at a certain position, and click, expecting the web content to receive the click. Instead, the scrollbar picks up the click, either swallowing it or scrolling the page. When the click is swallowed (because it occurred over where the scroll thumb would be), the scrollbar thumb and track don’t even appear, so the user is left without any feedback as to why the click didn’t reach the web content.

I experience this bug in both Safari 5.1.1 (7534.51.22) and Chrome 17.0.921.3 canary on Mac OS X 10.7.2 11C74.

Steps to Reproduce:

0. Use Safari or Chrome on a system that uses overlay scrollbars: a Lion system with a gestureable pointing device such as a laptop trackpad is required.
1. Visit a web page that can scroll vertically, such as http://www.nytimes.com/
2. Resize the window so that the web page is vertically scrollable and there are links present in the web content area at the extreme right edge of the window.
3. Wait for the overlays to disappear, if shown. This should only take a couple of seconds with the mouse cursor outside of the scrollbar area.
4. Click on a web link at the extreme right edge of the window, within the rightmost several pixels.

Expect: to navigate to the link that was clicked. The mouse cursor will have changed to a finger pointing, indicating that a click would navigate to the link.

Observe: Although the mouse cursor changed to the finger, the click does not navigate. Instead, WebKit behaves as though the scrollbar was clicked, even though the scrollbar was not visible.

If the click occurred over where the scroll thumb would have been, no visible feedback is provided at all, because the page does not scroll at all upon a single click of a scroll thumb. (The thumb, is, however, draggable.)

If the click occurred in the area where the scroll track would be but not over the thumb, web content jumps one page in the appropriate direction, and the scroll thumb appears.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>493617</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2011-10-31 16:37:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/10373860&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535244</commentid>
    <comment_count>2</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-01-12 15:55:25 -0800</bug_when>
    <thetext>(In reply to comment #1)
&gt; &lt;rdar://problem/10373860&gt;

That bug has been marked a duplicate of this one: &lt;rdar://problem/9585424&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535254</commentid>
    <comment_count>3</comment_count>
      <attachid>122329</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-01-12 16:03:12 -0800</bug_when>
    <thetext>Created attachment 122329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535266</commentid>
    <comment_count>4</comment_count>
      <attachid>122329</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-12 16:15:29 -0800</bug_when>
    <thetext>Comment on attachment 122329
Patch

Do we need the same check in BuiltinPDFView?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535274</commentid>
    <comment_count>5</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-01-12 16:19:25 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 122329 [details])
&gt; Do we need the same check in BuiltinPDFView?

Oh, thank you for the reminder! We probably do. I will look into that now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535283</commentid>
    <comment_count>6</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-01-12 16:27:49 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; (From update of attachment 122329 [details] [details])
&gt; &gt; Do we need the same check in BuiltinPDFView?
&gt; 
&gt; Oh, thank you for the reminder! We probably do. I will look into that now.

Looks like PDFs don&apos;t have this bug, actually.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535289</commentid>
    <comment_count>7</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-01-12 16:33:27 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; (In reply to comment #4)
&gt; &gt; &gt; (From update of attachment 122329 [details] [details] [details])
&gt; &gt; &gt; Do we need the same check in BuiltinPDFView?
&gt; &gt; 
&gt; &gt; Oh, thank you for the reminder! We probably do. I will look into that now.
&gt; 
&gt; Looks like PDFs don&apos;t have this bug, actually.

Oh, I take it back! Alexey sent me a test case that does show the bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535322</commentid>
    <comment_count>8</comment_count>
      <attachid>122329</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-01-12 17:18:59 -0800</bug_when>
    <thetext>Comment on attachment 122329
Patch

I will post a new patch shortly that fixes PDF too. If anyone can suggest a different name for Scrollbar::isCurrentlyVisible(), I&apos;d love to hear it. Scrollbar&apos;s parent class Widget already has a function called isVisible() that has a different meaning, so it seems wrong to re-use that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535874</commentid>
    <comment_count>9</comment_count>
      <attachid>122479</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-01-13 12:05:28 -0800</bug_when>
    <thetext>Created attachment 122479
Patch that fixes PDF as well</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535879</commentid>
    <comment_count>10</comment_count>
      <attachid>122479</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-13 12:21:08 -0800</bug_when>
    <thetext>Comment on attachment 122479
Patch that fixes PDF as well

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

&gt; Source/WebCore/platform/Scrollbar.cpp:421
&gt; +    if (!isClickable())
&gt; +        return false;

If I&apos;m reading it correctly, clicks in invisible scroll bars will not be handled by underlying PDF content. That&apos;s not a problem now, given that we don&apos;t support any links or forms in BuiltinPDFView, but we need to make sure that those work correctly eventually. That would mean that hit testing should return PluginView, not the Scrollbar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535965</commentid>
    <comment_count>11</comment_count>
      <attachid>122494</attachid>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-01-13 13:55:41 -0800</bug_when>
    <thetext>Created attachment 122494
Better patch that also fixed PDF

You&apos;re right, Alexey. I think I got it this time!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535996</commentid>
    <comment_count>12</comment_count>
      <attachid>122494</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2012-01-13 14:33:36 -0800</bug_when>
    <thetext>Comment on attachment 122494
Better patch that also fixed PDF

The &quot;clickable&quot; concept could be somewhat confusing - is a visible, but disabled scrollbar clickable? Looks like the code uses both meanings in different places.

Then again, I&apos;m not sure what it means for a scrollbar to be disabled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>535998</commentid>
    <comment_count>13</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-01-13 14:37:29 -0800</bug_when>
    <thetext>Thanks for the review!

(In reply to comment #12)
&gt; (From update of attachment 122494 [details])
&gt; The &quot;clickable&quot; concept could be somewhat confusing - is a visible, but disabled scrollbar clickable? Looks like the code uses both meanings in different places.
&gt; 
&gt; Then again, I&apos;m not sure what it means for a scrollbar to be disabled.

Hmm, this is a good point. I suppose isHitTestable would be more accurate, but that is not great either because it sounds a bit clumsy. I will think about it a bit more before I check in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>536064</commentid>
    <comment_count>14</comment_count>
    <who name="Beth Dakin">bdakin</who>
    <bug_when>2012-01-13 15:59:13 -0800</bug_when>
    <thetext>Committed with http://trac.webkit.org/changeset/105006

And I changed the name of isClickable() to shouldParticipateInHitTesting() as Alexey suggested on irc.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122329</attachid>
            <date>2012-01-12 16:03:12 -0800</date>
            <delta_ts>2012-01-13 12:05:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>for-review.txt</filename>
            <type>text/plain</type>
            <size>6704</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDg3MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAxLTEyICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzEyMzAKKyAgICAgICAgQ2xpY2tpbmcgd2hlcmUgdGhlIG92ZXJs
YXkgc2Nyb2xsIHRyYWNrIHdvdWxkIGJlIHNob3VsZCBub3Qgc2Nyb2xsIHRoZSBwYWdlCisgICAg
ICAgIC1hbmQgY29ycmVzcG9uZGluZy0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzk1ODU0MjQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2Ug
bmV3IGZ1bmN0aW9ucyBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBzY3JvbGxiYXIgaXMgY3VycmVudGx5
IHZpc2libGUuIE5vbi0KKyAgICAgICAgb3ZlcmxheSBzY3JvbGxiYXJzIGFyZSBhbHdheXMgdmlz
aWJsZSwgc28gdGhleSByZXR1cm4gdHJ1ZS4gT3ZlcmxheSAKKyAgICAgICAgc2Nyb2xsYmFycyBj
b25zdWx0IHRoZSBhbmltYXRvciwgd2hpY2ggY2hlY2tzIHRoZSBjdXJyZW50IGFscGhhLiAKKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Ny
b2xsQW5pbWF0b3I6OnNjcm9sbGJhcklzQ3VycmVudGx5VmlzaWJsZSk6CisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsYmFyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhcjo6aXNDdXJy
ZW50bHlWaXNpYmxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxiYXIuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
YWMvU2Nyb2xsQW5pbWF0b3JNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRv
ck1hYzo6c2Nyb2xsYmFySXNDdXJyZW50bHlWaXNpYmxlKToKKworICAgICAgICBJbiB0aGVzZSBo
aXQtdGVzdGluZyBmdW5jdGlvbnMsIG9ubHkgaGl0LXRlc3Qgd2hlbiB0aGUgc2Nyb2xsYmFyIGlz
IHZpc2libGUuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxWaWV3OjpzY3JvbGxiYXJBdFBvaW50KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OmhpdFRl
c3RPdmVyZmxvd0NvbnRyb2xzKToKKwogMjAxMi0wMS0xMiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3
ZWJraXQub3JnPgogCiAgICAgICAgIE5vZGVJdGVyYXRvciBsb3NlcyB0cmFjayBvZiB0aGUgcmVm
ZXJlbmNlIG5vZGUgd2hlbiB0aGUgcmVmZXJlbmNlIG5vZGUgaXMgcmVtb3ZlZCBmcm9tIHRoZSBk
b2N1bWVudCAoSUVUQyBuaV9yZW1vdmVSZWZlcmVuY2VOb2RlKQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCShyZXZpc2lvbiAxMDQ3NzEpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCSh3b3JraW5nIGNvcHkpCkBAIC05Niw2
ICs5Niw4IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVzZXRab29tKCk7CiAgICAgdmly
dHVhbCB2b2lkIHNldFpvb21QYXJhbWV0ZXJzRm9yVGVzdChmbG9hdCwgZmxvYXQsIGZsb2F0KTsK
IAorICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxiYXJJc0N1cnJlbnRseVZpc2libGUoU2Nyb2xsYmFy
KikgeyByZXR1cm4gdHJ1ZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsQW5pbWF0b3IoU2Ny
b2xsYWJsZUFyZWEqKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmll
dy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5j
cHAJKHJldmlzaW9uIDEwNDc3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZp
ZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MjgsOSArODI4LDkgQEAgU2Nyb2xsYmFyKiBTY3Jv
bGxWaWV3OjpzY3JvbGxiYXJBdFBvaW50KAogICAgICAgICByZXR1cm4gMDsKIAogICAgIEludFBv
aW50IHZpZXdQb2ludCA9IGNvbnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvdyh3aW5kb3dQb2ludCk7
Ci0gICAgaWYgKG1faG9yaXpvbnRhbFNjcm9sbGJhciAmJiBtX2hvcml6b250YWxTY3JvbGxiYXIt
PmZyYW1lUmVjdCgpLmNvbnRhaW5zKHZpZXdQb2ludCkpCisgICAgaWYgKG1faG9yaXpvbnRhbFNj
cm9sbGJhciAmJiBtX2hvcml6b250YWxTY3JvbGxiYXItPmlzQ3VycmVudGx5VmlzaWJsZSgpICYm
IG1faG9yaXpvbnRhbFNjcm9sbGJhci0+ZnJhbWVSZWN0KCkuY29udGFpbnModmlld1BvaW50KSkK
ICAgICAgICAgcmV0dXJuIG1faG9yaXpvbnRhbFNjcm9sbGJhci5nZXQoKTsKLSAgICBpZiAobV92
ZXJ0aWNhbFNjcm9sbGJhciAmJiBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5mcmFtZVJlY3QoKS5jb250
YWlucyh2aWV3UG9pbnQpKQorICAgIGlmIChtX3ZlcnRpY2FsU2Nyb2xsYmFyICYmIG1fdmVydGlj
YWxTY3JvbGxiYXItPmlzQ3VycmVudGx5VmlzaWJsZSgpICYmIG1fdmVydGljYWxTY3JvbGxiYXIt
PmZyYW1lUmVjdCgpLmNvbnRhaW5zKHZpZXdQb2ludCkpCiAgICAgICAgIHJldHVybiBtX3ZlcnRp
Y2FsU2Nyb2xsYmFyLmdldCgpOwogICAgIHJldHVybiAwOwogfQpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxiYXIuY3BwCShyZXZpc2lvbiAxMDQ3NzEpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00ODcsNiArNDg3LDE0
IEBAIGJvb2wgU2Nyb2xsYmFyOjppc092ZXJsYXlTY3JvbGxiYXIoKSBjb24KICAgICByZXR1cm4g
bV90aGVtZS0+dXNlc092ZXJsYXlTY3JvbGxiYXJzKCk7CiB9CiAKK2Jvb2wgU2Nyb2xsYmFyOjpp
c0N1cnJlbnRseVZpc2libGUoKQoreworICAgIC8vIE5vbi1vdmVybGF5IHNjcm9sbGJhcnMgYXJl
IGFsd2F5cyB2aXNpYmxlLgorICAgIGlmICghaXNPdmVybGF5U2Nyb2xsYmFyKCkpCisgICAgICAg
IHJldHVybiB0cnVlOworICAgIHJldHVybiBtX3Njcm9sbGFibGVBcmVhLT5zY3JvbGxBbmltYXRv
cigpLT5zY3JvbGxiYXJJc0N1cnJlbnRseVZpc2libGUodGhpcyk7Cit9CisKIGJvb2wgU2Nyb2xs
YmFyOjppc1dpbmRvd0FjdGl2ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2Nyb2xsYWJsZUFy
ZWEgJiYgbV9zY3JvbGxhYmxlQXJlYS0+aXNBY3RpdmUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGJhci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGJhci5oCShyZXZpc2lvbiAxMDQ3NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxiYXIuaAkod29ya2luZyBjb3B5KQpAQCAtODcsNiArODcsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHNldEVuYWJsZWQoYm9vbCBlKTsKIAogICAgIHZpcnR1YWwgYm9v
bCBpc092ZXJsYXlTY3JvbGxiYXIoKSBjb25zdDsKKyAgICBib29sIGlzQ3VycmVudGx5VmlzaWJs
ZSgpOwogCiAgICAgYm9vbCBpc1dpbmRvd0FjdGl2ZSgpIGNvbnN0OwogCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAkocmV2aXNpb24g
MTA0NzcxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFj
LmgJKHdvcmtpbmcgY29weSkKQEAgLTExOCw2ICsxMTgsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1
YWwgdm9pZCBkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogICAgIHZpcnR1
YWwgdm9pZCB3aWxsUmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJhcihTY3JvbGxiYXIqKTsKIAorICAg
IHZpcnR1YWwgYm9vbCBzY3JvbGxiYXJJc0N1cnJlbnRseVZpc2libGUoU2Nyb2xsYmFyKik7CisK
ICAgICBmbG9hdCBhZGp1c3RTY3JvbGxYUG9zaXRpb25JZk5lY2Vzc2FyeShmbG9hdCkgY29uc3Q7
CiAgICAgZmxvYXQgYWRqdXN0U2Nyb2xsWVBvc2l0aW9uSWZOZWNlc3NhcnkoZmxvYXQpIGNvbnN0
OwogICAgIEZsb2F0UG9pbnQgYWRqdXN0U2Nyb2xsUG9zaXRpb25JZk5lY2Vzc2FyeShjb25zdCBG
bG9hdFBvaW50JikgY29uc3Q7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Ny
b2xsQW5pbWF0b3JNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCShyZXZpc2lvbiAxMDQ4MzcpCisrKyBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0JKHdvcmtpbmcgY29weSkKQEAg
LTg5Niw2ICs4OTYsMjEgQEAgdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6d2lsbFJlbW92ZUhvcml6
bwogICAgIH0KIH0KIAorYm9vbCBTY3JvbGxBbmltYXRvck1hYzo6c2Nyb2xsYmFySXNDdXJyZW50
bHlWaXNpYmxlKFNjcm9sbGJhciogc2Nyb2xsYmFyKQoreworICAgIC8vIE5vbi1vdmVybGF5IHNj
cm9sbGJhcnMgYXJlIGFsd2F5cyB2aXNpYmxlLgorICAgIGlmIChyZWNvbW1lbmRlZFNjcm9sbGVy
U3R5bGUoKSAhPSBOU1Njcm9sbGVyU3R5bGVPdmVybGF5KQorICAgICAgICByZXR1cm4gdHJ1ZTsK
KworICAgIGlmICghaXNTY3JvbGxiYXJPdmVybGF5QVBJQXZhaWxhYmxlKCkpCisgICAgICAgIHJl
dHVybiB0cnVlOworCisgICAgU2Nyb2xsYmFyUGFpbnRlciBwYWludGVyID0gc2Nyb2xsYmFyUGFp
bnRlckZvclNjcm9sbGJhcihzY3JvbGxiYXIpOworICAgIGlmICghcGFpbnRlcikKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIHJldHVybiBbcGFpbnRlciBrbm9iQWxwaGFdID4gMDsKK30KKwog
dm9pZCBTY3JvbGxBbmltYXRvck1hYzo6Y2FuY2VsQW5pbWF0aW9ucygpCiB7CiAgICAgbV9oYXZl
U2Nyb2xsZWRTaW5jZVBhZ2VMb2FkID0gZmFsc2U7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHAJKHJldmlzaW9uIDEwNDc3MSkKKysrIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI1NTIsNyArMjU1
Miw3IEBAIGJvb2wgUmVuZGVyTGF5ZXI6OmhpdFRlc3RPdmVyZmxvd0NvbnRyb2wKIAogICAgIGlu
dCByZXNpemVDb250cm9sU2l6ZSA9IG1heChyZXNpemVDb250cm9sUmVjdC5oZWlnaHQoKSwgMCk7
CiAKLSAgICBpZiAobV92QmFyKSB7CisgICAgaWYgKG1fdkJhciAmJiBtX3ZCYXItPmlzQ3VycmVu
dGx5VmlzaWJsZSgpKSB7CiAgICAgICAgIExheW91dFJlY3QgdkJhclJlY3QoYm94LT53aWR0aCgp
IC0gYm94LT5ib3JkZXJSaWdodCgpIC0gbV92QmFyLT53aWR0aCgpLCAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBib3gtPmJvcmRlclRvcCgpLAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIG1fdkJhci0+d2lkdGgoKSwKQEAgLTI1NjQsNyArMjU2NCw3IEBAIGJvb2wgUmVuZGVyTGF5
ZXI6OmhpdFRlc3RPdmVyZmxvd0NvbnRyb2wKICAgICB9CiAKICAgICByZXNpemVDb250cm9sU2l6
ZSA9IG1heChyZXNpemVDb250cm9sUmVjdC53aWR0aCgpLCAwKTsKLSAgICBpZiAobV9oQmFyKSB7
CisgICAgaWYgKG1faEJhciAmJiBtX2hCYXItPmlzQ3VycmVudGx5VmlzaWJsZSgpKSB7CiAgICAg
ICAgIExheW91dFJlY3QgaEJhclJlY3QoYm94LT5ib3JkZXJMZWZ0KCksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm94LT5oZWlnaHQoKSAtIGJveC0+Ym9yZGVyQm90dG9tKCkgLSBtX2hC
YXItPmhlaWdodCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJveC0+d2lkdGgoKSAt
IChib3gtPmJvcmRlckxlZnQoKSArIGJveC0+Ym9yZGVyUmlnaHQoKSkgLSAobV92QmFyID8gbV92
QmFyLT53aWR0aCgpIDogcmVzaXplQ29udHJvbFNpemUpLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122479</attachid>
            <date>2012-01-13 12:05:28 -0800</date>
            <delta_ts>2012-01-13 13:55:41 -0800</delta_ts>
            <desc>Patch that fixes PDF as well</desc>
            <filename>for-review-2.txt</filename>
            <type>text/plain</type>
            <size>8222</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDk2NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM1IEBACisyMDEyLTAxLTEzICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzEyMzAKKyAgICAgICAgQ2xpY2tpbmcgd2hlcmUgdGhlIG92ZXJs
YXkgc2Nyb2xsIHRyYWNrIHdvdWxkIGJlIHNob3VsZCBub3Qgc2Nyb2xsIHRoZSBwYWdlCisgICAg
ICAgIC1hbmQgY29ycmVzcG9uZGluZy0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzk1ODU0MjQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2Ug
bmV3IGZ1bmN0aW9ucyBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBzY3JvbGxiYXIgaXMgY2xpY2thYmxl
LiBOb24tCisgICAgICAgIG92ZXJsYXkgc2Nyb2xsYmFycyBhcmUgYWx3YXlzIGNsaWNrYWJsZSwg
c28gdGhleSByZXR1cm4gdHJ1ZS4gT3ZlcmxheSAKKyAgICAgICAgc2Nyb2xsYmFycyBjb25zdWx0
IHRoZSBhbmltYXRvciwgd2hpY2ggY2hlY2tzIHRoZSBjdXJyZW50IGFscGhhLiAKKyAgICAgICAg
KiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3I6OnNjcm9sbGJhcklzQ2xpY2thYmxlKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJh
cjo6aXNDbGlja2FibGUpOgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGJhci5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9TY3JvbGxBbmltYXRvck1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbEFuaW1h
dG9yTWFjOjpzY3JvbGxiYXJJc0NsaWNrYWJsZSk6CisKKyAgICAgICAgSW4gdGhlc2UgaGl0LXRl
c3RpbmcgZnVuY3Rpb25zLCBvbmx5IGhpdC10ZXN0IHdoZW4gdGhlIHNjcm9sbGJhciBpcyB2aXNp
YmxlLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbFZpZXcuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsVmlldzo6c2Nyb2xsYmFyQXRQb2ludCk6CisgICAgICAgICogcGxhdGZvcm0vU2Ny
b2xsYmFyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhcjo6bW91c2VNb3ZlZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6Om1vdXNlRW50ZXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpTY3JvbGxiYXI6Om1vdXNlRXhpdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJh
cjo6bW91c2VVcCk6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6Om1vdXNlRG93bik6Cisg
ICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckxheWVyOjpoaXRUZXN0T3ZlcmZsb3dDb250cm9scyk6CisKIDIwMTItMDEtMTMgIFNpbW9u
IEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmVuYW1lIEdyYXBo
aWNzQ29udGV4dCogYXJndW1lbnQgaW4gdmFyaW91cyBSZW5kZXJMYXllciBtZXRob2RzCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgJKHJldmlzaW9uIDEwNDc3
MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTk2LDYgKzk2LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXNldFpv
b20oKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Wm9vbVBhcmFtZXRlcnNGb3JUZXN0KGZsb2F0LCBm
bG9hdCwgZmxvYXQpOwogCisgICAgdmlydHVhbCBib29sIHNjcm9sbGJhcklzQ2xpY2thYmxlKFNj
cm9sbGJhciopIHsgcmV0dXJuIHRydWU7IH0KKwogcHJvdGVjdGVkOgogICAgIFNjcm9sbEFuaW1h
dG9yKFNjcm9sbGFibGVBcmVhKik7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbFZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwCShyZXZpc2lvbiAxMDQ3NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxWaWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODI4LDkgKzgyOCw5IEBAIFNjcm9sbGJh
ciogU2Nyb2xsVmlldzo6c2Nyb2xsYmFyQXRQb2ludCgKICAgICAgICAgcmV0dXJuIDA7CiAKICAg
ICBJbnRQb2ludCB2aWV3UG9pbnQgPSBjb252ZXJ0RnJvbUNvbnRhaW5pbmdXaW5kb3cod2luZG93
UG9pbnQpOwotICAgIGlmIChtX2hvcml6b250YWxTY3JvbGxiYXIgJiYgbV9ob3Jpem9udGFsU2Ny
b2xsYmFyLT5mcmFtZVJlY3QoKS5jb250YWlucyh2aWV3UG9pbnQpKQorICAgIGlmIChtX2hvcml6
b250YWxTY3JvbGxiYXIgJiYgbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5pc0NsaWNrYWJsZSgpICYm
IG1faG9yaXpvbnRhbFNjcm9sbGJhci0+ZnJhbWVSZWN0KCkuY29udGFpbnModmlld1BvaW50KSkK
ICAgICAgICAgcmV0dXJuIG1faG9yaXpvbnRhbFNjcm9sbGJhci5nZXQoKTsKLSAgICBpZiAobV92
ZXJ0aWNhbFNjcm9sbGJhciAmJiBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5mcmFtZVJlY3QoKS5jb250
YWlucyh2aWV3UG9pbnQpKQorICAgIGlmIChtX3ZlcnRpY2FsU2Nyb2xsYmFyICYmIG1fdmVydGlj
YWxTY3JvbGxiYXItPmlzQ2xpY2thYmxlKCkgJiYgbV92ZXJ0aWNhbFNjcm9sbGJhci0+ZnJhbWVS
ZWN0KCkuY29udGFpbnModmlld1BvaW50KSkKICAgICAgICAgcmV0dXJuIG1fdmVydGljYWxTY3Jv
bGxiYXIuZ2V0KCk7CiAgICAgcmV0dXJuIDA7CiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxiYXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbGJhci5jcHAJKHJldmlzaW9uIDEwNDc3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGJhci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzMSw2ICszMzEsOSBAQCB2b2lk
IFNjcm9sbGJhcjo6c2V0UHJlc3NlZFBhcnQoU2Nyb2xsYmFyCiAKIGJvb2wgU2Nyb2xsYmFyOjpt
b3VzZU1vdmVkKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZ0KQogeworICAgIGlmICghaXND
bGlja2FibGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKG1fcHJlc3NlZFBh
cnQgPT0gVGh1bWJQYXJ0KSB7CiAgICAgICAgIGlmICh0aGVtZSgpLT5zaG91bGRTbmFwQmFja1Rv
RHJhZ09yaWdpbih0aGlzLCBldnQpKSB7CiAgICAgICAgICAgICBpZiAobV9zY3JvbGxhYmxlQXJl
YSkKQEAgLTM3MCwxMiArMzczLDE4IEBAIGJvb2wgU2Nyb2xsYmFyOjptb3VzZU1vdmVkKGNvbnN0
IFBsYXRmb3IKIAogdm9pZCBTY3JvbGxiYXI6Om1vdXNlRW50ZXJlZCgpCiB7CisgICAgaWYgKCFp
c0NsaWNrYWJsZSgpKQorICAgICAgICByZXR1cm47CisKICAgICBpZiAobV9zY3JvbGxhYmxlQXJl
YSkKICAgICAgICAgbV9zY3JvbGxhYmxlQXJlYS0+bW91c2VFbnRlcmVkU2Nyb2xsYmFyKHRoaXMp
OwogfQogCiBib29sIFNjcm9sbGJhcjo6bW91c2VFeGl0ZWQoKQogeworICAgIGlmICghaXNDbGlj
a2FibGUoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgaWYgKG1fc2Nyb2xsYWJsZUFy
ZWEpCiAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEtPm1vdXNlRXhpdGVkU2Nyb2xsYmFyKHRoaXMp
OwogICAgIHNldEhvdmVyZWRQYXJ0KE5vUGFydCk7CkBAIC0zODQsNiArMzkzLDkgQEAgYm9vbCBT
Y3JvbGxiYXI6Om1vdXNlRXhpdGVkKCkKIAogYm9vbCBTY3JvbGxiYXI6Om1vdXNlVXAoY29uc3Qg
UGxhdGZvcm1Nb3VzZUV2ZW50JiBtb3VzZUV2ZW50KQogeworICAgIGlmICghaXNDbGlja2FibGUo
KSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCiAgICAgc2V0UHJlc3NlZFBhcnQoTm9QYXJ0KTsK
ICAgICBtX3ByZXNzZWRQb3MgPSAwOwogICAgIG1fZHJhZ2dpbmdEb2N1bWVudCA9IGZhbHNlOwpA
QCAtNDA1LDYgKzQxNyw5IEBAIGJvb2wgU2Nyb2xsYmFyOjptb3VzZVVwKGNvbnN0IFBsYXRmb3Jt
TW8KIAogYm9vbCBTY3JvbGxiYXI6Om1vdXNlRG93bihjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQm
IGV2dCkKIHsKKyAgICBpZiAoIWlzQ2xpY2thYmxlKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsK
KwogICAgIC8vIEVhcmx5IGV4aXQgZm9yIHJpZ2h0IGNsaWNrCiAgICAgaWYgKGV2dC5idXR0b24o
KSA9PSBSaWdodEJ1dHRvbikKICAgICAgICAgcmV0dXJuIHRydWU7IC8vIEZJWE1FOiBIYW5kbGVk
IGFzIGNvbnRleHQgbWVudSBieSBRdCByaWdodCBub3cuICBTaG91bGQganVzdCBhdm9pZCBldmVu
IGNhbGxpbmcgdGhpcyBtZXRob2Qgb24gYSByaWdodCBjbGljayB0aG91Z2guCkBAIC00ODcsNiAr
NTAyLDE0IEBAIGJvb2wgU2Nyb2xsYmFyOjppc092ZXJsYXlTY3JvbGxiYXIoKSBjb24KICAgICBy
ZXR1cm4gbV90aGVtZS0+dXNlc092ZXJsYXlTY3JvbGxiYXJzKCk7CiB9CiAKK2Jvb2wgU2Nyb2xs
YmFyOjppc0NsaWNrYWJsZSgpCit7CisgICAgLy8gTm9uLW92ZXJsYXkgc2Nyb2xsYmFycyBhcmUg
YWx3YXlzIGNsaWNrYWJsZS4KKyAgICBpZiAoIWlzT3ZlcmxheVNjcm9sbGJhcigpKQorICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gbV9zY3JvbGxhYmxlQXJlYS0+c2Nyb2xsQW5pbWF0
b3IoKS0+c2Nyb2xsYmFySXNDbGlja2FibGUodGhpcyk7Cit9CisKIGJvb2wgU2Nyb2xsYmFyOjpp
c1dpbmRvd0FjdGl2ZSgpIGNvbnN0CiB7CiAgICAgcmV0dXJuIG1fc2Nyb2xsYWJsZUFyZWEgJiYg
bV9zY3JvbGxhYmxlQXJlYS0+aXNBY3RpdmUoKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGJhci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGJhci5oCShyZXZpc2lvbiAxMDQ3NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxiYXIuaAkod29ya2luZyBjb3B5KQpAQCAtODcsNiArODcsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHNldEVuYWJsZWQoYm9vbCBlKTsKIAogICAgIHZpcnR1YWwgYm9vbCBpc092
ZXJsYXlTY3JvbGxiYXIoKSBjb25zdDsKKyAgICBib29sIGlzQ2xpY2thYmxlKCk7CiAKICAgICBi
b29sIGlzV2luZG93QWN0aXZlKCkgY29uc3Q7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5oCShyZXZpc2lvbiAxMDQ3NzEpCisrKyBT
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMuaAkod29ya2luZyBj
b3B5KQpAQCAtMTE4LDYgKzExOCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGRpZEFk
ZEhvcml6b250YWxTY3JvbGxiYXIoU2Nyb2xsYmFyKik7CiAgICAgdmlydHVhbCB2b2lkIHdpbGxS
ZW1vdmVIb3Jpem9udGFsU2Nyb2xsYmFyKFNjcm9sbGJhciopOwogCisgICAgdmlydHVhbCBib29s
IHNjcm9sbGJhcklzQ2xpY2thYmxlKFNjcm9sbGJhciopOworCiAgICAgZmxvYXQgYWRqdXN0U2Ny
b2xsWFBvc2l0aW9uSWZOZWNlc3NhcnkoZmxvYXQpIGNvbnN0OwogICAgIGZsb2F0IGFkanVzdFNj
cm9sbFlQb3NpdGlvbklmTmVjZXNzYXJ5KGZsb2F0KSBjb25zdDsKICAgICBGbG9hdFBvaW50IGFk
anVzdFNjcm9sbFBvc2l0aW9uSWZOZWNlc3NhcnkoY29uc3QgRmxvYXRQb2ludCYpIGNvbnN0OwpJ
bmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFjLm1tCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1h
Yy5tbQkocmV2aXNpb24gMTA0ODM3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Nj
cm9sbEFuaW1hdG9yTWFjLm1tCSh3b3JraW5nIGNvcHkpCkBAIC04OTYsNiArODk2LDIyIEBAIHZv
aWQgU2Nyb2xsQW5pbWF0b3JNYWM6OndpbGxSZW1vdmVIb3Jpem8KICAgICB9CiB9CiAKK2Jvb2wg
U2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbGJhcklzQ2xpY2thYmxlKFNjcm9sbGJhciogc2Nyb2xs
YmFyKQoreworICAgIC8vIE5vbi1vdmVybGF5IHNjcm9sbGJhcnMgYXJlIGFsd2F5cyBjbGlja2Fi
bGUuCisgICAgaWYgKHJlY29tbWVuZGVkU2Nyb2xsZXJTdHlsZSgpICE9IE5TU2Nyb2xsZXJTdHls
ZU92ZXJsYXkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKCFpc1Njcm9sbGJhck92
ZXJsYXlBUElBdmFpbGFibGUoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAvLyBPdmVy
bGF5IHNjcm9sbGJhcnMgYXJlIGNsaWNrYWJsZSB3aGVuZXZlciB0aGV5IGFyZSBhdCBhbGwgdmlz
aWJsZS4KKyAgICBTY3JvbGxiYXJQYWludGVyIHBhaW50ZXIgPSBzY3JvbGxiYXJQYWludGVyRm9y
U2Nyb2xsYmFyKHNjcm9sbGJhcik7CisgICAgaWYgKCFwYWludGVyKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgcmV0dXJuIFtwYWludGVyIGtub2JBbHBoYV0gPiAwOworfQorCiB2b2lkIFNj
cm9sbEFuaW1hdG9yTWFjOjpjYW5jZWxBbmltYXRpb25zKCkKIHsKICAgICBtX2hhdmVTY3JvbGxl
ZFNpbmNlUGFnZUxvYWQgPSBmYWxzZTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcAkocmV2aXNpb24gMTA0NzcxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU1Miw3ICsyNTUyLDcgQEAg
Ym9vbCBSZW5kZXJMYXllcjo6aGl0VGVzdE92ZXJmbG93Q29udHJvbAogCiAgICAgaW50IHJlc2l6
ZUNvbnRyb2xTaXplID0gbWF4KHJlc2l6ZUNvbnRyb2xSZWN0LmhlaWdodCgpLCAwKTsKIAotICAg
IGlmIChtX3ZCYXIpIHsKKyAgICBpZiAobV92QmFyICYmIG1fdkJhci0+aXNDbGlja2FibGUoKSkg
ewogICAgICAgICBMYXlvdXRSZWN0IHZCYXJSZWN0KGJveC0+d2lkdGgoKSAtIGJveC0+Ym9yZGVy
UmlnaHQoKSAtIG1fdkJhci0+d2lkdGgoKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym94LT5ib3JkZXJUb3AoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3ZCYXItPndp
ZHRoKCksCkBAIC0yNTY0LDcgKzI1NjQsNyBAQCBib29sIFJlbmRlckxheWVyOjpoaXRUZXN0T3Zl
cmZsb3dDb250cm9sCiAgICAgfQogCiAgICAgcmVzaXplQ29udHJvbFNpemUgPSBtYXgocmVzaXpl
Q29udHJvbFJlY3Qud2lkdGgoKSwgMCk7Ci0gICAgaWYgKG1faEJhcikgeworICAgIGlmIChtX2hC
YXIgJiYgbV9oQmFyLT5pc0NsaWNrYWJsZSgpKSB7CiAgICAgICAgIExheW91dFJlY3QgaEJhclJl
Y3QoYm94LT5ib3JkZXJMZWZ0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94LT5o
ZWlnaHQoKSAtIGJveC0+Ym9yZGVyQm90dG9tKCkgLSBtX2hCYXItPmhlaWdodCgpLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJveC0+d2lkdGgoKSAtIChib3gtPmJvcmRlckxlZnQoKSAr
IGJveC0+Ym9yZGVyUmlnaHQoKSkgLSAobV92QmFyID8gbV92QmFyLT53aWR0aCgpIDogcmVzaXpl
Q29udHJvbFNpemUpLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>122494</attachid>
            <date>2012-01-13 13:55:41 -0800</date>
            <delta_ts>2012-01-13 14:33:35 -0800</delta_ts>
            <desc>Better patch that also fixed PDF</desc>
            <filename>for-review-3.txt</filename>
            <type>text/plain</type>
            <size>8571</size>
            <attacher name="Beth Dakin">bdakin</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwNDk4NCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM0IEBACisyMDEyLTAxLTEzICBCZXRoIERh
a2luICA8YmRha2luQGFwcGxlLmNvbT4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9NzEyMzAKKyAgICAgICAgQ2xpY2tpbmcgd2hlcmUgdGhlIG92ZXJs
YXkgc2Nyb2xsIHRyYWNrIHdvdWxkIGJlIHNob3VsZCBub3Qgc2Nyb2xsIHRoZSBwYWdlCisgICAg
ICAgIC1hbmQgY29ycmVzcG9uZGluZy0KKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzk1ODU0MjQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlc2Ug
bmV3IGZ1bmN0aW9ucyBpbmRpY2F0ZSB3aGV0aGVyIHRoZSBzY3JvbGxiYXIgaXMgY2xpY2thYmxl
LiBOb24tCisgICAgICAgIG92ZXJsYXkgc2Nyb2xsYmFycyBhcmUgYWx3YXlzIGNsaWNrYWJsZSwg
c28gdGhleSByZXR1cm4gdHJ1ZS4gT3ZlcmxheSAKKyAgICAgICAgc2Nyb2xsYmFycyBjb25zdWx0
IHRoZSBhbmltYXRvciwgd2hpY2ggY2hlY2tzIHRoZSBjdXJyZW50IGFscGhhLiAKKyAgICAgICAg
KiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5p
bWF0b3I6OnNjcm9sbGJhcklzQ2xpY2thYmxlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxi
YXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyOjppc0NsaWNrYWJsZSk6CisgICAg
ICAgICogcGxhdGZvcm0vU2Nyb2xsYmFyLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9s
bEFuaW1hdG9yTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Njcm9sbEFuaW1hdG9yTWFj
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsQW5pbWF0b3JNYWM6OnNjcm9sbGJhcklzQ2xp
Y2thYmxlKToKKworICAgICAgICBJbiB0aGVzZSBoaXQtdGVzdGluZyBmdW5jdGlvbnMsIG9ubHkg
aGl0LXRlc3Qgd2hlbiB0aGUgc2Nyb2xsYmFyIGlzIHZpc2libGUuCisgICAgICAgICogcGxhdGZv
cm0vU2Nyb2xsVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxWaWV3OjpzY3JvbGxi
YXJBdFBvaW50KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6Om5vZGVBdFBvaW50KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyTGF5ZXI6OmhpdFRlc3RPdmVyZmxvd0NvbnRyb2xzKToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyTGlzdEJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojpp
c1BvaW50SW5PdmVyZmxvd0NvbnRyb2wpOgorCiAyMDEyLTAxLTEzICBBbmRlcnMgQ2FybHNzb24g
IDxhbmRlcnNjYUBhcHBsZS5jb20+CiAKICAgICAgICAgLVtXZWJUaWxlQ2FjaGVMYXllciBzZXRO
ZWVkc0Rpc3BsYXldIGRvZXNuJ3QgdHJpZ2dlciBpbnZhbGlkYXRpb24KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAkocmV2aXNpb24gMTA0NzcxKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAt
OTYsNiArOTYsOCBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlc2V0Wm9vbSgpOwogICAg
IHZpcnR1YWwgdm9pZCBzZXRab29tUGFyYW1ldGVyc0ZvclRlc3QoZmxvYXQsIGZsb2F0LCBmbG9h
dCk7CiAKKyAgICB2aXJ0dWFsIGJvb2wgc2Nyb2xsYmFySXNDbGlja2FibGUoU2Nyb2xsYmFyKikg
eyByZXR1cm4gdHJ1ZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgU2Nyb2xsQW5pbWF0b3IoU2Nyb2xs
YWJsZUFyZWEqKTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAJ
KHJldmlzaW9uIDEwNDc3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04MjgsOSArODI4LDkgQEAgU2Nyb2xsYmFyKiBTY3JvbGxW
aWV3OjpzY3JvbGxiYXJBdFBvaW50KAogICAgICAgICByZXR1cm4gMDsKIAogICAgIEludFBvaW50
IHZpZXdQb2ludCA9IGNvbnZlcnRGcm9tQ29udGFpbmluZ1dpbmRvdyh3aW5kb3dQb2ludCk7Ci0g
ICAgaWYgKG1faG9yaXpvbnRhbFNjcm9sbGJhciAmJiBtX2hvcml6b250YWxTY3JvbGxiYXItPmZy
YW1lUmVjdCgpLmNvbnRhaW5zKHZpZXdQb2ludCkpCisgICAgaWYgKG1faG9yaXpvbnRhbFNjcm9s
bGJhciAmJiBtX2hvcml6b250YWxTY3JvbGxiYXItPmlzQ2xpY2thYmxlKCkgJiYgbV9ob3Jpem9u
dGFsU2Nyb2xsYmFyLT5mcmFtZVJlY3QoKS5jb250YWlucyh2aWV3UG9pbnQpKQogICAgICAgICBy
ZXR1cm4gbV9ob3Jpem9udGFsU2Nyb2xsYmFyLmdldCgpOwotICAgIGlmIChtX3ZlcnRpY2FsU2Ny
b2xsYmFyICYmIG1fdmVydGljYWxTY3JvbGxiYXItPmZyYW1lUmVjdCgpLmNvbnRhaW5zKHZpZXdQ
b2ludCkpCisgICAgaWYgKG1fdmVydGljYWxTY3JvbGxiYXIgJiYgbV92ZXJ0aWNhbFNjcm9sbGJh
ci0+aXNDbGlja2FibGUoKSAmJiBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5mcmFtZVJlY3QoKS5jb250
YWlucyh2aWV3UG9pbnQpKQogICAgICAgICByZXR1cm4gbV92ZXJ0aWNhbFNjcm9sbGJhci5nZXQo
KTsKICAgICByZXR1cm4gMDsKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGJhci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFy
LmNwcAkocmV2aXNpb24gMTA0NzcxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YmFyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDg3LDYgKzQ4NywxNCBAQCBib29sIFNjcm9sbGJh
cjo6aXNPdmVybGF5U2Nyb2xsYmFyKCkgY29uCiAgICAgcmV0dXJuIG1fdGhlbWUtPnVzZXNPdmVy
bGF5U2Nyb2xsYmFycygpOwogfQogCitib29sIFNjcm9sbGJhcjo6aXNDbGlja2FibGUoKQorewor
ICAgIC8vIE5vbi1vdmVybGF5IHNjcm9sbGJhcnMgYXJlIGFsd2F5cyBjbGlja2FibGUuCisgICAg
aWYgKCFpc092ZXJsYXlTY3JvbGxiYXIoKSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgcmV0
dXJuIG1fc2Nyb2xsYWJsZUFyZWEtPnNjcm9sbEFuaW1hdG9yKCktPnNjcm9sbGJhcklzQ2xpY2th
YmxlKHRoaXMpOworfQorCiBib29sIFNjcm9sbGJhcjo6aXNXaW5kb3dBY3RpdmUoKSBjb25zdAog
ewogICAgIHJldHVybiBtX3Njcm9sbGFibGVBcmVhICYmIG1fc2Nyb2xsYWJsZUFyZWEtPmlzQWN0
aXZlKCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuaAkocmV2aXNpb24gMTA0
NzcxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTg3LDYgKzg3LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRFbmFibGVk
KGJvb2wgZSk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNPdmVybGF5U2Nyb2xsYmFyKCkgY29uc3Q7
CisgICAgYm9vbCBpc0NsaWNrYWJsZSgpOwogCiAgICAgYm9vbCBpc1dpbmRvd0FjdGl2ZSgpIGNv
bnN0OwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JN
YWMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5p
bWF0b3JNYWMuaAkocmV2aXNpb24gMTA0NzcxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Njcm9sbEFuaW1hdG9yTWFjLmgJKHdvcmtpbmcgY29weSkKQEAgLTExOCw2ICsxMTgsOCBA
QCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBkaWRBZGRIb3Jpem9udGFsU2Nyb2xsYmFyKFNj
cm9sbGJhciopOwogICAgIHZpcnR1YWwgdm9pZCB3aWxsUmVtb3ZlSG9yaXpvbnRhbFNjcm9sbGJh
cihTY3JvbGxiYXIqKTsKIAorICAgIHZpcnR1YWwgYm9vbCBzY3JvbGxiYXJJc0NsaWNrYWJsZShT
Y3JvbGxiYXIqKTsKKwogICAgIGZsb2F0IGFkanVzdFNjcm9sbFhQb3NpdGlvbklmTmVjZXNzYXJ5
KGZsb2F0KSBjb25zdDsKICAgICBmbG9hdCBhZGp1c3RTY3JvbGxZUG9zaXRpb25JZk5lY2Vzc2Fy
eShmbG9hdCkgY29uc3Q7CiAgICAgRmxvYXRQb2ludCBhZGp1c3RTY3JvbGxQb3NpdGlvbklmTmVj
ZXNzYXJ5KGNvbnN0IEZsb2F0UG9pbnQmKSBjb25zdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsQW5pbWF0b3JNYWMubW0JKHJldmlzaW9uIDEwNDgzNykK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxBbmltYXRvck1hYy5tbQkod29y
a2luZyBjb3B5KQpAQCAtODk2LDYgKzg5NiwyMiBAQCB2b2lkIFNjcm9sbEFuaW1hdG9yTWFjOjp3
aWxsUmVtb3ZlSG9yaXpvCiAgICAgfQogfQogCitib29sIFNjcm9sbEFuaW1hdG9yTWFjOjpzY3Jv
bGxiYXJJc0NsaWNrYWJsZShTY3JvbGxiYXIqIHNjcm9sbGJhcikKK3sKKyAgICAvLyBOb24tb3Zl
cmxheSBzY3JvbGxiYXJzIGFyZSBhbHdheXMgY2xpY2thYmxlLgorICAgIGlmIChyZWNvbW1lbmRl
ZFNjcm9sbGVyU3R5bGUoKSAhPSBOU1Njcm9sbGVyU3R5bGVPdmVybGF5KQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKworICAgIGlmICghaXNTY3JvbGxiYXJPdmVybGF5QVBJQXZhaWxhYmxlKCkpCisg
ICAgICAgIHJldHVybiB0cnVlOworCisgICAgLy8gT3ZlcmxheSBzY3JvbGxiYXJzIGFyZSBjbGlj
a2FibGUgd2hlbmV2ZXIgdGhleSBhcmUgYXQgYWxsIHZpc2libGUuCisgICAgU2Nyb2xsYmFyUGFp
bnRlciBwYWludGVyID0gc2Nyb2xsYmFyUGFpbnRlckZvclNjcm9sbGJhcihzY3JvbGxiYXIpOwor
ICAgIGlmICghcGFpbnRlcikKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBbcGFp
bnRlciBrbm9iQWxwaGFdID4gMDsKK30KKwogdm9pZCBTY3JvbGxBbmltYXRvck1hYzo6Y2FuY2Vs
QW5pbWF0aW9ucygpCiB7CiAgICAgbV9oYXZlU2Nyb2xsZWRTaW5jZVBhZ2VMb2FkID0gZmFsc2U7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9i
amVjdC5jcHAJKHJldmlzaW9uIDEwNDc3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2MiwxNCArMjYyLDE0
IEBAIGJvb2wgUmVuZGVyRW1iZWRkZWRPYmplY3Q6Om5vZGVBdFBvaW50KGMKICAgICBQbHVnaW5W
aWV3QmFzZSogdmlldyA9IHN0YXRpY19jYXN0PFBsdWdpblZpZXdCYXNlKj4od2lkZ2V0KCkpOwog
CiAgICAgaWYgKFNjcm9sbGJhciogaG9yaXpvbnRhbFNjcm9sbGJhciA9IHZpZXctPmhvcml6b250
YWxTY3JvbGxiYXIoKSkgewotICAgICAgICBpZiAoaG9yaXpvbnRhbFNjcm9sbGJhci0+ZnJhbWVS
ZWN0KCkuY29udGFpbnMocG9pbnRJbkNvbnRhaW5lcikpIHsKKyAgICAgICAgaWYgKGhvcml6b250
YWxTY3JvbGxiYXItPmlzQ2xpY2thYmxlKCkgJiYgaG9yaXpvbnRhbFNjcm9sbGJhci0+ZnJhbWVS
ZWN0KCkuY29udGFpbnMocG9pbnRJbkNvbnRhaW5lcikpIHsKICAgICAgICAgICAgIHJlc3VsdC5z
ZXRTY3JvbGxiYXIoaG9yaXpvbnRhbFNjcm9sbGJhcik7CiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChTY3JvbGxiYXIqIHZlcnRpY2FsU2Nyb2xs
YmFyID0gdmlldy0+dmVydGljYWxTY3JvbGxiYXIoKSkgewotICAgICAgICBpZiAodmVydGljYWxT
Y3JvbGxiYXItPmZyYW1lUmVjdCgpLmNvbnRhaW5zKHBvaW50SW5Db250YWluZXIpKSB7CisgICAg
ICAgIGlmICh2ZXJ0aWNhbFNjcm9sbGJhci0+aXNDbGlja2FibGUoKSAmJiB2ZXJ0aWNhbFNjcm9s
bGJhci0+ZnJhbWVSZWN0KCkuY29udGFpbnMocG9pbnRJbkNvbnRhaW5lcikpIHsKICAgICAgICAg
ICAgIHJlc3VsdC5zZXRTY3JvbGxiYXIodmVydGljYWxTY3JvbGxiYXIpOwogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcAkocmV2aXNpb24gMTA0NzcxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjU1Miw3ICsyNTUyLDcgQEAg
Ym9vbCBSZW5kZXJMYXllcjo6aGl0VGVzdE92ZXJmbG93Q29udHJvbAogCiAgICAgaW50IHJlc2l6
ZUNvbnRyb2xTaXplID0gbWF4KHJlc2l6ZUNvbnRyb2xSZWN0LmhlaWdodCgpLCAwKTsKIAotICAg
IGlmIChtX3ZCYXIpIHsKKyAgICBpZiAobV92QmFyICYmIG1fdkJhci0+aXNDbGlja2FibGUoKSkg
ewogICAgICAgICBMYXlvdXRSZWN0IHZCYXJSZWN0KGJveC0+d2lkdGgoKSAtIGJveC0+Ym9yZGVy
UmlnaHQoKSAtIG1fdkJhci0+d2lkdGgoKSwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Ym94LT5ib3JkZXJUb3AoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX3ZCYXItPndp
ZHRoKCksCkBAIC0yNTY0LDcgKzI1NjQsNyBAQCBib29sIFJlbmRlckxheWVyOjpoaXRUZXN0T3Zl
cmZsb3dDb250cm9sCiAgICAgfQogCiAgICAgcmVzaXplQ29udHJvbFNpemUgPSBtYXgocmVzaXpl
Q29udHJvbFJlY3Qud2lkdGgoKSwgMCk7Ci0gICAgaWYgKG1faEJhcikgeworICAgIGlmIChtX2hC
YXIgJiYgbV9oQmFyLT5pc0NsaWNrYWJsZSgpKSB7CiAgICAgICAgIExheW91dFJlY3QgaEJhclJl
Y3QoYm94LT5ib3JkZXJMZWZ0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94LT5o
ZWlnaHQoKSAtIGJveC0+Ym9yZGVyQm90dG9tKCkgLSBtX2hCYXItPmhlaWdodCgpLAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGJveC0+d2lkdGgoKSAtIChib3gtPmJvcmRlckxlZnQoKSAr
IGJveC0+Ym9yZGVyUmlnaHQoKSkgLSAobV92QmFyID8gbV92QmFyLT53aWR0aCgpIDogcmVzaXpl
Q29udHJvbFNpemUpLApJbmRleDogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmNwcAkocmV2aXNpb24gMTA0NzcxKQorKysgU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxpc3RCb3guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDgsNyArNDQ4LDcgQEAgdm9pZCBS
ZW5kZXJMaXN0Qm94OjpwYWludEl0ZW1CYWNrZ3JvdW5kKAogCiBib29sIFJlbmRlckxpc3RCb3g6
OmlzUG9pbnRJbk92ZXJmbG93Q29udHJvbChIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0IExh
eW91dFBvaW50JiBwb2ludEluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0
ZWRPZmZzZXQpCiB7Ci0gICAgaWYgKCFtX3ZCYXIpCisgICAgaWYgKCFtX3ZCYXIgfHwgIW1fdkJh
ci0+aXNDbGlja2FibGUoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgTGF5b3V0UmVj
dCB2ZXJ0UmVjdChhY2N1bXVsYXRlZE9mZnNldC54KCkgKyB3aWR0aCgpIC0gYm9yZGVyUmlnaHQo
KSAtIG1fdkJhci0+d2lkdGgoKSwK
</data>
<flag name="review"
          id="123299"
          type_id="1"
          status="+"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>