<?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>56942</bug_id>
          
          <creation_ts>2011-03-23 11:33:06 -0700</creation_ts>
          <short_desc>EventSource should only accept UTF-8 charset</short_desc>
          <delta_ts>2021-05-06 18:23:23 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=225416</see_also>
          <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="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>adam.bergkvist</cc>
    
    <cc>annevk</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ian</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>372288</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-03-23 11:33:06 -0700</bug_when>
    <thetext>This is a follow-up of bug45372. The discussion hinted at accepting UTF-8 charset  for EventSource (the charset mentioned in the spec) but failing other charset and logging it to the console. What got landed is not accepting any charset altogether.

This bug is about implementing the previous behavior for compatibility with some servers sending charset automatically (tomcat was mentioned).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372296</commentid>
    <comment_count>1</comment_count>
    <who name="Ian &apos;Hixie&apos; Hickson">ian</who>
    <bug_when>2011-03-23 11:39:42 -0700</bug_when>
    <thetext>Per spec only streams with the exact MIME type &quot;text/event-stream&quot; should be accepted. If you think other streams should be accepted too, please make sure to contact the mailing list as well so we can update the spec accordingly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372303</commentid>
    <comment_count>2</comment_count>
      <attachid>86657</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-03-23 11:46:20 -0700</bug_when>
    <thetext>Created attachment 86657
Proposed fix: Accept charset UTF-8, block and log any other charset</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372346</commentid>
    <comment_count>3</comment_count>
      <attachid>86657</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-23 12:31:10 -0700</bug_when>
    <thetext>Comment on attachment 86657
Proposed fix: Accept charset UTF-8, block and log any other charset

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

Does charset=&quot;UTF-8&quot; (with quotes) work? Could you add a test?

Pelase do send a message to HTML mailing list, as suggested by Ian.

&gt; LayoutTests/http/tests/eventsource/eventsource-content-type-charset-expected.txt:1
&gt; +CONSOLE MESSAGE: line 1: EventSource&apos;s response had a charset (&quot;Windows-1152&quot;) that is not UTF-8. Aborting the connection.

There are two failure subtests, so why only one console message?

