<?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>186172</bug_id>
          
          <creation_ts>2018-05-31 18:53:27 -0700</creation_ts>
          <short_desc>[LFC] Push FormattingContext::computeWidth/computeHeight logic from the base to the subclasses.</short_desc>
          <delta_ts>2018-06-01 07:08:36 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <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>1429101</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-05-31 18:53:27 -0700</bug_when>
    <thetext>It just adds extra virtual functions for probably no good reason.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429103</commentid>
    <comment_count>1</comment_count>
      <attachid>341723</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-05-31 18:59:11 -0700</bug_when>
    <thetext>Created attachment 341723
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429213</commentid>
    <comment_count>2</comment_count>
      <attachid>341723</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-01 07:07:30 -0700</bug_when>
    <thetext>Comment on attachment 341723
Patch

Clearing flags on attachment: 341723

Committed r232393: &lt;https://trac.webkit.org/changeset/232393&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429214</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-06-01 07:07:31 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1429215</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-06-01 07:08:36 -0700</bug_when>
    <thetext>&lt;rdar://problem/40720324&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341723</attachid>
            <date>2018-05-31 18:59:11 -0700</date>
            <delta_ts>2018-06-01 07:07:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-186172-20180531185910.patch</filename>
            <type>text/plain</type>
            <size>19900</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMyMzc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2M4ZmM3YmVmNmNjYzZh
