<?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>204591</bug_id>
          
          <creation_ts>2019-11-25 13:02:01 -0800</creation_ts>
          <short_desc>Use Variant for RenderBlockFlow line layout</short_desc>
          <delta_ts>2019-11-26 00:28:43 -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="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</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>1593493</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-25 13:02:01 -0800</bug_when>
    <thetext>Move complex and simple line layout structures into a Variant to avoid wasting memory and to allow easy expansion with LFC path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593497</commentid>
    <comment_count>1</comment_count>
      <attachid>384314</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2019-11-25 13:14:28 -0800</bug_when>
    <thetext>Created attachment 384314
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593525</commentid>
    <comment_count>2</comment_count>
      <attachid>384314</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-25 15:18:12 -0800</bug_when>
    <thetext>Comment on attachment 384314
patch

Clearing flags on attachment: 384314

Committed r252868: &lt;https://trac.webkit.org/changeset/252868&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593526</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-25 15:18:14 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593527</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-25 15:19:21 -0800</bug_when>
    <thetext>&lt;rdar://problem/57478567&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384314</attachid>
            <date>2019-11-25 13:14:28 -0800</date>
            <delta_ts>2019-11-25 15:18:12 -0800</delta_ts>
            <desc>patch</desc>
            <filename>flow-linelayout-variant.patch</filename>
            <type>text/plain</type>
            <size>16605</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyNjJiNmFmNGExZC4uOGI5NTllNTg2NGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwzNyBAQAorMjAxOS0xMS0yNSAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+
