<?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>56103</bug_id>
          
          <creation_ts>2011-03-10 07:47:37 -0800</creation_ts>
          <short_desc>[WK2] Handle keyboard and mouse events on X11</short_desc>
          <delta_ts>2011-03-23 15:03:34 -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>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>55659</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Balazs Kelemen">kbalazs</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>kling</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>365172</commentid>
    <comment_count>0</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-10 07:47:37 -0800</bug_when>
    <thetext>... so I can play Super Mario in MiniBrowser :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365178</commentid>
    <comment_count>1</comment_count>
      <attachid>85330</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-10 07:54:38 -0800</bug_when>
    <thetext>Created attachment 85330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365187</commentid>
    <comment_count>2</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-03-10 08:09:45 -0800</bug_when>
    <thetext>Attachment 85330 did not build on qt:
Build output: http://queues.webkit.org/results/8127037</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365247</commentid>
    <comment_count>3</comment_count>
      <attachid>85342</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-10 09:37:28 -0800</bug_when>
    <thetext>Created attachment 85342
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>365249</commentid>
    <comment_count>4</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-10 09:39:52 -0800</bug_when>
    <thetext>Tested with flash game. Unfortunately something goes wrong when loading
the plugin with almost all game as opposed to videos that works all the time.
Finally I find one to test with: http://www.pouetpu-games.com/index.php?section=2&amp;game_id=1&amp;w=640&amp;h=480.
Plain old Super Mario game :)
Loading fix is not subject of this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369765</commentid>
    <comment_count>5</comment_count>
      <attachid>85342</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-03-18 11:52:10 -0700</bug_when>
    <thetext>Comment on attachment 85342
Patch

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

&gt; Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:261
&gt; +    return timestampInSeconds * 1000.0;

Coding style, superfluous .0 suffix.

&gt; Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:351
&gt; +// We undefine these constants in npruntime_internal.h to avoid collosion

Typo, collision.

&gt; Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:356
&gt; +const int kKeyPressType = 2;
&gt; +const int kKeyReleaseType = 3;
&gt; +const int kFocusInType = 9;
&gt; +const int kFocusOutType = 10;

Not a huge fan of these. Guess it&apos;s unavoidable though.

&gt; Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:415
&gt; +    ASSERT(event.type() == WebEvent::KeyDown || event.type() == WebEvent::KeyUp); // We don&apos;t generate other types.

Are you sure we don&apos;t generate other types?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371556</commentid>
    <comment_count>6</comment_count>
      <attachid>86492</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-22 12:24:30 -0700</bug_when>
    <thetext>Created attachment 86492
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371558</commentid>
    <comment_count>7</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-22 12:27:36 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 85342 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=85342&amp;action=review
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:261
&gt; &gt; +    return timestampInSeconds * 1000.0;
&gt; 
&gt; Coding style, superfluous .0 suffix.
Fixed.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:351
&gt; &gt; +// We undefine these constants in npruntime_internal.h to avoid collosion
&gt; 
&gt; Typo, collision.
Fixed.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:356
&gt; &gt; +const int kKeyPressType = 2;
&gt; &gt; +const int kKeyReleaseType = 3;
&gt; &gt; +const int kFocusInType = 9;
&gt; &gt; +const int kFocusOutType = 10;
&gt; 
&gt; Not a huge fan of these. Guess it&apos;s unavoidable though.
Yes we these to make it compiling.
&gt; 
&gt; &gt; Source/WebKit2/WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:415
&gt; &gt; +    ASSERT(event.type() == WebEvent::KeyDown || event.type() == WebEvent::KeyUp); // We don&apos;t generate other types.
&gt; 
&gt; Are you sure we don&apos;t generate other types?
Yes. Check WebEventFactory. Extended the comment to refer to that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372370</commentid>
    <comment_count>8</comment_count>
      <attachid>86492</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-03-23 12:48:58 -0700</bug_when>
    <thetext>Comment on attachment 86492
Patch

Kool. r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372464</commentid>
    <comment_count>9</comment_count>
      <attachid>86492</attachid>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-23 15:03:27 -0700</bug_when>
    <thetext>Comment on attachment 86492
Patch

Clearing flags on attachment: 86492

Committed r81811: &lt;http://trac.webkit.org/changeset/81811&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372465</commentid>
    <comment_count>10</comment_count>
    <who name="Balazs Kelemen">kbalazs</who>
    <bug_when>2011-03-23 15:03:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85330</attachid>
            <date>2011-03-10 07:54:38 -0800</date>
            <delta_ts>2011-03-10 09:37:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-WK2-Handle-keyboard-and-mouse-events-on-X11.patch</filename>
            <type>text/plain</type>
            <size>8765</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">RnJvbSBhMzllNmM2Y2JhODcyN2MwNTNkMTdmZTEyMmYxYmIzMmQzNjMzOGYzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCYWxhenMgS2VsZW1lbiA8a2JhbGF6c0B3ZWJraXQub3JnPgpE