NzJmMzIwMmQ5OTBjM2Y2NjQxZWZmNGM4Mi4uOTNkNzdlMDg2MjQ2YmI5YTE2ZTFlNDNjMzg5NTQ3
ZWYzYzAwMzM2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDE4LTA1LTMxICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ10gUHVzaCBGb3JtYXR0
aW5nQ29udGV4dDo6Y29tcHV0ZVdpZHRoL2NvbXB1dGVIZWlnaHQgbG9naWMgZnJvbSB0aGUgYmFz
ZSB0byB0aGUgc3ViY2xhc3Nlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4NjE3MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlV2lkdGgvY29tcHV0ZUhlaWdo
dCB2aXJ0dWFsIGZ1bmN0aW9ucyBoYXZlIHZlcnkgbGl0dGxlIGJlbmVmaXQgYW5kIGluIHRoZSBs
b25nIHJ1bgorICAgICAgICBpdCdzIGJldHRlciBpZiB3ZSBrZWVwIHRoZSBudW1iZXIgb2Ygdmly
dHVhbCBmdW5jdGlvbnMgdG8gdGhlIG1pbmltdW0gbmVjZXNzYXJ5LgorCisgICAgICAgICogbGF5
b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9y
bWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVGbG9hdGluZ1dpZHRoIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVTdGF0aWNQb3NpdGlvbiBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250
ZXh0Ojpjb21wdXRlSW5GbG93UG9zaXRpb25lZFBvc2l0aW9uIGNvbnN0KTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0aCBj
b25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250
ZXh0Ojpjb21wdXRlSGVpZ2h0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6Okxh
eW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVNYXJnaW4gY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAqIGxheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oOgorICAgICAgICAqIGxheW91dC9G
b3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
Rm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dSZXBsYWNlZEhlaWdodCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0
T2ZGbG93UmVwbGFjZWRXaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRp
bmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdSZXBsYWNlZEhlaWdodCk6CisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdSZXBs
YWNlZFdpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6Rm9ybWF0dGluZ0NvbnRleHQ6
Okdlb21ldHJ5OjppbmxpbmVSZXBsYWNlZEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlv
dXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5saW5lUmVwbGFjZWRXaWR0aCk6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6cmVw
bGFjZWRIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0
aW5nQ29udGV4dDo6R2VvbWV0cnk6OnJlcGxhY2VkV2lkdGgpOiBEZWxldGVkLgorICAgICAgICAq
IGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVXaWR0
aCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQ6OmNvbXB1dGVIZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9j
a0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSW5GbG93SGVpZ2h0IGNvbnN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUluRmxvd1dp
ZHRoIGNvbnN0KToKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0
dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKiBsYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVG
b3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGluZUZv
cm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlU3RhdGljUG9zaXRpb24gY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUluRmxvd1Bv
c2l0aW9uZWRQb3NpdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OklubGlu
ZUZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSW5GbG93V2lkdGggY29uc3QpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0
ZUluRmxvd0hlaWdodCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2lubGluZWZv
cm1hdHRpbmcvSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaDoKKwogMjAxOC0wNS0zMSAgTWVnYW4g
R2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzZXR0aW5n
IHRvIGFsbG93IG92ZXJyaWRlIHNjcmVlbiBzaXplIHRvIGJlIGRpc2FibGVkLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5jcHAKaW5kZXggZTIzNWEzM2YxYmNmNDg4
NzViZDY0MmEwY2JjMzBhY2FmZWE3NjkxNy4uYmE1NzcyMDNlZGNkNmVlNGIzNGJhYTVjNzBmZWI4
NTE5YzgzMDY3NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdD
b250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQu
Y3BwCkBAIC00OSwxNCArNDksNiBAQCBGb3JtYXR0aW5nQ29udGV4dDo6fkZvcm1hdHRpbmdDb250
ZXh0KCkKIHsKIH0KIAotdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVN0YXRpY1Bvc2l0
aW9uKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25zdAotewot
fQotCi12b2lkIEZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSW5GbG93UG9zaXRpb25lZFBvc2l0
aW9uKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25zdAotewot
fQotCiB2b2lkIEZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlT3V0T2ZGbG93UG9zaXRpb24oTGF5
b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gsIERpc3BsYXk6
OkJveCYgZGlzcGxheUJveCkgY29uc3QKIHsKICAgICBMYXlvdXRQb2ludCBjb21wdXRlZFRvcExl
ZnQ7CkBAIC02OSwyNCArNjEsNiBAQCB2b2lkIEZvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlT3V0
T2ZGbG93UG9zaXRpb24oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgYwogICAgIGRpc3Bs
YXlCb3guc2V0VG9wTGVmdChjb21wdXRlZFRvcExlZnQpOwogfQogCi12b2lkIEZvcm1hdHRpbmdD
b250ZXh0Ojpjb21wdXRlV2lkdGgoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3Qg
Qm94JiBsYXlvdXRCb3gsIERpc3BsYXk6OkJveCYgZGlzcGxheUJveCkgY29uc3QKLXsKLSAgICBp
ZiAobGF5b3V0Qm94LmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKQotICAgICAgICByZXR1cm4gY29t
cHV0ZU91dE9mRmxvd1dpZHRoKGxheW91dENvbnRleHQsIGxheW91dEJveCwgZGlzcGxheUJveCk7
Ci0gICAgaWYgKGxheW91dEJveC5pc0Zsb2F0aW5nUG9zaXRpb25lZCgpKQotICAgICAgICByZXR1
cm4gY29tcHV0ZUZsb2F0aW5nV2lkdGgobGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94LCBkaXNwbGF5
Qm94KTsKLSAgICByZXR1cm4gY29tcHV0ZUluRmxvd1dpZHRoKGxheW91dENvbnRleHQsIGxheW91
dEJveCwgZGlzcGxheUJveCk7Ci19Ci0KLXZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVI
ZWlnaHQoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gs
IERpc3BsYXk6OkJveCYgZGlzcGxheUJveCkgY29uc3QKLXsKLSAgICBpZiAobGF5b3V0Qm94Lmlz
T3V0T2ZGbG93UG9zaXRpb25lZCgpKQotICAgICAgICByZXR1cm4gY29tcHV0ZU91dE9mRmxvd0hl
aWdodChsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIGRpc3BsYXlCb3gpOwotICAgIGlmIChsYXlv
dXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkKLSAgICAgICAgcmV0dXJuIGNvbXB1dGVGbG9h
dGluZ0hlaWdodChsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gsIGRpc3BsYXlCb3gpOwotICAgIHJl
dHVybiBjb21wdXRlSW5GbG93SGVpZ2h0KGxheW91dENvbnRleHQsIGxheW91dEJveCwgZGlzcGxh
eUJveCk7Ci19Ci0KIHZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVPdXRPZkZsb3dXaWR0
aChMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgRGlz
cGxheTo6Qm94JiBkaXNwbGF5Qm94KSBjb25zdAogewogICAgIExheW91dFVuaXQgY29tcHV0ZWRX
aWR0aDsKQEAgLTk5LDE4ICs3Myw2IEBAIHZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVP
dXRPZkZsb3dXaWR0aChMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zCiAgICAgZGlz
cGxheUJveC5zZXRXaWR0aChjb21wdXRlZFdpZHRoKTsKIH0KIAotdm9pZCBGb3JtYXR0aW5nQ29u
dGV4dDo6Y29tcHV0ZUZsb2F0aW5nV2lkdGgoTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwg
Y29uc3QgQm94JiBsYXlvdXRCb3gsIERpc3BsYXk6OkJveCYgZGlzcGxheUJveCkgY29uc3QKLXsK
LSAgICBMYXlvdXRVbml0IGNvbXB1dGVkV2lkdGg7Ci0KLSAgICBpZiAobGF5b3V0Qm94LnJlcGxh
Y2VkKCkpCi0gICAgICAgIGNvbXB1dGVkV2lkdGggPSBHZW9tZXRyeTo6ZmxvYXRpbmdSZXBsYWNl
ZFdpZHRoKGxheW91dENvbnRleHQsIGxheW91dEJveCk7Ci0gICAgZWxzZQotICAgICAgICBjb21w
dXRlZFdpZHRoID0gR2VvbWV0cnk6OmZsb2F0aW5nTm9uUmVwbGFjZWRXaWR0aChsYXlvdXRDb250
ZXh0LCBsYXlvdXRCb3gpOwotCi0gICAgZGlzcGxheUJveC5zZXRXaWR0aChjb21wdXRlZFdpZHRo
KTsKLX0KLQogdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZU91dE9mRmxvd0hlaWdodChM
YXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgRGlzcGxh
eTo6Qm94JiBkaXNwbGF5Qm94KSBjb25zdAogewogICAgIExheW91dFVuaXQgY29tcHV0ZWRIZWln
aHQ7CkBAIC0xMzUsOSArOTcsMTYgQEAgdm9pZCBGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUZs
b2F0aW5nSGVpZ2h0KExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnMKICAgICBkaXNw
bGF5Qm94LnNldEhlaWdodChjb21wdXRlZEhlaWdodCk7CiB9CiAKLXZvaWQgRm9ybWF0dGluZ0Nv
bnRleHQ6OmNvbXB1dGVNYXJnaW4oTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIERpc3BsYXk6
OkJveCYgZGlzcGxheUJveCkgY29uc3QKK3ZvaWQgRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVG
bG9hdGluZ1dpZHRoKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5
b3V0Qm94LCBEaXNwbGF5OjpCb3gmIGRpc3BsYXlCb3gpIGNvbnN0CiB7Ci0gICAgZGlzcGxheUJv
eC5zZXRNYXJnaW4oeyAwLCAwLCAwLCAwIH0pOworICAgIExheW91dFVuaXQgY29tcHV0ZWRXaWR0
aDsKKworICAgIGlmIChsYXlvdXRCb3gucmVwbGFjZWQoKSkKKyAgICAgICAgY29tcHV0ZWRXaWR0
aCA9IEdlb21ldHJ5OjpmbG9hdGluZ1JlcGxhY2VkV2lkdGgobGF5b3V0Q29udGV4dCwgbGF5b3V0
Qm94KTsKKyAgICBlbHNlCisgICAgICAgIGNvbXB1dGVkV2lkdGggPSBHZW9tZXRyeTo6ZmxvYXRp
bmdOb25SZXBsYWNlZFdpZHRoKGxheW91dENvbnRleHQsIGxheW91dEJveCk7CisKKyAgICBkaXNw
bGF5Qm94LnNldFdpZHRoKGNvbXB1dGVkV2lkdGgpOwogfQogCiB2b2lkIEZvcm1hdHRpbmdDb250
ZXh0Ojpjb21wdXRlQm9yZGVyQW5kUGFkZGluZyhMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0
LCBjb25zdCBCb3gmIGxheW91dEJveCwgRGlzcGxheTo6Qm94JiBkaXNwbGF5Qm94KSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0LmggYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCAxNDMyOTJiNGJi
MjNiM2Q4OTI4MDY1ZjgwOWE3ODZmNmVkMTA1M2E4Li5mNThiOWFmMDg3Y2ZjYmZhNmIzZGU3NjNi
ZTE0OTgzNzg4ODFhMWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0
dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRl
eHQuaApAQCAtNjMsMjIgKzYzLDEyIEBAIHByb3RlY3RlZDoKIAogICAgIGNvbnN0IEJveCYgcm9v
dCgpIGNvbnN0IHsgcmV0dXJuICptX3Jvb3Q7IH0KIAotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRl
U3RhdGljUG9zaXRpb24oTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIERpc3BsYXk6OkJveCYp
IGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSW5GbG93UG9zaXRpb25lZFBvc2l0aW9u
KExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25zdDsKLSAgICB2
aXJ0dWFsIHZvaWQgY29tcHV0ZU91dE9mRmxvd1Bvc2l0aW9uKExheW91dENvbnRleHQmLCBjb25z
dCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25zdDsKKyAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVN0
YXRpY1Bvc2l0aW9uKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBj
b25zdCA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVJbkZsb3dQb3NpdGlvbmVkUG9zaXRp
b24oTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIERpc3BsYXk6OkJveCYpIGNvbnN0ID0gMDsK
IAotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlV2lkdGgoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJv
eCYsIERpc3BsYXk6OkJveCYpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlSGVpZ2h0
KExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25zdDsKKyAgICB2
b2lkIGNvbXB1dGVGbG9hdGluZ0hlaWdodChMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JiwgRGlz
cGxheTo6Qm94JikgY29uc3Q7CisgICAgdm9pZCBjb21wdXRlRmxvYXRpbmdXaWR0aChMYXlvdXRD
b250ZXh0JiwgY29uc3QgQm94JiwgRGlzcGxheTo6Qm94JikgY29uc3Q7CiAKLSAgICB2aXJ0dWFs
IHZvaWQgY29tcHV0ZU91dE9mRmxvd1dpZHRoKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBE
aXNwbGF5OjpCb3gmKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0aW5nV2lk
dGgoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIERpc3BsYXk6OkJveCYpIGNvbnN0OwotICAg
IHZpcnR1YWwgdm9pZCBjb21wdXRlSW5GbG93V2lkdGgoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJv
eCYsIERpc3BsYXk6OkJveCYpIGNvbnN0ID0gMDsKLQotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRl
T3V0T2ZGbG93SGVpZ2h0KExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gm
KSBjb25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUZsb2F0aW5nSGVpZ2h0KExheW91dENv
bnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25zdDsKLSAgICB2aXJ0dWFsIHZv
aWQgY29tcHV0ZUluRmxvd0hlaWdodChMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JiwgRGlzcGxh
eTo6Qm94JikgY29uc3QgPSAwOwotCi0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVNYXJnaW4oTGF5
b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIERpc3BsYXk6OkJveCYpIGNvbnN0OwogICAgIHZvaWQg
Y29tcHV0ZUJvcmRlckFuZFBhZGRpbmcoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIERpc3Bs
YXk6OkJveCYpIGNvbnN0OwogCiAgICAgdm9pZCBwbGFjZUluRmxvd1Bvc2l0aW9uZWRDaGlsZHJl
bihMYXlvdXRDb250ZXh0JiwgY29uc3QgQ29udGFpbmVyJikgY29uc3Q7CkBAIC0xMDYsMTQgKzk2
LDE4IEBAIHByb3RlY3RlZDoKICAgICAgICAgc3RhdGljIExheW91dFBvaW50IG91dE9mRmxvd05v
blJlcGxhY2VkUG9zaXRpb24oTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYpOwogICAgICAgICBz
dGF0aWMgTGF5b3V0UG9pbnQgb3V0T2ZGbG93UmVwbGFjZWRQb3NpdGlvbihMYXlvdXRDb250ZXh0
JiwgY29uc3QgQm94Jik7CiAKLSAgICAgICAgc3RhdGljIExheW91dFVuaXQgcmVwbGFjZWRIZWln
aHQoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYpOwotICAgICAgICBzdGF0aWMgTGF5b3V0VW5p
dCByZXBsYWNlZFdpZHRoKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmKTsKKyAgICAgICAgc3Rh
dGljIExheW91dFVuaXQgaW5saW5lUmVwbGFjZWRIZWlnaHQoTGF5b3V0Q29udGV4dCYsIGNvbnN0
IEJveCYpOworICAgICAgICBzdGF0aWMgTGF5b3V0VW5pdCBpbmxpbmVSZXBsYWNlZFdpZHRoKExh
eW91dENvbnRleHQmLCBjb25zdCBCb3gmKTsKIAogICAgICAgICBzdGF0aWMgRGlzcGxheTo6Qm94
OjpFZGdlcyBjb21wdXRlZEJvcmRlcihMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7CiAgICAg
ICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPERpc3BsYXk6OkJveDo6RWRnZXM+IGNvbXB1dGVkUGFk
ZGluZyhMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94Jik7CiAgICAgfTsKIAogcHJpdmF0ZToKKyAg
ICB2b2lkIGNvbXB1dGVPdXRPZkZsb3dQb3NpdGlvbihMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94
JiwgRGlzcGxheTo6Qm94JikgY29uc3Q7CisgICAgdm9pZCBjb21wdXRlT3V0T2ZGbG93SGVpZ2h0
KExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25zdDsKKyAgICB2
b2lkIGNvbXB1dGVPdXRPZkZsb3dXaWR0aChMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JiwgRGlz
cGxheTo6Qm94JikgY29uc3Q7CisKICAgICBXZWFrUHRyPEJveD4gbV9yb290OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L0Zvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3Bw
CmluZGV4IDc4OWZmMWE5MjYxMDQxNDU5NWM0MWY1M2IxNDUzNWE0NjhmZjUzYmEuLjRhYjk3ZTM5
ZmEzYmMzOTVkNGU2ZDFmNGQzODU5NGE2NDUzOGI3NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9sYXlvdXQvRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKQEAgLTE5Miw3ICsxOTIs
NyBAQCBMYXlvdXRVbml0IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6b3V0T2ZGbG93UmVw
bGFjZWRIZWlnaHQoTGF5b3V0Q29udGV4dCYgbAogICAgIC8vIDEwLjYuNSBBYnNvbHV0ZWx5IHBv
c2l0aW9uZWQsIHJlcGxhY2VkIGVsZW1lbnRzCiAgICAgLy8KICAgICAvLyBUaGUgdXNlZCB2YWx1
ZSBvZiAnaGVpZ2h0JyBpcyBkZXRlcm1pbmVkIGFzIGZvciBpbmxpbmUgcmVwbGFjZWQgZWxlbWVu
dHMuCi0gICAgcmV0dXJuIHJlcGxhY2VkSGVpZ2h0KGxheW91dENvbnRleHQsIGxheW91dEJveCk7
CisgICAgcmV0dXJuIGlubGluZVJlcGxhY2VkSGVpZ2h0KGxheW91dENvbnRleHQsIGxheW91dEJv
eCk7CiB9CiAKIExheW91dFVuaXQgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpvdXRPZkZs
b3dSZXBsYWNlZFdpZHRoKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYg
bGF5b3V0Qm94KQpAQCAtMjAxLDcgKzIwMSw3IEBAIExheW91dFVuaXQgRm9ybWF0dGluZ0NvbnRl
eHQ6Okdlb21ldHJ5OjpvdXRPZkZsb3dSZXBsYWNlZFdpZHRoKExheW91dENvbnRleHQmIGxhCiAg
ICAgLy8gMTAuMy44IEFic29sdXRlbHkgcG9zaXRpb25lZCwgcmVwbGFjZWQgZWxlbWVudHMKICAg
ICAvLwogICAgIC8vIFRoZSB1c2VkIHZhbHVlIG9mICd3aWR0aCcgaXMgZGV0ZXJtaW5lZCBhcyBm
b3IgaW5saW5lIHJlcGxhY2VkIGVsZW1lbnRzLgotICAgIHJldHVybiByZXBsYWNlZFdpZHRoKGxh
eW91dENvbnRleHQsIGxheW91dEJveCk7CisgICAgcmV0dXJuIGlubGluZVJlcGxhY2VkV2lkdGgo
bGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94KTsKIH0KIAogTGF5b3V0VW5pdCBGb3JtYXR0aW5nQ29u
dGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5nTm9uUmVwbGFjZWRIZWlnaHQoTGF5b3V0Q29udGV4dCYg
bGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlvdXRCb3gpCkBAIC0yMzEsNyArMjMxLDcgQEAg
TGF5b3V0VW5pdCBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OmZsb2F0aW5nUmVwbGFjZWRI
ZWlnaHQoTGF5b3V0Q29udGV4dCYgbGEKICAgICBBU1NFUlQobGF5b3V0Qm94LmlzRmxvYXRpbmdQ
b3NpdGlvbmVkKCkgJiYgbGF5b3V0Qm94LnJlcGxhY2VkKCkpOwogICAgIC8vIDEwLjYuMiBJbmxp
bmUgcmVwbGFjZWQgZWxlbWVudHMsIGJsb2NrLWxldmVsIHJlcGxhY2VkIGVsZW1lbnRzIGluIG5v
cm1hbCBmbG93LCAnaW5saW5lLWJsb2NrJwogICAgIC8vIHJlcGxhY2VkIGVsZW1lbnRzIGluIG5v
cm1hbCBmbG93IGFuZCBmbG9hdGluZyByZXBsYWNlZCBlbGVtZW50cwotICAgIHJldHVybiByZXBs
YWNlZEhlaWdodChsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpOworICAgIHJldHVybiBpbmxpbmVS
ZXBsYWNlZEhlaWdodChsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpOwogfQogCiBMYXlvdXRVbml0
IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6ZmxvYXRpbmdSZXBsYWNlZFdpZHRoKExheW91
dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94KQpAQCAtMjQwLDcg
KzI0MCw3IEBAIExheW91dFVuaXQgRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpmbG9hdGlu
Z1JlcGxhY2VkV2lkdGgoTGF5b3V0Q29udGV4dCYgbGF5CiAgICAgLy8gMTAuMy42IEZsb2F0aW5n
LCByZXBsYWNlZCBlbGVtZW50cwogICAgIC8vCiAgICAgLy8gVGhlIHVzZWQgdmFsdWUgb2YgJ3dp
ZHRoJyBpcyBkZXRlcm1pbmVkIGFzIGZvciBpbmxpbmUgcmVwbGFjZWQgZWxlbWVudHMuCi0gICAg
cmV0dXJuIHJlcGxhY2VkV2lkdGgobGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94KTsKKyAgICByZXR1
cm4gaW5saW5lUmVwbGFjZWRXaWR0aChsYXlvdXRDb250ZXh0LCBsYXlvdXRCb3gpOwogfQogCiBM
YXlvdXRQb2ludCBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6Om91dE9mRmxvd05vblJlcGxh
Y2VkUG9zaXRpb24oTGF5b3V0Q29udGV4dCYgbGF5b3V0Q29udGV4dCwgY29uc3QgQm94JiBsYXlv
dXRCb3gpCkBAIC00MjcsMTEgKzQyNyw5IEBAIExheW91dFBvaW50IEZvcm1hdHRpbmdDb250ZXh0
OjpHZW9tZXRyeTo6b3V0T2ZGbG93UmVwbGFjZWRQb3NpdGlvbihMYXlvdXRDb250ZXh0CiAgICAg
cmV0dXJuIHsgY29tcHV0ZWRMZWZ0VmFsdWUsIGNvbXB1dGVkVG9wVmFsdWUgfTsKIH0KIAotTGF5
b3V0VW5pdCBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnJlcGxhY2VkSGVpZ2h0KExheW91
dENvbnRleHQmLCBjb25zdCBCb3gmIGxheW91dEJveCkKK0xheW91dFVuaXQgRm9ybWF0dGluZ0Nv
bnRleHQ6Okdlb21ldHJ5OjppbmxpbmVSZXBsYWNlZEhlaWdodChMYXlvdXRDb250ZXh0JiwgY29u
c3QgQm94JiBsYXlvdXRCb3gpCiB7CiAgICAgQVNTRVJUKChsYXlvdXRCb3guaXNPdXRPZkZsb3dQ
b3NpdGlvbmVkKCkgfHwgbGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkgfHwgbGF5b3V0
Qm94LmlzSW5GbG93KCkpICYmIGxheW91dEJveC5yZXBsYWNlZCgpKTsKLSAgICAvLyAxMC42LjUg
QWJzb2x1dGVseSBwb3NpdGlvbmVkLCByZXBsYWNlZCBlbGVtZW50cy4gVGhlIHVzZWQgdmFsdWUg
b2YgJ2hlaWdodCcgaXMgZGV0ZXJtaW5lZCBhcyBmb3IgaW5saW5lIHJlcGxhY2VkIGVsZW1lbnRz
LgotCiAgICAgLy8gMTAuNi4yIElubGluZSByZXBsYWNlZCBlbGVtZW50cywgYmxvY2stbGV2ZWwg
cmVwbGFjZWQgZWxlbWVudHMgaW4gbm9ybWFsIGZsb3csICdpbmxpbmUtYmxvY2snIHJlcGxhY2Vk
IGVsZW1lbnRzIGluIG5vcm1hbCBmbG93IGFuZCBmbG9hdGluZyByZXBsYWNlZCBlbGVtZW50cwog
ICAgIC8vCiAgICAgLy8gMS4gSWYgJ2hlaWdodCcgYW5kICd3aWR0aCcgYm90aCBoYXZlIGNvbXB1
dGVkIHZhbHVlcyBvZiAnYXV0bycgYW5kIHRoZSBlbGVtZW50IGFsc28gaGFzIGFuIGludHJpbnNp
YyBoZWlnaHQsIHRoZW4gdGhhdCBpbnRyaW5zaWMgaGVpZ2h0IGlzIHRoZSB1c2VkIHZhbHVlIG9m
ICdoZWlnaHQnLgpAQCAtNDcxLDE0ICs0NjksOSBAQCBMYXlvdXRVbml0IEZvcm1hdHRpbmdDb250
ZXh0OjpHZW9tZXRyeTo6cmVwbGFjZWRIZWlnaHQoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveAog
ICAgIHJldHVybiBjb21wdXRlZEhlaWdodFZhbHVlOwogfQogCi1MYXlvdXRVbml0IEZvcm1hdHRp
bmdDb250ZXh0OjpHZW9tZXRyeTo6cmVwbGFjZWRXaWR0aChMYXlvdXRDb250ZXh0JiwgY29uc3Qg
Qm94JiBsYXlvdXRCb3gpCitMYXlvdXRVbml0IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6
aW5saW5lUmVwbGFjZWRXaWR0aChMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JiBsYXlvdXRCb3gp
CiB7CiAgICAgQVNTRVJUKChsYXlvdXRCb3guaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkgfHwgbGF5
b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkgfHwgbGF5b3V0Qm94LmlzSW5GbG93KCkpICYm
IGxheW91dEJveC5yZXBsYWNlZCgpKTsKLQotICAgIC8vIDEwLjMuNCBCbG9jay1sZXZlbCwgcmVw
bGFjZWQgZWxlbWVudHMgaW4gbm9ybWFsIGZsb3c6IFRoZSB1c2VkIHZhbHVlIG9mICd3aWR0aCcg
aXMgZGV0ZXJtaW5lZCBhcyBmb3IgaW5saW5lIHJlcGxhY2VkIGVsZW1lbnRzLgotICAgIC8vIDEw
LjMuNiBGbG9hdGluZywgcmVwbGFjZWQgZWxlbWVudHM6IFRoZSB1c2VkIHZhbHVlIG9mICd3aWR0
aCcgaXMgZGV0ZXJtaW5lZCBhcyBmb3IgaW5saW5lIHJlcGxhY2VkIGVsZW1lbnRzLgotICAgIC8v
IDEwLjMuOCBBYnNvbHV0ZWx5IHBvc2l0aW9uZWQsIHJlcGxhY2VkIGVsZW1lbnRzOiBUaGUgdXNl
ZCB2YWx1ZSBvZiAnd2lkdGgnIGlzIGRldGVybWluZWQgYXMgZm9yIGlubGluZSByZXBsYWNlZCBl
bGVtZW50cy4KLQogICAgIC8vIDEwLjMuMiBJbmxpbmUsIHJlcGxhY2VkIGVsZW1lbnRzCiAgICAg
Ly8KICAgICAvLyAxLiBJZiAnaGVpZ2h0JyBhbmQgJ3dpZHRoJyBib3RoIGhhdmUgY29tcHV0ZWQg
dmFsdWVzIG9mICdhdXRvJyBhbmQgdGhlIGVsZW1lbnQgYWxzbyBoYXMgYW4gaW50cmluc2ljIHdp
ZHRoLCB0aGVuIHRoYXQgaW50cmluc2ljIHdpZHRoIGlzIHRoZSB1c2VkIHZhbHVlIG9mICd3aWR0
aCcuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Js
b2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9y
bWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCA1YzA2YTY1NDA4YTBiMGI0
ZjMyNTYxMjVmMDU5OWVhYzBjMDMxZjFhLi5hYmM5MzU0ZGEwZmEyMzdhMzBjY2QwNDVjZmEyZGVi
OWE5NTRkMGNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0
aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91
dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKQEAgLTE0MSw2ICsx
NDEsMjggQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRlSW5GbG93UG9zaXRp
b25lZFBvc2l0aW9uKExheW91dENvbnRleHQmIGxheW8KICAgICBkaXNwbGF5Qm94LnNldFRvcExl
ZnQodG9wTGVmdCk7CiB9CiAKK3ZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZVdp
ZHRoKExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGNvbnN0IEJveCYgbGF5b3V0Qm94LCBE
aXNwbGF5OjpCb3gmIGRpc3BsYXlCb3gpIGNvbnN0Cit7CisgICAgaWYgKGxheW91dEJveC5pc0lu
RmxvdygpKQorICAgICAgICByZXR1cm4gY29tcHV0ZUluRmxvd1dpZHRoKGxheW91dENvbnRleHQs
IGxheW91dEJveCwgZGlzcGxheUJveCk7CisKKyAgICBpZiAobGF5b3V0Qm94LmlzRmxvYXRpbmdQ
b3NpdGlvbmVkKCkpCisgICAgICAgIHJldHVybiBjb21wdXRlRmxvYXRpbmdXaWR0aChsYXlvdXRD
b250ZXh0LCBsYXlvdXRCb3gsIGRpc3BsYXlCb3gpOworCisgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Cit9CisKK3ZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhlaWdodChMYXlv
dXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgRGlzcGxheTo6
Qm94JiBkaXNwbGF5Qm94KSBjb25zdAoreworICAgIGlmIChsYXlvdXRCb3guaXNJbkZsb3coKSkK
KyAgICAgICAgcmV0dXJuIGNvbXB1dGVJbkZsb3dIZWlnaHQobGF5b3V0Q29udGV4dCwgbGF5b3V0
Qm94LCBkaXNwbGF5Qm94KTsKKworICAgIGlmIChsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9u
ZWQoKSkKKyAgICAgICAgcmV0dXJuIGNvbXB1dGVGbG9hdGluZ0hlaWdodChsYXlvdXRDb250ZXh0
LCBsYXlvdXRCb3gsIGRpc3BsYXlCb3gpOworCisgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Cit9
CisKIHZvaWQgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUluRmxvd0hlaWdodChMYXlv
dXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjb25zdCBCb3gmIGxheW91dEJveCwgRGlzcGxheTo6
Qm94JiBkaXNwbGF5Qm94KSBjb25zdAogewogICAgIExheW91dFVuaXQgY29tcHV0ZWRIZWlnaHQ7
CkBAIC0xNDgsNyArMTcwLDcgQEAgdm9pZCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRl
SW5GbG93SGVpZ2h0KExheW91dENvbnRleHQmIGxheW91dENvbnRleHQsIGMKICAgICBpZiAobGF5
b3V0Qm94LnJlcGxhY2VkKCkpIHsKICAgICAgICAgLy8gMTAuNi4yIElubGluZSByZXBsYWNlZCBl
bGVtZW50cywgYmxvY2stbGV2ZWwgcmVwbGFjZWQgZWxlbWVudHMgaW4gbm9ybWFsIGZsb3csICdp
bmxpbmUtYmxvY2snCiAgICAgICAgIC8vIHJlcGxhY2VkIGVsZW1lbnRzIGluIG5vcm1hbCBmbG93
IGFuZCBmbG9hdGluZyByZXBsYWNlZCBlbGVtZW50cwotICAgICAgICBjb21wdXRlZEhlaWdodCA9
IEZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6cmVwbGFjZWRIZWlnaHQobGF5b3V0Q29udGV4
dCwgbGF5b3V0Qm94KTsKKyAgICAgICAgY29tcHV0ZWRIZWlnaHQgPSBGb3JtYXR0aW5nQ29udGV4
dDo6R2VvbWV0cnk6OmlubGluZVJlcGxhY2VkSGVpZ2h0KGxheW91dENvbnRleHQsIGxheW91dEJv
eCk7CiAgICAgfSBlbHNlCiAgICAgICAgIGNvbXB1dGVkSGVpZ2h0ID0gR2VvbWV0cnk6OmluRmxv
d05vblJlcGxhY2VkSGVpZ2h0KGxheW91dENvbnRleHQsIGxheW91dEJveCk7CiAKQEAgLTE2Miw3
ICsxODQsNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVJbkZsb3dXaWR0
aChMYXlvdXRDb250ZXh0JiBsYXlvdXRDb250ZXh0LCBjbwogICAgIGlmIChsYXlvdXRCb3gucmVw
bGFjZWQoKSkgewogICAgICAgICAvLyAxMC4zLjQgQmxvY2stbGV2ZWwsIHJlcGxhY2VkIGVsZW1l
bnRzIGluIG5vcm1hbCBmbG93CiAgICAgICAgIC8vIFRoZSB1c2VkIHZhbHVlIG9mICd3aWR0aCcg
aXMgZGV0ZXJtaW5lZCBhcyBmb3IgaW5saW5lIHJlcGxhY2VkIGVsZW1lbnRzCi0gICAgICAgIGNv
bXB1dGVkV2lkdGggPSBGb3JtYXR0aW5nQ29udGV4dDo6R2VvbWV0cnk6OnJlcGxhY2VkV2lkdGgo
bGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94KTsKKyAgICAgICAgY29tcHV0ZWRXaWR0aCA9IEZvcm1h
dHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6aW5saW5lUmVwbGFjZWRXaWR0aChsYXlvdXRDb250ZXh0
LCBsYXlvdXRCb3gpOwogICAgIH0gZWxzZQogICAgICAgICBjb21wdXRlZFdpZHRoID0gR2VvbWV0
cnk6OmluRmxvd05vblJlcGxhY2VkV2lkdGgobGF5b3V0Q29udGV4dCwgbGF5b3V0Qm94KTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zv
cm1hdHRpbmdDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5n
L0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaAppbmRleCA3MTExZDI2ZDA1Y2Q5NmVkYzdmYzEwZDQ3
ZjlmNWU4ZTg1NWQyYTA2Li42ZTg5NWYxOTE3NWY2MzQzZGIyMGQxMDM1NWUxOTIzNDAyNTdjMjdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtNTEsMTEgKzUxLDE0IEBAIHB1Ymxp
YzoKICAgICBSZWY8RmxvYXRpbmdTdGF0ZT4gY3JlYXRlT3JGaW5kRmxvYXRpbmdTdGF0ZShMYXlv
dXRDb250ZXh0JikgY29uc3Qgb3ZlcnJpZGU7CiAKIHByaXZhdGU6CisgICAgdm9pZCBjb21wdXRl
V2lkdGgoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIERpc3BsYXk6OkJveCYpIGNvbnN0Owor
ICAgIHZvaWQgY29tcHV0ZUhlaWdodChMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JiwgRGlzcGxh
eTo6Qm94JikgY29uc3Q7CisKICAgICB2b2lkIGNvbXB1dGVTdGF0aWNQb3NpdGlvbihMYXlvdXRD
b250ZXh0JiwgY29uc3QgQm94JiwgRGlzcGxheTo6Qm94JikgY29uc3Qgb3ZlcnJpZGU7CiAgICAg
dm9pZCBjb21wdXRlSW5GbG93UG9zaXRpb25lZFBvc2l0aW9uKExheW91dENvbnRleHQmLCBjb25z
dCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGNvbXB1dGVJ
bkZsb3dXaWR0aChMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JiwgRGlzcGxheTo6Qm94JikgY29u
c3Qgb3ZlcnJpZGU7Ci0gICAgdm9pZCBjb21wdXRlSW5GbG93SGVpZ2h0KExheW91dENvbnRleHQm
LCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25zdCBvdmVycmlkZTsKLSAgICB2b2lkIGNv
bXB1dGVNYXJnaW4oTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIERpc3BsYXk6OkJveCYpIGNv
bnN0IG92ZXJyaWRlOworICAgIHZvaWQgY29tcHV0ZUluRmxvd1dpZHRoKExheW91dENvbnRleHQm
LCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25zdDsKKyAgICB2b2lkIGNvbXB1dGVJbkZs
b3dIZWlnaHQoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIERpc3BsYXk6OkJveCYpIGNvbnN0
OworICAgIHZvaWQgY29tcHV0ZU1hcmdpbihMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JiwgRGlz
cGxheTo6Qm94JikgY29uc3Q7CiAKICAgICAvLyBUaGlzIGNsYXNzIGltcGxlbWVudHMgcG9zaXRp
b25pbmcgYW5kIHNpemluZyBmb3IgYm94ZXMgcGFydGljaXBhdGluZyBpbiBhIGJsb2NrIGZvcm1h
dHRpbmcgY29udGV4dC4KICAgICBjbGFzcyBHZW9tZXRyeSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0
aW5nQ29udGV4dC5jcHAKaW5kZXggYjdhYjIwMzIyZWM3NDg0YTQ0NmIzOGY4MDRiNjU2Zjk0MzY4
NGFmNi4uY2FhMDA0ZDE2MWFlNTc5NzkxMmEzYzAzNjVlNDUyMTYyMzllYzg0MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5saW5lRm9ybWF0dGlu
Z0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5n
L0lubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtNjYsMTEgKzY2LDExIEBAIFJlZjxGbG9h
dGluZ1N0YXRlPiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dDo6Y3JlYXRlT3JGaW5kRmxvYXRpbmdT
dGF0ZShMYXlvdXRDb250CiAgICAgcmV0dXJuIGZvcm1hdHRpbmdTdGF0ZS5mbG9hdGluZ1N0YXRl
KCk7CiB9CiAKLXZvaWQgSW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVJbkZsb3dXaWR0
aChMYXlvdXRDb250ZXh0JiwgY29uc3QgQm94JiwgRGlzcGxheTo6Qm94JikgY29uc3QKK3ZvaWQg
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVTdGF0aWNQb3NpdGlvbihMYXlvdXRDb250
ZXh0JiwgY29uc3QgQm94JiwgRGlzcGxheTo6Qm94JikgY29uc3QKIHsKIH0KIAotdm9pZCBJbmxp
bmVGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUluRmxvd0hlaWdodChMYXlvdXRDb250ZXh0Jiwg
Y29uc3QgQm94JiwgRGlzcGxheTo6Qm94JikgY29uc3QKK3ZvaWQgSW5saW5lRm9ybWF0dGluZ0Nv
bnRleHQ6OmNvbXB1dGVJbkZsb3dQb3NpdGlvbmVkUG9zaXRpb24oTGF5b3V0Q29udGV4dCYsIGNv
bnN0IEJveCYsIERpc3BsYXk6OkJveCYpIGNvbnN0CiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdDb250ZXh0
LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvaW5saW5lZm9ybWF0dGluZy9JbmxpbmVGb3JtYXR0
aW5nQ29udGV4dC5oCmluZGV4IDFmNWE4ZWNiMzdlMjIyOTY5MGI2OTZkMWY3NGEyOWYwZjYzYmMx
ZDIuLjEzNTYyNmY1NTZjZWRmMTA3YmUxNmY0ZmQ2MmM0MmY2OTA3NWRhNGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9pbmxpbmVmb3JtYXR0aW5nL0lubGluZUZvcm1hdHRpbmdD
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2lubGluZWZvcm1hdHRpbmcvSW5s
aW5lRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtNDgsOCArNDgsOCBAQCBwdWJsaWM6CiAgICAgUmVm
PEZsb2F0aW5nU3RhdGU+IGNyZWF0ZU9yRmluZEZsb2F0aW5nU3RhdGUoTGF5b3V0Q29udGV4dCYp
IGNvbnN0IG92ZXJyaWRlOwogCiBwcml2YXRlOgotICAgIHZvaWQgY29tcHV0ZUluRmxvd1dpZHRo
KExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25zdCBvdmVycmlk
ZTsKLSAgICB2b2lkIGNvbXB1dGVJbkZsb3dIZWlnaHQoTGF5b3V0Q29udGV4dCYsIGNvbnN0IEJv
eCYsIERpc3BsYXk6OkJveCYpIGNvbnN0IG92ZXJyaWRlOworICAgIHZvaWQgY29tcHV0ZVN0YXRp
Y1Bvc2l0aW9uKExheW91dENvbnRleHQmLCBjb25zdCBCb3gmLCBEaXNwbGF5OjpCb3gmKSBjb25z
dCBvdmVycmlkZTsKKyAgICB2b2lkIGNvbXB1dGVJbkZsb3dQb3NpdGlvbmVkUG9zaXRpb24oTGF5
b3V0Q29udGV4dCYsIGNvbnN0IEJveCYsIERpc3BsYXk6OkJveCYpIGNvbnN0IG92ZXJyaWRlOwog
CiB9OwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>