<?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>43665</bug_id>
          
          <creation_ts>2010-08-06 20:56:23 -0700</creation_ts>
          <short_desc>Delete key doesn&apos;t go Back in WebKit2 windows</short_desc>
          <delta_ts>2010-08-07 13:45:54 -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>OS X 10.5</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>261644</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-06 20:56:23 -0700</bug_when>
    <thetext>Delete key doesn&apos;t go Back in WebKit2 windows.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261645</commentid>
    <comment_count>1</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-06 20:56:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/8272978&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261646</commentid>
    <comment_count>2</comment_count>
      <attachid>63801</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-06 21:00:53 -0700</bug_when>
    <thetext>Created attachment 63801
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261661</commentid>
    <comment_count>3</comment_count>
      <attachid>63805</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-06 22:15:36 -0700</bug_when>
    <thetext>Created attachment 63805
Updated Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261692</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-07 01:21:36 -0700</bug_when>
    <thetext>Attachment 63805 did not build on win:
Build output: http://queues.webkit.org/results/3678003</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>261764</commentid>
    <comment_count>5</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2010-08-07 13:45:54 -0700</bug_when>
    <thetext>Landed in r64918.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63801</attachid>
            <date>2010-08-06 21:00:53 -0700</date>
            <delta_ts>2010-08-06 22:15:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.diff</filename>
            <type>text/plain</type>
            <size>18010</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDg5MykKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDAgQEAKKzIwMTAtMDgtMDYgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZWxldGUg
