<?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>35521</bug_id>
          
          <creation_ts>2010-03-01 04:13:40 -0800</creation_ts>
          <short_desc>[Android] The platform touch events on Android are missing support for key modifiers.</short_desc>
          <delta_ts>2010-03-11 07:28:53 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Android</rep_platform>
          <op_sys>Android</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>32485</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ben Murdoch">benm</reporter>
          <assigned_to name="Ben Murdoch">benm</assigned_to>
          <cc>android-webkit-unforking</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>194672</commentid>
    <comment_count>0</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-03-01 04:13:40 -0800</bug_when>
    <thetext>This bug is to track upstreaming of support for key modifiers and event time in Touch Events on Android.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197115</commentid>
    <comment_count>1</comment_count>
      <attachid>50204</attachid>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-03-08 04:15:59 -0800</bug_when>
    <thetext>Created attachment 50204
Proposed Patch.

Adds support for key modifiers in Android touch events. Also adds a platformEventTime member to touch events to reflect the time that the event was started on the platform side rather than the WebCore side. For example, on Android this is set to the Java side touch event time. Due to the asynchronous nature of Android&apos;s touch event handling, this platform time may be significantly different to the time that the event is constructed inside WebCore.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197117</commentid>
    <comment_count>2</comment_count>
      <attachid>50205</attachid>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-03-08 04:18:37 -0800</bug_when>
    <thetext>Created attachment 50205
Patch sans-tab.

Removed a couple of tabs from the Changelog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198123</commentid>
    <comment_count>3</comment_count>
      <attachid>50402</attachid>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-03-10 07:29:55 -0800</bug_when>
    <thetext>Created attachment 50402
Proposed Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198544</commentid>
    <comment_count>4</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-03-11 03:56:58 -0800</bug_when>
    <thetext>Please note that contrary to my comment #1, Android no longer needs support for platformEventTime, which is why it no longer appears in the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198602</commentid>
    <comment_count>5</comment_count>
      <attachid>50402</attachid>
    <who name="Jeremy Orlow">jorlow</who>
    <bug_when>2010-03-11 07:14:54 -0800</bug_when>
    <thetext>Comment on attachment 50402
Proposed Patch.

&gt; Index: WebCore/ChangeLog
&gt; ===================================================================
&gt; --- WebCore/ChangeLog	(revision 55774)
&gt; +++ WebCore/ChangeLog	(working copy)
&gt; @@ -1,3 +1,24 @@
&gt; +2010-03-10  Ben Murdoch  &lt;benm@google.com&gt;
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        [Android] The platform touch events on Android are missing support
&gt; +        for key modifiers.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=35521
&gt; +
&gt; +        Add support in PlatformToucHEventAndroid for the platform supplying
&gt; +        key modifiers with touch events.
&gt; +
&gt; +        Exisiting touch events test suffice.

Change this to say that you&apos;re making existing tests work that didn&apos;t before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>198613</commentid>
    <comment_count>6</comment_count>
    <who name="Ben Murdoch">benm</who>
    <bug_when>2010-03-11 07:28:53 -0800</bug_when>
    <thetext>Landed as r55843.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50204</attachid>
            <date>2010-03-08 04:15:59 -0800</date>
            <delta_ts>2010-03-08 04:18:37 -0800</delta_ts>
            <desc>Proposed Patch.</desc>
            <filename>35521.txt</filename>
            <type>text/plain</type>
            <size>11331</size>
            <attacher name="Ben Murdoch">benm</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTY1OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDAgQEAKKzIwMTAtMDMtMDcgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtBbmRy
