<?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>204146</bug_id>
          
          <creation_ts>2019-11-13 01:10:31 -0800</creation_ts>
          <short_desc>[Win][DumpRenderTree][WebKitTestRunner] eventSender.keyDown should support function keys</short_desc>
          <delta_ts>2019-11-13 17:57:54 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Fujii Hironori">fujii</reporter>
          <assigned_to name="Fujii Hironori">fujii</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bfulgham</cc>
    
    <cc>don.olmstead</cc>
    
    <cc>pvollan</cc>
    
    <cc>ross.kirsling</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1589791</commentid>
    <comment_count>0</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-11-13 01:10:31 -0800</bug_when>
    <thetext>[Win][DumpRenderTree][WebKitTestRunner] eventSender.keyDown should support function keys

fast/events/keydown-function-keys.html is failing for AppleWin and WinCairo ports.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589798</commentid>
    <comment_count>1</comment_count>
      <attachid>383440</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-11-13 01:44:21 -0800</bug_when>
    <thetext>Created attachment 383440
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1589820</commentid>
    <comment_count>2</comment_count>
      <attachid>383440</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-11-13 03:41:15 -0800</bug_when>
    <thetext>Comment on attachment 383440
Patch

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

&gt; Tools/DumpRenderTree/win/EventSender.cpp:465
&gt; +        // Some keys need to turn on KF_EXTENDED explicitly

This is a hack to work around a bug of MapVirtualKey and MapVirtualKeyEx doesn&apos;t work as expected.

MapVirtualKey(), GetKeyNameText(), and a story of how to get proper names for the arrow keys - setnode.com
http://www.setnode.com/blog/mapvirtualkey-getkeynametext-and-a-story-of-how-to/

http://www.setnode.com/blog/mapvirtualkey-getkeynametext-and-a-story-of-how-to/#comment-1104594462

&gt; Even using MapVirtualKeyEx() doesn&apos;t make MAPVK_VK_TO_VSC_EX behave the way the docs seem to imply.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590062</commentid>
    <comment_count>3</comment_count>
      <attachid>383440</attachid>
    <who name="Ross Kirsling">ross.kirsling</who>
    <bug_when>2019-11-13 15:18:39 -0800</bug_when>
    <thetext>Comment on attachment 383440
Patch

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

r=me

&gt;&gt; Tools/DumpRenderTree/win/EventSender.cpp:465
&gt;&gt; +        // Some keys need to turn on KF_EXTENDED explicitly
&gt; 
&gt; This is a hack to work around a bug of MapVirtualKey and MapVirtualKeyEx doesn&apos;t work as expected.
&gt; 
&gt; MapVirtualKey(), GetKeyNameText(), and a story of how to get proper names for the arrow keys - setnode.com
&gt; http://www.setnode.com/blog/mapvirtualkey-getkeynametext-and-a-story-of-how-to/
&gt; 
&gt; http://www.setnode.com/blog/mapvirtualkey-getkeynametext-and-a-story-of-how-to/#comment-1104594462

Perhaps this info should be added to the ChangeLog?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590133</commentid>
    <comment_count>4</comment_count>
      <attachid>383440</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-11-13 17:33:16 -0800</bug_when>
    <thetext>Comment on attachment 383440
Patch

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

&gt;&gt;&gt; Tools/DumpRenderTree/win/EventSender.cpp:465
&gt;&gt;&gt; +        // Some keys need to turn on KF_EXTENDED explicitly
&gt;&gt; 
&gt;&gt; This is a hack to work around a bug of MapVirtualKey and MapVirtualKeyEx doesn&apos;t work as expected.
&gt;&gt; 
&gt;&gt; MapVirtualKey(), GetKeyNameText(), and a story of how to get proper names for the arrow keys - setnode.com
&gt;&gt; http://www.setnode.com/blog/mapvirtualkey-getkeynametext-and-a-story-of-how-to/
&gt;&gt; 
&gt;&gt; http://www.setnode.com/blog/mapvirtualkey-getkeynametext-and-a-story-of-how-to/#comment-1104594462
&gt; 
&gt; Perhaps this info should be added to the ChangeLog?

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590144</commentid>
    <comment_count>5</comment_count>
      <attachid>383531</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-11-13 17:52:17 -0800</bug_when>
    <thetext>Created attachment 383531
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590146</commentid>
    <comment_count>6</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2019-11-13 17:56:06 -0800</bug_when>
    <thetext>Committed r252441: &lt;https://trac.webkit.org/changeset/252441&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1590147</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-13 17:57:54 -0800</bug_when>
    <thetext>&lt;rdar://problem/57176065&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383440</attachid>
            <date>2019-11-13 01:44:21 -0800</date>
            <delta_ts>2019-11-13 17:52:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204146-20191113184420.patch</filename>
            <type>text/plain</type>
            <size>16794</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyMzkzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggY2I5MTYwYTExNTYxYmIxODE1MGE1YTBlNjBhYzlhZTVl