a2V5IGRvZXNuJ3QgZ28gQmFjayBpbiBXZWJLaXQyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84
MjcyOTc4PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDM2NjUKKworICAgICAgICAtIEFkZHMgc3VwcG9ydCBmb3IgZGVsZXRlIGtleSBnb2luZyBiYWNr
IChtYWMgb25seSBmb3Igbm93KQorICAgICAgICAtIEFkZHMgc3VwcG9ydCBmb3IgY29tbWFuZC1s
ZWZ0L2NvbW1hbmQgcmlnaHQgZ29pbmcgYmFjay9mb3J3YXJkCisgICAgICAgIC0gRmxlc2ggb3V0
IHNjcm9sbGluZyBkdWUgdG8gYXJyb3cga2V5cyBvbiB0aGUgbWFjIHRvIG1hdGNoIG9sZCB3ZWJr
aXQuCisgICAgICAgIC0gTWFkZSBwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQgcGxh
dGZvcm0gc3BlY2lmaWMgYW5kIGFkZGVkCisgICAgICAgICAgYSBib29sZWFuIHJldHVybiB2YWx1
ZSB3aGljaCB3aWxsIGJlIHVzZWQgbGF0ZXIgdG8gaW5mb3JtIHRoZSBVSSBwcm9jZXNzCisgICAg
ICAgICAgYWJvdXQgd2hhdCBldmVudHMgaGF2ZSBiZWVuIHByb2Nlc3NlZC4KKworICAgICAgICAq
IFNoYXJlZC9Db3JlSVBDU3VwcG9ydC9XZWJQYWdlUHJveHlNZXNzYWdlS2luZHMuaDoKKyAgICAg
ICAgKFdlYlBhZ2VQcm94eU1lc3NhZ2U6Oik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgX3dhbnRzS2V5RG93bkZvckV2ZW50Ol0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmJhY2tJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QmFja0ZvcndhcmRMaXN0UHJveHk6OmZvcndhcmRJdGVtKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmtleUV2ZW50
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6c2Ny
b2xsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGVyZm9ybURlZmF1bHRCZWhhdmlvckZv
cktleUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvcXQvV2ViUGFnZVF0LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6c2Nyb2xsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
cGVyZm9ybURlZmF1bHRCZWhhdmlvckZvcktleUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpzY3JvbGwpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZl
bnQpOgorCiAyMDEwLTA4LTA1ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyB0byBiZSBhYmxlIHRvIHNldCB0aGUg
Zm9udCBzbW9vdGhpbmcgdHlwZQpJbmRleDogV2ViS2l0Mi9TaGFyZWQvQ29yZUlQQ1N1cHBvcnQv
V2ViUGFnZVByb3h5TWVzc2FnZUtpbmRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9TaGFyZWQv
Q29yZUlQQ1N1cHBvcnQvV2ViUGFnZVByb3h5TWVzc2FnZUtpbmRzLmgJKHJldmlzaW9uIDY0ODc5
KQorKysgV2ViS2l0Mi9TaGFyZWQvQ29yZUlQQ1N1cHBvcnQvV2ViUGFnZVByb3h5TWVzc2FnZUtp
bmRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDcgKzY3LDkgQEAgZW51bSBLaW5kIHsKICAgICAK
ICAgICBCYWNrRm9yd2FyZEFkZEl0ZW0sCiAgICAgQmFja0ZvcndhcmRHb1RvSXRlbSwKKyAgICBC
YWNrRm9yd2FyZEJhY2tJdGVtLAogICAgIEJhY2tGb3J3YXJkQ3VycmVudEl0ZW0sCisgICAgQmFj
a0ZvcndhcmRGb3J3YXJkSXRlbSwKICAgICBCYWNrRm9yd2FyZEl0ZW1BdEluZGV4LAogICAgIEJh
Y2tGb3J3YXJkQmFja0xpc3RDb3VudCwKICAgICBCYWNrRm9yd2FyZEZvcndhcmRMaXN0Q291bnQs
CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDY0ODc5KQorKysg
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQ0
LDEyICs2NDQsMjUgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZQog
ICAgICAgICAgICAgcmVwbHktPmVuY29kZShDb3JlSVBDOjpJbihyZXN1bHQpKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CisKKyAgICAgICAgY2FzZSBXZWJQYWdlUHJveHlNZXNzYWdl
OjpCYWNrRm9yd2FyZEJhY2tJdGVtOiB7CisgICAgICAgICAgICBXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtKiBiYWNrSXRlbSA9IG1fYmFja0ZvcndhcmRMaXN0LT5iYWNrSXRlbSgpOworICAgICAgICAg
ICAgdWludDY0X3QgYmFja0l0ZW1JRCA9IGJhY2tJdGVtID8gYmFja0l0ZW0tPml0ZW1JRCgpIDog
MDsKKyAgICAgICAgICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6SW4oYmFja0l0ZW1JRCkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBXZWJQYWdlUHJveHlN
ZXNzYWdlOjpCYWNrRm9yd2FyZEN1cnJlbnRJdGVtOiB7CiAgICAgICAgICAgICBXZWJCYWNrRm9y
d2FyZExpc3RJdGVtKiBjdXJyZW50SXRlbSA9IG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRl
bSgpOwogICAgICAgICAgICAgdWludDY0X3QgY3VycmVudEl0ZW1JRCA9IGN1cnJlbnRJdGVtID8g
Y3VycmVudEl0ZW0tPml0ZW1JRCgpIDogMDsKICAgICAgICAgICAgIHJlcGx5LT5lbmNvZGUoQ29y
ZUlQQzo6SW4oY3VycmVudEl0ZW1JRCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
KyAgICAgICAgY2FzZSBXZWJQYWdlUHJveHlNZXNzYWdlOjpCYWNrRm9yd2FyZEZvcndhcmRJdGVt
OiB7CisgICAgICAgICAgICBXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBmb3J3YXJkSXRlbSA9IG1f
YmFja0ZvcndhcmRMaXN0LT5mb3J3YXJkSXRlbSgpOworICAgICAgICAgICAgdWludDY0X3QgZm9y
d2FyZEl0ZW1JRCA9IGZvcndhcmRJdGVtID8gZm9yd2FyZEl0ZW0tPml0ZW1JRCgpIDogMDsKKyAg
ICAgICAgICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6SW4oZm9yd2FyZEl0ZW1JRCkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBXZWJQYWdlUHJveHlNZXNz
YWdlOjpCYWNrRm9yd2FyZEl0ZW1BdEluZGV4OiB7CiAgICAgICAgICAgICBpbnQgaXRlbUluZGV4
OwogICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShDb3JlSVBDOjpPdXQoaXRlbUlu
ZGV4KSkpCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQkocmV2aXNpb24gNjQ4
NzkpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQkod29ya2luZyBjb3B5
KQpAQCAtMTQ4LDYgKzE0OCwxMyBAQCAtICh2b2lkKXNldEZyYW1lU2l6ZTooTlNTaXplKXNpemUK
IAogLy8gRXZlbnRzCiAKKy8vIE92ZXJyaWRlIHRoaXMgc28gdGhhdCBBcHBLaXQgd2lsbCBzZW5k
IHVzIGFycm93IGtleXMgYXMga2V5IGRvd24gZXZlbnRzIHNvIHdlIGNhbgorLy8gc3VwcG9ydCB0
aGVtIHZpYSB0aGUga2V5IGJpbmRpbmdzIG1lY2hhbmlzbS4KKy0gKEJPT0wpX3dhbnRzS2V5RG93
bkZvckV2ZW50OihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICByZXR1cm4gWUVTOworfQorCiAtICh2
b2lkKW1vdXNlRG93bjooTlNFdmVudCAqKXRoZUV2ZW50CiB7CiAgICAgV2ViTW91c2VFdmVudCBt
b3VzZUV2ZW50ID0gV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KHRoZUV2ZW50
LCBzZWxmKTsKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJk
TGlzdFByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAJKHJldmlzaW9uIDY0ODc5KQorKysgV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNDAsNyArMTQwLDE5IEBAIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6Omdv
VG9JdGVtKEgKIAogSGlzdG9yeUl0ZW0qIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpiYWNrSXRl
bSgpCiB7Ci0gICAgcmV0dXJuIDA7CisgICAgdWludDY0X3QgYmFja0l0ZW1JRCA9IDA7CisgICAg
aWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5jKFdlYlBhZ2VQ
cm94eU1lc3NhZ2U6OkJhY2tGb3J3YXJkQmFja0l0ZW0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFnZS0+cGFnZUlEKCksIENvcmVJUEM6
OkluKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIENvcmVJUEM6Ok91dChiYWNrSXRlbUlEKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29yZUlQQzo6Q29ubmVjdGlvbjo6Tm9UaW1lb3V0
KSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBpZiAoIWJhY2tJdGVtSUQpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgUmVmUHRyPEhpc3RvcnlJdGVtPiBpdGVtID0gaWRUb0hp
c3RvcnlJdGVtTWFwKCkuZ2V0KGJhY2tJdGVtSUQpOworICAgIHJldHVybiBpdGVtLmdldCgpOwog
fQogCiBIaXN0b3J5SXRlbSogV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmN1cnJlbnRJdGVtKCkK
QEAgLTE2Miw3ICsxNzQsMTkgQEAgSGlzdG9yeUl0ZW0qIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5
OjpjdQogCiBIaXN0b3J5SXRlbSogV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmZvcndhcmRJdGVt
KCkKIHsKLSAgICByZXR1cm4gMDsKKyAgICB1aW50NjRfdCBmb3J3YXJkSXRlbUlEID0gMDsKKyAg
ICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoV2ViUGFn
ZVByb3h5TWVzc2FnZTo6QmFja0ZvcndhcmRGb3J3YXJkSXRlbSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYWdlLT5wYWdlSUQoKSwgQ29y
ZUlQQzo6SW4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ29yZUlQQzo6T3V0KGZvcndhcmRJdGVtSUQpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3JlSVBDOjpDb25uZWN0aW9uOjpO
b1RpbWVvdXQpKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGlmICghZm9yd2Fy
ZEl0ZW1JRCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8SGlzdG9yeUl0ZW0+IGl0
ZW0gPSBpZFRvSGlzdG9yeUl0ZW1NYXAoKS5nZXQoZm9yd2FyZEl0ZW1JRCk7CisgICAgcmV0dXJu
IGl0ZW0uZ2V0KCk7CiB9CiAKIEhpc3RvcnlJdGVtKiBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6
aXRlbUF0SW5kZXgoaW50IGl0ZW1JbmRleCkKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCShyZXZpc2lvbiA2NDg3OSkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOTMsNyArMzkzLDkgQEAgdm9pZCBX
ZWJQYWdlOjprZXlFdmVudChjb25zdCBXZWJLZXlib2FyZAogICAgIGlmIChtX3BhZ2UtPmZvY3Vz
Q29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPmtleUV2
ZW50KHBsYXRmb3JtS2V5Ym9hcmRFdmVudCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHBlcmZv
cm1EZWZhdWx0QmVoYXZpb3JGb3JLZXlFdmVudChrZXlib2FyZEV2ZW50KTsKKyAgICBib29sIGhh
bmRsZWQgPSBwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQoa2V5Ym9hcmRFdmVudCk7
CisgICAgLy8gRklYTUU6IENvbW11bmljYXRlIGJhY2sgdG8gdGhlIFVJIHByb2Nlc3MgdGhhdCB0
aGUgZXZlbnQgd2FzIGhhbmRsZWQuCisgICAgKHZvaWQpaGFuZGxlZDsKIH0KIAogdm9pZCBXZWJQ
YWdlOjpzZXRBY3RpdmUoYm9vbCBpc0FjdGl2ZSkKQEAgLTQ4NSw2MyArNDg3LDYgQEAgYm9vbCBX
ZWJQYWdlOjpoYW5kbGVFZGl0aW5nS2V5Ym9hcmRFdmVudAogICAgIHJldHVybiBmcmFtZS0+ZWRp
dG9yKCktPmluc2VydFRleHQoZXZ0LT5rZXlFdmVudCgpLT50ZXh0KCksIGV2dCk7CiB9CiAKLXN0
YXRpYyBib29sIGdldFNjcm9sbE1hcHBpbmcoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYgZXZlbnQs
IFNjcm9sbERpcmVjdGlvbiYgZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSYgZ3JhbnVsYXJp
dHkpCi17Ci0gICAgaWYgKGV2ZW50LnR5cGUoKSAhPSBXZWJFdmVudDo6S2V5RG93biAmJiBldmVu
dC50eXBlKCkgIT0gV2ViRXZlbnQ6OlJhd0tleURvd24pCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIHN3aXRjaCAoZXZlbnQud2luZG93c1ZpcnR1YWxLZXlDb2RlKCkpIHsKLSAgICBjYXNl
IFZLX1NQQUNFOgotICAgICAgICBncmFudWxhcml0eSA9IFNjcm9sbEJ5UGFnZTsKLSAgICAgICAg
ZGlyZWN0aW9uID0gZXZlbnQuc2hpZnRLZXkoKSA/IFNjcm9sbFVwIDogU2Nyb2xsRG93bjsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBWS19MRUZUOgotICAgICAgICBncmFudWxhcml0eSA9IFNj
cm9sbEJ5TGluZTsKLSAgICAgICAgZGlyZWN0aW9uID0gU2Nyb2xsTGVmdDsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBWS19SSUdIVDoKLSAgICAgICAgZ3JhbnVsYXJpdHkgPSBTY3JvbGxCeUxp
bmU7Ci0gICAgICAgIGRpcmVjdGlvbiA9IFNjcm9sbFJpZ2h0OwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFZLX1VQOgotICAgICAgICBncmFudWxhcml0eSA9IFNjcm9sbEJ5TGluZTsKLSAgICAg
ICAgZGlyZWN0aW9uID0gU2Nyb2xsVXA7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVktfRE9X
TjoKLSAgICAgICAgZ3JhbnVsYXJpdHkgPSBTY3JvbGxCeUxpbmU7Ci0gICAgICAgIGRpcmVjdGlv
biA9IFNjcm9sbERvd247Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVktfSE9NRToKLSAgICAg
ICAgZ3JhbnVsYXJpdHkgPSBTY3JvbGxCeURvY3VtZW50OwotICAgICAgICBkaXJlY3Rpb24gPSBT
Y3JvbGxVcDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBWS19FTkQ6Ci0gICAgICAgIGdyYW51
bGFyaXR5ID0gU2Nyb2xsQnlEb2N1bWVudDsKLSAgICAgICAgZGlyZWN0aW9uID0gU2Nyb2xsRG93
bjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBWS19QUklPUjoKLSAgICAgICAgZ3JhbnVsYXJp
dHkgPSBTY3JvbGxCeVBhZ2U7Ci0gICAgICAgIGRpcmVjdGlvbiA9IFNjcm9sbFVwOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIFZLX05FWFQ6Ci0gICAgICAgIGdyYW51bGFyaXR5ID0gU2Nyb2xs
QnlQYWdlOwotICAgICAgICBkaXJlY3Rpb24gPSBTY3JvbGxEb3duOwotICAgICAgICBicmVhazsK
LSAgICBkZWZhdWx0OgotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCi0gICAgcmV0dXJu
IHRydWU7Ci19Ci0KLXZvaWQgV2ViUGFnZTo6cGVyZm9ybURlZmF1bHRCZWhhdmlvckZvcktleUV2
ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmIGtleWJvYXJkRXZlbnQpCi17Ci0gICAgU2Nyb2xs
RGlyZWN0aW9uIGRpcmVjdGlvbjsKLSAgICBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eTsK
LSAgICBpZiAoZ2V0U2Nyb2xsTWFwcGluZyhrZXlib2FyZEV2ZW50LCBkaXJlY3Rpb24sIGdyYW51
bGFyaXR5KSkKLSAgICAgICAgbV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFp
bkZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5zY3JvbGxSZWN1cnNpdmVseShkaXJlY3Rpb24sIGdy
YW51bGFyaXR5KTsKLX0KLQogdm9pZCBXZWJQYWdlOjpkaWRSZWNlaXZlTWVzc2FnZShDb3JlSVBD
OjpDb25uZWN0aW9uKiBjb25uZWN0aW9uLCBDb3JlSVBDOjpNZXNzYWdlSUQgbWVzc2FnZUlELCBD
b3JlSVBDOjpBcmd1bWVudERlY29kZXIqIGFyZ3VtZW50cykKIHsKICAgICBpZiAobWVzc2FnZUlE
LmlzPENvcmVJUEM6Ok1lc3NhZ2VDbGFzc0RyYXdpbmdBcmVhPigpKSB7CkluZGV4OiBXZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiA2NDg3OSkKKysrIFdlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTI5LDcgKzEyOSw3
IEBAIHByaXZhdGU6CiAKICAgICB2b2lkIHBsYXRmb3JtSW5pdGlhbGl6ZSgpOwogICAgIHN0YXRp
YyBjb25zdCBjaGFyKiBpbnRlcnByZXRLZXlFdmVudChjb25zdCBXZWJDb3JlOjpLZXlib2FyZEV2
ZW50Kik7Ci0gICAgdm9pZCBwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQoY29uc3Qg
V2ViS2V5Ym9hcmRFdmVudCYpOworICAgIGJvb2wgcGVyZm9ybURlZmF1bHRCZWhhdmlvckZvcktl
eUV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmKTsKIAogICAgIC8vIEFjdGlvbnMKICAgICB2
b2lkIHRyeUNsb3NlKCk7CkluZGV4OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2Vi
UGFnZU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMv
V2ViUGFnZU1hYy5tbQkocmV2aXNpb24gNjQ4NzkpCisrKyBXZWJLaXQyL1dlYlByb2Nlc3MvV2Vi
UGFnZS9tYWMvV2ViUGFnZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsOSBAQAog
CiAjaW5jbHVkZSAiV2ViUGFnZS5oIgogCisjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL0ZvY3VzQ29udHJvbGxlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4K
ICNpbmNsdWRlIDxXZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Bh
Z2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgpAQCAtMTc0
LDQgKzE3Nyw5OCBAQCBjb25zdCBjaGFyKiBXZWJQYWdlOjppbnRlcnByZXRLZXlFdmVudChjCiAg
ICAgcmV0dXJuIG1hcEtleSA/IGtleVByZXNzQ29tbWFuZHNNYXAtPmdldChtYXBLZXkpIDogMDsK
IH0KIAorc3RhdGljIGlubGluZSB2b2lkIHNjcm9sbChQYWdlKiBwYWdlLCBTY3JvbGxEaXJlY3Rp
b24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKK3sKKyAgICBwYWdl
LT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCktPmV2ZW50SGFuZGxlcigp
LT5zY3JvbGxSZWN1cnNpdmVseShkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKK30KKworYm9vbCBX
ZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9h
cmRFdmVudCYga2V5Ym9hcmRFdmVudCkKK3sKKyAgICBpZiAoa2V5Ym9hcmRFdmVudC50eXBlKCkg
IT0gV2ViRXZlbnQ6OktleURvd24pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIC8vIEZJ
WE1FOiBUaGlzIHNob3VsZCBiZSBpbiBXZWJDb3JlLgorCisgICAgc3dpdGNoIChrZXlib2FyZEV2
ZW50LnRleHQoKVswXSkgeworICAgIGNhc2UgTlNEZWxldGVDaGFyYWN0ZXI6CisgICAgICAgIGlm
IChrZXlib2FyZEV2ZW50LnNoaWZ0S2V5KCkpCisgICAgICAgICAgICBtX3BhZ2UtPmdvRm9yd2Fy
ZCgpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBtX3BhZ2UtPmdvQmFjaygpOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIDB4MDAyMDogLy8gU3BhY2Uga2V5CisgICAgICAgIGlmIChrZXli
b2FyZEV2ZW50LnNoaWZ0S2V5KCkpCisgICAgICAgICAgICBzY3JvbGwobV9wYWdlLCBTY3JvbGxV
cCwgU2Nyb2xsQnlQYWdlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2Nyb2xsKG1fcGFn
ZSwgU2Nyb2xsRG93biwgU2Nyb2xsQnlQYWdlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBO
U1BhZ2VVcEZ1bmN0aW9uS2V5OgorICAgICAgICBzY3JvbGwobV9wYWdlLCBTY3JvbGxVcCwgU2Ny
b2xsQnlQYWdlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBOU1BhZ2VEb3duRnVuY3Rpb25L
ZXk6CisgICAgICAgIHNjcm9sbChtX3BhZ2UsIFNjcm9sbERvd24sIFNjcm9sbEJ5UGFnZSk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgTlNIb21lRnVuY3Rpb25LZXk6CisgICAgICAgIHNjcm9s
bChtX3BhZ2UsIFNjcm9sbFVwLCBTY3JvbGxCeURvY3VtZW50KTsKKyAgICAgICAgc2Nyb2xsKG1f
cGFnZSwgU2Nyb2xsTGVmdCwgU2Nyb2xsQnlEb2N1bWVudCk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgTlNFbmRGdW5jdGlvbktleToKKyAgICAgICAgc2Nyb2xsKG1fcGFnZSwgU2Nyb2xsRG93
biwgU2Nyb2xsQnlEb2N1bWVudCk7CisgICAgICAgIHNjcm9sbChtX3BhZ2UsIFNjcm9sbExlZnQs
IFNjcm9sbEJ5RG9jdW1lbnQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIE5TVXBBcnJvd0Z1
bmN0aW9uS2V5OgorICAgICAgICBpZiAoa2V5Ym9hcmRFdmVudC5zaGlmdEtleSgpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoa2V5Ym9hcmRFdmVudC5tZXRhS2V5KCkp
IHsKKyAgICAgICAgICAgIHNjcm9sbChtX3BhZ2UsIFNjcm9sbFVwLCBTY3JvbGxCeURvY3VtZW50
KTsKKyAgICAgICAgICAgIHNjcm9sbChtX3BhZ2UsIFNjcm9sbExlZnQsIFNjcm9sbEJ5RG9jdW1l
bnQpOworICAgICAgICB9IGVsc2UgaWYgKGtleWJvYXJkRXZlbnQuYWx0S2V5KCkgfHwga2V5Ym9h
cmRFdmVudC5jb250cm9sS2V5KCkpCisgICAgICAgICAgICBzY3JvbGwobV9wYWdlLCBTY3JvbGxV
cCwgU2Nyb2xsQnlQYWdlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgc2Nyb2xsKG1fcGFn
ZSwgU2Nyb2xsVXAsIFNjcm9sbEJ5TGluZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgTlNE
b3duQXJyb3dGdW5jdGlvbktleToKKyAgICAgICAgaWYgKGtleWJvYXJkRXZlbnQuc2hpZnRLZXko
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKGtleWJvYXJkRXZlbnQu
bWV0YUtleSgpKSB7CisgICAgICAgICAgICBzY3JvbGwobV9wYWdlLCBTY3JvbGxEb3duLCBTY3Jv
bGxCeURvY3VtZW50KTsKKyAgICAgICAgICAgIHNjcm9sbChtX3BhZ2UsIFNjcm9sbExlZnQsIFNj
cm9sbEJ5RG9jdW1lbnQpOworICAgICAgICB9IGVsc2UgaWYgKGtleWJvYXJkRXZlbnQuYWx0S2V5
KCkgfHwga2V5Ym9hcmRFdmVudC5jb250cm9sS2V5KCkpCisgICAgICAgICAgICBzY3JvbGwobV9w
YWdlLCBTY3JvbGxEb3duLCBTY3JvbGxCeVBhZ2UpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBzY3JvbGwobV9wYWdlLCBTY3JvbGxEb3duLCBTY3JvbGxCeUxpbmUpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIE5TTGVmdEFycm93RnVuY3Rpb25LZXk6CisgICAgICAgIGlmIChrZXlib2Fy
ZEV2ZW50LnNoaWZ0S2V5KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIAor
ICAgICAgICBpZiAoa2V5Ym9hcmRFdmVudC5tZXRhS2V5KCkpCisgICAgICAgICAgICBtX3BhZ2Ut
PmdvQmFjaygpOworICAgICAgICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChrZXlib2FyZEV2ZW50
LmFsdEtleSgpICB8IGtleWJvYXJkRXZlbnQuY29udHJvbEtleSgpKQorICAgICAgICAgICAgICAg
IHNjcm9sbChtX3BhZ2UsIFNjcm9sbExlZnQsIFNjcm9sbEJ5UGFnZSk7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgc2Nyb2xsKG1fcGFnZSwgU2Nyb2xsTGVmdCwgU2Nyb2xsQnlM
aW5lKTsKKyAgICAgICAgfQorICAgICAgICBicmVhazsKKyAgICBjYXNlIE5TUmlnaHRBcnJvd0Z1
bmN0aW9uS2V5OgorICAgICAgICBpZiAoa2V5Ym9hcmRFdmVudC5zaGlmdEtleSgpKQorICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICAKKyAgICAgICAgaWYgKGtleWJvYXJkRXZlbnQu
bWV0YUtleSgpKQorICAgICAgICAgICAgbV9wYWdlLT5nb0ZvcndhcmQoKTsKKyAgICAgICAgZWxz
ZSB7CisgICAgICAgICAgICBpZiAoa2V5Ym9hcmRFdmVudC5hbHRLZXkoKSB8fCBrZXlib2FyZEV2
ZW50LmNvbnRyb2xLZXkoKSkKKyAgICAgICAgICAgICAgICBzY3JvbGwobV9wYWdlLCBTY3JvbGxS
aWdodCwgU2Nyb2xsQnlQYWdlKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICBz
Y3JvbGwobV9wYWdlLCBTY3JvbGxSaWdodCwgU2Nyb2xsQnlMaW5lKTsKKyAgICAgICAgfQorICAg
ICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
CisgICAgcmV0dXJuIHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvV2ViUGFnZVF0LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBX
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9XZWJQYWdlUXQuY3BwCShyZXZpc2lvbiA2NDg3
OSkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L1dlYlBhZ2VRdC5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI2LDYgKzI2LDkgQEAKIAogI2luY2x1ZGUgIldlYlBhZ2UuaCIKIAorI2lu
Y2x1ZGUgIldlYkV2ZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9Gb2N1c0NvbnRyb2xsZXIuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2
ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0
Zm9ybUtleWJvYXJkRXZlbnQuaD4KQEAgLTIwMCw1ICsyMDMsNTkgQEAgY29uc3QgY2hhciogV2Vi
UGFnZTo6aW50ZXJwcmV0S2V5RXZlbnQoYwogICAgIGludCBtYXBLZXkgPSBtb2RpZmllcnMgPDwg
MTYgfCBldnQtPmNoYXJDb2RlKCk7CiAgICAgcmV0dXJuIG1hcEtleSA/IGtleVByZXNzQ29tbWFu
ZHNNYXAtPmdldChtYXBLZXkpIDogMDsKIH0KLSAgICAKKworc3RhdGljIGlubGluZSB2b2lkIHNj
cm9sbChQYWdlKiBwYWdlLCBTY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBTY3JvbGxHcmFudWxh
cml0eSBncmFudWxhcml0eSkKK3sKKyAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS0+Zm9jdXNl
ZE9yTWFpbkZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5zY3JvbGxSZWN1cnNpdmVseShkaXJlY3Rp
b24sIGdyYW51bGFyaXR5KTsKK30KKworYm9vbCBXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2
aW9yRm9yS2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYga2V5Ym9hcmRFdmVudCkKK3sK
KyAgICBpZiAoa2V5Ym9hcmRFdmVudC50eXBlKCkgIT0gV2ViRXZlbnQ6OktleURvd24gJiYga2V5
Ym9hcmRFdmVudC50eXBlKCkgIT0gV2ViRXZlbnQ6OlJhd0tleURvd24pCisgICAgICAgIHJldHVy
biBmYWxzZTsKKworICAgIHN3aXRjaCAoa2V5Ym9hcmRFdmVudC53aW5kb3dzVmlydHVhbEtleUNv
ZGUoKSkgeworICAgIGNhc2UgVktfQkFDSzoKKyAgICAgICAgaWYgKGtleWJvYXJkRXZlbnQuc2hp
ZnRLZXkoKSkKKyAgICAgICAgICAgIG1fcGFnZS0+Z29Gb3J3YXJkKCk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIG1fcGFnZS0+Z29CYWNrKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
VktfU1BBQ0U6CisgICAgICAgIGlmIChrZXlib2FyZEV2ZW50LnNoaWZ0S2V5KCkpCisgICAgICAg
ICAgICBzY3JvbGwobV9wYWdlLCBTY3JvbGxVcCwgU2Nyb2xsQnlQYWdlKTsKKyAgICAgICAgZWxz
ZQorICAgICAgICAgICAgc2Nyb2xsKG1fcGFnZSwgU2Nyb2xsRG93biwgU2Nyb2xsQnlQYWdlKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWS19MRUZUOgorICAgICAgICBzY3JvbGwobV9wYWdl
LCBTY3JvbGxMZWZ0LCBTY3JvbGxCeUxpbmUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFZL
X1JJR0hUOgorICAgICAgICBzY3JvbGwobV9wYWdlLCBTY3JvbGxSaWdodCwgU2Nyb2xsQnlMaW5l
KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWS19VUDoKKyAgICAgICAgc2Nyb2xsKG1fcGFn
ZSwgU2Nyb2xsVXAsIFNjcm9sbEJ5TGluZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVktf
RE9XTjoKKyAgICAgICAgc2Nyb2xsKG1fcGFnZSwgU2Nyb2xsRG93biwgU2Nyb2xsQnlMaW5lKTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWS19IT01FOgorICAgICAgICBzY3JvbGwobV9wYWdl
LCBTY3JvbGxVcCwgU2Nyb2xsQnlEb2N1bWVudCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
VktfRU5EOgorICAgICAgICBzY3JvbGwobV9wYWdlLCBTY3JvbGxEb3duLCBTY3JvbGxCeURvY3Vt
ZW50KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWS19QUklPUjoKKyAgICAgICAgc2Nyb2xs
KG1fcGFnZSwgU2Nyb2xsVXAsIFNjcm9sbEJ5UGFnZSk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgVktfTkVYVDoKKyAgICAgICAgc2Nyb2xsKG1fcGFnZSwgU2Nyb2xsRG93biwgU2Nyb2xsQnlQ
YWdlKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIH0KKworICAgIHJldHVybiB0cnVlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
SW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2luLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFnZVdpbi5jcHAJ
KHJldmlzaW9uIDY0ODc5KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uvd2luL1dlYlBh
Z2VXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNSw3ICsyNSwxMCBAQAogCiAjaW5jbHVkZSAi
V2ViUGFnZS5oIgogCisjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0Zv
Y3VzQ29udHJvbGxlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRm9udFJlbmRlcmluZ01vZGUuaD4K
KyNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9LZXlib2FyZEV2
ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYWdlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QbGF0
Zm9ybUtleWJvYXJkRXZlbnQuaD4KQEAgLTE2MSw0ICsxNjQsNTggQEAgY29uc3QgY2hhciogV2Vi
UGFnZTo6aW50ZXJwcmV0S2V5RXZlbnQoYwogICAgIHJldHVybiBtYXBLZXkgPyBrZXlQcmVzc0Nv
bW1hbmRzTWFwLT5nZXQobWFwS2V5KSA6IDA7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZCBzY3Jv
bGwoUGFnZSogcGFnZSwgU2Nyb2xsRGlyZWN0aW9uIGRpcmVjdGlvbiwgU2Nyb2xsR3JhbnVsYXJp
dHkgZ3JhbnVsYXJpdHkpCit7CisgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRP
ck1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+c2Nyb2xsUmVjdXJzaXZlbHkoZGlyZWN0aW9u
LCBncmFudWxhcml0eSk7Cit9CisKK2Jvb2wgV2ViUGFnZTo6cGVyZm9ybURlZmF1bHRCZWhhdmlv
ckZvcktleUV2ZW50KGNvbnN0IFdlYktleWJvYXJkRXZlbnQmIGtleWJvYXJkRXZlbnQpCit7Cisg
ICAgaWYgKGtleWJvYXJkRXZlbnQudHlwZSgpICE9IFdlYkV2ZW50OjpLZXlEb3duICYmIGtleWJv
YXJkRXZlbnQudHlwZSgpICE9IFdlYkV2ZW50OjpSYXdLZXlEb3duKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICBzd2l0Y2ggKGtleWJvYXJkRXZlbnQud2luZG93c1ZpcnR1YWxLZXlDb2Rl
KCkpIHsKKyAgICBjYXNlIFZLX0JBQ0s6CisgICAgICAgIGlmIChrZXlib2FyZEV2ZW50LnNoaWZ0
S2V5KCkpCisgICAgICAgICAgICBtX3BhZ2UtPmdvRm9yd2FyZCgpOworICAgICAgICBlbHNlCisg
ICAgICAgICAgICBtX3BhZ2UtPmdvQmFjaygpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFZL
X1NQQUNFOgorICAgICAgICBpZiAoa2V5Ym9hcmRFdmVudC5zaGlmdEtleSgpKQorICAgICAgICAg
ICAgc2Nyb2xsKG1fcGFnZSwgU2Nyb2xsVXAsIFNjcm9sbEJ5UGFnZSk7CisgICAgICAgIGVsc2UK
KyAgICAgICAgICAgIHNjcm9sbChtX3BhZ2UsIFNjcm9sbERvd24sIFNjcm9sbEJ5UGFnZSk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgVktfTEVGVDoKKyAgICAgICAgc2Nyb2xsKG1fcGFnZSwg
U2Nyb2xsTGVmdCwgU2Nyb2xsQnlMaW5lKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWS19S
SUdIVDoKKyAgICAgICAgc2Nyb2xsKG1fcGFnZSwgU2Nyb2xsUmlnaHQsIFNjcm9sbEJ5TGluZSk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVktfVVA6CisgICAgICAgIHNjcm9sbChtX3BhZ2Us
IFNjcm9sbFVwLCBTY3JvbGxCeUxpbmUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFZLX0RP
V046CisgICAgICAgIHNjcm9sbChtX3BhZ2UsIFNjcm9sbERvd24sIFNjcm9sbEJ5TGluZSk7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgVktfSE9NRToKKyAgICAgICAgc2Nyb2xsKG1fcGFnZSwg
U2Nyb2xsVXAsIFNjcm9sbEJ5RG9jdW1lbnQpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFZL
X0VORDoKKyAgICAgICAgc2Nyb2xsKG1fcGFnZSwgU2Nyb2xsRG93biwgU2Nyb2xsQnlEb2N1bWVu
dCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVktfUFJJT1I6CisgICAgICAgIHNjcm9sbCht
X3BhZ2UsIFNjcm9sbFVwLCBTY3JvbGxCeVBhZ2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IFZLX05FWFQ6CisgICAgICAgIHNjcm9sbChtX3BhZ2UsIFNjcm9sbERvd24sIFNjcm9sbEJ5UGFn
ZSk7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63805</attachid>
            <date>2010-08-06 22:15:36 -0700</date>
            <delta_ts>2010-08-07 13:43:34 -0700</delta_ts>
            <desc>Updated Patch</desc>
            <filename>updated-patch.diff</filename>
            <type>text/plain</type>
            <size>20505</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdDIvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvQ2hhbmdlTG9n
