<?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>248506</bug_id>
          
          <creation_ts>2022-11-29 16:37:23 -0800</creation_ts>
          <short_desc>[LFC][IFC] Layout bounds should be set on inline boxes only</short_desc>
          <delta_ts>2022-12-02 09:09:18 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>koivisto</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1915469</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2022-11-29 16:37:23 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1915471</commentid>
    <comment_count>1</comment_count>
      <attachid>463795</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-11-29 16:48:58 -0800</bug_when>
    <thetext>Created attachment 463795
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1915670</commentid>
    <comment_count>2</comment_count>
      <attachid>463811</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-11-30 12:18:02 -0800</bug_when>
    <thetext>Created attachment 463811
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1915944</commentid>
    <comment_count>3</comment_count>
      <attachid>463830</attachid>
    <who name="alan">zalan</who>
    <bug_when>2022-12-01 08:08:00 -0800</bug_when>
    <thetext>Created attachment 463830
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1916230</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-12-02 09:08:45 -0800</bug_when>
    <thetext>Committed 257288@main (7c7fc84ee90a): &lt;https://commits.webkit.org/257288@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 463830.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1916231</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-12-02 09:09:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/102907506&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463795</attachid>
            <date>2022-11-29 16:48:58 -0800</date>
            <delta_ts>2022-11-30 12:18:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-248506-20221129164857.patch</filename>
            <type>text/plain</type>
            <size>22247</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBjY2NiYzkwOTFhZjBjZWYwZjgzYTE5MDg0NTg2OTEyNTgwM2Q1Zjg2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMjkgTm92IDIwMjIgMTY6Mzc6MzYgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbTEZDXVtJ
RkNdIExheW91dCBib3VuZHMgc2hvdWxkIGJlIHNldCBvbiBpbmxpbmUgYm94ZXMgb25seQogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0ODUwNgoKUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCgoxLiBEbyBub3Qgc2V0ICJsYXlvdXQgYm91bmRzIiBvbiBub24taW5s
aW5lIGJveGVzIChzcGVjIGFncmVlcyBoZXJlKQoyLiBNYWtlIHN1cmUgaGFyZCBsaW5lIGJyZWFr
cyBzdGlsbCBzdHJldGNoIHRoZWlyIHBhcmVudCBpbmxpbmUgYm94ZXMgd2hlbiBhcHBsaWNhYmxl
CgpDdXJyZW50IGJlaGF2aW9yOgoxLiBMaW5lIGJyZWFrIGJveCBnZXRzIGNvbXB1dGVkIGxheW91
dCBib3VuZHMKMi4gV2hlbiB0aGUgbGluZSBicmVhayBib3ggYWZmZWN0cyB0aGUgbGluZSBib3gs
IHdlIHN0cmV0Y2ggdGhlIGxpbmUgYnkgdGhlIGNvbXB1dGVkIGxheW91dCBib3VuZHMgdmFsdWUK
ClBhdGNoIGJlaGF2aW9yOgoxLiBMaW5lIGJyZWFrIGJveCBtYWtlcyB0aGUgcGFyZW50IGlubGlu
ZSBib3ggImNvbnRlbnRmdWwiIHdoZW4gYXBwbGljYWJsZSAodGhpcyBpcyB0aGUgc2FtZSBhcyAj
MiBhdCBjdXJyZW50IGJlaGF2aW9yKQoyLiBUaGUgImNvbnRlbnRmdWwiIGlubGluZSBib3ggKG1v
c3RseSB0aGUgcm9vdCBpbmxpbmUgYm94KSBzdHJldGNoZXMgdGhlIGxpbmUgYm94IGJ5IHRoZSBj
b21wdXRlZCBsYXlvdXQgYm91bmRzLgpJdCBtYWtlcyBicmVhayBib3ggYmVoYXZlIGxpa2UgcmVn
dWxhciAidGV4dCBjb250ZW50Iiwgd2hlcmUgdGhlIGNvbnRlbnQgaW5kaXJlY3RseSBhZmZlY3Rz
IHRoZSBsaW5lIGJveCBoZWlnaHQuCgpUaGlzIHBhdGNoIGlzIGFsc28gaW4gcHJlcGFyYXRpb24g
Zm9yIHN1cHBvcnRpbmcgdGV4dC1lZGdlLCB3aGVyZSB0ZXh0LWVkZ2UgYWZmZWN0cyB0aGUgbGF5
b3V0IGJvdW5kcyB2YWx1ZS4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmNwcDoKKFdlYkNvcmU6OkxheW91
dDo6SW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5OjppbmxpbmVMZXZlbEJveEFmZmVjdHNMaW5lQm94
IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaDoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmNwcDoKKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ1F1aXJrczo6bGluZUJyZWFrQm94QWZmZWN0c1Bh
cmVudElubGluZUJveCk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdRdWlya3M6
OmlubGluZUJveEFmZmVjdHNMaW5lQm94IGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5l
Rm9ybWF0dGluZ1F1aXJrczo6aW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveCBjb25zdCk6IERl
bGV0ZWQuCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcDoKKFdlYkNvcmU6Okxh
eW91dDo6TGluZUJveEJ1aWxkZXI6OnNldFZlcnRpY2FsUHJvcGVydGllc0ZvcklubGluZUxldmVs
Qm94IGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGluZUJveEJ1aWxkZXI6OmNvbnN0cnVjdElu
bGluZUxldmVsQm94ZXMpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94QnVpbGRlcjo6YWRqdXN0
SWRlb2dyYXBoaWNCYXNlbGluZUlmQXBwbGljYWJsZSk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveFZlcnRpY2FsQWxpZ25lci5j
cHA6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3hWZXJ0aWNhbEFsaWduZXI6OmNvbXB1dGVMaW5l
Qm94TG9naWNhbEhlaWdodCBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3hWZXJ0aWNh
bEFsaWduZXI6OmNvbXB1dGVSb290SW5saW5lQm94VmVydGljYWxQb3NpdGlvbiBjb25zdCk6Ci0t
LQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuY3BwICAgICAgIHwgIDggKy0K
IC4uLi9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmggICAgICAgICB8ICAyICstCiAu
Li4vaW5saW5lL0lubGluZUZvcm1hdHRpbmdRdWlya3MuY3BwICAgICAgICAgfCA4MSArKysrKysr
KystLS0tLS0tLS0tCiAuLi4vaW5saW5lL0lubGluZUZvcm1hdHRpbmdRdWlya3MuaCAgICAgICAg
ICAgfCAgMyArLQogLi4uL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAgICAgICAgICAg
IHwgNDMgKysrKystLS0tLQogLi4uL2lubGluZS9JbmxpbmVMaW5lQm94VmVydGljYWxBbGlnbmVy
LmNwcCAgIHwgMTAgKy0tCiA2IGZpbGVzIGNoYW5nZWQsIDc0IGluc2VydGlvbnMoKyksIDczIGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdHZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2Vv
bWV0cnkuY3BwCmluZGV4IGFkMTE0M2MyNjhjNy4uNmFjN2JhNjAxOWUxIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3Jt
YXR0aW5nR2VvbWV0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdHZW9tZXRyeS5jcHAKQEAgLTExOSwxMyAr
MTE5LDE1IEBAIENvbnRlbnRIZWlnaHRBbmRNYXJnaW4gSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5
OjppbmxpbmVCbG9ja0NvbnRlbnRIZWlnaHRBbmRNYXJnCiAgICAgcmV0dXJuIGNvbXBsaWNhdGVk
Q2FzZXMobGF5b3V0Qm94LCBob3Jpem9udGFsQ29uc3RyYWludHMsIG92ZXJyaWRkZW5WZXJ0aWNh
bFZhbHVlcyk7CiB9CiAKLWJvb2wgSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5OjppbmxpbmVMZXZl
bEJveEFmZmVjdHNMaW5lQm94KGNvbnN0IElubGluZUxldmVsQm94JiBpbmxpbmVMZXZlbEJveCwg
Y29uc3QgTGluZUJveCYgbGluZUJveCkgY29uc3QKK2Jvb2wgSW5saW5lRm9ybWF0dGluZ0dlb21l
dHJ5OjppbmxpbmVMZXZlbEJveEFmZmVjdHNMaW5lQm94KGNvbnN0IElubGluZUxldmVsQm94JiBp
bmxpbmVMZXZlbEJveCkgY29uc3QKIHsKICAgICBpZiAoIWlubGluZUxldmVsQm94LmxpbmVCb3hD
b250YWluKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIGlmIChpbmxpbmVMZXZlbEJv
eC5pc0lubGluZUJveCgpIHx8IGlubGluZUxldmVsQm94LmlzTGluZUJyZWFrQm94KCkpCi0gICAg
ICAgIHJldHVybiBsYXlvdXRTdGF0ZSgpLmluU3RhbmRhcmRzTW9kZSgpID8gdHJ1ZSA6IGZvcm1h
dHRpbmdDb250ZXh0KCkuZm9ybWF0dGluZ1F1aXJrcygpLmlubGluZUxldmVsQm94QWZmZWN0c0xp
bmVCb3goaW5saW5lTGV2ZWxCb3gsIGxpbmVCb3gpOworICAgIGlmIChpbmxpbmVMZXZlbEJveC5p
c0xpbmVCcmVha0JveCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGlubGluZUxl
dmVsQm94LmlzSW5saW5lQm94KCkpCisgICAgICAgIHJldHVybiBsYXlvdXRTdGF0ZSgpLmluU3Rh
bmRhcmRzTW9kZSgpID8gdHJ1ZSA6IGZvcm1hdHRpbmdDb250ZXh0KCkuZm9ybWF0dGluZ1F1aXJr
cygpLmlubGluZUJveEFmZmVjdHNMaW5lQm94KGlubGluZUxldmVsQm94KTsKICAgICBpZiAoaW5s
aW5lTGV2ZWxCb3guaXNMaXN0TWFya2VyKCkpCiAgICAgICAgIHJldHVybiBpbmxpbmVMZXZlbEJv
eC5sb2dpY2FsSGVpZ2h0KCk7CiAgICAgaWYgKGlubGluZUxldmVsQm94LmlzQXRvbWljSW5saW5l
TGV2ZWxCb3goKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2Vv
bWV0cnkuaAppbmRleCA1YzBiYzcwMjc2NzcuLmZlMGJlMzc3NjFlZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0
dGluZ0dlb21ldHJ5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmgKQEAgLTQ3LDcgKzQ3LDcgQEAg
cHVibGljOgogICAgIGVudW0gY2xhc3MgSXNJbnRyaW5zaWNXaWR0aE1vZGUgOiB1aW50OF90IHsg
WWVzLCBObyB9OwogICAgIElubGluZUxheW91dFVuaXQgY29tcHV0ZWRUZXh0SW5kZW50KElzSW50
cmluc2ljV2lkdGhNb2RlLCBzdGQ6Om9wdGlvbmFsPGJvb2w+IHByZXZpb3VzTGluZUVuZHNXaXRo
TGluZUJyZWFrLCBJbmxpbmVMYXlvdXRVbml0IGF2YWlsYWJsZVdpZHRoKSBjb25zdDsKIAotICAg
IGJvb2wgaW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveChjb25zdCBJbmxpbmVMZXZlbEJveCYs
IGNvbnN0IExpbmVCb3gmKSBjb25zdDsKKyAgICBib29sIGlubGluZUxldmVsQm94QWZmZWN0c0xp
bmVCb3goY29uc3QgSW5saW5lTGV2ZWxCb3gmKSBjb25zdDsKIAogICAgIElubGluZUxheW91dFVu
aXQgaW5pdGlhbExpbmVIZWlnaHQoYm9vbCBpc0ZpcnN0TGluZSkgY29uc3Q7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGlu
ZUZvcm1hdHRpbmdRdWlya3MuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdD
b250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5jcHAKaW5kZXggOWZhNjg5MTYx
YjExLi5lZWRhNzYyMjJkYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdRdWlya3MuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1h
dHRpbmdRdWlya3MuY3BwCkBAIC03Myw1MiArNzMsNTEgQEAgSW5saW5lTGF5b3V0VW5pdCBJbmxp
bmVGb3JtYXR0aW5nUXVpcmtzOjppbml0aWFsTGluZUhlaWdodCgpIGNvbnN0CiAgICAgcmV0dXJu
IDAuZjsKIH0KIAotYm9vbCBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzOjppbmxpbmVMZXZlbEJveEFm
ZmVjdHNMaW5lQm94KGNvbnN0IElubGluZUxldmVsQm94JiBpbmxpbmVMZXZlbEJveCwgY29uc3Qg
TGluZUJveCYgbGluZUJveCkgY29uc3QKK2Jvb2wgSW5saW5lRm9ybWF0dGluZ1F1aXJrczo6bGlu
ZUJyZWFrQm94QWZmZWN0c1BhcmVudElubGluZUJveChjb25zdCBMaW5lQm94JiBsaW5lQm94KQog
ewotICAgIEFTU0VSVCghbGF5b3V0U3RhdGUoKS5pblN0YW5kYXJkc01vZGUoKSk7Ci0gICAgaWYg
KGlubGluZUxldmVsQm94LmlzTGluZUJyZWFrQm94KCkpIHsKLSAgICAgICAgLy8gSW4gcXVpcmtz
IG1vZGUgbGluZWJyZWFrIGJveGVzICg8YnI+KSBzdG9wIGFmZmVjdGluZyB0aGUgbGluZSBib3gg
d2hlbiAoYXNzdW1lIDxicj4gaXMgbmVzdGVkIGUuZy4gPHNwYW4gc3R5bGU9ImZvbnQtc2l6ZTog
MTAwcHgiPjxicj48L3NwYW4+KQotICAgICAgICAvLyAxLiB0aGUgcm9vdCBpbmxpbmUgYm94IGhh
cyBjb250ZW50IDxkaXY+Y29udGVudDxicj4vZGl2PgotICAgICAgICAvLyAyLiB0aGVyZSdzIGF0
IGxlYXN0IG9uZSBhdG9taWMgaW5saW5lIGxldmVsIGJveCBvbiB0aGUgbGluZSBlLmcgPGRpdj48
aW1nPjxicj48L2Rpdj4gb3IgPGRpdj48c3Bhbj48aW1nPjwvc3Bhbj48YnI+PC9kaXY+Ci0gICAg
ICAgIC8vIDMuIHRoZXJlJ3MgYXQgbGVhc3Qgb25lIGlubGluZSBib3ggd2l0aCBjb250ZW50IGUu
Zy4gPGRpdj48c3Bhbj5jb250ZW50PC9zcGFuPjxicj48L2Rpdj4KLSAgICAgICAgaWYgKGxpbmVC
b3gucm9vdElubGluZUJveCgpLmhhc0NvbnRlbnQoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKLSAgICAgICAgaWYgKGxpbmVCb3guaGFzQXRvbWljSW5saW5lTGV2ZWxCb3goKSkKKyAgICAv
LyBJbiBxdWlya3MgbW9kZSBsaW5lYnJlYWsgYm94ZXMgKDxicj4pIHN0b3AgYWZmZWN0aW5nIHRo
ZSBsaW5lIGJveCB3aGVuIChhc3N1bWUgPGJyPiBpcyBuZXN0ZWQgZS5nLiA8c3BhbiBzdHlsZT0i
Zm9udC1zaXplOiAxMDBweCI+PGJyPjwvc3Bhbj4pCisgICAgLy8gMS4gdGhlIHJvb3QgaW5saW5l
IGJveCBoYXMgY29udGVudCA8ZGl2PmNvbnRlbnQ8YnI+L2Rpdj4KKyAgICAvLyAyLiB0aGVyZSdz
IGF0IGxlYXN0IG9uZSBhdG9taWMgaW5saW5lIGxldmVsIGJveCBvbiB0aGUgbGluZSBlLmcgPGRp
dj48aW1nPjxicj48L2Rpdj4gb3IgPGRpdj48c3Bhbj48aW1nPjwvc3Bhbj48YnI+PC9kaXY+Cisg
ICAgLy8gMy4gdGhlcmUncyBhdCBsZWFzdCBvbmUgaW5saW5lIGJveCB3aXRoIGNvbnRlbnQgZS5n
LiA8ZGl2PjxzcGFuPmNvbnRlbnQ8L3NwYW4+PGJyPjwvZGl2PgorICAgIGlmIChsaW5lQm94LnJv
b3RJbmxpbmVCb3goKS5oYXNDb250ZW50KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAobGluZUJveC5oYXNBdG9taWNJbmxpbmVMZXZlbEJveCgpKQorICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgLy8gQXQgdGhpcyBwb2ludCB3ZSBlaXRoZXIgaGF2ZSBvbmx5IHRoZSA8YnI+IG9u
IHRoZSBsaW5lIG9yIGlubGluZSBib3hlcyB3aXRoIG9yIHdpdGhvdXQgY29udGVudC4KKyAgICBh
dXRvJiBpbmxpbmVMZXZlbEJveGVzID0gbGluZUJveC5ub25Sb290SW5saW5lTGV2ZWxCb3hlcygp
OworICAgIEFTU0VSVCghaW5saW5lTGV2ZWxCb3hlcy5pc0VtcHR5KCkpOworICAgIGlmIChpbmxp
bmVMZXZlbEJveGVzLnNpemUoKSA9PSAxKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBmb3Ig
KGF1dG8mIGlubGluZUxldmVsQm94IDogbGluZUJveC5ub25Sb290SW5saW5lTGV2ZWxCb3hlcygp
KSB7CisgICAgICAgIC8vIEZpbHRlciBvdXQgZW1wdHkgaW5saW5lIGJveGVzIGUuZy4gPGRpdj48
c3Bhbj48L3NwYW4+PHNwYW4+PC9zcGFuPjxicj48L2Rpdj4KKyAgICAgICAgaWYgKGlubGluZUxl
dmVsQm94LmlzSW5saW5lQm94KCkgJiYgaW5saW5lTGV2ZWxCb3guaGFzQ29udGVudCgpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICAvLyBBdCB0aGlzIHBvaW50IHdlIGVpdGhl
ciBoYXZlIG9ubHkgdGhlIDxicj4gb24gdGhlIGxpbmUgb3IgaW5saW5lIGJveGVzIHdpdGggb3Ig
d2l0aG91dCBjb250ZW50LgotICAgICAgICBhdXRvJiBpbmxpbmVMZXZlbEJveGVzID0gbGluZUJv
eC5ub25Sb290SW5saW5lTGV2ZWxCb3hlcygpOwotICAgICAgICBBU1NFUlQoIWlubGluZUxldmVs
Qm94ZXMuaXNFbXB0eSgpKTsKLSAgICAgICAgaWYgKGlubGluZUxldmVsQm94ZXMuc2l6ZSgpID09
IDEpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgZm9yIChhdXRvJiBpbmxpbmVM
ZXZlbEJveCA6IGxpbmVCb3gubm9uUm9vdElubGluZUxldmVsQm94ZXMoKSkgewotICAgICAgICAg
ICAgLy8gRmlsdGVyIG91dCBlbXB0eSBpbmxpbmUgYm94ZXMgZS5nLiA8ZGl2PjxzcGFuPjwvc3Bh
bj48c3Bhbj48L3NwYW4+PGJyPjwvZGl2PgotICAgICAgICAgICAgaWYgKGlubGluZUxldmVsQm94
LmlzSW5saW5lQm94KCkgJiYgaW5saW5lTGV2ZWxCb3guaGFzQ29udGVudCgpKQotICAgICAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gdHJ1ZTsK
K30KKworYm9vbCBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzOjppbmxpbmVCb3hBZmZlY3RzTGluZUJv
eChjb25zdCBJbmxpbmVMZXZlbEJveCYgaW5saW5lTGV2ZWxCb3gpIGNvbnN0Cit7CisgICAgQVNT
RVJUKCFsYXlvdXRTdGF0ZSgpLmluU3RhbmRhcmRzTW9kZSgpKTsKKyAgICBBU1NFUlQoaW5saW5l
TGV2ZWxCb3guaXNJbmxpbmVCb3goKSk7CisgICAgLy8gSW5saW5lIGJveGVzIChlLmcuIHJvb3Qg
aW5saW5lIGJveCBvciA8c3Bhbj4pIGFmZmVjdHMgbGluZSBib3hlcyBlaXRoZXIgdGhyb3VnaCB0
aGUgc3RydXQgb3IgYWN0dWFsIGNvbnRlbnQuCisgICAgaWYgKGlubGluZUxldmVsQm94Lmhhc0Nv
bnRlbnQoKSkKICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKGlubGluZUxldmVsQm94Lmlz
Um9vdElubGluZUJveCgpKSB7CisgICAgICAgIC8vIFRoaXMgcm9vdCBpbmxpbmUgYm94IGhhcyBu
byBkaXJlY3QgdGV4dCBjb250ZW50IGFuZCB3ZSBhcmUgaW4gbm9uLXN0YW5kYXJkcyBtb2RlLgor
ICAgICAgICAvLyBOb3cgYWNjb3JkaW5nIHRvIGxlZ2FjeSBsaW5lIGxheW91dCwgd2UgbmVlZCB0
byBhcHBseSB0aGUgZm9sbG93aW5nIGxpc3QtaXRlbSBzcGVjaWZpYyBxdWlyazoKKyAgICAgICAg
Ly8gV2UgZG8gbm90IGNyZWF0ZSBtYXJrZXJzIGZvciBsaXN0IGl0ZW1zIHdoZW4gdGhlIGxpc3Qt
c3R5bGUtdHlwZSBpcyBub25lLCB3aGlsZSBvdGhlciBicm93c2VycyBkby4KKyAgICAgICAgLy8g
VGhlIHNpZGUgZWZmZWN0IG9mIGhhdmluZyBubyBtYXJrZXIgaXMgdGhhdCBpbiBxdWlya3MgbW9k
ZSB3ZSBoYXZlIHRvIHNwZWNpZmljYWxseSBjaGVjayBmb3IgbGlzdC1pdGVtCisgICAgICAgIC8v
IGFuZCBtYWtlIHN1cmUgaXQgaXMgdHJlYXRlZCBhcyBpZiBpdCBoYWQgY29udGVudCBhbmQgc3Ry
ZXRjaGVkIHRoZSBsaW5lLgorICAgICAgICAvLyBzZWUgTGVnYWN5SW5saW5lRmxvd0JveCBjJ3Rv
ci4KKyAgICAgICAgcmV0dXJuIGlubGluZUxldmVsQm94LmxheW91dEJveCgpLnN0eWxlKCkuaXNP
cmlnaW5hbERpc3BsYXlMaXN0SXRlbVR5cGUoKTsKICAgICB9Ci0gICAgaWYgKGlubGluZUxldmVs
Qm94LmlzSW5saW5lQm94KCkpIHsKLSAgICAgICAgLy8gSW5saW5lIGJveGVzIChlLmcuIHJvb3Qg
aW5saW5lIGJveCBvciA8c3Bhbj4pIGFmZmVjdHMgbGluZSBib3hlcyBlaXRoZXIgdGhyb3VnaCB0
aGUgc3RydXQgb3IgYWN0dWFsIGNvbnRlbnQuCi0gICAgICAgIGlmIChpbmxpbmVMZXZlbEJveC5o
YXNDb250ZW50KCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgaWYgKGlubGlu
ZUxldmVsQm94LmlzUm9vdElubGluZUJveCgpKSB7Ci0gICAgICAgICAgICAvLyBUaGlzIHJvb3Qg
aW5saW5lIGJveCBoYXMgbm8gZGlyZWN0IHRleHQgY29udGVudCBhbmQgd2UgYXJlIGluIG5vbi1z
dGFuZGFyZHMgbW9kZS4KLSAgICAgICAgICAgIC8vIE5vdyBhY2NvcmRpbmcgdG8gbGVnYWN5IGxp
bmUgbGF5b3V0LCB3ZSBuZWVkIHRvIGFwcGx5IHRoZSBmb2xsb3dpbmcgbGlzdC1pdGVtIHNwZWNp
ZmljIHF1aXJrOgotICAgICAgICAgICAgLy8gV2UgZG8gbm90IGNyZWF0ZSBtYXJrZXJzIGZvciBs
aXN0IGl0ZW1zIHdoZW4gdGhlIGxpc3Qtc3R5bGUtdHlwZSBpcyBub25lLCB3aGlsZSBvdGhlciBi
cm93c2VycyBkby4KLSAgICAgICAgICAgIC8vIFRoZSBzaWRlIGVmZmVjdCBvZiBoYXZpbmcgbm8g
bWFya2VyIGlzIHRoYXQgaW4gcXVpcmtzIG1vZGUgd2UgaGF2ZSB0byBzcGVjaWZpY2FsbHkgY2hl
Y2sgZm9yIGxpc3QtaXRlbQotICAgICAgICAgICAgLy8gYW5kIG1ha2Ugc3VyZSBpdCBpcyB0cmVh
dGVkIGFzIGlmIGl0IGhhZCBjb250ZW50IGFuZCBzdHJldGNoZWQgdGhlIGxpbmUuCi0gICAgICAg
ICAgICAvLyBzZWUgTGVnYWN5SW5saW5lRmxvd0JveCBjJ3Rvci4KLSAgICAgICAgICAgIHJldHVy
biBpbmxpbmVMZXZlbEJveC5sYXlvdXRCb3goKS5zdHlsZSgpLmlzT3JpZ2luYWxEaXNwbGF5TGlz
dEl0ZW1UeXBlKCk7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gTm9uLXJvb3QgaW5saW5lIGJveGVz
IChlLmcuIDxzcGFuPikuCi0gICAgICAgIGF1dG8mIGJveEdlb21ldHJ5ID0gZm9ybWF0dGluZ0Nv
bnRleHQoKS5nZW9tZXRyeUZvckJveChpbmxpbmVMZXZlbEJveC5sYXlvdXRCb3goKSk7Ci0gICAg
ICAgIGlmIChib3hHZW9tZXRyeS5ob3Jpem9udGFsQm9yZGVyKCkgfHwgYm94R2VvbWV0cnkuaG9y
aXpvbnRhbFBhZGRpbmcoKS52YWx1ZV9vcigwX2x1KSkgewotICAgICAgICAgICAgLy8gSG9yaXpv
bnRhbCBib3JkZXIgYW5kIHBhZGRpbmcgbWFrZSB0aGUgaW5saW5lIGJveCBzdHJldGNoIHRoZSBs
aW5lIChlLmcuIDxzcGFuIHN0eWxlPSJwYWRkaW5nOiAxMHB4OyI+PC9zcGFuPikuCi0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
Ly8gTm9uLXJvb3QgaW5saW5lIGJveGVzIChlLmcuIDxzcGFuPikuCisgICAgYXV0byYgYm94R2Vv
bWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9yQm94KGlubGluZUxldmVsQm94
LmxheW91dEJveCgpKTsKKyAgICBpZiAoYm94R2VvbWV0cnkuaG9yaXpvbnRhbEJvcmRlcigpIHx8
IGJveEdlb21ldHJ5Lmhvcml6b250YWxQYWRkaW5nKCkudmFsdWVfb3IoMF9sdSkpIHsKKyAgICAg
ICAgLy8gSG9yaXpvbnRhbCBib3JkZXIgYW5kIHBhZGRpbmcgbWFrZSB0aGUgaW5saW5lIGJveCBz
dHJldGNoIHRoZSBsaW5lIChlLmcuIDxzcGFuIHN0eWxlPSJwYWRkaW5nOiAxMHB4OyI+PC9zcGFu
PikuCisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdRdWlya3MuaCBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZv
cm1hdHRpbmdRdWlya3MuaAppbmRleCA0NTVkZmU0ZjRjNTIuLmU3Y2Y1Yjc5NTcxMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5s
aW5lRm9ybWF0dGluZ1F1aXJrcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdRdWlya3MuaApAQCAtNDAsNyArNDAs
OCBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRQcmVzZXJ2ZVRyYWlsaW5nV2hpdGVzcGFjZShi
b29sIGlzSW5JbnRyaW5zaWNXaWR0aE1vZGUsIGJvb2wgbGluZUhhc0JpZGlDb250ZW50LCBib29s
IGxpbmVIYXNPdmVyZmxvdywgYm9vbCBsaW5lRW5kV2l0aExpbmVCcmVhaykgY29uc3Q7CiAgICAg
Ym9vbCB0cmFpbGluZ05vbkJyZWFraW5nU3BhY2VOZWVkc0FkanVzdG1lbnQoYm9vbCBpc0luSW50
cmluc2ljV2lkdGhNb2RlLCBib29sIGxpbmVIYXNPdmVyZmxvdykgY29uc3Q7CiAgICAgSW5saW5l
TGF5b3V0VW5pdCBpbml0aWFsTGluZUhlaWdodCgpIGNvbnN0OwotICAgIGJvb2wgaW5saW5lTGV2
ZWxCb3hBZmZlY3RzTGluZUJveChjb25zdCBJbmxpbmVMZXZlbEJveCYsIGNvbnN0IExpbmVCb3gm
KSBjb25zdDsKKyAgICBib29sIGlubGluZUJveEFmZmVjdHNMaW5lQm94KGNvbnN0IElubGluZUxl
dmVsQm94JikgY29uc3Q7CisgICAgc3RhdGljIGJvb2wgbGluZUJyZWFrQm94QWZmZWN0c1BhcmVu
dElubGluZUJveChjb25zdCBMaW5lQm94Jik7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVp
bGRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAKaW5kZXggMDFlNTVhNWMyY2ZjLi4xMDEzYzc1MzRl
MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMv
aW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94QnVpbGRlci5jcHAKQEAg
LTIyMCwyNiArMjIwLDI1IEBAIHZvaWQgTGluZUJveEJ1aWxkZXI6OnNldFZlcnRpY2FsUHJvcGVy
dGllc0ZvcklubGluZUxldmVsQm94KGNvbnN0IExpbmVCb3gmIGxpbmVCCiAgICAgICAgIGlubGlu
ZUxldmVsQm94LnNldERlc2NlbnQoYXNjZW50QW5kRGVzY2VudC5kZXNjZW50KTsKICAgICB9Owog
Ci0gICAgYXV0byBzZXRMYXlvdXRCb3VuZHMgPSBbJl0gKGF1dG8mIHRleHRNZXRyaWNzKSB7Ci0g
ICAgICAgIGF1dG8gbG9naWNhbEhlaWdodCA9IHRleHRNZXRyaWNzLmFzY2VudEFuZERlc2NlbnQu
YXNjZW50ICsgdGV4dE1ldHJpY3MuYXNjZW50QW5kRGVzY2VudC5kZXNjZW50OwotICAgICAgICBh
dXRvIGhhbGZMZWFkaW5nID0gSW5saW5lTGF5b3V0VW5pdCB7IH07Ci0gICAgICAgIGlmICh0ZXh0
TWV0cmljcy5wcmVmZXJyZWRMaW5lSGVpZ2h0KSB7Ci0gICAgICAgICAgICAvLyBJZiBsaW5lLWhl
aWdodCBjb21wdXRlcyB0byBub3JtYWwgYW5kIGVpdGhlciB0ZXh0LWVkZ2UgaXMgbGVhZGluZyBv
ciB0aGlzIGlzIHRoZSByb290IGlubGluZSBib3gsCi0gICAgICAgICAgICAvLyB0aGUgZm9udOKA
mXMgbGluZSBnYXAgbWV0cmljIG1heSBhbHNvIGJlIGluY29ycG9yYXRlZCBpbnRvIEEgYW5kIEQg
YnkgYWRkaW5nIGhhbGYgdG8gZWFjaCBzaWRlIGFzIGhhbGYtbGVhZGluZy4KLSAgICAgICAgICAg
IC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi9jc3MtaW5saW5lLTMvI2lubGluZS1oZWlnaHQKLSAg
ICAgICAgICAgIC8vIFNpbmNlIHRleHQtZWRnZSBpcyBub3Qgc3VwcG9ydGVkIHlldCBhbmQgdGhl
IGluaXRpYWwgdmFsdWUgaXMgbGVhZGluZywgd2Ugc2hvdWxkIGp1c3QgYXBwbHkgaXQgdG8KLSAg
ICAgICAgICAgIC8vIGFsbCBpbmxpbmUgYm94ZXMuCi0gICAgICAgICAgICBoYWxmTGVhZGluZyA9
ICgqdGV4dE1ldHJpY3MucHJlZmVycmVkTGluZUhlaWdodCAtIGxvZ2ljYWxIZWlnaHQpIC8gMjsK
LSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIFByZWZlcnJlZCBsaW5lIGhlaWdodCBp
cyBwdXJlbHkgZm9udCBtZXRyaWNzIGJhc2VkIChpLmUgZ2x5cGhzIHN0cmV0Y2ggdGhlIGxpbmUp
LgotICAgICAgICAgICAgaGFsZkxlYWRpbmcgPSAodGV4dE1ldHJpY3MubGluZUdhcCAtIGxvZ2lj
YWxIZWlnaHQpIC8gMjsKLSAgICAgICAgfQotICAgICAgICBpbmxpbmVMZXZlbEJveC5zZXRMYXlv
dXRCb3VuZHMoeyBmbG9vcmYodGV4dE1ldHJpY3MuYXNjZW50QW5kRGVzY2VudC5hc2NlbnQgKyBo
YWxmTGVhZGluZyksIGNlaWxmKHRleHRNZXRyaWNzLmFzY2VudEFuZERlc2NlbnQuZGVzY2VudCAr
IGhhbGZMZWFkaW5nKSB9KTsKLSAgICB9OwotCiAgICAgaWYgKGlubGluZUxldmVsQm94LmlzSW5s
aW5lQm94KCkpIHsKICAgICAgICAgYXV0byB0ZXh0TWV0cmljcyA9IHByaW1hcnlGb250TWV0cmlj
c0ZvcklubGluZUJveChpbmxpbmVMZXZlbEJveCwgbGluZUJveC5iYXNlbGluZVR5cGUoKSk7Ci0g
ICAgICAgIHNldExheW91dEJvdW5kcyh0ZXh0TWV0cmljcyk7CisgICAgICAgIGF1dG8gc2V0TGF5
b3V0Qm91bmRzID0gWyZdIHsKKyAgICAgICAgICAgIGF1dG8gbG9naWNhbEhlaWdodCA9IHRleHRN
ZXRyaWNzLmFzY2VudEFuZERlc2NlbnQuYXNjZW50ICsgdGV4dE1ldHJpY3MuYXNjZW50QW5kRGVz
Y2VudC5kZXNjZW50OworICAgICAgICAgICAgYXV0byBoYWxmTGVhZGluZyA9IElubGluZUxheW91
dFVuaXQgeyB9OworICAgICAgICAgICAgaWYgKHRleHRNZXRyaWNzLnByZWZlcnJlZExpbmVIZWln
aHQpIHsKKyAgICAgICAgICAgICAgICAvLyBJZiBsaW5lLWhlaWdodCBjb21wdXRlcyB0byBub3Jt
YWwgYW5kIGVpdGhlciB0ZXh0LWVkZ2UgaXMgbGVhZGluZyBvciB0aGlzIGlzIHRoZSByb290IGlu
bGluZSBib3gsCisgICAgICAgICAgICAgICAgLy8gdGhlIGZvbnTigJlzIGxpbmUgZ2FwIG1ldHJp
YyBtYXkgYWxzbyBiZSBpbmNvcnBvcmF0ZWQgaW50byBBIGFuZCBEIGJ5IGFkZGluZyBoYWxmIHRv
IGVhY2ggc2lkZSBhcyBoYWxmLWxlYWRpbmcuCisgICAgICAgICAgICAgICAgLy8gaHR0cHM6Ly93
d3cudzMub3JnL1RSL2Nzcy1pbmxpbmUtMy8jaW5saW5lLWhlaWdodAorICAgICAgICAgICAgICAg
IC8vIFNpbmNlIHRleHQtZWRnZSBpcyBub3Qgc3VwcG9ydGVkIHlldCBhbmQgdGhlIGluaXRpYWwg
dmFsdWUgaXMgbGVhZGluZywgd2Ugc2hvdWxkIGp1c3QgYXBwbHkgaXQgdG8KKyAgICAgICAgICAg
ICAgICAvLyBhbGwgaW5saW5lIGJveGVzLgorICAgICAgICAgICAgICAgIGhhbGZMZWFkaW5nID0g
KCp0ZXh0TWV0cmljcy5wcmVmZXJyZWRMaW5lSGVpZ2h0IC0gbG9naWNhbEhlaWdodCkgLyAyOwor
ICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAvLyBQcmVmZXJyZWQgbGluZSBo
ZWlnaHQgaXMgcHVyZWx5IGZvbnQgbWV0cmljcyBiYXNlZCAoaS5lIGdseXBocyBzdHJldGNoIHRo
ZSBsaW5lKS4KKyAgICAgICAgICAgICAgICBoYWxmTGVhZGluZyA9ICh0ZXh0TWV0cmljcy5saW5l
R2FwIC0gbG9naWNhbEhlaWdodCkgLyAyOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaW5s
aW5lTGV2ZWxCb3guc2V0TGF5b3V0Qm91bmRzKHsgZmxvb3JmKHRleHRNZXRyaWNzLmFzY2VudEFu
ZERlc2NlbnQuYXNjZW50ICsgaGFsZkxlYWRpbmcpLCBjZWlsZih0ZXh0TWV0cmljcy5hc2NlbnRB
bmREZXNjZW50LmRlc2NlbnQgKyBoYWxmTGVhZGluZykgfSk7CisgICAgICAgIH07CisgICAgICAg
IHNldExheW91dEJvdW5kcygpOwogICAgICAgICAvLyBXZSBuZWVkIGZsb29yL2NlaWwgdG8gbWF0
Y2ggbGVnYWN5IGxheW91dCBpbnRlZ3JhbCBwb3NpdGlvbmluZy4KICAgICAgICAgc2V0QXNjZW50
QW5kRGVzY2VudChBc2NlbnRBbmREZXNjZW50IHsgZmxvb3JmKHRleHRNZXRyaWNzLmFzY2VudEFu
ZERlc2NlbnQuYXNjZW50KSwgY2VpbGYodGV4dE1ldHJpY3MuYXNjZW50QW5kRGVzY2VudC5kZXNj
ZW50KSB9KTsKICAgICAgICAgaW5saW5lTGV2ZWxCb3guc2V0TG9naWNhbEhlaWdodCh0ZXh0TWV0
cmljcy5hc2NlbnRBbmREZXNjZW50LmhlaWdodCgpKTsKQEAgLTI0Nyw3ICsyNDYsNiBAQCB2b2lk
IExpbmVCb3hCdWlsZGVyOjpzZXRWZXJ0aWNhbFByb3BlcnRpZXNGb3JJbmxpbmVMZXZlbEJveChj
b25zdCBMaW5lQm94JiBsaW5lQgogICAgIH0KICAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNMaW5l
QnJlYWtCb3goKSkgewogICAgICAgICBhdXRvIHBhcmVudFRleHRNZXRyaWNzID0gcHJpbWFyeUZv
bnRNZXRyaWNzRm9ySW5saW5lQm94KGxpbmVCb3guaW5saW5lTGV2ZWxCb3hGb3JMYXlvdXRCb3go
aW5saW5lTGV2ZWxCb3gubGF5b3V0Qm94KCkucGFyZW50KCkpLCBsaW5lQm94LmJhc2VsaW5lVHlw
ZSgpKTsKLSAgICAgICAgc2V0TGF5b3V0Qm91bmRzKHBhcmVudFRleHRNZXRyaWNzKTsKICAgICAg
ICAgLy8gV2UgbmVlZCBmbG9vci9jZWlsIHRvIG1hdGNoIGxlZ2FjeSBsYXlvdXQgaW50ZWdyYWwg
cG9zaXRpb25pbmcuCiAgICAgICAgIHNldEFzY2VudEFuZERlc2NlbnQoQXNjZW50QW5kRGVzY2Vu
dCB7IGZsb29yZihwYXJlbnRUZXh0TWV0cmljcy5hc2NlbnRBbmREZXNjZW50LmFzY2VudCksIGNl
aWxmKHBhcmVudFRleHRNZXRyaWNzLmFzY2VudEFuZERlc2NlbnQuZGVzY2VudCkgfSk7CiAgICAg
ICAgIGlubGluZUxldmVsQm94LnNldExvZ2ljYWxIZWlnaHQocGFyZW50VGV4dE1ldHJpY3MuYXNj
ZW50QW5kRGVzY2VudC5oZWlnaHQoKSk7CkBAIC0yNjMsMTQgKzI2MSwxMiBAQCB2b2lkIExpbmVC
b3hCdWlsZGVyOjpzZXRWZXJ0aWNhbFByb3BlcnRpZXNGb3JJbmxpbmVMZXZlbEJveChjb25zdCBM
aW5lQm94JiBsaW5lQgogICAgICAgICBpZiAobGluZUJveC5iYXNlbGluZVR5cGUoKSA9PSBJZGVv
Z3JhcGhpY0Jhc2VsaW5lKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIHJlbHkg
b24gdGhlIGludGVncmF0aW9uIGJhc2VsaW5lLgogICAgICAgICAgICAgYXV0byBwYXJlbnRUZXh0
TWV0cmljcyA9IHByaW1hcnlGb250TWV0cmljc0ZvcklubGluZUJveChsaW5lQm94LmlubGluZUxl
dmVsQm94Rm9yTGF5b3V0Qm94KGlubGluZUxldmVsQm94LmxheW91dEJveCgpLnBhcmVudCgpKSwg
bGluZUJveC5iYXNlbGluZVR5cGUoKSk7Ci0gICAgICAgICAgICBzZXRMYXlvdXRCb3VuZHMocGFy
ZW50VGV4dE1ldHJpY3MpOwogICAgICAgICAgICAgLy8gV2UgbmVlZCBmbG9vci9jZWlsIHRvIG1h
dGNoIGxlZ2FjeSBsYXlvdXQgaW50ZWdyYWwgcG9zaXRpb25pbmcuCiAgICAgICAgICAgICBzZXRB
c2NlbnRBbmREZXNjZW50KEFzY2VudEFuZERlc2NlbnQgeyBmbG9vcmYocGFyZW50VGV4dE1ldHJp
Y3MuYXNjZW50QW5kRGVzY2VudC5hc2NlbnQpLCBjZWlsZihwYXJlbnRUZXh0TWV0cmljcy5hc2Nl
bnRBbmREZXNjZW50LmRlc2NlbnQpIH0pOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAgICAgICAgIGlmIChhdXRvIGFzY2VudCA9IGRvd25jYXN0PEVsZW1lbnRCb3g+KGxheW91dEJv
eCkuYmFzZWxpbmVGb3JJbnRlZ3JhdGlvbigpKSB7CiAgICAgICAgICAgICBhdXRvIHRleHRNZXRy
aWNzID0gVGV4dE1ldHJpY3MgeyB7ICphc2NlbnQsIG1hcmdpbkJveEhlaWdodCAtICphc2NlbnQg
fSwgeyB9LCB7IH0gfTsKLSAgICAgICAgICAgIHNldExheW91dEJvdW5kcyh0ZXh0TWV0cmljcyk7
CiAgICAgICAgICAgICAvLyBXZSBuZWVkIGZsb29yL2NlaWwgdG8gbWF0Y2ggbGVnYWN5IGxheW91
dCBpbnRlZ3JhbCBwb3NpdGlvbmluZy4KICAgICAgICAgICAgIHNldEFzY2VudEFuZERlc2NlbnQo
QXNjZW50QW5kRGVzY2VudCB7IGZsb29yZih0ZXh0TWV0cmljcy5hc2NlbnRBbmREZXNjZW50LmFz
Y2VudCksIGNlaWxmKHRleHRNZXRyaWNzLmFzY2VudEFuZERlc2NlbnQuZGVzY2VudCkgfSk7CiAg
ICAgICAgICAgICByZXR1cm47CkBAIC00MTcsNiArNDEzLDkgQEAgdm9pZCBMaW5lQm94QnVpbGRl
cjo6Y29uc3RydWN0SW5saW5lTGV2ZWxCb3hlcyhMaW5lQm94JiBsaW5lQm94LCBjb25zdCBMaW5l
QnVpbGQKICAgICAgICAgICAgIGF1dG8gbGluZUJyZWFrQm94ID0gSW5saW5lTGV2ZWxCb3g6OmNy
ZWF0ZUxpbmVCcmVha0JveChsYXlvdXRCb3gsIHN0eWxlLCBsb2dpY2FsTGVmdCk7CiAgICAgICAg
ICAgICBzZXRWZXJ0aWNhbFByb3BlcnRpZXNGb3JJbmxpbmVMZXZlbEJveChsaW5lQm94LCBsaW5l
QnJlYWtCb3gpOwogICAgICAgICAgICAgbGluZUJveC5hZGRJbmxpbmVMZXZlbEJveChXVEZNb3Zl
KGxpbmVCcmVha0JveCkpOworCisgICAgICAgICAgICBpZiAobGF5b3V0U3RhdGUoKS5pblN0YW5k
YXJkc01vZGUoKSB8fCBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzOjpsaW5lQnJlYWtCb3hBZmZlY3Rz
UGFyZW50SW5saW5lQm94KGxpbmVCb3gpKQorICAgICAgICAgICAgICAgIGxpbmVCb3guaW5saW5l
TGV2ZWxCb3hGb3JMYXlvdXRCb3gobGF5b3V0Qm94LnBhcmVudCgpKS5zZXRIYXNDb250ZW50KCk7
CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogICAgICAgICBpZiAocnVuLmlzV29y
ZEJyZWFrT3Bwb3J0dW5pdHkoKSkgewpAQCAtNTU5LDcgKzU1OCw3IEBAIHZvaWQgTGluZUJveEJ1
aWxkZXI6OmFkanVzdElkZW9ncmFwaGljQmFzZWxpbmVJZkFwcGxpY2FibGUoTGluZUJveCYgbGlu
ZUJveCwgc2l6CiAgICAgICAgICAgICBpbmxpbmVMZXZlbEJveC5zZXRBc2NlbnQoaWRlb2dyYXBo
aWNCYXNlbGluZSk7CiAgICAgICAgIH0KIAotICAgICAgICBhdXRvIG5lZWRzRm9udEZhbGxiYWNr
QWRqdXN0bWVudCA9IGlubGluZUxldmVsQm94LmlzSW5saW5lQm94KCkgfHwgaW5saW5lTGV2ZWxC
b3guaXNMaW5lQnJlYWtCb3goKTsKKyAgICAgICAgYXV0byBuZWVkc0ZvbnRGYWxsYmFja0FkanVz
dG1lbnQgPSBpbmxpbmVMZXZlbEJveC5pc0lubGluZUJveCgpOwogICAgICAgICBpZiAobmVlZHNG
b250RmFsbGJhY2tBZGp1c3RtZW50KSB7CiAgICAgICAgICAgICBpZiAoYXV0byBmYWxsYmFja0Zv
bnRzID0gbV9mYWxsYmFja0ZvbnRzRm9ySW5saW5lQm94ZXMuZ2V0KCZpbmxpbmVMZXZlbEJveCk7
ICFmYWxsYmFja0ZvbnRzLmlzRW1wdHkoKSAmJiBpbmxpbmVMZXZlbEJveC5pc1ByZWZlcnJlZExp
bmVIZWlnaHRGb250TWV0cmljc0Jhc2VkKCkpCiAgICAgICAgICAgICAgICAgaW5saW5lTGV2ZWxC
b3guc2V0TGF5b3V0Qm91bmRzKGFkanVzdGVkTGF5b3V0Qm91bmRzV2l0aEZhbGxiYWNrRm9udHMo
aW5saW5lTGV2ZWxCb3gsIGZhbGxiYWNrRm9udHMsIElkZW9ncmFwaGljQmFzZWxpbmUpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5l
L0lubGluZUxpbmVCb3hWZXJ0aWNhbEFsaWduZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveFZlcnRpY2FsQWxpZ25lci5j
cHAKaW5kZXggZDY0NzhjODAxMTZkLi5mMzQ1ZDVkYTUwNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hWZXJ0
aWNhbEFsaWduZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29u
dGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hWZXJ0aWNhbEFsaWduZXIuY3BwCkBAIC0xNTEsNyAr
MTUxLDcgQEAgTGluZUJveFZlcnRpY2FsQWxpZ25lcjo6TGluZUJveEFsaWdubWVudENvbnRlbnQg
TGluZUJveFZlcnRpY2FsQWxpZ25lcjo6Y29tcHV0ZUwKIAogICAgIGF1dG8gbWluaW11bUxvZ2lj
YWxUb3AgPSBzdGQ6Om9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHsgfTsKICAgICBhdXRvIG1h
eGltdW1Mb2dpY2FsQm90dG9tID0gc3RkOjpvcHRpb25hbDxJbmxpbmVMYXlvdXRVbml0PiB7IH07
Ci0gICAgaWYgKGZvcm1hdHRpbmdHZW9tZXRyeS5pbmxpbmVMZXZlbEJveEFmZmVjdHNMaW5lQm94
KHJvb3RJbmxpbmVCb3gsIGxpbmVCb3gpKSB7CisgICAgaWYgKGZvcm1hdHRpbmdHZW9tZXRyeS5p
bmxpbmVMZXZlbEJveEFmZmVjdHNMaW5lQm94KHJvb3RJbmxpbmVCb3gpKSB7CiAgICAgICAgIG1p
bmltdW1Mb2dpY2FsVG9wID0gSW5saW5lTGF5b3V0VW5pdCB7IH07CiAgICAgICAgIG1heGltdW1M
b2dpY2FsQm90dG9tID0gcm9vdElubGluZUJveC5sYXlvdXRCb3VuZHMoKS0+aGVpZ2h0KCk7CiAg
ICAgICAgIGlubGluZUxldmVsQm94QWJzb2x1dGVUb3BBbmRCb3R0b21NYXAuYWRkKCZyb290SW5s
aW5lQm94LCBBYnNvbHV0ZVRvcEFuZEJvdHRvbSB7ICptaW5pbXVtTG9naWNhbFRvcCwgKm1heGlt
dW1Mb2dpY2FsQm90dG9tIH0pOwpAQCAtMjI5LDcgKzIyOSw3IEBAIExpbmVCb3hWZXJ0aWNhbEFs
aWduZXI6OkxpbmVCb3hBbGlnbm1lbnRDb250ZW50IExpbmVCb3hWZXJ0aWNhbEFsaWduZXI6OmNv
bXB1dGVMCiAgICAgICAgIGF1dG8gYWJzb2x1dGVMb2dpY2FsQm90dG9tID0gYWJzb2x1dGVMb2dp
Y2FsVG9wICsgbG9naWNhbEhlaWdodDsKICAgICAgICAgaW5saW5lTGV2ZWxCb3hBYnNvbHV0ZVRv
cEFuZEJvdHRvbU1hcC5hZGQoJmlubGluZUxldmVsQm94LCBBYnNvbHV0ZVRvcEFuZEJvdHRvbSB7
IGFic29sdXRlTG9naWNhbFRvcCwgYWJzb2x1dGVMb2dpY2FsQm90dG9tIH0pOwogICAgICAgICAv
LyBTdHJldGNoIHRoZSBtaW4vbWF4IGFic29sdXRlIHZhbHVlcyBpZiBhcHBsaWNhYmxlLgotICAg
ICAgICBpZiAoZm9ybWF0dGluZ0dlb21ldHJ5LmlubGluZUxldmVsQm94QWZmZWN0c0xpbmVCb3go
aW5saW5lTGV2ZWxCb3gsIGxpbmVCb3gpKSB7CisgICAgICAgIGlmIChmb3JtYXR0aW5nR2VvbWV0
cnkuaW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveChpbmxpbmVMZXZlbEJveCkpIHsKICAgICAg
ICAgICAgIG1pbmltdW1Mb2dpY2FsVG9wID0gc3RkOjptaW4obWluaW11bUxvZ2ljYWxUb3AudmFs
dWVfb3IoYWJzb2x1dGVMb2dpY2FsVG9wKSwgYWJzb2x1dGVMb2dpY2FsVG9wKTsKICAgICAgICAg
ICAgIG1heGltdW1Mb2dpY2FsQm90dG9tID0gc3RkOjptYXgobWF4aW11bUxvZ2ljYWxCb3R0b20u
dmFsdWVfb3IoYWJzb2x1dGVMb2dpY2FsQm90dG9tKSwgYWJzb2x1dGVMb2dpY2FsQm90dG9tKTsK
ICAgICAgICAgfQpAQCAtMjQwLDcgKzI0MCw3IEBAIExpbmVCb3hWZXJ0aWNhbEFsaWduZXI6Okxp
bmVCb3hBbGlnbm1lbnRDb250ZW50IExpbmVCb3hWZXJ0aWNhbEFsaWduZXI6OmNvbXB1dGVMCiAg
ICAgYXV0byBub25Cb3R0b21BbGlnbmVkQm94ZXNNYXhpbXVtSGVpZ2h0ID0gdmFsdWVPckRlZmF1
bHQobWF4aW11bUxvZ2ljYWxCb3R0b20pIC0gdmFsdWVPckRlZmF1bHQobWluaW11bUxvZ2ljYWxU
b3ApOwogICAgIGF1dG8gYm90dG9tQWxpZ25lZEJveGVzTWF4aW11bUhlaWdodCA9IHN0ZDo6b3B0
aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4geyB9OwogICAgIGZvciAoYXV0byogbGluZUJveFJlbGF0
aXZlSW5saW5lTGV2ZWxCb3ggOiBsaW5lQm94UmVsYXRpdmVJbmxpbmVMZXZlbEJveGVzKSB7Ci0g
ICAgICAgIGlmICghZm9ybWF0dGluZ0dlb21ldHJ5LmlubGluZUxldmVsQm94QWZmZWN0c0xpbmVC
b3goKmxpbmVCb3hSZWxhdGl2ZUlubGluZUxldmVsQm94LCBsaW5lQm94KSkKKyAgICAgICAgaWYg
KCFmb3JtYXR0aW5nR2VvbWV0cnkuaW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveCgqbGluZUJv
eFJlbGF0aXZlSW5saW5lTGV2ZWxCb3gpKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAg
IC8vIFRoaXMgbGluZSBib3ggcmVsYXRpdmUgYWxpZ25lZCBpbmxpbmUgbGV2ZWwgYm94IHN0cmV0
Y2hlcyB0aGUgbGluZSBib3guCiAgICAgICAgIGF1dG8gaW5saW5lTGV2ZWxCb3hIZWlnaHQgPSBs
aW5lQm94UmVsYXRpdmVJbmxpbmVMZXZlbEJveC0+bGF5b3V0Qm91bmRzKCkgPyBsaW5lQm94UmVs
YXRpdmVJbmxpbmVMZXZlbEJveC0+bGF5b3V0Qm91bmRzKCktPmhlaWdodCgpIDogbGluZUJveFJl
bGF0aXZlSW5saW5lTGV2ZWxCb3gtPmxvZ2ljYWxIZWlnaHQoKTsKQEAgLTI2NywxMSArMjY3LDEx
IEBAIHZvaWQgTGluZUJveFZlcnRpY2FsQWxpZ25lcjo6Y29tcHV0ZVJvb3RJbmxpbmVCb3hWZXJ0
aWNhbFBvc2l0aW9uKExpbmVCb3gmIGxpbmVCCiAgICAgaW5saW5lTGV2ZWxCb3hBYnNvbHV0ZUJh
c2VsaW5lT2Zmc2V0TWFwLmFkZCgmcm9vdElubGluZUJveCwgSW5saW5lTGF5b3V0VW5pdCB7IH0p
OwogCiAgICAgYXV0byBtYXhpbXVtVG9wT2Zmc2V0RnJvbVJvb3RJbmxpbmVCb3hCYXNlbGluZSA9
IHN0ZDo6b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4geyB9OwotICAgIGlmIChmb3JtYXR0aW5n
R2VvbWV0cnkuaW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveChyb290SW5saW5lQm94LCBsaW5l
Qm94KSkKKyAgICBpZiAoZm9ybWF0dGluZ0dlb21ldHJ5LmlubGluZUxldmVsQm94QWZmZWN0c0xp
bmVCb3gocm9vdElubGluZUJveCkpCiAgICAgICAgIG1heGltdW1Ub3BPZmZzZXRGcm9tUm9vdElu
bGluZUJveEJhc2VsaW5lID0gcm9vdElubGluZUJveC5sYXlvdXRCb3VuZHMoKS0+YXNjZW50Owog
CiAgICAgYXV0byBhZmZlY3RzUm9vdElubGluZUJveFZlcnRpY2FsUG9zaXRpb24gPSBbJl0oYXV0
byYgaW5saW5lTGV2ZWxCb3gpIHsKLSAgICAgICAgYXV0byBpbmxpbmVMZXZlbEJveFN0cmVjaGVz
TGluZUJveCA9IGZvcm1hdHRpbmdHZW9tZXRyeS5pbmxpbmVMZXZlbEJveEFmZmVjdHNMaW5lQm94
KGlubGluZUxldmVsQm94LCBsaW5lQm94KTsKKyAgICAgICAgYXV0byBpbmxpbmVMZXZlbEJveFN0
cmVjaGVzTGluZUJveCA9IGZvcm1hdHRpbmdHZW9tZXRyeS5pbmxpbmVMZXZlbEJveEFmZmVjdHNM
aW5lQm94KGlubGluZUxldmVsQm94KTsKICAgICAgICAgcmV0dXJuIGlubGluZUxldmVsQm94U3Ry
ZWNoZXNMaW5lQm94IHx8IChpbmxpbmVMZXZlbEJveC5pc0F0b21pY0lubGluZUxldmVsQm94KCkg
JiYgaW5saW5lTGV2ZWxCb3guYXNjZW50KCkgJiYgaW5saW5lTGV2ZWxCb3gubGluZUJveENvbnRh
aW4oKSk7CiAgICAgfTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463811</attachid>
            <date>2022-11-30 12:18:02 -0800</date>
            <delta_ts>2022-12-01 08:07:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-248506-20221130121801.patch</filename>
            <type>text/plain</type>
            <size>22602</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSBjMTViNmM3YTY3M2I3ZWY4YzViMTkxYTNmMjU3ZmVhMDZkMDU3ZjA1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMjkgTm92IDIwMjIgMTY6Mzc6MzYgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbTEZDXVtJ
RkNdIExheW91dCBib3VuZHMgc2hvdWxkIGJlIHNldCBvbiBpbmxpbmUgYm94ZXMgb25seQogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0ODUwNgoKUmV2aWV3ZWQgYnkg
QW50dGkgS29pdmlzdG8uCgoxLiBEbyBub3Qgc2V0ICJsYXlvdXQgYm91bmRzIiBvbiBub24taW5s
aW5lIGJveGVzIChzcGVjIGFncmVlcyBoZXJlKQoyLiBNYWtlIHN1cmUgaGFyZCBsaW5lIGJyZWFr
cyBzdGlsbCBzdHJldGNoIHRoZWlyIHBhcmVudCBpbmxpbmUgYm94ZXMgd2hlbiBhcHBsaWNhYmxl
CgpDdXJyZW50IGJlaGF2aW9yOgoxLiBMaW5lIGJyZWFrIGJveCBnZXRzIGNvbXB1dGVkIGxheW91
dCBib3VuZHMKMi4gV2hlbiB0aGUgbGluZSBicmVhayBib3ggYWZmZWN0cyB0aGUgbGluZSBib3gs
IHdlIHN0cmV0Y2ggdGhlIGxpbmUgYnkgdGhlIGNvbXB1dGVkIGxheW91dCBib3VuZHMgdmFsdWUK
ClBhdGNoIGJlaGF2aW9yOgoxLiBMaW5lIGJyZWFrIGJveCBtYWtlcyB0aGUgcGFyZW50IGlubGlu
ZSBib3ggImNvbnRlbnRmdWwiIHdoZW4gYXBwbGljYWJsZSAodGhpcyBpcyB0aGUgc2FtZSBhcyAj
MiBhdCBjdXJyZW50IGJlaGF2aW9yKQoyLiBUaGUgImNvbnRlbnRmdWwiIGlubGluZSBib3ggKG1v
c3RseSB0aGUgcm9vdCBpbmxpbmUgYm94KSBzdHJldGNoZXMgdGhlIGxpbmUgYm94IGJ5IHRoZSBj
b21wdXRlZCBsYXlvdXQgYm91bmRzLgpJdCBtYWtlcyBicmVhayBib3ggYmVoYXZlIGxpa2UgcmVn
dWxhciAidGV4dCBjb250ZW50Iiwgd2hlcmUgdGhlIGNvbnRlbnQgaW5kaXJlY3RseSBhZmZlY3Rz
IHRoZSBsaW5lIGJveCBoZWlnaHQuCgpUaGlzIHBhdGNoIGlzIGFsc28gaW4gcHJlcGFyYXRpb24g
Zm9yIHN1cHBvcnRpbmcgdGV4dC1lZGdlLCB3aGVyZSB0ZXh0LWVkZ2UgYWZmZWN0cyB0aGUgbGF5
b3V0IGJvdW5kcyB2YWx1ZS4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmNwcDoKKFdlYkNvcmU6OkxheW91
dDo6SW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5OjppbmxpbmVMZXZlbEJveEFmZmVjdHNMaW5lQm94
IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaDoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmNwcDoKKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ1F1aXJrczo6bGluZUJyZWFrQm94QWZmZWN0c1Bh
cmVudElubGluZUJveCk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdRdWlya3M6
OmlubGluZUJveEFmZmVjdHNMaW5lQm94IGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5l
Rm9ybWF0dGluZ1F1aXJrczo6aW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveCBjb25zdCk6IERl
bGV0ZWQuCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcDoKKFdlYkNvcmU6Okxh
eW91dDo6TGluZUJveEJ1aWxkZXI6OnNldFZlcnRpY2FsUHJvcGVydGllc0ZvcklubGluZUxldmVs
Qm94IGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGluZUJveEJ1aWxkZXI6OmNvbnN0cnVjdElu
bGluZUxldmVsQm94ZXMpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94QnVpbGRlcjo6YWRqdXN0
SWRlb2dyYXBoaWNCYXNlbGluZUlmQXBwbGljYWJsZSk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveFZlcnRpY2FsQWxpZ25lci5j
cHA6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3hWZXJ0aWNhbEFsaWduZXI6OmNvbXB1dGVMaW5l
Qm94TG9naWNhbEhlaWdodCBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3hWZXJ0aWNh
bEFsaWduZXI6OmNvbXB1dGVSb290SW5saW5lQm94VmVydGljYWxQb3NpdGlvbiBjb25zdCk6Ci0t
LQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuY3BwICAgICAgIHwgMTAgKyst
CiAuLi4vaW5saW5lL0lubGluZUZvcm1hdHRpbmdHZW9tZXRyeS5oICAgICAgICAgfCAgMiArLQog
Li4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmNwcCAgICAgICAgIHwgODEgKysrKysr
KysrLS0tLS0tLS0tLQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmggICAgICAg
ICAgIHwgIDMgKy0KIC4uLi9pbmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIuY3BwICAgICAgICAg
ICB8IDQzICsrKysrLS0tLS0KIC4uLi9pbmxpbmUvSW5saW5lTGluZUJveFZlcnRpY2FsQWxpZ25l
ci5jcHAgICB8IDEyICstLQogNiBmaWxlcyBjaGFuZ2VkLCA3NiBpbnNlcnRpb25zKCspLCA3NSBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dl
b21ldHJ5LmNwcAppbmRleCBhZDExNDNjMjY4YzcuLmY1MmNhMGRmOGZlMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9y
bWF0dGluZ0dlb21ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuY3BwCkBAIC0xMTksMTUg
KzExOSwxNyBAQCBDb250ZW50SGVpZ2h0QW5kTWFyZ2luIElubGluZUZvcm1hdHRpbmdHZW9tZXRy
eTo6aW5saW5lQmxvY2tDb250ZW50SGVpZ2h0QW5kTWFyZwogICAgIHJldHVybiBjb21wbGljYXRl
ZENhc2VzKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCBvdmVycmlkZGVuVmVydGlj
YWxWYWx1ZXMpOwogfQogCi1ib29sIElubGluZUZvcm1hdHRpbmdHZW9tZXRyeTo6aW5saW5lTGV2
ZWxCb3hBZmZlY3RzTGluZUJveChjb25zdCBJbmxpbmVMZXZlbEJveCYgaW5saW5lTGV2ZWxCb3gs
IGNvbnN0IExpbmVCb3gmIGxpbmVCb3gpIGNvbnN0Citib29sIElubGluZUZvcm1hdHRpbmdHZW9t
ZXRyeTo6aW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveChjb25zdCBJbmxpbmVMZXZlbEJveCYg
aW5saW5lTGV2ZWxCb3gpIGNvbnN0CiB7CiAgICAgaWYgKCFpbmxpbmVMZXZlbEJveC5saW5lQm94
Q29udGFpbigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoaW5saW5lTGV2ZWxC
b3guaXNJbmxpbmVCb3goKSB8fCBpbmxpbmVMZXZlbEJveC5pc0xpbmVCcmVha0JveCgpKQotICAg
ICAgICByZXR1cm4gbGF5b3V0U3RhdGUoKS5pblN0YW5kYXJkc01vZGUoKSA/IHRydWUgOiBmb3Jt
YXR0aW5nQ29udGV4dCgpLmZvcm1hdHRpbmdRdWlya3MoKS5pbmxpbmVMZXZlbEJveEFmZmVjdHNM
aW5lQm94KGlubGluZUxldmVsQm94LCBsaW5lQm94KTsKKyAgICBpZiAoaW5saW5lTGV2ZWxCb3gu
aXNMaW5lQnJlYWtCb3goKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChpbmxpbmVM
ZXZlbEJveC5pc0xpc3RNYXJrZXIoKSkKLSAgICAgICAgcmV0dXJuIGlubGluZUxldmVsQm94Lmxv
Z2ljYWxIZWlnaHQoKTsKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChpbmxpbmVMZXZl
bEJveC5pc0lubGluZUJveCgpKQorICAgICAgICByZXR1cm4gbGF5b3V0U3RhdGUoKS5pblN0YW5k
YXJkc01vZGUoKSA/IHRydWUgOiBmb3JtYXR0aW5nQ29udGV4dCgpLmZvcm1hdHRpbmdRdWlya3Mo
KS5pbmxpbmVCb3hBZmZlY3RzTGluZUJveChpbmxpbmVMZXZlbEJveCk7CiAgICAgaWYgKGlubGlu
ZUxldmVsQm94LmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSkgewogICAgICAgICBpZiAoaW5saW5l
TGV2ZWxCb3gubG9naWNhbEhlaWdodCgpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdHZW9tZXRyeS5oCmluZGV4IDVjMGJj
NzAyNzY3Ny4uZmUwYmUzNzc2MWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQv
Zm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVG
b3JtYXR0aW5nR2VvbWV0cnkuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgZW51bSBj
bGFzcyBJc0ludHJpbnNpY1dpZHRoTW9kZSA6IHVpbnQ4X3QgeyBZZXMsIE5vIH07CiAgICAgSW5s
aW5lTGF5b3V0VW5pdCBjb21wdXRlZFRleHRJbmRlbnQoSXNJbnRyaW5zaWNXaWR0aE1vZGUsIHN0
ZDo6b3B0aW9uYWw8Ym9vbD4gcHJldmlvdXNMaW5lRW5kc1dpdGhMaW5lQnJlYWssIElubGluZUxh
eW91dFVuaXQgYXZhaWxhYmxlV2lkdGgpIGNvbnN0OwogCi0gICAgYm9vbCBpbmxpbmVMZXZlbEJv
eEFmZmVjdHNMaW5lQm94KGNvbnN0IElubGluZUxldmVsQm94JiwgY29uc3QgTGluZUJveCYpIGNv
bnN0OworICAgIGJvb2wgaW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveChjb25zdCBJbmxpbmVM
ZXZlbEJveCYpIGNvbnN0OwogCiAgICAgSW5saW5lTGF5b3V0VW5pdCBpbml0aWFsTGluZUhlaWdo
dChib29sIGlzRmlyc3RMaW5lKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9Jbmxp
bmVGb3JtYXR0aW5nUXVpcmtzLmNwcAppbmRleCA5ZmE2ODkxNjFiMTEuLmVlZGE3NjIyMmRjOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxp
bmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5jcHAKQEAg
LTczLDUyICs3Myw1MSBAQCBJbmxpbmVMYXlvdXRVbml0IElubGluZUZvcm1hdHRpbmdRdWlya3M6
OmluaXRpYWxMaW5lSGVpZ2h0KCkgY29uc3QKICAgICByZXR1cm4gMC5mOwogfQogCi1ib29sIElu
bGluZUZvcm1hdHRpbmdRdWlya3M6OmlubGluZUxldmVsQm94QWZmZWN0c0xpbmVCb3goY29uc3Qg
SW5saW5lTGV2ZWxCb3gmIGlubGluZUxldmVsQm94LCBjb25zdCBMaW5lQm94JiBsaW5lQm94KSBj
b25zdAorYm9vbCBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzOjpsaW5lQnJlYWtCb3hBZmZlY3RzUGFy
ZW50SW5saW5lQm94KGNvbnN0IExpbmVCb3gmIGxpbmVCb3gpCiB7Ci0gICAgQVNTRVJUKCFsYXlv
dXRTdGF0ZSgpLmluU3RhbmRhcmRzTW9kZSgpKTsKLSAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNM
aW5lQnJlYWtCb3goKSkgewotICAgICAgICAvLyBJbiBxdWlya3MgbW9kZSBsaW5lYnJlYWsgYm94
ZXMgKDxicj4pIHN0b3AgYWZmZWN0aW5nIHRoZSBsaW5lIGJveCB3aGVuIChhc3N1bWUgPGJyPiBp
cyBuZXN0ZWQgZS5nLiA8c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMDBweCI+PGJyPjwvc3Bhbj4p
Ci0gICAgICAgIC8vIDEuIHRoZSByb290IGlubGluZSBib3ggaGFzIGNvbnRlbnQgPGRpdj5jb250
ZW50PGJyPi9kaXY+Ci0gICAgICAgIC8vIDIuIHRoZXJlJ3MgYXQgbGVhc3Qgb25lIGF0b21pYyBp
bmxpbmUgbGV2ZWwgYm94IG9uIHRoZSBsaW5lIGUuZyA8ZGl2PjxpbWc+PGJyPjwvZGl2PiBvciA8
ZGl2PjxzcGFuPjxpbWc+PC9zcGFuPjxicj48L2Rpdj4KLSAgICAgICAgLy8gMy4gdGhlcmUncyBh
dCBsZWFzdCBvbmUgaW5saW5lIGJveCB3aXRoIGNvbnRlbnQgZS5nLiA8ZGl2PjxzcGFuPmNvbnRl
bnQ8L3NwYW4+PGJyPjwvZGl2PgotICAgICAgICBpZiAobGluZUJveC5yb290SW5saW5lQm94KCku
aGFzQ29udGVudCgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBpZiAobGlu
ZUJveC5oYXNBdG9taWNJbmxpbmVMZXZlbEJveCgpKQorICAgIC8vIEluIHF1aXJrcyBtb2RlIGxp
bmVicmVhayBib3hlcyAoPGJyPikgc3RvcCBhZmZlY3RpbmcgdGhlIGxpbmUgYm94IHdoZW4gKGFz
c3VtZSA8YnI+IGlzIG5lc3RlZCBlLmcuIDxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEwMHB4Ij48
YnI+PC9zcGFuPikKKyAgICAvLyAxLiB0aGUgcm9vdCBpbmxpbmUgYm94IGhhcyBjb250ZW50IDxk
aXY+Y29udGVudDxicj4vZGl2PgorICAgIC8vIDIuIHRoZXJlJ3MgYXQgbGVhc3Qgb25lIGF0b21p
YyBpbmxpbmUgbGV2ZWwgYm94IG9uIHRoZSBsaW5lIGUuZyA8ZGl2PjxpbWc+PGJyPjwvZGl2PiBv
ciA8ZGl2PjxzcGFuPjxpbWc+PC9zcGFuPjxicj48L2Rpdj4KKyAgICAvLyAzLiB0aGVyZSdzIGF0
IGxlYXN0IG9uZSBpbmxpbmUgYm94IHdpdGggY29udGVudCBlLmcuIDxkaXY+PHNwYW4+Y29udGVu
dDwvc3Bhbj48YnI+PC9kaXY+CisgICAgaWYgKGxpbmVCb3gucm9vdElubGluZUJveCgpLmhhc0Nv
bnRlbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChsaW5lQm94Lmhhc0F0b21p
Y0lubGluZUxldmVsQm94KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBBdCB0aGlz
IHBvaW50IHdlIGVpdGhlciBoYXZlIG9ubHkgdGhlIDxicj4gb24gdGhlIGxpbmUgb3IgaW5saW5l
IGJveGVzIHdpdGggb3Igd2l0aG91dCBjb250ZW50LgorICAgIGF1dG8mIGlubGluZUxldmVsQm94
ZXMgPSBsaW5lQm94Lm5vblJvb3RJbmxpbmVMZXZlbEJveGVzKCk7CisgICAgQVNTRVJUKCFpbmxp
bmVMZXZlbEJveGVzLmlzRW1wdHkoKSk7CisgICAgaWYgKGlubGluZUxldmVsQm94ZXMuc2l6ZSgp
ID09IDEpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGZvciAoYXV0byYgaW5saW5lTGV2ZWxC
b3ggOiBsaW5lQm94Lm5vblJvb3RJbmxpbmVMZXZlbEJveGVzKCkpIHsKKyAgICAgICAgLy8gRmls
dGVyIG91dCBlbXB0eSBpbmxpbmUgYm94ZXMgZS5nLiA8ZGl2PjxzcGFuPjwvc3Bhbj48c3Bhbj48
L3NwYW4+PGJyPjwvZGl2PgorICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNJbmxpbmVCb3go
KSAmJiBpbmxpbmVMZXZlbEJveC5oYXNDb250ZW50KCkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgd2UgZWl0aGVyIGhhdmUgb25seSB0aGUgPGJy
PiBvbiB0aGUgbGluZSBvciBpbmxpbmUgYm94ZXMgd2l0aCBvciB3aXRob3V0IGNvbnRlbnQuCi0g
ICAgICAgIGF1dG8mIGlubGluZUxldmVsQm94ZXMgPSBsaW5lQm94Lm5vblJvb3RJbmxpbmVMZXZl
bEJveGVzKCk7Ci0gICAgICAgIEFTU0VSVCghaW5saW5lTGV2ZWxCb3hlcy5pc0VtcHR5KCkpOwot
ICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3hlcy5zaXplKCkgPT0gMSkKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICBmb3IgKGF1dG8mIGlubGluZUxldmVsQm94IDogbGluZUJveC5u
b25Sb290SW5saW5lTGV2ZWxCb3hlcygpKSB7Ci0gICAgICAgICAgICAvLyBGaWx0ZXIgb3V0IGVt
cHR5IGlubGluZSBib3hlcyBlLmcuIDxkaXY+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bhbj48YnI+
PC9kaXY+Ci0gICAgICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNJbmxpbmVCb3goKSAmJiBp
bmxpbmVMZXZlbEJveC5oYXNDb250ZW50KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwotICAgICAgICB9CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitib29sIElubGluZUZv
cm1hdHRpbmdRdWlya3M6OmlubGluZUJveEFmZmVjdHNMaW5lQm94KGNvbnN0IElubGluZUxldmVs
Qm94JiBpbmxpbmVMZXZlbEJveCkgY29uc3QKK3sKKyAgICBBU1NFUlQoIWxheW91dFN0YXRlKCku
aW5TdGFuZGFyZHNNb2RlKCkpOworICAgIEFTU0VSVChpbmxpbmVMZXZlbEJveC5pc0lubGluZUJv
eCgpKTsKKyAgICAvLyBJbmxpbmUgYm94ZXMgKGUuZy4gcm9vdCBpbmxpbmUgYm94IG9yIDxzcGFu
PikgYWZmZWN0cyBsaW5lIGJveGVzIGVpdGhlciB0aHJvdWdoIHRoZSBzdHJ1dCBvciBhY3R1YWwg
Y29udGVudC4KKyAgICBpZiAoaW5saW5lTGV2ZWxCb3guaGFzQ29udGVudCgpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNSb290SW5saW5lQm94KCkpIHsK
KyAgICAgICAgLy8gVGhpcyByb290IGlubGluZSBib3ggaGFzIG5vIGRpcmVjdCB0ZXh0IGNvbnRl
bnQgYW5kIHdlIGFyZSBpbiBub24tc3RhbmRhcmRzIG1vZGUuCisgICAgICAgIC8vIE5vdyBhY2Nv
cmRpbmcgdG8gbGVnYWN5IGxpbmUgbGF5b3V0LCB3ZSBuZWVkIHRvIGFwcGx5IHRoZSBmb2xsb3dp
bmcgbGlzdC1pdGVtIHNwZWNpZmljIHF1aXJrOgorICAgICAgICAvLyBXZSBkbyBub3QgY3JlYXRl
IG1hcmtlcnMgZm9yIGxpc3QgaXRlbXMgd2hlbiB0aGUgbGlzdC1zdHlsZS10eXBlIGlzIG5vbmUs
IHdoaWxlIG90aGVyIGJyb3dzZXJzIGRvLgorICAgICAgICAvLyBUaGUgc2lkZSBlZmZlY3Qgb2Yg
aGF2aW5nIG5vIG1hcmtlciBpcyB0aGF0IGluIHF1aXJrcyBtb2RlIHdlIGhhdmUgdG8gc3BlY2lm
aWNhbGx5IGNoZWNrIGZvciBsaXN0LWl0ZW0KKyAgICAgICAgLy8gYW5kIG1ha2Ugc3VyZSBpdCBp
cyB0cmVhdGVkIGFzIGlmIGl0IGhhZCBjb250ZW50IGFuZCBzdHJldGNoZWQgdGhlIGxpbmUuCisg
ICAgICAgIC8vIHNlZSBMZWdhY3lJbmxpbmVGbG93Qm94IGMndG9yLgorICAgICAgICByZXR1cm4g
aW5saW5lTGV2ZWxCb3gubGF5b3V0Qm94KCkuc3R5bGUoKS5pc09yaWdpbmFsRGlzcGxheUxpc3RJ
dGVtVHlwZSgpOwogICAgIH0KLSAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNJbmxpbmVCb3goKSkg
ewotICAgICAgICAvLyBJbmxpbmUgYm94ZXMgKGUuZy4gcm9vdCBpbmxpbmUgYm94IG9yIDxzcGFu
PikgYWZmZWN0cyBsaW5lIGJveGVzIGVpdGhlciB0aHJvdWdoIHRoZSBzdHJ1dCBvciBhY3R1YWwg
Y29udGVudC4KLSAgICAgICAgaWYgKGlubGluZUxldmVsQm94Lmhhc0NvbnRlbnQoKSkKLSAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNSb290SW5s
aW5lQm94KCkpIHsKLSAgICAgICAgICAgIC8vIFRoaXMgcm9vdCBpbmxpbmUgYm94IGhhcyBubyBk
aXJlY3QgdGV4dCBjb250ZW50IGFuZCB3ZSBhcmUgaW4gbm9uLXN0YW5kYXJkcyBtb2RlLgotICAg
ICAgICAgICAgLy8gTm93IGFjY29yZGluZyB0byBsZWdhY3kgbGluZSBsYXlvdXQsIHdlIG5lZWQg
dG8gYXBwbHkgdGhlIGZvbGxvd2luZyBsaXN0LWl0ZW0gc3BlY2lmaWMgcXVpcms6Ci0gICAgICAg
ICAgICAvLyBXZSBkbyBub3QgY3JlYXRlIG1hcmtlcnMgZm9yIGxpc3QgaXRlbXMgd2hlbiB0aGUg
bGlzdC1zdHlsZS10eXBlIGlzIG5vbmUsIHdoaWxlIG90aGVyIGJyb3dzZXJzIGRvLgotICAgICAg
ICAgICAgLy8gVGhlIHNpZGUgZWZmZWN0IG9mIGhhdmluZyBubyBtYXJrZXIgaXMgdGhhdCBpbiBx
dWlya3MgbW9kZSB3ZSBoYXZlIHRvIHNwZWNpZmljYWxseSBjaGVjayBmb3IgbGlzdC1pdGVtCi0g
ICAgICAgICAgICAvLyBhbmQgbWFrZSBzdXJlIGl0IGlzIHRyZWF0ZWQgYXMgaWYgaXQgaGFkIGNv
bnRlbnQgYW5kIHN0cmV0Y2hlZCB0aGUgbGluZS4KLSAgICAgICAgICAgIC8vIHNlZSBMZWdhY3lJ
bmxpbmVGbG93Qm94IGMndG9yLgotICAgICAgICAgICAgcmV0dXJuIGlubGluZUxldmVsQm94Lmxh
eW91dEJveCgpLnN0eWxlKCkuaXNPcmlnaW5hbERpc3BsYXlMaXN0SXRlbVR5cGUoKTsKLSAgICAg
ICAgfQotICAgICAgICAvLyBOb24tcm9vdCBpbmxpbmUgYm94ZXMgKGUuZy4gPHNwYW4+KS4KLSAg
ICAgICAgYXV0byYgYm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21ldHJ5Rm9y
Qm94KGlubGluZUxldmVsQm94LmxheW91dEJveCgpKTsKLSAgICAgICAgaWYgKGJveEdlb21ldHJ5
Lmhvcml6b250YWxCb3JkZXIoKSB8fCBib3hHZW9tZXRyeS5ob3Jpem9udGFsUGFkZGluZygpLnZh
bHVlX29yKDBfbHUpKSB7Ci0gICAgICAgICAgICAvLyBIb3Jpem9udGFsIGJvcmRlciBhbmQgcGFk
ZGluZyBtYWtlIHRoZSBpbmxpbmUgYm94IHN0cmV0Y2ggdGhlIGxpbmUgKGUuZy4gPHNwYW4gc3R5
bGU9InBhZGRpbmc6IDEwcHg7Ij48L3NwYW4+KS4KLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBOb24tcm9vdCBpbmxpbmUg
Ym94ZXMgKGUuZy4gPHNwYW4+KS4KKyAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1hdHRpbmdD
b250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goaW5saW5lTGV2ZWxCb3gubGF5b3V0Qm94KCkpOworICAg
IGlmIChib3hHZW9tZXRyeS5ob3Jpem9udGFsQm9yZGVyKCkgfHwgYm94R2VvbWV0cnkuaG9yaXpv
bnRhbFBhZGRpbmcoKS52YWx1ZV9vcigwX2x1KSkgeworICAgICAgICAvLyBIb3Jpem9udGFsIGJv
cmRlciBhbmQgcGFkZGluZyBtYWtlIHRoZSBpbmxpbmUgYm94IHN0cmV0Y2ggdGhlIGxpbmUgKGUu
Zy4gPHNwYW4gc3R5bGU9InBhZGRpbmc6IDEwcHg7Ij48L3NwYW4+KS4KKyAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBmYWxz
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oCmlu
ZGV4IDQ1NWRmZTRmNGM1Mi4uZTdjZjViNzk1NzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nUXVpcmtz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oCkBAIC00MCw3ICs0MCw4IEBAIHB1YmxpYzoKICAgICBi
b29sIHNob3VsZFByZXNlcnZlVHJhaWxpbmdXaGl0ZXNwYWNlKGJvb2wgaXNJbkludHJpbnNpY1dp
ZHRoTW9kZSwgYm9vbCBsaW5lSGFzQmlkaUNvbnRlbnQsIGJvb2wgbGluZUhhc092ZXJmbG93LCBi
b29sIGxpbmVFbmRXaXRoTGluZUJyZWFrKSBjb25zdDsKICAgICBib29sIHRyYWlsaW5nTm9uQnJl
YWtpbmdTcGFjZU5lZWRzQWRqdXN0bWVudChib29sIGlzSW5JbnRyaW5zaWNXaWR0aE1vZGUsIGJv
b2wgbGluZUhhc092ZXJmbG93KSBjb25zdDsKICAgICBJbmxpbmVMYXlvdXRVbml0IGluaXRpYWxM
aW5lSGVpZ2h0KCkgY29uc3Q7Ci0gICAgYm9vbCBpbmxpbmVMZXZlbEJveEFmZmVjdHNMaW5lQm94
KGNvbnN0IElubGluZUxldmVsQm94JiwgY29uc3QgTGluZUJveCYpIGNvbnN0OworICAgIGJvb2wg
aW5saW5lQm94QWZmZWN0c0xpbmVCb3goY29uc3QgSW5saW5lTGV2ZWxCb3gmKSBjb25zdDsKKyAg
ICBzdGF0aWMgYm9vbCBsaW5lQnJlYWtCb3hBZmZlY3RzUGFyZW50SW5saW5lQm94KGNvbnN0IExp
bmVCb3gmKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3Jt
YXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWls
ZGVyLmNwcAppbmRleCAwMWU1NWE1YzJjZmMuLjEwMTNjNzUzNGUwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJv
eEJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4
dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcApAQCAtMjIwLDI2ICsyMjAsMjUgQEAg
dm9pZCBMaW5lQm94QnVpbGRlcjo6c2V0VmVydGljYWxQcm9wZXJ0aWVzRm9ySW5saW5lTGV2ZWxC
b3goY29uc3QgTGluZUJveCYgbGluZUIKICAgICAgICAgaW5saW5lTGV2ZWxCb3guc2V0RGVzY2Vu
dChhc2NlbnRBbmREZXNjZW50LmRlc2NlbnQpOwogICAgIH07CiAKLSAgICBhdXRvIHNldExheW91
dEJvdW5kcyA9IFsmXSAoYXV0byYgdGV4dE1ldHJpY3MpIHsKLSAgICAgICAgYXV0byBsb2dpY2Fs
SGVpZ2h0ID0gdGV4dE1ldHJpY3MuYXNjZW50QW5kRGVzY2VudC5hc2NlbnQgKyB0ZXh0TWV0cmlj
cy5hc2NlbnRBbmREZXNjZW50LmRlc2NlbnQ7Ci0gICAgICAgIGF1dG8gaGFsZkxlYWRpbmcgPSBJ
bmxpbmVMYXlvdXRVbml0IHsgfTsKLSAgICAgICAgaWYgKHRleHRNZXRyaWNzLnByZWZlcnJlZExp
bmVIZWlnaHQpIHsKLSAgICAgICAgICAgIC8vIElmIGxpbmUtaGVpZ2h0IGNvbXB1dGVzIHRvIG5v
cm1hbCBhbmQgZWl0aGVyIHRleHQtZWRnZSBpcyBsZWFkaW5nIG9yIHRoaXMgaXMgdGhlIHJvb3Qg
aW5saW5lIGJveCwKLSAgICAgICAgICAgIC8vIHRoZSBmb2504oCZcyBsaW5lIGdhcCBtZXRyaWMg
bWF5IGFsc28gYmUgaW5jb3Jwb3JhdGVkIGludG8gQSBhbmQgRCBieSBhZGRpbmcgaGFsZiB0byBl
YWNoIHNpZGUgYXMgaGFsZi1sZWFkaW5nLgotICAgICAgICAgICAgLy8gaHR0cHM6Ly93d3cudzMu
b3JnL1RSL2Nzcy1pbmxpbmUtMy8jaW5saW5lLWhlaWdodAotICAgICAgICAgICAgLy8gU2luY2Ug
dGV4dC1lZGdlIGlzIG5vdCBzdXBwb3J0ZWQgeWV0IGFuZCB0aGUgaW5pdGlhbCB2YWx1ZSBpcyBs
ZWFkaW5nLCB3ZSBzaG91bGQganVzdCBhcHBseSBpdCB0bwotICAgICAgICAgICAgLy8gYWxsIGlu
bGluZSBib3hlcy4KLSAgICAgICAgICAgIGhhbGZMZWFkaW5nID0gKCp0ZXh0TWV0cmljcy5wcmVm
ZXJyZWRMaW5lSGVpZ2h0IC0gbG9naWNhbEhlaWdodCkgLyAyOwotICAgICAgICB9IGVsc2Ugewot
ICAgICAgICAgICAgLy8gUHJlZmVycmVkIGxpbmUgaGVpZ2h0IGlzIHB1cmVseSBmb250IG1ldHJp
Y3MgYmFzZWQgKGkuZSBnbHlwaHMgc3RyZXRjaCB0aGUgbGluZSkuCi0gICAgICAgICAgICBoYWxm
TGVhZGluZyA9ICh0ZXh0TWV0cmljcy5saW5lR2FwIC0gbG9naWNhbEhlaWdodCkgLyAyOwotICAg
ICAgICB9Ci0gICAgICAgIGlubGluZUxldmVsQm94LnNldExheW91dEJvdW5kcyh7IGZsb29yZih0
ZXh0TWV0cmljcy5hc2NlbnRBbmREZXNjZW50LmFzY2VudCArIGhhbGZMZWFkaW5nKSwgY2VpbGYo
dGV4dE1ldHJpY3MuYXNjZW50QW5kRGVzY2VudC5kZXNjZW50ICsgaGFsZkxlYWRpbmcpIH0pOwot
ICAgIH07Ci0KICAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNJbmxpbmVCb3goKSkgewogICAgICAg
ICBhdXRvIHRleHRNZXRyaWNzID0gcHJpbWFyeUZvbnRNZXRyaWNzRm9ySW5saW5lQm94KGlubGlu
ZUxldmVsQm94LCBsaW5lQm94LmJhc2VsaW5lVHlwZSgpKTsKLSAgICAgICAgc2V0TGF5b3V0Qm91
bmRzKHRleHRNZXRyaWNzKTsKKyAgICAgICAgYXV0byBzZXRMYXlvdXRCb3VuZHMgPSBbJl0gewor
ICAgICAgICAgICAgYXV0byBsb2dpY2FsSGVpZ2h0ID0gdGV4dE1ldHJpY3MuYXNjZW50QW5kRGVz
Y2VudC5hc2NlbnQgKyB0ZXh0TWV0cmljcy5hc2NlbnRBbmREZXNjZW50LmRlc2NlbnQ7CisgICAg
ICAgICAgICBhdXRvIGhhbGZMZWFkaW5nID0gSW5saW5lTGF5b3V0VW5pdCB7IH07CisgICAgICAg
ICAgICBpZiAodGV4dE1ldHJpY3MucHJlZmVycmVkTGluZUhlaWdodCkgeworICAgICAgICAgICAg
ICAgIC8vIElmIGxpbmUtaGVpZ2h0IGNvbXB1dGVzIHRvIG5vcm1hbCBhbmQgZWl0aGVyIHRleHQt
ZWRnZSBpcyBsZWFkaW5nIG9yIHRoaXMgaXMgdGhlIHJvb3QgaW5saW5lIGJveCwKKyAgICAgICAg
ICAgICAgICAvLyB0aGUgZm9udOKAmXMgbGluZSBnYXAgbWV0cmljIG1heSBhbHNvIGJlIGluY29y
cG9yYXRlZCBpbnRvIEEgYW5kIEQgYnkgYWRkaW5nIGhhbGYgdG8gZWFjaCBzaWRlIGFzIGhhbGYt
bGVhZGluZy4KKyAgICAgICAgICAgICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIvY3NzLWlu
bGluZS0zLyNpbmxpbmUtaGVpZ2h0CisgICAgICAgICAgICAgICAgLy8gU2luY2UgdGV4dC1lZGdl
IGlzIG5vdCBzdXBwb3J0ZWQgeWV0IGFuZCB0aGUgaW5pdGlhbCB2YWx1ZSBpcyBsZWFkaW5nLCB3
ZSBzaG91bGQganVzdCBhcHBseSBpdCB0bworICAgICAgICAgICAgICAgIC8vIGFsbCBpbmxpbmUg
Ym94ZXMuCisgICAgICAgICAgICAgICAgaGFsZkxlYWRpbmcgPSAoKnRleHRNZXRyaWNzLnByZWZl
cnJlZExpbmVIZWlnaHQgLSBsb2dpY2FsSGVpZ2h0KSAvIDI7CisgICAgICAgICAgICB9IGVsc2Ug
eworICAgICAgICAgICAgICAgIC8vIFByZWZlcnJlZCBsaW5lIGhlaWdodCBpcyBwdXJlbHkgZm9u
dCBtZXRyaWNzIGJhc2VkIChpLmUgZ2x5cGhzIHN0cmV0Y2ggdGhlIGxpbmUpLgorICAgICAgICAg
ICAgICAgIGhhbGZMZWFkaW5nID0gKHRleHRNZXRyaWNzLmxpbmVHYXAgLSBsb2dpY2FsSGVpZ2h0
KSAvIDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbmxpbmVMZXZlbEJveC5zZXRMYXlv
dXRCb3VuZHMoeyBmbG9vcmYodGV4dE1ldHJpY3MuYXNjZW50QW5kRGVzY2VudC5hc2NlbnQgKyBo
YWxmTGVhZGluZyksIGNlaWxmKHRleHRNZXRyaWNzLmFzY2VudEFuZERlc2NlbnQuZGVzY2VudCAr
IGhhbGZMZWFkaW5nKSB9KTsKKyAgICAgICAgfTsKKyAgICAgICAgc2V0TGF5b3V0Qm91bmRzKCk7
CiAgICAgICAgIC8vIFdlIG5lZWQgZmxvb3IvY2VpbCB0byBtYXRjaCBsZWdhY3kgbGF5b3V0IGlu
dGVncmFsIHBvc2l0aW9uaW5nLgogICAgICAgICBzZXRBc2NlbnRBbmREZXNjZW50KEFzY2VudEFu
ZERlc2NlbnQgeyBmbG9vcmYodGV4dE1ldHJpY3MuYXNjZW50QW5kRGVzY2VudC5hc2NlbnQpLCBj
ZWlsZih0ZXh0TWV0cmljcy5hc2NlbnRBbmREZXNjZW50LmRlc2NlbnQpIH0pOwogICAgICAgICBp
bmxpbmVMZXZlbEJveC5zZXRMb2dpY2FsSGVpZ2h0KHRleHRNZXRyaWNzLmFzY2VudEFuZERlc2Nl
bnQuaGVpZ2h0KCkpOwpAQCAtMjQ3LDcgKzI0Niw2IEBAIHZvaWQgTGluZUJveEJ1aWxkZXI6OnNl
dFZlcnRpY2FsUHJvcGVydGllc0ZvcklubGluZUxldmVsQm94KGNvbnN0IExpbmVCb3gmIGxpbmVC
CiAgICAgfQogICAgIGlmIChpbmxpbmVMZXZlbEJveC5pc0xpbmVCcmVha0JveCgpKSB7CiAgICAg
ICAgIGF1dG8gcGFyZW50VGV4dE1ldHJpY3MgPSBwcmltYXJ5Rm9udE1ldHJpY3NGb3JJbmxpbmVC
b3gobGluZUJveC5pbmxpbmVMZXZlbEJveEZvckxheW91dEJveChpbmxpbmVMZXZlbEJveC5sYXlv
dXRCb3goKS5wYXJlbnQoKSksIGxpbmVCb3guYmFzZWxpbmVUeXBlKCkpOwotICAgICAgICBzZXRM
YXlvdXRCb3VuZHMocGFyZW50VGV4dE1ldHJpY3MpOwogICAgICAgICAvLyBXZSBuZWVkIGZsb29y
L2NlaWwgdG8gbWF0Y2ggbGVnYWN5IGxheW91dCBpbnRlZ3JhbCBwb3NpdGlvbmluZy4KICAgICAg
ICAgc2V0QXNjZW50QW5kRGVzY2VudChBc2NlbnRBbmREZXNjZW50IHsgZmxvb3JmKHBhcmVudFRl
eHRNZXRyaWNzLmFzY2VudEFuZERlc2NlbnQuYXNjZW50KSwgY2VpbGYocGFyZW50VGV4dE1ldHJp
Y3MuYXNjZW50QW5kRGVzY2VudC5kZXNjZW50KSB9KTsKICAgICAgICAgaW5saW5lTGV2ZWxCb3gu
c2V0TG9naWNhbEhlaWdodChwYXJlbnRUZXh0TWV0cmljcy5hc2NlbnRBbmREZXNjZW50LmhlaWdo
dCgpKTsKQEAgLTI2MywxNCArMjYxLDEyIEBAIHZvaWQgTGluZUJveEJ1aWxkZXI6OnNldFZlcnRp
Y2FsUHJvcGVydGllc0ZvcklubGluZUxldmVsQm94KGNvbnN0IExpbmVCb3gmIGxpbmVCCiAgICAg
ICAgIGlmIChsaW5lQm94LmJhc2VsaW5lVHlwZSgpID09IElkZW9ncmFwaGljQmFzZWxpbmUpIHsK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVseSBvbiB0aGUgaW50ZWdyYXRpb24g
YmFzZWxpbmUuCiAgICAgICAgICAgICBhdXRvIHBhcmVudFRleHRNZXRyaWNzID0gcHJpbWFyeUZv
bnRNZXRyaWNzRm9ySW5saW5lQm94KGxpbmVCb3guaW5saW5lTGV2ZWxCb3hGb3JMYXlvdXRCb3go
aW5saW5lTGV2ZWxCb3gubGF5b3V0Qm94KCkucGFyZW50KCkpLCBsaW5lQm94LmJhc2VsaW5lVHlw
ZSgpKTsKLSAgICAgICAgICAgIHNldExheW91dEJvdW5kcyhwYXJlbnRUZXh0TWV0cmljcyk7CiAg
ICAgICAgICAgICAvLyBXZSBuZWVkIGZsb29yL2NlaWwgdG8gbWF0Y2ggbGVnYWN5IGxheW91dCBp
bnRlZ3JhbCBwb3NpdGlvbmluZy4KICAgICAgICAgICAgIHNldEFzY2VudEFuZERlc2NlbnQoQXNj
ZW50QW5kRGVzY2VudCB7IGZsb29yZihwYXJlbnRUZXh0TWV0cmljcy5hc2NlbnRBbmREZXNjZW50
LmFzY2VudCksIGNlaWxmKHBhcmVudFRleHRNZXRyaWNzLmFzY2VudEFuZERlc2NlbnQuZGVzY2Vu
dCkgfSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYgKGF1dG8g
YXNjZW50ID0gZG93bmNhc3Q8RWxlbWVudEJveD4obGF5b3V0Qm94KS5iYXNlbGluZUZvckludGVn
cmF0aW9uKCkpIHsKICAgICAgICAgICAgIGF1dG8gdGV4dE1ldHJpY3MgPSBUZXh0TWV0cmljcyB7
IHsgKmFzY2VudCwgbWFyZ2luQm94SGVpZ2h0IC0gKmFzY2VudCB9LCB7IH0sIHsgfSB9OwotICAg
ICAgICAgICAgc2V0TGF5b3V0Qm91bmRzKHRleHRNZXRyaWNzKTsKICAgICAgICAgICAgIC8vIFdl
IG5lZWQgZmxvb3IvY2VpbCB0byBtYXRjaCBsZWdhY3kgbGF5b3V0IGludGVncmFsIHBvc2l0aW9u
aW5nLgogICAgICAgICAgICAgc2V0QXNjZW50QW5kRGVzY2VudChBc2NlbnRBbmREZXNjZW50IHsg
Zmxvb3JmKHRleHRNZXRyaWNzLmFzY2VudEFuZERlc2NlbnQuYXNjZW50KSwgY2VpbGYodGV4dE1l
dHJpY3MuYXNjZW50QW5kRGVzY2VudC5kZXNjZW50KSB9KTsKICAgICAgICAgICAgIHJldHVybjsK
QEAgLTQxNyw2ICs0MTMsOSBAQCB2b2lkIExpbmVCb3hCdWlsZGVyOjpjb25zdHJ1Y3RJbmxpbmVM
ZXZlbEJveGVzKExpbmVCb3gmIGxpbmVCb3gsIGNvbnN0IExpbmVCdWlsZAogICAgICAgICAgICAg
YXV0byBsaW5lQnJlYWtCb3ggPSBJbmxpbmVMZXZlbEJveDo6Y3JlYXRlTGluZUJyZWFrQm94KGxh
eW91dEJveCwgc3R5bGUsIGxvZ2ljYWxMZWZ0KTsKICAgICAgICAgICAgIHNldFZlcnRpY2FsUHJv
cGVydGllc0ZvcklubGluZUxldmVsQm94KGxpbmVCb3gsIGxpbmVCcmVha0JveCk7CiAgICAgICAg
ICAgICBsaW5lQm94LmFkZElubGluZUxldmVsQm94KFdURk1vdmUobGluZUJyZWFrQm94KSk7CisK
KyAgICAgICAgICAgIGlmIChsYXlvdXRTdGF0ZSgpLmluU3RhbmRhcmRzTW9kZSgpIHx8IElubGlu
ZUZvcm1hdHRpbmdRdWlya3M6OmxpbmVCcmVha0JveEFmZmVjdHNQYXJlbnRJbmxpbmVCb3gobGlu
ZUJveCkpCisgICAgICAgICAgICAgICAgbGluZUJveC5pbmxpbmVMZXZlbEJveEZvckxheW91dEJv
eChsYXlvdXRCb3gucGFyZW50KCkpLnNldEhhc0NvbnRlbnQoKTsKICAgICAgICAgICAgIGNvbnRp
bnVlOwogICAgICAgICB9CiAgICAgICAgIGlmIChydW4uaXNXb3JkQnJlYWtPcHBvcnR1bml0eSgp
KSB7CkBAIC01NTksNyArNTU4LDcgQEAgdm9pZCBMaW5lQm94QnVpbGRlcjo6YWRqdXN0SWRlb2dy
YXBoaWNCYXNlbGluZUlmQXBwbGljYWJsZShMaW5lQm94JiBsaW5lQm94LCBzaXoKICAgICAgICAg
ICAgIGlubGluZUxldmVsQm94LnNldEFzY2VudChpZGVvZ3JhcGhpY0Jhc2VsaW5lKTsKICAgICAg
ICAgfQogCi0gICAgICAgIGF1dG8gbmVlZHNGb250RmFsbGJhY2tBZGp1c3RtZW50ID0gaW5saW5l
TGV2ZWxCb3guaXNJbmxpbmVCb3goKSB8fCBpbmxpbmVMZXZlbEJveC5pc0xpbmVCcmVha0JveCgp
OworICAgICAgICBhdXRvIG5lZWRzRm9udEZhbGxiYWNrQWRqdXN0bWVudCA9IGlubGluZUxldmVs
Qm94LmlzSW5saW5lQm94KCk7CiAgICAgICAgIGlmIChuZWVkc0ZvbnRGYWxsYmFja0FkanVzdG1l
bnQpIHsKICAgICAgICAgICAgIGlmIChhdXRvIGZhbGxiYWNrRm9udHMgPSBtX2ZhbGxiYWNrRm9u
dHNGb3JJbmxpbmVCb3hlcy5nZXQoJmlubGluZUxldmVsQm94KTsgIWZhbGxiYWNrRm9udHMuaXNF
bXB0eSgpICYmIGlubGluZUxldmVsQm94LmlzUHJlZmVycmVkTGluZUhlaWdodEZvbnRNZXRyaWNz
QmFzZWQoKSkKICAgICAgICAgICAgICAgICBpbmxpbmVMZXZlbEJveC5zZXRMYXlvdXRCb3VuZHMo
YWRqdXN0ZWRMYXlvdXRCb3VuZHNXaXRoRmFsbGJhY2tGb250cyhpbmxpbmVMZXZlbEJveCwgZmFs
bGJhY2tGb250cywgSWRlb2dyYXBoaWNCYXNlbGluZSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveFZlcnRp
Y2FsQWxpZ25lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRz
L2lubGluZS9JbmxpbmVMaW5lQm94VmVydGljYWxBbGlnbmVyLmNwcAppbmRleCBkNjQ3OGM4MDEx
NmQuLmMwNGExMDgyYWI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1h
dHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveFZlcnRpY2FsQWxpZ25lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
TGluZUJveFZlcnRpY2FsQWxpZ25lci5jcHAKQEAgLTE1MSw3ICsxNTEsNyBAQCBMaW5lQm94VmVy
dGljYWxBbGlnbmVyOjpMaW5lQm94QWxpZ25tZW50Q29udGVudCBMaW5lQm94VmVydGljYWxBbGln
bmVyOjpjb21wdXRlTAogCiAgICAgYXV0byBtaW5pbXVtTG9naWNhbFRvcCA9IHN0ZDo6b3B0aW9u
YWw8SW5saW5lTGF5b3V0VW5pdD4geyB9OwogICAgIGF1dG8gbWF4aW11bUxvZ2ljYWxCb3R0b20g
PSBzdGQ6Om9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHsgfTsKLSAgICBpZiAoZm9ybWF0dGlu
Z0dlb21ldHJ5LmlubGluZUxldmVsQm94QWZmZWN0c0xpbmVCb3gocm9vdElubGluZUJveCwgbGlu
ZUJveCkpIHsKKyAgICBpZiAoZm9ybWF0dGluZ0dlb21ldHJ5LmlubGluZUxldmVsQm94QWZmZWN0
c0xpbmVCb3gocm9vdElubGluZUJveCkpIHsKICAgICAgICAgbWluaW11bUxvZ2ljYWxUb3AgPSBJ
bmxpbmVMYXlvdXRVbml0IHsgfTsKICAgICAgICAgbWF4aW11bUxvZ2ljYWxCb3R0b20gPSByb290
SW5saW5lQm94LmxheW91dEJvdW5kcygpLT5oZWlnaHQoKTsKICAgICAgICAgaW5saW5lTGV2ZWxC
b3hBYnNvbHV0ZVRvcEFuZEJvdHRvbU1hcC5hZGQoJnJvb3RJbmxpbmVCb3gsIEFic29sdXRlVG9w
QW5kQm90dG9tIHsgKm1pbmltdW1Mb2dpY2FsVG9wLCAqbWF4aW11bUxvZ2ljYWxCb3R0b20gfSk7
CkBAIC0yMjksNyArMjI5LDcgQEAgTGluZUJveFZlcnRpY2FsQWxpZ25lcjo6TGluZUJveEFsaWdu
bWVudENvbnRlbnQgTGluZUJveFZlcnRpY2FsQWxpZ25lcjo6Y29tcHV0ZUwKICAgICAgICAgYXV0
byBhYnNvbHV0ZUxvZ2ljYWxCb3R0b20gPSBhYnNvbHV0ZUxvZ2ljYWxUb3AgKyBsb2dpY2FsSGVp
Z2h0OwogICAgICAgICBpbmxpbmVMZXZlbEJveEFic29sdXRlVG9wQW5kQm90dG9tTWFwLmFkZCgm
aW5saW5lTGV2ZWxCb3gsIEFic29sdXRlVG9wQW5kQm90dG9tIHsgYWJzb2x1dGVMb2dpY2FsVG9w
LCBhYnNvbHV0ZUxvZ2ljYWxCb3R0b20gfSk7CiAgICAgICAgIC8vIFN0cmV0Y2ggdGhlIG1pbi9t
YXggYWJzb2x1dGUgdmFsdWVzIGlmIGFwcGxpY2FibGUuCi0gICAgICAgIGlmIChmb3JtYXR0aW5n
R2VvbWV0cnkuaW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveChpbmxpbmVMZXZlbEJveCwgbGlu
ZUJveCkpIHsKKyAgICAgICAgaWYgKGZvcm1hdHRpbmdHZW9tZXRyeS5pbmxpbmVMZXZlbEJveEFm
ZmVjdHNMaW5lQm94KGlubGluZUxldmVsQm94KSkgewogICAgICAgICAgICAgbWluaW11bUxvZ2lj
YWxUb3AgPSBzdGQ6Om1pbihtaW5pbXVtTG9naWNhbFRvcC52YWx1ZV9vcihhYnNvbHV0ZUxvZ2lj
YWxUb3ApLCBhYnNvbHV0ZUxvZ2ljYWxUb3ApOwogICAgICAgICAgICAgbWF4aW11bUxvZ2ljYWxC
b3R0b20gPSBzdGQ6Om1heChtYXhpbXVtTG9naWNhbEJvdHRvbS52YWx1ZV9vcihhYnNvbHV0ZUxv
Z2ljYWxCb3R0b20pLCBhYnNvbHV0ZUxvZ2ljYWxCb3R0b20pOwogICAgICAgICB9CkBAIC0yNDAs
NyArMjQwLDcgQEAgTGluZUJveFZlcnRpY2FsQWxpZ25lcjo6TGluZUJveEFsaWdubWVudENvbnRl
bnQgTGluZUJveFZlcnRpY2FsQWxpZ25lcjo6Y29tcHV0ZUwKICAgICBhdXRvIG5vbkJvdHRvbUFs
aWduZWRCb3hlc01heGltdW1IZWlnaHQgPSB2YWx1ZU9yRGVmYXVsdChtYXhpbXVtTG9naWNhbEJv
dHRvbSkgLSB2YWx1ZU9yRGVmYXVsdChtaW5pbXVtTG9naWNhbFRvcCk7CiAgICAgYXV0byBib3R0
b21BbGlnbmVkQm94ZXNNYXhpbXVtSGVpZ2h0ID0gc3RkOjpvcHRpb25hbDxJbmxpbmVMYXlvdXRV
bml0PiB7IH07CiAgICAgZm9yIChhdXRvKiBsaW5lQm94UmVsYXRpdmVJbmxpbmVMZXZlbEJveCA6
IGxpbmVCb3hSZWxhdGl2ZUlubGluZUxldmVsQm94ZXMpIHsKLSAgICAgICAgaWYgKCFmb3JtYXR0
aW5nR2VvbWV0cnkuaW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveCgqbGluZUJveFJlbGF0aXZl
SW5saW5lTGV2ZWxCb3gsIGxpbmVCb3gpKQorICAgICAgICBpZiAoIWZvcm1hdHRpbmdHZW9tZXRy
eS5pbmxpbmVMZXZlbEJveEFmZmVjdHNMaW5lQm94KCpsaW5lQm94UmVsYXRpdmVJbmxpbmVMZXZl
bEJveCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgLy8gVGhpcyBsaW5lIGJveCBy
ZWxhdGl2ZSBhbGlnbmVkIGlubGluZSBsZXZlbCBib3ggc3RyZXRjaGVzIHRoZSBsaW5lIGJveC4K
ICAgICAgICAgYXV0byBpbmxpbmVMZXZlbEJveEhlaWdodCA9IGxpbmVCb3hSZWxhdGl2ZUlubGlu
ZUxldmVsQm94LT5sYXlvdXRCb3VuZHMoKSA/IGxpbmVCb3hSZWxhdGl2ZUlubGluZUxldmVsQm94
LT5sYXlvdXRCb3VuZHMoKS0+aGVpZ2h0KCkgOiBsaW5lQm94UmVsYXRpdmVJbmxpbmVMZXZlbEJv
eC0+bG9naWNhbEhlaWdodCgpOwpAQCAtMjY3LDEyICsyNjcsMTIgQEAgdm9pZCBMaW5lQm94VmVy
dGljYWxBbGlnbmVyOjpjb21wdXRlUm9vdElubGluZUJveFZlcnRpY2FsUG9zaXRpb24oTGluZUJv
eCYgbGluZUIKICAgICBpbmxpbmVMZXZlbEJveEFic29sdXRlQmFzZWxpbmVPZmZzZXRNYXAuYWRk
KCZyb290SW5saW5lQm94LCBJbmxpbmVMYXlvdXRVbml0IHsgfSk7CiAKICAgICBhdXRvIG1heGlt
dW1Ub3BPZmZzZXRGcm9tUm9vdElubGluZUJveEJhc2VsaW5lID0gc3RkOjpvcHRpb25hbDxJbmxp
bmVMYXlvdXRVbml0PiB7IH07Ci0gICAgaWYgKGZvcm1hdHRpbmdHZW9tZXRyeS5pbmxpbmVMZXZl
bEJveEFmZmVjdHNMaW5lQm94KHJvb3RJbmxpbmVCb3gsIGxpbmVCb3gpKQorICAgIGlmIChmb3Jt
YXR0aW5nR2VvbWV0cnkuaW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveChyb290SW5saW5lQm94
KSkKICAgICAgICAgbWF4aW11bVRvcE9mZnNldEZyb21Sb290SW5saW5lQm94QmFzZWxpbmUgPSBy
b290SW5saW5lQm94LmxheW91dEJvdW5kcygpLT5hc2NlbnQ7CiAKICAgICBhdXRvIGFmZmVjdHNS
b290SW5saW5lQm94VmVydGljYWxQb3NpdGlvbiA9IFsmXShhdXRvJiBpbmxpbmVMZXZlbEJveCkg
ewotICAgICAgICBhdXRvIGlubGluZUxldmVsQm94U3RyZWNoZXNMaW5lQm94ID0gZm9ybWF0dGlu
Z0dlb21ldHJ5LmlubGluZUxldmVsQm94QWZmZWN0c0xpbmVCb3goaW5saW5lTGV2ZWxCb3gsIGxp
bmVCb3gpOwotICAgICAgICByZXR1cm4gaW5saW5lTGV2ZWxCb3hTdHJlY2hlc0xpbmVCb3ggfHwg
KGlubGluZUxldmVsQm94LmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSAmJiBpbmxpbmVMZXZlbEJv
eC5hc2NlbnQoKSAmJiBpbmxpbmVMZXZlbEJveC5saW5lQm94Q29udGFpbigpKTsKKyAgICAgICAg
YXV0byBpbmxpbmVMZXZlbEJveFN0cmVjaGVzTGluZUJveCA9IGZvcm1hdHRpbmdHZW9tZXRyeS5p
bmxpbmVMZXZlbEJveEFmZmVjdHNMaW5lQm94KGlubGluZUxldmVsQm94KTsKKyAgICAgICAgcmV0
dXJuIGlubGluZUxldmVsQm94U3RyZWNoZXNMaW5lQm94IHx8ICgoaW5saW5lTGV2ZWxCb3guaXNB
dG9taWNJbmxpbmVMZXZlbEJveCgpICYmICFpbmxpbmVMZXZlbEJveC5pc0xpc3RNYXJrZXIoKSkg
JiYgaW5saW5lTGV2ZWxCb3guYXNjZW50KCkgJiYgaW5saW5lTGV2ZWxCb3gubGluZUJveENvbnRh
aW4oKSk7CiAgICAgfTsKIAogICAgIGZvciAoYXV0byYgaW5saW5lTGV2ZWxCb3ggOiBsaW5lQm94
Lm5vblJvb3RJbmxpbmVMZXZlbEJveGVzKCkpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463830</attachid>
            <date>2022-12-01 08:08:00 -0800</date>
            <delta_ts>2022-12-02 09:08:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-248506-20221201080800.patch</filename>
            <type>text/plain</type>
            <size>22665</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">RnJvbSA2MjMyMTQzMWZjYWFlMzNhMTE5NTk4MzVjYzRiMzY2Y2MzMmJmODdjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGFuIEJhcmFkbGF5IDx6YWxhbkBhcHBsZS5jb20+CkRhdGU6