b2lkXSBUaGUgcGxhdGZvcm0gdG91Y2ggZXZlbnRzIG9uIEFuZHJvaWQgYXJlIG1pc3Npbmcgc3Vw
cG9ydAorICAgICAgICBmb3Iga2V5IG1vZGlmaWVycyBhbmQgcGxhdGZvcm1FdmVudFRpbWUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1NTIxCisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgaW4gUGxhdGZvcm1Ub3VjSEV2ZW50QW5kcm9pZCBmb3IgdGhlIHBs
YXRmb3JtIHN1cHBseWluZworICAgICAgICBrZXkgbW9kaWZpZXJzIHdpdGggdG91Y2ggZXZlbnRz
LgorCisgICAgICAgIEFsc28gaW50cm9kdWNlIGEgcGxhdGZvcm0gZXZlbnQgdGltZSBtZW1iZXIg
b2YgVG91Y2hFdmVudC4gVGhpcyBpcworCXVzZWQgb24gQW5kcm9pZCBmb3IgZXhhbXBsZSB0byBz
dG9yZSB0aGUgdGltZSB0aGF0IHRoZSBldmVudCB3YXMKKyAgICAgICAgY3JlYXRlZCBvbiB0aGUg
cGxhdGZvcm0gKGkuZS4gSmF2YSBzaWRlKSBhbmQgdXNlZCB0byB1cGRhdGUgdGhlCisgICAgICAg
IHRpbWVzdGFtcCB0aGF0IGVhY2ggV2ViQ29yZTo6VG91Y2hFdmVudCBnZXRzIHdoZW4gaXQgaXMg
aW5zdGFudGlhdGVkLgorICAgICAgICBEdWUgdG8gdGhlIGFzeW5jaHJvbm91cyBuYXR1cmUgb2Yg
dG91Y2ggZXZlbnRzLCB0aGUgdGltZSB0aGUgZXZlbnQKKwloYXBwZW5lZCBvbiB0aGUgcGxhdGZv
cm0gc2lkZSBtYXkgYmUgc2lnbmlmaWNhbnRseSBkaWZmZXJlbnQgdG8gdGhlCisJdGltZSB0aGF0
IHRoZSBXZWJDb3JlOjpUb3VjaEV2ZW50IGlzIGNvbnN0cnVjdGVkLgorCisgICAgICAgIEV4aXNp
dGluZyB0b3VjaCBldmVudHMgdGVzdCBzdWZmaWNlLgorCisgICAgICAgICogZG9tL0V2ZW50Lmg6
CisgICAgICAgIChXZWJDb3JlOjpFdmVudDo6dXBkYXRlQ3JlYXRlVGltZSk6IEFkZCBhZGQgcHJv
dGVjdGVkIG1ldGhvZCB0aGF0IGNhbiBiZSB1c2VkIHRvIGNoYWdlIHRoZSB0aW1lc3RhbXAgb2Yg
dGhpcyBldmVudC4KKyAgICAgICAgKiBkb20vVG91Y2hFdmVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpUb3VjaEV2ZW50OjpUb3VjaEV2ZW50KTogQ2hlY2sgdGhlIHBhc3NlZCBwbGF0Zm9ybUV2
ZW50VGltZS4gSWYgaXQgaXMgPjAsIHVwZGF0ZSB0aGUgZXZlbnRzIHRpbWVzdGFtcCB0byB0aGF0
IHBhc3NlZCB2YWx1ZS4KKyAgICAgICAgKiBkb20vVG91Y2hFdmVudC5oOgorICAgICAgICAoV2Vi
Q29yZTo6VG91Y2hFdmVudDo6Y3JlYXRlKTogQ2FsbHMgdXBkYXRlZCBjb25zdHJ1Y3Rvci4KKyAg
ICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudEhh
bmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQpOiBQYXNzIGluIHRoZSBwbGF0Zm9ybSB0b3VjaCBldmVu
dCB0aW1lIHRvIHRoZSBUb3VjaEV2ZW50IGZhY3RvcnkgZnVuY3Rpb24uCisgICAgICAgICogcGxh
dGZvcm0vUGxhdGZvcm1Ub3VjaEV2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRv
dWNoRXZlbnQ6OlBsYXRmb3JtVG91Y2hFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9y
bVRvdWNoRXZlbnQ6OnBsYXRmb3JtRXZlbnRUaW1lKTogUmV0dXJuIHRoaXMgZXZlbnQncyBwbGF0
Zm9ybSB0aW1lLgorICAgICAgICAqIHBsYXRmb3JtL2FuZHJvaWQvUGxhdGZvcm1Ub3VjaEV2ZW50
QW5kcm9pZC5jcHA6IFVwZGF0ZSB3aXRoIHN1cHBvcnQgZm9yIGtleSBtb2RpZmllcnMgYW5kIHBs
YXRmb3JtIGV2ZW50IHRpbWUuCisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNoRXZlbnQ6
OlBsYXRmb3JtVG91Y2hFdmVudCk6IEluaXRpYWxpc2UgbmV3IG1fcGxhdGZvcm1FdmVudFRpbWUg
bWVtYmVyLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1BsYXRmb3JtVG91Y2hFdmVudFF0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hFdmVudDo6UGxhdGZvcm1Ub3VjaEV2ZW50
KTogZGl0dG8uCisKIDIwMTAtMDMtMDQgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogV2ViQ29y
ZS9kb20vRXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9FdmVudC5oCShyZXZpc2lv
biA1NTY1OCkKKysrIFdlYkNvcmUvZG9tL0V2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTE2MCw2
ICsxNjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgdmlydHVhbCB2b2lkIHJl
Y2VpdmVkVGFyZ2V0KCk7CiAgICAgICAgIGJvb2wgZGlzcGF0Y2hlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fdGFyZ2V0OyB9CisgICAgICAgIHZvaWQgdXBkYXRlQ3JlYXRlVGltZShET01UaW1lU3RhbXAg
dGltZSkgeyBtX2NyZWF0ZVRpbWUgPSB0aW1lOyB9CiAKICAgICBwcml2YXRlOgogICAgICAgICBB
dG9taWNTdHJpbmcgbV90eXBlOwpJbmRleDogV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAJKHJldmlzaW9uIDU1NjU4KQor
KysgV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0LDEzICsz
NCwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBUb3VjaEV2ZW50OjpUb3VjaEV2ZW50KFRvdWNo
TGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3VjaGVzLAogICAgICAgICBUb3VjaExp
c3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJpbmcmIHR5cGUsIAogICAgICAgICBQ
YXNzUmVmUHRyPEFic3RyYWN0Vmlldz4gdmlldywgaW50IHNjcmVlblgsIGludCBzY3JlZW5ZLCBp
bnQgcGFnZVgsIGludCBwYWdlWSwKLSAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwg
Ym9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KQorICAgICAgICBib29sIGN0cmxLZXksIGJvb2wg
YWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXksIERPTVRpbWVTdGFtcCBwbGF0Zm9y
bUV2ZW50VGltZSkKICAgICA6IE1vdXNlUmVsYXRlZEV2ZW50KHR5cGUsIHRydWUsIHRydWUsIHZp
ZXcsIDAsIHNjcmVlblgsIHNjcmVlblksIHBhZ2VYLCBwYWdlWSwKICAgICAgICAgICAgICAgICAg
ICAgICAgIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1ldGFLZXkpCiAgICAgLCBtX3RvdWNo
ZXModG91Y2hlcykKICAgICAsIG1fdGFyZ2V0VG91Y2hlcyh0YXJnZXRUb3VjaGVzKQogICAgICwg
bV9jaGFuZ2VkVG91Y2hlcyhjaGFuZ2VkVG91Y2hlcykKIHsKKyAgICBpZiAocGxhdGZvcm1FdmVu
dFRpbWUgPiAwKQorICAgICAgICB1cGRhdGVDcmVhdGVUaW1lKHBsYXRmb3JtRXZlbnRUaW1lKTsK
IH0KIAogdm9pZCBUb3VjaEV2ZW50Ojppbml0VG91Y2hFdmVudChUb3VjaExpc3QqIHRvdWNoZXMs
IFRvdWNoTGlzdCogdGFyZ2V0VG91Y2hlcywKSW5kZXg6IFdlYkNvcmUvZG9tL1RvdWNoRXZlbnQu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Ub3VjaEV2ZW50LmgJKHJldmlzaW9uIDU1NjU4
KQorKysgV2ViQ29yZS9kb20vVG91Y2hFdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MywxMSAr
NDMsMTIgQEAgcHVibGljOgogICAgICAgICAgICAgVG91Y2hMaXN0KiB0YXJnZXRUb3VjaGVzLCBU
b3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCAKICAgICAgICAgICAgIGNvbnN0IEF0b21pY1N0cmlu
ZyYgdHlwZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZpZXcsCiAgICAgICAgICAgICBpbnQg
c2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50IHBhZ2VZLAotICAgICAgICAgICAg
Ym9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KQor
ICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9v
bCBtZXRhS2V5LAorICAgICAgICAgICAgRE9NVGltZVN0YW1wIHBsYXRmb3JtRXZlbnRUaW1lKQog
ICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBUb3VjaEV2ZW50KHRvdWNoZXMsIHRh
cmdldFRvdWNoZXMsIGNoYW5nZWRUb3VjaGVzLAotICAgICAgICAgICAgICAgIHR5cGUsIHZpZXcs
IHNjcmVlblgsIHNjcmVlblksIHBhZ2VYLCBwYWdlWSwKLSAgICAgICAgICAgICAgICBjdHJsS2V5
LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5KSk7CisgICAgICAgICAgICAgICAgdHlwZSwgdmll
dywgc2NyZWVuWCwgc2NyZWVuWSwgcGFnZVgsIHBhZ2VZLCBjdHJsS2V5LCBhbHRLZXksCisgICAg
ICAgICAgICAgICAgc2hpZnRLZXksIG1ldGFLZXksIHBsYXRmb3JtRXZlbnRUaW1lKSk7CiAgICAg
fQogCiAgICAgdm9pZCBpbml0VG91Y2hFdmVudChUb3VjaExpc3QqIHRvdWNoZXMsIFRvdWNoTGlz
dCogdGFyZ2V0VG91Y2hlcywKQEAgLTY1LDggKzY2LDggQEAgcHJpdmF0ZToKICAgICBUb3VjaEV2
ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3VjaGVzLAogICAgICAg
ICAgICAgVG91Y2hMaXN0KiBjaGFuZ2VkVG91Y2hlcywgY29uc3QgQXRvbWljU3RyaW5nJiB0eXBl
LAogICAgICAgICAgICAgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+LCBpbnQgc2NyZWVuWCwgaW50
IHNjcmVlblksIGludCBwYWdlWCwKLSAgICAgICAgICAgIGludCBwYWdlWSwKLSAgICAgICAgICAg
IGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSk7
CisgICAgICAgICAgICBpbnQgcGFnZVksIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wg
c2hpZnRLZXksIGJvb2wgbWV0YUtleSwKKyAgICAgICAgICAgIERPTVRpbWVTdGFtcCBwbGF0Zm9y
bUV2ZW50VGltZSk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNUb3VjaEV2ZW50KCkgY29uc3QgeyBy
ZXR1cm4gdHJ1ZTsgfQogCkluZGV4OiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkocmV2aXNpb24gNTU2NTgp
CisrKyBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjcw
NSw4ICsyNzA1LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29ucwog
ICAgICAgICAgICAgVG91Y2hFdmVudDo6Y3JlYXRlKFRvdWNoTGlzdDo6Y3JlYXRlKCkuZ2V0KCks
IFRvdWNoTGlzdDo6Y3JlYXRlKCkuZ2V0KCksIGNhbmNlbFRvdWNoZXMuZ2V0KCksCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqZXZlbnROYW1lLCB0
b3VjaEV2ZW50VGFyZ2V0LT50b05vZGUoKS0+ZG9jdW1lbnQoKS0+ZGVmYXVsdFZpZXcoKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAsIDAsIDAs
IDAsIGV2ZW50LmN0cmxLZXkoKSwgZXZlbnQuYWx0S2V5KCksIGV2ZW50LnNoaWZ0S2V5KCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5t
ZXRhS2V5KCkpOwotCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBldmVudC5tZXRhS2V5KCksIGV2ZW50LnBsYXRmb3JtRXZlbnRUaW1lKCkpOwogICAg
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICAgICAgdG91Y2hFdmVudFRhcmdldC0+ZGlz
cGF0Y2hFdmVudChjYW5jZWxFdi5nZXQoKSwgZWMpOwogICAgICAgICBkZWZhdWx0UHJldmVudGVk
IHw9IGNhbmNlbEV2LT5kZWZhdWx0UHJldmVudGVkKCk7CkBAIC0yNzI1LDcgKzI3MjQsNyBAQCBi
b29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVudChjb25zCiAgICAgICAgICAgICBUb3Vj
aEV2ZW50OjpjcmVhdGUodG91Y2hlcy5nZXQoKSwgdGFyZ2V0VG91Y2hlcy5nZXQoKSwgcmVsZWFz
ZWRUb3VjaGVzLmdldCgpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKmV2ZW50TmFtZSwgdG91Y2hFdmVudFRhcmdldC0+dG9Ob2RlKCktPmRvY3Vt
ZW50KCktPmRlZmF1bHRWaWV3KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCBldmVudC5jdHJsS2V5KCksIGV2ZW50LmFsdEtl
eSgpLCBldmVudC5zaGlmdEtleSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXZlbnQubWV0YUtleSgpKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50Lm1ldGFLZXkoKSwgZXZlbnQucGxh
dGZvcm1FdmVudFRpbWUoKSk7CiAgICAgICAgIEV4Y2VwdGlvbkNvZGUgZWMgPSAwOwogICAgICAg
ICB0b3VjaEV2ZW50VGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGVuZEV2LmdldCgpLCBlYyk7CiAgICAg
ICAgIGRlZmF1bHRQcmV2ZW50ZWQgfD0gZW5kRXYtPmRlZmF1bHRQcmV2ZW50ZWQoKTsKQEAgLTI3
NDMsNyArMjc0Miw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50KGNvbnMK
ICAgICAgICAgICAgIFRvdWNoRXZlbnQ6OmNyZWF0ZSh0b3VjaGVzLmdldCgpLCB0YXJnZXRUb3Vj
aGVzLmdldCgpLCBwcmVzc2VkVG91Y2hlcy5nZXQoKSwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICpldmVudE5hbWUsIHRvdWNoRXZlbnRUYXJnZXQt
PnRvTm9kZSgpLT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgZXZlbnQuY3RybEtl
eSgpLCBldmVudC5hbHRLZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50Lm1ldGFLZXkoKSk7CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5tZXRh
S2V5KCksIGV2ZW50LnBsYXRmb3JtRXZlbnRUaW1lKCkpOwogICAgICAgICBFeGNlcHRpb25Db2Rl
IGVjID0gMDsKICAgICAgICAgdG91Y2hFdmVudFRhcmdldC0+ZGlzcGF0Y2hFdmVudChzdGFydEV2
LmdldCgpLCBlYyk7CiAgICAgICAgIGRlZmF1bHRQcmV2ZW50ZWQgfD0gc3RhcnRFdi0+ZGVmYXVs
dFByZXZlbnRlZCgpOwpAQCAtMjc2Miw3ICsyNzYxLDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6Omhh
bmRsZVRvdWNoRXZlbnQoY29ucwogICAgICAgICAgICAgVG91Y2hFdmVudDo6Y3JlYXRlKHRvdWNo
ZXMuZ2V0KCksIHRhcmdldFRvdWNoZXMuZ2V0KCksIG1vdmVkVG91Y2hlcy5nZXQoKSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpldmVudE5hbWUs
IHRvdWNoRXZlbnRUYXJnZXQtPnRvTm9kZSgpLT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwg
MCwgMCwgZXZlbnQuY3RybEtleSgpLCBldmVudC5hbHRLZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50
Lm1ldGFLZXkoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBldmVudC5tZXRhS2V5KCksIGV2ZW50LnBsYXRmb3JtRXZlbnRUaW1lKCkpOwogICAg
ICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICAgICAgdG91Y2hFdmVudFRhcmdldC0+ZGlz
cGF0Y2hFdmVudChtb3ZlRXYuZ2V0KCksIGVjKTsKICAgICAgICAgZGVmYXVsdFByZXZlbnRlZCB8
PSBtb3ZlRXYtPmRlZmF1bHRQcmV2ZW50ZWQoKTsKSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vUGxh
dGZvcm1Ub3VjaEV2ZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bVRvdWNoRXZlbnQuaAkocmV2aXNpb24gNTU2NTgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL1BsYXRm
b3JtVG91Y2hFdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01MiwxMSArNTIsMTIgQEAgcHVibGlj
OgogICAgICAgICAsIG1fYWx0S2V5KGZhbHNlKQogICAgICAgICAsIG1fc2hpZnRLZXkoZmFsc2Up
CiAgICAgICAgICwgbV9tZXRhS2V5KGZhbHNlKQorICAgICAgICAsIG1fcGxhdGZvcm1FdmVudFRp
bWUoMCkKICAgICB7fQogI2lmIFBMQVRGT1JNKFFUKQogICAgIFBsYXRmb3JtVG91Y2hFdmVudChR
VG91Y2hFdmVudCopOwogI2VsaWYgUExBVEZPUk0oQU5EUk9JRCkKLSAgICBQbGF0Zm9ybVRvdWNo
RXZlbnQoY29uc3QgSW50UG9pbnQmIHdpbmRvd1BvcywgVG91Y2hFdmVudFR5cGUsIFBsYXRmb3Jt
VG91Y2hQb2ludDo6U3RhdGUpOworICAgIFBsYXRmb3JtVG91Y2hFdmVudChjb25zdCBJbnRQb2lu
dCYgd2luZG93UG9zLCBUb3VjaEV2ZW50VHlwZSwgUGxhdGZvcm1Ub3VjaFBvaW50OjpTdGF0ZSwg
bG9uZyBwbGF0Zm9ybUV2ZW50VGltZSwgaW50IG1ldGFTdGF0ZSk7CiAjZW5kaWYKIAogICAgIFRv
dWNoRXZlbnRUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBtX3R5cGU7IH0KQEAgLTY3LDYgKzY4
LDggQEAgcHVibGljOgogICAgIGJvb2wgc2hpZnRLZXkoKSBjb25zdCB7IHJldHVybiBtX3NoaWZ0
S2V5OyB9CiAgICAgYm9vbCBtZXRhS2V5KCkgY29uc3QgeyByZXR1cm4gbV9tZXRhS2V5OyB9CiAK
KyAgICBsb25nIHBsYXRmb3JtRXZlbnRUaW1lKCkgY29uc3QgeyByZXR1cm4gbV9wbGF0Zm9ybUV2
ZW50VGltZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgVG91Y2hFdmVudFR5cGUgbV90eXBlOwogICAg
IFZlY3RvcjxQbGF0Zm9ybVRvdWNoUG9pbnQ+IG1fdG91Y2hQb2ludHM7CkBAIC03NCw2ICs3Nyw5
IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1fYWx0S2V5OwogICAgIGJvb2wgbV9zaGlmdEtleTsK
ICAgICBib29sIG1fbWV0YUtleTsKKworICAgIC8vIFdlIGNhbiBzdG9yZSB0aGUgdGltZSB0aGF0
IHRoZSB0b3VjaCBldmVudCB3YXMgY3JlYXRlZCBvbiB0aGUgcGxhdGZvcm0gc2lkZS4KKyAgICBs
b25nIG1fcGxhdGZvcm1FdmVudFRpbWU7CiB9OwogCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRmb3Jt
L2FuZHJvaWQvUGxhdGZvcm1Ub3VjaEV2ZW50QW5kcm9pZC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9hbmRyb2lkL1BsYXRmb3JtVG91Y2hFdmVudEFuZHJvaWQuY3BwCShyZXZp
c2lvbiA1NTY1OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9QbGF0Zm9ybVRvdWNoRXZl
bnRBbmRyb2lkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAsMTQgKzMwLDIzIEBACiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotUGxhdGZvcm1Ub3VjaEV2ZW50OjpQbGF0Zm9ybVRvdWNoRXZlbnQo
Y29uc3QgSW50UG9pbnQmIHdpbmRvd1BvcywgVG91Y2hFdmVudFR5cGUgdHlwZSwgUGxhdGZvcm1U
b3VjaFBvaW50OjpTdGF0ZSBzdGF0ZSkKKy8vIFRoZXNlIHZhbHVlcyBzaG91bGQgYmUga2VwdCBp
biBzeW5jIHdpdGggdGhvc2UgZGVmaW5lZCBpbiB0aGUgYW5kcm9pZC52aWV3LktleUV2ZW50IGNs
YXNzIGZyb20gdGhlIEFuZHJvaWQgU0RLLgorZW51bSBBbmRyb2lkTWV0YUtleVN0YXRlIHsKKyAg
ICBNRVRBX1NISUZUX09OID0gMHgwMSwKKyAgICBNRVRBX0FMVF9PTiA9IDB4MDIsCisgICAgTUVU
QV9TWU1fT04gPSAweDA0Cit9OworCitQbGF0Zm9ybVRvdWNoRXZlbnQ6OlBsYXRmb3JtVG91Y2hF
dmVudChjb25zdCBJbnRQb2ludCYgd2luZG93UG9zLCBUb3VjaEV2ZW50VHlwZSB0eXBlLCBQbGF0
Zm9ybVRvdWNoUG9pbnQ6OlN0YXRlIHN0YXRlLCBsb25nIHBsYXRmb3JtRXZlbnRUaW1lLCBpbnQg
bWV0YVN0YXRlKQogICAgIDogbV90eXBlKHR5cGUpCi0gICAgLCBtX2N0cmxLZXkoZmFsc2UpCi0g
ICAgLCBtX2FsdEtleShmYWxzZSkKLSAgICAsIG1fc2hpZnRLZXkoZmFsc2UpCiAgICAgLCBtX21l
dGFLZXkoZmFsc2UpCisgICAgLCBtX3BsYXRmb3JtRXZlbnRUaW1lKHBsYXRmb3JtRXZlbnRUaW1l
KQogewogICAgIG1fdG91Y2hQb2ludHMuYXBwZW5kKFBsYXRmb3JtVG91Y2hQb2ludCh3aW5kb3dQ
b3MsIHN0YXRlKSk7CisKKyAgICBtX2FsdEtleSA9IG1ldGFTdGF0ZSAmIE1FVEFfQUxUX09OOwor
ICAgIG1fc2hpZnRLZXkgPSBtZXRhU3RhdGUgJiBNRVRBX1NISUZUX09OOworICAgIG1fY3RybEtl
eSA9IG1ldGFTdGF0ZSAmIE1FVEFfU1lNX09OOwogfQogCiB9CkluZGV4OiBXZWJDb3JlL3BsYXRm
b3JtL3F0L1BsYXRmb3JtVG91Y2hFdmVudFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bs
YXRmb3JtL3F0L1BsYXRmb3JtVG91Y2hFdmVudFF0LmNwcAkocmV2aXNpb24gNTU2NTgpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtVG91Y2hFdmVudFF0LmNwcAkod29ya2luZyBjb3B5
KQpAQCAtNDIsNiArNDIsNyBAQCBQbGF0Zm9ybVRvdWNoRXZlbnQ6OlBsYXRmb3JtVG91Y2hFdmVu
dChRCiAgICAgbV9hbHRLZXkgPSAoZXZlbnQtPm1vZGlmaWVycygpICYgUXQ6OkFsdE1vZGlmaWVy
KTsKICAgICBtX3NoaWZ0S2V5ID0gKGV2ZW50LT5tb2RpZmllcnMoKSAmIFF0OjpTaGlmdE1vZGlm
aWVyKTsKICAgICBtX21ldGFLZXkgPSAoZXZlbnQtPm1vZGlmaWVycygpICYgUXQ6Ok1ldGFNb2Rp
Zmllcik7CisgICAgbV9wbGF0Zm9ybUV2ZW50VGltZSA9IDA7CiB9CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50205</attachid>
            <date>2010-03-08 04:18:37 -0800</date>
            <delta_ts>2010-03-08 10:44:13 -0800</delta_ts>
            <desc>Patch sans-tab.</desc>
            <filename>35521.txt</filename>
            <type>text/plain</type>
            <size>11352</size>
            <attacher name="Ben Murdoch">benm</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTY1OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDAgQEAKKzIwMTAtMDMtMDcgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtBbmRy
