<?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>135058</bug_id>
          
          <creation_ts>2014-07-18 11:41:07 -0700</creation_ts>
          <short_desc>Take navigation snapshots whenever the current back-forward item is going to change</short_desc>
          <delta_ts>2014-07-19 00:26:59 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tim Horton">thorton</reporter>
          <assigned_to name="Tim Horton">thorton</assigned_to>
          <cc>andersca</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>japhet</cc>
    
    <cc>mitz</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1023301</commentid>
    <comment_count>0</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-18 11:41:07 -0700</bug_when>
    <thetext>Instead of trying to have the UI process figure out when to take navigation snapshots by itself, provide some help from the Web process (let the UI process know whenever we&apos;re going to change which back-forward item is &quot;current&quot;) so that we can take snapshots at the right time when pushState happens, and so that we can bottleneck snapshotting down to just two places (instead of 5).

&lt;rdar://problem/17464515&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023305</commentid>
    <comment_count>1</comment_count>
      <attachid>235134</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-18 12:07:27 -0700</bug_when>
    <thetext>Created attachment 235134
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023320</commentid>
    <comment_count>2</comment_count>
      <attachid>235134</attachid>
    <who name="">mitz</who>
    <bug_when>2014-07-18 12:37:56 -0700</bug_when>
    <thetext>Comment on attachment 235134
patch

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

&gt; Source/WebCore/loader/HistoryController.cpp:882
&gt; +    m_frame.loader().client().willChangeCurrentHistoryItem();

Do we need to call this if we end up changing just the provisional item?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023324</commentid>
    <comment_count>3</comment_count>
      <attachid>235134</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-18 12:40:46 -0700</bug_when>
    <thetext>Comment on attachment 235134
patch

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

&gt;&gt; Source/WebCore/loader/HistoryController.cpp:882
&gt;&gt; +    m_frame.loader().client().willChangeCurrentHistoryItem();
&gt; 
&gt; Do we need to call this if we end up changing just the provisional item?

No, good point. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023345</commentid>
    <comment_count>4</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2014-07-18 13:35:11 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/171239</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1023444</commentid>
    <comment_count>5</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2014-07-19 00:26:59 -0700</bug_when>
    <thetext>Looks like this caused a PLT regression on all platforms.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>235134</attachid>
            <date>2014-07-18 12:07:27 -0700</date>
            <delta_ts>2014-07-18 12:40:45 -0700</delta_ts>
            <desc>patch</desc>
            <filename>snapshot-timing.diff</filename>
            <type>text/plain</type>
            <size>19732</size>
            <attacher name="Tim Horton">thorton</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAxYjNkZmUzLi4wMjM1NWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTQtMDctMTggIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBhcHBsZS5jb20+CisK