NWIwM2VjZS4uNmNiZWQ5MDE0MDI3NGZiNjQwZTk5YWI0OTM5NzNhMWZkMTgxNzc3YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIz
IEBACisyMDE5LTExLTEzICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29t
PgorCisgICAgICAgIFtXaW5dW0R1bXBSZW5kZXJUcmVlXVtXZWJLaXRUZXN0UnVubmVyXSBldmVu
dFNlbmRlci5rZXlEb3duIHNob3VsZCBzdXBwb3J0IGZ1bmN0aW9uIGtleXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDE0NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZWQgZXZlbnRTZW5kZXIu
a2V5RG93biBvZiBEUlQgYW5kIFdUUiB0byBzdXBwb3J0IHNlbmRpbmcKKyAgICAgICAgZnVuY3Rp
b24ga2V5cy4KKworICAgICAgICBJbiBhZGRpdGlvbiB0byB0aGF0LCB0aGlzIGNoYW5nZSBzZXQg
Y29ycmVjdCBMUEFSQU0gZm9yIGFsbCBrZXkKKyAgICAgICAgZXZlbnRzLiAKKworICAgICAgICAq
IER1bXBSZW5kZXJUcmVlL3dpbi9FdmVudFNlbmRlci5jcHA6CisgICAgICAgIChtYWtlS2V5RGF0
YUZvclNjYW5Db2RlKToKKyAgICAgICAgKGtleURvd25DYWxsYmFjayk6CisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci93aW4vRXZlbnRTZW5kZXJQcm94eVdpbi5jcHA6CisgICAgICAgIChXVFI6
Om1ha2VLZXlEYXRhRm9yU2NhbkNvZGUpOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5
OjprZXlEb3duKToKKwogMjAxOS0xMS0xMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBXS1dlYlZpZXcgZG9lcyBub3QgcmVzcGVjdCBzeXN0
ZW0gc3BlbGxjaGVja2luZyBwcmVmZXJlbmNlCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS93aW4vRXZlbnRTZW5kZXIuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0V2ZW50
U2VuZGVyLmNwcAppbmRleCAzYWJiOTVkYzAzOTIwZjRlNzgyNGYwNjc4MGU4MzFmMDVjNTA4ZGE0
Li43MmIwZDU5ZDYwYTFhNjM0N2M3Y2VjODI1MDdkOWI2OWQ0OTM5YmVlIDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vRXZlbnRTZW5kZXIuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL3dpbi9FdmVudFNlbmRlci5jcHAKQEAgLTQ0MSwxNCArNDQxLDM5IEBAIHZvaWQg
cmVwbGF5U2F2ZWRFdmVudHMoSFJFU1VMVCogb2xlRHJhZ0FuZERyb3BSZXR1cm5WYWx1ZSkKICAg
ICByZXBsYXlpbmdTYXZlZEV2ZW50cyA9IGZhbHNlOwogfQogCi1zdGF0aWMgaW50IG1ha2VLZXlE
YXRhRm9yU2NhbkNvZGUoaW50IHZpcnR1YWxLZXlDb2RlKQorc3RhdGljIHVuc2lnbmVkIG1ha2VL
ZXlEYXRhRm9yU2NhbkNvZGUoaW50IHZpcnR1YWxLZXlDb2RlKQogewogICAgIHVuc2lnbmVkIHNj
YW5jb2RlID0gTWFwVmlydHVhbEtleSh2aXJ0dWFsS2V5Q29kZSwgTUFQVktfVktfVE9fVlNDKTsK
ICAgICBpbnQga2V5RGF0YSA9IHNjYW5jb2RlICYgMHhGRjsKKworICAgIGJvb2wgZm9yY2VFeHRl
bmRlZCA9IGZhbHNlOworICAgIHN3aXRjaCAodmlydHVhbEtleUNvZGUpIHsKKyAgICBjYXNlIFZL
X0xFRlQ6CisgICAgY2FzZSBWS19VUDoKKyAgICBjYXNlIFZLX1JJR0hUOgorICAgIGNhc2UgVktf
RE9XTjoKKyAgICBjYXNlIFZLX1BSSU9SOgorICAgIGNhc2UgVktfTkVYVDoKKyAgICBjYXNlIFZL
X0VORDoKKyAgICBjYXNlIFZLX0hPTUU6CisgICAgY2FzZSBWS19JTlNFUlQ6CisgICAgY2FzZSBW
S19ERUxFVEU6CisgICAgY2FzZSBWS19ESVZJREU6CisgICAgY2FzZSBWS19OVU1MT0NLOgorICAg
IGNhc2UgVktfUkNPTlRST0w6CisgICAgY2FzZSBWS19STUVOVToKKyAgICAgICAgLy8gU29tZSBr
ZXlzIG5lZWQgdG8gdHVybiBvbiBLRl9FWFRFTkRFRCBleHBsaWNpdGx5CisgICAgICAgIGZvcmNl
RXh0ZW5kZWQgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBi
cmVhazsKKyAgICB9CisKICAgICBzY2FuY29kZSA9IHNjYW5jb2RlID4+IDg7Ci0gICAgaWYgKHNj
YW5jb2RlID09IDB4ZTAgfHwgc2NhbmNvZGUgPT0gMHhlMSkKKyAgICBpZiAoc2NhbmNvZGUgPT0g
MHhlMCB8fCBzY2FuY29kZSA9PSAweGUxIHx8IGZvcmNlRXh0ZW5kZWQpCiAgICAgICAgIGtleURh
dGEgKz0gS0ZfRVhURU5ERUQ7Ci0gICAgcmV0dXJuIGtleURhdGEgPDwgMTY7CisgICAgdW5zaWdu
ZWQgcmVwZWF0ID0gMTsKKyAgICByZXR1cm4ga2V5RGF0YSA8PCAxNiB8IHJlcGVhdDsKIH0KIAog
c3RhdGljIEpTVmFsdWVSZWYga2V5RG93bkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3Vt
ZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2Vw
dGlvbikKQEAgLTQ2NCwyMyArNDg5LDE4IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGtleURvd25DYWxs
YmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTCiAgICAg
CiAgICAgSlNTdHJpbmdSZWYgY2hhcmFjdGVyID0gSlNWYWx1ZVRvU3RyaW5nQ29weShjb250ZXh0
LCBhcmd1bWVudHNbMF0sIGV4Y2VwdGlvbik7CiAgICAgQVNTRVJUKCEqZXhjZXB0aW9uKTsKLSAg
ICBpbnQgdmlydHVhbEtleUNvZGU7CisgICAgaW50IHZpcnR1YWxLZXlDb2RlID0gMDsKICAgICBp
bnQgY2hhckNvZGUgPSAwOwotICAgIGludCBrZXlEYXRhID0gMTsKICAgICBib29sIG5lZWRzU2hp
ZnRLZXlNb2RpZmllciA9IGZhbHNlOwotICAgIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKGNoYXJhY3RlciwgImxlZnRBcnJvdyIpKSB7CisgICAgaWYgKEpTU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcoY2hhcmFjdGVyLCAibGVmdEFycm93IikpCiAgICAgICAgIHZpcnR1YWxLZXlD
b2RlID0gVktfTEVGVDsKLSAgICAgICAga2V5RGF0YSArPSBLRl9FWFRFTkRFRCA8PCAxNjsgLy8g
SW4gdGhpcyBjYXNlLCBleHRlbmRlZCBtZWFucyAibm90IGtleXBhZCIuCi0gICAgfSBlbHNlIGlm
IChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgInJpZ2h0QXJyb3ciKSkg
eworICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAi
cmlnaHRBcnJvdyIpKQogICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX1JJR0hUOwotICAgICAg
ICBrZXlEYXRhICs9IEtGX0VYVEVOREVEIDw8IDE2OwotICAgIH0gZWxzZSBpZiAoSlNTdHJpbmdJ
c0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJ1cEFycm93IikpIHsKKyAgICBlbHNlIGlm
IChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgInVwQXJyb3ciKSkKICAg
ICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19VUDsKLSAgICAgICAga2V5RGF0YSArPSBLRl9FWFRF
TkRFRCA8PCAxNjsKLSAgICB9IGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
Y2hhcmFjdGVyLCAiZG93bkFycm93IikpIHsKKyAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKGNoYXJhY3RlciwgImRvd25BcnJvdyIpKQogICAgICAgICB2aXJ0dWFsS2V5
Q29kZSA9IFZLX0RPV047Ci0gICAgICAgIGtleURhdGEgKz0gS0ZfRVhURU5ERUQgPDwgMTY7Ci0g
ICAgfSBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgInBh
Z2VVcCIpKQorICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFj
dGVyLCAicGFnZVVwIikpCiAgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfUFJJT1I7CiAgICAg
ZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJwYWdlRG93
biIpKQogICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX05FWFQ7CkBAIC00OTYsMzIgKzUxNiw1
NCBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBrZXlEb3duQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKUwogICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZL
X1NOQVBTSE9UOwogICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hh
cmFjdGVyLCAibWVudSIpKQogICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0FQUFM7Ci0gICAg
ZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJsZWZ0Q29u
dHJvbCIpKSB7Ci0gICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfQ09OVFJPTDsKLSAgICAgICAg
a2V5RGF0YSArPSBtYWtlS2V5RGF0YUZvclNjYW5Db2RlKFZLX0xDT05UUk9MKTsKLSAgICB9IGVs
c2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAibGVmdFNoaWZ0
IikpIHsKLSAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19TSElGVDsKLSAgICAgICAga2V5RGF0
YSArPSBtYWtlS2V5RGF0YUZvclNjYW5Db2RlKFZLX0xTSElGVCk7Ci0gICAgfSBlbHNlIGlmIChK
U1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgImxlZnRBbHQiKSkgewotICAg
ICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX01FTlU7Ci0gICAgICAgIGtleURhdGEgKz0gbWFrZUtl
eURhdGFGb3JTY2FuQ29kZShWS19MTUVOVSk7Ci0gICAgfSBlbHNlIGlmIChKU1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgInJpZ2h0Q29udHJvbCIpKSB7CisgICAgZWxzZSBp
ZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJsZWZ0Q29udHJvbCIp
KQorICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0xDT05UUk9MOworICAgIGVsc2UgaWYgKEpT
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAibGVmdFNoaWZ0IikpCisgICAg
ICAgIHZpcnR1YWxLZXlDb2RlID0gVktfTFNISUZUOworICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNF
cXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAibGVmdEFsdCIpKQorICAgICAgICB2aXJ0dWFs
S2V5Q29kZSA9IFZLX0xNRU5VOworICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENT
dHJpbmcoY2hhcmFjdGVyLCAicmlnaHRDb250cm9sIikpCisgICAgICAgIHZpcnR1YWxLZXlDb2Rl
ID0gVktfUkNPTlRST0w7CisgICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
ZyhjaGFyYWN0ZXIsICJyaWdodFNoaWZ0IikpCisgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktf
UlNISUZUOworICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFj
dGVyLCAicmlnaHRBbHQiKSkKKyAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19STUVOVTsKKyAg
ICBlbHNlIHsKKyAgICAgICAgc2l6ZV90IGNoYXJhY3Rlckxlbmd0aCA9IEpTU3RyaW5nR2V0TGVu
Z3RoKGNoYXJhY3Rlcik7CisgICAgICAgIHN0YXRpYyBjb25zdCBjaGFyIHNoaWZ0ZWRVU0NoYXJh
Y3RlcnNbXSA9ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWn4hQCMkJV4mKigpXyt7fXw6XCI8
Pj8iOworICAgICAgICBjb25zdCB3Y2hhcl90KiBjaGFyYWN0ZXJQdHIgPSBKU1N0cmluZ0dldENo
YXJhY3RlcnNQdHIoY2hhcmFjdGVyKTsKKyAgICAgICAgaWYgKGNoYXJhY3Rlckxlbmd0aCA9PSAx
KSB7CisgICAgICAgICAgICBjaGFyQ29kZSA9IGNoYXJhY3RlclB0clswXTsKKyAgICAgICAgICAg
IHZpcnR1YWxLZXlDb2RlID0gTE9CWVRFKFZrS2V5U2NhbihjaGFyQ29kZSkpOworICAgICAgICAg
ICAgaWYgKHN0cmNocihzaGlmdGVkVVNDaGFyYWN0ZXJzLCBjaGFyQ29kZSkpCisgICAgICAgICAg
ICAgICAgbmVlZHNTaGlmdEtleU1vZGlmaWVyID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNlIGlmIChj
aGFyYWN0ZXJQdHJbMF0gPT0gJ0YnKSB7CisgICAgICAgICAgICBpZiAoY2hhcmFjdGVyTGVuZ3Ro
ID09IDIgJiYgaXNBU0NJSURpZ2l0KGNoYXJhY3RlclB0clsxXSkpCisgICAgICAgICAgICAgICAg
dmlydHVhbEtleUNvZGUgPSBWS19GMSArIGNoYXJhY3RlclB0clsxXSAtICcxJzsKKyAgICAgICAg
ICAgIGVsc2UgaWYgKGNoYXJhY3Rlckxlbmd0aCA9PSAzICYmIGNoYXJhY3RlclB0clsxXSA9PSAn
MScgJiYgaXNBU0NJSURpZ2l0KGNoYXJhY3RlclB0clsyXSkpCisgICAgICAgICAgICAgICAgdmly
dHVhbEtleUNvZGUgPSBWS19GMTAgKyBjaGFyYWN0ZXJQdHJbMl0gLSAnMCc7CisgICAgICAgIH0K
KyAgICB9CisgICAgSlNTdHJpbmdSZWxlYXNlKGNoYXJhY3Rlcik7CisKKyAgICB1bnNpZ25lZCBr
ZXlEYXRhID0gbWFrZUtleURhdGFGb3JTY2FuQ29kZSh2aXJ0dWFsS2V5Q29kZSk7CisKKyAgICBz
d2l0Y2ggKHZpcnR1YWxLZXlDb2RlKSB7CisgICAgY2FzZSBWS19MQ09OVFJPTDoKKyAgICBjYXNl
IFZLX1JDT05UUk9MOgogICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0NPTlRST0w7Ci0gICAg
ICAgIGtleURhdGEgKz0gbWFrZUtleURhdGFGb3JTY2FuQ29kZShWS19SQ09OVFJPTCk7Ci0gICAg
fSBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgInJpZ2h0
U2hpZnQiKSkgeworICAgICAgICBicmVhazsKKyAgICBjYXNlIFZLX0xTSElGVDoKKyAgICBjYXNl
IFZLX1JTSElGVDoKICAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19TSElGVDsKLSAgICAgICAg
a2V5RGF0YSArPSBtYWtlS2V5RGF0YUZvclNjYW5Db2RlKFZLX1JTSElGVCk7Ci0gICAgfSBlbHNl
IGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgInJpZ2h0QWx0Iikp
IHsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWS19MTUVOVToKKyAgICBjYXNlIFZLX1JNRU5V
OgogICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX01FTlU7Ci0gICAgICAgIGtleURhdGEgKz0g
bWFrZUtleURhdGFGb3JTY2FuQ29kZShWS19STUVOVSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
c3RhdGljIGNvbnN0IGNoYXIgc2hpZnRlZFVTQ2hhcmFjdGVyc1tdID0gIkFCQ0RFRkdISUpLTE1O
T1BRUlNUVVZXWFlafiFAIyQlXiYqKClfK3t9fDpcIjw+PyI7Ci0gICAgICAgIGNoYXJDb2RlID0g
SlNTdHJpbmdHZXRDaGFyYWN0ZXJzUHRyKGNoYXJhY3RlcilbMF07Ci0gICAgICAgIHZpcnR1YWxL
ZXlDb2RlID0gTE9CWVRFKFZrS2V5U2NhbihjaGFyQ29kZSkpOwotICAgICAgICBpZiAoc3RyY2hy
KHNoaWZ0ZWRVU0NoYXJhY3RlcnMsIGNoYXJDb2RlKSkKLSAgICAgICAgICAgIG5lZWRzU2hpZnRL
ZXlNb2RpZmllciA9IHRydWU7CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAg
IGJyZWFrOwogICAgIH0KLSAgICBKU1N0cmluZ1JlbGVhc2UoY2hhcmFjdGVyKTsKIAogICAgIEJZ
VEUga2V5U3RhdGVbMjU2XTsKICAgICBpZiAoYXJndW1lbnRDb3VudCA+IDEgfHwgbmVlZHNTaGlm
dEtleU1vZGlmaWVyKSB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dpbi9F
dmVudFNlbmRlclByb3h5V2luLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL0V2ZW50
U2VuZGVyUHJveHlXaW4uY3BwCmluZGV4IDA4ODhkM2E1ZjRmOTU4NDdlNDdmODc5NzhmMzRhNGI1
MmNlNzlhNmQuLjA2ZjE5MjYxYjM4N2NlMDJhNDRjMzE5YmQ3MDE2ZTgyNDg0N2FkMjQgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL0V2ZW50U2VuZGVyUHJveHlXaW4uY3Bw
CisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL0V2ZW50U2VuZGVyUHJveHlXaW4uY3Bw
CkBAIC0xNTIsMTQgKzE1MiwzOSBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmxlYXBGb3J3YXJk
KGludCBtaWxsaXNlY29uZHMpCiAgICAgbV90aW1lICs9IG1pbGxpc2Vjb25kcyAvIDEwMDAuMDsK
IH0KIAotc3RhdGljIGludCBtYWtlS2V5RGF0YUZvclNjYW5Db2RlKGludCB2aXJ0dWFsS2V5Q29k
ZSkKK3N0YXRpYyB1bnNpZ25lZCBtYWtlS2V5RGF0YUZvclNjYW5Db2RlKGludCB2aXJ0dWFsS2V5
Q29kZSkKIHsKICAgICB1bnNpZ25lZCBzY2FuY29kZSA9IE1hcFZpcnR1YWxLZXkodmlydHVhbEtl
eUNvZGUsIE1BUFZLX1ZLX1RPX1ZTQyk7CiAgICAgaW50IGtleURhdGEgPSBzY2FuY29kZSAmIDB4
RkY7CisKKyAgICBib29sIGZvcmNlRXh0ZW5kZWQgPSBmYWxzZTsKKyAgICBzd2l0Y2ggKHZpcnR1
YWxLZXlDb2RlKSB7CisgICAgY2FzZSBWS19MRUZUOgorICAgIGNhc2UgVktfVVA6CisgICAgY2Fz
ZSBWS19SSUdIVDoKKyAgICBjYXNlIFZLX0RPV046CisgICAgY2FzZSBWS19QUklPUjoKKyAgICBj
YXNlIFZLX05FWFQ6CisgICAgY2FzZSBWS19FTkQ6CisgICAgY2FzZSBWS19IT01FOgorICAgIGNh
c2UgVktfSU5TRVJUOgorICAgIGNhc2UgVktfREVMRVRFOgorICAgIGNhc2UgVktfRElWSURFOgor
ICAgIGNhc2UgVktfTlVNTE9DSzoKKyAgICBjYXNlIFZLX1JDT05UUk9MOgorICAgIGNhc2UgVktf
Uk1FTlU6CisgICAgICAgIC8vIFNvbWUga2V5cyBuZWVkIHRvIHR1cm4gb24gS0ZfRVhURU5ERUQg
ZXhwbGljaXRseQorICAgICAgICBmb3JjZUV4dGVuZGVkID0gdHJ1ZTsKKyAgICAgICAgYnJlYWs7
CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCiAgICAgc2NhbmNvZGUgPSBz
Y2FuY29kZSA+PiA4OwotICAgIGlmIChzY2FuY29kZSA9PSAweGUwIHx8IHNjYW5jb2RlID09IDB4
ZTEpCisgICAgaWYgKHNjYW5jb2RlID09IDB4ZTAgfHwgc2NhbmNvZGUgPT0gMHhlMSB8fCBmb3Jj
ZUV4dGVuZGVkKQogICAgICAgICBrZXlEYXRhICs9IEtGX0VYVEVOREVEOwotICAgIHJldHVybiBr
ZXlEYXRhIDw8IDE2OworICAgIHVuc2lnbmVkIHJlcGVhdCA9IDE7CisgICAgcmV0dXJuIGtleURh
dGEgPDwgMTYgfCByZXBlYXQ7CiB9CiAKIHN0YXRpYyB2b2lkIHB1bXBNZXNzYWdlUXVldWUoKQpA
QCAtMTczLDIzICsxOTgsMTkgQEAgc3RhdGljIHZvaWQgcHVtcE1lc3NhZ2VRdWV1ZSgpCiAKIHZv
aWQgRXZlbnRTZW5kZXJQcm94eTo6a2V5RG93bihXS1N0cmluZ1JlZiBrZXlSZWYsIFdLRXZlbnRN
b2RpZmllcnMgd2tNb2RpZmllcnMsIHVuc2lnbmVkIGxvY2F0aW9uKQogewotICAgIGludCB2aXJ0
dWFsS2V5Q29kZTsKKyAgICBpbnQgdmlydHVhbEtleUNvZGUgPSAwOwogICAgIGludCBjaGFyQ29k
ZSA9IDA7Ci0gICAgaW50IGtleURhdGEgPSAxOworCiAgICAgYm9vbCBuZWVkc1NoaWZ0S2V5TW9k
aWZpZXIgPSBmYWxzZTsKLSAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlS
ZWYsICJsZWZ0QXJyb3ciKSkgeworICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5n
KGtleVJlZiwgImxlZnRBcnJvdyIpKQogICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0xFRlQ7
Ci0gICAgICAgIGtleURhdGEgKz0gS0ZfRVhURU5ERUQgPDwgMTY7IC8vIEluIHRoaXMgY2FzZSwg
ZXh0ZW5kZWQgbWVhbnMgIm5vdCBrZXlwYWQiLgotICAgIH0gZWxzZSBpZiAoV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJyaWdodEFycm93IikpIHsKKyAgICBlbHNlIGlmIChX
S1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgInJpZ2h0QXJyb3ciKSkKICAgICAg
ICAgdmlydHVhbEtleUNvZGUgPSBWS19SSUdIVDsKLSAgICAgICAga2V5RGF0YSArPSBLRl9FWFRF
TkRFRCA8PCAxNjsKLSAgICB9IGVsc2UgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
a2V5UmVmLCAidXBBcnJvdyIpKSB7CisgICAgZWxzZSBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhrZXlSZWYsICJ1cEFycm93IikpCiAgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktf
VVA7Ci0gICAgICAgIGtleURhdGEgKz0gS0ZfRVhURU5ERUQgPDwgMTY7Ci0gICAgfSBlbHNlIGlm
IChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgImRvd25BcnJvdyIpKSB7Cisg
ICAgZWxzZSBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJkb3duQXJy
b3ciKSkKICAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19ET1dOOwotICAgICAgICBrZXlEYXRh
ICs9IEtGX0VYVEVOREVEIDw8IDE2OwotICAgIH0gZWxzZSBpZiAoV0tTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhrZXlSZWYsICJwYWdlVXAiKSkKKyAgICBlbHNlIGlmIChXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgInBhZ2VVcCIpKQogICAgICAgICB2aXJ0dWFsS2V5Q29k
ZSA9IFZLX1BSSU9SOwogICAgIGVsc2UgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
a2V5UmVmLCAicGFnZURvd24iKSkKICAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19ORVhUOwpA
QCAtMjA1LDMyICsyMjYsNTMgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5OjprZXlEb3duKFdLU3Ry
aW5nUmVmIGtleVJlZiwgV0tFdmVudE1vZGlmaWVycyB3a01vZGlmaWVycywKICAgICAgICAgdmly
dHVhbEtleUNvZGUgPSBWS19TTkFQU0hPVDsKICAgICBlbHNlIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKGtleVJlZiwgIm1lbnUiKSkKICAgICAgICAgdmlydHVhbEtleUNvZGUgPSBW
S19BUFBTOwotICAgIGVsc2UgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5UmVm
LCAibGVmdENvbnRyb2wiKSkgewotICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0NPTlRST0w7
Ci0gICAgICAgIGtleURhdGEgKz0gbWFrZUtleURhdGFGb3JTY2FuQ29kZShWS19MQ09OVFJPTCk7
Ci0gICAgfSBlbHNlIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgImxl
ZnRTaGlmdCIpKSB7Ci0gICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfU0hJRlQ7Ci0gICAgICAg
IGtleURhdGEgKz0gbWFrZUtleURhdGFGb3JTY2FuQ29kZShWS19MU0hJRlQpOwotICAgIH0gZWxz
ZSBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJsZWZ0QWx0IikpIHsK
LSAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19NRU5VOwotICAgICAgICBrZXlEYXRhICs9IG1h
a2VLZXlEYXRhRm9yU2NhbkNvZGUoVktfTE1FTlUpOwotICAgIH0gZWxzZSBpZiAoV0tTdHJpbmdJ
c0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJyaWdodENvbnRyb2wiKSkgeworICAgIGVsc2Ug
aWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5UmVmLCAibGVmdENvbnRyb2wiKSkK
KyAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19MQ09OVFJPTDsKKyAgICBlbHNlIGlmIChXS1N0
cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgImxlZnRTaGlmdCIpKQorICAgICAgICB2
aXJ0dWFsS2V5Q29kZSA9IFZLX0xTSElGVDsKKyAgICBlbHNlIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKGtleVJlZiwgImxlZnRBbHQiKSkKKyAgICAgICAgdmlydHVhbEtleUNvZGUg
PSBWS19MTUVOVTsKKyAgICBlbHNlIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtl
eVJlZiwgInJpZ2h0Q29udHJvbCIpKQorICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX1JDT05U
Uk9MOworICAgIGVsc2UgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5UmVmLCAi
cmlnaHRTaGlmdCIpKQorICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX1JTSElGVDsKKyAgICBl
bHNlIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgInJpZ2h0QWx0Iikp
CisgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfUk1FTlU7CisgICAgZWxzZSB7CisgICAgICAg
IHNpemVfdCBrZXlMZW5ndGggPSBXS1N0cmluZ0dldExlbmd0aChrZXlSZWYpOworICAgICAgICBz
dGF0aWMgY29uc3QgY2hhciBzaGlmdGVkVVNDaGFyYWN0ZXJzW10gPSAiQUJDREVGR0hJSktMTU5P
UFFSU1RVVldYWVp+IUAjJCVeJiooKV8re318OlwiPD4/IjsKKyAgICAgICAgd2NoYXJfdCBrZXlT
dHJbM107CisgICAgICAgIFdLU3RyaW5nR2V0Q2hhcmFjdGVycyhrZXlSZWYsIGtleVN0ciwgX2Nv
dW50b2Yoa2V5U3RyKSk7CisgICAgICAgIGlmIChrZXlMZW5ndGggPT0gMSkgeworICAgICAgICAg
ICAgY2hhckNvZGUgPSBrZXlTdHJbMF07CisgICAgICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IExP
QllURShWa0tleVNjYW4oY2hhckNvZGUpKTsKKyAgICAgICAgICAgIGlmIChzdHJjaHIoc2hpZnRl
ZFVTQ2hhcmFjdGVycywgY2hhckNvZGUpKQorICAgICAgICAgICAgICAgIG5lZWRzU2hpZnRLZXlN
b2RpZmllciA9IHRydWU7CisgICAgICAgIH0gZWxzZSBpZiAoa2V5U3RyWzBdID09ICdGJykgewor
ICAgICAgICAgICAgaWYgKGtleUxlbmd0aCA9PSAyICYmIGlzQVNDSUlEaWdpdChrZXlTdHJbMV0p
KQorICAgICAgICAgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfRjEgKyBrZXlTdHJbMV0gLSAn
MSc7CisgICAgICAgICAgICBlbHNlIGlmIChrZXlMZW5ndGggPT0gMyAmJiBrZXlTdHJbMV0gPT0g
JzEnICYmIGlzQVNDSUlEaWdpdChrZXlTdHJbMl0pKQorICAgICAgICAgICAgICAgIHZpcnR1YWxL
ZXlDb2RlID0gVktfRjEwICsga2V5U3RyWzJdIC0gJzAnOworICAgICAgICB9CisgICAgfQorCisg
ICAgdW5zaWduZWQga2V5RGF0YSA9IG1ha2VLZXlEYXRhRm9yU2NhbkNvZGUodmlydHVhbEtleUNv
ZGUpOworCisgICAgc3dpdGNoICh2aXJ0dWFsS2V5Q29kZSkgeworICAgIGNhc2UgVktfTENPTlRS
T0w6CisgICAgY2FzZSBWS19SQ09OVFJPTDoKICAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19D
T05UUk9MOwotICAgICAgICBrZXlEYXRhICs9IG1ha2VLZXlEYXRhRm9yU2NhbkNvZGUoVktfUkNP
TlRST0wpOwotICAgIH0gZWxzZSBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlS
ZWYsICJyaWdodFNoaWZ0IikpIHsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBWS19MU0hJRlQ6
CisgICAgY2FzZSBWS19SU0hJRlQ6CiAgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfU0hJRlQ7
Ci0gICAgICAgIGtleURhdGEgKz0gbWFrZUtleURhdGFGb3JTY2FuQ29kZShWS19SU0hJRlQpOwot
ICAgIH0gZWxzZSBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJyaWdo
dEFsdCIpKSB7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgVktfTE1FTlU6CisgICAgY2FzZSBW
S19STUVOVToKICAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19NRU5VOwotICAgICAgICBrZXlE
YXRhICs9IG1ha2VLZXlEYXRhRm9yU2NhbkNvZGUoVktfUk1FTlUpOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIHN0YXRpYyBjb25zdCBjaGFyIHNoaWZ0ZWRVU0NoYXJhY3RlcnNbXSA9ICJBQkNERUZH
SElKS0xNTk9QUVJTVFVWV1hZWn4hQCMkJV4mKigpXyt7fXw6XCI8Pj8iOwotICAgICAgICB3Y2hh
cl90IGJ1ZmZbMV07Ci0gICAgICAgIFdLU3RyaW5nR2V0Q2hhcmFjdGVycyhrZXlSZWYsIGJ1ZmYs
IF9jb3VudG9mKGJ1ZmYpKTsKLSAgICAgICAgY2hhckNvZGUgPSBidWZmWzBdOwotICAgICAgICB2
aXJ0dWFsS2V5Q29kZSA9IExPQllURShWa0tleVNjYW4oY2hhckNvZGUpKTsKLSAgICAgICAgaWYg
KHN0cmNocihzaGlmdGVkVVNDaGFyYWN0ZXJzLCBjaGFyQ29kZSkpCi0gICAgICAgICAgICBuZWVk
c1NoaWZ0S2V5TW9kaWZpZXIgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKICAgICB9CiAKICAgICBib29sIGlzU3lzS2V5ID0gZmFsc2U7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZDFkMThjNzc4NzE4ZmFlNzg5OWRmZDFhMDMxMWIxMGUwMDA2MzMyNC4uOTU4YzA3ZTZkM2Fi
ZjVjY2U0MmI1OTE2YjBhNzNjMTU3Y2QzMGJlNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDE5
LTExLTEzICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgorCisgICAg
ICAgIFtXaW5dW0R1bXBSZW5kZXJUcmVlXVtXZWJLaXRUZXN0UnVubmVyXSBldmVudFNlbmRlci5r
ZXlEb3duIHNob3VsZCBzdXBwb3J0IGZ1bmN0aW9uIGtleXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDE0NgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlv
bnM6CisgICAgICAgICogcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9uczoKKyAgICAg
ICAgVW5za2lwcGVkIGZhc3QvZXZlbnRzL2tleWRvd24tZnVuY3Rpb24ta2V5cy5odG1sIGFuZCBm
YXN0L2V2ZW50cy9rZXlkb3duLWxlZnRyaWdodC1rZXlzLmh0bWwuCisKIDIwMTktMTEtMTIgIEZ1
amlpIEhpcm9ub3JpICA8SGlyb25vcmkuRnVqaWlAc29ueS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCB0ZXN0IGdhcmRlbmluZyBmb3IgV2luQ2Fpcm8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2lu
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggOTVkYzA4ZjE2NTY4NTQ4YmI5ZjA4OTFiNjI1OTA4NGZj
NjUwOGM5OS4uZDAwMTAzNTgyYWNjMGFiZmYxYmQ0OTNiOTAxODZhZGZkY2QwMGM1NyAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIzMyw5ICsyMzMsNiBA
QCBodHRwL3Rlc3RzL2xvY2FsL2Jsb2Ivc2VuZC1zbGljZWQtZGF0YS1ibG9iLmh0bWwgWyBTa2lw
IF0KICMgVE9ETyBCbG9kQnVpbGRlciBpcyBub3QgZW5hYmxlZAogaHR0cC90ZXN0cy9sb2NhbC9i
bG9iL3NlbmQtZGF0YS1ibG9iLmh0bWwgWyBTa2lwIF0KIAotIyBUT0RPIEEgdGVzdCB0aGF0IGZh
aWxlZCBiZWNhdXNlIGV2ZW50U2VuZGVyIGNhbm5vdCBzZW5kIGZ1bmN0aW9uLWtleSBldmVudHMu
Ci1mYXN0L2V2ZW50cy9rZXlkb3duLWZ1bmN0aW9uLWtleXMuaHRtbCBbIFNraXAgXQotCiAjIFRP
RE8gTm8gc3VwcG9ydCBmb3IgV2ViQXJjaGl2ZXMgaW4gV2ViS2l0V2luIDxyZGFyOi8vcHJvYmxl
bS82NDM2MDIwPgogd2ViYXJjaGl2ZSBbIFNraXAgXQogc3ZnL3dlYmFyY2hpdmUgWyBTa2lwIF0K
QEAgLTI3ODYsOCArMjc4Myw2IEBAIGZhc3QvZHluYW1pYy93aW5kb3ctcmVzaXplLXNjcm9sbGJh
cnMtdGVzdC5odG1sIFsgRmFpbHVyZSBUaW1lb3V0IF0KIGZhc3QvZW5jb2RpbmcvcGFyc2VyLXRl
c3RzLTExMC5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIAogd2Via2l0Lm9yZy9iLzEwMzA0MyBmYXN0
L2V2ZW50cy9mcmFtZS1zY3JvbGwtZmFrZS1tb3VzZS1tb3ZlLmh0bWwgWyBTa2lwIF0KLXdlYmtp
dC5vcmcvYi85NzAyNiBbIFJlbGVhc2UgXSBmYXN0L2V2ZW50cy9rZXlkb3duLWxlZnRyaWdodC1r
ZXlzLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi85NzAyNiBbIERlYnVnIF0gZmFzdC9l
dmVudHMva2V5ZG93bi1sZWZ0cmlnaHQta2V5cy5odG1sIFsgU2tpcCBdICMgRGVidWcgQXNzZXJ0
aW9uCiAjIGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eSB0ZXN0cyB0aW1lb3V0Lgogd2Via2l0
Lm9yZy9iLzEyMTUwOSBmYXN0L2V2ZW50cy93aGVlbGV2ZW50LW1vdXNld2hlZWwtaW50ZXJhY3Rp
b24uaHRtbCBbIFNraXAgXSAjICBbIFRpbWVvdXQgXQogZmFzdC9ldmVudHMvc3BlY2lhbC1rZXkt
ZXZlbnRzLWluLWlucHV0LXRleHQuaHRtbCBbIEZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggN2I4YjRkYjY2YWRiYjI3MWY0
NzYzMzAyZjRlOGE3OTM5ZDg2MWMzZS4uOTlhZjI3MDBjYzljZDkzOTZjYTViYzgyNzEwNDlhZTkz
YjE0YjE4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4
cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5jYWlyby9UZXN0RXhwZWN0
YXRpb25zCkBAIC0xNjc1LDggKzE2NzUsNiBAQCBmYXN0L2V2ZW50cy9rZXktZXZlbnRzLWluLWlu
cHV0LWJ1dHRvbi5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L2V2ZW50cy9rZXktZXZlbnRzLWluLWlu
cHV0LXRleHQuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9ldmVudHMva2V5Ym9hcmRldmVudC1jb2Rl
Lmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvZXZlbnRzL2tleWJvYXJkZXZlbnQta2V5Lmh0bWwgWyBG
YWlsdXJlIF0KLWZhc3QvZXZlbnRzL2tleWRvd24tZnVuY3Rpb24ta2V5cy5odG1sIFsgRmFpbHVy
ZSBdCi1mYXN0L2V2ZW50cy9rZXlkb3duLWxlZnRyaWdodC1rZXlzLmh0bWwgWyBGYWlsdXJlIF0K
IGZhc3QvZXZlbnRzL2tleWRvd24tbnVtcGFkLWtleXMuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9l
dmVudHMvbW91c2UtY3Vyc29yLWltYWdlLXNldC5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L2V2ZW50
cy9tb3VzZW92ZXItYnV0dG9uLmh0bWwgWyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383531</attachid>
            <date>2019-11-13 17:52:17 -0800</date>
            <delta_ts>2019-11-13 17:52:17 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-204146-20191114105216.patch</filename>
            <type>text/plain</type>
            <size>17208</size>
            <attacher name="Fujii Hironori">fujii</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNDQwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODUxNjdiYjEyMWI4MDllOWI1ZTMxZDMyMDExZGM0MmVi