b2lkXSBUaGUgcGxhdGZvcm0gdG91Y2ggZXZlbnRzIG9uIEFuZHJvaWQgYXJlIG1pc3Npbmcgc3Vw
cG9ydAorICAgICAgICBmb3Iga2V5IG1vZGlmaWVycyBhbmQgcGxhdGZvcm1FdmVudFRpbWUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1NTIxCisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgaW4gUGxhdGZvcm1Ub3VjSEV2ZW50QW5kcm9pZCBmb3IgdGhlIHBs
YXRmb3JtIHN1cHBseWluZworICAgICAgICBrZXkgbW9kaWZpZXJzIHdpdGggdG91Y2ggZXZlbnRz
LgorCisgICAgICAgIEFsc28gaW50cm9kdWNlIGEgcGxhdGZvcm0gZXZlbnQgdGltZSBtZW1iZXIg
b2YgVG91Y2hFdmVudC4gVGhpcyBpcworICAgICAgICB1c2VkIG9uIEFuZHJvaWQgZm9yIGV4YW1w
bGUgdG8gc3RvcmUgdGhlIHRpbWUgdGhhdCB0aGUgZXZlbnQgd2FzCisgICAgICAgIGNyZWF0ZWQg
b24gdGhlIHBsYXRmb3JtIChpLmUuIEphdmEgc2lkZSkgYW5kIHVzZWQgdG8gdXBkYXRlIHRoZQor
ICAgICAgICB0aW1lc3RhbXAgdGhhdCBlYWNoIFdlYkNvcmU6OlRvdWNoRXZlbnQgZ2V0cyB3aGVu
IGl0IGlzIGluc3RhbnRpYXRlZC4KKyAgICAgICAgRHVlIHRvIHRoZSBhc3luY2hyb25vdXMgbmF0
dXJlIG9mIHRvdWNoIGV2ZW50cywgdGhlIHRpbWUgdGhlIGV2ZW50CisgICAgICAgIGhhcHBlbmVk
IG9uIHRoZSBwbGF0Zm9ybSBzaWRlIG1heSBiZSBzaWduaWZpY2FudGx5IGRpZmZlcmVudCB0byB0
aGUKKyAgICAgICAgdGltZSB0aGF0IHRoZSBXZWJDb3JlOjpUb3VjaEV2ZW50IGlzIGNvbnN0cnVj
dGVkLgorCisgICAgICAgIEV4aXNpdGluZyB0b3VjaCBldmVudHMgdGVzdCBzdWZmaWNlLgorCisg
ICAgICAgICogZG9tL0V2ZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpFdmVudDo6dXBkYXRlQ3Jl
YXRlVGltZSk6IEFkZCBhZGQgcHJvdGVjdGVkIG1ldGhvZCB0aGF0IGNhbiBiZSB1c2VkIHRvIGNo
YWdlIHRoZSB0aW1lc3RhbXAgb2YgdGhpcyBldmVudC4KKyAgICAgICAgKiBkb20vVG91Y2hFdmVu
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpUb3VjaEV2ZW50OjpUb3VjaEV2ZW50KTogQ2hlY2sg
dGhlIHBhc3NlZCBwbGF0Zm9ybUV2ZW50VGltZS4gSWYgaXQgaXMgPjAsIHVwZGF0ZSB0aGUgZXZl
bnRzIHRpbWVzdGFtcCB0byB0aGF0IHBhc3NlZCB2YWx1ZS4KKyAgICAgICAgKiBkb20vVG91Y2hF
dmVudC5oOgorICAgICAgICAoV2ViQ29yZTo6VG91Y2hFdmVudDo6Y3JlYXRlKTogQ2FsbHMgdXBk
YXRlZCBjb25zdHJ1Y3Rvci4KKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQpOiBQYXNzIGluIHRo
ZSBwbGF0Zm9ybSB0b3VjaCBldmVudCB0aW1lIHRvIHRoZSBUb3VjaEV2ZW50IGZhY3RvcnkgZnVu
Y3Rpb24uCisgICAgICAgICogcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaEV2ZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNoRXZlbnQ6OlBsYXRmb3JtVG91Y2hFdmVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpQbGF0Zm9ybVRvdWNoRXZlbnQ6OnBsYXRmb3JtRXZlbnRUaW1lKTogUmV0
dXJuIHRoaXMgZXZlbnQncyBwbGF0Zm9ybSB0aW1lLgorICAgICAgICAqIHBsYXRmb3JtL2FuZHJv
aWQvUGxhdGZvcm1Ub3VjaEV2ZW50QW5kcm9pZC5jcHA6IFVwZGF0ZSB3aXRoIHN1cHBvcnQgZm9y
IGtleSBtb2RpZmllcnMgYW5kIHBsYXRmb3JtIGV2ZW50IHRpbWUuCisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybVRvdWNoRXZlbnQ6OlBsYXRmb3JtVG91Y2hFdmVudCk6IEluaXRpYWxpc2UgbmV3
IG1fcGxhdGZvcm1FdmVudFRpbWUgbWVtYmVyLgorICAgICAgICAqIHBsYXRmb3JtL3F0L1BsYXRm
b3JtVG91Y2hFdmVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hFdmVu
dDo6UGxhdGZvcm1Ub3VjaEV2ZW50KTogZGl0dG8uCisKIDIwMTAtMDMtMDQgIFBoaWxpcHBlIE5v
cm1hbmQgIDxwbm9ybWFuZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMg
U2VpZGVsLgpJbmRleDogV2ViQ29yZS9kb20vRXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L2RvbS9FdmVudC5oCShyZXZpc2lvbiA1NTY1OCkKKysrIFdlYkNvcmUvZG9tL0V2ZW50LmgJKHdv
cmtpbmcgY29weSkKQEAgLTE2MCw2ICsxNjAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAg
ICAgICAgdmlydHVhbCB2b2lkIHJlY2VpdmVkVGFyZ2V0KCk7CiAgICAgICAgIGJvb2wgZGlzcGF0
Y2hlZCgpIGNvbnN0IHsgcmV0dXJuIG1fdGFyZ2V0OyB9CisgICAgICAgIHZvaWQgdXBkYXRlQ3Jl
YXRlVGltZShET01UaW1lU3RhbXAgdGltZSkgeyBtX2NyZWF0ZVRpbWUgPSB0aW1lOyB9CiAKICAg
ICBwcml2YXRlOgogICAgICAgICBBdG9taWNTdHJpbmcgbV90eXBlOwpJbmRleDogV2ViQ29yZS9k
b20vVG91Y2hFdmVudC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9kb20vVG91Y2hFdmVudC5j
cHAJKHJldmlzaW9uIDU1NjU4KQorKysgV2ViQ29yZS9kb20vVG91Y2hFdmVudC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTM0LDEzICszNCwxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBUb3VjaEV2
ZW50OjpUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0YXJnZXRUb3Vj
aGVzLAogICAgICAgICBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCBjb25zdCBBdG9taWNTdHJp
bmcmIHR5cGUsIAogICAgICAgICBQYXNzUmVmUHRyPEFic3RyYWN0Vmlldz4gdmlldywgaW50IHNj
cmVlblgsIGludCBzY3JlZW5ZLCBpbnQgcGFnZVgsIGludCBwYWdlWSwKLSAgICAgICAgYm9vbCBj
dHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5KQorICAgICAg
ICBib29sIGN0cmxLZXksIGJvb2wgYWx0S2V5LCBib29sIHNoaWZ0S2V5LCBib29sIG1ldGFLZXks
IERPTVRpbWVTdGFtcCBwbGF0Zm9ybUV2ZW50VGltZSkKICAgICA6IE1vdXNlUmVsYXRlZEV2ZW50
KHR5cGUsIHRydWUsIHRydWUsIHZpZXcsIDAsIHNjcmVlblgsIHNjcmVlblksIHBhZ2VYLCBwYWdl
WSwKICAgICAgICAgICAgICAgICAgICAgICAgIGN0cmxLZXksIGFsdEtleSwgc2hpZnRLZXksIG1l
dGFLZXkpCiAgICAgLCBtX3RvdWNoZXModG91Y2hlcykKICAgICAsIG1fdGFyZ2V0VG91Y2hlcyh0
YXJnZXRUb3VjaGVzKQogICAgICwgbV9jaGFuZ2VkVG91Y2hlcyhjaGFuZ2VkVG91Y2hlcykKIHsK
KyAgICBpZiAocGxhdGZvcm1FdmVudFRpbWUgPiAwKQorICAgICAgICB1cGRhdGVDcmVhdGVUaW1l
KHBsYXRmb3JtRXZlbnRUaW1lKTsKIH0KIAogdm9pZCBUb3VjaEV2ZW50Ojppbml0VG91Y2hFdmVu
dChUb3VjaExpc3QqIHRvdWNoZXMsIFRvdWNoTGlzdCogdGFyZ2V0VG91Y2hlcywKSW5kZXg6IFdl
YkNvcmUvZG9tL1RvdWNoRXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9Ub3VjaEV2
ZW50LmgJKHJldmlzaW9uIDU1NjU4KQorKysgV2ViQ29yZS9kb20vVG91Y2hFdmVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC00MywxMSArNDMsMTIgQEAgcHVibGljOgogICAgICAgICAgICAgVG91Y2hM
aXN0KiB0YXJnZXRUb3VjaGVzLCBUb3VjaExpc3QqIGNoYW5nZWRUb3VjaGVzLCAKICAgICAgICAg
ICAgIGNvbnN0IEF0b21pY1N0cmluZyYgdHlwZSwgUGFzc1JlZlB0cjxBYnN0cmFjdFZpZXc+IHZp
ZXcsCiAgICAgICAgICAgICBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwgaW50
IHBhZ2VZLAotICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtleSwgYm9vbCBzaGlm
dEtleSwgYm9vbCBtZXRhS2V5KQorICAgICAgICAgICAgYm9vbCBjdHJsS2V5LCBib29sIGFsdEtl
eSwgYm9vbCBzaGlmdEtleSwgYm9vbCBtZXRhS2V5LAorICAgICAgICAgICAgRE9NVGltZVN0YW1w
IHBsYXRmb3JtRXZlbnRUaW1lKQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBU
b3VjaEV2ZW50KHRvdWNoZXMsIHRhcmdldFRvdWNoZXMsIGNoYW5nZWRUb3VjaGVzLAotICAgICAg
ICAgICAgICAgIHR5cGUsIHZpZXcsIHNjcmVlblgsIHNjcmVlblksIHBhZ2VYLCBwYWdlWSwKLSAg
ICAgICAgICAgICAgICBjdHJsS2V5LCBhbHRLZXksIHNoaWZ0S2V5LCBtZXRhS2V5KSk7CisgICAg
ICAgICAgICAgICAgdHlwZSwgdmlldywgc2NyZWVuWCwgc2NyZWVuWSwgcGFnZVgsIHBhZ2VZLCBj
dHJsS2V5LCBhbHRLZXksCisgICAgICAgICAgICAgICAgc2hpZnRLZXksIG1ldGFLZXksIHBsYXRm
b3JtRXZlbnRUaW1lKSk7CiAgICAgfQogCiAgICAgdm9pZCBpbml0VG91Y2hFdmVudChUb3VjaExp
c3QqIHRvdWNoZXMsIFRvdWNoTGlzdCogdGFyZ2V0VG91Y2hlcywKQEAgLTY1LDggKzY2LDggQEAg
cHJpdmF0ZToKICAgICBUb3VjaEV2ZW50KFRvdWNoTGlzdCogdG91Y2hlcywgVG91Y2hMaXN0KiB0
YXJnZXRUb3VjaGVzLAogICAgICAgICAgICAgVG91Y2hMaXN0KiBjaGFuZ2VkVG91Y2hlcywgY29u
c3QgQXRvbWljU3RyaW5nJiB0eXBlLAogICAgICAgICAgICAgUGFzc1JlZlB0cjxBYnN0cmFjdFZp
ZXc+LCBpbnQgc2NyZWVuWCwgaW50IHNjcmVlblksIGludCBwYWdlWCwKLSAgICAgICAgICAgIGlu
dCBwYWdlWSwKLSAgICAgICAgICAgIGJvb2wgY3RybEtleSwgYm9vbCBhbHRLZXksIGJvb2wgc2hp
ZnRLZXksIGJvb2wgbWV0YUtleSk7CisgICAgICAgICAgICBpbnQgcGFnZVksIGJvb2wgY3RybEtl
eSwgYm9vbCBhbHRLZXksIGJvb2wgc2hpZnRLZXksIGJvb2wgbWV0YUtleSwKKyAgICAgICAgICAg
IERPTVRpbWVTdGFtcCBwbGF0Zm9ybUV2ZW50VGltZSk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNU
b3VjaEV2ZW50KCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQogCkluZGV4OiBXZWJDb3JlL3BhZ2Uv
RXZlbnRIYW5kbGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVy
LmNwcAkocmV2aXNpb24gNTU2NTgpCisrKyBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjcwNSw4ICsyNzA1LDcgQEAgYm9vbCBFdmVudEhhbmRsZXI6Omhh
bmRsZVRvdWNoRXZlbnQoY29ucwogICAgICAgICAgICAgVG91Y2hFdmVudDo6Y3JlYXRlKFRvdWNo
TGlzdDo6Y3JlYXRlKCkuZ2V0KCksIFRvdWNoTGlzdDo6Y3JlYXRlKCkuZ2V0KCksIGNhbmNlbFRv
dWNoZXMuZ2V0KCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAqZXZlbnROYW1lLCB0b3VjaEV2ZW50VGFyZ2V0LT50b05vZGUoKS0+ZG9jdW1lbnQo
KS0+ZGVmYXVsdFZpZXcoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIDAsIDAsIDAsIDAsIGV2ZW50LmN0cmxLZXkoKSwgZXZlbnQuYWx0S2V5KCks
IGV2ZW50LnNoaWZ0S2V5KCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBldmVudC5tZXRhS2V5KCkpOwotCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5tZXRhS2V5KCksIGV2ZW50LnBsYXRm
b3JtRXZlbnRUaW1lKCkpOwogICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICAgICAg
dG91Y2hFdmVudFRhcmdldC0+ZGlzcGF0Y2hFdmVudChjYW5jZWxFdi5nZXQoKSwgZWMpOwogICAg
ICAgICBkZWZhdWx0UHJldmVudGVkIHw9IGNhbmNlbEV2LT5kZWZhdWx0UHJldmVudGVkKCk7CkBA
IC0yNzI1LDcgKzI3MjQsNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVudChj
b25zCiAgICAgICAgICAgICBUb3VjaEV2ZW50OjpjcmVhdGUodG91Y2hlcy5nZXQoKSwgdGFyZ2V0
VG91Y2hlcy5nZXQoKSwgcmVsZWFzZWRUb3VjaGVzLmdldCgpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKmV2ZW50TmFtZSwgdG91Y2hFdmVudFRh
cmdldC0+dG9Ob2RlKCktPmRvY3VtZW50KCktPmRlZmF1bHRWaWV3KCksCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAwLCAwLCAwLCAwLCBldmVudC5j
dHJsS2V5KCksIGV2ZW50LmFsdEtleSgpLCBldmVudC5zaGlmdEtleSgpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQubWV0YUtleSgpKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50
Lm1ldGFLZXkoKSwgZXZlbnQucGxhdGZvcm1FdmVudFRpbWUoKSk7CiAgICAgICAgIEV4Y2VwdGlv
bkNvZGUgZWMgPSAwOwogICAgICAgICB0b3VjaEV2ZW50VGFyZ2V0LT5kaXNwYXRjaEV2ZW50KGVu
ZEV2LmdldCgpLCBlYyk7CiAgICAgICAgIGRlZmF1bHRQcmV2ZW50ZWQgfD0gZW5kRXYtPmRlZmF1
bHRQcmV2ZW50ZWQoKTsKQEAgLTI3NDMsNyArMjc0Miw3IEBAIGJvb2wgRXZlbnRIYW5kbGVyOjpo
YW5kbGVUb3VjaEV2ZW50KGNvbnMKICAgICAgICAgICAgIFRvdWNoRXZlbnQ6OmNyZWF0ZSh0b3Vj
aGVzLmdldCgpLCB0YXJnZXRUb3VjaGVzLmdldCgpLCBwcmVzc2VkVG91Y2hlcy5nZXQoKSwKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpldmVudE5h
bWUsIHRvdWNoRXZlbnRUYXJnZXQtPnRvTm9kZSgpLT5kb2N1bWVudCgpLT5kZWZhdWx0Vmlldygp
LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwg
MCwgMCwgMCwgZXZlbnQuY3RybEtleSgpLCBldmVudC5hbHRLZXkoKSwgZXZlbnQuc2hpZnRLZXko
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2
ZW50Lm1ldGFLZXkoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBldmVudC5tZXRhS2V5KCksIGV2ZW50LnBsYXRmb3JtRXZlbnRUaW1lKCkpOwog
ICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICAgICAgdG91Y2hFdmVudFRhcmdldC0+
ZGlzcGF0Y2hFdmVudChzdGFydEV2LmdldCgpLCBlYyk7CiAgICAgICAgIGRlZmF1bHRQcmV2ZW50
ZWQgfD0gc3RhcnRFdi0+ZGVmYXVsdFByZXZlbnRlZCgpOwpAQCAtMjc2Miw3ICsyNzYxLDcgQEAg
Ym9vbCBFdmVudEhhbmRsZXI6OmhhbmRsZVRvdWNoRXZlbnQoY29ucwogICAgICAgICAgICAgVG91
Y2hFdmVudDo6Y3JlYXRlKHRvdWNoZXMuZ2V0KCksIHRhcmdldFRvdWNoZXMuZ2V0KCksIG1vdmVk
VG91Y2hlcy5nZXQoKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICpldmVudE5hbWUsIHRvdWNoRXZlbnRUYXJnZXQtPnRvTm9kZSgpLT5kb2N1bWVu
dCgpLT5kZWZhdWx0VmlldygpLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgZXZlbnQuY3RybEtleSgpLCBldmVudC5hbHRLZXko
KSwgZXZlbnQuc2hpZnRLZXkoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGV2ZW50Lm1ldGFLZXkoKSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBldmVudC5tZXRhS2V5KCksIGV2ZW50LnBsYXRm
b3JtRXZlbnRUaW1lKCkpOwogICAgICAgICBFeGNlcHRpb25Db2RlIGVjID0gMDsKICAgICAgICAg
dG91Y2hFdmVudFRhcmdldC0+ZGlzcGF0Y2hFdmVudChtb3ZlRXYuZ2V0KCksIGVjKTsKICAgICAg
ICAgZGVmYXVsdFByZXZlbnRlZCB8PSBtb3ZlRXYtPmRlZmF1bHRQcmV2ZW50ZWQoKTsKSW5kZXg6
IFdlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1Ub3VjaEV2ZW50LmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2Vi
Q29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVRvdWNoRXZlbnQuaAkocmV2aXNpb24gNTU2NTgpCisrKyBX
ZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtVG91Y2hFdmVudC5oCSh3b3JraW5nIGNvcHkpCkBAIC01
MiwxMSArNTIsMTIgQEAgcHVibGljOgogICAgICAgICAsIG1fYWx0S2V5KGZhbHNlKQogICAgICAg
ICAsIG1fc2hpZnRLZXkoZmFsc2UpCiAgICAgICAgICwgbV9tZXRhS2V5KGZhbHNlKQorICAgICAg
ICAsIG1fcGxhdGZvcm1FdmVudFRpbWUoMCkKICAgICB7fQogI2lmIFBMQVRGT1JNKFFUKQogICAg
IFBsYXRmb3JtVG91Y2hFdmVudChRVG91Y2hFdmVudCopOwogI2VsaWYgUExBVEZPUk0oQU5EUk9J
RCkKLSAgICBQbGF0Zm9ybVRvdWNoRXZlbnQoY29uc3QgSW50UG9pbnQmIHdpbmRvd1BvcywgVG91
Y2hFdmVudFR5cGUsIFBsYXRmb3JtVG91Y2hQb2ludDo6U3RhdGUpOworICAgIFBsYXRmb3JtVG91
Y2hFdmVudChjb25zdCBJbnRQb2ludCYgd2luZG93UG9zLCBUb3VjaEV2ZW50VHlwZSwgUGxhdGZv
cm1Ub3VjaFBvaW50OjpTdGF0ZSwgbG9uZyBwbGF0Zm9ybUV2ZW50VGltZSwgaW50IG1ldGFTdGF0
ZSk7CiAjZW5kaWYKIAogICAgIFRvdWNoRXZlbnRUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVybiBt
X3R5cGU7IH0KQEAgLTY3LDYgKzY4LDggQEAgcHVibGljOgogICAgIGJvb2wgc2hpZnRLZXkoKSBj
b25zdCB7IHJldHVybiBtX3NoaWZ0S2V5OyB9CiAgICAgYm9vbCBtZXRhS2V5KCkgY29uc3QgeyBy
ZXR1cm4gbV9tZXRhS2V5OyB9CiAKKyAgICBsb25nIHBsYXRmb3JtRXZlbnRUaW1lKCkgY29uc3Qg
eyByZXR1cm4gbV9wbGF0Zm9ybUV2ZW50VGltZTsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgVG91Y2hF
dmVudFR5cGUgbV90eXBlOwogICAgIFZlY3RvcjxQbGF0Zm9ybVRvdWNoUG9pbnQ+IG1fdG91Y2hQ
b2ludHM7CkBAIC03NCw2ICs3Nyw5IEBAIHByb3RlY3RlZDoKICAgICBib29sIG1fYWx0S2V5Owog
ICAgIGJvb2wgbV9zaGlmdEtleTsKICAgICBib29sIG1fbWV0YUtleTsKKworICAgIC8vIFdlIGNh
biBzdG9yZSB0aGUgdGltZSB0aGF0IHRoZSB0b3VjaCBldmVudCB3YXMgY3JlYXRlZCBvbiB0aGUg
cGxhdGZvcm0gc2lkZS4KKyAgICBsb25nIG1fcGxhdGZvcm1FdmVudFRpbWU7CiB9OwogCiB9Cklu
ZGV4OiBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQvUGxhdGZvcm1Ub3VjaEV2ZW50QW5kcm9pZC5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9hbmRyb2lkL1BsYXRmb3JtVG91Y2hF
dmVudEFuZHJvaWQuY3BwCShyZXZpc2lvbiA1NTY1OCkKKysrIFdlYkNvcmUvcGxhdGZvcm0vYW5k
cm9pZC9QbGF0Zm9ybVRvdWNoRXZlbnRBbmRyb2lkLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzAs
MTQgKzMwLDIzIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotUGxhdGZvcm1Ub3VjaEV2ZW50
OjpQbGF0Zm9ybVRvdWNoRXZlbnQoY29uc3QgSW50UG9pbnQmIHdpbmRvd1BvcywgVG91Y2hFdmVu
dFR5cGUgdHlwZSwgUGxhdGZvcm1Ub3VjaFBvaW50OjpTdGF0ZSBzdGF0ZSkKKy8vIFRoZXNlIHZh
bHVlcyBzaG91bGQgYmUga2VwdCBpbiBzeW5jIHdpdGggdGhvc2UgZGVmaW5lZCBpbiB0aGUgYW5k
cm9pZC52aWV3LktleUV2ZW50IGNsYXNzIGZyb20gdGhlIEFuZHJvaWQgU0RLLgorZW51bSBBbmRy
b2lkTWV0YUtleVN0YXRlIHsKKyAgICBNRVRBX1NISUZUX09OID0gMHgwMSwKKyAgICBNRVRBX0FM
VF9PTiA9IDB4MDIsCisgICAgTUVUQV9TWU1fT04gPSAweDA0Cit9OworCitQbGF0Zm9ybVRvdWNo
RXZlbnQ6OlBsYXRmb3JtVG91Y2hFdmVudChjb25zdCBJbnRQb2ludCYgd2luZG93UG9zLCBUb3Vj
aEV2ZW50VHlwZSB0eXBlLCBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlN0YXRlIHN0YXRlLCBsb25nIHBs
YXRmb3JtRXZlbnRUaW1lLCBpbnQgbWV0YVN0YXRlKQogICAgIDogbV90eXBlKHR5cGUpCi0gICAg
LCBtX2N0cmxLZXkoZmFsc2UpCi0gICAgLCBtX2FsdEtleShmYWxzZSkKLSAgICAsIG1fc2hpZnRL
ZXkoZmFsc2UpCiAgICAgLCBtX21ldGFLZXkoZmFsc2UpCisgICAgLCBtX3BsYXRmb3JtRXZlbnRU
aW1lKHBsYXRmb3JtRXZlbnRUaW1lKQogewogICAgIG1fdG91Y2hQb2ludHMuYXBwZW5kKFBsYXRm
b3JtVG91Y2hQb2ludCh3aW5kb3dQb3MsIHN0YXRlKSk7CisKKyAgICBtX2FsdEtleSA9IG1ldGFT
dGF0ZSAmIE1FVEFfQUxUX09OOworICAgIG1fc2hpZnRLZXkgPSBtZXRhU3RhdGUgJiBNRVRBX1NI
SUZUX09OOworICAgIG1fY3RybEtleSA9IG1ldGFTdGF0ZSAmIE1FVEFfU1lNX09OOwogfQogCiB9
CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtVG91Y2hFdmVudFF0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtVG91Y2hFdmVudFF0LmNwcAko
cmV2aXNpb24gNTU2NTgpCisrKyBXZWJDb3JlL3BsYXRmb3JtL3F0L1BsYXRmb3JtVG91Y2hFdmVu
dFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQCBQbGF0Zm9ybVRvdWNoRXZl
bnQ6OlBsYXRmb3JtVG91Y2hFdmVudChRCiAgICAgbV9hbHRLZXkgPSAoZXZlbnQtPm1vZGlmaWVy
cygpICYgUXQ6OkFsdE1vZGlmaWVyKTsKICAgICBtX3NoaWZ0S2V5ID0gKGV2ZW50LT5tb2RpZmll
cnMoKSAmIFF0OjpTaGlmdE1vZGlmaWVyKTsKICAgICBtX21ldGFLZXkgPSAoZXZlbnQtPm1vZGlm
aWVycygpICYgUXQ6Ok1ldGFNb2RpZmllcik7CisgICAgbV9wbGF0Zm9ybUV2ZW50VGltZSA9IDA7
CiB9CiAKIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>50402</attachid>
            <date>2010-03-10 07:29:55 -0800</date>
            <delta_ts>2010-03-11 07:14:54 -0800</delta_ts>
            <desc>Proposed Patch.</desc>
            <filename>35521.txt</filename>
            <type>text/plain</type>
            <size>4448</size>
            <attacher name="Ben Murdoch">benm</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NTc3NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjQgQEAKKzIwMTAtMDMtMTAgIEJlbiBNdXJkb2NoICA8YmVubUBnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtBbmRy
