<?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>32115</bug_id>
          
          <creation_ts>2009-12-03 05:24:52 -0800</creation_ts>
          <short_desc>document.cookie accessors should raise INVALID_STATE_ERR if there is no browsing context</short_desc>
          <delta_ts>2010-09-13 18:11:35 -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>DOM</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>WORKSFORME</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Patrik Persson">patrik.j.persson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>ian</cc>
    
    <cc>mjs</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>168368</commentid>
    <comment_count>0</comment_count>
    <who name="Patrik Persson">patrik.j.persson</who>
    <bug_when>2009-12-03 05:24:52 -0800</bug_when>
    <thetext>(In reply to comment #51 in bug 21288)
&gt; 
&gt; &gt; +    // FIXME: The HTML5 DOM spec states that this attribute can raise an
&gt; &gt; +    // INVALID_STATE_ERR exception on getting if the Document has no
&gt; &gt; +    // browsing context.
&gt; 
&gt; Loose end for after this lands: Test case showing the problem? Bug report for
&gt; the problem?

This was originally located in Document.idl, and moved into
Document.cpp during the work with #21288. I&apos;m posting this to
highlight the issue, but I don&apos;t have a strong opinion on how to
resolve it.

http://www.w3.org/TR/html5/dom.html#dom-document-cookie says (slightly
edited):

On getting/setting, if the document is not associated with a browsing
context then the user agent must raise an INVALID_STATE_ERR exception.

