<?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>19528</bug_id>
          
          <creation_ts>2008-06-12 18:21:06 -0700</creation_ts>
          <short_desc>[GTK] BackForward history leak?</short_desc>
          <delta_ts>2009-03-11 05:06:21 -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>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alp Toker">alp</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>jmalonzo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>83138</commentid>
    <comment_count>0</comment_count>
    <who name="Alp Toker">alp</who>
    <bug_when>2008-06-12 18:21:06 -0700</bug_when>
    <thetext>Got this report from a developer integrating WebKit into GIMP:

[16:27] &lt;neo&gt; webkit_web_view_get_back_forward_list() returns a pointer to an object without increasing the reference count on it

[16:28] &lt;neo&gt; webkit_web_back_forward_list_get_back_list_with_limit() on the other hand returns a newly allocated GList with referenced objects

[16:28] &lt;neo&gt; I find that very difficult to work with

[16:28] &lt;neo&gt; it should at least be documented

[16:29] &lt;neo&gt; I ended up leaking the objects in the list and I unreffed the back_forward_list

[16:29] &lt;alp&gt; neo: can you think of a nicer API for that?

[16:30] &lt;neo&gt; alp: well, be consistent and always ref the objects you hand out</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83358</commentid>
    <comment_count>1</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2008-06-15 03:00:50 -0700</bug_when>
    <thetext>Alp,

Should we also look at other areas of webkit/gtk?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>87954</commentid>
    <comment_count>2</comment_count>
      <attachid>22678</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2008-08-06 07:07:10 -0700</bug_when>
    <thetext>Created attachment 22678
Refactor WebKitWebBackForwardList and leak fixes

This patch refactors WebKitWebBackForwardList as well as fixes possible leaks of WebKitWebHistoryItems. This also fixes the documentation wrt when to free and when not to free return values.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>89560</commentid>
    <comment_count>3</comment_count>
      <attachid>22678</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2008-08-27 16:44:43 -0700</bug_when>
    <thetext>Comment on attachment 22678
Refactor WebKitWebBackForwardList and leak fixes

I would encourage you to read:
http://webkit.org/coding/RefPtr.html

Methods shouldn&apos;t return RefPtr.  Possibly &quot;const RefPtr&amp;&quot; , but in that case &quot;Class*&quot; is almost always better.

We also don&apos;t keep PassRefPtrs on the stack.  If you need more clarification about RefPtr design, I encourage you to read that document or ask in #webkit.  (or read some of hte other gtk bugs I&apos;ve recently reviewed).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113023</commentid>
    <comment_count>4</comment_count>
      <attachid>28442</attachid>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-03-10 11:21:12 -0700</bug_when>
    <thetext>Created attachment 28442
Don&apos;t ref items when returning a back/forward list

Don&apos;t ref the returned items to be consistent with the rest of the API. Also a added a test case to verify this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113136</commentid>
    <comment_count>5</comment_count>
      <attachid>28442</attachid>
    <who name="Holger Freyther">zecke</who>
    <bug_when>2009-03-11 01:50:35 -0700</bug_when>
    <thetext>Comment on attachment 28442
Don&apos;t ref items when returning a back/forward list

Okay, a change in behaviour but I assume the reality is that this just leaked in midori/epi? Thanks for adding a test. The only thing to change is probably the static void\nMETHOD_NAME as this is inconsistent with the rest of the file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>113164</commentid>
    <comment_count>6</comment_count>
    <who name="Jan Alonzo">jmalonzo</who>
    <bug_when>2009-03-11 05:06:21 -0700</bug_when>
    <thetext>Landed in r41582. Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>22678</attachid>
            <date>2008-08-06 07:07:10 -0700</date>
            <delta_ts>2009-03-10 11:21:12 -0700</delta_ts>
            <desc>Refactor WebKitWebBackForwardList and leak fixes</desc>
            <filename>webkitgtk-refactor-bflist.patch</filename>
            <type>text/plain</type>
            <size>20963</size>
            <attacher name="Jan Alonzo">jmalonzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
