<?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>208625</bug_id>
          
          <creation_ts>2020-03-04 22:00:16 -0800</creation_ts>
          <short_desc>Make m_viewportConstrainedObjects into a WeakHashSet</short_desc>
          <delta_ts>2020-03-05 11:45:16 -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>New Bugs</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="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>jamesr</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>pdr</cc>
    
    <cc>rniwa</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1625942</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-04 22:00:16 -0800</bug_when>
    <thetext>Make m_viewportConstrainedObjects into a WeakHashSet</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625943</commentid>
    <comment_count>1</comment_count>
      <attachid>392535</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-04 22:00:45 -0800</bug_when>
    <thetext>Created attachment 392535
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1625945</commentid>
    <comment_count>2</comment_count>
      <attachid>392535</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2020-03-04 22:05:27 -0800</bug_when>
    <thetext>Comment on attachment 392535
Patch

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

&gt; Source/WebCore/page/FrameView.h:301
&gt; -    bool hasViewportConstrainedObjects() const { return m_viewportConstrainedObjects &amp;&amp; m_viewportConstrainedObjects-&gt;size() &gt; 0; }
&gt; +    bool hasViewportConstrainedObjects() const { return m_viewportConstrainedObjects &amp;&amp; m_viewportConstrainedObjects-&gt;computeSize(); }

Use !m_viewportConstrainedObjects-&gt;computeEmpty() instead. computeSize() will iterate over the entire map.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626103</commentid>
    <comment_count>3</comment_count>
      <attachid>392580</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-05 09:08:59 -0800</bug_when>
    <thetext>Created attachment 392580
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626105</commentid>
    <comment_count>4</comment_count>
      <attachid>392580</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2020-03-05 09:11:38 -0800</bug_when>
    <thetext>Comment on attachment 392580
Patch

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

&gt; Source/WebCore/page/FrameView.h:299
&gt; +    typedef WeakHashSet&lt;RenderLayerModelObject&gt; ViewportConstrainedObjectSet;

using ViewportConstrainedObjectSet = WeakHashSet&lt;RenderLayerModelObject&gt;;
reads better though I&apos;m not sure this is needed in the first place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626117</commentid>
    <comment_count>5</comment_count>
      <attachid>392583</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-03-05 09:19:04 -0800</bug_when>
    <thetext>Created attachment 392583
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626213</commentid>
    <comment_count>6</comment_count>
      <attachid>392583</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2020-03-05 11:06:24 -0800</bug_when>
    <thetext>Comment on attachment 392583
Patch

Clearing flags on attachment: 392583

Committed r257933: &lt;https://trac.webkit.org/changeset/257933&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1626226</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-03-05 11:45:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/60093382&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392535</attachid>
            <date>2020-03-04 22:00:45 -0800</date>
            <delta_ts>2020-03-05 09:08:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208625-20200304220045.patch</filename>
            <type>text/plain</type>
            <size>10765</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3ODIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmEzNGI4NjlmNjFmMTJh
