<?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>36125</bug_id>
          
          <creation_ts>2010-03-15 10:55:42 -0700</creation_ts>
          <short_desc>-[WebFrame setAlwaysHideHorizontal/VerticalScroller:] prevents keyboard scrolling</short_desc>
          <delta_ts>2010-03-15 13:11:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</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</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Sullivan">sullivan</reporter>
          <assigned_to name="John Sullivan">sullivan</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>199721</commentid>
    <comment_count>0</comment_count>
    <who name="John Sullivan">sullivan</who>
    <bug_when>2010-03-15 10:55:42 -0700</bug_when>
    <thetext>The new SPI methods -[WebFrame setAlwaysHideHorizontalScroller:] and -[WebFrame setAlwaysHideVerticalScroller:]  are intended not to prevent scrolling, as is documented by comments in WebFramePrivate.h. However, they currently prevent keyboard scrolling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199722</commentid>
    <comment_count>1</comment_count>
    <who name="John Sullivan">sullivan</who>
    <bug_when>2010-03-15 10:57:56 -0700</bug_when>
    <thetext>This is in Radar as 7726768.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199728</commentid>
    <comment_count>2</comment_count>
      <attachid>50720</attachid>
    <who name="John Sullivan">sullivan</who>
    <bug_when>2010-03-15 11:41:47 -0700</bug_when>
    <thetext>Created attachment 50720
Patch that still allows keyboard scrolling in WebFrameView after setAlwaysHideHorizontal/VerticalScroller:YES has been called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199754</commentid>
    <comment_count>3</comment_count>
      <attachid>50720</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2010-03-15 12:49:57 -0700</bug_when>
    <thetext>Comment on attachment 50720
Patch that still allows keyboard scrolling in WebFrameView after setAlwaysHideHorizontal/VerticalScroller:YES has been called.

&gt; +        (-[WebFrameView _isScrollable]):
&gt; +        New method, calls -[WebDynamicScrollBarsView horizontalScrollingAllowed] and
&gt; +        -[WebDynamicScrollBarsView verticalScrollingAllowed]
&gt; +        (-[WebFrameView _largestScrollableChild]):
&gt; +        New method, like _largestChildWithScrollBars but uses _isScrollable.
&gt; +        (-[WebFrameView _hasScrollBars]):
&gt; +        Added a comment that this can probably now be deleted. (I&apos;ll do so separately.)
&gt; +        (-[WebFrameView _largestChildWithScrollBars]):
&gt; +        Ditto.

If you were to rename these methods in place, it would be a lot easier to see what your changes are. Then you could move them into their sorted location separately.

