<?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>225750</bug_id>
          
          <creation_ts>2021-05-13 04:44:03 -0700</creation_ts>
          <short_desc>[LFC] Remove redundant public helpers from BlockFormattingContext</short_desc>
          <delta_ts>2021-05-15 19:37:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</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>225731</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1759629</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-13 04:44:03 -0700</bug_when>
    <thetext>This is part of bug 225731 activity.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759659</commentid>
    <comment_count>1</comment_count>
      <attachid>428498</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-13 05:40:44 -0700</bug_when>
    <thetext>Created attachment 428498
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760541</commentid>
    <comment_count>2</comment_count>
      <attachid>428765</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-15 19:23:05 -0700</bug_when>
    <thetext>Created attachment 428765
[fast-cq] Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760543</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-15 19:36:03 -0700</bug_when>
    <thetext>Committed r277558 (237786@main): &lt;https://commits.webkit.org/237786@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428765.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760544</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-15 19:37:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/78067815&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428498</attachid>
            <date>2021-05-13 05:40:44 -0700</date>
            <delta_ts>2021-05-15 19:23:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225750-20210513054044.patch</filename>
            <type>text/plain</type>
            <size>17504</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjE5ZDEyNDY2NTYyNDFh
MTM2ZGYzNzJjYjQxZjMyZGViNWY0MzYwNy4uN2ZiNzgyNzg4MGVlM2MwODk0ZjIzZjEwNmYzMDc5
M2NiMjU4MjFlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA1LTEzICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBNYWtlIHJlZHVuZGFu
dCBwdWJsaWMgaGVscGVycyBwcml2YXRlIGluIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTc1MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgICog
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdHZW9tZXRyeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0dlb21ldHJ5Ojpp
bkZsb3dOb25SZXBsYWNlZENvbnRlbnRIZWlnaHRBbmRNYXJnaW4pOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdHZW9tZXRyeTo6aW5GbG93Q29udGVudEhlaWdodEFu
ZE1hcmdpbik6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9j
a0Zvcm1hdHRpbmdRdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zv
cm1hdHRpbmdRdWlya3M6OnN0cmV0Y2hlZEluRmxvd0hlaWdodCk6CisgICAgICAgICogbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tNYXJnaW5Db2xsYXBzZTo6cXVpcmtzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVm
b3JlQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkJlZm9yZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0
aFBhcmVudE1hcmdpbkFmdGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qmxv
Y2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoTGFzdEluRmxvd0NoaWxk
TWFyZ2luQWZ0ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja01hcmdp
bkNvbGxhcHNlOjpwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlIGNvbnN0KToKKyAgICAgICAg
KiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrTWFyZ2luQ29sbGFwc2UuaDoK
KyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL1ByZWNvbXB1dGVkQmxv
Y2tNYXJnaW5Db2xsYXBzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrTWFy
Z2luQ29sbGFwc2U6OnByZWNvbXB1dGVkUG9zaXRpdmVOZWdhdGl2ZVZhbHVlcyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6OnByZWNvbXB1dGVk
UG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZSBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9ibG9jay90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3Jt
YXR0aW5nUXVpcmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVXcmFwcGVy
UXVpcmtzOjpvdmVycmlkZGVuVGFibGVIZWlnaHQgY29uc3QpOgorCiAyMDIxLTA1LTA1ICBBbGlj
aWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbTVNFXVtHU3Ry
ZWFtZXJdIFdlYktpdE1lZGlhU3JjIHJld29yayB2MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCA1NDQ0OGU3MDYxZTBjNTkyODIxMDE5N2E3ZDRiYmMy
MGE0ZWVlY2Y5Li43ZDg2YjFjNTAxZGI4ODFhNDlhMjFhNjAyZjBmZDBlODk2ZDY5ODQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Js
b2NrRm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtNTYsMTAgKzU2
LDYgQEAgcHVibGljOgogCiAgICAgY29uc3QgQmxvY2tGb3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRp
bmdTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGRvd25jYXN0PEJsb2NrRm9ybWF0dGluZ1N0YXRlPihG
b3JtYXR0aW5nQ29udGV4dDo6Zm9ybWF0dGluZ1N0YXRlKCkpOyB9CiAKLSAgICBCbG9ja0Zvcm1h
dHRpbmdHZW9tZXRyeSBnZW9tZXRyeSgpIGNvbnN0OwotICAgIEJsb2NrRm9ybWF0dGluZ1F1aXJr
cyBxdWlya3MoKSBjb25zdDsKLSAgICBCbG9ja01hcmdpbkNvbGxhcHNlIG1hcmdpbkNvbGxhcHNl
KCkgY29uc3Q7Ci0KIHByb3RlY3RlZDoKICAgICBzdHJ1Y3QgQ29uc3RyYWludHNQYWlyIHsKICAg
ICAgICAgQ29uc3RyYWludHNGb3JJbkZsb3dDb250ZW50IGZvcm1hdHRpbmdDb250ZXh0Um9vdDsK
QEAgLTg1LDYgKzgxLDkgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgdXBkYXRlTWFyZ2luQWZ0ZXJG
b3JQcmV2aW91c1NpYmxpbmcoY29uc3QgQm94Jik7CiAKICAgICBCbG9ja0Zvcm1hdHRpbmdTdGF0
ZSYgZm9ybWF0dGluZ1N0YXRlKCkgeyByZXR1cm4gZG93bmNhc3Q8QmxvY2tGb3JtYXR0aW5nU3Rh
dGU+KEZvcm1hdHRpbmdDb250ZXh0Ojpmb3JtYXR0aW5nU3RhdGUoKSk7IH0KKyAgICBCbG9ja0Zv
cm1hdHRpbmdHZW9tZXRyeSBnZW9tZXRyeSgpIGNvbnN0OworICAgIEJsb2NrRm9ybWF0dGluZ1F1
aXJrcyBxdWlya3MoKSBjb25zdDsKKyAgICBCbG9ja01hcmdpbkNvbGxhcHNlIG1hcmdpbkNvbGxh
cHNlKCkgY29uc3Q7CiAKICNpZiBBU1NFUlRfRU5BQkxFRAogICAgIHZvaWQgc2V0UHJlY29tcHV0
ZWRNYXJnaW5CZWZvcmUoY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0IFByZWNvbXB1dGVkTWFy
Z2luQmVmb3JlJiBwcmVjb21wdXRlZE1hcmdpbkJlZm9yZSkgeyBtX3ByZWNvbXB1dGVkTWFyZ2lu
QmVmb3JlTGlzdC5zZXQoJmxheW91dEJveCwgcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUpOyB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2Nr
L0Jsb2NrRm9ybWF0dGluZ0dlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nR2VvbWV0cnkuY3BwCmluZGV4IGEy
MjcyOGVkYmU5YTJmNWI1ZTg0ZTc4NWMwZDIxODg2N2RiYmZmNzIuLjgyMzYzMDgxYzdjNzMyMjhj
OGM5MTRkMzExMDNiYTk2OGMzOWZiOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nR2VvbWV0cnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tG
b3JtYXR0aW5nR2VvbWV0cnkuY3BwCkBAIC05MCw4ICs5MCw5IEBAIENvbnRlbnRIZWlnaHRBbmRN
YXJnaW4gQmxvY2tGb3JtYXR0aW5nR2VvbWV0cnk6OmluRmxvd05vblJlcGxhY2VkQ29udGVudEhl
aWdodEFuCiAgICAgICAgIH0KIAogICAgICAgICAvLyAyLiB0aGUgYm90dG9tIGVkZ2Ugb2YgdGhl
IGJvdHRvbSAocG9zc2libHkgY29sbGFwc2VkKSBtYXJnaW4gb2YgaXRzIGxhc3QgaW4tZmxvdyBj
aGlsZCwgaWYgdGhlIGNoaWxkJ3MgYm90dG9tIG1hcmdpbi4uLgorICAgICAgICBhdXRvIG1hcmdp
bkNvbGxhcHNlID0gQmxvY2tNYXJnaW5Db2xsYXBzZSB7IGZvcm1hdHRpbmdDb250ZXh0KCkgfTsK
ICAgICAgICAgYXV0byYgbGFzdEluRmxvd0NoaWxkID0gKmxheW91dENvbnRhaW5lci5sYXN0SW5G
bG93Q2hpbGQoKTsKLSAgICAgICAgaWYgKCFmb3JtYXR0aW5nQ29udGV4dCgpLm1hcmdpbkNvbGxh
cHNlKCkubWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2luQWZ0ZXIobGFzdEluRmxv
d0NoaWxkKSkgeworICAgICAgICBpZiAoIW1hcmdpbkNvbGxhcHNlLm1hcmdpbkFmdGVyQ29sbGFw
c2VzV2l0aFBhcmVudE1hcmdpbkFmdGVyKGxhc3RJbkZsb3dDaGlsZCkpIHsKICAgICAgICAgICAg
IGF1dG8mIGxhc3RJbkZsb3dCb3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0
cnlGb3JCb3gobGFzdEluRmxvd0NoaWxkKTsKICAgICAgICAgICAgIGF1dG8gYm90dG9tRWRnZU9m
Qm90dG9tTWFyZ2luID0gQm94R2VvbWV0cnk6OmJvcmRlckJveFJlY3QobGFzdEluRmxvd0JveEdl
b21ldHJ5KS5ib3R0b20oKSArIGxhc3RJbkZsb3dCb3hHZW9tZXRyeS5tYXJnaW5BZnRlcigpOwog
ICAgICAgICAgICAgcmV0dXJuIHsgYm90dG9tRWRnZU9mQm90dG9tTWFyZ2luIC0gYm9yZGVyQW5k
UGFkZGluZ1RvcCwgbm9uQ29sbGFwc2VkTWFyZ2luIH07CkBAIC05OSw3ICsxMDAsNyBAQCBDb250
ZW50SGVpZ2h0QW5kTWFyZ2luIEJsb2NrRm9ybWF0dGluZ0dlb21ldHJ5OjppbkZsb3dOb25SZXBs
YWNlZENvbnRlbnRIZWlnaHRBbgogCiAgICAgICAgIC8vIDMuIHRoZSBib3R0b20gYm9yZGVyIGVk
Z2Ugb2YgdGhlIGxhc3QgaW4tZmxvdyBjaGlsZCB3aG9zZSB0b3AgbWFyZ2luIGRvZXNuJ3QgY29s
bGFwc2Ugd2l0aCB0aGUgZWxlbWVudCdzIGJvdHRvbSBtYXJnaW4KICAgICAgICAgYXV0byogaW5G
bG93Q2hpbGQgPSAmbGFzdEluRmxvd0NoaWxkOwotICAgICAgICB3aGlsZSAoaW5GbG93Q2hpbGQg
JiYgZm9ybWF0dGluZ0NvbnRleHQoKS5tYXJnaW5Db2xsYXBzZSgpLm1hcmdpbkJlZm9yZUNvbGxh
cHNlc1dpdGhQYXJlbnRNYXJnaW5BZnRlcigqaW5GbG93Q2hpbGQpKQorICAgICAgICB3aGlsZSAo
aW5GbG93Q2hpbGQgJiYgbWFyZ2luQ29sbGFwc2UubWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0aFBh
cmVudE1hcmdpbkFmdGVyKCppbkZsb3dDaGlsZCkpCiAgICAgICAgICAgICBpbkZsb3dDaGlsZCA9
IGluRmxvd0NoaWxkLT5wcmV2aW91c0luRmxvd1NpYmxpbmcoKTsKICAgICAgICAgaWYgKGluRmxv
d0NoaWxkKSB7CiAgICAgICAgICAgICBhdXRvJiBpbkZsb3dCb3hHZW9tZXRyeSA9IGZvcm1hdHRp
bmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goKmluRmxvd0NoaWxkKTsKQEAgLTI3OSw3ICsyODAs
NyBAQCBDb250ZW50SGVpZ2h0QW5kTWFyZ2luIEJsb2NrRm9ybWF0dGluZ0dlb21ldHJ5OjppbkZs
b3dDb250ZW50SGVpZ2h0QW5kTWFyZ2luKGNvbgogICAgICAgICBjb250ZW50SGVpZ2h0QW5kTWFy
Z2luID0gY29tcGxpY2F0ZWRDYXNlcyhsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cywg
b3ZlcnJpZGRlblZlcnRpY2FsVmFsdWVzKTsKICAgICB9CiAKLSAgICBhdXRvIHF1aXJrcyA9IGZv
cm1hdHRpbmdDb250ZXh0KCkucXVpcmtzKCk7CisgICAgYXV0byBxdWlya3MgPSBCbG9ja0Zvcm1h
dHRpbmdRdWlya3MgeyBmb3JtYXR0aW5nQ29udGV4dCgpIH07CiAgICAgaWYgKCFxdWlya3MubmVl
ZHNTdHJldGNoaW5nKGxheW91dEJveCkpCiAgICAgICAgIHJldHVybiBjb250ZW50SGVpZ2h0QW5k
TWFyZ2luOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ1F1aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ1F1aXJrcy5jcHAK
aW5kZXggNjA4OGRiZWRlYzE4YWVjZmNhMTRjM2Q5OWU2NDkyNzc0Y2Y4ZjYwNi4uYjU0ZDUyNzU1
YjM4NjQ2ZjFiN2RkMDI3NGRlNTA0YTNlZGZmYzY1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdRdWlya3Mu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2sv
QmxvY2tGb3JtYXR0aW5nUXVpcmtzLmNwcApAQCAtODgsNyArODgsOCBAQCBMYXlvdXRVbml0IEJs
b2NrRm9ybWF0dGluZ1F1aXJrczo6c3RyZXRjaGVkSW5GbG93SGVpZ2h0KGNvbnN0IEJveCYgbGF5
b3V0Qm94LCBDbwogICAgIGJvZHlCb3hDb250ZW50SGVpZ2h0IC09IGJvZHlCb3hHZW9tZXRyeS52
ZXJ0aWNhbEJvcmRlcigpICsgYm9keUJveEdlb21ldHJ5LnZlcnRpY2FsUGFkZGluZygpLnZhbHVl
T3IoMCk7CiAgICAgLy8gQm9keSBib3ggbmV2ZXIgY29sbGFwc2VzIGl0cyB2ZXJ0aWNhbCBtYXJn
aW5zIHdpdGggdGhlIGRvY3VtZW50IGJveCBidXQgaXQgbWlnaHQgY29sbGFwc2UgaXRzIG1hcmdp
biB3aXRoIGl0cyBkZXNjZW5kYW50cy4KICAgICBhdXRvIG5vbkNvbGxhcHNlZE1hcmdpbiA9IGNv
bnRlbnRIZWlnaHRBbmRNYXJnaW4ubm9uQ29sbGFwc2VkTWFyZ2luOwotICAgIGF1dG8gY29sbGFw
c2VkTWFyZ2luID0gZm9ybWF0dGluZ0NvbnRleHQubWFyZ2luQ29sbGFwc2UoKS5jb2xsYXBzZWRW
ZXJ0aWNhbFZhbHVlcyhsYXlvdXRCb3gsIG5vbkNvbGxhcHNlZE1hcmdpbikuY29sbGFwc2VkVmFs
dWVzOworICAgIGF1dG8gbWFyZ2luQ29sbGFwc2UgPSBCbG9ja01hcmdpbkNvbGxhcHNlIHsgZm9y
bWF0dGluZ0NvbnRleHQgfTsKKyAgICBhdXRvIGNvbGxhcHNlZE1hcmdpbiA9IG1hcmdpbkNvbGxh
cHNlLmNvbGxhcHNlZFZlcnRpY2FsVmFsdWVzKGxheW91dEJveCwgbm9uQ29sbGFwc2VkTWFyZ2lu
KS5jb2xsYXBzZWRWYWx1ZXM7CiAgICAgYXV0byB1c2VkVmVydGljYWxNYXJnaW4gPSBjb2xsYXBz
ZWRNYXJnaW4uYmVmb3JlLnZhbHVlT3Iobm9uQ29sbGFwc2VkTWFyZ2luLmJlZm9yZSk7CiAgICAg
dXNlZFZlcnRpY2FsTWFyZ2luICs9IGNvbGxhcHNlZE1hcmdpbi5pc0NvbGxhcHNlZFRocm91Z2gg
PyBub25Db2xsYXBzZWRNYXJnaW4uYWZ0ZXIgOiBjb2xsYXBzZWRNYXJnaW4uYWZ0ZXIudmFsdWVP
cihub25Db2xsYXBzZWRNYXJnaW4uYWZ0ZXIpOwogICAgIGJvZHlCb3hDb250ZW50SGVpZ2h0IC09
IHVzZWRWZXJ0aWNhbE1hcmdpbjsKQEAgLTk4LDcgKzk5LDcgQEAgTGF5b3V0VW5pdCBCbG9ja0Zv
cm1hdHRpbmdRdWlya3M6OnN0cmV0Y2hlZEluRmxvd0hlaWdodChjb25zdCBCb3gmIGxheW91dEJv
eCwgQ28KICAgICBib2R5Qm94Q29udGVudEhlaWdodCAtPSBkb2N1bWVudEJveEdlb21ldHJ5LnZl
cnRpY2FsQm9yZGVyKCkgKyBkb2N1bWVudEJveEdlb21ldHJ5LnZlcnRpY2FsUGFkZGluZygpLnZh
bHVlT3IoMCk7CiAgICAgLy8gSG93ZXZlciB0aGUgbm9uLWluLWZsb3cgZG9jdW1lbnQgYm94J3Mg
dmVydGljYWwgbWFyZ2lucyBhcmUgaWdub3JlZC4gVGhleSBkb24ndCBhZmZlY3QgdGhlIGJvZHkg
Ym94J3MgY29udGVudCBoZWlnaHQuCiAgICAgaWYgKGRvY3VtZW50Qm94LmlzSW5GbG93KCkpIHsK
LSAgICAgICAgYXV0byBnZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5KCk7Cisg
ICAgICAgIGF1dG8gZ2VvbWV0cnkgPSBCbG9ja0Zvcm1hdHRpbmdHZW9tZXRyeSB7IGZvcm1hdHRp
bmdDb250ZXh0IH07CiAgICAgICAgIGF1dG8gcHJlY29tcHV0ZURvY3VtZW50Qm94VmVydGljYWxN
YXJnaW4gPSBnZW9tZXRyeS5jb21wdXRlZFZlcnRpY2FsTWFyZ2luKGRvY3VtZW50Qm94LCBnZW9t
ZXRyeS5jb25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQoaW5pdGlhbENvbnRhaW5pbmdCbG9jaywg
Rm9ybWF0dGluZ0NvbnRleHQ6OkVzY2FwZVJlYXNvbjo6Qm9keVN0cmV0Y2hlc1RvVmlld3BvcnRR
dWlyaykuaG9yaXpvbnRhbCk7CiAgICAgICAgIGJvZHlCb3hDb250ZW50SGVpZ2h0IC09IHByZWNv
bXB1dGVEb2N1bWVudEJveFZlcnRpY2FsTWFyZ2luLmJlZm9yZS52YWx1ZU9yKDApICsgcHJlY29t
cHV0ZURvY3VtZW50Qm94VmVydGljYWxNYXJnaW4uYWZ0ZXIudmFsdWVPcigwKTsKICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2Nr
L0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9ibG9jay9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcAppbmRleCAwZTY4M2Y3NDhh
ODU5NTQ3YzdkYjMzYjljMjU4YWZjNmEyMGJkYzdlLi4xYTJlYWY1YTY0ZWQ3MzBiMTM5YmFlOGRh
MjU3NWM0MmVlN2UwMzEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0
dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tNYXJnaW5Db2xsYXBz
ZS5jcHAKQEAgLTg3LDYgKzg3LDExIEBAIEJsb2NrTWFyZ2luQ29sbGFwc2U6OkJsb2NrTWFyZ2lu
Q29sbGFwc2UoY29uc3QgQmxvY2tGb3JtYXR0aW5nQ29udGV4dCYgYmxvY2tGb3JtCiB7CiB9CiAK
K0Jsb2NrRm9ybWF0dGluZ1F1aXJrcyBCbG9ja01hcmdpbkNvbGxhcHNlOjpxdWlya3MoKSBjb25z
dAoreworICAgIHJldHVybiBCbG9ja0Zvcm1hdHRpbmdRdWlya3MgeyBmb3JtYXR0aW5nQ29udGV4
dCgpIH07Cit9CisKIGJvb2wgQmxvY2tNYXJnaW5Db2xsYXBzZTo6aGFzQ2xlYXJhbmNlKGNvbnN0
IEJveCYgbGF5b3V0Qm94KSBjb25zdAogewogICAgIGlmICghbGF5b3V0Qm94Lmhhc0Zsb2F0Q2xl
YXIoKSkKQEAgLTEyMCw3ICsxMjUsNyBAQCBib29sIEJsb2NrTWFyZ2luQ29sbGFwc2U6Om1hcmdp
bkJlZm9yZUNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5CZWZvcmUoY29uc3QgQm94JgogICAgIC8v
IGh0dHBzOi8vd3d3LnczLm9yZy9UUi9DU1MyMS9ib3guaHRtbCNjb2xsYXBzaW5nLW1hcmdpbnMK
ICAgICBBU1NFUlQobGF5b3V0Qm94LmlzQmxvY2tMZXZlbEJveCgpKTsKIAotICAgIGlmIChmb3Jt
YXR0aW5nQ29udGV4dCgpLnF1aXJrcygpLnNob3VsZENvbGxhcHNlTWFyZ2luQmVmb3JlV2l0aFBh
cmVudE1hcmdpbkJlZm9yZShsYXlvdXRCb3gpKQorICAgIGlmIChxdWlya3MoKS5zaG91bGRDb2xs
YXBzZU1hcmdpbkJlZm9yZVdpdGhQYXJlbnRNYXJnaW5CZWZvcmUobGF5b3V0Qm94KSkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBNYXJnaW5zIGJldHdlZW4gYSBmbG9hdGVkIGJveCBh
bmQgYW55IG90aGVyIGJveCBkbyBub3QgY29sbGFwc2UuCkBAIC0yNTgsNyArMjYzLDcgQEAgYm9v
bCBCbG9ja01hcmdpbkNvbGxhcHNlOjptYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhQYXJlbnRNYXJn
aW5BZnRlcihjb25zdCBCb3gmIGwKIHsKICAgICBBU1NFUlQobGF5b3V0Qm94LmlzQmxvY2tMZXZl
bEJveCgpKTsKIAotICAgIGlmIChmb3JtYXR0aW5nQ29udGV4dCgpLnF1aXJrcygpLnNob3VsZENv
bGxhcHNlTWFyZ2luQWZ0ZXJXaXRoUGFyZW50TWFyZ2luQWZ0ZXIobGF5b3V0Qm94KSkKKyAgICBp
ZiAocXVpcmtzKCkuc2hvdWxkQ29sbGFwc2VNYXJnaW5BZnRlcldpdGhQYXJlbnRNYXJnaW5BZnRl
cihsYXlvdXRCb3gpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIE1hcmdpbnMgYmV0
d2VlbiBhIGZsb2F0ZWQgYm94IGFuZCBhbnkgb3RoZXIgYm94IGRvIG5vdCBjb2xsYXBzZS4KQEAg
LTM0OSw3ICszNTQsNyBAQCBib29sIEJsb2NrTWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29s
bGFwc2VzV2l0aExhc3RJbkZsb3dDaGlsZE1hcmdpbkFmdGVyKGNvbgogCiAgICAgLy8gVGhpcyBp
cyBhIHF1aXJrIGJlaGF2aW9yOiBXaGVuIHRoZSBtYXJnaW4gYWZ0ZXIgb2YgdGhlIGxhc3QgaW5m
bG93IGNoaWxkIChvciBhIHByZXZpb3VzIHNpYmxpbmcgd2l0aCBjb2xsYXBzZWQgdGhyb3VnaCBt
YXJnaW5zKQogICAgIC8vIGNvbGxhcHNlcyB3aXRoIGEgcXVpcmsgcGFyZW50J3MgdGhlIG1hcmdp
biBiZWZvcmUsIHRoZW4gdGhlIHNhbWUgbWFyZ2luIGFmdGVyIGRvZXMgbm90IGNvbGxhcHNlcyB3
aXRoIHRoZSBwYXJlbnQncyBtYXJnaW4gYWZ0ZXIuCi0gICAgaWYgKGZvcm1hdHRpbmdDb250ZXh0
KCkucXVpcmtzKCkuc2hvdWxkSWdub3JlQ29sbGFwc2VkUXVpcmtNYXJnaW4obGF5b3V0Qm94KSAm
JiBtYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5CZWZvcmUobGFzdEluRmxvd0No
aWxkKSkKKyAgICBpZiAocXVpcmtzKCkuc2hvdWxkSWdub3JlQ29sbGFwc2VkUXVpcmtNYXJnaW4o
bGF5b3V0Qm94KSAmJiBtYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5CZWZvcmUo
bGFzdEluRmxvd0NoaWxkKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgcmV0dXJuIHRy
dWU7CkBAIC01MDIsNyArNTA3LDcgQEAgVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5l
Z2F0aXZlUGFpcjo6VmFsdWVzIEJsb2NrTWFyZ2luQ29sbGFwc2U6OnBvc2l0aXYKICAgICAvLyAy
LiBHYXRoZXIgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIG1hcmdpbiB2YWx1ZXMgZnJvbSBwcmV2aW91
cyBpbmZsb3cgc2libGluZyBpZiBtYXJnaW5zIGFyZSBhZGpvaW5pbmcuCiAgICAgLy8gMy4gQ29t
cHV0ZSBtaW4vbWF4IHBvc2l0aXZlIGFuZCBuZWdhdGl2ZSBjb2xsYXBzZWQgbWFyZ2luIHZhbHVl
cyB1c2luZyBub24tY29sbHBhc2VkIGNvbXB1dGVkIG1hcmdpbiBiZWZvcmUuCiAgICAgYXV0byBj
b2xsYXBzZWRNYXJnaW5CZWZvcmUgPSBjb21wdXRlZFBvc2l0aXZlQW5kTmVnYXRpdmVNYXJnaW4o
Zmlyc3RDaGlsZENvbGxhcHNlZE1hcmdpbkJlZm9yZSgpLCBwcmV2aW91U2libGluZ0NvbGxhcHNl
ZE1hcmdpbkFmdGVyKCkpOwotICAgIGlmIChjb2xsYXBzZWRNYXJnaW5CZWZvcmUuaXNRdWlyayAm
JiBmb3JtYXR0aW5nQ29udGV4dCgpLnF1aXJrcygpLnNob3VsZElnbm9yZUNvbGxhcHNlZFF1aXJr
TWFyZ2luKGxheW91dEJveCkpCisgICAgaWYgKGNvbGxhcHNlZE1hcmdpbkJlZm9yZS5pc1F1aXJr
ICYmIHF1aXJrcygpLnNob3VsZElnbm9yZUNvbGxhcHNlZFF1aXJrTWFyZ2luKGxheW91dEJveCkp
CiAgICAgICAgIGNvbGxhcHNlZE1hcmdpbkJlZm9yZSA9IHsgfTsKIAogICAgIFVzZWRWZXJ0aWNh
bE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBub25Db2xsYXBzZWRCZWZv
cmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2Jsb2NrL0Jsb2NrTWFyZ2luQ29sbGFwc2UuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tNYXJnaW5Db2xsYXBzZS5oCmluZGV4IGZkMGUzODc5
YWI1OGNmNTk3NmU5YmIzNDdmZTVkYjdkYTFiMmI5MzMuLmVlYWE5MTU2Y2VjYzkxYjJhYWM2Mjkx
YTgyNjFhZTJmY2M5MmNhZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tNYXJnaW5Db2xsYXBzZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tNYXJnaW5Db2xsYXBz
ZS5oCkBAIC0zNSw2ICszNSw4IEBAIG5hbWVzcGFjZSBMYXlvdXQgewogLy8gVGhpcyBjbGFzcyBp
bXBsZW1lbnRzIG1hcmdpbiBjb2xsYXBzaW5nIGZvciBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQu
CiBjbGFzcyBCbG9ja01hcmdpbkNvbGxhcHNlIHsKIHB1YmxpYzoKKyAgICBCbG9ja01hcmdpbkNv
bGxhcHNlKGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQmKTsKKwogICAgIFVzZWRWZXJ0aWNh
bE1hcmdpbiBjb2xsYXBzZWRWZXJ0aWNhbFZhbHVlcyhjb25zdCBCb3gmLCBVc2VkVmVydGljYWxN
YXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyk7CiAKICAgICBQcmVjb21wdXRlZE1hcmdpbkJlZm9y
ZSBwcmVjb21wdXRlZE1hcmdpbkJlZm9yZShjb25zdCBCb3gmLCBVc2VkVmVydGljYWxNYXJnaW46
Ok5vbkNvbGxhcHNlZFZhbHVlcyk7CkBAIC01MSwxMiArNTMsMTEgQEAgcHVibGljOgogICAgIGJv
b2wgbWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoTmV4dFNpYmxpbmdNYXJnaW5CZWZvcmUoY29uc3Qg
Qm94JikgY29uc3Q7CiAgICAgYm9vbCBtYXJnaW5BZnRlckNvbGxhcHNlc1dpdGhTaWJsaW5nTWFy
Z2luQmVmb3JlV2l0aENsZWFyYW5jZShjb25zdCBCb3gmKSBjb25zdDsKIAorICAgIFVzZWRWZXJ0
aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBjb21wdXRlZFBvc2l0
aXZlQW5kTmVnYXRpdmVNYXJnaW4oVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0
aXZlUGFpcjo6VmFsdWVzLCBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQ
YWlyOjpWYWx1ZXMpIGNvbnN0OworCiAgICAgYm9vbCBtYXJnaW5zQ29sbGFwc2VUaHJvdWdoKGNv
bnN0IEJveCYpIGNvbnN0OwogCiBwcml2YXRlOgotICAgIGZyaWVuZCBjbGFzcyBCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0OwotICAgIEJsb2NrTWFyZ2luQ29sbGFwc2UoY29uc3QgQmxvY2tGb3JtYXR0
aW5nQ29udGV4dCYpOwotCiAgICAgZW51bSBjbGFzcyBNYXJnaW5UeXBlIHsgQmVmb3JlLCBBZnRl
ciB9OwogICAgIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZh
bHVlcyBwb3NpdGl2ZU5lZ2F0aXZlVmFsdWVzKGNvbnN0IEJveCYsIE1hcmdpblR5cGUpIGNvbnN0
OwogICAgIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVl
cyBwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1h
cmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzKSBjb25zdDsKQEAgLTY1LDExICs2NiwxMSBAQCBwcml2
YXRlOgogICAgIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZh
bHVlcyBwcmVjb21wdXRlZFBvc2l0aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUoY29uc3QgQm94Jiwg
VXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0OwogICAgIFVzZWRW
ZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBwcmVjb21wdXRl
ZFBvc2l0aXZlTmVnYXRpdmVWYWx1ZXMoY29uc3QgQm94JikgY29uc3Q7CiAKLSAgICBVc2VkVmVy
dGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgY29tcHV0ZWRQb3Np
dGl2ZUFuZE5lZ2F0aXZlTWFyZ2luKFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdh
dGl2ZVBhaXI6OlZhbHVlcywgVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZl
UGFpcjo6VmFsdWVzKSBjb25zdDsKICAgICBPcHRpb25hbDxMYXlvdXRVbml0PiBtYXJnaW5WYWx1
ZShVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMpIGNv
bnN0OwogCiAgICAgYm9vbCBoYXNDbGVhcmFuY2UoY29uc3QgQm94JikgY29uc3Q7CiAKKyAgICBC
bG9ja0Zvcm1hdHRpbmdRdWlya3MgcXVpcmtzKCkgY29uc3Q7CiAgICAgTGF5b3V0U3RhdGUmIGxh
eW91dFN0YXRlKCkgeyByZXR1cm4gbV9ibG9ja0Zvcm1hdHRpbmdDb250ZXh0LmxheW91dFN0YXRl
KCk7IH0KICAgICBjb25zdCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX2Jsb2NrRm9ybWF0dGluZ0NvbnRleHQubGF5b3V0U3RhdGUoKTsgfQogICAgIGNvbnN0IEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4g
bV9ibG9ja0Zvcm1hdHRpbmdDb250ZXh0OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL1ByZWNvbXB1dGVkQmxvY2tNYXJnaW5Db2xs
YXBzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2Nr
L1ByZWNvbXB1dGVkQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKaW5kZXggYzViMjliNDJkZWNjOTdj
ZWUxOWYzZjZmMzY5OTkyNTYxYjM1OTcyOC4uNmZlYjEwZDNjM2ExNWNjZTU0NTY0MWYwNDA1MWYy
NjY1MmU2ODRhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9ibG9jay9QcmVjb21wdXRlZEJsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svUHJlY29tcHV0ZWRC
bG9ja01hcmdpbkNvbGxhcHNlLmNwcApAQCAtNDUsNyArNDUsNyBAQCBVc2VkVmVydGljYWxNYXJn
aW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgQmxvY2tNYXJnaW5Db2xsYXBzZTo6
cHJlY29tcAogICAgIGlmIChibG9ja0Zvcm1hdHRpbmdTdGF0ZS5oYXNVc2VkVmVydGljYWxNYXJn
aW4obGF5b3V0Qm94KSkKICAgICAgICAgcmV0dXJuIGJsb2NrRm9ybWF0dGluZ1N0YXRlLnVzZWRW
ZXJ0aWNhbE1hcmdpbihsYXlvdXRCb3gpLnBvc2l0aXZlQW5kTmVnYXRpdmVWYWx1ZXMuYmVmb3Jl
OwogCi0gICAgYXV0byBnZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnkoKTsK
KyAgICBhdXRvIGdlb21ldHJ5ID0gQmxvY2tGb3JtYXR0aW5nR2VvbWV0cnkgeyBmb3JtYXR0aW5n
Q29udGV4dCgpIH07CiAgICAgYXV0byBob3Jpem9udGFsQ29uc3RyYWludHMgPSBnZW9tZXRyeS5j
b25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQobGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpKS5o
b3Jpem9udGFsOwogICAgIGF1dG8gY29tcHV0ZWRWZXJ0aWNhbE1hcmdpbiA9IGdlb21ldHJ5LmNv
bXB1dGVkVmVydGljYWxNYXJnaW4obGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMpOwog
ICAgIGF1dG8gbm9uQ29sbGFwc2VkTWFyZ2luID0gVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xs
YXBzZWRWYWx1ZXMgeyBjb21wdXRlZFZlcnRpY2FsTWFyZ2luLmJlZm9yZS52YWx1ZU9yKDApLCBj
b21wdXRlZFZlcnRpY2FsTWFyZ2luLmFmdGVyLnZhbHVlT3IoMCkgfTsKQEAgLTcyLDcgKzcyLDcg
QEAgVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIEJs
b2NrTWFyZ2luQ29sbGFwc2U6OnByZWNvbXAKICAgICAvLyAyLiBHYXRoZXIgcG9zaXRpdmUgYW5k
IG5lZ2F0aXZlIG1hcmdpbiB2YWx1ZXMgZnJvbSBwcmV2aW91cyBpbmZsb3cgc2libGluZyBpZiBt
YXJnaW5zIGFyZSBhZGpvaW5pbmcuCiAgICAgLy8gMy4gQ29tcHV0ZSBtaW4vbWF4IHBvc2l0aXZl
IGFuZCBuZWdhdGl2ZSBjb2xsYXBzZWQgbWFyZ2luIHZhbHVlcyB1c2luZyBub24tY29sbHBhc2Vk
IGNvbXB1dGVkIG1hcmdpbiBiZWZvcmUuCiAgICAgYXV0byBjb2xsYXBzZWRNYXJnaW5CZWZvcmUg
PSBjb21wdXRlZFBvc2l0aXZlQW5kTmVnYXRpdmVNYXJnaW4oZmlyc3RDaGlsZENvbGxhcHNlZE1h
cmdpbkJlZm9yZSgpLCBwcmV2aW91U2libGluZ0NvbGxhcHNlZE1hcmdpbkFmdGVyKCkpOwotICAg
IGlmIChjb2xsYXBzZWRNYXJnaW5CZWZvcmUuaXNRdWlyayAmJiBmb3JtYXR0aW5nQ29udGV4dCgp
LnF1aXJrcygpLnNob3VsZElnbm9yZUNvbGxhcHNlZFF1aXJrTWFyZ2luKGxheW91dEJveCkpCisg
ICAgaWYgKGNvbGxhcHNlZE1hcmdpbkJlZm9yZS5pc1F1aXJrICYmIHF1aXJrcygpLnNob3VsZEln
bm9yZUNvbGxhcHNlZFF1aXJrTWFyZ2luKGxheW91dEJveCkpCiAgICAgICAgIGNvbGxhcHNlZE1h
cmdpbkJlZm9yZSA9IHsgfTsKIAogICAgIGF1dG8gbm9uQ29sbGFwc2VkQmVmb3JlID0gVXNlZFZl
cnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIHsgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svdGFi
bGV3cmFwcGVyL1RhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ1F1aXJrcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL3RhYmxld3JhcHBlci9UYWJs
ZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdRdWlya3MuY3BwCmluZGV4IGVmM2NhMGYyZjNhNDBhMDFj
MDNiYjM3NDNkNTdkZjMwNjAzNjlkYmMuLmJmNTkzMzk2MzlhYjU2ZTkxMTRjOTUxNGUyNjcyMDMw
ZThjZmZlMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvYmxvY2svdGFibGV3cmFwcGVyL1RhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ1F1aXJr
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9j
ay90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmNwcApAQCAt
NDEsMTEgKzQxLDEyIEBAIFRhYmxlV3JhcHBlclF1aXJrczo6VGFibGVXcmFwcGVyUXVpcmtzKGNv
bnN0IFRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ0NvbnRleHQmCiAKIE9wdGlvbmFsPExheW91
dFVuaXQ+IFRhYmxlV3JhcHBlclF1aXJrczo6b3ZlcnJpZGRlblRhYmxlSGVpZ2h0KGNvbnN0IENv
bnRhaW5lckJveCYgdGFibGVCb3gpIGNvbnN0CiB7CisgICAgYXV0byBnZW9tZXRyeSA9IEJsb2Nr
Rm9ybWF0dGluZ0dlb21ldHJ5IHsgZm9ybWF0dGluZ0NvbnRleHQoKSB9OwogICAgIGlmIChsYXlv
dXRTdGF0ZSgpLmluUXVpcmtzTW9kZSgpKSB7CiAgICAgICAgIC8vIEluIHF1aXJrcyBtb2RlIGFs
d2F5cyB1c2UgdGhlIGNvbnRlbnQgaGVpZ2h0LiBOb3RlIHRoYXQgdGhlIHRhYmxlcyB3aXRoIGNv
bnRlbnQgdGFrZSBjb21wdXRlZCB2YWx1ZXMgaW50byBhY2NvdW50LgotICAgICAgICByZXR1cm4g
Zm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeSgpLmNvbnRlbnRIZWlnaHRGb3JGb3JtYXR0aW5n
Q29udGV4dFJvb3QodGFibGVCb3gpOworICAgICAgICByZXR1cm4gZ2VvbWV0cnkuY29udGVudEhl
aWdodEZvckZvcm1hdHRpbmdDb250ZXh0Um9vdCh0YWJsZUJveCk7CiAgICAgfQotICAgIHJldHVy
biB0YWJsZUJveC5oYXNJbkZsb3dPckZsb2F0aW5nQ2hpbGQoKSA/IGZvcm1hdHRpbmdDb250ZXh0
KCkuZ2VvbWV0cnkoKS5jb250ZW50SGVpZ2h0Rm9yRm9ybWF0dGluZ0NvbnRleHRSb290KHRhYmxl
Qm94KSA6IE9wdGlvbmFsPExheW91dFVuaXQ+IHsgfTsKKyAgICByZXR1cm4gdGFibGVCb3guaGFz
SW5GbG93T3JGbG9hdGluZ0NoaWxkKCkgPyBnZW9tZXRyeS5jb250ZW50SGVpZ2h0Rm9yRm9ybWF0
dGluZ0NvbnRleHRSb290KHRhYmxlQm94KSA6IE9wdGlvbmFsPExheW91dFVuaXQ+IHsgfTsKIH0K
IAogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428765</attachid>
            <date>2021-05-15 19:23:05 -0700</date>
            <delta_ts>2021-05-15 19:36:04 -0700</delta_ts>
            <desc>[fast-cq] Patch</desc>
            <filename>bug-225750-20210515192304.patch</filename>
            <type>text/plain</type>
            <size>17497</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NTU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmNjN2MzYzcxNDk4MzA5