NTZhMmMyOWM0ZWIyODk1M2Y3YzcxZjhkYy4uNDI2YzZkNTcwMDE5ZThiNmYzOTUyNDM2MGFkYzJh
MWYxZDM1NDFmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAzLTA0ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgbV92aWV3
cG9ydENvbnN0cmFpbmVkT2JqZWN0cyBpbnRvIGEgV2Vha0hhc2hTZXQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODYyNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSBXZWFrSGFzaFNldDw+IGZvciBt
X3ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzLgorCisgICAgICAgICogcGFnZS9GcmFtZVZpZXcu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpkaWREZXN0cm95UmVuZGVyVHJlZSk6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OmFkZFZpZXdwb3J0Q29uc3RyYWluZWRPYmpl
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpyZW1vdmVWaWV3cG9ydENvbnN0cmFp
bmVkT2JqZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6c2Nyb2xsQ29udGVudHNG
YXN0UGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNldFZpZXdwb3J0Q29uc3Ry
YWluZWRPYmplY3RzTmVlZExheW91dCk6CisgICAgICAgICogcGFnZS9GcmFtZVZpZXcuaDoKKyAg
ICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTY3JvbGxpbmdDb29yZGluYXRvcjo6aGFzVmlzaWJsZVNsb3dSZXBhaW50Vmll
d3BvcnRDb25zdHJhaW5lZE9iamVjdHMgY29uc3QpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllckNvbXBvc2l0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJDb21w
b3NpdG9yOjp1cGRhdGVDb21wb3NpdGluZ0xheWVycyk6CisgICAgICAgICogcmVuZGVyaW5nL1Jl
bmRlckxheWVyTW9kZWxPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGF5ZXJN
b2RlbE9iamVjdDo6d2lsbEJlRGVzdHJveWVkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxh
eWVyTW9kZWxPYmplY3Q6OnN0eWxlRGlkQ2hhbmdlKToKKwogMjAyMC0wMy0wMyAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBQYXRoOjptX3BhdGggc2hv
dWxkIGJlIGEgUmV0YWluUHRyPENHTXV0YWJsZVBhdGhSZWY+IG9uIHBsYXRmb3JtcyB0aGF0IHVz
ZSBDb3JlR3JhcGhpY3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCA3OWQ0ZDJlN2U1
NGFmOTBjMDQ1MzU4MzU3NDQxY2MxMGZhMmMxYmIzLi5lZjA0M2QwODFlMzI4OThjZmYxOWNmMTll
YzkxZjU1YzBhNzY5OTgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC01ODksNyAr
NTg5LDcgQEAgdm9pZCBGcmFtZVZpZXc6OmRpZERlc3Ryb3lSZW5kZXJUcmVlKCkKICAgICAvLyBF
dmVyeXRoaW5nIGVsc2Ugc2hvdWxkIGhhdmUgcmVtb3ZlZCBpdHNlbGYgYXMgdGhlIHRyZWUgd2Fz
IGZlbGxlZC4KICAgICBBU1NFUlQoIW1fZW1iZWRkZWRPYmplY3RzVG9VcGRhdGUgfHwgbV9lbWJl
ZGRlZE9iamVjdHNUb1VwZGF0ZS0+aXNFbXB0eSgpIHx8IChtX2VtYmVkZGVkT2JqZWN0c1RvVXBk
YXRlLT5zaXplKCkgPT0gMSAmJiBtX2VtYmVkZGVkT2JqZWN0c1RvVXBkYXRlLT5maXJzdCgpID09
IG51bGxwdHIpKTsKIAotICAgIEFTU0VSVCghbV92aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cyB8
fCBtX3ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzLT5pc0VtcHR5KCkpOworICAgIEFTU0VSVCgh
bV92aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cyB8fCBtX3ZpZXdwb3J0Q29uc3RyYWluZWRPYmpl
Y3RzLT5jb21wdXRlc0VtcHR5KCkpOwogICAgIEFTU0VSVCghbV9zbG93UmVwYWludE9iamVjdHMg
fHwgbV9zbG93UmVwYWludE9iamVjdHMtPmlzRW1wdHkoKSk7CiAKICAgICBBU1NFUlQoIWZyYW1l
KCkuYW5pbWF0aW9uKCkuaGFzQW5pbWF0aW9ucygpKTsKQEAgLTE1MTcsNyArMTUxNyw3IEBAIHZv
aWQgRnJhbWVWaWV3OjpyZW1vdmVTbG93UmVwYWludE9iamVjdChSZW5kZXJFbGVtZW50JiByZW5k
ZXJlcikKICAgICB9CiB9CiAKLXZvaWQgRnJhbWVWaWV3OjphZGRWaWV3cG9ydENvbnN0cmFpbmVk
T2JqZWN0KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIG9iamVjdCkKK3ZvaWQgRnJhbWVWaWV3Ojph
ZGRWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0KFJlbmRlckxheWVyTW9kZWxPYmplY3QmIG9iamVj
dCkKIHsKICAgICBpZiAoIW1fdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMpCiAgICAgICAgIG1f
dmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMgPSBtYWtlVW5pcXVlPFZpZXdwb3J0Q29uc3RyYWlu
ZWRPYmplY3RTZXQ+KCk7CkBAIC0xNTM0LDcgKzE1MzQsNyBAQCB2b2lkIEZyYW1lVmlldzo6YWRk
Vmlld3BvcnRDb25zdHJhaW5lZE9iamVjdChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBvYmplY3Qp
CiAgICAgfQogfQogCi12b2lkIEZyYW1lVmlldzo6cmVtb3ZlVmlld3BvcnRDb25zdHJhaW5lZE9i
amVjdChSZW5kZXJMYXllck1vZGVsT2JqZWN0KiBvYmplY3QpCit2b2lkIEZyYW1lVmlldzo6cmVt
b3ZlVmlld3BvcnRDb25zdHJhaW5lZE9iamVjdChSZW5kZXJMYXllck1vZGVsT2JqZWN0JiBvYmpl
Y3QpCiB7CiAgICAgaWYgKG1fdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMgJiYgbV92aWV3cG9y
dENvbnN0cmFpbmVkT2JqZWN0cy0+cmVtb3ZlKG9iamVjdCkpIHsKICAgICAgICAgaWYgKFBhZ2Uq
IHBhZ2UgPSBmcmFtZSgpLnBhZ2UoKSkgewpAQCAtMjA3Myw3ICsyMDczLDcgQEAgT3B0aW9uU2V0
PFN0eWxlQ29sb3I6Ok9wdGlvbnM+IEZyYW1lVmlldzo6c3R5bGVDb2xvck9wdGlvbnMoKSBjb25z
dAogCiBib29sIEZyYW1lVmlldzo6c2Nyb2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXpl
JiBzY3JvbGxEZWx0YSwgY29uc3QgSW50UmVjdCYgcmVjdFRvU2Nyb2xsLCBjb25zdCBJbnRSZWN0
JiBjbGlwUmVjdCkKIHsKLSAgICBpZiAoIW1fdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMgfHwg
bV92aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cy0+aXNFbXB0eSgpKSB7CisgICAgaWYgKCFtX3Zp
ZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzIHx8IG1fdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMt
PmNvbXB1dGVzRW1wdHkoKSkgewogICAgICAgICBmcmFtZSgpLnBhZ2UoKS0+Y2hyb21lKCkuc2Ny
b2xsKHNjcm9sbERlbHRhLCByZWN0VG9TY3JvbGwsIGNsaXBSZWN0KTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQpAQCAtMjA4MywxNCArMjA4MywxNCBAQCBib29sIEZyYW1lVmlldzo6c2Ny
b2xsQ29udGVudHNGYXN0UGF0aChjb25zdCBJbnRTaXplJiBzY3JvbGxEZWx0YSwgY29uc3QgSW50
UmVjdAogICAgIC8vIEdldCB0aGUgcmVjdHMgb2YgdGhlIGZpeGVkIG9iamVjdHMgdmlzaWJsZSBp
biB0aGUgcmVjdFRvU2Nyb2xsCiAgICAgUmVnaW9uIHJlZ2lvblRvVXBkYXRlOwogICAgIGZvciAo
YXV0byYgcmVuZGVyZXIgOiAqbV92aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cykgewotICAgICAg
ICBpZiAoIXJlbmRlcmVyLT5zdHlsZSgpLmhhc1ZpZXdwb3J0Q29uc3RyYWluZWRQb3NpdGlvbigp
KQorICAgICAgICBpZiAoIXJlbmRlcmVyLnN0eWxlKCkuaGFzVmlld3BvcnRDb25zdHJhaW5lZFBv
c2l0aW9uKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKHJlbmRlcmVyLT5p
c0NvbXBvc2l0ZWQoKSkKKyAgICAgICAgaWYgKHJlbmRlcmVyLmlzQ29tcG9zaXRlZCgpKQogICAg
ICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgLy8gRml4ZWQgaXRlbXMgc2hvdWxkIGFsd2F5
cyBoYXZlIGxheWVycy4KLSAgICAgICAgQVNTRVJUKHJlbmRlcmVyLT5oYXNMYXllcigpKTsKLSAg
ICAgICAgUmVuZGVyTGF5ZXIqIGxheWVyID0gZG93bmNhc3Q8UmVuZGVyQm94TW9kZWxPYmplY3Q+
KCpyZW5kZXJlcikubGF5ZXIoKTsKKyAgICAgICAgQVNTRVJUKHJlbmRlcmVyLmhhc0xheWVyKCkp
OworICAgICAgICBSZW5kZXJMYXllciogbGF5ZXIgPSBkb3duY2FzdDxSZW5kZXJCb3hNb2RlbE9i
amVjdD4ocmVuZGVyZXIpLmxheWVyKCk7CiAKICAgICAgICAgaWYgKGxheWVyLT52aWV3cG9ydENv
bnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbigpID09IFJlbmRlckxheWVyOjpOb3RDb21wb3Np
dGVkRm9yQm91bmRzT3V0T2ZWaWV3CiAgICAgICAgICAgICB8fCBsYXllci0+dmlld3BvcnRDb25z
dHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24oKSA9PSBSZW5kZXJMYXllcjo6Tm90Q29tcG9zaXRl
ZEZvck5vVmlzaWJsZUNvbnRlbnQpIHsKQEAgLTI0MzksOSArMjQzOSw5IEBAIHZvaWQgRnJhbWVW
aWV3OjpzZXRWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0c05lZWRMYXlvdXQoKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBmb3IgKGF1dG8mIHJlbmRlcmVyIDogKm1fdmlld3BvcnRDb25zdHJhaW5l
ZE9iamVjdHMpIHsKLSAgICAgICAgcmVuZGVyZXItPnNldE5lZWRzTGF5b3V0KCk7Ci0gICAgICAg
IGlmIChyZW5kZXJlci0+aGFzTGF5ZXIoKSkgewotICAgICAgICAgICAgYXV0byogbGF5ZXIgPSBk
b3duY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4oKnJlbmRlcmVyKS5sYXllcigpOworICAgICAg
ICByZW5kZXJlci5zZXROZWVkc0xheW91dCgpOworICAgICAgICBpZiAocmVuZGVyZXIuaGFzTGF5
ZXIoKSkgeworICAgICAgICAgICAgYXV0byogbGF5ZXIgPSBkb3duY2FzdDxSZW5kZXJCb3hNb2Rl
bE9iamVjdD4ocmVuZGVyZXIpLmxheWVyKCk7CiAgICAgICAgICAgICBsYXllci0+c2V0TmVlZHND
b21wb3NpdGluZ0dlb21ldHJ5VXBkYXRlKCk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXcuaAppbmRleCAyYzUwY2JmZTMyMDJjMzZhN2U0YjQxYzM1ZTkwOGFkNzA1ODFmMzMy
Li43OTEyZGEyZWY4MWJmMzMwZTM4ZDA4ZGZkZWM2ZGVjYzEwZmZlMDEzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWVWaWV3LmgKQEAgLTQ0LDYgKzQ0LDcgQEAKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+
CiAjaW5jbHVkZSA8d3RmL0xpc3RIYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL09wdGlvblNldC5o
PgorI2luY2x1ZGUgPHd0Zi9XZWFrSGFzaFNldC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0
cmluZy5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0yOTMsMTEgKzI5NCwxMSBAQCBwdWJs
aWM6CiAgICAgYm9vbCBoYXNTbG93UmVwYWludE9iamVjdHMoKSBjb25zdCB7IHJldHVybiBtX3Ns
b3dSZXBhaW50T2JqZWN0cyAmJiBtX3Nsb3dSZXBhaW50T2JqZWN0cy0+c2l6ZSgpOyB9CiAKICAg
ICAvLyBJbmNsdWRlcyBmaXhlZC0gYW5kIHN0aWNreS1wb3NpdGlvbiBvYmplY3RzLgotICAgIHR5
cGVkZWYgSGFzaFNldDxSZW5kZXJMYXllck1vZGVsT2JqZWN0Kj4gVmlld3BvcnRDb25zdHJhaW5l
ZE9iamVjdFNldDsKLSAgICB2b2lkIGFkZFZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3QoUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCopOwotICAgIHZvaWQgcmVtb3ZlVmlld3BvcnRDb25zdHJhaW5lZE9i
amVjdChSZW5kZXJMYXllck1vZGVsT2JqZWN0Kik7CisgICAgdHlwZWRlZiBXZWFrSGFzaFNldDxS
ZW5kZXJMYXllck1vZGVsT2JqZWN0PiBWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0U2V0OworICAg
IHZvaWQgYWRkVmlld3BvcnRDb25zdHJhaW5lZE9iamVjdChSZW5kZXJMYXllck1vZGVsT2JqZWN0
Jik7CisgICAgdm9pZCByZW1vdmVWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0KFJlbmRlckxheWVy
TW9kZWxPYmplY3QmKTsKICAgICBjb25zdCBWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0U2V0KiB2
aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cygpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRDb25z
dHJhaW5lZE9iamVjdHMuZ2V0KCk7IH0KLSAgICBib29sIGhhc1ZpZXdwb3J0Q29uc3RyYWluZWRP
YmplY3RzKCkgY29uc3QgeyByZXR1cm4gbV92aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cyAmJiBt
X3ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzLT5zaXplKCkgPiAwOyB9CisgICAgYm9vbCBoYXNW
aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cygpIGNvbnN0IHsgcmV0dXJuIG1fdmlld3BvcnRDb25z
dHJhaW5lZE9iamVjdHMgJiYgbV92aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cy0+Y29tcHV0ZVNp
emUoKTsgfQogICAgIAogICAgIGZsb2F0IGZyYW1lU2NhbGVGYWN0b3IoKSBjb25zdDsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0
b3IuY3BwCmluZGV4IGE3MGI4ZTZjNDM2ZDE1YTc3OWE3NjhkZTM2ODJjOGNmNzk2MjM1YzkuLjVi
OTZiZDU5OWY0NWJhNTA0YmU0YzQ4YThhYTFhOWZhNmMzMjU4Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKQEAg
LTMxMiwxNCArMzEyLDE0IEBAIHZvaWQgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6OmhhbmRsZVdoZWVs
RXZlbnRQaGFzZShQbGF0Zm9ybVdoZWVsRXZlbnRQaGFzZSBwaGFzZSkKIAogYm9vbCBTY3JvbGxp
bmdDb29yZGluYXRvcjo6aGFzVmlzaWJsZVNsb3dSZXBhaW50Vmlld3BvcnRDb25zdHJhaW5lZE9i
amVjdHMoY29uc3QgRnJhbWVWaWV3JiBmcmFtZVZpZXcpIGNvbnN0CiB7Ci0gICAgY29uc3QgRnJh
bWVWaWV3OjpWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0U2V0KiB2aWV3cG9ydENvbnN0cmFpbmVk
T2JqZWN0cyA9IGZyYW1lVmlldy52aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cygpOworICAgIGF1
dG8qIHZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzID0gZnJhbWVWaWV3LnZpZXdwb3J0Q29uc3Ry
YWluZWRPYmplY3RzKCk7CiAgICAgaWYgKCF2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cykKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZm9yIChhdXRvJiB2aWV3cG9ydENvbnN0cmFpbmVk
T2JqZWN0IDogKnZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKSB7Ci0gICAgICAgIGlmICghaXM8
UmVuZGVyQm94TW9kZWxPYmplY3Q+KCp2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0KSB8fCAhdmll
d3BvcnRDb25zdHJhaW5lZE9iamVjdC0+aGFzTGF5ZXIoKSkKKyAgICAgICAgaWYgKCFpczxSZW5k
ZXJCb3hNb2RlbE9iamVjdD4odmlld3BvcnRDb25zdHJhaW5lZE9iamVjdCkgfHwgIXZpZXdwb3J0
Q29uc3RyYWluZWRPYmplY3QuaGFzTGF5ZXIoKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICBhdXRvJiBsYXllciA9ICpkb3duY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4oKnZp
ZXdwb3J0Q29uc3RyYWluZWRPYmplY3QpLmxheWVyKCk7CisgICAgICAgIGF1dG8mIGxheWVyID0g
KmRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0Pih2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0
KS5sYXllcigpOwogICAgICAgICAvLyBBbnkgZXhwbGljaXQgcmVhc29uIHRoYXQgYSBmaXhlZCBw
b3NpdGlvbiBlbGVtZW50IGlzIG5vdCBjb21wb3NpdGVkIHNob3VsZG4ndCBjYXVzZSBzbG93IHNj
cm9sbGluZy4KICAgICAgICAgaWYgKCFsYXllci5pc0NvbXBvc2l0ZWQoKSAmJiBsYXllci52aWV3
cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbigpID09IFJlbmRlckxheWVyOjpOb05v
dENvbXBvc2l0ZWRSZWFzb24pCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKaW5kZXggZGY5
ZjAyODY0NDRjZjhiZjQ1MWE2MzJmZDY3YjI5YThlMTE0MzdmNy4uZWYwMWM4Mjk4OTljOWQ4ODY5
YmE1NGU3MDkyNjg5ZTQ4NTgwNTkxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyQ29tcG9zaXRvci5jcHAKQEAgLTcxOSw4ICs3MTksOCBAQCBib29sIFJl
bmRlckxheWVyQ29tcG9zaXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMoQ29tcG9zaXRpbmdV
cGRhdGVUeXBlIHVwZGF0ZQogICAgICAgICAvLyBXZSBvbmx5IGdldCBoZXJlIGlmIHdlIGRpZG4n
dCBzY3JvbGwgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQsIHNvIHRoaXMgdXBkYXRlIG5lZWRzIHRv
IHJlLXBvc2l0aW9uIHZpZXdwb3J0LWNvbnN0cmFpbmVkIGxheWVycy4KICAgICAgICAgaWYgKG1f
cmVuZGVyVmlldy5zZXR0aW5ncygpLmFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0
aW9uRW5hYmxlZCgpICYmIGlzUGFnZVNjcm9sbCkgewogICAgICAgICAgICAgaWYgKGF1dG8qIHZp
ZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzID0gbV9yZW5kZXJWaWV3LmZyYW1lVmlldygpLnZpZXdw
b3J0Q29uc3RyYWluZWRPYmplY3RzKCkpIHsKLSAgICAgICAgICAgICAgICBmb3IgKGF1dG8qIHJl
bmRlcmVyIDogKnZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGlmIChhdXRvKiBsYXllciA9IHJlbmRlcmVyLT5sYXllcigpKQorICAgICAgICAgICAgICAg
IGZvciAoYXV0byYgcmVuZGVyZXIgOiAqdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMpIHsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKGF1dG8qIGxheWVyID0gcmVuZGVyZXIubGF5ZXIoKSkKICAg
ICAgICAgICAgICAgICAgICAgICAgIGxheWVyLT5zZXROZWVkc0NvbXBvc2l0aW5nR2VvbWV0cnlV
cGRhdGUoKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKaW5kZXggNmU2
OGY2MjMxYjdiZDJkNzJkMmY4YmRhZjgzM2NmY2ExYzRmODBiZS4uMTg5ZmI0ZjUyODBkYWExNjVj
ZmVlZDkyMTZkYTZjNzk5MmRmZWI5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcApAQCAtNzAsNyArNzAsNyBAQCB2b2lkIFJl
bmRlckxheWVyTW9kZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCgpCiB7CiAgICAgaWYgKGlzUG9z
aXRpb25lZCgpKSB7CiAgICAgICAgIGlmIChzdHlsZSgpLmhhc1ZpZXdwb3J0Q29uc3RyYWluZWRQ
b3NpdGlvbigpKQotICAgICAgICAgICAgdmlldygpLmZyYW1lVmlldygpLnJlbW92ZVZpZXdwb3J0
Q29uc3RyYWluZWRPYmplY3QodGhpcyk7CisgICAgICAgICAgICB2aWV3KCkuZnJhbWVWaWV3KCku
cmVtb3ZlVmlld3BvcnRDb25zdHJhaW5lZE9iamVjdCgqdGhpcyk7CiAgICAgfQogCiAgICAgaWYg
KGhhc0xheWVyKCkpIHsKQEAgLTIwMCw5ICsyMDAsOSBAQCB2b2lkIFJlbmRlckxheWVyTW9kZWxP
YmplY3Q6OnN0eWxlRGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJT
dAogICAgIGJvb2wgb2xkU3R5bGVJc1ZpZXdwb3J0Q29uc3RyYWluZWQgPSBvbGRTdHlsZSAmJiBv
bGRTdHlsZS0+aGFzVmlld3BvcnRDb25zdHJhaW5lZFBvc2l0aW9uKCk7CiAgICAgaWYgKG5ld1N0
eWxlSXNWaWV3cG9ydENvbnN0cmFpbmVkICE9IG9sZFN0eWxlSXNWaWV3cG9ydENvbnN0cmFpbmVk
KSB7CiAgICAgICAgIGlmIChuZXdTdHlsZUlzVmlld3BvcnRDb25zdHJhaW5lZCAmJiBsYXllcigp
KQotICAgICAgICAgICAgdmlldygpLmZyYW1lVmlldygpLmFkZFZpZXdwb3J0Q29uc3RyYWluZWRP
YmplY3QodGhpcyk7CisgICAgICAgICAgICB2aWV3KCkuZnJhbWVWaWV3KCkuYWRkVmlld3BvcnRD
b25zdHJhaW5lZE9iamVjdCgqdGhpcyk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIHZpZXco
KS5mcmFtZVZpZXcoKS5yZW1vdmVWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0KHRoaXMpOworICAg
ICAgICAgICAgdmlldygpLmZyYW1lVmlldygpLnJlbW92ZVZpZXdwb3J0Q29uc3RyYWluZWRPYmpl
Y3QoKnRoaXMpOwogICAgIH0KIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392580</attachid>
            <date>2020-03-05 09:08:59 -0800</date>
            <delta_ts>2020-03-05 09:10:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208625-20200305090859.patch</filename>
            <type>text/plain</type>
            <size>11141</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3OTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmJjODY4NmY2YzVlOTRl
