<?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>189035</bug_id>
          
          <creation_ts>2018-08-27 16:39:53 -0700</creation_ts>
          <short_desc>[LFC][Floating] Remove redundant FloatAvoider functions.</short_desc>
          <delta_ts>2018-08-28 08:03:57 -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>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>1454208</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-08-27 16:39:53 -0700</bug_when>
    <thetext>and move some code from FloatingContext to FloatAvoider</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454217</commentid>
    <comment_count>1</comment_count>
      <attachid>348239</attachid>
    <who name="alan">zalan</who>
    <bug_when>2018-08-27 16:46:02 -0700</bug_when>
    <thetext>Created attachment 348239
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454364</commentid>
    <comment_count>2</comment_count>
      <attachid>348239</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-08-28 07:26:28 -0700</bug_when>
    <thetext>Comment on attachment 348239
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=348239&amp;action=review

&gt; Source/WebCore/layout/floats/FloatAvoider.h:64
&gt; +    void resetHorizontalConstraint();

Some of these are singulars like here &quot;Constraint&quot;.

&gt; Source/WebCore/layout/floats/FloatingContext.cpp:71
&gt; +    FloatAvoider::HorizontalConstraints horizontalConstraints() const;

And some are plural. Is there some logic to this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454365</commentid>
    <comment_count>3</comment_count>
      <attachid>348239</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-08-28 07:29:11 -0700</bug_when>
    <thetext>Comment on attachment 348239
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=348239&amp;action=review

&gt; Source/WebCore/layout/floats/FloatingContext.cpp:228
&gt; +        floatAvoider.setHorizontalConstraints(floats.horizontalConstraints());
&gt; +        floatAvoider.setVerticalConstraint(floats.verticalPosition());

It looks strange that the second one is reading floats.verticalPosition instead of floats.verticalConstraint. But maybe it makes sense?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454370</commentid>
    <comment_count>4</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-08-28 08:01:44 -0700</bug_when>
    <thetext>Committed r235423: &lt;https://trac.webkit.org/changeset/235423&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454371</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-28 08:03:10 -0700</bug_when>
    <thetext>&lt;rdar://problem/43797393&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454372</commentid>
    <comment_count>6</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-08-28 08:03:26 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #2)
&gt; Comment on attachment 348239 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=348239&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/floats/FloatAvoider.h:64
&gt; &gt; +    void resetHorizontalConstraint();
&gt; 
&gt; Some of these are singulars like here &quot;Constraint&quot;.
&gt; 
&gt; &gt; Source/WebCore/layout/floats/FloatingContext.cpp:71
&gt; &gt; +    FloatAvoider::HorizontalConstraints horizontalConstraints() const;
&gt; 
&gt; And some are plural. Is there some logic to this?

