<?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>150718</bug_id>
          
          <creation_ts>2015-10-30 08:55:55 -0700</creation_ts>
          <short_desc>Modern IDB: Support IDBObjectStore.get() for IDBKeyRanges</short_desc>
          <delta_ts>2015-10-30 17:19: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>WebCore Misc.</component>
          <version>Safari 9</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>149117</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1137869</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-30 08:55:55 -0700</bug_when>
    <thetext>Modern IDB: Support IDBObjectStore.get() for IDBKeyRanges</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137881</commentid>
    <comment_count>1</comment_count>
      <attachid>264399</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-30 10:08:54 -0700</bug_when>
    <thetext>Created attachment 264399
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137882</commentid>
    <comment_count>2</comment_count>
      <attachid>264399</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-30 10:09:29 -0700</bug_when>
    <thetext>Comment on attachment 264399
Patch v1

Forgot to add the results for the test</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137889</commentid>
    <comment_count>3</comment_count>
      <attachid>264401</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-30 10:36:20 -0700</bug_when>
    <thetext>Created attachment 264401
patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1137894</commentid>
    <comment_count>4</comment_count>
      <attachid>264401</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2015-10-30 10:53:17 -0700</bug_when>
    <thetext>Comment on attachment 264401
patch v2

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

&gt; LayoutTests/storage/indexeddb/modern/get-keyrange.html:74
&gt; +    

Add some tests with null, strings, arrays, NaN, {}, etc.

&gt; Source/WebCore/Modules/indexeddb/IDBKeyRangeData.cpp:39
&gt; +    , lowerOpen(false)

lowerOpen { false } in header instead of three other copies.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138059</commentid>
    <comment_count>5</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-10-30 17:19:15 -0700</bug_when>
    <thetext>https://trac.webkit.org/changeset/191832</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264399</attachid>
            <date>2015-10-30 10:08:54 -0700</date>
            <delta_ts>2015-10-30 10:36:20 -0700</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>38446</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkY2FjYjRiLi5lYTU3MTI1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTQgQEAKIDIwMTUtMTAt
MzAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIE1vZGVybiBJ
REI6IFN1cHBvcnQgSURCT2JqZWN0U3RvcmUuZ2V0KCkgZm9yIElEQktleVJhbmdlcy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDcxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2dldC1rZXlyYW5nZS5odG1sOiBBZGRlZC4KKworMjAxNS0xMC0zMCAgQnJh
ZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKICAgICAgICAgTW9kZXJuIElEQjogSURC
T2JqZWN0U3RvcmUuYWRkKCkgc3VwcG9ydC4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1MDcxMQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vZ2V0LWtleXJhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi9tb2Rlcm4vZ2V0LWtleXJhbmdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uYmUwM2JiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9nZXQta2V5cmFuZ2UuaHRtbApAQCAtMCwwICsxLDEy
MCBAQAorVGhpcyB0ZXN0IGV4ZXJjaXNlcyBJREJPYmplY3RTdG9yZS5nZXQoKSB3aXRoIGFuIElE
QktleVJhbmdlIGFzIHRoZSBwYXJhbWV0ZXIuCis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKK30KKworZnVuY3Rpb24gZG9uZSgpCit7CisgICAgYWxlcnQoIkRvbmUi
KTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworfQorCit2YXIgY3JlYXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3Blbigi
R2V0S2V5UmFuZ2VEYXRhYmFzZSIsIDEpOwordmFyIGRhdGFiYXNlOworCitjcmVhdGVSZXF1ZXN0
Lm9udXBncmFkZW5lZWRlZCA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgYWxlcnQoIkluaXRpYWwg
dXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNpb24gKyAiIE5l
dyB2ZXJzaW9uIC0gIiArIGV2ZW50Lm5ld1ZlcnNpb24pOworCisgICAgdmFyIHZlcnNpb25UcmFu
c2FjdGlvbiA9IGNyZWF0ZVJlcXVlc3QudHJhbnNhY3Rpb247CisgICAgZGF0YWJhc2UgPSBldmVu
dC50YXJnZXQucmVzdWx0OworICAgIHZhciBvYmplY3RTdG9yZSA9IGRhdGFiYXNlLmNyZWF0ZU9i
amVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEw
MDsgKytpKQorICAgICAgICBvYmplY3RTdG9yZS5wdXQoIlwiIiArIGkgKyAiXCIiLCBpKTsKKwor
ICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmFib3J0ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAg
ICAgYWxlcnQoIkluaXRpYWwgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHVuZXhw
ZWN0ZWQgYWJvcnRlZCIpOworICAgICAgICBkb25lKCk7CisgICAgfQorCisgICAgdmVyc2lvblRy
YW5zYWN0aW9uLm9uY29tcGxldGUgPSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBhbGVydCgi
SW5pdGlhbCB1cGdyYWRlIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb24gY29tcGxldGUiKTsKKyAg
ICAgICAgY29udGludWVUZXN0MSgpOworICAgIH0KKworICAgIHZlcnNpb25UcmFuc2FjdGlvbi5v
bmVycm9yID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgYWxlcnQoIkluaXRpYWwgdXBncmFk
ZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHVuZXhwZWN0ZWQgZXJyb3IiICsgZXZlbnQpOwor
ICAgICAgICBkb25lKCk7CisgICAgfQorfQorCit2YXIgb2JqZWN0U3RvcmU7CisKK2Z1bmN0aW9u
IHRlc3RHZXQoa2V5UmFuZ2UpIHsKKyAgICB2YXIgcmVxdWVzdCA9IG9iamVjdFN0b3JlLmdldChr
ZXlSYW5nZSk7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpCisgICAgeworICAg
ICAgICBhbGVydCgiU3VjY2VzcyBnZXR0aW5nIGtleVJhbmdlIFsiICsga2V5UmFuZ2UubG93ZXIg
KyAiICgiICsgKGtleVJhbmdlLmxvd2VyT3BlbiA/ICJPcGVuIiA6ICJDbG9zZWQiKSArICIpLCAi
ICsga2V5UmFuZ2UudXBwZXIgKyAiICgiICsgKGtleVJhbmdlLnVwcGVyT3BlbiA/ICJPcGVuIiA6
ICJDbG9zZWQiKSArICIpXSIpOworICAgICAgICBhbGVydCgiUmVzdWx0IGlzICIgKyByZXF1ZXN0
LnJlc3VsdCk7CisgICAgfQorICAgIHJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKCkKKyAgICB7
CisgICAgICAgIGFsZXJ0KCJVbmV4cGVjdGVkIGVycm9yIGdldHRpbmcga2V5UmFuZ2UgWyIgKyBr
ZXlSYW5nZS5sb3dlciArICIgKCIgKyBrZXlSYW5nZS5sb3dlck9wZW4gKyAiKSwgIiArIGtleVJh
bmdlLnVwcGVyICsgIiAoIiArIGtleVJhbmdlLnVwcGVyT3BlbiArICIpXSIpOworICAgIH0KK30K
KworZnVuY3Rpb24gY29udGludWVUZXN0MSgpCit7CisgICAgdmFyIHRyYW5zYWN0aW9uID0gZGF0
YWJhc2UudHJhbnNhY3Rpb24oIlRlc3RPYmplY3RTdG9yZSIsICJyZWFkb25seSIpOworICAgIG9i
amVjdFN0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpOwor
CisgICAgdGVzdEdldChJREJLZXlSYW5nZS5sb3dlckJvdW5kKC0xKSk7CisgICAgdGVzdEdldChJ
REJLZXlSYW5nZS5sb3dlckJvdW5kKC0xLCB0cnVlKSk7CisgICAgdGVzdEdldChJREJLZXlSYW5n
ZS5sb3dlckJvdW5kKDApKTsKKyAgICB0ZXN0R2V0KElEQktleVJhbmdlLmxvd2VyQm91bmQoMCwg
dHJ1ZSkpOworICAgIHRlc3RHZXQoSURCS2V5UmFuZ2UubG93ZXJCb3VuZCgwLjEpKTsKKyAgICB0
ZXN0R2V0KElEQktleVJhbmdlLmxvd2VyQm91bmQoMC4xLCB0cnVlKSk7CisgICAgdGVzdEdldChJ
REJLZXlSYW5nZS5sb3dlckJvdW5kKDk5KSk7CisgICAgdGVzdEdldChJREJLZXlSYW5nZS5sb3dl
ckJvdW5kKDk5LCB0cnVlKSk7CisgICAgdGVzdEdldChJREJLZXlSYW5nZS5sb3dlckJvdW5kKDk5
LjEpKTsKKyAgICB0ZXN0R2V0KElEQktleVJhbmdlLmxvd2VyQm91bmQoOTkuMSwgdHJ1ZSkpOwor
ICAgIAorICAgIHRlc3RHZXQoSURCS2V5UmFuZ2UudXBwZXJCb3VuZCgxMDApKTsKKyAgICB0ZXN0
R2V0KElEQktleVJhbmdlLnVwcGVyQm91bmQoMTAwLCB0cnVlKSk7CisgICAgdGVzdEdldChJREJL
ZXlSYW5nZS51cHBlckJvdW5kKDk5KSk7CisgICAgdGVzdEdldChJREJLZXlSYW5nZS51cHBlckJv
dW5kKDk5LCB0cnVlKSk7CisgICAgdGVzdEdldChJREJLZXlSYW5nZS51cHBlckJvdW5kKDk4Ljk5
OTk5KSk7CisgICAgdGVzdEdldChJREJLZXlSYW5nZS51cHBlckJvdW5kKDk4Ljk5OTk5LCB0cnVl
KSk7CisgICAgdGVzdEdldChJREJLZXlSYW5nZS51cHBlckJvdW5kKDk4KSk7CisgICAgdGVzdEdl
dChJREJLZXlSYW5nZS51cHBlckJvdW5kKDk4LCB0cnVlKSk7CisgICAgdGVzdEdldChJREJLZXlS
YW5nZS51cHBlckJvdW5kKDApKTsKKyAgICB0ZXN0R2V0KElEQktleVJhbmdlLnVwcGVyQm91bmQo
MCwgdHJ1ZSkpOworICAgIHRlc3RHZXQoSURCS2V5UmFuZ2UudXBwZXJCb3VuZCgtMC4xKSk7Cisg
ICAgdGVzdEdldChJREJLZXlSYW5nZS51cHBlckJvdW5kKC0wLjEsIHRydWUpKTsKKyAgICAKKyAg
ICB0ZXN0R2V0KElEQktleVJhbmdlLmJvdW5kKDIuNSwgMy41KSk7CisgICAgdGVzdEdldChJREJL
ZXlSYW5nZS5ib3VuZCgtMC41LCAwLjUpKTsKKyAgICB0ZXN0R2V0KElEQktleVJhbmdlLmJvdW5k
KDk4LjUsIDk5LjUpKTsKKyAgICB0ZXN0R2V0KElEQktleVJhbmdlLmJvdW5kKC0xLCAwKSk7Cisg
ICAgdGVzdEdldChJREJLZXlSYW5nZS5ib3VuZCgtMSwgMCwgdHJ1ZSkpOworICAgIHRlc3RHZXQo
SURCS2V5UmFuZ2UuYm91bmQoLTEsIDAsIGZhbHNlLCB0cnVlKSk7CisgICAgdGVzdEdldChJREJL
ZXlSYW5nZS5ib3VuZCgtMSwgMCwgdHJ1ZSwgdHJ1ZSkpOworICAgIHRlc3RHZXQoSURCS2V5UmFu
Z2UuYm91bmQoMywgNCkpOworICAgIHRlc3RHZXQoSURCS2V5UmFuZ2UuYm91bmQoMywgNCwgdHJ1
ZSkpOworICAgIHRlc3RHZXQoSURCS2V5UmFuZ2UuYm91bmQoMywgNCwgZmFsc2UsIHRydWUpKTsK
KyAgICB0ZXN0R2V0KElEQktleVJhbmdlLmJvdW5kKDMsIDQsIHRydWUsIHRydWUpKTsKKyAgICB0
ZXN0R2V0KElEQktleVJhbmdlLmJvdW5kKDk5LCAxMDApKTsKKyAgICB0ZXN0R2V0KElEQktleVJh
bmdlLmJvdW5kKDk5LCAxMDAsIHRydWUpKTsKKyAgICB0ZXN0R2V0KElEQktleVJhbmdlLmJvdW5k
KDk5LCAxMDAsIGZhbHNlLCB0cnVlKSk7CisgICAgdGVzdEdldChJREJLZXlSYW5nZS5ib3VuZCg5
OSwgMTAwLCB0cnVlLCB0cnVlKSk7CisKKyAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gZnVuY3Rp
b24oZXZlbnQpIHsKKyAgICAgICAgYWxlcnQoInJlYWRvbmx5IHRyYW5zYWN0aW9uIHVuZXhwZWN0
ZWQgYWJvcnQiICsgZXZlbnQpOworICAgICAgICBkb25lKCk7CisgICAgfQorCisgICAgdHJhbnNh
Y3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGFsZXJ0KCJyZWFk
b25seSB0cmFuc2FjdGlvbiBjb21wbGV0ZSIpOworICAgICAgICBkb25lKCk7CisgICAgfQorCisg
ICAgdHJhbnNhY3Rpb24ub25lcnJvciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGFsZXJ0
KCJyZWFkb25seSB0cmFuc2FjdGlvbiB1bmV4cGVjdGVkIGVycm9yIiArIGV2ZW50KTsKKyAgICAg
ICAgZG9uZSgpOworICAgIH0KK30KKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODkwY2Q5NS4u
MjIzNTVlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY1IEBACiAyMDE1LTEwLTMwICBCcmFkeSBF
aWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAorICAgICAgICBNb2Rlcm4gSURCOiBTdXBwb3J0
IElEQk9iamVjdFN0b3JlLmdldCgpIGZvciBJREJLZXlSYW5nZXMuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA3MTgKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBzdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vZ2V0LWtleXJhbmdlLmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lE
QktleVJhbmdlRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZURhdGE6OklE
QktleVJhbmdlRGF0YSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2VE
YXRhLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJD
b25uZWN0aW9uVG9TZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJD
b25uZWN0aW9uVG9TZXJ2ZXI6OmdldFJlY29yZCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oOgorICAgICAgICAK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCT2JqZWN0U3RvcmVJbXBsLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURCT2JqZWN0U3RvcmU6OmdldCk6Cisg
ICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFuc2FjdGlv
bkltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJUcmFuc2FjdGlvbjo6
cmVxdWVzdEdldFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQlRyYW5z
YWN0aW9uOjpnZXRSZWNvcmRPblNlcnZlcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
Y2xpZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgIAorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OmdldFJlY29yZCk6CisgICAgICAgICogTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6
cmVjb3JkVmFsdWVDaGFuZ2VkKToKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0UmVjb3JkKToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmg6CisgICAgICAg
IAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeU9iamVjdFN0b3JlOjpkZWxl
dGVSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlPYmplY3RTdG9y
ZTo6c2V0S2V5VmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlPYmpl
Y3RTdG9yZTo6dmFsdWVGb3JLZXlSYW5nZSk6IFVzaW5nIGEgc3RkOjpzZXQsIGZpbmQgdGhlIGFw
cHJvcHJpYXRlCisgICAgICAgICAga2V5IGluIHRoZSByYW5nZSwgYW5kIHJldHVybiB0aGUgdmFs
dWUgaWYgb25lIGV4aXN0cy4KKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5T2Jq
ZWN0U3RvcmU6OnZhbHVlRm9yS2V5KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuaDoKKyAgICAgICAgCisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmdldFJlY29yZCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtR2V0UmVjb3Jk
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2Uu
aDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlE
QkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpV
bmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjpnZXRSZWNvcmQpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmg6CisgICAg
ICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5Qcm9jZXNzSURCU2VydmVyOjpnZXRSZWNvcmQp
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIu
aDoKKworMjAxNS0xMC0zMCAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKICAg
ICAgICAgTW9kZXJuIElEQjogSURCT2JqZWN0U3RvcmUuYWRkKCkgc3VwcG9ydC4KICAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDcxMQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZURhdGEuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2VEYXRhLmNwcApp
bmRleCA1NTQ2Mjk0Li5jMDFhMmFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJLZXlSYW5nZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlRGF0YS5jcHAKQEAgLTI4LDggKzI4LDI4IEBACiAKICNp
ZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAorI2luY2x1ZGUgIklEQktleS5oIgorCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKK0lEQktleVJhbmdlRGF0YTo6SURCS2V5UmFuZ2VEYXRhKElEQktl
eSoga2V5KQorICAgIDogaXNOdWxsKCFrZXkpCisgICAgLCBsb3dlcktleShrZXkpCisgICAgLCB1
cHBlcktleShrZXkpCisgICAgLCBsb3dlck9wZW4oZmFsc2UpCisgICAgLCB1cHBlck9wZW4oZmFs
c2UpCit7Cit9CisKK0lEQktleVJhbmdlRGF0YTo6SURCS2V5UmFuZ2VEYXRhKGNvbnN0IElEQktl
eURhdGEmIGtleURhdGEpCisgICAgOiBpc051bGwoa2V5RGF0YS5pc051bGwoKSkKKyAgICAsIGxv
d2VyS2V5KGtleURhdGEpCisgICAgLCB1cHBlcktleShrZXlEYXRhKQorICAgICwgbG93ZXJPcGVu
KGZhbHNlKQorICAgICwgdXBwZXJPcGVuKGZhbHNlKQoreworfQorCiBJREJLZXlSYW5nZURhdGEg
SURCS2V5UmFuZ2VEYXRhOjppc29sYXRlZENvcHkoKSBjb25zdAogewogICAgIElEQktleVJhbmdl
RGF0YSByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9JREJLZXlSYW5nZURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QktleVJhbmdlRGF0YS5oCmluZGV4IDk4YzgyY2EuLjkzM2FhNDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlRGF0YS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlRGF0YS5oCkBAIC0zMyw2ICsz
Myw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgSURCS2V5OworCiBzdHJ1Y3Qg
SURCS2V5UmFuZ2VEYXRhIHsKICAgICBJREJLZXlSYW5nZURhdGEoKQogICAgICAgICA6IGlzTnVs
bCh0cnVlKQpAQCAtNDEsNiArNDMsOSBAQCBzdHJ1Y3QgSURCS2V5UmFuZ2VEYXRhIHsKICAgICB7
CiAgICAgfQogCisgICAgSURCS2V5UmFuZ2VEYXRhKElEQktleSopOworICAgIElEQktleVJhbmdl
RGF0YShjb25zdCBJREJLZXlEYXRhJik7CisKICAgICBJREJLZXlSYW5nZURhdGEoSURCS2V5UmFu
Z2UqIGtleVJhbmdlKQogICAgICAgICA6IGlzTnVsbCgha2V5UmFuZ2UpCiAgICAgICAgICwgbG93
ZXJPcGVuKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAppbmRleCBkMDU4
ZjQxLi5kMDVmZjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAtMjgs
NiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKKyNpbmNsdWRlICJJ
REJLZXlSYW5nZURhdGEuaCIKICNpbmNsdWRlICJJREJPcGVuREJSZXF1ZXN0SW1wbC5oIgogI2lu
Y2x1ZGUgIklEQlJlcXVlc3REYXRhLmgiCiAjaW5jbHVkZSAiSURCUmVzdWx0RGF0YS5oIgpAQCAt
MTM4LDE0ICsxMzksMTQgQEAgdm9pZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZFB1dE9yQWRk
KGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCiAgICAgY29tcGxldGVPcGVyYXRpb24o
cmVzdWx0RGF0YSk7CiB9CiAKLXZvaWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRSZWNvcmQo
VHJhbnNhY3Rpb25PcGVyYXRpb24mIG9wZXJhdGlvbiwgUmVmUHRyPElEQktleT4mIGtleSkKK3Zv
aWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRSZWNvcmQoVHJhbnNhY3Rpb25PcGVyYXRpb24m
IG9wZXJhdGlvbiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZURhdGEpCiB7CiAgICAg
TE9HKEluZGV4ZWREQiwgIklEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6Z2V0UmVjb3JkIik7CiAKLSAg
ICBBU1NFUlQoa2V5KTsKKyAgICBBU1NFUlQoIWtleVJhbmdlRGF0YS5pc051bGwpOwogCiAgICAg
c2F2ZU9wZXJhdGlvbihvcGVyYXRpb24pOwotICAgIG1fZGVsZWdhdGUtPmdldFJlY29yZChJREJS
ZXF1ZXN0RGF0YShvcGVyYXRpb24pLCBrZXkuZ2V0KCkpOworICAgIG1fZGVsZWdhdGUtPmdldFJl
Y29yZChJREJSZXF1ZXN0RGF0YShvcGVyYXRpb24pLCBrZXlSYW5nZURhdGEpOwogfQogCiB2b2lk
IElEQkNvbm5lY3Rpb25Ub1NlcnZlcjo6ZGlkR2V0UmVjb3JkKGNvbnN0IElEQlJlc3VsdERhdGEm
IHJlc3VsdERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggNTI5MTFlNy4u
YjMxOWZmZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkNvbm5lY3Rpb25Ub1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtNzAsNyArNzAsNyBA
QCBwdWJsaWM6CiAgICAgdm9pZCBwdXRPckFkZChUcmFuc2FjdGlvbk9wZXJhdGlvbiYsIFJlZlB0
cjxJREJLZXk+JiwgUmVmUHRyPFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZT4mLCBjb25zdCBJbmRleGVk
REI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSk7CiAgICAgdm9pZCBkaWRQdXRPckFkZChjb25z
dCBJREJSZXN1bHREYXRhJik7CiAKLSAgICB2b2lkIGdldFJlY29yZChUcmFuc2FjdGlvbk9wZXJh
dGlvbiYsIFJlZlB0cjxJREJLZXk+Jik7CisgICAgdm9pZCBnZXRSZWNvcmQoVHJhbnNhY3Rpb25P
cGVyYXRpb24mLCBjb25zdCBJREJLZXlSYW5nZURhdGEmKTsKICAgICB2b2lkIGRpZEdldFJlY29y
ZChjb25zdCBJREJSZXN1bHREYXRhJik7CiAKICAgICB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKElE
QlRyYW5zYWN0aW9uJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlvblRvU2VydmVyRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0
ZS5oCmluZGV4IGVhZGE3MzYuLmViYWVhZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9u
VG9TZXJ2ZXJEZWxlZ2F0ZS5oCkBAIC00Myw2ICs0Myw4IEBAIG5hbWVzcGFjZSBJbmRleGVkREIg
ewogZW51bSBjbGFzcyBPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGU7CiB9CiAKK3N0cnVjdCBJREJL
ZXlSYW5nZURhdGE7CisKIG5hbWVzcGFjZSBJREJDbGllbnQgewogCiBjbGFzcyBJREJDb25uZWN0
aW9uVG9TZXJ2ZXJEZWxlZ2F0ZSB7CkBAIC01Nyw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJ
REJPYmplY3RTdG9yZUluZm8mKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0
b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBJ
REJLZXkqLCBTZXJpYWxpemVkU2NyaXB0VmFsdWUmLCBjb25zdCBJbmRleGVkREI6Ok9iamVjdFN0
b3JlT3ZlcndyaXRlTW9kZSkgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBnZXRSZWNvcmQoY29uc3Qg
SURCUmVxdWVzdERhdGEmLCBJREJLZXkqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFJlY29y
ZChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgZXN0YWJsaXNoVHJhbnNhY3Rpb24odWludDY0X3QgZGF0YWJhc2VDb25u
ZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJikgPSAwOwogCiAgICAg
dmlydHVhbCB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNv
bm5lY3Rpb25JZGVudGlmaWVyKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCT2JqZWN0U3RvcmVJbXBsLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPYmplY3RTdG9yZUltcGwuY3BwCmluZGV4
IGNjZTJiMWQuLjFiYTcxMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJPYmplY3RTdG9yZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPYmplY3RTdG9yZUltcGwuY3BwCkBAIC0zMiw2
ICszMiw3IEBACiAjaW5jbHVkZSAiSURCQmluZGluZ1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIklE
QkVycm9yLmgiCiAjaW5jbHVkZSAiSURCS2V5LmgiCisjaW5jbHVkZSAiSURCS2V5UmFuZ2VEYXRh
LmgiCiAjaW5jbHVkZSAiSURCUmVxdWVzdEltcGwuaCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlv
bkltcGwuaCIKICNpbmNsdWRlICJJbmRleGVkREIuaCIKQEAgLTE0NywxMyArMTQ4LDM5IEBAIFJl
ZlB0cjxXZWJDb3JlOjpJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6Z2V0KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQqIGNvbnRleHQsCiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAot
ICAgIFJlZjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gbV90cmFuc2FjdGlvbi0+cmVxdWVzdEdldFJl
Y29yZCgqY29udGV4dCwgKnRoaXMsICppZGJLZXkpOwotICAgIHJldHVybiBhZG9wdFJlZihyZXF1
ZXN0LmxlYWtSZWYoKSk7CisgICAgUmVmPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBtX3RyYW5zYWN0
aW9uLT5yZXF1ZXN0R2V0UmVjb3JkKCpjb250ZXh0LCAqdGhpcywgaWRiS2V5LmdldCgpKTsKKyAg
ICByZXR1cm4gV1RGOjptb3ZlKHJlcXVlc3QpOwogfQogCi1SZWZQdHI8V2ViQ29yZTo6SURCUmVx
dWVzdD4gSURCT2JqZWN0U3RvcmU6OmdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgSURCS2V5
UmFuZ2UqLCBFeGNlcHRpb25Db2RlJikKK1JlZlB0cjxXZWJDb3JlOjpJREJSZXF1ZXN0PiBJREJP
YmplY3RTdG9yZTo6Z2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIElEQktleVJh
bmdlKiBrZXlSYW5nZSwgRXhjZXB0aW9uQ29kZSYgZWMpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICBMT0coSW5kZXhlZERCLCAiSURCT2JqZWN0U3RvcmU6OmdldCIp
OworCisgICAgaWYgKCFjb250ZXh0KSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7
CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmICghbV90cmFuc2FjdGlv
bi0+aXNBY3RpdmUoKSkgeworICAgICAgICBlYyA9IHN0YXRpY19jYXN0PEV4Y2VwdGlvbkNvZGU+
KElEQkV4Y2VwdGlvbkNvZGU6OlRyYW5zYWN0aW9uSW5hY3RpdmVFcnJvcik7CisgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgIH0KKworICAgIGlmIChtX2RlbGV0ZWQpIHsKKyAgICAgICAgZWMg
PSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisg
ICAgSURCS2V5UmFuZ2VEYXRhIGtleVJhbmdlRGF0YShrZXlSYW5nZSk7CisgICAgaWYgKGtleVJh
bmdlRGF0YS5pc051bGwKKyAgICAgICAgfHwgKCFrZXlSYW5nZURhdGEubG93ZXJLZXkuaXNWYWxp
ZCgpICYmICFrZXlSYW5nZURhdGEubG93ZXJLZXkuaXNOdWxsKCkpCisgICAgICAgIHx8ICgha2V5
UmFuZ2VEYXRhLnVwcGVyS2V5LmlzVmFsaWQoKSAmJiAha2V5UmFuZ2VEYXRhLnVwcGVyS2V5Lmlz
TnVsbCgpKSkgeworICAgICAgICBlYyA9IHN0YXRpY19jYXN0PEV4Y2VwdGlvbkNvZGU+KElEQkV4
Y2VwdGlvbkNvZGU6OkRhdGFFcnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KworICAgIFJlZjxJREJSZXF1ZXN0PiByZXF1ZXN0ID0gbV90cmFuc2FjdGlvbi0+cmVxdWVzdEdl
dFJlY29yZCgqY29udGV4dCwgKnRoaXMsIGtleVJhbmdlRGF0YSk7CisgICAgcmV0dXJuIFdURjo6
bW92ZShyZXF1ZXN0KTsKIH0KIAogUmVmUHRyPFdlYkNvcmU6OklEQlJlcXVlc3Q+IElEQk9iamVj
dFN0b3JlOjphZGQoSlNDOjpFeGVjU3RhdGUmIGV4ZWNTdGF0ZSwgRGVwcmVjYXRlZDo6U2NyaXB0
VmFsdWUmIHZhbHVlLCBjb25zdCBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRp
b25Db2RlJiBlYykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJUcmFuc2FjdGlvbkltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5jcHAKaW5kZXggYmJhZjY2Yi4uMzU3
NDE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQlRyYW5zYWN0aW9uSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNp
bmNsdWRlICJJREJEYXRhYmFzZUltcGwuaCIKICNpbmNsdWRlICJJREJFcnJvci5oIgogI2luY2x1
ZGUgIklEQkV2ZW50RGlzcGF0Y2hlci5oIgorI2luY2x1ZGUgIklEQktleVJhbmdlRGF0YS5oIgog
I2luY2x1ZGUgIklEQk9iamVjdFN0b3JlLmgiCiAjaW5jbHVkZSAiSURCUmVxdWVzdEltcGwuaCIK
ICNpbmNsdWRlICJJREJSZXN1bHREYXRhLmgiCkBAIC0zODUsMjUgKzM4NiwyNSBAQCB2b2lkIElE
QlRyYW5zYWN0aW9uOjpkaWRDcmVhdGVPYmplY3RTdG9yZU9uU2VydmVyKGNvbnN0IElEQlJlc3Vs
dERhdGEmIHJlc3VsdERhdAogICAgIEFTU0VSVF9VTlVTRUQocmVzdWx0RGF0YSwgcmVzdWx0RGF0
YS50eXBlKCkgPT0gSURCUmVzdWx0VHlwZTo6Q3JlYXRlT2JqZWN0U3RvcmVTdWNjZXNzKTsKIH0K
IAotUmVmPElEQlJlcXVlc3Q+IElEQlRyYW5zYWN0aW9uOjpyZXF1ZXN0R2V0UmVjb3JkKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIElEQk9iamVjdFN0b3JlJiBvYmplY3RTdG9yZSwg
SURCS2V5JiBrZXkpCitSZWY8SURCUmVxdWVzdD4gSURCVHJhbnNhY3Rpb246OnJlcXVlc3RHZXRS
ZWNvcmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgSURCT2JqZWN0U3RvcmUmIG9i
amVjdFN0b3JlLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdlRGF0YSkKIHsKICAgICBM
T0coSW5kZXhlZERCLCAiSURCVHJhbnNhY3Rpb246OnJlcXVlc3RHZXRSZWNvcmQiKTsKICAgICBB
U1NFUlQoaXNBY3RpdmUoKSk7Ci0gICAgQVNTRVJUKGtleS5pc1ZhbGlkKCkpOworICAgIEFTU0VS
VCgha2V5UmFuZ2VEYXRhLmlzTnVsbCk7CiAKICAgICBSZWY8SURCUmVxdWVzdD4gcmVxdWVzdCA9
IElEQlJlcXVlc3Q6OmNyZWF0ZShjb250ZXh0LCBvYmplY3RTdG9yZSwgKnRoaXMpOwogCi0gICAg
YXV0byBvcGVyYXRpb24gPSBjcmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbigqdGhpcywgcmVxdWVz
dC5nZXQoKSwgJklEQlRyYW5zYWN0aW9uOjpkaWRHZXRSZWNvcmRPblNlcnZlciwgJklEQlRyYW5z
YWN0aW9uOjpnZXRSZWNvcmRPblNlcnZlciwgJmtleSk7CisgICAgYXV0byBvcGVyYXRpb24gPSBj
cmVhdGVUcmFuc2FjdGlvbk9wZXJhdGlvbigqdGhpcywgcmVxdWVzdC5nZXQoKSwgJklEQlRyYW5z
YWN0aW9uOjpkaWRHZXRSZWNvcmRPblNlcnZlciwgJklEQlRyYW5zYWN0aW9uOjpnZXRSZWNvcmRP
blNlcnZlciwga2V5UmFuZ2VEYXRhKTsKICAgICBzY2hlZHVsZU9wZXJhdGlvbihXVEY6Om1vdmUo
b3BlcmF0aW9uKSk7CiAKICAgICByZXR1cm4gV1RGOjptb3ZlKHJlcXVlc3QpOwogfQogCi12b2lk
IElEQlRyYW5zYWN0aW9uOjpnZXRSZWNvcmRPblNlcnZlcihUcmFuc2FjdGlvbk9wZXJhdGlvbiYg
b3BlcmF0aW9uLCBSZWZQdHI8SURCS2V5PiBrZXkpCit2b2lkIElEQlRyYW5zYWN0aW9uOjpnZXRS
ZWNvcmRPblNlcnZlcihUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCBJREJL
ZXlSYW5nZURhdGEmIGtleVJhbmdlKQogewogICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2Fj
dGlvbjo6Z2V0UmVjb3JkT25TZXJ2ZXIiKTsKIAotICAgIHNlcnZlckNvbm5lY3Rpb24oKS5nZXRS
ZWNvcmQob3BlcmF0aW9uLCBrZXkpOworICAgIHNlcnZlckNvbm5lY3Rpb24oKS5nZXRSZWNvcmQo
b3BlcmF0aW9uLCBrZXlSYW5nZSk7CiB9CiAKIHZvaWQgSURCVHJhbnNhY3Rpb246OmRpZEdldFJl
Y29yZE9uU2VydmVyKElEQlJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IElEQlJlc3VsdERhdGEmIHJl
c3VsdERhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9j
bGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmgKaW5kZXggYjMzYjY1NC4uNDgyZjFlMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRy
YW5zYWN0aW9uSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudC9JREJUcmFuc2FjdGlvbkltcGwuaApAQCAtNDMsNiArNDMsOCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBjbGFzcyBJREJPYmplY3RTdG9yZUluZm87CiBjbGFzcyBJREJSZXN1bHREYXRhOwog
CitzdHJ1Y3QgSURCS2V5UmFuZ2VEYXRhOworCiBuYW1lc3BhY2UgSURCQ2xpZW50IHsKIAogY2xh
c3MgSURCRGF0YWJhc2U7CkBAIC04OCw3ICs5MCw3IEBAIHB1YmxpYzoKICAgICBSZWY8SURCT2Jq
ZWN0U3RvcmU+IGNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYpOwog
CiAgICAgUmVmPElEQlJlcXVlc3Q+IHJlcXVlc3RQdXRPckFkZChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgSURCT2JqZWN0U3RvcmUmLCBJREJLZXkqLCBTZXJpYWxpemVkU2NyaXB0VmFsdWUmLCBJ
bmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSk7Ci0gICAgUmVmPElEQlJlcXVlc3Q+
IHJlcXVlc3RHZXRSZWNvcmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIElEQk9iamVjdFN0b3Jl
JiwgSURCS2V5Jik7CisgICAgUmVmPElEQlJlcXVlc3Q+IHJlcXVlc3RHZXRSZWNvcmQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIElEQk9iamVjdFN0b3JlJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRh
Jik7CiAKICAgICB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgb2JqZWN0U3Rv
cmVOYW1lKTsKIApAQCAtMTI0LDcgKzEyNiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwdXRPckFk
ZE9uU2VydmVyKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiwgUmVmUHRyPElEQktleT4sIFJlZlB0cjxT
ZXJpYWxpemVkU2NyaXB0VmFsdWU+LCBjb25zdCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3Zlcndy
aXRlTW9kZSYpOwogICAgIHZvaWQgZGlkUHV0T3JBZGRPblNlcnZlcihJREJSZXF1ZXN0JiwgY29u
c3QgSURCUmVzdWx0RGF0YSYpOwogCi0gICAgdm9pZCBnZXRSZWNvcmRPblNlcnZlcihUcmFuc2Fj
dGlvbk9wZXJhdGlvbiYsIFJlZlB0cjxJREJLZXk+KTsKKyAgICB2b2lkIGdldFJlY29yZE9uU2Vy
dmVyKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CiAgICAg
dm9pZCBkaWRHZXRSZWNvcmRPblNlcnZlcihJREJSZXF1ZXN0JiwgY29uc3QgSURCUmVzdWx0RGF0
YSYpOwogCiAgICAgdm9pZCBkZWxldGVPYmplY3RTdG9yZU9uU2VydmVyKFRyYW5zYWN0aW9uT3Bl
cmF0aW9uJiwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5o
CmluZGV4IDdlYzU4ZjIuLjEyN2E5MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgKQEAgLTM5LDYgKzM5
LDggQEAgY2xhc3MgSURCUmVzb3VyY2VJZGVudGlmaWVyOwogY2xhc3MgSURCVHJhbnNhY3Rpb25J
bmZvOwogY2xhc3MgVGhyZWFkU2FmZURhdGFCdWZmZXI7CiAKK3N0cnVjdCBJREJLZXlSYW5nZURh
dGE7CisKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewogCiBjbGFzcyBJREJCYWNraW5nU3RvcmUgewpA
QCAtNTYsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBJREJFcnJvciBrZXlFeGlzdHNJ
bk9iamVjdFN0b3JlKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEm
LCBib29sJiBrZXlFeGlzdHMpID0gMDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGRlbGV0ZVJlY29y
ZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWlu
dDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJikgPSAwOwogICAg
IHZpcnR1YWwgSURCRXJyb3IgcHV0UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
dHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNv
bnN0IElEQktleURhdGEmLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWUpID0gMDsK
LSAgICB2aXJ0dWFsIElEQkVycm9yIGdldFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZp
ZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCBjb25zdCBJREJLZXlEYXRhJiwgVGhyZWFkU2FmZURhdGFCdWZmZXImIG91dFZhbHVlKSA9IDA7
CisgICAgdmlydHVhbCBJREJFcnJvciBnZXRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmll
ciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiwgVGhyZWFkU2FmZURhdGFCdWZmZXImIG91dFZhbHVl
KSA9IDA7CiAgICAgdmlydHVhbCBJREJFcnJvciBnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0
U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCYga2V5TnVtYmVyKSA9IDA7CiAKIH07CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3Bw
CmluZGV4IDAyYmRlYmQuLjgzNWMxNDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBAIC0xOTEsNyArMTkxLDcgQEAg
dm9pZCBJREJTZXJ2ZXI6OnB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0
YSwgY29uc3QgSURCS2V5RGF0YSYga2UKICAgICB0cmFuc2FjdGlvbi0+cHV0T3JBZGQocmVxdWVz
dERhdGEsIGtleURhdGEsIHZhbHVlRGF0YSwgb3ZlcndyaXRlTW9kZSk7CiB9CiAKLXZvaWQgSURC
U2VydmVyOjpnZXRSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25z
dCBJREJLZXlEYXRhJiBrZXlEYXRhKQordm9pZCBJREJTZXJ2ZXI6OmdldFJlY29yZChjb25zdCBJ
REJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFu
Z2VEYXRhKQogewogICAgIExPRyhJbmRleGVkREIsICJJREJTZXJ2ZXI6OmdldFJlY29yZCIpOwog
CkBAIC0xOTksNyArMTk5LDcgQEAgdm9pZCBJREJTZXJ2ZXI6OmdldFJlY29yZChjb25zdCBJREJS
ZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQktleURhdGEmIGsKICAgICBpZiAoIXRy
YW5zYWN0aW9uKQogICAgICAgICByZXR1cm47CiAKLSAgICB0cmFuc2FjdGlvbi0+Z2V0UmVjb3Jk
KHJlcXVlc3REYXRhLCBrZXlEYXRhKTsKKyAgICB0cmFuc2FjdGlvbi0+Z2V0UmVjb3JkKHJlcXVl
c3REYXRhLCBrZXlSYW5nZURhdGEpOwogfQogCiB2b2lkIElEQlNlcnZlcjo6ZXN0YWJsaXNoVHJh
bnNhY3Rpb24odWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURC
VHJhbnNhY3Rpb25JbmZvJiBpbmZvKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCmluZGV4IDMxZDg3M2IuLjY1MGUwMTYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVy
LmgKQEAgLTYyLDcgKzYyLDcgQEAgcHVibGljOgogICAgIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUo
Y29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mKTsKICAgICB2
b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgU3RyaW5n
JiBvYmplY3RTdG9yZU5hbWUpOwogICAgIHZvaWQgcHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERh
dGEmLCBjb25zdCBJREJLZXlEYXRhJiwgY29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVl
RGF0YSwgSW5kZXhlZERCOjpPYmplY3RTdG9yZU92ZXJ3cml0ZU1vZGUpOwotICAgIHZvaWQgZ2V0
UmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5RGF0YSYpOworICAgIHZv
aWQgZ2V0UmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRh
Jik7CiAgICAgdm9pZCBlc3RhYmxpc2hUcmFuc2FjdGlvbih1aW50NjRfdCBkYXRhYmFzZUNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mKTsKICAgICB2b2lkIGRh
dGFiYXNlQ29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlm
aWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAK
aW5kZXggZmVhYWZhMy4uNjIzYjQ5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0
b3JlVHJhbnNhY3Rpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSU5ERVhF
RF9EQVRBQkFTRSkKIAorI2luY2x1ZGUgIklEQktleVJhbmdlRGF0YS5oIgogI2luY2x1ZGUgIklu
ZGV4ZWREQi5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZW1vcnlJREJCYWNr
aW5nU3RvcmUuaCIKQEAgLTEwNyw3ICsxMDgsNyBAQCB2b2lkIE1lbW9yeUJhY2tpbmdTdG9yZVRy
YW5zYWN0aW9uOjpyZWNvcmRWYWx1ZUNoYW5nZWQoTWVtb3J5T2JqZWN0U3RvcmUmIG9iamVjdAog
ICAgIGlmICghYWRkUmVzdWx0LmlzTmV3RW50cnkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFk
ZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBvYmplY3RTdG9yZS52YWx1ZUZvcktleShrZXkpOwor
ICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFsdWUgPSBvYmplY3RTdG9yZS52YWx1ZUZvcktleVJh
bmdlKElEQktleVJhbmdlRGF0YShrZXkpKTsKIH0KIAogdm9pZCBNZW1vcnlCYWNraW5nU3RvcmVU
cmFuc2FjdGlvbjo6YWJvcnQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcAppbmRl
eCA1YjFmNWRjLi44ZTNkNDljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcApA
QCAtMjIxLDcgKzIyMSw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6cHV0UmVj
b3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3RpCiAgICAgcmV0dXJuIElE
QkVycm9yKCk7CiB9CiAKLUlEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0UmVjb3Jk
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50
NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIFRo
cmVhZFNhZmVEYXRhQnVmZmVyJiBvdXRWYWx1ZSkKK0lEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdT
dG9yZTo6Z2V0UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJh
bmdlRGF0YSYga2V5UmFuZ2VEYXRhLCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgb3V0VmFsdWUpCiB7
CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0UmVjb3JkIik7
CiAKQEAgLTIzNCw3ICsyMzQsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6Omdl
dFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aQogICAgIGlmICgh
b2JqZWN0U3RvcmUpCiAgICAgICAgIHJldHVybiBJREJFcnJvcihJREJFeGNlcHRpb25Db2RlOjpV
bmtub3duLCBXVEY6OkFTQ0lJTGl0ZXJhbCgiTm8gYmFja2luZyBzdG9yZSBvYmplY3Qgc3RvcmUg
Zm91bmQiKSk7CiAKLSAgICBvdXRWYWx1ZSA9IG9iamVjdFN0b3JlLT52YWx1ZUZvcktleShrZXlE
YXRhKTsKKyAgICBvdXRWYWx1ZSA9IG9iamVjdFN0b3JlLT52YWx1ZUZvcktleVJhbmdlKGtleVJh
bmdlRGF0YSk7CiAgICAgcmV0dXJuIElEQkVycm9yKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNr
aW5nU3RvcmUuaAppbmRleCBlZWU4Mzk3Li5jYzAzNmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tp
bmdTdG9yZS5oCkBAIC01Nyw3ICs1Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIElEQkVycm9y
IGtleUV4aXN0c0luT2JqZWN0U3RvcmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3Qg
SURCS2V5RGF0YSYsIGJvb2wmIGtleUV4aXN0cykgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVh
bCBJREJFcnJvciBkZWxldGVSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3Qg
SURCS2V5RGF0YSYpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgSURCRXJyb3IgcHV0UmVj
b3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1
aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBU
aHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWUpIG92ZXJyaWRlIGZpbmFsOwotICAgIHZpcnR1YWwg
SURCRXJyb3IgZ2V0UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rp
b25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktl
eURhdGEmLCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgb3V0VmFsdWUpIG92ZXJyaWRlIGZpbmFsOwor
ICAgIHZpcnR1YWwgSURCRXJyb3IgZ2V0UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIs
IGNvbnN0IElEQktleVJhbmdlRGF0YSYsIFRocmVhZFNhZmVEYXRhQnVmZmVyJiBvdXRWYWx1ZSkg
b3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCBJREJFcnJvciBnZW5lcmF0ZUtleU51bWJlcihj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0
X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50NjRfdCYga2V5TnVtYmVyKSBvdmVycmlkZSBm
aW5hbDsKIAogICAgIHZvaWQgcmVtb3ZlT2JqZWN0U3RvcmVGb3JWZXJzaW9uQ2hhbmdlQWJvcnQo
TWVtb3J5T2JqZWN0U3RvcmUmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3BwCmluZGV4IDE0NWM4
OWUuLjIxMTIwMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNwcApAQCAtMjgsNiArMjgsNyBA
QAogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCiAKKyNpbmNsdWRlICJJREJLZXlSYW5n
ZURhdGEuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVtb3J5QmFja2luZ1N0
b3JlVHJhbnNhY3Rpb24uaCIKIApAQCAtODMsOSArODQsMTAgQEAgdm9pZCBNZW1vcnlPYmplY3RT
dG9yZTo6ZGVsZXRlUmVjb3JkKGNvbnN0IElEQktleURhdGEmIGtleSkKICAgICBpZiAoIW1fa2V5
VmFsdWVTdG9yZSkKICAgICAgICAgcmV0dXJuOwogCisgICAgQVNTRVJUKG1fb3JkZXJlZEtleXMp
OworCiAgICAgbV9rZXlWYWx1ZVN0b3JlLT5yZW1vdmUoa2V5KTsKLSAgICBpZiAobV9vcmRlcmVk
S2V5cykKLSAgICAgICAgbV9vcmRlcmVkS2V5cy0+ZXJhc2Uoa2V5KTsKKyAgICBtX29yZGVyZWRL
ZXlzLT5lcmFzZShrZXkpOwogfQogCiB2b2lkIE1lbW9yeU9iamVjdFN0b3JlOjpwdXRSZWNvcmQo
TWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBjb25zdCBJREJLZXlE
YXRhJiBrZXlEYXRhLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWUpCkBAIC0xMDIs
MjIgKzEwNCw0OCBAQCB2b2lkIE1lbW9yeU9iamVjdFN0b3JlOjpwdXRSZWNvcmQoTWVtb3J5QmFj
a2luZ1N0b3JlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBjbwogCiB2b2lkIE1lbW9yeU9iamVj
dFN0b3JlOjpzZXRLZXlWYWx1ZShjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhLCBjb25zdCBUaHJl
YWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWUpCiB7Ci0gICAgaWYgKCFtX2tleVZhbHVlU3RvcmUpCisg
ICAgaWYgKCFtX2tleVZhbHVlU3RvcmUpIHsKKyAgICAgICAgQVNTRVJUKCFtX29yZGVyZWRLZXlz
KTsKICAgICAgICAgbV9rZXlWYWx1ZVN0b3JlID0gc3RkOjptYWtlX3VuaXF1ZTxLZXlWYWx1ZU1h
cD4oKTsKKyAgICAgICAgbV9vcmRlcmVkS2V5cyA9IHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpzZXQ8
SURCS2V5RGF0YT4+KCk7CisgICAgfQogCiAgICAgYXV0byByZXN1bHQgPSBtX2tleVZhbHVlU3Rv
cmUtPnNldChrZXlEYXRhLCB2YWx1ZSk7Ci0gICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5ICYmIG1f
b3JkZXJlZEtleXMpCisgICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICBtX29yZGVy
ZWRLZXlzLT5pbnNlcnQoa2V5RGF0YSk7CiB9CiAKLVRocmVhZFNhZmVEYXRhQnVmZmVyIE1lbW9y
eU9iamVjdFN0b3JlOjp2YWx1ZUZvcktleShjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhKSBjb25z
dAorVGhyZWFkU2FmZURhdGFCdWZmZXIgTWVtb3J5T2JqZWN0U3RvcmU6OnZhbHVlRm9yS2V5UmFu
Z2UoY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZURhdGEpIGNvbnN0CiB7CiAgICAgTE9H
KEluZGV4ZWREQiwgIk1lbW9yeU9iamVjdFN0b3JlOjp2YWx1ZUZvcktleSIpOwogCiAgICAgaWYg
KCFtX2tleVZhbHVlU3RvcmUpCiAgICAgICAgIHJldHVybiBUaHJlYWRTYWZlRGF0YUJ1ZmZlcigp
OwogCi0gICAgcmV0dXJuIG1fa2V5VmFsdWVTdG9yZS0+Z2V0KGtleURhdGEpOworICAgIGlmIChr
ZXlSYW5nZURhdGEuaXNFeGFjdGx5T25lS2V5KCkpCisgICAgICAgIHJldHVybiBtX2tleVZhbHVl
U3RvcmUtPmdldChrZXlSYW5nZURhdGEubG93ZXJLZXkpOworCisgICAgQVNTRVJUKG1fb3JkZXJl
ZEtleXMpOworCisgICAgYXV0byBsb3dlc3RJblJhbmdlID0gbV9vcmRlcmVkS2V5cy0+bG93ZXJf
Ym91bmQoa2V5UmFuZ2VEYXRhLmxvd2VyS2V5KTsKKworICAgIGlmIChsb3dlc3RJblJhbmdlID09
IG1fb3JkZXJlZEtleXMtPmVuZCgpKQorICAgICAgICByZXR1cm4gVGhyZWFkU2FmZURhdGFCdWZm
ZXIoKTsKKworICAgIGlmIChrZXlSYW5nZURhdGEubG93ZXJPcGVuICYmICpsb3dlc3RJblJhbmdl
ID09IGtleVJhbmdlRGF0YS5sb3dlcktleSkKKyAgICAgICAgKytsb3dlc3RJblJhbmdlOworCisg
ICAgaWYgKGxvd2VzdEluUmFuZ2UgPT0gbV9vcmRlcmVkS2V5cy0+ZW5kKCkpCisgICAgICAgIHJl
dHVybiBUaHJlYWRTYWZlRGF0YUJ1ZmZlcigpOworCisgICAgaWYgKCFrZXlSYW5nZURhdGEudXBw
ZXJLZXkuaXNOdWxsKCkpIHsKKyAgICAgICAgaWYgKGxvd2VzdEluUmFuZ2UtPmNvbXBhcmUoa2V5
UmFuZ2VEYXRhLnVwcGVyS2V5KSA+IDApCisgICAgICAgICAgICByZXR1cm4gVGhyZWFkU2FmZURh
dGFCdWZmZXIoKTsKKyAgICAgICAgaWYgKGtleVJhbmdlRGF0YS51cHBlck9wZW4gJiYgKmxvd2Vz
dEluUmFuZ2UgPT0ga2V5UmFuZ2VEYXRhLnVwcGVyS2V5KQorICAgICAgICAgICAgcmV0dXJuIFRo
cmVhZFNhZmVEYXRhQnVmZmVyKCk7CisgICAgfQorCisgICAgcmV0dXJuIG1fa2V5VmFsdWVTdG9y
ZS0+Z2V0KCpsb3dlc3RJblJhbmdlKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5
T2JqZWN0U3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9N
ZW1vcnlPYmplY3RTdG9yZS5oCmluZGV4IDZiZTE5NmUuLmMyMTJiODEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmpl
Y3RTdG9yZS5oCkBAIC0zOCw2ICszOCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
SURCS2V5RGF0YTsKIAorc3RydWN0IElEQktleVJhbmdlRGF0YTsKKwogbmFtZXNwYWNlIElEQlNl
cnZlciB7CiAKIGNsYXNzIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOwpAQCAtNjMsNyAr
NjUsNyBAQCBwdWJsaWM6CiAgICAgdWludDY0X3QgY3VycmVudEtleUdlbmVyYXRvclZhbHVlKCkg
Y29uc3QgeyByZXR1cm4gbV9rZXlHZW5lcmF0b3JWYWx1ZTsgfQogICAgIHZvaWQgc2V0S2V5R2Vu
ZXJhdG9yVmFsdWUodWludDY0X3QgdmFsdWUpIHsgbV9rZXlHZW5lcmF0b3JWYWx1ZSA9IHZhbHVl
OyB9CiAKLSAgICBUaHJlYWRTYWZlRGF0YUJ1ZmZlciB2YWx1ZUZvcktleShjb25zdCBJREJLZXlE
YXRhJikgY29uc3Q7CisgICAgVGhyZWFkU2FmZURhdGFCdWZmZXIgdmFsdWVGb3JLZXlSYW5nZShj
b25zdCBJREJLZXlSYW5nZURhdGEmKSBjb25zdDsKIAogICAgIGNvbnN0IElEQk9iamVjdFN0b3Jl
SW5mbyYgaW5mbygpIGNvbnN0IHsgcmV0dXJuIG1faW5mbzsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFi
YXNlLmNwcAppbmRleCBlMTUyM2JkLi43Yjk0NTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5j
cHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCisj
aW5jbHVkZSAiSURCS2V5UmFuZ2VEYXRhLmgiCiAjaW5jbHVkZSAiSURCUmVzdWx0RGF0YS5oIgog
I2luY2x1ZGUgIklEQlNlcnZlci5oIgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uSW5mby5oIgpA
QCAtMzcyLDE2ICszNzMsMTYgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybVB1
dE9yQWRkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSUQKICAgICBwZXJmb3Jt
S2V5RGF0YUNhbGxiYWNrKGNhbGxiYWNrSWRlbnRpZmllciwgZXJyb3IsIHJlc3VsdEtleSk7CiB9
CiAKLXZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0
YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIFZhbHVlRGF0YUNhbGxi
YWNrIGNhbGxiYWNrKQordm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0UmVjb3JkKGNvbnN0IElE
QlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5n
ZURhdGEsIFZhbHVlRGF0YUNhbGxiYWNrIGNhbGxiYWNrKQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAgICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6
Z2V0UmVjb3JkIik7CiAKICAgICB1aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFjayhj
YWxsYmFjayk7Ci0gICAgbV9zZXJ2ZXIucG9zdERhdGFiYXNlVGFzayhjcmVhdGVDcm9zc1RocmVh
ZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUdldFJlY29yZCwgY2FsbGJh
Y2tJRCwgcmVxdWVzdERhdGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCksIHJlcXVlc3REYXRhLm9i
amVjdFN0b3JlSWRlbnRpZmllcigpLCBrZXlEYXRhKSk7CisgICAgbV9zZXJ2ZXIucG9zdERhdGFi
YXNlVGFzayhjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6
cGVyZm9ybUdldFJlY29yZCwgY2FsbGJhY2tJRCwgcmVxdWVzdERhdGEudHJhbnNhY3Rpb25JZGVu
dGlmaWVyKCksIHJlcXVlc3REYXRhLm9iamVjdFN0b3JlSWRlbnRpZmllcigpLCBrZXlSYW5nZURh
dGEpKTsKIH0KIAotdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUdldFJlY29yZCh1aW50
NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJh
bnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0
IElEQktleURhdGEmIGtleURhdGEpCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtR2V0
UmVjb3JkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVu
dGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRp
ZmllciwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZURhdGEpCiB7CiAgICAgQVNTRVJU
KCFpc01haW5UaHJlYWQoKSk7CiAgICAgTE9HKEluZGV4ZWREQiwgIihkYikgVW5pcXVlSURCRGF0
YWJhc2U6OnBlcmZvcm1HZXRSZWNvcmQiKTsKQEAgLTM5MCw3ICszOTEsNyBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpwZXJmb3JtR2V0UmVjb3JkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmll
ciwgY29uc3QgSURCUgogICAgIEFTU0VSVChvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogCiAgICAg
VGhyZWFkU2FmZURhdGFCdWZmZXIgdmFsdWVEYXRhOwotICAgIElEQkVycm9yIGVycm9yID0gbV9i
YWNraW5nU3RvcmUtPmdldFJlY29yZCh0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3Jl
SWRlbnRpZmllciwga2V5RGF0YSwgdmFsdWVEYXRhKTsKKyAgICBJREJFcnJvciBlcnJvciA9IG1f
YmFja2luZ1N0b3JlLT5nZXRSZWNvcmQodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9y
ZUlkZW50aWZpZXIsIGtleVJhbmdlRGF0YSwgdmFsdWVEYXRhKTsKIAogICAgIG1fc2VydmVyLnBv
c3REYXRhYmFzZVRhc2tSZXBseShjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJ
REJEYXRhYmFzZTo6ZGlkUGVyZm9ybUdldFJlY29yZCwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJv
ciwgdmFsdWVEYXRhKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oCmluZGV4IDZkM2YwNzIuLjI3
MGZlY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9VbmlxdWVJREJEYXRhYmFzZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24m
LCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mLCBFcnJvckNhbGxiYWNrKTsKICAgICB2b2lkIGRl
bGV0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mLCBjb25zdCBTdHJp
bmcmIG9iamVjdFN0b3JlTmFtZSwgRXJyb3JDYWxsYmFjayk7CiAgICAgdm9pZCBwdXRPckFkZChj
b25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBUaHJlYWRTYWZl
RGF0YUJ1ZmZlciYgdmFsdWVEYXRhLCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9k
ZSwgS2V5RGF0YUNhbGxiYWNrKTsKLSAgICB2b2lkIGdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0
RGF0YSYsIGNvbnN0IElEQktleURhdGEmLCBWYWx1ZURhdGFDYWxsYmFjayk7CisgICAgdm9pZCBn
ZXRSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlSYW5nZURhdGEmLCBW
YWx1ZURhdGFDYWxsYmFjayk7CiAgICAgdm9pZCBjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJE
YXRhYmFzZVRyYW5zYWN0aW9uJiwgRXJyb3JDYWxsYmFjayk7CiAgICAgdm9pZCBhYm9ydFRyYW5z
YWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mLCBFcnJvckNhbGxiYWNrKTsKICAg
ICB2b2lkIHRyYW5zYWN0aW9uRGVzdHJveWVkKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24m
KTsKQEAgLTEwMSw3ICsxMDEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgcGVyZm9ybUNyZWF0ZU9i
amVjdFN0b3JlKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJ
ZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5m
byYpOwogICAgIHZvaWQgcGVyZm9ybURlbGV0ZU9iamVjdFN0b3JlKHVpbnQ2NF90IGNhbGxiYWNr
SWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lKTsKICAgICB2b2lkIHBlcmZvcm1Q
dXRPckFkZCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50
aWZpZXIsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFs
dWVEYXRhLCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSk7Ci0gICAgdm9pZCBw
ZXJmb3JtR2V0UmVjb3JkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0
b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYpOworICAgIHZvaWQgcGVyZm9ybUdldFJl
Y29yZCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRp
ZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpOwogICAgIHZvaWQgcGVyZm9ybUFjdGl2YXRlVHJh
bnNhY3Rpb25JbkJhY2tpbmdTdG9yZSh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0
IElEQlRyYW5zYWN0aW9uSW5mbyYpOwogCiAgICAgLy8gTWFpbiB0aHJlYWQgY2FsbGJhY2tzCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAKaW5kZXggNTc4MmNh
OC4uZGRhZmQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9u
LmNwcApAQCAtMTQ5LDE0ICsxNDksMTQgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0
aW9uOjpwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGMKICAgICB9
KTsKIH0KIAotdm9pZCBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjpnZXRSZWNvcmQoY29u
c3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRh
KQordm9pZCBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjpnZXRSZWNvcmQoY29uc3QgSURC
UmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdl
RGF0YSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
bjo6Z2V0UmVjb3JkIik7CiAKICAgICBBU1NFUlQobV90cmFuc2FjdGlvbkluZm8uaWRlbnRpZmll
cigpID09IHJlcXVlc3REYXRhLnRyYW5zYWN0aW9uSWRlbnRpZmllcigpKTsKIAogICAgIFJlZlB0
cjxVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uPiBzZWxmKHRoaXMpOwotICAgIG1fZGF0YWJh
c2VDb25uZWN0aW9uLT5kYXRhYmFzZSgpLmdldFJlY29yZChyZXF1ZXN0RGF0YSwga2V5RGF0YSwg
W3RoaXMsIHNlbGYsIHJlcXVlc3REYXRhXShjb25zdCBJREJFcnJvciYgZXJyb3IsIGNvbnN0IFRo
cmVhZFNhZmVEYXRhQnVmZmVyJiB2YWx1ZURhdGEpIHsKKyAgICBtX2RhdGFiYXNlQ29ubmVjdGlv
bi0+ZGF0YWJhc2UoKS5nZXRSZWNvcmQocmVxdWVzdERhdGEsIGtleVJhbmdlRGF0YSwgW3RoaXMs
IHNlbGYsIHJlcXVlc3REYXRhXShjb25zdCBJREJFcnJvciYgZXJyb3IsIGNvbnN0IFRocmVhZFNh
ZmVEYXRhQnVmZmVyJiB2YWx1ZURhdGEpIHsKICAgICAgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1
ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb246OmdldFJlY29yZCAoY2FsbGJhY2spIik7CiAKICAgICAg
ICAgaWYgKGVycm9yLmlzTnVsbCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uLmgKaW5kZXggODBhOGZhZS4uOGIyMzFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24u
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURC
RGF0YWJhc2VUcmFuc2FjdGlvbi5oCkBAIC00Miw2ICs0Miw4IEBAIGNsYXNzIElEQk9iamVjdFN0
b3JlSW5mbzsKIGNsYXNzIElEQlJlcXVlc3REYXRhOwogY2xhc3MgVGhyZWFkU2FmZURhdGFCdWZm
ZXI7CiAKK3N0cnVjdCBJREJLZXlSYW5nZURhdGE7CisKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewog
CiBjbGFzcyBVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb247CkBAIC02NSw3ICs2Nyw3IEBAIHB1
YmxpYzoKICAgICB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiwg
Y29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJik7CiAgICAgdm9pZCBkZWxldGVPYmplY3RTdG9yZShj
b25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lKTsKICAg
ICB2b2lkIHB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5RGF0YSYs
IGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2YWx1ZURhdGEsIEluZGV4ZWREQjo6T2JqZWN0
U3RvcmVPdmVyd3JpdGVNb2RlKTsKLSAgICB2b2lkIGdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0
RGF0YSYsIGNvbnN0IElEQktleURhdGEmKTsKKyAgICB2b2lkIGdldFJlY29yZChjb25zdCBJREJS
ZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpOwogCiAgICAgdm9pZCBkaWRBY3Rp
dmF0ZUluQmFja2luZ1N0b3JlKGNvbnN0IElEQkVycm9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNl
cnZlci5jcHAKaW5kZXggZGMwOWEwOS4uNDFjZTUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZl
ci5jcHAKQEAgLTMwLDcgKzMwLDcgQEAKIAogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Ub0NsaWVu
dC5oIgogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Ub1NlcnZlci5oIgotI2luY2x1ZGUgIklEQktl
eURhdGEuaCIKKyNpbmNsdWRlICJJREJLZXlSYW5nZURhdGEuaCIKICNpbmNsdWRlICJJREJPcGVu
REJSZXF1ZXN0SW1wbC5oIgogI2luY2x1ZGUgIklEQlJlcXVlc3REYXRhLmgiCiAjaW5jbHVkZSAi
SURCUmVzdWx0RGF0YS5oIgpAQCAtMTk0LDEzICsxOTQsMTIgQEAgdm9pZCBJblByb2Nlc3NJREJT
ZXJ2ZXI6OnB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgSURCS2V5
KiBrZXkKICAgICB9KTsKIH0KIAotdm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmdldFJlY29yZChj
b25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIElEQktleSoga2V5KQordm9pZCBJblBy
b2Nlc3NJREJTZXJ2ZXI6OmdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERh
dGEsIGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2VEYXRhKQogewogICAgIFJlZlB0cjxJ
blByb2Nlc3NJREJTZXJ2ZXI+IHNlbGYodGhpcyk7Ci0gICAgSURCS2V5RGF0YSBrZXlEYXRhKGtl
eSk7CiAKLSAgICBSdW5Mb29wOjpjdXJyZW50KCkuZGlzcGF0Y2goW3RoaXMsIHNlbGYsIHJlcXVl
c3REYXRhLCBrZXlEYXRhXSB7Ci0gICAgICAgIG1fc2VydmVyLT5nZXRSZWNvcmQocmVxdWVzdERh
dGEsIGtleURhdGEpOworICAgIFJ1bkxvb3A6OmN1cnJlbnQoKS5kaXNwYXRjaChbdGhpcywgc2Vs
ZiwgcmVxdWVzdERhdGEsIGtleVJhbmdlRGF0YV0geworICAgICAgICBtX3NlcnZlci0+Z2V0UmVj
b3JkKHJlcXVlc3REYXRhLCBrZXlSYW5nZURhdGEpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2Vy
dmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNz
SURCU2VydmVyLmgKaW5kZXggYjZhYzQyOS4uOWFkZmRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2
ZXIuaApAQCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9i
amVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZv
Jikgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNv
bnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpIG92ZXJy
aWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0
YSYsIElEQktleSosIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSYsIGNvbnN0IEluZGV4ZWREQjo6T2Jq
ZWN0U3RvcmVPdmVyd3JpdGVNb2RlKSBvdmVycmlkZSBmaW5hbDsKLSAgICB2aXJ0dWFsIHZvaWQg
Z2V0UmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgSURCS2V5Kikgb3ZlcnJpZGUgZmluYWw7
CisgICAgdmlydHVhbCB2b2lkIGdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0
IElEQktleVJhbmdlRGF0YSYpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBlc3Rh
Ymxpc2hUcmFuc2FjdGlvbih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBj
b25zdCBJREJUcmFuc2FjdGlvbkluZm8mKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZv
aWQgZGF0YWJhc2VDb25uZWN0aW9uQ2xvc2VkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklk
ZW50aWZpZXIpIG92ZXJyaWRlIGZpbmFsOwogCg==
</data>
<flag name="review"
          id="289531"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264401</attachid>
            <date>2015-10-30 10:36:20 -0700</date>
            <delta_ts>2015-10-30 10:53:17 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>42244</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkY2FjYjRiLi5lZGIxNzA5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTUtMTAt
MzAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCisgICAgICAgIE1vZGVybiBJ
REI6IFN1cHBvcnQgSURCT2JqZWN0U3RvcmUuZ2V0KCkgZm9yIElEQktleVJhbmdlcy4KKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDcxOAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2dldC1rZXlyYW5nZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9tb2Rlcm4vZ2V0LWtleXJhbmdlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisKKzIw
MTUtMTAtMzAgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCiAgICAgICAgIE1v
ZGVybiBJREI6IElEQk9iamVjdFN0b3JlLmFkZCgpIHN1cHBvcnQuCiAgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA3MTEKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2dldC1rZXlyYW5nZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZ2V0LWtleXJhbmdlLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjIyNTAyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2dl
dC1rZXlyYW5nZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3OSBAQAorQUxFUlQ6IEluaXRpYWwg
dXBncmFkZSBuZWVkZWQ6IE9sZCB2ZXJzaW9uIC0gMCBOZXcgdmVyc2lvbiAtIDEKK0FMRVJUOiBJ
bml0aWFsIHVwZ3JhZGUgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbiBjb21wbGV0ZQorQUxFUlQ6
IFN1Y2Nlc3MgZ2V0dGluZyBrZXlSYW5nZSBbLTEgKENsb3NlZCksIHVuZGVmaW5lZCAoT3Blbild
CitBTEVSVDogUmVzdWx0IGlzICIwIgorQUxFUlQ6IFN1Y2Nlc3MgZ2V0dGluZyBrZXlSYW5nZSBb
LTEgKE9wZW4pLCB1bmRlZmluZWQgKE9wZW4pXQorQUxFUlQ6IFJlc3VsdCBpcyAiMCIKK0FMRVJU
OiBTdWNjZXNzIGdldHRpbmcga2V5UmFuZ2UgWzAgKENsb3NlZCksIHVuZGVmaW5lZCAoT3Blbild
CitBTEVSVDogUmVzdWx0IGlzICIwIgorQUxFUlQ6IFN1Y2Nlc3MgZ2V0dGluZyBrZXlSYW5nZSBb
MCAoT3BlbiksIHVuZGVmaW5lZCAoT3BlbildCitBTEVSVDogUmVzdWx0IGlzICIxIgorQUxFUlQ6
IFN1Y2Nlc3MgZ2V0dGluZyBrZXlSYW5nZSBbMC4xIChDbG9zZWQpLCB1bmRlZmluZWQgKE9wZW4p
XQorQUxFUlQ6IFJlc3VsdCBpcyAiMSIKK0FMRVJUOiBTdWNjZXNzIGdldHRpbmcga2V5UmFuZ2Ug
WzAuMSAoT3BlbiksIHVuZGVmaW5lZCAoT3BlbildCitBTEVSVDogUmVzdWx0IGlzICIxIgorQUxF
UlQ6IFN1Y2Nlc3MgZ2V0dGluZyBrZXlSYW5nZSBbOTkgKENsb3NlZCksIHVuZGVmaW5lZCAoT3Bl
bildCitBTEVSVDogUmVzdWx0IGlzICI5OSIKK0FMRVJUOiBTdWNjZXNzIGdldHRpbmcga2V5UmFu
Z2UgWzk5IChPcGVuKSwgdW5kZWZpbmVkIChPcGVuKV0KK0FMRVJUOiBSZXN1bHQgaXMgdW5kZWZp
bmVkCitBTEVSVDogU3VjY2VzcyBnZXR0aW5nIGtleVJhbmdlIFs5OS4xIChDbG9zZWQpLCB1bmRl
ZmluZWQgKE9wZW4pXQorQUxFUlQ6IFJlc3VsdCBpcyB1bmRlZmluZWQKK0FMRVJUOiBTdWNjZXNz
IGdldHRpbmcga2V5UmFuZ2UgWzk5LjEgKE9wZW4pLCB1bmRlZmluZWQgKE9wZW4pXQorQUxFUlQ6
IFJlc3VsdCBpcyB1bmRlZmluZWQKK0FMRVJUOiBTdWNjZXNzIGdldHRpbmcga2V5UmFuZ2UgW3Vu
ZGVmaW5lZCAoT3BlbiksIDEwMCAoQ2xvc2VkKV0KK0FMRVJUOiBSZXN1bHQgaXMgIjAiCitBTEVS
VDogU3VjY2VzcyBnZXR0aW5nIGtleVJhbmdlIFt1bmRlZmluZWQgKE9wZW4pLCAxMDAgKE9wZW4p
XQorQUxFUlQ6IFJlc3VsdCBpcyAiMCIKK0FMRVJUOiBTdWNjZXNzIGdldHRpbmcga2V5UmFuZ2Ug
W3VuZGVmaW5lZCAoT3BlbiksIDk5IChDbG9zZWQpXQorQUxFUlQ6IFJlc3VsdCBpcyAiMCIKK0FM
RVJUOiBTdWNjZXNzIGdldHRpbmcga2V5UmFuZ2UgW3VuZGVmaW5lZCAoT3BlbiksIDk5IChPcGVu
KV0KK0FMRVJUOiBSZXN1bHQgaXMgIjAiCitBTEVSVDogU3VjY2VzcyBnZXR0aW5nIGtleVJhbmdl
IFt1bmRlZmluZWQgKE9wZW4pLCA5OC45OTk5OSAoQ2xvc2VkKV0KK0FMRVJUOiBSZXN1bHQgaXMg
IjAiCitBTEVSVDogU3VjY2VzcyBnZXR0aW5nIGtleVJhbmdlIFt1bmRlZmluZWQgKE9wZW4pLCA5
OC45OTk5OSAoT3BlbildCitBTEVSVDogUmVzdWx0IGlzICIwIgorQUxFUlQ6IFN1Y2Nlc3MgZ2V0
dGluZyBrZXlSYW5nZSBbdW5kZWZpbmVkIChPcGVuKSwgOTggKENsb3NlZCldCitBTEVSVDogUmVz
dWx0IGlzICIwIgorQUxFUlQ6IFN1Y2Nlc3MgZ2V0dGluZyBrZXlSYW5nZSBbdW5kZWZpbmVkIChP
cGVuKSwgOTggKE9wZW4pXQorQUxFUlQ6IFJlc3VsdCBpcyAiMCIKK0FMRVJUOiBTdWNjZXNzIGdl
dHRpbmcga2V5UmFuZ2UgW3VuZGVmaW5lZCAoT3BlbiksIDAgKENsb3NlZCldCitBTEVSVDogUmVz
dWx0IGlzICIwIgorQUxFUlQ6IFN1Y2Nlc3MgZ2V0dGluZyBrZXlSYW5nZSBbdW5kZWZpbmVkIChP
cGVuKSwgMCAoT3BlbildCitBTEVSVDogUmVzdWx0IGlzIHVuZGVmaW5lZAorQUxFUlQ6IFN1Y2Nl
c3MgZ2V0dGluZyBrZXlSYW5nZSBbdW5kZWZpbmVkIChPcGVuKSwgLTAuMSAoQ2xvc2VkKV0KK0FM
RVJUOiBSZXN1bHQgaXMgdW5kZWZpbmVkCitBTEVSVDogU3VjY2VzcyBnZXR0aW5nIGtleVJhbmdl
IFt1bmRlZmluZWQgKE9wZW4pLCAtMC4xIChPcGVuKV0KK0FMRVJUOiBSZXN1bHQgaXMgdW5kZWZp
bmVkCitBTEVSVDogU3VjY2VzcyBnZXR0aW5nIGtleVJhbmdlIFsyLjUgKENsb3NlZCksIDMuNSAo
Q2xvc2VkKV0KK0FMRVJUOiBSZXN1bHQgaXMgIjMiCitBTEVSVDogU3VjY2VzcyBnZXR0aW5nIGtl
eVJhbmdlIFstMC41IChDbG9zZWQpLCAwLjUgKENsb3NlZCldCitBTEVSVDogUmVzdWx0IGlzICIw
IgorQUxFUlQ6IFN1Y2Nlc3MgZ2V0dGluZyBrZXlSYW5nZSBbOTguNSAoQ2xvc2VkKSwgOTkuNSAo
Q2xvc2VkKV0KK0FMRVJUOiBSZXN1bHQgaXMgIjk5IgorQUxFUlQ6IFN1Y2Nlc3MgZ2V0dGluZyBr
ZXlSYW5nZSBbLTEgKENsb3NlZCksIDAgKENsb3NlZCldCitBTEVSVDogUmVzdWx0IGlzICIwIgor
QUxFUlQ6IFN1Y2Nlc3MgZ2V0dGluZyBrZXlSYW5nZSBbLTEgKE9wZW4pLCAwIChDbG9zZWQpXQor
QUxFUlQ6IFJlc3VsdCBpcyAiMCIKK0FMRVJUOiBTdWNjZXNzIGdldHRpbmcga2V5UmFuZ2UgWy0x
IChDbG9zZWQpLCAwIChPcGVuKV0KK0FMRVJUOiBSZXN1bHQgaXMgdW5kZWZpbmVkCitBTEVSVDog
U3VjY2VzcyBnZXR0aW5nIGtleVJhbmdlIFstMSAoT3BlbiksIDAgKE9wZW4pXQorQUxFUlQ6IFJl
c3VsdCBpcyB1bmRlZmluZWQKK0FMRVJUOiBTdWNjZXNzIGdldHRpbmcga2V5UmFuZ2UgWzMgKENs
b3NlZCksIDQgKENsb3NlZCldCitBTEVSVDogUmVzdWx0IGlzICIzIgorQUxFUlQ6IFN1Y2Nlc3Mg
Z2V0dGluZyBrZXlSYW5nZSBbMyAoT3BlbiksIDQgKENsb3NlZCldCitBTEVSVDogUmVzdWx0IGlz
ICI0IgorQUxFUlQ6IFN1Y2Nlc3MgZ2V0dGluZyBrZXlSYW5nZSBbMyAoQ2xvc2VkKSwgNCAoT3Bl
bildCitBTEVSVDogUmVzdWx0IGlzICIzIgorQUxFUlQ6IFN1Y2Nlc3MgZ2V0dGluZyBrZXlSYW5n
ZSBbMyAoT3BlbiksIDQgKE9wZW4pXQorQUxFUlQ6IFJlc3VsdCBpcyB1bmRlZmluZWQKK0FMRVJU
OiBTdWNjZXNzIGdldHRpbmcga2V5UmFuZ2UgWzk5IChDbG9zZWQpLCAxMDAgKENsb3NlZCldCitB
TEVSVDogUmVzdWx0IGlzICI5OSIKK0FMRVJUOiBTdWNjZXNzIGdldHRpbmcga2V5UmFuZ2UgWzk5
IChPcGVuKSwgMTAwIChDbG9zZWQpXQorQUxFUlQ6IFJlc3VsdCBpcyB1bmRlZmluZWQKK0FMRVJU
OiBTdWNjZXNzIGdldHRpbmcga2V5UmFuZ2UgWzk5IChDbG9zZWQpLCAxMDAgKE9wZW4pXQorQUxF
UlQ6IFJlc3VsdCBpcyAiOTkiCitBTEVSVDogU3VjY2VzcyBnZXR0aW5nIGtleVJhbmdlIFs5OSAo
T3BlbiksIDEwMCAoT3BlbildCitBTEVSVDogUmVzdWx0IGlzIHVuZGVmaW5lZAorQUxFUlQ6IHJl
YWRvbmx5IHRyYW5zYWN0aW9uIGNvbXBsZXRlCitBTEVSVDogRG9uZQorVGhpcyB0ZXN0IGV4ZXJj
aXNlcyBJREJPYmplY3RTdG9yZS5nZXQoKSB3aXRoIGFuIElEQktleVJhbmdlIGFzIHRoZSBwYXJh
bWV0ZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
Z2V0LWtleXJhbmdlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
Z2V0LWtleXJhbmdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYmUw
M2JiNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21v
ZGVybi9nZXQta2V5cmFuZ2UuaHRtbApAQCAtMCwwICsxLDEyMCBAQAorVGhpcyB0ZXN0IGV4ZXJj
aXNlcyBJREJPYmplY3RTdG9yZS5nZXQoKSB3aXRoIGFuIElEQktleVJhbmdlIGFzIHRoZSBwYXJh
bWV0ZXIuCis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK30KKwor
ZnVuY3Rpb24gZG9uZSgpCit7CisgICAgYWxlcnQoIkRvbmUiKTsKKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCit2YXIgY3Jl
YXRlUmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3BlbigiR2V0S2V5UmFuZ2VEYXRhYmFzZSIs
IDEpOwordmFyIGRhdGFiYXNlOworCitjcmVhdGVSZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9IGZ1
bmN0aW9uKGV2ZW50KSB7CisgICAgYWxlcnQoIkluaXRpYWwgdXBncmFkZSBuZWVkZWQ6IE9sZCB2
ZXJzaW9uIC0gIiArIGV2ZW50Lm9sZFZlcnNpb24gKyAiIE5ldyB2ZXJzaW9uIC0gIiArIGV2ZW50
Lm5ld1ZlcnNpb24pOworCisgICAgdmFyIHZlcnNpb25UcmFuc2FjdGlvbiA9IGNyZWF0ZVJlcXVl
c3QudHJhbnNhY3Rpb247CisgICAgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworICAg
IHZhciBvYmplY3RTdG9yZSA9IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0
U3RvcmUiKTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDsgKytpKQorICAgICAgICBvYmpl
Y3RTdG9yZS5wdXQoIlwiIiArIGkgKyAiXCIiLCBpKTsKKworICAgIHZlcnNpb25UcmFuc2FjdGlv
bi5vbmFib3J0ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgYWxlcnQoIkluaXRpYWwgdXBn
cmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5zYWN0aW9uIHVuZXhwZWN0ZWQgYWJvcnRlZCIpOworICAg
ICAgICBkb25lKCk7CisgICAgfQorCisgICAgdmVyc2lvblRyYW5zYWN0aW9uLm9uY29tcGxldGUg
PSBmdW5jdGlvbihldmVudCkgeworICAgICAgICBhbGVydCgiSW5pdGlhbCB1cGdyYWRlIHZlcnNp
b25jaGFuZ2UgdHJhbnNhY3Rpb24gY29tcGxldGUiKTsKKyAgICAgICAgY29udGludWVUZXN0MSgp
OworICAgIH0KKworICAgIHZlcnNpb25UcmFuc2FjdGlvbi5vbmVycm9yID0gZnVuY3Rpb24oZXZl
bnQpIHsKKyAgICAgICAgYWxlcnQoIkluaXRpYWwgdXBncmFkZSB2ZXJzaW9uY2hhbmdlIHRyYW5z
YWN0aW9uIHVuZXhwZWN0ZWQgZXJyb3IiICsgZXZlbnQpOworICAgICAgICBkb25lKCk7CisgICAg
fQorfQorCit2YXIgb2JqZWN0U3RvcmU7CisKK2Z1bmN0aW9uIHRlc3RHZXQoa2V5UmFuZ2UpIHsK
KyAgICB2YXIgcmVxdWVzdCA9IG9iamVjdFN0b3JlLmdldChrZXlSYW5nZSk7CisgICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpCisgICAgeworICAgICAgICBhbGVydCgiU3VjY2VzcyBn
ZXR0aW5nIGtleVJhbmdlIFsiICsga2V5UmFuZ2UubG93ZXIgKyAiICgiICsgKGtleVJhbmdlLmxv
d2VyT3BlbiA/ICJPcGVuIiA6ICJDbG9zZWQiKSArICIpLCAiICsga2V5UmFuZ2UudXBwZXIgKyAi
ICgiICsgKGtleVJhbmdlLnVwcGVyT3BlbiA/ICJPcGVuIiA6ICJDbG9zZWQiKSArICIpXSIpOwor
ICAgICAgICBhbGVydCgiUmVzdWx0IGlzICIgKyByZXF1ZXN0LnJlc3VsdCk7CisgICAgfQorICAg
IHJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGFsZXJ0KCJVbmV4
cGVjdGVkIGVycm9yIGdldHRpbmcga2V5UmFuZ2UgWyIgKyBrZXlSYW5nZS5sb3dlciArICIgKCIg
KyBrZXlSYW5nZS5sb3dlck9wZW4gKyAiKSwgIiArIGtleVJhbmdlLnVwcGVyICsgIiAoIiArIGtl
eVJhbmdlLnVwcGVyT3BlbiArICIpXSIpOworICAgIH0KK30KKworZnVuY3Rpb24gY29udGludWVU
ZXN0MSgpCit7CisgICAgdmFyIHRyYW5zYWN0aW9uID0gZGF0YWJhc2UudHJhbnNhY3Rpb24oIlRl
c3RPYmplY3RTdG9yZSIsICJyZWFkb25seSIpOworICAgIG9iamVjdFN0b3JlID0gdHJhbnNhY3Rp
b24ub2JqZWN0U3RvcmUoIlRlc3RPYmplY3RTdG9yZSIpOworCisgICAgdGVzdEdldChJREJLZXlS
YW5nZS5sb3dlckJvdW5kKC0xKSk7CisgICAgdGVzdEdldChJREJLZXlSYW5nZS5sb3dlckJvdW5k
KC0xLCB0cnVlKSk7CisgICAgdGVzdEdldChJREJLZXlSYW5nZS5sb3dlckJvdW5kKDApKTsKKyAg
ICB0ZXN0R2V0KElEQktleVJhbmdlLmxvd2VyQm91bmQoMCwgdHJ1ZSkpOworICAgIHRlc3RHZXQo
SURCS2V5UmFuZ2UubG93ZXJCb3VuZCgwLjEpKTsKKyAgICB0ZXN0R2V0KElEQktleVJhbmdlLmxv
d2VyQm91bmQoMC4xLCB0cnVlKSk7CisgICAgdGVzdEdldChJREJLZXlSYW5nZS5sb3dlckJvdW5k
KDk5KSk7CisgICAgdGVzdEdldChJREJLZXlSYW5nZS5sb3dlckJvdW5kKDk5LCB0cnVlKSk7Cisg
ICAgdGVzdEdldChJREJLZXlSYW5nZS5sb3dlckJvdW5kKDk5LjEpKTsKKyAgICB0ZXN0R2V0KElE
QktleVJhbmdlLmxvd2VyQm91bmQoOTkuMSwgdHJ1ZSkpOworICAgIAorICAgIHRlc3RHZXQoSURC
S2V5UmFuZ2UudXBwZXJCb3VuZCgxMDApKTsKKyAgICB0ZXN0R2V0KElEQktleVJhbmdlLnVwcGVy
Qm91bmQoMTAwLCB0cnVlKSk7CisgICAgdGVzdEdldChJREJLZXlSYW5nZS51cHBlckJvdW5kKDk5
KSk7CisgICAgdGVzdEdldChJREJLZXlSYW5nZS51cHBlckJvdW5kKDk5LCB0cnVlKSk7CisgICAg
dGVzdEdldChJREJLZXlSYW5nZS51cHBlckJvdW5kKDk4Ljk5OTk5KSk7CisgICAgdGVzdEdldChJ
REJLZXlSYW5nZS51cHBlckJvdW5kKDk4Ljk5OTk5LCB0cnVlKSk7CisgICAgdGVzdEdldChJREJL
ZXlSYW5nZS51cHBlckJvdW5kKDk4KSk7CisgICAgdGVzdEdldChJREJLZXlSYW5nZS51cHBlckJv
dW5kKDk4LCB0cnVlKSk7CisgICAgdGVzdEdldChJREJLZXlSYW5nZS51cHBlckJvdW5kKDApKTsK
KyAgICB0ZXN0R2V0KElEQktleVJhbmdlLnVwcGVyQm91bmQoMCwgdHJ1ZSkpOworICAgIHRlc3RH
ZXQoSURCS2V5UmFuZ2UudXBwZXJCb3VuZCgtMC4xKSk7CisgICAgdGVzdEdldChJREJLZXlSYW5n
ZS51cHBlckJvdW5kKC0wLjEsIHRydWUpKTsKKyAgICAKKyAgICB0ZXN0R2V0KElEQktleVJhbmdl
LmJvdW5kKDIuNSwgMy41KSk7CisgICAgdGVzdEdldChJREJLZXlSYW5nZS5ib3VuZCgtMC41LCAw
LjUpKTsKKyAgICB0ZXN0R2V0KElEQktleVJhbmdlLmJvdW5kKDk4LjUsIDk5LjUpKTsKKyAgICB0
ZXN0R2V0KElEQktleVJhbmdlLmJvdW5kKC0xLCAwKSk7CisgICAgdGVzdEdldChJREJLZXlSYW5n
ZS5ib3VuZCgtMSwgMCwgdHJ1ZSkpOworICAgIHRlc3RHZXQoSURCS2V5UmFuZ2UuYm91bmQoLTEs
IDAsIGZhbHNlLCB0cnVlKSk7CisgICAgdGVzdEdldChJREJLZXlSYW5nZS5ib3VuZCgtMSwgMCwg
dHJ1ZSwgdHJ1ZSkpOworICAgIHRlc3RHZXQoSURCS2V5UmFuZ2UuYm91bmQoMywgNCkpOworICAg
IHRlc3RHZXQoSURCS2V5UmFuZ2UuYm91bmQoMywgNCwgdHJ1ZSkpOworICAgIHRlc3RHZXQoSURC
S2V5UmFuZ2UuYm91bmQoMywgNCwgZmFsc2UsIHRydWUpKTsKKyAgICB0ZXN0R2V0KElEQktleVJh
bmdlLmJvdW5kKDMsIDQsIHRydWUsIHRydWUpKTsKKyAgICB0ZXN0R2V0KElEQktleVJhbmdlLmJv
dW5kKDk5LCAxMDApKTsKKyAgICB0ZXN0R2V0KElEQktleVJhbmdlLmJvdW5kKDk5LCAxMDAsIHRy
dWUpKTsKKyAgICB0ZXN0R2V0KElEQktleVJhbmdlLmJvdW5kKDk5LCAxMDAsIGZhbHNlLCB0cnVl
KSk7CisgICAgdGVzdEdldChJREJLZXlSYW5nZS5ib3VuZCg5OSwgMTAwLCB0cnVlLCB0cnVlKSk7
CisKKyAgICB0cmFuc2FjdGlvbi5vbmFib3J0ID0gZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAg
YWxlcnQoInJlYWRvbmx5IHRyYW5zYWN0aW9uIHVuZXhwZWN0ZWQgYWJvcnQiICsgZXZlbnQpOwor
ICAgICAgICBkb25lKCk7CisgICAgfQorCisgICAgdHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1
bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGFsZXJ0KCJyZWFkb25seSB0cmFuc2FjdGlvbiBjb21w
bGV0ZSIpOworICAgICAgICBkb25lKCk7CisgICAgfQorCisgICAgdHJhbnNhY3Rpb24ub25lcnJv
ciA9IGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgIGFsZXJ0KCJyZWFkb25seSB0cmFuc2FjdGlv
biB1bmV4cGVjdGVkIGVycm9yIiArIGV2ZW50KTsKKyAgICAgICAgZG9uZSgpOworICAgIH0KK30K
KworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODkwY2Q5NS4uMjIzNTVlNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpA
QCAtMSw1ICsxLDY1IEBACiAyMDE1LTEwLTMwICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxl
LmNvbT4KIAorICAgICAgICBNb2Rlcm4gSURCOiBTdXBwb3J0IElEQk9iamVjdFN0b3JlLmdldCgp
IGZvciBJREJLZXlSYW5nZXMuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNTA3MTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUZXN0OiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZ2V0LWtleXJhbmdlLmh0
bWwKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlRGF0YS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZURhdGE6OklEQktleVJhbmdlRGF0YSk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2VEYXRhLmg6CisgICAgICAgIAorICAg
ICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJDb25uZWN0aW9uVG9TZXJ2ZXI6Omdl
dFJlY29yZCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Ub1NlcnZlci5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25u
ZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9jbGllbnQvSURCT2JqZWN0U3RvcmVJbXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OklEQkNsaWVudDo6SURCT2JqZWN0U3RvcmU6OmdldCk6CisgICAgICAgIAorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFuc2FjdGlvbkltcGwuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SURCQ2xpZW50OjpJREJUcmFuc2FjdGlvbjo6cmVxdWVzdEdldFJlY29yZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQlRyYW5zYWN0aW9uOjpnZXRSZWNvcmRPblNl
cnZlcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9u
SW1wbC5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
QmFja2luZ1N0b3JlLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2
ZXI6OmdldFJlY29yZCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNl
cnZlci5oOgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVt
b3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6cmVjb3JkVmFsdWVDaGFuZ2VkKToK
KyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJh
Y2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJh
Y2tpbmdTdG9yZTo6Z2V0UmVjb3JkKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6Ok1lbW9yeU9iamVjdFN0b3JlOjpkZWxldGVSZWNvcmQpOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlPYmplY3RTdG9yZTo6c2V0S2V5VmFsdWUpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlPYmplY3RTdG9yZTo6dmFsdWVGb3JLZXlS
YW5nZSk6IFVzaW5nIGEgc3RkOjpzZXQsIGZpbmQgdGhlIGFwcHJvcHJpYXRlCisgICAgICAgICAg
a2V5IGluIHRoZSByYW5nZSwgYW5kIHJldHVybiB0aGUgdmFsdWUgaWYgb25lIGV4aXN0cy4KKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5T2JqZWN0U3RvcmU6OnZhbHVlRm9yS2V5
KTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2Jq
ZWN0U3RvcmUuaDoKKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5p
cXVlSURCRGF0YWJhc2U6OmdldFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OlVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtR2V0UmVjb3JkKToKKyAgICAgICAgKiBNb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaDoKKyAgICAgICAgCisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uOjpnZXRSZWNvcmQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9V
bmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SW5Qcm9jZXNzSURCU2VydmVyOjpnZXRSZWNvcmQpOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaDoKKworMjAxNS0xMC0zMCAgQnJh
ZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKICAgICAgICAgTW9kZXJuIElEQjogSURC
T2JqZWN0U3RvcmUuYWRkKCkgc3VwcG9ydC4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE1MDcxMQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2VEYXRhLmNwcAppbmRleCA1NTQ2Mjk0Li5jMDFhMmFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5n
ZURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJh
bmdlRGF0YS5jcHAKQEAgLTI4LDggKzI4LDI4IEBACiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRB
QkFTRSkKIAorI2luY2x1ZGUgIklEQktleS5oIgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK0lE
QktleVJhbmdlRGF0YTo6SURCS2V5UmFuZ2VEYXRhKElEQktleSoga2V5KQorICAgIDogaXNOdWxs
KCFrZXkpCisgICAgLCBsb3dlcktleShrZXkpCisgICAgLCB1cHBlcktleShrZXkpCisgICAgLCBs
b3dlck9wZW4oZmFsc2UpCisgICAgLCB1cHBlck9wZW4oZmFsc2UpCit7Cit9CisKK0lEQktleVJh
bmdlRGF0YTo6SURCS2V5UmFuZ2VEYXRhKGNvbnN0IElEQktleURhdGEmIGtleURhdGEpCisgICAg
OiBpc051bGwoa2V5RGF0YS5pc051bGwoKSkKKyAgICAsIGxvd2VyS2V5KGtleURhdGEpCisgICAg
LCB1cHBlcktleShrZXlEYXRhKQorICAgICwgbG93ZXJPcGVuKGZhbHNlKQorICAgICwgdXBwZXJP
cGVuKGZhbHNlKQoreworfQorCiBJREJLZXlSYW5nZURhdGEgSURCS2V5UmFuZ2VEYXRhOjppc29s
YXRlZENvcHkoKSBjb25zdAogewogICAgIElEQktleVJhbmdlRGF0YSByZXN1bHQ7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZURhdGEuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlRGF0YS5oCmluZGV4
IDk4YzgyY2EuLjkzM2FhNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQktleVJhbmdlRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQktleVJhbmdlRGF0YS5oCkBAIC0zMyw2ICszMyw4IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAorY2xhc3MgSURCS2V5OworCiBzdHJ1Y3QgSURCS2V5UmFuZ2VEYXRhIHsKICAg
ICBJREJLZXlSYW5nZURhdGEoKQogICAgICAgICA6IGlzTnVsbCh0cnVlKQpAQCAtNDEsNiArNDMs
OSBAQCBzdHJ1Y3QgSURCS2V5UmFuZ2VEYXRhIHsKICAgICB7CiAgICAgfQogCisgICAgSURCS2V5
UmFuZ2VEYXRhKElEQktleSopOworICAgIElEQktleVJhbmdlRGF0YShjb25zdCBJREJLZXlEYXRh
Jik7CisKICAgICBJREJLZXlSYW5nZURhdGEoSURCS2V5UmFuZ2UqIGtleVJhbmdlKQogICAgICAg
ICA6IGlzTnVsbCgha2V5UmFuZ2UpCiAgICAgICAgICwgbG93ZXJPcGVuKGZhbHNlKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rp
b25Ub1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCQ29ubmVjdGlvblRvU2VydmVyLmNwcAppbmRleCBkMDU4ZjQxLi5kMDVmZjM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlv
blRvU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGll
bnQvSURCQ29ubmVjdGlvblRvU2VydmVyLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5B
QkxFKElOREVYRURfREFUQUJBU0UpCiAKKyNpbmNsdWRlICJJREJLZXlSYW5nZURhdGEuaCIKICNp
bmNsdWRlICJJREJPcGVuREJSZXF1ZXN0SW1wbC5oIgogI2luY2x1ZGUgIklEQlJlcXVlc3REYXRh
LmgiCiAjaW5jbHVkZSAiSURCUmVzdWx0RGF0YS5oIgpAQCAtMTM4LDE0ICsxMzksMTQgQEAgdm9p
ZCBJREJDb25uZWN0aW9uVG9TZXJ2ZXI6OmRpZFB1dE9yQWRkKGNvbnN0IElEQlJlc3VsdERhdGEm
IHJlc3VsdERhdGEpCiAgICAgY29tcGxldGVPcGVyYXRpb24ocmVzdWx0RGF0YSk7CiB9CiAKLXZv
aWQgSURCQ29ubmVjdGlvblRvU2VydmVyOjpnZXRSZWNvcmQoVHJhbnNhY3Rpb25PcGVyYXRpb24m
IG9wZXJhdGlvbiwgUmVmUHRyPElEQktleT4mIGtleSkKK3ZvaWQgSURCQ29ubmVjdGlvblRvU2Vy
dmVyOjpnZXRSZWNvcmQoVHJhbnNhY3Rpb25PcGVyYXRpb24mIG9wZXJhdGlvbiwgY29uc3QgSURC
S2V5UmFuZ2VEYXRhJiBrZXlSYW5nZURhdGEpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQkNv
bm5lY3Rpb25Ub1NlcnZlcjo6Z2V0UmVjb3JkIik7CiAKLSAgICBBU1NFUlQoa2V5KTsKKyAgICBB
U1NFUlQoIWtleVJhbmdlRGF0YS5pc051bGwpOwogCiAgICAgc2F2ZU9wZXJhdGlvbihvcGVyYXRp
b24pOwotICAgIG1fZGVsZWdhdGUtPmdldFJlY29yZChJREJSZXF1ZXN0RGF0YShvcGVyYXRpb24p
LCBrZXkuZ2V0KCkpOworICAgIG1fZGVsZWdhdGUtPmdldFJlY29yZChJREJSZXF1ZXN0RGF0YShv
cGVyYXRpb24pLCBrZXlSYW5nZURhdGEpOwogfQogCiB2b2lkIElEQkNvbm5lY3Rpb25Ub1NlcnZl
cjo6ZGlkR2V0UmVjb3JkKGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVjdGlv
blRvU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURC
Q29ubmVjdGlvblRvU2VydmVyLmgKaW5kZXggNTI5MTFlNy4uYjMxOWZmZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQkNvbm5lY3Rpb25Ub1Nl
cnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJD
b25uZWN0aW9uVG9TZXJ2ZXIuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBw
dXRPckFkZChUcmFuc2FjdGlvbk9wZXJhdGlvbiYsIFJlZlB0cjxJREJLZXk+JiwgUmVmUHRyPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4mLCBjb25zdCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3Zlcndy
aXRlTW9kZSk7CiAgICAgdm9pZCBkaWRQdXRPckFkZChjb25zdCBJREJSZXN1bHREYXRhJik7CiAK
LSAgICB2b2lkIGdldFJlY29yZChUcmFuc2FjdGlvbk9wZXJhdGlvbiYsIFJlZlB0cjxJREJLZXk+
Jik7CisgICAgdm9pZCBnZXRSZWNvcmQoVHJhbnNhY3Rpb25PcGVyYXRpb24mLCBjb25zdCBJREJL
ZXlSYW5nZURhdGEmKTsKICAgICB2b2lkIGRpZEdldFJlY29yZChjb25zdCBJREJSZXN1bHREYXRh
Jik7CiAKICAgICB2b2lkIGNvbW1pdFRyYW5zYWN0aW9uKElEQlRyYW5zYWN0aW9uJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCQ29ubmVj
dGlvblRvU2VydmVyRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oCmluZGV4IGVhZGE3MzYuLmVi
YWVhZWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVu
dC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZS5oCkBA
IC00Myw2ICs0Myw4IEBAIG5hbWVzcGFjZSBJbmRleGVkREIgewogZW51bSBjbGFzcyBPYmplY3RT
dG9yZU92ZXJ3cml0ZU1vZGU7CiB9CiAKK3N0cnVjdCBJREJLZXlSYW5nZURhdGE7CisKIG5hbWVz
cGFjZSBJREJDbGllbnQgewogCiBjbGFzcyBJREJDb25uZWN0aW9uVG9TZXJ2ZXJEZWxlZ2F0ZSB7
CkBAIC01Nyw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlT2JqZWN0
U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3RE
YXRhJiwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgcHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBJREJLZXkqLCBTZXJpYWxpemVkU2Ny
aXB0VmFsdWUmLCBjb25zdCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSkgPSAw
OwotICAgIHZpcnR1YWwgdm9pZCBnZXRSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBJREJL
ZXkqKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0
YSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZXN0YWJs
aXNoVHJhbnNhY3Rpb24odWludDY0X3QgZGF0YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29u
c3QgSURCVHJhbnNhY3Rpb25JbmZvJikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGRhdGFiYXNl
Q29ubmVjdGlvbkNsb3NlZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKSA9
IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQv
SURCT2JqZWN0U3RvcmVJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L2NsaWVudC9JREJPYmplY3RTdG9yZUltcGwuY3BwCmluZGV4IGNjZTJiMWQuLjFiYTcxMDYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPYmpl
Y3RTdG9yZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2Ns
aWVudC9JREJPYmplY3RTdG9yZUltcGwuY3BwCkBAIC0zMiw2ICszMiw3IEBACiAjaW5jbHVkZSAi
SURCQmluZGluZ1V0aWxpdGllcy5oIgogI2luY2x1ZGUgIklEQkVycm9yLmgiCiAjaW5jbHVkZSAi
SURCS2V5LmgiCisjaW5jbHVkZSAiSURCS2V5UmFuZ2VEYXRhLmgiCiAjaW5jbHVkZSAiSURCUmVx
dWVzdEltcGwuaCIKICNpbmNsdWRlICJJREJUcmFuc2FjdGlvbkltcGwuaCIKICNpbmNsdWRlICJJ
bmRleGVkREIuaCIKQEAgLTE0NywxMyArMTQ4LDM5IEBAIFJlZlB0cjxXZWJDb3JlOjpJREJSZXF1
ZXN0PiBJREJPYmplY3RTdG9yZTo6Z2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
CiAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KIAotICAgIFJlZjxJREJSZXF1ZXN0PiBy
ZXF1ZXN0ID0gbV90cmFuc2FjdGlvbi0+cmVxdWVzdEdldFJlY29yZCgqY29udGV4dCwgKnRoaXMs
ICppZGJLZXkpOwotICAgIHJldHVybiBhZG9wdFJlZihyZXF1ZXN0LmxlYWtSZWYoKSk7CisgICAg
UmVmPElEQlJlcXVlc3Q+IHJlcXVlc3QgPSBtX3RyYW5zYWN0aW9uLT5yZXF1ZXN0R2V0UmVjb3Jk
KCpjb250ZXh0LCAqdGhpcywgaWRiS2V5LmdldCgpKTsKKyAgICByZXR1cm4gV1RGOjptb3ZlKHJl
cXVlc3QpOwogfQogCi1SZWZQdHI8V2ViQ29yZTo6SURCUmVxdWVzdD4gSURCT2JqZWN0U3RvcmU6
OmdldChTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgSURCS2V5UmFuZ2UqLCBFeGNlcHRpb25Db2Rl
JikKK1JlZlB0cjxXZWJDb3JlOjpJREJSZXF1ZXN0PiBJREJPYmplY3RTdG9yZTo6Z2V0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIElEQktleVJhbmdlKiBrZXlSYW5nZSwgRXhjZXB0
aW9uQ29kZSYgZWMpCiB7Ci0gICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICBM
T0coSW5kZXhlZERCLCAiSURCT2JqZWN0U3RvcmU6OmdldCIpOworCisgICAgaWYgKCFjb250ZXh0
KSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAgICAgIHJldHVybiBudWxs
cHRyOworICAgIH0KKworICAgIGlmICghbV90cmFuc2FjdGlvbi0+aXNBY3RpdmUoKSkgeworICAg
ICAgICBlYyA9IHN0YXRpY19jYXN0PEV4Y2VwdGlvbkNvZGU+KElEQkV4Y2VwdGlvbkNvZGU6OlRy
YW5zYWN0aW9uSW5hY3RpdmVFcnJvcik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KworICAgIGlmIChtX2RlbGV0ZWQpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsK
KyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgfQorCisgICAgSURCS2V5UmFuZ2VEYXRhIGtl
eVJhbmdlRGF0YShrZXlSYW5nZSk7CisgICAgaWYgKGtleVJhbmdlRGF0YS5pc051bGwKKyAgICAg
ICAgfHwgKCFrZXlSYW5nZURhdGEubG93ZXJLZXkuaXNWYWxpZCgpICYmICFrZXlSYW5nZURhdGEu
bG93ZXJLZXkuaXNOdWxsKCkpCisgICAgICAgIHx8ICgha2V5UmFuZ2VEYXRhLnVwcGVyS2V5Lmlz
VmFsaWQoKSAmJiAha2V5UmFuZ2VEYXRhLnVwcGVyS2V5LmlzTnVsbCgpKSkgeworICAgICAgICBl
YyA9IHN0YXRpY19jYXN0PEV4Y2VwdGlvbkNvZGU+KElEQkV4Y2VwdGlvbkNvZGU6OkRhdGFFcnJv
cik7CisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0KKworICAgIFJlZjxJREJSZXF1ZXN0
PiByZXF1ZXN0ID0gbV90cmFuc2FjdGlvbi0+cmVxdWVzdEdldFJlY29yZCgqY29udGV4dCwgKnRo
aXMsIGtleVJhbmdlRGF0YSk7CisgICAgcmV0dXJuIFdURjo6bW92ZShyZXF1ZXN0KTsKIH0KIAog
UmVmUHRyPFdlYkNvcmU6OklEQlJlcXVlc3Q+IElEQk9iamVjdFN0b3JlOjphZGQoSlNDOjpFeGVj
U3RhdGUmIGV4ZWNTdGF0ZSwgRGVwcmVjYXRlZDo6U2NyaXB0VmFsdWUmIHZhbHVlLCBjb25zdCBE
ZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSYga2V5LCBFeGNlcHRpb25Db2RlJiBlYykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFuc2FjdGlv
bkltcGwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRy
YW5zYWN0aW9uSW1wbC5jcHAKaW5kZXggYmJhZjY2Yi4uMzU3NDE4NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5z
YWN0aW9uSW1wbC5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJJREJEYXRhYmFzZUlt
cGwuaCIKICNpbmNsdWRlICJJREJFcnJvci5oIgogI2luY2x1ZGUgIklEQkV2ZW50RGlzcGF0Y2hl
ci5oIgorI2luY2x1ZGUgIklEQktleVJhbmdlRGF0YS5oIgogI2luY2x1ZGUgIklEQk9iamVjdFN0
b3JlLmgiCiAjaW5jbHVkZSAiSURCUmVxdWVzdEltcGwuaCIKICNpbmNsdWRlICJJREJSZXN1bHRE
YXRhLmgiCkBAIC0zODUsMjUgKzM4NiwyNSBAQCB2b2lkIElEQlRyYW5zYWN0aW9uOjpkaWRDcmVh
dGVPYmplY3RTdG9yZU9uU2VydmVyKGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdERhdAogICAg
IEFTU0VSVF9VTlVTRUQocmVzdWx0RGF0YSwgcmVzdWx0RGF0YS50eXBlKCkgPT0gSURCUmVzdWx0
VHlwZTo6Q3JlYXRlT2JqZWN0U3RvcmVTdWNjZXNzKTsKIH0KIAotUmVmPElEQlJlcXVlc3Q+IElE
QlRyYW5zYWN0aW9uOjpyZXF1ZXN0R2V0UmVjb3JkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNv
bnRleHQsIElEQk9iamVjdFN0b3JlJiBvYmplY3RTdG9yZSwgSURCS2V5JiBrZXkpCitSZWY8SURC
UmVxdWVzdD4gSURCVHJhbnNhY3Rpb246OnJlcXVlc3RHZXRSZWNvcmQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgSURCT2JqZWN0U3RvcmUmIG9iamVjdFN0b3JlLCBjb25zdCBJREJL
ZXlSYW5nZURhdGEmIGtleVJhbmdlRGF0YSkKIHsKICAgICBMT0coSW5kZXhlZERCLCAiSURCVHJh
bnNhY3Rpb246OnJlcXVlc3RHZXRSZWNvcmQiKTsKICAgICBBU1NFUlQoaXNBY3RpdmUoKSk7Ci0g
ICAgQVNTRVJUKGtleS5pc1ZhbGlkKCkpOworICAgIEFTU0VSVCgha2V5UmFuZ2VEYXRhLmlzTnVs
bCk7CiAKICAgICBSZWY8SURCUmVxdWVzdD4gcmVxdWVzdCA9IElEQlJlcXVlc3Q6OmNyZWF0ZShj
b250ZXh0LCBvYmplY3RTdG9yZSwgKnRoaXMpOwogCi0gICAgYXV0byBvcGVyYXRpb24gPSBjcmVh
dGVUcmFuc2FjdGlvbk9wZXJhdGlvbigqdGhpcywgcmVxdWVzdC5nZXQoKSwgJklEQlRyYW5zYWN0
aW9uOjpkaWRHZXRSZWNvcmRPblNlcnZlciwgJklEQlRyYW5zYWN0aW9uOjpnZXRSZWNvcmRPblNl
cnZlciwgJmtleSk7CisgICAgYXV0byBvcGVyYXRpb24gPSBjcmVhdGVUcmFuc2FjdGlvbk9wZXJh
dGlvbigqdGhpcywgcmVxdWVzdC5nZXQoKSwgJklEQlRyYW5zYWN0aW9uOjpkaWRHZXRSZWNvcmRP
blNlcnZlciwgJklEQlRyYW5zYWN0aW9uOjpnZXRSZWNvcmRPblNlcnZlciwga2V5UmFuZ2VEYXRh
KTsKICAgICBzY2hlZHVsZU9wZXJhdGlvbihXVEY6Om1vdmUob3BlcmF0aW9uKSk7CiAKICAgICBy
ZXR1cm4gV1RGOjptb3ZlKHJlcXVlc3QpOwogfQogCi12b2lkIElEQlRyYW5zYWN0aW9uOjpnZXRS
ZWNvcmRPblNlcnZlcihUcmFuc2FjdGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBSZWZQdHI8SURC
S2V5PiBrZXkpCit2b2lkIElEQlRyYW5zYWN0aW9uOjpnZXRSZWNvcmRPblNlcnZlcihUcmFuc2Fj
dGlvbk9wZXJhdGlvbiYgb3BlcmF0aW9uLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdl
KQogewogICAgIExPRyhJbmRleGVkREIsICJJREJUcmFuc2FjdGlvbjo6Z2V0UmVjb3JkT25TZXJ2
ZXIiKTsKIAotICAgIHNlcnZlckNvbm5lY3Rpb24oKS5nZXRSZWNvcmQob3BlcmF0aW9uLCBrZXkp
OworICAgIHNlcnZlckNvbm5lY3Rpb24oKS5nZXRSZWNvcmQob3BlcmF0aW9uLCBrZXlSYW5nZSk7
CiB9CiAKIHZvaWQgSURCVHJhbnNhY3Rpb246OmRpZEdldFJlY29yZE9uU2VydmVyKElEQlJlcXVl
c3QmIHJlcXVlc3QsIGNvbnN0IElEQlJlc3VsdERhdGEmIHJlc3VsdERhdGEpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJhbnNhY3Rpb25J
bXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCVHJhbnNh
Y3Rpb25JbXBsLmgKaW5kZXggYjMzYjY1NC4uNDgyZjFlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFuc2FjdGlvbklt
cGwuaApAQCAtNDMsNiArNDMsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBJREJPYmpl
Y3RTdG9yZUluZm87CiBjbGFzcyBJREJSZXN1bHREYXRhOwogCitzdHJ1Y3QgSURCS2V5UmFuZ2VE
YXRhOworCiBuYW1lc3BhY2UgSURCQ2xpZW50IHsKIAogY2xhc3MgSURCRGF0YWJhc2U7CkBAIC04
OCw3ICs5MCw3IEBAIHB1YmxpYzoKICAgICBSZWY8SURCT2JqZWN0U3RvcmU+IGNyZWF0ZU9iamVj
dFN0b3JlKGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYpOwogCiAgICAgUmVmPElEQlJlcXVlc3Q+
IHJlcXVlc3RQdXRPckFkZChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgSURCT2JqZWN0U3RvcmUm
LCBJREJLZXkqLCBTZXJpYWxpemVkU2NyaXB0VmFsdWUmLCBJbmRleGVkREI6Ok9iamVjdFN0b3Jl
T3ZlcndyaXRlTW9kZSk7Ci0gICAgUmVmPElEQlJlcXVlc3Q+IHJlcXVlc3RHZXRSZWNvcmQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIElEQk9iamVjdFN0b3JlJiwgSURCS2V5Jik7CisgICAgUmVm
PElEQlJlcXVlc3Q+IHJlcXVlc3RHZXRSZWNvcmQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIElE
Qk9iamVjdFN0b3JlJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CiAKICAgICB2b2lkIGRlbGV0
ZU9iamVjdFN0b3JlKGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lKTsKIApAQCAtMTI0LDcg
KzEyNiw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBwdXRPckFkZE9uU2VydmVyKFRyYW5zYWN0aW9u
T3BlcmF0aW9uJiwgUmVmUHRyPElEQktleT4sIFJlZlB0cjxTZXJpYWxpemVkU2NyaXB0VmFsdWU+
LCBjb25zdCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSYpOwogICAgIHZvaWQg
ZGlkUHV0T3JBZGRPblNlcnZlcihJREJSZXF1ZXN0JiwgY29uc3QgSURCUmVzdWx0RGF0YSYpOwog
Ci0gICAgdm9pZCBnZXRSZWNvcmRPblNlcnZlcihUcmFuc2FjdGlvbk9wZXJhdGlvbiYsIFJlZlB0
cjxJREJLZXk+KTsKKyAgICB2b2lkIGdldFJlY29yZE9uU2VydmVyKFRyYW5zYWN0aW9uT3BlcmF0
aW9uJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CiAgICAgdm9pZCBkaWRHZXRSZWNvcmRPblNl
cnZlcihJREJSZXF1ZXN0JiwgY29uc3QgSURCUmVzdWx0RGF0YSYpOwogCiAgICAgdm9pZCBkZWxl
dGVPYmplY3RTdG9yZU9uU2VydmVyKFRyYW5zYWN0aW9uT3BlcmF0aW9uJiwgY29uc3QgU3RyaW5n
JiBvYmplY3RTdG9yZU5hbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oCmluZGV4IDdlYzU4ZjIuLjEyN2E5
MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgKQEAgLTM5LDYgKzM5LDggQEAgY2xhc3MgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyOwogY2xhc3MgSURCVHJhbnNhY3Rpb25JbmZvOwogY2xhc3MgVGhyZWFkU2Fm
ZURhdGFCdWZmZXI7CiAKK3N0cnVjdCBJREJLZXlSYW5nZURhdGE7CisKIG5hbWVzcGFjZSBJREJT
ZXJ2ZXIgewogCiBjbGFzcyBJREJCYWNraW5nU3RvcmUgewpAQCAtNTYsNyArNTgsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBJREJFcnJvciBrZXlFeGlzdHNJbk9iamVjdFN0b3JlKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmLCBib29sJiBrZXlFeGlzdHMpID0g
MDsKICAgICB2aXJ0dWFsIElEQkVycm9yIGRlbGV0ZVJlY29yZChjb25zdCBJREJSZXNvdXJjZUlk
ZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVu
dGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJikgPSAwOwogICAgIHZpcnR1YWwgSURCRXJyb3IgcHV0
UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVy
LCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmLCBjb25z
dCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWUpID0gMDsKLSAgICB2aXJ0dWFsIElEQkVycm9y
IGdldFJlY29yZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRp
ZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjb25zdCBJREJLZXlEYXRhJiwg
VGhyZWFkU2FmZURhdGFCdWZmZXImIG91dFZhbHVlKSA9IDA7CisgICAgdmlydHVhbCBJREJFcnJv
ciBnZXRSZWNvcmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50
aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFuZ2VE
YXRhJiwgVGhyZWFkU2FmZURhdGFCdWZmZXImIG91dFZhbHVlKSA9IDA7CiAgICAgdmlydHVhbCBJ
REJFcnJvciBnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRy
YW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCB1aW50
NjRfdCYga2V5TnVtYmVyKSA9IDA7CiAKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IDAyYmRlYmQuLjgzNWMx
NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9JREJTZXJ2ZXIuY3BwCkBAIC0xOTEsNyArMTkxLDcgQEAgdm9pZCBJREJTZXJ2ZXI6OnB1dE9y
QWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5RGF0YSYg
a2UKICAgICB0cmFuc2FjdGlvbi0+cHV0T3JBZGQocmVxdWVzdERhdGEsIGtleURhdGEsIHZhbHVl
RGF0YSwgb3ZlcndyaXRlTW9kZSk7CiB9CiAKLXZvaWQgSURCU2VydmVyOjpnZXRSZWNvcmQoY29u
c3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRh
KQordm9pZCBJREJTZXJ2ZXI6OmdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVz
dERhdGEsIGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2VEYXRhKQogewogICAgIExPRyhJ
bmRleGVkREIsICJJREJTZXJ2ZXI6OmdldFJlY29yZCIpOwogCkBAIC0xOTksNyArMTk5LDcgQEAg
dm9pZCBJREJTZXJ2ZXI6OmdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERh
dGEsIGNvbnN0IElEQktleURhdGEmIGsKICAgICBpZiAoIXRyYW5zYWN0aW9uKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICB0cmFuc2FjdGlvbi0+Z2V0UmVjb3JkKHJlcXVlc3REYXRhLCBrZXlEYXRh
KTsKKyAgICB0cmFuc2FjdGlvbi0+Z2V0UmVjb3JkKHJlcXVlc3REYXRhLCBrZXlSYW5nZURhdGEp
OwogfQogCiB2b2lkIElEQlNlcnZlcjo6ZXN0YWJsaXNoVHJhbnNhY3Rpb24odWludDY0X3QgZGF0
YWJhc2VDb25uZWN0aW9uSWRlbnRpZmllciwgY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZv
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lE
QlNlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNl
cnZlci5oCmluZGV4IDMxZDg3M2IuLjY1MGUwMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmgKQEAgLTYyLDcgKzYyLDcgQEAg
cHVibGljOgogICAgIHZvaWQgY3JlYXRlT2JqZWN0U3RvcmUoY29uc3QgSURCUmVxdWVzdERhdGEm
LCBjb25zdCBJREJPYmplY3RTdG9yZUluZm8mKTsKICAgICB2b2lkIGRlbGV0ZU9iamVjdFN0b3Jl
KGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpOwog
ICAgIHZvaWQgcHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmLCBjb25zdCBJREJLZXlEYXRh
JiwgY29uc3QgVGhyZWFkU2FmZURhdGFCdWZmZXImIHZhbHVlRGF0YSwgSW5kZXhlZERCOjpPYmpl
Y3RTdG9yZU92ZXJ3cml0ZU1vZGUpOwotICAgIHZvaWQgZ2V0UmVjb3JkKGNvbnN0IElEQlJlcXVl
c3REYXRhJiwgY29uc3QgSURCS2V5RGF0YSYpOworICAgIHZvaWQgZ2V0UmVjb3JkKGNvbnN0IElE
QlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJik7CiAgICAgdm9pZCBlc3RhYmxp
c2hUcmFuc2FjdGlvbih1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25z
dCBJREJUcmFuc2FjdGlvbkluZm8mKTsKICAgICB2b2lkIGRhdGFiYXNlQ29ubmVjdGlvbkNsb3Nl
ZCh1aW50NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUJhY2tpbmdTdG9y
ZVRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9NZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbi5jcHAKaW5kZXggZmVhYWZhMy4uNjIzYjQ5
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01l
bW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uY3BwCkBA
IC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSU5ERVhFRF9EQVRBQkFTRSkKIAorI2luY2x1
ZGUgIklEQktleVJhbmdlRGF0YS5oIgogI2luY2x1ZGUgIkluZGV4ZWREQi5oIgogI2luY2x1ZGUg
IkxvZ2dpbmcuaCIKICNpbmNsdWRlICJNZW1vcnlJREJCYWNraW5nU3RvcmUuaCIKQEAgLTEwNyw3
ICsxMDgsNyBAQCB2b2lkIE1lbW9yeUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOjpyZWNvcmRWYWx1
ZUNoYW5nZWQoTWVtb3J5T2JqZWN0U3RvcmUmIG9iamVjdAogICAgIGlmICghYWRkUmVzdWx0Lmlz
TmV3RW50cnkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGFkZFJlc3VsdC5pdGVyYXRvci0+dmFs
dWUgPSBvYmplY3RTdG9yZS52YWx1ZUZvcktleShrZXkpOworICAgIGFkZFJlc3VsdC5pdGVyYXRv
ci0+dmFsdWUgPSBvYmplY3RTdG9yZS52YWx1ZUZvcktleVJhbmdlKElEQktleVJhbmdlRGF0YShr
ZXkpKTsKIH0KIAogdm9pZCBNZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6YWJvcnQoKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9y
eUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcAppbmRleCA1YjFmNWRjLi44ZTNkNDljIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5
SURCQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcApAQCAtMjIxLDcgKzIyMSw3IEBAIElE
QkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6cHV0UmVjb3JkKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3RpCiAgICAgcmV0dXJuIElEQkVycm9yKCk7CiB9CiAKLUlEQkVy
cm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRl
bnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50
aWZpZXIsIGNvbnN0IElEQktleURhdGEmIGtleURhdGEsIFRocmVhZFNhZmVEYXRhQnVmZmVyJiBv
dXRWYWx1ZSkKK0lEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0UmVjb3JkKGNvbnN0
IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBv
YmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0YSYga2V5UmFuZ2VEYXRh
LCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgb3V0VmFsdWUpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwg
Ik1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2V0UmVjb3JkIik7CiAKQEAgLTIzNCw3ICsyMzQsNyBA
QCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmdldFJlY29yZChjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHRyYW5zYWN0aQogICAgIGlmICghb2JqZWN0U3RvcmUpCiAgICAgICAg
IHJldHVybiBJREJFcnJvcihJREJFeGNlcHRpb25Db2RlOjpVbmtub3duLCBXVEY6OkFTQ0lJTGl0
ZXJhbCgiTm8gYmFja2luZyBzdG9yZSBvYmplY3Qgc3RvcmUgZm91bmQiKSk7CiAKLSAgICBvdXRW
YWx1ZSA9IG9iamVjdFN0b3JlLT52YWx1ZUZvcktleShrZXlEYXRhKTsKKyAgICBvdXRWYWx1ZSA9
IG9iamVjdFN0b3JlLT52YWx1ZUZvcktleVJhbmdlKGtleVJhbmdlRGF0YSk7CiAgICAgcmV0dXJu
IElEQkVycm9yKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaAppbmRleCBlZWU4
Mzk3Li5jYzAzNmFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oCkBAIC01Nyw3ICs1
Nyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIElEQkVycm9yIGtleUV4aXN0c0luT2JqZWN0U3Rv
cmUoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYsIGJvb2wmIGtl
eUV4aXN0cykgb3ZlcnJpZGUgZmluYWw7CiAgICAgdmlydHVhbCBJREJFcnJvciBkZWxldGVSZWNv
cmQoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIHVp
bnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5RGF0YSYpIG92ZXJyaWRl
IGZpbmFsOwogICAgIHZpcnR1YWwgSURCRXJyb3IgcHV0UmVjb3JkKGNvbnN0IElEQlJlc291cmNl
SWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYg
dmFsdWUpIG92ZXJyaWRlIGZpbmFsOwotICAgIHZpcnR1YWwgSURCRXJyb3IgZ2V0UmVjb3JkKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1aW50NjRf
dCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmLCBUaHJlYWRTYWZlRGF0
YUJ1ZmZlciYgb3V0VmFsdWUpIG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgSURCRXJyb3Ig
Z2V0UmVjb3JkKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlm
aWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdlRGF0
YSYsIFRocmVhZFNhZmVEYXRhQnVmZmVyJiBvdXRWYWx1ZSkgb3ZlcnJpZGUgZmluYWw7CiAgICAg
dmlydHVhbCBJREJFcnJvciBnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50
aWZpZXImIHRyYW5zYWN0aW9uSWRlbnRpZmllciwgdWludDY0X3Qgb2JqZWN0U3RvcmVJZGVudGlm
aWVyLCB1aW50NjRfdCYga2V5TnVtYmVyKSBvdmVycmlkZSBmaW5hbDsKIAogICAgIHZvaWQgcmVt
b3ZlT2JqZWN0U3RvcmVGb3JWZXJzaW9uQ2hhbmdlQWJvcnQoTWVtb3J5T2JqZWN0U3RvcmUmKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1v
cnlPYmplY3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3BwCmluZGV4IDE0NWM4OWUuLjIxMTIwMTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RT
dG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01l
bW9yeU9iamVjdFN0b3JlLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKElOREVY
RURfREFUQUJBU0UpCiAKKyNpbmNsdWRlICJJREJLZXlSYW5nZURhdGEuaCIKICNpbmNsdWRlICJM
b2dnaW5nLmgiCiAjaW5jbHVkZSAiTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24uaCIKIApA
QCAtODMsOSArODQsMTAgQEAgdm9pZCBNZW1vcnlPYmplY3RTdG9yZTo6ZGVsZXRlUmVjb3JkKGNv
bnN0IElEQktleURhdGEmIGtleSkKICAgICBpZiAoIW1fa2V5VmFsdWVTdG9yZSkKICAgICAgICAg
cmV0dXJuOwogCisgICAgQVNTRVJUKG1fb3JkZXJlZEtleXMpOworCiAgICAgbV9rZXlWYWx1ZVN0
b3JlLT5yZW1vdmUoa2V5KTsKLSAgICBpZiAobV9vcmRlcmVkS2V5cykKLSAgICAgICAgbV9vcmRl
cmVkS2V5cy0+ZXJhc2Uoa2V5KTsKKyAgICBtX29yZGVyZWRLZXlzLT5lcmFzZShrZXkpOwogfQog
CiB2b2lkIE1lbW9yeU9iamVjdFN0b3JlOjpwdXRSZWNvcmQoTWVtb3J5QmFja2luZ1N0b3JlVHJh
bnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhLCBjb25zdCBU
aHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWUpCkBAIC0xMDIsMjIgKzEwNCw0OCBAQCB2b2lkIE1l
bW9yeU9iamVjdFN0b3JlOjpwdXRSZWNvcmQoTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb24m
IHRyYW5zYWN0aW9uLCBjbwogCiB2b2lkIE1lbW9yeU9iamVjdFN0b3JlOjpzZXRLZXlWYWx1ZShj
b25zdCBJREJLZXlEYXRhJiBrZXlEYXRhLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFs
dWUpCiB7Ci0gICAgaWYgKCFtX2tleVZhbHVlU3RvcmUpCisgICAgaWYgKCFtX2tleVZhbHVlU3Rv
cmUpIHsKKyAgICAgICAgQVNTRVJUKCFtX29yZGVyZWRLZXlzKTsKICAgICAgICAgbV9rZXlWYWx1
ZVN0b3JlID0gc3RkOjptYWtlX3VuaXF1ZTxLZXlWYWx1ZU1hcD4oKTsKKyAgICAgICAgbV9vcmRl
cmVkS2V5cyA9IHN0ZDo6bWFrZV91bmlxdWU8c3RkOjpzZXQ8SURCS2V5RGF0YT4+KCk7CisgICAg
fQogCiAgICAgYXV0byByZXN1bHQgPSBtX2tleVZhbHVlU3RvcmUtPnNldChrZXlEYXRhLCB2YWx1
ZSk7Ci0gICAgaWYgKHJlc3VsdC5pc05ld0VudHJ5ICYmIG1fb3JkZXJlZEtleXMpCisgICAgaWYg
KHJlc3VsdC5pc05ld0VudHJ5KQogICAgICAgICBtX29yZGVyZWRLZXlzLT5pbnNlcnQoa2V5RGF0
YSk7CiB9CiAKLVRocmVhZFNhZmVEYXRhQnVmZmVyIE1lbW9yeU9iamVjdFN0b3JlOjp2YWx1ZUZv
cktleShjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhKSBjb25zdAorVGhyZWFkU2FmZURhdGFCdWZm
ZXIgTWVtb3J5T2JqZWN0U3RvcmU6OnZhbHVlRm9yS2V5UmFuZ2UoY29uc3QgSURCS2V5UmFuZ2VE
YXRhJiBrZXlSYW5nZURhdGEpIGNvbnN0CiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeU9i
amVjdFN0b3JlOjp2YWx1ZUZvcktleSIpOwogCiAgICAgaWYgKCFtX2tleVZhbHVlU3RvcmUpCiAg
ICAgICAgIHJldHVybiBUaHJlYWRTYWZlRGF0YUJ1ZmZlcigpOwogCi0gICAgcmV0dXJuIG1fa2V5
VmFsdWVTdG9yZS0+Z2V0KGtleURhdGEpOworICAgIGlmIChrZXlSYW5nZURhdGEuaXNFeGFjdGx5
T25lS2V5KCkpCisgICAgICAgIHJldHVybiBtX2tleVZhbHVlU3RvcmUtPmdldChrZXlSYW5nZURh
dGEubG93ZXJLZXkpOworCisgICAgQVNTRVJUKG1fb3JkZXJlZEtleXMpOworCisgICAgYXV0byBs
b3dlc3RJblJhbmdlID0gbV9vcmRlcmVkS2V5cy0+bG93ZXJfYm91bmQoa2V5UmFuZ2VEYXRhLmxv
d2VyS2V5KTsKKworICAgIGlmIChsb3dlc3RJblJhbmdlID09IG1fb3JkZXJlZEtleXMtPmVuZCgp
KQorICAgICAgICByZXR1cm4gVGhyZWFkU2FmZURhdGFCdWZmZXIoKTsKKworICAgIGlmIChrZXlS
YW5nZURhdGEubG93ZXJPcGVuICYmICpsb3dlc3RJblJhbmdlID09IGtleVJhbmdlRGF0YS5sb3dl
cktleSkKKyAgICAgICAgKytsb3dlc3RJblJhbmdlOworCisgICAgaWYgKGxvd2VzdEluUmFuZ2Ug
PT0gbV9vcmRlcmVkS2V5cy0+ZW5kKCkpCisgICAgICAgIHJldHVybiBUaHJlYWRTYWZlRGF0YUJ1
ZmZlcigpOworCisgICAgaWYgKCFrZXlSYW5nZURhdGEudXBwZXJLZXkuaXNOdWxsKCkpIHsKKyAg
ICAgICAgaWYgKGxvd2VzdEluUmFuZ2UtPmNvbXBhcmUoa2V5UmFuZ2VEYXRhLnVwcGVyS2V5KSA+
IDApCisgICAgICAgICAgICByZXR1cm4gVGhyZWFkU2FmZURhdGFCdWZmZXIoKTsKKyAgICAgICAg
aWYgKGtleVJhbmdlRGF0YS51cHBlck9wZW4gJiYgKmxvd2VzdEluUmFuZ2UgPT0ga2V5UmFuZ2VE
YXRhLnVwcGVyS2V5KQorICAgICAgICAgICAgcmV0dXJuIFRocmVhZFNhZmVEYXRhQnVmZmVyKCk7
CisgICAgfQorCisgICAgcmV0dXJuIG1fa2V5VmFsdWVTdG9yZS0+Z2V0KCpsb3dlc3RJblJhbmdl
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgSURCU2VydmVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5oCmlu
ZGV4IDZiZTE5NmUuLmMyMTJiODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5oCkBAIC0zOCw2ICsz
OCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSURCS2V5RGF0YTsKIAorc3RydWN0
IElEQktleVJhbmdlRGF0YTsKKwogbmFtZXNwYWNlIElEQlNlcnZlciB7CiAKIGNsYXNzIE1lbW9y
eUJhY2tpbmdTdG9yZVRyYW5zYWN0aW9uOwpAQCAtNjMsNyArNjUsNyBAQCBwdWJsaWM6CiAgICAg
dWludDY0X3QgY3VycmVudEtleUdlbmVyYXRvclZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9rZXlH
ZW5lcmF0b3JWYWx1ZTsgfQogICAgIHZvaWQgc2V0S2V5R2VuZXJhdG9yVmFsdWUodWludDY0X3Qg
dmFsdWUpIHsgbV9rZXlHZW5lcmF0b3JWYWx1ZSA9IHZhbHVlOyB9CiAKLSAgICBUaHJlYWRTYWZl
RGF0YUJ1ZmZlciB2YWx1ZUZvcktleShjb25zdCBJREJLZXlEYXRhJikgY29uc3Q7CisgICAgVGhy
ZWFkU2FmZURhdGFCdWZmZXIgdmFsdWVGb3JLZXlSYW5nZShjb25zdCBJREJLZXlSYW5nZURhdGEm
KSBjb25zdDsKIAogICAgIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYgaW5mbygpIGNvbnN0IHsg
cmV0dXJuIG1faW5mbzsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCBlMTUyM2Jk
Li43Yjk0NTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTI4LDYgKzI4LDcgQEAK
IAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQogCisjaW5jbHVkZSAiSURCS2V5UmFuZ2VE
YXRhLmgiCiAjaW5jbHVkZSAiSURCUmVzdWx0RGF0YS5oIgogI2luY2x1ZGUgIklEQlNlcnZlci5o
IgogI2luY2x1ZGUgIklEQlRyYW5zYWN0aW9uSW5mby5oIgpAQCAtMzcyLDE2ICszNzMsMTYgQEAg
dm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybVB1dE9yQWRkKHVpbnQ2NF90IGNhbGxi
YWNrSWRlbnRpZmllciwgY29uc3QgSUQKICAgICBwZXJmb3JtS2V5RGF0YUNhbGxiYWNrKGNhbGxi
YWNrSWRlbnRpZmllciwgZXJyb3IsIHJlc3VsdEtleSk7CiB9CiAKLXZvaWQgVW5pcXVlSURCRGF0
YWJhc2U6OmdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0
IElEQktleURhdGEmIGtleURhdGEsIFZhbHVlRGF0YUNhbGxiYWNrIGNhbGxiYWNrKQordm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6Z2V0UmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0
RGF0YSwgY29uc3QgSURCS2V5UmFuZ2VEYXRhJiBrZXlSYW5nZURhdGEsIFZhbHVlRGF0YUNhbGxi
YWNrIGNhbGxiYWNrKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgTE9HKElu
ZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0UmVjb3JkIik7CiAKICAgICB1
aW50NjRfdCBjYWxsYmFja0lEID0gc3RvcmVDYWxsYmFjayhjYWxsYmFjayk7Ci0gICAgbV9zZXJ2
ZXIucG9zdERhdGFiYXNlVGFzayhjcmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJ
REJEYXRhYmFzZTo6cGVyZm9ybUdldFJlY29yZCwgY2FsbGJhY2tJRCwgcmVxdWVzdERhdGEudHJh
bnNhY3Rpb25JZGVudGlmaWVyKCksIHJlcXVlc3REYXRhLm9iamVjdFN0b3JlSWRlbnRpZmllcigp
LCBrZXlEYXRhKSk7CisgICAgbV9zZXJ2ZXIucG9zdERhdGFiYXNlVGFzayhjcmVhdGVDcm9zc1Ro
cmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6cGVyZm9ybUdldFJlY29yZCwgY2Fs
bGJhY2tJRCwgcmVxdWVzdERhdGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCksIHJlcXVlc3REYXRh
Lm9iamVjdFN0b3JlSWRlbnRpZmllcigpLCBrZXlSYW5nZURhdGEpKTsKIH0KIAotdm9pZCBVbmlx
dWVJREJEYXRhYmFzZTo6cGVyZm9ybUdldFJlY29yZCh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZp
ZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVudGlmaWVyLCB1
aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURhdGEmIGtleURhdGEp
Cit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtR2V0UmVjb3JkKHVpbnQ2NF90IGNhbGxi
YWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklk
ZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3QgSURCS2V5UmFu
Z2VEYXRhJiBrZXlSYW5nZURhdGEpCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAg
ICAgTE9HKEluZGV4ZWREQiwgIihkYikgVW5pcXVlSURCRGF0YWJhc2U6OnBlcmZvcm1HZXRSZWNv
cmQiKTsKQEAgLTM5MCw3ICszOTEsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3Jt
R2V0UmVjb3JkKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUgogICAgIEFT
U0VSVChvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogCiAgICAgVGhyZWFkU2FmZURhdGFCdWZmZXIg
dmFsdWVEYXRhOwotICAgIElEQkVycm9yIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmdldFJlY29y
ZCh0cmFuc2FjdGlvbklkZW50aWZpZXIsIG9iamVjdFN0b3JlSWRlbnRpZmllciwga2V5RGF0YSwg
dmFsdWVEYXRhKTsKKyAgICBJREJFcnJvciBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5nZXRSZWNv
cmQodHJhbnNhY3Rpb25JZGVudGlmaWVyLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGtleVJhbmdl
RGF0YSwgdmFsdWVEYXRhKTsKIAogICAgIG1fc2VydmVyLnBvc3REYXRhYmFzZVRhc2tSZXBseShj
cmVhdGVDcm9zc1RocmVhZFRhc2soKnRoaXMsICZVbmlxdWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9y
bUdldFJlY29yZCwgY2FsbGJhY2tJZGVudGlmaWVyLCBlcnJvciwgdmFsdWVEYXRhKSk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9V
bmlxdWVJREJEYXRhYmFzZS5oCmluZGV4IDZkM2YwNzIuLjI3MGZlY2QgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZS5oCkBAIC03Miw3ICs3Miw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNyZWF0ZU9iamVj
dFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mLCBjb25zdCBJREJPYmplY3RTdG9y
ZUluZm8mLCBFcnJvckNhbGxiYWNrKTsKICAgICB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKFVuaXF1
ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mLCBjb25zdCBTdHJpbmcmIG9iamVjdFN0b3JlTmFtZSwg
RXJyb3JDYWxsYmFjayk7CiAgICAgdm9pZCBwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYs
IGNvbnN0IElEQktleURhdGEmLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWVEYXRh
LCBJbmRleGVkREI6Ok9iamVjdFN0b3JlT3ZlcndyaXRlTW9kZSwgS2V5RGF0YUNhbGxiYWNrKTsK
LSAgICB2b2lkIGdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleURh
dGEmLCBWYWx1ZURhdGFDYWxsYmFjayk7CisgICAgdm9pZCBnZXRSZWNvcmQoY29uc3QgSURCUmVx
dWVzdERhdGEmLCBjb25zdCBJREJLZXlSYW5nZURhdGEmLCBWYWx1ZURhdGFDYWxsYmFjayk7CiAg
ICAgdm9pZCBjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiwg
RXJyb3JDYWxsYmFjayk7CiAgICAgdm9pZCBhYm9ydFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFi
YXNlVHJhbnNhY3Rpb24mLCBFcnJvckNhbGxiYWNrKTsKICAgICB2b2lkIHRyYW5zYWN0aW9uRGVz
dHJveWVkKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mKTsKQEAgLTEwMSw3ICsxMDEsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgcGVyZm9ybUNyZWF0ZU9iamVjdFN0b3JlKHVpbnQ2NF90IGNh
bGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlv
bklkZW50aWZpZXIsIGNvbnN0IElEQk9iamVjdFN0b3JlSW5mbyYpOwogICAgIHZvaWQgcGVyZm9y
bURlbGV0ZU9iamVjdFN0b3JlKHVpbnQ2NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
b2JqZWN0U3RvcmVOYW1lKTsKICAgICB2b2lkIHBlcmZvcm1QdXRPckFkZCh1aW50NjRfdCBjYWxs
YmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25J
ZGVudGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleURh
dGEmLCBjb25zdCBUaHJlYWRTYWZlRGF0YUJ1ZmZlciYgdmFsdWVEYXRhLCBJbmRleGVkREI6Ok9i
amVjdFN0b3JlT3ZlcndyaXRlTW9kZSk7Ci0gICAgdm9pZCBwZXJmb3JtR2V0UmVjb3JkKHVpbnQ2
NF90IGNhbGxiYWNrSWRlbnRpZmllciwgY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFu
c2FjdGlvbklkZW50aWZpZXIsIHVpbnQ2NF90IG9iamVjdFN0b3JlSWRlbnRpZmllciwgY29uc3Qg
SURCS2V5RGF0YSYpOworICAgIHZvaWQgcGVyZm9ybUdldFJlY29yZCh1aW50NjRfdCBjYWxsYmFj
a0lkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHJhbnNhY3Rpb25JZGVu
dGlmaWVyLCB1aW50NjRfdCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNvbnN0IElEQktleVJhbmdl
RGF0YSYpOwogICAgIHZvaWQgcGVyZm9ybUFjdGl2YXRlVHJhbnNhY3Rpb25JbkJhY2tpbmdTdG9y
ZSh1aW50NjRfdCBjYWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQlRyYW5zYWN0aW9uSW5mbyYp
OwogCiAgICAgLy8gTWFpbiB0aHJlYWQgY2FsbGJhY2tzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURC
RGF0YWJhc2VUcmFuc2FjdGlvbi5jcHAKaW5kZXggNTc4MmNhOC4uZGRhZmQ3OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFi
YXNlVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmNwcApAQCAtMTQ5LDE0ICsxNDks
MTQgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uOjpwdXRPckFkZChjb25zdCBJ
REJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGMKICAgICB9KTsKIH0KIAotdm9pZCBVbmlxdWVJ
REJEYXRhYmFzZVRyYW5zYWN0aW9uOjpnZXRSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJl
cXVlc3REYXRhLCBjb25zdCBJREJLZXlEYXRhJiBrZXlEYXRhKQordm9pZCBVbmlxdWVJREJEYXRh
YmFzZVRyYW5zYWN0aW9uOjpnZXRSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3RE
YXRhLCBjb25zdCBJREJLZXlSYW5nZURhdGEmIGtleVJhbmdlRGF0YSkKIHsKICAgICBMT0coSW5k
ZXhlZERCLCAiVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbjo6Z2V0UmVjb3JkIik7CiAKICAg
ICBBU1NFUlQobV90cmFuc2FjdGlvbkluZm8uaWRlbnRpZmllcigpID09IHJlcXVlc3REYXRhLnRy
YW5zYWN0aW9uSWRlbnRpZmllcigpKTsKIAogICAgIFJlZlB0cjxVbmlxdWVJREJEYXRhYmFzZVRy
YW5zYWN0aW9uPiBzZWxmKHRoaXMpOwotICAgIG1fZGF0YWJhc2VDb25uZWN0aW9uLT5kYXRhYmFz
ZSgpLmdldFJlY29yZChyZXF1ZXN0RGF0YSwga2V5RGF0YSwgW3RoaXMsIHNlbGYsIHJlcXVlc3RE
YXRhXShjb25zdCBJREJFcnJvciYgZXJyb3IsIGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2
YWx1ZURhdGEpIHsKKyAgICBtX2RhdGFiYXNlQ29ubmVjdGlvbi0+ZGF0YWJhc2UoKS5nZXRSZWNv
cmQocmVxdWVzdERhdGEsIGtleVJhbmdlRGF0YSwgW3RoaXMsIHNlbGYsIHJlcXVlc3REYXRhXShj
b25zdCBJREJFcnJvciYgZXJyb3IsIGNvbnN0IFRocmVhZFNhZmVEYXRhQnVmZmVyJiB2YWx1ZURh
dGEpIHsKICAgICAgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rp
b246OmdldFJlY29yZCAoY2FsbGJhY2spIik7CiAKICAgICAgICAgaWYgKGVycm9yLmlzTnVsbCgp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1Vu
aXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uLmgKaW5kZXggODBhOGZh
ZS4uOGIyMzFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5o
CkBAIC00Miw2ICs0Miw4IEBAIGNsYXNzIElEQk9iamVjdFN0b3JlSW5mbzsKIGNsYXNzIElEQlJl
cXVlc3REYXRhOwogY2xhc3MgVGhyZWFkU2FmZURhdGFCdWZmZXI7CiAKK3N0cnVjdCBJREJLZXlS
YW5nZURhdGE7CisKIG5hbWVzcGFjZSBJREJTZXJ2ZXIgewogCiBjbGFzcyBVbmlxdWVJREJEYXRh
YmFzZUNvbm5lY3Rpb247CkBAIC02NSw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNyZWF0
ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCT2JqZWN0U3RvcmVJ
bmZvJik7CiAgICAgdm9pZCBkZWxldGVPYmplY3RTdG9yZShjb25zdCBJREJSZXF1ZXN0RGF0YSYs
IGNvbnN0IFN0cmluZyYgb2JqZWN0U3RvcmVOYW1lKTsKICAgICB2b2lkIHB1dE9yQWRkKGNvbnN0
IElEQlJlcXVlc3REYXRhJiwgY29uc3QgSURCS2V5RGF0YSYsIGNvbnN0IFRocmVhZFNhZmVEYXRh
QnVmZmVyJiB2YWx1ZURhdGEsIEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2RlKTsK
LSAgICB2b2lkIGdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleURh
dGEmKTsKKyAgICB2b2lkIGdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElE
QktleVJhbmdlRGF0YSYpOwogCiAgICAgdm9pZCBkaWRBY3RpdmF0ZUluQmFja2luZ1N0b3JlKGNv
bnN0IElEQkVycm9yJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKaW5kZXggZGMwOWEw
OS4uNDFjZTUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5jcHAKQEAgLTMwLDcgKzMwLDcg
QEAKIAogI2luY2x1ZGUgIklEQkNvbm5lY3Rpb25Ub0NsaWVudC5oIgogI2luY2x1ZGUgIklEQkNv
bm5lY3Rpb25Ub1NlcnZlci5oIgotI2luY2x1ZGUgIklEQktleURhdGEuaCIKKyNpbmNsdWRlICJJ
REJLZXlSYW5nZURhdGEuaCIKICNpbmNsdWRlICJJREJPcGVuREJSZXF1ZXN0SW1wbC5oIgogI2lu
Y2x1ZGUgIklEQlJlcXVlc3REYXRhLmgiCiAjaW5jbHVkZSAiSURCUmVzdWx0RGF0YS5oIgpAQCAt
MTk0LDEzICsxOTQsMTIgQEAgdm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OnB1dE9yQWRkKGNvbnN0
IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgSURCS2V5KiBrZXkKICAgICB9KTsKIH0KIAot
dm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYg
cmVxdWVzdERhdGEsIElEQktleSoga2V5KQordm9pZCBJblByb2Nlc3NJREJTZXJ2ZXI6OmdldFJl
Y29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQktleVJhbmdl
RGF0YSYga2V5UmFuZ2VEYXRhKQogewogICAgIFJlZlB0cjxJblByb2Nlc3NJREJTZXJ2ZXI+IHNl
bGYodGhpcyk7Ci0gICAgSURCS2V5RGF0YSBrZXlEYXRhKGtleSk7CiAKLSAgICBSdW5Mb29wOjpj
dXJyZW50KCkuZGlzcGF0Y2goW3RoaXMsIHNlbGYsIHJlcXVlc3REYXRhLCBrZXlEYXRhXSB7Ci0g
ICAgICAgIG1fc2VydmVyLT5nZXRSZWNvcmQocmVxdWVzdERhdGEsIGtleURhdGEpOworICAgIFJ1
bkxvb3A6OmN1cnJlbnQoKS5kaXNwYXRjaChbdGhpcywgc2VsZiwgcmVxdWVzdERhdGEsIGtleVJh
bmdlRGF0YV0geworICAgICAgICBtX3NlcnZlci0+Z2V0UmVjb3JkKHJlcXVlc3REYXRhLCBrZXlS
YW5nZURhdGEpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSW5Qcm9jZXNzSURCU2VydmVyLmgKaW5kZXggYjZh
YzQyOS4uOWFkZmRjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0luUHJvY2Vzc0lEQlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JblByb2Nlc3NJREJTZXJ2ZXIuaApAQCAtNjEsNyArNjEsNyBA
QCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJl
cXVlc3REYXRhJiwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJikgb3ZlcnJpZGUgZmluYWw7CiAg
ICAgdmlydHVhbCB2b2lkIGRlbGV0ZU9iamVjdFN0b3JlKGNvbnN0IElEQlJlcXVlc3REYXRhJiwg
Y29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUpIG92ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1
YWwgdm9pZCBwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIElEQktleSosIFNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZSYsIGNvbnN0IEluZGV4ZWREQjo6T2JqZWN0U3RvcmVPdmVyd3JpdGVNb2Rl
KSBvdmVycmlkZSBmaW5hbDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0UmVjb3JkKGNvbnN0IElEQlJl
cXVlc3REYXRhJiwgSURCS2V5Kikgb3ZlcnJpZGUgZmluYWw7CisgICAgdmlydHVhbCB2b2lkIGdl
dFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYsIGNvbnN0IElEQktleVJhbmdlRGF0YSYpIG92
ZXJyaWRlIGZpbmFsOwogICAgIHZpcnR1YWwgdm9pZCBlc3RhYmxpc2hUcmFuc2FjdGlvbih1aW50
NjRfdCBkYXRhYmFzZUNvbm5lY3Rpb25JZGVudGlmaWVyLCBjb25zdCBJREJUcmFuc2FjdGlvbklu
Zm8mKSBvdmVycmlkZSBmaW5hbDsKICAgICB2aXJ0dWFsIHZvaWQgZGF0YWJhc2VDb25uZWN0aW9u
Q2xvc2VkKHVpbnQ2NF90IGRhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIpIG92ZXJyaWRlIGZp
bmFsOwogCg==
</data>
<flag name="review"
          id="289532"
          type_id="1"
          status="+"
          setter="achristensen"
    />
          </attachment>
      

    </bug>

</bugzilla>