b2lkXSBUaGUgcGxhdGZvcm0gdG91Y2ggZXZlbnRzIG9uIEFuZHJvaWQgYXJlIG1pc3Npbmcgc3Vw
cG9ydAorICAgICAgICBmb3Iga2V5IG1vZGlmaWVycy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM1NTIxCisKKyAgICAgICAgQWRkIHN1cHBvcnQgaW4g
UGxhdGZvcm1Ub3VjSEV2ZW50QW5kcm9pZCBmb3IgdGhlIHBsYXRmb3JtIHN1cHBseWluZworICAg
ICAgICBrZXkgbW9kaWZpZXJzIHdpdGggdG91Y2ggZXZlbnRzLgorCisgICAgICAgIEV4aXNpdGlu
ZyB0b3VjaCBldmVudHMgdGVzdCBzdWZmaWNlLgorCisgICAgICAgICogcGFnZS9FdmVudEhhbmRs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50
KTogRml4IHR3byBjb21waWxlciB3YXJuaW5ncy4KKyAgICAgICAgKiBwbGF0Zm9ybS9QbGF0Zm9y
bVRvdWNoRXZlbnQuaDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hFdmVudDo6UGxh
dGZvcm1Ub3VjaEV2ZW50KTogQWRkIHN1cHBvcnQgZm9yCisgICAgICAgICAgICBrZXkgbW9kaWZp
ZXJzIG9uIEFuZHJvaWQuCisgICAgICAgICogcGxhdGZvcm0vYW5kcm9pZC9QbGF0Zm9ybVRvdWNo
RXZlbnRBbmRyb2lkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtVG91Y2hFdmVudDo6
UGxhdGZvcm1Ub3VjaEV2ZW50KTogZGl0dG8uCisKIDIwMTAtMDMtMTAgIEhvbGdlciBIYW5zIFBl
dGVyIEZyZXl0aGVyICA8emVja2VAc2VsZmlzaC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
U2ltb24gSGF1c21hbm4uCkluZGV4OiBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkocmV2aXNpb24gNTU3NzQp
CisrKyBXZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjYx
MCw3ICsyNjEwLDcgQEAgc3RhdGljIFBhc3NSZWZQdHI8VG91Y2hMaXN0PiBhc3NlbWJsZVRhcgog
ewogICAgIFJlZlB0cjxUb3VjaExpc3Q+IHRhcmdldFRvdWNoZXMgPSBUb3VjaExpc3Q6OmNyZWF0
ZSgpOwogCi0gICAgZm9yIChpbnQgaSA9IDA7IGkgPCB0b3VjaGVzLT5sZW5ndGgoKTsgKytpKSB7
CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IHRvdWNoZXMtPmxlbmd0aCgpOyArK2kpIHsK
ICAgICAgICAgaWYgKHRvdWNoZXMtPml0ZW0oaSktPnRhcmdldCgpLT50b05vZGUoKS0+aXNTYW1l
Tm9kZSh0b3VjaFRhcmdldC0+dGFyZ2V0KCktPnRvTm9kZSgpKSkKICAgICAgICAgICAgIHRhcmdl
dFRvdWNoZXMtPmFwcGVuZCh0b3VjaGVzLT5pdGVtKGkpKTsKICAgICB9CkBAIC0yNjI5LDcgKzI2
MjksNyBAQCBib29sIEV2ZW50SGFuZGxlcjo6aGFuZGxlVG91Y2hFdmVudChjb25zCiAgICAgY29u
c3QgVmVjdG9yPFBsYXRmb3JtVG91Y2hQb2ludD4mIHBvaW50cyA9IGV2ZW50LnRvdWNoUG9pbnRz
KCk7CiAgICAgQXRvbWljU3RyaW5nKiBldmVudE5hbWUgPSAwOwogCi0gICAgZm9yIChpbnQgaSA9
IDA7IGkgPCBwb2ludHMuc2l6ZSgpOyArK2kpIHsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgcG9pbnRzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIGNvbnN0IFBsYXRmb3JtVG91Y2hQb2lu
dCYgcG9pbnQgPSBwb2ludHNbaV07CiAgICAgICAgIEludFBvaW50IHBhZ2VQb2ludCA9IGRvY3Vt
ZW50UG9pbnRGb3JXaW5kb3dQb2ludChtX2ZyYW1lLCBwb2ludC5wb3MoKSk7CiAgICAgICAgIEhp
dFRlc3RSZXN1bHQgcmVzdWx0ID0gaGl0VGVzdFJlc3VsdEF0UG9pbnQocGFnZVBvaW50LCAvKmFs
bG93U2hhZG93Q29udGVudCovIGZhbHNlKTsKQEAgLTI3MDksNyArMjcwOSw2IEBAIGJvb2wgRXZl
bnRIYW5kbGVyOjpoYW5kbGVUb3VjaEV2ZW50KGNvbnMKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICpldmVudE5hbWUsIHRvdWNoRXZlbnRUYXJnZXQt
PnRvTm9kZSgpLT5kb2N1bWVudCgpLT5kZWZhdWx0VmlldygpLAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMCwgMCwgMCwgMCwgZXZlbnQuY3RybEtl
eSgpLCBldmVudC5hbHRLZXkoKSwgZXZlbnQuc2hpZnRLZXkoKSwKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50Lm1ldGFLZXkoKSk7Ci0KICAg
ICAgICAgRXhjZXB0aW9uQ29kZSBlYyA9IDA7CiAgICAgICAgIHRvdWNoRXZlbnRUYXJnZXQtPmRp
c3BhdGNoRXZlbnQoY2FuY2VsRXYuZ2V0KCksIGVjKTsKICAgICAgICAgZGVmYXVsdFByZXZlbnRl
ZCB8PSBjYW5jZWxFdi0+ZGVmYXVsdFByZXZlbnRlZCgpOwpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9QbGF0Zm9ybVRvdWNoRXZlbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL1Bs
YXRmb3JtVG91Y2hFdmVudC5oCShyZXZpc2lvbiA1NTc3NCkKKysrIFdlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1Ub3VjaEV2ZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTU2LDcgKzU2LDcgQEAgcHVi
bGljOgogI2lmIFBMQVRGT1JNKFFUKQogICAgIFBsYXRmb3JtVG91Y2hFdmVudChRVG91Y2hFdmVu
dCopOwogI2VsaWYgUExBVEZPUk0oQU5EUk9JRCkKLSAgICBQbGF0Zm9ybVRvdWNoRXZlbnQoY29u
c3QgSW50UG9pbnQmIHdpbmRvd1BvcywgVG91Y2hFdmVudFR5cGUsIFBsYXRmb3JtVG91Y2hQb2lu
dDo6U3RhdGUpOworICAgIFBsYXRmb3JtVG91Y2hFdmVudChjb25zdCBJbnRQb2ludCYgd2luZG93
UG9zLCBUb3VjaEV2ZW50VHlwZSwgUGxhdGZvcm1Ub3VjaFBvaW50OjpTdGF0ZSwgaW50IG1ldGFT
dGF0ZSk7CiAjZW5kaWYKIAogICAgIFRvdWNoRXZlbnRUeXBlIHR5cGUoKSBjb25zdCB7IHJldHVy
biBtX3R5cGU7IH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vYW5kcm9pZC9QbGF0Zm9ybVRvdWNo
RXZlbnRBbmRyb2lkLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL2FuZHJvaWQv
UGxhdGZvcm1Ub3VjaEV2ZW50QW5kcm9pZC5jcHAJKHJldmlzaW9uIDU1Nzc0KQorKysgV2ViQ29y
ZS9wbGF0Zm9ybS9hbmRyb2lkL1BsYXRmb3JtVG91Y2hFdmVudEFuZHJvaWQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zMCwxNCArMzAsMjIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1QbGF0
Zm9ybVRvdWNoRXZlbnQ6OlBsYXRmb3JtVG91Y2hFdmVudChjb25zdCBJbnRQb2ludCYgd2luZG93
UG9zLCBUb3VjaEV2ZW50VHlwZSB0eXBlLCBQbGF0Zm9ybVRvdWNoUG9pbnQ6OlN0YXRlIHN0YXRl
KQorLy8gVGhlc2UgdmFsdWVzIHNob3VsZCBiZSBrZXB0IGluIHN5bmMgd2l0aCB0aG9zZSBkZWZp
bmVkIGluIHRoZSBhbmRyb2lkLnZpZXcuS2V5RXZlbnQgY2xhc3MgZnJvbSB0aGUgQW5kcm9pZCBT
REsuCitlbnVtIEFuZHJvaWRNZXRhS2V5U3RhdGUgeworICAgIE1FVEFfU0hJRlRfT04gPSAweDAx
LAorICAgIE1FVEFfQUxUX09OID0gMHgwMiwKKyAgICBNRVRBX1NZTV9PTiA9IDB4MDQKK307CisK
K1BsYXRmb3JtVG91Y2hFdmVudDo6UGxhdGZvcm1Ub3VjaEV2ZW50KGNvbnN0IEludFBvaW50JiB3
aW5kb3dQb3MsIFRvdWNoRXZlbnRUeXBlIHR5cGUsIFBsYXRmb3JtVG91Y2hQb2ludDo6U3RhdGUg
c3RhdGUsIGludCBtZXRhU3RhdGUpCiAgICAgOiBtX3R5cGUodHlwZSkKLSAgICAsIG1fY3RybEtl
eShmYWxzZSkKLSAgICAsIG1fYWx0S2V5KGZhbHNlKQotICAgICwgbV9zaGlmdEtleShmYWxzZSkK
ICAgICAsIG1fbWV0YUtleShmYWxzZSkKIHsKICAgICBtX3RvdWNoUG9pbnRzLmFwcGVuZChQbGF0
Zm9ybVRvdWNoUG9pbnQod2luZG93UG9zLCBzdGF0ZSkpOworCisgICAgbV9hbHRLZXkgPSBtZXRh
U3RhdGUgJiBNRVRBX0FMVF9PTjsKKyAgICBtX3NoaWZ0S2V5ID0gbWV0YVN0YXRlICYgTUVUQV9T
SElGVF9PTjsKKyAgICBtX2N0cmxLZXkgPSBtZXRhU3RhdGUgJiBNRVRBX1NZTV9PTjsKIH0KIAog
fQo=
</data>
<flag name="review"
          id="33542"
          type_id="1"
          status="+"
          setter="jorlow"
    />
          </attachment>
      

    </bug>

</bugzilla>