<?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>56402</bug_id>
          
          <creation_ts>2011-03-15 12:49:30 -0700</creation_ts>
          <short_desc>REGRESSION (WebKit2): keygen element doesn&apos;t work</short_desc>
          <delta_ts>2011-03-15 14:16:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.6</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P1</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alexey Proskuryakov">ap</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>367865</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-15 12:49:30 -0700</bug_when>
    <thetext>It used to work in WK1 in Mac.

&lt;rdar://problem/9006545&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367905</commentid>
    <comment_count>1</comment_count>
      <attachid>85850</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-15 13:32:41 -0700</bug_when>
    <thetext>Created attachment 85850
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367909</commentid>
    <comment_count>2</comment_count>
      <attachid>85850</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-03-15 13:36:03 -0700</bug_when>
    <thetext>Comment on attachment 85850
proposed fix

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

&gt; Source/WebKit/mac/WebCoreSupport/WebKeyGenerator.mm:2
&gt; + * Copyright (C) 2005, 2011 Apple Computer, Inc.  All rights reserved.

Should change company name to Apple Inc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367912</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-03-15 13:37:09 -0700</bug_when>
    <thetext>Attachment 85850 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/plat...&quot; exit_code: 1

Source/WebCore/platform/mac/SSLKeyGeneratorMac.cpp:49:  A case label should not be indented, but line up with its switch statement.  [whitespace/indent] [4]
Total errors found: 1 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>367938</commentid>
    <comment_count>4</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-15 14:16:15 -0700</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/changeset/81173&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>85850</attachid>
            <date>2011-03-15 13:32:41 -0700</date>
            <delta_ts>2011-03-15 13:36:03 -0700</delta_ts>
            <desc>proposed fix</desc>
            <filename>keygen.txt</filename>
            <type>text/plain</type>
            <size>63613</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxMTY1KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTEtMDMtMTUgIEFsZXhleSBQ