I made some quick browser tests using (an instrumented version of)
this code:

    var dom = document.implementation.createDocument(&apos;http://www.w3.org/1999/xhtml&apos;, &apos;html&apos;, null);

    dom.cookie = &apos;invalid&apos;;
    cookiecopy = dom.cookie;

These tests show:

* Firefox 3.5.5 (Windows) raises no exception, and actually seems to
  allow both setting and getting the cookie attribute.

* Safari 4.0.4 (Mac OS X) raises no exception, but prevents the
  attribute from being modified and/or read. (Reading it back gives an
  empty string.) WebKit r51596 behaves the same way.

* IE8 does not have a document.implementation.createDocument method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168370</commentid>
    <comment_count>1</comment_count>
      <attachid>44231</attachid>
    <who name="Patrik Persson">patrik.j.persson</who>
    <bug_when>2009-12-03 05:29:27 -0800</bug_when>
    <thetext>Created attachment 44231
Patch to raise exception in document.cookie accessors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168371</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-03 05:31:37 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44231 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168391</commentid>
    <comment_count>3</comment_count>
      <attachid>44239</attachid>
    <who name="Patrik Persson">patrik.j.persson</who>
    <bug_when>2009-12-03 07:09:04 -0800</bug_when>
    <thetext>Created attachment 44239
Revised more tests.

I completely missed the fact that three existing tests broke with this
change. Sorry about this. This patch includes those tests.

The tests didn&apos;t expect exceptions to be raised. Rather, they simply
expected to receive an empty string when reading the cookie attribute
of a document created using document.implementation.create[HTML]Document.

One new test case replaces another case. I placed the new case in
&apos;fast/cookies&apos; to be able to use the JavaScript framework
(shouldThrow, shouldBe) for checks.

Anyway, before we get into the details of testing this, we should
decide whether to raise an exception at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168392</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-03 07:09:32 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44239 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168488</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2009-12-03 11:37:52 -0800</bug_when>
    <thetext>&gt; * IE8 does not have a document.implementation.createDocument method.

You could test its behavior by loading an iframe, taking a reference to its document, and removing the iframe.

Raising an exception where other browsers don&apos;t raise it can cause significant compatibility problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168520</commentid>
    <comment_count>6</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-12-03 13:17:51 -0800</bug_when>
    <thetext>You can also get a frameless document from the responseXML property of XMLHttpRequest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>168859</commentid>
    <comment_count>7</comment_count>
      <attachid>44239</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-04 11:53:45 -0800</bug_when>
    <thetext>Comment on attachment 44239
Revised more tests.

The coding of the patch is fine.

Before we make the code change we must have information about the behavior of other browsers. So I am going to say review- on a patch that otherwise would be review+.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169248</commentid>
    <comment_count>8</comment_count>
      <attachid>44401</attachid>
    <who name="Patrik Persson">patrik.j.persson</who>
    <bug_when>2009-12-07 04:34:05 -0800</bug_when>
    <thetext>Created attachment 44401
Code to check browser behavior wrt. cookie access

Absolutely agree that other browsers&apos; behavior is a key issue here. Thanks for the hints on creating documents without browsing contexts.

I accessed the cookie of such a document (by loading an iframe, picking its document, and removing the frame) in Firefox 3.5 and IE8. The test code is attached. I got the following results:

FF3.5
-----
cookie assigned, no exception
cookie read, no exception
cookiecopy=ASSIGNED

IE8
---
cookie assignment exception: Error (Permission denied)
cookie read exception: Error (Permission denied)
cookiecopy=not assigned

To validate the test, I removed the assignment line document.getElementById(&quot;frame_holder&quot;)... This restores the document&apos;s browsing context. I then got the expected results:

FF3.5 &amp; IE8
-----------
cookie assigned, no exception
cookie read, no exception
cookiecopy=ASSIGNED</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>169333</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-07 09:05:10 -0800</bug_when>
    <thetext>So the change is going from behavior that matches Firefox 3.5 to behavior that matches IE 8 and the HTML5 specification?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170751</commentid>
    <comment_count>10</comment_count>
      <attachid>44688</attachid>
    <who name="Patrik Persson">patrik.j.persson</who>
    <bug_when>2009-12-11 07:29:45 -0800</bug_when>
    <thetext>Created attachment 44688
Patch with extended test case

Now tests documents created using createDocument(), documents from deleted iframes, and documents from XMLHttpRequest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170752</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-11 07:30:08 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44688 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170758</commentid>
    <comment_count>12</comment_count>
    <who name="Patrik Persson">patrik.j.persson</who>
    <bug_when>2009-12-11 07:40:30 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; So the change is going from behavior that matches Firefox 3.5 to behavior that
&gt; matches IE 8 and the HTML5 specification?

Almost.  Based on the hints provided earlier in this thread, I have
tested three types of documents: documents created using
createDocument(), documents from deleted iframes, and documents from
XMLHttpRequest.  Here&apos;s a summary of the behavior.  (I also extended
the test case to include all three cases.)


IE8:

  * deleted iframe: exception on _any_ access (&quot;permission denied&quot;)
  * createDocument: not supported in IE8 (no createDocument method)
  * XMLHttpRequest: exception on setting, getting returns undefined

  (The XMLHttpRequest document in IE8 does not seem to support a
  cookie attribute at all.  The responseXML object supports a
  getElementsByTagName() method, so it seems to really be a document,
  and not the dummy object IE8 returns upon parsing errors.)


FF3.5:

  * deleted iframe: no exception, setting and getting allowed
  * createDocument: no exception, setting and getting allowed
  * XMLHttpRequest: no exception, setting and getting allowed


Safari 4.04/WebKit r51759:

  * deleted iframe: no exception, setting and getting allowed
  * createDocument: no exception, setting silently ignored, getting
                    returns empty string
  * XMLHttpRequest: no exception, setting silently ignored, getting
                    returns empty string


Patch:

  * createDocument: exception
  * XMLHttpRequest: exception
  * deleted iframe: exception


My interpretation of HTML5 is that an exception should be raised in
all these three cases.  Am I reading the spec right?  Is this is how
WebKit should behave?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170759</commentid>
    <comment_count>13</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2009-12-11 07:44:52 -0800</bug_when>
    <thetext>per spec a deleted iframe can still have a browsing context, but that&apos;s a bug in webkit (which makes not enough deleted iframes have browsing contexts) and the spec (which makes too many deleted iframes have browsing contexts) so probably an issue for another day.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>170933</commentid>
    <comment_count>14</comment_count>
      <attachid>44688</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2009-12-11 14:31:33 -0800</bug_when>
    <thetext>Comment on attachment 44688
Patch with extended test case

The mechanics of the patch seem great, and the test cases look good.

If the idea here is changing to match HTML5, then I think we might have a problem because Hixie claims that Safari treats documents as having no browsing context in cases where HTML5 would want it to have a browsing context.

In general, raising an exception in cases where we previously failed in a quieter way incurs a significant risk of breaking some website that accidentally depends on the behavior. Especially in light of the fact that Firefox never raises in an exception in these cases, I&apos;m worried. We should find some way to mitigate this risk.

Is there some kind of testing we can do? Is there some WebKit contributor who has some idea about how to vet this change short of shipping it and waiting for the complaints to come in?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175189</commentid>
    <comment_count>15</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-12-28 01:34:53 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #9)
&gt; &gt; So the change is going from behavior that matches Firefox 3.5 to behavior that
&gt; &gt; matches IE 8 and the HTML5 specification?
&gt; 
&gt; Almost.  Based on the hints provided earlier in this thread, I have
&gt; tested three types of documents: documents created using
&gt; createDocument(), documents from deleted iframes, and documents from
&gt; XMLHttpRequest.  Here&apos;s a summary of the behavior.  (I also extended
&gt; the test case to include all three cases.)
&gt; 
&gt; 
&gt; IE8:
&gt; 
&gt;   * deleted iframe: exception on _any_ access (&quot;permission denied&quot;)
&gt;   * createDocument: not supported in IE8 (no createDocument method)
&gt;   * XMLHttpRequest: exception on setting, getting returns undefined
&gt; 
&gt;   (The XMLHttpRequest document in IE8 does not seem to support a
&gt;   cookie attribute at all.  The responseXML object supports a
&gt;   getElementsByTagName() method, so it seems to really be a document,
&gt;   and not the dummy object IE8 returns upon parsing errors.)
&gt; 
&gt; 
&gt; FF3.5:
&gt; 
&gt;   * deleted iframe: no exception, setting and getting allowed
&gt;   * createDocument: no exception, setting and getting allowed
&gt;   * XMLHttpRequest: no exception, setting and getting allowed
&gt; 
&gt; 
&gt; Safari 4.04/WebKit r51759:
&gt; 
&gt;   * deleted iframe: no exception, setting and getting allowed
&gt;   * createDocument: no exception, setting silently ignored, getting
&gt;                     returns empty string
&gt;   * XMLHttpRequest: no exception, setting silently ignored, getting
&gt;                     returns empty string
&gt; 
&gt; 
&gt; Patch:
&gt; 
&gt;   * createDocument: exception
&gt;   * XMLHttpRequest: exception
&gt;   * deleted iframe: exception
&gt; 
&gt; 
&gt; My interpretation of HTML5 is that an exception should be raised in
&gt; all these three cases.  Am I reading the spec right?  Is this is how
&gt; WebKit should behave?

Given the test results, I think the HTML5 spec is in error and should be changed. The Firefox behavior seems best - throwing more exceptions is a Web compatibility risk. And since many sites have dual code paths, being like IE is not as good as being like Firefox for practical Web compatibility. If we change this, it should be to better match Firefox, and we should file a bug against the HTML5 spec.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>175190</commentid>
    <comment_count>16</comment_count>
      <attachid>44688</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2009-12-28 01:35:23 -0800</bug_when>
    <thetext>Comment on attachment 44688
Patch with extended test case

r-</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190298</commentid>
    <comment_count>17</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2010-02-13 19:47:28 -0800</bug_when>
    <thetext>I can&apos;t reproduce your results with Firefox. Do you have a test case online that I can check that shows that Firefox allows .cookie changes on XHR docs?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192467</commentid>
    <comment_count>18</comment_count>
    <who name="Patrik Persson">patrik.j.persson</who>
    <bug_when>2010-02-22 08:19:24 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; I can&apos;t reproduce your results with Firefox. Do you have a test case online
&gt; that I can check that shows that Firefox allows .cookie changes on XHR docs?

Sorry for not responding earlier. I&apos;ve now put my (simple) test case at

http://hem.bredband.net/patrikpersson/cookie/cookie.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>278613</commentid>
    <comment_count>19</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-13 18:11:35 -0700</bug_when>
    <thetext>Our current behavior matches Firefox on the given test case.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44231</attachid>
            <date>2009-12-03 05:29:27 -0800</date>
            <delta_ts>2009-12-03 07:09:04 -0800</delta_ts>
            <desc>Patch to raise exception in document.cookie accessors</desc>
            <filename>cookie-exception.patch</filename>
            <type>text/plain</type>
            <size>4796</size>
            <attacher name="Patrik Persson">patrik.j.persson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTYzMSkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTggQEAKKzIwMDktMTItMDMgIFBhdHJpayBQZXJzc29uICA8cGF0cmlrLmoucGVy
c3NvbkBlcmljc3Nvbi5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmFpc2UgZXhjZXB0aW9uIGluIGRvY3VtZW50LmNvb2tpZSBhY2Nlc3NvcnMg
aWYgdGhlcmUgaXMgbm8gYnJvd3NpbmcgY29udGV4dC4KKyAgICAgICAgCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjExNQorICAgICAgICBodHRwOi8v
d3d3LnczLm9yZy9UUi9odG1sNS9kb20uaHRtbCNkb20tZG9jdW1lbnQtY29va2llCisgICAgICAg
IAorICAgICAgICBUZXN0OiBmYXN0L2Nvb2tpZXMvZXhjZXB0aW9uLWlmLW5vLWJyb3dzaW5nLWNv
bnRleHQuaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojpjb29raWUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnNldENv
b2tpZSk6CisKIDIwMDktMTItMDMgIFBhdmVsIEZlbGRtYW4gIDxwZmVsZG1hbkBkaGNwLTE3Mi0y
OC0xNzQtMjIwLnNwYi5jb3JwLmdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgVGlt
b3RoeSBIYXRjaGVyLgpJbmRleDogV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAkocmV2aXNpb24gNTE1OTYpCisrKyBXZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMwMDcsOSArMzAwNywxMCBAQCBT
dHJpbmcgRG9jdW1lbnQ6OmNvb2tpZShFeGNlcHRpb25Db2RlJiBlCiAgICAgaWYgKHBhZ2UoKSAm
JiAhcGFnZSgpLT5jb29raWVFbmFibGVkKCkpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKIAot
ICAgIC8vIEZJWE1FOiBUaGUgSFRNTDUgRE9NIHNwZWMgc3RhdGVzIHRoYXQgdGhpcyBhdHRyaWJ1
dGUgY2FuIHJhaXNlIGFuCi0gICAgLy8gSU5WQUxJRF9TVEFURV9FUlIgZXhjZXB0aW9uIG9uIGdl
dHRpbmcgaWYgdGhlIERvY3VtZW50IGhhcyBubwotICAgIC8vIGJyb3dzaW5nIGNvbnRleHQuCisg
ICAgaWYgKCFmcmFtZSgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9TVEFURV9FUlI7CisgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKKyAgICB9CiAKICAgICBpZiAoc2VjdXJpdHlPcmlnaW4oKS0+
aXNTYW5kYm94ZWQoU2FuZGJveE9yaWdpbikpIHsKICAgICAgICAgZWMgPSBTRUNVUklUWV9FUlI7
CkBAIC0zMDI4LDkgKzMwMjksMTAgQEAgdm9pZCBEb2N1bWVudDo6c2V0Q29va2llKGNvbnN0IFN0
cmluZyYgdgogICAgIGlmIChwYWdlKCkgJiYgIXBhZ2UoKS0+Y29va2llRW5hYmxlZCgpKQogICAg
ICAgICByZXR1cm47CiAKLSAgICAvLyBGSVhNRTogVGhlIEhUTUw1IERPTSBzcGVjIHN0YXRlcyB0
aGF0IHRoaXMgYXR0cmlidXRlIGNhbiByYWlzZSBhbgotICAgIC8vIElOVkFMSURfU1RBVEVfRVJS
IGV4Y2VwdGlvbiBvbiBzZXR0aW5nIGlmIHRoZSBEb2N1bWVudCBoYXMgbm8KLSAgICAvLyBicm93
c2luZyBjb250ZXh0LgorICAgIGlmICghZnJhbWUoKSkgeworICAgICAgICBlYyA9IElOVkFMSURf
U1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgaWYgKHNlY3VyaXR5T3Jp
Z2luKCktPmlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4pKSB7CiAgICAgICAgIGVjID0gU0VDVVJJ
VFlfRVJSOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTE2MzEpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAwOS0xMi0wMyAgUGF0cmlrIFBl
cnNzb24gIDxwYXRyaWsuai5wZXJzc29uQGVyaWNzc29uLmNvbT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSYWlzZSBleGNlcHRpb24gaW4gZG9jdW1l
bnQuY29va2llIGFjY2Vzc29ycyBpZiB0aGVyZSBpcyBubyBicm93c2luZyBjb250ZXh0LgorICAg
ICAgICAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMy
MTE1CisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L2RvbS5odG1sI2RvbS1kb2N1
bWVudC1jb29raWUKKworICAgICAgICAqIGZhc3QvY29va2llcy9leGNlcHRpb24taWYtbm8tYnJv
d3NpbmctY29udGV4dC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY29va2ll
cy9leGNlcHRpb24taWYtbm8tYnJvd3NpbmctY29udGV4dC5odG1sOiBBZGRlZC4KKwogMjAwOS0x
Mi0wMyAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGRoY3AtMTcyLTI4LTE3NC0yMjAuc3BiLmNv
cnAuZ29vZ2xlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBUaW1vdGh5IEhhdGNoZXIuCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nvb2tpZXMvZXhjZXB0aW9uLWlmLW5vLWJyb3dzaW5nLWNv
bnRleHQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvY29va2ll
cy9leGNlcHRpb24taWYtbm8tYnJvd3NpbmctY29udGV4dC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nvb2tpZXMvZXhjZXB0aW9uLWlmLW5vLWJyb3dzaW5n
LWNvbnRleHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEyIEBACitUaGlz
IHRlc3QgY2hlY2tzIHRoYXQgZG9jdW1lbnQuY29va2llIGFjY2VzcyB3aXRob3V0IGEgdmFsaWQg
YnJvd3NpbmcgY29udGV4dCByYWlzZXMgYSBET00gZXhjZXB0aW9uLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworUEFTUyBkb20uY29va2llID0gJ2ludmFsaWQnIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGNv
b2tpZWNvcHkgPSBkb20uY29va2llIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFU
RV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGNvb2tpZWNvcHkgaXMgJ25vdCBhc3NpZ25l
ZCcKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nvb2tpZXMvZXhjZXB0aW9uLWlmLW5vLWJyb3dzaW5nLWNv
bnRleHQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nvb2tpZXMvZXhjZXB0
aW9uLWlmLW5vLWJyb3dzaW5nLWNvbnRleHQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2Zhc3QvY29va2llcy9leGNlcHRpb24taWYtbm8tYnJvd3NpbmctY29udGV4dC5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI2IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkNhbm5v
dCBhY2Nlc3MgZG9jdW1lbnQuY29va2llIGlmIHRoZXJlIGlzIG5vIGJyb3dzaW5nIGNvbnRleHQ8
L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291
cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKzxwIGlk
PSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0Pgor
ICAgIGRlc2NyaXB0aW9uKCdUaGlzIHRlc3QgY2hlY2tzIHRoYXQgZG9jdW1lbnQuY29va2llIGFj
Y2VzcyB3aXRob3V0IGEgdmFsaWQgYnJvd3NpbmcgY29udGV4dCByYWlzZXMgYSBET00gZXhjZXB0
aW9uLicpOworCisgICAgdmFyIGRvbSA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURv
Y3VtZW50KCdodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sJywgJ2h0bWwnLCBudWxsKTsKKyAg
ICB2YXIgY29va2llY29weSA9ICJub3QgYXNzaWduZWQiOworICAgIAorICAgIHNob3VsZFRocm93
KCJkb20uY29va2llID0gJ2ludmFsaWQnIiwgIidFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERP
TSBFeGNlcHRpb24gMTEnIik7CisgICAgc2hvdWxkVGhyb3coImNvb2tpZWNvcHkgPSBkb20uY29v
a2llIiwgIidFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEnIik7Cisg
ICAgc2hvdWxkQmUoImNvb2tpZWNvcHkiLCAiJ25vdCBhc3NpZ25lZCciKTsKKworICAgIHZhciBz
dWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwv
aHRtbD4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44239</attachid>
            <date>2009-12-03 07:09:04 -0800</date>
            <delta_ts>2009-12-11 07:29:45 -0800</delta_ts>
            <desc>Revised more tests.</desc>
            <filename>cookie-exception.patch</filename>
            <type>text/plain</type>
            <size>10802</size>
            <attacher name="Patrik Persson">patrik.j.persson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAJKHJldmlzaW9uIDUxNTk2KQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMDA3LDkgKzMwMDcsMTAgQEAKICAgICBpZiAocGFnZSgp
ICYmICFwYWdlKCktPmNvb2tpZUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwog
Ci0gICAgLy8gRklYTUU6IFRoZSBIVE1MNSBET00gc3BlYyBzdGF0ZXMgdGhhdCB0aGlzIGF0dHJp
YnV0ZSBjYW4gcmFpc2UgYW4KLSAgICAvLyBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gb24g
Z2V0dGluZyBpZiB0aGUgRG9jdW1lbnQgaGFzIG5vCi0gICAgLy8gYnJvd3NpbmcgY29udGV4dC4K
KyAgICBpZiAoIWZyYW1lKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAg
ICAgICAgcmV0dXJuIFN0cmluZygpOworICAgIH0KIAogICAgIGlmIChzZWN1cml0eU9yaWdpbigp
LT5pc1NhbmRib3hlZChTYW5kYm94T3JpZ2luKSkgewogICAgICAgICBlYyA9IFNFQ1VSSVRZX0VS
UjsKQEAgLTMwMjgsOSArMzAyOSwxMCBAQAogICAgIGlmIChwYWdlKCkgJiYgIXBhZ2UoKS0+Y29v
a2llRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICAvLyBGSVhNRTogVGhlIEhUTUw1
IERPTSBzcGVjIHN0YXRlcyB0aGF0IHRoaXMgYXR0cmlidXRlIGNhbiByYWlzZSBhbgotICAgIC8v
IElOVkFMSURfU1RBVEVfRVJSIGV4Y2VwdGlvbiBvbiBzZXR0aW5nIGlmIHRoZSBEb2N1bWVudCBo
YXMgbm8KLSAgICAvLyBicm93c2luZyBjb250ZXh0LgorICAgIGlmICghZnJhbWUoKSkgeworICAg
ICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQogCiAg
ICAgaWYgKHNlY3VyaXR5T3JpZ2luKCktPmlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4pKSB7CiAg
ICAgICAgIGVjID0gU0VDVVJJVFlfRVJSOwpJbmRleDogV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDUxNjM2KQorKysgV2ViQ29yZS9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAwOS0xMi0wMyAgUGF0
cmlrIFBlcnNzb24gIDxwYXRyaWsuai5wZXJzc29uQGVyaWNzc29uLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSYWlzZSBleGNlcHRpb24gaW4g
ZG9jdW1lbnQuY29va2llIGFjY2Vzc29ycyBpZiB0aGVyZSBpcyBubyBicm93c2luZyBjb250ZXh0
LgorICAgICAgICAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTMyMTE1CisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L2RvbS5odG1sI2Rv
bS1kb2N1bWVudC1jb29raWUKKworICAgICAgICBUZXN0OiBmYXN0L2Nvb2tpZXMvZXhjZXB0aW9u
LWlmLW5vLWJyb3dzaW5nLWNvbnRleHQuaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpjb29raWUpOgorICAgICAgICAoV2ViQ29y
ZTo6RG9jdW1lbnQ6OnNldENvb2tpZSk6CisKIDIwMDktMTItMDMgIFJhZmFlbCBBbnRvZ25vbGxp
ICA8YW50b2dub2xsaUBwcm9mdXNpb24ubW9iaT4sIEtlbm5ldGggQ2hyaXN0aWFuc2VuIDxrZW5u
ZXRoQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL2NyZWF0ZS1kb2N1bWVu
dC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29v
a2llcy9jcmVhdGUtZG9jdW1lbnQuaHRtbAkocmV2aXNpb24gNTE1OTYpCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvY3JlYXRlLWRvY3VtZW50Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsNDYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1pZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
LX0KLQotLy8gV2UgZG9uJ3QgZXhwZWN0IHRoaXMgY29va2llIHRvIGJlIHZpc2libGUsIGJ1dCB3
ZSBzZXQgdGhpcyB2YWx1ZSBmb3IKLS8vIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIgdGVzdHMgaW4g
dGhpcyBkaXJlY3RvcnkuCi1kb2N1bWVudC5jb29raWUgPSAic2VjcmV0PVBBU1MiOwotCi1mdW5j
dGlvbiBsb2cobXNnKSB7Ci0gICAgdmFyIGxpbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKLSAgICBsaW5lLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1zZykp
OwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQobGlu
ZSk7Ci19Ci0KLWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgbG9nKCJSdW5uaW5nIHRlc3QuIik7
Ci0KLSAgICBpZiAoZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQpIHsKLSAg
ICAgICAgdmFyIHhtbERvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50
KG51bGwsIG51bGwsIG51bGwpOwotICAgICAgICBsb2coInhtbERvYy5jb29raWU6ICIgKyB4bWxE
b2MuY29va2llKTsKLSAgICB9IGVsc2UgewotICAgICAgICBsb2coImRvY3VtZW50LmltcGxlbWVu
dGF0aW9uLmNyZWF0ZURvY3VtZW50IHVuYXZhaWxhYmxlLiIpOwotICAgIH0KLQotICAgIGlmIChk
b2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQpIHsKLSAgICAgICAgdmFy
IGh0bWxEb2MgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoJ0Eg
VGl0bGUnKTsKLSAgICAgICAgbG9nKCJodG1sRG9jLmNvb2tpZTogIiArIGh0bWxEb2MuY29va2ll
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBsb2coImRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNy
ZWF0ZURvY3VtZW50IHVuYXZhaWxhYmxlLiIpOwotICAgIH0KLQotICAgIGxvZygiVGVzdCBjb21w
bGV0ZS4iKTsKLQotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFk
PgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08
L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
b2tpZXMveG1saHR0cHJlcXVlc3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy94bWxodHRwcmVxdWVzdC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDUxNTk2KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
b29raWVzL3htbGh0dHByZXF1ZXN0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDYgQEAKIFJ1bm5pbmcgdGVzdC4KIFNlbmRpbmcgWE1MSHR0cFJlcXVlc3QuLi4KIFJlc3Bv
bnNlIHJlY2VpdmVkLgoteGhyLnJlc3BvbnNlWE1MLmNvb2tpZToKK0V4Y2VwdGlvbiByYWlzZWQs
IGFzIGV4cGVjdGVkLgorY29va2llY29weSAocmVhZCBmcm9tIHhoci5yZXNwb25zZVhNTC5jb29r
aWUpOiBub3QgYXNzaWduZWQKIFRlc3QgY29tcGxldGUuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvY3JlYXRlLWRvY3VtZW50LWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvY3JlYXRl
LWRvY3VtZW50LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gNTE1OTYpCisrKyBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMvY3JlYXRlLWRvY3VtZW50LWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMSw0ICswLDAgQEAKLVJ1bm5pbmcgdGVzdC4KLXhtbERvYy5jb29r
aWU6Ci1odG1sRG9jLmNvb2tpZToKLVRlc3QgY29tcGxldGUuCkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMveG1saHR0cHJlcXVlc3QuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMveG1saHR0cHJlcXVl
c3QuaHRtbAkocmV2aXNpb24gNTE1OTYpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2Nvb2tpZXMveG1saHR0cHJlcXVlc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsOCAr
MjIsMTUgQEAKICAgICBsb2coIlNlbmRpbmcgWE1MSHR0cFJlcXVlc3QuLi4iKTsKICAgICB4aHIu
c2VuZChudWxsKTsKICAgICBsb2coIlJlc3BvbnNlIHJlY2VpdmVkLiIpOwotICAgIGxvZygieGhy
LnJlc3BvbnNlWE1MLmNvb2tpZTogIiArIHhoci5yZXNwb25zZVhNTC5jb29raWUpOwotICAgIGlm
ICh4aHIucmVzcG9uc2VYTUwuY29va2llLmxlbmd0aCkKKyAgICB2YXIgY29va2llY29weSA9ICJu
b3QgYXNzaWduZWQiOworICAgIHRyeSB7CisgICAgICAgIGNvb2tpZWNvcHkgPSB4aHIucmVzcG9u
c2VYTUwuY29va2llOworICAgIH0KKyAgICBjYXRjaCAoZSkgeworICAgICAgICBsb2coIkV4Y2Vw
dGlvbiByYWlzZWQsIGFzIGV4cGVjdGVkLiIpOworICAgIH0KKyAgICBsb2coImNvb2tpZWNvcHkg
KHJlYWQgZnJvbSB4aHIucmVzcG9uc2VYTUwuY29va2llKTogIiArIGNvb2tpZWNvcHkpOworICAg
IGlmIChjb29raWVjb3B5ICE9ICJub3QgYXNzaWduZWQiKQogICAgICAgICBsb2coIkJlaGF2aW9y
IGNoYW5nZSBkZXRlY3RlZDogWE1MSHR0cFJlcXVlc3QucmVzcG9uc2VYTUwgY29va2llcyBhcmUg
bm93IHZpc2libGUuIFBsZWFzZSBlbnN1cmUgdGhhdCBjb29raWVzIGFyZSBub3QgZXhwb3NlZCBm
b3IgY3Jvc3Mtb3JpZ2luIHJlcXVlc3RzLCBhbmQgYWRkIGEgbmV3IHRlc3QgZm9yIHRoYXQuIik7
CiAgICAgbG9nKCJUZXN0IGNvbXBsZXRlLiIpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nv
b2tpZXMvZXhjZXB0aW9uLWlmLW5vLWJyb3dzaW5nLWNvbnRleHQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2Nvb2tpZXMvZXhjZXB0aW9uLWlmLW5vLWJyb3dzaW5nLWNvbnRl
eHQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY29va2llcy9leGNlcHRp
b24taWYtbm8tYnJvd3NpbmctY29udGV4dC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMy
IEBACis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPkNhbm5vdCBhY2Nlc3MgZG9jdW1lbnQuY29va2ll
IGlmIHRoZXJlIGlzIG5vIGJyb3dzaW5nIGNvbnRleHQ8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHls
ZXNoZWV0IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwv
c2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0PgorICAgIGRlc2NyaXB0aW9uKCdUaGlzIHRl
c3QgY2hlY2tzIHRoYXQgZG9jdW1lbnQuY29va2llIGFjY2VzcyB3aXRob3V0IGEgdmFsaWQgYnJv
d3NpbmcgY29udGV4dCByYWlzZXMgYSBET00gZXhjZXB0aW9uLicpOworCisgICAgdmFyIGRvbTEg
PSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCBudWxsLCBudWxs
KTsKKyAgICB2YXIgY29va2llY29weTEgPSAibm90IGFzc2lnbmVkIjsKKyAgICAKKyAgICBzaG91
bGRUaHJvdygiZG9tMS5jb29raWUgPSAnaW52YWxpZCciLCAiJ0Vycm9yOiBJTlZBTElEX1NUQVRF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxMSciKTsKKyAgICBzaG91bGRUaHJvdygiY29va2llY29weTEg
PSBkb20xLmNvb2tpZSIsICInRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9u
IDExJyIpOworICAgIHNob3VsZEJlKCJjb29raWVjb3B5MSIsICInbm90IGFzc2lnbmVkJyIpOwor
CisgICAgdmFyIGRvbTIgPSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1l
bnQoJ0EgVGl0bGUnKTsKKyAgICB2YXIgY29va2llY29weTIgPSAibm90IGFzc2lnbmVkIjsKKyAg
ICAKKyAgICBzaG91bGRUaHJvdygiZG9tMi5jb29raWUgPSAnaW52YWxpZCciLCAiJ0Vycm9yOiBJ
TlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMSciKTsKKyAgICBzaG91bGRUaHJvdygi
Y29va2llY29weTIgPSBkb20yLmNvb2tpZSIsICInRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBE
T00gRXhjZXB0aW9uIDExJyIpOworICAgIHNob3VsZEJlKCJjb29raWVjb3B5MiIsICInbm90IGFz
c2lnbmVkJyIpOworCisgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9jb29r
aWVzL2V4Y2VwdGlvbi1pZi1uby1icm93c2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Nvb2tpZXMvZXhjZXB0aW9uLWlmLW5vLWJyb3dzaW5n
LWNvbnRleHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9j
b29raWVzL2V4Y2VwdGlvbi1pZi1uby1icm93c2luZy1jb250ZXh0LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGRvY3VtZW50
LmNvb2tpZSBhY2Nlc3Mgd2l0aG91dCBhIHZhbGlkIGJyb3dzaW5nIGNvbnRleHQgcmFpc2VzIGEg
RE9NIGV4Y2VwdGlvbi4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgZG9t
MS5jb29raWUgPSAnaW52YWxpZCcgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRF
X0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgY29va2llY29weTEgPSBkb20xLmNvb2tpZSB0
aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDEx
LgorUEFTUyBjb29raWVjb3B5MSBpcyAnbm90IGFzc2lnbmVkJworUEFTUyBkb20yLmNvb2tpZSA9
ICdpbnZhbGlkJyB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00g
RXhjZXB0aW9uIDExLgorUEFTUyBjb29raWVjb3B5MiA9IGRvbTIuY29va2llIHRocmV3IGV4Y2Vw
dGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGNv
b2tpZWNvcHkyIGlzICdub3QgYXNzaWduZWQnCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1l
bnQtYXR0cmlidXRlLWpzLW51bGwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL2RvY3VtZW50LWF0dHJpYnV0ZS1qcy1udWxsLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gNTE1OTYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1hdHRyaWJ1dGUt
anMtbnVsbC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw2IEBACiBURVNU
IFNVQ0NFRURFRDogVGhlIHZhbHVlIHdhcyBudWxsLiBbdGVzdGVkIERvY3VtZW50LnNlbGVjdGVk
U3R5bGVzaGVldFNldF0KIAogVEVTVCBTVUNDRUVERUQ6IFRoZSB2YWx1ZSB3YXMgdGhlIGVtcHR5
IHN0cmluZy4gW3Rlc3RlZCBIVE1MRG9jdW1lbnQudGl0bGVdCi1URVNUIFNVQ0NFRURFRDogVGhl
IHZhbHVlIHdhcyB0aGUgZW1wdHkgc3RyaW5nLiBbdGVzdGVkIEhUTUxEb2N1bWVudC5jb29raWVd
CiBURVNUIFNVQ0NFRURFRDogVGhlIHZhbHVlIHdhcyB0aGUgZW1wdHkgc3RyaW5nLiBbdGVzdGVk
IEhUTUxEb2N1bWVudC5iZ0NvbG9yXQogVEVTVCBTVUNDRUVERUQ6IFRoZSB2YWx1ZSB3YXMgdGhl
IGVtcHR5IHN0cmluZy4gW3Rlc3RlZCBIVE1MRG9jdW1lbnQuZmdDb2xvcl0KIFRFU1QgU1VDQ0VF
REVEOiBUaGUgdmFsdWUgd2FzIHRoZSBlbXB0eSBzdHJpbmcuIFt0ZXN0ZWQgSFRNTERvY3VtZW50
LmFsaW5rQ29sb3JdCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1hdHRyaWJ1
dGUtanMtbnVsbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL2RvY3Vt
ZW50LWF0dHJpYnV0ZS1qcy1udWxsLmh0bWwJKHJldmlzaW9uIDUxNTk2KQorKysgTGF5b3V0VGVz
dHMvZmFzdC9kb20vZG9jdW1lbnQtYXR0cmlidXRlLWpzLW51bGwuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNjYsNyArNjYsNiBAQAogICAgICAgICAgICAgICAgICAgICBkb2NUb1VzZTogaHRtbERv
YywKICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczogWwogICAgICAgICAgICAgICAgICAg
ICAgICAge25hbWU6ICd0aXRsZScsIGV4cGVjdGVkTnVsbDogJyd9LAotICAgICAgICAgICAgICAg
ICAgICAgICAge25hbWU6ICdjb29raWUnLCBleHBlY3RlZE51bGw6ICcnfSwKICAgICAgICAgICAg
ICAgICAgICAgICAgIHtuYW1lOiAnYmdDb2xvcicsIGV4cGVjdGVkTnVsbDogJyd9LAogICAgICAg
ICAgICAgICAgICAgICAgICAge25hbWU6ICdmZ0NvbG9yJywgZXhwZWN0ZWROdWxsOiAnJ30sCiAg
ICAgICAgICAgICAgICAgICAgICAgICB7bmFtZTogJ2FsaW5rQ29sb3InLCBleHBlY3RlZE51bGw6
ICcnfSwKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDUxNjM2KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMDktMTItMDMgIFBhdHJpayBQZXJz
c29uICA8cGF0cmlrLmoucGVyc3NvbkBlcmljc3Nvbi5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmFpc2UgZXhjZXB0aW9uIGluIGRvY3VtZW50
LmNvb2tpZSBhY2Nlc3NvcnMgaWYgdGhlcmUgaXMgbm8gYnJvd3NpbmcgY29udGV4dC4KKyAgICAg
ICAgCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjEx
NQorICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9odG1sNS9kb20uaHRtbCNkb20tZG9jdW1l
bnQtY29va2llCisKKyAgICAgICAgKiBmYXN0L2Nvb2tpZXMvZXhjZXB0aW9uLWlmLW5vLWJyb3dz
aW5nLWNvbnRleHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nvb2tpZXMv
ZXhjZXB0aW9uLWlmLW5vLWJyb3dzaW5nLWNvbnRleHQuaHRtbDogQWRkZWQuCisgICAgICAgICog
ZmFzdC9kb20vZG9jdW1lbnQtYXR0cmlidXRlLWpzLW51bGwtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvZG9tL2RvY3VtZW50LWF0dHJpYnV0ZS1qcy1udWxsOiBObyBsb25nZXIgZXhwZWN0
cyB0byByZWFkIGNvb2tpZSBhdHRyaWJ1dGUgd2l0aG91dCBicm93c2luZyBjb250ZXh0LgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy9jcmVhdGUtZG9jdW1lbnQtZXhwZWN0
ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy9j
cmVhdGUtZG9jdW1lbnQuaHRtbDogUmVtb3ZlZC4gUmVwbGFjZWQgYnkgZXhjZXB0aW9uLWlmLW5v
LWJyb3dzaW5nLWNvbnRleHQuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
b2tpZXMveG1saHR0cHJlcXVlc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkvY29va2llcy94bWxodHRwcmVxdWVzdC5odG1sOgorCiAyMDA5LTEyLTAzICBBbmRy
YXMgQmVjc2kgIDxhYmVjc2lAaW5mLnUtc3plZ2VkLmh1PgogCiAgICAgICAgIFJldmlld2VkIGJ5
IEtlbm5ldGggUm9oZGUgQ2hyaXN0aWFuc2VuLgo=
</data>
<flag name="review"
          id="26040"
          type_id="1"
          status="-"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>44401</attachid>
            <date>2009-12-07 04:34:05 -0800</date>
            <delta_ts>2009-12-07 04:34:05 -0800</delta_ts>
            <desc>Code to check browser behavior wrt. cookie access</desc>
            <filename>cookie-checker.txt</filename>
            <type>text/plain</type>
            <size>1157</size>
            <attacher name="Patrik Persson">patrik.j.persson</attacher>
            
              <data encoding="base64">Y29va2llLmh0bWw6Cgo8aHRtbD4KPGJvZHk+CjxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2Pgo8c2Ny
aXB0PgoKICAgIHZhciBkb2M7CgogICAgZnVuY3Rpb24gbG9nKHgpIHsKICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCArPSB4ICsgJzxicj4nOwogICAg
fQoKICAgIGZ1bmN0aW9uIGZyYW1lX2xvYWRlZChmKSB7CiAgICAgICBkb2MgPSBmLmRvY3VtZW50
OwogICAgfQoKICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICAgICB2YXIgY29v
a2llY29weSA9ICJub3QgYXNzaWduZWQiOwoKICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgiZnJhbWVfaG9sZGVyIikuaW5uZXJIVE1MID0gJyhmcmFtZSByZW1vdmVkKSc7CgogICAgICAg
IHRyeSB7CiAgICAgICAgICAgIGRvYy5jb29raWUgPSAiQVNTSUdORUQiOwogICAgICAgICAgICBs
b2coImNvb2tpZSBhc3NpZ25lZCwgbm8gZXhjZXB0aW9uIik7CiAgICAgICAgfQogICAgICAgIGNh
dGNoIChlKSB7CiAgICAgICAgICAgIGxvZygiY29va2llIGFzc2lnbm1lbnQgZXhjZXB0aW9uOiAi
ICsgZS5uYW1lICsgIiAoIiArIGUubWVzc2FnZSArICIpIik7CiAgICAgICAgfQogICAgCiAgICAg
ICAgdHJ5IHsKICAgICAgICAgICAgY29va2llY29weSA9IGRvYy5jb29raWU7CiAgICAgICAgICAg
IGxvZygiY29va2llIHJlYWQsIG5vIGV4Y2VwdGlvbiIpOwogICAgICAgIH0KICAgICAgICBjYXRj
aCAoZSkgewogICAgICAgICAgICBsb2coImNvb2tpZSByZWFkIGV4Y2VwdGlvbjogIiArIGUubmFt
ZSArICIgKCIgKyBlLm1lc3NhZ2UgKyAiKSIpOwogICAgICAgIH0KCiAgICAgICAgbG9nKCJjb29r
aWVjb3B5PSIgKyBjb29raWVjb3B5KTsKICAgICAgICBsb2coIi0tLS0tIik7CiAgICB9Cgo8L3Nj
cmlwdD4KCjxkaXYgaWQ9ImZyYW1lX2hvbGRlciI+CiAgPGlmcmFtZSBzcmM9ImNvb2tpZWZyYW1l
Lmh0bWwiPgogIDwvaWZyYW1lPgo8L2Rpdj4KCjwvYm9keT4KPC9odG1sPgoKCmNvb2tpZWZyYW1l
Lmh0bWw6Cgo8aHRtbD4KPGJvZHk+CjxzY3JpcHQ+CgogICAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0
aW9uKCkgewogICAgICAgIHRvcC5mcmFtZV9sb2FkZWQoc2VsZik7CiAgICB9Cgo8L3NjcmlwdD4K
CjwvYm9keT4KPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44688</attachid>
            <date>2009-12-11 07:29:45 -0800</date>
            <delta_ts>2010-06-10 20:59:04 -0700</delta_ts>
            <desc>Patch with extended test case</desc>
            <filename>cookie-exception.patch</filename>
            <type>text/plain</type>
            <size>12865</size>
            <attacher name="Patrik Persson">patrik.j.persson</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MTk4NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMTkgQEAKKzIwMDktMTItMTEgIFBhdHJpayBQZXJzc29uICA8cGF0cmlrLmoucGVy
c3NvbkBlcmljc3Nvbi5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgUmFpc2UgZXhjZXB0aW9uIGluIGRvY3VtZW50LmNvb2tpZSBhY2Nlc3NvcnMg
aWYgdGhlcmUgaXMgbm8KKyAgICAgICAgYnJvd3NpbmcgY29udGV4dC4KKyAgICAgICAgICAgICAg
ICAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMyMTE1
CisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL2h0bWw1L2RvbS5odG1sI2RvbS1kb2N1bWVu
dC1jb29raWUKKworICAgICAgICBUZXN0OiBmYXN0L2Nvb2tpZXMvZXhjZXB0aW9uLWlmLW5vLWJy
b3dzaW5nLWNvbnRleHQuaHRtbAorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpjb29raWUpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnQ6OnNldENvb2tpZSk6CisKIDIwMDktMTItMTEgIEFuZHJlYXMgS2xpbmcgIDxhbmRyZWFzLmts
aW5nQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBIYXVzbWFubi4KSW5k
ZXg6IFdlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAJKHJldmlzaW9uIDUxOTgyKQorKysgV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zMDAwLDkgKzMwMDAsMTAgQEAgU3RyaW5nIERvY3VtZW50Ojpj
b29raWUoRXhjZXB0aW9uQ29kZSYgZQogICAgIGlmIChwYWdlKCkgJiYgIXBhZ2UoKS0+Y29va2ll
RW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAKLSAgICAvLyBGSVhNRTogVGhl
IEhUTUw1IERPTSBzcGVjIHN0YXRlcyB0aGF0IHRoaXMgYXR0cmlidXRlIGNhbiByYWlzZSBhbgot
ICAgIC8vIElOVkFMSURfU1RBVEVfRVJSIGV4Y2VwdGlvbiBvbiBnZXR0aW5nIGlmIHRoZSBEb2N1
bWVudCBoYXMgbm8KLSAgICAvLyBicm93c2luZyBjb250ZXh0LgorICAgIGlmICghZnJhbWUoKSkg
eworICAgICAgICBlYyA9IElOVkFMSURfU1RBVEVfRVJSOworICAgICAgICByZXR1cm4gU3RyaW5n
KCk7CisgICAgfQogCiAgICAgaWYgKHNlY3VyaXR5T3JpZ2luKCktPmlzU2FuZGJveGVkKFNhbmRi
b3hPcmlnaW4pKSB7CiAgICAgICAgIGVjID0gU0VDVVJJVFlfRVJSOwpAQCAtMzAyMSw5ICszMDIy
LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OnNldENvb2tpZShjb25zdCBTdHJpbmcmIHYKICAgICBpZiAo
cGFnZSgpICYmICFwYWdlKCktPmNvb2tpZUVuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgLy8gRklYTUU6IFRoZSBIVE1MNSBET00gc3BlYyBzdGF0ZXMgdGhhdCB0aGlzIGF0dHJpYnV0
ZSBjYW4gcmFpc2UgYW4KLSAgICAvLyBJTlZBTElEX1NUQVRFX0VSUiBleGNlcHRpb24gb24gc2V0
dGluZyBpZiB0aGUgRG9jdW1lbnQgaGFzIG5vCi0gICAgLy8gYnJvd3NpbmcgY29udGV4dC4KKyAg
ICBpZiAoIWZyYW1lKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX1NUQVRFX0VSUjsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KIAogICAgIGlmIChzZWN1cml0eU9yaWdpbigpLT5pc1NhbmRib3hl
ZChTYW5kYm94T3JpZ2luKSkgewogICAgICAgICBlYyA9IFNFQ1VSSVRZX0VSUjsKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDUxOTg0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDMgKzEsMjYgQEAKKzIwMDktMTItMTEgIFBhdHJpayBQZXJzc29uICA8cGF0cmlrLmou
cGVyc3NvbkBlcmljc3Nvbi5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgUmFpc2UgZXhjZXB0aW9uIGluIGRvY3VtZW50LmNvb2tpZSBhY2Nlc3Nv
cnMgaWYgdGhlcmUgaXMgbm8KKyAgICAgICAgYnJvd3NpbmcgY29udGV4dC4KKworICAgICAgICBU
aGUgdGVzdCAnZXhjZXB0aW9uLWlmLW5vLWJyb3dzaW5nLWNvbnRleHQnIHJlcGxhY2VzCisgICAg
ICAgICdjcmVhdGUtZG9jdW1lbnQsJyBhbmQgdGhlIG90aGVyIHRlc3RzIGFyZSBhZGp1c3RlZCB0
byBhY2NvbW9kYXRlCisgICAgICAgIHJhaXNlZCBleGNlcHRpb25zLgorICAgICAgICAgICAgICAg
IAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzIxMTUK
KyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvaHRtbDUvZG9tLmh0bWwjZG9tLWRvY3VtZW50
LWNvb2tpZQorCisgICAgICAgICogZmFzdC9jb29raWVzL2V4Y2VwdGlvbi1pZi1uby1icm93c2lu
Zy1jb250ZXh0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jb29raWVzL2V4
Y2VwdGlvbi1pZi1uby1icm93c2luZy1jb250ZXh0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZG9tL2RvY3VtZW50LWF0dHJpYnV0ZS1qcy1udWxsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiBmYXN0L2RvbS9kb2N1bWVudC1hdHRyaWJ1dGUtanMtbnVsbC5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy9jcmVhdGUtZG9jdW1lbnQtZXhwZWN0ZWQudHh0OiBS
ZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy9jcmVhdGUtZG9j
dW1lbnQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tp
ZXMveG1saHR0cHJlcXVlc3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY29va2llcy94bWxodHRwcmVxdWVzdC5odG1sOgorCiAyMDA5LTEyLTExICBTaW1vbiBI
YXVzbWFubiAgPGhhdXNtYW5uQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW50
dGkgS29pdmlzdG8uCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nvb2tpZXMvZXhjZXB0aW9uLWlm
LW5vLWJyb3dzaW5nLWNvbnRleHQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvY29va2llcy9leGNlcHRpb24taWYtbm8tYnJvd3NpbmctY29udGV4dC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Nvb2tpZXMvZXhjZXB0aW9u
LWlmLW5vLWJyb3dzaW5nLWNvbnRleHQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDMzIEBACitUaGlzIHRlc3QgY2hlY2tzIHRoYXQgZG9jdW1lbnQuY29va2llIGFjY2VzcyB3
aXRob3V0IGEgdmFsaWQgYnJvd3NpbmcgY29udGV4dCByYWlzZXMgYSBET00gZXhjZXB0aW9uLiBU
ZXN0cyBhcmUgbWFkZSBmb3IgZm91ciBkb2N1bWVudHM6IG9uZSBjcmVhdGVkIHVzaW5nIGNyZWF0
ZURvY3VtZW50KCksIG9uZSBjcmVhdGVkIHVzaW5nIGNyZWF0ZUhUTUxEb2N1bWVudCgpLCBvbmUg
ZnJvbSBhIHJlbW92ZWQgaWZyYW1lLCBhbmQgb25lIGZyb20gYW4gWE1MSHR0cFJlcXVlc3QuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisKK2NoZWNraW5nIGRvY3VtZW50IGZyb20g
Y3JlYXRlRG9jdW1lbnQuLi4KK1BBU1MgZG9jIGlzIHVuZGVmaW5lZC4KK1BBU1MgZG9jLmNvb2tp
ZSA9ICdJTExFR0FMJyB0aHJldyBleGNlcHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBE
T00gRXhjZXB0aW9uIDExLgorUEFTUyBjb29raWVjb3B5ID0gZG9jLmNvb2tpZSB0aHJldyBleGNl
cHRpb24gRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDExLgorUEFTUyBj
b29raWVjb3B5IGlzICdub3QgYXNzaWduZWQnCisKK2NoZWNraW5nIGRvY3VtZW50IGZyb20gY3Jl
YXRlSFRNTERvY3VtZW50Li4uCitQQVNTIGRvYyBpcyB1bmRlZmluZWQuCitQQVNTIGRvYy5jb29r
aWUgPSAnSUxMRUdBTCcgdGhyZXcgZXhjZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjog
RE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1MgY29va2llY29weSA9IGRvYy5jb29raWUgdGhyZXcgZXhj
ZXB0aW9uIEVycm9yOiBJTlZBTElEX1NUQVRFX0VSUjogRE9NIEV4Y2VwdGlvbiAxMS4KK1BBU1Mg
Y29va2llY29weSBpcyAnbm90IGFzc2lnbmVkJworCitjaGVja2luZyBkb2N1bWVudCBmcm9tIGlm
cmFtZS4uLgorUEFTUyBkb2MgaXMgdW5kZWZpbmVkLgorUEFTUyBkb2MuY29va2llID0gJ0lMTEVH
QUwnIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRp
b24gMTEuCitQQVNTIGNvb2tpZWNvcHkgPSBkb2MuY29va2llIHRocmV3IGV4Y2VwdGlvbiBFcnJv
cjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGNvb2tpZWNvcHkg
aXMgJ25vdCBhc3NpZ25lZCcKKworY2hlY2tpbmcgZG9jdW1lbnQgZnJvbSBYTUxIdHRwUmVxdWVz
dC4uLgorUEFTUyBkb2MgaXMgdW5kZWZpbmVkLgorUEFTUyBkb2MuY29va2llID0gJ0lMTEVHQUwn
IHRocmV3IGV4Y2VwdGlvbiBFcnJvcjogSU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24g
MTEuCitQQVNTIGNvb2tpZWNvcHkgPSBkb2MuY29va2llIHRocmV3IGV4Y2VwdGlvbiBFcnJvcjog
SU5WQUxJRF9TVEFURV9FUlI6IERPTSBFeGNlcHRpb24gMTEuCitQQVNTIGNvb2tpZWNvcHkgaXMg
J25vdCBhc3NpZ25lZCcKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorKGZyYW1lIHJlbW92ZWQpCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Nvb2tpZXMv
ZXhjZXB0aW9uLWlmLW5vLWJyb3dzaW5nLWNvbnRleHQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2Nvb2tpZXMvZXhjZXB0aW9uLWlmLW5vLWJyb3dzaW5nLWNvbnRleHQuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2Zhc3QvY29va2llcy9leGNlcHRpb24taWYt
bm8tYnJvd3NpbmctY29udGV4dC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY4IEBACis8
aHRtbD4KKzxoZWFkPgorPHRpdGxlPkNhbm5vdCBhY2Nlc3MgZG9jdW1lbnQuY29va2llIGlmIHRo
ZXJlIGlzIG5vIGJyb3dzaW5nIGNvbnRleHQ8L3RpdGxlPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiBocmVmPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2Ny
aXB0IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC1mdW5j
dGlvbi5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVuVGVzdHMoKTsi
PgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKwor
PGRpdiBpZD0iZnJhbWVDb250YWluZXIiPgorICA8aWZyYW1lPgorICA8L2lmcmFtZT4KKzwvZGl2
PgorCis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7ICAKKyAgICB9CisKKyAgICB2YXIgZG9jOwor
ICAgIHZhciBjb29raWVDb3B5OworICAgIHZhciB4aHI7CisKKyAgICBmdW5jdGlvbiB0ZXN0Q29v
a2llKGRlc2MsIGQpIHsKKyAgICAgICBkZWJ1ZygiPGJyIC8+Y2hlY2tpbmcgZG9jdW1lbnQgZnJv
bSAiICsgZGVzYyArICIuLi4iKTsKKyAgICAgICBzaG91bGRCZVVuZGVmaW5lZCgiZG9jIik7IC8v
IEVuc3VyZSBwcmV2aW91cyB2YWx1ZSBpcyBmb3Jnb3R0ZW4uCisKKyAgICAgICBkb2MgPSBkOwor
ICAgICAgIGNvb2tpZWNvcHkgPSAibm90IGFzc2lnbmVkIjsKKyAgICAKKyAgICAgICBzaG91bGRU
aHJvdygiZG9jLmNvb2tpZSA9ICdJTExFR0FMJyIsICInRXJyb3I6IElOVkFMSURfU1RBVEVfRVJS
OiBET00gRXhjZXB0aW9uIDExJyIpOworICAgICAgIHNob3VsZFRocm93KCJjb29raWVjb3B5ID0g
ZG9jLmNvb2tpZSIsICInRXJyb3I6IElOVkFMSURfU1RBVEVfRVJSOiBET00gRXhjZXB0aW9uIDEx
JyIpOworICAgICAgIHNob3VsZEJlKCJjb29raWVjb3B5IiwgIidub3QgYXNzaWduZWQnIik7CisK
KyAgICAgICBkb2MgPSB1bmRlZmluZWQ7CisgICAgfQorCisgICAgZnVuY3Rpb24gcnVuVGVzdHMo
KSB7CisgICAgICAgdGVzdENvb2tpZSgiY3JlYXRlRG9jdW1lbnQiLCBkb2N1bWVudC5pbXBsZW1l
bnRhdGlvbi5jcmVhdGVEb2N1bWVudChudWxsLCBudWxsLCBudWxsKSk7CisgICAgICAgdGVzdENv
b2tpZSgiY3JlYXRlSFRNTERvY3VtZW50IiwgZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRl
SFRNTERvY3VtZW50KCdBIFRpdGxlJykpOworCisgICAgICAgLy8gUmVtb3ZlIGlmcmFtZSwgYnV0
IGZpcnN0IHBpY2sgaXRzIGRvY3VtZW50LgorICAgICAgIHZhciBmcmFtZURvYyA9IHdpbmRvdy5m
cmFtZXNbMF0uZG9jdW1lbnQ7CisgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1l
Q29udGFpbmVyIikuaW5uZXJIVE1MID0gIihmcmFtZSByZW1vdmVkKSI7CisgICAgICAgdGVzdENv
b2tpZSgiaWZyYW1lIiwgZnJhbWVEb2MpOworCisgICAgICAgeGhyID0gbmV3IFhNTEh0dHBSZXF1
ZXN0KCk7CisgICAgICAgeGhyLm9wZW4oIkdFVCIsICJkYXRhOnRleHQvaHRtbCw8cD5oZWxsbzwv
cD4iLCBmYWxzZSk7CisgICAgICAgeGhyLnNlbmQobnVsbCk7CisgICAgICAgdGVzdENvb2tpZSgi
WE1MSHR0cFJlcXVlc3QiLCB4aHIucmVzcG9uc2VYTUwpOworCisgICAgICAgaXNTdWNjZXNzZnVs
bHlQYXJzZWQoKTsKKworICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisKKyAg
ICBkZXNjcmlwdGlvbignVGhpcyB0ZXN0IGNoZWNrcyB0aGF0IGRvY3VtZW50LmNvb2tpZSBhY2Nl
c3Mgd2l0aG91dCBhIHZhbGlkIGJyb3dzaW5nIGNvbnRleHQgcmFpc2VzIGEgRE9NIGV4Y2VwdGlv
bi4gVGVzdHMgYXJlIG1hZGUgZm9yIGZvdXIgZG9jdW1lbnRzOiBvbmUgY3JlYXRlZCB1c2luZyBj
cmVhdGVEb2N1bWVudCgpLCBvbmUgY3JlYXRlZCB1c2luZyBjcmVhdGVIVE1MRG9jdW1lbnQoKSwg
b25lIGZyb20gYSByZW1vdmVkIGlmcmFtZSwgYW5kIG9uZSBmcm9tIGFuIFhNTEh0dHBSZXF1ZXN0
LicpOworCisgICAgdmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKwor
PC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnQtYXR0
cmlidXRlLWpzLW51bGwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZG9tL2RvY3VtZW50LWF0dHJpYnV0ZS1qcy1udWxsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
NTE5ODIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1hdHRyaWJ1dGUtanMtbnVs
bC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw2IEBAIFRFU1QgU1VDQ0VF
REVEOiBUaGUgdmFsdWUgd2FzIHVuZGVmaW5lZC4KIFRFU1QgU1VDQ0VFREVEOiBUaGUgdmFsdWUg
d2FzIG51bGwuIFt0ZXN0ZWQgRG9jdW1lbnQuc2VsZWN0ZWRTdHlsZXNoZWV0U2V0XQogCiBURVNU
IFNVQ0NFRURFRDogVGhlIHZhbHVlIHdhcyB0aGUgZW1wdHkgc3RyaW5nLiBbdGVzdGVkIEhUTUxE
b2N1bWVudC50aXRsZV0KLVRFU1QgU1VDQ0VFREVEOiBUaGUgdmFsdWUgd2FzIHRoZSBlbXB0eSBz
dHJpbmcuIFt0ZXN0ZWQgSFRNTERvY3VtZW50LmNvb2tpZV0KIFRFU1QgU1VDQ0VFREVEOiBUaGUg
dmFsdWUgd2FzIHRoZSBlbXB0eSBzdHJpbmcuIFt0ZXN0ZWQgSFRNTERvY3VtZW50LmJnQ29sb3Jd
CiBURVNUIFNVQ0NFRURFRDogVGhlIHZhbHVlIHdhcyB0aGUgZW1wdHkgc3RyaW5nLiBbdGVzdGVk
IEhUTUxEb2N1bWVudC5mZ0NvbG9yXQogVEVTVCBTVUNDRUVERUQ6IFRoZSB2YWx1ZSB3YXMgdGhl
IGVtcHR5IHN0cmluZy4gW3Rlc3RlZCBIVE1MRG9jdW1lbnQuYWxpbmtDb2xvcl0KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvZG9tL2RvY3VtZW50LWF0dHJpYnV0ZS1qcy1udWxsLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vZG9jdW1lbnQtYXR0cmlidXRlLWpzLW51bGwu
aHRtbAkocmV2aXNpb24gNTE5ODIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9kb2N1bWVudC1h
dHRyaWJ1dGUtanMtbnVsbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02Niw3ICs2Niw2IEBACiAg
ICAgICAgICAgICAgICAgICAgIGRvY1RvVXNlOiBodG1sRG9jLAogICAgICAgICAgICAgICAgICAg
ICBhdHRyaWJ1dGVzOiBbCiAgICAgICAgICAgICAgICAgICAgICAgICB7bmFtZTogJ3RpdGxlJywg
ZXhwZWN0ZWROdWxsOiAnJ30sCi0gICAgICAgICAgICAgICAgICAgICAgICB7bmFtZTogJ2Nvb2tp
ZScsIGV4cGVjdGVkTnVsbDogJyd9LAogICAgICAgICAgICAgICAgICAgICAgICAge25hbWU6ICdi
Z0NvbG9yJywgZXhwZWN0ZWROdWxsOiAnJ30sCiAgICAgICAgICAgICAgICAgICAgICAgICB7bmFt
ZTogJ2ZnQ29sb3InLCBleHBlY3RlZE51bGw6ICcnfSwKICAgICAgICAgICAgICAgICAgICAgICAg
IHtuYW1lOiAnYWxpbmtDb2xvcicsIGV4cGVjdGVkTnVsbDogJyd9LApJbmRleDogTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL2NyZWF0ZS1kb2N1bWVudC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVz
L2NyZWF0ZS1kb2N1bWVudC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDUxOTgyKQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL2NyZWF0ZS1kb2N1bWVudC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMCwwIEBACi1SdW5uaW5nIHRlc3QuCi14bWxE
b2MuY29va2llOgotaHRtbERvYy5jb29raWU6Ci1UZXN0IGNvbXBsZXRlLgpJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL2NyZWF0ZS1kb2N1bWVudC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29va2llcy9jcmVh
dGUtZG9jdW1lbnQuaHRtbAkocmV2aXNpb24gNTE5ODIpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2Nvb2tpZXMvY3JlYXRlLWRvY3VtZW50Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsNDYgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotLy8g
V2UgZG9uJ3QgZXhwZWN0IHRoaXMgY29va2llIHRvIGJlIHZpc2libGUsIGJ1dCB3ZSBzZXQgdGhp
cyB2YWx1ZSBmb3IKLS8vIGNvbnNpc3RlbmN5IHdpdGggb3RoZXIgdGVzdHMgaW4gdGhpcyBkaXJl
Y3RvcnkuCi1kb2N1bWVudC5jb29raWUgPSAic2VjcmV0PVBBU1MiOwotCi1mdW5jdGlvbiBsb2co
bXNnKSB7Ci0gICAgdmFyIGxpbmUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAg
ICBsaW5lLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1zZykpOwotICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQobGluZSk7Ci19Ci0K
LWZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgbG9nKCJSdW5uaW5nIHRlc3QuIik7Ci0KLSAgICBp
ZiAoZG9jdW1lbnQuaW1wbGVtZW50YXRpb24uY3JlYXRlRG9jdW1lbnQpIHsKLSAgICAgICAgdmFy
IHhtbERvYyA9IGRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3VtZW50KG51bGwsIG51
bGwsIG51bGwpOwotICAgICAgICBsb2coInhtbERvYy5jb29raWU6ICIgKyB4bWxEb2MuY29va2ll
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBsb2coImRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNy
ZWF0ZURvY3VtZW50IHVuYXZhaWxhYmxlLiIpOwotICAgIH0KLQotICAgIGlmIChkb2N1bWVudC5p
bXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQpIHsKLSAgICAgICAgdmFyIGh0bWxEb2Mg
PSBkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoJ0EgVGl0bGUnKTsK
LSAgICAgICAgbG9nKCJodG1sRG9jLmNvb2tpZTogIiArIGh0bWxEb2MuY29va2llKTsKLSAgICB9
IGVsc2UgewotICAgICAgICBsb2coImRvY3VtZW50LmltcGxlbWVudGF0aW9uLmNyZWF0ZURvY3Vt
ZW50IHVuYXZhaWxhYmxlLiIpOwotICAgIH0KLQotICAgIGxvZygiVGVzdCBjb21wbGV0ZS4iKTsK
LQotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkg
b25sb2FkPSJydW5UZXN0KCkiPgotPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Ci08L2JvZHk+Ci08
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMveG1s
aHR0cHJlcXVlc3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvY29va2llcy94bWxodHRwcmVxdWVzdC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDUxOTgyKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb29raWVzL3ht
bGh0dHByZXF1ZXN0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDYgQEAK
IFJ1bm5pbmcgdGVzdC4KIFNlbmRpbmcgWE1MSHR0cFJlcXVlc3QuLi4KIFJlc3BvbnNlIHJlY2Vp
dmVkLgoteGhyLnJlc3BvbnNlWE1MLmNvb2tpZToKK0V4Y2VwdGlvbiByYWlzZWQsIGFzIGV4cGVj
dGVkLgorY29va2llY29weSAocmVhZCBmcm9tIHhoci5yZXNwb25zZVhNTC5jb29raWUpOiBub3Qg
YXNzaWduZWQKIFRlc3QgY29tcGxldGUuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2Nvb2tpZXMveG1saHR0cHJlcXVlc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMveG1saHR0cHJlcXVlc3QuaHRtbAkocmV2
aXNpb24gNTE5ODIpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nvb2tpZXMv
eG1saHR0cHJlcXVlc3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjIsOCArMjIsMTUgQEAgZnVu
Y3Rpb24gcnVuVGVzdCgpIHsKICAgICBsb2coIlNlbmRpbmcgWE1MSHR0cFJlcXVlc3QuLi4iKTsK
ICAgICB4aHIuc2VuZChudWxsKTsKICAgICBsb2coIlJlc3BvbnNlIHJlY2VpdmVkLiIpOwotICAg
IGxvZygieGhyLnJlc3BvbnNlWE1MLmNvb2tpZTogIiArIHhoci5yZXNwb25zZVhNTC5jb29raWUp
OwotICAgIGlmICh4aHIucmVzcG9uc2VYTUwuY29va2llLmxlbmd0aCkKKyAgICB2YXIgY29va2ll
Y29weSA9ICJub3QgYXNzaWduZWQiOworICAgIHRyeSB7CisgICAgICAgIGNvb2tpZWNvcHkgPSB4
aHIucmVzcG9uc2VYTUwuY29va2llOworICAgIH0KKyAgICBjYXRjaCAoZSkgeworICAgICAgICBs
b2coIkV4Y2VwdGlvbiByYWlzZWQsIGFzIGV4cGVjdGVkLiIpOworICAgIH0KKyAgICBsb2coImNv
b2tpZWNvcHkgKHJlYWQgZnJvbSB4aHIucmVzcG9uc2VYTUwuY29va2llKTogIiArIGNvb2tpZWNv
cHkpOworICAgIGlmIChjb29raWVjb3B5ICE9ICJub3QgYXNzaWduZWQiKQogICAgICAgICBsb2co
IkJlaGF2aW9yIGNoYW5nZSBkZXRlY3RlZDogWE1MSHR0cFJlcXVlc3QucmVzcG9uc2VYTUwgY29v
a2llcyBhcmUgbm93IHZpc2libGUuIFBsZWFzZSBlbnN1cmUgdGhhdCBjb29raWVzIGFyZSBub3Qg
ZXhwb3NlZCBmb3IgY3Jvc3Mtb3JpZ2luIHJlcXVlc3RzLCBhbmQgYWRkIGEgbmV3IHRlc3QgZm9y
IHRoYXQuIik7CiAgICAgbG9nKCJUZXN0IGNvbXBsZXRlLiIpOwogCg==
</data>
<flag name="review"
          id="26586"
          type_id="1"
          status="-"
          setter="mjs"
    />
          </attachment>
      

    </bug>

</bugzilla>