KyAgICAgICAgVGFrZSBuYXZpZ2F0aW9uIHNuYXBzaG90cyB3aGVuZXZlciB0aGUgY3VycmVudCBi
YWNrLWZvcndhcmQgaXRlbSBpcyBnb2luZyB0byBjaGFuZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzNTA1OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMTc0NjQ1MTU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBsb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SGlzdG9yeUNvbnRyb2xsZXI6OnVwZGF0ZUZvckNvbW1pdCk6CisgICAgICAgIChXZWJDb3JlOjpI
aXN0b3J5Q29udHJvbGxlcjo6cmVjdXJzaXZlVXBkYXRlRm9yQ29tbWl0KToKKyAgICAgICAgKFdl
YkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpyZWN1cnNpdmVVcGRhdGVGb3JTYW1lRG9jdW1lbnRO
YXZpZ2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpjcmVhdGVJ
dGVtKToKKyAgICAgICAgVXNlIHNldEN1cnJlbnRJdGVtIGluc3RlYWQgb2YgZHVwbGljYXRpbmcg
dGhlIGNvbnRlbnRzIG9mIGl0IGluc2lkZSBlYWNoIG9mIHRoZXNlIGZ1bmN0aW9ucy4KKworICAg
ICAgICAoV2ViQ29yZTo6SGlzdG9yeUNvbnRyb2xsZXI6OnNldEN1cnJlbnRJdGVtKToKKyAgICAg
ICAgKFdlYkNvcmU6Okhpc3RvcnlDb250cm9sbGVyOjpyZXBsYWNlQ3VycmVudEl0ZW0pOgorICAg
ICAgICBXaGVuIHNldHRpbmcgb3IgcmVwbGFjaW5nIHRoZSBjdXJyZW50IGl0ZW0sIGxldCB0aGUg
RnJhbWVMb2FkZXJDbGllbnQga25vdyB0aGF0IHdlJ3JlIGdvaW5nCisgICAgICAgIHRvIGNoYW5n
ZSB3aGljaCBoaXN0b3J5IGl0ZW0gaXMgImN1cnJlbnQiLgorCisgICAgICAgICogbG9hZGVyL0Zy
YW1lTG9hZGVyQ2xpZW50Lmg6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudDo6
d2lsbENoYW5nZUN1cnJlbnRIaXN0b3J5SXRlbSk6IEFkZGVkLgorCiAyMDE0LTA3LTE4ICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
LCByb2xsaW5nIG91dCByMTcxMjA3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXJD
bGllbnQuaAppbmRleCA1MzUxYmUyLi44MDgxNGM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvRnJhbWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RnJhbWVMb2FkZXJDbGllbnQuaApAQCAtMjA0LDYgKzIwNCw4IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgdmlydHVhbCBib29sIHNob3VsZEdvVG9IaXN0b3J5SXRlbShIaXN0b3J5SXRl
bSopIGNvbnN0ID0gMDsKICAgICAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUdsb2JhbEhpc3RvcnlJ
dGVtRm9yUGFnZSgpIHsgfQogCisgICAgICAgIHZpcnR1YWwgdm9pZCB3aWxsQ2hhbmdlQ3VycmVu
dEhpc3RvcnlJdGVtKCkgeyB9CisKICAgICAgICAgLy8gVGhpcyBmcmFtZSBoYXMgc2V0IGl0cyBv
cGVuZXIgdG8gbnVsbCwgZGlzb3duaW5nIGl0IGZvciB0aGUgbGlmZXRpbWUgb2YgdGhlIGZyYW1l
LgogICAgICAgICAvLyBTZWUgaHR0cDovL2h0bWwuc3BlYy53aGF0d2cub3JnLyNkb20tb3BlbmVy
LgogICAgICAgICAvLyBGSVhNRTogSlNDIHNob3VsZCBhbGxvdyBkaXNvd25pbmcgb3BlbmVyLiAt
IDxodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAzOTEzPi4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvSGlzdG9yeUNvbnRyb2xsZXIuY3BwCmluZGV4IGUxYjhjOTMuLmU5
NzM1MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9IaXN0b3J5Q29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0hpc3RvcnlDb250cm9sbGVyLmNwcApA
QCAtNDY1LDEwICs0NjUsOCBAQCB2b2lkIEhpc3RvcnlDb250cm9sbGVyOjp1cGRhdGVGb3JDb21t
aXQoKQogICAgICAgICAvLyB0aGUgcHJvdmlzaW9uYWwgaXRlbSBmb3IgcmVzdG9yaW5nIHN0YXRl
LgogICAgICAgICAvLyBOb3RlIHByZXZpb3VzSXRlbSBtdXN0IGJlIHNldCBiZWZvcmUgd2UgY2xv
c2UgdGhlIFVSTCwgd2hpY2ggd2lsbAogICAgICAgICAvLyBoYXBwZW4gd2hlbiB0aGUgZGF0YSBz
b3VyY2UgaXMgbWFkZSBub24tcHJvdmlzaW9uYWwgYmVsb3cKLSAgICAgICAgbV9mcmFtZUxvYWRD
b21wbGV0ZSA9IGZhbHNlOwotICAgICAgICBtX3ByZXZpb3VzSXRlbSA9IG1fY3VycmVudEl0ZW07
CiAgICAgICAgIEFTU0VSVChtX3Byb3Zpc2lvbmFsSXRlbSk7Ci0gICAgICAgIG1fY3VycmVudEl0
ZW0gPSBtX3Byb3Zpc2lvbmFsSXRlbTsKKyAgICAgICAgc2V0Q3VycmVudEl0ZW0obV9wcm92aXNp
b25hbEl0ZW0uZ2V0KCkpOwogICAgICAgICBtX3Byb3Zpc2lvbmFsSXRlbSA9IDA7CiAKICAgICAg
ICAgLy8gVGVsbCBhbGwgb3RoZXIgZnJhbWVzIGluIHRoZSB0cmVlIHRvIGNvbW1pdCB0aGVpciBw
cm92aXNpb25hbCBpdGVtcyBhbmQKQEAgLTUwOSw5ICs1MDcsNyBAQCB2b2lkIEhpc3RvcnlDb250
cm9sbGVyOjpyZWN1cnNpdmVVcGRhdGVGb3JDb21taXQoKQogICAgICAgICAgICAgdmlldy0+c2V0
V2FzU2Nyb2xsZWRCeVVzZXIoZmFsc2UpOwogCiAgICAgICAgIC8vIE5vdyBjb21taXQgdGhlIHBy
b3Zpc2lvbmFsIGl0ZW0KLSAgICAgICAgbV9mcmFtZUxvYWRDb21wbGV0ZSA9IGZhbHNlOwotICAg
ICAgICBtX3ByZXZpb3VzSXRlbSA9IG1fY3VycmVudEl0ZW07Ci0gICAgICAgIG1fY3VycmVudEl0
ZW0gPSBtX3Byb3Zpc2lvbmFsSXRlbTsKKyAgICAgICAgc2V0Q3VycmVudEl0ZW0obV9wcm92aXNp
b25hbEl0ZW0uZ2V0KCkpOwogICAgICAgICBtX3Byb3Zpc2lvbmFsSXRlbSA9IDA7CiAKICAgICAg
ICAgLy8gUmVzdG9yZSBmb3JtIHN0YXRlICh3b3JrcyBmcm9tIGN1cnJlbnRJdGVtKQpAQCAtNTYw
LDkgKzU1Niw3IEBAIHZvaWQgSGlzdG9yeUNvbnRyb2xsZXI6OnJlY3Vyc2l2ZVVwZGF0ZUZvclNh
bWVEb2N1bWVudE5hdmlnYXRpb24oKQogICAgICAgICByZXR1cm47CiAKICAgICAvLyBDb21taXQg
dGhlIHByb3Zpc2lvbmFsIGl0ZW0uCi0gICAgbV9mcmFtZUxvYWRDb21wbGV0ZSA9IGZhbHNlOwot
ICAgIG1fcHJldmlvdXNJdGVtID0gbV9jdXJyZW50SXRlbTsKLSAgICBtX2N1cnJlbnRJdGVtID0g
bV9wcm92aXNpb25hbEl0ZW07CisgICAgc2V0Q3VycmVudEl0ZW0obV9wcm92aXNpb25hbEl0ZW0u
Z2V0KCkpOwogICAgIG1fcHJvdmlzaW9uYWxJdGVtID0gMDsKIAogICAgIC8vIEl0ZXJhdGUgb3Zl
ciB0aGUgcmVzdCBvZiB0aGUgdHJlZS4KQEAgLTU4MCw2ICs1NzQsOCBAQCB2b2lkIEhpc3RvcnlD
b250cm9sbGVyOjp1cGRhdGVGb3JGcmFtZUxvYWRDb21wbGV0ZWQoKQogCiB2b2lkIEhpc3RvcnlD
b250cm9sbGVyOjpzZXRDdXJyZW50SXRlbShIaXN0b3J5SXRlbSogaXRlbSkKIHsKKyAgICBtX2Zy
YW1lLmxvYWRlcigpLmNsaWVudCgpLndpbGxDaGFuZ2VDdXJyZW50SGlzdG9yeUl0ZW0oKTsKKwog
ICAgIG1fZnJhbWVMb2FkQ29tcGxldGUgPSBmYWxzZTsKICAgICBtX3ByZXZpb3VzSXRlbSA9IG1f
Y3VycmVudEl0ZW07CiAgICAgbV9jdXJyZW50SXRlbSA9IGl0ZW07CkBAIC02NTgsOSArNjU0LDcg
QEAgUGFzc1JlZlB0cjxIaXN0b3J5SXRlbT4gSGlzdG9yeUNvbnRyb2xsZXI6OmNyZWF0ZUl0ZW0o
KQogICAgIGluaXRpYWxpemVJdGVtKGl0ZW0uZ2V0KCkpOwogICAgIAogICAgIC8vIFNldCB0aGUg
aXRlbSBmb3Igd2hpY2ggd2Ugd2lsbCBzYXZlIGRvY3VtZW50IHN0YXRlCi0gICAgbV9mcmFtZUxv
YWRDb21wbGV0ZSA9IGZhbHNlOwotICAgIG1fcHJldmlvdXNJdGVtID0gbV9jdXJyZW50SXRlbTsK
LSAgICBtX2N1cnJlbnRJdGVtID0gaXRlbTsKKyAgICBzZXRDdXJyZW50SXRlbShpdGVtLmdldCgp
KTsKICAgICAKICAgICByZXR1cm4gaXRlbS5yZWxlYXNlKCk7CiB9CkBAIC04ODUsNiArODc5LDgg
QEAgdm9pZCBIaXN0b3J5Q29udHJvbGxlcjo6cmVwbGFjZUN1cnJlbnRJdGVtKEhpc3RvcnlJdGVt
KiBpdGVtKQogICAgIGlmICghaXRlbSkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9mcmFtZS5s
b2FkZXIoKS5jbGllbnQoKS53aWxsQ2hhbmdlQ3VycmVudEhpc3RvcnlJdGVtKCk7CisKICAgICBt
X3ByZXZpb3VzSXRlbSA9IG51bGxwdHI7CiAgICAgaWYgKG1fcHJvdmlzaW9uYWxJdGVtKQogICAg
ICAgICBtX3Byb3Zpc2lvbmFsSXRlbSA9IGl0ZW07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNGQxMjliOS4uOGE4
MTg1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDcyIEBACisyMDE0LTA3LTE4ICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgorCisgICAgICAgIFRha2UgbmF2aWdhdGlvbiBz
bmFwc2hvdHMgd2hlbmV2ZXIgdGhlIGN1cnJlbnQgYmFjay1mb3J3YXJkIGl0ZW0gaXMgZ29pbmcg
dG8gY2hhbmdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzUwNTgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE3NDY0NTE1PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEluc3RlYWQgb2YgdHJ5aW5nIHRv
IGhhdmUgdGhlIFVJIHByb2Nlc3MgZmlndXJlIG91dCB3aGVuIHRvIHRha2UgbmF2aWdhdGlvbiBz
bmFwc2hvdHMgYnkgaXRzZWxmLAorICAgICAgICBzbmFwc2hvdCB3aGVuZXZlciB0aGUgV2ViIHBy
b2Nlc3Mgc2F5cyB0aGF0IHRoZSBjdXJyZW50IGJhY2stZm9yd2FyZCBpdGVtIGlzIGdvaW5nIHRv
IGNoYW5nZS4KKyAgICAgICAgVGhpcyBmaXhlcyBzbmFwc2hvdHRpbmcgdGltaW5nIHdpdGggcHVz
aFN0YXRlLCBhbmQgbGV0cyB1cyBib3R0bGVuZWNrIHNuYXBzaG90dGluZyBkb3duIHRvCisgICAg
ICAgIGp1c3QgdHdvIHBsYWNlcyBpbnN0ZWFkIG9mIDUuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpnb0Zvcndh
cmQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmdvQmFjayk6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6Z29Ub0JhY2tGb3J3YXJkSXRlbSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6ZGlkU3RhcnRQcm92aXNpb25hbExvYWRGb3JGcmFtZSk6CisgICAg
ICAgIFdlIG5vIGxvbmdlciBuZWVkIHRvIHNwZWNpYWwtY2FzZSB0YWtpbmcgbmF2aWdhdGlvbiBz
bmFwc2hvdHMKKyAgICAgICAgd2hlbiB0aGUgVUkgcHJvY2VzcyBjaGFuZ2VzIHRoZSBiYWNrIGZv
cndhcmQgaXRlbSBvciB1cG9uCisgICAgICAgIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJh
bWUsIGJlY2F1c2Ugd2UnbGwgYWx3YXlzIHNuYXBzaG90CisgICAgICAgIGluIHdpbGxDaGFuZ2VD
dXJyZW50SGlzdG9yeUl0ZW0gaW4gYWxsIG9mIHRoZXNlIGNhc2VzLgorCisgICAgICAgICogVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6
d2lsbENoYW5nZUN1cnJlbnRIaXN0b3J5SXRlbSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW46
CisgICAgICAgIEFkZCB3aWxsQ2hhbmdlQ3VycmVudEhpc3RvcnlJdGVtIG1lc3NhZ2UsIHdoaWNo
IGNvbWVzIGZyb20gdGhlIFdlYiBwcm9jZXNzLgorICAgICAgICBXaGVuIGl0IGFycml2ZXMsIHRh
a2UgYSBuYXZpZ2F0aW9uIHNuYXBzaG90LgorCisgICAgICAgICogVUlQcm9jZXNzL2lvcy9WaWV3
R2VzdHVyZUNvbnRyb2xsZXJJT1MubW06CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29u
dHJvbGxlcjo6YmVnaW5Td2lwZUdlc3R1cmUpOgorICAgICAgICBUYWtlIHRoZSBwcmUtc3dpcGUg
bmF2aWdhdGlvbiBzbmFwc2hvdCBiZWZvcmUgdGVsbGluZyBXZWJQYWdlUHJveHkgdGhhdCB3ZSdy
ZSBkb2luZyBhIHN3aXBlLAorICAgICAgICBzbyB0aGF0IGl0IGRvZXNuJ3QgYmFpbCBmcm9tIHRh
a2luZyB0aGUgc25hcHNob3QgYmVjYXVzZSB3ZSBoYXZlIGEgc25hcHNob3QgdXAuCisKKyAgICAg
ICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjplbmRTd2lwZUdlc3R1cmUpOgorICAg
ICAgICBXZSBubyBsb25nZXIgbmVlZCB0byBleHBsaWNpdGx5IGRpc2FibGUgc25hcHNob3R0aW5n
IHdoaWxlIG5hdmlnYXRpbmcsIGJlY2F1c2UKKyAgICAgICAgd2Ugd2lsbCBhdm9pZCB0YWtpbmcg
dGhlIHNuYXBzaG90IGlmIHRoZXJlJ3MgYSBzbmFwc2hvdCBiZWluZyBkaXNwbGF5ZWQuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbToKKyAgICAg
ICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjp+Vmlld0dlc3R1cmVDb250cm9sbGVy
KToKKyAgICAgICAgUmVtb3ZlIHRoZSBzbmFwc2hvdCBpZiBpdCdzIHN0aWxsIHVwIHdoZW4gVmll
d0dlc3R1cmVDb250cm9sbGVyIGlzIGRlc3Ryb3llZC4KKyAgICAgICAgVGhlIE1hYyB2ZXJzaW9u
IG9mIFZpZXdHZXN0dXJlQ29udHJvbGxlciBpcyBkZXN0cm95ZWQgb24gV2ViIHByb2Nlc3MgY3Jh
c2hlcworICAgICAgICBiZWNhdXNlIGl0IGlzIGEgbWVzc2FnZSByZWNlaXZlciwgc28gaXQgaXMg
bm90IGd1YXJhbnRlZWQgdG8gaGF2ZSB0aGUgc2FtZQorICAgICAgICBsaWZldGltZSBhcyB0aGUg
V2ViUGFnZVByb3h5IGFuZCBmcmllbmRzLgorCisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJl
Q29udHJvbGxlcjo6dHJhY2tTd2lwZUdlc3R1cmUpOgorICAgICAgICBNYWtlIHVzZSBvZiByZWNv
cmROYXZpZ2F0aW9uU25hcHNob3QuCisKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250
cm9sbGVyOjplbmRTd2lwZUdlc3R1cmUpOgorICAgICAgICBEaXR0byBmcm9tIHRoZSBNYWMgdmVy
c2lvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUuaDoKKyAg
ICAgICAgKFdlYktpdDo6Vmlld1NuYXBzaG90U3RvcmU6OmRpc2FibGVTbmFwc2hvdHRpbmcpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3RTdG9yZTo6ZW5hYmxlU25hcHNo
b3R0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0
b3JlLm1tOgorICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3RTdG9yZTo6Vmlld1NuYXBzaG90
U3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpWaWV3U25hcHNob3RTdG9yZTo6cmVjb3JkU25hcHNo
b3QpOgorICAgICAgICBSZW1vdmUgdGhlIHNuYXBzaG90IGRpc2FibGluZyBtZWNoYW5pc20gYW5k
IGJhaWwgZnJvbSBzbmFwc2hvdHRpbmcgaWYgd2UncmUKKyAgICAgICAgc2hvd2luZyBhIHNuYXBz
aG90LCBhcyBtZW50aW9uZWQgYWJvdmUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJh
bWVMb2FkZXJDbGllbnQ6OndpbGxDaGFuZ2VDdXJyZW50SGlzdG9yeUl0ZW0pOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuaDoKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2U6OndpbGxDaGFuZ2VDdXJyZW50SGlzdG9yeUl0ZW0pOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmg6CisgICAgICAgIFByb3h5IHdpbGxDaGFuZ2VDdXJyZW50SGlz
dG9yeUl0ZW0gZnJvbSBIaXN0b3J5Q29udHJvbGxlciB0byB0aGUgVUkgcHJvY2Vzcy4KKwogMjAx
NC0wNy0xOCAgSm9uIEhvbmV5Y3V0dCAgPGpob25leWN1dHRAYXBwbGUuY29tPgogCiAgICAgICAg
IFJFR1JFU1NJT046IENyYXNoIHdoZW4gdHlwaW5nIGludG8gdGV4dCBmaWVsZCB0aGF0IGNsZWFy
cyBpdHNlbGYgb24gaU9TCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CmluZGV4IGFjOWU3MGQuLjRhNTE1N2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCkBAIC04OTMsOCArODkzLDYgQEAgdWludDY0X3QgV2ViUGFnZVByb3h5Ojpn
b0ZvcndhcmQoKQogICAgIGlmICghZm9yd2FyZEl0ZW0pCiAgICAgICAgIHJldHVybiAwOwogCi0g
ICAgcmVjb3JkTmF2aWdhdGlvblNuYXBzaG90KCk7Ci0KICAgICBhdXRvIHRyYW5zYWN0aW9uID0g
bV9wYWdlTG9hZFN0YXRlLnRyYW5zYWN0aW9uKCk7CiAKICAgICBtX3BhZ2VMb2FkU3RhdGUuc2V0
UGVuZGluZ0FQSVJlcXVlc3RVUkwodHJhbnNhY3Rpb24sIGZvcndhcmRJdGVtLT51cmwoKSk7CkBA
IC05MTYsOCArOTE0LDYgQEAgdWludDY0X3QgV2ViUGFnZVByb3h5Ojpnb0JhY2soKQogICAgIGlm
ICghYmFja0l0ZW0pCiAgICAgICAgIHJldHVybiAwOwogCi0gICAgcmVjb3JkTmF2aWdhdGlvblNu
YXBzaG90KCk7Ci0KICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV9wYWdlTG9hZFN0YXRlLnRyYW5z
YWN0aW9uKCk7CiAKICAgICBtX3BhZ2VMb2FkU3RhdGUuc2V0UGVuZGluZ0FQSVJlcXVlc3RVUkwo
dHJhbnNhY3Rpb24sIGJhY2tJdGVtLT51cmwoKSk7CkBAIC05MzgsOCArOTM0LDYgQEAgdWludDY0
X3QgV2ViUGFnZVByb3h5Ojpnb1RvQmFja0ZvcndhcmRJdGVtKFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0qIGl0ZW0pCiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybiByZWF0dGFjaFRv
V2ViUHJvY2Vzc1dpdGhJdGVtKGl0ZW0pOwogCi0gICAgcmVjb3JkTmF2aWdhdGlvblNuYXBzaG90
KCk7Ci0gICAgCiAgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1fcGFnZUxvYWRTdGF0ZS50cmFuc2Fj
dGlvbigpOwogCiAgICAgbV9wYWdlTG9hZFN0YXRlLnNldFBlbmRpbmdBUElSZXF1ZXN0VVJMKHRy
YW5zYWN0aW9uLCBpdGVtLT51cmwoKSk7CkBAIC0yNTA4LDEwICsyNTAyLDggQEAgdm9pZCBXZWJQ
YWdlUHJveHk6OmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUodWludDY0X3QgZnJhbWVJ
RCwgdWludDY0X3QgbmEKICAgICBNRVNTQUdFX0NIRUNLKGZyYW1lKTsKICAgICBNRVNTQUdFX0NI
RUNLX1VSTCh1cmwpOwogCi0gICAgaWYgKGZyYW1lLT5pc01haW5GcmFtZSgpKSB7Ci0gICAgICAg
IHJlY29yZE5hdmlnYXRpb25TbmFwc2hvdCgpOworICAgIGlmIChmcmFtZS0+aXNNYWluRnJhbWUo
KSkKICAgICAgICAgbV9wYWdlTG9hZFN0YXRlLmRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKHRyYW5z
YWN0aW9uLCB1cmwsIHVucmVhY2hhYmxlVVJMKTsKLSAgICB9CiAKICAgICBmcmFtZS0+c2V0VW5y
ZWFjaGFibGVVUkwodW5yZWFjaGFibGVVUkwpOwogICAgIGZyYW1lLT5kaWRTdGFydFByb3Zpc2lv
bmFsTG9hZCh1cmwpOwpAQCAtNTE2MCw0ICs1MTUyLDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6Om5h
dmlnYXRpb25HZXN0dXJlU25hcHNob3RXYXNSZW1vdmVkKCkKICAgICBtX2lzU2hvd2luZ05hdmln
YXRpb25HZXN0dXJlU25hcHNob3QgPSBmYWxzZTsKIH0KIAordm9pZCBXZWJQYWdlUHJveHk6Ondp
bGxDaGFuZ2VDdXJyZW50SGlzdG9yeUl0ZW0oKQoreworICAgIHJlY29yZE5hdmlnYXRpb25TbmFw
c2hvdCgpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuaAppbmRleCAwNDA5NjEwLi5jYWYyM2Y2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMDMxLDYgKzEwMzEsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgZGlkQmxvY2tJbnNlY3VyZVBsdWdpblZlcnNpb24oY29uc3QgU3RyaW5nJiBtaW1l
VHlwZSwgY29uc3QgU3RyaW5nJiBwbHVnaW5VUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVV
UkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZywgYm9vbCByZXBsYWNlbWVudE9i
c2N1cmVkKTsKICNlbmRpZiAvLyBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKICAgICB2b2lk
IHNldENhblNob3J0Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50cyhib29sIGNhblNob3J0Q2ly
Y3VpdEhvcml6b250YWxXaGVlbEV2ZW50cykgeyBtX2NhblNob3J0Q2lyY3VpdEhvcml6b250YWxX
aGVlbEV2ZW50cyA9IGNhblNob3J0Q2lyY3VpdEhvcml6b250YWxXaGVlbEV2ZW50czsgfQorICAg
IHZvaWQgd2lsbENoYW5nZUN1cnJlbnRIaXN0b3J5SXRlbSgpOwogCiAgICAgdm9pZCByZWF0dGFj
aFRvV2ViUHJvY2VzcygpOwogICAgIHVpbnQ2NF90IHJlYXR0YWNoVG9XZWJQcm9jZXNzV2l0aEl0
ZW0oV2ViQmFja0ZvcndhcmRMaXN0SXRlbSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMjViZWU1OC4uOTVmYWYxNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5p
bgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmlu
CkBAIC00MDMsNCArNDAzLDYgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICAgICBEaWRT
dGFydExvYWRGb3JRdWlja0xvb2tEb2N1bWVudEluTWFpbkZyYW1lKFN0cmluZyBmaWxlTmFtZSwg
U3RyaW5nIHV0aSkKICAgICBEaWRGaW5pc2hMb2FkRm9yUXVpY2tMb29rRG9jdW1lbnRJbk1haW5G
cmFtZShXZWJLaXQ6OlF1aWNrTG9va0RvY3VtZW50RGF0YSBkYXRhKQogI2VuZGlmCisKKyAgICBX
aWxsQ2hhbmdlQ3VycmVudEhpc3RvcnlJdGVtKCkKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0KaW5kZXggNWY2
YWRiYS4uNzM2NGRkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2lvcy9W
aWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0KQEAgLTE2NSwxMiArMTY1LDExIEBAIHZv
aWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpiZWdpblN3aXBlR2VzdHVyZShfVUlOYXZpZ2F0aW9u
SW50ZXJhY3RpdmVUcmFuc2l0aW9uCiAgICAgaWYgKG1fYWN0aXZlR2VzdHVyZVR5cGUgIT0gVmll
d0dlc3R1cmVUeXBlOjpOb25lKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3dlYlBhZ2VQcm94
eUZvckJhY2tGb3J3YXJkTGlzdEZvckN1cnJlbnRTd2lwZSA9IG1fYWx0ZXJuYXRlQmFja0Zvcndh
cmRMaXN0U291cmNlVmlldy5nZXQoKSA/IG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNl
Vmlldy5nZXQoKS0+X3BhZ2UgOiAmbV93ZWJQYWdlUHJveHk7CisgICAgbV93ZWJQYWdlUHJveHku
cmVjb3JkTmF2aWdhdGlvblNuYXBzaG90KCk7CiAKKyAgICBtX3dlYlBhZ2VQcm94eUZvckJhY2tG
b3J3YXJkTGlzdEZvckN1cnJlbnRTd2lwZSA9IG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291
cmNlVmlldy5nZXQoKSA/IG1fYWx0ZXJuYXRlQmFja0ZvcndhcmRMaXN0U291cmNlVmlldy5nZXQo
KS0+X3BhZ2UgOiAmbV93ZWJQYWdlUHJveHk7CiAgICAgbV93ZWJQYWdlUHJveHlGb3JCYWNrRm9y
d2FyZExpc3RGb3JDdXJyZW50U3dpcGUtPm5hdmlnYXRpb25HZXN0dXJlRGlkQmVnaW4oKTsKIAot
ICAgIG1fd2ViUGFnZVByb3h5LnJlY29yZE5hdmlnYXRpb25TbmFwc2hvdCgpOwotCiAgICAgYXV0
byBiYWNrRm9yd2FyZExpc3QgPSBtX3dlYlBhZ2VQcm94eUZvckJhY2tGb3J3YXJkTGlzdEZvckN1
cnJlbnRTd2lwZS0+YmFja0ZvcndhcmRMaXN0KCk7CiAKICAgICAvLyBDb3B5IHRoZSBzbmFwc2hv
dCBmcm9tIHRoaXMgdmlldyB0byB0aGUgb25lIHRoYXQgb3ducyB0aGUgYmFjayBmb3J3YXJkIGxp
c3QsIHNvIHRoYXQKQEAgLTI3MywxNiArMjcyLDkgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xs
ZXI6OmVuZFN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtLAog
ICAgIGlmIChWaWV3U25hcHNob3QqIHNuYXBzaG90ID0gdGFyZ2V0SXRlbS0+c25hcHNob3QoKSkK
ICAgICAgICAgbV9zbmFwc2hvdFJlbW92YWxUYXJnZXRSZW5kZXJUcmVlU2l6ZSA9IHNuYXBzaG90
LT5yZW5kZXJUcmVlU2l6ZSgpICogc3dpcGVTbmFwc2hvdFJlbW92YWxSZW5kZXJUcmVlU2l6ZVRh
cmdldEZyYWN0aW9uOwogCi0gICAgLy8gV2UgZG9uJ3Qgd2FudCB0byByZXBsYWNlIHRoZSBjdXJy
ZW50IGJhY2stZm9yd2FyZCBpdGVtJ3Mgc25hcHNob3QKLSAgICAvLyBsaWtlIHdlIG5vcm1hbGx5
IHdvdWxkIHdoZW4gZ29pbmcgYmFjayBvciBmb3J3YXJkLCBiZWNhdXNlIHdlIGFyZQotICAgIC8v
IGRpc3BsYXlpbmcgdGhlIGRlc3RpbmF0aW9uIGl0ZW0ncyBzbmFwc2hvdC4KLSAgICBWaWV3U25h
cHNob3RTdG9yZTo6c2hhcmVkKCkuZGlzYWJsZVNuYXBzaG90dGluZygpOwotCiAgICAgbV93ZWJQ
YWdlUHJveHlGb3JCYWNrRm9yd2FyZExpc3RGb3JDdXJyZW50U3dpcGUtPm5hdmlnYXRpb25HZXN0
dXJlRGlkRW5kKHRydWUsICp0YXJnZXRJdGVtKTsKICAgICBtX3dlYlBhZ2VQcm94eUZvckJhY2tG
b3J3YXJkTGlzdEZvckN1cnJlbnRTd2lwZS0+Z29Ub0JhY2tGb3J3YXJkSXRlbSh0YXJnZXRJdGVt
KTsKIAotICAgIFZpZXdTbmFwc2hvdFN0b3JlOjpzaGFyZWQoKS5lbmFibGVTbmFwc2hvdHRpbmco
KTsKLQogICAgIHVpbnQ2NF90IHBhZ2VJRCA9IG1fd2ViUGFnZVByb3h5LnBhZ2VJRCgpOwogICAg
IG1fd2ViUGFnZVByb3h5LmRyYXdpbmdBcmVhKCktPmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdp
bmcoW3BhZ2VJRF0gKENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKICAgICAgICAgYXV0byBn
ZXN0dXJlQ29udHJvbGxlckl0ZXIgPSB2aWV3R2VzdHVyZUNvbnRyb2xsZXJzRm9yQWxsUGFnZXMo
KS5maW5kKHBhZ2VJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFj
L1ZpZXdHZXN0dXJlQ29udHJvbGxlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvVmlld0dlc3R1cmVDb250cm9sbGVyTWFjLm1tCmluZGV4IDliOWIxOTcuLjRjNDkyOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVDb250cm9s
bGVyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld0dlc3R1cmVD
b250cm9sbGVyTWFjLm1tCkBAIC0xMTQsNiArMTE0LDkgQEAgVmlld0dlc3R1cmVDb250cm9sbGVy
Ojp+Vmlld0dlc3R1cmVDb250cm9sbGVyKCkKICAgICBpZiAobV9zd2lwZUNhbmNlbGxhdGlvblRy
YWNrZXIpCiAgICAgICAgIFttX3N3aXBlQ2FuY2VsbGF0aW9uVHJhY2tlciBzZXRJc0NhbmNlbGxl
ZDpZRVNdOwogCisgICAgaWYgKG1fYWN0aXZlR2VzdHVyZVR5cGUgPT0gVmlld0dlc3R1cmVUeXBl
OjpTd2lwZSkKKyAgICAgICAgcmVtb3ZlU3dpcGVTbmFwc2hvdCgpOworCiAgICAgbV93ZWJQYWdl
UHJveHkucHJvY2VzcygpLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6Vmlld0dlc3R1
cmVDb250cm9sbGVyOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fd2ViUGFnZVByb3h5LnBhZ2VJ
RCgpKTsKIH0KIApAQCAtMzY2LDcgKzM2OSw3IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVy
Ojp3aGVlbEV2ZW50V2FzTm90SGFuZGxlZEJ5V2ViQ29yZShOU0V2ZW50ICpldmVudCkKIAogdm9p
ZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OnRyYWNrU3dpcGVHZXN0dXJlKE5TRXZlbnQgKmV2ZW50
LCBTd2lwZURpcmVjdGlvbiBkaXJlY3Rpb24pCiB7Ci0gICAgVmlld1NuYXBzaG90U3RvcmU6OnNo
YXJlZCgpLnJlY29yZFNuYXBzaG90KG1fd2ViUGFnZVByb3h5KTsKKyAgICBtX3dlYlBhZ2VQcm94
eS5yZWNvcmROYXZpZ2F0aW9uU25hcHNob3QoKTsKIAogICAgIENHRmxvYXQgbWF4UHJvZ3Jlc3Mg
PSAoZGlyZWN0aW9uID09IFN3aXBlRGlyZWN0aW9uOjpMZWZ0KSA/IDEgOiAwOwogICAgIENHRmxv
YXQgbWluUHJvZ3Jlc3MgPSAoZGlyZWN0aW9uID09IFN3aXBlRGlyZWN0aW9uOjpSaWdodCkgPyAt
MSA6IDA7CkBAIC02MzgsMTMgKzY0MSw4IEBAIHZvaWQgVmlld0dlc3R1cmVDb250cm9sbGVyOjpl
bmRTd2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFyZ2V0SXRlbSwKIAogICAg
IG1fd2ViUGFnZVByb3h5LnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpWaWV3R2VzdHVyZUdlb21l
dHJ5Q29sbGVjdG9yOjpTZXRSZW5kZXJUcmVlU2l6ZU5vdGlmaWNhdGlvblRocmVzaG9sZChyZW5k
ZXJUcmVlU2l6ZSAqIHN3aXBlU25hcHNob3RSZW1vdmFsUmVuZGVyVHJlZVNpemVUYXJnZXRGcmFj
dGlvbiksIG1fd2ViUGFnZVByb3h5LnBhZ2VJRCgpKTsKIAotICAgIC8vIFdlIGRvbid0IHdhbnQg
dG8gcmVwbGFjZSB0aGUgY3VycmVudCBiYWNrLWZvcndhcmQgaXRlbSdzIHNuYXBzaG90Ci0gICAg
Ly8gbGlrZSB3ZSBub3JtYWxseSB3b3VsZCB3aGVuIGdvaW5nIGJhY2sgb3IgZm9yd2FyZCwgYmVj
YXVzZSB3ZSBhcmUKLSAgICAvLyBkaXNwbGF5aW5nIHRoZSBkZXN0aW5hdGlvbiBpdGVtJ3Mgc25h
cHNob3QuCi0gICAgVmlld1NuYXBzaG90U3RvcmU6OnNoYXJlZCgpLmRpc2FibGVTbmFwc2hvdHRp
bmcoKTsKICAgICBtX3dlYlBhZ2VQcm94eS5uYXZpZ2F0aW9uR2VzdHVyZURpZEVuZCh0cnVlLCAq
dGFyZ2V0SXRlbSk7CiAgICAgbV93ZWJQYWdlUHJveHkuZ29Ub0JhY2tGb3J3YXJkSXRlbSh0YXJn
ZXRJdGVtKTsKLSAgICBWaWV3U25hcHNob3RTdG9yZTo6c2hhcmVkKCkuZW5hYmxlU25hcHNob3R0
aW5nKCk7CiAKICAgICBpZiAoIXJlbmRlclRyZWVTaXplKSB7CiAgICAgICAgIHJlbW92ZVN3aXBl
U25hcHNob3QoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmll
d1NuYXBzaG90U3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBz
aG90U3RvcmUuaAppbmRleCBiODQ2NDU1Li5iZDgwZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL21hYy9WaWV3U25hcHNob3RTdG9yZS5oCkBAIC0xMTksOSArMTE5LDYgQEAg
cHVibGljOgogCiAgICAgdm9pZCByZWNvcmRTbmFwc2hvdChXZWJQYWdlUHJveHkmKTsKIAotICAg
IHZvaWQgZGlzYWJsZVNuYXBzaG90dGluZygpIHsgbV9lbmFibGVkID0gZmFsc2U7IH0KLSAgICB2
b2lkIGVuYWJsZVNuYXBzaG90dGluZygpIHsgbV9lbmFibGVkID0gdHJ1ZTsgfQotCiAgICAgdm9p
ZCBkaXNjYXJkU25hcHNob3RJbWFnZXMoKTsKIAogI2lmIFVTRV9SRU5ERVJfU0VSVkVSX1ZJRVdf
U05BUFNIT1RTCkBAIC0xMzMsNyArMTMwLDYgQEAgcHJpdmF0ZToKICAgICB2b2lkIHdpbGxSZW1v
dmVJbWFnZUZyb21TbmFwc2hvdChWaWV3U25hcHNob3QmKTsKICAgICB2b2lkIHBydW5lU25hcHNo
b3RzKFdlYlBhZ2VQcm94eSYpOwogCi0gICAgYm9vbCBtX2VuYWJsZWQ7CiAgICAgc2l6ZV90IG1f
c25hcHNob3RDYWNoZVNpemU7CiAKICAgICBMaXN0SGFzaFNldDxWaWV3U25hcHNob3QqPiBtX3Nu
YXBzaG90c1dpdGhJbWFnZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9W
aWV3U25hcHNob3RTdG9yZS5tbQppbmRleCA4Yzg3MDMyLi40NGIzODdmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1ZpZXdTbmFwc2hvdFN0b3JlLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvVmlld1NuYXBzaG90U3RvcmUubW0KQEAgLTQ3LDgg
KzQ3LDcgQEAgc3RhdGljIGNvbnN0IHNpemVfdCBtYXhpbXVtU25hcHNob3RDYWNoZVNpemUgPSA1
MCAqICgxMDI0ICogMTAyNCk7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogVmlld1NuYXBzaG90U3Rv
cmU6OlZpZXdTbmFwc2hvdFN0b3JlKCkKLSAgICA6IG1fZW5hYmxlZCh0cnVlKQotICAgICwgbV9z
bmFwc2hvdENhY2hlU2l6ZSgwKQorICAgIDogbV9zbmFwc2hvdENhY2hlU2l6ZSgwKQogewogfQog
CkBAIC0xMDksMTEgKzEwOCwxMSBAQCB2b2lkIFZpZXdTbmFwc2hvdFN0b3JlOjpwcnVuZVNuYXBz
aG90cyhXZWJQYWdlUHJveHkmIHdlYlBhZ2VQcm94eSkKIAogdm9pZCBWaWV3U25hcHNob3RTdG9y
ZTo6cmVjb3JkU25hcHNob3QoV2ViUGFnZVByb3h5JiB3ZWJQYWdlUHJveHkpCiB7Ci0gICAgV2Vi
QmFja0ZvcndhcmRMaXN0SXRlbSogaXRlbSA9IHdlYlBhZ2VQcm94eS5iYWNrRm9yd2FyZExpc3Qo
KS5jdXJyZW50SXRlbSgpOwotCi0gICAgaWYgKCFtX2VuYWJsZWQpCisgICAgaWYgKHdlYlBhZ2VQ
cm94eS5pc1Nob3dpbmdOYXZpZ2F0aW9uR2VzdHVyZVNuYXBzaG90KCkpCiAgICAgICAgIHJldHVy
bjsKIAorICAgIFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIGl0ZW0gPSB3ZWJQYWdlUHJveHkuYmFj
a0ZvcndhcmRMaXN0KCkuY3VycmVudEl0ZW0oKTsKKwogICAgIGlmICghaXRlbSkKICAgICAgICAg
cmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCmluZGV4IGU1NjMxODYu
LmI1MzQ3MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJhbWVMb2FkZXJDbGllbnQuY3BwCkBAIC0xNjIxLDQg
KzE2MjEsMTMgQEAgUGFzc1JlZlB0cjxGcmFtZU5ldHdvcmtpbmdDb250ZXh0PiBXZWJGcmFtZUxv
YWRlckNsaWVudDo6Y3JlYXRlTmV0d29ya2luZ0NvbnRleHQKICAgICByZXR1cm4gY29udGV4dC5y
ZWxlYXNlKCk7CiB9CiAKK3ZvaWQgV2ViRnJhbWVMb2FkZXJDbGllbnQ6OndpbGxDaGFuZ2VDdXJy
ZW50SGlzdG9yeUl0ZW0oKQoreworICAgIFdlYlBhZ2UqIHdlYlBhZ2UgPSBtX2ZyYW1lLT5wYWdl
KCk7CisgICAgaWYgKCF3ZWJQYWdlKQorICAgICAgICByZXR1cm47CisKKyAgICB3ZWJQYWdlLT53
aWxsQ2hhbmdlQ3VycmVudEhpc3RvcnlJdGVtKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJGcmFtZUxvYWRlckNsaWVudC5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGcmFtZUxvYWRlckNsaWVudC5oCmluZGV4IGI5MGUwMjMuLmRmMjg5YTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRnJh
bWVMb2FkZXJDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZyYW1lTG9hZGVyQ2xpZW50LmgKQEAgLTEzMCw2ICsxMzAsNyBAQCBwcml2YXRl
OgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVHbG9iYWxIaXN0b3J5UmVkaXJlY3RMaW5rcygpIG92
ZXJyaWRlOwogICAgIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGRHb1RvSGlzdG9yeUl0ZW0oV2Vi
Q29yZTo6SGlzdG9yeUl0ZW0qKSBjb25zdCBvdmVycmlkZTsKKyAgICB2aXJ0dWFsIHZvaWQgd2ls
bENoYW5nZUN1cnJlbnRIaXN0b3J5SXRlbSgpIG92ZXJyaWRlOwogCiAgICAgdmlydHVhbCB2b2lk
IGRpZERpc3BsYXlJbnNlY3VyZUNvbnRlbnQoKSBvdmVycmlkZTsKICAgICB2aXJ0dWFsIHZvaWQg
ZGlkUnVuSW5zZWN1cmVDb250ZW50KFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgV2Vi
Q29yZTo6VVJMJikgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKaW5kZXggYWYwZTZhZC4uOGE0NjY4NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDgzMCw0ICs0ODMwLDkgQEAg
dm9pZCBXZWJQYWdlOjpkaWRDaGFuZ2VTY3JvbGxPZmZzZXRGb3JGcmFtZShGcmFtZSogZnJhbWUp
CiAgICAgdXBkYXRlTWFpbkZyYW1lU2Nyb2xsT2Zmc2V0UGlubmluZygpOwogfQogCit2b2lkIFdl
YlBhZ2U6OndpbGxDaGFuZ2VDdXJyZW50SGlzdG9yeUl0ZW0oKQoreworICAgIHNlbmQoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6V2lsbENoYW5nZUN1cnJlbnRIaXN0b3J5SXRlbSgpKTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAppbmRleCA0MzZlY2IwLi4xZmU1NmIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKQEAgLTgzOSw2ICs4MzksOCBAQCBwdWJsaWM6CiAK
ICAgICB2b2lkIGRpZENoYW5nZVNjcm9sbE9mZnNldEZvckZyYW1lKFdlYkNvcmU6OkZyYW1lKik7
CiAKKyAgICB2b2lkIHdpbGxDaGFuZ2VDdXJyZW50SGlzdG9yeUl0ZW0oKTsKKwogcHJpdmF0ZToK
ICAgICBXZWJQYWdlKHVpbnQ2NF90IHBhZ2VJRCwgY29uc3QgV2ViUGFnZUNyZWF0aW9uUGFyYW1l
dGVycyYpOwogCg==
</data>
<flag name="review"
          id="259681"
          type_id="1"
          status="+"
          setter="mitz"
    />
          </attachment>
      

    </bug>

</bugzilla>