<?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>34371</bug_id>
          
          <creation_ts>2010-01-30 00:27:41 -0800</creation_ts>
          <short_desc>REGRESSION (r53718): When scrolling a tall window by page, the overlap between pages is too big</short_desc>
          <delta_ts>2012-11-30 12:31:34 -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>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar, Regression</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>hyatt</cc>
    
    <cc>pkasting</cc>
    
    <cc>rniwa</cc>
    
    <cc>sullivan</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>186076</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-01-30 00:27:41 -0800</bug_when>
    <thetext>&lt;http://trac.webkit.org/changeset/53718&gt; changed scroll by page behavior to make the overlap between pages a fraction of the visible height (width when scrolling horizontally). This was motivated by the fixed-size overlap being too big for small areas. However, it resulted in the overlap being too big for big areas. For example, for a visible height of around 1000 pixels, the overlap is 125 pixels, compared to 40 pixels before the change. In Firefox on Mac OS X, the overlap for a similar visible height is only 32 pixels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186077</commentid>
    <comment_count>1</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2010-01-30 00:30:39 -0800</bug_when>
    <thetext>No, the original motivation was the overlap being too small for big areas, making page scrolls hinder readability.  The change was made to match IE which behaves much more nicely than Fx: having a 125 px overlap at 1000 px is exactly what we wanted.

Fixing the excessive overlap in tiny areas was an added bonus, but not the main goal.

FWIW, hyatt&apos;s comment in IRC was &quot;oh, my original 40 px change was an attempt to match IE, so if they do 1/8th page, let&apos;s do that&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186078</commentid>
    <comment_count>2</comment_count>
      <attachid>47758</attachid>
    <who name="">mitz</who>
    <bug_when>2010-01-30 00:30:53 -0800</bug_when>
    <thetext>Created attachment 47758