&gt; Source/WebCore/page/EventSource.cpp:186
&gt; -    if (statusCode == 200 &amp;&amp; response.mimeType() == &quot;text/event-stream&quot;) {
&gt; +    bool isResponseValid = statusCode == 200 &amp;&amp; response.mimeType() == &quot;text/event-stream&quot;;

I&apos;m confused. The bug description sounds like we should be allowing more than we do today, but the actual fix makes code more restrictive. Which is correct?

Also, s/isResponseValid/responseIsValid/ (or isValidResponse).

&gt; Source/WebCore/page/EventSource.cpp:194
&gt; +            String message = &quot;EventSource&apos;s response had a charset (\&quot;&quot;;
&gt; +            message += charset;
&gt; +            message += &quot;\&quot;) that is not UTF-8. Aborting the connection.&quot;;

I think it&apos;s wrong grammar to have different tenses in one sentence (had... is).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372424</commentid>
    <comment_count>4</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-03-23 14:05:53 -0700</bug_when>
    <thetext>&gt; Does charset=&quot;UTF-8&quot; (with quotes) work? Could you add a test?

It does, I will add some testing along those lines.

&gt; Pelase do send a message to HTML mailing list, as suggested by Ian.

Sure. Ian, we are actually already allowing a charset in the Content-Type header.

&gt; &gt; LayoutTests/http/tests/eventsource/eventsource-content-type-charset-expected.txt:1
&gt; &gt; +CONSOLE MESSAGE: line 1: EventSource&apos;s response had a charset (&quot;Windows-1152&quot;) that is not UTF-8. Aborting the connection.
&gt; 
&gt; There are two failure subtests, so why only one console message?

There is 2 failures but only one failure involves an invalid charset. We only log the error when we have a valid mime-type but an invalid charset thus only one console message. Would like me to log also if the mime-type is wrong?

&gt; &gt; Source/WebCore/page/EventSource.cpp:186
&gt; &gt; -    if (statusCode == 200 &amp;&amp; response.mimeType() == &quot;text/event-stream&quot;) {
&gt; &gt; +    bool isResponseValid = statusCode == 200 &amp;&amp; response.mimeType() == &quot;text/event-stream&quot;;
&gt; 
&gt; I&apos;m confused. The bug description sounds like we should be allowing more than we do today, but the actual fix makes code more restrictive. Which is correct?

This is correct. This change is restricting the behavior to only accept UTF-8 as was suggested in the previous bug.

&gt; Also, s/isResponseValid/responseIsValid/ (or isValidResponse).

OK.

&gt; &gt; Source/WebCore/page/EventSource.cpp:194
&gt; &gt; +            String message = &quot;EventSource&apos;s response had a charset (\&quot;&quot;;
&gt; &gt; +            message += charset;
&gt; &gt; +            message += &quot;\&quot;) that is not UTF-8. Aborting the connection.&quot;;
&gt; 
&gt; I think it&apos;s wrong grammar to have different tenses in one sentence (had... is).

I will fix it to use present in both cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372446</commentid>
    <comment_count>5</comment_count>
      <attachid>86657</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-23 14:41:52 -0700</bug_when>
    <thetext>Comment on attachment 86657
Proposed fix: Accept charset UTF-8, block and log any other charset

&gt; This is correct. This change is restricting the behavior to only accept UTF-8 as was suggested in the previous bug.

OK. Please rename the bug in ChangeLog.

&gt; Would like me to log also if the mime-type is wrong?

Sounds like that would be useful for developers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372804</commentid>
    <comment_count>6</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-03-24 07:23:20 -0700</bug_when>
    <thetext>Brought this change to the WHATWG group: http://lists.whatwg.org/htdig.cgi/whatwg-whatwg.org/2011-March/031003.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>374960</commentid>
    <comment_count>7</comment_count>
      <attachid>87251</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-03-28 19:50:00 -0700</bug_when>
    <thetext>Created attachment 87251
New patch following Alexey&apos;s comments: Only accept UTF-8 and log most rejection cases

As the proposal did raise any objection, here is the updated patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>375219</commentid>
    <comment_count>8</comment_count>
      <attachid>87251</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-03-29 05:54:47 -0700</bug_when>
    <thetext>Comment on attachment 87251
New patch following Alexey&apos;s comments: Only accept UTF-8 and log most rejection cases

Rejecting attachment 87251 from commit-queue.

Failed to run &quot;[&apos;./Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=cr-jail-8&apos;, &apos;build-...&quot; exit_code: 2

Last 500 characters of output:
/tests/appcache ...........................................................
http/tests/cache ........
http/tests/canvas/philip/tests ..........
http/tests/canvas/webgl .
http/tests/cookies .....
http/tests/css ....
http/tests/eventsource ..
http/tests/eventsource/eventsource-content-type-charset.html -&gt; failed

Exiting early after 1 failures. 22089 tests run.
569.43s total testing time

22088 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
14 test cases (&lt;1%) had stderr output

Full output: http://queues.webkit.org/results/8284290</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377150</commentid>
    <comment_count>9</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-03-31 07:50:41 -0700</bug_when>
    <thetext>&gt; http/tests/eventsource/eventsource-content-type-charset.html -&gt; failed

The cause of failure is that the Mac implementation of ResourceResponse::textEncodingName does not strip the leading and trailing quotes in the charset. Instead it escapes them and we fail the comparison to &quot;utf-8&quot;. Qt, for example, does remove them.

I could add a work-around for that or just go ahead and fix the output of Mac, documenting what we expect textEncodingName to return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377201</commentid>
    <comment_count>10</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-03-31 09:04:36 -0700</bug_when>
    <thetext>&gt; The cause of failure is that the Mac implementation of ResourceResponse::textEncodingName does not strip the leading and trailing quotes in the charset.

I thought that I added a workaround for this in bug 46573. What did go wrong?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>377412</commentid>
    <comment_count>11</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-03-31 13:47:49 -0700</bug_when>
    <thetext>&gt; I thought that I added a workaround for this in bug 46573. What did go wrong?

I haven&apos;t had time to debug the problem so I don&apos;t know what&apos;s going on yet. I will look into why this is happening here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378621</commentid>
    <comment_count>12</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-04-03 19:50:13 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; I thought that I added a workaround for this in bug 46573. What did go wrong?
&gt; 
&gt; I haven&apos;t had time to debug the problem so I don&apos;t know what&apos;s going on yet. I will look into why this is happening here.

Alexey, the problem is not in WebKit. It looks like PHP on Mac escapes quotes in the charset with slashes which is causing the problem (I had to look at some network capture to find this out). I will be posting an updated patch to work around this misbehavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378622</commentid>
    <comment_count>13</comment_count>
      <attachid>88028</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-04-03 19:53:02 -0700</bug_when>
    <thetext>Created attachment 88028
Same as previously - with a work-around for some PHP escaping issues</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378623</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-03 19:55:32 -0700</bug_when>
    <thetext>Attachment 88028 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1

LayoutTests/ChangeLog-2011-02-16:27403:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>378630</commentid>
    <comment_count>15</comment_count>
      <attachid>88028</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-03 21:02:38 -0700</bug_when>
    <thetext>Comment on attachment 88028
Same as previously - with a work-around for some PHP escaping issues

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

&gt; LayoutTests/ChangeLog:21
&gt; +        in the URL. Also added a work-around a bug in PHP.

I don&apos;t think that it&apos;s a bug. A quick web search suggested that it&apos;s a configuration option, and we should do something like:

if (get_magic_quotes_gpc()){
    $value = stripslashes($value);
}

See also: &lt;http://php.net/manual/en/function.stripslashes.php&gt;, &lt;http://php.net/manual/en/function.get-magic-quotes-gpc.php&gt;.

Please use the proposed pattern, and fix the ChangeLog accordingly.

&gt; LayoutTests/http/tests/eventsource/eventsource-content-type-charset.html:35
&gt; +                     &apos;text/event-stream; charset=windows-1152&apos;,

Did you mean to use a non-existent charset here? If so, 1152 is an overly subtle way to express that.

I think that we should test windows-1251 or us-ascii.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>380607</commentid>
    <comment_count>16</comment_count>
      <attachid>87251</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2011-04-06 10:46:09 -0700</bug_when>
    <thetext>Comment on attachment 87251
New patch following Alexey&apos;s comments: Only accept UTF-8 and log most rejection cases

Cleared Alexey Proskuryakov&apos;s review+ from obsolete attachment 87251 so that this bug does not appear in http://webkit.org/pending-commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381879</commentid>
    <comment_count>17</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-04-07 17:35:12 -0700</bug_when>
    <thetext>&gt; &gt; LayoutTests/ChangeLog:21
&gt; &gt; +        in the URL. Also added a work-around a bug in PHP.
&gt; 
&gt; I don&apos;t think that it&apos;s a bug. A quick web search suggested that it&apos;s a configuration option, and we should do something like:
&gt; 
&gt; if (get_magic_quotes_gpc()){
&gt;     $value = stripslashes($value);
&gt; }
&gt; 
&gt; See also: &lt;http://php.net/manual/en/function.stripslashes.php&gt;, &lt;http://php.net/manual/en/function.get-magic-quotes-gpc.php&gt;.

Indeed. I should have expected some different options on Mac. Do we know why the configuration is different between Linux and Mac? It looks like something that will bite us at some point and would like to fix.

&gt; &gt; LayoutTests/http/tests/eventsource/eventsource-content-type-charset.html:35
&gt; &gt; +                     &apos;text/event-stream; charset=windows-1152&apos;,
&gt; 
&gt; Did you mean to use a non-existent charset here? If so, 1152 is an overly subtle way to express that.

No, this is a typo. Changed it to windows-1251 as the logic does not care if the charset exists or not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381887</commentid>
    <comment_count>18</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-04-07 17:49:36 -0700</bug_when>
    <thetext>&gt; Do we know why the configuration is different between Linux and Mac?

I don&apos;t know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381906</commentid>
    <comment_count>19</comment_count>
      <attachid>88746</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-04-07 18:10:09 -0700</bug_when>
    <thetext>Created attachment 88746
Same as previous but fixed Alexey&apos;s comments</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>381907</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-04-07 18:12:12 -0700</bug_when>
    <thetext>Attachment 88746 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/Chan...&quot; exit_code: 1

LayoutTests/ChangeLog-2011-02-16:27403:  ChangeLog entry has no bug number  [changelog/bugnumber] [5]
Total errors found: 1 in 8 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382031</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-07 23:42:30 -0700</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 88746:

fast/loader/recursive-before-unload-crash.html bug 50880 (authors: beidson@apple.com and eric@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382033</commentid>
    <comment_count>22</comment_count>
      <attachid>88746</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-07 23:45:50 -0700</bug_when>
    <thetext>Comment on attachment 88746
Same as previous but fixed Alexey&apos;s comments

Clearing flags on attachment: 88746

Committed r83260: &lt;http://trac.webkit.org/changeset/83260&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>382034</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-04-07 23:45:55 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86657</attachid>
            <date>2011-03-23 11:46:20 -0700</date>
            <delta_ts>2011-03-28 19:50:00 -0700</delta_ts>
            <desc>Proposed fix: Accept charset UTF-8, block and log any other charset</desc>
            <filename>bug56942-EventSource-charset-fix-1.diff</filename>
            <type>text/plain</type>
            <size>11797</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3NzBjNjBmLi42MmQ4OTZkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDMt
MjEgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QGNvZGVhdXJvcmEub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV2ZW50U291cmNlIHNo
b3VsZCBhY2NlcHQgVVRGLTggY2hhcnNldC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTU2OTQyCisKKyAgICAgICAgKiBDaGFuZ2VMb2ctMjAxMS0wMi0x
NjogQ29ycmVjdGVkIHByZXZpb3VzIGNvbW1pdCBtZXNzYWdlLiBQb2ludGVkIG91dCBieSBBbGV4
ZXkuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLWNvbnRl
bnQtdHlwZS1jaGFyc2V0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL2V2ZW50
c291cmNlL2V2ZW50c291cmNlLWNvbnRlbnQtdHlwZS1jaGFyc2V0Lmh0bWw6IEJlZWZlZCB1cCB0
aGlzIHRlc3QgYW5kIG1lcmdlZAorICAgICAgICB0aGUgZm9sbG93aW5nIHRlc3QgaW50byBpdC4g
VGhlIG5ldyB0ZXN0cyBjaGVjayB0aGF0IHdlIGRpc3BhdGNoIGEgY29uc29sZSBlcnJvciBpZiB0
aGUgY2hhcnNldCBpcworICAgICAgICB3cm9uZy4KKworICAgICAgICAqIGh0dHAvdGVzdHMvZXZl
bnRzb3VyY2UvZXZlbnRzb3VyY2UtY29udGVudC10eXBlLXRleHQtZXZlbnQtc3RyZWFtLWZvb2Jh
ci1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9ldmVudHNvdXJj
ZS9ldmVudHNvdXJjZS1jb250ZW50LXR5cGUtdGV4dC1ldmVudC1zdHJlYW0tZm9vYmFyLmh0bWw6
IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJjZXMvcmVz
cG9uc2UtY29udGVudC10eXBlLWNoYXJzZXQucGhwOgorICAgICAgICAqIGh0dHAvdGVzdHMvZXZl
bnRzb3VyY2UvcmVzb3VyY2VzL3Jlc3BvbnNlLWNvbnRlbnQtdHlwZS1ldmVudC1zdHJlYW0tZm9v
YmFyLnBocDogUmVtb3ZlZC4KKwogMjAxMS0wMy0yMSAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgTWFycmluIGFuZCBTaW1vbiBGcmFz
ZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2ctMjAxMS0wMi0xNiBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZy0yMDExLTAyLTE2CmluZGV4IGQxMTMyMDUuLmJkYzIxMDIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZy0yMDExLTAyLTE2CisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZy0yMDExLTAyLTE2CkBAIC0yNzQwMCw3ICsyNzQwMCw3IEBACiAgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTM3MgogCiAgICAgICAgIFRl
c3QgdGhhdCBhIENvbnRlbnQtVHlwZSBvZiAidGV4dC9ldmVudC1zdHJlYW07IGNoYXJzZXQ9VVRG
OCIgd29ya3MgY29ycmVjdGx5IGJ1dAotICAgICAgICAidGV4dC9ldmVudC1zdHJlYW0iIGRvZXMg
bm90IHdvcmsuCisgICAgICAgICJ0ZXh0L2V2ZW50LXN0cmVhbS1mb29iYXIiIGRvZXMgbm90IHdv
cmsuCiAKICAgICAgICAgKiBodHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLWNvbnRl
bnQtdHlwZS1jaGFyc2V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCiAgICAgICAgICogaHR0cC90ZXN0
cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1jb250ZW50LXR5cGUtY2hhcnNldC5odG1sOiBBZGRl
ZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRz
b3VyY2UtY29udGVudC10eXBlLWNoYXJzZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1jb250ZW50LXR5cGUtY2hhcnNldC1leHBl
Y3RlZC50eHQKaW5kZXggZWYxZjYzYi4uMzRkYjFjMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1jb250ZW50LXR5cGUtY2hhcnNldC1l
eHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVu
dHNvdXJjZS1jb250ZW50LXR5cGUtY2hhcnNldC1leHBlY3RlZC50eHQKQEAgLTEsNyArMSwxMCBA
QAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IEV2ZW50U291cmNlJ3MgcmVzcG9uc2UgaGFkIGEg
Y2hhcnNldCAoIldpbmRvd3MtMTE1MiIpIHRoYXQgaXMgbm90IFVURi04LiBBYm9ydGluZyB0aGUg
Y29ubmVjdGlvbi4KIFRlc3QgZm9yIGJ1ZyA0NTM3MjogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTQ1MzcyCiAKIFRlc3QgRXZlbnRTb3VyY2Ugd2l0aCBhbiBldmVudC1z
dHJlYW0gd2l0aCBhIENvbnRlbnQtVHlwZSB3aXRoIGEgY2hhcnNldCBpcyBzdGlsbCByZWNvZ25p
emVkLiBZb3Ugc2hvdWxkIHNlZSAyIFBBU1NFRCBiZWxvdyAob25lIGZvciBvcGVuIGFuZCBvbmUg
Zm9yIG1lc3NhZ2UpLgogCi1QQVNTRUQ6IGdvdCBvcGVuIGV2ZW50Ci1QQVNTRUQ6IGdvdCBtZXNz
YWdlIGV2ZW50CitQQVNTRUQ6IHRleHQvZXZlbnQtc3RyZWFtOyBjaGFyc2V0PVVURi04CitQQVNT
RUQ6IHRleHQvZXZlbnQtc3RyZWFtOyBjaGFyc2V0PVdpbmRvd3MtMTE1MgorUEFTU0VEOiB0ZXh0
L2V2ZW50LXN0cmVhbTsgY2hhcnNldD11dGYtOAorUEFTU0VEOiB0ZXh0L2V2ZW50LXN0cmVhbS1m
b29iYXI7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2Uv
ZXZlbnRzb3VyY2UtY29udGVudC10eXBlLWNoYXJzZXQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtY29udGVudC10eXBlLWNoYXJzZXQuaHRtbApp
bmRleCA0ZTA3ZmE4Li40YTNiYjBiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2V2ZW50c291cmNlL2V2ZW50c291cmNlLWNvbnRlbnQtdHlwZS1jaGFyc2V0Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1jb250ZW50LXR5
cGUtY2hhcnNldC5odG1sCkBAIC0xNCwyNyArMTQsNzcgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewogICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
IH0KIAotdmFyIGVzID0gbmV3IEV2ZW50U291cmNlKCJyZXNvdXJjZXMvcmVzcG9uc2UtY29udGVu
dC10eXBlLWNoYXJzZXQucGhwIik7CitmdW5jdGlvbiBzaG91bGRHZXRNZXNzYWdlKGVzKQorewor
ICAgIGlmIChlcy5zYXdPcGVuICYmIGVzLnNhd01lc3NhZ2UgJiYgIWVzLnNhd0Vycm9yKQorICAg
ICAgICBsb2coIlBBU1NFRDogIiArIGVzLmNvbnRlbnRUeXBlKTsKKyAgICBlbHNlCisgICAgICAg
IGxvZygiRkFJTEVEOiAiICsgZXMuY29udGVudFR5cGUpOworfQorCitmdW5jdGlvbiBzaG91bGRG
YWlsKGVzKQoreworICAgIGlmIChlcy5zYXdFcnJvciAmJiAhZXMuc2F3T3BlbiAmJiAhZXMuc2F3
TWVzc2FnZXMpCisgICAgICAgIGxvZygiUEFTU0VEOiAiICsgZXMuY29udGVudFR5cGUpOworICAg
IGVsc2UKKyAgICAgICAgbG9nKCJGQUlMRUQ6ICIgKyBlcy5jb250ZW50VHlwZSk7Cit9CisKK3Zh
ciBpID0gMDsKK3ZhciBjb250ZW50VHlwZXMgPSBbICd0ZXh0L2V2ZW50LXN0cmVhbTsgY2hhcnNl
dD1VVEYtOCcsCisgICAgICAgICAgICAgICAgICAgICAndGV4dC9ldmVudC1zdHJlYW07IGNoYXJz
ZXQ9V2luZG93cy0xMTUyJywKKyAgICAgICAgICAgICAgICAgICAgICd0ZXh0L2V2ZW50LXN0cmVh
bTsgY2hhcnNldD11dGYtOCcsCisgICAgICAgICAgICAgICAgICAgICAndGV4dC9ldmVudC1zdHJl
YW0tZm9vYmFyOycKKyAgICAgICAgICAgICAgICAgICBdOworCit2YXIgZXhwZWN0ZWRSZXN1bHRD
YWxsYmFjayA9IFsgc2hvdWxkR2V0TWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaG91bGRGYWlsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEdl
dE1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkRmFpbAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBdOwogCi1lcy5vbm9wZW4gPSBmdW5jdGlvbiAoZXZ0
KSB7Ci0gICAgbG9nKCJQQVNTRUQ6IGdvdCBvcGVuIGV2ZW50Iik7CitmdW5jdGlvbiBvcGVuTGlz
dGVuZXIoZXZ0KSB7CisgICAgZXZ0LnRhcmdldC5zYXdPcGVuID0gdHJ1ZTsKIH07CiAKLWVzLm9u
bWVzc2FnZSA9IGZ1bmN0aW9uIChldnQpIHsKLSAgICBsb2coIlBBU1NFRDogZ290IG1lc3NhZ2Ug
ZXZlbnQiKTsKLSAgICBlbmQoKTsKK2Z1bmN0aW9uIG1lc3NhZ2VMaXN0ZW5lcihldnQpIHsKKyAg
ICBldnQudGFyZ2V0LnNhd01lc3NhZ2UgPSB0cnVlOworICAgIGV2dC50YXJnZXQuc3VjY2Vzc0Nh
bGxiYWNrKGV2dC50YXJnZXQpOworICAgIGV2dC50YXJnZXQuY2xvc2UoKTsKKyAgICBuZXh0KCk7
CiB9OwogCi1lcy5vbmVycm9yID0gZnVuY3Rpb24gKCkgewotICAgIGxvZygiRkFJTEVEOiB1bmV4
cGVjdGVkIGVycm9yIGV2ZW50Iik7Ci0gICAgZW5kKCk7CitmdW5jdGlvbiBlcnJvckxpc3RlbmVy
KGV2dCkgeworICAgIGV2dC50YXJnZXQuc2F3RXJyb3IgPSB0cnVlOworICAgIGV2dC50YXJnZXQu
c3VjY2Vzc0NhbGxiYWNrKGV2dC50YXJnZXQpOworICAgIGV2dC50YXJnZXQuY2xvc2UoKTsKKyAg
ICBuZXh0KCk7CiB9OwogCitmdW5jdGlvbiBzdGFydFJlcXVlc3QoKQoreworICAgIGVzID0gbmV3
IEV2ZW50U291cmNlKCJyZXNvdXJjZXMvcmVzcG9uc2UtY29udGVudC10eXBlLWNoYXJzZXQucGhw
P2NvbnRlbnRUeXBlPSIgKyBlc2NhcGUoY29udGVudFR5cGVzW2ldKSk7CisgICAgZXMub25vcGVu
ID0gb3Blbkxpc3RlbmVyOworICAgIGVzLm9ubWVzc2FnZSA9IG1lc3NhZ2VMaXN0ZW5lcjsKKyAg
ICBlcy5vbmVycm9yID0gZXJyb3JMaXN0ZW5lcjsKKyAgICBlcy5zdWNjZXNzQ2FsbGJhY2sgPSBl
eHBlY3RlZFJlc3VsdENhbGxiYWNrW2ldOworICAgIGVzLmNvbnRlbnRUeXBlID0gY29udGVudFR5
cGVzW2ldOworICAgICsraTsKK30KKworZnVuY3Rpb24gbmV4dCgpIHsKKyAgICBpZiAoaSA+PSBj
b250ZW50VHlwZXMubGVuZ3RoKSB7CisgICAgICAgIGVuZCgpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIHN0YXJ0UmVxdWVzdCgpOworfQorCiBmdW5jdGlvbiBlbmQoKSB7Ci0gICAgZXMu
Y2xvc2UoKTsKICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQogICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiB9CitzdGFydFJlcXVlc3QoKTsKIDwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1jb250ZW50LXR5cGUtdGV4dC1ldmVudC1zdHJl
YW0tZm9vYmFyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3Vy
Y2UvZXZlbnRzb3VyY2UtY29udGVudC10eXBlLXRleHQtZXZlbnQtc3RyZWFtLWZvb2Jhci1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5ZDE0NjAuLjAwMDAwMDAK
LS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1jb250
ZW50LXR5cGUtdGV4dC1ldmVudC1zdHJlYW0tZm9vYmFyLWV4cGVjdGVkLnR4dAorKysgL2Rldi9u
dWxsCkBAIC0xLDYgKzAsMCBAQAotVGVzdCBmb3IgYnVnIDQ1MzcyOiBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUzNzIKLQotVGVzdCBFdmVudFNvdXJjZSB3aXRoIGFu
IGV2ZW50LXN0cmVhbSB3aXRoIGEgQ29udGVudC1UeXBlIG9mICJ0ZXh0L2V2ZW50LXN0cmVhbS1m
b29iYXIiIGlzIG5vdCByZWNvZ25pemVkIGFzIHZhbGlkLiBZb3Ugc2hvdWxkIHNlZSAxIFBBU1NF
RCBiZWxvdy4KLQotUEFTU0VECi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
ZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtY29udGVudC10eXBlLXRleHQtZXZlbnQtc3RyZWFtLWZv
b2Jhci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJj
ZS1jb250ZW50LXR5cGUtdGV4dC1ldmVudC1zdHJlYW0tZm9vYmFyLmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDZmY2ZlNWMuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1jb250ZW50LXR5cGUtdGV4dC1ldmVudC1z
dHJlYW0tZm9vYmFyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NCArMCwwIEBACi08IURPQ1RZ
UEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08cD5UZXN0IGZvciBidWcgPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MzcyIj40NTM3MjwvYT46IGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTM3MjwvcD4KLTxwPlRlc3QgRXZl
bnRTb3VyY2Ugd2l0aCBhbiBldmVudC1zdHJlYW0gd2l0aCBhIENvbnRlbnQtVHlwZSBvZiAidGV4
dC9ldmVudC1zdHJlYW0tZm9vYmFyIiBpcyBub3QgcmVjb2duaXplZCBhcyB2YWxpZC4gWW91IHNo
b3VsZCBzZWUgMSBQQVNTRUQgYmVsb3cuPC9wPgotPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KLTxz
Y3JpcHQ+Ci1mdW5jdGlvbiBsb2cobXNnKSB7Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
InJlc3VsdCIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Ci19Ci0KLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotfQotCi12YXIg
ZXMgPSBuZXcgRXZlbnRTb3VyY2UoInJlc291cmNlcy9yZXNwb25zZS1jb250ZW50LXR5cGUtdGV4
dC1zdHJlYW0tZm9vYmFyLnBocCIpOwotCi1lcy5vbm9wZW4gPSBmdW5jdGlvbiAoZXZ0KSB7Ci0g
ICAgbG9nKCJGQUlMRUQ6IGdvdCB1bmV4cGVjdGVkIG9wZW4gZXZlbnQiKTsKLSAgICBlbmQoKTsK
LX07Ci0KLWVzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChldnQpIHsKLSAgICBsb2coIkZBSUxFRDog
Z290IHVuZXhwZWN0ZWQgbWVzc2FnZSBldmVudCIpOwotICAgIGVuZCgpOwotfTsKLQotZXMub25l
cnJvciA9IGZ1bmN0aW9uICgpIHsKLSAgICBpZiAoZXMucmVhZHlTdGF0ZSA9PSBlcy5DTE9TRUQp
Ci0gICAgICAgIGxvZygiUEFTU0VEIik7Ci0gICAgZWxzZQotICAgICAgICBsb2coIkZBSUxFRDog
aW52YWxpZCBzdGF0ZSIpOwotICAgIGVuZCgpOwotfTsKLQotZnVuY3Rpb24gZW5kKCkgewotICAg
IGVzLmNsb3NlKCk7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwotfQotPC9zY3JpcHQ+Ci08L2Jv
ZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291
cmNlL3Jlc291cmNlcy9yZXNwb25zZS1jb250ZW50LXR5cGUtY2hhcnNldC5waHAgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL3Jlc291cmNlcy9yZXNwb25zZS1jb250ZW50LXR5
cGUtY2hhcnNldC5waHAKaW5kZXggYTdjZDQyZS4uNTI3OGIwOSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJjZXMvcmVzcG9uc2UtY29udGVudC10
eXBlLWNoYXJzZXQucGhwCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2Uv
cmVzb3VyY2VzL3Jlc3BvbnNlLWNvbnRlbnQtdHlwZS1jaGFyc2V0LnBocApAQCAtMSw1ICsxLDYg
QEAKIDw/cGhwCi1oZWFkZXIoIkNvbnRlbnQtVHlwZTogdGV4dC9ldmVudC1zdHJlYW07IGNoYXJz
ZXQ9VVRGOCIpOworJGNvbnRlbnRUeXBlID0gdXJsZGVjb2RlKCRfR0VUWyJjb250ZW50VHlwZSJd
KTsKK2hlYWRlcigiQ29udGVudC1UeXBlOiAkY29udGVudFR5cGUiKTsKID8+CiAKIGlkOiA3Nwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJjZXMv
cmVzcG9uc2UtY29udGVudC10eXBlLWV2ZW50LXN0cmVhbS1mb29iYXIucGhwIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJjZXMvcmVzcG9uc2UtY29udGVudC10eXBl
LWV2ZW50LXN0cmVhbS1mb29iYXIucGhwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
ZjFlNDYwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2Uv
cmVzb3VyY2VzL3Jlc3BvbnNlLWNvbnRlbnQtdHlwZS1ldmVudC1zdHJlYW0tZm9vYmFyLnBocAor
KysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotPD9waHAKLWhlYWRlcigiQ29udGVudC1UeXBl
OiB0ZXh0L2V2ZW50LXN0cmVhbS1mb29iYXIiKTsKLT8+Ci0KLWlkOiA3NwotcmV0cnk6IDMwMAot
ZGF0YTogaGVsbG8KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDdmZjA4MTMuLmI5ZTJjN2IgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOSBAQAorMjAxMS0wMy0yMyAgSnVsaWVuIENoYWZmcmFpeCAgPGpjaGFmZnJh
aXhAY29kZWF1cm9yYS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgRXZlbnRTb3VyY2Ugc2hvdWxkIGFjY2VwdCBVVEYtOCBjaGFyc2V0LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY5NDIKKworICAg
ICAgICBGb2xsb3dpbmcgdGhlIGRpc2N1c3Npb24gb24gYnVnIDQ1MzcyLCB0aGlzIGNoYW5nZSBp
bXBsZW1lbnRzIHRoZSByZWNvbW1lbmRlZAorICAgICAgICB3YXkgb2YgaGFuZGxpbmcgImNoYXJz
ZXQiLiBXZSBvbmx5IGFjY2VwdCBVVEYtOCBidXQgbm8gb3RoZXIgZW5jb2RpbmcuIFRoaXMgbWF0
Y2hlcworICAgICAgICB0aGUgZW5jb2Rpbmcgb2YgdGhlIEV2ZW50U291cmNlIGFuZCBhbHNvIG1h
eSBmaXggVG9tQ2F0IHRoYXQgYXV0b21hdGljYWxseSBzZW5kIHRoaXMKKyAgICAgICAgY2hhcnNl
dC4KKworICAgICAgICAqIHBhZ2UvRXZlbnRTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RXZlbnRTb3VyY2U6OmRpZFJlY2VpdmVSZXNwb25zZSk6IENoZWNrIHRoZSBjaGFyc2V0IGF0dHJp
YnV0ZSBhbmQgaWYgaXQgaXMKKyAgICAgICAgbm90IFVURi04LCBhYm9ydCB0aGUgY29ubmVjdGlv
biBhbmQgbG9nIHRoZSBlcnJvciB0byB0aGUgY29uc29sZS4KKwogMjAxMS0wMy0yMSAgQ2hyaXMg
RmxlaXphY2ggIDxjZmxlaXphY2hAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNwcAppbmRleCAwOGQwODY4Li5m
ZDFmZTdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291cmNlLmNwcApAQCAtMiw2ICsyLDcgQEAK
ICAqIENvcHlyaWdodCAoQykgMjAwOSBFcmljc3NvbiBBQgogICogQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqIENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTEsIENvZGUgQXVyb3JhIEZvcnVtLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00MCwxMSArNDEsMTMg
QEAKICNpbmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJFdmVudC5oIgogI2luY2x1ZGUg
IkV2ZW50RXhjZXB0aW9uLmgiCisjaW5jbHVkZSAiSFRUUFBhcnNlcnMuaCIKICNpbmNsdWRlICJQ
bGF0Zm9ybVN0cmluZy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIlJl
c291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNpbmNsdWRlICJS
ZXNvdXJjZVJlc3BvbnNlLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgiCiAjaW5jbHVk
ZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKQEAgLTE4MCw3ICsxODMs
MjAgQEAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogRXZlbnRTb3VyY2U6OnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSBjb25zdAogdm9pZCBFdmVudFNvdXJjZTo6ZGlkUmVjZWl2ZVJlc3BvbnNlKGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIGludCBzdGF0dXNDb2RlID0g
cmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKTsKLSAgICBpZiAoc3RhdHVzQ29kZSA9PSAyMDAgJiYg
cmVzcG9uc2UubWltZVR5cGUoKSA9PSAidGV4dC9ldmVudC1zdHJlYW0iKSB7CisgICAgYm9vbCBp
c1Jlc3BvbnNlVmFsaWQgPSBzdGF0dXNDb2RlID09IDIwMCAmJiByZXNwb25zZS5taW1lVHlwZSgp
ID09ICJ0ZXh0L2V2ZW50LXN0cmVhbSI7CisgICAgaWYgKGlzUmVzcG9uc2VWYWxpZCkgeworICAg
ICAgICAvLyBXZSBvbmx5IGFsbG93IFVURi04IGFzIHRoZSBjaGFyc2V0IGFzIGFuIGV4dGVuc2lv
biBvZiB0aGUgc3RhbmRhcmRpemVkIHByb3RvY29sLgorICAgICAgICBjb25zdCBTdHJpbmcmIGNo
YXJzZXQgPSByZXNwb25zZS50ZXh0RW5jb2RpbmdOYW1lKCk7CisgICAgICAgIGlzUmVzcG9uc2VW
YWxpZCA9IGNoYXJzZXQuaXNFbXB0eSgpIHx8IGVxdWFsSWdub3JpbmdDYXNlKGNoYXJzZXQsICJV
VEYtOCIpOworICAgICAgICBpZiAoIWlzUmVzcG9uc2VWYWxpZCkgeworICAgICAgICAgICAgU3Ry
aW5nIG1lc3NhZ2UgPSAiRXZlbnRTb3VyY2UncyByZXNwb25zZSBoYWQgYSBjaGFyc2V0IChcIiI7
CisgICAgICAgICAgICBtZXNzYWdlICs9IGNoYXJzZXQ7CisgICAgICAgICAgICBtZXNzYWdlICs9
ICJcIikgdGhhdCBpcyBub3QgVVRGLTguIEFib3J0aW5nIHRoZSBjb25uZWN0aW9uLiI7CisgICAg
ICAgICAgICAvLyBGSVhNRTogV2UgYXJlIG1pc3NpbmcgdGhlIHNvdXJjZSBsaW5lLgorICAgICAg
ICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJj
ZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAxLCBTdHJpbmco
KSwgMCk7CisgICAgICAgIH0KKyAgICB9CisgICAgaWYgKGlzUmVzcG9uc2VWYWxpZCkgewogICAg
ICAgICBtX3N0YXRlID0gT1BFTjsKICAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6Y3JlYXRl
KGV2ZW50TmFtZXMoKS5vcGVuRXZlbnQsIGZhbHNlLCBmYWxzZSkpOwogICAgIH0gZWxzZSB7Cg==
</data>
<flag name="review"
          id="78963"
          type_id="1"
          status="-"
          setter="ap"
    />
    <flag name="commit-queue"
          id="78964"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>87251</attachid>
            <date>2011-03-28 19:50:00 -0700</date>
            <delta_ts>2011-04-06 10:46:09 -0700</delta_ts>
            <desc>New patch following Alexey&apos;s comments: Only accept UTF-8 and log most rejection cases</desc>
            <filename>bug56942-EventSource-charset-fix-2.diff</filename>
            <type>text/plain</type>
            <size>14150</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4MTgyODhlLi45NzRjZTc5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTEtMDMt
MjggIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QGNvZGVhdXJvcmEub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV2ZW50U291cmNlIHNo
b3VsZCBvbmx5IGFjY2VwdCBVVEYtOCBjaGFyc2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Njk0MgorCisgICAgICAgICogQ2hhbmdlTG9nLTIwMTEt
MDItMTY6IENvcnJlY3RlZCBwcmV2aW91cyBjb21taXQgbWVzc2FnZS4gUG9pbnRlZCBvdXQgYnkg
QWxleGV5LgorCisgICAgICAgICogaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1i
YWQtbWltZS10eXBlLWV4cGVjdGVkLnR4dDogVXBkYXRlZCB3aXRoIHRoZSBuZXcgY29uc29sZSBt
ZXNzYWdlLgorCisgICAgICAgICogaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1j
b250ZW50LXR5cGUtY2hhcnNldC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9l
dmVudHNvdXJjZS9ldmVudHNvdXJjZS1jb250ZW50LXR5cGUtY2hhcnNldC5odG1sOiBCZWVmZWQg
dXAgdGhpcyB0ZXN0IGFuZCBtZXJnZWQKKyAgICAgICAgdGhlIGZvbGxvd2luZyB0ZXN0IGludG8g
aXQuIFRoZSBuZXcgdGVzdHMgY2hlY2sgdGhhdCB3ZSBkaXNwYXRjaCBhIGNvbnNvbGUgZXJyb3Ig
aWYgdGhlIGNoYXJzZXQgaXMKKyAgICAgICAgd3JvbmcuCisKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2V2ZW50c291cmNlL2V2ZW50c291cmNlLWNvbnRlbnQtdHlwZS10ZXh0LWV2ZW50LXN0cmVhbS1m
b29iYXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZXZlbnRz
b3VyY2UvZXZlbnRzb3VyY2UtY29udGVudC10eXBlLXRleHQtZXZlbnQtc3RyZWFtLWZvb2Jhci5o
dG1sOiBSZW1vdmVkLgorCisgICAgICAgICogaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJj
ZXMvcmVzcG9uc2UtY29udGVudC10eXBlLWNoYXJzZXQucGhwOgorICAgICAgICAqIGh0dHAvdGVz
dHMvZXZlbnRzb3VyY2UvcmVzb3VyY2VzL3Jlc3BvbnNlLWNvbnRlbnQtdHlwZS1ldmVudC1zdHJl
YW0tZm9vYmFyLnBocDogUmVtb3ZlZC4KKwogMjAxMS0wMy0yOCAgSmVzc2llIEJlcmxpbiAgPGpi
ZXJsaW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhbm90aGVyIHRlc3QgdGhhdCBkZXBlbmRz
IG9uIEV2ZW50U2VuZGVyIHRvIHRoZSBtYWMtd2syIFNraXBwZWQgZmlsZS4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZy0yMDExLTAyLTE2IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
LTIwMTEtMDItMTYKaW5kZXggZDExMzIwNS4uYmRjMjEwMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nLTIwMTEtMDItMTYKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nLTIwMTEt
MDItMTYKQEAgLTI3NDAwLDcgKzI3NDAwLDcgQEAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MzcyCiAKICAgICAgICAgVGVzdCB0aGF0IGEgQ29udGVu
dC1UeXBlIG9mICJ0ZXh0L2V2ZW50LXN0cmVhbTsgY2hhcnNldD1VVEY4IiB3b3JrcyBjb3JyZWN0
bHkgYnV0Ci0gICAgICAgICJ0ZXh0L2V2ZW50LXN0cmVhbSIgZG9lcyBub3Qgd29yay4KKyAgICAg
ICAgInRleHQvZXZlbnQtc3RyZWFtLWZvb2JhciIgZG9lcyBub3Qgd29yay4KIAogICAgICAgICAq
IGh0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtY29udGVudC10eXBlLWNoYXJzZXQt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KICAgICAgICAgKiBodHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2
ZW50c291cmNlLWNvbnRlbnQtdHlwZS1jaGFyc2V0Lmh0bWw6IEFkZGVkLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1iYWQtbWltZS10
eXBlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZl
bnRzb3VyY2UtYmFkLW1pbWUtdHlwZS1leHBlY3RlZC50eHQKaW5kZXggMjAzNDFiYy4uNmQ1YzVi
YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNv
dXJjZS1iYWQtbWltZS10eXBlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLWJhZC1taW1lLXR5cGUtZXhwZWN0ZWQudHh0CkBA
IC0xLDMgKzEsNCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IEV2ZW50U291cmNlJ3MgcmVz
cG9uc2UgaGFzIGEgTUlNRSB0eXBlICgidGV4dC9ib2d1cyIpIHRoYXQgaXMgbm90ICJ0ZXh0L2V2
ZW50LXN0cmVhbSIuIEFib3J0aW5nIHRoZSBjb25uZWN0aW9uLgogVGVzdCBFdmVudFNvdXJjZSB3
aXRoIGFuIGV2ZW50LXN0cmVhbSB3aXRoIGluY29ycmVjdCBtaW1lLXR5cGUuCiAKIFBBU1MKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2Ut
Y29udGVudC10eXBlLWNoYXJzZXQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1jb250ZW50LXR5cGUtY2hhcnNldC1leHBlY3RlZC50
eHQKaW5kZXggZWYxZjYzYi4uODk4ODRlOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1jb250ZW50LXR5cGUtY2hhcnNldC1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJj
ZS1jb250ZW50LXR5cGUtY2hhcnNldC1leHBlY3RlZC50eHQKQEAgLTEsNyArMSwxMiBAQAorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDE6IEV2ZW50U291cmNlJ3MgcmVzcG9uc2UgaGFzIGEgY2hhcnNl
dCAoIldpbmRvd3MtMTE1MiIpIHRoYXQgaXMgbm90IFVURi04LiBBYm9ydGluZyB0aGUgY29ubmVj
dGlvbi4KK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBFdmVudFNvdXJjZSdzIHJlc3BvbnNlIGhh
cyBhIE1JTUUgdHlwZSAoInRleHQvZXZlbnQtc3RyZWFtLWZvb2JhciIpIHRoYXQgaXMgbm90ICJ0
ZXh0L2V2ZW50LXN0cmVhbSIuIEFib3J0aW5nIHRoZSBjb25uZWN0aW9uLgogVGVzdCBmb3IgYnVn
IDQ1MzcyOiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUzNzIKIAot
VGVzdCBFdmVudFNvdXJjZSB3aXRoIGFuIGV2ZW50LXN0cmVhbSB3aXRoIGEgQ29udGVudC1UeXBl
IHdpdGggYSBjaGFyc2V0IGlzIHN0aWxsIHJlY29nbml6ZWQuIFlvdSBzaG91bGQgc2VlIDIgUEFT
U0VEIGJlbG93IChvbmUgZm9yIG9wZW4gYW5kIG9uZSBmb3IgbWVzc2FnZSkuCitUZXN0IEV2ZW50
U291cmNlIHdpdGggYW4gZXZlbnQtc3RyZWFtIHdpdGggYSBDb250ZW50LVR5cGUgd2l0aCBhIGNo
YXJzZXQgaXMgc3RpbGwgcmVjb2duaXplZC4gWW91IHNob3VsZCBzZWUgNSBQQVNTRUQgYmVsb3cu
CiAKLVBBU1NFRDogZ290IG9wZW4gZXZlbnQKLVBBU1NFRDogZ290IG1lc3NhZ2UgZXZlbnQKK1BB
U1NFRDogdGV4dC9ldmVudC1zdHJlYW07IGNoYXJzZXQ9VVRGLTgKK1BBU1NFRDogdGV4dC9ldmVu
dC1zdHJlYW07IGNoYXJzZXQ9V2luZG93cy0xMTUyCitQQVNTRUQ6IHRleHQvZXZlbnQtc3RyZWFt
OyBjaGFyc2V0PXV0Zi04CitQQVNTRUQ6IHRleHQvZXZlbnQtc3RyZWFtOyBjaGFyc2V0PSJVVEYt
OCIKK1BBU1NFRDogdGV4dC9ldmVudC1zdHJlYW0tZm9vYmFyOwogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLWNvbnRlbnQtdHlwZS1j
aGFyc2V0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291
cmNlLWNvbnRlbnQtdHlwZS1jaGFyc2V0Lmh0bWwKaW5kZXggNGUwN2ZhOC4uODJjNGRmYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1j
b250ZW50LXR5cGUtY2hhcnNldC5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZl
bnRzb3VyY2UvZXZlbnRzb3VyY2UtY29udGVudC10eXBlLWNoYXJzZXQuaHRtbApAQCAtMiw3ICsy
LDcgQEAKIDxodG1sPgogPGJvZHk+CiA8cD5UZXN0IGZvciBidWcgPGEgaHJlZj0iaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MzcyIj40NTM3MjwvYT46IGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTM3MjwvcD4KLTxwPlRlc3QgRXZlbnRT
b3VyY2Ugd2l0aCBhbiBldmVudC1zdHJlYW0gd2l0aCBhIENvbnRlbnQtVHlwZSB3aXRoIGEgY2hh
cnNldCBpcyBzdGlsbCByZWNvZ25pemVkLiBZb3Ugc2hvdWxkIHNlZSAyIFBBU1NFRCBiZWxvdyAo
b25lIGZvciBvcGVuIGFuZCBvbmUgZm9yIG1lc3NhZ2UpLjwvcD4KKzxwPlRlc3QgRXZlbnRTb3Vy
Y2Ugd2l0aCBhbiBldmVudC1zdHJlYW0gd2l0aCBhIENvbnRlbnQtVHlwZSB3aXRoIGEgY2hhcnNl
dCBpcyBzdGlsbCByZWNvZ25pemVkLiBZb3Ugc2hvdWxkIHNlZSA1IFBBU1NFRCBiZWxvdy48L3A+
CiA8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgogPHNjcmlwdD4KIGZ1bmN0aW9uIGxvZyhtc2cpIHsK
QEAgLTE0LDI3ICsxNCw3OSBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwogfQogCi12YXIgZXMgPSBu
ZXcgRXZlbnRTb3VyY2UoInJlc291cmNlcy9yZXNwb25zZS1jb250ZW50LXR5cGUtY2hhcnNldC5w
aHAiKTsKK2Z1bmN0aW9uIHNob3VsZEdldE1lc3NhZ2UoZXMpCit7CisgICAgaWYgKGVzLnNhd09w
ZW4gJiYgZXMuc2F3TWVzc2FnZSAmJiAhZXMuc2F3RXJyb3IpCisgICAgICAgIGxvZygiUEFTU0VE
OiAiICsgZXMuY29udGVudFR5cGUpOworICAgIGVsc2UKKyAgICAgICAgbG9nKCJGQUlMRUQ6ICIg
KyBlcy5jb250ZW50VHlwZSk7Cit9CisKK2Z1bmN0aW9uIHNob3VsZEZhaWwoZXMpCit7CisgICAg
aWYgKGVzLnNhd0Vycm9yICYmICFlcy5zYXdPcGVuICYmICFlcy5zYXdNZXNzYWdlcykKKyAgICAg
ICAgbG9nKCJQQVNTRUQ6ICIgKyBlcy5jb250ZW50VHlwZSk7CisgICAgZWxzZQorICAgICAgICBs
b2coIkZBSUxFRDogIiArIGVzLmNvbnRlbnRUeXBlKTsKK30KKwordmFyIGkgPSAwOwordmFyIGNv
bnRlbnRUeXBlcyA9IFsgJ3RleHQvZXZlbnQtc3RyZWFtOyBjaGFyc2V0PVVURi04JywKKyAgICAg
ICAgICAgICAgICAgICAgICd0ZXh0L2V2ZW50LXN0cmVhbTsgY2hhcnNldD1XaW5kb3dzLTExNTIn
LAorICAgICAgICAgICAgICAgICAgICAgJ3RleHQvZXZlbnQtc3RyZWFtOyBjaGFyc2V0PXV0Zi04
JywKKyAgICAgICAgICAgICAgICAgICAgICd0ZXh0L2V2ZW50LXN0cmVhbTsgY2hhcnNldD0iVVRG
LTgiJywKKyAgICAgICAgICAgICAgICAgICAgICd0ZXh0L2V2ZW50LXN0cmVhbS1mb29iYXI7Jwor
ICAgICAgICAgICAgICAgICAgIF07CisKK3ZhciBleHBlY3RlZFJlc3VsdENhbGxiYWNrID0gWyBz
aG91bGRHZXRNZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEZh
aWwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkR2V0TWVzc2FnZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRHZXRNZXNzYWdlLAorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEZhaWwKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgXTsKIAotZXMub25vcGVuID0gZnVuY3Rpb24gKGV2dCkgewotICAgIGxvZygiUEFTU0VE
OiBnb3Qgb3BlbiBldmVudCIpOworZnVuY3Rpb24gb3Blbkxpc3RlbmVyKGV2dCkgeworICAgIGV2
dC50YXJnZXQuc2F3T3BlbiA9IHRydWU7CiB9OwogCi1lcy5vbm1lc3NhZ2UgPSBmdW5jdGlvbiAo
ZXZ0KSB7Ci0gICAgbG9nKCJQQVNTRUQ6IGdvdCBtZXNzYWdlIGV2ZW50Iik7Ci0gICAgZW5kKCk7
CitmdW5jdGlvbiBtZXNzYWdlTGlzdGVuZXIoZXZ0KSB7CisgICAgZXZ0LnRhcmdldC5zYXdNZXNz
YWdlID0gdHJ1ZTsKKyAgICBldnQudGFyZ2V0LnN1Y2Nlc3NDYWxsYmFjayhldnQudGFyZ2V0KTsK
KyAgICBldnQudGFyZ2V0LmNsb3NlKCk7CisgICAgbmV4dCgpOwogfTsKIAotZXMub25lcnJvciA9
IGZ1bmN0aW9uICgpIHsKLSAgICBsb2coIkZBSUxFRDogdW5leHBlY3RlZCBlcnJvciBldmVudCIp
OwotICAgIGVuZCgpOworZnVuY3Rpb24gZXJyb3JMaXN0ZW5lcihldnQpIHsKKyAgICBldnQudGFy
Z2V0LnNhd0Vycm9yID0gdHJ1ZTsKKyAgICBldnQudGFyZ2V0LnN1Y2Nlc3NDYWxsYmFjayhldnQu
dGFyZ2V0KTsKKyAgICBldnQudGFyZ2V0LmNsb3NlKCk7CisgICAgbmV4dCgpOwogfTsKIAorZnVu
Y3Rpb24gc3RhcnRSZXF1ZXN0KCkKK3sKKyAgICBlcyA9IG5ldyBFdmVudFNvdXJjZSgicmVzb3Vy
Y2VzL3Jlc3BvbnNlLWNvbnRlbnQtdHlwZS1jaGFyc2V0LnBocD9jb250ZW50VHlwZT0iICsgZXNj
YXBlKGNvbnRlbnRUeXBlc1tpXSkpOworICAgIGVzLm9ub3BlbiA9IG9wZW5MaXN0ZW5lcjsKKyAg
ICBlcy5vbm1lc3NhZ2UgPSBtZXNzYWdlTGlzdGVuZXI7CisgICAgZXMub25lcnJvciA9IGVycm9y
TGlzdGVuZXI7CisgICAgZXMuc3VjY2Vzc0NhbGxiYWNrID0gZXhwZWN0ZWRSZXN1bHRDYWxsYmFj
a1tpXTsKKyAgICBlcy5jb250ZW50VHlwZSA9IGNvbnRlbnRUeXBlc1tpXTsKKyAgICArK2k7Cit9
CisKK2Z1bmN0aW9uIG5leHQoKSB7CisgICAgaWYgKGkgPj0gY29udGVudFR5cGVzLmxlbmd0aCkg
eworICAgICAgICBlbmQoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBzdGFydFJlcXVl
c3QoKTsKK30KKwogZnVuY3Rpb24gZW5kKCkgewotICAgIGVzLmNsb3NlKCk7CiAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOwogfQorc3RhcnRSZXF1ZXN0KCk7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZl
bnRzb3VyY2UtY29udGVudC10eXBlLXRleHQtZXZlbnQtc3RyZWFtLWZvb2Jhci1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLWNvbnRl
bnQtdHlwZS10ZXh0LWV2ZW50LXN0cmVhbS1mb29iYXItZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA2OWQxNDYwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtY29udGVudC10eXBlLXRleHQtZXZlbnQt
c3RyZWFtLWZvb2Jhci1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAK
LVRlc3QgZm9yIGJ1ZyA0NTM3MjogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQ1MzcyCi0KLVRlc3QgRXZlbnRTb3VyY2Ugd2l0aCBhbiBldmVudC1zdHJlYW0gd2l0aCBh
IENvbnRlbnQtVHlwZSBvZiAidGV4dC9ldmVudC1zdHJlYW0tZm9vYmFyIiBpcyBub3QgcmVjb2du
aXplZCBhcyB2YWxpZC4gWW91IHNob3VsZCBzZWUgMSBQQVNTRUQgYmVsb3cuCi0KLVBBU1NFRAot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291
cmNlLWNvbnRlbnQtdHlwZS10ZXh0LWV2ZW50LXN0cmVhbS1mb29iYXIuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtY29udGVudC10eXBlLXRleHQt
ZXZlbnQtc3RyZWFtLWZvb2Jhci5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA2
ZmNmZTVjLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2Uv
ZXZlbnRzb3VyY2UtY29udGVudC10eXBlLXRleHQtZXZlbnQtc3RyZWFtLWZvb2Jhci5odG1sCisr
KyAvZGV2L251bGwKQEAgLTEsNDQgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxi
b2R5PgotPHA+VGVzdCBmb3IgYnVnIDxhIGhyZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD00NTM3MiI+NDUzNzI8L2E+OiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NDUzNzI8L3A+Ci08cD5UZXN0IEV2ZW50U291cmNlIHdpdGggYW4gZXZl
bnQtc3RyZWFtIHdpdGggYSBDb250ZW50LVR5cGUgb2YgInRleHQvZXZlbnQtc3RyZWFtLWZvb2Jh
ciIgaXMgbm90IHJlY29nbml6ZWQgYXMgdmFsaWQuIFlvdSBzaG91bGQgc2VlIDEgUEFTU0VEIGJl
bG93LjwvcD4KLTxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+Ci08c2NyaXB0PgotZnVuY3Rpb24gbG9n
KG1zZykgewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKS5pbm5lckhUTUwg
Kz0gbXNnICsgIjxicj4iOwotfQotCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotdmFyIGVzID0gbmV3IEV2ZW50U291cmNl
KCJyZXNvdXJjZXMvcmVzcG9uc2UtY29udGVudC10eXBlLXRleHQtc3RyZWFtLWZvb2Jhci5waHAi
KTsKLQotZXMub25vcGVuID0gZnVuY3Rpb24gKGV2dCkgewotICAgIGxvZygiRkFJTEVEOiBnb3Qg
dW5leHBlY3RlZCBvcGVuIGV2ZW50Iik7Ci0gICAgZW5kKCk7Ci19OwotCi1lcy5vbm1lc3NhZ2Ug
PSBmdW5jdGlvbiAoZXZ0KSB7Ci0gICAgbG9nKCJGQUlMRUQ6IGdvdCB1bmV4cGVjdGVkIG1lc3Nh
Z2UgZXZlbnQiKTsKLSAgICBlbmQoKTsKLX07Ci0KLWVzLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7
Ci0gICAgaWYgKGVzLnJlYWR5U3RhdGUgPT0gZXMuQ0xPU0VEKQotICAgICAgICBsb2coIlBBU1NF
RCIpOwotICAgIGVsc2UKLSAgICAgICAgbG9nKCJGQUlMRUQ6IGludmFsaWQgc3RhdGUiKTsKLSAg
ICBlbmQoKTsKLX07Ci0KLWZ1bmN0aW9uIGVuZCgpIHsKLSAgICBlcy5jbG9zZSgpOwotICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKLX0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJjZXMvcmVzcG9u
c2UtY29udGVudC10eXBlLWNoYXJzZXQucGhwIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVu
dHNvdXJjZS9yZXNvdXJjZXMvcmVzcG9uc2UtY29udGVudC10eXBlLWNoYXJzZXQucGhwCmluZGV4
IGE3Y2Q0MmUuLjUyNzhiMDkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZl
bnRzb3VyY2UvcmVzb3VyY2VzL3Jlc3BvbnNlLWNvbnRlbnQtdHlwZS1jaGFyc2V0LnBocAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL3Jlc291cmNlcy9yZXNwb25zZS1j
b250ZW50LXR5cGUtY2hhcnNldC5waHAKQEAgLTEsNSArMSw2IEBACiA8P3BocAotaGVhZGVyKCJD
b250ZW50LVR5cGU6IHRleHQvZXZlbnQtc3RyZWFtOyBjaGFyc2V0PVVURjgiKTsKKyRjb250ZW50
VHlwZSA9IHVybGRlY29kZSgkX0dFVFsiY29udGVudFR5cGUiXSk7CitoZWFkZXIoIkNvbnRlbnQt
VHlwZTogJGNvbnRlbnRUeXBlIik7CiA/PgogCiBpZDogNzcKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvcmVzb3VyY2VzL3Jlc3BvbnNlLWNvbnRlbnQtdHlw
ZS1ldmVudC1zdHJlYW0tZm9vYmFyLnBocCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRz
b3VyY2UvcmVzb3VyY2VzL3Jlc3BvbnNlLWNvbnRlbnQtdHlwZS1ldmVudC1zdHJlYW0tZm9vYmFy
LnBocApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZWYxZTQ2MC4uMDAwMDAwMAotLS0g
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL3Jlc291cmNlcy9yZXNwb25zZS1j
b250ZW50LXR5cGUtZXZlbnQtc3RyZWFtLWZvb2Jhci5waHAKKysrIC9kZXYvbnVsbApAQCAtMSw4
ICswLDAgQEAKLTw/cGhwCi1oZWFkZXIoIkNvbnRlbnQtVHlwZTogdGV4dC9ldmVudC1zdHJlYW0t
Zm9vYmFyIik7Ci0/PgotCi1pZDogNzcKLXJldHJ5OiAzMDAKLWRhdGE6IGhlbGxvCi0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCA0ZTI1ODlhLi44ZmY4ZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIw
MTEtMDMtMjggIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QGNvZGVhdXJvcmEub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV2ZW50U291
cmNlIHNob3VsZCBvbmx5IGFjY2VwdCBVVEYtOCBjaGFyc2V0CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Njk0MgorCisgICAgICAgIEZvbGxvd2luZyB0
aGUgZGlzY3Vzc2lvbiBvbiBidWcgNDUzNzIsIHRoaXMgY2hhbmdlIGltcGxlbWVudHMgdGhlIHJl
Y29tbWVuZGVkCisgICAgICAgIHdheSBvZiBoYW5kbGluZyAiY2hhcnNldCIuIFdlIG9ubHkgYWNj
ZXB0IFVURi04IGJ1dCBubyBvdGhlciBlbmNvZGluZy4gVGhpcyBtYXRjaGVzCisgICAgICAgIHRo
ZSBlbmNvZGluZyBvZiB0aGUgRXZlbnRTb3VyY2UgYW5kIGFsc28gbWF5IGZpeCBUb21DYXQgdGhh
dCBhdXRvbWF0aWNhbGx5IHNlbmQgdGhpcworICAgICAgICBjaGFyc2V0LgorCisgICAgICAgICog
cGFnZS9FdmVudFNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFdmVudFNvdXJjZTo6ZGlk
UmVjZWl2ZVJlc3BvbnNlKTogV2Ugbm93IGNoZWNrIHRoZSBjaGFyc2V0IGF0dHJpYnV0ZSBhbmQg
aWYgaXQgaXMKKyAgICAgICAgbm90IFVURi04LCBhYm9ydCB0aGUgY29ubmVjdGlvbiBhbmQgbG9n
IHRoZSBlcnJvciB0byB0aGUgY29uc29sZS4gQWxzbyB3ZSBsb2cgaWYgdGhlIE1JTUUgdHlwZQor
ICAgICAgICBpcyB3cm9uZyB0byB0aGUgY29uc29sZSB0byBoZWxwIGRlYnVnZ2luZyAob25seSBp
biB0aGUgY2FzZSBvZiBhbiBIVFRQIDIwMCByZXNwb25zZSB0aG91Z2gpLgorCiAyMDExLTAzLTI4
ICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
R2VvZmZyZXkgR2FyZW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50U291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuY3BwCmluZGV4IDA4ZDA4
NjguLjJhNTJiY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuY3BwCkBAIC0yLDYgKzIs
NyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA5IEVyaWNzc29uIEFCCiAgKiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgQ29kZSBBdXJvcmEgRm9ydW0uIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ1LDYgKzQ2
LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXF1
ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgorI2luY2x1ZGUgIlNjcmlwdENh
bGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaCIKICNpbmNsdWRl
ICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJUZXh0UmVzb3VyY2VEZWNvZGVy
LmgiCkBAIC0xODAsNyArMTgyLDMyIEBAIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIEV2ZW50U291
cmNlOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKIHZvaWQgRXZlbnRTb3VyY2U6OmRp
ZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKICAg
ICBpbnQgc3RhdHVzQ29kZSA9IHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCk7Ci0gICAgaWYgKHN0
YXR1c0NvZGUgPT0gMjAwICYmIHJlc3BvbnNlLm1pbWVUeXBlKCkgPT0gInRleHQvZXZlbnQtc3Ry
ZWFtIikgeworICAgIGJvb2wgbWltZVR5cGVJc1ZhbGlkID0gcmVzcG9uc2UubWltZVR5cGUoKSA9
PSAidGV4dC9ldmVudC1zdHJlYW0iOworICAgIGJvb2wgcmVzcG9uc2VJc1ZhbGlkID0gc3RhdHVz
Q29kZSA9PSAyMDAgJiYgbWltZVR5cGVJc1ZhbGlkOworICAgIGlmIChyZXNwb25zZUlzVmFsaWQp
IHsKKyAgICAgICAgY29uc3QgU3RyaW5nJiBjaGFyc2V0ID0gcmVzcG9uc2UudGV4dEVuY29kaW5n
TmFtZSgpOworICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgY2hhcnNldCwgdGhlIG9ubHkgYWxsb3dl
ZCB2YWx1ZSBpcyBVVEYtOCAoY2FzZS1pbnNlbnNpdGl2ZSkuIFRoaXMgc2hvdWxkIG1hdGNoCisg
ICAgICAgIC8vIHRoZSB1cGRhdGVkIEV2ZW50U291cmNlIHN0YW5kYXJkLgorICAgICAgICByZXNw
b25zZUlzVmFsaWQgPSBjaGFyc2V0LmlzRW1wdHkoKSB8fCBlcXVhbElnbm9yaW5nQ2FzZShjaGFy
c2V0LCAiVVRGLTgiKTsKKyAgICAgICAgaWYgKCFyZXNwb25zZUlzVmFsaWQpIHsKKyAgICAgICAg
ICAgIFN0cmluZyBtZXNzYWdlID0gIkV2ZW50U291cmNlJ3MgcmVzcG9uc2UgaGFzIGEgY2hhcnNl
dCAoXCIiOworICAgICAgICAgICAgbWVzc2FnZSArPSBjaGFyc2V0OworICAgICAgICAgICAgbWVz
c2FnZSArPSAiXCIpIHRoYXQgaXMgbm90IFVURi04LiBBYm9ydGluZyB0aGUgY29ubmVjdGlvbi4i
OworICAgICAgICAgICAgLy8gRklYTUU6IFdlIGFyZSBtaXNzaW5nIHRoZSBzb3VyY2UgbGluZS4K
KyAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkTWVzc2FnZShKU01lc3Nh
Z2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwg
U3RyaW5nKCksIDApOworICAgICAgICB9CisgICAgfSBlbHNlIHsKKyAgICAgICAgLy8gVG8ga2Vl
cCB0aGUgc2lnbmFsLXRvLW5vaXNlIHJhdGlvIGxvdywgd2Ugb25seSBsb2cgMjAwLXJlc3BvbnNl
IHdpdGggYW4gaW52YWxpZCBNSU1FIHR5cGUuCisgICAgICAgIGlmIChzdGF0dXNDb2RlID09IDIw
MCAmJiAhbWltZVR5cGVJc1ZhbGlkKSB7CisgICAgICAgICAgICBTdHJpbmcgbWVzc2FnZSA9ICJF
dmVudFNvdXJjZSdzIHJlc3BvbnNlIGhhcyBhIE1JTUUgdHlwZSAoXCIiOworICAgICAgICAgICAg
bWVzc2FnZSArPSByZXNwb25zZS5taW1lVHlwZSgpOworICAgICAgICAgICAgbWVzc2FnZSArPSAi
XCIpIHRoYXQgaXMgbm90IFwidGV4dC9ldmVudC1zdHJlYW1cIi4gQWJvcnRpbmcgdGhlIGNvbm5l
Y3Rpb24uIjsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBhcmUgbWlzc2luZyB0aGUgc291cmNl
IGxpbmUuCisgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZE1lc3NhZ2Uo
SlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsIG1lc3Nh
Z2UsIDEsIFN0cmluZygpLCAwKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIGlmIChyZXNwb25z
ZUlzVmFsaWQpIHsKICAgICAgICAgbV9zdGF0ZSA9IE9QRU47CiAgICAgICAgIGRpc3BhdGNoRXZl
bnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkub3BlbkV2ZW50LCBmYWxzZSwgZmFsc2UpKTsK
ICAgICB9IGVsc2Ugewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88028</attachid>
            <date>2011-04-03 19:53:02 -0700</date>
            <delta_ts>2011-04-07 18:10:09 -0700</delta_ts>
            <desc>Same as previously - with a work-around for some PHP escaping issues</desc>
            <filename>bug56942-EventSource-charset-fix-3.diff</filename>
            <type>text/plain</type>
            <size>14396</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA4MmEyOTExLi44MzIxMGUxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDQt
MDIgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QGNvZGVhdXJvcmEub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV2ZW50U291cmNlIHNo
b3VsZCBvbmx5IGFjY2VwdCBVVEYtOCBjaGFyc2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Njk0MgorCisgICAgICAgICogQ2hhbmdlTG9nLTIwMTEt
MDItMTY6IENvcnJlY3RlZCBwcmV2aW91cyBjb21taXQgbWVzc2FnZS4gUG9pbnRlZCBvdXQgYnkg
QWxleGV5LgorCisgICAgICAgICogaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1i
YWQtbWltZS10eXBlLWV4cGVjdGVkLnR4dDogVXBkYXRlZCB3aXRoIHRoZSBuZXcgY29uc29sZSBt
ZXNzYWdlLgorCisgICAgICAgICogaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1j
b250ZW50LXR5cGUtY2hhcnNldC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9l
dmVudHNvdXJjZS9ldmVudHNvdXJjZS1jb250ZW50LXR5cGUtY2hhcnNldC5odG1sOiBCZWVmZWQg
dXAgdGhpcyB0ZXN0IGFuZCBtZXJnZWQKKyAgICAgICAgdGhlIGZvbGxvd2luZyB0ZXN0IGludG8g
aXQuIFRoZSBuZXcgdGVzdHMgY2hlY2sgdGhhdCB3ZSBkaXNwYXRjaCBhIGNvbnNvbGUgZXJyb3Ig
aWYgdGhlIGNoYXJzZXQgaXMKKyAgICAgICAgd3JvbmcuCisKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2V2ZW50c291cmNlL2V2ZW50c291cmNlLWNvbnRlbnQtdHlwZS10ZXh0LWV2ZW50LXN0cmVhbS1m
b29iYXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZXZlbnRz
b3VyY2UvZXZlbnRzb3VyY2UtY29udGVudC10eXBlLXRleHQtZXZlbnQtc3RyZWFtLWZvb2Jhci5o
dG1sOiBSZW1vdmVkLgorCisgICAgICAgICogaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJj
ZXMvcmVzcG9uc2UtY29udGVudC10eXBlLWNoYXJzZXQucGhwOiBSZXR1cm4gdGhlIGNoYXJzZXQg
cGFzc2VkCisgICAgICAgIGluIHRoZSBVUkwuIEFsc28gYWRkZWQgYSB3b3JrLWFyb3VuZCBhIGJ1
ZyBpbiBQSFAuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL2V2ZW50c291cmNlL3Jlc291cmNlcy9y
ZXNwb25zZS1jb250ZW50LXR5cGUtZXZlbnQtc3RyZWFtLWZvb2Jhci5waHA6IFJlbW92ZWQuCisK
IDIwMTEtMDQtMDIgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXZpZXdlZCBieSBEYXZlIEh5YXR0LgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
LTIwMTEtMDItMTYgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2ctMjAxMS0wMi0xNgppbmRleCBkMTEz
MjA1Li5iZGMyMTAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2ctMjAxMS0wMi0x
NgorKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2ctMjAxMS0wMi0xNgpAQCAtMjc0MDAsNyArMjc0
MDAsNyBAQAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NDUzNzIKIAogICAgICAgICBUZXN0IHRoYXQgYSBDb250ZW50LVR5cGUgb2YgInRleHQvZXZlbnQt
c3RyZWFtOyBjaGFyc2V0PVVURjgiIHdvcmtzIGNvcnJlY3RseSBidXQKLSAgICAgICAgInRleHQv
ZXZlbnQtc3RyZWFtIiBkb2VzIG5vdCB3b3JrLgorICAgICAgICAidGV4dC9ldmVudC1zdHJlYW0t
Zm9vYmFyIiBkb2VzIG5vdCB3b3JrLgogCiAgICAgICAgICogaHR0cC90ZXN0cy9ldmVudHNvdXJj
ZS9ldmVudHNvdXJjZS1jb250ZW50LXR5cGUtY2hhcnNldC1leHBlY3RlZC50eHQ6IEFkZGVkLgog
ICAgICAgICAqIGh0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtY29udGVudC10eXBl
LWNoYXJzZXQuaHRtbDogQWRkZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2V2ZW50c291cmNlL2V2ZW50c291cmNlLWJhZC1taW1lLXR5cGUtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1iYWQtbWltZS10eXBl
LWV4cGVjdGVkLnR4dAppbmRleCAyMDM0MWJjLi42ZDVjNWJiIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLWJhZC1taW1lLXR5cGUtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRz
b3VyY2UtYmFkLW1pbWUtdHlwZS1leHBlY3RlZC50eHQKQEAgLTEsMyArMSw0IEBACitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgMTogRXZlbnRTb3VyY2UncyByZXNwb25zZSBoYXMgYSBNSU1FIHR5cGUg
KCJ0ZXh0L2JvZ3VzIikgdGhhdCBpcyBub3QgInRleHQvZXZlbnQtc3RyZWFtIi4gQWJvcnRpbmcg
dGhlIGNvbm5lY3Rpb24uCiBUZXN0IEV2ZW50U291cmNlIHdpdGggYW4gZXZlbnQtc3RyZWFtIHdp
dGggaW5jb3JyZWN0IG1pbWUtdHlwZS4KIAogUEFTUwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1jb250ZW50LXR5cGUtY2hhcnNldC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291
cmNlLWNvbnRlbnQtdHlwZS1jaGFyc2V0LWV4cGVjdGVkLnR4dAppbmRleCBlZjFmNjNiLi41OTEz
YTJmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50
c291cmNlLWNvbnRlbnQtdHlwZS1jaGFyc2V0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLWNvbnRlbnQtdHlwZS1jaGFyc2V0
LWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDEyIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTog
RXZlbnRTb3VyY2UncyByZXNwb25zZSBoYXMgYSBjaGFyc2V0ICgid2luZG93cy0xMTUyIikgdGhh
dCBpcyBub3QgVVRGLTguIEFib3J0aW5nIHRoZSBjb25uZWN0aW9uLgorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE6IEV2ZW50U291cmNlJ3MgcmVzcG9uc2UgaGFzIGEgTUlNRSB0eXBlICgidGV4dC9l
dmVudC1zdHJlYW0tZm9vYmFyIikgdGhhdCBpcyBub3QgInRleHQvZXZlbnQtc3RyZWFtIi4gQWJv
cnRpbmcgdGhlIGNvbm5lY3Rpb24uCiBUZXN0IGZvciBidWcgNDUzNzI6IGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTM3MgogCi1UZXN0IEV2ZW50U291cmNlIHdpdGgg
YW4gZXZlbnQtc3RyZWFtIHdpdGggYSBDb250ZW50LVR5cGUgd2l0aCBhIGNoYXJzZXQgaXMgc3Rp
bGwgcmVjb2duaXplZC4gWW91IHNob3VsZCBzZWUgMiBQQVNTRUQgYmVsb3cgKG9uZSBmb3Igb3Bl
biBhbmQgb25lIGZvciBtZXNzYWdlKS4KK1Rlc3QgRXZlbnRTb3VyY2Ugd2l0aCBhbiBldmVudC1z
dHJlYW0gd2l0aCBhIENvbnRlbnQtVHlwZSB3aXRoIGEgY2hhcnNldCBpcyBzdGlsbCByZWNvZ25p
emVkLiBZb3Ugc2hvdWxkIHNlZSA1IFBBU1NFRCBiZWxvdy4KIAotUEFTU0VEOiBnb3Qgb3BlbiBl
dmVudAotUEFTU0VEOiBnb3QgbWVzc2FnZSBldmVudAorUEFTU0VEOiB0ZXh0L2V2ZW50LXN0cmVh
bTsgY2hhcnNldD1VVEYtOAorUEFTU0VEOiB0ZXh0L2V2ZW50LXN0cmVhbTsgY2hhcnNldD13aW5k
b3dzLTExNTIKK1BBU1NFRDogdGV4dC9ldmVudC1zdHJlYW07IGNoYXJzZXQ9dXRmLTgKK1BBU1NF
RDogdGV4dC9ldmVudC1zdHJlYW07IGNoYXJzZXQ9IlVURi04IgorUEFTU0VEOiB0ZXh0L2V2ZW50
LXN0cmVhbS1mb29iYXI7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZl
bnRzb3VyY2UvZXZlbnRzb3VyY2UtY29udGVudC10eXBlLWNoYXJzZXQuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtY29udGVudC10eXBlLWNoYXJz
ZXQuaHRtbAppbmRleCA0ZTA3ZmE4Li5kNWVlYTQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLWNvbnRlbnQtdHlwZS1jaGFyc2V0Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1j
b250ZW50LXR5cGUtY2hhcnNldC5odG1sCkBAIC0yLDcgKzIsNyBAQAogPGh0bWw+CiA8Ym9keT4K
IDxwPlRlc3QgZm9yIGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NDUzNzIiPjQ1MzcyPC9hPjogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTQ1MzcyPC9wPgotPHA+VGVzdCBFdmVudFNvdXJjZSB3aXRoIGFuIGV2ZW50LXN0
cmVhbSB3aXRoIGEgQ29udGVudC1UeXBlIHdpdGggYSBjaGFyc2V0IGlzIHN0aWxsIHJlY29nbml6
ZWQuIFlvdSBzaG91bGQgc2VlIDIgUEFTU0VEIGJlbG93IChvbmUgZm9yIG9wZW4gYW5kIG9uZSBm
b3IgbWVzc2FnZSkuPC9wPgorPHA+VGVzdCBFdmVudFNvdXJjZSB3aXRoIGFuIGV2ZW50LXN0cmVh
bSB3aXRoIGEgQ29udGVudC1UeXBlIHdpdGggYSBjaGFyc2V0IGlzIHN0aWxsIHJlY29nbml6ZWQu
IFlvdSBzaG91bGQgc2VlIDUgUEFTU0VEIGJlbG93LjwvcD4KIDxkaXYgaWQ9InJlc3VsdCI+PC9k
aXY+CiA8c2NyaXB0PgogZnVuY3Rpb24gbG9nKG1zZykgewpAQCAtMTQsMjcgKzE0LDc5IEBAIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CiB9CiAKLXZhciBlcyA9IG5ldyBFdmVudFNvdXJjZSgicmVzb3Vy
Y2VzL3Jlc3BvbnNlLWNvbnRlbnQtdHlwZS1jaGFyc2V0LnBocCIpOworZnVuY3Rpb24gc2hvdWxk
R2V0TWVzc2FnZShlcykKK3sKKyAgICBpZiAoZXMuc2F3T3BlbiAmJiBlcy5zYXdNZXNzYWdlICYm
ICFlcy5zYXdFcnJvcikKKyAgICAgICAgbG9nKCJQQVNTRUQ6ICIgKyBlcy5jb250ZW50VHlwZSk7
CisgICAgZWxzZQorICAgICAgICBsb2coIkZBSUxFRDogIiArIGVzLmNvbnRlbnRUeXBlKTsKK30K
KworZnVuY3Rpb24gc2hvdWxkRmFpbChlcykKK3sKKyAgICBpZiAoZXMuc2F3RXJyb3IgJiYgIWVz
LnNhd09wZW4gJiYgIWVzLnNhd01lc3NhZ2VzKQorICAgICAgICBsb2coIlBBU1NFRDogIiArIGVz
LmNvbnRlbnRUeXBlKTsKKyAgICBlbHNlCisgICAgICAgIGxvZygiRkFJTEVEOiAiICsgZXMuY29u
dGVudFR5cGUpOworfQorCit2YXIgaSA9IDA7Cit2YXIgY29udGVudFR5cGVzID0gWyAndGV4dC9l
dmVudC1zdHJlYW07IGNoYXJzZXQ9VVRGLTgnLAorICAgICAgICAgICAgICAgICAgICAgJ3RleHQv
ZXZlbnQtc3RyZWFtOyBjaGFyc2V0PXdpbmRvd3MtMTE1MicsCisgICAgICAgICAgICAgICAgICAg
ICAndGV4dC9ldmVudC1zdHJlYW07IGNoYXJzZXQ9dXRmLTgnLAorICAgICAgICAgICAgICAgICAg
ICAgJ3RleHQvZXZlbnQtc3RyZWFtOyBjaGFyc2V0PSJVVEYtOCInLAorICAgICAgICAgICAgICAg
ICAgICAgJ3RleHQvZXZlbnQtc3RyZWFtLWZvb2JhcjsnCisgICAgICAgICAgICAgICAgICAgXTsK
KwordmFyIGV4cGVjdGVkUmVzdWx0Q2FsbGJhY2sgPSBbIHNob3VsZEdldE1lc3NhZ2UsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkRmFpbCwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBzaG91bGRHZXRNZXNzYWdlLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIHNob3VsZEdldE1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
c2hvdWxkRmFpbAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdOwogCi1lcy5vbm9wZW4g
PSBmdW5jdGlvbiAoZXZ0KSB7Ci0gICAgbG9nKCJQQVNTRUQ6IGdvdCBvcGVuIGV2ZW50Iik7Citm
dW5jdGlvbiBvcGVuTGlzdGVuZXIoZXZ0KSB7CisgICAgZXZ0LnRhcmdldC5zYXdPcGVuID0gdHJ1
ZTsKIH07CiAKLWVzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChldnQpIHsKLSAgICBsb2coIlBBU1NF
RDogZ290IG1lc3NhZ2UgZXZlbnQiKTsKLSAgICBlbmQoKTsKK2Z1bmN0aW9uIG1lc3NhZ2VMaXN0
ZW5lcihldnQpIHsKKyAgICBldnQudGFyZ2V0LnNhd01lc3NhZ2UgPSB0cnVlOworICAgIGV2dC50
YXJnZXQuc3VjY2Vzc0NhbGxiYWNrKGV2dC50YXJnZXQpOworICAgIGV2dC50YXJnZXQuY2xvc2Uo
KTsKKyAgICBuZXh0KCk7CiB9OwogCi1lcy5vbmVycm9yID0gZnVuY3Rpb24gKCkgewotICAgIGxv
ZygiRkFJTEVEOiB1bmV4cGVjdGVkIGVycm9yIGV2ZW50Iik7Ci0gICAgZW5kKCk7CitmdW5jdGlv
biBlcnJvckxpc3RlbmVyKGV2dCkgeworICAgIGV2dC50YXJnZXQuc2F3RXJyb3IgPSB0cnVlOwor
ICAgIGV2dC50YXJnZXQuc3VjY2Vzc0NhbGxiYWNrKGV2dC50YXJnZXQpOworICAgIGV2dC50YXJn
ZXQuY2xvc2UoKTsKKyAgICBuZXh0KCk7CiB9OwogCitmdW5jdGlvbiBzdGFydFJlcXVlc3QoKQor
eworICAgIGVzID0gbmV3IEV2ZW50U291cmNlKCJyZXNvdXJjZXMvcmVzcG9uc2UtY29udGVudC10
eXBlLWNoYXJzZXQucGhwP2NvbnRlbnRUeXBlPSIgKyBlc2NhcGUoY29udGVudFR5cGVzW2ldKSk7
CisgICAgZXMub25vcGVuID0gb3Blbkxpc3RlbmVyOworICAgIGVzLm9ubWVzc2FnZSA9IG1lc3Nh
Z2VMaXN0ZW5lcjsKKyAgICBlcy5vbmVycm9yID0gZXJyb3JMaXN0ZW5lcjsKKyAgICBlcy5zdWNj
ZXNzQ2FsbGJhY2sgPSBleHBlY3RlZFJlc3VsdENhbGxiYWNrW2ldOworICAgIGVzLmNvbnRlbnRU
eXBlID0gY29udGVudFR5cGVzW2ldOworICAgICsraTsKK30KKworZnVuY3Rpb24gbmV4dCgpIHsK
KyAgICBpZiAoaSA+PSBjb250ZW50VHlwZXMubGVuZ3RoKSB7CisgICAgICAgIGVuZCgpOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIHN0YXJ0UmVxdWVzdCgpOworfQorCiBmdW5jdGlvbiBl
bmQoKSB7Ci0gICAgZXMuY2xvc2UoKTsKICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQogICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CiB9CitzdGFy
dFJlcXVlc3QoKTsKIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1jb250ZW50LXR5cGUt
dGV4dC1ldmVudC1zdHJlYW0tZm9vYmFyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtY29udGVudC10eXBlLXRleHQtZXZlbnQtc3Ry
ZWFtLWZvb2Jhci1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDY5
ZDE0NjAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9l
dmVudHNvdXJjZS1jb250ZW50LXR5cGUtdGV4dC1ldmVudC1zdHJlYW0tZm9vYmFyLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotVGVzdCBmb3IgYnVnIDQ1MzcyOiBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUzNzIKLQotVGVzdCBFdmVu
dFNvdXJjZSB3aXRoIGFuIGV2ZW50LXN0cmVhbSB3aXRoIGEgQ29udGVudC1UeXBlIG9mICJ0ZXh0
L2V2ZW50LXN0cmVhbS1mb29iYXIiIGlzIG5vdCByZWNvZ25pemVkIGFzIHZhbGlkLiBZb3Ugc2hv
dWxkIHNlZSAxIFBBU1NFRCBiZWxvdy4KLQotUEFTU0VECi0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtY29udGVudC10eXBlLXRleHQt
ZXZlbnQtc3RyZWFtLWZvb2Jhci5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNv
dXJjZS9ldmVudHNvdXJjZS1jb250ZW50LXR5cGUtdGV4dC1ldmVudC1zdHJlYW0tZm9vYmFyLmh0
bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDZmY2ZlNWMuLjAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1jb250ZW50LXR5
cGUtdGV4dC1ldmVudC1zdHJlYW0tZm9vYmFyLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NCAr
MCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08cD5UZXN0IGZvciBidWcg
PGEgaHJlZj0iaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MzcyIj40
NTM3MjwvYT46IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTM3Mjwv
cD4KLTxwPlRlc3QgRXZlbnRTb3VyY2Ugd2l0aCBhbiBldmVudC1zdHJlYW0gd2l0aCBhIENvbnRl
bnQtVHlwZSBvZiAidGV4dC9ldmVudC1zdHJlYW0tZm9vYmFyIiBpcyBub3QgcmVjb2duaXplZCBh
cyB2YWxpZC4gWW91IHNob3VsZCBzZWUgMSBQQVNTRUQgYmVsb3cuPC9wPgotPGRpdiBpZD0icmVz
dWx0Ij48L2Rpdj4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBsb2cobXNnKSB7Ci0gICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVySFRNTCArPSBtc2cgKyAiPGJyPiI7Ci19Ci0K
LWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwotfQotCi12YXIgZXMgPSBuZXcgRXZlbnRTb3VyY2UoInJlc291cmNlcy9yZXNwb25zZS1j
b250ZW50LXR5cGUtdGV4dC1zdHJlYW0tZm9vYmFyLnBocCIpOwotCi1lcy5vbm9wZW4gPSBmdW5j
dGlvbiAoZXZ0KSB7Ci0gICAgbG9nKCJGQUlMRUQ6IGdvdCB1bmV4cGVjdGVkIG9wZW4gZXZlbnQi
KTsKLSAgICBlbmQoKTsKLX07Ci0KLWVzLm9ubWVzc2FnZSA9IGZ1bmN0aW9uIChldnQpIHsKLSAg
ICBsb2coIkZBSUxFRDogZ290IHVuZXhwZWN0ZWQgbWVzc2FnZSBldmVudCIpOwotICAgIGVuZCgp
OwotfTsKLQotZXMub25lcnJvciA9IGZ1bmN0aW9uICgpIHsKLSAgICBpZiAoZXMucmVhZHlTdGF0
ZSA9PSBlcy5DTE9TRUQpCi0gICAgICAgIGxvZygiUEFTU0VEIik7Ci0gICAgZWxzZQotICAgICAg
ICBsb2coIkZBSUxFRDogaW52YWxpZCBzdGF0ZSIpOwotICAgIGVuZCgpOwotfTsKLQotZnVuY3Rp
b24gZW5kKCkgewotICAgIGVzLmNsb3NlKCk7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwotfQot
PC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2V2ZW50c291cmNlL3Jlc291cmNlcy9yZXNwb25zZS1jb250ZW50LXR5cGUtY2hhcnNl
dC5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL3Jlc291cmNlcy9yZXNw
b25zZS1jb250ZW50LXR5cGUtY2hhcnNldC5waHAKaW5kZXggYTdjZDQyZS4uZTM1YTkzNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJjZXMvcmVz
cG9uc2UtY29udGVudC10eXBlLWNoYXJzZXQucGhwCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvZXZlbnRzb3VyY2UvcmVzb3VyY2VzL3Jlc3BvbnNlLWNvbnRlbnQtdHlwZS1jaGFyc2V0LnBo
cApAQCAtMSw4ICsxLDExIEBACiA8P3BocAotaGVhZGVyKCJDb250ZW50LVR5cGU6IHRleHQvZXZl
bnQtc3RyZWFtOyBjaGFyc2V0PVVURjgiKTsKKyRjb250ZW50VHlwZSA9ICRfR0VUWyJjb250ZW50
VHlwZSJdOworLy8gV29yayBhcm91bmQgYSBidWcgaW4gTWFjJ3MgUEhQIHdoZXJlIGVzY2FwZWQg
cXVvdGVzIGdldCBhbiBhZGRlZCBsZWFkaW5nIFwuCisvLyBGb3IgZXhhbXBsZSBjaGFyc2V0PSJ1
dGYtOCIgYmVjb21lcyBjaGFyc2V0PVwidXRmLThcIi4KKyRjb250ZW50VHlwZSA9IHByZWdfcmVw
bGFjZSgnL1xcXCIvJywgJyInLCAkY29udGVudFR5cGUpOworaGVhZGVyKCJDb250ZW50LVR5cGU6
ICRjb250ZW50VHlwZSIpOwogPz4KIAogaWQ6IDc3CiByZXRyeTogMzAwCiBkYXRhOiBoZWxsbwot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL3Jlc291cmNl
cy9yZXNwb25zZS1jb250ZW50LXR5cGUtZXZlbnQtc3RyZWFtLWZvb2Jhci5waHAgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL3Jlc291cmNlcy9yZXNwb25zZS1jb250ZW50LXR5
cGUtZXZlbnQtc3RyZWFtLWZvb2Jhci5waHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGVmMWU0NjAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJj
ZS9yZXNvdXJjZXMvcmVzcG9uc2UtY29udGVudC10eXBlLWV2ZW50LXN0cmVhbS1mb29iYXIucGhw
CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi08P3BocAotaGVhZGVyKCJDb250ZW50LVR5
cGU6IHRleHQvZXZlbnQtc3RyZWFtLWZvb2JhciIpOwotPz4KLQotaWQ6IDc3Ci1yZXRyeTogMzAw
Ci1kYXRhOiBoZWxsbwotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmI1NjUxZC4uZDJhNjYyNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTA0LTAyICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZm
cmFpeEBjb2RlYXVyb3JhLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBFdmVudFNvdXJjZSBzaG91bGQgb25seSBhY2NlcHQgVVRGLTggY2hhcnNl
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY5NDIK
KworICAgICAgICBGb2xsb3dpbmcgdGhlIGRpc2N1c3Npb24gb24gYnVnIDQ1MzcyLCB0aGlzIGNo
YW5nZSBpbXBsZW1lbnRzIHRoZSByZWNvbW1lbmRlZAorICAgICAgICB3YXkgb2YgaGFuZGxpbmcg
ImNoYXJzZXQiLiBXZSBvbmx5IGFjY2VwdCBVVEYtOCBidXQgbm8gb3RoZXIgZW5jb2RpbmcuIFRo
aXMgbWF0Y2hlcworICAgICAgICB0aGUgZW5jb2Rpbmcgb2YgdGhlIEV2ZW50U291cmNlIGFuZCBh
bHNvIG1heSBmaXggVG9tQ2F0IHRoYXQgYXV0b21hdGljYWxseSBzZW5kIHRoaXMKKyAgICAgICAg
Y2hhcnNldC4KKworICAgICAgICAqIHBhZ2UvRXZlbnRTb3VyY2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RXZlbnRTb3VyY2U6OmRpZFJlY2VpdmVSZXNwb25zZSk6IFdlIG5vdyBjaGVjayB0aGUg
Y2hhcnNldCBhdHRyaWJ1dGUgYW5kIGlmIGl0IGlzCisgICAgICAgIG5vdCBVVEYtOCwgYWJvcnQg
dGhlIGNvbm5lY3Rpb24gYW5kIGxvZyB0aGUgZXJyb3IgdG8gdGhlIGNvbnNvbGUuIEFsc28gd2Ug
bG9nIGlmIHRoZSBNSU1FIHR5cGUKKyAgICAgICAgaXMgd3JvbmcgdG8gdGhlIGNvbnNvbGUgdG8g
aGVscCBkZWJ1Z2dpbmcgKG9ubHkgaW4gdGhlIGNhc2Ugb2YgYW4gSFRUUCAyMDAgcmVzcG9uc2Ug
dGhvdWdoKS4KKwogMjAxMS0wNC0wMiAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhdmUgSHlhdHQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0V2ZW50U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3Vy
Y2UuY3BwCmluZGV4IDA4ZDA4NjguLjJhNTJiY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRXZlbnRTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3Vy
Y2UuY3BwCkBAIC0yLDYgKzIsNyBAQAogICogQ29weXJpZ2h0IChDKSAyMDA5IEVyaWNzc29uIEFC
CiAgKiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDEwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxMSwgQ29kZSBBdXJv
cmEgRm9ydW0uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTQ1LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJSZXNvdXJjZUVycm9yLmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VSZXNwb25zZS5oIgor
I2luY2x1ZGUgIlNjcmlwdENhbGxTdGFjay5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQuaCIKICNpbmNsdWRlICJTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJU
ZXh0UmVzb3VyY2VEZWNvZGVyLmgiCkBAIC0xODAsNyArMTgyLDMyIEBAIFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIEV2ZW50U291cmNlOjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgY29uc3QKIHZv
aWQgRXZlbnRTb3VyY2U6OmRpZFJlY2VpdmVSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNl
JiByZXNwb25zZSkKIHsKICAgICBpbnQgc3RhdHVzQ29kZSA9IHJlc3BvbnNlLmh0dHBTdGF0dXND
b2RlKCk7Ci0gICAgaWYgKHN0YXR1c0NvZGUgPT0gMjAwICYmIHJlc3BvbnNlLm1pbWVUeXBlKCkg
PT0gInRleHQvZXZlbnQtc3RyZWFtIikgeworICAgIGJvb2wgbWltZVR5cGVJc1ZhbGlkID0gcmVz
cG9uc2UubWltZVR5cGUoKSA9PSAidGV4dC9ldmVudC1zdHJlYW0iOworICAgIGJvb2wgcmVzcG9u
c2VJc1ZhbGlkID0gc3RhdHVzQ29kZSA9PSAyMDAgJiYgbWltZVR5cGVJc1ZhbGlkOworICAgIGlm
IChyZXNwb25zZUlzVmFsaWQpIHsKKyAgICAgICAgY29uc3QgU3RyaW5nJiBjaGFyc2V0ID0gcmVz
cG9uc2UudGV4dEVuY29kaW5nTmFtZSgpOworICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgY2hhcnNl
dCwgdGhlIG9ubHkgYWxsb3dlZCB2YWx1ZSBpcyBVVEYtOCAoY2FzZS1pbnNlbnNpdGl2ZSkuIFRo
aXMgc2hvdWxkIG1hdGNoCisgICAgICAgIC8vIHRoZSB1cGRhdGVkIEV2ZW50U291cmNlIHN0YW5k
YXJkLgorICAgICAgICByZXNwb25zZUlzVmFsaWQgPSBjaGFyc2V0LmlzRW1wdHkoKSB8fCBlcXVh
bElnbm9yaW5nQ2FzZShjaGFyc2V0LCAiVVRGLTgiKTsKKyAgICAgICAgaWYgKCFyZXNwb25zZUlz
VmFsaWQpIHsKKyAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gIkV2ZW50U291cmNlJ3MgcmVz
cG9uc2UgaGFzIGEgY2hhcnNldCAoXCIiOworICAgICAgICAgICAgbWVzc2FnZSArPSBjaGFyc2V0
OworICAgICAgICAgICAgbWVzc2FnZSArPSAiXCIpIHRoYXQgaXMgbm90IFVURi04LiBBYm9ydGlu
ZyB0aGUgY29ubmVjdGlvbi4iOworICAgICAgICAgICAgLy8gRklYTUU6IFdlIGFyZSBtaXNzaW5n
IHRoZSBzb3VyY2UgbGluZS4KKyAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+
YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VM
ZXZlbCwgbWVzc2FnZSwgMSwgU3RyaW5nKCksIDApOworICAgICAgICB9CisgICAgfSBlbHNlIHsK
KyAgICAgICAgLy8gVG8ga2VlcCB0aGUgc2lnbmFsLXRvLW5vaXNlIHJhdGlvIGxvdywgd2Ugb25s
eSBsb2cgMjAwLXJlc3BvbnNlIHdpdGggYW4gaW52YWxpZCBNSU1FIHR5cGUuCisgICAgICAgIGlm
IChzdGF0dXNDb2RlID09IDIwMCAmJiAhbWltZVR5cGVJc1ZhbGlkKSB7CisgICAgICAgICAgICBT
dHJpbmcgbWVzc2FnZSA9ICJFdmVudFNvdXJjZSdzIHJlc3BvbnNlIGhhcyBhIE1JTUUgdHlwZSAo
XCIiOworICAgICAgICAgICAgbWVzc2FnZSArPSByZXNwb25zZS5taW1lVHlwZSgpOworICAgICAg
ICAgICAgbWVzc2FnZSArPSAiXCIpIHRoYXQgaXMgbm90IFwidGV4dC9ldmVudC1zdHJlYW1cIi4g
QWJvcnRpbmcgdGhlIGNvbm5lY3Rpb24uIjsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBhcmUg
bWlzc2luZyB0aGUgc291cmNlIGxpbmUuCisgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JN
ZXNzYWdlTGV2ZWwsIG1lc3NhZ2UsIDEsIFN0cmluZygpLCAwKTsKKyAgICAgICAgfQorICAgIH0K
KworICAgIGlmIChyZXNwb25zZUlzVmFsaWQpIHsKICAgICAgICAgbV9zdGF0ZSA9IE9QRU47CiAg
ICAgICAgIGRpc3BhdGNoRXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkub3BlbkV2ZW50
LCBmYWxzZSwgZmFsc2UpKTsKICAgICB9IGVsc2Ugewo=
</data>
<flag name="review"
          id="80486"
          type_id="1"
          status="+"
          setter="ap"
    />
    <flag name="commit-queue"
          id="80487"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>88746</attachid>
            <date>2011-04-07 18:10:09 -0700</date>
            <delta_ts>2011-04-07 23:45:50 -0700</delta_ts>
            <desc>Same as previous but fixed Alexey&apos;s comments</desc>
            <filename>bug56942-EventSource-charset-fix-4.diff</filename>
            <type>text/plain</type>
            <size>14539</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiNTVhNWZiLi45MzA0YjQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTEtMDQt
MDcgIEp1bGllbiBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QGNvZGVhdXJvcmEub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEV2ZW50U291cmNlIHNo
b3VsZCBvbmx5IGFjY2VwdCBVVEYtOCBjaGFyc2V0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Njk0MgorCisgICAgICAgICogQ2hhbmdlTG9nLTIwMTEt
MDItMTY6IENvcnJlY3RlZCBwcmV2aW91cyBjb21taXQgbWVzc2FnZS4gUG9pbnRlZCBvdXQgYnkg
QWxleGV5LgorCisgICAgICAgICogaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1i
YWQtbWltZS10eXBlLWV4cGVjdGVkLnR4dDogVXBkYXRlZCB3aXRoIHRoZSBuZXcgY29uc29sZSBt
ZXNzYWdlLgorCisgICAgICAgICogaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1j
b250ZW50LXR5cGUtY2hhcnNldC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9l
dmVudHNvdXJjZS9ldmVudHNvdXJjZS1jb250ZW50LXR5cGUtY2hhcnNldC5odG1sOiBCZWVmZWQg
dXAgdGhpcyB0ZXN0IGFuZCBtZXJnZWQKKyAgICAgICAgdGhlIGZvbGxvd2luZyB0ZXN0IGludG8g
aXQuIFRoZSBuZXcgdGVzdHMgY2hlY2sgdGhhdCB3ZSBkaXNwYXRjaCBhIGNvbnNvbGUgZXJyb3Ig
aWYgdGhlIGNoYXJzZXQgaXMKKyAgICAgICAgd3JvbmcuCisKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2V2ZW50c291cmNlL2V2ZW50c291cmNlLWNvbnRlbnQtdHlwZS10ZXh0LWV2ZW50LXN0cmVhbS1m
b29iYXItZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvZXZlbnRz
b3VyY2UvZXZlbnRzb3VyY2UtY29udGVudC10eXBlLXRleHQtZXZlbnQtc3RyZWFtLWZvb2Jhci5o
dG1sOiBSZW1vdmVkLgorCisgICAgICAgICogaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJj
ZXMvcmVzcG9uc2UtY29udGVudC10eXBlLWNoYXJzZXQucGhwOiBSZXR1cm4gdGhlIGNoYXJzZXQg
cGFzc2VkCisgICAgICAgIGluIHRoZSBVUkwuIEFsc28gYWRkZWQgUEhQJ3MgbWFnaWMgcXVvdGVz
IGhhbmRsaW5nIGFzIHRoaXMgd291bGQgbWFrZSB0aGUgdGVzdCBmYWlsIG9uIE1hYy4KKworICAg
ICAgICAqIGh0dHAvdGVzdHMvZXZlbnRzb3VyY2UvcmVzb3VyY2VzL3Jlc3BvbnNlLWNvbnRlbnQt
dHlwZS1ldmVudC1zdHJlYW0tZm9vYmFyLnBocDogUmVtb3ZlZC4KKwogMjAxMS0wNC0wNyAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkOyBBZGQg
ZmFpbGluZyBsZWdhY3kgZnVsbCBzY3JlZW4gdGVzdHMgdG8gdGhlIGd0ay9Ta2lwcGVkIGxpc3Qu
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2ctMjAxMS0wMi0xNiBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZy0yMDExLTAyLTE2CmluZGV4IGQxMTMyMDUuLmJkYzIxMDIgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZy0yMDExLTAyLTE2CisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZy0yMDExLTAyLTE2CkBAIC0yNzQwMCw3ICsyNzQwMCw3IEBACiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTM3MgogCiAgICAgICAgIFRlc3Qg
dGhhdCBhIENvbnRlbnQtVHlwZSBvZiAidGV4dC9ldmVudC1zdHJlYW07IGNoYXJzZXQ9VVRGOCIg
d29ya3MgY29ycmVjdGx5IGJ1dAotICAgICAgICAidGV4dC9ldmVudC1zdHJlYW0iIGRvZXMgbm90
IHdvcmsuCisgICAgICAgICJ0ZXh0L2V2ZW50LXN0cmVhbS1mb29iYXIiIGRvZXMgbm90IHdvcmsu
CiAKICAgICAgICAgKiBodHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLWNvbnRlbnQt
dHlwZS1jaGFyc2V0LWV4cGVjdGVkLnR4dDogQWRkZWQuCiAgICAgICAgICogaHR0cC90ZXN0cy9l
dmVudHNvdXJjZS9ldmVudHNvdXJjZS1jb250ZW50LXR5cGUtY2hhcnNldC5odG1sOiBBZGRlZC4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3Vy
Y2UtYmFkLW1pbWUtdHlwZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2
ZW50c291cmNlL2V2ZW50c291cmNlLWJhZC1taW1lLXR5cGUtZXhwZWN0ZWQudHh0CmluZGV4IDIw
MzQxYmMuLjZkNWM1YmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRz
b3VyY2UvZXZlbnRzb3VyY2UtYmFkLW1pbWUtdHlwZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1iYWQtbWltZS10eXBlLWV4
cGVjdGVkLnR4dApAQCAtMSwzICsxLDQgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBFdmVu
dFNvdXJjZSdzIHJlc3BvbnNlIGhhcyBhIE1JTUUgdHlwZSAoInRleHQvYm9ndXMiKSB0aGF0IGlz
IG5vdCAidGV4dC9ldmVudC1zdHJlYW0iLiBBYm9ydGluZyB0aGUgY29ubmVjdGlvbi4KIFRlc3Qg
RXZlbnRTb3VyY2Ugd2l0aCBhbiBldmVudC1zdHJlYW0gd2l0aCBpbmNvcnJlY3QgbWltZS10eXBl
LgogCiBQQVNTCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNl
L2V2ZW50c291cmNlLWNvbnRlbnQtdHlwZS1jaGFyc2V0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtY29udGVudC10eXBlLWNoYXJz
ZXQtZXhwZWN0ZWQudHh0CmluZGV4IGVmMWY2M2IuLmM1M2NjYjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvZXZlbnRzb3VyY2UtY29udGVudC10eXBlLWNo
YXJzZXQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3Vy
Y2UvZXZlbnRzb3VyY2UtY29udGVudC10eXBlLWNoYXJzZXQtZXhwZWN0ZWQudHh0CkBAIC0xLDcg
KzEsMTIgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBFdmVudFNvdXJjZSdzIHJlc3BvbnNl
IGhhcyBhIGNoYXJzZXQgKCJ3aW5kb3dzLTEyNTEiKSB0aGF0IGlzIG5vdCBVVEYtOC4gQWJvcnRp
bmcgdGhlIGNvbm5lY3Rpb24uCitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogRXZlbnRTb3VyY2Un
cyByZXNwb25zZSBoYXMgYSBNSU1FIHR5cGUgKCJ0ZXh0L2V2ZW50LXN0cmVhbS1mb29iYXIiKSB0
aGF0IGlzIG5vdCAidGV4dC9ldmVudC1zdHJlYW0iLiBBYm9ydGluZyB0aGUgY29ubmVjdGlvbi4K
IFRlc3QgZm9yIGJ1ZyA0NTM3MjogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTQ1MzcyCiAKLVRlc3QgRXZlbnRTb3VyY2Ugd2l0aCBhbiBldmVudC1zdHJlYW0gd2l0aCBh
IENvbnRlbnQtVHlwZSB3aXRoIGEgY2hhcnNldCBpcyBzdGlsbCByZWNvZ25pemVkLiBZb3Ugc2hv
dWxkIHNlZSAyIFBBU1NFRCBiZWxvdyAob25lIGZvciBvcGVuIGFuZCBvbmUgZm9yIG1lc3NhZ2Up
LgorVGVzdCBFdmVudFNvdXJjZSB3aXRoIGFuIGV2ZW50LXN0cmVhbSB3aXRoIGEgQ29udGVudC1U
eXBlIHdpdGggYSBjaGFyc2V0IGlzIHN0aWxsIHJlY29nbml6ZWQuIFlvdSBzaG91bGQgc2VlIDUg
UEFTU0VEIGJlbG93LgogCi1QQVNTRUQ6IGdvdCBvcGVuIGV2ZW50Ci1QQVNTRUQ6IGdvdCBtZXNz
YWdlIGV2ZW50CitQQVNTRUQ6IHRleHQvZXZlbnQtc3RyZWFtOyBjaGFyc2V0PVVURi04CitQQVNT
RUQ6IHRleHQvZXZlbnQtc3RyZWFtOyBjaGFyc2V0PXdpbmRvd3MtMTI1MQorUEFTU0VEOiB0ZXh0
L2V2ZW50LXN0cmVhbTsgY2hhcnNldD11dGYtOAorUEFTU0VEOiB0ZXh0L2V2ZW50LXN0cmVhbTsg
Y2hhcnNldD0iVVRGLTgiCitQQVNTRUQ6IHRleHQvZXZlbnQtc3RyZWFtLWZvb2JhcjsKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVudHNvdXJjZS1j
b250ZW50LXR5cGUtY2hhcnNldC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNv
dXJjZS9ldmVudHNvdXJjZS1jb250ZW50LXR5cGUtY2hhcnNldC5odG1sCmluZGV4IDRlMDdmYTgu
LjNkZGFlNGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2Uv
ZXZlbnRzb3VyY2UtY29udGVudC10eXBlLWNoYXJzZXQuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLWNvbnRlbnQtdHlwZS1jaGFyc2V0Lmh0
bWwKQEAgLTIsNyArMiw3IEBACiA8aHRtbD4KIDxib2R5PgogPHA+VGVzdCBmb3IgYnVnIDxhIGhy
ZWY9Imh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD00NTM3MiI+NDUzNzI8
L2E+OiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUzNzI8L3A+Ci08
cD5UZXN0IEV2ZW50U291cmNlIHdpdGggYW4gZXZlbnQtc3RyZWFtIHdpdGggYSBDb250ZW50LVR5
cGUgd2l0aCBhIGNoYXJzZXQgaXMgc3RpbGwgcmVjb2duaXplZC4gWW91IHNob3VsZCBzZWUgMiBQ
QVNTRUQgYmVsb3cgKG9uZSBmb3Igb3BlbiBhbmQgb25lIGZvciBtZXNzYWdlKS48L3A+Cis8cD5U
ZXN0IEV2ZW50U291cmNlIHdpdGggYW4gZXZlbnQtc3RyZWFtIHdpdGggYSBDb250ZW50LVR5cGUg
d2l0aCBhIGNoYXJzZXQgaXMgc3RpbGwgcmVjb2duaXplZC4gWW91IHNob3VsZCBzZWUgNSBQQVNT
RUQgYmVsb3cuPC9wPgogPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KIDxzY3JpcHQ+CiBmdW5jdGlv
biBsb2cobXNnKSB7CkBAIC0xNCwyNyArMTQsNzkgQEAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewogICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKIH0K
IAotdmFyIGVzID0gbmV3IEV2ZW50U291cmNlKCJyZXNvdXJjZXMvcmVzcG9uc2UtY29udGVudC10
eXBlLWNoYXJzZXQucGhwIik7CitmdW5jdGlvbiBzaG91bGRHZXRNZXNzYWdlKGVzKQoreworICAg
IGlmIChlcy5zYXdPcGVuICYmIGVzLnNhd01lc3NhZ2UgJiYgIWVzLnNhd0Vycm9yKQorICAgICAg
ICBsb2coIlBBU1NFRDogIiArIGVzLmNvbnRlbnRUeXBlKTsKKyAgICBlbHNlCisgICAgICAgIGxv
ZygiRkFJTEVEOiAiICsgZXMuY29udGVudFR5cGUpOworfQorCitmdW5jdGlvbiBzaG91bGRGYWls
KGVzKQoreworICAgIGlmIChlcy5zYXdFcnJvciAmJiAhZXMuc2F3T3BlbiAmJiAhZXMuc2F3TWVz
c2FnZXMpCisgICAgICAgIGxvZygiUEFTU0VEOiAiICsgZXMuY29udGVudFR5cGUpOworICAgIGVs
c2UKKyAgICAgICAgbG9nKCJGQUlMRUQ6ICIgKyBlcy5jb250ZW50VHlwZSk7Cit9CisKK3ZhciBp
ID0gMDsKK3ZhciBjb250ZW50VHlwZXMgPSBbICd0ZXh0L2V2ZW50LXN0cmVhbTsgY2hhcnNldD1V
VEYtOCcsCisgICAgICAgICAgICAgICAgICAgICAndGV4dC9ldmVudC1zdHJlYW07IGNoYXJzZXQ9
d2luZG93cy0xMjUxJywKKyAgICAgICAgICAgICAgICAgICAgICd0ZXh0L2V2ZW50LXN0cmVhbTsg
Y2hhcnNldD11dGYtOCcsCisgICAgICAgICAgICAgICAgICAgICAndGV4dC9ldmVudC1zdHJlYW07
IGNoYXJzZXQ9IlVURi04IicsCisgICAgICAgICAgICAgICAgICAgICAndGV4dC9ldmVudC1zdHJl
YW0tZm9vYmFyOycKKyAgICAgICAgICAgICAgICAgICBdOworCit2YXIgZXhwZWN0ZWRSZXN1bHRD
YWxsYmFjayA9IFsgc2hvdWxkR2V0TWVzc2FnZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBzaG91bGRGYWlsLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNob3VsZEdl
dE1lc3NhZ2UsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hvdWxkR2V0TWVzc2Fn
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaG91bGRGYWlsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIF07CiAKLWVzLm9ub3BlbiA9IGZ1bmN0aW9uIChldnQpIHsKLSAg
ICBsb2coIlBBU1NFRDogZ290IG9wZW4gZXZlbnQiKTsKK2Z1bmN0aW9uIG9wZW5MaXN0ZW5lcihl
dnQpIHsKKyAgICBldnQudGFyZ2V0LnNhd09wZW4gPSB0cnVlOwogfTsKIAotZXMub25tZXNzYWdl
ID0gZnVuY3Rpb24gKGV2dCkgewotICAgIGxvZygiUEFTU0VEOiBnb3QgbWVzc2FnZSBldmVudCIp
OwotICAgIGVuZCgpOworZnVuY3Rpb24gbWVzc2FnZUxpc3RlbmVyKGV2dCkgeworICAgIGV2dC50
YXJnZXQuc2F3TWVzc2FnZSA9IHRydWU7CisgICAgZXZ0LnRhcmdldC5zdWNjZXNzQ2FsbGJhY2so
ZXZ0LnRhcmdldCk7CisgICAgZXZ0LnRhcmdldC5jbG9zZSgpOworICAgIG5leHQoKTsKIH07CiAK
LWVzLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7Ci0gICAgbG9nKCJGQUlMRUQ6IHVuZXhwZWN0ZWQg
ZXJyb3IgZXZlbnQiKTsKLSAgICBlbmQoKTsKK2Z1bmN0aW9uIGVycm9yTGlzdGVuZXIoZXZ0KSB7
CisgICAgZXZ0LnRhcmdldC5zYXdFcnJvciA9IHRydWU7CisgICAgZXZ0LnRhcmdldC5zdWNjZXNz
Q2FsbGJhY2soZXZ0LnRhcmdldCk7CisgICAgZXZ0LnRhcmdldC5jbG9zZSgpOworICAgIG5leHQo
KTsKIH07CiAKK2Z1bmN0aW9uIHN0YXJ0UmVxdWVzdCgpCit7CisgICAgZXMgPSBuZXcgRXZlbnRT
b3VyY2UoInJlc291cmNlcy9yZXNwb25zZS1jb250ZW50LXR5cGUtY2hhcnNldC5waHA/Y29udGVu
dFR5cGU9IiArIGVzY2FwZShjb250ZW50VHlwZXNbaV0pKTsKKyAgICBlcy5vbm9wZW4gPSBvcGVu
TGlzdGVuZXI7CisgICAgZXMub25tZXNzYWdlID0gbWVzc2FnZUxpc3RlbmVyOworICAgIGVzLm9u
ZXJyb3IgPSBlcnJvckxpc3RlbmVyOworICAgIGVzLnN1Y2Nlc3NDYWxsYmFjayA9IGV4cGVjdGVk
UmVzdWx0Q2FsbGJhY2tbaV07CisgICAgZXMuY29udGVudFR5cGUgPSBjb250ZW50VHlwZXNbaV07
CisgICAgKytpOworfQorCitmdW5jdGlvbiBuZXh0KCkgeworICAgIGlmIChpID49IGNvbnRlbnRU
eXBlcy5sZW5ndGgpIHsKKyAgICAgICAgZW5kKCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cisg
ICAgc3RhcnRSZXF1ZXN0KCk7Cit9CisKIGZ1bmN0aW9uIGVuZCgpIHsKLSAgICBlcy5jbG9zZSgp
OwogICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCiAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKIH0KK3N0YXJ0UmVxdWVzdCgpOwogPC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2
ZW50c291cmNlL2V2ZW50c291cmNlLWNvbnRlbnQtdHlwZS10ZXh0LWV2ZW50LXN0cmVhbS1mb29i
YXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9ldmVu
dHNvdXJjZS1jb250ZW50LXR5cGUtdGV4dC1ldmVudC1zdHJlYW0tZm9vYmFyLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNjlkMTQ2MC4uMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLWNvbnRlbnQtdHlw
ZS10ZXh0LWV2ZW50LXN0cmVhbS1mb29iYXItZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNiArMCwwIEBACi1UZXN0IGZvciBidWcgNDUzNzI6IGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD00NTM3MgotCi1UZXN0IEV2ZW50U291cmNlIHdpdGggYW4gZXZlbnQt
c3RyZWFtIHdpdGggYSBDb250ZW50LVR5cGUgb2YgInRleHQvZXZlbnQtc3RyZWFtLWZvb2JhciIg
aXMgbm90IHJlY29nbml6ZWQgYXMgdmFsaWQuIFlvdSBzaG91bGQgc2VlIDEgUEFTU0VEIGJlbG93
LgotCi1QQVNTRUQKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNv
dXJjZS9ldmVudHNvdXJjZS1jb250ZW50LXR5cGUtdGV4dC1ldmVudC1zdHJlYW0tZm9vYmFyLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL2V2ZW50c291cmNlLWNvbnRl
bnQtdHlwZS10ZXh0LWV2ZW50LXN0cmVhbS1mb29iYXIuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggNmZjZmU1Yy4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2V2ZW50c291cmNlL2V2ZW50c291cmNlLWNvbnRlbnQtdHlwZS10ZXh0LWV2ZW50LXN0cmVhbS1m
b29iYXIuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ0ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08Ym9keT4KLTxwPlRlc3QgZm9yIGJ1ZyA8YSBocmVmPSJodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDUzNzIiPjQ1MzcyPC9hPjogaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MzcyPC9wPgotPHA+VGVzdCBFdmVudFNvdXJj
ZSB3aXRoIGFuIGV2ZW50LXN0cmVhbSB3aXRoIGEgQ29udGVudC1UeXBlIG9mICJ0ZXh0L2V2ZW50
LXN0cmVhbS1mb29iYXIiIGlzIG5vdCByZWNvZ25pemVkIGFzIHZhbGlkLiBZb3Ugc2hvdWxkIHNl
ZSAxIFBBU1NFRCBiZWxvdy48L3A+Ci08ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgotPHNjcmlwdD4K
LWZ1bmN0aW9uIGxvZyhtc2cpIHsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0
IikuaW5uZXJIVE1MICs9IG1zZyArICI8YnI+IjsKLX0KLQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci19Ci0KLXZhciBlcyA9IG5l
dyBFdmVudFNvdXJjZSgicmVzb3VyY2VzL3Jlc3BvbnNlLWNvbnRlbnQtdHlwZS10ZXh0LXN0cmVh
bS1mb29iYXIucGhwIik7Ci0KLWVzLm9ub3BlbiA9IGZ1bmN0aW9uIChldnQpIHsKLSAgICBsb2co
IkZBSUxFRDogZ290IHVuZXhwZWN0ZWQgb3BlbiBldmVudCIpOwotICAgIGVuZCgpOwotfTsKLQot
ZXMub25tZXNzYWdlID0gZnVuY3Rpb24gKGV2dCkgewotICAgIGxvZygiRkFJTEVEOiBnb3QgdW5l
eHBlY3RlZCBtZXNzYWdlIGV2ZW50Iik7Ci0gICAgZW5kKCk7Ci19OwotCi1lcy5vbmVycm9yID0g
ZnVuY3Rpb24gKCkgewotICAgIGlmIChlcy5yZWFkeVN0YXRlID09IGVzLkNMT1NFRCkKLSAgICAg
ICAgbG9nKCJQQVNTRUQiKTsKLSAgICBlbHNlCi0gICAgICAgIGxvZygiRkFJTEVEOiBpbnZhbGlk
IHN0YXRlIik7Ci0gICAgZW5kKCk7Ci19OwotCi1mdW5jdGlvbiBlbmQoKSB7Ci0gICAgZXMuY2xv
c2UoKTsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Ci19Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvZXZlbnRzb3VyY2UvcmVz
b3VyY2VzL3Jlc3BvbnNlLWNvbnRlbnQtdHlwZS1jaGFyc2V0LnBocCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvZXZlbnRzb3VyY2UvcmVzb3VyY2VzL3Jlc3BvbnNlLWNvbnRlbnQtdHlwZS1jaGFy
c2V0LnBocAppbmRleCBhN2NkNDJlLi4zN2Y2ZGFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2V2ZW50c291cmNlL3Jlc291cmNlcy9yZXNwb25zZS1jb250ZW50LXR5cGUtY2hh
cnNldC5waHAKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJj
ZXMvcmVzcG9uc2UtY29udGVudC10eXBlLWNoYXJzZXQucGhwCkBAIC0xLDggKzEsMTMgQEAKIDw/
cGhwCi1oZWFkZXIoIkNvbnRlbnQtVHlwZTogdGV4dC9ldmVudC1zdHJlYW07IGNoYXJzZXQ9VVRG
OCIpOworJGNvbnRlbnRUeXBlID0gJF9HRVRbImNvbnRlbnRUeXBlIl07CisvLyBJZiB0aGUgbWFn
aWMgcXVvdGVzIG9wdGlvbiBpcyBlbmFibGVkLCB0aGUgY2hhcnNldCBjb3VsZCBiZSBlc2NhcGVk
IGFuZCB3ZQorLy8gd291bGQgZmFpbCBvdXIgdGVzdC4gRm9yIGV4YW1wbGUsIGNoYXJzZXQ9InV0
Zi04IiB3b3VsZCBiZWNvbWUgY2hhcnNldD1cInV0Zi04XCIuCitpZiAoZ2V0X21hZ2ljX3F1b3Rl
c19ncGMoKSkgeworICAgICRjb250ZW50VHlwZSA9IHN0cmlwc2xhc2hlcygkY29udGVudFR5cGUp
OworfQoraGVhZGVyKCJDb250ZW50LVR5cGU6ICRjb250ZW50VHlwZSIpOwogPz4KIAogaWQ6IDc3
CiByZXRyeTogMzAwCiBkYXRhOiBoZWxsbwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2V2ZW50c291cmNlL3Jlc291cmNlcy9yZXNwb25zZS1jb250ZW50LXR5cGUtZXZlbnQt
c3RyZWFtLWZvb2Jhci5waHAgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2V2ZW50c291cmNlL3Jl
c291cmNlcy9yZXNwb25zZS1jb250ZW50LXR5cGUtZXZlbnQtc3RyZWFtLWZvb2Jhci5waHAKZGVs
ZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGVmMWU0NjAuLjAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9ldmVudHNvdXJjZS9yZXNvdXJjZXMvcmVzcG9uc2UtY29udGVudC10
eXBlLWV2ZW50LXN0cmVhbS1mb29iYXIucGhwCisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBA
Ci08P3BocAotaGVhZGVyKCJDb250ZW50LVR5cGU6IHRleHQvZXZlbnQtc3RyZWFtLWZvb2JhciIp
OwotPz4KLQotaWQ6IDc3Ci1yZXRyeTogMzAwCi1kYXRhOiBoZWxsbwotCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
ZDE2ZmM0OC4uMGU2NTI3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTA0LTA3
ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEBjb2RlYXVyb3JhLm9yZz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFdmVudFNvdXJjZSBzaG91
bGQgb25seSBhY2NlcHQgVVRGLTggY2hhcnNldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTY5NDIKKworICAgICAgICBGb2xsb3dpbmcgdGhlIGRpc2N1
c3Npb24gb24gYnVnIDQ1MzcyLCB0aGlzIGNoYW5nZSBpbXBsZW1lbnRzIHRoZSByZWNvbW1lbmRl
ZAorICAgICAgICB3YXkgb2YgaGFuZGxpbmcgImNoYXJzZXQiLiBXZSBvbmx5IGFjY2VwdCBVVEYt
OCBidXQgbm8gb3RoZXIgZW5jb2RpbmcuIFRoaXMgbWF0Y2hlcworICAgICAgICB0aGUgZW5jb2Rp
bmcgb2YgdGhlIEV2ZW50U291cmNlIGFuZCBhbHNvIG1heSBmaXggVG9tQ2F0IHRoYXQgYXV0b21h
dGljYWxseSBzZW5kIHRoaXMKKyAgICAgICAgY2hhcnNldC4KKworICAgICAgICAqIHBhZ2UvRXZl
bnRTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RXZlbnRTb3VyY2U6OmRpZFJlY2VpdmVS
ZXNwb25zZSk6IFdlIG5vdyBjaGVjayB0aGUgY2hhcnNldCBhdHRyaWJ1dGUgYW5kIGlmIGl0IGlz
CisgICAgICAgIG5vdCBVVEYtOCwgYWJvcnQgdGhlIGNvbm5lY3Rpb24gYW5kIGxvZyB0aGUgZXJy
b3IgdG8gdGhlIGNvbnNvbGUuIEFsc28gd2UgbG9nIGlmIHRoZSBNSU1FIHR5cGUKKyAgICAgICAg
aXMgd3JvbmcgdG8gdGhlIGNvbnNvbGUgdG8gaGVscCBkZWJ1Z2dpbmcgKG9ubHkgaW4gdGhlIGNh
c2Ugb2YgYW4gSFRUUCAyMDAgcmVzcG9uc2UgdGhvdWdoKS4KKwogMjAxMS0wNC0wNyAgRGF2aWQg
SHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGFuIEJlcm5z
dGVpbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRTb3VyY2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKaW5kZXggMDhkMDg2OC4uMmE1MmJj
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9FdmVudFNvdXJjZS5jcHAKQEAgLTIsNiArMiw3IEBACiAgKiBD
b3B5cmlnaHQgKEMpIDIwMDkgRXJpY3Nzb24gQUIKICAqIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDExLCBDb2RlIEF1cm9yYSBGb3J1bS4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDUsNiArNDYsNyBAQAogI2lu
Y2x1ZGUgIlJlc291cmNlRXJyb3IuaCIKICNpbmNsdWRlICJSZXNvdXJjZVJlcXVlc3QuaCIKICNp
bmNsdWRlICJSZXNvdXJjZVJlc3BvbnNlLmgiCisjaW5jbHVkZSAiU2NyaXB0Q2FsbFN0YWNrLmgi
CiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIlNlcmlhbGl6
ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIlRleHRSZXNvdXJjZURlY29kZXIuaCIKQEAgLTE4
MCw3ICsxODIsMzIgQEAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogRXZlbnRTb3VyY2U6OnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSBjb25zdAogdm9pZCBFdmVudFNvdXJjZTo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewogICAgIGludCBzdGF0
dXNDb2RlID0gcmVzcG9uc2UuaHR0cFN0YXR1c0NvZGUoKTsKLSAgICBpZiAoc3RhdHVzQ29kZSA9
PSAyMDAgJiYgcmVzcG9uc2UubWltZVR5cGUoKSA9PSAidGV4dC9ldmVudC1zdHJlYW0iKSB7Cisg
ICAgYm9vbCBtaW1lVHlwZUlzVmFsaWQgPSByZXNwb25zZS5taW1lVHlwZSgpID09ICJ0ZXh0L2V2
ZW50LXN0cmVhbSI7CisgICAgYm9vbCByZXNwb25zZUlzVmFsaWQgPSBzdGF0dXNDb2RlID09IDIw
MCAmJiBtaW1lVHlwZUlzVmFsaWQ7CisgICAgaWYgKHJlc3BvbnNlSXNWYWxpZCkgeworICAgICAg
ICBjb25zdCBTdHJpbmcmIGNoYXJzZXQgPSByZXNwb25zZS50ZXh0RW5jb2RpbmdOYW1lKCk7Cisg
ICAgICAgIC8vIElmIHdlIGhhdmUgYSBjaGFyc2V0LCB0aGUgb25seSBhbGxvd2VkIHZhbHVlIGlz
IFVURi04IChjYXNlLWluc2Vuc2l0aXZlKS4gVGhpcyBzaG91bGQgbWF0Y2gKKyAgICAgICAgLy8g
dGhlIHVwZGF0ZWQgRXZlbnRTb3VyY2Ugc3RhbmRhcmQuCisgICAgICAgIHJlc3BvbnNlSXNWYWxp
ZCA9IGNoYXJzZXQuaXNFbXB0eSgpIHx8IGVxdWFsSWdub3JpbmdDYXNlKGNoYXJzZXQsICJVVEYt
OCIpOworICAgICAgICBpZiAoIXJlc3BvbnNlSXNWYWxpZCkgeworICAgICAgICAgICAgU3RyaW5n
IG1lc3NhZ2UgPSAiRXZlbnRTb3VyY2UncyByZXNwb25zZSBoYXMgYSBjaGFyc2V0IChcIiI7Cisg
ICAgICAgICAgICBtZXNzYWdlICs9IGNoYXJzZXQ7CisgICAgICAgICAgICBtZXNzYWdlICs9ICJc
IikgdGhhdCBpcyBub3QgVVRGLTguIEFib3J0aW5nIHRoZSBjb25uZWN0aW9uLiI7CisgICAgICAg
ICAgICAvLyBGSVhNRTogV2UgYXJlIG1pc3NpbmcgdGhlIHNvdXJjZSBsaW5lLgorICAgICAgICAg
ICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwg
TG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCBtZXNzYWdlLCAxLCBTdHJpbmcoKSwg
MCk7CisgICAgICAgIH0KKyAgICB9IGVsc2UgeworICAgICAgICAvLyBUbyBrZWVwIHRoZSBzaWdu
YWwtdG8tbm9pc2UgcmF0aW8gbG93LCB3ZSBvbmx5IGxvZyAyMDAtcmVzcG9uc2Ugd2l0aCBhbiBp
bnZhbGlkIE1JTUUgdHlwZS4KKyAgICAgICAgaWYgKHN0YXR1c0NvZGUgPT0gMjAwICYmICFtaW1l
VHlwZUlzVmFsaWQpIHsKKyAgICAgICAgICAgIFN0cmluZyBtZXNzYWdlID0gIkV2ZW50U291cmNl
J3MgcmVzcG9uc2UgaGFzIGEgTUlNRSB0eXBlIChcIiI7CisgICAgICAgICAgICBtZXNzYWdlICs9
IHJlc3BvbnNlLm1pbWVUeXBlKCk7CisgICAgICAgICAgICBtZXNzYWdlICs9ICJcIikgdGhhdCBp
cyBub3QgXCJ0ZXh0L2V2ZW50LXN0cmVhbVwiLiBBYm9ydGluZyB0aGUgY29ubmVjdGlvbi4iOwor
ICAgICAgICAgICAgLy8gRklYTUU6IFdlIGFyZSBtaXNzaW5nIHRoZSBzb3VyY2UgbGluZS4KKyAg
ICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkTWVzc2FnZShKU01lc3NhZ2VT
b3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgbWVzc2FnZSwgMSwgU3Ry
aW5nKCksIDApOworICAgICAgICB9CisgICAgfQorCisgICAgaWYgKHJlc3BvbnNlSXNWYWxpZCkg
ewogICAgICAgICBtX3N0YXRlID0gT1BFTjsKICAgICAgICAgZGlzcGF0Y2hFdmVudChFdmVudDo6
Y3JlYXRlKGV2ZW50TmFtZXMoKS5vcGVuRXZlbnQsIGZhbHNlLCBmYWxzZSkpOwogICAgIH0gZWxz
ZSB7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>