cm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lPTiAoV2ViS2l0Mik6IGtleWdlbiBlbGVtZW50
IGRvZXNuJ3Qgd29yaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9NTY0MDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkwMDY1NDU+CisKKyAgICAgICAg
Q292ZXJlZCBieSBleGlzdGluZyByZWdyZXNpc29uIHRlc3RzLgorCisgICAgICAgICogRW5nbGlz
aC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzOgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46
IFJlbW92ZWQgV2ViQ29yZUtleUdlbmVyYXRvciwgd2hpY2ggbm8gbG9uZ2VyIGV4aXN0cy4gQWRk
ZWQKKyAgICAgICAgX3drU2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nLCBzbyB0aGF0
IHRoaXMgV0tTSSBmdW5jdGlvbiBjb3VsZCBiZSB1c2VkIGluIFdlYkNvcmUuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvU1NMS2V5R2VuZXJhdG9yTWFjLm1tOiBSZW1vdmVkLgorICAgICAgICAq
IHBsYXRmb3JtL21hYy9XZWJDb3JlS2V5R2VuZXJhdG9yLmg6IFJlbW92ZWQuCisgICAgICAgICog
cGxhdGZvcm0vbWFjL1dlYkNvcmVLZXlHZW5lcmF0b3IubTogUmVtb3ZlZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oOgorICAgICAgICAqIHBsYXRmb3Jt
L21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgUmVuYW1lZCBTU0xLZXlHZW5lcmF0b3JNYWMu
bW0gdG8gLmNwcCwgYXMgaXQgZG9lc24ndCB1c2UgYW55IE9iamVjdGl2ZSBDIGFueSBtb3JlLgor
ICAgICAgICBSZW1vdmVkIFdlYkNvcmVLZXlHZW5lcmF0b3IsIGFzIHdlIG5vIGxvbmdlciBuZWVk
IGFuIGludGVyZmFjZSB0byBXZWJLaXQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6YXRp
b25TdHJhdGVneS5oOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6a2V5Z2VuTWVudUl0ZW01MTIpOgorICAgICAgICAoV2ViQ29yZTo6
a2V5Z2VuTWVudUl0ZW0xMDI0KToKKyAgICAgICAgKFdlYkNvcmU6OmtleWdlbk1lbnVJdGVtMjA0
OCk6CisgICAgICAgIChXZWJDb3JlOjprZXlnZW5LZXljaGFpbkl0ZW1OYW1lKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmg6CisgICAgICAgIEFkZGVkIHN0cmluZ3MgdXNl
ZCBieSBrZXlnZW4gZWxlbWVudCwgbm93IHRoYXQgdGhlIGNvZGUgdXNpbmcgdGhlbSBpcyBpbiBX
ZWJDb3JlLgorCisgICAgICAgICogcGxhdGZvcm0vbWFjL1NTTEtleUdlbmVyYXRvck1hYy5jcHA6
IENvcGllZCBmcm9tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TU0xLZXlHZW5lcmF0b3JN
YWMubW0uCisgICAgICAgIChXZWJDb3JlOjpnZXRTdXBwb3J0ZWRLZXlTaXplcyk6CisgICAgICAg
IChXZWJDb3JlOjpzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcpOgorICAgICAgICBN
b3ZlZCB0aGUgY29kZSBmcm9tIFdlYktpdC4gVGhlcmUgaXMgbmV2ZXIgYW55IG5lZWQgdG8gcHJv
dmlkZSBpbXBsZW1lbnRhdGlvbiBhdCBydW50aW1lLAorICAgICAgICBsaWtlIG9sZCBjb2RlIHdh
cyBkb2luZy4KKworICAgICAgICAqIHBsYXRmb3JtL3dpbi9TU0xLZXlHZW5lcmF0b3JXaW4uY3Bw
OiAoV2ViQ29yZTo6V2ViQ29yZTo6Z2V0U3VwcG9ydGVkS2V5U2l6ZXMpOgorICAgICAgICBBZGRl
ZCBhIEZJWE1FIGFib3V0IGxvY2FsaXphdGlvbi4gTm90ZSB0aGF0IFNhZmFyaSBmb3IgV2luZG93
cyBkb2Vzbid0IHN1cHBvcnQga2V5Z2VuLgorCiAyMDExLTAzLTA4ICBMZXZpIFdlaW50cmF1YiAg
PGxldml3QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBSeW9zdWtlIE5pd2Eu
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gODEwNjMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMTA1LDcgKzEwNSw2IEBACiAu
b2JqY19jbGFzc19uYW1lX0RPTVRyZWVXYWxrZXIKIC5vYmpjX2NsYXNzX25hbWVfRE9NVUlFdmVu
dAogLm9iamNfY2xhc3NfbmFtZV9ET01XaGVlbEV2ZW50Ci0ub2JqY19jbGFzc19uYW1lX1dlYkNv
cmVLZXlHZW5lcmF0b3IKIC5vYmpjX2NsYXNzX25hbWVfV2ViQ29yZVZpZXdGYWN0b3J5CiAub2Jq
Y19jbGFzc19uYW1lX1dlYkZvbnRDYWNoZQogLm9iamNfY2xhc3NfbmFtZV9XZWJTY3JpcHRPYmpl
Y3QKQEAgLTEzNTUsNiArMTM1NCw3IEBAIF93a1NldFVwRm9udENhY2hlCiBfd2tTaWduYWxDRlJl
YWRTdHJlYW1FbmQKIF93a1NpZ25hbENGUmVhZFN0cmVhbUVycm9yCiBfd2tTaWduYWxDRlJlYWRT
dHJlYW1IYXNCeXRlcworX3drU2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nCiAKICNp
ZiBFTkFCTEUoRE9NX1NUT1JBR0UpCiBfX1pON1dlYkNvcmUxNFN0b3JhZ2VUcmFja2VyMTdpbml0
aWFsaXplVHJhY2tlckVSS04zV1RGNlN0cmluZ0UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0VuZ2xp
c2gubHByb2ovTG9jYWxpemFibGUuc3RyaW5ncwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9FbmdsaXNoLmxwcm9qL0xvY2FsaXphYmxlLnN0cmluZ3MJKHJldmlzaW9uIDgxMDYzKQorKysg
U291cmNlL1dlYkNvcmUvRW5nbGlzaC5scHJvai9Mb2NhbGl6YWJsZS5zdHJpbmdzCSh3b3JraW5n
IGNvcHkpCkBAIC0xODEsOSArMTgxLDEyIEBACiAALwAqACAAVQBuAGQAbwAgAGEAYwB0AGkAbwBu
ACAAbgBhAG0AZQAgACoALwAKIAAiAEoAdQBzAHQAaQBmAHkAIAAoAFUAbgBkAG8AIABhAGMAdABp
AG8AbgAgAG4AYQBtAGUAKQAiACAAPQAgACIASgB1AHMAdABpAGYAeQAiADsACiAACi0ALwAqACAA
bgBhAG0AZQAgAG8AZgAgAGsAZQB5AGMAaABhAGkAbgAgAGsAZQB5ACAAZwBlAG4AZQByAGEAdABl
AGQAIABiAHkAIAB0AGgAZQAgAEsARQBZAEcARQBOACAAdABhAGcAIAAqAC8ACisALwAqACAATgBh
AG0AZQAgAG8AZgAgAGsAZQB5AGMAaABhAGkAbgAgAGsAZQB5ACAAZwBlAG4AZQByAGEAdABlAGQA
IABiAHkAIAB0AGgAZQAgAEsARQBZAEcARQBOACAAdABhAGcAIAAqAC8ACiAAIgBLAGUAeQAgAGYA
cgBvAG0AIAAlAEAAIgAgAD0AIAAiAEsAZQB5ACAAZgByAG8AbQAgACUAQAAiADsACiAACisALwAq
ACAATgBhAG0AZQAgAG8AZgAgAGsAZQB5AGMAaABhAGkAbgAgAGsAZQB5ACAAZwBlAG4AZQByAGEA
dABlAGQAIABiAHkAIAB0AGgAZQAgAEsARQBZAEcARQBOACAAdABhAGcAIAAqAC8ACisAIgBLAGUA
eQAgAGYAcgBvAG0AIAA8AGgAbwBzAHQAbgBhAG0AZQA+ACIAIAA9ACAAIgBLAGUAeQAgAGYAcgBv
AG0AIAA8AGgAbwBzAHQAbgBhAG0AZQA+ACIAOwAKKwAKIAAvACoAIABMAGUAYQByAG4AIABTAHAA
ZQBsAGwAaQBuAGcAIABjAG8AbgB0AGUAeAB0ACAAbQBlAG4AdQAgAGkAdABlAG0AIAAqAC8ACiAA
IgBMAGUAYQByAG4AIABTAHAAZQBsAGwAaQBuAGcAIgAgAD0AIAAiAEwAZQBhAHIAbgAgAFMAcABl
AGwAbABpAG4AZwAiADsACiAACkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA4MTA2MykKKysrIFNvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAt
Mjk3Niw3ICsyOTc2LDYgQEAKIAkJOTNGMTk5QjgwODI0NUU1OTAwMUU5QUJDIC8qIFNjcm9sbGJh
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkM3QjJB
RjgwNDUwODI0MTAwQTgwMDBGIC8qIFNjcm9sbGJhci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzRjE5OUJCMDgyNDVFNTkwMDFFOUFCQyAvKiBX
ZWJDb3JlS2V5Ym9hcmRVSU1vZGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJFOTgzRDk1MDUyQTJFMEEwMDg5MkQ4NSAvKiBXZWJDb3JlS2V5Ym9hcmRV
SU1vZGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk5M0YxOTlCRTA4MjQ1RTU5MDAxRTlBQkMgLyogQmxvY2tFeGNlcHRpb25zLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2NUE2NDBGMDA1MzNCQjFGMDA4
NUU3NzcgLyogQmxvY2tFeGNlcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKLQkJOTNGMTk5QzIwODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVL
ZXlHZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDg0QjJCMUY3MDU2QkVGM0EwMEQyQjc3MSAvKiBXZWJDb3JlS2V5R2VuZXJhdG9yLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTNGMTk5REUw
ODI0NUU1OTAwMUU5QUJDIC8qIFBvc2l0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCRTkxRkM4QjA2MTMzNjY2MDA1RTM3OTAgLyogUG9zaXRpb24u
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5M0Yx
OTlFNTA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTENhbnZhc0VsZW1lbnQuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUxRjZBM0Q2MDY2M0JGMDQwMDREMjkx
OSAvKiBIVE1MQ2FudmFzRWxlbWVudC5oICovOyB9OwogCQk5M0YxOTlFNzA4MjQ1RTU5MDAxRTlB
QkMgLyogQ2xpcGJvYXJkTWFjLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyRDkwNjYwQjA2NjVEOTM3MDA2QjZGMUEgLyogQ2xpcGJvYXJkTWFjLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTI5OTIsOCAr
Mjk5MSw3IEBACiAJCTkzRjE5QUJDMDgyNDVFNTkwMDFFOUFCQyAvKiBYTUxEb2N1bWVudFBhcnNl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGNTIz
RDMwOTAyREU0NDc2MDE4NjM1Q0EgLyogWE1MRG9jdW1lbnRQYXJzZXIuY3BwICovOyB9OwogCQk5
M0YxOUFENTA4MjQ1RTU5MDAxRTlBQkMgLyogUmVuZGVyVHJlZUFzVGV4dC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5Mzk1NUE0MjAzRDcyOTMyMDA4
NjM1Q0UgLyogUmVuZGVyVHJlZUFzVGV4dC5jcHAgKi87IH07CiAJCTkzRjE5QUUxMDgyNDVFNTkw
MDFFOUFCQyAvKiBCbG9ja0V4Y2VwdGlvbnMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA2NUY4MDY5NzA1NEQ5Rjg2MDA4QkY3NzYgLyogQmxvY2tFeGNl
cHRpb25zLm1tICovOyB9OwotCQk5M0YxOUFFNTA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtl
eUdlbmVyYXRvci5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gODRCMkIxRjgwNTZCRUYzQTAwRDJCNzcxIC8qIFdlYkNvcmVLZXlHZW5lcmF0b3IubSAqLzsg
fTsKLQkJOTNGMTlBRTYwODI0NUU1OTAwMUU5QUJDIC8qIFNTTEtleUdlbmVyYXRvck1hYy5tbSBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0QjJCMjRGMDU2
QkYxNUYwMEQyQjc3MSAvKiBTU0xLZXlHZW5lcmF0b3JNYWMubW0gKi87IH07CisJCTkzRjE5QUU2
MDgyNDVFNTkwMDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gODRCMkIyNEYwNTZCRjE1RjAwRDJCNzcx
IC8qIFNTTEtleUdlbmVyYXRvck1hYy5jcHAgKi87IH07CiAJCTkzRjE5QUY4MDgyNDVFNTkwMDFF
OUFCQyAvKiBQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCRTkxRkM4QzA2MTMzNjY2MDA1RTM3OTAgLyogUG9zaXRpb24uY3BwICovOyB9
OwogCQk5M0YxOUFGRDA4MjQ1RTU5MDAxRTlBQkMgLyogSFRNTENhbnZhc0VsZW1lbnQuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTFGNkEzRDUwNjYz
QkYwNDAwNEQyOTE5IC8qIEhUTUxDYW52YXNFbGVtZW50LmNwcCAqLzsgfTsKIAkJOTNGMTlBRkYw
ODI0NUU1OTAwMUU5QUJDIC8qIENsaXBib2FyZE1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEOTA2NjBDMDY2NUQ5MzcwMDZCNkYxQSAvKiBDbGlw
Ym9hcmRNYWMubW0gKi87IH07CkBAIC04MzE5LDkgKzgzMTcsNyBAQAogCQk4NEE4MUYzQzBGQzdE
RkYwMDA5NTUzMDAgLyogU291cmNlQWxwaGEuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gU291cmNlQWxwaGEuaDsgcGF0aCA9IGZpbHRlcnMvU291cmNlQWxwaGEuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODRBODFGM0YwRkM3RTAyNzAwOTU1MzAwIC8qIFNvdXJj
ZUdyYXBoaWMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gU291cmNl
R3JhcGhpYy5jcHA7IHBhdGggPSBmaWx0ZXJzL1NvdXJjZUdyYXBoaWMuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk4NEE4MUY0MDBGQzdFMDI3MDA5NTUzMDAgLyogU291cmNlR3Jh
cGhpYy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBTb3VyY2VHcmFwaGljLmg7
IHBhdGggPSBmaWx0ZXJzL1NvdXJjZUdyYXBoaWMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJODRCMkIxRjcwNTZCRUYzQTAwRDJCNzcxIC8qIFdlYkNvcmVLZXlHZW5lcmF0b3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lk
dGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQ29y
ZUtleUdlbmVyYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVz
ZXNUYWJzID0gMDsgfTsKLQkJODRCMkIxRjgwNTZCRUYzQTAwRDJCNzcxIC8qIFdlYkNvcmVLZXlH
ZW5lcmF0b3IubSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAz
MDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpj
OyBwYXRoID0gV2ViQ29yZUtleUdlbmVyYXRvci5tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0
YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKLQkJODRCMkIyNEYwNTZCRjE1RjAwRDJCNzcx
IC8qIFNTTEtleUdlbmVyYXRvck1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNTTEtleUdlbmVyYXRvck1hYy5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFicyA9IDA7IH07CisJCTg0QjJC
MjRGMDU2QkYxNUYwMEQyQjc3MSAvKiBTU0xLZXlHZW5lcmF0b3JNYWMuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1NMS2V5R2VuZXJh
dG9yTWFjLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07CiAJCTg0QjZCOTc1MTIwRjEzRTUwMEI4RUZBRiAvKiBTVkdQYXRoU2VnTGlzdFNv
dXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdQYXRoU2Vn
TGlzdFNvdXJjZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTg0QjZCOTc2MTIw
RjEzRTUwMEI4RUZBRiAvKiBTVkdQYXRoU2VnTGlzdFNvdXJjZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBTVkdQYXRoU2VnTGlzdFNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk4NEM1QjJGODEyMTZEQzgxMDA4OEI1M0EgLyogU1ZHUGF0aFRyYXZlcnNh
bFN0YXRlQnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
VkdQYXRoVHJhdmVyc2FsU3RhdGVCdWlsZGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKQEAgLTE0MDY1LDE0ICsxNDA2MSwxMiBAQAogCQkJCTkzMzA5RTlGMDk5RUI3OEMwMDU2RTU4
MSAvKiBTaGFyZWRUaW1lck1hYy5tbSAqLywKIAkJCQkwQTQ4NDQ5ODBDQTQ0Q0IyMDBCN0JENDgg
LyogU29mdExpbmtpbmcuaCAqLywKIAkJCQk0QjMwNDNDODBBRTAzNzFEMDBBODI2NDcgLyogU291
bmRNYWMubW0gKi8sCi0JCQkJODRCMkIyNEYwNTZCRjE1RjAwRDJCNzcxIC8qIFNTTEtleUdlbmVy
YXRvck1hYy5tbSAqLywKKwkJCQk4NEIyQjI0RjA1NkJGMTVGMDBEMkI3NzEgLyogU1NMS2V5R2Vu
ZXJhdG9yTWFjLmNwcCAqLywKIAkJCQk5M0IyRDgxNzBGOTkyMEVFMDA2QUU2QjIgLyogU3VkZGVu
VGVybWluYXRpb24ubW0gKi8sCiAJCQkJNjU4MkExNTUwOTk5OUQ2RDAwQkVFQjZEIC8qIFN5c3Rl
bVRpbWVNYWMuY3BwICovLAogCQkJCUJDRTY1OUU1MEVBOTJGQjIwMDdFNDUzMyAvKiBUaGVtZU1h
Yy5oICovLAogCQkJCUJDRTY1OUU4MEVBOTJGRkEwMDdFNDUzMyAvKiBUaGVtZU1hYy5tbSAqLywK
IAkJCQk1MURGNkQ3RjBCOTJBMThFMDBDMkRDODUgLyogVGhyZWFkQ2hlY2subW0gKi8sCi0JCQkJ
ODRCMkIxRjcwNTZCRUYzQTAwRDJCNzcxIC8qIFdlYkNvcmVLZXlHZW5lcmF0b3IuaCAqLywKLQkJ
CQk4NEIyQjFGODA1NkJFRjNBMDBEMkI3NzEgLyogV2ViQ29yZUtleUdlbmVyYXRvci5tICovLAog
CQkJCTkzNEQ5QkE2MEI4QzExNzUwMDdCNDJBOSAvKiBXZWJDb3JlTlNTdHJpbmdFeHRyYXMuaCAq
LywKIAkJCQk5MzREOUJBNDBCOEMxMTZCMDA3QjQyQTkgLyogV2ViQ29yZU5TU3RyaW5nRXh0cmFz
Lm1tICovLAogCQkJCUREMDVGRTBCMEI4QkEzQzYwMDlBQ0RGRSAvKiBXZWJDb3JlT2JqQ0V4dHJh
cy5oICovLApAQCAtMjI1MjMsNyArMjI1MTcsNiBAQAogCQkJCTkzRjE5OUE4MDgyNDVFNTkwMDFF
OUFCQyAvKiBXZWJDb3JlRnJhbWVWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzUzRDkxMTEx
NDMxMENDMDAwRDgxN0UgLyogV2ViQ29yZUpTQ2xpZW50RGF0YS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTNGMTk5QkIwODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVLZXlib2FyZFVJTW9kZS5oIGlu
IEhlYWRlcnMgKi8sCi0JCQkJOTNGMTk5QzIwODI0NUU1OTAwMUU5QUJDIC8qIFdlYkNvcmVLZXlH
ZW5lcmF0b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNEQ5QkE3MEI4QzExNzUwMDdCNDJBOSAv
KiBXZWJDb3JlTlNTdHJpbmdFeHRyYXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUREMDVGRTBEMEI4
QkEzQzYwMDlBQ0RGRSAvKiBXZWJDb3JlT2JqQ0V4dHJhcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
RURFQzk4MDMwQUVEN0UxNzAwNTkxMzdGIC8qIFdlYkNvcmVQcmVmaXguaCBpbiBIZWFkZXJzICov
LApAQCAtMjQ5NDEsNyArMjQ5MzQsNyBAQAogCQkJCUI1QzExMjNCMTAyQjZDNDYwMDA5NjU3OCAv
KiBTUUxUcmFuc2FjdGlvbkNvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUI1MjND
RjA5MTE4MjY3NTQwMEVCQjI5QyAvKiBTUUxUcmFuc2FjdGlvblN5bmMuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUEyRTZFNTkwQ0M1NTIxMzAwNEEyMDYyIC8qIFNRTFZhbHVlLmNwcCBpbiBTb3Vy
Y2VzICovLAotCQkJCTkzRjE5QUU2MDgyNDVFNTkwMDFFOUFCQyAvKiBTU0xLZXlHZW5lcmF0b3JN
YWMubW0gaW4gU291cmNlcyAqLywKKwkJCQk5M0YxOUFFNjA4MjQ1RTU5MDAxRTlBQkMgLyogU1NM
S2V5R2VuZXJhdG9yTWFjLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNFQTM5NDlDMTFENDVDREEw
MDMwOTRDRiAvKiBTdGF0aWNIYXNoU2V0Tm9kZUxpc3QuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QkM3RkE2MkUwRDFGMEVGRjAwREIyMkE5IC8qIFN0YXRpY05vZGVMaXN0LmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE1QUZCMzRGMTE1MTUxQTcwMEIwNDVDQiAvKiBTdGVwUmFuZ2UuY3BwIGluIFNv
dXJjZXMgKi8sCkBAIC0yNTIwNCw3ICsyNTE5Nyw2IEBACiAJCQkJOTMzMDlFMUQwOTlFNjQ5MjAw
NTZFNTgxIC8qIHZpc2libGVfdW5pdHMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTMzMDlFMUYw
OTlFNjQ5MjAwNTZFNTgxIC8qIFZpc2libGVQb3NpdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBODgzREYyNzBGM0QwNDVEMDBGMTlCRjYgLyogVmlzaWJsZVNlbGVjdGlvbi5jcHAgaW4gU291
cmNlcyAqLywKLQkJCQk5M0YxOUFFNTA4MjQ1RTU5MDAxRTlBQkMgLyogV2ViQ29yZUtleUdlbmVy
YXRvci5tIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM0RDlCQTUwQjhDMTE2QjAwN0I0MkE5IC8qIFdl
YkNvcmVOU1N0cmluZ0V4dHJhcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCUI1MEY1QjgxMEU5NkNE
OTkwMEFENzFBNiAvKiBXZWJDb3JlT2JqQ0V4dHJhcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkz
RUIxNjk1MDlGODgwQjAwMDkxRjhGRiAvKiBXZWJDb3JlU3lzdGVtSW50ZXJmYWNlLm1tIGluIFNv
dXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJh
dGVneS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlv
blN0cmF0ZWd5LmgJKHJldmlzaW9uIDgxMDYzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9jYWxpemF0aW9uU3RyYXRlZ3kuaAkod29ya2luZyBjb3B5KQpAQCAtMTY3LDYgKzE2NywxMyBA
QCBwdWJsaWM6ICAgIAogICAgIHZpcnR1YWwgU3RyaW5nIGFsbEZpbGVzVGV4dCgpID0gMDsKICNl
bmRpZgogCisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZpcnR1YWwgU3RyaW5nIGtleWdlbk1lbnVJ
dGVtNTEyKCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGtleWdlbk1lbnVJdGVtMTAyNCgpID0g
MDsKKyAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5NZW51SXRlbTIwNDgoKSA9IDA7CisgICAgdmly
dHVhbCBTdHJpbmcga2V5Z2VuS2V5Y2hhaW5JdGVtTmFtZShjb25zdCBTdHJpbmcmIGhvc3QpID0g
MDsKKyNlbmRpZgorCiAgICAgdmlydHVhbCBTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBTdHJpbmcm
IGZpbGVuYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSA9IDA7CiAKICAgICB2aXJ0dWFsIFN0cmlu
ZyBtZWRpYUVsZW1lbnRMb2FkaW5nU3RhdGVUZXh0KCkgPSAwOwpJbmRleDogU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAJKHJldmlzaW9uIDgxMDYzKQorKysg
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTU2OSw2ICs1NjksMjkgQEAgU3RyaW5nIGFsbEZpbGVzVGV4dCgpCiB9CiAjZW5kaWYK
IAorI2lmIFBMQVRGT1JNKE1BQykKK1N0cmluZyBrZXlnZW5NZW51SXRlbTUxMigpCit7CisgICAg
cmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT5rZXln
ZW5NZW51SXRlbTUxMigpOworfQorCitTdHJpbmcga2V5Z2VuTWVudUl0ZW0xMDI0KCkKK3sKKyAg
ICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmtl
eWdlbk1lbnVJdGVtMTAyNCgpOworfQorCitTdHJpbmcga2V5Z2VuTWVudUl0ZW0yMDQ4KCkKK3sK
KyAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCkt
PmtleWdlbk1lbnVJdGVtMjA0OCgpOworfQorCitTdHJpbmcga2V5Z2VuS2V5Y2hhaW5JdGVtTmFt
ZShjb25zdCBTdHJpbmcmIGhvc3QpCit7CisgICAgcmV0dXJuIHBsYXRmb3JtU3RyYXRlZ2llcygp
LT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT5rZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGhvc3QpOwor
fQorCisjZW5kaWYKKwogU3RyaW5nIGltYWdlVGl0bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwg
Y29uc3QgSW50U2l6ZSYgc2l6ZSkKIHsKICAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVnaWVzKCkt
PmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmltYWdlVGl0bGUoZmlsZW5hbWUsIHNpemUpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAkocmV2aXNpb24g
ODEwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTE2Myw2ICsxNjMsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IFN0cmluZyBhbGxGaWxlc1RleHQoKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0oTUFDKQorICAg
IFN0cmluZyBrZXlnZW5NZW51SXRlbTUxMigpOworICAgIFN0cmluZyBrZXlnZW5NZW51SXRlbTEw
MjQoKTsKKyAgICBTdHJpbmcga2V5Z2VuTWVudUl0ZW0yMDQ4KCk7CisgICAgU3RyaW5nIGtleWdl
bktleWNoYWluSXRlbU5hbWUoY29uc3QgU3RyaW5nJiBob3N0KTsKKyNlbmRpZgorCiAgICAgU3Ry
aW5nIGltYWdlVGl0bGUoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgSW50U2l6ZSYgc2l6
ZSk7CiAKICAgICBTdHJpbmcgbWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4dCgpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NTTEtleUdlbmVyYXRvck1hYy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1NTTEtleUdlbmVyYXRvck1hYy5j
cHAJKHJldmlzaW9uIDgxMDYzKQkoZnJvbSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU1NM
S2V5R2VuZXJhdG9yTWFjLm1tOjgxMDYzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1NTTEtleUdlbmVyYXRvck1hYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuIAorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiU1NMS2V5R2VuZXJh
dG9yLmgiCisKKyNpbXBvcnQgIktVUkwuaCIKKyNpbXBvcnQgIldlYkNvcmVLZXlHZW5lcmF0b3Iu
aCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIGdldFN1cHBvcnRlZEtleVNpemVzKFZl
Y3RvcjxTdHJpbmc+JiBzdXBwb3J0ZWRLZXlTaXplcykKK3sgCisgICAgTlNFbnVtZXJhdG9yICpl
bnVtZXJhdG9yID0gW1tbV2ViQ29yZUtleUdlbmVyYXRvciBzaGFyZWRHZW5lcmF0b3JdIHN0cmVu
Z3RoTWVudUl0ZW1UaXRsZXNdIG9iamVjdEVudW1lcmF0b3JdOworICAgIE5TU3RyaW5nICpzdHJp
bmc7CisgICAgd2hpbGUgKChzdHJpbmcgPSBbZW51bWVyYXRvciBuZXh0T2JqZWN0XSkgIT0gbmls
KQorICAgICAgICBzdXBwb3J0ZWRLZXlTaXplcy5hcHBlbmQoc3RyaW5nKTsKK30KKworU3RyaW5n
IHNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyh1bnNpZ25lZCBrZXlTaXplSW5kZXgs
IGNvbnN0IFN0cmluZyYgY2hhbGxlbmdlU3RyaW5nLCBjb25zdCBLVVJMJiB1cmwpCit7ICAgCisg
ICAgcmV0dXJuIFtbV2ViQ29yZUtleUdlbmVyYXRvciBzaGFyZWRHZW5lcmF0b3JdIHNpZ25lZFB1
YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZ1dpdGhTdHJlbmd0aEluZGV4OmtleVNpemVJbmRleCAK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6Y2hhbGxlbmdlU3Ry
aW5nCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlVVJMOnVybF07Cit9
CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TU0xLZXlHZW5lcmF0b3JN
YWMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TU0xLZXlH
ZW5lcmF0b3JNYWMuY3BwCShyZXZpc2lvbiA4MTA2MykKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9TU0xLZXlHZW5lcmF0b3JNYWMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEs
NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDUsIDIwMDgsIDIwMTEgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCkBAIC0xMCw0MCArMTAsNjEgQEAKICAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKICAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCiAgKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJ
TkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9G
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICog
UFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpbXBv
cnQgImNvbmZpZy5oIgotI2ltcG9ydCAiU1NMS2V5R2VuZXJhdG9yLmgiCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiU1NMS2V5R2VuZXJhdG9yLmgiCiAKLSNpbXBvcnQgIktVUkwuaCIK
LSNpbXBvcnQgIldlYkNvcmVLZXlHZW5lcmF0b3IuaCIKKyNpbmNsdWRlICJLVVJMLmgiCisjaW5j
bHVkZSAiTG9jYWxpemVkU3RyaW5ncy5oIgorI2luY2x1ZGUgIldlYkNvcmVTeXN0ZW1JbnRlcmZh
Y2UuaCIKKyNpbmNsdWRlIDx3dGYvUmV0YWluUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogdm9pZCBnZXRTdXBwb3J0ZWRLZXlTaXplcyhWZWN0b3I8U3RyaW5nPiYgc3VwcG9ydGVkS2V5
U2l6ZXMpCi17IAotICAgIE5TRW51bWVyYXRvciAqZW51bWVyYXRvciA9IFtbW1dlYkNvcmVLZXlH
ZW5lcmF0b3Igc2hhcmVkR2VuZXJhdG9yXSBzdHJlbmd0aE1lbnVJdGVtVGl0bGVzXSBvYmplY3RF
bnVtZXJhdG9yXTsKLSAgICBOU1N0cmluZyAqc3RyaW5nOwotICAgIHdoaWxlICgoc3RyaW5nID0g
W2VudW1lcmF0b3IgbmV4dE9iamVjdF0pICE9IG5pbCkKLSAgICAgICAgc3VwcG9ydGVkS2V5U2l6
ZXMuYXBwZW5kKHN0cmluZyk7Cit7CisgICAgQVNTRVJUKHN1cHBvcnRlZEtleVNpemVzLmlzRW1w
dHkoKSk7CisgICAgc3VwcG9ydGVkS2V5U2l6ZXMuYXBwZW5kKGtleWdlbk1lbnVJdGVtMjA0OCgp
KTsKKyAgICBzdXBwb3J0ZWRLZXlTaXplcy5hcHBlbmQoa2V5Z2VuTWVudUl0ZW0xMDI0KCkpOwor
ICAgIHN1cHBvcnRlZEtleVNpemVzLmFwcGVuZChrZXlnZW5NZW51SXRlbTUxMigpKTsKIH0KIAog
U3RyaW5nIHNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyh1bnNpZ25lZCBrZXlTaXpl
SW5kZXgsIGNvbnN0IFN0cmluZyYgY2hhbGxlbmdlU3RyaW5nLCBjb25zdCBLVVJMJiB1cmwpCiB7
ICAgCi0gICAgcmV0dXJuIFtbV2ViQ29yZUtleUdlbmVyYXRvciBzaGFyZWRHZW5lcmF0b3JdIHNp
Z25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZ1dpdGhTdHJlbmd0aEluZGV4OmtleVNpemVJ
bmRleCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGFsbGVuZ2U6Y2hhbGxl
bmdlU3RyaW5nCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdlVVJMOnVy
bF07CisgICAgLy8gVGhpcyBzd2l0Y2ggc3RhdGVtZW50IG11c3QgYWx3YXlzIGJlIHN5bmNlZCB3
aXRoIHRoZSBVSSBzdHJpbmdzIHJldHVybmVkIGJ5IGdldFN1cHBvcnRlZEtleVNpemVzLgorICAg
IFVJbnQzMiBrZXlTaXplOworICAgIHN3aXRjaCAoa2V5U2l6ZUluZGV4KSB7CisgICAgICAgIGNh
c2UgMDoKKyAgICAgICAgICAgIGtleVNpemUgPSAyMDQ4OworICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgIGNhc2UgMToKKyAgICAgICAgICAgIGtleVNpemUgPSAxMDI0OworICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgIGNhc2UgMjoKKyAgICAgICAgICAgIGtleVNpemUgPSA1MTI7CisgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIH0KKworICAgIFJl
dGFpblB0cjxDRlN0cmluZ1JlZj4gY2hhbGxlbmdlU3RyaW5nQ0YoQWRvcHRDRiwgY2hhbGxlbmdl
U3RyaW5nLmNyZWF0ZUNGU3RyaW5nKCkpOworICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4ga2V5
RGVzY3JpcHRpb24oQWRvcHRDRiwga2V5Z2VuS2V5Y2hhaW5JdGVtTmFtZSh1cmwuaG9zdCgpKS5j
cmVhdGVDRlN0cmluZygpKTsKKyAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHJlc3VsdChBZG9w
dENGLCB3a1NpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZyhrZXlTaXplLCBjaGFsbGVu
Z2VTdHJpbmdDRi5nZXQoKSwga2V5RGVzY3JpcHRpb24uZ2V0KCkpKTsKKworICAgIHJldHVybiBy
ZXN1bHQuZ2V0KCk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9T
U0xLZXlHZW5lcmF0b3JNYWMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1NTTEtleUdlbmVyYXRvck1hYy5tbQkocmV2aXNpb24gODEwNjMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvU1NMS2V5R2VuZXJhdG9yTWFjLm1tCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDQ5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDggQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
Ci0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAq
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0g
KiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW1wb3J0ICJjb25maWcuaCIKLSNp
bXBvcnQgIlNTTEtleUdlbmVyYXRvci5oIgotCi0jaW1wb3J0ICJLVVJMLmgiCi0jaW1wb3J0ICJX
ZWJDb3JlS2V5R2VuZXJhdG9yLmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotdm9pZCBnZXRT
dXBwb3J0ZWRLZXlTaXplcyhWZWN0b3I8U3RyaW5nPiYgc3VwcG9ydGVkS2V5U2l6ZXMpCi17IAot
ICAgIE5TRW51bWVyYXRvciAqZW51bWVyYXRvciA9IFtbW1dlYkNvcmVLZXlHZW5lcmF0b3Igc2hh
cmVkR2VuZXJhdG9yXSBzdHJlbmd0aE1lbnVJdGVtVGl0bGVzXSBvYmplY3RFbnVtZXJhdG9yXTsK
LSAgICBOU1N0cmluZyAqc3RyaW5nOwotICAgIHdoaWxlICgoc3RyaW5nID0gW2VudW1lcmF0b3Ig
bmV4dE9iamVjdF0pICE9IG5pbCkKLSAgICAgICAgc3VwcG9ydGVkS2V5U2l6ZXMuYXBwZW5kKHN0
cmluZyk7Ci19Ci0KLVN0cmluZyBzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcodW5z
aWduZWQga2V5U2l6ZUluZGV4LCBjb25zdCBTdHJpbmcmIGNoYWxsZW5nZVN0cmluZywgY29uc3Qg
S1VSTCYgdXJsKQoteyAgIAotICAgIHJldHVybiBbW1dlYkNvcmVLZXlHZW5lcmF0b3Igc2hhcmVk
R2VuZXJhdG9yXSBzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmdXaXRoU3RyZW5ndGhJ
bmRleDprZXlTaXplSW5kZXggCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hh
bGxlbmdlOmNoYWxsZW5nZVN0cmluZwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcGFnZVVSTDp1cmxdOwotfQotCi19CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvV2ViQ29yZUtleUdlbmVyYXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9XZWJDb3JlS2V5R2VuZXJhdG9yLmgJKHJldmlzaW9uIDgxMDYzKQorKysgU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVLZXlHZW5lcmF0b3IuaAkod29ya2luZyBj
b3B5KQpAQCAtMSwzMiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDAzIEFwcGxlIENv
bXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgotICogQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi1AaW50ZXJmYWNlIFdl
YkNvcmVLZXlHZW5lcmF0b3IgOiBOU09iamVjdAotCi0rIChXZWJDb3JlS2V5R2VuZXJhdG9yICop
c2hhcmVkR2VuZXJhdG9yOwotLSAoTlNBcnJheSAqKXN0cmVuZ3RoTWVudUl0ZW1UaXRsZXM7Ci0t
IChOU1N0cmluZyAqKXNpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZ1dpdGhTdHJlbmd0
aEluZGV4Oih1bnNpZ25lZClpbmRleCBjaGFsbGVuZ2U6KE5TU3RyaW5nICopY2hhbGxlbmdlIHBh
Z2VVUkw6KE5TVVJMICopcGFnZVVSTDsKLQotQGVuZApJbmRleDogU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1dlYkNvcmVLZXlHZW5lcmF0b3IubQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZUtleUdlbmVyYXRvci5tCShyZXZpc2lvbiA4MTA2MykK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlS2V5R2VuZXJhdG9yLm0JKHdv
cmtpbmcgY29weSkKQEAgLTEsNjMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCi0gKiBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0g
KiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbXBvcnQgImNvbmZpZy5o
IgotI2ltcG9ydCAiV2ViQ29yZUtleUdlbmVyYXRvci5oIgotCi0jaW1wb3J0IDx3dGYvQXNzZXJ0
aW9ucy5oPgotI2ltcG9ydCA8d3RmL1VudXNlZFBhcmFtLmg+Ci0KLXN0YXRpYyBXZWJDb3JlS2V5
R2VuZXJhdG9yICpzaGFyZWRHZW5lcmF0b3I7Ci0KLUBpbXBsZW1lbnRhdGlvbiBXZWJDb3JlS2V5
R2VuZXJhdG9yCi0KLSsgKFdlYkNvcmVLZXlHZW5lcmF0b3IgKilzaGFyZWRHZW5lcmF0b3IKLXsK
LSAgICByZXR1cm4gc2hhcmVkR2VuZXJhdG9yOwotfQotCi0tIGluaXQKLXsKLSAgICBBU1NFUlQo
IXNoYXJlZEdlbmVyYXRvcik7Ci0gICAgW3N1cGVyIGluaXRdOwotICAgIHNoYXJlZEdlbmVyYXRv
ciA9IFtzZWxmIHJldGFpbl07Ci0gICAgcmV0dXJuIHNlbGY7Ci19Ci0KLS0gKE5TQXJyYXkgKilz
dHJlbmd0aE1lbnVJdGVtVGl0bGVzCi17Ci0gICAgcmV0dXJuIG5pbDsKLX0KLQotLSAoTlNTdHJp
bmcgKilzaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmdXaXRoU3RyZW5ndGhJbmRleDoo
dW5zaWduZWQpdW51c2VkSW5kZXggY2hhbGxlbmdlOihOU1N0cmluZyAqKXVudXNlZENoYWxsZW5n
ZSBwYWdlVVJMOihOU1VSTCAqKXVudXNlZFBhZ2VVUkwKLXsKLSAgICBVTlVTRURfUEFSQU0odW51
c2VkSW5kZXgpOwotICAgIFVOVVNFRF9QQVJBTSh1bnVzZWRDaGFsbGVuZ2UpOwotICAgIFVOVVNF
RF9QQVJBTSh1bnVzZWRQYWdlVVJMKTsKLQotICAgIHJldHVybiBuaWw7Ci19Ci0KLUBlbmQKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9XZWJDb3JlU3lzdGVtSW50ZXJmYWNlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1dlYkNvcmVTeXN0ZW1J
bnRlcmZhY2UuaAkocmV2aXNpb24gODEwNjMpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsNiArMTE3
LDcgQEAgZXh0ZXJuIEJPT0wgKCp3a0dldEdseXBoVHJhbnNmb3JtZWRBZHZhbgogZXh0ZXJuIHZv
aWQgKCp3a0RyYXdNZWRpYVNsaWRlclRyYWNrKShpbnQgdGhlbWVTdHlsZSwgQ0dDb250ZXh0UmVm
IGNvbnRleHQsIENHUmVjdCByZWN0LCBmbG9hdCB0aW1lTG9hZGVkLCBmbG9hdCBjdXJyZW50VGlt
ZSwgCiAgICAgZmxvYXQgZHVyYXRpb24sIHVuc2lnbmVkIHN0YXRlKTsKIGV4dGVybiB2b2lkICgq
d2tEcmF3TWVkaWFVSVBhcnQpKGludCBwYXJ0LCBpbnQgdGhlbWVTdHlsZSwgQ0dDb250ZXh0UmVm
IGNvbnRleHQsIENHUmVjdCByZWN0LCB1bnNpZ25lZCBzdGF0ZSk7CitleHRlcm4gQ0ZTdHJpbmdS
ZWYgKCp3a1NpZ25lZFB1YmxpY0tleUFuZENoYWxsZW5nZVN0cmluZykodW5zaWduZWQga2V5U2l6
ZSwgQ0ZTdHJpbmdSZWYgY2hhbGxlbmdlLCBDRlN0cmluZ1JlZiBrZXlEZXNjcmlwdGlvbik7CiBl
eHRlcm4gTlNTdHJpbmcqICgqd2tHZXRQcmVmZXJyZWRFeHRlbnNpb25Gb3JNSU1FVHlwZSkoTlNT
dHJpbmcqKTsKIGV4dGVybiBOU0FycmF5KiAoKndrR2V0RXh0ZW5zaW9uc0Zvck1JTUVUeXBlKShO
U1N0cmluZyopOwogZXh0ZXJuIE5TU3RyaW5nKiAoKndrR2V0TUlNRVR5cGVGb3JFeHRlbnNpb24p
KE5TU3RyaW5nKik7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5
c3RlbUludGVyZmFjZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQkocmV2aXNpb24gODEwNjMpCisrKyBTb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvV2ViQ29yZVN5c3RlbUludGVyZmFjZS5tbQkod29ya2luZyBj
b3B5KQpAQCAtNDgsNiArNDgsNyBAQCB2b2lkICgqd2tEcmF3TWVkaWFVSVBhcnQpKGludCBwYXJ0
LCBpbnQgCiB2b2lkICgqd2tNZWFzdXJlTWVkaWFVSVBhcnQpKGludCBwYXJ0LCBpbnQgdGhlbWVT
dHlsZSwgQ0dSZWN0ICpib3VuZHMsIENHU2l6ZSAqbmF0dXJhbFNpemUpOwogQk9PTCAoKndrTWVk
aWFDb250cm9sbGVyVGhlbWVBdmFpbGFibGUpKGludCB0aGVtZVN0eWxlKTsKIE5TU3RyaW5nKiAo
KndrR2V0UHJlZmVycmVkRXh0ZW5zaW9uRm9yTUlNRVR5cGUpKE5TU3RyaW5nKik7CitDRlN0cmlu
Z1JlZiAoKndrU2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5nKSh1bnNpZ25lZCBrZXlT
aXplLCBDRlN0cmluZ1JlZiBjaGFsbGVuZ2UsIENGU3RyaW5nUmVmIGtleURlc2NyaXB0aW9uKTsK
IE5TQXJyYXkqICgqd2tHZXRFeHRlbnNpb25zRm9yTUlNRVR5cGUpKE5TU3RyaW5nKik7CiBOU1N0
cmluZyogKCp3a0dldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKShOU1N0cmluZyopOwogTlNUaW1lSW50
ZXJ2YWwgKCp3a0dldE5TVVJMUmVzcG9uc2VDYWxjdWxhdGVkRXhwaXJhdGlvbikoTlNVUkxSZXNw
b25zZSAqcmVzcG9uc2UpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd2luL1NTTEtl
eUdlbmVyYXRvcldpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
d2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAJKHJldmlzaW9uIDgxMDYzKQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vd2luL1NTTEtleUdlbmVyYXRvcldpbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDYgKzMwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIFdlYkNvcmU6Omdl
dFN1cHBvcnRlZEtleVNpemVzKFZlY3RvcjxTdHJpbmc+JiB2KQogeworICAgIC8vIEZJWE1FOiBT
dHJpbmdzIHNob3VsZCBiZSBsb2NhbGl6YWJsZS4KICAgICB2LmFwcGVuZCgiSGlnaCBHcmFkZSIp
OwogICAgIHYuYXBwZW5kKCJNZWRpdW0gR3JhZGUiKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlz
aW9uIDgxMTY1KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMTEtMDMtMTUgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBs
ZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
UkVHUkVTU0lPTiAoV2ViS2l0Mik6IGtleWdlbiBlbGVtZW50IGRvZXNuJ3Qgd29yaworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY0MDIKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzkwMDY1NDU+CisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgQWRkZWQgc3Ry
aW5ncyB1c2VkIGJ5IGtleWdlbi4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbTogSW5pdGlhbGl6ZSBhIFdlYkNvcmUgcG9pbnRl
ciB0bworICAgICAgICBhIGZ1bmN0aW9uIHVzZWQgYnkga2V5Z2VuLgorCiAyMDExLTAzLTE1ICBC
ZXRoIERha2luICA8YmRha2luQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1v
biBGcmFzZXIuCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCShyZXZp
c2lvbiA4MTA2MykKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzcxLDYgKzc3MSwz
MCBAQCBTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjphbGxGaWxlc1RlCiAKICNlbmRpZgog
CisjaWYgUExBVEZPUk0oTUFDKQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjprZXln
ZW5NZW51SXRlbTUxMigpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiNTEyIChMb3cgR3JhZGUp
IiwgIk1lbnUgaXRlbSB0aXRsZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7Cit9CisKK1N0cmlu
ZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmtleWdlbk1lbnVJdGVtMTAyNCgpCit7CisgICAgcmV0
dXJuIFVJX1NUUklORygiMTAyNCAoTWVkaXVtIEdyYWRlKSIsICJNZW51IGl0ZW0gdGl0bGUgZm9y
IEtFWUdFTiBwb3AtdXAgbWVudSIpOworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
OjprZXlnZW5NZW51SXRlbTIwNDgoKQoreworICAgIHJldHVybiBVSV9TVFJJTkcoIjIwNDggKEhp
Z2ggR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRsZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7Cit9
CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmtleWdlbktleWNoYWluSXRlbU5hbWUo
Y29uc3QgV1RGOjpTdHJpbmcmIGhvc3QpCit7CisgICAgcmV0dXJuIFVJX1NUUklORygiS2V5IGZy
b20gPGhvc3RuYW1lPiIsICJOYW1lIG9mIGtleWNoYWluIGtleSBnZW5lcmF0ZWQgYnkgdGhlIEtF
WUdFTiB0YWciKS5yZXBsYWNlKCI8aG9zdG5hbWU+IiwgaG9zdCk7Cit9CisKKyNlbmRpZgorCiBT
dHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjppbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmls
ZW5hbWUsIGNvbnN0IEludFNpemUmIHNpemUpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgc2hvdWxk
IGZvcm1hdCB0aGUgbnVtYmVycyBjb3JyZWN0bHkuIEluIE1hYyBXZWJLaXQsIHdlIHVzZWQgK1tO
U051bWJlckZvcm1hdHRlciBsb2NhbGl6ZWRTdHJpbmdGcm9tTnVtYmVyOm51bWJlclN0eWxlOl0u
CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHJldmlzaW9uIDgxMDYzKQor
KysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTc4LDYgKzE3OCwxMiBAQCBwcml2YXRlOgog
ICAgIHZpcnR1YWwgU3RyaW5nIHVwbG9hZEZpbGVUZXh0KCk7CiAgICAgdmlydHVhbCBTdHJpbmcg
YWxsRmlsZXNUZXh0KCk7CiAjZW5kaWYKKyNpZiBQTEFURk9STShNQUMpCisgICAgdmlydHVhbCBT
dHJpbmcga2V5Z2VuTWVudUl0ZW01MTIoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5NZW51
SXRlbTEwMjQoKTsKKyAgICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5NZW51SXRlbTIwNDgoKTsKKyAg
ICB2aXJ0dWFsIFN0cmluZyBrZXlnZW5LZXljaGFpbkl0ZW1OYW1lKGNvbnN0IFN0cmluZyYgaG9z
dCk7CisjZW5kaWYKICAgICB2aXJ0dWFsIFN0cmluZyBpbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYg
ZmlsZW5hbWUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpOwogICAgIHZpcnR1YWwgU3Ry
aW5nIG1lZGlhRWxlbWVudExvYWRpbmdTdGF0ZVRleHQoKTsKICAgICB2aXJ0dWFsIFN0cmluZyBt
ZWRpYUVsZW1lbnRMaXZlQnJvYWRjYXN0U3RhdGVUZXh0KCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L21hYy9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9tYWMv
V2ViU3lzdGVtSW50ZXJmYWNlLm1tCShyZXZpc2lvbiA4MTA2MykKKysrIFNvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvbWFjL1dlYlN5c3RlbUludGVyZmFjZS5tbQkod29y
a2luZyBjb3B5KQpAQCAtNTksNiArNTksNyBAQCB2b2lkIEluaXRXZWJDb3JlU3lzdGVtSW50ZXJm
YWNlKHZvaWQpCiAgICAgICAgIElOSVQoR2V0SFRUUFBpcGVsaW5pbmdQcmlvcml0eSk7CiAgICAg
ICAgIElOSVQoR2V0TUlNRVR5cGVGb3JFeHRlbnNpb24pOwogICAgICAgICBJTklUKEdldE5TVVJM
UmVzcG9uc2VMYXN0TW9kaWZpZWREYXRlKTsKKyAgICAgICAgSU5JVChTaWduZWRQdWJsaWNLZXlB
bmRDaGFsbGVuZ2VTdHJpbmcpOwogICAgICAgICBJTklUKEdldFByZWZlcnJlZEV4dGVuc2lvbkZv
ck1JTUVUeXBlKTsKICAgICAgICAgSU5JVChHZXRVc2VyVG9CYXNlQ1RNKTsKICAgICAgICAgSU5J
VChHZXRXaGVlbEV2ZW50RGVsdGFzKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA4MTE2NSkKKysr
IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMTEtMDMtMTUgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lPTiAoV2Vi
S2l0Mik6IGtleWdlbiBlbGVtZW50IGRvZXNuJ3Qgd29yaworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY0MDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzkwMDY1NDU+CisKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajog
UmVuYW1lZCBXZWJLZXlHZW5lcmF0b3IubSB0byB1c2UgT2JqZWN0aXZlIEMrKy4KKwogMjAxMS0w
My0xMSAgQW50b24gRCdBdXJpYSAgPGFkYXVyaWFAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmll
d2VkIGFuZCBsYW5kZWQgYnkgQnJhZHkgRWlkc29uLgpJbmRleDogU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiA4MTA2MykKKysrIFNv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTMwNyw3ICszMDcsNyBAQAogCQk5Mzk4MTExMzA4MjRCRjAxMDA4REYwMzggLyogV2Vi
SGlzdG9yeS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDY1REEyNjA4MDUyQ0MxODcwMEE5N0IzMSAvKiBXZWJIaXN0b3J5Lm1tICovOyB9OwogCQk5Mzk4
MTExNTA4MjRCRjAxMDA4REYwMzggLyogV2ViTlNEYXRhRXh0cmFzLm0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCRUNEMTQyQTA1NjU4MzBBMDA1QkIwOUMg
LyogV2ViTlNEYXRhRXh0cmFzLm0gKi87IH07CiAJCTkzOTgxMTE2MDgyNEJGMDEwMDhERjAzOCAv
KiBXZWJOU0V2ZW50RXh0cmFzLm0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCRTg4N0MwMDA1NkQzQTZFMDA5QkIzRTcgLyogV2ViTlNFdmVudEV4dHJhcy5t
ICovOyB9OwotCQk5Mzk4MTExNzA4MjRCRjAxMDA4REYwMzggLyogV2ViS2V5R2VuZXJhdG9yLm0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDcyM0JFNDA1
NkQ3MTlFMDA0NEJGRUEgLyogV2ViS2V5R2VuZXJhdG9yLm0gKi87IH07CisJCTkzOTgxMTE3MDgy
NEJGMDEwMDhERjAzOCAvKiBXZWJLZXlHZW5lcmF0b3IubW0gaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NDcyM0JFNDA1NkQ3MTlFMDA0NEJGRUEgLyogV2Vi
S2V5R2VuZXJhdG9yLm1tICovOyB9OwogCQk5Mzk4MTExOTA4MjRCRjAxMDA4REYwMzggLyogV2Vi
TlNQcmludE9wZXJhdGlvbkV4dHJhcy5tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRUREMUE1QzcwNUM4Mzk4NzAwOEUzMTUwIC8qIFdlYk5TUHJpbnRPcGVy
YXRpb25FeHRyYXMubSAqLzsgfTsKIAkJOTM5ODExMUEwODI0QkYwMTAwOERGMDM4IC8qIFdlYlJl
c291cmNlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
ODQzMTFBMTMwNUVBQUFGMDAwODhFREE0IC8qIFdlYlJlc291cmNlLm1tICovOyB9OwogCQk5Mzk4
MTExQjA4MjRCRjAxMDA4REYwMzggLyogV2ViRGVmYXVsdEVkaXRpbmdEZWxlZ2F0ZS5tIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkU5NUJFRTUwNUZEMDgw
NTAwNkUxNTEzIC8qIFdlYkRlZmF1bHRFZGl0aW5nRGVsZWdhdGUubSAqLzsgfTsKQEAgLTU5Nyw3
ICs1OTcsNyBAQAogCQk4NDY3Mjc1QzAzNjcxNTg1MDBDQTJBQ0EgLyogV2ViUGx1Z2luQ29udHJv
bGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBp
bmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJQbHVnaW5Db250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRo
ID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk4NDY3Mjc1RDAzNjcxNTg1MDBDQTJBQ0EgLyogV2Vi
UGx1Z2luQ29udHJvbGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSAzMDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlBsdWdpbkNvbnRyb2xsZXIubW07IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwogCQk4NDcyM0JFMzA1
NkQ3MTlFMDA0NEJGRUEgLyogV2ViS2V5R2VuZXJhdG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViS2V5R2VuZXJhdG9yLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OwotCQk4NDcyM0JF
NDA1NkQ3MTlFMDA0NEJGRUEgLyogV2ViS2V5R2VuZXJhdG9yLm0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgaW5kZW50V2lkdGggPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5vYmpjOyBwYXRoID0gV2ViS2V5R2VuZXJhdG9yLm07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMgPSAwOyB9OworCQk4
NDcyM0JFNDA1NkQ3MTlFMDA0NEJGRUEgLyogV2ViS2V5R2VuZXJhdG9yLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGluZGVudFdpZHRoID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJLZXlHZW5l
cmF0b3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IHRhYldpZHRoID0gODsgdXNlc1RhYnMg
PSAwOyB9OwogCQk4NDhERkY4NDAzNjVGRTZBMDBDQTJBQ0EgLyogV2ViUGx1Z2luLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGluZGVudFdpZHRoID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlBsdWdpbi5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsK
IAkJODQ4REZGODUwMzY1RkU2QTAwQ0EyQUNBIC8qIFdlYlBsdWdpbkNvbnRhaW5lci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBpbmRlbnRXaWR0aCA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQbHVnaW5D
b250YWluZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgdGFiV2lkdGggPSA4OyB1c2VzVGFi
cyA9IDA7IH07CiAJCTg0OERGRjg2MDM2NUZFNkEwMENBMkFDQSAvKiBXZWJQbHVnaW5WaWV3RmFj
dG9yeS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBp
bmRlbnRXaWR0aCA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJQbHVnaW5WaWV3RmFjdG9yeS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB0YWJXaWR0
aCA9IDg7IHVzZXNUYWJzID0gMDsgfTsKQEAgLTEzMjUsNyArMTMyNSw3IEBACiAJCQkJOTM0NUQ0
RUEwMzY1QzVCMjAwODYzNUNFIC8qIFdlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5lbC5oICovLAog
CQkJCTkzNDVENEVCMDM2NUM1QjIwMDg2MzVDRSAvKiBXZWJKYXZhU2NyaXB0VGV4dElucHV0UGFu
ZWwubSAqLywKIAkJCQk4NDcyM0JFMzA1NkQ3MTlFMDA0NEJGRUEgLyogV2ViS2V5R2VuZXJhdG9y
LmggKi8sCi0JCQkJODQ3MjNCRTQwNTZENzE5RTAwNDRCRkVBIC8qIFdlYktleUdlbmVyYXRvci5t
ICovLAorCQkJCTg0NzIzQkU0MDU2RDcxOUUwMDQ0QkZFQSAvKiBXZWJLZXlHZW5lcmF0b3IubW0g
Ki8sCiAJCQkJMUFBODc5QjQxMUNCRTlCRjAwM0M2NjRGIC8qIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
cy5oICovLAogCQkJCTFBQTg3OUI1MTFDQkU5QkYwMDNDNjY0RiAvKiBXZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMubW0gKi8sCiAJCQkJMEEyRDg3RkIxMDdBRjUyQjAwQ0RERUUzIC8qIFdlYlBsdWdpbkhh
bHRlckNsaWVudC5oICovLApAQCAtMTkyNiw3ICsxOTI2LDcgQEAKIAkJCQkxQzdCMEM2NjBFQjI0
NjREMDBBMjg1MDIgLyogV2ViSW5zcGVjdG9yQ2xpZW50Q0YuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJOTM5ODEwRTQwODI0QkYwMTAwOERGMDM4IC8qIFdlYkphdmFTY3JpcHRUZXh0SW5wdXRQYW5l
bC5tIGluIFNvdXJjZXMgKi8sCiAJCQkJMzdEMURDQTkxMDY1OTI4QzAwNjhGN0VGIC8qIFdlYkpT
UERGRG9jLm1tIGluIFNvdXJjZXMgKi8sCi0JCQkJOTM5ODExMTcwODI0QkYwMTAwOERGMDM4IC8q
IFdlYktleUdlbmVyYXRvci5tIGluIFNvdXJjZXMgKi8sCisJCQkJOTM5ODExMTcwODI0QkYwMTAw
OERGMDM4IC8qIFdlYktleUdlbmVyYXRvci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTkzOTgxMTAz
MDgyNEJGMDEwMDhERjAzOCAvKiBXZWJLaXRFcnJvcnMubSBpbiBTb3VyY2VzICovLAogCQkJCTkz
OTgxMEMzMDgyNEJGMDEwMDhERjAzOCAvKiBXZWJLaXRMb2dnaW5nLm0gaW4gU291cmNlcyAqLywK
IAkJCQk5Mzk4MTBDNDA4MjRCRjAxMDA4REYwMzggLyogV2ViS2l0TlNTdHJpbmdFeHRyYXMubW0g
aW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxMTY1KQorKysg
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzMg
QEAKKzIwMTEtMDMtMTUgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lPTiAo
V2ViS2l0Mik6IGtleWdlbiBlbGVtZW50IGRvZXNuJ3Qgd29yaworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY0MDIKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzkwMDY1NDU+CisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJLZXlHZW5lcmF0b3Iu
aDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJLZXlHZW5lcmF0b3IubTogUmVtb3ZlZC4K
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJLZXlHZW5lcmF0b3IubW06IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYktleUdlbmVyYXRvci5tLgorICAg
ICAgICAoK1tXZWJLZXlHZW5lcmF0b3Igc2hhcmVkR2VuZXJhdG9yXSk6CisgICAgICAgICh0b1dl
YkNlcnRpZmljYXRlUGFyc2VSZXN1bHQpOgorICAgICAgICBXZWJDb3JlIG5vIGxvbmdlciBuZWVk
cyBXZWJLZXlHZW5lcmF0b3IuIFNhZmFyaSBzdGlsbCBkb2VzIG5lZWQgYSBwYXJ0IG9mIGl0LCBz
byBrZWVwaW5nCisgICAgICAgIHRoaXMgbWlzbmFtZWQgYW5kIG1pc3BsYWNlZCBjb2RlIGZvciBu
b3cuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW06CisgICAg
ICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmtleWdlbk1lbnVJdGVtNTEyKToKKyAgICAgICAg
KFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6a2V5Z2VuTWVudUl0ZW0xMDI0KToKKyAgICAgICAgKFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6a2V5Z2VuTWVudUl0ZW0yMDQ4KToKKyAgICAgICAgKFdlYlBs
YXRmb3JtU3RyYXRlZ2llczo6a2V5Z2VuS2V5Y2hhaW5JdGVtTmFtZSk6CisgICAgICAgIEFkZGVk
IHN0cmluZ3MgdXNlZCBieSBrZXlnZW4uCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJT
eXN0ZW1JbnRlcmZhY2UubW06IChJbml0V2ViQ29yZVN5c3RlbUludGVyZmFjZSk6IEluaXRpYWxp
emUgYSBXZWJDb3JlCisgICAgICAgIHBvaW50ZXIgdG8gYSBmdW5jdGlvbiB1c2VkIGJ5IGtleWdl
bi4KKworICAgICAgICAqIFdlYlZpZXcvV2ViRnJhbWVWaWV3Lm1tOiAoLVtXZWJGcmFtZVZpZXcg
aW5pdFdpdGhGcmFtZTpdKTogV2ViS2V5R2VuZXJhdG9yIGNhbiBiZSBsYXppbHkKKyAgICAgICAg
aW5pdGlhbGl6ZWQgbm93LgorCiAyMDExLTAzLTE1ICBCZXRoIERha2luICA8YmRha2luQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCkluZGV4OiBTb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJLZXlHZW5lcmF0b3IuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJLZXlHZW5lcmF0b3IuaAkocmV2
aXNpb24gODEwNjMpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJLZXlH
ZW5lcmF0b3IuaAkod29ya2luZyBjb3B5KQpAQCAtMSwyOSArMSwyNiBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqIENvcHlyaWdodCAoQykgMjAwNSwgMjAxMSBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KICAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAot
ICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAot
ICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQot
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCiB0eXBlZGVmIGVudW0gewpAQCAtMzQsMTQgKzMx
LDExIEBAIHR5cGVkZWYgZW51bSB7CiAKICNpZmRlZiBfX09CSkNfXwogCi0jaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVLZXlHZW5lcmF0b3IuaD4KK0BpbnRlcmZhY2UgV2ViS2V5R2VuZXJhdG9yIDog
TlNPYmplY3QKIAotQGludGVyZmFjZSBXZWJLZXlHZW5lcmF0b3IgOiBXZWJDb3JlS2V5R2VuZXJh
dG9yCi17Ci0gICAgTlNBcnJheSAqc3RyZW5ndGhNZW51SXRlbVRpdGxlczsKLX0KLSsgKHZvaWQp
Y3JlYXRlU2hhcmVkR2VuZXJhdG9yOworKyAoV2ViS2V5R2VuZXJhdG9yICopc2hhcmVkR2VuZXJh
dG9yOwogLSAoV2ViQ2VydGlmaWNhdGVQYXJzZVJlc3VsdClhZGRDZXJ0aWZpY2F0ZXNUb0tleWNo
YWluRnJvbURhdGE6KE5TRGF0YSAqKWRhdGE7CisKIEBlbmQKIAogI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJLZXlHZW5lcmF0b3IubQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJLZXlHZW5lcmF0b3IubQko
cmV2aXNpb24gODEwNjMpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJL
ZXlHZW5lcmF0b3IubQkod29ya2luZyBjb3B5KQpAQCAtMSwxMDQgKzAsMCBAQAotLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNSBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAx
LiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuIAotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uIAotICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUg
Q29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLiAKLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFM
IERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAot
ICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAq
LwotCi0jaW1wb3J0IDxXZWJLaXQvV2ViS2V5R2VuZXJhdG9yLmg+Ci0KLSNpbXBvcnQgIldlYkxv
Y2FsaXphYmxlU3RyaW5nc0ludGVybmFsLmgiCi0jaW1wb3J0IDxXZWJLaXRTeXN0ZW1JbnRlcmZh
Y2UuaD4KLSNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+Ci0KLUBpbXBsZW1lbnRhdGlvbiBXZWJL
ZXlHZW5lcmF0b3IKLQotKyAodm9pZCljcmVhdGVTaGFyZWRHZW5lcmF0b3IKLXsKLSAgICBpZiAo
IVtzZWxmIHNoYXJlZEdlbmVyYXRvcl0pIHsKLSAgICAgICAgW1tbc2VsZiBhbGxvY10gaW5pdF0g
cmVsZWFzZV07Ci0gICAgfQotICAgIEFTU0VSVChbW3NlbGYgc2hhcmVkR2VuZXJhdG9yXSBpc0tp
bmRPZkNsYXNzOnNlbGZdKTsKLX0KLQotLSAodm9pZClkZWFsbG9jCi17Ci0gICAgW3N0cmVuZ3Ro
TWVudUl0ZW1UaXRsZXMgcmVsZWFzZV07Ci0gICAgW3N1cGVyIGRlYWxsb2NdOwotfQotCi0tIChO
U0FycmF5ICopc3RyZW5ndGhNZW51SXRlbVRpdGxlcwotewotICAgIGlmICghc3RyZW5ndGhNZW51
SXRlbVRpdGxlcykgewotICAgICAgICBzdHJlbmd0aE1lbnVJdGVtVGl0bGVzID0gW1tOU0FycmF5
IGFsbG9jXSBpbml0V2l0aE9iamVjdHM6Ci0gICAgICAgICAgICBVSV9TVFJJTkdfSU5URVJOQUwo
IjIwNDggKEhpZ2ggR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRsZSBmb3IgS0VZR0VOIHBvcC11cCBt
ZW51IiksCi0gICAgICAgICAgICBVSV9TVFJJTkdfSU5URVJOQUwoIjEwMjQgKE1lZGl1bSBHcmFk
ZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZvciBLRVlHRU4gcG9wLXVwIG1lbnUiKSwKLSAgICAgICAg
ICAgIFVJX1NUUklOR19JTlRFUk5BTCgiNTEyIChMb3cgR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRs
ZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51IiksIG5pbF07Ci0gICAgfQotICAgIHJldHVybiBzdHJl
bmd0aE1lbnVJdGVtVGl0bGVzOwotfQotCi0tIChOU1N0cmluZyAqKXNpZ25lZFB1YmxpY0tleUFu
ZENoYWxsZW5nZVN0cmluZ1dpdGhTdHJlbmd0aEluZGV4Oih1bnNpZ25lZClpbmRleCBjaGFsbGVu
Z2U6KE5TU3RyaW5nICopY2hhbGxlbmdlIHBhZ2VVUkw6KE5TVVJMICopcGFnZVVSTAoteyAgICAK
LSAgICAvLyBUaGlzIHN3aXRjaCBzdGF0ZW1lbnQgbXVzdCBhbHdheXMgYmUgc3luY2VkIHdpdGgg
dGhlIFVJIHN0cmluZ3MgcmV0dXJuZWQgYnkgc3RyZW5ndGhNZW51SXRlbVRpdGxlcy4KLSAgICBV
SW50MzIga2V5U2l6ZTsKLSAgICBzd2l0Y2ggKGluZGV4KSB7Ci0gICAgICAgIGNhc2UgMDoKLSAg
ICAgICAgICAgIGtleVNpemUgPSAyMDQ4OwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIGNh
c2UgMToKLSAgICAgICAgICAgIGtleVNpemUgPSAxMDI0OwotICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgIGNhc2UgMjoKLSAgICAgICAgICAgIGtleVNpemUgPSA1MTI7Ci0gICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAgICAgIHJldHVybiBuaWw7Ci0gICAgfQot
ICAgIAotICAgIE5TU3RyaW5nICprZXlEZXNjcmlwdGlvbiA9IFtOU1N0cmluZyBzdHJpbmdXaXRo
Rm9ybWF0OlVJX1NUUklOR19JTlRFUk5BTCgiS2V5IGZyb20gJUAiLCAibmFtZSBvZiBrZXljaGFp
biBrZXkgZ2VuZXJhdGVkIGJ5IHRoZSBLRVlHRU4gdGFnIiksIFtwYWdlVVJMIGhvc3RdXTsKLSAg
ICByZXR1cm4gWyhOU1N0cmluZyAqKVdLU2lnbmVkUHVibGljS2V5QW5kQ2hhbGxlbmdlU3RyaW5n
KGtleVNpemUsIChDRlN0cmluZ1JlZiljaGFsbGVuZ2UsIChDRlN0cmluZ1JlZilrZXlEZXNjcmlw
dGlvbikgYXV0b3JlbGVhc2VdOwotfQotCi1zdGF0aWMgaW5saW5lIFdlYkNlcnRpZmljYXRlUGFy
c2VSZXN1bHQgdG9XZWJDZXJ0aWZpY2F0ZVBhcnNlUmVzdWx0KFdLQ2VydGlmaWNhdGVQYXJzZVJl
c3VsdCByZXN1bHQpCi17Ci0gICAgc3dpdGNoIChyZXN1bHQpIHsKLSAgICBjYXNlIFdLQ2VydGlm
aWNhdGVQYXJzZVJlc3VsdFN1Y2NlZWRlZDoKLSAgICAgICAgcmV0dXJuIFdlYkNlcnRpZmljYXRl
UGFyc2VSZXN1bHRTdWNjZWVkZWQ7Ci0gICAgY2FzZSBXS0NlcnRpZmljYXRlUGFyc2VSZXN1bHRG
YWlsZWQ6Ci0gICAgICAgIHJldHVybiBXZWJDZXJ0aWZpY2F0ZVBhcnNlUmVzdWx0RmFpbGVkOwot
ICAgIGNhc2UgV0tDZXJ0aWZpY2F0ZVBhcnNlUmVzdWx0UEtDUzc6Ci0gICAgICAgIHJldHVybiBX
ZWJDZXJ0aWZpY2F0ZVBhcnNlUmVzdWx0UEtDUzc7Ci0gICAgfQotCi0gICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgcmV0dXJuIFdlYkNlcnRpZmljYXRlUGFyc2VSZXN1bHRGYWlsZWQ7Ci19
Ci0KLS0gKFdlYkNlcnRpZmljYXRlUGFyc2VSZXN1bHQpYWRkQ2VydGlmaWNhdGVzVG9LZXljaGFp
bkZyb21EYXRhOihOU0RhdGEgKilkYXRhCi17Ci0gICAgcmV0dXJuIHRvV2ViQ2VydGlmaWNhdGVQ
YXJzZVJlc3VsdChXS0FkZENlcnRpZmljYXRlc1RvS2V5Y2hhaW5Gcm9tRGF0YShbZGF0YSBieXRl
c10sIFtkYXRhIGxlbmd0aF0pKTsKLX0KLQotQGVuZApJbmRleDogU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViS2V5R2VuZXJhdG9yLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYktleUdlbmVyYXRvci5tbQkocmV2aXNpb24gODEw
NjMpCShmcm9tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYktleUdlbmVyYXRv
ci5tOjgxMDYzKQorKysgU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViS2V5R2Vu
ZXJhdG9yLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTA0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDA1IEFwcGxlIENvbXB1dGVyLCBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4gCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4gCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21w
dXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQK
KyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVu
IHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
QU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVE
CisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgPFdlYktpdC9XZWJLZXlHZW5lcmF0b3IuaD4KKworI2ltcG9ydCAiV2ViTG9jYWxp
emFibGVTdHJpbmdzSW50ZXJuYWwuaCIKKyNpbXBvcnQgPFdlYktpdFN5c3RlbUludGVyZmFjZS5o
PgorI2ltcG9ydCA8d3RmL0Fzc2VydGlvbnMuaD4KKworQGltcGxlbWVudGF0aW9uIFdlYktleUdl
bmVyYXRvcgorCisrICh2b2lkKWNyZWF0ZVNoYXJlZEdlbmVyYXRvcgoreworICAgIGlmICghW3Nl
bGYgc2hhcmVkR2VuZXJhdG9yXSkgeworICAgICAgICBbW1tzZWxmIGFsbG9jXSBpbml0XSByZWxl
YXNlXTsKKyAgICB9CisgICAgQVNTRVJUKFtbc2VsZiBzaGFyZWRHZW5lcmF0b3JdIGlzS2luZE9m
Q2xhc3M6c2VsZl0pOworfQorCistICh2b2lkKWRlYWxsb2MKK3sKKyAgICBbc3RyZW5ndGhNZW51
SXRlbVRpdGxlcyByZWxlYXNlXTsKKyAgICBbc3VwZXIgZGVhbGxvY107Cit9CisKKy0gKE5TQXJy
YXkgKilzdHJlbmd0aE1lbnVJdGVtVGl0bGVzCit7CisgICAgaWYgKCFzdHJlbmd0aE1lbnVJdGVt
VGl0bGVzKSB7CisgICAgICAgIHN0cmVuZ3RoTWVudUl0ZW1UaXRsZXMgPSBbW05TQXJyYXkgYWxs
b2NdIGluaXRXaXRoT2JqZWN0czoKKyAgICAgICAgICAgIFVJX1NUUklOR19JTlRFUk5BTCgiMjA0
OCAoSGlnaCBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZvciBLRVlHRU4gcG9wLXVwIG1lbnUi
KSwKKyAgICAgICAgICAgIFVJX1NUUklOR19JTlRFUk5BTCgiMTAyNCAoTWVkaXVtIEdyYWRlKSIs
ICJNZW51IGl0ZW0gdGl0bGUgZm9yIEtFWUdFTiBwb3AtdXAgbWVudSIpLAorICAgICAgICAgICAg
VUlfU1RSSU5HX0lOVEVSTkFMKCI1MTIgKExvdyBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZv
ciBLRVlHRU4gcG9wLXVwIG1lbnUiKSwgbmlsXTsKKyAgICB9CisgICAgcmV0dXJuIHN0cmVuZ3Ro
TWVudUl0ZW1UaXRsZXM7Cit9CisKKy0gKE5TU3RyaW5nICopc2lnbmVkUHVibGljS2V5QW5kQ2hh
bGxlbmdlU3RyaW5nV2l0aFN0cmVuZ3RoSW5kZXg6KHVuc2lnbmVkKWluZGV4IGNoYWxsZW5nZToo
TlNTdHJpbmcgKiljaGFsbGVuZ2UgcGFnZVVSTDooTlNVUkwgKilwYWdlVVJMCit7ICAgIAorICAg
IC8vIFRoaXMgc3dpdGNoIHN0YXRlbWVudCBtdXN0IGFsd2F5cyBiZSBzeW5jZWQgd2l0aCB0aGUg
VUkgc3RyaW5ncyByZXR1cm5lZCBieSBzdHJlbmd0aE1lbnVJdGVtVGl0bGVzLgorICAgIFVJbnQz
MiBrZXlTaXplOworICAgIHN3aXRjaCAoaW5kZXgpIHsKKyAgICAgICAgY2FzZSAwOgorICAgICAg
ICAgICAga2V5U2l6ZSA9IDIwNDg7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSAx
OgorICAgICAgICAgICAga2V5U2l6ZSA9IDEwMjQ7CisgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgY2FzZSAyOgorICAgICAgICAgICAga2V5U2l6ZSA9IDUxMjsKKyAgICAgICAgICAgIGJyZWFr
OworICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgcmV0dXJuIG5pbDsKKyAgICB9CisgICAg
CisgICAgTlNTdHJpbmcgKmtleURlc2NyaXB0aW9uID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3Jt
YXQ6VUlfU1RSSU5HX0lOVEVSTkFMKCJLZXkgZnJvbSAlQCIsICJuYW1lIG9mIGtleWNoYWluIGtl
eSBnZW5lcmF0ZWQgYnkgdGhlIEtFWUdFTiB0YWciKSwgW3BhZ2VVUkwgaG9zdF1dOworICAgIHJl
dHVybiBbKE5TU3RyaW5nICopV0tTaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcoa2V5
U2l6ZSwgKENGU3RyaW5nUmVmKWNoYWxsZW5nZSwgKENGU3RyaW5nUmVmKWtleURlc2NyaXB0aW9u
KSBhdXRvcmVsZWFzZV07Cit9CisKK3N0YXRpYyBpbmxpbmUgV2ViQ2VydGlmaWNhdGVQYXJzZVJl
c3VsdCB0b1dlYkNlcnRpZmljYXRlUGFyc2VSZXN1bHQoV0tDZXJ0aWZpY2F0ZVBhcnNlUmVzdWx0
IHJlc3VsdCkKK3sKKyAgICBzd2l0Y2ggKHJlc3VsdCkgeworICAgIGNhc2UgV0tDZXJ0aWZpY2F0
ZVBhcnNlUmVzdWx0U3VjY2VlZGVkOgorICAgICAgICByZXR1cm4gV2ViQ2VydGlmaWNhdGVQYXJz
ZVJlc3VsdFN1Y2NlZWRlZDsKKyAgICBjYXNlIFdLQ2VydGlmaWNhdGVQYXJzZVJlc3VsdEZhaWxl
ZDoKKyAgICAgICAgcmV0dXJuIFdlYkNlcnRpZmljYXRlUGFyc2VSZXN1bHRGYWlsZWQ7CisgICAg
Y2FzZSBXS0NlcnRpZmljYXRlUGFyc2VSZXN1bHRQS0NTNzoKKyAgICAgICAgcmV0dXJuIFdlYkNl
cnRpZmljYXRlUGFyc2VSZXN1bHRQS0NTNzsKKyAgICB9CisKKyAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICByZXR1cm4gV2ViQ2VydGlmaWNhdGVQYXJzZVJlc3VsdEZhaWxlZDsKK30KKwor
LSAoV2ViQ2VydGlmaWNhdGVQYXJzZVJlc3VsdClhZGRDZXJ0aWZpY2F0ZXNUb0tleWNoYWluRnJv
bURhdGE6KE5TRGF0YSAqKWRhdGEKK3sKKyAgICByZXR1cm4gdG9XZWJDZXJ0aWZpY2F0ZVBhcnNl
UmVzdWx0KFdLQWRkQ2VydGlmaWNhdGVzVG9LZXljaGFpbkZyb21EYXRhKFtkYXRhIGJ5dGVzXSwg
W2RhdGEgbGVuZ3RoXSkpOworfQorCitAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJLZXlHZW5lcmF0b3IubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViS2V5R2VuZXJhdG9yLm1tCShyZXZpc2lvbiA4MTA2MykK
KysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYktleUdlbmVyYXRvci5tbQko
d29ya2luZyBjb3B5KQpAQCAtMSw4OCArMSw0NSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NSBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNSwgMjAxMSBBcHBsZSBDb21wdXRlciwgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwogICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KICAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuIAotICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uIAotICogMy4gIE5laXRo
ZXIgdGhlIG5hbWUgb2YgQXBwbGUgQ29tcHV0ZXIsIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFt
ZXMgb2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3Ig
cHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhv
dXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLiAKLSAqCi0gKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKLSAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KICAqLwogCiAjaW1wb3J0IDxXZWJLaXQvV2ViS2V5R2VuZXJhdG9yLmg+CiAKLSNp
bXBvcnQgIldlYkxvY2FsaXphYmxlU3RyaW5nc0ludGVybmFsLmgiCiAjaW1wb3J0IDxXZWJLaXRT
eXN0ZW1JbnRlcmZhY2UuaD4KICNpbXBvcnQgPHd0Zi9Bc3NlcnRpb25zLmg+CiAKIEBpbXBsZW1l
bnRhdGlvbiBXZWJLZXlHZW5lcmF0b3IKIAotKyAodm9pZCljcmVhdGVTaGFyZWRHZW5lcmF0b3IK
KysgKFdlYktleUdlbmVyYXRvciAqKXNoYXJlZEdlbmVyYXRvcgogewotICAgIGlmICghW3NlbGYg
c2hhcmVkR2VuZXJhdG9yXSkgewotICAgICAgICBbW1tzZWxmIGFsbG9jXSBpbml0XSByZWxlYXNl
XTsKLSAgICB9Ci0gICAgQVNTRVJUKFtbc2VsZiBzaGFyZWRHZW5lcmF0b3JdIGlzS2luZE9mQ2xh
c3M6c2VsZl0pOwotfQotCi0tICh2b2lkKWRlYWxsb2MKLXsKLSAgICBbc3RyZW5ndGhNZW51SXRl
bVRpdGxlcyByZWxlYXNlXTsKLSAgICBbc3VwZXIgZGVhbGxvY107Ci19Ci0KLS0gKE5TQXJyYXkg
KilzdHJlbmd0aE1lbnVJdGVtVGl0bGVzCi17Ci0gICAgaWYgKCFzdHJlbmd0aE1lbnVJdGVtVGl0
bGVzKSB7Ci0gICAgICAgIHN0cmVuZ3RoTWVudUl0ZW1UaXRsZXMgPSBbW05TQXJyYXkgYWxsb2Nd
IGluaXRXaXRoT2JqZWN0czoKLSAgICAgICAgICAgIFVJX1NUUklOR19JTlRFUk5BTCgiMjA0OCAo
SGlnaCBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZvciBLRVlHRU4gcG9wLXVwIG1lbnUiKSwK
LSAgICAgICAgICAgIFVJX1NUUklOR19JTlRFUk5BTCgiMTAyNCAoTWVkaXVtIEdyYWRlKSIsICJN
ZW51IGl0ZW0gdGl0bGUgZm9yIEtFWUdFTiBwb3AtdXAgbWVudSIpLAotICAgICAgICAgICAgVUlf
U1RSSU5HX0lOVEVSTkFMKCI1MTIgKExvdyBHcmFkZSkiLCAiTWVudSBpdGVtIHRpdGxlIGZvciBL
RVlHRU4gcG9wLXVwIG1lbnUiKSwgbmlsXTsKLSAgICB9Ci0gICAgcmV0dXJuIHN0cmVuZ3RoTWVu
dUl0ZW1UaXRsZXM7Ci19Ci0KLS0gKE5TU3RyaW5nICopc2lnbmVkUHVibGljS2V5QW5kQ2hhbGxl
bmdlU3RyaW5nV2l0aFN0cmVuZ3RoSW5kZXg6KHVuc2lnbmVkKWluZGV4IGNoYWxsZW5nZTooTlNT
dHJpbmcgKiljaGFsbGVuZ2UgcGFnZVVSTDooTlNVUkwgKilwYWdlVVJMCi17ICAgIAotICAgIC8v
IFRoaXMgc3dpdGNoIHN0YXRlbWVudCBtdXN0IGFsd2F5cyBiZSBzeW5jZWQgd2l0aCB0aGUgVUkg
c3RyaW5ncyByZXR1cm5lZCBieSBzdHJlbmd0aE1lbnVJdGVtVGl0bGVzLgotICAgIFVJbnQzMiBr
ZXlTaXplOwotICAgIHN3aXRjaCAoaW5kZXgpIHsKLSAgICAgICAgY2FzZSAwOgotICAgICAgICAg
ICAga2V5U2l6ZSA9IDIwNDg7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgY2FzZSAxOgot
ICAgICAgICAgICAga2V5U2l6ZSA9IDEwMjQ7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
Y2FzZSAyOgotICAgICAgICAgICAga2V5U2l6ZSA9IDUxMjsKLSAgICAgICAgICAgIGJyZWFrOwot
ICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICB9Ci0gICAgCi0g
ICAgTlNTdHJpbmcgKmtleURlc2NyaXB0aW9uID0gW05TU3RyaW5nIHN0cmluZ1dpdGhGb3JtYXQ6
VUlfU1RSSU5HX0lOVEVSTkFMKCJLZXkgZnJvbSAlQCIsICJuYW1lIG9mIGtleWNoYWluIGtleSBn
ZW5lcmF0ZWQgYnkgdGhlIEtFWUdFTiB0YWciKSwgW3BhZ2VVUkwgaG9zdF1dOwotICAgIHJldHVy
biBbKE5TU3RyaW5nICopV0tTaWduZWRQdWJsaWNLZXlBbmRDaGFsbGVuZ2VTdHJpbmcoa2V5U2l6
ZSwgKENGU3RyaW5nUmVmKWNoYWxsZW5nZSwgKENGU3RyaW5nUmVmKWtleURlc2NyaXB0aW9uKSBh
dXRvcmVsZWFzZV07CisgICAgc3RhdGljIFdlYktleUdlbmVyYXRvciAqc2hhcmVkR2VuZXJhdG9y
ID0gW1tXZWJLZXlHZW5lcmF0b3IgYWxsb2NdIGluaXRdOworICAgIHJldHVybiBzaGFyZWRHZW5l
cmF0b3I7CiB9CiAKIHN0YXRpYyBpbmxpbmUgV2ViQ2VydGlmaWNhdGVQYXJzZVJlc3VsdCB0b1dl
YkNlcnRpZmljYXRlUGFyc2VSZXN1bHQoV0tDZXJ0aWZpY2F0ZVBhcnNlUmVzdWx0IHJlc3VsdCkK
IHsKKyAgICAvLyBGSVhNRTogV2ViS2V5R2VuZXJhdG9yIGlzIG5vdCB1c2VkIGluIFdlYktpdCwg
YW5kIHRoaXMgY29kZSBzaG91bGQgYmUgbW92ZWQgdG8gU2FmYXJpLgorCiAgICAgc3dpdGNoIChy
ZXN1bHQpIHsKICAgICBjYXNlIFdLQ2VydGlmaWNhdGVQYXJzZVJlc3VsdFN1Y2NlZWRlZDoKICAg
ICAgICAgcmV0dXJuIFdlYkNlcnRpZmljYXRlUGFyc2VSZXN1bHRTdWNjZWVkZWQ7CkluZGV4OiBT
b3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaAkocmV2aXNpb24gODEwNjMpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkod29ya2luZyBjb3B5KQpAQCAtMTUz
LDYgKzE1MywxMCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY3Jhc2hlZFBs
dWdpblRleHQoKTsKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIG11bHRpcGxlRmlsZVVwbG9hZFRl
eHQodW5zaWduZWQgbnVtYmVyT2ZGaWxlcyk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyB1bmtu
b3duRmlsZVNpemVUZXh0KCk7CisgICAgdmlydHVhbCBXVEY6OlN0cmluZyBrZXlnZW5NZW51SXRl
bTUxMigpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcga2V5Z2VuTWVudUl0ZW0xMDI0KCk7Cisg
ICAgdmlydHVhbCBXVEY6OlN0cmluZyBrZXlnZW5NZW51SXRlbTIwNDgoKTsKKyAgICB2aXJ0dWFs
IFdURjo6U3RyaW5nIGtleWdlbktleWNoYWluSXRlbU5hbWUoY29uc3QgV1RGOjpTdHJpbmcmIGhv
c3QpOwogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgaW1hZ2VUaXRsZShjb25zdCBXVEY6OlN0cmlu
ZyYgZmlsZW5hbWUsIGNvbnN0IFdlYkNvcmU6OkludFNpemUmIHNpemUpOwogICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgbWVkaWFFbGVtZW50TG9hZGluZ1N0YXRlVGV4dCgpOwogICAgIHZpcnR1YWwg
V1RGOjpTdHJpbmcgbWVkaWFFbGVtZW50TGl2ZUJyb2FkY2FzdFN0YXRlVGV4dCgpOwpJbmRleDog
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1t
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRm
b3JtU3RyYXRlZ2llcy5tbQkocmV2aXNpb24gODEwNjMpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0JKHdvcmtpbmcgY29weSkKQEAg
LTY2Niw2ICs2NjYsMjYgQEAgU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6dW5rbm93bkZp
bAogICAgIHJldHVybiBVSV9TVFJJTkdfSU5URVJOQUwoIlVua25vd24iLCAiVW5rbm93biBmaWxl
c2l6ZSBGVFAgZGlyZWN0b3J5IGxpc3RpbmcgaXRlbSIpOwogfQogCitTdHJpbmcgV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjprZXlnZW5NZW51SXRlbTUxMigpCit7CisgICAgcmV0dXJuIFVJX1NUUklO
R19JTlRFUk5BTCgiNTEyIChMb3cgR3JhZGUpIiwgIk1lbnUgaXRlbSB0aXRsZSBmb3IgS0VZR0VO
IHBvcC11cCBtZW51Iik7Cit9CisKK1N0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmtleWdl
bk1lbnVJdGVtMTAyNCgpCit7CisgICAgcmV0dXJuIFVJX1NUUklOR19JTlRFUk5BTCgiMTAyNCAo
TWVkaXVtIEdyYWRlKSIsICJNZW51IGl0ZW0gdGl0bGUgZm9yIEtFWUdFTiBwb3AtdXAgbWVudSIp
OworfQorCitTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjprZXlnZW5NZW51SXRlbTIwNDgo
KQoreworICAgIHJldHVybiBVSV9TVFJJTkdfSU5URVJOQUwoIjIwNDggKEhpZ2ggR3JhZGUpIiwg
Ik1lbnUgaXRlbSB0aXRsZSBmb3IgS0VZR0VOIHBvcC11cCBtZW51Iik7Cit9CisKK1N0cmluZyBX
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmtleWdlbktleWNoYWluSXRlbU5hbWUoY29uc3QgV1RGOjpT
dHJpbmcmIGhvc3QpCit7CisgICAgcmV0dXJuIFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OlVJ
X1NUUklOR19JTlRFUk5BTCgiS2V5IGZyb20gJUAiLCAiTmFtZSBvZiBrZXljaGFpbiBrZXkgZ2Vu
ZXJhdGVkIGJ5IHRoZSBLRVlHRU4gdGFnIiksIChOU1N0cmluZyAqKWhvc3RdOworfQorCiBTdHJp
bmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjppbWFnZVRpdGxlKGNvbnN0IFN0cmluZyYgZmlsZW5h
bWUsIGNvbnN0IEludFNpemUmIHNpemUpCiB7CiAjaWYgIWRlZmluZWQoQlVJTERJTkdfT05fVElH
RVIpICYmICFkZWZpbmVkKEJVSUxESU5HX09OX0xFT1BBUkQpCkluZGV4OiBTb3VyY2UvV2ViS2l0
L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJTeXN0ZW1JbnRlcmZhY2UubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViU3lzdGVtSW50ZXJmYWNlLm1tCShy
ZXZpc2lvbiA4MTA2MykKKysrIFNvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlN5
c3RlbUludGVyZmFjZS5tbQkod29ya2luZyBjb3B5KQpAQCAtNjMsNiArNjMsNyBAQCB2b2lkIElu
aXRXZWJDb3JlU3lzdGVtSW50ZXJmYWNlKHZvaWQpCiAgICAgSU5JVChHZXRIVFRQUGlwZWxpbmlu
Z1ByaW9yaXR5KTsKICAgICBJTklUKEdldE1JTUVUeXBlRm9yRXh0ZW5zaW9uKTsKICAgICBJTklU
KEdldE5TVVJMUmVzcG9uc2VMYXN0TW9kaWZpZWREYXRlKTsKKyAgICBJTklUKFNpZ25lZFB1Ymxp
Y0tleUFuZENoYWxsZW5nZVN0cmluZyk7CiAgICAgSU5JVChHZXRQcmVmZXJyZWRFeHRlbnNpb25G
b3JNSU1FVHlwZSk7CiAgICAgSU5JVChHZXRXaGVlbEV2ZW50RGVsdGFzKTsKICAgICBJTklUKEhp
dFRlc3RNZWRpYVVJUGFydCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lVmlldy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYkZy
YW1lVmlldy5tbQkocmV2aXNpb24gODEwNjMpCisrKyBTb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3
L1dlYkZyYW1lVmlldy5tbQkod29ya2luZyBjb3B5KQpAQCAtMzA4LDcgKzMwOCw2IEBAIC0gKGlk
KWluaXRXaXRoRnJhbWU6KE5TUmVjdClmcmFtZQogICAgICAgICBXZWJDb3JlOjpub3RpZnlIaXN0
b3J5SXRlbUNoYW5nZWQgPSBXS05vdGlmeUhpc3RvcnlJdGVtQ2hhbmdlZDsKIAogICAgICAgICBb
V2ViVmlld0ZhY3RvcnkgY3JlYXRlU2hhcmVkRmFjdG9yeV07Ci0gICAgICAgIFtXZWJLZXlHZW5l
cmF0b3IgY3JlYXRlU2hhcmVkR2VuZXJhdG9yXTsKIAogLy8gRklYTUU6IFJlbW92ZSB0aGUgTlNB
cHBLaXRWZXJzaW9uTnVtYmVyV2l0aERlZmVycmVkV2luZG93RGlzcGxheVN1cHBvcnQgY2hlY2sg
b25jZQogLy8gb25jZSBBcHBLaXQncyBEZWZlcnJlZCBXaW5kb3cgRGlzcGxheSBzdXBwb3J0IGlz
IGF2YWlsYWJsZS4KSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDgxMTY2KQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTEtMDMtMTUgIEFsZXhl
eSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUkVHUkVTU0lPTiAoV2ViS2l0Mik6IGtleWdlbiBlbGVt
ZW50IGRvZXNuJ3Qgd29yaworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTY0MDIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzkwMDY1NDU+CisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vd2luLXdr
Mi9Ta2lwcGVkOgorICAgICAgICBNb3ZlZCB0ZXN0cyB0aGF0IHdlcmUgc2tpcHBlZCBiZWNhc3Vl
IG9mIGtleWdlbiB0byB3aW4td2syL1NraXBwZWQuCisKIDIwMTEtMDMtMTUgIEFuZGVycyBDYXJs
c3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2Vp
bmlnLgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjLXdrMi9Ta2lwcGVkCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL21hYy13azIvU2tpcHBlZAkocmV2aXNpb24gODEw
NjMpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMtd2syL1NraXBwZWQJKHdvcmtpbmcgY29w
eSkKQEAgLTE4ODYsMTEgKzE4ODYsNiBAQCBodHRwL3Rlc3RzL2xvYWRpbmcvY3Jvc3Mtb3JpZ2lu
LVhIUi13aWxsCiBmYXN0L2RvbS9XaW5kb3cvd2luZG93LXJlc2l6ZS1hbmQtbW92ZS1hcmd1bWVu
dHMuaHRtbAogZmFzdC9kb20vV2luZG93L3dpbmRvdy1yZXNpemUuaHRtbAogCi0jIFdlYktpdDIg
bmVlZHMga2V5Z2VuIHN1cHBvcnQKLWZhc3QvaHRtbC9rZXlnZW4uaHRtbAotZmFzdC9pbnZhbGlk
L3Jlc2lkdWFsLXN0eWxlLmh0bWwKLWh0bWw1bGliL3J1bm5lci5odG1sCi0KICMgV2ViS2l0VGVz
dFJ1bm5lciBuZWVkcyB0byBzYW5pdGl6ZSBmaWxlIHVybHMgaW4gdGhlIG91dHB1dAogaHR0cC90
ZXN0cy9taXNjL2ltYWdlLWJsb2NrZWQtc3JjLWNoYW5nZS5odG1sCiBodHRwL3Rlc3RzL21pc2Mv
aW1hZ2UtYmxvY2tlZC1zcmMtbm8tY2hhbmdlLmh0bWwKSW5kZXg6IExheW91dFRlc3RzL3BsYXRm
b3JtL3dpbi13azIvU2tpcHBlZAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4td2syL1NraXBwZWQJKHJldmlzaW9uIDgxMDYzKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luLXdrMi9Ta2lwcGVkCSh3b3JraW5nIGNvcHkpCkBAIC0xNTUsMyArMTU1LDggQEAgZmFzdC9m
cmFtZXMvaWZyYW1lLXBsdWdpbi1sb2FkLXJlbW92ZS1kbwogCiAjIENyYXNoZXMgaHR0cDovL3dl
YmtpdC5vcmcvYi81NTc4MAogcGxhdGZvcm0vd2luL3BsdWdpbnMvZ2V0LXZhbHVlLW5ldHNjYXBl
LXdpbmRvdy5odG1sCisKKyMgTm8ga2V5Z2VuIHN1cHBvcnQKK2Zhc3QvaHRtbC9rZXlnZW4uaHRt
bAorZmFzdC9pbnZhbGlkL3Jlc2lkdWFsLXN0eWxlLmh0bWwKK2h0bWw1bGliL3J1bm5lci5odG1s
Cg==
</data>
<flag name="review"
          id="78043"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>