<?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>228554</bug_id>
          
          <creation_ts>2021-07-28 10:10:09 -0700</creation_ts>
          <short_desc>IDBFactory.databases should not return databases with invalid version</short_desc>
          <delta_ts>2022-01-17 00:32:16 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>235285</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jsbell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1780089</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-07-28 10:10:09 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780101</commentid>
    <comment_count>1</comment_count>
      <attachid>434432</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-07-28 10:27:18 -0700</bug_when>
    <thetext>Created attachment 434432
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780192</commentid>
    <comment_count>2</comment_count>
      <attachid>434459</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-07-28 13:46:28 -0700</bug_when>
    <thetext>Created attachment 434459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780202</commentid>
    <comment_count>3</comment_count>
      <attachid>434464</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-07-28 14:12:44 -0700</bug_when>
    <thetext>Created attachment 434464
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780254</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-28 16:35:49 -0700</bug_when>
    <thetext>Committed r280410 (240050@main): &lt;https://commits.webkit.org/240050@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 434464.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1780255</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-28 16:36:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/81242275&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831353</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2022-01-16 15:05:51 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 235285</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434432</attachid>
            <date>2021-07-28 10:27:18 -0700</date>
            <delta_ts>2021-07-28 13:46:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228554-20210728102717.patch</filename>
            <type>text/plain</type>
            <size>19019</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMzI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWRhNDIyYWM3NDZhNzcy