YXRlOiBUaHUsIDEwIE1hciAyMDExIDE1OjUyOjI5ICswMDAwClN1YmplY3Q6IFtQQVRDSF0gW1dL
Ml0gSGFuZGxlIGtleWJvYXJkIGFuZCBtb3VzZSBldmVudHMgb24gWDExCiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYxMDMKClJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgoKUHJvcGFnYXRlIGtleWJvYXJkIGFuZCBtb3VzZSBldmVudHMgdG8gdGhlIHBsdWdpbgph
cyBYRXZlbnQncy4KCiogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBs
dWdpblgxMS5jcHA6CihXZWJLaXQ6OmluaXRpYWxpemVYRXZlbnQpOgooV2ViS2l0Ojp4VGltZVN0
YW1wKToKKFdlYktpdDo6eEtleU1vZGlmaWVycyk6CihXZWJLaXQ6OnNldENvbW1vbk1vdXNlRXZl
bnRGaWVsZHMpOgooV2ViS2l0OjpzZXRYTW90aW9uRXZlbnRGaWVsZHMpOgooV2ViS2l0OjpzZXRY
QnV0dG9uRXZlbnRGaWVsZHMpOgooV2ViS2l0OjpzZXRYQ3Jvc3NpbmdFdmVudEZpZWxkcyk6CihX
ZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZU1vdXNlRXZlbnQpOgooV2ViS2l0
OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVNb3VzZUVudGVyRXZlbnQpOgooV2ViS2l0
OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVNb3VzZUxlYXZlRXZlbnQpOgooV2ViS2l0
OjpzZXRYS2V5RXZlbnRGaWVsZHMpOgooV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1I
YW5kbGVLZXlib2FyZEV2ZW50KToKLS0tCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMjQgKysrCiAuLi4vUGx1Z2lucy9OZXRzY2FwZS94MTEv
TmV0c2NhcGVQbHVnaW5YMTEuY3BwICAgICB8ICAxNTYgKysrKysrKysrKysrKysrKystLS0KIDIg
ZmlsZXMgY2hhbmdlZCwgMTYwIGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCAwMzMwOTI3Li4zNTAwMDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIw
MTEtMDMtMTAgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXSzJdIEhhbmRsZSBrZXli
b2FyZCBhbmQgbW91c2UgZXZlbnRzIG9uIFgxMQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYxMDMKKworICAgICAgICBQcm9wYWdhdGUga2V5Ym9hcmQg
YW5kIG1vdXNlIGV2ZW50cyB0byB0aGUgcGx1Z2luCisgICAgICAgIGFzIFhFdmVudCdzLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpblgx
MS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVYRXZlbnQpOgorICAgICAgICAoV2Vi
S2l0Ojp4VGltZVN0YW1wKToKKyAgICAgICAgKFdlYktpdDo6eEtleU1vZGlmaWVycyk6CisgICAg
ICAgIChXZWJLaXQ6OnNldENvbW1vbk1vdXNlRXZlbnRGaWVsZHMpOgorICAgICAgICAoV2ViS2l0
OjpzZXRYTW90aW9uRXZlbnRGaWVsZHMpOgorICAgICAgICAoV2ViS2l0OjpzZXRYQnV0dG9uRXZl
bnRGaWVsZHMpOgorICAgICAgICAoV2ViS2l0OjpzZXRYQ3Jvc3NpbmdFdmVudEZpZWxkcyk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZU1vdXNlRXZlbnQp
OgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVNb3VzZUVu
dGVyRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5k
bGVNb3VzZUxlYXZlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpzZXRYS2V5RXZlbnRGaWVsZHMp
OgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVLZXlib2Fy
ZEV2ZW50KToKKwogMjAxMS0wMy0xMCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5u
b3JvbmhhQGNvbGxhYm9yYS5jby51az4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJv
aGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5YMTEuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpblgxMS5jcHAK
aW5kZXggM2Q3NmQ1Mi4uYWM3ZjkyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpblgxMS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdp
blgxMS5jcHAKQEAgLTI0NywxNyArMjQ3LDg0IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW46OnBsYXRm
b3JtUGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBkaXJ0CiAj
ZW5kaWYKIH0KIAotTlBFdmVudCB0b05QKGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQorc3Rh
dGljIGlubGluZSB2b2lkIGluaXRpYWxpemVYRXZlbnQoWEV2ZW50JiBldmVudCkKIHsKLSNpZiBP
UyhTWU1CSUFOKQotICAgIE5QRXZlbnQgbnBFdmVudCA9IFFFdmVudChRRXZlbnQ6Ok5vbmUpOwot
I2Vsc2UKLSAgICBOUEV2ZW50IG5wRXZlbnQgPSBOUEV2ZW50KCk7Ci0jZW5kaWYKKyAgICBtZW1z
ZXQoJmV2ZW50LCAwLCBzaXplb2YoWEV2ZW50KSk7CisgICAgZXZlbnQueGFueS5zZXJpYWwgPSAw
OworICAgIGV2ZW50Lnhhbnkuc2VuZF9ldmVudCA9IGZhbHNlOworICAgIGV2ZW50LnhhbnkuZGlz
cGxheSA9IHgxMURpc3BsYXkoKTsKKyAgICBldmVudC54YW55LndpbmRvdyA9IDA7Cit9CiAKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworc3RhdGljIGlubGluZSB1aW50NjRfdCB4VGltZVN0YW1wKGRv
dWJsZSB0aW1lc3RhbXBJblNlY29uZHMpCit7CisgICAgcmV0dXJuIHRpbWVzdGFtcEluU2Vjb25k
cyAqIDEwMDAuMDsKK30KIAotICAgIHJldHVybiBucEV2ZW50Oworc3RhdGljIGlubGluZSB1bnNp
Z25lZCB4S2V5TW9kaWZpZXJzKGNvbnN0IFdlYkV2ZW50JiBldmVudCkKK3sKKyAgICB1bnNpZ25l
ZCB4TW9kaWZpZXJzID0gMDsKKyAgICBpZiAoZXZlbnQuY29udHJvbEtleSgpKQorICAgICAgICB4
TW9kaWZpZXJzIHw9IENvbnRyb2xNYXNrOworICAgIGlmIChldmVudC5zaGlmdEtleSgpKQorICAg
ICAgICB4TW9kaWZpZXJzIHw9IFNoaWZ0TWFzazsKKyAgICBpZiAoZXZlbnQuYWx0S2V5KCkpCisg
ICAgICAgIHhNb2RpZmllcnMgfD0gTW9kMU1hc2s7CisgICAgaWYgKGV2ZW50Lm1ldGFLZXkoKSkK
KyAgICAgICAgeE1vZGlmaWVycyB8PSBNb2Q0TWFzazsKKworICAgIHJldHVybiB4TW9kaWZpZXJz
OworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgWEV2ZW50VHlwZT4KK3N0YXRpYyBpbmxpbmUgdm9p
ZCBzZXRDb21tb25Nb3VzZUV2ZW50RmllbGRzKFhFdmVudFR5cGUmIHhFdmVudCwgY29uc3QgV2Vi
TW91c2VFdmVudCYgd2ViRXZlbnQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwbHVnaW5Mb2Nh
dGlvbikKK3sKKyAgICB4RXZlbnQucm9vdCA9IHJvb3RXaW5kb3dJRCgpOworICAgIHhFdmVudC5z
dWJ3aW5kb3cgPSAwOworICAgIHhFdmVudC50aW1lID0geFRpbWVTdGFtcCh3ZWJFdmVudC50aW1l
c3RhbXAoKSk7CisgICAgeEV2ZW50LnggPSB3ZWJFdmVudC5wb3NpdGlvbigpLngoKSAtIHBsdWdp
bkxvY2F0aW9uLngoKTsKKyAgICB4RXZlbnQueSA9IHdlYkV2ZW50LnBvc2l0aW9uKCkueSgpIC0g
cGx1Z2luTG9jYXRpb24ueSgpOworICAgIHhFdmVudC54X3Jvb3QgPSB3ZWJFdmVudC5nbG9iYWxQ
b3NpdGlvbigpLngoKTsKKyAgICB4RXZlbnQueV9yb290ID0gd2ViRXZlbnQuZ2xvYmFsUG9zaXRp
b24oKS55KCk7CisgICAgeEV2ZW50LnN0YXRlID0geEtleU1vZGlmaWVycyh3ZWJFdmVudCk7Cisg
ICAgeEV2ZW50LnNhbWVfc2NyZWVuID0gdHJ1ZTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHNl
dFhNb3Rpb25FdmVudEZpZWxkcyhYRXZlbnQmIHhFdmVudCwgY29uc3QgV2ViTW91c2VFdmVudCYg
d2ViRXZlbnQsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwbHVnaW5Mb2NhdGlvbikKK3sKKyAg
ICBYTW90aW9uRXZlbnQmIHhNb3Rpb24gPSB4RXZlbnQueG1vdGlvbjsKKyAgICBzZXRDb21tb25N
b3VzZUV2ZW50RmllbGRzKHhNb3Rpb24sIHdlYkV2ZW50LCBwbHVnaW5Mb2NhdGlvbik7CisgICAg
eE1vdGlvbi50eXBlID0gTW90aW9uTm90aWZ5OworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0
WEJ1dHRvbkV2ZW50RmllbGRzKFhFdmVudCYgeEV2ZW50LCBjb25zdCBXZWJNb3VzZUV2ZW50JiB3
ZWJFdmVudCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBsdWdpbkxvY2F0aW9uKQoreworICAg
IFhCdXR0b25FdmVudCYgeEJ1dHRvbiA9IHhFdmVudC54YnV0dG9uOworICAgIHNldENvbW1vbk1v
dXNlRXZlbnRGaWVsZHMoeEJ1dHRvbiwgd2ViRXZlbnQsIHBsdWdpbkxvY2F0aW9uKTsKKworICAg
IHhCdXR0b24udHlwZSA9ICh3ZWJFdmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6Ok1vdXNlRG93bikg
PyBCdXR0b25QcmVzcyA6IEJ1dHRvblJlbGVhc2U7CisgICAgc3dpdGNoICh3ZWJFdmVudC5idXR0
b24oKSkgeworICAgIGNhc2UgV2ViTW91c2VFdmVudDo6TGVmdEJ1dHRvbjoKKyAgICAgICAgeEJ1
dHRvbi5idXR0b24gPSBCdXR0b24xOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYk1vdXNl
RXZlbnQ6Ok1pZGRsZUJ1dHRvbjoKKyAgICAgICAgeEJ1dHRvbi5idXR0b24gPSBCdXR0b24yOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOgorICAg
ICAgICB4QnV0dG9uLmJ1dHRvbiA9IEJ1dHRvbjM7CisgICAgICAgIGJyZWFrOworICAgIH0KK30K
Kworc3RhdGljIGlubGluZSB2b2lkIHNldFhDcm9zc2luZ0V2ZW50RmllbGRzKFhFdmVudCYgeEV2
ZW50LCBjb25zdCBXZWJNb3VzZUV2ZW50JiB3ZWJFdmVudCwgY29uc3QgV2ViQ29yZTo6SW50UG9p
bnQmIHBsdWdpbkxvY2F0aW9uLCBpbnQgdHlwZSkKK3sKKyAgICBYQ3Jvc3NpbmdFdmVudCYgeENy
b3NzaW5nID0geEV2ZW50Lnhjcm9zc2luZzsKKyAgICBzZXRDb21tb25Nb3VzZUV2ZW50RmllbGRz
KHhDcm9zc2luZywgd2ViRXZlbnQsIHBsdWdpbkxvY2F0aW9uKTsKKworICAgIHhDcm9zc2luZy50
eXBlID0gdHlwZTsKKyAgICB4Q3Jvc3NpbmcubW9kZSA9IE5vdGlmeU5vcm1hbDsKKyAgICB4Q3Jv
c3NpbmcuZGV0YWlsID0gTm90aWZ5RGV0YWlsTm9uZTsKKyAgICB4Q3Jvc3NpbmcuZm9jdXMgPSBm
YWxzZTsKIH0KIAogYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVNb3VzZUV2ZW50
KGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQpAQCAtMjY1LDExICszMzIsMjkgQEAgYm9vbCBO
ZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVNb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZl
bnQmIGV2ZW50KQogICAgIGlmIChtX2lzV2luZG93ZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIE5QRXZlbnQgbnBFdmVudCA9IHRvTlAoZXZlbnQpOwotICAgIE5QUF9IYW5kbGVFdmVu
dCgmbnBFdmVudCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgWEV2ZW50IHhFdmVudDsKKyAgICBp
bml0aWFsaXplWEV2ZW50KHhFdmVudCk7CisKKyAgICBzd2l0Y2ggKGV2ZW50LnR5cGUoKSkgewor
ICAgIGNhc2UgV2ViRXZlbnQ6Ok1vdXNlRG93bjoKKyAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZVVw
OgorICAgICAgICBzZXRYQnV0dG9uRXZlbnRGaWVsZHMoeEV2ZW50LCBldmVudCwgbV9mcmFtZVJl
Y3QubG9jYXRpb24oKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViRXZlbnQ6Ok1vdXNl
TW92ZToKKyAgICAgICAgc2V0WE1vdGlvbkV2ZW50RmllbGRzKHhFdmVudCwgZXZlbnQsIG1fZnJh
bWVSZWN0LmxvY2F0aW9uKCkpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4g
TlBQX0hhbmRsZUV2ZW50KCZ4RXZlbnQpOwogfQogCisvLyBXZSB1bmRlZmluZSB0aGVzZSBjb25z
dGFudHMgaW4gbnBydW50aW1lX2ludGVybmFsLmggdG8gYXZvaWQgY29sbG9zaW9uCisvLyB3aXRo
IFdlYktpdCBhbmQgcGxhdGZvcm0gaGVhZGVycy4gVmFsdWVzIGFyZSBkZWZpbmVkIGluIFguaC4K
K2NvbnN0IGludCBrS2V5UHJlc3NUeXBlID0gMjsKK2NvbnN0IGludCBrS2V5UmVsZWFzZVR5cGUg
PSAzOworY29uc3QgaW50IGtGb2N1c0luVHlwZSA9IDk7Citjb25zdCBpbnQga0ZvY3VzT3V0VHlw
ZSA9IDEwOworCiBib29sIE5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZVdoZWVsRXZlbnQo
Y29uc3QgV2ViV2hlZWxFdmVudCYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTI4Niw5
ICszNzEsMTEgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVNb3VzZUVudGVy
RXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCiAgICAgaWYgKG1faXNXaW5kb3dlZCkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgTlBFdmVudCBucEV2ZW50ID0gdG9OUChldmVu
dCk7Ci0gICAgTlBQX0hhbmRsZUV2ZW50KCZucEV2ZW50KTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAg
ICBYRXZlbnQgeEV2ZW50OworICAgIGluaXRpYWxpemVYRXZlbnQoeEV2ZW50KTsKKyAgICBzZXRY
Q3Jvc3NpbmdFdmVudEZpZWxkcyh4RXZlbnQsIGV2ZW50LCBtX2ZyYW1lUmVjdC5sb2NhdGlvbigp
LCBFbnRlck5vdGlmeSk7CisKKyAgICByZXR1cm4gTlBQX0hhbmRsZUV2ZW50KCZ4RXZlbnQpOwog
fQogCiBib29sIE5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZU1vdXNlTGVhdmVFdmVudChj
b25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkKQEAgLTI5NiwxNSArMzgzLDQ0IEBAIGJvb2wgTmV0
c2NhcGVQbHVnaW46OnBsYXRmb3JtSGFuZGxlTW91c2VMZWF2ZUV2ZW50KGNvbnN0IFdlYk1vdXNl
RXZlbnQmIGV2ZW50KQogICAgIGlmIChtX2lzV2luZG93ZWQpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIE5QRXZlbnQgbnBFdmVudCA9IHRvTlAoZXZlbnQpOwotICAgIE5QUF9IYW5kbGVF
dmVudCgmbnBFdmVudCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgWEV2ZW50IHhFdmVudDsKKyAg
ICBpbml0aWFsaXplWEV2ZW50KHhFdmVudCk7CisgICAgc2V0WENyb3NzaW5nRXZlbnRGaWVsZHMo
eEV2ZW50LCBldmVudCwgbV9mcmFtZVJlY3QubG9jYXRpb24oKSwgTGVhdmVOb3RpZnkpOworCisg
ICAgcmV0dXJuIE5QUF9IYW5kbGVFdmVudCgmeEV2ZW50KTsKIH0KIAotYm9vbCBOZXRzY2FwZVBs
dWdpbjo6cGxhdGZvcm1IYW5kbGVLZXlib2FyZEV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQm
KQorc3RhdGljIGlubGluZSB2b2lkIHNldFhLZXlFdmVudEZpZWxkcyhYRXZlbnQmIHhFdmVudCwg
Y29uc3QgV2ViS2V5Ym9hcmRFdmVudCYgd2ViRXZlbnQpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgeEV2ZW50LnhhbnkudHlwZSA9ICh3ZWJFdmVudC50
eXBlKCkgPT0gV2ViRXZlbnQ6OktleURvd24pID8ga0tleVByZXNzVHlwZSA6IGtLZXlSZWxlYXNl
VHlwZTsKKyAgICBYS2V5RXZlbnQmIHhLZXkgPSB4RXZlbnQueGtleTsKKyAgICB4S2V5LnJvb3Qg
PSByb290V2luZG93SUQoKTsKKyAgICB4S2V5LnN1YndpbmRvdyA9IDA7CisgICAgeEtleS50aW1l
ID0geFRpbWVTdGFtcCh3ZWJFdmVudC50aW1lc3RhbXAoKSk7CisgICAgeEtleS5zdGF0ZSA9IHhL
ZXlNb2RpZmllcnMod2ViRXZlbnQpOworICAgIHhLZXkua2V5Y29kZSA9IHdlYkV2ZW50Lm5hdGl2
ZVZpcnR1YWxLZXlDb2RlKCk7CisKKyAgICB4S2V5LnNhbWVfc2NyZWVuID0gdHJ1ZTsKKworICAg
IC8vIEtleSBldmVudHMgcHJvcGFnYXRlZCB0byB0aGUgcGx1Z2luIGRvZXMgbm90IG5lZWQgdG8g
aGF2ZSBwb3NpdGlvbi4KKyAgICAvLyBzb3VyY2U6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEu
b3JnL2VuL05QRXZlbnQKKyAgICB4S2V5LnggPSAwOworICAgIHhLZXkueSA9IDA7CisgICAgeEtl
eS54X3Jvb3QgPSAwOworICAgIHhLZXkueV9yb290ID0gMDsKK30KKworYm9vbCBOZXRzY2FwZVBs
dWdpbjo6cGxhdGZvcm1IYW5kbGVLZXlib2FyZEV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQm
IGV2ZW50KQoreworICAgIFdlYkV2ZW50OjpUeXBlIHR5cGUgPSBldmVudC50eXBlKCk7CisKKyAg
ICBBU1NFUlQodHlwZSA9PSBXZWJFdmVudDo6S2V5RG93biB8fCB0eXBlID09IFdlYkV2ZW50OjpL
ZXlVcCk7IC8vIFdlIGRvbid0IGdlbmVyYXRlIG90aGVyIHR5cGVzLgorCisgICAgWEV2ZW50IHhF
dmVudDsKKyAgICBpbml0aWFsaXplWEV2ZW50KHhFdmVudCk7CisgICAgc2V0WEtleUV2ZW50Rmll
bGRzKHhFdmVudCwgZXZlbnQpOworCisgICAgcmV0dXJuIE5QUF9IYW5kbGVFdmVudCgmeEV2ZW50
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0tIAoxLjcuMy4yCgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85342</attachid>
            <date>2011-03-10 09:37:28 -0800</date>
            <delta_ts>2011-03-22 12:24:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-WK2-Handle-keyboard-and-mouse-events-on-X11.patch</filename>
            <type>text/plain</type>
            <size>8738</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">RnJvbSA1MGMzN2U5YWE4YTkwZjdjY2UxZTg0ZmZlMmZiZDhiYjAxMGM5YmMyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBCYWxhenMgS2VsZW1lbiA8a2JhbGF6c0B3ZWJraXQub3JnPgpE