&gt; @@ -169,11 +179,16 @@ - (void)updateScrollers
&gt;          newHasHorizontalScroller = (hScroll == ScrollbarAlwaysOn);
&gt;      if (vScroll != ScrollbarAuto)
&gt;          newHasVerticalScroller = (vScroll == ScrollbarAlwaysOn);
&gt; -        
&gt; -    newHasHorizontalScroller &amp;= !hideHorizontalScroller;
&gt; -    newHasVerticalScroller &amp;= !hideVerticalScroller;
&gt;      
&gt;      if (!documentView || suppressLayout || suppressScrollers || (hScroll != ScrollbarAuto &amp;&amp; vScroll != ScrollbarAuto)) {
&gt; +        horizontalScrollingAllowedButScrollerHidden = newHasHorizontalScroller &amp;&amp; alwaysHideHorizontalScroller;
&gt; +        if (horizontalScrollingAllowedButScrollerHidden)
&gt; +            newHasHorizontalScroller = NO;
&gt; +        
&gt; +        verticalScrollingAllowedButScrollerHidden = newHasVerticalScroller &amp;&amp; alwaysHideVerticalScroller;
&gt; +        if (verticalScrollingAllowedButScrollerHidden)
&gt; +            newHasVerticalScroller = NO;
&gt; +        
&gt;          inUpdateScrollers = YES;
&gt;          if (hasHorizontalScroller != newHasHorizontalScroller)
&gt;              [self setHasHorizontalScroller:newHasHorizontalScroller];
&gt; @@ -212,9 +227,14 @@ - (void)updateScrollers
&gt;      if (!newHasVerticalScroller &amp;&amp; hasVerticalScroller &amp;&amp; hScroll != ScrollbarAlwaysOn)
&gt;          newHasHorizontalScroller = NO;
&gt;  
&gt; -    newHasHorizontalScroller &amp;= !hideHorizontalScroller;
&gt; -    newHasVerticalScroller &amp;= !hideVerticalScroller;
&gt; -
&gt; +    horizontalScrollingAllowedButScrollerHidden = newHasHorizontalScroller &amp;&amp; alwaysHideHorizontalScroller;
&gt; +    if (horizontalScrollingAllowedButScrollerHidden)
&gt; +        newHasHorizontalScroller = NO;
&gt; +    
&gt; +    verticalScrollingAllowedButScrollerHidden = newHasVerticalScroller &amp;&amp; alwaysHideVerticalScroller;
&gt; +    if (verticalScrollingAllowedButScrollerHidden)
&gt; +        newHasVerticalScroller = NO;
&gt; +        

It&apos;s too bad this code is repeated.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199779</commentid>
    <comment_count>4</comment_count>
    <who name="John Sullivan">sullivan</who>
    <bug_when>2010-03-15 13:07:59 -0700</bug_when>
    <thetext>I realized after sending the patch that the no-longer-used methods cannot be immediately deleted because it would break WebKit nightly build compatibility with older versions of Safari. So I reworded the comments in the code and in the ChangeLog to mention that Safari will no longer use them, and that they can probably be deleted once we no longer care about WebKit nightly compatibility with Safari 4.0.x and earlier. Given that, I can&apos;t really rename the methods in place, since the new and old methods have to coexist for awhile.

I didn&apos;t see a clean way around repeating the little block of code you called out, since it modifies a couple of local variables. Note that it&apos;s only executed once for any call of the method though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199782</commentid>
    <comment_count>5</comment_count>
    <who name="John Sullivan">sullivan</who>
    <bug_when>2010-03-15 13:11:13 -0700</bug_when>
    <thetext>Committed in 56008.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50720</attachid>
            <date>2010-03-15 11:41:47 -0700</date>
            <delta_ts>2010-03-15 12:49:57 -0700</delta_ts>
            <desc>Patch that still allows keyboard scrolling in WebFrameView after setAlwaysHideHorizontal/VerticalScroller:YES has been called.</desc>
            <filename>Scrollability_patch.txt</filename>
            <type>text/plain</type>
            <size>19908</size>
            <attacher name="John Sullivan">sullivan</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9tYWMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvQ2hh
bmdlTG9nCShyZXZpc2lvbiA1NjAwNCkKKysrIFdlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDMgKzEsNjggQEAKKzIwMTAtMDMtMTUgIEpvaG4gU3VsbGl2YW4gIDxzdWxs
aXZhbkBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisg
ICAgICAgIAorICAgICAgICAtW1dlYkZyYW1lIHNldEFsd2F5c0hpZGVIb3Jpem9udGFsL1ZlcnRp
Y2FsU2Nyb2xsZXI6XSBwcmV2ZW50cyBrZXlib2FyZCBzY3JvbGxpbmcKKyAgICAgICAgPGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNjEyNT4KKworICAgICAgICAqIFdl
YlZpZXcvV2ViRHluYW1pY1Njcm9sbEJhcnNWaWV3Lmg6CisgICAgICAgIEFkZGVkIGluc3RhbmNl
IHZhcmlhYmxlcyBob3Jpem9udGFsU2Nyb2xsaW5nQWxsb3dlZEJ1dFNjcm9sbGVySGlkZGVuIGFu
ZAorICAgICAgICB2ZXJ0aWNhbFNjcm9sbGluZ0FsbG93ZWRCdXRTY3JvbGxlckhpZGRlbi4gUmVu
YW1lZCBpbnN0YW5jZSB2YXJpYWJsZXMgCisgICAgICAgIGhpZGVIb3Jpem9udGFsL1ZlcnRpY2Fs
U2Nyb2xsZXIgdG8gYWx3YXlzSGlkZUhvcml6b250YWwvVmVydGljYWxTY3JvbGxlciBmb3IgY2xh
cml0eS4KKyAgICAgICAgRGVjbGFyZWQgbWV0aG9kcyAtaG9yaXpvbnRhbFNjcm9sbGluZ0FsbG93
ZWQgYW5kIC12ZXJ0aWNhbFNjcm9sbGluZ0FsbG93ZWQuCisgICAgICAgIEFkZGVkIGNvbW1lbnRz
LgorICAgICAgICAKKyAgICAgICAgKiBXZWJWaWV3L1dlYkR5bmFtaWNTY3JvbGxCYXJzVmlldy5t
bToKKyAgICAgICAgKC1bV2ViRHluYW1pY1Njcm9sbEJhcnNWaWV3IHNldEFsd2F5c0hpZGVIb3Jp
em9udGFsU2Nyb2xsZXI6XSk6CisgICAgICAgIFVwZGF0ZWQgZm9yIGluc3RhbmNlIHZhcmlhYmxl
IHJlbmFtaW5nLgorICAgICAgICAoLVtXZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcgc2V0QWx3YXlz
SGlkZVZlcnRpY2FsU2Nyb2xsZXI6XSk6CisgICAgICAgIERpdHRvLgorICAgICAgICAoLVtXZWJE
eW5hbWljU2Nyb2xsQmFyc1ZpZXcgaG9yaXpvbnRhbFNjcm9sbGluZ0FsbG93ZWRdKToKKyAgICAg
ICAgTmV3IG1ldGhvZCwgcmV0dXJucyBZRVMgaWYgdGhlIHNjcm9sbGVyIGlzIHNob3dpbmcgb3Ig
dGhlIG9ubHkgcmVhc29uIHRoYXQgdGhlIHNjcm9sbGVyCisgICAgICAgIGlzIG5vdCBzaG93aW5n
IGlzIHRoYXQgc2V0QWx3YXlzSGlkZUhvcml6b250YWxTY3JvbGxpbmcgaGFzIGJlZW4gY2FsbGVk
LgorICAgICAgICAoLVtXZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcgdmVydGljYWxTY3JvbGxpbmdB
bGxvd2VkXSk6CisgICAgICAgIE5ldyBtZXRob2QsIHJldHVybnMgWUVTIGlmIHRoZSBzY3JvbGxl
ciBpcyBzaG93aW5nIG9yIHRoZSBvbmx5IHJlYXNvbiB0aGF0IHRoZSBzY3JvbGxlcgorICAgICAg
ICBpcyBub3Qgc2hvd2luZyBpcyB0aGF0IHNldEFsd2F5c0hpZGVWZXJ0aWNhbFNjcm9sbGluZyBo
YXMgYmVlbiBjYWxsZWQuCisgICAgICAgICgtW1dlYkR5bmFtaWNTY3JvbGxCYXJzVmlldyB1cGRh
dGVTY3JvbGxlcnNdKToKKyAgICAgICAgVXBkYXRlZCBmb3IgaW5zdGFuY2UgdmFyaWFibGUgcmVu
YW1pbmdzLiBOb3cgdXBkYXRlcyBob3Jpem9udGFsU2Nyb2xsaW5nQWxsb3dlZEJ1dFNjcm9sbGVy
SGlkZGVuCisgICAgICAgIGFuZCB2ZXJ0aWNhbFNjcm9sbGluZ0FsbG93ZWRCdXRTY3JvbGxlckhp
ZGRlbi4gTm93IHRha2VzIHRoZSBhbHdheXMtaGlkZGVuIHN0YXRlIGludG8gYWNjb3VudAorICAg
ICAgICBpbiB0aGUgZWFybHktcmV0dXJuIGNvZGUgcGF0aCwgdG8gYXZvaWQgdGFraW5nIGl0IGlu
dG8gYWNjb3VudCB0d2ljZSBpbiB0aGUgcmVndWxhciBjb2RlIHBhdGguCisgICAgICAgIAorICAg
ICAgICAqIFdlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tOgorICAgICAgICAoLVtXZWJGcmFtZVZpZXcg
X3Njcm9sbFRvQmVnaW5uaW5nT2ZEb2N1bWVudF0pOgorICAgICAgICBVc2UgX2lzU2Nyb2xsYWJs
ZSBpbnN0ZWFkIG9mIF9oYXNTY3JvbGxCYXJzLgorICAgICAgICAoLVtXZWJGcmFtZVZpZXcgX3Nj
cm9sbFRvRW5kT2ZEb2N1bWVudF0pOgorICAgICAgICBEaXR0by4KKyAgICAgICAgKC1bV2ViRnJh
bWVWaWV3IHNjcm9sbFRvQmVnaW5uaW5nT2ZEb2N1bWVudDpdKToKKyAgICAgICAgVXNlIF9sYXJn
ZXN0U2Nyb2xsYWJsZUNoaWxkIGluc3RlYWQgb2YgX2xhcmdlc3RDaGlsZFdpdGhTY3JvbGxCYXJz
LgorICAgICAgICAoLVtXZWJGcmFtZVZpZXcgc2Nyb2xsVG9FbmRPZkRvY3VtZW50Ol0pOgorICAg
ICAgICBEaXR0by4KKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IF9wYWdlVmVydGljYWxseTpdKToK
KyAgICAgICAgVXNlIF9pc1Njcm9sbGFibGUgYW5kIF9sYXJnZXN0U2Nyb2xsYWJsZUNoaWxkIGlu
c3RlYWQgb2YgX2hhc1Njcm9sbEJhcnMKKyAgICAgICAgYW5kIF9sYXJnZXN0Q2hpbGRXaXRoU2Ny
b2xsQmFycy4KKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IF9wYWdlSG9yaXpvbnRhbGx5Ol0pOgor
ICAgICAgICBEaXR0by4KKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IF9zY3JvbGxMaW5lVmVydGlj
YWxseTpdKToKKyAgICAgICAgRGl0dG8uCisgICAgICAgICgtW1dlYkZyYW1lVmlldyBfc2Nyb2xs
TGluZUhvcml6b250YWxseTpdKToKKyAgICAgICAgRGl0dG8uCisgICAgICAgICgtW1dlYkZyYW1l
VmlldyBrZXlEb3duOl0pOgorICAgICAgICBVc2UgX2xhcmdlc3RTY3JvbGxhYmxlQ2hpbGQgaW5z
dGVhZCBvZiBfbGFyZ2VzdENoaWxkV2l0aFNjcm9sbEJhcnMuCisgICAgICAgICgtW1dlYkZyYW1l
VmlldyBfaXNTY3JvbGxhYmxlXSk6CisgICAgICAgIE5ldyBtZXRob2QsIGNhbGxzIC1bV2ViRHlu
YW1pY1Njcm9sbEJhcnNWaWV3IGhvcml6b250YWxTY3JvbGxpbmdBbGxvd2VkXSBhbmQKKyAgICAg
ICAgLVtXZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcgdmVydGljYWxTY3JvbGxpbmdBbGxvd2VkXQor
ICAgICAgICAoLVtXZWJGcmFtZVZpZXcgX2xhcmdlc3RTY3JvbGxhYmxlQ2hpbGRdKToKKyAgICAg
ICAgTmV3IG1ldGhvZCwgbGlrZSBfbGFyZ2VzdENoaWxkV2l0aFNjcm9sbEJhcnMgYnV0IHVzZXMg
X2lzU2Nyb2xsYWJsZS4KKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3IF9oYXNTY3JvbGxCYXJzXSk6
CisgICAgICAgIEFkZGVkIGEgY29tbWVudCB0aGF0IHRoaXMgY2FuIHByb2JhYmx5IG5vdyBiZSBk
ZWxldGVkLiAoSSdsbCBkbyBzbyBzZXBhcmF0ZWx5LikKKyAgICAgICAgKC1bV2ViRnJhbWVWaWV3
IF9sYXJnZXN0Q2hpbGRXaXRoU2Nyb2xsQmFyc10pOgorICAgICAgICBEaXR0by4KKyAgICAgICAg
CisgICAgICAgICogV2ViVmlldy9XZWJGcmFtZVZpZXdQcml2YXRlLmg6CisgICAgICAgIERlY2xh
cmVkIC1faXNTY3JvbGxhYmxlIGFuZCAtX2xhcmdlc3RTY3JvbGxhYmxlQ2hpbGQuIEFkZGVkIGNv
bW1lbnRzIHRvCisgICAgICAgIF9oYXNTY3JvbGxCYXJzIGFuZCBfbGFyZ2VzdENoaWxkV2l0aFNj
cm9sbEJhcnMgc2F5aW5nIHRoYXQgdGhleSBjYW4gcHJvYmFibHkKKyAgICAgICAgbm93IGJlIGRl
bGV0ZWQuCisKIDIwMTAtMDMtMTUgIEpvaG4gU3VsbGl2YW4gIDxzdWxsaXZhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgTWV0aG9kIG5hbWUgYW5kIHBhcmFtZXRlciBuYW1lIG1pc3Rha2VzIGZyb20g
cmVjZW50IFNQSSBhZGRpdGlvbgpJbmRleDogV2ViS2l0L21hYy9XZWJWaWV3L1dlYkR5bmFtaWNT
Y3JvbGxCYXJzVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJEeW5h
bWljU2Nyb2xsQmFyc1ZpZXcuaAkocmV2aXNpb24gNTU5OTcpCisrKyBXZWJLaXQvbWFjL1dlYlZp
ZXcvV2ViRHluYW1pY1Njcm9sbEJhcnNWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDE1ICs0
NSwyNiBAQCBAaW50ZXJmYWNlIFdlYkR5bmFtaWNTY3JvbGxCYXJzVmlldyA6IE5TCiAgICAgdW5z
aWduZWQgaW5VcGRhdGVTY3JvbGxlcnNMYXlvdXRQYXNzOwogCiAgICAgQk9PTCBhbGxvd3NTY3Jv
bGxlcnNUb092ZXJsYXBDb250ZW50OwotICAgIEJPT0wgaGlkZUhvcml6b250YWxTY3JvbGxlcjsK
LSAgICBCT09MIGhpZGVWZXJ0aWNhbFNjcm9sbGVyOworICAgIEJPT0wgYWx3YXlzSGlkZUhvcml6
b250YWxTY3JvbGxlcjsKKyAgICBCT09MIGFsd2F5c0hpZGVWZXJ0aWNhbFNjcm9sbGVyOworICAg
IEJPT0wgaG9yaXpvbnRhbFNjcm9sbGluZ0FsbG93ZWRCdXRTY3JvbGxlckhpZGRlbjsKKyAgICBC
T09MIHZlcnRpY2FsU2Nyb2xsaW5nQWxsb3dlZEJ1dFNjcm9sbGVySGlkZGVuOwogfQogCiAvLyBU
aGlzIHdhcyBvcmlnaW5hbGx5IGFkZGVkIGZvciBTYWZhcmkncyBiZW5lZml0LCBidXQgU2FmYXJp
IGhhcyBub3QgdXNlZCBpdCBmb3IgYSBsb25nIHRpbWUuCiAvLyBQZXJoYXBzIGl0IGNhbiBiZSBy
ZW1vdmVkLgogLSAodm9pZClzZXRBbGxvd3NIb3Jpem9udGFsU2Nyb2xsaW5nOihCT09MKWZsYWc7
CiAKKy8vIERldGVybWluZXMgd2hldGhlciB0aGUgc2Nyb2xsZXJzIHNob3VsZCBiZSBkcmF3biBv
dXRzaWRlIG9mIHRoZSBjb250ZW50IChhcyBpbiBub3JtYWwgc2Nyb2xsIHZpZXdzKQorLy8gb3Ig
c2hvdWxkIG92ZXJsYXAgdGhlIGNvbnRlbnQuCiAtICh2b2lkKXNldEFsbG93c1Njcm9sbGVyc1Rv
T3ZlcmxhcENvbnRlbnQ6KEJPT0wpZmxhZzsKKworLy8gVGhlc2UgbWV0aG9kcyBoaWRlIHRoZSBz
Y3JvbGxlcnMgaW4gYSB3YXkgdGhhdCBkb2VzIG5vdCBwcmV2ZW50IHNjcm9sbGluZy4KIC0gKHZv
aWQpc2V0QWx3YXlzSGlkZUhvcml6b250YWxTY3JvbGxlcjooQk9PTClmbGFnOwogLSAodm9pZClz
ZXRBbHdheXNIaWRlVmVydGljYWxTY3JvbGxlcjooQk9PTClmbGFnOworCisvLyBUaGVzZSBtZXRo
b2RzIHJldHVybiBZRVMgaWYgdGhlIHNjcm9sbGVycyBhcmUgdmlzaWJsZSwgb3IgaWYgdGhlIG9u
bHkgcmVhc29uIHRoYXQgdGhleSBhcmUgbm90CisvLyB2aXNpYmxlIGlzIHRoYXQgdGhleSBoYXZl
IGJlZW4gc3VwcHJlc3NlZCBieSBzZXRBbHdheXNIaWRlSG9yaXpvbnRhbC9WZXJ0aWNhbFNjcm9s
bGVyOi4KKy0gKEJPT0wpaG9yaXpvbnRhbFNjcm9sbGluZ0FsbG93ZWQ7CistIChCT09MKXZlcnRp
Y2FsU2Nyb2xsaW5nQWxsb3dlZDsKIEBlbmQKSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJE
eW5hbWljU2Nyb2xsQmFyc1ZpZXcubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkR5bmFtaWNTY3JvbGxCYXJzVmlldy5tbQkocmV2aXNpb24gNTU5OTcpCisrKyBXZWJLaXQv
bWFjL1dlYlZpZXcvV2ViRHluYW1pY1Njcm9sbEJhcnNWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBA
IC02OCwyMiArNjgsMzIgQEAgLSAodm9pZClzZXRBbGxvd3NTY3JvbGxlcnNUb092ZXJsYXBDb250
ZQogCiAtICh2b2lkKXNldEFsd2F5c0hpZGVIb3Jpem9udGFsU2Nyb2xsZXI6KEJPT0wpc2hvdWxk
QmVIaWRkZW4KIHsKLSAgICBpZiAoaGlkZUhvcml6b250YWxTY3JvbGxlciA9PSBzaG91bGRCZUhp
ZGRlbikKKyAgICBpZiAoYWx3YXlzSGlkZUhvcml6b250YWxTY3JvbGxlciA9PSBzaG91bGRCZUhp
ZGRlbikKICAgICAgICAgcmV0dXJuOwogCi0gICAgaGlkZUhvcml6b250YWxTY3JvbGxlciA9IHNo
b3VsZEJlSGlkZGVuOworICAgIGFsd2F5c0hpZGVIb3Jpem9udGFsU2Nyb2xsZXIgPSBzaG91bGRC
ZUhpZGRlbjsKICAgICBbc2VsZiB1cGRhdGVTY3JvbGxlcnNdOwogfQogCiAtICh2b2lkKXNldEFs
d2F5c0hpZGVWZXJ0aWNhbFNjcm9sbGVyOihCT09MKXNob3VsZEJlSGlkZGVuCiB7Ci0gICAgaWYg
KGhpZGVWZXJ0aWNhbFNjcm9sbGVyID09IHNob3VsZEJlSGlkZGVuKQorICAgIGlmIChhbHdheXNI
aWRlVmVydGljYWxTY3JvbGxlciA9PSBzaG91bGRCZUhpZGRlbikKICAgICAgICAgcmV0dXJuOwog
ICAgICAgICAKLSAgICBoaWRlVmVydGljYWxTY3JvbGxlciA9IHNob3VsZEJlSGlkZGVuOworICAg
IGFsd2F5c0hpZGVWZXJ0aWNhbFNjcm9sbGVyID0gc2hvdWxkQmVIaWRkZW47CiAgICAgW3NlbGYg
dXBkYXRlU2Nyb2xsZXJzXTsKIH0KIAorLSAoQk9PTClob3Jpem9udGFsU2Nyb2xsaW5nQWxsb3dl
ZAoreworICAgIHJldHVybiBob3Jpem9udGFsU2Nyb2xsaW5nQWxsb3dlZEJ1dFNjcm9sbGVySGlk
ZGVuIHx8IFtzZWxmIGhhc0hvcml6b250YWxTY3JvbGxlcl07Cit9CisKKy0gKEJPT0wpdmVydGlj
YWxTY3JvbGxpbmdBbGxvd2VkCit7CisgICAgcmV0dXJuIHZlcnRpY2FsU2Nyb2xsaW5nQWxsb3dl
ZEJ1dFNjcm9sbGVySGlkZGVuIHx8IFtzZWxmIGhhc1ZlcnRpY2FsU2Nyb2xsZXJdOworfQorCiBA
ZW5kCiAKIEBpbXBsZW1lbnRhdGlvbiBXZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcgKFdlYkludGVy
bmFsKQpAQCAtMTY5LDExICsxNzksMTYgQEAgLSAodm9pZCl1cGRhdGVTY3JvbGxlcnMKICAgICAg
ICAgbmV3SGFzSG9yaXpvbnRhbFNjcm9sbGVyID0gKGhTY3JvbGwgPT0gU2Nyb2xsYmFyQWx3YXlz
T24pOwogICAgIGlmICh2U2Nyb2xsICE9IFNjcm9sbGJhckF1dG8pCiAgICAgICAgIG5ld0hhc1Zl
cnRpY2FsU2Nyb2xsZXIgPSAodlNjcm9sbCA9PSBTY3JvbGxiYXJBbHdheXNPbik7Ci0gICAgICAg
IAotICAgIG5ld0hhc0hvcml6b250YWxTY3JvbGxlciAmPSAhaGlkZUhvcml6b250YWxTY3JvbGxl
cjsKLSAgICBuZXdIYXNWZXJ0aWNhbFNjcm9sbGVyICY9ICFoaWRlVmVydGljYWxTY3JvbGxlcjsK
ICAgICAKICAgICBpZiAoIWRvY3VtZW50VmlldyB8fCBzdXBwcmVzc0xheW91dCB8fCBzdXBwcmVz
c1Njcm9sbGVycyB8fCAoaFNjcm9sbCAhPSBTY3JvbGxiYXJBdXRvICYmIHZTY3JvbGwgIT0gU2Ny
b2xsYmFyQXV0bykpIHsKKyAgICAgICAgaG9yaXpvbnRhbFNjcm9sbGluZ0FsbG93ZWRCdXRTY3Jv
bGxlckhpZGRlbiA9IG5ld0hhc0hvcml6b250YWxTY3JvbGxlciAmJiBhbHdheXNIaWRlSG9yaXpv
bnRhbFNjcm9sbGVyOworICAgICAgICBpZiAoaG9yaXpvbnRhbFNjcm9sbGluZ0FsbG93ZWRCdXRT
Y3JvbGxlckhpZGRlbikKKyAgICAgICAgICAgIG5ld0hhc0hvcml6b250YWxTY3JvbGxlciA9IE5P
OworICAgICAgICAKKyAgICAgICAgdmVydGljYWxTY3JvbGxpbmdBbGxvd2VkQnV0U2Nyb2xsZXJI
aWRkZW4gPSBuZXdIYXNWZXJ0aWNhbFNjcm9sbGVyICYmIGFsd2F5c0hpZGVWZXJ0aWNhbFNjcm9s
bGVyOworICAgICAgICBpZiAodmVydGljYWxTY3JvbGxpbmdBbGxvd2VkQnV0U2Nyb2xsZXJIaWRk
ZW4pCisgICAgICAgICAgICBuZXdIYXNWZXJ0aWNhbFNjcm9sbGVyID0gTk87CisgICAgICAgIAog
ICAgICAgICBpblVwZGF0ZVNjcm9sbGVycyA9IFlFUzsKICAgICAgICAgaWYgKGhhc0hvcml6b250
YWxTY3JvbGxlciAhPSBuZXdIYXNIb3Jpem9udGFsU2Nyb2xsZXIpCiAgICAgICAgICAgICBbc2Vs
ZiBzZXRIYXNIb3Jpem9udGFsU2Nyb2xsZXI6bmV3SGFzSG9yaXpvbnRhbFNjcm9sbGVyXTsKQEAg
LTIxMiw5ICsyMjcsMTQgQEAgLSAodm9pZCl1cGRhdGVTY3JvbGxlcnMKICAgICBpZiAoIW5ld0hh
c1ZlcnRpY2FsU2Nyb2xsZXIgJiYgaGFzVmVydGljYWxTY3JvbGxlciAmJiBoU2Nyb2xsICE9IFNj
cm9sbGJhckFsd2F5c09uKQogICAgICAgICBuZXdIYXNIb3Jpem9udGFsU2Nyb2xsZXIgPSBOTzsK
IAotICAgIG5ld0hhc0hvcml6b250YWxTY3JvbGxlciAmPSAhaGlkZUhvcml6b250YWxTY3JvbGxl
cjsKLSAgICBuZXdIYXNWZXJ0aWNhbFNjcm9sbGVyICY9ICFoaWRlVmVydGljYWxTY3JvbGxlcjsK
LQorICAgIGhvcml6b250YWxTY3JvbGxpbmdBbGxvd2VkQnV0U2Nyb2xsZXJIaWRkZW4gPSBuZXdI
YXNIb3Jpem9udGFsU2Nyb2xsZXIgJiYgYWx3YXlzSGlkZUhvcml6b250YWxTY3JvbGxlcjsKKyAg
ICBpZiAoaG9yaXpvbnRhbFNjcm9sbGluZ0FsbG93ZWRCdXRTY3JvbGxlckhpZGRlbikKKyAgICAg
ICAgbmV3SGFzSG9yaXpvbnRhbFNjcm9sbGVyID0gTk87CisgICAgCisgICAgdmVydGljYWxTY3Jv
bGxpbmdBbGxvd2VkQnV0U2Nyb2xsZXJIaWRkZW4gPSBuZXdIYXNWZXJ0aWNhbFNjcm9sbGVyICYm
IGFsd2F5c0hpZGVWZXJ0aWNhbFNjcm9sbGVyOworICAgIGlmICh2ZXJ0aWNhbFNjcm9sbGluZ0Fs
bG93ZWRCdXRTY3JvbGxlckhpZGRlbikKKyAgICAgICAgbmV3SGFzVmVydGljYWxTY3JvbGxlciA9
IE5POworICAgICAgICAKICAgICBpZiAoaGFzSG9yaXpvbnRhbFNjcm9sbGVyICE9IG5ld0hhc0hv
cml6b250YWxTY3JvbGxlcikgewogICAgICAgICBpblVwZGF0ZVNjcm9sbGVycyA9IFlFUzsKICAg
ICAgICAgW3NlbGYgc2V0SGFzSG9yaXpvbnRhbFNjcm9sbGVyOm5ld0hhc0hvcml6b250YWxTY3Jv
bGxlcl07CkluZGV4OiBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXcubW0JKHJldmlzaW9uIDU1OTc0
KQorKysgV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlldy5tbQkod29ya2luZyBjb3B5KQpA
QCAtNTMyLDcgKzUzMiw3IEBAIC0gKEJPT0wpX3Njcm9sbFRvQmVnaW5uaW5nT2ZEb2N1bWVudAog
ewogICAgIGlmIChbc2VsZiBfc2Nyb2xsT3ZlcmZsb3dJbkRpcmVjdGlvbjpTY3JvbGxVcCBncmFu
dWxhcml0eTpTY3JvbGxCeURvY3VtZW50XSkKICAgICAgICAgcmV0dXJuIFlFUzsKLSAgICBpZiAo
IVtzZWxmIF9oYXNTY3JvbGxCYXJzXSkKKyAgICBpZiAoIVtzZWxmIF9pc1Njcm9sbGFibGVdKQog
ICAgICAgICByZXR1cm4gTk87CiAgICAgTlNQb2ludCBwb2ludCA9IFtbW3NlbGYgX3Njcm9sbFZp
ZXddIGRvY3VtZW50Vmlld10gZnJhbWVdLm9yaWdpbjsKICAgICByZXR1cm4gW1tzZWxmIF9jb250
ZW50Vmlld10gX3Njcm9sbFRvOiZwb2ludCBhbmltYXRlOllFU107CkBAIC01NDIsNyArNTQyLDcg
QEAgLSAoQk9PTClfc2Nyb2xsVG9FbmRPZkRvY3VtZW50CiB7CiAgICAgaWYgKFtzZWxmIF9zY3Jv
bGxPdmVyZmxvd0luRGlyZWN0aW9uOlNjcm9sbERvd24gZ3JhbnVsYXJpdHk6U2Nyb2xsQnlEb2N1
bWVudF0pCiAgICAgICAgIHJldHVybiBZRVM7Ci0gICAgaWYgKCFbc2VsZiBfaGFzU2Nyb2xsQmFy
c10pCisgICAgaWYgKCFbc2VsZiBfaXNTY3JvbGxhYmxlXSkKICAgICAgICAgcmV0dXJuIE5POwog
ICAgIE5TUmVjdCBmcmFtZSA9IFtbW3NlbGYgX3Njcm9sbFZpZXddIGRvY3VtZW50Vmlld10gZnJh
bWVdOwogICAgIE5TUG9pbnQgcG9pbnQgPSBOU01ha2VQb2ludChmcmFtZS5vcmlnaW4ueCwgTlNN
YXhZKGZyYW1lKSk7CkBAIC01NTQsNyArNTU0LDcgQEAgLSAodm9pZClzY3JvbGxUb0JlZ2lubmlu
Z09mRG9jdW1lbnQ6KGlkKQogICAgIGlmIChbc2VsZiBfc2Nyb2xsVG9CZWdpbm5pbmdPZkRvY3Vt
ZW50XSkKICAgICAgICAgcmV0dXJuOwogICAgIAotICAgIGlmIChXZWJGcmFtZVZpZXcgKmNoaWxk
ID0gW3NlbGYgX2xhcmdlc3RDaGlsZFdpdGhTY3JvbGxCYXJzXSkgeworICAgIGlmIChXZWJGcmFt
ZVZpZXcgKmNoaWxkID0gW3NlbGYgX2xhcmdlc3RTY3JvbGxhYmxlQ2hpbGRdKSB7CiAgICAgICAg
IGlmIChbY2hpbGQgX3Njcm9sbFRvQmVnaW5uaW5nT2ZEb2N1bWVudF0pCiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtNTY2LDcgKzU2Niw3IEBAIC0gKHZvaWQpc2Nyb2xsVG9FbmRPZkRv
Y3VtZW50OihpZClzZW5kZXIKICAgICBpZiAoW3NlbGYgX3Njcm9sbFRvRW5kT2ZEb2N1bWVudF0p
CiAgICAgICAgIHJldHVybjsKIAotICAgIGlmIChXZWJGcmFtZVZpZXcgKmNoaWxkID0gW3NlbGYg
X2xhcmdlc3RDaGlsZFdpdGhTY3JvbGxCYXJzXSkgeworICAgIGlmIChXZWJGcmFtZVZpZXcgKmNo
aWxkID0gW3NlbGYgX2xhcmdlc3RTY3JvbGxhYmxlQ2hpbGRdKSB7CiAgICAgICAgIGlmIChbY2hp
bGQgX3Njcm9sbFRvRW5kT2ZEb2N1bWVudF0pCiAgICAgICAgICAgICByZXR1cm47CiAgICAgfQpA
QCAtNjE5LDggKzYxOSw4IEBAIC0gKEJPT0wpX3BhZ2VWZXJ0aWNhbGx5OihCT09MKXVwCiAgICAg
aWYgKFtzZWxmIF9zY3JvbGxPdmVyZmxvd0luRGlyZWN0aW9uOnVwID8gU2Nyb2xsVXAgOiBTY3Jv
bGxEb3duIGdyYW51bGFyaXR5OlNjcm9sbEJ5UGFnZV0pCiAgICAgICAgIHJldHVybiBZRVM7CiAg
ICAgCi0gICAgaWYgKCFbc2VsZiBfaGFzU2Nyb2xsQmFyc10pCi0gICAgICAgIHJldHVybiBbW3Nl
bGYgX2xhcmdlc3RDaGlsZFdpdGhTY3JvbGxCYXJzXSBfcGFnZVZlcnRpY2FsbHk6dXBdOworICAg
IGlmICghW3NlbGYgX2lzU2Nyb2xsYWJsZV0pCisgICAgICAgIHJldHVybiBbW3NlbGYgX2xhcmdl
c3RTY3JvbGxhYmxlQ2hpbGRdIF9wYWdlVmVydGljYWxseTp1cF07CiAKICAgICBmbG9hdCBkZWx0
YSA9IFtzZWxmIF92ZXJ0aWNhbFBhZ2VTY3JvbGxEaXN0YW5jZV07CiAgICAgcmV0dXJuIFtzZWxm
IF9zY3JvbGxWZXJ0aWNhbGx5Qnk6dXAgPyAtZGVsdGEgOiBkZWx0YV07CkBAIC02MzEsOCArNjMx
LDggQEAgLSAoQk9PTClfcGFnZUhvcml6b250YWxseTooQk9PTClsZWZ0CiAgICAgaWYgKFtzZWxm
IF9zY3JvbGxPdmVyZmxvd0luRGlyZWN0aW9uOmxlZnQgPyBTY3JvbGxMZWZ0IDogU2Nyb2xsUmln
aHQgZ3JhbnVsYXJpdHk6U2Nyb2xsQnlQYWdlXSkKICAgICAgICAgcmV0dXJuIFlFUzsKIAotICAg
IGlmICghW3NlbGYgX2hhc1Njcm9sbEJhcnNdKQotICAgICAgICByZXR1cm4gW1tzZWxmIF9sYXJn
ZXN0Q2hpbGRXaXRoU2Nyb2xsQmFyc10gX3BhZ2VIb3Jpem9udGFsbHk6bGVmdF07CisgICAgaWYg
KCFbc2VsZiBfaXNTY3JvbGxhYmxlXSkKKyAgICAgICAgcmV0dXJuIFtbc2VsZiBfbGFyZ2VzdFNj
cm9sbGFibGVDaGlsZF0gX3BhZ2VIb3Jpem9udGFsbHk6bGVmdF07CiAgICAgCiAgICAgZmxvYXQg
ZGVsdGEgPSBbc2VsZiBfaG9yaXpvbnRhbFBhZ2VTY3JvbGxEaXN0YW5jZV07CiAgICAgcmV0dXJu
IFtzZWxmIF9zY3JvbGxIb3Jpem9udGFsbHlCeTpsZWZ0ID8gLWRlbHRhIDogZGVsdGFdOwpAQCAt
NjQzLDggKzY0Myw4IEBAIC0gKEJPT0wpX3Njcm9sbExpbmVWZXJ0aWNhbGx5OihCT09MKXVwCiAg
ICAgaWYgKFtzZWxmIF9zY3JvbGxPdmVyZmxvd0luRGlyZWN0aW9uOnVwID8gU2Nyb2xsVXAgOiBT
Y3JvbGxEb3duIGdyYW51bGFyaXR5OlNjcm9sbEJ5TGluZV0pCiAgICAgICAgIHJldHVybiBZRVM7
CiAKLSAgICBpZiAoIVtzZWxmIF9oYXNTY3JvbGxCYXJzXSkKLSAgICAgICAgcmV0dXJuIFtbc2Vs
ZiBfbGFyZ2VzdENoaWxkV2l0aFNjcm9sbEJhcnNdIF9zY3JvbGxMaW5lVmVydGljYWxseTp1cF07
CisgICAgaWYgKCFbc2VsZiBfaXNTY3JvbGxhYmxlXSkKKyAgICAgICAgcmV0dXJuIFtbc2VsZiBf
bGFyZ2VzdFNjcm9sbGFibGVDaGlsZF0gX3Njcm9sbExpbmVWZXJ0aWNhbGx5OnVwXTsKICAgICAK
ICAgICBmbG9hdCBkZWx0YSA9IFtzZWxmIF92ZXJ0aWNhbEtleWJvYXJkU2Nyb2xsRGlzdGFuY2Vd
OwogICAgIHJldHVybiBbc2VsZiBfc2Nyb2xsVmVydGljYWxseUJ5OnVwID8gLWRlbHRhIDogZGVs
dGFdOwpAQCAtNjU1LDggKzY1NSw4IEBAIC0gKEJPT0wpX3Njcm9sbExpbmVIb3Jpem9udGFsbHk6
KEJPT0wpbGUKICAgICBpZiAoW3NlbGYgX3Njcm9sbE92ZXJmbG93SW5EaXJlY3Rpb246bGVmdCA/
IFNjcm9sbExlZnQgOiBTY3JvbGxSaWdodCBncmFudWxhcml0eTpTY3JvbGxCeUxpbmVdKQogICAg
ICAgICByZXR1cm4gWUVTOwogCi0gICAgaWYgKCFbc2VsZiBfaGFzU2Nyb2xsQmFyc10pCi0gICAg
ICAgIHJldHVybiBbW3NlbGYgX2xhcmdlc3RDaGlsZFdpdGhTY3JvbGxCYXJzXSBfc2Nyb2xsTGlu
ZUhvcml6b250YWxseTpsZWZ0XTsKKyAgICBpZiAoIVtzZWxmIF9pc1Njcm9sbGFibGVdKQorICAg
ICAgICByZXR1cm4gW1tzZWxmIF9sYXJnZXN0U2Nyb2xsYWJsZUNoaWxkXSBfc2Nyb2xsTGluZUhv
cml6b250YWxseTpsZWZ0XTsKIAogICAgIGZsb2F0IGRlbHRhID0gW3NlbGYgX2hvcml6b250YWxL
ZXlib2FyZFNjcm9sbERpc3RhbmNlXTsKICAgICByZXR1cm4gW3NlbGYgX3Njcm9sbEhvcml6b250
YWxseUJ5OmxlZnQgPyAtZGVsdGEgOiBkZWx0YV07CkBAIC03MzAsNyArNzMwLDcgQEAgLSAodm9p
ZClrZXlEb3duOihOU0V2ZW50ICopZXZlbnQKICAgICAgICAgICAgICAgICAvLyBDaGVja2luZyBm
b3IgYSBjb250cm9sIHdpbGwgYWxsb3cgZXZlbnRzIHRvIHBlcmNvbGF0ZSAKICAgICAgICAgICAg
ICAgICAvLyBjb3JyZWN0bHkgd2hlbiB0aGUgZm9jdXMgaXMgb24gYSBmb3JtIGNvbnRyb2wgYW5k
IHdlCiAgICAgICAgICAgICAgICAgLy8gYXJlIGluIGZ1bGwga2V5Ym9hcmQgYWNjZXNzIG1vZGUu
Ci0gICAgICAgICAgICAgICAgaWYgKCghW3NlbGYgYWxsb3dzU2Nyb2xsaW5nXSAmJiAhW3NlbGYg
X2xhcmdlc3RDaGlsZFdpdGhTY3JvbGxCYXJzXSkgfHwgW3NlbGYgX2ZpcnN0UmVzcG9uZGVySXNG
b3JtQ29udHJvbF0pIHsKKyAgICAgICAgICAgICAgICBpZiAoKCFbc2VsZiBhbGxvd3NTY3JvbGxp
bmddICYmICFbc2VsZiBfbGFyZ2VzdFNjcm9sbGFibGVDaGlsZF0pIHx8IFtzZWxmIF9maXJzdFJl
c3BvbmRlcklzRm9ybUNvbnRyb2xdKSB7CiAgICAgICAgICAgICAgICAgICAgIGNhbGxTdXBlciA9
IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgfQpAQCAt
NzQyLDcgKzc0Miw3IEBAIC0gKHZvaWQpa2V5RG93bjooTlNFdmVudCAqKWV2ZW50CiAgICAgICAg
ICAgICAgICAgY2FsbFN1cGVyID0gTk87CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICBjYXNlIE5TUGFnZVVwRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICAgICAgaWYgKCFbc2Vs
ZiBhbGxvd3NTY3JvbGxpbmddICYmICFbc2VsZiBfbGFyZ2VzdENoaWxkV2l0aFNjcm9sbEJhcnNd
KSB7CisgICAgICAgICAgICAgICAgaWYgKCFbc2VsZiBhbGxvd3NTY3JvbGxpbmddICYmICFbc2Vs
ZiBfbGFyZ2VzdFNjcm9sbGFibGVDaGlsZF0pIHsKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1
cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9
CkBAIC03NTAsNyArNzUwLDcgQEAgLSAodm9pZClrZXlEb3duOihOU0V2ZW50ICopZXZlbnQKICAg
ICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBOTzsKICAgICAgICAgICAgICAgICBicmVhazsKICAg
ICAgICAgICAgIGNhc2UgTlNQYWdlRG93bkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgICAgIGlm
ICghW3NlbGYgYWxsb3dzU2Nyb2xsaW5nXSAmJiAhW3NlbGYgX2xhcmdlc3RDaGlsZFdpdGhTY3Jv
bGxCYXJzXSkgeworICAgICAgICAgICAgICAgIGlmICghW3NlbGYgYWxsb3dzU2Nyb2xsaW5nXSAm
JiAhW3NlbGYgX2xhcmdlc3RTY3JvbGxhYmxlQ2hpbGRdKSB7CiAgICAgICAgICAgICAgICAgICAg
IGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICAgICAgfQpAQCAtNzU4LDcgKzc1OCw3IEBAIC0gKHZvaWQpa2V5RG93bjooTlNFdmVudCAqKWV2
ZW50CiAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gTk87CiAgICAgICAgICAgICAgICAgYnJl
YWs7CiAgICAgICAgICAgICBjYXNlIE5TSG9tZUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgICAg
IGlmICghW3NlbGYgYWxsb3dzU2Nyb2xsaW5nXSAmJiAhW3NlbGYgX2xhcmdlc3RDaGlsZFdpdGhT
Y3JvbGxCYXJzXSkgeworICAgICAgICAgICAgICAgIGlmICghW3NlbGYgYWxsb3dzU2Nyb2xsaW5n
XSAmJiAhW3NlbGYgX2xhcmdlc3RTY3JvbGxhYmxlQ2hpbGRdKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGNhbGxTdXBlciA9IFlFUzsKICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
ICAgICAgICAgfQpAQCAtNzY2LDcgKzc2Niw3IEBAIC0gKHZvaWQpa2V5RG93bjooTlNFdmVudCAq
KWV2ZW50CiAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gTk87CiAgICAgICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgICAgICBjYXNlIE5TRW5kRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICAg
ICAgaWYgKCFbc2VsZiBhbGxvd3NTY3JvbGxpbmddICYmICFbc2VsZiBfbGFyZ2VzdENoaWxkV2l0
aFNjcm9sbEJhcnNdKSB7CisgICAgICAgICAgICAgICAgaWYgKCFbc2VsZiBhbGxvd3NTY3JvbGxp
bmddICYmICFbc2VsZiBfbGFyZ2VzdFNjcm9sbGFibGVDaGlsZF0pIHsKICAgICAgICAgICAgICAg
ICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgICAgICAgICB9CkBAIC03NzksNyArNzc5LDcgQEAgLSAodm9pZClrZXlEb3duOihOU0V2ZW50
ICopZXZlbnQKICAgICAgICAgICAgICAgICAgICAgY2FsbFN1cGVyID0gWUVTOwogICAgICAgICAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgaWYg
KCghW3NlbGYgYWxsb3dzU2Nyb2xsaW5nXSAmJiAhW3NlbGYgX2xhcmdlc3RDaGlsZFdpdGhTY3Jv
bGxCYXJzXSkgfHwKKyAgICAgICAgICAgICAgICBpZiAoKCFbc2VsZiBhbGxvd3NTY3JvbGxpbmdd
ICYmICFbc2VsZiBfbGFyZ2VzdFNjcm9sbGFibGVDaGlsZF0pIHx8CiAgICAgICAgICAgICAgICAg
ICAgIFtbW3NlbGYgd2luZG93XSBmaXJzdFJlc3BvbmRlcl0gaXNLaW5kT2ZDbGFzczpbTlNQb3BV
cEJ1dHRvbiBjbGFzc11dKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIExldCBhcnJvdyBrZXlz
IGdvIHRocm91Z2ggdG8gcG9wIHVwIGJ1dHRvbnMKICAgICAgICAgICAgICAgICAgICAgLy8gPHJk
YXI6Ly9wcm9ibGVtLzM0NTU5MTA+OiBoaXR0aW5nIHVwIG9yIGRvd24gYXJyb3dzIHdoZW4gZm9j
dXMgaXMgb24gYSAKQEAgLTgwMiw3ICs4MDIsNyBAQCAtICh2b2lkKWtleURvd246KE5TRXZlbnQg
KilldmVudAogICAgICAgICAgICAgICAgICAgICBjYWxsU3VwZXIgPSBZRVM7CiAgICAgICAgICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBpZiAo
KCFbc2VsZiBhbGxvd3NTY3JvbGxpbmddICYmICFbc2VsZiBfbGFyZ2VzdENoaWxkV2l0aFNjcm9s
bEJhcnNdKSB8fAorICAgICAgICAgICAgICAgIGlmICgoIVtzZWxmIGFsbG93c1Njcm9sbGluZ10g
JiYgIVtzZWxmIF9sYXJnZXN0U2Nyb2xsYWJsZUNoaWxkXSkgfHwKICAgICAgICAgICAgICAgICAg
ICAgW1tbc2VsZiB3aW5kb3ddIGZpcnN0UmVzcG9uZGVyXSBpc0tpbmRPZkNsYXNzOltOU1BvcFVw
QnV0dG9uIGNsYXNzXV0pIHsKICAgICAgICAgICAgICAgICAgICAgLy8gTGV0IGFycm93IGtleXMg
Z28gdGhyb3VnaCB0byBwb3AgdXAgYnV0dG9ucwogICAgICAgICAgICAgICAgICAgICAvLyA8cmRh
cjovL3Byb2JsZW0vMzQ1NTkxMD46IGhpdHRpbmcgdXAgb3IgZG93biBhcnJvd3Mgd2hlbiBmb2N1
cyBpcyBvbiBhIApAQCAtODM0LDcgKzgzNCw3IEBAIC0gKHZvaWQpa2V5RG93bjooTlNFdmVudCAq
KWV2ZW50CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIF9nb0JhY2tdOwogICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIE5vdyBjaGVjayBzY3JvbGxpbmcg
cmVsYXRlZCBrZXlzLgotICAgICAgICAgICAgICAgICAgICBpZiAoKCFbc2VsZiBhbGxvd3NTY3Jv
bGxpbmddICYmICFbc2VsZiBfbGFyZ2VzdENoaWxkV2l0aFNjcm9sbEJhcnNdKSkgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoKCFbc2VsZiBhbGxvd3NTY3JvbGxpbmddICYmICFbc2VsZiBfbGFy
Z2VzdFNjcm9sbGFibGVDaGlsZF0pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsU3Vw
ZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICAgICAgfQpAQCAtODYyLDcgKzg2Miw3IEBAIC0gKHZvaWQpa2V5RG93bjooTlNFdmVudCAqKWV2
ZW50CiAgICAgICAgICAgICAgICAgICAgIFtzZWxmIF9nb0ZvcndhcmRdOwogICAgICAgICAgICAg
ICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIE5vdyBjaGVjayBzY3JvbGxpbmcg
cmVsYXRlZCBrZXlzLgotICAgICAgICAgICAgICAgICAgICBpZiAoKCFbc2VsZiBhbGxvd3NTY3Jv
bGxpbmddICYmICFbc2VsZiBfbGFyZ2VzdENoaWxkV2l0aFNjcm9sbEJhcnNdKSkgeworICAgICAg
ICAgICAgICAgICAgICBpZiAoKCFbc2VsZiBhbGxvd3NTY3JvbGxpbmddICYmICFbc2VsZiBfbGFy
Z2VzdFNjcm9sbGFibGVDaGlsZF0pKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICBjYWxsU3Vw
ZXIgPSBZRVM7CiAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg
ICAgICAgfQpAQCAtOTM5LDE0ICs5MzksNDggQEAgLSAoZmxvYXQpX2FyZWEKICAgICByZXR1cm4g
ZnJhbWUuc2l6ZS5oZWlnaHQgKiBmcmFtZS5zaXplLndpZHRoOwogfQogCistIChCT09MKV9pc1Nj
cm9sbGFibGUKK3sKKyAgICBXZWJEeW5hbWljU2Nyb2xsQmFyc1ZpZXcgKnNjcm9sbFZpZXcgPSBb
c2VsZiBfc2Nyb2xsVmlld107CisgICAgcmV0dXJuIFtzY3JvbGxWaWV3IGhvcml6b250YWxTY3Jv
bGxpbmdBbGxvd2VkXSB8fCBbc2Nyb2xsVmlldyB2ZXJ0aWNhbFNjcm9sbGluZ0FsbG93ZWRdOwor
fQorCistIChXZWJGcmFtZVZpZXcgKilfbGFyZ2VzdFNjcm9sbGFibGVDaGlsZAoreworICAgIFdl
YkZyYW1lVmlldyAqbGFyZ2VzdCA9IG5pbDsKKyAgICBOU0FycmF5ICpmcmFtZUNoaWxkcmVuID0g
W1tzZWxmIHdlYkZyYW1lXSBjaGlsZEZyYW1lc107CisgICAgCisgICAgdW5zaWduZWQgaTsKKyAg
ICBmb3IgKGk9MDsgaSA8IFtmcmFtZUNoaWxkcmVuIGNvdW50XTsgaSsrKSB7CisgICAgICAgIFdl
YkZyYW1lVmlldyAqY2hpbGRGcmFtZVZpZXcgPSBbW2ZyYW1lQ2hpbGRyZW4gb2JqZWN0QXRJbmRl
eDppXSBmcmFtZVZpZXddOworICAgICAgICBXZWJGcmFtZVZpZXcgKnNjcm9sbGFibGVGcmFtZVZp
ZXcgPSBbY2hpbGRGcmFtZVZpZXcgX2lzU2Nyb2xsYWJsZV0gPyBjaGlsZEZyYW1lVmlldyA6IFtj
aGlsZEZyYW1lVmlldyBfbGFyZ2VzdFNjcm9sbGFibGVDaGlsZF07CisgICAgICAgIGlmICghc2Ny
b2xsYWJsZUZyYW1lVmlldykKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAKKyAgICAg
ICAgLy8gU29tZSBhZHMgbHVyayBpbiBjaGlsZCBmcmFtZXMgb2YgemVybyB3aWR0aCBhbmQgaGVp
Z2h0LCBzZWUgcmFkYXIgNDQwNjk5NC4gVGhlc2UgZG9uJ3QgY291bnQgYXMgc2Nyb2xsYWJsZS4K
KyAgICAgICAgLy8gTWF5YmUgc29tZWRheSB3ZSdsbCBkaXNjb3ZlciB0aGF0IHRoaXMgbWluaW11
bSBhcmVhIGNoZWNrIHNob3VsZCBiZSBsYXJnZXIsIGJ1dCB0aGlzIGNvdmVycyB0aGUga25vd24g
Y2FzZXMuCisgICAgICAgIGZsb2F0IGFyZWEgPSBbc2Nyb2xsYWJsZUZyYW1lVmlldyBfYXJlYV07
CisgICAgICAgIGlmIChhcmVhIDwgMS4wKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IAorICAgICAgICBpZiAoIWxhcmdlc3QgfHwgKGFyZWEgPiBbbGFyZ2VzdCBfYXJlYV0pKSB7Cisg
ICAgICAgICAgICBsYXJnZXN0ID0gc2Nyb2xsYWJsZUZyYW1lVmlldzsKKyAgICAgICAgfQorICAg
IH0KKyAgICAKKyAgICByZXR1cm4gbGFyZ2VzdDsKK30KKwogLSAoQk9PTClfaGFzU2Nyb2xsQmFy
cwogeworICAgIC8vIEZJWE1FOiBUaGlzIG1ldGhvZCBpcyBubyBsb25nZXIgdXNlZCBieSBTYWZh
cmkuIEl0IGNhbiBwcm9iYWJseSBiZSByZW1vdmVkLgogICAgIE5TU2Nyb2xsVmlldyAqc2Nyb2xs
VmlldyA9IFtzZWxmIF9zY3JvbGxWaWV3XTsKICAgICByZXR1cm4gW3Njcm9sbFZpZXcgaGFzSG9y
aXpvbnRhbFNjcm9sbGVyXSB8fCBbc2Nyb2xsVmlldyBoYXNWZXJ0aWNhbFNjcm9sbGVyXTsKIH0K
IAogLSAoV2ViRnJhbWVWaWV3ICopX2xhcmdlc3RDaGlsZFdpdGhTY3JvbGxCYXJzCiB7CisgICAg
Ly8gRklYTUU6IFRoaXMgbWV0aG9kIGlzIG5vIGxvbmdlciB1c2VkIGJ5IFNhZmFyaS4gSXQgY2Fu
IHByb2JhYmx5IGJlIHJlbW92ZWQuCiAgICAgV2ViRnJhbWVWaWV3ICpsYXJnZXN0ID0gbmlsOwog
ICAgIE5TQXJyYXkgKmZyYW1lQ2hpbGRyZW4gPSBbW3NlbGYgd2ViRnJhbWVdIGNoaWxkRnJhbWVz
XTsKICAgICAKSW5kZXg6IFdlYktpdC9tYWMvV2ViVmlldy9XZWJGcmFtZVZpZXdQcml2YXRlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZyYW1lVmlld1ByaXZhdGUuaAko
cmV2aXNpb24gNTU5NzQpCisrKyBXZWJLaXQvbWFjL1dlYlZpZXcvV2ViRnJhbWVWaWV3UHJpdmF0
ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxMyArMzAsMTUgQEAKIAogQGludGVyZmFjZSBXZWJG
cmFtZVZpZXcgKFdlYlByaXZhdGUpCiAKKy8vIEZJWE1FOiBUaGlzIG1ldGhvZCBpcyBubyBsb25n
ZXIgdXNlZCBieSBTYWZhcmkuIEl0IGNhbiBwcm9iYWJseSBiZSByZW1vdmVkLgogLyohCiAgICAg
QG1ldGhvZCBfbGFyZ2VzdENoaWxkV2l0aFNjcm9sbEJhcnMKICAgICBAYWJzdHJhY3QgT2YgdGhl
IGNoaWxkIFdlYkZyYW1lVmlld3MgdGhhdCBhcmUgZGlzcGxheWluZyBzY3JvbGwgYmFycywgZGV0
ZXJtaW5lcyB3aGljaCBoYXMgdGhlIGxhcmdlc3QgYXJlYS4KICAgICBAcmVzdWx0IEEgY2hpbGQg
V2ViRnJhbWVWaWV3IHRoYXQgaXMgZGlzcGxheWluZyBzY3JvbGwgYmFycywgb3IgbmlsIGlmIG5v
bmUuCi0qLworICovCiAtIChXZWJGcmFtZVZpZXcgKilfbGFyZ2VzdENoaWxkV2l0aFNjcm9sbEJh
cnM7CiAKKy8vIEZJWE1FOiBUaGlzIG1ldGhvZCBpcyBubyBsb25nZXIgdXNlZCBieSBTYWZhcmku
IEl0IGNhbiBwcm9iYWJseSBiZSByZW1vdmVkLgogLyohCiAgICAgQG1ldGhvZCBfaGFzU2Nyb2xs
QmFycwogICAgIEByZXN1bHQgWUVTIGlmIGF0IGxlYXN0IG9uZSBzY3JvbGwgYmFyIGlzIGN1cnJl
bnRseSBkaXNwbGF5ZWQKQEAgLTQ0LDYgKzQ2LDIxIEBAIEBpbnRlcmZhY2UgV2ViRnJhbWVWaWV3
IChXZWJQcml2YXRlKQogLSAoQk9PTClfaGFzU2Nyb2xsQmFyczsKIAogLyohCisgICAgQG1ldGhv
ZCBfbGFyZ2VzdFNjcm9sbGFibGVDaGlsZAorICAgIEBhYnN0cmFjdCBPZiB0aGUgY2hpbGQgV2Vi
RnJhbWVWaWV3cyB0aGF0IGFsbG93IHNjcm9sbGluZywgZGV0ZXJtaW5lcyB3aGljaCBoYXMgdGhl
IGxhcmdlc3QgYXJlYS4KKyAgICBAcmVzdWx0IEEgY2hpbGQgV2ViRnJhbWVWaWV3IHRoYXQgaXMg
c2Nyb2xsYWJsZSwgb3IgbmlsIGlmIG5vbmUuCisgKi8KKy0gKFdlYkZyYW1lVmlldyAqKV9sYXJn
ZXN0U2Nyb2xsYWJsZUNoaWxkOworCisvKiEKKyAgICBAbWV0aG9kIF9pc1Njcm9sbGFibGUKKyAg
ICBAcmVzdWx0IFlFUyBpZiBzY3JvbGxpbmcgaXMgY3VycmVudGx5IHBvc3NpYmxlLCB3aGV0aGVy
IG9yIG5vdCBzY3JvbGwgYmFycyBhcmUgY3VycmVudGx5IHNob3dpbmcuIFRoaXMKKyAgICBkaWZm
ZXJzIGZyb20gLWFsbG93c1Njcm9sbGluZyBpbiB0aGF0IHRoZSBsYXR0ZXIgbWV0aG9kIG9ubHkg
Y2hlY2tzIHdoZXRoZXIgc2Nyb2xsaW5nIGhhcyBiZWVuCisgICAgZXhwbGljaXRseSBkaXNhbGxv
d2VkIHZpYSBhIGNhbGwgdG8gc2V0QWxsb3dzU2Nyb2xsaW5nOk5PLgorICovCistIChCT09MKV9p
c1Njcm9sbGFibGU7CisKKy8qIQogICAgIEBtZXRob2QgX2NvbnRlbnRWaWV3CiAgICAgQHJlc3Vs
dCBUaGUgY29udGVudCB2aWV3IChOU0NsaXBWaWV3KSBvZiB0aGUgV2ViRnJhbWVWaWV3J3Mgc2Ny
b2xsIHZpZXcuCiAgKi8K
</data>
<flag name="review"
          id="33889"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>