MjdiMTY1YWFhODNkNGQ5ZjUwYTU1OTIwNC4uNWM1ZGE2YzRkMzA4NTdiZmIzYmNmMmE5NzA1ZGNk
NTdhMjE0NDI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA3LTI4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIElEQkZhY3RvcnkuZGF0YWJh
c2VzIHNob3VsZCBub3QgcmV0dXJuIGRhdGFiYXNlcyB3aXRoIGludmFsaWQgdmVyc2lvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NTU0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gZ2V0IGRhdGFi
YXNlIGluZm9ybWF0aW9uLCB3ZSB1c2VkIHRvIG9wZW4gYWxsIGRhdGFiYXNlIGZpbGVzIGFuZCBy
ZWFkIGZyb20gdGhlbS4gVG8gYXZvaWQgb3BlbmluZyBuZXcgCisgICAgICAgIGNvbm5lY3Rpb24g
dG8gZGF0YWJhc2VzIHRoYXQgYXJlIGFscmVhZHkgb3BlbmVkLCBhbmQgdG8gZW5zdXJlIHdlIGdl
dCB0aGUgbGF0ZXN0IGluZm9ybWF0aW9uLCBmb3IgZGF0YWJhc2UgdGhhdCAKKyAgICAgICAgaXMg
YWxyZWFkeSBvcGVuZWQsIHdlIHNob3VsZCBnZXQgaXRzIGluZm9ybWF0aW9uIGZyb20gVW5pcXVl
SURCRGF0YWJhc2UgZGlyZWN0bHkuIElmIGRhdGFiYXNlIGlzIG5vdCBvcGVuZWQsIHdlIAorICAg
ICAgICBvcGVuIGl0cyBmaWxlIGFuZCByZWFkLiBCeSBkb2luZyB0aGlzLCB3ZSBhbHNvIGZpeCB0
aGUgaXNzdWUgdGhhdCBubyBkYXRhYmFzZXMgYXJlIHJldHVybmVkIGluIHByaXZhdGUgYnJvd3Np
bmcKKyAgICAgICAgKHNpbmNlIHRoZXJlIGlzIG5vIGZpbGUgY3JlYXRlZCkuCisKKyAgICAgICAg
QWxzbywgdmVyc2lvbiAwIG1lYW5zIHRoZSBkYXRhYmFzZSBpcyBqdXN0IGNyZWF0ZWQgYW5kIGhh
cyBub3QgZmluaXNoZWQgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gKHZlcnNpb24gMSAKKyAg
ICAgICAgaXMgdGhlIGZpcnN0IHZhbGlkIHZlcnNpb24gYWNjb3JkaW5nIHRvIHNwZWMpLCBzbyB3
ZSBzaG91bGQgbm90IHJldHVybiBkYXRhYmFzZXMgd2l0aCB2ZXJzaW9uIDAuCisKKyAgICAgICAg
VGVzdHM6IHN0b3JhZ2UvaW5kZXhlZGRiL2dldGRhdGFiYXNlcy1wcml2YXRlLmh0bWwKKyAgICAg
ICAgICAgICAgIHN0b3JhZ2UvaW5kZXhlZGRiL2dldGRhdGFiYXNlcy5odG1sCisKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OmdldERhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tT3JpZ2luRGlyZWN0b3J5
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpnZXRBbGxEYXRhYmFz
ZU5hbWVzQW5kVmVyc2lvbnMpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9N
ZW1vcnlJREJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6VW5pcXVlSURCRGF0YWJhc2U6OmRpZERlbGV0ZUJhY2tpbmdTdG9yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpmaWxlUGF0aCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpuYW1lQW5kVmVy
c2lvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlE
QkRhdGFiYXNlLmg6CisKIDIwMjEtMDctMjYgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgRGVwbG95IHNtYXJ0IHBvaW50ZXJzIGluIEFwcGx5QmxvY2tFbGVtZW50
Q29tbWFuZCwgSW5kZW50T3V0ZGVudENvbW1hbmQgYW5kIEluc2VydExpc3RDb21tYW5kCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2lu
Z1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFj
a2luZ1N0b3JlLmgKaW5kZXggMDZjNjQ2ZDMzZjdmZWY4ZDkxMTRiYmE2NGU3N2NjYTAxMzY2NDU0
Zi4uZGE5OGY0YzdiNTU4YjY3MmUwNDA4Y2FlNWNlMTEwOTQwMzMyMGY2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJCYWNraW5n
U3RvcmUuaApAQCAtOTEsNiArOTEsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc3Vw
cG9ydHNTaW11bHRhbmVvdXNUcmFuc2FjdGlvbnMoKSA9IDA7CiAgICAgdmlydHVhbCBib29sIGlz
RXBoZW1lcmFsKCkgPSAwOworICAgIHZpcnR1YWwgU3RyaW5nIGZ1bGxEYXRhYmFzZVBhdGgoKSBj
b25zdCA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoKSA9IDA7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5k
ZXggYjRkNTU5NDU0MjQ4MDlhZjI2OGIwYzc0Mzg3NDFhNTYyOTE4ZGMyNC4uNzQ1NmE5M2M1YTMz
MDc5MzA2YzZjYjQyOTFmYjQ2Zjk5MTI0YTQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKQEAgLTUwOCwzMyArNTA4
LDQ3IEBAIHZvaWQgSURCU2VydmVyOjpvcGVuREJSZXF1ZXN0Q2FuY2VsbGVkKGNvbnN0IElEQlJl
cXVlc3REYXRhJiByZXF1ZXN0RGF0YSkKICAgICAgICAgbV91bmlxdWVJREJEYXRhYmFzZU1hcC5y
ZW1vdmUodW5pcXVlSURCRGF0YWJhc2UtPmlkZW50aWZpZXIoKSk7CiB9CiAKK3N0YXRpYyB2b2lk
IGdldERhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tT3JpZ2luRGlyZWN0b3J5KGNvbnN0IFN0cmlu
ZyYgZGlyZWN0b3J5LCBIYXNoU2V0PFN0cmluZz4mIGV4Y2x1ZGVkRGF0YWJhc2VQYXRocywgVmVj
dG9yPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+JiByZXN1bHQpCit7CisgICAgVmVjdG9yPFN0
cmluZz4gZGF0YWJhc2VEaXJlY3RvcnlOYW1lcyA9IEZpbGVTeXN0ZW06Omxpc3REaXJlY3Rvcnko
ZGlyZWN0b3J5KTsKKyAgICBmb3IgKGF1dG8mIGRhdGFiYXNlRGlyZWN0b3J5TmFtZSA6IGRhdGFi
YXNlRGlyZWN0b3J5TmFtZXMpIHsKKyAgICAgICAgYXV0byBmdWxsRGF0YWJhc2VQYXRoID0gU1FM
aXRlSURCQmFja2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VQYXRoRm9yRGlyZWN0b3J5KEZpbGVTeXN0
ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChkaXJlY3RvcnksIGRhdGFiYXNlRGlyZWN0b3J5
TmFtZSkpOworICAgICAgICBpZiAoZXhjbHVkZWREYXRhYmFzZVBhdGhzLmNvbnRhaW5zKGZ1bGxE
YXRhYmFzZVBhdGgpKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgaWYgKGF1dG8g
bmFtZUFuZFZlcnNpb24gPSBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRhdGFiYXNlTmFtZUFuZFZl
cnNpb25Gcm9tRmlsZShmdWxsRGF0YWJhc2VQYXRoKSkKKyAgICAgICAgICAgIHJlc3VsdC5hcHBl
bmQoV1RGTW92ZSgqbmFtZUFuZFZlcnNpb24pKTsKKyAgICB9Cit9CisKIHZvaWQgSURCU2VydmVy
OjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoSURCQ29ubmVjdGlvbklkZW50aWZpZXIg
c2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYg
cmVxdWVzdElkZW50aWZpZXIsIGNvbnN0IENsaWVudE9yaWdpbiYgb3JpZ2luKQogewogICAgIEFT
U0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX2xvY2suaXNIZWxkKCkpOwogCi0g
ICAgU3RyaW5nIG9sZERpcmVjdG9yeSA9IElEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VE
aXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4udG9wT3JpZ2luLCBvcmlnaW4uY2xpZW50T3Jp
Z2luLCBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYwIik7Ci0gICAgVmVjdG9yPFN0cmluZz4g
ZmlsZU5hbWVzID0gRmlsZVN5c3RlbTo6bGlzdERpcmVjdG9yeShvbGREaXJlY3RvcnkpOwotICAg
IFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiBkYXRhYmFzZXM7Ci0gICAgZm9yIChh
dXRvJiBmaWxlTmFtZSA6IGZpbGVOYW1lcykgewotICAgICAgICBhdXRvIGRhdGFiYXNlVHVwbGUg
PSBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmRhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tRmlsZShT
UUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBhdGhGb3JEaXJlY3RvcnkoRmlsZVN5
c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG9sZERpcmVjdG9yeSwgZmlsZU5hbWUpKSk7
Ci0gICAgICAgIGlmIChkYXRhYmFzZVR1cGxlKQotICAgICAgICAgICAgZGF0YWJhc2VzLmFwcGVu
ZChXVEZNb3ZlKCpkYXRhYmFzZVR1cGxlKSk7CisgICAgVmVjdG9yPElEQkRhdGFiYXNlTmFtZUFu
ZFZlcnNpb24+IHJlc3VsdDsKKyAgICBIYXNoU2V0PFN0cmluZz4gdmlzaXRlZERhdGFiYXNlUGF0
aHM7CisKKyAgICBmb3IgKGF1dG8mIGRhdGFiYXNlIDogbV91bmlxdWVJREJEYXRhYmFzZU1hcC52
YWx1ZXMoKSkgeworICAgICAgICBhdXRvIHBhdGggPSBkYXRhYmFzZS0+ZmlsZVBhdGgoKTsKKyAg
ICAgICAgaWYgKCFwYXRoLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHZpc2l0ZWREYXRhYmFzZVBh
dGhzLmFkZChwYXRoKTsKKworICAgICAgICBpZiAoYXV0byBuYW1lQW5kVmVyc2lvbiA9IGRhdGFi
YXNlLT5uYW1lQW5kVmVyc2lvbigpKQorICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChXVEZNb3Zl
KCpuYW1lQW5kVmVyc2lvbikpOwogICAgIH0KIAorICAgIFN0cmluZyBvbGREaXJlY3RvcnkgPSBJ
REJEYXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3Jp
Z2luLnRvcE9yaWdpbiwgb3JpZ2luLmNsaWVudE9yaWdpbiwgbV9kYXRhYmFzZURpcmVjdG9yeVBh
dGgsICJ2MCIpOworICAgIGdldERhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tT3JpZ2luRGlyZWN0
b3J5KG9sZERpcmVjdG9yeSwgdmlzaXRlZERhdGFiYXNlUGF0aHMsIHJlc3VsdCk7CisKICAgICBT
dHJpbmcgZGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9y
eVJlbGF0aXZlVG9Sb290KG9yaWdpbi50b3BPcmlnaW4sIG9yaWdpbi5jbGllbnRPcmlnaW4sIG1f
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjEiKTsKLSAgICBmaWxlTmFtZXMgPSBGaWxlU3lzdGVt
OjpsaXN0RGlyZWN0b3J5KGRpcmVjdG9yeSk7Ci0gICAgZm9yIChhdXRvJiBmaWxlTmFtZSA6IGZp
bGVOYW1lcykgewotICAgICAgICBhdXRvIGRhdGFiYXNlVHVwbGUgPSBTUUxpdGVJREJCYWNraW5n
U3RvcmU6OmRhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tRmlsZShTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OmZ1bGxEYXRhYmFzZVBhdGhGb3JEaXJlY3RvcnkoRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50KGRpcmVjdG9yeSwgZmlsZU5hbWUpKSk7Ci0gICAgICAgIGlmIChkYXRhYmFz
ZVR1cGxlKQotICAgICAgICAgICAgZGF0YWJhc2VzLmFwcGVuZChXVEZNb3ZlKCpkYXRhYmFzZVR1
cGxlKSk7Ci0gICAgfQorICAgIGdldERhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tT3JpZ2luRGly
ZWN0b3J5KGRpcmVjdG9yeSwgdmlzaXRlZERhdGFiYXNlUGF0aHMsIHJlc3VsdCk7CiAKICAgICBh
dXRvIGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25NYXAuZ2V0KHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyKTsKICAgICBpZiAoIWNvbm5lY3Rpb24pCiAgICAgICAgIHJldHVybjsKIAotICAgIGNv
bm5lY3Rpb24tPmRpZEdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhyZXF1ZXN0SWRlbnRp
ZmllciwgV1RGTW92ZShkYXRhYmFzZXMpKTsKKyAgICBjb25uZWN0aW9uLT5kaWRHZXRBbGxEYXRh
YmFzZU5hbWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7
CiB9CiAKIHN0YXRpYyB2b2lkIGNvbGxlY3RPcmlnaW5zRm9yVmVyc2lvbihjb25zdCBTdHJpbmcm
IHZlcnNpb25QYXRoLCBIYXNoU2V0PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIHNlY3Vy
aXR5T3JpZ2lucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuaAppbmRleCA0MzlhYjRmYzlm
Yzg1OWU3YWYzMzUxMmIzZDgzM2MyZTQ4YWU5ZmZhLi45MmFhNzYwZDIwNzMzNzE4ZmJkYjhjMDQ0
Y2ZlNjdkY2FiMTY1MzM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5oCkBAIC04MCw2
ICs4MCw3IEBAIHByaXZhdGU6CiAKICAgICBib29sIHN1cHBvcnRzU2ltdWx0YW5lb3VzVHJhbnNh
Y3Rpb25zKCkgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogICAgIGJvb2wgaXNFcGhlbWVyYWwoKSBm
aW5hbCB7IHJldHVybiB0cnVlOyB9CisgICAgU3RyaW5nIGZ1bGxEYXRhYmFzZVBhdGgoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBudWxsU3RyaW5nKCk7IH0KIAogICAgIGJvb2wgaGFzVHJhbnNhY3Rp
b24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiBpZGVudGlmaWVyKSBjb25zdCBmaW5hbCB7
IHJldHVybiBtX3RyYW5zYWN0aW9ucy5jb250YWlucyhpZGVudGlmaWVyKTsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFj
a2luZ1N0b3JlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FM
aXRlSURCQmFja2luZ1N0b3JlLmgKaW5kZXggNzQ5MjRiMmZhYTg0MzE5NDI5MDgwZDhlNzcwYWIy
OGEzY2UwZDFhNi4uMmVmZTZiMmEzNDE5OTNiYjI2ZmRmOTFjZmY2ZTdkZWE4ZGJiZWQzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlE
QkJhY2tpbmdTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaApAQCAtODYsNiArODYsNyBAQCBwdWJsaWM6CiAK
ICAgICBib29sIHN1cHBvcnRzU2ltdWx0YW5lb3VzVHJhbnNhY3Rpb25zKCkgZmluYWwgeyByZXR1
cm4gZmFsc2U7IH0KICAgICBib29sIGlzRXBoZW1lcmFsKCkgZmluYWwgeyByZXR1cm4gZmFsc2U7
IH0KKyAgICBTdHJpbmcgZnVsbERhdGFiYXNlUGF0aCgpIGNvbnN0IGZpbmFsOwogCiAgICAgYm9v
bCBoYXNUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImKSBjb25zdCBmaW5h
bDsKIApAQCAtMTAzLDcgKzEwNCw2IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBTdHJpbmcg
ZmlsZW5hbWVGb3JEYXRhYmFzZU5hbWUoKSBjb25zdDsKLSAgICBTdHJpbmcgZnVsbERhdGFiYXNl
UGF0aCgpIGNvbnN0OwogICAgIFN0cmluZyBmdWxsRGF0YWJhc2VEaXJlY3RvcnlXaXRoVXBncmFk
ZSgpOwogCiAgICAgSURCRXJyb3IgZW5zdXJlVmFsaWRSZWNvcmRzVGFibGUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2UuY3BwCmluZGV4IGQ1NGE2ZTZjYzAyZjUyYjg3ODI2ODJlOTQwY2FjZGIwZTI1
YjY0NDYuLjU3ODI1YmQzZTlkYjNiMzA5Mjk0YjBiY2Y3YzVjNDljMGNkZGNjMjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1Vu
aXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtMzEyLDcgKzMxMiw3IEBAIHZvaWQgVW5pcXVlSURCRGF0
YWJhc2U6OmRpZERlbGV0ZUJhY2tpbmdTdG9yZSh1aW50NjRfdCBkZWxldGVkVmVyc2lvbikKICAg
ICBBU1NFUlQobV9jdXJyZW50T3BlbkRCUmVxdWVzdC0+aXNEZWxldGVSZXF1ZXN0KCkpOwogCiAg
ICAgaWYgKG1fZGF0YWJhc2VJbmZvKQotICAgICAgICBtX21vc3RSZWNlbnREZWxldGVkRGF0YWJh
c2VJbmZvID0gV1RGTW92ZShtX2RhdGFiYXNlSW5mbyk7CisgICAgICAgIG1fbW9zdFJlY2VudERl
bGV0ZWREYXRhYmFzZUluZm8gPSBzdGQ6OmV4Y2hhbmdlKG1fZGF0YWJhc2VJbmZvLCBudWxscHRy
KTsKIAogICAgIC8vIElmIHRoaXMgVW5pcXVlSURCRGF0YWJhc2Ugd2FzIGJyb3VnaHQgaW50byBl
eGlzdGVuY2UgZm9yIHRoZSBwdXJwb3NlIG9mIGRlbGV0aW5nIHRoZSBmaWxlIG9uIGRpc2ssCiAg
ICAgLy8gd2Ugd29uJ3QgaGF2ZSBhIG1fbW9zdFJlY2VudERlbGV0ZWREYXRhYmFzZUluZm8uIElu
IHRoYXQgY2FzZSwgd2UnbGwgbWFudWZhY3R1cmUgb25lIHVzaW5nIHRoZQpAQCAtMTI0MCw1ICsx
MjQwLDMwIEBAIFJlZlB0cjxTZXJ2ZXJPcGVuREJSZXF1ZXN0PiBVbmlxdWVJREJEYXRhYmFzZTo6
dGFrZU5leHRSdW5uYWJsZVJlcXVlc3QoUmVxdWVzdFR5CiAgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKK1N0cmluZyBVbmlxdWVJREJEYXRhYmFzZTo6ZmlsZVBhdGgoKSBjb25zdAoreworICAgIHJl
dHVybiBtX2JhY2tpbmdTdG9yZSA/IG1fYmFja2luZ1N0b3JlLT5mdWxsRGF0YWJhc2VQYXRoKCkg
OiBudWxsU3RyaW5nKCk7Cit9CisKK3N0ZDo6b3B0aW9uYWw8SURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvbj4gVW5pcXVlSURCRGF0YWJhc2U6Om5hbWVBbmRWZXJzaW9uKCkgY29uc3QKK3sKKyAgICBp
ZiAoIW1fYmFja2luZ1N0b3JlKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAg
aWYgKG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKSB7CisgICAgICAgIGlmIChhdXRvIGRhdGFi
YXNlSW5mbyA9IG1fdmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uLT5vcmlnaW5hbERhdGFiYXNlSW5m
bygpKSB7CisgICAgICAgICAgICAvLyBUaGUgZGF0YWJhc2UgaXMgbmV3bHkgY3JlYXRlZC4KKyAg
ICAgICAgICAgIGlmICghZGF0YWJhc2VJbmZvLT52ZXJzaW9uKCkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgICAgICAgICAgcmV0dXJuIElEQkRhdGFiYXNlTmFt
ZUFuZFZlcnNpb24geyBkYXRhYmFzZUluZm8tPm5hbWUoKSwgZGF0YWJhc2VJbmZvLT52ZXJzaW9u
KCkgfTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQor
CisgICAgcmV0dXJuIElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24geyBtX2RhdGFiYXNlSW5mby0+
bmFtZSgpLCBtX2RhdGFiYXNlSW5mby0+dmVyc2lvbigpIH07Cit9CisKIH0gLy8gbmFtZXNwYWNl
IElEQlNlcnZlcgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaApp
bmRleCBkZmFkZGI5N2NjMjI1OGU3ZTQwZWVjOGZhMjEwODQ2OGIwY2RjYTM0Li5iMmE3NDE3Zjlj
ODE5Y2ZjMjQxNDZjZTVmYjVjZjVkMjYxMjg1MDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuaApA
QCAtMjgsNiArMjgsNyBAQAogI2luY2x1ZGUgIklEQkJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUg
IklEQkRhdGFiYXNlSWRlbnRpZmllci5oIgogI2luY2x1ZGUgIklEQkRhdGFiYXNlSW5mby5oIgor
I2luY2x1ZGUgIklEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24uaCIKICNpbmNsdWRlICJJREJHZXRS
ZXN1bHQuaCIKICNpbmNsdWRlICJTZXJ2ZXJPcGVuREJSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiVW5p
cXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbi5oIgpAQCAtMTExLDYgKzExMiw5IEBAIHB1YmxpYzoK
ICAgICB2b2lkIGFib3J0QWN0aXZlVHJhbnNhY3Rpb25zKCk7CiAgICAgYm9vbCB0cnlDbG9zZSgp
OwogCisgICAgU3RyaW5nIGZpbGVQYXRoKCkgY29uc3Q7CisgICAgc3RkOjpvcHRpb25hbDxJREJE
YXRhYmFzZU5hbWVBbmRWZXJzaW9uPiBuYW1lQW5kVmVyc2lvbigpIGNvbnN0OworCiBwcml2YXRl
OgogICAgIHZvaWQgaGFuZGxlRGF0YWJhc2VPcGVyYXRpb25zKCk7CiAgICAgdm9pZCBoYW5kbGVD
dXJyZW50T3BlcmF0aW9uKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNDliOTNmZmIyYWYzZDdkNzc1NTRmMDUyZTc3YmMw
YWRkMzg5NmE3YS4uMjlhNTEyMTVjY2UxZWE0NWZiYzk0ZGQ4MjM1N2Y0ODM0MGJkMmFhOSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA3LTI4ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBw
bGUuY29tPgorCisgICAgICAgIElEQkZhY3RvcnkuZGF0YWJhc2VzIHNob3VsZCBub3QgcmV0dXJu
IGRhdGFiYXNlcyB3aXRoIGludmFsaWQgdmVyc2lvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NTU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9nZXRkYXRhYmFzZXMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9nZXRkYXRh
YmFzZXMtcHJpdmF0ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvaW5k
ZXhlZGRiL2dldGRhdGFiYXNlcy1wcml2YXRlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL2dldGRhdGFiYXNlcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdl
L2luZGV4ZWRkYi9yZXNvdXJjZXMvZ2V0ZGF0YWJhc2VzLmpzOiBBZGRlZC4KKyAgICAgICAgKHRl
c3QpOgorCiAyMDIxLTA3LTI2ICBBeXVtaSBLb2ppbWEgIDxheXVtaV9rb2ppbWFAYXBwbGUuY29t
PgogCiAgICAgICAgIFsgaU9TIERlYnVnIF0gaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nl
c3MtY29udHJvbC1wcmVmbGlnaHQtY3JlZGVudGlhbC1zeW5jLmh0bWwgaXMgYSBmbGFreSBjcmFz
aC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDQwNmFlZjJkYWNiNmY5ZmEyNWYx
ZjdjYjY2Nzc3MTdmYTBhMWRiOGEuLjhmNjllOWExNjU1NzkyMTk2YzY5ODE4YjIxZDMxMTgwOGUy
MDI5NWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDIxLTA3LTI4ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIElE
QkZhY3RvcnkuZGF0YWJhc2VzIHNob3VsZCBub3QgcmV0dXJuIGRhdGFiYXNlcyB3aXRoIGludmFs
aWQgdmVyc2lvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjI4NTU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMuYW55LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRh
YmFzZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisKIDIwMjEtMDctMjYgIEpvaG5zb24gWmhv
dSAgPHFpYW9zb25nX3pob3VAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZGVkIEZvcm1EYXRhRXZl
bnQgc3VwcG9ydC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMuYW55LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1k
YXRhYmFzZXMuYW55LWV4cGVjdGVkLnR4dAppbmRleCA3MjI4ODNjMjVmZmRhNzczZTViODMyNjJk
NTBjYjkwNDY0ODMyNDgyLi4wZDU4YmQ2MTZmMDRiNjcxNTNiNzhmNzg2ZmM0YWQ3MzVmYzJjZjE3
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvZ2V0LWRhdGFiYXNl
cy5hbnktZXhwZWN0ZWQudHh0CkBAIC0zLDUgKzMsNSBAQCBQQVNTIEVuc3VyZSB0aGF0IGRhdGFi
YXNlcygpIHJldHVybnMgYSBwcm9taXNlLgogUEFTUyBFbnVtZXJhdGUgb25lIGRhdGFiYXNlLgog
UEFTUyBFbnVtZXJhdGUgbXVsdGlwbGUgZGF0YWJhc2VzLgogUEFTUyBNYWtlIHN1cmUgYW4gZW1w
dHkgbGlzdCBpcyByZXR1cm5lZCBmb3IgdGhlIGNhc2Ugb2Ygbm8gZGF0YWJhc2VzLgotRkFJTCBF
bnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBkb2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhhdmVu
J3QgY29tbWl0ZWQuIGFzc2VydF9lcXVhbHM6IFRoZSByZXN1bHQgb2YgZGF0YWJhc2VzKCkgc2hv
dWxkIGJlIG9ubHkgdGhvc2UgZGF0YWJhc2VzIHdoaWNoIGhhdmUgYmVlbiBjcmVhdGVkIGF0IHRo
ZSB0aW1lIG9mIGNhbGxpbmcsIHJlZ2FyZGxlc3Mgb2YgdmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlv
bnMgY3VycmVudGx5IHJ1bm5pbmcuIGV4cGVjdGVkIDEgYnV0IGdvdCAyCitQQVNTIEVuc3VyZSB0
aGF0IGRhdGFiYXNlcygpIGRvZXNuJ3QgcGljayB1cCBjaGFuZ2VzIHRoYXQgaGF2ZW4ndCBjb21t
aXRlZC4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9JbmRleGVkREIvZ2V0LWRhdGFiYXNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dl
dC1kYXRhYmFzZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggNzIyODgzYzI1ZmZkYTc3
M2U1YjgzMjYyZDUwY2I5MDQ2NDgzMjQ4Mi4uMGQ1OGJkNjE2ZjA0YjY3MTUzYjc4Zjc4NmZjNGFk
NzM1ZmMyY2YxNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9JbmRleGVkREIvZ2V0LWRhdGFiYXNlcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4
dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9nZXQtZGF0YWJhc2VzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0zLDUgKzMsNSBA
QCBQQVNTIEVuc3VyZSB0aGF0IGRhdGFiYXNlcygpIHJldHVybnMgYSBwcm9taXNlLgogUEFTUyBF
bnVtZXJhdGUgb25lIGRhdGFiYXNlLgogUEFTUyBFbnVtZXJhdGUgbXVsdGlwbGUgZGF0YWJhc2Vz
LgogUEFTUyBNYWtlIHN1cmUgYW4gZW1wdHkgbGlzdCBpcyByZXR1cm5lZCBmb3IgdGhlIGNhc2Ug
b2Ygbm8gZGF0YWJhc2VzLgotRkFJTCBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBkb2Vzbid0IHBp
Y2sgdXAgY2hhbmdlcyB0aGF0IGhhdmVuJ3QgY29tbWl0ZWQuIGFzc2VydF9lcXVhbHM6IFRoZSBy
ZXN1bHQgb2YgZGF0YWJhc2VzKCkgc2hvdWxkIGJlIG9ubHkgdGhvc2UgZGF0YWJhc2VzIHdoaWNo
IGhhdmUgYmVlbiBjcmVhdGVkIGF0IHRoZSB0aW1lIG9mIGNhbGxpbmcsIHJlZ2FyZGxlc3Mgb2Yg
dmVyc2lvbmNoYW5nZSB0cmFuc2FjdGlvbnMgY3VycmVudGx5IHJ1bm5pbmcuIGV4cGVjdGVkIDEg
YnV0IGdvdCAyCitQQVNTIEVuc3VyZSB0aGF0IGRhdGFiYXNlcygpIGRvZXNuJ3QgcGljayB1cCBj
aGFuZ2VzIHRoYXQgaGF2ZW4ndCBjb21taXRlZC4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvZ2V0ZGF0YWJhc2VzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL2dldGRhdGFiYXNlcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODM0YTM1MTUyZDVhMTZkYjU1YzU5YzAwZDVkYjM5ZjBiZmVkNjRhNgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2dldGRhdGFiYXNlcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMSBAQAorQ09OU09MRSBNRVNTQUdFOiAwCitFbnN1cmUgYWxsIGRhdGFi
YXNlcyBjYW4gYmUgcmV0cmlldmVkCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitp
bmRleGVkREIub3BlbignZ2V0ZGF0YWJhc2UtZmlyc3QnKQorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL2dldGRhdGFiYXNlcy1wcml2YXRlLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2dldGRhdGFiYXNlcy1wcml2YXRlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zNjdjODdkMzliNDkyYmViNzQ1ODA5MTRiMjRkMzZiOGIwYjdmNTlhCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZ2V0ZGF0YWJh
c2VzLXByaXZhdGUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTggQEAKK0Vuc3VyZSBhbGwgZGF0
YWJhc2VzIGNhbiBiZSByZXRyaWV2ZWQKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K2luZGV4ZWREQi5vcGVuKCdnZXRkYXRhYmFzZS1maXJzdCcpCitQQVNTIGRhdGFiYXNlcy5sZW5n
dGggaXMgMAoraW5kZXhlZERCLm9wZW4oJ2dldGRhdGFiYXNlLXNlY29uZCcsIDIpCitQQVNTIGRh
dGFiYXNlcy5sZW5ndGggaXMgMQorUEFTUyBkYXRhYmFzZXNbMF0udmVyc2lvbiBpcyAxCitQQVNT
IGRhdGFiYXNlc1swXS5uYW1lIGlzICJnZXRkYXRhYmFzZS1maXJzdCIKK1BBU1MgZGF0YWJhc2Vz
Lmxlbmd0aCBpcyAyCitQQVNTIGRhdGFiYXNlc1sxXS52ZXJzaW9uIGlzIDIKK1BBU1MgZGF0YWJh
c2VzWzFdLm5hbWUgaXMgImdldGRhdGFiYXNlLXNlY29uZCIKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9nZXRkYXRhYmFzZXMtcHJpdmF0ZS5odG1sIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvZ2V0ZGF0YWJhc2VzLXByaXZhdGUuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5j
OWFiNzQ0MGJmZTQzN2RmODk4ODBkYzRlYzczNzA3NGIyYWNiNTZlCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZ2V0ZGF0YWJhc2VzLXByaXZhdGUuaHRt
bApAQCAtMCwwICsxLDEwIEBACis8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUVwaGVtZXJh
bFNlc3Npb249dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3No
YXJlZC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvZ2V0ZGF0YWJhc2VzLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXds
aW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9nZXRkYXRhYmFzZXMuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2dl
dGRhdGFiYXNlcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ0ZWZlMzNlZWNjYWJlYWJiYTcxYmVhODk1YWQz
N2MxMjRlOWE5ZTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9nZXRkYXRhYmFzZXMuaHRtbApAQCAtMCwwICsxLDkgQEAKKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2dldGRhdGFiYXNlcy5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2dldGRhdGFiYXNlcy5qcyBiL0xheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9nZXRkYXRhYmFzZXMuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMWM4ZWQ4ZjRkMWY3NjRiMzVkMTM1Yzg4MWFlZTAyYjdkN2ExYWNkOQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9nZXRkYXRh
YmFzZXMuanMKQEAgLTAsMCArMSw0NSBAQAoraWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAg
IGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzJyk7CisgICAgaW1w
b3J0U2NyaXB0cygnc2hhcmVkLmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJFbnN1cmUgYWxsIGRh
dGFiYXNlcyBjYW4gYmUgcmV0cmlldmVkIik7CisKK3ZhciBkYXRhYmFzZXM7CisKK2Z1bmN0aW9u
IHRlc3QoKSB7CisgICAgaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdnZXRkYXRhYmFzZS1maXJz
dCcpOworICAgIGluZGV4ZWREQi5kZWxldGVEYXRhYmFzZSgnZ2V0ZGF0YWJhc2Utc2Vjb25kJyk7
CisKKyAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ2dldGRhdGFiYXNl
LWZpcnN0JykiKTsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9ICgpID0+IHsKKyAgICAg
ICAgaW5kZXhlZERCLmRhdGFiYXNlcygpLnRoZW4oKHJlc3VsdCk9PiB7CisgICAgICAgICAgICBk
YXRhYmFzZXMgPSByZXN1bHQ7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9OdW1iZXIoImRh
dGFiYXNlcy5sZW5ndGgiLCAwKTsKKyAgICAgICAgICAgIGNvbnRpbnVlVGVzdCgpOworICAgICAg
ICB9KTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNvbnRpbnVlVGVzdCgpIHsKKyAgICByZXF1ZXN0
ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLm9wZW4oJ2dldGRhdGFiYXNlLXNlY29uZCcsIDIpIik7
CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSAoKSA9PiB7CisgICAgICAgIGluZGV4ZWRE
Qi5kYXRhYmFzZXMoKS50aGVuKChyZXN1bHQpID0+IHsKKyAgICAgICAgICAgIGRhdGFiYXNlcyA9
IHJlc3VsdDsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb051bWJlcigiZGF0YWJhc2VzLmxl
bmd0aCIsIDEpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvTnVtYmVyKCJkYXRhYmFzZXNb
MF0udmVyc2lvbiIsIDEpCisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRhdGFi
YXNlc1swXS5uYW1lIiwgImdldGRhdGFiYXNlLWZpcnN0Iik7CisgICAgICAgIH0pOworICAgIH0K
KyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9ICgpID0+IHsKKyAgICAgICAgaW5kZXhlZERCLmRhdGFi
YXNlcygpLnRoZW4oKHJlc3VsdCkgPT4geworICAgICAgICAgICAgZGF0YWJhc2VzID0gcmVzdWx0
OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvTnVtYmVyKCJkYXRhYmFzZXMubGVuZ3RoIiwg
Mik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9OdW1iZXIoImRhdGFiYXNlc1sxXS52ZXJz
aW9uIiwgMik7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImRhdGFiYXNlc1sx
XS5uYW1lIiwgImdldGRhdGFiYXNlLXNlY29uZCIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgIH0pOworICAgIH0KK30KKwordGVzdCgpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434459</attachid>
            <date>2021-07-28 13:46:28 -0700</date>
            <delta_ts>2021-07-28 14:12:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228554-20210728134627.patch</filename>
            <type>text/plain</type>
            <size>19264</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAwZTcxZmNkYThhZWNj
ZjdlY2RmMmQyNDZjMTM4MmJmY2IzYTI1OC4uMWQxNDJkOTE5NGY0MTM0NmJhZGY0ODMyYzdjZDk3
N2YzODk2M2E0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA3LTI4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIElEQkZhY3RvcnkuZGF0YWJh
c2VzIHNob3VsZCBub3QgcmV0dXJuIGRhdGFiYXNlcyB3aXRoIGludmFsaWQgdmVyc2lvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NTU0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gZ2V0IGRhdGFi
YXNlIGluZm9ybWF0aW9uLCB3ZSB1c2VkIHRvIG9wZW4gYWxsIGRhdGFiYXNlIGZpbGVzIGFuZCBy
ZWFkIGZyb20gdGhlbS4gVG8gYXZvaWQgb3BlbmluZyBuZXcgCisgICAgICAgIGNvbm5lY3Rpb24g
dG8gZGF0YWJhc2VzIHRoYXQgYXJlIGFscmVhZHkgb3BlbmVkLCBhbmQgdG8gZW5zdXJlIHdlIGdl
dCB0aGUgbGF0ZXN0IGluZm9ybWF0aW9uLCBmb3IgZGF0YWJhc2UgdGhhdCAKKyAgICAgICAgaXMg
YWxyZWFkeSBvcGVuZWQsIHdlIHNob3VsZCBnZXQgaXRzIGluZm9ybWF0aW9uIGZyb20gVW5pcXVl
SURCRGF0YWJhc2UgZGlyZWN0bHkuIElmIGRhdGFiYXNlIGlzIG5vdCBvcGVuZWQsIHdlIAorICAg
ICAgICBvcGVuIGl0cyBmaWxlIGFuZCByZWFkLiBCeSBkb2luZyB0aGlzLCB3ZSBhbHNvIGZpeCB0
aGUgaXNzdWUgdGhhdCBubyBkYXRhYmFzZXMgYXJlIHJldHVybmVkIGluIHByaXZhdGUgYnJvd3Np
bmcKKyAgICAgICAgKHNpbmNlIHRoZXJlIGlzIG5vIGZpbGUgY3JlYXRlZCkuCisKKyAgICAgICAg
QWxzbywgdmVyc2lvbiAwIG1lYW5zIHRoZSBkYXRhYmFzZSBpcyBqdXN0IGNyZWF0ZWQgYW5kIGhh
cyBub3QgZmluaXNoZWQgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gKHZlcnNpb24gMSAKKyAg
ICAgICAgaXMgdGhlIGZpcnN0IHZhbGlkIHZlcnNpb24gYWNjb3JkaW5nIHRvIHNwZWMpLCBzbyB3
ZSBzaG91bGQgbm90IHJldHVybiBkYXRhYmFzZXMgd2l0aCB2ZXJzaW9uIDAuCisKKyAgICAgICAg
VGVzdHM6IHN0b3JhZ2UvaW5kZXhlZGRiL2dldGRhdGFiYXNlcy1wcml2YXRlLmh0bWwKKyAgICAg
ICAgICAgICAgIHN0b3JhZ2UvaW5kZXhlZGRiL2dldGRhdGFiYXNlcy5odG1sCisKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OmdldERhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tT3JpZ2luRGlyZWN0b3J5
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpnZXRBbGxEYXRhYmFz
ZU5hbWVzQW5kVmVyc2lvbnMpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9N
ZW1vcnlJREJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6VW5pcXVlSURCRGF0YWJhc2U6OmRpZERlbGV0ZUJhY2tpbmdTdG9yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpmaWxlUGF0aCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpuYW1lQW5kVmVy
c2lvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlE
QkRhdGFiYXNlLmg6CisKIDIwMjEtMDctMjggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQXBwSGlnaGxpZ2h0U3RvcmFnZSBzaG91bGQgbm90IGluaGVyaXQgcHJp
dmF0ZWx5IGZyb20gUmVmQ291bnRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oCmluZGV4IDA2YzY0NmQzM2Y3
ZmVmOGQ5MTE0YmJhNjRlNzdjY2EwMTM2NjQ1NGYuLmRhOThmNGM3YjU1OGI2NzJlMDQwOGNhZTVj
ZTExMDk0MDMzMjBmNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgKQEAgLTkxLDYgKzkxLDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzU2ltdWx0YW5lb3VzVHJhbnNhY3Rpb25z
KCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0VwaGVtZXJhbCgpID0gMDsKKyAgICB2aXJ0dWFs
IFN0cmluZyBmdWxsRGF0YWJhc2VQYXRoKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCB2b2lk
IGNsb3NlKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IGI0ZDU1OTQ1NDI0ODA5YWYyNjhiMGM3NDM4
NzQxYTU2MjkxOGRjMjQuLjc0NTZhOTNjNWEzMzA3OTMwNmM2Y2I0MjkxZmI0NmY5OTEyNGE0Mzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJT
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJTZXJ2ZXIuY3BwCkBAIC01MDgsMzMgKzUwOCw0NyBAQCB2b2lkIElEQlNlcnZlcjo6b3BlbkRC
UmVxdWVzdENhbmNlbGxlZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEpCiAgICAg
ICAgIG1fdW5pcXVlSURCRGF0YWJhc2VNYXAucmVtb3ZlKHVuaXF1ZUlEQkRhdGFiYXNlLT5pZGVu
dGlmaWVyKCkpOwogfQogCitzdGF0aWMgdm9pZCBnZXREYXRhYmFzZU5hbWVBbmRWZXJzaW9uRnJv
bU9yaWdpbkRpcmVjdG9yeShjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgSGFzaFNldDxTdHJpbmc+
JiBleGNsdWRlZERhdGFiYXNlUGF0aHMsIFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9u
PiYgcmVzdWx0KQoreworICAgIFZlY3RvcjxTdHJpbmc+IGRhdGFiYXNlRGlyZWN0b3J5TmFtZXMg
PSBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KGRpcmVjdG9yeSk7CisgICAgZm9yIChhdXRvJiBk
YXRhYmFzZURpcmVjdG9yeU5hbWUgOiBkYXRhYmFzZURpcmVjdG9yeU5hbWVzKSB7CisgICAgICAg
IGF1dG8gZnVsbERhdGFiYXNlUGF0aCA9IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZnVsbERhdGFi
YXNlUGF0aEZvckRpcmVjdG9yeShGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQo
ZGlyZWN0b3J5LCBkYXRhYmFzZURpcmVjdG9yeU5hbWUpKTsKKyAgICAgICAgaWYgKGV4Y2x1ZGVk
RGF0YWJhc2VQYXRocy5jb250YWlucyhmdWxsRGF0YWJhc2VQYXRoKSkKKyAgICAgICAgICAgIGNv
bnRpbnVlOworCisgICAgICAgIGlmIChhdXRvIG5hbWVBbmRWZXJzaW9uID0gU1FMaXRlSURCQmFj
a2luZ1N0b3JlOjpkYXRhYmFzZU5hbWVBbmRWZXJzaW9uRnJvbUZpbGUoZnVsbERhdGFiYXNlUGF0
aCkpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFdURk1vdmUoKm5hbWVBbmRWZXJzaW9uKSk7
CisgICAgfQorfQorCiB2b2lkIElEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNp
b25zKElEQkNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBDbGll
bnRPcmlnaW4mIG9yaWdpbikKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBB
U1NFUlQobV9sb2NrLmlzSGVsZCgpKTsKIAotICAgIFN0cmluZyBvbGREaXJlY3RvcnkgPSBJREJE
YXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2lu
LnRvcE9yaWdpbiwgb3JpZ2luLmNsaWVudE9yaWdpbiwgbV9kYXRhYmFzZURpcmVjdG9yeVBhdGgs
ICJ2MCIpOwotICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVOYW1lcyA9IEZpbGVTeXN0ZW06Omxpc3RE
aXJlY3Rvcnkob2xkRGlyZWN0b3J5KTsKLSAgICBWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvbj4gZGF0YWJhc2VzOwotICAgIGZvciAoYXV0byYgZmlsZU5hbWUgOiBmaWxlTmFtZXMpIHsK
LSAgICAgICAgYXV0byBkYXRhYmFzZVR1cGxlID0gU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRh
YmFzZU5hbWVBbmRWZXJzaW9uRnJvbUZpbGUoU1FMaXRlSURCQmFja2luZ1N0b3JlOjpmdWxsRGF0
YWJhc2VQYXRoRm9yRGlyZWN0b3J5KEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVu
dChvbGREaXJlY3RvcnksIGZpbGVOYW1lKSkpOwotICAgICAgICBpZiAoZGF0YWJhc2VUdXBsZSkK
LSAgICAgICAgICAgIGRhdGFiYXNlcy5hcHBlbmQoV1RGTW92ZSgqZGF0YWJhc2VUdXBsZSkpOwor
ICAgIFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiByZXN1bHQ7CisgICAgSGFzaFNl
dDxTdHJpbmc+IHZpc2l0ZWREYXRhYmFzZVBhdGhzOworCisgICAgZm9yIChhdXRvJiBkYXRhYmFz
ZSA6IG1fdW5pcXVlSURCRGF0YWJhc2VNYXAudmFsdWVzKCkpIHsKKyAgICAgICAgYXV0byBwYXRo
ID0gZGF0YWJhc2UtPmZpbGVQYXRoKCk7CisgICAgICAgIGlmICghcGF0aC5pc0VtcHR5KCkpCisg
ICAgICAgICAgICB2aXNpdGVkRGF0YWJhc2VQYXRocy5hZGQocGF0aCk7CisKKyAgICAgICAgaWYg
KGF1dG8gbmFtZUFuZFZlcnNpb24gPSBkYXRhYmFzZS0+bmFtZUFuZFZlcnNpb24oKSkKKyAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoV1RGTW92ZSgqbmFtZUFuZFZlcnNpb24pKTsKICAgICB9CiAK
KyAgICBTdHJpbmcgb2xkRGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFz
ZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbi50b3BPcmlnaW4sIG9yaWdpbi5jbGllbnRP
cmlnaW4sIG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjAiKTsKKyAgICBnZXREYXRhYmFzZU5h
bWVBbmRWZXJzaW9uRnJvbU9yaWdpbkRpcmVjdG9yeShvbGREaXJlY3RvcnksIHZpc2l0ZWREYXRh
YmFzZVBhdGhzLCByZXN1bHQpOworCiAgICAgU3RyaW5nIGRpcmVjdG9yeSA9IElEQkRhdGFiYXNl
SWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4udG9wT3Jp
Z2luLCBvcmlnaW4uY2xpZW50T3JpZ2luLCBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIik7
Ci0gICAgZmlsZU5hbWVzID0gRmlsZVN5c3RlbTo6bGlzdERpcmVjdG9yeShkaXJlY3RvcnkpOwot
ICAgIGZvciAoYXV0byYgZmlsZU5hbWUgOiBmaWxlTmFtZXMpIHsKLSAgICAgICAgYXV0byBkYXRh
YmFzZVR1cGxlID0gU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZU5hbWVBbmRWZXJzaW9u
RnJvbUZpbGUoU1FMaXRlSURCQmFja2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VQYXRoRm9yRGlyZWN0
b3J5KEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChkaXJlY3RvcnksIGZpbGVO
YW1lKSkpOwotICAgICAgICBpZiAoZGF0YWJhc2VUdXBsZSkKLSAgICAgICAgICAgIGRhdGFiYXNl
cy5hcHBlbmQoV1RGTW92ZSgqZGF0YWJhc2VUdXBsZSkpOwotICAgIH0KKyAgICBnZXREYXRhYmFz
ZU5hbWVBbmRWZXJzaW9uRnJvbU9yaWdpbkRpcmVjdG9yeShkaXJlY3RvcnksIHZpc2l0ZWREYXRh
YmFzZVBhdGhzLCByZXN1bHQpOwogCiAgICAgYXV0byBjb25uZWN0aW9uID0gbV9jb25uZWN0aW9u
TWFwLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CiAgICAgaWYgKCFjb25uZWN0aW9u
KQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25uZWN0aW9uLT5kaWRHZXRBbGxEYXRhYmFzZU5h
bWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUoZGF0YWJhc2VzKSk7Cisg
ICAgY29ubmVjdGlvbi0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJ
ZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOwogfQogCiBzdGF0aWMgdm9pZCBjb2xsZWN0T3Jp
Z2luc0ZvclZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9uUGF0aCwgSGFzaFNldDxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGE+JiBzZWN1cml0eU9yaWdpbnMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3Jl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFj
a2luZ1N0b3JlLmgKaW5kZXggNDM5YWI0ZmM5ZmM4NTllN2FmMzM1MTJiM2Q4MzNjMmU0OGFlOWZm
YS4uOTJhYTc2MGQyMDczMzcxOGZiZGI4YzA0NGNmZTY3ZGNhYjE2NTMzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1v
cnlJREJCYWNraW5nU3RvcmUuaApAQCAtODAsNiArODAsNyBAQCBwcml2YXRlOgogCiAgICAgYm9v
bCBzdXBwb3J0c1NpbXVsdGFuZW91c1RyYW5zYWN0aW9ucygpIGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KICAgICBib29sIGlzRXBoZW1lcmFsKCkgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIFN0
cmluZyBmdWxsRGF0YWJhc2VQYXRoKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbFN0cmluZygp
OyB9CiAKICAgICBib29sIGhhc1RyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgaWRlbnRpZmllcikgY29uc3QgZmluYWwgeyByZXR1cm4gbV90cmFuc2FjdGlvbnMuY29udGFp
bnMoaWRlbnRpZmllcik7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCmluZGV4IDc0
OTI0YjJmYWE4NDMxOTQyOTA4MGQ4ZTc3MGFiMjhhM2NlMGQxYTYuLjJlZmU2YjJhMzQxOTkzYmIy
NmZkZjkxY2ZmNmU3ZGVhOGRiYmVkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgK
QEAgLTg2LDYgKzg2LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBzdXBwb3J0c1NpbXVsdGFuZW91
c1RyYW5zYWN0aW9ucygpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0VwaGVt
ZXJhbCgpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgU3RyaW5nIGZ1bGxEYXRhYmFzZVBh
dGgoKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgaGFzVHJhbnNhY3Rpb24oY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJikgY29uc3QgZmluYWw7CiAKQEAgLTEwMyw3ICsxMDQsNiBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgU3RyaW5nIGZpbGVuYW1lRm9yRGF0YWJhc2VOYW1lKCkgY29u
c3Q7Ci0gICAgU3RyaW5nIGZ1bGxEYXRhYmFzZVBhdGgoKSBjb25zdDsKICAgICBTdHJpbmcgZnVs
bERhdGFiYXNlRGlyZWN0b3J5V2l0aFVwZ3JhZGUoKTsKIAogICAgIElEQkVycm9yIGVuc3VyZVZh
bGlkUmVjb3Jkc1RhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCBkNTRhNmU2
Y2MwMmY1MmI4NzgyNjgyZTk0MGNhY2RiMGUyNWI2NDQ2Li41NzgyNWJkM2U5ZGIzYjMwOTI5NGIw
YmNmN2M1YzQ5YzBjZGRjYzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTMxMiw3
ICszMTIsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWREZWxldGVCYWNraW5nU3RvcmUo
dWludDY0X3QgZGVsZXRlZFZlcnNpb24pCiAgICAgQVNTRVJUKG1fY3VycmVudE9wZW5EQlJlcXVl
c3QtPmlzRGVsZXRlUmVxdWVzdCgpKTsKIAogICAgIGlmIChtX2RhdGFiYXNlSW5mbykKLSAgICAg
ICAgbV9tb3N0UmVjZW50RGVsZXRlZERhdGFiYXNlSW5mbyA9IFdURk1vdmUobV9kYXRhYmFzZUlu
Zm8pOworICAgICAgICBtX21vc3RSZWNlbnREZWxldGVkRGF0YWJhc2VJbmZvID0gc3RkOjpleGNo
YW5nZShtX2RhdGFiYXNlSW5mbywgbnVsbHB0cik7CiAKICAgICAvLyBJZiB0aGlzIFVuaXF1ZUlE
QkRhdGFiYXNlIHdhcyBicm91Z2h0IGludG8gZXhpc3RlbmNlIGZvciB0aGUgcHVycG9zZSBvZiBk
ZWxldGluZyB0aGUgZmlsZSBvbiBkaXNrLAogICAgIC8vIHdlIHdvbid0IGhhdmUgYSBtX21vc3RS
ZWNlbnREZWxldGVkRGF0YWJhc2VJbmZvLiBJbiB0aGF0IGNhc2UsIHdlJ2xsIG1hbnVmYWN0dXJl
IG9uZSB1c2luZyB0aGUKQEAgLTEyNDAsNSArMTI0MCwzMCBAQCBSZWZQdHI8U2VydmVyT3BlbkRC
UmVxdWVzdD4gVW5pcXVlSURCRGF0YWJhc2U6OnRha2VOZXh0UnVubmFibGVSZXF1ZXN0KFJlcXVl
c3RUeQogICAgIHJldHVybiBudWxscHRyOwogfQogCitTdHJpbmcgVW5pcXVlSURCRGF0YWJhc2U6
OmZpbGVQYXRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9iYWNraW5nU3RvcmUgPyBtX2JhY2tp
bmdTdG9yZS0+ZnVsbERhdGFiYXNlUGF0aCgpIDogbnVsbFN0cmluZygpOworfQorCitzdGQ6Om9w
dGlvbmFsPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+IFVuaXF1ZUlEQkRhdGFiYXNlOjpuYW1l
QW5kVmVyc2lvbigpIGNvbnN0Cit7CisgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGlmIChtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlv
bikgeworICAgICAgICBpZiAoYXV0byBkYXRhYmFzZUluZm8gPSBtX3ZlcnNpb25DaGFuZ2VUcmFu
c2FjdGlvbi0+b3JpZ2luYWxEYXRhYmFzZUluZm8oKSkgeworICAgICAgICAgICAgLy8gVGhlIGRh
dGFiYXNlIGlzIG5ld2x5IGNyZWF0ZWQuCisgICAgICAgICAgICBpZiAoIWRhdGFiYXNlSW5mby0+
dmVyc2lvbigpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgICAgIHJldHVybiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uIHsgZGF0YWJhc2VJbmZvLT5u
YW1lKCksIGRhdGFiYXNlSW5mby0+dmVyc2lvbigpIH07CisgICAgICAgIH0KKworICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAgIHJldHVybiBJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uIHsgbV9kYXRhYmFzZUluZm8tPm5hbWUoKSwgbV9kYXRhYmFzZUluZm8tPnZlcnNp
b24oKSB9OworfQorCiB9IC8vIG5hbWVzcGFjZSBJREJTZXJ2ZXIKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9VbmlxdWVJREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKaW5kZXggZGZhZGRiOTdjYzIyNThlN2U0MGVlYzhm
YTIxMDg0NjhiMGNkY2EzNC4uYjJhNzQxN2Y5YzgxOWNmYzI0MTQ2Y2U1ZmI1Y2Y1ZDI2MTI4NTA4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1Vu
aXF1ZUlEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJJ
REJCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUlkZW50aWZpZXIuaCIKICNp
bmNsdWRlICJJREJEYXRhYmFzZUluZm8uaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uLmgiCiAjaW5jbHVkZSAiSURCR2V0UmVzdWx0LmgiCiAjaW5jbHVkZSAiU2VydmVyT3Bl
bkRCUmVxdWVzdC5oIgogI2luY2x1ZGUgIlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uaCIK
QEAgLTExMSw2ICsxMTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBhYm9ydEFjdGl2ZVRyYW5zYWN0
aW9ucygpOwogICAgIGJvb2wgdHJ5Q2xvc2UoKTsKIAorICAgIFN0cmluZyBmaWxlUGF0aCgpIGNv
bnN0OworICAgIHN0ZDo6b3B0aW9uYWw8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4gbmFtZUFu
ZFZlcnNpb24oKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZURhdGFiYXNlT3Bl
cmF0aW9ucygpOwogICAgIHZvaWQgaGFuZGxlQ3VycmVudE9wZXJhdGlvbigpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNj
NjIyMjRmYzc2NDI0MDg5MzZhN2ViYjViNTBlYzIxZjllNGI5M2QuLjRkYTI3YjhlM2QzYjIwNDdk
NmFiMDhhY2M2NDc3YzA0ZTJmZWMxNmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wNy0y
OCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJREJGYWN0b3J5
LmRhdGFiYXNlcyBzaG91bGQgbm90IHJldHVybiBkYXRhYmFzZXMgd2l0aCBpbnZhbGlkIHZlcnNp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODU1
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvZ2V0ZGF0YWJhc2VzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvZ2V0ZGF0YWJhc2VzLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9nZXRkYXRhYmFzZXMtcHJpdmF0ZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9nZXRkYXRhYmFzZXMuaHRt
bDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2dldGRhdGFi
YXNlcy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKwogMjAyMS0wNy0yOCAgQWRpdHlhIEtl
ZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gPHNlbGVjdD4gcGlj
a2VyIHZhbHVlIGNvbW1pdHRlZCB0byBpbmNvcnJlY3QgZWxlbWVudCBhZnRlciBwcm9ncmFtbWF0
aWMgZm9jdXMgY2hhbmdlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA0NDBkZmI1
YjBhOTEyYzhjYzQ2ODkxYTUwOTdlOWJiZGQ1N2NmZDMwLi44ZWY5ZTE1ZDdjZDgxMmUxYmJlOTRl
ODA2ZDQ1ZjIxMmFmNTI5ZDFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMS0wNy0yOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4K
KworICAgICAgICBJREJGYWN0b3J5LmRhdGFiYXNlcyBzaG91bGQgbm90IHJldHVybiBkYXRhYmFz
ZXMgd2l0aCBpbnZhbGlkIHZlcnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyODU1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJh
c2VzLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9nZXQtZGF0YWJhc2VzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorCiAyMDIxLTA3LTI2
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTG9jYXRpb24uaHJl
ZiBzZXR0ZXIgdXNlcyB3cm9uZyB3aW5kb3cgdG8gcmVzb2x2ZSByZWxhdGl2ZSBVUkxzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBl
Y3RlZC50eHQKaW5kZXggNzIyODgzYzI1ZmZkYTc3M2U1YjgzMjYyZDUwY2I5MDQ2NDgzMjQ4Mi4u
MGQ1OGJkNjE2ZjA0YjY3MTUzYjc4Zjc4NmZjNGFkNzM1ZmMyY2YxNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvZ2V0LWRh
dGFiYXNlcy5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMuYW55LWV4cGVjdGVkLnR4
dApAQCAtMyw1ICszLDUgQEAgUEFTUyBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSByZXR1cm5zIGEg
cHJvbWlzZS4KIFBBU1MgRW51bWVyYXRlIG9uZSBkYXRhYmFzZS4KIFBBU1MgRW51bWVyYXRlIG11
bHRpcGxlIGRhdGFiYXNlcy4KIFBBU1MgTWFrZSBzdXJlIGFuIGVtcHR5IGxpc3QgaXMgcmV0dXJu
ZWQgZm9yIHRoZSBjYXNlIG9mIG5vIGRhdGFiYXNlcy4KLUZBSUwgRW5zdXJlIHRoYXQgZGF0YWJh
c2VzKCkgZG9lc24ndCBwaWNrIHVwIGNoYW5nZXMgdGhhdCBoYXZlbid0IGNvbW1pdGVkLiBhc3Nl
cnRfZXF1YWxzOiBUaGUgcmVzdWx0IG9mIGRhdGFiYXNlcygpIHNob3VsZCBiZSBvbmx5IHRob3Nl
IGRhdGFiYXNlcyB3aGljaCBoYXZlIGJlZW4gY3JlYXRlZCBhdCB0aGUgdGltZSBvZiBjYWxsaW5n
LCByZWdhcmRsZXNzIG9mIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb25zIGN1cnJlbnRseSBydW5u
aW5nLiBleHBlY3RlZCAxIGJ1dCBnb3QgMgorUEFTUyBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBk
b2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhhdmVuJ3QgY29tbWl0ZWQuCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2dldC1kYXRhYmFzZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS53
b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDcyMjg4M2MyNWZmZGE3NzNlNWI4MzI2MmQ1MGNiOTA0
NjQ4MzI0ODIuLjBkNThiZDYxNmYwNGI2NzE1M2I3OGY3ODZmYzRhZDczNWZjMmNmMTcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2dldC1kYXRhYmFzZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvZ2V0LWRhdGFiYXNl
cy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMyw1ICszLDUgQEAgUEFTUyBFbnN1cmUgdGhh
dCBkYXRhYmFzZXMoKSByZXR1cm5zIGEgcHJvbWlzZS4KIFBBU1MgRW51bWVyYXRlIG9uZSBkYXRh
YmFzZS4KIFBBU1MgRW51bWVyYXRlIG11bHRpcGxlIGRhdGFiYXNlcy4KIFBBU1MgTWFrZSBzdXJl
IGFuIGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQgZm9yIHRoZSBjYXNlIG9mIG5vIGRhdGFiYXNlcy4K
LUZBSUwgRW5zdXJlIHRoYXQgZGF0YWJhc2VzKCkgZG9lc24ndCBwaWNrIHVwIGNoYW5nZXMgdGhh
dCBoYXZlbid0IGNvbW1pdGVkLiBhc3NlcnRfZXF1YWxzOiBUaGUgcmVzdWx0IG9mIGRhdGFiYXNl
cygpIHNob3VsZCBiZSBvbmx5IHRob3NlIGRhdGFiYXNlcyB3aGljaCBoYXZlIGJlZW4gY3JlYXRl
ZCBhdCB0aGUgdGltZSBvZiBjYWxsaW5nLCByZWdhcmRsZXNzIG9mIHZlcnNpb25jaGFuZ2UgdHJh
bnNhY3Rpb25zIGN1cnJlbnRseSBydW5uaW5nLiBleHBlY3RlZCAxIGJ1dCBnb3QgMgorUEFTUyBF
bnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBkb2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhhdmVu
J3QgY29tbWl0ZWQuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2dldGRhdGFiYXNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9nZXRkYXRhYmFzZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNlNDgwOTVkMjUxZjcyMDBj
ZGFkOGY1Y2Y4NDU0NzA2NmEwZjMxZTcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9nZXRkYXRhYmFzZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTcg
QEAKK0Vuc3VyZSBhbGwgZGF0YWJhc2VzIGNhbiBiZSByZXRyaWV2ZWQKKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQi5vcGVuKCdnZXRkYXRhYmFzZS1maXJzdCcpCitQ
QVNTIGRhdGFiYXNlcy5sZW5ndGggaXMgMAoraW5kZXhlZERCLm9wZW4oJ2dldGRhdGFiYXNlLXNl
Y29uZCcsIDIpCitQQVNTIGRhdGFiYXNlcy5sZW5ndGggaXMgMQorUEFTUyBkYXRhYmFzZXNbMF0u
dmVyc2lvbiBpcyAxCitQQVNTIGRhdGFiYXNlc1swXS5uYW1lIGlzICJnZXRkYXRhYmFzZS1maXJz
dCIKK1BBU1MgZGF0YWJhc2VzLmxlbmd0aCBpcyAyCitQQVNTIGRhdGFiYXNlc1sxXS52ZXJzaW9u
IGlzIDIKK1BBU1MgZGF0YWJhc2VzWzFdLm5hbWUgaXMgImdldGRhdGFiYXNlLXNlY29uZCIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZ2V0ZGF0YWJhc2VzLXByaXZhdGUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZ2V0ZGF0YWJhc2VzLXBy
aXZhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2N2M4N2QzOWI0OTJiZWI3NDU4MDkxNGIy
NGQzNmI4YjBiN2Y1OWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi9nZXRkYXRhYmFzZXMtcHJpdmF0ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxOCBA
QAorRW5zdXJlIGFsbCBkYXRhYmFzZXMgY2FuIGJlIHJldHJpZXZlZAorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworaW5kZXhlZERCLm9wZW4oJ2dldGRhdGFiYXNlLWZpcnN0JykKK1BB
U1MgZGF0YWJhc2VzLmxlbmd0aCBpcyAwCitpbmRleGVkREIub3BlbignZ2V0ZGF0YWJhc2Utc2Vj
b25kJywgMikKK1BBU1MgZGF0YWJhc2VzLmxlbmd0aCBpcyAxCitQQVNTIGRhdGFiYXNlc1swXS52
ZXJzaW9uIGlzIDEKK1BBU1MgZGF0YWJhc2VzWzBdLm5hbWUgaXMgImdldGRhdGFiYXNlLWZpcnN0
IgorUEFTUyBkYXRhYmFzZXMubGVuZ3RoIGlzIDIKK1BBU1MgZGF0YWJhc2VzWzFdLnZlcnNpb24g
aXMgMgorUEFTUyBkYXRhYmFzZXNbMV0ubmFtZSBpcyAiZ2V0ZGF0YWJhc2Utc2Vjb25kIgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2dldGRhdGFiYXNlcy1wcml2YXRlLmh0
bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9nZXRkYXRhYmFzZXMtcHJpdmF0ZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmM5YWI3NDQwYmZlNDM3ZGY4OTg4MGRjNGVjNzM3MDc0YjJhY2I1NmUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9nZXRkYXRh
YmFzZXMtcHJpdmF0ZS5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgdXNlRXBoZW1lcmFsU2Vzc2lvbj10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNj
cmlwdCBzcmM9InJlc291cmNlcy9nZXRkYXRhYmFzZXMuanMiPjwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2dldGRhdGFiYXNlcy5odG1sIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9pbmRleGVkZGIvZ2V0ZGF0YWJhc2VzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDRlZmUzM2VlY2Nh
YmVhYmJhNzFiZWE4OTVhZDM3YzEyNGU5YTllMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2dldGRhdGFiYXNlcy5odG1sCkBAIC0wLDAgKzEsOSBAQAor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NoYXJlZC5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZ2V0ZGF0YWJhc2VzLmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZ2V0ZGF0
YWJhc2VzLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2dldGRh
dGFiYXNlcy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYzhlZDhmNGQxZjc2NGIzNWQxMzVjODgxYWVlMDJiN2Q3
YTFhY2Q5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIv
cmVzb3VyY2VzL2dldGRhdGFiYXNlcy5qcwpAQCAtMCwwICsxLDQ1IEBACitpZiAodGhpcy5pbXBv
cnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QuanMnKTsKKyAgICBpbXBvcnRTY3JpcHRzKCdzaGFyZWQuanMnKTsKK30KKworZGVzY3JpcHRp
b24oIkVuc3VyZSBhbGwgZGF0YWJhc2VzIGNhbiBiZSByZXRyaWV2ZWQiKTsKKwordmFyIGRhdGFi
YXNlczsKKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2Uo
J2dldGRhdGFiYXNlLWZpcnN0Jyk7CisgICAgaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCdnZXRk
YXRhYmFzZS1zZWNvbmQnKTsKKworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIu
b3BlbignZ2V0ZGF0YWJhc2UtZmlyc3QnKSIpOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVk
ID0gKCkgPT4geworICAgICAgICBpbmRleGVkREIuZGF0YWJhc2VzKCkudGhlbigocmVzdWx0KT0+
IHsKKyAgICAgICAgICAgIGRhdGFiYXNlcyA9IHJlc3VsdDsKKyAgICAgICAgICAgIHNob3VsZEJl
RXF1YWxUb051bWJlcigiZGF0YWJhc2VzLmxlbmd0aCIsIDApOworICAgICAgICAgICAgY29udGlu
dWVUZXN0KCk7CisgICAgICAgIH0pOworICAgIH0KK30KKworZnVuY3Rpb24gY29udGludWVUZXN0
KCkgeworICAgIHJlcXVlc3QgPSBldmFsQW5kTG9nKCJpbmRleGVkREIub3BlbignZ2V0ZGF0YWJh
c2Utc2Vjb25kJywgMikiKTsKKyAgICByZXF1ZXN0Lm9udXBncmFkZW5lZWRlZCA9ICgpID0+IHsK
KyAgICAgICAgaW5kZXhlZERCLmRhdGFiYXNlcygpLnRoZW4oKHJlc3VsdCkgPT4geworICAgICAg
ICAgICAgZGF0YWJhc2VzID0gcmVzdWx0OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvTnVt
YmVyKCJkYXRhYmFzZXMubGVuZ3RoIiwgMSk7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9O
dW1iZXIoImRhdGFiYXNlc1swXS52ZXJzaW9uIiwgMSkKKyAgICAgICAgICAgIHNob3VsZEJlRXF1
YWxUb1N0cmluZygiZGF0YWJhc2VzWzBdLm5hbWUiLCAiZ2V0ZGF0YWJhc2UtZmlyc3QiKTsKKyAg
ICAgICAgfSk7CisgICAgfQorICAgIHJlcXVlc3Qub25zdWNjZXNzID0gKCkgPT4geworICAgICAg
ICBpbmRleGVkREIuZGF0YWJhc2VzKCkudGhlbigocmVzdWx0KSA9PiB7CisgICAgICAgICAgICBk
YXRhYmFzZXMgPSByZXN1bHQ7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9OdW1iZXIoImRh
dGFiYXNlcy5sZW5ndGgiLCAyKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb051bWJlcigi
ZGF0YWJhc2VzWzFdLnZlcnNpb24iLCAyKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygiZGF0YWJhc2VzWzFdLm5hbWUiLCAiZ2V0ZGF0YWJhc2Utc2Vjb25kIik7CisgICAgICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCit0ZXN0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>434464</attachid>
            <date>2021-07-28 14:12:44 -0700</date>
            <delta_ts>2021-07-28 16:35:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-228554-20210728141243.patch</filename>
            <type>text/plain</type>
            <size>19266</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgwMzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAwZTcxZmNkYThhZWNj
ZjdlY2RmMmQyNDZjMTM4MmJmY2IzYTI1OC4uMWQxNDJkOTE5NGY0MTM0NmJhZGY0ODMyYzdjZDk3
N2YzODk2M2E0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDIxLTA3LTI4ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIElEQkZhY3RvcnkuZGF0YWJh
c2VzIHNob3VsZCBub3QgcmV0dXJuIGRhdGFiYXNlcyB3aXRoIGludmFsaWQgdmVyc2lvbgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI4NTU0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVG8gZ2V0IGRhdGFi
YXNlIGluZm9ybWF0aW9uLCB3ZSB1c2VkIHRvIG9wZW4gYWxsIGRhdGFiYXNlIGZpbGVzIGFuZCBy
ZWFkIGZyb20gdGhlbS4gVG8gYXZvaWQgb3BlbmluZyBuZXcgCisgICAgICAgIGNvbm5lY3Rpb24g
dG8gZGF0YWJhc2VzIHRoYXQgYXJlIGFscmVhZHkgb3BlbmVkLCBhbmQgdG8gZW5zdXJlIHdlIGdl
dCB0aGUgbGF0ZXN0IGluZm9ybWF0aW9uLCBmb3IgZGF0YWJhc2UgdGhhdCAKKyAgICAgICAgaXMg
YWxyZWFkeSBvcGVuZWQsIHdlIHNob3VsZCBnZXQgaXRzIGluZm9ybWF0aW9uIGZyb20gVW5pcXVl
SURCRGF0YWJhc2UgZGlyZWN0bHkuIElmIGRhdGFiYXNlIGlzIG5vdCBvcGVuZWQsIHdlIAorICAg
ICAgICBvcGVuIGl0cyBmaWxlIGFuZCByZWFkLiBCeSBkb2luZyB0aGlzLCB3ZSBhbHNvIGZpeCB0
aGUgaXNzdWUgdGhhdCBubyBkYXRhYmFzZXMgYXJlIHJldHVybmVkIGluIHByaXZhdGUgYnJvd3Np
bmcKKyAgICAgICAgKHNpbmNlIHRoZXJlIGlzIG5vIGZpbGUgY3JlYXRlZCkuCisKKyAgICAgICAg
QWxzbywgdmVyc2lvbiAwIG1lYW5zIHRoZSBkYXRhYmFzZSBpcyBqdXN0IGNyZWF0ZWQgYW5kIGhh
cyBub3QgZmluaXNoZWQgdmVyc2lvbiBjaGFuZ2UgdHJhbnNhY3Rpb24gKHZlcnNpb24gMSAKKyAg
ICAgICAgaXMgdGhlIGZpcnN0IHZhbGlkIHZlcnNpb24gYWNjb3JkaW5nIHRvIHNwZWMpLCBzbyB3
ZSBzaG91bGQgbm90IHJldHVybiBkYXRhYmFzZXMgd2l0aCB2ZXJzaW9uIDAuCisKKyAgICAgICAg
VGVzdHM6IHN0b3JhZ2UvaW5kZXhlZGRiL2dldGRhdGFiYXNlcy1wcml2YXRlLmh0bWwKKyAgICAg
ICAgICAgICAgIHN0b3JhZ2UvaW5kZXhlZGRiL2dldGRhdGFiYXNlcy5odG1sCisKKyAgICAgICAg
KiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OmdldERhdGFiYXNlTmFtZUFuZFZlcnNpb25Gcm9tT3JpZ2luRGlyZWN0b3J5
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpnZXRBbGxEYXRhYmFz
ZU5hbWVzQW5kVmVyc2lvbnMpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9N
ZW1vcnlJREJCYWNraW5nU3RvcmUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmg6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6VW5pcXVlSURCRGF0YWJhc2U6OmRpZERlbGV0ZUJhY2tpbmdTdG9yZSk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpmaWxlUGF0aCBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpuYW1lQW5kVmVy
c2lvbiBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlE
QkRhdGFiYXNlLmg6CisKIDIwMjEtMDctMjggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgQXBwSGlnaGxpZ2h0U3RvcmFnZSBzaG91bGQgbm90IGluaGVyaXQgcHJp
dmF0ZWx5IGZyb20gUmVmQ291bnRlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQkJhY2tpbmdTdG9yZS5oCmluZGV4IDA2YzY0NmQzM2Y3
ZmVmOGQ5MTE0YmJhNjRlNzdjY2EwMTM2NjQ1NGYuLmRhOThmNGM3YjU1OGI2NzJlMDQwOGNhZTVj
ZTExMDk0MDMzMjBmNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvSURCQmFja2luZ1N0b3JlLmgKQEAgLTkxLDYgKzkxLDcgQEAgcHVi
bGljOgogCiAgICAgdmlydHVhbCBib29sIHN1cHBvcnRzU2ltdWx0YW5lb3VzVHJhbnNhY3Rpb25z
KCkgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBpc0VwaGVtZXJhbCgpID0gMDsKKyAgICB2aXJ0dWFs
IFN0cmluZyBmdWxsRGF0YWJhc2VQYXRoKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCB2b2lk
IGNsb3NlKCkgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IGI0ZDU1OTQ1NDI0ODA5YWYyNjhiMGM3NDM4
NzQxYTU2MjkxOGRjMjQuLjc0NTZhOTNjNWEzMzA3OTMwNmM2Y2I0MjkxZmI0NmY5OTEyNGE0Mzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJT
ZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJTZXJ2ZXIuY3BwCkBAIC01MDgsMzMgKzUwOCw0NyBAQCB2b2lkIElEQlNlcnZlcjo6b3BlbkRC
UmVxdWVzdENhbmNlbGxlZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEpCiAgICAg
ICAgIG1fdW5pcXVlSURCRGF0YWJhc2VNYXAucmVtb3ZlKHVuaXF1ZUlEQkRhdGFiYXNlLT5pZGVu
dGlmaWVyKCkpOwogfQogCitzdGF0aWMgdm9pZCBnZXREYXRhYmFzZU5hbWVBbmRWZXJzaW9uRnJv
bU9yaWdpbkRpcmVjdG9yeShjb25zdCBTdHJpbmcmIGRpcmVjdG9yeSwgSGFzaFNldDxTdHJpbmc+
JiBleGNsdWRlZERhdGFiYXNlUGF0aHMsIFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9u
PiYgcmVzdWx0KQoreworICAgIFZlY3RvcjxTdHJpbmc+IGRhdGFiYXNlRGlyZWN0b3J5TmFtZXMg
PSBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KGRpcmVjdG9yeSk7CisgICAgZm9yIChhdXRvJiBk
YXRhYmFzZURpcmVjdG9yeU5hbWUgOiBkYXRhYmFzZURpcmVjdG9yeU5hbWVzKSB7CisgICAgICAg
IGF1dG8gZnVsbERhdGFiYXNlUGF0aCA9IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZnVsbERhdGFi
YXNlUGF0aEZvckRpcmVjdG9yeShGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQo
ZGlyZWN0b3J5LCBkYXRhYmFzZURpcmVjdG9yeU5hbWUpKTsKKyAgICAgICAgaWYgKGV4Y2x1ZGVk
RGF0YWJhc2VQYXRocy5jb250YWlucyhmdWxsRGF0YWJhc2VQYXRoKSkKKyAgICAgICAgICAgIGNv
bnRpbnVlOworCisgICAgICAgIGlmIChhdXRvIG5hbWVBbmRWZXJzaW9uID0gU1FMaXRlSURCQmFj
a2luZ1N0b3JlOjpkYXRhYmFzZU5hbWVBbmRWZXJzaW9uRnJvbUZpbGUoZnVsbERhdGFiYXNlUGF0
aCkpCisgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFdURk1vdmUoKm5hbWVBbmRWZXJzaW9uKSk7
CisgICAgfQorfQorCiB2b2lkIElEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNp
b25zKElEQkNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBj
b25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBDbGll
bnRPcmlnaW4mIG9yaWdpbikKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBB
U1NFUlQobV9sb2NrLmlzSGVsZCgpKTsKIAotICAgIFN0cmluZyBvbGREaXJlY3RvcnkgPSBJREJE
YXRhYmFzZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2lu
LnRvcE9yaWdpbiwgb3JpZ2luLmNsaWVudE9yaWdpbiwgbV9kYXRhYmFzZURpcmVjdG9yeVBhdGgs
ICJ2MCIpOwotICAgIFZlY3RvcjxTdHJpbmc+IGZpbGVOYW1lcyA9IEZpbGVTeXN0ZW06Omxpc3RE
aXJlY3Rvcnkob2xkRGlyZWN0b3J5KTsKLSAgICBWZWN0b3I8SURCRGF0YWJhc2VOYW1lQW5kVmVy
c2lvbj4gZGF0YWJhc2VzOwotICAgIGZvciAoYXV0byYgZmlsZU5hbWUgOiBmaWxlTmFtZXMpIHsK
LSAgICAgICAgYXV0byBkYXRhYmFzZVR1cGxlID0gU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRh
YmFzZU5hbWVBbmRWZXJzaW9uRnJvbUZpbGUoU1FMaXRlSURCQmFja2luZ1N0b3JlOjpmdWxsRGF0
YWJhc2VQYXRoRm9yRGlyZWN0b3J5KEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVu
dChvbGREaXJlY3RvcnksIGZpbGVOYW1lKSkpOwotICAgICAgICBpZiAoZGF0YWJhc2VUdXBsZSkK
LSAgICAgICAgICAgIGRhdGFiYXNlcy5hcHBlbmQoV1RGTW92ZSgqZGF0YWJhc2VUdXBsZSkpOwor
ICAgIFZlY3RvcjxJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uPiByZXN1bHQ7CisgICAgSGFzaFNl
dDxTdHJpbmc+IHZpc2l0ZWREYXRhYmFzZVBhdGhzOworCisgICAgZm9yIChhdXRvJiBkYXRhYmFz
ZSA6IG1fdW5pcXVlSURCRGF0YWJhc2VNYXAudmFsdWVzKCkpIHsKKyAgICAgICAgYXV0byBwYXRo
ID0gZGF0YWJhc2UtPmZpbGVQYXRoKCk7CisgICAgICAgIGlmICghcGF0aC5pc0VtcHR5KCkpCisg
ICAgICAgICAgICB2aXNpdGVkRGF0YWJhc2VQYXRocy5hZGQocGF0aCk7CisKKyAgICAgICAgaWYg
KGF1dG8gbmFtZUFuZFZlcnNpb24gPSBkYXRhYmFzZS0+bmFtZUFuZFZlcnNpb24oKSkKKyAgICAg
ICAgICAgIHJlc3VsdC5hcHBlbmQoV1RGTW92ZSgqbmFtZUFuZFZlcnNpb24pKTsKICAgICB9CiAK
KyAgICBTdHJpbmcgb2xkRGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpkYXRhYmFz
ZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbi50b3BPcmlnaW4sIG9yaWdpbi5jbGllbnRP
cmlnaW4sIG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjAiKTsKKyAgICBnZXREYXRhYmFzZU5h
bWVBbmRWZXJzaW9uRnJvbU9yaWdpbkRpcmVjdG9yeShvbGREaXJlY3RvcnksIHZpc2l0ZWREYXRh
YmFzZVBhdGhzLCByZXN1bHQpOworCiAgICAgU3RyaW5nIGRpcmVjdG9yeSA9IElEQkRhdGFiYXNl
SWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4udG9wT3Jp
Z2luLCBvcmlnaW4uY2xpZW50T3JpZ2luLCBtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIik7
Ci0gICAgZmlsZU5hbWVzID0gRmlsZVN5c3RlbTo6bGlzdERpcmVjdG9yeShkaXJlY3RvcnkpOwot
ICAgIGZvciAoYXV0byYgZmlsZU5hbWUgOiBmaWxlTmFtZXMpIHsKLSAgICAgICAgYXV0byBkYXRh
YmFzZVR1cGxlID0gU1FMaXRlSURCQmFja2luZ1N0b3JlOjpkYXRhYmFzZU5hbWVBbmRWZXJzaW9u
RnJvbUZpbGUoU1FMaXRlSURCQmFja2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VQYXRoRm9yRGlyZWN0
b3J5KEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChkaXJlY3RvcnksIGZpbGVO
YW1lKSkpOwotICAgICAgICBpZiAoZGF0YWJhc2VUdXBsZSkKLSAgICAgICAgICAgIGRhdGFiYXNl
cy5hcHBlbmQoV1RGTW92ZSgqZGF0YWJhc2VUdXBsZSkpOwotICAgIH0KKyAgICBnZXREYXRhYmFz
ZU5hbWVBbmRWZXJzaW9uRnJvbU9yaWdpbkRpcmVjdG9yeShkaXJlY3RvcnksIHZpc2l0ZWREYXRh
YmFzZVBhdGhzLCByZXN1bHQpOwogCiAgICAgYXV0byBjb25uZWN0aW9uID0gbV9jb25uZWN0aW9u
TWFwLmdldChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllcik7CiAgICAgaWYgKCFjb25uZWN0aW9u
KQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25uZWN0aW9uLT5kaWRHZXRBbGxEYXRhYmFzZU5h
bWVzQW5kVmVyc2lvbnMocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUoZGF0YWJhc2VzKSk7Cisg
ICAgY29ubmVjdGlvbi0+ZGlkR2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKHJlcXVlc3RJ
ZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOwogfQogCiBzdGF0aWMgdm9pZCBjb2xsZWN0T3Jp
Z2luc0ZvclZlcnNpb24oY29uc3QgU3RyaW5nJiB2ZXJzaW9uUGF0aCwgSGFzaFNldDxXZWJDb3Jl
OjpTZWN1cml0eU9yaWdpbkRhdGE+JiBzZWN1cml0eU9yaWdpbnMpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3Jl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFj
a2luZ1N0b3JlLmgKaW5kZXggNDM5YWI0ZmM5ZmM4NTllN2FmMzM1MTJiM2Q4MzNjMmU0OGFlOWZm
YS4uOTJhYTc2MGQyMDczMzcxOGZiZGI4YzA0NGNmZTY3ZGNhYjE2NTMzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1v
cnlJREJCYWNraW5nU3RvcmUuaApAQCAtODAsNiArODAsNyBAQCBwcml2YXRlOgogCiAgICAgYm9v
bCBzdXBwb3J0c1NpbXVsdGFuZW91c1RyYW5zYWN0aW9ucygpIGZpbmFsIHsgcmV0dXJuIHRydWU7
IH0KICAgICBib29sIGlzRXBoZW1lcmFsKCkgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIFN0
cmluZyBmdWxsRGF0YWJhc2VQYXRoKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbnVsbFN0cmluZygp
OyB9CiAKICAgICBib29sIGhhc1RyYW5zYWN0aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmll
ciYgaWRlbnRpZmllcikgY29uc3QgZmluYWwgeyByZXR1cm4gbV90cmFuc2FjdGlvbnMuY29udGFp
bnMoaWRlbnRpZmllcik7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oCmluZGV4IDc0
OTI0YjJmYWE4NDMxOTQyOTA4MGQ4ZTc3MGFiMjhhM2NlMGQxYTYuLjJlZmU2YjJhMzQxOTkzYmIy
NmZkZjkxY2ZmNmU3ZGVhOGRiYmVkMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmgK
QEAgLTg2LDYgKzg2LDcgQEAgcHVibGljOgogCiAgICAgYm9vbCBzdXBwb3J0c1NpbXVsdGFuZW91
c1RyYW5zYWN0aW9ucygpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgYm9vbCBpc0VwaGVt
ZXJhbCgpIGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgU3RyaW5nIGZ1bGxEYXRhYmFzZVBh
dGgoKSBjb25zdCBmaW5hbDsKIAogICAgIGJvb2wgaGFzVHJhbnNhY3Rpb24oY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJikgY29uc3QgZmluYWw7CiAKQEAgLTEwMyw3ICsxMDQsNiBAQCBwdWJs
aWM6CiAKIHByaXZhdGU6CiAgICAgU3RyaW5nIGZpbGVuYW1lRm9yRGF0YWJhc2VOYW1lKCkgY29u
c3Q7Ci0gICAgU3RyaW5nIGZ1bGxEYXRhYmFzZVBhdGgoKSBjb25zdDsKICAgICBTdHJpbmcgZnVs
bERhdGFiYXNlRGlyZWN0b3J5V2l0aFVwZ3JhZGUoKTsKIAogICAgIElEQkVycm9yIGVuc3VyZVZh
bGlkUmVjb3Jkc1RhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCBkNTRhNmU2
Y2MwMmY1MmI4NzgyNjgyZTk0MGNhY2RiMGUyNWI2NDQ2Li41NzgyNWJkM2U5ZGIzYjMwOTI5NGIw
YmNmN2M1YzQ5YzBjZGRjYzI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTMxMiw3
ICszMTIsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkaWREZWxldGVCYWNraW5nU3RvcmUo
dWludDY0X3QgZGVsZXRlZFZlcnNpb24pCiAgICAgQVNTRVJUKG1fY3VycmVudE9wZW5EQlJlcXVl
c3QtPmlzRGVsZXRlUmVxdWVzdCgpKTsKIAogICAgIGlmIChtX2RhdGFiYXNlSW5mbykKLSAgICAg
ICAgbV9tb3N0UmVjZW50RGVsZXRlZERhdGFiYXNlSW5mbyA9IFdURk1vdmUobV9kYXRhYmFzZUlu
Zm8pOworICAgICAgICBtX21vc3RSZWNlbnREZWxldGVkRGF0YWJhc2VJbmZvID0gc3RkOjpleGNo
YW5nZShtX2RhdGFiYXNlSW5mbywgbnVsbHB0cik7CiAKICAgICAvLyBJZiB0aGlzIFVuaXF1ZUlE
QkRhdGFiYXNlIHdhcyBicm91Z2h0IGludG8gZXhpc3RlbmNlIGZvciB0aGUgcHVycG9zZSBvZiBk
ZWxldGluZyB0aGUgZmlsZSBvbiBkaXNrLAogICAgIC8vIHdlIHdvbid0IGhhdmUgYSBtX21vc3RS
ZWNlbnREZWxldGVkRGF0YWJhc2VJbmZvLiBJbiB0aGF0IGNhc2UsIHdlJ2xsIG1hbnVmYWN0dXJl
IG9uZSB1c2luZyB0aGUKQEAgLTEyNDAsNSArMTI0MCwzMCBAQCBSZWZQdHI8U2VydmVyT3BlbkRC
UmVxdWVzdD4gVW5pcXVlSURCRGF0YWJhc2U6OnRha2VOZXh0UnVubmFibGVSZXF1ZXN0KFJlcXVl
c3RUeQogICAgIHJldHVybiBudWxscHRyOwogfQogCitTdHJpbmcgVW5pcXVlSURCRGF0YWJhc2U6
OmZpbGVQYXRoKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV9iYWNraW5nU3RvcmUgPyBtX2JhY2tp
bmdTdG9yZS0+ZnVsbERhdGFiYXNlUGF0aCgpIDogbnVsbFN0cmluZygpOworfQorCitzdGQ6Om9w
dGlvbmFsPElEQkRhdGFiYXNlTmFtZUFuZFZlcnNpb24+IFVuaXF1ZUlEQkRhdGFiYXNlOjpuYW1l
QW5kVmVyc2lvbigpIGNvbnN0Cit7CisgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGlmIChtX3ZlcnNpb25DaGFuZ2VUcmFuc2FjdGlv
bikgeworICAgICAgICBpZiAoYXV0byBkYXRhYmFzZUluZm8gPSBtX3ZlcnNpb25DaGFuZ2VUcmFu
c2FjdGlvbi0+b3JpZ2luYWxEYXRhYmFzZUluZm8oKSkgeworICAgICAgICAgICAgLy8gVGhlIGRh
dGFiYXNlIGlzIG5ld2x5IGNyZWF0ZWQuCisgICAgICAgICAgICBpZiAoIWRhdGFiYXNlSW5mby0+
dmVyc2lvbigpKQorICAgICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAg
ICAgICAgIHJldHVybiBJREJEYXRhYmFzZU5hbWVBbmRWZXJzaW9uIHsgZGF0YWJhc2VJbmZvLT5u
YW1lKCksIGRhdGFiYXNlSW5mby0+dmVyc2lvbigpIH07CisgICAgICAgIH0KKworICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAgIHJldHVybiBJREJEYXRhYmFzZU5hbWVB
bmRWZXJzaW9uIHsgbV9kYXRhYmFzZUluZm8tPm5hbWUoKSwgbV9kYXRhYmFzZUluZm8tPnZlcnNp
b24oKSB9OworfQorCiB9IC8vIG5hbWVzcGFjZSBJREJTZXJ2ZXIKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9VbmlxdWVJREJEYXRhYmFzZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKaW5kZXggZGZhZGRiOTdjYzIyNThlN2U0MGVlYzhm
YTIxMDg0NjhiMGNkY2EzNC4uYjJhNzQxN2Y5YzgxOWNmYzI0MTQ2Y2U1ZmI1Y2Y1ZDI2MTI4NTA4
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1Vu
aXF1ZUlEQkRhdGFiYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpbmNsdWRlICJJ
REJCYWNraW5nU3RvcmUuaCIKICNpbmNsdWRlICJJREJEYXRhYmFzZUlkZW50aWZpZXIuaCIKICNp
bmNsdWRlICJJREJEYXRhYmFzZUluZm8uaCIKKyNpbmNsdWRlICJJREJEYXRhYmFzZU5hbWVBbmRW
ZXJzaW9uLmgiCiAjaW5jbHVkZSAiSURCR2V0UmVzdWx0LmgiCiAjaW5jbHVkZSAiU2VydmVyT3Bl
bkRCUmVxdWVzdC5oIgogI2luY2x1ZGUgIlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24uaCIK
QEAgLTExMSw2ICsxMTIsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBhYm9ydEFjdGl2ZVRyYW5zYWN0
aW9ucygpOwogICAgIGJvb2wgdHJ5Q2xvc2UoKTsKIAorICAgIFN0cmluZyBmaWxlUGF0aCgpIGNv
bnN0OworICAgIHN0ZDo6b3B0aW9uYWw8SURCRGF0YWJhc2VOYW1lQW5kVmVyc2lvbj4gbmFtZUFu
ZFZlcnNpb24oKSBjb25zdDsKKwogcHJpdmF0ZToKICAgICB2b2lkIGhhbmRsZURhdGFiYXNlT3Bl
cmF0aW9ucygpOwogICAgIHZvaWQgaGFuZGxlQ3VycmVudE9wZXJhdGlvbigpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNj
NjIyMjRmYzc2NDI0MDg5MzZhN2ViYjViNTBlYzIxZjllNGI5M2QuLjRkYTI3YjhlM2QzYjIwNDdk
NmFiMDhhY2M2NDc3YzA0ZTJmZWMxNmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wNy0y
OCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KKworICAgICAgICBJREJGYWN0b3J5
LmRhdGFiYXNlcyBzaG91bGQgbm90IHJldHVybiBkYXRhYmFzZXMgd2l0aCBpbnZhbGlkIHZlcnNp
b24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyODU1
NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogc3Rv
cmFnZS9pbmRleGVkZGIvZ2V0ZGF0YWJhc2VzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogc3RvcmFnZS9pbmRleGVkZGIvZ2V0ZGF0YWJhc2VzLXByaXZhdGUtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9nZXRkYXRhYmFzZXMtcHJpdmF0ZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9nZXRkYXRhYmFzZXMuaHRt
bDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL2dldGRhdGFi
YXNlcy5qczogQWRkZWQuCisgICAgICAgICh0ZXN0KToKKwogMjAyMS0wNy0yOCAgQWRpdHlhIEtl
ZXJ0aGkgIDxha2VlcnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gPHNlbGVjdD4gcGlj
a2VyIHZhbHVlIGNvbW1pdHRlZCB0byBpbmNvcnJlY3QgZWxlbWVudCBhZnRlciBwcm9ncmFtbWF0
aWMgZm9jdXMgY2hhbmdlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCA0NDBkZmI1
YjBhOTEyYzhjYzQ2ODkxYTUwOTdlOWJiZGQ1N2NmZDMwLi44ZWY5ZTE1ZDdjZDgxMmUxYmJlOTRl
ODA2ZDQ1ZjIxMmFmNTI5ZDFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxMyBAQAorMjAyMS0wNy0yOCAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4K
KworICAgICAgICBJREJGYWN0b3J5LmRhdGFiYXNlcyBzaG91bGQgbm90IHJldHVybiBkYXRhYmFz
ZXMgd2l0aCBpbnZhbGlkIHZlcnNpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIyODU1NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJh
c2VzLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9nZXQtZGF0YWJhc2VzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0OgorCiAyMDIxLTA3LTI2
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTG9jYXRpb24uaHJl
ZiBzZXR0ZXIgdXNlcyB3cm9uZyB3aW5kb3cgdG8gcmVzb2x2ZSByZWxhdGl2ZSBVUkxzCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4
ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS1leHBl
Y3RlZC50eHQKaW5kZXggNzIyODgzYzI1ZmZkYTc3M2U1YjgzMjYyZDUwY2I5MDQ2NDgzMjQ4Mi4u
MGQ1OGJkNjE2ZjA0YjY3MTUzYjc4Zjc4NmZjNGFkNzM1ZmMyY2YxNyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvZ2V0LWRh
dGFiYXNlcy5hbnktZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERCL2dldC1kYXRhYmFzZXMuYW55LWV4cGVjdGVkLnR4
dApAQCAtMyw1ICszLDUgQEAgUEFTUyBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSByZXR1cm5zIGEg
cHJvbWlzZS4KIFBBU1MgRW51bWVyYXRlIG9uZSBkYXRhYmFzZS4KIFBBU1MgRW51bWVyYXRlIG11
bHRpcGxlIGRhdGFiYXNlcy4KIFBBU1MgTWFrZSBzdXJlIGFuIGVtcHR5IGxpc3QgaXMgcmV0dXJu
ZWQgZm9yIHRoZSBjYXNlIG9mIG5vIGRhdGFiYXNlcy4KLUZBSUwgRW5zdXJlIHRoYXQgZGF0YWJh
c2VzKCkgZG9lc24ndCBwaWNrIHVwIGNoYW5nZXMgdGhhdCBoYXZlbid0IGNvbW1pdGVkLiBhc3Nl
cnRfZXF1YWxzOiBUaGUgcmVzdWx0IG9mIGRhdGFiYXNlcygpIHNob3VsZCBiZSBvbmx5IHRob3Nl
IGRhdGFiYXNlcyB3aGljaCBoYXZlIGJlZW4gY3JlYXRlZCBhdCB0aGUgdGltZSBvZiBjYWxsaW5n
LCByZWdhcmRsZXNzIG9mIHZlcnNpb25jaGFuZ2UgdHJhbnNhY3Rpb25zIGN1cnJlbnRseSBydW5u
aW5nLiBleHBlY3RlZCAxIGJ1dCBnb3QgMgorUEFTUyBFbnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBk
b2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhhdmVuJ3QgY29tbWl0ZWQuCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhlZERC
L2dldC1kYXRhYmFzZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL0luZGV4ZWREQi9nZXQtZGF0YWJhc2VzLmFueS53
b3JrZXItZXhwZWN0ZWQudHh0CmluZGV4IDcyMjg4M2MyNWZmZGE3NzNlNWI4MzI2MmQ1MGNiOTA0
NjQ4MzI0ODIuLjBkNThiZDYxNmYwNGI2NzE1M2I3OGY3ODZmYzRhZDczNWZjMmNmMTcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvSW5kZXhl
ZERCL2dldC1kYXRhYmFzZXMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9JbmRleGVkREIvZ2V0LWRhdGFiYXNl
cy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dApAQCAtMyw1ICszLDUgQEAgUEFTUyBFbnN1cmUgdGhh
dCBkYXRhYmFzZXMoKSByZXR1cm5zIGEgcHJvbWlzZS4KIFBBU1MgRW51bWVyYXRlIG9uZSBkYXRh
YmFzZS4KIFBBU1MgRW51bWVyYXRlIG11bHRpcGxlIGRhdGFiYXNlcy4KIFBBU1MgTWFrZSBzdXJl
IGFuIGVtcHR5IGxpc3QgaXMgcmV0dXJuZWQgZm9yIHRoZSBjYXNlIG9mIG5vIGRhdGFiYXNlcy4K
LUZBSUwgRW5zdXJlIHRoYXQgZGF0YWJhc2VzKCkgZG9lc24ndCBwaWNrIHVwIGNoYW5nZXMgdGhh
dCBoYXZlbid0IGNvbW1pdGVkLiBhc3NlcnRfZXF1YWxzOiBUaGUgcmVzdWx0IG9mIGRhdGFiYXNl
cygpIHNob3VsZCBiZSBvbmx5IHRob3NlIGRhdGFiYXNlcyB3aGljaCBoYXZlIGJlZW4gY3JlYXRl
ZCBhdCB0aGUgdGltZSBvZiBjYWxsaW5nLCByZWdhcmRsZXNzIG9mIHZlcnNpb25jaGFuZ2UgdHJh
bnNhY3Rpb25zIGN1cnJlbnRseSBydW5uaW5nLiBleHBlY3RlZCAxIGJ1dCBnb3QgMgorUEFTUyBF
bnN1cmUgdGhhdCBkYXRhYmFzZXMoKSBkb2Vzbid0IHBpY2sgdXAgY2hhbmdlcyB0aGF0IGhhdmVu
J3QgY29tbWl0ZWQuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L2dldGRhdGFiYXNlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9nZXRkYXRhYmFzZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2N2M4N2QzOWI0OTJiZWI3
NDU4MDkxNGIyNGQzNmI4YjBiN2Y1OWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9nZXRkYXRhYmFzZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTgg
QEAKK0Vuc3VyZSBhbGwgZGF0YWJhc2VzIGNhbiBiZSByZXRyaWV2ZWQKKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK2luZGV4ZWREQi5vcGVuKCdnZXRkYXRhYmFzZS1maXJzdCcpCitQ
QVNTIGRhdGFiYXNlcy5sZW5ndGggaXMgMAoraW5kZXhlZERCLm9wZW4oJ2dldGRhdGFiYXNlLXNl
Y29uZCcsIDIpCitQQVNTIGRhdGFiYXNlcy5sZW5ndGggaXMgMQorUEFTUyBkYXRhYmFzZXNbMF0u
dmVyc2lvbiBpcyAxCitQQVNTIGRhdGFiYXNlc1swXS5uYW1lIGlzICJnZXRkYXRhYmFzZS1maXJz
dCIKK1BBU1MgZGF0YWJhc2VzLmxlbmd0aCBpcyAyCitQQVNTIGRhdGFiYXNlc1sxXS52ZXJzaW9u
IGlzIDIKK1BBU1MgZGF0YWJhc2VzWzFdLm5hbWUgaXMgImdldGRhdGFiYXNlLXNlY29uZCIKK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9nZXRkYXRhYmFzZXMtcHJpdmF0ZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9nZXRkYXRhYmFzZXMt
cHJpdmF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY3Yzg3ZDM5YjQ5MmJlYjc0NTgwOTE0
YjI0ZDM2YjhiMGI3ZjU5YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2Uv
aW5kZXhlZGRiL2dldGRhdGFiYXNlcy1wcml2YXRlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4
IEBACitFbnN1cmUgYWxsIGRhdGFiYXNlcyBjYW4gYmUgcmV0cmlldmVkCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitpbmRleGVkREIub3BlbignZ2V0ZGF0YWJhc2UtZmlyc3QnKQor
UEFTUyBkYXRhYmFzZXMubGVuZ3RoIGlzIDAKK2luZGV4ZWREQi5vcGVuKCdnZXRkYXRhYmFzZS1z
ZWNvbmQnLCAyKQorUEFTUyBkYXRhYmFzZXMubGVuZ3RoIGlzIDEKK1BBU1MgZGF0YWJhc2VzWzBd
LnZlcnNpb24gaXMgMQorUEFTUyBkYXRhYmFzZXNbMF0ubmFtZSBpcyAiZ2V0ZGF0YWJhc2UtZmly
c3QiCitQQVNTIGRhdGFiYXNlcy5sZW5ndGggaXMgMgorUEFTUyBkYXRhYmFzZXNbMV0udmVyc2lv
biBpcyAyCitQQVNTIGRhdGFiYXNlc1sxXS5uYW1lIGlzICJnZXRkYXRhYmFzZS1zZWNvbmQiCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZ2V0ZGF0YWJhc2VzLXByaXZhdGUu
aHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2dldGRhdGFiYXNlcy1wcml2YXRl
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYzlhYjc0NDBiZmU0MzdkZjg5ODgwZGM0ZWM3MzcwNzRiMmFjYjU2
ZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL2dldGRh
dGFiYXNlcy1wcml2YXRlLmh0bWwKQEAgLTAsMCArMSwxMCBAQAorPCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyB1c2VFcGhlbWVyYWxTZXNzaW9uPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2dldGRhdGFiYXNlcy5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+
Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZ2V0ZGF0YWJhc2VzLmh0bWwgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9nZXRkYXRhYmFzZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNGVmZTMzZWVj
Y2FiZWFiYmE3MWJlYTg5NWFkMzdjMTI0ZTlhOWUzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvZ2V0ZGF0YWJhc2VzLmh0bWwKQEAgLTAsMCArMSw5IEBA
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2hhcmVkLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9nZXRkYXRhYmFzZXMuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy9nZXRk
YXRhYmFzZXMuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvZ2V0
ZGF0YWJhc2VzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFjOGVkOGY0ZDFmNzY0YjM1ZDEzNWM4ODFhZWUwMmI3
ZDdhMWFjZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRk
Yi9yZXNvdXJjZXMvZ2V0ZGF0YWJhc2VzLmpzCkBAIC0wLDAgKzEsNDUgQEAKK2lmICh0aGlzLmlt
cG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJlZC5qcycpOworfQorCitkZXNjcmlw
dGlvbigiRW5zdXJlIGFsbCBkYXRhYmFzZXMgY2FuIGJlIHJldHJpZXZlZCIpOworCit2YXIgZGF0
YWJhc2VzOworCitmdW5jdGlvbiB0ZXN0KCkgeworICAgIGluZGV4ZWREQi5kZWxldGVEYXRhYmFz
ZSgnZ2V0ZGF0YWJhc2UtZmlyc3QnKTsKKyAgICBpbmRleGVkREIuZGVsZXRlRGF0YWJhc2UoJ2dl
dGRhdGFiYXNlLXNlY29uZCcpOworCisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWRE
Qi5vcGVuKCdnZXRkYXRhYmFzZS1maXJzdCcpIik7CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVk
ZWQgPSAoKSA9PiB7CisgICAgICAgIGluZGV4ZWREQi5kYXRhYmFzZXMoKS50aGVuKChyZXN1bHQp
PT4geworICAgICAgICAgICAgZGF0YWJhc2VzID0gcmVzdWx0OworICAgICAgICAgICAgc2hvdWxk
QmVFcXVhbFRvTnVtYmVyKCJkYXRhYmFzZXMubGVuZ3RoIiwgMCk7CisgICAgICAgICAgICBjb250
aW51ZVRlc3QoKTsKKyAgICAgICAgfSk7CisgICAgfQorfQorCitmdW5jdGlvbiBjb250aW51ZVRl
c3QoKSB7CisgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coImluZGV4ZWREQi5vcGVuKCdnZXRkYXRh
YmFzZS1zZWNvbmQnLCAyKSIpOworICAgIHJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gKCkgPT4g
eworICAgICAgICBpbmRleGVkREIuZGF0YWJhc2VzKCkudGhlbigocmVzdWx0KSA9PiB7CisgICAg
ICAgICAgICBkYXRhYmFzZXMgPSByZXN1bHQ7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9O
dW1iZXIoImRhdGFiYXNlcy5sZW5ndGgiLCAxKTsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxU
b051bWJlcigiZGF0YWJhc2VzWzBdLnZlcnNpb24iLCAxKQorICAgICAgICAgICAgc2hvdWxkQmVF
cXVhbFRvU3RyaW5nKCJkYXRhYmFzZXNbMF0ubmFtZSIsICJnZXRkYXRhYmFzZS1maXJzdCIpOwor
ICAgICAgICB9KTsKKyAgICB9CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSAoKSA9PiB7CisgICAg
ICAgIGluZGV4ZWREQi5kYXRhYmFzZXMoKS50aGVuKChyZXN1bHQpID0+IHsKKyAgICAgICAgICAg
IGRhdGFiYXNlcyA9IHJlc3VsdDsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb051bWJlcigi
ZGF0YWJhc2VzLmxlbmd0aCIsIDIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvTnVtYmVy
KCJkYXRhYmFzZXNbMV0udmVyc2lvbiIsIDIpOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRv
U3RyaW5nKCJkYXRhYmFzZXNbMV0ubmFtZSIsICJnZXRkYXRhYmFzZS1zZWNvbmQiKTsKKyAgICAg
ICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9KTsKKyAgICB9Cit9CisKK3Rlc3QoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>