IFR1ZSwgMjkgTm92IDIwMjIgMTY6Mzc6MzYgLTA4MDAKU3ViamVjdDogW1BBVENIXSBbTEZDXVtJ
RkNdIExheW91dCBib3VuZHMgc2hvdWxkIGJlIHNldCBvbiBpbmxpbmUgYm94ZXMgb25seQogaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI0ODUwNgoKUmV2aWV3ZWQgYnkg
QW50dGkgS29pdmlzdG8uCgoxLiBEbyBub3Qgc2V0ICJsYXlvdXQgYm91bmRzIiBvbiBub24taW5s
aW5lIGJveGVzIChzcGVjIGFncmVlcyBoZXJlKQoyLiBNYWtlIHN1cmUgaGFyZCBsaW5lIGJyZWFr
cyBzdGlsbCBzdHJldGNoIHRoZWlyIHBhcmVudCBpbmxpbmUgYm94ZXMgd2hlbiBhcHBsaWNhYmxl
CgpDdXJyZW50IGJlaGF2aW9yOgoxLiBMaW5lIGJyZWFrIGJveCBnZXRzIGNvbXB1dGVkIGxheW91
dCBib3VuZHMKMi4gV2hlbiB0aGUgbGluZSBicmVhayBib3ggYWZmZWN0cyB0aGUgbGluZSBib3gs
IHdlIHN0cmV0Y2ggdGhlIGxpbmUgYnkgdGhlIGNvbXB1dGVkIGxheW91dCBib3VuZHMgdmFsdWUK
ClBhdGNoIGJlaGF2aW9yOgoxLiBMaW5lIGJyZWFrIGJveCBtYWtlcyB0aGUgcGFyZW50IGlubGlu
ZSBib3ggImNvbnRlbnRmdWwiIHdoZW4gYXBwbGljYWJsZSAodGhpcyBpcyB0aGUgc2FtZSBhcyAj
MiBhdCBjdXJyZW50IGJlaGF2aW9yKQoyLiBUaGUgImNvbnRlbnRmdWwiIGlubGluZSBib3ggKG1v
c3RseSB0aGUgcm9vdCBpbmxpbmUgYm94KSBzdHJldGNoZXMgdGhlIGxpbmUgYm94IGJ5IHRoZSBj
b21wdXRlZCBsYXlvdXQgYm91bmRzLgpJdCBtYWtlcyBicmVhayBib3ggYmVoYXZlIGxpa2UgcmVn
dWxhciAidGV4dCBjb250ZW50Iiwgd2hlcmUgdGhlIGNvbnRlbnQgaW5kaXJlY3RseSBhZmZlY3Rz
IHRoZSBsaW5lIGJveCBoZWlnaHQuCgpUaGlzIHBhdGNoIGlzIGFsc28gaW4gcHJlcGFyYXRpb24g
Zm9yIHN1cHBvcnRpbmcgdGV4dC1lZGdlLCB3aGVyZSB0ZXh0LWVkZ2UgYWZmZWN0cyB0aGUgbGF5
b3V0IGJvdW5kcyB2YWx1ZS4KCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250
ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5LmNwcDoKKFdlYkNvcmU6OkxheW91
dDo6SW5saW5lRm9ybWF0dGluZ0dlb21ldHJ5OjppbmxpbmVMZXZlbEJveEFmZmVjdHNMaW5lQm94
IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaDoKKiBTb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9y
bWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmNwcDoKKFdlYkNv
cmU6OkxheW91dDo6SW5saW5lRm9ybWF0dGluZ1F1aXJrczo6bGluZUJyZWFrQm94QWZmZWN0c1Bh
cmVudElubGluZUJveCk6CihXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZvcm1hdHRpbmdRdWlya3M6
OmlubGluZUJveEFmZmVjdHNMaW5lQm94IGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6SW5saW5l
Rm9ybWF0dGluZ1F1aXJrczo6aW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveCBjb25zdCk6IERl
bGV0ZWQuCiogU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oOgoqIFNvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0
aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcDoKKFdlYkNvcmU6Okxh
eW91dDo6TGluZUJveEJ1aWxkZXI6OnNldFZlcnRpY2FsUHJvcGVydGllc0ZvcklubGluZUxldmVs
Qm94IGNvbnN0KToKKFdlYkNvcmU6OkxheW91dDo6TGluZUJveEJ1aWxkZXI6OmNvbnN0cnVjdElu
bGluZUxldmVsQm94ZXMpOgooV2ViQ29yZTo6TGF5b3V0OjpMaW5lQm94QnVpbGRlcjo6YWRqdXN0
SWRlb2dyYXBoaWNCYXNlbGluZUlmQXBwbGljYWJsZSk6CiogU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveFZlcnRpY2FsQWxpZ25lci5j
cHA6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3hWZXJ0aWNhbEFsaWduZXI6OmNvbXB1dGVMaW5l
Qm94TG9naWNhbEhlaWdodCBjb25zdCk6CihXZWJDb3JlOjpMYXlvdXQ6OkxpbmVCb3hWZXJ0aWNh
bEFsaWduZXI6OmNvbXB1dGVSb290SW5saW5lQm94VmVydGljYWxQb3NpdGlvbiBjb25zdCk6Ci0t
LQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuY3BwICAgICAgIHwgMTAgKyst
CiAuLi4vaW5saW5lL0lubGluZUZvcm1hdHRpbmdHZW9tZXRyeS5oICAgICAgICAgfCAgMiArLQog
Li4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmNwcCAgICAgICAgIHwgODEgKysrKysr
KysrLS0tLS0tLS0tLQogLi4uL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmggICAgICAg
ICAgIHwgIDMgKy0KIC4uLi9pbmxpbmUvSW5saW5lTGluZUJveEJ1aWxkZXIuY3BwICAgICAgICAg
ICB8IDQzICsrKysrLS0tLS0KIC4uLi9pbmxpbmUvSW5saW5lTGluZUJveFZlcnRpY2FsQWxpZ25l
ci5jcHAgICB8IDEyICstLQogNiBmaWxlcyBjaGFuZ2VkLCA3NiBpbnNlcnRpb25zKCspLCA3NSBk
ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuY3BwIGIvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ0dl
b21ldHJ5LmNwcAppbmRleCBhZDExNDNjMjY4YzcuLmY1MGJjOGYwZjYxYSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9y
bWF0dGluZ0dlb21ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGlu
Z0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuY3BwCkBAIC0xMTksMTUg
KzExOSwxNyBAQCBDb250ZW50SGVpZ2h0QW5kTWFyZ2luIElubGluZUZvcm1hdHRpbmdHZW9tZXRy
eTo6aW5saW5lQmxvY2tDb250ZW50SGVpZ2h0QW5kTWFyZwogICAgIHJldHVybiBjb21wbGljYXRl
ZENhc2VzKGxheW91dEJveCwgaG9yaXpvbnRhbENvbnN0cmFpbnRzLCBvdmVycmlkZGVuVmVydGlj
YWxWYWx1ZXMpOwogfQogCi1ib29sIElubGluZUZvcm1hdHRpbmdHZW9tZXRyeTo6aW5saW5lTGV2
ZWxCb3hBZmZlY3RzTGluZUJveChjb25zdCBJbmxpbmVMZXZlbEJveCYgaW5saW5lTGV2ZWxCb3gs
IGNvbnN0IExpbmVCb3gmIGxpbmVCb3gpIGNvbnN0Citib29sIElubGluZUZvcm1hdHRpbmdHZW9t
ZXRyeTo6aW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveChjb25zdCBJbmxpbmVMZXZlbEJveCYg
aW5saW5lTGV2ZWxCb3gpIGNvbnN0CiB7CiAgICAgaWYgKCFpbmxpbmVMZXZlbEJveC5saW5lQm94
Q29udGFpbigpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICBpZiAoaW5saW5lTGV2ZWxC
b3guaXNJbmxpbmVCb3goKSB8fCBpbmxpbmVMZXZlbEJveC5pc0xpbmVCcmVha0JveCgpKQotICAg
ICAgICByZXR1cm4gbGF5b3V0U3RhdGUoKS5pblN0YW5kYXJkc01vZGUoKSA/IHRydWUgOiBmb3Jt
YXR0aW5nQ29udGV4dCgpLmZvcm1hdHRpbmdRdWlya3MoKS5pbmxpbmVMZXZlbEJveEFmZmVjdHNM
aW5lQm94KGlubGluZUxldmVsQm94LCBsaW5lQm94KTsKKyAgICBpZiAoaW5saW5lTGV2ZWxCb3gu
aXNMaW5lQnJlYWtCb3goKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChpbmxpbmVM
ZXZlbEJveC5pc0xpc3RNYXJrZXIoKSkKLSAgICAgICAgcmV0dXJuIGlubGluZUxldmVsQm94Lmxv
Z2ljYWxIZWlnaHQoKTsKKyAgICAgICAgcmV0dXJuIGRvd25jYXN0PEVsZW1lbnRCb3g+KGlubGlu
ZUxldmVsQm94LmxheW91dEJveCgpKS5pc0xpc3RNYXJrZXJJbWFnZSgpOworICAgIGlmIChpbmxp
bmVMZXZlbEJveC5pc0lubGluZUJveCgpKQorICAgICAgICByZXR1cm4gbGF5b3V0U3RhdGUoKS5p
blN0YW5kYXJkc01vZGUoKSA/IHRydWUgOiBmb3JtYXR0aW5nQ29udGV4dCgpLmZvcm1hdHRpbmdR
dWlya3MoKS5pbmxpbmVCb3hBZmZlY3RzTGluZUJveChpbmxpbmVMZXZlbEJveCk7CiAgICAgaWYg
KGlubGluZUxldmVsQm94LmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSkgewogICAgICAgICBpZiAo
aW5saW5lTGV2ZWxCb3gubG9naWNhbEhlaWdodCgpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lu
bGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
b3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUZvcm1hdHRpbmdHZW9tZXRyeS5oCmluZGV4
IDVjMGJjNzAyNzY3Ny4uZmUwYmUzNzc2MWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5nR2VvbWV0cnku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9J
bmxpbmVGb3JtYXR0aW5nR2VvbWV0cnkuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAg
ZW51bSBjbGFzcyBJc0ludHJpbnNpY1dpZHRoTW9kZSA6IHVpbnQ4X3QgeyBZZXMsIE5vIH07CiAg
ICAgSW5saW5lTGF5b3V0VW5pdCBjb21wdXRlZFRleHRJbmRlbnQoSXNJbnRyaW5zaWNXaWR0aE1v
ZGUsIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gcHJldmlvdXNMaW5lRW5kc1dpdGhMaW5lQnJlYWssIElu
bGluZUxheW91dFVuaXQgYXZhaWxhYmxlV2lkdGgpIGNvbnN0OwogCi0gICAgYm9vbCBpbmxpbmVM
ZXZlbEJveEFmZmVjdHNMaW5lQm94KGNvbnN0IElubGluZUxldmVsQm94JiwgY29uc3QgTGluZUJv
eCYpIGNvbnN0OworICAgIGJvb2wgaW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveChjb25zdCBJ
bmxpbmVMZXZlbEJveCYpIGNvbnN0OwogCiAgICAgSW5saW5lTGF5b3V0VW5pdCBpbml0aWFsTGlu
ZUhlaWdodChib29sIGlzRmlyc3RMaW5lKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1
aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGlu
ZS9JbmxpbmVGb3JtYXR0aW5nUXVpcmtzLmNwcAppbmRleCA5ZmE2ODkxNjFiMTEuLmVlZGE3NjIy
MmRjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0
cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5j
cHAKQEAgLTczLDUyICs3Myw1MSBAQCBJbmxpbmVMYXlvdXRVbml0IElubGluZUZvcm1hdHRpbmdR
dWlya3M6OmluaXRpYWxMaW5lSGVpZ2h0KCkgY29uc3QKICAgICByZXR1cm4gMC5mOwogfQogCi1i
b29sIElubGluZUZvcm1hdHRpbmdRdWlya3M6OmlubGluZUxldmVsQm94QWZmZWN0c0xpbmVCb3go
Y29uc3QgSW5saW5lTGV2ZWxCb3gmIGlubGluZUxldmVsQm94LCBjb25zdCBMaW5lQm94JiBsaW5l
Qm94KSBjb25zdAorYm9vbCBJbmxpbmVGb3JtYXR0aW5nUXVpcmtzOjpsaW5lQnJlYWtCb3hBZmZl
Y3RzUGFyZW50SW5saW5lQm94KGNvbnN0IExpbmVCb3gmIGxpbmVCb3gpCiB7Ci0gICAgQVNTRVJU
KCFsYXlvdXRTdGF0ZSgpLmluU3RhbmRhcmRzTW9kZSgpKTsKLSAgICBpZiAoaW5saW5lTGV2ZWxC
b3guaXNMaW5lQnJlYWtCb3goKSkgewotICAgICAgICAvLyBJbiBxdWlya3MgbW9kZSBsaW5lYnJl
YWsgYm94ZXMgKDxicj4pIHN0b3AgYWZmZWN0aW5nIHRoZSBsaW5lIGJveCB3aGVuIChhc3N1bWUg
PGJyPiBpcyBuZXN0ZWQgZS5nLiA8c3BhbiBzdHlsZT0iZm9udC1zaXplOiAxMDBweCI+PGJyPjwv
c3Bhbj4pCi0gICAgICAgIC8vIDEuIHRoZSByb290IGlubGluZSBib3ggaGFzIGNvbnRlbnQgPGRp
dj5jb250ZW50PGJyPi9kaXY+Ci0gICAgICAgIC8vIDIuIHRoZXJlJ3MgYXQgbGVhc3Qgb25lIGF0
b21pYyBpbmxpbmUgbGV2ZWwgYm94IG9uIHRoZSBsaW5lIGUuZyA8ZGl2PjxpbWc+PGJyPjwvZGl2
PiBvciA8ZGl2PjxzcGFuPjxpbWc+PC9zcGFuPjxicj48L2Rpdj4KLSAgICAgICAgLy8gMy4gdGhl
cmUncyBhdCBsZWFzdCBvbmUgaW5saW5lIGJveCB3aXRoIGNvbnRlbnQgZS5nLiA8ZGl2PjxzcGFu
PmNvbnRlbnQ8L3NwYW4+PGJyPjwvZGl2PgotICAgICAgICBpZiAobGluZUJveC5yb290SW5saW5l
Qm94KCkuaGFzQ29udGVudCgpKQotICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBp
ZiAobGluZUJveC5oYXNBdG9taWNJbmxpbmVMZXZlbEJveCgpKQorICAgIC8vIEluIHF1aXJrcyBt
b2RlIGxpbmVicmVhayBib3hlcyAoPGJyPikgc3RvcCBhZmZlY3RpbmcgdGhlIGxpbmUgYm94IHdo
ZW4gKGFzc3VtZSA8YnI+IGlzIG5lc3RlZCBlLmcuIDxzcGFuIHN0eWxlPSJmb250LXNpemU6IDEw
MHB4Ij48YnI+PC9zcGFuPikKKyAgICAvLyAxLiB0aGUgcm9vdCBpbmxpbmUgYm94IGhhcyBjb250
ZW50IDxkaXY+Y29udGVudDxicj4vZGl2PgorICAgIC8vIDIuIHRoZXJlJ3MgYXQgbGVhc3Qgb25l
IGF0b21pYyBpbmxpbmUgbGV2ZWwgYm94IG9uIHRoZSBsaW5lIGUuZyA8ZGl2PjxpbWc+PGJyPjwv
ZGl2PiBvciA8ZGl2PjxzcGFuPjxpbWc+PC9zcGFuPjxicj48L2Rpdj4KKyAgICAvLyAzLiB0aGVy
ZSdzIGF0IGxlYXN0IG9uZSBpbmxpbmUgYm94IHdpdGggY29udGVudCBlLmcuIDxkaXY+PHNwYW4+
Y29udGVudDwvc3Bhbj48YnI+PC9kaXY+CisgICAgaWYgKGxpbmVCb3gucm9vdElubGluZUJveCgp
Lmhhc0NvbnRlbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChsaW5lQm94Lmhh
c0F0b21pY0lubGluZUxldmVsQm94KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBB
dCB0aGlzIHBvaW50IHdlIGVpdGhlciBoYXZlIG9ubHkgdGhlIDxicj4gb24gdGhlIGxpbmUgb3Ig
aW5saW5lIGJveGVzIHdpdGggb3Igd2l0aG91dCBjb250ZW50LgorICAgIGF1dG8mIGlubGluZUxl
dmVsQm94ZXMgPSBsaW5lQm94Lm5vblJvb3RJbmxpbmVMZXZlbEJveGVzKCk7CisgICAgQVNTRVJU
KCFpbmxpbmVMZXZlbEJveGVzLmlzRW1wdHkoKSk7CisgICAgaWYgKGlubGluZUxldmVsQm94ZXMu
c2l6ZSgpID09IDEpCisgICAgICAgIHJldHVybiB0cnVlOworICAgIGZvciAoYXV0byYgaW5saW5l
TGV2ZWxCb3ggOiBsaW5lQm94Lm5vblJvb3RJbmxpbmVMZXZlbEJveGVzKCkpIHsKKyAgICAgICAg
Ly8gRmlsdGVyIG91dCBlbXB0eSBpbmxpbmUgYm94ZXMgZS5nLiA8ZGl2PjxzcGFuPjwvc3Bhbj48
c3Bhbj48L3NwYW4+PGJyPjwvZGl2PgorICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNJbmxp
bmVCb3goKSAmJiBpbmxpbmVMZXZlbEJveC5oYXNDb250ZW50KCkpCiAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7Ci0gICAgICAgIC8vIEF0IHRoaXMgcG9pbnQgd2UgZWl0aGVyIGhhdmUgb25seSB0
aGUgPGJyPiBvbiB0aGUgbGluZSBvciBpbmxpbmUgYm94ZXMgd2l0aCBvciB3aXRob3V0IGNvbnRl
bnQuCi0gICAgICAgIGF1dG8mIGlubGluZUxldmVsQm94ZXMgPSBsaW5lQm94Lm5vblJvb3RJbmxp
bmVMZXZlbEJveGVzKCk7Ci0gICAgICAgIEFTU0VSVCghaW5saW5lTGV2ZWxCb3hlcy5pc0VtcHR5
KCkpOwotICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3hlcy5zaXplKCkgPT0gMSkKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgICAgICBmb3IgKGF1dG8mIGlubGluZUxldmVsQm94IDogbGlu
ZUJveC5ub25Sb290SW5saW5lTGV2ZWxCb3hlcygpKSB7Ci0gICAgICAgICAgICAvLyBGaWx0ZXIg
b3V0IGVtcHR5IGlubGluZSBib3hlcyBlLmcuIDxkaXY+PHNwYW4+PC9zcGFuPjxzcGFuPjwvc3Bh
bj48YnI+PC9kaXY+Ci0gICAgICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNJbmxpbmVCb3go
KSAmJiBpbmxpbmVMZXZlbEJveC5oYXNDb250ZW50KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwotICAgICAgICB9CisgICAgfQorICAgIHJldHVybiB0cnVlOworfQorCitib29sIElu
bGluZUZvcm1hdHRpbmdRdWlya3M6OmlubGluZUJveEFmZmVjdHNMaW5lQm94KGNvbnN0IElubGlu
ZUxldmVsQm94JiBpbmxpbmVMZXZlbEJveCkgY29uc3QKK3sKKyAgICBBU1NFUlQoIWxheW91dFN0
YXRlKCkuaW5TdGFuZGFyZHNNb2RlKCkpOworICAgIEFTU0VSVChpbmxpbmVMZXZlbEJveC5pc0lu
bGluZUJveCgpKTsKKyAgICAvLyBJbmxpbmUgYm94ZXMgKGUuZy4gcm9vdCBpbmxpbmUgYm94IG9y
IDxzcGFuPikgYWZmZWN0cyBsaW5lIGJveGVzIGVpdGhlciB0aHJvdWdoIHRoZSBzdHJ1dCBvciBh
Y3R1YWwgY29udGVudC4KKyAgICBpZiAoaW5saW5lTGV2ZWxCb3guaGFzQ29udGVudCgpKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNSb290SW5saW5lQm94
KCkpIHsKKyAgICAgICAgLy8gVGhpcyByb290IGlubGluZSBib3ggaGFzIG5vIGRpcmVjdCB0ZXh0
IGNvbnRlbnQgYW5kIHdlIGFyZSBpbiBub24tc3RhbmRhcmRzIG1vZGUuCisgICAgICAgIC8vIE5v
dyBhY2NvcmRpbmcgdG8gbGVnYWN5IGxpbmUgbGF5b3V0LCB3ZSBuZWVkIHRvIGFwcGx5IHRoZSBm
b2xsb3dpbmcgbGlzdC1pdGVtIHNwZWNpZmljIHF1aXJrOgorICAgICAgICAvLyBXZSBkbyBub3Qg
Y3JlYXRlIG1hcmtlcnMgZm9yIGxpc3QgaXRlbXMgd2hlbiB0aGUgbGlzdC1zdHlsZS10eXBlIGlz
IG5vbmUsIHdoaWxlIG90aGVyIGJyb3dzZXJzIGRvLgorICAgICAgICAvLyBUaGUgc2lkZSBlZmZl
Y3Qgb2YgaGF2aW5nIG5vIG1hcmtlciBpcyB0aGF0IGluIHF1aXJrcyBtb2RlIHdlIGhhdmUgdG8g
c3BlY2lmaWNhbGx5IGNoZWNrIGZvciBsaXN0LWl0ZW0KKyAgICAgICAgLy8gYW5kIG1ha2Ugc3Vy
ZSBpdCBpcyB0cmVhdGVkIGFzIGlmIGl0IGhhZCBjb250ZW50IGFuZCBzdHJldGNoZWQgdGhlIGxp
bmUuCisgICAgICAgIC8vIHNlZSBMZWdhY3lJbmxpbmVGbG93Qm94IGMndG9yLgorICAgICAgICBy
ZXR1cm4gaW5saW5lTGV2ZWxCb3gubGF5b3V0Qm94KCkuc3R5bGUoKS5pc09yaWdpbmFsRGlzcGxh
eUxpc3RJdGVtVHlwZSgpOwogICAgIH0KLSAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNJbmxpbmVC
b3goKSkgewotICAgICAgICAvLyBJbmxpbmUgYm94ZXMgKGUuZy4gcm9vdCBpbmxpbmUgYm94IG9y
IDxzcGFuPikgYWZmZWN0cyBsaW5lIGJveGVzIGVpdGhlciB0aHJvdWdoIHRoZSBzdHJ1dCBvciBh
Y3R1YWwgY29udGVudC4KLSAgICAgICAgaWYgKGlubGluZUxldmVsQm94Lmhhc0NvbnRlbnQoKSkK
LSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNS
b290SW5saW5lQm94KCkpIHsKLSAgICAgICAgICAgIC8vIFRoaXMgcm9vdCBpbmxpbmUgYm94IGhh
cyBubyBkaXJlY3QgdGV4dCBjb250ZW50IGFuZCB3ZSBhcmUgaW4gbm9uLXN0YW5kYXJkcyBtb2Rl
LgotICAgICAgICAgICAgLy8gTm93IGFjY29yZGluZyB0byBsZWdhY3kgbGluZSBsYXlvdXQsIHdl
IG5lZWQgdG8gYXBwbHkgdGhlIGZvbGxvd2luZyBsaXN0LWl0ZW0gc3BlY2lmaWMgcXVpcms6Ci0g
ICAgICAgICAgICAvLyBXZSBkbyBub3QgY3JlYXRlIG1hcmtlcnMgZm9yIGxpc3QgaXRlbXMgd2hl
biB0aGUgbGlzdC1zdHlsZS10eXBlIGlzIG5vbmUsIHdoaWxlIG90aGVyIGJyb3dzZXJzIGRvLgot
ICAgICAgICAgICAgLy8gVGhlIHNpZGUgZWZmZWN0IG9mIGhhdmluZyBubyBtYXJrZXIgaXMgdGhh
dCBpbiBxdWlya3MgbW9kZSB3ZSBoYXZlIHRvIHNwZWNpZmljYWxseSBjaGVjayBmb3IgbGlzdC1p
dGVtCi0gICAgICAgICAgICAvLyBhbmQgbWFrZSBzdXJlIGl0IGlzIHRyZWF0ZWQgYXMgaWYgaXQg
aGFkIGNvbnRlbnQgYW5kIHN0cmV0Y2hlZCB0aGUgbGluZS4KLSAgICAgICAgICAgIC8vIHNlZSBM
ZWdhY3lJbmxpbmVGbG93Qm94IGMndG9yLgotICAgICAgICAgICAgcmV0dXJuIGlubGluZUxldmVs
Qm94LmxheW91dEJveCgpLnN0eWxlKCkuaXNPcmlnaW5hbERpc3BsYXlMaXN0SXRlbVR5cGUoKTsK
LSAgICAgICAgfQotICAgICAgICAvLyBOb24tcm9vdCBpbmxpbmUgYm94ZXMgKGUuZy4gPHNwYW4+
KS4KLSAgICAgICAgYXV0byYgYm94R2VvbWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21l
dHJ5Rm9yQm94KGlubGluZUxldmVsQm94LmxheW91dEJveCgpKTsKLSAgICAgICAgaWYgKGJveEdl
b21ldHJ5Lmhvcml6b250YWxCb3JkZXIoKSB8fCBib3hHZW9tZXRyeS5ob3Jpem9udGFsUGFkZGlu
ZygpLnZhbHVlX29yKDBfbHUpKSB7Ci0gICAgICAgICAgICAvLyBIb3Jpem9udGFsIGJvcmRlciBh
bmQgcGFkZGluZyBtYWtlIHRoZSBpbmxpbmUgYm94IHN0cmV0Y2ggdGhlIGxpbmUgKGUuZy4gPHNw
YW4gc3R5bGU9InBhZGRpbmc6IDEwcHg7Ij48L3NwYW4+KS4KLSAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAvLyBOb24tcm9vdCBp
bmxpbmUgYm94ZXMgKGUuZy4gPHNwYW4+KS4KKyAgICBhdXRvJiBib3hHZW9tZXRyeSA9IGZvcm1h
dHRpbmdDb250ZXh0KCkuZ2VvbWV0cnlGb3JCb3goaW5saW5lTGV2ZWxCb3gubGF5b3V0Qm94KCkp
OworICAgIGlmIChib3hHZW9tZXRyeS5ob3Jpem9udGFsQm9yZGVyKCkgfHwgYm94R2VvbWV0cnku
aG9yaXpvbnRhbFBhZGRpbmcoKS52YWx1ZV9vcigwX2x1KSkgeworICAgICAgICAvLyBIb3Jpem9u
dGFsIGJvcmRlciBhbmQgcGFkZGluZyBtYWtlIHRoZSBpbmxpbmUgYm94IHN0cmV0Y2ggdGhlIGxp
bmUgKGUuZy4gPHNwYW4gc3R5bGU9InBhZGRpbmc6IDEwcHg7Ij48L3NwYW4+KS4KKyAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVy
biBmYWxzZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRp
bmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oIGIvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1aXJr
cy5oCmluZGV4IDQ1NWRmZTRmNGM1Mi4uZTdjZjViNzk1NzEyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0NvbnRleHRzL2lubGluZS9JbmxpbmVGb3JtYXR0aW5n
UXVpcmtzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9p
bmxpbmUvSW5saW5lRm9ybWF0dGluZ1F1aXJrcy5oCkBAIC00MCw3ICs0MCw4IEBAIHB1YmxpYzoK
ICAgICBib29sIHNob3VsZFByZXNlcnZlVHJhaWxpbmdXaGl0ZXNwYWNlKGJvb2wgaXNJbkludHJp
bnNpY1dpZHRoTW9kZSwgYm9vbCBsaW5lSGFzQmlkaUNvbnRlbnQsIGJvb2wgbGluZUhhc092ZXJm
bG93LCBib29sIGxpbmVFbmRXaXRoTGluZUJyZWFrKSBjb25zdDsKICAgICBib29sIHRyYWlsaW5n
Tm9uQnJlYWtpbmdTcGFjZU5lZWRzQWRqdXN0bWVudChib29sIGlzSW5JbnRyaW5zaWNXaWR0aE1v
ZGUsIGJvb2wgbGluZUhhc092ZXJmbG93KSBjb25zdDsKICAgICBJbmxpbmVMYXlvdXRVbml0IGlu
aXRpYWxMaW5lSGVpZ2h0KCkgY29uc3Q7Ci0gICAgYm9vbCBpbmxpbmVMZXZlbEJveEFmZmVjdHNM
aW5lQm94KGNvbnN0IElubGluZUxldmVsQm94JiwgY29uc3QgTGluZUJveCYpIGNvbnN0OworICAg
IGJvb2wgaW5saW5lQm94QWZmZWN0c0xpbmVCb3goY29uc3QgSW5saW5lTGV2ZWxCb3gmKSBjb25z
dDsKKyAgICBzdGF0aWMgYm9vbCBsaW5lQnJlYWtCb3hBZmZlY3RzUGFyZW50SW5saW5lQm94KGNv
bnN0IExpbmVCb3gmKTsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5nQ29udGV4dHMvaW5saW5lL0lubGluZUxpbmVC
b3hCdWlsZGVyLmNwcAppbmRleCAwMWU1NWE1YzJjZmMuLjEwMTNjNzUzNGUwNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5l
TGluZUJveEJ1aWxkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mb3JtYXR0aW5n
Q29udGV4dHMvaW5saW5lL0lubGluZUxpbmVCb3hCdWlsZGVyLmNwcApAQCAtMjIwLDI2ICsyMjAs
MjUgQEAgdm9pZCBMaW5lQm94QnVpbGRlcjo6c2V0VmVydGljYWxQcm9wZXJ0aWVzRm9ySW5saW5l
TGV2ZWxCb3goY29uc3QgTGluZUJveCYgbGluZUIKICAgICAgICAgaW5saW5lTGV2ZWxCb3guc2V0
RGVzY2VudChhc2NlbnRBbmREZXNjZW50LmRlc2NlbnQpOwogICAgIH07CiAKLSAgICBhdXRvIHNl
dExheW91dEJvdW5kcyA9IFsmXSAoYXV0byYgdGV4dE1ldHJpY3MpIHsKLSAgICAgICAgYXV0byBs
b2dpY2FsSGVpZ2h0ID0gdGV4dE1ldHJpY3MuYXNjZW50QW5kRGVzY2VudC5hc2NlbnQgKyB0ZXh0
TWV0cmljcy5hc2NlbnRBbmREZXNjZW50LmRlc2NlbnQ7Ci0gICAgICAgIGF1dG8gaGFsZkxlYWRp
bmcgPSBJbmxpbmVMYXlvdXRVbml0IHsgfTsKLSAgICAgICAgaWYgKHRleHRNZXRyaWNzLnByZWZl
cnJlZExpbmVIZWlnaHQpIHsKLSAgICAgICAgICAgIC8vIElmIGxpbmUtaGVpZ2h0IGNvbXB1dGVz
IHRvIG5vcm1hbCBhbmQgZWl0aGVyIHRleHQtZWRnZSBpcyBsZWFkaW5nIG9yIHRoaXMgaXMgdGhl
IHJvb3QgaW5saW5lIGJveCwKLSAgICAgICAgICAgIC8vIHRoZSBmb2504oCZcyBsaW5lIGdhcCBt
ZXRyaWMgbWF5IGFsc28gYmUgaW5jb3Jwb3JhdGVkIGludG8gQSBhbmQgRCBieSBhZGRpbmcgaGFs
ZiB0byBlYWNoIHNpZGUgYXMgaGFsZi1sZWFkaW5nLgotICAgICAgICAgICAgLy8gaHR0cHM6Ly93
d3cudzMub3JnL1RSL2Nzcy1pbmxpbmUtMy8jaW5saW5lLWhlaWdodAotICAgICAgICAgICAgLy8g
U2luY2UgdGV4dC1lZGdlIGlzIG5vdCBzdXBwb3J0ZWQgeWV0IGFuZCB0aGUgaW5pdGlhbCB2YWx1
ZSBpcyBsZWFkaW5nLCB3ZSBzaG91bGQganVzdCBhcHBseSBpdCB0bwotICAgICAgICAgICAgLy8g
YWxsIGlubGluZSBib3hlcy4KLSAgICAgICAgICAgIGhhbGZMZWFkaW5nID0gKCp0ZXh0TWV0cmlj
cy5wcmVmZXJyZWRMaW5lSGVpZ2h0IC0gbG9naWNhbEhlaWdodCkgLyAyOwotICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgLy8gUHJlZmVycmVkIGxpbmUgaGVpZ2h0IGlzIHB1cmVseSBmb250
IG1ldHJpY3MgYmFzZWQgKGkuZSBnbHlwaHMgc3RyZXRjaCB0aGUgbGluZSkuCi0gICAgICAgICAg
ICBoYWxmTGVhZGluZyA9ICh0ZXh0TWV0cmljcy5saW5lR2FwIC0gbG9naWNhbEhlaWdodCkgLyAy
OwotICAgICAgICB9Ci0gICAgICAgIGlubGluZUxldmVsQm94LnNldExheW91dEJvdW5kcyh7IGZs
b29yZih0ZXh0TWV0cmljcy5hc2NlbnRBbmREZXNjZW50LmFzY2VudCArIGhhbGZMZWFkaW5nKSwg
Y2VpbGYodGV4dE1ldHJpY3MuYXNjZW50QW5kRGVzY2VudC5kZXNjZW50ICsgaGFsZkxlYWRpbmcp
IH0pOwotICAgIH07Ci0KICAgICBpZiAoaW5saW5lTGV2ZWxCb3guaXNJbmxpbmVCb3goKSkgewog
ICAgICAgICBhdXRvIHRleHRNZXRyaWNzID0gcHJpbWFyeUZvbnRNZXRyaWNzRm9ySW5saW5lQm94
KGlubGluZUxldmVsQm94LCBsaW5lQm94LmJhc2VsaW5lVHlwZSgpKTsKLSAgICAgICAgc2V0TGF5
b3V0Qm91bmRzKHRleHRNZXRyaWNzKTsKKyAgICAgICAgYXV0byBzZXRMYXlvdXRCb3VuZHMgPSBb
Jl0geworICAgICAgICAgICAgYXV0byBsb2dpY2FsSGVpZ2h0ID0gdGV4dE1ldHJpY3MuYXNjZW50
QW5kRGVzY2VudC5hc2NlbnQgKyB0ZXh0TWV0cmljcy5hc2NlbnRBbmREZXNjZW50LmRlc2NlbnQ7
CisgICAgICAgICAgICBhdXRvIGhhbGZMZWFkaW5nID0gSW5saW5lTGF5b3V0VW5pdCB7IH07Cisg
ICAgICAgICAgICBpZiAodGV4dE1ldHJpY3MucHJlZmVycmVkTGluZUhlaWdodCkgeworICAgICAg
ICAgICAgICAgIC8vIElmIGxpbmUtaGVpZ2h0IGNvbXB1dGVzIHRvIG5vcm1hbCBhbmQgZWl0aGVy
IHRleHQtZWRnZSBpcyBsZWFkaW5nIG9yIHRoaXMgaXMgdGhlIHJvb3QgaW5saW5lIGJveCwKKyAg
ICAgICAgICAgICAgICAvLyB0aGUgZm9udOKAmXMgbGluZSBnYXAgbWV0cmljIG1heSBhbHNvIGJl
IGluY29ycG9yYXRlZCBpbnRvIEEgYW5kIEQgYnkgYWRkaW5nIGhhbGYgdG8gZWFjaCBzaWRlIGFz
IGhhbGYtbGVhZGluZy4KKyAgICAgICAgICAgICAgICAvLyBodHRwczovL3d3dy53My5vcmcvVFIv
Y3NzLWlubGluZS0zLyNpbmxpbmUtaGVpZ2h0CisgICAgICAgICAgICAgICAgLy8gU2luY2UgdGV4
dC1lZGdlIGlzIG5vdCBzdXBwb3J0ZWQgeWV0IGFuZCB0aGUgaW5pdGlhbCB2YWx1ZSBpcyBsZWFk
aW5nLCB3ZSBzaG91bGQganVzdCBhcHBseSBpdCB0bworICAgICAgICAgICAgICAgIC8vIGFsbCBp
bmxpbmUgYm94ZXMuCisgICAgICAgICAgICAgICAgaGFsZkxlYWRpbmcgPSAoKnRleHRNZXRyaWNz
LnByZWZlcnJlZExpbmVIZWlnaHQgLSBsb2dpY2FsSGVpZ2h0KSAvIDI7CisgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgIC8vIFByZWZlcnJlZCBsaW5lIGhlaWdodCBpcyBwdXJl
bHkgZm9udCBtZXRyaWNzIGJhc2VkIChpLmUgZ2x5cGhzIHN0cmV0Y2ggdGhlIGxpbmUpLgorICAg
ICAgICAgICAgICAgIGhhbGZMZWFkaW5nID0gKHRleHRNZXRyaWNzLmxpbmVHYXAgLSBsb2dpY2Fs
SGVpZ2h0KSAvIDI7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpbmxpbmVMZXZlbEJveC5z
ZXRMYXlvdXRCb3VuZHMoeyBmbG9vcmYodGV4dE1ldHJpY3MuYXNjZW50QW5kRGVzY2VudC5hc2Nl
bnQgKyBoYWxmTGVhZGluZyksIGNlaWxmKHRleHRNZXRyaWNzLmFzY2VudEFuZERlc2NlbnQuZGVz
Y2VudCArIGhhbGZMZWFkaW5nKSB9KTsKKyAgICAgICAgfTsKKyAgICAgICAgc2V0TGF5b3V0Qm91
bmRzKCk7CiAgICAgICAgIC8vIFdlIG5lZWQgZmxvb3IvY2VpbCB0byBtYXRjaCBsZWdhY3kgbGF5
b3V0IGludGVncmFsIHBvc2l0aW9uaW5nLgogICAgICAgICBzZXRBc2NlbnRBbmREZXNjZW50KEFz
Y2VudEFuZERlc2NlbnQgeyBmbG9vcmYodGV4dE1ldHJpY3MuYXNjZW50QW5kRGVzY2VudC5hc2Nl
bnQpLCBjZWlsZih0ZXh0TWV0cmljcy5hc2NlbnRBbmREZXNjZW50LmRlc2NlbnQpIH0pOwogICAg
ICAgICBpbmxpbmVMZXZlbEJveC5zZXRMb2dpY2FsSGVpZ2h0KHRleHRNZXRyaWNzLmFzY2VudEFu
ZERlc2NlbnQuaGVpZ2h0KCkpOwpAQCAtMjQ3LDcgKzI0Niw2IEBAIHZvaWQgTGluZUJveEJ1aWxk
ZXI6OnNldFZlcnRpY2FsUHJvcGVydGllc0ZvcklubGluZUxldmVsQm94KGNvbnN0IExpbmVCb3gm
IGxpbmVCCiAgICAgfQogICAgIGlmIChpbmxpbmVMZXZlbEJveC5pc0xpbmVCcmVha0JveCgpKSB7
CiAgICAgICAgIGF1dG8gcGFyZW50VGV4dE1ldHJpY3MgPSBwcmltYXJ5Rm9udE1ldHJpY3NGb3JJ
bmxpbmVCb3gobGluZUJveC5pbmxpbmVMZXZlbEJveEZvckxheW91dEJveChpbmxpbmVMZXZlbEJv
eC5sYXlvdXRCb3goKS5wYXJlbnQoKSksIGxpbmVCb3guYmFzZWxpbmVUeXBlKCkpOwotICAgICAg
ICBzZXRMYXlvdXRCb3VuZHMocGFyZW50VGV4dE1ldHJpY3MpOwogICAgICAgICAvLyBXZSBuZWVk
IGZsb29yL2NlaWwgdG8gbWF0Y2ggbGVnYWN5IGxheW91dCBpbnRlZ3JhbCBwb3NpdGlvbmluZy4K
ICAgICAgICAgc2V0QXNjZW50QW5kRGVzY2VudChBc2NlbnRBbmREZXNjZW50IHsgZmxvb3JmKHBh
cmVudFRleHRNZXRyaWNzLmFzY2VudEFuZERlc2NlbnQuYXNjZW50KSwgY2VpbGYocGFyZW50VGV4
dE1ldHJpY3MuYXNjZW50QW5kRGVzY2VudC5kZXNjZW50KSB9KTsKICAgICAgICAgaW5saW5lTGV2
ZWxCb3guc2V0TG9naWNhbEhlaWdodChwYXJlbnRUZXh0TWV0cmljcy5hc2NlbnRBbmREZXNjZW50
LmhlaWdodCgpKTsKQEAgLTI2MywxNCArMjYxLDEyIEBAIHZvaWQgTGluZUJveEJ1aWxkZXI6OnNl
dFZlcnRpY2FsUHJvcGVydGllc0ZvcklubGluZUxldmVsQm94KGNvbnN0IExpbmVCb3gmIGxpbmVC
CiAgICAgICAgIGlmIChsaW5lQm94LmJhc2VsaW5lVHlwZSgpID09IElkZW9ncmFwaGljQmFzZWxp
bmUpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVseSBvbiB0aGUgaW50ZWdy
YXRpb24gYmFzZWxpbmUuCiAgICAgICAgICAgICBhdXRvIHBhcmVudFRleHRNZXRyaWNzID0gcHJp
bWFyeUZvbnRNZXRyaWNzRm9ySW5saW5lQm94KGxpbmVCb3guaW5saW5lTGV2ZWxCb3hGb3JMYXlv
dXRCb3goaW5saW5lTGV2ZWxCb3gubGF5b3V0Qm94KCkucGFyZW50KCkpLCBsaW5lQm94LmJhc2Vs
aW5lVHlwZSgpKTsKLSAgICAgICAgICAgIHNldExheW91dEJvdW5kcyhwYXJlbnRUZXh0TWV0cmlj
cyk7CiAgICAgICAgICAgICAvLyBXZSBuZWVkIGZsb29yL2NlaWwgdG8gbWF0Y2ggbGVnYWN5IGxh
eW91dCBpbnRlZ3JhbCBwb3NpdGlvbmluZy4KICAgICAgICAgICAgIHNldEFzY2VudEFuZERlc2Nl
bnQoQXNjZW50QW5kRGVzY2VudCB7IGZsb29yZihwYXJlbnRUZXh0TWV0cmljcy5hc2NlbnRBbmRE
ZXNjZW50LmFzY2VudCksIGNlaWxmKHBhcmVudFRleHRNZXRyaWNzLmFzY2VudEFuZERlc2NlbnQu
ZGVzY2VudCkgfSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgaWYg
KGF1dG8gYXNjZW50ID0gZG93bmNhc3Q8RWxlbWVudEJveD4obGF5b3V0Qm94KS5iYXNlbGluZUZv
ckludGVncmF0aW9uKCkpIHsKICAgICAgICAgICAgIGF1dG8gdGV4dE1ldHJpY3MgPSBUZXh0TWV0
cmljcyB7IHsgKmFzY2VudCwgbWFyZ2luQm94SGVpZ2h0IC0gKmFzY2VudCB9LCB7IH0sIHsgfSB9
OwotICAgICAgICAgICAgc2V0TGF5b3V0Qm91bmRzKHRleHRNZXRyaWNzKTsKICAgICAgICAgICAg
IC8vIFdlIG5lZWQgZmxvb3IvY2VpbCB0byBtYXRjaCBsZWdhY3kgbGF5b3V0IGludGVncmFsIHBv
c2l0aW9uaW5nLgogICAgICAgICAgICAgc2V0QXNjZW50QW5kRGVzY2VudChBc2NlbnRBbmREZXNj
ZW50IHsgZmxvb3JmKHRleHRNZXRyaWNzLmFzY2VudEFuZERlc2NlbnQuYXNjZW50KSwgY2VpbGYo
dGV4dE1ldHJpY3MuYXNjZW50QW5kRGVzY2VudC5kZXNjZW50KSB9KTsKICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTQxNyw2ICs0MTMsOSBAQCB2b2lkIExpbmVCb3hCdWlsZGVyOjpjb25zdHJ1Y3RJ
bmxpbmVMZXZlbEJveGVzKExpbmVCb3gmIGxpbmVCb3gsIGNvbnN0IExpbmVCdWlsZAogICAgICAg
ICAgICAgYXV0byBsaW5lQnJlYWtCb3ggPSBJbmxpbmVMZXZlbEJveDo6Y3JlYXRlTGluZUJyZWFr
Qm94KGxheW91dEJveCwgc3R5bGUsIGxvZ2ljYWxMZWZ0KTsKICAgICAgICAgICAgIHNldFZlcnRp
Y2FsUHJvcGVydGllc0ZvcklubGluZUxldmVsQm94KGxpbmVCb3gsIGxpbmVCcmVha0JveCk7CiAg
ICAgICAgICAgICBsaW5lQm94LmFkZElubGluZUxldmVsQm94KFdURk1vdmUobGluZUJyZWFrQm94
KSk7CisKKyAgICAgICAgICAgIGlmIChsYXlvdXRTdGF0ZSgpLmluU3RhbmRhcmRzTW9kZSgpIHx8
IElubGluZUZvcm1hdHRpbmdRdWlya3M6OmxpbmVCcmVha0JveEFmZmVjdHNQYXJlbnRJbmxpbmVC
b3gobGluZUJveCkpCisgICAgICAgICAgICAgICAgbGluZUJveC5pbmxpbmVMZXZlbEJveEZvckxh
eW91dEJveChsYXlvdXRCb3gucGFyZW50KCkpLnNldEhhc0NvbnRlbnQoKTsKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICB9CiAgICAgICAgIGlmIChydW4uaXNXb3JkQnJlYWtPcHBvcnR1
bml0eSgpKSB7CkBAIC01NTksNyArNTU4LDcgQEAgdm9pZCBMaW5lQm94QnVpbGRlcjo6YWRqdXN0
SWRlb2dyYXBoaWNCYXNlbGluZUlmQXBwbGljYWJsZShMaW5lQm94JiBsaW5lQm94LCBzaXoKICAg
ICAgICAgICAgIGlubGluZUxldmVsQm94LnNldEFzY2VudChpZGVvZ3JhcGhpY0Jhc2VsaW5lKTsK
ICAgICAgICAgfQogCi0gICAgICAgIGF1dG8gbmVlZHNGb250RmFsbGJhY2tBZGp1c3RtZW50ID0g
aW5saW5lTGV2ZWxCb3guaXNJbmxpbmVCb3goKSB8fCBpbmxpbmVMZXZlbEJveC5pc0xpbmVCcmVh
a0JveCgpOworICAgICAgICBhdXRvIG5lZWRzRm9udEZhbGxiYWNrQWRqdXN0bWVudCA9IGlubGlu
ZUxldmVsQm94LmlzSW5saW5lQm94KCk7CiAgICAgICAgIGlmIChuZWVkc0ZvbnRGYWxsYmFja0Fk
anVzdG1lbnQpIHsKICAgICAgICAgICAgIGlmIChhdXRvIGZhbGxiYWNrRm9udHMgPSBtX2ZhbGxi
YWNrRm9udHNGb3JJbmxpbmVCb3hlcy5nZXQoJmlubGluZUxldmVsQm94KTsgIWZhbGxiYWNrRm9u
dHMuaXNFbXB0eSgpICYmIGlubGluZUxldmVsQm94LmlzUHJlZmVycmVkTGluZUhlaWdodEZvbnRN
ZXRyaWNzQmFzZWQoKSkKICAgICAgICAgICAgICAgICBpbmxpbmVMZXZlbEJveC5zZXRMYXlvdXRC
b3VuZHMoYWRqdXN0ZWRMYXlvdXRCb3VuZHNXaXRoRmFsbGJhY2tGb250cyhpbmxpbmVMZXZlbEJv
eCwgZmFsbGJhY2tGb250cywgSWRlb2dyYXBoaWNCYXNlbGluZSkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJv
eFZlcnRpY2FsQWxpZ25lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZm9ybWF0dGluZ0Nv
bnRleHRzL2lubGluZS9JbmxpbmVMaW5lQm94VmVydGljYWxBbGlnbmVyLmNwcAppbmRleCBkNjQ3
OGM4MDExNmQuLmMwNGExMDgyYWI2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUvSW5saW5lTGluZUJveFZlcnRpY2FsQWxpZ25lci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zvcm1hdHRpbmdDb250ZXh0cy9pbmxpbmUv
SW5saW5lTGluZUJveFZlcnRpY2FsQWxpZ25lci5jcHAKQEAgLTE1MSw3ICsxNTEsNyBAQCBMaW5l
Qm94VmVydGljYWxBbGlnbmVyOjpMaW5lQm94QWxpZ25tZW50Q29udGVudCBMaW5lQm94VmVydGlj
YWxBbGlnbmVyOjpjb21wdXRlTAogCiAgICAgYXV0byBtaW5pbXVtTG9naWNhbFRvcCA9IHN0ZDo6
b3B0aW9uYWw8SW5saW5lTGF5b3V0VW5pdD4geyB9OwogICAgIGF1dG8gbWF4aW11bUxvZ2ljYWxC
b3R0b20gPSBzdGQ6Om9wdGlvbmFsPElubGluZUxheW91dFVuaXQ+IHsgfTsKLSAgICBpZiAoZm9y
bWF0dGluZ0dlb21ldHJ5LmlubGluZUxldmVsQm94QWZmZWN0c0xpbmVCb3gocm9vdElubGluZUJv
eCwgbGluZUJveCkpIHsKKyAgICBpZiAoZm9ybWF0dGluZ0dlb21ldHJ5LmlubGluZUxldmVsQm94
QWZmZWN0c0xpbmVCb3gocm9vdElubGluZUJveCkpIHsKICAgICAgICAgbWluaW11bUxvZ2ljYWxU
b3AgPSBJbmxpbmVMYXlvdXRVbml0IHsgfTsKICAgICAgICAgbWF4aW11bUxvZ2ljYWxCb3R0b20g
PSByb290SW5saW5lQm94LmxheW91dEJvdW5kcygpLT5oZWlnaHQoKTsKICAgICAgICAgaW5saW5l
TGV2ZWxCb3hBYnNvbHV0ZVRvcEFuZEJvdHRvbU1hcC5hZGQoJnJvb3RJbmxpbmVCb3gsIEFic29s
dXRlVG9wQW5kQm90dG9tIHsgKm1pbmltdW1Mb2dpY2FsVG9wLCAqbWF4aW11bUxvZ2ljYWxCb3R0
b20gfSk7CkBAIC0yMjksNyArMjI5LDcgQEAgTGluZUJveFZlcnRpY2FsQWxpZ25lcjo6TGluZUJv
eEFsaWdubWVudENvbnRlbnQgTGluZUJveFZlcnRpY2FsQWxpZ25lcjo6Y29tcHV0ZUwKICAgICAg
ICAgYXV0byBhYnNvbHV0ZUxvZ2ljYWxCb3R0b20gPSBhYnNvbHV0ZUxvZ2ljYWxUb3AgKyBsb2dp
Y2FsSGVpZ2h0OwogICAgICAgICBpbmxpbmVMZXZlbEJveEFic29sdXRlVG9wQW5kQm90dG9tTWFw
LmFkZCgmaW5saW5lTGV2ZWxCb3gsIEFic29sdXRlVG9wQW5kQm90dG9tIHsgYWJzb2x1dGVMb2dp
Y2FsVG9wLCBhYnNvbHV0ZUxvZ2ljYWxCb3R0b20gfSk7CiAgICAgICAgIC8vIFN0cmV0Y2ggdGhl
IG1pbi9tYXggYWJzb2x1dGUgdmFsdWVzIGlmIGFwcGxpY2FibGUuCi0gICAgICAgIGlmIChmb3Jt
YXR0aW5nR2VvbWV0cnkuaW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveChpbmxpbmVMZXZlbEJv
eCwgbGluZUJveCkpIHsKKyAgICAgICAgaWYgKGZvcm1hdHRpbmdHZW9tZXRyeS5pbmxpbmVMZXZl
bEJveEFmZmVjdHNMaW5lQm94KGlubGluZUxldmVsQm94KSkgewogICAgICAgICAgICAgbWluaW11
bUxvZ2ljYWxUb3AgPSBzdGQ6Om1pbihtaW5pbXVtTG9naWNhbFRvcC52YWx1ZV9vcihhYnNvbHV0
ZUxvZ2ljYWxUb3ApLCBhYnNvbHV0ZUxvZ2ljYWxUb3ApOwogICAgICAgICAgICAgbWF4aW11bUxv
Z2ljYWxCb3R0b20gPSBzdGQ6Om1heChtYXhpbXVtTG9naWNhbEJvdHRvbS52YWx1ZV9vcihhYnNv
bHV0ZUxvZ2ljYWxCb3R0b20pLCBhYnNvbHV0ZUxvZ2ljYWxCb3R0b20pOwogICAgICAgICB9CkBA
IC0yNDAsNyArMjQwLDcgQEAgTGluZUJveFZlcnRpY2FsQWxpZ25lcjo6TGluZUJveEFsaWdubWVu
dENvbnRlbnQgTGluZUJveFZlcnRpY2FsQWxpZ25lcjo6Y29tcHV0ZUwKICAgICBhdXRvIG5vbkJv
dHRvbUFsaWduZWRCb3hlc01heGltdW1IZWlnaHQgPSB2YWx1ZU9yRGVmYXVsdChtYXhpbXVtTG9n
aWNhbEJvdHRvbSkgLSB2YWx1ZU9yRGVmYXVsdChtaW5pbXVtTG9naWNhbFRvcCk7CiAgICAgYXV0
byBib3R0b21BbGlnbmVkQm94ZXNNYXhpbXVtSGVpZ2h0ID0gc3RkOjpvcHRpb25hbDxJbmxpbmVM
YXlvdXRVbml0PiB7IH07CiAgICAgZm9yIChhdXRvKiBsaW5lQm94UmVsYXRpdmVJbmxpbmVMZXZl
bEJveCA6IGxpbmVCb3hSZWxhdGl2ZUlubGluZUxldmVsQm94ZXMpIHsKLSAgICAgICAgaWYgKCFm
b3JtYXR0aW5nR2VvbWV0cnkuaW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveCgqbGluZUJveFJl
bGF0aXZlSW5saW5lTGV2ZWxCb3gsIGxpbmVCb3gpKQorICAgICAgICBpZiAoIWZvcm1hdHRpbmdH
ZW9tZXRyeS5pbmxpbmVMZXZlbEJveEFmZmVjdHNMaW5lQm94KCpsaW5lQm94UmVsYXRpdmVJbmxp
bmVMZXZlbEJveCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgLy8gVGhpcyBsaW5l
IGJveCByZWxhdGl2ZSBhbGlnbmVkIGlubGluZSBsZXZlbCBib3ggc3RyZXRjaGVzIHRoZSBsaW5l
IGJveC4KICAgICAgICAgYXV0byBpbmxpbmVMZXZlbEJveEhlaWdodCA9IGxpbmVCb3hSZWxhdGl2
ZUlubGluZUxldmVsQm94LT5sYXlvdXRCb3VuZHMoKSA/IGxpbmVCb3hSZWxhdGl2ZUlubGluZUxl
dmVsQm94LT5sYXlvdXRCb3VuZHMoKS0+aGVpZ2h0KCkgOiBsaW5lQm94UmVsYXRpdmVJbmxpbmVM
ZXZlbEJveC0+bG9naWNhbEhlaWdodCgpOwpAQCAtMjY3LDEyICsyNjcsMTIgQEAgdm9pZCBMaW5l
Qm94VmVydGljYWxBbGlnbmVyOjpjb21wdXRlUm9vdElubGluZUJveFZlcnRpY2FsUG9zaXRpb24o
TGluZUJveCYgbGluZUIKICAgICBpbmxpbmVMZXZlbEJveEFic29sdXRlQmFzZWxpbmVPZmZzZXRN
YXAuYWRkKCZyb290SW5saW5lQm94LCBJbmxpbmVMYXlvdXRVbml0IHsgfSk7CiAKICAgICBhdXRv
IG1heGltdW1Ub3BPZmZzZXRGcm9tUm9vdElubGluZUJveEJhc2VsaW5lID0gc3RkOjpvcHRpb25h
bDxJbmxpbmVMYXlvdXRVbml0PiB7IH07Ci0gICAgaWYgKGZvcm1hdHRpbmdHZW9tZXRyeS5pbmxp
bmVMZXZlbEJveEFmZmVjdHNMaW5lQm94KHJvb3RJbmxpbmVCb3gsIGxpbmVCb3gpKQorICAgIGlm
IChmb3JtYXR0aW5nR2VvbWV0cnkuaW5saW5lTGV2ZWxCb3hBZmZlY3RzTGluZUJveChyb290SW5s
aW5lQm94KSkKICAgICAgICAgbWF4aW11bVRvcE9mZnNldEZyb21Sb290SW5saW5lQm94QmFzZWxp
bmUgPSByb290SW5saW5lQm94LmxheW91dEJvdW5kcygpLT5hc2NlbnQ7CiAKICAgICBhdXRvIGFm
ZmVjdHNSb290SW5saW5lQm94VmVydGljYWxQb3NpdGlvbiA9IFsmXShhdXRvJiBpbmxpbmVMZXZl
bEJveCkgewotICAgICAgICBhdXRvIGlubGluZUxldmVsQm94U3RyZWNoZXNMaW5lQm94ID0gZm9y
bWF0dGluZ0dlb21ldHJ5LmlubGluZUxldmVsQm94QWZmZWN0c0xpbmVCb3goaW5saW5lTGV2ZWxC
b3gsIGxpbmVCb3gpOwotICAgICAgICByZXR1cm4gaW5saW5lTGV2ZWxCb3hTdHJlY2hlc0xpbmVC
b3ggfHwgKGlubGluZUxldmVsQm94LmlzQXRvbWljSW5saW5lTGV2ZWxCb3goKSAmJiBpbmxpbmVM
ZXZlbEJveC5hc2NlbnQoKSAmJiBpbmxpbmVMZXZlbEJveC5saW5lQm94Q29udGFpbigpKTsKKyAg
ICAgICAgYXV0byBpbmxpbmVMZXZlbEJveFN0cmVjaGVzTGluZUJveCA9IGZvcm1hdHRpbmdHZW9t
ZXRyeS5pbmxpbmVMZXZlbEJveEFmZmVjdHNMaW5lQm94KGlubGluZUxldmVsQm94KTsKKyAgICAg
ICAgcmV0dXJuIGlubGluZUxldmVsQm94U3RyZWNoZXNMaW5lQm94IHx8ICgoaW5saW5lTGV2ZWxC
b3guaXNBdG9taWNJbmxpbmVMZXZlbEJveCgpICYmICFpbmxpbmVMZXZlbEJveC5pc0xpc3RNYXJr
ZXIoKSkgJiYgaW5saW5lTGV2ZWxCb3guYXNjZW50KCkgJiYgaW5saW5lTGV2ZWxCb3gubGluZUJv
eENvbnRhaW4oKSk7CiAgICAgfTsKIAogICAgIGZvciAoYXV0byYgaW5saW5lTGV2ZWxCb3ggOiBs
aW5lQm94Lm5vblJvb3RJbmxpbmVMZXZlbEJveGVzKCkpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>