<?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>34067</bug_id>
          
          <creation_ts>2010-01-24 21:45:47 -0800</creation_ts>
          <short_desc>CSS rule containing a string unclosed at the end of stylesheet is ignored.</short_desc>
          <delta_ts>2012-02-13 16:57:16 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>CSS</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>78538</dup_id>
          
          <bug_file_loc>http://test.csswg.org/suites/css2.1/20110111/html4/eof-003.htm</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>47141</blocked>
    
    <blocked>6891</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yuzo Fujishima">yuzo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>ap</cc>
    
    <cc>darin</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eoconnor</cc>
    
    <cc>eric</cc>
    
    <cc>gustavo</cc>
    
    <cc>hamaji</cc>
    
    <cc>hayato</cc>
    
    <cc>jasneet</cc>
    
    <cc>phiw2</cc>
    
    <cc>robert</cc>
    
    <cc>rwlbuis</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>tonyg</cc>
    
    <cc>webkit</cc>
    
    <cc>webkit-ews</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yuzo</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>184151</commentid>
    <comment_count>0</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-01-24 21:45:47 -0800</bug_when>
    <thetext>http://www.w3.org/TR/CSS21/syndata.html#parsing-errors
specifies how unclosed strings must be handled.

For example,

&lt;style type=&quot;text/css&quot;&gt;
p:before {
    content: &apos;Has not 
&lt;/style&gt;

must be handled as if it were:

&lt;style type=&quot;text/css&quot;&gt;
p:before {
    content: &apos;Has not &apos;;
}
&lt;/style&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184152</commentid>
    <comment_count>1</comment_count>
      <attachid>47310</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-01-24 21:47:04 -0800</bug_when>
    <thetext>Created attachment 47310
Testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184154</commentid>
    <comment_count>2</comment_count>
      <attachid>47312</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-01-24 21:57:00 -0800</bug_when>
    <thetext>Created attachment 47312
Change flex rule such that unclosed string is properly closed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184155</commentid>
    <comment_count>3</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-01-24 22:00:09 -0800</bug_when>
    <thetext>I think 6891 cannot be fixed until the unclosed string handling is fixed.

Yuzo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184775</commentid>
    <comment_count>4</comment_count>
      <attachid>47312</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-26 15:01:07 -0800</bug_when>
    <thetext>Comment on attachment 47312
Change flex rule such that unclosed string is properly closed.

How does our current behavior compare to FF and IE?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184815</commentid>
    <comment_count>5</comment_count>
    <who name="Philippe Wittenbergh">phiw2</who>
    <bug_when>2010-01-26 16:21:01 -0800</bug_when>
    <thetext>I think this bug is invalid.

The testcase is in quirks mode; once made into a standard mode test (with &lt;!doctype html&gt;), I get the following results

Firefox (Gecko 1.9.0 ~ 19.3a1pre) --&gt; only show &apos;failed&apos;
Opera 10.5a --&gt; same as Gecko
IE8 --&gt; same as Gecko.

testcase:
http://dev.l-c-n.com/CSS2_parse/parse_content2.html
(there are a few more tests where WebKit show different behaviour than Gecko &amp; Opera in the same /CSS2_parse/ folder; I haven&apos;t fully pondered them )

See the bottom of the section, under the bullet &apos;Unexpected end of string&apos;
http://www.w3.org/TR/CSS21/syndata.html#parsing-errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184950</commentid>
    <comment_count>6</comment_count>
      <attachid>47498</attachid>
    <who name="Robert Blaut">webkit</who>
    <bug_when>2010-01-26 22:49:30 -0800</bug_when>
    <thetext>Created attachment 47498
Fixed the test case - in standards mode now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184954</commentid>
    <comment_count>7</comment_count>
    <who name="Robert Blaut">webkit</who>
    <bug_when>2010-01-26 22:56:12 -0800</bug_when>
    <thetext>Yuzo, you are talking about unclosed strings but your test case shows a case with unexpected end of style sheets. 

Compare this clause:

&quot;Unexpected end of style sheet.
User agents must close all open constructs (for example: blocks, parentheses, brackets, rules, strings, and comments) at the end of the style sheet. For example:

  @media screen {
    p:before { content: &apos;Hello
would be treated the same as:

  @media screen {
    p:before { content: &apos;Hello&apos;; }
  }
in a conformant UA.&quot;



with this:


&quot;Unexpected end of string.
User agents must close strings upon reaching the end of a line, but then drop the construct (declaration or rule) in which the string was found. For example:


      p {
        color: green;
        font-family: &apos;Courier New Times
        color: red;
        color: green;
      }
...would be treated the same as:


      p { color: green; color: green; }
...because the second declaration (from &apos;font-family&apos; to the semicolon after &apos;color: red&apos;) is invalid and is dropped.&quot;

Both cases are different. 

So I assume the bug report title is incorrect.

The test case uploaded by me is rendered correctly by Opera 10.50 alfa only.

WebKit and Firefox 3.6 fails in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184955</commentid>
    <comment_count>8</comment_count>
    <who name="Robert Blaut">webkit</who>
    <bug_when>2010-01-26 22:59:16 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; testcase:
&gt; http://dev.l-c-n.com/CSS2_parse/parse_content2.html

Philip, your test case is invalid now. Check mismatched selector div:before. I assume you mean p:before.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184958</commentid>
    <comment_count>9</comment_count>
    <who name="Philippe Wittenbergh">phiw2</who>
    <bug_when>2010-01-26 23:11:50 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #5)
&gt; &gt; testcase:
&gt; &gt; http://dev.l-c-n.com/CSS2_parse/parse_content2.html
&gt; 
&gt; Philip, your test case is invalid now. Check mismatched selector div:before. I
&gt; assume you mean p:before.
Oopsie, uploaded the wrong one. Corrected. Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184966</commentid>
    <comment_count>10</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-01-26 23:50:30 -0800</bug_when>
    <thetext>Thanks. Changed the bug summary. Is this good enough?

BTW, I&apos;d like to keep test 1 and 2 in the patch, to assure that
the patch doesn&apos;t break them, although only test 3 is for
&quot;unclosed at the end of stylesheet&quot; case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184969</commentid>
    <comment_count>11</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-01-26 23:53:19 -0800</bug_when>
    <thetext>Eric,

The following are test results.

Safari 4.0 WITH this patch passes all of them.

The attached Testcases, both quirks and standards modes:
IE 8.0: FAIL
FF 3.5: FAIL
Opera 10.10: PASS
Safari 4.0 WITHOUT this patch: FAIL

Test 1 and 2 in the patch (as far as I can tell by watching the screen):
IE 8.0: FAIL
FF 3.5: PASS
Opera 10.10: PASS
Safari 4.0 WITHOUT this patch: PASS

Test 3 (ditto):
IE 8.0: FAIL
FF 3.5: FAIL
Opera 10.10: FAIL
Safari 4.0 WITHOUT this patch: FAIL
(Opera fails to handle unclosed string for font-family property but can handle it for content property. Hmm.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184973</commentid>
    <comment_count>12</comment_count>
    <who name="Robert Blaut">webkit</who>
    <bug_when>2010-01-27 00:00:20 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; The following are test results.

Yuzo, could you link to all mentioned test cases? I&apos;d like to check them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184983</commentid>
    <comment_count>13</comment_count>
      <attachid>47505</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-01-27 00:39:46 -0800</bug_when>
    <thetext>Created attachment 47505
Tests equivalent to those in the patch

These tests should be meaningful for most browsers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184987</commentid>
    <comment_count>14</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-01-27 00:44:18 -0800</bug_when>
    <thetext>Hi, Robert, Eric,

I&apos;ve attached the tests (&quot;Tests equivalent to those in the patch&quot;)
for other browsers.

Correction:
Test 3 passes for IE 8.0.

Test 3
IE 8.0: PASS
FF 3.5: FAIL
Opera 10.10: FAIL
Safari 4.0 WITHOUT this patch: FAIL

Yuzo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185030</commentid>
    <comment_count>15</comment_count>
      <attachid>47517</attachid>
    <who name="Robert Blaut">webkit</who>
    <bug_when>2010-01-27 04:31:51 -0800</bug_when>
    <thetext>Created attachment 47517
Parsing unclosed strings - fixed one test case and more cases

Yuzo,

The test case 3 is incorrect and IE renders it incorrectly. Firefox and Opera are right in this case. Consider this fragment:

font-family: &apos;Arial
&lt;/style&gt;

It means that there is not only &apos;Arial&apos; word but also new line in a string. So above code is equivalent to:

font-family: &apos;Arial\&apos;;
} 

I&apos;ve corrected your test cases and added 2 more.

Only Firefox 3.6 and Opera 10.50 renders it correctly. WebKit fails in tests: 3,4,5.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185032</commentid>
    <comment_count>16</comment_count>
    <who name="Robert Blaut">webkit</who>
    <bug_when>2010-01-27 04:34:51 -0800</bug_when>
    <thetext>Also notice the other bug visible in WebKit in test 3.

WebKit treats:

font-family: &apos;Arial\&apos;;

as

font-family: serif;

Webkit should match no font-family in this case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185413</commentid>
    <comment_count>17</comment_count>
      <attachid>47602</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-01-28 03:46:50 -0800</bug_when>
    <thetext>Created attachment 47602
Change flex rule such that unclosed string is properly closed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185414</commentid>
    <comment_count>18</comment_count>
      <attachid>47603</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-01-28 03:49:07 -0800</bug_when>
    <thetext>Created attachment 47603
New testcase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185415</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-28 03:54:14 -0800</bug_when>
    <thetext>Attachment 47602 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/css/CSSParser.cpp:5344:  yy_more_flag is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/css/CSSParser.cpp:5345:  yy_more_len is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185417</commentid>
    <comment_count>20</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-01-28 03:59:49 -0800</bug_when>
    <thetext>I&apos;ve changed the patch such that WebKit behaves similarly to other browsers.

New testcase results: (test 1, test 2, test 3, test 4)

IE 8.0:      (FAIL, FAIL, PASS, FAIL)
FF 3.6:      (PASS, PASS, PASS, PASS)
Opera 10.10: (PASS, PASS, PASS, PASS)

r53468:      (PASS, PASS, FAIL, PASS)
This patch:  (PASS, PASS, PASS, PASS)

Yuzo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185432</commentid>
    <comment_count>21</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-28 05:00:21 -0800</bug_when>
    <thetext>Attachment 47602 did not build on qt:
Build output: http://webkit-commit-queue.appspot.com/results/216671</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185433</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-28 05:00:34 -0800</bug_when>
    <thetext>Attachment 47602 did not build on gtk:
Build output: http://webkit-commit-queue.appspot.com/results/216673</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185602</commentid>
    <comment_count>23</comment_count>
      <attachid>47602</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-01-28 14:08:16 -0800</bug_when>
    <thetext>Comment on attachment 47602
Change flex rule such that unclosed string is properly closed.

Sorry, this patch contains a few issues. Make it obsolete.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185760</commentid>
    <comment_count>24</comment_count>
      <attachid>47684</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-01-28 23:58:34 -0800</bug_when>
    <thetext>Created attachment 47684
Change flex rule such that unclosed string/url is properly handled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185762</commentid>
    <comment_count>25</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-01-29 00:02:16 -0800</bug_when>
    <thetext>Hi, reviewers,

Can you review the latest patch?

Yuzo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185763</commentid>
    <comment_count>26</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-29 00:03:11 -0800</bug_when>
    <thetext>Attachment 47684 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/css/CSSParser.cpp:5344:  yy_more_flag is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/css/CSSParser.cpp:5345:  yy_more_len is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186603</commentid>
    <comment_count>27</comment_count>
      <attachid>47684</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-01 15:35:37 -0800</bug_when>
    <thetext>Comment on attachment 47684
Change flex rule such that unclosed string/url is properly handled.

Please explain the changes to fast/css/font_property_normal.html in the ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186733</commentid>
    <comment_count>28</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-01 17:49:10 -0800</bug_when>
    <thetext>Hi, Eric,

Thank you for the review.

LayoutTests/Changelog contains:
    Note that LayoutTests/fast/css/font_property_normal.html is changed because it has contained wrong quotes.

Do you need more detailed description?

Yuzo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186820</commentid>
    <comment_count>29</comment_count>
    <who name="Robert Blaut">webkit</who>
    <bug_when>2010-02-01 23:22:47 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; (From update of attachment 47684 [details])
&gt; Please explain the changes to fast/css/font_property_normal.html in the
&gt; ChangeLog.

There are quotes inserted there by mistake. Probably from copy and paste of https://bugs.webkit.org/show_bug.cgi?id=5564#c1 These quotes are now incorrectly ignored by WebKit. 

This stylesheet:
 
&lt;STYLE type=&quot;text/css&quot;&gt;
.one {font: 24pt italic;&quot;}
.two {font: 24pt italic Arial;}
.three {font: 24pt italic &apos;Arial&apos;;}
.four {font: italic 24pt;}
.five {font: italic 24pt Arial;&quot;}
.six {font: italic 24pt &apos;Arial&apos;;}
.seven {font: Arial 24pt italic;}
.eight {font: &apos;Arial&apos; 24pt italic;}
.nine {font: Arial italic 24pt;}
.ten {font: &apos;Arial&apos; italic 24pt;}
&lt;/STYLE&gt;

according CSS 2.1 - http://www.w3.org/TR/CSS21/syndata.html#block - &quot;Single (&apos;) and double quotes (&quot;) must also occur in matching pairs, and characters between them are parsed as a string.&quot; is equivalent to this stylesheet:

&lt;STYLE type=&quot;text/css&quot;&gt;
.one {font: 24pt italic;}
.six {font: italic 24pt &apos;Arial&apos;;}
.seven {font: Arial 24pt italic;}
.eight {font: &apos;Arial&apos; 24pt italic;}
.nine {font: Arial italic 24pt;}
.ten {font: &apos;Arial&apos; italic 24pt;}
&lt;/STYLE&gt;

After applying Yuzo patch the above mentioned test case should be fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188561</commentid>
    <comment_count>30</comment_count>
      <attachid>48317</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-07 22:35:33 -0800</bug_when>
    <thetext>Created attachment 48317
Change flex rule such that unclosed string/url is properly handled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188562</commentid>
    <comment_count>31</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-07 22:38:22 -0800</bug_when>
    <thetext>Hi, Eric,

Can you take another look?

As to fast/css/font_property_normal.html, I&apos;ve quoted Robert&apos;s comment above.
As to the style error, I believe we should ignore it because the names are defined by flex.

Yuzo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188564</commentid>
    <comment_count>32</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-02-07 22:41:14 -0800</bug_when>
    <thetext>Attachment 48317 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/css/CSSParser.cpp:5344:  yy_more_flag is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/css/CSSParser.cpp:5345:  yy_more_len is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189284</commentid>
    <comment_count>33</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-10 01:37:04 -0800</bug_when>
    <thetext>As to the style check failure,
please see https://bugs.webkit.org/show_bug.cgi?id=34787</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189926</commentid>
    <comment_count>34</comment_count>
      <attachid>48621</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-11 21:39:26 -0800</bug_when>
    <thetext>Created attachment 48621
Change flex rule such that unclosed string/url is properly handled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>189927</commentid>
    <comment_count>35</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-11 21:40:26 -0800</bug_when>
    <thetext>Added NOLINT for yy_* identifiers.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190104</commentid>
    <comment_count>36</comment_count>
      <attachid>48621</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-02-12 11:17:23 -0800</bug_when>
    <thetext>Comment on attachment 48621
Change flex rule such that unclosed string/url is properly handled.

&gt; -typedef int yy_state_type;
&gt; +typedef int yy_state_type; // NOLINT

What tool respects these comments? I have not seen them in WebKit before.

&gt; +#define yytext_ptr yytext

Why is this added? The change log has no mention of it. Is it related to the rest of the changes somehow?

&gt; +static int yy_more_flag = 0; // NOLINT
&gt; +static int yy_more_len = 0; // NOLINT

Why are we now defining these here? The change log does not explain how this change relates to what the patch is doing.

&gt; +#define yymore() ((yy_more_flag) = 1)

Why is this a macro instead of a function? Why does it have a bison/flex style name?

&gt; +#define dquoted_string 3
&gt; +#define squoted_string 4
&gt; +#define uri 5
&gt; +#define uri_pending 6

Why are you using underscores in these names? Can&apos;t these follow normal WebKit naming?

&gt; +#define YY_START (((yy_start) - 1) / 2)

What is this for?

&gt; +    int string_caller = INITIAL;
&gt; +    int uri_caller = INITIAL;
&gt; +    int content_length = 0;
&gt; +    int content_offest = 0;

Can&apos;t these follow normal WebKit naming conventions? I don&apos;t see any reason to use a different naming style here.

These names seem a bit vague to me. What specific content is the &quot;content&quot; in &quot;content offset&quot;? I think we can do better naming this.

I also see this code twice. Once in maketokenizer and once in the flex file. Is that correct?

&gt; +    BEGIN(string_caller == uri ? uri_pending : string_caller);

I&apos;m not sure that &quot;caller&quot; is the clearest term we could use use here. Maybe &quot;token&quot; would be clearer (or perhaps &quot;context&quot; or &quot;type&quot;). I don&apos;t really understand what these represent, which I suppose is why I don&apos;t get what the names should be.

&gt; +    default:
&gt; +        yyterminate();

I think ASSERT_NOT_REACHED is more appropriate here than yyterminate. Unless this code can be reached.

Do the new test cases cover all the code paths here? If I put an ASSERT_NOT_REACHED in each rule, would I have to remove them all to pass the test?

I&apos;m going to say review- for now because I think the new code is not well enough documented, does not follow WebKit style as much as it should, may not be well tested, and is hard for me to understand despite that fact that I am familiar with both CSS and flex. Maybe you can&apos;t solve all of those problems, but please try to solve at least some of them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190613</commentid>
    <comment_count>37</comment_count>
      <attachid>48792</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-15 23:45:15 -0800</bug_when>
    <thetext>Created attachment 48792
Change flex rule such that unclosed string/url is properly handled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190614</commentid>
    <comment_count>38</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-15 23:49:10 -0800</bug_when>
    <thetext>Hi, Darin,

Thank you for reviewing this!

(In reply to comment #36)
&gt; (From update of attachment 48621 [details])
&gt; &gt; -typedef int yy_state_type;
&gt; &gt; +typedef int yy_state_type; // NOLINT
&gt;
&gt; What tool respects these comments? I have not seen them in WebKit before.

WebKitTools/Scripts/check-webkit-style (more specifically,
WebKitTools/Scripts/webkitpy/style/processors/cpp.py) respects them.

Now that https://bugs.webkit.org/show_bug.cgi?id=34787 is closed,
I removed the comments.

&gt;
&gt; &gt; +#define yytext_ptr yytext
&gt;
&gt; Why is this added? The change log has no mention of it. Is it related to the
&gt; rest of the changes somehow?

This is needed for flex to support yymore().

I&apos;ve moved the definition to WebCore/css/maketokenizer.

&gt;
&gt; &gt; +static int yy_more_flag = 0; // NOLINT
&gt; &gt; +static int yy_more_len = 0; // NOLINT
&gt;
&gt; Why are we now defining these here? The change log does not explain how this
&gt; change relates to what the patch is doing.

I&apos;ve updated the Change log.
Also, I&apos;ve moved yy_more_{flag,len} to WebCore/css/maketokenizer.

&gt;
&gt; &gt; +#define yymore() ((yy_more_flag) = 1)
&gt;
&gt; Why is this a macro instead of a function? Why does it have a bison/flex style
&gt; name?

yymore() is a flex function (or macro):
http://flex.sourceforge.net/manual/Actions.html#index-yymore_0028_0029-115

&gt;
&gt; &gt; +#define dquoted_string 3
&gt; &gt; +#define squoted_string 4
&gt; &gt; +#define uri 5
&gt; &gt; +#define uri_pending 6
&gt;
&gt; Why are you using underscores in these names? Can&apos;t these follow normal WebKit
&gt; naming?

They are flex start condition names.
I&apos;ve chosen to use underscores because mediaquery and forkeyword
are not in CamelCase.

&gt;
&gt; &gt; +#define YY_START (((yy_start) - 1) / 2)
&gt;
&gt; What is this for?

This is now needed because I use YY_START in WebCore/css/tokenizer.flex.
http://flex.sourceforge.net/manual/Start-Conditions.html#Start-Conditions

I&apos;ve moved it to WebCore/css/maketokenizer.

&gt;
&gt; &gt; +    int string_caller = INITIAL;
&gt; &gt; +    int uri_caller = INITIAL;
&gt; &gt; +    int content_length = 0;
&gt; &gt; +    int content_offest = 0;
&gt;
&gt; Can&apos;t these follow normal WebKit naming conventions? I don&apos;t see any reason to
&gt; use a different naming style here.

They are used in tokenizer.flex where underscored names are used.

I can change them to stringCaller, etc., if you prefer.

&gt;
&gt; These names seem a bit vague to me. What specific content is the &quot;content&quot; in
&gt; &quot;content offset&quot;? I think we can do better naming this.

OK, renamed content to string_or_uri_content.

&gt;
&gt; I also see this code twice. Once in maketokenizer and once in the flex file. Is
&gt; that correct?

I found that I can remove the ones in tokenizer.flex. Removed.

&gt;
&gt; &gt; +    BEGIN(string_caller == uri ? uri_pending : string_caller);
&gt;
&gt; I&apos;m not sure that &quot;caller&quot; is the clearest term we could use use here. Maybe
&gt; &quot;token&quot; would be clearer (or perhaps &quot;context&quot; or &quot;type&quot;). I don&apos;t really
&gt; understand what these represent, which I suppose is why I don&apos;t get what the
&gt; names should be.

http://flex.sourceforge.net/manual/Start-Conditions.html#Start-Conditions
uses *_caller naming. That&apos;s why I named the variables that way.
I&apos;m open to changing the names if you prefer otherwise.

&gt;
&gt; &gt; +    default:
&gt; &gt; +        yyterminate();
&gt;
&gt; I think ASSERT_NOT_REACHED is more appropriate here than yyterminate. Unless
&gt; this code can be reached.
&gt;
&gt; Do the new test cases cover all the code paths here? If I put an
&gt; ASSERT_NOT_REACHED in each rule, would I have to remove them all to pass the
&gt; test?

The default case is reached if the start condition is either
INITIAL, mediaquery, or forkeyword.

&gt;
&gt; I&apos;m going to say review- for now because I think the new code is not well
&gt; enough documented, does not follow WebKit style as much as it should, may not
&gt; be well tested, and is hard for me to understand despite that fact that I am
&gt; familiar with both CSS and flex. Maybe you can&apos;t solve all of those problems,
&gt; but please try to solve at least some of them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190922</commentid>
    <comment_count>39</comment_count>
      <attachid>48868</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-17 00:49:59 -0800</bug_when>
    <thetext>Created attachment 48868
Change flex rule such that unclosed string/url is properly handled.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>190923</commentid>
    <comment_count>40</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-02-17 00:50:55 -0800</bug_when>
    <thetext>Added explanation to WebCore/ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>197086</commentid>
    <comment_count>41</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-03-08 00:29:31 -0800</bug_when>
    <thetext>Ping? This is blocking 6891.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199550</commentid>
    <comment_count>42</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-03-14 23:43:02 -0700</bug_when>
    <thetext>Ping again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199789</commentid>
    <comment_count>43</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-15 13:16:54 -0700</bug_when>
    <thetext>Tip for the future:

Information is always more useful in the ChangeLog than in the bug.  Because ChangeLogs are what reviewers use during reviews, bugs (like this one) tend to get crowded and hard to read.

In this case, I had to go digging to find if this made us match FF/IE

A comment in the ChangeLog that this makes our behavior match various other browsers (listing which ones and how) would make this review easier.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199791</commentid>
    <comment_count>44</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-15 13:18:21 -0700</bug_when>
    <thetext>Basically in posting patches for review, you want to make it as easy as possible for a reviewer to say yes.  Passing style, passing EWS bots, having tests, having a nice long ChangeLog, saying nice things in the ChangeLog like &quot;fixes crash&quot; or &quot;matches other browsers&quot;, all make hitting that r+ button very easy. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>199794</commentid>
    <comment_count>45</comment_count>
      <attachid>48868</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-03-15 13:21:22 -0700</bug_when>
    <thetext>Comment on attachment 48868
Change flex rule such that unclosed string/url is properly handled.

As much as I woudl like to r+ this, I do not trust my yacc skills enough to give this a final r+.  In general it looks good though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>202525</commentid>
    <comment_count>46</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-03-22 09:08:03 -0700</bug_when>
    <thetext>I wanted to review this patch, but was unable to.  It&apos;s unclear to me whether you actually address Darin&apos;s comments.  You seemed to reject all of them, but I&apos;m not sure whether he was satisfied with your responses.

Who&apos;s a good person to review changes to the CSS parser?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>206984</commentid>
    <comment_count>47</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-03-31 23:39:38 -0700</bug_when>
    <thetext>Hi, Darin,

Would you mind taking another look?

Yuzo</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209073</commentid>
    <comment_count>48</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-04-06 09:20:12 -0700</bug_when>
    <thetext>(In reply to comment #38)
&gt; &gt; &gt; +#define yymore() ((yy_more_flag) = 1)
&gt; &gt;
&gt; &gt; Why is this a macro instead of a function? Why does it have a bison/flex style
&gt; &gt; name?
&gt; 
&gt; yymore() is a flex function (or macro):
&gt; http://flex.sourceforge.net/manual/Actions.html#index-yymore_0028_0029-115

You answered my second question, but ignored the first. Why is this a macro instead of a function? Please make it a function unless it must be a macro.

&gt; &gt; &gt; +#define dquoted_string 3
&gt; &gt; &gt; +#define squoted_string 4
&gt; &gt; &gt; +#define uri 5
&gt; &gt; &gt; +#define uri_pending 6
&gt; &gt;
&gt; &gt; Why are you using underscores in these names? Can&apos;t these follow normal WebKit
&gt; &gt; naming?
&gt; 
&gt; They are flex start condition names.
&gt; I&apos;ve chosen to use underscores because mediaquery and forkeyword
&gt; are not in CamelCase.

You should not do that. Instead please follow normal WebKit naming. You don&apos;t need to rename existing conditions, but you may if you like.

&gt; &gt; &gt; +    int string_caller = INITIAL;
&gt; &gt; &gt; +    int uri_caller = INITIAL;
&gt; &gt; &gt; +    int content_length = 0;
&gt; &gt; &gt; +    int content_offest = 0;
&gt; &gt;
&gt; &gt; Can&apos;t these follow normal WebKit naming conventions? I don&apos;t see any reason to
&gt; &gt; use a different naming style here.
&gt; 
&gt; They are used in tokenizer.flex where underscored names are used.
&gt; 
&gt; I can change them to stringCaller, etc., if you prefer.

Yes, I would like you to make that change.

&gt; &gt; &gt; +    BEGIN(string_caller == uri ? uri_pending : string_caller);
&gt; &gt;
&gt; &gt; I&apos;m not sure that &quot;caller&quot; is the clearest term we could use use here. Maybe
&gt; &gt; &quot;token&quot; would be clearer (or perhaps &quot;context&quot; or &quot;type&quot;). I don&apos;t really
&gt; &gt; understand what these represent, which I suppose is why I don&apos;t get what the
&gt; &gt; names should be.
&gt; 
&gt; http://flex.sourceforge.net/manual/Start-Conditions.html#Start-Conditions
&gt; uses *_caller naming. That&apos;s why I named the variables that way.
&gt; I&apos;m open to changing the names if you prefer otherwise.

Yes, I think you should use some other name. I do see that identifier named comment_caller in the example in the Flex manual, but I think it&apos;s not really clear.

&gt; &gt; &gt; +    default:
&gt; &gt; &gt; +        yyterminate();
&gt; &gt;
&gt; &gt; I think ASSERT_NOT_REACHED is more appropriate here than yyterminate. Unless
&gt; &gt; this code can be reached.
&gt; &gt;
&gt; &gt; Do the new test cases cover all the code paths here? If I put an
&gt; &gt; ASSERT_NOT_REACHED in each rule, would I have to remove them all to pass the
&gt; &gt; test?
&gt; 
&gt; The default case is reached if the start condition is either
&gt; INITIAL, mediaquery, or forkeyword.

I don&apos;t understand how this sentence answers my question.

Do the test cases cover all these code paths or not?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209943</commentid>
    <comment_count>49</comment_count>
      <attachid>52812</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-04-07 17:49:03 -0700</bug_when>
    <thetext>Created attachment 52812
Fix unclosed string/url handling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209947</commentid>
    <comment_count>50</comment_count>
      <attachid>52814</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-04-07 17:53:04 -0700</bug_when>
    <thetext>Created attachment 52814
Fix unclosed string/url handling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>209948</commentid>
    <comment_count>51</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-07 17:54:26 -0700</bug_when>
    <thetext>Attachment 52814 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebCore/css/CSSParser.h:261:  yy_more_flag is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/css/CSSParser.h:262:  yy_more_len is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2 in 9 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>209955</commentid>
    <comment_count>52</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-04-07 18:08:55 -0700</bug_when>
    <thetext>Thank you very much for the review.

(In reply to comment #48)
&gt; (In reply to comment #38)
&gt; &gt; &gt; &gt; +#define yymore() ((yy_more_flag) = 1)
&gt; &gt; &gt;
&gt; &gt; &gt; Why is this a macro instead of a function? Why does it have a bison/flex style
&gt; &gt; &gt; name?
&gt; &gt; 
&gt; &gt; yymore() is a flex function (or macro):
&gt; &gt; http://flex.sourceforge.net/manual/Actions.html#index-yymore_0028_0029-115
&gt; 
&gt; You answered my second question, but ignored the first. Why is this a macro
&gt; instead of a function? Please make it a function unless it must be a macro.

Changed yymore to be a method of CSSParser.

&gt; 
&gt; &gt; &gt; &gt; +#define dquoted_string 3
&gt; &gt; &gt; &gt; +#define squoted_string 4
&gt; &gt; &gt; &gt; +#define uri 5
&gt; &gt; &gt; &gt; +#define uri_pending 6
&gt; &gt; &gt;
&gt; &gt; &gt; Why are you using underscores in these names? Can&apos;t these follow normal WebKit
&gt; &gt; &gt; naming?
&gt; &gt; 
&gt; &gt; They are flex start condition names.
&gt; &gt; I&apos;ve chosen to use underscores because mediaquery and forkeyword
&gt; &gt; are not in CamelCase.
&gt; 
&gt; You should not do that. Instead please follow normal WebKit naming. You don&apos;t
&gt; need to rename existing conditions, but you may if you like.

Renamed them doubleQuotedStringState, etc.
Also renamed the existing ones.

I named them *State rather than *StartCondition, because
State should sound more familiar to more people
and, less importantly, StartCondition is too long as suffix.

&gt; 
&gt; &gt; &gt; &gt; +    int string_caller = INITIAL;
&gt; &gt; &gt; &gt; +    int uri_caller = INITIAL;
&gt; &gt; &gt; &gt; +    int content_length = 0;
&gt; &gt; &gt; &gt; +    int content_offest = 0;
&gt; &gt; &gt;
&gt; &gt; &gt; Can&apos;t these follow normal WebKit naming conventions? I don&apos;t see any reason to
&gt; &gt; &gt; use a different naming style here.
&gt; &gt; 
&gt; &gt; They are used in tokenizer.flex where underscored names are used.
&gt; &gt; 
&gt; &gt; I can change them to stringCaller, etc., if you prefer.
&gt; 
&gt; Yes, I would like you to make that change.
&gt; 
&gt; &gt; &gt; &gt; +    BEGIN(string_caller == uri ? uri_pending : string_caller);
&gt; &gt; &gt;
&gt; &gt; &gt; I&apos;m not sure that &quot;caller&quot; is the clearest term we could use use here. Maybe
&gt; &gt; &gt; &quot;token&quot; would be clearer (or perhaps &quot;context&quot; or &quot;type&quot;). I don&apos;t really
&gt; &gt; &gt; understand what these represent, which I suppose is why I don&apos;t get what the
&gt; &gt; &gt; names should be.
&gt; &gt; 
&gt; &gt; http://flex.sourceforge.net/manual/Start-Conditions.html#Start-Conditions
&gt; &gt; uses *_caller naming. That&apos;s why I named the variables that way.
&gt; &gt; I&apos;m open to changing the names if you prefer otherwise.
&gt; 
&gt; Yes, I think you should use some other name. I do see that identifier named
&gt; comment_caller in the example in the Flex manual, but I think it&apos;s not really
&gt; clear.

Renamed string_caller stringPreState, etc.
I hope the meaning is clearer this way.

Also, I&apos;ve changed the variables to CSSParser instance variables.
I believe it must not be static variable as in the previous patch. 

&gt; 
&gt; &gt; &gt; &gt; +    default:
&gt; &gt; &gt; &gt; +        yyterminate();
&gt; &gt; &gt;
&gt; &gt; &gt; I think ASSERT_NOT_REACHED is more appropriate here than yyterminate. Unless
&gt; &gt; &gt; this code can be reached.
&gt; &gt; &gt;
&gt; &gt; &gt; Do the new test cases cover all the code paths here? If I put an
&gt; &gt; &gt; ASSERT_NOT_REACHED in each rule, would I have to remove them all to pass the
&gt; &gt; &gt; test?
&gt; &gt; 
&gt; &gt; The default case is reached if the start condition is either
&gt; &gt; INITIAL, mediaquery, or forkeyword.
&gt; 
&gt; I don&apos;t understand how this sentence answers my question.
&gt; 
&gt; Do the test cases cover all these code paths or not?

Yes. yyterminate is called when the tests run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218249</commentid>
    <comment_count>53</comment_count>
      <attachid>54534</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-04-28 00:52:04 -0700</bug_when>
    <thetext>Created attachment 54534
Fix unclosed string/url handling.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>218250</commentid>
    <comment_count>54</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-04-28 00:53:09 -0700</bug_when>
    <thetext>Attachment 54534 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;, &apos;--no-squash&apos;]&quot; exit_code: 1
WebCore/css/CSSParser.h:277:  yy_more_flag is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/css/CSSParser.h:278:  yy_more_len is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2 in 9 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>218253</commentid>
    <comment_count>55</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-04-28 00:58:10 -0700</bug_when>
    <thetext>Hi, Darin,

Can you take yet another look?
This time I&apos;ve addressed all of your comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>226694</commentid>
    <comment_count>56</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-17 01:48:28 -0700</bug_when>
    <thetext>This is a very scary change to review. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>240968</commentid>
    <comment_count>57</comment_count>
      <attachid>54534</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-06-21 16:49:44 -0700</bug_when>
    <thetext>Comment on attachment 54534
Fix unclosed string/url handling.

Sigh.  Not sure how to make progress here.  I wish the CSS spec defined a parsing algorithm in the same level of detail as the HTML spec.  In any case, we need a CSS parsing expert to review this change.

Drive-by:

WebCore/css/CSSParser.h:266
 +          void yymore() {(yy_more_flag) = 1; /* Copied from flex ouput. */}
Surely the parenthesis aren&apos;t needed here now that this isn&apos;t a macro.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>258546</commentid>
    <comment_count>58</comment_count>
      <attachid>54534</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2010-07-30 22:46:56 -0700</bug_when>
    <thetext>Comment on attachment 54534
Fix unclosed string/url handling.

LayoutTests/fast/css/parsing-unclosed-string-expected.txt:6
 +  Test 1(ref) Test 1(test) 
I don&apos;t understand these messages. You should rephrase the messages to make clear what they&apos;re supposed to explain.

WebCore/css/maketokenizer:57
 +  #define YY_START (((yy_start) - 1) / 2)
This meaning is unclear.

WebCore/css/maketokenizer:58
 +  #define yytext_ptr yytext
This seems unused.


WebCore/css/tokenizer.flex:79
 +          yyleng--; // Remove the &apos;\0&apos; representing EOF.
// Remove the ...
--yyleng;

Comment should go on the line before.

WebCore/css/CSSParser.h:266
 +          void yymore() {(yy_more_flag) = 1; /* Copied from flex ouput. */}
I don&apos;t get this concept. yymore() gets called by the lexer, but all it does is setting CSSParsers yy_more_flag member variable -- the variable seems not used at all to me.

WebCore/css/CSSParser.h:278
 +          int yy_more_len;
This is completly unused.

Please clear up these issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262020</commentid>
    <comment_count>59</comment_count>
      <attachid>63869</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-08-09 01:43:49 -0700</bug_when>
    <thetext>Created attachment 63869
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262021</commentid>
    <comment_count>60</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-08-09 01:44:09 -0700</bug_when>
    <thetext>Hi, thank you for the reviews.

(In reply to comment #57)
&gt; (From update of attachment 54534 [details])
&gt; Sigh.  Not sure how to make progress here.  I wish the CSS spec defined a parsing algorithm in the same level of detail as the HTML spec.  In any case, we need a CSS parsing expert to review this change.
&gt; 
&gt; Drive-by:
&gt; 
&gt; WebCore/css/CSSParser.h:266
&gt;  +          void yymore() {(yy_more_flag) = 1; /* Copied from flex ouput. */}
&gt; Surely the parenthesis aren&apos;t needed here now that this isn&apos;t a macro.

Done.


(In reply to comment #58)
&gt; (From update of attachment 54534 [details])
&gt; LayoutTests/fast/css/parsing-unclosed-string-expected.txt:6
&gt;  +  Test 1(ref) Test 1(test) 
&gt; I don&apos;t understand these messages. You should rephrase the messages to make clear what they&apos;re supposed to explain.

Changed such that the tests are more self-explanatory.

&gt; 
&gt; WebCore/css/maketokenizer:57
&gt;  +  #define YY_START (((yy_start) - 1) / 2)
&gt; This meaning is unclear.

This and other seemingly unused variables/functions are actually used in
piece of code generated by flex. Added comments.

&gt; 
&gt; WebCore/css/maketokenizer:58
&gt;  +  #define yytext_ptr yytext
&gt; This seems unused.
&gt; 
&gt; 
&gt; WebCore/css/tokenizer.flex:79
&gt;  +          yyleng--; // Remove the &apos;\0&apos; representing EOF.
&gt; // Remove the ...
&gt; --yyleng;
&gt; 
&gt; Comment should go on the line before.

Done.

&gt; 
&gt; WebCore/css/CSSParser.h:266
&gt;  +          void yymore() {(yy_more_flag) = 1; /* Copied from flex ouput. */}
&gt; I don&apos;t get this concept. yymore() gets called by the lexer, but all it does is setting CSSParsers yy_more_flag member variable -- the variable seems not used at all to me.
&gt; 
&gt; WebCore/css/CSSParser.h:278
&gt;  +          int yy_more_len;
&gt; This is completly unused.
&gt; 
&gt; Please clear up these issues.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>262022</commentid>
    <comment_count>61</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-08-09 01:46:43 -0700</bug_when>
    <thetext>Attachment 63869 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/css/CSSParser.h:297:  yy_more_flag is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
WebCore/css/CSSParser.h:298:  yy_more_len is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 2 in 9 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>301617</commentid>
    <comment_count>62</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-10-29 00:15:16 -0700</bug_when>
    <thetext>Ping?

I think we should ignore style error warnings here, because the names are used by flex.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>312222</commentid>
    <comment_count>63</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2010-11-21 22:22:49 -0800</bug_when>
    <thetext>Ping again? This is blocking 6891.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329666</commentid>
    <comment_count>64</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-01-05 11:03:24 -0800</bug_when>
    <thetext>I didn&apos;t look at the patch, but just wanted to point out that Hixie has some good test cases here:
http://www.hixie.ch/tests/adhoc/css/parsing/core-syntax/strings/investigation/002.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>329670</commentid>
    <comment_count>65</comment_count>
    <who name="Tony Gentilcore">tonyg</who>
    <bug_when>2011-01-05 11:04:58 -0800</bug_when>
    <thetext>*** Bug 18612 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332175</commentid>
    <comment_count>66</comment_count>
      <attachid>78499</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2011-01-11 00:24:51 -0800</bug_when>
    <thetext>Created attachment 78499
Pre Source/WebCore move</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332177</commentid>
    <comment_count>67</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-11 00:28:02 -0800</bug_when>
    <thetext>Attachment 78499 did not build on gtk:
Build output: http://queues.webkit.org/results/7337474</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332178</commentid>
    <comment_count>68</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-11 00:31:03 -0800</bug_when>
    <thetext>Attachment 78499 did not build on chromium:
Build output: http://queues.webkit.org/results/7354141</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332179</commentid>
    <comment_count>69</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-01-11 00:31:53 -0800</bug_when>
    <thetext>Attachment 78499 did not build on qt:
Build output: http://queues.webkit.org/results/7438105</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332191</commentid>
    <comment_count>70</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-11 01:14:28 -0800</bug_when>
    <thetext>Attachment 78499 did not build on chromium:
Build output: http://queues.webkit.org/results/7385115</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332195</commentid>
    <comment_count>71</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-01-11 01:44:35 -0800</bug_when>
    <thetext>Attachment 78499 did not build on mac:
Build output: http://queues.webkit.org/results/7413115</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332230</commentid>
    <comment_count>72</comment_count>
      <attachid>78499</attachid>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2011-01-11 03:21:55 -0800</bug_when>
    <thetext>Comment on attachment 78499
Pre Source/WebCore move

Sorry, wrong patch (webkit-patch has been confused by the change log).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>332231</commentid>
    <comment_count>73</comment_count>
    <who name="Yuzo Fujishima">yuzo</who>
    <bug_when>2011-01-11 03:22:56 -0800</bug_when>
    <thetext>I&apos;m releasing ownership of this bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>555600</commentid>
    <comment_count>74</comment_count>
    <who name="Robert Hogan">robert</who>
    <bug_when>2012-02-13 14:20:35 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 78538 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>47310</attachid>
            <date>2010-01-24 21:47:04 -0800</date>
            <delta_ts>2010-01-26 22:49:30 -0800</delta_ts>
            <desc>Testcase</desc>
            <filename>unclosed-string.html</filename>
            <type>text/html</type>
            <size>247</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+CjxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0Pgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgpwOmJlZm9yZSB7CiAg
ICBjb250ZW50OiAnSGFzIG5vdCAKPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KPHA+RmFpbGVkLjwv
cD4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47312</attachid>
            <date>2010-01-24 21:57:00 -0800</date>
            <delta_ts>2010-01-28 03:47:23 -0800</delta_ts>
            <desc>Change flex rule such that unclosed string is properly closed.</desc>
            <filename>bug-34067-20100125145658.patch</filename>
            <type>text/plain</type>
            <size>10415</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmZjIwMTMwLi5hNWZkNzM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDEt
MjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBmbGV4IHJ1bGUgc3VjaCB0aGF0
IHVuY2xvc2VkIHN0cmluZyBpcyBwcm9wZXJseSBjbG9zZWQuCisgICAgICAgIGh0dHA6Ly93d3cu
dzMub3JnL1RSL0NTUzIxL3N5bmRhdGEuaHRtbCNwYXJzaW5nLWVycm9ycyBzcGVjaWZpZXMgaG93
IHVuY2xvc2VkIHN0cmluZ3MgbXVzdCBiZSBoYW5kbGVkLiBXaXRob3V0IHRoaXMgcGF0Y2gsIFdl
YktpdCBpZ25vcmVzIHVuY2xvc2VkIHN0cmluZ3MuCisgICAgICAgIE5vdGUgdGhhdCBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5odG1sIGlzIGNoYW5nZWQgYmVjYXVz
ZSBpdCBoYXMgY29udGFpbmVkIHdyb25nIHF1b3Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MDY3CisKKyAgICAgICAgKiBmYXN0L2Nzcy9mb250
X3Byb3BlcnR5X25vcm1hbC5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctdW5jbG9z
ZWQtc3RyaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvcGFyc2lu
Zy11bmNsb3NlZC1zdHJpbmcuaHRtbDogQWRkZWQuCisKIDIwMTAtMDEtMTEgIEtlbnQgVGFtdXJh
ICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZC4gUmVtb3ZlIGEgZHVw
bGljYXRlZCBsaW5lIGluIGFuIGV4cGVjdGF0aW9uIGZpbGUuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvZm9udF9wcm9wZXJ0eV9ub3JtYWwuaHRtbAppbmRleCAyY2ZiMzQ3Li5jNDdmZWJlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWwKQEAg
LTMsMTEgKzMsMTEgQEAKIDxIRUFEPgogPFRJVExFPlRlc3RpbmcgdmFsaWQgZm9udCBwcm9wZXJ0
eSBzcGVjaWZpY2F0aW9uPC9USVRMRT4KIDxTVFlMRSB0eXBlPSJ0ZXh0L2NzcyI+Ci0ub25lIHtm
b250OiAyNHB0IGl0YWxpYzsifQorLm9uZSB7Zm9udDogMjRwdCBpdGFsaWM7fQogLnR3byB7Zm9u
dDogMjRwdCBpdGFsaWMgQXJpYWw7fQogLnRocmVlIHtmb250OiAyNHB0IGl0YWxpYyAnQXJpYWwn
O30KIC5mb3VyIHtmb250OiBpdGFsaWMgMjRwdDt9Ci0uZml2ZSB7Zm9udDogaXRhbGljIDI0cHQg
QXJpYWw7In0KKy5maXZlIHtmb250OiBpdGFsaWMgMjRwdCBBcmlhbDt9CiAuc2l4IHtmb250OiBp
dGFsaWMgMjRwdCAnQXJpYWwnO30KIC5zZXZlbiB7Zm9udDogQXJpYWwgMjRwdCBpdGFsaWM7fQog
LmVpZ2h0IHtmb250OiAnQXJpYWwnIDI0cHQgaXRhbGljO30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3RyaW5nLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4xYjJiMmNkCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmNsb3NlZC1zdHJpbmctZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMjAgQEAKK1Rlc3RzIGlmIHVuY2xvc2VkIHN0cmluZ3MgYXJlIHBhcnNl
ZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3QgMQorCitU
ZXN0IDIKKworVGVzdCAzCisKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxJywgJ2ZvbnQtZmFtaWx5
JykgaXMgIidGb250IE9uZSciCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MicsICdmb250LWZhbWls
eScpIGlzICInRm9udCBaZXJvJyIKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QyJywgJ2NvbG9yJykg
aXMgInJnYigwLCAwLCAwKSIKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QyJywgJ2ZvbnQtd2VpZ2h0
JykgaXMgImJvbGQiCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MycsICdmb250LWZhbWlseScpIGlz
ICInRm9udCBUaHJlZSciCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmNs
b3NlZC1zdHJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQt
c3RyaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMDQ0MmE5YQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQt
c3RyaW5nLmh0bWwKQEAgLTAsMCArMSw1OSBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0i
c3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxz
Y3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0
eWxlIHR5cGU9InRleHQvY3NzIj4KKyogeworICAgIGNvbG9yOiBibGFjazsKKyAgICBmb250LWZh
bWlseTogJ0ZvbnQgWmVybyc7CisgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKK30KKworI3Rlc3Qx
IHsKKyAgICBmb250LWZhbWlseTogJ0ZvbnQgXAorT25lJzsKK30KKyN0ZXN0MiB7CisgICAgZm9u
dC1mYW1pbHk6ICdGb250IFR3bworICAgIGNvbG9yOnJlZDsKKyAgICBmb250LXdlaWdodDogYm9s
ZDsKK30KKyN0ZXN0MyB7CisgICAgZm9udC1mYW1pbHk6ICdGb250IFRocmVlCis8L3N0eWxlPgor
PC9oZWFkPgorPGJvZHk+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxoci8+CisKKzxwIGlk
PSJ0ZXN0MSI+VGVzdCAxPC9wPgorPHAgaWQ9InRlc3QyIj5UZXN0IDI8L3A+Cis8cCBpZD0idGVz
dDMiPlRlc3QgMzwvcD4KKworPGhyLz4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2Ny
aXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIGlmIHVuY2xvc2VkIHN0cmluZ3MgYXJlIHBhcnNlZCBw
cm9wZXJseS4iKTsKKworZnVuY3Rpb24gZ2V0UHJvcGVydHkoZWxlbWVudElkLCBuYW1lKQorewor
ICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZChlbGVtZW50SWQpKS5nZXRQcm9wZXJ0eVZhbHVlKG5hbWUpOworfQorCisvKiAnRm9udCBcPG5l
d2xpbmU+T25lJyBtdXN0IGJlIGVxdWl2YWxlbnQgdG8gJ0ZvbnQgT25lJy4gKi8KK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygiZ2V0UHJvcGVydHkoJ3Rlc3QxJywgJ2ZvbnQtZmFtaWx5JykiLCAiJ0Zv
bnQgT25lJyIpOworCisvKiBEZWZpbml0aW9ucyBmb3IgZm9udC1mYW1pbHkgYW5kIGNvbG9yIG11
c3QgYmUgc2tpcHBlZCBiZWNhdXNlICdGb250IFR3byBpcyB1bmNsb3NlZC4gKi8KK3Nob3VsZEJl
RXF1YWxUb1N0cmluZygiZ2V0UHJvcGVydHkoJ3Rlc3QyJywgJ2ZvbnQtZmFtaWx5JykiLCAiJ0Zv
bnQgWmVybyciKTsKK3Nob3VsZEJlRXF1YWxUb1N0cmluZygiZ2V0UHJvcGVydHkoJ3Rlc3QyJywg
J2NvbG9yJykiLCAicmdiKDAsIDAsIDApIik7CitzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldFBy
b3BlcnR5KCd0ZXN0MicsICdmb250LXdlaWdodCcpIiwgImJvbGQiKTsKKworLyogQWx0aG91Z2gg
J0ZvbnQgVGhyZWUgaXMgdW5jbG9zZWQsIGl0IG11c3QgYmUgdHJlYXRlZCBhcyBpZiBpdCB3ZXJl
IGNsb3NlZCwgYmVjYXVzZSBpdCBpcyBhdCB0aGUgZW5kIG9mIHRoZSBzdHlsZXNoZWV0LiAqLwor
c2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRQcm9wZXJ0eSgndGVzdDMnLCAnZm9udC1mYW1pbHkn
KSIsICInRm9udCBUaHJlZSciKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWQ4YjU2MC4uZWI0NWRlOCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBA
QAorMjAxMC0wMS0yNCAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ2hhbmdlIGZsZXggcnVs
ZSBzdWNoIHRoYXQgdW5jbG9zZWQgc3RyaW5nIGlzIHByb3Blcmx5IGNsb3NlZC4KKyAgICAgICAg
aHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMjEvc3luZGF0YS5odG1sI3BhcnNpbmctZXJyb3JzIHNw
ZWNpZmllcyBob3cgdW5jbG9zZWQgc3RyaW5ncyBtdXN0IGJlIGhhbmRsZWQuIFdpdGhvdXQgdGhp
cyBwYXRjaCwgV2ViS2l0IGlnbm9yZXMgdW5jbG9zZWQgc3RyaW5ncy4KKyAgICAgICAgTm90ZSB0
aGF0IExheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWwgaXMgY2hh
bmdlZCBiZWNhdXNlIGl0IGhhcyBjb250YWluZWQgd3JvbmcgcXVvdGVzLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwNjcKKworICAgICAgICBUZXN0
OiBmYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy5odG1sCisKKyAgICAgICAgKiBjc3Mv
Q1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6dGV4dCk6CisgICAg
ICAgICogY3NzL21ha2V0b2tlbml6ZXI6CisgICAgICAgICogY3NzL3Rva2VuaXplci5mbGV4Ogor
CiAyMDEwLTAxLTEyICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFJldmlld2VkIGJ5IEdlb2ZmcmV5IEdhcmVuLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9j
c3MvQ1NTUGFyc2VyLmNwcCBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggZTcxNDQz
Yy4uM2QwZTI0ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCkBAIC00NzM3LDMxICs0NzM3LDEzIEBAIFVDaGFyKiBD
U1NQYXJzZXI6OnRleHQoaW50ICpsZW5ndGgpCiAgICAgaW50IGwgPSB5eWxlbmc7CiAgICAgc3dp
dGNoICh5eVRvaykgewogICAgIGNhc2UgU1RSSU5HOgotICAgICAgICBsLS07Ci0gICAgICAgIC8q
IG5vYnJlYWsgKi8KKyAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBIRVg6CiAgICAgY2FzZSBJRFNF
TDoKICAgICAgICAgc3RhcnQrKzsKICAgICAgICAgbC0tOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIFVSSToKLSAgICAgICAgLy8gInVybCgie3d9e3N0cmluZ317d30iKSIKLSAgICAgICAgLy8g
InVybCgie3d9e3VybH17d30iKSIKLSAgICAgICAgLy8gc3RyaXAgInVybCgiIGFuZCAiKSIKLSAg
ICAgICAgc3RhcnQgKz0gNDsKLSAgICAgICAgbCAtPSA1OwotICAgICAgICAvLyBzdHJpcCB7d30K
LSAgICAgICAgd2hpbGUgKGwgJiYgaXNDU1NXaGl0ZXNwYWNlKCpzdGFydCkpIHsKLSAgICAgICAg
ICAgICsrc3RhcnQ7Ci0gICAgICAgICAgICAtLWw7Ci0gICAgICAgIH0KLSAgICAgICAgd2hpbGUg
KGwgJiYgaXNDU1NXaGl0ZXNwYWNlKHN0YXJ0W2wgLSAxXSkpCi0gICAgICAgICAgICAtLWw7Ci0g
ICAgICAgIGlmIChsICYmICgqc3RhcnQgPT0gJyInIHx8ICpzdGFydCA9PSAnXCcnKSkgewotICAg
ICAgICAgICAgQVNTRVJUKGwgPj0gMiAmJiBzdGFydFtsIC0gMV0gPT0gKnN0YXJ0KTsKLSAgICAg
ICAgICAgICsrc3RhcnQ7Ci0gICAgICAgICAgICBsIC09IDI7Ci0gICAgICAgIH0KICAgICAgICAg
YnJlYWs7CiAgICAgY2FzZSBWQVJDQUxMOgogICAgICAgICAvLyAiLXdlYmtpdC12YXIoInt3fXtp
ZGVudH17d30iKSIKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL21ha2V0b2tlbml6ZXIgYi9XZWJD
b3JlL2Nzcy9tYWtldG9rZW5pemVyCmluZGV4IDkwZDVmY2IuLjgxMGQzZjUgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvY3NzL21ha2V0b2tlbml6ZXIKKysrIGIvV2ViQ29yZS9jc3MvbWFrZXRva2VuaXpl
cgpAQCAtNDksNiArNDksMTQgQEAgcHJpbnQ8PEVORAogI2RlZmluZSBJTklUSUFMIDAKICNkZWZp
bmUgbWVkaWFxdWVyeSAxCiAjZGVmaW5lIGZvcmtleXdvcmQgMgorI2RlZmluZSBkcXVvdGVkX3N0
cmluZyAzCisjZGVmaW5lIGRxdW90ZWRfc3RyaW5nX2RvbmUgNAorI2RlZmluZSBzcXVvdGVkX3N0
cmluZyA1CisjZGVmaW5lIHNxdW90ZWRfc3RyaW5nX2RvbmUgNgorI2RlZmluZSB1cmkgNworI2Rl
ZmluZSB1cmlfZG9uZSA4CisKKyNkZWZpbmUgWVlfU1RBUlQgKCgoeXlfc3RhcnQpIC0gMSkgLyAy
KQogCiAvKiBDOTkgc3lzdGVtcyBoYXZlIDxpbnR0eXBlcy5oPi4gTm9uLUM5OSBzeXN0ZW1zIG1h
eSBvciBtYXkgbm90LiAqLwogCkBAIC02OCw2ICs3Niw5IEBAIHR5cGVkZWYgdW5zaWduZWQgY2hh
ciBmbGV4X3VpbnQ4X3Q7CiB0eXBlZGVmIHVuc2lnbmVkIHNob3J0IGludCBmbGV4X3VpbnQxNl90
OwogdHlwZWRlZiB1bnNpZ25lZCBpbnQgZmxleF91aW50MzJfdDsKICNlbmRpZiAvKiAhIEM5OSAq
LworCisgICAgaW50IHN0cmluZ19jYWxsZXIgPSBJTklUSUFMOworICAgIGludCB1cmlfY2FsbGVy
ID0gSU5JVElBTDsKIEVORAogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy90b2tlbml6ZXIu
ZmxleCBiL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4CmluZGV4IDE1NjllZTIuLjg2MTk1MzAg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4CisrKyBiL1dlYkNvcmUvY3Nz
L3Rva2VuaXplci5mbGV4CkBAIC00LDYgKzQsMTIgQEAKICVvcHRpb24gc3RhY2sKICVzIG1lZGlh
cXVlcnkKICVzIGZvcmtleXdvcmQKKyV4IGRxdW90ZWRfc3RyaW5nCisleCBkcXVvdGVkX3N0cmlu
Z19kb25lCisleCBzcXVvdGVkX3N0cmluZworJXggc3F1b3RlZF9zdHJpbmdfZG9uZQorJXggdXJp
CisleCB1cmlfZG9uZQogCiBoICAgICAgICAgICAgICAgWzAtOWEtZkEtRl0KIG5vbmFzY2lpICAg
ICAgICBbXDIwMC1cMzc3XQpAQCAtMTEsMjMgKzE3LDI3IEBAIHVuaWNvZGUgICAgICAgICBcXHto
fXsxLDZ9WyBcdFxyXG5cZl0/CiBlc2NhcGUgICAgICAgICAge3VuaWNvZGV9fFxcWyAtflwyMDAt
XDM3N10KIG5tc3RhcnQgICAgICAgICBbX2EtekEtWl18e25vbmFzY2lpfXx7ZXNjYXBlfQogbm1j
aGFyICAgICAgICAgIFtfYS16QS1aMC05LV18e25vbmFzY2lpfXx7ZXNjYXBlfQotc3RyaW5nMSAg
ICAgICAgIFwiKFtcdCAhIyQlJigtfl18XFx7bmx9fFwnfHtub25hc2NpaX18e2VzY2FwZX0pKlwi
Ci1zdHJpbmcyICAgICAgICAgXCcoW1x0ICEjJCUmKC1+XXxcXHtubH18XCJ8e25vbmFzY2lpfXx7
ZXNjYXBlfSkqXCcKK2RxdW90ZWRfY29udGVudCAoW1x0ICEjJCUmKC1+XXxcXHtubH18XCd8e25v
bmFzY2lpfXx7ZXNjYXBlfSkqCitzcXVvdGVkX2NvbnRlbnQgKFtcdCAhIyQlJigtfl18XFx7bmx9
fFwifHtub25hc2NpaX18e2VzY2FwZX0pKgogaGV4Y29sb3IgICAgICAgIHtofXszfXx7aH17Nn0K
IAogaWRlbnQgICAgICAgICAgIC0/e25tc3RhcnR9e25tY2hhcn0qCiBuYW1lICAgICAgICAgICAg
e25tY2hhcn0rCiBudW0gICAgICAgICAgICAgWzAtOV0rfFswLTldKiIuIlswLTldKwogaW50bnVt
ICAgICAgICAgIFswLTldKwotc3RyaW5nICAgICAgICAgIHtzdHJpbmcxfXx7c3RyaW5nMn0KIHVy
bCAgICAgICAgICAgICAoWyEjJCUmKi1+XXx7bm9uYXNjaWl9fHtlc2NhcGV9KSoKIHcgICAgICAg
ICAgICAgICBbIFx0XHJcblxmXSoKIG5sICAgICAgICAgICAgICBcbnxcclxufFxyfFxmCitkcXVv
dGVfb3JfbmwgICAgXCJ8e25sfQorc3F1b3RlX29yX25sICAgIFwnfHtubH0KIHJhbmdlICAgICAg
ICAgICBcP3sxLDZ9fHtofShcP3swLDV9fHtofShcP3swLDR9fHtofShcP3swLDN9fHtofShcP3sw
LDJ9fHtofShcPz98e2h9KSkpKSkKIG50aCAgICAgICAgICAgICAoLT9bMC05XSpuW1wrLV1bMC05
XSspfCgtP1swLTldKm4pCiAKICUlCiAKKyAgICBpbnQgc3RyaW5nX2NhbGxlciA9IElOSVRJQUw7
CisgICAgaW50IHVyaV9jYWxsZXIgPSBJTklUSUFMOworCiBcL1wqW14qXSpcKisoW14vKl1bXipd
KlwqKykqXC8gIC8qIGlnbm9yZSBjb21tZW50cyAqLwogCiBbIFx0XHJcblxmXSsgICAgICAgICAg
ICB7eXlUb2sgPSBXSElURVNQQUNFOyByZXR1cm4geXlUb2s7fQpAQCAtNDQsNyArNTQsMTcgQEAg
bnRoICAgICAgICAgICAgICgtP1swLTldKm5bXCstXVswLTldKyl8KC0/WzAtOV0qbikKIDxtZWRp
YXF1ZXJ5PiJhbmQiICAgICAgIHt5eVRvayA9IE1FRElBX0FORDsgcmV0dXJuIHl5VG9rO30KIDxm
b3JrZXl3b3JkPiJmb3IiICAgICAgIHtCRUdJTihtZWRpYXF1ZXJ5KTsgeXlUb2sgPSBWQVJJQUJM
RVNfRk9SOyByZXR1cm4geXlUb2s7IH0KIAote3N0cmluZ30gICAgICAgICAgICAgICAge3l5VG9r
ID0gU1RSSU5HOyByZXR1cm4geXlUb2s7fQorPElOSVRJQUwsbWVkaWFxdWVyeSxmb3JrZXl3b3Jk
LHVyaT57CisgICAgIlwiIiAgICAgICAgICAgICAgICB7c3RyaW5nX2NhbGxlciA9IChZWV9TVEFS
VCA9PSB1cmkpID8gdXJpX2RvbmUgOiBZWV9TVEFSVDsgQkVHSU4oZHF1b3RlZF9zdHJpbmcpO30K
KyAgICAiJyIgICAgICAgICAgICAgICAgIHtzdHJpbmdfY2FsbGVyID0gKFlZX1NUQVJUID09IHVy
aSkgPyB1cmlfZG9uZSA6IFlZX1NUQVJUOyBCRUdJTihzcXVvdGVkX3N0cmluZyk7fQorfQorPGRx
dW90ZWRfc3RyaW5nPntkcXVvdGVkX2NvbnRlbnR9IHwKKzxzcXVvdGVkX3N0cmluZz57c3F1b3Rl
ZF9jb250ZW50fSB7QkVHSU4oKFlZX1NUQVJUID09IGRxdW90ZWRfc3RyaW5nKSA/IGRxdW90ZWRf
c3RyaW5nX2RvbmUgOiBzcXVvdGVkX3N0cmluZ19kb25lKTsgeXlUb2sgPSAoc3RyaW5nX2NhbGxl
ciA9PSB1cmlfZG9uZSkgPyBVUkkgOiBTVFJJTkc7IHJldHVybiB5eVRvazt9Cis8ZHF1b3RlZF9z
dHJpbmc+e2RxdW90ZV9vcl9ubH0gfAorPHNxdW90ZWRfc3RyaW5nPntzcXVvdGVfb3Jfbmx9IHtC
RUdJTihzdHJpbmdfY2FsbGVyKTsgeXlsZW5nID0gMDsgeXlUb2sgPSAoc3RyaW5nX2NhbGxlciA9
PSB1cmlfZG9uZSkgPyBVUkkgOiBTVFJJTkc7IHJldHVybiB5eVRvazt9Cis8ZHF1b3RlZF9zdHJp
bmdfZG9uZT57ZHF1b3RlX29yX25sfSB8Cis8c3F1b3RlZF9zdHJpbmdfZG9uZT57c3F1b3RlX29y
X25sfSB7QkVHSU4oc3RyaW5nX2NhbGxlcik7fQorCiB7aWRlbnR9ICAgICAgICAgICAgICAgICB7
eXlUb2sgPSBJREVOVDsgcmV0dXJuIHl5VG9rO30KIHtudGh9ICAgICAgICAgICAgICAgICAgIHt5
eVRvayA9IE5USDsgcmV0dXJuIHl5VG9rO30KIApAQCAtOTYsOCArMTE2LDE0IEBAIG50aCAgICAg
ICAgICAgICAoLT9bMC05XSpuW1wrLV1bMC05XSspfCgtP1swLTldKm4pCiB7bnVtfSAgICAgICAg
ICAgICAgICAgICB7eXlUb2sgPSBGTE9BVFRPS0VOOyByZXR1cm4geXlUb2s7fQogCiAibm90KCIg
ICAgICAgICAgICAgICAgICB7eXlUb2sgPSBOT1RGVU5DVElPTjsgcmV0dXJuIHl5VG9rO30KLSJ1
cmwoInt3fXtzdHJpbmd9e3d9IikiIHt5eVRvayA9IFVSSTsgcmV0dXJuIHl5VG9rO30KLSJ1cmwo
Int3fXt1cmx9e3d9IikiICAgIHt5eVRvayA9IFVSSTsgcmV0dXJuIHl5VG9rO30KKworPElOSVRJ
QUwsbWVkaWFxdWVyeSxmb3JrZXl3b3JkPiJ1cmwoIiB7dXJpX2NhbGxlciA9IFlZX1NUQVJUOyBC
RUdJTih1cmkpO30KKzx1cmk+e3d9ICAgICAgICAgICAgICAgIHsvKiBFYXQgd2hpdGVzcGFjZSAq
L30KKzx1cmk+e3VybH0gICAgICAgICAgICAgIHtCRUdJTih1cmlfZG9uZSk7IHl5VG9rID0gVVJJ
OyByZXR1cm4geXlUb2s7fQorPHVyaT4iKSIgICAgICAgICAgICAgICAge0JFR0lOKHVyaV9jYWxs
ZXIpOyB5eWxlbmcgPSAwOyB5eVRvayA9IFVSSTsgcmV0dXJuIHl5VG9rO30KKzx1cmlfZG9uZT57
d30gICAgICAgICAgIHsvKiBFYXQgd2hpdGVzcGFjZSAqL30KKzx1cmlfZG9uZT4iKSIgICAgICAg
ICAgIHtCRUdJTih1cmlfY2FsbGVyKTt9CisKICItd2Via2l0LXZhcigie3d9e2lkZW50fXt3fSIp
IiB7IHl5VG9rID0gVkFSQ0FMTDsgcmV0dXJuIHl5VG9rOyB9CiB7aWRlbnR9IigiICAgICAgICAg
ICAgICB7eXlUb2sgPSBGVU5DVElPTjsgcmV0dXJuIHl5VG9rO30KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>47498</attachid>
            <date>2010-01-26 22:49:30 -0800</date>
            <delta_ts>2010-01-26 22:49:30 -0800</delta_ts>
            <desc>Fixed the test case - in standards mode now.</desc>
            <filename>Unexpected end of style sheet in standards mode.html</filename>
            <type>text/html</type>
            <size>216</size>
            <attacher name="Robert Blaut">webkit</attacher>
            
              <data encoding="base64">PCFkb2N0eXBlIGh0bWw+CjxoZWFkPgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgojdGVzdDpiZWZv
cmUge2JhY2tncm91bmQtY29sb3I6IGxpbWU7fQojdGVzdDpiZWZvcmUgewogICAgY29udGVudDog
J25vdCAKPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KPHA+VGhlIHRlc3QgY2FzZSBoYXMgPHNwYW4g
aWQ9InRlc3QiPmZhaWxlZC48L3NwYW4+PC9wPgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>47505</attachid>
            <date>2010-01-27 00:39:46 -0800</date>
            <delta_ts>2010-01-27 04:31:51 -0800</delta_ts>
            <desc>Tests equivalent to those in the patch</desc>
            <filename>parsing-unclosed-string.html</filename>
            <type>text/html</type>
            <size>1059</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">PCFkb2N0eXBlIGh0bWw+CjxodG1sPgo8aGVhZD4KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKiB7
CiAgICBjb2xvcjogYmxhY2s7CiAgICBmb250LWZhbWlseTogJ0NvdXJpZXInOwogICAgZm9udC13
ZWlnaHQ6IG5vcm1hbDsKICAgIGZvbnQtc2l6ZToyMHB4Owp9Cjwvc3R5bGU+Cgo8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiPgojdGVzdDEtcmVmIHsKICAgIGZvbnQtZmFtaWx5OiAnSW1wYWN0JzsKfQoj
dGVzdDEtdHN0IHsKICAgIGZvbnQtZmFtaWx5OiAnSW1wYVwKY3QnOwp9Cjwvc3R5bGU+Cgo8c3R5
bGUgdHlwZT0idGV4dC9jc3MiPgojdGVzdDItcmVmIHsKICAgIGZvbnQtd2VpZ2h0OiBib2xkOwp9
CiN0ZXN0Mi10c3QgewogICAgZm9udC1mYW1pbHk6ICdJbXBhY3QKICAgIGNvbG9yOnJlZDsKICAg
IGZvbnQtd2VpZ2h0OiBib2xkOwp9Cjwvc3R5bGU+Cgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoj
dGVzdDMtcmVmIHsKICAgIGZvbnQtZmFtaWx5OiAnQXJpYWwnOwp9CiN0ZXN0My10c3QgewogICAg
Zm9udC1mYW1pbHk6ICdBcmlhbAo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5PgpFYWNoIG9mIHRoZSBm
b2xsb3dpbmcgcGFpcnMgc2hvdWxkIGxvb2sgaWRlbnRpY2FsLjxici8+Cgo8aHIvPgo8cCBpZD0i
dGVzdDEtcmVmIj5UZXN0IDE6IEVzY2FwZWQgbmV3bGluZSBpbiBhIHN0cmluZy48L3A+CjxwIGlk
PSJ0ZXN0MS10c3QiPlRlc3QgMTogRXNjYXBlZCBuZXdsaW5lIGluIGEgc3RyaW5nLjwvcD4KPGhy
Lz4KPHAgaWQ9InRlc3QyLXJlZiI+VGVzdCAyOiBVbmNsb3NlZCBzdHJpbmcgaW4gcHJvcGVydHkg
ZGVjbGFyYXRpb24uPC9wPgo8cCBpZD0idGVzdDItdHN0Ij5UZXN0IDI6IFVuY2xvc2VkIHN0cmlu
ZyBpbiBwcm9wZXJ0eSBkZWNsYXJhdGlvbi48L3A+Cjxoci8+CjxwIGlkPSJ0ZXN0My1yZWYiPlRl
c3QgMzogVW5jbG9zZWQgc3RyaW5nIGF0IHRoZSBlbmQgb2Ygc3R5bGVzaGVldC48L3A+CjxwIGlk
PSJ0ZXN0My10c3QiPlRlc3QgMzogVW5jbG9zZWQgc3RyaW5nIGF0IHRoZSBlbmQgb2Ygc3R5bGVz
aGVldC48L3A+Cjxoci8+Cgo8L2JvZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>47517</attachid>
            <date>2010-01-27 04:31:51 -0800</date>
            <delta_ts>2010-01-27 04:31:51 -0800</delta_ts>
            <desc>Parsing unclosed strings - fixed one test case and more cases</desc>
            <filename>parsing-unclosed-string.html</filename>
            <type>text/html</type>
            <size>1662</size>
            <attacher name="Robert Blaut">webkit</attacher>
            
              <data encoding="base64">PCFkb2N0eXBlIGh0bWw+DQo8aHRtbD4NCjxoZWFkPg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4N
Ciogew0KICAgIGNvbG9yOiBibGFjazsNCiAgICBmb250LWZhbWlseTogbW9ub3NwYWNlOw0KICAg
IGZvbnQtd2VpZ2h0OiBub3JtYWw7DQogICAgZm9udC1zaXplOjIwcHg7DQp9DQo8L3N0eWxlPg0K
DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KI3Rlc3QxLXJlZiB7DQogICAgZm9udC1mYW1pbHk6
ICdBcmlhbCc7DQp9DQojdGVzdDEtdHN0IHsNCiAgICBmb250LWZhbWlseTogJ0FyaVwNCmFsJzsN
Cn0NCjwvc3R5bGU+DQoNCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQojdGVzdDItcmVmIHsNCiAg
ICBmb250LXdlaWdodDogYm9sZDsNCn0NCiN0ZXN0Mi10c3Qgew0KICAgIGZvbnQtZmFtaWx5OiAn
QXJpYWwNCiAgICBjb2xvcjpyZWQ7DQogICAgZm9udC13ZWlnaHQ6IGJvbGQ7DQp9DQo8L3N0eWxl
Pg0KDQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KI3Rlc3QzLXJlZiB7DQogICAgZm9udC1mYW1p
bHk6ICdBcmlhbFwnOw0KfQ0KI3Rlc3QzLXRzdCB7DQogICAgZm9udC1mYW1pbHk6ICdBcmlhbA0K
PC9zdHlsZT4NCg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiN0ZXN0NC1yZWYgew0KICAgIGZv
bnQtZmFtaWx5OiAnQXJpYWwnOw0KfQ0KI3Rlc3Q0LXRzdCB7DQogICAgZm9udC1mYW1pbHk6ICdB
cmlhbDwvc3R5bGU+DQoNCg0KPHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCiN0ZXN0NS1yZWYgew0K
ICAgIGZvbnQtZmFtaWx5OiAnQXJpYVwNCmwnOw0KfQ0KI3Rlc3Q1LXRzdCB7DQogICAgZm9udC1m
YW1pbHk6ICdBcmlhXA0KbDwvc3R5bGU+DQo8L2hlYWQ+DQo8Ym9keT4NCkVhY2ggb2YgdGhlIGZv
bGxvd2luZyBwYWlycyBzaG91bGQgbG9vayBpZGVudGljYWwuPGJyLz4NCg0KPGhyLz4NCjxwIGlk
PSJ0ZXN0MS1yZWYiPlRlc3QgMTogRXNjYXBlZCBuZXdsaW5lIGluIGEgc3RyaW5nLjwvcD4NCjxw
IGlkPSJ0ZXN0MS10c3QiPlRlc3QgMTogRXNjYXBlZCBuZXdsaW5lIGluIGEgc3RyaW5nLjwvcD4N
Cjxoci8+DQo8cCBpZD0idGVzdDItcmVmIj5UZXN0IDI6IFVuY2xvc2VkIHN0cmluZyBpbiBwcm9w
ZXJ0eSBkZWNsYXJhdGlvbi48L3A+DQo8cCBpZD0idGVzdDItdHN0Ij5UZXN0IDI6IFVuY2xvc2Vk
IHN0cmluZyBpbiBwcm9wZXJ0eSBkZWNsYXJhdGlvbi48L3A+DQo8aHIvPg0KPHAgaWQ9InRlc3Qz
LXJlZiI+VGVzdCAzOiBVbmNsb3NlZCBzdHJpbmcgYXQgdGhlIGVuZCBvZiBzdHlsZXNoZWV0Ljwv
cD4NCjxwIGlkPSJ0ZXN0My10c3QiPlRlc3QgMzogVW5jbG9zZWQgc3RyaW5nIGF0IHRoZSBlbmQg
b2Ygc3R5bGVzaGVldC48L3A+DQo8aHIvPg0KPHAgaWQ9InRlc3Q0LXJlZiI+VGVzdCA0OiBVbmNs
b3NlZCBzdHJpbmcgYXQgdGhlIGVuZCBvZiBzdHlsZXNoZWV0LjwvcD4NCjxwIGlkPSJ0ZXN0NC10
c3QiPlRlc3QgNDogVW5jbG9zZWQgc3RyaW5nIGF0IHRoZSBlbmQgb2Ygc3R5bGVzaGVldC48L3A+
DQo8aHIvPg0KPHAgaWQ9InRlc3Q1LXJlZiI+VGVzdCA1OiBVbmNsb3NlZCBzdHJpbmcgYXQgdGhl
IGVuZCBvZiBzdHlsZXNoZWV0LjwvcD4NCjxwIGlkPSJ0ZXN0NS10c3QiPlRlc3QgNTogVW5jbG9z
ZWQgc3RyaW5nIGF0IHRoZSBlbmQgb2Ygc3R5bGVzaGVldC48L3A+DQo8aHIvPg0KPC9ib2R5Pg0K
PC9odG1sPg0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47602</attachid>
            <date>2010-01-28 03:46:50 -0800</date>
            <delta_ts>2010-01-28 14:08:15 -0800</delta_ts>
            <desc>Change flex rule such that unclosed string is properly closed.</desc>
            <filename>bug-34067-20100128204648.patch</filename>
            <type>text/plain</type>
            <size>12367</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmZjIwMTMwLi5hNWZkNzM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDEt
MjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBmbGV4IHJ1bGUgc3VjaCB0aGF0
IHVuY2xvc2VkIHN0cmluZyBpcyBwcm9wZXJseSBjbG9zZWQuCisgICAgICAgIGh0dHA6Ly93d3cu
dzMub3JnL1RSL0NTUzIxL3N5bmRhdGEuaHRtbCNwYXJzaW5nLWVycm9ycyBzcGVjaWZpZXMgaG93
IHVuY2xvc2VkIHN0cmluZ3MgbXVzdCBiZSBoYW5kbGVkLiBXaXRob3V0IHRoaXMgcGF0Y2gsIFdl
YktpdCBpZ25vcmVzIHVuY2xvc2VkIHN0cmluZ3MuCisgICAgICAgIE5vdGUgdGhhdCBMYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5odG1sIGlzIGNoYW5nZWQgYmVjYXVz
ZSBpdCBoYXMgY29udGFpbmVkIHdyb25nIHF1b3Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MDY3CisKKyAgICAgICAgKiBmYXN0L2Nzcy9mb250
X3Byb3BlcnR5X25vcm1hbC5odG1sOgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctdW5jbG9z
ZWQtc3RyaW5nLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9jc3MvcGFyc2lu
Zy11bmNsb3NlZC1zdHJpbmcuaHRtbDogQWRkZWQuCisKIDIwMTAtMDEtMTEgIEtlbnQgVGFtdXJh
ICA8dGtlbnRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZC4gUmVtb3ZlIGEgZHVw
bGljYXRlZCBsaW5lIGluIGFuIGV4cGVjdGF0aW9uIGZpbGUuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvZm9udF9wcm9wZXJ0eV9ub3JtYWwuaHRtbAppbmRleCAyY2ZiMzQ3Li5jNDdmZWJlIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWwKQEAg
LTMsMTEgKzMsMTEgQEAKIDxIRUFEPgogPFRJVExFPlRlc3RpbmcgdmFsaWQgZm9udCBwcm9wZXJ0
eSBzcGVjaWZpY2F0aW9uPC9USVRMRT4KIDxTVFlMRSB0eXBlPSJ0ZXh0L2NzcyI+Ci0ub25lIHtm
b250OiAyNHB0IGl0YWxpYzsifQorLm9uZSB7Zm9udDogMjRwdCBpdGFsaWM7fQogLnR3byB7Zm9u
dDogMjRwdCBpdGFsaWMgQXJpYWw7fQogLnRocmVlIHtmb250OiAyNHB0IGl0YWxpYyAnQXJpYWwn
O30KIC5mb3VyIHtmb250OiBpdGFsaWMgMjRwdDt9Ci0uZml2ZSB7Zm9udDogaXRhbGljIDI0cHQg
QXJpYWw7In0KKy5maXZlIHtmb250OiBpdGFsaWMgMjRwdCBBcmlhbDt9CiAuc2l4IHtmb250OiBp
dGFsaWMgMjRwdCAnQXJpYWwnO30KIC5zZXZlbiB7Zm9udDogQXJpYWwgMjRwdCBpdGFsaWM7fQog
LmVpZ2h0IHtmb250OiAnQXJpYWwnIDI0cHQgaXRhbGljO30KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3RyaW5nLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5kMjE2MjM3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmNsb3NlZC1zdHJpbmctZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMzcgQEAKK1Rlc3RzIGlmIHVuY2xvc2VkIHN0cmluZ3MgYXJlIHBhcnNl
ZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3QgMQorCitU
ZXN0IDEKKworVGVzdCAyCisKK1Rlc3QgMgorCitUZXN0IDMKKworVGVzdCAzCisKK1Rlc3QgNAor
CitUZXN0IDQKKworUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEtcmVmJywgJ2ZvbnQtZmFtaWx5Jykg
aXMgZ2V0UHJvcGVydHkoJ3Rlc3QxLXRlc3QnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9w
ZXJ0eSgndGVzdDEtcmVmJywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxLXRl
c3QnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEtcmVmJywgJ2NvbG9y
JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxLXRlc3QnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0
eSgndGVzdDItcmVmJywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QyLXRlc3Qn
LCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDItcmVmJywgJ2ZvbnQtd2Vp
Z2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QyLXRlc3QnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBn
ZXRQcm9wZXJ0eSgndGVzdDItcmVmJywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QyLXRl
c3QnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDMtcmVmJywgJ2ZvbnQtZmFtaWx5
JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QzLXRlc3QnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQ
cm9wZXJ0eSgndGVzdDMtcmVmJywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Qz
LXRlc3QnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDMtcmVmJywgJ2Nv
bG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QzLXRlc3QnLCAnY29sb3InKQorUEFTUyBnZXRQcm9w
ZXJ0eSgndGVzdDQtcmVmJywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q0LXRl
c3QnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDQtcmVmJywgJ2ZvbnQt
d2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q0LXRlc3QnLCAnZm9udC13ZWlnaHQnKQorUEFT
UyBnZXRQcm9wZXJ0eSgndGVzdDQtcmVmJywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q0
LXRlc3QnLCAnY29sb3InKQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNU
IENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5j
bG9zZWQtc3RyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2Vk
LXN0cmluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjEwYTI1NjcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2Vk
LXN0cmluZy5odG1sCkBAIC0wLDAgKzEsOTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisqIHsKKyAgICBjb2xvcjogYmxhY2s7CisgICAgZm9udC1m
YW1pbHk6ICdDb3VyaWVyJzsKKyAgICBmb250LXdlaWdodDogbm9ybWFsOworfQorPC9zdHlsZT4K
KworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0MS1yZWYgeworICAgIGZvbnQtZmFtaWx5
OiAnSW1wYWN0JzsKK30KKyN0ZXN0MS10ZXN0IHsKKyAgICBmb250LWZhbWlseTogJ0ltcFwKK2Fj
dCc7Cit9Cis8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QyLXJlZiB7
CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cit9CisjdGVzdDItdGVzdCB7CisgICAgZm9udC1mYW1p
bHk6ICdJbXBhY3QKKyAgICBjb2xvcjpyZWQ7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cit9Cis8
L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QzLXJlZiB7CisgICAgY29s
b3I6Z3JheTsKKyAgICBmb250LWZhbWlseTogJ0ltcGFjdCc7Cit9CisjdGVzdDMtdGVzdCB7Cisg
ICAgY29sb3I6Z3JheTsKKyAgICBmb250LWZhbWlseTogJ0ltcGFjdDwvc3R5bGU+CisKKzxzdHls
ZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDQtcmVmIHsKKyAgICBjb2xvcjpibHVlOworfQorI3Rl
c3Q0LXRlc3QgeworICAgIGNvbG9yOmJsdWU7CisgICAgZm9udC1mYW1pbHk6ICdJbXBhY3QKKzwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGhyLz4K
KworPHAgaWQ9InRlc3QxLXJlZiI+VGVzdCAxPC9wPgorPHAgaWQ9InRlc3QxLXRlc3QiPlRlc3Qg
MTwvcD4KKworPHAgaWQ9InRlc3QyLXJlZiI+VGVzdCAyPC9wPgorPHAgaWQ9InRlc3QyLXRlc3Qi
PlRlc3QgMjwvcD4KKworPHAgaWQ9InRlc3QzLXJlZiI+VGVzdCAzPC9wPgorPHAgaWQ9InRlc3Qz
LXRlc3QiPlRlc3QgMzwvcD4KKworPHAgaWQ9InRlc3Q0LXJlZiI+VGVzdCA0PC9wPgorPHAgaWQ9
InRlc3Q0LXRlc3QiPlRlc3QgNDwvcD4KKworPGhyLz4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIGlmIHVuY2xvc2VkIHN0cmluZ3MgYXJl
IHBhcnNlZCBwcm9wZXJseS4iKTsKKworZnVuY3Rpb24gZ2V0UHJvcGVydHkoZWxlbWVudElkLCBu
YW1lKQoreworICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRF
bGVtZW50QnlJZChlbGVtZW50SWQpKS5nZXRQcm9wZXJ0eVZhbHVlKG5hbWUpOworfQorCitmb3Ig
KHZhciBpID0gMTsgaSA8PSA0OyBpKyspCit7CisgICAgc2hvdWxkQmUoImdldFByb3BlcnR5KCd0
ZXN0IiArIGkgKyAiLXJlZicsICdmb250LWZhbWlseScpIiwgImdldFByb3BlcnR5KCd0ZXN0IiAr
IGkgKyAiLXRlc3QnLCAnZm9udC1mYW1pbHknKSIpOworICAgIHNob3VsZEJlKCJnZXRQcm9wZXJ0
eSgndGVzdCIgKyBpICsgIi1yZWYnLCAnZm9udC13ZWlnaHQnKSIsICJnZXRQcm9wZXJ0eSgndGVz
dCIgKyBpICsgIi10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykiKTsKKyAgICBzaG91bGRCZSgiZ2V0UHJv
cGVydHkoJ3Rlc3QiICsgaSArICItcmVmJywgJ2NvbG9yJykiLCAgICAgICAiZ2V0UHJvcGVydHko
J3Rlc3QiICsgaSArICItdGVzdCcsICdjb2xvcicpIik7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQ
YXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFkOGI1NjAuLmViNDVk
ZTggMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTkgQEAKKzIwMTAtMDEtMjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29n
bGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IENoYW5nZSBmbGV4IHJ1bGUgc3VjaCB0aGF0IHVuY2xvc2VkIHN0cmluZyBpcyBwcm9wZXJseSBj
bG9zZWQuCisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL0NTUzIxL3N5bmRhdGEuaHRtbCNw
YXJzaW5nLWVycm9ycyBzcGVjaWZpZXMgaG93IHVuY2xvc2VkIHN0cmluZ3MgbXVzdCBiZSBoYW5k
bGVkLiBXaXRob3V0IHRoaXMgcGF0Y2gsIFdlYktpdCBpZ25vcmVzIHVuY2xvc2VkIHN0cmluZ3Mu
CisgICAgICAgIE5vdGUgdGhhdCBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25v
cm1hbC5odG1sIGlzIGNoYW5nZWQgYmVjYXVzZSBpdCBoYXMgY29udGFpbmVkIHdyb25nIHF1b3Rl
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM0MDY3
CisKKyAgICAgICAgVGVzdDogZmFzdC9jc3MvcGFyc2luZy11bmNsb3NlZC1zdHJpbmcuaHRtbAor
CisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQYXJz
ZXI6OnRleHQpOgorICAgICAgICAqIGNzcy9tYWtldG9rZW5pemVyOgorICAgICAgICAqIGNzcy90
b2tlbml6ZXIuZmxleDoKKwogMjAxMC0wMS0xMiAgWXVyeSBTZW1pa2hhdHNreSAgPHl1cnlzQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9mZnJleSBHYXJlbi4KZGlmZiAt
LWdpdCBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
Y3BwCmluZGV4IGU3MTQ0M2MuLjIwZmRiZDYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtNDczNywzMSArNDcz
NywxMyBAQCBVQ2hhciogQ1NTUGFyc2VyOjp0ZXh0KGludCAqbGVuZ3RoKQogICAgIGludCBsID0g
eXlsZW5nOwogICAgIHN3aXRjaCAoeXlUb2spIHsKICAgICBjYXNlIFNUUklORzoKLSAgICAgICAg
bC0tOwotICAgICAgICAvKiBub2JyZWFrICovCisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgSEVY
OgogICAgIGNhc2UgSURTRUw6CiAgICAgICAgIHN0YXJ0Kys7CiAgICAgICAgIGwtLTsKICAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBVUkk6Ci0gICAgICAgIC8vICJ1cmwoInt3fXtzdHJpbmd9e3d9
IikiCi0gICAgICAgIC8vICJ1cmwoInt3fXt1cmx9e3d9IikiCi0gICAgICAgIC8vIHN0cmlwICJ1
cmwoIiBhbmQgIikiCi0gICAgICAgIHN0YXJ0ICs9IDQ7Ci0gICAgICAgIGwgLT0gNTsKLSAgICAg
ICAgLy8gc3RyaXAge3d9Ci0gICAgICAgIHdoaWxlIChsICYmIGlzQ1NTV2hpdGVzcGFjZSgqc3Rh
cnQpKSB7Ci0gICAgICAgICAgICArK3N0YXJ0OwotICAgICAgICAgICAgLS1sOwotICAgICAgICB9
Ci0gICAgICAgIHdoaWxlIChsICYmIGlzQ1NTV2hpdGVzcGFjZShzdGFydFtsIC0gMV0pKQotICAg
ICAgICAgICAgLS1sOwotICAgICAgICBpZiAobCAmJiAoKnN0YXJ0ID09ICciJyB8fCAqc3RhcnQg
PT0gJ1wnJykpIHsKLSAgICAgICAgICAgIEFTU0VSVChsID49IDIgJiYgc3RhcnRbbCAtIDFdID09
ICpzdGFydCk7Ci0gICAgICAgICAgICArK3N0YXJ0OwotICAgICAgICAgICAgbCAtPSAyOwotICAg
ICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVkFSQ0FMTDoKICAgICAgICAgLy8gIi13
ZWJraXQtdmFyKCJ7d317aWRlbnR9e3d9IikiCkBAIC01MzYwLDYgKzUzNDIsMTAgQEAgdHlwZWRl
ZiB1bnNpZ25lZCBZWV9DSEFSOwogLy8gb2Zmc2V0IG11bHRpcGxpZXJzIHRoYXQgc3BlY2lmeSB3
aGljaCB0cmFuc2l0aW9ucyBhcmUgYWN0aXZlCiAvLyBpbiB0aGUgdG9rZW5pemVyIGR1cmluZyBp
biBlYWNoIGNvbmRpdGlvbiAodG9rZW5pemVyIHN0YXRlKS4KICNkZWZpbmUgQkVHSU4geXlfc3Rh
cnQgPSAxICsgMiAqCisjZGVmaW5lIHl5dGV4dF9wdHIgeXl0ZXh0CitzdGF0aWMgaW50IHl5X21v
cmVfZmxhZyA9IDA7CitzdGF0aWMgaW50IHl5X21vcmVfbGVuID0gMDsKKyNkZWZpbmUgeXltb3Jl
KCkgKCh5eV9tb3JlX2ZsYWcpID0gMSkKIAogI2luY2x1ZGUgInRva2VuaXplci5jcHAiCiAKZGlm
ZiAtLWdpdCBhL1dlYkNvcmUvY3NzL21ha2V0b2tlbml6ZXIgYi9XZWJDb3JlL2Nzcy9tYWtldG9r
ZW5pemVyCmluZGV4IDkwZDVmY2IuLjIyZDlkNDEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL21h
a2V0b2tlbml6ZXIKKysrIGIvV2ViQ29yZS9jc3MvbWFrZXRva2VuaXplcgpAQCAtNDksNiArNDks
MTIgQEAgcHJpbnQ8PEVORAogI2RlZmluZSBJTklUSUFMIDAKICNkZWZpbmUgbWVkaWFxdWVyeSAx
CiAjZGVmaW5lIGZvcmtleXdvcmQgMgorI2RlZmluZSBkcXVvdGVkX3N0cmluZyAzCisjZGVmaW5l
IHNxdW90ZWRfc3RyaW5nIDQKKyNkZWZpbmUgdXJpIDUKKyNkZWZpbmUgdXJpX2RvbmUgNgorCisj
ZGVmaW5lIFlZX1NUQVJUICgoKHl5X3N0YXJ0KSAtIDEpIC8gMikKIAogLyogQzk5IHN5c3RlbXMg
aGF2ZSA8aW50dHlwZXMuaD4uIE5vbi1DOTkgc3lzdGVtcyBtYXkgb3IgbWF5IG5vdC4gKi8KIApA
QCAtNjgsNiArNzQsMTEgQEAgdHlwZWRlZiB1bnNpZ25lZCBjaGFyIGZsZXhfdWludDhfdDsKIHR5
cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IGZsZXhfdWludDE2X3Q7CiB0eXBlZGVmIHVuc2lnbmVk
IGludCBmbGV4X3VpbnQzMl90OwogI2VuZGlmIC8qICEgQzk5ICovCisKKyAgICBpbnQgc3RyaW5n
X2NhbGxlciA9IElOSVRJQUw7CisgICAgaW50IHVyaV9jYWxsZXIgPSBJTklUSUFMOworICAgIGlu
dCBzdHJpbmdfbGVuID0gMDsKKyAgICBVQ2hhciogc3RyaW5nX3B0ciA9IDA7CiBFTkQKIH0KIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvdG9rZW5pemVyLmZsZXggYi9XZWJDb3JlL2Nzcy90b2tl
bml6ZXIuZmxleAppbmRleCAxNTY5ZWUyLi4xZDdmOGE1IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nz
cy90b2tlbml6ZXIuZmxleAorKysgYi9XZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleApAQCAtNCw2
ICs0LDEwIEBACiAlb3B0aW9uIHN0YWNrCiAlcyBtZWRpYXF1ZXJ5CiAlcyBmb3JrZXl3b3JkCisl
eCBkcXVvdGVkX3N0cmluZworJXggc3F1b3RlZF9zdHJpbmcKKyV4IHVyaQorJXggdXJpX2RvbmUK
IAogaCAgICAgICAgICAgICAgIFswLTlhLWZBLUZdCiBub25hc2NpaSAgICAgICAgW1wyMDAtXDM3
N10KQEAgLTExLDIzICsxNSwzMSBAQCB1bmljb2RlICAgICAgICAgXFx7aH17MSw2fVsgXHRcclxu
XGZdPwogZXNjYXBlICAgICAgICAgIHt1bmljb2RlfXxcXFsgLX5cMjAwLVwzNzddCiBubXN0YXJ0
ICAgICAgICAgW19hLXpBLVpdfHtub25hc2NpaX18e2VzY2FwZX0KIG5tY2hhciAgICAgICAgICBb
X2EtekEtWjAtOS1dfHtub25hc2NpaX18e2VzY2FwZX0KLXN0cmluZzEgICAgICAgICBcIihbXHQg
ISMkJSYoLX5dfFxce25sfXxcJ3x7bm9uYXNjaWl9fHtlc2NhcGV9KSpcIgotc3RyaW5nMiAgICAg
ICAgIFwnKFtcdCAhIyQlJigtfl18XFx7bmx9fFwifHtub25hc2NpaX18e2VzY2FwZX0pKlwnCitk
cXVvdGVkX2NvbnRlbnQgKFtcdCAhIyQlJigtfl18XFx7bmx9fFwnfHtub25hc2NpaX18e2VzY2Fw
ZX0pKgorc3F1b3RlZF9jb250ZW50IChbXHQgISMkJSYoLX5dfFxce25sfXxcInx7bm9uYXNjaWl9
fHtlc2NhcGV9KSoKIGhleGNvbG9yICAgICAgICB7aH17M318e2h9ezZ9CiAKIGlkZW50ICAgICAg
ICAgICAtP3tubXN0YXJ0fXtubWNoYXJ9KgogbmFtZSAgICAgICAgICAgIHtubWNoYXJ9KwogbnVt
ICAgICAgICAgICAgIFswLTldK3xbMC05XSoiLiJbMC05XSsKIGludG51bSAgICAgICAgICBbMC05
XSsKLXN0cmluZyAgICAgICAgICB7c3RyaW5nMX18e3N0cmluZzJ9CiB1cmwgICAgICAgICAgICAg
KFshIyQlJiotfl18e25vbmFzY2lpfXx7ZXNjYXBlfSkqCiB3ICAgICAgICAgICAgICAgWyBcdFxy
XG5cZl0qCiBubCAgICAgICAgICAgICAgXG58XHJcbnxccnxcZgorZHF1b3RlICAgICAgICAgIFwi
CitzcXVvdGUgICAgICAgICAgXCcKK2RxdW90ZV9vcl9ubCAgICB7ZHF1b3RlfXx7bmx9CitzcXVv
dGVfb3JfbmwgICAge3NxdW90ZX18e25sfQogcmFuZ2UgICAgICAgICAgIFw/ezEsNn18e2h9KFw/
ezAsNX18e2h9KFw/ezAsNH18e2h9KFw/ezAsM318e2h9KFw/ezAsMn18e2h9KFw/P3x7aH0pKSkp
KQogbnRoICAgICAgICAgICAgICgtP1swLTldKm5bXCstXVswLTldKyl8KC0/WzAtOV0qbikKIAog
JSUKIAorICAgIGludCBzdHJpbmdfY2FsbGVyID0gSU5JVElBTDsKKyAgICBpbnQgdXJpX2NhbGxl
ciA9IElOSVRJQUw7CisgICAgaW50IHN0cmluZ19sZW4gPSAwOworICAgIFVDaGFyKiBzdHJpbmdf
cHRyID0gMDsKKwogXC9cKlteKl0qXCorKFteLypdW14qXSpcKispKlwvICAvKiBpZ25vcmUgY29t
bWVudHMgKi8KIAogWyBcdFxyXG5cZl0rICAgICAgICAgICAge3l5VG9rID0gV0hJVEVTUEFDRTsg
cmV0dXJuIHl5VG9rO30KQEAgLTQ0LDcgKzU2LDMzIEBAIG50aCAgICAgICAgICAgICAoLT9bMC05
XSpuW1wrLV1bMC05XSspfCgtP1swLTldKm4pCiA8bWVkaWFxdWVyeT4iYW5kIiAgICAgICB7eXlU
b2sgPSBNRURJQV9BTkQ7IHJldHVybiB5eVRvazt9CiA8Zm9ya2V5d29yZD4iZm9yIiAgICAgICB7
QkVHSU4obWVkaWFxdWVyeSk7IHl5VG9rID0gVkFSSUFCTEVTX0ZPUjsgcmV0dXJuIHl5VG9rOyB9
CiAKLXtzdHJpbmd9ICAgICAgICAgICAgICAgIHt5eVRvayA9IFNUUklORzsgcmV0dXJuIHl5VG9r
O30KKzxJTklUSUFMLG1lZGlhcXVlcnksZm9ya2V5d29yZCx1cmk+eworICAgIHtkcXVvdGV9ICAg
ICAgICAgICAge3N0cmluZ19jYWxsZXIgPSAoWVlfU1RBUlQgPT0gdXJpKSA/IHVyaV9kb25lIDog
WVlfU1RBUlQ7IHN0cmluZ19sZW4gPSAwOyBCRUdJTihkcXVvdGVkX3N0cmluZyk7fQorICAgIHtz
cXVvdGV9ICAgICAgICAgICAge3N0cmluZ19jYWxsZXIgPSAoWVlfU1RBUlQgPT0gdXJpKSA/IHVy
aV9kb25lIDogWVlfU1RBUlQ7IHN0cmluZ19sZW4gPSAwOyBCRUdJTihzcXVvdGVkX3N0cmluZyk7
fQorfQorPGRxdW90ZWRfc3RyaW5nPntkcXVvdGVkX2NvbnRlbnR9IHwKKzxzcXVvdGVkX3N0cmlu
Zz57c3F1b3RlZF9jb250ZW50fSB7c3RyaW5nX2xlbiA9IHl5bGVuZzsgc3RyaW5nX3B0ciA9IHl5
dGV4dDsgeXltb3JlKCk7fQorPGRxdW90ZWRfc3RyaW5nPntkcXVvdGV9IHwKKzxzcXVvdGVkX3N0
cmluZz57c3F1b3RlfSB7QkVHSU4oc3RyaW5nX2NhbGxlcik7IHl5bGVuZyA9IHN0cmluZ19sZW47
IHl5dGV4dCA9IHN0cmluZ19wdHI7IHl5VG9rID0gKHN0cmluZ19jYWxsZXIgPT0gdXJpX2RvbmUp
ID8gVVJJIDogU1RSSU5HOyByZXR1cm4geXlUb2s7fQorPGRxdW90ZWRfc3RyaW5nPntubH0gfAor
PHNxdW90ZWRfc3RyaW5nPntubH0ge0JFR0lOKHN0cmluZ19jYWxsZXIpO30KKzxkcXVvdGVkX3N0
cmluZyxzcXVvdGVkX3N0cmluZz48PEVPRj4+IHtwcmludGYoIkVPRiBpbiBxdW90ZWRcbiIpO30K
Kzw8RU9GPj4geworICAgIC8vIDxkcXVvdGVkX3N0cmluZyxzcXVvdGVkX3N0cmluZz48PEVPRj4+
IGRvZXNuJ3Qgd29yayBmb3Igc29tZSB1bmtub3duIHJlYXNvbnMuIEhlbmNlIHRoZSB1c2Ugb2Yg
dGhlIHN3aXRjaCBiZWxvdy4KKyAgICBzd2l0Y2ggKFlZX1NUQVJUKSB7CisgICAgY2FzZSBkcXVv
dGVkX3N0cmluZzoKKyAgICBjYXNlIHNxdW90ZWRfc3RyaW5nOgorICAgIHsKKyAgICAgICAgQkVH
SU4oc3RyaW5nX2NhbGxlcik7CisgICAgICAgIHl5bGVuZy0tOyAvLyBSZW1vdmUgdGhlICdcMCcg
cmVwcmVzZW50aW5nIEVPRi4KKyAgICAgICAgeXlUb2sgPSAoc3RyaW5nX2NhbGxlciA9PSB1cmlf
ZG9uZSkgPyBVUkkgOiBTVFJJTkc7CisgICAgICAgIHJldHVybiB5eVRvazsKKyAgICB9CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgeXl0ZXJtaW5hdGUoKTsKKyAgICB9Cit9CisKIHtpZGVudH0gICAg
ICAgICAgICAgICAgIHt5eVRvayA9IElERU5UOyByZXR1cm4geXlUb2s7fQoge250aH0gICAgICAg
ICAgICAgICAgICAge3l5VG9rID0gTlRIOyByZXR1cm4geXlUb2s7fQogCkBAIC05Niw4ICsxMzQs
MTQgQEAgbnRoICAgICAgICAgICAgICgtP1swLTldKm5bXCstXVswLTldKyl8KC0/WzAtOV0qbikK
IHtudW19ICAgICAgICAgICAgICAgICAgIHt5eVRvayA9IEZMT0FUVE9LRU47IHJldHVybiB5eVRv
azt9CiAKICJub3QoIiAgICAgICAgICAgICAgICAgIHt5eVRvayA9IE5PVEZVTkNUSU9OOyByZXR1
cm4geXlUb2s7fQotInVybCgie3d9e3N0cmluZ317d30iKSIge3l5VG9rID0gVVJJOyByZXR1cm4g
eXlUb2s7fQotInVybCgie3d9e3VybH17d30iKSIgICAge3l5VG9rID0gVVJJOyByZXR1cm4geXlU
b2s7fQorCis8SU5JVElBTCxtZWRpYXF1ZXJ5LGZvcmtleXdvcmQ+InVybCgiIHt1cmlfY2FsbGVy
ID0gWVlfU1RBUlQ7IEJFR0lOKHVyaSk7fQorPHVyaT57d30gICAgICAgICAgICAgICAgey8qIEVh
dCB3aGl0ZXNwYWNlICovfQorPHVyaT57dXJsfSAgICAgICAgICAgICAge0JFR0lOKHVyaV9kb25l
KTsgeXlUb2sgPSBVUkk7IHJldHVybiB5eVRvazt9Cis8dXJpPiIpIiAgICAgICAgICAgICAgICB7
QkVHSU4odXJpX2NhbGxlcik7IHl5bGVuZyA9IDA7IHl5VG9rID0gVVJJOyByZXR1cm4geXlUb2s7
fQorPHVyaV9kb25lPnt3fSAgICAgICAgICAgey8qIEVhdCB3aGl0ZXNwYWNlICovfQorPHVyaV9k
b25lPiIpIiAgICAgICAgICAge0JFR0lOKHVyaV9jYWxsZXIpO30KKwogIi13ZWJraXQtdmFyKCJ7
d317aWRlbnR9e3d9IikiIHsgeXlUb2sgPSBWQVJDQUxMOyByZXR1cm4geXlUb2s7IH0KIHtpZGVu
dH0iKCIgICAgICAgICAgICAgIHt5eVRvayA9IEZVTkNUSU9OOyByZXR1cm4geXlUb2s7fQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>47603</attachid>
            <date>2010-01-28 03:49:07 -0800</date>
            <delta_ts>2010-01-28 03:49:07 -0800</delta_ts>
            <desc>New testcase</desc>
            <filename>parsing-unclosed-string.html</filename>
            <type>text/html</type>
            <size>1804</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">PGh0bWw+CjxoZWFkPgo8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNl
cy9qcy10ZXN0LXN0eWxlLmNzcyI+CjxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0Pgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoqIHsKICAgIGNvbG9y
OiBibGFjazsKICAgIGZvbnQtZmFtaWx5OiAnQ291cmllcic7CiAgICBmb250LXdlaWdodDogbm9y
bWFsOwp9Cjwvc3R5bGU+Cgo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgojdGVzdDEtcmVmIHsKICAg
IGZvbnQtZmFtaWx5OiAnSW1wYWN0JzsKfQojdGVzdDEtdGVzdCB7CiAgICBmb250LWZhbWlseTog
J0ltcFwKYWN0JzsKfQo8L3N0eWxlPgoKPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KI3Rlc3QyLXJl
ZiB7CiAgICBmb250LXdlaWdodDogYm9sZDsKfQojdGVzdDItdGVzdCB7CiAgICBmb250LWZhbWls
eTogJ0ltcGFjdAogICAgY29sb3I6cmVkOwogICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cn0KPC9zdHls
ZT4KCjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CiN0ZXN0My1yZWYgewogICAgY29sb3I6Z3JheTsK
ICAgIGZvbnQtZmFtaWx5OiAnSW1wYWN0JzsKfQojdGVzdDMtdGVzdCB7CiAgICBjb2xvcjpncmF5
OwogICAgZm9udC1mYW1pbHk6ICdJbXBhY3Q8L3N0eWxlPgoKPHN0eWxlIHR5cGU9InRleHQvY3Nz
Ij4KI3Rlc3Q0LXJlZiB7CiAgICBjb2xvcjpibHVlOwp9CiN0ZXN0NC10ZXN0IHsKICAgIGNvbG9y
OmJsdWU7CiAgICBmb250LWZhbWlseTogJ0ltcGFjdAo8L3N0eWxlPgo8L2hlYWQ+Cjxib2R5Pgo8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KPGhyLz4KCjxwIGlkPSJ0ZXN0MS1yZWYiPlRlc3QgMTwv
cD4KPHAgaWQ9InRlc3QxLXRlc3QiPlRlc3QgMTwvcD4KCjxwIGlkPSJ0ZXN0Mi1yZWYiPlRlc3Qg
MjwvcD4KPHAgaWQ9InRlc3QyLXRlc3QiPlRlc3QgMjwvcD4KCjxwIGlkPSJ0ZXN0My1yZWYiPlRl
c3QgMzwvcD4KPHAgaWQ9InRlc3QzLXRlc3QiPlRlc3QgMzwvcD4KCjxwIGlkPSJ0ZXN0NC1yZWYi
PlRlc3QgNDwvcD4KPHAgaWQ9InRlc3Q0LXRlc3QiPlRlc3QgNDwvcD4KCjxoci8+CjxkaXYgaWQ9
ImNvbnNvbGUiPjwvZGl2PgoKPHNjcmlwdD4KZGVzY3JpcHRpb24oIlRlc3RzIGlmIHVuY2xvc2Vk
IHN0cmluZ3MgYXJlIHBhcnNlZCBwcm9wZXJseS4iKTsKCmZ1bmN0aW9uIGdldFByb3BlcnR5KGVs
ZW1lbnRJZCwgbmFtZSkKewogICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCkpLmdldFByb3BlcnR5VmFsdWUobmFtZSk7Cn0K
CmZvciAodmFyIGkgPSAxOyBpIDw9IDQ7IGkrKykKewogICAgc2hvdWxkQmUoImdldFByb3BlcnR5
KCd0ZXN0IiArIGkgKyAiLXJlZicsICdmb250LWZhbWlseScpIiwgImdldFByb3BlcnR5KCd0ZXN0
IiArIGkgKyAiLXRlc3QnLCAnZm9udC1mYW1pbHknKSIpOwogICAgc2hvdWxkQmUoImdldFByb3Bl
cnR5KCd0ZXN0IiArIGkgKyAiLXJlZicsICdmb250LXdlaWdodCcpIiwgImdldFByb3BlcnR5KCd0
ZXN0IiArIGkgKyAiLXRlc3QnLCAnZm9udC13ZWlnaHQnKSIpOwogICAgc2hvdWxkQmUoImdldFBy
b3BlcnR5KCd0ZXN0IiArIGkgKyAiLXJlZicsICdjb2xvcicpIiwgICAgICAgImdldFByb3BlcnR5
KCd0ZXN0IiArIGkgKyAiLXRlc3QnLCAnY29sb3InKSIpOwp9Cgp2YXIgc3VjY2Vzc2Z1bGx5UGFy
c2VkID0gdHJ1ZTsKPC9zY3JpcHQ+CjxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KPC9ib2R5Pgo8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47684</attachid>
            <date>2010-01-28 23:58:34 -0800</date>
            <delta_ts>2010-02-07 22:35:22 -0800</delta_ts>
            <desc>Change flex rule such that unclosed string/url is properly handled.</desc>
            <filename>bug-34067-20100129165832.patch</filename>
            <type>text/plain</type>
            <size>19921</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmZjIwMTMwLi42ZDk0OGY2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTAtMDEt
MjQgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBmbGV4IHJ1bGUgc3VjaCB0aGF0
IHVuY2xvc2VkIHN0cmluZy91cmwgaXMgcHJvcGVybHkgaGFuZGxlZC4KKyAgICAgICAgaHR0cDov
L3d3dy53My5vcmcvVFIvQ1NTMjEvc3luZGF0YS5odG1sI3BhcnNpbmctZXJyb3JzIHNwZWNpZmll
cyBob3cgdW5jbG9zZWQgc3RyaW5ncyBtdXN0IGJlIGhhbmRsZWQuIFdpdGhvdXQgdGhpcyBwYXRj
aCwgV2ViS2l0IGlnbm9yZXMgdW5jbG9zZWQgc3RyaW5ncy4KKyAgICAgICAgTm90ZSB0aGF0IExh
eW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWwgaXMgY2hhbmdlZCBi
ZWNhdXNlIGl0IGhhcyBjb250YWluZWQgd3JvbmcgcXVvdGVzLgorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwNjcKKworICAgICAgICAqIGZhc3QvY3Nz
L2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWw6CisgICAgICAgICogZmFzdC9jc3MvcGFyc2luZy11
bmNsb3NlZC1zdHJpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9w
YXJzaW5nLXVuY2xvc2VkLXN0cmluZy5odG1sOiBBZGRlZC4KKwogMjAxMC0wMS0xMSAgS2VudCBU
YW11cmEgIDx0a2VudEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdkLiBSZW1vdmUg
YSBkdXBsaWNhdGVkIGxpbmUgaW4gYW4gZXhwZWN0YXRpb24gZmlsZS4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5odG1sCmluZGV4IDJjZmIzNDcuLmM0N2Zl
YmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRfcHJvcGVydHlfbm9ybWFs
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udF9wcm9wZXJ0eV9ub3JtYWwuaHRt
bApAQCAtMywxMSArMywxMSBAQAogPEhFQUQ+CiA8VElUTEU+VGVzdGluZyB2YWxpZCBmb250IHBy
b3BlcnR5IHNwZWNpZmljYXRpb248L1RJVExFPgogPFNUWUxFIHR5cGU9InRleHQvY3NzIj4KLS5v
bmUge2ZvbnQ6IDI0cHQgaXRhbGljOyJ9Cisub25lIHtmb250OiAyNHB0IGl0YWxpYzt9CiAudHdv
IHtmb250OiAyNHB0IGl0YWxpYyBBcmlhbDt9CiAudGhyZWUge2ZvbnQ6IDI0cHQgaXRhbGljICdB
cmlhbCc7fQogLmZvdXIge2ZvbnQ6IGl0YWxpYyAyNHB0O30KLS5maXZlIHtmb250OiBpdGFsaWMg
MjRwdCBBcmlhbDsifQorLmZpdmUge2ZvbnQ6IGl0YWxpYyAyNHB0IEFyaWFsO30KIC5zaXgge2Zv
bnQ6IGl0YWxpYyAyNHB0ICdBcmlhbCc7fQogLnNldmVuIHtmb250OiBBcmlhbCAyNHB0IGl0YWxp
Yzt9CiAuZWlnaHQge2ZvbnQ6ICdBcmlhbCcgMjRwdCBpdGFsaWM7fQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmNsb3NlZC1zdHJpbmctZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmNsb3NlZC1zdHJpbmctZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFlYmZmMjAKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw4NCBAQAorVGVzdHMgaWYgdW5jbG9zZWQgc3RyaW5ncyBhcmUg
cGFyc2VkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCAx
KHJlZikgVGVzdCAxKHRlc3QpIAorVGVzdCAyKHJlZikgVGVzdCAyKHRlc3QpIAorVGVzdCAzKHJl
ZikgVGVzdCAzKHRlc3QpIAorVGVzdCA0KHJlZikgVGVzdCA0KHRlc3QpIAorVGVzdCA1KHJlZikg
VGVzdCA1KHRlc3QpIAorVGVzdCA2KHJlZikgVGVzdCA2KHRlc3QpIAorVGVzdCA3KHJlZikgVGVz
dCA3KHRlc3QpIAorVGVzdCA4KHJlZikgVGVzdCA4KHRlc3QpIAorVGVzdCA5KHJlZikgVGVzdCA5
KHRlc3QpIAorVGVzdCAxMChyZWYpIFRlc3QgMTAodGVzdCkgCitUZXN0IDExKHJlZikgVGVzdCAx
MSh0ZXN0KSAKK1Rlc3QgMTIocmVmKSBUZXN0IDEyKHRlc3QpIAorVGVzdCAxMyhyZWYpIFRlc3Qg
MTModGVzdCkgCitUZXN0IDE0KHJlZikgVGVzdCAxNCh0ZXN0KSAKK1Rlc3QgMTUocmVmKSBUZXN0
IDE1KHRlc3QpIAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorUEFTUyBnZXRQcm9w
ZXJ0eSgndGVzdDEtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MS1y
ZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEtdGVzdCcsICdmb250
LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0MS1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFT
UyBnZXRQcm9wZXJ0eSgndGVzdDEtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0
MS1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEtdGVzdCcsICdiYWNrZ3Jv
dW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxLXJlZicsICdiYWNrZ3JvdW5kLWltYWdl
JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QyLXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQ
cm9wZXJ0eSgndGVzdDItcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rl
c3QyLXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDItcmVmJywgJ2Zv
bnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QyLXRlc3QnLCAnY29sb3InKSBpcyBn
ZXRQcm9wZXJ0eSgndGVzdDItcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Qy
LXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0Mi1yZWYnLCAn
YmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0My10ZXN0JywgJ2ZvbnQt
ZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QzLXJlZicsICdmb250LWZhbWlseScpCitQQVNT
IGdldFByb3BlcnR5KCd0ZXN0My10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHko
J3Rlc3QzLXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0My10ZXN0
JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QzLXJlZicsICdjb2xvcicpCitQQVNTIGdl
dFByb3BlcnR5KCd0ZXN0My10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0
eSgndGVzdDMtcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVz
dDQtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0NC1yZWYnLCAnZm9u
dC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDQtdGVzdCcsICdmb250LXdlaWdodCcp
IGlzIGdldFByb3BlcnR5KCd0ZXN0NC1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9w
ZXJ0eSgndGVzdDQtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0NC1yZWYnLCAn
Y29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDQtdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdl
JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q0LXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKK1BBU1Mg
Z2V0UHJvcGVydHkoJ3Rlc3Q1LXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgn
dGVzdDUtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q1LXRlc3Qn
LCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDUtcmVmJywgJ2ZvbnQtd2VpZ2h0
JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q1LXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0
eSgndGVzdDUtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q1LXRlc3QnLCAn
YmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0NS1yZWYnLCAnYmFja2dyb3Vu
ZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0Ni10ZXN0JywgJ2ZvbnQtZmFtaWx5Jykg
aXMgZ2V0UHJvcGVydHkoJ3Rlc3Q2LXJlZicsICdmb250LWZhbWlseScpCitQQVNTIGdldFByb3Bl
cnR5KCd0ZXN0Ni10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q2LXJl
ZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0Ni10ZXN0JywgJ2NvbG9y
JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q2LXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5
KCd0ZXN0Ni10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDYt
cmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDctdGVzdCcs
ICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0Ny1yZWYnLCAnZm9udC1mYW1pbHkn
KQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDctdGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFBy
b3BlcnR5KCd0ZXN0Ny1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVz
dDctdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0Ny1yZWYnLCAnY29sb3InKQor
UEFTUyBnZXRQcm9wZXJ0eSgndGVzdDctdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0
UHJvcGVydHkoJ3Rlc3Q3LXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVy
dHkoJ3Rlc3Q4LXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDgtcmVm
JywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q4LXRlc3QnLCAnZm9udC13
ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDgtcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1Mg
Z2V0UHJvcGVydHkoJ3Rlc3Q4LXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDgt
cmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q4LXRlc3QnLCAnYmFja2dyb3Vu
ZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0OC1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScp
CitQQVNTIGdldFByb3BlcnR5KCd0ZXN0OS10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJv
cGVydHkoJ3Rlc3Q5LXJlZicsICdmb250LWZhbWlseScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0
OS10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q5LXJlZicsICdmb250
LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0OS10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0
UHJvcGVydHkoJ3Rlc3Q5LXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0OS10
ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDktcmVmJywgJ2Jh
Y2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEwLXRlc3QnLCAnZm9udC1m
YW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEwLXJlZicsICdmb250LWZhbWlseScpCitQQVNT
IGdldFByb3BlcnR5KCd0ZXN0MTAtdGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5
KCd0ZXN0MTAtcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMC10
ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMC1yZWYnLCAnY29sb3InKQorUEFT
UyBnZXRQcm9wZXJ0eSgndGVzdDEwLXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFBy
b3BlcnR5KCd0ZXN0MTAtcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9wZXJ0
eSgndGVzdDExLXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDExLXJl
ZicsICdmb250LWZhbWlseScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTEtdGVzdCcsICdmb250
LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTEtcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BB
U1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMS10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rl
c3QxMS1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDExLXRlc3QnLCAnYmFj
a2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTEtcmVmJywgJ2JhY2tncm91bmQt
aW1hZ2UnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEyLXRlc3QnLCAnZm9udC1mYW1pbHknKSBp
cyBnZXRQcm9wZXJ0eSgndGVzdDEyLXJlZicsICdmb250LWZhbWlseScpCitQQVNTIGdldFByb3Bl
cnR5KCd0ZXN0MTItdGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTIt
cmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMi10ZXN0JywgJ2Nv
bG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMi1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9w
ZXJ0eSgndGVzdDEyLXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0
ZXN0MTItcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEz
LXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEzLXJlZicsICdmb250
LWZhbWlseScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTMtdGVzdCcsICdmb250LXdlaWdodCcp
IGlzIGdldFByb3BlcnR5KCd0ZXN0MTMtcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJv
cGVydHkoJ3Rlc3QxMy10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMy1yZWYn
LCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEzLXRlc3QnLCAnYmFja2dyb3VuZC1p
bWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTMtcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQor
UEFTUyBnZXRQcm9wZXJ0eSgndGVzdDE0LXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQcm9w
ZXJ0eSgndGVzdDE0LXJlZicsICdmb250LWZhbWlseScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0
MTQtdGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTQtcmVmJywgJ2Zv
bnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxNC10ZXN0JywgJ2NvbG9yJykgaXMg
Z2V0UHJvcGVydHkoJ3Rlc3QxNC1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVz
dDE0LXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTQtcmVm
JywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDE1LXRlc3QnLCAn
Zm9udC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDE1LXJlZicsICdmb250LWZhbWlseScp
CitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTUtdGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFBy
b3BlcnR5KCd0ZXN0MTUtcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rl
c3QxNS10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxNS1yZWYnLCAnY29sb3In
KQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDE1LXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlz
IGdldFByb3BlcnR5KCd0ZXN0MTUtcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorCitURVNUIENP
TVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9z
ZWQtc3RyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0
cmluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3NTk1YmUKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0
cmluZy5odG1sCkBAIC0wLDAgKzEsMTkyIEBACis8aHRtbD4KKzxoZWFkPgorPGxpbmsgcmVsPSJz
dHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1zdHlsZS5jc3MiPgorPHNj
cmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5
bGUgdHlwZT0idGV4dC9jc3MiPgorKiB7CisgICAgY29sb3I6IGJsYWNrOworICAgIGZvbnQtZmFt
aWx5OiAnQ291cmllcic7CisgICAgZm9udC13ZWlnaHQ6IG5vcm1hbDsKK30KKzwvc3R5bGU+CisK
KzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDEtcmVmIHsKKyAgICBmb250LWZhbWlseTog
J0ltcGFjdCc7Cit9CisjdGVzdDEtdGVzdCB7CisgICAgZm9udC1mYW1pbHk6ICdJbXBcCithY3Qn
OworfQorPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0Mi1yZWYgewor
ICAgIGZvbnQtd2VpZ2h0OiBib2xkOworfQorI3Rlc3QyLXRlc3QgeworICAgIGZvbnQtZmFtaWx5
OiAnSW1wYWN0CisgICAgY29sb3I6cmVkOworICAgIGZvbnQtd2VpZ2h0OiBib2xkOworfQorPC9z
dHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0My1yZWYgeworICAgIGNvbG9y
OmdyYXk7CisgICAgZm9udC1mYW1pbHk6ICdJbXBhY3QnOworfQorI3Rlc3QzLXRlc3QgeworICAg
IGNvbG9yOmdyYXk7CisgICAgZm9udC1mYW1pbHk6ICdJbXBhY3Q8L3N0eWxlPgorCis8c3R5bGUg
dHlwZT0idGV4dC9jc3MiPgorI3Rlc3Q0LXJlZiB7CisgICAgY29sb3I6Ymx1ZTsKK30KKyN0ZXN0
NC10ZXN0IHsKKyAgICBjb2xvcjpibHVlOworICAgIGZvbnQtZmFtaWx5OiAnSW1wYWN0Cis8L3N0
eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3Q1LXJlZiB7CisgICAgY29sb3I6
bWFyb29uOworfQorI3Rlc3Q1LXRlc3QgeworICAgIGNvbG9yOm1hcm9vbjsKKyAgICBmb250LWZh
bWlseTogIkltcGFjdAg8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3Q2
LXJlZiB7CisgICAgY29sb3I6dGVhbDsKK30KKzwvc3R5bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9j
c3MiPgorQGltcG9ydCB1cmwoJ2RhdGE6dGV4dC9jc3MsI3Rlc3Q2LXRlc3R7Y29sb3I6dGVhbDt9
Jyk7Cis8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3Q3LXJlZiB7Cisg
ICAgY29sb3I6b2xpdmU7Cit9Cis8L3N0eWxlPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK0Bp
bXBvcnQgdXJsKCAnZGF0YTp0ZXh0L2NzcywjdGVzdDctdGVzdHtjb2xvcjpvbGl2ZTt9JyApOwor
PC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0OC1yZWYgeworfQorPC9z
dHlsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitAaW1wb3J0IHVybCgnZGF0YTp0ZXh0L2Nz
cywjdGVzdDgtdGVzdHtjb2xvcjpwdXJwbGU7fSdleHRyYSk7Cis8L3N0eWxlPgorCis8c3R5bGUg
dHlwZT0idGV4dC9jc3MiPgorI3Rlc3Q5LXJlZiB7Cit9Cis8L3N0eWxlPgorPHN0eWxlIHR5cGU9
InRleHQvY3NzIj4KK0BpbXBvcnQgdXJsKGV4dHJhJ2RhdGE6dGV4dC9jc3MsI3Rlc3Q5LXRlc3R7
Y29sb3I6cHVycGxlO30nKTsKKzwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cisj
dGVzdDEwLXJlZiB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdyZXNvdXJjZXMvZ3JlZW5i
b3gucG5nJyk7Cit9CisjdGVzdDEwLXRlc3QgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgn
cmVzb3VyY2VzL2dyZWVuYm94LnBuZycKKzwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2Nz
cyI+CisjdGVzdDExLXJlZiB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdyZXNvdXJjZXMv
cHVycGxlLW5vcHJvZmlsZS5wbmcnKTsKK30KKyN0ZXN0MTEtdGVzdCB7CisgICAgYmFja2dyb3Vu
ZC1pbWFnZTogdXJsKCdyZXNvdXJjZXMvcHVycGxlLW5vcHJvZmlsZS5wbmc8L3N0eWxlPgorCis8
c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QxMi1yZWYgeworfQorI3Rlc3QxMi10ZXN0IHsK
KyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9ncmVlbmJveC5wbmcKKzwvc3R5
bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDEzLXJlZiB7CisgICAgYmFja2dy
b3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9ncmVlbmJveC5wbmcpOworfQorI3Rlc3QxMy10ZXN0
IHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2dyZWVuYm94LnBuZworPC9z
dHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0MTQtcmVmIHsKKyAgICBiYWNr
Z3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL3B1cnBsZS1ub3Byb2ZpbGUucG5nKTsKK30KKyN0
ZXN0MTQtdGVzdCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9wdXJwbGUt
bm9wcm9maWxlLnBuZzwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDE1
LXJlZiB7Cit9CisjdGVzdDE1LXRlc3QgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNv
dXJjZXMvZ3JlZW5ib3gucG5nIGV4dGFyYSk7Cit9Cis8L3N0eWxlPgorCis8c2NyaXB0PgordmFy
IG51bVRlc3QgPSAxNTsKKworZnVuY3Rpb24gZ2V0UHJvcGVydHkoZWxlbWVudElkLCBuYW1lKQor
eworICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZChlbGVtZW50SWQpKS5nZXRQcm9wZXJ0eVZhbHVlKG5hbWUpOworfQorCitmdW5jdGlvbiB0
ZXN0KCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBpZiB1bmNsb3NlZCBzdHJpbmdzIGFyZSBw
YXJzZWQgcHJvcGVybHkuIik7CisgICAgc2hvdWxkQmVUcnVlKCJzdWNjZXNzZnVsbHlQYXJzZWQi
KTsKKworICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IG51bVRlc3Q7IGkrKykKKyAgICB7CisgICAg
ICAgIHNob3VsZEJlKCJnZXRQcm9wZXJ0eSgndGVzdCIgKyBpICsgIi10ZXN0JywgJ2ZvbnQtZmFt
aWx5JykiLCAiZ2V0UHJvcGVydHkoJ3Rlc3QiICsgaSArICItcmVmJywgJ2ZvbnQtZmFtaWx5Jyki
KTsKKyAgICAgICAgc2hvdWxkQmUoImdldFByb3BlcnR5KCd0ZXN0IiArIGkgKyAiLXRlc3QnLCAn
Zm9udC13ZWlnaHQnKSIsICJnZXRQcm9wZXJ0eSgndGVzdCIgKyBpICsgIi1yZWYnLCAnZm9udC13
ZWlnaHQnKSIpOworICAgICAgICBzaG91bGRCZSgiZ2V0UHJvcGVydHkoJ3Rlc3QiICsgaSArICIt
dGVzdCcsICdjb2xvcicpIiwgICAgICAgImdldFByb3BlcnR5KCd0ZXN0IiArIGkgKyAiLXJlZics
ICdjb2xvcicpIik7CisgICAgICAgIHNob3VsZEJlKCJnZXRQcm9wZXJ0eSgndGVzdCIgKyBpICsg
Ii10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSIsICAgICAgICJnZXRQcm9wZXJ0eSgndGVzdCIg
KyBpICsgIi1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpIik7CisgICAgfQorCisgICAgZGVidWco
JzxiciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENPTVBMRVRFPC9zcGFuPicpOworfQorCis8
L3NjcmlwdD4KKworPC9oZWFkPgorPGJvZHkgb25sb2FkPSJ0ZXN0KCkiPgorPHAgaWQ9ImRlc2Ny
aXB0aW9uIj48L3A+Cis8aHIvPgorPGRpdiBpZD0idGVzdC1lbGVtZW50cyI+Cis8L2Rpdj4KKzxo
ci8+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0Ij4KK3ZhciB0ZXN0RWxlbWVudHMgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdC1l
bGVtZW50cyIpOworCitmb3IgKHZhciBpID0gMTsgaSA8PSBudW1UZXN0OyBpKyspCit7CisgICAg
dmFyIHJlZkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgdmFy
IHRlc3RFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgIHJlZkVs
ZW1lbnQuaW5uZXJIVE1MID0gIlRlc3QgIiArIGkgKyAiKHJlZikgIjsKKyAgICB0ZXN0RWxlbWVu
dC5pbm5lckhUTUwgPSAiVGVzdCAiICsgaSArICIodGVzdCkgIjsKKyAgICByZWZFbGVtZW50Lmlk
ID0gInRlc3QiICsgaSArICItcmVmIjsKKyAgICB0ZXN0RWxlbWVudC5pZCA9ICJ0ZXN0IiArIGkg
KyAiLXRlc3QiOworICAgIHRlc3RFbGVtZW50cy5hcHBlbmRDaGlsZChyZWZFbGVtZW50KTsKKyAg
ICB0ZXN0RWxlbWVudHMuYXBwZW5kQ2hpbGQodGVzdEVsZW1lbnQpOworCisgICAgdGVzdEVsZW1l
bnRzLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJyIikpOworfQorCit2YXIg
c3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAx
ZDhiNTYwLi44NTI0MDBhIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDEwLTAxLTI0ICBZdXpvIEZ1amlzaGlt
YSAgPHl1em9AZ29vZ2xlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBDaGFuZ2UgZmxleCBydWxlIHN1Y2ggdGhhdCB1bmNsb3NlZCBzdHJpbmcv
dXJsIGlzIHByb3Blcmx5IGhhbmRsZWQuCisgICAgICAgIGh0dHA6Ly93d3cudzMub3JnL1RSL0NT
UzIxL3N5bmRhdGEuaHRtbCNwYXJzaW5nLWVycm9ycyBzcGVjaWZpZXMgaG93IHVuY2xvc2VkIHN0
cmluZ3MgbXVzdCBiZSBoYW5kbGVkLiBXaXRob3V0IHRoaXMgcGF0Y2gsIFdlYktpdCBpZ25vcmVz
IHVuY2xvc2VkIHN0cmluZ3MuCisgICAgICAgIE5vdGUgdGhhdCBMYXlvdXRUZXN0cy9mYXN0L2Nz
cy9mb250X3Byb3BlcnR5X25vcm1hbC5odG1sIGlzIGNoYW5nZWQgYmVjYXVzZSBpdCBoYXMgY29u
dGFpbmVkIHdyb25nIHF1b3Rlcy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTM0MDY3CisKKyAgICAgICAgVGVzdDogZmFzdC9jc3MvcGFyc2luZy11bmNs
b3NlZC1zdHJpbmcuaHRtbAorCisgICAgICAgICogY3NzL0NTU1BhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NQYXJzZXI6OnRleHQpOgorICAgICAgICAqIGNzcy9tYWtldG9rZW5pemVy
OgorICAgICAgICAqIGNzcy90b2tlbml6ZXIuZmxleDoKKwogMjAxMC0wMS0xMiAgWXVyeSBTZW1p
a2hhdHNreSAgPHl1cnlzQGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBHZW9m
ZnJleSBHYXJlbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGU3MTQ0M2MuLjIwZmRiZDYgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNw
cApAQCAtNDczNywzMSArNDczNywxMyBAQCBVQ2hhciogQ1NTUGFyc2VyOjp0ZXh0KGludCAqbGVu
Z3RoKQogICAgIGludCBsID0geXlsZW5nOwogICAgIHN3aXRjaCAoeXlUb2spIHsKICAgICBjYXNl
IFNUUklORzoKLSAgICAgICAgbC0tOwotICAgICAgICAvKiBub2JyZWFrICovCisgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgSEVYOgogICAgIGNhc2UgSURTRUw6CiAgICAgICAgIHN0YXJ0Kys7CiAg
ICAgICAgIGwtLTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBVUkk6Ci0gICAgICAgIC8vICJ1
cmwoInt3fXtzdHJpbmd9e3d9IikiCi0gICAgICAgIC8vICJ1cmwoInt3fXt1cmx9e3d9IikiCi0g
ICAgICAgIC8vIHN0cmlwICJ1cmwoIiBhbmQgIikiCi0gICAgICAgIHN0YXJ0ICs9IDQ7Ci0gICAg
ICAgIGwgLT0gNTsKLSAgICAgICAgLy8gc3RyaXAge3d9Ci0gICAgICAgIHdoaWxlIChsICYmIGlz
Q1NTV2hpdGVzcGFjZSgqc3RhcnQpKSB7Ci0gICAgICAgICAgICArK3N0YXJ0OwotICAgICAgICAg
ICAgLS1sOwotICAgICAgICB9Ci0gICAgICAgIHdoaWxlIChsICYmIGlzQ1NTV2hpdGVzcGFjZShz
dGFydFtsIC0gMV0pKQotICAgICAgICAgICAgLS1sOwotICAgICAgICBpZiAobCAmJiAoKnN0YXJ0
ID09ICciJyB8fCAqc3RhcnQgPT0gJ1wnJykpIHsKLSAgICAgICAgICAgIEFTU0VSVChsID49IDIg
JiYgc3RhcnRbbCAtIDFdID09ICpzdGFydCk7Ci0gICAgICAgICAgICArK3N0YXJ0OwotICAgICAg
ICAgICAgbCAtPSAyOwotICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVkFSQ0FM
TDoKICAgICAgICAgLy8gIi13ZWJraXQtdmFyKCJ7d317aWRlbnR9e3d9IikiCkBAIC01MzYwLDYg
KzUzNDIsMTAgQEAgdHlwZWRlZiB1bnNpZ25lZCBZWV9DSEFSOwogLy8gb2Zmc2V0IG11bHRpcGxp
ZXJzIHRoYXQgc3BlY2lmeSB3aGljaCB0cmFuc2l0aW9ucyBhcmUgYWN0aXZlCiAvLyBpbiB0aGUg
dG9rZW5pemVyIGR1cmluZyBpbiBlYWNoIGNvbmRpdGlvbiAodG9rZW5pemVyIHN0YXRlKS4KICNk
ZWZpbmUgQkVHSU4geXlfc3RhcnQgPSAxICsgMiAqCisjZGVmaW5lIHl5dGV4dF9wdHIgeXl0ZXh0
CitzdGF0aWMgaW50IHl5X21vcmVfZmxhZyA9IDA7CitzdGF0aWMgaW50IHl5X21vcmVfbGVuID0g
MDsKKyNkZWZpbmUgeXltb3JlKCkgKCh5eV9tb3JlX2ZsYWcpID0gMSkKIAogI2luY2x1ZGUgInRv
a2VuaXplci5jcHAiCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL21ha2V0b2tlbml6ZXIgYi9X
ZWJDb3JlL2Nzcy9tYWtldG9rZW5pemVyCmluZGV4IDkwZDVmY2IuLjhjMzIwM2QgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvY3NzL21ha2V0b2tlbml6ZXIKKysrIGIvV2ViQ29yZS9jc3MvbWFrZXRva2Vu
aXplcgpAQCAtNDksNiArNDksMTIgQEAgcHJpbnQ8PEVORAogI2RlZmluZSBJTklUSUFMIDAKICNk
ZWZpbmUgbWVkaWFxdWVyeSAxCiAjZGVmaW5lIGZvcmtleXdvcmQgMgorI2RlZmluZSBkcXVvdGVk
X3N0cmluZyAzCisjZGVmaW5lIHNxdW90ZWRfc3RyaW5nIDQKKyNkZWZpbmUgdXJpIDUKKyNkZWZp
bmUgdXJpX3BlbmRpbmcgNgorCisjZGVmaW5lIFlZX1NUQVJUICgoKHl5X3N0YXJ0KSAtIDEpIC8g
MikKIAogLyogQzk5IHN5c3RlbXMgaGF2ZSA8aW50dHlwZXMuaD4uIE5vbi1DOTkgc3lzdGVtcyBt
YXkgb3IgbWF5IG5vdC4gKi8KIApAQCAtNjgsNiArNzQsMTEgQEAgdHlwZWRlZiB1bnNpZ25lZCBj
aGFyIGZsZXhfdWludDhfdDsKIHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IGZsZXhfdWludDE2
X3Q7CiB0eXBlZGVmIHVuc2lnbmVkIGludCBmbGV4X3VpbnQzMl90OwogI2VuZGlmIC8qICEgQzk5
ICovCisKKyAgICBpbnQgc3RyaW5nX2NhbGxlciA9IElOSVRJQUw7CisgICAgaW50IHVyaV9jYWxs
ZXIgPSBJTklUSUFMOworICAgIGludCBjb250ZW50X2xlbmd0aCA9IDA7CisgICAgaW50IGNvbnRl
bnRfb2ZmZXN0ID0gMDsKIEVORAogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy90b2tlbml6
ZXIuZmxleCBiL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4CmluZGV4IDE1NjllZTIuLmE4ZDQ3
ZDAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4CisrKyBiL1dlYkNvcmUv
Y3NzL3Rva2VuaXplci5mbGV4CkBAIC00LDYgKzQsMTAgQEAKICVvcHRpb24gc3RhY2sKICVzIG1l
ZGlhcXVlcnkKICVzIGZvcmtleXdvcmQKKyV4IGRxdW90ZWRfc3RyaW5nCisleCBzcXVvdGVkX3N0
cmluZworJXggdXJpCisleCB1cmlfcGVuZGluZwogCiBoICAgICAgICAgICAgICAgWzAtOWEtZkEt
Rl0KIG5vbmFzY2lpICAgICAgICBbXDIwMC1cMzc3XQpAQCAtMTEsMjMgKzE1LDI5IEBAIHVuaWNv
ZGUgICAgICAgICBcXHtofXsxLDZ9WyBcdFxyXG5cZl0/CiBlc2NhcGUgICAgICAgICAge3VuaWNv
ZGV9fFxcWyAtflwyMDAtXDM3N10KIG5tc3RhcnQgICAgICAgICBbX2EtekEtWl18e25vbmFzY2lp
fXx7ZXNjYXBlfQogbm1jaGFyICAgICAgICAgIFtfYS16QS1aMC05LV18e25vbmFzY2lpfXx7ZXNj
YXBlfQotc3RyaW5nMSAgICAgICAgIFwiKFtcdCAhIyQlJigtfl18XFx7bmx9fFwnfHtub25hc2Np
aX18e2VzY2FwZX0pKlwiCi1zdHJpbmcyICAgICAgICAgXCcoW1x0ICEjJCUmKC1+XXxcXHtubH18
XCJ8e25vbmFzY2lpfXx7ZXNjYXBlfSkqXCcKK2RxdW90ZWRfY29udGVudCAoW1x0ICEjJCUmKC1+
XXxcXHtubH18XCd8e25vbmFzY2lpfXx7ZXNjYXBlfSkqCitzcXVvdGVkX2NvbnRlbnQgKFtcdCAh
IyQlJigtfl18XFx7bmx9fFwifHtub25hc2NpaX18e2VzY2FwZX0pKgogaGV4Y29sb3IgICAgICAg
IHtofXszfXx7aH17Nn0KIAogaWRlbnQgICAgICAgICAgIC0/e25tc3RhcnR9e25tY2hhcn0qCiBu
YW1lICAgICAgICAgICAge25tY2hhcn0rCiBudW0gICAgICAgICAgICAgWzAtOV0rfFswLTldKiIu
IlswLTldKwogaW50bnVtICAgICAgICAgIFswLTldKwotc3RyaW5nICAgICAgICAgIHtzdHJpbmcx
fXx7c3RyaW5nMn0KIHVybCAgICAgICAgICAgICAoWyEjJCUmKi1+XXx7bm9uYXNjaWl9fHtlc2Nh
cGV9KSoKIHcgICAgICAgICAgICAgICBbIFx0XHJcblxmXSoKIG5sICAgICAgICAgICAgICBcbnxc
clxufFxyfFxmCitkcXVvdGUgICAgICAgICAgXCIKK3NxdW90ZSAgICAgICAgICBcJwogcmFuZ2Ug
ICAgICAgICAgIFw/ezEsNn18e2h9KFw/ezAsNX18e2h9KFw/ezAsNH18e2h9KFw/ezAsM318e2h9
KFw/ezAsMn18e2h9KFw/P3x7aH0pKSkpKQogbnRoICAgICAgICAgICAgICgtP1swLTldKm5bXCst
XVswLTldKyl8KC0/WzAtOV0qbikKIAogJSUKIAorICAgIGludCBzdHJpbmdfY2FsbGVyID0gSU5J
VElBTDsKKyAgICBpbnQgdXJpX2NhbGxlciA9IElOSVRJQUw7CisgICAgaW50IGNvbnRlbnRfbGVu
Z3RoID0gMDsKKyAgICBpbnQgY29udGVudF9vZmZlc3QgPSAwOworCiBcL1wqW14qXSpcKisoW14v
Kl1bXipdKlwqKykqXC8gIC8qIGlnbm9yZSBjb21tZW50cyAqLwogCiBbIFx0XHJcblxmXSsgICAg
ICAgICAgICB7eXlUb2sgPSBXSElURVNQQUNFOyByZXR1cm4geXlUb2s7fQpAQCAtNDQsNyArNTQs
NTEgQEAgbnRoICAgICAgICAgICAgICgtP1swLTldKm5bXCstXVswLTldKyl8KC0/WzAtOV0qbikK
IDxtZWRpYXF1ZXJ5PiJhbmQiICAgICAgIHt5eVRvayA9IE1FRElBX0FORDsgcmV0dXJuIHl5VG9r
O30KIDxmb3JrZXl3b3JkPiJmb3IiICAgICAgIHtCRUdJTihtZWRpYXF1ZXJ5KTsgeXlUb2sgPSBW
QVJJQUJMRVNfRk9SOyByZXR1cm4geXlUb2s7IH0KIAote3N0cmluZ30gICAgICAgICAgICAgICAg
e3l5VG9rID0gU1RSSU5HOyByZXR1cm4geXlUb2s7fQorPElOSVRJQUwsbWVkaWFxdWVyeSxmb3Jr
ZXl3b3JkLHVyaT57CisgICAge2RxdW90ZX0gICAgICAgICAgICB7c3RyaW5nX2NhbGxlciA9IFlZ
X1NUQVJUOyBjb250ZW50X2xlbmd0aCA9IDA7IEJFR0lOKGRxdW90ZWRfc3RyaW5nKTt9CisgICAg
e3NxdW90ZX0gICAgICAgICAgICB7c3RyaW5nX2NhbGxlciA9IFlZX1NUQVJUOyBjb250ZW50X2xl
bmd0aCA9IDA7IEJFR0lOKHNxdW90ZWRfc3RyaW5nKTt9Cit9Cis8ZHF1b3RlZF9zdHJpbmc+e2Rx
dW90ZWRfY29udGVudH0gfAorPHNxdW90ZWRfc3RyaW5nPntzcXVvdGVkX2NvbnRlbnR9IHtjb250
ZW50X2xlbmd0aCA9IHl5bGVuZzsgY29udGVudF9vZmZlc3QgPSAteXlsZW5nOyB5eW1vcmUoKTt9
Cis8ZHF1b3RlZF9zdHJpbmc+e2RxdW90ZX0gfAorPHNxdW90ZWRfc3RyaW5nPntzcXVvdGV9IHsK
KyAgICBCRUdJTihzdHJpbmdfY2FsbGVyID09IHVyaSA/IHVyaV9wZW5kaW5nIDogc3RyaW5nX2Nh
bGxlcik7CisgICAgaWYgKHN0cmluZ19jYWxsZXIgPT0gdXJpKSB7CisgICAgICAgIGNvbnRlbnRf
b2ZmZXN0IC09IHl5bGVuZzsKKyAgICAgICAgeXltb3JlKCk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgeXlsZW5nID0gY29udGVudF9sZW5ndGg7CisgICAgICAgIHl5dGV4dCArPSBjb250ZW50X29m
ZmVzdDsKKyAgICAgICAgeXlUb2sgPSBTVFJJTkc7CisgICAgICAgIHJldHVybiB5eVRvazsKKyAg
ICB9Cit9Cis8ZHF1b3RlZF9zdHJpbmcsc3F1b3RlZF9zdHJpbmc+e25sfXwuIHtCRUdJTihJTklU
SUFMKTt9Cis8PEVPRj4+IHsKKyAgICAvLyA8ZHF1b3RlZF9zdHJpbmcsc3F1b3RlZF9zdHJpbmc+
PDxFT0Y+PiBkb2Vzbid0IHdvcmsgZm9yIHNvbWUgdW5rbm93biByZWFzb25zLiBIZW5jZSB0aGUg
dXNlIG9mIHRoZSBzd2l0Y2ggYmVsb3cuCisgICAgc3dpdGNoIChZWV9TVEFSVCkgeworICAgIGNh
c2UgdXJpOgorICAgIGNhc2UgZHF1b3RlZF9zdHJpbmc6CisgICAgY2FzZSBzcXVvdGVkX3N0cmlu
ZzoKKyAgICB7CisgICAgICAgIHl5bGVuZy0tOyAvLyBSZW1vdmUgdGhlICdcMCcgcmVwcmVzZW50
aW5nIEVPRi4KKyAgICAgICAgeXlUb2sgPSAoc3RyaW5nX2NhbGxlciA9PSB1cmkgfHwgWVlfU1RB
UlQgPT0gdXJpKSA/IFVSSSA6IFNUUklORzsKKyAgICAgICAgQkVHSU4oSU5JVElBTCk7CisgICAg
ICAgIHJldHVybiB5eVRvazsKKyAgICB9CisgICAgY2FzZSB1cmlfcGVuZGluZzoKKyAgICB7Cisg
ICAgICAgIHl5bGVuZyA9IGNvbnRlbnRfbGVuZ3RoOworICAgICAgICB5eXRleHQgKz0gY29udGVu
dF9vZmZlc3Q7CisgICAgICAgIHl5VG9rID0gVVJJOworICAgICAgICBCRUdJTihJTklUSUFMKTsK
KyAgICAgICAgcmV0dXJuIHl5VG9rOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICB5eXRl
cm1pbmF0ZSgpOworICAgIH0KK30KKwoge2lkZW50fSAgICAgICAgICAgICAgICAge3l5VG9rID0g
SURFTlQ7IHJldHVybiB5eVRvazt9CiB7bnRofSAgICAgICAgICAgICAgICAgICB7eXlUb2sgPSBO
VEg7IHJldHVybiB5eVRvazt9CiAKQEAgLTk2LDggKzE1MCwxNiBAQCBudGggICAgICAgICAgICAg
KC0/WzAtOV0qbltcKy1dWzAtOV0rKXwoLT9bMC05XSpuKQoge251bX0gICAgICAgICAgICAgICAg
ICAge3l5VG9rID0gRkxPQVRUT0tFTjsgcmV0dXJuIHl5VG9rO30KIAogIm5vdCgiICAgICAgICAg
ICAgICAgICAge3l5VG9rID0gTk9URlVOQ1RJT047IHJldHVybiB5eVRvazt9Ci0idXJsKCJ7d317
c3RyaW5nfXt3fSIpIiB7eXlUb2sgPSBVUkk7IHJldHVybiB5eVRvazt9Ci0idXJsKCJ7d317dXJs
fXt3fSIpIiAgICB7eXlUb2sgPSBVUkk7IHJldHVybiB5eVRvazt9CisKKzxJTklUSUFMLG1lZGlh
cXVlcnksZm9ya2V5d29yZD4idXJsKCIge3VyaV9jYWxsZXIgPSBZWV9TVEFSVDsgQkVHSU4odXJp
KTt9Cis8dXJpPnt3fSAgICAgICAgICAgICAgICB7LyogU2tpcCB3aGl0ZXNwYWNlICovfQorPHVy
aT57dXJsfSAgICAgICAgICAgICAge0JFR0lOKHVyaV9wZW5kaW5nKTsgY29udGVudF9sZW5ndGgg
PSB5eWxlbmc7IGNvbnRlbnRfb2ZmZXN0ID0gLXl5bGVuZzsgeXltb3JlKCk7fQorPHVyaT4iKSIg
ICAgICAgICAgICAgICAge0JFR0lOKHVyaV9jYWxsZXIpOyB5eWxlbmcgPSAwOyB5eVRvayA9IFVS
STsgcmV0dXJuIHl5VG9rO30KKzx1cmk+LiAgICAgICAgICAgICAgICAgIHtCRUdJTih1cmlfY2Fs
bGVyKTt9Cis8dXJpX3BlbmRpbmc+e3d9ICAgICAgICB7Y29udGVudF9vZmZlc3QgLT0geXlsZW5n
OyB5eW1vcmUoKTt9Cis8dXJpX3BlbmRpbmc+IikiICAgICAgICB7QkVHSU4odXJpX2NhbGxlcik7
IHl5bGVuZyA9IGNvbnRlbnRfbGVuZ3RoOyB5eXRleHQgKz0gY29udGVudF9vZmZlc3Q7IHl5VG9r
ID0gVVJJOyByZXR1cm4geXlUb2s7fQorPHVyaV9wZW5kaW5nPi4gICAgICAgICAge0JFR0lOKHVy
aV9jYWxsZXIpO30KKwogIi13ZWJraXQtdmFyKCJ7d317aWRlbnR9e3d9IikiIHsgeXlUb2sgPSBW
QVJDQUxMOyByZXR1cm4geXlUb2s7IH0KIHtpZGVudH0iKCIgICAgICAgICAgICAgIHt5eVRvayA9
IEZVTkNUSU9OOyByZXR1cm4geXlUb2s7fQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48317</attachid>
            <date>2010-02-07 22:35:33 -0800</date>
            <delta_ts>2010-02-11 21:39:16 -0800</delta_ts>
            <desc>Change flex rule such that unclosed string/url is properly handled.</desc>
            <filename>bug-34067-20100208153531.patch</filename>
            <type>text/plain</type>
            <size>20111</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmZjIwMTMwLi43ZWY4NzlkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MDcgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBmbGV4IHJ1bGUgc3VjaCB0aGF0
IHVuY2xvc2VkIHN0cmluZy91cmwgaXMgcHJvcGVybHkgaGFuZGxlZC4KKyAgICAgICAgaHR0cDov
L3d3dy53My5vcmcvVFIvQ1NTMjEvc3luZGF0YS5odG1sI3BhcnNpbmctZXJyb3JzIHNwZWNpZmll
cyBob3cgdW5jbG9zZWQgc3RyaW5ncyBtdXN0IGJlIGhhbmRsZWQuCisgICAgICAgIFdpdGhvdXQg
dGhpcyBwYXRjaCwgV2ViS2l0IGlnbm9yZXMgdW5jbG9zZWQgc3RyaW5ncy91cmxzIGF0IHRoZSBl
bmQgb2Ygc3R5bGVzaGVldC4KKyAgICAgICAgTm90ZSB0aGF0IExheW91dFRlc3RzL2Zhc3QvY3Nz
L2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWwgd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBoYWQgY29u
dGFpbmVkIHdyb25nIHF1b3Rlcy4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNDA2NyNjMjkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNDA2NworCisgICAgICAgICogZmFzdC9jc3MvZm9udF9wcm9wZXJ0eV9ub3Jt
YWwuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3Ry
aW5nLmh0bWw6IEFkZGVkLgorCiAyMDEwLTAxLTExICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9t
aXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2QuIFJlbW92ZSBhIGR1cGxpY2F0ZWQgbGluZSBp
biBhbiBleHBlY3RhdGlvbiBmaWxlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Zm9udF9wcm9wZXJ0eV9ub3JtYWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRfcHJv
cGVydHlfbm9ybWFsLmh0bWwKaW5kZXggMmNmYjM0Ny4uYzQ3ZmViZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9jc3MvZm9udF9wcm9wZXJ0eV9ub3JtYWwuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5odG1sCkBAIC0zLDExICszLDExIEBA
CiA8SEVBRD4KIDxUSVRMRT5UZXN0aW5nIHZhbGlkIGZvbnQgcHJvcGVydHkgc3BlY2lmaWNhdGlv
bjwvVElUTEU+CiA8U1RZTEUgdHlwZT0idGV4dC9jc3MiPgotLm9uZSB7Zm9udDogMjRwdCBpdGFs
aWM7In0KKy5vbmUge2ZvbnQ6IDI0cHQgaXRhbGljO30KIC50d28ge2ZvbnQ6IDI0cHQgaXRhbGlj
IEFyaWFsO30KIC50aHJlZSB7Zm9udDogMjRwdCBpdGFsaWMgJ0FyaWFsJzt9CiAuZm91ciB7Zm9u
dDogaXRhbGljIDI0cHQ7fQotLmZpdmUge2ZvbnQ6IGl0YWxpYyAyNHB0IEFyaWFsOyJ9CisuZml2
ZSB7Zm9udDogaXRhbGljIDI0cHQgQXJpYWw7fQogLnNpeCB7Zm9udDogaXRhbGljIDI0cHQgJ0Fy
aWFsJzt9CiAuc2V2ZW4ge2ZvbnQ6IEFyaWFsIDI0cHQgaXRhbGljO30KIC5laWdodCB7Zm9udDog
J0FyaWFsJyAyNHB0IGl0YWxpYzt9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9w
YXJzaW5nLXVuY2xvc2VkLXN0cmluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMC4uMWViZmYyMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3RyaW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDg0IEBACitUZXN0cyBpZiB1bmNsb3NlZCBzdHJpbmdzIGFyZSBwYXJzZWQgcHJvcGVybHkuCisK
K09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0IDEocmVmKSBUZXN0IDEodGVzdCkg
CitUZXN0IDIocmVmKSBUZXN0IDIodGVzdCkgCitUZXN0IDMocmVmKSBUZXN0IDModGVzdCkgCitU
ZXN0IDQocmVmKSBUZXN0IDQodGVzdCkgCitUZXN0IDUocmVmKSBUZXN0IDUodGVzdCkgCitUZXN0
IDYocmVmKSBUZXN0IDYodGVzdCkgCitUZXN0IDcocmVmKSBUZXN0IDcodGVzdCkgCitUZXN0IDgo
cmVmKSBUZXN0IDgodGVzdCkgCitUZXN0IDkocmVmKSBUZXN0IDkodGVzdCkgCitUZXN0IDEwKHJl
ZikgVGVzdCAxMCh0ZXN0KSAKK1Rlc3QgMTEocmVmKSBUZXN0IDExKHRlc3QpIAorVGVzdCAxMihy
ZWYpIFRlc3QgMTIodGVzdCkgCitUZXN0IDEzKHJlZikgVGVzdCAxMyh0ZXN0KSAKK1Rlc3QgMTQo
cmVmKSBUZXN0IDE0KHRlc3QpIAorVGVzdCAxNShyZWYpIFRlc3QgMTUodGVzdCkgCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MS10ZXN0Jywg
J2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxLXJlZicsICdmb250LWZhbWlseScp
CitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MS10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJv
cGVydHkoJ3Rlc3QxLXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0
MS10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxLXJlZicsICdjb2xvcicpCitQ
QVNTIGdldFByb3BlcnR5KCd0ZXN0MS10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQ
cm9wZXJ0eSgndGVzdDEtcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9wZXJ0
eSgndGVzdDItdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0Mi1yZWYn
LCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDItdGVzdCcsICdmb250LXdl
aWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0Mi1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBn
ZXRQcm9wZXJ0eSgndGVzdDItdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0Mi1y
ZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDItdGVzdCcsICdiYWNrZ3JvdW5k
LWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QyLXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykK
K1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QzLXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQcm9w
ZXJ0eSgndGVzdDMtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Qz
LXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDMtcmVmJywgJ2ZvbnQt
d2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QzLXRlc3QnLCAnY29sb3InKSBpcyBnZXRQ
cm9wZXJ0eSgndGVzdDMtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QzLXRl
c3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0My1yZWYnLCAnYmFj
a2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0NC10ZXN0JywgJ2ZvbnQtZmFt
aWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q0LXJlZicsICdmb250LWZhbWlseScpCitQQVNTIGdl
dFByb3BlcnR5KCd0ZXN0NC10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rl
c3Q0LXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0NC10ZXN0Jywg
J2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q0LXJlZicsICdjb2xvcicpCitQQVNTIGdldFBy
b3BlcnR5KCd0ZXN0NC10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgn
dGVzdDQtcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDUt
dGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0NS1yZWYnLCAnZm9udC1m
YW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDUtdGVzdCcsICdmb250LXdlaWdodCcpIGlz
IGdldFByb3BlcnR5KCd0ZXN0NS1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0
eSgndGVzdDUtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0NS1yZWYnLCAnY29s
b3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDUtdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykg
aXMgZ2V0UHJvcGVydHkoJ3Rlc3Q1LXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0
UHJvcGVydHkoJ3Rlc3Q2LXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVz
dDYtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q2LXRlc3QnLCAn
Zm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDYtcmVmJywgJ2ZvbnQtd2VpZ2h0JykK
K1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q2LXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgn
dGVzdDYtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q2LXRlc3QnLCAnYmFj
a2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0Ni1yZWYnLCAnYmFja2dyb3VuZC1p
bWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0Ny10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMg
Z2V0UHJvcGVydHkoJ3Rlc3Q3LXJlZicsICdmb250LWZhbWlseScpCitQQVNTIGdldFByb3BlcnR5
KCd0ZXN0Ny10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q3LXJlZics
ICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0Ny10ZXN0JywgJ2NvbG9yJykg
aXMgZ2V0UHJvcGVydHkoJ3Rlc3Q3LXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0
ZXN0Ny10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDctcmVm
JywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDgtdGVzdCcsICdm
b250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0OC1yZWYnLCAnZm9udC1mYW1pbHknKQor
UEFTUyBnZXRQcm9wZXJ0eSgndGVzdDgtdGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3Bl
cnR5KCd0ZXN0OC1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDgt
dGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0OC1yZWYnLCAnY29sb3InKQorUEFT
UyBnZXRQcm9wZXJ0eSgndGVzdDgtdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJv
cGVydHkoJ3Rlc3Q4LXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHko
J3Rlc3Q5LXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDktcmVmJywg
J2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q5LXRlc3QnLCAnZm9udC13ZWln
aHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDktcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0
UHJvcGVydHkoJ3Rlc3Q5LXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDktcmVm
JywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q5LXRlc3QnLCAnYmFja2dyb3VuZC1p
bWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0OS1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQ
QVNTIGdldFByb3BlcnR5KCd0ZXN0MTAtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3Bl
cnR5KCd0ZXN0MTAtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Qx
MC10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMC1yZWYnLCAnZm9u
dC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEwLXRlc3QnLCAnY29sb3InKSBpcyBn
ZXRQcm9wZXJ0eSgndGVzdDEwLXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0
MTAtdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMC1yZWYn
LCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTEtdGVzdCcsICdm
b250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTEtcmVmJywgJ2ZvbnQtZmFtaWx5JykK
K1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMS10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJv
cGVydHkoJ3Rlc3QxMS1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVz
dDExLXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDExLXJlZicsICdjb2xvcicp
CitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTEtdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMg
Z2V0UHJvcGVydHkoJ3Rlc3QxMS1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFBy
b3BlcnR5KCd0ZXN0MTItdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0
MTItcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMi10ZXN0Jywg
J2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMi1yZWYnLCAnZm9udC13ZWlnaHQn
KQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEyLXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0
eSgndGVzdDEyLXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTItdGVzdCcs
ICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMi1yZWYnLCAnYmFja2dy
b3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTMtdGVzdCcsICdmb250LWZhbWls
eScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTMtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0
UHJvcGVydHkoJ3Rlc3QxMy10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rl
c3QxMy1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEzLXRlc3Qn
LCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEzLXJlZicsICdjb2xvcicpCitQQVNTIGdl
dFByb3BlcnR5KCd0ZXN0MTMtdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVy
dHkoJ3Rlc3QxMy1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0
ZXN0MTQtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTQtcmVmJywg
J2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxNC10ZXN0JywgJ2ZvbnQtd2Vp
Z2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxNC1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBn
ZXRQcm9wZXJ0eSgndGVzdDE0LXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDE0
LXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTQtdGVzdCcsICdiYWNrZ3Jv
dW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxNC1yZWYnLCAnYmFja2dyb3VuZC1pbWFn
ZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTUtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdl
dFByb3BlcnR5KCd0ZXN0MTUtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHko
J3Rlc3QxNS10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxNS1yZWYn
LCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDE1LXRlc3QnLCAnY29sb3In
KSBpcyBnZXRQcm9wZXJ0eSgndGVzdDE1LXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5
KCd0ZXN0MTUtdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Qx
NS1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmNsb3NlZC1zdHJpbmcuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3RyaW5nLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjc1OTViZQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3RyaW5nLmh0bWwKQEAgLTAsMCAr
MSwxOTIgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Ii4u
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4vanMvcmVz
b3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+
CisqIHsKKyAgICBjb2xvcjogYmxhY2s7CisgICAgZm9udC1mYW1pbHk6ICdDb3VyaWVyJzsKKyAg
ICBmb250LXdlaWdodDogbm9ybWFsOworfQorPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQv
Y3NzIj4KKyN0ZXN0MS1yZWYgeworICAgIGZvbnQtZmFtaWx5OiAnSW1wYWN0JzsKK30KKyN0ZXN0
MS10ZXN0IHsKKyAgICBmb250LWZhbWlseTogJ0ltcFwKK2FjdCc7Cit9Cis8L3N0eWxlPgorCis8
c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QyLXJlZiB7CisgICAgZm9udC13ZWlnaHQ6IGJv
bGQ7Cit9CisjdGVzdDItdGVzdCB7CisgICAgZm9udC1mYW1pbHk6ICdJbXBhY3QKKyAgICBjb2xv
cjpyZWQ7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cit9Cis8L3N0eWxlPgorCis8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiPgorI3Rlc3QzLXJlZiB7CisgICAgY29sb3I6Z3JheTsKKyAgICBmb250LWZh
bWlseTogJ0ltcGFjdCc7Cit9CisjdGVzdDMtdGVzdCB7CisgICAgY29sb3I6Z3JheTsKKyAgICBm
b250LWZhbWlseTogJ0ltcGFjdDwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cisj
dGVzdDQtcmVmIHsKKyAgICBjb2xvcjpibHVlOworfQorI3Rlc3Q0LXRlc3QgeworICAgIGNvbG9y
OmJsdWU7CisgICAgZm9udC1mYW1pbHk6ICdJbXBhY3QKKzwvc3R5bGU+CisKKzxzdHlsZSB0eXBl
PSJ0ZXh0L2NzcyI+CisjdGVzdDUtcmVmIHsKKyAgICBjb2xvcjptYXJvb247Cit9CisjdGVzdDUt
dGVzdCB7CisgICAgY29sb3I6bWFyb29uOworICAgIGZvbnQtZmFtaWx5OiAiSW1wYWN0CDwvc3R5
bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDYtcmVmIHsKKyAgICBjb2xvcjp0
ZWFsOworfQorPC9zdHlsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitAaW1wb3J0IHVybCgn
ZGF0YTp0ZXh0L2NzcywjdGVzdDYtdGVzdHtjb2xvcjp0ZWFsO30nKTsKKzwvc3R5bGU+CisKKzxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDctcmVmIHsKKyAgICBjb2xvcjpvbGl2ZTsKK30K
Kzwvc3R5bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorQGltcG9ydCB1cmwoICdkYXRhOnRl
eHQvY3NzLCN0ZXN0Ny10ZXN0e2NvbG9yOm9saXZlO30nICk7Cis8L3N0eWxlPgorCis8c3R5bGUg
dHlwZT0idGV4dC9jc3MiPgorI3Rlc3Q4LXJlZiB7Cit9Cis8L3N0eWxlPgorPHN0eWxlIHR5cGU9
InRleHQvY3NzIj4KK0BpbXBvcnQgdXJsKCdkYXRhOnRleHQvY3NzLCN0ZXN0OC10ZXN0e2NvbG9y
OnB1cnBsZTt9J2V4dHJhKTsKKzwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cisj
dGVzdDktcmVmIHsKK30KKzwvc3R5bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorQGltcG9y
dCB1cmwoZXh0cmEnZGF0YTp0ZXh0L2NzcywjdGVzdDktdGVzdHtjb2xvcjpwdXJwbGU7fScpOwor
PC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0MTAtcmVmIHsKKyAgICBi
YWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9ncmVlbmJveC5wbmcnKTsKK30KKyN0ZXN0
MTAtdGVzdCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdyZXNvdXJjZXMvZ3JlZW5ib3gu
cG5nJworPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0MTEtcmVmIHsK
KyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9wdXJwbGUtbm9wcm9maWxlLnBu
ZycpOworfQorI3Rlc3QxMS10ZXN0IHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3Jlc291
cmNlcy9wdXJwbGUtbm9wcm9maWxlLnBuZzwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2Nz
cyI+CisjdGVzdDEyLXJlZiB7Cit9CisjdGVzdDEyLXRlc3QgeworICAgIGJhY2tncm91bmQtaW1h
Z2U6IHVybCgncmVzb3VyY2VzL2dyZWVuYm94LnBuZworPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9
InRleHQvY3NzIj4KKyN0ZXN0MTMtcmVmIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVz
b3VyY2VzL2dyZWVuYm94LnBuZyk7Cit9CisjdGVzdDEzLXRlc3QgeworICAgIGJhY2tncm91bmQt
aW1hZ2U6IHVybChyZXNvdXJjZXMvZ3JlZW5ib3gucG5nCis8L3N0eWxlPgorCis8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiPgorI3Rlc3QxNC1yZWYgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChy
ZXNvdXJjZXMvcHVycGxlLW5vcHJvZmlsZS5wbmcpOworfQorI3Rlc3QxNC10ZXN0IHsKKyAgICBi
YWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL3B1cnBsZS1ub3Byb2ZpbGUucG5nPC9zdHls
ZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0MTUtcmVmIHsKK30KKyN0ZXN0MTUt
dGVzdCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9ncmVlbmJveC5wbmcg
ZXh0YXJhKTsKK30KKzwvc3R5bGU+CisKKzxzY3JpcHQ+Cit2YXIgbnVtVGVzdCA9IDE1OworCitm
dW5jdGlvbiBnZXRQcm9wZXJ0eShlbGVtZW50SWQsIG5hbWUpCit7CisgICAgcmV0dXJuIHdpbmRv
dy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJZCkpLmdl
dFByb3BlcnR5VmFsdWUobmFtZSk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKSB7CisgICAgZGVzY3Jp
cHRpb24oIlRlc3RzIGlmIHVuY2xvc2VkIHN0cmluZ3MgYXJlIHBhcnNlZCBwcm9wZXJseS4iKTsK
KyAgICBzaG91bGRCZVRydWUoInN1Y2Nlc3NmdWxseVBhcnNlZCIpOworCisgICAgZm9yICh2YXIg
aSA9IDE7IGkgPD0gbnVtVGVzdDsgaSsrKQorICAgIHsKKyAgICAgICAgc2hvdWxkQmUoImdldFBy
b3BlcnR5KCd0ZXN0IiArIGkgKyAiLXRlc3QnLCAnZm9udC1mYW1pbHknKSIsICJnZXRQcm9wZXJ0
eSgndGVzdCIgKyBpICsgIi1yZWYnLCAnZm9udC1mYW1pbHknKSIpOworICAgICAgICBzaG91bGRC
ZSgiZ2V0UHJvcGVydHkoJ3Rlc3QiICsgaSArICItdGVzdCcsICdmb250LXdlaWdodCcpIiwgImdl
dFByb3BlcnR5KCd0ZXN0IiArIGkgKyAiLXJlZicsICdmb250LXdlaWdodCcpIik7CisgICAgICAg
IHNob3VsZEJlKCJnZXRQcm9wZXJ0eSgndGVzdCIgKyBpICsgIi10ZXN0JywgJ2NvbG9yJykiLCAg
ICAgICAiZ2V0UHJvcGVydHkoJ3Rlc3QiICsgaSArICItcmVmJywgJ2NvbG9yJykiKTsKKyAgICAg
ICAgc2hvdWxkQmUoImdldFByb3BlcnR5KCd0ZXN0IiArIGkgKyAiLXRlc3QnLCAnYmFja2dyb3Vu
ZC1pbWFnZScpIiwgICAgICAgImdldFByb3BlcnR5KCd0ZXN0IiArIGkgKyAiLXJlZicsICdiYWNr
Z3JvdW5kLWltYWdlJykiKTsKKyAgICB9CisKKyAgICBkZWJ1ZygnPGJyIC8+PHNwYW4gY2xhc3M9
InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+Jyk7Cit9CisKKzwvc2NyaXB0PgorCis8L2hlYWQ+
Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxoci8+
Cis8ZGl2IGlkPSJ0ZXN0LWVsZW1lbnRzIj4KKzwvZGl2PgorPGhyLz4KKzxkaXYgaWQ9ImNvbnNv
bGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgordmFyIHRlc3RFbGVt
ZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0LWVsZW1lbnRzIik7CisKK2ZvciAo
dmFyIGkgPSAxOyBpIDw9IG51bVRlc3Q7IGkrKykKK3sKKyAgICB2YXIgcmVmRWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICB2YXIgdGVzdEVsZW1lbnQgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgcmVmRWxlbWVudC5pbm5lckhUTUwgPSAi
VGVzdCAiICsgaSArICIocmVmKSAiOworICAgIHRlc3RFbGVtZW50LmlubmVySFRNTCA9ICJUZXN0
ICIgKyBpICsgIih0ZXN0KSAiOworICAgIHJlZkVsZW1lbnQuaWQgPSAidGVzdCIgKyBpICsgIi1y
ZWYiOworICAgIHRlc3RFbGVtZW50LmlkID0gInRlc3QiICsgaSArICItdGVzdCI7CisgICAgdGVz
dEVsZW1lbnRzLmFwcGVuZENoaWxkKHJlZkVsZW1lbnQpOworICAgIHRlc3RFbGVtZW50cy5hcHBl
bmRDaGlsZCh0ZXN0RWxlbWVudCk7CisKKyAgICB0ZXN0RWxlbWVudHMuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKSk7Cit9CisKK3ZhciBzdWNjZXNzZnVsbHlQYXJzZWQg
PSB0cnVlOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9XZWJDb3Jl
L0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDFkOGI1NjAuLjc0YzQwMTcgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMTAtMDItMDcgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29t
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5n
ZSBmbGV4IHJ1bGUgc3VjaCB0aGF0IHVuY2xvc2VkIHN0cmluZy91cmwgaXMgcHJvcGVybHkgaGFu
ZGxlZC4KKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIvQ1NTMjEvc3luZGF0YS5odG1sI3Bh
cnNpbmctZXJyb3JzIHNwZWNpZmllcyBob3cgdW5jbG9zZWQgc3RyaW5ncyBtdXN0IGJlIGhhbmRs
ZWQuCisgICAgICAgIFdpdGhvdXQgdGhpcyBwYXRjaCwgV2ViS2l0IGlnbm9yZXMgdW5jbG9zZWQg
c3RyaW5ncy91cmxzIGF0IHRoZSBlbmQgb2Ygc3R5bGVzaGVldC4KKyAgICAgICAgTm90ZSB0aGF0
IExheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWwgd2FzIGNoYW5n
ZWQgYmVjYXVzZSBpdCBoYWQgY29udGFpbmVkIHdyb25nIHF1b3Rlcy4gU2VlIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDA2NyNjMjkuCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDA2NworCisgICAgICAgIFRlc3Q6IGZh
c3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3RyaW5nLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NQ
YXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjp0ZXh0KToKKyAgICAgICAg
KiBjc3MvbWFrZXRva2VuaXplcjoKKyAgICAgICAgKiBjc3MvdG9rZW5pemVyLmZsZXg6CisKIDIw
MTAtMDEtMTIgIFl1cnkgU2VtaWtoYXRza3kgIDx5dXJ5c0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmV2aWV3ZWQgYnkgR2VvZmZyZXkgR2FyZW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCBlNzE0NDNjLi4y
MGZkYmQ2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTQ3MzcsMzEgKzQ3MzcsMTMgQEAgVUNoYXIqIENTU1Bh
cnNlcjo6dGV4dChpbnQgKmxlbmd0aCkKICAgICBpbnQgbCA9IHl5bGVuZzsKICAgICBzd2l0Y2gg
KHl5VG9rKSB7CiAgICAgY2FzZSBTVFJJTkc6Ci0gICAgICAgIGwtLTsKLSAgICAgICAgLyogbm9i
cmVhayAqLworICAgICAgICBicmVhazsKICAgICBjYXNlIEhFWDoKICAgICBjYXNlIElEU0VMOgog
ICAgICAgICBzdGFydCsrOwogICAgICAgICBsLS07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
VVJJOgotICAgICAgICAvLyAidXJsKCJ7d317c3RyaW5nfXt3fSIpIgotICAgICAgICAvLyAidXJs
KCJ7d317dXJsfXt3fSIpIgotICAgICAgICAvLyBzdHJpcCAidXJsKCIgYW5kICIpIgotICAgICAg
ICBzdGFydCArPSA0OwotICAgICAgICBsIC09IDU7Ci0gICAgICAgIC8vIHN0cmlwIHt3fQotICAg
ICAgICB3aGlsZSAobCAmJiBpc0NTU1doaXRlc3BhY2UoKnN0YXJ0KSkgewotICAgICAgICAgICAg
KytzdGFydDsKLSAgICAgICAgICAgIC0tbDsKLSAgICAgICAgfQotICAgICAgICB3aGlsZSAobCAm
JiBpc0NTU1doaXRlc3BhY2Uoc3RhcnRbbCAtIDFdKSkKLSAgICAgICAgICAgIC0tbDsKLSAgICAg
ICAgaWYgKGwgJiYgKCpzdGFydCA9PSAnIicgfHwgKnN0YXJ0ID09ICdcJycpKSB7Ci0gICAgICAg
ICAgICBBU1NFUlQobCA+PSAyICYmIHN0YXJ0W2wgLSAxXSA9PSAqc3RhcnQpOwotICAgICAgICAg
ICAgKytzdGFydDsKLSAgICAgICAgICAgIGwgLT0gMjsKLSAgICAgICAgfQogICAgICAgICBicmVh
azsKICAgICBjYXNlIFZBUkNBTEw6CiAgICAgICAgIC8vICItd2Via2l0LXZhcigie3d9e2lkZW50
fXt3fSIpIgpAQCAtNTM2MCw2ICs1MzQyLDEwIEBAIHR5cGVkZWYgdW5zaWduZWQgWVlfQ0hBUjsK
IC8vIG9mZnNldCBtdWx0aXBsaWVycyB0aGF0IHNwZWNpZnkgd2hpY2ggdHJhbnNpdGlvbnMgYXJl
IGFjdGl2ZQogLy8gaW4gdGhlIHRva2VuaXplciBkdXJpbmcgaW4gZWFjaCBjb25kaXRpb24gKHRv
a2VuaXplciBzdGF0ZSkuCiAjZGVmaW5lIEJFR0lOIHl5X3N0YXJ0ID0gMSArIDIgKgorI2RlZmlu
ZSB5eXRleHRfcHRyIHl5dGV4dAorc3RhdGljIGludCB5eV9tb3JlX2ZsYWcgPSAwOworc3RhdGlj
IGludCB5eV9tb3JlX2xlbiA9IDA7CisjZGVmaW5lIHl5bW9yZSgpICgoeXlfbW9yZV9mbGFnKSA9
IDEpCiAKICNpbmNsdWRlICJ0b2tlbml6ZXIuY3BwIgogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nz
cy9tYWtldG9rZW5pemVyIGIvV2ViQ29yZS9jc3MvbWFrZXRva2VuaXplcgppbmRleCA5MGQ1ZmNi
Li44YzMyMDNkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9tYWtldG9rZW5pemVyCisrKyBiL1dl
YkNvcmUvY3NzL21ha2V0b2tlbml6ZXIKQEAgLTQ5LDYgKzQ5LDEyIEBAIHByaW50PDxFTkQKICNk
ZWZpbmUgSU5JVElBTCAwCiAjZGVmaW5lIG1lZGlhcXVlcnkgMQogI2RlZmluZSBmb3JrZXl3b3Jk
IDIKKyNkZWZpbmUgZHF1b3RlZF9zdHJpbmcgMworI2RlZmluZSBzcXVvdGVkX3N0cmluZyA0Cisj
ZGVmaW5lIHVyaSA1CisjZGVmaW5lIHVyaV9wZW5kaW5nIDYKKworI2RlZmluZSBZWV9TVEFSVCAo
KCh5eV9zdGFydCkgLSAxKSAvIDIpCiAKIC8qIEM5OSBzeXN0ZW1zIGhhdmUgPGludHR5cGVzLmg+
LiBOb24tQzk5IHN5c3RlbXMgbWF5IG9yIG1heSBub3QuICovCiAKQEAgLTY4LDYgKzc0LDExIEBA
IHR5cGVkZWYgdW5zaWduZWQgY2hhciBmbGV4X3VpbnQ4X3Q7CiB0eXBlZGVmIHVuc2lnbmVkIHNo
b3J0IGludCBmbGV4X3VpbnQxNl90OwogdHlwZWRlZiB1bnNpZ25lZCBpbnQgZmxleF91aW50MzJf
dDsKICNlbmRpZiAvKiAhIEM5OSAqLworCisgICAgaW50IHN0cmluZ19jYWxsZXIgPSBJTklUSUFM
OworICAgIGludCB1cmlfY2FsbGVyID0gSU5JVElBTDsKKyAgICBpbnQgY29udGVudF9sZW5ndGgg
PSAwOworICAgIGludCBjb250ZW50X29mZmVzdCA9IDA7CiBFTkQKIH0KIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9jc3MvdG9rZW5pemVyLmZsZXggYi9XZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleApp
bmRleCAxNTY5ZWUyLi5hOGQ0N2QwIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy90b2tlbml6ZXIu
ZmxleAorKysgYi9XZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleApAQCAtNCw2ICs0LDEwIEBACiAl
b3B0aW9uIHN0YWNrCiAlcyBtZWRpYXF1ZXJ5CiAlcyBmb3JrZXl3b3JkCisleCBkcXVvdGVkX3N0
cmluZworJXggc3F1b3RlZF9zdHJpbmcKKyV4IHVyaQorJXggdXJpX3BlbmRpbmcKIAogaCAgICAg
ICAgICAgICAgIFswLTlhLWZBLUZdCiBub25hc2NpaSAgICAgICAgW1wyMDAtXDM3N10KQEAgLTEx
LDIzICsxNSwyOSBAQCB1bmljb2RlICAgICAgICAgXFx7aH17MSw2fVsgXHRcclxuXGZdPwogZXNj
YXBlICAgICAgICAgIHt1bmljb2RlfXxcXFsgLX5cMjAwLVwzNzddCiBubXN0YXJ0ICAgICAgICAg
W19hLXpBLVpdfHtub25hc2NpaX18e2VzY2FwZX0KIG5tY2hhciAgICAgICAgICBbX2EtekEtWjAt
OS1dfHtub25hc2NpaX18e2VzY2FwZX0KLXN0cmluZzEgICAgICAgICBcIihbXHQgISMkJSYoLX5d
fFxce25sfXxcJ3x7bm9uYXNjaWl9fHtlc2NhcGV9KSpcIgotc3RyaW5nMiAgICAgICAgIFwnKFtc
dCAhIyQlJigtfl18XFx7bmx9fFwifHtub25hc2NpaX18e2VzY2FwZX0pKlwnCitkcXVvdGVkX2Nv
bnRlbnQgKFtcdCAhIyQlJigtfl18XFx7bmx9fFwnfHtub25hc2NpaX18e2VzY2FwZX0pKgorc3F1
b3RlZF9jb250ZW50IChbXHQgISMkJSYoLX5dfFxce25sfXxcInx7bm9uYXNjaWl9fHtlc2NhcGV9
KSoKIGhleGNvbG9yICAgICAgICB7aH17M318e2h9ezZ9CiAKIGlkZW50ICAgICAgICAgICAtP3tu
bXN0YXJ0fXtubWNoYXJ9KgogbmFtZSAgICAgICAgICAgIHtubWNoYXJ9KwogbnVtICAgICAgICAg
ICAgIFswLTldK3xbMC05XSoiLiJbMC05XSsKIGludG51bSAgICAgICAgICBbMC05XSsKLXN0cmlu
ZyAgICAgICAgICB7c3RyaW5nMX18e3N0cmluZzJ9CiB1cmwgICAgICAgICAgICAgKFshIyQlJiot
fl18e25vbmFzY2lpfXx7ZXNjYXBlfSkqCiB3ICAgICAgICAgICAgICAgWyBcdFxyXG5cZl0qCiBu
bCAgICAgICAgICAgICAgXG58XHJcbnxccnxcZgorZHF1b3RlICAgICAgICAgIFwiCitzcXVvdGUg
ICAgICAgICAgXCcKIHJhbmdlICAgICAgICAgICBcP3sxLDZ9fHtofShcP3swLDV9fHtofShcP3sw
LDR9fHtofShcP3swLDN9fHtofShcP3swLDJ9fHtofShcPz98e2h9KSkpKSkKIG50aCAgICAgICAg
ICAgICAoLT9bMC05XSpuW1wrLV1bMC05XSspfCgtP1swLTldKm4pCiAKICUlCiAKKyAgICBpbnQg
c3RyaW5nX2NhbGxlciA9IElOSVRJQUw7CisgICAgaW50IHVyaV9jYWxsZXIgPSBJTklUSUFMOwor
ICAgIGludCBjb250ZW50X2xlbmd0aCA9IDA7CisgICAgaW50IGNvbnRlbnRfb2ZmZXN0ID0gMDsK
KwogXC9cKlteKl0qXCorKFteLypdW14qXSpcKispKlwvICAvKiBpZ25vcmUgY29tbWVudHMgKi8K
IAogWyBcdFxyXG5cZl0rICAgICAgICAgICAge3l5VG9rID0gV0hJVEVTUEFDRTsgcmV0dXJuIHl5
VG9rO30KQEAgLTQ0LDcgKzU0LDUxIEBAIG50aCAgICAgICAgICAgICAoLT9bMC05XSpuW1wrLV1b
MC05XSspfCgtP1swLTldKm4pCiA8bWVkaWFxdWVyeT4iYW5kIiAgICAgICB7eXlUb2sgPSBNRURJ
QV9BTkQ7IHJldHVybiB5eVRvazt9CiA8Zm9ya2V5d29yZD4iZm9yIiAgICAgICB7QkVHSU4obWVk
aWFxdWVyeSk7IHl5VG9rID0gVkFSSUFCTEVTX0ZPUjsgcmV0dXJuIHl5VG9rOyB9CiAKLXtzdHJp
bmd9ICAgICAgICAgICAgICAgIHt5eVRvayA9IFNUUklORzsgcmV0dXJuIHl5VG9rO30KKzxJTklU
SUFMLG1lZGlhcXVlcnksZm9ya2V5d29yZCx1cmk+eworICAgIHtkcXVvdGV9ICAgICAgICAgICAg
e3N0cmluZ19jYWxsZXIgPSBZWV9TVEFSVDsgY29udGVudF9sZW5ndGggPSAwOyBCRUdJTihkcXVv
dGVkX3N0cmluZyk7fQorICAgIHtzcXVvdGV9ICAgICAgICAgICAge3N0cmluZ19jYWxsZXIgPSBZ
WV9TVEFSVDsgY29udGVudF9sZW5ndGggPSAwOyBCRUdJTihzcXVvdGVkX3N0cmluZyk7fQorfQor
PGRxdW90ZWRfc3RyaW5nPntkcXVvdGVkX2NvbnRlbnR9IHwKKzxzcXVvdGVkX3N0cmluZz57c3F1
b3RlZF9jb250ZW50fSB7Y29udGVudF9sZW5ndGggPSB5eWxlbmc7IGNvbnRlbnRfb2ZmZXN0ID0g
LXl5bGVuZzsgeXltb3JlKCk7fQorPGRxdW90ZWRfc3RyaW5nPntkcXVvdGV9IHwKKzxzcXVvdGVk
X3N0cmluZz57c3F1b3RlfSB7CisgICAgQkVHSU4oc3RyaW5nX2NhbGxlciA9PSB1cmkgPyB1cmlf
cGVuZGluZyA6IHN0cmluZ19jYWxsZXIpOworICAgIGlmIChzdHJpbmdfY2FsbGVyID09IHVyaSkg
eworICAgICAgICBjb250ZW50X29mZmVzdCAtPSB5eWxlbmc7CisgICAgICAgIHl5bW9yZSgpOwor
ICAgIH0gZWxzZSB7CisgICAgICAgIHl5bGVuZyA9IGNvbnRlbnRfbGVuZ3RoOworICAgICAgICB5
eXRleHQgKz0gY29udGVudF9vZmZlc3Q7CisgICAgICAgIHl5VG9rID0gU1RSSU5HOworICAgICAg
ICByZXR1cm4geXlUb2s7CisgICAgfQorfQorPGRxdW90ZWRfc3RyaW5nLHNxdW90ZWRfc3RyaW5n
PntubH18LiB7QkVHSU4oSU5JVElBTCk7fQorPDxFT0Y+PiB7CisgICAgLy8gPGRxdW90ZWRfc3Ry
aW5nLHNxdW90ZWRfc3RyaW5nPjw8RU9GPj4gZG9lc24ndCB3b3JrIGZvciBzb21lIHVua25vd24g
cmVhc29ucy4gSGVuY2UgdGhlIHVzZSBvZiB0aGUgc3dpdGNoIGJlbG93LgorICAgIHN3aXRjaCAo
WVlfU1RBUlQpIHsKKyAgICBjYXNlIHVyaToKKyAgICBjYXNlIGRxdW90ZWRfc3RyaW5nOgorICAg
IGNhc2Ugc3F1b3RlZF9zdHJpbmc6CisgICAgeworICAgICAgICB5eWxlbmctLTsgLy8gUmVtb3Zl
IHRoZSAnXDAnIHJlcHJlc2VudGluZyBFT0YuCisgICAgICAgIHl5VG9rID0gKHN0cmluZ19jYWxs
ZXIgPT0gdXJpIHx8IFlZX1NUQVJUID09IHVyaSkgPyBVUkkgOiBTVFJJTkc7CisgICAgICAgIEJF
R0lOKElOSVRJQUwpOworICAgICAgICByZXR1cm4geXlUb2s7CisgICAgfQorICAgIGNhc2UgdXJp
X3BlbmRpbmc6CisgICAgeworICAgICAgICB5eWxlbmcgPSBjb250ZW50X2xlbmd0aDsKKyAgICAg
ICAgeXl0ZXh0ICs9IGNvbnRlbnRfb2ZmZXN0OworICAgICAgICB5eVRvayA9IFVSSTsKKyAgICAg
ICAgQkVHSU4oSU5JVElBTCk7CisgICAgICAgIHJldHVybiB5eVRvazsKKyAgICB9CisgICAgZGVm
YXVsdDoKKyAgICAgICAgeXl0ZXJtaW5hdGUoKTsKKyAgICB9Cit9CisKIHtpZGVudH0gICAgICAg
ICAgICAgICAgIHt5eVRvayA9IElERU5UOyByZXR1cm4geXlUb2s7fQoge250aH0gICAgICAgICAg
ICAgICAgICAge3l5VG9rID0gTlRIOyByZXR1cm4geXlUb2s7fQogCkBAIC05Niw4ICsxNTAsMTYg
QEAgbnRoICAgICAgICAgICAgICgtP1swLTldKm5bXCstXVswLTldKyl8KC0/WzAtOV0qbikKIHtu
dW19ICAgICAgICAgICAgICAgICAgIHt5eVRvayA9IEZMT0FUVE9LRU47IHJldHVybiB5eVRvazt9
CiAKICJub3QoIiAgICAgICAgICAgICAgICAgIHt5eVRvayA9IE5PVEZVTkNUSU9OOyByZXR1cm4g
eXlUb2s7fQotInVybCgie3d9e3N0cmluZ317d30iKSIge3l5VG9rID0gVVJJOyByZXR1cm4geXlU
b2s7fQotInVybCgie3d9e3VybH17d30iKSIgICAge3l5VG9rID0gVVJJOyByZXR1cm4geXlUb2s7
fQorCis8SU5JVElBTCxtZWRpYXF1ZXJ5LGZvcmtleXdvcmQ+InVybCgiIHt1cmlfY2FsbGVyID0g
WVlfU1RBUlQ7IEJFR0lOKHVyaSk7fQorPHVyaT57d30gICAgICAgICAgICAgICAgey8qIFNraXAg
d2hpdGVzcGFjZSAqL30KKzx1cmk+e3VybH0gICAgICAgICAgICAgIHtCRUdJTih1cmlfcGVuZGlu
Zyk7IGNvbnRlbnRfbGVuZ3RoID0geXlsZW5nOyBjb250ZW50X29mZmVzdCA9IC15eWxlbmc7IHl5
bW9yZSgpO30KKzx1cmk+IikiICAgICAgICAgICAgICAgIHtCRUdJTih1cmlfY2FsbGVyKTsgeXls
ZW5nID0gMDsgeXlUb2sgPSBVUkk7IHJldHVybiB5eVRvazt9Cis8dXJpPi4gICAgICAgICAgICAg
ICAgICB7QkVHSU4odXJpX2NhbGxlcik7fQorPHVyaV9wZW5kaW5nPnt3fSAgICAgICAge2NvbnRl
bnRfb2ZmZXN0IC09IHl5bGVuZzsgeXltb3JlKCk7fQorPHVyaV9wZW5kaW5nPiIpIiAgICAgICAg
e0JFR0lOKHVyaV9jYWxsZXIpOyB5eWxlbmcgPSBjb250ZW50X2xlbmd0aDsgeXl0ZXh0ICs9IGNv
bnRlbnRfb2ZmZXN0OyB5eVRvayA9IFVSSTsgcmV0dXJuIHl5VG9rO30KKzx1cmlfcGVuZGluZz4u
ICAgICAgICAgIHtCRUdJTih1cmlfY2FsbGVyKTt9CisKICItd2Via2l0LXZhcigie3d9e2lkZW50
fXt3fSIpIiB7IHl5VG9rID0gVkFSQ0FMTDsgcmV0dXJuIHl5VG9rOyB9CiB7aWRlbnR9IigiICAg
ICAgICAgICAgICB7eXlUb2sgPSBGVU5DVElPTjsgcmV0dXJuIHl5VG9rO30KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48621</attachid>
            <date>2010-02-11 21:39:26 -0800</date>
            <delta_ts>2010-02-15 23:45:04 -0800</delta_ts>
            <desc>Change flex rule such that unclosed string/url is properly handled.</desc>
            <filename>bug-34067-20100212143924.patch</filename>
            <type>text/plain</type>
            <size>20532</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBjZDQxZDA1Li42MzM5OTY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MDcgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBmbGV4IHJ1bGUgc3VjaCB0aGF0
IHVuY2xvc2VkIHN0cmluZy91cmwgaXMgcHJvcGVybHkgaGFuZGxlZC4KKyAgICAgICAgaHR0cDov
L3d3dy53My5vcmcvVFIvQ1NTMjEvc3luZGF0YS5odG1sI3BhcnNpbmctZXJyb3JzIHNwZWNpZmll
cyBob3cgdW5jbG9zZWQgc3RyaW5ncyBtdXN0IGJlIGhhbmRsZWQuCisgICAgICAgIFdpdGhvdXQg
dGhpcyBwYXRjaCwgV2ViS2l0IGlnbm9yZXMgdW5jbG9zZWQgc3RyaW5ncy91cmxzIGF0IHRoZSBl
bmQgb2Ygc3R5bGVzaGVldC4KKyAgICAgICAgTm90ZSB0aGF0IExheW91dFRlc3RzL2Zhc3QvY3Nz
L2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWwgd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBoYWQgY29u
dGFpbmVkIHdyb25nIHF1b3Rlcy4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNDA2NyNjMjkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNDA2NworCisgICAgICAgICogZmFzdC9jc3MvZm9udF9wcm9wZXJ0eV9ub3Jt
YWwuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3Ry
aW5nLmh0bWw6IEFkZGVkLgorCiAyMDEwLTAyLTExICBOaWtvbGFzIFppbW1lcm1hbm4gIDxuemlt
bWVybWFubkByaW0uY29tPgogCiAgICAgICAgIE5vdCByZXZpZXdlZC4gT29wcywgbW92ZSBtYWMt
bGVwYXJkIHJlc3VsdHMgZm9yIG1hc2staW52YWxpZGF0aW9uLnN2ZyBpbnRvIHRoZSBjb3JyZWN0
IGZvbGRlci4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRfcHJvcGVydHlf
bm9ybWFsLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5o
dG1sCmluZGV4IDJjZmIzNDcuLmM0N2ZlYmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
Y3NzL2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Zm9udF9wcm9wZXJ0eV9ub3JtYWwuaHRtbApAQCAtMywxMSArMywxMSBAQAogPEhFQUQ+CiA8VElU
TEU+VGVzdGluZyB2YWxpZCBmb250IHByb3BlcnR5IHNwZWNpZmljYXRpb248L1RJVExFPgogPFNU
WUxFIHR5cGU9InRleHQvY3NzIj4KLS5vbmUge2ZvbnQ6IDI0cHQgaXRhbGljOyJ9Cisub25lIHtm
b250OiAyNHB0IGl0YWxpYzt9CiAudHdvIHtmb250OiAyNHB0IGl0YWxpYyBBcmlhbDt9CiAudGhy
ZWUge2ZvbnQ6IDI0cHQgaXRhbGljICdBcmlhbCc7fQogLmZvdXIge2ZvbnQ6IGl0YWxpYyAyNHB0
O30KLS5maXZlIHtmb250OiBpdGFsaWMgMjRwdCBBcmlhbDsifQorLmZpdmUge2ZvbnQ6IGl0YWxp
YyAyNHB0IEFyaWFsO30KIC5zaXgge2ZvbnQ6IGl0YWxpYyAyNHB0ICdBcmlhbCc7fQogLnNldmVu
IHtmb250OiBBcmlhbCAyNHB0IGl0YWxpYzt9CiAuZWlnaHQge2ZvbnQ6ICdBcmlhbCcgMjRwdCBp
dGFsaWM7fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmNsb3Nl
ZC1zdHJpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmNs
b3NlZC1zdHJpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjFlYmZmMjAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJz
aW5nLXVuY2xvc2VkLXN0cmluZy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4NCBAQAorVGVzdHMg
aWYgdW5jbG9zZWQgc3RyaW5ncyBhcmUgcGFyc2VkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworVGVzdCAxKHJlZikgVGVzdCAxKHRlc3QpIAorVGVzdCAyKHJlZikg
VGVzdCAyKHRlc3QpIAorVGVzdCAzKHJlZikgVGVzdCAzKHRlc3QpIAorVGVzdCA0KHJlZikgVGVz
dCA0KHRlc3QpIAorVGVzdCA1KHJlZikgVGVzdCA1KHRlc3QpIAorVGVzdCA2KHJlZikgVGVzdCA2
KHRlc3QpIAorVGVzdCA3KHJlZikgVGVzdCA3KHRlc3QpIAorVGVzdCA4KHJlZikgVGVzdCA4KHRl
c3QpIAorVGVzdCA5KHJlZikgVGVzdCA5KHRlc3QpIAorVGVzdCAxMChyZWYpIFRlc3QgMTAodGVz
dCkgCitUZXN0IDExKHJlZikgVGVzdCAxMSh0ZXN0KSAKK1Rlc3QgMTIocmVmKSBUZXN0IDEyKHRl
c3QpIAorVGVzdCAxMyhyZWYpIFRlc3QgMTModGVzdCkgCitUZXN0IDE0KHJlZikgVGVzdCAxNCh0
ZXN0KSAKK1Rlc3QgMTUocmVmKSBUZXN0IDE1KHRlc3QpIAorUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEtdGVzdCcsICdmb250LWZhbWlseScp
IGlzIGdldFByb3BlcnR5KCd0ZXN0MS1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9w
ZXJ0eSgndGVzdDEtdGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0MS1y
ZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEtdGVzdCcsICdjb2xv
cicpIGlzIGdldFByb3BlcnR5KCd0ZXN0MS1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0
eSgndGVzdDEtdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Qx
LXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QyLXRlc3Qn
LCAnZm9udC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDItcmVmJywgJ2ZvbnQtZmFtaWx5
JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QyLXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQ
cm9wZXJ0eSgndGVzdDItcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rl
c3QyLXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDItcmVmJywgJ2NvbG9yJykK
K1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QyLXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdl
dFByb3BlcnR5KCd0ZXN0Mi1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3Bl
cnR5KCd0ZXN0My10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QzLXJl
ZicsICdmb250LWZhbWlseScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0My10ZXN0JywgJ2ZvbnQt
d2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QzLXJlZicsICdmb250LXdlaWdodCcpCitQQVNT
IGdldFByb3BlcnR5KCd0ZXN0My10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Qz
LXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0My10ZXN0JywgJ2JhY2tncm91
bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDMtcmVmJywgJ2JhY2tncm91bmQtaW1hZ2Un
KQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDQtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFBy
b3BlcnR5KCd0ZXN0NC1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVz
dDQtdGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0NC1yZWYnLCAnZm9u
dC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDQtdGVzdCcsICdjb2xvcicpIGlzIGdl
dFByb3BlcnR5KCd0ZXN0NC1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDQt
dGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q0LXJlZicsICdi
YWNrZ3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q1LXRlc3QnLCAnZm9udC1m
YW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDUtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1Mg
Z2V0UHJvcGVydHkoJ3Rlc3Q1LXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgn
dGVzdDUtcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q1LXRlc3Qn
LCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDUtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0
UHJvcGVydHkoJ3Rlc3Q1LXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5
KCd0ZXN0NS1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0
Ni10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q2LXJlZicsICdmb250
LWZhbWlseScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0Ni10ZXN0JywgJ2ZvbnQtd2VpZ2h0Jykg
aXMgZ2V0UHJvcGVydHkoJ3Rlc3Q2LXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3Bl
cnR5KCd0ZXN0Ni10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q2LXJlZicsICdj
b2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0Ni10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2Un
KSBpcyBnZXRQcm9wZXJ0eSgndGVzdDYtcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBn
ZXRQcm9wZXJ0eSgndGVzdDctdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0
ZXN0Ny1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDctdGVzdCcs
ICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0Ny1yZWYnLCAnZm9udC13ZWlnaHQn
KQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDctdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5
KCd0ZXN0Ny1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDctdGVzdCcsICdi
YWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q3LXJlZicsICdiYWNrZ3JvdW5k
LWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q4LXRlc3QnLCAnZm9udC1mYW1pbHknKSBp
cyBnZXRQcm9wZXJ0eSgndGVzdDgtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVy
dHkoJ3Rlc3Q4LXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDgtcmVm
JywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q4LXRlc3QnLCAnY29sb3In
KSBpcyBnZXRQcm9wZXJ0eSgndGVzdDgtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHko
J3Rlc3Q4LXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0OC1y
ZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0OS10ZXN0Jywg
J2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q5LXJlZicsICdmb250LWZhbWlseScp
CitQQVNTIGdldFByb3BlcnR5KCd0ZXN0OS10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJv
cGVydHkoJ3Rlc3Q5LXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0
OS10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q5LXJlZicsICdjb2xvcicpCitQ
QVNTIGdldFByb3BlcnR5KCd0ZXN0OS10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQ
cm9wZXJ0eSgndGVzdDktcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9wZXJ0
eSgndGVzdDEwLXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEwLXJl
ZicsICdmb250LWZhbWlseScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTAtdGVzdCcsICdmb250
LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTAtcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BB
U1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMC10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rl
c3QxMC1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEwLXRlc3QnLCAnYmFj
a2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTAtcmVmJywgJ2JhY2tncm91bmQt
aW1hZ2UnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDExLXRlc3QnLCAnZm9udC1mYW1pbHknKSBp
cyBnZXRQcm9wZXJ0eSgndGVzdDExLXJlZicsICdmb250LWZhbWlseScpCitQQVNTIGdldFByb3Bl
cnR5KCd0ZXN0MTEtdGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTEt
cmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMS10ZXN0JywgJ2Nv
bG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMS1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9w
ZXJ0eSgndGVzdDExLXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0
ZXN0MTEtcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEy
LXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEyLXJlZicsICdmb250
LWZhbWlseScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTItdGVzdCcsICdmb250LXdlaWdodCcp
IGlzIGdldFByb3BlcnR5KCd0ZXN0MTItcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJv
cGVydHkoJ3Rlc3QxMi10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMi1yZWYn
LCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEyLXRlc3QnLCAnYmFja2dyb3VuZC1p
bWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTItcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQor
UEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEzLXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQcm9w
ZXJ0eSgndGVzdDEzLXJlZicsICdmb250LWZhbWlseScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0
MTMtdGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTMtcmVmJywgJ2Zv
bnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMy10ZXN0JywgJ2NvbG9yJykgaXMg
Z2V0UHJvcGVydHkoJ3Rlc3QxMy1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVz
dDEzLXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTMtcmVm
JywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDE0LXRlc3QnLCAn
Zm9udC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDE0LXJlZicsICdmb250LWZhbWlseScp
CitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTQtdGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFBy
b3BlcnR5KCd0ZXN0MTQtcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rl
c3QxNC10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxNC1yZWYnLCAnY29sb3In
KQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDE0LXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlz
IGdldFByb3BlcnR5KCd0ZXN0MTQtcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQ
cm9wZXJ0eSgndGVzdDE1LXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVz
dDE1LXJlZicsICdmb250LWZhbWlseScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTUtdGVzdCcs
ICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTUtcmVmJywgJ2ZvbnQtd2VpZ2h0
JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxNS10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVy
dHkoJ3Rlc3QxNS1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDE1LXRlc3Qn
LCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTUtcmVmJywgJ2JhY2tn
cm91bmQtaW1hZ2UnKQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3RyaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjI3NTk1YmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy5odG1sCkBAIC0wLDAgKzEsMTkyIEBACis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSIuLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorKiB7CisgICAgY29s
b3I6IGJsYWNrOworICAgIGZvbnQtZmFtaWx5OiAnQ291cmllcic7CisgICAgZm9udC13ZWlnaHQ6
IG5vcm1hbDsKK30KKzwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDEt
cmVmIHsKKyAgICBmb250LWZhbWlseTogJ0ltcGFjdCc7Cit9CisjdGVzdDEtdGVzdCB7CisgICAg
Zm9udC1mYW1pbHk6ICdJbXBcCithY3QnOworfQorPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRl
eHQvY3NzIj4KKyN0ZXN0Mi1yZWYgeworICAgIGZvbnQtd2VpZ2h0OiBib2xkOworfQorI3Rlc3Qy
LXRlc3QgeworICAgIGZvbnQtZmFtaWx5OiAnSW1wYWN0CisgICAgY29sb3I6cmVkOworICAgIGZv
bnQtd2VpZ2h0OiBib2xkOworfQorPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4K
KyN0ZXN0My1yZWYgeworICAgIGNvbG9yOmdyYXk7CisgICAgZm9udC1mYW1pbHk6ICdJbXBhY3Qn
OworfQorI3Rlc3QzLXRlc3QgeworICAgIGNvbG9yOmdyYXk7CisgICAgZm9udC1mYW1pbHk6ICdJ
bXBhY3Q8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3Q0LXJlZiB7Cisg
ICAgY29sb3I6Ymx1ZTsKK30KKyN0ZXN0NC10ZXN0IHsKKyAgICBjb2xvcjpibHVlOworICAgIGZv
bnQtZmFtaWx5OiAnSW1wYWN0Cis8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgor
I3Rlc3Q1LXJlZiB7CisgICAgY29sb3I6bWFyb29uOworfQorI3Rlc3Q1LXRlc3QgeworICAgIGNv
bG9yOm1hcm9vbjsKKyAgICBmb250LWZhbWlseTogIkltcGFjdAg8L3N0eWxlPgorCis8c3R5bGUg
dHlwZT0idGV4dC9jc3MiPgorI3Rlc3Q2LXJlZiB7CisgICAgY29sb3I6dGVhbDsKK30KKzwvc3R5
bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorQGltcG9ydCB1cmwoJ2RhdGE6dGV4dC9jc3Ms
I3Rlc3Q2LXRlc3R7Y29sb3I6dGVhbDt9Jyk7Cis8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4
dC9jc3MiPgorI3Rlc3Q3LXJlZiB7CisgICAgY29sb3I6b2xpdmU7Cit9Cis8L3N0eWxlPgorPHN0
eWxlIHR5cGU9InRleHQvY3NzIj4KK0BpbXBvcnQgdXJsKCAnZGF0YTp0ZXh0L2NzcywjdGVzdDct
dGVzdHtjb2xvcjpvbGl2ZTt9JyApOworPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3Nz
Ij4KKyN0ZXN0OC1yZWYgeworfQorPC9zdHlsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitA
aW1wb3J0IHVybCgnZGF0YTp0ZXh0L2NzcywjdGVzdDgtdGVzdHtjb2xvcjpwdXJwbGU7fSdleHRy
YSk7Cis8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3Q5LXJlZiB7Cit9
Cis8L3N0eWxlPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK0BpbXBvcnQgdXJsKGV4dHJhJ2Rh
dGE6dGV4dC9jc3MsI3Rlc3Q5LXRlc3R7Y29sb3I6cHVycGxlO30nKTsKKzwvc3R5bGU+CisKKzxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDEwLXJlZiB7CisgICAgYmFja2dyb3VuZC1pbWFn
ZTogdXJsKCdyZXNvdXJjZXMvZ3JlZW5ib3gucG5nJyk7Cit9CisjdGVzdDEwLXRlc3QgeworICAg
IGJhY2tncm91bmQtaW1hZ2U6IHVybCgncmVzb3VyY2VzL2dyZWVuYm94LnBuZycKKzwvc3R5bGU+
CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDExLXJlZiB7CisgICAgYmFja2dyb3Vu
ZC1pbWFnZTogdXJsKCdyZXNvdXJjZXMvcHVycGxlLW5vcHJvZmlsZS5wbmcnKTsKK30KKyN0ZXN0
MTEtdGVzdCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdyZXNvdXJjZXMvcHVycGxlLW5v
cHJvZmlsZS5wbmc8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QxMi1y
ZWYgeworfQorI3Rlc3QxMi10ZXN0IHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3Jlc291
cmNlcy9ncmVlbmJveC5wbmcKKzwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+Cisj
dGVzdDEzLXJlZiB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9ncmVlbmJv
eC5wbmcpOworfQorI3Rlc3QxMy10ZXN0IHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVz
b3VyY2VzL2dyZWVuYm94LnBuZworPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4K
KyN0ZXN0MTQtcmVmIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL3B1cnBs
ZS1ub3Byb2ZpbGUucG5nKTsKK30KKyN0ZXN0MTQtdGVzdCB7CisgICAgYmFja2dyb3VuZC1pbWFn
ZTogdXJsKHJlc291cmNlcy9wdXJwbGUtbm9wcm9maWxlLnBuZzwvc3R5bGU+CisKKzxzdHlsZSB0
eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDE1LXJlZiB7Cit9CisjdGVzdDE1LXRlc3QgeworICAgIGJh
Y2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZ3JlZW5ib3gucG5nIGV4dGFyYSk7Cit9Cis8
L3N0eWxlPgorCis8c2NyaXB0PgordmFyIG51bVRlc3QgPSAxNTsKKworZnVuY3Rpb24gZ2V0UHJv
cGVydHkoZWxlbWVudElkLCBuYW1lKQoreworICAgIHJldHVybiB3aW5kb3cuZ2V0Q29tcHV0ZWRT
dHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SWQpKS5nZXRQcm9wZXJ0eVZhbHVl
KG5hbWUpOworfQorCitmdW5jdGlvbiB0ZXN0KCkgeworICAgIGRlc2NyaXB0aW9uKCJUZXN0cyBp
ZiB1bmNsb3NlZCBzdHJpbmdzIGFyZSBwYXJzZWQgcHJvcGVybHkuIik7CisgICAgc2hvdWxkQmVU
cnVlKCJzdWNjZXNzZnVsbHlQYXJzZWQiKTsKKworICAgIGZvciAodmFyIGkgPSAxOyBpIDw9IG51
bVRlc3Q7IGkrKykKKyAgICB7CisgICAgICAgIHNob3VsZEJlKCJnZXRQcm9wZXJ0eSgndGVzdCIg
KyBpICsgIi10ZXN0JywgJ2ZvbnQtZmFtaWx5JykiLCAiZ2V0UHJvcGVydHkoJ3Rlc3QiICsgaSAr
ICItcmVmJywgJ2ZvbnQtZmFtaWx5JykiKTsKKyAgICAgICAgc2hvdWxkQmUoImdldFByb3BlcnR5
KCd0ZXN0IiArIGkgKyAiLXRlc3QnLCAnZm9udC13ZWlnaHQnKSIsICJnZXRQcm9wZXJ0eSgndGVz
dCIgKyBpICsgIi1yZWYnLCAnZm9udC13ZWlnaHQnKSIpOworICAgICAgICBzaG91bGRCZSgiZ2V0
UHJvcGVydHkoJ3Rlc3QiICsgaSArICItdGVzdCcsICdjb2xvcicpIiwgICAgICAgImdldFByb3Bl
cnR5KCd0ZXN0IiArIGkgKyAiLXJlZicsICdjb2xvcicpIik7CisgICAgICAgIHNob3VsZEJlKCJn
ZXRQcm9wZXJ0eSgndGVzdCIgKyBpICsgIi10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSIsICAg
ICAgICJnZXRQcm9wZXJ0eSgndGVzdCIgKyBpICsgIi1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScp
Iik7CisgICAgfQorCisgICAgZGVidWcoJzxiciAvPjxzcGFuIGNsYXNzPSJwYXNzIj5URVNUIENP
TVBMRVRFPC9zcGFuPicpOworfQorCis8L3NjcmlwdD4KKworPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJ0ZXN0KCkiPgorPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+Cis8aHIvPgorPGRpdiBpZD0idGVz
dC1lbGVtZW50cyI+Cis8L2Rpdj4KKzxoci8+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKzxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KK3ZhciB0ZXN0RWxlbWVudHMgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgidGVzdC1lbGVtZW50cyIpOworCitmb3IgKHZhciBpID0gMTsgaSA8
PSBudW1UZXN0OyBpKyspCit7CisgICAgdmFyIHJlZkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVF
bGVtZW50KCJzcGFuIik7CisgICAgdmFyIHRlc3RFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgic3BhbiIpOworICAgIHJlZkVsZW1lbnQuaW5uZXJIVE1MID0gIlRlc3QgIiArIGkgKyAi
KHJlZikgIjsKKyAgICB0ZXN0RWxlbWVudC5pbm5lckhUTUwgPSAiVGVzdCAiICsgaSArICIodGVz
dCkgIjsKKyAgICByZWZFbGVtZW50LmlkID0gInRlc3QiICsgaSArICItcmVmIjsKKyAgICB0ZXN0
RWxlbWVudC5pZCA9ICJ0ZXN0IiArIGkgKyAiLXRlc3QiOworICAgIHRlc3RFbGVtZW50cy5hcHBl
bmRDaGlsZChyZWZFbGVtZW50KTsKKyAgICB0ZXN0RWxlbWVudHMuYXBwZW5kQ2hpbGQodGVzdEVs
ZW1lbnQpOworCisgICAgdGVzdEVsZW1lbnRzLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVs
ZW1lbnQoImJyIikpOworfQorCit2YXIgc3VjY2Vzc2Z1bGx5UGFyc2VkID0gdHJ1ZTsKKzwvc2Ny
aXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9DaGFuZ2VMb2cgYi9X
ZWJDb3JlL0NoYW5nZUxvZwppbmRleCA3OTBjMWM0Li43YzY1OTFkIDEwMDY0NAotLS0gYS9XZWJD
b3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisy
MDEwLTAyLTA3ICBZdXpvIEZ1amlzaGltYSAgPHl1em9AZ29vZ2xlLmNvbT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2UgZmxleCBydWxlIHN1
Y2ggdGhhdCB1bmNsb3NlZCBzdHJpbmcvdXJsIGlzIHByb3Blcmx5IGhhbmRsZWQuCisgICAgICAg
IGh0dHA6Ly93d3cudzMub3JnL1RSL0NTUzIxL3N5bmRhdGEuaHRtbCNwYXJzaW5nLWVycm9ycyBz
cGVjaWZpZXMgaG93IHVuY2xvc2VkIHN0cmluZ3MgbXVzdCBiZSBoYW5kbGVkLgorICAgICAgICBX
aXRob3V0IHRoaXMgcGF0Y2gsIFdlYktpdCBpZ25vcmVzIHVuY2xvc2VkIHN0cmluZ3MvdXJscyBh
dCB0aGUgZW5kIG9mIHN0eWxlc2hlZXQuCisgICAgICAgIE5vdGUgdGhhdCBMYXlvdXRUZXN0cy9m
YXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5odG1sIHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQg
aGFkIGNvbnRhaW5lZCB3cm9uZyBxdW90ZXMuIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MzQwNjcjYzI5LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MzQwNjcKKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9wYXJzaW5n
LXVuY2xvc2VkLXN0cmluZy5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6dGV4dCk6CisgICAgICAgICogY3NzL21ha2V0b2tl
bml6ZXI6CisgICAgICAgICogY3NzL3Rva2VuaXplci5mbGV4OgorCiAyMDEwLTAyLTExICBLd2Fu
ZyBZdWwgU2VvICA8c2t5dWxAY29tcGFueTEwMC5uZXQ+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBTZWlkZWwuCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvV2Vi
Q29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCBjYTA3NjgyLi4yYjg4NzliIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5j
cHAKQEAgLTQ3MzUsMzEgKzQ3MzUsMTMgQEAgVUNoYXIqIENTU1BhcnNlcjo6dGV4dChpbnQgKmxl
bmd0aCkKICAgICBpbnQgbCA9IHl5bGVuZzsKICAgICBzd2l0Y2ggKHl5VG9rKSB7CiAgICAgY2Fz
ZSBTVFJJTkc6Ci0gICAgICAgIGwtLTsKLSAgICAgICAgLyogbm9icmVhayAqLworICAgICAgICBi
cmVhazsKICAgICBjYXNlIEhFWDoKICAgICBjYXNlIElEU0VMOgogICAgICAgICBzdGFydCsrOwog
ICAgICAgICBsLS07CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVVJJOgotICAgICAgICAvLyAi
dXJsKCJ7d317c3RyaW5nfXt3fSIpIgotICAgICAgICAvLyAidXJsKCJ7d317dXJsfXt3fSIpIgot
ICAgICAgICAvLyBzdHJpcCAidXJsKCIgYW5kICIpIgotICAgICAgICBzdGFydCArPSA0OwotICAg
ICAgICBsIC09IDU7Ci0gICAgICAgIC8vIHN0cmlwIHt3fQotICAgICAgICB3aGlsZSAobCAmJiBp
c0NTU1doaXRlc3BhY2UoKnN0YXJ0KSkgewotICAgICAgICAgICAgKytzdGFydDsKLSAgICAgICAg
ICAgIC0tbDsKLSAgICAgICAgfQotICAgICAgICB3aGlsZSAobCAmJiBpc0NTU1doaXRlc3BhY2Uo
c3RhcnRbbCAtIDFdKSkKLSAgICAgICAgICAgIC0tbDsKLSAgICAgICAgaWYgKGwgJiYgKCpzdGFy
dCA9PSAnIicgfHwgKnN0YXJ0ID09ICdcJycpKSB7Ci0gICAgICAgICAgICBBU1NFUlQobCA+PSAy
ICYmIHN0YXJ0W2wgLSAxXSA9PSAqc3RhcnQpOwotICAgICAgICAgICAgKytzdGFydDsKLSAgICAg
ICAgICAgIGwgLT0gMjsKLSAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNlIFZBUkNB
TEw6CiAgICAgICAgIC8vICItd2Via2l0LXZhcigie3d9e2lkZW50fXt3fSIpIgpAQCAtNTMzNCw3
ICs1MzE2LDcgQEAgaW50IGNzc1ZhbHVlS2V5d29yZElEKGNvbnN0IENTU1BhcnNlclN0cmluZyYg
c3RyaW5nKQogCiAjZGVmaW5lIFlZX0RFQ0wgaW50IENTU1BhcnNlcjo6bGV4KCkKICNkZWZpbmUg
eXljb25zdCBjb25zdAotdHlwZWRlZiBpbnQgeXlfc3RhdGVfdHlwZTsKK3R5cGVkZWYgaW50IHl5
X3N0YXRlX3R5cGU7IC8vIE5PTElOVAogdHlwZWRlZiB1bnNpZ25lZCBZWV9DSEFSOwogLy8gVGhl
IGZvbGxvd2luZyBsaW5lIG1ha2VzIHN1cmUgd2UgdHJlYXQgbm9uLUxhdGluLTEgVW5pY29kZSBj
aGFyYWN0ZXJzIGNvcnJlY3RseS4KICNkZWZpbmUgWVlfU0NfVE9fVUkoYykgKGMgPiAweGZmID8g
MHhmZiA6IGMpCkBAIC01MzU4LDYgKzUzNDAsMTAgQEAgdHlwZWRlZiB1bnNpZ25lZCBZWV9DSEFS
OwogLy8gb2Zmc2V0IG11bHRpcGxpZXJzIHRoYXQgc3BlY2lmeSB3aGljaCB0cmFuc2l0aW9ucyBh
cmUgYWN0aXZlCiAvLyBpbiB0aGUgdG9rZW5pemVyIGR1cmluZyBpbiBlYWNoIGNvbmRpdGlvbiAo
dG9rZW5pemVyIHN0YXRlKS4KICNkZWZpbmUgQkVHSU4geXlfc3RhcnQgPSAxICsgMiAqCisjZGVm
aW5lIHl5dGV4dF9wdHIgeXl0ZXh0CitzdGF0aWMgaW50IHl5X21vcmVfZmxhZyA9IDA7IC8vIE5P
TElOVAorc3RhdGljIGludCB5eV9tb3JlX2xlbiA9IDA7IC8vIE5PTElOVAorI2RlZmluZSB5eW1v
cmUoKSAoKHl5X21vcmVfZmxhZykgPSAxKQogCiAjaW5jbHVkZSAidG9rZW5pemVyLmNwcCIKIApk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvbWFrZXRva2VuaXplciBiL1dlYkNvcmUvY3NzL21ha2V0
b2tlbml6ZXIKaW5kZXggOTBkNWZjYi4uOGMzMjAzZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3Mv
bWFrZXRva2VuaXplcgorKysgYi9XZWJDb3JlL2Nzcy9tYWtldG9rZW5pemVyCkBAIC00OSw2ICs0
OSwxMiBAQCBwcmludDw8RU5ECiAjZGVmaW5lIElOSVRJQUwgMAogI2RlZmluZSBtZWRpYXF1ZXJ5
IDEKICNkZWZpbmUgZm9ya2V5d29yZCAyCisjZGVmaW5lIGRxdW90ZWRfc3RyaW5nIDMKKyNkZWZp
bmUgc3F1b3RlZF9zdHJpbmcgNAorI2RlZmluZSB1cmkgNQorI2RlZmluZSB1cmlfcGVuZGluZyA2
CisKKyNkZWZpbmUgWVlfU1RBUlQgKCgoeXlfc3RhcnQpIC0gMSkgLyAyKQogCiAvKiBDOTkgc3lz
dGVtcyBoYXZlIDxpbnR0eXBlcy5oPi4gTm9uLUM5OSBzeXN0ZW1zIG1heSBvciBtYXkgbm90LiAq
LwogCkBAIC02OCw2ICs3NCwxMSBAQCB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgZmxleF91aW50OF90
OwogdHlwZWRlZiB1bnNpZ25lZCBzaG9ydCBpbnQgZmxleF91aW50MTZfdDsKIHR5cGVkZWYgdW5z
aWduZWQgaW50IGZsZXhfdWludDMyX3Q7CiAjZW5kaWYgLyogISBDOTkgKi8KKworICAgIGludCBz
dHJpbmdfY2FsbGVyID0gSU5JVElBTDsKKyAgICBpbnQgdXJpX2NhbGxlciA9IElOSVRJQUw7Cisg
ICAgaW50IGNvbnRlbnRfbGVuZ3RoID0gMDsKKyAgICBpbnQgY29udGVudF9vZmZlc3QgPSAwOwog
RU5ECiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4IGIvV2ViQ29y
ZS9jc3MvdG9rZW5pemVyLmZsZXgKaW5kZXggMTU2OWVlMi4uYThkNDdkMCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9jc3MvdG9rZW5pemVyLmZsZXgKKysrIGIvV2ViQ29yZS9jc3MvdG9rZW5pemVyLmZs
ZXgKQEAgLTQsNiArNCwxMCBAQAogJW9wdGlvbiBzdGFjawogJXMgbWVkaWFxdWVyeQogJXMgZm9y
a2V5d29yZAorJXggZHF1b3RlZF9zdHJpbmcKKyV4IHNxdW90ZWRfc3RyaW5nCisleCB1cmkKKyV4
IHVyaV9wZW5kaW5nCiAKIGggICAgICAgICAgICAgICBbMC05YS1mQS1GXQogbm9uYXNjaWkgICAg
ICAgIFtcMjAwLVwzNzddCkBAIC0xMSwyMyArMTUsMjkgQEAgdW5pY29kZSAgICAgICAgIFxce2h9
ezEsNn1bIFx0XHJcblxmXT8KIGVzY2FwZSAgICAgICAgICB7dW5pY29kZX18XFxbIC1+XDIwMC1c
Mzc3XQogbm1zdGFydCAgICAgICAgIFtfYS16QS1aXXx7bm9uYXNjaWl9fHtlc2NhcGV9CiBubWNo
YXIgICAgICAgICAgW19hLXpBLVowLTktXXx7bm9uYXNjaWl9fHtlc2NhcGV9Ci1zdHJpbmcxICAg
ICAgICAgXCIoW1x0ICEjJCUmKC1+XXxcXHtubH18XCd8e25vbmFzY2lpfXx7ZXNjYXBlfSkqXCIK
LXN0cmluZzIgICAgICAgICBcJyhbXHQgISMkJSYoLX5dfFxce25sfXxcInx7bm9uYXNjaWl9fHtl
c2NhcGV9KSpcJworZHF1b3RlZF9jb250ZW50IChbXHQgISMkJSYoLX5dfFxce25sfXxcJ3x7bm9u
YXNjaWl9fHtlc2NhcGV9KSoKK3NxdW90ZWRfY29udGVudCAoW1x0ICEjJCUmKC1+XXxcXHtubH18
XCJ8e25vbmFzY2lpfXx7ZXNjYXBlfSkqCiBoZXhjb2xvciAgICAgICAge2h9ezN9fHtofXs2fQog
CiBpZGVudCAgICAgICAgICAgLT97bm1zdGFydH17bm1jaGFyfSoKIG5hbWUgICAgICAgICAgICB7
bm1jaGFyfSsKIG51bSAgICAgICAgICAgICBbMC05XSt8WzAtOV0qIi4iWzAtOV0rCiBpbnRudW0g
ICAgICAgICAgWzAtOV0rCi1zdHJpbmcgICAgICAgICAge3N0cmluZzF9fHtzdHJpbmcyfQogdXJs
ICAgICAgICAgICAgIChbISMkJSYqLX5dfHtub25hc2NpaX18e2VzY2FwZX0pKgogdyAgICAgICAg
ICAgICAgIFsgXHRcclxuXGZdKgogbmwgICAgICAgICAgICAgIFxufFxyXG58XHJ8XGYKK2RxdW90
ZSAgICAgICAgICBcIgorc3F1b3RlICAgICAgICAgIFwnCiByYW5nZSAgICAgICAgICAgXD97MSw2
fXx7aH0oXD97MCw1fXx7aH0oXD97MCw0fXx7aH0oXD97MCwzfXx7aH0oXD97MCwyfXx7aH0oXD8/
fHtofSkpKSkpCiBudGggICAgICAgICAgICAgKC0/WzAtOV0qbltcKy1dWzAtOV0rKXwoLT9bMC05
XSpuKQogCiAlJQogCisgICAgaW50IHN0cmluZ19jYWxsZXIgPSBJTklUSUFMOworICAgIGludCB1
cmlfY2FsbGVyID0gSU5JVElBTDsKKyAgICBpbnQgY29udGVudF9sZW5ndGggPSAwOworICAgIGlu
dCBjb250ZW50X29mZmVzdCA9IDA7CisKIFwvXCpbXipdKlwqKyhbXi8qXVteKl0qXCorKSpcLyAg
LyogaWdub3JlIGNvbW1lbnRzICovCiAKIFsgXHRcclxuXGZdKyAgICAgICAgICAgIHt5eVRvayA9
IFdISVRFU1BBQ0U7IHJldHVybiB5eVRvazt9CkBAIC00NCw3ICs1NCw1MSBAQCBudGggICAgICAg
ICAgICAgKC0/WzAtOV0qbltcKy1dWzAtOV0rKXwoLT9bMC05XSpuKQogPG1lZGlhcXVlcnk+ImFu
ZCIgICAgICAge3l5VG9rID0gTUVESUFfQU5EOyByZXR1cm4geXlUb2s7fQogPGZvcmtleXdvcmQ+
ImZvciIgICAgICAge0JFR0lOKG1lZGlhcXVlcnkpOyB5eVRvayA9IFZBUklBQkxFU19GT1I7IHJl
dHVybiB5eVRvazsgfQogCi17c3RyaW5nfSAgICAgICAgICAgICAgICB7eXlUb2sgPSBTVFJJTkc7
IHJldHVybiB5eVRvazt9Cis8SU5JVElBTCxtZWRpYXF1ZXJ5LGZvcmtleXdvcmQsdXJpPnsKKyAg
ICB7ZHF1b3RlfSAgICAgICAgICAgIHtzdHJpbmdfY2FsbGVyID0gWVlfU1RBUlQ7IGNvbnRlbnRf
bGVuZ3RoID0gMDsgQkVHSU4oZHF1b3RlZF9zdHJpbmcpO30KKyAgICB7c3F1b3RlfSAgICAgICAg
ICAgIHtzdHJpbmdfY2FsbGVyID0gWVlfU1RBUlQ7IGNvbnRlbnRfbGVuZ3RoID0gMDsgQkVHSU4o
c3F1b3RlZF9zdHJpbmcpO30KK30KKzxkcXVvdGVkX3N0cmluZz57ZHF1b3RlZF9jb250ZW50fSB8
Cis8c3F1b3RlZF9zdHJpbmc+e3NxdW90ZWRfY29udGVudH0ge2NvbnRlbnRfbGVuZ3RoID0geXls
ZW5nOyBjb250ZW50X29mZmVzdCA9IC15eWxlbmc7IHl5bW9yZSgpO30KKzxkcXVvdGVkX3N0cmlu
Zz57ZHF1b3RlfSB8Cis8c3F1b3RlZF9zdHJpbmc+e3NxdW90ZX0geworICAgIEJFR0lOKHN0cmlu
Z19jYWxsZXIgPT0gdXJpID8gdXJpX3BlbmRpbmcgOiBzdHJpbmdfY2FsbGVyKTsKKyAgICBpZiAo
c3RyaW5nX2NhbGxlciA9PSB1cmkpIHsKKyAgICAgICAgY29udGVudF9vZmZlc3QgLT0geXlsZW5n
OworICAgICAgICB5eW1vcmUoKTsKKyAgICB9IGVsc2UgeworICAgICAgICB5eWxlbmcgPSBjb250
ZW50X2xlbmd0aDsKKyAgICAgICAgeXl0ZXh0ICs9IGNvbnRlbnRfb2ZmZXN0OworICAgICAgICB5
eVRvayA9IFNUUklORzsKKyAgICAgICAgcmV0dXJuIHl5VG9rOworICAgIH0KK30KKzxkcXVvdGVk
X3N0cmluZyxzcXVvdGVkX3N0cmluZz57bmx9fC4ge0JFR0lOKElOSVRJQUwpO30KKzw8RU9GPj4g
eworICAgIC8vIDxkcXVvdGVkX3N0cmluZyxzcXVvdGVkX3N0cmluZz48PEVPRj4+IGRvZXNuJ3Qg
d29yayBmb3Igc29tZSB1bmtub3duIHJlYXNvbnMuIEhlbmNlIHRoZSB1c2Ugb2YgdGhlIHN3aXRj
aCBiZWxvdy4KKyAgICBzd2l0Y2ggKFlZX1NUQVJUKSB7CisgICAgY2FzZSB1cmk6CisgICAgY2Fz
ZSBkcXVvdGVkX3N0cmluZzoKKyAgICBjYXNlIHNxdW90ZWRfc3RyaW5nOgorICAgIHsKKyAgICAg
ICAgeXlsZW5nLS07IC8vIFJlbW92ZSB0aGUgJ1wwJyByZXByZXNlbnRpbmcgRU9GLgorICAgICAg
ICB5eVRvayA9IChzdHJpbmdfY2FsbGVyID09IHVyaSB8fCBZWV9TVEFSVCA9PSB1cmkpID8gVVJJ
IDogU1RSSU5HOworICAgICAgICBCRUdJTihJTklUSUFMKTsKKyAgICAgICAgcmV0dXJuIHl5VG9r
OworICAgIH0KKyAgICBjYXNlIHVyaV9wZW5kaW5nOgorICAgIHsKKyAgICAgICAgeXlsZW5nID0g
Y29udGVudF9sZW5ndGg7CisgICAgICAgIHl5dGV4dCArPSBjb250ZW50X29mZmVzdDsKKyAgICAg
ICAgeXlUb2sgPSBVUkk7CisgICAgICAgIEJFR0lOKElOSVRJQUwpOworICAgICAgICByZXR1cm4g
eXlUb2s7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIHl5dGVybWluYXRlKCk7CisgICAg
fQorfQorCiB7aWRlbnR9ICAgICAgICAgICAgICAgICB7eXlUb2sgPSBJREVOVDsgcmV0dXJuIHl5
VG9rO30KIHtudGh9ICAgICAgICAgICAgICAgICAgIHt5eVRvayA9IE5USDsgcmV0dXJuIHl5VG9r
O30KIApAQCAtOTYsOCArMTUwLDE2IEBAIG50aCAgICAgICAgICAgICAoLT9bMC05XSpuW1wrLV1b
MC05XSspfCgtP1swLTldKm4pCiB7bnVtfSAgICAgICAgICAgICAgICAgICB7eXlUb2sgPSBGTE9B
VFRPS0VOOyByZXR1cm4geXlUb2s7fQogCiAibm90KCIgICAgICAgICAgICAgICAgICB7eXlUb2sg
PSBOT1RGVU5DVElPTjsgcmV0dXJuIHl5VG9rO30KLSJ1cmwoInt3fXtzdHJpbmd9e3d9IikiIHt5
eVRvayA9IFVSSTsgcmV0dXJuIHl5VG9rO30KLSJ1cmwoInt3fXt1cmx9e3d9IikiICAgIHt5eVRv
ayA9IFVSSTsgcmV0dXJuIHl5VG9rO30KKworPElOSVRJQUwsbWVkaWFxdWVyeSxmb3JrZXl3b3Jk
PiJ1cmwoIiB7dXJpX2NhbGxlciA9IFlZX1NUQVJUOyBCRUdJTih1cmkpO30KKzx1cmk+e3d9ICAg
ICAgICAgICAgICAgIHsvKiBTa2lwIHdoaXRlc3BhY2UgKi99Cis8dXJpPnt1cmx9ICAgICAgICAg
ICAgICB7QkVHSU4odXJpX3BlbmRpbmcpOyBjb250ZW50X2xlbmd0aCA9IHl5bGVuZzsgY29udGVu
dF9vZmZlc3QgPSAteXlsZW5nOyB5eW1vcmUoKTt9Cis8dXJpPiIpIiAgICAgICAgICAgICAgICB7
QkVHSU4odXJpX2NhbGxlcik7IHl5bGVuZyA9IDA7IHl5VG9rID0gVVJJOyByZXR1cm4geXlUb2s7
fQorPHVyaT4uICAgICAgICAgICAgICAgICAge0JFR0lOKHVyaV9jYWxsZXIpO30KKzx1cmlfcGVu
ZGluZz57d30gICAgICAgIHtjb250ZW50X29mZmVzdCAtPSB5eWxlbmc7IHl5bW9yZSgpO30KKzx1
cmlfcGVuZGluZz4iKSIgICAgICAgIHtCRUdJTih1cmlfY2FsbGVyKTsgeXlsZW5nID0gY29udGVu
dF9sZW5ndGg7IHl5dGV4dCArPSBjb250ZW50X29mZmVzdDsgeXlUb2sgPSBVUkk7IHJldHVybiB5
eVRvazt9Cis8dXJpX3BlbmRpbmc+LiAgICAgICAgICB7QkVHSU4odXJpX2NhbGxlcik7fQorCiAi
LXdlYmtpdC12YXIoInt3fXtpZGVudH17d30iKSIgeyB5eVRvayA9IFZBUkNBTEw7IHJldHVybiB5
eVRvazsgfQoge2lkZW50fSIoIiAgICAgICAgICAgICAge3l5VG9rID0gRlVOQ1RJT047IHJldHVy
biB5eVRvazt9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48792</attachid>
            <date>2010-02-15 23:45:15 -0800</date>
            <delta_ts>2010-02-17 00:49:52 -0800</delta_ts>
            <desc>Change flex rule such that unclosed string/url is properly handled.</desc>
            <filename>bug-34067-20100216164513.patch</filename>
            <type>text/plain</type>
            <size>19741</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzZjMxMzdhLi40NzRlYTJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MDcgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBmbGV4IHJ1bGUgc3VjaCB0aGF0
IHVuY2xvc2VkIHN0cmluZy91cmwgaXMgcHJvcGVybHkgaGFuZGxlZC4KKyAgICAgICAgaHR0cDov
L3d3dy53My5vcmcvVFIvQ1NTMjEvc3luZGF0YS5odG1sI3BhcnNpbmctZXJyb3JzIHNwZWNpZmll
cyBob3cgdW5jbG9zZWQgc3RyaW5ncyBtdXN0IGJlIGhhbmRsZWQuCisgICAgICAgIFdpdGhvdXQg
dGhpcyBwYXRjaCwgV2ViS2l0IGlnbm9yZXMgdW5jbG9zZWQgc3RyaW5ncy91cmxzIGF0IHRoZSBl
bmQgb2Ygc3R5bGVzaGVldC4KKyAgICAgICAgTm90ZSB0aGF0IExheW91dFRlc3RzL2Zhc3QvY3Nz
L2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWwgd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBoYWQgY29u
dGFpbmVkIHdyb25nIHF1b3Rlcy4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNDA2NyNjMjkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNDA2NworCisgICAgICAgICogZmFzdC9jc3MvZm9udF9wcm9wZXJ0eV9ub3Jt
YWwuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3Ry
aW5nLmh0bWw6IEFkZGVkLgorCiAyMDEwLTAyLTE1ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udF9wcm9wZXJ0eV9ub3JtYWwuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWwKaW5kZXggMmNmYjM0Ny4uYzQ3
ZmViZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udF9wcm9wZXJ0eV9ub3Jt
YWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5o
dG1sCkBAIC0zLDExICszLDExIEBACiA8SEVBRD4KIDxUSVRMRT5UZXN0aW5nIHZhbGlkIGZvbnQg
cHJvcGVydHkgc3BlY2lmaWNhdGlvbjwvVElUTEU+CiA8U1RZTEUgdHlwZT0idGV4dC9jc3MiPgot
Lm9uZSB7Zm9udDogMjRwdCBpdGFsaWM7In0KKy5vbmUge2ZvbnQ6IDI0cHQgaXRhbGljO30KIC50
d28ge2ZvbnQ6IDI0cHQgaXRhbGljIEFyaWFsO30KIC50aHJlZSB7Zm9udDogMjRwdCBpdGFsaWMg
J0FyaWFsJzt9CiAuZm91ciB7Zm9udDogaXRhbGljIDI0cHQ7fQotLmZpdmUge2ZvbnQ6IGl0YWxp
YyAyNHB0IEFyaWFsOyJ9CisuZml2ZSB7Zm9udDogaXRhbGljIDI0cHQgQXJpYWw7fQogLnNpeCB7
Zm9udDogaXRhbGljIDI0cHQgJ0FyaWFsJzt9CiAuc2V2ZW4ge2ZvbnQ6IEFyaWFsIDI0cHQgaXRh
bGljO30KIC5laWdodCB7Zm9udDogJ0FyaWFsJyAyNHB0IGl0YWxpYzt9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWViZmYyMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3RyaW5nLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDg0IEBACitUZXN0cyBpZiB1bmNsb3NlZCBzdHJpbmdzIGFy
ZSBwYXJzZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0
IDEocmVmKSBUZXN0IDEodGVzdCkgCitUZXN0IDIocmVmKSBUZXN0IDIodGVzdCkgCitUZXN0IDMo
cmVmKSBUZXN0IDModGVzdCkgCitUZXN0IDQocmVmKSBUZXN0IDQodGVzdCkgCitUZXN0IDUocmVm
KSBUZXN0IDUodGVzdCkgCitUZXN0IDYocmVmKSBUZXN0IDYodGVzdCkgCitUZXN0IDcocmVmKSBU
ZXN0IDcodGVzdCkgCitUZXN0IDgocmVmKSBUZXN0IDgodGVzdCkgCitUZXN0IDkocmVmKSBUZXN0
IDkodGVzdCkgCitUZXN0IDEwKHJlZikgVGVzdCAxMCh0ZXN0KSAKK1Rlc3QgMTEocmVmKSBUZXN0
IDExKHRlc3QpIAorVGVzdCAxMihyZWYpIFRlc3QgMTIodGVzdCkgCitUZXN0IDEzKHJlZikgVGVz
dCAxMyh0ZXN0KSAKK1Rlc3QgMTQocmVmKSBUZXN0IDE0KHRlc3QpIAorVGVzdCAxNShyZWYpIFRl
c3QgMTUodGVzdCkgCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCitQQVNTIGdldFBy
b3BlcnR5KCd0ZXN0MS10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Qx
LXJlZicsICdmb250LWZhbWlseScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MS10ZXN0JywgJ2Zv
bnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxLXJlZicsICdmb250LXdlaWdodCcpCitQ
QVNTIGdldFByb3BlcnR5KCd0ZXN0MS10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rl
c3QxLXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MS10ZXN0JywgJ2JhY2tn
cm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEtcmVmJywgJ2JhY2tncm91bmQtaW1h
Z2UnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDItdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdl
dFByb3BlcnR5KCd0ZXN0Mi1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgn
dGVzdDItdGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0Mi1yZWYnLCAn
Zm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDItdGVzdCcsICdjb2xvcicpIGlz
IGdldFByb3BlcnR5KCd0ZXN0Mi1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVz
dDItdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QyLXJlZics
ICdiYWNrZ3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QzLXRlc3QnLCAnZm9u
dC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDMtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BB
U1MgZ2V0UHJvcGVydHkoJ3Rlc3QzLXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0
eSgndGVzdDMtcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QzLXRl
c3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDMtcmVmJywgJ2NvbG9yJykKK1BBU1Mg
Z2V0UHJvcGVydHkoJ3Rlc3QzLXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3Bl
cnR5KCd0ZXN0My1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0
ZXN0NC10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q0LXJlZicsICdm
b250LWZhbWlseScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0NC10ZXN0JywgJ2ZvbnQtd2VpZ2h0
JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q0LXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFBy
b3BlcnR5KCd0ZXN0NC10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q0LXJlZics
ICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0NC10ZXN0JywgJ2JhY2tncm91bmQtaW1h
Z2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDQtcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFT
UyBnZXRQcm9wZXJ0eSgndGVzdDUtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5
KCd0ZXN0NS1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDUtdGVz
dCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0NS1yZWYnLCAnZm9udC13ZWln
aHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDUtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3Bl
cnR5KCd0ZXN0NS1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDUtdGVzdCcs
ICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q1LXJlZicsICdiYWNrZ3Jv
dW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q2LXRlc3QnLCAnZm9udC1mYW1pbHkn
KSBpcyBnZXRQcm9wZXJ0eSgndGVzdDYtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJv
cGVydHkoJ3Rlc3Q2LXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDYt
cmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q2LXRlc3QnLCAnY29s
b3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDYtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVy
dHkoJ3Rlc3Q2LXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0
Ni1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0Ny10ZXN0
JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q3LXJlZicsICdmb250LWZhbWls
eScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0Ny10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0
UHJvcGVydHkoJ3Rlc3Q3LXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0
ZXN0Ny10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q3LXJlZicsICdjb2xvcicp
CitQQVNTIGdldFByb3BlcnR5KCd0ZXN0Ny10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBn
ZXRQcm9wZXJ0eSgndGVzdDctcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9w
ZXJ0eSgndGVzdDgtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0OC1y
ZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDgtdGVzdCcsICdmb250
LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0OC1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFT
UyBnZXRQcm9wZXJ0eSgndGVzdDgtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0
OC1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDgtdGVzdCcsICdiYWNrZ3Jv
dW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q4LXJlZicsICdiYWNrZ3JvdW5kLWltYWdl
JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q5LXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQ
cm9wZXJ0eSgndGVzdDktcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rl
c3Q5LXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDktcmVmJywgJ2Zv
bnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q5LXRlc3QnLCAnY29sb3InKSBpcyBn
ZXRQcm9wZXJ0eSgndGVzdDktcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q5
LXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0OS1yZWYnLCAn
YmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTAtdGVzdCcsICdmb250
LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTAtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BB
U1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMC10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVy
dHkoJ3Rlc3QxMC1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEw
LXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEwLXJlZicsICdjb2xvcicpCitQ
QVNTIGdldFByb3BlcnR5KCd0ZXN0MTAtdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0
UHJvcGVydHkoJ3Rlc3QxMC1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3Bl
cnR5KCd0ZXN0MTEtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTEt
cmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMS10ZXN0JywgJ2Zv
bnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMS1yZWYnLCAnZm9udC13ZWlnaHQnKQor
UEFTUyBnZXRQcm9wZXJ0eSgndGVzdDExLXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgn
dGVzdDExLXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTEtdGVzdCcsICdi
YWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMS1yZWYnLCAnYmFja2dyb3Vu
ZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTItdGVzdCcsICdmb250LWZhbWlseScp
IGlzIGdldFByb3BlcnR5KCd0ZXN0MTItcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJv
cGVydHkoJ3Rlc3QxMi10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Qx
Mi1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEyLXRlc3QnLCAn
Y29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEyLXJlZicsICdjb2xvcicpCitQQVNTIGdldFBy
b3BlcnR5KCd0ZXN0MTItdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHko
J3Rlc3QxMi1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0
MTMtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTMtcmVmJywgJ2Zv
bnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMy10ZXN0JywgJ2ZvbnQtd2VpZ2h0
JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMy1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQ
cm9wZXJ0eSgndGVzdDEzLXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEzLXJl
ZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTMtdGVzdCcsICdiYWNrZ3JvdW5k
LWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMy1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScp
CitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTQtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFBy
b3BlcnR5KCd0ZXN0MTQtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rl
c3QxNC10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxNC1yZWYnLCAn
Zm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDE0LXRlc3QnLCAnY29sb3InKSBp
cyBnZXRQcm9wZXJ0eSgndGVzdDE0LXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0
ZXN0MTQtdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxNC1y
ZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTUtdGVzdCcs
ICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTUtcmVmJywgJ2ZvbnQtZmFtaWx5
JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxNS10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0
UHJvcGVydHkoJ3Rlc3QxNS1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgn
dGVzdDE1LXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDE1LXJlZicsICdjb2xv
cicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTUtdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykg
aXMgZ2V0UHJvcGVydHkoJ3Rlc3QxNS1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmNs
b3NlZC1zdHJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQt
c3RyaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjc1OTViZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQt
c3RyaW5nLmh0bWwKQEAgLTAsMCArMSwxOTIgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisqIHsKKyAgICBjb2xvcjogYmxhY2s7CisgICAgZm9udC1m
YW1pbHk6ICdDb3VyaWVyJzsKKyAgICBmb250LXdlaWdodDogbm9ybWFsOworfQorPC9zdHlsZT4K
KworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0MS1yZWYgeworICAgIGZvbnQtZmFtaWx5
OiAnSW1wYWN0JzsKK30KKyN0ZXN0MS10ZXN0IHsKKyAgICBmb250LWZhbWlseTogJ0ltcFwKK2Fj
dCc7Cit9Cis8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QyLXJlZiB7
CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cit9CisjdGVzdDItdGVzdCB7CisgICAgZm9udC1mYW1p
bHk6ICdJbXBhY3QKKyAgICBjb2xvcjpyZWQ7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cit9Cis8
L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QzLXJlZiB7CisgICAgY29s
b3I6Z3JheTsKKyAgICBmb250LWZhbWlseTogJ0ltcGFjdCc7Cit9CisjdGVzdDMtdGVzdCB7Cisg
ICAgY29sb3I6Z3JheTsKKyAgICBmb250LWZhbWlseTogJ0ltcGFjdDwvc3R5bGU+CisKKzxzdHls
ZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDQtcmVmIHsKKyAgICBjb2xvcjpibHVlOworfQorI3Rl
c3Q0LXRlc3QgeworICAgIGNvbG9yOmJsdWU7CisgICAgZm9udC1mYW1pbHk6ICdJbXBhY3QKKzwv
c3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDUtcmVmIHsKKyAgICBjb2xv
cjptYXJvb247Cit9CisjdGVzdDUtdGVzdCB7CisgICAgY29sb3I6bWFyb29uOworICAgIGZvbnQt
ZmFtaWx5OiAiSW1wYWN0CDwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVz
dDYtcmVmIHsKKyAgICBjb2xvcjp0ZWFsOworfQorPC9zdHlsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0
L2NzcyI+CitAaW1wb3J0IHVybCgnZGF0YTp0ZXh0L2NzcywjdGVzdDYtdGVzdHtjb2xvcjp0ZWFs
O30nKTsKKzwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDctcmVmIHsK
KyAgICBjb2xvcjpvbGl2ZTsKK30KKzwvc3R5bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgor
QGltcG9ydCB1cmwoICdkYXRhOnRleHQvY3NzLCN0ZXN0Ny10ZXN0e2NvbG9yOm9saXZlO30nICk7
Cis8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3Q4LXJlZiB7Cit9Cis8
L3N0eWxlPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK0BpbXBvcnQgdXJsKCdkYXRhOnRleHQv
Y3NzLCN0ZXN0OC10ZXN0e2NvbG9yOnB1cnBsZTt9J2V4dHJhKTsKKzwvc3R5bGU+CisKKzxzdHls
ZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDktcmVmIHsKK30KKzwvc3R5bGU+Cis8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiPgorQGltcG9ydCB1cmwoZXh0cmEnZGF0YTp0ZXh0L2NzcywjdGVzdDktdGVz
dHtjb2xvcjpwdXJwbGU7fScpOworPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4K
KyN0ZXN0MTAtcmVmIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9ncmVl
bmJveC5wbmcnKTsKK30KKyN0ZXN0MTAtdGVzdCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJs
KCdyZXNvdXJjZXMvZ3JlZW5ib3gucG5nJworPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQv
Y3NzIj4KKyN0ZXN0MTEtcmVmIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3Jlc291cmNl
cy9wdXJwbGUtbm9wcm9maWxlLnBuZycpOworfQorI3Rlc3QxMS10ZXN0IHsKKyAgICBiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9wdXJwbGUtbm9wcm9maWxlLnBuZzwvc3R5bGU+CisK
KzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDEyLXJlZiB7Cit9CisjdGVzdDEyLXRlc3Qg
eworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgncmVzb3VyY2VzL2dyZWVuYm94LnBuZworPC9z
dHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0MTMtcmVmIHsKKyAgICBiYWNr
Z3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2dyZWVuYm94LnBuZyk7Cit9CisjdGVzdDEzLXRl
c3QgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZ3JlZW5ib3gucG5nCis8
L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QxNC1yZWYgeworICAgIGJh
Y2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvcHVycGxlLW5vcHJvZmlsZS5wbmcpOworfQor
I3Rlc3QxNC10ZXN0IHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL3B1cnBs
ZS1ub3Byb2ZpbGUucG5nPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0
MTUtcmVmIHsKK30KKyN0ZXN0MTUtdGVzdCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJl
c291cmNlcy9ncmVlbmJveC5wbmcgZXh0YXJhKTsKK30KKzwvc3R5bGU+CisKKzxzY3JpcHQ+Cit2
YXIgbnVtVGVzdCA9IDE1OworCitmdW5jdGlvbiBnZXRQcm9wZXJ0eShlbGVtZW50SWQsIG5hbWUp
Cit7CisgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGVsZW1lbnRJZCkpLmdldFByb3BlcnR5VmFsdWUobmFtZSk7Cit9CisKK2Z1bmN0aW9u
IHRlc3QoKSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGlmIHVuY2xvc2VkIHN0cmluZ3MgYXJl
IHBhcnNlZCBwcm9wZXJseS4iKTsKKyAgICBzaG91bGRCZVRydWUoInN1Y2Nlc3NmdWxseVBhcnNl
ZCIpOworCisgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gbnVtVGVzdDsgaSsrKQorICAgIHsKKyAg
ICAgICAgc2hvdWxkQmUoImdldFByb3BlcnR5KCd0ZXN0IiArIGkgKyAiLXRlc3QnLCAnZm9udC1m
YW1pbHknKSIsICJnZXRQcm9wZXJ0eSgndGVzdCIgKyBpICsgIi1yZWYnLCAnZm9udC1mYW1pbHkn
KSIpOworICAgICAgICBzaG91bGRCZSgiZ2V0UHJvcGVydHkoJ3Rlc3QiICsgaSArICItdGVzdCcs
ICdmb250LXdlaWdodCcpIiwgImdldFByb3BlcnR5KCd0ZXN0IiArIGkgKyAiLXJlZicsICdmb250
LXdlaWdodCcpIik7CisgICAgICAgIHNob3VsZEJlKCJnZXRQcm9wZXJ0eSgndGVzdCIgKyBpICsg
Ii10ZXN0JywgJ2NvbG9yJykiLCAgICAgICAiZ2V0UHJvcGVydHkoJ3Rlc3QiICsgaSArICItcmVm
JywgJ2NvbG9yJykiKTsKKyAgICAgICAgc2hvdWxkQmUoImdldFByb3BlcnR5KCd0ZXN0IiArIGkg
KyAiLXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIiwgICAgICAgImdldFByb3BlcnR5KCd0ZXN0
IiArIGkgKyAiLXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykiKTsKKyAgICB9CisKKyAgICBkZWJ1
ZygnPGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+Jyk7Cit9CisK
Kzwvc2NyaXB0PgorCis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxoci8+Cis8ZGl2IGlkPSJ0ZXN0LWVsZW1lbnRzIj4KKzwvZGl2Pgor
PGhyLz4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgordmFyIHRlc3RFbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0
LWVsZW1lbnRzIik7CisKK2ZvciAodmFyIGkgPSAxOyBpIDw9IG51bVRlc3Q7IGkrKykKK3sKKyAg
ICB2YXIgcmVmRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICB2
YXIgdGVzdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgcmVm
RWxlbWVudC5pbm5lckhUTUwgPSAiVGVzdCAiICsgaSArICIocmVmKSAiOworICAgIHRlc3RFbGVt
ZW50LmlubmVySFRNTCA9ICJUZXN0ICIgKyBpICsgIih0ZXN0KSAiOworICAgIHJlZkVsZW1lbnQu
aWQgPSAidGVzdCIgKyBpICsgIi1yZWYiOworICAgIHRlc3RFbGVtZW50LmlkID0gInRlc3QiICsg
aSArICItdGVzdCI7CisgICAgdGVzdEVsZW1lbnRzLmFwcGVuZENoaWxkKHJlZkVsZW1lbnQpOwor
ICAgIHRlc3RFbGVtZW50cy5hcHBlbmRDaGlsZCh0ZXN0RWxlbWVudCk7CisKKyAgICB0ZXN0RWxl
bWVudHMuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKSk7Cit9CisKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDg4M2VhNzIuLjE3YWE2ODYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDItMDcgIFl1em8gRnVqaXNo
aW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENoYW5nZSBmbGV4IHJ1bGUgc3VjaCB0aGF0IHVuY2xvc2VkIHN0cmlu
Zy91cmwgaXMgcHJvcGVybHkgaGFuZGxlZC4KKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIv
Q1NTMjEvc3luZGF0YS5odG1sI3BhcnNpbmctZXJyb3JzIHNwZWNpZmllcyBob3cgdW5jbG9zZWQg
c3RyaW5ncyBtdXN0IGJlIGhhbmRsZWQuCisgICAgICAgIFdpdGhvdXQgdGhpcyBwYXRjaCwgV2Vi
S2l0IGlnbm9yZXMgdW5jbG9zZWQgc3RyaW5ncy91cmxzIGF0IHRoZSBlbmQgb2Ygc3R5bGVzaGVl
dC4KKyAgICAgICAgVGhpcyBjaGFuZ2UgdXNlcyBZWV9TVEFSVCBhbmQgeXltb3JlIG9mIGZsZXgu
IEFjY29yZGluZ2x5LCBzZXZlcmFsIG1hY3JvcyBhbmQgdmFyaWFibGVzIGFyZSBhZGRlZCB0byBt
YWtldG9rZW5pemVyLgorCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNDA2NworCisgICAgICAgIFRlc3Q6IGZhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQt
c3RyaW5nLmh0bWwKKworICAgICAgICAqIGNzcy9DU1NQYXJzZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q1NTUGFyc2VyOjp0ZXh0KToKKyAgICAgICAgKiBjc3MvbWFrZXRva2VuaXplcjoKKyAg
ICAgICAgKiBjc3MvdG9rZW5pemVyLmZsZXg6CisKIDIwMTAtMDItMTUgIERhbiBCZXJuc3RlaW4g
IDxtaXR6QGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTUGFy
c2VyLmNwcAppbmRleCBlYzU5MDU1Li45ZWJhMDhjIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuY3BwCisrKyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTQ3MzUsMzEg
KzQ3MzUsMTMgQEAgVUNoYXIqIENTU1BhcnNlcjo6dGV4dChpbnQgKmxlbmd0aCkKICAgICBpbnQg
bCA9IHl5bGVuZzsKICAgICBzd2l0Y2ggKHl5VG9rKSB7CiAgICAgY2FzZSBTVFJJTkc6Ci0gICAg
ICAgIGwtLTsKLSAgICAgICAgLyogbm9icmVhayAqLworICAgICAgICBicmVhazsKICAgICBjYXNl
IEhFWDoKICAgICBjYXNlIElEU0VMOgogICAgICAgICBzdGFydCsrOwogICAgICAgICBsLS07CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgVVJJOgotICAgICAgICAvLyAidXJsKCJ7d317c3RyaW5n
fXt3fSIpIgotICAgICAgICAvLyAidXJsKCJ7d317dXJsfXt3fSIpIgotICAgICAgICAvLyBzdHJp
cCAidXJsKCIgYW5kICIpIgotICAgICAgICBzdGFydCArPSA0OwotICAgICAgICBsIC09IDU7Ci0g
ICAgICAgIC8vIHN0cmlwIHt3fQotICAgICAgICB3aGlsZSAobCAmJiBpc0NTU1doaXRlc3BhY2Uo
KnN0YXJ0KSkgewotICAgICAgICAgICAgKytzdGFydDsKLSAgICAgICAgICAgIC0tbDsKLSAgICAg
ICAgfQotICAgICAgICB3aGlsZSAobCAmJiBpc0NTU1doaXRlc3BhY2Uoc3RhcnRbbCAtIDFdKSkK
LSAgICAgICAgICAgIC0tbDsKLSAgICAgICAgaWYgKGwgJiYgKCpzdGFydCA9PSAnIicgfHwgKnN0
YXJ0ID09ICdcJycpKSB7Ci0gICAgICAgICAgICBBU1NFUlQobCA+PSAyICYmIHN0YXJ0W2wgLSAx
XSA9PSAqc3RhcnQpOwotICAgICAgICAgICAgKytzdGFydDsKLSAgICAgICAgICAgIGwgLT0gMjsK
LSAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNlIFZBUkNBTEw6CiAgICAgICAgIC8v
ICItd2Via2l0LXZhcigie3d9e2lkZW50fXt3fSIpIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3Mv
bWFrZXRva2VuaXplciBiL1dlYkNvcmUvY3NzL21ha2V0b2tlbml6ZXIKaW5kZXggOTBkNWZjYi4u
ODUxYTE4NyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvbWFrZXRva2VuaXplcgorKysgYi9XZWJD
b3JlL2Nzcy9tYWtldG9rZW5pemVyCkBAIC00OSw2ICs0OSwxNCBAQCBwcmludDw8RU5ECiAjZGVm
aW5lIElOSVRJQUwgMAogI2RlZmluZSBtZWRpYXF1ZXJ5IDEKICNkZWZpbmUgZm9ya2V5d29yZCAy
CisjZGVmaW5lIGRxdW90ZWRfc3RyaW5nIDMKKyNkZWZpbmUgc3F1b3RlZF9zdHJpbmcgNAorI2Rl
ZmluZSB1cmkgNQorI2RlZmluZSB1cmlfcGVuZGluZyA2CisKKyNkZWZpbmUgWVlfU1RBUlQgKCgo
eXlfc3RhcnQpIC0gMSkgLyAyKQorI2RlZmluZSB5eXRleHRfcHRyIHl5dGV4dAorI2RlZmluZSB5
eW1vcmUoKSAoKHl5X21vcmVfZmxhZykgPSAxKQogCiAvKiBDOTkgc3lzdGVtcyBoYXZlIDxpbnR0
eXBlcy5oPi4gTm9uLUM5OSBzeXN0ZW1zIG1heSBvciBtYXkgbm90LiAqLwogCkBAIC02OCw2ICs3
NiwxNSBAQCB0eXBlZGVmIHVuc2lnbmVkIGNoYXIgZmxleF91aW50OF90OwogdHlwZWRlZiB1bnNp
Z25lZCBzaG9ydCBpbnQgZmxleF91aW50MTZfdDsKIHR5cGVkZWYgdW5zaWduZWQgaW50IGZsZXhf
dWludDMyX3Q7CiAjZW5kaWYgLyogISBDOTkgKi8KKworc3RhdGljIGludCB5eV9tb3JlX2ZsYWcg
PSAwOworc3RhdGljIGludCB5eV9tb3JlX2xlbiA9IDA7CisKK2ludCBzdHJpbmdfY2FsbGVyID0g
SU5JVElBTDsKK2ludCB1cmlfY2FsbGVyID0gSU5JVElBTDsKK2ludCBzdHJpbmdfb3JfdXJpX2Nv
bnRlbnRfbGVuZ3RoID0gMDsKK2ludCBzdHJpbmdfb3JfdXJpX2NvbnRlbnRfb2Zmc2V0ID0gMDsK
KwogRU5ECiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4IGIvV2Vi
Q29yZS9jc3MvdG9rZW5pemVyLmZsZXgKaW5kZXggMTU2OWVlMi4uZTdhY2Q3MSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9jc3MvdG9rZW5pemVyLmZsZXgKKysrIGIvV2ViQ29yZS9jc3MvdG9rZW5pemVy
LmZsZXgKQEAgLTQsNiArNCwxMCBAQAogJW9wdGlvbiBzdGFjawogJXMgbWVkaWFxdWVyeQogJXMg
Zm9ya2V5d29yZAorJXggZHF1b3RlZF9zdHJpbmcKKyV4IHNxdW90ZWRfc3RyaW5nCisleCB1cmkK
KyV4IHVyaV9wZW5kaW5nCiAKIGggICAgICAgICAgICAgICBbMC05YS1mQS1GXQogbm9uYXNjaWkg
ICAgICAgIFtcMjAwLVwzNzddCkBAIC0xMSwxOCArMTUsMTkgQEAgdW5pY29kZSAgICAgICAgIFxc
e2h9ezEsNn1bIFx0XHJcblxmXT8KIGVzY2FwZSAgICAgICAgICB7dW5pY29kZX18XFxbIC1+XDIw
MC1cMzc3XQogbm1zdGFydCAgICAgICAgIFtfYS16QS1aXXx7bm9uYXNjaWl9fHtlc2NhcGV9CiBu
bWNoYXIgICAgICAgICAgW19hLXpBLVowLTktXXx7bm9uYXNjaWl9fHtlc2NhcGV9Ci1zdHJpbmcx
ICAgICAgICAgXCIoW1x0ICEjJCUmKC1+XXxcXHtubH18XCd8e25vbmFzY2lpfXx7ZXNjYXBlfSkq
XCIKLXN0cmluZzIgICAgICAgICBcJyhbXHQgISMkJSYoLX5dfFxce25sfXxcInx7bm9uYXNjaWl9
fHtlc2NhcGV9KSpcJworZHF1b3RlZF9jb250ZW50IChbXHQgISMkJSYoLX5dfFxce25sfXxcJ3x7
bm9uYXNjaWl9fHtlc2NhcGV9KSoKK3NxdW90ZWRfY29udGVudCAoW1x0ICEjJCUmKC1+XXxcXHtu
bH18XCJ8e25vbmFzY2lpfXx7ZXNjYXBlfSkqCiBoZXhjb2xvciAgICAgICAge2h9ezN9fHtofXs2
fQogCiBpZGVudCAgICAgICAgICAgLT97bm1zdGFydH17bm1jaGFyfSoKIG5hbWUgICAgICAgICAg
ICB7bm1jaGFyfSsKIG51bSAgICAgICAgICAgICBbMC05XSt8WzAtOV0qIi4iWzAtOV0rCiBpbnRu
dW0gICAgICAgICAgWzAtOV0rCi1zdHJpbmcgICAgICAgICAge3N0cmluZzF9fHtzdHJpbmcyfQog
dXJsICAgICAgICAgICAgIChbISMkJSYqLX5dfHtub25hc2NpaX18e2VzY2FwZX0pKgogdyAgICAg
ICAgICAgICAgIFsgXHRcclxuXGZdKgogbmwgICAgICAgICAgICAgIFxufFxyXG58XHJ8XGYKK2Rx
dW90ZSAgICAgICAgICBcIgorc3F1b3RlICAgICAgICAgIFwnCiByYW5nZSAgICAgICAgICAgXD97
MSw2fXx7aH0oXD97MCw1fXx7aH0oXD97MCw0fXx7aH0oXD97MCwzfXx7aH0oXD97MCwyfXx7aH0o
XD8/fHtofSkpKSkpCiBudGggICAgICAgICAgICAgKC0/WzAtOV0qbltcKy1dWzAtOV0rKXwoLT9b
MC05XSpuKQogCkBAIC00NCw3ICs0OSw1MSBAQCBudGggICAgICAgICAgICAgKC0/WzAtOV0qbltc
Ky1dWzAtOV0rKXwoLT9bMC05XSpuKQogPG1lZGlhcXVlcnk+ImFuZCIgICAgICAge3l5VG9rID0g
TUVESUFfQU5EOyByZXR1cm4geXlUb2s7fQogPGZvcmtleXdvcmQ+ImZvciIgICAgICAge0JFR0lO
KG1lZGlhcXVlcnkpOyB5eVRvayA9IFZBUklBQkxFU19GT1I7IHJldHVybiB5eVRvazsgfQogCi17
c3RyaW5nfSAgICAgICAgICAgICAgICB7eXlUb2sgPSBTVFJJTkc7IHJldHVybiB5eVRvazt9Cis8
SU5JVElBTCxtZWRpYXF1ZXJ5LGZvcmtleXdvcmQsdXJpPnsKKyAgICB7ZHF1b3RlfSAgICAgICAg
ICAgIHtzdHJpbmdfY2FsbGVyID0gWVlfU1RBUlQ7IHN0cmluZ19vcl91cmlfY29udGVudF9sZW5n
dGggPSAwOyBCRUdJTihkcXVvdGVkX3N0cmluZyk7fQorICAgIHtzcXVvdGV9ICAgICAgICAgICAg
e3N0cmluZ19jYWxsZXIgPSBZWV9TVEFSVDsgc3RyaW5nX29yX3VyaV9jb250ZW50X2xlbmd0aCA9
IDA7IEJFR0lOKHNxdW90ZWRfc3RyaW5nKTt9Cit9Cis8ZHF1b3RlZF9zdHJpbmc+e2RxdW90ZWRf
Y29udGVudH0gfAorPHNxdW90ZWRfc3RyaW5nPntzcXVvdGVkX2NvbnRlbnR9IHtzdHJpbmdfb3Jf
dXJpX2NvbnRlbnRfbGVuZ3RoID0geXlsZW5nOyBzdHJpbmdfb3JfdXJpX2NvbnRlbnRfb2Zmc2V0
ID0gLXl5bGVuZzsgeXltb3JlKCk7fQorPGRxdW90ZWRfc3RyaW5nPntkcXVvdGV9IHwKKzxzcXVv
dGVkX3N0cmluZz57c3F1b3RlfSB7CisgICAgQkVHSU4oc3RyaW5nX2NhbGxlciA9PSB1cmkgPyB1
cmlfcGVuZGluZyA6IHN0cmluZ19jYWxsZXIpOworICAgIGlmIChzdHJpbmdfY2FsbGVyID09IHVy
aSkgeworICAgICAgICBzdHJpbmdfb3JfdXJpX2NvbnRlbnRfb2Zmc2V0IC09IHl5bGVuZzsKKyAg
ICAgICAgeXltb3JlKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgeXlsZW5nID0gc3RyaW5nX29y
X3VyaV9jb250ZW50X2xlbmd0aDsKKyAgICAgICAgeXl0ZXh0ICs9IHN0cmluZ19vcl91cmlfY29u
dGVudF9vZmZzZXQ7CisgICAgICAgIHl5VG9rID0gU1RSSU5HOworICAgICAgICByZXR1cm4geXlU
b2s7CisgICAgfQorfQorPGRxdW90ZWRfc3RyaW5nLHNxdW90ZWRfc3RyaW5nPntubH18LiB7QkVH
SU4oSU5JVElBTCk7fQorPDxFT0Y+PiB7CisgICAgLy8gPGRxdW90ZWRfc3RyaW5nLHNxdW90ZWRf
c3RyaW5nPjw8RU9GPj4gZG9lc24ndCB3b3JrIGZvciBzb21lIHVua25vd24gcmVhc29ucy4gSGVu
Y2UgdGhlIHVzZSBvZiB0aGUgc3dpdGNoIGJlbG93LgorICAgIHN3aXRjaCAoWVlfU1RBUlQpIHsK
KyAgICBjYXNlIHVyaToKKyAgICBjYXNlIGRxdW90ZWRfc3RyaW5nOgorICAgIGNhc2Ugc3F1b3Rl
ZF9zdHJpbmc6CisgICAgeworICAgICAgICB5eWxlbmctLTsgLy8gUmVtb3ZlIHRoZSAnXDAnIHJl
cHJlc2VudGluZyBFT0YuCisgICAgICAgIHl5VG9rID0gKHN0cmluZ19jYWxsZXIgPT0gdXJpIHx8
IFlZX1NUQVJUID09IHVyaSkgPyBVUkkgOiBTVFJJTkc7CisgICAgICAgIEJFR0lOKElOSVRJQUwp
OworICAgICAgICByZXR1cm4geXlUb2s7CisgICAgfQorICAgIGNhc2UgdXJpX3BlbmRpbmc6Cisg
ICAgeworICAgICAgICB5eWxlbmcgPSBzdHJpbmdfb3JfdXJpX2NvbnRlbnRfbGVuZ3RoOworICAg
ICAgICB5eXRleHQgKz0gc3RyaW5nX29yX3VyaV9jb250ZW50X29mZnNldDsKKyAgICAgICAgeXlU
b2sgPSBVUkk7CisgICAgICAgIEJFR0lOKElOSVRJQUwpOworICAgICAgICByZXR1cm4geXlUb2s7
CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIHl5dGVybWluYXRlKCk7CisgICAgfQorfQor
CiB7aWRlbnR9ICAgICAgICAgICAgICAgICB7eXlUb2sgPSBJREVOVDsgcmV0dXJuIHl5VG9rO30K
IHtudGh9ICAgICAgICAgICAgICAgICAgIHt5eVRvayA9IE5USDsgcmV0dXJuIHl5VG9rO30KIApA
QCAtOTYsOCArMTQ1LDE2IEBAIG50aCAgICAgICAgICAgICAoLT9bMC05XSpuW1wrLV1bMC05XSsp
fCgtP1swLTldKm4pCiB7bnVtfSAgICAgICAgICAgICAgICAgICB7eXlUb2sgPSBGTE9BVFRPS0VO
OyByZXR1cm4geXlUb2s7fQogCiAibm90KCIgICAgICAgICAgICAgICAgICB7eXlUb2sgPSBOT1RG
VU5DVElPTjsgcmV0dXJuIHl5VG9rO30KLSJ1cmwoInt3fXtzdHJpbmd9e3d9IikiIHt5eVRvayA9
IFVSSTsgcmV0dXJuIHl5VG9rO30KLSJ1cmwoInt3fXt1cmx9e3d9IikiICAgIHt5eVRvayA9IFVS
STsgcmV0dXJuIHl5VG9rO30KKworPElOSVRJQUwsbWVkaWFxdWVyeSxmb3JrZXl3b3JkPiJ1cmwo
IiB7dXJpX2NhbGxlciA9IFlZX1NUQVJUOyBCRUdJTih1cmkpO30KKzx1cmk+e3d9ICAgICAgICAg
ICAgICAgIHsvKiBTa2lwIHdoaXRlc3BhY2UgKi99Cis8dXJpPnt1cmx9ICAgICAgICAgICAgICB7
QkVHSU4odXJpX3BlbmRpbmcpOyBzdHJpbmdfb3JfdXJpX2NvbnRlbnRfbGVuZ3RoID0geXlsZW5n
OyBzdHJpbmdfb3JfdXJpX2NvbnRlbnRfb2Zmc2V0ID0gLXl5bGVuZzsgeXltb3JlKCk7fQorPHVy
aT4iKSIgICAgICAgICAgICAgICAge0JFR0lOKHVyaV9jYWxsZXIpOyB5eWxlbmcgPSAwOyB5eVRv
ayA9IFVSSTsgcmV0dXJuIHl5VG9rO30KKzx1cmk+LiAgICAgICAgICAgICAgICAgIHtCRUdJTih1
cmlfY2FsbGVyKTt9Cis8dXJpX3BlbmRpbmc+e3d9ICAgICAgICB7c3RyaW5nX29yX3VyaV9jb250
ZW50X29mZnNldCAtPSB5eWxlbmc7IHl5bW9yZSgpO30KKzx1cmlfcGVuZGluZz4iKSIgICAgICAg
IHtCRUdJTih1cmlfY2FsbGVyKTsgeXlsZW5nID0gc3RyaW5nX29yX3VyaV9jb250ZW50X2xlbmd0
aDsgeXl0ZXh0ICs9IHN0cmluZ19vcl91cmlfY29udGVudF9vZmZzZXQ7IHl5VG9rID0gVVJJOyBy
ZXR1cm4geXlUb2s7fQorPHVyaV9wZW5kaW5nPi4gICAgICAgICAge0JFR0lOKHVyaV9jYWxsZXIp
O30KKwogIi13ZWJraXQtdmFyKCJ7d317aWRlbnR9e3d9IikiIHsgeXlUb2sgPSBWQVJDQUxMOyBy
ZXR1cm4geXlUb2s7IH0KIHtpZGVudH0iKCIgICAgICAgICAgICAgIHt5eVRvayA9IEZVTkNUSU9O
OyByZXR1cm4geXlUb2s7fQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48868</attachid>
            <date>2010-02-17 00:49:59 -0800</date>
            <delta_ts>2010-04-07 17:48:54 -0700</delta_ts>
            <desc>Change flex rule such that unclosed string/url is properly handled.</desc>
            <filename>bug-34067-20100217174957.patch</filename>
            <type>text/plain</type>
            <size>20153</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzZjMxMzdhLi40NzRlYTJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MDcgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIENoYW5nZSBmbGV4IHJ1bGUgc3VjaCB0aGF0
IHVuY2xvc2VkIHN0cmluZy91cmwgaXMgcHJvcGVybHkgaGFuZGxlZC4KKyAgICAgICAgaHR0cDov
L3d3dy53My5vcmcvVFIvQ1NTMjEvc3luZGF0YS5odG1sI3BhcnNpbmctZXJyb3JzIHNwZWNpZmll
cyBob3cgdW5jbG9zZWQgc3RyaW5ncyBtdXN0IGJlIGhhbmRsZWQuCisgICAgICAgIFdpdGhvdXQg
dGhpcyBwYXRjaCwgV2ViS2l0IGlnbm9yZXMgdW5jbG9zZWQgc3RyaW5ncy91cmxzIGF0IHRoZSBl
bmQgb2Ygc3R5bGVzaGVldC4KKyAgICAgICAgTm90ZSB0aGF0IExheW91dFRlc3RzL2Zhc3QvY3Nz
L2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWwgd2FzIGNoYW5nZWQgYmVjYXVzZSBpdCBoYWQgY29u
dGFpbmVkIHdyb25nIHF1b3Rlcy4gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0zNDA2NyNjMjkuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0zNDA2NworCisgICAgICAgICogZmFzdC9jc3MvZm9udF9wcm9wZXJ0eV9ub3Jt
YWwuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3Ry
aW5nLmh0bWw6IEFkZGVkLgorCiAyMDEwLTAyLTE1ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udF9wcm9wZXJ0eV9ub3JtYWwuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvY3NzL2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWwKaW5kZXggMmNmYjM0Ny4uYzQ3
ZmViZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udF9wcm9wZXJ0eV9ub3Jt
YWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5o
dG1sCkBAIC0zLDExICszLDExIEBACiA8SEVBRD4KIDxUSVRMRT5UZXN0aW5nIHZhbGlkIGZvbnQg
cHJvcGVydHkgc3BlY2lmaWNhdGlvbjwvVElUTEU+CiA8U1RZTEUgdHlwZT0idGV4dC9jc3MiPgot
Lm9uZSB7Zm9udDogMjRwdCBpdGFsaWM7In0KKy5vbmUge2ZvbnQ6IDI0cHQgaXRhbGljO30KIC50
d28ge2ZvbnQ6IDI0cHQgaXRhbGljIEFyaWFsO30KIC50aHJlZSB7Zm9udDogMjRwdCBpdGFsaWMg
J0FyaWFsJzt9CiAuZm91ciB7Zm9udDogaXRhbGljIDI0cHQ7fQotLmZpdmUge2ZvbnQ6IGl0YWxp
YyAyNHB0IEFyaWFsOyJ9CisuZml2ZSB7Zm9udDogaXRhbGljIDI0cHQgQXJpYWw7fQogLnNpeCB7
Zm9udDogaXRhbGljIDI0cHQgJ0FyaWFsJzt9CiAuc2V2ZW4ge2ZvbnQ6IEFyaWFsIDI0cHQgaXRh
bGljO30KIC5laWdodCB7Zm9udDogJ0FyaWFsJyAyNHB0IGl0YWxpYzt9CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMWViZmYyMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3RyaW5nLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDg0IEBACitUZXN0cyBpZiB1bmNsb3NlZCBzdHJpbmdzIGFy
ZSBwYXJzZWQgcHJvcGVybHkuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBv
ZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitUZXN0
IDEocmVmKSBUZXN0IDEodGVzdCkgCitUZXN0IDIocmVmKSBUZXN0IDIodGVzdCkgCitUZXN0IDMo
cmVmKSBUZXN0IDModGVzdCkgCitUZXN0IDQocmVmKSBUZXN0IDQodGVzdCkgCitUZXN0IDUocmVm
KSBUZXN0IDUodGVzdCkgCitUZXN0IDYocmVmKSBUZXN0IDYodGVzdCkgCitUZXN0IDcocmVmKSBU
ZXN0IDcodGVzdCkgCitUZXN0IDgocmVmKSBUZXN0IDgodGVzdCkgCitUZXN0IDkocmVmKSBUZXN0
IDkodGVzdCkgCitUZXN0IDEwKHJlZikgVGVzdCAxMCh0ZXN0KSAKK1Rlc3QgMTEocmVmKSBUZXN0
IDExKHRlc3QpIAorVGVzdCAxMihyZWYpIFRlc3QgMTIodGVzdCkgCitUZXN0IDEzKHJlZikgVGVz
dCAxMyh0ZXN0KSAKK1Rlc3QgMTQocmVmKSBUZXN0IDE0KHRlc3QpIAorVGVzdCAxNShyZWYpIFRl
c3QgMTUodGVzdCkgCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCitQQVNTIGdldFBy
b3BlcnR5KCd0ZXN0MS10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Qx
LXJlZicsICdmb250LWZhbWlseScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MS10ZXN0JywgJ2Zv
bnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxLXJlZicsICdmb250LXdlaWdodCcpCitQ
QVNTIGdldFByb3BlcnR5KCd0ZXN0MS10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rl
c3QxLXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MS10ZXN0JywgJ2JhY2tn
cm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEtcmVmJywgJ2JhY2tncm91bmQtaW1h
Z2UnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDItdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdl
dFByb3BlcnR5KCd0ZXN0Mi1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgn
dGVzdDItdGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0Mi1yZWYnLCAn
Zm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDItdGVzdCcsICdjb2xvcicpIGlz
IGdldFByb3BlcnR5KCd0ZXN0Mi1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVz
dDItdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QyLXJlZics
ICdiYWNrZ3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QzLXRlc3QnLCAnZm9u
dC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDMtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BB
U1MgZ2V0UHJvcGVydHkoJ3Rlc3QzLXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0
eSgndGVzdDMtcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QzLXRl
c3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDMtcmVmJywgJ2NvbG9yJykKK1BBU1Mg
Z2V0UHJvcGVydHkoJ3Rlc3QzLXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3Bl
cnR5KCd0ZXN0My1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0
ZXN0NC10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q0LXJlZicsICdm
b250LWZhbWlseScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0NC10ZXN0JywgJ2ZvbnQtd2VpZ2h0
JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q0LXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFBy
b3BlcnR5KCd0ZXN0NC10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q0LXJlZics
ICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0NC10ZXN0JywgJ2JhY2tncm91bmQtaW1h
Z2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDQtcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFT
UyBnZXRQcm9wZXJ0eSgndGVzdDUtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5
KCd0ZXN0NS1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDUtdGVz
dCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0NS1yZWYnLCAnZm9udC13ZWln
aHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDUtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3Bl
cnR5KCd0ZXN0NS1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDUtdGVzdCcs
ICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q1LXJlZicsICdiYWNrZ3Jv
dW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q2LXRlc3QnLCAnZm9udC1mYW1pbHkn
KSBpcyBnZXRQcm9wZXJ0eSgndGVzdDYtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJv
cGVydHkoJ3Rlc3Q2LXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDYt
cmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q2LXRlc3QnLCAnY29s
b3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDYtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVy
dHkoJ3Rlc3Q2LXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0
Ni1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0Ny10ZXN0
JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q3LXJlZicsICdmb250LWZhbWls
eScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0Ny10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0
UHJvcGVydHkoJ3Rlc3Q3LXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0
ZXN0Ny10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q3LXJlZicsICdjb2xvcicp
CitQQVNTIGdldFByb3BlcnR5KCd0ZXN0Ny10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBn
ZXRQcm9wZXJ0eSgndGVzdDctcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9w
ZXJ0eSgndGVzdDgtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0OC1y
ZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDgtdGVzdCcsICdmb250
LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0OC1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFT
UyBnZXRQcm9wZXJ0eSgndGVzdDgtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0
OC1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDgtdGVzdCcsICdiYWNrZ3Jv
dW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q4LXJlZicsICdiYWNrZ3JvdW5kLWltYWdl
JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q5LXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQ
cm9wZXJ0eSgndGVzdDktcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rl
c3Q5LXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDktcmVmJywgJ2Zv
bnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q5LXRlc3QnLCAnY29sb3InKSBpcyBn
ZXRQcm9wZXJ0eSgndGVzdDktcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q5
LXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0OS1yZWYnLCAn
YmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTAtdGVzdCcsICdmb250
LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTAtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BB
U1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMC10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVy
dHkoJ3Rlc3QxMC1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEw
LXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEwLXJlZicsICdjb2xvcicpCitQ
QVNTIGdldFByb3BlcnR5KCd0ZXN0MTAtdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0
UHJvcGVydHkoJ3Rlc3QxMC1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3Bl
cnR5KCd0ZXN0MTEtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTEt
cmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMS10ZXN0JywgJ2Zv
bnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMS1yZWYnLCAnZm9udC13ZWlnaHQnKQor
UEFTUyBnZXRQcm9wZXJ0eSgndGVzdDExLXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgn
dGVzdDExLXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTEtdGVzdCcsICdi
YWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMS1yZWYnLCAnYmFja2dyb3Vu
ZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTItdGVzdCcsICdmb250LWZhbWlseScp
IGlzIGdldFByb3BlcnR5KCd0ZXN0MTItcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJv
cGVydHkoJ3Rlc3QxMi10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Qx
Mi1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEyLXRlc3QnLCAn
Y29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEyLXJlZicsICdjb2xvcicpCitQQVNTIGdldFBy
b3BlcnR5KCd0ZXN0MTItdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHko
J3Rlc3QxMi1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0
MTMtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTMtcmVmJywgJ2Zv
bnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMy10ZXN0JywgJ2ZvbnQtd2VpZ2h0
JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMy1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQ
cm9wZXJ0eSgndGVzdDEzLXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEzLXJl
ZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTMtdGVzdCcsICdiYWNrZ3JvdW5k
LWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMy1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScp
CitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTQtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFBy
b3BlcnR5KCd0ZXN0MTQtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rl
c3QxNC10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxNC1yZWYnLCAn
Zm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDE0LXRlc3QnLCAnY29sb3InKSBp
cyBnZXRQcm9wZXJ0eSgndGVzdDE0LXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0
ZXN0MTQtdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxNC1y
ZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTUtdGVzdCcs
ICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTUtcmVmJywgJ2ZvbnQtZmFtaWx5
JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxNS10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0
UHJvcGVydHkoJ3Rlc3QxNS1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgn
dGVzdDE1LXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDE1LXJlZicsICdjb2xv
cicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTUtdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykg
aXMgZ2V0UHJvcGVydHkoJ3Rlc3QxNS1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmNs
b3NlZC1zdHJpbmcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQt
c3RyaW5nLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uMjc1OTViZQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQt
c3RyaW5nLmh0bWwKQEAgLTAsMCArMSwxOTIgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9
InN0eWxlc2hlZXQiIGhyZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8
c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
dHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisqIHsKKyAgICBjb2xvcjogYmxhY2s7CisgICAgZm9udC1m
YW1pbHk6ICdDb3VyaWVyJzsKKyAgICBmb250LXdlaWdodDogbm9ybWFsOworfQorPC9zdHlsZT4K
KworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0MS1yZWYgeworICAgIGZvbnQtZmFtaWx5
OiAnSW1wYWN0JzsKK30KKyN0ZXN0MS10ZXN0IHsKKyAgICBmb250LWZhbWlseTogJ0ltcFwKK2Fj
dCc7Cit9Cis8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QyLXJlZiB7
CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cit9CisjdGVzdDItdGVzdCB7CisgICAgZm9udC1mYW1p
bHk6ICdJbXBhY3QKKyAgICBjb2xvcjpyZWQ7CisgICAgZm9udC13ZWlnaHQ6IGJvbGQ7Cit9Cis8
L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QzLXJlZiB7CisgICAgY29s
b3I6Z3JheTsKKyAgICBmb250LWZhbWlseTogJ0ltcGFjdCc7Cit9CisjdGVzdDMtdGVzdCB7Cisg
ICAgY29sb3I6Z3JheTsKKyAgICBmb250LWZhbWlseTogJ0ltcGFjdDwvc3R5bGU+CisKKzxzdHls
ZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDQtcmVmIHsKKyAgICBjb2xvcjpibHVlOworfQorI3Rl
c3Q0LXRlc3QgeworICAgIGNvbG9yOmJsdWU7CisgICAgZm9udC1mYW1pbHk6ICdJbXBhY3QKKzwv
c3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDUtcmVmIHsKKyAgICBjb2xv
cjptYXJvb247Cit9CisjdGVzdDUtdGVzdCB7CisgICAgY29sb3I6bWFyb29uOworICAgIGZvbnQt
ZmFtaWx5OiAiSW1wYWN0CDwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVz
dDYtcmVmIHsKKyAgICBjb2xvcjp0ZWFsOworfQorPC9zdHlsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0
L2NzcyI+CitAaW1wb3J0IHVybCgnZGF0YTp0ZXh0L2NzcywjdGVzdDYtdGVzdHtjb2xvcjp0ZWFs
O30nKTsKKzwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDctcmVmIHsK
KyAgICBjb2xvcjpvbGl2ZTsKK30KKzwvc3R5bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgor
QGltcG9ydCB1cmwoICdkYXRhOnRleHQvY3NzLCN0ZXN0Ny10ZXN0e2NvbG9yOm9saXZlO30nICk7
Cis8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3Q4LXJlZiB7Cit9Cis8
L3N0eWxlPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK0BpbXBvcnQgdXJsKCdkYXRhOnRleHQv
Y3NzLCN0ZXN0OC10ZXN0e2NvbG9yOnB1cnBsZTt9J2V4dHJhKTsKKzwvc3R5bGU+CisKKzxzdHls
ZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDktcmVmIHsKK30KKzwvc3R5bGU+Cis8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiPgorQGltcG9ydCB1cmwoZXh0cmEnZGF0YTp0ZXh0L2NzcywjdGVzdDktdGVz
dHtjb2xvcjpwdXJwbGU7fScpOworPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4K
KyN0ZXN0MTAtcmVmIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9ncmVl
bmJveC5wbmcnKTsKK30KKyN0ZXN0MTAtdGVzdCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJs
KCdyZXNvdXJjZXMvZ3JlZW5ib3gucG5nJworPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQv
Y3NzIj4KKyN0ZXN0MTEtcmVmIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3Jlc291cmNl
cy9wdXJwbGUtbm9wcm9maWxlLnBuZycpOworfQorI3Rlc3QxMS10ZXN0IHsKKyAgICBiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9wdXJwbGUtbm9wcm9maWxlLnBuZzwvc3R5bGU+CisK
KzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDEyLXJlZiB7Cit9CisjdGVzdDEyLXRlc3Qg
eworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgncmVzb3VyY2VzL2dyZWVuYm94LnBuZworPC9z
dHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0MTMtcmVmIHsKKyAgICBiYWNr
Z3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2dyZWVuYm94LnBuZyk7Cit9CisjdGVzdDEzLXRl
c3QgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZ3JlZW5ib3gucG5nCis8
L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QxNC1yZWYgeworICAgIGJh
Y2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvcHVycGxlLW5vcHJvZmlsZS5wbmcpOworfQor
I3Rlc3QxNC10ZXN0IHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL3B1cnBs
ZS1ub3Byb2ZpbGUucG5nPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0
MTUtcmVmIHsKK30KKyN0ZXN0MTUtdGVzdCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJl
c291cmNlcy9ncmVlbmJveC5wbmcgZXh0YXJhKTsKK30KKzwvc3R5bGU+CisKKzxzY3JpcHQ+Cit2
YXIgbnVtVGVzdCA9IDE1OworCitmdW5jdGlvbiBnZXRQcm9wZXJ0eShlbGVtZW50SWQsIG5hbWUp
Cit7CisgICAgcmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKGVsZW1lbnRJZCkpLmdldFByb3BlcnR5VmFsdWUobmFtZSk7Cit9CisKK2Z1bmN0aW9u
IHRlc3QoKSB7CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGlmIHVuY2xvc2VkIHN0cmluZ3MgYXJl
IHBhcnNlZCBwcm9wZXJseS4iKTsKKyAgICBzaG91bGRCZVRydWUoInN1Y2Nlc3NmdWxseVBhcnNl
ZCIpOworCisgICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gbnVtVGVzdDsgaSsrKQorICAgIHsKKyAg
ICAgICAgc2hvdWxkQmUoImdldFByb3BlcnR5KCd0ZXN0IiArIGkgKyAiLXRlc3QnLCAnZm9udC1m
YW1pbHknKSIsICJnZXRQcm9wZXJ0eSgndGVzdCIgKyBpICsgIi1yZWYnLCAnZm9udC1mYW1pbHkn
KSIpOworICAgICAgICBzaG91bGRCZSgiZ2V0UHJvcGVydHkoJ3Rlc3QiICsgaSArICItdGVzdCcs
ICdmb250LXdlaWdodCcpIiwgImdldFByb3BlcnR5KCd0ZXN0IiArIGkgKyAiLXJlZicsICdmb250
LXdlaWdodCcpIik7CisgICAgICAgIHNob3VsZEJlKCJnZXRQcm9wZXJ0eSgndGVzdCIgKyBpICsg
Ii10ZXN0JywgJ2NvbG9yJykiLCAgICAgICAiZ2V0UHJvcGVydHkoJ3Rlc3QiICsgaSArICItcmVm
JywgJ2NvbG9yJykiKTsKKyAgICAgICAgc2hvdWxkQmUoImdldFByb3BlcnR5KCd0ZXN0IiArIGkg
KyAiLXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIiwgICAgICAgImdldFByb3BlcnR5KCd0ZXN0
IiArIGkgKyAiLXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykiKTsKKyAgICB9CisKKyAgICBkZWJ1
ZygnPGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+Jyk7Cit9CisK
Kzwvc2NyaXB0PgorCis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8cCBpZD0iZGVz
Y3JpcHRpb24iPjwvcD4KKzxoci8+Cis8ZGl2IGlkPSJ0ZXN0LWVsZW1lbnRzIj4KKzwvZGl2Pgor
PGhyLz4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz
Y3JpcHQiPgordmFyIHRlc3RFbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0
LWVsZW1lbnRzIik7CisKK2ZvciAodmFyIGkgPSAxOyBpIDw9IG51bVRlc3Q7IGkrKykKK3sKKyAg
ICB2YXIgcmVmRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKKyAgICB2
YXIgdGVzdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgcmVm
RWxlbWVudC5pbm5lckhUTUwgPSAiVGVzdCAiICsgaSArICIocmVmKSAiOworICAgIHRlc3RFbGVt
ZW50LmlubmVySFRNTCA9ICJUZXN0ICIgKyBpICsgIih0ZXN0KSAiOworICAgIHJlZkVsZW1lbnQu
aWQgPSAidGVzdCIgKyBpICsgIi1yZWYiOworICAgIHRlc3RFbGVtZW50LmlkID0gInRlc3QiICsg
aSArICItdGVzdCI7CisgICAgdGVzdEVsZW1lbnRzLmFwcGVuZENoaWxkKHJlZkVsZW1lbnQpOwor
ICAgIHRlc3RFbGVtZW50cy5hcHBlbmRDaGlsZCh0ZXN0RWxlbWVudCk7CisKKyAgICB0ZXN0RWxl
bWVudHMuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKSk7Cit9CisKK3Zh
ciBzdWNjZXNzZnVsbHlQYXJzZWQgPSB0cnVlOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9XZWJDb3JlL0NoYW5nZUxvZyBiL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4
IDg4M2VhNzIuLjQzYTAxZGQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1dl
YkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTAtMDItMDcgIFl1em8gRnVqaXNo
aW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIENoYW5nZSBmbGV4IHJ1bGUgc3VjaCB0aGF0IHVuY2xvc2VkIHN0cmlu
Zy91cmwgaXMgcHJvcGVybHkgaGFuZGxlZC4KKyAgICAgICAgaHR0cDovL3d3dy53My5vcmcvVFIv
Q1NTMjEvc3luZGF0YS5odG1sI3BhcnNpbmctZXJyb3JzIHNwZWNpZmllcyBob3cgdW5jbG9zZWQg
c3RyaW5ncyBtdXN0IGJlIGhhbmRsZWQuCisgICAgICAgIFRoaXMgY2hhbmdlIHVzZXMgWVlfU1RB
UlQgYW5kIHl5bW9yZSBvZiBmbGV4LiBBY2NvcmRpbmdseSwgc2V2ZXJhbCBtYWNyb3MgYW5kIHZh
cmlhYmxlcyBhcmUgYWRkZWQgdG8gbWFrZXRva2VuaXplci4KKworICAgICAgICBXaXRob3V0IHRo
aXMgcGF0Y2gsIFdlYktpdCBpZ25vcmVzIHVuY2xvc2VkIHN0cmluZ3MvdXJscyBhdCB0aGUgZW5k
IG9mIHN0eWxlc2hlZXQuCisgICAgICAgIEl0IGlzIGJlY2F1c2UgcmVndWxhciBleHByZXNzaW9u
IHBhdHRlcm5zIGNvbnRhaW5pbmcgb3BlbmluZyBhbmQgY2xvc2luZyBxdW90ZXMgYXJlIHVzZWQg
dG8gbWF0Y2ggc3RyaW5ncy4gSGVuY2UgdW5jbG9zZWQgc3RyaW5ncyBhcmUgbmV2ZXIgbWF0Y2hl
ZC4KKyAgICAgICAgU2ltaWxhcmx5LCB1bmNsb3NlZCB1cmwoKSBleHByZXNzaW9ucyBhcmUgbmV2
ZXIgbWF0Y2hlZC4KKworICAgICAgICBUaGlzIHBhdGNoIHNvbHZlcyB0aGUgYWJvdmUgaXNzdWUg
YnkgdHJhY2tpbmcgb3BlbmluZyBxdW90ZXMvYnJhY2VzIHNlcGFyYXRlbHkgZnJvbSBjbG9zaW5n
IG9uZXMuIEF0IHRoZSBlbmQgb2YgYSBmaWxlLCB0aGUgcGVuZGluZyBzdHJpbmcvdXJsLCBpZiBh
bnksIGlzIGZsdXNoZWQgYXMgYSB0b2tlbi4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwNjcKKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9wYXJz
aW5nLXVuY2xvc2VkLXN0cmluZy5odG1sCisKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6dGV4dCk6CisgICAgICAgICogY3NzL21ha2V0
b2tlbml6ZXI6CisgICAgICAgICogY3NzL3Rva2VuaXplci5mbGV4OgorCiAyMDEwLTAyLTE1ICBE
YW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2lt
b24gRnJhc2VyLgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcCBiL1dlYkNv
cmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggZWM1OTA1NS4uOWViYTA4YyAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3Bw
CkBAIC00NzM1LDMxICs0NzM1LDEzIEBAIFVDaGFyKiBDU1NQYXJzZXI6OnRleHQoaW50ICpsZW5n
dGgpCiAgICAgaW50IGwgPSB5eWxlbmc7CiAgICAgc3dpdGNoICh5eVRvaykgewogICAgIGNhc2Ug
U1RSSU5HOgotICAgICAgICBsLS07Ci0gICAgICAgIC8qIG5vYnJlYWsgKi8KKyAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBIRVg6CiAgICAgY2FzZSBJRFNFTDoKICAgICAgICAgc3RhcnQrKzsKICAg
ICAgICAgbC0tOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFVSSToKLSAgICAgICAgLy8gInVy
bCgie3d9e3N0cmluZ317d30iKSIKLSAgICAgICAgLy8gInVybCgie3d9e3VybH17d30iKSIKLSAg
ICAgICAgLy8gc3RyaXAgInVybCgiIGFuZCAiKSIKLSAgICAgICAgc3RhcnQgKz0gNDsKLSAgICAg
ICAgbCAtPSA1OwotICAgICAgICAvLyBzdHJpcCB7d30KLSAgICAgICAgd2hpbGUgKGwgJiYgaXND
U1NXaGl0ZXNwYWNlKCpzdGFydCkpIHsKLSAgICAgICAgICAgICsrc3RhcnQ7Ci0gICAgICAgICAg
ICAtLWw7Ci0gICAgICAgIH0KLSAgICAgICAgd2hpbGUgKGwgJiYgaXNDU1NXaGl0ZXNwYWNlKHN0
YXJ0W2wgLSAxXSkpCi0gICAgICAgICAgICAtLWw7Ci0gICAgICAgIGlmIChsICYmICgqc3RhcnQg
PT0gJyInIHx8ICpzdGFydCA9PSAnXCcnKSkgewotICAgICAgICAgICAgQVNTRVJUKGwgPj0gMiAm
JiBzdGFydFtsIC0gMV0gPT0gKnN0YXJ0KTsKLSAgICAgICAgICAgICsrc3RhcnQ7Ci0gICAgICAg
ICAgICBsIC09IDI7Ci0gICAgICAgIH0KICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBWQVJDQUxM
OgogICAgICAgICAvLyAiLXdlYmtpdC12YXIoInt3fXtpZGVudH17d30iKSIKZGlmZiAtLWdpdCBh
L1dlYkNvcmUvY3NzL21ha2V0b2tlbml6ZXIgYi9XZWJDb3JlL2Nzcy9tYWtldG9rZW5pemVyCmlu
ZGV4IDkwZDVmY2IuLjg1MWExODcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL21ha2V0b2tlbml6
ZXIKKysrIGIvV2ViQ29yZS9jc3MvbWFrZXRva2VuaXplcgpAQCAtNDksNiArNDksMTQgQEAgcHJp
bnQ8PEVORAogI2RlZmluZSBJTklUSUFMIDAKICNkZWZpbmUgbWVkaWFxdWVyeSAxCiAjZGVmaW5l
IGZvcmtleXdvcmQgMgorI2RlZmluZSBkcXVvdGVkX3N0cmluZyAzCisjZGVmaW5lIHNxdW90ZWRf
c3RyaW5nIDQKKyNkZWZpbmUgdXJpIDUKKyNkZWZpbmUgdXJpX3BlbmRpbmcgNgorCisjZGVmaW5l
IFlZX1NUQVJUICgoKHl5X3N0YXJ0KSAtIDEpIC8gMikKKyNkZWZpbmUgeXl0ZXh0X3B0ciB5eXRl
eHQKKyNkZWZpbmUgeXltb3JlKCkgKCh5eV9tb3JlX2ZsYWcpID0gMSkKIAogLyogQzk5IHN5c3Rl
bXMgaGF2ZSA8aW50dHlwZXMuaD4uIE5vbi1DOTkgc3lzdGVtcyBtYXkgb3IgbWF5IG5vdC4gKi8K
IApAQCAtNjgsNiArNzYsMTUgQEAgdHlwZWRlZiB1bnNpZ25lZCBjaGFyIGZsZXhfdWludDhfdDsK
IHR5cGVkZWYgdW5zaWduZWQgc2hvcnQgaW50IGZsZXhfdWludDE2X3Q7CiB0eXBlZGVmIHVuc2ln
bmVkIGludCBmbGV4X3VpbnQzMl90OwogI2VuZGlmIC8qICEgQzk5ICovCisKK3N0YXRpYyBpbnQg
eXlfbW9yZV9mbGFnID0gMDsKK3N0YXRpYyBpbnQgeXlfbW9yZV9sZW4gPSAwOworCitpbnQgc3Ry
aW5nX2NhbGxlciA9IElOSVRJQUw7CitpbnQgdXJpX2NhbGxlciA9IElOSVRJQUw7CitpbnQgc3Ry
aW5nX29yX3VyaV9jb250ZW50X2xlbmd0aCA9IDA7CitpbnQgc3RyaW5nX29yX3VyaV9jb250ZW50
X29mZnNldCA9IDA7CisKIEVORAogfQogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy90b2tlbml6
ZXIuZmxleCBiL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4CmluZGV4IDE1NjllZTIuLmU3YWNk
NzEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4CisrKyBiL1dlYkNvcmUv
Y3NzL3Rva2VuaXplci5mbGV4CkBAIC00LDYgKzQsMTAgQEAKICVvcHRpb24gc3RhY2sKICVzIG1l
ZGlhcXVlcnkKICVzIGZvcmtleXdvcmQKKyV4IGRxdW90ZWRfc3RyaW5nCisleCBzcXVvdGVkX3N0
cmluZworJXggdXJpCisleCB1cmlfcGVuZGluZwogCiBoICAgICAgICAgICAgICAgWzAtOWEtZkEt
Rl0KIG5vbmFzY2lpICAgICAgICBbXDIwMC1cMzc3XQpAQCAtMTEsMTggKzE1LDE5IEBAIHVuaWNv
ZGUgICAgICAgICBcXHtofXsxLDZ9WyBcdFxyXG5cZl0/CiBlc2NhcGUgICAgICAgICAge3VuaWNv
ZGV9fFxcWyAtflwyMDAtXDM3N10KIG5tc3RhcnQgICAgICAgICBbX2EtekEtWl18e25vbmFzY2lp
fXx7ZXNjYXBlfQogbm1jaGFyICAgICAgICAgIFtfYS16QS1aMC05LV18e25vbmFzY2lpfXx7ZXNj
YXBlfQotc3RyaW5nMSAgICAgICAgIFwiKFtcdCAhIyQlJigtfl18XFx7bmx9fFwnfHtub25hc2Np
aX18e2VzY2FwZX0pKlwiCi1zdHJpbmcyICAgICAgICAgXCcoW1x0ICEjJCUmKC1+XXxcXHtubH18
XCJ8e25vbmFzY2lpfXx7ZXNjYXBlfSkqXCcKK2RxdW90ZWRfY29udGVudCAoW1x0ICEjJCUmKC1+
XXxcXHtubH18XCd8e25vbmFzY2lpfXx7ZXNjYXBlfSkqCitzcXVvdGVkX2NvbnRlbnQgKFtcdCAh
IyQlJigtfl18XFx7bmx9fFwifHtub25hc2NpaX18e2VzY2FwZX0pKgogaGV4Y29sb3IgICAgICAg
IHtofXszfXx7aH17Nn0KIAogaWRlbnQgICAgICAgICAgIC0/e25tc3RhcnR9e25tY2hhcn0qCiBu
YW1lICAgICAgICAgICAge25tY2hhcn0rCiBudW0gICAgICAgICAgICAgWzAtOV0rfFswLTldKiIu
IlswLTldKwogaW50bnVtICAgICAgICAgIFswLTldKwotc3RyaW5nICAgICAgICAgIHtzdHJpbmcx
fXx7c3RyaW5nMn0KIHVybCAgICAgICAgICAgICAoWyEjJCUmKi1+XXx7bm9uYXNjaWl9fHtlc2Nh
cGV9KSoKIHcgICAgICAgICAgICAgICBbIFx0XHJcblxmXSoKIG5sICAgICAgICAgICAgICBcbnxc
clxufFxyfFxmCitkcXVvdGUgICAgICAgICAgXCIKK3NxdW90ZSAgICAgICAgICBcJwogcmFuZ2Ug
ICAgICAgICAgIFw/ezEsNn18e2h9KFw/ezAsNX18e2h9KFw/ezAsNH18e2h9KFw/ezAsM318e2h9
KFw/ezAsMn18e2h9KFw/P3x7aH0pKSkpKQogbnRoICAgICAgICAgICAgICgtP1swLTldKm5bXCst
XVswLTldKyl8KC0/WzAtOV0qbikKIApAQCAtNDQsNyArNDksNTEgQEAgbnRoICAgICAgICAgICAg
ICgtP1swLTldKm5bXCstXVswLTldKyl8KC0/WzAtOV0qbikKIDxtZWRpYXF1ZXJ5PiJhbmQiICAg
ICAgIHt5eVRvayA9IE1FRElBX0FORDsgcmV0dXJuIHl5VG9rO30KIDxmb3JrZXl3b3JkPiJmb3Ii
ICAgICAgIHtCRUdJTihtZWRpYXF1ZXJ5KTsgeXlUb2sgPSBWQVJJQUJMRVNfRk9SOyByZXR1cm4g
eXlUb2s7IH0KIAote3N0cmluZ30gICAgICAgICAgICAgICAge3l5VG9rID0gU1RSSU5HOyByZXR1
cm4geXlUb2s7fQorPElOSVRJQUwsbWVkaWFxdWVyeSxmb3JrZXl3b3JkLHVyaT57CisgICAge2Rx
dW90ZX0gICAgICAgICAgICB7c3RyaW5nX2NhbGxlciA9IFlZX1NUQVJUOyBzdHJpbmdfb3JfdXJp
X2NvbnRlbnRfbGVuZ3RoID0gMDsgQkVHSU4oZHF1b3RlZF9zdHJpbmcpO30KKyAgICB7c3F1b3Rl
fSAgICAgICAgICAgIHtzdHJpbmdfY2FsbGVyID0gWVlfU1RBUlQ7IHN0cmluZ19vcl91cmlfY29u
dGVudF9sZW5ndGggPSAwOyBCRUdJTihzcXVvdGVkX3N0cmluZyk7fQorfQorPGRxdW90ZWRfc3Ry
aW5nPntkcXVvdGVkX2NvbnRlbnR9IHwKKzxzcXVvdGVkX3N0cmluZz57c3F1b3RlZF9jb250ZW50
fSB7c3RyaW5nX29yX3VyaV9jb250ZW50X2xlbmd0aCA9IHl5bGVuZzsgc3RyaW5nX29yX3VyaV9j
b250ZW50X29mZnNldCA9IC15eWxlbmc7IHl5bW9yZSgpO30KKzxkcXVvdGVkX3N0cmluZz57ZHF1
b3RlfSB8Cis8c3F1b3RlZF9zdHJpbmc+e3NxdW90ZX0geworICAgIEJFR0lOKHN0cmluZ19jYWxs
ZXIgPT0gdXJpID8gdXJpX3BlbmRpbmcgOiBzdHJpbmdfY2FsbGVyKTsKKyAgICBpZiAoc3RyaW5n
X2NhbGxlciA9PSB1cmkpIHsKKyAgICAgICAgc3RyaW5nX29yX3VyaV9jb250ZW50X29mZnNldCAt
PSB5eWxlbmc7CisgICAgICAgIHl5bW9yZSgpOworICAgIH0gZWxzZSB7CisgICAgICAgIHl5bGVu
ZyA9IHN0cmluZ19vcl91cmlfY29udGVudF9sZW5ndGg7CisgICAgICAgIHl5dGV4dCArPSBzdHJp
bmdfb3JfdXJpX2NvbnRlbnRfb2Zmc2V0OworICAgICAgICB5eVRvayA9IFNUUklORzsKKyAgICAg
ICAgcmV0dXJuIHl5VG9rOworICAgIH0KK30KKzxkcXVvdGVkX3N0cmluZyxzcXVvdGVkX3N0cmlu
Zz57bmx9fC4ge0JFR0lOKElOSVRJQUwpO30KKzw8RU9GPj4geworICAgIC8vIDxkcXVvdGVkX3N0
cmluZyxzcXVvdGVkX3N0cmluZz48PEVPRj4+IGRvZXNuJ3Qgd29yayBmb3Igc29tZSB1bmtub3du
IHJlYXNvbnMuIEhlbmNlIHRoZSB1c2Ugb2YgdGhlIHN3aXRjaCBiZWxvdy4KKyAgICBzd2l0Y2gg
KFlZX1NUQVJUKSB7CisgICAgY2FzZSB1cmk6CisgICAgY2FzZSBkcXVvdGVkX3N0cmluZzoKKyAg
ICBjYXNlIHNxdW90ZWRfc3RyaW5nOgorICAgIHsKKyAgICAgICAgeXlsZW5nLS07IC8vIFJlbW92
ZSB0aGUgJ1wwJyByZXByZXNlbnRpbmcgRU9GLgorICAgICAgICB5eVRvayA9IChzdHJpbmdfY2Fs
bGVyID09IHVyaSB8fCBZWV9TVEFSVCA9PSB1cmkpID8gVVJJIDogU1RSSU5HOworICAgICAgICBC
RUdJTihJTklUSUFMKTsKKyAgICAgICAgcmV0dXJuIHl5VG9rOworICAgIH0KKyAgICBjYXNlIHVy
aV9wZW5kaW5nOgorICAgIHsKKyAgICAgICAgeXlsZW5nID0gc3RyaW5nX29yX3VyaV9jb250ZW50
X2xlbmd0aDsKKyAgICAgICAgeXl0ZXh0ICs9IHN0cmluZ19vcl91cmlfY29udGVudF9vZmZzZXQ7
CisgICAgICAgIHl5VG9rID0gVVJJOworICAgICAgICBCRUdJTihJTklUSUFMKTsKKyAgICAgICAg
cmV0dXJuIHl5VG9rOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICB5eXRlcm1pbmF0ZSgp
OworICAgIH0KK30KKwoge2lkZW50fSAgICAgICAgICAgICAgICAge3l5VG9rID0gSURFTlQ7IHJl
dHVybiB5eVRvazt9CiB7bnRofSAgICAgICAgICAgICAgICAgICB7eXlUb2sgPSBOVEg7IHJldHVy
biB5eVRvazt9CiAKQEAgLTk2LDggKzE0NSwxNiBAQCBudGggICAgICAgICAgICAgKC0/WzAtOV0q
bltcKy1dWzAtOV0rKXwoLT9bMC05XSpuKQoge251bX0gICAgICAgICAgICAgICAgICAge3l5VG9r
ID0gRkxPQVRUT0tFTjsgcmV0dXJuIHl5VG9rO30KIAogIm5vdCgiICAgICAgICAgICAgICAgICAg
e3l5VG9rID0gTk9URlVOQ1RJT047IHJldHVybiB5eVRvazt9Ci0idXJsKCJ7d317c3RyaW5nfXt3
fSIpIiB7eXlUb2sgPSBVUkk7IHJldHVybiB5eVRvazt9Ci0idXJsKCJ7d317dXJsfXt3fSIpIiAg
ICB7eXlUb2sgPSBVUkk7IHJldHVybiB5eVRvazt9CisKKzxJTklUSUFMLG1lZGlhcXVlcnksZm9y
a2V5d29yZD4idXJsKCIge3VyaV9jYWxsZXIgPSBZWV9TVEFSVDsgQkVHSU4odXJpKTt9Cis8dXJp
Pnt3fSAgICAgICAgICAgICAgICB7LyogU2tpcCB3aGl0ZXNwYWNlICovfQorPHVyaT57dXJsfSAg
ICAgICAgICAgICAge0JFR0lOKHVyaV9wZW5kaW5nKTsgc3RyaW5nX29yX3VyaV9jb250ZW50X2xl
bmd0aCA9IHl5bGVuZzsgc3RyaW5nX29yX3VyaV9jb250ZW50X29mZnNldCA9IC15eWxlbmc7IHl5
bW9yZSgpO30KKzx1cmk+IikiICAgICAgICAgICAgICAgIHtCRUdJTih1cmlfY2FsbGVyKTsgeXls
ZW5nID0gMDsgeXlUb2sgPSBVUkk7IHJldHVybiB5eVRvazt9Cis8dXJpPi4gICAgICAgICAgICAg
ICAgICB7QkVHSU4odXJpX2NhbGxlcik7fQorPHVyaV9wZW5kaW5nPnt3fSAgICAgICAge3N0cmlu
Z19vcl91cmlfY29udGVudF9vZmZzZXQgLT0geXlsZW5nOyB5eW1vcmUoKTt9Cis8dXJpX3BlbmRp
bmc+IikiICAgICAgICB7QkVHSU4odXJpX2NhbGxlcik7IHl5bGVuZyA9IHN0cmluZ19vcl91cmlf
Y29udGVudF9sZW5ndGg7IHl5dGV4dCArPSBzdHJpbmdfb3JfdXJpX2NvbnRlbnRfb2Zmc2V0OyB5
eVRvayA9IFVSSTsgcmV0dXJuIHl5VG9rO30KKzx1cmlfcGVuZGluZz4uICAgICAgICAgIHtCRUdJ
Tih1cmlfY2FsbGVyKTt9CisKICItd2Via2l0LXZhcigie3d9e2lkZW50fXt3fSIpIiB7IHl5VG9r
ID0gVkFSQ0FMTDsgcmV0dXJuIHl5VG9rOyB9CiB7aWRlbnR9IigiICAgICAgICAgICAgICB7eXlU
b2sgPSBGVU5DVElPTjsgcmV0dXJuIHl5VG9rO30KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52812</attachid>
            <date>2010-04-07 17:49:03 -0700</date>
            <delta_ts>2010-04-07 17:52:55 -0700</delta_ts>
            <desc>Fix unclosed string/url handling.</desc>
            <filename>bug-34067-20100408094901.patch</filename>
            <type>text/plain</type>
            <size>23592</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NDNmZmFkLi5kMGRmMDlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MDcgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgV2ViS2l0IHByb3Blcmx5IGhhbmRs
ZSB1bmNsb3NlZCBzdHJpbmcvdXJsIGF0IHRoZSBlbmQgb2YgYSBzdHlsZSBzaGVldCwKKyAgICAg
ICAgYXMgRmlyZWZveCAzLjYgYW5kIE9wZXJhIDEwLjEwIGRvZXMuCisgICAgICAgIE5vdGUgdGhh
dCBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5odG1sIHdhcyBjaGFu
Z2VkIGJlY2F1c2UgaXQgaGFkIGNvbnRhaW5lZCB3cm9uZyBxdW90ZXMuCisgICAgICAgIFNlZSBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwNjcjYzI5LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwNjcKKworICAgICAg
ICAqIGZhc3QvY3NzL2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWw6CisgICAgICAgICogZmFzdC9j
c3MvcGFyc2luZy11bmNsb3NlZC1zdHJpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy5odG1sOiBBZGRlZC4KKwogMjAxMC0w
NC0wMSAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250
X3Byb3BlcnR5X25vcm1hbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udF9wcm9wZXJ0
eV9ub3JtYWwuaHRtbAppbmRleCAyY2ZiMzQ3Li5jNDdmZWJlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWwKQEAgLTMsMTEgKzMsMTEgQEAKIDxI
RUFEPgogPFRJVExFPlRlc3RpbmcgdmFsaWQgZm9udCBwcm9wZXJ0eSBzcGVjaWZpY2F0aW9uPC9U
SVRMRT4KIDxTVFlMRSB0eXBlPSJ0ZXh0L2NzcyI+Ci0ub25lIHtmb250OiAyNHB0IGl0YWxpYzsi
fQorLm9uZSB7Zm9udDogMjRwdCBpdGFsaWM7fQogLnR3byB7Zm9udDogMjRwdCBpdGFsaWMgQXJp
YWw7fQogLnRocmVlIHtmb250OiAyNHB0IGl0YWxpYyAnQXJpYWwnO30KIC5mb3VyIHtmb250OiBp
dGFsaWMgMjRwdDt9Ci0uZml2ZSB7Zm9udDogaXRhbGljIDI0cHQgQXJpYWw7In0KKy5maXZlIHtm
b250OiBpdGFsaWMgMjRwdCBBcmlhbDt9CiAuc2l4IHtmb250OiBpdGFsaWMgMjRwdCAnQXJpYWwn
O30KIC5zZXZlbiB7Zm9udDogQXJpYWwgMjRwdCBpdGFsaWM7fQogLmVpZ2h0IHtmb250OiAnQXJp
YWwnIDI0cHQgaXRhbGljO30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNp
bmctdW5jbG9zZWQtc3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Bh
cnNpbmctdW5jbG9zZWQtc3RyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4xZWJmZjIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvcGFyc2luZy11bmNsb3NlZC1zdHJpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsODQg
QEAKK1Rlc3RzIGlmIHVuY2xvc2VkIHN0cmluZ3MgYXJlIHBhcnNlZCBwcm9wZXJseS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3QgMShyZWYpIFRlc3QgMSh0ZXN0KSAKK1Rl
c3QgMihyZWYpIFRlc3QgMih0ZXN0KSAKK1Rlc3QgMyhyZWYpIFRlc3QgMyh0ZXN0KSAKK1Rlc3Qg
NChyZWYpIFRlc3QgNCh0ZXN0KSAKK1Rlc3QgNShyZWYpIFRlc3QgNSh0ZXN0KSAKK1Rlc3QgNihy
ZWYpIFRlc3QgNih0ZXN0KSAKK1Rlc3QgNyhyZWYpIFRlc3QgNyh0ZXN0KSAKK1Rlc3QgOChyZWYp
IFRlc3QgOCh0ZXN0KSAKK1Rlc3QgOShyZWYpIFRlc3QgOSh0ZXN0KSAKK1Rlc3QgMTAocmVmKSBU
ZXN0IDEwKHRlc3QpIAorVGVzdCAxMShyZWYpIFRlc3QgMTEodGVzdCkgCitUZXN0IDEyKHJlZikg
VGVzdCAxMih0ZXN0KSAKK1Rlc3QgMTMocmVmKSBUZXN0IDEzKHRlc3QpIAorVGVzdCAxNChyZWYp
IFRlc3QgMTQodGVzdCkgCitUZXN0IDE1KHJlZikgVGVzdCAxNSh0ZXN0KSAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxLXRlc3QnLCAnZm9u
dC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BB
U1MgZ2V0UHJvcGVydHkoJ3Rlc3QxLXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0
eSgndGVzdDEtcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxLXRl
c3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEtcmVmJywgJ2NvbG9yJykKK1BBU1Mg
Z2V0UHJvcGVydHkoJ3Rlc3QxLXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3Bl
cnR5KCd0ZXN0MS1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0
ZXN0Mi10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QyLXJlZicsICdm
b250LWZhbWlseScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0Mi10ZXN0JywgJ2ZvbnQtd2VpZ2h0
JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QyLXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFBy
b3BlcnR5KCd0ZXN0Mi10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QyLXJlZics
ICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0Mi10ZXN0JywgJ2JhY2tncm91bmQtaW1h
Z2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDItcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFT
UyBnZXRQcm9wZXJ0eSgndGVzdDMtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5
KCd0ZXN0My1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDMtdGVz
dCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0My1yZWYnLCAnZm9udC13ZWln
aHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDMtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3Bl
cnR5KCd0ZXN0My1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDMtdGVzdCcs
ICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QzLXJlZicsICdiYWNrZ3Jv
dW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q0LXRlc3QnLCAnZm9udC1mYW1pbHkn
KSBpcyBnZXRQcm9wZXJ0eSgndGVzdDQtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJv
cGVydHkoJ3Rlc3Q0LXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDQt
cmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q0LXRlc3QnLCAnY29s
b3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDQtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVy
dHkoJ3Rlc3Q0LXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0
NC1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0NS10ZXN0
JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q1LXJlZicsICdmb250LWZhbWls
eScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0NS10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0
UHJvcGVydHkoJ3Rlc3Q1LXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0
ZXN0NS10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q1LXJlZicsICdjb2xvcicp
CitQQVNTIGdldFByb3BlcnR5KCd0ZXN0NS10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBn
ZXRQcm9wZXJ0eSgndGVzdDUtcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9w
ZXJ0eSgndGVzdDYtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0Ni1y
ZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDYtdGVzdCcsICdmb250
LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0Ni1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFT
UyBnZXRQcm9wZXJ0eSgndGVzdDYtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0
Ni1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDYtdGVzdCcsICdiYWNrZ3Jv
dW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q2LXJlZicsICdiYWNrZ3JvdW5kLWltYWdl
JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q3LXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQ
cm9wZXJ0eSgndGVzdDctcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rl
c3Q3LXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDctcmVmJywgJ2Zv
bnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q3LXRlc3QnLCAnY29sb3InKSBpcyBn
ZXRQcm9wZXJ0eSgndGVzdDctcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q3
LXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0Ny1yZWYnLCAn
YmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0OC10ZXN0JywgJ2ZvbnQt
ZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q4LXJlZicsICdmb250LWZhbWlseScpCitQQVNT
IGdldFByb3BlcnR5KCd0ZXN0OC10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHko
J3Rlc3Q4LXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0OC10ZXN0
JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q4LXJlZicsICdjb2xvcicpCitQQVNTIGdl
dFByb3BlcnR5KCd0ZXN0OC10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0
eSgndGVzdDgtcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVz
dDktdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0OS1yZWYnLCAnZm9u
dC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDktdGVzdCcsICdmb250LXdlaWdodCcp
IGlzIGdldFByb3BlcnR5KCd0ZXN0OS1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9w
ZXJ0eSgndGVzdDktdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0OS1yZWYnLCAn
Y29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDktdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdl
JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q5LXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKK1BBU1Mg
Z2V0UHJvcGVydHkoJ3Rlc3QxMC10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHko
J3Rlc3QxMC1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEwLXRl
c3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEwLXJlZicsICdmb250LXdl
aWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTAtdGVzdCcsICdjb2xvcicpIGlzIGdldFBy
b3BlcnR5KCd0ZXN0MTAtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMC10
ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEwLXJlZicsICdi
YWNrZ3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMS10ZXN0JywgJ2ZvbnQt
ZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMS1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFT
UyBnZXRQcm9wZXJ0eSgndGVzdDExLXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0
eSgndGVzdDExLXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTEt
dGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTEtcmVmJywgJ2NvbG9yJykKK1BB
U1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMS10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQ
cm9wZXJ0eSgndGVzdDExLXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVy
dHkoJ3Rlc3QxMi10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMi1y
ZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEyLXRlc3QnLCAnZm9u
dC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEyLXJlZicsICdmb250LXdlaWdodCcpCitQ
QVNTIGdldFByb3BlcnR5KCd0ZXN0MTItdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0
ZXN0MTItcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMi10ZXN0JywgJ2Jh
Y2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEyLXJlZicsICdiYWNrZ3JvdW5k
LWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMy10ZXN0JywgJ2ZvbnQtZmFtaWx5Jykg
aXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMy1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9w
ZXJ0eSgndGVzdDEzLXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEz
LXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTMtdGVzdCcsICdj
b2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTMtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJv
cGVydHkoJ3Rlc3QxMy10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgn
dGVzdDEzLXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Qx
NC10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxNC1yZWYnLCAnZm9u
dC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDE0LXRlc3QnLCAnZm9udC13ZWlnaHQn
KSBpcyBnZXRQcm9wZXJ0eSgndGVzdDE0LXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFBy
b3BlcnR5KCd0ZXN0MTQtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTQtcmVm
JywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxNC10ZXN0JywgJ2JhY2tncm91bmQt
aW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDE0LXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykK
K1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxNS10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJv
cGVydHkoJ3Rlc3QxNS1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVz
dDE1LXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDE1LXJlZicsICdm
b250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTUtdGVzdCcsICdjb2xvcicpIGlz
IGdldFByb3BlcnR5KCd0ZXN0MTUtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rl
c3QxNS10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDE1LXJl
ZicsICdiYWNrZ3JvdW5kLWltYWdlJykKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmNsb3NlZC1zdHJpbmcuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMmYzMzRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmNsb3NlZC1zdHJpbmcuaHRtbApAQCAtMCwwICsxLDE5
MCBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyog
eworICAgIGNvbG9yOiBibGFjazsKKyAgICBmb250LWZhbWlseTogJ0NvdXJpZXInOworICAgIGZv
bnQtd2VpZ2h0OiBub3JtYWw7Cit9Cis8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3Mi
PgorI3Rlc3QxLXJlZiB7CisgICAgZm9udC1mYW1pbHk6ICdJbXBhY3QnOworfQorI3Rlc3QxLXRl
c3QgeworICAgIGZvbnQtZmFtaWx5OiAnSW1wXAorYWN0JzsKK30KKzwvc3R5bGU+CisKKzxzdHls
ZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDItcmVmIHsKKyAgICBmb250LXdlaWdodDogYm9sZDsK
K30KKyN0ZXN0Mi10ZXN0IHsKKyAgICBmb250LWZhbWlseTogJ0ltcGFjdAorICAgIGNvbG9yOnJl
ZDsKKyAgICBmb250LXdlaWdodDogYm9sZDsKK30KKzwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0
ZXh0L2NzcyI+CisjdGVzdDMtcmVmIHsKKyAgICBjb2xvcjpncmF5OworICAgIGZvbnQtZmFtaWx5
OiAnSW1wYWN0JzsKK30KKyN0ZXN0My10ZXN0IHsKKyAgICBjb2xvcjpncmF5OworICAgIGZvbnQt
ZmFtaWx5OiAnSW1wYWN0PC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0
NC1yZWYgeworICAgIGNvbG9yOmJsdWU7Cit9CisjdGVzdDQtdGVzdCB7CisgICAgY29sb3I6Ymx1
ZTsKKyAgICBmb250LWZhbWlseTogJ0ltcGFjdAorPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRl
eHQvY3NzIj4KKyN0ZXN0NS1yZWYgeworICAgIGNvbG9yOm1hcm9vbjsKK30KKyN0ZXN0NS10ZXN0
IHsKKyAgICBjb2xvcjptYXJvb247CisgICAgZm9udC1mYW1pbHk6ICJJbXBhY3QIPC9zdHlsZT4K
KworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0Ni1yZWYgeworICAgIGNvbG9yOnRlYWw7
Cit9Cis8L3N0eWxlPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK0BpbXBvcnQgdXJsKCdkYXRh
OnRleHQvY3NzLCN0ZXN0Ni10ZXN0e2NvbG9yOnRlYWw7fScpOworPC9zdHlsZT4KKworPHN0eWxl
IHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0Ny1yZWYgeworICAgIGNvbG9yOm9saXZlOworfQorPC9z
dHlsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitAaW1wb3J0IHVybCggJ2RhdGE6dGV4dC9j
c3MsI3Rlc3Q3LXRlc3R7Y29sb3I6b2xpdmU7fScgKTsKKzwvc3R5bGU+CisKKzxzdHlsZSB0eXBl
PSJ0ZXh0L2NzcyI+CisjdGVzdDgtcmVmIHsKK30KKzwvc3R5bGU+Cis8c3R5bGUgdHlwZT0idGV4
dC9jc3MiPgorQGltcG9ydCB1cmwoJ2RhdGE6dGV4dC9jc3MsI3Rlc3Q4LXRlc3R7Y29sb3I6cHVy
cGxlO30nZXh0cmEpOworPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0
OS1yZWYgeworfQorPC9zdHlsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitAaW1wb3J0IHVy
bChleHRyYSdkYXRhOnRleHQvY3NzLCN0ZXN0OS10ZXN0e2NvbG9yOnB1cnBsZTt9Jyk7Cis8L3N0
eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QxMC1yZWYgeworICAgIGJhY2tn
cm91bmQtaW1hZ2U6IHVybCgncmVzb3VyY2VzL2dyZWVuYm94LnBuZycpOworfQorI3Rlc3QxMC10
ZXN0IHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9ncmVlbmJveC5wbmcn
Cis8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QxMS1yZWYgeworICAg
IGJhY2tncm91bmQtaW1hZ2U6IHVybCgncmVzb3VyY2VzL3B1cnBsZS1ub3Byb2ZpbGUucG5nJyk7
Cit9CisjdGVzdDExLXRlc3QgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgncmVzb3VyY2Vz
L3B1cnBsZS1ub3Byb2ZpbGUucG5nPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4K
KyN0ZXN0MTItcmVmIHsKK30KKyN0ZXN0MTItdGVzdCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTog
dXJsKCdyZXNvdXJjZXMvZ3JlZW5ib3gucG5nCis8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4
dC9jc3MiPgorI3Rlc3QxMy1yZWYgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJj
ZXMvZ3JlZW5ib3gucG5nKTsKK30KKyN0ZXN0MTMtdGVzdCB7CisgICAgYmFja2dyb3VuZC1pbWFn
ZTogdXJsKHJlc291cmNlcy9ncmVlbmJveC5wbmcKKzwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0
ZXh0L2NzcyI+CisjdGVzdDE0LXJlZiB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291
cmNlcy9wdXJwbGUtbm9wcm9maWxlLnBuZyk7Cit9CisjdGVzdDE0LXRlc3QgeworICAgIGJhY2tn
cm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvcHVycGxlLW5vcHJvZmlsZS5wbmc8L3N0eWxlPgor
Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QxNS1yZWYgeworfQorI3Rlc3QxNS10ZXN0
IHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2dyZWVuYm94LnBuZyBleHRh
cmEpOworfQorPC9zdHlsZT4KKworPHNjcmlwdD4KK3ZhciBudW1UZXN0ID0gMTU7CisKK2Z1bmN0
aW9uIGdldFByb3BlcnR5KGVsZW1lbnRJZCwgbmFtZSkKK3sKKyAgICByZXR1cm4gd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKSkuZ2V0UHJv
cGVydHlWYWx1ZShuYW1lKTsKK30KKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBkZXNjcmlwdGlv
bigiVGVzdHMgaWYgdW5jbG9zZWQgc3RyaW5ncyBhcmUgcGFyc2VkIHByb3Blcmx5LiIpOworICAg
IHNob3VsZEJlVHJ1ZSgic3VjY2Vzc2Z1bGx5UGFyc2VkIik7CisKKyAgICBmb3IgKHZhciBpID0g
MTsgaSA8PSBudW1UZXN0OyBpKyspIHsKKyAgICAgICAgc2hvdWxkQmUoImdldFByb3BlcnR5KCd0
ZXN0IiArIGkgKyAiLXRlc3QnLCAnZm9udC1mYW1pbHknKSIsICJnZXRQcm9wZXJ0eSgndGVzdCIg
KyBpICsgIi1yZWYnLCAnZm9udC1mYW1pbHknKSIpOworICAgICAgICBzaG91bGRCZSgiZ2V0UHJv
cGVydHkoJ3Rlc3QiICsgaSArICItdGVzdCcsICdmb250LXdlaWdodCcpIiwgImdldFByb3BlcnR5
KCd0ZXN0IiArIGkgKyAiLXJlZicsICdmb250LXdlaWdodCcpIik7CisgICAgICAgIHNob3VsZEJl
KCJnZXRQcm9wZXJ0eSgndGVzdCIgKyBpICsgIi10ZXN0JywgJ2NvbG9yJykiLCAgICAgICAiZ2V0
UHJvcGVydHkoJ3Rlc3QiICsgaSArICItcmVmJywgJ2NvbG9yJykiKTsKKyAgICAgICAgc2hvdWxk
QmUoImdldFByb3BlcnR5KCd0ZXN0IiArIGkgKyAiLXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScp
IiwgICAgICAgImdldFByb3BlcnR5KCd0ZXN0IiArIGkgKyAiLXJlZicsICdiYWNrZ3JvdW5kLWlt
YWdlJykiKTsKKyAgICB9CisKKyAgICBkZWJ1ZygnPGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRF
U1QgQ09NUExFVEU8L3NwYW4+Jyk7Cit9CisKKzwvc2NyaXB0PgorCis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InRlc3QoKSI+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxoci8+Cis8ZGl2IGlk
PSJ0ZXN0LWVsZW1lbnRzIj4KKzwvZGl2PgorPGhyLz4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgordmFyIHRlc3RFbGVtZW50cyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0LWVsZW1lbnRzIik7CisKK2ZvciAodmFyIGkgPSAx
OyBpIDw9IG51bVRlc3Q7IGkrKykgeworICAgIHZhciByZWZFbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgic3BhbiIpOworICAgIHZhciB0ZXN0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKTsKKyAgICByZWZFbGVtZW50LmlubmVySFRNTCA9ICJUZXN0ICIgKyBp
ICsgIihyZWYpICI7CisgICAgdGVzdEVsZW1lbnQuaW5uZXJIVE1MID0gIlRlc3QgIiArIGkgKyAi
KHRlc3QpICI7CisgICAgcmVmRWxlbWVudC5pZCA9ICJ0ZXN0IiArIGkgKyAiLXJlZiI7CisgICAg
dGVzdEVsZW1lbnQuaWQgPSAidGVzdCIgKyBpICsgIi10ZXN0IjsKKyAgICB0ZXN0RWxlbWVudHMu
YXBwZW5kQ2hpbGQocmVmRWxlbWVudCk7CisgICAgdGVzdEVsZW1lbnRzLmFwcGVuZENoaWxkKHRl
c3RFbGVtZW50KTsKKworICAgIHRlc3RFbGVtZW50cy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJiciIpKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTg1YjgyOC4uZTZhMGYzMSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBA
QAorMjAxMC0wMi0wNyAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBXZWJLaXQgcHJv
cGVybHkgaGFuZGxlIHVuY2xvc2VkIHN0cmluZy91cmwgYXQgdGhlIGVuZCBvZiBhIHN0eWxlIHNo
ZWV0LAorICAgICAgICBhcyBGaXJlZm94IDMuNiBhbmQgT3BlcmEgMTAuMTAgZG9lcy4KKworICAg
ICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9DU1MyMS9zeW5kYXRhLmh0bWwjcGFyc2luZy1lcnJv
cnMgc3BlY2lmaWVzIGhvdyB1bmNsb3NlZCBzdHJpbmdzIG11c3QgYmUgaGFuZGxlZC4KKyAgICAg
ICAgV2l0aG91dCB0aGlzIHBhdGNoLCBXZWJLaXQgaWdub3JlcyB1bmNsb3NlZCBzdHJpbmdzL3Vy
bHMgYXQgdGhlIGVuZCBvZiBzdHlsZXNoZWV0LgorICAgICAgICBUaGlzIHBhdGNoIHNvbHZlcyB0
aGUgYWJvdmUgaXNzdWUgYnkgdHJhY2tpbmcgb3BlbmluZyBxdW90ZXMvYnJhY2VzIHNlcGFyYXRl
bHkgZnJvbSBjbG9zaW5nIG9uZXMuCisgICAgICAgIEF0IHRoZSBlbmQgb2YgYSBmaWxlLCB0aGUg
cGVuZGluZyBzdHJpbmcvdXJsLCBpZiBhbnksIGlzIGZsdXNoZWQgYXMgYSB0b2tlbi4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwNjcKKworICAg
ICAgICBUZXN0OiBmYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy5odG1sCisKKyAgICAg
ICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6dGV4
dCk6CisgICAgICAgICogY3NzL21ha2V0b2tlbml6ZXI6CisgICAgICAgICogY3NzL3Rva2VuaXpl
ci5mbGV4OgorCiAyMDEwLTA0LTA2ICBFdmFuIFN0YWRlICA8ZXN0YWRlQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAw
NGE4ODU1Li40YjY0OGE0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisr
KyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTE0Myw2ICsxNDMsMTIgQEAgQ1NTUGFy
c2VyOjpDU1NQYXJzZXIoYm9vbCBzdHJpY3RQYXJzaW5nKQogICAgICwgbV9kZWZhdWx0TmFtZXNw
YWNlKHN0YXJBdG9tKQogICAgICwgbV9kYXRhKDApCiAgICAgLCB5eV9zdGFydCgxKQorICAgICwg
eXlfbW9yZV9mbGFnKDApCisgICAgLCB5eV9tb3JlX2xlbigwKQorICAgICwgc3RyaW5nUHJlU3Rh
dGUoMCkgLy8gMDogSU5JVElBTCBzdGF0ZQorICAgICwgdXJpUHJlU3RhdGUoMCkgLy8gMDogSU5J
VElBTCBzdGF0ZQorICAgICwgc3RyaW5nT3JVcmlDb250ZW50TGVuZ3RoKDApCisgICAgLCBzdHJp
bmdPclVyaUNvbnRlbnRPZmZzZXQoMCkKICAgICAsIG1fbGluZSgwKQogICAgICwgbV9sYXN0U2Vs
ZWN0b3JMaW5lKDApCiAgICAgLCBtX2FsbG93SW1wb3J0UnVsZXModHJ1ZSkKQEAgLTQ3OTYsMzEg
KzQ4MDIsMTMgQEAgVUNoYXIqIENTU1BhcnNlcjo6dGV4dChpbnQgKmxlbmd0aCkKICAgICBpbnQg
bCA9IHl5bGVuZzsKICAgICBzd2l0Y2ggKHl5VG9rKSB7CiAgICAgY2FzZSBTVFJJTkc6Ci0gICAg
ICAgIGwtLTsKLSAgICAgICAgLyogbm9icmVhayAqLworICAgICAgICBicmVhazsKICAgICBjYXNl
IEhFWDoKICAgICBjYXNlIElEU0VMOgogICAgICAgICBzdGFydCsrOwogICAgICAgICBsLS07CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgVVJJOgotICAgICAgICAvLyAidXJsKCJ7d317c3RyaW5n
fXt3fSIpIgotICAgICAgICAvLyAidXJsKCJ7d317dXJsfXt3fSIpIgotICAgICAgICAvLyBzdHJp
cCAidXJsKCIgYW5kICIpIgotICAgICAgICBzdGFydCArPSA0OwotICAgICAgICBsIC09IDU7Ci0g
ICAgICAgIC8vIHN0cmlwIHt3fQotICAgICAgICB3aGlsZSAobCAmJiBpc0NTU1doaXRlc3BhY2Uo
KnN0YXJ0KSkgewotICAgICAgICAgICAgKytzdGFydDsKLSAgICAgICAgICAgIC0tbDsKLSAgICAg
ICAgfQotICAgICAgICB3aGlsZSAobCAmJiBpc0NTU1doaXRlc3BhY2Uoc3RhcnRbbCAtIDFdKSkK
LSAgICAgICAgICAgIC0tbDsKLSAgICAgICAgaWYgKGwgJiYgKCpzdGFydCA9PSAnIicgfHwgKnN0
YXJ0ID09ICdcJycpKSB7Ci0gICAgICAgICAgICBBU1NFUlQobCA+PSAyICYmIHN0YXJ0W2wgLSAx
XSA9PSAqc3RhcnQpOwotICAgICAgICAgICAgKytzdGFydDsKLSAgICAgICAgICAgIGwgLT0gMjsK
LSAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNlIFZBUkNBTEw6CiAgICAgICAgIC8v
ICItd2Via2l0LXZhcigie3d9e2lkZW50fXt3fSIpIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmggYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCBjYThjNjZhLi43NjUz
OTlkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuaApAQCAtMjQ3LDYgKzI0Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgICAgICB2b2lkIGRlbGV0ZUZvbnRGYWNlT25seVZhbHVlcygpOwogCisgICAgICAgIHZvaWQg
eXltb3JlKCkgeyh5eV9tb3JlX2ZsYWcpID0gMTsgLyogQ29waWVkIGZyb20gZmxleCBvdXB1dC4g
Ki99CisKICAgICAgICAgVUNoYXIqIG1fZGF0YTsKICAgICAgICAgVUNoYXIqIHl5dGV4dDsKICAg
ICAgICAgVUNoYXIqIHl5X2NfYnVmX3A7CkBAIC0yNTYsNiArMjU4LDE0IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgaW50IHl5bGVuZzsKICAgICAgICAgaW50IHl5VG9rOwogICAgICAg
ICBpbnQgeXlfc3RhcnQ7CisgICAgICAgIGludCB5eV9tb3JlX2ZsYWc7CisgICAgICAgIGludCB5
eV9tb3JlX2xlbjsKKworICAgICAgICBpbnQgc3RyaW5nUHJlU3RhdGU7CisgICAgICAgIGludCB1
cmlQcmVTdGF0ZTsKKyAgICAgICAgaW50IHN0cmluZ09yVXJpQ29udGVudExlbmd0aDsKKyAgICAg
ICAgaW50IHN0cmluZ09yVXJpQ29udGVudE9mZnNldDsKKwogICAgICAgICBpbnQgbV9saW5lOwog
ICAgICAgICBpbnQgbV9sYXN0U2VsZWN0b3JMaW5lOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nz
cy9tYWtldG9rZW5pemVyIGIvV2ViQ29yZS9jc3MvbWFrZXRva2VuaXplcgppbmRleCA5MGQ1ZmNi
Li42Nzc2YWE2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9tYWtldG9rZW5pemVyCisrKyBiL1dl
YkNvcmUvY3NzL21ha2V0b2tlbml6ZXIKQEAgLTQ3LDggKzQ3LDE1IEBAIHByaW50PDxFTkQKICNp
bmNsdWRlICJDU1NHcmFtbWFyLmgiCiAKICNkZWZpbmUgSU5JVElBTCAwCi0jZGVmaW5lIG1lZGlh
cXVlcnkgMQotI2RlZmluZSBmb3JrZXl3b3JkIDIKKyNkZWZpbmUgbWVkaWFRdWVyeVN0YXRlIDEK
KyNkZWZpbmUgZm9yS2V5d29yZFN0YXRlIDIKKyNkZWZpbmUgZG91YmxlUXVvdGVkU3RyaW5nU3Rh
dGUgMworI2RlZmluZSBzaW5nbGVRdW90ZWRTdHJpbmdTdGF0ZSA0CisjZGVmaW5lIHVyaVN0YXRl
IDUKKyNkZWZpbmUgdXJpUGVuZGluZ1N0YXRlIDYKKworI2RlZmluZSBZWV9TVEFSVCAoKCh5eV9z
dGFydCkgLSAxKSAvIDIpCisjZGVmaW5lIHl5dGV4dF9wdHIgeXl0ZXh0CiAKIC8qIEM5OSBzeXN0
ZW1zIGhhdmUgPGludHR5cGVzLmg+LiBOb24tQzk5IHN5c3RlbXMgbWF5IG9yIG1heSBub3QuICov
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4IGIvV2ViQ29yZS9jc3Mv
dG9rZW5pemVyLmZsZXgKaW5kZXggM2FmNzI1Yy4uZGNhZGYzYyAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9jc3MvdG9rZW5pemVyLmZsZXgKKysrIGIvV2ViQ29yZS9jc3MvdG9rZW5pemVyLmZsZXgKQEAg
LTIsOCArMiwxMiBAQAogJW9wdGlvbiBub3l5d3JhcAogJW9wdGlvbiA4Yml0CiAlb3B0aW9uIHN0
YWNrCi0lcyBtZWRpYXF1ZXJ5Ci0lcyBmb3JrZXl3b3JkCislcyBtZWRpYVF1ZXJ5U3RhdGUKKyVz
IGZvcktleXdvcmRTdGF0ZQorJXggZG91YmxlUXVvdGVkU3RyaW5nU3RhdGUKKyV4IHNpbmdsZVF1
b3RlZFN0cmluZ1N0YXRlCisleCB1cmlTdGF0ZQorJXggdXJpUGVuZGluZ1N0YXRlCiAKIGggICAg
ICAgICAgICAgICBbMC05YS1mQS1GXQogbm9uYXNjaWkgICAgICAgIFtcMjAwLVwzNzddCkBAIC0x
MSwxOCArMTUsMTkgQEAgdW5pY29kZSAgICAgICAgIFxce2h9ezEsNn1bIFx0XHJcblxmXT8KIGVz
Y2FwZSAgICAgICAgICB7dW5pY29kZX18XFxbIC1+XDIwMC1cMzc3XQogbm1zdGFydCAgICAgICAg
IFtfYS16QS1aXXx7bm9uYXNjaWl9fHtlc2NhcGV9CiBubWNoYXIgICAgICAgICAgW19hLXpBLVow
LTktXXx7bm9uYXNjaWl9fHtlc2NhcGV9Ci1zdHJpbmcxICAgICAgICAgXCIoW1x0ICEjJCUmKC1+
XXxcXHtubH18XCd8e25vbmFzY2lpfXx7ZXNjYXBlfSkqXCIKLXN0cmluZzIgICAgICAgICBcJyhb
XHQgISMkJSYoLX5dfFxce25sfXxcInx7bm9uYXNjaWl9fHtlc2NhcGV9KSpcJworZHF1b3RlZF9j
b250ZW50IChbXHQgISMkJSYoLX5dfFxce25sfXxcJ3x7bm9uYXNjaWl9fHtlc2NhcGV9KSoKK3Nx
dW90ZWRfY29udGVudCAoW1x0ICEjJCUmKC1+XXxcXHtubH18XCJ8e25vbmFzY2lpfXx7ZXNjYXBl
fSkqCiBoZXhjb2xvciAgICAgICAge2h9ezN9fHtofXs2fQogCiBpZGVudCAgICAgICAgICAgLT97
bm1zdGFydH17bm1jaGFyfSoKIG5hbWUgICAgICAgICAgICB7bm1jaGFyfSsKIG51bSAgICAgICAg
ICAgICBbMC05XSt8WzAtOV0qIi4iWzAtOV0rCiBpbnRudW0gICAgICAgICAgWzAtOV0rCi1zdHJp
bmcgICAgICAgICAge3N0cmluZzF9fHtzdHJpbmcyfQogdXJsICAgICAgICAgICAgIChbISMkJSYq
LX5dfHtub25hc2NpaX18e2VzY2FwZX0pKgogdyAgICAgICAgICAgICAgIFsgXHRcclxuXGZdKgog
bmwgICAgICAgICAgICAgIFxufFxyXG58XHJ8XGYKK2RxdW90ZSAgICAgICAgICBcIgorc3F1b3Rl
ICAgICAgICAgIFwnCiByYW5nZSAgICAgICAgICAgXD97MSw2fXx7aH0oXD97MCw1fXx7aH0oXD97
MCw0fXx7aH0oXD97MCwzfXx7aH0oXD97MCwyfXx7aH0oXD8/fHtofSkpKSkpCiBudGggICAgICAg
ICAgICAgW1wrLV0/e2ludG51bX0qbihbXCstXXtpbnRudW19KT8KIApAQCAtMzksMzEgKzQ0LDc1
IEBAIG50aCAgICAgICAgICAgICBbXCstXT97aW50bnVtfSpuKFtcKy1de2ludG51bX0pPwogIl49
IiAgICAgICAgICAgICAgICAgICAge3l5VG9rID0gQkVHSU5TV0lUSDsgcmV0dXJuIHl5VG9rO30K
ICIkPSIgICAgICAgICAgICAgICAgICAgIHt5eVRvayA9IEVORFNXSVRIOyByZXR1cm4geXlUb2s7
fQogIio9IiAgICAgICAgICAgICAgICAgICAge3l5VG9rID0gQ09OVEFJTlM7IHJldHVybiB5eVRv
azt9Ci08bWVkaWFxdWVyeT4ibm90IiAgICAgICB7eXlUb2sgPSBNRURJQV9OT1Q7IHJldHVybiB5
eVRvazt9Ci08bWVkaWFxdWVyeT4ib25seSIgICAgICB7eXlUb2sgPSBNRURJQV9PTkxZOyByZXR1
cm4geXlUb2s7fQotPG1lZGlhcXVlcnk+ImFuZCIgICAgICAge3l5VG9rID0gTUVESUFfQU5EOyBy
ZXR1cm4geXlUb2s7fQotPGZvcmtleXdvcmQ+ImZvciIgICAgICAge0JFR0lOKG1lZGlhcXVlcnkp
OyB5eVRvayA9IFZBUklBQkxFU19GT1I7IHJldHVybiB5eVRvazsgfQorPG1lZGlhUXVlcnlTdGF0
ZT4ibm90IiAgICAgICB7eXlUb2sgPSBNRURJQV9OT1Q7IHJldHVybiB5eVRvazt9Cis8bWVkaWFR
dWVyeVN0YXRlPiJvbmx5IiAgICAgIHt5eVRvayA9IE1FRElBX09OTFk7IHJldHVybiB5eVRvazt9
Cis8bWVkaWFRdWVyeVN0YXRlPiJhbmQiICAgICAgIHt5eVRvayA9IE1FRElBX0FORDsgcmV0dXJu
IHl5VG9rO30KKzxmb3JLZXl3b3JkU3RhdGU+ImZvciIgICAgICAge0JFR0lOKG1lZGlhUXVlcnlT
dGF0ZSk7IHl5VG9rID0gVkFSSUFCTEVTX0ZPUjsgcmV0dXJuIHl5VG9rOyB9CisKKzxJTklUSUFM
LG1lZGlhUXVlcnlTdGF0ZSxmb3JLZXl3b3JkU3RhdGUsdXJpU3RhdGU+eworICAgIHtkcXVvdGV9
ICAgICAgICAgICAge3N0cmluZ1ByZVN0YXRlID0gWVlfU1RBUlQ7IHN0cmluZ09yVXJpQ29udGVu
dExlbmd0aCA9IDA7IEJFR0lOKGRvdWJsZVF1b3RlZFN0cmluZ1N0YXRlKTt9CisgICAge3NxdW90
ZX0gICAgICAgICAgICB7c3RyaW5nUHJlU3RhdGUgPSBZWV9TVEFSVDsgc3RyaW5nT3JVcmlDb250
ZW50TGVuZ3RoID0gMDsgQkVHSU4oc2luZ2xlUXVvdGVkU3RyaW5nU3RhdGUpO30KK30KKzxkb3Vi
bGVRdW90ZWRTdHJpbmdTdGF0ZT57ZHF1b3RlZF9jb250ZW50fSB8Cis8c2luZ2xlUXVvdGVkU3Ry
aW5nU3RhdGU+e3NxdW90ZWRfY29udGVudH0ge3N0cmluZ09yVXJpQ29udGVudExlbmd0aCA9IHl5
bGVuZzsgc3RyaW5nT3JVcmlDb250ZW50T2Zmc2V0ID0gLXl5bGVuZzsgeXltb3JlKCk7fQorPGRv
dWJsZVF1b3RlZFN0cmluZ1N0YXRlPntkcXVvdGV9IHwKKzxzaW5nbGVRdW90ZWRTdHJpbmdTdGF0
ZT57c3F1b3RlfSB7CisgICAgQkVHSU4oc3RyaW5nUHJlU3RhdGUgPT0gdXJpU3RhdGUgPyB1cmlQ
ZW5kaW5nU3RhdGUgOiBzdHJpbmdQcmVTdGF0ZSk7CisgICAgaWYgKHN0cmluZ1ByZVN0YXRlID09
IHVyaVN0YXRlKSB7CisgICAgICAgIHN0cmluZ09yVXJpQ29udGVudE9mZnNldCAtPSB5eWxlbmc7
CisgICAgICAgIHl5bW9yZSgpOworICAgIH0gZWxzZSB7CisgICAgICAgIHl5bGVuZyA9IHN0cmlu
Z09yVXJpQ29udGVudExlbmd0aDsKKyAgICAgICAgeXl0ZXh0ICs9IHN0cmluZ09yVXJpQ29udGVu
dE9mZnNldDsKKyAgICAgICAgeXlUb2sgPSBTVFJJTkc7CisgICAgICAgIHJldHVybiB5eVRvazsK
KyAgICB9Cit9Cis8ZG91YmxlUXVvdGVkU3RyaW5nU3RhdGUsc2luZ2xlUXVvdGVkU3RyaW5nU3Rh
dGU+e25sfXwuIHtCRUdJTihJTklUSUFMKTt9Cis8PEVPRj4+IHsKKyAgICAvLyA8ZG91YmxlUXVv
dGVkU3RyaW5nU3RhdGUsc2luZ2xlUXVvdGVkU3RyaW5nU3RhdGU+PDxFT0Y+PiBkb2Vzbid0IHdv
cmsgZm9yIHNvbWUgdW5rbm93biByZWFzb25zLiBIZW5jZSB0aGUgdXNlIG9mIHRoZSBzd2l0Y2gg
YmVsb3cuCisgICAgc3dpdGNoIChZWV9TVEFSVCkgeworICAgIGNhc2UgdXJpU3RhdGU6CisgICAg
Y2FzZSBkb3VibGVRdW90ZWRTdHJpbmdTdGF0ZToKKyAgICBjYXNlIHNpbmdsZVF1b3RlZFN0cmlu
Z1N0YXRlOgorICAgIHsKKyAgICAgICAgeXlsZW5nLS07IC8vIFJlbW92ZSB0aGUgJ1wwJyByZXBy
ZXNlbnRpbmcgRU9GLgorICAgICAgICB5eVRvayA9IChzdHJpbmdQcmVTdGF0ZSA9PSB1cmlTdGF0
ZSB8fCBZWV9TVEFSVCA9PSB1cmlTdGF0ZSkgPyBVUkkgOiBTVFJJTkc7CisgICAgICAgIEJFR0lO
KElOSVRJQUwpOworICAgICAgICByZXR1cm4geXlUb2s7CisgICAgfQorICAgIGNhc2UgdXJpUGVu
ZGluZ1N0YXRlOgorICAgIHsKKyAgICAgICAgeXlsZW5nID0gc3RyaW5nT3JVcmlDb250ZW50TGVu
Z3RoOworICAgICAgICB5eXRleHQgKz0gc3RyaW5nT3JVcmlDb250ZW50T2Zmc2V0OworICAgICAg
ICB5eVRvayA9IFVSSTsKKyAgICAgICAgQkVHSU4oSU5JVElBTCk7CisgICAgICAgIHJldHVybiB5
eVRvazsKKyAgICB9CisgICAgZGVmYXVsdDoKKyAgICAgICAgeXl0ZXJtaW5hdGUoKTsKKyAgICB9
Cit9CiAKLXtzdHJpbmd9ICAgICAgICAgICAgICAgIHt5eVRvayA9IFNUUklORzsgcmV0dXJuIHl5
VG9rO30KIHtpZGVudH0gICAgICAgICAgICAgICAgIHt5eVRvayA9IElERU5UOyByZXR1cm4geXlU
b2s7fQoge250aH0gICAgICAgICAgICAgICAgICAge3l5VG9rID0gTlRIOyByZXR1cm4geXlUb2s7
fQogCiAiIyJ7aGV4Y29sb3J9ICAgICAgICAgICB7eXlUb2sgPSBIRVg7IHJldHVybiB5eVRvazt9
CiAiIyJ7aWRlbnR9ICAgICAgICAgICAgICB7eXlUb2sgPSBJRFNFTDsgcmV0dXJuIHl5VG9rO30K
IAotIkBpbXBvcnQiICAgICAgICAgICAgICAge0JFR0lOKG1lZGlhcXVlcnkpOyB5eVRvayA9IElN
UE9SVF9TWU07IHJldHVybiB5eVRvazt9CisiQGltcG9ydCIgICAgICAgICAgICAgICB7QkVHSU4o
bWVkaWFRdWVyeVN0YXRlKTsgeXlUb2sgPSBJTVBPUlRfU1lNOyByZXR1cm4geXlUb2s7fQogIkBw
YWdlIiAgICAgICAgICAgICAgICAge3l5VG9rID0gUEFHRV9TWU07IHJldHVybiB5eVRvazt9Ci0i
QG1lZGlhIiAgICAgICAgICAgICAgICB7QkVHSU4obWVkaWFxdWVyeSk7IHl5VG9rID0gTUVESUFf
U1lNOyByZXR1cm4geXlUb2s7fQorIkBtZWRpYSIgICAgICAgICAgICAgICAge0JFR0lOKG1lZGlh
UXVlcnlTdGF0ZSk7IHl5VG9rID0gTUVESUFfU1lNOyByZXR1cm4geXlUb2s7fQogIkBmb250LWZh
Y2UiICAgICAgICAgICAge3l5VG9rID0gRk9OVF9GQUNFX1NZTTsgcmV0dXJuIHl5VG9rO30KICJA
Y2hhcnNldCIgICAgICAgICAgICAgIHt5eVRvayA9IENIQVJTRVRfU1lNOyByZXR1cm4geXlUb2s7
fQogIkBuYW1lc3BhY2UiICAgICAgICAgICAge3l5VG9rID0gTkFNRVNQQUNFX1NZTTsgcmV0dXJu
IHl5VG9rOyB9CiAiQC13ZWJraXQtcnVsZSIgICAgICAgICB7eXlUb2sgPSBXRUJLSVRfUlVMRV9T
WU07IHJldHVybiB5eVRvazsgfQogIkAtd2Via2l0LWRlY2xzIiAgICAgICAge3l5VG9rID0gV0VC
S0lUX0RFQ0xTX1NZTTsgcmV0dXJuIHl5VG9rOyB9CiAiQC13ZWJraXQtdmFsdWUiICAgICAgICB7
eXlUb2sgPSBXRUJLSVRfVkFMVUVfU1lNOyByZXR1cm4geXlUb2s7IH0KLSJALXdlYmtpdC1tZWRp
YXF1ZXJ5IiAgIHtCRUdJTihtZWRpYXF1ZXJ5KTsgeXlUb2sgPSBXRUJLSVRfTUVESUFRVUVSWV9T
WU07IHJldHVybiB5eVRvazsgfQorIkAtd2Via2l0LW1lZGlhcXVlcnkiICAge0JFR0lOKG1lZGlh
UXVlcnlTdGF0ZSk7IHl5VG9rID0gV0VCS0lUX01FRElBUVVFUllfU1lNOyByZXR1cm4geXlUb2s7
IH0KICJALXdlYmtpdC1zZWxlY3RvciIgICAgIHt5eVRvayA9IFdFQktJVF9TRUxFQ1RPUl9TWU07
IHJldHVybiB5eVRvazsgfQotIkAtd2Via2l0LXZhcmlhYmxlcyIgICAge0JFR0lOKG1lZGlhcXVl
cnkpOyB5eVRvayA9IFdFQktJVF9WQVJJQUJMRVNfU1lNOyByZXR1cm4geXlUb2s7IH0KLSJALXdl
YmtpdC1kZWZpbmUiICAgICAgIHtCRUdJTihmb3JrZXl3b3JkKTsgeXlUb2sgPSBXRUJLSVRfREVG
SU5FX1NZTTsgcmV0dXJuIHl5VG9rOyB9CisiQC13ZWJraXQtdmFyaWFibGVzIiAgICB7QkVHSU4o
bWVkaWFRdWVyeVN0YXRlKTsgeXlUb2sgPSBXRUJLSVRfVkFSSUFCTEVTX1NZTTsgcmV0dXJuIHl5
VG9rOyB9CisiQC13ZWJraXQtZGVmaW5lIiAgICAgICB7QkVHSU4oZm9yS2V5d29yZFN0YXRlKTsg
eXlUb2sgPSBXRUJLSVRfREVGSU5FX1NZTTsgcmV0dXJuIHl5VG9rOyB9CiAiQC13ZWJraXQtdmFy
aWFibGVzLWRlY2xzIiB7IHl5VG9rID0gV0VCS0lUX1ZBUklBQkxFU19ERUNMU19TWU07IHJldHVy
biB5eVRvazsgfQogIkAtd2Via2l0LWtleWZyYW1lcyIgICAge3l5VG9rID0gV0VCS0lUX0tFWUZS
QU1FU19TWU07IHJldHVybiB5eVRvazsgfQogIkAtd2Via2l0LWtleWZyYW1lLXJ1bGUiIHt5eVRv
ayA9IFdFQktJVF9LRVlGUkFNRV9SVUxFX1NZTTsgcmV0dXJuIHl5VG9rOyB9CkBAIC05NiwxNiAr
MTQ1LDI0IEBAIG50aCAgICAgICAgICAgICBbXCstXT97aW50bnVtfSpuKFtcKy1de2ludG51bX0p
Pwoge251bX0gICAgICAgICAgICAgICAgICAge3l5VG9rID0gRkxPQVRUT0tFTjsgcmV0dXJuIHl5
VG9rO30KIAogIm5vdCgiICAgICAgICAgICAgICAgICAge3l5VG9rID0gTk9URlVOQ1RJT047IHJl
dHVybiB5eVRvazt9Ci0idXJsKCJ7d317c3RyaW5nfXt3fSIpIiB7eXlUb2sgPSBVUkk7IHJldHVy
biB5eVRvazt9Ci0idXJsKCJ7d317dXJsfXt3fSIpIiAgICB7eXlUb2sgPSBVUkk7IHJldHVybiB5
eVRvazt9CisKKzxJTklUSUFMLG1lZGlhUXVlcnlTdGF0ZSxmb3JLZXl3b3JkU3RhdGU+InVybCgi
IHt1cmlQcmVTdGF0ZSA9IFlZX1NUQVJUOyBCRUdJTih1cmlTdGF0ZSk7fQorPHVyaVN0YXRlPnt3
fSAgICAgICAgICAgICAgICB7LyogU2tpcCB3aGl0ZXNwYWNlICovfQorPHVyaVN0YXRlPnt1cmx9
ICAgICAgICAgICAgICB7QkVHSU4odXJpUGVuZGluZ1N0YXRlKTsgc3RyaW5nT3JVcmlDb250ZW50
TGVuZ3RoID0geXlsZW5nOyBzdHJpbmdPclVyaUNvbnRlbnRPZmZzZXQgPSAteXlsZW5nOyB5eW1v
cmUoKTt9Cis8dXJpU3RhdGU+IikiICAgICAgICAgICAgICAgIHtCRUdJTih1cmlQcmVTdGF0ZSk7
IHl5bGVuZyA9IDA7IHl5VG9rID0gVVJJOyByZXR1cm4geXlUb2s7fQorPHVyaVN0YXRlPi4gICAg
ICAgICAgICAgICAgICB7QkVHSU4odXJpUHJlU3RhdGUpO30KKzx1cmlQZW5kaW5nU3RhdGU+e3d9
ICAgICAgICB7c3RyaW5nT3JVcmlDb250ZW50T2Zmc2V0IC09IHl5bGVuZzsgeXltb3JlKCk7fQor
PHVyaVBlbmRpbmdTdGF0ZT4iKSIgICAgICAgIHtCRUdJTih1cmlQcmVTdGF0ZSk7IHl5bGVuZyA9
IHN0cmluZ09yVXJpQ29udGVudExlbmd0aDsgeXl0ZXh0ICs9IHN0cmluZ09yVXJpQ29udGVudE9m
ZnNldDsgeXlUb2sgPSBVUkk7IHJldHVybiB5eVRvazt9Cis8dXJpUGVuZGluZ1N0YXRlPi4gICAg
ICAgICAge0JFR0lOKHVyaVByZVN0YXRlKTt9CisKICItd2Via2l0LXZhcigie3d9e2lkZW50fXt3
fSIpIiB7IHl5VG9rID0gVkFSQ0FMTDsgcmV0dXJuIHl5VG9rOyB9CiB7aWRlbnR9IigiICAgICAg
ICAgICAgICB7eXlUb2sgPSBGVU5DVElPTjsgcmV0dXJuIHl5VG9rO30KIAogVVwre3JhbmdlfSAg
ICAgICAgICAgICAge3l5VG9rID0gVU5JQ09ERVJBTkdFOyByZXR1cm4geXlUb2s7fQogVVwre2h9
ezEsNn0te2h9ezEsNn0gICAge3l5VG9rID0gVU5JQ09ERVJBTkdFOyByZXR1cm4geXlUb2s7fQog
Ci08bWVkaWFxdWVyeT4ieyIgICAgICAgICB8Ci08bWVkaWFxdWVyeT4iOyIgICAgICAgICB7QkVH
SU4oSU5JVElBTCk7IHl5VG9rID0gKnl5dGV4dDsgcmV0dXJuIHl5VG9rOyB9Cis8bWVkaWFRdWVy
eVN0YXRlPiJ7IiAgICAgICAgIHwKKzxtZWRpYVF1ZXJ5U3RhdGU+IjsiICAgICAgICAge0JFR0lO
KElOSVRJQUwpOyB5eVRvayA9ICp5eXRleHQ7IHJldHVybiB5eVRvazsgfQogLiAgICAgICAgICAg
ICAgICAgICAgICAge3l5VG9rID0gKnl5dGV4dDsgcmV0dXJuIHl5VG9rO30KIAogJSUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>52814</attachid>
            <date>2010-04-07 17:53:04 -0700</date>
            <delta_ts>2010-04-28 00:51:55 -0700</delta_ts>
            <desc>Fix unclosed string/url handling.</desc>
            <filename>bug-34067-20100408095302.patch</filename>
            <type>text/plain</type>
            <size>23530</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NDNmZmFkLi5kMGRmMDlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMDIt
MDcgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgV2ViS2l0IHByb3Blcmx5IGhhbmRs
ZSB1bmNsb3NlZCBzdHJpbmcvdXJsIGF0IHRoZSBlbmQgb2YgYSBzdHlsZSBzaGVldCwKKyAgICAg
ICAgYXMgRmlyZWZveCAzLjYgYW5kIE9wZXJhIDEwLjEwIGRvZXMuCisgICAgICAgIE5vdGUgdGhh
dCBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5odG1sIHdhcyBjaGFu
Z2VkIGJlY2F1c2UgaXQgaGFkIGNvbnRhaW5lZCB3cm9uZyBxdW90ZXMuCisgICAgICAgIFNlZSBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwNjcjYzI5LgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwNjcKKworICAgICAg
ICAqIGZhc3QvY3NzL2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWw6CisgICAgICAgICogZmFzdC9j
c3MvcGFyc2luZy11bmNsb3NlZC1zdHJpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBmYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy5odG1sOiBBZGRlZC4KKwogMjAxMC0w
NC0wMSAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250
X3Byb3BlcnR5X25vcm1hbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udF9wcm9wZXJ0
eV9ub3JtYWwuaHRtbAppbmRleCAyY2ZiMzQ3Li5jNDdmZWJlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWwKQEAgLTMsMTEgKzMsMTEgQEAKIDxI
RUFEPgogPFRJVExFPlRlc3RpbmcgdmFsaWQgZm9udCBwcm9wZXJ0eSBzcGVjaWZpY2F0aW9uPC9U
SVRMRT4KIDxTVFlMRSB0eXBlPSJ0ZXh0L2NzcyI+Ci0ub25lIHtmb250OiAyNHB0IGl0YWxpYzsi
fQorLm9uZSB7Zm9udDogMjRwdCBpdGFsaWM7fQogLnR3byB7Zm9udDogMjRwdCBpdGFsaWMgQXJp
YWw7fQogLnRocmVlIHtmb250OiAyNHB0IGl0YWxpYyAnQXJpYWwnO30KIC5mb3VyIHtmb250OiBp
dGFsaWMgMjRwdDt9Ci0uZml2ZSB7Zm9udDogaXRhbGljIDI0cHQgQXJpYWw7In0KKy5maXZlIHtm
b250OiBpdGFsaWMgMjRwdCBBcmlhbDt9CiAuc2l4IHtmb250OiBpdGFsaWMgMjRwdCAnQXJpYWwn
O30KIC5zZXZlbiB7Zm9udDogQXJpYWwgMjRwdCBpdGFsaWM7fQogLmVpZ2h0IHtmb250OiAnQXJp
YWwnIDI0cHQgaXRhbGljO30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNp
bmctdW5jbG9zZWQtc3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3Bh
cnNpbmctdW5jbG9zZWQtc3RyaW5nLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwLi4xZWJmZjIwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvcGFyc2luZy11bmNsb3NlZC1zdHJpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsODQg
QEAKK1Rlc3RzIGlmIHVuY2xvc2VkIHN0cmluZ3MgYXJlIHBhcnNlZCBwcm9wZXJseS4KKworT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93
ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1Rlc3QgMShyZWYpIFRlc3QgMSh0ZXN0KSAKK1Rl
c3QgMihyZWYpIFRlc3QgMih0ZXN0KSAKK1Rlc3QgMyhyZWYpIFRlc3QgMyh0ZXN0KSAKK1Rlc3Qg
NChyZWYpIFRlc3QgNCh0ZXN0KSAKK1Rlc3QgNShyZWYpIFRlc3QgNSh0ZXN0KSAKK1Rlc3QgNihy
ZWYpIFRlc3QgNih0ZXN0KSAKK1Rlc3QgNyhyZWYpIFRlc3QgNyh0ZXN0KSAKK1Rlc3QgOChyZWYp
IFRlc3QgOCh0ZXN0KSAKK1Rlc3QgOShyZWYpIFRlc3QgOSh0ZXN0KSAKK1Rlc3QgMTAocmVmKSBU
ZXN0IDEwKHRlc3QpIAorVGVzdCAxMShyZWYpIFRlc3QgMTEodGVzdCkgCitUZXN0IDEyKHJlZikg
VGVzdCAxMih0ZXN0KSAKK1Rlc3QgMTMocmVmKSBUZXN0IDEzKHRlc3QpIAorVGVzdCAxNChyZWYp
IFRlc3QgMTQodGVzdCkgCitUZXN0IDE1KHJlZikgVGVzdCAxNSh0ZXN0KSAKK1BBU1Mgc3VjY2Vz
c2Z1bGx5UGFyc2VkIGlzIHRydWUKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxLXRlc3QnLCAnZm9u
dC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BB
U1MgZ2V0UHJvcGVydHkoJ3Rlc3QxLXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0
eSgndGVzdDEtcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxLXRl
c3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEtcmVmJywgJ2NvbG9yJykKK1BBU1Mg
Z2V0UHJvcGVydHkoJ3Rlc3QxLXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3Bl
cnR5KCd0ZXN0MS1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0
ZXN0Mi10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QyLXJlZicsICdm
b250LWZhbWlseScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0Mi10ZXN0JywgJ2ZvbnQtd2VpZ2h0
JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QyLXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFBy
b3BlcnR5KCd0ZXN0Mi10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QyLXJlZics
ICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0Mi10ZXN0JywgJ2JhY2tncm91bmQtaW1h
Z2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDItcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFT
UyBnZXRQcm9wZXJ0eSgndGVzdDMtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5
KCd0ZXN0My1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDMtdGVz
dCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0My1yZWYnLCAnZm9udC13ZWln
aHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDMtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3Bl
cnR5KCd0ZXN0My1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDMtdGVzdCcs
ICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QzLXJlZicsICdiYWNrZ3Jv
dW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q0LXRlc3QnLCAnZm9udC1mYW1pbHkn
KSBpcyBnZXRQcm9wZXJ0eSgndGVzdDQtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJv
cGVydHkoJ3Rlc3Q0LXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDQt
cmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q0LXRlc3QnLCAnY29s
b3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDQtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVy
dHkoJ3Rlc3Q0LXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0
NC1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0NS10ZXN0
JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q1LXJlZicsICdmb250LWZhbWls
eScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0NS10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0
UHJvcGVydHkoJ3Rlc3Q1LXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0
ZXN0NS10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q1LXJlZicsICdjb2xvcicp
CitQQVNTIGdldFByb3BlcnR5KCd0ZXN0NS10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBn
ZXRQcm9wZXJ0eSgndGVzdDUtcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9w
ZXJ0eSgndGVzdDYtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0Ni1y
ZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDYtdGVzdCcsICdmb250
LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0Ni1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFT
UyBnZXRQcm9wZXJ0eSgndGVzdDYtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0
Ni1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDYtdGVzdCcsICdiYWNrZ3Jv
dW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q2LXJlZicsICdiYWNrZ3JvdW5kLWltYWdl
JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q3LXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQ
cm9wZXJ0eSgndGVzdDctcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rl
c3Q3LXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDctcmVmJywgJ2Zv
bnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q3LXRlc3QnLCAnY29sb3InKSBpcyBn
ZXRQcm9wZXJ0eSgndGVzdDctcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q3
LXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0Ny1yZWYnLCAn
YmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0OC10ZXN0JywgJ2ZvbnQt
ZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q4LXJlZicsICdmb250LWZhbWlseScpCitQQVNT
IGdldFByb3BlcnR5KCd0ZXN0OC10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHko
J3Rlc3Q4LXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0OC10ZXN0
JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q4LXJlZicsICdjb2xvcicpCitQQVNTIGdl
dFByb3BlcnR5KCd0ZXN0OC10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0
eSgndGVzdDgtcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVz
dDktdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0OS1yZWYnLCAnZm9u
dC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDktdGVzdCcsICdmb250LXdlaWdodCcp
IGlzIGdldFByb3BlcnR5KCd0ZXN0OS1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9w
ZXJ0eSgndGVzdDktdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0OS1yZWYnLCAn
Y29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDktdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdl
JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q5LXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKK1BBU1Mg
Z2V0UHJvcGVydHkoJ3Rlc3QxMC10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHko
J3Rlc3QxMC1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEwLXRl
c3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEwLXJlZicsICdmb250LXdl
aWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTAtdGVzdCcsICdjb2xvcicpIGlzIGdldFBy
b3BlcnR5KCd0ZXN0MTAtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMC10
ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEwLXJlZicsICdi
YWNrZ3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMS10ZXN0JywgJ2ZvbnQt
ZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMS1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFT
UyBnZXRQcm9wZXJ0eSgndGVzdDExLXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0
eSgndGVzdDExLXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTEt
dGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTEtcmVmJywgJ2NvbG9yJykKK1BB
U1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMS10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQ
cm9wZXJ0eSgndGVzdDExLXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVy
dHkoJ3Rlc3QxMi10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMi1y
ZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEyLXRlc3QnLCAnZm9u
dC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEyLXJlZicsICdmb250LXdlaWdodCcpCitQ
QVNTIGdldFByb3BlcnR5KCd0ZXN0MTItdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0
ZXN0MTItcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMi10ZXN0JywgJ2Jh
Y2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEyLXJlZicsICdiYWNrZ3JvdW5k
LWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMy10ZXN0JywgJ2ZvbnQtZmFtaWx5Jykg
aXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMy1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9w
ZXJ0eSgndGVzdDEzLXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEz
LXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTMtdGVzdCcsICdj
b2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTMtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJv
cGVydHkoJ3Rlc3QxMy10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgn
dGVzdDEzLXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Qx
NC10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxNC1yZWYnLCAnZm9u
dC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDE0LXRlc3QnLCAnZm9udC13ZWlnaHQn
KSBpcyBnZXRQcm9wZXJ0eSgndGVzdDE0LXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFBy
b3BlcnR5KCd0ZXN0MTQtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTQtcmVm
JywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxNC10ZXN0JywgJ2JhY2tncm91bmQt
aW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDE0LXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykK
K1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxNS10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJv
cGVydHkoJ3Rlc3QxNS1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVz
dDE1LXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDE1LXJlZicsICdm
b250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTUtdGVzdCcsICdjb2xvcicpIGlz
IGdldFByb3BlcnR5KCd0ZXN0MTUtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rl
c3QxNS10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDE1LXJl
ZicsICdiYWNrZ3JvdW5kLWltYWdlJykKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmNsb3NlZC1zdHJpbmcuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi4wMmYzMzRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmNsb3NlZC1zdHJpbmcuaHRtbApAQCAtMCwwICsxLDE5
MCBAQAorPGh0bWw+Cis8aGVhZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMv
cmVzb3VyY2VzL2pzLXRlc3Qtc3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJj
ZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyog
eworICAgIGNvbG9yOiBibGFjazsKKyAgICBmb250LWZhbWlseTogJ0NvdXJpZXInOworICAgIGZv
bnQtd2VpZ2h0OiBub3JtYWw7Cit9Cis8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3Mi
PgorI3Rlc3QxLXJlZiB7CisgICAgZm9udC1mYW1pbHk6ICdJbXBhY3QnOworfQorI3Rlc3QxLXRl
c3QgeworICAgIGZvbnQtZmFtaWx5OiAnSW1wXAorYWN0JzsKK30KKzwvc3R5bGU+CisKKzxzdHls
ZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDItcmVmIHsKKyAgICBmb250LXdlaWdodDogYm9sZDsK
K30KKyN0ZXN0Mi10ZXN0IHsKKyAgICBmb250LWZhbWlseTogJ0ltcGFjdAorICAgIGNvbG9yOnJl
ZDsKKyAgICBmb250LXdlaWdodDogYm9sZDsKK30KKzwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0
ZXh0L2NzcyI+CisjdGVzdDMtcmVmIHsKKyAgICBjb2xvcjpncmF5OworICAgIGZvbnQtZmFtaWx5
OiAnSW1wYWN0JzsKK30KKyN0ZXN0My10ZXN0IHsKKyAgICBjb2xvcjpncmF5OworICAgIGZvbnQt
ZmFtaWx5OiAnSW1wYWN0PC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0
NC1yZWYgeworICAgIGNvbG9yOmJsdWU7Cit9CisjdGVzdDQtdGVzdCB7CisgICAgY29sb3I6Ymx1
ZTsKKyAgICBmb250LWZhbWlseTogJ0ltcGFjdAorPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRl
eHQvY3NzIj4KKyN0ZXN0NS1yZWYgeworICAgIGNvbG9yOm1hcm9vbjsKK30KKyN0ZXN0NS10ZXN0
IHsKKyAgICBjb2xvcjptYXJvb247CisgICAgZm9udC1mYW1pbHk6ICJJbXBhY3QIPC9zdHlsZT4K
KworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0Ni1yZWYgeworICAgIGNvbG9yOnRlYWw7
Cit9Cis8L3N0eWxlPgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KK0BpbXBvcnQgdXJsKCdkYXRh
OnRleHQvY3NzLCN0ZXN0Ni10ZXN0e2NvbG9yOnRlYWw7fScpOworPC9zdHlsZT4KKworPHN0eWxl
IHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0Ny1yZWYgeworICAgIGNvbG9yOm9saXZlOworfQorPC9z
dHlsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitAaW1wb3J0IHVybCggJ2RhdGE6dGV4dC9j
c3MsI3Rlc3Q3LXRlc3R7Y29sb3I6b2xpdmU7fScgKTsKKzwvc3R5bGU+CisKKzxzdHlsZSB0eXBl
PSJ0ZXh0L2NzcyI+CisjdGVzdDgtcmVmIHsKK30KKzwvc3R5bGU+Cis8c3R5bGUgdHlwZT0idGV4
dC9jc3MiPgorQGltcG9ydCB1cmwoJ2RhdGE6dGV4dC9jc3MsI3Rlc3Q4LXRlc3R7Y29sb3I6cHVy
cGxlO30nZXh0cmEpOworPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0
OS1yZWYgeworfQorPC9zdHlsZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitAaW1wb3J0IHVy
bChleHRyYSdkYXRhOnRleHQvY3NzLCN0ZXN0OS10ZXN0e2NvbG9yOnB1cnBsZTt9Jyk7Cis8L3N0
eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QxMC1yZWYgeworICAgIGJhY2tn
cm91bmQtaW1hZ2U6IHVybCgncmVzb3VyY2VzL2dyZWVuYm94LnBuZycpOworfQorI3Rlc3QxMC10
ZXN0IHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9ncmVlbmJveC5wbmcn
Cis8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QxMS1yZWYgeworICAg
IGJhY2tncm91bmQtaW1hZ2U6IHVybCgncmVzb3VyY2VzL3B1cnBsZS1ub3Byb2ZpbGUucG5nJyk7
Cit9CisjdGVzdDExLXRlc3QgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgncmVzb3VyY2Vz
L3B1cnBsZS1ub3Byb2ZpbGUucG5nPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4K
KyN0ZXN0MTItcmVmIHsKK30KKyN0ZXN0MTItdGVzdCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTog
dXJsKCdyZXNvdXJjZXMvZ3JlZW5ib3gucG5nCis8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4
dC9jc3MiPgorI3Rlc3QxMy1yZWYgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJj
ZXMvZ3JlZW5ib3gucG5nKTsKK30KKyN0ZXN0MTMtdGVzdCB7CisgICAgYmFja2dyb3VuZC1pbWFn
ZTogdXJsKHJlc291cmNlcy9ncmVlbmJveC5wbmcKKzwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0
ZXh0L2NzcyI+CisjdGVzdDE0LXJlZiB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291
cmNlcy9wdXJwbGUtbm9wcm9maWxlLnBuZyk7Cit9CisjdGVzdDE0LXRlc3QgeworICAgIGJhY2tn
cm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvcHVycGxlLW5vcHJvZmlsZS5wbmc8L3N0eWxlPgor
Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QxNS1yZWYgeworfQorI3Rlc3QxNS10ZXN0
IHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2dyZWVuYm94LnBuZyBleHRh
cmEpOworfQorPC9zdHlsZT4KKworPHNjcmlwdD4KK3ZhciBudW1UZXN0ID0gMTU7CisKK2Z1bmN0
aW9uIGdldFByb3BlcnR5KGVsZW1lbnRJZCwgbmFtZSkKK3sKKyAgICByZXR1cm4gd2luZG93Lmdl
dENvbXB1dGVkU3R5bGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKSkuZ2V0UHJv
cGVydHlWYWx1ZShuYW1lKTsKK30KKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBkZXNjcmlwdGlv
bigiVGVzdHMgaWYgdW5jbG9zZWQgc3RyaW5ncyBhcmUgcGFyc2VkIHByb3Blcmx5LiIpOworICAg
IHNob3VsZEJlVHJ1ZSgic3VjY2Vzc2Z1bGx5UGFyc2VkIik7CisKKyAgICBmb3IgKHZhciBpID0g
MTsgaSA8PSBudW1UZXN0OyBpKyspIHsKKyAgICAgICAgc2hvdWxkQmUoImdldFByb3BlcnR5KCd0
ZXN0IiArIGkgKyAiLXRlc3QnLCAnZm9udC1mYW1pbHknKSIsICJnZXRQcm9wZXJ0eSgndGVzdCIg
KyBpICsgIi1yZWYnLCAnZm9udC1mYW1pbHknKSIpOworICAgICAgICBzaG91bGRCZSgiZ2V0UHJv
cGVydHkoJ3Rlc3QiICsgaSArICItdGVzdCcsICdmb250LXdlaWdodCcpIiwgImdldFByb3BlcnR5
KCd0ZXN0IiArIGkgKyAiLXJlZicsICdmb250LXdlaWdodCcpIik7CisgICAgICAgIHNob3VsZEJl
KCJnZXRQcm9wZXJ0eSgndGVzdCIgKyBpICsgIi10ZXN0JywgJ2NvbG9yJykiLCAgICAgICAiZ2V0
UHJvcGVydHkoJ3Rlc3QiICsgaSArICItcmVmJywgJ2NvbG9yJykiKTsKKyAgICAgICAgc2hvdWxk
QmUoImdldFByb3BlcnR5KCd0ZXN0IiArIGkgKyAiLXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScp
IiwgICAgICAgImdldFByb3BlcnR5KCd0ZXN0IiArIGkgKyAiLXJlZicsICdiYWNrZ3JvdW5kLWlt
YWdlJykiKTsKKyAgICB9CisKKyAgICBkZWJ1ZygnPGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRF
U1QgQ09NUExFVEU8L3NwYW4+Jyk7Cit9CisKKzwvc2NyaXB0PgorCis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InRlc3QoKSI+Cis8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxoci8+Cis8ZGl2IGlk
PSJ0ZXN0LWVsZW1lbnRzIj4KKzwvZGl2PgorPGhyLz4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2
PgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgordmFyIHRlc3RFbGVtZW50cyA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0LWVsZW1lbnRzIik7CisKK2ZvciAodmFyIGkgPSAx
OyBpIDw9IG51bVRlc3Q7IGkrKykgeworICAgIHZhciByZWZFbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgic3BhbiIpOworICAgIHZhciB0ZXN0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoInNwYW4iKTsKKyAgICByZWZFbGVtZW50LmlubmVySFRNTCA9ICJUZXN0ICIgKyBp
ICsgIihyZWYpICI7CisgICAgdGVzdEVsZW1lbnQuaW5uZXJIVE1MID0gIlRlc3QgIiArIGkgKyAi
KHRlc3QpICI7CisgICAgcmVmRWxlbWVudC5pZCA9ICJ0ZXN0IiArIGkgKyAiLXJlZiI7CisgICAg
dGVzdEVsZW1lbnQuaWQgPSAidGVzdCIgKyBpICsgIi10ZXN0IjsKKyAgICB0ZXN0RWxlbWVudHMu
YXBwZW5kQ2hpbGQocmVmRWxlbWVudCk7CisgICAgdGVzdEVsZW1lbnRzLmFwcGVuZENoaWxkKHRl
c3RFbGVtZW50KTsKKworICAgIHRlc3RFbGVtZW50cy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCJiciIpKTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOTg1YjgyOC4uZTZhMGYzMSAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBA
QAorMjAxMC0wMi0wNyAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBXZWJLaXQgcHJv
cGVybHkgaGFuZGxlIHVuY2xvc2VkIHN0cmluZy91cmwgYXQgdGhlIGVuZCBvZiBhIHN0eWxlIHNo
ZWV0LAorICAgICAgICBhcyBGaXJlZm94IDMuNiBhbmQgT3BlcmEgMTAuMTAgZG9lcy4KKworICAg
ICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9DU1MyMS9zeW5kYXRhLmh0bWwjcGFyc2luZy1lcnJv
cnMgc3BlY2lmaWVzIGhvdyB1bmNsb3NlZCBzdHJpbmdzIG11c3QgYmUgaGFuZGxlZC4KKyAgICAg
ICAgV2l0aG91dCB0aGlzIHBhdGNoLCBXZWJLaXQgaWdub3JlcyB1bmNsb3NlZCBzdHJpbmdzL3Vy
bHMgYXQgdGhlIGVuZCBvZiBzdHlsZXNoZWV0LgorICAgICAgICBUaGlzIHBhdGNoIHNvbHZlcyB0
aGUgYWJvdmUgaXNzdWUgYnkgdHJhY2tpbmcgb3BlbmluZyBxdW90ZXMvYnJhY2VzIHNlcGFyYXRl
bHkgZnJvbSBjbG9zaW5nIG9uZXMuCisgICAgICAgIEF0IHRoZSBlbmQgb2YgYSBmaWxlLCB0aGUg
cGVuZGluZyBzdHJpbmcvdXJsLCBpZiBhbnksIGlzIGZsdXNoZWQgYXMgYSB0b2tlbi4KKworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwNjcKKworICAg
ICAgICBUZXN0OiBmYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy5odG1sCisKKyAgICAg
ICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6dGV4
dCk6CisgICAgICAgICogY3NzL21ha2V0b2tlbml6ZXI6CisgICAgICAgICogY3NzL3Rva2VuaXpl
ci5mbGV4OgorCiAyMDEwLTA0LTA2ICBFdmFuIFN0YWRlICA8ZXN0YWRlQGNocm9taXVtLm9yZz4K
IAogICAgICAgICBSZXZpZXdlZCBieSBEaW1pdHJpIEdsYXprb3YuCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcAppbmRleCAw
NGE4ODU1Li40YjY0OGE0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCisr
KyBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTE0Myw2ICsxNDMsMTIgQEAgQ1NTUGFy
c2VyOjpDU1NQYXJzZXIoYm9vbCBzdHJpY3RQYXJzaW5nKQogICAgICwgbV9kZWZhdWx0TmFtZXNw
YWNlKHN0YXJBdG9tKQogICAgICwgbV9kYXRhKDApCiAgICAgLCB5eV9zdGFydCgxKQorICAgICwg
eXlfbW9yZV9mbGFnKDApCisgICAgLCB5eV9tb3JlX2xlbigwKQorICAgICwgc3RyaW5nUHJlU3Rh
dGUoMCkgLy8gMDogSU5JVElBTCBzdGF0ZQorICAgICwgdXJpUHJlU3RhdGUoMCkgLy8gMDogSU5J
VElBTCBzdGF0ZQorICAgICwgc3RyaW5nT3JVcmlDb250ZW50TGVuZ3RoKDApCisgICAgLCBzdHJp
bmdPclVyaUNvbnRlbnRPZmZzZXQoMCkKICAgICAsIG1fbGluZSgwKQogICAgICwgbV9sYXN0U2Vs
ZWN0b3JMaW5lKDApCiAgICAgLCBtX2FsbG93SW1wb3J0UnVsZXModHJ1ZSkKQEAgLTQ3OTYsMzEg
KzQ4MDIsMTMgQEAgVUNoYXIqIENTU1BhcnNlcjo6dGV4dChpbnQgKmxlbmd0aCkKICAgICBpbnQg
bCA9IHl5bGVuZzsKICAgICBzd2l0Y2ggKHl5VG9rKSB7CiAgICAgY2FzZSBTVFJJTkc6Ci0gICAg
ICAgIGwtLTsKLSAgICAgICAgLyogbm9icmVhayAqLworICAgICAgICBicmVhazsKICAgICBjYXNl
IEhFWDoKICAgICBjYXNlIElEU0VMOgogICAgICAgICBzdGFydCsrOwogICAgICAgICBsLS07CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgVVJJOgotICAgICAgICAvLyAidXJsKCJ7d317c3RyaW5n
fXt3fSIpIgotICAgICAgICAvLyAidXJsKCJ7d317dXJsfXt3fSIpIgotICAgICAgICAvLyBzdHJp
cCAidXJsKCIgYW5kICIpIgotICAgICAgICBzdGFydCArPSA0OwotICAgICAgICBsIC09IDU7Ci0g
ICAgICAgIC8vIHN0cmlwIHt3fQotICAgICAgICB3aGlsZSAobCAmJiBpc0NTU1doaXRlc3BhY2Uo
KnN0YXJ0KSkgewotICAgICAgICAgICAgKytzdGFydDsKLSAgICAgICAgICAgIC0tbDsKLSAgICAg
ICAgfQotICAgICAgICB3aGlsZSAobCAmJiBpc0NTU1doaXRlc3BhY2Uoc3RhcnRbbCAtIDFdKSkK
LSAgICAgICAgICAgIC0tbDsKLSAgICAgICAgaWYgKGwgJiYgKCpzdGFydCA9PSAnIicgfHwgKnN0
YXJ0ID09ICdcJycpKSB7Ci0gICAgICAgICAgICBBU1NFUlQobCA+PSAyICYmIHN0YXJ0W2wgLSAx
XSA9PSAqc3RhcnQpOwotICAgICAgICAgICAgKytzdGFydDsKLSAgICAgICAgICAgIGwgLT0gMjsK
LSAgICAgICAgfQogICAgICAgICBicmVhazsKICAgICBjYXNlIFZBUkNBTEw6CiAgICAgICAgIC8v
ICItd2Via2l0LXZhcigie3d9e2lkZW50fXt3fSIpIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmggYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCBjYThjNjZhLi43NjUz
OTlkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9XZWJDb3JlL2Nz
cy9DU1NQYXJzZXIuaApAQCAtMjQ3LDYgKzI0Nyw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
ICAgICAgICB2b2lkIGRlbGV0ZUZvbnRGYWNlT25seVZhbHVlcygpOwogCisgICAgICAgIHZvaWQg
eXltb3JlKCkgeyh5eV9tb3JlX2ZsYWcpID0gMTsgLyogQ29waWVkIGZyb20gZmxleCBvdXB1dC4g
Ki99CisKICAgICAgICAgVUNoYXIqIG1fZGF0YTsKICAgICAgICAgVUNoYXIqIHl5dGV4dDsKICAg
ICAgICAgVUNoYXIqIHl5X2NfYnVmX3A7CkBAIC0yNTYsNiArMjU4LDE0IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgaW50IHl5bGVuZzsKICAgICAgICAgaW50IHl5VG9rOwogICAgICAg
ICBpbnQgeXlfc3RhcnQ7CisgICAgICAgIGludCB5eV9tb3JlX2ZsYWc7CisgICAgICAgIGludCB5
eV9tb3JlX2xlbjsKKworICAgICAgICBpbnQgc3RyaW5nUHJlU3RhdGU7CisgICAgICAgIGludCB1
cmlQcmVTdGF0ZTsKKyAgICAgICAgaW50IHN0cmluZ09yVXJpQ29udGVudExlbmd0aDsKKyAgICAg
ICAgaW50IHN0cmluZ09yVXJpQ29udGVudE9mZnNldDsKKwogICAgICAgICBpbnQgbV9saW5lOwog
ICAgICAgICBpbnQgbV9sYXN0U2VsZWN0b3JMaW5lOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nz
cy9tYWtldG9rZW5pemVyIGIvV2ViQ29yZS9jc3MvbWFrZXRva2VuaXplcgppbmRleCA5MGQ1ZmNi
Li42Nzc2YWE2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9tYWtldG9rZW5pemVyCisrKyBiL1dl
YkNvcmUvY3NzL21ha2V0b2tlbml6ZXIKQEAgLTQ3LDggKzQ3LDE1IEBAIHByaW50PDxFTkQKICNp
bmNsdWRlICJDU1NHcmFtbWFyLmgiCiAKICNkZWZpbmUgSU5JVElBTCAwCi0jZGVmaW5lIG1lZGlh
cXVlcnkgMQotI2RlZmluZSBmb3JrZXl3b3JkIDIKKyNkZWZpbmUgbWVkaWFRdWVyeVN0YXRlIDEK
KyNkZWZpbmUgZm9yS2V5d29yZFN0YXRlIDIKKyNkZWZpbmUgZG91YmxlUXVvdGVkU3RyaW5nU3Rh
dGUgMworI2RlZmluZSBzaW5nbGVRdW90ZWRTdHJpbmdTdGF0ZSA0CisjZGVmaW5lIHVyaVN0YXRl
IDUKKyNkZWZpbmUgdXJpUGVuZGluZ1N0YXRlIDYKKworI2RlZmluZSBZWV9TVEFSVCAoKCh5eV9z
dGFydCkgLSAxKSAvIDIpCisjZGVmaW5lIHl5dGV4dF9wdHIgeXl0ZXh0CiAKIC8qIEM5OSBzeXN0
ZW1zIGhhdmUgPGludHR5cGVzLmg+LiBOb24tQzk5IHN5c3RlbXMgbWF5IG9yIG1heSBub3QuICov
CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4IGIvV2ViQ29yZS9jc3Mv
dG9rZW5pemVyLmZsZXgKaW5kZXggM2FmNzI1Yy4uODZmMWNlOCAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9jc3MvdG9rZW5pemVyLmZsZXgKKysrIGIvV2ViQ29yZS9jc3MvdG9rZW5pemVyLmZsZXgKQEAg
LTIsOCArMiwxMiBAQAogJW9wdGlvbiBub3l5d3JhcAogJW9wdGlvbiA4Yml0CiAlb3B0aW9uIHN0
YWNrCi0lcyBtZWRpYXF1ZXJ5Ci0lcyBmb3JrZXl3b3JkCislcyBtZWRpYVF1ZXJ5U3RhdGUKKyVz
IGZvcktleXdvcmRTdGF0ZQorJXggZG91YmxlUXVvdGVkU3RyaW5nU3RhdGUKKyV4IHNpbmdsZVF1
b3RlZFN0cmluZ1N0YXRlCisleCB1cmlTdGF0ZQorJXggdXJpUGVuZGluZ1N0YXRlCiAKIGggICAg
ICAgICAgICAgICBbMC05YS1mQS1GXQogbm9uYXNjaWkgICAgICAgIFtcMjAwLVwzNzddCkBAIC0x
MSwxOCArMTUsMTkgQEAgdW5pY29kZSAgICAgICAgIFxce2h9ezEsNn1bIFx0XHJcblxmXT8KIGVz
Y2FwZSAgICAgICAgICB7dW5pY29kZX18XFxbIC1+XDIwMC1cMzc3XQogbm1zdGFydCAgICAgICAg
IFtfYS16QS1aXXx7bm9uYXNjaWl9fHtlc2NhcGV9CiBubWNoYXIgICAgICAgICAgW19hLXpBLVow
LTktXXx7bm9uYXNjaWl9fHtlc2NhcGV9Ci1zdHJpbmcxICAgICAgICAgXCIoW1x0ICEjJCUmKC1+
XXxcXHtubH18XCd8e25vbmFzY2lpfXx7ZXNjYXBlfSkqXCIKLXN0cmluZzIgICAgICAgICBcJyhb
XHQgISMkJSYoLX5dfFxce25sfXxcInx7bm9uYXNjaWl9fHtlc2NhcGV9KSpcJworZHF1b3RlZF9j
b250ZW50IChbXHQgISMkJSYoLX5dfFxce25sfXxcJ3x7bm9uYXNjaWl9fHtlc2NhcGV9KSoKK3Nx
dW90ZWRfY29udGVudCAoW1x0ICEjJCUmKC1+XXxcXHtubH18XCJ8e25vbmFzY2lpfXx7ZXNjYXBl
fSkqCiBoZXhjb2xvciAgICAgICAge2h9ezN9fHtofXs2fQogCiBpZGVudCAgICAgICAgICAgLT97
bm1zdGFydH17bm1jaGFyfSoKIG5hbWUgICAgICAgICAgICB7bm1jaGFyfSsKIG51bSAgICAgICAg
ICAgICBbMC05XSt8WzAtOV0qIi4iWzAtOV0rCiBpbnRudW0gICAgICAgICAgWzAtOV0rCi1zdHJp
bmcgICAgICAgICAge3N0cmluZzF9fHtzdHJpbmcyfQogdXJsICAgICAgICAgICAgIChbISMkJSYq
LX5dfHtub25hc2NpaX18e2VzY2FwZX0pKgogdyAgICAgICAgICAgICAgIFsgXHRcclxuXGZdKgog
bmwgICAgICAgICAgICAgIFxufFxyXG58XHJ8XGYKK2RxdW90ZSAgICAgICAgICBcIgorc3F1b3Rl
ICAgICAgICAgIFwnCiByYW5nZSAgICAgICAgICAgXD97MSw2fXx7aH0oXD97MCw1fXx7aH0oXD97
MCw0fXx7aH0oXD97MCwzfXx7aH0oXD97MCwyfXx7aH0oXD8/fHtofSkpKSkpCiBudGggICAgICAg
ICAgICAgW1wrLV0/e2ludG51bX0qbihbXCstXXtpbnRudW19KT8KIApAQCAtMzksMzEgKzQ0LDc1
IEBAIG50aCAgICAgICAgICAgICBbXCstXT97aW50bnVtfSpuKFtcKy1de2ludG51bX0pPwogIl49
IiAgICAgICAgICAgICAgICAgICAge3l5VG9rID0gQkVHSU5TV0lUSDsgcmV0dXJuIHl5VG9rO30K
ICIkPSIgICAgICAgICAgICAgICAgICAgIHt5eVRvayA9IEVORFNXSVRIOyByZXR1cm4geXlUb2s7
fQogIio9IiAgICAgICAgICAgICAgICAgICAge3l5VG9rID0gQ09OVEFJTlM7IHJldHVybiB5eVRv
azt9Ci08bWVkaWFxdWVyeT4ibm90IiAgICAgICB7eXlUb2sgPSBNRURJQV9OT1Q7IHJldHVybiB5
eVRvazt9Ci08bWVkaWFxdWVyeT4ib25seSIgICAgICB7eXlUb2sgPSBNRURJQV9PTkxZOyByZXR1
cm4geXlUb2s7fQotPG1lZGlhcXVlcnk+ImFuZCIgICAgICAge3l5VG9rID0gTUVESUFfQU5EOyBy
ZXR1cm4geXlUb2s7fQotPGZvcmtleXdvcmQ+ImZvciIgICAgICAge0JFR0lOKG1lZGlhcXVlcnkp
OyB5eVRvayA9IFZBUklBQkxFU19GT1I7IHJldHVybiB5eVRvazsgfQorPG1lZGlhUXVlcnlTdGF0
ZT4ibm90IiAge3l5VG9rID0gTUVESUFfTk9UOyByZXR1cm4geXlUb2s7fQorPG1lZGlhUXVlcnlT
dGF0ZT4ib25seSIge3l5VG9rID0gTUVESUFfT05MWTsgcmV0dXJuIHl5VG9rO30KKzxtZWRpYVF1
ZXJ5U3RhdGU+ImFuZCIgIHt5eVRvayA9IE1FRElBX0FORDsgcmV0dXJuIHl5VG9rO30KKzxmb3JL
ZXl3b3JkU3RhdGU+ImZvciIgIHtCRUdJTihtZWRpYVF1ZXJ5U3RhdGUpOyB5eVRvayA9IFZBUklB
QkxFU19GT1I7IHJldHVybiB5eVRvazsgfQorCis8SU5JVElBTCxtZWRpYVF1ZXJ5U3RhdGUsZm9y
S2V5d29yZFN0YXRlLHVyaVN0YXRlPnsKKyAgICB7ZHF1b3RlfSAgICAgICAgICAgIHtzdHJpbmdQ
cmVTdGF0ZSA9IFlZX1NUQVJUOyBzdHJpbmdPclVyaUNvbnRlbnRMZW5ndGggPSAwOyBCRUdJTihk
b3VibGVRdW90ZWRTdHJpbmdTdGF0ZSk7fQorICAgIHtzcXVvdGV9ICAgICAgICAgICAge3N0cmlu
Z1ByZVN0YXRlID0gWVlfU1RBUlQ7IHN0cmluZ09yVXJpQ29udGVudExlbmd0aCA9IDA7IEJFR0lO
KHNpbmdsZVF1b3RlZFN0cmluZ1N0YXRlKTt9Cit9Cis8ZG91YmxlUXVvdGVkU3RyaW5nU3RhdGU+
e2RxdW90ZWRfY29udGVudH0gfAorPHNpbmdsZVF1b3RlZFN0cmluZ1N0YXRlPntzcXVvdGVkX2Nv
bnRlbnR9IHtzdHJpbmdPclVyaUNvbnRlbnRMZW5ndGggPSB5eWxlbmc7IHN0cmluZ09yVXJpQ29u
dGVudE9mZnNldCA9IC15eWxlbmc7IHl5bW9yZSgpO30KKzxkb3VibGVRdW90ZWRTdHJpbmdTdGF0
ZT57ZHF1b3RlfSB8Cis8c2luZ2xlUXVvdGVkU3RyaW5nU3RhdGU+e3NxdW90ZX0geworICAgIEJF
R0lOKHN0cmluZ1ByZVN0YXRlID09IHVyaVN0YXRlID8gdXJpUGVuZGluZ1N0YXRlIDogc3RyaW5n
UHJlU3RhdGUpOworICAgIGlmIChzdHJpbmdQcmVTdGF0ZSA9PSB1cmlTdGF0ZSkgeworICAgICAg
ICBzdHJpbmdPclVyaUNvbnRlbnRPZmZzZXQgLT0geXlsZW5nOworICAgICAgICB5eW1vcmUoKTsK
KyAgICB9IGVsc2UgeworICAgICAgICB5eWxlbmcgPSBzdHJpbmdPclVyaUNvbnRlbnRMZW5ndGg7
CisgICAgICAgIHl5dGV4dCArPSBzdHJpbmdPclVyaUNvbnRlbnRPZmZzZXQ7CisgICAgICAgIHl5
VG9rID0gU1RSSU5HOworICAgICAgICByZXR1cm4geXlUb2s7CisgICAgfQorfQorPGRvdWJsZVF1
b3RlZFN0cmluZ1N0YXRlLHNpbmdsZVF1b3RlZFN0cmluZ1N0YXRlPntubH18LiB7QkVHSU4oSU5J
VElBTCk7fQorPDxFT0Y+PiB7CisgICAgLy8gPGRvdWJsZVF1b3RlZFN0cmluZ1N0YXRlLHNpbmds
ZVF1b3RlZFN0cmluZ1N0YXRlPjw8RU9GPj4gZG9lc24ndCB3b3JrIGZvciBzb21lIHVua25vd24g
cmVhc29ucy4gSGVuY2UgdGhlIHVzZSBvZiB0aGUgc3dpdGNoIGJlbG93LgorICAgIHN3aXRjaCAo
WVlfU1RBUlQpIHsKKyAgICBjYXNlIHVyaVN0YXRlOgorICAgIGNhc2UgZG91YmxlUXVvdGVkU3Ry
aW5nU3RhdGU6CisgICAgY2FzZSBzaW5nbGVRdW90ZWRTdHJpbmdTdGF0ZToKKyAgICB7CisgICAg
ICAgIHl5bGVuZy0tOyAvLyBSZW1vdmUgdGhlICdcMCcgcmVwcmVzZW50aW5nIEVPRi4KKyAgICAg
ICAgeXlUb2sgPSAoc3RyaW5nUHJlU3RhdGUgPT0gdXJpU3RhdGUgfHwgWVlfU1RBUlQgPT0gdXJp
U3RhdGUpID8gVVJJIDogU1RSSU5HOworICAgICAgICBCRUdJTihJTklUSUFMKTsKKyAgICAgICAg
cmV0dXJuIHl5VG9rOworICAgIH0KKyAgICBjYXNlIHVyaVBlbmRpbmdTdGF0ZToKKyAgICB7Cisg
ICAgICAgIHl5bGVuZyA9IHN0cmluZ09yVXJpQ29udGVudExlbmd0aDsKKyAgICAgICAgeXl0ZXh0
ICs9IHN0cmluZ09yVXJpQ29udGVudE9mZnNldDsKKyAgICAgICAgeXlUb2sgPSBVUkk7CisgICAg
ICAgIEJFR0lOKElOSVRJQUwpOworICAgICAgICByZXR1cm4geXlUb2s7CisgICAgfQorICAgIGRl
ZmF1bHQ6CisgICAgICAgIHl5dGVybWluYXRlKCk7CisgICAgfQorfQogCi17c3RyaW5nfSAgICAg
ICAgICAgICAgICB7eXlUb2sgPSBTVFJJTkc7IHJldHVybiB5eVRvazt9CiB7aWRlbnR9ICAgICAg
ICAgICAgICAgICB7eXlUb2sgPSBJREVOVDsgcmV0dXJuIHl5VG9rO30KIHtudGh9ICAgICAgICAg
ICAgICAgICAgIHt5eVRvayA9IE5USDsgcmV0dXJuIHl5VG9rO30KIAogIiMie2hleGNvbG9yfSAg
ICAgICAgICAge3l5VG9rID0gSEVYOyByZXR1cm4geXlUb2s7fQogIiMie2lkZW50fSAgICAgICAg
ICAgICAge3l5VG9rID0gSURTRUw7IHJldHVybiB5eVRvazt9CiAKLSJAaW1wb3J0IiAgICAgICAg
ICAgICAgIHtCRUdJTihtZWRpYXF1ZXJ5KTsgeXlUb2sgPSBJTVBPUlRfU1lNOyByZXR1cm4geXlU
b2s7fQorIkBpbXBvcnQiICAgICAgICAgICAgICAge0JFR0lOKG1lZGlhUXVlcnlTdGF0ZSk7IHl5
VG9rID0gSU1QT1JUX1NZTTsgcmV0dXJuIHl5VG9rO30KICJAcGFnZSIgICAgICAgICAgICAgICAg
IHt5eVRvayA9IFBBR0VfU1lNOyByZXR1cm4geXlUb2s7fQotIkBtZWRpYSIgICAgICAgICAgICAg
ICAge0JFR0lOKG1lZGlhcXVlcnkpOyB5eVRvayA9IE1FRElBX1NZTTsgcmV0dXJuIHl5VG9rO30K
KyJAbWVkaWEiICAgICAgICAgICAgICAgIHtCRUdJTihtZWRpYVF1ZXJ5U3RhdGUpOyB5eVRvayA9
IE1FRElBX1NZTTsgcmV0dXJuIHl5VG9rO30KICJAZm9udC1mYWNlIiAgICAgICAgICAgIHt5eVRv
ayA9IEZPTlRfRkFDRV9TWU07IHJldHVybiB5eVRvazt9CiAiQGNoYXJzZXQiICAgICAgICAgICAg
ICB7eXlUb2sgPSBDSEFSU0VUX1NZTTsgcmV0dXJuIHl5VG9rO30KICJAbmFtZXNwYWNlIiAgICAg
ICAgICAgIHt5eVRvayA9IE5BTUVTUEFDRV9TWU07IHJldHVybiB5eVRvazsgfQogIkAtd2Via2l0
LXJ1bGUiICAgICAgICAge3l5VG9rID0gV0VCS0lUX1JVTEVfU1lNOyByZXR1cm4geXlUb2s7IH0K
ICJALXdlYmtpdC1kZWNscyIgICAgICAgIHt5eVRvayA9IFdFQktJVF9ERUNMU19TWU07IHJldHVy
biB5eVRvazsgfQogIkAtd2Via2l0LXZhbHVlIiAgICAgICAge3l5VG9rID0gV0VCS0lUX1ZBTFVF
X1NZTTsgcmV0dXJuIHl5VG9rOyB9Ci0iQC13ZWJraXQtbWVkaWFxdWVyeSIgICB7QkVHSU4obWVk
aWFxdWVyeSk7IHl5VG9rID0gV0VCS0lUX01FRElBUVVFUllfU1lNOyByZXR1cm4geXlUb2s7IH0K
KyJALXdlYmtpdC1tZWRpYXF1ZXJ5IiAgIHtCRUdJTihtZWRpYVF1ZXJ5U3RhdGUpOyB5eVRvayA9
IFdFQktJVF9NRURJQVFVRVJZX1NZTTsgcmV0dXJuIHl5VG9rOyB9CiAiQC13ZWJraXQtc2VsZWN0
b3IiICAgICB7eXlUb2sgPSBXRUJLSVRfU0VMRUNUT1JfU1lNOyByZXR1cm4geXlUb2s7IH0KLSJA
LXdlYmtpdC12YXJpYWJsZXMiICAgIHtCRUdJTihtZWRpYXF1ZXJ5KTsgeXlUb2sgPSBXRUJLSVRf
VkFSSUFCTEVTX1NZTTsgcmV0dXJuIHl5VG9rOyB9Ci0iQC13ZWJraXQtZGVmaW5lIiAgICAgICB7
QkVHSU4oZm9ya2V5d29yZCk7IHl5VG9rID0gV0VCS0lUX0RFRklORV9TWU07IHJldHVybiB5eVRv
azsgfQorIkAtd2Via2l0LXZhcmlhYmxlcyIgICAge0JFR0lOKG1lZGlhUXVlcnlTdGF0ZSk7IHl5
VG9rID0gV0VCS0lUX1ZBUklBQkxFU19TWU07IHJldHVybiB5eVRvazsgfQorIkAtd2Via2l0LWRl
ZmluZSIgICAgICAge0JFR0lOKGZvcktleXdvcmRTdGF0ZSk7IHl5VG9rID0gV0VCS0lUX0RFRklO
RV9TWU07IHJldHVybiB5eVRvazsgfQogIkAtd2Via2l0LXZhcmlhYmxlcy1kZWNscyIgeyB5eVRv
ayA9IFdFQktJVF9WQVJJQUJMRVNfREVDTFNfU1lNOyByZXR1cm4geXlUb2s7IH0KICJALXdlYmtp
dC1rZXlmcmFtZXMiICAgIHt5eVRvayA9IFdFQktJVF9LRVlGUkFNRVNfU1lNOyByZXR1cm4geXlU
b2s7IH0KICJALXdlYmtpdC1rZXlmcmFtZS1ydWxlIiB7eXlUb2sgPSBXRUJLSVRfS0VZRlJBTUVf
UlVMRV9TWU07IHJldHVybiB5eVRvazsgfQpAQCAtOTYsMTYgKzE0NSwyNCBAQCBudGggICAgICAg
ICAgICAgW1wrLV0/e2ludG51bX0qbihbXCstXXtpbnRudW19KT8KIHtudW19ICAgICAgICAgICAg
ICAgICAgIHt5eVRvayA9IEZMT0FUVE9LRU47IHJldHVybiB5eVRvazt9CiAKICJub3QoIiAgICAg
ICAgICAgICAgICAgIHt5eVRvayA9IE5PVEZVTkNUSU9OOyByZXR1cm4geXlUb2s7fQotInVybCgi
e3d9e3N0cmluZ317d30iKSIge3l5VG9rID0gVVJJOyByZXR1cm4geXlUb2s7fQotInVybCgie3d9
e3VybH17d30iKSIgICAge3l5VG9rID0gVVJJOyByZXR1cm4geXlUb2s7fQorCis8SU5JVElBTCxt
ZWRpYVF1ZXJ5U3RhdGUsZm9yS2V5d29yZFN0YXRlPiJ1cmwoIiB7dXJpUHJlU3RhdGUgPSBZWV9T
VEFSVDsgQkVHSU4odXJpU3RhdGUpO30KKzx1cmlTdGF0ZT57d30gICAgICAgICAgIHsvKiBTa2lw
IHdoaXRlc3BhY2UgKi99Cis8dXJpU3RhdGU+e3VybH0gICAgICAgICB7QkVHSU4odXJpUGVuZGlu
Z1N0YXRlKTsgc3RyaW5nT3JVcmlDb250ZW50TGVuZ3RoID0geXlsZW5nOyBzdHJpbmdPclVyaUNv
bnRlbnRPZmZzZXQgPSAteXlsZW5nOyB5eW1vcmUoKTt9Cis8dXJpU3RhdGU+IikiICAgICAgICAg
ICB7QkVHSU4odXJpUHJlU3RhdGUpOyB5eWxlbmcgPSAwOyB5eVRvayA9IFVSSTsgcmV0dXJuIHl5
VG9rO30KKzx1cmlTdGF0ZT4uICAgICAgICAgICAgIHtCRUdJTih1cmlQcmVTdGF0ZSk7fQorPHVy
aVBlbmRpbmdTdGF0ZT57d30gICAge3N0cmluZ09yVXJpQ29udGVudE9mZnNldCAtPSB5eWxlbmc7
IHl5bW9yZSgpO30KKzx1cmlQZW5kaW5nU3RhdGU+IikiICAgIHtCRUdJTih1cmlQcmVTdGF0ZSk7
IHl5bGVuZyA9IHN0cmluZ09yVXJpQ29udGVudExlbmd0aDsgeXl0ZXh0ICs9IHN0cmluZ09yVXJp
Q29udGVudE9mZnNldDsgeXlUb2sgPSBVUkk7IHJldHVybiB5eVRvazt9Cis8dXJpUGVuZGluZ1N0
YXRlPi4gICAgICB7QkVHSU4odXJpUHJlU3RhdGUpO30KKwogIi13ZWJraXQtdmFyKCJ7d317aWRl
bnR9e3d9IikiIHsgeXlUb2sgPSBWQVJDQUxMOyByZXR1cm4geXlUb2s7IH0KIHtpZGVudH0iKCIg
ICAgICAgICAgICAgIHt5eVRvayA9IEZVTkNUSU9OOyByZXR1cm4geXlUb2s7fQogCiBVXCt7cmFu
Z2V9ICAgICAgICAgICAgICB7eXlUb2sgPSBVTklDT0RFUkFOR0U7IHJldHVybiB5eVRvazt9CiBV
XCt7aH17MSw2fS17aH17MSw2fSAgICB7eXlUb2sgPSBVTklDT0RFUkFOR0U7IHJldHVybiB5eVRv
azt9CiAKLTxtZWRpYXF1ZXJ5PiJ7IiAgICAgICAgIHwKLTxtZWRpYXF1ZXJ5PiI7IiAgICAgICAg
IHtCRUdJTihJTklUSUFMKTsgeXlUb2sgPSAqeXl0ZXh0OyByZXR1cm4geXlUb2s7IH0KKzxtZWRp
YVF1ZXJ5U3RhdGU+InsiICAgIHwKKzxtZWRpYVF1ZXJ5U3RhdGU+IjsiICAgIHtCRUdJTihJTklU
SUFMKTsgeXlUb2sgPSAqeXl0ZXh0OyByZXR1cm4geXlUb2s7IH0KIC4gICAgICAgICAgICAgICAg
ICAgICAgIHt5eVRvayA9ICp5eXRleHQ7IHJldHVybiB5eVRvazt9CiAKICUlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54534</attachid>
            <date>2010-04-28 00:52:04 -0700</date>
            <delta_ts>2010-08-09 01:43:42 -0700</delta_ts>
            <desc>Fix unclosed string/url handling.</desc>
            <filename>bug-34067-20100428165202.patch</filename>
            <type>text/plain</type>
            <size>24799</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YTE5YzkyODgwNWVlYmY4MGZiZjQ5M2QyMDBmNzVjOTQyZTc2Njg5Li4zMTNjYjE2
MDg2ZjZjZGI5Nzk2NzJkMmE0MWQyMWU1NTEzNzcyNGEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAK
IDIwMTAtMDQtMjcgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgogCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgV2ViS2l0IHByb3Bl
cmx5IGhhbmRsZSB1bmNsb3NlZCBzdHJpbmcvdXJsIGF0IHRoZSBlbmQgb2YgYSBzdHlsZSBzaGVl
dCwKKyAgICAgICAgYXMgRmlyZWZveCAzLjYgYW5kIE9wZXJhIDEwLjEwIGRvZXMuCisgICAgICAg
IE5vdGUgdGhhdCBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5odG1s
IHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgaGFkIGNvbnRhaW5lZCB3cm9uZyBxdW90ZXMuCisgICAg
ICAgIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwNjcjYzI5
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwNjcK
KworICAgICAgICAqIGZhc3QvY3NzL2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWw6CisgICAgICAg
ICogZmFzdC9jc3MvcGFyc2luZy11bmNsb3NlZC1zdHJpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy5odG1sOiBBZGRlZC4K
KworMjAxMC0wNC0yNyAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CisKICAgICAg
ICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCiAKICAgICAgICAgRW5oYW5jZSBDU1MgcGFyc2Vy
IGZvciBQYWdlZCBNZWRpYSAoSXRlcmF0aW9uIDQpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3Mv
Zm9udF9wcm9wZXJ0eV9ub3JtYWwuaHRtbAppbmRleCAyY2ZiMzQ3ZTJlNGJlNzZlZGFmNmVjNGZi
N2M1NWViMWJhNTUyZTcwLi5jNDdmZWJlOGQ3MjM1NjlhYTQ1MjY0ZGVhZjg0M2FmMGRlM2JkMDY0
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWwK
QEAgLTMsMTEgKzMsMTEgQEAKIDxIRUFEPgogPFRJVExFPlRlc3RpbmcgdmFsaWQgZm9udCBwcm9w
ZXJ0eSBzcGVjaWZpY2F0aW9uPC9USVRMRT4KIDxTVFlMRSB0eXBlPSJ0ZXh0L2NzcyI+Ci0ub25l
IHtmb250OiAyNHB0IGl0YWxpYzsifQorLm9uZSB7Zm9udDogMjRwdCBpdGFsaWM7fQogLnR3byB7
Zm9udDogMjRwdCBpdGFsaWMgQXJpYWw7fQogLnRocmVlIHtmb250OiAyNHB0IGl0YWxpYyAnQXJp
YWwnO30KIC5mb3VyIHtmb250OiBpdGFsaWMgMjRwdDt9Ci0uZml2ZSB7Zm9udDogaXRhbGljIDI0
cHQgQXJpYWw7In0KKy5maXZlIHtmb250OiBpdGFsaWMgMjRwdCBBcmlhbDt9CiAuc2l4IHtmb250
OiBpdGFsaWMgMjRwdCAnQXJpYWwnO30KIC5zZXZlbiB7Zm9udDogQXJpYWwgMjRwdCBpdGFsaWM7
fQogLmVpZ2h0IHtmb250OiAnQXJpYWwnIDI0cHQgaXRhbGljO30KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3RyaW5nLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3RyaW5nLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4xZWJmZjIwYWUwYjE2NDYwNGIwZmRiZGE0Y2NjZGViYTA3MWZlNDlmCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmNsb3NlZC1zdHJp
bmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsODQgQEAKK1Rlc3RzIGlmIHVuY2xvc2VkIHN0cmlu
Z3MgYXJlIHBhcnNlZCBwcm9wZXJseS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisK
K1Rlc3QgMShyZWYpIFRlc3QgMSh0ZXN0KSAKK1Rlc3QgMihyZWYpIFRlc3QgMih0ZXN0KSAKK1Rl
c3QgMyhyZWYpIFRlc3QgMyh0ZXN0KSAKK1Rlc3QgNChyZWYpIFRlc3QgNCh0ZXN0KSAKK1Rlc3Qg
NShyZWYpIFRlc3QgNSh0ZXN0KSAKK1Rlc3QgNihyZWYpIFRlc3QgNih0ZXN0KSAKK1Rlc3QgNyhy
ZWYpIFRlc3QgNyh0ZXN0KSAKK1Rlc3QgOChyZWYpIFRlc3QgOCh0ZXN0KSAKK1Rlc3QgOShyZWYp
IFRlc3QgOSh0ZXN0KSAKK1Rlc3QgMTAocmVmKSBUZXN0IDEwKHRlc3QpIAorVGVzdCAxMShyZWYp
IFRlc3QgMTEodGVzdCkgCitUZXN0IDEyKHJlZikgVGVzdCAxMih0ZXN0KSAKK1Rlc3QgMTMocmVm
KSBUZXN0IDEzKHRlc3QpIAorVGVzdCAxNChyZWYpIFRlc3QgMTQodGVzdCkgCitUZXN0IDE1KHJl
ZikgVGVzdCAxNSh0ZXN0KSAKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKK1BBU1Mg
Z2V0UHJvcGVydHkoJ3Rlc3QxLXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgn
dGVzdDEtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxLXRlc3Qn
LCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEtcmVmJywgJ2ZvbnQtd2VpZ2h0
JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxLXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0
eSgndGVzdDEtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxLXRlc3QnLCAn
YmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MS1yZWYnLCAnYmFja2dyb3Vu
ZC1pbWFnZScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0Mi10ZXN0JywgJ2ZvbnQtZmFtaWx5Jykg
aXMgZ2V0UHJvcGVydHkoJ3Rlc3QyLXJlZicsICdmb250LWZhbWlseScpCitQQVNTIGdldFByb3Bl
cnR5KCd0ZXN0Mi10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QyLXJl
ZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0Mi10ZXN0JywgJ2NvbG9y
JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QyLXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5
KCd0ZXN0Mi10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDIt
cmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDMtdGVzdCcs
ICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0My1yZWYnLCAnZm9udC1mYW1pbHkn
KQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDMtdGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFBy
b3BlcnR5KCd0ZXN0My1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVz
dDMtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0My1yZWYnLCAnY29sb3InKQor
UEFTUyBnZXRQcm9wZXJ0eSgndGVzdDMtdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0
UHJvcGVydHkoJ3Rlc3QzLXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVy
dHkoJ3Rlc3Q0LXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDQtcmVm
JywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q0LXRlc3QnLCAnZm9udC13
ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDQtcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1Mg
Z2V0UHJvcGVydHkoJ3Rlc3Q0LXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDQt
cmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q0LXRlc3QnLCAnYmFja2dyb3Vu
ZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0NC1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScp
CitQQVNTIGdldFByb3BlcnR5KCd0ZXN0NS10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJv
cGVydHkoJ3Rlc3Q1LXJlZicsICdmb250LWZhbWlseScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0
NS10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q1LXJlZicsICdmb250
LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0NS10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0
UHJvcGVydHkoJ3Rlc3Q1LXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0NS10
ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDUtcmVmJywgJ2Jh
Y2tncm91bmQtaW1hZ2UnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDYtdGVzdCcsICdmb250LWZh
bWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0Ni1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBn
ZXRQcm9wZXJ0eSgndGVzdDYtdGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0
ZXN0Ni1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDYtdGVzdCcs
ICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0Ni1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQ
cm9wZXJ0eSgndGVzdDYtdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHko
J3Rlc3Q2LXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q3
LXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDctcmVmJywgJ2ZvbnQt
ZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q3LXRlc3QnLCAnZm9udC13ZWlnaHQnKSBp
cyBnZXRQcm9wZXJ0eSgndGVzdDctcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVy
dHkoJ3Rlc3Q3LXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDctcmVmJywgJ2Nv
bG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q3LXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScp
IGlzIGdldFByb3BlcnR5KCd0ZXN0Ny1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCitQQVNTIGdl
dFByb3BlcnR5KCd0ZXN0OC10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rl
c3Q4LXJlZicsICdmb250LWZhbWlseScpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0OC10ZXN0Jywg
J2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q4LXJlZicsICdmb250LXdlaWdodCcp
CitQQVNTIGdldFByb3BlcnR5KCd0ZXN0OC10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHko
J3Rlc3Q4LXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0OC10ZXN0JywgJ2Jh
Y2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDgtcmVmJywgJ2JhY2tncm91bmQt
aW1hZ2UnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDktdGVzdCcsICdmb250LWZhbWlseScpIGlz
IGdldFByb3BlcnR5KCd0ZXN0OS1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0
eSgndGVzdDktdGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0OS1yZWYn
LCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDktdGVzdCcsICdjb2xvcicp
IGlzIGdldFByb3BlcnR5KCd0ZXN0OS1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgn
dGVzdDktdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q5LXJl
ZicsICdiYWNrZ3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMC10ZXN0Jywg
J2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMC1yZWYnLCAnZm9udC1mYW1pbHkn
KQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEwLXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQ
cm9wZXJ0eSgndGVzdDEwLXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0
ZXN0MTAtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTAtcmVmJywgJ2NvbG9y
JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMC10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBp
cyBnZXRQcm9wZXJ0eSgndGVzdDEwLXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0
UHJvcGVydHkoJ3Rlc3QxMS10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rl
c3QxMS1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDExLXRlc3Qn
LCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDExLXJlZicsICdmb250LXdlaWdo
dCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTEtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3Bl
cnR5KCd0ZXN0MTEtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMS10ZXN0
JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDExLXJlZicsICdiYWNr
Z3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMi10ZXN0JywgJ2ZvbnQtZmFt
aWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMi1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBn
ZXRQcm9wZXJ0eSgndGVzdDEyLXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgn
dGVzdDEyLXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTItdGVz
dCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTItcmVmJywgJ2NvbG9yJykKK1BBU1Mg
Z2V0UHJvcGVydHkoJ3Rlc3QxMi10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9w
ZXJ0eSgndGVzdDEyLXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHko
J3Rlc3QxMy10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMy1yZWYn
LCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEzLXRlc3QnLCAnZm9udC13
ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEzLXJlZicsICdmb250LXdlaWdodCcpCitQQVNT
IGdldFByb3BlcnR5KCd0ZXN0MTMtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0
MTMtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMy10ZXN0JywgJ2JhY2tn
cm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEzLXJlZicsICdiYWNrZ3JvdW5kLWlt
YWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxNC10ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMg
Z2V0UHJvcGVydHkoJ3Rlc3QxNC1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0
eSgndGVzdDE0LXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDE0LXJl
ZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTQtdGVzdCcsICdjb2xv
cicpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTQtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVy
dHkoJ3Rlc3QxNC10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVz
dDE0LXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxNS10
ZXN0JywgJ2ZvbnQtZmFtaWx5JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxNS1yZWYnLCAnZm9udC1m
YW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDE1LXRlc3QnLCAnZm9udC13ZWlnaHQnKSBp
cyBnZXRQcm9wZXJ0eSgndGVzdDE1LXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3Bl
cnR5KCd0ZXN0MTUtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTUtcmVmJywg
J2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxNS10ZXN0JywgJ2JhY2tncm91bmQtaW1h
Z2UnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDE1LXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKKwor
VEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5n
LXVuY2xvc2VkLXN0cmluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmNs
b3NlZC1zdHJpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMmYzMzRiZGE2YzljZjY0NTRkNDY2Y2RlZGY1
Mjc3NGI1ZmZjZWIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFy
c2luZy11bmNsb3NlZC1zdHJpbmcuaHRtbApAQCAtMCwwICsxLDE5MCBAQAorPGh0bWw+Cis8aGVh
ZD4KKzxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iLi4vanMvcmVzb3VyY2VzL2pzLXRlc3Qt
c3R5bGUuY3NzIj4KKzxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyogeworICAgIGNvbG9yOiBibGFj
azsKKyAgICBmb250LWZhbWlseTogJ0NvdXJpZXInOworICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7
Cit9Cis8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QxLXJlZiB7Cisg
ICAgZm9udC1mYW1pbHk6ICdJbXBhY3QnOworfQorI3Rlc3QxLXRlc3QgeworICAgIGZvbnQtZmFt
aWx5OiAnSW1wXAorYWN0JzsKK30KKzwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+
CisjdGVzdDItcmVmIHsKKyAgICBmb250LXdlaWdodDogYm9sZDsKK30KKyN0ZXN0Mi10ZXN0IHsK
KyAgICBmb250LWZhbWlseTogJ0ltcGFjdAorICAgIGNvbG9yOnJlZDsKKyAgICBmb250LXdlaWdo
dDogYm9sZDsKK30KKzwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDMt
cmVmIHsKKyAgICBjb2xvcjpncmF5OworICAgIGZvbnQtZmFtaWx5OiAnSW1wYWN0JzsKK30KKyN0
ZXN0My10ZXN0IHsKKyAgICBjb2xvcjpncmF5OworICAgIGZvbnQtZmFtaWx5OiAnSW1wYWN0PC9z
dHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0NC1yZWYgeworICAgIGNvbG9y
OmJsdWU7Cit9CisjdGVzdDQtdGVzdCB7CisgICAgY29sb3I6Ymx1ZTsKKyAgICBmb250LWZhbWls
eTogJ0ltcGFjdAorPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0NS1y
ZWYgeworICAgIGNvbG9yOm1hcm9vbjsKK30KKyN0ZXN0NS10ZXN0IHsKKyAgICBjb2xvcjptYXJv
b247CisgICAgZm9udC1mYW1pbHk6ICJJbXBhY3QIPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRl
eHQvY3NzIj4KKyN0ZXN0Ni1yZWYgeworICAgIGNvbG9yOnRlYWw7Cit9Cis8L3N0eWxlPgorPHN0
eWxlIHR5cGU9InRleHQvY3NzIj4KK0BpbXBvcnQgdXJsKCdkYXRhOnRleHQvY3NzLCN0ZXN0Ni10
ZXN0e2NvbG9yOnRlYWw7fScpOworPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4K
KyN0ZXN0Ny1yZWYgeworICAgIGNvbG9yOm9saXZlOworfQorPC9zdHlsZT4KKzxzdHlsZSB0eXBl
PSJ0ZXh0L2NzcyI+CitAaW1wb3J0IHVybCggJ2RhdGE6dGV4dC9jc3MsI3Rlc3Q3LXRlc3R7Y29s
b3I6b2xpdmU7fScgKTsKKzwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVz
dDgtcmVmIHsKK30KKzwvc3R5bGU+Cis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorQGltcG9ydCB1
cmwoJ2RhdGE6dGV4dC9jc3MsI3Rlc3Q4LXRlc3R7Y29sb3I6cHVycGxlO30nZXh0cmEpOworPC9z
dHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0OS1yZWYgeworfQorPC9zdHls
ZT4KKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CitAaW1wb3J0IHVybChleHRyYSdkYXRhOnRleHQv
Y3NzLCN0ZXN0OS10ZXN0e2NvbG9yOnB1cnBsZTt9Jyk7Cis8L3N0eWxlPgorCis8c3R5bGUgdHlw
ZT0idGV4dC9jc3MiPgorI3Rlc3QxMC1yZWYgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgn
cmVzb3VyY2VzL2dyZWVuYm94LnBuZycpOworfQorI3Rlc3QxMC10ZXN0IHsKKyAgICBiYWNrZ3Jv
dW5kLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9ncmVlbmJveC5wbmcnCis8L3N0eWxlPgorCis8c3R5
bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QxMS1yZWYgeworICAgIGJhY2tncm91bmQtaW1hZ2U6
IHVybCgncmVzb3VyY2VzL3B1cnBsZS1ub3Byb2ZpbGUucG5nJyk7Cit9CisjdGVzdDExLXRlc3Qg
eworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgncmVzb3VyY2VzL3B1cnBsZS1ub3Byb2ZpbGUu
cG5nPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyN0ZXN0MTItcmVmIHsKK30K
KyN0ZXN0MTItdGVzdCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdyZXNvdXJjZXMvZ3Jl
ZW5ib3gucG5nCis8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorI3Rlc3QxMy1y
ZWYgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvZ3JlZW5ib3gucG5nKTsK
K30KKyN0ZXN0MTMtdGVzdCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9n
cmVlbmJveC5wbmcKKzwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisjdGVzdDE0
LXJlZiB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9wdXJwbGUtbm9wcm9m
aWxlLnBuZyk7Cit9CisjdGVzdDE0LXRlc3QgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybChy
ZXNvdXJjZXMvcHVycGxlLW5vcHJvZmlsZS5wbmc8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0idGV4
dC9jc3MiPgorI3Rlc3QxNS1yZWYgeworfQorI3Rlc3QxNS10ZXN0IHsKKyAgICBiYWNrZ3JvdW5k
LWltYWdlOiB1cmwocmVzb3VyY2VzL2dyZWVuYm94LnBuZyBleHRhcmEpOworfQorPC9zdHlsZT4K
KworPHNjcmlwdD4KK3ZhciBudW1UZXN0ID0gMTU7CisKK2Z1bmN0aW9uIGdldFByb3BlcnR5KGVs
ZW1lbnRJZCwgbmFtZSkKK3sKKyAgICByZXR1cm4gd2luZG93LmdldENvbXB1dGVkU3R5bGUoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElkKSkuZ2V0UHJvcGVydHlWYWx1ZShuYW1lKTsK
K30KKworZnVuY3Rpb24gdGVzdCgpIHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgaWYgdW5jbG9z
ZWQgc3RyaW5ncyBhcmUgcGFyc2VkIHByb3Blcmx5LiIpOworICAgIHNob3VsZEJlVHJ1ZSgic3Vj
Y2Vzc2Z1bGx5UGFyc2VkIik7CisKKyAgICBmb3IgKHZhciBpID0gMTsgaSA8PSBudW1UZXN0OyBp
KyspIHsKKyAgICAgICAgc2hvdWxkQmUoImdldFByb3BlcnR5KCd0ZXN0IiArIGkgKyAiLXRlc3Qn
LCAnZm9udC1mYW1pbHknKSIsICJnZXRQcm9wZXJ0eSgndGVzdCIgKyBpICsgIi1yZWYnLCAnZm9u
dC1mYW1pbHknKSIpOworICAgICAgICBzaG91bGRCZSgiZ2V0UHJvcGVydHkoJ3Rlc3QiICsgaSAr
ICItdGVzdCcsICdmb250LXdlaWdodCcpIiwgImdldFByb3BlcnR5KCd0ZXN0IiArIGkgKyAiLXJl
ZicsICdmb250LXdlaWdodCcpIik7CisgICAgICAgIHNob3VsZEJlKCJnZXRQcm9wZXJ0eSgndGVz
dCIgKyBpICsgIi10ZXN0JywgJ2NvbG9yJykiLCAgICAgICAiZ2V0UHJvcGVydHkoJ3Rlc3QiICsg
aSArICItcmVmJywgJ2NvbG9yJykiKTsKKyAgICAgICAgc2hvdWxkQmUoImdldFByb3BlcnR5KCd0
ZXN0IiArIGkgKyAiLXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIiwgICAgICAgImdldFByb3Bl
cnR5KCd0ZXN0IiArIGkgKyAiLXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykiKTsKKyAgICB9CisK
KyAgICBkZWJ1ZygnPGJyIC8+PHNwYW4gY2xhc3M9InBhc3MiPlRFU1QgQ09NUExFVEU8L3NwYW4+
Jyk7Cit9CisKKzwvc2NyaXB0PgorCis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InRlc3QoKSI+Cis8
cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKzxoci8+Cis8ZGl2IGlkPSJ0ZXN0LWVsZW1lbnRzIj4K
KzwvZGl2PgorPGhyLz4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdCB0eXBlPSJ0
ZXh0L2phdmFzY3JpcHQiPgordmFyIHRlc3RFbGVtZW50cyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0ZXN0LWVsZW1lbnRzIik7CisKK2ZvciAodmFyIGkgPSAxOyBpIDw9IG51bVRlc3Q7IGkr
KykgeworICAgIHZhciByZWZFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIp
OworICAgIHZhciB0ZXN0RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsK
KyAgICByZWZFbGVtZW50LmlubmVySFRNTCA9ICJUZXN0ICIgKyBpICsgIihyZWYpICI7CisgICAg
dGVzdEVsZW1lbnQuaW5uZXJIVE1MID0gIlRlc3QgIiArIGkgKyAiKHRlc3QpICI7CisgICAgcmVm
RWxlbWVudC5pZCA9ICJ0ZXN0IiArIGkgKyAiLXJlZiI7CisgICAgdGVzdEVsZW1lbnQuaWQgPSAi
dGVzdCIgKyBpICsgIi10ZXN0IjsKKyAgICB0ZXN0RWxlbWVudHMuYXBwZW5kQ2hpbGQocmVmRWxl
bWVudCk7CisgICAgdGVzdEVsZW1lbnRzLmFwcGVuZENoaWxkKHRlc3RFbGVtZW50KTsKKworICAg
IHRlc3RFbGVtZW50cy5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJiciIpKTsK
K30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggYjg2NTAwZmQxNjU2OWI5Yzc4Zjk3YmNlZjkyMGZjZmFjNWNjNDA1ZC4uYmU1MDc3
YzM2ODI3NzRhYjkwMjg3NTgxODdiYzIxZDU3ODQ1YzQxNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNiBAQAogMjAxMC0w
NC0yNyAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CiAKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBXZWJLaXQgcHJvcGVybHkgaGFu
ZGxlIHVuY2xvc2VkIHN0cmluZy91cmwgYXQgdGhlIGVuZCBvZiBhIHN0eWxlIHNoZWV0LAorICAg
ICAgICBhcyBGaXJlZm94IDMuNiBhbmQgT3BlcmEgMTAuMTAgZG9lcy4KKworICAgICAgICBodHRw
Oi8vd3d3LnczLm9yZy9UUi9DU1MyMS9zeW5kYXRhLmh0bWwjcGFyc2luZy1lcnJvcnMgc3BlY2lm
aWVzIGhvdyB1bmNsb3NlZCBzdHJpbmdzIG11c3QgYmUgaGFuZGxlZC4KKyAgICAgICAgV2l0aG91
dCB0aGlzIHBhdGNoLCBXZWJLaXQgaWdub3JlcyB1bmNsb3NlZCBzdHJpbmdzL3VybHMgYXQgdGhl
IGVuZCBvZiBzdHlsZXNoZWV0LgorICAgICAgICBUaGlzIHBhdGNoIHNvbHZlcyB0aGUgYWJvdmUg
aXNzdWUgYnkgdHJhY2tpbmcgb3BlbmluZyBxdW90ZXMvYnJhY2VzIHNlcGFyYXRlbHkgZnJvbSBj
bG9zaW5nIG9uZXMuCisgICAgICAgIEF0IHRoZSBlbmQgb2YgYSBmaWxlLCB0aGUgcGVuZGluZyBz
dHJpbmcvdXJsLCBpZiBhbnksIGlzIGZsdXNoZWQgYXMgYSB0b2tlbi4KKworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwNjcKKworICAgICAgICBUZXN0
OiBmYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy5odG1sCisKKyAgICAgICAgKiBjc3Mv
Q1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6dGV4dCk6CisgICAg
ICAgICogY3NzL21ha2V0b2tlbml6ZXI6CisgICAgICAgICogY3NzL3Rva2VuaXplci5mbGV4Ogor
CisyMDEwLTA0LTI3ICBZdXpvIEZ1amlzaGltYSAgPHl1em9AZ29vZ2xlLmNvbT4KKwogICAgICAg
ICBSZXZpZXdlZCBieSBFcmljIFNlaWRlbC4KIAogICAgICAgICBFbmhhbmNlIENTUyBwYXJzZXIg
Zm9yIFBhZ2VkIE1lZGlhIChJdGVyYXRpb24gNCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL0NT
U1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4IGQwZDllNDAwOTg4
NzFkNzUxYzk0YTA3Nzc4YjRhMDc0OWI0NmQxZDQuLjUxNDY0ZWQ2MzIzN2MwMjA4ZGFjYWI1MThj
MjYzMjEwYTc1ZTMyYTMgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysr
IGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMTQ4LDYgKzE0OCwxMiBAQCBDU1NQYXJz
ZXI6OkNTU1BhcnNlcihib29sIHN0cmljdFBhcnNpbmcpCiAgICAgLCBtX2RlZmF1bHROYW1lc3Bh
Y2Uoc3RhckF0b20pCiAgICAgLCBtX2RhdGEoMCkKICAgICAsIHl5X3N0YXJ0KDEpCisgICAgLCB5
eV9tb3JlX2ZsYWcoMCkKKyAgICAsIHl5X21vcmVfbGVuKDApCisgICAgLCBzdHJpbmdQcmVTdGF0
ZSgwKSAvLyAwOiBJTklUSUFMIHN0YXRlCisgICAgLCB1cmlQcmVTdGF0ZSgwKSAvLyAwOiBJTklU
SUFMIHN0YXRlCisgICAgLCBzdHJpbmdPclVyaUNvbnRlbnRMZW5ndGgoMCkKKyAgICAsIHN0cmlu
Z09yVXJpQ29udGVudE9mZnNldCgwKQogICAgICwgbV9saW5lKDApCiAgICAgLCBtX2xhc3RTZWxl
Y3RvckxpbmUoMCkKICAgICAsIG1fYWxsb3dJbXBvcnRSdWxlcyh0cnVlKQpAQCAtNDkwMCwzMSAr
NDkwNiwxMyBAQCBVQ2hhciogQ1NTUGFyc2VyOjp0ZXh0KGludCAqbGVuZ3RoKQogICAgIGludCBs
ID0geXlsZW5nOwogICAgIHN3aXRjaCAoeXlUb2spIHsKICAgICBjYXNlIFNUUklORzoKLSAgICAg
ICAgbC0tOwotICAgICAgICAvKiBub2JyZWFrICovCisgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
SEVYOgogICAgIGNhc2UgSURTRUw6CiAgICAgICAgIHN0YXJ0Kys7CiAgICAgICAgIGwtLTsKICAg
ICAgICAgYnJlYWs7CiAgICAgY2FzZSBVUkk6Ci0gICAgICAgIC8vICJ1cmwoInt3fXtzdHJpbmd9
e3d9IikiCi0gICAgICAgIC8vICJ1cmwoInt3fXt1cmx9e3d9IikiCi0gICAgICAgIC8vIHN0cmlw
ICJ1cmwoIiBhbmQgIikiCi0gICAgICAgIHN0YXJ0ICs9IDQ7Ci0gICAgICAgIGwgLT0gNTsKLSAg
ICAgICAgLy8gc3RyaXAge3d9Ci0gICAgICAgIHdoaWxlIChsICYmIGlzQ1NTV2hpdGVzcGFjZSgq
c3RhcnQpKSB7Ci0gICAgICAgICAgICArK3N0YXJ0OwotICAgICAgICAgICAgLS1sOwotICAgICAg
ICB9Ci0gICAgICAgIHdoaWxlIChsICYmIGlzQ1NTV2hpdGVzcGFjZShzdGFydFtsIC0gMV0pKQot
ICAgICAgICAgICAgLS1sOwotICAgICAgICBpZiAobCAmJiAoKnN0YXJ0ID09ICciJyB8fCAqc3Rh
cnQgPT0gJ1wnJykpIHsKLSAgICAgICAgICAgIEFTU0VSVChsID49IDIgJiYgc3RhcnRbbCAtIDFd
ID09ICpzdGFydCk7Ci0gICAgICAgICAgICArK3N0YXJ0OwotICAgICAgICAgICAgbCAtPSAyOwot
ICAgICAgICB9CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgVkFSQ0FMTDoKICAgICAgICAgLy8g
Ii13ZWJraXQtdmFyKCJ7d317aWRlbnR9e3d9IikiCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nzcy9D
U1NQYXJzZXIuaCBiL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCmluZGV4IDBiZDAyMTNiZTJmOTli
ZjAxNGE5YjliOTIzYzA2YzBiYjJmNDZjMWEuLjE5NGY3Y2ZkZGVlYTFhNTEwYzQxYzMyNTFkYTZj
NGE4ZTQ4NjNmYWQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCisrKyBiL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC0yNjMsNiArMjYzLDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgICAgICBib29sIHBhcnNlUGFnZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCk7
CiAgICAgICAgIGJvb2wgcGFyc2VTaXplKGludCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50KTsKICAg
ICAgICAgU2l6ZVBhcmFtZXRlclR5cGUgcGFyc2VTaXplUGFyYW1ldGVyKENTU1ZhbHVlTGlzdCog
cGFyc2VkVmFsdWVzLCBDU1NQYXJzZXJWYWx1ZSogdmFsdWUsIFNpemVQYXJhbWV0ZXJUeXBlIHBy
ZXZQYXJhbVR5cGUpOworICAgICAgICB2b2lkIHl5bW9yZSgpIHsoeXlfbW9yZV9mbGFnKSA9IDE7
IC8qIENvcGllZCBmcm9tIGZsZXggb3VwdXQuICovfQogCiAgICAgICAgIFVDaGFyKiBtX2RhdGE7
CiAgICAgICAgIFVDaGFyKiB5eXRleHQ7CkBAIC0yNzMsNiArMjc0LDE0IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKICAgICAgICAgaW50IHl5bGVuZzsKICAgICAgICAgaW50IHl5VG9rOwogICAgICAg
ICBpbnQgeXlfc3RhcnQ7CisgICAgICAgIGludCB5eV9tb3JlX2ZsYWc7CisgICAgICAgIGludCB5
eV9tb3JlX2xlbjsKKworICAgICAgICBpbnQgc3RyaW5nUHJlU3RhdGU7CisgICAgICAgIGludCB1
cmlQcmVTdGF0ZTsKKyAgICAgICAgaW50IHN0cmluZ09yVXJpQ29udGVudExlbmd0aDsKKyAgICAg
ICAgaW50IHN0cmluZ09yVXJpQ29udGVudE9mZnNldDsKKwogICAgICAgICBpbnQgbV9saW5lOwog
ICAgICAgICBpbnQgbV9sYXN0U2VsZWN0b3JMaW5lOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2Nz
cy9tYWtldG9rZW5pemVyIGIvV2ViQ29yZS9jc3MvbWFrZXRva2VuaXplcgppbmRleCA5MGQ1ZmNi
ZjIxYmNjODg1MDQ3MzIxYWU4YTA1ZjRjZTMxODJmZWM5Li42Nzc2YWE2ZWI0YTlkOTU1MmIzMGY5
YTNmMjI1MTMwNjNlNzdkNjZkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy9tYWtldG9rZW5pemVy
CisrKyBiL1dlYkNvcmUvY3NzL21ha2V0b2tlbml6ZXIKQEAgLTQ3LDggKzQ3LDE1IEBAIHByaW50
PDxFTkQKICNpbmNsdWRlICJDU1NHcmFtbWFyLmgiCiAKICNkZWZpbmUgSU5JVElBTCAwCi0jZGVm
aW5lIG1lZGlhcXVlcnkgMQotI2RlZmluZSBmb3JrZXl3b3JkIDIKKyNkZWZpbmUgbWVkaWFRdWVy
eVN0YXRlIDEKKyNkZWZpbmUgZm9yS2V5d29yZFN0YXRlIDIKKyNkZWZpbmUgZG91YmxlUXVvdGVk
U3RyaW5nU3RhdGUgMworI2RlZmluZSBzaW5nbGVRdW90ZWRTdHJpbmdTdGF0ZSA0CisjZGVmaW5l
IHVyaVN0YXRlIDUKKyNkZWZpbmUgdXJpUGVuZGluZ1N0YXRlIDYKKworI2RlZmluZSBZWV9TVEFS
VCAoKCh5eV9zdGFydCkgLSAxKSAvIDIpCisjZGVmaW5lIHl5dGV4dF9wdHIgeXl0ZXh0CiAKIC8q
IEM5OSBzeXN0ZW1zIGhhdmUgPGludHR5cGVzLmg+LiBOb24tQzk5IHN5c3RlbXMgbWF5IG9yIG1h
eSBub3QuICovCiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL3Rva2VuaXplci5mbGV4IGIvV2Vi
Q29yZS9jc3MvdG9rZW5pemVyLmZsZXgKaW5kZXggMjkwYzU5MDMxZDcwNDJmODJkZDZkODFhMTVj
OGNmNzFjNTRhMjNmZi4uMzBkMzE0NzY0ODlkOTRmZjVmMzRhNjgyMmZhYmUxODA4ZTI0NjkwMiAx
MDA2NDQKLS0tIGEvV2ViQ29yZS9jc3MvdG9rZW5pemVyLmZsZXgKKysrIGIvV2ViQ29yZS9jc3Mv
dG9rZW5pemVyLmZsZXgKQEAgLTIsOCArMiwxMiBAQAogJW9wdGlvbiBub3l5d3JhcAogJW9wdGlv
biA4Yml0CiAlb3B0aW9uIHN0YWNrCi0lcyBtZWRpYXF1ZXJ5Ci0lcyBmb3JrZXl3b3JkCislcyBt
ZWRpYVF1ZXJ5U3RhdGUKKyVzIGZvcktleXdvcmRTdGF0ZQorJXggZG91YmxlUXVvdGVkU3RyaW5n
U3RhdGUKKyV4IHNpbmdsZVF1b3RlZFN0cmluZ1N0YXRlCisleCB1cmlTdGF0ZQorJXggdXJpUGVu
ZGluZ1N0YXRlCiAKIGggICAgICAgICAgICAgICBbMC05YS1mQS1GXQogbm9uYXNjaWkgICAgICAg
IFtcMjAwLVwzNzddCkBAIC0xMSwxOCArMTUsMTkgQEAgdW5pY29kZSAgICAgICAgIFxce2h9ezEs
Nn1bIFx0XHJcblxmXT8KIGVzY2FwZSAgICAgICAgICB7dW5pY29kZX18XFxbIC1+XDIwMC1cMzc3
XQogbm1zdGFydCAgICAgICAgIFtfYS16QS1aXXx7bm9uYXNjaWl9fHtlc2NhcGV9CiBubWNoYXIg
ICAgICAgICAgW19hLXpBLVowLTktXXx7bm9uYXNjaWl9fHtlc2NhcGV9Ci1zdHJpbmcxICAgICAg
ICAgXCIoW1x0ICEjJCUmKC1+XXxcXHtubH18XCd8e25vbmFzY2lpfXx7ZXNjYXBlfSkqXCIKLXN0
cmluZzIgICAgICAgICBcJyhbXHQgISMkJSYoLX5dfFxce25sfXxcInx7bm9uYXNjaWl9fHtlc2Nh
cGV9KSpcJworZHF1b3RlZF9jb250ZW50IChbXHQgISMkJSYoLX5dfFxce25sfXxcJ3x7bm9uYXNj
aWl9fHtlc2NhcGV9KSoKK3NxdW90ZWRfY29udGVudCAoW1x0ICEjJCUmKC1+XXxcXHtubH18XCJ8
e25vbmFzY2lpfXx7ZXNjYXBlfSkqCiBoZXhjb2xvciAgICAgICAge2h9ezN9fHtofXs2fQogCiBp
ZGVudCAgICAgICAgICAgLT97bm1zdGFydH17bm1jaGFyfSoKIG5hbWUgICAgICAgICAgICB7bm1j
aGFyfSsKIG51bSAgICAgICAgICAgICBbMC05XSt8WzAtOV0qIi4iWzAtOV0rCiBpbnRudW0gICAg
ICAgICAgWzAtOV0rCi1zdHJpbmcgICAgICAgICAge3N0cmluZzF9fHtzdHJpbmcyfQogdXJsICAg
ICAgICAgICAgIChbISMkJSYqLX5dfHtub25hc2NpaX18e2VzY2FwZX0pKgogdyAgICAgICAgICAg
ICAgIFsgXHRcclxuXGZdKgogbmwgICAgICAgICAgICAgIFxufFxyXG58XHJ8XGYKK2RxdW90ZSAg
ICAgICAgICBcIgorc3F1b3RlICAgICAgICAgIFwnCiByYW5nZSAgICAgICAgICAgXD97MSw2fXx7
aH0oXD97MCw1fXx7aH0oXD97MCw0fXx7aH0oXD97MCwzfXx7aH0oXD97MCwyfXx7aH0oXD8/fHto
fSkpKSkpCiBudGggICAgICAgICAgICAgW1wrLV0/e2ludG51bX0qbihbXCstXXtpbnRudW19KT8K
IApAQCAtMzksMTkgKzQ0LDYzIEBAIG50aCAgICAgICAgICAgICBbXCstXT97aW50bnVtfSpuKFtc
Ky1de2ludG51bX0pPwogIl49IiAgICAgICAgICAgICAgICAgICAge3l5VG9rID0gQkVHSU5TV0lU
SDsgcmV0dXJuIHl5VG9rO30KICIkPSIgICAgICAgICAgICAgICAgICAgIHt5eVRvayA9IEVORFNX
SVRIOyByZXR1cm4geXlUb2s7fQogIio9IiAgICAgICAgICAgICAgICAgICAge3l5VG9rID0gQ09O
VEFJTlM7IHJldHVybiB5eVRvazt9Ci08bWVkaWFxdWVyeT4ibm90IiAgICAgICB7eXlUb2sgPSBN
RURJQV9OT1Q7IHJldHVybiB5eVRvazt9Ci08bWVkaWFxdWVyeT4ib25seSIgICAgICB7eXlUb2sg
PSBNRURJQV9PTkxZOyByZXR1cm4geXlUb2s7fQotPG1lZGlhcXVlcnk+ImFuZCIgICAgICAge3l5
VG9rID0gTUVESUFfQU5EOyByZXR1cm4geXlUb2s7fQotPGZvcmtleXdvcmQ+ImZvciIgICAgICAg
e0JFR0lOKG1lZGlhcXVlcnkpOyB5eVRvayA9IFZBUklBQkxFU19GT1I7IHJldHVybiB5eVRvazsg
fQorPG1lZGlhUXVlcnlTdGF0ZT4ibm90IiAge3l5VG9rID0gTUVESUFfTk9UOyByZXR1cm4geXlU
b2s7fQorPG1lZGlhUXVlcnlTdGF0ZT4ib25seSIge3l5VG9rID0gTUVESUFfT05MWTsgcmV0dXJu
IHl5VG9rO30KKzxtZWRpYVF1ZXJ5U3RhdGU+ImFuZCIgIHt5eVRvayA9IE1FRElBX0FORDsgcmV0
dXJuIHl5VG9rO30KKzxmb3JLZXl3b3JkU3RhdGU+ImZvciIgIHtCRUdJTihtZWRpYVF1ZXJ5U3Rh
dGUpOyB5eVRvayA9IFZBUklBQkxFU19GT1I7IHJldHVybiB5eVRvazsgfQorCis8SU5JVElBTCxt
ZWRpYVF1ZXJ5U3RhdGUsZm9yS2V5d29yZFN0YXRlLHVyaVN0YXRlPnsKKyAgICB7ZHF1b3RlfSAg
ICAgICAgICAgIHtzdHJpbmdQcmVTdGF0ZSA9IFlZX1NUQVJUOyBzdHJpbmdPclVyaUNvbnRlbnRM
ZW5ndGggPSAwOyBCRUdJTihkb3VibGVRdW90ZWRTdHJpbmdTdGF0ZSk7fQorICAgIHtzcXVvdGV9
ICAgICAgICAgICAge3N0cmluZ1ByZVN0YXRlID0gWVlfU1RBUlQ7IHN0cmluZ09yVXJpQ29udGVu
dExlbmd0aCA9IDA7IEJFR0lOKHNpbmdsZVF1b3RlZFN0cmluZ1N0YXRlKTt9Cit9Cis8ZG91Ymxl
UXVvdGVkU3RyaW5nU3RhdGU+e2RxdW90ZWRfY29udGVudH0gfAorPHNpbmdsZVF1b3RlZFN0cmlu
Z1N0YXRlPntzcXVvdGVkX2NvbnRlbnR9IHtzdHJpbmdPclVyaUNvbnRlbnRMZW5ndGggPSB5eWxl
bmc7IHN0cmluZ09yVXJpQ29udGVudE9mZnNldCA9IC15eWxlbmc7IHl5bW9yZSgpO30KKzxkb3Vi
bGVRdW90ZWRTdHJpbmdTdGF0ZT57ZHF1b3RlfSB8Cis8c2luZ2xlUXVvdGVkU3RyaW5nU3RhdGU+
e3NxdW90ZX0geworICAgIEJFR0lOKHN0cmluZ1ByZVN0YXRlID09IHVyaVN0YXRlID8gdXJpUGVu
ZGluZ1N0YXRlIDogc3RyaW5nUHJlU3RhdGUpOworICAgIGlmIChzdHJpbmdQcmVTdGF0ZSA9PSB1
cmlTdGF0ZSkgeworICAgICAgICBzdHJpbmdPclVyaUNvbnRlbnRPZmZzZXQgLT0geXlsZW5nOwor
ICAgICAgICB5eW1vcmUoKTsKKyAgICB9IGVsc2UgeworICAgICAgICB5eWxlbmcgPSBzdHJpbmdP
clVyaUNvbnRlbnRMZW5ndGg7CisgICAgICAgIHl5dGV4dCArPSBzdHJpbmdPclVyaUNvbnRlbnRP
ZmZzZXQ7CisgICAgICAgIHl5VG9rID0gU1RSSU5HOworICAgICAgICByZXR1cm4geXlUb2s7Cisg
ICAgfQorfQorPGRvdWJsZVF1b3RlZFN0cmluZ1N0YXRlLHNpbmdsZVF1b3RlZFN0cmluZ1N0YXRl
PntubH18LiB7QkVHSU4oSU5JVElBTCk7fQorPDxFT0Y+PiB7CisgICAgLy8gPGRvdWJsZVF1b3Rl
ZFN0cmluZ1N0YXRlLHNpbmdsZVF1b3RlZFN0cmluZ1N0YXRlPjw8RU9GPj4gZG9lc24ndCB3b3Jr
IGZvciBzb21lIHVua25vd24gcmVhc29ucy4gSGVuY2UgdGhlIHVzZSBvZiB0aGUgc3dpdGNoIGJl
bG93LgorICAgIHN3aXRjaCAoWVlfU1RBUlQpIHsKKyAgICBjYXNlIHVyaVN0YXRlOgorICAgIGNh
c2UgZG91YmxlUXVvdGVkU3RyaW5nU3RhdGU6CisgICAgY2FzZSBzaW5nbGVRdW90ZWRTdHJpbmdT
dGF0ZToKKyAgICB7CisgICAgICAgIHl5bGVuZy0tOyAvLyBSZW1vdmUgdGhlICdcMCcgcmVwcmVz
ZW50aW5nIEVPRi4KKyAgICAgICAgeXlUb2sgPSAoc3RyaW5nUHJlU3RhdGUgPT0gdXJpU3RhdGUg
fHwgWVlfU1RBUlQgPT0gdXJpU3RhdGUpID8gVVJJIDogU1RSSU5HOworICAgICAgICBCRUdJTihJ
TklUSUFMKTsKKyAgICAgICAgcmV0dXJuIHl5VG9rOworICAgIH0KKyAgICBjYXNlIHVyaVBlbmRp
bmdTdGF0ZToKKyAgICB7CisgICAgICAgIHl5bGVuZyA9IHN0cmluZ09yVXJpQ29udGVudExlbmd0
aDsKKyAgICAgICAgeXl0ZXh0ICs9IHN0cmluZ09yVXJpQ29udGVudE9mZnNldDsKKyAgICAgICAg
eXlUb2sgPSBVUkk7CisgICAgICAgIEJFR0lOKElOSVRJQUwpOworICAgICAgICByZXR1cm4geXlU
b2s7CisgICAgfQorICAgIGRlZmF1bHQ6CisgICAgICAgIHl5dGVybWluYXRlKCk7CisgICAgfQor
fQogCi17c3RyaW5nfSAgICAgICAgICAgICAgICB7eXlUb2sgPSBTVFJJTkc7IHJldHVybiB5eVRv
azt9CiB7aWRlbnR9ICAgICAgICAgICAgICAgICB7eXlUb2sgPSBJREVOVDsgcmV0dXJuIHl5VG9r
O30KIHtudGh9ICAgICAgICAgICAgICAgICAgIHt5eVRvayA9IE5USDsgcmV0dXJuIHl5VG9rO30K
IAogIiMie2hleGNvbG9yfSAgICAgICAgICAge3l5VG9rID0gSEVYOyByZXR1cm4geXlUb2s7fQog
IiMie2lkZW50fSAgICAgICAgICAgICAge3l5VG9rID0gSURTRUw7IHJldHVybiB5eVRvazt9CiAK
LSJAaW1wb3J0IiAgICAgICAgICAgICAgIHtCRUdJTihtZWRpYXF1ZXJ5KTsgeXlUb2sgPSBJTVBP
UlRfU1lNOyByZXR1cm4geXlUb2s7fQorIkBpbXBvcnQiICAgICAgICAgICAgICAge0JFR0lOKG1l
ZGlhUXVlcnlTdGF0ZSk7IHl5VG9rID0gSU1QT1JUX1NZTTsgcmV0dXJuIHl5VG9rO30KICJAcGFn
ZSIgICAgICAgICAgICAgICAgIHt5eVRvayA9IFBBR0VfU1lNOyByZXR1cm4geXlUb2s7fQogIkB0
b3AtbGVmdC1jb3JuZXIiICAgICAge3l5VG9rID0gVE9QTEVGVENPUk5FUl9TWU07IHJldHVybiB5
eVRvazt9CiAiQHRvcC1sZWZ0IiAgICAgICAgICAgICB7eXlUb2sgPSBUT1BMRUZUX1NZTTsgcmV0
dXJuIHl5VG9rO30KQEAgLTY5LDE3ICsxMTgsMTcgQEAgbnRoICAgICAgICAgICAgIFtcKy1dP3tp
bnRudW19Km4oW1wrLV17aW50bnVtfSk/CiAiQHJpZ2h0LXRvcCIgICAgICAgICAgICB7eXlUb2sg
PSBSSUdIVFRPUF9TWU07IHJldHVybiB5eVRvazt9CiAiQHJpZ2h0LW1pZGRsZSIgICAgICAgICB7
eXlUb2sgPSBSSUdIVE1JRERMRV9TWU07IHJldHVybiB5eVRvazt9CiAiQHJpZ2h0LWJvdHRvbSIg
ICAgICAgICB7eXlUb2sgPSBSSUdIVEJPVFRPTV9TWU07IHJldHVybiB5eVRvazt9Ci0iQG1lZGlh
IiAgICAgICAgICAgICAgICB7QkVHSU4obWVkaWFxdWVyeSk7IHl5VG9rID0gTUVESUFfU1lNOyBy
ZXR1cm4geXlUb2s7fQorIkBtZWRpYSIgICAgICAgICAgICAgICAge0JFR0lOKG1lZGlhUXVlcnlT
dGF0ZSk7IHl5VG9rID0gTUVESUFfU1lNOyByZXR1cm4geXlUb2s7fQogIkBmb250LWZhY2UiICAg
ICAgICAgICAge3l5VG9rID0gRk9OVF9GQUNFX1NZTTsgcmV0dXJuIHl5VG9rO30KICJAY2hhcnNl
dCIgICAgICAgICAgICAgIHt5eVRvayA9IENIQVJTRVRfU1lNOyByZXR1cm4geXlUb2s7fQogIkBu
YW1lc3BhY2UiICAgICAgICAgICAge3l5VG9rID0gTkFNRVNQQUNFX1NZTTsgcmV0dXJuIHl5VG9r
OyB9CiAiQC13ZWJraXQtcnVsZSIgICAgICAgICB7eXlUb2sgPSBXRUJLSVRfUlVMRV9TWU07IHJl
dHVybiB5eVRvazsgfQogIkAtd2Via2l0LWRlY2xzIiAgICAgICAge3l5VG9rID0gV0VCS0lUX0RF
Q0xTX1NZTTsgcmV0dXJuIHl5VG9rOyB9CiAiQC13ZWJraXQtdmFsdWUiICAgICAgICB7eXlUb2sg
PSBXRUJLSVRfVkFMVUVfU1lNOyByZXR1cm4geXlUb2s7IH0KLSJALXdlYmtpdC1tZWRpYXF1ZXJ5
IiAgIHtCRUdJTihtZWRpYXF1ZXJ5KTsgeXlUb2sgPSBXRUJLSVRfTUVESUFRVUVSWV9TWU07IHJl
dHVybiB5eVRvazsgfQorIkAtd2Via2l0LW1lZGlhcXVlcnkiICAge0JFR0lOKG1lZGlhUXVlcnlT
dGF0ZSk7IHl5VG9rID0gV0VCS0lUX01FRElBUVVFUllfU1lNOyByZXR1cm4geXlUb2s7IH0KICJA
LXdlYmtpdC1zZWxlY3RvciIgICAgIHt5eVRvayA9IFdFQktJVF9TRUxFQ1RPUl9TWU07IHJldHVy
biB5eVRvazsgfQotIkAtd2Via2l0LXZhcmlhYmxlcyIgICAge0JFR0lOKG1lZGlhcXVlcnkpOyB5
eVRvayA9IFdFQktJVF9WQVJJQUJMRVNfU1lNOyByZXR1cm4geXlUb2s7IH0KLSJALXdlYmtpdC1k
ZWZpbmUiICAgICAgIHtCRUdJTihmb3JrZXl3b3JkKTsgeXlUb2sgPSBXRUJLSVRfREVGSU5FX1NZ
TTsgcmV0dXJuIHl5VG9rOyB9CisiQC13ZWJraXQtdmFyaWFibGVzIiAgICB7QkVHSU4obWVkaWFR
dWVyeVN0YXRlKTsgeXlUb2sgPSBXRUJLSVRfVkFSSUFCTEVTX1NZTTsgcmV0dXJuIHl5VG9rOyB9
CisiQC13ZWJraXQtZGVmaW5lIiAgICAgICB7QkVHSU4oZm9yS2V5d29yZFN0YXRlKTsgeXlUb2sg
PSBXRUJLSVRfREVGSU5FX1NZTTsgcmV0dXJuIHl5VG9rOyB9CiAiQC13ZWJraXQtdmFyaWFibGVz
LWRlY2xzIiB7IHl5VG9rID0gV0VCS0lUX1ZBUklBQkxFU19ERUNMU19TWU07IHJldHVybiB5eVRv
azsgfQogIkAtd2Via2l0LWtleWZyYW1lcyIgICAge3l5VG9rID0gV0VCS0lUX0tFWUZSQU1FU19T
WU07IHJldHVybiB5eVRvazsgfQogIkAtd2Via2l0LWtleWZyYW1lLXJ1bGUiIHt5eVRvayA9IFdF
QktJVF9LRVlGUkFNRV9SVUxFX1NZTTsgcmV0dXJuIHl5VG9rOyB9CkBAIC0xMTIsMTYgKzE2MSwy
NCBAQCBudGggICAgICAgICAgICAgW1wrLV0/e2ludG51bX0qbihbXCstXXtpbnRudW19KT8KIHtu
dW19ICAgICAgICAgICAgICAgICAgIHt5eVRvayA9IEZMT0FUVE9LRU47IHJldHVybiB5eVRvazt9
CiAKICJub3QoIiAgICAgICAgICAgICAgICAgIHt5eVRvayA9IE5PVEZVTkNUSU9OOyByZXR1cm4g
eXlUb2s7fQotInVybCgie3d9e3N0cmluZ317d30iKSIge3l5VG9rID0gVVJJOyByZXR1cm4geXlU
b2s7fQotInVybCgie3d9e3VybH17d30iKSIgICAge3l5VG9rID0gVVJJOyByZXR1cm4geXlUb2s7
fQorCis8SU5JVElBTCxtZWRpYVF1ZXJ5U3RhdGUsZm9yS2V5d29yZFN0YXRlPiJ1cmwoIiB7dXJp
UHJlU3RhdGUgPSBZWV9TVEFSVDsgQkVHSU4odXJpU3RhdGUpO30KKzx1cmlTdGF0ZT57d30gICAg
ICAgICAgIHsvKiBTa2lwIHdoaXRlc3BhY2UgKi99Cis8dXJpU3RhdGU+e3VybH0gICAgICAgICB7
QkVHSU4odXJpUGVuZGluZ1N0YXRlKTsgc3RyaW5nT3JVcmlDb250ZW50TGVuZ3RoID0geXlsZW5n
OyBzdHJpbmdPclVyaUNvbnRlbnRPZmZzZXQgPSAteXlsZW5nOyB5eW1vcmUoKTt9Cis8dXJpU3Rh
dGU+IikiICAgICAgICAgICB7QkVHSU4odXJpUHJlU3RhdGUpOyB5eWxlbmcgPSAwOyB5eVRvayA9
IFVSSTsgcmV0dXJuIHl5VG9rO30KKzx1cmlTdGF0ZT4uICAgICAgICAgICAgIHtCRUdJTih1cmlQ
cmVTdGF0ZSk7fQorPHVyaVBlbmRpbmdTdGF0ZT57d30gICAge3N0cmluZ09yVXJpQ29udGVudE9m
ZnNldCAtPSB5eWxlbmc7IHl5bW9yZSgpO30KKzx1cmlQZW5kaW5nU3RhdGU+IikiICAgIHtCRUdJ
Tih1cmlQcmVTdGF0ZSk7IHl5bGVuZyA9IHN0cmluZ09yVXJpQ29udGVudExlbmd0aDsgeXl0ZXh0
ICs9IHN0cmluZ09yVXJpQ29udGVudE9mZnNldDsgeXlUb2sgPSBVUkk7IHJldHVybiB5eVRvazt9
Cis8dXJpUGVuZGluZ1N0YXRlPi4gICAgICB7QkVHSU4odXJpUHJlU3RhdGUpO30KKwogIi13ZWJr
aXQtdmFyKCJ7d317aWRlbnR9e3d9IikiIHsgeXlUb2sgPSBWQVJDQUxMOyByZXR1cm4geXlUb2s7
IH0KIHtpZGVudH0iKCIgICAgICAgICAgICAgIHt5eVRvayA9IEZVTkNUSU9OOyByZXR1cm4geXlU
b2s7fQogCiBVXCt7cmFuZ2V9ICAgICAgICAgICAgICB7eXlUb2sgPSBVTklDT0RFUkFOR0U7IHJl
dHVybiB5eVRvazt9CiBVXCt7aH17MSw2fS17aH17MSw2fSAgICB7eXlUb2sgPSBVTklDT0RFUkFO
R0U7IHJldHVybiB5eVRvazt9CiAKLTxtZWRpYXF1ZXJ5PiJ7IiAgICAgICAgIHwKLTxtZWRpYXF1
ZXJ5PiI7IiAgICAgICAgIHtCRUdJTihJTklUSUFMKTsgeXlUb2sgPSAqeXl0ZXh0OyByZXR1cm4g
eXlUb2s7IH0KKzxtZWRpYVF1ZXJ5U3RhdGU+InsiICAgIHwKKzxtZWRpYVF1ZXJ5U3RhdGU+Ijsi
ICAgIHtCRUdJTihJTklUSUFMKTsgeXlUb2sgPSAqeXl0ZXh0OyByZXR1cm4geXlUb2s7IH0KIC4g
ICAgICAgICAgICAgICAgICAgICAgIHt5eVRvayA9ICp5eXRleHQ7IHJldHVybiB5eVRvazt9CiAK
ICUlCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>63869</attachid>
            <date>2010-08-09 01:43:49 -0700</date>
            <delta_ts>2011-01-11 00:24:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-34067-20100809014347.patch</filename>
            <type>text/plain</type>
            <size>27764</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiZGFiNDUzNjU1YWRiNDE4MGIzOGMwNTA1YzdhNWQxNzUyNGEzNmRkLi4yNzYwNmQz
ZWNkODUyNzRiOWM0ZTZmZDZkY2ZjNWE4MWQ2ODA1YWJhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAK
KzIwMTAtMDgtMDkgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgV2ViS2l0IHByb3Bl
cmx5IGhhbmRsZSB1bmNsb3NlZCBzdHJpbmcvdXJsIGF0IHRoZSBlbmQgb2YgYSBzdHlsZSBzaGVl
dCwKKyAgICAgICAgYXMgRmlyZWZveCAzLjYgYW5kIE9wZXJhIDEwLjEwIGRvZXMuCisgICAgICAg
IE5vdGUgdGhhdCBMYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5odG1s
IHdhcyBjaGFuZ2VkIGJlY2F1c2UgaXQgaGFkIGNvbnRhaW5lZCB3cm9uZyBxdW90ZXMuCisgICAg
ICAgIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwNjcjYzI5
LgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwNjcK
KworICAgICAgICAqIGZhc3QvY3NzL2ZvbnRfcHJvcGVydHlfbm9ybWFsLmh0bWw6CisgICAgICAg
ICogZmFzdC9jc3MvcGFyc2luZy11bmNsb3NlZC1zdHJpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBmYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy5odG1sOiBBZGRlZC4K
KwogMjAxMC0wOC0wNCAgTU9SSVRBIEhhamltZSAgPG1vcnJpdGFAZ29vZ2xlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBUb255IENoYW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9jc3MvZm9udF9wcm9wZXJ0eV9ub3JtYWwuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2Zv
bnRfcHJvcGVydHlfbm9ybWFsLmh0bWwKaW5kZXggMmNmYjM0N2UyZTRiZTc2ZWRhZjZlYzRmYjdj
NTVlYjFiYTU1MmU3MC4uYzQ3ZmViZThkNzIzNTY5YWE0NTI2NGRlYWY4NDNhZjBkZTNiZDA2NCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvZm9udF9wcm9wZXJ0eV9ub3JtYWwuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9mb250X3Byb3BlcnR5X25vcm1hbC5odG1sCkBA
IC0zLDExICszLDExIEBACiA8SEVBRD4KIDxUSVRMRT5UZXN0aW5nIHZhbGlkIGZvbnQgcHJvcGVy
dHkgc3BlY2lmaWNhdGlvbjwvVElUTEU+CiA8U1RZTEUgdHlwZT0idGV4dC9jc3MiPgotLm9uZSB7
Zm9udDogMjRwdCBpdGFsaWM7In0KKy5vbmUge2ZvbnQ6IDI0cHQgaXRhbGljO30KIC50d28ge2Zv
bnQ6IDI0cHQgaXRhbGljIEFyaWFsO30KIC50aHJlZSB7Zm9udDogMjRwdCBpdGFsaWMgJ0FyaWFs
Jzt9CiAuZm91ciB7Zm9udDogaXRhbGljIDI0cHQ7fQotLmZpdmUge2ZvbnQ6IGl0YWxpYyAyNHB0
IEFyaWFsOyJ9CisuZml2ZSB7Zm9udDogaXRhbGljIDI0cHQgQXJpYWw7fQogLnNpeCB7Zm9udDog
aXRhbGljIDI0cHQgJ0FyaWFsJzt9CiAuc2V2ZW4ge2ZvbnQ6IEFyaWFsIDI0cHQgaXRhbGljO30K
IC5laWdodCB7Zm9udDogJ0FyaWFsJyAyNHB0IGl0YWxpYzt9CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzhhNDYwYzFlYTE0MWM3NzEzMDY0YTIwNGNlODVmY2YzMjA0YTgwZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3RyaW5n
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE4NyBAQAorVGVzdHMgaWYgdW5jbG9zZWQgc3RyaW5n
cyBhcmUgcGFyc2VkIHByb3Blcmx5LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitUaGUgZm9sbG93aW5nIHR3byBydWxl
cyBtdXN0IGJlIGVxdWl2YWxlbnQuCisjdGVzdDEtcmVmIHsKKyAgICBmb250LWZhbWlseTogJ0lt
cGFjdCc7Cit9CisjdGVzdDEtdGVzdCB7CisgICAgZm9udC1mYW1pbHk6ICdJbXBcCithY3QnOwor
fQorW0VPTF0KK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxLXRlc3QnLCAnZm9udC1mYW1pbHknKSBp
cyBnZXRQcm9wZXJ0eSgndGVzdDEtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVy
dHkoJ3Rlc3QxLXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEtcmVm
JywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxLXRlc3QnLCAnY29sb3In
KSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEtcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0UHJvcGVydHko
J3Rlc3QxLXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFByb3BlcnR5KCd0ZXN0MS1y
ZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCisKK1RoZSBmb2xsb3dpbmcgdHdvIHJ1bGVzIG11c3Qg
YmUgZXF1aXZhbGVudC4KKyN0ZXN0Mi1yZWYgeworICAgIGZvbnQtd2VpZ2h0OiBib2xkOworfQor
I3Rlc3QyLXRlc3QgeworICAgIGZvbnQtZmFtaWx5OiAnSW1wYWN0CisgICAgY29sb3I6cmVkOwor
ICAgIGZvbnQtd2VpZ2h0OiBib2xkOworfQorW0VPTF0KK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Qy
LXRlc3QnLCAnZm9udC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDItcmVmJywgJ2ZvbnQt
ZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QyLXRlc3QnLCAnZm9udC13ZWlnaHQnKSBp
cyBnZXRQcm9wZXJ0eSgndGVzdDItcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVy
dHkoJ3Rlc3QyLXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDItcmVmJywgJ2Nv
bG9yJykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QyLXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScp
IGlzIGdldFByb3BlcnR5KCd0ZXN0Mi1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCisKK1RoZSBm
b2xsb3dpbmcgdHdvIHJ1bGVzIG11c3QgYmUgZXF1aXZhbGVudC4KKyN0ZXN0My1yZWYgeworICAg
IGNvbG9yOmdyYXk7CisgICAgZm9udC1mYW1pbHk6ICdJbXBhY3QnOworfQorI3Rlc3QzLXRlc3Qg
eworICAgIGNvbG9yOmdyYXk7CisgICAgZm9udC1mYW1pbHk6ICdJbXBhY3RbRU9MXQorUEFTUyBn
ZXRQcm9wZXJ0eSgndGVzdDMtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0
ZXN0My1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDMtdGVzdCcs
ICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0My1yZWYnLCAnZm9udC13ZWlnaHQn
KQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDMtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5
KCd0ZXN0My1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDMtdGVzdCcsICdi
YWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QzLXJlZicsICdiYWNrZ3JvdW5k
LWltYWdlJykKKworVGhlIGZvbGxvd2luZyB0d28gcnVsZXMgbXVzdCBiZSBlcXVpdmFsZW50Lgor
I3Rlc3Q0LXJlZiB7CisgICAgY29sb3I6Ymx1ZTsKK30KKyN0ZXN0NC10ZXN0IHsKKyAgICBjb2xv
cjpibHVlOworICAgIGZvbnQtZmFtaWx5OiAnSW1wYWN0CitbRU9MXQorUEFTUyBnZXRQcm9wZXJ0
eSgndGVzdDQtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0NC1yZWYn
LCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDQtdGVzdCcsICdmb250LXdl
aWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0NC1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBn
ZXRQcm9wZXJ0eSgndGVzdDQtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0NC1y
ZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDQtdGVzdCcsICdiYWNrZ3JvdW5k
LWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q0LXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykK
KworVGhlIGZvbGxvd2luZyB0d28gcnVsZXMgbXVzdCBiZSBlcXVpdmFsZW50LgorI3Rlc3Q1LXJl
ZiB7CisgICAgY29sb3I6bWFyb29uOworfQorI3Rlc3Q1LXRlc3QgeworICAgIGNvbG9yOm1hcm9v
bjsKKyAgICBmb250LWZhbWlseTogIkltcGFjdFtcYl1bRU9MXQorUEFTUyBnZXRQcm9wZXJ0eSgn
dGVzdDUtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0NS1yZWYnLCAn
Zm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDUtdGVzdCcsICdmb250LXdlaWdo
dCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0NS1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQ
cm9wZXJ0eSgndGVzdDUtdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0NS1yZWYn
LCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDUtdGVzdCcsICdiYWNrZ3JvdW5kLWlt
YWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q1LXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKKwor
VGhlIGZvbGxvd2luZyB0d28gcnVsZXMgbXVzdCBiZSBlcXVpdmFsZW50LgorQGltcG9ydCB1cmwo
J2RhdGE6dGV4dC9jc3MsI3Rlc3Q2LXRlc3R7Y29sb3I6dGVhbDt9Jyk7CisjdGVzdDYtcmVmIHsK
KyAgICBjb2xvcjp0ZWFsOworfQorW0VPTF0KK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q2LXRlc3Qn
LCAnZm9udC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDYtcmVmJywgJ2ZvbnQtZmFtaWx5
JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q2LXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQ
cm9wZXJ0eSgndGVzdDYtcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rl
c3Q2LXRlc3QnLCAnY29sb3InKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDYtcmVmJywgJ2NvbG9yJykK
K1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Q2LXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdl
dFByb3BlcnR5KCd0ZXN0Ni1yZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCisKK1RoZSBmb2xsb3dp
bmcgdHdvIHJ1bGVzIG11c3QgYmUgZXF1aXZhbGVudC4KK0BpbXBvcnQgdXJsKCAnZGF0YTp0ZXh0
L2NzcywjdGVzdDctdGVzdHtjb2xvcjpvbGl2ZTt9JyApOworI3Rlc3Q3LXJlZiB7CisgICAgY29s
b3I6b2xpdmU7Cit9CitbRU9MXQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDctdGVzdCcsICdmb250
LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0Ny1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFT
UyBnZXRQcm9wZXJ0eSgndGVzdDctdGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5
KCd0ZXN0Ny1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDctdGVz
dCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0Ny1yZWYnLCAnY29sb3InKQorUEFTUyBn
ZXRQcm9wZXJ0eSgndGVzdDctdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVy
dHkoJ3Rlc3Q3LXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKKworVGhlIGZvbGxvd2luZyB0d28g
cnVsZXMgbXVzdCBiZSBlcXVpdmFsZW50LgorQGltcG9ydCB1cmwoJ2RhdGE6dGV4dC9jc3MsI3Rl
c3Q4LXRlc3R7Y29sb3I6cHVycGxlO30nZXh0cmEpOworI3Rlc3Q4LXJlZiB7Cit9CitbRU9MXQor
UEFTUyBnZXRQcm9wZXJ0eSgndGVzdDgtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3Bl
cnR5KCd0ZXN0OC1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDgt
dGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5KCd0ZXN0OC1yZWYnLCAnZm9udC13
ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDgtdGVzdCcsICdjb2xvcicpIGlzIGdldFBy
b3BlcnR5KCd0ZXN0OC1yZWYnLCAnY29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDgtdGVz
dCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q4LXJlZicsICdiYWNr
Z3JvdW5kLWltYWdlJykKKworVGhlIGZvbGxvd2luZyB0d28gcnVsZXMgbXVzdCBiZSBlcXVpdmFs
ZW50LgorQGltcG9ydCB1cmwoZXh0cmEnZGF0YTp0ZXh0L2NzcywjdGVzdDktdGVzdHtjb2xvcjpw
dXJwbGU7fScpOworI3Rlc3Q5LXJlZiB7Cit9CitbRU9MXQorUEFTUyBnZXRQcm9wZXJ0eSgndGVz
dDktdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3BlcnR5KCd0ZXN0OS1yZWYnLCAnZm9u
dC1mYW1pbHknKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDktdGVzdCcsICdmb250LXdlaWdodCcp
IGlzIGdldFByb3BlcnR5KCd0ZXN0OS1yZWYnLCAnZm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9w
ZXJ0eSgndGVzdDktdGVzdCcsICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0OS1yZWYnLCAn
Y29sb3InKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDktdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdl
JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3Q5LXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKKworVGhl
IGZvbGxvd2luZyB0d28gcnVsZXMgbXVzdCBiZSBlcXVpdmFsZW50LgorI3Rlc3QxMC1yZWYgewor
ICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgncmVzb3VyY2VzL2dyZWVuYm94LnBuZycpOworfQor
I3Rlc3QxMC10ZXN0IHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJ3Jlc291cmNlcy9ncmVl
bmJveC5wbmcnCitbRU9MXQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEwLXRlc3QnLCAnZm9udC1m
YW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDEwLXJlZicsICdmb250LWZhbWlseScpCitQQVNT
IGdldFByb3BlcnR5KCd0ZXN0MTAtdGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3BlcnR5
KCd0ZXN0MTAtcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMC10
ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMC1yZWYnLCAnY29sb3InKQorUEFT
UyBnZXRQcm9wZXJ0eSgndGVzdDEwLXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdldFBy
b3BlcnR5KCd0ZXN0MTAtcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorCitUaGUgZm9sbG93aW5n
IHR3byBydWxlcyBtdXN0IGJlIGVxdWl2YWxlbnQuCisjdGVzdDExLXJlZiB7CisgICAgYmFja2dy
b3VuZC1pbWFnZTogdXJsKCdyZXNvdXJjZXMvcHVycGxlLW5vcHJvZmlsZS5wbmcnKTsKK30KKyN0
ZXN0MTEtdGVzdCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdyZXNvdXJjZXMvcHVycGxl
LW5vcHJvZmlsZS5wbmdbRU9MXQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDExLXRlc3QnLCAnZm9u
dC1mYW1pbHknKSBpcyBnZXRQcm9wZXJ0eSgndGVzdDExLXJlZicsICdmb250LWZhbWlseScpCitQ
QVNTIGdldFByb3BlcnR5KCd0ZXN0MTEtdGVzdCcsICdmb250LXdlaWdodCcpIGlzIGdldFByb3Bl
cnR5KCd0ZXN0MTEtcmVmJywgJ2ZvbnQtd2VpZ2h0JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Qx
MS10ZXN0JywgJ2NvbG9yJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMS1yZWYnLCAnY29sb3InKQor
UEFTUyBnZXRQcm9wZXJ0eSgndGVzdDExLXRlc3QnLCAnYmFja2dyb3VuZC1pbWFnZScpIGlzIGdl
dFByb3BlcnR5KCd0ZXN0MTEtcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKQorCitUaGUgZm9sbG93
aW5nIHR3byBydWxlcyBtdXN0IGJlIGVxdWl2YWxlbnQuCisjdGVzdDEyLXJlZiB7Cit9CisjdGVz
dDEyLXRlc3QgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgncmVzb3VyY2VzL2dyZWVuYm94
LnBuZworW0VPTF0KK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3QxMi10ZXN0JywgJ2ZvbnQtZmFtaWx5
JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMi1yZWYnLCAnZm9udC1mYW1pbHknKQorUEFTUyBnZXRQ
cm9wZXJ0eSgndGVzdDEyLXRlc3QnLCAnZm9udC13ZWlnaHQnKSBpcyBnZXRQcm9wZXJ0eSgndGVz
dDEyLXJlZicsICdmb250LXdlaWdodCcpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTItdGVzdCcs
ICdjb2xvcicpIGlzIGdldFByb3BlcnR5KCd0ZXN0MTItcmVmJywgJ2NvbG9yJykKK1BBU1MgZ2V0
UHJvcGVydHkoJ3Rlc3QxMi10ZXN0JywgJ2JhY2tncm91bmQtaW1hZ2UnKSBpcyBnZXRQcm9wZXJ0
eSgndGVzdDEyLXJlZicsICdiYWNrZ3JvdW5kLWltYWdlJykKKworVGhlIGZvbGxvd2luZyB0d28g
cnVsZXMgbXVzdCBiZSBlcXVpdmFsZW50LgorI3Rlc3QxMy1yZWYgeworICAgIGJhY2tncm91bmQt
aW1hZ2U6IHVybChyZXNvdXJjZXMvZ3JlZW5ib3gucG5nKTsKK30KKyN0ZXN0MTMtdGVzdCB7Cisg
ICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9ncmVlbmJveC5wbmcKK1tFT0xdCitQ
QVNTIGdldFByb3BlcnR5KCd0ZXN0MTMtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3Bl
cnR5KCd0ZXN0MTMtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Qx
My10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMy1yZWYnLCAnZm9u
dC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDEzLXRlc3QnLCAnY29sb3InKSBpcyBn
ZXRQcm9wZXJ0eSgndGVzdDEzLXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0
MTMtdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxMy1yZWYn
LCAnYmFja2dyb3VuZC1pbWFnZScpCisKK1RoZSBmb2xsb3dpbmcgdHdvIHJ1bGVzIG11c3QgYmUg
ZXF1aXZhbGVudC4KKyN0ZXN0MTQtcmVmIHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVz
b3VyY2VzL3B1cnBsZS1ub3Byb2ZpbGUucG5nKTsKK30KKyN0ZXN0MTQtdGVzdCB7CisgICAgYmFj
a2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9wdXJwbGUtbm9wcm9maWxlLnBuZ1tFT0xdCitQ
QVNTIGdldFByb3BlcnR5KCd0ZXN0MTQtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFByb3Bl
cnR5KCd0ZXN0MTQtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rlc3Qx
NC10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxNC1yZWYnLCAnZm9u
dC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDE0LXRlc3QnLCAnY29sb3InKSBpcyBn
ZXRQcm9wZXJ0eSgndGVzdDE0LXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0ZXN0
MTQtdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxNC1yZWYn
LCAnYmFja2dyb3VuZC1pbWFnZScpCisKK1RoZSBmb2xsb3dpbmcgdHdvIHJ1bGVzIG11c3QgYmUg
ZXF1aXZhbGVudC4KKyN0ZXN0MTUtcmVmIHsKK30KKyN0ZXN0MTUtdGVzdCB7CisgICAgYmFja2dy
b3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9ncmVlbmJveC5wbmcgZXh0YXJhKTsKK30KK1tFT0xd
CitQQVNTIGdldFByb3BlcnR5KCd0ZXN0MTUtdGVzdCcsICdmb250LWZhbWlseScpIGlzIGdldFBy
b3BlcnR5KCd0ZXN0MTUtcmVmJywgJ2ZvbnQtZmFtaWx5JykKK1BBU1MgZ2V0UHJvcGVydHkoJ3Rl
c3QxNS10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxNS1yZWYnLCAn
Zm9udC13ZWlnaHQnKQorUEFTUyBnZXRQcm9wZXJ0eSgndGVzdDE1LXRlc3QnLCAnY29sb3InKSBp
cyBnZXRQcm9wZXJ0eSgndGVzdDE1LXJlZicsICdjb2xvcicpCitQQVNTIGdldFByb3BlcnR5KCd0
ZXN0MTUtdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykgaXMgZ2V0UHJvcGVydHkoJ3Rlc3QxNS1y
ZWYnLCAnYmFja2dyb3VuZC1pbWFnZScpCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmNsb3NlZC1zdHJpbmcuaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3RyaW5nLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YThmMjg0ZmU0NzY3YzZhMWZmNTIyZjZkNzgyNDg3NWJlZjU2OTZkMQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtc3RyaW5nLmh0bWwKQEAg
LTAsMCArMSwxOTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8bGluayByZWw9InN0eWxlc2hlZXQiIGhy
ZWY9Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXN0eWxlLmNzcyI+Cis8c2NyaXB0IHNyYz0iLi4v
anMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzdHlsZT4KKyogeworICAg
IGNvbG9yOiBibGFjazsKKyAgICBmb250LWZhbWlseTogJ0NvdXJpZXInOworICAgIGZvbnQtd2Vp
Z2h0OiBub3JtYWw7Cit9Cis8L3N0eWxlPgorCis8c3R5bGUgdHlwZT0ic3R5bGUvY3NzIiBpZD0i
dGVzdDEtc3R5bGUiPgorI3Rlc3QxLXJlZiB7CisgICAgZm9udC1mYW1pbHk6ICdJbXBhY3QnOwor
fQorI3Rlc3QxLXRlc3QgeworICAgIGZvbnQtZmFtaWx5OiAnSW1wXAorYWN0JzsKK30KKzwvc3R5
bGU+CisKKzxzdHlsZSB0eXBlPSJzdHlsZS9jc3MiIGlkPSJ0ZXN0Mi1zdHlsZSI+CisjdGVzdDIt
cmVmIHsKKyAgICBmb250LXdlaWdodDogYm9sZDsKK30KKyN0ZXN0Mi10ZXN0IHsKKyAgICBmb250
LWZhbWlseTogJ0ltcGFjdAorICAgIGNvbG9yOnJlZDsKKyAgICBmb250LXdlaWdodDogYm9sZDsK
K30KKzwvc3R5bGU+CisKKzxzdHlsZSB0eXBlPSJzdHlsZS9jc3MiIGlkPSJ0ZXN0My1zdHlsZSI+
CisjdGVzdDMtcmVmIHsKKyAgICBjb2xvcjpncmF5OworICAgIGZvbnQtZmFtaWx5OiAnSW1wYWN0
JzsKK30KKyN0ZXN0My10ZXN0IHsKKyAgICBjb2xvcjpncmF5OworICAgIGZvbnQtZmFtaWx5OiAn
SW1wYWN0PC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InN0eWxlL2NzcyIgaWQ9InRlc3Q0LXN0eWxl
Ij4KKyN0ZXN0NC1yZWYgeworICAgIGNvbG9yOmJsdWU7Cit9CisjdGVzdDQtdGVzdCB7CisgICAg
Y29sb3I6Ymx1ZTsKKyAgICBmb250LWZhbWlseTogJ0ltcGFjdAorPC9zdHlsZT4KKworPHN0eWxl
IHR5cGU9InN0eWxlL2NzcyIgaWQ9InRlc3Q1LXN0eWxlIj4KKyN0ZXN0NS1yZWYgeworICAgIGNv
bG9yOm1hcm9vbjsKK30KKyN0ZXN0NS10ZXN0IHsKKyAgICBjb2xvcjptYXJvb247CisgICAgZm9u
dC1mYW1pbHk6ICJJbXBhY3QIPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InN0eWxlL2NzcyIgaWQ9
InRlc3Q2LXN0eWxlIj4KK0BpbXBvcnQgdXJsKCdkYXRhOnRleHQvY3NzLCN0ZXN0Ni10ZXN0e2Nv
bG9yOnRlYWw7fScpOworI3Rlc3Q2LXJlZiB7CisgICAgY29sb3I6dGVhbDsKK30KKzwvc3R5bGU+
CisKKzxzdHlsZSB0eXBlPSJzdHlsZS9jc3MiIGlkPSJ0ZXN0Ny1zdHlsZSI+CitAaW1wb3J0IHVy
bCggJ2RhdGE6dGV4dC9jc3MsI3Rlc3Q3LXRlc3R7Y29sb3I6b2xpdmU7fScgKTsKKyN0ZXN0Ny1y
ZWYgeworICAgIGNvbG9yOm9saXZlOworfQorPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InN0eWxl
L2NzcyIgaWQ9InRlc3Q4LXN0eWxlIj4KK0BpbXBvcnQgdXJsKCdkYXRhOnRleHQvY3NzLCN0ZXN0
OC10ZXN0e2NvbG9yOnB1cnBsZTt9J2V4dHJhKTsKKyN0ZXN0OC1yZWYgeworfQorPC9zdHlsZT4K
KworPHN0eWxlIHR5cGU9InN0eWxlL2NzcyIgaWQ9InRlc3Q5LXN0eWxlIj4KK0BpbXBvcnQgdXJs
KGV4dHJhJ2RhdGE6dGV4dC9jc3MsI3Rlc3Q5LXRlc3R7Y29sb3I6cHVycGxlO30nKTsKKyN0ZXN0
OS1yZWYgeworfQorPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InN0eWxlL2NzcyIgaWQ9InRlc3Qx
MC1zdHlsZSI+CisjdGVzdDEwLXJlZiB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKCdyZXNv
dXJjZXMvZ3JlZW5ib3gucG5nJyk7Cit9CisjdGVzdDEwLXRlc3QgeworICAgIGJhY2tncm91bmQt
aW1hZ2U6IHVybCgncmVzb3VyY2VzL2dyZWVuYm94LnBuZycKKzwvc3R5bGU+CisKKzxzdHlsZSB0
eXBlPSJzdHlsZS9jc3MiIGlkPSJ0ZXN0MTEtc3R5bGUiPgorI3Rlc3QxMS1yZWYgeworICAgIGJh
Y2tncm91bmQtaW1hZ2U6IHVybCgncmVzb3VyY2VzL3B1cnBsZS1ub3Byb2ZpbGUucG5nJyk7Cit9
CisjdGVzdDExLXRlc3QgeworICAgIGJhY2tncm91bmQtaW1hZ2U6IHVybCgncmVzb3VyY2VzL3B1
cnBsZS1ub3Byb2ZpbGUucG5nPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InN0eWxlL2NzcyIgaWQ9
InRlc3QxMi1zdHlsZSI+CisjdGVzdDEyLXJlZiB7Cit9CisjdGVzdDEyLXRlc3QgeworICAgIGJh
Y2tncm91bmQtaW1hZ2U6IHVybCgncmVzb3VyY2VzL2dyZWVuYm94LnBuZworPC9zdHlsZT4KKwor
PHN0eWxlIHR5cGU9InN0eWxlL2NzcyIgaWQ9InRlc3QxMy1zdHlsZSI+CisjdGVzdDEzLXJlZiB7
CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9ncmVlbmJveC5wbmcpOworfQor
I3Rlc3QxMy10ZXN0IHsKKyAgICBiYWNrZ3JvdW5kLWltYWdlOiB1cmwocmVzb3VyY2VzL2dyZWVu
Ym94LnBuZworPC9zdHlsZT4KKworPHN0eWxlIHR5cGU9InN0eWxlL2NzcyIgaWQ9InRlc3QxNC1z
dHlsZSI+CisjdGVzdDE0LXJlZiB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNl
cy9wdXJwbGUtbm9wcm9maWxlLnBuZyk7Cit9CisjdGVzdDE0LXRlc3QgeworICAgIGJhY2tncm91
bmQtaW1hZ2U6IHVybChyZXNvdXJjZXMvcHVycGxlLW5vcHJvZmlsZS5wbmc8L3N0eWxlPgorCis8
c3R5bGUgdHlwZT0ic3R5bGUvY3NzIiBpZD0idGVzdDE1LXN0eWxlIj4KKyN0ZXN0MTUtcmVmIHsK
K30KKyN0ZXN0MTUtdGVzdCB7CisgICAgYmFja2dyb3VuZC1pbWFnZTogdXJsKHJlc291cmNlcy9n
cmVlbmJveC5wbmcgZXh0YXJhKTsKK30KKzwvc3R5bGU+CisKKzxzY3JpcHQ+Cit2YXIgbnVtVGVz
dCA9IDE1OworCitmdW5jdGlvbiBnZXRQcm9wZXJ0eShlbGVtZW50SWQsIG5hbWUpCit7CisgICAg
cmV0dXJuIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVs
ZW1lbnRJZCkpLmdldFByb3BlcnR5VmFsdWUobmFtZSk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKSB7
CisgICAgZGVzY3JpcHRpb24oIlRlc3RzIGlmIHVuY2xvc2VkIHN0cmluZ3MgYXJlIHBhcnNlZCBw
cm9wZXJseS4iKTsKKyAgICBzaG91bGRCZVRydWUoInN1Y2Nlc3NmdWxseVBhcnNlZCIpOworCisg
ICAgdmFyIGNvbnNvbGUgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpOworCisg
ICAgZm9yICh2YXIgaSA9IDE7IGkgPD0gbnVtVGVzdDsgaSsrKSB7CisgICAgICAgIGNvbnNvbGUu
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiYnIiKSk7CisgICAgICAgIGNvbnNv
bGUuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIlRoZSBmb2xsb3dpbmcgdHdv
IHJ1bGVzIG11c3QgYmUgZXF1aXZhbGVudC4iKSk7CisgICAgICAgIGNvbnNvbGUuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3Qi
ICsgaSArICItc3R5bGUiKS5pbm5lckhUTUwucmVwbGFjZSgiXGIiLCAiW1xcYl0iKSkpOworICAg
ICAgICBjb25zb2xlLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCJbRU9MXSIp
KTsKKyAgICAgICAgY29uc29sZS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJi
ciIpKTsKKworICAgICAgICBzaG91bGRCZSgiZ2V0UHJvcGVydHkoJ3Rlc3QiICsgaSArICItdGVz
dCcsICdmb250LWZhbWlseScpIiwgImdldFByb3BlcnR5KCd0ZXN0IiArIGkgKyAiLXJlZicsICdm
b250LWZhbWlseScpIik7CisgICAgICAgIHNob3VsZEJlKCJnZXRQcm9wZXJ0eSgndGVzdCIgKyBp
ICsgIi10ZXN0JywgJ2ZvbnQtd2VpZ2h0JykiLCAiZ2V0UHJvcGVydHkoJ3Rlc3QiICsgaSArICIt
cmVmJywgJ2ZvbnQtd2VpZ2h0JykiKTsKKyAgICAgICAgc2hvdWxkQmUoImdldFByb3BlcnR5KCd0
ZXN0IiArIGkgKyAiLXRlc3QnLCAnY29sb3InKSIsICJnZXRQcm9wZXJ0eSgndGVzdCIgKyBpICsg
Ii1yZWYnLCAnY29sb3InKSIpOworICAgICAgICBzaG91bGRCZSgiZ2V0UHJvcGVydHkoJ3Rlc3Qi
ICsgaSArICItdGVzdCcsICdiYWNrZ3JvdW5kLWltYWdlJykiLCAiZ2V0UHJvcGVydHkoJ3Rlc3Qi
ICsgaSArICItcmVmJywgJ2JhY2tncm91bmQtaW1hZ2UnKSIpOworICAgIH0KKworICAgIGRlYnVn
KCc8YnIgLz48c3BhbiBjbGFzcz0icGFzcyI+VEVTVCBDT01QTEVURTwvc3Bhbj4nKTsKK30KKwor
PC9zY3JpcHQ+CisKKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0idGVzdCgpIj4KKzxwIGlkPSJkZXNj
cmlwdGlvbiI+PC9wPgorPGhyLz4KKzxkaXYgaWQ9InRlc3QtZWxlbWVudHMiPgorPC9kaXY+Cis8
aHIvPgorPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+Cit2YXIgdGVzdEVsZW1lbnRzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3Qt
ZWxlbWVudHMiKTsKKworZm9yICh2YXIgaSA9IDE7IGkgPD0gbnVtVGVzdDsgaSsrKSB7CisgICAg
dmFyIHJlZkVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgdmFy
IHRlc3RFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOworICAgIHJlZkVs
ZW1lbnQuaW5uZXJIVE1MID0gIlRlc3QgIiArIGkgKyAiKHJlZikgIjsKKyAgICB0ZXN0RWxlbWVu
dC5pbm5lckhUTUwgPSAiVGVzdCAiICsgaSArICIodGVzdCkgIjsKKyAgICByZWZFbGVtZW50Lmlk
ID0gInRlc3QiICsgaSArICItcmVmIjsKKyAgICB0ZXN0RWxlbWVudC5pZCA9ICJ0ZXN0IiArIGkg
KyAiLXRlc3QiOworICAgIHJlZkVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwor
ICAgIHRlc3RFbGVtZW50LnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKKyAgICB0ZXN0RWxl
bWVudHMuYXBwZW5kQ2hpbGQocmVmRWxlbWVudCk7CisgICAgdGVzdEVsZW1lbnRzLmFwcGVuZENo
aWxkKHRlc3RFbGVtZW50KTsKK30KKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7Cis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9n
IGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDgwM2EzNWU4YjE4NWNkYjY5MzEyY2M2MWI4NTM2
MjgyOTY5YmQ5Ny4uMzVlZDc2ZTdjOWUyMjQ3NGY3YTU4Zjk1Y2FhYTU2ODUwOTNiOWQyOCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyNyBAQAorMjAxMC0wOC0wOSAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBX
ZWJLaXQgcHJvcGVybHkgaGFuZGxlIHVuY2xvc2VkIHN0cmluZy91cmwgYXQgdGhlIGVuZCBvZiBh
IHN0eWxlIHNoZWV0LAorICAgICAgICBhcyBGaXJlZm94IDMuNiBhbmQgT3BlcmEgMTAuMTAgZG9l
cy4KKworICAgICAgICBodHRwOi8vd3d3LnczLm9yZy9UUi9DU1MyMS9zeW5kYXRhLmh0bWwjcGFy
c2luZy1lcnJvcnMgc3BlY2lmaWVzIGhvdyB1bmNsb3NlZCBzdHJpbmdzIG11c3QgYmUgaGFuZGxl
ZC4KKyAgICAgICAgV2l0aG91dCB0aGlzIHBhdGNoLCBXZWJLaXQgaWdub3JlcyB1bmNsb3NlZCBz
dHJpbmdzL3VybHMgYXQgdGhlIGVuZCBvZiBzdHlsZXNoZWV0LgorICAgICAgICBUaGlzIHBhdGNo
IHNvbHZlcyB0aGUgYWJvdmUgaXNzdWUgYnkgdHJhY2tpbmcgb3BlbmluZyBxdW90ZXMvYnJhY2Vz
IHNlcGFyYXRlbHkgZnJvbSBjbG9zaW5nIG9uZXMuCisgICAgICAgIEF0IHRoZSBlbmQgb2YgYSBm
aWxlLCB0aGUgcGVuZGluZyBzdHJpbmcvdXJsLCBpZiBhbnksIGlzIGZsdXNoZWQgYXMgYSB0b2tl
bi4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQw
NjcKKworICAgICAgICBUZXN0OiBmYXN0L2Nzcy9wYXJzaW5nLXVuY2xvc2VkLXN0cmluZy5odG1s
CisKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlcjo6Q1NTUGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6dGV4dCk6Cisg
ICAgICAgICogY3NzL0NTU1BhcnNlci5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjp5
eW1vcmUpOgorICAgICAgICAqIGNzcy9tYWtldG9rZW5pemVyOgorICAgICAgICAqIGNzcy90b2tl
bml6ZXIuZmxleDoKKwogMjAxMC0wOC0wOCAgQXJpeWEgSGlkYXlhdCAgPGFyaXlhQHNlbmNoYS5j
b20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgQW50b25pbyBHb21lcy4KZGlmZiAtLWdpdCBhL1dl
YkNvcmUvY3NzL0NTU1BhcnNlci5jcHAgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwCmluZGV4
IGFhNmNkZDk4M2Y2YmRkNGMyMGIzNjc5OTU1YTBkYjg5NTYzZGY3YjAuLmRkZGRmNTU4N2MwNGI1
ZTVjYWE0NjQxZDM4ZDZkNTRkNmMzMDcwYWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlci5jcHAKKysrIGIvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmNwcApAQCAtMTUzLDYgKzE1Mywx
NCBAQCBDU1NQYXJzZXI6OkNTU1BhcnNlcihib29sIHN0cmljdFBhcnNpbmcpCiAgICAgLCB5eV9z
dGFydCgxKQogICAgICwgbV9saW5lTnVtYmVyKDApCiAgICAgLCBtX2xhc3RTZWxlY3RvckxpbmVO
dW1iZXIoMCkKKyAgICAsIHl5X21vcmVfZmxhZygwKQorICAgICwgeXlfbW9yZV9sZW4oMCkKKyAg
ICAsIHN0cmluZ1ByZVN0YXRlKDApIC8vIDA6IElOSVRJQUwgc3RhdGUKKyAgICAsIHVyaVByZVN0
YXRlKDApIC8vIDA6IElOSVRJQUwgc3RhdGUKKyAgICAsIHN0cmluZ09yVXJpQ29udGVudExlbmd0
aCgwKQorICAgICwgc3RyaW5nT3JVcmlDb250ZW50T2Zmc2V0KDApCisgICAgLCBtX2xpbmUoMCkK
KyAgICAsIG1fbGFzdFNlbGVjdG9yTGluZSgwKQogICAgICwgbV9hbGxvd0ltcG9ydFJ1bGVzKHRy
dWUpCiAgICAgLCBtX2FsbG93VmFyaWFibGVzUnVsZXModHJ1ZSkKICAgICAsIG1fYWxsb3dOYW1l
c3BhY2VEZWNsYXJhdGlvbnModHJ1ZSkKQEAgLTUwMjMsMzEgKzUwMzEsMTMgQEAgVUNoYXIqIENT
U1BhcnNlcjo6dGV4dChpbnQgKmxlbmd0aCkKICAgICBpbnQgbCA9IHl5bGVuZzsKICAgICBzd2l0
Y2ggKHl5VG9rKSB7CiAgICAgY2FzZSBTVFJJTkc6Ci0gICAgICAgIGwtLTsKLSAgICAgICAgLyog
bm9icmVhayAqLworICAgICAgICBicmVhazsKICAgICBjYXNlIEhFWDoKICAgICBjYXNlIElEU0VM
OgogICAgICAgICBzdGFydCsrOwogICAgICAgICBsLS07CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgVVJJOgotICAgICAgICAvLyAidXJsKCJ7d317c3RyaW5nfXt3fSIpIgotICAgICAgICAvLyAi
dXJsKCJ7d317dXJsfXt3fSIpIgotICAgICAgICAvLyBzdHJpcCAidXJsKCIgYW5kICIpIgotICAg
ICAgICBzdGFydCArPSA0OwotICAgICAgICBsIC09IDU7Ci0gICAgICAgIC8vIHN0cmlwIHt3fQot
ICAgICAgICB3aGlsZSAobCAmJiBpc0NTU1doaXRlc3BhY2UoKnN0YXJ0KSkgewotICAgICAgICAg
ICAgKytzdGFydDsKLSAgICAgICAgICAgIC0tbDsKLSAgICAgICAgfQotICAgICAgICB3aGlsZSAo
bCAmJiBpc0NTU1doaXRlc3BhY2Uoc3RhcnRbbCAtIDFdKSkKLSAgICAgICAgICAgIC0tbDsKLSAg
ICAgICAgaWYgKGwgJiYgKCpzdGFydCA9PSAnIicgfHwgKnN0YXJ0ID09ICdcJycpKSB7Ci0gICAg
ICAgICAgICBBU1NFUlQobCA+PSAyICYmIHN0YXJ0W2wgLSAxXSA9PSAqc3RhcnQpOwotICAgICAg
ICAgICAgKytzdGFydDsKLSAgICAgICAgICAgIGwgLT0gMjsKLSAgICAgICAgfQogICAgICAgICBi
cmVhazsKICAgICBjYXNlIFZBUkNBTEw6CiAgICAgICAgIC8vICItd2Via2l0LXZhcigie3d9e2lk
ZW50fXt3fSIpIgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyLmggYi9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuaAppbmRleCA1ZDc2YTQxMjEyM2ViMDlmZmY0YzcwZTMxZmNmYjE1ZmNh
ZTljMGMzLi4wNDVmNDMyODk5OThhYzRmYTBlYzBjYWE0YTVkZjdiZmEwYmI4M2QzIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAorKysgYi9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIu
aApAQCAtMjc4LDYgKzI3OCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBw
YXJzZVBhZ2UoaW50IHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpOwogICAgICAgICBib29sIHBhcnNl
U2l6ZShpbnQgcHJvcElkLCBib29sIGltcG9ydGFudCk7CiAgICAgICAgIFNpemVQYXJhbWV0ZXJU
eXBlIHBhcnNlU2l6ZVBhcmFtZXRlcihDU1NWYWx1ZUxpc3QqIHBhcnNlZFZhbHVlcywgQ1NTUGFy
c2VyVmFsdWUqIHZhbHVlLCBTaXplUGFyYW1ldGVyVHlwZSBwcmV2UGFyYW1UeXBlKTsKKyAgICAg
ICAgLy8gVXNlZCBpbiBmbGV4LWdlbmVyYXRlZCBjb2RlLgorICAgICAgICB2b2lkIHl5bW9yZSgp
IHt5eV9tb3JlX2ZsYWcgPSAxO30KIAogICAgICAgICBVQ2hhciogbV9kYXRhOwogICAgICAgICBV
Q2hhciogeXl0ZXh0OwpAQCAtMjkxLDYgKzI5MywxOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIGludCBtX2xpbmVOdW1iZXI7CiAgICAgICAgIGludCBtX2xhc3RTZWxlY3RvckxpbmVO
dW1iZXI7CiAKKyAgICAgICAgLy8gVXNlZCBpbiBmbGV4LWdlbmVyYXRlZCBjb2RlLgorICAgICAg
ICBpbnQgeXlfbW9yZV9mbGFnOworICAgICAgICBpbnQgeXlfbW9yZV9sZW47CisKKyAgICAgICAg
aW50IHN0cmluZ1ByZVN0YXRlOworICAgICAgICBpbnQgdXJpUHJlU3RhdGU7CisgICAgICAgIGlu
dCBzdHJpbmdPclVyaUNvbnRlbnRMZW5ndGg7CisgICAgICAgIGludCBzdHJpbmdPclVyaUNvbnRl
bnRPZmZzZXQ7CisKKyAgICAgICAgaW50IG1fbGluZTsKKyAgICAgICAgaW50IG1fbGFzdFNlbGVj
dG9yTGluZTsKKwogICAgICAgICBib29sIG1fYWxsb3dJbXBvcnRSdWxlczsKICAgICAgICAgYm9v
bCBtX2FsbG93VmFyaWFibGVzUnVsZXM7CiAgICAgICAgIGJvb2wgbV9hbGxvd05hbWVzcGFjZURl
Y2xhcmF0aW9uczsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvY3NzL21ha2V0b2tlbml6ZXIgYi9XZWJD
b3JlL2Nzcy9tYWtldG9rZW5pemVyCmluZGV4IDkwZDVmY2JmMjFiY2M4ODUwNDczMjFhZThhMDVm
NGNlMzE4MmZlYzkuLmExZWViMTMxMTkxMmZmNGQ5Yjk5MjE4YWI5NmEyODlmZDYxZDQ3NDUgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvY3NzL21ha2V0b2tlbml6ZXIKKysrIGIvV2ViQ29yZS9jc3MvbWFr
ZXRva2VuaXplcgpAQCAtNDcsOCArNDcsMTYgQEAgcHJpbnQ8PEVORAogI2luY2x1ZGUgIkNTU0dy
YW1tYXIuaCIKIAogI2RlZmluZSBJTklUSUFMIDAKLSNkZWZpbmUgbWVkaWFxdWVyeSAxCi0jZGVm
aW5lIGZvcmtleXdvcmQgMgorI2RlZmluZSBtZWRpYVF1ZXJ5U3RhdGUgMQorI2RlZmluZSBmb3JL
ZXl3b3JkU3RhdGUgMgorI2RlZmluZSBkb3VibGVRdW90ZWRTdHJpbmdTdGF0ZSAzCisjZGVmaW5l
IHNpbmdsZVF1b3RlZFN0cmluZ1N0YXRlIDQKKyNkZWZpbmUgdXJpU3RhdGUgNQorI2RlZmluZSB1
cmlQZW5kaW5nU3RhdGUgNgorCisvLyBVc2VkIGluIGZsZXgtZ2VuZXJhdGVkIGNvZGUuCisjZGVm
aW5lIFlZX1NUQVJUICgoKHl5X3N0YXJ0KSAtIDEpIC8gMikKKyNkZWZpbmUgeXl0ZXh0X3B0ciB5
eXRleHQKIAogLyogQzk5IHN5c3RlbXMgaGF2ZSA8aW50dHlwZXMuaD4uIE5vbi1DOTkgc3lzdGVt
cyBtYXkgb3IgbWF5IG5vdC4gKi8KIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9jc3MvdG9rZW5pemVy
LmZsZXggYi9XZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleAppbmRleCAyOTBjNTkwMzFkNzA0MmY4
MmRkNmQ4MWExNWM4Y2Y3MWM1NGEyM2ZmLi4yYmE4MGI1YWE4ZWFkZDZlYmUzNzRmZWYwNTRjMThk
OTZkZDhiNzU2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleAorKysgYi9X
ZWJDb3JlL2Nzcy90b2tlbml6ZXIuZmxleApAQCAtMiwyNyArMiwzMiBAQAogJW9wdGlvbiBub3l5
d3JhcAogJW9wdGlvbiA4Yml0CiAlb3B0aW9uIHN0YWNrCi0lcyBtZWRpYXF1ZXJ5Ci0lcyBmb3Jr
ZXl3b3JkCislcyBtZWRpYVF1ZXJ5U3RhdGUKKyVzIGZvcktleXdvcmRTdGF0ZQorJXggZG91Ymxl
UXVvdGVkU3RyaW5nU3RhdGUKKyV4IHNpbmdsZVF1b3RlZFN0cmluZ1N0YXRlCisleCB1cmlTdGF0
ZQorJXggdXJpUGVuZGluZ1N0YXRlCiAKIGggICAgICAgICAgICAgICBbMC05YS1mQS1GXQogbm9u
YXNjaWkgICAgICAgIFtcMjAwLVwzNzddCiB1bmljb2RlICAgICAgICAgXFx7aH17MSw2fVsgXHRc
clxuXGZdPwotZXNjYXBlICAgICAgICAgIHt1bmljb2RlfXxcXFsgLX5cMjAwLVwzNzddCitlc2Nh
cGUgICAgICAgICAge3VuaWNvZGV9fFxcW1xcIC1+XDIwMC1cMzc3XQogbm1zdGFydCAgICAgICAg
IFtfYS16QS1aXXx7bm9uYXNjaWl9fHtlc2NhcGV9CiBubWNoYXIgICAgICAgICAgW19hLXpBLVow
LTktXXx7bm9uYXNjaWl9fHtlc2NhcGV9Ci1zdHJpbmcxICAgICAgICAgXCIoW1x0ICEjJCUmKC1+
XXxcXHtubH18XCd8e25vbmFzY2lpfXx7ZXNjYXBlfSkqXCIKLXN0cmluZzIgICAgICAgICBcJyhb
XHQgISMkJSYoLX5dfFxce25sfXxcInx7bm9uYXNjaWl9fHtlc2NhcGV9KSpcJworZHF1b3RlZF9j
b250ZW50IChbXHQgISMkJSYoLVxbXF0tfl18XFx7bmx9fFwnfHtub25hc2NpaX18e2VzY2FwZX0p
Kgorc3F1b3RlZF9jb250ZW50IChbXHQgISMkJSYoLVxbXF0tfl18XFx7bmx9fFwifHtub25hc2Np
aX18e2VzY2FwZX0pKgogaGV4Y29sb3IgICAgICAgIHtofXszfXx7aH17Nn0KIAogaWRlbnQgICAg
ICAgICAgIC0/e25tc3RhcnR9e25tY2hhcn0qCiBuYW1lICAgICAgICAgICAge25tY2hhcn0rCiBu
dW0gICAgICAgICAgICAgWzAtOV0rfFswLTldKiIuIlswLTldKwogaW50bnVtICAgICAgICAgIFsw
LTldKwotc3RyaW5nICAgICAgICAgIHtzdHJpbmcxfXx7c3RyaW5nMn0KIHVybCAgICAgICAgICAg
ICAoWyEjJCUmKi1+XXx7bm9uYXNjaWl9fHtlc2NhcGV9KSoKIHcgICAgICAgICAgICAgICBbIFx0
XHJcblxmXSoKIG5sICAgICAgICAgICAgICBcbnxcclxufFxyfFxmCitkcXVvdGUgICAgICAgICAg
XCIKK3NxdW90ZSAgICAgICAgICBcJwogcmFuZ2UgICAgICAgICAgIFw/ezEsNn18e2h9KFw/ezAs
NX18e2h9KFw/ezAsNH18e2h9KFw/ezAsM318e2h9KFw/ezAsMn18e2h9KFw/P3x7aH0pKSkpKQog
bnRoICAgICAgICAgICAgIFtcKy1dP3tpbnRudW19Km4oW1wrLV17aW50bnVtfSk/CiAKQEAgLTM5
LDE5ICs0NCw2NCBAQCBudGggICAgICAgICAgICAgW1wrLV0/e2ludG51bX0qbihbXCstXXtpbnRu
dW19KT8KICJePSIgICAgICAgICAgICAgICAgICAgIHt5eVRvayA9IEJFR0lOU1dJVEg7IHJldHVy
biB5eVRvazt9CiAiJD0iICAgICAgICAgICAgICAgICAgICB7eXlUb2sgPSBFTkRTV0lUSDsgcmV0
dXJuIHl5VG9rO30KICIqPSIgICAgICAgICAgICAgICAgICAgIHt5eVRvayA9IENPTlRBSU5TOyBy
ZXR1cm4geXlUb2s7fQotPG1lZGlhcXVlcnk+Im5vdCIgICAgICAge3l5VG9rID0gTUVESUFfTk9U
OyByZXR1cm4geXlUb2s7fQotPG1lZGlhcXVlcnk+Im9ubHkiICAgICAge3l5VG9rID0gTUVESUFf
T05MWTsgcmV0dXJuIHl5VG9rO30KLTxtZWRpYXF1ZXJ5PiJhbmQiICAgICAgIHt5eVRvayA9IE1F
RElBX0FORDsgcmV0dXJuIHl5VG9rO30KLTxmb3JrZXl3b3JkPiJmb3IiICAgICAgIHtCRUdJTiht
ZWRpYXF1ZXJ5KTsgeXlUb2sgPSBWQVJJQUJMRVNfRk9SOyByZXR1cm4geXlUb2s7IH0KKzxtZWRp
YVF1ZXJ5U3RhdGU+Im5vdCIgIHt5eVRvayA9IE1FRElBX05PVDsgcmV0dXJuIHl5VG9rO30KKzxt
ZWRpYVF1ZXJ5U3RhdGU+Im9ubHkiIHt5eVRvayA9IE1FRElBX09OTFk7IHJldHVybiB5eVRvazt9
Cis8bWVkaWFRdWVyeVN0YXRlPiJhbmQiICB7eXlUb2sgPSBNRURJQV9BTkQ7IHJldHVybiB5eVRv
azt9Cis8Zm9yS2V5d29yZFN0YXRlPiJmb3IiICB7QkVHSU4obWVkaWFRdWVyeVN0YXRlKTsgeXlU
b2sgPSBWQVJJQUJMRVNfRk9SOyByZXR1cm4geXlUb2s7IH0KKworPElOSVRJQUwsbWVkaWFRdWVy
eVN0YXRlLGZvcktleXdvcmRTdGF0ZSx1cmlTdGF0ZT57CisgICAge2RxdW90ZX0gICAgICAgICAg
ICB7c3RyaW5nUHJlU3RhdGUgPSBZWV9TVEFSVDsgc3RyaW5nT3JVcmlDb250ZW50TGVuZ3RoID0g
MDsgQkVHSU4oZG91YmxlUXVvdGVkU3RyaW5nU3RhdGUpO30KKyAgICB7c3F1b3RlfSAgICAgICAg
ICAgIHtzdHJpbmdQcmVTdGF0ZSA9IFlZX1NUQVJUOyBzdHJpbmdPclVyaUNvbnRlbnRMZW5ndGgg
PSAwOyBCRUdJTihzaW5nbGVRdW90ZWRTdHJpbmdTdGF0ZSk7fQorfQorPGRvdWJsZVF1b3RlZFN0
cmluZ1N0YXRlPntkcXVvdGVkX2NvbnRlbnR9IHwKKzxzaW5nbGVRdW90ZWRTdHJpbmdTdGF0ZT57
c3F1b3RlZF9jb250ZW50fSB7c3RyaW5nT3JVcmlDb250ZW50TGVuZ3RoID0geXlsZW5nOyBzdHJp
bmdPclVyaUNvbnRlbnRPZmZzZXQgPSAteXlsZW5nOyB5eW1vcmUoKTt9Cis8ZG91YmxlUXVvdGVk
U3RyaW5nU3RhdGU+e2RxdW90ZX0gfAorPHNpbmdsZVF1b3RlZFN0cmluZ1N0YXRlPntzcXVvdGV9
IHsKKyAgICBCRUdJTihzdHJpbmdQcmVTdGF0ZSA9PSB1cmlTdGF0ZSA/IHVyaVBlbmRpbmdTdGF0
ZSA6IHN0cmluZ1ByZVN0YXRlKTsKKyAgICBpZiAoc3RyaW5nUHJlU3RhdGUgPT0gdXJpU3RhdGUp
IHsKKyAgICAgICAgc3RyaW5nT3JVcmlDb250ZW50T2Zmc2V0IC09IHl5bGVuZzsKKyAgICAgICAg
eXltb3JlKCk7CisgICAgfSBlbHNlIHsKKyAgICAgICAgeXlsZW5nID0gc3RyaW5nT3JVcmlDb250
ZW50TGVuZ3RoOworICAgICAgICB5eXRleHQgKz0gc3RyaW5nT3JVcmlDb250ZW50T2Zmc2V0Owor
ICAgICAgICB5eVRvayA9IFNUUklORzsKKyAgICAgICAgcmV0dXJuIHl5VG9rOworICAgIH0KK30K
Kzxkb3VibGVRdW90ZWRTdHJpbmdTdGF0ZSxzaW5nbGVRdW90ZWRTdHJpbmdTdGF0ZT57bmx9fC4g
e0JFR0lOKElOSVRJQUwpO30KKzw8RU9GPj4geworICAgIC8vIDxkb3VibGVRdW90ZWRTdHJpbmdT
dGF0ZSxzaW5nbGVRdW90ZWRTdHJpbmdTdGF0ZT48PEVPRj4+IGRvZXNuJ3Qgd29yayBmb3Igc29t
ZSB1bmtub3duIHJlYXNvbnMuIEhlbmNlIHRoZSB1c2Ugb2YgdGhlIHN3aXRjaCBiZWxvdy4KKyAg
ICBzd2l0Y2ggKFlZX1NUQVJUKSB7CisgICAgY2FzZSB1cmlTdGF0ZToKKyAgICBjYXNlIGRvdWJs
ZVF1b3RlZFN0cmluZ1N0YXRlOgorICAgIGNhc2Ugc2luZ2xlUXVvdGVkU3RyaW5nU3RhdGU6Cisg
ICAgeworICAgICAgICAvLyBSZW1vdmUgdGhlICdcMCcgcmVwcmVzZW50aW5nIEVPRi4KKyAgICAg
ICAgLS15eWxlbmc7CisgICAgICAgIHl5VG9rID0gKHN0cmluZ1ByZVN0YXRlID09IHVyaVN0YXRl
IHx8IFlZX1NUQVJUID09IHVyaVN0YXRlKSA/IFVSSSA6IFNUUklORzsKKyAgICAgICAgQkVHSU4o
SU5JVElBTCk7CisgICAgICAgIHJldHVybiB5eVRvazsKKyAgICB9CisgICAgY2FzZSB1cmlQZW5k
aW5nU3RhdGU6CisgICAgeworICAgICAgICB5eWxlbmcgPSBzdHJpbmdPclVyaUNvbnRlbnRMZW5n
dGg7CisgICAgICAgIHl5dGV4dCArPSBzdHJpbmdPclVyaUNvbnRlbnRPZmZzZXQ7CisgICAgICAg
IHl5VG9rID0gVVJJOworICAgICAgICBCRUdJTihJTklUSUFMKTsKKyAgICAgICAgcmV0dXJuIHl5
VG9rOworICAgIH0KKyAgICBkZWZhdWx0OgorICAgICAgICB5eXRlcm1pbmF0ZSgpOworICAgIH0K
K30KIAote3N0cmluZ30gICAgICAgICAgICAgICAge3l5VG9rID0gU1RSSU5HOyByZXR1cm4geXlU
b2s7fQoge2lkZW50fSAgICAgICAgICAgICAgICAge3l5VG9rID0gSURFTlQ7IHJldHVybiB5eVRv
azt9CiB7bnRofSAgICAgICAgICAgICAgICAgICB7eXlUb2sgPSBOVEg7IHJldHVybiB5eVRvazt9
CiAKICIjIntoZXhjb2xvcn0gICAgICAgICAgIHt5eVRvayA9IEhFWDsgcmV0dXJuIHl5VG9rO30K
ICIjIntpZGVudH0gICAgICAgICAgICAgIHt5eVRvayA9IElEU0VMOyByZXR1cm4geXlUb2s7fQog
Ci0iQGltcG9ydCIgICAgICAgICAgICAgICB7QkVHSU4obWVkaWFxdWVyeSk7IHl5VG9rID0gSU1Q
T1JUX1NZTTsgcmV0dXJuIHl5VG9rO30KKyJAaW1wb3J0IiAgICAgICAgICAgICAgIHtCRUdJTiht
ZWRpYVF1ZXJ5U3RhdGUpOyB5eVRvayA9IElNUE9SVF9TWU07IHJldHVybiB5eVRvazt9CiAiQHBh
Z2UiICAgICAgICAgICAgICAgICB7eXlUb2sgPSBQQUdFX1NZTTsgcmV0dXJuIHl5VG9rO30KICJA
dG9wLWxlZnQtY29ybmVyIiAgICAgIHt5eVRvayA9IFRPUExFRlRDT1JORVJfU1lNOyByZXR1cm4g
eXlUb2s7fQogIkB0b3AtbGVmdCIgICAgICAgICAgICAge3l5VG9rID0gVE9QTEVGVF9TWU07IHJl
dHVybiB5eVRvazt9CkBAIC02OSwxNyArMTE5LDE3IEBAIG50aCAgICAgICAgICAgICBbXCstXT97
aW50bnVtfSpuKFtcKy1de2ludG51bX0pPwogIkByaWdodC10b3AiICAgICAgICAgICAge3l5VG9r
ID0gUklHSFRUT1BfU1lNOyByZXR1cm4geXlUb2s7fQogIkByaWdodC1taWRkbGUiICAgICAgICAg
e3l5VG9rID0gUklHSFRNSURETEVfU1lNOyByZXR1cm4geXlUb2s7fQogIkByaWdodC1ib3R0b20i
ICAgICAgICAge3l5VG9rID0gUklHSFRCT1RUT01fU1lNOyByZXR1cm4geXlUb2s7fQotIkBtZWRp
YSIgICAgICAgICAgICAgICAge0JFR0lOKG1lZGlhcXVlcnkpOyB5eVRvayA9IE1FRElBX1NZTTsg
cmV0dXJuIHl5VG9rO30KKyJAbWVkaWEiICAgICAgICAgICAgICAgIHtCRUdJTihtZWRpYVF1ZXJ5
U3RhdGUpOyB5eVRvayA9IE1FRElBX1NZTTsgcmV0dXJuIHl5VG9rO30KICJAZm9udC1mYWNlIiAg
ICAgICAgICAgIHt5eVRvayA9IEZPTlRfRkFDRV9TWU07IHJldHVybiB5eVRvazt9CiAiQGNoYXJz
ZXQiICAgICAgICAgICAgICB7eXlUb2sgPSBDSEFSU0VUX1NZTTsgcmV0dXJuIHl5VG9rO30KICJA
bmFtZXNwYWNlIiAgICAgICAgICAgIHt5eVRvayA9IE5BTUVTUEFDRV9TWU07IHJldHVybiB5eVRv
azsgfQogIkAtd2Via2l0LXJ1bGUiICAgICAgICAge3l5VG9rID0gV0VCS0lUX1JVTEVfU1lNOyBy
ZXR1cm4geXlUb2s7IH0KICJALXdlYmtpdC1kZWNscyIgICAgICAgIHt5eVRvayA9IFdFQktJVF9E
RUNMU19TWU07IHJldHVybiB5eVRvazsgfQogIkAtd2Via2l0LXZhbHVlIiAgICAgICAge3l5VG9r
ID0gV0VCS0lUX1ZBTFVFX1NZTTsgcmV0dXJuIHl5VG9rOyB9Ci0iQC13ZWJraXQtbWVkaWFxdWVy
eSIgICB7QkVHSU4obWVkaWFxdWVyeSk7IHl5VG9rID0gV0VCS0lUX01FRElBUVVFUllfU1lNOyBy
ZXR1cm4geXlUb2s7IH0KKyJALXdlYmtpdC1tZWRpYXF1ZXJ5IiAgIHtCRUdJTihtZWRpYVF1ZXJ5
U3RhdGUpOyB5eVRvayA9IFdFQktJVF9NRURJQVFVRVJZX1NZTTsgcmV0dXJuIHl5VG9rOyB9CiAi
QC13ZWJraXQtc2VsZWN0b3IiICAgICB7eXlUb2sgPSBXRUJLSVRfU0VMRUNUT1JfU1lNOyByZXR1
cm4geXlUb2s7IH0KLSJALXdlYmtpdC12YXJpYWJsZXMiICAgIHtCRUdJTihtZWRpYXF1ZXJ5KTsg
eXlUb2sgPSBXRUJLSVRfVkFSSUFCTEVTX1NZTTsgcmV0dXJuIHl5VG9rOyB9Ci0iQC13ZWJraXQt
ZGVmaW5lIiAgICAgICB7QkVHSU4oZm9ya2V5d29yZCk7IHl5VG9rID0gV0VCS0lUX0RFRklORV9T
WU07IHJldHVybiB5eVRvazsgfQorIkAtd2Via2l0LXZhcmlhYmxlcyIgICAge0JFR0lOKG1lZGlh
UXVlcnlTdGF0ZSk7IHl5VG9rID0gV0VCS0lUX1ZBUklBQkxFU19TWU07IHJldHVybiB5eVRvazsg
fQorIkAtd2Via2l0LWRlZmluZSIgICAgICAge0JFR0lOKGZvcktleXdvcmRTdGF0ZSk7IHl5VG9r
ID0gV0VCS0lUX0RFRklORV9TWU07IHJldHVybiB5eVRvazsgfQogIkAtd2Via2l0LXZhcmlhYmxl
cy1kZWNscyIgeyB5eVRvayA9IFdFQktJVF9WQVJJQUJMRVNfREVDTFNfU1lNOyByZXR1cm4geXlU
b2s7IH0KICJALXdlYmtpdC1rZXlmcmFtZXMiICAgIHt5eVRvayA9IFdFQktJVF9LRVlGUkFNRVNf
U1lNOyByZXR1cm4geXlUb2s7IH0KICJALXdlYmtpdC1rZXlmcmFtZS1ydWxlIiB7eXlUb2sgPSBX
RUJLSVRfS0VZRlJBTUVfUlVMRV9TWU07IHJldHVybiB5eVRvazsgfQpAQCAtMTEyLDE2ICsxNjIs
MjQgQEAgbnRoICAgICAgICAgICAgIFtcKy1dP3tpbnRudW19Km4oW1wrLV17aW50bnVtfSk/CiB7
bnVtfSAgICAgICAgICAgICAgICAgICB7eXlUb2sgPSBGTE9BVFRPS0VOOyByZXR1cm4geXlUb2s7
fQogCiAibm90KCIgICAgICAgICAgICAgICAgICB7eXlUb2sgPSBOT1RGVU5DVElPTjsgcmV0dXJu
IHl5VG9rO30KLSJ1cmwoInt3fXtzdHJpbmd9e3d9IikiIHt5eVRvayA9IFVSSTsgcmV0dXJuIHl5
VG9rO30KLSJ1cmwoInt3fXt1cmx9e3d9IikiICAgIHt5eVRvayA9IFVSSTsgcmV0dXJuIHl5VG9r
O30KKworPElOSVRJQUwsbWVkaWFRdWVyeVN0YXRlLGZvcktleXdvcmRTdGF0ZT4idXJsKCIge3Vy
aVByZVN0YXRlID0gWVlfU1RBUlQ7IEJFR0lOKHVyaVN0YXRlKTt9Cis8dXJpU3RhdGU+e3d9ICAg
ICAgICAgICB7LyogU2tpcCB3aGl0ZXNwYWNlICovfQorPHVyaVN0YXRlPnt1cmx9ICAgICAgICAg
e0JFR0lOKHVyaVBlbmRpbmdTdGF0ZSk7IHN0cmluZ09yVXJpQ29udGVudExlbmd0aCA9IHl5bGVu
Zzsgc3RyaW5nT3JVcmlDb250ZW50T2Zmc2V0ID0gLXl5bGVuZzsgeXltb3JlKCk7fQorPHVyaVN0
YXRlPiIpIiAgICAgICAgICAge0JFR0lOKHVyaVByZVN0YXRlKTsgeXlsZW5nID0gMDsgeXlUb2sg
PSBVUkk7IHJldHVybiB5eVRvazt9Cis8dXJpU3RhdGU+LiAgICAgICAgICAgICB7QkVHSU4odXJp
UHJlU3RhdGUpO30KKzx1cmlQZW5kaW5nU3RhdGU+e3d9ICAgIHtzdHJpbmdPclVyaUNvbnRlbnRP
ZmZzZXQgLT0geXlsZW5nOyB5eW1vcmUoKTt9Cis8dXJpUGVuZGluZ1N0YXRlPiIpIiAgICB7QkVH
SU4odXJpUHJlU3RhdGUpOyB5eWxlbmcgPSBzdHJpbmdPclVyaUNvbnRlbnRMZW5ndGg7IHl5dGV4
dCArPSBzdHJpbmdPclVyaUNvbnRlbnRPZmZzZXQ7IHl5VG9rID0gVVJJOyByZXR1cm4geXlUb2s7
fQorPHVyaVBlbmRpbmdTdGF0ZT4uICAgICAge0JFR0lOKHVyaVByZVN0YXRlKTt9CisKICItd2Vi
a2l0LXZhcigie3d9e2lkZW50fXt3fSIpIiB7IHl5VG9rID0gVkFSQ0FMTDsgcmV0dXJuIHl5VG9r
OyB9CiB7aWRlbnR9IigiICAgICAgICAgICAgICB7eXlUb2sgPSBGVU5DVElPTjsgcmV0dXJuIHl5
VG9rO30KIAogVVwre3JhbmdlfSAgICAgICAgICAgICAge3l5VG9rID0gVU5JQ09ERVJBTkdFOyBy
ZXR1cm4geXlUb2s7fQogVVwre2h9ezEsNn0te2h9ezEsNn0gICAge3l5VG9rID0gVU5JQ09ERVJB
TkdFOyByZXR1cm4geXlUb2s7fQogCi08bWVkaWFxdWVyeT4ieyIgICAgICAgICB8Ci08bWVkaWFx
dWVyeT4iOyIgICAgICAgICB7QkVHSU4oSU5JVElBTCk7IHl5VG9rID0gKnl5dGV4dDsgcmV0dXJu
IHl5VG9rOyB9Cis8bWVkaWFRdWVyeVN0YXRlPiJ7IiAgICB8Cis8bWVkaWFRdWVyeVN0YXRlPiI7
IiAgICB7QkVHSU4oSU5JVElBTCk7IHl5VG9rID0gKnl5dGV4dDsgcmV0dXJuIHl5VG9rOyB9CiAu
ICAgICAgICAgICAgICAgICAgICAgICB7eXlUb2sgPSAqeXl0ZXh0OyByZXR1cm4geXlUb2s7fQog
CiAlJQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>78499</attachid>
            <date>2011-01-11 00:24:51 -0800</date>
            <delta_ts>2011-01-11 03:21:55 -0800</delta_ts>
            <desc>Pre Source/WebCore move</desc>
            <filename>bug-34067-20110111002449.patch</filename>
            <type>text/plain</type>
            <size>4661</size>
            <attacher name="Yuzo Fujishima">yuzo</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmZTcxNWYzZTQyYTRmMmE1YzJkMzk3MDI3MzhlMmViNDBjNmE5ZTQ0Li4zMTVmNmRh
ODIwNzk1YWVkM2E1YWQxNmQyYzQxYmI2Y2E4ZjVmNDRlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAK
KzIwMTAtMDEtMzEgIFl1em8gRnVqaXNoaW1hICA8eXV6b0Bnb29nbGUuY29tPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1ha2UgQGltcG9ydCB3b3Jr
IGV2ZW4gd2hlbiB0aGUgZmlsZSB1cmwvcGF0aCBpcyB1bmNsb3NlZCBhdCB0aGUgZW5kIG9mIHN0
eWxlc2hlZXQuCisgICAgICAgIFRoaXMgcGF0Y2ggZGVwZW5kcyBvbiB0aGUgb25lIGZvciBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MzQwNjcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY4OTEKKworICAgICAgICAqIGZhc3Qv
Y3NzL3BhcnNpbmctdW5jbG9zZWQtaW1wb3J0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogZmFzdC9jc3MvcGFyc2luZy11bmNsb3NlZC1pbXBvcnQuaHRtbDogQWRkZWQuCisKIDIwMTEt
MDEtMDYgIFN0ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgVW5yZXZpZXdlZDsgY2hyb21pdW0gdGVzdCBleHBlY3RhdGlvbnMgdXBkYXRlLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmNsb3NlZC1pbXBvcnQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvcGFyc2luZy11bmNsb3NlZC1pbXBvcnQtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzMWM5YTliMTdjOTk4OGJmOGY2OTQxMjBmMDg0MThhZmE4
Y2RhNzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXVu
Y2xvc2VkLWltcG9ydC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitUZXN0IDE6IFBBU1Mg
CitUZXN0IDI6IFBBU1MgCitUZXN0IDM6IFBBU1MgCitUZXN0IDQ6IFBBU1MgCitUZXN0IDU6IFBB
U1MgCitUZXN0IDY6IFBBU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL3BhcnNp
bmctdW5jbG9zZWQtaW1wb3J0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9wYXJzaW5nLXVu
Y2xvc2VkLWltcG9ydC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhmMzkzNTVhMTdhYzg0ODg1NGYyNWFhZjI1
ZDI1MjQ2MzEyYTgyZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9w
YXJzaW5nLXVuY2xvc2VkLWltcG9ydC5odG1sCkBAIC0wLDAgKzEsNTEgQEAKKzwhZG9jdHlwZSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
CisgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgPC9zY3JpcHQ+CisgICAgPHN0
eWxlPkBpbXBvcnQgImRhdGE6dGV4dC9jc3MsI3Rlc3QtMS0xe2Rpc3BsYXk6aW5saW5lO30jdGVz
dC0xLTJ7ZGlzcGxheTpub25lO308L3N0eWxlPgorICAgIDxzdHlsZT5AaW1wb3J0IHVybCgiZGF0
YTp0ZXh0L2NzcywjdGVzdC0yLTF7ZGlzcGxheTppbmxpbmU7fSN0ZXN0LTItMntkaXNwbGF5Om5v
bmU7fSI8L3N0eWxlPgorICAgIDxzdHlsZT5AaW1wb3J0IHVybCgiZGF0YTp0ZXh0L2NzcywjdGVz
dC0zLTF7ZGlzcGxheTppbmxpbmU7fSN0ZXN0LTMtMntkaXNwbGF5Om5vbmU7fSIKKyAgICA8L3N0
eWxlPgorICAgIDxzdHlsZT5AaW1wb3J0IHVybCgiZGF0YTp0ZXh0L2NzcywjdGVzdC00LTF7ZGlz
cGxheTppbmxpbmU7fSN0ZXN0LTQtMntkaXNwbGF5Om5vbmU7fTwvc3R5bGU+CisKKyAgICA8c3R5
bGU+QGltcG9ydCAiZGF0YTp0ZXh0L2NzcywjdGVzdC01LTF7ZGlzcGxheTpub25lO30jdGVzdC01
LTJ7ZGlzcGxheTppbmxpbmV9Cis8L3N0eWxlPgorICAgIDxzdHlsZT5AaW1wb3J0IHVybCgiZGF0
YTp0ZXh0L2NzcywjdGVzdC02LTF7ZGlzcGxheTpub25lO30jdGVzdC02LTJ7ZGlzcGxheTppbmxp
bmU7fQorPC9zdHlsZT4KKyAgICA8c3R5bGU+CisgICAgICAgIC50b19iZV9zaG93biB7ZGlzcGxh
eTpub25lO2NvbG9yOmdyZWVufQorICAgICAgICAudG9fYmVfaGlkZGVuIHtjb2xvcjpyZWQ7fQor
ICAgICAgICAuc3RheV9zaG93biB7ZGlzcGxheTppbmxpbmU7Y29sb3I6Z3JlZW47fQorICAgICAg
ICAuc3RheV9oaWRkZW4ge2Rpc3BsYXk6bm9uZTtjb2xvcjpyZWQ7fQorICAgIDwvc3R5bGU+Cis8
L2hlYWQ+Cis8Ym9keT4KK1Rlc3QgMToKKzxzcGFuIGNsYXNzPSJ0b19iZV9zaG93biIgaWQ9InRl
c3QtMS0xIj5QQVNTPC9zcGFuPgorPHNwYW4gY2xhc3M9InRvX2JlX2hpZGRlbiIgaWQ9InRlc3Qt
MS0yIj5GQUlMPC9zcGFuPgorPGJyLz4KK1Rlc3QgMjoKKzxzcGFuIGNsYXNzPSJ0b19iZV9zaG93
biIgaWQ9InRlc3QtMi0xIj5QQVNTPC9zcGFuPgorPHNwYW4gY2xhc3M9InRvX2JlX2hpZGRlbiIg
aWQ9InRlc3QtMi0yIj5GQUlMPC9zcGFuPgorPGJyLz4KK1Rlc3QgMzoKKzxzcGFuIGNsYXNzPSJ0
b19iZV9zaG93biIgaWQ9InRlc3QtMy0xIj5QQVNTPC9zcGFuPgorPHNwYW4gY2xhc3M9InRvX2Jl
X2hpZGRlbiIgaWQ9InRlc3QtMy0yIj5GQUlMPC9zcGFuPgorPGJyLz4KK1Rlc3QgNDoKKzxzcGFu
IGNsYXNzPSJ0b19iZV9zaG93biIgaWQ9InRlc3QtNC0xIj5QQVNTPC9zcGFuPgorPHNwYW4gY2xh
c3M9InRvX2JlX2hpZGRlbiIgaWQ9InRlc3QtNC0yIj5GQUlMPC9zcGFuPgorPGJyLz4KK1Rlc3Qg
NToKKzxzcGFuIGNsYXNzPSJzdGF5X3Nob3duIiBpZD0idGVzdC01LTEiPlBBU1M8L3NwYW4+Cis8
c3BhbiBjbGFzcz0ic3RheV9oaWRkZW4iIGlkPSJ0ZXN0LTUtMiI+RkFJTDwvc3Bhbj4KKzxici8+
CitUZXN0IDY6Cis8c3BhbiBjbGFzcz0ic3RheV9zaG93biIgaWQ9InRlc3QtNi0xIj5QQVNTPC9z
cGFuPgorPHNwYW4gY2xhc3M9InN0YXlfaGlkZGVuIiBpZD0idGVzdC02LTIiPkZBSUw8L3NwYW4+
Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggNmQ4MWQyMDZhN2JiMWM1ODI1MjJhYTE2YzM4Nzk4YmM4YzBh
NTcxNy4uNzIxMjk0NTBiYzc4NGNlMjAzZWFmMjA3NDkzMzcwMDc5Yjk5YjFjZiAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NSBAQAorMjAxMC0wMS0zMSAgWXV6byBGdWppc2hpbWEgIDx5dXpvQGdvb2dsZS5jb20+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBAaW1wb3J0
IHdvcmsgZXZlbiB3aGVuIHRoZSBmaWxlIHVybC9wYXRoIGlzIHVuY2xvc2VkIGF0IHRoZSBlbmQg
b2Ygc3R5bGVzaGVldC4KKyAgICAgICAgVGhpcyBwYXRjaCBkZXBlbmRzIG9uIHRoZSBvbmUgZm9y
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zNDA2NworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9Njg5MQorCisgICAgICAgIFRl
c3Q6IGZhc3QvY3NzL3BhcnNpbmctdW5jbG9zZWQtaW1wb3J0Lmh0bWwKKworICAgICAgICAqIGNz
cy9DU1NHcmFtbWFyLnk6CisKIDIwMTEtMDEtMDYgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNv
bkBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0t
Z2l0IGEvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55IGIvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55
CmluZGV4IGJhNTg1NWQ3YzgyMDU1N2RiNDU3ZDM3MjI5MWRkYjI1YTQ2MDBiZWYuLjQ0MTFkMDdi
ZGM2MTZmNzQ0YWRjODQ3NDU5MWMxOWViOTdjYTk4ZWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvY3Nz
L0NTU0dyYW1tYXIueQorKysgYi9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkKQEAgLTQ0MCw2ICs0
NDAsOSBAQCBpbXBvcnQ6CiAgICAgSU1QT1JUX1NZTSBtYXliZV9zcGFjZSBzdHJpbmdfb3JfdXJp
IG1heWJlX3NwYWNlIG1heWJlX21lZGlhX2xpc3QgJzsnIHsKICAgICAgICAgJCQgPSBzdGF0aWNf
Y2FzdDxDU1NQYXJzZXIqPihwYXJzZXIpLT5jcmVhdGVJbXBvcnRSdWxlKCQzLCAkNSk7CiAgICAg
fQorICB8IElNUE9SVF9TWU0gbWF5YmVfc3BhY2Ugc3RyaW5nX29yX3VyaSBtYXliZV9zcGFjZSBt
YXliZV9tZWRpYV9saXN0IGVycm9yIHsKKyAgICAgICAgJCQgPSBzdGF0aWNfY2FzdDxDU1NQYXJz
ZXIqPihwYXJzZXIpLT5jcmVhdGVJbXBvcnRSdWxlKCQzLCAkNSk7CisgICAgfQogICB8IElNUE9S
VF9TWU0gbWF5YmVfc3BhY2Ugc3RyaW5nX29yX3VyaSBtYXliZV9zcGFjZSBtYXliZV9tZWRpYV9s
aXN0IGludmFsaWRfYmxvY2sgewogICAgICAgICAkJCA9IDA7CiAgICAgfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>