YjU2ZGM2YzkxZjNiOWZiYTE5MGU1MmVkOC4uYjE1YWM1YjY4ZmNkODBkYjNiNGU4YjAyYzNiYzBm
MmU0YzMxMjUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAzLTA1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgbV92aWV3
cG9ydENvbnN0cmFpbmVkT2JqZWN0cyBpbnRvIGEgV2Vha0hhc2hTZXQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODYyNQorCisgICAgICAgIFJldmll
d2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBVc2UgV2Vha0hhc2hTZXQ8PiBmb3IgbV92
aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cy4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZGlkRGVzdHJveVJlbmRlclRyZWUpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjphZGRWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cmVtb3ZlVmlld3BvcnRDb25zdHJhaW5l
ZE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbENvbnRlbnRzRmFz
dFBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRWaWV3cG9ydENvbnN0cmFp
bmVkT2JqZWN0c05lZWRMYXlvdXQpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAg
ICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6Omhhc1Zpc2libGVTbG93UmVwYWludFZpZXdw
b3J0Q29uc3RyYWluZWRPYmplY3RzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllck1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyTW9k
ZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ck1vZGVsT2JqZWN0OjpzdHlsZURpZENoYW5nZSk6CisKIDIwMjAtMDMtMDUgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgT3B0aW1pemUgUGF0aDo6ZW5j
b2RlIG9uIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQgQ0dQYXRoR2V0TnVtYmVyT2ZFbGVtZW50cwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDU1ZDQzMGE5YjdkNDEzODM1ZTIwMWQzM2Jk
NjFjOGUwZjhjOWVmYmEuLjkwNWY4MTdhODYzN2RmN2Y3YzU3YzliOTNlNzVmNWM1MDI3ZjMwYjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTU4OSw3ICs1ODksNyBAQCB2b2lkIEZy
YW1lVmlldzo6ZGlkRGVzdHJveVJlbmRlclRyZWUoKQogICAgIC8vIEV2ZXJ5dGhpbmcgZWxzZSBz
aG91bGQgaGF2ZSByZW1vdmVkIGl0c2VsZiBhcyB0aGUgdHJlZSB3YXMgZmVsbGVkLgogICAgIEFT
U0VSVCghbV9lbWJlZGRlZE9iamVjdHNUb1VwZGF0ZSB8fCBtX2VtYmVkZGVkT2JqZWN0c1RvVXBk
YXRlLT5pc0VtcHR5KCkgfHwgKG1fZW1iZWRkZWRPYmplY3RzVG9VcGRhdGUtPnNpemUoKSA9PSAx
ICYmIG1fZW1iZWRkZWRPYmplY3RzVG9VcGRhdGUtPmZpcnN0KCkgPT0gbnVsbHB0cikpOwogCi0g
ICAgQVNTRVJUKCFtX3ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzIHx8IG1fdmlld3BvcnRDb25z
dHJhaW5lZE9iamVjdHMtPmlzRW1wdHkoKSk7CisgICAgQVNTRVJUKCFtX3ZpZXdwb3J0Q29uc3Ry
YWluZWRPYmplY3RzIHx8IG1fdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMtPmNvbXB1dGVzRW1w
dHkoKSk7CiAgICAgQVNTRVJUKCFtX3Nsb3dSZXBhaW50T2JqZWN0cyB8fCBtX3Nsb3dSZXBhaW50
T2JqZWN0cy0+Y29tcHV0ZXNFbXB0eSgpKTsKIAogICAgIEFTU0VSVCghZnJhbWUoKS5hbmltYXRp
b24oKS5oYXNBbmltYXRpb25zKCkpOwpAQCAtMTUxNCw3ICsxNTE0LDcgQEAgdm9pZCBGcmFtZVZp
ZXc6OnJlbW92ZVNsb3dSZXBhaW50T2JqZWN0KFJlbmRlckVsZW1lbnQmIHJlbmRlcmVyKQogICAg
IH0KIH0KIAotdm9pZCBGcmFtZVZpZXc6OmFkZFZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3QoUmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdCogb2JqZWN0KQordm9pZCBGcmFtZVZpZXc6OmFkZFZpZXdwb3J0
Q29uc3RyYWluZWRPYmplY3QoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCYgb2JqZWN0KQogewogICAg
IGlmICghbV92aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cykKICAgICAgICAgbV92aWV3cG9ydENv
bnN0cmFpbmVkT2JqZWN0cyA9IG1ha2VVbmlxdWU8Vmlld3BvcnRDb25zdHJhaW5lZE9iamVjdFNl
dD4oKTsKQEAgLTE1MzEsNyArMTUzMSw3IEBAIHZvaWQgRnJhbWVWaWV3OjphZGRWaWV3cG9ydENv
bnN0cmFpbmVkT2JqZWN0KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIG9iamVjdCkKICAgICB9CiB9
CiAKLXZvaWQgRnJhbWVWaWV3OjpyZW1vdmVWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0KFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIG9iamVjdCkKK3ZvaWQgRnJhbWVWaWV3OjpyZW1vdmVWaWV3cG9y
dENvbnN0cmFpbmVkT2JqZWN0KFJlbmRlckxheWVyTW9kZWxPYmplY3QmIG9iamVjdCkKIHsKICAg
ICBpZiAobV92aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cyAmJiBtX3ZpZXdwb3J0Q29uc3RyYWlu
ZWRPYmplY3RzLT5yZW1vdmUob2JqZWN0KSkgewogICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGZy
YW1lKCkucGFnZSgpKSB7CkBAIC0yMDcwLDcgKzIwNzAsNyBAQCBPcHRpb25TZXQ8U3R5bGVDb2xv
cjo6T3B0aW9ucz4gRnJhbWVWaWV3OjpzdHlsZUNvbG9yT3B0aW9ucygpIGNvbnN0CiAKIGJvb2wg
RnJhbWVWaWV3OjpzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERl
bHRhLCBjb25zdCBJbnRSZWN0JiByZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0
KQogewotICAgIGlmICghbV92aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cyB8fCBtX3ZpZXdwb3J0
Q29uc3RyYWluZWRPYmplY3RzLT5pc0VtcHR5KCkpIHsKKyAgICBpZiAoIW1fdmlld3BvcnRDb25z
dHJhaW5lZE9iamVjdHMgfHwgbV92aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cy0+Y29tcHV0ZXNF
bXB0eSgpKSB7CiAgICAgICAgIGZyYW1lKCkucGFnZSgpLT5jaHJvbWUoKS5zY3JvbGwoc2Nyb2xs
RGVsdGEsIHJlY3RUb1Njcm9sbCwgY2xpcFJlY3QpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CkBAIC0yMDgwLDE0ICsyMDgwLDE0IEBAIGJvb2wgRnJhbWVWaWV3OjpzY3JvbGxDb250ZW50
c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0CiAgICAg
Ly8gR2V0IHRoZSByZWN0cyBvZiB0aGUgZml4ZWQgb2JqZWN0cyB2aXNpYmxlIGluIHRoZSByZWN0
VG9TY3JvbGwKICAgICBSZWdpb24gcmVnaW9uVG9VcGRhdGU7CiAgICAgZm9yIChhdXRvJiByZW5k
ZXJlciA6ICptX3ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKSB7Ci0gICAgICAgIGlmICghcmVu
ZGVyZXItPnN0eWxlKCkuaGFzVmlld3BvcnRDb25zdHJhaW5lZFBvc2l0aW9uKCkpCisgICAgICAg
IGlmICghcmVuZGVyZXIuc3R5bGUoKS5oYXNWaWV3cG9ydENvbnN0cmFpbmVkUG9zaXRpb24oKSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAocmVuZGVyZXItPmlzQ29tcG9zaXRl
ZCgpKQorICAgICAgICBpZiAocmVuZGVyZXIuaXNDb21wb3NpdGVkKCkpCiAgICAgICAgICAgICBj
b250aW51ZTsKIAogICAgICAgICAvLyBGaXhlZCBpdGVtcyBzaG91bGQgYWx3YXlzIGhhdmUgbGF5
ZXJzLgotICAgICAgICBBU1NFUlQocmVuZGVyZXItPmhhc0xheWVyKCkpOwotICAgICAgICBSZW5k
ZXJMYXllciogbGF5ZXIgPSBkb3duY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4oKnJlbmRlcmVy
KS5sYXllcigpOworICAgICAgICBBU1NFUlQocmVuZGVyZXIuaGFzTGF5ZXIoKSk7CisgICAgICAg
IFJlbmRlckxheWVyKiBsYXllciA9IGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5k
ZXJlcikubGF5ZXIoKTsKIAogICAgICAgICBpZiAobGF5ZXItPnZpZXdwb3J0Q29uc3RyYWluZWRO
b3RDb21wb3NpdGVkUmVhc29uKCkgPT0gUmVuZGVyTGF5ZXI6Ok5vdENvbXBvc2l0ZWRGb3JCb3Vu
ZHNPdXRPZlZpZXcKICAgICAgICAgICAgIHx8IGxheWVyLT52aWV3cG9ydENvbnN0cmFpbmVkTm90
Q29tcG9zaXRlZFJlYXNvbigpID09IFJlbmRlckxheWVyOjpOb3RDb21wb3NpdGVkRm9yTm9WaXNp
YmxlQ29udGVudCkgewpAQCAtMjQzNiw5ICsyNDM2LDkgQEAgdm9pZCBGcmFtZVZpZXc6OnNldFZp
ZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzTmVlZExheW91dCgpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIGZvciAoYXV0byYgcmVuZGVyZXIgOiAqbV92aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cykg
ewotICAgICAgICByZW5kZXJlci0+c2V0TmVlZHNMYXlvdXQoKTsKLSAgICAgICAgaWYgKHJlbmRl
cmVyLT5oYXNMYXllcigpKSB7Ci0gICAgICAgICAgICBhdXRvKiBsYXllciA9IGRvd25jYXN0PFJl
bmRlckJveE1vZGVsT2JqZWN0PigqcmVuZGVyZXIpLmxheWVyKCk7CisgICAgICAgIHJlbmRlcmVy
LnNldE5lZWRzTGF5b3V0KCk7CisgICAgICAgIGlmIChyZW5kZXJlci5oYXNMYXllcigpKSB7Cisg
ICAgICAgICAgICBhdXRvKiBsYXllciA9IGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0Pihy
ZW5kZXJlcikubGF5ZXIoKTsKICAgICAgICAgICAgIGxheWVyLT5zZXROZWVkc0NvbXBvc2l0aW5n
R2VvbWV0cnlVcGRhdGUoKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5o
CmluZGV4IGQ5ZDRiZjBkNGY3YjY4MzY5MDI1OGEyMGRlNTU1NDZiMDQ4ZTVlZjMuLjg4OGM4Njdl
ZDYxZDlhOGM2YTlmNzcwOTNmYjEzMGFlOWU4OTA5YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcu
aApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIlBhZ2luYXRpb24uaCIKICNpbmNsdWRlICJQ
YWludFBoYXNlLmgiCiAjaW5jbHVkZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlJlbmRl
ckxheWVyTW9kZWxPYmplY3QuaCIKICNpbmNsdWRlICJSZW5kZXJQdHIuaCIKICNpbmNsdWRlICJT
Y3JvbGxWaWV3LmgiCiAjaW5jbHVkZSAiU3R5bGVDb2xvci5oIgpAQCAtMjkyLDE0ICsyOTMsMTQg
QEAgcHVibGljOgogICAgIHZvaWQgYWRkU2xvd1JlcGFpbnRPYmplY3QoUmVuZGVyRWxlbWVudCYp
OwogICAgIHZvaWQgcmVtb3ZlU2xvd1JlcGFpbnRPYmplY3QoUmVuZGVyRWxlbWVudCYpOwogICAg
IGJvb2wgaGFzU2xvd1JlcGFpbnRPYmplY3QoY29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIp
IGNvbnN0IHsgcmV0dXJuIG1fc2xvd1JlcGFpbnRPYmplY3RzICYmIG1fc2xvd1JlcGFpbnRPYmpl
Y3RzLT5jb250YWlucyhyZW5kZXJlcik7IH0KLSAgICBib29sIGhhc1Nsb3dSZXBhaW50T2JqZWN0
cygpIGNvbnN0IHsgcmV0dXJuIG1fc2xvd1JlcGFpbnRPYmplY3RzICYmIG1fc2xvd1JlcGFpbnRP
YmplY3RzLT5jb21wdXRlU2l6ZSgpOyB9CisgICAgYm9vbCBoYXNTbG93UmVwYWludE9iamVjdHMo
KSBjb25zdCB7IHJldHVybiBtX3Nsb3dSZXBhaW50T2JqZWN0cyAmJiAhbV9zbG93UmVwYWludE9i
amVjdHMtPmNvbXB1dGVzRW1wdHkoKTsgfQogCiAgICAgLy8gSW5jbHVkZXMgZml4ZWQtIGFuZCBz
dGlja3ktcG9zaXRpb24gb2JqZWN0cy4KLSAgICB0eXBlZGVmIEhhc2hTZXQ8UmVuZGVyTGF5ZXJN
b2RlbE9iamVjdCo+IFZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RTZXQ7Ci0gICAgdm9pZCBhZGRW
aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0KFJlbmRlckxheWVyTW9kZWxPYmplY3QqKTsKLSAgICB2
b2lkIHJlbW92ZVZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3QoUmVuZGVyTGF5ZXJNb2RlbE9iamVj
dCopOworICAgIHR5cGVkZWYgV2Vha0hhc2hTZXQ8UmVuZGVyTGF5ZXJNb2RlbE9iamVjdD4gVmll
d3BvcnRDb25zdHJhaW5lZE9iamVjdFNldDsKKyAgICB2b2lkIGFkZFZpZXdwb3J0Q29uc3RyYWlu
ZWRPYmplY3QoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCYpOworICAgIHZvaWQgcmVtb3ZlVmlld3Bv
cnRDb25zdHJhaW5lZE9iamVjdChSZW5kZXJMYXllck1vZGVsT2JqZWN0Jik7CiAgICAgY29uc3Qg
Vmlld3BvcnRDb25zdHJhaW5lZE9iamVjdFNldCogdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMo
KSBjb25zdCB7IHJldHVybiBtX3ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzLmdldCgpOyB9Ci0g
ICAgYm9vbCBoYXNWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cygpIGNvbnN0IHsgcmV0dXJuIG1f
dmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMgJiYgbV92aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0
cy0+c2l6ZSgpID4gMDsgfQorICAgIGJvb2wgaGFzVmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMo
KSBjb25zdCB7IHJldHVybiBtX3ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzICYmICFtX3ZpZXdw
b3J0Q29uc3RyYWluZWRPYmplY3RzLT5jb21wdXRlc0VtcHR5KCk7IH0KICAgICAKICAgICBmbG9h
dCBmcmFtZVNjYWxlRmFjdG9yKCkgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCBhNzBiOGU2YzQz
NmQxNWE3NzlhNzY4ZGUzNjgyYzhjZjc5NjIzNWM5Li41Yjk2YmQ1OTlmNDViYTUwNGJlNGM0OGE4
YWExYTlmYTZjMzI1OGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxpbmdDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3Jv
bGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0zMTIsMTQgKzMxMiwxNCBAQCB2b2lk
IFNjcm9sbGluZ0Nvb3JkaW5hdG9yOjpoYW5kbGVXaGVlbEV2ZW50UGhhc2UoUGxhdGZvcm1XaGVl
bEV2ZW50UGhhc2UgcGhhc2UpCiAKIGJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6Omhhc1Zpc2li
bGVTbG93UmVwYWludFZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKGNvbnN0IEZyYW1lVmlldyYg
ZnJhbWVWaWV3KSBjb25zdAogewotICAgIGNvbnN0IEZyYW1lVmlldzo6Vmlld3BvcnRDb25zdHJh
aW5lZE9iamVjdFNldCogdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMgPSBmcmFtZVZpZXcudmll
d3BvcnRDb25zdHJhaW5lZE9iamVjdHMoKTsKKyAgICBhdXRvKiB2aWV3cG9ydENvbnN0cmFpbmVk
T2JqZWN0cyA9IGZyYW1lVmlldy52aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cygpOwogICAgIGlm
ICghdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAog
ICAgIGZvciAoYXV0byYgdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdCA6ICp2aWV3cG9ydENvbnN0
cmFpbmVkT2JqZWN0cykgewotICAgICAgICBpZiAoIWlzPFJlbmRlckJveE1vZGVsT2JqZWN0Pigq
dmlld3BvcnRDb25zdHJhaW5lZE9iamVjdCkgfHwgIXZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3Qt
Pmhhc0xheWVyKCkpCisgICAgICAgIGlmICghaXM8UmVuZGVyQm94TW9kZWxPYmplY3Q+KHZpZXdw
b3J0Q29uc3RyYWluZWRPYmplY3QpIHx8ICF2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0Lmhhc0xh
eWVyKCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgYXV0byYgbGF5ZXIgPSAq
ZG93bmNhc3Q8UmVuZGVyQm94TW9kZWxPYmplY3Q+KCp2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0
KS5sYXllcigpOworICAgICAgICBhdXRvJiBsYXllciA9ICpkb3duY2FzdDxSZW5kZXJCb3hNb2Rl
bE9iamVjdD4odmlld3BvcnRDb25zdHJhaW5lZE9iamVjdCkubGF5ZXIoKTsKICAgICAgICAgLy8g
QW55IGV4cGxpY2l0IHJlYXNvbiB0aGF0IGEgZml4ZWQgcG9zaXRpb24gZWxlbWVudCBpcyBub3Qg
Y29tcG9zaXRlZCBzaG91bGRuJ3QgY2F1c2Ugc2xvdyBzY3JvbGxpbmcuCiAgICAgICAgIGlmICgh
bGF5ZXIuaXNDb21wb3NpdGVkKCkgJiYgbGF5ZXIudmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBv
c2l0ZWRSZWFzb24oKSA9PSBSZW5kZXJMYXllcjo6Tm9Ob3RDb21wb3NpdGVkUmVhc29uKQogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCmluZGV4IGRmOWYwMjg2NDQ0Y2Y4YmY0NTFhNjMyZmQ2
N2IyOWE4ZTExNDM3ZjcuLmVmMDFjODI5ODk5YzlkODg2OWJhNTRlNzA5MjY4OWU0ODU4MDU5MWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0
b3IuY3BwCkBAIC03MTksOCArNzE5LDggQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVw
ZGF0ZUNvbXBvc2l0aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlVHlwZSB1cGRhdGUKICAgICAg
ICAgLy8gV2Ugb25seSBnZXQgaGVyZSBpZiB3ZSBkaWRuJ3Qgc2Nyb2xsIG9uIHRoZSBzY3JvbGxp
bmcgdGhyZWFkLCBzbyB0aGlzIHVwZGF0ZSBuZWVkcyB0byByZS1wb3NpdGlvbiB2aWV3cG9ydC1j
b25zdHJhaW5lZCBsYXllcnMuCiAgICAgICAgIGlmIChtX3JlbmRlclZpZXcuc2V0dGluZ3MoKS5h
Y2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQoKSAmJiBpc1BhZ2VT
Y3JvbGwpIHsKICAgICAgICAgICAgIGlmIChhdXRvKiB2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0
cyA9IG1fcmVuZGVyVmlldy5mcmFtZVZpZXcoKS52aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cygp
KSB7Ci0gICAgICAgICAgICAgICAgZm9yIChhdXRvKiByZW5kZXJlciA6ICp2aWV3cG9ydENvbnN0
cmFpbmVkT2JqZWN0cykgewotICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byogbGF5ZXIgPSBy
ZW5kZXJlci0+bGF5ZXIoKSkKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIHJlbmRlcmVyIDog
KnZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChh
dXRvKiBsYXllciA9IHJlbmRlcmVyLmxheWVyKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBs
YXllci0+c2V0TmVlZHNDb21wb3NpdGluZ0dlb21ldHJ5VXBkYXRlKCk7CiAgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyTW9kZWxPYmplY3QuY3BwCmluZGV4IDZlNjhmNjIzMWI3YmQyZDcyZDJmOGJkYWY4
MzNjZmNhMWM0ZjgwYmUuLjE4OWZiNGY1MjgwZGFhMTY1Y2ZlZWQ5MjE2ZGE2Yzc5OTJkZmViOTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9i
amVjdC5jcHAKQEAgLTcwLDcgKzcwLDcgQEAgdm9pZCBSZW5kZXJMYXllck1vZGVsT2JqZWN0Ojp3
aWxsQmVEZXN0cm95ZWQoKQogewogICAgIGlmIChpc1Bvc2l0aW9uZWQoKSkgewogICAgICAgICBp
ZiAoc3R5bGUoKS5oYXNWaWV3cG9ydENvbnN0cmFpbmVkUG9zaXRpb24oKSkKLSAgICAgICAgICAg
IHZpZXcoKS5mcmFtZVZpZXcoKS5yZW1vdmVWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0KHRoaXMp
OworICAgICAgICAgICAgdmlldygpLmZyYW1lVmlldygpLnJlbW92ZVZpZXdwb3J0Q29uc3RyYWlu
ZWRPYmplY3QoKnRoaXMpOwogICAgIH0KIAogICAgIGlmIChoYXNMYXllcigpKSB7CkBAIC0yMDAs
OSArMjAwLDkgQEAgdm9pZCBSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzdHlsZURpZENoYW5nZShT
dHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3QKICAgICBib29sIG9sZFN0eWxlSXNW
aWV3cG9ydENvbnN0cmFpbmVkID0gb2xkU3R5bGUgJiYgb2xkU3R5bGUtPmhhc1ZpZXdwb3J0Q29u
c3RyYWluZWRQb3NpdGlvbigpOwogICAgIGlmIChuZXdTdHlsZUlzVmlld3BvcnRDb25zdHJhaW5l
ZCAhPSBvbGRTdHlsZUlzVmlld3BvcnRDb25zdHJhaW5lZCkgewogICAgICAgICBpZiAobmV3U3R5
bGVJc1ZpZXdwb3J0Q29uc3RyYWluZWQgJiYgbGF5ZXIoKSkKLSAgICAgICAgICAgIHZpZXcoKS5m
cmFtZVZpZXcoKS5hZGRWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0KHRoaXMpOworICAgICAgICAg
ICAgdmlldygpLmZyYW1lVmlldygpLmFkZFZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3QoKnRoaXMp
OwogICAgICAgICBlbHNlCi0gICAgICAgICAgICB2aWV3KCkuZnJhbWVWaWV3KCkucmVtb3ZlVmll
d3BvcnRDb25zdHJhaW5lZE9iamVjdCh0aGlzKTsKKyAgICAgICAgICAgIHZpZXcoKS5mcmFtZVZp
ZXcoKS5yZW1vdmVWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0KCp0aGlzKTsKICAgICB9CiAKICNp
ZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQo=
</data>
<flag name="review"
          id="407983"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>392583</attachid>
            <date>2020-03-05 09:19:04 -0800</date>
            <delta_ts>2020-03-05 11:06:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-208625-20200305091903.patch</filename>
            <type>text/plain</type>
            <size>11756</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU3OTE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmJjODY4NmY2YzVlOTRl
