<?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>240197</bug_id>
          
          <creation_ts>2022-05-06 17:43:02 -0700</creation_ts>
          <short_desc>REGRESSION(r293824): Speedometer2/Angular2-TypeScript-TodoMVC 8% regression</short_desc>
          <delta_ts>2022-05-06 18:43:13 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</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>
          
          <blocked>240003</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Commit Bot">commit-queue</reporter>
          <assigned_to name="WebKit Commit Bot">commit-queue</assigned_to>
          <cc>cdumez</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1867404</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2022-05-06 17:43:02 -0700</bug_when>
    <thetext>https://commits.webkit.org/r293824 introduced a regression:
Speedometer2/Angular2-TypeScript-TodoMVC 8% regression

This is an automatic bug report generated by webkitbot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests fail.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867406</commentid>
    <comment_count>1</comment_count>
      <attachid>458984</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2022-05-06 17:43:15 -0700</bug_when>
    <thetext>Created attachment 458984
REVERT of r293824

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the revert will be successful.  This process takes approximately 15 minutes.

If you would like to land the revert faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867417</commentid>
    <comment_count>2</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-05-06 18:42:19 -0700</bug_when>
    <thetext>Committed r293941 (250387@main): &lt;https://commits.webkit.org/250387@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 458984.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1867418</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-05-06 18:43:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/92892320&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458984</attachid>
            <date>2022-05-06 17:43:15 -0700</date>
            <delta_ts>2022-05-06 18:42:21 -0700</delta_ts>
            <desc>REVERT of r293824</desc>
            <filename>bug-240197-20220506174314.patch</filename>
            <type>text/plain</type>
            <size>61411</size>
            <attacher name="WebKit Commit Bot">commit-queue</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkzOTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTQzNjBlNTY1N2JmZWVm
