<?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>233883</bug_id>
          
          <creation_ts>2021-12-06 10:44:10 -0800</creation_ts>
          <short_desc>Use more specific keys for pseudo-class invalidation</short_desc>
          <delta_ts>2021-12-07 09:50:23 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Antti Koivisto">koivisto</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1820664</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-12-06 10:44:10 -0800</bug_when>
    <thetext>Currently pseudo-class invalidation is keyed on the pseudo-class type only. If we have rule like

.foo:hover { ... }

we end up considering this rule every time any element&apos;s :hover state changes, whether it has class &apos;foo&apos; or not.

We can improve this by keying pseudo-class invalidation more narrowly on type/class or type/id pairs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820666</commentid>
    <comment_count>1</comment_count>
      <attachid>446053</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-12-06 10:48:17 -0800</bug_when>
    <thetext>Created attachment 446053
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820729</commentid>
    <comment_count>2</comment_count>
      <attachid>446071</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-12-06 12:53:18 -0800</bug_when>
    <thetext>Created attachment 446071
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820926</commentid>
    <comment_count>3</comment_count>
      <attachid>446134</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2021-12-07 00:32:01 -0800</bug_when>
    <thetext>Created attachment 446134
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821081</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-07 09:49:58 -0800</bug_when>
    <thetext>Committed r286598 (?): &lt;https://commits.webkit.org/r286598&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446134.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821082</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-07 09:50:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/86161876&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446053</attachid>
            <date>2021-12-06 10:48:17 -0800</date>
            <delta_ts>2021-12-06 12:53:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233883-20211206204816.patch</filename>
            <type>text/plain</type>
            <size>21558</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjVhMDgyNGJiN2M3ODUw