YXRlOiBUaHUsIDEwIE1hciAyMDExIDE2OjM2OjIzICswMDAwClN1YmplY3Q6IFtQQVRDSF0gW1dL
Ml0gSGFuZGxlIGtleWJvYXJkIGFuZCBtb3VzZSBldmVudHMgb24gWDExCiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYxMDMKClJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgoKUHJvcGFnYXRlIGtleWJvYXJkIGFuZCBtb3VzZSBldmVudHMgdG8gdGhlIHBsdWdpbgph
cyBYRXZlbnQncy4KCiogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBs
dWdpblgxMS5jcHA6CihXZWJLaXQ6OmluaXRpYWxpemVYRXZlbnQpOgooV2ViS2l0Ojp4VGltZVN0
YW1wKToKKFdlYktpdDo6eEtleU1vZGlmaWVycyk6CihXZWJLaXQ6OnNldENvbW1vbk1vdXNlRXZl
bnRGaWVsZHMpOgooV2ViS2l0OjpzZXRYTW90aW9uRXZlbnRGaWVsZHMpOgooV2ViS2l0OjpzZXRY
QnV0dG9uRXZlbnRGaWVsZHMpOgooV2ViS2l0OjpzZXRYQ3Jvc3NpbmdFdmVudEZpZWxkcyk6CihX
ZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZU1vdXNlRXZlbnQpOgooV2ViS2l0
OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVNb3VzZUVudGVyRXZlbnQpOgooV2ViS2l0
OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVNb3VzZUxlYXZlRXZlbnQpOgooV2ViS2l0
OjpzZXRYS2V5RXZlbnRGaWVsZHMpOgooV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1I
YW5kbGVLZXlib2FyZEV2ZW50KToKLS0tCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAg
ICAgICAgICAgICAgICAgICAgICB8ICAgMjQgKysrCiAuLi4vUGx1Z2lucy9OZXRzY2FwZS94MTEv
TmV0c2NhcGVQbHVnaW5YMTEuY3BwICAgICB8ICAxNTQgKysrKysrKysrKysrKysrKystLS0KIDIg
ZmlsZXMgY2hhbmdlZCwgMTU4IGluc2VydGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZwppbmRleCAwMzMwOTI3Li4zNTAwMDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIw
MTEtMDMtMTAgIEJhbGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXSzJdIEhhbmRsZSBrZXli
b2FyZCBhbmQgbW91c2UgZXZlbnRzIG9uIFgxMQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTYxMDMKKworICAgICAgICBQcm9wYWdhdGUga2V5Ym9hcmQg
YW5kIG1vdXNlIGV2ZW50cyB0byB0aGUgcGx1Z2luCisgICAgICAgIGFzIFhFdmVudCdzLgorCisg
ICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpblgx
MS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmluaXRpYWxpemVYRXZlbnQpOgorICAgICAgICAoV2Vi
S2l0Ojp4VGltZVN0YW1wKToKKyAgICAgICAgKFdlYktpdDo6eEtleU1vZGlmaWVycyk6CisgICAg
ICAgIChXZWJLaXQ6OnNldENvbW1vbk1vdXNlRXZlbnRGaWVsZHMpOgorICAgICAgICAoV2ViS2l0
OjpzZXRYTW90aW9uRXZlbnRGaWVsZHMpOgorICAgICAgICAoV2ViS2l0OjpzZXRYQnV0dG9uRXZl
bnRGaWVsZHMpOgorICAgICAgICAoV2ViS2l0OjpzZXRYQ3Jvc3NpbmdFdmVudEZpZWxkcyk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZU1vdXNlRXZlbnQp
OgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVNb3VzZUVu
dGVyRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5k
bGVNb3VzZUxlYXZlRXZlbnQpOgorICAgICAgICAoV2ViS2l0OjpzZXRYS2V5RXZlbnRGaWVsZHMp
OgorICAgICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVLZXlib2Fy
ZEV2ZW50KToKKwogMjAxMS0wMy0xMCAgR3VzdGF2byBOb3JvbmhhIFNpbHZhICA8Z3VzdGF2by5u
b3JvbmhhQGNvbGxhYm9yYS5jby51az4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJv
aGRlIENocmlzdGlhbnNlbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5YMTEuY3BwIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpblgxMS5jcHAK
aW5kZXggM2Q3NmQ1Mi4uNDY1ZTY4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpblgxMS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdp
blgxMS5jcHAKQEAgLTI0NywxNyArMjQ3LDg0IEBAIHZvaWQgTmV0c2NhcGVQbHVnaW46OnBsYXRm
b3JtUGFpbnQoR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBJbnRSZWN0JiBkaXJ0CiAj
ZW5kaWYKIH0KIAotTlBFdmVudCB0b05QKGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQorc3Rh
dGljIGlubGluZSB2b2lkIGluaXRpYWxpemVYRXZlbnQoWEV2ZW50JiBldmVudCkKIHsKLSNpZiBP
UyhTWU1CSUFOKQotICAgIE5QRXZlbnQgbnBFdmVudCA9IFFFdmVudChRRXZlbnQ6Ok5vbmUpOwot
I2Vsc2UKLSAgICBOUEV2ZW50IG5wRXZlbnQgPSBOUEV2ZW50KCk7Ci0jZW5kaWYKKyAgICBtZW1z
ZXQoJmV2ZW50LCAwLCBzaXplb2YoWEV2ZW50KSk7CisgICAgZXZlbnQueGFueS5zZXJpYWwgPSAw
OworICAgIGV2ZW50Lnhhbnkuc2VuZF9ldmVudCA9IGZhbHNlOworICAgIGV2ZW50LnhhbnkuZGlz
cGxheSA9IHgxMURpc3BsYXkoKTsKKyAgICBldmVudC54YW55LndpbmRvdyA9IDA7Cit9CiAKLSAg
ICBub3RJbXBsZW1lbnRlZCgpOworc3RhdGljIGlubGluZSB1aW50NjRfdCB4VGltZVN0YW1wKGRv
dWJsZSB0aW1lc3RhbXBJblNlY29uZHMpCit7CisgICAgcmV0dXJuIHRpbWVzdGFtcEluU2Vjb25k
cyAqIDEwMDAuMDsKK30KKworc3RhdGljIGlubGluZSB1bnNpZ25lZCB4S2V5TW9kaWZpZXJzKGNv
bnN0IFdlYkV2ZW50JiBldmVudCkKK3sKKyAgICB1bnNpZ25lZCB4TW9kaWZpZXJzID0gMDsKKyAg
ICBpZiAoZXZlbnQuY29udHJvbEtleSgpKQorICAgICAgICB4TW9kaWZpZXJzIHw9IENvbnRyb2xN
YXNrOworICAgIGlmIChldmVudC5zaGlmdEtleSgpKQorICAgICAgICB4TW9kaWZpZXJzIHw9IFNo
aWZ0TWFzazsKKyAgICBpZiAoZXZlbnQuYWx0S2V5KCkpCisgICAgICAgIHhNb2RpZmllcnMgfD0g
TW9kMU1hc2s7CisgICAgaWYgKGV2ZW50Lm1ldGFLZXkoKSkKKyAgICAgICAgeE1vZGlmaWVycyB8
PSBNb2Q0TWFzazsKKworICAgIHJldHVybiB4TW9kaWZpZXJzOworfQorCit0ZW1wbGF0ZSA8dHlw
ZW5hbWUgWEV2ZW50VHlwZT4KK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXRDb21tb25Nb3VzZUV2ZW50
RmllbGRzKFhFdmVudFR5cGUmIHhFdmVudCwgY29uc3QgV2ViTW91c2VFdmVudCYgd2ViRXZlbnQs
IGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiBwbHVnaW5Mb2NhdGlvbikKK3sKKyAgICB4RXZlbnQu
cm9vdCA9IHJvb3RXaW5kb3dJRCgpOworICAgIHhFdmVudC5zdWJ3aW5kb3cgPSAwOworICAgIHhF
dmVudC50aW1lID0geFRpbWVTdGFtcCh3ZWJFdmVudC50aW1lc3RhbXAoKSk7CisgICAgeEV2ZW50
LnggPSB3ZWJFdmVudC5wb3NpdGlvbigpLngoKSAtIHBsdWdpbkxvY2F0aW9uLngoKTsKKyAgICB4
RXZlbnQueSA9IHdlYkV2ZW50LnBvc2l0aW9uKCkueSgpIC0gcGx1Z2luTG9jYXRpb24ueSgpOwor
ICAgIHhFdmVudC54X3Jvb3QgPSB3ZWJFdmVudC5nbG9iYWxQb3NpdGlvbigpLngoKTsKKyAgICB4
RXZlbnQueV9yb290ID0gd2ViRXZlbnQuZ2xvYmFsUG9zaXRpb24oKS55KCk7CisgICAgeEV2ZW50
LnN0YXRlID0geEtleU1vZGlmaWVycyh3ZWJFdmVudCk7CisgICAgeEV2ZW50LnNhbWVfc2NyZWVu
ID0gdHJ1ZTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIHNldFhNb3Rpb25FdmVudEZpZWxkcyhY
RXZlbnQmIHhFdmVudCwgY29uc3QgV2ViTW91c2VFdmVudCYgd2ViRXZlbnQsIGNvbnN0IFdlYkNv
cmU6OkludFBvaW50JiBwbHVnaW5Mb2NhdGlvbikKK3sKKyAgICBYTW90aW9uRXZlbnQmIHhNb3Rp
b24gPSB4RXZlbnQueG1vdGlvbjsKKyAgICBzZXRDb21tb25Nb3VzZUV2ZW50RmllbGRzKHhNb3Rp
b24sIHdlYkV2ZW50LCBwbHVnaW5Mb2NhdGlvbik7CisgICAgeE1vdGlvbi50eXBlID0gTW90aW9u
Tm90aWZ5OworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0WEJ1dHRvbkV2ZW50RmllbGRzKFhF
dmVudCYgeEV2ZW50LCBjb25zdCBXZWJNb3VzZUV2ZW50JiB3ZWJFdmVudCwgY29uc3QgV2ViQ29y
ZTo6SW50UG9pbnQmIHBsdWdpbkxvY2F0aW9uKQoreworICAgIFhCdXR0b25FdmVudCYgeEJ1dHRv
biA9IHhFdmVudC54YnV0dG9uOworICAgIHNldENvbW1vbk1vdXNlRXZlbnRGaWVsZHMoeEJ1dHRv
biwgd2ViRXZlbnQsIHBsdWdpbkxvY2F0aW9uKTsKKworICAgIHhCdXR0b24udHlwZSA9ICh3ZWJF
dmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6Ok1vdXNlRG93bikgPyBCdXR0b25QcmVzcyA6IEJ1dHRv
blJlbGVhc2U7CisgICAgc3dpdGNoICh3ZWJFdmVudC5idXR0b24oKSkgeworICAgIGNhc2UgV2Vi
TW91c2VFdmVudDo6TGVmdEJ1dHRvbjoKKyAgICAgICAgeEJ1dHRvbi5idXR0b24gPSBCdXR0b24x
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYk1vdXNlRXZlbnQ6Ok1pZGRsZUJ1dHRvbjoK
KyAgICAgICAgeEJ1dHRvbi5idXR0b24gPSBCdXR0b24yOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIFdlYk1vdXNlRXZlbnQ6OlJpZ2h0QnV0dG9uOgorICAgICAgICB4QnV0dG9uLmJ1dHRvbiA9
IEJ1dHRvbjM7CisgICAgICAgIGJyZWFrOworICAgIH0KK30KKworc3RhdGljIGlubGluZSB2b2lk
IHNldFhDcm9zc2luZ0V2ZW50RmllbGRzKFhFdmVudCYgeEV2ZW50LCBjb25zdCBXZWJNb3VzZUV2
ZW50JiB3ZWJFdmVudCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBsdWdpbkxvY2F0aW9uLCBp
bnQgdHlwZSkKK3sKKyAgICBYQ3Jvc3NpbmdFdmVudCYgeENyb3NzaW5nID0geEV2ZW50Lnhjcm9z
c2luZzsKKyAgICBzZXRDb21tb25Nb3VzZUV2ZW50RmllbGRzKHhDcm9zc2luZywgd2ViRXZlbnQs
IHBsdWdpbkxvY2F0aW9uKTsKIAotICAgIHJldHVybiBucEV2ZW50OworICAgIHhDcm9zc2luZy50
eXBlID0gdHlwZTsKKyAgICB4Q3Jvc3NpbmcubW9kZSA9IE5vdGlmeU5vcm1hbDsKKyAgICB4Q3Jv
c3NpbmcuZGV0YWlsID0gTm90aWZ5RGV0YWlsTm9uZTsKKyAgICB4Q3Jvc3NpbmcuZm9jdXMgPSBm
YWxzZTsKIH0KIAogYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVNb3VzZUV2ZW50
KGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQpAQCAtMjY1LDExICszMzIsMjkgQEAgYm9vbCBO
ZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVNb3VzZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZl
bnQmIGV2ZW50KQogICAgIGlmIChtX2lzV2luZG93ZWQpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAotICAgIE5QRXZlbnQgbnBFdmVudCA9IHRvTlAoZXZlbnQpOwotICAgIE5QUF9IYW5kbGVFdmVu
dCgmbnBFdmVudCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgWEV2ZW50IHhFdmVudDsKKyAgICBp
bml0aWFsaXplWEV2ZW50KHhFdmVudCk7CisKKyAgICBzd2l0Y2ggKGV2ZW50LnR5cGUoKSkgewor
ICAgIGNhc2UgV2ViRXZlbnQ6Ok1vdXNlRG93bjoKKyAgICBjYXNlIFdlYkV2ZW50OjpNb3VzZVVw
OgorICAgICAgICBzZXRYQnV0dG9uRXZlbnRGaWVsZHMoeEV2ZW50LCBldmVudCwgbV9mcmFtZVJl
Y3QubG9jYXRpb24oKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViRXZlbnQ6Ok1vdXNl
TW92ZToKKyAgICAgICAgc2V0WE1vdGlvbkV2ZW50RmllbGRzKHhFdmVudCwgZXZlbnQsIG1fZnJh
bWVSZWN0LmxvY2F0aW9uKCkpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4g
TlBQX0hhbmRsZUV2ZW50KCZ4RXZlbnQpOwogfQogCisvLyBXZSB1bmRlZmluZSB0aGVzZSBjb25z
dGFudHMgaW4gbnBydW50aW1lX2ludGVybmFsLmggdG8gYXZvaWQgY29sbG9zaW9uCisvLyB3aXRo
IFdlYktpdCBhbmQgcGxhdGZvcm0gaGVhZGVycy4gVmFsdWVzIGFyZSBkZWZpbmVkIGluIFguaC4K
K2NvbnN0IGludCBrS2V5UHJlc3NUeXBlID0gMjsKK2NvbnN0IGludCBrS2V5UmVsZWFzZVR5cGUg
PSAzOworY29uc3QgaW50IGtGb2N1c0luVHlwZSA9IDk7Citjb25zdCBpbnQga0ZvY3VzT3V0VHlw
ZSA9IDEwOworCiBib29sIE5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZVdoZWVsRXZlbnQo
Y29uc3QgV2ViV2hlZWxFdmVudCYpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKQEAgLTI4Niw5
ICszNzEsMTEgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVNb3VzZUVudGVy
RXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCiAgICAgaWYgKG1faXNXaW5kb3dlZCkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgTlBFdmVudCBucEV2ZW50ID0gdG9OUChldmVu
dCk7Ci0gICAgTlBQX0hhbmRsZUV2ZW50KCZucEV2ZW50KTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAg
ICBYRXZlbnQgeEV2ZW50OworICAgIGluaXRpYWxpemVYRXZlbnQoeEV2ZW50KTsKKyAgICBzZXRY
Q3Jvc3NpbmdFdmVudEZpZWxkcyh4RXZlbnQsIGV2ZW50LCBtX2ZyYW1lUmVjdC5sb2NhdGlvbigp
LCBFbnRlck5vdGlmeSk7CisKKyAgICByZXR1cm4gTlBQX0hhbmRsZUV2ZW50KCZ4RXZlbnQpOwog
fQogCiBib29sIE5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZU1vdXNlTGVhdmVFdmVudChj
b25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkKQEAgLTI5NiwxNSArMzgzLDQyIEBAIGJvb2wgTmV0
c2NhcGVQbHVnaW46OnBsYXRmb3JtSGFuZGxlTW91c2VMZWF2ZUV2ZW50KGNvbnN0IFdlYk1vdXNl
RXZlbnQmIGV2ZW50KQogICAgIGlmIChtX2lzV2luZG93ZWQpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAotICAgIE5QRXZlbnQgbnBFdmVudCA9IHRvTlAoZXZlbnQpOwotICAgIE5QUF9IYW5kbGVF
dmVudCgmbnBFdmVudCk7Ci0gICAgcmV0dXJuIHRydWU7CisgICAgWEV2ZW50IHhFdmVudDsKKyAg
ICBpbml0aWFsaXplWEV2ZW50KHhFdmVudCk7CisgICAgc2V0WENyb3NzaW5nRXZlbnRGaWVsZHMo
eEV2ZW50LCBldmVudCwgbV9mcmFtZVJlY3QubG9jYXRpb24oKSwgTGVhdmVOb3RpZnkpOworCisg
ICAgcmV0dXJuIE5QUF9IYW5kbGVFdmVudCgmeEV2ZW50KTsKIH0KIAotYm9vbCBOZXRzY2FwZVBs
dWdpbjo6cGxhdGZvcm1IYW5kbGVLZXlib2FyZEV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQm
KQorc3RhdGljIGlubGluZSB2b2lkIHNldFhLZXlFdmVudEZpZWxkcyhYRXZlbnQmIHhFdmVudCwg
Y29uc3QgV2ViS2V5Ym9hcmRFdmVudCYgd2ViRXZlbnQpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQo
KTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgeEV2ZW50LnhhbnkudHlwZSA9ICh3ZWJFdmVudC50
eXBlKCkgPT0gV2ViRXZlbnQ6OktleURvd24pID8ga0tleVByZXNzVHlwZSA6IGtLZXlSZWxlYXNl
VHlwZTsKKyAgICBYS2V5RXZlbnQmIHhLZXkgPSB4RXZlbnQueGtleTsKKyAgICB4S2V5LnJvb3Qg
PSByb290V2luZG93SUQoKTsKKyAgICB4S2V5LnN1YndpbmRvdyA9IDA7CisgICAgeEtleS50aW1l
ID0geFRpbWVTdGFtcCh3ZWJFdmVudC50aW1lc3RhbXAoKSk7CisgICAgeEtleS5zdGF0ZSA9IHhL
ZXlNb2RpZmllcnMod2ViRXZlbnQpOworICAgIHhLZXkua2V5Y29kZSA9IHdlYkV2ZW50Lm5hdGl2
ZVZpcnR1YWxLZXlDb2RlKCk7CisKKyAgICB4S2V5LnNhbWVfc2NyZWVuID0gdHJ1ZTsKKworICAg
IC8vIEtleSBldmVudHMgcHJvcGFnYXRlZCB0byB0aGUgcGx1Z2luIGRvZXMgbm90IG5lZWQgdG8g
aGF2ZSBwb3NpdGlvbi4KKyAgICAvLyBzb3VyY2U6IGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEu
b3JnL2VuL05QRXZlbnQKKyAgICB4S2V5LnggPSAwOworICAgIHhLZXkueSA9IDA7CisgICAgeEtl
eS54X3Jvb3QgPSAwOworICAgIHhLZXkueV9yb290ID0gMDsKK30KKworYm9vbCBOZXRzY2FwZVBs
dWdpbjo6cGxhdGZvcm1IYW5kbGVLZXlib2FyZEV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQm
IGV2ZW50KQoreworICAgIEFTU0VSVChldmVudC50eXBlKCkgPT0gV2ViRXZlbnQ6OktleURvd24g
fHwgZXZlbnQudHlwZSgpID09IFdlYkV2ZW50OjpLZXlVcCk7IC8vIFdlIGRvbid0IGdlbmVyYXRl
IG90aGVyIHR5cGVzLgorCisgICAgWEV2ZW50IHhFdmVudDsKKyAgICBpbml0aWFsaXplWEV2ZW50
KHhFdmVudCk7CisgICAgc2V0WEtleUV2ZW50RmllbGRzKHhFdmVudCwgZXZlbnQpOworCisgICAg
cmV0dXJuIE5QUF9IYW5kbGVFdmVudCgmeEV2ZW50KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0Ci0tIAoxLjcuMy4yCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86492</attachid>
            <date>2011-03-22 12:24:30 -0700</date>
            <delta_ts>2011-03-23 15:03:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-56103-20110322192429.patch</filename>
            <type>text/plain</type>
            <size>7814</size>
            <attacher name="Balazs Kelemen">kbalazs</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODE2ODAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCAyZTQxNjQwM2QyY2NhOTM0
