<?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>14030</bug_id>
          
          <creation_ts>2007-06-07 13:39:08 -0700</creation_ts>
          <short_desc>Add a setClient method to ResourceHandle</short_desc>
          <delta_ts>2007-08-02 09:20:16 -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>Page Loading</component>
          <version>523.x (Safari 3)</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brett Wilson (Google)">brettw</reporter>
          <assigned_to name="Brett Wilson (Google)">brettw</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>8180</commentid>
    <comment_count>0</comment_count>
    <who name="Brett Wilson (Google)">brettw</who>
    <bug_when>2007-06-07 13:39:08 -0700</bug_when>
    <thetext>ResourceHandle&apos;s ResourceHandleClient ownership is a bit tricky.

In the case of a server redirect to about blank (there is a LayoutTest for this), MainResourceLoader::continueAfterContentPolicy checks shouldLoadAsEmptyDocument() and internally calls didFinishLoading, skipping the normal ResourceHandle methods and releasing the reference to the ResourceHandle (in ResourceLoader::releaseResources).

It counts on the fact that it is the only owner of a reference to the ResourceHandle, such that it will be Release()d at this time, and that releasing will cancel the request. This is fragile and confusing. If somebody else happens to be holding a reference, the m_client member of the ResourceHandle will be invalid, and further callbacks will crash.

In addition, some implementations want to be able to change the client, although this may not be necessary in the current Safari embedding on Mac. We can solve both of these problems by adding a setClient method on ResourceHandle. ResourceLoader::releaseResources will call setClient(NULL) before releasing the handle, eliminating the possibility of invalid pointers in the event another reference is owned. It also allows other implementations to re-route resource requests, e.g. for downloads. On IRC, Maciej seemed to think this was an acceptable approach.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>8147</commentid>
    <comment_count>1</comment_count>
      <attachid>14903</attachid>
    <who name="Brett Wilson (Google)">brettw</who>
    <bug_when>2007-06-07 14:32:17 -0700</bug_when>
    <thetext>Created attachment 14903
Add setClient to ResourceHandle, use it, check for NULL

This simple patch just adds and implements setClient on ResourceHandle. I added setClient(NULL) in ResourceLoader before the handle is released, which is the important part (so the handle doesn&apos;t try to call back on the unowned pointer if it lives beyond this release).

I also added NULL checks before the client is accessed. I ended up changing the Mac (many cases) and CFNet (sometimes it was already checking, so I only needed a few) ports. The Qt port seems to reliable check for NULL already. I am happy to make a new patch without any of these port changes if you would prefer, I just wanted to try to reduce mysterious crashes down the like for the different embedders).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6250</commentid>
    <comment_count>2</comment_count>
      <attachid>14903</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2007-06-26 00:26:35 -0700</bug_when>
    <thetext>Comment on attachment 14903
Add setClient to ResourceHandle, use it, check for NULL

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6153</commentid>
    <comment_count>3</comment_count>
      <attachid>14903</attachid>
    <who name="Matt Lilek">dev+webkit</who>
    <bug_when>2007-06-26 16:08:36 -0700</bug_when>
    <thetext>Comment on attachment 14903
Add setClient to ResourceHandle, use it, check for NULL

This doesn&apos;t apply cleanly on ToT anymore</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>6118</commentid>
    <comment_count>4</comment_count>
      <attachid>14903</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-06-26 22:47:28 -0700</bug_when>
    <thetext>Comment on attachment 14903
Add setClient to ResourceHandle, use it, check for NULL

Can we get a refreshed patch that applies cleanly please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3784</commentid>
    <comment_count>5</comment_count>
    <who name="Brett Wilson (Google)">brettw</who>
    <bug_when>2007-07-24 13:03:32 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 14903 [edit])
&gt; Can we get a refreshed patch that applies cleanly please?

Working on it...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3787</commentid>
    <comment_count>6</comment_count>
      <attachid>15670</attachid>
    <who name="Brett Wilson (Google)">brettw</who>
    <bug_when>2007-07-24 13:34:18 -0700</bug_when>
    <thetext>Created attachment 15670
New patch that applies cleanly

This is the same patch (it got R+ before) but updated to apply cleanly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3780</commentid>
    <comment_count>7</comment_count>
      <attachid>15670</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-07-24 14:15:04 -0700</bug_when>
    <thetext>Comment on attachment 15670
New patch that applies cleanly

+    if (m_handle.get())

Don&apos;t need a .get() on the line above.

+        m_handle-&gt;setClient(NULL);

We normally use 0 for such things, not NULL.

+    // The client may be NULL, in which case no callbacks will be made.

We don&apos;t call this &quot;NULL&quot;.

r=me since Maciej reviewed this previously and it looks fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3730</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2007-07-25 09:57:36 -0700</bug_when>
    <thetext>Committed revision 24624.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3723</commentid>
    <comment_count>9</comment_count>
    <who name="Brett Wilson (Google)">brettw</who>
    <bug_when>2007-07-25 14:03:26 -0700</bug_when>
    <thetext>Thanks for the fixes Darin!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>3139</commentid>
    <comment_count>10</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2007-08-02 09:20:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/5380658&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>14903</attachid>
            <date>2007-06-07 14:32:17 -0700</date>
            <delta_ts>2007-07-24 13:34:18 -0700</delta_ts>
            <desc>Add setClient to ResourceHandle, use it, check for NULL</desc>
            <filename>setclient.diff</filename>
            <type>text/plain</type>
            <size>10056</size>
            <attacher name="Brett Wilson (Google)">brettw</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMjA0OCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzggQEAKKzIwMDctMDYtMDcgIE1hcnZpbiBEZWNrZXIgIDxtYXJ2LmRlY2tlckBn
bWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIFJlc291cmNlSGFuZGxlOjpzZXRDbGllbnQgdG8gcmVzb2x2ZSBzb21lIG1lc3N5bmVz
cyB3aXRoIGhhbmRsZQorICAgICAgICByZWxlYXNpbmcuIENsZWFyIHRoZSBjbGllbnQgd2hlbiBS
ZXNvdXJjZUxvYWRlciBpcyBnb2luZyB0byByZWxlYXNlCisgICAgICAgIHRoZSBoYW5kbGUgdG8g
cHJldmVudCBjcmFzaGVzIGluIHRoZSBjYXNlIHdoZXJlIHNvbWVib2R5IHN0aWxsIGhvbGRzIGEK
KyAgICAgICAgcmVmZXJlbmNlICh0aGlzIGRvZXNuJ3Qgc2VlbSB0byBjdXJyZW50bHkgaGFwcGVu
IGluIHByYWN0aWNlKSwgYWRkCisgICAgICAgIE5VTEwtY2hlY2tpbmcgZm9yIFJlc291cmNlSGFu
ZGxlIGltcGxlbWVudGF0aW9ucyB1c2luZyB0aGUgY2xpZW50LgorCisgICAgICAgIEJ1ZyBodHRw
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDAzMAorCisgICAgICAgICogbG9h
ZGVyL1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVy
OjpyZWxlYXNlUmVzb3VyY2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNl
SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpmaXJlQmxvY2tl
ZEZhaWx1cmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnNldENsaWVudCk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAgICAq
IHBsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpkaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6ZGlkUmVjZWl2
ZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6ZGlkRmluaXNoTG9hZGluZyk6CisgICAgICAgIChX
ZWJDb3JlOjpkaWRGYWlsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJj
ZUhhbmRsZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VI
YW5kbGU6OmRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENhbmNlbGxhdGlvbik6CisgICAgICAgICgtW1dl
YkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlvbjp3aWxsU2VuZFJlcXVlc3Q6
cmVkaXJlY3RSZXNwb25zZTpdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNE
ZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVSZXNwb25zZTpdKToKKyAgICAgICAgKC1bV2Vi
Q29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZFJlY2VpdmVEYXRhOmxl
bmd0aFJlY2VpdmVkOl0pOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVn
YXRlIGNvbm5lY3Rpb246d2lsbFN0b3BCdWZmZXJpbmdEYXRhOl0pOgorICAgICAgICAoLVtXZWJD
b3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlIGNvbm5lY3Rpb25EaWRGaW5pc2hMb2FkaW5nOl0p
OgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVnYXRlIGNvbm5lY3Rpb246
ZGlkRmFpbFdpdGhFcnJvcjpdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNE
ZWxlZ2F0ZSBjb25uZWN0aW9uOndpbGxDYWNoZVJlc3BvbnNlOl0pOgorCiAyMDA3LTA2LTA3ICBT
YW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW5kZXJz
LgpJbmRleDogV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VMb2FkZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9hZGVyLmNwcAkocmV2aXNpb24gMjIwNDMpCisrKyBX
ZWJDb3JlL2xvYWRlci9SZXNvdXJjZUxvYWRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg3LDcg
Kzg3LDEyIEBAIHZvaWQgUmVzb3VyY2VMb2FkZXI6OnJlbGVhc2VSZXNvdXJjZXMoKQogCiAgICAg
bV9pZGVudGlmaWVyID0gMDsKIAorICAgIC8vIENsZWFyIG91dCB0aGUgUmVzb3VyY2VIYW5kbGUn
cyBjbGllbnQgc28gdGhhdCBpdCBkb2Vzbid0IHRyeSB0byBjYWxsCisgICAgLy8gdXMgYmFjayBh
ZnRlciB3ZSByZWxlYXNlIGl0LgorICAgIGlmIChtX2hhbmRsZS5nZXQoKSkKKyAgICAgICAgbV9o
YW5kbGUtPnNldENsaWVudChOVUxMKTsKICAgICBtX2hhbmRsZSA9IDA7CisKICAgICBtX3Jlc291
cmNlRGF0YSA9IDA7CiAgICAgbV9kZWZlcnJlZFJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QoKTsK
IH0KSW5kZXg6IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAko
cmV2aXNpb24gMjIwNDMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5k
bGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NCw3ICs2NCw4IEBAIHZvaWQgUmVzb3VyY2VIYW5k
bGU6OnNjaGVkdWxlQmxvY2tlZEZhaWwKIAogdm9pZCBSZXNvdXJjZUhhbmRsZTo6ZmlyZUJsb2Nr
ZWRGYWlsdXJlKFRpbWVyPFJlc291cmNlSGFuZGxlPiogdGltZXIpCiB7Ci0gICAgY2xpZW50KCkt
Pndhc0Jsb2NrZWQodGhpcyk7CisgICAgaWYgKGNsaWVudCgpKQorICAgICAgICBjbGllbnQoKS0+
d2FzQmxvY2tlZCh0aGlzKTsKICAgICBkZWxldGUgdGltZXI7CiB9CiAKQEAgLTkzLDYgKzk0LDEx
IEBAIFJlc291cmNlSGFuZGxlQ2xpZW50KiBSZXNvdXJjZUhhbmRsZTo6Y2wKICAgICByZXR1cm4g
ZC0+bV9jbGllbnQ7CiB9CiAKK3ZvaWQgUmVzb3VyY2VIYW5kbGU6OnNldENsaWVudChSZXNvdXJj
ZUhhbmRsZUNsaWVudCogY2xpZW50KQoreworICAgIGQtPm1fY2xpZW50ID0gY2xpZW50OworfQor
CiBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIFJlc291cmNlSGFuZGxlOjpyZXF1ZXN0KCkgY29uc3QK
IHsKICAgICByZXR1cm4gZC0+bV9yZXF1ZXN0OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlSGFuZGxlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlSGFuZGxlLmgJKHJldmlzaW9uIDIyMDQzKQorKysgV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0OCw4ICsxNDgs
MTEgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgY2xlYXJBdXRoZW50aWNhdGlvbigpOwogICAg
IHZvaWQgY2FuY2VsKCk7Ci0gICAgCisKKyAgICAvLyBUaGUgY2xpZW50IG1heSBiZSBOVUxMLCBp
biB3aGljaCBjYXNlIG5vIGNhbGxiYWNrcyB3aWxsIGJlIG1hZGUuCiAgICAgUmVzb3VyY2VIYW5k
bGVDbGllbnQqIGNsaWVudCgpIGNvbnN0OworICAgIHZvaWQgc2V0Q2xpZW50KFJlc291cmNlSGFu
ZGxlQ2xpZW50Kik7CisKICAgICB2b2lkIHNldERlZmVyc0xvYWRpbmcoYm9vbCk7CiAgICAgICAK
ICAgICBjb25zdCBIVFRQSGVhZGVyTWFwJiByZXF1ZXN0SGVhZGVycygpIGNvbnN0OwpJbmRleDog
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jlc291cmNlSGFuZGxlQ0ZOZXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0
LmNwcAkocmV2aXNpb24gMjIwNDMpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVz
b3VyY2VIYW5kbGVDRk5ldC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTgxLDEwICs4MSwxMCBAQCB2
b2lkIGRpZFJlY2VpdmVSZXNwb25zZShDRlVSTENvbm5lY3Rpb25SCiAjZW5kaWYKIAogICAgIGlm
IChSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50ID0gaGFuZGxlLT5jbGllbnQoKSkgewotICAg
ICAgY2xpZW50LT5yZWNlaXZlZFJlc3BvbnNlKGhhbmRsZSwgY2ZSZXNwb25zZSk7Ci0gICAgICBS
ZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlOwotICAgICAgZ2V0UmVzb3VyY2VSZXNwb25zZShyZXNw
b25zZSwgY2ZSZXNwb25zZSk7Ci0gICAgICBjbGllbnQtPmRpZFJlY2VpdmVSZXNwb25zZShoYW5k
bGUsIHJlc3BvbnNlKTsKKyAgICAgICAgY2xpZW50LT5yZWNlaXZlZFJlc3BvbnNlKGhhbmRsZSwg
Y2ZSZXNwb25zZSk7CisgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2U7CisgICAgICAg
IGdldFJlc291cmNlUmVzcG9uc2UocmVzcG9uc2UsIGNmUmVzcG9uc2UpOworICAgICAgICBjbGll
bnQtPmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGUsIHJlc3BvbnNlKTsKICAgICB9CiB9CiAKQEAg
LTEwMCw3ICsxMDAsOCBAQCB2b2lkIGRpZFJlY2VpdmVEYXRhKENGVVJMQ29ubmVjdGlvblJlZiBj
CiAgICAgQ0ZSZWxlYXNlKHN0cik7CiAjZW5kaWYKIAotICAgIGpvYi0+Y2xpZW50KCktPmRpZFJl
Y2VpdmVEYXRhKGpvYiwgKGNvbnN0IGNoYXIqKWJ5dGVzLCBsZW5ndGgpOworICAgIGlmIChqb2It
PmNsaWVudCgpKQorICAgICAgICBqb2ItPmNsaWVudCgpLT5kaWRSZWNlaXZlRGF0YShqb2IsIChj
b25zdCBjaGFyKilieXRlcywgbGVuZ3RoKTsKIH0KIAogdm9pZCBkaWRGaW5pc2hMb2FkaW5nKENG
VVJMQ29ubmVjdGlvblJlZiBjb25uLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKSAKQEAgLTExMyw4
ICsxMTQsMTAgQEAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKENGVVJMQ29ubmVjdGlvblJlZgogICAg
IENGUmVsZWFzZShzdHIpOwogI2VuZGlmCiAKLSAgICBqb2ItPmNsaWVudCgpLT5yZWNlaXZlZEFs
bERhdGEoam9iLCAwKTsKLSAgICBqb2ItPmNsaWVudCgpLT5kaWRGaW5pc2hMb2FkaW5nKGpvYik7
CisgICAgaWYgKFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQgPSBoYW5kbGUtPmNsaWVudCgp
KSB7CisgICAgICAgIGNsaWVudCgpLT5yZWNlaXZlZEFsbERhdGEoam9iLCAwKTsKKyAgICAgICAg
Y2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcoam9iKTsKKyAgICB9CiAgICAgam9iLT5raWxsKCk7
CiB9CiAKQEAgLTE0MCw3ICsxNDMsOCBAQCB2b2lkIGRpZEZhaWwoQ0ZVUkxDb25uZWN0aW9uUmVm
IGNvbm4sIENGCiAKICAgICAvLyBGSVhNRTogd2UnZCByZWFsbHkgbGlrZSB0byBpbmNsdWRlIGEg
ZmFpbGluZyBVUkwgYW5kIGEgbG9jYWxpemVkIGRlc2NyaXB0aW9uIGJ1dCB5b3UgY2FuJ3QKICAg
ICAvLyBnZXQgYSBDRkVycm9yUmVmIG91dCBvZiBhbiBOU1VSTENvbm5lY3Rpb24sIG9ubHkgYSBD
RlN0cmVhbUVycm9yCi0gICAgaGFuZGxlLT5jbGllbnQoKS0+ZGlkRmFpbFdpdGhFcnJvcihoYW5k
bGUsIFJlc291cmNlRXJyb3IoZG9tYWluLCBlcnJvci5lcnJvciwgU3RyaW5nKCksIFN0cmluZygp
KSk7CisgICAgaWYgKGhhbmRsZS0+Y2xpZW50KCkpCisgICAgICAgIGhhbmRsZS0+Y2xpZW50KCkt
PmRpZEZhaWxXaXRoRXJyb3IoaGFuZGxlLCBSZXNvdXJjZUVycm9yKGRvbWFpbiwgZXJyb3IuZXJy
b3IsIFN0cmluZygpLCBTdHJpbmcoKSkpOwogICAgIGhhbmRsZS0+a2lsbCgpOwogfQogCkluZGV4
OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMu
bW0JKHJldmlzaW9uIDIyMDQzKQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNv
dXJjZUhhbmRsZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjQ0LDggKzI0NCw5IEBAIHZvaWQg
UmVzb3VyY2VIYW5kbGU6OmRpZFJlY2VpdmVBdXRoZW50aWMKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHNlbmRlcjooaWQ8TlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlcj4p
ZGVsZWdhdGUoKV07CiAgICAgZC0+bV9jdXJyZW50V2ViQ2hhbGxlbmdlID0gY29yZSh3ZWJDaGFs
bGVuZ2UpOwogICAgIFt3ZWJDaGFsbGVuZ2UgcmVsZWFzZV07Ci0gICAgCi0gICAgY2xpZW50KCkt
PmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh0aGlzLCBkLT5tX2N1cnJlbnRXZWJD
aGFsbGVuZ2UpOworCisgICAgaWYgKGNsaWVudCgpKQorICAgICAgICBjbGllbnQoKS0+ZGlkUmVj
ZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKHRoaXMsIGQtPm1fY3VycmVudFdlYkNoYWxsZW5n
ZSk7CiB9CiAKIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCkBAIC0yNTQs
NyArMjU1LDggQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6ZGlkQ2FuY2VsQXV0aGVudGljYQogICAg
IEFTU0VSVCghZC0+bV9jdXJyZW50V2ViQ2hhbGxlbmdlLmlzTnVsbCgpKTsKICAgICBBU1NFUlQo
ZC0+bV9jdXJyZW50V2ViQ2hhbGxlbmdlID09IGNoYWxsZW5nZSk7CiAKLSAgICBjbGllbnQoKS0+
ZGlkQ2FuY2VsQXV0aGVudGljYXRpb25DaGFsbGVuZ2UodGhpcywgZC0+bV9jdXJyZW50V2ViQ2hh
bGxlbmdlKTsKKyAgICBpZiAoY2xpZW50KCkpCisgICAgICAgIGNsaWVudCgpLT5kaWRDYW5jZWxB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSh0aGlzLCBkLT5tX2N1cnJlbnRXZWJDaGFsbGVuZ2UpOwog
fQogCiB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSwgY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlh
bCkKQEAgLTI4NCw3ICsyODYsOCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENhbmNl
bGxhdGlvCiAgICAgaWYgKGNoYWxsZW5nZSAhPSBkLT5tX2N1cnJlbnRXZWJDaGFsbGVuZ2UpCiAg
ICAgICAgIHJldHVybjsKIAotICAgIGNsaWVudCgpLT5yZWNlaXZlZENhbmNlbGxhdGlvbih0aGlz
LCBjaGFsbGVuZ2UpOworICAgIGlmIChjbGllbnQoKSkKKyAgICAgICAgY2xpZW50KCktPnJlY2Vp
dmVkQ2FuY2VsbGF0aW9uKHRoaXMsIGNoYWxsZW5nZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKQEAgLTMwNyw3ICszMTAsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENh
bmNlbGxhdGlvCiAKIC0gKE5TVVJMUmVxdWVzdCAqKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlv
biAqKWNvbiB3aWxsU2VuZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKW5ld1JlcXVlc3QgcmVkaXJl
Y3RSZXNwb25zZTooTlNVUkxSZXNwb25zZSAqKXJlZGlyZWN0UmVzcG9uc2UKIHsKLSAgICBpZiAo
IW1faGFuZGxlKQorICAgIGlmICghbV9oYW5kbGUgfHwgIW1faGFuZGxlLT5jbGllbnQoKSkKICAg
ICAgICAgcmV0dXJuIG5pbDsKICAgICArK2luTlNVUkxDb25uZWN0aW9uQ2FsbGJhY2s7CiAgICAg
UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QgPSBuZXdSZXF1ZXN0OwpAQCAtMzM2LDcgKzMzOSw3IEBA
IHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkQ2FuY2VsbGF0aW8KIAogLSAodm9pZCljb25u
ZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb24gZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJl
c3BvbnNlICopcgogewotICAgIGlmICghbV9oYW5kbGUpCisgICAgaWYgKCFtX2hhbmRsZSB8fCAh
bV9oYW5kbGUtPmNsaWVudCgpKQogICAgICAgICByZXR1cm47CiAgICAgKytpbk5TVVJMQ29ubmVj
dGlvbkNhbGxiYWNrOwogICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNl
KG1faGFuZGxlLCByKTsKQEAgLTM0NSw3ICszNDgsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpy
ZWNlaXZlZENhbmNlbGxhdGlvCiAKIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9u
ICopY29uIGRpZFJlY2VpdmVEYXRhOihOU0RhdGEgKilkYXRhIGxlbmd0aFJlY2VpdmVkOihsb25n
IGxvbmcpbGVuZ3RoUmVjZWl2ZWQKIHsKLSAgICBpZiAoIW1faGFuZGxlKQorICAgIGlmICghbV9o
YW5kbGUgfHwgIW1faGFuZGxlLT5jbGllbnQoKSkKICAgICAgICAgcmV0dXJuOwogICAgICsraW5O
U1VSTENvbm5lY3Rpb25DYWxsYmFjazsKICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2Vp
dmVEYXRhKG1faGFuZGxlLCAoY29uc3QgY2hhciopW2RhdGEgYnl0ZXNdLCBbZGF0YSBsZW5ndGhd
LCBsZW5ndGhSZWNlaXZlZCk7CkBAIC0zNTQsNyArMzU3LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRs
ZTo6cmVjZWl2ZWRDYW5jZWxsYXRpbwogCiAtICh2b2lkKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVj
dGlvbiAqKWNvbiB3aWxsU3RvcEJ1ZmZlcmluZ0RhdGE6KE5TRGF0YSAqKWRhdGEKIHsKLSAgICBp
ZiAoIW1faGFuZGxlKQorICAgIGlmICghbV9oYW5kbGUgfHwgIW1faGFuZGxlLT5jbGllbnQoKSkK
ICAgICAgICAgcmV0dXJuOwogICAgICsraW5OU1VSTENvbm5lY3Rpb25DYWxsYmFjazsKICAgICBt
X2hhbmRsZS0+Y2xpZW50KCktPndpbGxTdG9wQnVmZmVyaW5nRGF0YShtX2hhbmRsZSwgKGNvbnN0
IGNoYXIqKVtkYXRhIGJ5dGVzXSwgW2RhdGEgbGVuZ3RoXSk7CkBAIC0zNjMsNyArMzY2LDcgQEAg
dm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2ZWRDYW5jZWxsYXRpbwogCiAtICh2b2lkKWNvbm5l
Y3Rpb25EaWRGaW5pc2hMb2FkaW5nOihOU1VSTENvbm5lY3Rpb24gKiljb24KIHsKLSAgICBpZiAo
IW1faGFuZGxlKQorICAgIGlmICghbV9oYW5kbGUgfHwgIW1faGFuZGxlLT5jbGllbnQoKSkKICAg
ICAgICAgcmV0dXJuOwogICAgICsraW5OU1VSTENvbm5lY3Rpb25DYWxsYmFjazsKICAgICBtX2hh
bmRsZS0+Y2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcobV9oYW5kbGUpOwpAQCAtMzcyLDcgKzM3
NSw3IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OnJlY2VpdmVkQ2FuY2VsbGF0aW8KIAogLSAodm9p
ZCljb25uZWN0aW9uOihOU1VSTENvbm5lY3Rpb24gKiljb24gZGlkRmFpbFdpdGhFcnJvcjooTlNF
cnJvciAqKWVycm9yCiB7Ci0gICAgaWYgKCFtX2hhbmRsZSkKKyAgICBpZiAoIW1faGFuZGxlIHx8
ICFtX2hhbmRsZS0+Y2xpZW50KCkpCiAgICAgICAgIHJldHVybjsKICAgICArK2luTlNVUkxDb25u
ZWN0aW9uQ2FsbGJhY2s7CiAgICAgbV9oYW5kbGUtPmNsaWVudCgpLT5kaWRGYWlsKG1faGFuZGxl
LCBlcnJvcik7CkBAIC0zODUsNyArMzg4LDcgQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6cmVjZWl2
ZWRDYW5jZWxsYXRpbwogICAgIGlmIChpc0luaXRpYWxpemluZ0Nvbm5lY3Rpb24pCiAgICAgICAg
IExPR19FUlJPUigiY29ubmVjdGlvbjp3aWxsQ2FjaGVSZXNwb25zZTogd2FzIGNhbGxlZCBpbnNp
ZGUgb2YgW05TVVJMQ29ubmVjdGlvbiBpbml0V2l0aFJlcXVlc3Q6ZGVsZWdhdGU6XSAoNDA2NzYy
NSkiKTsKICNlbmRpZgotICAgIGlmICghbV9oYW5kbGUpCisgICAgaWYgKCFtX2hhbmRsZSB8fCAh
bV9oYW5kbGUtPmNsaWVudCgpKQogICAgICAgICByZXR1cm4gbmlsOwogICAgICsraW5OU1VSTENv
bm5lY3Rpb25DYWxsYmFjazsKICAgICAK
</data>
<flag name="review"
          id="6159"
          type_id="1"
          status="-"
          setter="mrowe"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>15670</attachid>
            <date>2007-07-24 13:34:18 -0700</date>
            <delta_ts>2007-07-24 14:15:04 -0700</delta_ts>
            <desc>New patch that applies cleanly</desc>
            <filename>setclient.diff</filename>
            <type>text/plain</type>
            <size>12263</size>
            <attacher name="Brett Wilson (Google)">brettw</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyNDYwMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsNDAgQEAKKzIwMDctMDctMjQgIE1hcnZpbiBEZWNrZXIgIDxtYXJ2LmRlY2tlckBn