NzRhZjgxMzY1OTEwNjEwMGRiZTNmMDVhMC4uZWY3OWFlNzg4Mzc1ODU0YzMwYjc4OWFmNTBiMThm
MDMyMmM0MjU1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTEyLTA2ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgbW9yZSBzcGVjaWZp
YyBrZXlzIGZvciBwc2V1ZG8tY2xhc3MgaW52YWxpZGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM4ODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgcHNldWRvLWNsYXNzIGludmFs
aWRhdGlvbiBpcyBrZXllZCB3aXRoIHBzZXVkby1jbGFzcyB0eXBlIG9ubHkuIElmIHdlIGhhdmUg
cnVsZSBsaWtlCisKKyAgICAgICAgLmZvbzpob3ZlciB7IC4uLiB9CisKKyAgICAgICAgd2UgZW5k
IHVwIGNvbnNpZGVyaW5nIHRoaXMgcnVsZSBmb3IgZXZlcnkgZWxlbWVudCB3aGVuZXZlciA6aG92
ZXIgc3RhdGUgY2hhbmdlcywgd2hldGhlciB0aGUgZWxlbWVudCBoYXMgY2xhc3MgJ2Zvbycgb3Ig
bm90LgorCisgICAgICAgIFdlIGNhbiBpbXByb3ZlIHRoaXMgYnkga2V5aW5nIHBzZXVkby1jbGFz
cyBpbnZhbGlkYXRpb24gbW9yZSBuYXJyb3dseSB3aXRoIHR5cGUvY2xhc3Mgb3IgdHlwZS9pZCBw
YWlycy4KKworICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTZWxlY3Rvcjo6Q1NTU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0
b3I6OmZpcnN0SW5Db21wb3VuZCBjb25zdCk6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmg6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6dGFnSGlzdG9yeSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6aXNGaXJzdEluVGFnSGlzdG9yeSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6c2V0Tm90Rmlyc3RJblRhZ0hpc3RvcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OkNTU1NlbGVjdG9yKToKKyAgICAgICAgKiBj
c3MvQ1NTU2VsZWN0b3JMaXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yTGlz
dDo6Q1NTU2VsZWN0b3JMaXN0KToKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3JMaXN0Lmg6Cisg
ICAgICAgICogc3R5bGUvUHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U3R5bGU6Om1ha2VQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleXMpOgorICAg
ICAgICAoV2ViQ29yZTo6U3R5bGU6OlBzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uOjpjb21w
dXRlSW52YWxpZGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpQc2V1ZG9DbGFzc0No
YW5nZUludmFsaWRhdGlvbjo6Y29sbGVjdFJ1bGVTZXRzKToKKyAgICAgICAgKiBzdHlsZS9Qc2V1
ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oOgorICAgICAgICAqIHN0eWxlL1J1bGVGZWF0dXJl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlRmVhdHVyZVNldDo6cmVjdXJzaXZl
bHlDb2xsZWN0RmVhdHVyZXNGcm9tU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
Om1ha2VQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleSk6CisgICAgICAgIChXZWJDb3JlOjpTdHls
ZTo6UnVsZUZlYXR1cmVTZXQ6OmNvbGxlY3RGZWF0dXJlcyk6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6UnVsZUZlYXR1cmVTZXQ6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVs
ZUZlYXR1cmVTZXQ6OmNsZWFyKToKKyAgICAgICAgKiBzdHlsZS9SdWxlRmVhdHVyZS5oOgorICAg
ICAgICAqIHN0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6U2NvcGVSdWxlU2V0czo6cHNldWRvQ2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0cyBjb25z
dCk6CisgICAgICAgICogc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmg6CisKIDIwMjEtMTItMDYg
IEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVn
cmF0aW9uXSBVc2UgZW5kIGJpdHMgaW4gdGV4dCBib3ggaXRlcmF0b3IKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
U2VsZWN0b3IuY3BwCmluZGV4IDc2ZjA5YzcwNzlkNGE4OWNjMzYzYzk2NjY3ZTViZWU3N2UzZDE1
ZjMuLjc3MzViM2NmZDZjYjFjMjQxMDg3Y2Y5MjFiM2Q2NWYyODRkYjA3NmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1NlbGVjdG9yLmNwcApAQCAtNTYsNiArNTYsNyBAQCBDU1NTZWxlY3Rvcjo6Q1NTU2Vs
ZWN0b3IoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnUU5hbWUsIGJvb2wgdGFnSXNGb3JOYW1lc3Bh
Y2VSdQogICAgICwgbV9tYXRjaChUYWcpCiAgICAgLCBtX3BzZXVkb1R5cGUoMCkKICAgICAsIG1f
aXNMYXN0SW5TZWxlY3Rvckxpc3QoZmFsc2UpCisgICAgLCBtX2lzRmlyc3RJblRhZ0hpc3Rvcnko
dHJ1ZSkKICAgICAsIG1faXNMYXN0SW5UYWdIaXN0b3J5KHRydWUpCiAgICAgLCBtX2hhc1JhcmVE
YXRhKGZhbHNlKQogICAgICwgbV9oYXNOYW1lV2l0aENhc2UoZmFsc2UpCkBAIC0yODgsNiArMjg5
LDE4IEBAIENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50VHlwZSBDU1NTZWxlY3Rvcjo6cGFyc2VQ
c2V1ZG9FbGVtZW50VHlwZShTdHJpbmdWaWV3IG5hCiAgICAgcmV0dXJuIHR5cGU7CiB9CiAKK2Nv
bnN0IENTU1NlbGVjdG9yKiBDU1NTZWxlY3Rvcjo6Zmlyc3RJbkNvbXBvdW5kKCkgY29uc3QKK3sK
KyAgICBhdXRvKiBzZWxlY3RvciA9IHRoaXM7CisgICAgd2hpbGUgKCFzZWxlY3Rvci0+aXNGaXJz
dEluVGFnSGlzdG9yeSgpKSB7CisgICAgICAgIGF1dG8qIHByZXZpb3VzU2VsZWN0b3IgPSBzZWxl
Y3RvciAtIDE7CisgICAgICAgIGlmIChwcmV2aW91c1NlbGVjdG9yLT5yZWxhdGlvbigpICE9IFN1
YnNlbGVjdG9yKQorICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIHNlbGVjdG9yID0gcHJldmlv
dXNTZWxlY3RvcjsKKyAgICB9CisgICAgcmV0dXJuIHNlbGVjdG9yOworfQorCiBib29sIENTU1Nl
bGVjdG9yOjpvcGVyYXRvcj09KGNvbnN0IENTU1NlbGVjdG9yJiBvdGhlcikgY29uc3QKIHsKICAg
ICBjb25zdCBDU1NTZWxlY3Rvciogc2VsMSA9IHRoaXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU2VsZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5o
CmluZGV4IDRiYzQ3YjQzNjYxN2VmNWQ1YzkzMzVkZTY5YzEzMWJhNTQzYjBmMTcuLjQyODhhN2Qx
NThmOTRlYmZmODFjZTg0M2FiNTdmODE4OWI2ZTVkOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTZWxlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rv
ci5oCkBAIC0yNTMsNyArMjUzLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIC8v
IFNlbGVjdG9ycyBhcmUga2VwdCBpbiBhbiBhcnJheSBieSBDU1NTZWxlY3Rvckxpc3QuIFRoZSBu
ZXh0IGNvbXBvbmVudCBvZiB0aGUgc2VsZWN0b3IgaXMKICAgICAgICAgLy8gdGhlIG5leHQgaXRl
bSBpbiB0aGUgYXJyYXkuCi0gICAgICAgIGNvbnN0IENTU1NlbGVjdG9yKiB0YWdIaXN0b3J5KCkg
Y29uc3QgeyByZXR1cm4gbV9pc0xhc3RJblRhZ0hpc3RvcnkgPyAwIDogY29uc3RfY2FzdDxDU1NT
ZWxlY3Rvcio+KHRoaXMgKyAxKTsgfQorICAgICAgICBjb25zdCBDU1NTZWxlY3RvciogdGFnSGlz
dG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1faXNMYXN0SW5UYWdIaXN0b3J5ID8gbnVsbHB0ciA6IHRo
aXMgKyAxOyB9CisgICAgICAgIGNvbnN0IENTU1NlbGVjdG9yKiBmaXJzdEluQ29tcG91bmQoKSBj
b25zdDsKIAogICAgICAgICBjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdRTmFtZSgpIGNvbnN0Owog
ICAgICAgICBjb25zdCBBdG9tU3RyaW5nJiB0YWdMb3dlcmNhc2VMb2NhbE5hbWUoKSBjb25zdDsK
QEAgLTMzOSw3ICszNDAsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgYm9vbCBp
c0xhc3RJblNlbGVjdG9yTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1faXNMYXN0SW5TZWxlY3Rvckxp
c3Q7IH0KICAgICAgICAgdm9pZCBzZXRMYXN0SW5TZWxlY3Rvckxpc3QoKSB7IG1faXNMYXN0SW5T
ZWxlY3Rvckxpc3QgPSB0cnVlOyB9CisgICAgICAgIGJvb2wgaXNGaXJzdEluVGFnSGlzdG9yeSgp
IGNvbnN0IHsgcmV0dXJuIG1faXNGaXJzdEluVGFnSGlzdG9yeTsgfQogICAgICAgICBib29sIGlz
TGFzdEluVGFnSGlzdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1faXNMYXN0SW5UYWdIaXN0b3J5OyB9
CisgICAgICAgIHZvaWQgc2V0Tm90Rmlyc3RJblRhZ0hpc3RvcnkoKSB7IG1faXNGaXJzdEluVGFn
SGlzdG9yeSA9IGZhbHNlOyB9CiAgICAgICAgIHZvaWQgc2V0Tm90TGFzdEluVGFnSGlzdG9yeSgp
IHsgbV9pc0xhc3RJblRhZ0hpc3RvcnkgPSBmYWxzZTsgfQogCiAgICAgICAgIGJvb2wgaXNGb3JQ
YWdlKCkgY29uc3QgeyByZXR1cm4gbV9pc0ZvclBhZ2U7IH0KQEAgLTM1MCw2ICszNTMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIG11dGFibGUgdW5zaWduZWQgbV9tYXRjaCAgICAg
ICAgIDogNDsgLy8gZW51bSBNYXRjaC4KICAgICAgICAgbXV0YWJsZSB1bnNpZ25lZCBtX3BzZXVk
b1R5cGUgICAgOiA4OyAvLyBQc2V1ZG9UeXBlLgogICAgICAgICB1bnNpZ25lZCBtX2lzTGFzdElu
U2VsZWN0b3JMaXN0ICA6IDE7CisgICAgICAgIHVuc2lnbmVkIG1faXNGaXJzdEluVGFnSGlzdG9y
eSAgIDogMTsKICAgICAgICAgdW5zaWduZWQgbV9pc0xhc3RJblRhZ0hpc3RvcnkgICAgOiAxOwog
ICAgICAgICB1bnNpZ25lZCBtX2hhc1JhcmVEYXRhICAgICAgICAgICA6IDE7CiAgICAgICAgIHVu
c2lnbmVkIG1faGFzTmFtZVdpdGhDYXNlICAgICAgIDogMTsKQEAgLTUxMSw2ICs1MTUsNyBAQCBp
bmxpbmUgQ1NTU2VsZWN0b3I6OkNTU1NlbGVjdG9yKCkKICAgICAsIG1fbWF0Y2goVW5rbm93bikK
ICAgICAsIG1fcHNldWRvVHlwZSgwKQogICAgICwgbV9pc0xhc3RJblNlbGVjdG9yTGlzdChmYWxz
ZSkKKyAgICAsIG1faXNGaXJzdEluVGFnSGlzdG9yeSh0cnVlKQogICAgICwgbV9pc0xhc3RJblRh
Z0hpc3RvcnkodHJ1ZSkKICAgICAsIG1faGFzUmFyZURhdGEoZmFsc2UpCiAgICAgLCBtX2hhc05h
bWVXaXRoQ2FzZShmYWxzZSkKQEAgLTUyOCw2ICs1MzMsNyBAQCBpbmxpbmUgQ1NTU2VsZWN0b3I6
OkNTU1NlbGVjdG9yKGNvbnN0IENTU1NlbGVjdG9yJiBvKQogICAgICwgbV9tYXRjaChvLm1fbWF0
Y2gpCiAgICAgLCBtX3BzZXVkb1R5cGUoby5tX3BzZXVkb1R5cGUpCiAgICAgLCBtX2lzTGFzdElu
U2VsZWN0b3JMaXN0KG8ubV9pc0xhc3RJblNlbGVjdG9yTGlzdCkKKyAgICAsIG1faXNGaXJzdElu
VGFnSGlzdG9yeShvLm1faXNGaXJzdEluVGFnSGlzdG9yeSkKICAgICAsIG1faXNMYXN0SW5UYWdI
aXN0b3J5KG8ubV9pc0xhc3RJblRhZ0hpc3RvcnkpCiAgICAgLCBtX2hhc1JhcmVEYXRhKG8ubV9o
YXNSYXJlRGF0YSkKICAgICAsIG1faGFzTmFtZVdpdGhDYXNlKG8ubV9oYXNOYW1lV2l0aENhc2Up
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwCmluZGV4IGNjMDczYjRiMTFjMjVj
ZGMwNTBlNzNmNzNiMzY1YjhjNjE2ZDNkYmEuLjQ2NDlhZmNkMTRjODU3MDI4MGUyNjJmOGE1Njg4
MTlmYzM5ZjhjOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxp
c3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuY3BwCkBAIC01
NSw3ICs1NSw4IEBAIENTU1NlbGVjdG9yTGlzdDo6Q1NTU2VsZWN0b3JMaXN0KFZlY3RvcjxzdGQ6
OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiYmIHNlCiAgICAgbV9zZWxlY3RvckFycmF5
ID0gbWFrZVVuaXF1ZUFycmF5PENTU1NlbGVjdG9yPihmbGF0dGVuZWRTaXplKTsKICAgICBzaXpl
X3QgYXJyYXlJbmRleCA9IDA7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBzZWxlY3RvclZl
Y3Rvci5zaXplKCk7ICsraSkgewotICAgICAgICBDU1NQYXJzZXJTZWxlY3RvciogY3VycmVudCA9
IHNlbGVjdG9yVmVjdG9yW2ldLmdldCgpOworICAgICAgICBDU1NQYXJzZXJTZWxlY3RvciogZmly
c3QgPSBzZWxlY3RvclZlY3RvcltpXS5nZXQoKTsKKyAgICAgICAgQ1NTUGFyc2VyU2VsZWN0b3Iq
IGN1cnJlbnQgPSBmaXJzdDsKICAgICAgICAgd2hpbGUgKGN1cnJlbnQpIHsKICAgICAgICAgICAg
IHsKICAgICAgICAgICAgICAgICAvLyBNb3ZlIGl0ZW0gZnJvbSB0aGUgcGFyc2VyIHNlbGVjdG9y
IHZlY3RvciBpbnRvIG1fc2VsZWN0b3JBcnJheSB3aXRob3V0IGludm9raW5nIGRlc3RydWN0b3Ig
KFVnaC4pCkBAIC02NSw2ICs2Niw4IEBAIENTU1NlbGVjdG9yTGlzdDo6Q1NTU2VsZWN0b3JMaXN0
KFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiYmIHNlCiAgICAgICAg
ICAgICAgICAgLy8gRnJlZSB0aGUgdW5kZXJseWluZyBtZW1vcnkgd2l0aG91dCBpbnZva2luZyB0
aGUgZGVzdHJ1Y3Rvci4KICAgICAgICAgICAgICAgICBvcGVyYXRvciBkZWxldGUgKGN1cnJlbnRT
ZWxlY3Rvcik7CiAgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoY3VycmVudCAhPSBmaXJz
dCkKKyAgICAgICAgICAgICAgICBtX3NlbGVjdG9yQXJyYXlbYXJyYXlJbmRleF0uc2V0Tm90Rmly
c3RJblRhZ0hpc3RvcnkoKTsKICAgICAgICAgICAgIGN1cnJlbnQgPSBjdXJyZW50LT50YWdIaXN0
b3J5KCk7CiAgICAgICAgICAgICBBU1NFUlQoIW1fc2VsZWN0b3JBcnJheVthcnJheUluZGV4XS5p
c0xhc3RJblNlbGVjdG9yTGlzdCgpKTsKICAgICAgICAgICAgIGlmIChjdXJyZW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5oIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yTGlzdC5oCmluZGV4IGYwYzJlYmI3NDY3NjVlNDRhYmU0MjAzOTYx
ZTMyMzdkN2FhZDE0OTkuLmYzMDBhMjYzNmI2ZTkxN2Q1ODE2NTFjYjQzZjYwNjQ0ZmYzNTUwMzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvckxpc3QuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmgKQEAgLTQ2LDYgKzQ2LDcgQEAgcHVi
bGljOgogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuICFtX3NlbGVjdG9yQXJyYXk7
IH0KICAgICBjb25zdCBDU1NTZWxlY3RvciogZmlyc3QoKSBjb25zdCB7IHJldHVybiBtX3NlbGVj
dG9yQXJyYXkuZ2V0KCk7IH0KICAgICBzdGF0aWMgY29uc3QgQ1NTU2VsZWN0b3IqIG5leHQoY29u
c3QgQ1NTU2VsZWN0b3IqKTsKKyAgICBzdGF0aWMgY29uc3QgQ1NTU2VsZWN0b3IqIHByZXZpb3Vz
KGNvbnN0IENTU1NlbGVjdG9yKik7CiAgICAgY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yQXQo
c2l6ZV90IGluZGV4KSBjb25zdCB7IHJldHVybiAmbV9zZWxlY3RvckFycmF5W2luZGV4XTsgfQog
CiAgICAgc2l6ZV90IGluZGV4T2ZOZXh0U2VsZWN0b3JBZnRlcihzaXplX3QgaW5kZXgpIGNvbnN0
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qc2V1ZG9DbGFzc0NoYW5nZUludmFs
aWRhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qc2V1ZG9DbGFzc0NoYW5nZUludmFs
aWRhdGlvbi5jcHAKaW5kZXggMzM4MjQ0NDRmNzk4MmFlYTlmNjNlOWViMTcwOWRhN2ZmOTMwMmE5
MC4uMDNiMWUzMDUzYjlhNTlhZTUzODMzZWI4YjlmMjcxODg0OWI5MGI4ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvUHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1BzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uLmNw
cApAQCAtMzIsMTMgKzMyLDMyIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBuYW1lc3BhY2UgU3R5
bGUgewogCitzdGF0aWMgVmVjdG9yPFBzZXVkb0NsYXNzSW52YWxpZGF0aW9uS2V5LCA4PiBtYWtl
UHNldWRvQ2xhc3NJbnZhbGlkYXRpb25LZXlzKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUg
cHNldWRvQ2xhc3MsIGNvbnN0IEVsZW1lbnQmIGVsZW1lbnQpCit7CisgICAgVmVjdG9yPFBzZXVk
b0NsYXNzSW52YWxpZGF0aW9uS2V5LCA4PiBrZXlzOworCisgICAgaWYgKCFlbGVtZW50LmlkRm9y
U3R5bGVSZXNvbHV0aW9uKCkuaXNFbXB0eSgpKQorICAgICAgICBrZXlzLmFwcGVuZChtYWtlUHNl
dWRvQ2xhc3NJbnZhbGlkYXRpb25LZXkocHNldWRvQ2xhc3MsIGVsZW1lbnQuaWRGb3JTdHlsZVJl
c29sdXRpb24oKSkpOworCisgICAgaWYgKGVsZW1lbnQuaGFzQ2xhc3MoKSkgeworICAgICAgICBh
dXRvIGNsYXNzQ291bnQgPSBlbGVtZW50LmNsYXNzTmFtZXMoKS5zaXplKCk7CisgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgY2xhc3NDb3VudDsgKytpKQorICAgICAgICAgICAga2V5cy5h
cHBlbmQobWFrZVBzZXVkb0NsYXNzSW52YWxpZGF0aW9uS2V5KHBzZXVkb0NsYXNzLCBlbGVtZW50
LmNsYXNzTmFtZXMoKVtpXSkpOworICAgIH0KKworICAgIC8vIENhdGNoLWFsbCBrZXkgZm9yIHBz
ZXVkby1jbGFzcyBzZWxlY3RvcnMgd2l0aG91dCBpZHMgb3IgY2xhc3NlcyBpbiB0aGUgc2FtZSBj
b21wb3VuZC4KKyAgICBrZXlzLmFwcGVuZChtYWtlUHNldWRvQ2xhc3NJbnZhbGlkYXRpb25LZXko
cHNldWRvQ2xhc3MsIG51bGxBdG9tKCkpKTsKKworICAgIHJldHVybiBrZXlzOworfTsKKwogdm9p
ZCBQc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbjo6Y29tcHV0ZUludmFsaWRhdGlvbihDU1NT
ZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlIHBzZXVkb0NsYXNzLCBJbnZhbGlkYXRpb25TY29wZSBp
bnZhbGlkYXRpb25TY29wZSkKIHsKICAgICBib29sIHNob3VsZEludmFsaWRhdGVDdXJyZW50ID0g
ZmFsc2U7CiAgICAgYm9vbCBtYXlBZmZlY3RTdHlsZUluU2hhZG93VHJlZSA9IGZhbHNlOwogCiAg
ICAgdHJhdmVyc2VSdWxlRmVhdHVyZXMobV9lbGVtZW50LCBbJl0gKGNvbnN0IFJ1bGVGZWF0dXJl
U2V0JiBmZWF0dXJlcywgYm9vbCBtYXlBZmZlY3RTaGFkb3dUcmVlKSB7Ci0gICAgICAgIGlmICht
YXlBZmZlY3RTaGFkb3dUcmVlICYmIGZlYXR1cmVzLnBzZXVkb0NsYXNzUnVsZXMuY29udGFpbnMo
cHNldWRvQ2xhc3MpKQorICAgICAgICBpZiAobWF5QWZmZWN0U2hhZG93VHJlZSAmJiBmZWF0dXJl
cy5wc2V1ZG9DbGFzc1R5cGVzLmNvbnRhaW5zKHBzZXVkb0NsYXNzKSkKICAgICAgICAgICAgIG1h
eUFmZmVjdFN0eWxlSW5TaGFkb3dUcmVlID0gdHJ1ZTsKICAgICAgICAgaWYgKG1fZWxlbWVudC5z
aGFkb3dSb290KCkgJiYgZmVhdHVyZXMucHNldWRvQ2xhc3Nlc0FmZmVjdGluZ0hvc3QuY29udGFp
bnMocHNldWRvQ2xhc3MpKQogICAgICAgICAgICAgc2hvdWxkSW52YWxpZGF0ZUN1cnJlbnQgPSB0
cnVlOwpAQCAtNTIsMjQgKzcxLDM0IEBAIHZvaWQgUHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRp
b246OmNvbXB1dGVJbnZhbGlkYXRpb24oQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzCiAgICAgaWYg
KHNob3VsZEludmFsaWRhdGVDdXJyZW50KQogICAgICAgICBtX2VsZW1lbnQuaW52YWxpZGF0ZVN0
eWxlKCk7CiAKKyAgICBmb3IgKGF1dG8mIGtleSA6IG1ha2VQc2V1ZG9DbGFzc0ludmFsaWRhdGlv
bktleXMocHNldWRvQ2xhc3MsIG1fZWxlbWVudCkpCisgICAgICAgIGNvbGxlY3RSdWxlU2V0cyhr
ZXksIGludmFsaWRhdGlvblNjb3BlKTsKK30KKwordm9pZCBQc2V1ZG9DbGFzc0NoYW5nZUludmFs
aWRhdGlvbjo6Y29sbGVjdFJ1bGVTZXRzKGNvbnN0IFBzZXVkb0NsYXNzSW52YWxpZGF0aW9uS2V5
JiBwc2V1ZG9DbGFzc0tleSwgSW52YWxpZGF0aW9uU2NvcGUgaW52YWxpZGF0aW9uU2NvcGUpCit7
CiAgICAgYXV0byYgcnVsZVNldHMgPSBtX2VsZW1lbnQuc3R5bGVSZXNvbHZlcigpLnJ1bGVTZXRz
KCk7Ci0gICAgaWYgKGF1dG8qIGludmFsaWRhdGlvblJ1bGVTZXRzID0gcnVsZVNldHMucHNldWRv
Q2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0cyhwc2V1ZG9DbGFzcykpIHsKKyAgICBpZiAoYXV0byog
aW52YWxpZGF0aW9uUnVsZVNldHMgPSBydWxlU2V0cy5wc2V1ZG9DbGFzc0ludmFsaWRhdGlvblJ1
bGVTZXRzKHBzZXVkb0NsYXNzS2V5KSkgewogICAgICAgICBmb3IgKGF1dG8mIGludmFsaWRhdGlv
blJ1bGVTZXQgOiAqaW52YWxpZGF0aW9uUnVsZVNldHMpIHsKICAgICAgICAgICAgIC8vIEZvciBm
b2N1cy9ob3ZlciB3ZSBmbGlwIHRoZSB3aG9sZSBhbmNlc3RvciBjaGFpbi4gV2Ugb25seSBuZWVk
IHRvIGRvIGRlZXAgaW52YWxpZGF0aW9uIHRyYXZlcnNhbCBpbiB0aGUgY2hhbmdlIHJvb3QuCiAg
ICAgICAgICAgICBhdXRvIHNob3VsZEludmFsaWRhdGUgPSBbJl0geworICAgICAgICAgICAgICAg
IGJvb2wgaGFzQ2xhc3NPcklES2V5ID0gIXN0ZDo6Z2V0PDE+KHBzZXVkb0NsYXNzS2V5KS5pc0Vt
cHR5KCk7CisgICAgICAgICAgICAgICAgYm9vbCBpbnZhbGlkYXRlc0FsbERlc2NlbmRhbnRzID0g
aW52YWxpZGF0aW9uUnVsZVNldC5tYXRjaEVsZW1lbnQgPT0gTWF0Y2hFbGVtZW50OjpBbmNlc3Rv
ciAmJiAhaGFzQ2xhc3NPcklES2V5OwogICAgICAgICAgICAgICAgIHN3aXRjaCAoaW52YWxpZGF0
aW9uU2NvcGUpIHsKICAgICAgICAgICAgICAgICBjYXNlIEludmFsaWRhdGlvblNjb3BlOjpBbGw6
CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgICAgIGNhc2Ug
SW52YWxpZGF0aW9uU2NvcGU6OlNlbGZDaGlsZHJlbkFuZFNpYmxpbmdzOgotICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gaW52YWxpZGF0aW9uUnVsZVNldC5tYXRjaEVsZW1lbnQgIT0gTWF0Y2hF
bGVtZW50OjpBbmNlc3RvcjsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuICFpbnZhbGlkYXRl
c0FsbERlc2NlbmRhbnRzOwogICAgICAgICAgICAgICAgIGNhc2UgSW52YWxpZGF0aW9uU2NvcGU6
OkRlc2NlbmRhbnRzOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gaW52YWxpZGF0aW9uUnVs
ZVNldC5tYXRjaEVsZW1lbnQgPT0gTWF0Y2hFbGVtZW50OjpBbmNlc3RvcjsKKyAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGludmFsaWRhdGVzQWxsRGVzY2VuZGFudHM7CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgICAgICAgICAgfSgpOwogICAgICAgICAgICAgaWYgKCFzaG91
bGRJbnZhbGlkYXRlKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgICAgICBX
VEZMb2dBbHdheXMoImludmFsaWRhdGlvblJ1bGVTZXQucnVsZVNldC0+cnVsZUNvdW50KCkpICV1
IiwgaW52YWxpZGF0aW9uUnVsZVNldC5ydWxlU2V0LT5ydWxlQ291bnQoKSk7CiAgICAgICAgICAg
ICBJbnZhbGlkYXRvcjo6YWRkVG9NYXRjaEVsZW1lbnRSdWxlU2V0cyhtX21hdGNoRWxlbWVudFJ1
bGVTZXRzLCBpbnZhbGlkYXRpb25SdWxlU2V0KTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1BzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oCmlu
ZGV4IDU0NTkxYWJkYmRlMGU3ZWE0N2IyMGI3N2MyYmIwMTZmYzlhYjAxMTQuLjgzMDFhNDQ1OTBj
YWMxZWQ1ZmIwNGY1MWQ2MzJhOGU5ZjA4Y2JjZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1BzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvUHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uaApAQCAtNDAsNiArNDAsNyBA
QCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9pZCBjb21wdXRlSW52YWxpZGF0aW9uKENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUsIFN0eWxlOjpJbnZhbGlkYXRpb25TY29wZSk7CisgICAg
dm9pZCBjb2xsZWN0UnVsZVNldHMoY29uc3QgUHNldWRvQ2xhc3NJbnZhbGlkYXRpb25LZXkmLCBJ
bnZhbGlkYXRpb25TY29wZSk7CiAgICAgdm9pZCBpbnZhbGlkYXRlU3R5bGVXaXRoUnVsZVNldHMo
KTsKIAogICAgIGNvbnN0IGJvb2wgbV9pc0VuYWJsZWQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9SdWxlRmVhdHVyZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVh
dHVyZS5jcHAKaW5kZXggNzZkYzQyYjFhMWU2NjFhODVhY2E2Y2EyMWJiN2Y4NmQwOTJlZmQ0MS4u
NTRkZWY3ZWExYTM5MmVlNmJiY2I1OTIxMzRlZDAxMTE2ZjFkOTJjOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvUnVsZUZlYXR1cmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1J1bGVGZWF0dXJlLmNwcApAQCAtMjI3LDcgKzIyNyw3IEBAIHZvaWQgUnVsZUZlYXR1cmVT
ZXQ6OnJlY3Vyc2l2ZWx5Q29sbGVjdEZlYXR1cmVzRnJvbVNlbGVjdG9yKFNlbGVjdG9yRmVhdHVy
ZXMmIHNlCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0g
ZWxzZSBpZiAoc2VsZWN0b3ItPm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKQot
ICAgICAgICAgICAgc2VsZWN0b3JGZWF0dXJlcy5wc2V1ZG9DbGFzc2VzLmFwcGVuZChzdGQ6Om1h
a2VfcGFpcihzZWxlY3Rvci0+cHNldWRvQ2xhc3NUeXBlKCksIG1hdGNoRWxlbWVudCkpOworICAg
ICAgICAgICAgc2VsZWN0b3JGZWF0dXJlcy5wc2V1ZG9DbGFzc2VzLmFwcGVuZChzdGQ6Om1ha2Vf
cGFpcihzZWxlY3RvciwgbWF0Y2hFbGVtZW50KSk7CiAKICAgICAgICAgaWYgKCFzZWxlY3RvckZl
YXR1cmVzLmhhc1NpYmxpbmdTZWxlY3RvciAmJiBzZWxlY3Rvci0+aXNTaWJsaW5nU2VsZWN0b3Io
KSkKICAgICAgICAgICAgIHNlbGVjdG9yRmVhdHVyZXMuaGFzU2libGluZ1NlbGVjdG9yID0gdHJ1
ZTsKQEAgLTI0Nyw2ICsyNDcsMzUgQEAgdm9pZCBSdWxlRmVhdHVyZVNldDo6cmVjdXJzaXZlbHlD
b2xsZWN0RmVhdHVyZXNGcm9tU2VsZWN0b3IoU2VsZWN0b3JGZWF0dXJlcyYgc2UKICAgICB9IHdo
aWxlIChzZWxlY3Rvcik7CiB9CiAKK1BzZXVkb0NsYXNzSW52YWxpZGF0aW9uS2V5IG1ha2VQc2V1
ZG9DbGFzc0ludmFsaWRhdGlvbktleShDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlIHBzZXVk
b0NsYXNzLCBjb25zdCBBdG9tU3RyaW5nJiBjbGFzc09ySUQpCit7CisgICAgY29uc3RleHByIGJv
b2wgaXNOb25FbXB0eVZhbHVlID0gdHJ1ZTsKKyAgICByZXR1cm4geworICAgICAgICBwc2V1ZG9D
bGFzcywKKyAgICAgICAgY2xhc3NPcklELmlzTnVsbCgpID8gZW1wdHlBdG9tKCkgOiBjbGFzc09y
SUQsCisgICAgICAgIGlzTm9uRW1wdHlWYWx1ZQorICAgIH07Cit9OworCitzdGF0aWMgUHNldWRv
Q2xhc3NJbnZhbGlkYXRpb25LZXkgbWFrZVBzZXVkb0NsYXNzSW52YWxpZGF0aW9uS2V5KGNvbnN0
IENTU1NlbGVjdG9yJiBzZWxlY3RvcikKK3sKKyAgICBBU1NFUlQoc2VsZWN0b3IubWF0Y2goKSA9
PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MpOworCisgICAgQXRvbVN0cmluZyBjbGFzc09ySUQ7
CisgICAgZm9yIChhdXRvKiBzaW1wbGVTZWxlY3RvciA9IHNlbGVjdG9yLmZpcnN0SW5Db21wb3Vu
ZCgpOyBzaW1wbGVTZWxlY3Rvcjsgc2ltcGxlU2VsZWN0b3IgPSBzaW1wbGVTZWxlY3Rvci0+dGFn
SGlzdG9yeSgpKSB7CisgICAgICAgIGlmIChzaW1wbGVTZWxlY3Rvci0+bWF0Y2goKSA9PSBDU1NT
ZWxlY3Rvcjo6SWQpIHsKKyAgICAgICAgICAgIGNsYXNzT3JJRCA9IHNpbXBsZVNlbGVjdG9yLT52
YWx1ZSgpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgaWYgKHNpbXBs
ZVNlbGVjdG9yLT5tYXRjaCgpID09IENTU1NlbGVjdG9yOjpDbGFzcykKKyAgICAgICAgICAgIGNs
YXNzT3JJRCA9IHNpbXBsZVNlbGVjdG9yLT52YWx1ZSgpOworCisgICAgICAgIGlmIChzaW1wbGVT
ZWxlY3Rvci0+cmVsYXRpb24oKSAhPSBDU1NTZWxlY3Rvcjo6U3Vic2VsZWN0b3IpCisgICAgICAg
ICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuIG1ha2VQc2V1ZG9DbGFzc0ludmFsaWRhdGlv
bktleShzZWxlY3Rvci5wc2V1ZG9DbGFzc1R5cGUoKSwgY2xhc3NPcklEKTsKK307CisKIHZvaWQg
UnVsZUZlYXR1cmVTZXQ6OmNvbGxlY3RGZWF0dXJlcyhjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEp
CiB7CiAgICAgU2VsZWN0b3JGZWF0dXJlcyBzZWxlY3RvckZlYXR1cmVzOwpAQCAtMjg3LDcgKzMx
NiwxOSBAQCB2b2lkIFJ1bGVGZWF0dXJlU2V0Ojpjb2xsZWN0RmVhdHVyZXMoY29uc3QgUnVsZURh
dGEmIHJ1bGVEYXRhKQogICAgICAgICBzZXRVc2VzTWF0Y2hFbGVtZW50KG1hdGNoRWxlbWVudCk7
CiAgICAgfQogCi0gICAgYWRkVG9NYXAocHNldWRvQ2xhc3NSdWxlcywgc2VsZWN0b3JGZWF0dXJl
cy5wc2V1ZG9DbGFzc2VzLCAmcHNldWRvQ2xhc3Nlc0FmZmVjdGluZ0hvc3QpOworICAgIGZvciAo
YXV0byYgc2VsZWN0b3JBbmRNYXRjaCA6IHNlbGVjdG9yRmVhdHVyZXMucHNldWRvQ2xhc3Nlcykg
eworICAgICAgICBhdXRvKiBzZWxlY3RvciA9IHNlbGVjdG9yQW5kTWF0Y2guZmlyc3Q7CisgICAg
ICAgIGF1dG8gbWF0Y2hFbGVtZW50ID0gc2VsZWN0b3JBbmRNYXRjaC5zZWNvbmQ7CisgICAgICAg
IHBzZXVkb0NsYXNzUnVsZXMuZW5zdXJlKG1ha2VQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleSgq
c2VsZWN0b3IpLCBbXSB7CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxWZWN0b3I8UnVs
ZUZlYXR1cmU+PigpOworICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWUtPmFwcGVuZCh7IHJ1bGVE
YXRhLCBtYXRjaEVsZW1lbnQgfSk7CisKKyAgICAgICAgaWYgKG1hdGNoRWxlbWVudCA9PSBNYXRj
aEVsZW1lbnQ6Okhvc3QpCisgICAgICAgICAgICBwc2V1ZG9DbGFzc2VzQWZmZWN0aW5nSG9zdC5h
ZGQoc2VsZWN0b3ItPnBzZXVkb0NsYXNzVHlwZSgpKTsKKyAgICAgICAgcHNldWRvQ2xhc3NUeXBl
cy5hZGQoc2VsZWN0b3ItPnBzZXVkb0NsYXNzVHlwZSgpKTsKKworICAgICAgICBzZXRVc2VzTWF0
Y2hFbGVtZW50KG1hdGNoRWxlbWVudCk7CisgICAgfQogfQogCiB2b2lkIFJ1bGVGZWF0dXJlU2V0
OjphZGQoY29uc3QgUnVsZUZlYXR1cmVTZXQmIG90aGVyKQpAQCAtMzE5LDYgKzM2MCw3IEBAIHZv
aWQgUnVsZUZlYXR1cmVTZXQ6OmFkZChjb25zdCBSdWxlRmVhdHVyZVNldCYgb3RoZXIpCiAKICAg
ICBhZGRNYXAocHNldWRvQ2xhc3NSdWxlcywgb3RoZXIucHNldWRvQ2xhc3NSdWxlcyk7CiAgICAg
cHNldWRvQ2xhc3Nlc0FmZmVjdGluZ0hvc3QuYWRkKG90aGVyLnBzZXVkb0NsYXNzZXNBZmZlY3Rp
bmdIb3N0LmJlZ2luKCksIG90aGVyLnBzZXVkb0NsYXNzZXNBZmZlY3RpbmdIb3N0LmVuZCgpKTsK
KyAgICBwc2V1ZG9DbGFzc1R5cGVzLmFkZChvdGhlci5wc2V1ZG9DbGFzc1R5cGVzLmJlZ2luKCks
IG90aGVyLnBzZXVkb0NsYXNzVHlwZXMuZW5kKCkpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCB1c2VkTWF0Y2hFbGVtZW50cy5zaXplKCk7ICsraSkKICAgICAgICAgdXNlZE1hdGNoRWxl
bWVudHNbaV0gPSB1c2VkTWF0Y2hFbGVtZW50c1tpXSB8fCBvdGhlci51c2VkTWF0Y2hFbGVtZW50
c1tpXTsKQEAgLTM1MSw2ICszOTMsNyBAQCB2b2lkIFJ1bGVGZWF0dXJlU2V0OjpjbGVhcigpCiAg
ICAgYXR0cmlidXRlc0FmZmVjdGluZ0hvc3QuY2xlYXIoKTsKICAgICBwc2V1ZG9DbGFzc1J1bGVz
LmNsZWFyKCk7CiAgICAgcHNldWRvQ2xhc3Nlc0FmZmVjdGluZ0hvc3QuY2xlYXIoKTsKKyAgICBw
c2V1ZG9DbGFzc1R5cGVzLmNsZWFyKCk7CiAgICAgdXNlc0ZpcnN0TGluZVJ1bGVzID0gZmFsc2U7
CiAgICAgdXNlc0ZpcnN0TGV0dGVyUnVsZXMgPSBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1J1bGVGZWF0dXJlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxl
RmVhdHVyZS5oCmluZGV4IGU4YTkxOTFiZTUxMmUxZjA3YmE1MmQ4OTEzNGFkZjQxMDY5NDdiZTMu
LmI2YWRjYzVhNTc0YmViYWM5YTEyYTg0ODk2OWRjNWRmY2QyNTBmMDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVGZWF0dXJlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvUnVsZUZlYXR1cmUuaApAQCAtNzQsNiArNzQsOCBAQCBzdHJ1Y3QgUnVsZUZlYXR1cmVXaXRo
SW52YWxpZGF0aW9uU2VsZWN0b3IgOiBwdWJsaWMgUnVsZUZlYXR1cmUgewogICAgIGNvbnN0IENT
U1NlbGVjdG9yKiBpbnZhbGlkYXRpb25TZWxlY3RvciB7IG51bGxwdHIgfTsKIH07CiAKK3VzaW5n
IFBzZXVkb0NsYXNzSW52YWxpZGF0aW9uS2V5ID0gc3RkOjp0dXBsZTx1bnNpZ25lZCwgQXRvbVN0
cmluZywgYm9vbD47CisKIHVzaW5nIFJ1bGVGZWF0dXJlVmVjdG9yID0gVmVjdG9yPFJ1bGVGZWF0
dXJlPjsKIAogc3RydWN0IFJ1bGVGZWF0dXJlU2V0IHsKQEAgLTk4LDEwICsxMDAsMTEgQEAgc3Ry
dWN0IFJ1bGVGZWF0dXJlU2V0IHsKICAgICBIYXNoTWFwPEF0b21TdHJpbmcsIHN0ZDo6dW5pcXVl
X3B0cjxSdWxlRmVhdHVyZVZlY3Rvcj4+IGlkUnVsZXM7CiAgICAgSGFzaE1hcDxBdG9tU3RyaW5n
LCBzdGQ6OnVuaXF1ZV9wdHI8UnVsZUZlYXR1cmVWZWN0b3I+PiBjbGFzc1J1bGVzOwogICAgIEhh
c2hNYXA8QXRvbVN0cmluZywgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxSdWxlRmVhdHVyZVdpdGhJ
bnZhbGlkYXRpb25TZWxlY3Rvcj4+PiBhdHRyaWJ1dGVSdWxlczsKLSAgICBIYXNoTWFwPENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUsIHN0ZDo6dW5pcXVlX3B0cjxSdWxlRmVhdHVyZVZlY3Rv
cj4sIEludEhhc2g8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZT4sIFdURjo6U3Ryb25nRW51
bUhhc2hUcmFpdHM8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZT4+IHBzZXVkb0NsYXNzUnVs
ZXM7CisgICAgSGFzaE1hcDxQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleSwgc3RkOjp1bmlxdWVf
cHRyPFJ1bGVGZWF0dXJlVmVjdG9yPj4gcHNldWRvQ2xhc3NSdWxlczsKICAgICBIYXNoU2V0PEF0
b21TdHJpbmc+IGNsYXNzZXNBZmZlY3RpbmdIb3N0OwogICAgIEhhc2hTZXQ8QXRvbVN0cmluZz4g
YXR0cmlidXRlc0FmZmVjdGluZ0hvc3Q7CiAgICAgSGFzaFNldDxDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3NUeXBlLCBJbnRIYXNoPENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGU+LCBXVEY6OlN0
cm9uZ0VudW1IYXNoVHJhaXRzPENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGU+PiBwc2V1ZG9D
bGFzc2VzQWZmZWN0aW5nSG9zdDsKKyAgICBIYXNoU2V0PENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFz
c1R5cGUsIEludEhhc2g8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZT4sIFdURjo6U3Ryb25n
RW51bUhhc2hUcmFpdHM8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZT4+IHBzZXVkb0NsYXNz
VHlwZXM7CiAKICAgICBzdGQ6OmFycmF5PGJvb2wsIG1hdGNoRWxlbWVudENvdW50PiB1c2VkTWF0
Y2hFbGVtZW50cyB7IH07CiAKQEAgLTExNiwxMyArMTE5LDE0IEBAIHByaXZhdGU6CiAgICAgICAg
IFZlY3RvcjxzdGQ6OnBhaXI8QXRvbVN0cmluZywgTWF0Y2hFbGVtZW50PiwgMzI+IGlkczsKICAg
ICAgICAgVmVjdG9yPHN0ZDo6cGFpcjxBdG9tU3RyaW5nLCBNYXRjaEVsZW1lbnQ+LCAzMj4gY2xh
c3NlczsKICAgICAgICAgVmVjdG9yPHN0ZDo6cGFpcjxjb25zdCBDU1NTZWxlY3RvciosIE1hdGNo
RWxlbWVudD4sIDMyPiBhdHRyaWJ1dGVzOwotICAgICAgICBWZWN0b3I8c3RkOjpwYWlyPENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUsIE1hdGNoRWxlbWVudD4sIDMyPiBwc2V1ZG9DbGFzc2Vz
OworICAgICAgICBWZWN0b3I8c3RkOjpwYWlyPGNvbnN0IENTU1NlbGVjdG9yKiwgTWF0Y2hFbGVt
ZW50PiwgMzI+IHBzZXVkb0NsYXNzZXM7CiAgICAgfTsKICAgICB2b2lkIHJlY3Vyc2l2ZWx5Q29s
bGVjdEZlYXR1cmVzRnJvbVNlbGVjdG9yKFNlbGVjdG9yRmVhdHVyZXMmLCBjb25zdCBDU1NTZWxl
Y3RvciYsIE1hdGNoRWxlbWVudCA9IE1hdGNoRWxlbWVudDo6U3ViamVjdCk7CiB9OwogCiBib29s
IGlzSGFzUHNldWRvQ2xhc3NNYXRjaEVsZW1lbnQoTWF0Y2hFbGVtZW50KTsKIE1hdGNoRWxlbWVu
dCBjb21wdXRlSGFzUHNldWRvQ2xhc3NNYXRjaEVsZW1lbnQoY29uc3QgQ1NTU2VsZWN0b3ImKTsK
K1BzZXVkb0NsYXNzSW52YWxpZGF0aW9uS2V5IG1ha2VQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktl
eShDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlLCBjb25zdCBBdG9tU3RyaW5nJiBjbGFzc09y
SUQpOwogCiB9IC8vIG5hbWVzcGFjZSBTdHlsZQogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKaW5kZXggNGY5YTBkNDEy
MjQ3ZDZmYjllZThjZjBhZGE3YTg2MjAzN2Q4MzFlYS4uZjU0ZjM2MGFiMmFmNWZhY2ZiNTI4YWQ1
NjQzZTAwNWEyOTRjNDA2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVT
Y29wZVJ1bGVTZXRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVs
ZVNldHMuY3BwCkBAIC0yOTUsOSArMjk1LDkgQEAgY29uc3QgVmVjdG9yPEludmFsaWRhdGlvblJ1
bGVTZXQ+KiBTY29wZVJ1bGVTZXRzOjphdHRyaWJ1dGVJbnZhbGlkYXRpb25SdWxlU2V0cygKICAg
ICByZXR1cm4gZW5zdXJlSW52YWxpZGF0aW9uUnVsZVNldHMoYXR0cmlidXRlTmFtZSwgbV9hdHRy
aWJ1dGVJbnZhbGlkYXRpb25SdWxlU2V0cywgbV9mZWF0dXJlcy5hdHRyaWJ1dGVSdWxlcyk7CiB9
CiAKLWNvbnN0IFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogU2NvcGVSdWxlU2V0czo6cHNl
dWRvQ2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0cyhDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBl
IHBzZXVkb0NsYXNzKSBjb25zdAorY29uc3QgVmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+KiBT
Y29wZVJ1bGVTZXRzOjpwc2V1ZG9DbGFzc0ludmFsaWRhdGlvblJ1bGVTZXRzKGNvbnN0IFBzZXVk
b0NsYXNzSW52YWxpZGF0aW9uS2V5JiBwc2V1ZG9DbGFzc0tleSkgY29uc3QKIHsKLSAgICByZXR1
cm4gZW5zdXJlSW52YWxpZGF0aW9uUnVsZVNldHMocHNldWRvQ2xhc3MsIG1fcHNldWRvQ2xhc3NJ
bnZhbGlkYXRpb25SdWxlU2V0cywgbV9mZWF0dXJlcy5wc2V1ZG9DbGFzc1J1bGVzKTsKKyAgICBy
ZXR1cm4gZW5zdXJlSW52YWxpZGF0aW9uUnVsZVNldHMocHNldWRvQ2xhc3NLZXksIG1fcHNldWRv
Q2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0cywgbV9mZWF0dXJlcy5wc2V1ZG9DbGFzc1J1bGVzKTsK
IH0KIAogYm9vbCBTY29wZVJ1bGVTZXRzOjpoYXNDb21wbGV4U2VsZWN0b3JzRm9yU3R5bGVBdHRy
aWJ1dGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29w
ZVJ1bGVTZXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaApp
bmRleCBjMTIzMTM4N2RhMjQwY2FiOWQ2ODcyZTE3MmQ0OTcwNmVmYmNlYzdiLi42ZTg1Nzc1ZmVk
NGQ1YmE3NTE0Mjg4NjIxN2JjM2IxNGNlYWJmNGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVNjb3BlUnVsZVNldHMuaApAQCAtNjcsNyArNjcsNyBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
VmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+KiBpZEludmFsaWRhdGlvblJ1bGVTZXRzKGNvbnN0
IEF0b21TdHJpbmcmKSBjb25zdDsKICAgICBjb25zdCBWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNl
dD4qIGNsYXNzSW52YWxpZGF0aW9uUnVsZVNldHMoY29uc3QgQXRvbVN0cmluZyYpIGNvbnN0Owog
ICAgIGNvbnN0IFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogYXR0cmlidXRlSW52YWxpZGF0
aW9uUnVsZVNldHMoY29uc3QgQXRvbVN0cmluZyYpIGNvbnN0OwotICAgIGNvbnN0IFZlY3RvcjxJ
bnZhbGlkYXRpb25SdWxlU2V0PiogcHNldWRvQ2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0cyhDU1NT
ZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlKSBjb25zdDsKKyAgICBjb25zdCBWZWN0b3I8SW52YWxp
ZGF0aW9uUnVsZVNldD4qIHBzZXVkb0NsYXNzSW52YWxpZGF0aW9uUnVsZVNldHMoY29uc3QgUHNl
dWRvQ2xhc3NJbnZhbGlkYXRpb25LZXkmKSBjb25zdDsKIAogICAgIGNvbnN0IFZlY3RvcjxJbnZh
bGlkYXRpb25SdWxlU2V0PiogaW52YWxpZGF0aW9uUnVsZVNldHNGb3JDaGlsZENoYW5nZShjb25z
dCBFbGVtZW50Jik7CiAKQEAgLTEwNiw3ICsxMDYsNyBAQCBwcml2YXRlOgogICAgIG11dGFibGUg
SGFzaE1hcDxBdG9tU3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEludmFsaWRhdGlvblJ1
bGVTZXQ+Pj4gbV9pZEludmFsaWRhdGlvblJ1bGVTZXRzOwogICAgIG11dGFibGUgSGFzaE1hcDxB
dG9tU3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+Pj4g
bV9jbGFzc0ludmFsaWRhdGlvblJ1bGVTZXRzOwogICAgIG11dGFibGUgSGFzaE1hcDxBdG9tU3Ry
aW5nLCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+Pj4gbV9hdHRy
aWJ1dGVJbnZhbGlkYXRpb25SdWxlU2V0czsKLSAgICBtdXRhYmxlIEhhc2hNYXA8Q1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzVHlwZSwgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxJbnZhbGlkYXRpb25S
dWxlU2V0Pj4sIEludEhhc2g8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZT4sIFdURjo6U3Ry
b25nRW51bUhhc2hUcmFpdHM8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZT4+IG1fcHNldWRv
Q2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0czsKKyAgICBtdXRhYmxlIEhhc2hNYXA8UHNldWRvQ2xh
c3NJbnZhbGlkYXRpb25LZXksIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8SW52YWxpZGF0aW9uUnVs
ZVNldD4+PiBtX3BzZXVkb0NsYXNzSW52YWxpZGF0aW9uUnVsZVNldHM7CiAKICAgICBtdXRhYmxl
IHN0ZDo6b3B0aW9uYWw8Ym9vbD4gbV9jYWNoZWRIYXNDb21wbGV4U2VsZWN0b3JzRm9yU3R5bGVB
dHRyaWJ1dGU7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446071</attachid>
            <date>2021-12-06 12:53:18 -0800</date>
            <delta_ts>2021-12-07 00:31:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233883-20211206225317.patch</filename>
            <type>text/plain</type>
            <size>24749</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjVhMDgyNGJiN2M3ODUw