YjU2ZGM2YzkxZjNiOWZiYTE5MGU1MmVkOC4uYjE1YWM1YjY4ZmNkODBkYjNiNGU4YjAyYzNiYzBm
MmU0YzMxMjUwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTAzLTA1ICBTaW1v
biBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgbV92aWV3
cG9ydENvbnN0cmFpbmVkT2JqZWN0cyBpbnRvIGEgV2Vha0hhc2hTZXQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwODYyNQorCisgICAgICAgIFJldmll
d2VkIGJ5IFJ5b3N1a2UgTml3YS4KKworICAgICAgICBVc2UgV2Vha0hhc2hTZXQ8PiBmb3IgbV92
aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cy4KKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6ZGlkRGVzdHJveVJlbmRlclRyZWUpOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjphZGRWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6cmVtb3ZlVmlld3BvcnRDb25zdHJhaW5l
ZE9iamVjdCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnNjcm9sbENvbnRlbnRzRmFz
dFBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3OjpzZXRWaWV3cG9ydENvbnN0cmFp
bmVkT2JqZWN0c05lZWRMYXlvdXQpOgorICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3Lmg6CisgICAg
ICAgICogcGFnZS9zY3JvbGxpbmcvU2Nyb2xsaW5nQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6U2Nyb2xsaW5nQ29vcmRpbmF0b3I6Omhhc1Zpc2libGVTbG93UmVwYWludFZpZXdw
b3J0Q29uc3RyYWluZWRPYmplY3RzIGNvbnN0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
TGF5ZXJDb21wb3NpdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyQ29tcG9z
aXRvcjo6dXBkYXRlQ29tcG9zaXRpbmdMYXllcnMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJMYXllck1vZGVsT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckxheWVyTW9k
ZWxPYmplY3Q6OndpbGxCZURlc3Ryb3llZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMYXll
ck1vZGVsT2JqZWN0OjpzdHlsZURpZENoYW5nZSk6CisKIDIwMjAtMDMtMDUgIFdlbnNvbiBIc2ll
aCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgT3B0aW1pemUgUGF0aDo6ZW5j
b2RlIG9uIHBsYXRmb3JtcyB0aGF0IHN1cHBvcnQgQ0dQYXRoR2V0TnVtYmVyT2ZFbGVtZW50cwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDU1ZDQzMGE5YjdkNDEzODM1ZTIwMWQzM2Jk
NjFjOGUwZjhjOWVmYmEuLjVjMGRhYjg0ZTAwYjM3ODZlMDU0NzRjOTg5YzU4MzlkYTE1YWExZWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTU4OSw3ICs1ODksNyBAQCB2b2lkIEZy
YW1lVmlldzo6ZGlkRGVzdHJveVJlbmRlclRyZWUoKQogICAgIC8vIEV2ZXJ5dGhpbmcgZWxzZSBz
aG91bGQgaGF2ZSByZW1vdmVkIGl0c2VsZiBhcyB0aGUgdHJlZSB3YXMgZmVsbGVkLgogICAgIEFT
U0VSVCghbV9lbWJlZGRlZE9iamVjdHNUb1VwZGF0ZSB8fCBtX2VtYmVkZGVkT2JqZWN0c1RvVXBk
YXRlLT5pc0VtcHR5KCkgfHwgKG1fZW1iZWRkZWRPYmplY3RzVG9VcGRhdGUtPnNpemUoKSA9PSAx
ICYmIG1fZW1iZWRkZWRPYmplY3RzVG9VcGRhdGUtPmZpcnN0KCkgPT0gbnVsbHB0cikpOwogCi0g
ICAgQVNTRVJUKCFtX3ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzIHx8IG1fdmlld3BvcnRDb25z
dHJhaW5lZE9iamVjdHMtPmlzRW1wdHkoKSk7CisgICAgQVNTRVJUKCFtX3ZpZXdwb3J0Q29uc3Ry
YWluZWRPYmplY3RzIHx8IG1fdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMtPmNvbXB1dGVzRW1w
dHkoKSk7CiAgICAgQVNTRVJUKCFtX3Nsb3dSZXBhaW50T2JqZWN0cyB8fCBtX3Nsb3dSZXBhaW50
T2JqZWN0cy0+Y29tcHV0ZXNFbXB0eSgpKTsKIAogICAgIEFTU0VSVCghZnJhbWUoKS5hbmltYXRp
b24oKS5oYXNBbmltYXRpb25zKCkpOwpAQCAtMTUxNCwxMCArMTUxNCwxMCBAQCB2b2lkIEZyYW1l
Vmlldzo6cmVtb3ZlU2xvd1JlcGFpbnRPYmplY3QoUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpCiAg
ICAgfQogfQogCi12b2lkIEZyYW1lVmlldzo6YWRkVmlld3BvcnRDb25zdHJhaW5lZE9iamVjdChS
ZW5kZXJMYXllck1vZGVsT2JqZWN0KiBvYmplY3QpCit2b2lkIEZyYW1lVmlldzo6YWRkVmlld3Bv
cnRDb25zdHJhaW5lZE9iamVjdChSZW5kZXJMYXllck1vZGVsT2JqZWN0JiBvYmplY3QpCiB7CiAg
ICAgaWYgKCFtX3ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKQotICAgICAgICBtX3ZpZXdwb3J0
Q29uc3RyYWluZWRPYmplY3RzID0gbWFrZVVuaXF1ZTxWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0
U2V0PigpOworICAgICAgICBtX3ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzID0gbWFrZVVuaXF1
ZTxXZWFrSGFzaFNldDxSZW5kZXJMYXllck1vZGVsT2JqZWN0Pj4oKTsKIAogICAgIGlmICghbV92
aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cy0+Y29udGFpbnMob2JqZWN0KSkgewogICAgICAgICBt
X3ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzLT5hZGQob2JqZWN0KTsKQEAgLTE1MzEsNyArMTUz
MSw3IEBAIHZvaWQgRnJhbWVWaWV3OjphZGRWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0KFJlbmRl
ckxheWVyTW9kZWxPYmplY3QqIG9iamVjdCkKICAgICB9CiB9CiAKLXZvaWQgRnJhbWVWaWV3Ojpy
ZW1vdmVWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0KFJlbmRlckxheWVyTW9kZWxPYmplY3QqIG9i
amVjdCkKK3ZvaWQgRnJhbWVWaWV3OjpyZW1vdmVWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0KFJl
bmRlckxheWVyTW9kZWxPYmplY3QmIG9iamVjdCkKIHsKICAgICBpZiAobV92aWV3cG9ydENvbnN0
cmFpbmVkT2JqZWN0cyAmJiBtX3ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzLT5yZW1vdmUob2Jq
ZWN0KSkgewogICAgICAgICBpZiAoUGFnZSogcGFnZSA9IGZyYW1lKCkucGFnZSgpKSB7CkBAIC0y
MDcwLDcgKzIwNzAsNyBAQCBPcHRpb25TZXQ8U3R5bGVDb2xvcjo6T3B0aW9ucz4gRnJhbWVWaWV3
OjpzdHlsZUNvbG9yT3B0aW9ucygpIGNvbnN0CiAKIGJvb2wgRnJhbWVWaWV3OjpzY3JvbGxDb250
ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNpemUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0JiBy
ZWN0VG9TY3JvbGwsIGNvbnN0IEludFJlY3QmIGNsaXBSZWN0KQogewotICAgIGlmICghbV92aWV3
cG9ydENvbnN0cmFpbmVkT2JqZWN0cyB8fCBtX3ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzLT5p
c0VtcHR5KCkpIHsKKyAgICBpZiAoIW1fdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMgfHwgbV92
aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cy0+Y29tcHV0ZXNFbXB0eSgpKSB7CiAgICAgICAgIGZy
YW1lKCkucGFnZSgpLT5jaHJvbWUoKS5zY3JvbGwoc2Nyb2xsRGVsdGEsIHJlY3RUb1Njcm9sbCwg
Y2xpcFJlY3QpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CkBAIC0yMDgwLDE0ICsyMDgw
LDE0IEBAIGJvb2wgRnJhbWVWaWV3OjpzY3JvbGxDb250ZW50c0Zhc3RQYXRoKGNvbnN0IEludFNp
emUmIHNjcm9sbERlbHRhLCBjb25zdCBJbnRSZWN0CiAgICAgLy8gR2V0IHRoZSByZWN0cyBvZiB0
aGUgZml4ZWQgb2JqZWN0cyB2aXNpYmxlIGluIHRoZSByZWN0VG9TY3JvbGwKICAgICBSZWdpb24g
cmVnaW9uVG9VcGRhdGU7CiAgICAgZm9yIChhdXRvJiByZW5kZXJlciA6ICptX3ZpZXdwb3J0Q29u
c3RyYWluZWRPYmplY3RzKSB7Ci0gICAgICAgIGlmICghcmVuZGVyZXItPnN0eWxlKCkuaGFzVmll
d3BvcnRDb25zdHJhaW5lZFBvc2l0aW9uKCkpCisgICAgICAgIGlmICghcmVuZGVyZXIuc3R5bGUo
KS5oYXNWaWV3cG9ydENvbnN0cmFpbmVkUG9zaXRpb24oKSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICBpZiAocmVuZGVyZXItPmlzQ29tcG9zaXRlZCgpKQorICAgICAgICBpZiAocmVu
ZGVyZXIuaXNDb21wb3NpdGVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICAv
LyBGaXhlZCBpdGVtcyBzaG91bGQgYWx3YXlzIGhhdmUgbGF5ZXJzLgotICAgICAgICBBU1NFUlQo
cmVuZGVyZXItPmhhc0xheWVyKCkpOwotICAgICAgICBSZW5kZXJMYXllciogbGF5ZXIgPSBkb3du
Y2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4oKnJlbmRlcmVyKS5sYXllcigpOworICAgICAgICBB
U1NFUlQocmVuZGVyZXIuaGFzTGF5ZXIoKSk7CisgICAgICAgIFJlbmRlckxheWVyKiBsYXllciA9
IGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5kZXJlcikubGF5ZXIoKTsKIAogICAg
ICAgICBpZiAobGF5ZXItPnZpZXdwb3J0Q29uc3RyYWluZWROb3RDb21wb3NpdGVkUmVhc29uKCkg
PT0gUmVuZGVyTGF5ZXI6Ok5vdENvbXBvc2l0ZWRGb3JCb3VuZHNPdXRPZlZpZXcKICAgICAgICAg
ICAgIHx8IGxheWVyLT52aWV3cG9ydENvbnN0cmFpbmVkTm90Q29tcG9zaXRlZFJlYXNvbigpID09
IFJlbmRlckxheWVyOjpOb3RDb21wb3NpdGVkRm9yTm9WaXNpYmxlQ29udGVudCkgewpAQCAtMjQz
Niw5ICsyNDM2LDkgQEAgdm9pZCBGcmFtZVZpZXc6OnNldFZpZXdwb3J0Q29uc3RyYWluZWRPYmpl
Y3RzTmVlZExheW91dCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZvciAoYXV0byYgcmVuZGVy
ZXIgOiAqbV92aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cykgewotICAgICAgICByZW5kZXJlci0+
c2V0TmVlZHNMYXlvdXQoKTsKLSAgICAgICAgaWYgKHJlbmRlcmVyLT5oYXNMYXllcigpKSB7Ci0g
ICAgICAgICAgICBhdXRvKiBsYXllciA9IGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0Pigq
cmVuZGVyZXIpLmxheWVyKCk7CisgICAgICAgIHJlbmRlcmVyLnNldE5lZWRzTGF5b3V0KCk7Cisg
ICAgICAgIGlmIChyZW5kZXJlci5oYXNMYXllcigpKSB7CisgICAgICAgICAgICBhdXRvKiBsYXll
ciA9IGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5kZXJlcikubGF5ZXIoKTsKICAg
ICAgICAgICAgIGxheWVyLT5zZXROZWVkc0NvbXBvc2l0aW5nR2VvbWV0cnlVcGRhdGUoKTsKICAg
ICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5oCmluZGV4IGQ5ZDRiZjBkNGY3YjY4
MzY5MDI1OGEyMGRlNTU1NDZiMDQ4ZTVlZjMuLmRhNjFhMTgxOGVjMDU5NWZkYjNhMWVjYjQ5Y2U5
OTUyYjM1ODUxZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuaApAQCAtMzQsNiArMzQsNyBAQAog
I2luY2x1ZGUgIlBhZ2luYXRpb24uaCIKICNpbmNsdWRlICJQYWludFBoYXNlLmgiCiAjaW5jbHVk
ZSAiUmVuZGVyRWxlbWVudC5oIgorI2luY2x1ZGUgIlJlbmRlckxheWVyTW9kZWxPYmplY3QuaCIK
ICNpbmNsdWRlICJSZW5kZXJQdHIuaCIKICNpbmNsdWRlICJTY3JvbGxWaWV3LmgiCiAjaW5jbHVk
ZSAiU3R5bGVDb2xvci5oIgpAQCAtMjkyLDE0ICsyOTMsMTMgQEAgcHVibGljOgogICAgIHZvaWQg
YWRkU2xvd1JlcGFpbnRPYmplY3QoUmVuZGVyRWxlbWVudCYpOwogICAgIHZvaWQgcmVtb3ZlU2xv
d1JlcGFpbnRPYmplY3QoUmVuZGVyRWxlbWVudCYpOwogICAgIGJvb2wgaGFzU2xvd1JlcGFpbnRP
YmplY3QoY29uc3QgUmVuZGVyRWxlbWVudCYgcmVuZGVyZXIpIGNvbnN0IHsgcmV0dXJuIG1fc2xv
d1JlcGFpbnRPYmplY3RzICYmIG1fc2xvd1JlcGFpbnRPYmplY3RzLT5jb250YWlucyhyZW5kZXJl
cik7IH0KLSAgICBib29sIGhhc1Nsb3dSZXBhaW50T2JqZWN0cygpIGNvbnN0IHsgcmV0dXJuIG1f
c2xvd1JlcGFpbnRPYmplY3RzICYmIG1fc2xvd1JlcGFpbnRPYmplY3RzLT5jb21wdXRlU2l6ZSgp
OyB9CisgICAgYm9vbCBoYXNTbG93UmVwYWludE9iamVjdHMoKSBjb25zdCB7IHJldHVybiBtX3Ns
b3dSZXBhaW50T2JqZWN0cyAmJiAhbV9zbG93UmVwYWludE9iamVjdHMtPmNvbXB1dGVzRW1wdHko
KTsgfQogCiAgICAgLy8gSW5jbHVkZXMgZml4ZWQtIGFuZCBzdGlja3ktcG9zaXRpb24gb2JqZWN0
cy4KLSAgICB0eXBlZGVmIEhhc2hTZXQ8UmVuZGVyTGF5ZXJNb2RlbE9iamVjdCo+IFZpZXdwb3J0
Q29uc3RyYWluZWRPYmplY3RTZXQ7Ci0gICAgdm9pZCBhZGRWaWV3cG9ydENvbnN0cmFpbmVkT2Jq
ZWN0KFJlbmRlckxheWVyTW9kZWxPYmplY3QqKTsKLSAgICB2b2lkIHJlbW92ZVZpZXdwb3J0Q29u
c3RyYWluZWRPYmplY3QoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCopOwotICAgIGNvbnN0IFZpZXdw
b3J0Q29uc3RyYWluZWRPYmplY3RTZXQqIHZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKCkgY29u
c3QgeyByZXR1cm4gbV92aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cy5nZXQoKTsgfQotICAgIGJv
b2wgaGFzVmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdw
b3J0Q29uc3RyYWluZWRPYmplY3RzICYmIG1fdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMtPnNp
emUoKSA+IDA7IH0KKyAgICB2b2lkIGFkZFZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3QoUmVuZGVy
TGF5ZXJNb2RlbE9iamVjdCYpOworICAgIHZvaWQgcmVtb3ZlVmlld3BvcnRDb25zdHJhaW5lZE9i
amVjdChSZW5kZXJMYXllck1vZGVsT2JqZWN0Jik7CisgICAgY29uc3QgV2Vha0hhc2hTZXQ8UmVu
ZGVyTGF5ZXJNb2RlbE9iamVjdD4qIHZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKCkgY29uc3Qg
eyByZXR1cm4gbV92aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cy5nZXQoKTsgfQorICAgIGJvb2wg
aGFzVmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMoKSBjb25zdCB7IHJldHVybiBtX3ZpZXdwb3J0
Q29uc3RyYWluZWRPYmplY3RzICYmICFtX3ZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzLT5jb21w
dXRlc0VtcHR5KCk7IH0KICAgICAKICAgICBmbG9hdCBmcmFtZVNjYWxlRmFjdG9yKCkgY29uc3Q7
CiAKQEAgLTg4Niw3ICs4ODYsNyBAQCBwcml2YXRlOgogICAgIEludFNpemUgbV9hdXRvU2l6ZUNv
bnRlbnRTaXplOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbGFibGVBcmVhU2V0PiBtX3Nj
cm9sbGFibGVBcmVhczsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8Vmlld3BvcnRDb25zdHJhaW5lZE9i
amVjdFNldD4gbV92aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0czsKKyAgICBzdGQ6OnVuaXF1ZV9w
dHI8V2Vha0hhc2hTZXQ8UmVuZGVyTGF5ZXJNb2RlbE9iamVjdD4+IG1fdmlld3BvcnRDb25zdHJh
aW5lZE9iamVjdHM7CiAKICAgICBPcHRpb25TZXQ8TGF5b3V0TWlsZXN0b25lPiBtX21pbGVzdG9u
ZXNQZW5kaW5nUGFpbnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xs
aW5nL1Njcm9sbGluZ0Nvb3JkaW5hdG9yLmNwcAppbmRleCBhNzBiOGU2YzQzNmQxNWE3NzlhNzY4
ZGUzNjgyYzhjZjc5NjIzNWM5Li41Yjk2YmQ1OTlmNDViYTUwNGJlNGM0OGE4YWExYTlmYTZjMzI1
OGNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxpbmdD
b29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
aW5nQ29vcmRpbmF0b3IuY3BwCkBAIC0zMTIsMTQgKzMxMiwxNCBAQCB2b2lkIFNjcm9sbGluZ0Nv
b3JkaW5hdG9yOjpoYW5kbGVXaGVlbEV2ZW50UGhhc2UoUGxhdGZvcm1XaGVlbEV2ZW50UGhhc2Ug
cGhhc2UpCiAKIGJvb2wgU2Nyb2xsaW5nQ29vcmRpbmF0b3I6Omhhc1Zpc2libGVTbG93UmVwYWlu
dFZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3RzKGNvbnN0IEZyYW1lVmlldyYgZnJhbWVWaWV3KSBj
b25zdAogewotICAgIGNvbnN0IEZyYW1lVmlldzo6Vmlld3BvcnRDb25zdHJhaW5lZE9iamVjdFNl
dCogdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdHMgPSBmcmFtZVZpZXcudmlld3BvcnRDb25zdHJh
aW5lZE9iamVjdHMoKTsKKyAgICBhdXRvKiB2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cyA9IGZy
YW1lVmlldy52aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cygpOwogICAgIGlmICghdmlld3BvcnRD
b25zdHJhaW5lZE9iamVjdHMpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGZvciAoYXV0
byYgdmlld3BvcnRDb25zdHJhaW5lZE9iamVjdCA6ICp2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0
cykgewotICAgICAgICBpZiAoIWlzPFJlbmRlckJveE1vZGVsT2JqZWN0Pigqdmlld3BvcnRDb25z
dHJhaW5lZE9iamVjdCkgfHwgIXZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3QtPmhhc0xheWVyKCkp
CisgICAgICAgIGlmICghaXM8UmVuZGVyQm94TW9kZWxPYmplY3Q+KHZpZXdwb3J0Q29uc3RyYWlu
ZWRPYmplY3QpIHx8ICF2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0Lmhhc0xheWVyKCkpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgYXV0byYgbGF5ZXIgPSAqZG93bmNhc3Q8UmVu
ZGVyQm94TW9kZWxPYmplY3Q+KCp2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0KS5sYXllcigpOwor
ICAgICAgICBhdXRvJiBsYXllciA9ICpkb3duY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4odmll
d3BvcnRDb25zdHJhaW5lZE9iamVjdCkubGF5ZXIoKTsKICAgICAgICAgLy8gQW55IGV4cGxpY2l0
IHJlYXNvbiB0aGF0IGEgZml4ZWQgcG9zaXRpb24gZWxlbWVudCBpcyBub3QgY29tcG9zaXRlZCBz
aG91bGRuJ3QgY2F1c2Ugc2xvdyBzY3JvbGxpbmcuCiAgICAgICAgIGlmICghbGF5ZXIuaXNDb21w
b3NpdGVkKCkgJiYgbGF5ZXIudmlld3BvcnRDb25zdHJhaW5lZE5vdENvbXBvc2l0ZWRSZWFzb24o
KSA9PSBSZW5kZXJMYXllcjo6Tm9Ob3RDb21wb3NpdGVkUmVhc29uKQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJDb21wb3NpdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNv
bXBvc2l0b3IuY3BwCmluZGV4IGRmOWYwMjg2NDQ0Y2Y4YmY0NTFhNjMyZmQ2N2IyOWE4ZTExNDM3
ZjcuLmVmMDFjODI5ODk5YzlkODg2OWJhNTRlNzA5MjY4OWU0ODU4MDU5MWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckNvbXBvc2l0b3IuY3BwCkBAIC03
MTksOCArNzE5LDggQEAgYm9vbCBSZW5kZXJMYXllckNvbXBvc2l0b3I6OnVwZGF0ZUNvbXBvc2l0
aW5nTGF5ZXJzKENvbXBvc2l0aW5nVXBkYXRlVHlwZSB1cGRhdGUKICAgICAgICAgLy8gV2Ugb25s
eSBnZXQgaGVyZSBpZiB3ZSBkaWRuJ3Qgc2Nyb2xsIG9uIHRoZSBzY3JvbGxpbmcgdGhyZWFkLCBz
byB0aGlzIHVwZGF0ZSBuZWVkcyB0byByZS1wb3NpdGlvbiB2aWV3cG9ydC1jb25zdHJhaW5lZCBs
YXllcnMuCiAgICAgICAgIGlmIChtX3JlbmRlclZpZXcuc2V0dGluZ3MoKS5hY2NlbGVyYXRlZENv
bXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbkVuYWJsZWQoKSAmJiBpc1BhZ2VTY3JvbGwpIHsKICAg
ICAgICAgICAgIGlmIChhdXRvKiB2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cyA9IG1fcmVuZGVy
Vmlldy5mcmFtZVZpZXcoKS52aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0cygpKSB7Ci0gICAgICAg
ICAgICAgICAgZm9yIChhdXRvKiByZW5kZXJlciA6ICp2aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0
cykgewotICAgICAgICAgICAgICAgICAgICBpZiAoYXV0byogbGF5ZXIgPSByZW5kZXJlci0+bGF5
ZXIoKSkKKyAgICAgICAgICAgICAgICBmb3IgKGF1dG8mIHJlbmRlcmVyIDogKnZpZXdwb3J0Q29u
c3RyYWluZWRPYmplY3RzKSB7CisgICAgICAgICAgICAgICAgICAgIGlmIChhdXRvKiBsYXllciA9
IHJlbmRlcmVyLmxheWVyKCkpCiAgICAgICAgICAgICAgICAgICAgICAgICBsYXllci0+c2V0TmVl
ZHNDb21wb3NpdGluZ0dlb21ldHJ5VXBkYXRlKCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
TW9kZWxPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9k
ZWxPYmplY3QuY3BwCmluZGV4IDZlNjhmNjIzMWI3YmQyZDcyZDJmOGJkYWY4MzNjZmNhMWM0Zjgw
YmUuLjE4OWZiNGY1MjgwZGFhMTY1Y2ZlZWQ5MjE2ZGE2Yzc5OTJkZmViOTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKQEAg
LTcwLDcgKzcwLDcgQEAgdm9pZCBSZW5kZXJMYXllck1vZGVsT2JqZWN0Ojp3aWxsQmVEZXN0cm95
ZWQoKQogewogICAgIGlmIChpc1Bvc2l0aW9uZWQoKSkgewogICAgICAgICBpZiAoc3R5bGUoKS5o
YXNWaWV3cG9ydENvbnN0cmFpbmVkUG9zaXRpb24oKSkKLSAgICAgICAgICAgIHZpZXcoKS5mcmFt
ZVZpZXcoKS5yZW1vdmVWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0KHRoaXMpOworICAgICAgICAg
ICAgdmlldygpLmZyYW1lVmlldygpLnJlbW92ZVZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3QoKnRo
aXMpOwogICAgIH0KIAogICAgIGlmIChoYXNMYXllcigpKSB7CkBAIC0yMDAsOSArMjAwLDkgQEAg
dm9pZCBSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVu
Y2UgZGlmZiwgY29uc3QgUmVuZGVyU3QKICAgICBib29sIG9sZFN0eWxlSXNWaWV3cG9ydENvbnN0
cmFpbmVkID0gb2xkU3R5bGUgJiYgb2xkU3R5bGUtPmhhc1ZpZXdwb3J0Q29uc3RyYWluZWRQb3Np
dGlvbigpOwogICAgIGlmIChuZXdTdHlsZUlzVmlld3BvcnRDb25zdHJhaW5lZCAhPSBvbGRTdHls
ZUlzVmlld3BvcnRDb25zdHJhaW5lZCkgewogICAgICAgICBpZiAobmV3U3R5bGVJc1ZpZXdwb3J0
Q29uc3RyYWluZWQgJiYgbGF5ZXIoKSkKLSAgICAgICAgICAgIHZpZXcoKS5mcmFtZVZpZXcoKS5h
ZGRWaWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0KHRoaXMpOworICAgICAgICAgICAgdmlldygpLmZy
YW1lVmlldygpLmFkZFZpZXdwb3J0Q29uc3RyYWluZWRPYmplY3QoKnRoaXMpOwogICAgICAgICBl
bHNlCi0gICAgICAgICAgICB2aWV3KCkuZnJhbWVWaWV3KCkucmVtb3ZlVmlld3BvcnRDb25zdHJh
aW5lZE9iamVjdCh0aGlzKTsKKyAgICAgICAgICAgIHZpZXcoKS5mcmFtZVZpZXcoKS5yZW1vdmVW
aWV3cG9ydENvbnN0cmFpbmVkT2JqZWN0KCp0aGlzKTsKICAgICB9CiAKICNpZiBFTkFCTEUoQ1NT
X1NDUk9MTF9TTkFQKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>