bWFpbC5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIFJlc291cmNlSGFuZGxlOjpzZXRDbGllbnQgdG8gcmVzb2x2ZSBzb21lIG1lc3N5bmVz
cyB3aXRoIGhhbmRsZQorICAgICAgICByZWxlYXNpbmcuIENsZWFyIHRoZSBjbGllbnQgd2hlbiBS
ZXNvdXJjZUxvYWRlciBpcyBnb2luZyB0byByZWxlYXNlCisgICAgICAgIHRoZSBoYW5kbGUgdG8g
cHJldmVudCBjcmFzaGVzIGluIHRoZSBjYXNlIHdoZXJlIHNvbWVib2R5IHN0aWxsIGhvbGRzIGEK
KyAgICAgICAgcmVmZXJlbmNlICh0aGlzIGRvZXNuJ3Qgc2VlbSB0byBjdXJyZW50bHkgaGFwcGVu
IGluIHByYWN0aWNlKSwgYWRkCisgICAgICAgIE5VTEwtY2hlY2tpbmcgZm9yIFJlc291cmNlSGFu
ZGxlIGltcGxlbWVudGF0aW9ucyB1c2luZyB0aGUgY2xpZW50LgorCisgICAgICAgICogbG9hZGVy
L1Jlc291cmNlTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlTG9hZGVyOjpy
ZWxlYXNlUmVzb3VyY2VzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlSGFu
ZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpmaXJlQmxvY2tlZEZh
aWx1cmUpOgorICAgICAgICAoV2ViQ29yZTo6UmVzb3VyY2VIYW5kbGU6OnNldENsaWVudCk6Cisg
ICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjp3aWxsU2VuZFJlcXVlc3QpOgorICAgICAgICAoV2ViQ29yZTo6ZGlkUmVjZWl2ZVJlc3Bv
bnNlKToKKyAgICAgICAgKFdlYkNvcmU6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYkNv
cmU6OmRpZEZpbmlzaExvYWRpbmcpOgorICAgICAgICAoV2ViQ29yZTo6ZGlkRmFpbCk6CisgICAg
ICAgIChXZWJDb3JlOjp3aWxsQ2FjaGVSZXNwb25zZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNv
dXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENhbmNlbGxhdGlvbik6CisgICAgICAg
ICogcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlc291cmNlSGFuZGxlOjpkaWRDYW5jZWxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpSZXNvdXJjZUhhbmRsZTo6cmVjZWl2
ZWRDYW5jZWxsYXRpb24pOgorICAgICAgICAoLVtXZWJDb3JlUmVzb3VyY2VIYW5kbGVBc0RlbGVn
YXRlIGNvbm5lY3Rpb246d2lsbFNlbmRSZXF1ZXN0OnJlZGlyZWN0UmVzcG9uc2U6XSk6CisgICAg
ICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlvbjpkaWRSZWNl
aXZlUmVzcG9uc2U6XSk6CisgICAgICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdh
dGUgY29ubmVjdGlvbjpkaWRSZWNlaXZlRGF0YTpsZW5ndGhSZWNlaXZlZDpdKToKKyAgICAgICAg
KC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9uOndpbGxTdG9wQnVm
ZmVyaW5nRGF0YTpdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291cmNlSGFuZGxlQXNEZWxlZ2F0
ZSBjb25uZWN0aW9uRGlkRmluaXNoTG9hZGluZzpdKToKKyAgICAgICAgKC1bV2ViQ29yZVJlc291
cmNlSGFuZGxlQXNEZWxlZ2F0ZSBjb25uZWN0aW9uOmRpZEZhaWxXaXRoRXJyb3I6XSk6CisgICAg
ICAgICgtW1dlYkNvcmVSZXNvdXJjZUhhbmRsZUFzRGVsZWdhdGUgY29ubmVjdGlvbjp3aWxsQ2Fj
aGVSZXNwb25zZTpdKToKKwogMjAwNy0wNy0yNCAgQmV0aCBEYWtpbiAgPGJkYWtpbkBhcHBsZS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4uCkluZGV4OiBXZWJDb3JlL2xvYWRlci9S
ZXNvdXJjZUxvYWRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29yZS9sb2FkZXIvUmVzb3VyY2VM
b2FkZXIuY3BwCShyZXZpc2lvbiAyNDU0OSkKKysrIFdlYkNvcmUvbG9hZGVyL1Jlc291cmNlTG9h
ZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtODksNyArODksMTIgQEAgdm9pZCBSZXNvdXJjZUxv
YWRlcjo6cmVsZWFzZVJlc291cmNlcygpCiAKICAgICBtX2lkZW50aWZpZXIgPSAwOwogCisgICAg
Ly8gQ2xlYXIgb3V0IHRoZSBSZXNvdXJjZUhhbmRsZSdzIGNsaWVudCBzbyB0aGF0IGl0IGRvZXNu
J3QgdHJ5IHRvIGNhbGwKKyAgICAvLyB1cyBiYWNrIGFmdGVyIHdlIHJlbGVhc2UgaXQuCisgICAg
aWYgKG1faGFuZGxlLmdldCgpKQorICAgICAgICBtX2hhbmRsZS0+c2V0Q2xpZW50KE5VTEwpOwog
ICAgIG1faGFuZGxlID0gMDsKKwogICAgIG1fcmVzb3VyY2VEYXRhID0gMDsKICAgICBtX2RlZmVy
cmVkUmVxdWVzdCA9IFJlc291cmNlUmVxdWVzdCgpOwogfQpJbmRleDogV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlSGFuZGxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuY3BwCShyZXZpc2lvbiAyNDU0OSkKKysrIFdlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUhhbmRsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTY0LDcgKzY0LDggQEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6c2NoZWR1bGVCbG9ja2VkRmFpbAog
CiB2b2lkIFJlc291cmNlSGFuZGxlOjpmaXJlQmxvY2tlZEZhaWx1cmUoVGltZXI8UmVzb3VyY2VI
YW5kbGU+KiB0aW1lcikKIHsKLSAgICBjbGllbnQoKS0+d2FzQmxvY2tlZCh0aGlzKTsKKyAgICBp
ZiAoY2xpZW50KCkpCisgICAgICAgIGNsaWVudCgpLT53YXNCbG9ja2VkKHRoaXMpOwogICAgIGRl
bGV0ZSB0aW1lcjsKIH0KIApAQCAtNzMsNiArNzQsMTEgQEAgUmVzb3VyY2VIYW5kbGVDbGllbnQq
IFJlc291cmNlSGFuZGxlOjpjbAogICAgIHJldHVybiBkLT5tX2NsaWVudDsKIH0KIAordm9pZCBS
ZXNvdXJjZUhhbmRsZTo6c2V0Q2xpZW50KFJlc291cmNlSGFuZGxlQ2xpZW50KiBjbGllbnQpCit7
CisgICAgZC0+bV9jbGllbnQgPSBjbGllbnQ7Cit9CisKIGNvbnN0IFJlc291cmNlUmVxdWVzdCYg
UmVzb3VyY2VIYW5kbGU6OnJlcXVlc3QoKSBjb25zdAogewogICAgIHJldHVybiBkLT5tX3JlcXVl
c3Q7CkluZGV4OiBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUuaAkocmV2
aXNpb24gMjQ1NDkpCisrKyBXZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VIYW5kbGUu
aAkod29ya2luZyBjb3B5KQpAQCAtMTQ4LDggKzE0OCwxMSBAQCBwdWJsaWM6CiAgICAgCiAgICAg
dm9pZCBjbGVhckF1dGhlbnRpY2F0aW9uKCk7CiAgICAgdm9pZCBjYW5jZWwoKTsKLSAgICAKKwor
ICAgIC8vIFRoZSBjbGllbnQgbWF5IGJlIE5VTEwsIGluIHdoaWNoIGNhc2Ugbm8gY2FsbGJhY2tz
IHdpbGwgYmUgbWFkZS4KICAgICBSZXNvdXJjZUhhbmRsZUNsaWVudCogY2xpZW50KCkgY29uc3Q7
CisgICAgdm9pZCBzZXRDbGllbnQoUmVzb3VyY2VIYW5kbGVDbGllbnQqKTsKKwogICAgIHZvaWQg
c2V0RGVmZXJzTG9hZGluZyhib29sKTsKICAgICAgIAogICAgIGNvbnN0IFJlc291cmNlUmVxdWVz
dCYgcmVxdWVzdCgpIGNvbnN0OwpJbmRleDogV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NmL1Jl
c291cmNlSGFuZGxlQ0ZOZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jZi9SZXNvdXJjZUhhbmRsZUNGTmV0LmNwcAkocmV2aXNpb24gMjQ1NDkpCisrKyBXZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY2YvUmVzb3VyY2VIYW5kbGVDRk5ldC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTY2LDcgKzY2LDggQEAgQ0ZVUkxSZXF1ZXN0UmVmIHdpbGxTZW5kUmVxdWVzdChD
RlVSTENvbgogICAgIExPRyhOZXR3b3JrLCAiQ0ZOZXQgLSB3aWxsU2VuZFJlcXVlc3QoY29ubj0l
cCwgaGFuZGxlPSVwKSAoJXMpIiwgY29ubiwgaGFuZGxlLCBoYW5kbGUtPnJlcXVlc3QoKS51cmwo
KS51cmwoKS5hc2NpaSgpKTsKIAogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KGNmUmVxdWVz
dCk7Ci0gICAgaGFuZGxlLT5jbGllbnQoKS0+d2lsbFNlbmRSZXF1ZXN0KGhhbmRsZSwgcmVxdWVz
dCwgY2ZSZWRpcmVjdFJlc3BvbnNlKTsKKyAgICBpZiAoaGFuZGxlLT5jbGllbnQoKSkKKyAgICAg
ICAgaGFuZGxlLT5jbGllbnQoKS0+d2lsbFNlbmRSZXF1ZXN0KGhhbmRsZSwgcmVxdWVzdCwgY2ZS
ZWRpcmVjdFJlc3BvbnNlKTsKIAogICAgIGNmUmVxdWVzdCA9IHJlcXVlc3QuY2ZVUkxSZXF1ZXN0
KCk7CiAKQEAgLTgwLDcgKzgxLDggQEAgdm9pZCBkaWRSZWNlaXZlUmVzcG9uc2UoQ0ZVUkxDb25u
ZWN0aW9uUgogCiAgICAgTE9HKE5ldHdvcmssICJDRk5ldCAtIGRpZFJlY2VpdmVSZXNwb25zZShj
b25uPSVwLCBoYW5kbGU9JXApICglcykiLCBjb25uLCBoYW5kbGUsIGhhbmRsZS0+cmVxdWVzdCgp
LnVybCgpLnVybCgpLmFzY2lpKCkpOwogCi0gICAgaGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2
ZVJlc3BvbnNlKGhhbmRsZSwgY2ZSZXNwb25zZSk7CisgICAgaWYgKGhhbmRsZS0+Y2xpZW50KCkp
CisgICAgICAgIGhhbmRsZS0+Y2xpZW50KCktPmRpZFJlY2VpdmVSZXNwb25zZShoYW5kbGUsIGNm
UmVzcG9uc2UpOwogfQogCiB2b2lkIGRpZFJlY2VpdmVEYXRhKENGVVJMQ29ubmVjdGlvblJlZiBj
b25uLCBDRkRhdGFSZWYgZGF0YSwgQ0ZJbmRleCBvcmlnaW5hbExlbmd0aCwgY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykgCkBAIC05MSw3ICs5Myw4IEBAIHZvaWQgZGlkUmVjZWl2ZURhdGEoQ0ZVUkxD
b25uZWN0aW9uUmVmIGMKIAogICAgIExPRyhOZXR3b3JrLCAiQ0ZOZXQgLSBkaWRSZWNlaXZlRGF0
YShjb25uPSVwLCBoYW5kbGU9JXAsIGJ5dGVzPSVkKSAoJXMpIiwgY29ubiwgaGFuZGxlLCBsZW5n
dGgsIGhhbmRsZS0+cmVxdWVzdCgpLnVybCgpLnVybCgpLmFzY2lpKCkpOwogCi0gICAgaGFuZGxl
LT5jbGllbnQoKS0+ZGlkUmVjZWl2ZURhdGEoaGFuZGxlLCAoY29uc3QgY2hhciopYnl0ZXMsIGxl
bmd0aCwgb3JpZ2luYWxMZW5ndGgpOworICAgIGlmIChoYW5kbGUtPmNsaWVudCgpKQorICAgICAg
ICBoYW5kbGUtPmNsaWVudCgpLT5kaWRSZWNlaXZlRGF0YShoYW5kbGUsIChjb25zdCBjaGFyKili
eXRlcywgbGVuZ3RoLCBvcmlnaW5hbExlbmd0aCk7CiB9CiAKIHZvaWQgZGlkRmluaXNoTG9hZGlu
ZyhDRlVSTENvbm5lY3Rpb25SZWYgY29ubiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykgCkBAIC0x
MDAsNyArMTAzLDggQEAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKENGVVJMQ29ubmVjdGlvblJlZgog
CiAgICAgTE9HKE5ldHdvcmssICJDRk5ldCAtIGRpZEZpbmlzaExvYWRpbmcoY29ubj0lcCwgaGFu
ZGxlPSVwKSAoJXMpIiwgY29ubiwgaGFuZGxlLCBoYW5kbGUtPnJlcXVlc3QoKS51cmwoKS51cmwo
KS5hc2NpaSgpKTsKIAotICAgIGhhbmRsZS0+Y2xpZW50KCktPmRpZEZpbmlzaExvYWRpbmcoaGFu
ZGxlKTsKKyAgICBpZiAoaGFuZGxlLT5jbGllbnQoKSkKKyAgICAgICAgaGFuZGxlLT5jbGllbnQo
KS0+ZGlkRmluaXNoTG9hZGluZyhoYW5kbGUpOwogfQogCiB2b2lkIGRpZEZhaWwoQ0ZVUkxDb25u
ZWN0aW9uUmVmIGNvbm4sIENGRXJyb3JSZWYgZXJyb3IsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8p
IApAQCAtMTA5LDcgKzExMyw4IEBAIHZvaWQgZGlkRmFpbChDRlVSTENvbm5lY3Rpb25SZWYgY29u
biwgQ0YKIAogICAgIExPRyhOZXR3b3JrLCAiQ0ZOZXQgLSBkaWRGYWlsKGNvbm49JXAsIGhhbmRs
ZT0lcCwgZXJyb3IgPSAlcCkgKCVzKSIsIGNvbm4sIGhhbmRsZSwgZXJyb3IsIGhhbmRsZS0+cmVx
dWVzdCgpLnVybCgpLnVybCgpLmFzY2lpKCkpOwogCi0gICAgaGFuZGxlLT5jbGllbnQoKS0+ZGlk
RmFpbChoYW5kbGUsIFJlc291cmNlRXJyb3IoZXJyb3IpKTsKKyAgICBpZiAoaGFuZGxlLT5jbGll
bnQoKSkKKyAgICAgICAgaGFuZGxlLT5jbGllbnQoKS0+ZGlkRmFpbChoYW5kbGUsIFJlc291cmNl
RXJyb3IoZXJyb3IpKTsKIH0KIAogQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiB3aWxsQ2FjaGVSZXNw
b25zZShDRlVSTENvbm5lY3Rpb25SZWYgY29ubiwgQ0ZDYWNoZWRVUkxSZXNwb25zZVJlZiBjYWNo
ZWRSZXNwb25zZSwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykgCkBAIC0xMTgsNyArMTIzLDggQEAg
Q0ZDYWNoZWRVUkxSZXNwb25zZVJlZiB3aWxsQ2FjaGVSZXNwb25zZQogCiAgICAgQ2FjaGVTdG9y
YWdlUG9saWN5IHBvbGljeSA9IHN0YXRpY19jYXN0PENhY2hlU3RvcmFnZVBvbGljeT4oQ0ZDYWNo
ZWRVUkxSZXNwb25zZUdldFN0b3JhZ2VQb2xpY3koY2FjaGVkUmVzcG9uc2UpKTsKIAotICAgIGhh
bmRsZS0+Y2xpZW50KCktPndpbGxDYWNoZVJlc3BvbnNlKGhhbmRsZSwgcG9saWN5KTsKKyAgICBp
ZiAoaGFuZGxlLT5jbGllbnQoKSkKKyAgICAgICAgaGFuZGxlLT5jbGllbnQoKS0+d2lsbENhY2hl
UmVzcG9uc2UoaGFuZGxlLCBwb2xpY3kpOwogCiAgICAgaWYgKHN0YXRpY19jYXN0PENGVVJMQ2Fj
aGVTdG9yYWdlUG9saWN5Pihwb2xpY3kpICE9IENGQ2FjaGVkVVJMUmVzcG9uc2VHZXRTdG9yYWdl
UG9saWN5KGNhY2hlZFJlc3BvbnNlKSkKICAgICAgICAgY2FjaGVkUmVzcG9uc2UgPSBDRkNhY2hl
ZFVSTFJlc3BvbnNlQ3JlYXRlV2l0aFVzZXJJbmZvKGtDRkFsbG9jYXRvckRlZmF1bHQsIApAQCAt
MjkxLDcgKzI5Nyw4IEBAIHZvaWQgUmVzb3VyY2VIYW5kbGU6OmRpZFJlY2VpdmVBdXRoZW50aWMK
ICAgICBkLT5tX2N1cnJlbnRDRkNoYWxsZW5nZSA9IGNoYWxsZW5nZS5jZlVSTEF1dGhDaGFsbGVu
Z2VSZWYoKTsKICAgICBkLT5tX2N1cnJlbnRXZWJDaGFsbGVuZ2UgPSBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShkLT5tX2N1cnJlbnRDRkNoYWxsZW5nZSwgdGhpcyk7CiAgICAgCi0gICAgY2xpZW50
KCktPmRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh0aGlzLCBkLT5tX2N1cnJlbnRX
ZWJDaGFsbGVuZ2UpOworICAgIGlmIChjbGllbnQoKSkKKyAgICAgICAgY2xpZW50KCktPmRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh0aGlzLCBkLT5tX2N1cnJlbnRXZWJDaGFsbGVu
Z2UpOwogfQogCiB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENyZWRlbnRpYWwoY29uc3Qg
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGNoYWxsZW5nZSwgY29uc3QgQ3JlZGVudGlhbCYgY3Jl
ZGVudGlhbCkKQEAgLTMyOCw3ICszMzUsOCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZl
ZENhbmNlbGxhdGlvCiAgICAgaWYgKGNoYWxsZW5nZSAhPSBkLT5tX2N1cnJlbnRXZWJDaGFsbGVu
Z2UpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNsaWVudCgpLT5yZWNlaXZlZENhbmNlbGxhdGlv
bih0aGlzLCBjaGFsbGVuZ2UpOworICAgIGlmIChjbGllbnQoKSkKKyAgICAgICAgY2xpZW50KCkt
PnJlY2VpdmVkQ2FuY2VsbGF0aW9uKHRoaXMsIGNoYWxsZW5nZSk7CiB9CiAKIENGVVJMQ29ubmVj
dGlvblJlZiBSZXNvdXJjZUhhbmRsZTo6Y29ubmVjdGlvbigpIGNvbnN0CkluZGV4OiBXZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvbWFjL1Jlc291cmNlSGFuZGxlTWFjLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFdlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9tYWMvUmVzb3VyY2VIYW5kbGVNYWMubW0JKHJldmlz
aW9uIDI0NTQ5KQorKysgV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL21hYy9SZXNvdXJjZUhhbmRs
ZU1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtMjY0LDggKzI2NCw5IEBAIHZvaWQgUmVzb3VyY2VI
YW5kbGU6OmRpZFJlY2VpdmVBdXRoZW50aWMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IHNlbmRlcjooaWQ8TlNVUkxBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNlbmRlcj4pZGVsZWdhdGUo
KV07CiAgICAgZC0+bV9jdXJyZW50V2ViQ2hhbGxlbmdlID0gY29yZSh3ZWJDaGFsbGVuZ2UpOwog
ICAgIFt3ZWJDaGFsbGVuZ2UgcmVsZWFzZV07Ci0gICAgCi0gICAgY2xpZW50KCktPmRpZFJlY2Vp
dmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSh0aGlzLCBkLT5tX2N1cnJlbnRXZWJDaGFsbGVuZ2Up
OworCisgICAgaWYgKGNsaWVudCgpKQorICAgICAgICBjbGllbnQoKS0+ZGlkUmVjZWl2ZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKHRoaXMsIGQtPm1fY3VycmVudFdlYkNoYWxsZW5nZSk7CiB9CiAK
IHZvaWQgUmVzb3VyY2VIYW5kbGU6OmRpZENhbmNlbEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKGNv
bnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiBjaGFsbGVuZ2UpCkBAIC0yNzQsNyArMjc1LDgg
QEAgdm9pZCBSZXNvdXJjZUhhbmRsZTo6ZGlkQ2FuY2VsQXV0aGVudGljYQogICAgIEFTU0VSVCgh
ZC0+bV9jdXJyZW50V2ViQ2hhbGxlbmdlLmlzTnVsbCgpKTsKICAgICBBU1NFUlQoZC0+bV9jdXJy
ZW50V2ViQ2hhbGxlbmdlID09IGNoYWxsZW5nZSk7CiAKLSAgICBjbGllbnQoKS0+ZGlkQ2FuY2Vs
QXV0aGVudGljYXRpb25DaGFsbGVuZ2UodGhpcywgZC0+bV9jdXJyZW50V2ViQ2hhbGxlbmdlKTsK
KyAgICBpZiAoY2xpZW50KCkpCisgICAgICAgIGNsaWVudCgpLT5kaWRDYW5jZWxBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSh0aGlzLCBkLT5tX2N1cnJlbnRXZWJDaGFsbGVuZ2UpOwogfQogCiB2b2lk
IFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENyZWRlbnRpYWwoY29uc3QgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmIGNoYWxsZW5nZSwgY29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkKQEAgLTMw
NCw3ICszMDYsOCBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENhbmNlbGxhdGlvCiAg
ICAgaWYgKGNoYWxsZW5nZSAhPSBkLT5tX2N1cnJlbnRXZWJDaGFsbGVuZ2UpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGNsaWVudCgpLT5yZWNlaXZlZENhbmNlbGxhdGlvbih0aGlzLCBjaGFsbGVu
Z2UpOworICAgIGlmIChjbGllbnQoKSkKKyAgICAgICAgY2xpZW50KCktPnJlY2VpdmVkQ2FuY2Vs
bGF0aW9uKHRoaXMsIGNoYWxsZW5nZSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKQEAg
LTMzNSw3ICszMzgsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENhbmNlbGxhdGlv
CiAKIC0gKE5TVVJMUmVxdWVzdCAqKWNvbm5lY3Rpb246KE5TVVJMQ29ubmVjdGlvbiAqKWNvbiB3
aWxsU2VuZFJlcXVlc3Q6KE5TVVJMUmVxdWVzdCAqKW5ld1JlcXVlc3QgcmVkaXJlY3RSZXNwb25z
ZTooTlNVUkxSZXNwb25zZSAqKXJlZGlyZWN0UmVzcG9uc2UKIHsKLSAgICBpZiAoIW1faGFuZGxl
KQorICAgIGlmICghbV9oYW5kbGUgfHwgIW1faGFuZGxlLT5jbGllbnQoKSkKICAgICAgICAgcmV0
dXJuIG5pbDsKICAgICArK2luTlNVUkxDb25uZWN0aW9uQ2FsbGJhY2s7CiAgICAgUmVzb3VyY2VS
ZXF1ZXN0IHJlcXVlc3QgPSBuZXdSZXF1ZXN0OwpAQCAtMzg0LDcgKzM4Nyw3IEBAIHZvaWQgUmVz
b3VyY2VIYW5kbGU6OnJlY2VpdmVkQ2FuY2VsbGF0aW8KIAogLSAodm9pZCljb25uZWN0aW9uOihO
U1VSTENvbm5lY3Rpb24gKiljb24gZGlkUmVjZWl2ZVJlc3BvbnNlOihOU1VSTFJlc3BvbnNlICop
cgogewotICAgIGlmICghbV9oYW5kbGUpCisgICAgaWYgKCFtX2hhbmRsZSB8fCAhbV9oYW5kbGUt
PmNsaWVudCgpKQogICAgICAgICByZXR1cm47CiAgICAgKytpbk5TVVJMQ29ubmVjdGlvbkNhbGxi
YWNrOwogICAgIG1faGFuZGxlLT5jbGllbnQoKS0+ZGlkUmVjZWl2ZVJlc3BvbnNlKG1faGFuZGxl
LCByKTsKQEAgLTM5Myw3ICszOTYsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENh
bmNlbGxhdGlvCiAKIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29uIGRp
ZFJlY2VpdmVEYXRhOihOU0RhdGEgKilkYXRhIGxlbmd0aFJlY2VpdmVkOihsb25nIGxvbmcpbGVu
Z3RoUmVjZWl2ZWQKIHsKLSAgICBpZiAoIW1faGFuZGxlKQorICAgIGlmICghbV9oYW5kbGUgfHwg
IW1faGFuZGxlLT5jbGllbnQoKSkKICAgICAgICAgcmV0dXJuOwogICAgIC8vIEZJWE1FOiBJZiB3
ZSBnZXQgbW9yZSB0aGFuIDJCIGJ5dGVzIGluIGEgc2luZ2xlIGNodW5rLCB0aGlzIGNvZGUgd29u
J3QgZG8gdGhlIHJpZ2h0IHRoaW5nLgogICAgIC8vIEhvd2V2ZXIsIHdpdGggdG9kYXkncyBjb21w
dXRlcnMgYW5kIG5ldHdvcmtpbmcgc3BlZWRzLCB0aGlzIHdvbid0IGhhcHBlbiBpbiBwcmFjdGlj
ZS4KQEAgLTQwNSw3ICs0MDgsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENhbmNl
bGxhdGlvCiAKIC0gKHZvaWQpY29ubmVjdGlvbjooTlNVUkxDb25uZWN0aW9uICopY29uIHdpbGxT
dG9wQnVmZmVyaW5nRGF0YTooTlNEYXRhICopZGF0YQogewotICAgIGlmICghbV9oYW5kbGUpCisg
ICAgaWYgKCFtX2hhbmRsZSB8fCAhbV9oYW5kbGUtPmNsaWVudCgpKQogICAgICAgICByZXR1cm47
CiAgICAgLy8gRklYTUU6IElmIHdlIGdldCBhIHJlc291cmNlIHdpdGggbW9yZSB0aGFuIDJCIGJ5
dGVzLCB0aGlzIGNvZGUgd29uJ3QgZG8gdGhlIHJpZ2h0IHRoaW5nLgogICAgIC8vIEhvd2V2ZXIs
IHdpdGggdG9kYXkncyBjb21wdXRlcnMgYW5kIG5ldHdvcmtpbmcgc3BlZWRzLCB0aGlzIHdvbid0
IGhhcHBlbiBpbiBwcmFjdGljZS4KQEAgLTQxNyw3ICs0MjAsNyBAQCB2b2lkIFJlc291cmNlSGFu
ZGxlOjpyZWNlaXZlZENhbmNlbGxhdGlvCiAKIC0gKHZvaWQpY29ubmVjdGlvbkRpZEZpbmlzaExv
YWRpbmc6KE5TVVJMQ29ubmVjdGlvbiAqKWNvbgogewotICAgIGlmICghbV9oYW5kbGUpCisgICAg
aWYgKCFtX2hhbmRsZSB8fCAhbV9oYW5kbGUtPmNsaWVudCgpKQogICAgICAgICByZXR1cm47CiAg
ICAgKytpbk5TVVJMQ29ubmVjdGlvbkNhbGxiYWNrOwogICAgIG1faGFuZGxlLT5jbGllbnQoKS0+
ZGlkRmluaXNoTG9hZGluZyhtX2hhbmRsZSk7CkBAIC00MjYsNyArNDI5LDcgQEAgdm9pZCBSZXNv
dXJjZUhhbmRsZTo6cmVjZWl2ZWRDYW5jZWxsYXRpbwogCiAtICh2b2lkKWNvbm5lY3Rpb246KE5T
VVJMQ29ubmVjdGlvbiAqKWNvbiBkaWRGYWlsV2l0aEVycm9yOihOU0Vycm9yICopZXJyb3IKIHsK
LSAgICBpZiAoIW1faGFuZGxlKQorICAgIGlmICghbV9oYW5kbGUgfHwgIW1faGFuZGxlLT5jbGll
bnQoKSkKICAgICAgICAgcmV0dXJuOwogICAgICsraW5OU1VSTENvbm5lY3Rpb25DYWxsYmFjazsK
ICAgICBtX2hhbmRsZS0+Y2xpZW50KCktPmRpZEZhaWwobV9oYW5kbGUsIGVycm9yKTsKQEAgLTQz
OSw3ICs0NDIsNyBAQCB2b2lkIFJlc291cmNlSGFuZGxlOjpyZWNlaXZlZENhbmNlbGxhdGlvCiAg
ICAgaWYgKGlzSW5pdGlhbGl6aW5nQ29ubmVjdGlvbikKICAgICAgICAgTE9HX0VSUk9SKCJjb25u
ZWN0aW9uOndpbGxDYWNoZVJlc3BvbnNlOiB3YXMgY2FsbGVkIGluc2lkZSBvZiBbTlNVUkxDb25u
ZWN0aW9uIGluaXRXaXRoUmVxdWVzdDpkZWxlZ2F0ZTpdICg0MDY3NjI1KSIpOwogI2VuZGlmCi0g
ICAgaWYgKCFtX2hhbmRsZSkKKyAgICBpZiAoIW1faGFuZGxlIHx8ICFtX2hhbmRsZS0+Y2xpZW50
KCkpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgKytpbk5TVVJMQ29ubmVjdGlvbkNhbGxiYWNr
OwogICAgIAo=
</data>
<flag name="review"
          id="6525"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>