NzRhZjgxMzY1OTEwNjEwMGRiZTNmMDVhMC4uM2M3NzkwNzNhMjcwNDc3ZjkzMzIwNzFkMTAzY2Qx
YjJkNjc5ZDk4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTEyLTA2ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgbW9yZSBzcGVjaWZp
YyBrZXlzIGZvciBwc2V1ZG8tY2xhc3MgaW52YWxpZGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM4ODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgcHNldWRvLWNsYXNzIGludmFs
aWRhdGlvbiBpcyBrZXllZCB3aXRoIHBzZXVkby1jbGFzcyB0eXBlIG9ubHkuIElmIHdlIGhhdmUg
cnVsZSBsaWtlCisKKyAgICAgICAgLmZvbzpob3ZlciB7IC4uLiB9CisKKyAgICAgICAgd2UgZW5k
IHVwIGNvbnNpZGVyaW5nIHRoaXMgcnVsZSBmb3IgZXZlcnkgZWxlbWVudCB3aGVuZXZlciA6aG92
ZXIgc3RhdGUgY2hhbmdlcywgd2hldGhlciB0aGUgZWxlbWVudCBoYXMgY2xhc3MgJ2Zvbycgb3Ig
bm90LgorCisgICAgICAgIFdlIGNhbiBpbXByb3ZlIHRoaXMgYnkga2V5aW5nIHBzZXVkby1jbGFz
cyBpbnZhbGlkYXRpb24gbW9yZSBuYXJyb3dseSB3aXRoIHR5cGUvY2xhc3MsIHR5cGUvaWQgb3Ig
dHlwZS90YWcgcGFpcnMuCisKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OkNTU1NlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1NlbGVjdG9yOjpmaXJzdEluQ29tcG91bmQgY29uc3QpOgorCisgICAgICAgIEFkZCBhIGZ1
bmN0aW9uIHRvIGZpbmQgdGhlIHN0YXJ0IG9mIGEgY29tcG91bmQgc2VsZWN0b3IuCisKKyAgICAg
ICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjp0
YWdIaXN0b3J5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjppc0ZpcnN0
SW5UYWdIaXN0b3J5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpzZXRO
b3RGaXJzdEluVGFnSGlzdG9yeSk6CisKKyAgICAgICAgQWRkIGlzRmlyc3RJblRhZ0hpc3Rvcnkg
Yml0LCBzaW1pbGFyIHRvIHRoZSBpc0xhc3RJblRhZ0hpc3RvcnkgYml0LCB0byBlbmFibGUgZmly
c3RJbkNvbXBvdW5kLgorCisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6Q1NTU2VsZWN0
b3IpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTU2VsZWN0b3JMaXN0OjpDU1NTZWxlY3Rvckxpc3QpOgorCisgICAgICAgIFNldCB0aGUg
Yml0LgorCisgICAgICAgICogc3R5bGUvUHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6Om1ha2VQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktl
eXMpOgorCisgICAgICAgIENvbGxlY3QgdGhlIGlkLCB0YWcgYW5kIGNsYXNzZXMgZnJvbSB0aGUg
ZWxlbWVudCBhbmQgbWFrZSBrZXlzIG91dCBvZiB0aGVtLgorCisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6UHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb246OmNvbXB1dGVJbnZhbGlkYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlBzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9u
Ojpjb2xsZWN0UnVsZVNldHMpOgorCisgICAgICAgIFVzZSB0aGUga2V5cyB0byBsb29rIHVwIGZv
ciBtYXRjaGluZyBpbnZhbGlkYXRpb24gcnVsZXNldHMuCisKKyAgICAgICAgKiBzdHlsZS9Qc2V1
ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oOgorICAgICAgICAqIHN0eWxlL1J1bGVGZWF0dXJl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlRmVhdHVyZVNldDo6cmVjdXJzaXZl
bHlDb2xsZWN0RmVhdHVyZXNGcm9tU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
Om1ha2VQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleSk6CisKKyAgICAgICAgTWFrZSBhIGtleSBv
dXQgb2YgYSBzZWxlY3Rvci4KKyAgICAgICAgU2VhcmNoIHRoZSBjb21wb3VuZCBmb3IgaWQsIGNs
YXNzZXMgb3IgdGFnLgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZUZlYXR1cmVTZXQ6
OmNvbGxlY3RGZWF0dXJlcyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZUZlYXR1cmVT
ZXQ6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZUZlYXR1cmVTZXQ6OmNsZWFy
KToKKyAgICAgICAgKiBzdHlsZS9SdWxlRmVhdHVyZS5oOgorICAgICAgICAqIHN0eWxlL1N0eWxl
U2NvcGVSdWxlU2V0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2NvcGVSdWxlU2V0
czo6cHNldWRvQ2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0cyBjb25zdCk6CisgICAgICAgICogc3R5
bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmg6CisKIDIwMjEtMTItMDYgIEFudHRpIEtvaXZpc3RvICA8
YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0aW9uXSBVc2UgZW5kIGJp
dHMgaW4gdGV4dCBib3ggaXRlcmF0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4
IDc2ZjA5YzcwNzlkNGE4OWNjMzYzYzk2NjY3ZTViZWU3N2UzZDE1ZjMuLjc3MzViM2NmZDZjYjFj
MjQxMDg3Y2Y5MjFiM2Q2NWYyODRkYjA3NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNw
cApAQCAtNTYsNiArNTYsNyBAQCBDU1NTZWxlY3Rvcjo6Q1NTU2VsZWN0b3IoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnUU5hbWUsIGJvb2wgdGFnSXNGb3JOYW1lc3BhY2VSdQogICAgICwgbV9tYXRj
aChUYWcpCiAgICAgLCBtX3BzZXVkb1R5cGUoMCkKICAgICAsIG1faXNMYXN0SW5TZWxlY3Rvckxp
c3QoZmFsc2UpCisgICAgLCBtX2lzRmlyc3RJblRhZ0hpc3RvcnkodHJ1ZSkKICAgICAsIG1faXNM
YXN0SW5UYWdIaXN0b3J5KHRydWUpCiAgICAgLCBtX2hhc1JhcmVEYXRhKGZhbHNlKQogICAgICwg
bV9oYXNOYW1lV2l0aENhc2UoZmFsc2UpCkBAIC0yODgsNiArMjg5LDE4IEBAIENTU1NlbGVjdG9y
OjpQc2V1ZG9FbGVtZW50VHlwZSBDU1NTZWxlY3Rvcjo6cGFyc2VQc2V1ZG9FbGVtZW50VHlwZShT
dHJpbmdWaWV3IG5hCiAgICAgcmV0dXJuIHR5cGU7CiB9CiAKK2NvbnN0IENTU1NlbGVjdG9yKiBD
U1NTZWxlY3Rvcjo6Zmlyc3RJbkNvbXBvdW5kKCkgY29uc3QKK3sKKyAgICBhdXRvKiBzZWxlY3Rv
ciA9IHRoaXM7CisgICAgd2hpbGUgKCFzZWxlY3Rvci0+aXNGaXJzdEluVGFnSGlzdG9yeSgpKSB7
CisgICAgICAgIGF1dG8qIHByZXZpb3VzU2VsZWN0b3IgPSBzZWxlY3RvciAtIDE7CisgICAgICAg
IGlmIChwcmV2aW91c1NlbGVjdG9yLT5yZWxhdGlvbigpICE9IFN1YnNlbGVjdG9yKQorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIHNlbGVjdG9yID0gcHJldmlvdXNTZWxlY3RvcjsKKyAgICB9
CisgICAgcmV0dXJuIHNlbGVjdG9yOworfQorCiBib29sIENTU1NlbGVjdG9yOjpvcGVyYXRvcj09
KGNvbnN0IENTU1NlbGVjdG9yJiBvdGhlcikgY29uc3QKIHsKICAgICBjb25zdCBDU1NTZWxlY3Rv
ciogc2VsMSA9IHRoaXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IDRiYzQ3YjQzNjYx
N2VmNWQ1YzkzMzVkZTY5YzEzMWJhNTQzYjBmMTcuLmQ5OGYxMWE2MzlmN2RjNjI2ZmZkMTFjOTA1
NDgyOTZmYjUyMGRlYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC0yNTMsNyArMjUz
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIC8vIFNlbGVjdG9ycyBhcmUga2Vw
dCBpbiBhbiBhcnJheSBieSBDU1NTZWxlY3Rvckxpc3QuIFRoZSBuZXh0IGNvbXBvbmVudCBvZiB0
aGUgc2VsZWN0b3IgaXMKICAgICAgICAgLy8gdGhlIG5leHQgaXRlbSBpbiB0aGUgYXJyYXkuCi0g
ICAgICAgIGNvbnN0IENTU1NlbGVjdG9yKiB0YWdIaXN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9p
c0xhc3RJblRhZ0hpc3RvcnkgPyAwIDogY29uc3RfY2FzdDxDU1NTZWxlY3Rvcio+KHRoaXMgKyAx
KTsgfQorICAgICAgICBjb25zdCBDU1NTZWxlY3RvciogdGFnSGlzdG9yeSgpIGNvbnN0IHsgcmV0
dXJuIG1faXNMYXN0SW5UYWdIaXN0b3J5ID8gbnVsbHB0ciA6IHRoaXMgKyAxOyB9CisgICAgICAg
IGNvbnN0IENTU1NlbGVjdG9yKiBmaXJzdEluQ29tcG91bmQoKSBjb25zdDsKIAogICAgICAgICBj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdRTmFtZSgpIGNvbnN0OwogICAgICAgICBjb25zdCBBdG9t
U3RyaW5nJiB0YWdMb3dlcmNhc2VMb2NhbE5hbWUoKSBjb25zdDsKQEAgLTMzOSw3ICszNDAsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgYm9vbCBpc0xhc3RJblNlbGVjdG9yTGlz
dCgpIGNvbnN0IHsgcmV0dXJuIG1faXNMYXN0SW5TZWxlY3Rvckxpc3Q7IH0KICAgICAgICAgdm9p
ZCBzZXRMYXN0SW5TZWxlY3Rvckxpc3QoKSB7IG1faXNMYXN0SW5TZWxlY3Rvckxpc3QgPSB0cnVl
OyB9CisgICAgICAgIGJvb2wgaXNGaXJzdEluVGFnSGlzdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNGaXJzdEluVGFnSGlzdG9yeTsgfQogICAgICAgICBib29sIGlzTGFzdEluVGFnSGlzdG9yeSgp
IGNvbnN0IHsgcmV0dXJuIG1faXNMYXN0SW5UYWdIaXN0b3J5OyB9CisgICAgICAgIHZvaWQgc2V0
Tm90Rmlyc3RJblRhZ0hpc3RvcnkoKSB7IG1faXNGaXJzdEluVGFnSGlzdG9yeSA9IGZhbHNlOyB9
CiAgICAgICAgIHZvaWQgc2V0Tm90TGFzdEluVGFnSGlzdG9yeSgpIHsgbV9pc0xhc3RJblRhZ0hp
c3RvcnkgPSBmYWxzZTsgfQogCiAgICAgICAgIGJvb2wgaXNGb3JQYWdlKCkgY29uc3QgeyByZXR1
cm4gbV9pc0ZvclBhZ2U7IH0KQEAgLTM1MCw2ICszNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIG11dGFibGUgdW5zaWduZWQgbV9tYXRjaCAgICAgICAgIDogNDsgLy8gZW51bSBN
YXRjaC4KICAgICAgICAgbXV0YWJsZSB1bnNpZ25lZCBtX3BzZXVkb1R5cGUgICAgOiA4OyAvLyBQ
c2V1ZG9UeXBlLgogICAgICAgICB1bnNpZ25lZCBtX2lzTGFzdEluU2VsZWN0b3JMaXN0ICA6IDE7
CisgICAgICAgIHVuc2lnbmVkIG1faXNGaXJzdEluVGFnSGlzdG9yeSAgIDogMTsKICAgICAgICAg
dW5zaWduZWQgbV9pc0xhc3RJblRhZ0hpc3RvcnkgICAgOiAxOwogICAgICAgICB1bnNpZ25lZCBt
X2hhc1JhcmVEYXRhICAgICAgICAgICA6IDE7CiAgICAgICAgIHVuc2lnbmVkIG1faGFzTmFtZVdp
dGhDYXNlICAgICAgIDogMTsKQEAgLTQ2OCw2ICs0NzIsMjEgQEAgc3RhdGljIGlubGluZSBib29s
IGlzVHJlZVN0cnVjdHVyYWxQc2V1ZG9DbGFzcyhDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBl
IHR5cGUKICAgICByZXR1cm4gcHNldWRvQ2xhc3NJc1JlbGF0aXZlVG9TaWJsaW5ncyh0eXBlKSB8
fCB0eXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1Jvb3Q7CiB9CiAKK2lubGluZSBib29s
IGlzTG9naWNhbENvbWJpbmF0aW9uUHNldWRvQ2xhc3MoQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNz
VHlwZSBwc2V1ZG9DbGFzc1R5cGUpCit7CisgICAgc3dpdGNoIChwc2V1ZG9DbGFzc1R5cGUpIHsK
KyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0lzOgorICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzV2hlcmU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NO
b3Q6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NBbnk6CisgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvQ2xhc3NNYXRjaGVzOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0NsYXNzSGFzOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorfQorCiBpbmxpbmUgYm9vbCBDU1NTZWxlY3Rvcjo6aXNTaWJs
aW5nU2VsZWN0b3IoKSBjb25zdAogewogICAgIHJldHVybiByZWxhdGlvbigpID09IERpcmVjdEFk
amFjZW50CkBAIC01MTEsNiArNTMwLDcgQEAgaW5saW5lIENTU1NlbGVjdG9yOjpDU1NTZWxlY3Rv
cigpCiAgICAgLCBtX21hdGNoKFVua25vd24pCiAgICAgLCBtX3BzZXVkb1R5cGUoMCkKICAgICAs
IG1faXNMYXN0SW5TZWxlY3Rvckxpc3QoZmFsc2UpCisgICAgLCBtX2lzRmlyc3RJblRhZ0hpc3Rv
cnkodHJ1ZSkKICAgICAsIG1faXNMYXN0SW5UYWdIaXN0b3J5KHRydWUpCiAgICAgLCBtX2hhc1Jh
cmVEYXRhKGZhbHNlKQogICAgICwgbV9oYXNOYW1lV2l0aENhc2UoZmFsc2UpCkBAIC01MjgsNiAr
NTQ4LDcgQEAgaW5saW5lIENTU1NlbGVjdG9yOjpDU1NTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3Rv
ciYgbykKICAgICAsIG1fbWF0Y2goby5tX21hdGNoKQogICAgICwgbV9wc2V1ZG9UeXBlKG8ubV9w
c2V1ZG9UeXBlKQogICAgICwgbV9pc0xhc3RJblNlbGVjdG9yTGlzdChvLm1faXNMYXN0SW5TZWxl
Y3Rvckxpc3QpCisgICAgLCBtX2lzRmlyc3RJblRhZ0hpc3Rvcnkoby5tX2lzRmlyc3RJblRhZ0hp
c3RvcnkpCiAgICAgLCBtX2lzTGFzdEluVGFnSGlzdG9yeShvLm1faXNMYXN0SW5UYWdIaXN0b3J5
KQogICAgICwgbV9oYXNSYXJlRGF0YShvLm1faGFzUmFyZURhdGEpCiAgICAgLCBtX2hhc05hbWVX
aXRoQ2FzZShvLm1faGFzTmFtZVdpdGhDYXNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JM
aXN0LmNwcAppbmRleCBjYzA3M2I0YjExYzI1Y2RjMDUwZTczZjczYjM2NWI4YzYxNmQzZGJhLi40
NjQ5YWZjZDE0Yzg1NzAyODBlMjYyZjhhNTY4ODE5ZmMzOWY4YzhmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU2VsZWN0b3JMaXN0LmNwcApAQCAtNTUsNyArNTUsOCBAQCBDU1NTZWxlY3Rvckxpc3Q6
OkNTU1NlbGVjdG9yTGlzdChWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9y
Pj4mJiBzZQogICAgIG1fc2VsZWN0b3JBcnJheSA9IG1ha2VVbmlxdWVBcnJheTxDU1NTZWxlY3Rv
cj4oZmxhdHRlbmVkU2l6ZSk7CiAgICAgc2l6ZV90IGFycmF5SW5kZXggPSAwOwogICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgc2VsZWN0b3JWZWN0b3Iuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAg
Q1NTUGFyc2VyU2VsZWN0b3IqIGN1cnJlbnQgPSBzZWxlY3RvclZlY3RvcltpXS5nZXQoKTsKKyAg
ICAgICAgQ1NTUGFyc2VyU2VsZWN0b3IqIGZpcnN0ID0gc2VsZWN0b3JWZWN0b3JbaV0uZ2V0KCk7
CisgICAgICAgIENTU1BhcnNlclNlbGVjdG9yKiBjdXJyZW50ID0gZmlyc3Q7CiAgICAgICAgIHdo
aWxlIChjdXJyZW50KSB7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgLy8gTW92ZSBp
dGVtIGZyb20gdGhlIHBhcnNlciBzZWxlY3RvciB2ZWN0b3IgaW50byBtX3NlbGVjdG9yQXJyYXkg
d2l0aG91dCBpbnZva2luZyBkZXN0cnVjdG9yIChVZ2guKQpAQCAtNjUsNiArNjYsOCBAQCBDU1NT
ZWxlY3Rvckxpc3Q6OkNTU1NlbGVjdG9yTGlzdChWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1Bh
cnNlclNlbGVjdG9yPj4mJiBzZQogICAgICAgICAgICAgICAgIC8vIEZyZWUgdGhlIHVuZGVybHlp
bmcgbWVtb3J5IHdpdGhvdXQgaW52b2tpbmcgdGhlIGRlc3RydWN0b3IuCiAgICAgICAgICAgICAg
ICAgb3BlcmF0b3IgZGVsZXRlIChjdXJyZW50U2VsZWN0b3IpOwogICAgICAgICAgICAgfQorICAg
ICAgICAgICAgaWYgKGN1cnJlbnQgIT0gZmlyc3QpCisgICAgICAgICAgICAgICAgbV9zZWxlY3Rv
ckFycmF5W2FycmF5SW5kZXhdLnNldE5vdEZpcnN0SW5UYWdIaXN0b3J5KCk7CiAgICAgICAgICAg
ICBjdXJyZW50ID0gY3VycmVudC0+dGFnSGlzdG9yeSgpOwogICAgICAgICAgICAgQVNTRVJUKCFt
X3NlbGVjdG9yQXJyYXlbYXJyYXlJbmRleF0uaXNMYXN0SW5TZWxlY3Rvckxpc3QoKSk7CiAgICAg
ICAgICAgICBpZiAoY3VycmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NT
ZWxlY3RvclBhcnNlci5jcHAKaW5kZXggNWJhMTMxYjU4ODU5OGY1YTI3YmEzOGFhNjRhMDczNDk0
MTFhYzlhYS4uY2E3ZTljZGFmMTQ3OWFmYmEwNWYyMDJkNTljZDYyOGNhOTkyOTI2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKQEAgLTMy
MCwyMSArMzIwLDYgQEAgc3RhdGljIGJvb2wgaXNVc2VyQWN0aW9uUHNldWRvQ2xhc3MoQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSBwc2V1ZG8pCiAgICAgfQogfQogCi1zdGF0aWMgYm9vbCBp
c0xvZ2ljYWxDb21iaW5hdGlvblBzZXVkb0NsYXNzKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5
cGUgcHNldWRvKQotewotICAgIHN3aXRjaCAocHNldWRvKSB7Ci0gICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvQ2xhc3NJczoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1doZXJl
OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTm90OgotICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NsYXNzQW55OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNz
TWF0Y2hlczoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0hhczoKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0K
LX0KLQogc3RhdGljIGJvb2wgaXNQc2V1ZG9DbGFzc1ZhbGlkQWZ0ZXJQc2V1ZG9FbGVtZW50KENT
U1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUgcHNldWRvQ2xhc3MsIENTU1NlbGVjdG9yOjpQc2V1
ZG9FbGVtZW50VHlwZSBjb21wb3VuZFBzZXVkb0VsZW1lbnQpCiB7CiAgICAgLy8gVmFsaWRpdHkg
b2YgdGhlc2UgaXMgZGV0ZXJtaW5lZCBieSB0aGVpciBjb250ZW50LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvUHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvUHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uY3BwCmluZGV4
IDMzODI0NDQ0Zjc5ODJhZWE5ZjYzZTllYjE3MDlkYTdmZjkzMDJhOTAuLjE0OTAwNjVlYjM5MWM3
MzgzNmRmMDcxMmVjZWM4OWQyZDdhNTQ2ZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1BzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9Qc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5jcHAKQEAgLTMyLDEzICszMiwz
MiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIFN0eWxlIHsKIAorc3RhdGljIFZl
Y3RvcjxQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleSwgND4gbWFrZVBzZXVkb0NsYXNzSW52YWxp
ZGF0aW9uS2V5cyhDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlIHBzZXVkb0NsYXNzLCBjb25z
dCBFbGVtZW50JiBlbGVtZW50KQoreworICAgIFZlY3RvcjxQc2V1ZG9DbGFzc0ludmFsaWRhdGlv
bktleSwgND4ga2V5czsKKworICAgIGlmICghZWxlbWVudC5pZEZvclN0eWxlUmVzb2x1dGlvbigp
LmlzRW1wdHkoKSkKKyAgICAgICAga2V5cy5hcHBlbmQobWFrZVBzZXVkb0NsYXNzSW52YWxpZGF0
aW9uS2V5KHBzZXVkb0NsYXNzLCBJbnZhbGlkYXRpb25LZXlUeXBlOjpJZCwgZWxlbWVudC5pZEZv
clN0eWxlUmVzb2x1dGlvbigpKSk7CisKKyAgICBpZiAoZWxlbWVudC5oYXNDbGFzcygpKSB7Cisg
ICAgICAgIGF1dG8gY2xhc3NDb3VudCA9IGVsZW1lbnQuY2xhc3NOYW1lcygpLnNpemUoKTsKKyAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjbGFzc0NvdW50OyArK2kpCisgICAgICAgICAg
ICBrZXlzLmFwcGVuZChtYWtlUHNldWRvQ2xhc3NJbnZhbGlkYXRpb25LZXkocHNldWRvQ2xhc3Ms
IEludmFsaWRhdGlvbktleVR5cGU6OkNsYXNzLCBlbGVtZW50LmNsYXNzTmFtZXMoKVtpXSkpOwor
ICAgIH0KKworICAgIGtleXMuYXBwZW5kKG1ha2VQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleShw
c2V1ZG9DbGFzcywgSW52YWxpZGF0aW9uS2V5VHlwZTo6VGFnLCBlbGVtZW50LmxvY2FsTmFtZSgp
LmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCkpKTsKKyAgICBrZXlzLmFwcGVuZChtYWtlUHNldWRv
Q2xhc3NJbnZhbGlkYXRpb25LZXkocHNldWRvQ2xhc3MsIEludmFsaWRhdGlvbktleVR5cGU6OlVu
aXZlcnNhbCwgc3RhckF0b20oKSkpOworCisgICAgcmV0dXJuIGtleXM7Cit9OworCiB2b2lkIFBz
ZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uOjpjb21wdXRlSW52YWxpZGF0aW9uKENTU1NlbGVj
dG9yOjpQc2V1ZG9DbGFzc1R5cGUgcHNldWRvQ2xhc3MsIEludmFsaWRhdGlvblNjb3BlIGludmFs
aWRhdGlvblNjb3BlKQogewogICAgIGJvb2wgc2hvdWxkSW52YWxpZGF0ZUN1cnJlbnQgPSBmYWxz
ZTsKICAgICBib29sIG1heUFmZmVjdFN0eWxlSW5TaGFkb3dUcmVlID0gZmFsc2U7CiAKICAgICB0
cmF2ZXJzZVJ1bGVGZWF0dXJlcyhtX2VsZW1lbnQsIFsmXSAoY29uc3QgUnVsZUZlYXR1cmVTZXQm
IGZlYXR1cmVzLCBib29sIG1heUFmZmVjdFNoYWRvd1RyZWUpIHsKLSAgICAgICAgaWYgKG1heUFm
ZmVjdFNoYWRvd1RyZWUgJiYgZmVhdHVyZXMucHNldWRvQ2xhc3NSdWxlcy5jb250YWlucyhwc2V1
ZG9DbGFzcykpCisgICAgICAgIGlmIChtYXlBZmZlY3RTaGFkb3dUcmVlICYmIGZlYXR1cmVzLnBz
ZXVkb0NsYXNzVHlwZXMuY29udGFpbnMocHNldWRvQ2xhc3MpKQogICAgICAgICAgICAgbWF5QWZm
ZWN0U3R5bGVJblNoYWRvd1RyZWUgPSB0cnVlOwogICAgICAgICBpZiAobV9lbGVtZW50LnNoYWRv
d1Jvb3QoKSAmJiBmZWF0dXJlcy5wc2V1ZG9DbGFzc2VzQWZmZWN0aW5nSG9zdC5jb250YWlucyhw
c2V1ZG9DbGFzcykpCiAgICAgICAgICAgICBzaG91bGRJbnZhbGlkYXRlQ3VycmVudCA9IHRydWU7
CkBAIC01MiwyNiArNzEsMzYgQEAgdm9pZCBQc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbjo6
Y29tcHV0ZUludmFsaWRhdGlvbihDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MKICAgICBpZiAoc2hv
dWxkSW52YWxpZGF0ZUN1cnJlbnQpCiAgICAgICAgIG1fZWxlbWVudC5pbnZhbGlkYXRlU3R5bGUo
KTsKIAorICAgIGZvciAoYXV0byYga2V5IDogbWFrZVBzZXVkb0NsYXNzSW52YWxpZGF0aW9uS2V5
cyhwc2V1ZG9DbGFzcywgbV9lbGVtZW50KSkKKyAgICAgICAgY29sbGVjdFJ1bGVTZXRzKGtleSwg
aW52YWxpZGF0aW9uU2NvcGUpOworfQorCit2b2lkIFBzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0
aW9uOjpjb2xsZWN0UnVsZVNldHMoY29uc3QgUHNldWRvQ2xhc3NJbnZhbGlkYXRpb25LZXkmIGtl
eSwgSW52YWxpZGF0aW9uU2NvcGUgaW52YWxpZGF0aW9uU2NvcGUpCit7CiAgICAgYXV0byYgcnVs
ZVNldHMgPSBtX2VsZW1lbnQuc3R5bGVSZXNvbHZlcigpLnJ1bGVTZXRzKCk7Ci0gICAgaWYgKGF1
dG8qIGludmFsaWRhdGlvblJ1bGVTZXRzID0gcnVsZVNldHMucHNldWRvQ2xhc3NJbnZhbGlkYXRp
b25SdWxlU2V0cyhwc2V1ZG9DbGFzcykpIHsKLSAgICAgICAgZm9yIChhdXRvJiBpbnZhbGlkYXRp
b25SdWxlU2V0IDogKmludmFsaWRhdGlvblJ1bGVTZXRzKSB7Ci0gICAgICAgICAgICAvLyBGb3Ig
Zm9jdXMvaG92ZXIgd2UgZmxpcCB0aGUgd2hvbGUgYW5jZXN0b3IgY2hhaW4uIFdlIG9ubHkgbmVl
ZCB0byBkbyBkZWVwIGludmFsaWRhdGlvbiB0cmF2ZXJzYWwgaW4gdGhlIGNoYW5nZSByb290Lgot
ICAgICAgICAgICAgYXV0byBzaG91bGRJbnZhbGlkYXRlID0gWyZdIHsKLSAgICAgICAgICAgICAg
ICBzd2l0Y2ggKGludmFsaWRhdGlvblNjb3BlKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBJbnZh
bGlkYXRpb25TY29wZTo6QWxsOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgICAgICAgICBjYXNlIEludmFsaWRhdGlvblNjb3BlOjpTZWxmQ2hpbGRyZW5BbmRTaWJs
aW5nczoKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGludmFsaWRhdGlvblJ1bGVTZXQubWF0
Y2hFbGVtZW50ICE9IE1hdGNoRWxlbWVudDo6QW5jZXN0b3I7Ci0gICAgICAgICAgICAgICAgY2Fz
ZSBJbnZhbGlkYXRpb25TY29wZTo6RGVzY2VuZGFudHM6Ci0gICAgICAgICAgICAgICAgICAgIHJl
dHVybiBpbnZhbGlkYXRpb25SdWxlU2V0Lm1hdGNoRWxlbWVudCA9PSBNYXRjaEVsZW1lbnQ6OkFu
Y2VzdG9yOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKKyAgICBhdXRvKiBpbnZhbGlkYXRpb25SdWxlU2V0cyA9IHJ1bGVTZXRzLnBzZXVk
b0NsYXNzSW52YWxpZGF0aW9uUnVsZVNldHMoa2V5KTsKKyAgICBpZiAoIWludmFsaWRhdGlvblJ1
bGVTZXRzKQorICAgICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8mIGludmFsaWRhdGlvblJ1
bGVTZXQgOiAqaW52YWxpZGF0aW9uUnVsZVNldHMpIHsKKyAgICAgICAgLy8gRm9yIGZvY3VzL2hv
dmVyIHdlIGZsaXAgdGhlIHdob2xlIGFuY2VzdG9yIGNoYWluLiBXZSBvbmx5IG5lZWQgdG8gZG8g
ZGVlcCBpbnZhbGlkYXRpb24gdHJhdmVyc2FsIGluIHRoZSBjaGFuZ2Ugcm9vdC4KKyAgICAgICAg
YXV0byBzaG91bGRJbnZhbGlkYXRlID0gWyZdIHsKKyAgICAgICAgICAgIGJvb2wgaW52YWxpZGF0
ZXNBbGxEZXNjZW5kYW50cyA9IGludmFsaWRhdGlvblJ1bGVTZXQubWF0Y2hFbGVtZW50ID09IE1h
dGNoRWxlbWVudDo6QW5jZXN0b3IgJiYgaXNVbml2ZXJzYWxJbnZhbGlkYXRpb24oa2V5KTsKKyAg
ICAgICAgICAgIHN3aXRjaCAoaW52YWxpZGF0aW9uU2NvcGUpIHsKKyAgICAgICAgICAgIGNhc2Ug
SW52YWxpZGF0aW9uU2NvcGU6OkFsbDoKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgICAgIH0oKTsKLSAgICAgICAgICAgIGlmICghc2hvdWxkSW52YWxpZGF0ZSkKLSAgICAg
ICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIEludmFsaWRhdG9yOjphZGRUb01hdGNo
RWxlbWVudFJ1bGVTZXRzKG1fbWF0Y2hFbGVtZW50UnVsZVNldHMsIGludmFsaWRhdGlvblJ1bGVT
ZXQpOwotICAgICAgICB9CisgICAgICAgICAgICBjYXNlIEludmFsaWRhdGlvblNjb3BlOjpTZWxm
Q2hpbGRyZW5BbmRTaWJsaW5nczoKKyAgICAgICAgICAgICAgICByZXR1cm4gIWludmFsaWRhdGVz
QWxsRGVzY2VuZGFudHM7CisgICAgICAgICAgICBjYXNlIEludmFsaWRhdGlvblNjb3BlOjpEZXNj
ZW5kYW50czoKKyAgICAgICAgICAgICAgICByZXR1cm4gaW52YWxpZGF0ZXNBbGxEZXNjZW5kYW50
czsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0oKTsKKyAgICAgICAgaWYgKCFzaG91bGRJ
bnZhbGlkYXRlKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgSW52YWxpZGF0b3I6
OmFkZFRvTWF0Y2hFbGVtZW50UnVsZVNldHMobV9tYXRjaEVsZW1lbnRSdWxlU2V0cywgaW52YWxp
ZGF0aW9uUnVsZVNldCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9Qc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvc3R5
bGUvUHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uaAppbmRleCA1NDU5MWFiZGJkZTBlN2Vh
NDdiMjBiNzdjMmJiMDE2ZmM5YWIwMTE0Li44MzAxYTQ0NTkwY2FjMWVkNWZiMDRmNTFkNjMyYThl
OWYwOGNiY2Y4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qc2V1ZG9DbGFzc0No
YW5nZUludmFsaWRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1BzZXVkb0NsYXNz
Q2hhbmdlSW52YWxpZGF0aW9uLmgKQEAgLTQwLDYgKzQwLDcgQEAgcHVibGljOgogCiBwcml2YXRl
OgogICAgIHZvaWQgY29tcHV0ZUludmFsaWRhdGlvbihDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NU
eXBlLCBTdHlsZTo6SW52YWxpZGF0aW9uU2NvcGUpOworICAgIHZvaWQgY29sbGVjdFJ1bGVTZXRz
KGNvbnN0IFBzZXVkb0NsYXNzSW52YWxpZGF0aW9uS2V5JiwgSW52YWxpZGF0aW9uU2NvcGUpOwog
ICAgIHZvaWQgaW52YWxpZGF0ZVN0eWxlV2l0aFJ1bGVTZXRzKCk7CiAKICAgICBjb25zdCBib29s
IG1faXNFbmFibGVkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZUZlYXR1
cmUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZUZlYXR1cmUuY3BwCmluZGV4IDc2ZGM0
MmIxYTFlNjYxYTg1YWNhNmNhMjFiYjdmODZkMDkyZWZkNDEuLjAyODM1ZDllYmY5YzFiZmIxNjZj
NTEyODk0MjVlODM2MDJhOTBiZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1
bGVGZWF0dXJlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVhdHVyZS5jcHAK
QEAgLTIyNiw4ICsyMjYsMTAgQEAgdm9pZCBSdWxlRmVhdHVyZVNldDo6cmVjdXJzaXZlbHlDb2xs
ZWN0RmVhdHVyZXNGcm9tU2VsZWN0b3IoU2VsZWN0b3JGZWF0dXJlcyYgc2UKICAgICAgICAgICAg
IGRlZmF1bHQ6CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAg
IH0gZWxzZSBpZiAoc2VsZWN0b3ItPm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNz
KQotICAgICAgICAgICAgc2VsZWN0b3JGZWF0dXJlcy5wc2V1ZG9DbGFzc2VzLmFwcGVuZChzdGQ6
Om1ha2VfcGFpcihzZWxlY3Rvci0+cHNldWRvQ2xhc3NUeXBlKCksIG1hdGNoRWxlbWVudCkpOwor
ICAgICAgICB9IGVsc2UgaWYgKHNlbGVjdG9yLT5tYXRjaCgpID09IENTU1NlbGVjdG9yOjpQc2V1
ZG9DbGFzcykgeworICAgICAgICAgICAgaWYgKCFpc0xvZ2ljYWxDb21iaW5hdGlvblBzZXVkb0Ns
YXNzKHNlbGVjdG9yLT5wc2V1ZG9DbGFzc1R5cGUoKSkpCisgICAgICAgICAgICAgICAgc2VsZWN0
b3JGZWF0dXJlcy5wc2V1ZG9DbGFzc2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihzZWxlY3Rvciwg
bWF0Y2hFbGVtZW50KSk7CisgICAgICAgIH0KIAogICAgICAgICBpZiAoIXNlbGVjdG9yRmVhdHVy
ZXMuaGFzU2libGluZ1NlbGVjdG9yICYmIHNlbGVjdG9yLT5pc1NpYmxpbmdTZWxlY3RvcigpKQog
ICAgICAgICAgICAgc2VsZWN0b3JGZWF0dXJlcy5oYXNTaWJsaW5nU2VsZWN0b3IgPSB0cnVlOwpA
QCAtMjQ3LDYgKzI0OSw0NSBAQCB2b2lkIFJ1bGVGZWF0dXJlU2V0OjpyZWN1cnNpdmVseUNvbGxl
Y3RGZWF0dXJlc0Zyb21TZWxlY3RvcihTZWxlY3RvckZlYXR1cmVzJiBzZQogICAgIH0gd2hpbGUg
KHNlbGVjdG9yKTsKIH0KIAorUHNldWRvQ2xhc3NJbnZhbGlkYXRpb25LZXkgbWFrZVBzZXVkb0Ns
YXNzSW52YWxpZGF0aW9uS2V5KENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUgcHNldWRvQ2xh
c3MsIEludmFsaWRhdGlvbktleVR5cGUga2V5VHlwZSwgY29uc3QgQXRvbVN0cmluZyYga2V5U3Ry
aW5nKQoreworICAgIHJldHVybiB7CisgICAgICAgIHBzZXVkb0NsYXNzLAorICAgICAgICBzdGF0
aWNfY2FzdDx1aW50OF90PihrZXlUeXBlKSwKKyAgICAgICAga2V5U3RyaW5nCisgICAgfTsKK307
CisKK3N0YXRpYyBQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleSBtYWtlUHNldWRvQ2xhc3NJbnZh
bGlkYXRpb25LZXkoY29uc3QgQ1NTU2VsZWN0b3ImIHNlbGVjdG9yKQoreworICAgIEFTU0VSVChz
ZWxlY3Rvci5tYXRjaCgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7CisKKyAgICBhdXRv
IHBzZXVkb0NsYXNzVHlwZSA9IHNlbGVjdG9yLnBzZXVkb0NsYXNzVHlwZSgpOworCisgICAgQXRv
bVN0cmluZyBjbGFzc05hbWU7CisgICAgQXRvbVN0cmluZyB0YWdOYW1lOworICAgIGZvciAoYXV0
byogc2ltcGxlU2VsZWN0b3IgPSBzZWxlY3Rvci5maXJzdEluQ29tcG91bmQoKTsgc2ltcGxlU2Vs
ZWN0b3I7IHNpbXBsZVNlbGVjdG9yID0gc2ltcGxlU2VsZWN0b3ItPnRhZ0hpc3RvcnkoKSkgewor
ICAgICAgICBpZiAoc2ltcGxlU2VsZWN0b3ItPm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OklkKQor
ICAgICAgICAgICAgcmV0dXJuIG1ha2VQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleShwc2V1ZG9D
bGFzc1R5cGUsIEludmFsaWRhdGlvbktleVR5cGU6OklkLCBzaW1wbGVTZWxlY3Rvci0+dmFsdWUo
KSk7CisKKyAgICAgICAgaWYgKHNpbXBsZVNlbGVjdG9yLT5tYXRjaCgpID09IENTU1NlbGVjdG9y
OjpDbGFzcyAmJiBjbGFzc05hbWUuaXNOdWxsKCkpCisgICAgICAgICAgICBjbGFzc05hbWUgPSBz
aW1wbGVTZWxlY3Rvci0+dmFsdWUoKTsKKworICAgICAgICBpZiAoc2ltcGxlU2VsZWN0b3ItPm1h
dGNoKCkgPT0gQ1NTU2VsZWN0b3I6OlRhZykKKyAgICAgICAgICAgIHRhZ05hbWUgPSBzaW1wbGVT
ZWxlY3Rvci0+dGFnTG93ZXJjYXNlTG9jYWxOYW1lKCk7CisKKyAgICAgICAgaWYgKHNpbXBsZVNl
bGVjdG9yLT5yZWxhdGlvbigpICE9IENTU1NlbGVjdG9yOjpTdWJzZWxlY3RvcikKKyAgICAgICAg
ICAgIGJyZWFrOworICAgIH0KKyAgICBpZiAoIWNsYXNzTmFtZS5pc0VtcHR5KCkpCisgICAgICAg
IHJldHVybiBtYWtlUHNldWRvQ2xhc3NJbnZhbGlkYXRpb25LZXkocHNldWRvQ2xhc3NUeXBlLCBJ
bnZhbGlkYXRpb25LZXlUeXBlOjpDbGFzcywgY2xhc3NOYW1lKTsKKworICAgIGlmICghdGFnTmFt
ZS5pc0VtcHR5KCkgJiYgdGFnTmFtZSAhPSBzdGFyQXRvbSgpKQorICAgICAgICByZXR1cm4gbWFr
ZVBzZXVkb0NsYXNzSW52YWxpZGF0aW9uS2V5KHBzZXVkb0NsYXNzVHlwZSwgSW52YWxpZGF0aW9u
S2V5VHlwZTo6VGFnLCB0YWdOYW1lKTsKKworICAgIHJldHVybiBtYWtlUHNldWRvQ2xhc3NJbnZh
bGlkYXRpb25LZXkoc2VsZWN0b3IucHNldWRvQ2xhc3NUeXBlKCksIEludmFsaWRhdGlvbktleVR5
cGU6OlVuaXZlcnNhbCwgc3RhckF0b20oKSk7Cit9OworCiB2b2lkIFJ1bGVGZWF0dXJlU2V0Ojpj
b2xsZWN0RmVhdHVyZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhKQogewogICAgIFNlbGVjdG9y
RmVhdHVyZXMgc2VsZWN0b3JGZWF0dXJlczsKQEAgLTI4Nyw3ICszMjgsMTkgQEAgdm9pZCBSdWxl
RmVhdHVyZVNldDo6Y29sbGVjdEZlYXR1cmVzKGNvbnN0IFJ1bGVEYXRhJiBydWxlRGF0YSkKICAg
ICAgICAgc2V0VXNlc01hdGNoRWxlbWVudChtYXRjaEVsZW1lbnQpOwogICAgIH0KIAotICAgIGFk
ZFRvTWFwKHBzZXVkb0NsYXNzUnVsZXMsIHNlbGVjdG9yRmVhdHVyZXMucHNldWRvQ2xhc3Nlcywg
JnBzZXVkb0NsYXNzZXNBZmZlY3RpbmdIb3N0KTsKKyAgICBmb3IgKGF1dG8mIHNlbGVjdG9yQW5k
TWF0Y2ggOiBzZWxlY3RvckZlYXR1cmVzLnBzZXVkb0NsYXNzZXMpIHsKKyAgICAgICAgYXV0byog
c2VsZWN0b3IgPSBzZWxlY3RvckFuZE1hdGNoLmZpcnN0OworICAgICAgICBhdXRvIG1hdGNoRWxl
bWVudCA9IHNlbGVjdG9yQW5kTWF0Y2guc2Vjb25kOworICAgICAgICBwc2V1ZG9DbGFzc1J1bGVz
LmVuc3VyZShtYWtlUHNldWRvQ2xhc3NJbnZhbGlkYXRpb25LZXkoKnNlbGVjdG9yKSwgW10gewor
ICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmlxdWU8VmVjdG9yPFJ1bGVGZWF0dXJlPj4oKTsKKyAg
ICAgICAgfSkuaXRlcmF0b3ItPnZhbHVlLT5hcHBlbmQoeyBydWxlRGF0YSwgbWF0Y2hFbGVtZW50
IH0pOworCisgICAgICAgIGlmIChtYXRjaEVsZW1lbnQgPT0gTWF0Y2hFbGVtZW50OjpIb3N0KQor
ICAgICAgICAgICAgcHNldWRvQ2xhc3Nlc0FmZmVjdGluZ0hvc3QuYWRkKHNlbGVjdG9yLT5wc2V1
ZG9DbGFzc1R5cGUoKSk7CisgICAgICAgIHBzZXVkb0NsYXNzVHlwZXMuYWRkKHNlbGVjdG9yLT5w
c2V1ZG9DbGFzc1R5cGUoKSk7CisKKyAgICAgICAgc2V0VXNlc01hdGNoRWxlbWVudChtYXRjaEVs
ZW1lbnQpOworICAgIH0KIH0KIAogdm9pZCBSdWxlRmVhdHVyZVNldDo6YWRkKGNvbnN0IFJ1bGVG
ZWF0dXJlU2V0JiBvdGhlcikKQEAgLTMxOSw2ICszNzIsNyBAQCB2b2lkIFJ1bGVGZWF0dXJlU2V0
OjphZGQoY29uc3QgUnVsZUZlYXR1cmVTZXQmIG90aGVyKQogCiAgICAgYWRkTWFwKHBzZXVkb0Ns
YXNzUnVsZXMsIG90aGVyLnBzZXVkb0NsYXNzUnVsZXMpOwogICAgIHBzZXVkb0NsYXNzZXNBZmZl
Y3RpbmdIb3N0LmFkZChvdGhlci5wc2V1ZG9DbGFzc2VzQWZmZWN0aW5nSG9zdC5iZWdpbigpLCBv
dGhlci5wc2V1ZG9DbGFzc2VzQWZmZWN0aW5nSG9zdC5lbmQoKSk7CisgICAgcHNldWRvQ2xhc3NU
eXBlcy5hZGQob3RoZXIucHNldWRvQ2xhc3NUeXBlcy5iZWdpbigpLCBvdGhlci5wc2V1ZG9DbGFz
c1R5cGVzLmVuZCgpKTsKIAogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgdXNlZE1hdGNoRWxl
bWVudHMuc2l6ZSgpOyArK2kpCiAgICAgICAgIHVzZWRNYXRjaEVsZW1lbnRzW2ldID0gdXNlZE1h
dGNoRWxlbWVudHNbaV0gfHwgb3RoZXIudXNlZE1hdGNoRWxlbWVudHNbaV07CkBAIC0zNTEsNiAr
NDA1LDcgQEAgdm9pZCBSdWxlRmVhdHVyZVNldDo6Y2xlYXIoKQogICAgIGF0dHJpYnV0ZXNBZmZl
Y3RpbmdIb3N0LmNsZWFyKCk7CiAgICAgcHNldWRvQ2xhc3NSdWxlcy5jbGVhcigpOwogICAgIHBz
ZXVkb0NsYXNzZXNBZmZlY3RpbmdIb3N0LmNsZWFyKCk7CisgICAgcHNldWRvQ2xhc3NUeXBlcy5j
bGVhcigpOwogICAgIHVzZXNGaXJzdExpbmVSdWxlcyA9IGZhbHNlOwogICAgIHVzZXNGaXJzdExl
dHRlclJ1bGVzID0gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9S
dWxlRmVhdHVyZS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZUZlYXR1cmUuaAppbmRleCBl
OGE5MTkxYmU1MTJlMWYwN2JhNTJkODkxMzRhZGY0MTA2OTQ3YmUzLi45ODI4MDIzOGQ0ODdkNWRi
YWZiYjAzMDY1NjI0NmU0Y2FmYTE2MGYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9SdWxlRmVhdHVyZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVGZWF0dXJlLmgK
QEAgLTc0LDYgKzc0LDggQEAgc3RydWN0IFJ1bGVGZWF0dXJlV2l0aEludmFsaWRhdGlvblNlbGVj
dG9yIDogcHVibGljIFJ1bGVGZWF0dXJlIHsKICAgICBjb25zdCBDU1NTZWxlY3RvciogaW52YWxp
ZGF0aW9uU2VsZWN0b3IgeyBudWxscHRyIH07CiB9OwogCit1c2luZyBQc2V1ZG9DbGFzc0ludmFs
aWRhdGlvbktleSA9IHN0ZDo6dHVwbGU8dW5zaWduZWQsIHVpbnQ4X3QsIEF0b21TdHJpbmc+Owor
CiB1c2luZyBSdWxlRmVhdHVyZVZlY3RvciA9IFZlY3RvcjxSdWxlRmVhdHVyZT47CiAKIHN0cnVj
dCBSdWxlRmVhdHVyZVNldCB7CkBAIC05OCwxMCArMTAwLDExIEBAIHN0cnVjdCBSdWxlRmVhdHVy
ZVNldCB7CiAgICAgSGFzaE1hcDxBdG9tU3RyaW5nLCBzdGQ6OnVuaXF1ZV9wdHI8UnVsZUZlYXR1
cmVWZWN0b3I+PiBpZFJ1bGVzOwogICAgIEhhc2hNYXA8QXRvbVN0cmluZywgc3RkOjp1bmlxdWVf
cHRyPFJ1bGVGZWF0dXJlVmVjdG9yPj4gY2xhc3NSdWxlczsKICAgICBIYXNoTWFwPEF0b21TdHJp
bmcsIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8UnVsZUZlYXR1cmVXaXRoSW52YWxpZGF0aW9uU2Vs
ZWN0b3I+Pj4gYXR0cmlidXRlUnVsZXM7Ci0gICAgSGFzaE1hcDxDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3NUeXBlLCBzdGQ6OnVuaXF1ZV9wdHI8UnVsZUZlYXR1cmVWZWN0b3I+LCBJbnRIYXNoPENT
U1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGU+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRzPENT
U1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGU+PiBwc2V1ZG9DbGFzc1J1bGVzOworICAgIEhhc2hN
YXA8UHNldWRvQ2xhc3NJbnZhbGlkYXRpb25LZXksIHN0ZDo6dW5pcXVlX3B0cjxSdWxlRmVhdHVy
ZVZlY3Rvcj4+IHBzZXVkb0NsYXNzUnVsZXM7CiAgICAgSGFzaFNldDxBdG9tU3RyaW5nPiBjbGFz
c2VzQWZmZWN0aW5nSG9zdDsKICAgICBIYXNoU2V0PEF0b21TdHJpbmc+IGF0dHJpYnV0ZXNBZmZl
Y3RpbmdIb3N0OwogICAgIEhhc2hTZXQ8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSwgSW50
SGFzaDxDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRy
YWl0czxDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlPj4gcHNldWRvQ2xhc3Nlc0FmZmVjdGlu
Z0hvc3Q7CisgICAgSGFzaFNldDxDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlLCBJbnRIYXNo
PENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGU+LCBXVEY6OlN0cm9uZ0VudW1IYXNoVHJhaXRz
PENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGU+PiBwc2V1ZG9DbGFzc1R5cGVzOwogCiAgICAg
c3RkOjphcnJheTxib29sLCBtYXRjaEVsZW1lbnRDb3VudD4gdXNlZE1hdGNoRWxlbWVudHMgeyB9
OwogCkBAIC0xMTYsNyArMTE5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgVmVjdG9yPHN0ZDo6cGFp
cjxBdG9tU3RyaW5nLCBNYXRjaEVsZW1lbnQ+LCAzMj4gaWRzOwogICAgICAgICBWZWN0b3I8c3Rk
OjpwYWlyPEF0b21TdHJpbmcsIE1hdGNoRWxlbWVudD4sIDMyPiBjbGFzc2VzOwogICAgICAgICBW
ZWN0b3I8c3RkOjpwYWlyPGNvbnN0IENTU1NlbGVjdG9yKiwgTWF0Y2hFbGVtZW50PiwgMzI+IGF0
dHJpYnV0ZXM7Ci0gICAgICAgIFZlY3RvcjxzdGQ6OnBhaXI8Q1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzVHlwZSwgTWF0Y2hFbGVtZW50PiwgMzI+IHBzZXVkb0NsYXNzZXM7CisgICAgICAgIFZlY3Rv
cjxzdGQ6OnBhaXI8Y29uc3QgQ1NTU2VsZWN0b3IqLCBNYXRjaEVsZW1lbnQ+LCAzMj4gcHNldWRv
Q2xhc3NlczsKICAgICB9OwogICAgIHZvaWQgcmVjdXJzaXZlbHlDb2xsZWN0RmVhdHVyZXNGcm9t
U2VsZWN0b3IoU2VsZWN0b3JGZWF0dXJlcyYsIGNvbnN0IENTU1NlbGVjdG9yJiwgTWF0Y2hFbGVt
ZW50ID0gTWF0Y2hFbGVtZW50OjpTdWJqZWN0KTsKIH07CkBAIC0xMjQsNSArMTI3LDEzIEBAIHBy
aXZhdGU6CiBib29sIGlzSGFzUHNldWRvQ2xhc3NNYXRjaEVsZW1lbnQoTWF0Y2hFbGVtZW50KTsK
IE1hdGNoRWxlbWVudCBjb21wdXRlSGFzUHNldWRvQ2xhc3NNYXRjaEVsZW1lbnQoY29uc3QgQ1NT
U2VsZWN0b3ImKTsKIAorZW51bSBjbGFzcyBJbnZhbGlkYXRpb25LZXlUeXBlIDogdWludDhfdCB7
IFVuaXZlcnNhbCA9IDEsIENsYXNzLCBJZCwgVGFnIH07CitQc2V1ZG9DbGFzc0ludmFsaWRhdGlv
bktleSBtYWtlUHNldWRvQ2xhc3NJbnZhbGlkYXRpb25LZXkoQ1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzVHlwZSwgSW52YWxpZGF0aW9uS2V5VHlwZSwgY29uc3QgQXRvbVN0cmluZyYpOworCitpbmxp
bmUgYm9vbCBpc1VuaXZlcnNhbEludmFsaWRhdGlvbihjb25zdCBQc2V1ZG9DbGFzc0ludmFsaWRh
dGlvbktleSYga2V5KQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxJbnZhbGlkYXRpb25LZXlU
eXBlPihzdGQ6OmdldDwxPihrZXkpKSA9PSBJbnZhbGlkYXRpb25LZXlUeXBlOjpVbml2ZXJzYWw7
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFN0eWxlCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcAppbmRleCA0ZjlhMGQ0MTIy
NDdkNmZiOWVlOGNmMGFkYTdhODYyMDM3ZDgzMWVhLi5mNTRmMzYwYWIyYWY1ZmFjZmI1MjhhZDU2
NDNlMDA1YTI5NGM0MDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNj
b3BlUnVsZVNldHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxl
U2V0cy5jcHAKQEAgLTI5NSw5ICsyOTUsOSBAQCBjb25zdCBWZWN0b3I8SW52YWxpZGF0aW9uUnVs
ZVNldD4qIFNjb3BlUnVsZVNldHM6OmF0dHJpYnV0ZUludmFsaWRhdGlvblJ1bGVTZXRzKAogICAg
IHJldHVybiBlbnN1cmVJbnZhbGlkYXRpb25SdWxlU2V0cyhhdHRyaWJ1dGVOYW1lLCBtX2F0dHJp
YnV0ZUludmFsaWRhdGlvblJ1bGVTZXRzLCBtX2ZlYXR1cmVzLmF0dHJpYnV0ZVJ1bGVzKTsKIH0K
IAotY29uc3QgVmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+KiBTY29wZVJ1bGVTZXRzOjpwc2V1
ZG9DbGFzc0ludmFsaWRhdGlvblJ1bGVTZXRzKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUg
cHNldWRvQ2xhc3MpIGNvbnN0Citjb25zdCBWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4qIFNj
b3BlUnVsZVNldHM6OnBzZXVkb0NsYXNzSW52YWxpZGF0aW9uUnVsZVNldHMoY29uc3QgUHNldWRv
Q2xhc3NJbnZhbGlkYXRpb25LZXkmIHBzZXVkb0NsYXNzS2V5KSBjb25zdAogewotICAgIHJldHVy
biBlbnN1cmVJbnZhbGlkYXRpb25SdWxlU2V0cyhwc2V1ZG9DbGFzcywgbV9wc2V1ZG9DbGFzc0lu
dmFsaWRhdGlvblJ1bGVTZXRzLCBtX2ZlYXR1cmVzLnBzZXVkb0NsYXNzUnVsZXMpOworICAgIHJl
dHVybiBlbnN1cmVJbnZhbGlkYXRpb25SdWxlU2V0cyhwc2V1ZG9DbGFzc0tleSwgbV9wc2V1ZG9D
bGFzc0ludmFsaWRhdGlvblJ1bGVTZXRzLCBtX2ZlYXR1cmVzLnBzZXVkb0NsYXNzUnVsZXMpOwog
fQogCiBib29sIFNjb3BlUnVsZVNldHM6Omhhc0NvbXBsZXhTZWxlY3RvcnNGb3JTdHlsZUF0dHJp
YnV0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3Bl
UnVsZVNldHMuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCmlu
ZGV4IGMxMjMxMzg3ZGEyNDBjYWI5ZDY4NzJlMTcyZDQ5NzA2ZWZiY2VjN2IuLjZlODU3NzVmZWQ0
ZDViYTc1MTQyODg2MjE3YmMzYjE0Y2VhYmY0YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlU2NvcGVSdWxlU2V0cy5oCkBAIC02Nyw3ICs2Nyw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBW
ZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4qIGlkSW52YWxpZGF0aW9uUnVsZVNldHMoY29uc3Qg
QXRvbVN0cmluZyYpIGNvbnN0OwogICAgIGNvbnN0IFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0
PiogY2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0cyhjb25zdCBBdG9tU3RyaW5nJikgY29uc3Q7CiAg
ICAgY29uc3QgVmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+KiBhdHRyaWJ1dGVJbnZhbGlkYXRp
b25SdWxlU2V0cyhjb25zdCBBdG9tU3RyaW5nJikgY29uc3Q7Ci0gICAgY29uc3QgVmVjdG9yPElu
dmFsaWRhdGlvblJ1bGVTZXQ+KiBwc2V1ZG9DbGFzc0ludmFsaWRhdGlvblJ1bGVTZXRzKENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUpIGNvbnN0OworICAgIGNvbnN0IFZlY3RvcjxJbnZhbGlk
YXRpb25SdWxlU2V0PiogcHNldWRvQ2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0cyhjb25zdCBQc2V1
ZG9DbGFzc0ludmFsaWRhdGlvbktleSYpIGNvbnN0OwogCiAgICAgY29uc3QgVmVjdG9yPEludmFs
aWRhdGlvblJ1bGVTZXQ+KiBpbnZhbGlkYXRpb25SdWxlU2V0c0ZvckNoaWxkQ2hhbmdlKGNvbnN0
IEVsZW1lbnQmKTsKIApAQCAtMTA2LDcgKzEwNiw3IEBAIHByaXZhdGU6CiAgICAgbXV0YWJsZSBI
YXNoTWFwPEF0b21TdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8SW52YWxpZGF0aW9uUnVs
ZVNldD4+PiBtX2lkSW52YWxpZGF0aW9uUnVsZVNldHM7CiAgICAgbXV0YWJsZSBIYXNoTWFwPEF0
b21TdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4+PiBt
X2NsYXNzSW52YWxpZGF0aW9uUnVsZVNldHM7CiAgICAgbXV0YWJsZSBIYXNoTWFwPEF0b21TdHJp
bmcsIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4+PiBtX2F0dHJp
YnV0ZUludmFsaWRhdGlvblJ1bGVTZXRzOwotICAgIG11dGFibGUgSGFzaE1hcDxDU1NTZWxlY3Rv
cjo6UHNldWRvQ2xhc3NUeXBlLCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPEludmFsaWRhdGlvblJ1
bGVTZXQ+PiwgSW50SGFzaDxDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlPiwgV1RGOjpTdHJv
bmdFbnVtSGFzaFRyYWl0czxDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlPj4gbV9wc2V1ZG9D
bGFzc0ludmFsaWRhdGlvblJ1bGVTZXRzOworICAgIG11dGFibGUgSGFzaE1hcDxQc2V1ZG9DbGFz
c0ludmFsaWRhdGlvbktleSwgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxJbnZhbGlkYXRpb25SdWxl
U2V0Pj4+IG1fcHNldWRvQ2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0czsKIAogICAgIG11dGFibGUg
c3RkOjpvcHRpb25hbDxib29sPiBtX2NhY2hlZEhhc0NvbXBsZXhTZWxlY3RvcnNGb3JTdHlsZUF0
dHJpYnV0ZTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446134</attachid>
            <date>2021-12-07 00:32:01 -0800</date>
            <delta_ts>2021-12-07 09:49:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233883-20211207103159.patch</filename>
            <type>text/plain</type>
            <size>24821</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NTQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjVhMDgyNGJiN2M3ODUw