aW5kZXggYWIyZWQwOC4uMmYwZjdkNCAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0MCBAQAorMjAwOC0wOC0wNiAg
SmFuIE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xOTUyOAorICAgICAgICBbR1RLXSBCYWNrRm9yd2FyZCBoaXN0b3J5
IGxlYWs/CisKKyAgICAgICAgLSBSZWZhY3RvciBXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QuCisg
ICAgICAgIC0gRnJlZSBXZWJLaXRXZWJIaXN0b3J5SXRlbXMgYWNjb3JkaW5nbHkgd2hlbiB0aGV5
IGFyZSBub3QgbmVlZGVkIGFueW1vcmUuCisgICAgICAgIC0gRG9jdW1lbnRhdGlvbiBmaXhlcyBh
cyB0byB3aGVuIGFuZCB3aGF0IHJldHVybiB2YWx1ZXMgc2hvdWxkIGJlIGZyZWVkCisKKyAgICAg
ICAgKiB3ZWJraXQvd2Via2l0cHJpdmF0ZS5oOgorICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJi
YWNrZm9yd2FyZGxpc3QuY3BwOgorICAgICAgICAoX1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFBy
aXZhdGU6OndlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZmluYWxpemUpOgorICAgICAgICAo
X1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGU6OndlYmtpdF93ZWJfYmFja19mb3J3YXJk
X2xpc3RfY2xhc3NfaW5pdCk6CisgICAgICAgIChfV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0UHJp
dmF0ZTo6d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9jb25zdHJ1Y3RfbGlzdCk6CisgICAg
ICAgIChfV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZTo6d2Via2l0X3dlYl9iYWNrX2Zv
cndhcmRfbGlzdF9jcmVhdGUpOgorICAgICAgICAoX1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFBy
aXZhdGU6OndlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZnJlZSk6CisgICAgICAgIChfV2Vi
S2l0V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZTo6d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlz
dF9uZXdfd2l0aF93ZWJfdmlldyk6CisgICAgICAgIChfV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0
UHJpdmF0ZTo6d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nb19mb3J3YXJkKToKKyAgICAg
ICAgKF9XZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RQcml2YXRlOjp3ZWJraXRfd2ViX2JhY2tfZm9y
d2FyZF9saXN0X2dvX2JhY2spOgorICAgICAgICAoX1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFBy
aXZhdGU6OndlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfY29udGFpbnNfaXRlbSk6CisgICAg
ICAgIChfV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZTo6d2Via2l0X3dlYl9iYWNrX2Zv
cndhcmRfbGlzdF9nb190b19pdGVtKToKKyAgICAgICAgKF9XZWJLaXRXZWJCYWNrRm9yd2FyZExp
c3RQcml2YXRlOjp3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9mb3J3YXJkX2xpc3Rf
d2l0aF9saW1pdCk6CisgICAgICAgIChfV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZTo6
d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfYmFja19saXN0X3dpdGhfbGltaXQpOgor
ICAgICAgICAoX1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGU6OndlYmtpdF93ZWJfYmFj
a19mb3J3YXJkX2xpc3RfZ2V0X2JhY2tfaXRlbSk6CisgICAgICAgIChfV2ViS2l0V2ViQmFja0Zv
cndhcmRMaXN0UHJpdmF0ZTo6d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfY3VycmVu
dF9pdGVtKToKKyAgICAgICAgKF9XZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RQcml2YXRlOjp3ZWJr
aXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9mb3J3YXJkX2l0ZW0pOgorICAgICAgICAoX1dl
YktpdFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGU6OndlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xp
c3RfZ2V0X250aF9pdGVtKToKKyAgICAgICAgKF9XZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RQcml2
YXRlOjp3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9iYWNrX2xlbmd0aCk6CisgICAg
ICAgIChfV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZTo6d2Via2l0X3dlYl9iYWNrX2Zv
cndhcmRfbGlzdF9nZXRfZm9yd2FyZF9sZW5ndGgpOgorICAgICAgICAoX1dlYktpdFdlYkJhY2tG
b3J3YXJkTGlzdFByaXZhdGU6OndlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2xpbWl0
KToKKyAgICAgICAgKF9XZWJLaXRXZWJCYWNrRm9yd2FyZExpc3RQcml2YXRlOjp3ZWJraXRfd2Vi
X2JhY2tfZm9yd2FyZF9saXN0X3NldF9saW1pdCk6CisgICAgICAgIChXZWJLaXQ6OmNvcmUpOgor
ICAgICAgICAqIHdlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcDoKKyAgICAgICAgICAtIERvY3VtZW50
IHRoYXQgdGhlIGJhY2tmb3J3YXJkbGlzdCBzaG91bGQgbm90IGJlIGZyZWVkLgorCiAyMDA4LTA4
LTAyICBDaHJpc3RpYW4gRHl3YW4gIDxjaHJpc3RpYW5AdHdvdG9hc3RzLmRlPgogCiAgICAgICAg
IFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQv
d2Via2l0cHJpdmF0ZS5oIGIvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0cHJpdmF0ZS5oCmluZGV4
IGVkODFhMWMuLjYzM2NkNjEgMTAwNjQ0Ci0tLSBhL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHBy
aXZhdGUuaAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJraXRwcml2YXRlLmgKQEAgLTUzLDcg
KzUzLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAgV2ViQ29yZTo6SGlzdG9yeUl0ZW0qIGNv
cmUoV2ViS2l0V2ViSGlzdG9yeUl0ZW0qKTsKICAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbSoga2l0
KFdlYkNvcmU6Okhpc3RvcnlJdGVtKik7CiAKLSAgICBXZWJDb3JlOjpCYWNrRm9yd2FyZExpc3Qq
IGNvcmUoV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0Kik7CisgICAgV1RGOjpSZWZQdHI8V2ViQ29y
ZTo6QmFja0ZvcndhcmRMaXN0PiBjb3JlKFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCopOwogfQog
CiBleHRlcm4gIkMiIHsKQEAgLTExMCw2ICsxMTAsMTIgQEAgZXh0ZXJuICJDIiB7CiAgICAgV2Vi
S2l0V2ViSGlzdG9yeUl0ZW0qCiAgICAgd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3X3dpdGhf
Y29yZV9pdGVtKFdlYkNvcmU6Okhpc3RvcnlJdGVtKik7CiAKKyAgICBXZWJLaXRXZWJCYWNrRm9y
d2FyZExpc3QqCisgICAgd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9jcmVhdGUoV1RGOjpQ
YXNzUmVmUHRyPFdlYkNvcmU6OkJhY2tGb3J3YXJkTGlzdD4pOworCisgICAgdm9pZAorICAgIHdl
YmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZnJlZShXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3Qq
IHdlYkJhY2tGb3J3YXJkTGlzdCk7CisKICAgICAvLyBGSVhNRTogTW92ZSB0aGVzZSB0byB3ZWJr
aXR3ZWJmcmFtZS5oIG9uY2UgdGhlaXIgQVBJIGhhcyBiZWVuIGRpc2N1c3NlZC4KIAogICAgIFdF
QktJVF9BUEkgR1NMaXN0KgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0d2Vi
YmFja2ZvcndhcmRsaXN0LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmJhY2tmb3J3
YXJkbGlzdC5jcHAKaW5kZXggNmJkNzdjOC4uMjQ5M2UwZiAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0
ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dl
YmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwCkBAIC0zMCwxOSArMzAsNDIgQEAKICNp
bmNsdWRlICJIaXN0b3J5SXRlbS5oIgogCiB1c2luZyBuYW1lc3BhY2UgV2ViS2l0OwordXNpbmcg
V1RGOjpQYXNzUmVmUHRyOwordXNpbmcgV1RGOjpSZWZQdHI7Cit1c2luZyBXZWJDb3JlOjpCYWNr
Rm9yd2FyZExpc3Q7CiAKIGV4dGVybiAiQyIgewogCit0eXBlZGVmIGVudW0geworICAgIEZPUldB
UkRfTElTVCwKKyAgICBCQUNLX0xJU1QKK30gV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0RGlyZWN0
aW9uOworCiBzdHJ1Y3QgX1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGUgewotICAgIFdl
YkNvcmU6OkJhY2tGb3J3YXJkTGlzdCogYmFja0ZvcndhcmRMaXN0OworICAgIFJlZlB0cjxCYWNr
Rm9yd2FyZExpc3Q+IGJhY2tGb3J3YXJkTGlzdDsKIH07CiAKICNkZWZpbmUgV0VCS0lUX1dFQl9C
QUNLX0ZPUldBUkRfTElTVF9HRVRfUFJJVkFURShvYmopICAgIChHX1RZUEVfSU5TVEFOQ0VfR0VU
X1BSSVZBVEUoKG9iaiksIFdFQktJVF9UWVBFX1dFQl9CQUNLX0ZPUldBUkRfTElTVCwgV2ViS2l0
V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZSkpCiAKIEdfREVGSU5FX1RZUEUoV2ViS2l0V2ViQmFj
a0ZvcndhcmRMaXN0LCB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0LCBHX1RZUEVfT0JKRUNU
KTsKIAorc3RhdGljIHZvaWQgd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9maW5hbGl6ZShH
T2JqZWN0KiBvYmplY3QpCit7CisgICAgV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0KiBiYWNrRm9y
d2FyZExpc3QgPSBXRUJLSVRfV0VCX0JBQ0tfRk9SV0FSRF9MSVNUKG9iamVjdCk7CisgICAgV2Vi
S2l0V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZSogcHJpdiA9IGJhY2tGb3J3YXJkTGlzdC0+cHJp
djsKKworICAgIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZnJlZShiYWNrRm9yd2FyZExp
c3QpOworCisgICAgcHJpdi0+YmFja0ZvcndhcmRMaXN0LT5kZXJlZigpOworCisgICAgR19PQkpF
Q1RfQ0xBU1Mod2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9wYXJlbnRfY2xhc3MpLT5maW5h
bGl6ZShvYmplY3QpOworfQorCiBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9s
aXN0X2NsYXNzX2luaXQoV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0Q2xhc3MqIGtsYXNzKQogewor
ICAgIEdPYmplY3RDbGFzcyogb2JqZWN0Q2xhc3MgPSBHX09CSkVDVF9DTEFTUyhrbGFzcyk7Cisg
ICAgb2JqZWN0Q2xhc3MtPmZpbmFsaXplID0gd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9m
aW5hbGl6ZTsKKwogICAgIGdfdHlwZV9jbGFzc19hZGRfcHJpdmF0ZShrbGFzcywgc2l6ZW9mKFdl
YktpdFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGUpKTsKIH0KIApAQCAtNTEsNiArNzQsNjEgQEAg
c3RhdGljIHZvaWQgd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9pbml0KFdlYktpdFdlYkJh
Y2tGb3J3YXJkTGlzdCogd2ViQmFja0YKICAgICB3ZWJCYWNrRm9yd2FyZExpc3QtPnByaXYgPSBX
RUJLSVRfV0VCX0JBQ0tfRk9SV0FSRF9MSVNUX0dFVF9QUklWQVRFKHdlYkJhY2tGb3J3YXJkTGlz
dCk7CiB9CiAKK3N0YXRpYyBHTGlzdCogd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9jb25z
dHJ1Y3RfbGlzdChXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdlYkJhY2tGb3J3YXJkTGlzdCwg
Z2ludCBsaW1pdCwgV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0RGlyZWN0aW9uIGRpcmVjdGlvbikK
K3sKKyAgICBSZWZQdHI8QmFja0ZvcndhcmRMaXN0PiBiYWNrRm9yd2FyZExpc3QgPSBjb3JlKHdl
YkJhY2tGb3J3YXJkTGlzdCk7CisKKyAgICBXZWJDb3JlOjpIaXN0b3J5SXRlbVZlY3RvciBpdGVt
cyhsaW1pdCk7CisgICAgR0xpc3QqIHdlYkJhY2tGb3J3YXJkSXRlbXMgPSB7IDAgfTsKKworICAg
IGlmIChkaXJlY3Rpb24gPT0gQkFDS19MSVNUKQorICAgICAgICBiYWNrRm9yd2FyZExpc3QtPmJh
Y2tMaXN0V2l0aExpbWl0KGxpbWl0LCBpdGVtcyk7CisgICAgZWxzZQorICAgICAgICBiYWNrRm9y
d2FyZExpc3QtPmZvcndhcmRMaXN0V2l0aExpbWl0KGxpbWl0LCBpdGVtcyk7CisKKyAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwOyBpIDwgaXRlbXMuc2l6ZSgpOyBpKyspIHsKKyAgICAgICAgV2ViS2l0
V2ViSGlzdG9yeUl0ZW0qIHdlYkhpc3RvcnlJdGVtID0gd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1f
bmV3X3dpdGhfY29yZV9pdGVtKGl0ZW1zLmF0KGkpLmdldCgpKTsKKyAgICAgICAgd2ViQmFja0Zv
cndhcmRJdGVtcyA9IGdfbGlzdF9wcmVwZW5kKHdlYkJhY2tGb3J3YXJkSXRlbXMsIGdfb2JqZWN0
X3JlZih3ZWJIaXN0b3J5SXRlbSkpOworICAgIH0KKworICAgIHJldHVybiBnX2xpc3RfcmV2ZXJz
ZSh3ZWJCYWNrRm9yd2FyZEl0ZW1zKTsKK30KKworLyoqIHByaXZhdGU6ICovCitXZWJLaXRXZWJC
YWNrRm9yd2FyZExpc3QqIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfY3JlYXRlKFBhc3NS
ZWZQdHI8QmFja0ZvcndhcmRMaXN0PiBjb3JlQmFja0ZvcndhcmRMaXN0KQoreworICAgIEFTU0VS
VChjb3JlQmFja0ZvcndhcmRMaXN0KTsKKworICAgIFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCog
d2ViQmFja0ZvcndhcmRMaXN0OworCisgICAgd2ViQmFja0ZvcndhcmRMaXN0ID0gV0VCS0lUX1dF
Ql9CQUNLX0ZPUldBUkRfTElTVChnX29iamVjdF9uZXcoV0VCS0lUX1RZUEVfV0VCX0JBQ0tfRk9S
V0FSRF9MSVNULCBOVUxMKSk7CisgICAgV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0UHJpdmF0ZSog
cHJpdiA9IHdlYkJhY2tGb3J3YXJkTGlzdC0+cHJpdjsKKworICAgIGNvcmVCYWNrRm9yd2FyZExp
c3QtPnJlZigpOworICAgIHByaXYtPmJhY2tGb3J3YXJkTGlzdCA9IGNvcmVCYWNrRm9yd2FyZExp
c3Q7CisKKyAgICByZXR1cm4gd2ViQmFja0ZvcndhcmRMaXN0OworfQorCit2b2lkIHdlYmtpdF93
ZWJfYmFja19mb3J3YXJkX2xpc3RfZnJlZShXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdlYkJh
Y2tGb3J3YXJkTGlzdCkKK3sKKyAgICBBU1NFUlQod2ViQmFja0ZvcndhcmRMaXN0KTsKKworICAg
IFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGUqIHByaXYgPSB3ZWJCYWNrRm9yd2FyZExp
c3QtPnByaXY7CisKKyAgICAvKiB1bnJlZiBXZWJLaXRXZWJIaXN0b3J5SXRlbXMgcmVsYXRlZCB0
byB0aGlzIFdlYkJhY2tGb3J3YXJkTGlzdCAqLworICAgIFdlYkNvcmU6Okhpc3RvcnlJdGVtVmVj
dG9yIGVudHJpZXMgPSBwcml2LT5iYWNrRm9yd2FyZExpc3QtPmVudHJpZXMoKTsKKworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBlbnRyaWVzLnNpemUoKTsgaSsrKSB7CisgICAgICAgIFdl
YktpdFdlYkhpc3RvcnlJdGVtKiB3ZWJIaXN0b3J5SXRlbSA9IGtpdChlbnRyaWVzW2ldLmdldCgp
KTsKKyAgICAgICAgaWYgKHdlYkhpc3RvcnlJdGVtKQorICAgICAgICAgICAgZ19vYmplY3RfdW5y
ZWYoR19PQkpFQ1Qod2ViSGlzdG9yeUl0ZW0pKTsKKyAgICB9Cit9CisKKy8qKiBlbmQgcHJpdmF0
ZTogKi8KKworCiAvKioKICAqIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfbmV3X3dpdGhf
d2ViX3ZpZXc6CiAgKiBAd2ViVmlldzogdGhlIGJhY2sgZm9yd2FyZCBsaXN0J3MgI1dlYktpdFdl
YlZpZXcKQEAgLTYzLDE1ICsxNDEsOSBAQCBXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdlYmtp
dF93ZWJfYmFja19mb3J3YXJkX2xpc3RfbmV3X3dpdGhfd2ViX3ZpZXcoV2ViS2l0VwogewogICAg
IGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgTlVMTCk7
CiAKLSAgICBXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdlYkJhY2tGb3J3YXJkTGlzdDsKLQot
ICAgIHdlYkJhY2tGb3J3YXJkTGlzdCA9IFdFQktJVF9XRUJfQkFDS19GT1JXQVJEX0xJU1QoZ19v
YmplY3RfbmV3KFdFQktJVF9UWVBFX1dFQl9CQUNLX0ZPUldBUkRfTElTVCwgTlVMTCkpOwotICAg
IFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdFByaXZhdGUqIHByaXYgPSB3ZWJCYWNrRm9yd2FyZExp
c3QtPnByaXY7Ci0KLSAgICBwcml2LT5iYWNrRm9yd2FyZExpc3QgPSBjb3JlKHdlYlZpZXcpLT5i
YWNrRm9yd2FyZExpc3QoKTsKLSAgICBwcml2LT5iYWNrRm9yd2FyZExpc3QtPnNldEVuYWJsZWQo
VFJVRSk7CisgICAgUGFzc1JlZlB0cjxCYWNrRm9yd2FyZExpc3Q+IGNvcmVWaWV3QmFja0Zvcndh
cmRMaXN0ID0gY29yZSh3ZWJWaWV3KS0+YmFja0ZvcndhcmRMaXN0KCk7CiAKLSAgICByZXR1cm4g
d2ViQmFja0ZvcndhcmRMaXN0OworICAgIHJldHVybiB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9s
aXN0X2NyZWF0ZShjb3JlVmlld0JhY2tGb3J3YXJkTGlzdCk7CiB9CiAKIC8qKgpAQCAtODQsOSAr
MTU2LDExIEBAIHZvaWQgd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nb19mb3J3YXJkKFdl
YktpdFdlYkJhY2tGb3J3YXJkTGlzdCogd2ViQmFja0ZvCiB7CiAgICAgZ19yZXR1cm5faWZfZmFp
bChXRUJLSVRfSVNfV0VCX0JBQ0tfRk9SV0FSRF9MSVNUKHdlYkJhY2tGb3J3YXJkTGlzdCkpOwog
Ci0gICAgV2ViQ29yZTo6QmFja0ZvcndhcmRMaXN0KiBiYWNrRm9yd2FyZExpc3QgPSBjb3JlKHdl
YkJhY2tGb3J3YXJkTGlzdCk7Ci0gICAgaWYgKGJhY2tGb3J3YXJkTGlzdC0+ZW5hYmxlZCgpKQot
ICAgICAgICBiYWNrRm9yd2FyZExpc3QtPmdvRm9yd2FyZCgpOworICAgIFJlZlB0cjxCYWNrRm9y
d2FyZExpc3Q+IGJhY2tGb3J3YXJkTGlzdCA9IGNvcmUod2ViQmFja0ZvcndhcmRMaXN0KTsKKwor
ICAgIEFTU0VSVChiYWNrRm9yd2FyZExpc3QpOworCisgICAgYmFja0ZvcndhcmRMaXN0LT5nb0Zv
cndhcmQoKTsKIH0KIAogLyoqCkBAIC05OSw5ICsxNzMsMTEgQEAgdm9pZCB3ZWJraXRfd2ViX2Jh
Y2tfZm9yd2FyZF9saXN0X2dvX2JhY2soV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0KiB3ZWJCYWNr
Rm9yd2EKIHsKICAgICBnX3JldHVybl9pZl9mYWlsKFdFQktJVF9JU19XRUJfQkFDS19GT1JXQVJE
X0xJU1Qod2ViQmFja0ZvcndhcmRMaXN0KSk7CiAKLSAgICBXZWJDb3JlOjpCYWNrRm9yd2FyZExp
c3QqIGJhY2tGb3J3YXJkTGlzdCA9IGNvcmUod2ViQmFja0ZvcndhcmRMaXN0KTsKLSAgICBpZiAo
YmFja0ZvcndhcmRMaXN0LT5lbmFibGVkKCkpCi0gICAgICAgIGJhY2tGb3J3YXJkTGlzdC0+Z29C
YWNrKCk7CisgICAgUmVmUHRyPEJhY2tGb3J3YXJkTGlzdD4gYmFja0ZvcndhcmRMaXN0ID0gY29y
ZSh3ZWJCYWNrRm9yd2FyZExpc3QpOworCisgICAgQVNTRVJUKGJhY2tGb3J3YXJkTGlzdCk7CisK
KyAgICBiYWNrRm9yd2FyZExpc3QtPmdvQmFjaygpOwogfQogCiAvKioKQEAgLTExOSwxMiArMTk1
LDEyIEBAIGdib29sZWFuIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfY29udGFpbnNfaXRl
bShXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdlCiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
V0VCS0lUX0lTX1dFQl9ISVNUT1JZX0lURU0od2ViSGlzdG9yeUl0ZW0pLCBGQUxTRSk7CiAKICAg
ICBXZWJDb3JlOjpIaXN0b3J5SXRlbSogaGlzdG9yeUl0ZW0gPSBjb3JlKHdlYkhpc3RvcnlJdGVt
KTsKKyAgICBSZWZQdHI8QmFja0ZvcndhcmRMaXN0PiBiYWNrRm9yd2FyZExpc3QgPSBjb3JlKHdl
YkJhY2tGb3J3YXJkTGlzdCk7CiAKLSAgICBnX3JldHVybl92YWxfaWZfZmFpbChoaXN0b3J5SXRl
bSAhPSBOVUxMLCBGQUxTRSk7Ci0KLSAgICBXZWJDb3JlOjpCYWNrRm9yd2FyZExpc3QqIGJhY2tG
b3J3YXJkTGlzdCA9IGNvcmUod2ViQmFja0ZvcndhcmRMaXN0KTsKKyAgICBBU1NFUlQoaGlzdG9y
eUl0ZW0pOworICAgIEFTU0VSVChiYWNrRm9yd2FyZExpc3QpOwogCi0gICAgcmV0dXJuIChiYWNr
Rm9yd2FyZExpc3QtPmVuYWJsZWQoKSA/IGJhY2tGb3J3YXJkTGlzdC0+Y29udGFpbnNJdGVtKGhp
c3RvcnlJdGVtKSA6IEZBTFNFKTsKKyAgICByZXR1cm4gYmFja0ZvcndhcmRMaXN0LT5jb250YWlu
c0l0ZW0oaGlzdG9yeUl0ZW0pOwogfQogCiAvKioKQEAgLTE0MCwxMCArMjE2LDEyIEBAIHZvaWQg
d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nb190b19pdGVtKFdlYktpdFdlYkJhY2tGb3J3
YXJkTGlzdCogd2ViQmFja0ZvCiAgICAgZ19yZXR1cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX0hJ
U1RPUllfSVRFTSh3ZWJIaXN0b3J5SXRlbSkpOwogCiAgICAgV2ViQ29yZTo6SGlzdG9yeUl0ZW0q
IGhpc3RvcnlJdGVtID0gY29yZSh3ZWJIaXN0b3J5SXRlbSk7Ci0gICAgV2ViQ29yZTo6QmFja0Zv
cndhcmRMaXN0KiBiYWNrRm9yd2FyZExpc3QgPSBjb3JlKHdlYkJhY2tGb3J3YXJkTGlzdCk7Cisg
ICAgUmVmUHRyPEJhY2tGb3J3YXJkTGlzdD4gYmFja0ZvcndhcmRMaXN0ID0gY29yZSh3ZWJCYWNr
Rm9yd2FyZExpc3QpOwogCi0gICAgaWYgKGJhY2tGb3J3YXJkTGlzdC0+ZW5hYmxlZCgpICYmIGhp
c3RvcnlJdGVtKQotICAgICAgICBiYWNrRm9yd2FyZExpc3QtPmdvVG9JdGVtKGhpc3RvcnlJdGVt
KTsKKyAgICBBU1NFUlQoaGlzdG9yeUl0ZW0pOworICAgIEFTU0VSVChiYWNrRm9yd2FyZExpc3Qp
OworCisgICAgYmFja0ZvcndhcmRMaXN0LT5nb1RvSXRlbShoaXN0b3J5SXRlbSk7CiB9CiAKIC8q
KgpAQCAtMTUzLDI3ICsyMzEsMTYgQEAgdm9pZCB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0
X2dvX3RvX2l0ZW0oV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0KiB3ZWJCYWNrRm8KICAqCiAgKiBS
ZXR1cm5zIGEgbGlzdCBvZiBpdGVtcyB0aGF0IHN1Y2NlZWQgdGhlIGN1cnJlbnQgaXRlbSwgbGlt
aXRlZCBieSBAbGltaXQKICAqCi0gKiBSZXR1cm4gdmFsdWU6IGEgI0dMaXN0IG9mIGl0ZW1zIHN1
Y2NlZWRpbmcgdGhlIGN1cnJlbnQgaXRlbSwgbGltaXRlZCBieSBAbGltaXQKKyAqIFJldHVybiB2
YWx1ZTogYSAjR0xpc3Qgb2YgaXRlbXMgc3VjY2VlZGluZyB0aGUgY3VycmVudCBpdGVtLCBsaW1p
dGVkIGJ5CisgKiAgICAgICAgICAgICAgIEBsaW1pdC4gVGhlIGNhbGxlciBpcyByZXNwb25zaWJs
ZSBmb3IgZnJlZWluZyB0aGUgbGlzdCB1c2luZworICogICAgICAgICAgICAgICBnX2xpc3RfZnJl
ZSBhbmQgdGhlICNXZWJLaXRXZWJIaXN0b3J5SXRlbXMgYXNzb2NpYXRlZCB3aXRoIGl0CisgKiAg
ICAgICAgICAgICAgIHVzaW5nIGdfb2JqZWN0X3VucmVmLgogICovCiBHTGlzdCogd2Via2l0X3dl
Yl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfZm9yd2FyZF9saXN0X3dpdGhfbGltaXQoV2ViS2l0V2Vi
QmFja0ZvcndhcmRMaXN0KiB3ZWJCYWNrRm9yd2FyZExpc3QsIGdpbnQgbGltaXQpCiB7CiAgICAg
Z19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9CQUNLX0ZPUldBUkRfTElTVCh3ZWJC
YWNrRm9yd2FyZExpc3QpLCBOVUxMKTsKIAotICAgIFdlYkNvcmU6OkJhY2tGb3J3YXJkTGlzdCog
YmFja0ZvcndhcmRMaXN0ID0gY29yZSh3ZWJCYWNrRm9yd2FyZExpc3QpOwotICAgIGlmICghYmFj
a0ZvcndhcmRMaXN0IHx8ICFiYWNrRm9yd2FyZExpc3QtPmVuYWJsZWQoKSkKLSAgICAgICAgcmV0
dXJuIE5VTEw7Ci0KLSAgICBXZWJDb3JlOjpIaXN0b3J5SXRlbVZlY3RvciBpdGVtcyhsaW1pdCk7
Ci0gICAgR0xpc3QqIGZvcndhcmRJdGVtcyA9IHsgMCB9OwotCi0gICAgYmFja0ZvcndhcmRMaXN0
LT5mb3J3YXJkTGlzdFdpdGhMaW1pdChsaW1pdCwgaXRlbXMpOwotCi0gICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGl0ZW1zLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgIFdlYktpdFdlYkhpc3Rv
cnlJdGVtKiB3ZWJIaXN0b3J5SXRlbSA9IHdlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRo
X2NvcmVfaXRlbShpdGVtc1tpXS5nZXQoKSk7Ci0gICAgICAgIGZvcndhcmRJdGVtcyA9IGdfbGlz
dF9wcmVwZW5kKGZvcndhcmRJdGVtcywgZ19vYmplY3RfcmVmKHdlYkhpc3RvcnlJdGVtKSk7Ci0g
ICAgfQotCi0gICAgcmV0dXJuIGdfbGlzdF9yZXZlcnNlKGZvcndhcmRJdGVtcyk7CisgICAgcmV0
dXJuIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfY29uc3RydWN0X2xpc3Qod2ViQmFja0Zv
cndhcmRMaXN0LCBsaW1pdCwgRk9SV0FSRF9MSVNUKTsKIH0KIAogLyoqCkBAIC0xODMsMjcgKzI1
MCwxNiBAQCBHTGlzdCogd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfZm9yd2FyZF9s
aXN0X3dpdGhfbGltaXQoV2ViS2l0V2ViQmFja0ZvcgogICoKICAqIFJldHVybnMgYSBsaXN0IG9m
IGl0ZW1zIHRoYXQgcHJlY2VkZSB0aGUgY3VycmVudCBpdGVtLCBsaW1pdGVkIGJ5IEBsaW1pdAog
ICoKLSAqIFJldHVybiB2YWx1ZTogYSAjR0xpc3Qgb2YgaXRlbXMgcHJlY2VkaW5nIHRoZSBjdXJy
ZW50IGl0ZW0sIGxpbWl0ZWQgYnkgQGxpbWl0CisgKiBSZXR1cm4gdmFsdWU6IGEgI0dMaXN0IG9m
IGl0ZW1zIHByZWNlZGluZyB0aGUgY3VycmVudCBpdGVtLCBsaW1pdGVkIGJ5CisgKiAgICAgICAg
ICAgICAgIEBsaW1pdC4gVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgZnJlZWluZyB0aGUg
bGlzdCB1c2luZworICogICAgICAgICAgICAgICBnX2xpc3RfZnJlZSBhbmQgdGhlICNXZWJLaXRX
ZWJIaXN0b3J5SXRlbXMgYXNzb2NpYXRlZCB3aXRoIGl0CisgKiAgICAgICAgICAgICAgIHVzaW5n
IGdfb2JqZWN0X3VucmVmLgogICovCiBHTGlzdCogd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlz
dF9nZXRfYmFja19saXN0X3dpdGhfbGltaXQoV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0KiB3ZWJC
YWNrRm9yd2FyZExpc3QsIGdpbnQgbGltaXQpCiB7CiAgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwo
V0VCS0lUX0lTX1dFQl9CQUNLX0ZPUldBUkRfTElTVCh3ZWJCYWNrRm9yd2FyZExpc3QpLCBOVUxM
KTsKIAotICAgIFdlYkNvcmU6OkJhY2tGb3J3YXJkTGlzdCogYmFja0ZvcndhcmRMaXN0ID0gY29y
ZSh3ZWJCYWNrRm9yd2FyZExpc3QpOwotICAgIGlmICghYmFja0ZvcndhcmRMaXN0IHx8ICFiYWNr
Rm9yd2FyZExpc3QtPmVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Ci0KLSAgICBXZWJD
b3JlOjpIaXN0b3J5SXRlbVZlY3RvciBpdGVtcyhsaW1pdCk7Ci0gICAgR0xpc3QqIGJhY2tJdGVt
cyA9IHsgMCB9OwotCi0gICAgYmFja0ZvcndhcmRMaXN0LT5iYWNrTGlzdFdpdGhMaW1pdChsaW1p
dCwgaXRlbXMpOwotCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGl0ZW1zLnNpemUoKTsg
aSsrKSB7Ci0gICAgICAgIFdlYktpdFdlYkhpc3RvcnlJdGVtKiB3ZWJIaXN0b3J5SXRlbSA9IHdl
YmtpdF93ZWJfaGlzdG9yeV9pdGVtX25ld193aXRoX2NvcmVfaXRlbShpdGVtc1tpXS5nZXQoKSk7
Ci0gICAgICAgIGJhY2tJdGVtcyA9IGdfbGlzdF9wcmVwZW5kKGJhY2tJdGVtcywgZ19vYmplY3Rf
cmVmKHdlYkhpc3RvcnlJdGVtKSk7Ci0gICAgfQotCi0gICAgcmV0dXJuIGdfbGlzdF9yZXZlcnNl
KGJhY2tJdGVtcyk7CisgICAgcmV0dXJuIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfY29u
c3RydWN0X2xpc3Qod2ViQmFja0ZvcndhcmRMaXN0LCBsaW1pdCwgQkFDS19MSVNUKTsKIH0KIC8q
KgogICogd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfYmFja19pdGVtOgpAQCAtMjE3
LDkgKzI3Myw3IEBAIFdlYktpdFdlYkhpc3RvcnlJdGVtKiB3ZWJraXRfd2ViX2JhY2tfZm9yd2Fy
ZF9saXN0X2dldF9iYWNrX2l0ZW0oV2ViS2l0V2ViQmFja0ZvCiB7CiAgICAgZ19yZXR1cm5fdmFs
X2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9CQUNLX0ZPUldBUkRfTElTVCh3ZWJCYWNrRm9yd2FyZExp
c3QpLCBOVUxMKTsKIAotICAgIFdlYkNvcmU6OkJhY2tGb3J3YXJkTGlzdCogYmFja0ZvcndhcmRM
aXN0ID0gY29yZSh3ZWJCYWNrRm9yd2FyZExpc3QpOwotICAgIGlmICghYmFja0ZvcndhcmRMaXN0
IHx8ICFiYWNrRm9yd2FyZExpc3QtPmVuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuIE5VTEw7Cisg
ICAgUmVmUHRyPEJhY2tGb3J3YXJkTGlzdD4gYmFja0ZvcndhcmRMaXN0ID0gY29yZSh3ZWJCYWNr
Rm9yd2FyZExpc3QpOwogCiAgICAgV2ViQ29yZTo6SGlzdG9yeUl0ZW0qIGhpc3RvcnlJdGVtID0g
YmFja0ZvcndhcmRMaXN0LT5iYWNrSXRlbSgpOwogCkBAIC0yNDAsOSArMjk0LDcgQEAgV2ViS2l0
V2ViSGlzdG9yeUl0ZW0qIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2N1cnJlbnRf
aXRlbShXZWJLaXRXZWJCYWMKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNf
V0VCX0JBQ0tfRk9SV0FSRF9MSVNUKHdlYkJhY2tGb3J3YXJkTGlzdCksIE5VTEwpOwogCi0gICAg
V2ViQ29yZTo6QmFja0ZvcndhcmRMaXN0KiBiYWNrRm9yd2FyZExpc3QgPSBjb3JlKHdlYkJhY2tG
b3J3YXJkTGlzdCk7Ci0gICAgaWYgKCFiYWNrRm9yd2FyZExpc3QgfHwgIWJhY2tGb3J3YXJkTGlz
dC0+ZW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBSZWZQdHI8QmFja0Zvcndh
cmRMaXN0PiBiYWNrRm9yd2FyZExpc3QgPSBjb3JlKHdlYkJhY2tGb3J3YXJkTGlzdCk7CiAKICAg
ICBXZWJDb3JlOjpIaXN0b3J5SXRlbSogaGlzdG9yeUl0ZW0gPSBiYWNrRm9yd2FyZExpc3QtPmN1
cnJlbnRJdGVtKCk7CiAKQEAgLTI2Myw5ICszMTUsNyBAQCBXZWJLaXRXZWJIaXN0b3J5SXRlbSog
d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfZm9yd2FyZF9pdGVtKFdlYktpdFdlYkJh
YwogewogICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWlsKFdFQktJVF9JU19XRUJfQkFDS19GT1JXQVJE
X0xJU1Qod2ViQmFja0ZvcndhcmRMaXN0KSwgTlVMTCk7CiAKLSAgICBXZWJDb3JlOjpCYWNrRm9y
d2FyZExpc3QqIGJhY2tGb3J3YXJkTGlzdCA9IGNvcmUod2ViQmFja0ZvcndhcmRMaXN0KTsKLSAg
ICBpZiAoIWJhY2tGb3J3YXJkTGlzdCB8fCAhYmFja0ZvcndhcmRMaXN0LT5lbmFibGVkKCkpCi0g
ICAgICAgIHJldHVybiBOVUxMOworICAgIFJlZlB0cjxCYWNrRm9yd2FyZExpc3Q+IGJhY2tGb3J3
YXJkTGlzdCA9IGNvcmUod2ViQmFja0ZvcndhcmRMaXN0KTsKIAogICAgIFdlYkNvcmU6Okhpc3Rv
cnlJdGVtKiBoaXN0b3J5SXRlbSA9IGJhY2tGb3J3YXJkTGlzdC0+Zm9yd2FyZEl0ZW0oKTsKIApA
QCAtMjg1LDkgKzMzNSw5IEBAIFdlYktpdFdlYkhpc3RvcnlJdGVtKiB3ZWJraXRfd2ViX2JhY2tf
Zm9yd2FyZF9saXN0X2dldF9udGhfaXRlbShXZWJLaXRXZWJCYWNrRm9yCiB7CiAgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9CQUNLX0ZPUldBUkRfTElTVCh3ZWJCYWNrRm9y
d2FyZExpc3QpLCBOVUxMKTsKIAotICAgIFdlYkNvcmU6OkJhY2tGb3J3YXJkTGlzdCogYmFja0Zv
cndhcmRMaXN0ID0gY29yZSh3ZWJCYWNrRm9yd2FyZExpc3QpOwotICAgIGlmICghYmFja0Zvcndh
cmRMaXN0KQotICAgICAgICByZXR1cm4gTlVMTDsKKyAgICBSZWZQdHI8QmFja0ZvcndhcmRMaXN0
PiBiYWNrRm9yd2FyZExpc3QgPSBjb3JlKHdlYkJhY2tGb3J3YXJkTGlzdCk7CisKKyAgICBBU1NF
UlQoYmFja0ZvcndhcmRMaXN0KTsKIAogICAgIFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBoaXN0b3J5
SXRlbSA9IGJhY2tGb3J3YXJkTGlzdC0+aXRlbUF0SW5kZXgoaW5kZXgpOwogCkBAIC0zMDYsOSAr
MzU2LDcgQEAgZ2ludCB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9iYWNrX2xlbmd0
aChXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdlYkIKIHsKICAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfSVNfV0VCX0JBQ0tfRk9SV0FSRF9MSVNUKHdlYkJhY2tGb3J3YXJkTGlzdCks
IDApOwogCi0gICAgV2ViQ29yZTo6QmFja0ZvcndhcmRMaXN0KiBiYWNrRm9yd2FyZExpc3QgPSBj
b3JlKHdlYkJhY2tGb3J3YXJkTGlzdCk7Ci0gICAgaWYgKCFiYWNrRm9yd2FyZExpc3QgfHwgIWJh
Y2tGb3J3YXJkTGlzdC0+ZW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gMDsKKyAgICBSZWZQdHI8
QmFja0ZvcndhcmRMaXN0PiBiYWNrRm9yd2FyZExpc3QgPSBjb3JlKHdlYkJhY2tGb3J3YXJkTGlz
dCk7CiAKICAgICByZXR1cm4gYmFja0ZvcndhcmRMaXN0LT5iYWNrTGlzdENvdW50KCk7CiB9CkBA
IC0zMjUsOSArMzczLDkgQEAgZ2ludCB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9m
b3J3YXJkX2xlbmd0aChXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHcKIHsKICAgICBnX3JldHVy
bl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0JBQ0tfRk9SV0FSRF9MSVNUKHdlYkJhY2tGb3J3
YXJkTGlzdCksIDApOwogCi0gICAgV2ViQ29yZTo6QmFja0ZvcndhcmRMaXN0KiBiYWNrRm9yd2Fy
ZExpc3QgPSBjb3JlKHdlYkJhY2tGb3J3YXJkTGlzdCk7Ci0gICAgaWYgKCFiYWNrRm9yd2FyZExp
c3QgfHwgIWJhY2tGb3J3YXJkTGlzdC0+ZW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gMDsKKyAg
ICBSZWZQdHI8QmFja0ZvcndhcmRMaXN0PiBiYWNrRm9yd2FyZExpc3QgPSBjb3JlKHdlYkJhY2tG
b3J3YXJkTGlzdCk7CisKKyAgICBBU1NFUlQoYmFja0ZvcndhcmRMaXN0KTsKIAogICAgIHJldHVy
biBiYWNrRm9yd2FyZExpc3QtPmZvcndhcmRMaXN0Q291bnQoKTsKIH0KQEAgLTMzOCwxNSArMzg2
LDE2IEBAIGdpbnQgd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfZm9yd2FyZF9sZW5n
dGgoV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0KiB3CiAgKgogICogUmV0dXJucyB0aGUgbWF4aW11
bSBsaW1pdCBvZiB0aGUgYmFjayBmb3J3YXJkIGxpc3QuCiAgKgotICogUmV0dXJuIHZhbHVlOiBh
ICNnaW50IGluZGljYXRpbmcgdGhlIG51bWJlciBvZiAjV2ViSGlzdG9yeUl0ZW0gdGhlIGJhY2sg
Zm9yd2FyZCBsaXN0IGNhbiBob2xkCisgKiBSZXR1cm4gdmFsdWU6IGEgI2dpbnQgaW5kaWNhdGlu
ZyB0aGUgbnVtYmVyIG9mICNXZWJIaXN0b3J5SXRlbSB0aGUgYmFjaworICogICAgICAgICAgICAg
ICBmb3J3YXJkIGxpc3QgY2FuIGhvbGQKICAqLwogZ2ludCB3ZWJraXRfd2ViX2JhY2tfZm9yd2Fy
ZF9saXN0X2dldF9saW1pdChXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdlYkJhY2tGb3J3YXJk
TGlzdCkKIHsKICAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX0JBQ0tfRk9S
V0FSRF9MSVNUKHdlYkJhY2tGb3J3YXJkTGlzdCksIDApOwogCi0gICAgV2ViQ29yZTo6QmFja0Zv
cndhcmRMaXN0KiBiYWNrRm9yd2FyZExpc3QgPSBjb3JlKHdlYkJhY2tGb3J3YXJkTGlzdCk7Ci0g
ICAgaWYgKCFiYWNrRm9yd2FyZExpc3QgfHwgIWJhY2tGb3J3YXJkTGlzdC0+ZW5hYmxlZCgpKQot
ICAgICAgICByZXR1cm4gMDsKKyAgICBSZWZQdHI8QmFja0ZvcndhcmRMaXN0PiBiYWNrRm9yd2Fy
ZExpc3QgPSBjb3JlKHdlYkJhY2tGb3J3YXJkTGlzdCk7CisKKyAgICBBU1NFUlQoYmFja0Zvcndh
cmRMaXN0KTsKIAogICAgIHJldHVybiBiYWNrRm9yd2FyZExpc3QtPmNhcGFjaXR5KCk7CiB9CkBA
IC0zNjQsMTYgKzQxMywzMCBAQCB2b2lkIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3Rfc2V0
X2xpbWl0KFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCogd2ViQmFja0ZvcgogewogICAgIGdfcmV0
dXJuX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9CQUNLX0ZPUldBUkRfTElTVCh3ZWJCYWNrRm9yd2Fy
ZExpc3QpKTsKIAotICAgIFdlYkNvcmU6OkJhY2tGb3J3YXJkTGlzdCogYmFja0ZvcndhcmRMaXN0
ID0gY29yZSh3ZWJCYWNrRm9yd2FyZExpc3QpOwotICAgIGlmIChiYWNrRm9yd2FyZExpc3QpCi0g
ICAgICAgIGJhY2tGb3J3YXJkTGlzdC0+c2V0Q2FwYWNpdHkobGltaXQpOworICAgIFdlYktpdFdl
YkJhY2tGb3J3YXJkTGlzdFByaXZhdGUqIHByaXYgPSB3ZWJCYWNrRm9yd2FyZExpc3QtPnByaXY7
CisgICAgUmVmUHRyPEJhY2tGb3J3YXJkTGlzdD4gYmFja0ZvcndhcmRMaXN0ID0gY29yZSh3ZWJC
YWNrRm9yd2FyZExpc3QpOworCisgICAgQVNTRVJUKGJhY2tGb3J3YXJkTGlzdCk7CisKKyAgICAv
LyBVbnJlZiBXZWJLaXRXZWJIaXN0b3J5SXRlbXMgdGhhdCBleGNlZWQgdGhlIGxpbWl0LiBGcmVl
aW5nCisgICAgLy8gV2ViQ29yZTo6SGlzdG9yeUl0ZW1zIGlzIGhhbmRsZWQgYnkgV2ViQ29yZTo6
QmFja0ZvcndhcmRMaXN0CisgICAgV2ViQ29yZTo6SGlzdG9yeUl0ZW1WZWN0b3IgZW50cmllcyA9
IHByaXYtPmJhY2tGb3J3YXJkTGlzdC0+ZW50cmllcygpOworCisgICAgd2hpbGUgKGxpbWl0IDwg
KGludCllbnRyaWVzLnNpemUoKSkgeworICAgICAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbSogd2Vi
SGlzdG9yeUl0ZW0gPSBraXQoZW50cmllcy5sYXN0KCkuZ2V0KCkpOworICAgICAgICBpZiAod2Vi
SGlzdG9yeUl0ZW0pCisgICAgICAgICAgICBnX29iamVjdF91bnJlZihHX09CSkVDVCh3ZWJIaXN0
b3J5SXRlbSkpOworICAgIH0KKyAgICBiYWNrRm9yd2FyZExpc3QtPnNldENhcGFjaXR5KGxpbWl0
KTsKIH0KIAogfSAvKiBlbmQgZXh0ZXJuICJDIiAqLwogCi1XZWJDb3JlOjpCYWNrRm9yd2FyZExp
c3QqIFdlYktpdDo6Y29yZShXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIHdlYkJhY2tGb3J3YXJk
TGlzdCkKK1JlZlB0cjxCYWNrRm9yd2FyZExpc3Q+IFdlYktpdDo6Y29yZShXZWJLaXRXZWJCYWNr
Rm9yd2FyZExpc3QqIHdlYkJhY2tGb3J3YXJkTGlzdCkKIHsKICAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfSVNfV0VCX0JBQ0tfRk9SV0FSRF9MSVNUKHdlYkJhY2tGb3J3YXJkTGlzdCks
IE5VTEwpOwogCi0gICAgcmV0dXJuIHdlYkJhY2tGb3J3YXJkTGlzdC0+cHJpdiA/IHdlYkJhY2tG
b3J3YXJkTGlzdC0+cHJpdi0+YmFja0ZvcndhcmRMaXN0IDogMDsKKyAgICBBU1NFUlQod2ViQmFj
a0ZvcndhcmRMaXN0LT5wcml2LT5iYWNrRm9yd2FyZExpc3QpOworCisgICAgcmV0dXJuIHdlYkJh
Y2tGb3J3YXJkTGlzdC0+cHJpdi0+YmFja0ZvcndhcmRMaXN0OwogfQpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2d0ay93ZWJraXQvd2Via2l0d2Vidmlldy5jcHAgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJ2aWV3LmNwcAppbmRleCBlMDZkY2JmLi5jMmJkODc5IDEwMDY0NAotLS0gYS9XZWJLaXQv
Z3RrL3dlYmtpdC93ZWJraXR3ZWJ2aWV3LmNwcAorKysgYi9XZWJLaXQvZ3RrL3dlYmtpdC93ZWJr
aXR3ZWJ2aWV3LmNwcApAQCAtMTQxNyw3ICsxNDE3LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dl
Yl92aWV3X2luaXQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICBwcml2LT5sYXN0UG9wdXBY
UG9zaXRpb24gPSBwcml2LT5sYXN0UG9wdXBZUG9zaXRpb24gPSAtMTsKICAgICBwcml2LT5lZGl0
YWJsZSA9IGZhbHNlOwogCi0gICAgcHJpdi0+YmFja0ZvcndhcmRMaXN0ID0gd2Via2l0X3dlYl9i
YWNrX2ZvcndhcmRfbGlzdF9uZXdfd2l0aF93ZWJfdmlldyh3ZWJWaWV3KTsKKyAgICBwcml2LT5i
YWNrRm9yd2FyZExpc3QgPSB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2NyZWF0ZShjb3Jl
KHdlYlZpZXcpLT5iYWNrRm9yd2FyZExpc3QoKSk7CiAKICAgICBwcml2LT56b29tRnVsbENvbnRl
bnQgPSBGQUxTRTsKIApAQCAtMTQ3NywxMiArMTQ3NywyMCBAQCBXZWJLaXRXZWJTZXR0aW5ncyog
d2Via2l0X3dlYl92aWV3X2dldF9zZXR0aW5ncyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogICog
QHdlYlZpZXc6IGEgI1dlYktpdFdlYlZpZXcKICAqIEBmbGFnOiB0byB0ZWxsIHRoZSB2aWV3IHRv
IG1haW50YWluIGEgYmFjayBvciBmb3J3YXJkIGxpc3QKICAqCi0gKiBTZXQgdGhlIHZpZXcgdG8g
bWFpbnRhaW4gYSBiYWNrIG9yIGZvcndhcmQgbGlzdCBvZiBoaXN0b3J5IGl0ZW1zLgorICogU2V0
IHRoZSB2aWV3IHRvIG1haW50YWluIGEgYmFjayBvciBmb3J3YXJkIGxpc3Qgb2YgaGlzdG9yeSBp
dGVtcy4gSWYgQGZsYWcKKyAqIGlzICVGQUxTRSwgdGhpcyBmdW5jdGlvbiB3aWxsIGZyZWUgYWxs
ICNXZWJLaXRXZWJIaXN0b3J5SXRlbXMgYXNzb2NpYXRlZCB3aXRoCisgKiB0aGUgQHdlYl92aWV3
LgogICovCiB2b2lkIHdlYmtpdF93ZWJfdmlld19zZXRfbWFpbnRhaW5zX2JhY2tfZm9yd2FyZF9s
aXN0KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGdib29sZWFuIGZsYWcpCiB7CiAgICAgZ19yZXR1
cm5faWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldykpOwogCisgICAgLy8gSWYgZGlz
YWJsZWQgZnJlZSB0aGUgV2ViS2l0V2ViSGlzdG9yeUl0ZW1zIGFzc29jaWF0ZWQgd2l0aCB0aGlz
IHZpZXcncworICAgIC8vIFdlYkJhY2tGb3J3YXJkTGlzdAorICAgIGlmICghZmxhZykgeworICAg
ICAgICBXZWJLaXRXZWJWaWV3UHJpdmF0ZSogcHJpdiA9IHdlYlZpZXctPnByaXY7CisgICAgICAg
IHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZnJlZShwcml2LT5iYWNrRm9yd2FyZExpc3Qp
OworICAgIH0KICAgICBjb3JlKHdlYlZpZXcpLT5iYWNrRm9yd2FyZExpc3QoKS0+c2V0RW5hYmxl
ZChmbGFnKTsKIH0KIApAQCAtMTQ5Miw3ICsxNTAwLDggQEAgdm9pZCB3ZWJraXRfd2ViX3ZpZXdf
c2V0X21haW50YWluc19iYWNrX2ZvcndhcmRfbGlzdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBn
Ym8KICAqCiAgKiBSZXR1cm5zIGEgI1dlYktpdFdlYkJhY2tGb3J3YXJkTGlzdAogICoKLSAqIFJl
dHVybiB2YWx1ZTogdGhlICNXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QKKyAqIFJldHVybiB2YWx1
ZTogdGhlICNXZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QuIFRoZSAjV2ViS2l0V2ViQmFja0Zvcndh
cmRMaXN0CisgKiAgICAgICAgICAgICAgIGlzIG93bmVkIGJ5IHRoZSBAd2ViX3ZpZXcgYW5kIHNo
b3VsZCBub3QgYmUgZnJlZWQuCiAgKi8KIFdlYktpdFdlYkJhY2tGb3J3YXJkTGlzdCogd2Via2l0
X3dlYl92aWV3X2dldF9iYWNrX2ZvcndhcmRfbGlzdChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQog
ewpAQCAtMTUwMCw4ICsxNTA5LDcgQEAgV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0KiB3ZWJraXRf
d2ViX3ZpZXdfZ2V0X2JhY2tfZm9yd2FyZF9saXN0KFdlYktpdFdlYlZpZXcqIHcKIAogICAgIFdl
YktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKIAotICAgIGlmICghY29y
ZSh3ZWJWaWV3KSB8fCAhY29yZSh3ZWJWaWV3KS0+YmFja0ZvcndhcmRMaXN0KCktPmVuYWJsZWQo
KSkKLSAgICAgICAgcmV0dXJuIE5VTEw7CisgICAgQVNTRVJUKHByaXYtPmJhY2tGb3J3YXJkTGlz
dCk7CiAKICAgICByZXR1cm4gcHJpdi0+YmFja0ZvcndhcmRMaXN0OwogfQo=
</data>
<flag name="review"
          id="10047"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>28442</attachid>
            <date>2009-03-10 11:21:12 -0700</date>
            <delta_ts>2009-03-11 01:50:35 -0700</delta_ts>
            <desc>Don&apos;t ref items when returning a back/forward list</desc>
            <filename>webkitgtk-backforward.patch</filename>
            <type>text/plain</type>
            <size>6965</size>
            <attacher name="Jan Alonzo">jmalonzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9ndGsvQ2hhbmdlTG9nIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
