<?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>242960</bug_id>
          
          <creation_ts>2022-07-20 14:12:53 -0700</creation_ts>
          <short_desc>[WebAuthn] Revert &quot;Enums should be DOMStrings&quot;</short_desc>
          <delta_ts>2022-08-29 13:33:17 -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>WebKit Misc.</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>
          <dependson>241517</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="pascoe@apple.com">pascoe</reporter>
          <assigned_to name="pascoe@apple.com">pascoe</assigned_to>
          <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1885440</commentid>
    <comment_count>0</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-07-20 14:12:53 -0700</bug_when>
    <thetext>This caused some issues collecting transports, reverting on main.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1885446</commentid>
    <comment_count>1</comment_count>
      <attachid>461052</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-07-20 14:33:25 -0700</bug_when>
    <thetext>Created attachment 461052
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1885470</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-07-20 16:01:19 -0700</bug_when>
    <thetext>Committed 252662@main (1420da2a9e61): &lt;https://commits.webkit.org/252662@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 461052.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1885471</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-07-20 16:02:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/97345083&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>461052</attachid>
            <date>2022-07-20 14:33:25 -0700</date>
            <delta_ts>2022-07-20 16:01:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-242960-20220720143324.patch</filename>
            <type>text/plain</type>
            <size>80483</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">RnJvbSA1NTA3MmYyOWEwOTcyNGQzZjRjY2M4Nzg3MGJmNjQ1ZDA4Y2VkZWIwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBKIFBhc2NvZSA8al9wYXNjb2VAYXBwbGUuY29tPgpEYXRlOiBX