OTE5YzM4ODYyZmNkYTgxNDg3YWFkZDMyLi4yZGYxMmIzZTUzOGY0MDhkNDQxZGIwZDUxZmMwZDhl
MDExZjQxYTVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDMtMjIgIEJhbGF6
cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFtXSzJdIEhhbmRsZSBrZXlib2FyZCBhbmQgbW91c2Ug
ZXZlbnRzIG9uIFgxMQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTYxMDMKKworICAgICAgICBQcm9wYWdhdGUga2V5Ym9hcmQgYW5kIG1vdXNlIGV2ZW50
cyB0byB0aGUgcGx1Z2luCisgICAgICAgIGFzIFhFdmVudCdzLgorCisgICAgICAgICogV2ViUHJv
Y2Vzcy9QbHVnaW5zL05ldHNjYXBlL3gxMS9OZXRzY2FwZVBsdWdpblgxMS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OmluaXRpYWxpemVYRXZlbnQpOgorICAgICAgICAoV2ViS2l0Ojp4VGltZVN0YW1w
KToKKyAgICAgICAgKFdlYktpdDo6eEtleU1vZGlmaWVycyk6CisgICAgICAgIChXZWJLaXQ6OnNl
dENvbW1vbk1vdXNlRXZlbnRGaWVsZHMpOgorICAgICAgICAoV2ViS2l0OjpzZXRYTW90aW9uRXZl
bnRGaWVsZHMpOgorICAgICAgICAoV2ViS2l0OjpzZXRYQnV0dG9uRXZlbnRGaWVsZHMpOgorICAg
ICAgICAoV2ViS2l0OjpzZXRYQ3Jvc3NpbmdFdmVudEZpZWxkcyk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZU1vdXNlRXZlbnQpOgorICAgICAgICAoV2Vi
S2l0OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVNb3VzZUVudGVyRXZlbnQpOgorICAg
ICAgICAoV2ViS2l0OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVNb3VzZUxlYXZlRXZl
bnQpOgorICAgICAgICAoV2ViS2l0OjpzZXRYS2V5RXZlbnRGaWVsZHMpOgorICAgICAgICAoV2Vi
S2l0OjpOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVLZXlib2FyZEV2ZW50KToKKwogMjAx
MS0wMy0yMiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvTmV0c2NhcGUveDExL05ldHNjYXBlUGx1Z2luWDExLmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5Y
MTEuY3BwCmluZGV4IDE2ZGIxOTkyZTQzNmM4YjJiZjljMDhmODU3ZWZhYTc3ZTYxMzQ5MmYuLjhj
MWZlZjZkMmY0ZGNlMmRiZTlmMzdhYmU4NjhiY2ZlNWI1MGQwOGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS94MTEvTmV0c2NhcGVQbHVnaW5Y
MTEuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9OZXRzY2FwZS94
MTEvTmV0c2NhcGVQbHVnaW5YMTEuY3BwCkBAIC0yNDcsMTcgKzI0Nyw4NCBAQCB2b2lkIE5ldHNj
YXBlUGx1Z2luOjpwbGF0Zm9ybVBhaW50KEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3Qg
SW50UmVjdCYgZGlydAogI2VuZGlmCiB9CiAKLU5QRXZlbnQgdG9OUChjb25zdCBXZWJNb3VzZUV2
ZW50JiBldmVudCkKK3N0YXRpYyBpbmxpbmUgdm9pZCBpbml0aWFsaXplWEV2ZW50KFhFdmVudCYg
ZXZlbnQpCiB7Ci0jaWYgT1MoU1lNQklBTikKLSAgICBOUEV2ZW50IG5wRXZlbnQgPSBRRXZlbnQo
UUV2ZW50OjpOb25lKTsKLSNlbHNlCi0gICAgTlBFdmVudCBucEV2ZW50ID0gTlBFdmVudCgpOwot
I2VuZGlmCisgICAgbWVtc2V0KCZldmVudCwgMCwgc2l6ZW9mKFhFdmVudCkpOworICAgIGV2ZW50
Lnhhbnkuc2VyaWFsID0gMDsKKyAgICBldmVudC54YW55LnNlbmRfZXZlbnQgPSBmYWxzZTsKKyAg
ICBldmVudC54YW55LmRpc3BsYXkgPSB4MTFEaXNwbGF5KCk7CisgICAgZXZlbnQueGFueS53aW5k
b3cgPSAwOworfQogCi0gICAgbm90SW1wbGVtZW50ZWQoKTsKK3N0YXRpYyBpbmxpbmUgdWludDY0
X3QgeFRpbWVTdGFtcChkb3VibGUgdGltZXN0YW1wSW5TZWNvbmRzKQoreworICAgIHJldHVybiB0
aW1lc3RhbXBJblNlY29uZHMgKiAxMDAwOworfQorCitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIHhL
ZXlNb2RpZmllcnMoY29uc3QgV2ViRXZlbnQmIGV2ZW50KQoreworICAgIHVuc2lnbmVkIHhNb2Rp
ZmllcnMgPSAwOworICAgIGlmIChldmVudC5jb250cm9sS2V5KCkpCisgICAgICAgIHhNb2RpZmll
cnMgfD0gQ29udHJvbE1hc2s7CisgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KCkpCisgICAgICAgIHhN
b2RpZmllcnMgfD0gU2hpZnRNYXNrOworICAgIGlmIChldmVudC5hbHRLZXkoKSkKKyAgICAgICAg
eE1vZGlmaWVycyB8PSBNb2QxTWFzazsKKyAgICBpZiAoZXZlbnQubWV0YUtleSgpKQorICAgICAg
ICB4TW9kaWZpZXJzIHw9IE1vZDRNYXNrOworCisgICAgcmV0dXJuIHhNb2RpZmllcnM7Cit9CisK
K3RlbXBsYXRlIDx0eXBlbmFtZSBYRXZlbnRUeXBlPgorc3RhdGljIGlubGluZSB2b2lkIHNldENv
bW1vbk1vdXNlRXZlbnRGaWVsZHMoWEV2ZW50VHlwZSYgeEV2ZW50LCBjb25zdCBXZWJNb3VzZUV2
ZW50JiB3ZWJFdmVudCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBsdWdpbkxvY2F0aW9uKQor
eworICAgIHhFdmVudC5yb290ID0gcm9vdFdpbmRvd0lEKCk7CisgICAgeEV2ZW50LnN1YndpbmRv
dyA9IDA7CisgICAgeEV2ZW50LnRpbWUgPSB4VGltZVN0YW1wKHdlYkV2ZW50LnRpbWVzdGFtcCgp
KTsKKyAgICB4RXZlbnQueCA9IHdlYkV2ZW50LnBvc2l0aW9uKCkueCgpIC0gcGx1Z2luTG9jYXRp
b24ueCgpOworICAgIHhFdmVudC55ID0gd2ViRXZlbnQucG9zaXRpb24oKS55KCkgLSBwbHVnaW5M
b2NhdGlvbi55KCk7CisgICAgeEV2ZW50Lnhfcm9vdCA9IHdlYkV2ZW50Lmdsb2JhbFBvc2l0aW9u
KCkueCgpOworICAgIHhFdmVudC55X3Jvb3QgPSB3ZWJFdmVudC5nbG9iYWxQb3NpdGlvbigpLnko
KTsKKyAgICB4RXZlbnQuc3RhdGUgPSB4S2V5TW9kaWZpZXJzKHdlYkV2ZW50KTsKKyAgICB4RXZl
bnQuc2FtZV9zY3JlZW4gPSB0cnVlOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0WE1vdGlv
bkV2ZW50RmllbGRzKFhFdmVudCYgeEV2ZW50LCBjb25zdCBXZWJNb3VzZUV2ZW50JiB3ZWJFdmVu
dCwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHBsdWdpbkxvY2F0aW9uKQoreworICAgIFhNb3Rp
b25FdmVudCYgeE1vdGlvbiA9IHhFdmVudC54bW90aW9uOworICAgIHNldENvbW1vbk1vdXNlRXZl
bnRGaWVsZHMoeE1vdGlvbiwgd2ViRXZlbnQsIHBsdWdpbkxvY2F0aW9uKTsKKyAgICB4TW90aW9u
LnR5cGUgPSBNb3Rpb25Ob3RpZnk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXRYQnV0dG9u
RXZlbnRGaWVsZHMoWEV2ZW50JiB4RXZlbnQsIGNvbnN0IFdlYk1vdXNlRXZlbnQmIHdlYkV2ZW50
LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcGx1Z2luTG9jYXRpb24pCit7CisgICAgWEJ1dHRv
bkV2ZW50JiB4QnV0dG9uID0geEV2ZW50LnhidXR0b247CisgICAgc2V0Q29tbW9uTW91c2VFdmVu
dEZpZWxkcyh4QnV0dG9uLCB3ZWJFdmVudCwgcGx1Z2luTG9jYXRpb24pOworCisgICAgeEJ1dHRv
bi50eXBlID0gKHdlYkV2ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6TW91c2VEb3duKSA/IEJ1dHRv
blByZXNzIDogQnV0dG9uUmVsZWFzZTsKKyAgICBzd2l0Y2ggKHdlYkV2ZW50LmJ1dHRvbigpKSB7
CisgICAgY2FzZSBXZWJNb3VzZUV2ZW50OjpMZWZ0QnV0dG9uOgorICAgICAgICB4QnV0dG9uLmJ1
dHRvbiA9IEJ1dHRvbjE7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViTW91c2VFdmVudDo6
TWlkZGxlQnV0dG9uOgorICAgICAgICB4QnV0dG9uLmJ1dHRvbiA9IEJ1dHRvbjI7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgV2ViTW91c2VFdmVudDo6UmlnaHRCdXR0b246CisgICAgICAgIHhC
dXR0b24uYnV0dG9uID0gQnV0dG9uMzsKKyAgICAgICAgYnJlYWs7CisgICAgfQorfQorCitzdGF0
aWMgaW5saW5lIHZvaWQgc2V0WENyb3NzaW5nRXZlbnRGaWVsZHMoWEV2ZW50JiB4RXZlbnQsIGNv
bnN0IFdlYk1vdXNlRXZlbnQmIHdlYkV2ZW50LCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgcGx1
Z2luTG9jYXRpb24sIGludCB0eXBlKQoreworICAgIFhDcm9zc2luZ0V2ZW50JiB4Q3Jvc3Npbmcg
PSB4RXZlbnQueGNyb3NzaW5nOworICAgIHNldENvbW1vbk1vdXNlRXZlbnRGaWVsZHMoeENyb3Nz
aW5nLCB3ZWJFdmVudCwgcGx1Z2luTG9jYXRpb24pOwogCi0gICAgcmV0dXJuIG5wRXZlbnQ7Cisg
ICAgeENyb3NzaW5nLnR5cGUgPSB0eXBlOworICAgIHhDcm9zc2luZy5tb2RlID0gTm90aWZ5Tm9y
bWFsOworICAgIHhDcm9zc2luZy5kZXRhaWwgPSBOb3RpZnlEZXRhaWxOb25lOworICAgIHhDcm9z
c2luZy5mb2N1cyA9IGZhbHNlOwogfQogCiBib29sIE5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhh
bmRsZU1vdXNlRXZlbnQoY29uc3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCkBAIC0yNjUsMTEgKzMz
MiwyOSBAQCBib29sIE5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZU1vdXNlRXZlbnQoY29u
c3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCiAgICAgaWYgKG1faXNXaW5kb3dlZCkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCi0gICAgTlBFdmVudCBucEV2ZW50ID0gdG9OUChldmVudCk7Ci0gICAg
TlBQX0hhbmRsZUV2ZW50KCZucEV2ZW50KTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBYRXZlbnQg
eEV2ZW50OworICAgIGluaXRpYWxpemVYRXZlbnQoeEV2ZW50KTsKKworICAgIHN3aXRjaCAoZXZl
bnQudHlwZSgpKSB7CisgICAgY2FzZSBXZWJFdmVudDo6TW91c2VEb3duOgorICAgIGNhc2UgV2Vi
RXZlbnQ6Ok1vdXNlVXA6CisgICAgICAgIHNldFhCdXR0b25FdmVudEZpZWxkcyh4RXZlbnQsIGV2
ZW50LCBtX2ZyYW1lUmVjdC5sb2NhdGlvbigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBX
ZWJFdmVudDo6TW91c2VNb3ZlOgorICAgICAgICBzZXRYTW90aW9uRXZlbnRGaWVsZHMoeEV2ZW50
LCBldmVudCwgbV9mcmFtZVJlY3QubG9jYXRpb24oKSk7CisgICAgICAgIGJyZWFrOworICAgIH0K
KworICAgIHJldHVybiBOUFBfSGFuZGxlRXZlbnQoJnhFdmVudCk7CiB9CiAKKy8vIFdlIHVuZGVm
aW5lIHRoZXNlIGNvbnN0YW50cyBpbiBucHJ1bnRpbWVfaW50ZXJuYWwuaCB0byBhdm9pZCBjb2xs
aXNpb24KKy8vIHdpdGggV2ViS2l0IGFuZCBwbGF0Zm9ybSBoZWFkZXJzLiBWYWx1ZXMgYXJlIGRl
ZmluZWQgaW4gWC5oLgorY29uc3QgaW50IGtLZXlQcmVzc1R5cGUgPSAyOworY29uc3QgaW50IGtL
ZXlSZWxlYXNlVHlwZSA9IDM7Citjb25zdCBpbnQga0ZvY3VzSW5UeXBlID0gOTsKK2NvbnN0IGlu
dCBrRm9jdXNPdXRUeXBlID0gMTA7CisKIGJvb2wgTmV0c2NhcGVQbHVnaW46OnBsYXRmb3JtSGFu
ZGxlV2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50JikKIHsKICAgICBub3RJbXBsZW1lbnRl
ZCgpOwpAQCAtMjg2LDkgKzM3MSwxMSBAQCBib29sIE5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhh
bmRsZU1vdXNlRW50ZXJFdmVudChjb25zdCBXZWJNb3VzZUV2ZW50JiBldmVudCkKICAgICBpZiAo
bV9pc1dpbmRvd2VkKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBOUEV2ZW50IG5wRXZl
bnQgPSB0b05QKGV2ZW50KTsKLSAgICBOUFBfSGFuZGxlRXZlbnQoJm5wRXZlbnQpOwotICAgIHJl
dHVybiB0cnVlOworICAgIFhFdmVudCB4RXZlbnQ7CisgICAgaW5pdGlhbGl6ZVhFdmVudCh4RXZl
bnQpOworICAgIHNldFhDcm9zc2luZ0V2ZW50RmllbGRzKHhFdmVudCwgZXZlbnQsIG1fZnJhbWVS
ZWN0LmxvY2F0aW9uKCksIEVudGVyTm90aWZ5KTsKKworICAgIHJldHVybiBOUFBfSGFuZGxlRXZl
bnQoJnhFdmVudCk7CiB9CiAKIGJvb2wgTmV0c2NhcGVQbHVnaW46OnBsYXRmb3JtSGFuZGxlTW91
c2VMZWF2ZUV2ZW50KGNvbnN0IFdlYk1vdXNlRXZlbnQmIGV2ZW50KQpAQCAtMjk2LDE1ICszODMs
NDMgQEAgYm9vbCBOZXRzY2FwZVBsdWdpbjo6cGxhdGZvcm1IYW5kbGVNb3VzZUxlYXZlRXZlbnQo
Y29uc3QgV2ViTW91c2VFdmVudCYgZXZlbnQpCiAgICAgaWYgKG1faXNXaW5kb3dlZCkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogCi0gICAgTlBFdmVudCBucEV2ZW50ID0gdG9OUChldmVudCk7Ci0g
ICAgTlBQX0hhbmRsZUV2ZW50KCZucEV2ZW50KTsKLSAgICByZXR1cm4gdHJ1ZTsKKyAgICBYRXZl
bnQgeEV2ZW50OworICAgIGluaXRpYWxpemVYRXZlbnQoeEV2ZW50KTsKKyAgICBzZXRYQ3Jvc3Np
bmdFdmVudEZpZWxkcyh4RXZlbnQsIGV2ZW50LCBtX2ZyYW1lUmVjdC5sb2NhdGlvbigpLCBMZWF2
ZU5vdGlmeSk7CisKKyAgICByZXR1cm4gTlBQX0hhbmRsZUV2ZW50KCZ4RXZlbnQpOwogfQogCi1i
b29sIE5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZUtleWJvYXJkRXZlbnQoY29uc3QgV2Vi
S2V5Ym9hcmRFdmVudCYpCitzdGF0aWMgaW5saW5lIHZvaWQgc2V0WEtleUV2ZW50RmllbGRzKFhF
dmVudCYgeEV2ZW50LCBjb25zdCBXZWJLZXlib2FyZEV2ZW50JiB3ZWJFdmVudCkKIHsKLSAgICBu
b3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsKKyAgICB4RXZlbnQueGFueS50eXBl
ID0gKHdlYkV2ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6S2V5RG93bikgPyBrS2V5UHJlc3NUeXBl
IDoga0tleVJlbGVhc2VUeXBlOworICAgIFhLZXlFdmVudCYgeEtleSA9IHhFdmVudC54a2V5Owor
ICAgIHhLZXkucm9vdCA9IHJvb3RXaW5kb3dJRCgpOworICAgIHhLZXkuc3Vid2luZG93ID0gMDsK
KyAgICB4S2V5LnRpbWUgPSB4VGltZVN0YW1wKHdlYkV2ZW50LnRpbWVzdGFtcCgpKTsKKyAgICB4
S2V5LnN0YXRlID0geEtleU1vZGlmaWVycyh3ZWJFdmVudCk7CisgICAgeEtleS5rZXljb2RlID0g
d2ViRXZlbnQubmF0aXZlVmlydHVhbEtleUNvZGUoKTsKKworICAgIHhLZXkuc2FtZV9zY3JlZW4g
PSB0cnVlOworCisgICAgLy8gS2V5IGV2ZW50cyBwcm9wYWdhdGVkIHRvIHRoZSBwbHVnaW4gZG9l
cyBub3QgbmVlZCB0byBoYXZlIHBvc2l0aW9uLgorICAgIC8vIHNvdXJjZTogaHR0cHM6Ly9kZXZl
bG9wZXIubW96aWxsYS5vcmcvZW4vTlBFdmVudAorICAgIHhLZXkueCA9IDA7CisgICAgeEtleS55
ID0gMDsKKyAgICB4S2V5Lnhfcm9vdCA9IDA7CisgICAgeEtleS55X3Jvb3QgPSAwOworfQorCiti
b29sIE5ldHNjYXBlUGx1Z2luOjpwbGF0Zm9ybUhhbmRsZUtleWJvYXJkRXZlbnQoY29uc3QgV2Vi
S2V5Ym9hcmRFdmVudCYgZXZlbnQpCit7CisgICAgLy8gV2UgZG9uJ3QgZ2VuZXJhdGUgb3RoZXIg
dHlwZXMgb2Yga2V5Ym9hcmQgZXZlbnRzIHZpYSBXZWJFdmVudEZhY3RvcnkuCisgICAgQVNTRVJU
KGV2ZW50LnR5cGUoKSA9PSBXZWJFdmVudDo6S2V5RG93biB8fCBldmVudC50eXBlKCkgPT0gV2Vi
RXZlbnQ6OktleVVwKTsKKworICAgIFhFdmVudCB4RXZlbnQ7CisgICAgaW5pdGlhbGl6ZVhFdmVu
dCh4RXZlbnQpOworICAgIHNldFhLZXlFdmVudEZpZWxkcyh4RXZlbnQsIGV2ZW50KTsKKworICAg
IHJldHVybiBOUFBfSGFuZGxlRXZlbnQoJnhFdmVudCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YktpdAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>