CShyZXZpc2lvbiA2NDg5NSkKKysrIFdlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDAgQEAKKzIwMTAtMDgtMDYgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBEZWxldGUg
a2V5IGRvZXNuJ3QgZ28gQmFjayBpbiBXZWJLaXQyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84
MjcyOTc4PgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDM2NjUKKworICAgICAgICAtIEFkZHMgc3VwcG9ydCBmb3IgZGVsZXRlIGtleSBnb2luZyBiYWNr
IChtYWMgb25seSBmb3Igbm93KQorICAgICAgICAtIEFkZHMgc3VwcG9ydCBmb3IgY29tbWFuZC1s
ZWZ0L2NvbW1hbmQgcmlnaHQgZ29pbmcgYmFjay9mb3J3YXJkCisgICAgICAgIC0gRmxlc2ggb3V0
IHNjcm9sbGluZyBkdWUgdG8gYXJyb3cga2V5cyBvbiB0aGUgbWFjIHRvIG1hdGNoIG9sZCB3ZWJr
aXQuCisgICAgICAgIC0gTWFkZSBwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQgcGxh
dGZvcm0gc3BlY2lmaWMgYW5kIGFkZGVkCisgICAgICAgICAgYSBib29sZWFuIHJldHVybiB2YWx1
ZSB3aGljaCB3aWxsIGJlIHVzZWQgbGF0ZXIgdG8gaW5mb3JtIHRoZSBVSSBwcm9jZXNzCisgICAg
ICAgICAgYWJvdXQgd2hhdCBldmVudHMgaGF2ZSBiZWVuIHByb2Nlc3NlZC4KKworICAgICAgICAq
IFNoYXJlZC9Db3JlSVBDU3VwcG9ydC9XZWJQYWdlUHJveHlNZXNzYWdlS2luZHMuaDoKKyAgICAg
ICAgKFdlYlBhZ2VQcm94eU1lc3NhZ2U6Oik6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgX3dhbnRzS2V5RG93bkZvckV2ZW50Ol0pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZSk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmJhY2tJdGVtKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QmFja0ZvcndhcmRMaXN0UHJveHk6OmZvcndhcmRJdGVtKToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmtleUV2ZW50
KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6c2Ny
b2xsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGVyZm9ybURlZmF1bHRCZWhhdmlvckZv
cktleUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvcXQvV2ViUGFnZVF0LmNw
cDoKKyAgICAgICAgKFdlYktpdDo6c2Nyb2xsKToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6
cGVyZm9ybURlZmF1bHRCZWhhdmlvckZvcktleUV2ZW50KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2Uvd2luL1dlYlBhZ2VXaW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpzY3JvbGwpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZl
bnQpOgorCiAyMDEwLTA4LTA1ICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBsZS5jb20+
CiAKICAgICAgICAgV2ViS2l0VGVzdFJ1bm5lciBuZWVkcyB0byBiZSBhYmxlIHRvIHNldCB0aGUg
Zm9udCBzbW9vdGhpbmcgdHlwZQpJbmRleDogV2ViS2l0Mi9TaGFyZWQvQ29yZUlQQ1N1cHBvcnQv
V2ViUGFnZVByb3h5TWVzc2FnZUtpbmRzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0Mi9TaGFyZWQv
Q29yZUlQQ1N1cHBvcnQvV2ViUGFnZVByb3h5TWVzc2FnZUtpbmRzLmgJKHJldmlzaW9uIDY0ODk1
KQorKysgV2ViS2l0Mi9TaGFyZWQvQ29yZUlQQ1N1cHBvcnQvV2ViUGFnZVByb3h5TWVzc2FnZUtp
bmRzLmgJKHdvcmtpbmcgY29weSkKQEAgLTY3LDcgKzY3LDkgQEAgZW51bSBLaW5kIHsKICAgICAK
ICAgICBCYWNrRm9yd2FyZEFkZEl0ZW0sCiAgICAgQmFja0ZvcndhcmRHb1RvSXRlbSwKKyAgICBC
YWNrRm9yd2FyZEJhY2tJdGVtLAogICAgIEJhY2tGb3J3YXJkQ3VycmVudEl0ZW0sCisgICAgQmFj
a0ZvcndhcmRGb3J3YXJkSXRlbSwKICAgICBCYWNrRm9yd2FyZEl0ZW1BdEluZGV4LAogICAgIEJh
Y2tGb3J3YXJkQmFja0xpc3RDb3VudCwKICAgICBCYWNrRm9yd2FyZEZvcndhcmRMaXN0Q291bnQs
CkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDY0ODk1KQorKysg
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjQ0
LDEyICs2NDQsMjUgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmRpZFJlY2VpdmVTeW5jTWVzc2FnZQog
ICAgICAgICAgICAgcmVwbHktPmVuY29kZShDb3JlSVBDOjpJbihyZXN1bHQpKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CisKKyAgICAgICAgY2FzZSBXZWJQYWdlUHJveHlNZXNzYWdl
OjpCYWNrRm9yd2FyZEJhY2tJdGVtOiB7CisgICAgICAgICAgICBXZWJCYWNrRm9yd2FyZExpc3RJ
dGVtKiBiYWNrSXRlbSA9IG1fYmFja0ZvcndhcmRMaXN0LT5iYWNrSXRlbSgpOworICAgICAgICAg
ICAgdWludDY0X3QgYmFja0l0ZW1JRCA9IGJhY2tJdGVtID8gYmFja0l0ZW0tPml0ZW1JRCgpIDog
MDsKKyAgICAgICAgICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6SW4oYmFja0l0ZW1JRCkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBXZWJQYWdlUHJveHlN
ZXNzYWdlOjpCYWNrRm9yd2FyZEN1cnJlbnRJdGVtOiB7CiAgICAgICAgICAgICBXZWJCYWNrRm9y
d2FyZExpc3RJdGVtKiBjdXJyZW50SXRlbSA9IG1fYmFja0ZvcndhcmRMaXN0LT5jdXJyZW50SXRl
bSgpOwogICAgICAgICAgICAgdWludDY0X3QgY3VycmVudEl0ZW1JRCA9IGN1cnJlbnRJdGVtID8g
Y3VycmVudEl0ZW0tPml0ZW1JRCgpIDogMDsKICAgICAgICAgICAgIHJlcGx5LT5lbmNvZGUoQ29y
ZUlQQzo6SW4oY3VycmVudEl0ZW1JRCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
KyAgICAgICAgY2FzZSBXZWJQYWdlUHJveHlNZXNzYWdlOjpCYWNrRm9yd2FyZEZvcndhcmRJdGVt
OiB7CisgICAgICAgICAgICBXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiBmb3J3YXJkSXRlbSA9IG1f
YmFja0ZvcndhcmRMaXN0LT5mb3J3YXJkSXRlbSgpOworICAgICAgICAgICAgdWludDY0X3QgZm9y
d2FyZEl0ZW1JRCA9IGZvcndhcmRJdGVtID8gZm9yd2FyZEl0ZW0tPml0ZW1JRCgpIDogMDsKKyAg
ICAgICAgICAgIHJlcGx5LT5lbmNvZGUoQ29yZUlQQzo6SW4oZm9yd2FyZEl0ZW1JRCkpOworICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KICAgICAgICAgY2FzZSBXZWJQYWdlUHJveHlNZXNz
YWdlOjpCYWNrRm9yd2FyZEl0ZW1BdEluZGV4OiB7CiAgICAgICAgICAgICBpbnQgaXRlbUluZGV4
OwogICAgICAgICAgICAgaWYgKCFhcmd1bWVudHMtPmRlY29kZShDb3JlSVBDOjpPdXQoaXRlbUlu
ZGV4KSkpCkluZGV4OiBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQkocmV2aXNpb24gNjQ4
OTUpCisrKyBXZWJLaXQyL1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQkod29ya2luZyBjb3B5
KQpAQCAtMTQ4LDYgKzE0OCwxMyBAQCAtICh2b2lkKXNldEZyYW1lU2l6ZTooTlNTaXplKXNpemUK
IAogLy8gRXZlbnRzCiAKKy8vIE92ZXJyaWRlIHRoaXMgc28gdGhhdCBBcHBLaXQgd2lsbCBzZW5k
IHVzIGFycm93IGtleXMgYXMga2V5IGRvd24gZXZlbnRzIHNvIHdlIGNhbgorLy8gc3VwcG9ydCB0
aGVtIHZpYSB0aGUga2V5IGJpbmRpbmdzIG1lY2hhbmlzbS4KKy0gKEJPT0wpX3dhbnRzS2V5RG93
bkZvckV2ZW50OihOU0V2ZW50ICopZXZlbnQKK3sKKyAgICByZXR1cm4gWUVTOworfQorCiAtICh2
b2lkKW1vdXNlRG93bjooTlNFdmVudCAqKXRoZUV2ZW50CiB7CiAgICAgV2ViTW91c2VFdmVudCBt
b3VzZUV2ZW50ID0gV2ViRXZlbnRGYWN0b3J5OjpjcmVhdGVXZWJNb3VzZUV2ZW50KHRoZUV2ZW50
LCBzZWxmKTsKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJk
TGlzdFByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAJKHJldmlzaW9uIDY0ODk1KQorKysgV2ViS2l0Mi9X
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xNDAsNyArMTQwLDE5IEBAIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6Omdv
VG9JdGVtKEgKIAogSGlzdG9yeUl0ZW0qIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjpiYWNrSXRl
bSgpCiB7Ci0gICAgcmV0dXJuIDA7CisgICAgdWludDY0X3QgYmFja0l0ZW1JRCA9IDA7CisgICAg
aWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNlbmRTeW5jKFdlYlBhZ2VQ
cm94eU1lc3NhZ2U6OkJhY2tGb3J3YXJkQmFja0l0ZW0sCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fcGFnZS0+cGFnZUlEKCksIENvcmVJUEM6
OkluKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIENvcmVJUEM6Ok91dChiYWNrSXRlbUlEKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgQ29yZUlQQzo6Q29ubmVjdGlvbjo6Tm9UaW1lb3V0
KSkgeworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICBpZiAoIWJhY2tJdGVtSUQpCisg
ICAgICAgIHJldHVybiAwOworCisgICAgUmVmUHRyPEhpc3RvcnlJdGVtPiBpdGVtID0gaWRUb0hp
c3RvcnlJdGVtTWFwKCkuZ2V0KGJhY2tJdGVtSUQpOworICAgIHJldHVybiBpdGVtLmdldCgpOwog
fQogCiBIaXN0b3J5SXRlbSogV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmN1cnJlbnRJdGVtKCkK
QEAgLTE2Miw3ICsxNzQsMTkgQEAgSGlzdG9yeUl0ZW0qIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5
OjpjdQogCiBIaXN0b3J5SXRlbSogV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmZvcndhcmRJdGVt
KCkKIHsKLSAgICByZXR1cm4gMDsKKyAgICB1aW50NjRfdCBmb3J3YXJkSXRlbUlEID0gMDsKKyAg
ICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoV2ViUGFn
ZVByb3h5TWVzc2FnZTo6QmFja0ZvcndhcmRGb3J3YXJkSXRlbSwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9wYWdlLT5wYWdlSUQoKSwgQ29y
ZUlQQzo6SW4oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgQ29yZUlQQzo6T3V0KGZvcndhcmRJdGVtSUQpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDb3JlSVBDOjpDb25uZWN0aW9uOjpO
b1RpbWVvdXQpKSB7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIGlmICghZm9yd2Fy
ZEl0ZW1JRCkKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBSZWZQdHI8SGlzdG9yeUl0ZW0+IGl0
ZW0gPSBpZFRvSGlzdG9yeUl0ZW1NYXAoKS5nZXQoZm9yd2FyZEl0ZW1JRCk7CisgICAgcmV0dXJu
IGl0ZW0uZ2V0KCk7CiB9CiAKIEhpc3RvcnlJdGVtKiBXZWJCYWNrRm9yd2FyZExpc3RQcm94eTo6
aXRlbUF0SW5kZXgoaW50IGl0ZW1JbmRleCkKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuY3BwCShyZXZpc2lvbiA2NDg5NSkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NCw3ICs0NCw2IEBACiAjaW5jbHVk
ZSAiV2ViUGFnZVByb3h5TWVzc2FnZUtpbmRzLmgiCiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNT
dG9yZS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKLSNpbmNsdWRlIDxXZWJDb3JlL0JhY2tG
b3J3YXJkTGlzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRXZlbnRIYW5kbGVyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Gb2N1c0NvbnRyb2xsZXIuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lLmg+
CkBAIC01Nyw3ICs1Niw2IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SZW5kZXJUcmVlQXNUZXh0Lmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJjZVJlcXVlc3QuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1NldHRpbmdzLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9XaW5kb3dzS2V5Ym9hcmRDb2Rlcy5oPgog
I2luY2x1ZGUgPHJ1bnRpbWUvSlNMb2NrLmg+CiAjaW5jbHVkZSA8cnVudGltZS9KU1ZhbHVlLmg+
CiAKQEAgLTM5Myw3ICszOTEsOSBAQCB2b2lkIFdlYlBhZ2U6OmtleUV2ZW50KGNvbnN0IFdlYktl
eWJvYXJkCiAgICAgaWYgKG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCktPmZvY3VzZWRPck1haW5G
cmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+a2V5RXZlbnQocGxhdGZvcm1LZXlib2FyZEV2ZW50KSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgcGVyZm9ybURlZmF1bHRCZWhhdmlvckZvcktleUV2ZW50
KGtleWJvYXJkRXZlbnQpOworICAgIGJvb2wgaGFuZGxlZCA9IHBlcmZvcm1EZWZhdWx0QmVoYXZp
b3JGb3JLZXlFdmVudChrZXlib2FyZEV2ZW50KTsKKyAgICAvLyBGSVhNRTogQ29tbXVuaWNhdGUg
YmFjayB0byB0aGUgVUkgcHJvY2VzcyB0aGF0IHRoZSBldmVudCB3YXMgaGFuZGxlZC4KKyAgICAo
dm9pZCloYW5kbGVkOwogfQogCiB2b2lkIFdlYlBhZ2U6OnNldEFjdGl2ZShib29sIGlzQWN0aXZl
KQpAQCAtNDg3LDYzICs0ODcsNiBAQCBib29sIFdlYlBhZ2U6OmhhbmRsZUVkaXRpbmdLZXlib2Fy
ZEV2ZW50CiAgICAgcmV0dXJuIGZyYW1lLT5lZGl0b3IoKS0+aW5zZXJ0VGV4dChldnQtPmtleUV2
ZW50KCktPnRleHQoKSwgZXZ0KTsKIH0KIAotc3RhdGljIGJvb2wgZ2V0U2Nyb2xsTWFwcGluZyhj
b25zdCBXZWJLZXlib2FyZEV2ZW50JiBldmVudCwgU2Nyb2xsRGlyZWN0aW9uJiBkaXJlY3Rpb24s
IFNjcm9sbEdyYW51bGFyaXR5JiBncmFudWxhcml0eSkKLXsKLSAgICBpZiAoZXZlbnQudHlwZSgp
ICE9IFdlYkV2ZW50OjpLZXlEb3duICYmIGV2ZW50LnR5cGUoKSAhPSBXZWJFdmVudDo6UmF3S2V5
RG93bikKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgc3dpdGNoIChldmVudC53aW5kb3dz
VmlydHVhbEtleUNvZGUoKSkgewotICAgIGNhc2UgVktfU1BBQ0U6Ci0gICAgICAgIGdyYW51bGFy
aXR5ID0gU2Nyb2xsQnlQYWdlOwotICAgICAgICBkaXJlY3Rpb24gPSBldmVudC5zaGlmdEtleSgp
ID8gU2Nyb2xsVXAgOiBTY3JvbGxEb3duOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFZLX0xF
RlQ6Ci0gICAgICAgIGdyYW51bGFyaXR5ID0gU2Nyb2xsQnlMaW5lOwotICAgICAgICBkaXJlY3Rp
b24gPSBTY3JvbGxMZWZ0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFZLX1JJR0hUOgotICAg
ICAgICBncmFudWxhcml0eSA9IFNjcm9sbEJ5TGluZTsKLSAgICAgICAgZGlyZWN0aW9uID0gU2Ny
b2xsUmlnaHQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVktfVVA6Ci0gICAgICAgIGdyYW51
bGFyaXR5ID0gU2Nyb2xsQnlMaW5lOwotICAgICAgICBkaXJlY3Rpb24gPSBTY3JvbGxVcDsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBWS19ET1dOOgotICAgICAgICBncmFudWxhcml0eSA9IFNj
cm9sbEJ5TGluZTsKLSAgICAgICAgZGlyZWN0aW9uID0gU2Nyb2xsRG93bjsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBWS19IT01FOgotICAgICAgICBncmFudWxhcml0eSA9IFNjcm9sbEJ5RG9j
dW1lbnQ7Ci0gICAgICAgIGRpcmVjdGlvbiA9IFNjcm9sbFVwOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFZLX0VORDoKLSAgICAgICAgZ3JhbnVsYXJpdHkgPSBTY3JvbGxCeURvY3VtZW50Owot
ICAgICAgICBkaXJlY3Rpb24gPSBTY3JvbGxEb3duOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IFZLX1BSSU9SOgotICAgICAgICBncmFudWxhcml0eSA9IFNjcm9sbEJ5UGFnZTsKLSAgICAgICAg
ZGlyZWN0aW9uID0gU2Nyb2xsVXA7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgVktfTkVYVDoK
LSAgICAgICAgZ3JhbnVsYXJpdHkgPSBTY3JvbGxCeVBhZ2U7Ci0gICAgICAgIGRpcmVjdGlvbiA9
IFNjcm9sbERvd247Ci0gICAgICAgIGJyZWFrOwotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHJldHVy
biBmYWxzZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gdHJ1ZTsKLX0KLQotdm9pZCBXZWJQYWdlOjpw
ZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYg
a2V5Ym9hcmRFdmVudCkKLXsKLSAgICBTY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uOwotICAgIFNj
cm9sbEdyYW51bGFyaXR5IGdyYW51bGFyaXR5OwotICAgIGlmIChnZXRTY3JvbGxNYXBwaW5nKGtl
eWJvYXJkRXZlbnQsIGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpKQotICAgICAgICBtX3BhZ2UtPmZv
Y3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWluRnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPnNj
cm9sbFJlY3Vyc2l2ZWx5KGRpcmVjdGlvbiwgZ3JhbnVsYXJpdHkpOwotfQotCiB2b2lkIFdlYlBh
Z2U6OmRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24sIENv
cmVJUEM6Ok1lc3NhZ2VJRCBtZXNzYWdlSUQsIENvcmVJUEM6OkFyZ3VtZW50RGVjb2RlciogYXJn
dW1lbnRzKQogewogICAgIGlmIChtZXNzYWdlSUQuaXM8Q29yZUlQQzo6TWVzc2FnZUNsYXNzRHJh
d2luZ0FyZWE+KCkpIHsKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJl
dmlzaW9uIDY0ODk1KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCSh3
b3JraW5nIGNvcHkpCkBAIC0xMjksNyArMTI5LDcgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGxh
dGZvcm1Jbml0aWFsaXplKCk7CiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVycHJldEtleUV2
ZW50KGNvbnN0IFdlYkNvcmU6OktleWJvYXJkRXZlbnQqKTsKLSAgICB2b2lkIHBlcmZvcm1EZWZh
dWx0QmVoYXZpb3JGb3JLZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50Jik7CisgICAgYm9v
bCBwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVu
dCYpOwogCiAgICAgLy8gQWN0aW9ucwogICAgIHZvaWQgdHJ5Q2xvc2UoKTsKSW5kZXg6IFdlYktp
dDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCShyZXZpc2lvbiA2NDg5
NSkKKysrIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yNSw2ICsyNSw5IEBACiAKICNpbmNsdWRlICJXZWJQYWdlLmgiCiAKKyNp
bmNsdWRlICJXZWJFdmVudC5oIgorI2luY2x1ZGUgPFdlYkNvcmUvRm9jdXNDb250cm9sbGVyLmg+
CisjaW5jbHVkZSA8V2ViQ29yZS9GcmFtZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvS2V5Ym9hcmRF
dmVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGxh
dGZvcm1LZXlib2FyZEV2ZW50Lmg+CkBAIC0zOSw2ICs0MiwxMCBAQCB2b2lkIFdlYlBhZ2U6OnBs
YXRmb3JtSW5pdGlhbGl6ZSgpCiAgICAgbV9wYWdlLT5hZGRTY2hlZHVsZVBhaXIoU2NoZWR1bGVQ
YWlyOjpjcmVhdGUoW05TUnVuTG9vcCBjdXJyZW50UnVuTG9vcF0sIGtDRlJ1bkxvb3BDb21tb25N
b2RlcykpOwogfQogCit2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtUHJlZmVyZW5jZXNEaWRDaGFuZ2Uo
Y29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpCit7Cit9CisKIC8vIEZJWE1FOiBFZGl0b3IgY29t
bWFuZHMgc2hvdWxkIG5vdCBiZSBoYXJkIGNvZGVkIGFuZCBpbnN0ZWFkIHNob3VsZCBjb21lIGZy
b20gQXBwS2l0LiAgCiAKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBDdHJsS2V5ICAgPSAxIDw8IDA7
CkBAIC0xNzQsOCArMTgxLDk2IEBAIGNvbnN0IGNoYXIqIFdlYlBhZ2U6OmludGVycHJldEtleUV2
ZW50KGMKICAgICByZXR1cm4gbWFwS2V5ID8ga2V5UHJlc3NDb21tYW5kc01hcC0+Z2V0KG1hcEtl
eSkgOiAwOwogfQogCi12b2lkIFdlYlBhZ2U6OnBsYXRmb3JtUHJlZmVyZW5jZXNEaWRDaGFuZ2Uo
Y29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpCitzdGF0aWMgaW5saW5lIHZvaWQgc2Nyb2xsKFBh
Z2UqIHBhZ2UsIFNjcm9sbERpcmVjdGlvbiBkaXJlY3Rpb24sIFNjcm9sbEdyYW51bGFyaXR5IGdy
YW51bGFyaXR5KQoreworICAgIHBhZ2UtPmZvY3VzQ29udHJvbGxlcigpLT5mb2N1c2VkT3JNYWlu
RnJhbWUoKS0+ZXZlbnRIYW5kbGVyKCktPnNjcm9sbFJlY3Vyc2l2ZWx5KGRpcmVjdGlvbiwgZ3Jh
bnVsYXJpdHkpOworfQorCitib29sIFdlYlBhZ2U6OnBlcmZvcm1EZWZhdWx0QmVoYXZpb3JGb3JL
ZXlFdmVudChjb25zdCBXZWJLZXlib2FyZEV2ZW50JiBrZXlib2FyZEV2ZW50KQogeworICAgIGlm
IChrZXlib2FyZEV2ZW50LnR5cGUoKSAhPSBXZWJFdmVudDo6S2V5RG93bikKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworCisgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxkIGJlIGluIFdlYkNvcmUuCisK
KyAgICBzd2l0Y2ggKGtleWJvYXJkRXZlbnQud2luZG93c1ZpcnR1YWxLZXlDb2RlKCkpIHsKKyAg
ICBjYXNlIFZLX0JBQ0s6CisgICAgICAgIGlmIChrZXlib2FyZEV2ZW50LnNoaWZ0S2V5KCkpCisg
ICAgICAgICAgICBtX3BhZ2UtPmdvRm9yd2FyZCgpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBtX3BhZ2UtPmdvQmFjaygpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFZLX1NQQUNFOgor
ICAgICAgICBpZiAoa2V5Ym9hcmRFdmVudC5zaGlmdEtleSgpKQorICAgICAgICAgICAgc2Nyb2xs
KG1fcGFnZSwgU2Nyb2xsVXAsIFNjcm9sbEJ5UGFnZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgIHNjcm9sbChtX3BhZ2UsIFNjcm9sbERvd24sIFNjcm9sbEJ5UGFnZSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgVktfUFJJT1I6CisgICAgICAgIHNjcm9sbChtX3BhZ2UsIFNjcm9sbFVw
LCBTY3JvbGxCeVBhZ2UpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFZLX05FWFQ6CisgICAg
ICAgIHNjcm9sbChtX3BhZ2UsIFNjcm9sbERvd24sIFNjcm9sbEJ5UGFnZSk7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgVktfSE9NRToKKyAgICAgICAgc2Nyb2xsKG1fcGFnZSwgU2Nyb2xsVXAs
IFNjcm9sbEJ5RG9jdW1lbnQpOworICAgICAgICBzY3JvbGwobV9wYWdlLCBTY3JvbGxMZWZ0LCBT
Y3JvbGxCeURvY3VtZW50KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWS19FTkQ6CisgICAg
ICAgIHNjcm9sbChtX3BhZ2UsIFNjcm9sbERvd24sIFNjcm9sbEJ5RG9jdW1lbnQpOworICAgICAg
ICBzY3JvbGwobV9wYWdlLCBTY3JvbGxMZWZ0LCBTY3JvbGxCeURvY3VtZW50KTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBWS19VUDoKKyAgICAgICAgaWYgKGtleWJvYXJkRXZlbnQuc2hpZnRL
ZXkoKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKGtleWJvYXJkRXZl
bnQubWV0YUtleSgpKSB7CisgICAgICAgICAgICBzY3JvbGwobV9wYWdlLCBTY3JvbGxVcCwgU2Ny
b2xsQnlEb2N1bWVudCk7CisgICAgICAgICAgICBzY3JvbGwobV9wYWdlLCBTY3JvbGxMZWZ0LCBT
Y3JvbGxCeURvY3VtZW50KTsKKyAgICAgICAgfSBlbHNlIGlmIChrZXlib2FyZEV2ZW50LmFsdEtl
eSgpIHx8IGtleWJvYXJkRXZlbnQuY29udHJvbEtleSgpKQorICAgICAgICAgICAgc2Nyb2xsKG1f
cGFnZSwgU2Nyb2xsVXAsIFNjcm9sbEJ5UGFnZSk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAg
IHNjcm9sbChtX3BhZ2UsIFNjcm9sbFVwLCBTY3JvbGxCeUxpbmUpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFZLX0RPV046CisgICAgICAgIGlmIChrZXlib2FyZEV2ZW50LnNoaWZ0S2V5KCkp
CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmIChrZXlib2FyZEV2ZW50Lm1l
dGFLZXkoKSkgeworICAgICAgICAgICAgc2Nyb2xsKG1fcGFnZSwgU2Nyb2xsRG93biwgU2Nyb2xs
QnlEb2N1bWVudCk7CisgICAgICAgICAgICBzY3JvbGwobV9wYWdlLCBTY3JvbGxMZWZ0LCBTY3Jv
bGxCeURvY3VtZW50KTsKKyAgICAgICAgfSBlbHNlIGlmIChrZXlib2FyZEV2ZW50LmFsdEtleSgp
IHx8IGtleWJvYXJkRXZlbnQuY29udHJvbEtleSgpKQorICAgICAgICAgICAgc2Nyb2xsKG1fcGFn
ZSwgU2Nyb2xsRG93biwgU2Nyb2xsQnlQYWdlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
c2Nyb2xsKG1fcGFnZSwgU2Nyb2xsRG93biwgU2Nyb2xsQnlMaW5lKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBWS19MRUZUOgorICAgICAgICBpZiAoa2V5Ym9hcmRFdmVudC5zaGlmdEtleSgp
KQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoa2V5Ym9hcmRFdmVudC5t
ZXRhS2V5KCkpCisgICAgICAgICAgICBtX3BhZ2UtPmdvQmFjaygpOworICAgICAgICBlbHNlIHsK
KyAgICAgICAgICAgIGlmIChrZXlib2FyZEV2ZW50LmFsdEtleSgpICB8IGtleWJvYXJkRXZlbnQu
Y29udHJvbEtleSgpKQorICAgICAgICAgICAgICAgIHNjcm9sbChtX3BhZ2UsIFNjcm9sbExlZnQs
IFNjcm9sbEJ5UGFnZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgc2Nyb2xs
KG1fcGFnZSwgU2Nyb2xsTGVmdCwgU2Nyb2xsQnlMaW5lKTsKKyAgICAgICAgfQorICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFZLX1JJR0hUOgorICAgICAgICBpZiAoa2V5Ym9hcmRFdmVudC5zaGlm
dEtleSgpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoa2V5Ym9hcmRF
dmVudC5tZXRhS2V5KCkpCisgICAgICAgICAgICBtX3BhZ2UtPmdvRm9yd2FyZCgpOworICAgICAg
ICBlbHNlIHsKKyAgICAgICAgICAgIGlmIChrZXlib2FyZEV2ZW50LmFsdEtleSgpIHx8IGtleWJv
YXJkRXZlbnQuY29udHJvbEtleSgpKQorICAgICAgICAgICAgICAgIHNjcm9sbChtX3BhZ2UsIFNj
cm9sbFJpZ2h0LCBTY3JvbGxCeVBhZ2UpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHNjcm9sbChtX3BhZ2UsIFNjcm9sbFJpZ2h0LCBTY3JvbGxCeUxpbmUpOworICAgICAgICB9
CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4
OiBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9xdC9XZWJQYWdlUXQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3F0L1dlYlBhZ2VRdC5jcHAJKHJldmlzaW9u
IDY0ODk1KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvcXQvV2ViUGFnZVF0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsOSBAQAogCiAjaW5jbHVkZSAiV2ViUGFnZS5oIgog
CisjaW5jbHVkZSAiV2ViRXZlbnQuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0ZvY3VzQ29udHJvbGxl
ci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0tleWJv
YXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgpAQCAtODEsNiArODQsMTAgQEAgdm9pZCBXZWJQYWdl
OjpwbGF0Zm9ybUluaXRpYWxpemUoKQogewogfQogCit2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtUHJl
ZmVyZW5jZXNEaWRDaGFuZ2UoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYpCit7Cit9CisKIHN0
YXRpYyBjb25zdCB1bnNpZ25lZCBDdHJsS2V5ID0gMSA8PCAwOwogc3RhdGljIGNvbnN0IHVuc2ln
bmVkIEFsdEtleSA9IDEgPDwgMTsKIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTaGlmdEtleSA9IDEg
PDwgMjsKQEAgLTIwMCw5ICsyMDcsNjAgQEAgY29uc3QgY2hhciogV2ViUGFnZTo6aW50ZXJwcmV0
S2V5RXZlbnQoYwogICAgIGludCBtYXBLZXkgPSBtb2RpZmllcnMgPDwgMTYgfCBldnQtPmNoYXJD
b2RlKCk7CiAgICAgcmV0dXJuIG1hcEtleSA/IGtleVByZXNzQ29tbWFuZHNNYXAtPmdldChtYXBL
ZXkpIDogMDsKIH0KKzw8PDw8PDwgLm1pbmUKIAotdm9pZCBXZWJQYWdlOjpwbGF0Zm9ybVByZWZl
cmVuY2VzRGlkQ2hhbmdlKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmKQorc3RhdGljIGlubGlu
ZSB2b2lkIHNjcm9sbChQYWdlKiBwYWdlLCBTY3JvbGxEaXJlY3Rpb24gZGlyZWN0aW9uLCBTY3Jv
bGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKKyAgICBwYWdlLT5mb2N1c0NvbnRyb2xsZXIo
KS0+Zm9jdXNlZE9yTWFpbkZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5zY3JvbGxSZWN1cnNpdmVs
eShkaXJlY3Rpb24sIGdyYW51bGFyaXR5KTsKK30KKworYm9vbCBXZWJQYWdlOjpwZXJmb3JtRGVm
YXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQoY29uc3QgV2ViS2V5Ym9hcmRFdmVudCYga2V5Ym9hcmRF
dmVudCkKK3sKKyAgICBpZiAoa2V5Ym9hcmRFdmVudC50eXBlKCkgIT0gV2ViRXZlbnQ6OktleURv
d24gJiYga2V5Ym9hcmRFdmVudC50eXBlKCkgIT0gV2ViRXZlbnQ6OlJhd0tleURvd24pCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIHN3aXRjaCAoa2V5Ym9hcmRFdmVudC53aW5kb3dzVmly
dHVhbEtleUNvZGUoKSkgeworICAgIGNhc2UgVktfQkFDSzoKKyAgICAgICAgaWYgKGtleWJvYXJk
RXZlbnQuc2hpZnRLZXkoKSkKKyAgICAgICAgICAgIG1fcGFnZS0+Z29Gb3J3YXJkKCk7CisgICAg
ICAgIGVsc2UKKyAgICAgICAgICAgIG1fcGFnZS0+Z29CYWNrKCk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgVktfU1BBQ0U6CisgICAgICAgIGlmIChrZXlib2FyZEV2ZW50LnNoaWZ0S2V5KCkp
CisgICAgICAgICAgICBzY3JvbGwobV9wYWdlLCBTY3JvbGxVcCwgU2Nyb2xsQnlQYWdlKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgc2Nyb2xsKG1fcGFnZSwgU2Nyb2xsRG93biwgU2Nyb2xs
QnlQYWdlKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWS19MRUZUOgorICAgICAgICBzY3Jv
bGwobV9wYWdlLCBTY3JvbGxMZWZ0LCBTY3JvbGxCeUxpbmUpOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIFZLX1JJR0hUOgorICAgICAgICBzY3JvbGwobV9wYWdlLCBTY3JvbGxSaWdodCwgU2Ny
b2xsQnlMaW5lKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWS19VUDoKKyAgICAgICAgc2Ny
b2xsKG1fcGFnZSwgU2Nyb2xsVXAsIFNjcm9sbEJ5TGluZSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgVktfRE9XTjoKKyAgICAgICAgc2Nyb2xsKG1fcGFnZSwgU2Nyb2xsRG93biwgU2Nyb2xs
QnlMaW5lKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWS19IT01FOgorICAgICAgICBzY3Jv
bGwobV9wYWdlLCBTY3JvbGxVcCwgU2Nyb2xsQnlEb2N1bWVudCk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgVktfRU5EOgorICAgICAgICBzY3JvbGwobV9wYWdlLCBTY3JvbGxEb3duLCBTY3Jv
bGxCeURvY3VtZW50KTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWS19QUklPUjoKKyAgICAg
ICAgc2Nyb2xsKG1fcGFnZSwgU2Nyb2xsVXAsIFNjcm9sbEJ5UGFnZSk7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgVktfTkVYVDoKKyAgICAgICAgc2Nyb2xsKG1fcGFnZSwgU2Nyb2xsRG93biwg
U2Nyb2xsQnlQYWdlKTsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0
dXJuIGZhbHNlOworICAgIH0KKworICAgIHJldHVybiB0cnVlOwogfQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKSW5kZXg6IFdlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL3dpbi9XZWJQYWdlV2lu
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS93aW4vV2ViUGFn
ZVdpbi5jcHAJKHJldmlzaW9uIDY0ODk1KQorKysgV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2Uv
d2luL1dlYlBhZ2VXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiwxMSBAQAogI2lu
Y2x1ZGUgIldlYlBhZ2UuaCIKIAogI2luY2x1ZGUgIkZvbnRTbW9vdGhpbmdMZXZlbC5oIgorI2lu
Y2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViUHJlZmVyZW5jZXNTdG9yZS5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvRm9jdXNDb250cm9sbGVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Gb250
UmVuZGVyaW5nTW9kZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWUuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL0tleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BhZ2UuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oPgpAQCAtNDQsNiArNDcsMTggQEAg
dm9pZCBXZWJQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogICAgIG1fcGFnZS0+c2V0dGluZ3Mo
KS0+c2V0Rm9udFJlbmRlcmluZ01vZGUoQWx0ZXJuYXRlUmVuZGVyaW5nTW9kZSk7CiB9CiAKK3Zv
aWQgV2ViUGFnZTo6cGxhdGZvcm1QcmVmZXJlbmNlc0RpZENoYW5nZShjb25zdCBXZWJQcmVmZXJl
bmNlc1N0b3JlJiBzdG9yZSkKK3sKKyNpZiBQTEFURk9STShDRykKKyAgICBGb250U21vb3RoaW5n
TGV2ZWwgYWRqdXN0ZWRMZXZlbCA9IHN0YXRpY19jYXN0PEZvbnRTbW9vdGhpbmdMZXZlbD4oc3Rv
cmUuZm9udFNtb290aGluZ0xldmVsKTsKKyAgICBpZiAoYWRqdXN0ZWRMZXZlbCA9PSBGb250U21v
b3RoaW5nTGV2ZWxXaW5kb3dzKQorICAgICAgICBhZGp1c3RlZExldmVsID0gRm9udFNtb290aGlu
Z0xldmVsTWVkaXVtOworICAgIHdrU2V0Rm9udFNtb290aGluZ0xldmVsKGFkanVzdGVkTGV2ZWwp
OworI2VuZGlmCisKKyAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNldEZvbnRSZW5kZXJpbmdNb2Rl
KHN0b3JlLmZvbnRTbW9vdGhpbmdMZXZlbCA9PSBGb250U21vb3RoaW5nTGV2ZWxXaW5kb3dzID8g
QWx0ZXJuYXRlUmVuZGVyaW5nTW9kZSA6IE5vcm1hbFJlbmRlcmluZ01vZGUpOworfQorCiBzdGF0
aWMgY29uc3QgdW5zaWduZWQgQ3RybEtleSA9IDEgPDwgMDsKIHN0YXRpYyBjb25zdCB1bnNpZ25l
ZCBBbHRLZXkgPSAxIDw8IDE7CiBzdGF0aWMgY29uc3QgdW5zaWduZWQgU2hpZnRLZXkgPSAxIDw8
IDI7CkBAIC0xNjQsMTYgKzE3OSw1OSBAQCBjb25zdCBjaGFyKiBXZWJQYWdlOjppbnRlcnByZXRL
ZXlFdmVudChjCiAgICAgcmV0dXJuIG1hcEtleSA/IGtleVByZXNzQ29tbWFuZHNNYXAtPmdldCht
YXBLZXkpIDogMDsKIH0KIAotdm9pZCBXZWJQYWdlOjpwbGF0Zm9ybVByZWZlcmVuY2VzRGlkQ2hh
bmdlKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQorPDw8PDw8PCAubWluZQorc3Rh
dGljIGlubGluZSB2b2lkIHNjcm9sbChQYWdlKiBwYWdlLCBTY3JvbGxEaXJlY3Rpb24gZGlyZWN0
aW9uLCBTY3JvbGxHcmFudWxhcml0eSBncmFudWxhcml0eSkKIHsKLSNpZiBQTEFURk9STShDRykK
LSAgICBGb250U21vb3RoaW5nTGV2ZWwgYWRqdXN0ZWRMZXZlbCA9IHN0YXRpY19jYXN0PEZvbnRT
bW9vdGhpbmdMZXZlbD4oc3RvcmUuZm9udFNtb290aGluZ0xldmVsKTsKLSAgICBpZiAoYWRqdXN0
ZWRMZXZlbCA9PSBGb250U21vb3RoaW5nTGV2ZWxXaW5kb3dzKQotICAgICAgICBhZGp1c3RlZExl
dmVsID0gRm9udFNtb290aGluZ0xldmVsTWVkaXVtOwotICAgIHdrU2V0Rm9udFNtb290aGluZ0xl
dmVsKGFkanVzdGVkTGV2ZWwpOwotI2VuZGlmCisgICAgcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkt
PmZvY3VzZWRPck1haW5GcmFtZSgpLT5ldmVudEhhbmRsZXIoKS0+c2Nyb2xsUmVjdXJzaXZlbHko
ZGlyZWN0aW9uLCBncmFudWxhcml0eSk7Cit9CiAKLSAgICBtX3BhZ2UtPnNldHRpbmdzKCktPnNl
dEZvbnRSZW5kZXJpbmdNb2RlKHN0b3JlLmZvbnRTbW9vdGhpbmdMZXZlbCA9PSBGb250U21vb3Ro
aW5nTGV2ZWxXaW5kb3dzID8gQWx0ZXJuYXRlUmVuZGVyaW5nTW9kZSA6IE5vcm1hbFJlbmRlcmlu
Z01vZGUpOworYm9vbCBXZWJQYWdlOjpwZXJmb3JtRGVmYXVsdEJlaGF2aW9yRm9yS2V5RXZlbnQo
Y29uc3QgV2ViS2V5Ym9hcmRFdmVudCYga2V5Ym9hcmRFdmVudCkKK3sKKyAgICBpZiAoa2V5Ym9h
cmRFdmVudC50eXBlKCkgIT0gV2ViRXZlbnQ6OktleURvd24gJiYga2V5Ym9hcmRFdmVudC50eXBl
KCkgIT0gV2ViRXZlbnQ6OlJhd0tleURvd24pCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAg
IHN3aXRjaCAoa2V5Ym9hcmRFdmVudC53aW5kb3dzVmlydHVhbEtleUNvZGUoKSkgeworICAgIGNh
c2UgVktfQkFDSzoKKyAgICAgICAgaWYgKGtleWJvYXJkRXZlbnQuc2hpZnRLZXkoKSkKKyAgICAg
ICAgICAgIG1fcGFnZS0+Z29Gb3J3YXJkKCk7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIG1f
cGFnZS0+Z29CYWNrKCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVktfU1BBQ0U6CisgICAg
ICAgIGlmIChrZXlib2FyZEV2ZW50LnNoaWZ0S2V5KCkpCisgICAgICAgICAgICBzY3JvbGwobV9w
YWdlLCBTY3JvbGxVcCwgU2Nyb2xsQnlQYWdlKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
c2Nyb2xsKG1fcGFnZSwgU2Nyb2xsRG93biwgU2Nyb2xsQnlQYWdlKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBWS19MRUZUOgorICAgICAgICBzY3JvbGwobV9wYWdlLCBTY3JvbGxMZWZ0LCBT
Y3JvbGxCeUxpbmUpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFZLX1JJR0hUOgorICAgICAg
ICBzY3JvbGwobV9wYWdlLCBTY3JvbGxSaWdodCwgU2Nyb2xsQnlMaW5lKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBWS19VUDoKKyAgICAgICAgc2Nyb2xsKG1fcGFnZSwgU2Nyb2xsVXAsIFNj
cm9sbEJ5TGluZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVktfRE9XTjoKKyAgICAgICAg
c2Nyb2xsKG1fcGFnZSwgU2Nyb2xsRG93biwgU2Nyb2xsQnlMaW5lKTsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBWS19IT01FOgorICAgICAgICBzY3JvbGwobV9wYWdlLCBTY3JvbGxVcCwgU2Ny
b2xsQnlEb2N1bWVudCk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVktfRU5EOgorICAgICAg
ICBzY3JvbGwobV9wYWdlLCBTY3JvbGxEb3duLCBTY3JvbGxCeURvY3VtZW50KTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBWS19QUklPUjoKKyAgICAgICAgc2Nyb2xsKG1fcGFnZSwgU2Nyb2xs
VXAsIFNjcm9sbEJ5UGFnZSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVktfTkVYVDoKKyAg
ICAgICAgc2Nyb2xsKG1fcGFnZSwgU2Nyb2xsRG93biwgU2Nyb2xsQnlQYWdlKTsKKyAgICAgICAg
YnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAg
IHJldHVybiB0cnVlOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
</data>
<flag name="review"
          id="52221"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>