Fixed. No logic, oversight.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454373</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-28 08:03:41 -0700</bug_when>
    <thetext>&lt;rdar://problem/43797406&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454374</commentid>
    <comment_count>8</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2018-08-28 08:03:45 -0700</bug_when>
    <thetext>(In reply to Antti Koivisto from comment #3)
&gt; Comment on attachment 348239 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=348239&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/layout/floats/FloatingContext.cpp:228
&gt; &gt; +        floatAvoider.setHorizontalConstraints(floats.horizontalConstraints());
&gt; &gt; +        floatAvoider.setVerticalConstraint(floats.verticalPosition());
&gt; 
&gt; It looks strange that the second one is reading floats.verticalPosition
&gt; instead of floats.verticalConstraint. But maybe it makes sense?
Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454375</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-28 08:03:57 -0700</bug_when>
    <thetext>&lt;rdar://problem/43797410&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348239</attachid>
            <date>2018-08-27 16:46:02 -0700</date>
            <delta_ts>2018-08-28 07:25:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189035-20180827164601.patch</filename>
            <type>text/plain</type>
            <size>13888</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1MzUyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGIwMzZlNGFiY2JmNjE3
M2E4YzE1MTZmOTE0MDA5YzhhOWM4ZDBhMS4uNzFhNjlmYWNiOGI0MTEzMTE3YWMwZmY2MGNkOTNi
NWYxYTEyMjU2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDE4LTA4LTI3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bRmxvYXRpbmddIFJl
bW92ZSByZWR1bmRhbnQgRmxvYXRBdm9pZGVyIGZ1bmN0aW9ucy4KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4OTAzNQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGFuZCBtb3ZlIHNvbWUgY29kZSBmcm9tIEZs
b2F0Q29udGV4dCB0byBGbG9hdEF2b2lkZXIuCisKKyAgICAgICAgKiBsYXlvdXQvZmxvYXRzL0Zs
b2F0QXZvaWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0QXZvaWRlcjo6
aW5pdGlhbGl6ZVBvc2l0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRBdm9p
ZGVyOjpyZWN0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRBdm9pZGVy
OjpzZXRWZXJ0aWNhbENvbnN0cmFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9h
dEF2b2lkZXI6OnNldEhvcml6b250YWxDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkZsb2F0QXZvaWRlcjo6cmVzZXRIb3Jpem9udGFsQ29uc3RyYWludCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0QXZvaWRlcjo6aW5pdGlhbFZlcnRpY2FsUG9zaXRpb24g
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdEF2b2lkZXI6OmluaXRpYWxI
b3Jpem9udGFsUG9zaXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9h
dEF2b2lkZXI6OnJlY3RJbkNvbnRhaW5pbmdCbG9jayBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpMYXlvdXQ6OkZsb2F0QXZvaWRlcjo6c2V0TGVmdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OkZsb2F0QXZvaWRlcjo6c2V0VG9wTGVmdCk6IERlbGV0ZWQuCisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0QXZvaWRlcjo6cmVzZXRWZXJ0aWNhbGx5KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRBdm9pZGVyOjpyZXNldEhvcml6b250
YWxseSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0QXZvaWRlcjo6
dG9wTGVmdEluQ29udGFpbmluZ0Jsb2NrIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlv
dXQvZmxvYXRzL0Zsb2F0QXZvaWRlci5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9h
dEF2b2lkZXI6OnRvcCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6
OkZsb2F0QXZvaWRlcjo6bGVmdCBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkZsb2F0QXZvaWRlcjo6bWFyZ2luVG9wIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OkxheW91dDo6RmxvYXRBdm9pZGVyOjptYXJnaW5MZWZ0IGNvbnN0KTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRBdm9pZGVyOjptYXJnaW5Cb3R0b20g
Y29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGbG9hdEF2b2lkZXI6
Om1hcmdpblJpZ2h0IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6
RmxvYXRBdm9pZGVyOjpyZWN0V2l0aE1hcmdpbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkZsb2F0QXZvaWRlcjo6c2V0VG9wKTogRGVsZXRlZC4KKyAgICAgICAg
KiBsYXlvdXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkZsb2F0aW5nQ29udGV4dDo6cG9zaXRpb25Gb3JGbG9hdCBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0aW5nQ29udGV4dDo6ZmxvYXRpbmdQb3NpdGlvbiBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkZsb2F0aW5nUGFpcjo6aG9yaXpvbnRhbENv
bnN0cmFpbnRzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6RmxvYXRpbmdQYWly
Ojpob3JpenRvbmFsUG9zaXRpb24gY29uc3QpOiBEZWxldGVkLgorCiAyMDE4LTA4LTI2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bRmxvYXRpbmddIEZs
b2F0Qm94IC0+IEZsb2F0QXZvaWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Zsb2F0cy9GbG9hdEF2b2lkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9G
bG9hdEF2b2lkZXIuY3BwCmluZGV4IDE2YjkzNzVjYzJlOTIzNjMxMzA1MDAxYWUxYjRmOTk5N2Rh
OGFjMjEuLmI4YjlmNWM1YzQxOWJmNDYxYTZmYWRmOGRlYmVjNmU0MTk4MTE1ZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRBdm9pZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0QXZvaWRlci5jcHAKQEAgLTQ5LDggKzQ5
LDcgQEAgRmxvYXRBdm9pZGVyOjpGbG9hdEF2b2lkZXIoY29uc3QgQm94JiBsYXlvdXRCb3gsIGNv
bnN0IEZsb2F0aW5nU3RhdGUmIGZsb2F0aW5nU3QKIAogdm9pZCBGbG9hdEF2b2lkZXI6OmluaXRp
YWxpemVQb3NpdGlvbigpCiB7Ci0gICAgcmVzZXRWZXJ0aWNhbGx5KCk7Ci0gICAgcmVzZXRIb3Jp
em9udGFsbHkoKTsKKyAgICBtX2Fic29sdXRlRGlzcGxheUJveC5zZXRUb3BMZWZ0KHsgaW5pdGlh
bEhvcml6b250YWxQb3NpdGlvbigpLCBpbml0aWFsVmVydGljYWxQb3NpdGlvbigpIH0pOwogfQog
CiBib29sIEZsb2F0QXZvaWRlcjo6aXNMZWZ0QWxpZ25lZCgpIGNvbnN0CkBAIC01OCwyOSArNTcs
NDUgQEAgYm9vbCBGbG9hdEF2b2lkZXI6OmlzTGVmdEFsaWduZWQoKSBjb25zdAogICAgIHJldHVy
biBtX2xheW91dEJveC0+aXNMZWZ0RmxvYXRpbmdQb3NpdGlvbmVkKCk7CiB9CiAKLXZvaWQgRmxv
YXRBdm9pZGVyOjpzZXRMZWZ0KFBvc2l0aW9uSW5Db250ZXh0Um9vdCBsZWZ0KQorRGlzcGxheTo6
Qm94OjpSZWN0IEZsb2F0QXZvaWRlcjo6cmVjdCgpIGNvbnN0CiB7CisgICAgcmV0dXJuIG1fYWJz
b2x1dGVEaXNwbGF5Qm94LnJlY3RXaXRoTWFyZ2luKCk7Cit9CisKK3ZvaWQgRmxvYXRBdm9pZGVy
OjpzZXRWZXJ0aWNhbENvbnN0cmFpbnQoUG9zaXRpb25JbkNvbnRleHRSb290IHZlcnRpY2FsUG9z
aXRpb24pCit7IAorICAgIG1fYWJzb2x1dGVEaXNwbGF5Qm94LnNldFRvcCh2ZXJ0aWNhbFBvc2l0
aW9uICsgbV9hYnNvbHV0ZURpc3BsYXlCb3gubWFyZ2luVG9wKCkpOworfQorCit2b2lkIEZsb2F0
QXZvaWRlcjo6c2V0SG9yaXpvbnRhbENvbnN0cmFpbnRzKEhvcml6b250YWxDb25zdHJhaW50cyBo
b3Jpem9udGFsQ29uc3RyYWludHMpCit7CisgICAgaWYgKChpc0xlZnRBbGlnbmVkKCkgJiYgIWhv
cml6b250YWxDb25zdHJhaW50cy5sZWZ0KSB8fCAoIWlzTGVmdEFsaWduZWQoKSAmJiAhaG9yaXpv
bnRhbENvbnN0cmFpbnRzLnJpZ2h0KSkgeworICAgICAgICByZXNldEhvcml6b250YWxDb25zdHJh
aW50KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBhdXRvIHBvc2l0aW9uQ2FuZGlk
YXRlID0gaXNMZWZ0QWxpZ25lZCgpID8gKmhvcml6b250YWxDb25zdHJhaW50cy5sZWZ0IDogKmhv
cml6b250YWxDb25zdHJhaW50cy5yaWdodCAtIHJlY3QoKS53aWR0aCgpOwogICAgIC8vIEhvcml6
b250YWwgcG9zaXRpb24gaXMgY29uc3RyYWluZWQgYnkgdGhlIGNvbnRhaW5pbmcgYmxvY2sncyBj
b250ZW50IGJveC4KICAgICAvLyBDb21wdXRlIHRoZSBob3Jpem9udGFsIHBvc2l0aW9uIGZvciB0
aGUgbmV3IGZsb2F0aW5nIGJ5IHRha2luZyBib3RoIHRoZSBjb250aW5pbmcgYmxvY2sgYW5kIHRo
ZSBjdXJyZW50IGxlZnQvcmlnaHQgZmxvYXRzIGludG8gYWNjb3VudC4KICAgICBhdXRvIGNvbnRh
aW5pbmdCbG9ja0NvbnRlbnRCb3hMZWZ0ID0gbV9jb250YWluaW5nQmxvY2tBYnNvbHV0ZURpc3Bs
YXlCb3gubGVmdCgpICsgbV9jb250YWluaW5nQmxvY2tBYnNvbHV0ZURpc3BsYXlCb3guY29udGVu
dEJveExlZnQoKTsKICAgICBhdXRvIGNvbnRhaW5pbmdCbG9ja0NvbnRlbnRCb3hSaWdodCA9IGNv
bnRhaW5pbmdCbG9ja0NvbnRlbnRCb3hMZWZ0ICsgbV9jb250YWluaW5nQmxvY2tBYnNvbHV0ZURp
c3BsYXlCb3guY29udGVudEJveFdpZHRoKCk7CiAKKyAgICBwb3NpdGlvbkNhbmRpZGF0ZSArPSBt
X2Fic29sdXRlRGlzcGxheUJveC5tYXJnaW5MZWZ0KCk7CiAgICAgLy8gQWxpZ24gaXQgd2l0aCB0
aGUgY29udGFpbmluZyBibG9jaydzIGxlZnQgZWRnZSBmaXJzdC4KLSAgICBsZWZ0ID0gc3RkOjpt
YXgoY29udGFpbmluZ0Jsb2NrQ29udGVudEJveExlZnQgKyBtYXJnaW5MZWZ0KCksIGxlZnQpOwor
ICAgIHBvc2l0aW9uQ2FuZGlkYXRlID0gc3RkOjptYXgoY29udGFpbmluZ0Jsb2NrQ29udGVudEJv
eExlZnQgKyBtX2Fic29sdXRlRGlzcGxheUJveC5tYXJnaW5MZWZ0KCksIHBvc2l0aW9uQ2FuZGlk
YXRlKTsKICAgICAvLyBNYWtlIHN1cmUgaXQgZG9lcyBub3Qgb3ZlcmZsb3cgdGhlIGNvbnRhaW5p
bmcgYmxvY2sgb24gdGhlIHJpZ2h0LgogICAgIGF1dG8gbWFyZ2luQm94U2l6ZSA9IG1fYWJzb2x1
dGVEaXNwbGF5Qm94Lm1hcmdpbkJveCgpLndpZHRoKCk7Ci0gICAgbGVmdCA9IHN0ZDo6bWluKGxl
ZnQsIGNvbnRhaW5pbmdCbG9ja0NvbnRlbnRCb3hSaWdodCAtIG1hcmdpbkJveFNpemUgKyBtYXJn
aW5MZWZ0KCkpOworICAgIHBvc2l0aW9uQ2FuZGlkYXRlID0gc3RkOjptaW4ocG9zaXRpb25DYW5k
aWRhdGUsIGNvbnRhaW5pbmdCbG9ja0NvbnRlbnRCb3hSaWdodCAtIG1hcmdpbkJveFNpemUgKyBt
X2Fic29sdXRlRGlzcGxheUJveC5tYXJnaW5MZWZ0KCkpOwogCi0gICAgbV9hYnNvbHV0ZURpc3Bs
YXlCb3guc2V0TGVmdChsZWZ0KTsKKyAgICBtX2Fic29sdXRlRGlzcGxheUJveC5zZXRMZWZ0KHBv
c2l0aW9uQ2FuZGlkYXRlKTsKIH0KIAotdm9pZCBGbG9hdEF2b2lkZXI6OnNldFRvcExlZnQoUG9p
bnRJbkNvbnRleHRSb290IHRvcExlZnQpCit2b2lkIEZsb2F0QXZvaWRlcjo6cmVzZXRIb3Jpem9u
dGFsQ29uc3RyYWludCgpCiB7Ci0gICAgc2V0VG9wKHRvcExlZnQueSk7Ci0gICAgc2V0TGVmdCh0
b3BMZWZ0LngpOworICAgIG1fYWJzb2x1dGVEaXNwbGF5Qm94LnNldExlZnQoaW5pdGlhbEhvcml6
b250YWxQb3NpdGlvbigpKTsKIH0KIAotdm9pZCBGbG9hdEF2b2lkZXI6OnJlc2V0VmVydGljYWxs
eSgpCitQb3NpdGlvbkluQ29udGV4dFJvb3QgRmxvYXRBdm9pZGVyOjppbml0aWFsVmVydGljYWxQ
b3NpdGlvbigpIGNvbnN0CiB7CiAgICAgLy8gSW5jb21pbmcgZmxvYXQgY2Fubm90IGJlIHBsYWNl
ZCBoaWdoZXIgdGhhbiBleGlzdGluZyBmbG9hdHMgKG1hcmdpbiBib3ggb2YgdGhlIGxhc3QgZmxv
YXQpLgogICAgIC8vIFRha2UgdGhlIHN0YXRpYyBwb3NpdGlvbiAod2hlcmUgdGhlIGJveCB3b3Vs
ZCBnbyBpZiBpdCB3YXNuJ3QgZmxvYXRpbmcpIGFuZCBhZGp1c3QgaXQgd2l0aCB0aGUgbGFzdCBm
bG9hdC4KQEAgLTg5LDEwICsxMDQsMTAgQEAgdm9pZCBGbG9hdEF2b2lkZXI6OnJlc2V0VmVydGlj
YWxseSgpCiAgICAgICAgIHRvcCA9IHN0ZDo6bWF4KHRvcCwgbGFzdEZsb2F0LT5yZWN0V2l0aE1h
cmdpbigpLnRvcCgpKTsKICAgICB0b3AgKz0gbV9hYnNvbHV0ZURpc3BsYXlCb3gubWFyZ2luVG9w
KCk7CiAKLSAgICBtX2Fic29sdXRlRGlzcGxheUJveC5zZXRUb3AodG9wKTsKKyAgICByZXR1cm4g
dG9wOwogfQogCi12b2lkIEZsb2F0QXZvaWRlcjo6cmVzZXRIb3Jpem9udGFsbHkoKQorUG9zaXRp
b25JbkNvbnRleHRSb290IEZsb2F0QXZvaWRlcjo6aW5pdGlhbEhvcml6b250YWxQb3NpdGlvbigp
IGNvbnN0CiB7CiAgICAgLy8gQWxpZ24gdGhlIGJveCB3aXRoIHRoZSBjb250YWluaW5nIGJsb2Nr
J3MgY29udGVudCBib3guCiAgICAgYXV0byBjb250YWluaW5nQmxvY2tDb250ZW50Qm94TGVmdCA9
IG1fY29udGFpbmluZ0Jsb2NrQWJzb2x1dGVEaXNwbGF5Qm94LmxlZnQoKSArIG1fY29udGFpbmlu
Z0Jsb2NrQWJzb2x1dGVEaXNwbGF5Qm94LmNvbnRlbnRCb3hMZWZ0KCk7CkBAIC0xMDEsMTYgKzEx
NiwyMSBAQCB2b2lkIEZsb2F0QXZvaWRlcjo6cmVzZXRIb3Jpem9udGFsbHkoKQogICAgIGF1dG8g
bGVmdCA9IGlzTGVmdEFsaWduZWQoKSA/IGNvbnRhaW5pbmdCbG9ja0NvbnRlbnRCb3hMZWZ0IDog
Y29udGFpbmluZ0Jsb2NrQ29udGVudEJveFJpZ2h0IC0gbV9hYnNvbHV0ZURpc3BsYXlCb3gubWFy
Z2luQm94KCkud2lkdGgoKTsKICAgICBsZWZ0ICs9IG1fYWJzb2x1dGVEaXNwbGF5Qm94Lm1hcmdp
bkxlZnQoKTsKIAotICAgIG1fYWJzb2x1dGVEaXNwbGF5Qm94LnNldExlZnQobGVmdCk7CisgICAg
cmV0dXJuIGxlZnQ7CiB9CiAKLVBvaW50SW5Db250YWluaW5nQmxvY2sgRmxvYXRBdm9pZGVyOjp0
b3BMZWZ0SW5Db250YWluaW5nQmxvY2soKSBjb25zdAorRGlzcGxheTo6Qm94OjpSZWN0IEZsb2F0
QXZvaWRlcjo6cmVjdEluQ29udGFpbmluZ0Jsb2NrKCkgY29uc3QKIHsKICAgICAvLyBGcm9tIGZv
cm1hdHRpbmcgcm9vdCBjb29yZGluYXRlIHN5c3RlbSBiYWNrIHRvIGNvbnRhaW5pbmcgYmxvY2sn
cy4KICAgICBpZiAobV9sYXlvdXRCb3gtPmNvbnRhaW5pbmdCbG9jaygpID09ICZtX2Zsb2F0aW5n
U3RhdGUucm9vdCgpKQotICAgICAgICByZXR1cm4gbV9hYnNvbHV0ZURpc3BsYXlCb3gudG9wTGVm
dCgpOwotCi0gICAgcmV0dXJuIHsgbV9hYnNvbHV0ZURpc3BsYXlCb3gubGVmdCgpIC0gbV9jb250
YWluaW5nQmxvY2tBYnNvbHV0ZURpc3BsYXlCb3gubGVmdCgpLCBtX2Fic29sdXRlRGlzcGxheUJv
eC50b3AoKSAtIG1fY29udGFpbmluZ0Jsb2NrQWJzb2x1dGVEaXNwbGF5Qm94LnRvcCgpIH07Cisg
ICAgICAgIHJldHVybiBtX2Fic29sdXRlRGlzcGxheUJveC5yZWN0KCk7CisKKyAgICByZXR1cm4g
eworICAgICAgICBtX2Fic29sdXRlRGlzcGxheUJveC50b3AoKSAtIG1fY29udGFpbmluZ0Jsb2Nr
QWJzb2x1dGVEaXNwbGF5Qm94LnRvcCgpLAorICAgICAgICBtX2Fic29sdXRlRGlzcGxheUJveC5s
ZWZ0KCkgLSBtX2NvbnRhaW5pbmdCbG9ja0Fic29sdXRlRGlzcGxheUJveC5sZWZ0KCksCisgICAg
ICAgIG1fYWJzb2x1dGVEaXNwbGF5Qm94LndpZHRoKCksCisgICAgICAgIG1fYWJzb2x1dGVEaXNw
bGF5Qm94LmhlaWdodCgpCisgICAgfTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvbGF5b3V0L2Zsb2F0cy9GbG9hdEF2b2lkZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9m
bG9hdHMvRmxvYXRBdm9pZGVyLmgKaW5kZXggMzA1ZjRhNmM5ZDViZDNiN2E5YWJiMWE5YTlmMDg4
YzA2NzY1N2I2Mi4uZGEwZjY5YzA2N2M4ZTlkOWYzNjc1MWNiNDFmMDQxMzI4YmUyM2YwNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdEF2b2lkZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxvYXRzL0Zsb2F0QXZvaWRlci5oCkBAIC00NSwyOCAr
NDUsMjMgQEAgY2xhc3MgRmxvYXRBdm9pZGVyIHsKIHB1YmxpYzoKICAgICBGbG9hdEF2b2lkZXIo
Y29uc3QgQm94JiwgY29uc3QgRmxvYXRpbmdTdGF0ZSYsIGNvbnN0IExheW91dENvbnRleHQmKTsK
IAotICAgIFBvc2l0aW9uSW5Db250ZXh0Um9vdCB0b3AoKSBjb25zdCB7IHJldHVybiBtX2Fic29s
dXRlRGlzcGxheUJveC50b3AoKTsgfQotICAgIFBvc2l0aW9uSW5Db250ZXh0Um9vdCBsZWZ0KCkg
Y29uc3QgeyByZXR1cm4gbV9hYnNvbHV0ZURpc3BsYXlCb3gubGVmdCgpOyB9Ci0gICAgUG9pbnRJ
bkNvbnRhaW5pbmdCbG9jayB0b3BMZWZ0SW5Db250YWluaW5nQmxvY2soKSBjb25zdDsKKyAgICBE
aXNwbGF5OjpCb3g6OlJlY3QgcmVjdCgpIGNvbnN0OworICAgIERpc3BsYXk6OkJveDo6UmVjdCBy
ZWN0SW5Db250YWluaW5nQmxvY2soKSBjb25zdDsKIAotICAgIExheW91dFVuaXQgbWFyZ2luVG9w
KCkgY29uc3QgeyByZXR1cm4gbV9hYnNvbHV0ZURpc3BsYXlCb3gubWFyZ2luVG9wKCk7IH0KLSAg
ICBMYXlvdXRVbml0IG1hcmdpbkxlZnQoKSBjb25zdCB7IHJldHVybiBtX2Fic29sdXRlRGlzcGxh
eUJveC5tYXJnaW5MZWZ0KCk7IH0KLSAgICBMYXlvdXRVbml0IG1hcmdpbkJvdHRvbSgpIGNvbnN0
IHsgcmV0dXJuIG1fYWJzb2x1dGVEaXNwbGF5Qm94Lm1hcmdpbkJvdHRvbSgpOyB9Ci0gICAgTGF5
b3V0VW5pdCBtYXJnaW5SaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1fYWJzb2x1dGVEaXNwbGF5Qm94
Lm1hcmdpblJpZ2h0KCk7IH0KLQotICAgIERpc3BsYXk6OkJveDo6UmVjdCByZWN0V2l0aE1hcmdp
bigpIGNvbnN0IHsgcmV0dXJuIG1fYWJzb2x1dGVEaXNwbGF5Qm94LnJlY3RXaXRoTWFyZ2luKCk7
IH0KLQotICAgIHZvaWQgc2V0VG9wKFBvc2l0aW9uSW5Db250ZXh0Um9vdCB0b3ApIHsgbV9hYnNv
bHV0ZURpc3BsYXlCb3guc2V0VG9wKHRvcCk7IH0KLSAgICB2b2lkIHNldExlZnQoUG9zaXRpb25J
bkNvbnRleHRSb290KTsKLSAgICB2b2lkIHNldFRvcExlZnQoUG9pbnRJbkNvbnRleHRSb290KTsK
LQotICAgIHZvaWQgcmVzZXRIb3Jpem9udGFsbHkoKTsKLSAgICB2b2lkIHJlc2V0VmVydGljYWxs
eSgpOworICAgIHN0cnVjdCBIb3Jpem9udGFsQ29uc3RyYWludHMgeworICAgICAgICBzdGQ6Om9w
dGlvbmFsPFBvc2l0aW9uSW5Db250ZXh0Um9vdD4gbGVmdDsKKyAgICAgICAgc3RkOjpvcHRpb25h
bDxQb3NpdGlvbkluQ29udGV4dFJvb3Q+IHJpZ2h0OworICAgIH07CisgICAgdm9pZCBzZXRIb3Jp
em9udGFsQ29uc3RyYWludHMoSG9yaXpvbnRhbENvbnN0cmFpbnRzKTsKKyAgICB2b2lkIHNldFZl
cnRpY2FsQ29uc3RyYWludChQb3NpdGlvbkluQ29udGV4dFJvb3QpOwogCitwcml2YXRlOgogICAg
IGJvb2wgaXNMZWZ0QWxpZ25lZCgpIGNvbnN0OwogCi1wcml2YXRlOgogICAgIHZvaWQgaW5pdGlh
bGl6ZVBvc2l0aW9uKCk7CisgICAgUG9zaXRpb25JbkNvbnRleHRSb290IGluaXRpYWxIb3Jpem9u
dGFsUG9zaXRpb24oKSBjb25zdDsKKyAgICBQb3NpdGlvbkluQ29udGV4dFJvb3QgaW5pdGlhbFZl
cnRpY2FsUG9zaXRpb24oKSBjb25zdDsKKyAgICB2b2lkIHJlc2V0SG9yaXpvbnRhbENvbnN0cmFp
bnQoKTsKIAogICAgIFdlYWtQdHI8Qm94PiBtX2xheW91dEJveDsKICAgICBjb25zdCBGbG9hdGlu
Z1N0YXRlJiBtX2Zsb2F0aW5nU3RhdGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvZmxvYXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvZmxv
YXRzL0Zsb2F0aW5nQ29udGV4dC5jcHAKaW5kZXggNzJmOWQ3NzEyZTM0M2Y2ODY0N2QzNjY0ZGRk
NjJhMjc5YTgyMDgzZS4uODdkNmY0YTE0MDYxNTJkMDQ3NjVkMTg4ZDA4ZTY0ZTE0NDU1OTYwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Zsb2F0cy9GbG9hdGluZ0NvbnRleHQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9mbG9hdHMvRmxvYXRpbmdDb250ZXh0LmNw
cApAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgRmxvYXRpbmdTdGF0ZTo6Rmxv
YXRJdGVtKiByaWdodCgpIGNvbnN0OwogICAgIGJvb2wgaW50ZXJzZWN0cyhjb25zdCBEaXNwbGF5
OjpCb3g6OlJlY3QmKSBjb25zdDsKICAgICBQb3NpdGlvbkluQ29udGV4dFJvb3QgdmVydGljYWxQ
b3NpdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fdmVydGljYWxQb3NpdGlvbjsgfQotICAgIHN0ZDo6
b3B0aW9uYWw8UG9zaXRpb25JbkNvbnRleHRSb290PiBob3JpenRvbmFsUG9zaXRpb24oRmxvYXQp
IGNvbnN0OworICAgIEZsb2F0QXZvaWRlcjo6SG9yaXpvbnRhbENvbnN0cmFpbnRzIGhvcml6b250
YWxDb25zdHJhaW50cygpIGNvbnN0OwogICAgIFBvc2l0aW9uSW5Db250ZXh0Um9vdCBib3R0b20o
KSBjb25zdDsKICAgICBib29sIG9wZXJhdG9yPT0oY29uc3QgRmxvYXRpbmdQYWlyJikgY29uc3Q7
CiAKQEAgLTEzOSw3ICsxMzksNyBAQCBQb2ludEluQ29udGFpbmluZ0Jsb2NrIEZsb2F0aW5nQ29u
dGV4dDo6cG9zaXRpb25Gb3JGbG9hdChjb25zdCBCb3gmIGxheW91dEJveCkgYwogICAgIC8vIEZp
bmQgdGhlIHRvcCBtb3N0IHBvc2l0aW9uIHdoZXJlIHRoZSBmbG9hdCBib3ggZml0cy4KICAgICBG
bG9hdEF2b2lkZXIgYWxpZ25lZEJveCA9IHsgbGF5b3V0Qm94LCBtX2Zsb2F0aW5nU3RhdGUsIGxh
eW91dENvbnRleHQoKSB9OwogICAgIGZsb2F0aW5nUG9zaXRpb24oYWxpZ25lZEJveCk7Ci0gICAg
cmV0dXJuIGFsaWduZWRCb3gudG9wTGVmdEluQ29udGFpbmluZ0Jsb2NrKCk7CisgICAgcmV0dXJu
IGFsaWduZWRCb3gucmVjdEluQ29udGFpbmluZ0Jsb2NrKCkudG9wTGVmdCgpOwogfQogCiBzdGQ6
Om9wdGlvbmFsPFBvc2l0aW9uSW5Db250YWluaW5nQmxvY2s+IEZsb2F0aW5nQ29udGV4dDo6dmVy
dGljYWxQb3NpdGlvbldpdGhDbGVhcmFuY2UoY29uc3QgQm94JiBsYXlvdXRCb3gpIGNvbnN0CkBA
IC0yMTYsMjUgKzIxNiwxOCBAQCBzdGQ6Om9wdGlvbmFsPFBvc2l0aW9uSW5Db250YWluaW5nQmxv
Y2s+IEZsb2F0aW5nQ29udGV4dDo6dmVydGljYWxQb3NpdGlvbldpdGhDbAogdm9pZCBGbG9hdGlu
Z0NvbnRleHQ6OmZsb2F0aW5nUG9zaXRpb24oRmxvYXRBdm9pZGVyJiBmbG9hdEF2b2lkZXIpIGNv
bnN0CiB7CiAgICAgc3RkOjpvcHRpb25hbDxQb3NpdGlvbkluQ29udGV4dFJvb3Q+IGJvdHRvbU1v
c3Q7Ci0gICAgYXV0byBpbml0aWFsTGVmdCA9IGZsb2F0QXZvaWRlci5sZWZ0KCk7CiAgICAgYXV0
byBlbmQgPSBMYXlvdXQ6OmVuZChtX2Zsb2F0aW5nU3RhdGUpOwotICAgIGZvciAoYXV0byBpdGVy
YXRvciA9IGJlZ2luKG1fZmxvYXRpbmdTdGF0ZSwgZmxvYXRBdm9pZGVyLnJlY3RXaXRoTWFyZ2lu
KCkudG9wKCkpOyBpdGVyYXRvciAhPSBlbmQ7ICsraXRlcmF0b3IpIHsKKyAgICBmb3IgKGF1dG8g
aXRlcmF0b3IgPSBiZWdpbihtX2Zsb2F0aW5nU3RhdGUsIGZsb2F0QXZvaWRlci5yZWN0KCkudG9w
KCkpOyBpdGVyYXRvciAhPSBlbmQ7ICsraXRlcmF0b3IpIHsKICAgICAgICAgQVNTRVJUKCEoKml0
ZXJhdG9yKS5pc0VtcHR5KCkpOwogICAgICAgICBhdXRvIGZsb2F0cyA9ICppdGVyYXRvcjsKIAot
ICAgICAgICBmbG9hdEF2b2lkZXIuc2V0VG9wKGZsb2F0cy52ZXJ0aWNhbFBvc2l0aW9uKCkgKyBm
bG9hdEF2b2lkZXIubWFyZ2luVG9wKCkpOwogICAgICAgICAvLyBNb3ZlIHRoZSBib3ggaG9yaXpv
bnRhbGx5IHNvIHRoYXQgaXQgZWl0aGVyCiAgICAgICAgIC8vIDEuIGFsaWducyB3aXRoIHRoZSBj
dXJyZW50IGZsb2F0aW5nIHBhaXIKICAgICAgICAgLy8gMi4gb3Igd2l0aCB0aGUgY29udGFpbmlu
ZyBibG9jaydzIGNvbnRlbnQgYm94IGlmIHRoZXJlJ3Mgbm8gZmxvYXQgdG8gYWxpZ24gd2l0aCBh
dCB0aGlzIHZlcnRpY2FsIHBvc2l0aW9uLgotICAgICAgICBpZiAoYXV0byBob3JpenRvbmFsUG9z
aXRpb24gPSBmbG9hdHMuaG9yaXp0b25hbFBvc2l0aW9uKGZsb2F0QXZvaWRlci5pc0xlZnRBbGln
bmVkKCkgPyBGbG9hdDo6TGVmdCA6IEZsb2F0OjpSaWdodCkpIHsKLSAgICAgICAgICAgIGlmICgh
ZmxvYXRBdm9pZGVyLmlzTGVmdEFsaWduZWQoKSkKLSAgICAgICAgICAgICAgICBob3JpenRvbmFs
UG9zaXRpb24gPSAqaG9yaXp0b25hbFBvc2l0aW9uIC0gZmxvYXRBdm9pZGVyLnJlY3RXaXRoTWFy
Z2luKCkud2lkdGgoKTsKLSAgICAgICAgICAgIGZsb2F0QXZvaWRlci5zZXRMZWZ0KCpob3JpenRv
bmFsUG9zaXRpb24gKyBmbG9hdEF2b2lkZXIubWFyZ2luTGVmdCgpKTsKLSAgICAgICAgfSBlbHNl
Ci0gICAgICAgICAgICBmbG9hdEF2b2lkZXIucmVzZXRIb3Jpem9udGFsbHkoKTsKLQorICAgICAg
ICBmbG9hdEF2b2lkZXIuc2V0SG9yaXpvbnRhbENvbnN0cmFpbnRzKGZsb2F0cy5ob3Jpem9udGFs
Q29uc3RyYWludHMoKSk7CisgICAgICAgIGZsb2F0QXZvaWRlci5zZXRWZXJ0aWNhbENvbnN0cmFp
bnQoZmxvYXRzLnZlcnRpY2FsUG9zaXRpb24oKSk7CiAgICAgICAgIC8vIENoZWNrIGlmIHRoZSBi
b3ggZml0cyBhdCB0aGlzIHBvc2l0aW9uLgotICAgICAgICBpZiAoIWZsb2F0cy5pbnRlcnNlY3Rz
KGZsb2F0QXZvaWRlci5yZWN0V2l0aE1hcmdpbigpKSkKKyAgICAgICAgaWYgKCFmbG9hdHMuaW50
ZXJzZWN0cyhmbG9hdEF2b2lkZXIucmVjdCgpKSkKICAgICAgICAgICAgIHJldHVybjsKIAogICAg
ICAgICBib3R0b21Nb3N0ID0gZmxvYXRzLmJvdHRvbSgpOwpAQCAtMjQ2LDcgKzIzOSw4IEBAIHZv
aWQgRmxvYXRpbmdDb250ZXh0OjpmbG9hdGluZ1Bvc2l0aW9uKEZsb2F0QXZvaWRlciYgZmxvYXRB
dm9pZGVyKSBjb25zdAogICAgICAgICByZXR1cm47CiAKICAgICAvLyBQYXNzZWQgYWxsIHRoZSBm
bG9hdHMgYW5kIHN0aWxsIGRvZXMgbm90IGZpdD8gUHVzaCBpdCBiZWxvdyB0aGUgbGFzdCBmbG9h
dC4KLSAgICBmbG9hdEF2b2lkZXIuc2V0VG9wTGVmdCh7IGluaXRpYWxMZWZ0LCAqYm90dG9tTW9z
dCArIGZsb2F0QXZvaWRlci5tYXJnaW5Ub3AoKSB9KTsKKyAgICBmbG9hdEF2b2lkZXIuc2V0VmVy
dGljYWxDb25zdHJhaW50KCpib3R0b21Nb3N0KTsKKyAgICBmbG9hdEF2b2lkZXIuc2V0SG9yaXpv
bnRhbENvbnN0cmFpbnRzKHsgfSk7CiB9CiAKIEZsb2F0aW5nUGFpcjo6RmxvYXRpbmdQYWlyKGNv
bnN0IEZsb2F0aW5nU3RhdGU6OkZsb2F0TGlzdCYgZmxvYXRzKQpAQCAtMzA2LDE1ICszMDAsMTgg
QEAgYm9vbCBGbG9hdGluZ1BhaXI6Om9wZXJhdG9yID09KGNvbnN0IEZsb2F0aW5nUGFpciYgb3Ro
ZXIpIGNvbnN0CiAgICAgcmV0dXJuIG1fbGVmdEluZGV4ID09IG90aGVyLm1fbGVmdEluZGV4ICYm
IG1fcmlnaHRJbmRleCA9PSBvdGhlci5tX3JpZ2h0SW5kZXg7CiB9CiAKLXN0ZDo6b3B0aW9uYWw8
UG9zaXRpb25JbkNvbnRleHRSb290PiBGbG9hdGluZ1BhaXI6Omhvcml6dG9uYWxQb3NpdGlvbihG
bG9hdCBmbG9hdFR5cGUpIGNvbnN0CitGbG9hdEF2b2lkZXI6Okhvcml6b250YWxDb25zdHJhaW50
cyBGbG9hdGluZ1BhaXI6Omhvcml6b250YWxDb25zdHJhaW50cygpIGNvbnN0CiB7Ci0gICAgaWYg
KGZsb2F0VHlwZSA9PSBGbG9hdDo6TGVmdCAmJiBsZWZ0KCkpCi0gICAgICAgIHJldHVybiBsZWZ0
KCktPnJlY3RXaXRoTWFyZ2luKCkucmlnaHQoKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFBvc2l0aW9u
SW5Db250ZXh0Um9vdD4gbGVmdEVkZ2U7CisgICAgc3RkOjpvcHRpb25hbDxQb3NpdGlvbkluQ29u
dGV4dFJvb3Q+IHJpZ2h0RWRnZTsKIAotICAgIGlmIChmbG9hdFR5cGUgPT0gRmxvYXQ6OlJpZ2h0
ICYmIHJpZ2h0KCkpCi0gICAgICAgIHJldHVybiByaWdodCgpLT5yZWN0V2l0aE1hcmdpbigpLmxl
ZnQoKTsKKyAgICBpZiAobGVmdCgpKQorICAgICAgICBsZWZ0RWRnZSA9IGxlZnQoKS0+cmVjdFdp
dGhNYXJnaW4oKS5yaWdodCgpOwogCi0gICAgcmV0dXJuIHsgfTsKKyAgICBpZiAocmlnaHQoKSkK
KyAgICAgICAgcmlnaHRFZGdlID0gcmlnaHQoKS0+cmVjdFdpdGhNYXJnaW4oKS5sZWZ0KCk7CisK
KyAgICByZXR1cm4geyBsZWZ0RWRnZSwgcmlnaHRFZGdlIH07CiB9CiAKIFBvc2l0aW9uSW5Db250
ZXh0Um9vdCBGbG9hdGluZ1BhaXI6OmJvdHRvbSgpIGNvbnN0Cg==
</data>
<flag name="review"
          id="365901"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>