NzRhZjgxMzY1OTEwNjEwMGRiZTNmMDVhMC4uM2M3NzkwNzNhMjcwNDc3ZjkzMzIwNzFkMTAzY2Qx
YjJkNjc5ZDk4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYzIEBACisyMDIxLTEyLTA2ICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBVc2UgbW9yZSBzcGVjaWZp
YyBrZXlzIGZvciBwc2V1ZG8tY2xhc3MgaW52YWxpZGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM4ODMKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDdXJyZW50bHkgcHNldWRvLWNsYXNzIGludmFs
aWRhdGlvbiBpcyBrZXllZCB3aXRoIHBzZXVkby1jbGFzcyB0eXBlIG9ubHkuIElmIHdlIGhhdmUg
cnVsZSBsaWtlCisKKyAgICAgICAgLmZvbzpob3ZlciB7IC4uLiB9CisKKyAgICAgICAgd2UgZW5k
IHVwIGNvbnNpZGVyaW5nIHRoaXMgcnVsZSBmb3IgZXZlcnkgZWxlbWVudCB3aGVuZXZlciA6aG92
ZXIgc3RhdGUgY2hhbmdlcywgd2hldGhlciB0aGUgZWxlbWVudCBoYXMgY2xhc3MgJ2Zvbycgb3Ig
bm90LgorCisgICAgICAgIFdlIGNhbiBpbXByb3ZlIHRoaXMgYnkga2V5aW5nIHBzZXVkby1jbGFz
cyBpbnZhbGlkYXRpb24gbW9yZSBuYXJyb3dseSB3aXRoIHR5cGUvY2xhc3MsIHR5cGUvaWQgb3Ig
dHlwZS90YWcgcGFpcnMuCisKKyAgICAgICAgKiBjc3MvQ1NTU2VsZWN0b3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTU2VsZWN0b3I6OkNTU1NlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1NlbGVjdG9yOjpmaXJzdEluQ29tcG91bmQgY29uc3QpOgorCisgICAgICAgIEFkZCBhIGZ1
bmN0aW9uIHRvIGZpbmQgdGhlIHN0YXJ0IG9mIGEgY29tcG91bmQgc2VsZWN0b3IuCisKKyAgICAg
ICAgKiBjc3MvQ1NTU2VsZWN0b3IuaDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjp0
YWdIaXN0b3J5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjppc0ZpcnN0
SW5UYWdIaXN0b3J5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1NlbGVjdG9yOjpzZXRO
b3RGaXJzdEluVGFnSGlzdG9yeSk6CisKKyAgICAgICAgQWRkIGlzRmlyc3RJblRhZ0hpc3Rvcnkg
Yml0LCBzaW1pbGFyIHRvIHRoZSBpc0xhc3RJblRhZ0hpc3RvcnkgYml0LCB0byBlbmFibGUgZmly
c3RJbkNvbXBvdW5kLgorCisgICAgICAgIChXZWJDb3JlOjpDU1NTZWxlY3Rvcjo6Q1NTU2VsZWN0
b3IpOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvckxpc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q1NTU2VsZWN0b3JMaXN0OjpDU1NTZWxlY3Rvckxpc3QpOgorCisgICAgICAgIFNldCB0aGUg
Yml0LgorCisgICAgICAgICogc3R5bGUvUHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6Om1ha2VQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktl
eXMpOgorCisgICAgICAgIENvbGxlY3QgdGhlIGlkLCB0YWcgYW5kIGNsYXNzZXMgZnJvbSB0aGUg
ZWxlbWVudCBhbmQgbWFrZSBrZXlzIG91dCBvZiB0aGVtLgorCisgICAgICAgIChXZWJDb3JlOjpT
dHlsZTo6UHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb246OmNvbXB1dGVJbnZhbGlkYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6OlBzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9u
Ojpjb2xsZWN0UnVsZVNldHMpOgorCisgICAgICAgIFVzZSB0aGUga2V5cyB0byBsb29rIHVwIGZv
ciBtYXRjaGluZyBpbnZhbGlkYXRpb24gcnVsZXNldHMuCisKKyAgICAgICAgKiBzdHlsZS9Qc2V1
ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5oOgorICAgICAgICAqIHN0eWxlL1J1bGVGZWF0dXJl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpSdWxlRmVhdHVyZVNldDo6cmVjdXJzaXZl
bHlDb2xsZWN0RmVhdHVyZXNGcm9tU2VsZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
Om1ha2VQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleSk6CisKKyAgICAgICAgTWFrZSBhIGtleSBv
dXQgb2YgYSBzZWxlY3Rvci4KKyAgICAgICAgU2VhcmNoIHRoZSBjb21wb3VuZCBmb3IgaWQsIGNs
YXNzZXMgb3IgdGFnLgorCisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZUZlYXR1cmVTZXQ6
OmNvbGxlY3RGZWF0dXJlcyk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZUZlYXR1cmVT
ZXQ6OmFkZCk6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6UnVsZUZlYXR1cmVTZXQ6OmNsZWFy
KToKKyAgICAgICAgKiBzdHlsZS9SdWxlRmVhdHVyZS5oOgorICAgICAgICAqIHN0eWxlL1N0eWxl
U2NvcGVSdWxlU2V0cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTdHlsZTo6U2NvcGVSdWxlU2V0
czo6cHNldWRvQ2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0cyBjb25zdCk6CisgICAgICAgICogc3R5
bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmg6CisKIDIwMjEtMTItMDYgIEFudHRpIEtvaXZpc3RvICA8
YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0ludGVncmF0aW9uXSBVc2UgZW5kIGJp
dHMgaW4gdGV4dCBib3ggaXRlcmF0b3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTZWxlY3Rvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCmluZGV4
IDc2ZjA5YzcwNzlkNGE4OWNjMzYzYzk2NjY3ZTViZWU3N2UzZDE1ZjMuLjc3MzViM2NmZDZjYjFj
MjQxMDg3Y2Y5MjFiM2Q2NWYyODRkYjA3NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NTZWxlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNw
cApAQCAtNTYsNiArNTYsNyBAQCBDU1NTZWxlY3Rvcjo6Q1NTU2VsZWN0b3IoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnUU5hbWUsIGJvb2wgdGFnSXNGb3JOYW1lc3BhY2VSdQogICAgICwgbV9tYXRj
aChUYWcpCiAgICAgLCBtX3BzZXVkb1R5cGUoMCkKICAgICAsIG1faXNMYXN0SW5TZWxlY3Rvckxp
c3QoZmFsc2UpCisgICAgLCBtX2lzRmlyc3RJblRhZ0hpc3RvcnkodHJ1ZSkKICAgICAsIG1faXNM
YXN0SW5UYWdIaXN0b3J5KHRydWUpCiAgICAgLCBtX2hhc1JhcmVEYXRhKGZhbHNlKQogICAgICwg
bV9oYXNOYW1lV2l0aENhc2UoZmFsc2UpCkBAIC0yODgsNiArMjg5LDE4IEBAIENTU1NlbGVjdG9y
OjpQc2V1ZG9FbGVtZW50VHlwZSBDU1NTZWxlY3Rvcjo6cGFyc2VQc2V1ZG9FbGVtZW50VHlwZShT
dHJpbmdWaWV3IG5hCiAgICAgcmV0dXJuIHR5cGU7CiB9CiAKK2NvbnN0IENTU1NlbGVjdG9yKiBD
U1NTZWxlY3Rvcjo6Zmlyc3RJbkNvbXBvdW5kKCkgY29uc3QKK3sKKyAgICBhdXRvKiBzZWxlY3Rv
ciA9IHRoaXM7CisgICAgd2hpbGUgKCFzZWxlY3Rvci0+aXNGaXJzdEluVGFnSGlzdG9yeSgpKSB7
CisgICAgICAgIGF1dG8qIHByZXZpb3VzU2VsZWN0b3IgPSBzZWxlY3RvciAtIDE7CisgICAgICAg
IGlmIChwcmV2aW91c1NlbGVjdG9yLT5yZWxhdGlvbigpICE9IFN1YnNlbGVjdG9yKQorICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgIHNlbGVjdG9yID0gcHJldmlvdXNTZWxlY3RvcjsKKyAgICB9
CisgICAgcmV0dXJuIHNlbGVjdG9yOworfQorCiBib29sIENTU1NlbGVjdG9yOjpvcGVyYXRvcj09
KGNvbnN0IENTU1NlbGVjdG9yJiBvdGhlcikgY29uc3QKIHsKICAgICBjb25zdCBDU1NTZWxlY3Rv
ciogc2VsMSA9IHRoaXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0
b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCmluZGV4IDRiYzQ3YjQzNjYx
N2VmNWQ1YzkzMzVkZTY5YzEzMWJhNTQzYjBmMTcuLmQ5OGYxMWE2MzlmN2RjNjI2ZmZkMTFjOTA1
NDgyOTZmYjUyMGRlYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rv
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5oCkBAIC0yNTMsNyArMjUz
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiAgICAgICAgIC8vIFNlbGVjdG9ycyBhcmUga2Vw
dCBpbiBhbiBhcnJheSBieSBDU1NTZWxlY3Rvckxpc3QuIFRoZSBuZXh0IGNvbXBvbmVudCBvZiB0
aGUgc2VsZWN0b3IgaXMKICAgICAgICAgLy8gdGhlIG5leHQgaXRlbSBpbiB0aGUgYXJyYXkuCi0g
ICAgICAgIGNvbnN0IENTU1NlbGVjdG9yKiB0YWdIaXN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV9p
c0xhc3RJblRhZ0hpc3RvcnkgPyAwIDogY29uc3RfY2FzdDxDU1NTZWxlY3Rvcio+KHRoaXMgKyAx
KTsgfQorICAgICAgICBjb25zdCBDU1NTZWxlY3RvciogdGFnSGlzdG9yeSgpIGNvbnN0IHsgcmV0
dXJuIG1faXNMYXN0SW5UYWdIaXN0b3J5ID8gbnVsbHB0ciA6IHRoaXMgKyAxOyB9CisgICAgICAg
IGNvbnN0IENTU1NlbGVjdG9yKiBmaXJzdEluQ29tcG91bmQoKSBjb25zdDsKIAogICAgICAgICBj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdRTmFtZSgpIGNvbnN0OwogICAgICAgICBjb25zdCBBdG9t
U3RyaW5nJiB0YWdMb3dlcmNhc2VMb2NhbE5hbWUoKSBjb25zdDsKQEAgLTMzOSw3ICszNDAsOSBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKICAgICAgICAgYm9vbCBpc0xhc3RJblNlbGVjdG9yTGlz
dCgpIGNvbnN0IHsgcmV0dXJuIG1faXNMYXN0SW5TZWxlY3Rvckxpc3Q7IH0KICAgICAgICAgdm9p
ZCBzZXRMYXN0SW5TZWxlY3Rvckxpc3QoKSB7IG1faXNMYXN0SW5TZWxlY3Rvckxpc3QgPSB0cnVl
OyB9CisgICAgICAgIGJvb2wgaXNGaXJzdEluVGFnSGlzdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1f
aXNGaXJzdEluVGFnSGlzdG9yeTsgfQogICAgICAgICBib29sIGlzTGFzdEluVGFnSGlzdG9yeSgp
IGNvbnN0IHsgcmV0dXJuIG1faXNMYXN0SW5UYWdIaXN0b3J5OyB9CisgICAgICAgIHZvaWQgc2V0
Tm90Rmlyc3RJblRhZ0hpc3RvcnkoKSB7IG1faXNGaXJzdEluVGFnSGlzdG9yeSA9IGZhbHNlOyB9
CiAgICAgICAgIHZvaWQgc2V0Tm90TGFzdEluVGFnSGlzdG9yeSgpIHsgbV9pc0xhc3RJblRhZ0hp
c3RvcnkgPSBmYWxzZTsgfQogCiAgICAgICAgIGJvb2wgaXNGb3JQYWdlKCkgY29uc3QgeyByZXR1
cm4gbV9pc0ZvclBhZ2U7IH0KQEAgLTM1MCw2ICszNTMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgICAgIG11dGFibGUgdW5zaWduZWQgbV9tYXRjaCAgICAgICAgIDogNDsgLy8gZW51bSBN
YXRjaC4KICAgICAgICAgbXV0YWJsZSB1bnNpZ25lZCBtX3BzZXVkb1R5cGUgICAgOiA4OyAvLyBQ
c2V1ZG9UeXBlLgogICAgICAgICB1bnNpZ25lZCBtX2lzTGFzdEluU2VsZWN0b3JMaXN0ICA6IDE7
CisgICAgICAgIHVuc2lnbmVkIG1faXNGaXJzdEluVGFnSGlzdG9yeSAgIDogMTsKICAgICAgICAg
dW5zaWduZWQgbV9pc0xhc3RJblRhZ0hpc3RvcnkgICAgOiAxOwogICAgICAgICB1bnNpZ25lZCBt
X2hhc1JhcmVEYXRhICAgICAgICAgICA6IDE7CiAgICAgICAgIHVuc2lnbmVkIG1faGFzTmFtZVdp
dGhDYXNlICAgICAgIDogMTsKQEAgLTQ2OCw2ICs0NzIsMjEgQEAgc3RhdGljIGlubGluZSBib29s
IGlzVHJlZVN0cnVjdHVyYWxQc2V1ZG9DbGFzcyhDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBl
IHR5cGUKICAgICByZXR1cm4gcHNldWRvQ2xhc3NJc1JlbGF0aXZlVG9TaWJsaW5ncyh0eXBlKSB8
fCB0eXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1Jvb3Q7CiB9CiAKK2lubGluZSBib29s
IGlzTG9naWNhbENvbWJpbmF0aW9uUHNldWRvQ2xhc3MoQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNz
VHlwZSBwc2V1ZG9DbGFzc1R5cGUpCit7CisgICAgc3dpdGNoIChwc2V1ZG9DbGFzc1R5cGUpIHsK
KyAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0lzOgorICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzV2hlcmU6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NO
b3Q6CisgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NBbnk6CisgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvQ2xhc3NNYXRjaGVzOgorICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0NsYXNzSGFzOgorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBkZWZhdWx0OgorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisgICAgfQorfQorCiBpbmxpbmUgYm9vbCBDU1NTZWxlY3Rvcjo6aXNTaWJs
aW5nU2VsZWN0b3IoKSBjb25zdAogewogICAgIHJldHVybiByZWxhdGlvbigpID09IERpcmVjdEFk
amFjZW50CkBAIC01MTEsNiArNTMwLDcgQEAgaW5saW5lIENTU1NlbGVjdG9yOjpDU1NTZWxlY3Rv
cigpCiAgICAgLCBtX21hdGNoKFVua25vd24pCiAgICAgLCBtX3BzZXVkb1R5cGUoMCkKICAgICAs
IG1faXNMYXN0SW5TZWxlY3Rvckxpc3QoZmFsc2UpCisgICAgLCBtX2lzRmlyc3RJblRhZ0hpc3Rv
cnkodHJ1ZSkKICAgICAsIG1faXNMYXN0SW5UYWdIaXN0b3J5KHRydWUpCiAgICAgLCBtX2hhc1Jh
cmVEYXRhKGZhbHNlKQogICAgICwgbV9oYXNOYW1lV2l0aENhc2UoZmFsc2UpCkBAIC01MjgsNiAr
NTQ4LDcgQEAgaW5saW5lIENTU1NlbGVjdG9yOjpDU1NTZWxlY3Rvcihjb25zdCBDU1NTZWxlY3Rv
ciYgbykKICAgICAsIG1fbWF0Y2goby5tX21hdGNoKQogICAgICwgbV9wc2V1ZG9UeXBlKG8ubV9w
c2V1ZG9UeXBlKQogICAgICwgbV9pc0xhc3RJblNlbGVjdG9yTGlzdChvLm1faXNMYXN0SW5TZWxl
Y3Rvckxpc3QpCisgICAgLCBtX2lzRmlyc3RJblRhZ0hpc3Rvcnkoby5tX2lzRmlyc3RJblRhZ0hp
c3RvcnkpCiAgICAgLCBtX2lzTGFzdEluVGFnSGlzdG9yeShvLm1faXNMYXN0SW5UYWdIaXN0b3J5
KQogICAgICwgbV9oYXNSYXJlRGF0YShvLm1faGFzUmFyZURhdGEpCiAgICAgLCBtX2hhc05hbWVX
aXRoQ2FzZShvLm1faGFzTmFtZVdpdGhDYXNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1NlbGVjdG9yTGlzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JM
aXN0LmNwcAppbmRleCBjYzA3M2I0YjExYzI1Y2RjMDUwZTczZjczYjM2NWI4YzYxNmQzZGJhLi40
NjQ5YWZjZDE0Yzg1NzAyODBlMjYyZjhhNTY4ODE5ZmMzOWY4YzhmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3JMaXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTU2VsZWN0b3JMaXN0LmNwcApAQCAtNTUsNyArNTUsOCBAQCBDU1NTZWxlY3Rvckxpc3Q6
OkNTU1NlbGVjdG9yTGlzdChWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9y
Pj4mJiBzZQogICAgIG1fc2VsZWN0b3JBcnJheSA9IG1ha2VVbmlxdWVBcnJheTxDU1NTZWxlY3Rv
cj4oZmxhdHRlbmVkU2l6ZSk7CiAgICAgc2l6ZV90IGFycmF5SW5kZXggPSAwOwogICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgc2VsZWN0b3JWZWN0b3Iuc2l6ZSgpOyArK2kpIHsKLSAgICAgICAg
Q1NTUGFyc2VyU2VsZWN0b3IqIGN1cnJlbnQgPSBzZWxlY3RvclZlY3RvcltpXS5nZXQoKTsKKyAg
ICAgICAgQ1NTUGFyc2VyU2VsZWN0b3IqIGZpcnN0ID0gc2VsZWN0b3JWZWN0b3JbaV0uZ2V0KCk7
CisgICAgICAgIENTU1BhcnNlclNlbGVjdG9yKiBjdXJyZW50ID0gZmlyc3Q7CiAgICAgICAgIHdo
aWxlIChjdXJyZW50KSB7CiAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgLy8gTW92ZSBp
dGVtIGZyb20gdGhlIHBhcnNlciBzZWxlY3RvciB2ZWN0b3IgaW50byBtX3NlbGVjdG9yQXJyYXkg
d2l0aG91dCBpbnZva2luZyBkZXN0cnVjdG9yIChVZ2guKQpAQCAtNjUsNiArNjYsOCBAQCBDU1NT
ZWxlY3Rvckxpc3Q6OkNTU1NlbGVjdG9yTGlzdChWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1Bh
cnNlclNlbGVjdG9yPj4mJiBzZQogICAgICAgICAgICAgICAgIC8vIEZyZWUgdGhlIHVuZGVybHlp
bmcgbWVtb3J5IHdpdGhvdXQgaW52b2tpbmcgdGhlIGRlc3RydWN0b3IuCiAgICAgICAgICAgICAg
ICAgb3BlcmF0b3IgZGVsZXRlIChjdXJyZW50U2VsZWN0b3IpOwogICAgICAgICAgICAgfQorICAg
ICAgICAgICAgaWYgKGN1cnJlbnQgIT0gZmlyc3QpCisgICAgICAgICAgICAgICAgbV9zZWxlY3Rv
ckFycmF5W2FycmF5SW5kZXhdLnNldE5vdEZpcnN0SW5UYWdIaXN0b3J5KCk7CiAgICAgICAgICAg
ICBjdXJyZW50ID0gY3VycmVudC0+dGFnSGlzdG9yeSgpOwogICAgICAgICAgICAgQVNTRVJUKCFt
X3NlbGVjdG9yQXJyYXlbYXJyYXlJbmRleF0uaXNMYXN0SW5TZWxlY3Rvckxpc3QoKSk7CiAgICAg
ICAgICAgICBpZiAoY3VycmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvQ1NTU2VsZWN0b3JQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NT
ZWxlY3RvclBhcnNlci5jcHAKaW5kZXggNWJhMTMxYjU4ODU5OGY1YTI3YmEzOGFhNjRhMDczNDk0
MTFhYzlhYS4uY2E3ZTljZGFmMTQ3OWFmYmEwNWYyMDJkNTljZDYyOGNhOTkyOTI2NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9DU1NTZWxlY3RvclBhcnNlci5jcHAKQEAgLTMy
MCwyMSArMzIwLDYgQEAgc3RhdGljIGJvb2wgaXNVc2VyQWN0aW9uUHNldWRvQ2xhc3MoQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NsYXNzVHlwZSBwc2V1ZG8pCiAgICAgfQogfQogCi1zdGF0aWMgYm9vbCBp
c0xvZ2ljYWxDb21iaW5hdGlvblBzZXVkb0NsYXNzKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5
cGUgcHNldWRvKQotewotICAgIHN3aXRjaCAocHNldWRvKSB7Ci0gICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvQ2xhc3NJczoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1doZXJl
OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzTm90OgotICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NsYXNzQW55OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNz
TWF0Y2hlczoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc0hhczoKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0K
LX0KLQogc3RhdGljIGJvb2wgaXNQc2V1ZG9DbGFzc1ZhbGlkQWZ0ZXJQc2V1ZG9FbGVtZW50KENT
U1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUgcHNldWRvQ2xhc3MsIENTU1NlbGVjdG9yOjpQc2V1
ZG9FbGVtZW50VHlwZSBjb21wb3VuZFBzZXVkb0VsZW1lbnQpCiB7CiAgICAgLy8gVmFsaWRpdHkg
b2YgdGhlc2UgaXMgZGV0ZXJtaW5lZCBieSB0aGVpciBjb250ZW50LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvUHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvUHNldWRvQ2xhc3NDaGFuZ2VJbnZhbGlkYXRpb24uY3BwCmluZGV4
IDMzODI0NDQ0Zjc5ODJhZWE5ZjYzZTllYjE3MDlkYTdmZjkzMDJhOTAuLjFlZTBmZDE5NzdjNzky
OTYzZGM5Mzc0NTNjNjlmNzM1MDA5ZTBlYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1BzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9Qc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbi5jcHAKQEAgLTMyLDEzICszMiwz
MiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogbmFtZXNwYWNlIFN0eWxlIHsKIAorc3RhdGljIFZl
Y3RvcjxQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleSwgND4gbWFrZVBzZXVkb0NsYXNzSW52YWxp
ZGF0aW9uS2V5cyhDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlIHBzZXVkb0NsYXNzLCBjb25z
dCBFbGVtZW50JiBlbGVtZW50KQoreworICAgIFZlY3RvcjxQc2V1ZG9DbGFzc0ludmFsaWRhdGlv
bktleSwgND4ga2V5czsKKworICAgIGlmICghZWxlbWVudC5pZEZvclN0eWxlUmVzb2x1dGlvbigp
LmlzRW1wdHkoKSkKKyAgICAgICAga2V5cy5hcHBlbmQobWFrZVBzZXVkb0NsYXNzSW52YWxpZGF0
aW9uS2V5KHBzZXVkb0NsYXNzLCBJbnZhbGlkYXRpb25LZXlUeXBlOjpJZCwgZWxlbWVudC5pZEZv
clN0eWxlUmVzb2x1dGlvbigpKSk7CisKKyAgICBpZiAoZWxlbWVudC5oYXNDbGFzcygpKSB7Cisg
ICAgICAgIGF1dG8gY2xhc3NDb3VudCA9IGVsZW1lbnQuY2xhc3NOYW1lcygpLnNpemUoKTsKKyAg
ICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjbGFzc0NvdW50OyArK2kpCisgICAgICAgICAg
ICBrZXlzLmFwcGVuZChtYWtlUHNldWRvQ2xhc3NJbnZhbGlkYXRpb25LZXkocHNldWRvQ2xhc3Ms
IEludmFsaWRhdGlvbktleVR5cGU6OkNsYXNzLCBlbGVtZW50LmNsYXNzTmFtZXMoKVtpXSkpOwor
ICAgIH0KKworICAgIGtleXMuYXBwZW5kKG1ha2VQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleShw
c2V1ZG9DbGFzcywgSW52YWxpZGF0aW9uS2V5VHlwZTo6VGFnLCBlbGVtZW50LmxvY2FsTmFtZSgp
LmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCkpKTsKKyAgICBrZXlzLmFwcGVuZChtYWtlUHNldWRv
Q2xhc3NJbnZhbGlkYXRpb25LZXkocHNldWRvQ2xhc3MsIEludmFsaWRhdGlvbktleVR5cGU6OlVu
aXZlcnNhbCkpOworCisgICAgcmV0dXJuIGtleXM7Cit9OworCiB2b2lkIFBzZXVkb0NsYXNzQ2hh
bmdlSW52YWxpZGF0aW9uOjpjb21wdXRlSW52YWxpZGF0aW9uKENTU1NlbGVjdG9yOjpQc2V1ZG9D
bGFzc1R5cGUgcHNldWRvQ2xhc3MsIEludmFsaWRhdGlvblNjb3BlIGludmFsaWRhdGlvblNjb3Bl
KQogewogICAgIGJvb2wgc2hvdWxkSW52YWxpZGF0ZUN1cnJlbnQgPSBmYWxzZTsKICAgICBib29s
IG1heUFmZmVjdFN0eWxlSW5TaGFkb3dUcmVlID0gZmFsc2U7CiAKICAgICB0cmF2ZXJzZVJ1bGVG
ZWF0dXJlcyhtX2VsZW1lbnQsIFsmXSAoY29uc3QgUnVsZUZlYXR1cmVTZXQmIGZlYXR1cmVzLCBi
b29sIG1heUFmZmVjdFNoYWRvd1RyZWUpIHsKLSAgICAgICAgaWYgKG1heUFmZmVjdFNoYWRvd1Ry
ZWUgJiYgZmVhdHVyZXMucHNldWRvQ2xhc3NSdWxlcy5jb250YWlucyhwc2V1ZG9DbGFzcykpCisg
ICAgICAgIGlmIChtYXlBZmZlY3RTaGFkb3dUcmVlICYmIGZlYXR1cmVzLnBzZXVkb0NsYXNzVHlw
ZXMuY29udGFpbnMocHNldWRvQ2xhc3MpKQogICAgICAgICAgICAgbWF5QWZmZWN0U3R5bGVJblNo
YWRvd1RyZWUgPSB0cnVlOwogICAgICAgICBpZiAobV9lbGVtZW50LnNoYWRvd1Jvb3QoKSAmJiBm
ZWF0dXJlcy5wc2V1ZG9DbGFzc2VzQWZmZWN0aW5nSG9zdC5jb250YWlucyhwc2V1ZG9DbGFzcykp
CiAgICAgICAgICAgICBzaG91bGRJbnZhbGlkYXRlQ3VycmVudCA9IHRydWU7CkBAIC01MiwyNiAr
NzEsMzYgQEAgdm9pZCBQc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRhdGlvbjo6Y29tcHV0ZUludmFs
aWRhdGlvbihDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MKICAgICBpZiAoc2hvdWxkSW52YWxpZGF0
ZUN1cnJlbnQpCiAgICAgICAgIG1fZWxlbWVudC5pbnZhbGlkYXRlU3R5bGUoKTsKIAorICAgIGZv
ciAoYXV0byYga2V5IDogbWFrZVBzZXVkb0NsYXNzSW52YWxpZGF0aW9uS2V5cyhwc2V1ZG9DbGFz
cywgbV9lbGVtZW50KSkKKyAgICAgICAgY29sbGVjdFJ1bGVTZXRzKGtleSwgaW52YWxpZGF0aW9u
U2NvcGUpOworfQorCit2b2lkIFBzZXVkb0NsYXNzQ2hhbmdlSW52YWxpZGF0aW9uOjpjb2xsZWN0
UnVsZVNldHMoY29uc3QgUHNldWRvQ2xhc3NJbnZhbGlkYXRpb25LZXkmIGtleSwgSW52YWxpZGF0
aW9uU2NvcGUgaW52YWxpZGF0aW9uU2NvcGUpCit7CiAgICAgYXV0byYgcnVsZVNldHMgPSBtX2Vs
ZW1lbnQuc3R5bGVSZXNvbHZlcigpLnJ1bGVTZXRzKCk7Ci0gICAgaWYgKGF1dG8qIGludmFsaWRh
dGlvblJ1bGVTZXRzID0gcnVsZVNldHMucHNldWRvQ2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0cyhw
c2V1ZG9DbGFzcykpIHsKLSAgICAgICAgZm9yIChhdXRvJiBpbnZhbGlkYXRpb25SdWxlU2V0IDog
KmludmFsaWRhdGlvblJ1bGVTZXRzKSB7Ci0gICAgICAgICAgICAvLyBGb3IgZm9jdXMvaG92ZXIg
d2UgZmxpcCB0aGUgd2hvbGUgYW5jZXN0b3IgY2hhaW4uIFdlIG9ubHkgbmVlZCB0byBkbyBkZWVw
IGludmFsaWRhdGlvbiB0cmF2ZXJzYWwgaW4gdGhlIGNoYW5nZSByb290LgotICAgICAgICAgICAg
YXV0byBzaG91bGRJbnZhbGlkYXRlID0gWyZdIHsKLSAgICAgICAgICAgICAgICBzd2l0Y2ggKGlu
dmFsaWRhdGlvblNjb3BlKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBJbnZhbGlkYXRpb25TY29w
ZTo6QWxsOgotICAgICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgICAg
ICBjYXNlIEludmFsaWRhdGlvblNjb3BlOjpTZWxmQ2hpbGRyZW5BbmRTaWJsaW5nczoKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIGludmFsaWRhdGlvblJ1bGVTZXQubWF0Y2hFbGVtZW50ICE9
IE1hdGNoRWxlbWVudDo6QW5jZXN0b3I7Ci0gICAgICAgICAgICAgICAgY2FzZSBJbnZhbGlkYXRp
b25TY29wZTo6RGVzY2VuZGFudHM6Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybiBpbnZhbGlk
YXRpb25SdWxlU2V0Lm1hdGNoRWxlbWVudCA9PSBNYXRjaEVsZW1lbnQ6OkFuY2VzdG9yOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAg
ICBhdXRvKiBpbnZhbGlkYXRpb25SdWxlU2V0cyA9IHJ1bGVTZXRzLnBzZXVkb0NsYXNzSW52YWxp
ZGF0aW9uUnVsZVNldHMoa2V5KTsKKyAgICBpZiAoIWludmFsaWRhdGlvblJ1bGVTZXRzKQorICAg
ICAgICByZXR1cm47CisKKyAgICBmb3IgKGF1dG8mIGludmFsaWRhdGlvblJ1bGVTZXQgOiAqaW52
YWxpZGF0aW9uUnVsZVNldHMpIHsKKyAgICAgICAgLy8gRm9yIGZvY3VzL2hvdmVyIHdlIGZsaXAg
dGhlIHdob2xlIGFuY2VzdG9yIGNoYWluLiBXZSBvbmx5IG5lZWQgdG8gZG8gZGVlcCBpbnZhbGlk
YXRpb24gdHJhdmVyc2FsIGluIHRoZSBjaGFuZ2Ugcm9vdC4KKyAgICAgICAgYXV0byBzaG91bGRJ
bnZhbGlkYXRlID0gWyZdIHsKKyAgICAgICAgICAgIGJvb2wgaW52YWxpZGF0ZXNBbGxEZXNjZW5k
YW50cyA9IGludmFsaWRhdGlvblJ1bGVTZXQubWF0Y2hFbGVtZW50ID09IE1hdGNoRWxlbWVudDo6
QW5jZXN0b3IgJiYgaXNVbml2ZXJzYWxJbnZhbGlkYXRpb24oa2V5KTsKKyAgICAgICAgICAgIHN3
aXRjaCAoaW52YWxpZGF0aW9uU2NvcGUpIHsKKyAgICAgICAgICAgIGNhc2UgSW52YWxpZGF0aW9u
U2NvcGU6OkFsbDoKICAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgICAgIH0o
KTsKLSAgICAgICAgICAgIGlmICghc2hvdWxkSW52YWxpZGF0ZSkKLSAgICAgICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgICAgIEludmFsaWRhdG9yOjphZGRUb01hdGNoRWxlbWVudFJ1bGVT
ZXRzKG1fbWF0Y2hFbGVtZW50UnVsZVNldHMsIGludmFsaWRhdGlvblJ1bGVTZXQpOwotICAgICAg
ICB9CisgICAgICAgICAgICBjYXNlIEludmFsaWRhdGlvblNjb3BlOjpTZWxmQ2hpbGRyZW5BbmRT
aWJsaW5nczoKKyAgICAgICAgICAgICAgICByZXR1cm4gIWludmFsaWRhdGVzQWxsRGVzY2VuZGFu
dHM7CisgICAgICAgICAgICBjYXNlIEludmFsaWRhdGlvblNjb3BlOjpEZXNjZW5kYW50czoKKyAg
ICAgICAgICAgICAgICByZXR1cm4gaW52YWxpZGF0ZXNBbGxEZXNjZW5kYW50czsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIH0oKTsKKyAgICAgICAgaWYgKCFzaG91bGRJbnZhbGlkYXRlKQor
ICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgSW52YWxpZGF0b3I6OmFkZFRvTWF0Y2hF
bGVtZW50UnVsZVNldHMobV9tYXRjaEVsZW1lbnRSdWxlU2V0cywgaW52YWxpZGF0aW9uUnVsZVNl
dCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qc2V1ZG9D
bGFzc0NoYW5nZUludmFsaWRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUHNldWRvQ2xh
c3NDaGFuZ2VJbnZhbGlkYXRpb24uaAppbmRleCA1NDU5MWFiZGJkZTBlN2VhNDdiMjBiNzdjMmJi
MDE2ZmM5YWIwMTE0Li44MzAxYTQ0NTkwY2FjMWVkNWZiMDRmNTFkNjMyYThlOWYwOGNiY2Y4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9Qc2V1ZG9DbGFzc0NoYW5nZUludmFsaWRh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1BzZXVkb0NsYXNzQ2hhbmdlSW52YWxp
ZGF0aW9uLmgKQEAgLTQwLDYgKzQwLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZvaWQg
Y29tcHV0ZUludmFsaWRhdGlvbihDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlLCBTdHlsZTo6
SW52YWxpZGF0aW9uU2NvcGUpOworICAgIHZvaWQgY29sbGVjdFJ1bGVTZXRzKGNvbnN0IFBzZXVk
b0NsYXNzSW52YWxpZGF0aW9uS2V5JiwgSW52YWxpZGF0aW9uU2NvcGUpOwogICAgIHZvaWQgaW52
YWxpZGF0ZVN0eWxlV2l0aFJ1bGVTZXRzKCk7CiAKICAgICBjb25zdCBib29sIG1faXNFbmFibGVk
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZUZlYXR1cmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3R5bGUvUnVsZUZlYXR1cmUuY3BwCmluZGV4IDc2ZGM0MmIxYTFlNjYxYTg1
YWNhNmNhMjFiYjdmODZkMDkyZWZkNDEuLmQ3ZmVmOGU2NTc0OTk4NWZkZTJkNWViNDMzN2NjOWRh
ODJkOWNiMWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1J1bGVGZWF0dXJlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVhdHVyZS5jcHAKQEAgLTIyNiw4ICsy
MjYsMTAgQEAgdm9pZCBSdWxlRmVhdHVyZVNldDo6cmVjdXJzaXZlbHlDb2xsZWN0RmVhdHVyZXNG
cm9tU2VsZWN0b3IoU2VsZWN0b3JGZWF0dXJlcyYgc2UKICAgICAgICAgICAgIGRlZmF1bHQ6CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAo
c2VsZWN0b3ItPm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKQotICAgICAgICAg
ICAgc2VsZWN0b3JGZWF0dXJlcy5wc2V1ZG9DbGFzc2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihz
ZWxlY3Rvci0+cHNldWRvQ2xhc3NUeXBlKCksIG1hdGNoRWxlbWVudCkpOworICAgICAgICB9IGVs
c2UgaWYgKHNlbGVjdG9yLT5tYXRjaCgpID09IENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcykgewor
ICAgICAgICAgICAgaWYgKCFpc0xvZ2ljYWxDb21iaW5hdGlvblBzZXVkb0NsYXNzKHNlbGVjdG9y
LT5wc2V1ZG9DbGFzc1R5cGUoKSkpCisgICAgICAgICAgICAgICAgc2VsZWN0b3JGZWF0dXJlcy5w
c2V1ZG9DbGFzc2VzLmFwcGVuZChzdGQ6Om1ha2VfcGFpcihzZWxlY3RvciwgbWF0Y2hFbGVtZW50
KSk7CisgICAgICAgIH0KIAogICAgICAgICBpZiAoIXNlbGVjdG9yRmVhdHVyZXMuaGFzU2libGlu
Z1NlbGVjdG9yICYmIHNlbGVjdG9yLT5pc1NpYmxpbmdTZWxlY3RvcigpKQogICAgICAgICAgICAg
c2VsZWN0b3JGZWF0dXJlcy5oYXNTaWJsaW5nU2VsZWN0b3IgPSB0cnVlOwpAQCAtMjQ3LDYgKzI0
OSw0NiBAQCB2b2lkIFJ1bGVGZWF0dXJlU2V0OjpyZWN1cnNpdmVseUNvbGxlY3RGZWF0dXJlc0Zy
b21TZWxlY3RvcihTZWxlY3RvckZlYXR1cmVzJiBzZQogICAgIH0gd2hpbGUgKHNlbGVjdG9yKTsK
IH0KIAorUHNldWRvQ2xhc3NJbnZhbGlkYXRpb25LZXkgbWFrZVBzZXVkb0NsYXNzSW52YWxpZGF0
aW9uS2V5KENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUgcHNldWRvQ2xhc3MsIEludmFsaWRh
dGlvbktleVR5cGUga2V5VHlwZSwgY29uc3QgQXRvbVN0cmluZyYga2V5U3RyaW5nKQoreworICAg
IEFTU0VSVChrZXlUeXBlICE9IEludmFsaWRhdGlvbktleVR5cGU6OlVuaXZlcnNhbCB8fCBrZXlT
dHJpbmcgPT0gc3RhckF0b20oKSk7CisgICAgcmV0dXJuIHsKKyAgICAgICAgcHNldWRvQ2xhc3Ms
CisgICAgICAgIHN0YXRpY19jYXN0PHVpbnQ4X3Q+KGtleVR5cGUpLAorICAgICAgICBrZXlTdHJp
bmcKKyAgICB9OworfTsKKworc3RhdGljIFBzZXVkb0NsYXNzSW52YWxpZGF0aW9uS2V5IG1ha2VQ
c2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleShjb25zdCBDU1NTZWxlY3RvciYgc2VsZWN0b3IpCit7
CisgICAgQVNTRVJUKHNlbGVjdG9yLm1hdGNoKCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNz
KTsKKworICAgIGF1dG8gcHNldWRvQ2xhc3NUeXBlID0gc2VsZWN0b3IucHNldWRvQ2xhc3NUeXBl
KCk7CisKKyAgICBBdG9tU3RyaW5nIGNsYXNzTmFtZTsKKyAgICBBdG9tU3RyaW5nIHRhZ05hbWU7
CisgICAgZm9yIChhdXRvKiBzaW1wbGVTZWxlY3RvciA9IHNlbGVjdG9yLmZpcnN0SW5Db21wb3Vu
ZCgpOyBzaW1wbGVTZWxlY3Rvcjsgc2ltcGxlU2VsZWN0b3IgPSBzaW1wbGVTZWxlY3Rvci0+dGFn
SGlzdG9yeSgpKSB7CisgICAgICAgIGlmIChzaW1wbGVTZWxlY3Rvci0+bWF0Y2goKSA9PSBDU1NT
ZWxlY3Rvcjo6SWQpCisgICAgICAgICAgICByZXR1cm4gbWFrZVBzZXVkb0NsYXNzSW52YWxpZGF0
aW9uS2V5KHBzZXVkb0NsYXNzVHlwZSwgSW52YWxpZGF0aW9uS2V5VHlwZTo6SWQsIHNpbXBsZVNl
bGVjdG9yLT52YWx1ZSgpKTsKKworICAgICAgICBpZiAoc2ltcGxlU2VsZWN0b3ItPm1hdGNoKCkg
PT0gQ1NTU2VsZWN0b3I6OkNsYXNzICYmIGNsYXNzTmFtZS5pc051bGwoKSkKKyAgICAgICAgICAg
IGNsYXNzTmFtZSA9IHNpbXBsZVNlbGVjdG9yLT52YWx1ZSgpOworCisgICAgICAgIGlmIChzaW1w
bGVTZWxlY3Rvci0+bWF0Y2goKSA9PSBDU1NTZWxlY3Rvcjo6VGFnKQorICAgICAgICAgICAgdGFn
TmFtZSA9IHNpbXBsZVNlbGVjdG9yLT50YWdMb3dlcmNhc2VMb2NhbE5hbWUoKTsKKworICAgICAg
ICBpZiAoc2ltcGxlU2VsZWN0b3ItPnJlbGF0aW9uKCkgIT0gQ1NTU2VsZWN0b3I6OlN1YnNlbGVj
dG9yKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGlmICghY2xhc3NOYW1lLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIG1ha2VQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleShwc2V1
ZG9DbGFzc1R5cGUsIEludmFsaWRhdGlvbktleVR5cGU6OkNsYXNzLCBjbGFzc05hbWUpOworCisg
ICAgaWYgKCF0YWdOYW1lLmlzRW1wdHkoKSAmJiB0YWdOYW1lICE9IHN0YXJBdG9tKCkpCisgICAg
ICAgIHJldHVybiBtYWtlUHNldWRvQ2xhc3NJbnZhbGlkYXRpb25LZXkocHNldWRvQ2xhc3NUeXBl
LCBJbnZhbGlkYXRpb25LZXlUeXBlOjpUYWcsIHRhZ05hbWUpOworCisgICAgcmV0dXJuIG1ha2VQ
c2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleShzZWxlY3Rvci5wc2V1ZG9DbGFzc1R5cGUoKSwgSW52
YWxpZGF0aW9uS2V5VHlwZTo6VW5pdmVyc2FsKTsKK307CisKIHZvaWQgUnVsZUZlYXR1cmVTZXQ6
OmNvbGxlY3RGZWF0dXJlcyhjb25zdCBSdWxlRGF0YSYgcnVsZURhdGEpCiB7CiAgICAgU2VsZWN0
b3JGZWF0dXJlcyBzZWxlY3RvckZlYXR1cmVzOwpAQCAtMjg3LDcgKzMyOSwxOSBAQCB2b2lkIFJ1
bGVGZWF0dXJlU2V0Ojpjb2xsZWN0RmVhdHVyZXMoY29uc3QgUnVsZURhdGEmIHJ1bGVEYXRhKQog
ICAgICAgICBzZXRVc2VzTWF0Y2hFbGVtZW50KG1hdGNoRWxlbWVudCk7CiAgICAgfQogCi0gICAg
YWRkVG9NYXAocHNldWRvQ2xhc3NSdWxlcywgc2VsZWN0b3JGZWF0dXJlcy5wc2V1ZG9DbGFzc2Vz
LCAmcHNldWRvQ2xhc3Nlc0FmZmVjdGluZ0hvc3QpOworICAgIGZvciAoYXV0byYgc2VsZWN0b3JB
bmRNYXRjaCA6IHNlbGVjdG9yRmVhdHVyZXMucHNldWRvQ2xhc3NlcykgeworICAgICAgICBhdXRv
KiBzZWxlY3RvciA9IHNlbGVjdG9yQW5kTWF0Y2guZmlyc3Q7CisgICAgICAgIGF1dG8gbWF0Y2hF
bGVtZW50ID0gc2VsZWN0b3JBbmRNYXRjaC5zZWNvbmQ7CisgICAgICAgIHBzZXVkb0NsYXNzUnVs
ZXMuZW5zdXJlKG1ha2VQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleSgqc2VsZWN0b3IpLCBbXSB7
CisgICAgICAgICAgICByZXR1cm4gbWFrZVVuaXF1ZTxWZWN0b3I8UnVsZUZlYXR1cmU+PigpOwor
ICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWUtPmFwcGVuZCh7IHJ1bGVEYXRhLCBtYXRjaEVsZW1l
bnQgfSk7CisKKyAgICAgICAgaWYgKG1hdGNoRWxlbWVudCA9PSBNYXRjaEVsZW1lbnQ6Okhvc3Qp
CisgICAgICAgICAgICBwc2V1ZG9DbGFzc2VzQWZmZWN0aW5nSG9zdC5hZGQoc2VsZWN0b3ItPnBz
ZXVkb0NsYXNzVHlwZSgpKTsKKyAgICAgICAgcHNldWRvQ2xhc3NUeXBlcy5hZGQoc2VsZWN0b3It
PnBzZXVkb0NsYXNzVHlwZSgpKTsKKworICAgICAgICBzZXRVc2VzTWF0Y2hFbGVtZW50KG1hdGNo
RWxlbWVudCk7CisgICAgfQogfQogCiB2b2lkIFJ1bGVGZWF0dXJlU2V0OjphZGQoY29uc3QgUnVs
ZUZlYXR1cmVTZXQmIG90aGVyKQpAQCAtMzE5LDYgKzM3Myw3IEBAIHZvaWQgUnVsZUZlYXR1cmVT
ZXQ6OmFkZChjb25zdCBSdWxlRmVhdHVyZVNldCYgb3RoZXIpCiAKICAgICBhZGRNYXAocHNldWRv
Q2xhc3NSdWxlcywgb3RoZXIucHNldWRvQ2xhc3NSdWxlcyk7CiAgICAgcHNldWRvQ2xhc3Nlc0Fm
ZmVjdGluZ0hvc3QuYWRkKG90aGVyLnBzZXVkb0NsYXNzZXNBZmZlY3RpbmdIb3N0LmJlZ2luKCks
IG90aGVyLnBzZXVkb0NsYXNzZXNBZmZlY3RpbmdIb3N0LmVuZCgpKTsKKyAgICBwc2V1ZG9DbGFz
c1R5cGVzLmFkZChvdGhlci5wc2V1ZG9DbGFzc1R5cGVzLmJlZ2luKCksIG90aGVyLnBzZXVkb0Ns
YXNzVHlwZXMuZW5kKCkpOwogCiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCB1c2VkTWF0Y2hF
bGVtZW50cy5zaXplKCk7ICsraSkKICAgICAgICAgdXNlZE1hdGNoRWxlbWVudHNbaV0gPSB1c2Vk
TWF0Y2hFbGVtZW50c1tpXSB8fCBvdGhlci51c2VkTWF0Y2hFbGVtZW50c1tpXTsKQEAgLTM1MSw2
ICs0MDYsNyBAQCB2b2lkIFJ1bGVGZWF0dXJlU2V0OjpjbGVhcigpCiAgICAgYXR0cmlidXRlc0Fm
ZmVjdGluZ0hvc3QuY2xlYXIoKTsKICAgICBwc2V1ZG9DbGFzc1J1bGVzLmNsZWFyKCk7CiAgICAg
cHNldWRvQ2xhc3Nlc0FmZmVjdGluZ0hvc3QuY2xlYXIoKTsKKyAgICBwc2V1ZG9DbGFzc1R5cGVz
LmNsZWFyKCk7CiAgICAgdXNlc0ZpcnN0TGluZVJ1bGVzID0gZmFsc2U7CiAgICAgdXNlc0ZpcnN0
TGV0dGVyUnVsZXMgPSBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1J1bGVGZWF0dXJlLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9SdWxlRmVhdHVyZS5oCmluZGV4
IGU4YTkxOTFiZTUxMmUxZjA3YmE1MmQ4OTEzNGFkZjQxMDY5NDdiZTMuLjYzZjAyZTY5MDQ1ZDE5
M2Q1NmI3ZjU2ZjU3OTQwYzYwY2JmN2ExODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1J1bGVGZWF0dXJlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvUnVsZUZlYXR1cmUu
aApAQCAtNzQsNiArNzQsOCBAQCBzdHJ1Y3QgUnVsZUZlYXR1cmVXaXRoSW52YWxpZGF0aW9uU2Vs
ZWN0b3IgOiBwdWJsaWMgUnVsZUZlYXR1cmUgewogICAgIGNvbnN0IENTU1NlbGVjdG9yKiBpbnZh
bGlkYXRpb25TZWxlY3RvciB7IG51bGxwdHIgfTsKIH07CiAKK3VzaW5nIFBzZXVkb0NsYXNzSW52
YWxpZGF0aW9uS2V5ID0gc3RkOjp0dXBsZTx1bnNpZ25lZCwgdWludDhfdCwgQXRvbVN0cmluZz47
CisKIHVzaW5nIFJ1bGVGZWF0dXJlVmVjdG9yID0gVmVjdG9yPFJ1bGVGZWF0dXJlPjsKIAogc3Ry
dWN0IFJ1bGVGZWF0dXJlU2V0IHsKQEAgLTk4LDEwICsxMDAsMTEgQEAgc3RydWN0IFJ1bGVGZWF0
dXJlU2V0IHsKICAgICBIYXNoTWFwPEF0b21TdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxSdWxlRmVh
dHVyZVZlY3Rvcj4+IGlkUnVsZXM7CiAgICAgSGFzaE1hcDxBdG9tU3RyaW5nLCBzdGQ6OnVuaXF1
ZV9wdHI8UnVsZUZlYXR1cmVWZWN0b3I+PiBjbGFzc1J1bGVzOwogICAgIEhhc2hNYXA8QXRvbVN0
cmluZywgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxSdWxlRmVhdHVyZVdpdGhJbnZhbGlkYXRpb25T
ZWxlY3Rvcj4+PiBhdHRyaWJ1dGVSdWxlczsKLSAgICBIYXNoTWFwPENTU1NlbGVjdG9yOjpQc2V1
ZG9DbGFzc1R5cGUsIHN0ZDo6dW5pcXVlX3B0cjxSdWxlRmVhdHVyZVZlY3Rvcj4sIEludEhhc2g8
Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZT4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFpdHM8
Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZT4+IHBzZXVkb0NsYXNzUnVsZXM7CisgICAgSGFz
aE1hcDxQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleSwgc3RkOjp1bmlxdWVfcHRyPFJ1bGVGZWF0
dXJlVmVjdG9yPj4gcHNldWRvQ2xhc3NSdWxlczsKICAgICBIYXNoU2V0PEF0b21TdHJpbmc+IGNs
YXNzZXNBZmZlY3RpbmdIb3N0OwogICAgIEhhc2hTZXQ8QXRvbVN0cmluZz4gYXR0cmlidXRlc0Fm
ZmVjdGluZ0hvc3Q7CiAgICAgSGFzaFNldDxDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlLCBJ
bnRIYXNoPENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGU+LCBXVEY6OlN0cm9uZ0VudW1IYXNo
VHJhaXRzPENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGU+PiBwc2V1ZG9DbGFzc2VzQWZmZWN0
aW5nSG9zdDsKKyAgICBIYXNoU2V0PENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUsIEludEhh
c2g8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZT4sIFdURjo6U3Ryb25nRW51bUhhc2hUcmFp
dHM8Q1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzVHlwZT4+IHBzZXVkb0NsYXNzVHlwZXM7CiAKICAg
ICBzdGQ6OmFycmF5PGJvb2wsIG1hdGNoRWxlbWVudENvdW50PiB1c2VkTWF0Y2hFbGVtZW50cyB7
IH07CiAKQEAgLTExNiw3ICsxMTksNyBAQCBwcml2YXRlOgogICAgICAgICBWZWN0b3I8c3RkOjpw
YWlyPEF0b21TdHJpbmcsIE1hdGNoRWxlbWVudD4sIDMyPiBpZHM7CiAgICAgICAgIFZlY3Rvcjxz
dGQ6OnBhaXI8QXRvbVN0cmluZywgTWF0Y2hFbGVtZW50PiwgMzI+IGNsYXNzZXM7CiAgICAgICAg
IFZlY3RvcjxzdGQ6OnBhaXI8Y29uc3QgQ1NTU2VsZWN0b3IqLCBNYXRjaEVsZW1lbnQ+LCAzMj4g
YXR0cmlidXRlczsKLSAgICAgICAgVmVjdG9yPHN0ZDo6cGFpcjxDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3NUeXBlLCBNYXRjaEVsZW1lbnQ+LCAzMj4gcHNldWRvQ2xhc3NlczsKKyAgICAgICAgVmVj
dG9yPHN0ZDo6cGFpcjxjb25zdCBDU1NTZWxlY3RvciosIE1hdGNoRWxlbWVudD4sIDMyPiBwc2V1
ZG9DbGFzc2VzOwogICAgIH07CiAgICAgdm9pZCByZWN1cnNpdmVseUNvbGxlY3RGZWF0dXJlc0Zy
b21TZWxlY3RvcihTZWxlY3RvckZlYXR1cmVzJiwgY29uc3QgQ1NTU2VsZWN0b3ImLCBNYXRjaEVs
ZW1lbnQgPSBNYXRjaEVsZW1lbnQ6OlN1YmplY3QpOwogfTsKQEAgLTEyNCw1ICsxMjcsMTMgQEAg
cHJpdmF0ZToKIGJvb2wgaXNIYXNQc2V1ZG9DbGFzc01hdGNoRWxlbWVudChNYXRjaEVsZW1lbnQp
OwogTWF0Y2hFbGVtZW50IGNvbXB1dGVIYXNQc2V1ZG9DbGFzc01hdGNoRWxlbWVudChjb25zdCBD
U1NTZWxlY3RvciYpOwogCitlbnVtIGNsYXNzIEludmFsaWRhdGlvbktleVR5cGUgOiB1aW50OF90
IHsgVW5pdmVyc2FsID0gMSwgQ2xhc3MsIElkLCBUYWcgfTsKK1BzZXVkb0NsYXNzSW52YWxpZGF0
aW9uS2V5IG1ha2VQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleShDU1NTZWxlY3Rvcjo6UHNldWRv
Q2xhc3NUeXBlLCBJbnZhbGlkYXRpb25LZXlUeXBlLCBjb25zdCBBdG9tU3RyaW5nJiA9IHN0YXJB
dG9tKCkpOworCitpbmxpbmUgYm9vbCBpc1VuaXZlcnNhbEludmFsaWRhdGlvbihjb25zdCBQc2V1
ZG9DbGFzc0ludmFsaWRhdGlvbktleSYga2V5KQoreworICAgIHJldHVybiBzdGF0aWNfY2FzdDxJ
bnZhbGlkYXRpb25LZXlUeXBlPihzdGQ6OmdldDwxPihrZXkpKSA9PSBJbnZhbGlkYXRpb25LZXlU
eXBlOjpVbml2ZXJzYWw7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFN0eWxlCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVNjb3BlUnVs
ZVNldHMuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVTY29wZVJ1bGVTZXRzLmNwcApp
bmRleCA0ZjlhMGQ0MTIyNDdkNmZiOWVlOGNmMGFkYTdhODYyMDM3ZDgzMWVhLi5mNTRmMzYwYWIy
YWY1ZmFjZmI1MjhhZDU2NDNlMDA1YTI5NGM0MDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlU2NvcGVSdWxlU2V0cy5jcHAKQEAgLTI5NSw5ICsyOTUsOSBAQCBjb25zdCBWZWN0b3I8
SW52YWxpZGF0aW9uUnVsZVNldD4qIFNjb3BlUnVsZVNldHM6OmF0dHJpYnV0ZUludmFsaWRhdGlv
blJ1bGVTZXRzKAogICAgIHJldHVybiBlbnN1cmVJbnZhbGlkYXRpb25SdWxlU2V0cyhhdHRyaWJ1
dGVOYW1lLCBtX2F0dHJpYnV0ZUludmFsaWRhdGlvblJ1bGVTZXRzLCBtX2ZlYXR1cmVzLmF0dHJp
YnV0ZVJ1bGVzKTsKIH0KIAotY29uc3QgVmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+KiBTY29w
ZVJ1bGVTZXRzOjpwc2V1ZG9DbGFzc0ludmFsaWRhdGlvblJ1bGVTZXRzKENTU1NlbGVjdG9yOjpQ
c2V1ZG9DbGFzc1R5cGUgcHNldWRvQ2xhc3MpIGNvbnN0Citjb25zdCBWZWN0b3I8SW52YWxpZGF0
aW9uUnVsZVNldD4qIFNjb3BlUnVsZVNldHM6OnBzZXVkb0NsYXNzSW52YWxpZGF0aW9uUnVsZVNl
dHMoY29uc3QgUHNldWRvQ2xhc3NJbnZhbGlkYXRpb25LZXkmIHBzZXVkb0NsYXNzS2V5KSBjb25z
dAogewotICAgIHJldHVybiBlbnN1cmVJbnZhbGlkYXRpb25SdWxlU2V0cyhwc2V1ZG9DbGFzcywg
bV9wc2V1ZG9DbGFzc0ludmFsaWRhdGlvblJ1bGVTZXRzLCBtX2ZlYXR1cmVzLnBzZXVkb0NsYXNz
UnVsZXMpOworICAgIHJldHVybiBlbnN1cmVJbnZhbGlkYXRpb25SdWxlU2V0cyhwc2V1ZG9DbGFz
c0tleSwgbV9wc2V1ZG9DbGFzc0ludmFsaWRhdGlvblJ1bGVTZXRzLCBtX2ZlYXR1cmVzLnBzZXVk
b0NsYXNzUnVsZXMpOwogfQogCiBib29sIFNjb3BlUnVsZVNldHM6Omhhc0NvbXBsZXhTZWxlY3Rv
cnNGb3JTdHlsZUF0dHJpYnV0ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZVNjb3BlUnVsZVNldHMuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2Nv
cGVSdWxlU2V0cy5oCmluZGV4IGMxMjMxMzg3ZGEyNDBjYWI5ZDY4NzJlMTcyZDQ5NzA2ZWZiY2Vj
N2IuLjZlODU3NzVmZWQ0ZDViYTc1MTQyODg2MjE3YmMzYjE0Y2VhYmY0YmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlU2NvcGVSdWxlU2V0cy5oCkBAIC02Nyw3ICs2Nyw3IEBAIHB1Ymxp
YzoKICAgICBjb25zdCBWZWN0b3I8SW52YWxpZGF0aW9uUnVsZVNldD4qIGlkSW52YWxpZGF0aW9u
UnVsZVNldHMoY29uc3QgQXRvbVN0cmluZyYpIGNvbnN0OwogICAgIGNvbnN0IFZlY3RvcjxJbnZh
bGlkYXRpb25SdWxlU2V0PiogY2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0cyhjb25zdCBBdG9tU3Ry
aW5nJikgY29uc3Q7CiAgICAgY29uc3QgVmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+KiBhdHRy
aWJ1dGVJbnZhbGlkYXRpb25SdWxlU2V0cyhjb25zdCBBdG9tU3RyaW5nJikgY29uc3Q7Ci0gICAg
Y29uc3QgVmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+KiBwc2V1ZG9DbGFzc0ludmFsaWRhdGlv
blJ1bGVTZXRzKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzc1R5cGUpIGNvbnN0OworICAgIGNvbnN0
IFZlY3RvcjxJbnZhbGlkYXRpb25SdWxlU2V0PiogcHNldWRvQ2xhc3NJbnZhbGlkYXRpb25SdWxl
U2V0cyhjb25zdCBQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleSYpIGNvbnN0OwogCiAgICAgY29u
c3QgVmVjdG9yPEludmFsaWRhdGlvblJ1bGVTZXQ+KiBpbnZhbGlkYXRpb25SdWxlU2V0c0ZvckNo
aWxkQ2hhbmdlKGNvbnN0IEVsZW1lbnQmKTsKIApAQCAtMTA2LDcgKzEwNiw3IEBAIHByaXZhdGU6
CiAgICAgbXV0YWJsZSBIYXNoTWFwPEF0b21TdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8
SW52YWxpZGF0aW9uUnVsZVNldD4+PiBtX2lkSW52YWxpZGF0aW9uUnVsZVNldHM7CiAgICAgbXV0
YWJsZSBIYXNoTWFwPEF0b21TdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8SW52YWxpZGF0
aW9uUnVsZVNldD4+PiBtX2NsYXNzSW52YWxpZGF0aW9uUnVsZVNldHM7CiAgICAgbXV0YWJsZSBI
YXNoTWFwPEF0b21TdHJpbmcsIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8SW52YWxpZGF0aW9uUnVs
ZVNldD4+PiBtX2F0dHJpYnV0ZUludmFsaWRhdGlvblJ1bGVTZXRzOwotICAgIG11dGFibGUgSGFz
aE1hcDxDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NUeXBlLCBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9y
PEludmFsaWRhdGlvblJ1bGVTZXQ+PiwgSW50SGFzaDxDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NU
eXBlPiwgV1RGOjpTdHJvbmdFbnVtSGFzaFRyYWl0czxDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3NU
eXBlPj4gbV9wc2V1ZG9DbGFzc0ludmFsaWRhdGlvblJ1bGVTZXRzOworICAgIG11dGFibGUgSGFz
aE1hcDxQc2V1ZG9DbGFzc0ludmFsaWRhdGlvbktleSwgc3RkOjp1bmlxdWVfcHRyPFZlY3RvcjxJ
bnZhbGlkYXRpb25SdWxlU2V0Pj4+IG1fcHNldWRvQ2xhc3NJbnZhbGlkYXRpb25SdWxlU2V0czsK
IAogICAgIG11dGFibGUgc3RkOjpvcHRpb25hbDxib29sPiBtX2NhY2hlZEhhc0NvbXBsZXhTZWxl
Y3RvcnNGb3JTdHlsZUF0dHJpYnV0ZTsKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>