<?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>194424</bug_id>
          
          <creation_ts>2019-02-07 19:30:06 -0800</creation_ts>
          <short_desc>[LFC] Horizontal geometry compute functions should take the containing block&apos;s width as a used value</short_desc>
          <delta_ts>2019-02-08 05:58:28 -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>commit-queue</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>1504088</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2019-02-07 19:30:06 -0800</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504097</commentid>
    <comment_count>1</comment_count>
      <attachid>361489</attachid>
    <who name="alan">zalan</who>
    <bug_when>2019-02-07 20:30:35 -0800</bug_when>
    <thetext>Created attachment 361489
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504162</commentid>
    <comment_count>2</comment_count>
      <attachid>361489</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-08 05:57:15 -0800</bug_when>
    <thetext>Comment on attachment 361489
Patch

Clearing flags on attachment: 361489

Committed r241194: &lt;https://trac.webkit.org/changeset/241194&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504163</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-08 05:57:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1504164</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-08 05:58:28 -0800</bug_when>
    <thetext>&lt;rdar://problem/47914753&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361489</attachid>
            <date>2019-02-07 20:30:35 -0800</date>
            <delta_ts>2019-02-08 05:57:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194424-20190207203034.patch</filename>
            <type>text/plain</type>
            <size>28976</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxMTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjkyMmMwMDg5MzU2ZDNm