MjlmNDYzMTI1NmEyMzMwN2M1ZjBhMWM5YS4uYjgwNzI5ZDg5ZDJjMDQyZWQyODQ2YmM5NTU2OWU2
MTdiNzU4MGJkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDIyLTA1LTA2ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KKworICAgICAgICBVbnJldmlld2Vk
LCByZXZlcnRpbmcgcjI5MzgyNC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTI0MDE5NworCisgICAgICAgIFNwZWVkb21ldGVyMi9Bbmd1bGFyMi1UeXBl
U2NyaXB0LVRvZG9NVkMgOCUgcmVncmVzc2lvbgorCisgICAgICAgIFJldmVydGVkIGNoYW5nZXNl
dDoKKworICAgICAgICAiU1dPcmlnaW5TdG9yZSBpcyBubyBsb25nZXIgbmVlZGVkIgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjQwMDAzCisgICAgICAg
IGh0dHBzOi8vY29tbWl0cy53ZWJraXQub3JnL3IyOTM4MjQKKwogMjAyMi0wNS0wNiAgUm9iIEJ1
aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFVzZSBjb3JyZWN0IGRvY3VtZW50IGFz
IHJvb3QgZm9yIGxhenkgaW1hZ2Ugb2JzZXJ2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYmUyNzFhYmQ0OTZjMmMx
MWE5ZDQ5YTdmN2E1ODFjYWVlNWI3YTk3Yi4uZWQ2ZTc1NjIwZGU4Zjc3ZmVjOGQ4MGY2ZTE0Yzdh
OTU5NDYzZjFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMi0wNS0wNiAgQ29tbWl0
IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVW5yZXZpZXdlZCwg
cmV2ZXJ0aW5nIHIyOTM4MjQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yNDAxOTcKKworICAgICAgICBTcGVlZG9tZXRlcjIvQW5ndWxhcjItVHlwZVNj
cmlwdC1Ub2RvTVZDIDglIHJlZ3Jlc3Npb24KKworICAgICAgICBSZXZlcnRlZCBjaGFuZ2VzZXQ6
CisKKyAgICAgICAgIlNXT3JpZ2luU3RvcmUgaXMgbm8gbG9uZ2VyIG5lZWRlZCIKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0MDAwMworICAgICAgICBo
dHRwczovL2NvbW1pdHMud2Via2l0Lm9yZy9yMjkzODI0CisKIDIwMjItMDUtMDYgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBGaXggYWRhdHRy
aWJ1dGlvbmQgYnVpbGQgaW4gaW50ZXJuYWwgYnVpbGQgb24gb2xkZXIgbWFjT1MKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJz
LmNtYWtlCmluZGV4IGViZDZjMzAwZTdjMzJiN2NmM2ZhZDA3MDQ0OGIwNjdiZmFhOWI3OGMuLjc1
N2YzMjYxN2Y1N2QzOTQzNTMyMDE0ZDhmYjBiMDFkMzA1YjJhYWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFr
ZQpAQCAtMjA0NCw2ICsyMDQ0LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVB
REVSUwogICAgIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94
eS5oCiAKICAgICB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmgK
KyAgICB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXT3JpZ2luU3RvcmUuaAogICAgIHdvcmtlcnMv
c2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaAogICAgIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXJSZWdpc3RyYXRpb24uaAogICAgIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJU
b0NvbnRleHRDb25uZWN0aW9uLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNTEyNzI5OTQ5NDliMjA3NjM3
ZjY0ZGU1ODY2NTNjNGNlZmU0MjljNi4uMjk2OGMwYzhlY2U1YTg1MTE1NmEwMTczMTU2MjFiNWIx
NzNkODVlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTI4MDEsNiArMjgwMSw3IEBAIHdvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwCiB3b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1JlZ2lzdHJhdGlvbkRhdGFiYXNlLmNwcAogd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9SZWdpc3Ry
YXRpb25TdG9yZS5jcHAKK3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dPcmlnaW5TdG9yZS5jcHAK
IHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTY3JpcHRTdG9yYWdlLmNwcAogd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlci5jcHAKIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJK
b2JRdWV1ZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCA0ZTBmNGE0NWM4NzA1NjQ5N2QxODA3OTI5YTc3MDg0YTRkNzU1Zjcz
Li40ZjQyYmEzNzljZWY2ZjExMjdkNTkyZGQyNGU3MjhiNjg4ZmI4ODc3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTE1LDYg
KzExMTUsNyBAQAogCQk0MTUwODAzNzFFM0YwMEIwMDA1MUQ3NUQgLyogTGliV2ViUlRDQXVkaW9N
b2R1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
NTA4MDM1MUUzRjAwQUEwMDUxRDc1RCAvKiBMaWJXZWJSVENBdWRpb01vZHVsZS5oICovOyB9Owog
CQk0MTUwRjlGMTEyQjZFMEU3MDAwOEM4NjAgLyogU2xpZGVyVGh1bWJFbGVtZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTUwRjlFRjEyQjZFMEU3
MDAwOEM4NjAgLyogU2xpZGVyVGh1bWJFbGVtZW50LmggKi87IH07CiAJCTQxNTE5Q0I4MUZEMUYw
MkUwMDdGNjIzQyAvKiBTZXJ2aWNlV29ya2VyQ2xpZW50UXVlcnlPcHRpb25zLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTNGQzRDRDFGRDFERDhDMDA1
NDFDNEIgLyogU2VydmljZVdvcmtlckNsaWVudFF1ZXJ5T3B0aW9ucy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxNTFFNUJCMUZCQTRDN0EwMEU0
N0UyRCAvKiBTV09yaWdpblN0b3JlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTUxRTVCNzFGQkE0Qzc1MDBFNDdFMkQgLyogU1dPcmlnaW5TdG9yZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxNTc0
NzQ3MUUzODY5QTQwMEU5MTREOCAvKiBMaWJXZWJSVENNYWNyb3MuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNTc0NzQzMUUzODY5OUUwMEU5MTREOCAv
KiBMaWJXZWJSVENNYWNyb3MuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk0MTU3NDc0ODFFMzg2OUE3MDBFOTE0RDggLyogTGliV2ViUlRDUHJvdmlk
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNTc0
NzQ0MUUzODY5OUUwMEU5MTREOCAvKiBMaWJXZWJSVENQcm92aWRlci5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxNTdFQkZBMUUzQUI2NzkwMEFD
OUZFOSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE1N0VCRjkxRTNBQjA2ODAwQUM5RkU5IC8q
IE1vY2tMaWJXZWJSVENQZWVyQ29ubmVjdGlvbi5jcHAgKi87IH07CkBAIC04NzA4LDYgKzg3MDks
OCBAQAogCQk0MTUwODAzNTFFM0YwMEFBMDA1MUQ3NUQgLyogTGliV2ViUlRDQXVkaW9Nb2R1bGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gTGliV2ViUlRDQXVkaW9Nb2R1bGUu
aDsgcGF0aCA9IGxpYndlYnJ0Yy9MaWJXZWJSVENBdWRpb01vZHVsZS5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTUwRjlFRjEyQjZFMEU3MDAwOEM4NjAgLyogU2xpZGVyVGh1bWJF
bGVtZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNsaWRlclRodW1iRWxl
bWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTUwRjlGMDEyQjZFMEU3MDAw
OEM4NjAgLyogU2xpZGVyVGh1bWJFbGVtZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFNsaWRlclRodW1iRWxlbWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQxNTFFNUI3MUZCQTRDNzUwMEU0N0UyRCAvKiBTV09yaWdpblN0b3JlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNXT3JpZ2luU3RvcmUuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE1MUU1QjkxRkJBNEM3NjAwRTQ3RTJEIC8qIFNXT3JpZ2lu
U3RvcmUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1dPcmlnaW5T
dG9yZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTc0NzQzMUUzODY5OUUw
MEU5MTREOCAvKiBMaWJXZWJSVENNYWNyb3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gTGliV2ViUlRDTWFjcm9zLmg7IHBhdGggPSBsaWJ3ZWJydGMvTGliV2ViUlRDTWFjcm9z
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTc0NzQ0MUUzODY5OUUwMEU5MTRE
OCAvKiBMaWJXZWJSVENQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUg
PSBMaWJXZWJSVENQcm92aWRlci5oOyBwYXRoID0gbGlid2VicnRjL0xpYldlYlJUQ1Byb3ZpZGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxNTdFQkY4MUUzQUIwNjgwMEFDOUZF
OSAvKiBNb2NrTGliV2ViUlRDUGVlckNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gTW9ja0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0yMjQyNSw2ICsyMjQyOCw4IEBACiAJCQkJNTFCOTE0MEMxRkQyNzgy
NTAwRUUyODU5IC8qIFJlZ2lzdHJhdGlvbkRhdGFiYXNlLmggKi8sCiAJCQkJNTFCOTE0MEUxRkQy
NzgyNTAwRUUyODU5IC8qIFJlZ2lzdHJhdGlvblN0b3JlLmNwcCAqLywKIAkJCQk1MUI5MTQwQjFG
RDI3ODI1MDBFRTI4NTkgLyogUmVnaXN0cmF0aW9uU3RvcmUuaCAqLywKKwkJCQk0MTUxRTVCOTFG
QkE0Qzc2MDBFNDdFMkQgLyogU1dPcmlnaW5TdG9yZS5jcHAgKi8sCisJCQkJNDE1MUU1QjcxRkJB
NEM3NTAwRTQ3RTJEIC8qIFNXT3JpZ2luU3RvcmUuaCAqLywKIAkJCQk0NjI3M0NBRTI2MEU1OURG
MDA2RkFBOTEgLyogU1dTY3JpcHRTdG9yYWdlLmNwcCAqLywKIAkJCQk0NjI3M0NBQzI2MEU1OURG
MDA2RkFBOTEgLyogU1dTY3JpcHRTdG9yYWdlLmggKi8sCiAJCQkJNTE3QTUyRUYxRjQ3NTM1OTAw
RENEQzBBIC8qIFNXU2VydmVyLmNwcCAqLywKQEAgLTM3OTE2LDYgKzM3OTIxLDcgQEAKIAkJCQk0
NkVDQjYzODFGRDBBM0M4MDA4OEU1QUQgLyogU1dDbGllbnRDb25uZWN0aW9uLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk0NjY1OERDOTFGQTI0Qjg3MDBGN0RENTQgLyogU1dDb250ZXh0TWFuYWdlci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQzExQTlFQ0UyMTQwM0E1QzAwQ0ZCMjBBIC8qIFN3aXRjaGlu
Z0dQVUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE1MUU1QkIxRkJBNEM3QTAwRTQ3RTJE
IC8qIFNXT3JpZ2luU3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2MjczQ0FGMjYwRTU5RUYw
MDZGQUE5MSAvKiBTV1NjcmlwdFN0b3JhZ2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0E1MkYw
MUY0NzUzNUIwMERDREMwQSAvKiBTV1NlcnZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODMxMUMw
MDMxRkFBMkU5NTAwRTNDOEU1IC8qIFNXU2VydmVySm9iUXVldWUuaCBpbiBIZWFkZXJzICovLApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50TG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Eb2N1bWVudExvYWRlci5jcHAKaW5kZXggNzE3MzQ2NzU1ZjY1
MTg2NTgzMTE2MTg5NDVjNDY1MDEzMWZiMzJkNi4uY2U0NTM0MTU4ODRiMzQwMDE4NWM4ZjllYmI0
MDBiMDFlNzMyNTQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0RvY3VtZW50
TG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRG9jdW1lbnRMb2FkZXIuY3Bw
CkBAIC01NzgsNiArNTc4LDEwIEBAIHZvaWQgRG9jdW1lbnRMb2FkZXI6Om1hdGNoUmVnaXN0cmF0
aW9uKGNvbnN0IFVSTCYgdXJsLCBTV0NsaWVudENvbm5lY3Rpb246OlJlZ2lzCiAgICAgfQogCiAg
ICAgYXV0byBvcmlnaW4gPSAoIW1fZnJhbWUtPmlzTWFpbkZyYW1lKCkgJiYgbV9mcmFtZS0+ZG9j
dW1lbnQoKSkgPyBtX2ZyYW1lLT5kb2N1bWVudCgpLT50b3BPcmlnaW4oKS5kYXRhKCkgOiBTZWN1
cml0eU9yaWdpbkRhdGE6OmZyb21VUkwodXJsKTsKKyAgICBpZiAoIVNlcnZpY2VXb3JrZXJQcm92
aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKS5tYXlIYXZlU2Vydmlj
ZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4ob3JpZ2luKSkgeworICAgICAgICBjYWxsYmFjayhz
dGQ6Om51bGxvcHQpOworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgYXV0byYgY29ubmVj
dGlvbiA9IFNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNv
bm5lY3Rpb24oKTsKICAgICBjb25uZWN0aW9uLm1hdGNoUmVnaXN0cmF0aW9uKFdURk1vdmUob3Jp
Z2luKSwgdXJsLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggOTE4OTNiZTg1Y2E3NTk5
NGZmNGFlYTAzM2RiOGNkMGI4Zjg1NWM1YS4uMjNlMDZjNjFmMmU3ZjUyNThkYjM0Zjg3ZDA0MDVh
YjZlMzUyOTM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NX
Q2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
V0NsaWVudENvbm5lY3Rpb24uaApAQCAtODMsNiArODMsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IGRlc3RpbmF0aW9uLCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBjb25zdCBTZXJ2aWNlV29y
a2VyT3JDbGllbnRJZGVudGlmaWVyJiBzb3VyY2UpID0gMDsKIAogICAgIHZpcnR1YWwgU1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcigpIGNvbnN0
ID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgbWF5SGF2ZVNlcnZpY2VXb3JrZXJSZWdpc3RlcmVkRm9y
T3JpZ2luKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYpIGNvbnN0ID0gMDsKIAogICAgIHZpcnR1
YWwgdm9pZCByZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoY29uc3QgQ2xpZW50T3JpZ2luJiwg
U2VydmljZVdvcmtlckNsaWVudERhdGEmJiwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcj4mLCBTdHJpbmcmJiB1c2VyQWdlbnQpID0gMDsKICAg
ICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXIpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKaW5kZXggMWE1
MmRjZmQyNGVmMjY3YmFkOGRiNmRjNDc4OGEyMjFmNjI5MDAzYy4uZjE0MGY5OWI0MDg2YmY2ZmJj
ZjcyYjZjNDdlMGQ0MWQxZmEwZDg1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTE3OCw2
ICsxNzgsMTIgQEAgU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBXb3JrZXJTV0NsaWVudENv
bm5lY3Rpb246OnNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWUKICAgICByZXR1cm4gaWRlbnRpZmll
cjsKIH0KIAorYm9vbCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246Om1heUhhdmVTZXJ2aWNlV29y
a2VyUmVnaXN0ZXJlZEZvck9yaWdpbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmKSBjb25zdAor
eworICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIHJldHVybiB0cnVlOworfQorCiB2b2lk
IFdvcmtlclNXQ2xpZW50Q29ubmVjdGlvbjo6cmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xpZW50KGNv
bnN0IENsaWVudE9yaWdpbiYgY2xpZW50T3JpZ2luLCBTZXJ2aWNlV29ya2VyQ2xpZW50RGF0YSYm
IGRhdGEsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXI+JiBpZGVudGlmaWVyLCBTdHJpbmcmJiB1c2VyQWdlbnQpCiB7CiAgICAgY2FsbE9uTWFp
blRocmVhZChbY2xpZW50T3JpZ2luID0gY2xpZW50T3JpZ2luLmlzb2xhdGVkQ29weSgpLCBkYXRh
ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUoZGF0YSkpLCBpZGVudGlmaWVyLCB1c2VyQWdlbnQg
PSBjcm9zc1RocmVhZENvcHkoV1RGTW92ZSh1c2VyQWdlbnQpKV0oKSBtdXRhYmxlIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENv
bm5lY3Rpb24uaAppbmRleCBmMzA3YjZmZjZjZDhjZWU5OTJmOTQ5NjViNTFhYzhjOTQxMDFlMjBm
Li4yOWJmYjMzZWY0YjNkNDA2NTUzMzAyMWFjNmUyNTQ3NjgwN2IwYWI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVj
dGlvbi5oCkBAIC01Myw2ICs1Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZXNvbHZlUmVn
aXN0cmF0aW9uUHJvbWlzZShjb25zdCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uS2V5JikgZmlu
YWw7CiAgICAgdm9pZCBwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihTZXJ2aWNlV29ya2VySWRl
bnRpZmllciBkZXN0aW5hdGlvbiwgTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgY29uc3QgU2Vy
dmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllciYgc291cmNlKSBmaW5hbDsKICAgICBTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKCkgY29uc3Qg
ZmluYWw7CisgICAgYm9vbCBtYXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4o
Y29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJikgY29uc3QgZmluYWw7CiAgICAgdm9pZCBmaW5pc2hG
ZXRjaGluZ1NjcmlwdEluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmll
ciYsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25LZXkmJiwgV29ya2VyRmV0Y2hSZXN1bHQmJikg
ZmluYWw7CiAgICAgdm9pZCBzY2hlZHVsZUpvYkluU2VydmVyKGNvbnN0IFNlcnZpY2VXb3JrZXJK
b2JEYXRhJikgZmluYWw7CiAgICAgdm9pZCBzY2hlZHVsZUpvYihTZXJ2aWNlV29ya2VyT3JDbGll
bnRJZGVudGlmaWVyLCBjb25zdCBTZXJ2aWNlV29ya2VySm9iRGF0YSYpIGZpbmFsOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV09yaWdpblN0b3Jl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dPcmlnaW5TdG9y
ZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjAxZmIxNjFjZThjODQ4NWQ1NjI2MmViNmFjNjcxNDE0ZGMwMmM0
MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dPcmlnaW5TdG9yZS5jcHAKQEAgLTAsMCArMSw3MSBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNs
dWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJTV09yaWdpblN0b3JlLmgiCisKKyNpZiBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJTZWN1cml0eU9yaWdpbi5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3ZvaWQgU1dPcmlnaW5TdG9yZTo6YWRkKGNvbnN0IFNlY3VyaXR5T3Jp
Z2luRGF0YSYgb3JpZ2luKQoreworICAgICsrbV9vcmlnaW5Db3VudHMuZW5zdXJlKG9yaWdpbiwg
WyZdIHsKKyAgICAgICAgYWRkVG9TdG9yZShvcmlnaW4pOworICAgICAgICByZXR1cm4gMDsKKyAg
ICB9KS5pdGVyYXRvci0+dmFsdWU7Cit9CisKK3ZvaWQgU1dPcmlnaW5TdG9yZTo6cmVtb3ZlKGNv
bnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgb3JpZ2luKQoreworICAgIGF1dG8gaXRlcmF0b3IgPSBt
X29yaWdpbkNvdW50cy5maW5kKG9yaWdpbik7CisgICAgQVNTRVJUKGl0ZXJhdG9yICE9IG1fb3Jp
Z2luQ291bnRzLmVuZCgpKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9vcmlnaW5Db3VudHMuZW5k
KCkpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICgtLWl0ZXJhdG9yLT52YWx1ZSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9vcmlnaW5Db3VudHMucmVtb3ZlKGl0ZXJhdG9yKTsKKyAgICBy
ZW1vdmVGcm9tU3RvcmUob3JpZ2luKTsKK30KKwordm9pZCBTV09yaWdpblN0b3JlOjpjbGVhcihj
b25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbikKK3sKKyAgICBtX29yaWdpbkNvdW50cy5y
ZW1vdmUob3JpZ2luKTsKKyAgICByZW1vdmVGcm9tU3RvcmUob3JpZ2luKTsKK30KKwordm9pZCBT
V09yaWdpblN0b3JlOjpjbGVhckFsbCgpCit7CisgICAgbV9vcmlnaW5Db3VudHMuY2xlYXIoKTsK
KyAgICBjbGVhclN0b3JlKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dPcmlnaW5TdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL3NlcnZlci9TV09yaWdpblN0b3JlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uY2IyOGIzOTQx
OTkyOWZjMmRhZDRlYjdiZDdkZWNlZTIwOWQ5NGNhMQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dPcmlnaW5TdG9yZS5oCkBAIC0wLDAg
KzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKKworI2luY2x1ZGUgIlNlY3VyaXR5T3JpZ2luRGF0YS5oIgorI2luY2x1ZGUgPHd0
Zi9IYXNoTWFwLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgU1dPcmlnaW5TdG9y
ZSB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgdmlydHVhbCB+
U1dPcmlnaW5TdG9yZSgpID0gZGVmYXVsdDsKKworICAgIHZvaWQgYWRkKGNvbnN0IFNlY3VyaXR5
T3JpZ2luRGF0YSYpOworICAgIHZvaWQgcmVtb3ZlKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYp
OworICAgIHZvaWQgY2xlYXIoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJik7CisgICAgdm9pZCBj
bGVhckFsbCgpOworCisgICAgdmlydHVhbCB2b2lkIGltcG9ydENvbXBsZXRlKCkgPSAwOworCitw
cml2YXRlOgorICAgIHZpcnR1YWwgdm9pZCBhZGRUb1N0b3JlKGNvbnN0IFNlY3VyaXR5T3JpZ2lu
RGF0YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgcmVtb3ZlRnJvbVN0b3JlKGNvbnN0IFNlY3Vy
aXR5T3JpZ2luRGF0YSYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgY2xlYXJTdG9yZSgpID0gMDsK
KworICAgIEhhc2hNYXA8U2VjdXJpdHlPcmlnaW5EYXRhLCB1aW50NjRfdD4gbV9vcmlnaW5Db3Vu
dHM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXIuY3BwCmluZGV4IGQyMmQzYmRjMDEzMjU2ODNhYzY2Yjg4Y2ViZjUxYzYyMzA0
Y2U0MzkuLmE2OGEwNDU0NDg1MjViZDkwOTRhMDAwNWE1MjY2Yjg2N2VhMGI3MTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuY3BwCkBA
IC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk5vdGlmaWNh
dGlvbkRhdGEuaCIKICNpbmNsdWRlICJSZWdpc3RyYXRpb25TdG9yZS5oIgorI2luY2x1ZGUgIlNX
T3JpZ2luU3RvcmUuaCIKICNpbmNsdWRlICJTV1NlcnZlckpvYlF1ZXVlLmgiCiAjaW5jbHVkZSAi
U1dTZXJ2ZXJSZWdpc3RyYXRpb24uaCIKICNpbmNsdWRlICJTV1NlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb24uaCIKQEAgLTE0OCw2ICsxNDksNyBAQCB2b2lkIFNXU2VydmVyOjpyZWdpc3RyYXRpb25T
dG9yZUltcG9ydENvbXBsZXRlKCkKIHsKICAgICBBU1NFUlQoIW1faW1wb3J0Q29tcGxldGVkKTsK
ICAgICBtX2ltcG9ydENvbXBsZXRlZCA9IHRydWU7CisgICAgbV9vcmlnaW5TdG9yZS0+aW1wb3J0
Q29tcGxldGUoKTsKIAogICAgIGF1dG8gY2xlYXJDYWxsYmFja3MgPSBXVEZNb3ZlKG1fY2xlYXJD
b21wbGV0aW9uQ2FsbGJhY2tzKTsKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogY2xlYXJDYWxs
YmFja3MpCkBAIC0yMjIsNiArMjI0LDcgQEAgdm9pZCBTV1NlcnZlcjo6YWRkUmVnaXN0cmF0aW9u
KHN0ZDo6dW5pcXVlX3B0cjxTV1NlcnZlclJlZ2lzdHJhdGlvbj4mJiByZWdpc3RyYXQKICAgICBp
ZiAocmVnaXN0cmF0aW9uLT5zZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXIoKSkKICAgICAgICAg
bV9zZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXJUb1JlZ2lzdHJhdGlvbk1hcC5hZGQoKnJlZ2lz
dHJhdGlvbi0+c2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyKCksICpyZWdpc3RyYXRpb24pOwog
CisgICAgbV9vcmlnaW5TdG9yZS0+YWRkKHJlZ2lzdHJhdGlvbi0+a2V5KCkudG9wT3JpZ2luKCkp
OwogICAgIGF1dG8gcmVnaXN0cmF0aW9uSUQgPSByZWdpc3RyYXRpb24tPmlkZW50aWZpZXIoKTsK
ICAgICBBU1NFUlQoIW1fc2NvcGVUb1JlZ2lzdHJhdGlvbk1hcC5jb250YWlucyhyZWdpc3RyYXRp
b24tPmtleSgpKSk7CiAgICAgbV9zY29wZVRvUmVnaXN0cmF0aW9uTWFwLnNldChyZWdpc3RyYXRp
b24tPmtleSgpLCAqcmVnaXN0cmF0aW9uKTsKQEAgLTI0NCw2ICsyNDcsNyBAQCB2b2lkIFNXU2Vy
dmVyOjpyZW1vdmVSZWdpc3RyYXRpb24oU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIgcmVnaXN0cmF0aQogICAgICAgICAgICAgbV91bmlxdWVSZWdpc3RyYXRpb25Db3VudC0tOwog
ICAgIH0KIAorICAgIG1fb3JpZ2luU3RvcmUtPnJlbW92ZShyZWdpc3RyYXRpb24tPmtleSgpLnRv
cE9yaWdpbigpKTsKICAgICBpZiAobV9yZWdpc3RyYXRpb25TdG9yZSkKICAgICAgICAgbV9yZWdp
c3RyYXRpb25TdG9yZS0+cmVtb3ZlUmVnaXN0cmF0aW9uKHJlZ2lzdHJhdGlvbi0+a2V5KCkpOwog
fQpAQCAtMjgyLDYgKzI4Niw3IEBAIHZvaWQgU1dTZXJ2ZXI6OmNsZWFyQWxsKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKICAgICB3aGlsZSAoIW1fcmVnaXN0
cmF0aW9ucy5pc0VtcHR5KCkpCiAgICAgICAgIG1fcmVnaXN0cmF0aW9ucy5iZWdpbigpLT52YWx1
ZS0+Y2xlYXIoKTsKICAgICBtX3BlbmRpbmdDb250ZXh0RGF0YXMuY2xlYXIoKTsKKyAgICBtX29y
aWdpblN0b3JlLT5jbGVhckFsbCgpOwogICAgIGlmICghbV9yZWdpc3RyYXRpb25TdG9yZSkKICAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKCk7CiAKQEAgLTMzNCw3ICszMzksNyBAQCB2
b2lkIFNXU2VydmVyOjpjbGVhcihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHNlY3VyaXR5T3Jp
Z2luLCBDb21wbGV0aW9uSGFuZGxlcgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgLy8g
Q2FsbGluZyBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6Y2xlYXIoKSB0YWtlcyBjYXJlIG9mIHVwZGF0
aW5nIG1fcmVnaXN0cmF0aW9ucyBhbmQgbV9yZWdpc3RyYXRpb25TdG9yZS4KKyAgICAvLyBDYWxs
aW5nIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpjbGVhcigpIHRha2VzIGNhcmUgb2YgdXBkYXRpbmcg
bV9yZWdpc3RyYXRpb25zLCBtX29yaWdpblN0b3JlIGFuZCBtX3JlZ2lzdHJhdGlvblN0b3JlLgog
ICAgIGZvciAoYXV0byogcmVnaXN0cmF0aW9uIDogcmVnaXN0cmF0aW9uc1RvUmVtb3ZlKQogICAg
ICAgICByZWdpc3RyYXRpb24tPmNsZWFyKCk7CiAKQEAgLTM2NCw4ICszNjksOSBAQCB2b2lkIFNX
U2VydmVyOjpDb25uZWN0aW9uOjpyZW1vdmVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSW5TZXJ2
ZXIoU2VydmljZVdvcmtlcgogICAgIG1fc2VydmVyLnJlbW92ZUNsaWVudFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb24oKnRoaXMsIGlkZW50aWZpZXIpOwogfQogCi1TV1NlcnZlcjo6U1dTZXJ2ZXIo
Ym9vbCBwcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQsIFN0cmluZyYmIHJlZ2lzdHJhdGlv
bkRhdGFiYXNlRGlyZWN0b3J5LCBQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgc2hvdWxk
UnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nLCBib29sIGhhc1NlcnZpY2VX
b3JrZXJFbnRpdGxlbWVudCwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gb3ZlcnJpZGVTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uQ291bnRUZXN0aW5nVmFsdWUsIFNvZnRVcGRhdGVDYWxsYmFjayYm
IHNvZnRVcGRhdGVDYWxsYmFjaywgQ3JlYXRlQ29udGV4dENvbm5lY3Rpb25DYWxsYmFjayYmIGNh
bGxiYWNrLCBBcHBCb3VuZERvbWFpbnNDYWxsYmFjayYmIGFwcEJvdW5kRG9tYWluc0NhbGxiYWNr
KQotICAgIDogbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQorU1dTZXJ2ZXI6OlNXU2VydmVyKFVuaXF1
ZVJlZjxTV09yaWdpblN0b3JlPiYmIG9yaWdpblN0b3JlLCBib29sIHByb2Nlc3NUZXJtaW5hdGlv
bkRlbGF5RW5hYmxlZCwgU3RyaW5nJiYgcmVnaXN0cmF0aW9uRGF0YWJhc2VEaXJlY3RvcnksIFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBzaG91bGRSdW5TZXJ2aWNlV29ya2Vyc09uTWFp
blRocmVhZEZvclRlc3RpbmcsIGJvb2wgaGFzU2VydmljZVdvcmtlckVudGl0bGVtZW50LCBzdGQ6
Om9wdGlvbmFsPHVuc2lnbmVkPiBvdmVycmlkZVNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25Db3Vu
dFRlc3RpbmdWYWx1ZSwgU29mdFVwZGF0ZUNhbGxiYWNrJiYgc29mdFVwZGF0ZUNhbGxiYWNrLCBD
cmVhdGVDb250ZXh0Q29ubmVjdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2ssIEFwcEJvdW5kRG9tYWlu
c0NhbGxiYWNrJiYgYXBwQm91bmREb21haW5zQ2FsbGJhY2spCisgICAgOiBtX29yaWdpblN0b3Jl
KFdURk1vdmUob3JpZ2luU3RvcmUpKQorICAgICwgbV9zZXNzaW9uSUQoc2Vzc2lvbklEKQogICAg
ICwgbV9pc1Byb2Nlc3NUZXJtaW5hdGlvbkRlbGF5RW5hYmxlZChwcm9jZXNzVGVybWluYXRpb25E
ZWxheUVuYWJsZWQpCiAgICAgLCBtX2NyZWF0ZUNvbnRleHRDb25uZWN0aW9uQ2FsbGJhY2soV1RG
TW92ZShjYWxsYmFjaykpCiAgICAgLCBtX3NvZnRVcGRhdGVDYWxsYmFjayhXVEZNb3ZlKHNvZnRV
cGRhdGVDYWxsYmFjaykpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2Uvc2VydmVyL1NXU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyLmgKaW5kZXggZTYxYzFjYzcyMjAwNDNmYTY0MjdiNmNlNjNjNDhmNjA1MmVm
ZWVjMS4uOTY1MjM1OWVjN2M1Y2U5NzYxY2IzN2Q0N2E4OTk3OGM2ZmUwODBiZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXIuaApAQCAtNTUs
NiArNTUsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZWdpc3RyYXRpb25TdG9y
ZTsKK2NsYXNzIFNXT3JpZ2luU3RvcmU7CiBjbGFzcyBTV1NlcnZlckpvYlF1ZXVlOwogY2xhc3Mg
U1dTZXJ2ZXJSZWdpc3RyYXRpb247CiBjbGFzcyBTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb247
CkBAIC0xMzMsNyArMTM0LDcgQEAgcHVibGljOgogICAgIHVzaW5nIFNvZnRVcGRhdGVDYWxsYmFj
ayA9IEZ1bmN0aW9uPHZvaWQoU2VydmljZVdvcmtlckpvYkRhdGEmJiBqb2JEYXRhLCBib29sIHNo
b3VsZFJlZnJlc2hDYWNoZSwgUmVzb3VyY2VSZXF1ZXN0JiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV29ya2VyRmV0Y2hSZXN1bHQmJik+JiYpPjsKICAgICB1c2luZyBDcmVhdGVDb250ZXh0Q29u
bmVjdGlvbkNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiYsIHN0ZDo6b3B0aW9uYWw8UHJvY2Vzc0lkZW50aWZpZXI+IHJlcXVlc3RpbmdQcm9j
ZXNzSWRlbnRpZmllciwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
Zmllcj4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik+OwogICAgIHVzaW5nIEFwcEJvdW5k
RG9tYWluc0NhbGxiYWNrID0gRnVuY3Rpb248dm9pZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhh
c2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+JiYpPiYmKT47Ci0gICAgV0VCQ09SRV9F
WFBPUlQgU1dTZXJ2ZXIoYm9vbCBwcm9jZXNzVGVybWluYXRpb25EZWxheUVuYWJsZWQsIFN0cmlu
ZyYmIHJlZ2lzdHJhdGlvbkRhdGFiYXNlRGlyZWN0b3J5LCBQQUw6OlNlc3Npb25JRCwgYm9vbCBz
aG91bGRSdW5TZXJ2aWNlV29ya2Vyc09uTWFpblRocmVhZEZvclRlc3RpbmcsIGJvb2wgaGFzU2Vy
dmljZVdvcmtlckVudGl0bGVtZW50LCBzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkPiBvdmVycmlkZVNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25Db3VudFRlc3RpbmdWYWx1ZSwgU29mdFVwZGF0ZUNhbGxi
YWNrJiYsIENyZWF0ZUNvbnRleHRDb25uZWN0aW9uQ2FsbGJhY2smJiwgQXBwQm91bmREb21haW5z
Q2FsbGJhY2smJik7CisgICAgV0VCQ09SRV9FWFBPUlQgU1dTZXJ2ZXIoVW5pcXVlUmVmPFNXT3Jp
Z2luU3RvcmU+JiYsIGJvb2wgcHJvY2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkLCBTdHJpbmcm
JiByZWdpc3RyYXRpb25EYXRhYmFzZURpcmVjdG9yeSwgUEFMOjpTZXNzaW9uSUQsIGJvb2wgc2hv
dWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nLCBib29sIGhhc1NlcnZp
Y2VXb3JrZXJFbnRpdGxlbWVudCwgc3RkOjpvcHRpb25hbDx1bnNpZ25lZD4gb3ZlcnJpZGVTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uQ291bnRUZXN0aW5nVmFsdWUsIFNvZnRVcGRhdGVDYWxsYmFj
ayYmLCBDcmVhdGVDb250ZXh0Q29ubmVjdGlvbkNhbGxiYWNrJiYsIEFwcEJvdW5kRG9tYWluc0Nh
bGxiYWNrJiYpOwogCiAgICAgV0VCQ09SRV9FWFBPUlQgflNXU2VydmVyKCk7CiAKQEAgLTE3Nyw2
ICsxNzgsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgSGFzaE1hcDxTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBzdGQ6OnVuaXF1ZV9wdHI8Q29ubmVjdGlvbj4+JiBjb25uZWN0aW9ucygpIGNv
bnN0IHsgcmV0dXJuIG1fY29ubmVjdGlvbnM7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBib29sIGNh
bkhhbmRsZVNjaGVtZShTdHJpbmdWaWV3KSBjb25zdDsKIAorICAgIFNXT3JpZ2luU3RvcmUmIG9y
aWdpblN0b3JlKCkgeyByZXR1cm4gbV9vcmlnaW5TdG9yZTsgfQorCiAgICAgdm9pZCByZWZyZXNo
SW1wb3J0ZWRTY3JpcHRzRmluaXNoZWQoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlm
aWVyJiwgY29uc3QgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktleSYsIGNvbnN0IFZlY3Rvcjxz
dGQ6OnBhaXI8VVJMLCBTY3JpcHRCdWZmZXI+PiYpOwogICAgIHZvaWQgc2NyaXB0Q29udGV4dEZh
aWxlZFRvU3RhcnQoY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2VySm9iRGF0YUlkZW50
aWZpZXI+JiwgU1dTZXJ2ZXJXb3JrZXImLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UpOwogICAgIHZv
aWQgc2NyaXB0Q29udGV4dFN0YXJ0ZWQoY29uc3Qgc3RkOjpvcHRpb25hbDxTZXJ2aWNlV29ya2Vy
Sm9iRGF0YUlkZW50aWZpZXI+JiwgU1dTZXJ2ZXJXb3JrZXImKTsKQEAgLTIxOCw3ICsyMjEsNiBA
QCBwdWJsaWM6CiAKICAgICBib29sIGlzSW1wb3J0Q29tcGxldGVkKCkgY29uc3QgeyByZXR1cm4g
bV9pbXBvcnRDb21wbGV0ZWQ7IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHdoZW5JbXBvcnRJ
c0NvbXBsZXRlZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgd2hlbkltcG9ydElzQ29tcGxldGVkSWZOZWVkZWQoQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKIAogICAgIHZvaWQgc29mdFVwZGF0ZShTV1NlcnZlclJlZ2lzdHJhdGlvbiYp
OwogCkBAIC0yODIsNiArMjg0LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbnRleHRDb25uZWN0
aW9uQ3JlYXRlZChTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mKTsKIAogICAgIHZvaWQgdXBk
YXRlQXBwSW5pdGlhdGVkVmFsdWVGb3JXb3JrZXJzKGNvbnN0IENsaWVudE9yaWdpbiYsIExhc3RO
YXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKTsKKyAgICB2b2lkIHdoZW5JbXBvcnRJc0NvbXBsZXRl
ZElmTmVlZGVkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKICAgICBSZXNvdXJjZVJl
cXVlc3QgY3JlYXRlU2NyaXB0UmVxdWVzdChjb25zdCBVUkwmLCBjb25zdCBTZXJ2aWNlV29ya2Vy
Sm9iRGF0YSYsIFNXU2VydmVyUmVnaXN0cmF0aW9uJik7CiAKQEAgLTMwNCw2ICszMDcsNyBAQCBw
cml2YXRlOgogICAgIEhhc2hNYXA8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIsIFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPiBtX2NsaWVudFRvQ29udHJvbGxpbmdS
ZWdpc3RyYXRpb247CiAgICAgTWVtb3J5Q29tcGFjdFJvYmluSG9vZEhhc2hNYXA8U3RyaW5nLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gbV92aXNpYmxlQ2xpZW50SWRUb0ludGVy
bmFsQ2xpZW50SWRNYXA7CiAKKyAgICBVbmlxdWVSZWY8U1dPcmlnaW5TdG9yZT4gbV9vcmlnaW5T
dG9yZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVnaXN0cmF0aW9uU3RvcmU+IG1fcmVnaXN0cmF0
aW9uU3RvcmU7CiAgICAgSGFzaE1hcDxSZWdpc3RyYWJsZURvbWFpbiwgVmVjdG9yPFNlcnZpY2VX
b3JrZXJDb250ZXh0RGF0YT4+IG1fcGVuZGluZ0NvbnRleHREYXRhczsKICAgICBIYXNoTWFwPFJl
Z2lzdHJhYmxlRG9tYWluLCBIYXNoTWFwPFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBWZWN0b3I8
UnVuU2VydmljZVdvcmtlckNhbGxiYWNrPj4+IG1fc2VydmljZVdvcmtlclJ1blJlcXVlc3RzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRl
eCA4NDIwMDgzNTlhZWM1NTgwODU5MWQ2OTA5MjkzYmJhMzc0MDliNTI2Li4yMzE5NGQ1YTEzYWU3
ZjM2YTI4ZGZkYTk1MGI1ZWU2NWI2MjIxNDBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUg
IldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCisjaW5jbHVkZSAiV2ViU1dPcmlnaW5TdG9yZS5oIgog
I2luY2x1ZGUgIldlYlNoYXJlZFdvcmtlclNlcnZlci5oIgogI2luY2x1ZGUgIldlYlNvY2tldFRh
c2suaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZUphci5oPgpAQCAtNjEwLDYgKzYxMSwyNSBA
QCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrKiBOZXR3b3JrU2Vzc2lvbjo6bmF2aWdhdGlvblByZWxv
YWRlclRhc2tGcm9tRmV0Y2hJZGVudGlmaQogICAgIHJldHVybiBtX25hdmlnYXRpb25QcmVsb2Fk
ZXJzLmdldChpZGVudGlmaWVyKS5nZXQoKTsKIH0KIAorV2ViU1dPcmlnaW5TdG9yZSogTmV0d29y
a1Nlc3Npb246OnN3T3JpZ2luU3RvcmUoKSBjb25zdAoreworICAgIHJldHVybiBtX3N3U2VydmVy
ID8gJnN0YXRpY19jYXN0PFdlYlNXT3JpZ2luU3RvcmUmPihtX3N3U2VydmVyLT5vcmlnaW5TdG9y
ZSgpKSA6IG51bGxwdHI7Cit9CisKK3ZvaWQgTmV0d29ya1Nlc3Npb246OnJlZ2lzdGVyU1dTZXJ2
ZXJDb25uZWN0aW9uKFdlYlNXU2VydmVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBh
dXRvKiBzdG9yZSA9IHN3T3JpZ2luU3RvcmUoKTsKKyAgICBBU1NFUlQoc3RvcmUpOworICAgIGlm
IChzdG9yZSkKKyAgICAgICAgc3RvcmUtPnJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKGNvbm5l
Y3Rpb24pOworfQorCit2b2lkIE5ldHdvcmtTZXNzaW9uOjp1bnJlZ2lzdGVyU1dTZXJ2ZXJDb25u
ZWN0aW9uKFdlYlNXU2VydmVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBpZiAoYXV0
byogc3RvcmUgPSBzd09yaWdpblN0b3JlKCkpCisgICAgICAgIHN0b3JlLT51bnJlZ2lzdGVyU1dT
ZXJ2ZXJDb25uZWN0aW9uKGNvbm5lY3Rpb24pOworfQorCiBTV1NlcnZlciYgTmV0d29ya1Nlc3Np
b246OmVuc3VyZVNXU2VydmVyKCkKIHsKICAgICBpZiAoIW1fc3dTZXJ2ZXIpIHsKQEAgLTYyOCw3
ICs2NDgsNyBAQCBTV1NlcnZlciYgTmV0d29ya1Nlc3Npb246OmVuc3VyZVNXU2VydmVyKCkKICAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CiAgICAgICAgIH07CiAjZW5kaWYKLSAg
ICAgICAgbV9zd1NlcnZlciA9IG1ha2VVbmlxdWU8U1dTZXJ2ZXI+KGluZm8ucHJvY2Vzc1Rlcm1p
bmF0aW9uRGVsYXlFbmFibGVkLCBXVEZNb3ZlKHBhdGgpLCBtX3Nlc3Npb25JRCwgc2hvdWxkUnVu
U2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nKCksIG1fbmV0d29ya1Byb2Nlc3Mt
PnBhcmVudFByb2Nlc3NIYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSwgb3ZlcnJpZGVTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uQ291bnRUZXN0aW5nVmFsdWUoKSwgW3RoaXNdKGF1dG8mJiBq
b2JEYXRhLCBib29sIHNob3VsZFJlZnJlc2hDYWNoZSwgYXV0byYmIHJlcXVlc3QsIGF1dG8mJiBj
b21wbGV0aW9uSGFuZGxlcikgbXV0YWJsZSB7CisgICAgICAgIG1fc3dTZXJ2ZXIgPSBtYWtlVW5p
cXVlPFNXU2VydmVyPihtYWtlVW5pcXVlUmVmPFdlYlNXT3JpZ2luU3RvcmU+KCksIGluZm8ucHJv
Y2Vzc1Rlcm1pbmF0aW9uRGVsYXlFbmFibGVkLCBXVEZNb3ZlKHBhdGgpLCBtX3Nlc3Npb25JRCwg
c2hvdWxkUnVuU2VydmljZVdvcmtlcnNPbk1haW5UaHJlYWRGb3JUZXN0aW5nKCksIG1fbmV0d29y
a1Byb2Nlc3MtPnBhcmVudFByb2Nlc3NIYXNTZXJ2aWNlV29ya2VyRW50aXRsZW1lbnQoKSwgb3Zl
cnJpZGVTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uQ291bnRUZXN0aW5nVmFsdWUoKSwgW3RoaXNd
KGF1dG8mJiBqb2JEYXRhLCBib29sIHNob3VsZFJlZnJlc2hDYWNoZSwgYXV0byYmIHJlcXVlc3Qs
IGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgbXV0YWJsZSB7CiAgICAgICAgICAgICBTZXJ2aWNl
V29ya2VyU29mdFVwZGF0ZUxvYWRlcjo6c3RhcnQodGhpcywgV1RGTW92ZShqb2JEYXRhKSwgc2hv
dWxkUmVmcmVzaENhY2hlLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiAgICAgICAgIH0sIFt0aGlzXShhdXRvJiByZWdpc3RyYWJsZURvbWFpbiwgc3RkOjpv
cHRpb25hbDxQcm9jZXNzSWRlbnRpZmllcj4gcmVxdWVzdGluZ1Byb2Nlc3NJZGVudGlmaWVyLCBz
dGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBzZXJ2aWNlV29y
a2VyUGFnZUlkZW50aWZpZXIsIGF1dG8mJiBjb21wbGV0aW9uSGFuZGxlcikgewogICAgICAgICAg
ICAgQVNTRVJUKCFyZWdpc3RyYWJsZURvbWFpbi5pc0VtcHR5KCkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5oCmluZGV4IGE2ZmNmMGVkZTkxOTkyZmMy
ODBmYjg5Zjg2MDQ5MGE3MzFkNjFlYWMuLjZjYzM1MTQxZGMyMWUxZmExOWI5NDZjZmQ5ZDJmZmRi
NjdiZmI0NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29y
a1Nlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNz
aW9uLmgKQEAgLTgxLDYgKzgxLDcgQEAgY2xhc3MgV2ViUGFnZU5ldHdvcmtQYXJhbWV0ZXJzOwog
Y2xhc3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOwogY2xhc3MgV2ViU2hhcmVkV29y
a2VyU2VydmVyOwogY2xhc3MgV2ViU29ja2V0VGFzazsKK2NsYXNzIFdlYlNXT3JpZ2luU3RvcmU7
CiBjbGFzcyBXZWJTV1NlcnZlckNvbm5lY3Rpb247CiBzdHJ1Y3QgTmV0d29ya1Nlc3Npb25DcmVh
dGlvblBhcmFtZXRlcnM7CiBzdHJ1Y3QgU2Vzc2lvblNldDsKQEAgLTIwMiw2ICsyMDMsOSBAQCBw
dWJsaWM6CiAKICAgICBXZWJDb3JlOjpTV1NlcnZlciogc3dTZXJ2ZXIoKSB7IHJldHVybiBtX3N3
U2VydmVyLmdldCgpOyB9CiAgICAgV2ViQ29yZTo6U1dTZXJ2ZXImIGVuc3VyZVNXU2VydmVyKCk7
CisgICAgV2ViU1dPcmlnaW5TdG9yZSogc3dPcmlnaW5TdG9yZSgpIGNvbnN0OyAvLyBGSVhNRTog
Q2FuIGJlIHByaXZhdGU/CisgICAgdm9pZCByZWdpc3RlclNXU2VydmVyQ29ubmVjdGlvbihXZWJT
V1NlcnZlckNvbm5lY3Rpb24mKTsKKyAgICB2b2lkIHVucmVnaXN0ZXJTV1NlcnZlckNvbm5lY3Rp
b24oV2ViU1dTZXJ2ZXJDb25uZWN0aW9uJik7CiAKICAgICBib29sIGhhc1NlcnZpY2VXb3JrZXJE
YXRhYmFzZVBhdGgoKSBjb25zdDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjAyN2RjMWI3ODY5M2M2N2E0ZWJiODEwNzgyNWQ1YWVjN2U2MDFhOGEKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dPcmlnaW5TdG9yZS5jcHAKQEAgLTAsMCArMSwxMDYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisjaW5jbHVk
ZSAiV2ViU1dPcmlnaW5TdG9yZS5oIgorCisjaW5jbHVkZSAiV2ViU1dDbGllbnRDb25uZWN0aW9u
TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCIKKyNpbmNsdWRl
IDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit1c2lu
ZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworV2ViU1dPcmlnaW5TdG9yZTo6V2ViU1dPcmlnaW5TdG9y
ZSgpCisgICAgOiBtX3N0b3JlKCp0aGlzKQoreworfQorCit2b2lkIFdlYlNXT3JpZ2luU3RvcmU6
OmFkZFRvU3RvcmUoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4pCit7CisgICAgbV9z
dG9yZS5zY2hlZHVsZUFkZGl0aW9uKGNvbXB1dGVTaGFyZWRTdHJpbmdIYXNoKG9yaWdpbi50b1N0
cmluZygpKSk7CisgICAgbV9zdG9yZS5mbHVzaFBlbmRpbmdDaGFuZ2VzKCk7Cit9CisKK3ZvaWQg
V2ViU1dPcmlnaW5TdG9yZTo6cmVtb3ZlRnJvbVN0b3JlKGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0
YSYgb3JpZ2luKQoreworICAgIG1fc3RvcmUuc2NoZWR1bGVSZW1vdmFsKGNvbXB1dGVTaGFyZWRT
dHJpbmdIYXNoKG9yaWdpbi50b1N0cmluZygpKSk7CisgICAgbV9zdG9yZS5mbHVzaFBlbmRpbmdD
aGFuZ2VzKCk7Cit9CisKK3ZvaWQgV2ViU1dPcmlnaW5TdG9yZTo6Y2xlYXJTdG9yZSgpCit7Cisg
ICAgbV9zdG9yZS5jbGVhcigpOworfQorCit2b2lkIFdlYlNXT3JpZ2luU3RvcmU6OmltcG9ydENv
bXBsZXRlKCkKK3sKKyAgICBtX2lzSW1wb3J0ZWQgPSB0cnVlOworICAgIGZvciAoYXV0byYgY29u
bmVjdGlvbiA6IG1fd2ViU1dTZXJ2ZXJDb25uZWN0aW9ucykKKyAgICAgICAgY29ubmVjdGlvbi5z
ZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVudENvbm5lY3Rpb246OlNldFNXT3JpZ2luVGFibGVJc0lt
cG9ydGVkKCkpOworfQorCit2b2lkIFdlYlNXT3JpZ2luU3RvcmU6OnJlZ2lzdGVyU1dTZXJ2ZXJD
b25uZWN0aW9uKFdlYlNXU2VydmVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBtX3dl
YlNXU2VydmVyQ29ubmVjdGlvbnMuYWRkKGNvbm5lY3Rpb24pOworCisgICAgaWYgKCFtX3N0b3Jl
LmlzRW1wdHkoKSkKKyAgICAgICAgc2VuZFN0b3JlSGFuZGxlKGNvbm5lY3Rpb24pOworCisgICAg
aWYgKG1faXNJbXBvcnRlZCkKKyAgICAgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpXZWJT
V0NsaWVudENvbm5lY3Rpb246OlNldFNXT3JpZ2luVGFibGVJc0ltcG9ydGVkKCkpOworfQorCit2
b2lkIFdlYlNXT3JpZ2luU3RvcmU6OnVucmVnaXN0ZXJTV1NlcnZlckNvbm5lY3Rpb24oV2ViU1dT
ZXJ2ZXJDb25uZWN0aW9uJiBjb25uZWN0aW9uKQoreworICAgIG1fd2ViU1dTZXJ2ZXJDb25uZWN0
aW9ucy5yZW1vdmUoY29ubmVjdGlvbik7Cit9CisKK3ZvaWQgV2ViU1dPcmlnaW5TdG9yZTo6c2Vu
ZFN0b3JlSGFuZGxlKFdlYlNXU2VydmVyQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKK3sKKyAgICBT
aGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGU7CisgICAgaWYgKCFtX3N0b3JlLmNyZWF0ZVNoYXJl
ZE1lbW9yeUhhbmRsZShoYW5kbGUpKQorICAgICAgICByZXR1cm47CisKKyNpZiAoT1MoREFSV0lO
KSB8fCBPUyhXSU5ET1dTKSkgJiYgIVVTRShVTklYX0RPTUFJTl9TT0NLRVRTKQorICAgIHVpbnQ2
NF90IGRhdGFTaXplID0gaGFuZGxlLnNpemUoKTsKKyNlbHNlCisgICAgdWludDY0X3QgZGF0YVNp
emUgPSAwOworI2VuZGlmCisgICAgY29ubmVjdGlvbi5zZW5kKE1lc3NhZ2VzOjpXZWJTV0NsaWVu
dENvbm5lY3Rpb246OlNldFNXT3JpZ2luVGFibGVTaGFyZWRNZW1vcnkoU2hhcmVkTWVtb3J5OjpJ
UENIYW5kbGUgeyBXVEZNb3ZlKGhhbmRsZSksIGRhdGFTaXplIH0pKTsKK30KKwordm9pZCBXZWJT
V09yaWdpblN0b3JlOjpkaWRJbnZhbGlkYXRlU2hhcmVkTWVtb3J5KCkKK3sKKyAgICBmb3IgKGF1
dG8mIGNvbm5lY3Rpb24gOiBtX3dlYlNXU2VydmVyQ29ubmVjdGlvbnMpCisgICAgICAgIHNlbmRT
dG9yZUhhbmRsZShjb25uZWN0aW9uKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNl
bmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dPcmlnaW5TdG9yZS5oIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXT3JpZ2luU3RvcmUuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi43NTFhODU4MDc4ZjZjYjVkNDE5NGY1MDdhNzIzNmVkNDk1ZDk4MmYwCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXT3JpZ2luU3RvcmUuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJTaGFyZWRT
dHJpbmdIYXNoU3RvcmUuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL1NXT3JpZ2luU3RvcmUuaD4KKyNp
bmNsdWRlIDx3dGYvV2Vha0hhc2hTZXQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNz
IFdlYlNXU2VydmVyQ29ubmVjdGlvbjsKKworY2xhc3MgV2ViU1dPcmlnaW5TdG9yZSBmaW5hbCA6
IHB1YmxpYyBXZWJDb3JlOjpTV09yaWdpblN0b3JlLCBwcml2YXRlIFNoYXJlZFN0cmluZ0hhc2hT
dG9yZTo6Q2xpZW50IHsKK3B1YmxpYzoKKyAgICBXZWJTV09yaWdpblN0b3JlKCk7CisKKyAgICB2
b2lkIHJlZ2lzdGVyU1dTZXJ2ZXJDb25uZWN0aW9uKFdlYlNXU2VydmVyQ29ubmVjdGlvbiYpOwor
ICAgIHZvaWQgdW5yZWdpc3RlclNXU2VydmVyQ29ubmVjdGlvbihXZWJTV1NlcnZlckNvbm5lY3Rp
b24mKTsKKyAgICB2b2lkIGltcG9ydENvbXBsZXRlKCkgZmluYWw7CisKK3ByaXZhdGU6CisgICAg
dm9pZCBzZW5kU3RvcmVIYW5kbGUoV2ViU1dTZXJ2ZXJDb25uZWN0aW9uJik7CisKKyAgICB2b2lk
IGFkZFRvU3RvcmUoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJikgZmluYWw7Cisg
ICAgdm9pZCByZW1vdmVGcm9tU3RvcmUoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
JikgZmluYWw7CisgICAgdm9pZCBjbGVhclN0b3JlKCkgZmluYWw7CisKKyAgICAvLyBTaGFyZWRT
dHJpbmdIYXNoU3RvcmU6OkNsaWVudC4KKyAgICB2b2lkIGRpZEludmFsaWRhdGVTaGFyZWRNZW1v
cnkoKSBmaW5hbDsKKworICAgIFNoYXJlZFN0cmluZ0hhc2hTdG9yZSBtX3N0b3JlOworICAgIGJv
b2wgbV9pc0ltcG9ydGVkIHsgZmFsc2UgfTsKKyAgICBXZWFrSGFzaFNldDxXZWJTV1NlcnZlckNv
bm5lY3Rpb24+IG1fd2ViU1dTZXJ2ZXJDb25uZWN0aW9uczsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29u
bmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCA3MzNlYmY1ZDFiZWZlMDc3Njk1ZTgzNTk4
OTEwNmQ4M2UzYmViYjk0Li40N2Q0MWYzZTU0OGJiZjk0NWQ0ODQ1NDkzODQ1OGJjODFkNDc4ZGYw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApAQCAtODIsMTAgKzgy
LDE0IEBAIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uKE5ldHdv
cmtQcm9jZXNzJiBuZXR3b3JrUHJvY2VzcywgU1dTCiAgICAgLCBtX2NvbnRlbnRDb25uZWN0aW9u
KGNvbm5lY3Rpb24pCiAgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtQcm9jZXNzKQogewor
ICAgIGlmIChhdXRvKiBzZXNzaW9uID0gdGhpcy0+c2Vzc2lvbigpKQorICAgICAgICBzZXNzaW9u
LT5yZWdpc3RlclNXU2VydmVyQ29ubmVjdGlvbigqdGhpcyk7CiB9CiAKIFdlYlNXU2VydmVyQ29u
bmVjdGlvbjo6fldlYlNXU2VydmVyQ29ubmVjdGlvbigpCiB7CisgICAgaWYgKGF1dG8qIHNlc3Np
b24gPSB0aGlzLT5zZXNzaW9uKCkpCisgICAgICAgIHNlc3Npb24tPnVucmVnaXN0ZXJTV1NlcnZl
ckNvbm5lY3Rpb24oKnRoaXMpOwogICAgIGZvciAoY29uc3QgYXV0byYga2V5VmFsdWUgOiBtX2Ns
aWVudE9yaWdpbnMpCiAgICAgICAgIHNlcnZlcigpLnVucmVnaXN0ZXJTZXJ2aWNlV29ya2VyQ2xp
ZW50KGtleVZhbHVlLnZhbHVlLCBrZXlWYWx1ZS5rZXkpOwogICAgIGZvciAoYXV0byYgY29tcGxl
dGlvbkhhbmRsZXIgOiBtX3VucmVnaXN0ZXJKb2JzLnZhbHVlcygpKQpAQCAtMzg0LDMwICszODgs
MTggQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnBvc3RNZXNzYWdlVG9TZXJ2aWNlV29y
a2VyQ2xpZW50KFNjcmlwdEV4ZWN1dGlvbkNvbnQKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJTV0Ns
aWVudENvbm5lY3Rpb246OlBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyQ2xpZW50IHsgZGVzdGlu
YXRpb25Db250ZXh0SWRlbnRpZmllciwgbWVzc2FnZSwgc291cmNlU2VydmljZVdvcmtlci0+ZGF0
YSgpLCBzb3VyY2VPcmlnaW4gfSk7CiB9CiAKLXZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpt
YXRjaFJlZ2lzdHJhdGlvbihTZWN1cml0eU9yaWdpbkRhdGEmJiB0b3BPcmlnaW4sIFVSTCYmIGNs
aWVudFVSTCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25EYXRhPiYmKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjptYXRjaFJlZ2lzdHJhdGlvbihjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIHRvcE9y
aWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpv
cHRpb25hbDxTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4mJik+JiYgY2FsbGJhY2spCiB7
Ci0gICAgc2VydmVyKCkud2hlbkltcG9ydElzQ29tcGxldGVkSWZOZWVkZWQoW3dlYWtUaGlzID0g
V2Vha1B0ciB7ICp0aGlzIH0sIHRvcE9yaWdpbiA9IFdURk1vdmUodG9wT3JpZ2luKSwgY2xpZW50
VVJMID0gV1RGTW92ZShjbGllbnRVUkwpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgp
IG11dGFibGUgewotICAgICAgICBpZiAoIXdlYWtUaGlzKSB7Ci0gICAgICAgICAgICBjYWxsYmFj
ayh7IH0pOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIGlmIChhdXRv
KiByZWdpc3RyYXRpb24gPSB3ZWFrVGhpcy0+ZG9SZWdpc3RyYXRpb25NYXRjaGluZyh0b3BPcmln
aW4sIGNsaWVudFVSTCkpIHsKLSAgICAgICAgICAgIGNhbGxiYWNrKHJlZ2lzdHJhdGlvbi0+ZGF0
YSgpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBjYWxsYmFjayh7
IH0pOwotICAgIH0pOworICAgIGlmIChhdXRvKiByZWdpc3RyYXRpb24gPSBkb1JlZ2lzdHJhdGlv
bk1hdGNoaW5nKHRvcE9yaWdpbiwgY2xpZW50VVJMKSkgeworICAgICAgICBjYWxsYmFjayhyZWdp
c3RyYXRpb24tPmRhdGEoKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FsbGJhY2so
eyB9KTsKIH0KIAotdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmdldFJlZ2lzdHJhdGlvbnMo
U2VjdXJpdHlPcmlnaW5EYXRhJiYgdG9wT3JpZ2luLCBVUkwmJiBjbGllbnRVUkwsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoY29uc3QgVmVjdG9yPFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRh
PiYpPiYmIGNhbGxiYWNrKQordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmdldFJlZ2lzdHJh
dGlvbnMoY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xp
ZW50VVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uRGF0YT4mKT4mJiBjYWxsYmFjaykKIHsKLSAgICBzZXJ2ZXIoKS53aGVuSW1w
b3J0SXNDb21wbGV0ZWRJZk5lZWRlZChbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgdG9w
T3JpZ2luID0gV1RGTW92ZSh0b3BPcmlnaW4pLCBjbGllbnRVUkwgPSBXVEZNb3ZlKGNsaWVudFVS
TCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7Ci0gICAgICAgIGlm
ICghd2Vha1RoaXMpIHsKLSAgICAgICAgICAgIGNhbGxiYWNrKHsgfSk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgY2FsbGJhY2sod2Vha1RoaXMtPnNlcnZlcigpLmdl
dFJlZ2lzdHJhdGlvbnModG9wT3JpZ2luLCBjbGllbnRVUkwpKTsKLSAgICB9KTsKKyAgICBjYWxs
YmFjayhzZXJ2ZXIoKS5nZXRSZWdpc3RyYXRpb25zKHRvcE9yaWdpbiwgY2xpZW50VVJMKSk7CiB9
CiAKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpyZWdpc3RlclNlcnZpY2VXb3JrZXJDbGll
bnQoV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiYgY2xpZW50T3JpZ2luLCBTZXJ2aWNlV29ya2VyQ2xp
ZW50RGF0YSYmIGRhdGEsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXI+JiBjb250cm9sbGluZ1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVu
dGlmaWVyLCBTdHJpbmcmJiB1c2VyQWdlbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmgKaW5kZXggNzc2N2FhMTIyY2Y2YzI2ZTYwYzViZjExMGY5YjQ5OTgyMWUxZWRhZC4uOWY4
NDY2YTk1Yzk1MDQwODFiZWM5YjcyZWUwYzhkN2I5ZDZlOWQxZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlckNvbm5lY3Rpb24uaApAQCAtMTEyLDggKzExMiw4IEBAIHByaXZhdGU6CiAKICAgICB2
b2lkIHN0YXJ0RmV0Y2goU2VydmljZVdvcmtlckZldGNoVGFzayYsIFdlYkNvcmU6OlNXU2VydmVy
V29ya2VyJik7CiAKLSAgICB2b2lkIG1hdGNoUmVnaXN0cmF0aW9uKFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YSYmLCBVUkwmJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhPiYmKT4mJik7Ci0gICAgdm9p
ZCBnZXRSZWdpc3RyYXRpb25zKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBVUkwmJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChjb25zdCBWZWN0b3I8V2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbkRhdGE+Jik+JiYpOworICAgIHZvaWQgbWF0Y2hSZWdpc3RyYXRpb24oY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0IFVSTCYgY2xp
ZW50VVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGE+JiYpPiYmKTsKKyAgICB2b2lkIGdldFJlZ2lzdHJh
dGlvbnMoY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BPcmlnaW4sIGNvbnN0
IFVSTCYgY2xpZW50VVJMLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IFZlY3RvcjxXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uRGF0YT4mKT4mJik7CiAKICAgICB2b2lkIHRl
cm1pbmF0ZVdvcmtlckZyb21DbGllbnQoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCB3aGVuU2VydmljZVdvcmtl
cklzVGVybWluYXRlZEZvclRlc3RpbmcoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1NvdXJjZXMudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAppbmRleCA2OTllZGM4NGY0
ZmIwYzM0MGYxYTkyYTBhNzliNzU5YTlkMTEzNDQ2Li5lYTBjMDY2MzNhNDY3MjZkNjZmYjc0MTIx
OTZmMzQxMGE4MzkyNDkzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0Cisr
KyBiL1NvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKQEAgLTEzNSw2ICsxMzUsNyBAQCBOZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJEb3dubG9hZFRhc2suY3BwCiBOZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCiBOZXR3
b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVy
LmNwcAogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyU29mdFVwZGF0
ZUxvYWRlci5jcHAKK05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dPcmlnaW5TdG9y
ZS5jcHAgQG5vLXVuaWZ5CiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVy
Q29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgQG5vLXVuaWZ5CiAKQEAgLTc5NSw2ICs3
OTYsNyBAQCBXZWJQcm9jZXNzL1NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvblJlYWx0aW1lTWVkaWFT
b3VyY2VNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9TdG9yYWdlL1JlbW90ZVdvcmtlckZyYW1lTG9h
ZGVyQ2xpZW50LmNwcAogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5j
cHAKIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAK
K1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdpblRhYmxlLmNwcAogV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuY3BwCiBXZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU2VydmljZVdvcmtlclByb3ZpZGVyLmNwcAogV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNo
YXJlZFdvcmtlckNvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNhY2I2MGI3YWEzYmRmYmFm
Y2ExZThlMTRlMTFlZGZkNGIxODE5N2QuLmZiN2FmOWJjMGJhMGIwMDVmMDliNzFiYTJlNjcwZWI5
NjcwZTAzYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTQzNCw2ICsxNDM0LDcgQEAKIAkJODNBMEVEMzUxRjc0N0NDRjAwMzI5OUVC
IC8qIFByZWNvbm5lY3RUYXNrLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA4M0EwRUQzMjFGNzQ3Q0M2MDAzMjk5RUIgLyogUHJlY29ubmVjdFRhc2suaCAq
LzsgfTsKIAkJODNENDU0RDcxQkU5RDNDNDAwNkM5M0JEIC8qIE5ldHdvcmtMb2FkQ2xpZW50Lmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0Q0NTRENjFC
RTlEM0M0MDA2QzkzQkQgLyogTmV0d29ya0xvYWRDbGllbnQuaCAqLzsgfTsKIAkJODNFRTU3NUMx
REI3RDYxMTAwQzc0QzUwIC8qIFdlYlZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4M0VFNTc1QTFEQjdENjA2MDBD
NzRDNTAgLyogV2ViVmFsaWRhdGlvbk1lc3NhZ2VDbGllbnQuaCAqLzsgfTsKKwkJODNGMUEwN0Ex
Rjk2RTc3OTAwNDVCOTRFIC8qIFdlYlNXT3JpZ2luVGFibGUuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDgzRjFBMDc4MUY5NkU3NzEwMDQ1Qjk0RSAvKiBX
ZWJTV09yaWdpblRhYmxlLmggKi87IH07CiAJCTgzRjk2NDRFMUZBMEY3NkUwMEM0Nzc1MCAvKiBT
aGFyZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gODNGOTY0NEMxRkEwRjc2MzAwQzQ3NzUwIC8qIFNoYXJlZFN0
cmluZ0hhc2hUYWJsZVJlYWRPbmx5LmggKi87IH07CiAJCTg0NDc3ODUzMTc2RkNDMDgwMENEQzdC
QiAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDg0NDc3ODUxMTc2RkNBQzEwMENEQzdC
QiAvKiBJbmplY3RlZEJ1bmRsZUhpdFRlc3RSZXN1bHRNZWRpYVR5cGUuaCAqLzsgfTsKIAkJODY0
NDg5MEIyN0I0NzAyMDAwN0ExQzY2IC8qIF9XS1N5c3RlbVByZWZlcmVuY2VzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA4NjQ0ODkwQTI3QjQ3MDIwMDA3
QTFDNjYgLyogX1dLU3lzdGVtUHJlZmVyZW5jZXMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTQ2OCw2ICsxNDY5LDggQEAKIAkJOTM1NDI0MkMy
NzAzQkRDQjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM1NDI0MkEyNzAzQkRD
QjAwNUNBNzJDIC8qIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oICovOyB9OwogCQk5
MzU2RjJEQzIxNTJCNkI1MDBFNkQ1REYgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MTdBNTMwMjFGNDc5M0Iy
MDBEQ0RDMEEgLyogV2ViU1dDbGllbnRDb25uZWN0aW9uLmggKi87IH07CiAJCTkzNTZGMkREMjE1
MkI2RjYwMEU2RDVERiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzQkEwNEUwMjE1MUFERjQwMDdGNDU1RiAv
KiBXZWJTV1NlcnZlckNvbm5lY3Rpb24uaCAqLzsgfTsKKwkJOTM1NkYyREUyMTUyQjcxMDAwRTZE
NURGIC8qIFdlYlNXT3JpZ2luU3RvcmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzQkEwNERFMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV09yaWdpblN0
b3JlLmggKi87IH07CisJCTkzNTZGMkRGMjE1MkI3MjMwMEU2RDVERiAvKiBXZWJTV09yaWdpblN0
b3JlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
QkEwNERGMjE1MUFERjQwMDdGNDU1RiAvKiBXZWJTV09yaWdpblN0b3JlLmNwcCAqLzsgfTsKIAkJ
OTM1NkYyRTAyMTUyQjc1MjAwRTZENURGIC8qIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5M0JB
MDRERDIxNTFBREYzMDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmNw
cCAqLzsgfTsKIAkJOTM1NkYyRTEyMTUyQjc2NjAwRTZENURGIC8qIFdlYlNXU2VydmVyQ29ubmVj
dGlvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
M0JBMDRFMTIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCAqLzsg
fTsKIAkJOTM1QjU3OUEyNkY1MTkzMzAwOEI0OEFDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
UmVnaXN0cnkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzNUI1Nzk4MjZGNTEyNzAwMDhCNDhBQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lz
dHJ5LmggKi87IH07CkBAIC01Njg2LDYgKzU2ODksOCBAQAogCQk4M0Q0NTRENjFCRTlEM0M0MDA2
QzkzQkQgLyogTmV0d29ya0xvYWRDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gTmV0d29ya0xvYWRDbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
ODNFRTU3NTkxREI3RDYwNjAwQzc0QzUwIC8qIFdlYlZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlZhbGlkYXRpb25NZXNz
YWdlQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJODNFRTU3NUExREI3
RDYwNjAwQzc0QzUwIC8qIFdlYlZhbGlkYXRpb25NZXNzYWdlQ2xpZW50LmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlZhbGlkYXRpb25NZXNzYWdlQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTgzRjFBMDc3MUY5NkU3NzAwMDQ1Qjk0RSAvKiBXZWJT
V09yaWdpblRhYmxlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdl
YlNXT3JpZ2luVGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk4M0YxQTA3
ODFGOTZFNzcxMDA0NUI5NEUgLyogV2ViU1dPcmlnaW5UYWJsZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJTV09yaWdpblRhYmxlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTgzRjk2NDRCMUZBMEY3NjIwMEM0Nzc1MCAvKiBTaGFyZWRTdHJpbmdIYXNoVGFi
bGVSZWFkT25seS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTaGFy
ZWRTdHJpbmdIYXNoVGFibGVSZWFkT25seS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTgzRjk2NDRDMUZBMEY3NjMwMEM0Nzc1MCAvKiBTaGFyZWRTdHJpbmdIYXNoVGFibGVSZWFk
T25seS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTaGFyZWRTdHJpbmdIYXNo
VGFibGVSZWFkT25seS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk4NDQ3Nzg1MTE3
NkZDQUMxMDBDREM3QkIgLyogSW5qZWN0ZWRCdW5kbGVIaXRUZXN0UmVzdWx0TWVkaWFUeXBlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlSGl0VGVzdFJl
c3VsdE1lZGlhVHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNTgwMSw2ICs1
ODA2LDggQEAKIAkJOTNCQTA0REIyMTUxQURGMzAwN0Y0NTVGIC8qIFdlYlNXU2VydmVyVG9Db250
ZXh0Q29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTV1Nl
cnZlclRvQ29udGV4dENvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTNCQTA0REMyMTUxQURGMzAwN0Y0NTVGIC8qIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlv
bi5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJTV1NlcnZlclRvQ29udGV4
dENvbm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkz
QkEwNEREMjE1MUFERjMwMDdGNDU1RiAvKiBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24u
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViU1dTZXJ2ZXJUb0Nv
bnRleHRDb25uZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTNCQTA0
REUyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXT3JpZ2luU3RvcmUuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViU1dPcmlnaW5TdG9yZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk5M0JBMDRERjIxNTFBREY0MDA3RjQ1NUYgLyogV2ViU1dPcmlnaW5TdG9yZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV09yaWdpblN0b3Jl
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTNCQTA0RTAyMTUxQURGNDAwN0Y0
NTVGIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJTV1NlcnZlckNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTNCQTA0RTEyMTUxQURGNDAwN0Y0NTVGIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTV1NlcnZlckNvbm5l
Y3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5M0JERUIwMDE3MUREN0FG
MDBCRkVFMUIgLyogV0tQYWdlTG9hZFR5cGVzUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS1BhZ2VMb2FkVHlwZXNQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CkBAIC0xMDI3Miw2ICsxMDI3OSw4IEBACiAJCQkJNDY2QkMwMzgxRkEyNjZDOTAw
MkZBOUMxIC8qIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcCAqLywKIAkJCQk0NjZC
QzAzOTFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCAq
LywKIAkJCQk0NjZCQzAzQTFGQTI2NkM5MDAyRkE5QzEgLyogV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8sCisJCQkJODNGMUEwNzcxRjk2RTc3MDAwNDVCOTRFIC8q
IFdlYlNXT3JpZ2luVGFibGUuY3BwICovLAorCQkJCTgzRjFBMDc4MUY5NkU3NzEwMDQ1Qjk0RSAv
KiBXZWJTV09yaWdpblRhYmxlLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IFN0b3JhZ2U7CiAJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTEzMzAsNiArMTEzMzksOCBAQAogCQkJCTQxRUI0
RDNBMjc0Q0UwNDUwMEE5MjcyQiAvKiBTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5o
ICovLAogCQkJCTQxRDVDNkQ5MjM4RUIyMEUwMEI5QjNDQiAvKiBTZXJ2aWNlV29ya2VyU29mdFVw
ZGF0ZUxvYWRlci5jcHAgKi8sCiAJCQkJNDFENUM2RDgyMzhFQjIwRDAwQjlCM0NCIC8qIFNlcnZp
Y2VXb3JrZXJTb2Z0VXBkYXRlTG9hZGVyLmggKi8sCisJCQkJOTNCQTA0REYyMTUxQURGNDAwN0Y0
NTVGIC8qIFdlYlNXT3JpZ2luU3RvcmUuY3BwICovLAorCQkJCTkzQkEwNERFMjE1MUFERjQwMDdG
NDU1RiAvKiBXZWJTV09yaWdpblN0b3JlLmggKi8sCiAJCQkJOTNCQTA0RTEyMTUxQURGNDAwN0Y0
NTVGIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgKi8sCiAJCQkJOTNCQTA0RTAyMTUxQURG
NDAwN0Y0NTVGIC8qIFdlYlNXU2VydmVyQ29ubmVjdGlvbi5oICovLAogCQkJCTkzQkEwNERBMjE1
MUFERjMwMDdGNDU1RiAvKiBXZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8sCkBA
IC0xNTEwMSw2ICsxNTExMiw4IEBACiAJCQkJNDY2QkMwM0MxRkEyNjZEQTAwMkZBOUMxIC8qIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk0NjBGNDg5
MDFGOTk2RjcxMDBDRjRCODcgLyogV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb25NZXNzYWdl
cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQzExQTlFQ0MyMTQwMzVGODAwQ0ZCMjBBIC8qIFdlYlN3
aXRjaGluZ0dQVUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM1NkYyREUyMTUyQjcxMDAw
RTZENURGIC8qIFdlYlNXT3JpZ2luU3RvcmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTgzRjFBMDdB
MUY5NkU3NzkwMDQ1Qjk0RSAvKiBXZWJTV09yaWdpblRhYmxlLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5MzU2RjJERDIxNTJCNkY2MDBFNkQ1REYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MTdBNTJEOTFGNDNBOURBMDBEQ0RDMEEgLyogV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNTI2MkJDMUZCOTUxNUQw
MDcwRTU3OSAvKiBXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb25NZXNzYWdlcy5oIGluIEhl
YWRlcnMgKi8sCkBAIC0xNzM2NSw2ICsxNzM3OCw3IEBACiAJCQkJOTNENkI3OEEyNTRDRDQzRTAw
NThERDNBIC8qIFdlYlNwZWVjaFJlY29nbml0aW9uQ29ubmVjdGlvbk1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTdBNTMwRjFGNDdBODYyMDBEQ0RDMEEgLyogV2ViU1dD
bGllbnRDb25uZWN0aW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ2
MEY0ODhGMUY5OTZGNzEwMENGNEI4NyAvKiBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbk1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5MzU2RjJERjIxNTJCNzIzMDBF
NkQ1REYgLyogV2ViU1dPcmlnaW5TdG9yZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MzU2RjJF
MTIxNTJCNzY2MDBFNkQ1REYgLyogV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTUxN0E1MkQ4MUY0M0E5REEwMERDREMwQSAvKiBXZWJTV1NlcnZlckNvbm5lY3Rp
b25NZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTM1NkYyRTAyMTUyQjc1
MjAwRTZENURGIC8qIFdlYlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5jcHAgaW4gU291cmNl
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4IDdlMGZkMWIwMzVmNTU3ZDg0Y2RiOWY0ZGI3
N2YwMmEyOTMyODVmZjYuLmE1M2QwNjk0YmRjNWQ3YjIxYjAwYTQzOTEwNzExZTdhYzBlZGQyY2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtMzksNiArMzksNyBAQAogI2luY2x1ZGUgIldlYlBh
Z2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzcy5oIgogI2luY2x1ZGUgIldl
YlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCisjaW5jbHVkZSAiV2ViU1dPcmlnaW5UYWJsZS5oIgog
I2luY2x1ZGUgIldlYlNXU2VydmVyQ29ubmVjdGlvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9Eb2N1bWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRG9jdW1lbnRMb2FkZXIuaD4KQEAg
LTYxLDYgKzYyLDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIFdlYlNXQ2xpZW50Q29u
bmVjdGlvbjo6V2ViU1dDbGllbnRDb25uZWN0aW9uKCkKICAgICA6IG1faWRlbnRpZmllcihQcm9j
ZXNzOjppZGVudGlmaWVyKCkpCisgICAgLCBtX3N3T3JpZ2luVGFibGUobWFrZVVuaXF1ZVJlZjxX
ZWJTV09yaWdpblRhYmxlPigpKQogewogfQogCkBAIC03Niw3ICs3OCw5IEBAIElQQzo6Q29ubmVj
dGlvbiogV2ViU1dDbGllbnRDb25uZWN0aW9uOjptZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNv
bnN0CiAKIHZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzY2hlZHVsZUpvYkluU2VydmVyKGNv
bnN0IFNlcnZpY2VXb3JrZXJKb2JEYXRhJiBqb2JEYXRhKQogewotICAgIHNlbmQoTWVzc2FnZXM6
OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6U2NoZWR1bGVKb2JJblNlcnZlciB7IGpvYkRhdGEgfSk7
CisgICAgcnVuT3JEZWxheVRhc2tGb3JJbXBvcnQoW3RoaXMsIGpvYkRhdGFdIHsKKyAgICAgICAg
c2VuZChNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpTY2hlZHVsZUpvYkluU2VydmVy
IHsgam9iRGF0YSB9KTsKKyAgICB9KTsKIH0KIAogdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246
OmZpbmlzaEZldGNoaW5nU2NyaXB0SW5TZXJ2ZXIoY29uc3QgU2VydmljZVdvcmtlckpvYkRhdGFJ
ZGVudGlmaWVyJiBqb2JEYXRhSWRlbnRpZmllciwgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbktl
eSYmIHJlZ2lzdHJhdGlvbktleSwgV29ya2VyRmV0Y2hSZXN1bHQmJiByZXN1bHQpCkBAIC0xMjYs
MTAgKzEzMCw0NyBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6ZGlkUmVzb2x2ZVJlZ2lz
dHJhdGlvblByb21pc2UoY29uc3QgU2VydmljZVdvcmtlclJlZwogICAgIHNlbmQoTWVzc2FnZXM6
OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6RGlkUmVzb2x2ZVJlZ2lzdHJhdGlvblByb21pc2UgeyBr
ZXkgfSk7CiB9CiAKK2Jvb2wgV2ViU1dDbGllbnRDb25uZWN0aW9uOjptYXlIYXZlU2VydmljZVdv
cmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4oY29uc3QgU2VjdXJpdHlPcmlnaW5EYXRhJiBvcmlnaW4p
IGNvbnN0Cit7CisgICAgaWYgKCFtX3N3T3JpZ2luVGFibGUtPmlzSW1wb3J0ZWQoKSkKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisKKyAgICByZXR1cm4gbV9zd09yaWdpblRhYmxlLT5jb250YWlucyhv
cmlnaW4pOworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c2V0U1dPcmlnaW5UYWJs
ZVNoYXJlZE1lbW9yeShjb25zdCBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSYgaXBjSGFuZGxlKQor
eworICAgIG1fc3dPcmlnaW5UYWJsZS0+c2V0U2hhcmVkTWVtb3J5KGlwY0hhbmRsZS5oYW5kbGUp
OworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c2V0U1dPcmlnaW5UYWJsZUlzSW1w
b3J0ZWQoKQoreworICAgIG1fc3dPcmlnaW5UYWJsZS0+c2V0SXNJbXBvcnRlZCgpOworICAgIHdo
aWxlICghbV90YXNrc1BlbmRpbmdPcmlnaW5JbXBvcnQuaXNFbXB0eSgpKQorICAgICAgICBtX3Rh
c2tzUGVuZGluZ09yaWdpbkltcG9ydC50YWtlRmlyc3QoKSgpOworfQorCiB2b2lkIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbjo6bWF0Y2hSZWdpc3RyYXRpb24oU2VjdXJpdHlPcmlnaW5EYXRhJiYgdG9w
T3JpZ2luLCBjb25zdCBVUkwmIGNsaWVudFVSTCwgUmVnaXN0cmF0aW9uQ2FsbGJhY2smJiBjYWxs
YmFjaykKIHsKICAgICBBU1NFUlQoaXNNYWluUnVuTG9vcCgpKTsKLSAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6TWF0Y2hSZWdpc3RyYXRpb24g
eyB0b3BPcmlnaW4sIGNsaWVudFVSTCB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBpZiAo
IW1heUhhdmVTZXJ2aWNlV29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbih0b3BPcmlnaW4pKSB7Cisg
ICAgICAgIGNhbGxiYWNrKHN0ZDo6bnVsbG9wdCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBydW5PckRlbGF5VGFza0ZvckltcG9ydChbdGhpcywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKSwgdG9wT3JpZ2luID0gV1RGTW92ZSh0b3BPcmlnaW4pLCBjbGllbnRVUkxdKCkgbXV0
YWJsZSB7CisgICAgICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjpNYXRjaFJlZ2lzdHJhdGlvbiB7IHRvcE9yaWdpbiwgY2xpZW50VVJMIH0sIFdU
Rk1vdmUoY2FsbGJhY2spKTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rp
b246OnJ1bk9yRGVsYXlUYXNrRm9ySW1wb3J0KEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKQorewor
ICAgIGlmIChtX3N3T3JpZ2luVGFibGUtPmlzSW1wb3J0ZWQoKSkgeworICAgICAgICB0YXNrKCk7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgbV90YXNrc1BlbmRpbmdPcmlnaW5JbXBvcnQu
YXBwZW5kKFdURk1vdmUodGFzaykpOwogfQogCiB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6
d2hlblJlZ2lzdHJhdGlvblJlYWR5KGNvbnN0IFNlY3VyaXR5T3JpZ2luRGF0YSYgdG9wT3JpZ2lu
LCBjb25zdCBVUkwmIGNsaWVudFVSTCwgV2hlblJlZ2lzdHJhdGlvblJlYWR5Q2FsbGJhY2smJiBj
YWxsYmFjaykKQEAgLTE1OCw3ICsxOTksMTUgQEAgdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246
OnNldFNlcnZpY2VXb3JrZXJDbGllbnRJc0NvbnRyb2xsZWQoU2NyaXB0RXhlY3V0aW9uQ28KIHZv
aWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpnZXRSZWdpc3RyYXRpb25zKFNlY3VyaXR5T3JpZ2lu
RGF0YSYmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwsIEdldFJlZ2lzdHJhdGlvbnND
YWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIEFTU0VSVChpc01haW5SdW5Mb29wKCkpOwotICAg
IHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpHZXRS
ZWdpc3RyYXRpb25zIHsgdG9wT3JpZ2luLCBjbGllbnRVUkwgfSwgV1RGTW92ZShjYWxsYmFjaykp
OworCisgICAgaWYgKCFtYXlIYXZlU2VydmljZVdvcmtlclJlZ2lzdGVyZWRGb3JPcmlnaW4odG9w
T3JpZ2luKSkgeworICAgICAgICBjYWxsYmFjayh7IH0pOworICAgICAgICByZXR1cm47CisgICAg
fQorCisgICAgcnVuT3JEZWxheVRhc2tGb3JJbXBvcnQoW3RoaXMsIGNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayksIHRvcE9yaWdpbiA9IFdURk1vdmUodG9wT3JpZ2luKSwgY2xpZW50VVJMXSgp
IG11dGFibGUgeworICAgICAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlNXU2Vy
dmVyQ29ubmVjdGlvbjo6R2V0UmVnaXN0cmF0aW9ucyB7IHRvcE9yaWdpbiwgY2xpZW50VVJMIH0s
IFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICB9KTsKIH0KIAogdm9pZCBXZWJTV0NsaWVudENvbm5l
Y3Rpb246OmNvbm5lY3Rpb25Ub1NlcnZlckxvc3QoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAppbmRleCBjYmQz
ODM0YWYxOTY3Y2Q0YmQ0OTM3ZWIxZDJjNjViM2M4NzEyZjBhLi5iYjllMDBhOTZjYzZjZjM0YTE5
NGU0Zjk2ZGIxMWY4OGZkYjE1N2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaApAQCAtNDIsNiArNDIsNyBA
QCBjbGFzcyBSZXNvdXJjZUxvYWRlcjsKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKK2NsYXNzIFdl
YlNXT3JpZ2luVGFibGU7CiBjbGFzcyBXZWJTZXJ2aWNlV29ya2VyUHJvdmlkZXI7CiAKIGNsYXNz
IFdlYlNXQ2xpZW50Q29ubmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpTV0NsaWVudENv
bm5lY3Rpb24sIHByaXZhdGUgSVBDOjpNZXNzYWdlU2VuZGVyLCBwdWJsaWMgSVBDOjpNZXNzYWdl
UmVjZWl2ZXIgewpAQCAtNTcsNiArNTgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaXNjb25uZWN0
ZWRGcm9tV2ViUHJvY2VzcygpOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25u
ZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAKKyAgICBib29sIG1heUhhdmVTZXJ2aWNl
V29ya2VyUmVnaXN0ZXJlZEZvck9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGEmKSBjb25zdCBmaW5hbDsKKwogICAgIHZvaWQgY29ubmVjdGlvblRvU2VydmVyTG9zdCgpOwog
CiAgICAgYm9vbCBpc1Rocm90dGxlYWJsZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNUaHJvdHRsZWFi
bGU7IH0KQEAgLTEwNywxMCArMTEwLDE2IEBAIHByaXZhdGU6CiAgICAgSVBDOjpDb25uZWN0aW9u
KiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsOwogICAgIHVpbnQ2NF90IG1l
c3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QgZmluYWwgeyByZXR1cm4gMDsgfQogCisg
ICAgdm9pZCBzZXRTV09yaWdpblRhYmxlU2hhcmVkTWVtb3J5KGNvbnN0IFNoYXJlZE1lbW9yeTo6
SVBDSGFuZGxlJik7CisgICAgdm9pZCBzZXRTV09yaWdpblRhYmxlSXNJbXBvcnRlZCgpOworCiAg
ICAgdm9pZCBjbGVhcigpOwogCiAgICAgV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciBtX2lkZW50aWZpZXI7CiAKKyAgICBVbmlxdWVSZWY8V2ViU1dPcmlnaW5UYWJsZT4gbV9z
d09yaWdpblRhYmxlOworCisgICAgRGVxdWU8RnVuY3Rpb248dm9pZCgpPj4gbV90YXNrc1BlbmRp
bmdPcmlnaW5JbXBvcnQ7CiAgICAgYm9vbCBtX2lzVGhyb3R0bGVhYmxlIHsgdHJ1ZSB9OwogfTsg
Ly8gY2xhc3MgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5t
ZXNzYWdlcy5pbgppbmRleCA1MDViMGFhYmFjNzNlMTQ5ZjVjN2RkODdhM2U2Mzk3OTMwNDc0ZjMx
Li5iNGM3Njk1ZDJhY2E5NTRjYjhmMTE5M2MyYjFkMTliYzJhZWZhYTJhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24ubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGll
bnRDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0zNSw2ICszNSw4IEBAIG1lc3NhZ2VzIC0+IFdl
YlNXQ2xpZW50Q29ubmVjdGlvbiB7CiAgICAgU2V0UmVnaXN0cmF0aW9uVXBkYXRlVmlhQ2FjaGUo
V2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwg
ZW51bTp1aW50OF90IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJVcGRhdGVWaWFDYWNoZSB1cGRhdGVW
aWFDYWNoZSk7CiAgICAgTm90aWZ5Q2xpZW50c09mQ29udHJvbGxlckNoYW5nZShIYXNoU2V0PFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBjb250ZXh0SWRlbnRpZmll
cnMsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyRGF0YSBuZXdDb250cm9sbGVyKQogCisg
ICAgU2V0U1dPcmlnaW5UYWJsZUlzSW1wb3J0ZWQoKQorICAgIFNldFNXT3JpZ2luVGFibGVTaGFy
ZWRNZW1vcnkoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSBoYW5kbGUpCiAgICAgUG9z
dE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXJDbGllbnQoV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXIgZGVzdGluYXRpb25Db250ZXh0SWRlbnRpZmllciwgc3RydWN0IFdlYkNv
cmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyRGF0YSBzb3VyY2UsIFN0cmluZyBzb3VyY2VPcmlnaW4pCiAKICAgICBTZXRTZXJ2
aWNlV29ya2VyQ2xpZW50SXNDb250cm9sbGVkKFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyIHdvcmtlcklkZW50aWZpZXIsIHN0cnVjdCBXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uRGF0YSBkYXRhKSAtPiAoYm9vbCBpc1N1Y2Nlc3MpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdpblRhYmxlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXT3JpZ2luVGFibGUuY3BwCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjA2ODExODlhNGE1YzQxNjA2NzIwN2RjMjkwYmI5MzljZDFjZTY3ZTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV09yaWdp
blRhYmxlLmNwcApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZp
Zy5oIgorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorI2luY2x1ZGUgIldlYlNXT3JpZ2lu
VGFibGUuaCIKKworI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KKworbmFtZXNw
YWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworYm9vbCBXZWJTV09yaWdp
blRhYmxlOjpjb250YWlucyhjb25zdCBTZWN1cml0eU9yaWdpbkRhdGEmIG9yaWdpbikgY29uc3QK
K3sKKyAgICByZXR1cm4gbV9zZXJ2aWNlV29ya2VyT3JpZ2luVGFibGUuY29udGFpbnMoY29tcHV0
ZVNoYXJlZFN0cmluZ0hhc2gob3JpZ2luLnRvU3RyaW5nKCkpKTsKK30KKwordm9pZCBXZWJTV09y
aWdpblRhYmxlOjpzZXRTaGFyZWRNZW1vcnkoY29uc3QgU2hhcmVkTWVtb3J5OjpIYW5kbGUmIGhh
bmRsZSkKK3sKKyAgICBhdXRvIHNoYXJlZE1lbW9yeSA9IFNoYXJlZE1lbW9yeTo6bWFwKGhhbmRs
ZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAgaWYgKCFzaGFyZWRN
ZW1vcnkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fc2VydmljZVdvcmtlck9yaWdpblRhYmxl
LnNldFNoYXJlZE1lbW9yeShzaGFyZWRNZW1vcnkucmVsZWFzZU5vbk51bGwoKSk7Cit9CisKK30g
Ly8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5U
YWJsZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dPcmlnaW5UYWJs
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjkzMGU0NjE4MTllMTg2ZjVhODBkOGY2NzE2ZmIxMThjNGRjMGVhODYK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V09yaWdpblRhYmxlLmgKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSAiU2hhcmVkTWVtb3J5
LmgiCisjaW5jbHVkZSAiU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkuaCIKKworbmFtZXNw
YWNlIFdlYkNvcmUgeworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKK30KKworbmFtZXNwYWNl
IFdlYktpdCB7CisKK2NsYXNzIFdlYlNXT3JpZ2luVGFibGUgeworICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOworcHVibGljOgorICAgIFdlYlNXT3JpZ2luVGFibGUoKSA9IGRlZmF1bHQ7CisK
KyAgICBib29sIGlzSW1wb3J0ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSW1wb3J0ZWQ7IH0KKyAg
ICB2b2lkIHNldElzSW1wb3J0ZWQoKSB7IG1faXNJbXBvcnRlZCA9IHRydWU7IH0KKyAgICBib29s
IGNvbnRhaW5zKGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYpIGNvbnN0OworICAg
IHZvaWQgc2V0U2hhcmVkTWVtb3J5KGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuZGxlJik7CisKK3By
aXZhdGU6CisgICAgU2hhcmVkU3RyaW5nSGFzaFRhYmxlUmVhZE9ubHkgbV9zZXJ2aWNlV29ya2Vy
T3JpZ2luVGFibGU7CisgICAgYm9vbCBtX2lzSW1wb3J0ZWQgeyBmYWxzZSB9OworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTaGFyZWRXb3Jr
ZXJDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU2hhcmVkV29ya2VyQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRl
eCA1ZTViYmJlZmFiM2UwNjU3Mjk5OWUwYTkxNjBhYzZkZDE2N2Q3N2RkLi45Zjg4MzU0ZmIyNThi
OWNlYTM1MjFmZGEyODA5YTk1YmQ0YTkwZmUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTaGFyZWRXb3JrZXJDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNoYXJlZFdvcmtl
ckNvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKQEAgLTQzLDcgKzQzLDYgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL0VtcHR5Q2xpZW50cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGFnZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvUGFnZUNvbmZpZ3VyYXRpb24uaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1Nj
cmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaGFy
ZWRXb3JrZXJDb250ZXh0TWFuYWdlci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVkV29ya2Vy
VGhyZWFkUHJveHkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJBZ2VudC5oPgpAQCAtMTE2LDcg
KzExNSw3IEBAIHZvaWQgV2ViU2hhcmVkV29ya2VyQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjps
YXVuY2hTaGFyZWRXb3JrZXIoV2ViQ29yZTo6Q2xpZW50CiAgICAgICAgIGluaXRpYWxpemF0aW9u
RGF0YS51c2VyQWdlbnQgPSBtX3VzZXJBZ2VudDsKIAogICAgIGlmICghaW5pdGlhbGl6YXRpb25E
YXRhLmNsaWVudElkZW50aWZpZXIpCi0gICAgICAgIGluaXRpYWxpemF0aW9uRGF0YS5jbGllbnRJ
ZGVudGlmaWVyID0gV2ViQ29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI6Omdl
bmVyYXRlKCk7CisgICAgICAgIGluaXRpYWxpemF0aW9uRGF0YS5jbGllbnRJZGVudGlmaWVyID0g
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI6OmdlbmVyYXRlKCk7CiAKICAgICBwYWdl
LT5zZXR1cEZvclJlbW90ZVdvcmtlcih3b3JrZXJGZXRjaFJlc3VsdC5sYXN0UmVxdWVzdFVSTCwg
b3JpZ2luLnRvcE9yaWdpbiwgd29ya2VyRmV0Y2hSZXN1bHQucmVmZXJyZXJQb2xpY3kpOwogICAg
IGF1dG8gc2hhcmVkV29ya2VyVGhyZWFkUHJveHkgPSBXZWJDb3JlOjpTaGFyZWRXb3JrZXJUaHJl
YWRQcm94eTo6Y3JlYXRlKFdURk1vdmUocGFnZSksIHNoYXJlZFdvcmtlcklkZW50aWZpZXIsIG9y
aWdpbiwgV1RGTW92ZSh3b3JrZXJGZXRjaFJlc3VsdCksIFdURk1vdmUod29ya2VyT3B0aW9ucyks
IFdURk1vdmUoaW5pdGlhbGl6YXRpb25EYXRhKSwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuY2Fj
aGVTdG9yYWdlUHJvdmlkZXIoKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>