YzdjOGE1Zi4uOTQwMWEyNTY4Mjk5ZWE1YzhiNjc3NDRjMTk0MDEzOWNjM2UyODU5MiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDE5LTExLTEzICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29t
PgorCisgICAgICAgIFtXaW5dW0R1bXBSZW5kZXJUcmVlXVtXZWJLaXRUZXN0UnVubmVyXSBldmVu
dFNlbmRlci5rZXlEb3duIHNob3VsZCBzdXBwb3J0IGZ1bmN0aW9uIGtleXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDE0NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IFJvc3MgS2lyc2xpbmcuCisKKyAgICAgICAgQ2hhbmdlZCBldmVudFNlbmRlci5r
ZXlEb3duIG9mIERSVCBhbmQgV1RSIHRvIHN1cHBvcnQgc2VuZGluZworICAgICAgICBmdW5jdGlv
biBrZXlzLgorCisgICAgICAgIEluIGFkZGl0aW9uIHRvIHRoYXQsIHRoaXMgY2hhbmdlIHNldCBj
b3JyZWN0IHNjYW4gY29kZSB0byBMUEFSQU0KKyAgICAgICAgZm9yIGFsbCBrZXkgZXZlbnRzLiBV
bmZvcnR1bmF0ZWx5LCB0aGVyZSBpcyBubyBBUEkgdG8gZ2V0IGEKKyAgICAgICAgY29ycmVjdCBl
eHRlbmRlZCBzY2FuIGNvZGUgZnJvbSBhIHZpcnR1YWwga2V5IGJlY2F1c2UKKyAgICAgICAgTWFw
VmlydHVhbEtleSBhbmQgTWFwVmlydHVhbEtleUV4IGRvZXNuJ3Qgd29yayBhcyBleHBlY3RlZC4K
KyAgICAgICAgbWFrZUtleURhdGFGb3JTY2FuQ29kZSB0dXJucyBvbiBLRl9FWFRFTkRFRCBmbGFn
IGZvciBzb21lIGtleXMKKyAgICAgICAgZXhwbGljaXRseSBmb3IgdGhlIHdvcmthcm91bmQuCisg
ICAgICAgIDxodHRwOi8vd3d3LnNldG5vZGUuY29tL2Jsb2cvbWFwdmlydHVhbGtleS1nZXRrZXlu
YW1ldGV4dC1hbmQtYS1zdG9yeS1vZi1ob3ctdG8vPgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvd2luL0V2ZW50U2VuZGVyLmNwcDoKKyAgICAgICAgKG1ha2VLZXlEYXRhRm9yU2NhbkNvZGUp
OgorICAgICAgICAoa2V5RG93bkNhbGxiYWNrKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVy
L3dpbi9FdmVudFNlbmRlclByb3h5V2luLmNwcDoKKyAgICAgICAgKFdUUjo6bWFrZUtleURhdGFG
b3JTY2FuQ29kZSk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OmtleURvd24pOgor
CiAyMDE5LTExLTEzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBQeXRob24gMzogQWRkIHN1cHBvcnQgaW4gd2Via2l0cHkuc3R5bGUuY2hlY2tlcnMKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9FdmVudFNlbmRlci5jcHAgYi9Ub29s
cy9EdW1wUmVuZGVyVHJlZS93aW4vRXZlbnRTZW5kZXIuY3BwCmluZGV4IDNhYmI5NWRjMDM5MjBm
NGU3ODI0ZjA2NzgwZTgzMWYwNWM1MDhkYTQuLjcyYjBkNTlkNjBhMWE2MzQ3YzdjZWM4MjUwN2Q5
YjY5ZDQ5MzliZWUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9FdmVudFNl
bmRlci5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0V2ZW50U2VuZGVyLmNwcApA
QCAtNDQxLDE0ICs0NDEsMzkgQEAgdm9pZCByZXBsYXlTYXZlZEV2ZW50cyhIUkVTVUxUKiBvbGVE
cmFnQW5kRHJvcFJldHVyblZhbHVlKQogICAgIHJlcGxheWluZ1NhdmVkRXZlbnRzID0gZmFsc2U7
CiB9CiAKLXN0YXRpYyBpbnQgbWFrZUtleURhdGFGb3JTY2FuQ29kZShpbnQgdmlydHVhbEtleUNv
ZGUpCitzdGF0aWMgdW5zaWduZWQgbWFrZUtleURhdGFGb3JTY2FuQ29kZShpbnQgdmlydHVhbEtl
eUNvZGUpCiB7CiAgICAgdW5zaWduZWQgc2NhbmNvZGUgPSBNYXBWaXJ0dWFsS2V5KHZpcnR1YWxL
ZXlDb2RlLCBNQVBWS19WS19UT19WU0MpOwogICAgIGludCBrZXlEYXRhID0gc2NhbmNvZGUgJiAw
eEZGOworCisgICAgYm9vbCBmb3JjZUV4dGVuZGVkID0gZmFsc2U7CisgICAgc3dpdGNoICh2aXJ0
dWFsS2V5Q29kZSkgeworICAgIGNhc2UgVktfTEVGVDoKKyAgICBjYXNlIFZLX1VQOgorICAgIGNh
c2UgVktfUklHSFQ6CisgICAgY2FzZSBWS19ET1dOOgorICAgIGNhc2UgVktfUFJJT1I6CisgICAg
Y2FzZSBWS19ORVhUOgorICAgIGNhc2UgVktfRU5EOgorICAgIGNhc2UgVktfSE9NRToKKyAgICBj
YXNlIFZLX0lOU0VSVDoKKyAgICBjYXNlIFZLX0RFTEVURToKKyAgICBjYXNlIFZLX0RJVklERToK
KyAgICBjYXNlIFZLX05VTUxPQ0s6CisgICAgY2FzZSBWS19SQ09OVFJPTDoKKyAgICBjYXNlIFZL
X1JNRU5VOgorICAgICAgICAvLyBTb21lIGtleXMgbmVlZCB0byB0dXJuIG9uIEtGX0VYVEVOREVE
IGV4cGxpY2l0bHkKKyAgICAgICAgZm9yY2VFeHRlbmRlZCA9IHRydWU7CisgICAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0KKwogICAgIHNjYW5jb2RlID0g
c2NhbmNvZGUgPj4gODsKLSAgICBpZiAoc2NhbmNvZGUgPT0gMHhlMCB8fCBzY2FuY29kZSA9PSAw
eGUxKQorICAgIGlmIChzY2FuY29kZSA9PSAweGUwIHx8IHNjYW5jb2RlID09IDB4ZTEgfHwgZm9y
Y2VFeHRlbmRlZCkKICAgICAgICAga2V5RGF0YSArPSBLRl9FWFRFTkRFRDsKLSAgICByZXR1cm4g
a2V5RGF0YSA8PCAxNjsKKyAgICB1bnNpZ25lZCByZXBlYXQgPSAxOworICAgIHJldHVybiBrZXlE
YXRhIDw8IDE2IHwgcmVwZWF0OwogfQogCiBzdGF0aWMgSlNWYWx1ZVJlZiBrZXlEb3duQ2FsbGJh
Y2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJl
ZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1
bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQpAQCAtNDY0LDIzICs0ODksMTggQEAgc3Rh
dGljIEpTVmFsdWVSZWYga2V5RG93bkNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
amVjdFJlZiBmdW5jdGlvbiwgSlMKICAgICAKICAgICBKU1N0cmluZ1JlZiBjaGFyYWN0ZXIgPSBK
U1ZhbHVlVG9TdHJpbmdDb3B5KGNvbnRleHQsIGFyZ3VtZW50c1swXSwgZXhjZXB0aW9uKTsKICAg
ICBBU1NFUlQoISpleGNlcHRpb24pOwotICAgIGludCB2aXJ0dWFsS2V5Q29kZTsKKyAgICBpbnQg
dmlydHVhbEtleUNvZGUgPSAwOwogICAgIGludCBjaGFyQ29kZSA9IDA7Ci0gICAgaW50IGtleURh
dGEgPSAxOwogICAgIGJvb2wgbmVlZHNTaGlmdEtleU1vZGlmaWVyID0gZmFsc2U7Ci0gICAgaWYg
KEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAibGVmdEFycm93IikpIHsK
KyAgICBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJsZWZ0QXJy
b3ciKSkKICAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19MRUZUOwotICAgICAgICBrZXlEYXRh
ICs9IEtGX0VYVEVOREVEIDw8IDE2OyAvLyBJbiB0aGlzIGNhc2UsIGV4dGVuZGVkIG1lYW5zICJu
b3Qga2V5cGFkIi4KLSAgICB9IGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
Y2hhcmFjdGVyLCAicmlnaHRBcnJvdyIpKSB7CisgICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJyaWdodEFycm93IikpCiAgICAgICAgIHZpcnR1YWxL
ZXlDb2RlID0gVktfUklHSFQ7Ci0gICAgICAgIGtleURhdGEgKz0gS0ZfRVhURU5ERUQgPDwgMTY7
Ci0gICAgfSBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3Rlciwg
InVwQXJyb3ciKSkgeworICAgIGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
Y2hhcmFjdGVyLCAidXBBcnJvdyIpKQogICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX1VQOwot
ICAgICAgICBrZXlEYXRhICs9IEtGX0VYVEVOREVEIDw8IDE2OwotICAgIH0gZWxzZSBpZiAoSlNT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJkb3duQXJyb3ciKSkgeworICAg
IGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAiZG93bkFy
cm93IikpCiAgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfRE9XTjsKLSAgICAgICAga2V5RGF0
YSArPSBLRl9FWFRFTkRFRCA8PCAxNjsKLSAgICB9IGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcoY2hhcmFjdGVyLCAicGFnZVVwIikpCisgICAgZWxzZSBpZiAoSlNTdHJpbmdJ
c0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJwYWdlVXAiKSkKICAgICAgICAgdmlydHVh
bEtleUNvZGUgPSBWS19QUklPUjsKICAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKGNoYXJhY3RlciwgInBhZ2VEb3duIikpCiAgICAgICAgIHZpcnR1YWxLZXlDb2RlID0g
VktfTkVYVDsKQEAgLTQ5NiwzMiArNTE2LDU0IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIGtleURvd25D
YWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYgZnVuY3Rpb24sIEpTCiAg
ICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfU05BUFNIT1Q7CiAgICAgZWxzZSBpZiAoSlNTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJtZW51IikpCiAgICAgICAgIHZpcnR1
YWxLZXlDb2RlID0gVktfQVBQUzsKLSAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKGNoYXJhY3RlciwgImxlZnRDb250cm9sIikpIHsKLSAgICAgICAgdmlydHVhbEtleUNv
ZGUgPSBWS19DT05UUk9MOwotICAgICAgICBrZXlEYXRhICs9IG1ha2VLZXlEYXRhRm9yU2NhbkNv
ZGUoVktfTENPTlRST0wpOwotICAgIH0gZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0
cmluZyhjaGFyYWN0ZXIsICJsZWZ0U2hpZnQiKSkgewotICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9
IFZLX1NISUZUOwotICAgICAgICBrZXlEYXRhICs9IG1ha2VLZXlEYXRhRm9yU2NhbkNvZGUoVktf
TFNISUZUKTsKLSAgICB9IGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hh
cmFjdGVyLCAibGVmdEFsdCIpKSB7Ci0gICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfTUVOVTsK
LSAgICAgICAga2V5RGF0YSArPSBtYWtlS2V5RGF0YUZvclNjYW5Db2RlKFZLX0xNRU5VKTsKLSAg
ICB9IGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoY2hhcmFjdGVyLCAicmln
aHRDb250cm9sIikpIHsKKyAgICBlbHNlIGlmIChKU1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5n
KGNoYXJhY3RlciwgImxlZnRDb250cm9sIikpCisgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktf
TENPTlRST0w7CisgICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFy
YWN0ZXIsICJsZWZ0U2hpZnQiKSkKKyAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19MU0hJRlQ7
CisgICAgZWxzZSBpZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJs
ZWZ0QWx0IikpCisgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfTE1FTlU7CisgICAgZWxzZSBp
ZiAoSlNTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJyaWdodENvbnRyb2wi
KSkKKyAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19SQ09OVFJPTDsKKyAgICBlbHNlIGlmIChK
U1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGNoYXJhY3RlciwgInJpZ2h0U2hpZnQiKSkKKyAg
ICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19SU0hJRlQ7CisgICAgZWxzZSBpZiAoSlNTdHJpbmdJ
c0VxdWFsVG9VVEY4Q1N0cmluZyhjaGFyYWN0ZXIsICJyaWdodEFsdCIpKQorICAgICAgICB2aXJ0
dWFsS2V5Q29kZSA9IFZLX1JNRU5VOworICAgIGVsc2UgeworICAgICAgICBzaXplX3QgY2hhcmFj
dGVyTGVuZ3RoID0gSlNTdHJpbmdHZXRMZW5ndGgoY2hhcmFjdGVyKTsKKyAgICAgICAgc3RhdGlj
IGNvbnN0IGNoYXIgc2hpZnRlZFVTQ2hhcmFjdGVyc1tdID0gIkFCQ0RFRkdISUpLTE1OT1BRUlNU
VVZXWFlafiFAIyQlXiYqKClfK3t9fDpcIjw+PyI7CisgICAgICAgIGNvbnN0IHdjaGFyX3QqIGNo
YXJhY3RlclB0ciA9IEpTU3RyaW5nR2V0Q2hhcmFjdGVyc1B0cihjaGFyYWN0ZXIpOworICAgICAg
ICBpZiAoY2hhcmFjdGVyTGVuZ3RoID09IDEpIHsKKyAgICAgICAgICAgIGNoYXJDb2RlID0gY2hh
cmFjdGVyUHRyWzBdOworICAgICAgICAgICAgdmlydHVhbEtleUNvZGUgPSBMT0JZVEUoVmtLZXlT
Y2FuKGNoYXJDb2RlKSk7CisgICAgICAgICAgICBpZiAoc3RyY2hyKHNoaWZ0ZWRVU0NoYXJhY3Rl
cnMsIGNoYXJDb2RlKSkKKyAgICAgICAgICAgICAgICBuZWVkc1NoaWZ0S2V5TW9kaWZpZXIgPSB0
cnVlOworICAgICAgICB9IGVsc2UgaWYgKGNoYXJhY3RlclB0clswXSA9PSAnRicpIHsKKyAgICAg
ICAgICAgIGlmIChjaGFyYWN0ZXJMZW5ndGggPT0gMiAmJiBpc0FTQ0lJRGlnaXQoY2hhcmFjdGVy
UHRyWzFdKSkKKyAgICAgICAgICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0YxICsgY2hhcmFj
dGVyUHRyWzFdIC0gJzEnOworICAgICAgICAgICAgZWxzZSBpZiAoY2hhcmFjdGVyTGVuZ3RoID09
IDMgJiYgY2hhcmFjdGVyUHRyWzFdID09ICcxJyAmJiBpc0FTQ0lJRGlnaXQoY2hhcmFjdGVyUHRy
WzJdKSkKKyAgICAgICAgICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0YxMCArIGNoYXJhY3Rl
clB0clsyXSAtICcwJzsKKyAgICAgICAgfQorICAgIH0KKyAgICBKU1N0cmluZ1JlbGVhc2UoY2hh
cmFjdGVyKTsKKworICAgIHVuc2lnbmVkIGtleURhdGEgPSBtYWtlS2V5RGF0YUZvclNjYW5Db2Rl
KHZpcnR1YWxLZXlDb2RlKTsKKworICAgIHN3aXRjaCAodmlydHVhbEtleUNvZGUpIHsKKyAgICBj
YXNlIFZLX0xDT05UUk9MOgorICAgIGNhc2UgVktfUkNPTlRST0w6CiAgICAgICAgIHZpcnR1YWxL
ZXlDb2RlID0gVktfQ09OVFJPTDsKLSAgICAgICAga2V5RGF0YSArPSBtYWtlS2V5RGF0YUZvclNj
YW5Db2RlKFZLX1JDT05UUk9MKTsKLSAgICB9IGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRG
OENTdHJpbmcoY2hhcmFjdGVyLCAicmlnaHRTaGlmdCIpKSB7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgVktfTFNISUZUOgorICAgIGNhc2UgVktfUlNISUZUOgogICAgICAgICB2aXJ0dWFsS2V5
Q29kZSA9IFZLX1NISUZUOwotICAgICAgICBrZXlEYXRhICs9IG1ha2VLZXlEYXRhRm9yU2NhbkNv
ZGUoVktfUlNISUZUKTsKLSAgICB9IGVsc2UgaWYgKEpTU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJp
bmcoY2hhcmFjdGVyLCAicmlnaHRBbHQiKSkgeworICAgICAgICBicmVhazsKKyAgICBjYXNlIFZL
X0xNRU5VOgorICAgIGNhc2UgVktfUk1FTlU6CiAgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktf
TUVOVTsKLSAgICAgICAga2V5RGF0YSArPSBtYWtlS2V5RGF0YUZvclNjYW5Db2RlKFZLX1JNRU5V
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBzdGF0aWMgY29uc3QgY2hhciBzaGlmdGVkVVNDaGFy
YWN0ZXJzW10gPSAiQUJDREVGR0hJSktMTU5PUFFSU1RVVldYWVp+IUAjJCVeJiooKV8re318Olwi
PD4/IjsKLSAgICAgICAgY2hhckNvZGUgPSBKU1N0cmluZ0dldENoYXJhY3RlcnNQdHIoY2hhcmFj
dGVyKVswXTsKLSAgICAgICAgdmlydHVhbEtleUNvZGUgPSBMT0JZVEUoVmtLZXlTY2FuKGNoYXJD
b2RlKSk7Ci0gICAgICAgIGlmIChzdHJjaHIoc2hpZnRlZFVTQ2hhcmFjdGVycywgY2hhckNvZGUp
KQotICAgICAgICAgICAgbmVlZHNTaGlmdEtleU1vZGlmaWVyID0gdHJ1ZTsKKyAgICAgICAgYnJl
YWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CiAgICAgfQotICAgIEpTU3RyaW5nUmVs
ZWFzZShjaGFyYWN0ZXIpOwogCiAgICAgQllURSBrZXlTdGF0ZVsyNTZdOwogICAgIGlmIChhcmd1
bWVudENvdW50ID4gMSB8fCBuZWVkc1NoaWZ0S2V5TW9kaWZpZXIpIHsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvd2luL0V2ZW50U2VuZGVyUHJveHlXaW4uY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci93aW4vRXZlbnRTZW5kZXJQcm94eVdpbi5jcHAKaW5kZXggMDg4OGQz
YTVmNGY5NTg0N2U0N2Y4Nzk3OGYzNGE0YjUyY2U3OWE2ZC4uMDZmMTkyNjFiMzg3Y2UwMmE0NGMz
MTliZDcwMTZlODI0ODQ3YWQyNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93
aW4vRXZlbnRTZW5kZXJQcm94eVdpbi5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93
aW4vRXZlbnRTZW5kZXJQcm94eVdpbi5jcHAKQEAgLTE1MiwxNCArMTUyLDM5IEBAIHZvaWQgRXZl
bnRTZW5kZXJQcm94eTo6bGVhcEZvcndhcmQoaW50IG1pbGxpc2Vjb25kcykKICAgICBtX3RpbWUg
Kz0gbWlsbGlzZWNvbmRzIC8gMTAwMC4wOwogfQogCi1zdGF0aWMgaW50IG1ha2VLZXlEYXRhRm9y
U2NhbkNvZGUoaW50IHZpcnR1YWxLZXlDb2RlKQorc3RhdGljIHVuc2lnbmVkIG1ha2VLZXlEYXRh
Rm9yU2NhbkNvZGUoaW50IHZpcnR1YWxLZXlDb2RlKQogewogICAgIHVuc2lnbmVkIHNjYW5jb2Rl
ID0gTWFwVmlydHVhbEtleSh2aXJ0dWFsS2V5Q29kZSwgTUFQVktfVktfVE9fVlNDKTsKICAgICBp
bnQga2V5RGF0YSA9IHNjYW5jb2RlICYgMHhGRjsKKworICAgIGJvb2wgZm9yY2VFeHRlbmRlZCA9
IGZhbHNlOworICAgIHN3aXRjaCAodmlydHVhbEtleUNvZGUpIHsKKyAgICBjYXNlIFZLX0xFRlQ6
CisgICAgY2FzZSBWS19VUDoKKyAgICBjYXNlIFZLX1JJR0hUOgorICAgIGNhc2UgVktfRE9XTjoK
KyAgICBjYXNlIFZLX1BSSU9SOgorICAgIGNhc2UgVktfTkVYVDoKKyAgICBjYXNlIFZLX0VORDoK
KyAgICBjYXNlIFZLX0hPTUU6CisgICAgY2FzZSBWS19JTlNFUlQ6CisgICAgY2FzZSBWS19ERUxF
VEU6CisgICAgY2FzZSBWS19ESVZJREU6CisgICAgY2FzZSBWS19OVU1MT0NLOgorICAgIGNhc2Ug
VktfUkNPTlRST0w6CisgICAgY2FzZSBWS19STUVOVToKKyAgICAgICAgLy8gU29tZSBrZXlzIG5l
ZWQgdG8gdHVybiBvbiBLRl9FWFRFTkRFRCBleHBsaWNpdGx5CisgICAgICAgIGZvcmNlRXh0ZW5k
ZWQgPSB0cnVlOworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsK
KyAgICB9CisKICAgICBzY2FuY29kZSA9IHNjYW5jb2RlID4+IDg7Ci0gICAgaWYgKHNjYW5jb2Rl
ID09IDB4ZTAgfHwgc2NhbmNvZGUgPT0gMHhlMSkKKyAgICBpZiAoc2NhbmNvZGUgPT0gMHhlMCB8
fCBzY2FuY29kZSA9PSAweGUxIHx8IGZvcmNlRXh0ZW5kZWQpCiAgICAgICAgIGtleURhdGEgKz0g
S0ZfRVhURU5ERUQ7Ci0gICAgcmV0dXJuIGtleURhdGEgPDwgMTY7CisgICAgdW5zaWduZWQgcmVw
ZWF0ID0gMTsKKyAgICByZXR1cm4ga2V5RGF0YSA8PCAxNiB8IHJlcGVhdDsKIH0KIAogc3RhdGlj
IHZvaWQgcHVtcE1lc3NhZ2VRdWV1ZSgpCkBAIC0xNzMsMjMgKzE5OCwxOSBAQCBzdGF0aWMgdm9p
ZCBwdW1wTWVzc2FnZVF1ZXVlKCkKIAogdm9pZCBFdmVudFNlbmRlclByb3h5OjprZXlEb3duKFdL
U3RyaW5nUmVmIGtleVJlZiwgV0tFdmVudE1vZGlmaWVycyB3a01vZGlmaWVycywgdW5zaWduZWQg
bG9jYXRpb24pCiB7Ci0gICAgaW50IHZpcnR1YWxLZXlDb2RlOworICAgIGludCB2aXJ0dWFsS2V5
Q29kZSA9IDA7CiAgICAgaW50IGNoYXJDb2RlID0gMDsKLSAgICBpbnQga2V5RGF0YSA9IDE7CisK
ICAgICBib29sIG5lZWRzU2hpZnRLZXlNb2RpZmllciA9IGZhbHNlOwotICAgIGlmIChXS1N0cmlu
Z0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgImxlZnRBcnJvdyIpKSB7CisgICAgaWYgKFdL
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5UmVmLCAibGVmdEFycm93IikpCiAgICAgICAg
IHZpcnR1YWxLZXlDb2RlID0gVktfTEVGVDsKLSAgICAgICAga2V5RGF0YSArPSBLRl9FWFRFTkRF
RCA8PCAxNjsgLy8gSW4gdGhpcyBjYXNlLCBleHRlbmRlZCBtZWFucyAibm90IGtleXBhZCIuCi0g
ICAgfSBlbHNlIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgInJpZ2h0
QXJyb3ciKSkgeworICAgIGVsc2UgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5
UmVmLCAicmlnaHRBcnJvdyIpKQogICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX1JJR0hUOwot
ICAgICAgICBrZXlEYXRhICs9IEtGX0VYVEVOREVEIDw8IDE2OwotICAgIH0gZWxzZSBpZiAoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJ1cEFycm93IikpIHsKKyAgICBlbHNl
IGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgInVwQXJyb3ciKSkKICAg
ICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19VUDsKLSAgICAgICAga2V5RGF0YSArPSBLRl9FWFRF
TkRFRCA8PCAxNjsKLSAgICB9IGVsc2UgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
a2V5UmVmLCAiZG93bkFycm93IikpIHsKKyAgICBlbHNlIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VU
RjhDU3RyaW5nKGtleVJlZiwgImRvd25BcnJvdyIpKQogICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9
IFZLX0RPV047Ci0gICAgICAgIGtleURhdGEgKz0gS0ZfRVhURU5ERUQgPDwgMTY7Ci0gICAgfSBl
bHNlIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgInBhZ2VVcCIpKQor
ICAgIGVsc2UgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5UmVmLCAicGFnZVVw
IikpCiAgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfUFJJT1I7CiAgICAgZWxzZSBpZiAoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJwYWdlRG93biIpKQogICAgICAgICB2
aXJ0dWFsS2V5Q29kZSA9IFZLX05FWFQ7CkBAIC0yMDUsMzIgKzIyNiw1MyBAQCB2b2lkIEV2ZW50
U2VuZGVyUHJveHk6OmtleURvd24oV0tTdHJpbmdSZWYga2V5UmVmLCBXS0V2ZW50TW9kaWZpZXJz
IHdrTW9kaWZpZXJzLAogICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX1NOQVBTSE9UOwogICAg
IGVsc2UgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5UmVmLCAibWVudSIpKQog
ICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0FQUFM7Ci0gICAgZWxzZSBpZiAoV0tTdHJpbmdJ
c0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJsZWZ0Q29udHJvbCIpKSB7Ci0gICAgICAgIHZp
cnR1YWxLZXlDb2RlID0gVktfQ09OVFJPTDsKLSAgICAgICAga2V5RGF0YSArPSBtYWtlS2V5RGF0
YUZvclNjYW5Db2RlKFZLX0xDT05UUk9MKTsKLSAgICB9IGVsc2UgaWYgKFdLU3RyaW5nSXNFcXVh
bFRvVVRGOENTdHJpbmcoa2V5UmVmLCAibGVmdFNoaWZ0IikpIHsKLSAgICAgICAgdmlydHVhbEtl
eUNvZGUgPSBWS19TSElGVDsKLSAgICAgICAga2V5RGF0YSArPSBtYWtlS2V5RGF0YUZvclNjYW5D
b2RlKFZLX0xTSElGVCk7Ci0gICAgfSBlbHNlIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKGtleVJlZiwgImxlZnRBbHQiKSkgewotICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX01F
TlU7Ci0gICAgICAgIGtleURhdGEgKz0gbWFrZUtleURhdGFGb3JTY2FuQ29kZShWS19MTUVOVSk7
Ci0gICAgfSBlbHNlIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgInJp
Z2h0Q29udHJvbCIpKSB7CisgICAgZWxzZSBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
ZyhrZXlSZWYsICJsZWZ0Q29udHJvbCIpKQorICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0xD
T05UUk9MOworICAgIGVsc2UgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5UmVm
LCAibGVmdFNoaWZ0IikpCisgICAgICAgIHZpcnR1YWxLZXlDb2RlID0gVktfTFNISUZUOworICAg
IGVsc2UgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5UmVmLCAibGVmdEFsdCIp
KQorICAgICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0xNRU5VOworICAgIGVsc2UgaWYgKFdLU3Ry
aW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5UmVmLCAicmlnaHRDb250cm9sIikpCisgICAgICAg
IHZpcnR1YWxLZXlDb2RlID0gVktfUkNPTlRST0w7CisgICAgZWxzZSBpZiAoV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJyaWdodFNoaWZ0IikpCisgICAgICAgIHZpcnR1YWxL
ZXlDb2RlID0gVktfUlNISUZUOworICAgIGVsc2UgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENT
dHJpbmcoa2V5UmVmLCAicmlnaHRBbHQiKSkKKyAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19S
TUVOVTsKKyAgICBlbHNlIHsKKyAgICAgICAgc2l6ZV90IGtleUxlbmd0aCA9IFdLU3RyaW5nR2V0
TGVuZ3RoKGtleVJlZik7CisgICAgICAgIHN0YXRpYyBjb25zdCBjaGFyIHNoaWZ0ZWRVU0NoYXJh
Y3RlcnNbXSA9ICJBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWn4hQCMkJV4mKigpXyt7fXw6XCI8
Pj8iOworICAgICAgICB3Y2hhcl90IGtleVN0clszXTsKKyAgICAgICAgV0tTdHJpbmdHZXRDaGFy
YWN0ZXJzKGtleVJlZiwga2V5U3RyLCBfY291bnRvZihrZXlTdHIpKTsKKyAgICAgICAgaWYgKGtl
eUxlbmd0aCA9PSAxKSB7CisgICAgICAgICAgICBjaGFyQ29kZSA9IGtleVN0clswXTsKKyAgICAg
ICAgICAgIHZpcnR1YWxLZXlDb2RlID0gTE9CWVRFKFZrS2V5U2NhbihjaGFyQ29kZSkpOworICAg
ICAgICAgICAgaWYgKHN0cmNocihzaGlmdGVkVVNDaGFyYWN0ZXJzLCBjaGFyQ29kZSkpCisgICAg
ICAgICAgICAgICAgbmVlZHNTaGlmdEtleU1vZGlmaWVyID0gdHJ1ZTsKKyAgICAgICAgfSBlbHNl
IGlmIChrZXlTdHJbMF0gPT0gJ0YnKSB7CisgICAgICAgICAgICBpZiAoa2V5TGVuZ3RoID09IDIg
JiYgaXNBU0NJSURpZ2l0KGtleVN0clsxXSkpCisgICAgICAgICAgICAgICAgdmlydHVhbEtleUNv
ZGUgPSBWS19GMSArIGtleVN0clsxXSAtICcxJzsKKyAgICAgICAgICAgIGVsc2UgaWYgKGtleUxl
bmd0aCA9PSAzICYmIGtleVN0clsxXSA9PSAnMScgJiYgaXNBU0NJSURpZ2l0KGtleVN0clsyXSkp
CisgICAgICAgICAgICAgICAgdmlydHVhbEtleUNvZGUgPSBWS19GMTAgKyBrZXlTdHJbMl0gLSAn
MCc7CisgICAgICAgIH0KKyAgICB9CisKKyAgICB1bnNpZ25lZCBrZXlEYXRhID0gbWFrZUtleURh
dGFGb3JTY2FuQ29kZSh2aXJ0dWFsS2V5Q29kZSk7CisKKyAgICBzd2l0Y2ggKHZpcnR1YWxLZXlD
b2RlKSB7CisgICAgY2FzZSBWS19MQ09OVFJPTDoKKyAgICBjYXNlIFZLX1JDT05UUk9MOgogICAg
ICAgICB2aXJ0dWFsS2V5Q29kZSA9IFZLX0NPTlRST0w7Ci0gICAgICAgIGtleURhdGEgKz0gbWFr
ZUtleURhdGFGb3JTY2FuQ29kZShWS19SQ09OVFJPTCk7Ci0gICAgfSBlbHNlIGlmIChXS1N0cmlu
Z0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgInJpZ2h0U2hpZnQiKSkgeworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIFZLX0xTSElGVDoKKyAgICBjYXNlIFZLX1JTSElGVDoKICAgICAgICAg
dmlydHVhbEtleUNvZGUgPSBWS19TSElGVDsKLSAgICAgICAga2V5RGF0YSArPSBtYWtlS2V5RGF0
YUZvclNjYW5Db2RlKFZLX1JTSElGVCk7Ci0gICAgfSBlbHNlIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKGtleVJlZiwgInJpZ2h0QWx0IikpIHsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBWS19MTUVOVToKKyAgICBjYXNlIFZLX1JNRU5VOgogICAgICAgICB2aXJ0dWFsS2V5Q29k
ZSA9IFZLX01FTlU7Ci0gICAgICAgIGtleURhdGEgKz0gbWFrZUtleURhdGFGb3JTY2FuQ29kZShW
S19STUVOVSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgc3RhdGljIGNvbnN0IGNoYXIgc2hpZnRl
ZFVTQ2hhcmFjdGVyc1tdID0gIkFCQ0RFRkdISUpLTE1OT1BRUlNUVVZXWFlafiFAIyQlXiYqKClf
K3t9fDpcIjw+PyI7Ci0gICAgICAgIHdjaGFyX3QgYnVmZlsxXTsKLSAgICAgICAgV0tTdHJpbmdH
ZXRDaGFyYWN0ZXJzKGtleVJlZiwgYnVmZiwgX2NvdW50b2YoYnVmZikpOwotICAgICAgICBjaGFy
Q29kZSA9IGJ1ZmZbMF07Ci0gICAgICAgIHZpcnR1YWxLZXlDb2RlID0gTE9CWVRFKFZrS2V5U2Nh
bihjaGFyQ29kZSkpOwotICAgICAgICBpZiAoc3RyY2hyKHNoaWZ0ZWRVU0NoYXJhY3RlcnMsIGNo
YXJDb2RlKSkKLSAgICAgICAgICAgIG5lZWRzU2hpZnRLZXlNb2RpZmllciA9IHRydWU7CisgICAg
ICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOwogICAgIH0KIAogICAgIGJv
b2wgaXNTeXNLZXkgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxMmRhOTcwZjg4MDJmNTUxNzJhOWZhY2Y5MzYy
NjBlNGI2MmE5MTExLi4yYTMyMTA0ZjgwZWZhMGEyNzIyOWZlMjI3YzMxOWU0YzBkYzBjMDA3IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTktMTEtMTMgIEZ1amlpIEhpcm9ub3JpICA8SGlyb25v
cmkuRnVqaWlAc29ueS5jb20+CisKKyAgICAgICAgW1dpbl1bRHVtcFJlbmRlclRyZWVdW1dlYktp
dFRlc3RSdW5uZXJdIGV2ZW50U2VuZGVyLmtleURvd24gc2hvdWxkIHN1cHBvcnQgZnVuY3Rpb24g
a2V5cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
MTQ2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgUm9zcyBLaXJzbGluZy4KKworICAgICAgICAqIHBs
YXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dpbmNhaXJv
L1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgIFVuc2tpcHBlZCBmYXN0L2V2ZW50cy9rZXlkb3du
LWZ1bmN0aW9uLWtleXMuaHRtbCBhbmQgZmFzdC9ldmVudHMva2V5ZG93bi1sZWZ0cmlnaHQta2V5
cy5odG1sLgorCiAyMDE5LTExLTEzICB5b3Vlbm4gZmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4K
IAogICAgICAgICBMYXlvdXQgVGVzdHMgaW4gaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJzb2NrZXRzLyBhcmUgZmxha2V5IGZhaWx1cmVzIGFmdGVyIHIyNDY0MDYKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNTIyMjg3ODhkNjRhZmMyYzg5
NmEzNGY0YWE0ZDYyMmEyNWQ5ODFmNi4uMDhlMjk3YTEwODMwNzY0ZDg2NTY4MWQ3MjI4YTE2M2M3
ZTk4ZDc2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTIzMyw5ICsyMzMsNiBAQCBodHRwL3Rlc3RzL2xvY2FsL2Jsb2Ivc2VuZC1zbGljZWQtZGF0YS1i
bG9iLmh0bWwgWyBTa2lwIF0KICMgVE9ETyBCbG9kQnVpbGRlciBpcyBub3QgZW5hYmxlZAogaHR0
cC90ZXN0cy9sb2NhbC9ibG9iL3NlbmQtZGF0YS1ibG9iLmh0bWwgWyBTa2lwIF0KIAotIyBUT0RP
IEEgdGVzdCB0aGF0IGZhaWxlZCBiZWNhdXNlIGV2ZW50U2VuZGVyIGNhbm5vdCBzZW5kIGZ1bmN0
aW9uLWtleSBldmVudHMuCi1mYXN0L2V2ZW50cy9rZXlkb3duLWZ1bmN0aW9uLWtleXMuaHRtbCBb
IFNraXAgXQotCiAjIFRPRE8gTm8gc3VwcG9ydCBmb3IgV2ViQXJjaGl2ZXMgaW4gV2ViS2l0V2lu
IDxyZGFyOi8vcHJvYmxlbS82NDM2MDIwPgogd2ViYXJjaGl2ZSBbIFNraXAgXQogc3ZnL3dlYmFy
Y2hpdmUgWyBTa2lwIF0KQEAgLTI3ODYsOCArMjc4Myw2IEBAIGZhc3QvZHluYW1pYy93aW5kb3ct
cmVzaXplLXNjcm9sbGJhcnMtdGVzdC5odG1sIFsgRmFpbHVyZSBUaW1lb3V0IF0KIGZhc3QvZW5j
b2RpbmcvcGFyc2VyLXRlc3RzLTExMC5odG1sIFsgUGFzcyBUaW1lb3V0IF0KIAogd2Via2l0Lm9y
Zy9iLzEwMzA0MyBmYXN0L2V2ZW50cy9mcmFtZS1zY3JvbGwtZmFrZS1tb3VzZS1tb3ZlLmh0bWwg
WyBTa2lwIF0KLXdlYmtpdC5vcmcvYi85NzAyNiBbIFJlbGVhc2UgXSBmYXN0L2V2ZW50cy9rZXlk
b3duLWxlZnRyaWdodC1rZXlzLmh0bWwgWyBGYWlsdXJlIF0KLXdlYmtpdC5vcmcvYi85NzAyNiBb
IERlYnVnIF0gZmFzdC9ldmVudHMva2V5ZG93bi1sZWZ0cmlnaHQta2V5cy5odG1sIFsgU2tpcCBd
ICMgRGVidWcgQXNzZXJ0aW9uCiAjIGZhc3QvZXZlbnRzL3BhZ2UtdmlzaWJpbGl0eSB0ZXN0cyB0
aW1lb3V0Lgogd2Via2l0Lm9yZy9iLzEyMTUwOSBmYXN0L2V2ZW50cy93aGVlbGV2ZW50LW1vdXNl
d2hlZWwtaW50ZXJhY3Rpb24uaHRtbCBbIFNraXAgXSAjICBbIFRpbWVvdXQgXQogZmFzdC9ldmVu
dHMvc3BlY2lhbC1rZXktZXZlbnRzLWluLWlucHV0LXRleHQuaHRtbCBbIEZhaWx1cmUgXQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbmNhaXJvL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggN2I4
YjRkYjY2YWRiYjI3MWY0NzYzMzAyZjRlOGE3OTM5ZDg2MWMzZS4uOTlhZjI3MDBjYzljZDkzOTZj
YTViYzgyNzEwNDlhZTkzYjE0YjE4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luY2Fpcm8vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW5j
YWlyby9UZXN0RXhwZWN0YXRpb25zCkBAIC0xNjc1LDggKzE2NzUsNiBAQCBmYXN0L2V2ZW50cy9r
ZXktZXZlbnRzLWluLWlucHV0LWJ1dHRvbi5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L2V2ZW50cy9r
ZXktZXZlbnRzLWluLWlucHV0LXRleHQuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9ldmVudHMva2V5
Ym9hcmRldmVudC1jb2RlLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvZXZlbnRzL2tleWJvYXJkZXZl
bnQta2V5Lmh0bWwgWyBGYWlsdXJlIF0KLWZhc3QvZXZlbnRzL2tleWRvd24tZnVuY3Rpb24ta2V5
cy5odG1sIFsgRmFpbHVyZSBdCi1mYXN0L2V2ZW50cy9rZXlkb3duLWxlZnRyaWdodC1rZXlzLmh0
bWwgWyBGYWlsdXJlIF0KIGZhc3QvZXZlbnRzL2tleWRvd24tbnVtcGFkLWtleXMuaHRtbCBbIEZh
aWx1cmUgXQogZmFzdC9ldmVudHMvbW91c2UtY3Vyc29yLWltYWdlLXNldC5odG1sIFsgRmFpbHVy
ZSBdCiBmYXN0L2V2ZW50cy9tb3VzZW92ZXItYnV0dG9uLmh0bWwgWyBGYWlsdXJlIF0K
</data>

          </attachment>
      

    </bug>

</bugzilla>