<?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>13303</bug_id>
          
          <creation_ts>2007-04-07 15:48:29 -0700</creation_ts>
          <short_desc>REGRESSION: controls in a background Safari window maintain active appearance if the address bar has focus</short_desc>
          <delta_ts>2007-04-16 09:00:01 -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>Forms</component>
          <version>523.x (Safari 3)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</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>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>mitz</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>adele</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>15358</commentid>
    <comment_count>0</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-04-07 15:48:29 -0700</bug_when>
    <thetext>Summary:
Mac-themed popup buttons, radio buttons, checkboxes and sliders maintain their &quot;active&quot; appearance (the dark color behind the arrows) in a background Safari window if the window is made background while the address bar has focus.

Steps to reproduce:
1) Go to a URL with a popup, e.g. &lt;data:text/html,%3Cselect%3E%3Coption%3Epick%20me!%3C/option%3E%3C/select%3E&gt;.
2) Click in Safari&apos;s address bar.
3) Click on the desktop to send the window to the background.

Expected results:
In step 3, the popup button should lose its active appearance (the dark background behind the arrows).

Actual results:
The popup button maintains active appearance.

Notes:
Those widgets do become inactive if the WebView is first responder when sending the window to the background.

Regression:
This is a regression from shipping WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15352</commentid>
    <comment_count>1</comment_count>
    <who name="">mitz</who>
    <bug_when>2007-04-07 15:54:51 -0700</bug_when>
    <thetext>Forcing a repaint corrects the widgets&apos; appearance. Using Quartz Debug you can see that if the WebView is first responder when sending the window to the background, the widgets repaint, but if the address bar is first responder, they don&apos;t.

(To force a repaint while the window is in the background, have another tab open in the window and command-click that tab to switch to it while keeping the window in the background).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15129</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-04-10 09:24:19 -0700</bug_when>
    <thetext>The problem here is that repainting the widgets when the control tint changes is done in Frame::setIsActive. But the rule for when the widgets have active vs. inactive tint is not &quot;is active&quot;.

Should not be too difficult to fix. Will require changes to Frame and to WebHTMLView as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>15078</commentid>
    <comment_count>3</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-04-11 01:05:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/5126341&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>14702</commentid>
    <comment_count>4</comment_count>
      <attachid>14046</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-04-15 19:52:35 -0700</bug_when>
    <thetext>Created attachment 14046
patch that updates the tint based on the appropriate AppKit method</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>14691</commentid>
    <comment_count>5</comment_count>
      <attachid>14046</attachid>
    <who name="John Sullivan">sullivan</who>
    <bug_when>2007-04-15 21:27:41 -0700</bug_when>
    <thetext>Comment on attachment 14046
patch that updates the tint based on the appropriate AppKit method

I think the names &quot;setSecureKeyboardEntry()&quot; and &quot;setNeedsSecureKeyboardEntry()&quot; are confusingly similar.

Also, you probably realize that you could learn of changes to the window&apos;s key state by listening to NSWindowDidBecomeKey/NSWindowDidResignKey rather than using _windowChangedKeyState. I presume you chose _windowChangedKeystate for simplicity/performance. Maybe worth a comment.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>14687</commentid>
    <comment_count>6</comment_count>
      <attachid>14046</attachid>
    <who name="">mitz</who>
    <bug_when>2007-04-15 22:41:44 -0700</bug_when>
    <thetext>Comment on attachment 14046
patch that updates the tint based on the appropriate AppKit method

Typo:
+    // We do a &quot;fake&quot; paintm, and when the theme gets a paint call, it can then do an invalidate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>14569</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-04-16 08:32:21 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I think the names &quot;setSecureKeyboardEntry()&quot; and
&gt; &quot;setNeedsSecureKeyboardEntry()&quot; are confusingly similar.

OK. Maybe I can think of better names.

&gt; Also, you probably realize that you could learn of changes to the window&apos;s key
&gt; state by listening to NSWindowDidBecomeKey/NSWindowDidResignKey rather than
&gt; using _windowChangedKeyState. I presume you chose _windowChangedKeystate for
&gt; simplicity/performance. Maybe worth a comment.

Actually, _windowChangedKeystate sounds like it&apos;s the same thing as NSWindowDidBecomeKey, but it&apos;s actually *quite* a bit different. It does just the right thing for control appearance which is way more than just &quot;is this particular window key&quot;. I would like to add a comment about that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>14571</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-04-16 09:00:01 -0700</bug_when>
    <thetext>Sending        WebCore/ChangeLog
Sending        WebCore/WebCore.exp
Sending        WebCore/html/HTMLInputElement.cpp
Sending        WebCore/page/Frame.cpp
Sending        WebCore/page/Frame.h
Sending        WebCore/page/FramePrivate.h
Sending        WebCore/page/FrameView.cpp
Sending        WebCore/page/FrameView.h
Sending        WebCore/page/mac/FrameMac.mm
Sending        WebCore/rendering/RenderTheme.cpp
Sending        WebCore/rendering/RenderThemeMac.mm
Sending        WebKit/ChangeLog
Sending        WebKit/WebView/WebHTMLView.mm
Transmitting file data .............
Committed revision 20901.
</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14046</attachid>
            <date>2007-04-15 19:52:35 -0700</date>
            <delta_ts>2007-04-15 21:27:41 -0700</delta_ts>
            <desc>patch that updates the tint based on the appropriate AppKit method</desc>
            <filename>TintPatch.txt</filename>
            <type>text/plain</type>
            <size>20653</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMDg5OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNTIgQEAKKzIwMDctMDQtMTUgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdBUk5J