OThhNWMxODI2MWQzMTI1NWFhZjIwOWVmNC4uOTM4NzE0YWFlOThjMTkzODk3ZGNiOTY1NzczNjI4
NDhjMzRmOWI0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDIxLTA1LTE1ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXSBNYWtlIHJlZHVuZGFu
dCBwdWJsaWMgaGVscGVycyBwcml2YXRlIGluIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTc1MAorCisgICAg
ICAgIFJldmlld2VkIGJ5IEFudHRpIEtvaXZpc3RvLgorCisgICAgICAgICogbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgICog
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdHZW9tZXRyeS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0dlb21ldHJ5Ojpp
bkZsb3dOb25SZXBsYWNlZENvbnRlbnRIZWlnaHRBbmRNYXJnaW4pOgorICAgICAgICAoV2ViQ29y
ZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdHZW9tZXRyeTo6aW5GbG93Q29udGVudEhlaWdodEFu
ZE1hcmdpbik6CisgICAgICAgICogbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9j
a0Zvcm1hdHRpbmdRdWlya3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zv
cm1hdHRpbmdRdWlya3M6OnN0cmV0Y2hlZEluRmxvd0hlaWdodCk6CisgICAgICAgICogbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tNYXJnaW5Db2xsYXBzZTo6cXVpcmtzIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVm
b3JlQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkJlZm9yZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0
aFBhcmVudE1hcmdpbkFmdGVyIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Qmxv
Y2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoTGFzdEluRmxvd0NoaWxk
TWFyZ2luQWZ0ZXIgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja01hcmdp
bkNvbGxhcHNlOjpwb3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlIGNvbnN0KToKKyAgICAgICAg
KiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrTWFyZ2luQ29sbGFwc2UuaDoK
KyAgICAgICAgKiBsYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL1ByZWNvbXB1dGVkQmxv
Y2tNYXJnaW5Db2xsYXBzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrTWFy
Z2luQ29sbGFwc2U6OnByZWNvbXB1dGVkUG9zaXRpdmVOZWdhdGl2ZVZhbHVlcyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrTWFyZ2luQ29sbGFwc2U6OnByZWNvbXB1dGVk
UG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZSBjb25zdCk6CisgICAgICAgICogbGF5b3V0L2Zv
cm1hdHRpbmdDb250ZXh0cy9ibG9jay90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3Jt
YXR0aW5nUXVpcmtzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6VGFibGVXcmFwcGVy
UXVpcmtzOjpvdmVycmlkZGVuVGFibGVIZWlnaHQgY29uc3QpOgorCiAyMDIxLTA1LTE1ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBNYWtlIEZvcm1hdHRp
bmdHZW9tZXRyeSBjJ3RvcnMgcHVibGljCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5oCmluZGV4IDU0NDQ4ZTcwNjFlMGM1OTI4MjEwMTk3YTdkNGJiYzIwYTRlZWVj
ZjkuLjdkODZiMWM1MDFkYjg4MWE0OWEyMWE2MDJmMGZkMGU4OTZkNjk4NDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC01NiwxMCArNTYsNiBAQCBw
dWJsaWM6CiAKICAgICBjb25zdCBCbG9ja0Zvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRl
KCkgY29uc3QgeyByZXR1cm4gZG93bmNhc3Q8QmxvY2tGb3JtYXR0aW5nU3RhdGU+KEZvcm1hdHRp
bmdDb250ZXh0Ojpmb3JtYXR0aW5nU3RhdGUoKSk7IH0KIAotICAgIEJsb2NrRm9ybWF0dGluZ0dl
b21ldHJ5IGdlb21ldHJ5KCkgY29uc3Q7Ci0gICAgQmxvY2tGb3JtYXR0aW5nUXVpcmtzIHF1aXJr
cygpIGNvbnN0OwotICAgIEJsb2NrTWFyZ2luQ29sbGFwc2UgbWFyZ2luQ29sbGFwc2UoKSBjb25z
dDsKLQogcHJvdGVjdGVkOgogICAgIHN0cnVjdCBDb25zdHJhaW50c1BhaXIgewogICAgICAgICBD
b25zdHJhaW50c0ZvckluRmxvd0NvbnRlbnQgZm9ybWF0dGluZ0NvbnRleHRSb290OwpAQCAtODUs
NiArODEsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCB1cGRhdGVNYXJnaW5BZnRlckZvclByZXZp
b3VzU2libGluZyhjb25zdCBCb3gmKTsKIAogICAgIEJsb2NrRm9ybWF0dGluZ1N0YXRlJiBmb3Jt
YXR0aW5nU3RhdGUoKSB7IHJldHVybiBkb3duY2FzdDxCbG9ja0Zvcm1hdHRpbmdTdGF0ZT4oRm9y
bWF0dGluZ0NvbnRleHQ6OmZvcm1hdHRpbmdTdGF0ZSgpKTsgfQorICAgIEJsb2NrRm9ybWF0dGlu
Z0dlb21ldHJ5IGdlb21ldHJ5KCkgY29uc3Q7CisgICAgQmxvY2tGb3JtYXR0aW5nUXVpcmtzIHF1
aXJrcygpIGNvbnN0OworICAgIEJsb2NrTWFyZ2luQ29sbGFwc2UgbWFyZ2luQ29sbGFwc2UoKSBj
b25zdDsKIAogI2lmIEFTU0VSVF9FTkFCTEVECiAgICAgdm9pZCBzZXRQcmVjb21wdXRlZE1hcmdp
bkJlZm9yZShjb25zdCBCb3gmIGxheW91dEJveCwgY29uc3QgUHJlY29tcHV0ZWRNYXJnaW5CZWZv
cmUmIHByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKSB7IG1fcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmVM
aXN0LnNldCgmbGF5b3V0Qm94LCBwcmVjb21wdXRlZE1hcmdpbkJlZm9yZSk7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tG
b3JtYXR0aW5nR2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdHZW9tZXRyeS5jcHAKaW5kZXggYTIyNzI4ZWRi
ZTlhMmY1YjVlODRlNzg1YzBkMjE4ODY3ZGJiZmY3Mi4uODIzNjMwODFjN2M3MzIyOGM4YzkxNGQz
MTEwM2JhOTY4YzM5ZmI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRpbmdHZW9tZXRyeS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zvcm1hdHRp
bmdHZW9tZXRyeS5jcHAKQEAgLTkwLDggKzkwLDkgQEAgQ29udGVudEhlaWdodEFuZE1hcmdpbiBC
bG9ja0Zvcm1hdHRpbmdHZW9tZXRyeTo6aW5GbG93Tm9uUmVwbGFjZWRDb250ZW50SGVpZ2h0QW4K
ICAgICAgICAgfQogCiAgICAgICAgIC8vIDIuIHRoZSBib3R0b20gZWRnZSBvZiB0aGUgYm90dG9t
IChwb3NzaWJseSBjb2xsYXBzZWQpIG1hcmdpbiBvZiBpdHMgbGFzdCBpbi1mbG93IGNoaWxkLCBp
ZiB0aGUgY2hpbGQncyBib3R0b20gbWFyZ2luLi4uCisgICAgICAgIGF1dG8gbWFyZ2luQ29sbGFw
c2UgPSBCbG9ja01hcmdpbkNvbGxhcHNlIHsgZm9ybWF0dGluZ0NvbnRleHQoKSB9OwogICAgICAg
ICBhdXRvJiBsYXN0SW5GbG93Q2hpbGQgPSAqbGF5b3V0Q29udGFpbmVyLmxhc3RJbkZsb3dDaGls
ZCgpOwotICAgICAgICBpZiAoIWZvcm1hdHRpbmdDb250ZXh0KCkubWFyZ2luQ29sbGFwc2UoKS5t
YXJnaW5BZnRlckNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5BZnRlcihsYXN0SW5GbG93Q2hpbGQp
KSB7CisgICAgICAgIGlmICghbWFyZ2luQ29sbGFwc2UubWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRo
UGFyZW50TWFyZ2luQWZ0ZXIobGFzdEluRmxvd0NoaWxkKSkgewogICAgICAgICAgICAgYXV0byYg
bGFzdEluRmxvd0JveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeUZvckJv
eChsYXN0SW5GbG93Q2hpbGQpOwogICAgICAgICAgICAgYXV0byBib3R0b21FZGdlT2ZCb3R0b21N
YXJnaW4gPSBCb3hHZW9tZXRyeTo6Ym9yZGVyQm94UmVjdChsYXN0SW5GbG93Qm94R2VvbWV0cnkp
LmJvdHRvbSgpICsgbGFzdEluRmxvd0JveEdlb21ldHJ5Lm1hcmdpbkFmdGVyKCk7CiAgICAgICAg
ICAgICByZXR1cm4geyBib3R0b21FZGdlT2ZCb3R0b21NYXJnaW4gLSBib3JkZXJBbmRQYWRkaW5n
VG9wLCBub25Db2xsYXBzZWRNYXJnaW4gfTsKQEAgLTk5LDcgKzEwMCw3IEBAIENvbnRlbnRIZWln
aHRBbmRNYXJnaW4gQmxvY2tGb3JtYXR0aW5nR2VvbWV0cnk6OmluRmxvd05vblJlcGxhY2VkQ29u
dGVudEhlaWdodEFuCiAKICAgICAgICAgLy8gMy4gdGhlIGJvdHRvbSBib3JkZXIgZWRnZSBvZiB0
aGUgbGFzdCBpbi1mbG93IGNoaWxkIHdob3NlIHRvcCBtYXJnaW4gZG9lc24ndCBjb2xsYXBzZSB3
aXRoIHRoZSBlbGVtZW50J3MgYm90dG9tIG1hcmdpbgogICAgICAgICBhdXRvKiBpbkZsb3dDaGls
ZCA9ICZsYXN0SW5GbG93Q2hpbGQ7Ci0gICAgICAgIHdoaWxlIChpbkZsb3dDaGlsZCAmJiBmb3Jt
YXR0aW5nQ29udGV4dCgpLm1hcmdpbkNvbGxhcHNlKCkubWFyZ2luQmVmb3JlQ29sbGFwc2VzV2l0
aFBhcmVudE1hcmdpbkFmdGVyKCppbkZsb3dDaGlsZCkpCisgICAgICAgIHdoaWxlIChpbkZsb3dD
aGlsZCAmJiBtYXJnaW5Db2xsYXBzZS5tYXJnaW5CZWZvcmVDb2xsYXBzZXNXaXRoUGFyZW50TWFy
Z2luQWZ0ZXIoKmluRmxvd0NoaWxkKSkKICAgICAgICAgICAgIGluRmxvd0NoaWxkID0gaW5GbG93
Q2hpbGQtPnByZXZpb3VzSW5GbG93U2libGluZygpOwogICAgICAgICBpZiAoaW5GbG93Q2hpbGQp
IHsKICAgICAgICAgICAgIGF1dG8mIGluRmxvd0JveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRl
eHQoKS5nZW9tZXRyeUZvckJveCgqaW5GbG93Q2hpbGQpOwpAQCAtMjc5LDcgKzI4MCw3IEBAIENv
bnRlbnRIZWlnaHRBbmRNYXJnaW4gQmxvY2tGb3JtYXR0aW5nR2VvbWV0cnk6OmluRmxvd0NvbnRl
bnRIZWlnaHRBbmRNYXJnaW4oY29uCiAgICAgICAgIGNvbnRlbnRIZWlnaHRBbmRNYXJnaW4gPSBj
b21wbGljYXRlZENhc2VzKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCBvdmVycmlk
ZGVuVmVydGljYWxWYWx1ZXMpOwogICAgIH0KIAotICAgIGF1dG8gcXVpcmtzID0gZm9ybWF0dGlu
Z0NvbnRleHQoKS5xdWlya3MoKTsKKyAgICBhdXRvIHF1aXJrcyA9IEJsb2NrRm9ybWF0dGluZ1F1
aXJrcyB7IGZvcm1hdHRpbmdDb250ZXh0KCkgfTsKICAgICBpZiAoIXF1aXJrcy5uZWVkc1N0cmV0
Y2hpbmcobGF5b3V0Qm94KSkKICAgICAgICAgcmV0dXJuIGNvbnRlbnRIZWlnaHRBbmRNYXJnaW47
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
YmxvY2svQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmNwcAppbmRleCA2
MDg4ZGJlZGVjMThhZWNmY2ExNGMzZDk5ZTY0OTI3NzRjZjhmNjA2Li5iNTRkNTI3NTViMzg2NDZm
MWI3ZGQwMjc0ZGU1MDRhM2VkZmZjNjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL0Jsb2NrRm9ybWF0dGluZ1F1aXJrcy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja0Zv
cm1hdHRpbmdRdWlya3MuY3BwCkBAIC04OCw3ICs4OCw4IEBAIExheW91dFVuaXQgQmxvY2tGb3Jt
YXR0aW5nUXVpcmtzOjpzdHJldGNoZWRJbkZsb3dIZWlnaHQoY29uc3QgQm94JiBsYXlvdXRCb3gs
IENvCiAgICAgYm9keUJveENvbnRlbnRIZWlnaHQgLT0gYm9keUJveEdlb21ldHJ5LnZlcnRpY2Fs
Qm9yZGVyKCkgKyBib2R5Qm94R2VvbWV0cnkudmVydGljYWxQYWRkaW5nKCkudmFsdWVPcigwKTsK
ICAgICAvLyBCb2R5IGJveCBuZXZlciBjb2xsYXBzZXMgaXRzIHZlcnRpY2FsIG1hcmdpbnMgd2l0
aCB0aGUgZG9jdW1lbnQgYm94IGJ1dCBpdCBtaWdodCBjb2xsYXBzZSBpdHMgbWFyZ2luIHdpdGgg
aXRzIGRlc2NlbmRhbnRzLgogICAgIGF1dG8gbm9uQ29sbGFwc2VkTWFyZ2luID0gY29udGVudEhl
aWdodEFuZE1hcmdpbi5ub25Db2xsYXBzZWRNYXJnaW47Ci0gICAgYXV0byBjb2xsYXBzZWRNYXJn
aW4gPSBmb3JtYXR0aW5nQ29udGV4dC5tYXJnaW5Db2xsYXBzZSgpLmNvbGxhcHNlZFZlcnRpY2Fs
VmFsdWVzKGxheW91dEJveCwgbm9uQ29sbGFwc2VkTWFyZ2luKS5jb2xsYXBzZWRWYWx1ZXM7Cisg
ICAgYXV0byBtYXJnaW5Db2xsYXBzZSA9IEJsb2NrTWFyZ2luQ29sbGFwc2UgeyBmb3JtYXR0aW5n
Q29udGV4dCB9OworICAgIGF1dG8gY29sbGFwc2VkTWFyZ2luID0gbWFyZ2luQ29sbGFwc2UuY29s
bGFwc2VkVmVydGljYWxWYWx1ZXMobGF5b3V0Qm94LCBub25Db2xsYXBzZWRNYXJnaW4pLmNvbGxh
cHNlZFZhbHVlczsKICAgICBhdXRvIHVzZWRWZXJ0aWNhbE1hcmdpbiA9IGNvbGxhcHNlZE1hcmdp
bi5iZWZvcmUudmFsdWVPcihub25Db2xsYXBzZWRNYXJnaW4uYmVmb3JlKTsKICAgICB1c2VkVmVy
dGljYWxNYXJnaW4gKz0gY29sbGFwc2VkTWFyZ2luLmlzQ29sbGFwc2VkVGhyb3VnaCA/IG5vbkNv
bGxhcHNlZE1hcmdpbi5hZnRlciA6IGNvbGxhcHNlZE1hcmdpbi5hZnRlci52YWx1ZU9yKG5vbkNv
bGxhcHNlZE1hcmdpbi5hZnRlcik7CiAgICAgYm9keUJveENvbnRlbnRIZWlnaHQgLT0gdXNlZFZl
cnRpY2FsTWFyZ2luOwpAQCAtOTgsNyArOTksNyBAQCBMYXlvdXRVbml0IEJsb2NrRm9ybWF0dGlu
Z1F1aXJrczo6c3RyZXRjaGVkSW5GbG93SGVpZ2h0KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBDbwog
ICAgIGJvZHlCb3hDb250ZW50SGVpZ2h0IC09IGRvY3VtZW50Qm94R2VvbWV0cnkudmVydGljYWxC
b3JkZXIoKSArIGRvY3VtZW50Qm94R2VvbWV0cnkudmVydGljYWxQYWRkaW5nKCkudmFsdWVPcigw
KTsKICAgICAvLyBIb3dldmVyIHRoZSBub24taW4tZmxvdyBkb2N1bWVudCBib3gncyB2ZXJ0aWNh
bCBtYXJnaW5zIGFyZSBpZ25vcmVkLiBUaGV5IGRvbid0IGFmZmVjdCB0aGUgYm9keSBib3gncyBj
b250ZW50IGhlaWdodC4KICAgICBpZiAoZG9jdW1lbnRCb3guaXNJbkZsb3coKSkgewotICAgICAg
ICBhdXRvIGdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQuZ2VvbWV0cnkoKTsKKyAgICAgICAg
YXV0byBnZW9tZXRyeSA9IEJsb2NrRm9ybWF0dGluZ0dlb21ldHJ5IHsgZm9ybWF0dGluZ0NvbnRl
eHQgfTsKICAgICAgICAgYXV0byBwcmVjb21wdXRlRG9jdW1lbnRCb3hWZXJ0aWNhbE1hcmdpbiA9
IGdlb21ldHJ5LmNvbXB1dGVkVmVydGljYWxNYXJnaW4oZG9jdW1lbnRCb3gsIGdlb21ldHJ5LmNv
bnN0cmFpbnRzRm9ySW5GbG93Q29udGVudChpbml0aWFsQ29udGFpbmluZ0Jsb2NrLCBGb3JtYXR0
aW5nQ29udGV4dDo6RXNjYXBlUmVhc29uOjpCb2R5U3RyZXRjaGVzVG9WaWV3cG9ydFF1aXJrKS5o
b3Jpem9udGFsKTsKICAgICAgICAgYm9keUJveENvbnRlbnRIZWlnaHQgLT0gcHJlY29tcHV0ZURv
Y3VtZW50Qm94VmVydGljYWxNYXJnaW4uYmVmb3JlLnZhbHVlT3IoMCkgKyBwcmVjb21wdXRlRG9j
dW1lbnRCb3hWZXJ0aWNhbE1hcmdpbi5hZnRlci52YWx1ZU9yKDApOwogICAgIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svQmxvY2tN
YXJnaW5Db2xsYXBzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRl
eHRzL2Jsb2NrL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCmluZGV4IDkyZDhjZDI4ZWRkOTdhODZk
NmFlZjAzYzgyOTgzN2Q1YTM3MjNiMjIuLmQ3N2NkZmYxNjBhMzg3Y2RjMTZhZGUxMWM1MTQxNzQ5
MTk5OTQ4ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvYmxvY2svQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcApA
QCAtODcsNiArODcsMTEgQEAgQmxvY2tNYXJnaW5Db2xsYXBzZTo6QmxvY2tNYXJnaW5Db2xsYXBz
ZShjb25zdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0JiBibG9ja0Zvcm0KIHsKIH0KIAorQmxvY2tG
b3JtYXR0aW5nUXVpcmtzIEJsb2NrTWFyZ2luQ29sbGFwc2U6OnF1aXJrcygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIEJsb2NrRm9ybWF0dGluZ1F1aXJrcyB7IGZvcm1hdHRpbmdDb250ZXh0KCkgfTsK
K30KKwogYm9vbCBCbG9ja01hcmdpbkNvbGxhcHNlOjpoYXNDbGVhcmFuY2UoY29uc3QgQm94JiBs
YXlvdXRCb3gpIGNvbnN0CiB7CiAgICAgaWYgKCFsYXlvdXRCb3guaGFzRmxvYXRDbGVhcigpKQpA
QCAtMTIwLDcgKzEyNSw3IEBAIGJvb2wgQmxvY2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVmb3Jl
Q29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkJlZm9yZShjb25zdCBCb3gmCiAgICAgLy8gaHR0cHM6
Ly93d3cudzMub3JnL1RSL0NTUzIxL2JveC5odG1sI2NvbGxhcHNpbmctbWFyZ2lucwogICAgIEFT
U0VSVChsYXlvdXRCb3guaXNCbG9ja0xldmVsQm94KCkpOwogCi0gICAgaWYgKGZvcm1hdHRpbmdD
b250ZXh0KCkucXVpcmtzKCkuc2hvdWxkQ29sbGFwc2VNYXJnaW5CZWZvcmVXaXRoUGFyZW50TWFy
Z2luQmVmb3JlKGxheW91dEJveCkpCisgICAgaWYgKHF1aXJrcygpLnNob3VsZENvbGxhcHNlTWFy
Z2luQmVmb3JlV2l0aFBhcmVudE1hcmdpbkJlZm9yZShsYXlvdXRCb3gpKQogICAgICAgICByZXR1
cm4gdHJ1ZTsKIAogICAgIC8vIE1hcmdpbnMgYmV0d2VlbiBhIGZsb2F0ZWQgYm94IGFuZCBhbnkg
b3RoZXIgYm94IGRvIG5vdCBjb2xsYXBzZS4KQEAgLTI1OCw3ICsyNjMsNyBAQCBib29sIEJsb2Nr
TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkFmdGVy
KGNvbnN0IEJveCYgbAogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNCbG9ja0xldmVsQm94KCkp
OwogCi0gICAgaWYgKGZvcm1hdHRpbmdDb250ZXh0KCkucXVpcmtzKCkuc2hvdWxkQ29sbGFwc2VN
YXJnaW5BZnRlcldpdGhQYXJlbnRNYXJnaW5BZnRlcihsYXlvdXRCb3gpKQorICAgIGlmIChxdWly
a3MoKS5zaG91bGRDb2xsYXBzZU1hcmdpbkFmdGVyV2l0aFBhcmVudE1hcmdpbkFmdGVyKGxheW91
dEJveCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgLy8gTWFyZ2lucyBiZXR3ZWVuIGEg
ZmxvYXRlZCBib3ggYW5kIGFueSBvdGhlciBib3ggZG8gbm90IGNvbGxhcHNlLgpAQCAtMzQ5LDcg
KzM1NCw3IEBAIGJvb2wgQmxvY2tNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQWZ0ZXJDb2xsYXBzZXNX
aXRoTGFzdEluRmxvd0NoaWxkTWFyZ2luQWZ0ZXIoY29uCiAKICAgICAvLyBUaGlzIGlzIGEgcXVp
cmsgYmVoYXZpb3I6IFdoZW4gdGhlIG1hcmdpbiBhZnRlciBvZiB0aGUgbGFzdCBpbmZsb3cgY2hp
bGQgKG9yIGEgcHJldmlvdXMgc2libGluZyB3aXRoIGNvbGxhcHNlZCB0aHJvdWdoIG1hcmdpbnMp
CiAgICAgLy8gY29sbGFwc2VzIHdpdGggYSBxdWlyayBwYXJlbnQncyB0aGUgbWFyZ2luIGJlZm9y
ZSwgdGhlbiB0aGUgc2FtZSBtYXJnaW4gYWZ0ZXIgZG9lcyBub3QgY29sbGFwc2VzIHdpdGggdGhl
IHBhcmVudCdzIG1hcmdpbiBhZnRlci4KLSAgICBpZiAoZm9ybWF0dGluZ0NvbnRleHQoKS5xdWly
a3MoKS5zaG91bGRJZ25vcmVDb2xsYXBzZWRRdWlya01hcmdpbihsYXlvdXRCb3gpICYmIG1hcmdp
bkFmdGVyQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkJlZm9yZShsYXN0SW5GbG93Q2hpbGQpKQor
ICAgIGlmIChxdWlya3MoKS5zaG91bGRJZ25vcmVDb2xsYXBzZWRRdWlya01hcmdpbihsYXlvdXRC
b3gpICYmIG1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpbkJlZm9yZShsYXN0SW5G
bG93Q2hpbGQpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKQEAg
LTUwMiw3ICs1MDcsNyBAQCBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQ
YWlyOjpWYWx1ZXMgQmxvY2tNYXJnaW5Db2xsYXBzZTo6cG9zaXRpdgogICAgIC8vIDIuIEdhdGhl
ciBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgbWFyZ2luIHZhbHVlcyBmcm9tIHByZXZpb3VzIGluZmxv
dyBzaWJsaW5nIGlmIG1hcmdpbnMgYXJlIGFkam9pbmluZy4KICAgICAvLyAzLiBDb21wdXRlIG1p
bi9tYXggcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIGNvbGxhcHNlZCBtYXJnaW4gdmFsdWVzIHVzaW5n
IG5vbi1jb2xscGFzZWQgY29tcHV0ZWQgbWFyZ2luIGJlZm9yZS4KICAgICBhdXRvIGNvbGxhcHNl
ZE1hcmdpbkJlZm9yZSA9IGNvbXB1dGVkUG9zaXRpdmVBbmROZWdhdGl2ZU1hcmdpbihmaXJzdENo
aWxkQ29sbGFwc2VkTWFyZ2luQmVmb3JlKCksIHByZXZpb3VTaWJsaW5nQ29sbGFwc2VkTWFyZ2lu
QWZ0ZXIoKSk7Ci0gICAgaWYgKGNvbGxhcHNlZE1hcmdpbkJlZm9yZS5pc1F1aXJrICYmIGZvcm1h
dHRpbmdDb250ZXh0KCkucXVpcmtzKCkuc2hvdWxkSWdub3JlQ29sbGFwc2VkUXVpcmtNYXJnaW4o
bGF5b3V0Qm94KSkKKyAgICBpZiAoY29sbGFwc2VkTWFyZ2luQmVmb3JlLmlzUXVpcmsgJiYgcXVp
cmtzKCkuc2hvdWxkSWdub3JlQ29sbGFwc2VkUXVpcmtNYXJnaW4obGF5b3V0Qm94KSkKICAgICAg
ICAgY29sbGFwc2VkTWFyZ2luQmVmb3JlID0geyB9OwogCiAgICAgVXNlZFZlcnRpY2FsTWFyZ2lu
OjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIG5vbkNvbGxhcHNlZEJlZm9yZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2sv
QmxvY2tNYXJnaW5Db2xsYXBzZS5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9ibG9jay9CbG9ja01hcmdpbkNvbGxhcHNlLmgKaW5kZXggZmQwZTM4NzlhYjU4Y2Y1
OTc2ZTliYjM0N2ZlNWRiN2RhMWIyYjkzMy4uZWVhYTkxNTZjZWNjOTFiMmFhYzYyOTFhODI2MWFl
MmZjYzkyY2FmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9ibG9jay9CbG9ja01hcmdpbkNvbGxhcHNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9CbG9ja01hcmdpbkNvbGxhcHNlLmgKQEAg
LTM1LDYgKzM1LDggQEAgbmFtZXNwYWNlIExheW91dCB7CiAvLyBUaGlzIGNsYXNzIGltcGxlbWVu
dHMgbWFyZ2luIGNvbGxhcHNpbmcgZm9yIGJsb2NrIGZvcm1hdHRpbmcgY29udGV4dC4KIGNsYXNz
IEJsb2NrTWFyZ2luQ29sbGFwc2UgewogcHVibGljOgorICAgIEJsb2NrTWFyZ2luQ29sbGFwc2Uo
Y29uc3QgQmxvY2tGb3JtYXR0aW5nQ29udGV4dCYpOworCiAgICAgVXNlZFZlcnRpY2FsTWFyZ2lu
IGNvbGxhcHNlZFZlcnRpY2FsVmFsdWVzKGNvbnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6
Tm9uQ29sbGFwc2VkVmFsdWVzKTsKIAogICAgIFByZWNvbXB1dGVkTWFyZ2luQmVmb3JlIHByZWNv
bXB1dGVkTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29s
bGFwc2VkVmFsdWVzKTsKQEAgLTUxLDEyICs1MywxMSBAQCBwdWJsaWM6CiAgICAgYm9vbCBtYXJn
aW5BZnRlckNvbGxhcHNlc1dpdGhOZXh0U2libGluZ01hcmdpbkJlZm9yZShjb25zdCBCb3gmKSBj
b25zdDsKICAgICBib29sIG1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0aFNpYmxpbmdNYXJnaW5CZWZv
cmVXaXRoQ2xlYXJhbmNlKGNvbnN0IEJveCYpIGNvbnN0OwogCisgICAgVXNlZFZlcnRpY2FsTWFy
Z2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIGNvbXB1dGVkUG9zaXRpdmVBbmRO
ZWdhdGl2ZU1hcmdpbihVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWly
OjpWYWx1ZXMsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZh
bHVlcykgY29uc3Q7CisKICAgICBib29sIG1hcmdpbnNDb2xsYXBzZVRocm91Z2goY29uc3QgQm94
JikgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgZnJpZW5kIGNsYXNzIEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQ7Ci0gICAgQmxvY2tNYXJnaW5Db2xsYXBzZShjb25zdCBCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0Jik7Ci0KICAgICBlbnVtIGNsYXNzIE1hcmdpblR5cGUgeyBCZWZvcmUsIEFmdGVyIH07CiAg
ICAgVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIHBv
c2l0aXZlTmVnYXRpdmVWYWx1ZXMoY29uc3QgQm94JiwgTWFyZ2luVHlwZSkgY29uc3Q7CiAgICAg
VXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIHBvc2l0
aXZlTmVnYXRpdmVNYXJnaW5CZWZvcmUoY29uc3QgQm94JiwgVXNlZFZlcnRpY2FsTWFyZ2luOjpO
b25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0OwpAQCAtNjUsMTEgKzY2LDExIEBAIHByaXZhdGU6CiAg
ICAgVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIHBy
ZWNvbXB1dGVkUG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShjb25zdCBCb3gmLCBVc2VkVmVy
dGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcykgY29uc3Q7CiAgICAgVXNlZFZlcnRpY2Fs
TWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIHByZWNvbXB1dGVkUG9zaXRp
dmVOZWdhdGl2ZVZhbHVlcyhjb25zdCBCb3gmKSBjb25zdDsKIAotICAgIFVzZWRWZXJ0aWNhbE1h
cmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBjb21wdXRlZFBvc2l0aXZlQW5k
TmVnYXRpdmVNYXJnaW4oVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFp
cjo6VmFsdWVzLCBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpW
YWx1ZXMpIGNvbnN0OwogICAgIE9wdGlvbmFsPExheW91dFVuaXQ+IG1hcmdpblZhbHVlKFVzZWRW
ZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcykgY29uc3Q7CiAK
ICAgICBib29sIGhhc0NsZWFyYW5jZShjb25zdCBCb3gmKSBjb25zdDsKIAorICAgIEJsb2NrRm9y
bWF0dGluZ1F1aXJrcyBxdWlya3MoKSBjb25zdDsKICAgICBMYXlvdXRTdGF0ZSYgbGF5b3V0U3Rh
dGUoKSB7IHJldHVybiBtX2Jsb2NrRm9ybWF0dGluZ0NvbnRleHQubGF5b3V0U3RhdGUoKTsgfQog
ICAgIGNvbnN0IExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmxv
Y2tGb3JtYXR0aW5nQ29udGV4dC5sYXlvdXRTdGF0ZSgpOyB9CiAgICAgY29uc3QgQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiBtX2Jsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvYmxvY2svUHJlY29tcHV0ZWRCbG9ja01hcmdpbkNvbGxhcHNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svUHJlY29t
cHV0ZWRCbG9ja01hcmdpbkNvbGxhcHNlLmNwcAppbmRleCBjNWIyOWI0MmRlY2M5N2NlZTE5ZjNm
NmYzNjk5OTI1NjFiMzU5NzI4Li42ZmViMTBkM2MzYTE1Y2NlNTQ1NjQxZjA0MDUxZjI2NjUyZTY4
NGE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2Jsb2NrL1ByZWNvbXB1dGVkQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay9QcmVjb21wdXRlZEJsb2NrTWFy
Z2luQ29sbGFwc2UuY3BwCkBAIC00NSw3ICs0NSw3IEBAIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9z
aXRpdmVBbmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBCbG9ja01hcmdpbkNvbGxhcHNlOjpwcmVjb21w
CiAgICAgaWYgKGJsb2NrRm9ybWF0dGluZ1N0YXRlLmhhc1VzZWRWZXJ0aWNhbE1hcmdpbihsYXlv
dXRCb3gpKQogICAgICAgICByZXR1cm4gYmxvY2tGb3JtYXR0aW5nU3RhdGUudXNlZFZlcnRpY2Fs
TWFyZ2luKGxheW91dEJveCkucG9zaXRpdmVBbmROZWdhdGl2ZVZhbHVlcy5iZWZvcmU7CiAKLSAg
ICBhdXRvIGdlb21ldHJ5ID0gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9tZXRyeSgpOworICAgIGF1
dG8gZ2VvbWV0cnkgPSBCbG9ja0Zvcm1hdHRpbmdHZW9tZXRyeSB7IGZvcm1hdHRpbmdDb250ZXh0
KCkgfTsKICAgICBhdXRvIGhvcml6b250YWxDb25zdHJhaW50cyA9IGdlb21ldHJ5LmNvbnN0cmFp
bnRzRm9ySW5GbG93Q29udGVudChsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpLmhvcml6b250
YWw7CiAgICAgYXV0byBjb21wdXRlZFZlcnRpY2FsTWFyZ2luID0gZ2VvbWV0cnkuY29tcHV0ZWRW
ZXJ0aWNhbE1hcmdpbihsYXlvdXRCb3gsIGhvcml6b250YWxDb25zdHJhaW50cyk7CiAgICAgYXV0
byBub25Db2xsYXBzZWRNYXJnaW4gPSBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZh
bHVlcyB7IGNvbXB1dGVkVmVydGljYWxNYXJnaW4uYmVmb3JlLnZhbHVlT3IoMCksIGNvbXB1dGVk
VmVydGljYWxNYXJnaW4uYWZ0ZXIudmFsdWVPcigwKSB9OwpAQCAtNzIsNyArNzIsNyBAQCBVc2Vk
VmVydGljYWxNYXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgQmxvY2tNYXJn
aW5Db2xsYXBzZTo6cHJlY29tcAogICAgIC8vIDIuIEdhdGhlciBwb3NpdGl2ZSBhbmQgbmVnYXRp
dmUgbWFyZ2luIHZhbHVlcyBmcm9tIHByZXZpb3VzIGluZmxvdyBzaWJsaW5nIGlmIG1hcmdpbnMg
YXJlIGFkam9pbmluZy4KICAgICAvLyAzLiBDb21wdXRlIG1pbi9tYXggcG9zaXRpdmUgYW5kIG5l
Z2F0aXZlIGNvbGxhcHNlZCBtYXJnaW4gdmFsdWVzIHVzaW5nIG5vbi1jb2xscGFzZWQgY29tcHV0
ZWQgbWFyZ2luIGJlZm9yZS4KICAgICBhdXRvIGNvbGxhcHNlZE1hcmdpbkJlZm9yZSA9IGNvbXB1
dGVkUG9zaXRpdmVBbmROZWdhdGl2ZU1hcmdpbihmaXJzdENoaWxkQ29sbGFwc2VkTWFyZ2luQmVm
b3JlKCksIHByZXZpb3VTaWJsaW5nQ29sbGFwc2VkTWFyZ2luQWZ0ZXIoKSk7Ci0gICAgaWYgKGNv
bGxhcHNlZE1hcmdpbkJlZm9yZS5pc1F1aXJrICYmIGZvcm1hdHRpbmdDb250ZXh0KCkucXVpcmtz
KCkuc2hvdWxkSWdub3JlQ29sbGFwc2VkUXVpcmtNYXJnaW4obGF5b3V0Qm94KSkKKyAgICBpZiAo
Y29sbGFwc2VkTWFyZ2luQmVmb3JlLmlzUXVpcmsgJiYgcXVpcmtzKCkuc2hvdWxkSWdub3JlQ29s
bGFwc2VkUXVpcmtNYXJnaW4obGF5b3V0Qm94KSkKICAgICAgICAgY29sbGFwc2VkTWFyZ2luQmVm
b3JlID0geyB9OwogCiAgICAgYXV0byBub25Db2xsYXBzZWRCZWZvcmUgPSBVc2VkVmVydGljYWxN
YXJnaW46OlBvc2l0aXZlQW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgeyB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9ibG9jay90YWJsZXdyYXBw
ZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvYmxvY2svdGFibGV3cmFwcGVyL1RhYmxlV3JhcHBl
ckJsb2NrRm9ybWF0dGluZ1F1aXJrcy5jcHAKaW5kZXggZWYzY2EwZjJmM2E0MGEwMWMwM2JiMzc0
M2Q1N2RmMzA2MDM2OWRiYy4uYmY1OTMzOTYzOWFiNTZlOTExNGM5NTE0ZTI2NzIwMzBlOGNmZmUy
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9i
bG9jay90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nUXVpcmtzLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2Jsb2NrL3RhYmxl
d3JhcHBlci9UYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdRdWlya3MuY3BwCkBAIC00MSwxMSAr
NDEsMTIgQEAgVGFibGVXcmFwcGVyUXVpcmtzOjpUYWJsZVdyYXBwZXJRdWlya3MoY29uc3QgVGFi
bGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4dCYKIAogT3B0aW9uYWw8TGF5b3V0VW5pdD4g
VGFibGVXcmFwcGVyUXVpcmtzOjpvdmVycmlkZGVuVGFibGVIZWlnaHQoY29uc3QgQ29udGFpbmVy
Qm94JiB0YWJsZUJveCkgY29uc3QKIHsKKyAgICBhdXRvIGdlb21ldHJ5ID0gQmxvY2tGb3JtYXR0
aW5nR2VvbWV0cnkgeyBmb3JtYXR0aW5nQ29udGV4dCgpIH07CiAgICAgaWYgKGxheW91dFN0YXRl
KCkuaW5RdWlya3NNb2RlKCkpIHsKICAgICAgICAgLy8gSW4gcXVpcmtzIG1vZGUgYWx3YXlzIHVz
ZSB0aGUgY29udGVudCBoZWlnaHQuIE5vdGUgdGhhdCB0aGUgdGFibGVzIHdpdGggY29udGVudCB0
YWtlIGNvbXB1dGVkIHZhbHVlcyBpbnRvIGFjY291bnQuCi0gICAgICAgIHJldHVybiBmb3JtYXR0
aW5nQ29udGV4dCgpLmdlb21ldHJ5KCkuY29udGVudEhlaWdodEZvckZvcm1hdHRpbmdDb250ZXh0
Um9vdCh0YWJsZUJveCk7CisgICAgICAgIHJldHVybiBnZW9tZXRyeS5jb250ZW50SGVpZ2h0Rm9y
Rm9ybWF0dGluZ0NvbnRleHRSb290KHRhYmxlQm94KTsKICAgICB9Ci0gICAgcmV0dXJuIHRhYmxl
Qm94Lmhhc0luRmxvd09yRmxvYXRpbmdDaGlsZCgpID8gZm9ybWF0dGluZ0NvbnRleHQoKS5nZW9t
ZXRyeSgpLmNvbnRlbnRIZWlnaHRGb3JGb3JtYXR0aW5nQ29udGV4dFJvb3QodGFibGVCb3gpIDog
T3B0aW9uYWw8TGF5b3V0VW5pdD4geyB9OworICAgIHJldHVybiB0YWJsZUJveC5oYXNJbkZsb3dP
ckZsb2F0aW5nQ2hpbGQoKSA/IGdlb21ldHJ5LmNvbnRlbnRIZWlnaHRGb3JGb3JtYXR0aW5nQ29u
dGV4dFJvb3QodGFibGVCb3gpIDogT3B0aW9uYWw8TGF5b3V0VW5pdD4geyB9OwogfQogCiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>