<?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>109092</bug_id>
          
          <creation_ts>2013-02-06 14:00:04 -0800</creation_ts>
          <short_desc>IndexedDB: Implement SharedBuffer version of put()</short_desc>
          <delta_ts>2013-02-15 13:35:56 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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>109967</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alec Flett">alecflett</reporter>
          <assigned_to name="Alec Flett">alecflett</assigned_to>
          <cc>abarth</cc>
    
    <cc>dgrogan</cc>
    
    <cc>jsbell</cc>
    
    <cc>syoichi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>826742</commentid>
    <comment_count>0</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-02-06 14:00:04 -0800</bug_when>
    <thetext>IndexedDB: Implement SharedBuffer version of put()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826766</commentid>
    <comment_count>1</comment_count>
      <attachid>186923</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-02-06 14:39:50 -0800</bug_when>
    <thetext>Created attachment 186923
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826769</commentid>
    <comment_count>2</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-02-06 14:40:59 -0800</bug_when>
    <thetext>jsbell/dgrogan - here&apos;s the first cut at using SharedBuffer

abarth - care to review - not just the WebKit API but my uses in core IDB?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826780</commentid>
    <comment_count>3</comment_count>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-02-06 14:50:20 -0800</bug_when>
    <thetext>Also I fully expect this patch to fail dramatically (not sure why cr-linux-debug even passed) until the chromium side (https://codereview.chromium.org/12217049/) lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826824</commentid>
    <comment_count>4</comment_count>
      <attachid>186923</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-06 15:51:37 -0800</bug_when>
    <thetext>Comment on attachment 186923
Patch

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

&gt; Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp:234
&gt; +    Vector&lt;char&gt;* valueBytesSigned = reinterpret_cast&lt;Vector&lt;char&gt;*&gt;(&amp;valueBytes);

Is this reinterpret_cast valid?  It seems slightly scary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826825</commentid>
    <comment_count>5</comment_count>
      <attachid>186923</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-06 15:52:14 -0800</bug_when>
    <thetext>Comment on attachment 186923
Patch

This seems fine, modulo the question about reinterpret_cast above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826826</commentid>
    <comment_count>6</comment_count>
      <attachid>186923</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-02-06 15:53:47 -0800</bug_when>
    <thetext>Comment on attachment 186923
Patch

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

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp:234
&gt;&gt; +    Vector&lt;char&gt;* valueBytesSigned = reinterpret_cast&lt;Vector&lt;char&gt;*&gt;(&amp;valueBytes);
&gt; 
&gt; Is this reinterpret_cast valid?  It seems slightly scary.

It&apos;s totally scary. It was the only way I could find to adopt a Vector&lt;uint8_t&gt; into SharedBuffer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>826833</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2013-02-06 16:01:45 -0800</bug_when>
    <thetext>&gt; It&apos;s totally scary. It was the only way I could find to adopt a Vector&lt;uint8_t&gt; into SharedBuffer.

On webkit-dev you talked about changing Vector&lt;uint8_t&gt; to Vector&lt;char&gt;.  Folks seemed unsure about whether that was a good idea because the reason was to play nice with LevelDB.  Perhaps playing nice with SharedBuffer is a reason that tips the scales in favor of switching to Vector&lt;char&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834273</commentid>
    <comment_count>8</comment_count>
      <attachid>188620</attachid>
    <who name="Alec Flett">alecflett</who>
    <bug_when>2013-02-15 12:35:35 -0800</bug_when>
    <thetext>Created attachment 188620
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834304</commentid>
    <comment_count>9</comment_count>
      <attachid>188620</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-15 13:03:29 -0800</bug_when>
    <thetext>Comment on attachment 188620
Patch for landing

Clearing flags on attachment: 188620

Committed r143037: &lt;http://trac.webkit.org/changeset/143037&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>834305</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-15 13:03:34 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>186923</attachid>
            <date>2013-02-06 14:39:50 -0800</date>
            <delta_ts>2013-02-15 12:35:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-109092-20130206143627.patch</filename>
            <type>text/plain</type>
            <size>23647</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQxODc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTdlM2MwNjcwODNmYzlk
YWJmNDUxMzI3ZjNhMjQzZjM0NGJjMDdiYS4uZWU4MmM2ODA1ZWY5NjUzYTAyMWU3ZTBlMGNmMDk0
NmNiNGFlMjZmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAyLTA2ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IElt
cGxlbWVudCBTaGFyZWRCdWZmZXIgdmVyc2lvbiBvZiBwdXQoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDkyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3dpdGNoIElEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZTo6cHV0IG92ZXIKKyAgICAgICAgdG8gU2hhcmVkQnVmZmVyLCB0byBhdm9pZCBidWZm
ZXIgY29waWVzIG9mIHRoZSB2YWx1ZS4KKworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4K
KworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJCYWNraW5nU3RvcmU6OnB1dFJlY29yZCk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgIChXZWJDb3JlKToKKyAg
ICAgICAgKElEQkJhY2tpbmdTdG9yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VCYWNrZW5kSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQdXRPcGVyYXRpb246
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpQdXRPcGVyYXRpb246OlB1dE9wZXJhdGlvbik6
CisgICAgICAgIChQdXRPcGVyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCRGF0YWJhc2VC
YWNrZW5kSW1wbDo6cHV0KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUJhY2tlbmRJbXBsLmg6CisgICAgICAgIChJREJEYXRhYmFzZUJhY2tlbmRJbXBsKToKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaDoKKyAg
ICAgICAgKFdlYkNvcmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0
b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQk9iamVjdFN0b3JlOjpwdXQpOgorCiAyMDEz
LTAyLTA1ICBLZW50YXJvIEhhcmEgIDxoYXJha2VuQGNocm9taXVtLm9yZz4KIAogICAgICAgICBV
bnJldmlld2VkLCByb2xsaW5nIG91dCByMTQxODY1LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpp
bmRleCA1MTgxZDRkNmVkOGQ1Mzc1MjNiNDllOTZlZjRiODYxMzkzY2IzMjNkLi5kNWJkMDM4ODBh
MDkxMWY1MWExYTMwNDQ3YmJhNmFlMzRjODYyYTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDI1IEBACisyMDEzLTAyLTA2ICBBbGVjIEZsZXR0ICA8YWxlY2ZsZXR0QGNo
cm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IEltcGxlbWVudCBTaGFyZWRCdWZmZXIg
dmVyc2lvbiBvZiBwdXQoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTA5MDkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW1wbGVtZW50IFNoYXJlZEJ1ZmZlci9XZWJEYXRhIHZlcnNpb24gb2YKKyAgICAg
ICAgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpwdXQsIGFuZCBwdXQKKyAgICAgICAgdGVt
cG9yYXJ5IHNjYWZmb2xkaW5nIGluIHVudGlsIGNocm9tZSBpcyByZWFkeS4KKworICAgICAgICAq
IHNyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklEQkRh
dGFiYXNlQmFja2VuZFByb3h5OjpwdXQpOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJhY2tl
bmRQcm94eS5oOgorICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kUHJveHkpOgorICAgICAgICAq
IHNyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRh
YmFzZUltcGw6OnB1dCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJJREJE
YXRhYmFzZUltcGwuaDoKKyAgICAgICAgKFdlYklEQkRhdGFiYXNlSW1wbCk6CisgICAgICAgICog
dGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHA6CisKIDIwMTMtMDItMDUgIEFsZWMgRmxl
dHQgIDxhbGVjZmxldHRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIEluZGV4ZWREQjogU3R1YiBv
dXQgU2hhcmVkQnVmZmVyIHZlcnNpb24gb2YgcHV0KCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDVhMmNlMTQzZjM4
MGRiMzg3ZDM1NGU5NDY3YmI3MTM2OTFmOGMyMjMuLjk3NGU1Y2YzMDBlZGJjYWUzNWMyZDViOTUx
MjljMjU4OGZhMWRmOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQkJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvSURCQmFja2luZ1N0b3JlLmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkxl
dmVsREJTbGljZS5oIgogI2luY2x1ZGUgIkxldmVsREJUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUg
IlNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSA8
d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtODMwLDcgKzgzMSw3
IEBAIFdBUk5fVU5VU0VEX1JFVFVSTiBzdGF0aWMgYm9vbCBnZXROZXdWZXJzaW9uTnVtYmVyKExl
dmVsREJUcmFuc2FjdGlvbiogdHJhbnNhY3RpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLWJvb2wg
SURCQmFja2luZ1N0b3JlOjpwdXRSZWNvcmQoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiog
dHJhbnNhY3Rpb24sIGludDY0X3QgZGF0YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBj
b25zdCBJREJLZXkmIGtleSwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB2YWx1ZSwgUmVjb3JkSWRl
bnRpZmllciogcmVjb3JkSWRlbnRpZmllcikKK2Jvb2wgSURCQmFja2luZ1N0b3JlOjpwdXRSZWNv
cmQoSURCQmFja2luZ1N0b3JlOjpUcmFuc2FjdGlvbiogdHJhbnNhY3Rpb24sIGludDY0X3QgZGF0
YWJhc2VJZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBjb25zdCBJREJLZXkmIGtleSwgUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCBSZWNvcmRJZGVudGlmaWVyKiByZWNvcmRJZGVudGlm
aWVyKQogewogICAgIElEQl9UUkFDRSgiSURCQmFja2luZ1N0b3JlOjpwdXRSZWNvcmQiKTsKICAg
ICBBU1NFUlQoa2V5LmlzVmFsaWQoKSk7CkBAIC04NDQsNyArODQ1LDcgQEAgYm9vbCBJREJCYWNr
aW5nU3RvcmU6OnB1dFJlY29yZChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0cmFuc2Fj
dGlvbiwgaW50NjQKIAogICAgIFZlY3RvcjxjaGFyPiB2OwogICAgIHYuYXBwZW5kKGVuY29kZVZh
ckludCh2ZXJzaW9uKSk7Ci0gICAgdi5hcHBlbmRWZWN0b3IodmFsdWUpOworICAgIHYuYXBwZW5k
KHZhbHVlLT5kYXRhKCksIHZhbHVlLT5zaXplKCkpOwogCiAgICAgbGV2ZWxEQlRyYW5zYWN0aW9u
LT5wdXQob2JqZWN0U3RvcmVkYXRhS2V5LCB2KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuaAppbmRleCA2NmI3MmY0ZDk5OWNhZjlj
NzMzZjc5ODE5MjU2OGU2YjU2OWIzNzA3Li5jOGFmNzY4ZGM3ZjAzZDU0MzBhOTEzOWEwY2U1YmMy
MGJiYjE4OTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJCYWNraW5nU3RvcmUuaApAQCAtNDMsNiArNDMsNyBAQCBjbGFzcyBJREJGYWN0b3J5QmFja2Vu
ZEltcGw7CiBjbGFzcyBJREJLZXk7CiBjbGFzcyBJREJLZXlSYW5nZTsKIGNsYXNzIFNlY3VyaXR5
T3JpZ2luOworY2xhc3MgU2hhcmVkQnVmZmVyOwogCiBjbGFzcyBJREJCYWNraW5nU3RvcmUgOiBw
dWJsaWMgUmVmQ291bnRlZDxJREJCYWNraW5nU3RvcmU+IHsKIHB1YmxpYzoKQEAgLTc4LDcgKzc5
LDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICB2aXJ0dWFsIGJvb2wgZ2V0UmVjb3JkKElEQkJh
Y2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiwgVmVjdG9yPHVpbnQ4X3Q+JiByZWNvcmQpIFdBUk5f
VU5VU0VEX1JFVFVSTjsKLSAgICB2aXJ0dWFsIGJvb2wgcHV0UmVjb3JkKElEQkJhY2tpbmdTdG9y
ZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgY29uc3QgSURCS2V5JiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB2YWx1ZSwgUmVjb3JkSWRl
bnRpZmllciopIFdBUk5fVU5VU0VEX1JFVFVSTjsKKyAgICB2aXJ0dWFsIGJvb2wgcHV0UmVjb3Jk
KElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0
X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
IHZhbHVlLCBSZWNvcmRJZGVudGlmaWVyKikgV0FSTl9VTlVTRURfUkVUVVJOOwogICAgIHZpcnR1
YWwgdm9pZCBjbGVhck9iamVjdFN0b3JlKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCk7CiAgICAgdmlydHVhbCB2
b2lkIGRlbGV0ZVJlY29yZChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBk
YXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFJlY29yZElkZW50aWZpZXIm
KTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0S2V5R2VuZXJhdG9yQ3VycmVudE51bWJlcihJREJCYWNr
aW5nU3RvcmU6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIGludDY0X3QmIGN1cnJlbnROdW1iZXIpIFdBUk5fVU5VU0VEX1JFVFVSTjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFj
a2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW1wbC5jcHAKaW5kZXggZjhkYzcxOTE0YjljZWY0NmFhMTBhMTdhMGU1MzA4OTdj
MTRkOTk1NC4uYjI5ZjkyY2E3MDljNzFhYjRkOGE1MjExZjZkMjhmM2I5NTFmZTFmZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5k
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJh
c2VCYWNrZW5kSW1wbC5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJJREJUcmFjaW5n
LmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbC5oIgogI2luY2x1ZGUgIklE
QlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yNzEsMjkgKzI3MiwyOSBAQCBwcml2YXRlOgogCiBj
bGFzcyBQdXRPcGVyYXRpb24gOiBwdWJsaWMgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6T3Bl
cmF0aW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc093blB0cjxJREJUcmFuc2FjdGlvbkJh
Y2tlbmRJbXBsOjpPcGVyYXRpb24+IGNyZWF0ZShQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4g
YmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0
YWRhdGEmIG9iamVjdFN0b3JlLCBWZWN0b3I8dWludDhfdD4mIHZhbHVlLCBQYXNzUmVmUHRyPElE
QktleT4ga2V5LCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUgcHV0TW9kZSwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgY29uc3QgVmVjdG9yPGludDY0X3Q+
JiBpbmRleElkcywgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6SW5k
ZXhLZXlzPiYgaW5kZXhLZXlzKQorICAgIHN0YXRpYyBQYXNzT3duUHRyPElEQlRyYW5zYWN0aW9u
QmFja2VuZEltcGw6Ok9wZXJhdGlvbj4gY3JlYXRlKFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3Jl
PiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJhc2VJZCwgY29uc3QgSURCT2JqZWN0U3RvcmVN
ZXRhZGF0YSYgb2JqZWN0U3RvcmUsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSwgUGFz
c1JlZlB0cjxJREJLZXk+IGtleSwgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpQdXRNb2Rl
IHB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGNvbnN0IFZlY3Rv
cjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2U6OkluZGV4S2V5cz4mIGluZGV4S2V5cykKICAgICB7CiAgICAgICAgIHJldHVybiBhZG9w
dFB0cihuZXcgUHV0T3BlcmF0aW9uKGJhY2tpbmdTdG9yZSwgZGF0YWJhc2VJZCwgb2JqZWN0U3Rv
cmUsIHZhbHVlLCBrZXksIHB1dE1vZGUsIGNhbGxiYWNrcywgaW5kZXhJZHMsIGluZGV4S2V5cykp
OwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgcGVyZm9ybShJREJUcmFuc2FjdGlvbkJhY2tlbmRJ
bXBsKik7CiBwcml2YXRlOgotICAgIFB1dE9wZXJhdGlvbihQYXNzUmVmUHRyPElEQkJhY2tpbmdT
dG9yZT4gYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0
b3JlTWV0YWRhdGEmIG9iamVjdFN0b3JlLCBWZWN0b3I8dWludDhfdD4mIHZhbHVlLCBQYXNzUmVm
UHRyPElEQktleT4ga2V5LCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUgcHV0
TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgY29uc3QgVmVjdG9yPGlu
dDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZTo6SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQorICAgIFB1dE9wZXJhdGlvbihQYXNzUmVmUHRyPElE
QkJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IElE
Qk9iamVjdFN0b3JlTWV0YWRhdGEmIG9iamVjdFN0b3JlLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZl
cj4mIHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBJREJEYXRhYmFzZUJhY2tlbmRJbnRl
cmZhY2U6OlB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNr
cywgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPElEQkRhdGFi
YXNlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQogICAgICAgICA6IG1f
YmFja2luZ1N0b3JlKGJhY2tpbmdTdG9yZSkKICAgICAgICAgLCBtX2RhdGFiYXNlSWQoZGF0YWJh
c2VJZCkKICAgICAgICAgLCBtX29iamVjdFN0b3JlKG9iamVjdFN0b3JlKQorICAgICAgICAsIG1f
dmFsdWUodmFsdWUpCiAgICAgICAgICwgbV9rZXkoa2V5KQogICAgICAgICAsIG1fcHV0TW9kZShw
dXRNb2RlKQogICAgICAgICAsIG1fY2FsbGJhY2tzKGNhbGxiYWNrcykKICAgICAgICAgLCBtX2lu
ZGV4SWRzKGluZGV4SWRzKQogICAgICAgICAsIG1faW5kZXhLZXlzKGluZGV4S2V5cykKICAgICB7
Ci0gICAgICAgIG1fdmFsdWUuc3dhcCh2YWx1ZSk7CiAgICAgfQogCiAgICAgY29uc3QgUmVmUHRy
PElEQkJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3RvcmU7CiAgICAgY29uc3QgaW50NjRfdCBtX2Rh
dGFiYXNlSWQ7CiAgICAgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSBtX29iamVjdFN0b3Jl
OwotICAgIFZlY3Rvcjx1aW50OF90PiBtX3ZhbHVlOworICAgIGNvbnN0IFJlZlB0cjxTaGFyZWRC
dWZmZXI+IG1fdmFsdWU7CiAgICAgY29uc3QgUmVmUHRyPElEQktleT4gbV9rZXk7CiAgICAgY29u
c3QgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpQdXRNb2RlIG1fcHV0TW9kZTsKICAgICBj
b25zdCBSZWZQdHI8SURCQ2FsbGJhY2tzPiBtX2NhbGxiYWNrczsKQEAgLTc3OSw3ICs3ODAsNyBA
QCB2b2lkIEdldE9wZXJhdGlvbjo6cGVyZm9ybShJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKiB0
cmFuc2FjdGlvbikKICAgICBtX2NhbGxiYWNrcy0+b25TdWNjZXNzKFNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZTo6Y3JlYXRlRnJvbVdpcmVCeXRlcyh2YWx1ZSkpOwogfQogCi12b2lkIElEQkRhdGFiYXNl
QmFja2VuZEltcGw6OnB1dChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3Rv
cmVJZCwgVmVjdG9yPHVpbnQ4X3Q+KiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUHV0
TW9kZSBwdXRNb2RlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBW
ZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYgaW5kZXhL
ZXlzKQordm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpwdXQoaW50NjRfdCB0cmFuc2FjdGlv
bklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1
ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUHV0TW9kZSBwdXRNb2RlLCBQYXNzUmVmUHRyPElE
QkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBj
b25zdCBWZWN0b3I8SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQogewogICAgIElEQl9UUkFDRSgiSURC
RGF0YWJhc2VCYWNrZW5kSW1wbDo6cHV0Iik7CiAgICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1w
bCogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy5nZXQodHJhbnNhY3Rpb25JZCk7CkBAIC03
OTEsNyArNzkyLDcgQEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJbXBsOjpwdXQoaW50NjRfdCB0
cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFYKIAogICAgIEFTU0VSVChvYmpl
Y3RTdG9yZU1ldGFkYXRhLmF1dG9JbmNyZW1lbnQgfHwga2V5LmdldCgpKTsKIAotICAgIHRyYW5z
YWN0aW9uLT5zY2hlZHVsZVRhc2soUHV0T3BlcmF0aW9uOjpjcmVhdGUobV9iYWNraW5nU3RvcmUs
IGlkKCksIG9iamVjdFN0b3JlTWV0YWRhdGEsICp2YWx1ZSwga2V5LCBwdXRNb2RlLCBjYWxsYmFj
a3MsIGluZGV4SWRzLCBpbmRleEtleXMpKTsKKyAgICB0cmFuc2FjdGlvbi0+c2NoZWR1bGVUYXNr
KFB1dE9wZXJhdGlvbjo6Y3JlYXRlKG1fYmFja2luZ1N0b3JlLCBpZCgpLCBvYmplY3RTdG9yZU1l
dGFkYXRhLCB2YWx1ZSwga2V5LCBwdXRNb2RlLCBjYWxsYmFja3MsIGluZGV4SWRzLCBpbmRleEtl
eXMpKTsKIH0KIAogdm9pZCBQdXRPcGVyYXRpb246OnBlcmZvcm0oSURCVHJhbnNhY3Rpb25CYWNr
ZW5kSW1wbCogdHJhbnNhY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmgKaW5kZXggNWJiMTY1NDBmZTg3
YWVlMTJmY2U5NDBlYjNiZjJiMTlhNjg1MGI0NC4uMWViYzg3ODEyZTVhZTk2ZGZkYjU4NzdkMWRm
M2I5NWFiOWIzMDM2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuaApAQCAtODEsNyArODEsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCB0cmFuc2FjdGlvbkZpbmlzaGVkQW5kQWJvcnRGaXJlZChQYXNzUmVmUHRy
PElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+KTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXQoaW50
NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJ
ZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIGJvb2wga2V5T25seSwgUGFzc1JlZlB0cjxJREJD
YWxsYmFja3M+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0KGludDY0X3QgdHJhbnNh
Y3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBWZWN0b3I8dWludDhfdD4qIHZhbHVlLCBQ
YXNzUmVmUHRyPElEQktleT4sIFB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgY29u
c3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSBP
VkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50
NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWUsIFBhc3NS
ZWZQdHI8SURCS2V5PiwgUHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBjb25zdCBW
ZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYpIE9WRVJS
SURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleEtleXMoaW50NjRfdCB0cmFuc2FjdGlvbklk
LCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCS2V5PiBwcnBQcmltYXJ5S2V5
LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlz
PiYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleGVzUmVhZHkoaW50NjRfdCB0
cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90
PiYgaW5kZXhJZHMpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKGludDY0
X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQs
IFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIGJvb2wg
a2V5T25seSwgVGFza1R5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgT1ZFUlJJREU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZS5oCmluZGV4IGIyOWVkYmJlMTk3YjY0OGNjMzU1YWI3Y2Qw
YmQ4YTkzYmYwZWI2ZTIuLmUwMDE0ZWIzZTJkY2MyYTNmNDM0MjUwNzQ0NTc5MzA1YjcxNjdjNDYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNl
QmFja2VuZEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCkBAIC00MSw2ICs0MSw3IEBAIGNsYXNzIElE
QktleTsKIGNsYXNzIElEQktleVBhdGg7CiBjbGFzcyBJREJLZXlSYW5nZTsKIHN0cnVjdCBJREJE
YXRhYmFzZU1ldGFkYXRhOworY2xhc3MgU2hhcmVkQnVmZmVyOwogCiB0eXBlZGVmIGludCBFeGNl
cHRpb25Db2RlOwogCkBAIC04MSw3ICs4Miw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9p
ZCBnZXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0
X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIGJvb2wga2V5T25seSwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+KSA9IDA7CiAgICAgLy8gTm90ZSB0aGF0ICd2YWx1ZScgbWF5IGJl
IGNvbnN1bWVkL2Fkb3B0ZWQgYnkgdGhpcyBjYWxsLgotICAgIHZpcnR1YWwgdm9pZCBwdXQoaW50
NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFZlY3Rvcjx1aW50OF90
PiogdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiwgUHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5k
ZXhLZXlzPiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcHV0KGludDY0X3QgdHJhbnNhY3Rpb25J
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWUs
IFBhc3NSZWZQdHI8SURCS2V5PiwgUHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBj
b25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5kZXhLZXlzKGludDY0X3QgdHJhbnNhY3Rpb25J
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPElEQktleT4gcHJwUHJpbWFyeUtl
eSwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5
cz4mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldEluZGV4ZXNSZWFkeShpbnQ2NF90IHRyYW5z
YWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBp
bmRleElkcykgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKGludDY0X3QgdHJhbnNh
Y3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQ
dHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIGJvb2wga2V5T25seSwg
VGFza1R5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgPSAwOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCT2JqZWN0U3RvcmUuY3BwCmluZGV4IDM0MzY4
MzQwMTc1MDMyODE5ODFjZGVlYjA3ZTBiNGEzNzExMDE5NzEuLjc2ZDhjZDhiNzZiYWNkMmFmZGVk
OGRkZDU4ODU3MzY4YThiNjIzYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAKQEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRl
ICJJREJUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIK
ICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZm
ZXIuaCIKICNpbmNsdWRlIDx3dGYvVW51c2VkUGFyYW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewpAQCAtMjMwLDcgKzIzMSw5IEBAIFBhc3NSZWZQdHI8SURCUmVxdWVzdD4gSURCT2JqZWN0U3Rv
cmU6OnB1dChJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUKIAogICAgIFJlZlB0
cjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gSURCUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIHNvdXJj
ZSwgbV90cmFuc2FjdGlvbi5nZXQoKSk7CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IHZhbHVlQnl0ZXMg
PSBzZXJpYWxpemVkVmFsdWUtPnRvV2lyZUJ5dGVzKCk7Ci0gICAgYmFja2VuZERCKCktPnB1dCht
X3RyYW5zYWN0aW9uLT5pZCgpLCBpZCgpLCAmdmFsdWVCeXRlcywga2V5LnJlbGVhc2UoKSwgc3Rh
dGljX2Nhc3Q8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpQdXRNb2RlPihwdXRNb2RlKSwg
cmVxdWVzdCwgaW5kZXhJZHMsIGluZGV4S2V5cyk7CisgICAgVmVjdG9yPGNoYXI+KiB2YWx1ZUJ5
dGVzU2lnbmVkID0gcmVpbnRlcnByZXRfY2FzdDxWZWN0b3I8Y2hhcj4qPigmdmFsdWVCeXRlcyk7
CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWVCdWZmZXIgPSBTaGFyZWRCdWZmZXI6OmFk
b3B0VmVjdG9yKCp2YWx1ZUJ5dGVzU2lnbmVkKTsKKyAgICBiYWNrZW5kREIoKS0+cHV0KG1fdHJh
bnNhY3Rpb24tPmlkKCksIGlkKCksIHZhbHVlQnVmZmVyLnJlbGVhc2UoKSwga2V5LnJlbGVhc2Uo
KSwgc3RhdGljX2Nhc3Q8SURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNlOjpQdXRNb2RlPihwdXRN
b2RlKSwgcmVxdWVzdCwgaW5kZXhJZHMsIGluZGV4S2V5cyk7CiAgICAgcmV0dXJuIHJlcXVlc3Qu
cmVsZWFzZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHAKaW5kZXggY2I3NWMyY2Y4ZTBkYmUwOTgxMTJiZTA0
NmE1ZGIwMzBlNTA5NTc2ZC4uMzU1ZDgwODllZWNjNmQzYzQ0YmQ4Y2JhMDQxMTFmMjZlZmYxOTM0
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNr
ZW5kUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNl
QmFja2VuZFByb3h5LmNwcApAQCAtNDEsNiArNDEsNyBAQAogI2luY2x1ZGUgIldlYklEQkRhdGFi
YXNlQ2FsbGJhY2tzSW1wbC5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlRXJyb3IuaCIKICNp
bmNsdWRlICJXZWJJREJLZXlSYW5nZS5oIgorI2luY2x1ZGUgInB1YmxpYy9XZWJEYXRhLmgiCiAK
IHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0xMDksMTIgKzExMCwxMCBAQCB2b2lkIElE
QkRhdGFiYXNlQmFja2VuZFByb3h5OjpnZXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsCiAgICAgICAgIG1fd2ViSURCRGF0YWJhc2UtPmdldCh0cmFuc2FjdGlv
bklkLCBvYmplY3RTdG9yZUlkLCBpbmRleElkLCBrZXlSYW5nZSwga2V5T25seSwgbmV3IFdlYklE
QkNhbGxiYWNrc0ltcGwoY2FsbGJhY2tzKSk7CiB9CiAKLXZvaWQgSURCRGF0YWJhc2VCYWNrZW5k
UHJveHk6OnB1dChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwg
VmVjdG9yPHVpbnQ4X3Q+KiBidWZmZXIsIFBhc3NSZWZQdHI8SURCS2V5PiBrZXksIFB1dE1vZGUg
cHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgY29uc3QgVmVjdG9y
PGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mIGluZGV4S2V5cykK
K3ZvaWQgSURCRGF0YWJhc2VCYWNrZW5kUHJveHk6OnB1dChpbnQ2NF90IHRyYW5zYWN0aW9uSWQs
IGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCBQ
YXNzUmVmUHRyPElEQktleT4ga2V5LCBQdXRNb2RlIHB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2Fs
bGJhY2tzPiBjYWxsYmFja3MsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0
IFZlY3RvcjxJbmRleEtleXM+JiBpbmRleEtleXMpCiB7CiAgICAgaWYgKG1fd2ViSURCRGF0YWJh
c2UpIHsKLSAgICAgICAgV2ViVmVjdG9yPHVuc2lnbmVkIGNoYXI+IHdlYkJ1ZmZlcihidWZmZXIt
PnNpemUoKSk7Ci0gICAgICAgIHdlYkJ1ZmZlci5hc3NpZ24oYnVmZmVyLT5kYXRhKCksIGJ1ZmZl
ci0+c2l6ZSgpKTsKLSAgICAgICAgbV93ZWJJREJEYXRhYmFzZS0+cHV0KHRyYW5zYWN0aW9uSWQs
IG9iamVjdFN0b3JlSWQsICZ3ZWJCdWZmZXIsIGtleSwgc3RhdGljX2Nhc3Q8V2ViSURCRGF0YWJh
c2U6OlB1dE1vZGU+KHB1dE1vZGUpLCBuZXcgV2ViSURCQ2FsbGJhY2tzSW1wbChjYWxsYmFja3Mp
LCBpbmRleElkcywgaW5kZXhLZXlzKTsKKyAgICAgICAgbV93ZWJJREJEYXRhYmFzZS0+cHV0KHRy
YW5zYWN0aW9uSWQsIG9iamVjdFN0b3JlSWQsIFdlYkRhdGEodmFsdWUpLCBrZXksIHN0YXRpY19j
YXN0PFdlYklEQkRhdGFiYXNlOjpQdXRNb2RlPihwdXRNb2RlKSwgbmV3IFdlYklEQkNhbGxiYWNr
c0ltcGwoY2FsbGJhY2tzKSwgaW5kZXhJZHMsIGluZGV4S2V5cyk7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94
eS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHku
aAppbmRleCA2ZDJkOGVkMGEwMjE5ZWIzOGI2N2I0OTRjYzNkYWQzYWRiZmZkZGU1Li5kYmQ5NjQy
ZjExMjBkOTk4ZGFmOTdjYjVmYTlhNTIwYmJkNWQ2ZDUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFja2VuZFByb3h5LmgKQEAgLTUyLDcgKzUy
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBhYm9ydChpbnQ2NF90LCBQYXNzUmVmUHRy
PFdlYkNvcmU6OklEQkRhdGFiYXNlRXJyb3I+KTsKIAogICAgIHZpcnR1YWwgdm9pZCBnZXQoaW50
NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJ
ZCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXlSYW5nZT4sIGJvb2wga2V5T25seSwgUGFzc1Jl
ZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQg
cHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBWZWN0b3I8
dWludDhfdD4qIHZhbHVlLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleT4sIFB1dE1vZGUsIFBh
c3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBp
bmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgcHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQ
YXNzUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gdmFsdWUsIFBhc3NSZWZQdHI8V2ViQ29y
ZTo6SURCS2V5PiwgUHV0TW9kZSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJDYWxsYmFja3M+LCBj
b25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYp
IE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleEtleXMoaW50NjRfdCB0cmFuc2Fj
dGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5
PiBwcnBQcmltYXJ5S2V5LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBW
ZWN0b3I8SW5kZXhLZXlzPiYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleGVz
UmVhZHkoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0
IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBv
cGVuQ3Vyc29yKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBp
bnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5UmFuZ2U+LCB1bnNpZ25l
ZCBzaG9ydCBkaXJlY3Rpb24sIGJvb2wga2V5T25seSwgVGFza1R5cGUsIFBhc3NSZWZQdHI8V2Vi
Q29yZTo6SURCQ2FsbGJhY2tzPikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcAppbmRleCA5N2FiZGY3Mjk5ZDE5ODgwNDQx
MDdiODQyZGRiZjMzYWY0YjkxYjFkLi4xNzQ0ZTc2M2U5ZjA5N2JhNzhmOTRjYTBiZTFjYTRlZGZm
ZWIwNjQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRh
YmFzZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFi
YXNlSW1wbC5jcHAKQEAgLTM1LDEyICszNSwxNCBAQAogI2luY2x1ZGUgIklEQkRhdGFiYXNlQ2Fs
bGJhY2tzUHJveHkuaCIKICNpbmNsdWRlICJJREJLZXlSYW5nZS5oIgogI2luY2x1ZGUgIklEQk1l
dGFkYXRhLmgiCisjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCiAjaW5jbHVkZSAiV2ViSURCQ2Fs
bGJhY2tzLmgiCiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VDYWxsYmFja3MuaCIKICNpbmNsdWRl
ICJXZWJJREJEYXRhYmFzZUVycm9yLmgiCiAjaW5jbHVkZSAiV2ViSURCS2V5LmgiCiAjaW5jbHVk
ZSAiV2ViSURCS2V5UmFuZ2UuaCIKICNpbmNsdWRlICJXZWJJREJNZXRhZGF0YS5oIgorI2luY2x1
ZGUgInB1YmxpYy9XZWJEYXRhLmgiCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC0x
MzMsNiArMTM1LDEzIEBAIHZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpnZXQobG9uZyBsb25nIHRy
YW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBsCiAKIHZvaWQgV2ViSURCRGF0
YWJhc2VJbXBsOjpwdXQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RT
dG9yZUlkLCBXZWJWZWN0b3I8dW5zaWduZWQgY2hhcj4qIHZhbHVlLCBjb25zdCBXZWJJREJLZXkm
IGtleSwgUHV0TW9kZSBwdXRNb2RlLCBXZWJJREJDYWxsYmFja3MqIGNhbGxiYWNrcywgY29uc3Qg
V2ViVmVjdG9yPGxvbmcgbG9uZz4mIHdlYkluZGV4SWRzLCBjb25zdCBXZWJWZWN0b3I8V2ViSW5k
ZXhLZXlzPiYgd2ViSW5kZXhLZXlzKQogeworICAgIC8vIFRoaXMgY2FzdCBzaG91bGQgb25seSBi
ZSBjYXN0aW5nIHNpZ25lZC1uZXNzLgorICAgIFdlYkRhdGEgd2ViVmFsdWUocmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBjaGFyKj4odmFsdWUtPmRhdGEoKSksIHZhbHVlLT5zaXplKCkpOworICAgIHB1
dCh0cmFuc2FjdGlvbklkLCBvYmplY3RTdG9yZUlkLCB3ZWJWYWx1ZSwga2V5LCBwdXRNb2RlLCBj
YWxsYmFja3MsIHdlYkluZGV4SWRzLCB3ZWJJbmRleEtleXMpOworfQorCit2b2lkIFdlYklEQkRh
dGFiYXNlSW1wbDo6cHV0KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0
U3RvcmVJZCwgY29uc3QgV2ViRGF0YSYgdmFsdWUsIGNvbnN0IFdlYklEQktleSYga2V5LCBQdXRN
b2RlIHB1dE1vZGUsIFdlYklEQkNhbGxiYWNrcyogY2FsbGJhY2tzLCBjb25zdCBXZWJWZWN0b3I8
bG9uZyBsb25nPiYgd2ViSW5kZXhJZHMsIGNvbnN0IFdlYlZlY3RvcjxXZWJJbmRleEtleXM+JiB3
ZWJJbmRleEtleXMpCit7CiAgICAgaWYgKCFtX2RhdGFiYXNlQmFja2VuZCkKICAgICAgICAgcmV0
dXJuOwogCkBAIC0xNDgsOSArMTU3LDcgQEAgdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OnB1dChs
b25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIFcKICAgICAg
ICAgaW5kZXhLZXlzW2ldID0gaW5kZXhLZXlMaXN0OwogICAgIH0KIAotICAgIFZlY3Rvcjx1aW50
OF90PiB2YWx1ZUJ1ZmZlcjsKLSAgICB2YWx1ZUJ1ZmZlci5hcHBlbmQodmFsdWUtPmRhdGEoKSwg
dmFsdWUtPnNpemUoKSk7Ci0gICAgbV9kYXRhYmFzZUJhY2tlbmQtPnB1dCh0cmFuc2FjdGlvbklk
LCBvYmplY3RTdG9yZUlkLCAmdmFsdWVCdWZmZXIsIGtleSwgc3RhdGljX2Nhc3Q8SURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlOjpQdXRNb2RlPihwdXRNb2RlKSwgSURCQ2FsbGJhY2tzUHJveHk6
OmNyZWF0ZShhZG9wdFB0cihjYWxsYmFja3MpKSwgaW5kZXhJZHMsIGluZGV4S2V5cyk7CisgICAg
bV9kYXRhYmFzZUJhY2tlbmQtPnB1dCh0cmFuc2FjdGlvbklkLCBvYmplY3RTdG9yZUlkLCB2YWx1
ZSwga2V5LCBzdGF0aWNfY2FzdDxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGU+
KHB1dE1vZGUpLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykp
LCBpbmRleElkcywgaW5kZXhLZXlzKTsKIH0KIAogdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OnNl
dEluZGV4S2V5cyhsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVjdFN0b3Jl
SWQsIGNvbnN0IFdlYklEQktleSYgcHJpbWFyeUtleSwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9u
Zz4mIHdlYkluZGV4SWRzLCBjb25zdCBXZWJWZWN0b3I8V2ViSW5kZXhLZXlzPiYgd2ViSW5kZXhL
ZXlzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJh
c2VJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwu
aAppbmRleCAxZmQ1OTQ5NzYwZTYzMDNhNDg2MDBmM2FmMmM1ZGEzZDA4MzY5Njk4Li5kOTBjNjYx
NjAxYWM3MzY5Njg1NzhiZTE3MWY5ZDg2YjkwYTAxMzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaApAQCAtNjAsNiArNjAsNyBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgZ2V0KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25n
IGxvbmcgb2JqZWN0U3RvcmVJZCwgbG9uZyBsb25nIGluZGV4SWQsIGNvbnN0IFdlYklEQktleVJh
bmdlJiwgYm9vbCBrZXlPbmx5LCBXZWJJREJDYWxsYmFja3MqKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgcHV0KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3Rv
cmVJZCwgV2ViVmVjdG9yPHVuc2lnbmVkIGNoYXI+KiB2YWx1ZSwgY29uc3QgV2ViSURCS2V5Jiwg
UHV0TW9kZSwgV2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIGlu
ZGV4SWRzLCBjb25zdCBXZWJWZWN0b3I8V2ViSW5kZXhLZXlzPiYpIE9WRVJSSURFOworICAgIHZp
cnR1YWwgdm9pZCBwdXQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RT
dG9yZUlkLCBjb25zdCBXZWJEYXRhJiB2YWx1ZSwgY29uc3QgV2ViSURCS2V5JiwgUHV0TW9kZSwg
V2ViSURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIGluZGV4SWRzLCBj
b25zdCBXZWJWZWN0b3I8V2ViSW5kZXhLZXlzPiYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRJbmRleEtleXMobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RT
dG9yZUlkLCBjb25zdCBXZWJJREJLZXkmLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYgaW5k
ZXhJZHMsIGNvbnN0IFdlYlZlY3RvcjxXZWJJbmRleEtleXM+JikgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCB2b2lkIHNldEluZGV4ZXNSZWFkeShsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9uZyBs
b25nIG9iamVjdFN0b3JlSWQsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiBpbmRleElkcykg
T1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIG9wZW5DdXJzb3IobG9uZyBsb25nIHRyYW5zYWN0
aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBsb25nIGxvbmcgaW5kZXhJZCwgY29uc3Qg
V2ViSURCS2V5UmFuZ2UmLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIGJvb2wga2V5T25seSwg
VGFza1R5cGUsIFdlYklEQkNhbGxiYWNrcyopIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKaW5kZXgg
NDU0OTU1M2I5YzQ4YjczNTQyYjA1NGQ1MmUzZjk2Mzc5MGM2NTZhYy4uODk0N2U1NzE5ODE0MTky
NmZiYzdjZDVhYmMxNTM5MTk5MWM5ZTc2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3Rlc3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCkBAIC0xNTMsNyArMTUz
LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKGludDY0X3QgdHJhbnNh
Y3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQ
dHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIGJvb2wga2V5T25seSwg
VGFza1R5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgT1ZFUlJJREUgeyB9CiAgICAgdmly
dHVhbCB2b2lkIGNvdW50KGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBp
bnQ2NF90IHRyYW5zYWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBQYXNzUmVmUHRy
PElEQkNhbGxiYWNrcz4pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBnZXQoaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIGludDY0X3QgdHJhbnNhY3Rpb25JZCwg
UGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIGJvb2wga2V5T25seSwgUGFzc1JlZlB0cjxJREJDYWxs
YmFja3M+KSBPVkVSUklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcHV0KGludDY0X3QgdHJhbnNh
Y3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBWZWN0b3I8dWludDhfdD4qLCBQYXNzUmVm
UHRyPElEQktleT4sIFB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgY29uc3QgVmVj
dG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSBPVkVSUklE
RSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgcHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRf
dCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURC
S2V5PiwgUHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50
NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYpIE9WRVJSSURFIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleEtleXMoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2
NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8SURCS2V5PiBwcnBQcmltYXJ5S2V5LCBjb25z
dCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYpIE9W
RVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleGVzUmVhZHkoaW50NjRfdCB0cmFu
c2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYg
aW5kZXhJZHMpIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVSYW5nZShpbnQ2
NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxJREJL
ZXlSYW5nZT4sIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgT1ZFUlJJREUgeyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>188620</attachid>
            <date>2013-02-15 12:35:35 -0800</date>
            <delta_ts>2013-02-15 13:03:29 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-109092-20130215123202.patch</filename>
            <type>text/plain</type>
            <size>24091</size>
            <attacher name="Alec Flett">alecflett</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQyOTczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDkzZTVlNWE2MTdhN2U0
M2MyZGM2YTViNDBiMGE3ZWZmNDY5MGIyNy4uMzE3Mjc4ZjM0N2QxOWRjMWI4YzgxNjkxN2FhMDQ5
MmQ3MTFlNzQ4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDEzLTAyLTA2ICBBbGVj
IEZsZXR0ICA8YWxlY2ZsZXR0QGNocm9taXVtLm9yZz4KKworICAgICAgICBJbmRleGVkREI6IElt
cGxlbWVudCBTaGFyZWRCdWZmZXIgdmVyc2lvbiBvZiBwdXQoKQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA5MDkyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgQWRhbSBCYXJ0aC4KKworICAgICAgICBTd2l0Y2ggSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJm
YWNlOjpwdXQgb3ZlcgorICAgICAgICB0byBTaGFyZWRCdWZmZXIsIHRvIGF2b2lkIGJ1ZmZlciBj
b3BpZXMgb2YgdGhlIHZhbHVlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywgdGhpcyBpcyBhIHJl
ZmFjdG9yLgorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkJhY2tpbmdTdG9yZTo6cHV0UmVjb3JkKToKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKFdlYkNv
cmUpOgorICAgICAgICAoSURCQmFja2luZ1N0b3JlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlB1dE9w
ZXJhdGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlB1dE9wZXJhdGlvbjo6UHV0T3Bl
cmF0aW9uKToKKyAgICAgICAgKFB1dE9wZXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJE
YXRhYmFzZUJhY2tlbmRJbXBsOjpwdXQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QkRhdGFiYXNlQmFja2VuZEltcGwuaDoKKyAgICAgICAgKElEQkRhdGFiYXNlQmFja2VuZEltcGwp
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFj
ZS5oOgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCT2JqZWN0U3RvcmU6OnB1dCk6
CisKIDIwMTMtMDItMTQgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogYWx3YXlzIHNob3cgbWVtb3J5IHNpemUgaW4gTWIgb24g
dGhlIG5hdGl2ZSBtZW1vcnkgZ3JhcGgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5kZXggM2I3
YjkwOWQ0MTc0ZDAyOGNjNDY4MmIyYjY2NTFlYmYzOTMzYzM4Zi4uNDU1Nzk0YTBhYjkxZGQ4N2Ey
NjZlM2FlZDUyNDNiYTEyZjRjZWI4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNSBAQAorMjAxMy0wMi0wNiAgQWxlYyBGbGV0dCAgPGFsZWNmbGV0dEBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBJbXBsZW1lbnQgU2hhcmVkQnVmZmVyIHZlcnNpb24g
b2YgcHV0KCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwOTA5MgorCisgICAgICAgIFJldmlld2VkIGJ5IEFkYW0gQmFydGguCisKKyAgICAgICAgSW1w
bGVtZW50IFNoYXJlZEJ1ZmZlci9XZWJEYXRhIHZlcnNpb24gb2YKKyAgICAgICAgSURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlOjpwdXQsIGFuZCBwdXQKKyAgICAgICAgdGVtcG9yYXJ5IHNjYWZm
b2xkaW5nIGluIHVudGlsIGNocm9tZSBpcyByZWFkeS4KKworICAgICAgICAqIHNyYy9JREJEYXRh
YmFzZUJhY2tlbmRQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OklEQkRhdGFiYXNlQmFja2Vu
ZFByb3h5OjpwdXQpOgorICAgICAgICAqIHNyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oOgor
ICAgICAgICAoSURCRGF0YWJhc2VCYWNrZW5kUHJveHkpOgorICAgICAgICAqIHNyYy9XZWJJREJE
YXRhYmFzZUltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJREJEYXRhYmFzZUltcGw6OnB1
dCk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJJREJEYXRhYmFzZUltcGwu
aDoKKyAgICAgICAgKFdlYklEQkRhdGFiYXNlSW1wbCk6CisgICAgICAgICogdGVzdHMvSURCRGF0
YWJhc2VCYWNrZW5kVGVzdC5jcHA6CisKIDIwMTMtMDItMTQgIFZzZXZvbG9kIFZsYXNvdiAgPHZz
ZXZpa0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBjaHJvbWl1bSB0ZXN0IGZp
eDogaW5jb3JyZWN0IGZpZWxkIHdhcyB1c2VkIGZvciBVSVNvdXJjZUNvZGUgdXJsLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkJhY2tpbmdTdG9yZS5jcHAK
aW5kZXggMjcwNzZmMWI5ZmM1NTFjYjVmYWY5OTIxZjJkMTNmZDM4MjNmZjkzMi4uNWI3MzkwNGE4
MmYzOTcwMjA0YjRlOGI3NDFkYjliZjI0MGUyZTE0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuY3BwCkBAIC00Myw2ICs0Myw3
IEBACiAjaW5jbHVkZSAiTGV2ZWxEQlNsaWNlLmgiCiAjaW5jbHVkZSAiTGV2ZWxEQlRyYW5zYWN0
aW9uLmgiCiAjaW5jbHVkZSAiU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZm
ZXIuaCIKICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC04MzYsNyArODM3LDcgQEAgV0FSTl9VTlVTRURfUkVUVVJOIHN0YXRpYyBib29sIGdldE5l
d1ZlcnNpb25OdW1iZXIoTGV2ZWxEQlRyYW5zYWN0aW9uKiB0cmFuc2FjdGkKICAgICByZXR1cm4g
dHJ1ZTsKIH0KIAotYm9vbCBJREJCYWNraW5nU3RvcmU6OnB1dFJlY29yZChJREJCYWNraW5nU3Rv
cmU6OlRyYW5zYWN0aW9uKiB0cmFuc2FjdGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90
IG9iamVjdFN0b3JlSWQsIGNvbnN0IElEQktleSYga2V5LCBjb25zdCBWZWN0b3I8dWludDhfdD4m
IHZhbHVlLCBSZWNvcmRJZGVudGlmaWVyKiByZWNvcmRJZGVudGlmaWVyKQorYm9vbCBJREJCYWNr
aW5nU3RvcmU6OnB1dFJlY29yZChJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiB0cmFuc2Fj
dGlvbiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IElE
QktleSYga2V5LCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gcHJwVmFsdWUsIFJlY29yZElkZW50
aWZpZXIqIHJlY29yZElkZW50aWZpZXIpCiB7CiAgICAgSURCX1RSQUNFKCJJREJCYWNraW5nU3Rv
cmU6OnB1dFJlY29yZCIpOwogICAgIEFTU0VSVChrZXkuaXNWYWxpZCgpKTsKQEAgLTg1MCw3ICs4
NTEsOSBAQCBib29sIElEQkJhY2tpbmdTdG9yZTo6cHV0UmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6
VHJhbnNhY3Rpb24qIHRyYW5zYWN0aW9uLCBpbnQ2NAogCiAgICAgVmVjdG9yPGNoYXI+IHY7CiAg
ICAgdi5hcHBlbmQoZW5jb2RlVmFySW50KHZlcnNpb24pKTsKLSAgICB2LmFwcGVuZFZlY3Rvcih2
YWx1ZSk7CisgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWUgPSBwcnBWYWx1ZTsKKyAgICBB
U1NFUlQodmFsdWUpOworICAgIHYuYXBwZW5kKHZhbHVlLT5kYXRhKCksIHZhbHVlLT5zaXplKCkp
OwogCiAgICAgbGV2ZWxEQlRyYW5zYWN0aW9uLT5wdXQob2JqZWN0U3RvcmVkYXRhS2V5LCB2KTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCQmFja2lu
Z1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3Rv
cmUuaAppbmRleCA2NmI3MmY0ZDk5OWNhZjljNzMzZjc5ODE5MjU2OGU2YjU2OWIzNzA3Li5jOGFm
NzY4ZGM3ZjAzZDU0MzBhOTEzOWEwY2U1YmMyMGJiYjE4OTkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJCYWNraW5nU3RvcmUuaApAQCAtNDMsNiArNDMs
NyBAQCBjbGFzcyBJREJGYWN0b3J5QmFja2VuZEltcGw7CiBjbGFzcyBJREJLZXk7CiBjbGFzcyBJ
REJLZXlSYW5nZTsKIGNsYXNzIFNlY3VyaXR5T3JpZ2luOworY2xhc3MgU2hhcmVkQnVmZmVyOwog
CiBjbGFzcyBJREJCYWNraW5nU3RvcmUgOiBwdWJsaWMgUmVmQ291bnRlZDxJREJCYWNraW5nU3Rv
cmU+IHsKIHB1YmxpYzoKQEAgLTc4LDcgKzc5LDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICB2
aXJ0dWFsIGJvb2wgZ2V0UmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBpbnQ2
NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiwgVmVj
dG9yPHVpbnQ4X3Q+JiByZWNvcmQpIFdBUk5fVU5VU0VEX1JFVFVSTjsKLSAgICB2aXJ0dWFsIGJv
b2wgcHV0UmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFi
YXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5JiwgY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiB2YWx1ZSwgUmVjb3JkSWRlbnRpZmllciopIFdBUk5fVU5VU0VEX1JFVFVSTjsK
KyAgICB2aXJ0dWFsIGJvb2wgcHV0UmVjb3JkKElEQkJhY2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24q
LCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgY29uc3QgSURCS2V5
JiwgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlLCBSZWNvcmRJZGVudGlmaWVyKikgV0FS
Tl9VTlVTRURfUkVUVVJOOwogICAgIHZpcnR1YWwgdm9pZCBjbGVhck9iamVjdFN0b3JlKElEQkJh
Y2tpbmdTdG9yZTo6VHJhbnNhY3Rpb24qLCBpbnQ2NF90IGRhdGFiYXNlSWQsIGludDY0X3Qgb2Jq
ZWN0U3RvcmVJZCk7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZVJlY29yZChJREJCYWNraW5nU3Rv
cmU6OlRyYW5zYWN0aW9uKiwgaW50NjRfdCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3Jl
SWQsIGNvbnN0IFJlY29yZElkZW50aWZpZXImKTsKICAgICB2aXJ0dWFsIGJvb2wgZ2V0S2V5R2Vu
ZXJhdG9yQ3VycmVudE51bWJlcihJREJCYWNraW5nU3RvcmU6OlRyYW5zYWN0aW9uKiwgaW50NjRf
dCBkYXRhYmFzZUlkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QmIGN1cnJlbnROdW1i
ZXIpIFdBUk5fVU5VU0VEX1JFVFVSTjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKaW5kZXggZjhkYzcx
OTE0YjljZWY0NmFhMTBhMTdhMGU1MzA4OTdjMTRkOTk1NC4uYjI5ZjkyY2E3MDljNzFhYjRkOGE1
MjExZjZkMjhmM2I5NTFmZTFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5jcHAKQEAgLTM2LDYgKzM2
LDcgQEAKICNpbmNsdWRlICJJREJUcmFjaW5nLmgiCiAjaW5jbHVkZSAiSURCVHJhbnNhY3Rpb25C
YWNrZW5kSW1wbC5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uQ29vcmRpbmF0b3IuaCIKKyNp
bmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC0yNzEs
MjkgKzI3MiwyOSBAQCBwcml2YXRlOgogCiBjbGFzcyBQdXRPcGVyYXRpb24gOiBwdWJsaWMgSURC
VHJhbnNhY3Rpb25CYWNrZW5kSW1wbDo6T3BlcmF0aW9uIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc093blB0cjxJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsOjpPcGVyYXRpb24+IGNyZWF0ZShQ
YXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRhdGFiYXNl
SWQsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmIG9iamVjdFN0b3JlLCBWZWN0b3I8dWlu
dDhfdD4mIHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBJREJEYXRhYmFzZUJhY2tlbmRJ
bnRlcmZhY2U6OlB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+IGNhbGxi
YWNrcywgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPElEQkRh
dGFiYXNlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQorICAgIHN0YXRp
YyBQYXNzT3duUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw6Ok9wZXJhdGlvbj4gY3JlYXRl
KFBhc3NSZWZQdHI8SURCQmFja2luZ1N0b3JlPiBiYWNraW5nU3RvcmUsIGludDY0X3QgZGF0YWJh
c2VJZCwgY29uc3QgSURCT2JqZWN0U3RvcmVNZXRhZGF0YSYgb2JqZWN0U3RvcmUsIFBhc3NSZWZQ
dHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgSURCRGF0YWJh
c2VCYWNrZW5kSW50ZXJmYWNlOjpQdXRNb2RlIHB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPiBjYWxsYmFja3MsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZl
Y3RvcjxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OkluZGV4S2V5cz4mIGluZGV4S2V5cykK
ICAgICB7CiAgICAgICAgIHJldHVybiBhZG9wdFB0cihuZXcgUHV0T3BlcmF0aW9uKGJhY2tpbmdT
dG9yZSwgZGF0YWJhc2VJZCwgb2JqZWN0U3RvcmUsIHZhbHVlLCBrZXksIHB1dE1vZGUsIGNhbGxi
YWNrcywgaW5kZXhJZHMsIGluZGV4S2V5cykpOwogICAgIH0KICAgICB2aXJ0dWFsIHZvaWQgcGVy
Zm9ybShJREJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKik7CiBwcml2YXRlOgotICAgIFB1dE9wZXJh
dGlvbihQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlLCBpbnQ2NF90IGRh
dGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmIG9iamVjdFN0b3JlLCBWZWN0
b3I8dWludDhfdD4mIHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4ga2V5LCBJREJEYXRhYmFzZUJh
Y2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUgcHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+
IGNhbGxiYWNrcywgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9y
PElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQorICAg
IFB1dE9wZXJhdGlvbihQYXNzUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4gYmFja2luZ1N0b3JlLCBp
bnQ2NF90IGRhdGFiYXNlSWQsIGNvbnN0IElEQk9iamVjdFN0b3JlTWV0YWRhdGEmIG9iamVjdFN0
b3JlLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4mIHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4g
a2V5LCBJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGUgcHV0TW9kZSwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+IGNhbGxiYWNrcywgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRl
eElkcywgY29uc3QgVmVjdG9yPElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6SW5kZXhLZXlz
PiYgaW5kZXhLZXlzKQogICAgICAgICA6IG1fYmFja2luZ1N0b3JlKGJhY2tpbmdTdG9yZSkKICAg
ICAgICAgLCBtX2RhdGFiYXNlSWQoZGF0YWJhc2VJZCkKICAgICAgICAgLCBtX29iamVjdFN0b3Jl
KG9iamVjdFN0b3JlKQorICAgICAgICAsIG1fdmFsdWUodmFsdWUpCiAgICAgICAgICwgbV9rZXko
a2V5KQogICAgICAgICAsIG1fcHV0TW9kZShwdXRNb2RlKQogICAgICAgICAsIG1fY2FsbGJhY2tz
KGNhbGxiYWNrcykKICAgICAgICAgLCBtX2luZGV4SWRzKGluZGV4SWRzKQogICAgICAgICAsIG1f
aW5kZXhLZXlzKGluZGV4S2V5cykKICAgICB7Ci0gICAgICAgIG1fdmFsdWUuc3dhcCh2YWx1ZSk7
CiAgICAgfQogCiAgICAgY29uc3QgUmVmUHRyPElEQkJhY2tpbmdTdG9yZT4gbV9iYWNraW5nU3Rv
cmU7CiAgICAgY29uc3QgaW50NjRfdCBtX2RhdGFiYXNlSWQ7CiAgICAgY29uc3QgSURCT2JqZWN0
U3RvcmVNZXRhZGF0YSBtX29iamVjdFN0b3JlOwotICAgIFZlY3Rvcjx1aW50OF90PiBtX3ZhbHVl
OworICAgIGNvbnN0IFJlZlB0cjxTaGFyZWRCdWZmZXI+IG1fdmFsdWU7CiAgICAgY29uc3QgUmVm
UHRyPElEQktleT4gbV9rZXk7CiAgICAgY29uc3QgSURCRGF0YWJhc2VCYWNrZW5kSW50ZXJmYWNl
OjpQdXRNb2RlIG1fcHV0TW9kZTsKICAgICBjb25zdCBSZWZQdHI8SURCQ2FsbGJhY2tzPiBtX2Nh
bGxiYWNrczsKQEAgLTc3OSw3ICs3ODAsNyBAQCB2b2lkIEdldE9wZXJhdGlvbjo6cGVyZm9ybShJ
REJUcmFuc2FjdGlvbkJhY2tlbmRJbXBsKiB0cmFuc2FjdGlvbikKICAgICBtX2NhbGxiYWNrcy0+
b25TdWNjZXNzKFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTo6Y3JlYXRlRnJvbVdpcmVCeXRlcyh2YWx1
ZSkpOwogfQogCi12b2lkIElEQkRhdGFiYXNlQmFja2VuZEltcGw6OnB1dChpbnQ2NF90IHRyYW5z
YWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgVmVjdG9yPHVpbnQ4X3Q+KiB2YWx1ZSwg
UGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUHV0TW9kZSBwdXRNb2RlLCBQYXNzUmVmUHRyPElEQkNh
bGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25z
dCBWZWN0b3I8SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQordm9pZCBJREJEYXRhYmFzZUJhY2tlbmRJ
bXBsOjpwdXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBh
c3NSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUHV0
TW9kZSBwdXRNb2RlLCBQYXNzUmVmUHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBW
ZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYgaW5kZXhL
ZXlzKQogewogICAgIElEQl9UUkFDRSgiSURCRGF0YWJhc2VCYWNrZW5kSW1wbDo6cHV0Iik7CiAg
ICAgSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCogdHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9u
cy5nZXQodHJhbnNhY3Rpb25JZCk7CkBAIC03OTEsNyArNzkyLDcgQEAgdm9pZCBJREJEYXRhYmFz
ZUJhY2tlbmRJbXBsOjpwdXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQsIFYKIAogICAgIEFTU0VSVChvYmplY3RTdG9yZU1ldGFkYXRhLmF1dG9JbmNyZW1lbnQg
fHwga2V5LmdldCgpKTsKIAotICAgIHRyYW5zYWN0aW9uLT5zY2hlZHVsZVRhc2soUHV0T3BlcmF0
aW9uOjpjcmVhdGUobV9iYWNraW5nU3RvcmUsIGlkKCksIG9iamVjdFN0b3JlTWV0YWRhdGEsICp2
YWx1ZSwga2V5LCBwdXRNb2RlLCBjYWxsYmFja3MsIGluZGV4SWRzLCBpbmRleEtleXMpKTsKKyAg
ICB0cmFuc2FjdGlvbi0+c2NoZWR1bGVUYXNrKFB1dE9wZXJhdGlvbjo6Y3JlYXRlKG1fYmFja2lu
Z1N0b3JlLCBpZCgpLCBvYmplY3RTdG9yZU1ldGFkYXRhLCB2YWx1ZSwga2V5LCBwdXRNb2RlLCBj
YWxsYmFja3MsIGluZGV4SWRzLCBpbmRleEtleXMpKTsKIH0KIAogdm9pZCBQdXRPcGVyYXRpb246
OnBlcmZvcm0oSURCVHJhbnNhY3Rpb25CYWNrZW5kSW1wbCogdHJhbnNhY3Rpb24pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJ
bXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tl
bmRJbXBsLmgKaW5kZXggNWJiMTY1NDBmZTg3YWVlMTJmY2U5NDBlYjNiZjJiMTlhNjg1MGI0NC4u
MWViYzg3ODEyZTVhZTk2ZGZkYjU4NzdkMWRmM2I5NWFiOWIzMDM2ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VCYWNrZW5kSW1wbC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZElt
cGwuaApAQCAtODEsNyArODEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB0cmFuc2FjdGlvbkZpbmlz
aGVkQW5kQWJvcnRGaXJlZChQYXNzUmVmUHRyPElEQlRyYW5zYWN0aW9uQmFja2VuZEltcGw+KTsK
IAogICAgIHZpcnR1YWwgdm9pZCBnZXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIGJv
b2wga2V5T25seSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSBPVkVSUklERTsKLSAgICB2aXJ0
dWFsIHZvaWQgcHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBWZWN0b3I8dWludDhfdD4qIHZhbHVlLCBQYXNzUmVmUHRyPElEQktleT4sIFB1dE1vZGUsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywg
Y29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgcHV0
KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiwgUHV0TW9kZSwgUGFzc1Jl
ZlB0cjxJREJDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzLCBjb25z
dCBWZWN0b3I8SW5kZXhLZXlzPiYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRl
eEtleXMoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NS
ZWZQdHI8SURCS2V5PiBwcnBQcmltYXJ5S2V5LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4
SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9p
ZCBzZXRJbmRleGVzUmVhZHkoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCBvcGVuQ3Vyc29yKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmpl
Y3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNp
Z25lZCBzaG9ydCBkaXJlY3Rpb24sIGJvb2wga2V5T25seSwgVGFza1R5cGUsIFBhc3NSZWZQdHI8
SURCQ2FsbGJhY2tzPikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCmluZGV4
IGIyOWVkYmJlMTk3YjY0OGNjMzU1YWI3Y2QwYmQ4YTkzYmYwZWI2ZTIuLmUwMDE0ZWIzZTJkY2My
YTNmNDM0MjUwNzQ0NTc5MzA1YjcxNjdjNDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZS5o
CkBAIC00MSw2ICs0MSw3IEBAIGNsYXNzIElEQktleTsKIGNsYXNzIElEQktleVBhdGg7CiBjbGFz
cyBJREJLZXlSYW5nZTsKIHN0cnVjdCBJREJEYXRhYmFzZU1ldGFkYXRhOworY2xhc3MgU2hhcmVk
QnVmZmVyOwogCiB0eXBlZGVmIGludCBFeGNlcHRpb25Db2RlOwogCkBAIC04MSw3ICs4Miw3IEBA
IHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9pZCBnZXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQsIGludDY0X3QgaW5kZXhJZCwgUGFzc1JlZlB0cjxJREJLZXlS
YW5nZT4sIGJvb2wga2V5T25seSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSA9IDA7CiAgICAg
Ly8gTm90ZSB0aGF0ICd2YWx1ZScgbWF5IGJlIGNvbnN1bWVkL2Fkb3B0ZWQgYnkgdGhpcyBjYWxs
LgotICAgIHZpcnR1YWwgdm9pZCBwdXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9i
amVjdFN0b3JlSWQsIFZlY3Rvcjx1aW50OF90PiogdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5Piwg
UHV0TW9kZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4m
IGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYpID0gMDsKKyAgICB2aXJ0dWFsIHZv
aWQgcHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNz
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gdmFsdWUsIFBhc3NSZWZQdHI8SURCS2V5PiwgUHV0TW9kZSwg
UGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRz
LCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5k
ZXhLZXlzKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNz
UmVmUHRyPElEQktleT4gcHJwUHJpbWFyeUtleSwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRl
eElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNl
dEluZGV4ZXNSZWFkeShpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcykgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBvcGVuQ3Vyc29yKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlk
LCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCB1bnNpZ25lZCBzaG9y
dCBkaXJlY3Rpb24sIGJvb2wga2V5T25seSwgVGFza1R5cGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJh
Y2tzPikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
SURCT2JqZWN0U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
T2JqZWN0U3RvcmUuY3BwCmluZGV4IDRjNThjZTNhNzczNzY0NzVhMjQ0Yzc0OGY4YTQ4NTdjMzNk
ZmUzMmUuLjNjZjU0OTY3MjRiNzcwYWQ0ZmFhZjViYjcwMzNjYWY1OTEyY2QyMGEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQk9iamVjdFN0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJPYmplY3RTdG9yZS5jcHAK
QEAgLTQzLDYgKzQzLDcgQEAKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbi5oIgogI2luY2x1ZGUg
IlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFs
dWUuaCIKKyNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKICNpbmNsdWRlIDx3dGYvVW51c2VkUGFy
YW0uaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMjMwLDcgKzIzMSwxMSBAQCBQYXNzUmVm
UHRyPElEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjpwdXQoSURCRGF0YWJhc2VCYWNrZW5kSW50
ZXJmYWNlOjpQdXRNb2RlCiAKICAgICBSZWZQdHI8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJl
cXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBzb3VyY2UsIG1fdHJhbnNhY3Rpb24uZ2V0KCkpOwogICAg
IFZlY3Rvcjx1aW50OF90PiB2YWx1ZUJ5dGVzID0gc2VyaWFsaXplZFZhbHVlLT50b1dpcmVCeXRl
cygpOwotICAgIGJhY2tlbmREQigpLT5wdXQobV90cmFuc2FjdGlvbi0+aWQoKSwgaWQoKSwgJnZh
bHVlQnl0ZXMsIGtleS5yZWxlYXNlKCksIHN0YXRpY19jYXN0PElEQkRhdGFiYXNlQmFja2VuZElu
dGVyZmFjZTo6UHV0TW9kZT4ocHV0TW9kZSksIHJlcXVlc3QsIGluZGV4SWRzLCBpbmRleEtleXMp
OworICAgIC8vIFRoaXMgaXMgYSBoYWNrIHRvIGFjY291bnQgZm9yIGRpc2FncmVlbWVudHMgYWJv
dXQgd2hldGhlciBTZXJpYWxpemVkU2NyaXB0VmFsdWUgc2hvdWxkIGRlYWwgaW4gVmVjdG9yPHVp
bnQ4X3Q+IG9yIFZlY3RvcjxjaGFyPi4KKyAgICAvLyBTZWUgaHR0cHM6Ly9saXN0cy53ZWJraXQu
b3JnL3BpcGVybWFpbC93ZWJraXQtZGV2LzIwMTMtRmVicnVhcnkvMDIzNjgyLmh0bWwKKyAgICBW
ZWN0b3I8Y2hhcj4qIHZhbHVlQnl0ZXNTaWduZWQgPSByZWludGVycHJldF9jYXN0PFZlY3Rvcjxj
aGFyPio+KCZ2YWx1ZUJ5dGVzKTsKKyAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiB2YWx1ZUJ1ZmZl
ciA9IFNoYXJlZEJ1ZmZlcjo6YWRvcHRWZWN0b3IoKnZhbHVlQnl0ZXNTaWduZWQpOworICAgIGJh
Y2tlbmREQigpLT5wdXQobV90cmFuc2FjdGlvbi0+aWQoKSwgaWQoKSwgdmFsdWVCdWZmZXIsIGtl
eS5yZWxlYXNlKCksIHN0YXRpY19jYXN0PElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6UHV0
TW9kZT4ocHV0TW9kZSksIHJlcXVlc3QsIGluZGV4SWRzLCBpbmRleEtleXMpOwogICAgIHJldHVy
biByZXF1ZXN0LnJlbGVhc2UoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuY3BwCmluZGV4IGNiNzVjMmNmOGUwZGJl
MDk4MTEyYmUwNDZhNWRiMDMwZTUwOTU3NmQuLjM1NWQ4MDg5ZWVjYzZkM2M0NGJkOGNiYTA0MTEx
ZjI2ZWZmMTkzNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRh
dGFiYXNlQmFja2VuZFByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9J
REJEYXRhYmFzZUJhY2tlbmRQcm94eS5jcHAKQEAgLTQxLDYgKzQxLDcgQEAKICNpbmNsdWRlICJX
ZWJJREJEYXRhYmFzZUNhbGxiYWNrc0ltcGwuaCIKICNpbmNsdWRlICJXZWJJREJEYXRhYmFzZUVy
cm9yLmgiCiAjaW5jbHVkZSAiV2ViSURCS2V5UmFuZ2UuaCIKKyNpbmNsdWRlICJwdWJsaWMvV2Vi
RGF0YS5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIApAQCAtMTA5LDEyICsxMTAsMTAg
QEAgdm9pZCBJREJEYXRhYmFzZUJhY2tlbmRQcm94eTo6Z2V0KGludDY0X3QgdHJhbnNhY3Rpb25J
ZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLAogICAgICAgICBtX3dlYklEQkRhdGFiYXNlLT5nZXQo
dHJhbnNhY3Rpb25JZCwgb2JqZWN0U3RvcmVJZCwgaW5kZXhJZCwga2V5UmFuZ2UsIGtleU9ubHks
IG5ldyBXZWJJREJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcykpOwogfQogCi12b2lkIElEQkRhdGFi
YXNlQmFja2VuZFByb3h5OjpwdXQoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVj
dFN0b3JlSWQsIFZlY3Rvcjx1aW50OF90PiogYnVmZmVyLCBQYXNzUmVmUHRyPElEQktleT4ga2V5
LCBQdXRNb2RlIHB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiBjYWxsYmFja3MsIGNv
bnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JiBp
bmRleEtleXMpCit2b2lkIElEQkRhdGFiYXNlQmFja2VuZFByb3h5OjpwdXQoaW50NjRfdCB0cmFu
c2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0b3JlSWQsIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiB2YWx1ZSwgUGFzc1JlZlB0cjxJREJLZXk+IGtleSwgUHV0TW9kZSBwdXRNb2RlLCBQYXNzUmVm
UHRyPElEQkNhbGxiYWNrcz4gY2FsbGJhY2tzLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4
SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYgaW5kZXhLZXlzKQogewogICAgIGlmIChtX3dl
YklEQkRhdGFiYXNlKSB7Ci0gICAgICAgIFdlYlZlY3Rvcjx1bnNpZ25lZCBjaGFyPiB3ZWJCdWZm
ZXIoYnVmZmVyLT5zaXplKCkpOwotICAgICAgICB3ZWJCdWZmZXIuYXNzaWduKGJ1ZmZlci0+ZGF0
YSgpLCBidWZmZXItPnNpemUoKSk7Ci0gICAgICAgIG1fd2ViSURCRGF0YWJhc2UtPnB1dCh0cmFu
c2FjdGlvbklkLCBvYmplY3RTdG9yZUlkLCAmd2ViQnVmZmVyLCBrZXksIHN0YXRpY19jYXN0PFdl
YklEQkRhdGFiYXNlOjpQdXRNb2RlPihwdXRNb2RlKSwgbmV3IFdlYklEQkNhbGxiYWNrc0ltcGwo
Y2FsbGJhY2tzKSwgaW5kZXhJZHMsIGluZGV4S2V5cyk7CisgICAgICAgIG1fd2ViSURCRGF0YWJh
c2UtPnB1dCh0cmFuc2FjdGlvbklkLCBvYmplY3RTdG9yZUlkLCBXZWJEYXRhKHZhbHVlKSwga2V5
LCBzdGF0aWNfY2FzdDxXZWJJREJEYXRhYmFzZTo6UHV0TW9kZT4ocHV0TW9kZSksIG5ldyBXZWJJ
REJDYWxsYmFja3NJbXBsKGNhbGxiYWNrcyksIGluZGV4SWRzLCBpbmRleEtleXMpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VC
YWNrZW5kUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0lEQkRhdGFiYXNlQmFj
a2VuZFByb3h5LmgKaW5kZXggNmQyZDhlZDBhMDIxOWViMzhiNjdiNDk0Y2MzZGFkM2FkYmZmZGRl
NS4uZGJkOTY0MmYxMTIwZDk5OGRhZjk3Y2I1ZmE5YTUyMGJiZDVkNmQ1MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSURCRGF0YWJhc2VCYWNrZW5kUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9JREJEYXRhYmFzZUJhY2tlbmRQcm94eS5oCkBA
IC01Miw3ICs1Miw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYWJvcnQoaW50NjRfdCwg
UGFzc1JlZlB0cjxXZWJDb3JlOjpJREJEYXRhYmFzZUVycm9yPik7CiAKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2
NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCS2V5UmFuZ2U+LCBib29sIGtleU9u
bHksIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2FsbGJhY2tzPikgT1ZFUlJJREU7Ci0gICAgdmly
dHVhbCB2b2lkIHB1dChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJ
ZCwgVmVjdG9yPHVpbnQ4X3Q+KiB2YWx1ZSwgUGFzc1JlZlB0cjxXZWJDb3JlOjpJREJLZXk+LCBQ
dXRNb2RlLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4sIGNvbnN0IFZlY3Rvcjxp
bnQ2NF90PiYgaW5kZXhJZHMsIGNvbnN0IFZlY3RvcjxJbmRleEtleXM+JikgT1ZFUlJJREU7Cisg
ICAgdmlydHVhbCB2b2lkIHB1dChpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgUGFzc1JlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IHZhbHVlLCBQYXNzUmVm
UHRyPFdlYkNvcmU6OklEQktleT4sIFB1dE1vZGUsIFBhc3NSZWZQdHI8V2ViQ29yZTo6SURCQ2Fs
bGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElkcywgY29uc3QgVmVjdG9yPElu
ZGV4S2V5cz4mKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SW5kZXhLZXlzKGludDY0
X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9yZUlkLCBQYXNzUmVmUHRyPFdlYkNv
cmU6OklEQktleT4gcHJwUHJpbWFyeUtleSwgY29uc3QgVmVjdG9yPGludDY0X3Q+JiBpbmRleElk
cywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0SW5kZXhlc1JlYWR5KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4SWRzKSBPVkVSUklERTsKICAgICB2aXJ0
dWFsIHZvaWQgb3BlbkN1cnNvcihpbnQ2NF90IHRyYW5zYWN0aW9uSWQsIGludDY0X3Qgb2JqZWN0
U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBQYXNzUmVmUHRyPFdlYkNvcmU6OklEQktleVJhbmdl
PiwgdW5zaWduZWQgc2hvcnQgZGlyZWN0aW9uLCBib29sIGtleU9ubHksIFRhc2tUeXBlLCBQYXNz
UmVmUHRyPFdlYkNvcmU6OklEQkNhbGxiYWNrcz4pIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYklEQkRhdGFiYXNlSW1wbC5jcHAKaW5kZXggOTdhYmRmNzI5
OWQxOTg4MDQ0MTA3Yjg0MmRkYmYzM2FmNGI5MWIxZC4uYTE4MDUxNTBkMmNhNmRjNzdkZjg2MWI2
MmQwYWFiM2E5ZTVkYjJhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViSURCRGF0YWJhc2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJJREJEYXRhYmFzZUltcGwuY3BwCkBAIC0zNSwxMiArMzUsMTQgQEAKICNpbmNsdWRlICJJREJE
YXRhYmFzZUNhbGxiYWNrc1Byb3h5LmgiCiAjaW5jbHVkZSAiSURCS2V5UmFuZ2UuaCIKICNpbmNs
dWRlICJJREJNZXRhZGF0YS5oIgorI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgogI2luY2x1ZGUg
IldlYklEQkNhbGxiYWNrcy5oIgogI2luY2x1ZGUgIldlYklEQkRhdGFiYXNlQ2FsbGJhY2tzLmgi
CiAjaW5jbHVkZSAiV2ViSURCRGF0YWJhc2VFcnJvci5oIgogI2luY2x1ZGUgIldlYklEQktleS5o
IgogI2luY2x1ZGUgIldlYklEQktleVJhbmdlLmgiCiAjaW5jbHVkZSAiV2ViSURCTWV0YWRhdGEu
aCIKKyNpbmNsdWRlICJwdWJsaWMvV2ViRGF0YS5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIApAQCAtMTMxLDcgKzEzMyw3IEBAIHZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpnZXQobG9u
ZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBsCiAgICAgICAg
IG1fZGF0YWJhc2VCYWNrZW5kLT5nZXQodHJhbnNhY3Rpb25JZCwgb2JqZWN0U3RvcmVJZCwgaW5k
ZXhJZCwga2V5UmFuZ2UsIGtleU9ubHksIElEQkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQ
dHIoY2FsbGJhY2tzKSkpOwogfQogCi12b2lkIFdlYklEQkRhdGFiYXNlSW1wbDo6cHV0KGxvbmcg
bG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgV2ViVmVjdG9yPHVu
c2lnbmVkIGNoYXI+KiB2YWx1ZSwgY29uc3QgV2ViSURCS2V5JiBrZXksIFB1dE1vZGUgcHV0TW9k
ZSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3MsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+
JiB3ZWJJbmRleElkcywgY29uc3QgV2ViVmVjdG9yPFdlYkluZGV4S2V5cz4mIHdlYkluZGV4S2V5
cykKK3ZvaWQgV2ViSURCRGF0YWJhc2VJbXBsOjpwdXQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQs
IGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25zdCBXZWJEYXRhJiB2YWx1ZSwgY29uc3QgV2Vi
SURCS2V5JiBrZXksIFB1dE1vZGUgcHV0TW9kZSwgV2ViSURCQ2FsbGJhY2tzKiBjYWxsYmFja3Ms
IGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiB3ZWJJbmRleElkcywgY29uc3QgV2ViVmVjdG9y
PFdlYkluZGV4S2V5cz4mIHdlYkluZGV4S2V5cykKIHsKICAgICBpZiAoIW1fZGF0YWJhc2VCYWNr
ZW5kKQogICAgICAgICByZXR1cm47CkBAIC0xNDgsOSArMTUwLDEwIEBAIHZvaWQgV2ViSURCRGF0
YWJhc2VJbXBsOjpwdXQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RT
dG9yZUlkLCBXCiAgICAgICAgIGluZGV4S2V5c1tpXSA9IGluZGV4S2V5TGlzdDsKICAgICB9CiAK
LSAgICBWZWN0b3I8dWludDhfdD4gdmFsdWVCdWZmZXI7Ci0gICAgdmFsdWVCdWZmZXIuYXBwZW5k
KHZhbHVlLT5kYXRhKCksIHZhbHVlLT5zaXplKCkpOwotICAgIG1fZGF0YWJhc2VCYWNrZW5kLT5w
dXQodHJhbnNhY3Rpb25JZCwgb2JqZWN0U3RvcmVJZCwgJnZhbHVlQnVmZmVyLCBrZXksIHN0YXRp
Y19jYXN0PElEQkRhdGFiYXNlQmFja2VuZEludGVyZmFjZTo6UHV0TW9kZT4ocHV0TW9kZSksIElE
QkNhbGxiYWNrc1Byb3h5OjpjcmVhdGUoYWRvcHRQdHIoY2FsbGJhY2tzKSksIGluZGV4SWRzLCBp
bmRleEtleXMpOworICAgIFJlZlB0cjxTaGFyZWRCdWZmZXI+IHZhbHVlQnVmZmVyID0gUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+KHZhbHVlKTsKKyAgICBpZiAoIXZhbHVlQnVmZmVyKQorICAgICAg
ICB2YWx1ZUJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKCk7CisgICAgbV9kYXRhYmFzZUJh
Y2tlbmQtPnB1dCh0cmFuc2FjdGlvbklkLCBvYmplY3RTdG9yZUlkLCB2YWx1ZUJ1ZmZlciwga2V5
LCBzdGF0aWNfY2FzdDxJREJEYXRhYmFzZUJhY2tlbmRJbnRlcmZhY2U6OlB1dE1vZGU+KHB1dE1v
ZGUpLCBJREJDYWxsYmFja3NQcm94eTo6Y3JlYXRlKGFkb3B0UHRyKGNhbGxiYWNrcykpLCBpbmRl
eElkcywgaW5kZXhLZXlzKTsKIH0KIAogdm9pZCBXZWJJREJEYXRhYmFzZUltcGw6OnNldEluZGV4
S2V5cyhsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVjdFN0b3JlSWQsIGNv
bnN0IFdlYklEQktleSYgcHJpbWFyeUtleSwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIHdl
YkluZGV4SWRzLCBjb25zdCBXZWJWZWN0b3I8V2ViSW5kZXhLZXlzPiYgd2ViSW5kZXhLZXlzKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViSURCRGF0YWJhc2VJbXBs
LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAppbmRl
eCAxZmQ1OTQ5NzYwZTYzMDNhNDg2MDBmM2FmMmM1ZGEzZDA4MzY5Njk4Li42NWExZjFlMmNiNjgy
NjhhOTFkZWZhMWIwN2ViOTRmOGNhMzVhODUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9XZWJJREJEYXRhYmFzZUltcGwuaApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIGNvbW1pdChsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCk7CiAKICAgICB2
aXJ0dWFsIHZvaWQgZ2V0KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0
U3RvcmVJZCwgbG9uZyBsb25nIGluZGV4SWQsIGNvbnN0IFdlYklEQktleVJhbmdlJiwgYm9vbCBr
ZXlPbmx5LCBXZWJJREJDYWxsYmFja3MqKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgcHV0
KGxvbmcgbG9uZyB0cmFuc2FjdGlvbklkLCBsb25nIGxvbmcgb2JqZWN0U3RvcmVJZCwgV2ViVmVj
dG9yPHVuc2lnbmVkIGNoYXI+KiB2YWx1ZSwgY29uc3QgV2ViSURCS2V5JiwgUHV0TW9kZSwgV2Vi
SURCQ2FsbGJhY2tzKiwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIGluZGV4SWRzLCBjb25z
dCBXZWJWZWN0b3I8V2ViSW5kZXhLZXlzPiYpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCBw
dXQobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25z
dCBXZWJEYXRhJiB2YWx1ZSwgY29uc3QgV2ViSURCS2V5JiwgUHV0TW9kZSwgV2ViSURCQ2FsbGJh
Y2tzKiwgY29uc3QgV2ViVmVjdG9yPGxvbmcgbG9uZz4mIGluZGV4SWRzLCBjb25zdCBXZWJWZWN0
b3I8V2ViSW5kZXhLZXlzPiYpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleEtl
eXMobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcgbG9uZyBvYmplY3RTdG9yZUlkLCBjb25z
dCBXZWJJREJLZXkmLCBjb25zdCBXZWJWZWN0b3I8bG9uZyBsb25nPiYgaW5kZXhJZHMsIGNvbnN0
IFdlYlZlY3RvcjxXZWJJbmRleEtleXM+JikgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2b2lkIHNl
dEluZGV4ZXNSZWFkeShsb25nIGxvbmcgdHJhbnNhY3Rpb25JZCwgbG9uZyBsb25nIG9iamVjdFN0
b3JlSWQsIGNvbnN0IFdlYlZlY3Rvcjxsb25nIGxvbmc+JiBpbmRleElkcykgT1ZFUlJJREU7CiAg
ICAgdmlydHVhbCB2b2lkIG9wZW5DdXJzb3IobG9uZyBsb25nIHRyYW5zYWN0aW9uSWQsIGxvbmcg
bG9uZyBvYmplY3RTdG9yZUlkLCBsb25nIGxvbmcgaW5kZXhJZCwgY29uc3QgV2ViSURCS2V5UmFu
Z2UmLCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIGJvb2wga2V5T25seSwgVGFza1R5cGUsIFdl
YklEQkNhbGxiYWNrcyopIE9WRVJSSURFOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS90ZXN0cy9JREJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vdGVzdHMvSURCRGF0YWJhc2VCYWNrZW5kVGVzdC5jcHAKaW5kZXggNDU0OTU1M2I5YzQ4
YjczNTQyYjA1NGQ1MmUzZjk2Mzc5MGM2NTZhYy4uODk0N2U1NzE5ODE0MTkyNmZiYzdjZDVhYmMx
NTM5MTk5MWM5ZTc2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9J
REJEYXRhYmFzZUJhY2tlbmRUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rl
c3RzL0lEQkRhdGFiYXNlQmFja2VuZFRlc3QuY3BwCkBAIC0xNTMsNyArMTUzLDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBvcGVuQ3Vyc29yKGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50
NjRfdCBvYmplY3RTdG9yZUlkLCBpbnQ2NF90IGluZGV4SWQsIFBhc3NSZWZQdHI8SURCS2V5UmFu
Z2U+LCB1bnNpZ25lZCBzaG9ydCBkaXJlY3Rpb24sIGJvb2wga2V5T25seSwgVGFza1R5cGUsIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgT1ZFUlJJREUgeyB9CiAgICAgdmlydHVhbCB2b2lkIGNv
dW50KGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgaW50NjRfdCBpbmRleElkLCBpbnQ2NF90IHRyYW5z
YWN0aW9uSWQsIFBhc3NSZWZQdHI8SURCS2V5UmFuZ2U+LCBQYXNzUmVmUHRyPElEQkNhbGxiYWNr
cz4pIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBnZXQoaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBpbnQ2NF90IGluZGV4SWQsIGludDY0X3QgdHJhbnNhY3Rpb25JZCwgUGFzc1JlZlB0cjxJ
REJLZXlSYW5nZT4sIGJvb2wga2V5T25seSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+KSBPVkVS
UklERSB7IH0KLSAgICB2aXJ0dWFsIHZvaWQgcHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50
NjRfdCBvYmplY3RTdG9yZUlkLCBWZWN0b3I8dWludDhfdD4qLCBQYXNzUmVmUHRyPElEQktleT4s
IFB1dE1vZGUsIFBhc3NSZWZQdHI8SURCQ2FsbGJhY2tzPiwgY29uc3QgVmVjdG9yPGludDY0X3Q+
JiBpbmRleElkcywgY29uc3QgVmVjdG9yPEluZGV4S2V5cz4mKSBPVkVSUklERSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgcHV0KGludDY0X3QgdHJhbnNhY3Rpb25JZCwgaW50NjRfdCBvYmplY3RTdG9y
ZUlkLCBQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4sIFBhc3NSZWZQdHI8SURCS2V5PiwgUHV0TW9k
ZSwgUGFzc1JlZlB0cjxJREJDYWxsYmFja3M+LCBjb25zdCBWZWN0b3I8aW50NjRfdD4mIGluZGV4
SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYpIE9WRVJSSURFIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBzZXRJbmRleEtleXMoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBpbnQ2NF90IG9iamVjdFN0
b3JlSWQsIFBhc3NSZWZQdHI8SURCS2V5PiBwcnBQcmltYXJ5S2V5LCBjb25zdCBWZWN0b3I8aW50
NjRfdD4mIGluZGV4SWRzLCBjb25zdCBWZWN0b3I8SW5kZXhLZXlzPiYpIE9WRVJSSURFIHsgfQog
ICAgIHZpcnR1YWwgdm9pZCBzZXRJbmRleGVzUmVhZHkoaW50NjRfdCB0cmFuc2FjdGlvbklkLCBp
bnQ2NF90IG9iamVjdFN0b3JlSWQsIGNvbnN0IFZlY3RvcjxpbnQ2NF90PiYgaW5kZXhJZHMpIE9W
RVJSSURFIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkZWxldGVSYW5nZShpbnQ2NF90IHRyYW5zYWN0
aW9uSWQsIGludDY0X3Qgb2JqZWN0U3RvcmVJZCwgUGFzc1JlZlB0cjxJREJLZXlSYW5nZT4sIFBh
c3NSZWZQdHI8SURCQ2FsbGJhY2tzPikgT1ZFUlJJREUgeyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>