aW5kZXggNjUyYWMwNS4uZWE1Yzc4YSAxMDA2NDQKLS0tIGEvV2ViS2l0L2d0ay9DaGFuZ2VMb2cK
KysrIGIvV2ViS2l0L2d0ay9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAwOS0wMy0xMCAg
SmFuIE1pY2hhZWwgQWxvbnpvICA8am1hbG9uem9Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbR1RLXSBCYWNrRm9yd2FyZCBoaXN0
b3J5IGxlYWs/CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTUyOAorCisgICAgICAgIERvbid0IHJlZiB0aGUgaGlzdG9yeSBpdGVtcyB3aGVuIHJldHVy
bmluZyB0aGUgYmFjay9mb3J3YXJkIGxpc3QKKyAgICAgICAgQWRkZWQgdGVzdF93ZWJraXRfd2Vi
X2hpc3RvcnlfaXRlbV9saWZldGltZSB0ZXN0IGNhc2UgZm9yIHRoaXMuCisKKyAgICAgICAgKiB0
ZXN0cy9tYWluLmM6CisgICAgICAgICh0ZXN0X3dlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2xpZmV0
aW1lKToKKyAgICAgICAgKHRlc3Rfd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9vcmRlcik6
IEZpeGVkIHRvIHBhc3MgdGhlIHRlc3RzCisgICAgICAgIChtYWluKToKKyAgICAgICAgKiB3ZWJr
aXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcDoKKyAgICAgICAgKF9XZWJLaXRXZWJCYWNr
Rm9yd2FyZExpc3RQcml2YXRlOjp3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2dldF9mb3J3
YXJkX2xpc3Rfd2l0aF9saW1pdCk6CisgICAgICAgIChfV2ViS2l0V2ViQmFja0ZvcndhcmRMaXN0
UHJpdmF0ZTo6d2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfYmFja19saXN0X3dpdGhf
bGltaXQpOgorCiAyMDA5LTAzLTEwICBYYW4gTG9wZXogIDx4bG9wZXpAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBBbGV4ZXkgUHJvc2t1cnlha292LgpkaWZmIC0tZ2l0IGEvV2Vi
S2l0L2d0ay90ZXN0cy9tYWluLmMgYi9XZWJLaXQvZ3RrL3Rlc3RzL21haW4uYwppbmRleCA1Y2Rl
ZDhlLi4yYWY5ZGEwIDEwMDY0NAotLS0gYS9XZWJLaXQvZ3RrL3Rlc3RzL21haW4uYworKysgYi9X
ZWJLaXQvZ3RrL3Rlc3RzL21haW4uYwpAQCAtMzYsNiArMzYsODkgQEAgc3RhdGljIHZvaWQgdGVz
dF93ZWJraXRfd2ViX2ZyYW1lX2NyZWF0ZV9kZXN0cm95KHZvaWQpCiAgICAgZ19vYmplY3RfdW5y
ZWYod2ViVmlldyk7CiB9CiAKK3N0YXRpYyB2b2lkCit0ZXN0X3dlYmtpdF93ZWJfaGlzdG9yeV9p
dGVtX2xpZmV0aW1lKHZvaWQpCit7CisgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldzsKKyAgICBX
ZWJLaXRXZWJCYWNrRm9yd2FyZExpc3QqIGJhY2tGb3J3YXJkTGlzdDsKKyAgICBXZWJLaXRXZWJI
aXN0b3J5SXRlbSogY3VycmVudEl0ZW07CisgICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIGZvcndh
cmRJdGVtOworICAgIFdlYktpdFdlYkhpc3RvcnlJdGVtKiBiYWNrSXRlbTsKKyAgICBXZWJLaXRX
ZWJIaXN0b3J5SXRlbSogbnRoSXRlbTsKKyAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbSogaXRlbTE7
CisgICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIGl0ZW0yOworICAgIFdlYktpdFdlYkhpc3RvcnlJ
dGVtKiBpdGVtMzsKKyAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbSogaXRlbTQ7CisgICAgR0xpc3Qq
IGJhY2tMaXN0ID0gTlVMTDsKKyAgICBHTGlzdCogZm9yd2FyZExpc3QgPSBOVUxMOworICAgIGdf
dGVzdF9idWcoIjE5ODk4Iik7CisKKyAgICB3ZWJWaWV3ID0gV0VCS0lUX1dFQl9WSUVXKHdlYmtp
dF93ZWJfdmlld19uZXcoKSk7CisgICAgZ19vYmplY3RfcmVmX3Npbmsod2ViVmlldyk7CisgICAg
YmFja0ZvcndhcmRMaXN0ID0gd2Via2l0X3dlYl92aWV3X2dldF9iYWNrX2ZvcndhcmRfbGlzdCh3
ZWJWaWV3KTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoR19PQkpFQ1QoYmFja0ZvcndhcmRMaXN0KS0+
cmVmX2NvdW50LCA9PSwgMSk7CisKKyAgICAvKiBhZGQgdGVzdCBpdGVtcyAqLworICAgIGl0ZW0x
ID0gd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3X3dpdGhfZGF0YSgiaHR0cDovL2V4YW1wbGUu
Y29tLzEvIiwgIlNpdGUgMSIpOworICAgIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfYWRk
X2l0ZW0oYmFja0ZvcndhcmRMaXN0LCBpdGVtMSk7CisKKyAgICBpdGVtMiA9IHdlYmtpdF93ZWJf
aGlzdG9yeV9pdGVtX25ld193aXRoX2RhdGEoImh0dHA6Ly9leGFtcGxlLmNvbS8yLyIsICJTaXRl
IDIiKTsKKyAgICB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X2FkZF9pdGVtKGJhY2tGb3J3
YXJkTGlzdCwgaXRlbTIpOworCisgICAgaXRlbTMgPSB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9u
ZXdfd2l0aF9kYXRhKCJodHRwOi8vZXhhbXBsZS5jb20vMy8iLCAiU2l0ZSAzIik7CisgICAgd2Vi
a2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9hZGRfaXRlbShiYWNrRm9yd2FyZExpc3QsIGl0ZW0z
KTsKKworICAgIGl0ZW00ID0gd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3X3dpdGhfZGF0YSgi
aHR0cDovL2V4YW1wbGUuY29tLzQvIiwgIlNpdGUgNCIpOworICAgIHdlYmtpdF93ZWJfYmFja19m
b3J3YXJkX2xpc3RfYWRkX2l0ZW0oYmFja0ZvcndhcmRMaXN0LCBpdGVtNCk7CisKKyAgICAvKiBt
YWtlIHN1cmUgdGhlc2UgZnVuY3Rpb25zIGRvbid0IGFkZCB1bm5lY2Vzc2FyeSByZWYgdG8gdGhl
IGhpc3RvcnkgaXRlbSAqLworICAgIGJhY2tJdGVtID0gd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRf
bGlzdF9nZXRfYmFja19pdGVtKGJhY2tGb3J3YXJkTGlzdCk7CisgICAgZ19vYmplY3RfcmVmKGJh
Y2tJdGVtKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoR19PQkpFQ1QoYmFja0l0ZW0pLT5yZWZfY291
bnQsID09LCAyKTsKKyAgICBnX29iamVjdF91bnJlZihiYWNrSXRlbSk7CisgICAgZ19hc3NlcnRf
Y21waW50KEdfT0JKRUNUKGJhY2tJdGVtKS0+cmVmX2NvdW50LCA9PSwgMSk7CisKKyAgICBjdXJy
ZW50SXRlbSA9IHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2N1cnJlbnRfaXRlbShi
YWNrRm9yd2FyZExpc3QpOworICAgIGdfb2JqZWN0X3JlZihjdXJyZW50SXRlbSk7CisgICAgZ19h
c3NlcnRfY21waW50KEdfT0JKRUNUKGN1cnJlbnRJdGVtKS0+cmVmX2NvdW50LCA9PSwgMik7Cisg
ICAgZ19vYmplY3RfdW5yZWYoY3VycmVudEl0ZW0pOworICAgIGdfYXNzZXJ0X2NtcGludChHX09C
SkVDVChjdXJyZW50SXRlbSktPnJlZl9jb3VudCwgPT0sIDEpOworCisgICAgd2Via2l0X3dlYl9i
YWNrX2ZvcndhcmRfbGlzdF9nb190b19pdGVtKGJhY2tGb3J3YXJkTGlzdCwgaXRlbTIpOworICAg
IGZvcndhcmRJdGVtID0gd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfZm9yd2FyZF9p
dGVtKGJhY2tGb3J3YXJkTGlzdCk7CisgICAgZ19vYmplY3RfcmVmKGZvcndhcmRJdGVtKTsKKyAg
ICBnX2Fzc2VydF9jbXBpbnQoR19PQkpFQ1QoZm9yd2FyZEl0ZW0pLT5yZWZfY291bnQsID09LCAy
KTsKKyAgICBnX29iamVjdF91bnJlZihmb3J3YXJkSXRlbSk7CisgICAgZ19hc3NlcnRfY21waW50
KEdfT0JKRUNUKGZvcndhcmRJdGVtKS0+cmVmX2NvdW50LCA9PSwgMSk7CisKKyAgICBudGhJdGVt
ID0gd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfbnRoX2l0ZW0oYmFja0ZvcndhcmRM
aXN0LCAxKTsKKyAgICBnX29iamVjdF9yZWYobnRoSXRlbSk7CisgICAgZ19hc3NlcnRfY21waW50
KEdfT0JKRUNUKG50aEl0ZW0pLT5yZWZfY291bnQsID09LCAyKTsKKyAgICBnX29iamVjdF91bnJl
ZihudGhJdGVtKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQoR19PQkpFQ1QobnRoSXRlbSktPnJlZl9j
b3VudCwgPT0sIDEpOworCisgICAgYmFja0xpc3QgPSB3ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9s
aXN0X2dldF9iYWNrX2xpc3Rfd2l0aF9saW1pdChiYWNrRm9yd2FyZExpc3QsIDUpOworICAgIGZv
ciAoOyBiYWNrTGlzdDsgYmFja0xpc3QgPSBiYWNrTGlzdC0+bmV4dCkKKyAgICAgICAgZ19hc3Nl
cnRfY21waW50KEdfT0JKRUNUKGJhY2tMaXN0LT5kYXRhKS0+cmVmX2NvdW50LCA9PSwgMSk7CisK
KyAgICBmb3J3YXJkTGlzdCA9IHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2Zvcndh
cmRfbGlzdF93aXRoX2xpbWl0KGJhY2tGb3J3YXJkTGlzdCwgNSk7CisgICAgZm9yICg7IGZvcndh
cmRMaXN0OyBmb3J3YXJkTGlzdCA9IGZvcndhcmRMaXN0LT5uZXh0KQorICAgICAgICBnX2Fzc2Vy
dF9jbXBpbnQoR19PQkpFQ1QoZm9yd2FyZExpc3QtPmRhdGEpLT5yZWZfY291bnQsID09LCAxKTsK
KworICAgIGdfbGlzdF9mcmVlKGZvcndhcmRMaXN0KTsKKyAgICBnX2xpc3RfZnJlZShiYWNrTGlz
dCk7CisgICAgZ19vYmplY3RfdW5yZWYoaXRlbTEpOworICAgIGdfb2JqZWN0X3VucmVmKGl0ZW0y
KTsKKyAgICBnX29iamVjdF91bnJlZihpdGVtMyk7CisgICAgZ19vYmplY3RfdW5yZWYoaXRlbTQp
OworCisgICAgZ19vYmplY3RfcmVmKGJhY2tGb3J3YXJkTGlzdCk7CisgICAgZ19vYmplY3RfdW5y
ZWYod2ViVmlldyk7CisKKyAgICBnX2Fzc2VydF9jbXBpbnQoR19PQkpFQ1QoYmFja0ZvcndhcmRM
aXN0KS0+cmVmX2NvdW50LCA9PSwgMSk7CisgICAgZ19vYmplY3RfdW5yZWYoYmFja0ZvcndhcmRM
aXN0KTsKK30KKwogc3RhdGljIHZvaWQgdGVzdF93ZWJraXRfd2ViX2ZyYW1lX2xpZmV0aW1lKHZv
aWQpCiB7CiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldzsKQEAgLTE0NSw3ICsyMjgsNiBAQCB0
ZXN0X3dlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3Rfb3JkZXIodm9pZCkKICAgICBnX2Fzc2Vy
dF9jbXBzdHIod2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fZ2V0X3VyaShjdXJyZW50SXRlbSksID09
LCAiaHR0cDovL2V4YW1wbGUuY29tLzIvIik7CiAgICAgZ19hc3NlcnRfY21wc3RyKHdlYmtpdF93
ZWJfaGlzdG9yeV9pdGVtX2dldF90aXRsZShjdXJyZW50SXRlbSksID09LCAiU2l0ZSAyIik7CiAK
LSAgICBnX29iamVjdF91bnJlZihjdXJyZW50SXRlbSk7CiAgICAgZ19vYmplY3RfdW5yZWYoaXRl
bTEpOwogICAgIGdfb2JqZWN0X3VucmVmKGl0ZW0yKTsKICAgICBnX29iamVjdF91bnJlZihpdGVt
Myk7CkBAIC0yMzYsNiArMzE4LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqKiBhcmd2KQog
ICAgIGdfdGVzdF9hZGRfZnVuYygiL3dlYmtpdC93ZWJmcmFtZS9saWZldGltZSIsIHRlc3Rfd2Vi
a2l0X3dlYl9mcmFtZV9saWZldGltZSk7CiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L3dl
YmJhY2tmb3J3YXJkbGlzdC9hZGRfaXRlbSIsIHRlc3Rfd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRf
bGlzdF9hZGRfaXRlbSk7CiAgICAgZ190ZXN0X2FkZF9mdW5jKCIvd2Via2l0L3dlYmJhY2tmb3J3
YXJkbGlzdC9saXN0X29yZGVyIiwgdGVzdF93ZWJraXRfd2ViX2JhY2tfZm9yd2FyZF9saXN0X29y
ZGVyKTsKKyAgICBnX3Rlc3RfYWRkX2Z1bmMoIi93ZWJraXQvd2ViaGlzdG9yeWl0ZW0vbGlmZXRp
bWUiLCB0ZXN0X3dlYmtpdF93ZWJfaGlzdG9yeV9pdGVtX2xpZmV0aW1lKTsKICAgICByZXR1cm4g
Z190ZXN0X3J1biAoKTsKIH0KIApkaWZmIC0tZ2l0IGEvV2ViS2l0L2d0ay93ZWJraXQvd2Via2l0
d2ViYmFja2ZvcndhcmRsaXN0LmNwcCBiL1dlYktpdC9ndGsvd2Via2l0L3dlYmtpdHdlYmJhY2tm
b3J3YXJkbGlzdC5jcHAKaW5kZXggNGYxZGYwZi4uNWM5M2RmMCAxMDA2NDQKLS0tIGEvV2ViS2l0
L2d0ay93ZWJraXQvd2Via2l0d2ViYmFja2ZvcndhcmRsaXN0LmNwcAorKysgYi9XZWJLaXQvZ3Rr
L3dlYmtpdC93ZWJraXR3ZWJiYWNrZm9yd2FyZGxpc3QuY3BwCkBAIC0xODksOCArMTg5LDggQEAg
R0xpc3QqIHdlYmtpdF93ZWJfYmFja19mb3J3YXJkX2xpc3RfZ2V0X2ZvcndhcmRfbGlzdF93aXRo
X2xpbWl0KFdlYktpdFdlYkJhY2tGb3IKICAgICBiYWNrRm9yd2FyZExpc3QtPmZvcndhcmRMaXN0
V2l0aExpbWl0KGxpbWl0LCBpdGVtcyk7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwg
aXRlbXMuc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgV2ViS2l0V2ViSGlzdG9yeUl0ZW0qIHdlYkhp
c3RvcnlJdGVtID0gd2Via2l0X3dlYl9oaXN0b3J5X2l0ZW1fbmV3X3dpdGhfY29yZV9pdGVtKGl0
ZW1zW2ldKTsKLSAgICAgICAgZm9yd2FyZEl0ZW1zID0gZ19saXN0X3ByZXBlbmQoZm9yd2FyZEl0
ZW1zLCBnX29iamVjdF9yZWYod2ViSGlzdG9yeUl0ZW0pKTsKKyAgICAgICAgV2ViS2l0V2ViSGlz
dG9yeUl0ZW0qIHdlYkhpc3RvcnlJdGVtID0ga2l0KGl0ZW1zW2ldKTsKKyAgICAgICAgZm9yd2Fy
ZEl0ZW1zID0gZ19saXN0X3ByZXBlbmQoZm9yd2FyZEl0ZW1zLCB3ZWJIaXN0b3J5SXRlbSk7CiAg
ICAgfQogCiAgICAgcmV0dXJuIGZvcndhcmRJdGVtczsKQEAgLTIxOSw4ICsyMTksOCBAQCBHTGlz
dCogd2Via2l0X3dlYl9iYWNrX2ZvcndhcmRfbGlzdF9nZXRfYmFja19saXN0X3dpdGhfbGltaXQo
V2ViS2l0V2ViQmFja0ZvcndhcgogICAgIGJhY2tGb3J3YXJkTGlzdC0+YmFja0xpc3RXaXRoTGlt
aXQobGltaXQsIGl0ZW1zKTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBpdGVtcy5z
aXplKCk7IGkrKykgewotICAgICAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbSogd2ViSGlzdG9yeUl0
ZW0gPSB3ZWJraXRfd2ViX2hpc3RvcnlfaXRlbV9uZXdfd2l0aF9jb3JlX2l0ZW0oaXRlbXNbaV0p
OwotICAgICAgICBiYWNrSXRlbXMgPSBnX2xpc3RfcHJlcGVuZChiYWNrSXRlbXMsIGdfb2JqZWN0
X3JlZih3ZWJIaXN0b3J5SXRlbSkpOworICAgICAgICBXZWJLaXRXZWJIaXN0b3J5SXRlbSogd2Vi
SGlzdG9yeUl0ZW0gPSBraXQoaXRlbXNbaV0pOworICAgICAgICBiYWNrSXRlbXMgPSBnX2xpc3Rf
cHJlcGVuZChiYWNrSXRlbXMsIHdlYkhpc3RvcnlJdGVtKTsKICAgICB9CiAKICAgICByZXR1cm4g
YmFja0l0ZW1zOwo=
</data>
<flag name="review"
          id="13946"
          type_id="1"
          status="+"
          setter="zecke"
    />
          </attachment>
      

    </bug>

</bugzilla>