ZWQsIDIwIEp1bCAyMDIyIDE0OjI1OjUwIC0wNzAwClN1YmplY3Q6IFtQQVRDSF0gW1dlYkF1dGhu
XSBSZXZlcnQgIkVudW1zIHNob3VsZCBiZSBET01TdHJpbmdzIgogaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI0Mjk2MAoKVW5yZXZpZXdlZCByZXZlcnQKClRoaXMgY2F1
c2VkIHNvbWUgaXNzdWVzIGNvbGxlY3RpbmcgdHJhbnNwb3J0cywgcmV2ZXJ0aW5nIG9uIG1haW4u
CgpSZXZlcnRlZCBjaGFuZ2VzZXQ6Cgpbd2ViYXV0aG5dIEVudW1zIHNob3VsZCBiZSBET01TdHJp
bmdzCmh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNDE1MTcKaHR0cHM6
Ly9jb21taXRzLndlYmtpdC5vcmcvMjUyMjk4QG1haW4KLS0tCiAuLi4vQXR0ZXN0YXRpb25Db252
ZXlhbmNlUHJlZmVyZW5jZS5jcHAgICAgICAgfCA1MSAtLS0tLS0tLS0tLS0tCiAuLi4vQXR0ZXN0
YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5oICAgICAgICAgfCAgNSAtLQogLi4uL3dlYmF1dGhu
L0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQuY3BwICAgICAgIHwgNTkgLS0tLS0tLS0tLS0tLS0tCiAu
Li4vTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yVHJhbnNwb3J0LmggfCAgNSAtLQogLi4u
L1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuY3BwICAgIHwgNzUgLS0tLS0tLS0t
LS0tLS0tLS0tLQogLi4uL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaCAgICAg
IHwgNDMgKysrKystLS0tLS0KIC4uLi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
LmlkbCAgICB8ICA4ICstCiAuLi4vd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0
b3IuaCAgfCAgMiArLQogLi4uL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmlkbCAgICAg
ICAgIHwgIDIgKy0KIC4uLi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuY3BwICAg
ICB8IDU1IC0tLS0tLS0tLS0tLS0tCiAuLi4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zLmggICAgICAgfCAyMiArKy0tLS0KIC4uLi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9w
dGlvbnMuaWRsICAgICB8ICAyICstCiAuLi4vd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGls
cy5jcHAgICAgICAgfCAyNCAtLS0tLS0KIC4uLi9Nb2R1bGVzL3dlYmF1dGhuL1dlYkF1dGhlbnRp
Y2F0aW9uVXRpbHMuaCB8IDEzIC0tLS0KIC4uLi93ZWJhdXRobi9maWRvL0RldmljZVJlcXVlc3RD
b252ZXJ0ZXIuY3BwICB8IDEwICstLQogLi4uL3dlYmF1dGhuL2ZpZG8vVTJmQ29tbWFuZENvbnN0
cnVjdG9yLmNwcCAgIHwgIDQgKy0KIFNvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0ICAgICAgICAg
ICAgICAgICAgICB8ICAzIC0KIC4uLi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiB8ICA4IC0tCiAuLi4vQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwu
bW0gICAgfCAyMSArKystLS0KIC4uLi9BdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgICAgICAgICAg
ICAgICAgICB8IDE1ICsrLS0KIC4uLi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0gICAgICAg
ICAgICAgICB8IDExICsrLQogLi4uL0NvY29hL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclBy
b3h5Lm1tIHwgMTkgKystLS0KIC4uLi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmNwcCAg
ICAgICAgICB8ICA0ICstCiAuLi4vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAgICAgICAgICAg
ICAgICAgfCAxMCArLS0KIC4uLi9maWRvL1UyZkF1dGhlbnRpY2F0b3IuY3BwICAgICAgICAgICAg
ICAgICB8ICAyICstCiAuLi4vVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwICAgICAg
ICAgfCAzNiArKysrLS0tLS0KIC4uLi9XZWJDb3JlL1UyZkNvbW1hbmRDb25zdHJ1Y3RvclRlc3Qu
Y3BwICAgICB8ICA0ICstCiAuLi4vV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bC5tbSAgfCA0NSArKysrKystLS0tLQogMjggZmlsZXMgY2hhbmdlZCwgMTE5IGluc2VydGlvbnMo
KyksIDQzOSBkZWxldGlvbnMoLSkKIGRlbGV0ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL0F0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UuY3BwCiBkZWxl
dGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNh
dG9yVHJhbnNwb3J0LmNwcAogZGVsZXRlIG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5jcHAKIGRlbGV0
ZSBtb2RlIDEwMDY0NCBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5jcHAKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL0F0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJl
bmNlLmNwcApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjE4YjA2NWE0YjJlLi4wMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdHRlc3RhdGlv
bkNvbnZleWFuY2VQcmVmZXJlbmNlLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDUxICswLDAgQEAK
LS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiQXR0ZXN0YXRpb25D
b252ZXlhbmNlUHJlZmVyZW5jZS5oIgotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLQotI2luY2x1
ZGUgIkpTQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5oIgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci0KLUF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UgdG9BdHRlc3RhdGlvbkNv
bnZleWFuY2VQcmVmZXJlbmNlKFN0cmluZyYgcHJlZmVyZW5jZSkKLXsKLSAgICBpZiAocHJlZmVy
ZW5jZSA9PSAiZGlyZWN0Il9zKQotICAgICAgICByZXR1cm4gQXR0ZXN0YXRpb25Db252ZXlhbmNl
UHJlZmVyZW5jZTo6RGlyZWN0OwotICAgIGlmIChwcmVmZXJlbmNlID09ICJpbmRpcmVjdCJfcykK
LSAgICAgICAgcmV0dXJuIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6OkluZGlyZWN0
OwotICAgIHJldHVybiBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lOwotfQot
Ci1TdHJpbmcgdG9TdHJpbmcoQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZSBwcmVmZXJl
bmNlKQotewotICAgIHJldHVybiBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhwcmVmZXJlbmNl
KTsKLX0KLQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9BdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlLmgKaW5k
ZXggNTY3N2FlNGU4NjQzLi4wMTllODUzNWZlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJl
ZmVyZW5jZS5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaWYgRU5BQkxFKFdFQl9BVVRITikKIAogI2lu
Y2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtMzgsMTAgKzM3LDYgQEAgZW51bSBjbGFzcyBBdHRl
c3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlIHsKICAgICBEaXJlY3QKIH07CiAKLVdFQkNPUkVf
RVhQT1JUIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UgdG9BdHRlc3RhdGlvbkNvbnZl
eWFuY2VQcmVmZXJlbmNlKFN0cmluZyYgcHJlZmVyZW5jZSk7Ci0KLVdFQkNPUkVfRVhQT1JUIFN0
cmluZyB0b1N0cmluZyhBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlKTsKLQogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQogCiBuYW1lc3BhY2UgV1RGIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvclRyYW5zcG9ydC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQuY3BwCmRl
bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Njk3NWFmODQ5OTYuLjAwMDAwMDAwMDAwMAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JUcmFuc3Bv
cnQuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNTkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJBdXRoZW50aWNhdG9yVHJhbnNwb3J0LmgiCi0KLSNp
ZiBFTkFCTEUoV0VCX0FVVEhOKQotCi0jaW5jbHVkZSAiSlNBdXRoZW50aWNhdG9yVHJhbnNwb3J0
LmgiCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RkOjpvcHRpb25hbDxBdXRoZW50aWNhdG9y
VHJhbnNwb3J0PiB0b0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQoY29uc3QgU3RyaW5nJiB0cmFuc3Bv
cnQpCi17Ci0gICAgaWYgKHRyYW5zcG9ydCA9PSAidXNiIl9zKQotICAgICAgICByZXR1cm4gQXV0
aGVudGljYXRvclRyYW5zcG9ydDo6VXNiOwotICAgIGlmICh0cmFuc3BvcnQgPT0gIm5mYyJfcykK
LSAgICAgICAgcmV0dXJuIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6Ok5mYzsKLSAgICBpZiAodHJh
bnNwb3J0ID09ICJibGUiX3MpCi0gICAgICAgIHJldHVybiBBdXRoZW50aWNhdG9yVHJhbnNwb3J0
OjpCbGU7Ci0gICAgaWYgKHRyYW5zcG9ydCA9PSAiaW50ZXJuYWwiX3MpCi0gICAgICAgIHJldHVy
biBBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbDsKLSAgICBpZiAodHJhbnNwb3J0ID09
ICJjYWJsZSJfcykKLSAgICAgICAgcmV0dXJuIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OkNhYmxl
OwotICAgIGlmICh0cmFuc3BvcnQgPT0gImh5YnJpZCJfcykKLSAgICAgICAgcmV0dXJuIEF1dGhl
bnRpY2F0b3JUcmFuc3BvcnQ6Okh5YnJpZDsKLSAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotfQot
Ci1TdHJpbmcgdG9TdHJpbmcoQXV0aGVudGljYXRvclRyYW5zcG9ydCB0cmFuc3BvcnQpCi17Ci0g
ICAgcmV0dXJuIGNvbnZlcnRFbnVtZXJhdGlvblRvU3RyaW5nKHRyYW5zcG9ydCk7Ci19Ci0KLX0K
LQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1
dGhlbnRpY2F0b3JUcmFuc3BvcnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
QXV0aGVudGljYXRvclRyYW5zcG9ydC5oCmluZGV4IDY3MjIzZmVlMjM3MC4uYmQ3MmEwMmRmMDA2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0
b3JUcmFuc3BvcnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhl
bnRpY2F0b3JUcmFuc3BvcnQuaApAQCAtMjcsNyArMjcsNiBAQAogCiAjaWYgRU5BQkxFKFdFQl9B
VVRITikKIAotI2luY2x1ZGUgPG9wdGlvbmFsPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQyLDEwICs0MSw2IEBAIGVudW0gY2xhc3MgQXV0aGVu
dGljYXRvclRyYW5zcG9ydCB7CiAgICAgU21hcnRDYXJkCiB9OwogCi1XRUJDT1JFX0VYUE9SVCBz
dGQ6Om9wdGlvbmFsPEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ+IHRvQXV0aGVudGljYXRvclRyYW5z
cG9ydChjb25zdCBTdHJpbmcmIHRyYW5zcG9ydCk7Ci0KLVdFQkNPUkVfRVhQT1JUIFN0cmluZyB0
b1N0cmluZyhBdXRoZW50aWNhdG9yVHJhbnNwb3J0KTsKLQogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiBuYW1lc3BhY2UgV1RGIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnMuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZDQ2MTA2OTM1NWUuLjAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuY3BwCisrKyAvZGV2L251bGwKQEAgLTEsNzUgKzAsMCBA
QAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAyMiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgiCi0KLSNpbmNsdWRlICJBdXRoZW50aWNhdG9yQXR0
YWNobWVudC5oIgotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLQotbmFtZXNwYWNlIFdlYkNvcmUg
ewotCi1BdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlIFB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnM6OmF0dGVzdGF0aW9uKCkgY29uc3QKLXsKLSAgICBpZiAoYXR0ZXN0YXRp
b25TdHJpbmcgPT0gImluZGlyZWN0Il9zKQotICAgICAgICByZXR1cm4gQXR0ZXN0YXRpb25Db252
ZXlhbmNlUHJlZmVyZW5jZTo6SW5kaXJlY3Q7Ci0gICAgaWYgKGF0dGVzdGF0aW9uU3RyaW5nID09
ICJkaXJlY3QiX3MpCi0gICAgICAgIHJldHVybiBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJl
bmNlOjpEaXJlY3Q7Ci0gICAgcmV0dXJuIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6
Ok5vbmU7Ci19Ci0KLXN0ZDo6b3B0aW9uYWw8UmVzaWRlbnRLZXlSZXF1aXJlbWVudD4gUHVibGlj
S2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRl
cmlhOjpyZXNpZGVudEtleSgpIGNvbnN0Ci17Ci0gICAgaWYgKHJlc2lkZW50S2V5U3RyaW5nID09
ICJyZXF1aXJlZCJfcykKLSAgICAgICAgcmV0dXJuIFJlc2lkZW50S2V5UmVxdWlyZW1lbnQ6OlJl
cXVpcmVkOwotICAgIGlmIChyZXNpZGVudEtleVN0cmluZyA9PSAiZGlzY291cmFnZWQiX3MpCi0g
ICAgICAgIHJldHVybiBSZXNpZGVudEtleVJlcXVpcmVtZW50OjpEaXNjb3VyYWdlZDsKLSAgICBp
ZiAocmVzaWRlbnRLZXlTdHJpbmcgPT0gInByZWZlcnJlZCJfcykKLSAgICAgICAgcmV0dXJuIFJl
c2lkZW50S2V5UmVxdWlyZW1lbnQ6OlByZWZlcnJlZDsKLSAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwotfQotCi1Vc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhOjp1c2VyVmVyaWZp
Y2F0aW9uKCkgY29uc3QKLXsKLSAgICBpZiAodXNlclZlcmlmaWNhdGlvblN0cmluZyA9PSAicmVx
dWlyZWQiX3MpCi0gICAgICAgIHJldHVybiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlJl
cXVpcmVkOwotICAgIGlmICh1c2VyVmVyaWZpY2F0aW9uU3RyaW5nID09ICJkaXNjb3VyYWdlZCJf
cykKLSAgICAgICAgcmV0dXJuIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6RGlzY291cmFn
ZWQ7Ci0gICAgcmV0dXJuIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkOwot
fQotCi1zdGQ6Om9wdGlvbmFsPEF1dGhlbnRpY2F0b3JBdHRhY2htZW50PiBQdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6OmF1
dGhlbnRpY2F0b3JBdHRhY2htZW50KCkgY29uc3QKLXsKLSAgICBpZiAoYXV0aGVudGljYXRvckF0
dGFjaG1lbnRTdHJpbmcgPT0gInBsYXRmb3JtIl9zKQotICAgICAgICByZXR1cm4gQXV0aGVudGlj
YXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtOwotICAgIGlmIChhdXRoZW50aWNhdG9yQXR0YWNobWVu
dFN0cmluZyA9PSAiY3Jvc3MtcGxhdGZvcm0iX3MpCi0gICAgICAgIHJldHVybiBBdXRoZW50aWNh
dG9yQXR0YWNobWVudDo6Q3Jvc3NQbGF0Zm9ybTsKLSAgICByZXR1cm4gc3RkOjpudWxsb3B0Owot
fQotCi19Ci0KLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaApp
bmRleCA0NTU5NjVhNjJhOWMuLjkyMTFmMzlmOWJmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zLmgKQEAgLTY1LDE1ICs2NSwxMSBAQCBzdHJ1Y3QgUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9ucyB7CiAgICAgfTsKIAogICAgIHN0cnVjdCBBdXRoZW50aWNh
dG9yU2VsZWN0aW9uQ3JpdGVyaWEgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gYXV0
aGVudGljYXRvckF0dGFjaG1lbnRTdHJpbmc7Ci0gICAgICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6
b3B0aW9uYWw8QXV0aGVudGljYXRvckF0dGFjaG1lbnQ+IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50
KCkgY29uc3Q7Ci0KKyAgICAgICAgc3RkOjpvcHRpb25hbDxBdXRoZW50aWNhdG9yQXR0YWNobWVu
dD4gYXV0aGVudGljYXRvckF0dGFjaG1lbnQ7CiAgICAgICAgIC8vIHJlc2lkZW50S2V5IHJlcGxh
Y2VzIHJlcXVpcmVSZXNpZGVudEtleSwgc2VlOiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0
aG4tMi8jZGljdGlvbmFyeS1hdXRoZW50aWNhdG9yU2VsZWN0aW9uCi0gICAgICAgIHN0ZDo6b3B0
aW9uYWw8U3RyaW5nPiByZXNpZGVudEtleVN0cmluZzsKLSAgICAgICAgV0VCQ09SRV9FWFBPUlQg
c3RkOjpvcHRpb25hbDxSZXNpZGVudEtleVJlcXVpcmVtZW50PiByZXNpZGVudEtleSgpIGNvbnN0
OworICAgICAgICBzdGQ6Om9wdGlvbmFsPFJlc2lkZW50S2V5UmVxdWlyZW1lbnQ+IHJlc2lkZW50
S2V5OwogICAgICAgICBib29sIHJlcXVpcmVSZXNpZGVudEtleSB7IGZhbHNlIH07Ci0gICAgICAg
IFN0cmluZyB1c2VyVmVyaWZpY2F0aW9uU3RyaW5nIHsgInByZWZlcnJlZCJfcyB9OwotICAgICAg
ICBXRUJDT1JFX0VYUE9SVCBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgdXNlclZlcmlmaWNh
dGlvbigpIGNvbnN0OworICAgICAgICBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgdXNlclZl
cmlmaWNhdGlvbiB7IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkIH07CiAK
ICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNv
bnN0OwogICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25h
bDxBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE+IGRlY29kZShEZWNvZGVyJik7CkBAIC04
OCw4ICs4NCw3IEBAIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIHsK
ICAgICBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiB0aW1lb3V0OwogICAgIFZlY3RvcjxQdWJsaWNL
ZXlDcmVkZW50aWFsRGVzY3JpcHRvcj4gZXhjbHVkZUNyZWRlbnRpYWxzOwogICAgIHN0ZDo6b3B0
aW9uYWw8QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhPiBhdXRoZW50aWNhdG9yU2VsZWN0
aW9uOwotICAgIFN0cmluZyBhdHRlc3RhdGlvblN0cmluZzsKLSAgICBXRUJDT1JFX0VYUE9SVCBB
dHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlIGF0dGVzdGF0aW9uKCkgY29uc3Q7CisgICAg
QXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZSBhdHRlc3RhdGlvbjsKICAgICBtdXRhYmxl
IHN0ZDo6b3B0aW9uYWw8QXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzPiBleHRl
bnNpb25zOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2Rl
ciYpIGNvbnN0OwpAQCAtMTE4LDcgKzExMyw3IEBAIHN0ZDo6b3B0aW9uYWw8UHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9uczo6UGFyYW1ldGVycz4gUHVibGljS2V5Q3JlZGVudGlhCiB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWE6OmVuY29kZShFbmNvZGVyJiBl
bmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgYXV0aGVudGljYXRvckF0dGFjaG1lbnRT
dHJpbmcgPDwgcmVxdWlyZVJlc2lkZW50S2V5IDw8IHVzZXJWZXJpZmljYXRpb25TdHJpbmcgPDwg
cmVzaWRlbnRLZXlTdHJpbmc7CisgICAgZW5jb2RlciA8PCBhdXRoZW50aWNhdG9yQXR0YWNobWVu
dCA8PCByZXF1aXJlUmVzaWRlbnRLZXkgPDwgdXNlclZlcmlmaWNhdGlvbiA8PCByZXNpZGVudEtl
eTsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAgLTEyNiwxMSArMTIxLDExIEBAIHN0
ZDo6b3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGlj
YXRvclNlbGVjdGlvbkNyaXRlcmlhCiB7CiAgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHJlc3VsdDsKIAotICAgIHN0
ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxTdHJpbmc+PiBhdXRoZW50aWNhdG9yQXR0YWNobWVu
dFN0cmluZzsKLSAgICBkZWNvZGVyID4+IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50U3RyaW5nOwot
ICAgIGlmICghYXV0aGVudGljYXRvckF0dGFjaG1lbnRTdHJpbmcpCisgICAgc3RkOjpvcHRpb25h
bDxzdGQ6Om9wdGlvbmFsPEF1dGhlbnRpY2F0b3JBdHRhY2htZW50Pj4gYXV0aGVudGljYXRvckF0
dGFjaG1lbnQ7CisgICAgZGVjb2RlciA+PiBhdXRoZW50aWNhdG9yQXR0YWNobWVudDsKKyAgICBp
ZiAoIWF1dGhlbnRpY2F0b3JBdHRhY2htZW50KQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwotICAgIHJlc3VsdC5hdXRoZW50aWNhdG9yQXR0YWNobWVudFN0cmluZyA9IFdURk1vdmUoKmF1
dGhlbnRpY2F0b3JBdHRhY2htZW50U3RyaW5nKTsKKyAgICByZXN1bHQuYXV0aGVudGljYXRvckF0
dGFjaG1lbnQgPSBXVEZNb3ZlKCphdXRoZW50aWNhdG9yQXR0YWNobWVudCk7CiAKICAgICBzdGQ6
Om9wdGlvbmFsPGJvb2w+IHJlcXVpcmVSZXNpZGVudEtleTsKICAgICBkZWNvZGVyID4+IHJlcXVp
cmVSZXNpZGVudEtleTsKQEAgLTEzOCwxNCArMTMzLDE0IEBAIHN0ZDo6b3B0aW9uYWw8UHVibGlj
S2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRl
cmlhCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgcmVzdWx0LnJlcXVpcmVSZXNp
ZGVudEtleSA9ICpyZXF1aXJlUmVzaWRlbnRLZXk7CiAKLSAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC51c2VyVmVyaWZpY2F0aW9uU3RyaW5nKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
KHJlc3VsdC51c2VyVmVyaWZpY2F0aW9uKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
IAotICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRpb25hbDxTdHJpbmc+PiByZXNpZGVudEtleVN0
cmluZzsKLSAgICBkZWNvZGVyID4+IHJlc2lkZW50S2V5U3RyaW5nOwotICAgIGlmICghcmVzaWRl
bnRLZXlTdHJpbmcpCisgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPFJlc2lkZW50S2V5
UmVxdWlyZW1lbnQ+PiByZXNpZGVudEtleTsKKyAgICBkZWNvZGVyID4+IHJlc2lkZW50S2V5Owor
ICAgIGlmICghcmVzaWRlbnRLZXkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0gICAg
cmVzdWx0LnJlc2lkZW50S2V5U3RyaW5nID0gKnJlc2lkZW50S2V5U3RyaW5nOworICAgIHJlc3Vs
dC5yZXNpZGVudEtleSA9ICpyZXNpZGVudEtleTsKIAogICAgIHJldHVybiByZXN1bHQ7CiB9CkBA
IC0xNTYsNyArMTUxLDcgQEAgdm9pZCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
OjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKICAgICBlbmNvZGVyIDw8IHJwLmlk
IDw8IHJwLm5hbWUgPDwgcnAuaWNvbjsKICAgICBlbmNvZGVyIDw8IHVzZXIuaWQ7Ci0gICAgZW5j
b2RlciA8PCB1c2VyLmRpc3BsYXlOYW1lIDw8IHVzZXIubmFtZSA8PCB1c2VyLmljb24gPDwgcHVi
S2V5Q3JlZFBhcmFtcyA8PCB0aW1lb3V0IDw8IGV4Y2x1ZGVDcmVkZW50aWFscyA8PCBhdXRoZW50
aWNhdG9yU2VsZWN0aW9uIDw8IGF0dGVzdGF0aW9uU3RyaW5nIDw8IGV4dGVuc2lvbnM7CisgICAg
ZW5jb2RlciA8PCB1c2VyLmRpc3BsYXlOYW1lIDw8IHVzZXIubmFtZSA8PCB1c2VyLmljb24gPDwg
cHViS2V5Q3JlZFBhcmFtcyA8PCB0aW1lb3V0IDw8IGV4Y2x1ZGVDcmVkZW50aWFscyA8PCBhdXRo
ZW50aWNhdG9yU2VsZWN0aW9uIDw8IGF0dGVzdGF0aW9uIDw8IGV4dGVuc2lvbnM7CiAgICAgZW5j
b2RlciA8PCBzdGF0aWNfY2FzdDx1aW50NjRfdD4oY2hhbGxlbmdlLmxlbmd0aCgpKTsKICAgICBl
bmNvZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YShjaGFsbGVuZ2UuZGF0YSgpLCBjaGFsbGVuZ2Uu
bGVuZ3RoKCksIDEpOwogfQpAQCAtMTk3LDExICsxOTIsMTEgQEAgc3RkOjpvcHRpb25hbDxQdWJs
aWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zPiBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRp
b25PcHQKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICByZXN1bHQuYXV0aGVudGlj
YXRvclNlbGVjdGlvbiA9IFdURk1vdmUoKmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24pOwogCi0gICAg
c3RkOjpvcHRpb25hbDxTdHJpbmc+IGF0dGVzdGF0aW9uU3RyaW5nOwotICAgIGRlY29kZXIgPj4g
YXR0ZXN0YXRpb25TdHJpbmc7Ci0gICAgaWYgKCFhdHRlc3RhdGlvblN0cmluZykKKyAgICBzdGQ6
Om9wdGlvbmFsPEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U+IGF0dGVzdGF0aW9uOwor
ICAgIGRlY29kZXIgPj4gYXR0ZXN0YXRpb247CisgICAgaWYgKCFhdHRlc3RhdGlvbikKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLSAgICByZXN1bHQuYXR0ZXN0YXRpb25TdHJpbmcgPSBX
VEZNb3ZlKCphdHRlc3RhdGlvblN0cmluZyk7CisgICAgcmVzdWx0LmF0dGVzdGF0aW9uID0gV1RG
TW92ZSgqYXR0ZXN0YXRpb24pOwogCiAgICAgc3RkOjpvcHRpb25hbDxzdGQ6Om9wdGlvbmFsPEF1
dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cz4+IGV4dGVuc2lvbnM7CiAgICAgZGVj
b2RlciA+PiBleHRlbnNpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cy5pZGwKaW5kZXggMWNmMDgyZTk4NTY5Li5lNzVmY2UxOTlmZGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmlkbApAQCAtMzcsNyArMzcsNyBAQCB0eXBlZGVmIGxv
bmcgQ09TRUFsZ29yaXRobUlkZW50aWZpZXI7CiAgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0Owog
ICAgIHNlcXVlbmNlPFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yPiBleGNsdWRlQ3JlZGVu
dGlhbHMgPSBbXTsKICAgICBBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgYXV0aGVudGlj
YXRvclNlbGVjdGlvbjsKLSAgICBbSW1wbGVtZW50ZWRBcz1hdHRlc3RhdGlvblN0cmluZ10gRE9N
U3RyaW5nIGF0dGVzdGF0aW9uID0gIm5vbmUiOworICAgIEF0dGVzdGF0aW9uQ29udmV5YW5jZVBy
ZWZlcmVuY2UgYXR0ZXN0YXRpb24gPSAibm9uZSI7CiAgICAgQXV0aGVudGljYXRpb25FeHRlbnNp
b25zQ2xpZW50SW5wdXRzIGV4dGVuc2lvbnM7CiB9OwogCkBAIC03MSw4ICs3MSw4IEBAIHR5cGVk
ZWYgbG9uZyBDT1NFQWxnb3JpdGhtSWRlbnRpZmllcjsKIFsKICAgICBDb25kaXRpb25hbD1XRUJf
QVVUSE4sCiBdIGRpY3Rpb25hcnkgQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHsKLSAg
ICBbSW1wbGVtZW50ZWRBcz1hdXRoZW50aWNhdG9yQXR0YWNobWVudFN0cmluZ10gRE9NU3RyaW5n
IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50OwotICAgIFtJbXBsZW1lbnRlZEFzPXJlc2lkZW50S2V5
U3RyaW5nXSBET01TdHJpbmc/IHJlc2lkZW50S2V5OworICAgIEF1dGhlbnRpY2F0b3JBdHRhY2ht
ZW50ICAgICAgYXV0aGVudGljYXRvckF0dGFjaG1lbnQ7CisgICAgUmVzaWRlbnRLZXlSZXF1aXJl
bWVudCAgICAgICByZXNpZGVudEtleTsKICAgICBib29sZWFuICAgICAgICAgICAgICAgICAgICAg
IHJlcXVpcmVSZXNpZGVudEtleSA9IGZhbHNlOwotICAgIFtJbXBsZW1lbnRlZEFzPXVzZXJWZXJp
ZmljYXRpb25TdHJpbmddIERPTVN0cmluZz8gdXNlclZlcmlmaWNhdGlvbiA9ICJwcmVmZXJyZWQi
OworICAgIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCAgdXNlclZlcmlmaWNhdGlvbiA9ICJw
cmVmZXJyZWQiOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaAppbmRleCBiMzI1ZGE3
YTQzMWUuLjRjNDU0NmM5ZWIzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaApAQCAt
MzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVu
dGlhbERlc2NyaXB0b3IgewogICAgIFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlIHR5cGU7CiAgICAg
QnVmZmVyU291cmNlIGlkOwotICAgIFZlY3RvcjxTdHJpbmc+IHRyYW5zcG9ydHM7CisgICAgVmVj
dG9yPEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ+IHRyYW5zcG9ydHM7CiAKICAgICB0ZW1wbGF0ZTxj
bGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbERl
c2NyaXB0b3I+IGRlY29kZShEZWNvZGVyJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3Iu
aWRsCmluZGV4IDk4M2M5ZjEzMWJhYS4uMmE3ZDZmM2YwMTYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRp
YWxEZXNjcmlwdG9yLmlkbApAQCAtMjgsNSArMjgsNSBAQAogXSBkaWN0aW9uYXJ5IFB1YmxpY0tl
eUNyZWRlbnRpYWxEZXNjcmlwdG9yIHsKICAgICByZXF1aXJlZCBQdWJsaWNLZXlDcmVkZW50aWFs
VHlwZSB0eXBlOwogICAgIHJlcXVpcmVkIEJ1ZmZlclNvdXJjZSBpZDsKLSAgICBzZXF1ZW5jZTxE
T01TdHJpbmc+IHRyYW5zcG9ydHM7CisgICAgc2VxdWVuY2U8QXV0aGVudGljYXRvclRyYW5zcG9y
dD4gdHJhbnNwb3J0czsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5j
cHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDI2MWU2ZmJkNzI2Yy4uMDAwMDAwMDAw
MDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU1ICswLDAgQEAKLS8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMjIgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgot
ICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zLmgiCi0KLSNpbmNsdWRlICJBdXRoZW50aWNhdG9yQXR0YWNobWVu
dC5oIgotCi0jaWYgRU5BQkxFKFdFQl9BVVRITikKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1V
c2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zOjp1c2VyVmVyaWZpY2F0aW9uKCkgY29uc3QKLXsKLSAgICBpZiAodXNlclZlcmlmaWNhdGlv
blN0cmluZyA9PSAicmVxdWlyZWQiX3MpCi0gICAgICAgIHJldHVybiBVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQ6OlJlcXVpcmVkOwotICAgIGlmICh1c2VyVmVyaWZpY2F0aW9uU3RyaW5nID09
ICJwcmVmZXJyZWQiX3MpCi0gICAgICAgIHJldHVybiBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1l
bnQ6OlByZWZlcnJlZDsKLSAgICByZXR1cm4gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpE
aXNjb3VyYWdlZDsKLX0KLQotc3RkOjpvcHRpb25hbDxBdXRoZW50aWNhdG9yQXR0YWNobWVudD4g
UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOjphdXRoZW50aWNhdG9yQXR0YWNobWVu
dCgpIGNvbnN0Ci17Ci0gICAgaWYgKGF1dGhlbnRpY2F0b3JBdHRhY2htZW50U3RyaW5nID09ICJw
bGF0Zm9ybSJfcykKLSAgICAgICAgcmV0dXJuIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0
Zm9ybTsKLSAgICBpZiAoYXV0aGVudGljYXRvckF0dGFjaG1lbnRTdHJpbmcgPT0gImNyb3NzLXBs
YXRmb3JtIl9zKQotICAgICAgICByZXR1cm4gQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OkNyb3Nz
UGxhdGZvcm07Ci0gICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLX0KLQotfQotCi0jZW5kaWYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1
YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oCmluZGV4IDQ5NzQyZmRhMDI2Yi4uYjI1
MmUxZjljYjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1
YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmgKQEAgLTQy
LDEwICs0Miw4IEBAIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgewog
ICAgIHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQ+IHRpbWVvdXQ7CiAgICAgbXV0YWJsZSBTdHJpbmcg
cnBJZDsKICAgICBWZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3I+IGFsbG93Q3Jl
ZGVudGlhbHM7Ci0gICAgU3RyaW5nIHVzZXJWZXJpZmljYXRpb25TdHJpbmcgeyAicHJlZmVycmVk
Il9zIH07Ci0gICAgV0VCQ09SRV9FWFBPUlQgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50IHVz
ZXJWZXJpZmljYXRpb24oKSBjb25zdDsKLSAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gYXV0aGVu
dGljYXRvckF0dGFjaG1lbnRTdHJpbmc7Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25h
bDxBdXRoZW50aWNhdG9yQXR0YWNobWVudD4gYXV0aGVudGljYXRvckF0dGFjaG1lbnQoKSBjb25z
dDsKKyAgICBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgdXNlclZlcmlmaWNhdGlvbiB7IFVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkIH07CisgICAgc3RkOjpvcHRpb25h
bDxBdXRoZW50aWNhdG9yQXR0YWNobWVudD4gYXV0aGVudGljYXRvckF0dGFjaG1lbnQ7CiAgICAg
bXV0YWJsZSBzdGQ6Om9wdGlvbmFsPEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0
cz4gZXh0ZW5zaW9uczsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImKSBjb25zdDsKQEAgLTU4LDcgKzU2LDcgQEAgc3RydWN0IFB1YmxpY0tleUNyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9ucyB7CiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM6OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBj
b25zdAogewotICAgIGVuY29kZXIgPDwgdGltZW91dCA8PCBycElkIDw8IGFsbG93Q3JlZGVudGlh
bHMgPDwgdXNlclZlcmlmaWNhdGlvblN0cmluZyA8PCBhdXRoZW50aWNhdG9yQXR0YWNobWVudFN0
cmluZyA8PCBleHRlbnNpb25zOworICAgIGVuY29kZXIgPDwgdGltZW91dCA8PCBycElkIDw8IGFs
bG93Q3JlZGVudGlhbHMgPDwgdXNlclZlcmlmaWNhdGlvbiA8PCBleHRlbnNpb25zOwogICAgIGVu
Y29kZXIgPDwgc3RhdGljX2Nhc3Q8dWludDY0X3Q+KGNoYWxsZW5nZS5sZW5ndGgoKSk7CiAgICAg
ZW5jb2Rlci5lbmNvZGVGaXhlZExlbmd0aERhdGEoY2hhbGxlbmdlLmRhdGEoKSwgY2hhbGxlbmdl
Lmxlbmd0aCgpLCAxKTsKIH0KQEAgLTc5LDE3ICs3NywxMSBAQCBzdGQ6Om9wdGlvbmFsPFB1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucz4gUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RP
cHRpbwogICAgIGlmICghZGVjb2Rlci5kZWNvZGUocmVzdWx0LmFsbG93Q3JlZGVudGlhbHMpKQog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCi0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+
IHVzZXJWZXJpZmljYXRpb25TdHJpbmc7Ci0gICAgZGVjb2RlciA+PiB1c2VyVmVyaWZpY2F0aW9u
U3RyaW5nOwotICAgIGlmICghdXNlclZlcmlmaWNhdGlvblN0cmluZykKKyAgICBzdGQ6Om9wdGlv
bmFsPFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudD4gdXNlclZlcmlmaWNhdGlvbjsKKyAgICBk
ZWNvZGVyID4+IHVzZXJWZXJpZmljYXRpb247CisgICAgaWYgKCF1c2VyVmVyaWZpY2F0aW9uKQog
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotICAgIHJlc3VsdC51c2VyVmVyaWZpY2F0aW9u
U3RyaW5nID0gV1RGTW92ZSgqdXNlclZlcmlmaWNhdGlvblN0cmluZyk7Ci0KLSAgICBzdGQ6Om9w
dGlvbmFsPHN0ZDo6b3B0aW9uYWw8U3RyaW5nPj4gYXV0aGVudGljYXRvckF0dGFjaG1lbnRTdHJp
bmc7Ci0gICAgZGVjb2RlciA+PiBhdXRoZW50aWNhdG9yQXR0YWNobWVudFN0cmluZzsKLSAgICBp
ZiAoIWF1dGhlbnRpY2F0b3JBdHRhY2htZW50U3RyaW5nKQotICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OwotICAgIHJlc3VsdC5hdXRoZW50aWNhdG9yQXR0YWNobWVudFN0cmluZyA9IFdURk1v
dmUoKmF1dGhlbnRpY2F0b3JBdHRhY2htZW50U3RyaW5nKTsKKyAgICByZXN1bHQudXNlclZlcmlm
aWNhdGlvbiA9IFdURk1vdmUoKnVzZXJWZXJpZmljYXRpb24pOwogCiAgICAgc3RkOjpvcHRpb25h
bDxzdGQ6Om9wdGlvbmFsPEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cz4+IGV4
dGVuc2lvbnM7CiAgICAgZGVjb2RlciA+PiBleHRlbnNpb25zOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlv
bnMuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50
aWFsUmVxdWVzdE9wdGlvbnMuaWRsCmluZGV4IDU5NTQyY2E5NmZjYS4uM2UzOTJiZTg2NTdmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9ucy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9QdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuaWRsCkBAIC0zMCw2ICszMCw2
IEBACiAgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0OwogICAgIFVTVlN0cmluZyBycElkOwogICAg
IHNlcXVlbmNlPFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yPiBhbGxvd0NyZWRlbnRpYWxz
ID0gW107Ci0gICAgW0ltcGxlbWVudGVkQXM9dXNlclZlcmlmaWNhdGlvblN0cmluZ10gRE9NU3Ry
aW5nIHVzZXJWZXJpZmljYXRpb24gPSAicHJlZmVycmVkIjsKKyAgICBVc2VyVmVyaWZpY2F0aW9u
UmVxdWlyZW1lbnQgdXNlclZlcmlmaWNhdGlvbiA9ICJwcmVmZXJyZWQiOwogICAgIEF1dGhlbnRp
Y2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cyBleHRlbnNpb25zOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRp
bHMuY3BwCmluZGV4IGFjMWU5MDZkZDFiMy4uNzBlNmM4MzRlNWI1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGls
cy5jcHAKQEAgLTMxLDEwICszMSw2IEBACiAjaW5jbHVkZSAiQ0JPUlJlYWRlci5oIgogI2luY2x1
ZGUgIkNCT1JXcml0ZXIuaCIKICNpbmNsdWRlICJGaWRvQ29uc3RhbnRzLmgiCi0jaW5jbHVkZSAi
SlNBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlLmgiCi0jaW5jbHVkZSAiSlNBdXRoZW50
aWNhdG9yQXR0YWNobWVudC5oIgotI2luY2x1ZGUgIkpTUmVzaWRlbnRLZXlSZXF1aXJlbWVudC5o
IgotI2luY2x1ZGUgIkpTVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LmgiCiAjaW5jbHVkZSAi
V2ViQXV0aGVudGljYXRpb25Db25zdGFudHMuaCIKICNpbmNsdWRlIDxwYWwvY3J5cHRvL0NyeXB0
b0RpZ2VzdC5oPgogI2luY2x1ZGUgPHd0Zi9KU09OVmFsdWVzLmg+CkBAIC0yMDUsMjYgKzIwMSw2
IEBAIFZlY3Rvcjx1aW50OF90PiBlbmNvZGVSYXdQdWJsaWNLZXkoY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiB4LCBjb25zdCBWZWN0b3I8dWludDhfCiAgICAgcmV0dXJuIHJhd0tleTsKIH0KIAotU3Ry
aW5nIHRvU3RyaW5nKEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UgcHJlZmVyZW5jZSkK
LXsKLSAgICByZXR1cm4gY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcocHJlZmVyZW5jZSk7Ci19
Ci0KLVN0cmluZyB0b1N0cmluZyhBdXRoZW50aWNhdG9yQXR0YWNobWVudCBhdHRhY2htZW50KQot
ewotICAgIHJldHVybiBjb252ZXJ0RW51bWVyYXRpb25Ub1N0cmluZyhhdHRhY2htZW50KTsKLX0K
LQotU3RyaW5nIHRvU3RyaW5nKFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudCByZXF1aXJlbWVu
dCkKLXsKLSAgICByZXR1cm4gY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcocmVxdWlyZW1lbnQp
OwotfQotCi1TdHJpbmcgdG9TdHJpbmcoUmVzaWRlbnRLZXlSZXF1aXJlbWVudCByZXF1aXJlbWVu
dCkKLXsKLSAgICByZXR1cm4gY29udmVydEVudW1lcmF0aW9uVG9TdHJpbmcocmVxdWlyZW1lbnQp
OwotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCX0FV
VEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9XZWJBdXRo
ZW50aWNhdGlvblV0aWxzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1dlYkF1
dGhlbnRpY2F0aW9uVXRpbHMuaAppbmRleCAzNjc4NTYwMTJhNzYuLmVhZDJkMzZiMmZkMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlv
blV0aWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9XZWJBdXRoZW50
aWNhdGlvblV0aWxzLmgKQEAgLTM2LDEwICszNiw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotZW51bSBjbGFzcyBBdXRoZW50aWNhdG9yQXR0YWNobWVudDsKLWVudW0gY2xhc3MgVXNlclZl
cmlmaWNhdGlvblJlcXVpcmVtZW50OwotZW51bSBjbGFzcyBSZXNpZGVudEtleVJlcXVpcmVtZW50
IDogdWludDhfdDsKLQogV0VCQ09SRV9FWFBPUlQgVmVjdG9yPHVpbnQ4X3Q+IGNvbnZlcnRCeXRl
c1RvVmVjdG9yKGNvbnN0IHVpbnQ4X3QgYnl0ZUFycmF5W10sIGNvbnN0IHNpemVfdCBsZW5ndGgp
OwogCiBXRUJDT1JFX0VYUE9SVCBWZWN0b3I8dWludDhfdD4gY29udmVydEFycmF5QnVmZmVyVG9W
ZWN0b3IoQXJyYXlCdWZmZXIqKTsKQEAgLTcwLDE1ICs2Niw2IEBAIFdFQkNPUkVfRVhQT1JUIGNi
b3I6OkNCT1JWYWx1ZTo6TWFwVmFsdWUgYnVpbGRVc2VyRW50aXR5TWFwKGNvbnN0IFZlY3Rvcjx1
aW50OF90CiAKIC8vIGVuY29kZVJhd1B1YmxpY0tleSB0YWtlcyBYICYgWSBhbmQgcmV0dXJucyB0
aGVtIGFzIGEgMHgwNCB8fCBYIHx8IFkgYnl0ZSBhcnJheS4KIFdFQkNPUkVfRVhQT1JUIFZlY3Rv
cjx1aW50OF90PiBlbmNvZGVSYXdQdWJsaWNLZXkoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBYLCBj
b25zdCBWZWN0b3I8dWludDhfdD4mIFkpOwotCi1XRUJDT1JFX0VYUE9SVCBTdHJpbmcgdG9TdHJp
bmcoQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZSk7Ci0KLVdFQkNPUkVfRVhQT1JUIFN0
cmluZyB0b1N0cmluZyhBdXRoZW50aWNhdG9yQXR0YWNobWVudCk7Ci0KLVdFQkNPUkVfRVhQT1JU
IFN0cmluZyB0b1N0cmluZyhVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQpOwotCi1XRUJDT1JF
X0VYUE9SVCBTdHJpbmcgdG9TdHJpbmcoUmVzaWRlbnRLZXlSZXF1aXJlbWVudCk7Ci0KIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVxdWVzdENv
bnZlcnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNl
UmVxdWVzdENvbnZlcnRlci5jcHAKaW5kZXggY2EyMmM4NTA1YjQ2Li43YTkyNTgwNDNkYTEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXF1
ZXN0Q29udmVydGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vRGV2aWNlUmVxdWVzdENvbnZlcnRlci5jcHAKQEAgLTEwMywxNiArMTAzLDE2IEBAIFZlY3Rv
cjx1aW50OF90PiBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoY29uc3QgVmVjdG9y
PHVpbnQ4X3Q+JiBoYXNoLCBjCiAgICAgQ0JPUlZhbHVlOjpNYXBWYWx1ZSBvcHRpb25NYXA7CiAg
ICAgaWYgKG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbikgewogICAgICAgICAvLyBSZXNp
ZGVudCBrZXlzIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IGRlZmF1bHQuCi0gICAgICAgIGlmIChvcHRp
b25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnJlc2lkZW50S2V5KCkpIHsKLSAgICAgICAgICAg
IGlmICgqb3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT5yZXNpZGVudEtleSgpID09IFJl
c2lkZW50S2V5UmVxdWlyZW1lbnQ6OlJlcXVpcmVkCi0gICAgICAgICAgICAgICAgfHwgKCpvcHRp
b25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnJlc2lkZW50S2V5KCkgPT0gUmVzaWRlbnRLZXlS
ZXF1aXJlbWVudDo6UHJlZmVycmVkICYmIHJlc2lkZW50S2V5QXZhaWxhYmlsaXR5ID09IEF1dGhl
bnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpSZXNpZGVudEtleUF2YWlsYWJpbGl0eTo6a1N1cHBv
cnRlZCkpCisgICAgICAgIGlmIChvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnJlc2lk
ZW50S2V5KSB7CisgICAgICAgICAgICBpZiAoKm9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlv
bi0+cmVzaWRlbnRLZXkgPT0gUmVzaWRlbnRLZXlSZXF1aXJlbWVudDo6UmVxdWlyZWQKKyAgICAg
ICAgICAgICAgICB8fCAoKm9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbi0+cmVzaWRlbnRL
ZXkgPT0gUmVzaWRlbnRLZXlSZXF1aXJlbWVudDo6UHJlZmVycmVkICYmIHJlc2lkZW50S2V5QXZh
aWxhYmlsaXR5ID09IEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpSZXNpZGVudEtleUF2
YWlsYWJpbGl0eTo6a1N1cHBvcnRlZCkpCiAgICAgICAgICAgICAgICAgb3B0aW9uTWFwW0NCT1JW
YWx1ZShrUmVzaWRlbnRLZXlNYXBLZXkpXSA9IENCT1JWYWx1ZSh0cnVlKTsKICAgICAgICAgfSBl
bHNlIGlmIChvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnJlcXVpcmVSZXNpZGVudEtl
eSkKICAgICAgICAgICAgIG9wdGlvbk1hcFtDQk9SVmFsdWUoa1Jlc2lkZW50S2V5TWFwS2V5KV0g
PSBDQk9SVmFsdWUodHJ1ZSk7CiAKICAgICAgICAgLy8gVXNlciB2ZXJpZmljYXRpb24gaXMgbm90
IHJlcXVpcmVkIGJ5IGRlZmF1bHQuCiAgICAgICAgIGJvb2wgcmVxdWlyZVVzZXJWZXJpZmljYXRp
b24gPSBmYWxzZTsKLSAgICAgICAgc3dpdGNoIChvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rp
b24tPnVzZXJWZXJpZmljYXRpb24oKSkgeworICAgICAgICBzd2l0Y2ggKG9wdGlvbnMuYXV0aGVu
dGljYXRvclNlbGVjdGlvbi0+dXNlclZlcmlmaWNhdGlvbikgewogICAgICAgICBjYXNlIFVzZXJW
ZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQ6CiAgICAgICAgIGNhc2UgVXNlclZlcmlm
aWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQ6CiAgICAgICAgICAgICByZXF1aXJlVXNlclZl
cmlmaWNhdGlvbiA9IHV2Q2FwYWJpbGl0eSA9PSBVVkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFu
ZENvbmZpZ3VyZWQ7CkBAIC0xNTYsNyArMTU2LDcgQEAgVmVjdG9yPHVpbnQ4X3Q+IGVuY29kZUdl
dEFzc2VydGlvblJlcXVlc3RBc0NCT1IoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb24K
ICAgICBDQk9SVmFsdWU6Ok1hcFZhbHVlIG9wdGlvbk1hcDsKICAgICAvLyBVc2VyIHZlcmlmaWNh
dGlvbiBpcyBub3QgcmVxdWlyZWQgYnkgZGVmYXVsdC4KICAgICBib29sIHJlcXVpcmVVc2VyVmVy
aWZpY2F0aW9uID0gZmFsc2U7Ci0gICAgc3dpdGNoIChvcHRpb25zLnVzZXJWZXJpZmljYXRpb24o
KSkgeworICAgIHN3aXRjaCAob3B0aW9ucy51c2VyVmVyaWZpY2F0aW9uKSB7CiAgICAgY2FzZSBV
c2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlJlcXVpcmVkOgogICAgIGNhc2UgVXNlclZlcmlm
aWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQ6CiAgICAgICAgIHJlcXVpcmVVc2VyVmVyaWZp
Y2F0aW9uID0gdXZDYXBhYmlsaXR5ID09IFVWQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29u
ZmlndXJlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlk
by9VMmZDb21tYW5kQ29uc3RydWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL1UyZkNvbW1hbmRDb25zdHJ1Y3Rvci5jcHAKaW5kZXggODRiODQ2MmQyMDFhLi4y
ODYyZjk5OTQ1MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Zmlkby9VMmZDb21tYW5kQ29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9VMmZDb21tYW5kQ29uc3RydWN0b3IuY3BwCkBAIC04NSw3ICs4NSw3
IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFZlY3Rvcjx1aW50OF90Pj4gY29uc3RydWN0VTJmU2ln
bkNvbW1hbmQoY29uc3QgVmVjdG9yPHVpbnQ4CiAKIGJvb2wgaXNDb252ZXJ0aWJsZVRvVTJmUmVn
aXN0ZXJDb21tYW5kKGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmIHJl
cXVlc3QpCiB7Ci0gICAgaWYgKHJlcXVlc3QuYXV0aGVudGljYXRvclNlbGVjdGlvbiAmJiAocmVx
dWVzdC5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT51c2VyVmVyaWZpY2F0aW9uKCkgPT0gVXNlclZl
cmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1aXJlZCB8fCByZXF1ZXN0LmF1dGhlbnRpY2F0b3JT
ZWxlY3Rpb24tPnJlcXVpcmVSZXNpZGVudEtleSkpCisgICAgaWYgKHJlcXVlc3QuYXV0aGVudGlj
YXRvclNlbGVjdGlvbiAmJiAocmVxdWVzdC5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT51c2VyVmVy
aWZpY2F0aW9uID09IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQgfHwgcmVx
dWVzdC5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT5yZXF1aXJlUmVzaWRlbnRLZXkpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKHJlcXVlc3QucHViS2V5Q3JlZFBhcmFtcy5maW5kSWYo
W10oYXV0byYgaXRlbSkgeyByZXR1cm4gaXRlbS5hbGcgPT0gQ09TRTo6RVMyNTY7IH0pID09IG5v
dEZvdW5kKQogICAgICAgICByZXR1cm4gZmFsc2U7CkBAIC05NCw3ICs5NCw3IEBAIGJvb2wgaXND
b252ZXJ0aWJsZVRvVTJmUmVnaXN0ZXJDb21tYW5kKGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnMmCiAKIGJvb2wgaXNDb252ZXJ0aWJsZVRvVTJmU2lnbkNvbW1hbmQoY29u
c3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiByZXF1ZXN0KQogewotICAgIHJl
dHVybiAocmVxdWVzdC51c2VyVmVyaWZpY2F0aW9uKCkgIT0gVXNlclZlcmlmaWNhdGlvblJlcXVp
cmVtZW50OjpSZXF1aXJlZCkgJiYgIXJlcXVlc3QuYWxsb3dDcmVkZW50aWFscy5pc0VtcHR5KCk7
CisgICAgcmV0dXJuIChyZXF1ZXN0LnVzZXJWZXJpZmljYXRpb24gIT0gVXNlclZlcmlmaWNhdGlv
blJlcXVpcmVtZW50OjpSZXF1aXJlZCkgJiYgIXJlcXVlc3QuYWxsb3dDcmVkZW50aWFscy5pc0Vt
cHR5KCk7CiB9CiAKIHN0ZDo6b3B0aW9uYWw8VmVjdG9yPHVpbnQ4X3Q+PiBjb252ZXJ0VG9VMmZS
ZWdpc3RlckNvbW1hbmQoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBjbGllbnREYXRhSGFzaCwgY29u
c3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYgcmVxdWVzdCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKaW5kZXggMzBjNzc0N2FjMTNhLi43YWE1YmE1MjA4MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0z
NjAsMTAgKzM2MCw3IEBAIE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckFzc2VydGlvblJl
c3BvbnNlLmNwcAogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNw
b25zZS5jcHAKIE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAog
TW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yUmVzcG9uc2UuY3BwCi1Nb2R1bGVzL3dlYmF1
dGhuL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQuY3BwCiBNb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tl
eUNyZWRlbnRpYWwuY3BwCi1Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnMuY3BwCi1Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1
ZXN0T3B0aW9ucy5jcHAKIE1vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5j
cHAKIE1vZHVsZXMvd2ViYXV0aG4vYXBkdS9BcGR1Q29tbWFuZC5jcHAKIE1vZHVsZXMvd2ViYXV0
aG4vYXBkdS9BcGR1UmVzcG9uc2UuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYTgwYTUwMmEzNjE1Li5mYmQzNzkwYTk2ZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKQEAgLTEwMTk1LDkgKzEwMTk1LDYgQEAKIAkJNTFGQjY3RDkxQUU2QjVFNDAwRDA2QzVBIC8q
IENvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IENvbnRlbnRFeHRlbnNpb25TdHlsZVNoZWV0LmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNTFGQjY3REExQUU2QjVFNDAwRDA2QzVBIC8qIENvbnRlbnRFeHRl
bnNpb25TdHlsZVNoZWV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENvbnRl
bnRFeHRlbnNpb25TdHlsZVNoZWV0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUy
MTMxRTVBMUM0RjE1NjEwMDMzRjgwMiAvKiBWaWRlb0Z1bGxzY3JlZW5JbnRlcmZhY2VNYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5J
bnRlcmZhY2VNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUyMzY5RkI5Mjg3
NjNBNUIwMDdBRjJCQiAvKiBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHVibGljS2V5Q3JlZGVudGlhbFJl
cXVlc3RPcHRpb25zLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNTIzNjlGQkEy
ODc2M0E1QzAwN0FGMkJCIC8qIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXR0ZXN0YXRpb25Db252ZXlhbmNl
UHJlZmVyZW5jZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUyMzY5RkJCMjg3
NjNBNUMwMDdBRjJCQiAvKiBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MjYzQkYy
MDI3QzFCNTM4MDA4NTI1MEMgLyogRmFrZVhSSm9pbnRTdGF0ZUluaXQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRmFrZVhSSm9pbnRTdGF0ZUluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTI2M0JGMjIyN0MxQjUzQjAwODUyNTBDIC8qIEZha2VYUkpvaW50U3RhdGVJbml0LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBGYWtlWFJKb2ludFN0YXRlSW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTUyNjcyNEYxMUNCMkZERjYwMDc1OTc0RCAvKiBUZXh0VHJhY2tSZXByZXNlbnRhdGlvbkNvY29h
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVGV4dFRyYWNrUmVw
cmVzZW50YXRpb25Db2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEwMjI3
LDcgKzEwMjI0LDYgQEAKIAkJNTJENUExQTUxQzU3NDg4OTAwREUzNEEzIC8qIFZpZGVvRnVsbHNj
cmVlbk1vZGVsVmlkZW9FbGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTUyRDVBMUE2MUM1NzQ4ODkwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5Nb2Rl
bFZpZGVvRWxlbWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFZpZGVvRnVsbHNjcmVlbk1vZGVsVmlkZW9FbGVtZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1MkUyQ0FGQjE5RkYwMjA3MDAxRUVCNEYgLyogTWVkaWFQcm9kdWNlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZWRpYVByb2R1Y2VyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTUyRTRDQzk3Mjg3OEQxQzEwMEFBQTkwNSAvKiBBdXRoZW50
aWNhdG9yVHJhbnNwb3J0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dGhlbnRpY2F0b3JUcmFu
c3BvcnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkYxMDg2MjE2MkI2RDgy
MDA5QUM4MUUgLyogTWl4ZWRDb250ZW50Q2hlY2tlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBNaXhlZENvbnRlbnRDaGVja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNTJGMTA4NjMxNjJCNkQ4MjAwOUFDODFFIC8qIE1peGVkQ29udGVudENo
ZWNrZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTWl4ZWRDb250ZW50Q2hl
Y2tlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkY1MkUxMDE0QTAxMzRGMDBB
Q0MzOTcgLyogTlNTY3JvbGxlckltcERldGFpbHMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5vYmpjcHA7IHBhdGggPSBOU1Njcm9sbGVySW1wRGV0YWlscy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTIzNTg5LDcgKzIzNTg1LDYgQEAKIAkJCQk1NzE1MkI1MzIxQ0IyQ0Uz
MDAwQzM3Q0EgLyogYXBkdSAqLywKIAkJCQk1NzMwM0JCMzIwMDZDNkVEMDAzNTU5NjUgLyogY2Jv
ciAqLywKIAkJCQk1NzhBNEJGQTIxNjZBRTAwMDBEMDhGMzQgLyogZmlkbyAqLywKLQkJCQk1MjM2
OUZCQTI4NzYzQTVDMDA3QUYyQkIgLyogQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5j
cHAgKi8sCiAJCQkJNTdEMTM1MjEyMjk0OTczNDAwODI3NDAxIC8qIEF0dGVzdGF0aW9uQ29udmV5
YW5jZVByZWZlcmVuY2UuaCAqLywKIAkJCQk1N0QxMzUyMzIyOTQ5NzM0MDA4Mjc0MDEgLyogQXR0
ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5pZGwgKi8sCiAJCQkJNTJCMDc0NDAyODQ2ODBD
OTAwNTExQjY1IC8qIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0cy5jcHAgKi8s
CkBAIC0yMzYxMywxOCArMjM2MDgsMTUgQEAKIAkJCQk1NzMwM0JDRjIwMDg3QTgzMDAzNTU5NjUg
LyogQXV0aGVudGljYXRvclJlc3BvbnNlLmggKi8sCiAJCQkJNTczMDNCRDEyMDA4N0E4MzAwMzU1
OTY1IC8qIEF1dGhlbnRpY2F0b3JSZXNwb25zZS5pZGwgKi8sCiAJCQkJNTdEQ0VENzIyMTQzMDVG
MDAwMTZCODQ3IC8qIEF1dGhlbnRpY2F0b3JSZXNwb25zZURhdGEuaCAqLywKLQkJCQk1MkU0Q0M5
NzI4NzhEMUMxMDBBQUE5MDUgLyogQXV0aGVudGljYXRvclRyYW5zcG9ydC5jcHAgKi8sCiAJCQkJ
NTdEQ0VEOEMyMTQ4N0VEQjAwMTZCODQ3IC8qIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQuaCAqLywK
IAkJCQk1N0RDRUQ4RTIxNDg3RURCMDAxNkI4NDcgLyogQXV0aGVudGljYXRvclRyYW5zcG9ydC5p
ZGwgKi8sCiAJCQkJNTdEODQ2MkMxRkVBRjY4RjAwQ0EzNjgyIC8qIFB1YmxpY0tleUNyZWRlbnRp
YWwuY3BwICovLAogCQkJCTU3RDg0NjJCMUZFQUY2OEYwMENBMzY4MiAvKiBQdWJsaWNLZXlDcmVk
ZW50aWFsLmggKi8sCiAJCQkJNTdEODQ2MkQxRkVBRjY4RjAwQ0EzNjgyIC8qIFB1YmxpY0tleUNy
ZWRlbnRpYWwuaWRsICovLAotCQkJCTUyMzY5RkJCMjg3NjNBNUMwMDdBRjJCQiAvKiBQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmNwcCAqLywKIAkJCQk1NzMwM0JFNjIwMDk3NDdB
MDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5oICovLAogCQkJ
CTU3MzAzQkU4MjAwOTc0N0EwMDM1NTk2NSAvKiBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zLmlkbCAqLywKIAkJCQk1NzMwM0JFQzIwMDk4MEJGMDAzNTU5NjUgLyogUHVibGljS2V5
Q3JlZGVudGlhbERlc2NyaXB0b3IuaCAqLywKIAkJCQk1NzMwM0JFRTIwMDk4MEJGMDAzNTU5NjUg
LyogUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IuaWRsICovLAotCQkJCTUyMzY5RkI5Mjg3
NjNBNUIwMDdBRjJCQiAvKiBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMuY3BwICov
LAogCQkJCTU3MzAzQzA2MjAwOTk4RjgwMDM1NTk2NSAvKiBQdWJsaWNLZXlDcmVkZW50aWFsUmVx
dWVzdE9wdGlvbnMuaCAqLywKIAkJCQk1NzMwM0MwODIwMDk5OEY4MDAzNTU5NjUgLyogUHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zLmlkbCAqLywKIAkJCQk1NzMwM0JFQTIwMDk3RjQw
MDAzNTU5NjUgLyogUHVibGljS2V5Q3JlZGVudGlhbFR5cGUuaCAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVs
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0
aW9uUGFuZWwubW0KaW5kZXggMzk1ZTAzODQ3NjIzLi45ZTc4MTY2OGQ2NjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBh
bmVsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRo
ZW50aWNhdGlvblBhbmVsLm1tCkBAIC03OTEsMTMgKzc5MSwxMyBAQCBzdGF0aWMgV2ViQ29yZTo6
QXV0aGVudGljYXRvclRyYW5zcG9ydCBhdXRoZW50aWNhdG9yVHJhbnNwb3J0KF9XS1dlYkF1dGhl
bnRpY2F0aQogICAgIH0KIH0KIAotc3RhdGljIFZlY3RvcjxTdHJpbmc+IGF1dGhlbnRpY2F0b3JU
cmFuc3BvcnRzKE5TQXJyYXk8TlNOdW1iZXIgKj4gKnRyYW5zcG9ydHMpCitzdGF0aWMgVmVjdG9y
PFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ+IGF1dGhlbnRpY2F0b3JUcmFuc3BvcnRz
KE5TQXJyYXk8TlNOdW1iZXIgKj4gKnRyYW5zcG9ydHMpCiB7Ci0gICAgVmVjdG9yPFN0cmluZz4g
cmVzdWx0OworICAgIFZlY3RvcjxXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0PiByZXN1
bHQ7CiAgICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkodHJhbnNwb3J0cy5jb3VudCk7
CiAKICAgICBmb3IgKE5TTnVtYmVyICp0cmFuc3BvcnQgOiB0cmFuc3BvcnRzKQotICAgICAgICBy
ZXN1bHQudW5jaGVja2VkQXBwZW5kKHRvU3RyaW5nKGF1dGhlbnRpY2F0b3JUcmFuc3BvcnQoKF9X
S1dlYkF1dGhlbnRpY2F0aW9uVHJhbnNwb3J0KXRyYW5zcG9ydC5pbnRWYWx1ZSkpKTsKKyAgICAg
ICAgcmVzdWx0LnVuY2hlY2tlZEFwcGVuZChhdXRoZW50aWNhdG9yVHJhbnNwb3J0KChfV0tXZWJB
dXRoZW50aWNhdGlvblRyYW5zcG9ydCl0cmFuc3BvcnQuaW50VmFsdWUpKTsKIAogICAgIHJldHVy
biByZXN1bHQ7CiB9CkBAIC04NjMsMTIgKzg2MywxMCBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpSZXNpZGVudEtleVJlcXVpcmVtZW50PiB0b1dlYkNvcmUoX1dLUmVzaWRlbnRLZXlS
ZQogc3RhdGljIFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1
dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSBhdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVy
aWEoX1dLQXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhICphdXRoZW50aWNhdG9yU2VsZWN0
aW9uKQogewogICAgIFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6
OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSByZXN1bHQ7Ci0gICAgaWYgKGF1dG8gYXR0
YWNobWVudCA9IGF1dGhlbnRpY2F0b3JBdHRhY2htZW50KGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24u
YXV0aGVudGljYXRvckF0dGFjaG1lbnQpKQotICAgICAgICByZXN1bHQuYXV0aGVudGljYXRvckF0
dGFjaG1lbnRTdHJpbmcgPSB0b1N0cmluZygqYXR0YWNobWVudCk7Ci0gICAgaWYgKGF1dG8gcmVz
aWRlbnRLZXkgPSB0b1dlYkNvcmUoYXV0aGVudGljYXRvclNlbGVjdGlvbi5yZXNpZGVudEtleSkp
Ci0gICAgICAgIHJlc3VsdC5yZXNpZGVudEtleVN0cmluZyA9IHRvU3RyaW5nKCpyZXNpZGVudEtl
eSk7CisgICAgcmVzdWx0LmF1dGhlbnRpY2F0b3JBdHRhY2htZW50ID0gYXV0aGVudGljYXRvckF0
dGFjaG1lbnQoYXV0aGVudGljYXRvclNlbGVjdGlvbi5hdXRoZW50aWNhdG9yQXR0YWNobWVudCk7
CisgICAgcmVzdWx0LnJlc2lkZW50S2V5ID0gdG9XZWJDb3JlKGF1dGhlbnRpY2F0b3JTZWxlY3Rp
b24ucmVzaWRlbnRLZXkpOwogICAgIHJlc3VsdC5yZXF1aXJlUmVzaWRlbnRLZXkgPSBhdXRoZW50
aWNhdG9yU2VsZWN0aW9uLnJlcXVpcmVSZXNpZGVudEtleTsKLSAgICByZXN1bHQudXNlclZlcmlm
aWNhdGlvblN0cmluZyA9IHRvU3RyaW5nKHVzZXJWZXJpZmljYXRpb24oYXV0aGVudGljYXRvclNl
bGVjdGlvbi51c2VyVmVyaWZpY2F0aW9uKSk7CisgICAgcmVzdWx0LnVzZXJWZXJpZmljYXRpb24g
PSB1c2VyVmVyaWZpY2F0aW9uKGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24udXNlclZlcmlmaWNhdGlv
bik7CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtOTMxLDcgKzkyOSw3IEBAICsgKFdlYkNv
cmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMpY29udmVydFRvQ29yZUNyZWF0
aW9uT3B0aW9uc1dpdGhPCiAgICAgICAgIHJlc3VsdC5leGNsdWRlQ3JlZGVudGlhbHMgPSBwdWJs
aWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvcnMob3B0aW9ucy5leGNsdWRlQ3JlZGVudGlhbHMpOwog
ICAgIGlmIChvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24pCiAgICAgICAgIHJlc3VsdC5h
dXRoZW50aWNhdG9yU2VsZWN0aW9uID0gYXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhKG9w
dGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbik7Ci0gICAgcmVzdWx0LmF0dGVzdGF0aW9uU3Ry
aW5nID0gdG9TdHJpbmcoYXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZShvcHRpb25zLmF0
dGVzdGF0aW9uKSk7CisgICAgcmVzdWx0LmF0dGVzdGF0aW9uID0gYXR0ZXN0YXRpb25Db252ZXlh
bmNlUHJlZmVyZW5jZShvcHRpb25zLmF0dGVzdGF0aW9uKTsKICAgICBpZiAob3B0aW9ucy5leHRl
bnNpb25zQ0JPUikKICAgICAgICAgcmVzdWx0LmV4dGVuc2lvbnMgPSBXZWJDb3JlOjpBdXRoZW50
aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHM6OmZyb21DQk9SKGFzVUludDhTcGFuKG9wdGlv
bnMuZXh0ZW5zaW9uc0NCT1IpKTsKICAgICBlbHNlCkBAIC0xMDE1LDEzICsxMDEzLDEyIEBAICsg
KFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyljb252ZXJ0VG9Db3Jl
UmVxdWVzdE9wdGlvbnNXaXRoT3B0CiAgICAgICAgIHJlc3VsdC5ycElkID0gb3B0aW9ucy5yZWx5
aW5nUGFydHlJZGVudGlmaWVyOwogICAgIGlmIChvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMpCiAg
ICAgICAgIHJlc3VsdC5hbGxvd0NyZWRlbnRpYWxzID0gcHVibGljS2V5Q3JlZGVudGlhbERlc2Ny
aXB0b3JzKG9wdGlvbnMuYWxsb3dDcmVkZW50aWFscyk7Ci0gICAgcmVzdWx0LnVzZXJWZXJpZmlj
YXRpb25TdHJpbmcgPSB0b1N0cmluZyh1c2VyVmVyaWZpY2F0aW9uKG9wdGlvbnMudXNlclZlcmlm
aWNhdGlvbikpOwotICAgIGlmIChhdXRvIGF0dGFjaG1lbnQgPSBhdXRoZW50aWNhdG9yQXR0YWNo
bWVudChvcHRpb25zLmF1dGhlbnRpY2F0b3JBdHRhY2htZW50KSkKLSAgICAgICAgcmVzdWx0LmF1
dGhlbnRpY2F0b3JBdHRhY2htZW50U3RyaW5nID0gdG9TdHJpbmcoKmF0dGFjaG1lbnQpOwogICAg
IGlmIChvcHRpb25zLmV4dGVuc2lvbnNDQk9SKQogICAgICAgICByZXN1bHQuZXh0ZW5zaW9ucyA9
IFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9uc0NsaWVudElucHV0czo6ZnJvbUNCT1Io
YXNVSW50OFNwYW4ob3B0aW9ucy5leHRlbnNpb25zQ0JPUikpOwogICAgIGVsc2UKICAgICAgICAg
cmVzdWx0LmV4dGVuc2lvbnMgPSBhdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMo
b3B0aW9ucy5leHRlbnNpb25zKTsKKyAgICByZXN1bHQudXNlclZlcmlmaWNhdGlvbiA9IHVzZXJW
ZXJpZmljYXRpb24ob3B0aW9ucy51c2VyVmVyaWZpY2F0aW9uKTsKKyAgICByZXN1bHQuYXV0aGVu
dGljYXRvckF0dGFjaG1lbnQgPSBhdXRoZW50aWNhdG9yQXR0YWNobWVudChvcHRpb25zLmF1dGhl
bnRpY2F0b3JBdHRhY2htZW50KTsKICNlbmRpZgogCiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRp
Y2F0b3JNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcAppbmRleCA1YzZlZWY1YWNlNDYuLmY4YTMwZGYw
ZWY0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcApAQCAtNTYsNyArNTYs
NyBAQCBjb25zdCB1bnNpZ25lZCBtYXhUaW1lT3V0VmFsdWUgPSAxMjAwMDA7CiBzdGF0aWMgQXV0
aGVudGljYXRvck1hbmFnZXI6OlRyYW5zcG9ydFNldCBjb2xsZWN0VHJhbnNwb3J0cyhjb25zdCBz
dGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRp
Y2F0b3JTZWxlY3Rpb25Dcml0ZXJpYT4mIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24pCiB7CiAgICAg
QXV0aGVudGljYXRvck1hbmFnZXI6OlRyYW5zcG9ydFNldCByZXN1bHQ7Ci0gICAgaWYgKCFhdXRo
ZW50aWNhdG9yU2VsZWN0aW9uIHx8ICFhdXRoZW50aWNhdG9yU2VsZWN0aW9uLT5hdXRoZW50aWNh
dG9yQXR0YWNobWVudCgpKSB7CisgICAgaWYgKCFhdXRoZW50aWNhdG9yU2VsZWN0aW9uIHx8ICFh
dXRoZW50aWNhdG9yU2VsZWN0aW9uLT5hdXRoZW50aWNhdG9yQXR0YWNobWVudCkgewogICAgICAg
ICBhdXRvIGFkZFJlc3VsdCA9IHJlc3VsdC5hZGQoQXV0aGVudGljYXRvclRyYW5zcG9ydDo6SW50
ZXJuYWwpOwogICAgICAgICBBU1NFUlRfVU5VU0VEKGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3
RW50cnkpOwogICAgICAgICBhZGRSZXN1bHQgPSByZXN1bHQuYWRkKEF1dGhlbnRpY2F0b3JUcmFu
c3BvcnQ6OlVzYik7CkBAIC03MCwxMiArNzAsMTIgQEAgc3RhdGljIEF1dGhlbnRpY2F0b3JNYW5h
Z2VyOjpUcmFuc3BvcnRTZXQgY29sbGVjdFRyYW5zcG9ydHMoY29uc3Qgc3RkOjpvcHRpb25hbDwK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAKLSAgICBpZiAoYXV0aGVudGljYXRvclNl
bGVjdGlvbi0+YXV0aGVudGljYXRvckF0dGFjaG1lbnQoKSA9PSBBdXRoZW50aWNhdG9yQXR0YWNo
bWVudDo6UGxhdGZvcm0pIHsKKyAgICBpZiAoYXV0aGVudGljYXRvclNlbGVjdGlvbi0+YXV0aGVu
dGljYXRvckF0dGFjaG1lbnQgPT0gQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtKSB7
CiAgICAgICAgIGF1dG8gYWRkUmVzdWx0ID0gcmVzdWx0LmFkZChBdXRoZW50aWNhdG9yVHJhbnNw
b3J0OjpJbnRlcm5hbCk7CiAgICAgICAgIEFTU0VSVF9VTlVTRUQoYWRkUmVzdWx0LCBhZGRSZXN1
bHQuaXNOZXdFbnRyeSk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQotICAgIGlmIChh
dXRoZW50aWNhdG9yU2VsZWN0aW9uLT5hdXRoZW50aWNhdG9yQXR0YWNobWVudCgpID09IEF1dGhl
bnRpY2F0b3JBdHRhY2htZW50OjpDcm9zc1BsYXRmb3JtKSB7CisgICAgaWYgKGF1dGhlbnRpY2F0
b3JTZWxlY3Rpb24tPmF1dGhlbnRpY2F0b3JBdHRhY2htZW50ID09IEF1dGhlbnRpY2F0b3JBdHRh
Y2htZW50OjpDcm9zc1BsYXRmb3JtKSB7CiAgICAgICAgIGF1dG8gYWRkUmVzdWx0ID0gcmVzdWx0
LmFkZChBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpVc2IpOwogICAgICAgICBBU1NFUlRfVU5VU0VE
KGFkZFJlc3VsdCwgYWRkUmVzdWx0LmlzTmV3RW50cnkpOwogICAgICAgICBhZGRSZXN1bHQgPSBy
ZXN1bHQuYWRkKEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6Ok5mYyk7CkBAIC0xMjMsMTIgKzEyMywx
MSBAQCBzdGF0aWMgQXV0aGVudGljYXRvck1hbmFnZXI6OlRyYW5zcG9ydFNldCBjb2xsZWN0VHJh
bnNwb3J0cyhjb25zdCBWZWN0b3I8UHVibGljSwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IH0KIAotICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHVucGFyc2VkVHJhbnNwb3J0IDogYWxsb3dD
cmVkZW50aWFsLnRyYW5zcG9ydHMpIHsKLSAgICAgICAgICAgIGF1dG8gdHJhbnNwb3J0ID0gdG9B
dXRoZW50aWNhdG9yVHJhbnNwb3J0KHVucGFyc2VkVHJhbnNwb3J0KTsKLSAgICAgICAgICAgIGlm
ICghdHJhbnNwb3J0IHx8ICp0cmFuc3BvcnQgPT0gQXV0aGVudGljYXRvclRyYW5zcG9ydDo6Qmxl
KQorICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIHRyYW5zcG9ydCA6IGFsbG93Q3JlZGVudGlhbC50
cmFuc3BvcnRzKSB7CisgICAgICAgICAgICBpZiAodHJhbnNwb3J0ID09IEF1dGhlbnRpY2F0b3JU
cmFuc3BvcnQ6OkJsZSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICAgICAg
cmVzdWx0LmFkZCgqdHJhbnNwb3J0KTsKKyAgICAgICAgICAgIHJlc3VsdC5hZGQodHJhbnNwb3J0
KTsKIAogICAgICAgICAgICAgaWYgKHJlc3VsdC5zaXplKCkgPj0gQXV0aGVudGljYXRvck1hbmFn
ZXI6Om1heFRyYW5zcG9ydE51bWJlcikKICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTU0Miw3
ICs1NDEsNyBAQCBhdXRvIEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpnZXRUcmFuc3BvcnRzKCkgY29u
c3QgLT4gVHJhbnNwb3J0U2V0CiAgICAgICAgIHRyYW5zcG9ydHMgPSBjb2xsZWN0VHJhbnNwb3J0
cyhvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24pOwogICAgICAgICBwcm9jZXNzR29vZ2xl
TGVnYWN5QXBwSWRTdXBwb3J0RXh0ZW5zaW9uKG9wdGlvbnMuZXh0ZW5zaW9ucywgdHJhbnNwb3J0
cyk7CiAgICAgfSwgWyZdKGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYg
b3B0aW9ucykgewotICAgICAgICB0cmFuc3BvcnRzID0gY29sbGVjdFRyYW5zcG9ydHMob3B0aW9u
cy5hbGxvd0NyZWRlbnRpYWxzLCBvcHRpb25zLmF1dGhlbnRpY2F0b3JBdHRhY2htZW50KCkpOwor
ICAgICAgICB0cmFuc3BvcnRzID0gY29sbGVjdFRyYW5zcG9ydHMob3B0aW9ucy5hbGxvd0NyZWRl
bnRpYWxzLCBvcHRpb25zLmF1dGhlbnRpY2F0b3JBdHRhY2htZW50KTsKICAgICB9KTsKICAgICBm
aWx0ZXJUcmFuc3BvcnRzKHRyYW5zcG9ydHMpOwogICAgIHJldHVybiB0cmFuc3BvcnRzOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2Ev
TG9jYWxBdXRoZW50aWNhdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCmluZGV4IDE2NDA5ZGYzMmRkNy4u
Y2U1NTIxM2Q2MzZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1t
CkBAIC0yOCwxMSArMjgsMTEgQEAKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKKyNpbXBvcnQg
IkF1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU29mdExpbmsuaCIKICNpbXBvcnQgPFNlY3VyaXR5
L1NlY0l0ZW0uaD4KICNpbXBvcnQgPFdlYkNvcmUvQXV0aGVudGljYXRvckFzc2VydGlvblJlc3Bv
bnNlLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JBdHRhY2htZW50Lmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmg+Ci0jaW1wb3J0
IDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvQ0JP
UlJlYWRlci5oPgogI2ltcG9ydCA8V2ViQ29yZS9DQk9SV3JpdGVyLmg+CiAjaW1wb3J0IDxXZWJD
b3JlL0V4Y2VwdGlvbkRhdGEuaD4KQEAgLTUwLDcgKzUwLDYgQEAKICNpbXBvcnQgPHd0Zi9zcGkv
Y29jb2EvU2VjdXJpdHlTUEkuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5oPgogI2ltcG9y
dCA8d3RmL3RleHQvU3RyaW5nSGFzaC5oPgotI2ltcG9ydCAiQXV0aGVudGljYXRpb25TZXJ2aWNl
c0NvcmVTb2Z0TGluay5oIgogCiAjaWYgVVNFKEFQUExFX0lOVEVSTkFMX1NESykKICNpbXBvcnQg
PFdlYktpdEFkZGl0aW9ucy9Mb2NhbEF1dGhlbnRpY2F0b3JBZGRpdGlvbnMuaD4KQEAgLTgxLDkg
KzgwLDkgQEAgY29uc3QgdWludDE2X3QgY3JlZGVudGlhbElkTGVuZ3RoID0gMjA7CiBjb25zdCB1
aW50NjRfdCBjb3VudGVyID0gMDsKIGNvbnN0IHVpbnQ4X3QgYWFndWlkW10gPSB7IDB4RjIsIDB4
NEEsIDB4OEUsIDB4NzAsIDB4RDAsIDB4RDMsIDB4RjgsIDB4MkMsIDB4MjksIDB4MzcsIDB4MzIs
IDB4NTIsIDB4M0MsIDB4QzQsIDB4REUsIDB4NUEgfTsgLy8gUmFuZG9tbHkgZ2VuZXJhdGVkLgog
Ci1zdGF0aWMgaW5saW5lIGJvb2wgZW1wdHlUcmFuc3BvcnRzT3JDb250YWluKGNvbnN0IFZlY3Rv
cjxTdHJpbmc+JiB0cmFuc3BvcnRzLCBBdXRoZW50aWNhdG9yVHJhbnNwb3J0IHRhcmdldCkKK3N0
YXRpYyBpbmxpbmUgYm9vbCBlbXB0eVRyYW5zcG9ydHNPckNvbnRhaW4oY29uc3QgVmVjdG9yPEF1
dGhlbnRpY2F0b3JUcmFuc3BvcnQ+JiB0cmFuc3BvcnRzLCBBdXRoZW50aWNhdG9yVHJhbnNwb3J0
IHRhcmdldCkKIHsKLSAgICByZXR1cm4gdHJhbnNwb3J0cy5pc0VtcHR5KCkgPyB0cnVlIDogdHJh
bnNwb3J0cy5jb250YWlucyh0b1N0cmluZyh0YXJnZXQpKTsKKyAgICByZXR1cm4gdHJhbnNwb3J0
cy5pc0VtcHR5KCkgPyB0cnVlIDogdHJhbnNwb3J0cy5jb250YWlucyh0YXJnZXQpOwogfQogCiAv
LyBBIEJhc2U2NCBlbmNvZGVkIHN0cmluZyBvZiB0aGUgQ3JlZGVudGlhbCBJRCBpcyB1c2VkIGFz
IHRoZSBrZXkgb2YgdGhlIGhhc2ggc2V0LgpAQCAtNDEzLDcgKzQxMiw3IEBAIHZvaWQgTG9jYWxB
dXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJVc2VyVmVyaWZpY2F0aW9u
KFNlY0FjY2Vzc0NvCiAgICAgYXV0byBmbGFncyA9IGF1dGhEYXRhRmxhZ3MoQ2xpZW50RGF0YVR5
cGU6OkNyZWF0ZSwgdmVyaWZpY2F0aW9uLCBzaG91bGRVcGRhdGVRdWVyeSgpKTsKICAgICAvLyBT
dGVwIDEyLgogICAgIC8vIFNraXAgQXBwbGUgQXR0ZXN0YXRpb24gZm9yIG5vbmUgYXR0ZXN0YXRp
b24uCi0gICAgaWYgKGNyZWF0aW9uT3B0aW9ucy5hdHRlc3RhdGlvbigpID09IEF0dGVzdGF0aW9u
Q29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUpIHsKKyAgICBpZiAoY3JlYXRpb25PcHRpb25zLmF0
dGVzdGF0aW9uID09IEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUpIHsKICAg
ICAgICAgZGVsZXRlRHVwbGljYXRlQ3JlZGVudGlhbCgpOwogCiAgICAgICAgIGF1dG8gYXV0aERh
dGEgPSBidWlsZEF1dGhEYXRhKCpjcmVhdGlvbk9wdGlvbnMucnAuaWQsIGZsYWdzLCBjb3VudGVy
LCBidWlsZEF0dGVzdGVkQ3JlZGVudGlhbERhdGEoVmVjdG9yPHVpbnQ4X3Q+KGFhZ3VpZExlbmd0
aCwgMCksIGNyZWRlbnRpYWxJZCwgY29zZVB1YmxpY0tleSkpOwpAQCAtNDYzLDcgKzQ2Miw3IEBA
IHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJBdHRl
c3RlZChWZWN0b3I8dWludDhfdD4mJiBjCiAgICAgICAgICAgICBjYm9yQXJyYXkuYXBwZW5kKGNi
b3I6OkNCT1JWYWx1ZSh2ZWN0b3JGcm9tTlNEYXRhKChOU0RhdGEgKilhZG9wdENGKFNlY0NlcnRp
ZmljYXRlQ29weURhdGEoKF9fYnJpZGdlIFNlY0NlcnRpZmljYXRlUmVmKWNlcnRpZmljYXRlc1tp
XSkpLmdldCgpKSkpOwogICAgICAgICBhdHRlc3RhdGlvblN0YXRlbWVudE1hcFtjYm9yOjpDQk9S
VmFsdWUoIng1YyIpXSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGNib3JBcnJheSkpOwogICAg
IH0KLSAgICBhdXRvIGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChX
VEZNb3ZlKGF1dGhEYXRhKSwgImFwcGxlIl9zLCBXVEZNb3ZlKGF0dGVzdGF0aW9uU3RhdGVtZW50
TWFwKSwgY3JlYXRpb25PcHRpb25zLmF0dGVzdGF0aW9uKCkpOworICAgIGF1dG8gYXR0ZXN0YXRp
b25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUoYXV0aERhdGEpLCAiYXBw
bGUiX3MsIFdURk1vdmUoYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXApLCBjcmVhdGlvbk9wdGlvbnMu
YXR0ZXN0YXRpb24pOwogCiAgICAgZGVsZXRlRHVwbGljYXRlQ3JlZGVudGlhbCgpOwogICAgIGF1
dG8gcmVzcG9uc2UgPSBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6Y3JlYXRlKGNy
ZWRlbnRpYWxJZCwgYXR0ZXN0YXRpb25PYmplY3QsIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQ
bGF0Zm9ybSwgdHJhbnNwb3J0cygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclBy
b3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2Ev
V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubW0KaW5kZXggNDc0OThmM2I1Nzg1Li4w
NDkwZmUxNDMwMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1tCkBAIC0xMzksMTIgKzEzOSw5IEBAIHN0YXRpYyBp
bmxpbmUgUmV0YWluUHRyPEFTQ1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yPiB0b0FTQ0Rl
c2NyaXB0b3IoUHVibGljCiAgICAgaWYgKHRyYW5zcG9ydENvdW50KSB7CiAgICAgICAgIHRyYW5z
cG9ydHMgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRXaXRoQ2FwYWNpdHk6
dHJhbnNwb3J0Q291bnRdKTsKIAotICAgICAgICBmb3IgKFN0cmluZyB1bnBhcnNlZFRyYW5zcG9y
dCA6IGRlc2NyaXB0b3IudHJhbnNwb3J0cykgewotICAgICAgICAgICAgYXV0byB0cmFuc3BvcnQg
PSB0b0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQodW5wYXJzZWRUcmFuc3BvcnQpOwotICAgICAgICAg
ICAgaWYgKCF0cmFuc3BvcnQpCi0gICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIGZv
ciAoQXV0aGVudGljYXRvclRyYW5zcG9ydCB0cmFuc3BvcnQgOiBkZXNjcmlwdG9yLnRyYW5zcG9y
dHMpIHsKICAgICAgICAgICAgIE5TU3RyaW5nICp0cmFuc3BvcnRTdHJpbmcgPSBuaWw7Ci0gICAg
ICAgICAgICBzd2l0Y2ggKCp0cmFuc3BvcnQpIHsKKyAgICAgICAgICAgIHN3aXRjaCAodHJhbnNw
b3J0KSB7CiAgICAgICAgICAgICBjYXNlIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OlVzYjoKICAg
ICAgICAgICAgICAgICB0cmFuc3BvcnRTdHJpbmcgPSBAInVzYiI7CiAgICAgICAgICAgICAgICAg
YnJlYWs7CkBAIC0yMTcsMTYgKzIxNCwxNiBAQCBzdGF0aWMgUmV0YWluUHRyPEFTQ0NyZWRlbnRp
YWxSZXF1ZXN0Q29udGV4dD4gY29uZmlndXJlUmVnaXN0cmF0aW9uUmVxdWVzdENvbnRleAogICAg
IHN0ZDo6b3B0aW9uYWw8UmVzaWRlbnRLZXlSZXF1aXJlbWVudD4gcmVzaWRlbnRLZXlSZXF1aXJl
bWVudDsKICAgICBzdGQ6Om9wdGlvbmFsPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYT4gYXV0aGVudGljYXRvclNlbGVjdGlv
biA9IG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbjsKICAgICBpZiAoYXV0aGVudGljYXRv
clNlbGVjdGlvbikgewotICAgICAgICBzdGQ6Om9wdGlvbmFsPEF1dGhlbnRpY2F0b3JBdHRhY2ht
ZW50PiBhdHRhY2htZW50ID0gYXV0aGVudGljYXRvclNlbGVjdGlvbi0+YXV0aGVudGljYXRvckF0
dGFjaG1lbnQoKTsKKyAgICAgICAgc3RkOjpvcHRpb25hbDxBdXRoZW50aWNhdG9yQXR0YWNobWVu
dD4gYXR0YWNobWVudCA9IGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPmF1dGhlbnRpY2F0b3JBdHRh
Y2htZW50OwogICAgICAgICBpZiAoYXR0YWNobWVudCA9PSBBdXRoZW50aWNhdG9yQXR0YWNobWVu
dDo6UGxhdGZvcm0pCiAgICAgICAgICAgICByZXF1ZXN0VHlwZXMgPSBBU0NDcmVkZW50aWFsUmVx
dWVzdFR5cGVQbGF0Zm9ybVB1YmxpY0tleVJlZ2lzdHJhdGlvbjsKICAgICAgICAgZWxzZSBpZiAo
YXR0YWNobWVudCA9PSBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6Q3Jvc3NQbGF0Zm9ybSkKICAg
ICAgICAgICAgIHJlcXVlc3RUeXBlcyA9IEFTQ0NyZWRlbnRpYWxSZXF1ZXN0VHlwZVNlY3VyaXR5
S2V5UHVibGljS2V5UmVnaXN0cmF0aW9uOwogCi0gICAgICAgIHVzZXJWZXJpZmljYXRpb24gPSB0
b05TU3RyaW5nKGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnVzZXJWZXJpZmljYXRpb24oKSk7Cisg
ICAgICAgIHVzZXJWZXJpZmljYXRpb24gPSB0b05TU3RyaW5nKGF1dGhlbnRpY2F0b3JTZWxlY3Rp
b24tPnVzZXJWZXJpZmljYXRpb24pOwogCiAgICAgICAgIHNob3VsZFJlcXVpcmVSZXNpZGVudEtl
eSA9IGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnJlcXVpcmVSZXNpZGVudEtleTsKLSAgICAgICAg
cmVzaWRlbnRLZXlSZXF1aXJlbWVudCA9IGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnJlc2lkZW50
S2V5KCk7CisgICAgICAgIHJlc2lkZW50S2V5UmVxdWlyZW1lbnQgPSBhdXRoZW50aWNhdG9yU2Vs
ZWN0aW9uLT5yZXNpZGVudEtleTsKICAgICB9CiAgICAgaWYgKCFMb2NhbFNlcnZpY2U6OmlzQXZh
aWxhYmxlKCkpCiAgICAgICAgIHJlcXVlc3RUeXBlcyAmPSB+QVNDQ3JlZGVudGlhbFJlcXVlc3RU
eXBlUGxhdGZvcm1QdWJsaWNLZXlSZWdpc3RyYXRpb247CkBAIC0yNTEsNyArMjQ4LDcgQEAgc3Rh
dGljIFJldGFpblB0cjxBU0NDcmVkZW50aWFsUmVxdWVzdENvbnRleHQ+IGNvbmZpZ3VyZVJlZ2lz
dHJhdGlvblJlcXVlc3RDb250ZXgKICAgICAgICAgW2NyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMg
c2V0UmVzaWRlbnRLZXlQcmVmZXJlbmNlOnRvQVNDUmVzaWRlbnRLZXlQcmVmZXJlbmNlKHJlc2lk
ZW50S2V5UmVxdWlyZW1lbnQsIHNob3VsZFJlcXVpcmVSZXNpZGVudEtleSldOwogICAgIGVsc2UK
ICAgICAgICAgW2NyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgc2V0U2hvdWxkUmVxdWlyZVJlc2lk
ZW50S2V5OnNob3VsZFJlcXVpcmVSZXNpZGVudEtleV07Ci0gICAgW2NyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMgc2V0QXR0ZXN0YXRpb25QcmVmZXJlbmNlOnRvTlNTdHJpbmcob3B0aW9ucy5hdHRl
c3RhdGlvbigpKS5nZXQoKV07CisgICAgW2NyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgc2V0QXR0
ZXN0YXRpb25QcmVmZXJlbmNlOnRvTlNTdHJpbmcob3B0aW9ucy5hdHRlc3RhdGlvbikuZ2V0KCld
OwogCiAgICAgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PE5TTnVtYmVyICo+PiBzdXBwb3J0ZWRB
bGdvcml0aG1JZGVudGlmaWVycyA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5p
dFdpdGhDYXBhY2l0eTpvcHRpb25zLnB1YktleUNyZWRQYXJhbXMuc2l6ZSgpXSk7CiAgICAgZm9y
IChQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJhbWV0ZXJzIGFsZ29yaXRo
bVBhcmFtZXRlciA6IG9wdGlvbnMucHViS2V5Q3JlZFBhcmFtcykKQEAgLTMxOCwxMyArMzE1LDEz
IEBAIHN0YXRpYyBSZXRhaW5QdHI8QVNDQ3JlZGVudGlhbFJlcXVlc3RDb250ZXh0PiBjb25maWd1
cmF0aW9uQXNzZXJ0aW9uUmVxdWVzdENvbnRlCiAgICAgQVNDQ3JlZGVudGlhbFJlcXVlc3RUeXBl
cyByZXF1ZXN0VHlwZXMgPSBBU0NDcmVkZW50aWFsUmVxdWVzdFR5cGVQbGF0Zm9ybVB1YmxpY0tl
eUFzc2VydGlvbiB8IEFTQ0NyZWRlbnRpYWxSZXF1ZXN0VHlwZVNlY3VyaXR5S2V5UHVibGljS2V5
QXNzZXJ0aW9uOwogCiAgICAgUmV0YWluUHRyPE5TU3RyaW5nPiB1c2VyVmVyaWZpY2F0aW9uOwot
ICAgIHN0ZDo6b3B0aW9uYWw8QXV0aGVudGljYXRvckF0dGFjaG1lbnQ+IGF0dGFjaG1lbnQgPSBv
cHRpb25zLmF1dGhlbnRpY2F0b3JBdHRhY2htZW50KCk7CisgICAgc3RkOjpvcHRpb25hbDxBdXRo
ZW50aWNhdG9yQXR0YWNobWVudD4gYXR0YWNobWVudCA9IG9wdGlvbnMuYXV0aGVudGljYXRvckF0
dGFjaG1lbnQ7CiAgICAgaWYgKGF0dGFjaG1lbnQgPT0gQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6
OlBsYXRmb3JtKQogICAgICAgICByZXF1ZXN0VHlwZXMgPSBBU0NDcmVkZW50aWFsUmVxdWVzdFR5
cGVQbGF0Zm9ybVB1YmxpY0tleUFzc2VydGlvbjsKICAgICBlbHNlIGlmIChhdHRhY2htZW50ID09
IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpDcm9zc1BsYXRmb3JtKQogICAgICAgICByZXF1ZXN0
VHlwZXMgPSBBU0NDcmVkZW50aWFsUmVxdWVzdFR5cGVTZWN1cml0eUtleVB1YmxpY0tleUFzc2Vy
dGlvbjsKIAotICAgIHVzZXJWZXJpZmljYXRpb24gPSB0b05TU3RyaW5nKG9wdGlvbnMudXNlclZl
cmlmaWNhdGlvbigpKTsKKyAgICB1c2VyVmVyaWZpY2F0aW9uID0gdG9OU1N0cmluZyhvcHRpb25z
LnVzZXJWZXJpZmljYXRpb24pOwogCiAgICAgc2l6ZV90IGFsbG93ZWRDcmVkZW50aWFsQ291bnQg
PSBvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMuc2l6ZSgpOwogICAgIFJldGFpblB0cjxOU011dGFi
bGVBcnJheTxBU0NQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvciAqPj4gYWxsb3dlZENyZWRl
bnRpYWxzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmNw
cAppbmRleCBjMjQwYWU4Y2ZiOWEuLjE1NTJhYzQ1MTFlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
V2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5jcHAKQEAgLTQ0LDExICs0NCwxMSBAQCBVc2Vy
VmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQgZ2V0VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50KGNv
bnN0IHN0ZDo6dmFyaWFudDxQdQogewogICAgIGlmIChzdGQ6OmhvbGRzX2FsdGVybmF0aXZlPFB1
YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KG9wdGlvbnMpKSB7CiAgICAgICAgIGlm
IChhdXRvIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24gPSBzdGQ6OmdldDxQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zPihvcHRpb25zKS5hdXRoZW50aWNhdG9yU2VsZWN0aW9uKQotICAg
ICAgICAgICAgcmV0dXJuIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnVzZXJWZXJpZmljYXRpb24o
KTsKKyAgICAgICAgICAgIHJldHVybiBhdXRoZW50aWNhdG9yU2VsZWN0aW9uLT51c2VyVmVyaWZp
Y2F0aW9uOwogICAgICAgICByZXR1cm4gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVm
ZXJyZWQ7CiAgICAgfQogCi0gICAgcmV0dXJuIHN0ZDo6Z2V0PFB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucz4ob3B0aW9ucykudXNlclZlcmlmaWNhdGlvbigpOworICAgIHJldHVybiBz
dGQ6OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+KG9wdGlvbnMpLnVzZXJW
ZXJpZmljYXRpb247CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGlj
YXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRv
L0N0YXBBdXRoZW50aWNhdG9yLmNwcAppbmRleCBmODUzNmZhZDRhZWMuLjU4ZDdiODUxODA1OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlk
by9DdGFwQXV0aGVudGljYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vZmlkby9DdGFwQXV0aGVudGljYXRvci5jcHAKQEAgLTk5LDcgKzk5LDcg
QEAgdm9pZCBDdGFwQXV0aGVudGljYXRvcjo6bWFrZUNyZWRlbnRpYWwoKQogICAgIGF1dG8gaW50
ZXJuYWxVVkF2YWlsYWJpbGl0eSA9IG1faW5mby5vcHRpb25zKCkudXNlclZlcmlmaWNhdGlvbkF2
YWlsYWJpbGl0eSgpOwogICAgIGF1dG8gcmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkgPSBtX2luZm8u
b3B0aW9ucygpLnJlc2lkZW50S2V5QXZhaWxhYmlsaXR5KCk7CiAgICAgLy8gSWYgVVYgaXMgcmVx
dWlyZWQsIHRoZW4gZWl0aGVyIGJ1aWx0LWluIHV2IG9yIGEgcGluIHdpbGwgd29yay4KLSAgICBp
ZiAoaW50ZXJuYWxVVkF2YWlsYWJpbGl0eSA9PSBVVkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFu
ZENvbmZpZ3VyZWQgJiYgKCFvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24gfHwgb3B0aW9u
cy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT51c2VyVmVyaWZpY2F0aW9uKCkgIT0gVXNlclZlcmlm
aWNhdGlvblJlcXVpcmVtZW50OjpEaXNjb3VyYWdlZCkgJiYgbV9waW5BdXRoLmlzRW1wdHkoKSkK
KyAgICBpZiAoaW50ZXJuYWxVVkF2YWlsYWJpbGl0eSA9PSBVVkF2YWlsYWJpbGl0eTo6a1N1cHBv
cnRlZEFuZENvbmZpZ3VyZWQgJiYgKCFvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24gfHwg
b3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT51c2VyVmVyaWZpY2F0aW9uICE9IFVzZXJW
ZXJpZmljYXRpb25SZXF1aXJlbWVudDo6RGlzY291cmFnZWQpICYmIG1fcGluQXV0aC5pc0VtcHR5
KCkpCiAgICAgICAgIGNib3JDbWQgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1Io
cmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBpbnRlcm5hbFVWQXZhaWxhYmlsaXR5LCByZXNp
ZGVudEtleUF2YWlsYWJpbGl0eSk7CiAgICAgZWxzZSBpZiAobV9pbmZvLm9wdGlvbnMoKS5jbGll
bnRQaW5BdmFpbGFiaWxpdHkoKSA9PSBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6Q2xp
ZW50UGluQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kUGluU2V0KQogICAgICAgICBjYm9yQ21k
ID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXNDQk9SKHJlcXVlc3REYXRhKCkuaGFzaCwg
b3B0aW9ucywgaW50ZXJuYWxVVkF2YWlsYWJpbGl0eSwgcmVzaWRlbnRLZXlBdmFpbGFiaWxpdHks
IFBpblBhcmFtZXRlcnMgeyBwaW46OmtQcm90b2NvbFZlcnNpb24sIG1fcGluQXV0aCB9KTsKQEAg
LTExNSw3ICsxMTUsNyBAQCB2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjptYWtlQ3JlZGVudGlhbCgp
CiAKIHZvaWQgQ3RhcEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlclJl
c3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkKIHsKLSAgICBhdXRvIHJlc3Bv
bnNlID0gcmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKGRhdGEsIEF1dGhlbnRpY2F0b3JB
dHRhY2htZW50OjpDcm9zc1BsYXRmb3JtLCB0cmFuc3BvcnRzKCksIHN0ZDo6Z2V0PFB1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM+KHJlcXVlc3REYXRhKCkub3B0aW9ucykuYXR0ZXN0
YXRpb24oKSk7CisgICAgYXV0byByZXNwb25zZSA9IHJlYWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNw
b25zZShkYXRhLCBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6Q3Jvc3NQbGF0Zm9ybSwgdHJhbnNw
b3J0cygpLCBzdGQ6OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zPihyZXF1
ZXN0RGF0YSgpLm9wdGlvbnMpLmF0dGVzdGF0aW9uKTsKICAgICBpZiAoIXJlc3BvbnNlKSB7CiAg
ICAgICAgIGF1dG8gZXJyb3IgPSBnZXRSZXNwb25zZUNvZGUoZGF0YSk7CiAKQEAgLTE0NCw3ICsx
NDQsNyBAQCB2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0
ZXJSZXNwb25zZVJlY2VpdmVkKFZlY3Rvcjx1aW50OAogICAgICAgICBhdXRvIGV4dGVuc2lvbk91
dHB1dHMgPSByZXNwb25zZS0+ZXh0ZW5zaW9ucygpOwogICAgICAgICAKICAgICAgICAgYXV0byBy
a1N1cHBvcnRlZCA9IG1faW5mby5vcHRpb25zKCkucmVzaWRlbnRLZXlBdmFpbGFiaWxpdHkoKSA9
PSBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6
OmtTdXBwb3J0ZWQ7Ci0gICAgICAgIGF1dG8gcmtSZXF1ZXN0ZWQgPSBvcHRpb25zLmF1dGhlbnRp
Y2F0b3JTZWxlY3Rpb24gJiYgKChvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnJlc2lk
ZW50S2V5KCkgJiYgb3B0aW9ucy5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT5yZXNpZGVudEtleSgp
ICE9IFJlc2lkZW50S2V5UmVxdWlyZW1lbnQ6OkRpc2NvdXJhZ2VkKSB8fCBvcHRpb25zLmF1dGhl
bnRpY2F0b3JTZWxlY3Rpb24tPnJlcXVpcmVSZXNpZGVudEtleSk7CisgICAgICAgIGF1dG8gcmtS
ZXF1ZXN0ZWQgPSBvcHRpb25zLmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24gJiYgKChvcHRpb25zLmF1
dGhlbnRpY2F0b3JTZWxlY3Rpb24tPnJlc2lkZW50S2V5ICYmIG9wdGlvbnMuYXV0aGVudGljYXRv
clNlbGVjdGlvbi0+cmVzaWRlbnRLZXkgIT0gUmVzaWRlbnRLZXlSZXF1aXJlbWVudDo6RGlzY291
cmFnZWQpIHx8IG9wdGlvbnMuYXV0aGVudGljYXRvclNlbGVjdGlvbi0+cmVxdWlyZVJlc2lkZW50
S2V5KTsKICAgICAgICAgZXh0ZW5zaW9uT3V0cHV0cy5jcmVkUHJvcHMgPSBBdXRoZW50aWNhdGlv
bkV4dGVuc2lvbnNDbGllbnRPdXRwdXRzOjpDcmVkZW50aWFsUHJvcGVydGllc091dHB1dCB7IHJr
U3VwcG9ydGVkICYmIHJrUmVxdWVzdGVkIH07CiAgICAgICAgIHJlc3BvbnNlLT5zZXRFeHRlbnNp
b25zKFdURk1vdmUoZXh0ZW5zaW9uT3V0cHV0cykpOwogICAgIH0KQEAgLTE1OCw5ICsxNTgsOSBA
QCB2b2lkIEN0YXBBdXRoZW50aWNhdG9yOjpnZXRBc3NlcnRpb24oKQogICAgIGF1dG8mIG9wdGlv
bnMgPSBzdGQ6OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM+KHJlcXVlc3RE
YXRhKCkub3B0aW9ucyk7CiAgICAgYXV0byBpbnRlcm5hbFVWQXZhaWxhYmlsaXR5ID0gbV9pbmZv
Lm9wdGlvbnMoKS51c2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5KCk7CiAgICAgLy8gSWYgVVYg
aXMgcmVxdWlyZWQsIHRoZW4gZWl0aGVyIGJ1aWx0LWluIHV2IG9yIGEgcGluIHdpbGwgd29yay4K
LSAgICBpZiAoaW50ZXJuYWxVVkF2YWlsYWJpbGl0eSA9PSBVVkF2YWlsYWJpbGl0eTo6a1N1cHBv
cnRlZEFuZENvbmZpZ3VyZWQgJiYgb3B0aW9ucy51c2VyVmVyaWZpY2F0aW9uKCkgIT0gVXNlclZl
cmlmaWNhdGlvblJlcXVpcmVtZW50OjpEaXNjb3VyYWdlZCAmJiBtX3BpbkF1dGguaXNFbXB0eSgp
KQorICAgIGlmIChpbnRlcm5hbFVWQXZhaWxhYmlsaXR5ID09IFVWQXZhaWxhYmlsaXR5OjprU3Vw
cG9ydGVkQW5kQ29uZmlndXJlZCAmJiBvcHRpb25zLnVzZXJWZXJpZmljYXRpb24gIT0gVXNlclZl
cmlmaWNhdGlvblJlcXVpcmVtZW50OjpEaXNjb3VyYWdlZCAmJiBtX3BpbkF1dGguaXNFbXB0eSgp
KQogICAgICAgICBjYm9yQ21kID0gZW5jb2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFzQ0JPUihyZXF1
ZXN0RGF0YSgpLmhhc2gsIG9wdGlvbnMsIGludGVybmFsVVZBdmFpbGFiaWxpdHkpOwotICAgIGVs
c2UgaWYgKG1faW5mby5vcHRpb25zKCkuY2xpZW50UGluQXZhaWxhYmlsaXR5KCkgPT0gQXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRl
ZEFuZFBpblNldCAmJiBvcHRpb25zLnVzZXJWZXJpZmljYXRpb24oKSAhPSBVc2VyVmVyaWZpY2F0
aW9uUmVxdWlyZW1lbnQ6OkRpc2NvdXJhZ2VkKQorICAgIGVsc2UgaWYgKG1faW5mby5vcHRpb25z
KCkuY2xpZW50UGluQXZhaWxhYmlsaXR5KCkgPT0gQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlv
bnM6OkNsaWVudFBpbkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZFBpblNldCAmJiBvcHRpb25z
LnVzZXJWZXJpZmljYXRpb24gIT0gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpEaXNjb3Vy
YWdlZCkKICAgICAgICAgY2JvckNtZCA9IGVuY29kZUdldEFzc2VydGlvblJlcXVlc3RBc0NCT1Io
cmVxdWVzdERhdGEoKS5oYXNoLCBvcHRpb25zLCBpbnRlcm5hbFVWQXZhaWxhYmlsaXR5LCBQaW5Q
YXJhbWV0ZXJzIHsgcGluOjprUHJvdG9jb2xWZXJzaW9uLCBtX3BpbkF1dGggfSk7CiAgICAgZWxz
ZQogICAgICAgICBjYm9yQ21kID0gZW5jb2RlR2V0QXNzZXJ0aW9uUmVxdWVzdEFzQ0JPUihyZXF1
ZXN0RGF0YSgpLmhhc2gsIG9wdGlvbnMsIGludGVybmFsVVZBdmFpbGFiaWxpdHkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9VMmZB
dXRoZW50aWNhdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL2ZpZG8vVTJmQXV0aGVudGljYXRvci5jcHAKaW5kZXggMzVkYjQ5OGM2NmVjLi5lN2NmZmJh
YmIxZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL2ZpZG8vVTJmQXV0aGVudGljYXRvci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9VMmZBdXRoZW50aWNhdG9yLmNwcApAQCAtMTU4LDcg
KzE1OCw3IEBAIHZvaWQgVTJmQXV0aGVudGljYXRvcjo6Y29udGludWVSZWdpc3RlckNvbW1hbmRB
ZnRlclJlc3BvbnNlUmVjZWl2ZWQoQXBkdVJlc3BvbnNlCiAgICAgICAgIGF1dG8mIG9wdGlvbnMg
PSBzdGQ6OmdldDxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zPihyZXF1ZXN0RGF0
YSgpLm9wdGlvbnMpOwogICAgICAgICBhdXRvIGFwcElkID0gcHJvY2Vzc0dvb2dsZUxlZ2FjeUFw
cElkU3VwcG9ydEV4dGVuc2lvbihvcHRpb25zLmV4dGVuc2lvbnMpOwogICAgICAgICBBU1NFUlQo
b3B0aW9ucy5ycC5pZCk7Ci0gICAgICAgIGF1dG8gcmVzcG9uc2UgPSByZWFkVTJmUmVnaXN0ZXJS
ZXNwb25zZSghYXBwSWQgPyAqb3B0aW9ucy5ycC5pZCA6IGFwcElkLCBhcGR1UmVzcG9uc2UuZGF0
YSgpLCBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6Q3Jvc3NQbGF0Zm9ybSwgeyBkcml2ZXIoKS50
cmFuc3BvcnQoKSB9LCBvcHRpb25zLmF0dGVzdGF0aW9uKCkpOworICAgICAgICBhdXRvIHJlc3Bv
bnNlID0gcmVhZFUyZlJlZ2lzdGVyUmVzcG9uc2UoIWFwcElkID8gKm9wdGlvbnMucnAuaWQgOiBh
cHBJZCwgYXBkdVJlc3BvbnNlLmRhdGEoKSwgQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OkNyb3Nz
UGxhdGZvcm0sIHsgZHJpdmVyKCkudHJhbnNwb3J0KCkgfSwgb3B0aW9ucy5hdHRlc3RhdGlvbik7
CiAgICAgICAgIGlmICghcmVzcG9uc2UpIHsKICAgICAgICAgICAgIHJlY2VpdmVSZXNwb25kKEV4
Y2VwdGlvbkRhdGEgeyBVbmtub3duRXJyb3IsICJDb3VsZG4ndCBwYXJzZSB0aGUgVTJGIHJlZ2lz
dGVyIHJlc3BvbnNlLiJfcyB9KTsKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVzdC5jcHAKaW5kZXgg
OGI4MjJiN2NjMDEwLi4yYThhZjYzZTBhODAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9DdGFwUmVxdWVzdFRlc3QuY3BwCkBAIC02MCw5ICs2MCw5IEBA
IFRFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0TWFrZUNyZWRlbnRpYWxSZXF1ZXN0
UGFyYW0pCiAgICAgdXNlci5kaXNwbGF5TmFtZSA9ICJKb2huIFAuIFNtaXRoIl9zOwogCiAgICAg
VmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IHBh
cmFtcyB7IHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgNyB9LCB7IFB1Ymxp
Y0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXksIDI1NyB9IH07Ci0gICAgUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHNl
bGVjdGlvbiB7ICJwbGF0Zm9ybSJfcywgc3RkOjpudWxsb3B0LCB0cnVlLCAicHJlZmVycmVkIl9z
IH07CisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRv
clNlbGVjdGlvbkNyaXRlcmlhIHNlbGVjdGlvbiB7IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQ
bGF0Zm9ybSwgc3RkOjpudWxsb3B0LCB0cnVlLCBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6
OlByZWZlcnJlZCB9OwogCi0gICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBv
cHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBzdGQ6Om51bGxvcHQsIHsgfSwgc2VsZWN0
aW9uLCAibm9uZSJfcywgc3RkOjpudWxsb3B0IH07CisgICAgUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucyBvcHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBzdGQ6Om51bGxv
cHQsIHsgfSwgc2VsZWN0aW9uLCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25l
LCBzdGQ6Om51bGxvcHQgfTsKICAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKICAgICBoYXNoLmFw
cGVuZChUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnRE
YXRhSGFzaCkpOwogICAgIGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRh
bFJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlv
bnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVk
LCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6
OmtTdXBwb3J0ZWQpOwpAQCAtODMsOSArODMsOSBAQCBURVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVz
dENvbnN0cnVjdE1ha2VDcmVkZW50aWFsUmVxdWVzdFBhcmFtTm9VVk5vUkspCiAgICAgdXNlci5k
aXNwbGF5TmFtZSA9ICJKb2huIFAuIFNtaXRoIl9zOwogCiAgICAgVmVjdG9yPFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IHBhcmFtcyB7IHsgUHVibGljS2V5
Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgNyB9LCB7IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBl
OjpQdWJsaWNLZXksIDI1NyB9IH07Ci0gICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHNlbGVjdGlvbiB7ICJwbGF0Zm9y
bSJfcywgc3RkOjpudWxsb3B0LCBmYWxzZSwgImRpc2NvdXJhZ2VkIl9zIH07CisgICAgUHVibGlj
S2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRl
cmlhIHNlbGVjdGlvbiB7IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSwgc3RkOjpu
dWxsb3B0LCBmYWxzZSwgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpEaXNjb3VyYWdlZCB9
OwogCi0gICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRpb25zIHsgcnAs
IHVzZXIsIHsgfSwgcGFyYW1zLCBzdGQ6Om51bGxvcHQsIHsgfSwgc2VsZWN0aW9uLCAibm9uZSJf
cywgc3RkOjpudWxsb3B0IH07CisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cyBvcHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBzdGQ6Om51bGxvcHQsIHsgfSwgc2Vs
ZWN0aW9uLCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lLCBzdGQ6Om51bGxv
cHQgfTsKICAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKICAgICBoYXNoLmFwcGVuZChUZXN0RGF0
YTo6a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCkpOwog
ICAgIGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NC
T1IoaGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJp
ZmljYXRpb25BdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWRBbmRDb25maWd1cmVkLCBBdXRoZW50aWNh
dG9yU3VwcG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6OmtTdXBwb3J0ZWQp
OwpAQCAtMTA2LDkgKzEwNiw5IEBAIFRFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0
TWFrZUNyZWRlbnRpYWxSZXF1ZXN0UGFyYW1VVlJlcXVpcmVkQnV0Tm90U3VwCiAgICAgdXNlci5k
aXNwbGF5TmFtZSA9ICJKb2huIFAuIFNtaXRoIl9zOwogCiAgICAgVmVjdG9yPFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OlBhcmFtZXRlcnM+IHBhcmFtcyB7IHsgUHVibGljS2V5
Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgNyB9LCB7IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBl
OjpQdWJsaWNLZXksIDI1NyB9IH07Ci0gICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHNlbGVjdGlvbiB7ICJwbGF0Zm9y
bSJfcywgc3RkOjpudWxsb3B0LCBmYWxzZSwgInJlcXVpcmVkIl9zIH07CisgICAgUHVibGljS2V5
Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlh
IHNlbGVjdGlvbiB7IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSwgc3RkOjpudWxs
b3B0LCBmYWxzZSwgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1aXJlZCB9OwogCi0g
ICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRpb25zIHsgcnAsIHVzZXIs
IHsgfSwgcGFyYW1zLCBzdGQ6Om51bGxvcHQsIHsgfSwgc2VsZWN0aW9uLCAibm9uZSJfcywgc3Rk
OjpudWxsb3B0IH07CisgICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBvcHRp
b25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBzdGQ6Om51bGxvcHQsIHsgfSwgc2VsZWN0aW9u
LCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lLCBzdGQ6Om51bGxvcHQgfTsK
ICAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKICAgICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6a0Ns
aWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCkpOwogICAgIGF1
dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRhbFJlcXVlc3RBc0NCT1IoaGFz
aCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlVzZXJWZXJpZmljYXRp
b25BdmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRp
b25zOjpSZXNpZGVudEtleUF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZCk7CkBAIC0xMjksMTMgKzEy
OSwxMyBAQCBURVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVzdENvbnN0cnVjdE1ha2VDcmVkZW50aWFs
UmVxdWVzdFBhcmFtV2l0aFBpbikKICAgICB1c2VyLmRpc3BsYXlOYW1lID0gIkpvaG4gUC4gU21p
dGgiX3M7CiAKICAgICBWZWN0b3I8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6
UGFyYW1ldGVycz4gcGFyYW1zIHsgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVibGljS2V5
LCA3IH0sIHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6OlB1YmxpY0tleSwgMjU3IH0gfTsKLSAg
ICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0
aW9uQ3JpdGVyaWEgc2VsZWN0aW9uIHsgInBsYXRmb3JtIl9zLCBzdGQ6Om51bGxvcHQsIHRydWUs
ICJwcmVmZXJyZWQiX3MgfTsKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
OjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgc2VsZWN0aW9uIHsgQXV0aGVudGljYXRv
ckF0dGFjaG1lbnQ6OlBsYXRmb3JtLCBzdGQ6Om51bGxvcHQsIHRydWUsIFVzZXJWZXJpZmljYXRp
b25SZXF1aXJlbWVudDo6UHJlZmVycmVkIH07CiAKICAgICBQaW5QYXJhbWV0ZXJzIHBpbjsKICAg
ICBwaW4ucHJvdG9jb2wgPSBwaW46OmtQcm90b2NvbFZlcnNpb247CiAgICAgcGluLmF1dGguYXBw
ZW5kKFRlc3REYXRhOjprQ3RhcDJQaW5BdXRoLCBzaXplb2YoVGVzdERhdGE6OmtDdGFwMlBpbkF1
dGgpKTsKIAotICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucyB7
IHJwLCB1c2VyLCB7IH0sIHBhcmFtcywgc3RkOjpudWxsb3B0LCB7IH0sIHNlbGVjdGlvbiwgIm5v
bmUiX3MsIHN0ZDo6bnVsbG9wdCB9OworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9w
dGlvbnMgb3B0aW9ucyB7IHJwLCB1c2VyLCB7IH0sIHBhcmFtcywgc3RkOjpudWxsb3B0LCB7IH0s
IHNlbGVjdGlvbiwgQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZTo6Tm9uZSwgc3RkOjpu
dWxsb3B0IH07CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGhhc2g7CiAgICAgaGFzaC5hcHBlbmQoVGVz
dERhdGE6OmtDbGllbnREYXRhSGFzaCwgc2l6ZW9mKFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gp
KTsKICAgICBhdXRvIHNlcmlhbGl6ZWREYXRhID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0
QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2Vy
VmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQW5kQ29uZmlndXJlZCwgQXV0aGVu
dGljYXRvclN1cHBvcnRlZE9wdGlvbnM6OlJlc2lkZW50S2V5QXZhaWxhYmlsaXR5OjprU3VwcG9y
dGVkLCBwaW4pOwpAQCAtMTU2LDEzICsxNTYsMTMgQEAgVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRl
c3RDb25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVlc3RSS1ByZWZlcnJlZCkKICAgICB1c2VyLmRp
c3BsYXlOYW1lID0gIkpvaG4gUC4gU21pdGgiX3M7CiAKICAgICBWZWN0b3I8UHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9uczo6UGFyYW1ldGVycz4gcGFyYW1zIHsgeyBQdWJsaWNLZXlD
cmVkZW50aWFsVHlwZTo6UHVibGljS2V5LCA3IH0sIHsgUHVibGljS2V5Q3JlZGVudGlhbFR5cGU6
OlB1YmxpY0tleSwgMjU3IH0gfTsKLSAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgc2VsZWN0aW9uIHsgInBsYXRmb3Jt
Il9zLCAicHJlZmVycmVkIl9zLCB0cnVlLCAicHJlZmVycmVkIl9zIH07CisgICAgUHVibGljS2V5
Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlh
IHNlbGVjdGlvbiB7IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSwgUmVzaWRlbnRL
ZXlSZXF1aXJlbWVudDo6UHJlZmVycmVkLCB0cnVlLCBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1l
bnQ6OlByZWZlcnJlZCB9OwogCiAgICAgUGluUGFyYW1ldGVycyBwaW47CiAgICAgcGluLnByb3Rv
Y29sID0gcGluOjprUHJvdG9jb2xWZXJzaW9uOwogICAgIHBpbi5hdXRoLmFwcGVuZChUZXN0RGF0
YTo6a0N0YXAyUGluQXV0aCwgc2l6ZW9mKFRlc3REYXRhOjprQ3RhcDJQaW5BdXRoKSk7CiAKLSAg
ICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMgeyBycCwgdXNlciwg
eyB9LCBwYXJhbXMsIHN0ZDo6bnVsbG9wdCwgeyB9LCBzZWxlY3Rpb24sICJub25lIl9zLCBzdGQ6
Om51bGxvcHQgfTsKKyAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlv
bnMgeyBycCwgdXNlciwgeyB9LCBwYXJhbXMsIHN0ZDo6bnVsbG9wdCwgeyB9LCBzZWxlY3Rpb24s
IEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUsIHN0ZDo6bnVsbG9wdCB9Owog
ICAgIFZlY3Rvcjx1aW50OF90PiBoYXNoOwogICAgIGhhc2guYXBwZW5kKFRlc3REYXRhOjprQ2xp
ZW50RGF0YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoKSk7CiAgICAgYXV0
byBzZXJpYWxpemVkRGF0YSA9IGVuY29kZU1ha2VDcmVkZW5pdGFsUmVxdWVzdEFzQ0JPUihoYXNo
LCBvcHRpb25zLCBBdXRoZW50aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6VXNlclZlcmlmaWNhdGlv
bkF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZEFuZENvbmZpZ3VyZWQsIEF1dGhlbnRpY2F0b3JTdXBw
b3J0ZWRPcHRpb25zOjpSZXNpZGVudEtleUF2YWlsYWJpbGl0eTo6a1N1cHBvcnRlZCwgcGluKTsK
QEAgLTE4Myw5ICsxODMsOSBAQCBURVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVzdENvbnN0cnVjdE1h
a2VDcmVkZW50aWFsUmVxdWVzdFJLUHJlZmVycmVkTm90U3VwcG9ydGVkKQogICAgIHVzZXIuZGlz
cGxheU5hbWUgPSAiSm9obiBQLiBTbWl0aCJfczsKIAogICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJhbWV0ZXJzPiBwYXJhbXMgeyB7IFB1YmxpY0tleUNy
ZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXksIDcgfSwgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6
UHVibGljS2V5LCAyNTcgfSB9OwotICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSBzZWxlY3Rpb24geyAicGxhdGZvcm0i
X3MsICJwcmVmZXJyZWQiX3MsIHRydWUsICJyZXF1aXJlZCJfcyB9OworICAgIFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSBz
ZWxlY3Rpb24geyBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0sIFJlc2lkZW50S2V5
UmVxdWlyZW1lbnQ6OlByZWZlcnJlZCwgdHJ1ZSwgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50
OjpSZXF1aXJlZCB9OwogCi0gICAgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBv
cHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBzdGQ6Om51bGxvcHQsIHsgfSwgc2VsZWN0
aW9uLCAibm9uZSJfcywgc3RkOjpudWxsb3B0IH07CisgICAgUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucyBvcHRpb25zIHsgcnAsIHVzZXIsIHsgfSwgcGFyYW1zLCBzdGQ6Om51bGxv
cHQsIHsgfSwgc2VsZWN0aW9uLCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25l
LCBzdGQ6Om51bGxvcHQgfTsKICAgICBWZWN0b3I8dWludDhfdD4gaGFzaDsKICAgICBoYXNoLmFw
cGVuZChUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoLCBzaXplb2YoVGVzdERhdGE6OmtDbGllbnRE
YXRhSGFzaCkpOwogICAgIGF1dG8gc2VyaWFsaXplZERhdGEgPSBlbmNvZGVNYWtlQ3JlZGVuaXRh
bFJlcXVlc3RBc0NCT1IoaGFzaCwgb3B0aW9ucywgQXV0aGVudGljYXRvclN1cHBvcnRlZE9wdGlv
bnM6OlVzZXJWZXJpZmljYXRpb25BdmFpbGFiaWxpdHk6OmtOb3RTdXBwb3J0ZWQsIEF1dGhlbnRp
Y2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpSZXNpZGVudEtleUF2YWlsYWJpbGl0eTo6a05vdFN1cHBv
cnRlZCk7CkBAIC0yMDYsOSArMjA2LDkgQEAgVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25z
dHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVlc3RSS0Rpc2NvdXJhZ2VkKQogICAgIHVzZXIuZGlzcGxh
eU5hbWUgPSAiSm9obiBQLiBTbWl0aCJfczsKIAogICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJhbWV0ZXJzPiBwYXJhbXMgeyB7IFB1YmxpY0tleUNyZWRl
bnRpYWxUeXBlOjpQdWJsaWNLZXksIDcgfSwgeyBQdWJsaWNLZXlDcmVkZW50aWFsVHlwZTo6UHVi
bGljS2V5LCAyNTcgfSB9OwotICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6
OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSBzZWxlY3Rpb24geyAicGxhdGZvcm0iX3Ms
ICJkaXNjb3VyYWdlZCJfcywgdHJ1ZSwgInJlcXVpcmVkIl9zIH07CisgICAgUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9uczo6QXV0aGVudGljYXRvclNlbGVjdGlvbkNyaXRlcmlhIHNl
bGVjdGlvbiB7IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSwgUmVzaWRlbnRLZXlS
ZXF1aXJlbWVudDo6RGlzY291cmFnZWQsIHRydWUsIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVu
dDo6UmVxdWlyZWQgfTsKIAotICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMg
b3B0aW9ucyB7IHJwLCB1c2VyLCB7IH0sIHBhcmFtcywgc3RkOjpudWxsb3B0LCB7IH0sIHNlbGVj
dGlvbiwgIm5vbmUiX3MsIHN0ZDo6bnVsbG9wdCB9OworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnMgb3B0aW9ucyB7IHJwLCB1c2VyLCB7IH0sIHBhcmFtcywgc3RkOjpudWxs
b3B0LCB7IH0sIHNlbGVjdGlvbiwgQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZTo6Tm9u
ZSwgc3RkOjpudWxsb3B0IH07CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGhhc2g7CiAgICAgaGFzaC5h
cHBlbmQoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCwgc2l6ZW9mKFRlc3REYXRhOjprQ2xpZW50
RGF0YUhhc2gpKTsKICAgICBhdXRvIHNlcmlhbGl6ZWREYXRhID0gZW5jb2RlTWFrZUNyZWRlbml0
YWxSZXF1ZXN0QXNDQk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRp
b25zOjpVc2VyVmVyaWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprTm90U3VwcG9ydGVkLCBBdXRoZW50
aWNhdG9yU3VwcG9ydGVkT3B0aW9uczo6UmVzaWRlbnRLZXlBdmFpbGFiaWxpdHk6OmtTdXBwb3J0
ZWQpOwpAQCAtMjQ0LDcgKzI0NCw3IEBAIFRFU1QoQ1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3Ry
dWN0R2V0QXNzZXJ0aW9uUmVxdWVzdCkKICAgICBkZXNjcmlwdG9yMi5pZCA9IFdlYkNvcmU6OnRv
QnVmZmVyU291cmNlKGlkMiwgc2l6ZW9mKGlkMikpOwogICAgIG9wdGlvbnMuYWxsb3dDcmVkZW50
aWFscy5hcHBlbmQoZGVzY3JpcHRvcjIpOwogCi0gICAgb3B0aW9ucy51c2VyVmVyaWZpY2F0aW9u
U3RyaW5nID0gInJlcXVpcmVkIl9zOworICAgIG9wdGlvbnMudXNlclZlcmlmaWNhdGlvbiA9IFVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQ7CiAKICAgICBWZWN0b3I8dWludDhf
dD4gaGFzaDsKICAgICBoYXNoLmFwcGVuZChUZXN0RGF0YTo6a0NsaWVudERhdGFIYXNoLCBzaXpl
b2YoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCkpOwpAQCAtMjgxLDcgKzI4MSw3IEBAIFRFU1Qo
Q1RBUFJlcXVlc3RUZXN0LCBUZXN0Q29uc3RydWN0R2V0QXNzZXJ0aW9uUmVxdWVzdE5vVVYpCiAg
ICAgZGVzY3JpcHRvcjIuaWQgPSBXZWJDb3JlOjp0b0J1ZmZlclNvdXJjZShpZDIsIHNpemVvZihp
ZDIpKTsKICAgICBvcHRpb25zLmFsbG93Q3JlZGVudGlhbHMuYXBwZW5kKGRlc2NyaXB0b3IyKTsK
IAotICAgIG9wdGlvbnMudXNlclZlcmlmaWNhdGlvblN0cmluZyA9ICJkaXNjb3VyYWdlZCJfczsK
KyAgICBvcHRpb25zLnVzZXJWZXJpZmljYXRpb24gPSBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1l
bnQ6OkRpc2NvdXJhZ2VkOwogCiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGhhc2g7CiAgICAgaGFzaC5h
cHBlbmQoVGVzdERhdGE6OmtDbGllbnREYXRhSGFzaCwgc2l6ZW9mKFRlc3REYXRhOjprQ2xpZW50
RGF0YUhhc2gpKTsKQEAgLTMxOCw3ICszMTgsNyBAQCBURVNUKENUQVBSZXF1ZXN0VGVzdCwgVGVz
dENvbnN0cnVjdEdldEFzc2VydGlvblJlcXVlc3RVVlJlcXVpcmVkQnV0Tm90U3VwcG9ydGVkKQog
ICAgIGRlc2NyaXB0b3IyLmlkID0gV2ViQ29yZTo6dG9CdWZmZXJTb3VyY2UoaWQyLCBzaXplb2Yo
aWQyKSk7CiAgICAgb3B0aW9ucy5hbGxvd0NyZWRlbnRpYWxzLmFwcGVuZChkZXNjcmlwdG9yMik7
CiAKLSAgICBvcHRpb25zLnVzZXJWZXJpZmljYXRpb25TdHJpbmcgPSAicmVxdWlyZWQiX3M7Cisg
ICAgb3B0aW9ucy51c2VyVmVyaWZpY2F0aW9uID0gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50
OjpSZXF1aXJlZDsKIAogICAgIFZlY3Rvcjx1aW50OF90PiBoYXNoOwogICAgIGhhc2guYXBwZW5k
KFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gsIHNpemVvZihUZXN0RGF0YTo6a0NsaWVudERhdGFI
YXNoKSk7CkBAIC0zNTUsNyArMzU1LDcgQEAgVEVTVChDVEFQUmVxdWVzdFRlc3QsIFRlc3RDb25z
dHJ1Y3RHZXRBc3NlcnRpb25SZXF1ZXN0V2l0aFBpbikKICAgICBkZXNjcmlwdG9yMi5pZCA9IFdl
YkNvcmU6OnRvQnVmZmVyU291cmNlKGlkMiwgc2l6ZW9mKGlkMikpOwogICAgIG9wdGlvbnMuYWxs
b3dDcmVkZW50aWFscy5hcHBlbmQoZGVzY3JpcHRvcjIpOwogCi0gICAgb3B0aW9ucy51c2VyVmVy
aWZpY2F0aW9uU3RyaW5nID0gInJlcXVpcmVkIl9zOworICAgIG9wdGlvbnMudXNlclZlcmlmaWNh
dGlvbiA9IFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQ7CiAKICAgICBQaW5Q
YXJhbWV0ZXJzIHBpbjsKICAgICBwaW4ucHJvdG9jb2wgPSBwaW46OmtQcm90b2NvbFZlcnNpb247
CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvVTJmQ29tbWFu
ZENvbnN0cnVjdG9yVGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUv
VTJmQ29tbWFuZENvbnN0cnVjdG9yVGVzdC5jcHAKaW5kZXggYmViNjE1NDE5ZDFkLi4zYTA1MGU1
YWMxYmEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9VMmZD
b21tYW5kQ29uc3RydWN0b3JUZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvVTJmQ29tbWFuZENvbnN0cnVjdG9yVGVzdC5jcHAKQEAgLTE2Niw3ICsxNjYsNyBA
QCBURVNUKFUyZkNvbW1hbmRDb25zdHJ1Y3RvclRlc3QsIFRlc3RVMmZSZWdpc3RlclVzZXJWZXJp
ZmljYXRpb25SZXF1aXJlbWVudCkKIHsKICAgICBhdXRvIG1ha2VDcmVkZW50aWFsUGFyYW0gPSBj
b25zdHJ1Y3RNYWtlQ3JlZGVudGlhbFJlcXVlc3QoKTsKICAgICBQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgc2VsZWN0aW9u
OwotICAgIHNlbGVjdGlvbi51c2VyVmVyaWZpY2F0aW9uU3RyaW5nID0gInJlcXVpcmVkIl9zOwor
ICAgIHNlbGVjdGlvbi51c2VyVmVyaWZpY2F0aW9uID0gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVt
ZW50OjpSZXF1aXJlZDsKICAgICBtYWtlQ3JlZGVudGlhbFBhcmFtLmF1dGhlbnRpY2F0b3JTZWxl
Y3Rpb24gPSBXVEZNb3ZlKHNlbGVjdGlvbik7CiAKICAgICBFWFBFQ1RfRkFMU0UoaXNDb252ZXJ0
aWJsZVRvVTJmUmVnaXN0ZXJDb21tYW5kKG1ha2VDcmVkZW50aWFsUGFyYW0pKTsKQEAgLTIzNCw3
ICsyMzQsNyBAQCBURVNUKFUyZkNvbW1hbmRDb25zdHJ1Y3RvclRlc3QsIFRlc3RVMmZTaWduVXNl
clZlcmlmaWNhdGlvblJlcXVpcmVtZW50KQogICAgIFZlY3RvcjxQdWJsaWNLZXlDcmVkZW50aWFs
RGVzY3JpcHRvcj4gYWxsb3dlZExpc3Q7CiAgICAgYWxsb3dlZExpc3QuYXBwZW5kKFdURk1vdmUo
Y3JlZGVudGlhbERlc2NyaXB0b3IpKTsKICAgICBnZXRBc3NlcnRpb25SZXEuYWxsb3dDcmVkZW50
aWFscyA9IFdURk1vdmUoYWxsb3dlZExpc3QpOwotICAgIGdldEFzc2VydGlvblJlcS51c2VyVmVy
aWZpY2F0aW9uU3RyaW5nID0gInJlcXVpcmVkIl9zOworICAgIGdldEFzc2VydGlvblJlcS51c2Vy
VmVyaWZpY2F0aW9uID0gVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpSZXF1aXJlZDsKIAog
ICAgIEVYUEVDVF9GQUxTRShpc0NvbnZlcnRpYmxlVG9VMmZTaWduQ29tbWFuZChnZXRBc3NlcnRp
b25SZXEpKTsKIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCAxMWM5
NjYyMDIyMzQuLmNiMDlkYzVkMzZhOSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJLaXRDb2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bC5tbQpAQCAtMzQsNyArMzQsNiBAQAogI2ltcG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvbkV4
dHJhcy5oIgogI2ltcG9ydCA8TG9jYWxBdXRoZW50aWNhdGlvbi9Mb2NhbEF1dGhlbnRpY2F0aW9u
Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JBdHRhY2htZW50Lmg+Ci0jaW1wb3J0
IDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvRXhj
ZXB0aW9uQ29kZS5oPgogI2ltcG9ydCA8V2ViQ29yZS9QdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRp
b25PcHRpb25zLmg+CiAjaW1wb3J0IDxXZWJDb3JlL1B1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucy5oPgpAQCAtMTUwNyw3ICsxNTA2LDcgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBh
bmVsLCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zTWluaW11bSkKICAgICBFWFBF
Q1RfRVEocmVzdWx0LnRpbWVvdXQsIHN0ZDo6bnVsbG9wdCk7CiAgICAgRVhQRUNUX0VRKHJlc3Vs
dC5leGNsdWRlQ3JlZGVudGlhbHMuc2l6ZSgpLCAwbHUpOwogICAgIEVYUEVDVF9FUShyZXN1bHQu
YXV0aGVudGljYXRvclNlbGVjdGlvbiwgc3RkOjpudWxsb3B0KTsKLSAgICBFWFBFQ1RfRVEocmVz
dWx0LmF0dGVzdGF0aW9uKCksIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUp
OworICAgIEVYUEVDVF9FUShyZXN1bHQuYXR0ZXN0YXRpb24sIEF0dGVzdGF0aW9uQ29udmV5YW5j
ZVByZWZlcmVuY2U6Ok5vbmUpOwogICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5leHRlbnNpb25zLT5h
cHBpZC5pc051bGwoKSk7CiAgICAgRVhQRUNUX0VRKHJlc3VsdC5leHRlbnNpb25zLT5nb29nbGVM
ZWdhY3lBcHBpZFN1cHBvcnQsIGZhbHNlKTsKIH0KQEAgLTE1NTcsMTEgKzE1NTYsMTEgQEAgVEVT
VChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zTWF4aW11bURlZmF1bHQpCiAgICAgRVhQRUNUX0VRKHJlc3VsdC5leGNsdWRlQ3JlZGVudGlh
bHNbMF0uaWQubGVuZ3RoKCksIHNpemVvZihpZGVudGlmaWVyKSk7CiAgICAgRVhQRUNUX0VRKG1l
bWNtcChyZXN1bHQuZXhjbHVkZUNyZWRlbnRpYWxzWzBdLmlkLmRhdGEoKSwgaWRlbnRpZmllciwg
c2l6ZW9mKGlkZW50aWZpZXIpKSwgMCk7CiAKLSAgICBFWFBFQ1RfRVEocmVzdWx0LmF1dGhlbnRp
Y2F0b3JTZWxlY3Rpb24tPmF1dGhlbnRpY2F0b3JBdHRhY2htZW50KCksIHN0ZDo6bnVsbG9wdCk7
CisgICAgRVhQRUNUX0VRKHJlc3VsdC5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT5hdXRoZW50aWNh
dG9yQXR0YWNobWVudCwgc3RkOjpudWxsb3B0KTsKICAgICBFWFBFQ1RfRVEocmVzdWx0LmF1dGhl
bnRpY2F0b3JTZWxlY3Rpb24tPnJlcXVpcmVSZXNpZGVudEtleSwgZmFsc2UpOwotICAgIEVYUEVD
VF9FUShyZXN1bHQuYXV0aGVudGljYXRvclNlbGVjdGlvbi0+dXNlclZlcmlmaWNhdGlvbigpLCBV
c2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJlZCk7CisgICAgRVhQRUNUX0VRKHJl
c3VsdC5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT51c2VyVmVyaWZpY2F0aW9uLCBVc2VyVmVyaWZp
Y2F0aW9uUmVxdWlyZW1lbnQ6OlByZWZlcnJlZCk7CiAKLSAgICBFWFBFQ1RfRVEocmVzdWx0LmF0
dGVzdGF0aW9uKCksIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUpOworICAg
IEVYUEVDVF9FUShyZXN1bHQuYXR0ZXN0YXRpb24sIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZl
cmVuY2U6Ok5vbmUpOwogICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5leHRlbnNpb25zLT5hcHBpZC5p
c051bGwoKSk7CiB9CiAKQEAgLTE2MjQsMTUgKzE2MjMsMTUgQEAgVEVTVChXZWJBdXRoZW50aWNh
dGlvblBhbmVsLCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zTWF4aW11bTEpCiAg
ICAgRVhQRUNUX0VRKHJlc3VsdC5leGNsdWRlQ3JlZGVudGlhbHNbMF0uaWQubGVuZ3RoKCksIHNp
emVvZihpZGVudGlmaWVyKSk7CiAgICAgRVhQRUNUX0VRKG1lbWNtcChyZXN1bHQuZXhjbHVkZUNy
ZWRlbnRpYWxzWzBdLmlkLmRhdGEoKSwgaWRlbnRpZmllciwgc2l6ZW9mKGlkZW50aWZpZXIpKSwg
MCk7CiAgICAgRVhQRUNUX0VRKHJlc3VsdC5leGNsdWRlQ3JlZGVudGlhbHNbMF0udHJhbnNwb3J0
cy5zaXplKCksIDNsdSk7Ci0gICAgRVhQRUNUX0VRKCp0b0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQo
cmVzdWx0LmV4Y2x1ZGVDcmVkZW50aWFsc1swXS50cmFuc3BvcnRzWzBdKSwgQXV0aGVudGljYXRv
clRyYW5zcG9ydDo6VXNiKTsKLSAgICBFWFBFQ1RfRVEoKnRvQXV0aGVudGljYXRvclRyYW5zcG9y
dChyZXN1bHQuZXhjbHVkZUNyZWRlbnRpYWxzWzBdLnRyYW5zcG9ydHNbMV0pLCBBdXRoZW50aWNh
dG9yVHJhbnNwb3J0OjpOZmMpOwotICAgIEVYUEVDVF9FUSgqdG9BdXRoZW50aWNhdG9yVHJhbnNw
b3J0KHJlc3VsdC5leGNsdWRlQ3JlZGVudGlhbHNbMF0udHJhbnNwb3J0c1syXSksIEF1dGhlbnRp
Y2F0b3JUcmFuc3BvcnQ6OkludGVybmFsKTsKKyAgICBFWFBFQ1RfRVEocmVzdWx0LmV4Y2x1ZGVD
cmVkZW50aWFsc1swXS50cmFuc3BvcnRzWzBdLCBBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpVc2Ip
OworICAgIEVYUEVDVF9FUShyZXN1bHQuZXhjbHVkZUNyZWRlbnRpYWxzWzBdLnRyYW5zcG9ydHNb
MV0sIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6Ok5mYyk7CisgICAgRVhQRUNUX0VRKHJlc3VsdC5l
eGNsdWRlQ3JlZGVudGlhbHNbMF0udHJhbnNwb3J0c1syXSwgQXV0aGVudGljYXRvclRyYW5zcG9y
dDo6SW50ZXJuYWwpOwogCi0gICAgRVhQRUNUX0VRKHJlc3VsdC5hdXRoZW50aWNhdG9yU2VsZWN0
aW9uLT5hdXRoZW50aWNhdG9yQXR0YWNobWVudCgpLCBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6
UGxhdGZvcm0pOworICAgIEVYUEVDVF9FUShyZXN1bHQuYXV0aGVudGljYXRvclNlbGVjdGlvbi0+
YXV0aGVudGljYXRvckF0dGFjaG1lbnQsIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9y
bSk7CiAgICAgRVhQRUNUX0VRKHJlc3VsdC5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT5yZXF1aXJl
UmVzaWRlbnRLZXksIHRydWUpOwotICAgIEVYUEVDVF9FUShyZXN1bHQuYXV0aGVudGljYXRvclNl
bGVjdGlvbi0+dXNlclZlcmlmaWNhdGlvbigpLCBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6
OlJlcXVpcmVkKTsKKyAgICBFWFBFQ1RfRVEocmVzdWx0LmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24t
PnVzZXJWZXJpZmljYXRpb24sIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQp
OwogCi0gICAgRVhQRUNUX0VRKHJlc3VsdC5hdHRlc3RhdGlvbigpLCBBdHRlc3RhdGlvbkNvbnZl
eWFuY2VQcmVmZXJlbmNlOjpEaXJlY3QpOworICAgIEVYUEVDVF9FUShyZXN1bHQuYXR0ZXN0YXRp
b24sIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6OkRpcmVjdCk7CiB9CiAKIFRFU1Qo
V2ViQXV0aGVudGljYXRpb25QYW5lbCwgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
c01heGltdW0yKQpAQCAtMTY5NCwxNSArMTY5MywxNSBAQCBURVNUKFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWwsIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnNNYXhpbXVtMikKICAgICBF
WFBFQ1RfRVEocmVzdWx0LmV4Y2x1ZGVDcmVkZW50aWFsc1swXS5pZC5sZW5ndGgoKSwgc2l6ZW9m
KGlkZW50aWZpZXIpKTsKICAgICBFWFBFQ1RfRVEobWVtY21wKHJlc3VsdC5leGNsdWRlQ3JlZGVu
dGlhbHNbMF0uaWQuZGF0YSgpLCBpZGVudGlmaWVyLCBzaXplb2YoaWRlbnRpZmllcikpLCAwKTsK
ICAgICBFWFBFQ1RfRVEocmVzdWx0LmV4Y2x1ZGVDcmVkZW50aWFsc1swXS50cmFuc3BvcnRzLnNp
emUoKSwgM2x1KTsKLSAgICBFWFBFQ1RfRVEoKnRvQXV0aGVudGljYXRvclRyYW5zcG9ydChyZXN1
bHQuZXhjbHVkZUNyZWRlbnRpYWxzWzBdLnRyYW5zcG9ydHNbMF0pLCBBdXRoZW50aWNhdG9yVHJh
bnNwb3J0OjpVc2IpOwotICAgIEVYUEVDVF9FUSgqdG9BdXRoZW50aWNhdG9yVHJhbnNwb3J0KHJl
c3VsdC5leGNsdWRlQ3JlZGVudGlhbHNbMF0udHJhbnNwb3J0c1sxXSksIEF1dGhlbnRpY2F0b3JU
cmFuc3BvcnQ6Ok5mYyk7Ci0gICAgRVhQRUNUX0VRKCp0b0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQo
cmVzdWx0LmV4Y2x1ZGVDcmVkZW50aWFsc1swXS50cmFuc3BvcnRzWzJdKSwgQXV0aGVudGljYXRv
clRyYW5zcG9ydDo6SW50ZXJuYWwpOworICAgIEVYUEVDVF9FUShyZXN1bHQuZXhjbHVkZUNyZWRl
bnRpYWxzWzBdLnRyYW5zcG9ydHNbMF0sIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OlVzYik7Cisg
ICAgRVhQRUNUX0VRKHJlc3VsdC5leGNsdWRlQ3JlZGVudGlhbHNbMF0udHJhbnNwb3J0c1sxXSwg
QXV0aGVudGljYXRvclRyYW5zcG9ydDo6TmZjKTsKKyAgICBFWFBFQ1RfRVEocmVzdWx0LmV4Y2x1
ZGVDcmVkZW50aWFsc1swXS50cmFuc3BvcnRzWzJdLCBBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpJ
bnRlcm5hbCk7CiAKLSAgICBFWFBFQ1RfRVEocmVzdWx0LmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24t
PmF1dGhlbnRpY2F0b3JBdHRhY2htZW50KCksIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpDcm9z
c1BsYXRmb3JtKTsKKyAgICBFWFBFQ1RfRVEocmVzdWx0LmF1dGhlbnRpY2F0b3JTZWxlY3Rpb24t
PmF1dGhlbnRpY2F0b3JBdHRhY2htZW50LCBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6Q3Jvc3NQ
bGF0Zm9ybSk7CiAgICAgRVhQRUNUX0VRKHJlc3VsdC5hdXRoZW50aWNhdG9yU2VsZWN0aW9uLT5y
ZXF1aXJlUmVzaWRlbnRLZXksIHRydWUpOwotICAgIEVYUEVDVF9FUShyZXN1bHQuYXV0aGVudGlj
YXRvclNlbGVjdGlvbi0+dXNlclZlcmlmaWNhdGlvbigpLCBVc2VyVmVyaWZpY2F0aW9uUmVxdWly
ZW1lbnQ6OkRpc2NvdXJhZ2VkKTsKKyAgICBFWFBFQ1RfRVEocmVzdWx0LmF1dGhlbnRpY2F0b3JT
ZWxlY3Rpb24tPnVzZXJWZXJpZmljYXRpb24sIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6
RGlzY291cmFnZWQpOwogCi0gICAgRVhQRUNUX0VRKHJlc3VsdC5hdHRlc3RhdGlvbigpLCBBdHRl
c3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpJbmRpcmVjdCk7CisgICAgRVhQRUNUX0VRKHJl
c3VsdC5hdHRlc3RhdGlvbiwgQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZTo6SW5kaXJl
Y3QpOwogfQogCiBURVNUKFdlYkF1dGhlbnRpY2F0aW9uUGFuZWwsIE1ha2VDcmVkZW50aWFsU1BJ
VGltZW91dCkKQEAgLTE4NTIsNyArMTg1MSw3IEBAIFRFU1QoV2ViQXV0aGVudGljYXRpb25QYW5l
bCwgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zTWluaW11bikKICAgICBFWFBFQ1Rf
RVEocmVzdWx0LnRpbWVvdXQsIHN0ZDo6bnVsbG9wdCk7CiAgICAgRVhQRUNUX1RSVUUocmVzdWx0
LnJwSWQuaXNOdWxsKCkpOwogICAgIEVYUEVDVF9FUShyZXN1bHQuYWxsb3dDcmVkZW50aWFscy5z
aXplKCksIDBsdSk7Ci0gICAgRVhQRUNUX0VRKHJlc3VsdC51c2VyVmVyaWZpY2F0aW9uKCksIFVz
ZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVycmVkKTsKKyAgICBFWFBFQ1RfRVEocmVz
dWx0LnVzZXJWZXJpZmljYXRpb24sIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6UHJlZmVy
cmVkKTsKICAgICBFWFBFQ1RfVFJVRShyZXN1bHQuZXh0ZW5zaW9ucy0+YXBwaWQuaXNOdWxsKCkp
OwogICAgIEVYUEVDVF9FUShyZXN1bHQuZXh0ZW5zaW9ucy0+Z29vZ2xlTGVnYWN5QXBwaWRTdXBw
b3J0LCBmYWxzZSk7CiB9CkBAIC0xODc4LDcgKzE4NzcsNyBAQCBURVNUKFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWwsIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uc01heGltdW1EZWZhdWx0
KQogICAgIEVYUEVDVF9FUShyZXN1bHQuYWxsb3dDcmVkZW50aWFsc1swXS5pZC5sZW5ndGgoKSwg
c2l6ZW9mKGlkZW50aWZpZXIpKTsKICAgICBFWFBFQ1RfRVEobWVtY21wKHJlc3VsdC5hbGxvd0Ny
ZWRlbnRpYWxzWzBdLmlkLmRhdGEoKSwgaWRlbnRpZmllciwgc2l6ZW9mKGlkZW50aWZpZXIpKSwg
MCk7CiAKLSAgICBFWFBFQ1RfRVEocmVzdWx0LnVzZXJWZXJpZmljYXRpb24oKSwgVXNlclZlcmlm
aWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQpOworICAgIEVYUEVDVF9FUShyZXN1bHQudXNl
clZlcmlmaWNhdGlvbiwgVXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50OjpQcmVmZXJyZWQpOwog
ICAgIEVYUEVDVF9UUlVFKHJlc3VsdC5leHRlbnNpb25zLT5hcHBpZC5pc051bGwoKSk7CiB9CiAK
QEAgLTE5MTIsMTEgKzE5MTEsMTEgQEAgVEVTVChXZWJBdXRoZW50aWNhdGlvblBhbmVsLCBQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnNNYXhpbXVtKQogICAgIEVYUEVDVF9FUShyZXN1
bHQuYWxsb3dDcmVkZW50aWFsc1swXS5pZC5sZW5ndGgoKSwgc2l6ZW9mKGlkZW50aWZpZXIpKTsK
ICAgICBFWFBFQ1RfRVEobWVtY21wKHJlc3VsdC5hbGxvd0NyZWRlbnRpYWxzWzBdLmlkLmRhdGEo
KSwgaWRlbnRpZmllciwgc2l6ZW9mKGlkZW50aWZpZXIpKSwgMCk7CiAgICAgRVhQRUNUX0VRKHJl
c3VsdC5hbGxvd0NyZWRlbnRpYWxzWzBdLnRyYW5zcG9ydHMuc2l6ZSgpLCAzbHUpOwotICAgIEVY
UEVDVF9FUSgqdG9BdXRoZW50aWNhdG9yVHJhbnNwb3J0KHJlc3VsdC5hbGxvd0NyZWRlbnRpYWxz
WzBdLnRyYW5zcG9ydHNbMF0pLCBBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpVc2IpOwotICAgIEVY
UEVDVF9FUSgqdG9BdXRoZW50aWNhdG9yVHJhbnNwb3J0KHJlc3VsdC5hbGxvd0NyZWRlbnRpYWxz
WzBdLnRyYW5zcG9ydHNbMV0pLCBBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpOZmMpOwotICAgIEVY
UEVDVF9FUSgqdG9BdXRoZW50aWNhdG9yVHJhbnNwb3J0KHJlc3VsdC5hbGxvd0NyZWRlbnRpYWxz
WzBdLnRyYW5zcG9ydHNbMl0pLCBBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbCk7Cisg
ICAgRVhQRUNUX0VRKHJlc3VsdC5hbGxvd0NyZWRlbnRpYWxzWzBdLnRyYW5zcG9ydHNbMF0sIEF1
dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OlVzYik7CisgICAgRVhQRUNUX0VRKHJlc3VsdC5hbGxvd0Ny
ZWRlbnRpYWxzWzBdLnRyYW5zcG9ydHNbMV0sIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6Ok5mYyk7
CisgICAgRVhQRUNUX0VRKHJlc3VsdC5hbGxvd0NyZWRlbnRpYWxzWzBdLnRyYW5zcG9ydHNbMl0s
IEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OkludGVybmFsKTsKIAotICAgIEVYUEVDVF9FUShyZXN1
bHQudXNlclZlcmlmaWNhdGlvbigpLCBVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQ6OlJlcXVp
cmVkKTsKKyAgICBFWFBFQ1RfRVEocmVzdWx0LnVzZXJWZXJpZmljYXRpb24sIFVzZXJWZXJpZmlj
YXRpb25SZXF1aXJlbWVudDo6UmVxdWlyZWQpOwogICAgIEVYUEVDVF9XS19TVFJFUShyZXN1bHQu
ZXh0ZW5zaW9ucy0+YXBwaWQsICJodHRwcy8vd3d3LmV4YW1wbGUuY29tL2ZpZG8iKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>