Tkc6IE5PIFRFU1QgQ0FTRVMgQURERUQgT1IgQ0hBTkdFRAorCisgICAgICAgIC0gZml4IGh0dHA6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzMzAzCisgICAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzUxMjYzNDE+IFJFR1JFU1NJT046IGNvbnRyb2xzIGluIGEgYmFja2dyb3VuZCBT
YWZhcmkgd2luZG93CisgICAgICAgICAgbWFpbnRhaW4gYWN0aXZlIGFwcGVhcmFuY2UgaWYgdGhl
IGFkZHJlc3MgYmFyIGhhcyBmb2N1cyAoMTMzMDMpCisKKyAgICAgICAgLSBmaXggYSByZWxhdGVk
IHByb2JsZW0gd2hlcmUgZWxlbWVudHMgY291bGQgbG9vayBmb2N1c2VkIGluIG5vbi1hY3RpdmUg
d2luZG93cworCisgICAgICAgIC0gc2ltcGxpZnkgc2VjdXJlIGtleWJvYXJkIGVudHJ5IGxvZ2lj
IGluIEZyYW1lOjpzZXRJc0FjdGl2ZQorCisgICAgICAgICogV2ViQ29yZS5leHA6IEFkZCB0d28g
bmV3IHN5bWJvbHMgZm9yIHVzZSBieSBXZWJLaXQuCisKKyAgICAgICAgKiBodG1sL0hUTUxJbnB1
dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTElucHV0RWxlbWVudDo6ZGlzcGF0
Y2hGb2N1c0V2ZW50KTogQ2FsbCBzZXROZWVkc1NlY3VyZUtleWJvYXJkRW50cnkgcmF0aGVyIHRo
YW4KKyAgICAgICAgY2FsbGluZyBzZXRTZWN1cmVLZXlib2FyZEVudHJ5IGRpcmVjdGx5IC0tIGRv
ZXMgbm90aGluZyBpZiB0aGUgZnJhbWUgaXMgbm90IGFjdGl2ZS4KKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxJbnB1dEVsZW1lbnQ6OmRpc3BhdGNoQmx1ckV2ZW50KTogRGl0dG8uCisKKyAgICAgICAg
KiBwYWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpzZXROZWVkc1NlY3Vy
ZUtleWJvYXJkRW50cnkpOiBBZGRlZC4gQ2FsbHMgc2V0U2VjdXJlS2V5Ym9hcmRFbnRyeSBvbmx5
IGlmCisgICAgICAgIHRoZSBmcmFtZSBpcyBhY3RpdmUsIGJ1dCBhbHNvIHN0b3JlcyBhd2F5IHRo
ZSAibmVlZHMgc2VjdXJlIGVudHJ5IiBzdGF0ZSwgc28gdGhhdCB0aGUKKyAgICAgICAgc2V0SXNB
Y3RpdmUgZnVuY3Rpb24gZG9lc24ndCBoYXZlIHRvIHJlY29tcHV0ZSBpdC4KKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lOjpzZXRJc0FjdGl2ZSk6IFJld3JvdGUgYWxsIHRoZSBjb21tZW50cyBpbiB0
aGUgZnVuY3Rpb24uIFJlbW92ZWQgdGhlIGNvZGUKKyAgICAgICAgdG8gbWFuYWdlIGNvbnRyb2wg
dGludHMsIHdoaWNoIGFyZSBub3QgYmFzZWQgb24gdGhlIHdoZXRoZXIgdGhlIGZyYW1lIGlzIGFj
dGl2ZSBidXQgcmF0aGVyCisgICAgICAgIG9uIEFwcEtpdCdzIGNvbmNlcHQgb2Ygd2hldGhlciB0
aGUgd2luZG93IHNob3VsZCBoYXZlICJrZXkgYXBwZWFyYW5jZSIuIFNpbXBsaWZpZWQgdGhlCisg
ICAgICAgIGxvZ2ljIGFib3V0IHdoZW4gdG8gY2FsbCBzZXRTZWN1cmVLZXlib2FyZEVudHJ5IGJ5
IHVzaW5nIG1fbmVlZHNTZWN1cmVLZXlib2FyZEVudHJ5LgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVQcml2YXRlOjpGcmFtZVByaXZhdGUpOiBJbml0aWFsaXplIG1fbmVlZHNTZWN1cmVLZXlib2Fy
ZEVudHJ5LgorICAgICAgICAqIHBhZ2UvRnJhbWUuaDogTWFkZSBzZXRTZWN1cmVLZXlib2FyZEVu
dHJ5IHByaXZhdGUsIHJlbW92ZWQgaXNTZWN1cmVLZXlib2FyZEVudHJ5LCBhbmQKKyAgICAgICAg
YWRkZWQgc2V0TmVlZHNTZWN1cmVLZXlib2FyZEVudHJ5LgorICAgICAgICAqIHBhZ2UvRnJhbWVQ
cml2YXRlLmg6IEFkZGVkIG1fbmVlZHNTZWN1cmVLZXlib2FyZEVudHJ5LgorICAgICAgICAqIHBh
Z2UvbWFjL0ZyYW1lTWFjLm1tOiAoV2ViQ29yZTo6RnJhbWU6OnNldFNlY3VyZUtleWJvYXJkRW50
cnkpOiBBZGRlZCBhbiBhc3NlcnRpb24sCisgICAgICAgIGFuZCByZW1vdmVkIGlzU2VjdXJlS2V5
Ym9hcmRFbnRyeSgpLgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDogQWRkZWQgdXBkYXRl
Q29udHJvbFRpbnRzLgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDogKFdlYkNvcmU6OkZy
YW1lVmlldzo6dXBkYXRlQ29udHJvbFRpbnRzKTogQWRkZWQuIENvZGUgd2FzIG1vdmVkCisgICAg
ICAgIGhlcmUgZnJvbSBzZXRJc0FjdGl2ZSBmb3IgdHdvIHJlYXNvbnM6ICgxKSBpdCBtYWtlcyBt
b3JlIHNlbnNlIGluIHRoZSB2aWV3IGNsYXNzLCBhbmQKKyAgICAgICAgKDIpIGl0IG5lZWRzIHRv
IGJlIGNhbGxlZCBhdCB0aGUgYXBwcm9wcmlhdGUgdGltZSBmb3IgQXBwS2l0LCBub3Qgd2hlbiBh
Y3RpdmUgY2hhbmdlcy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZS5jcHA6IChX
ZWJDb3JlOjpSZW5kZXJUaGVtZTo6aXNGb2N1c2VkKTogQWRkZWQgYW4gaXNBY3RpdmUKKyAgICAg
ICAgY2hlY2sgaGVyZSB0byBtYXRjaCB0aGUgbG9naWMgaW4gdGhlIGltcGxlbWVudGF0aW9uIG9m
IHRoZSBDU1MgcHNldWRvLXN0YXRlLgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1h
Yy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRoZW1lTWFjOjp1cGRhdGVGb2N1c2VkU3Rh
dGUpOiBVc2UgdGhlIGlzRm9jdXNlZCBmdW5jdGlvbiBpbnN0ZWFkIG9mCisgICAgICAgIHJlcGVh
dGluZyB0aGUgbG9naWMgaGVyZS4gUmVtb3ZlZCB0aGUgIm5lZWQgdG8gYWRkIGEga2V5IHdpbmRv
dyB0ZXN0IGhlcmUiIGNvbW1lbnQuCisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZU1hYzo6
Y29udHJvbFN1cHBvcnRzVGludHMpOiBBZGRlZCBhIGNvbW1lbnQgYWJvdXQgdGhlIE5TQ2VsbAor
ICAgICAgICBTUEkgdGhhdCdzIHJlbGF0ZWQgdG8gdGhlIF93aW5kb3dDaGFuZ2VkS2V5U3RhdGUg
bWV0aG9kIHdlIG5vdyB1c2UgaW4gV2ViSFRNTFZpZXcuCisKIDIwMDctMDQtMTMgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUGF0Y2ggYW5kIHJldmlldyBi
eSBoeWF0dC4gIFRlc3RpbmcgYW5kIGxhbmRpbmcgYnkgZGRraWx6ZXIuCkluZGV4OiBXZWJDb3Jl
L1dlYkNvcmUuZXhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvV2ViQ29yZS5leHAJKHJldmlzaW9u
IDIwODk3KQorKysgV2ViQ29yZS9XZWJDb3JlLmV4cAkod29ya2luZyBjb3B5KQpAQCAtNDQwLDYg
KzQ0MCw3IEBAIF9fWk43V2ViQ29yZThwYXJzZVVSTEVSS05TXzZTdHJpbmdFCiBfX1pON1dlYkNv
cmU5RmxvYXRSZWN0QzFFUks3X05TUmVjdAogX19aTjdXZWJDb3JlOUZyYW1lVHJlZTExYXBwZW5k
Q2hpbGRFTjNXVEYxMFBhc3NSZWZQdHJJTlNfNUZyYW1lRUVFCiBfX1pON1dlYkNvcmU5RnJhbWVU
cmVlN3NldE5hbWVFUktOU18xMkF0b21pY1N0cmluZ0UKK19fWk43V2ViQ29yZTlGcmFtZVZpZXcx
OHVwZGF0ZUNvbnRyb2xUaW50c0V2CiBfX1pON1dlYkNvcmU5SFRNTE5hbWVzMTBsaXN0aW5nVGFn
RQogX19aTjdXZWJDb3JlOUhUTUxOYW1lczEzYmxvY2txdW90ZVRhZ0UKIF9fWk43V2ViQ29yZTlI
VE1MTmFtZXM0YVRhZ0UKQEAgLTU3MSw2ICs1NzIsNyBAQCBfX1pOSzdXZWJDb3JlNUZyYW1lMzFm
b250QXR0cmlidXRlc0ZvclNlCiBfX1pOSzdXZWJDb3JlNUZyYW1lMzNyZW1vdmVFZGl0aW5nU3R5
bGVGcm9tQm9keUVsZW1lbnRFdgogX19aTks3V2ViQ29yZTVGcmFtZTRwYWdlRXYKIF9fWk5LN1dl
YkNvcmU1RnJhbWU0dHJlZUV2CitfX1pOSzdXZWJDb3JlNUZyYW1lNHZpZXdFdgogX19aTks3V2Vi
Q29yZTVGcmFtZTZicmlkZ2VFdgogX19aTks3V2ViQ29yZTVGcmFtZTZlZGl0b3JFdgogX19aTks3
V2ViQ29yZTVGcmFtZTZsb2FkZXJFdgpJbmRleDogV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1l
bnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcAko
cmV2aXNpb24gMjA4OTcpCisrKyBXZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTIzMiw3ICsyMzIsNyBAQCB2b2lkIEhUTUxJbnB1dEVsZW1lbnQ6OmRp
c3BhdGNoRm9jdXNFdmVuCiAgICAgaWYgKGlzVGV4dEZpZWxkKCkpIHsKICAgICAgICAgc2V0QXV0
b2ZpbGxlZChmYWxzZSk7CiAgICAgICAgIGlmIChpbnB1dFR5cGUoKSA9PSBQQVNTV09SRCAmJiBk
b2N1bWVudCgpLT5mcmFtZSgpKQotICAgICAgICAgICAgZG9jdW1lbnQoKS0+ZnJhbWUoKS0+c2V0
U2VjdXJlS2V5Ym9hcmRFbnRyeSh0cnVlKTsKKyAgICAgICAgICAgIGRvY3VtZW50KCktPmZyYW1l
KCktPnNldE5lZWRzU2VjdXJlS2V5Ym9hcmRFbnRyeSh0cnVlKTsKICAgICB9CiAgICAgSFRNTEdl
bmVyaWNGb3JtRWxlbWVudDo6ZGlzcGF0Y2hGb2N1c0V2ZW50KCk7CiB9CkBAIC0yNDEsNyArMjQx
LDcgQEAgdm9pZCBIVE1MSW5wdXRFbGVtZW50OjpkaXNwYXRjaEJsdXJFdmVudAogewogICAgIGlm
IChpc1RleHRGaWVsZCgpICYmIGRvY3VtZW50KCktPmZyYW1lKCkpIHsKICAgICAgICAgaWYgKGlu
cHV0VHlwZSgpID09IFBBU1NXT1JEKQotICAgICAgICAgICAgZG9jdW1lbnQoKS0+ZnJhbWUoKS0+
c2V0U2VjdXJlS2V5Ym9hcmRFbnRyeShmYWxzZSk7CisgICAgICAgICAgICBkb2N1bWVudCgpLT5m
cmFtZSgpLT5zZXROZWVkc1NlY3VyZUtleWJvYXJkRW50cnkoZmFsc2UpOwogICAgICAgICBkb2N1
bWVudCgpLT5mcmFtZSgpLT50ZXh0RmllbGREaWRFbmRFZGl0aW5nKHRoaXMpOwogICAgIH0KICAg
ICBIVE1MR2VuZXJpY0Zvcm1FbGVtZW50OjpkaXNwYXRjaEJsdXJFdmVudCgpOwpJbmRleDogV2Vi
Q29yZS9wYWdlL0ZyYW1lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRnJhbWUuY3Bw
CShyZXZpc2lvbiAyMDg5NykKKysrIFdlYkNvcmUvcGFnZS9GcmFtZS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTc3MCwxNiArNzcwLDIyIEBAIGJvb2wgRnJhbWU6OmlzQ29udGVudEVkaXRhYmxlKCkg
Y29uc3QgCiB9CiAKICNpZiAhUExBVEZPUk0oTUFDKQorCiB2b2lkIEZyYW1lOjpzZXRTZWN1cmVL
ZXlib2FyZEVudHJ5KGJvb2wpCiB7CiB9CiAKLWJvb2wgRnJhbWU6OmlzU2VjdXJlS2V5Ym9hcmRF
bnRyeSgpCisjZW5kaWYKKwordm9pZCBGcmFtZTo6c2V0TmVlZHNTZWN1cmVLZXlib2FyZEVudHJ5
KGJvb2wgbmVlZHNTZWN1cmVLZXlib2FyZCkKIHsKLSAgICByZXR1cm4gZmFsc2U7Ci19CisgICAg
aWYgKGQtPm1fbmVlZHNTZWN1cmVLZXlib2FyZEVudHJ5ID09IG5lZWRzU2VjdXJlS2V5Ym9hcmQp
CisgICAgICAgIHJldHVybjsKKyAgICBkLT5tX25lZWRzU2VjdXJlS2V5Ym9hcmRFbnRyeSA9IG5l
ZWRzU2VjdXJlS2V5Ym9hcmQ7CiAKLSNlbmRpZgorICAgIGlmIChkLT5tX2lzQWN0aXZlKQorICAg
ICAgICBzZXRTZWN1cmVLZXlib2FyZEVudHJ5KG5lZWRzU2VjdXJlS2V5Ym9hcmQpOworfQogCiBD
U1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbiAqRnJhbWU6OnR5cGluZ1N0eWxlKCkgY29uc3QKIHsK
QEAgLTE0ODAsNDggKzE0ODYsMzQgQEAgdm9pZCBGcmFtZTo6c2V0SXNBY3RpdmUoYm9vbCBmbGFn
KQogewogICAgIGlmIChkLT5tX2lzQWN0aXZlID09IGZsYWcpCiAgICAgICAgIHJldHVybjsKLSAg
ICAKICAgICBkLT5tX2lzQWN0aXZlID0gZmxhZzsKIAotICAgIC8vIFRoaXMgbWV0aG9kIGRvZXMg
dGhlIGpvYiBvZiB1cGRhdGluZyB0aGUgdmlldyBiYXNlZCBvbiB3aGV0aGVyIHRoZSB2aWV3IGlz
ICJhY3RpdmUiLgotICAgIC8vIFRoaXMgaW52b2x2ZXMgdGhyZWUga2luZHMgb2YgZHJhd2luZyB1
cGRhdGVzOgotCi0gICAgLy8gMS4gVGhlIGJhY2tncm91bmQgY29sb3IgdXNlZCB0byBkcmF3IGJl
aGluZCBzZWxlY3RlZCBjb250ZW50IChhY3RpdmUgfCBpbmFjdGl2ZSBjb2xvcikKKyAgICAvLyBC
ZWNhdXNlIFJlbmRlck9iamVjdDo6c2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkgYW5kCisgICAg
Ly8gUmVuZGVyT2JqZWN0OjpzZWxlY3Rpb25Gb3JlZ3JvdW5kQ29sb3IoKSBjaGVjayBpZiB0aGUg
ZnJhbWUgaXMgYWN0aXZlLAorICAgIC8vIHdlIGhhdmUgdG8gdXBkYXRlIHBsYWNlcyB0aG9zZSBj
b2xvcnMgd2VyZSBwYWludGVkLgogICAgIGlmIChkLT5tX3ZpZXcpCiAgICAgICAgIGQtPm1fdmll
dy0+dXBkYXRlQ29udGVudHMoZW5jbG9zaW5nSW50UmVjdCh2aXNpYmxlU2VsZWN0aW9uUmVjdCgp
KSk7CiAKLSAgICAvLyAyLiBDYXJldCBibGlua2luZyAoYmxpbmtzIHwgZG9lcyBub3QgYmxpbmsp
CisgICAgLy8gQ2FyZXQgYXBwZWFycyBpbiB0aGUgYWN0aXZlIGZyYW1lLgogICAgIGlmIChmbGFn
KQogICAgICAgICBzZXRTZWxlY3Rpb25Gcm9tTm9uZSgpOwogICAgIHNldENhcmV0VmlzaWJsZShm
bGFnKTsKLSAgICAKLSAgICAvLyAzLiBUaGUgZHJhd2luZyBvZiBhIGZvY3VzIHJpbmcgYXJvdW5k
IGxpbmtzIGluIHdlYiBwYWdlcy4KLSAgICBEb2N1bWVudCAqZG9jID0gZG9jdW1lbnQoKTsKLSAg
ICBpZiAoZG9jKSB7Ci0gICAgICAgIE5vZGUgKm5vZGUgPSBkb2MtPmZvY3VzZWROb2RlKCk7Ci0g
ICAgICAgIGlmIChub2RlKSB7CisKKyAgICAvLyBCZWNhdXNlIENTU1N0eWxlU2VsZWN0b3I6OmNo
ZWNrT25lU2VsZWN0b3IoKSBhbmQKKyAgICAvLyBSZW5kZXJUaGVtZTo6aXNGb2N1c2VkKCkgY2hl
Y2sgaWYgdGhlIGZyYW1lIGlzIGFjdGl2ZSwgd2UgaGF2ZSB0bworICAgIC8vIHVwZGF0ZSBzdHls
ZSBhbmQgdGhlbWUgc3RhdGUgdGhhdCBkZXBlbmRlZCBvbiB0aG9zZS4KKyAgICBpZiAoZC0+bV9k
b2MpIHsKKyAgICAgICAgaWYgKE5vZGUqIG5vZGUgPSBkLT5tX2RvYy0+Zm9jdXNlZE5vZGUoKSkg
ewogICAgICAgICAgICAgbm9kZS0+c2V0Q2hhbmdlZCgpOwotICAgICAgICAgICAgaWYgKG5vZGUt
PnJlbmRlcmVyKCkgJiYgbm9kZS0+cmVuZGVyZXIoKS0+c3R5bGUoKS0+aGFzQXBwZWFyYW5jZSgp
KQotICAgICAgICAgICAgICAgIHRoZW1lKCktPnN0YXRlQ2hhbmdlZChub2RlLT5yZW5kZXJlcigp
LCBGb2N1c1N0YXRlKTsKKyAgICAgICAgICAgIGlmIChSZW5kZXJPYmplY3QqIHJlbmRlcmVyID0g
bm9kZS0+cmVuZGVyZXIoKSkKKyAgICAgICAgICAgICAgICBpZiAocmVuZGVyZXIgJiYgcmVuZGVy
ZXItPnN0eWxlKCktPmhhc0FwcGVhcmFuY2UoKSkKKyAgICAgICAgICAgICAgICAgICAgdGhlbWUo
KS0+c3RhdGVDaGFuZ2VkKHJlbmRlcmVyLCBGb2N1c1N0YXRlKTsKICAgICAgICAgfQogICAgIH0K
LSAgICAKLSAgICAvLyA0LiBDaGFuZ2luZyB0aGUgdGludCBvZiBjb250cm9scyBmcm9tIGNsZWFy
IHRvIGFxdWEvZ3JhcGhpdGUgYW5kIHZpY2UgdmVyc2EuICBXZQotICAgIC8vIGRvIGEgImZha2Ui
IHBhaW50LiAgV2hlbiB0aGUgdGhlbWUgZ2V0cyBhIHBhaW50IGNhbGwsIGl0IGNhbiB0aGVuIGRv
IGFuIGludmFsaWRhdGUuICBUaGlzIGlzIG9ubHkKLSAgICAvLyBkb25lIGlmIHRoZSB0aGVtZSBz
dXBwb3J0cyBjb250cm9sIHRpbnRpbmcuCi0gICAgaWYgKGRvYyAmJiBkLT5tX3ZpZXcgJiYgdGhl
bWUoKS0+c3VwcG9ydHNDb250cm9sVGludHMoKSAmJiByZW5kZXJlcigpKSB7Ci0gICAgICAgIGRv
Yy0+dXBkYXRlTGF5b3V0KCk7IC8vIEVuc3VyZSBsYXlvdXQgaXMgdXAgdG8gZGF0ZS4KLSAgICAg
ICAgSW50UmVjdCB2aXNpYmxlUmVjdChlbmNsb3NpbmdJbnRSZWN0KGQtPm1fdmlldy0+dmlzaWJs
ZUNvbnRlbnRSZWN0KCkpKTsKLSAgICAgICAgR3JhcGhpY3NDb250ZXh0IGNvbnRleHQoKFBsYXRm
b3JtR3JhcGhpY3NDb250ZXh0KikwKTsKLSAgICAgICAgY29udGV4dC5zZXRVcGRhdGluZ0NvbnRy
b2xUaW50cyh0cnVlKTsKLSAgICAgICAgcGFpbnQoJmNvbnRleHQsIHZpc2libGVSZWN0KTsKLSAg
ICB9Ci0gICAKLSAgICAvLyA1LiBFbmFibGUgb3IgZGlzYWJsZSBzZWN1cmUga2V5Ym9hcmQgZW50
cnkKLSAgICBpZiAoKGZsYWcgJiYgIWlzU2VjdXJlS2V5Ym9hcmRFbnRyeSgpICYmIGRvYyAmJiBk
b2MtPmZvY3VzZWROb2RlKCkgJiYgZG9jLT5mb2N1c2VkTm9kZSgpLT5oYXNUYWdOYW1lKGlucHV0
VGFnKSAmJiAKLSAgICAgICAgICAgIHN0YXRpY19jYXN0PEhUTUxJbnB1dEVsZW1lbnQqPihkb2Mt
PmZvY3VzZWROb2RlKCkpLT5pbnB1dFR5cGUoKSA9PSBIVE1MSW5wdXRFbGVtZW50OjpQQVNTV09S
RCkgfHwKLSAgICAgICAgKCFmbGFnICYmIGlzU2VjdXJlS2V5Ym9hcmRFbnRyeSgpKSkKLSAgICAg
ICAgICAgIHNldFNlY3VyZUtleWJvYXJkRW50cnkoZmxhZyk7CisKKyAgICAvLyBTZWN1cmUga2V5
Ym9hcmQgZW50cnkgaXMgc2V0IGJ5IHRoZSBhY3RpdmUgZnJhbWUuCisgICAgaWYgKGQtPm1fbmVl
ZHNTZWN1cmVLZXlib2FyZEVudHJ5KQorICAgICAgICBzZXRTZWN1cmVLZXlib2FyZEVudHJ5KGZs
YWcpOwogfQogCiB2b2lkIEZyYW1lOjpzZXRXaW5kb3dIYXNGb2N1cyhib29sIGZsYWcpCkBAIC0x
ODcwLDYgKzE4NjIsNyBAQCBGcmFtZVByaXZhdGU6OkZyYW1lUHJpdmF0ZShQYWdlKiBwYWdlLCBG
CiAgICAgLCBtX2NhcmV0VmlzaWJsZShmYWxzZSkKICAgICAsIG1fY2FyZXRQYWludCh0cnVlKQog
ICAgICwgbV9pc0FjdGl2ZShmYWxzZSkKKyAgICAsIG1fbmVlZHNTZWN1cmVLZXlib2FyZEVudHJ5
KGZhbHNlKQogICAgICwgbV9saWZlU3VwcG9ydFRpbWVyKHRoaXNGcmFtZSwgJkZyYW1lOjpsaWZl
U3VwcG9ydFRpbWVyRmlyZWQpCiAgICAgLCBtX2xvYWRlcihuZXcgRnJhbWVMb2FkZXIodGhpc0Zy
YW1lLCBmcmFtZUxvYWRlckNsaWVudCkpCiAgICAgLCBtX3VzZXJTdHlsZVNoZWV0TG9hZGVyKDAp
CkluZGV4OiBXZWJDb3JlL3BhZ2UvRnJhbWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2Uv
RnJhbWUuaAkocmV2aXNpb24gMjA4OTcpCisrKyBXZWJDb3JlL3BhZ2UvRnJhbWUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxMyArMSwxMiBAQAogLy8gLSotIGMtYmFzaWMtb2Zmc2V0OiA0IC0qLQot
IC8qIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBLREUgcHJvamVjdAotICoKKy8qCiAgKiBDb3B5
cmlnaHQgKEMpIDE5OTgsIDE5OTkgVG9yYmVuIFdlaXMgPHdlaXNAa2RlLm9yZz4KICAqICAgICAg
ICAgICAgICAgICAgICAgMTk5OS0yMDAxIExhcnMgS25vbGwgPGtub2xsQGtkZS5vcmc+CiAgKiAg
ICAgICAgICAgICAgICAgICAgIDE5OTktMjAwMSBBbnR0aSBLb2l2aXN0byA8a29pdmlzdG9Aa2Rl
Lm9yZz4KICAqICAgICAgICAgICAgICAgICAgICAgMjAwMC0yMDAxIFNpbW9uIEhhdXNtYW5uIDxo
YXVzbWFubkBrZGUub3JnPgogICogICAgICAgICAgICAgICAgICAgICAyMDAwLTIwMDEgRGlyayBN
dWVsbGVyIDxtdWVsbGVyQGtkZS5vcmc+CiAgKiAgICAgICAgICAgICAgICAgICAgIDIwMDAgU3Rl
ZmFuIFNjaGltYW5za2kgPDFTdGVpbkBnbXguZGU+Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDQsIDIw
MDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAwNCwgMjAw
NSwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmln
aHQgKEMpIDIwMDcgVHJvbGx0ZWNoIEFTQQogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNv
ZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKQEAgLTQyLDcgKzQxLDYgQEAg
Y2xhc3MgTlBPYmplY3Q7CiAKIG5hbWVzcGFjZSBLSlMgewogICAgIGNsYXNzIEludGVycHJldGVy
OwotICAgIGNsYXNzIEpTT2JqZWN0OwogICAgIAogICAgIG5hbWVzcGFjZSBCaW5kaW5ncyB7CiAg
ICAgICAgIGNsYXNzIEluc3RhbmNlOwpAQCAtNTIsMjggKzUwLDIxIEBAIG5hbWVzcGFjZSBLSlMg
ewogCiAjaWYgUExBVEZPUk0oTUFDKQogI2lmZGVmIF9fT0JKQ19fCi1AY2xhc3MgV2ViQ29yZUZy
YW1lQnJpZGdlOwotQGNsYXNzIFdlYlNjcmlwdE9iamVjdDsKIEBjbGFzcyBOU0FycmF5OwogQGNs
YXNzIE5TRGljdGlvbmFyeTsKLUBjbGFzcyBOU0ZvbnQ7Ci1AY2xhc3MgTlNJbWFnZTsKIEBjbGFz
cyBOU01lbnU7CiBAY2xhc3MgTlNNdXRhYmxlRGljdGlvbmFyeTsKIEBjbGFzcyBOU1N0cmluZzsK
IEBjbGFzcyBXZWJDb3JlRnJhbWVCcmlkZ2U7CitAY2xhc3MgV2ViU2NyaXB0T2JqZWN0OwogI2Vs
c2UKLWNsYXNzIFdlYkNvcmVGcmFtZUJyaWRnZTsKLWNsYXNzIFdlYlNjcmlwdE9iamVjdDsKIGNs
YXNzIE5TQXJyYXk7CiBjbGFzcyBOU0RpY3Rpb25hcnk7Ci1jbGFzcyBOU0ZvbnQ7Ci1jbGFzcyBO
U0ltYWdlOwogY2xhc3MgTlNNZW51OwogY2xhc3MgTlNNdXRhYmxlRGljdGlvbmFyeTsKIGNsYXNz
IE5TU3RyaW5nOwogY2xhc3MgV2ViQ29yZUZyYW1lQnJpZGdlOwotdHlwZWRlZiB1bnNpZ25lZCBp
bnQgTlNEcmFnT3BlcmF0aW9uOworY2xhc3MgV2ViU2NyaXB0T2JqZWN0OwogdHlwZWRlZiBpbnQg
TlNXcml0aW5nRGlyZWN0aW9uOwogI2VuZGlmCiAjZW5kaWYKQEAgLTEwNSw5ICs5Niw3IEBAIGNs
YXNzIEtVUkw7CiBjbGFzcyBOb2RlOwogY2xhc3MgUGFnZTsKIGNsYXNzIFJhbmdlOwotY2xhc3Mg
UmVuZGVyT2JqZWN0OwogY2xhc3MgUmVuZGVyUGFydDsKLWNsYXNzIFJlbmRlclN0eWxlOwogY2xh
c3MgU2VsZWN0aW9uOwogY2xhc3MgU2VsZWN0aW9uQ29udHJvbGxlcjsKIGNsYXNzIFNldHRpbmdz
OwpAQCAtMTc4LDcgKzE2Nyw3IEBAIHB1YmxpYzoKIAogICAgIC8vIHNob3VsZCBtb3ZlIHRvIEZy
YW1lVmlldwogICAgIHZvaWQgcGFpbnQoR3JhcGhpY3NDb250ZXh0KiwgY29uc3QgSW50UmVjdCYp
OwotICAgIHZvaWQgc2V0UGFpbnRSZXN0cmljdGlvbihQYWludFJlc3RyaWN0aW9uIHByKTsKKyAg
ICB2b2lkIHNldFBhaW50UmVzdHJpY3Rpb24oUGFpbnRSZXN0cmljdGlvbik7CiAKICAgICB2b2lk
IHNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oY29uc3QgS1VSTCYpOwogICAgIHZvaWQgc2V0VXNl
clN0eWxlU2hlZXQoY29uc3QgU3RyaW5nJiBzdHlsZVNoZWV0RGF0YSk7CkBAIC0zMjUsOCArMzE0
LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBpc0NvbnRlbnRFZGl0YWJsZSgpIGNvbnN0OyAvLyBp
ZiB0cnVlLCBldmVyeXRoaW5nIGluIGZyYW1lIGlzIGVkaXRhYmxlCiAKLSAgICB2b2lkIHNldFNl
Y3VyZUtleWJvYXJkRW50cnkoYm9vbCk7Ci0gICAgYm9vbCBpc1NlY3VyZUtleWJvYXJkRW50cnko
KTsKKyAgICB2b2lkIHNldE5lZWRzU2VjdXJlS2V5Ym9hcmRFbnRyeShib29sKTsKIAogICAgIENT
U011dGFibGVTdHlsZURlY2xhcmF0aW9uKiB0eXBpbmdTdHlsZSgpIGNvbnN0OwogICAgIHZvaWQg
c2V0VHlwaW5nU3R5bGUoQ1NTTXV0YWJsZVN0eWxlRGVjbGFyYXRpb24qKTsKQEAgLTM0Myw2ICsz
MzEsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjYXJldEJsaW5rVGltZXJGaXJl
ZChUaW1lcjxGcmFtZT4qKTsKKyAgICB2b2lkIHNldFNlY3VyZUtleWJvYXJkRW50cnkoYm9vbCk7
CiAKIC8vID09PSB0byBiZSBtb3ZlZCBpbnRvIHRoZSBQbGF0Zm9ybSBkaXJlY3RvcnkKIApAQCAt
MzU5LDYgKzM0OCw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgbWF0Y2hMYWJlbHNBZ2FpbnN0RWxl
bWVudChjb25zdCBWZWN0b3I8U3RyaW5nPiYgbGFiZWxzLCBFbGVtZW50Kik7CiAKICNpZiBQTEFU
Rk9STShNQUMpCisKIC8vID09PSB1bmRlY2lkZWQsIG1heSBvciBtYXkgbm90IGJlbG9uZyBoZXJl
CiAKIHB1YmxpYzoKQEAgLTM3OSwxOSArMzY5LDE5IEBAIHByaXZhdGU6ICAgIAogLy8gPT09IHRv
IGJlIG1vdmVkIGludG8gQ2hyb21lCiAKIHB1YmxpYzoKLQogICAgIEZsb2F0UmVjdCBjdXN0b21I
aWdobGlnaHRMaW5lUmVjdChjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIGNvbnN0IEZsb2F0UmVj
dCYgbGluZVJlY3QsIE5vZGUqKTsKICAgICB2b2lkIHBhaW50Q3VzdG9tSGlnaGxpZ2h0KGNvbnN0
IEF0b21pY1N0cmluZyYgdHlwZSwgY29uc3QgRmxvYXRSZWN0JiBib3hSZWN0LCBjb25zdCBGbG9h
dFJlY3QmIGxpbmVSZWN0LCBib29sIHRleHQsIGJvb2wgbGluZSwgTm9kZSopOwogCiAvLyA9PT0g
dG8gYmUgbW92ZWQgaW50byBFZGl0b3IKIAogcHVibGljOgotCiAgICAgTlNEaWN0aW9uYXJ5KiBm
b250QXR0cmlidXRlc0ZvclNlbGVjdGlvblN0YXJ0KCkgY29uc3Q7CiAgICAgTlNXcml0aW5nRGly
ZWN0aW9uIGJhc2VXcml0aW5nRGlyZWN0aW9uRm9yU2VsZWN0aW9uU3RhcnQoKSBjb25zdDsKIAog
ICAgIHZvaWQgc2V0TWFya2VkVGV4dFJhbmdlKGNvbnN0IFJhbmdlKiAsIE5TQXJyYXkqIGF0dHJp
YnV0ZXMsIE5TQXJyYXkqIHJhbmdlcyk7CisKICNlbmRpZgorCiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCkluZGV4OiBXZWJDb3JlL3BhZ2UvRnJhbWVQcml2YXRlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gV2ViQ29yZS9wYWdlL0ZyYW1lUHJpdmF0ZS5oCShyZXZpc2lvbiAyMDg5NykKKysrIFdlYkNv
cmUvcGFnZS9GcmFtZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtOTcsNiArOTcsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9jYXJldFZpc2libGUgOiAxOwogICAg
ICAgICBib29sIG1fY2FyZXRQYWludCA6IDE7CiAgICAgICAgIGJvb2wgbV9pc0FjdGl2ZSA6IDE7
CisgICAgICAgIGJvb2wgbV9uZWVkc1NlY3VyZUtleWJvYXJkRW50cnkgOiAxOwogCiAgICAgICAg
IFJlZlB0cjxDU1NNdXRhYmxlU3R5bGVEZWNsYXJhdGlvbj4gbV90eXBpbmdTdHlsZTsKIApJbmRl
eDogV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5jcHAJKHJldmlzaW9uIDIwODk3KQorKysgV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzEsOSBAQAotLyogVGhpcyBmaWxlIGlzIHBh
cnQgb2YgdGhlIEtERSBwcm9qZWN0Ci0gKgorLyoKICAqIENvcHlyaWdodCAoQykgMTk5OCwgMTk5
OSBUb3JiZW4gV2VpcyA8d2Vpc0BrZGUub3JnPgogICogICAgICAgICAgICAgICAgICAgICAxOTk5
IExhcnMgS25vbGwgPGtub2xsQGtkZS5vcmc+CiAgKiAgICAgICAgICAgICAgICAgICAgIDE5OTkg
QW50dGkgS29pdmlzdG8gPGtvaXZpc3RvQGtkZS5vcmc+CiAgKiAgICAgICAgICAgICAgICAgICAg
IDIwMDAgRGlyayBNdWVsbGVyIDxtdWVsbGVyQGtkZS5vcmc+Ci0gKiBDb3B5cmlnaHQgKEMpIDIw
MDQsIDIwMDUsIDIwMDYgQXBwbGUgQ29tcHV0ZXIsIEluYy4KKyAqIENvcHlyaWdodCAoQykgMjAw
NCwgMjAwNSwgMjAwNiwgMjAwNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiAg
ICAgICAgICAgKEMpIDIwMDYgR3JhaGFtIERlbm5pcyAoZ3JhaGFtLmRlbm5pc0BnbWFpbC5jb20p
CiAgKiAgICAgICAgICAgKEMpIDIwMDYgQWxleGV5IFByb3NrdXJ5YWtvdiAoYXBAbnlwb3AuY29t
KQogICoKQEAgLTMzLDExICszMiwxMyBAQAogI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgorI2luY2x1ZGUg
IkdyYXBoaWNzQ29udGV4dC5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgogI2luY2x1ZGUg
IkhUTUxGcmFtZVNldEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRl
ICJPdmVyZmxvd0V2ZW50LmgiCiAjaW5jbHVkZSAiUmVuZGVyUGFydC5oIgorI2luY2x1ZGUgIlJl
bmRlclRoZW1lLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CkBAIC04OTMsNCArODk0LDIwIEBAIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVEYXNoYm9hcmRS
ZWdpb25zKCkKICAgICB9CiB9CiAKK3ZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVDb250cm9sVGludHMo
KQoreworICAgIC8vIFRoaXMgaXMgY2FsbGVkIHdoZW4gY29udHJvbCB0aW50cyBhcmUgY2hhbmdl
ZCBmcm9tIGFxdWEvZ3JhcGhpdGUgdG8gY2xlYXIgYW5kIHZpY2UgdmVyc2EuCisgICAgLy8gV2Ug
ZG8gYSAiZmFrZSIgcGFpbnRtLCBhbmQgd2hlbiB0aGUgdGhlbWUgZ2V0cyBhIHBhaW50IGNhbGws
IGl0IGNhbiB0aGVuIGRvIGFuIGludmFsaWRhdGUuCisgICAgLy8gVGhpcyBpcyBvbmx5IGRvbmUg
aWYgdGhlIHRoZW1lIHN1cHBvcnRzIGNvbnRyb2wgdGludGluZy4gSXQncyB1cCB0byB0aGUgdGhl
bWUgYW5kIHBsYXRmb3JtCisgICAgLy8gdG8gZGVmaW5lIHdoZW4gY29udHJvbHMgZ2V0IHRoZSB0
aW50IGFuZCB0byBjYWxsIHRoaXMgZnVuY3Rpb24gd2hlbiB0aGF0IGNoYW5nZXMuCisgICAgRG9j
dW1lbnQqIGRvYyA9IG1fZnJhbWUtPmRvY3VtZW50KCk7CisgICAgaWYgKGRvYyAmJiB0aGVtZSgp
LT5zdXBwb3J0c0NvbnRyb2xUaW50cygpICYmIG1fZnJhbWUtPnJlbmRlcmVyKCkpIHsKKyAgICAg
ICAgZG9jLT51cGRhdGVMYXlvdXQoKTsgLy8gRW5zdXJlIGxheW91dCBpcyB1cCB0byBkYXRlLgor
ICAgICAgICBQbGF0Zm9ybUdyYXBoaWNzQ29udGV4dCogY29uc3Qgbm9Db250ZXh0ID0gMDsKKyAg
ICAgICAgR3JhcGhpY3NDb250ZXh0IGNvbnRleHQobm9Db250ZXh0KTsKKyAgICAgICAgY29udGV4
dC5zZXRVcGRhdGluZ0NvbnRyb2xUaW50cyh0cnVlKTsKKyAgICAgICAgbV9mcmFtZS0+cGFpbnQo
JmNvbnRleHQsIGVuY2xvc2luZ0ludFJlY3QodmlzaWJsZUNvbnRlbnRSZWN0KCkpKTsKKyAgICB9
Cit9CisKIH0KSW5kZXg6IFdlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgJKHJldmlzaW9uIDIwODk3KQorKysgV2ViQ29yZS9wYWdl
L0ZyYW1lVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMjEsNiArMTIxLDcgQEAgcHVibGljOgog
ICAgIHZvaWQgcmVtb3ZlU2xvd1JlcGFpbnRPYmplY3QoKTsKIAogICAgIHZvaWQgdXBkYXRlRGFz
aGJvYXJkUmVnaW9ucygpOworICAgIHZvaWQgdXBkYXRlQ29udHJvbFRpbnRzKCk7CiAKICAgICB2
b2lkIHJlc3RvcmVTY3JvbGxiYXIoKTsKIApJbmRleDogV2ViQ29yZS9wYWdlL21hYy9GcmFtZU1h
Yy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvbWFjL0ZyYW1lTWFjLm1tCShyZXZpc2lv
biAyMDg5NykKKysrIFdlYkNvcmUvcGFnZS9tYWMvRnJhbWVNYWMubW0JKHdvcmtpbmcgY29weSkK
QEAgLTUwOCw5ICs1MDgsMTEgQEAgdm9pZCBGcmFtZTo6aXNzdWVUcmFuc3Bvc2VDb21tYW5kKCkK
IGNvbnN0IHNob3J0IGVuYWJsZVJvbWFuS2V5Ym9hcmRzT25seSA9IC0yMzsKIHZvaWQgRnJhbWU6
OnNldFNlY3VyZUtleWJvYXJkRW50cnkoYm9vbCBlbmFibGUpCiB7CisgICAgLy8gQ2FsbGVyIGlz
IHJlc3BvbnNpYmxlIGZvciBvbmx5IGNhbGxpbmcgd2hlbiBpdCdzIGFuIGFjdHVhbCBjaGFuZ2Uu
CisgICAgQVNTRVJUKGVuYWJsZSAhPSBJc1NlY3VyZUV2ZW50SW5wdXRFbmFibGVkKCkpOwogICAg
IGlmIChlbmFibGUpIHsKICAgICAgICAgRW5hYmxlU2VjdXJlRXZlbnRJbnB1dCgpOwotLy8gRklY
TUU6IEtleVNjcmlwdCBpcyBkZXByZWNhdGVkIGluIExlb3BhcmQsIHdlIG5lZWQgYSBuZXcgc29s
dXRpb24gZm9yIHRoaXMgPHJkYXI6Ly9wcm9ibGVtLzQ3Mjc2MDc+CisgICAgICAgIC8vIEZJWE1F
OiBTaW5jZSBLZXlTY3JpcHQgaXMgZGVwcmVjYXRlZCBpbiBMZW9wYXJkLCB3ZSBuZWVkIGEgbmV3
IHNvbHV0aW9uIGZvciB0aGlzLiA8cmRhcjovL3Byb2JsZW0vNDcyNzYwNz4KICNpZiBNQUNfT1Nf
WF9WRVJTSU9OX01BWF9BTExPV0VEIDw9IE1BQ19PU19YX1ZFUlNJT05fMTBfNAogICAgICAgICBL
ZXlTY3JpcHQoZW5hYmxlUm9tYW5LZXlib2FyZHNPbmx5KTsKICNlbmRpZgpAQCAtNTIyLDExICs1
MjQsNiBAQCB2b2lkIEZyYW1lOjpzZXRTZWN1cmVLZXlib2FyZEVudHJ5KGJvb2wgCiAgICAgfQog
fQogCi1ib29sIEZyYW1lOjppc1NlY3VyZUtleWJvYXJkRW50cnkoKQotewotICAgIHJldHVybiBJ
c1NlY3VyZUV2ZW50SW5wdXRFbmFibGVkKCk7Ci19Ci0KIHN0YXRpYyB2b2lkIGNvbnZlcnRBdHRy
aWJ1dGVzVG9VbmRlcmxpbmVzKFZlY3RvcjxNYXJrZWRUZXh0VW5kZXJsaW5lPiYgcmVzdWx0LCBj
b25zdCBSYW5nZSogbWFya2VkVGV4dFJhbmdlLCBOU0FycmF5KiBhdHRyaWJ1dGVzLCBOU0FycmF5
KiByYW5nZXMpCiB7CiAgICAgaW50IGV4Y2VwdGlvbiA9IDA7CkluZGV4OiBXZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWUuY3BwCShyZXZpc2lvbiAyMDg5NykKKysrIFdlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRoZW1lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgIlJl
bmRlclRoZW1lLmgiCiAKICNpbmNsdWRlICJEb2N1bWVudC5oIgorI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiR3JhcGhpY3NDb250ZXh0LmgiCiAjaW5jbHVkZSAiSFRNTElucHV0RWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgpAQCAtMzU0LDkgKzM1NSwxMiBAQCBib29sIFJl
bmRlclRoZW1lOjppc0VuYWJsZWQoY29uc3QgUmVuZGVyCiAKIGJvb2wgUmVuZGVyVGhlbWU6Omlz
Rm9jdXNlZChjb25zdCBSZW5kZXJPYmplY3QqIG8pIGNvbnN0CiB7Ci0gICAgaWYgKCFvLT5lbGVt
ZW50KCkpCisgICAgTm9kZSogbm9kZSA9IG8tPmVsZW1lbnQoKTsKKyAgICBpZiAoIW5vZGUpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gby0+ZWxlbWVudCgpID09IG8tPmVsZW1l
bnQoKS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5vZGUoKTsKKyAgICBEb2N1bWVudCogZG9jdW1lbnQg
PSBub2RlLT5kb2N1bWVudCgpOworICAgIEZyYW1lKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgp
OworICAgIHJldHVybiBub2RlID09IGRvY3VtZW50LT5mb2N1c2VkTm9kZSgpICYmIGZyYW1lICYm
IGZyYW1lLT5pc0FjdGl2ZSgpOwogfQogCiBib29sIFJlbmRlclRoZW1lOjppc1ByZXNzZWQoY29u
c3QgUmVuZGVyT2JqZWN0KiBvKSBjb25zdApJbmRleDogV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGhlbWVNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW0JKHJldmlzaW9uIDIwODk3KQorKysgV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1NywxMCArMjU3LDggQEAgdm9pZCBSZW5kZXJUaGVt
ZU1hYzo6dXBkYXRlRW5hYmxlZFN0YXRlKAogCiB2b2lkIFJlbmRlclRoZW1lTWFjOjp1cGRhdGVG
b2N1c2VkU3RhdGUoTlNDZWxsKiBjZWxsLCBjb25zdCBSZW5kZXJPYmplY3QqIG8pCiB7Ci0gICAg
Ly8gRklYTUU6IE5lZWQgdG8gYWRkIGEga2V5IHdpbmRvdyB0ZXN0IGhlcmUsIG9yIHRoZSBlbGVt
ZW50IHdpbGwgbG9vawotICAgIC8vIGZvY3VzZWQgZXZlbiB3aGVuIGluIHRoZSBiYWNrZ3JvdW5k
LgogICAgIGJvb2wgb2xkRm9jdXNlZCA9IFtjZWxsIHNob3dzRmlyc3RSZXNwb25kZXJdOwotICAg
IGJvb2wgZm9jdXNlZCA9IChvLT5lbGVtZW50KCkgJiYgby0+ZG9jdW1lbnQoKS0+Zm9jdXNlZE5v
ZGUoKSA9PSBvLT5lbGVtZW50KCkpICYmIChvLT5zdHlsZSgpLT5vdXRsaW5lU3R5bGVJc0F1dG8o
KSk7CisgICAgYm9vbCBmb2N1c2VkID0gaXNGb2N1c2VkKG8pICYmIG8tPnN0eWxlKCktPm91dGxp
bmVTdHlsZUlzQXV0bygpOwogICAgIGlmIChmb2N1c2VkICE9IG9sZEZvY3VzZWQpCiAgICAgICAg
IFtjZWxsIHNldFNob3dzRmlyc3RSZXNwb25kZXI6Zm9jdXNlZF07CiB9CkBAIC0yODIsNiArMjgw
LDExIEBAIHNob3J0IFJlbmRlclRoZW1lTWFjOjpiYXNlbGluZVBvc2l0aW9uKGMKIAogYm9vbCBS
ZW5kZXJUaGVtZU1hYzo6Y29udHJvbFN1cHBvcnRzVGludHMoY29uc3QgUmVuZGVyT2JqZWN0KiBv
KSBjb25zdAogeworICAgIC8vIEFuIGFsdGVybmF0ZSB3YXkgdG8gaW1wbGVtZW50IHRoaXMgd291
bGQgYmUgdG8gZ2V0IHRoZSBhcHByb3ByaWF0ZSBjZWxsIG9iamVjdAorICAgIC8vIGFuZCBjYWxs
IHRoZSBwcml2YXRlIF9uZWVkUmVkcmF3T25XaW5kb3dDaGFuZ2VkS2V5U3RhdGUgbWV0aG9kLiBB
biBhZHZhbnRhZ2Ugb2YKKyAgICAvLyB0aGF0IHdvdWxkIGJlIHRoYXQgd2Ugd291bGQgbWF0Y2gg
QXBwS2l0IGJlaGF2aW9yIG1vcmUgY2xvc2VseSwgYnV0IGEgZGlzYWR2YW50YWdlCisgICAgLy8g
d291bGQgYmUgdGhhdCB3ZSB3b3VsZCByZWx5IG9uIGFuIEFwcEtpdCBTUEkgbWV0aG9kLgorCiAg
ICAgaWYgKCFpc0VuYWJsZWQobykpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApJbmRleDogV2Vi
S2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAy
MDg5OCkKKysrIFdlYktpdC9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBA
QAorMjAwNy0wNC0xNSAgRGFyaW4gQWRsZXIgIDxkYXJpbkBhcHBsZS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBmaXggaHR0cDovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMzMDMKKyAgICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNTEyNjM0MT4gUkVHUkVTU0lPTjogY29udHJvbHMgaW4gYSBiYWNrZ3JvdW5kIFNhZmFyaSB3
aW5kb3cKKyAgICAgICAgICBtYWludGFpbiBhY3RpdmUgYXBwZWFyYW5jZSBpZiB0aGUgYWRkcmVz
cyBiYXIgaGFzIGZvY3VzICgxMzMwMykKKworICAgICAgICAqIFdlYlZpZXcvV2ViSFRNTFZpZXcu
bW06ICgtW1dlYkhUTUxWaWV3IF93aW5kb3dDaGFuZ2VkS2V5U3RhdGVdKToKKyAgICAgICAgQWRk
ZWQuIENhbGxzIEZyYW1lVmlldzo6dXBkYXRlQ29udHJvbFRpbnRzLgorCiAyMDA3LTA0LTEzICBP
bGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQWRh
bS4KSW5kZXg6IFdlYktpdC9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdC9XZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCShyZXZpc2lvbiAyMDg5NykKKysrIFdlYktpdC9X
ZWJWaWV3L1dlYkhUTUxWaWV3Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC04Miw2ICs4Miw3IEBACiAj
aW1wb3J0IDxXZWJDb3JlL0ZvY3VzQ29udHJvbGxlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFt
ZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZUxvYWRlci5oPgorI2ltcG9ydCA8V2ViQ29yZS9G
cmFtZVZpZXcuaD4KICNpbXBvcnQgPFdlYkNvcmUvSGl0VGVzdFJlc3VsdC5oPgogI2ltcG9ydCA8
V2ViQ29yZS9JbWFnZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9LZXlib2FyZEV2ZW50Lmg+CkBAIC0x
MjgsNiArMTI5LDcgQEAgdm9pZCBfTlNSZXNldEtpbGxSaW5nT3BlcmF0aW9uRmxhZyh2b2lkKQog
LSAoTlNSZWN0KV9kaXJ0eVJlY3Q7CiAtICh2b2lkKV9zZXREcmF3c093bkRlc2NlbmRhbnRzOihC
T09MKWRyYXdzT3duRGVzY2VuZGFudHM7CiAtICh2b2lkKV9wcm9wYWdhdGVEaXJ0eVJlY3RzVG9P
cGFxdWVBbmNlc3RvcnM7CistICh2b2lkKV93aW5kb3dDaGFuZ2VkS2V5U3RhdGU7CiBAZW5kCiAK
IEBpbnRlcmZhY2UgTlNBcHBsaWNhdGlvbiAoQXBwS2l0U2VjcmV0c0lLbm93QWJvdXQpCkBAIC00
ODkyLDYgKzQ4OTQsMTQgQEAgc3RhdGljIERPTVJhbmdlICp1bmlvbkRPTVJhbmdlcyhET01SYW5n
ZQogICAgIHJldHVybiBbc3VwZXIgbmV4dFJlc3BvbmRlcl07CiB9CiAKKy0gKHZvaWQpX3dpbmRv
d0NoYW5nZWRLZXlTdGF0ZQoreworICAgIGlmIChGcmFtZSogZnJhbWUgPSBjb3JlKFtzZWxmIF9m
cmFtZV0pKQorICAgICAgICBpZiAoRnJhbWVWaWV3KiB2aWV3ID0gZnJhbWUtPnZpZXcoKSkKKyAg
ICAgICAgICAgIHZpZXctPnVwZGF0ZUNvbnRyb2xUaW50cygpOworICAgIFtzdXBlciBfd2luZG93
Q2hhbmdlZEtleVN0YXRlXTsKK30KKwogQGVuZAogCiBAaW1wbGVtZW50YXRpb24gV2ViSFRNTFZp
ZXcgKFdlYlRleHRTaXppbmcpCg==
</data>
<flag name="review"
          id="5668"
          type_id="1"
          status="+"
          setter="sullivan"
    />
          </attachment>
      

    </bug>

</bugzilla>