YzMyYzA1MWY4ZWE0NGRiOWUxYTA2NGZlMy4uNDg0MTM5NWY4ZmM3N2VmYjFlYmFlMDkxMTBhM2Zj
YzMyMjM1NzhkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDE5LTAyLTA3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gSG9yaXpvbnRhbCBn
ZW9tZXRyeSBjb21wdXRlIGZ1bmN0aW9ucyBzaG91bGQgdGFrZSB0aGUgY29udGFpbmluZyBibG9j
aydzIHdpZHRoIGFzIGEgdXNlZCB2YWx1ZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk0NDI0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhpcyBpcyBpbiBwcmVwYXJhdGlvbiBmb3IgcGFzc2luZyBvcHRp
b25hbCBjb250YWluaW5nIGJsb2NrIHdpZHRoIGZvciB0aGUgcHJlZmVycmVkIHdpdGggY29kZXBh
dGguIAorCisgICAgICAgICogbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dIb3Jp
em9udGFsR2VvbWV0cnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0
aW5nQ29udGV4dDo6Y29tcHV0ZUJvcmRlckFuZFBhZGRpbmcgY29uc3QpOgorICAgICAgICAqIGxh
eW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oOgorICAgICAgICAqIGxheW91dC9Gb3JtYXR0aW5nQ29u
dGV4dEdlb21ldHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0Nv
bnRleHQ6Okdlb21ldHJ5OjpzaHJpbmtUb0ZpdFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dOb25SZXBsYWNlZEhv
cml6b250YWxHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdD
b250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93UmVwbGFjZWRIb3Jpem9udGFsR2VvbWV0cnkpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZs
b2F0aW5nTm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbik6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdSZXBsYWNlZFdpZHRoQW5k
TWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdl
b21ldHJ5OjppbmxpbmVSZXBsYWNlZFdpZHRoQW5kTWFyZ2luKToKKyAgICAgICAgKFdlYkNvcmU6
OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRlZEJvcmRlcik6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29t
cHV0ZWRQYWRkaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRl
eHQ6Okdlb21ldHJ5Ojpjb21wdXRlZEhvcml6b250YWxNYXJnaW4pOgorICAgICAgICAqIGxheW91
dC9MYXlvdXRVbml0cy5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpVc2VkSG9yaXpvbnRh
bFZhbHVlczo6VXNlZEhvcml6b250YWxWYWx1ZXMpOgorICAgICAgICAqIGxheW91dC9ibG9ja2Zv
cm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFuZE1hcmdpbiBjb25z
dCk6CisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250
ZXh0R2VvbWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0OjpHZW9tZXRyeTo6aW5GbG93Tm9uUmVwbGFjZWRXaWR0aEFuZE1hcmdpbik6Cisg
ICAgICAgICogbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6
Y29tcHV0ZU1hcmdpbkJvcmRlckFuZFBhZGRpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoQW5kTWFyZ2luIGNv
bnN0KToKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5n
Q29udGV4dC5oOgorICAgICAgICAqIGxheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1h
dHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmlubGluZUJsb2NrV2lkdGhBbmRNYXJnaW4p
OgorCiAyMDE5LTAyLTA3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBNYWtlIHRvIGNsZWFyIHNvdXJjZXMgZnJvbSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5IGFuZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciB3aGVuIG5vIGxvbmdlciBuZWVkZWQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IGRjMTg2OTc1
ZDYwMzcwMDViYzQyYWFjMGI4ZTdjODhiZGIyOWIwZTIuLmNkOTRlMjUxZGVkM2U2NTExZjE1ZGVl
NTViOTlmZDY2YmMxOTZjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3Jt
YXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdD
b250ZXh0LmNwcApAQCAtNjcsMjIgKzY3LDIyIEBAIExheW91dFN0YXRlJiBGb3JtYXR0aW5nQ29u
dGV4dDo6bGF5b3V0U3RhdGUoKSBjb25zdAogdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0
ZU91dE9mRmxvd0hvcml6b250YWxHZW9tZXRyeShjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QK
IHsKICAgICBhdXRvJiBsYXlvdXRTdGF0ZSA9IHRoaXMtPmxheW91dFN0YXRlKCk7CisgICAgYXV0
byBjb250YWluaW5nQmxvY2tXaWR0aCA9IGxheW91dFN0YXRlLmRpc3BsYXlCb3hGb3JMYXlvdXRC
b3goKmxheW91dEJveC5jb250YWluaW5nQmxvY2soKSkucGFkZGluZ0JveFdpZHRoKCk7CiAKLSAg
ICBhdXRvIGNvbXB1dGUgPSBbJl0oVXNlZEhvcml6b250YWxWYWx1ZXMgdXNlZFZhbHVlcykgewor
ICAgIGF1dG8gY29tcHV0ZSA9IFsmXShPcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGgpIHsK
KyAgICAgICAgYXV0byB1c2VkVmFsdWVzID0gVXNlZEhvcml6b250YWxWYWx1ZXMgeyBjb250YWlu
aW5nQmxvY2tXaWR0aCwgdXNlZFdpZHRoLCB7IH0gfTsKICAgICAgICAgcmV0dXJuIEdlb21ldHJ5
OjpvdXRPZkZsb3dIb3Jpem9udGFsR2VvbWV0cnkobGF5b3V0U3RhdGUsIGxheW91dEJveCwgdXNl
ZFZhbHVlcyk7CiAgICAgfTsKIAogICAgIGF1dG8gaG9yaXpvbnRhbEdlb21ldHJ5ID0gY29tcHV0
ZSh7IH0pOwotICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrV2lkdGggPSBsYXlvdXRTdGF0ZS5kaXNw
bGF5Qm94Rm9yTGF5b3V0Qm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpLnBhZGRpbmdC
b3hXaWR0aCgpOwotCiAgICAgaWYgKGF1dG8gbWF4V2lkdGggPSBHZW9tZXRyeTo6Y29tcHV0ZWRW
YWx1ZUlmTm90QXV0byhsYXlvdXRCb3guc3R5bGUoKS5sb2dpY2FsTWF4V2lkdGgoKSwgY29udGFp
bmluZ0Jsb2NrV2lkdGgpKSB7Ci0gICAgICAgIGF1dG8gbWF4SG9yaXpvbnRhbEdlb21ldHJ5ID0g
Y29tcHV0ZSh7ICptYXhXaWR0aCwgeyB9IH0pOworICAgICAgICBhdXRvIG1heEhvcml6b250YWxH
ZW9tZXRyeSA9IGNvbXB1dGUobWF4V2lkdGgpOwogICAgICAgICBpZiAoaG9yaXpvbnRhbEdlb21l
dHJ5LndpZHRoQW5kTWFyZ2luLndpZHRoID4gbWF4SG9yaXpvbnRhbEdlb21ldHJ5LndpZHRoQW5k
TWFyZ2luLndpZHRoKQogICAgICAgICAgICAgaG9yaXpvbnRhbEdlb21ldHJ5ID0gbWF4SG9yaXpv
bnRhbEdlb21ldHJ5OwogICAgIH0KIAogICAgIGlmIChhdXRvIG1pbldpZHRoID0gR2VvbWV0cnk6
OmNvbXB1dGVkVmFsdWVJZk5vdEF1dG8obGF5b3V0Qm94LnN0eWxlKCkubG9naWNhbE1pbldpZHRo
KCksIGNvbnRhaW5pbmdCbG9ja1dpZHRoKSkgewotICAgICAgICBhdXRvIG1pbkhvcml6b250YWxH
ZW9tZXRyeSA9IGNvbXB1dGUoeyAqbWluV2lkdGgsIHsgfSB9KTsKKyAgICAgICAgYXV0byBtaW5I
b3Jpem9udGFsR2VvbWV0cnkgPSBjb21wdXRlKG1pbldpZHRoKTsKICAgICAgICAgaWYgKGhvcml6
b250YWxHZW9tZXRyeS53aWR0aEFuZE1hcmdpbi53aWR0aCA8IG1pbkhvcml6b250YWxHZW9tZXRy
eS53aWR0aEFuZE1hcmdpbi53aWR0aCkKICAgICAgICAgICAgIGhvcml6b250YWxHZW9tZXRyeSA9
IG1pbkhvcml6b250YWxHZW9tZXRyeTsKICAgICB9CkBAIC0xMjcsOCArMTI3LDkgQEAgdm9pZCBG
b3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoY29uc3QgQm94JiBsYXlv
dXRCb3gpIGNvbnN0CiB7CiAgICAgYXV0byYgbGF5b3V0U3RhdGUgPSB0aGlzLT5sYXlvdXRTdGF0
ZSgpOwogICAgIGF1dG8mIGRpc3BsYXlCb3ggPSBsYXlvdXRTdGF0ZS5kaXNwbGF5Qm94Rm9yTGF5
b3V0Qm94KGxheW91dEJveCk7Ci0gICAgZGlzcGxheUJveC5zZXRCb3JkZXIoR2VvbWV0cnk6OmNv
bXB1dGVkQm9yZGVyKGxheW91dFN0YXRlLCBsYXlvdXRCb3gpKTsKLSAgICBkaXNwbGF5Qm94LnNl
dFBhZGRpbmcoR2VvbWV0cnk6OmNvbXB1dGVkUGFkZGluZyhsYXlvdXRTdGF0ZSwgbGF5b3V0Qm94
KSk7CisgICAgYXV0byBjb250YWluaW5nQmxvY2tXaWR0aCA9IGxheW91dFN0YXRlLmRpc3BsYXlC
b3hGb3JMYXlvdXRCb3goKmxheW91dEJveC5jb250YWluaW5nQmxvY2soKSkuY29udGVudEJveFdp
ZHRoKCk7CisgICAgZGlzcGxheUJveC5zZXRCb3JkZXIoR2VvbWV0cnk6OmNvbXB1dGVkQm9yZGVy
KGxheW91dEJveCkpOworICAgIGRpc3BsYXlCb3guc2V0UGFkZGluZyhHZW9tZXRyeTo6Y29tcHV0
ZWRQYWRkaW5nKGxheW91dEJveCwgVXNlZEhvcml6b250YWxWYWx1ZXMgeyBjb250YWluaW5nQmxv
Y2tXaWR0aCwgeyB9LCB7IH0gfSkpOwogfQogCiB2b2lkIEZvcm1hdHRpbmdDb250ZXh0OjpsYXlv
dXRPdXRPZkZsb3dEZXNjZW5kYW50cyhjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggODI3MGRhOGNjNGFlN2Jh
ZmJjNjRiZGRkZDk0OTUyMGFmYmVmZjI2OC4uNjI1MzBhM2ZkZTBkMTdlNDY4ODczYWNlYTBlM2M0
Njk5MWQ1MzU5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdD
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmgK
QEAgLTkwLDEyICs5MCwxMiBAQCBwcm90ZWN0ZWQ6CiAgICAgICAgIHN0YXRpYyBMYXlvdXRTaXpl
IGluRmxvd1Bvc2l0aW9uZWRQb3NpdGlvbk9mZnNldChjb25zdCBMYXlvdXRTdGF0ZSYsIGNvbnN0
IEJveCYpOwogCiAgICAgICAgIHN0YXRpYyBIZWlnaHRBbmRNYXJnaW4gY29tcGxpY2F0ZWRDYXNl
cyhjb25zdCBMYXlvdXRTdGF0ZSYsIGNvbnN0IEJveCYsIFVzZWRWZXJ0aWNhbFZhbHVlcyk7Ci0g
ICAgICAgIHN0YXRpYyBMYXlvdXRVbml0IHNocmlua1RvRml0V2lkdGgoTGF5b3V0U3RhdGUmLCBj
b25zdCBCb3gmKTsKKyAgICAgICAgc3RhdGljIExheW91dFVuaXQgc2hyaW5rVG9GaXRXaWR0aChM
YXlvdXRTdGF0ZSYsIGNvbnN0IEJveCYsIFVzZWRIb3Jpem9udGFsVmFsdWVzKTsKIAotICAgICAg
ICBzdGF0aWMgRWRnZXMgY29tcHV0ZWRCb3JkZXIoY29uc3QgTGF5b3V0U3RhdGUmLCBjb25zdCBC
b3gmKTsKLSAgICAgICAgc3RhdGljIE9wdGlvbmFsPEVkZ2VzPiBjb21wdXRlZFBhZGRpbmcoY29u
c3QgTGF5b3V0U3RhdGUmLCBjb25zdCBCb3gmKTsKKyAgICAgICAgc3RhdGljIEVkZ2VzIGNvbXB1
dGVkQm9yZGVyKGNvbnN0IEJveCYpOworICAgICAgICBzdGF0aWMgT3B0aW9uYWw8RWRnZXM+IGNv
bXB1dGVkUGFkZGluZyhjb25zdCBCb3gmLCBVc2VkSG9yaXpvbnRhbFZhbHVlcyk7CiAKLSAgICAg
ICAgc3RhdGljIENvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbiBjb21wdXRlZEhvcml6b250YWxNYXJn
aW4oY29uc3QgTGF5b3V0U3RhdGUmLCBjb25zdCBCb3gmKTsKKyAgICAgICAgc3RhdGljIENvbXB1
dGVkSG9yaXpvbnRhbE1hcmdpbiBjb21wdXRlZEhvcml6b250YWxNYXJnaW4oY29uc3QgQm94Jiwg
VXNlZEhvcml6b250YWxWYWx1ZXMpOwogICAgICAgICBzdGF0aWMgQ29tcHV0ZWRWZXJ0aWNhbE1h
cmdpbiBjb21wdXRlZFZlcnRpY2FsTWFyZ2luKGNvbnN0IExheW91dFN0YXRlJiwgY29uc3QgQm94
Jik7CiAKICAgICAgICAgc3RhdGljIE9wdGlvbmFsPExheW91dFVuaXQ+IGNvbXB1dGVkVmFsdWVJ
Zk5vdEF1dG8oY29uc3QgTGVuZ3RoJiBnZW9tZXRyeVByb3BlcnR5LCBMYXlvdXRVbml0IGNvbnRh
aW5pbmdCbG9ja1dpZHRoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3Jt
YXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0
aW5nQ29udGV4dEdlb21ldHJ5LmNwcAppbmRleCBjODQ2MTIyOGY0MTAzOWNkYjk1ODIwNmY2ZThm
OTVkOWVhMThjN2Q5Li44MDliMDE3NTgyYjM4MjA1ODU3NjZjYjJmNzJjYjhlN2RkNDc4OGQ0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRy
eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0
cnkuY3BwCkBAIC0yMzQsNyArMjM0LDcgQEAgc3RhdGljIExheW91dFVuaXQgc3RhdGljSG9yaXpv
bnRhbFBvc2l0aW9uRm9yT3V0T2ZGbG93UG9zaXRpb25lZChjb25zdCBMYXlvdXRTdGEKICAgICBy
ZXR1cm4gbGVmdDsKIH0KIAotTGF5b3V0VW5pdCBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6
OnNocmlua1RvRml0V2lkdGgoTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBjb25zdCBCb3gmIGZv
cm1hdHRpbmdSb290KQorTGF5b3V0VW5pdCBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnNo
cmlua1RvRml0V2lkdGgoTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBjb25zdCBCb3gmIGZvcm1h
dHRpbmdSb290LCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB1c2VkVmFsdWVzKQogewogICAgIExPR19X
SVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJbV2lkdGhdIC0+
IHNocmluayB0byBmaXQgLT4gdW5zdXBwb3J0ZWQgLT4gd2lkdGgoIiA8PCBMYXlvdXRVbml0IHsg
fSA8PCAicHgpIGxheW91dEJveDogIiA8PCAmZm9ybWF0dGluZ1Jvb3QgPDwgIikiKTsKICAgICBB
U1NFUlQoZm9ybWF0dGluZ1Jvb3QuZXN0YWJsaXNoZXNGb3JtYXR0aW5nQ29udGV4dCgpKTsKQEAg
LTI0Niw3ICsyNDYsNyBAQCBMYXlvdXRVbml0IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
c2hyaW5rVG9GaXRXaWR0aChMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdAogICAgIC8vICdwYWRkaW5n
LWxlZnQnLCAncGFkZGluZy1yaWdodCcsICdib3JkZXItcmlnaHQtd2lkdGgnLCAnbWFyZ2luLXJp
Z2h0JywgYW5kIHRoZSB3aWR0aHMgb2YgYW55IHJlbGV2YW50IHNjcm9sbCBiYXJzLgogCiAgICAg
Ly8gVGhlbiB0aGUgc2hyaW5rLXRvLWZpdCB3aWR0aCBpczogbWluKG1heChwcmVmZXJyZWQgbWlu
aW11bSB3aWR0aCwgYXZhaWxhYmxlIHdpZHRoKSwgcHJlZmVycmVkIHdpZHRoKS4KLSAgICBhdXRv
IGF2YWlsYWJsZVdpZHRoID0gbGF5b3V0U3RhdGUuZGlzcGxheUJveEZvckxheW91dEJveCgqZm9y
bWF0dGluZ1Jvb3QuY29udGFpbmluZ0Jsb2NrKCkpLndpZHRoKCk7CisgICAgYXV0byBhdmFpbGFi
bGVXaWR0aCA9IHVzZWRWYWx1ZXMuY29udGFpbmluZ0Jsb2NrV2lkdGg7CiAgICAgYXV0byBpbnN0
cmluc2ljV2lkdGhDb25zdHJhaW50cyA9IGxheW91dFN0YXRlLmNyZWF0ZUZvcm1hdHRpbmdDb250
ZXh0KGZvcm1hdHRpbmdSb290KS0+aW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKTsKICAgICBy
ZXR1cm4gc3RkOjptaW4oc3RkOjptYXgoaW5zdHJpbnNpY1dpZHRoQ29uc3RyYWludHMubWluaW11
bSwgYXZhaWxhYmxlV2lkdGgpLCBpbnN0cmluc2ljV2lkdGhDb25zdHJhaW50cy5tYXhpbXVtKTsK
IH0KQEAgLTQxMCwxNCArNDEwLDE0IEBAIEhvcml6b250YWxHZW9tZXRyeSBGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd05vblJlcGxhY2VkSG9yaXpvbnRhbEdlCiAgICAgYXV0
byYgZGlzcGxheUJveCA9IGxheW91dFN0YXRlLmRpc3BsYXlCb3hGb3JMYXlvdXRCb3gobGF5b3V0
Qm94KTsKICAgICBhdXRvJiBjb250YWluaW5nQmxvY2sgPSAqbGF5b3V0Qm94LmNvbnRhaW5pbmdC
bG9jaygpOwogICAgIGF1dG8mIGNvbnRhaW5pbmdCbG9ja0Rpc3BsYXlCb3ggPSBsYXlvdXRTdGF0
ZS5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KGNvbnRhaW5pbmdCbG9jayk7Ci0gICAgYXV0byBjb250
YWluaW5nQmxvY2tXaWR0aCA9IGNvbnRhaW5pbmdCbG9ja0Rpc3BsYXlCb3gucGFkZGluZ0JveFdp
ZHRoKCk7CisgICAgYXV0byBjb250YWluaW5nQmxvY2tXaWR0aCA9IHVzZWRWYWx1ZXMuY29udGFp
bmluZ0Jsb2NrV2lkdGg7CiAgICAgYXV0byBpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uID0gY29udGFp
bmluZ0Jsb2NrLnN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpOwogICAgIAogICAgIGF1
dG8gbGVmdCA9IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUubG9naWNhbExlZnQoKSwgY29u
dGFpbmluZ0Jsb2NrV2lkdGgpOwogICAgIGF1dG8gcmlnaHQgPSBjb21wdXRlZFZhbHVlSWZOb3RB
dXRvKHN0eWxlLmxvZ2ljYWxSaWdodCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCk7CiAgICAgYXV0
byBpc1N0YXRpY2FsbHlQb3NpdGlvbmVkID0gIWxlZnQgJiYgIXJpZ2h0OwogICAgIGF1dG8gd2lk
dGggPSBjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHVzZWRWYWx1ZXMud2lkdGggPyBMZW5ndGggeyB1
c2VkVmFsdWVzLndpZHRoLnZhbHVlKCksIEZpeGVkIH0gOiBzdHlsZS5sb2dpY2FsV2lkdGgoKSwg
Y29udGFpbmluZ0Jsb2NrV2lkdGgpOwotICAgIGF1dG8gY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2lu
ID0gR2VvbWV0cnk6OmNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbihsYXlvdXRTdGF0ZSwgbGF5b3V0
Qm94KTsKKyAgICBhdXRvIGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbiA9IEdlb21ldHJ5Ojpjb21w
dXRlZEhvcml6b250YWxNYXJnaW4obGF5b3V0Qm94LCB1c2VkVmFsdWVzKTsKICAgICBVc2VkSG9y
aXpvbnRhbE1hcmdpbiB1c2VkSG9yaXpvbnRhbE1hcmdpbjsKICAgICBhdXRvIHBhZGRpbmdMZWZ0
ID0gZGlzcGxheUJveC5wYWRkaW5nTGVmdCgpLnZhbHVlT3IoMCk7CiAgICAgYXV0byBwYWRkaW5n
UmlnaHQgPSBkaXNwbGF5Qm94LnBhZGRpbmdSaWdodCgpLnZhbHVlT3IoMCk7CkBAIC00ODcsNyAr
NDg3LDcgQEAgSG9yaXpvbnRhbEdlb21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
b3V0T2ZGbG93Tm9uUmVwbGFjZWRIb3Jpem9udGFsR2UKIAogICAgIGlmICghbGVmdCAmJiAhd2lk
dGggJiYgcmlnaHQpIHsKICAgICAgICAgLy8gIzEKLSAgICAgICAgd2lkdGggPSBzaHJpbmtUb0Zp
dFdpZHRoKGxheW91dFN0YXRlLCBsYXlvdXRCb3gpOworICAgICAgICB3aWR0aCA9IHNocmlua1Rv
Rml0V2lkdGgobGF5b3V0U3RhdGUsIGxheW91dEJveCwgdXNlZFZhbHVlcyk7CiAgICAgICAgIGxl
ZnQgPSBjb250YWluaW5nQmxvY2tXaWR0aCAtICh1c2VkSG9yaXpvbnRhbE1hcmdpbi5zdGFydCAr
IGJvcmRlckxlZnQgKyBwYWRkaW5nTGVmdCArICp3aWR0aCArIHBhZGRpbmdSaWdodCAgKyBib3Jk
ZXJSaWdodCArIHVzZWRIb3Jpem9udGFsTWFyZ2luLmVuZCArICpyaWdodCk7CiAgICAgfSBlbHNl
IGlmICghbGVmdCAmJiAhcmlnaHQgJiYgd2lkdGgpIHsKICAgICAgICAgLy8gIzIKQEAgLTUwMSw3
ICs1MDEsNyBAQCBIb3Jpem9udGFsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5
OjpvdXRPZkZsb3dOb25SZXBsYWNlZEhvcml6b250YWxHZQogICAgICAgICB9CiAgICAgfSBlbHNl
IGlmICghd2lkdGggJiYgIXJpZ2h0ICYmIGxlZnQpIHsKICAgICAgICAgLy8gIzMKLSAgICAgICAg
d2lkdGggPSBzaHJpbmtUb0ZpdFdpZHRoKGxheW91dFN0YXRlLCBsYXlvdXRCb3gpOworICAgICAg
ICB3aWR0aCA9IHNocmlua1RvRml0V2lkdGgobGF5b3V0U3RhdGUsIGxheW91dEJveCwgdXNlZFZh
bHVlcyk7CiAgICAgICAgIHJpZ2h0ID0gY29udGFpbmluZ0Jsb2NrV2lkdGggLSAoKmxlZnQgKyB1
c2VkSG9yaXpvbnRhbE1hcmdpbi5zdGFydCArIGJvcmRlckxlZnQgKyBwYWRkaW5nTGVmdCArICp3
aWR0aCArIHBhZGRpbmdSaWdodCArIGJvcmRlclJpZ2h0ICsgdXNlZEhvcml6b250YWxNYXJnaW4u
ZW5kKTsKICAgICB9IGVsc2UgaWYgKCFsZWZ0ICYmIHdpZHRoICYmIHJpZ2h0KSB7CiAgICAgICAg
IC8vICM0CkBAIC02MzUsMTQgKzYzNSwxMyBAQCBIb3Jpem9udGFsR2VvbWV0cnkgRm9ybWF0dGlu
Z0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dSZXBsYWNlZEhvcml6b250YWxHZW9tZQogICAg
IGF1dG8mIHN0eWxlID0gbGF5b3V0Qm94LnN0eWxlKCk7CiAgICAgYXV0byYgZGlzcGxheUJveCA9
IGxheW91dFN0YXRlLmRpc3BsYXlCb3hGb3JMYXlvdXRCb3gobGF5b3V0Qm94KTsKICAgICBhdXRv
JiBjb250YWluaW5nQmxvY2sgPSAqbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpOwotICAgIGF1
dG8mIGNvbnRhaW5pbmdCbG9ja0Rpc3BsYXlCb3ggPSBsYXlvdXRTdGF0ZS5kaXNwbGF5Qm94Rm9y
TGF5b3V0Qm94KGNvbnRhaW5pbmdCbG9jayk7Ci0gICAgYXV0byBjb250YWluaW5nQmxvY2tXaWR0
aCA9IGNvbnRhaW5pbmdCbG9ja0Rpc3BsYXlCb3gucGFkZGluZ0JveFdpZHRoKCk7CisgICAgYXV0
byBjb250YWluaW5nQmxvY2tXaWR0aCA9IHVzZWRWYWx1ZXMuY29udGFpbmluZ0Jsb2NrV2lkdGg7
CiAgICAgYXV0byBpc0xlZnRUb1JpZ2h0RGlyZWN0aW9uID0gY29udGFpbmluZ0Jsb2NrLnN0eWxl
KCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpOwogCiAgICAgYXV0byBsZWZ0ID0gY29tcHV0ZWRW
YWx1ZUlmTm90QXV0byhzdHlsZS5sb2dpY2FsTGVmdCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCk7
CiAgICAgYXV0byByaWdodCA9IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUubG9naWNhbFJp
Z2h0KCksIGNvbnRhaW5pbmdCbG9ja1dpZHRoKTsKICAgICBhdXRvIGlzU3RhdGljYWxseVBvc2l0
aW9uZWQgPSAhbGVmdCAmJiAhcmlnaHQ7Ci0gICAgYXV0byBjb21wdXRlZEhvcml6b250YWxNYXJn
aW4gPSBHZW9tZXRyeTo6Y29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luKGxheW91dFN0YXRlLCBsYXlv
dXRCb3gpOworICAgIGF1dG8gY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luID0gR2VvbWV0cnk6OmNv
bXB1dGVkSG9yaXpvbnRhbE1hcmdpbihsYXlvdXRCb3gsIHVzZWRWYWx1ZXMpOwogICAgIE9wdGlv
bmFsPExheW91dFVuaXQ+IHVzZWRNYXJnaW5TdGFydCA9IGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdp
bi5zdGFydDsKICAgICBPcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkTWFyZ2luRW5kID0gY29tcHV0
ZWRIb3Jpem9udGFsTWFyZ2luLmVuZDsKICAgICBhdXRvIHdpZHRoID0gaW5saW5lUmVwbGFjZWRX
aWR0aEFuZE1hcmdpbihsYXlvdXRTdGF0ZSwgbGF5b3V0Qm94LCB1c2VkVmFsdWVzKS53aWR0aDsK
QEAgLTcxMyw3ICs3MTIsNyBAQCBIb3Jpem9udGFsR2VvbWV0cnkgRm9ybWF0dGluZ0NvbnRleHQ6
Okdlb21ldHJ5OjpvdXRPZkZsb3dSZXBsYWNlZEhvcml6b250YWxHZW9tZQogICAgIC8vIEZvciBv
dXQtb2YtZmxvdyBlbGVtZW50cyB0aGUgY29udGFpbmluZyBibG9jayBpcyBmb3JtZWQgYnkgdGhl
IHBhZGRpbmcgZWRnZSBvZiB0aGUgYW5jZXN0b3IuCiAgICAgLy8gQXQgdGhpcyBwb2ludCB0aGUg
bm9uLXN0YXRpY2FsbHkgcG9zaXRpb25lZCB2YWx1ZSBpcyBpbiB0aGUgY29vcmRpbmF0ZSBzeXN0
ZW0gb2YgdGhlIHBhZGRpbmcgYm94LiBMZXQncyBjb252ZXJ0IGl0IHRvIGJvcmRlciBib3ggY29v
cmRpbmF0ZSBzeXN0ZW0uCiAgICAgaWYgKCFpc1N0YXRpY2FsbHlQb3NpdGlvbmVkKSB7Ci0gICAg
ICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrUGFkZGluZ1ZlcnRpY2FsRWRnZSA9IGNvbnRhaW5pbmdC
bG9ja0Rpc3BsYXlCb3gucGFkZGluZ0JveExlZnQoKTsKKyAgICAgICAgYXV0byBjb250YWluaW5n
QmxvY2tQYWRkaW5nVmVydGljYWxFZGdlID0gbGF5b3V0U3RhdGUuZGlzcGxheUJveEZvckxheW91
dEJveChjb250YWluaW5nQmxvY2spLnBhZGRpbmdCb3hMZWZ0KCk7CiAgICAgICAgICpsZWZ0ICs9
IGNvbnRhaW5pbmdCbG9ja1BhZGRpbmdWZXJ0aWNhbEVkZ2U7CiAgICAgICAgICpyaWdodCArPSBj
b250YWluaW5nQmxvY2tQYWRkaW5nVmVydGljYWxFZGdlOwogICAgIH0KQEAgLTc2MiwxNiArNzYx
LDE0IEBAIFdpZHRoQW5kTWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRp
bmdOb25SZXBsYWNlZFdpZHRoQW5kTWFyZ2luKExhCiAgICAgLy8gMS4gSWYgJ21hcmdpbi1sZWZ0
Jywgb3IgJ21hcmdpbi1yaWdodCcgYXJlIGNvbXB1dGVkIGFzICdhdXRvJywgdGhlaXIgdXNlZCB2
YWx1ZSBpcyAnMCcuCiAgICAgLy8gMi4gSWYgJ3dpZHRoJyBpcyBjb21wdXRlZCBhcyAnYXV0bycs
IHRoZSB1c2VkIHZhbHVlIGlzIHRoZSAic2hyaW5rLXRvLWZpdCIgd2lkdGguCiAKLSAgICBhdXRv
JiBjb250YWluaW5nQmxvY2sgPSAqbGF5b3V0Qm94LmNvbnRhaW5pbmdCbG9jaygpOwotICAgIGF1
dG8gY29udGFpbmluZ0Jsb2NrV2lkdGggPSBsYXlvdXRTdGF0ZS5kaXNwbGF5Qm94Rm9yTGF5b3V0
Qm94KGNvbnRhaW5pbmdCbG9jaykuY29udGVudEJveFdpZHRoKCk7Ci0gICAgYXV0byBjb21wdXRl
ZEhvcml6b250YWxNYXJnaW4gPSBHZW9tZXRyeTo6Y29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luKGxh
eW91dFN0YXRlLCBsYXlvdXRCb3gpOworICAgIGF1dG8gY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2lu
ID0gR2VvbWV0cnk6OmNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbihsYXlvdXRCb3gsIHVzZWRWYWx1
ZXMpOwogCiAgICAgLy8gIzEKICAgICBhdXRvIHVzZWRIb3Jpem9udGFsbE1hcmdpbiA9IFVzZWRI
b3Jpem9udGFsTWFyZ2luIHsgY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luLnN0YXJ0LnZhbHVlT3Io
MCksIGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbi5lbmQudmFsdWVPcigwKSB9OwogICAgIC8vICMy
Ci0gICAgYXV0byB3aWR0aCA9IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8odXNlZFZhbHVlcy53aWR0
aCA/IExlbmd0aCB7IHVzZWRWYWx1ZXMud2lkdGgudmFsdWUoKSwgRml4ZWQgfSA6IGxheW91dEJv
eC5zdHlsZSgpLmxvZ2ljYWxXaWR0aCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCk7CisgICAgYXV0
byB3aWR0aCA9IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8odXNlZFZhbHVlcy53aWR0aCA/IExlbmd0
aCB7IHVzZWRWYWx1ZXMud2lkdGgudmFsdWUoKSwgRml4ZWQgfSA6IGxheW91dEJveC5zdHlsZSgp
LmxvZ2ljYWxXaWR0aCgpLCB1c2VkVmFsdWVzLmNvbnRhaW5pbmdCbG9ja1dpZHRoKTsKICAgICBp
ZiAoIXdpZHRoKQotICAgICAgICB3aWR0aCA9IHNocmlua1RvRml0V2lkdGgobGF5b3V0U3RhdGUs
IGxheW91dEJveCk7CisgICAgICAgIHdpZHRoID0gc2hyaW5rVG9GaXRXaWR0aChsYXlvdXRTdGF0
ZSwgbGF5b3V0Qm94LCB1c2VkVmFsdWVzKTsKIAogICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0
aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJbV2lkdGhdW01hcmdpbl0gLT4gZmxvYXRpbmcg
bm9uLXJlcGxhY2VkIC0+IHdpZHRoKCIgPDwgKndpZHRoIDw8ICJweCkgbWFyZ2luKCIgPDwgdXNl
ZEhvcml6b250YWxsTWFyZ2luLnN0YXJ0IDw8ICJweCwgIiA8PCB1c2VkSG9yaXpvbnRhbGxNYXJn
aW4uZW5kIDw8ICJweCkgLT4gbGF5b3V0Qm94KCIgPDwgJmxheW91dEJveCA8PCAiKSIpOwogICAg
IHJldHVybiBXaWR0aEFuZE1hcmdpbiB7ICp3aWR0aCwgdXNlZEhvcml6b250YWxsTWFyZ2luLCBj
b21wdXRlZEhvcml6b250YWxNYXJnaW4gfTsKQEAgLTc5NSwxMCArNzkyLDEwIEBAIFdpZHRoQW5k
TWFyZ2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdSZXBsYWNlZFdpZHRo
QW5kTWFyZ2luKGNvbnN0CiAgICAgLy8KICAgICAvLyAxLiBJZiAnbWFyZ2luLWxlZnQnIG9yICdt
YXJnaW4tcmlnaHQnIGFyZSBjb21wdXRlZCBhcyAnYXV0bycsIHRoZWlyIHVzZWQgdmFsdWUgaXMg
JzAnLgogICAgIC8vIDIuIFRoZSB1c2VkIHZhbHVlIG9mICd3aWR0aCcgaXMgZGV0ZXJtaW5lZCBh
cyBmb3IgaW5saW5lIHJlcGxhY2VkIGVsZW1lbnRzLgotICAgIGF1dG8gY29tcHV0ZWRIb3Jpem9u
dGFsTWFyZ2luID0gR2VvbWV0cnk6OmNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbihsYXlvdXRTdGF0
ZSwgbGF5b3V0Qm94KTsKKyAgICBhdXRvIGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbiA9IEdlb21l
dHJ5Ojpjb21wdXRlZEhvcml6b250YWxNYXJnaW4obGF5b3V0Qm94LCB1c2VkVmFsdWVzKTsKIAog
ICAgIExPR19XSVRIX1NUUkVBTShGb3JtYXR0aW5nQ29udGV4dExheW91dCwgc3RyZWFtIDw8ICJb
SGVpZ2h0XVtNYXJnaW5dIC0+IGZsb2F0aW5nIHJlcGxhY2VkIC0+IHJlZGlyZWN0ZWQgdG8gaW5s
aW5lIHJlcGxhY2VkIik7Ci0gICAgcmV0dXJuIGlubGluZVJlcGxhY2VkV2lkdGhBbmRNYXJnaW4o
bGF5b3V0U3RhdGUsIGxheW91dEJveCwgeyB1c2VkVmFsdWVzLndpZHRoLCBVc2VkSG9yaXpvbnRh
bE1hcmdpbiB7IGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbi5zdGFydC52YWx1ZU9yKDApLCBjb21w
dXRlZEhvcml6b250YWxNYXJnaW4uZW5kLnZhbHVlT3IoMCkgfSB9KTsKKyAgICByZXR1cm4gaW5s
aW5lUmVwbGFjZWRXaWR0aEFuZE1hcmdpbihsYXlvdXRTdGF0ZSwgbGF5b3V0Qm94LCBVc2VkSG9y
aXpvbnRhbFZhbHVlcyB7IHVzZWRWYWx1ZXMuY29udGFpbmluZ0Jsb2NrV2lkdGgsIHVzZWRWYWx1
ZXMud2lkdGgsIFVzZWRIb3Jpem9udGFsTWFyZ2luIHsgY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2lu
LnN0YXJ0LnZhbHVlT3IoMCksIGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbi5lbmQudmFsdWVPcigw
KSB9IH0pOwogfQogCiBWZXJ0aWNhbEdlb21ldHJ5IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRy
eTo6b3V0T2ZGbG93VmVydGljYWxHZW9tZXRyeShjb25zdCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3Rh
dGUsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkVmVydGljYWxWYWx1ZXMgdXNlZFZhbHVlcykK
QEAgLTkwNiw5ICs5MDMsOCBAQCBXaWR0aEFuZE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnk6OmlubGluZVJlcGxhY2VkV2lkdGhBbmRNYXJnaW4oY29uc3QgTAogICAgIC8vICAgIElm
IDMwMHB4IGlzIHRvbyB3aWRlIHRvIGZpdCB0aGUgZGV2aWNlLCBVQXMgc2hvdWxkIHVzZSB0aGUg
d2lkdGggb2YgdGhlIGxhcmdlc3QgcmVjdGFuZ2xlIHRoYXQgaGFzIGEgMjoxIHJhdGlvIGFuZCBm
aXRzIHRoZSBkZXZpY2UgaW5zdGVhZC4KIAogICAgIGF1dG8mIHN0eWxlID0gbGF5b3V0Qm94LnN0
eWxlKCk7Ci0gICAgYXV0byYgY29udGFpbmluZ0Jsb2NrID0gKmxheW91dEJveC5jb250YWluaW5n
QmxvY2soKTsKLSAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja1dpZHRoID0gbGF5b3V0U3RhdGUuZGlz
cGxheUJveEZvckxheW91dEJveChjb250YWluaW5nQmxvY2spLmNvbnRlbnRCb3hXaWR0aCgpOwot
ICAgIGF1dG8gY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luID0gR2VvbWV0cnk6OmNvbXB1dGVkSG9y
aXpvbnRhbE1hcmdpbihsYXlvdXRTdGF0ZSwgbGF5b3V0Qm94KTsKKyAgICBhdXRvIGNvbnRhaW5p
bmdCbG9ja1dpZHRoID0gdXNlZFZhbHVlcy5jb250YWluaW5nQmxvY2tXaWR0aDsKKyAgICBhdXRv
IGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbiA9IEdlb21ldHJ5Ojpjb21wdXRlZEhvcml6b250YWxN
YXJnaW4obGF5b3V0Qm94LCB1c2VkVmFsdWVzKTsKIAogICAgIGF1dG8gdXNlZE1hcmdpblN0YXJ0
ID0gWyZdIHsKICAgICAgICAgaWYgKHVzZWRWYWx1ZXMubWFyZ2luKQpAQCAtMTAzMCw3ICsxMDI2
LDcgQEAgTGF5b3V0U2l6ZSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd1Bvc2l0
aW9uZWRQb3NpdGlvbk9mZnNldChjb25zdCBMYXkKICAgICByZXR1cm4geyBsZWZ0UG9zaXRpb25P
ZmZzZXQsIHRvcFBvc2l0aW9uT2Zmc2V0IH07CiB9CiAKLUVkZ2VzIEZvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6Y29tcHV0ZWRCb3JkZXIoY29uc3QgTGF5b3V0U3RhdGUmLCBjb25zdCBCb3gm
IGxheW91dEJveCkKK0VkZ2VzIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWRC
b3JkZXIoY29uc3QgQm94JiBsYXlvdXRCb3gpCiB7CiAgICAgYXV0byYgc3R5bGUgPSBsYXlvdXRC
b3guc3R5bGUoKTsKICAgICBMT0dfV0lUSF9TVFJFQU0oRm9ybWF0dGluZ0NvbnRleHRMYXlvdXQs
IHN0cmVhbSA8PCAiW0JvcmRlcl0gLT4gbGF5b3V0Qm94OiAiIDw8ICZsYXlvdXRCb3gpOwpAQCAt
MTA0MCwyNSArMTAzNiwyMyBAQCBFZGdlcyBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNv
bXB1dGVkQm9yZGVyKGNvbnN0IExheW91dFN0YXRlJiwgY29uc3QgQm94JgogICAgIH07CiB9CiAK
LU9wdGlvbmFsPEVkZ2VzPiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbXB1dGVkUGFk
ZGluZyhjb25zdCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0IEJveCYgbGF5b3V0Qm94
KQorT3B0aW9uYWw8RWRnZXM+IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWRQ
YWRkaW5nKGNvbnN0IEJveCYgbGF5b3V0Qm94LCBVc2VkSG9yaXpvbnRhbFZhbHVlcyB1c2VkVmFs
dWVzKQogewogICAgIGlmICghbGF5b3V0Qm94LmlzUGFkZGluZ0FwcGxpY2FibGUoKSkKICAgICAg
ICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAogICAgIGF1dG8mIHN0eWxlID0gbGF5b3V0Qm94LnN0
eWxlKCk7Ci0gICAgYXV0byBjb250YWluaW5nQmxvY2tXaWR0aCA9IGxheW91dFN0YXRlLmRpc3Bs
YXlCb3hGb3JMYXlvdXRCb3goKmxheW91dEJveC5jb250YWluaW5nQmxvY2soKSkuY29udGVudEJv
eFdpZHRoKCk7CiAgICAgTE9HX1dJVEhfU1RSRUFNKEZvcm1hdHRpbmdDb250ZXh0TGF5b3V0LCBz
dHJlYW0gPDwgIltQYWRkaW5nXSAtPiBsYXlvdXRCb3g6ICIgPDwgJmxheW91dEJveCk7CiAgICAg
cmV0dXJuIEVkZ2VzIHsKLSAgICAgICAgeyB2YWx1ZUZvckxlbmd0aChzdHlsZS5wYWRkaW5nTGVm
dCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCksIHZhbHVlRm9yTGVuZ3RoKHN0eWxlLnBhZGRpbmdS
aWdodCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCkgfSwKLSAgICAgICAgeyB2YWx1ZUZvckxlbmd0
aChzdHlsZS5wYWRkaW5nVG9wKCksIGNvbnRhaW5pbmdCbG9ja1dpZHRoKSwgdmFsdWVGb3JMZW5n
dGgoc3R5bGUucGFkZGluZ0JvdHRvbSgpLCBjb250YWluaW5nQmxvY2tXaWR0aCkgfQorICAgICAg
ICB7IHZhbHVlRm9yTGVuZ3RoKHN0eWxlLnBhZGRpbmdMZWZ0KCksIHVzZWRWYWx1ZXMuY29udGFp
bmluZ0Jsb2NrV2lkdGgpLCB2YWx1ZUZvckxlbmd0aChzdHlsZS5wYWRkaW5nUmlnaHQoKSwgdXNl
ZFZhbHVlcy5jb250YWluaW5nQmxvY2tXaWR0aCkgfSwKKyAgICAgICAgeyB2YWx1ZUZvckxlbmd0
aChzdHlsZS5wYWRkaW5nVG9wKCksIHVzZWRWYWx1ZXMuY29udGFpbmluZ0Jsb2NrV2lkdGgpLCB2
YWx1ZUZvckxlbmd0aChzdHlsZS5wYWRkaW5nQm90dG9tKCksIHVzZWRWYWx1ZXMuY29udGFpbmlu
Z0Jsb2NrV2lkdGgpIH0KICAgICB9OwogfQogCi1Db21wdXRlZEhvcml6b250YWxNYXJnaW4gRm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRlZEhvcml6b250YWxNYXJnaW4oY29uc3Qg
TGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBjb25zdCBCb3gmIGxheW91dEJveCkKK0NvbXB1dGVk
SG9yaXpvbnRhbE1hcmdpbiBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmNvbXB1dGVkSG9y
aXpvbnRhbE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZEhvcml6b250YWxWYWx1ZXMg
dXNlZFZhbHVlcykKIHsKICAgICBhdXRvJiBzdHlsZSA9IGxheW91dEJveC5zdHlsZSgpOwotICAg
IGF1dG8gY29udGFpbmluZ0Jsb2NrV2lkdGggPSBsYXlvdXRTdGF0ZS5kaXNwbGF5Qm94Rm9yTGF5
b3V0Qm94KCpsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpLmNvbnRlbnRCb3hXaWR0aCgpOwot
ICAgIHJldHVybiB7IGNvbXB1dGVkVmFsdWVJZk5vdEF1dG8oc3R5bGUubWFyZ2luU3RhcnQoKSwg
Y29udGFpbmluZ0Jsb2NrV2lkdGgpLCBjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHN0eWxlLm1hcmdp
bkVuZCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCkgfTsKKyAgICByZXR1cm4geyBjb21wdXRlZFZh
bHVlSWZOb3RBdXRvKHN0eWxlLm1hcmdpblN0YXJ0KCksIHVzZWRWYWx1ZXMuY29udGFpbmluZ0Js
b2NrV2lkdGgpLCBjb21wdXRlZFZhbHVlSWZOb3RBdXRvKHN0eWxlLm1hcmdpbkVuZCgpLCB1c2Vk
VmFsdWVzLmNvbnRhaW5pbmdCbG9ja1dpZHRoKSB9OwogfQogCiBDb21wdXRlZFZlcnRpY2FsTWFy
Z2luIEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWRWZXJ0aWNhbE1hcmdpbihj
b25zdCBMYXlvdXRTdGF0ZSYgbGF5b3V0U3RhdGUsIGNvbnN0IEJveCYgbGF5b3V0Qm94KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0xheW91dFVuaXRzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvTGF5b3V0VW5pdHMuaAppbmRleCA4M2MxYjZlYjNkNGZhMTIwNWMzMmMyNDhm
ZjU1YjgxMDUyNGY5MWUyLi42MWJhZTI0OTI0NjdmYzc3M2RiN2FjZmIyMmM2OWYwN2I1YmI3ZTUw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0VW5pdHMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0VW5pdHMuaApAQCAtMTI1LDYgKzEyNSwxNCBAQCBz
dHJ1Y3QgVmVydGljYWxHZW9tZXRyeSB7CiB9OwogCiBzdHJ1Y3QgVXNlZEhvcml6b250YWxWYWx1
ZXMgeworICAgIGV4cGxpY2l0IFVzZWRIb3Jpem9udGFsVmFsdWVzKExheW91dFVuaXQgY29udGFp
bmluZ0Jsb2NrV2lkdGgsIE9wdGlvbmFsPExheW91dFVuaXQ+IHdpZHRoLCBPcHRpb25hbDxVc2Vk
SG9yaXpvbnRhbE1hcmdpbj4gbWFyZ2luKQorICAgICAgICA6IGNvbnRhaW5pbmdCbG9ja1dpZHRo
KGNvbnRhaW5pbmdCbG9ja1dpZHRoKQorICAgICAgICAsIHdpZHRoKHdpZHRoKQorICAgICAgICAs
IG1hcmdpbihtYXJnaW4pCisgICAgICAgIHsKKyAgICAgICAgfQorCisgICAgTGF5b3V0VW5pdCBj
b250YWluaW5nQmxvY2tXaWR0aDsKICAgICBPcHRpb25hbDxMYXlvdXRVbml0PiB3aWR0aDsKICAg
ICBPcHRpb25hbDxVc2VkSG9yaXpvbnRhbE1hcmdpbj4gbWFyZ2luOwogfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9y
bWF0dGluZ0NvbnRleHQuY3BwCmluZGV4IDhhYWM0OTI1YTMyNDAwYWQ4MTMwNjZjNjZkYzZiOWQw
YTBhMjcwOTEuLjU1N2QxZWEzY2JiYmVmMzAwYjhmMmFiYTE2YzkzMjkyYTRkZDVmNmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0
aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGlu
Zy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMjk4LDkgKzI5OCwxMCBAQCB2b2lkIEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVQb3NpdGlvblRvQXZvaWRGbG9hdHMoY29uc3Qg
RmxvYXRpbmdDb250ZXh0Jgogdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlV2lk
dGhBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0CiB7CiAgICAgYXV0byYgbGF5
b3V0U3RhdGUgPSB0aGlzLT5sYXlvdXRTdGF0ZSgpOworICAgIGF1dG8gY29udGFpbmluZ0Jsb2Nr
V2lkdGggPSBsYXlvdXRTdGF0ZS5kaXNwbGF5Qm94Rm9yTGF5b3V0Qm94KCpsYXlvdXRCb3guY29u
dGFpbmluZ0Jsb2NrKCkpLmNvbnRlbnRCb3hXaWR0aCgpOwogCi0gICAgYXV0byBjb21wdXRlID0g
WyZdKFVzZWRIb3Jpem9udGFsVmFsdWVzIHVzZWRWYWx1ZXMpIC0+IFdpZHRoQW5kTWFyZ2luIHsK
LQorICAgIGF1dG8gY29tcHV0ZSA9IFsmXShPcHRpb25hbDxMYXlvdXRVbml0PiB1c2VkV2lkdGgp
IC0+IFdpZHRoQW5kTWFyZ2luIHsKKyAgICAgICAgYXV0byB1c2VkVmFsdWVzID0gVXNlZEhvcml6
b250YWxWYWx1ZXMgeyBjb250YWluaW5nQmxvY2tXaWR0aCwgdXNlZFdpZHRoLCB7IH0gfTsKICAg
ICAgICAgaWYgKGxheW91dEJveC5pc0luRmxvdygpKQogICAgICAgICAgICAgcmV0dXJuIEdlb21l
dHJ5OjppbkZsb3dXaWR0aEFuZE1hcmdpbihsYXlvdXRTdGF0ZSwgbGF5b3V0Qm94LCB1c2VkVmFs
dWVzKTsKIApAQCAtMzEyLDE2ICszMTMsMTUgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
Ojpjb21wdXRlV2lkdGhBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0CiAgICAg
fTsKIAogICAgIGF1dG8gd2lkdGhBbmRNYXJnaW4gPSBjb21wdXRlKHsgfSk7Ci0gICAgYXV0byBj
b250YWluaW5nQmxvY2tXaWR0aCA9IGxheW91dFN0YXRlLmRpc3BsYXlCb3hGb3JMYXlvdXRCb3go
KmxheW91dEJveC5jb250YWluaW5nQmxvY2soKSkuY29udGVudEJveFdpZHRoKCk7CiAKICAgICBp
ZiAoYXV0byBtYXhXaWR0aCA9IEdlb21ldHJ5Ojpjb21wdXRlZFZhbHVlSWZOb3RBdXRvKGxheW91
dEJveC5zdHlsZSgpLmxvZ2ljYWxNYXhXaWR0aCgpLCBjb250YWluaW5nQmxvY2tXaWR0aCkpIHsK
LSAgICAgICAgYXV0byBtYXhXaWR0aEFuZE1hcmdpbiA9IGNvbXB1dGUoeyAqbWF4V2lkdGgsIHsg
fSB9KTsKKyAgICAgICAgYXV0byBtYXhXaWR0aEFuZE1hcmdpbiA9IGNvbXB1dGUobWF4V2lkdGgp
OwogICAgICAgICBpZiAod2lkdGhBbmRNYXJnaW4ud2lkdGggPiBtYXhXaWR0aEFuZE1hcmdpbi53
aWR0aCkKICAgICAgICAgICAgIHdpZHRoQW5kTWFyZ2luID0gbWF4V2lkdGhBbmRNYXJnaW47CiAg
ICAgfQogCiAgICAgYXV0byBtaW5XaWR0aCA9IEdlb21ldHJ5Ojpjb21wdXRlZFZhbHVlSWZOb3RB
dXRvKGxheW91dEJveC5zdHlsZSgpLmxvZ2ljYWxNaW5XaWR0aCgpLCBjb250YWluaW5nQmxvY2tX
aWR0aCkudmFsdWVPcigwKTsKLSAgICBhdXRvIG1pbldpZHRoQW5kTWFyZ2luID0gY29tcHV0ZSh7
IG1pbldpZHRoLCB7IH0gfSk7CisgICAgYXV0byBtaW5XaWR0aEFuZE1hcmdpbiA9IGNvbXB1dGUo
bWluV2lkdGgpOwogICAgIGlmICh3aWR0aEFuZE1hcmdpbi53aWR0aCA8IG1pbldpZHRoQW5kTWFy
Z2luLndpZHRoKQogICAgICAgICB3aWR0aEFuZE1hcmdpbiA9IG1pbldpZHRoQW5kTWFyZ2luOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2Nr
Rm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxv
Y2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKaW5kZXggMzQ0
MmMwY2U3NWQyNjAxODBmNDI2Mzc3NGYzZDEzOGJlMDc4YWFlNC4uM2Q5N2IwM2U5ZjA0ODJhN2Rh
ZTBkMmFjNDMyZjU2NWZjY2RkMmYzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dEdlb21ldHJ5LmNwcApAQCAtMTM2LDExICsxMzYsMTEgQEAgV2lkdGhBbmRNYXJnaW4gQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmluRmxvd05vblJlcGxhY2VkV2lkdGhBbmRN
YXJnaW4KIAogICAgICAgICBhdXRvJiBzdHlsZSA9IGxheW91dEJveC5zdHlsZSgpOwogICAgICAg
ICBhdXRvKiBjb250YWluaW5nQmxvY2sgPSBsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCk7Ci0g
ICAgICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrV2lkdGggPSBsYXlvdXRTdGF0ZS5kaXNwbGF5Qm94
Rm9yTGF5b3V0Qm94KCpjb250YWluaW5nQmxvY2spLmNvbnRlbnRCb3hXaWR0aCgpOworICAgICAg
ICBhdXRvIGNvbnRhaW5pbmdCbG9ja1dpZHRoID0gdXNlZFZhbHVlcy5jb250YWluaW5nQmxvY2tX
aWR0aDsKICAgICAgICAgYXV0byYgZGlzcGxheUJveCA9IGxheW91dFN0YXRlLmRpc3BsYXlCb3hG
b3JMYXlvdXRCb3gobGF5b3V0Qm94KTsKIAogICAgICAgICBhdXRvIHdpZHRoID0gY29tcHV0ZWRW
YWx1ZUlmTm90QXV0byh1c2VkVmFsdWVzLndpZHRoID8gTGVuZ3RoIHsgdXNlZFZhbHVlcy53aWR0
aC52YWx1ZSgpLCBGaXhlZCB9IDogc3R5bGUubG9naWNhbFdpZHRoKCksIGNvbnRhaW5pbmdCbG9j
a1dpZHRoKTsKLSAgICAgICAgYXV0byBjb21wdXRlZEhvcml6b250YWxNYXJnaW4gPSBHZW9tZXRy
eTo6Y29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luKGxheW91dFN0YXRlLCBsYXlvdXRCb3gpOworICAg
ICAgICBhdXRvIGNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbiA9IEdlb21ldHJ5Ojpjb21wdXRlZEhv
cml6b250YWxNYXJnaW4obGF5b3V0Qm94LCB1c2VkVmFsdWVzKTsKICAgICAgICAgVXNlZEhvcml6
b250YWxNYXJnaW4gdXNlZEhvcml6b250YWxNYXJnaW47CiAgICAgICAgIGF1dG8gYm9yZGVyTGVm
dCA9IGRpc3BsYXlCb3guYm9yZGVyTGVmdCgpOwogICAgICAgICBhdXRvIGJvcmRlclJpZ2h0ID0g
ZGlzcGxheUJveC5ib3JkZXJSaWdodCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQu
Y3BwCmluZGV4IDZlNDEzMWJjMzg4YWJiYzQ2ZTJmYjRlMmI4Y2FhYTZmODA3NDkzMDAuLjAyODA4
Mzg3MTA4NDVlZmViY2M2NzIxNDkzZjViYmFlMWIzMjAxMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3Jt
YXR0aW5nQ29udGV4dC5jcHAKQEAgLTk3LDcgKzk3LDggQEAgdm9pZCBJbmxpbmVGb3JtYXR0aW5n
Q29udGV4dDo6Y29tcHV0ZU1hcmdpbkJvcmRlckFuZFBhZGRpbmcoY29uc3QgSW5saW5lQ29udGFp
bmUKIAogICAgIGNvbXB1dGVCb3JkZXJBbmRQYWRkaW5nKGlubGluZUNvbnRhaW5lcik7CiAgICAg
YXV0byYgZGlzcGxheUJveCA9IGxheW91dFN0YXRlKCkuZGlzcGxheUJveEZvckxheW91dEJveChp
bmxpbmVDb250YWluZXIpOwotICAgIGF1dG8gY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luID0gR2Vv
bWV0cnk6OmNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbihsYXlvdXRTdGF0ZSgpLCBpbmxpbmVDb250
YWluZXIpOworICAgIGF1dG8gY29udGFpbmluZ0Jsb2NrV2lkdGggPSBsYXlvdXRTdGF0ZSgpLmRp
c3BsYXlCb3hGb3JMYXlvdXRCb3goKmlubGluZUNvbnRhaW5lci5jb250YWluaW5nQmxvY2soKSku
Y29udGVudEJveFdpZHRoKCk7CisgICAgYXV0byBjb21wdXRlZEhvcml6b250YWxNYXJnaW4gPSBH
ZW9tZXRyeTo6Y29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luKGlubGluZUNvbnRhaW5lciwgVXNlZEhv
cml6b250YWxWYWx1ZXMgeyBjb250YWluaW5nQmxvY2tXaWR0aCwgeyB9LCB7IH0gfSk7CiAgICAg
ZGlzcGxheUJveC5zZXRIb3Jpem9udGFsQ29tcHV0ZWRNYXJnaW4oY29tcHV0ZWRIb3Jpem9udGFs
TWFyZ2luKTsKICAgICBkaXNwbGF5Qm94LnNldEhvcml6b250YWxNYXJnaW4oeyBjb21wdXRlZEhv
cml6b250YWxNYXJnaW4uc3RhcnQudmFsdWVPcigwKSwgY29tcHV0ZWRIb3Jpem9udGFsTWFyZ2lu
LmVuZC52YWx1ZU9yKDApIH0pOwogfQpAQCAtMTA1LDE0ICsxMDYsMTYgQEAgdm9pZCBJbmxpbmVG
b3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZU1hcmdpbkJvcmRlckFuZFBhZGRpbmcoY29uc3QgSW5s
aW5lQ29udGFpbmUKIHZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0aEFu
ZE1hcmdpbihjb25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKIHsKICAgICBhdXRvJiBsYXlvdXRT
dGF0ZSA9IHRoaXMtPmxheW91dFN0YXRlKCk7CisgICAgYXV0byBjb250YWluaW5nQmxvY2tXaWR0
aCA9IGxheW91dFN0YXRlLmRpc3BsYXlCb3hGb3JMYXlvdXRCb3goKmxheW91dEJveC5jb250YWlu
aW5nQmxvY2soKSkuY29udGVudEJveFdpZHRoKCk7CiAKICAgICBXaWR0aEFuZE1hcmdpbiB3aWR0
aEFuZE1hcmdpbjsKKyAgICBhdXRvIHVzZWRWYWx1ZXMgPSBVc2VkSG9yaXpvbnRhbFZhbHVlcyB7
IGNvbnRhaW5pbmdCbG9ja1dpZHRoLCB7IH0sIHsgfSB9OwogICAgIGlmIChsYXlvdXRCb3guaXNG
bG9hdGluZ1Bvc2l0aW9uZWQoKSkKLSAgICAgICAgd2lkdGhBbmRNYXJnaW4gPSBHZW9tZXRyeTo6
ZmxvYXRpbmdXaWR0aEFuZE1hcmdpbihsYXlvdXRTdGF0ZSwgbGF5b3V0Qm94LCB7IH0pOworICAg
ICAgICB3aWR0aEFuZE1hcmdpbiA9IEdlb21ldHJ5OjpmbG9hdGluZ1dpZHRoQW5kTWFyZ2luKGxh
eW91dFN0YXRlLCBsYXlvdXRCb3gsIHVzZWRWYWx1ZXMpOwogICAgIGVsc2UgaWYgKGxheW91dEJv
eC5pc0lubGluZUJsb2NrQm94KCkpCi0gICAgICAgIHdpZHRoQW5kTWFyZ2luID0gR2VvbWV0cnk6
OmlubGluZUJsb2NrV2lkdGhBbmRNYXJnaW4obGF5b3V0U3RhdGUsIGxheW91dEJveCk7CisgICAg
ICAgIHdpZHRoQW5kTWFyZ2luID0gR2VvbWV0cnk6OmlubGluZUJsb2NrV2lkdGhBbmRNYXJnaW4o
bGF5b3V0U3RhdGUsIGxheW91dEJveCwgdXNlZFZhbHVlcyk7CiAgICAgZWxzZSBpZiAobGF5b3V0
Qm94LnJlcGxhY2VkKCkpCi0gICAgICAgIHdpZHRoQW5kTWFyZ2luID0gR2VvbWV0cnk6OmlubGlu
ZVJlcGxhY2VkV2lkdGhBbmRNYXJnaW4obGF5b3V0U3RhdGUsIGxheW91dEJveCwgeyB9KTsKKyAg
ICAgICAgd2lkdGhBbmRNYXJnaW4gPSBHZW9tZXRyeTo6aW5saW5lUmVwbGFjZWRXaWR0aEFuZE1h
cmdpbihsYXlvdXRTdGF0ZSwgbGF5b3V0Qm94LCB1c2VkVmFsdWVzKTsKICAgICBlbHNlCiAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNl
L1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQu
aAppbmRleCBkNGUxMGMyNjkxZjE2NmZlZmY2MThjOTMzZmQyY2QzMjVkZGYxNzUzLi4xZGY1ODYw
MmZlMmZjNGZkNTA2M2E1ZDUxNDNjMTljYWQ0ZWFhYjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRp
bmdDb250ZXh0LmgKQEAgLTgyLDcgKzgyLDcgQEAgcHJpdmF0ZToKICAgICBjbGFzcyBHZW9tZXRy
eSA6IHB1YmxpYyBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnkgewogICAgIHB1YmxpYzoKICAg
ICAgICAgc3RhdGljIEhlaWdodEFuZE1hcmdpbiBpbmxpbmVCbG9ja0hlaWdodEFuZE1hcmdpbihj
b25zdCBMYXlvdXRTdGF0ZSYsIGNvbnN0IEJveCYpOwotICAgICAgICBzdGF0aWMgV2lkdGhBbmRN
YXJnaW4gaW5saW5lQmxvY2tXaWR0aEFuZE1hcmdpbihMYXlvdXRTdGF0ZSYsIGNvbnN0IEJveCYp
OworICAgICAgICBzdGF0aWMgV2lkdGhBbmRNYXJnaW4gaW5saW5lQmxvY2tXaWR0aEFuZE1hcmdp
bihMYXlvdXRTdGF0ZSYsIGNvbnN0IEJveCYsIFVzZWRIb3Jpem9udGFsVmFsdWVzKTsKICAgICB9
OwogCiAgICAgdm9pZCBsYXlvdXRGb3JtYXR0aW5nQ29udGV4dFJvb3QoY29uc3QgQm94JikgY29u
c3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9J
bmxpbmVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCmlu
ZGV4IDc1N2E5MjFmMjA0NjMxMGI2MjU5MDRmMWIwZGU5M2UzNDJlNTc1YzQuLmU3Nzc4NjRlYzky
YzQ2NGEyZGY3ZmIyNWFjOGRmZDU3YmViZTQzZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZv
cm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCkBAIC0zOCw3ICszOCw3IEBACiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBuYW1lc3BhY2UgTGF5b3V0IHsKIAotV2lkdGhBbmRNYXJnaW4gSW5saW5lRm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjppbmxpbmVCbG9ja1dpZHRoQW5kTWFyZ2luKExheW91
dFN0YXRlJiBsYXlvdXRTdGF0ZSwgY29uc3QgQm94JiBmb3JtYXR0aW5nQ29udGV4dFJvb3QpCitX
aWR0aEFuZE1hcmdpbiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmlubGluZUJs
b2NrV2lkdGhBbmRNYXJnaW4oTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlLCBjb25zdCBCb3gmIGZv
cm1hdHRpbmdDb250ZXh0Um9vdCwgVXNlZEhvcml6b250YWxWYWx1ZXMgdXNlZFZhbHVlcykKIHsK
ICAgICBBU1NFUlQoZm9ybWF0dGluZ0NvbnRleHRSb290LmlzSW5GbG93KCkpOwogCkBAIC00Niwy
MSArNDYsMTkgQEAgV2lkdGhBbmRNYXJnaW4gSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21l
dHJ5OjppbmxpbmVCbG9ja1dpZHRoQW5kTWFyZ2luKExheW8KIAogICAgIC8vIEV4YWN0bHkgYXMg
aW5saW5lIHJlcGxhY2VkIGVsZW1lbnRzLgogICAgIGlmIChmb3JtYXR0aW5nQ29udGV4dFJvb3Qu
cmVwbGFjZWQoKSkKLSAgICAgICAgcmV0dXJuIGlubGluZVJlcGxhY2VkV2lkdGhBbmRNYXJnaW4o
bGF5b3V0U3RhdGUsIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgeyB9KTsKKyAgICAgICAgcmV0dXJu
IGlubGluZVJlcGxhY2VkV2lkdGhBbmRNYXJnaW4obGF5b3V0U3RhdGUsIGZvcm1hdHRpbmdDb250
ZXh0Um9vdCwgdXNlZFZhbHVlcyk7CiAKICAgICAvLyAxMC4zLjkgJ0lubGluZS1ibG9jaycsIG5v
bi1yZXBsYWNlZCBlbGVtZW50cyBpbiBub3JtYWwgZmxvdwogCiAgICAgLy8gSWYgJ3dpZHRoJyBp
cyAnYXV0bycsIHRoZSB1c2VkIHZhbHVlIGlzIHRoZSBzaHJpbmstdG8tZml0IHdpZHRoIGFzIGZv
ciBmbG9hdGluZyBlbGVtZW50cy4KICAgICAvLyBBIGNvbXB1dGVkIHZhbHVlIG9mICdhdXRvJyBm
b3IgJ21hcmdpbi1sZWZ0JyBvciAnbWFyZ2luLXJpZ2h0JyBiZWNvbWVzIGEgdXNlZCB2YWx1ZSBv
ZiAnMCcuCi0gICAgYXV0byYgY29udGFpbmluZ0Jsb2NrID0gKmZvcm1hdHRpbmdDb250ZXh0Um9v
dC5jb250YWluaW5nQmxvY2soKTsKLSAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja1dpZHRoID0gbGF5
b3V0U3RhdGUuZGlzcGxheUJveEZvckxheW91dEJveChjb250YWluaW5nQmxvY2spLmNvbnRlbnRC
b3hXaWR0aCgpOwogICAgIC8vICMxCi0gICAgYXV0byB3aWR0aCA9IGNvbXB1dGVkVmFsdWVJZk5v
dEF1dG8oZm9ybWF0dGluZ0NvbnRleHRSb290LnN0eWxlKCkubG9naWNhbFdpZHRoKCksIGNvbnRh
aW5pbmdCbG9ja1dpZHRoKTsKKyAgICBhdXRvIHdpZHRoID0gY29tcHV0ZWRWYWx1ZUlmTm90QXV0
byhmb3JtYXR0aW5nQ29udGV4dFJvb3Quc3R5bGUoKS5sb2dpY2FsV2lkdGgoKSwgdXNlZFZhbHVl
cy5jb250YWluaW5nQmxvY2tXaWR0aCk7CiAgICAgaWYgKCF3aWR0aCkKLSAgICAgICAgd2lkdGgg
PSBzaHJpbmtUb0ZpdFdpZHRoKGxheW91dFN0YXRlLCBmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwor
ICAgICAgICB3aWR0aCA9IHNocmlua1RvRml0V2lkdGgobGF5b3V0U3RhdGUsIGZvcm1hdHRpbmdD
b250ZXh0Um9vdCwgdXNlZFZhbHVlcyk7CiAKICAgICAvLyAjMgotICAgIGF1dG8gY29tcHV0ZWRI
b3Jpem9udGFsTWFyZ2luID0gR2VvbWV0cnk6OmNvbXB1dGVkSG9yaXpvbnRhbE1hcmdpbihsYXlv
dXRTdGF0ZSwgZm9ybWF0dGluZ0NvbnRleHRSb290KTsKKyAgICBhdXRvIGNvbXB1dGVkSG9yaXpv
bnRhbE1hcmdpbiA9IEdlb21ldHJ5Ojpjb21wdXRlZEhvcml6b250YWxNYXJnaW4oZm9ybWF0dGlu
Z0NvbnRleHRSb290LCB1c2VkVmFsdWVzKTsKIAogICAgIHJldHVybiBXaWR0aEFuZE1hcmdpbiB7
ICp3aWR0aCwgeyBjb21wdXRlZEhvcml6b250YWxNYXJnaW4uc3RhcnQudmFsdWVPcigwX2x1KSwg
Y29tcHV0ZWRIb3Jpem9udGFsTWFyZ2luLmVuZC52YWx1ZU9yKDBfbHUpIH0sIGNvbXB1dGVkSG9y
aXpvbnRhbE1hcmdpbiB9OwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>