Cap the overlap amount at 40 pixels</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186079</commentid>
    <comment_count>3</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2010-01-30 00:32:12 -0800</bug_when>
    <thetext>(From the original bug:

&quot;This means that when we scroll by &quot;one page&quot;, we overlap by 40 px.  This is an
extremely small amount -- for any nontrivial window height, barely enough to be
noticeable.  ...

By contrast, IE overlaps by 1/8th of the page height.  This strikes me as much
better for readability (and indeed, when reading on my full-height window, it&apos;s
much easier to read without losing my place).&quot;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186080</commentid>
    <comment_count>4</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-01-30 00:34:42 -0800</bug_when>
    <thetext>I am not aware of any application on Mac OS X where the overlap is anywhere near 125 pixels for a window size of 1000 pixels. This makes Safari look broken on Mac OS X.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186081</commentid>
    <comment_count>5</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2010-01-30 00:37:26 -0800</bug_when>
    <thetext>Well we certainly don&apos;t want to cap at 40 px, that was exactly the problem with the old behavior.  And Chromium on OS X (and all other OSes, of course) wants to keep the current behavior.

This is why I asked about platform-specific behavior and objections on the old bug.

Perhaps we can put in a Safari/Mac-specific override.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186082</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-30 00:39:15 -0800</bug_when>
    <thetext>Attachment 47758 did not build on mac:
Build output: http://webkit-commit-queue.appspot.com/results/220331</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186083</commentid>
    <comment_count>7</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2010-01-30 00:40:11 -0800</bug_when>
    <thetext>(Though I wonder if everyone would agree that it &quot;looks broken&quot;.  It doesn&apos;t
look broken to me on my MacBook, or on my 1920-pixel-high fullscreen-browsing
Windows desktop either.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186086</commentid>
    <comment_count>8</comment_count>
      <attachid>47759</attachid>
    <who name="">mitz</who>
    <bug_when>2010-01-30 01:31:07 -0800</bug_when>
    <thetext>Created attachment 47759
Allow ScrollbarTheme to cap the overlap between pages, and set a cap of in ScrollbarThemeMac</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186087</commentid>
    <comment_count>9</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2010-01-30 01:34:15 -0800</bug_when>
    <thetext>I am happy with this patch in principle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186088</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-30 02:00:21 -0800</bug_when>
    <thetext>Attachment 47759 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/221255</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186627</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-01 15:57:12 -0800</bug_when>
    <thetext>This will break Gtk:
../../WebCore/platform/gtk/WheelEventGtk.cpp: In constructor ‘WebCore::PlatformWheelEvent::PlatformWheelEvent(GdkEventScroll*)’:
../../WebCore/platform/gtk/WheelEventGtk.cpp:72: error: ‘cScrollbarPixelsPerLineStep’ was not declared in this scope</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187632</commentid>
    <comment_count>12</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-02-03 22:05:05 -0800</bug_when>
    <thetext>&lt;rdar://problem/7611154&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187803</commentid>
    <comment_count>13</comment_count>
      <attachid>47759</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2010-02-04 08:12:07 -0800</bug_when>
    <thetext>Comment on attachment 47759
Allow ScrollbarTheme to cap the overlap between pages, and set a cap of in ScrollbarThemeMac

&gt; Index: WebCore/platform/Scrollbar.h
&gt; ===================================================================

&gt; +    static int pixelsPerLineStep() { return 40; }
&gt; +    static float minFractionToStepWhenPaging() { return 0.875f; }
&gt; +    static int maxAmountToKeepWhenPaging();

I think I&apos;d like to see &quot;pixels&quot; in the name of this method.I&apos;m not super-keen on &quot;amount to keep&quot; either, but can&apos;t think of a better term.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187820</commentid>
    <comment_count>14</comment_count>
    <who name="John Sullivan">sullivan</who>
    <bug_when>2010-02-04 08:53:28 -0800</bug_when>
    <thetext>Maybe &quot;overlap&quot; for &quot;amountToKeep&quot;?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187833</commentid>
    <comment_count>15</comment_count>
    <who name="">mitz</who>
    <bug_when>2010-02-04 09:37:02 -0800</bug_when>
    <thetext>&lt;http://trac.webkit.org/projects/webkit/changeset/54345&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576475</commentid>
    <comment_count>16</comment_count>
      <attachid>47759</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-12 13:42:23 -0700</bug_when>
    <thetext>Comment on attachment 47759
Allow ScrollbarTheme to cap the overlap between pages, and set a cap of in ScrollbarThemeMac

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

&gt; LayoutTests/platform/mac/fast/events/scrollbar-double-click-expected.txt:1
&gt; +Scroll offset is 720

It seems like scroll offset is always 700 now:
http://build.webkit.org/results/SnowLeopard%20Intel%20Release%20(Tests)/r110449%20(37984)/fast/events/scrollbar-double-click-pretty-diff.html
http://build.webkit.org/results/Lion%20Intel%20Release%20(Tests)/r110450%20(6234)/fast/events/scrollbar-double-click-pretty-diff.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576481</commentid>
    <comment_count>17</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-03-12 13:48:21 -0700</bug_when>
    <thetext>Rebaselined in http://trac.webkit.org/changeset/110472. Please let me know if you think this rebaseline is incorrect.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576499</commentid>
    <comment_count>18</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-03-12 14:13:23 -0700</bug_when>
    <thetext>This is a side effect of running the tests with ScrollbarThemeMock.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>576501</commentid>
    <comment_count>19</comment_count>
    <who name="">mitz</who>
    <bug_when>2012-03-12 14:14:21 -0700</bug_when>
    <thetext>We’ve lost test coverage for all the code in ScrollbarThemeMac :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780304</commentid>
    <comment_count>20</comment_count>
    <who name="Graeme Hewson">bugs</who>
    <bug_when>2012-11-30 12:24:13 -0800</bug_when>
    <thetext>Could this be user-configurable, a user asks. See https://forum.kde.org/viewtopic.php?f=15&amp;t=108930&amp;sid=c585b1db933e0c0be00ccd27a67e3638</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>780313</commentid>
    <comment_count>21</comment_count>
    <who name="Peter Kasting">pkasting</who>
    <bug_when>2012-11-30 12:31:34 -0800</bug_when>
    <thetext>(In reply to comment #20)
&gt; Could this be user-configurable, a user asks. See https://forum.kde.org/viewtopic.php?f=15&amp;t=108930&amp;sid=c585b1db933e0c0be00ccd27a67e3638

That&apos;d be up to the individual port in question.  The patch that was landed here allows ports to control the overlap amount, so it&apos;s up to those ports to decide what they want to do.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47758</attachid>
            <date>2010-01-30 00:30:53 -0800</date>
            <delta_ts>2010-01-30 00:38:31 -0800</delta_ts>
            <desc>Cap the overlap amount at 40 pixels</desc>
            <filename>34371_r1.diff</filename>
            <type>text/plain</type>
            <size>9442</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDEwMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjMgQEAKKzIwMTAtMDEtMzAgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSRUdS
RVNTSU9OIChyNTM3MTgpOiBXaGVuIHNjcm9sbGluZyBhIHRhbGwgd2luZG93IGJ5IHBhZ2UsIHRo
ZSBvdmVybGFwIGJldHdlZW4gcGFnZXMgaXMgdG9vIGJpZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQzNzEKKworICAgICAgICBDYXAgdGhlIG92ZXJs
YXAgYW1vdW50IGF0IDQwIHBpeGVscy4KKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yQ29tbWFu
ZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2ZXJ0aWNhbFNjcm9sbERpc3RhbmNlKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZp
ZXc6OnVwZGF0ZVNjcm9sbGJhcnMpOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsVmlldzo6d2hl
ZWxFdmVudCk6CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYmFyLmg6CisgICAgICAgICogcGxh
dGZvcm0vd3gvU2Nyb2xsVmlld1d4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbFZpZXc6
OlNjcm9sbFZpZXdQcml2YXRlOjpPblNjcm9sbFdpbkV2ZW50cyk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRh
dGVTY3JvbGxJbmZvQWZ0ZXJMYXlvdXQpOgorCiAyMDEwLTAxLTI5ICBNYXJrIFJvd2UgIDxtcm93
ZUBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCBjb3B5aW5nIGFuIElETCBmaWxlIGluIHRvIHRo
ZSBmcmFtZXdvcmsgd3JhcHBlci4KSW5kZXg6IFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5k
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAJKHJl
dmlzaW9uIDU0MDg0KQorKysgV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNjAsNyArMjYwLDcgQEAgc3RhdGljIGludCB2ZXJ0aWNhbFNjcm9sbERp
c3RhbmNlKEZyYW1lKgogICAgIGlmICghKHN0eWxlLT5vdmVyZmxvd1koKSA9PSBPU0NST0xMIHx8
IHN0eWxlLT5vdmVyZmxvd1koKSA9PSBPQVVUTyB8fCByZW5kZXJlci0+aXNUZXh0QXJlYSgpKSkK
ICAgICAgICAgcmV0dXJuIDA7CiAgICAgaW50IGhlaWdodCA9IHRvUmVuZGVyQm94KHJlbmRlcmVy
KS0+Y2xpZW50SGVpZ2h0KCk7Ci0gICAgcmV0dXJuIG1heChoZWlnaHQgKiBjRnJhY3Rpb25Ub1N0
ZXBXaGVuUGFnaW5nLCAxLmYpOworICAgIHJldHVybiBtYXgobWF4PGludD4oaGVpZ2h0ICogY01p
bkZyYWN0aW9uVG9TdGVwV2hlblBhZ2luZywgaGVpZ2h0IC0gY01heEFtb3VudFRvS2VlcFdoZW5Q
YWdpbmcpLCAxKTsKIH0KIAogc3RhdGljIFJlZlB0cjxSYW5nZT4gdW5pb25ET01SYW5nZXMoUmFu
Z2UqIGEsIFJhbmdlKiBiKQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbFZpZXcuY3BwCShyZXZpc2lvbiA1
NDA4NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTQyNSw3ICs0MjUsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29u
c3QgCiAgICAgaWYgKG1faG9yaXpvbnRhbFNjcm9sbGJhcikgewogICAgICAgICBpbnQgY2xpZW50
V2lkdGggPSB2aXNpYmxlV2lkdGgoKTsKICAgICAgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5z
ZXRFbmFibGVkKGNvbnRlbnRzV2lkdGgoKSA+IGNsaWVudFdpZHRoKTsKLSAgICAgICAgaW50IHBh
Z2VTdGVwID0gbWF4KGNsaWVudFdpZHRoICogY0ZyYWN0aW9uVG9TdGVwV2hlblBhZ2luZywgMS5m
KTsKKyAgICAgICAgaW50IHBhZ2VTdGVwID0gbWF4KG1heDxpbnQ+KGNsaWVudFdpZHRoICogY01p
bkZyYWN0aW9uVG9TdGVwV2hlblBhZ2luZywgY2xpZW50V2lkdGggLSBjTWF4QW1vdW50VG9LZWVw
V2hlblBhZ2luZyksIDEpOwogICAgICAgICBJbnRSZWN0IG9sZFJlY3QobV9ob3Jpem9udGFsU2Ny
b2xsYmFyLT5mcmFtZVJlY3QoKSk7CiAgICAgICAgIEludFJlY3QgaEJhclJlY3QgPSBJbnRSZWN0
KDAsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodCgpIC0gbV9ob3Jp
em9udGFsU2Nyb2xsYmFyLT5oZWlnaHQoKSwKQEAgLTQ0Nyw3ICs0NDcsNyBAQCB2b2lkIFNjcm9s
bFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgCiAgICAgaWYgKG1fdmVydGljYWxTY3JvbGxi
YXIpIHsKICAgICAgICAgaW50IGNsaWVudEhlaWdodCA9IHZpc2libGVIZWlnaHQoKTsKICAgICAg
ICAgbV92ZXJ0aWNhbFNjcm9sbGJhci0+c2V0RW5hYmxlZChjb250ZW50c0hlaWdodCgpID4gY2xp
ZW50SGVpZ2h0KTsKLSAgICAgICAgaW50IHBhZ2VTdGVwID0gbWF4KGNsaWVudEhlaWdodCAqIGNG
cmFjdGlvblRvU3RlcFdoZW5QYWdpbmcsIDEuZik7CisgICAgICAgIGludCBwYWdlU3RlcCA9IG1h
eChtYXg8aW50PihjbGllbnRIZWlnaHQgKiBjTWluRnJhY3Rpb25Ub1N0ZXBXaGVuUGFnaW5nLCBj
bGllbnRIZWlnaHQgLSBjTWF4QW1vdW50VG9LZWVwV2hlblBhZ2luZyksIDEpOwogICAgICAgICBp
ZiAocGFnZVN0ZXAgPCAwKQogICAgICAgICAgICAgcGFnZVN0ZXAgPSBjbGllbnRIZWlnaHQ7CiAg
ICAgICAgIEludFJlY3Qgb2xkUmVjdChtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5mcmFtZVJlY3QoKSk7
CkBAIC02NjMsNyArNjYzLDcgQEAgdm9pZCBTY3JvbGxWaWV3Ojp3aGVlbEV2ZW50KFBsYXRmb3Jt
V2hlZQogICAgICAgICBpZiAoZS5ncmFudWxhcml0eSgpID09IFNjcm9sbEJ5UGFnZVdoZWVsRXZl
bnQpIHsKICAgICAgICAgICAgIEFTU0VSVChkZWx0YVggPT0gMCk7CiAgICAgICAgICAgICBib29s
IG5lZ2F0aXZlID0gZGVsdGFZIDwgMDsKLSAgICAgICAgICAgIGRlbHRhWSA9IG1heCh2aXNpYmxl
SGVpZ2h0KCkgKiBjRnJhY3Rpb25Ub1N0ZXBXaGVuUGFnaW5nLCAxLmYpOworICAgICAgICAgICAg
ZGVsdGFZID0gbWF4KG1heDxpbnQ+KHZpc2libGVIZWlnaHQoKSAqIGNNaW5GcmFjdGlvblRvU3Rl
cFdoZW5QYWdpbmcsIHZpc2libGVIZWlnaHQoKSAtIGNNYXhBbW91bnRUb0tlZXBXaGVuUGFnaW5n
KSwgMSk7CiAgICAgICAgICAgICBpZiAobmVnYXRpdmUpCiAgICAgICAgICAgICAgICAgZGVsdGFZ
ID0gLWRlbHRhWTsKICAgICAgICAgfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5oCShyZXZpc2lvbiA1
NDA4NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTQxLDcgKzQxLDggQEAgY2xhc3MgU2Nyb2xsYmFyVGhlbWU7CiBjbGFzcyBQbGF0Zm9ybU1vdXNl
RXZlbnQ7CiAKIGNvbnN0IGludCBjU2Nyb2xsYmFyUGl4ZWxzUGVyTGluZVN0ZXAgPSA0MDsKLWNv
bnN0IGZsb2F0IGNGcmFjdGlvblRvU3RlcFdoZW5QYWdpbmcgPSAwLjg3NWY7Citjb25zdCBmbG9h
dCBjTWluRnJhY3Rpb25Ub1N0ZXBXaGVuUGFnaW5nID0gMC44NzU7Citjb25zdCBpbnQgY01heEFt
b3VudFRvS2VlcFdoZW5QYWdpbmcgPSA0MDsKIAogY2xhc3MgU2Nyb2xsYmFyIDogcHVibGljIFdp
ZGdldCB7CiBwcm90ZWN0ZWQ6CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3d4L1Njcm9sbFZpZXdX
eC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS93eC9TY3JvbGxWaWV3V3guY3Bw
CShyZXZpc2lvbiA1NDA4NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vd3gvU2Nyb2xsVmlld1d4LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtOTYsMTUgKzk2LDE1IEBAIHB1YmxpYzoKICAgICAgICAgfQog
ICAgICAgICBlbHNlIGlmIChzY3JvbGxUeXBlID09IHd4RVZUX1NDUk9MTFdJTl9QQUdFVVApIHsK
ICAgICAgICAgICAgIGlmIChob3JpeikgCi0gICAgICAgICAgICAgICAgcG9zLnggLT0gbV9zY3Jv
bGxWaWV3LT52aXNpYmxlV2lkdGgoKSAqIGNGcmFjdGlvblRvU3RlcFdoZW5QYWdpbmc7CisgICAg
ICAgICAgICAgICAgcG9zLnggLT0gbWF4PGludD4obV9zY3JvbGxWaWV3LT52aXNpYmxlV2lkdGgo
KSAqIGNNaW5GcmFjdGlvblRvU3RlcFdoZW5QYWdpbmcsIG1fc2Nyb2xsVmlldy0+dmlzaWJsZVdp
ZHRoKCkgLSBjTWF4QW1vdW50VG9LZWVwV2hlblBhZ2luZyk7CiAgICAgICAgICAgICBlbHNlICAg
ICAgIAotICAgICAgICAgICAgICAgIHBvcy55IC09IG1fc2Nyb2xsVmlldy0+dmlzaWJsZUhlaWdo
dCgpICogY0ZyYWN0aW9uVG9TdGVwV2hlblBhZ2luZzsKKyAgICAgICAgICAgICAgICBwb3MueSAt
PSBtYXg8aW50PihtX3Njcm9sbFZpZXctPnZpc2libGVIZWlnaHQoKSAqIGNNaW5GcmFjdGlvblRv
U3RlcFdoZW5QYWdpbmcsIG1fc2Nyb2xsVmlldy0+dmlzaWJsZUhlaWdodCgpIC0gY01heEFtb3Vu
dFRvS2VlcFdoZW5QYWdpbmcpOwogICAgICAgICB9CiAgICAgICAgIGVsc2UgaWYgKHNjcm9sbFR5
cGUgPT0gd3hFVlRfU0NST0xMV0lOX1BBR0VET1dOKSB7CiAgICAgICAgICAgICBpZiAoaG9yaXop
IAotICAgICAgICAgICAgICAgIHBvcy54ICs9IG1fc2Nyb2xsVmlldy0+dmlzaWJsZVdpZHRoKCkg
KiBjRnJhY3Rpb25Ub1N0ZXBXaGVuUGFnaW5nOworICAgICAgICAgICAgICAgIHBvcy54ICs9IG1h
eDxpbnQ+KG1fc2Nyb2xsVmlldy0+dmlzaWJsZVdpZHRoKCkgKiBjTWluRnJhY3Rpb25Ub1N0ZXBX
aGVuUGFnaW5nLCBtX3Njcm9sbFZpZXctPnZpc2libGVXaWR0aCgpIC0gY01heEFtb3VudFRvS2Vl
cFdoZW5QYWdpbmcpOwogICAgICAgICAgICAgZWxzZSAgICAgICAKLSAgICAgICAgICAgICAgICBw
b3MueSArPSBtX3Njcm9sbFZpZXctPnZpc2libGVIZWlnaHQoKSAqIGNGcmFjdGlvblRvU3RlcFdo
ZW5QYWdpbmc7CisgICAgICAgICAgICAgICAgcG9zLnkgKz0gbWF4PGludD4obV9zY3JvbGxWaWV3
LT52aXNpYmxlSGVpZ2h0KCkgKiBjTWluRnJhY3Rpb25Ub1N0ZXBXaGVuUGFnaW5nLCBtX3Njcm9s
bFZpZXctPnZpc2libGVIZWlnaHQoKSAtIGNNYXhBbW91bnRUb0tlZXBXaGVuUGFnaW5nKTsKICAg
ICAgICAgfQogICAgICAgICBlbHNlCiAgICAgICAgICAgICByZXR1cm4gZS5Ta2lwKCk7CkluZGV4
OiBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCShyZXZpc2lvbiA1NDA4NCkKKysrIFdlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTkzNCw3ICsxOTM0
LDcgQEAgUmVuZGVyTGF5ZXI6OnVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dAogICAgIC8vIFNl
dCB1cCB0aGUgcmFuZ2UgKGFuZCBwYWdlIHN0ZXAvbGluZSBzdGVwKS4KICAgICBpZiAobV9oQmFy
KSB7CiAgICAgICAgIGludCBjbGllbnRXaWR0aCA9IGJveC0+Y2xpZW50V2lkdGgoKTsKLSAgICAg
ICAgaW50IHBhZ2VTdGVwID0gbWF4KGNsaWVudFdpZHRoICogY0ZyYWN0aW9uVG9TdGVwV2hlblBh
Z2luZywgMS5mKTsKKyAgICAgICAgaW50IHBhZ2VTdGVwID0gbWF4KG1heDxpbnQ+KGNsaWVudFdp
ZHRoICogY01pbkZyYWN0aW9uVG9TdGVwV2hlblBhZ2luZywgY2xpZW50V2lkdGggLSBjTWF4QW1v
dW50VG9LZWVwV2hlblBhZ2luZyksIDEpOwogICAgICAgICBtX2hCYXItPnNldFN0ZXBzKGNTY3Jv
bGxiYXJQaXhlbHNQZXJMaW5lU3RlcCwgcGFnZVN0ZXApOwogICAgICAgICBtX2hCYXItPnNldFBy
b3BvcnRpb24oY2xpZW50V2lkdGgsIG1fc2Nyb2xsV2lkdGgpOwogICAgICAgICAvLyBFeHBsaWNp
dGx5IHNldCB0aGUgaG9yaXpvbnRhbCBzY3JvbGwgdmFsdWUuICBUaGlzIGVuc3VyZXMgdGhhdCB3
aGVuIGEKQEAgLTE5NDksNyArMTk0OSw3IEBAIFJlbmRlckxheWVyOjp1cGRhdGVTY3JvbGxJbmZv
QWZ0ZXJMYXlvdXQKICAgICB9CiAgICAgaWYgKG1fdkJhcikgewogICAgICAgICBpbnQgY2xpZW50
SGVpZ2h0ID0gYm94LT5jbGllbnRIZWlnaHQoKTsKLSAgICAgICAgaW50IHBhZ2VTdGVwID0gbWF4
KGNsaWVudEhlaWdodCAqIGNGcmFjdGlvblRvU3RlcFdoZW5QYWdpbmcsIDEuZik7CisgICAgICAg
IGludCBwYWdlU3RlcCA9IG1heChtYXg8aW50PihjbGllbnRIZWlnaHQgKiBjTWluRnJhY3Rpb25U
b1N0ZXBXaGVuUGFnaW5nLCBjbGllbnRIZWlnaHQgLSBjTWF4QW1vdW50VG9LZWVwV2hlblBhZ2lu
ZyksIDEpOwogICAgICAgICBtX3ZCYXItPnNldFN0ZXBzKGNTY3JvbGxiYXJQaXhlbHNQZXJMaW5l
U3RlcCwgcGFnZVN0ZXApOwogICAgICAgICBtX3ZCYXItPnNldFByb3BvcnRpb24oY2xpZW50SGVp
Z2h0LCBtX3Njcm9sbEhlaWdodCk7CiAgICAgfQpJbmRleDogV2ViS2l0L21hYy9DaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU0MTAzKQorKysg
V2ViS2l0L21hYy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEgKzEsMTQgQEAKKzIwMTAt
MDEtMzAgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSRUdSRVNTSU9OIChyNTM3MTgpOiBXaGVu
IHNjcm9sbGluZyBhIHRhbGwgd2luZG93IGJ5IHBhZ2UsIHRoZSBvdmVybGFwIGJldHdlZW4gcGFn
ZXMgaXMgdG9vIGJpZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MzQzNzEKKworICAgICAgICBDYXAgdGhlIG92ZXJsYXAgYW1vdW50IGF0IDQwIHBpeGVs
cy4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tOgorICAgICAgICAoLVtXZWJG
cmFtZVZpZXcgX3ZlcnRpY2FsUGFnZVNjcm9sbERpc3RhbmNlXSk6CisgICAgICAgICgtW1dlYkZy
YW1lVmlldyBfaG9yaXpvbnRhbFBhZ2VTY3JvbGxEaXN0YW5jZV0pOgorCiA9PSBSb2xsZWQgb3Zl
ciB0byBDaGFuZ2VMb2ctMjAxMC0wMS0yOSA9PQpJbmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dl
YkZyYW1lVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVW
aWV3Lm1tCShyZXZpc2lvbiA1NDA4NCkKKysrIFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZp
ZXcubW0JKHdvcmtpbmcgY29weSkKQEAgLTIwMSw3ICsyMDEsNyBAQCBlbnVtIHsKIC0gKGZsb2F0
KV92ZXJ0aWNhbFBhZ2VTY3JvbGxEaXN0YW5jZQogewogICAgIGZsb2F0IGhlaWdodCA9IFtbc2Vs
ZiBfY29udGVudFZpZXddIGJvdW5kc10uc2l6ZS5oZWlnaHQ7Ci0gICAgcmV0dXJuIG1heChoZWln
aHQgKiBjRnJhY3Rpb25Ub1N0ZXBXaGVuUGFnaW5nLCAxLmYpOworICAgIHJldHVybiBtYXg8Zmxv
YXQ+KGhlaWdodCAqIGNNaW5GcmFjdGlvblRvU3RlcFdoZW5QYWdpbmcsIGhlaWdodCAtIGNNYXhB
bW91bnRUb0tlZXBXaGVuUGFnaW5nKTsKIH0KIAogc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVz
RnJvbUNsYXNzKE5TTXV0YWJsZURpY3Rpb25hcnkgKmFsbFR5cGVzLCBDbGFzcyBvYmpDQ2xhc3Ms
IE5TQXJyYXkgKnN1cHBvcnRUeXBlcykKQEAgLTYxMyw3ICs2MTMsNyBAQCBzdGF0aWMgaW5saW5l
IHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNCiAtIChmbG9hdClfaG9yaXpvbnRhbFBhZ2VTY3Jv
bGxEaXN0YW5jZQogewogICAgIGZsb2F0IHdpZHRoID0gW1tzZWxmIF9jb250ZW50Vmlld10gYm91
bmRzXS5zaXplLndpZHRoOwotICAgIHJldHVybiBtYXgod2lkdGggKiBjRnJhY3Rpb25Ub1N0ZXBX
aGVuUGFnaW5nLCAxLmYpOworICAgIHJldHVybiBtYXg8ZmxvYXQ+KHdpZHRoICogY01pbkZyYWN0
aW9uVG9TdGVwV2hlblBhZ2luZywgd2lkdGggLSBjTWF4QW1vdW50VG9LZWVwV2hlblBhZ2luZyk7
CiB9CiAKIC0gKEJPT0wpX3BhZ2VWZXJ0aWNhbGx5OihCT09MKXVwCkluZGV4OiBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lv
biA1NDEwMykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSAr
MSwxMCBAQAorMjAxMC0wMS0zMCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT04g
KHI1MzcxOCk6IFdoZW4gc2Nyb2xsaW5nIGEgdGFsbCB3aW5kb3cgYnkgcGFnZSwgdGhlIG92ZXJs
YXAgYmV0d2VlbiBwYWdlcyBpcyB0b28gYmlnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0zNDM3MQorCisgICAgICAgICogZmFzdC9ldmVudHMvc2Nyb2xs
YmFyLWRvdWJsZS1jbGljay1leHBlY3RlZC50eHQ6IFVwZGF0ZWQuCisKID09IFJvbGxlZCBvdmVy
IHRvIENoYW5nZUxvZy0yMDEwLTAxLTI5ID09CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zY3JvbGxiYXItZG91YmxlLWNsaWNrLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGxiYXItZG91YmxlLWNsaWNrLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gNTQwODQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGxiYXItZG91
YmxlLWNsaWNrLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSArMSBAQAotU2Nyb2xs
IG9mZnNldCBpcyA3MDAKK1Njcm9sbCBvZmZzZXQgaXMgNzIwCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47759</attachid>
            <date>2010-01-30 01:31:07 -0800</date>
            <delta_ts>2012-03-12 13:42:23 -0700</delta_ts>
            <desc>Allow ScrollbarTheme to cap the overlap between pages, and set a cap of in ScrollbarThemeMac</desc>
            <filename>34371_r2.diff</filename>
            <type>text/plain</type>
            <size>18124</size>
            <attacher>mitz</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDEwMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDEgQEAKKzIwMTAtMDEtMzAgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNv
bT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSRUdS
RVNTSU9OIChyNTM3MTgpOiBXaGVuIHNjcm9sbGluZyBhIHRhbGwgd2luZG93IGJ5IHBhZ2UsIHRo
ZSBvdmVybGFwIGJldHdlZW4gcGFnZXMgaXMgdG9vIGJpZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQzNzEKKworICAgICAgICBBbGxvdyBTY3JvbGxi
YXJUaGVtZSB0byBjYXAgdGhlIG92ZXJsYXAgYmV0d2VlbiBwYWdlcywgYW5kIHNldCBhIGNhcCBv
ZgorICAgICAgICA0MCBpbiBTY3JvbGxiYXJUaGVtZU1hYy4KKworICAgICAgICAqIFdlYkNvcmUu
YmFzZS5leHA6IEV4cG9ydCBTY3JvbGxiYXI6Om1heEFtb3VudFRvS2VlcFdoZW5QYWdpbmcoKS4K
KyAgICAgICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dmVydGljYWxTY3JvbGxEaXN0YW5jZSk6IFVzZSBTY3JvbGxiYXIgbWV0aG9kcyBpbnN0ZWFkIG9m
CisgICAgICAgIGNvbnN0YW50cywgYW5kIGNhcCB0aGUgc2Nyb2xsIGRpc3RhbmNlIGlmIG5lZWRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OlNjcm9sbFZpZXc6OndoZWVsRXZlbnQpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9ybS9TY3Jv
bGxiYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyOjptYXhBbW91bnRUb0tlZXBX
aGVuUGFnaW5nKTogQWRkZWQuIFJldHVybnMgdGhlCisgICAgICAgIHZhbHVlIGZyb20gdGhlIG5h
dGl2ZSBzY3JvbGxiYXIgdGhlbWUuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYmFyLmg6IFJl
cGxhY2VkIHNjcm9sbCBhbW91bnQgY29uc3RhbnRzIHdpdGggc3RhdGljIG1ldGhvZHMuCisgICAg
ICAgIChXZWJDb3JlOjpTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKTogUmVwbGFjZXMgY1Nj
cm9sbGJhclBpeGVsc1BlckxpbmVTdGVwLgorICAgICAgICAoV2ViQ29yZTo6U2Nyb2xsYmFyOjpt
aW5GcmFjdGlvblRvU3RlcFdoZW5QYWdpbmcpOiBSZXBsYWNlcyBjRnJhY3Rpb25Ub1N0ZXBXaGVu
UGFnaW5nLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGJhclRoZW1lLmg6CisgICAgICAgIChX
ZWJDb3JlOjpTY3JvbGxiYXJUaGVtZTo6bWF4QW1vdW50VG9LZWVwV2hlblBhZ2luZyk6IEEgYmFz
ZSBpbXBsZW1lbnRhdGlvbgorICAgICAgICB0aGF0IHJldHVybnMgdGhlIGxhcmdlc3QgaW50Lgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVtZU1hYy5oOgorICAgICAgICAoV2Vi
Q29yZTo6U2Nyb2xsYmFyVGhlbWVNYWM6Om1heEFtb3VudFRvS2VlcFdoZW5QYWdpbmcpOiBBbiBv
dmVycmlkZQorICAgICAgICB0aGF0IHJldHVybnMgNDAuCisgICAgICAgICogcGxhdGZvcm0vbWFj
L1doZWVsRXZlbnRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVdoZWVsRXZlbnQ6
OlBsYXRmb3JtV2hlZWxFdmVudCk6IFVzZQorICAgICAgICBTY3JvbGxiYXI6OnBpeGVsc1Blckxp
bmVTdGVwKCkgaW5zdGVhZCBvZiBjU2Nyb2xsYmFyUGl4ZWxzUGVyTGluZVN0ZXAuCisgICAgICAg
ICogcGxhdGZvcm0vd3gvU2Nyb2xsVmlld1d4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bFZpZXc6OlNjcm9sbFZpZXdQcml2YXRlOjpPblNjcm9sbFdpbkV2ZW50cyk6IFVzZSBTY3JvbGxi
YXIKKyAgICAgICAgbWV0aG9kcyBpbnN0ZWFkIG9mIGNvbnN0YW50cywgYW5kIGNhcCB0aGUgc2Ny
b2xsIGRpc3RhbmNlIGlmIG5lZWRlZC4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZVNjcm9sbEluZm9BZnRl
ckxheW91dCk6IERpdHRvLgorCiAyMDEwLTAxLTI5ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5j
b20+CiAKICAgICAgICAgU3RvcCBjb3B5aW5nIGFuIElETCBmaWxlIGluIHRvIHRoZSBmcmFtZXdv
cmsgd3JhcHBlci4KSW5kZXg6IFdlYkNvcmUvV2ViQ29yZS5iYXNlLmV4cAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJDb3JlL1dlYkNvcmUuYmFzZS5leHAJKHJldmlzaW9uIDU0MDg0KQorKysgV2ViQ29yZS9X
ZWJDb3JlLmJhc2UuZXhwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNCBAQAorCiAub2JqY19j
bGFzc19uYW1lX0RPTUFic3RyYWN0VmlldwogLm9iamNfY2xhc3NfbmFtZV9ET01BdHRyCiAub2Jq
Y19jbGFzc19uYW1lX0RPTUNEQVRBU2VjdGlvbgpAQCAtNzU5LDYgKzc2MCw3IEBAIF9fWk43V2Vi
Q29yZTlQYWdlR3JvdXAyNnNldFNob3VsZFRyYWNrVmkKIF9fWk43V2ViQ29yZTlQYWdlR3JvdXAy
OXJlbW92ZVVzZXJTdHlsZVNoZWV0RnJvbVdvcmxkRVBOU18xNURPTVdyYXBwZXJXb3JsZEVSS05T
XzRLVVJMRQogX19aTjdXZWJDb3JlOVBhZ2VHcm91cDMwcmVtb3ZlVXNlclN0eWxlU2hlZXRzRnJv
bVdvcmxkRVBOU18xNURPTVdyYXBwZXJXb3JsZEUKIF9fWk43V2ViQ29yZTlQYWdlR3JvdXA5cGFn
ZUdyb3VwRVJLTlNfNlN0cmluZ0UKK19fWk43V2ViQ29yZTlTY3JvbGxiYXIyNW1heEFtb3VudFRv
S2VlcFdoZW5QYWdpbmdFdgogX19aTjdXZWJDb3JlOVRpbWVyQmFzZTRzdG9wRXYKIF9fWk43V2Vi
Q29yZTlUaW1lckJhc2U1c3RhcnRFZGQKIF9fWk43V2ViQ29yZTlUaW1lckJhc2VDMkV2CkBAIC0x
MDU2LDQgKzEwNTgsMyBAQCBfd2tTZXRVcEZvbnRDYWNoZQogX3drU2lnbmFsQ0ZSZWFkU3RyZWFt
RW5kCiBfd2tTaWduYWxDRlJlYWRTdHJlYW1FcnJvcgogX3drU2lnbmFsQ0ZSZWFkU3RyZWFtSGFz
Qnl0ZXMKLQpJbmRleDogV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAkocmV2aXNpb24gNTQwODQp
CisrKyBXZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTI2MCw3ICsyNjAsNyBAQCBzdGF0aWMgaW50IHZlcnRpY2FsU2Nyb2xsRGlzdGFuY2UoRnJhbWUq
CiAgICAgaWYgKCEoc3R5bGUtPm92ZXJmbG93WSgpID09IE9TQ1JPTEwgfHwgc3R5bGUtPm92ZXJm
bG93WSgpID09IE9BVVRPIHx8IHJlbmRlcmVyLT5pc1RleHRBcmVhKCkpKQogICAgICAgICByZXR1
cm4gMDsKICAgICBpbnQgaGVpZ2h0ID0gdG9SZW5kZXJCb3gocmVuZGVyZXIpLT5jbGllbnRIZWln
aHQoKTsKLSAgICByZXR1cm4gbWF4KGhlaWdodCAqIGNGcmFjdGlvblRvU3RlcFdoZW5QYWdpbmcs
IDEuZik7CisgICAgcmV0dXJuIG1heChtYXg8aW50PihoZWlnaHQgKiBTY3JvbGxiYXI6Om1pbkZy
YWN0aW9uVG9TdGVwV2hlblBhZ2luZygpLCBoZWlnaHQgLSBTY3JvbGxiYXI6Om1heEFtb3VudFRv
S2VlcFdoZW5QYWdpbmcoKSksIDEpOwogfQogCiBzdGF0aWMgUmVmUHRyPFJhbmdlPiB1bmlvbkRP
TVJhbmdlcyhSYW5nZSogYSwgUmFuZ2UqIGIpCkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bFZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsVmlldy5jcHAJ
KHJldmlzaW9uIDU0MDg0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxWaWV3LmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNDI1LDcgKzQyNSw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Ny
b2xsYmFycyhjb25zdCAKICAgICBpZiAobV9ob3Jpem9udGFsU2Nyb2xsYmFyKSB7CiAgICAgICAg
IGludCBjbGllbnRXaWR0aCA9IHZpc2libGVXaWR0aCgpOwogICAgICAgICBtX2hvcml6b250YWxT
Y3JvbGxiYXItPnNldEVuYWJsZWQoY29udGVudHNXaWR0aCgpID4gY2xpZW50V2lkdGgpOwotICAg
ICAgICBpbnQgcGFnZVN0ZXAgPSBtYXgoY2xpZW50V2lkdGggKiBjRnJhY3Rpb25Ub1N0ZXBXaGVu
UGFnaW5nLCAxLmYpOworICAgICAgICBpbnQgcGFnZVN0ZXAgPSBtYXgobWF4PGludD4oY2xpZW50
V2lkdGggKiBTY3JvbGxiYXI6Om1pbkZyYWN0aW9uVG9TdGVwV2hlblBhZ2luZygpLCBjbGllbnRX
aWR0aCAtIFNjcm9sbGJhcjo6bWF4QW1vdW50VG9LZWVwV2hlblBhZ2luZygpKSwgMSk7CiAgICAg
ICAgIEludFJlY3Qgb2xkUmVjdChtX2hvcml6b250YWxTY3JvbGxiYXItPmZyYW1lUmVjdCgpKTsK
ICAgICAgICAgSW50UmVjdCBoQmFyUmVjdCA9IEludFJlY3QoMCwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgaGVpZ2h0KCkgLSBtX2hvcml6b250YWxTY3JvbGxiYXItPmhlaWdo
dCgpLApAQCAtNDM3LDcgKzQzNyw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFy
cyhjb25zdCAKIAogICAgICAgICBpZiAobV9zY3JvbGxiYXJzU3VwcHJlc3NlZCkKICAgICAgICAg
ICAgIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+c2V0U3VwcHJlc3NJbnZhbGlkYXRpb24odHJ1ZSk7
Ci0gICAgICAgIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+c2V0U3RlcHMoY1Njcm9sbGJhclBpeGVs
c1BlckxpbmVTdGVwLCBwYWdlU3RlcCk7CisgICAgICAgIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+
c2V0U3RlcHMoU2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3RlcCgpLCBwYWdlU3RlcCk7CiAgICAg
ICAgIG1faG9yaXpvbnRhbFNjcm9sbGJhci0+c2V0UHJvcG9ydGlvbihjbGllbnRXaWR0aCwgY29u
dGVudHNXaWR0aCgpKTsKICAgICAgICAgbV9ob3Jpem9udGFsU2Nyb2xsYmFyLT5zZXRWYWx1ZShz
Y3JvbGwud2lkdGgoKSk7CiAgICAgICAgIGlmIChtX3Njcm9sbGJhcnNTdXBwcmVzc2VkKQpAQCAt
NDQ3LDcgKzQ0Nyw3IEBAIHZvaWQgU2Nyb2xsVmlldzo6dXBkYXRlU2Nyb2xsYmFycyhjb25zdCAK
ICAgICBpZiAobV92ZXJ0aWNhbFNjcm9sbGJhcikgewogICAgICAgICBpbnQgY2xpZW50SGVpZ2h0
ID0gdmlzaWJsZUhlaWdodCgpOwogICAgICAgICBtX3ZlcnRpY2FsU2Nyb2xsYmFyLT5zZXRFbmFi
bGVkKGNvbnRlbnRzSGVpZ2h0KCkgPiBjbGllbnRIZWlnaHQpOwotICAgICAgICBpbnQgcGFnZVN0
ZXAgPSBtYXgoY2xpZW50SGVpZ2h0ICogY0ZyYWN0aW9uVG9TdGVwV2hlblBhZ2luZywgMS5mKTsK
KyAgICAgICAgaW50IHBhZ2VTdGVwID0gbWF4KG1heDxpbnQ+KGNsaWVudEhlaWdodCAqIFNjcm9s
bGJhcjo6bWluRnJhY3Rpb25Ub1N0ZXBXaGVuUGFnaW5nKCksIGNsaWVudEhlaWdodCAtIFNjcm9s
bGJhcjo6bWF4QW1vdW50VG9LZWVwV2hlblBhZ2luZygpKSwgMSk7CiAgICAgICAgIGlmIChwYWdl
U3RlcCA8IDApCiAgICAgICAgICAgICBwYWdlU3RlcCA9IGNsaWVudEhlaWdodDsKICAgICAgICAg
SW50UmVjdCBvbGRSZWN0KG1fdmVydGljYWxTY3JvbGxiYXItPmZyYW1lUmVjdCgpKTsKQEAgLTQ2
MSw3ICs0NjEsNyBAQCB2b2lkIFNjcm9sbFZpZXc6OnVwZGF0ZVNjcm9sbGJhcnMoY29uc3QgCiAK
ICAgICAgICAgaWYgKG1fc2Nyb2xsYmFyc1N1cHByZXNzZWQpCiAgICAgICAgICAgICBtX3ZlcnRp
Y2FsU2Nyb2xsYmFyLT5zZXRTdXBwcmVzc0ludmFsaWRhdGlvbih0cnVlKTsKLSAgICAgICAgbV92
ZXJ0aWNhbFNjcm9sbGJhci0+c2V0U3RlcHMoY1Njcm9sbGJhclBpeGVsc1BlckxpbmVTdGVwLCBw
YWdlU3RlcCk7CisgICAgICAgIG1fdmVydGljYWxTY3JvbGxiYXItPnNldFN0ZXBzKFNjcm9sbGJh
cjo6cGl4ZWxzUGVyTGluZVN0ZXAoKSwgcGFnZVN0ZXApOwogICAgICAgICBtX3ZlcnRpY2FsU2Ny
b2xsYmFyLT5zZXRQcm9wb3J0aW9uKGNsaWVudEhlaWdodCwgY29udGVudHNIZWlnaHQoKSk7CiAg
ICAgICAgIG1fdmVydGljYWxTY3JvbGxiYXItPnNldFZhbHVlKHNjcm9sbC5oZWlnaHQoKSk7CiAg
ICAgICAgIGlmIChtX3Njcm9sbGJhcnNTdXBwcmVzc2VkKQpAQCAtNjYzLDcgKzY2Myw3IEBAIHZv
aWQgU2Nyb2xsVmlldzo6d2hlZWxFdmVudChQbGF0Zm9ybVdoZWUKICAgICAgICAgaWYgKGUuZ3Jh
bnVsYXJpdHkoKSA9PSBTY3JvbGxCeVBhZ2VXaGVlbEV2ZW50KSB7CiAgICAgICAgICAgICBBU1NF
UlQoZGVsdGFYID09IDApOwogICAgICAgICAgICAgYm9vbCBuZWdhdGl2ZSA9IGRlbHRhWSA8IDA7
Ci0gICAgICAgICAgICBkZWx0YVkgPSBtYXgodmlzaWJsZUhlaWdodCgpICogY0ZyYWN0aW9uVG9T
dGVwV2hlblBhZ2luZywgMS5mKTsKKyAgICAgICAgICAgIGRlbHRhWSA9IG1heChtYXg8aW50Pih2
aXNpYmxlSGVpZ2h0KCkgKiBTY3JvbGxiYXI6Om1pbkZyYWN0aW9uVG9TdGVwV2hlblBhZ2luZygp
LCB2aXNpYmxlSGVpZ2h0KCkgLSBTY3JvbGxiYXI6Om1heEFtb3VudFRvS2VlcFdoZW5QYWdpbmco
KSksIDEpOwogICAgICAgICAgICAgaWYgKG5lZ2F0aXZlKQogICAgICAgICAgICAgICAgIGRlbHRh
WSA9IC1kZWx0YVk7CiAgICAgICAgIH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAJKHJldmlz
aW9uIDU0MDg0KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zOCw4ICszOCw3IEBACiAKICNpbmNsdWRlIDxhbGdvcml0aG0+CiAKLXVzaW5nIHN0
ZDo6bWF4OwotdXNpbmcgc3RkOjptaW47Cit1c2luZyBuYW1lc3BhY2Ugc3RkOwogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKQEAgLTUwLDYgKzQ5LDEyIEBAIFBhc3NSZWZQdHI8U2Nyb2xsYmFyPiBT
Y3JvbGxiYXI6OmNyZWF0ZU4KIH0KICNlbmRpZgogCitpbnQgU2Nyb2xsYmFyOjptYXhBbW91bnRU
b0tlZXBXaGVuUGFnaW5nKCkKK3sKKyAgICBzdGF0aWMgaW50IG1heEFtb3VudFRvS2VlcFdoZW5Q
YWdpbmcgPSBTY3JvbGxiYXJUaGVtZTo6bmF0aXZlVGhlbWUoKS0+bWF4QW1vdW50VG9LZWVwV2hl
blBhZ2luZygpOworICAgIHJldHVybiBtYXhBbW91bnRUb0tlZXBXaGVuUGFnaW5nOworfQorCiBT
Y3JvbGxiYXI6OlNjcm9sbGJhcihTY3JvbGxiYXJDbGllbnQqIGNsaWVudCwgU2Nyb2xsYmFyT3Jp
ZW50YXRpb24gb3JpZW50YXRpb24sIFNjcm9sbGJhckNvbnRyb2xTaXplIGNvbnRyb2xTaXplLAog
ICAgICAgICAgICAgICAgICAgICAgU2Nyb2xsYmFyVGhlbWUqIHRoZW1lKQogICAgIDogbV9jbGll
bnQoY2xpZW50KQpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5oCShyZXZpc2lvbiA1NDA4NCkKKysrIFdl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDE5ICs0MCwx
NyBAQCBjbGFzcyBTY3JvbGxiYXJDbGllbnQ7CiBjbGFzcyBTY3JvbGxiYXJUaGVtZTsKIGNsYXNz
IFBsYXRmb3JtTW91c2VFdmVudDsKIAotY29uc3QgaW50IGNTY3JvbGxiYXJQaXhlbHNQZXJMaW5l
U3RlcCA9IDQwOwotY29uc3QgZmxvYXQgY0ZyYWN0aW9uVG9TdGVwV2hlblBhZ2luZyA9IDAuODc1
ZjsKLQogY2xhc3MgU2Nyb2xsYmFyIDogcHVibGljIFdpZGdldCB7Ci1wcm90ZWN0ZWQ6Ci0gICAg
U2Nyb2xsYmFyKFNjcm9sbGJhckNsaWVudCosIFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxi
YXJDb250cm9sU2l6ZSwgU2Nyb2xsYmFyVGhlbWUqID0gMCk7Ci0KIHB1YmxpYzoKICAgICB2aXJ0
dWFsIH5TY3JvbGxiYXIoKTsKIAogICAgIC8vIE11c3QgYmUgaW1wbGVtZW50ZWQgYnkgcGxhdGZv
cm1zIHRoYXQgY2FuJ3Qgc2ltcGx5IHVzZSB0aGUgU2Nyb2xsYmFyIGJhc2UgY2xhc3MuICBSaWdo
dCBub3cgdGhlIG9ubHkgcGxhdGZvcm0gdGhhdCBpcyBub3QgdXNpbmcgdGhlIGJhc2UgY2xhc3Mg
aXMgR1RLLgogICAgIHN0YXRpYyBQYXNzUmVmUHRyPFNjcm9sbGJhcj4gY3JlYXRlTmF0aXZlU2Ny
b2xsYmFyKFNjcm9sbGJhckNsaWVudCogY2xpZW50LCBTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmll
bnRhdGlvbiwgU2Nyb2xsYmFyQ29udHJvbFNpemUgc2l6ZSk7Ci0gICAgCisKKyAgICBzdGF0aWMg
aW50IHBpeGVsc1BlckxpbmVTdGVwKCkgeyByZXR1cm4gNDA7IH0KKyAgICBzdGF0aWMgZmxvYXQg
bWluRnJhY3Rpb25Ub1N0ZXBXaGVuUGFnaW5nKCkgeyByZXR1cm4gMC44NzVmOyB9CisgICAgc3Rh
dGljIGludCBtYXhBbW91bnRUb0tlZXBXaGVuUGFnaW5nKCk7CisKICAgICB2b2lkIHNldENsaWVu
dChTY3JvbGxiYXJDbGllbnQqIGNsaWVudCkgeyBtX2NsaWVudCA9IGNsaWVudDsgfQogICAgIFNj
cm9sbGJhckNsaWVudCogY2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9jbGllbnQ7IH0KIApAQCAt
MTMwLDYgKzEyOCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBib29sIGlzU2Nyb2xsYmFyKCkg
Y29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCiBwcm90ZWN0ZWQ6CisgICAgU2Nyb2xsYmFyKFNjcm9s
bGJhckNsaWVudCosIFNjcm9sbGJhck9yaWVudGF0aW9uLCBTY3JvbGxiYXJDb250cm9sU2l6ZSwg
U2Nyb2xsYmFyVGhlbWUqID0gMCk7CisKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlVGh1bWJQb3Np
dGlvbigpOwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVUaHVtYlByb3BvcnRpb24oKTsKIApJbmRl
eDogV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXJUaGVtZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsYmFyVGhlbWUuaAkocmV2aXNpb24gNTQwODQpCisrKyBXZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGJhclRoZW1lLmgJKHdvcmtpbmcgY29weSkKQEAgLTgxLDcgKzgxLDkg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgaW50IHRodW1iTGVuZ3RoKFNjcm9sbGJhciopIHsgcmV0
dXJuIDA7IH0gLy8gVGhlIGxlbmd0aCBvZiB0aGUgdGh1bWIgYWxvbmcgdGhlIGF4aXMgb2YgdGhl
IHNjcm9sbGJhci4KICAgICB2aXJ0dWFsIGludCB0cmFja1Bvc2l0aW9uKFNjcm9sbGJhciopIHsg
cmV0dXJuIDA7IH0gLy8gVGhlIHBvc2l0aW9uIG9mIHRoZSB0cmFjayByZWxhdGl2ZSB0byB0aGUg
c2Nyb2xsYmFyLgogICAgIHZpcnR1YWwgaW50IHRyYWNrTGVuZ3RoKFNjcm9sbGJhciopIHsgcmV0
dXJuIDA7IH0gLy8gVGhlIGxlbmd0aCBvZiB0aGUgdHJhY2sgYWxvbmcgdGhlIGF4aXMgb2YgdGhl
IHNjcm9sbGJhci4KLSAgICAKKworICAgIHZpcnR1YWwgaW50IG1heEFtb3VudFRvS2VlcFdoZW5Q
YWdpbmcoKSB7IHJldHVybiBzdGQ6Om51bWVyaWNfbGltaXRzPGludD46Om1heCgpOyB9CisKICAg
ICB2aXJ0dWFsIGRvdWJsZSBpbml0aWFsQXV0b3Njcm9sbFRpbWVyRGVsYXkoKSB7IHJldHVybiAw
LjI1OyB9CiAgICAgdmlydHVhbCBkb3VibGUgYXV0b3Njcm9sbFRpbWVyRGVsYXkoKSB7IHJldHVy
biAwLjA1OyB9CiAKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbWFjL1Njcm9sbGJhclRoZW1lTWFj
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU2Nyb2xsYmFyVGhlbWVNYWMu
aAkocmV2aXNpb24gNTQwODQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL21hYy9TY3JvbGxiYXJUaGVt
ZU1hYy5oCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw2ICs1Nyw4IEBAIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIEludFJlY3QgZm9yd2FyZEJ1dHRvblJlY3QoU2Nyb2xsYmFyKiwgU2Nyb2xsYmFyUGFy
dCwgYm9vbCBwYWludGluZyA9IGZhbHNlKTsKICAgICB2aXJ0dWFsIEludFJlY3QgdHJhY2tSZWN0
KFNjcm9sbGJhciosIGJvb2wgcGFpbnRpbmcgPSBmYWxzZSk7CiAKKyAgICB2aXJ0dWFsIGludCBt
YXhBbW91bnRUb0tlZXBXaGVuUGFnaW5nKCkgeyByZXR1cm4gNDA7IH0KKwogICAgIHZpcnR1YWwg
aW50IG1pbmltdW1UaHVtYkxlbmd0aChTY3JvbGxiYXIqKTsKICAgICAKICAgICB2aXJ0dWFsIGJv
b2wgc2hvdWxkQ2VudGVyT25UaHVtYihTY3JvbGxiYXIqLCBjb25zdCBQbGF0Zm9ybU1vdXNlRXZl
bnQmKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbWFjL1doZWVsRXZlbnRNYWMubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2hlZWxFdmVudE1hYy5tbQkocmV2aXNpb24g
NTQwODQpCisrKyBXZWJDb3JlL3BsYXRmb3JtL21hYy9XaGVlbEV2ZW50TWFjLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC00NSwxMyArNDUsMTMgQEAgUGxhdGZvcm1XaGVlbEV2ZW50OjpQbGF0Zm9ybVdo
ZWVsRXZlbnQoTgogICAgIEJPT0wgY29udGludW91czsKICAgICB3a0dldFdoZWVsRXZlbnREZWx0
YXMoZXZlbnQsICZtX2RlbHRhWCwgJm1fZGVsdGFZLCAmY29udGludW91cyk7CiAgICAgaWYgKGNv
bnRpbnVvdXMpIHsKLSAgICAgICAgbV93aGVlbFRpY2tzWCA9IG1fZGVsdGFYIC8gc3RhdGljX2Nh
c3Q8ZmxvYXQ+KGNTY3JvbGxiYXJQaXhlbHNQZXJMaW5lU3RlcCk7Ci0gICAgICAgIG1fd2hlZWxU
aWNrc1kgPSBtX2RlbHRhWSAvIHN0YXRpY19jYXN0PGZsb2F0PihjU2Nyb2xsYmFyUGl4ZWxzUGVy
TGluZVN0ZXApOworICAgICAgICBtX3doZWVsVGlja3NYID0gbV9kZWx0YVggLyBzdGF0aWNfY2Fz
dDxmbG9hdD4oU2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3RlcCgpKTsKKyAgICAgICAgbV93aGVl
bFRpY2tzWSA9IG1fZGVsdGFZIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KFNjcm9sbGJhcjo6cGl4ZWxz
UGVyTGluZVN0ZXAoKSk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgbV93aGVlbFRpY2tzWCA9IG1f
ZGVsdGFYOwogICAgICAgICBtX3doZWVsVGlja3NZID0gbV9kZWx0YVk7Ci0gICAgICAgIG1fZGVs
dGFYICo9IHN0YXRpY19jYXN0PGZsb2F0PihjU2Nyb2xsYmFyUGl4ZWxzUGVyTGluZVN0ZXApOwot
ICAgICAgICBtX2RlbHRhWSAqPSBzdGF0aWNfY2FzdDxmbG9hdD4oY1Njcm9sbGJhclBpeGVsc1Bl
ckxpbmVTdGVwKTsKKyAgICAgICAgbV9kZWx0YVggKj0gc3RhdGljX2Nhc3Q8ZmxvYXQ+KFNjcm9s
bGJhcjo6cGl4ZWxzUGVyTGluZVN0ZXAoKSk7CisgICAgICAgIG1fZGVsdGFZICo9IHN0YXRpY19j
YXN0PGZsb2F0PihTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCkpOwogICAgIH0KIH0KIApJ
bmRleDogV2ViQ29yZS9wbGF0Zm9ybS93eC9TY3JvbGxWaWV3V3guY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vd3gvU2Nyb2xsVmlld1d4LmNwcAkocmV2aXNpb24gNTQwODQpCisr
KyBXZWJDb3JlL3BsYXRmb3JtL3d4L1Njcm9sbFZpZXdXeC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTk2LDE1ICs5NiwxNSBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICAgICAgZWxzZSBpZiAoc2Ny
b2xsVHlwZSA9PSB3eEVWVF9TQ1JPTExXSU5fUEFHRVVQKSB7CiAgICAgICAgICAgICBpZiAoaG9y
aXopIAotICAgICAgICAgICAgICAgIHBvcy54IC09IG1fc2Nyb2xsVmlldy0+dmlzaWJsZVdpZHRo
KCkgKiBjRnJhY3Rpb25Ub1N0ZXBXaGVuUGFnaW5nOworICAgICAgICAgICAgICAgIHBvcy54IC09
IG1heDxpbnQ+KG1fc2Nyb2xsVmlldy0+dmlzaWJsZVdpZHRoKCkgKiBTY3JvbGxiYXI6Om1pbkZy
YWN0aW9uVG9TdGVwV2hlblBhZ2luZygpLCBtX3Njcm9sbFZpZXctPnZpc2libGVXaWR0aCgpIC0g
U2Nyb2xsYmFyOjptYXhBbW91bnRUb0tlZXBXaGVuUGFnaW5nKCkpOwogICAgICAgICAgICAgZWxz
ZSAgICAgICAKLSAgICAgICAgICAgICAgICBwb3MueSAtPSBtX3Njcm9sbFZpZXctPnZpc2libGVI
ZWlnaHQoKSAqIGNGcmFjdGlvblRvU3RlcFdoZW5QYWdpbmc7CisgICAgICAgICAgICAgICAgcG9z
LnkgLT0gbWF4PGludD4obV9zY3JvbGxWaWV3LT52aXNpYmxlSGVpZ2h0KCkgKiBTY3JvbGxiYXI6
Om1pbkZyYWN0aW9uVG9TdGVwV2hlblBhZ2luZygpLCBtX3Njcm9sbFZpZXctPnZpc2libGVIZWln
aHQoKSAtIFNjcm9sbGJhcjo6bWF4QW1vdW50VG9LZWVwV2hlblBhZ2luZygpKTsKICAgICAgICAg
fQogICAgICAgICBlbHNlIGlmIChzY3JvbGxUeXBlID09IHd4RVZUX1NDUk9MTFdJTl9QQUdFRE9X
TikgewogICAgICAgICAgICAgaWYgKGhvcml6KSAKLSAgICAgICAgICAgICAgICBwb3MueCArPSBt
X3Njcm9sbFZpZXctPnZpc2libGVXaWR0aCgpICogY0ZyYWN0aW9uVG9TdGVwV2hlblBhZ2luZzsK
KyAgICAgICAgICAgICAgICBwb3MueCArPSBtYXg8aW50PihtX3Njcm9sbFZpZXctPnZpc2libGVX
aWR0aCgpICogU2Nyb2xsYmFyOjptaW5GcmFjdGlvblRvU3RlcFdoZW5QYWdpbmcoKSwgbV9zY3Jv
bGxWaWV3LT52aXNpYmxlV2lkdGgoKSAtIFNjcm9sbGJhcjo6bWF4QW1vdW50VG9LZWVwV2hlblBh
Z2luZygpKTsKICAgICAgICAgICAgIGVsc2UgICAgICAgCi0gICAgICAgICAgICAgICAgcG9zLnkg
Kz0gbV9zY3JvbGxWaWV3LT52aXNpYmxlSGVpZ2h0KCkgKiBjRnJhY3Rpb25Ub1N0ZXBXaGVuUGFn
aW5nOworICAgICAgICAgICAgICAgIHBvcy55ICs9IG1heDxpbnQ+KG1fc2Nyb2xsVmlldy0+dmlz
aWJsZUhlaWdodCgpICogU2Nyb2xsYmFyOjptaW5GcmFjdGlvblRvU3RlcFdoZW5QYWdpbmcoKSwg
bV9zY3JvbGxWaWV3LT52aXNpYmxlSGVpZ2h0KCkgLSBTY3JvbGxiYXI6Om1heEFtb3VudFRvS2Vl
cFdoZW5QYWdpbmcoKSk7CiAgICAgICAgIH0KICAgICAgICAgZWxzZQogICAgICAgICAgICAgcmV0
dXJuIGUuU2tpcCgpOwpJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAkocmV2aXNpb24g
NTQwODQpCisrKyBXZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTE5MzQsOCArMTkzNCw4IEBAIFJlbmRlckxheWVyOjp1cGRhdGVTY3JvbGxJbmZvQWZ0
ZXJMYXlvdXQKICAgICAvLyBTZXQgdXAgdGhlIHJhbmdlIChhbmQgcGFnZSBzdGVwL2xpbmUgc3Rl
cCkuCiAgICAgaWYgKG1faEJhcikgewogICAgICAgICBpbnQgY2xpZW50V2lkdGggPSBib3gtPmNs
aWVudFdpZHRoKCk7Ci0gICAgICAgIGludCBwYWdlU3RlcCA9IG1heChjbGllbnRXaWR0aCAqIGNG
cmFjdGlvblRvU3RlcFdoZW5QYWdpbmcsIDEuZik7Ci0gICAgICAgIG1faEJhci0+c2V0U3RlcHMo
Y1Njcm9sbGJhclBpeGVsc1BlckxpbmVTdGVwLCBwYWdlU3RlcCk7CisgICAgICAgIGludCBwYWdl
U3RlcCA9IG1heChtYXg8aW50PihjbGllbnRXaWR0aCAqIFNjcm9sbGJhcjo6bWluRnJhY3Rpb25U
b1N0ZXBXaGVuUGFnaW5nKCksIGNsaWVudFdpZHRoIC0gU2Nyb2xsYmFyOjptYXhBbW91bnRUb0tl
ZXBXaGVuUGFnaW5nKCkpLCAxKTsKKyAgICAgICAgbV9oQmFyLT5zZXRTdGVwcyhTY3JvbGxiYXI6
OnBpeGVsc1BlckxpbmVTdGVwKCksIHBhZ2VTdGVwKTsKICAgICAgICAgbV9oQmFyLT5zZXRQcm9w
b3J0aW9uKGNsaWVudFdpZHRoLCBtX3Njcm9sbFdpZHRoKTsKICAgICAgICAgLy8gRXhwbGljaXRs
eSBzZXQgdGhlIGhvcml6b250YWwgc2Nyb2xsIHZhbHVlLiAgVGhpcyBlbnN1cmVzIHRoYXQgd2hl
biBhCiAgICAgICAgIC8vIHJpZ2h0LXRvLWxlZnQgc2Nyb2xsYWJsZSBhcmVhJ3Mgd2lkdGggKG9y
IGNvbnRlbnQgd2lkdGgpIGNoYW5nZXMsIHRoZQpAQCAtMTk0OSw4ICsxOTQ5LDggQEAgUmVuZGVy
TGF5ZXI6OnVwZGF0ZVNjcm9sbEluZm9BZnRlckxheW91dAogICAgIH0KICAgICBpZiAobV92QmFy
KSB7CiAgICAgICAgIGludCBjbGllbnRIZWlnaHQgPSBib3gtPmNsaWVudEhlaWdodCgpOwotICAg
ICAgICBpbnQgcGFnZVN0ZXAgPSBtYXgoY2xpZW50SGVpZ2h0ICogY0ZyYWN0aW9uVG9TdGVwV2hl
blBhZ2luZywgMS5mKTsKLSAgICAgICAgbV92QmFyLT5zZXRTdGVwcyhjU2Nyb2xsYmFyUGl4ZWxz
UGVyTGluZVN0ZXAsIHBhZ2VTdGVwKTsKKyAgICAgICAgaW50IHBhZ2VTdGVwID0gbWF4KG1heDxp
bnQ+KGNsaWVudEhlaWdodCAqIFNjcm9sbGJhcjo6bWluRnJhY3Rpb25Ub1N0ZXBXaGVuUGFnaW5n
KCksIGNsaWVudEhlaWdodCAtIFNjcm9sbGJhcjo6bWF4QW1vdW50VG9LZWVwV2hlblBhZ2luZygp
KSwgMSk7CisgICAgICAgIG1fdkJhci0+c2V0U3RlcHMoU2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5l
U3RlcCgpLCBwYWdlU3RlcCk7CiAgICAgICAgIG1fdkJhci0+c2V0UHJvcG9ydGlvbihjbGllbnRI
ZWlnaHQsIG1fc2Nyb2xsSGVpZ2h0KTsKICAgICB9CiAgCkluZGV4OiBXZWJLaXQvbWFjL0NoYW5n
ZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvbWFjL0NoYW5nZUxvZwkocmV2aXNpb24gNTQxMDMp
CisrKyBXZWJLaXQvbWFjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSArMSwxNiBAQAor
MjAxMC0wMS0zMCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT04gKHI1MzcxOCk6
IFdoZW4gc2Nyb2xsaW5nIGEgdGFsbCB3aW5kb3cgYnkgcGFnZSwgdGhlIG92ZXJsYXAgYmV0d2Vl
biBwYWdlcyBpcyB0b28gYmlnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNDM3MQorCisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZVZpZXcubW06Cisg
ICAgICAgICgtW1dlYkZyYW1lVmlldyBfdmVydGljYWxQYWdlU2Nyb2xsRGlzdGFuY2VdKTogVXNl
IFNjcm9sbGJhciBtZXRob2RzIGluc3RlYWQgb2YKKyAgICAgICAgY29uc3RhbnRzLCBhbmQgY2Fw
IHRoZSBzY3JvbGwgZGlzdGFuY2UuCisgICAgICAgICgtW1dlYkZyYW1lVmlldyBpbml0V2l0aEZy
YW1lOl0pOiBVc2UgU2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3RlcCgpIGluc3RlYWQgb2YKKyAg
ICAgICAgY1Njcm9sbGJhclBpeGVsc1BlckxpbmVTdGVwLgorICAgICAgICAoLVtXZWJGcmFtZVZp
ZXcgX2hvcml6b250YWxQYWdlU2Nyb2xsRGlzdGFuY2VdKTpVc2UgU2Nyb2xsYmFyIG1ldGhvZHMg
aW5zdGVhZCBvZgorICAgICAgICBjb25zdGFudHMsIGFuZCBjYXAgdGhlIHNjcm9sbCBkaXN0YW5j
ZS4KKwogPT0gUm9sbGVkIG92ZXIgdG8gQ2hhbmdlTG9nLTIwMTAtMDEtMjkgPT0KSW5kZXg6IFdl
YktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21h
Yy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQkocmV2aXNpb24gNTQwODQpCisrKyBXZWJLaXQvbWFj
L1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yMDEsNyArMjAxLDcg
QEAgZW51bSB7CiAtIChmbG9hdClfdmVydGljYWxQYWdlU2Nyb2xsRGlzdGFuY2UKIHsKICAgICBm
bG9hdCBoZWlnaHQgPSBbW3NlbGYgX2NvbnRlbnRWaWV3XSBib3VuZHNdLnNpemUuaGVpZ2h0Owot
ICAgIHJldHVybiBtYXgoaGVpZ2h0ICogY0ZyYWN0aW9uVG9TdGVwV2hlblBhZ2luZywgMS5mKTsK
KyAgICByZXR1cm4gbWF4PGZsb2F0PihoZWlnaHQgKiBTY3JvbGxiYXI6Om1pbkZyYWN0aW9uVG9T
dGVwV2hlblBhZ2luZygpLCBoZWlnaHQgLSBTY3JvbGxiYXI6Om1heEFtb3VudFRvS2VlcFdoZW5Q
YWdpbmcoKSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgdm9pZCBhZGRUeXBlc0Zyb21DbGFzcyhOU011
dGFibGVEaWN0aW9uYXJ5ICphbGxUeXBlcywgQ2xhc3Mgb2JqQ0NsYXNzLCBOU0FycmF5ICpzdXBw
b3J0VHlwZXMpCkBAIC0zNDIsNyArMzQyLDcgQEAgc3RhdGljIGlubGluZSB2b2lkIGFkZFR5cGVz
RnJvbUNsYXNzKE5TTQogICAgIFtzY3JvbGxWaWV3IHNldEhhc1ZlcnRpY2FsU2Nyb2xsZXI6Tk9d
OwogICAgIFtzY3JvbGxWaWV3IHNldEhhc0hvcml6b250YWxTY3JvbGxlcjpOT107CiAgICAgW3Nj
cm9sbFZpZXcgc2V0QXV0b3Jlc2l6aW5nTWFzazpOU1ZpZXdXaWR0aFNpemFibGUgfCBOU1ZpZXdI
ZWlnaHRTaXphYmxlXTsKLSAgICBbc2Nyb2xsVmlldyBzZXRMaW5lU2Nyb2xsOmNTY3JvbGxiYXJQ
aXhlbHNQZXJMaW5lU3RlcF07CisgICAgW3Njcm9sbFZpZXcgc2V0TGluZVNjcm9sbDpTY3JvbGxi
YXI6OnBpeGVsc1BlckxpbmVTdGVwKCldOwogICAgIFtzZWxmIGFkZFN1YnZpZXc6c2Nyb2xsVmll
d107CiAKICAgICAvLyBEb24ndCBjYWxsIG91ciBvdmVycmlkZGVuIHZlcnNpb24gb2Ygc2V0TmV4
dEtleVZpZXcgaGVyZTsgd2UgbmVlZCB0byBtYWtlIHRoZSBzdGFuZGFyZCBOU1ZpZXcKQEAgLTYx
Myw3ICs2MTMsNyBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYWRkVHlwZXNGcm9tQ2xhc3MoTlNNCiAt
IChmbG9hdClfaG9yaXpvbnRhbFBhZ2VTY3JvbGxEaXN0YW5jZQogewogICAgIGZsb2F0IHdpZHRo
ID0gW1tzZWxmIF9jb250ZW50Vmlld10gYm91bmRzXS5zaXplLndpZHRoOwotICAgIHJldHVybiBt
YXgod2lkdGggKiBjRnJhY3Rpb25Ub1N0ZXBXaGVuUGFnaW5nLCAxLmYpOworICAgIHJldHVybiBt
YXg8ZmxvYXQ+KHdpZHRoICogU2Nyb2xsYmFyOjptaW5GcmFjdGlvblRvU3RlcFdoZW5QYWdpbmco
KSwgd2lkdGggLSBTY3JvbGxiYXI6Om1heEFtb3VudFRvS2VlcFdoZW5QYWdpbmcoKSk7CiB9CiAK
IC0gKEJPT0wpX3BhZ2VWZXJ0aWNhbGx5OihCT09MKXVwCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiA1NDEw
MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSArMSwxMCBA
QAorMjAxMC0wMS0zMCAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJFR1JFU1NJT04gKHI1Mzcx
OCk6IFdoZW4gc2Nyb2xsaW5nIGEgdGFsbCB3aW5kb3cgYnkgcGFnZSwgdGhlIG92ZXJsYXAgYmV0
d2VlbiBwYWdlcyBpcyB0b28gYmlnCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zNDM3MQorCisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvZXZlbnRz
L3Njcm9sbGJhci1kb3VibGUtY2xpY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogPT0gUm9sbGVk
IG92ZXIgdG8gQ2hhbmdlTG9nLTIwMTAtMDEtMjkgPT0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9mYXN0L2V2ZW50cy9zY3JvbGxiYXItZG91YmxlLWNsaWNrLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9ldmVudHMvc2Nyb2xs
YmFyLWRvdWJsZS1jbGljay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvZmFzdC9ldmVudHMvc2Nyb2xsYmFyLWRvdWJsZS1jbGljay1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEgQEAKK1Njcm9sbCBvZmZzZXQgaXMgNzIwCg==
</data>
<flag name="review"
          id="30293"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>