<?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>72508</bug_id>
          
          <creation_ts>2011-11-16 08:05:51 -0800</creation_ts>
          <short_desc>[Qt][WK2] Do not apply new viewport properties until after the first visually non-empty layout.</short_desc>
          <delta_ts>2011-11-17 02:56:46 -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>528+ (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></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>abecsi</cc>
    
    <cc>hausmann</cc>
    
    <cc>kenneth</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zeno</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>503884</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2011-11-16 08:05:51 -0800</bug_when>
    <thetext>[Qt][WK2] Do not apply new viewport properties until after the first visually non-empty layout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503895</commentid>
    <comment_count>1</comment_count>
      <attachid>115381</attachid>
    <who name="alan">zalan</who>
    <bug_when>2011-11-16 08:12:56 -0800</bug_when>
    <thetext>Created attachment 115381
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503903</commentid>
    <comment_count>2</comment_count>
      <attachid>115381</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-11-16 08:24:29 -0800</bug_when>
    <thetext>Comment on attachment 115381
Patch

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

&gt; Source/WebKit2/ChangeLog:6
&gt; +        Delay applying viewport properties on the new document until after the first visually

not on the new document but on our viewport item

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:109
&gt;  void QQuickWebViewPrivate::loadDidCommit()
&gt;  {
&gt; -    if (!useTraditionalDesktopBehaviour)
&gt; -        interactionEngine-&gt;reset();
&gt; +    transitioningToNewPage = true;
&gt;  }

Maybe we should set this to true on crash as well.

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:126
&gt; +    // Do not apply the new content size, until after the first visually non-empty layout finished.

I dont think the comment is needed

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:143
&gt; +    // Make sure, the new viewport values are not applied to the old content.

same here

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview.cpp:190
&gt;      _q_viewportUpdated();

I hate callbacks like this here... have to look what it does... not your fault though :-) and not part of this patch

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h:88
&gt; +    class PostTransitionState {

A comment here would make sense, linking to the wiki page for instance

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h:97
&gt; +            p-&gt;interactionEngine-&gt;applyConstraints(p-&gt;computeViewportConstraints());

future: Maybe those constraints shouldnt be in the interaction engine itself

&gt; Source/WebKit2/UIProcess/API/qt/qquickwebview_p.h:111
&gt; +    bool isTransitioningToNewPage() const {return transitioningToNewPage; }

missing space

&gt; Source/WebKit2/UIProcess/qt/ClientImpl.cpp:157
&gt; +    if (!WKFrameIsMainFrame(frame))
&gt; +        return;

I prefer a newline after this</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504678</commentid>
    <comment_count>3</comment_count>
      <attachid>115546</attachid>
    <who name="alan">zalan</who>
    <bug_when>2011-11-17 02:31:11 -0800</bug_when>
    <thetext>Created attachment 115546
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504692</commentid>
    <comment_count>4</comment_count>
      <attachid>115546</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-17 02:56:42 -0800</bug_when>
    <thetext>Comment on attachment 115546
Patch

Clearing flags on attachment: 115546

Committed r100590: &lt;http://trac.webkit.org/changeset/100590&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>504693</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-17 02:56:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115381</attachid>
            <date>2011-11-16 08:12:56 -0800</date>
            <delta_ts>2011-11-17 02:31:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72508-20111116171254.patch</filename>
            <type>text/plain</type>
            <size>16425</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDQ1MykKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDExLTExLTE2ICBaYWxhbiBC
dWp0YXMgIDx6YnVqdGFzQGdtYWlsLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gRG8gbm90IGFw
cGx5IG5ldyB2aWV3cG9ydCBwcm9wZXJ0aWVzIHVudGlsIGFmdGVyIHRoZSBmaXJzdCB2aXN1YWxs
eSBub24tZW1wdHkgbGF5b3V0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzI1MDgKKworICAgICAgICBEZWxheSBhcHBseWluZyB2aWV3cG9ydCBwcm9w
ZXJ0aWVzIG9uIHRoZSBuZXcgZG9jdW1lbnQgdW50aWwgYWZ0ZXIgdGhlIGZpcnN0IHZpc3VhbGx5
CisgICAgICAgIG5vbi1lbXB0eSBsYXlvdXQgZmluaXNoZWQuIEl0IGVuYWJsZXMgdGhlIHZpZXdw
b3J0IHRvIGJlIGludGFjdCB1bnRpbCB0aGUgbmV3IHBhZ2UgaXMgcmVhZHkKKyAgICAgICAgdG8g
YmUgcmVuZGVyZWQuCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwOgorICAgICAgICAoUVF1
aWNrV2ViVmlld1ByaXZhdGU6OlFRdWlja1dlYlZpZXdQcml2YXRlKToKKyAgICAgICAgKFFRdWlj
a1dlYlZpZXdQcml2YXRlOjpsb2FkRGlkQ29tbWl0KToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQ
cml2YXRlOjpkaWRGaW5pc2hGaXJzdE5vbkVtcHR5TGF5b3V0KToKKyAgICAgICAgKFFRdWlja1dl
YlZpZXdQcml2YXRlOjpkaWRDaGFuZ2VDb250ZW50c1NpemUpOgorICAgICAgICAoUVF1aWNrV2Vi
Vmlld1ByaXZhdGU6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyk6CisgICAgICAgIChRUXVp
Y2tXZWJWaWV3UHJpdmF0ZTo6dXBkYXRlVmlld3BvcnRTaXplKToKKyAgICAgICAgKFFRdWlja1dl
YlZpZXdQcml2YXRlOjpjb21wdXRlVmlld3BvcnRDb25zdHJhaW50cyk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3X3AuaDoKKyAgICAgICAgKFBvc3RUcmFuc2l0aW9u
U3RhdGU6OmlzVHJhbnNpdGlvbmluZ1RvTmV3UGFnZSk6CisgICAgICAgICogVUlQcm9jZXNzL3F0
L0NsaWVudEltcGwuY3BwOgorICAgICAgICAocXRfd2tfZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5
TGF5b3V0Rm9yRnJhbWUpOgorICAgICAgICAoc2V0dXBQYWdlTG9hZGVyQ2xpZW50KToKKyAgICAg
ICAgKiBVSVByb2Nlc3MvcXQvUXRWaWV3SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UXRWaWV3SW50ZXJmYWNlOjpkaWRGaW5pc2hGaXJzdE5vbkVtcHR5TGF5b3V0KToKKyAgICAgICAg
KFdlYktpdDo6UXRWaWV3SW50ZXJmYWNlOjpkaWRDaGFuZ2VDb250ZW50c1NpemUpOgorICAgICAg
ICAoV2ViS2l0OjpRdFZpZXdJbnRlcmZhY2U6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyk6
CisgICAgICAgIChXZWJLaXQ6OlF0Vmlld0ludGVyZmFjZTo6c3RhcnREcmFnKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvcXQvUXRWaWV3SW50ZXJmYWNlLmg6CisgICAgICAgICogVUlQcm9jZXNzL3F0
L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0Vmll
d3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6cmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpRdFZpZXdw
b3J0SW50ZXJhY3Rpb25FbmdpbmU6OmFwcGx5Q29uc3RyYWludHMpOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvcXQvUXRXZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoUXRXZWJQYWdlUHJveHk6OmRpZEZp
bmlzaEZpcnN0Tm9uRW1wdHlMYXlvdXQpOgorICAgICAgICAoUXRXZWJQYWdlUHJveHk6OmRpZENo
YW5nZUNvbnRlbnRzU2l6ZSk6CisgICAgICAgIChRdFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlVmll
d3BvcnRQcm9wZXJ0aWVzKToKKyAgICAgICAgKFF0V2ViUGFnZVByb3h5OjpzdGFydERyYWcpOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5oOgorCiAyMDExLTExLTE2ICBa
ZW5vIEFsYmlzc2VyICA8emVub0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF1bV0syXVtNYWNd
IE1pbmlCcm93c2VyIGNhbm5vdCBjcmVhdGUgc29ja2V0cGFpci4KSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlldy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcAkocmV2aXNpb24g
MTAwMTM4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzksNiArMzksOCBAQAogCiBRUXVpY2tXZWJWaWV3UHJp
dmF0ZTo6UVF1aWNrV2ViVmlld1ByaXZhdGUoKQogICAgIDogcV9wdHIoMCkKKyAgICAsIHBvc3RU
cmFuc2l0aW9uU3RhdGUoYWRvcHRQdHIobmV3IFBvc3RUcmFuc2l0aW9uU3RhdGUodGhpcykpKQor
ICAgICwgdHJhbnNpdGlvbmluZ1RvTmV3UGFnZShmYWxzZSkKICAgICAsIHVzZVRyYWRpdGlvbmFs
RGVza3RvcEJlaGF2aW91cihmYWxzZSkKIHsKIH0KQEAgLTEwMywxOSArMTA1LDQ4IEBAIHZvaWQg
UVF1aWNrV2ViVmlld1ByaXZhdGU6OmluaXRpYWxpemVUb3UKIAogdm9pZCBRUXVpY2tXZWJWaWV3
UHJpdmF0ZTo6bG9hZERpZENvbW1pdCgpCiB7Ci0gICAgaWYgKCF1c2VUcmFkaXRpb25hbERlc2t0
b3BCZWhhdmlvdXIpCi0gICAgICAgIGludGVyYWN0aW9uRW5naW5lLT5yZXNldCgpOworICAgIHRy
YW5zaXRpb25pbmdUb05ld1BhZ2UgPSB0cnVlOwogfQogCi12b2lkIFFRdWlja1dlYlZpZXdQcml2
YXRlOjpjb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgUVNpemUmIG5ld1NpemUpCit2b2lkIFFRdWlj
a1dlYlZpZXdQcml2YXRlOjpkaWRGaW5pc2hGaXJzdE5vbkVtcHR5TGF5b3V0KCkKIHsKKyAgICB0
cmFuc2l0aW9uaW5nVG9OZXdQYWdlID0gZmFsc2U7CisKICAgICBpZiAodXNlVHJhZGl0aW9uYWxE
ZXNrdG9wQmVoYXZpb3VyKQogICAgICAgICByZXR1cm47CiAKKyAgICBwb3N0VHJhbnNpdGlvblN0
YXRlLT5hcHBseSgpOworfQorCit2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpkaWRDaGFuZ2VD
b250ZW50c1NpemUoY29uc3QgUVNpemUmIG5ld1NpemUpCit7CisgICAgaWYgKHVzZVRyYWRpdGlv
bmFsRGVza3RvcEJlaGF2aW91cikKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gRG8gbm90IGFw
cGx5IHRoZSBuZXcgY29udGVudCBzaXplLCB1bnRpbCBhZnRlciB0aGUgZmlyc3QgdmlzdWFsbHkg
bm9uLWVtcHR5IGxheW91dCBmaW5pc2hlZC4KKyAgICBpZiAoaXNUcmFuc2l0aW9uaW5nVG9OZXdQ
YWdlKCkpIHsKKyAgICAgICAgcG9zdFRyYW5zaXRpb25TdGF0ZS0+Y29udGVudHNTaXplID0gbmV3
U2l6ZTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIHBhZ2VWaWV3LT5zZXRXaWR0aChu
ZXdTaXplLndpZHRoKCkpOwogICAgIHBhZ2VWaWV3LT5zZXRIZWlnaHQobmV3U2l6ZS5oZWlnaHQo
KSk7CiB9CiAKK3ZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmRpZENoYW5nZVZpZXdwb3J0UHJv
cGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBp
ZiAodXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKQorICAgICAgICByZXR1cm47CisKKyAg
ICB2aWV3cG9ydEFyZ3VtZW50cyA9IGFyZ3M7CisKKyAgICAvLyBNYWtlIHN1cmUsIHRoZSBuZXcg
dmlld3BvcnQgdmFsdWVzIGFyZSBub3QgYXBwbGllZCB0byB0aGUgb2xkIGNvbnRlbnQuCisgICAg
aWYgKGlzVHJhbnNpdGlvbmluZ1RvTmV3UGFnZSgpKQorICAgICAgICByZXR1cm47CisKKyAgICBp
bnRlcmFjdGlvbkVuZ2luZS0+YXBwbHlDb25zdHJhaW50cyhjb21wdXRlVmlld3BvcnRDb25zdHJh
aW50cygpKTsKK30KKwogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6c2Nyb2xsUG9zaXRpb25S
ZXF1ZXN0ZWQoY29uc3QgUVBvaW50JiBwb3MpCiB7CiAgICAgaWYgKCF1c2VUcmFkaXRpb25hbERl
c2t0b3BCZWhhdmlvdXIpCkBAIC0xNDIsNyArMTczLDYgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJp
dmF0ZTo6X3Ffb25WaXNpYmxlQwogICAgIHdrUGFnZS0+dmlld1N0YXRlRGlkQ2hhbmdlKFdlYlBh
Z2VQcm94eTo6Vmlld0lzVmlzaWJsZSk7CiB9CiAKLQogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0
ZTo6dXBkYXRlVmlld3BvcnRTaXplKCkKIHsKICAgICBRX1EoUVF1aWNrV2ViVmlldyk7CkBAIC0x
NTUsMTcgKzE4NSwxOCBAQCB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjp1cGRhdGVWaWV3cG9y
CiAgICAgLy8gTGV0IHRoZSBXZWJQcm9jZXNzIGtub3cgYWJvdXQgdGhlIG5ldyB2aWV3cG9ydCBz
aXplLCBzbyB0aGF0CiAgICAgLy8gaXQgY2FuIHJlc2l6ZSB0aGUgY29udGVudCBhY2NvcmRpbmds
eS4KICAgICB3a1BhZ2UtPnNldFZpZXdwb3J0U2l6ZSh2aWV3cG9ydFNpemUpOwotICAgIHVwZGF0
ZVZpZXdwb3J0Q29uc3RyYWludHMoKTsKKworICAgIGludGVyYWN0aW9uRW5naW5lLT5hcHBseUNv
bnN0cmFpbnRzKGNvbXB1dGVWaWV3cG9ydENvbnN0cmFpbnRzKCkpOwogICAgIF9xX3ZpZXdwb3J0
VXBkYXRlZCgpOwogfQogCi12b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjp1cGRhdGVWaWV3cG9y
dENvbnN0cmFpbnRzKCkKK1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6Q29uc3RyYWludHMg
UVF1aWNrV2ViVmlld1ByaXZhdGU6OmNvbXB1dGVWaWV3cG9ydENvbnN0cmFpbnRzKCkKIHsKICAg
ICBRX1EoUVF1aWNrV2ViVmlldyk7CisKICAgICBRU2l6ZSBhdmFpbGFibGVTaXplID0gcS0+Ym91
bmRpbmdSZWN0KCkuc2l6ZSgpLnRvU2l6ZSgpOwogCi0gICAgaWYgKGF2YWlsYWJsZVNpemUuaXNF
bXB0eSgpKQotICAgICAgICByZXR1cm47CisgICAgUV9BU1NFUlQoIWF2YWlsYWJsZVNpemUuaXNF
bXB0eSgpKTsKIAogICAgIFdlYlBhZ2VQcm94eSogd2tQYWdlID0gdG9JbXBsKHBhZ2VQcm94eS0+
cGFnZVJlZigpKTsKICAgICBXZWJQcmVmZXJlbmNlcyogd2tQcmVmcyA9IHdrUGFnZS0+cGFnZUdy
b3VwKCktPnByZWZlcmVuY2VzKCk7CkBAIC0xODIsMjcgKzIxMywxNiBAQCB2b2lkIFFRdWlja1dl
YlZpZXdQcml2YXRlOjp1cGRhdGVWaWV3cG9yCiAgICAgV2ViQ29yZTo6cmVzdHJpY3RTY2FsZUZh
Y3RvclRvSW5pdGlhbFNjYWxlSWZOb3RVc2VyU2NhbGFibGUoYXR0cik7CiAKICAgICBRdFZpZXdw
b3J0SW50ZXJhY3Rpb25FbmdpbmU6OkNvbnN0cmFpbnRzIG5ld0NvbnN0cmFpbnRzOworCiAgICAg
bmV3Q29uc3RyYWludHMuaW5pdGlhbFNjYWxlID0gYXR0ci5pbml0aWFsU2NhbGU7CiAgICAgbmV3
Q29uc3RyYWludHMubWluaW11bVNjYWxlID0gYXR0ci5taW5pbXVtU2NhbGU7CiAgICAgbmV3Q29u
c3RyYWludHMubWF4aW11bVNjYWxlID0gYXR0ci5tYXhpbXVtU2NhbGU7CiAgICAgbmV3Q29uc3Ry
YWludHMuZGV2aWNlUGl4ZWxSYXRpbyA9IGF0dHIuZGV2aWNlUGl4ZWxSYXRpbzsKICAgICBuZXdD
b25zdHJhaW50cy5pc1VzZXJTY2FsYWJsZSA9ICEhYXR0ci51c2VyU2NhbGFibGU7Ci0gICAgaW50
ZXJhY3Rpb25FbmdpbmUtPnNldENvbnN0cmFpbnRzKG5ld0NvbnN0cmFpbnRzKTsKIAotICAgIC8v
IE92ZXJ3cml0ZSBtaW5pbXVtIHNjYWxlIHZhbHVlIHdpdGggZml0LXRvLXZpZXcgdmFsdWUsIHVu
bGVzcyB0aGUgdGhlIGNvbnRlbnQgYXV0aG9yCi0gICAgLy8gZXhwbGljaXRseSBzYXlzIG5vLiBO
QjogV2UgY2FuIG9ubHkgZG8gdGhpcyB3aGVuIHdlIGtub3cgd2UgaGF2ZSBhIHZhbGlkIHNpemUs
IGllLgotICAgIC8vIGFmdGVyIGluaXRpYWwgbGF5b3V0IGhhcyBjb21wbGV0ZWQuCisgICAgcmV0
dXJuIG5ld0NvbnN0cmFpbnRzOwogfQogCi12b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpkaWRD
aGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMm
IGFyZ3MpCi17Ci0gICAgaWYgKHVzZVRyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91cikKLSAgICAg
ICAgcmV0dXJuOwotICAgIHZpZXdwb3J0QXJndW1lbnRzID0gYXJnczsKLSAgICB1cGRhdGVWaWV3
cG9ydENvbnN0cmFpbnRzKCk7Ci19Ci0KLQogdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6cnVu
SmF2YVNjcmlwdEFsZXJ0KGNvbnN0IFFTdHJpbmcmIGFsZXJ0VGV4dCkKIHsKICNpZm5kZWYgUVRf
Tk9fTUVTU0FHRUJPWApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVp
Y2t3ZWJ2aWV3X3AuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L3F0L3FxdWlja3dlYnZpZXdfcC5oCShyZXZpc2lvbiAxMDAxMzgpCisrKyBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
MCw2ICszMCw3IEBACiAKICNpbmNsdWRlIDxRdENvcmUvUU9iamVjdD4KICNpbmNsdWRlIDxRdENv
cmUvUVNjb3BlZFBvaW50ZXI+CisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogCiBjbGFzcyBRdFdl
YlBhZ2VQcm94eTsKIApAQCAtNTEsMTAgKzUyLDE0IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc2Fi
bGVNb3VzZUV2ZW50cygpOwogCiAgICAgdm9pZCBsb2FkRGlkQ29tbWl0KCk7Ci0gICAgdm9pZCBj
b250ZW50U2l6ZUNoYW5nZWQoY29uc3QgUVNpemUmIG5ld1NpemUpOworCisgICAgdm9pZCBkaWRG
aW5pc2hGaXJzdE5vbkVtcHR5TGF5b3V0KCk7CisgICAgdm9pZCBkaWRDaGFuZ2VDb250ZW50c1Np
emUoY29uc3QgUVNpemUmIG5ld1NpemUpOworICAgIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9w
ZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJiBhcmdzKTsKKwogICAgIHZv
aWQgc2Nyb2xsUG9zaXRpb25SZXF1ZXN0ZWQoY29uc3QgUVBvaW50JiBwb3MpOwogICAgIHZvaWQg
dXBkYXRlVmlld3BvcnRTaXplKCk7Ci0gICAgdm9pZCB1cGRhdGVWaWV3cG9ydENvbnN0cmFpbnRz
KCk7CisgICAgUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lOjpDb25zdHJhaW50cyBjb21wdXRl
Vmlld3BvcnRDb25zdHJhaW50cygpOwogCiAgICAgc3RhdGljIFFRdWlja1dlYlZpZXdQcml2YXRl
KiBnZXQoUVF1aWNrV2ViVmlldyogdmlldykKICAgICB7CkBAIC03NCwyMSArNzksNDggQEAgcHVi
bGljOgogICAgIHZvaWQgcnVuSmF2YVNjcmlwdEFsZXJ0KGNvbnN0IFFTdHJpbmcmKTsKICAgICBi
b29sIHJ1bkphdmFTY3JpcHRDb25maXJtKGNvbnN0IFFTdHJpbmcmKTsKICAgICBRU3RyaW5nIHJ1
bkphdmFTY3JpcHRQcm9tcHQoY29uc3QgUVN0cmluZyYsIGNvbnN0IFFTdHJpbmcmIGRlZmF1bHRW
YWx1ZSwgYm9vbCYgb2spOwotICAgIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNv
bnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJiBhcmdzKTsKIAogcHVibGljIHNsb3RzOgog
ICAgIHZvaWQgc2V0VXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKGJvb2wgZW5hYmxlKTsK
IAogcHJpdmF0ZToKKworICAgIGNsYXNzIFBvc3RUcmFuc2l0aW9uU3RhdGUgeworICAgIHB1Ymxp
YzoKKyAgICAgICAgUG9zdFRyYW5zaXRpb25TdGF0ZShRUXVpY2tXZWJWaWV3UHJpdmF0ZSogcGFy
ZW50KQorICAgICAgICAgICAgOiBwKHBhcmVudCkKKyAgICAgICAgeyB9CisKKyAgICAgICAgdm9p
ZCBhcHBseSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHAtPmludGVyYWN0aW9uRW5naW5lLT5y
ZXNldCgpOworICAgICAgICAgICAgcC0+aW50ZXJhY3Rpb25FbmdpbmUtPmFwcGx5Q29uc3RyYWlu
dHMocC0+Y29tcHV0ZVZpZXdwb3J0Q29uc3RyYWludHMoKSk7CisKKyAgICAgICAgICAgIGlmIChj
b250ZW50c1NpemUuaXNWYWxpZCgpKSB7CisgICAgICAgICAgICAgICAgcC0+cGFnZVZpZXctPnNl
dFdpZHRoKGNvbnRlbnRzU2l6ZS53aWR0aCgpKTsKKyAgICAgICAgICAgICAgICBwLT5wYWdlVmll
dy0+c2V0SGVpZ2h0KGNvbnRlbnRzU2l6ZS5oZWlnaHQoKSk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGNvbnRlbnRzU2l6ZSA9IFFTaXplKCk7CisgICAgICAgIH0KKworICAgICAgICBR
UXVpY2tXZWJWaWV3UHJpdmF0ZSogcDsKKyAgICAgICAgUVNpemUgY29udGVudHNTaXplOworICAg
IH07CisKKyAgICBib29sIGlzVHJhbnNpdGlvbmluZ1RvTmV3UGFnZSgpIGNvbnN0IHtyZXR1cm4g
dHJhbnNpdGlvbmluZ1RvTmV3UGFnZTsgfQorCiAgICAgUVNjb3BlZFBvaW50ZXI8UVF1aWNrV2Vi
UGFnZT4gcGFnZVZpZXc7CiAgICAgUVNjb3BlZFBvaW50ZXI8V2ViS2l0OjpRdFZpZXdJbnRlcmZh
Y2U+IHZpZXdJbnRlcmZhY2U7CiAgICAgUVNjb3BlZFBvaW50ZXI8UXRWaWV3cG9ydEludGVyYWN0
aW9uRW5naW5lPiBpbnRlcmFjdGlvbkVuZ2luZTsKIAotICAgIFdlYkNvcmU6OlZpZXdwb3J0QXJn
dW1lbnRzIHZpZXdwb3J0QXJndW1lbnRzOwotCiAgICAgUVF1aWNrV2ViVmlldyogcV9wdHI7CiAg
ICAgUVNjb3BlZFBvaW50ZXI8UXRXZWJQYWdlUHJveHk+IHBhZ2VQcm94eTsKIAorICAgIFdlYkNv
cmU6OlZpZXdwb3J0QXJndW1lbnRzIHZpZXdwb3J0QXJndW1lbnRzOworICAgIE93blB0cjxQb3N0
VHJhbnNpdGlvblN0YXRlPiBwb3N0VHJhbnNpdGlvblN0YXRlOworICAgIGJvb2wgdHJhbnNpdGlv
bmluZ1RvTmV3UGFnZTsKKwogICAgIGJvb2wgdXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3Vy
OwogICAgIFFGaWxlRGlhbG9nKiBmaWxlRGlhbG9nOwogICAgIFdLT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXJSZWYgb3BlblBhbmVsUmVzdWx0TGlzdGVuZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0L0NsaWVudEltcGwuY3BwCShyZXZpc2lvbiAxMDAxMzgpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1
MSw2ICsxNTEsMTMgQEAgc3RhdGljIHZvaWQgcXRfd2tfZGlkRmluaXNoUHJvZ3Jlc3MoV0tQYQog
ICAgIHRvUXRXZWJQYWdlUHJveHkoY2xpZW50SW5mbyktPmRpZENoYW5nZUxvYWRQcm9ncmVzcygx
MDApOwogfQogCitzdGF0aWMgdm9pZCBxdF93a19kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGb3JGcmFtZShXS1BhZ2VSZWYgcGFnZSwgV0tGcmFtZVJlZiBmcmFtZSwgV0tUeXBlUmVmIHVz
ZXJEYXRhLCBjb25zdCB2b2lkICpjbGllbnRJbmZvKQoreworICAgIGlmICghV0tGcmFtZUlzTWFp
bkZyYW1lKGZyYW1lKSkKKyAgICAgICAgcmV0dXJuOworICAgIHRvUXRXZWJQYWdlUHJveHkoY2xp
ZW50SW5mbyktPmRpZEZpbmlzaEZpcnN0Tm9uRW1wdHlMYXlvdXQoKTsKK30KKwogc3RhdGljIHZv
aWQgcXRfd2tfcnVuSmF2YVNjcmlwdEFsZXJ0KFdLUGFnZVJlZiBwYWdlLCBXS1N0cmluZ1JlZiBh
bGVydFRleHQsIFdLRnJhbWVSZWYgZnJhbWUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAg
ICAgUVN0cmluZyBxQWxlcnRUZXh0ID0gV0tTdHJpbmdDb3B5UVN0cmluZyhhbGVydFRleHQpOwpA
QCAtMzE2LDYgKzMyMyw3IEBAIHZvaWQgc2V0dXBQYWdlTG9hZGVyQ2xpZW50KFF0V2ViUGFnZVBy
b3gKICAgICBsb2FkQ2xpZW50LmRpZFN0YXJ0UHJvZ3Jlc3MgPSBxdF93a19kaWRTdGFydFByb2dy
ZXNzOwogICAgIGxvYWRDbGllbnQuZGlkQ2hhbmdlUHJvZ3Jlc3MgPSBxdF93a19kaWRDaGFuZ2VQ
cm9ncmVzczsKICAgICBsb2FkQ2xpZW50LmRpZEZpbmlzaFByb2dyZXNzID0gcXRfd2tfZGlkRmlu
aXNoUHJvZ3Jlc3M7CisgICAgbG9hZENsaWVudC5kaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlv
dXRGb3JGcmFtZSA9IHF0X3drX2RpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1l
OwogICAgIFdLUGFnZVNldFBhZ2VMb2FkZXJDbGllbnQocXRXZWJQYWdlUHJveHktPnBhZ2VSZWYo
KSwgJmxvYWRDbGllbnQpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
UXRWaWV3SW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvUXRWaWV3SW50ZXJmYWNlLmNwcAkocmV2aXNpb24gMTAwMTM4KQorKysgU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld0ludGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTU3LDkgKzU3LDE5IEBAIFFTaXplIFF0Vmlld0ludGVyZmFjZTo6ZHJhd2luZ0FyZWFTaXplKCkK
ICAgICByZXR1cm4gUVNpemUobV9wYWdlVmlldy0+d2lkdGgoKSwgbV9wYWdlVmlldy0+aGVpZ2h0
KCkpOwogfQogCi12b2lkIFF0Vmlld0ludGVyZmFjZTo6Y29udGVudFNpemVDaGFuZ2VkKGNvbnN0
IFFTaXplJiBuZXdTaXplKQordm9pZCBRdFZpZXdJbnRlcmZhY2U6OmRpZEZpbmlzaEZpcnN0Tm9u
RW1wdHlMYXlvdXQoKQogewotICAgIG1fdmlld3BvcnRWaWV3LT5kX2Z1bmMoKS0+Y29udGVudFNp
emVDaGFuZ2VkKG5ld1NpemUpOworICAgIG1fdmlld3BvcnRWaWV3LT5kX2Z1bmMoKS0+ZGlkRmlu
aXNoRmlyc3ROb25FbXB0eUxheW91dCgpOworfQorCit2b2lkIFF0Vmlld0ludGVyZmFjZTo6ZGlk
Q2hhbmdlQ29udGVudHNTaXplKGNvbnN0IFFTaXplJiBuZXdTaXplKQoreworICAgIG1fdmlld3Bv
cnRWaWV3LT5kX2Z1bmMoKS0+ZGlkQ2hhbmdlQ29udGVudHNTaXplKG5ld1NpemUpOworfQorCit2
b2lkIFF0Vmlld0ludGVyZmFjZTo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdl
YkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJiBhcmdzKQoreworICAgIG1fdmlld3BvcnRWaWV3LT5k
X2Z1bmMoKS0+ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGFyZ3MpOwogfQogCiB2b2lkIFF0
Vmlld0ludGVyZmFjZTo6c2Nyb2xsUG9zaXRpb25SZXF1ZXN0ZWQoY29uc3QgUVBvaW50JiBwb3Mp
CkBAIC05NywxMiArMTA3LDYgQEAgdm9pZCBRdFZpZXdJbnRlcmZhY2U6OnN0YXJ0RHJhZyhRdDo6
RHJvcAogICAgICpjbGllbnRQb3NpdGlvbiA9IHdpbmRvdy0+bWFwRnJvbUdsb2JhbCgqZ2xvYmFs
UG9zaXRpb24pOwogfQogCi0KLXZvaWQgUXRWaWV3SW50ZXJmYWNlOjpkaWRDaGFuZ2VWaWV3cG9y
dFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmIGFyZ3MpCi17Ci0g
ICAgbV92aWV3cG9ydFZpZXctPmRfZnVuYygpLT5kaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMo
YXJncyk7Ci19Ci0KIHZvaWQgUXRWaWV3SW50ZXJmYWNlOjpkaWRDaGFuZ2VVcmwoY29uc3QgUVVy
bCYgdXJsKQogewogICAgIGVtaXQgbV92aWV3cG9ydFZpZXctPnVybENoYW5nZWQodXJsKTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdJbnRlcmZhY2UuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3SW50ZXJmYWNlLmgJKHJl
dmlzaW9uIDEwMDEzOCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdJbnRl
cmZhY2UuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUsNiBAQCBwdWJsaWM6CiAgICAgdmly
dHVhbCB2b2lkIHNldFZpZXdOZWVkc0Rpc3BsYXkoY29uc3QgUVJlY3QmKTsKIAogICAgIHZpcnR1
YWwgUVNpemUgZHJhd2luZ0FyZWFTaXplKCk7Ci0gICAgdmlydHVhbCB2b2lkIGNvbnRlbnRTaXpl
Q2hhbmdlZChjb25zdCBRU2l6ZSYpOwogICAgIHZpcnR1YWwgdm9pZCBzY3JvbGxQb3NpdGlvblJl
cXVlc3RlZChjb25zdCBRUG9pbnQmIHBvcyk7CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNBY3RpdmUo
KTsKQEAgLTczLDYgKzcyLDkgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc1Zpc2libGUo
KTsKIAogICAgIHZpcnR1YWwgdm9pZCBzdGFydERyYWcoUXQ6OkRyb3BBY3Rpb25zIHN1cHBvcnRl
ZERyb3BBY3Rpb25zLCBjb25zdCBRSW1hZ2UmIGRyYWdJbWFnZSwgUU1pbWVEYXRhKiwgUVBvaW50
KiBjbGllbnRQb3NpdGlvbiwgUVBvaW50KiBnbG9iYWxQb3NpdGlvbiwgUXQ6OkRyb3BBY3Rpb24q
KTsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hGaXJzdE5vbkVtcHR5TGF5b3V0KCk7Cisg
ICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBRU2l6ZSYpOwogICAg
IHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6
Vmlld3BvcnRBcmd1bWVudHMmKTsKIAogICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VVcmwoY29u
c3QgUVVybCYpOwpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld3BvcnRJ
bnRlcmFjdGlvbkVuZ2luZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5jcHAJKHJldmlzaW9uIDEwMDEzOCkK
KysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25Fbmdp
bmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzAsMTAgKzMzMCw5IEBAIHZvaWQgUXRWaWV3cG9y
dEludGVyYWN0aW9uRW5naW5lOjpyZXNldCgKICAgICBwcm9wZXJ0aWVzLnNldFNjcm9sbE1ldHJp
YyhRU2Nyb2xsZXJQcm9wZXJ0aWVzOjpPdmVyc2hvb3RTY3JvbGxEaXN0YW5jZUZhY3RvciwgMC4z
Myk7CiAKICAgICBzY3JvbGxlcigpLT5zZXRTY3JvbGxlclByb3BlcnRpZXMocHJvcGVydGllcyk7
Ci0gICAgc2V0Q29uc3RyYWludHMoQ29uc3RyYWludHMoKSk7CiB9CiAKLXZvaWQgUXRWaWV3cG9y
dEludGVyYWN0aW9uRW5naW5lOjpzZXRDb25zdHJhaW50cyhjb25zdCBDb25zdHJhaW50cyYgY29u
c3RyYWludHMpCit2b2lkIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6YXBwbHlDb25zdHJh
aW50cyhjb25zdCBDb25zdHJhaW50cyYgY29uc3RyYWludHMpCiB7CiAgICAgaWYgKG1fY29uc3Ry
YWludHMgPT0gY29uc3RyYWludHMpCiAgICAgICAgIHJldHVybjsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5n
aW5lLmgJKHJldmlzaW9uIDEwMDEzOCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9R
dFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuaAkod29ya2luZyBjb3B5KQpAQCAtNjUsNyArNjUs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBldmVudChRRXZlbnQqKTsKIAogICAgIHZvaWQgcmVzZXQo
KTsKLSAgICB2b2lkIHNldENvbnN0cmFpbnRzKGNvbnN0IENvbnN0cmFpbnRzJik7CisgICAgdm9p
ZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IENvbnN0cmFpbnRzJik7CiAKICAgICB2b2lkIHNldEl0
ZW1SZWN0VmlzaWJsZShjb25zdCBRUmVjdEYmKTsKICAgICB2b2lkIGFuaW1hdGVJdGVtUmVjdFZp
c2libGUoY29uc3QgUVJlY3RGJik7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQv
UXRXZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9xdC9RdFdlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDEwMDEzOCkKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ0
Niw5ICs0NDYsMTkgQEAgdm9pZCBRdFdlYlBhZ2VQcm94eTo6cGFnZURpZFJlcXVlc3RTY3JvbAog
ICAgIG1fdmlld0ludGVyZmFjZS0+c2Nyb2xsUG9zaXRpb25SZXF1ZXN0ZWQocG9zKTsKIH0KIAor
dm9pZCBRdFdlYlBhZ2VQcm94eTo6ZGlkRmluaXNoRmlyc3ROb25FbXB0eUxheW91dCgpCit7Cisg
ICAgbV92aWV3SW50ZXJmYWNlLT5kaWRGaW5pc2hGaXJzdE5vbkVtcHR5TGF5b3V0KCk7Cit9CisK
IHZvaWQgUXRXZWJQYWdlUHJveHk6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBJbnRTaXpl
JiBuZXdTaXplKQogewotICAgIG1fdmlld0ludGVyZmFjZS0+Y29udGVudFNpemVDaGFuZ2VkKFFT
aXplKG5ld1NpemUpKTsKKyAgICBtX3ZpZXdJbnRlcmZhY2UtPmRpZENoYW5nZUNvbnRlbnRzU2l6
ZShRU2l6ZShuZXdTaXplKSk7Cit9CisKK3ZvaWQgUXRXZWJQYWdlUHJveHk6OmRpZENoYW5nZVZp
ZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYgYXJncykK
K3sKKyAgICBtX3ZpZXdJbnRlcmZhY2UtPmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhhcmdz
KTsKIH0KIAogdm9pZCBRdFdlYlBhZ2VQcm94eTo6dG9vbFRpcENoYW5nZWQoY29uc3QgU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBuZXdUb29sdGlwKQpAQCAtNzkyLDExICs4MDIsNiBAQCB2b2lkIFF0
V2ViUGFnZVByb3h5OjpzdGFydERyYWcoY29uc3QgV2ViCiAgICAgbV93ZWJQYWdlUHJveHktPmRy
YWdFbmRlZChjbGllbnRQb3NpdGlvbiwgZ2xvYmFsUG9zaXRpb24sIGRyb3BBY3Rpb25Ub0RyYWdP
cGVyYXRpb24oYWN0dWFsRHJvcEFjdGlvbikpOwogfQogCi12b2lkIFF0V2ViUGFnZVByb3h5Ojpk
aWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVu
dHMmIGFyZ3MpCi17Ci0gICAgbV92aWV3SW50ZXJmYWNlLT5kaWRDaGFuZ2VWaWV3cG9ydFByb3Bl
cnRpZXMoYXJncyk7Ci19Ci0KIHZvaWQgUXRXZWJQYWdlUHJveHk6OmhhbmRsZURvd25sb2FkUmVx
dWVzdChEb3dubG9hZFByb3h5KiBkb3dubG9hZCkKIHsKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGlz
IHJlc3BvbnNpYmxlIGZvciBob29raW5nIHVwIGEgRG93bmxvYWRQcm94eSB0byBvdXIgQVBJIGxh
eWVyCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHku
aAkocmV2aXNpb24gMTAwMTM4KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2Vi
UGFnZVByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTk5LDEwICs5OSwxMiBAQCBwdWJsaWM6CiAg
ICAgdmlydHVhbCB2b2lkIHByb2Nlc3NEaWRDcmFzaCgpOwogICAgIHZpcnR1YWwgdm9pZCBwYWdl
Q2xvc2VkKCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlbGF1bmNoUHJvY2VzcygpOworCisg
ICAgdmlydHVhbCB2b2lkIGRpZEZpbmlzaEZpcnN0Tm9uRW1wdHlMYXlvdXQoKTsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkQ2hhbmdlQ29udGVudHNTaXplKGNvbnN0IFdlYkNvcmU6OkludFNpemUmKTsK
KyAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNv
cmU6OlZpZXdwb3J0QXJndW1lbnRzJik7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3RhcnREcmFnKGNv
bnN0IFdlYkNvcmU6OkRyYWdEYXRhJiwgUGFzc1JlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGRyYWdJ
bWFnZSk7Ci0gICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25z
dCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJz
b3IoY29uc3QgV2ViQ29yZTo6Q3Vyc29yJik7CiAgICAgdmlydHVhbCB2b2lkIHNldEN1cnNvckhp
ZGRlblVudGlsTW91c2VNb3Zlcyhib29sIGhpZGRlblVudGlsTW91c2VNb3Zlcyk7CiAgICAgdmly
dHVhbCB2b2lkIHRvb2xUaXBDaGFuZ2VkKGNvbnN0IFdURjo6U3RyaW5nJiwgY29uc3QgV1RGOjpT
dHJpbmcmKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115546</attachid>
            <date>2011-11-17 02:31:11 -0800</date>
            <delta_ts>2011-11-17 02:56:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72508-20111117113109.patch</filename>
            <type>text/plain</type>
            <size>16456</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDEwMDU4OSkKKysrIFNvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDExLTExLTE3ICBaYWxhbiBC
dWp0YXMgIDx6YnVqdGFzQGdtYWlsLmNvbT4KKworICAgICAgICBbUXRdW1dLMl0gRG8gbm90IGFw
cGx5IG5ldyB2aWV3cG9ydCBwcm9wZXJ0aWVzIHVudGlsIGFmdGVyIHRoZSBmaXJzdCB2aXN1YWxs
eSBub24tZW1wdHkgbGF5b3V0LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9NzI1MDgKKworICAgICAgICBEZWxheSBhcHBseWluZyB2aWV3cG9ydCBwcm9w
ZXJ0aWVzIG9uIHRoZSB2aWV3cG9ydCBpdGVtIHVudGlsIGFmdGVyIHRoZSBmaXJzdCB2aXN1YWxs
eSBub24tZW1wdHkKKyAgICAgICAgbGF5b3V0IGZpbmlzaGVkLiBJdCBlbmFibGVzIHRoZSB2aWV3
cG9ydCB0byBiZSBpbnRhY3QgdW50aWwgdGhlIG5ldyBwYWdlIGlzIHJlYWR5IHRvIGJlIHJlbmRl
cmVkLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3ZWJ2aWV3LmNwcDoKKyAgICAgICAgKFFRdWlja1dlYlZp
ZXdQcml2YXRlOjpRUXVpY2tXZWJWaWV3UHJpdmF0ZSk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3
UHJpdmF0ZTo6bG9hZERpZENvbW1pdCk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6
ZGlkRmluaXNoRmlyc3ROb25FbXB0eUxheW91dCk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJp
dmF0ZTo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKToKKyAgICAgICAgKFFRdWlja1dlYlZpZXdQcml2
YXRlOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMpOgorICAgICAgICAoUVF1aWNrV2ViVmll
d1ByaXZhdGU6OnVwZGF0ZVZpZXdwb3J0U2l6ZSk6CisgICAgICAgIChRUXVpY2tXZWJWaWV3UHJp
dmF0ZTo6Y29tcHV0ZVZpZXdwb3J0Q29uc3RyYWludHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvcXQvcXF1aWNrd2Vidmlld19wLmg6CisgICAgICAgIChQb3N0VHJhbnNpdGlvblN0YXRlOjpp
c1RyYW5zaXRpb25pbmdUb05ld1BhZ2UpOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9DbGllbnRJ
bXBsLmNwcDoKKyAgICAgICAgKHF0X3drX2RpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZv
ckZyYW1lKToKKyAgICAgICAgKHNldHVwUGFnZUxvYWRlckNsaWVudCk6CisgICAgICAgICogVUlQ
cm9jZXNzL3F0L1F0Vmlld0ludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlF0Vmlld0lu
dGVyZmFjZTo6ZGlkRmluaXNoRmlyc3ROb25FbXB0eUxheW91dCk6CisgICAgICAgIChXZWJLaXQ6
OlF0Vmlld0ludGVyZmFjZTo6ZGlkQ2hhbmdlQ29udGVudHNTaXplKToKKyAgICAgICAgKFdlYktp
dDo6UXRWaWV3SW50ZXJmYWNlOjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMpOgorICAgICAg
ICAoV2ViS2l0OjpRdFZpZXdJbnRlcmZhY2U6OnN0YXJ0RHJhZyk6CisgICAgICAgICogVUlQcm9j
ZXNzL3F0L1F0Vmlld0ludGVyZmFjZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9xdC9RdFZpZXdw
b3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwOgorICAgICAgICAoV2ViS2l0OjpRdFZpZXdwb3J0SW50
ZXJhY3Rpb25FbmdpbmU6OnJlc2V0KToKKyAgICAgICAgKFdlYktpdDo6UXRWaWV3cG9ydEludGVy
YWN0aW9uRW5naW5lOjphcHBseUNvbnN0cmFpbnRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvcXQv
UXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmg6CisgICAgICAgICogVUlQcm9jZXNzL3F0L1F0
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFF0V2ViUGFnZVByb3h5OjpkaWRGaW5pc2hGaXJz
dE5vbkVtcHR5TGF5b3V0KToKKyAgICAgICAgKFF0V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VDb250
ZW50c1NpemUpOgorICAgICAgICAoUXRXZWJQYWdlUHJveHk6OmRpZENoYW5nZVZpZXdwb3J0UHJv
cGVydGllcyk6CisgICAgICAgIChRdFdlYlBhZ2VQcm94eTo6c3RhcnREcmFnKToKKyAgICAgICAg
KiBVSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuaDoKKwogMjAxMS0xMS0xNyAgRXVubWkgTGVl
ICA8ZXVubWkxNS5sZWVAc2Ftc3VuZy5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgTWFydGlu
IFJvYmluc29uLgpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9xdC9xcXVpY2t3
ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL3F0
L3FxdWlja3dlYnZpZXcuY3BwCShyZXZpc2lvbiAxMDA1ODQpCisrKyBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2
ICszOSw4IEBACiAKIFFRdWlja1dlYlZpZXdQcml2YXRlOjpRUXVpY2tXZWJWaWV3UHJpdmF0ZSgp
CiAgICAgOiBxX3B0cigwKQorICAgICwgcG9zdFRyYW5zaXRpb25TdGF0ZShhZG9wdFB0cihuZXcg
UG9zdFRyYW5zaXRpb25TdGF0ZSh0aGlzKSkpCisgICAgLCB0cmFuc2l0aW9uaW5nVG9OZXdQYWdl
KGZhbHNlKQogICAgICwgdXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKGZhbHNlKQogewog
fQpAQCAtMTAzLDE5ICsxMDUsNDYgQEAgdm9pZCBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6aW5pdGlh
bGl6ZVRvdQogCiB2b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpsb2FkRGlkQ29tbWl0KCkKIHsK
LSAgICBpZiAoIXVzZVRyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91cikKLSAgICAgICAgaW50ZXJh
Y3Rpb25FbmdpbmUtPnJlc2V0KCk7CisgICAgdHJhbnNpdGlvbmluZ1RvTmV3UGFnZSA9IHRydWU7
CiB9CiAKLXZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmNvbnRlbnRTaXplQ2hhbmdlZChjb25z
dCBRU2l6ZSYgbmV3U2l6ZSkKK3ZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OmRpZEZpbmlzaEZp
cnN0Tm9uRW1wdHlMYXlvdXQoKQogeworICAgIHRyYW5zaXRpb25pbmdUb05ld1BhZ2UgPSBmYWxz
ZTsKKwogICAgIGlmICh1c2VUcmFkaXRpb25hbERlc2t0b3BCZWhhdmlvdXIpCiAgICAgICAgIHJl
dHVybjsKIAorICAgIHBvc3RUcmFuc2l0aW9uU3RhdGUtPmFwcGx5KCk7Cit9CisKK3ZvaWQgUVF1
aWNrV2ViVmlld1ByaXZhdGU6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBRU2l6ZSYgbmV3
U2l6ZSkKK3sKKyAgICBpZiAodXNlVHJhZGl0aW9uYWxEZXNrdG9wQmVoYXZpb3VyKQorICAgICAg
ICByZXR1cm47CisKKyAgICBpZiAoaXNUcmFuc2l0aW9uaW5nVG9OZXdQYWdlKCkpIHsKKyAgICAg
ICAgcG9zdFRyYW5zaXRpb25TdGF0ZS0+Y29udGVudHNTaXplID0gbmV3U2l6ZTsKKyAgICAgICAg
cmV0dXJuOworICAgIH0KKwogICAgIHBhZ2VWaWV3LT5zZXRXaWR0aChuZXdTaXplLndpZHRoKCkp
OwogICAgIHBhZ2VWaWV3LT5zZXRIZWlnaHQobmV3U2l6ZS5oZWlnaHQoKSk7CiB9CiAKK3ZvaWQg
UVF1aWNrV2ViVmlld1ByaXZhdGU6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBX
ZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBpZiAodXNlVHJhZGl0aW9u
YWxEZXNrdG9wQmVoYXZpb3VyKQorICAgICAgICByZXR1cm47CisKKyAgICB2aWV3cG9ydEFyZ3Vt
ZW50cyA9IGFyZ3M7CisKKyAgICBpZiAoaXNUcmFuc2l0aW9uaW5nVG9OZXdQYWdlKCkpCisgICAg
ICAgIHJldHVybjsKKworICAgIGludGVyYWN0aW9uRW5naW5lLT5hcHBseUNvbnN0cmFpbnRzKGNv
bXB1dGVWaWV3cG9ydENvbnN0cmFpbnRzKCkpOworfQorCiB2b2lkIFFRdWlja1dlYlZpZXdQcml2
YXRlOjpzY3JvbGxQb3NpdGlvblJlcXVlc3RlZChjb25zdCBRUG9pbnQmIHBvcykKIHsKICAgICBp
ZiAoIXVzZVRyYWRpdGlvbmFsRGVza3RvcEJlaGF2aW91cikKQEAgLTE0Miw3ICsxNzEsNiBAQCB2
b2lkIFFRdWlja1dlYlZpZXdQcml2YXRlOjpfcV9vblZpc2libGVDCiAgICAgd2tQYWdlLT52aWV3
U3RhdGVEaWRDaGFuZ2UoV2ViUGFnZVByb3h5OjpWaWV3SXNWaXNpYmxlKTsKIH0KIAotCiB2b2lk
IFFRdWlja1dlYlZpZXdQcml2YXRlOjp1cGRhdGVWaWV3cG9ydFNpemUoKQogewogICAgIFFfUShR
UXVpY2tXZWJWaWV3KTsKQEAgLTE1NSwxNyArMTgzLDE4IEBAIHZvaWQgUVF1aWNrV2ViVmlld1By
aXZhdGU6OnVwZGF0ZVZpZXdwb3IKICAgICAvLyBMZXQgdGhlIFdlYlByb2Nlc3Mga25vdyBhYm91
dCB0aGUgbmV3IHZpZXdwb3J0IHNpemUsIHNvIHRoYXQKICAgICAvLyBpdCBjYW4gcmVzaXplIHRo
ZSBjb250ZW50IGFjY29yZGluZ2x5LgogICAgIHdrUGFnZS0+c2V0Vmlld3BvcnRTaXplKHZpZXdw
b3J0U2l6ZSk7Ci0gICAgdXBkYXRlVmlld3BvcnRDb25zdHJhaW50cygpOworCisgICAgaW50ZXJh
Y3Rpb25FbmdpbmUtPmFwcGx5Q29uc3RyYWludHMoY29tcHV0ZVZpZXdwb3J0Q29uc3RyYWludHMo
KSk7CiAgICAgX3Ffdmlld3BvcnRVcGRhdGVkKCk7CiB9CiAKLXZvaWQgUVF1aWNrV2ViVmlld1By
aXZhdGU6OnVwZGF0ZVZpZXdwb3J0Q29uc3RyYWludHMoKQorUXRWaWV3cG9ydEludGVyYWN0aW9u
RW5naW5lOjpDb25zdHJhaW50cyBRUXVpY2tXZWJWaWV3UHJpdmF0ZTo6Y29tcHV0ZVZpZXdwb3J0
Q29uc3RyYWludHMoKQogewogICAgIFFfUShRUXVpY2tXZWJWaWV3KTsKKwogICAgIFFTaXplIGF2
YWlsYWJsZVNpemUgPSBxLT5ib3VuZGluZ1JlY3QoKS5zaXplKCkudG9TaXplKCk7CiAKLSAgICBp
ZiAoYXZhaWxhYmxlU2l6ZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybjsKKyAgICBRX0FTU0VS
VCghYXZhaWxhYmxlU2l6ZS5pc0VtcHR5KCkpOwogCiAgICAgV2ViUGFnZVByb3h5KiB3a1BhZ2Ug
PSB0b0ltcGwocGFnZVByb3h5LT5wYWdlUmVmKCkpOwogICAgIFdlYlByZWZlcmVuY2VzKiB3a1By
ZWZzID0gd2tQYWdlLT5wYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKTsKQEAgLTE4MiwyNyArMjEx
LDE2IEBAIHZvaWQgUVF1aWNrV2ViVmlld1ByaXZhdGU6OnVwZGF0ZVZpZXdwb3IKICAgICBXZWJD
b3JlOjpyZXN0cmljdFNjYWxlRmFjdG9yVG9Jbml0aWFsU2NhbGVJZk5vdFVzZXJTY2FsYWJsZShh
dHRyKTsKIAogICAgIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6Q29uc3RyYWludHMgbmV3
Q29uc3RyYWludHM7CisKICAgICBuZXdDb25zdHJhaW50cy5pbml0aWFsU2NhbGUgPSBhdHRyLmlu
aXRpYWxTY2FsZTsKICAgICBuZXdDb25zdHJhaW50cy5taW5pbXVtU2NhbGUgPSBhdHRyLm1pbmlt
dW1TY2FsZTsKICAgICBuZXdDb25zdHJhaW50cy5tYXhpbXVtU2NhbGUgPSBhdHRyLm1heGltdW1T
Y2FsZTsKICAgICBuZXdDb25zdHJhaW50cy5kZXZpY2VQaXhlbFJhdGlvID0gYXR0ci5kZXZpY2VQ
aXhlbFJhdGlvOwogICAgIG5ld0NvbnN0cmFpbnRzLmlzVXNlclNjYWxhYmxlID0gISFhdHRyLnVz
ZXJTY2FsYWJsZTsKLSAgICBpbnRlcmFjdGlvbkVuZ2luZS0+c2V0Q29uc3RyYWludHMobmV3Q29u
c3RyYWludHMpOwogCi0gICAgLy8gT3ZlcndyaXRlIG1pbmltdW0gc2NhbGUgdmFsdWUgd2l0aCBm
aXQtdG8tdmlldyB2YWx1ZSwgdW5sZXNzIHRoZSB0aGUgY29udGVudCBhdXRob3IKLSAgICAvLyBl
eHBsaWNpdGx5IHNheXMgbm8uIE5COiBXZSBjYW4gb25seSBkbyB0aGlzIHdoZW4gd2Uga25vdyB3
ZSBoYXZlIGEgdmFsaWQgc2l6ZSwgaWUuCi0gICAgLy8gYWZ0ZXIgaW5pdGlhbCBsYXlvdXQgaGFz
IGNvbXBsZXRlZC4KKyAgICByZXR1cm4gbmV3Q29uc3RyYWludHM7CiB9CiAKLXZvaWQgUVF1aWNr
V2ViVmlld1ByaXZhdGU6OmRpZENoYW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3Jl
OjpWaWV3cG9ydEFyZ3VtZW50cyYgYXJncykKLXsKLSAgICBpZiAodXNlVHJhZGl0aW9uYWxEZXNr
dG9wQmVoYXZpb3VyKQotICAgICAgICByZXR1cm47Ci0gICAgdmlld3BvcnRBcmd1bWVudHMgPSBh
cmdzOwotICAgIHVwZGF0ZVZpZXdwb3J0Q29uc3RyYWludHMoKTsKLX0KLQotCiB2b2lkIFFRdWlj
a1dlYlZpZXdQcml2YXRlOjpydW5KYXZhU2NyaXB0QWxlcnQoY29uc3QgUVN0cmluZyYgYWxlcnRU
ZXh0KQogewogI2lmbmRlZiBRVF9OT19NRVNTQUdFQk9YCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL3F0L3FxdWlja3dlYnZpZXdfcC5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgJKHJldmlzaW9uIDEwMDU4
NCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvcXQvcXF1aWNrd2Vidmlld19wLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDYgKzMwLDcgQEAKIAogI2luY2x1ZGUgPFF0Q29yZS9RT2Jq
ZWN0PgogI2luY2x1ZGUgPFF0Q29yZS9RU2NvcGVkUG9pbnRlcj4KKyNpbmNsdWRlIDx3dGYvT3du
UHRyLmg+CiAKIGNsYXNzIFF0V2ViUGFnZVByb3h5OwogCkBAIC01MSwxMCArNTIsMTQgQEAgcHVi
bGljOgogICAgIHZvaWQgZGlzYWJsZU1vdXNlRXZlbnRzKCk7CiAKICAgICB2b2lkIGxvYWREaWRD
b21taXQoKTsKLSAgICB2b2lkIGNvbnRlbnRTaXplQ2hhbmdlZChjb25zdCBRU2l6ZSYgbmV3U2l6
ZSk7CisKKyAgICB2b2lkIGRpZEZpbmlzaEZpcnN0Tm9uRW1wdHlMYXlvdXQoKTsKKyAgICB2b2lk
IGRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBRU2l6ZSYgbmV3U2l6ZSk7CisgICAgdm9pZCBk
aWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVu
dHMmIGFyZ3MpOworCiAgICAgdm9pZCBzY3JvbGxQb3NpdGlvblJlcXVlc3RlZChjb25zdCBRUG9p
bnQmIHBvcyk7CiAgICAgdm9pZCB1cGRhdGVWaWV3cG9ydFNpemUoKTsKLSAgICB2b2lkIHVwZGF0
ZVZpZXdwb3J0Q29uc3RyYWludHMoKTsKKyAgICBRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU6
OkNvbnN0cmFpbnRzIGNvbXB1dGVWaWV3cG9ydENvbnN0cmFpbnRzKCk7CiAKICAgICBzdGF0aWMg
UVF1aWNrV2ViVmlld1ByaXZhdGUqIGdldChRUXVpY2tXZWJWaWV3KiB2aWV3KQogICAgIHsKQEAg
LTc0LDIxICs3OSw1MSBAQCBwdWJsaWM6CiAgICAgdm9pZCBydW5KYXZhU2NyaXB0QWxlcnQoY29u
c3QgUVN0cmluZyYpOwogICAgIGJvb2wgcnVuSmF2YVNjcmlwdENvbmZpcm0oY29uc3QgUVN0cmlu
ZyYpOwogICAgIFFTdHJpbmcgcnVuSmF2YVNjcmlwdFByb21wdChjb25zdCBRU3RyaW5nJiwgY29u
c3QgUVN0cmluZyYgZGVmYXVsdFZhbHVlLCBib29sJiBvayk7Ci0gICAgdm9pZCBkaWRDaGFuZ2VW
aWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMmIGFyZ3Mp
OwogCiBwdWJsaWMgc2xvdHM6CiAgICAgdm9pZCBzZXRVc2VUcmFkaXRpb25hbERlc2t0b3BCZWhh
dmlvdXIoYm9vbCBlbmFibGUpOwogCiBwcml2YXRlOgorCisgICAgLy8gVGhpcyBjbGFzcyBpcyBy
ZXNwb25zaWJsZSBmb3IgY29sbGVjdGluZyBhbmQgYXBwbHlpbmcgYWxsIHByb3BlcnRpZXMKKyAg
ICAvLyBvbiB0aGUgdmlld3BvcnQgaXRlbSwgd2hlbiB0cmFuc2l0aW9uaW5nIGZyb20gcGFnZSBB
IHRvIHBhZ2UgQiBpcyBmaW5pc2hlZC4KKyAgICAvLyBTZWUgbW9yZSBhdCBodHRwczovL3RyYWMu
d2Via2l0Lm9yZy93aWtpL1F0V2ViS2l0TGF5b3V0SW50ZXJhY3Rpb24KKyAgICBjbGFzcyBQb3N0
VHJhbnNpdGlvblN0YXRlIHsKKyAgICBwdWJsaWM6CisgICAgICAgIFBvc3RUcmFuc2l0aW9uU3Rh
dGUoUVF1aWNrV2ViVmlld1ByaXZhdGUqIHBhcmVudCkKKyAgICAgICAgICAgIDogcChwYXJlbnQp
CisgICAgICAgIHsgfQorCisgICAgICAgIHZvaWQgYXBwbHkoKQorICAgICAgICB7CisgICAgICAg
ICAgICBwLT5pbnRlcmFjdGlvbkVuZ2luZS0+cmVzZXQoKTsKKyAgICAgICAgICAgIHAtPmludGVy
YWN0aW9uRW5naW5lLT5hcHBseUNvbnN0cmFpbnRzKHAtPmNvbXB1dGVWaWV3cG9ydENvbnN0cmFp
bnRzKCkpOworCisgICAgICAgICAgICBpZiAoY29udGVudHNTaXplLmlzVmFsaWQoKSkgeworICAg
ICAgICAgICAgICAgIHAtPnBhZ2VWaWV3LT5zZXRXaWR0aChjb250ZW50c1NpemUud2lkdGgoKSk7
CisgICAgICAgICAgICAgICAgcC0+cGFnZVZpZXctPnNldEhlaWdodChjb250ZW50c1NpemUuaGVp
Z2h0KCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBjb250ZW50c1NpemUgPSBRU2l6
ZSgpOworICAgICAgICB9CisKKyAgICAgICAgUVF1aWNrV2ViVmlld1ByaXZhdGUqIHA7CisgICAg
ICAgIFFTaXplIGNvbnRlbnRzU2l6ZTsKKyAgICB9OworCisgICAgYm9vbCBpc1RyYW5zaXRpb25p
bmdUb05ld1BhZ2UoKSBjb25zdCB7IHJldHVybiB0cmFuc2l0aW9uaW5nVG9OZXdQYWdlOyB9CisK
ICAgICBRU2NvcGVkUG9pbnRlcjxRUXVpY2tXZWJQYWdlPiBwYWdlVmlldzsKICAgICBRU2NvcGVk
UG9pbnRlcjxXZWJLaXQ6OlF0Vmlld0ludGVyZmFjZT4gdmlld0ludGVyZmFjZTsKICAgICBRU2Nv
cGVkUG9pbnRlcjxRdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmU+IGludGVyYWN0aW9uRW5naW5l
OwogCi0gICAgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMgdmlld3BvcnRBcmd1bWVudHM7Ci0K
ICAgICBRUXVpY2tXZWJWaWV3KiBxX3B0cjsKICAgICBRU2NvcGVkUG9pbnRlcjxRdFdlYlBhZ2VQ
cm94eT4gcGFnZVByb3h5OwogCisgICAgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVudHMgdmlld3Bv
cnRBcmd1bWVudHM7CisgICAgT3duUHRyPFBvc3RUcmFuc2l0aW9uU3RhdGU+IHBvc3RUcmFuc2l0
aW9uU3RhdGU7CisgICAgYm9vbCB0cmFuc2l0aW9uaW5nVG9OZXdQYWdlOworCiAgICAgYm9vbCB1
c2VUcmFkaXRpb25hbERlc2t0b3BCZWhhdmlvdXI7CiAgICAgUUZpbGVEaWFsb2cqIGZpbGVEaWFs
b2c7CiAgICAgV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclJlZiBvcGVuUGFuZWxSZXN1bHRMaXN0
ZW5lcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9DbGllbnRJbXBsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvQ2xpZW50SW1wbC5jcHAJ
KHJldmlzaW9uIDEwMDU4NCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9DbGllbnRJ
bXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUxLDYgKzE1MSwxNCBAQCBzdGF0aWMgdm9pZCBx
dF93a19kaWRGaW5pc2hQcm9ncmVzcyhXS1BhCiAgICAgdG9RdFdlYlBhZ2VQcm94eShjbGllbnRJ
bmZvKS0+ZGlkQ2hhbmdlTG9hZFByb2dyZXNzKDEwMCk7CiB9CiAKK3N0YXRpYyB2b2lkIHF0X3dr
X2RpZEZpcnN0VmlzdWFsbHlOb25FbXB0eUxheW91dEZvckZyYW1lKFdLUGFnZVJlZiBwYWdlLCBX
S0ZyYW1lUmVmIGZyYW1lLCBXS1R5cGVSZWYgdXNlckRhdGEsIGNvbnN0IHZvaWQgKmNsaWVudElu
Zm8pCit7CisgICAgaWYgKCFXS0ZyYW1lSXNNYWluRnJhbWUoZnJhbWUpKQorICAgICAgICByZXR1
cm47CisKKyAgICB0b1F0V2ViUGFnZVByb3h5KGNsaWVudEluZm8pLT5kaWRGaW5pc2hGaXJzdE5v
bkVtcHR5TGF5b3V0KCk7Cit9CisKIHN0YXRpYyB2b2lkIHF0X3drX3J1bkphdmFTY3JpcHRBbGVy
dChXS1BhZ2VSZWYgcGFnZSwgV0tTdHJpbmdSZWYgYWxlcnRUZXh0LCBXS0ZyYW1lUmVmIGZyYW1l
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQogewogICAgIFFTdHJpbmcgcUFsZXJ0VGV4dCA9IFdL
U3RyaW5nQ29weVFTdHJpbmcoYWxlcnRUZXh0KTsKQEAgLTMxNiw2ICszMjQsNyBAQCB2b2lkIHNl
dHVwUGFnZUxvYWRlckNsaWVudChRdFdlYlBhZ2VQcm94CiAgICAgbG9hZENsaWVudC5kaWRTdGFy
dFByb2dyZXNzID0gcXRfd2tfZGlkU3RhcnRQcm9ncmVzczsKICAgICBsb2FkQ2xpZW50LmRpZENo
YW5nZVByb2dyZXNzID0gcXRfd2tfZGlkQ2hhbmdlUHJvZ3Jlc3M7CiAgICAgbG9hZENsaWVudC5k
aWRGaW5pc2hQcm9ncmVzcyA9IHF0X3drX2RpZEZpbmlzaFByb2dyZXNzOworICAgIGxvYWRDbGll
bnQuZGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yRnJhbWUgPSBxdF93a19kaWRGaXJz
dFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JGcmFtZTsKICAgICBXS1BhZ2VTZXRQYWdlTG9hZGVy
Q2xpZW50KHF0V2ViUGFnZVByb3h5LT5wYWdlUmVmKCksICZsb2FkQ2xpZW50KTsKIH0KIApJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld0ludGVyZmFjZS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0Vmlld0ludGVyZmFjZS5jcHAJ
KHJldmlzaW9uIDEwMDU4NCkKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdJ
bnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01Nyw5ICs1NywxOSBAQCBRU2l6ZSBRdFZp
ZXdJbnRlcmZhY2U6OmRyYXdpbmdBcmVhU2l6ZSgpCiAgICAgcmV0dXJuIFFTaXplKG1fcGFnZVZp
ZXctPndpZHRoKCksIG1fcGFnZVZpZXctPmhlaWdodCgpKTsKIH0KIAotdm9pZCBRdFZpZXdJbnRl
cmZhY2U6OmNvbnRlbnRTaXplQ2hhbmdlZChjb25zdCBRU2l6ZSYgbmV3U2l6ZSkKK3ZvaWQgUXRW
aWV3SW50ZXJmYWNlOjpkaWRGaW5pc2hGaXJzdE5vbkVtcHR5TGF5b3V0KCkKIHsKLSAgICBtX3Zp
ZXdwb3J0Vmlldy0+ZF9mdW5jKCktPmNvbnRlbnRTaXplQ2hhbmdlZChuZXdTaXplKTsKKyAgICBt
X3ZpZXdwb3J0Vmlldy0+ZF9mdW5jKCktPmRpZEZpbmlzaEZpcnN0Tm9uRW1wdHlMYXlvdXQoKTsK
K30KKwordm9pZCBRdFZpZXdJbnRlcmZhY2U6OmRpZENoYW5nZUNvbnRlbnRzU2l6ZShjb25zdCBR
U2l6ZSYgbmV3U2l6ZSkKK3sKKyAgICBtX3ZpZXdwb3J0Vmlldy0+ZF9mdW5jKCktPmRpZENoYW5n
ZUNvbnRlbnRzU2l6ZShuZXdTaXplKTsKK30KKwordm9pZCBRdFZpZXdJbnRlcmZhY2U6OmRpZENo
YW5nZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYg
YXJncykKK3sKKyAgICBtX3ZpZXdwb3J0Vmlldy0+ZF9mdW5jKCktPmRpZENoYW5nZVZpZXdwb3J0
UHJvcGVydGllcyhhcmdzKTsKIH0KIAogdm9pZCBRdFZpZXdJbnRlcmZhY2U6OnNjcm9sbFBvc2l0
aW9uUmVxdWVzdGVkKGNvbnN0IFFQb2ludCYgcG9zKQpAQCAtOTcsMTIgKzEwNyw2IEBAIHZvaWQg
UXRWaWV3SW50ZXJmYWNlOjpzdGFydERyYWcoUXQ6OkRyb3AKICAgICAqY2xpZW50UG9zaXRpb24g
PSB3aW5kb3ctPm1hcEZyb21HbG9iYWwoKmdsb2JhbFBvc2l0aW9uKTsKIH0KIAotCi12b2lkIFF0
Vmlld0ludGVyZmFjZTo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6
OlZpZXdwb3J0QXJndW1lbnRzJiBhcmdzKQotewotICAgIG1fdmlld3BvcnRWaWV3LT5kX2Z1bmMo
KS0+ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGFyZ3MpOwotfQotCiB2b2lkIFF0Vmlld0lu
dGVyZmFjZTo6ZGlkQ2hhbmdlVXJsKGNvbnN0IFFVcmwmIHVybCkKIHsKICAgICBlbWl0IG1fdmll
d3BvcnRWaWV3LT51cmxDaGFuZ2VkKHVybCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvUXRWaWV3SW50ZXJmYWNlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL3F0L1F0Vmlld0ludGVyZmFjZS5oCShyZXZpc2lvbiAxMDA1ODQpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3SW50ZXJmYWNlLmgJKHdvcmtpbmcgY29weSkKQEAg
LTY1LDcgKzY1LDYgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRWaWV3TmVlZHNEaXNw
bGF5KGNvbnN0IFFSZWN0Jik7CiAKICAgICB2aXJ0dWFsIFFTaXplIGRyYXdpbmdBcmVhU2l6ZSgp
OwotICAgIHZpcnR1YWwgdm9pZCBjb250ZW50U2l6ZUNoYW5nZWQoY29uc3QgUVNpemUmKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2Nyb2xsUG9zaXRpb25SZXF1ZXN0ZWQoY29uc3QgUVBvaW50JiBwb3Mp
OwogCiAgICAgdmlydHVhbCBib29sIGlzQWN0aXZlKCk7CkBAIC03Myw2ICs3Miw5IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIGJvb2wgaXNWaXNpYmxlKCk7CiAKICAgICB2aXJ0dWFsIHZvaWQgc3Rh
cnREcmFnKFF0OjpEcm9wQWN0aW9ucyBzdXBwb3J0ZWREcm9wQWN0aW9ucywgY29uc3QgUUltYWdl
JiBkcmFnSW1hZ2UsIFFNaW1lRGF0YSosIFFQb2ludCogY2xpZW50UG9zaXRpb24sIFFQb2ludCog
Z2xvYmFsUG9zaXRpb24sIFF0OjpEcm9wQWN0aW9uKik7CisKKyAgICB2aXJ0dWFsIHZvaWQgZGlk
RmluaXNoRmlyc3ROb25FbXB0eUxheW91dCgpOworICAgIHZpcnR1YWwgdm9pZCBkaWRDaGFuZ2VD
b250ZW50c1NpemUoY29uc3QgUVNpemUmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVmll
d3BvcnRQcm9wZXJ0aWVzKGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJik7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgZGlkQ2hhbmdlVXJsKGNvbnN0IFFVcmwmKTsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rpb25FbmdpbmUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFZpZXdwb3J0SW50ZXJhY3Rp
b25FbmdpbmUuY3BwCShyZXZpc2lvbiAxMDA1ODQpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5lLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzMwLDEwICszMzAsOSBAQCB2b2lkIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6cmVzZXQo
CiAgICAgcHJvcGVydGllcy5zZXRTY3JvbGxNZXRyaWMoUVNjcm9sbGVyUHJvcGVydGllczo6T3Zl
cnNob290U2Nyb2xsRGlzdGFuY2VGYWN0b3IsIDAuMzMpOwogCiAgICAgc2Nyb2xsZXIoKS0+c2V0
U2Nyb2xsZXJQcm9wZXJ0aWVzKHByb3BlcnRpZXMpOwotICAgIHNldENvbnN0cmFpbnRzKENvbnN0
cmFpbnRzKCkpOwogfQogCi12b2lkIFF0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZTo6c2V0Q29u
c3RyYWludHMoY29uc3QgQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQordm9pZCBRdFZpZXdwb3J0
SW50ZXJhY3Rpb25FbmdpbmU6OmFwcGx5Q29uc3RyYWludHMoY29uc3QgQ29uc3RyYWludHMmIGNv
bnN0cmFpbnRzKQogewogICAgIGlmIChtX2NvbnN0cmFpbnRzID09IGNvbnN0cmFpbnRzKQogICAg
ICAgICByZXR1cm47CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9y
dEludGVyYWN0aW9uRW5naW5lLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1F0Vmlld3BvcnRJbnRlcmFjdGlvbkVuZ2luZS5oCShyZXZpc2lvbiAxMDA1ODQpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRWaWV3cG9ydEludGVyYWN0aW9uRW5naW5l
LmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogICAgIGJvb2wgZXZl
bnQoUUV2ZW50Kik7CiAKICAgICB2b2lkIHJlc2V0KCk7Ci0gICAgdm9pZCBzZXRDb25zdHJhaW50
cyhjb25zdCBDb25zdHJhaW50cyYpOworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBD
b25zdHJhaW50cyYpOwogCiAgICAgdm9pZCBzZXRJdGVtUmVjdFZpc2libGUoY29uc3QgUVJlY3RG
Jik7CiAgICAgdm9pZCBhbmltYXRlSXRlbVJlY3RWaXNpYmxlKGNvbnN0IFFSZWN0RiYpOwpJbmRl
eDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdlUHJveHkuY3BwCShy
ZXZpc2lvbiAxMDA1ODQpCisrKyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvUXRXZWJQYWdl
UHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NDYsOSArNDQ2LDE5IEBAIHZvaWQgUXRXZWJQ
YWdlUHJveHk6OnBhZ2VEaWRSZXF1ZXN0U2Nyb2wKICAgICBtX3ZpZXdJbnRlcmZhY2UtPnNjcm9s
bFBvc2l0aW9uUmVxdWVzdGVkKHBvcyk7CiB9CiAKK3ZvaWQgUXRXZWJQYWdlUHJveHk6OmRpZEZp
bmlzaEZpcnN0Tm9uRW1wdHlMYXlvdXQoKQoreworICAgIG1fdmlld0ludGVyZmFjZS0+ZGlkRmlu
aXNoRmlyc3ROb25FbXB0eUxheW91dCgpOworfQorCiB2b2lkIFF0V2ViUGFnZVByb3h5OjpkaWRD
aGFuZ2VDb250ZW50c1NpemUoY29uc3QgSW50U2l6ZSYgbmV3U2l6ZSkKIHsKLSAgICBtX3ZpZXdJ
bnRlcmZhY2UtPmNvbnRlbnRTaXplQ2hhbmdlZChRU2l6ZShuZXdTaXplKSk7CisgICAgbV92aWV3
SW50ZXJmYWNlLT5kaWRDaGFuZ2VDb250ZW50c1NpemUoUVNpemUobmV3U2l6ZSkpOworfQorCit2
b2lkIFF0V2ViUGFnZVByb3h5OjpkaWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2Vi
Q29yZTo6Vmlld3BvcnRBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgbV92aWV3SW50ZXJmYWNlLT5k
aWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoYXJncyk7CiB9CiAKIHZvaWQgUXRXZWJQYWdlUHJv
eHk6OnRvb2xUaXBDaGFuZ2VkKGNvbnN0IFN0cmluZyYsIGNvbnN0IFN0cmluZyYgbmV3VG9vbHRp
cCkKQEAgLTc5MiwxMSArODAyLDYgQEAgdm9pZCBRdFdlYlBhZ2VQcm94eTo6c3RhcnREcmFnKGNv
bnN0IFdlYgogICAgIG1fd2ViUGFnZVByb3h5LT5kcmFnRW5kZWQoY2xpZW50UG9zaXRpb24sIGds
b2JhbFBvc2l0aW9uLCBkcm9wQWN0aW9uVG9EcmFnT3BlcmF0aW9uKGFjdHVhbERyb3BBY3Rpb24p
KTsKIH0KIAotdm9pZCBRdFdlYlBhZ2VQcm94eTo6ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVz
KGNvbnN0IFdlYkNvcmU6OlZpZXdwb3J0QXJndW1lbnRzJiBhcmdzKQotewotICAgIG1fdmlld0lu
dGVyZmFjZS0+ZGlkQ2hhbmdlVmlld3BvcnRQcm9wZXJ0aWVzKGFyZ3MpOwotfQotCiB2b2lkIFF0
V2ViUGFnZVByb3h5OjpoYW5kbGVEb3dubG9hZFJlcXVlc3QoRG93bmxvYWRQcm94eSogZG93bmxv
YWQpCiB7CiAgICAgLy8gVGhpcyBmdW5jdGlvbiBpcyByZXNwb25zaWJsZSBmb3IgaG9va2luZyB1
cCBhIERvd25sb2FkUHJveHkgdG8gb3VyIEFQSSBsYXllcgpJbmRleDogU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3F0L1F0V2ViUGFnZVByb3h5LmgJKHJldmlzaW9uIDEwMDU4NCkKKysrIFNv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9RdFdlYlBhZ2VQcm94eS5oCSh3b3JraW5nIGNvcHkp
CkBAIC05OSwxMCArOTksMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBwcm9jZXNzRGlk
Q3Jhc2goKTsKICAgICB2aXJ0dWFsIHZvaWQgcGFnZUNsb3NlZCgpIHsgfQogICAgIHZpcnR1YWwg
dm9pZCBkaWRSZWxhdW5jaFByb2Nlc3MoKTsKKworICAgIHZpcnR1YWwgdm9pZCBkaWRGaW5pc2hG
aXJzdE5vbkVtcHR5TGF5b3V0KCk7CiAgICAgdmlydHVhbCB2b2lkIGRpZENoYW5nZUNvbnRlbnRz
U2l6ZShjb25zdCBXZWJDb3JlOjpJbnRTaXplJik7CisgICAgdmlydHVhbCB2b2lkIGRpZENoYW5n
ZVZpZXdwb3J0UHJvcGVydGllcyhjb25zdCBXZWJDb3JlOjpWaWV3cG9ydEFyZ3VtZW50cyYpOwog
CiAgICAgdmlydHVhbCB2b2lkIHN0YXJ0RHJhZyhjb25zdCBXZWJDb3JlOjpEcmFnRGF0YSYsIFBh
c3NSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBkcmFnSW1hZ2UpOwotICAgIHZpcnR1YWwgdm9pZCBk
aWRDaGFuZ2VWaWV3cG9ydFByb3BlcnRpZXMoY29uc3QgV2ViQ29yZTo6Vmlld3BvcnRBcmd1bWVu
dHMmKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0Q3Vyc29yKGNvbnN0IFdlYkNvcmU6OkN1cnNvciYp
OwogICAgIHZpcnR1YWwgdm9pZCBzZXRDdXJzb3JIaWRkZW5VbnRpbE1vdXNlTW92ZXMoYm9vbCBo
aWRkZW5VbnRpbE1vdXNlTW92ZXMpOwogICAgIHZpcnR1YWwgdm9pZCB0b29sVGlwQ2hhbmdlZChj
b25zdCBXVEY6OlN0cmluZyYsIGNvbnN0IFdURjo6U3RyaW5nJik7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>