CisKKyAgICAgICAgVXNlciBWYXJpYW50IGZvciBSZW5kZXJCbG9ja0Zsb3cgbGluZSBsYXlvdXQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDU5MQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1vdmUgY29t
cGxleCBhbmQgc2ltcGxlIGxpbmUgbGF5b3V0IHN0cnVjdHVyZXMgaW50byBhIFZhcmlhbnQgdG8g
YXZvaWQgd2FzdGluZyBtZW1vcnksIGFuZCB0byBhbGxvdyBlYXN5IGV4cGFuc2lvbiB3aXRoIGFu
IExGQyBwYXRoCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6bGF5b3V0SW5saW5lQ2hpbGRyZW4pOgorICAg
ICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpzdHlsZURpZENoYW5nZSk6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmRlbGV0ZUxpbmVzKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlckJsb2NrRmxvdzo6aGl0VGVzdElubGluZUNoaWxkcmVuKToKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6YWRkT3ZlcmZsb3dGcm9tSW5saW5lQ2hpbGRyZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjptYXJrTGluZXNEaXJ0eUluQmxvY2tS
YW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmlubGluZVNlbGVjdGlv
bkdhcHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpwYWludElubGluZUNo
aWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6aGFzTGluZXMgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjppbnZhbGlkYXRlTGluZUxh
eW91dFBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRTaW1w
bGVMaW5lcyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmRlbGV0ZUxpbmVC
b3hlc0JlZm9yZVNpbXBsZUxpbmVMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxv
Y2tGbG93OjplbnN1cmVMaW5lQm94ZXMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6Zmlyc3RSb290Qm94
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6bGFzdFJvb3RCb3gg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpoYXNDb21wbGV4TGlu
ZUxheW91dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmNvbXBs
ZXhMaW5lTGF5b3V0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6
Y29tcGxleExpbmVMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93Ojpo
YXNTaW1wbGVMaW5lTGF5b3V0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2Nr
Rmxvdzo6c2ltcGxlTGluZUxheW91dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9ja0Zsb3c6OnNpbXBsZUxpbmVMYXlvdXQpOgorCiAyMDE5LTExLTI1ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgbGVnYWN5IGdldFVzZXJNZWRp
YSBhcyBhIHF1aXJrCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cu
Y3BwCmluZGV4IDdiZTNjN2EwOGYzLi5jY2FmNzgyMGQ5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTE1Miw4ICsxNTIsOCBAQCB2b2lkIFJl
bmRlckJsb2NrRmxvdzo6d2lsbEJlRGVzdHJveWVkKCkKICAgICAgICAgICAgIHBhcmVudCgpLT5k
aXJ0eUxpbmVzRnJvbUNoYW5nZWRDaGlsZCgqdGhpcyk7CiAgICAgfQogCi0gICAgaWYgKG1fY29t
cGxleExpbmVMYXlvdXQpCi0gICAgICAgIG1fY29tcGxleExpbmVMYXlvdXQtPmxpbmVCb3hlcygp
LmRlbGV0ZUxpbmVCb3hlcygpOworICAgIGlmIChjb21wbGV4TGluZUxheW91dCgpKQorICAgICAg
ICBjb21wbGV4TGluZUxheW91dCgpLT5saW5lQm94ZXMoKS5kZWxldGVMaW5lQm94ZXMoKTsKIAog
ICAgIGJsb2NrV2lsbEJlRGVzdHJveWVkKCk7CiAKQEAgLTY3NSwxMiArNjc1LDEwIEBAIHZvaWQg
UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRJbmxpbmVDaGlsZHJlbihib29sIHJlbGF5b3V0Q2hpbGRy
ZW4sIExheW91dFVuaXQmIHJlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBtX3NpbXBs
ZUxpbmVMYXlvdXQgPSBudWxscHRyOworICAgIGlmICghY29tcGxleExpbmVMYXlvdXQoKSkKKyAg
ICAgICAgbV9saW5lTGF5b3V0ID0gbWFrZVVuaXF1ZTxDb21wbGV4TGluZUxheW91dD4oKnRoaXMp
OwogCi0gICAgaWYgKCFtX2NvbXBsZXhMaW5lTGF5b3V0KQotICAgICAgICBtX2NvbXBsZXhMaW5l
TGF5b3V0ID0gbWFrZVVuaXF1ZTxDb21wbGV4TGluZUxheW91dD4oKnRoaXMpOwotCi0gICAgbV9j
b21wbGV4TGluZUxheW91dC0+bGF5b3V0TGluZUJveGVzKHJlbGF5b3V0Q2hpbGRyZW4sIHJlcGFp
bnRMb2dpY2FsVG9wLCByZXBhaW50TG9naWNhbEJvdHRvbSk7CisgICAgY29tcGxleExpbmVMYXlv
dXQoKS0+bGF5b3V0TGluZUJveGVzKHJlbGF5b3V0Q2hpbGRyZW4sIHJlcGFpbnRMb2dpY2FsVG9w
LCByZXBhaW50TG9naWNhbEJvdHRvbSk7CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlv
dXRCbG9ja0NoaWxkKFJlbmRlckJveCYgY2hpbGQsIE1hcmdpbkluZm8mIG1hcmdpbkluZm8sIExh
eW91dFVuaXQmIHByZXZpb3VzRmxvYXRMb2dpY2FsQm90dG9tLCBMYXlvdXRVbml0JiBtYXhGbG9h
dExvZ2ljYWxCb3R0b20pCkBAIC0yMDcxLDcgKzIwNjksNyBAQCB2b2lkIFJlbmRlckJsb2NrRmxv
dzo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxl
KiBvbAogCiAgICAgaWYgKGRpZmYgPj0gU3R5bGVEaWZmZXJlbmNlOjpSZXBhaW50KSB7CiAgICAg
ICAgIC8vIEZJWE1FOiBUaGlzIGNvdWxkIHVzZSBhIGNoZWFwZXIgc3R5bGUtb25seSB0ZXN0IGlu
c3RlYWQgb2YgU2ltcGxlTGluZUxheW91dDo6Y2FuVXNlRm9yLgotICAgICAgICBpZiAoc2VsZk5l
ZWRzTGF5b3V0KCkgfHwgIW1fc2ltcGxlTGluZUxheW91dCB8fCAhU2ltcGxlTGluZUxheW91dDo6
Y2FuVXNlRm9yKCp0aGlzKSkKKyAgICAgICAgaWYgKHNlbGZOZWVkc0xheW91dCgpIHx8ICFzaW1w
bGVMaW5lTGF5b3V0KCkgfHwgIVNpbXBsZUxpbmVMYXlvdXQ6OmNhblVzZUZvcigqdGhpcykpCiAg
ICAgICAgICAgICBpbnZhbGlkYXRlTGluZUxheW91dFBhdGgoKTsKICAgICB9CiAKQEAgLTIxMDgs
MTEgKzIxMDYsMTAgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmRlbGV0ZUxpbmVzKCkKICAgICBp
ZiAoY29udGFpbnNGbG9hdHMoKSkKICAgICAgICAgbV9mbG9hdGluZ09iamVjdHMtPmNsZWFyTGlu
ZUJveFRyZWVQb2ludGVycygpOwogCi0gICAgaWYgKG1fc2ltcGxlTGluZUxheW91dCkgewotICAg
ICAgICBBU1NFUlQoIW1fY29tcGxleExpbmVMYXlvdXQpOwotICAgICAgICBtX3NpbXBsZUxpbmVM
YXlvdXQgPSBudWxscHRyOwotICAgIH0gZWxzZSBpZiAobV9jb21wbGV4TGluZUxheW91dCkKLSAg
ICAgICAgbV9jb21wbGV4TGluZUxheW91dC0+bGluZUJveGVzKCkuZGVsZXRlTGluZUJveFRyZWUo
KTsKKyAgICBpZiAoY29tcGxleExpbmVMYXlvdXQoKSkKKyAgICAgICAgY29tcGxleExpbmVMYXlv
dXQoKS0+bGluZUJveGVzKCkuZGVsZXRlTGluZUJveFRyZWUoKTsKKyAgICBlbHNlCisgICAgICAg
IG1fbGluZUxheW91dCA9IG51bGxwdHI7CiAKICAgICBSZW5kZXJCbG9jazo6ZGVsZXRlTGluZXMo
KTsKIH0KQEAgLTI5NDksNyArMjk0Niw3IEBAIGJvb2wgUmVuZGVyQmxvY2tGbG93OjpoaXRUZXN0
SW5saW5lQ2hpbGRyZW4oY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlCiAgICAg
aWYgKGF1dG8gc2ltcGxlTGluZUxheW91dCA9IHRoaXMtPnNpbXBsZUxpbmVMYXlvdXQoKSkKICAg
ICAgICAgcmV0dXJuIFNpbXBsZUxpbmVMYXlvdXQ6OmhpdFRlc3RGbG93KCp0aGlzLCAqc2ltcGxl
TGluZUxheW91dCwgcmVxdWVzdCwgcmVzdWx0LCBsb2NhdGlvbkluQ29udGFpbmVyLCBhY2N1bXVs
YXRlZE9mZnNldCwgaGl0VGVzdEFjdGlvbik7CiAKLSAgICByZXR1cm4gbV9jb21wbGV4TGluZUxh
eW91dCAmJiBtX2NvbXBsZXhMaW5lTGF5b3V0LT5saW5lQm94ZXMoKS5oaXRUZXN0KHRoaXMsIHJl
cXVlc3QsIHJlc3VsdCwgbG9jYXRpb25JbkNvbnRhaW5lciwgYWNjdW11bGF0ZWRPZmZzZXQsIGhp
dFRlc3RBY3Rpb24pOworICAgIHJldHVybiBjb21wbGV4TGluZUxheW91dCgpICYmIGNvbXBsZXhM
aW5lTGF5b3V0KCktPmxpbmVCb3hlcygpLmhpdFRlc3QodGhpcywgcmVxdWVzdCwgcmVzdWx0LCBs
b2NhdGlvbkluQ29udGFpbmVyLCBhY2N1bXVsYXRlZE9mZnNldCwgaGl0VGVzdEFjdGlvbik7CiB9
CiAKIHZvaWQgUmVuZGVyQmxvY2tGbG93OjphZGRPdmVyZmxvd0Zyb21JbmxpbmVDaGlsZHJlbigp
CkBAIC0yOTYwLDcgKzI5NTcsNyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6YWRkT3ZlcmZsb3dG
cm9tSW5saW5lQ2hpbGRyZW4oKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9jb21w
bGV4TGluZUxheW91dC0+YWRkT3ZlcmZsb3dGcm9tSW5saW5lQ2hpbGRyZW4oKTsKKyAgICBjb21w
bGV4TGluZUxheW91dCgpLT5hZGRPdmVyZmxvd0Zyb21JbmxpbmVDaGlsZHJlbigpOwogfQogCiB2
b2lkIFJlbmRlckJsb2NrRmxvdzo6YWRqdXN0Rm9yQm9yZGVyRml0KExheW91dFVuaXQgeCwgTGF5
b3V0VW5pdCYgbGVmdCwgTGF5b3V0VW5pdCYgcmlnaHQpIGNvbnN0CkBAIC0zMDQxLDcgKzMwMzgs
NyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6bWFya0xpbmVzRGlydHlJbkJsb2NrUmFuZ2UoTGF5
b3V0VW5pdCBsb2dpY2FsVG9wLCBMYXlvdXRVbgogICAgICAgICByZXR1cm47CiAKICAgICAvLyBG
bG9hdHMgY3VycmVudGx5IGFmZmVjdCB0aGUgY2hvaWNlIHdoZXRoZXIgdG8gdXNlIHNpbXBsZSBs
aW5lIGxheW91dCBwYXRoLgotICAgIGlmIChtX3NpbXBsZUxpbmVMYXlvdXQpIHsKKyAgICBpZiAo
c2ltcGxlTGluZUxheW91dCgpKSB7CiAgICAgICAgIGludmFsaWRhdGVMaW5lTGF5b3V0UGF0aCgp
OwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMzEyOCw3ICszMTI1LDcgQEAgdm9pZCBSZW5k
ZXJCbG9ja0Zsb3c6OnNldFNlbGVjdGlvblN0YXRlKFNlbGVjdGlvblN0YXRlIHN0YXRlKQogR2Fw
UmVjdHMgUmVuZGVyQmxvY2tGbG93OjppbmxpbmVTZWxlY3Rpb25HYXBzKFJlbmRlckJsb2NrJiBy
b290QmxvY2ssIGNvbnN0IExheW91dFBvaW50JiByb290QmxvY2tQaHlzaWNhbFBvc2l0aW9uLCBj
b25zdCBMYXlvdXRTaXplJiBvZmZzZXRGcm9tUm9vdEJsb2NrLAogICAgIExheW91dFVuaXQmIGxh
c3RMb2dpY2FsVG9wLCBMYXlvdXRVbml0JiBsYXN0TG9naWNhbExlZnQsIExheW91dFVuaXQmIGxh
c3RMb2dpY2FsUmlnaHQsIGNvbnN0IExvZ2ljYWxTZWxlY3Rpb25PZmZzZXRDYWNoZXMmIGNhY2hl
LCBjb25zdCBQYWludEluZm8qIHBhaW50SW5mbykKIHsKLSAgICBBU1NFUlQoIW1fc2ltcGxlTGlu
ZUxheW91dCk7CisgICAgQVNTRVJUKCFzaW1wbGVMaW5lTGF5b3V0KCkpOwogCiAgICAgR2FwUmVj
dHMgcmVzdWx0OwogCkBAIC0zNTQzLDggKzM1NDAsOCBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6
cGFpbnRJbmxpbmVDaGlsZHJlbihQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9p
bgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKG1fY29tcGxleExpbmVMYXlvdXQp
Ci0gICAgICAgIG1fY29tcGxleExpbmVMYXlvdXQtPmxpbmVCb3hlcygpLnBhaW50KHRoaXMsIHBh
aW50SW5mbywgcGFpbnRPZmZzZXQpOworICAgIGlmIChjb21wbGV4TGluZUxheW91dCgpKQorICAg
ICAgICBjb21wbGV4TGluZUxheW91dCgpLT5saW5lQm94ZXMoKS5wYWludCh0aGlzLCBwYWludElu
Zm8sIHBhaW50T2Zmc2V0KTsKIH0KIAogYm9vbCBSZW5kZXJCbG9ja0Zsb3c6OnJlbGF5b3V0Rm9y
UGFnaW5hdGlvbigpCkBAIC0zNTk5LDcgKzM1OTYsNyBAQCBib29sIFJlbmRlckJsb2NrRmxvdzo6
aGFzTGluZXMoKSBjb25zdAogICAgIGlmIChhdXRvIHNpbXBsZUxpbmVMYXlvdXQgPSB0aGlzLT5z
aW1wbGVMaW5lTGF5b3V0KCkpCiAgICAgICAgIHJldHVybiBzaW1wbGVMaW5lTGF5b3V0LT5saW5l
Q291bnQoKTsKIAotICAgIHJldHVybiBtX2NvbXBsZXhMaW5lTGF5b3V0ICYmIG1fY29tcGxleExp
bmVMYXlvdXQtPmxpbmVCb3hlcygpLmZpcnN0TGluZUJveCgpOworICAgIHJldHVybiBjb21wbGV4
TGluZUxheW91dCgpICYmIGNvbXBsZXhMaW5lTGF5b3V0KCktPmxpbmVCb3hlcygpLmZpcnN0TGlu
ZUJveCgpOwogfQogCiB2b2lkIFJlbmRlckJsb2NrRmxvdzo6aW52YWxpZGF0ZUxpbmVMYXlvdXRQ
YXRoKCkKQEAgLTM2MDcsMTUgKzM2MDQsMTUgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmludmFs
aWRhdGVMaW5lTGF5b3V0UGF0aCgpCiAgICAgc3dpdGNoIChsaW5lTGF5b3V0UGF0aCgpKSB7CiAg
ICAgY2FzZSBVbmRldGVybWluZWRQYXRoOgogICAgIGNhc2UgRm9yY2VMaW5lQm94ZXNQYXRoOgot
ICAgICAgICBBU1NFUlQoIW1fc2ltcGxlTGluZUxheW91dCk7CisgICAgICAgIEFTU0VSVCghc2lt
cGxlTGluZUxheW91dCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgTGluZUJveGVzUGF0
aDoKLSAgICAgICAgQVNTRVJUKCFtX3NpbXBsZUxpbmVMYXlvdXQpOworICAgICAgICBBU1NFUlQo
IXNpbXBsZUxpbmVMYXlvdXQoKSk7CiAgICAgICAgIHNldExpbmVMYXlvdXRQYXRoKFVuZGV0ZXJt
aW5lZFBhdGgpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBTaW1wbGVMaW5lc1BhdGg6CiAg
ICAgICAgIC8vIFRoZSBzaW1wbGUgbGluZSBsYXlvdXQgbWF5IGhhdmUgYmVjb21lIGludmFsaWQu
Ci0gICAgICAgIG1fc2ltcGxlTGluZUxheW91dCA9IG51bGxwdHI7CisgICAgICAgIG1fbGluZUxh
eW91dCA9IG51bGxwdHI7CiAgICAgICAgIHNldExpbmVMYXlvdXRQYXRoKFVuZGV0ZXJtaW5lZFBh
dGgpOwogICAgICAgICBpZiAobmVlZHNMYXlvdXQoKSkKICAgICAgICAgICAgIHJldHVybjsKQEAg
LTM2MjgsMTkgKzM2MjUsMjIgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmludmFsaWRhdGVMaW5l
TGF5b3V0UGF0aCgpCiAKIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRTaW1wbGVMaW5lcyhi
b29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQmIHJlcGFpbnRMb2dpY2FsVG9wLCBMYXlv
dXRVbml0JiByZXBhaW50TG9naWNhbEJvdHRvbSkKIHsKLSAgICBib29sIG5lZWRzTGF5b3V0ID0g
c2VsZk5lZWRzTGF5b3V0KCkgfHwgcmVsYXlvdXRDaGlsZHJlbiB8fCAhbV9zaW1wbGVMaW5lTGF5
b3V0OworICAgIGJvb2wgbmVlZHNMYXlvdXQgPSBzZWxmTmVlZHNMYXlvdXQoKSB8fCByZWxheW91
dENoaWxkcmVuIHx8ICFzaW1wbGVMaW5lTGF5b3V0KCk7CiAgICAgaWYgKG5lZWRzTGF5b3V0KSB7
CiAgICAgICAgIGRlbGV0ZUxpbmVCb3hlc0JlZm9yZVNpbXBsZUxpbmVMYXlvdXQoKTsKLSAgICAg
ICAgbV9zaW1wbGVMaW5lTGF5b3V0ID0gU2ltcGxlTGluZUxheW91dDo6Y3JlYXRlKCp0aGlzKTsK
KyAgICAgICAgbV9saW5lTGF5b3V0ID0gU2ltcGxlTGluZUxheW91dDo6Y3JlYXRlKCp0aGlzKTsK
ICAgICB9CisgICAgYXV0byYgc2ltcGxlTGluZUxheW91dCA9ICp0aGlzLT5zaW1wbGVMaW5lTGF5
b3V0KCk7CisKICAgICBpZiAodmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5sYXlv
dXRTdGF0ZSgpICYmIHZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkubGF5b3V0U3Rh
dGUoKS0+aXNQYWdpbmF0ZWQoKSkgewotICAgICAgICBtX3NpbXBsZUxpbmVMYXlvdXQtPnNldElz
UGFnaW5hdGVkKCk7Ci0gICAgICAgIFNpbXBsZUxpbmVMYXlvdXQ6OmFkanVzdExpbmVQb3NpdGlv
bnNGb3JQYWdpbmF0aW9uKCptX3NpbXBsZUxpbmVMYXlvdXQsICp0aGlzKTsKKyAgICAgICAgc2lt
cGxlTGluZUxheW91dC5zZXRJc1BhZ2luYXRlZCgpOworICAgICAgICBTaW1wbGVMaW5lTGF5b3V0
OjphZGp1c3RMaW5lUG9zaXRpb25zRm9yUGFnaW5hdGlvbihzaW1wbGVMaW5lTGF5b3V0LCAqdGhp
cyk7CiAgICAgfQorCiAgICAgZm9yIChhdXRvJiByZW5kZXJlciA6IGNoaWxkcmVuT2ZUeXBlPFJl
bmRlck9iamVjdD4oKnRoaXMpKQogICAgICAgICByZW5kZXJlci5jbGVhck5lZWRzTGF5b3V0KCk7
Ci0gICAgQVNTRVJUKCFtX2NvbXBsZXhMaW5lTGF5b3V0KTsKLSAgICBMYXlvdXRVbml0IGxpbmVM
YXlvdXRIZWlnaHQgPSBTaW1wbGVMaW5lTGF5b3V0Ojpjb21wdXRlRmxvd0hlaWdodCgqdGhpcywg
Km1fc2ltcGxlTGluZUxheW91dCk7CisKKyAgICBMYXlvdXRVbml0IGxpbmVMYXlvdXRIZWlnaHQg
PSBTaW1wbGVMaW5lTGF5b3V0Ojpjb21wdXRlRmxvd0hlaWdodCgqdGhpcywgc2ltcGxlTGluZUxh
eW91dCk7CiAgICAgTGF5b3V0VW5pdCBsaW5lTGF5b3V0VG9wID0gYm9yZGVyQW5kUGFkZGluZ0Jl
Zm9yZSgpOwogICAgIHJlcGFpbnRMb2dpY2FsVG9wID0gbGluZUxheW91dFRvcDsKICAgICByZXBh
aW50TG9naWNhbEJvdHRvbSA9IG5lZWRzTGF5b3V0ID8gcmVwYWludExvZ2ljYWxUb3AgKyBsaW5l
TGF5b3V0SGVpZ2h0ICsgYm9yZGVyQW5kUGFkZGluZ0FmdGVyKCkgOiByZXBhaW50TG9naWNhbFRv
cDsKQEAgLTM2NTEsOCArMzY1MSw4IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpkZWxldGVMaW5l
Qm94ZXNCZWZvcmVTaW1wbGVMaW5lTGF5b3V0KCkKIHsKICAgICBBU1NFUlQobGluZUxheW91dFBh
dGgoKSA9PSBTaW1wbGVMaW5lc1BhdGgpOwogCi0gICAgaWYgKG1fY29tcGxleExpbmVMYXlvdXQp
Ci0gICAgICAgIG1fY29tcGxleExpbmVMYXlvdXQtPmxpbmVCb3hlcygpLmRlbGV0ZUxpbmVCb3hl
cygpOworICAgIGlmIChjb21wbGV4TGluZUxheW91dCgpKQorICAgICAgICBjb21wbGV4TGluZUxh
eW91dCgpLT5saW5lQm94ZXMoKS5kZWxldGVMaW5lQm94ZXMoKTsKIAogICAgIGZvciAoYXV0byYg
cmVuZGVyZXIgOiBjaGlsZHJlbk9mVHlwZTxSZW5kZXJPYmplY3Q+KCp0aGlzKSkgewogICAgICAg
ICBpZiAoaXM8UmVuZGVyVGV4dD4ocmVuZGVyZXIpKQpAQCAtMzY2Myw3ICszNjYzLDcgQEAgdm9p
ZCBSZW5kZXJCbG9ja0Zsb3c6OmRlbGV0ZUxpbmVCb3hlc0JlZm9yZVNpbXBsZUxpbmVMYXlvdXQo
KQogICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgfQogCi0gICAgbV9jb21w
bGV4TGluZUxheW91dCA9IG51bGxwdHI7CisgICAgbV9saW5lTGF5b3V0ID0gbnVsbHB0cjsKIH0K
IAogdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmVuc3VyZUxpbmVCb3hlcygpCkBAIC0zNjczLDE5ICsz
NjczLDE5IEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjplbnN1cmVMaW5lQm94ZXMoKQogCiAgICAg
c2V0TGluZUxheW91dFBhdGgoRm9yY2VMaW5lQm94ZXNQYXRoKTsKIAotICAgIGlmICghbV9zaW1w
bGVMaW5lTGF5b3V0KQorICAgIGlmICghc2ltcGxlTGluZUxheW91dCgpKQogICAgICAgICByZXR1
cm47CiAKLSAgICBBU1NFUlQoIW1fY29tcGxleExpbmVMYXlvdXQpOwotICAgIG1fY29tcGxleExp
bmVMYXlvdXQgPSBtYWtlVW5pcXVlPENvbXBsZXhMaW5lTGF5b3V0PigqdGhpcyk7CisgICAgYXV0
byBzaW1wbGVMaW5lTGF5b3V0ID0gbWFrZVJlZigqdGhpcy0+c2ltcGxlTGluZUxheW91dCgpKTsK
KworICAgIG1fbGluZUxheW91dCA9IG1ha2VVbmlxdWU8Q29tcGxleExpbmVMYXlvdXQ+KCp0aGlz
KTsKIAotICAgIGlmIChTaW1wbGVMaW5lTGF5b3V0OjpjYW5Vc2VGb3JMaW5lQm94VHJlZSgqdGhp
cywgKm1fc2ltcGxlTGluZUxheW91dCkpIHsKLSAgICAgICAgU2ltcGxlTGluZUxheW91dDo6Z2Vu
ZXJhdGVMaW5lQm94VHJlZSgqdGhpcywgKm1fc2ltcGxlTGluZUxheW91dCk7Ci0gICAgICAgIG1f
c2ltcGxlTGluZUxheW91dCA9IG51bGxwdHI7CisgICAgaWYgKFNpbXBsZUxpbmVMYXlvdXQ6OmNh
blVzZUZvckxpbmVCb3hUcmVlKCp0aGlzLCBzaW1wbGVMaW5lTGF5b3V0LmdldCgpKSkgeworICAg
ICAgICBTaW1wbGVMaW5lTGF5b3V0OjpnZW5lcmF0ZUxpbmVCb3hUcmVlKCp0aGlzLCBzaW1wbGVM
aW5lTGF5b3V0LmdldCgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBib29sIGlzUGFn
aW5hdGVkID0gbV9zaW1wbGVMaW5lTGF5b3V0LT5pc1BhZ2luYXRlZCgpOwotICAgIG1fc2ltcGxl
TGluZUxheW91dCA9IG51bGxwdHI7CisKKyAgICBhdXRvJiBjb21wbGV4TGluZUxheW91dCA9ICp0
aGlzLT5jb21wbGV4TGluZUxheW91dCgpOwogCiAjaWYgIUFTU0VSVF9ESVNBQkxFRAogICAgIExh
eW91dFVuaXQgb2xkSGVpZ2h0ID0gbG9naWNhbEhlaWdodCgpOwpAQCAtMzY5NSwxNiArMzY5NSwx
NiBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6ZW5zdXJlTGluZUJveGVzKCkKICAgICBib29sIHJl
bGF5b3V0Q2hpbGRyZW4gPSBmYWxzZTsKICAgICBMYXlvdXRVbml0IHJlcGFpbnRMb2dpY2FsVG9w
OwogICAgIExheW91dFVuaXQgcmVwYWludExvZ2ljYWxCb3R0b207Ci0gICAgaWYgKGlzUGFnaW5h
dGVkKSB7CisgICAgaWYgKHNpbXBsZUxpbmVMYXlvdXQtPmlzUGFnaW5hdGVkKCkpIHsKICAgICAg
ICAgUGFnaW5hdGVkTGF5b3V0U3RhdGVNYWludGFpbmVyIHN0YXRlKCp0aGlzKTsKLSAgICAgICAg
bV9jb21wbGV4TGluZUxheW91dC0+bGF5b3V0TGluZUJveGVzKHJlbGF5b3V0Q2hpbGRyZW4sIHJl
cGFpbnRMb2dpY2FsVG9wLCByZXBhaW50TG9naWNhbEJvdHRvbSk7CisgICAgICAgIGNvbXBsZXhM
aW5lTGF5b3V0LmxheW91dExpbmVCb3hlcyhyZWxheW91dENoaWxkcmVuLCByZXBhaW50TG9naWNh
bFRvcCwgcmVwYWludExvZ2ljYWxCb3R0b20pOwogICAgICAgICAvLyBUaGlzIG1hdGNoZXMgcmVs
YXlvdXRUb0F2b2lkV2lkb3dzLgogICAgICAgICBpZiAoc2hvdWxkQnJlYWtBdExpbmVUb0F2b2lk
V2lkb3coKSkKLSAgICAgICAgICAgIG1fY29tcGxleExpbmVMYXlvdXQtPmxheW91dExpbmVCb3hl
cyhyZWxheW91dENoaWxkcmVuLCByZXBhaW50TG9naWNhbFRvcCwgcmVwYWludExvZ2ljYWxCb3R0
b20pOworICAgICAgICAgICAgY29tcGxleExpbmVMYXlvdXQubGF5b3V0TGluZUJveGVzKHJlbGF5
b3V0Q2hpbGRyZW4sIHJlcGFpbnRMb2dpY2FsVG9wLCByZXBhaW50TG9naWNhbEJvdHRvbSk7CiAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIGlzIG5lZWRlZCBhcyBsb25nIGFzIHNpbXBsZSBhbmQgbm9y
bWFsIGxpbmUgbGF5b3V0IHByb2R1Y2UgZGlmZmVyZW50IGxpbmUgYnJlYWtpbmdzLgogICAgICAg
ICByZXBhaW50KCk7CiAgICAgfSBlbHNlCi0gICAgICAgIG1fY29tcGxleExpbmVMYXlvdXQtPmxh
eW91dExpbmVCb3hlcyhyZWxheW91dENoaWxkcmVuLCByZXBhaW50TG9naWNhbFRvcCwgcmVwYWlu
dExvZ2ljYWxCb3R0b20pOworICAgICAgICBjb21wbGV4TGluZUxheW91dC5sYXlvdXRMaW5lQm94
ZXMocmVsYXlvdXRDaGlsZHJlbiwgcmVwYWludExvZ2ljYWxUb3AsIHJlcGFpbnRMb2dpY2FsQm90
dG9tKTsKIAogICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKICAgICBBU1NFUlQoZGlkTmVlZExh
eW91dCB8fCBsb2dpY2FsSGVpZ2h0KCkgPT0gb2xkSGVpZ2h0KTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaAppbmRleCA2OTZlODBkYzcxYi4uOTg3ZWRmMGY0ZTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKQEAgLTcyLDgg
KzcyLDggQEAgcHJvdGVjdGVkOgogCiAgICAgdm9pZCBkaXJ0eUxpbmVzRnJvbUNoYW5nZWRDaGls
ZChSZW5kZXJPYmplY3QmIGNoaWxkKSBmaW5hbAogICAgIHsKLSAgICAgICAgaWYgKG1fY29tcGxl
eExpbmVMYXlvdXQpCi0gICAgICAgICAgICBtX2NvbXBsZXhMaW5lTGF5b3V0LT5saW5lQm94ZXMo
KS5kaXJ0eUxpbmVzRnJvbUNoYW5nZWRDaGlsZCgqdGhpcywgY2hpbGQpOworICAgICAgICBpZiAo
Y29tcGxleExpbmVMYXlvdXQoKSkKKyAgICAgICAgICAgIGNvbXBsZXhMaW5lTGF5b3V0KCktPmxp
bmVCb3hlcygpLmRpcnR5TGluZXNGcm9tQ2hhbmdlZENoaWxkKCp0aGlzLCBjaGlsZCk7CiAgICAg
fQogCiAgICAgdm9pZCBwYWludENvbHVtblJ1bGVzKFBhaW50SW5mbyYsIGNvbnN0IExheW91dFBv
aW50Jikgb3ZlcnJpZGU7CkBAIC0zMzIsOCArMzMyLDggQEAgcHVibGljOgogCiAgICAgTGF5b3V0
UG9pbnQgZmxpcEZsb2F0Rm9yV3JpdGluZ01vZGVGb3JDaGlsZChjb25zdCBGbG9hdGluZ09iamVj
dCYsIGNvbnN0IExheW91dFBvaW50JikgY29uc3Q7CiAKLSAgICBSb290SW5saW5lQm94KiBmaXJz
dFJvb3RCb3goKSBjb25zdCB7IHJldHVybiBtX2NvbXBsZXhMaW5lTGF5b3V0ID8gbV9jb21wbGV4
TGluZUxheW91dC0+Zmlyc3RSb290Qm94KCkgOiBudWxscHRyOyB9Ci0gICAgUm9vdElubGluZUJv
eCogbGFzdFJvb3RCb3goKSBjb25zdCB7IHJldHVybiBtX2NvbXBsZXhMaW5lTGF5b3V0ID8gbV9j
b21wbGV4TGluZUxheW91dC0+bGFzdFJvb3RCb3goKSA6IG51bGxwdHI7IH0KKyAgICBSb290SW5s
aW5lQm94KiBmaXJzdFJvb3RCb3goKSBjb25zdCB7IHJldHVybiBjb21wbGV4TGluZUxheW91dCgp
ID8gY29tcGxleExpbmVMYXlvdXQoKS0+Zmlyc3RSb290Qm94KCkgOiBudWxscHRyOyB9CisgICAg
Um9vdElubGluZUJveCogbGFzdFJvb3RCb3goKSBjb25zdCB7IHJldHVybiBjb21wbGV4TGluZUxh
eW91dCgpID8gY29tcGxleExpbmVMYXlvdXQoKS0+bGFzdFJvb3RCb3goKSA6IG51bGxwdHI7IH0K
IAogICAgIGJvb2wgaGFzTGluZXMoKSBjb25zdDsKICAgICB2b2lkIGludmFsaWRhdGVMaW5lTGF5
b3V0UGF0aCgpIGZpbmFsOwpAQCAtMzU0LDYgKzM1NCwxMCBAQCBwdWJsaWM6CiAgICAgYm9vbCBj
b250YWluc05vblplcm9CaWRpTGV2ZWwoKSBjb25zdDsKIAogICAgIGNvbnN0IFNpbXBsZUxpbmVM
YXlvdXQ6OkxheW91dCogc2ltcGxlTGluZUxheW91dCgpIGNvbnN0OworICAgIFNpbXBsZUxpbmVM
YXlvdXQ6OkxheW91dCogc2ltcGxlTGluZUxheW91dCgpOworICAgIGNvbnN0IENvbXBsZXhMaW5l
TGF5b3V0KiBjb21wbGV4TGluZUxheW91dCgpIGNvbnN0OworICAgIENvbXBsZXhMaW5lTGF5b3V0
KiBjb21wbGV4TGluZUxheW91dCgpOworCiAgICAgdm9pZCBkZWxldGVMaW5lQm94ZXNCZWZvcmVT
aW1wbGVMaW5lTGF5b3V0KCk7CiAgICAgdm9pZCBlbnN1cmVMaW5lQm94ZXMoKTsKICAgICB2b2lk
IGdlbmVyYXRlTGluZUJveFRyZWUoKTsKQEAgLTUyMywxMiArNTI3LDEzIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBhZGRGb2N1c1JpbmdSZWN0c0ZvcklubGluZUNoaWxkcmVuKFZlY3RvcjxMYXlvdXRS
ZWN0PiYgcmVjdHMsIGNvbnN0IExheW91dFBvaW50JiBhZGRpdGlvbmFsT2Zmc2V0LCBjb25zdCBS
ZW5kZXJMYXllck1vZGVsT2JqZWN0Kikgb3ZlcnJpZGU7CiAKIHB1YmxpYzoKLSAgICBDb21wbGV4
TGluZUxheW91dCogY29tcGxleExpbmVMYXlvdXQoKSB7IHJldHVybiBtX2NvbXBsZXhMaW5lTGF5
b3V0LmdldCgpOyB9Ci0KICAgICB2aXJ0dWFsIE9wdGlvbmFsPFRleHRBbGlnbk1vZGU+IG92ZXJy
aWRlVGV4dEFsaWdubWVudEZvckxpbmUoYm9vbCAvKiBlbmRzV2l0aFNvZnRCcmVhayAqLykgY29u
c3QgeyByZXR1cm4geyB9OyB9CiAgICAgdmlydHVhbCB2b2lkIGFkanVzdElubGluZURpcmVjdGlv
bkxpbmVCb3VuZHMoaW50IC8qIGV4cGFuc2lvbk9wcG9ydHVuaXR5Q291bnQgKi8sIGZsb2F0JiAv
KiBsb2dpY2FsTGVmdCAqLywgZmxvYXQmIC8qIGxvZ2ljYWxXaWR0aCAqLykgY29uc3QgeyB9CiAK
IHByaXZhdGU6CisgICAgYm9vbCBoYXNTaW1wbGVMaW5lTGF5b3V0KCkgY29uc3Q7CisgICAgYm9v
bCBoYXNDb21wbGV4TGluZUxheW91dCgpIGNvbnN0OworCiAgICAgdm9pZCBsYXlvdXRTaW1wbGVM
aW5lcyhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQmIHJlcGFpbnRMb2dpY2FsVG9w
LCBMYXlvdXRVbml0JiByZXBhaW50TG9naWNhbEJvdHRvbSk7CiAKICAgICB2b2lkIGFkanVzdElu
dHJpbnNpY0xvZ2ljYWxXaWR0aHNGb3JDb2x1bW5zKExheW91dFVuaXQmIG1pbkxvZ2ljYWxXaWR0
aCwgTGF5b3V0VW5pdCYgbWF4TG9naWNhbFdpZHRoKSBjb25zdDsKQEAgLTU2NywxOSArNTcyLDQy
IEBAIHByb3RlY3RlZDoKICAgICBzdGQ6OnVuaXF1ZV9wdHI8RmxvYXRpbmdPYmplY3RzPiBtX2Zs
b2F0aW5nT2JqZWN0czsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyQmxvY2tGbG93UmFyZURh
dGE+IG1fcmFyZUJsb2NrRmxvd0RhdGE7CiAKLSAgICAvLyBGSVhNRTogT25seSBvbmUgb2YgdGhl
c2Ugc2hvdWxkIGJlIG5lZWRlZCBhdCBhbnkgZ2l2ZW4gdGltZS4KLSAgICBzdGQ6OnVuaXF1ZV9w
dHI8Q29tcGxleExpbmVMYXlvdXQ+IG1fY29tcGxleExpbmVMYXlvdXQ7Ci0gICAgUmVmUHRyPFNp
bXBsZUxpbmVMYXlvdXQ6OkxheW91dD4gbV9zaW1wbGVMaW5lTGF5b3V0OworcHJpdmF0ZToKKyAg
ICBWYXJpYW50PHN0ZDo6bnVsbHB0cl90LCBzdGQ6OnVuaXF1ZV9wdHI8Q29tcGxleExpbmVMYXlv
dXQ+LCBSZWY8U2ltcGxlTGluZUxheW91dDo6TGF5b3V0Pj4gbV9saW5lTGF5b3V0OwogCiAgICAg
ZnJpZW5kIGNsYXNzIExpbmVCcmVha2VyOwogICAgIGZyaWVuZCBjbGFzcyBMaW5lV2lkdGg7IC8v
IE5lZWRzIHRvIGtub3cgRmxvYXRpbmdPYmplY3QKICAgICBmcmllbmQgY2xhc3MgQ29tcGxleExp
bmVMYXlvdXQ7CiB9OwogCitpbmxpbmUgYm9vbCBSZW5kZXJCbG9ja0Zsb3c6Omhhc0NvbXBsZXhM
aW5lTGF5b3V0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxz
dGQ6OnVuaXF1ZV9wdHI8Q29tcGxleExpbmVMYXlvdXQ+PihtX2xpbmVMYXlvdXQpOworfQorCitp
bmxpbmUgY29uc3QgQ29tcGxleExpbmVMYXlvdXQqIFJlbmRlckJsb2NrRmxvdzo6Y29tcGxleExp
bmVMYXlvdXQoKSBjb25zdAoreworICAgIHJldHVybiBoYXNDb21wbGV4TGluZUxheW91dCgpID8g
V1RGOjpnZXQ8c3RkOjp1bmlxdWVfcHRyPENvbXBsZXhMaW5lTGF5b3V0Pj4obV9saW5lTGF5b3V0
KS5nZXQoKSA6IG51bGxwdHI7Cit9CisKK2lubGluZSBDb21wbGV4TGluZUxheW91dCogUmVuZGVy
QmxvY2tGbG93Ojpjb21wbGV4TGluZUxheW91dCgpCit7CisgICAgcmV0dXJuIGhhc0NvbXBsZXhM
aW5lTGF5b3V0KCkgPyBXVEY6OmdldDxzdGQ6OnVuaXF1ZV9wdHI8Q29tcGxleExpbmVMYXlvdXQ+
PihtX2xpbmVMYXlvdXQpLmdldCgpIDogbnVsbHB0cjsKK30KKworaW5saW5lIGJvb2wgUmVuZGVy
QmxvY2tGbG93OjpoYXNTaW1wbGVMaW5lTGF5b3V0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gV1RG
Ojpob2xkc19hbHRlcm5hdGl2ZTxSZWY8U2ltcGxlTGluZUxheW91dDo6TGF5b3V0Pj4obV9saW5l
TGF5b3V0KTsKK30KKwogaW5saW5lIGNvbnN0IFNpbXBsZUxpbmVMYXlvdXQ6OkxheW91dCogUmVu
ZGVyQmxvY2tGbG93OjpzaW1wbGVMaW5lTGF5b3V0KCkgY29uc3QKIHsKLSAgICBBU1NFUlQobGlu
ZUxheW91dFBhdGgoKSA9PSBTaW1wbGVMaW5lc1BhdGggfHwgIW1fc2ltcGxlTGluZUxheW91dCk7
Ci0gICAgcmV0dXJuIG1fc2ltcGxlTGluZUxheW91dC5nZXQoKTsKKyAgICByZXR1cm4gaGFzU2lt
cGxlTGluZUxheW91dCgpID8gV1RGOjpnZXQ8UmVmPFNpbXBsZUxpbmVMYXlvdXQ6OkxheW91dD4+
KG1fbGluZUxheW91dCkucHRyKCkgOiBudWxscHRyOworfQorCitpbmxpbmUgU2ltcGxlTGluZUxh
eW91dDo6TGF5b3V0KiBSZW5kZXJCbG9ja0Zsb3c6OnNpbXBsZUxpbmVMYXlvdXQoKQoreworICAg
IHJldHVybiBoYXNTaW1wbGVMaW5lTGF5b3V0KCkgPyBXVEY6OmdldDxSZWY8U2ltcGxlTGluZUxh
eW91dDo6TGF5b3V0Pj4obV9saW5lTGF5b3V0KS5wdHIoKSA6IG51bGxwdHI7CiB9CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>