<?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>27312</bug_id>
          
          <creation_ts>2009-07-15 12:50:40 -0700</creation_ts>
          <short_desc>[XSSAuditor] Add support for header X-XSS-Protection</short_desc>
          <delta_ts>2010-02-01 21:13:57 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>XSSAuditor</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>abarth</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>132000</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-07-15 12:50:40 -0700</bug_when>
    <thetext>We should add support to disable the XSSAuditor using the same header used by the XSS filter in IE 8, X-XSS-Protection.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>132124</commentid>
    <comment_count>1</comment_count>
      <attachid>32827</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2009-07-15 20:02:48 -0700</bug_when>
    <thetext>Created attachment 32827
Work in progress patch with tests

This patch is a work in progress. It behaves as follows:

The X-XSS-Protection header is only obeyed if its value is 0 (i.e. disabled) and &quot;X-XSS-Protection&quot; does appear in the HTTP parameters.

We may be walking a fine line in trying to implement this as we do no not want to open ourselves up to a CRLF attack, such as http://www.linkstofiles.com/crlf.py?url=cooki1%3dvalue1;%0d%0aX-XSS-Protection:0%0d%0a%0d%0a%3Chtml%3E%3Cbody%3E%3Cscript%3Ealert(%27owned%27)%3C/script%3E%3C/body%3E%3C/html%3E (Credit: http://packetstormsecurity.org/0812-exploits/ie80-xss.txt).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>149629</commentid>
    <comment_count>2</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2009-09-23 19:25:34 -0700</bug_when>
    <thetext>Sam, Maciej, and I discussed this on IRC just now.  Instead of re-using the IE8 control header, I think we should create our own header with three states:

1) Not present
2) X-XSS-Auditor-Options: ignore
3) X-XSS-Auditor-Options: fullpageblock

In state (1), we should keep doing what we do now.  In state (2), we should disable the XSSAuditor for that page.  In state (3), we should stop rendering the page and show an error message (you can see an example of how to do this with the X-Frame-Options logic).

I don&apos;t think we should worry about header injection issues at this point.  The auditor doesn&apos;t cover every vulnerability anyway.  The number of XSS + header injections should be relatively low.  If this turns out to be a big problem, we can always add that feature later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>179675</commentid>
    <comment_count>3</comment_count>
      <attachid>46334</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-01-11 21:53:38 -0800</bug_when>
    <thetext>Created attachment 46334
Path (Work in progress)

Updated patch. Still working on this. There are some issues with the newly added DRT tests in that they are a bit flaky.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184173</commentid>
    <comment_count>4</comment_count>
      <attachid>47316</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-01-24 23:15:08 -0800</bug_when>
    <thetext>Created attachment 47316
Patch with test cases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184175</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-01-24 23:15:57 -0800</bug_when>
    <thetext>Just to be clear, this patch &lt;https://bugs.webkit.org/attachment.cgi?id=47316&gt; only implements full page blocking.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184218</commentid>
    <comment_count>6</comment_count>
      <attachid>47316</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-25 02:44:17 -0800</bug_when>
    <thetext>Comment on attachment 47316
Patch with test cases

This looks pretty good.  One problem though:

+ window.setTimeout(done, millisecondsToWait);

Don&apos;t want to use setTimeout to control when the test ends.  This will make the test flaky on slow bots, like ones running valgrind.

Instead, you should count how many times the load event for the frame fires.  It should fire a deterministic number of times.

Have you tried not waiting until done?  The load event for the main frame might be delayed until the iframe finishes all its loading.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184514</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-01-25 23:56:00 -0800</bug_when>
    <thetext>I would prefer not use setTimeout as well.

From both observation and briefly tracing through the code, the load event does not seem to be fired on a scheduled redirect to about:blank. So, counting the number of load events fired will not work because it will not reflect the scheduled redirect. Moreover, the test fails if I do not wait for the redirect to about:blank since the test result will have the content of the &lt;iframe&gt; instead of being blank.

(In reply to comment #6)
&gt; (From update of attachment 47316 [details])
&gt; This looks pretty good.  One problem though:
&gt; 
&gt; + window.setTimeout(done, millisecondsToWait);
&gt; 
&gt; Don&apos;t want to use setTimeout to control when the test ends.  This will make the
&gt; test flaky on slow bots, like ones running valgrind.
&gt; 
&gt; Instead, you should count how many times the load event for the frame fires. 
&gt; It should fire a deterministic number of times.
&gt; 
&gt; Have you tried not waiting until done?  The load event for the main frame might
&gt; be delayed until the iframe finishes all its loading.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184537</commentid>
    <comment_count>8</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-26 03:15:29 -0800</bug_when>
    <thetext>How do the X-Frame-Options tests get around this problem?  They might be a good model for this test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184949</commentid>
    <comment_count>9</comment_count>
      <attachid>47497</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-01-26 22:45:18 -0800</bug_when>
    <thetext>Created attachment 47497
Patch with test cases

Removed use of window.setTimeout from test cases.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185350</commentid>
    <comment_count>10</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-27 23:38:04 -0800</bug_when>
    <thetext>The code looks good.  One final question: how does IE8&apos;s XSS filter behave if you send it:

X-XSS-Protection: full-block

?

Ideally, that wouldn&apos;t disable the IE8 filter so paranoid folks could enable our full-block and keep IE8&apos;s neutering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185352</commentid>
    <comment_count>11</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-01-27 23:42:54 -0800</bug_when>
    <thetext>I&apos;ll look into this.

Also, what are your thoughts about using own header for now? X-XSS-Auditor-Options?

(In reply to comment #10)
&gt; The code looks good.  One final question: how does IE8&apos;s XSS filter behave if
&gt; you send it:
&gt; 
&gt; X-XSS-Protection: full-block
&gt; 
&gt; ?
&gt; 
&gt; Ideally, that wouldn&apos;t disable the IE8 filter so paranoid folks could enable
&gt; our full-block and keep IE8&apos;s neutering.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185358</commentid>
    <comment_count>12</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-27 23:51:29 -0800</bug_when>
    <thetext>&gt; Also, what are your thoughts about using own header for now?
&gt; X-XSS-Auditor-Options?

I&apos;d prefer to use the same header if at all possible.  I&apos;ve been told that we can use the value 12 to trigger a full-page block.  Why 12?  That&apos;s a question for the ages.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>185491</commentid>
    <comment_count>13</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-28 08:27:58 -0800</bug_when>
    <thetext>To be clear, here are the exact semantics we want:

[[
We simply look at the first non-whitespace character of the value of the first X-XSS-Protection response header.  If it&apos;s &apos;0&apos;, we disable protection. If it&apos;s &apos;1&apos;, we enable protection. We ignore the rest of the line, although if the value is longer than 16 characters, we ignore the whole thing.
]]

So, for 12, we&apos;d want that if the first two characters are &quot;12&quot; then we turn on the full page block regardless of what the rest of the header is (as long as it&apos;s less than or equal to 16 characters).  Crazy, I know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186119</commentid>
    <comment_count>14</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-01-30 11:05:09 -0800</bug_when>
    <thetext>Will update the patch. By the way, do you have a reference for the quote?

(In reply to comment #13)
&gt; To be clear, here are the exact semantics we want:
&gt; 
&gt; [[
&gt; We simply look at the first non-whitespace character of the value of the first
&gt; X-XSS-Protection response header.  If it&apos;s &apos;0&apos;, we disable protection. If it&apos;s
&gt; &apos;1&apos;, we enable protection. We ignore the rest of the line, although if the
&gt; value is longer than 16 characters, we ignore the whole thing.
&gt; ]]
&gt; 
&gt; So, for 12, we&apos;d want that if the first two characters are &quot;12&quot; then we turn on
&gt; the full page block regardless of what the rest of the header is (as long as
&gt; it&apos;s less than or equal to 16 characters).  Crazy, I know.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186120</commentid>
    <comment_count>15</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-30 11:17:03 -0800</bug_when>
    <thetext>&gt; Will update the patch. By the way, do you have a reference for the quote?

&quot;Personal communication&quot;  :)

I&apos;m told it&apos;s documented publicly, but I&apos;m not sure where.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186248</commentid>
    <comment_count>16</comment_count>
      <attachid>47803</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-01-31 15:31:00 -0800</bug_when>
    <thetext>Created attachment 47803
Patch with test cases</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186268</commentid>
    <comment_count>17</comment_count>
      <attachid>47803</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-01-31 17:46:53 -0800</bug_when>
    <thetext>Comment on attachment 47803
Patch with test cases

Awesome.  Thanks Dan!

What do you think about implementing X-XSS-Protection: 0?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>186792</commentid>
    <comment_count>18</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2010-02-01 21:13:57 -0800</bug_when>
    <thetext>Committed r54202: &lt;http://trac.webkit.org/changeset/54202&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>32827</attachid>
            <date>2009-07-15 20:02:48 -0700</date>
            <delta_ts>2010-01-11 21:53:38 -0800</delta_ts>
            <desc>Work in progress patch with tests</desc>
            <filename>Bug27312_1.patch</filename>
            <type>text/plain</type>
            <size>35145</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA0NTk2NCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzMgQEAKKzIwMDktMDctMTUgIERhbmllbCBCYXRlcyAgPGRiYXRlc0BpbnR1ZGF0
YS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisgICAgICAgIAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjczMTIKKwor
ICAgICAgICBJbXBsZW1lbnRzIHN1cHBvcnQgZm9yIGRpc2FibGluZyBYU1NBdWRpdG9yIHZpYSB0
aGUgWC1YU1MtUHJvdGVjdGlvbiBoZWFkZXIuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYteHNzLWRpc2FibGVkLmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9lbWJlZC10YWcteHNzLWRpc2Fi
bGVkLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9n
ZXQtZnJvbS1pZnJhbWUteHNzLWRpc2FibGVkLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9pZnJhbWUtamF2YXNjcmlwdC11cmwteHNzLWRpc2FibGVk
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9pZnJh
bWUtbm8taW5oZXJpdC14c3MtZGlzYWJsZWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0
cy9zZWN1cml0eS94c3NBdWRpdG9yL2lubGluZS1ldmVudC14c3MtZGlzYWJsZWQuaHRtbAorICAg
ICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2phdmFzY3JpcHQtbGlu
ay14c3MtZGlzYWJsZWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS94
c3NBdWRpdG9yL29iamVjdC1lbWJlZC10YWcteHNzLWRpc2FibGVkLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9vYmplY3QtdGFnLXhzcy1kaXNhYmxl
ZC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcG9z
dC1mcm9tLWlmcmFtZS14c3MtZGlzYWJsZWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0
cy9zZWN1cml0eS94c3NBdWRpdG9yL3Byb3BlcnR5LWVzY2FwZS14c3MtZGlzYWJsZWQuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3NjcmlwdC10YWct
ZmF1eC14c3MtZGlzYWJsZWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0
eS94c3NBdWRpdG9yL3NjcmlwdC10YWctaW5qZWN0LXhzcy1kaXNhYmxlZC5odG1sCisgICAgICAg
ICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivc2NyaXB0LXRhZy1wb3N0LXhz
cy1kaXNhYmxlZC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1
ZGl0b3Ivc2NyaXB0LXRhZy13aXRoLXNvdXJjZS14c3MtZGlzYWJsZWQuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3NjcmlwdC10YWcteHNzLWRpc2Fi
bGVkLmh0bWwKKworICAgICAgICAqIHBhZ2UvWFNTQXVkaXRvci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpYU1NBdWRpdG9yOjppc0VuYWJsZWQpOiBNb2RpZmllZCB0byBjYWxsIG1ldGhvZCBYU1NB
dWRpdG9yOjppc1hTU1Byb3RlY3Rpb25IZWFkZXJQcmVzZW50QW5kRGlzYWJsZWQuCisgICAgICAg
IChXZWJDb3JlOjpYU1NBdWRpdG9yOjppc1hTU1Byb3RlY3Rpb25IZWFkZXJQcmVzZW50QW5kRGlz
YWJsZWQpOiAKKyAgICAgICAgKiBwYWdlL1hTU0F1ZGl0b3IuaDoKKwogMjAwOS0wNy0xNSAgQWRh
bSBMYW5nbGV5ICA8YWdsQGdvb2dsZS5jb20+CiAKICAgICAgICAgTm8gcmV2aWV3OiByZXZlcnRp
bmcgcHJldmlvdXMgY2hhbmdlLgpJbmRleDogV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmNwcAkocmV2aXNpb24gNDU3ODgp
CisrKyBXZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTYzLDcg
KzYzLDcgQEAgWFNTQXVkaXRvcjo6flhTU0F1ZGl0b3IoKQogYm9vbCBYU1NBdWRpdG9yOjppc0Vu
YWJsZWQoKSBjb25zdAogewogICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9IG1fZnJhbWUtPnNldHRp
bmdzKCk7Ci0gICAgcmV0dXJuIChzZXR0aW5ncyAmJiBzZXR0aW5ncy0+eHNzQXVkaXRvckVuYWJs
ZWQoKSk7CisgICAgcmV0dXJuIChzZXR0aW5ncyAmJiBzZXR0aW5ncy0+eHNzQXVkaXRvckVuYWJs
ZWQoKSAmJiAhaXNYU1NQcm90ZWN0aW9uSGVhZGVyUHJlc2VudEFuZERpc2FibGVkKCkpOwogfQog
CiBib29sIFhTU0F1ZGl0b3I6OmNhbkV2YWx1YXRlKGNvbnN0IFN0cmluZyYgc291cmNlQ29kZSkg
Y29uc3QKQEAgLTIwNSw2ICsyMDUsMjYgQEAgU3RyaW5nIFhTU0F1ZGl0b3I6OmRlY29kZUhUTUxF
bnRpdGllcyhjbwogICAgIHJldHVybiBTdHJpbmc6OmFkb3B0KHJlc3VsdCk7CiB9CiAKK2Jvb2wg
WFNTQXVkaXRvcjo6aXNYU1NQcm90ZWN0aW9uSGVhZGVyUHJlc2VudEFuZERpc2FibGVkKCkgY29u
c3QKK3sKKyAgICBib29sIHJlc3VsdCA9IGZhbHNlOworICAgIEZyYW1lKiBwYXJlbnRGcmFtZSA9
IG1fZnJhbWUtPnRyZWUoKS0+cGFyZW50KCk7CisgICAgaWYgKHBhcmVudEZyYW1lICYmIG1fZnJh
bWUtPmRvY3VtZW50KCktPnVybCgpID09IGJsYW5rVVJMKCkpCisgICAgICAgIHJlc3VsdCA9IGlz
WFNTUHJvdGVjdGlvbkhlYWRlclByZXNlbnRBbmREaXNhYmxlZChwYXJlbnRGcmFtZSk7CisgICAg
aWYgKCFyZXN1bHQpCisgICAgICAgIHJlc3VsdCA9IGlzWFNTUHJvdGVjdGlvbkhlYWRlclByZXNl
bnRBbmREaXNhYmxlZChtX2ZyYW1lKTsKKyAgICByZXR1cm4gcmVzdWx0OworfQorCitib29sIFhT
U0F1ZGl0b3I6OmlzWFNTUHJvdGVjdGlvbkhlYWRlclByZXNlbnRBbmREaXNhYmxlZChGcmFtZSog
ZnJhbWUpIGNvbnN0Cit7CisgICAgREVGSU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIFhTU1Byb3Rl
Y3Rpb25IZWFkZXIsICgiWC1YU1MtUHJvdGVjdGlvbiIpKTsKKyAgICBTdHJpbmcgeHNzUHJvdGVj
dGlvblZhbHVlID0gZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZSgp
Lmh0dHBIZWFkZXJGaWVsZChYU1NQcm90ZWN0aW9uSGVhZGVyKTsKKyAgICBpZiAoIXhzc1Byb3Rl
Y3Rpb25WYWx1ZS5pc051bGwoKSAmJiB4c3NQcm90ZWN0aW9uVmFsdWUgPT0gIjAiICYmICFmaW5k
SW5SZXF1ZXN0KGZyYW1lLCBYU1NQcm90ZWN0aW9uSGVhZGVyLCBmYWxzZSwgZmFsc2UpKQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGJvb2wgWFNTQXVkaXRv
cjo6ZmluZEluUmVxdWVzdChjb25zdCBTdHJpbmcmIHN0cmluZywgYm9vbCBtYXRjaE51bGxDaGFy
YWN0ZXJzLCBib29sIG1hdGNoTm9uTnVsbENvbnRyb2xDaGFyYWN0ZXJzLAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGJvb2wgZGVjb2RlSFRNTGVudGl0aWVzLCBib29sIGxlYXZlVW5k
ZWNvZGFibGVIVE1MRW50aXRpZXNVbnRvdWNoZWQpIGNvbnN0CiB7CkluZGV4OiBXZWJDb3JlL3Bh
Z2UvWFNTQXVkaXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmgJ
KHJldmlzaW9uIDQ1Nzg4KQorKysgV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuaAkod29ya2luZyBj
b3B5KQpAQCAtOTksMTIgKzk5LDE3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9v
bCBjYW5TZXRCYXNlRWxlbWVudFVSTChjb25zdCBTdHJpbmcmIHVybCkgY29uc3Q7CiAKICAgICBw
cml2YXRlOgorICAgICAgICAKICAgICAgICAgc3RhdGljIFN0cmluZyBkZWNvZGVVUkwoY29uc3Qg
U3RyaW5nJiB1cmwsIGNvbnN0IFRleHRFbmNvZGluZyYgZW5jb2RpbmcgPSBVVEY4RW5jb2Rpbmco
KSwgYm9vbCBhbGxvd051bGxDaGFyYWN0ZXJzID0gZmFsc2UsCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGJvb2wgYWxsb3dOb25OdWxsQ29udHJvbENoYXJhY3RlcnMgPSB0cnVlLCBi
b29sIGRlY29kZUhUTUxlbnRpdGllcyA9IHRydWUsIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBib29sIGxlYXZlVW5kZWNvZGFibGVIVE1MRW50aXRpZXNVbnRvdWNoZWQgPSBmYWxz
ZSk7CiAgICAgICAgIAogICAgICAgICBzdGF0aWMgU3RyaW5nIGRlY29kZUhUTUxFbnRpdGllcyhj
b25zdCBTdHJpbmcmLCBib29sIGxlYXZlVW5kZWNvZGFibGVIVE1MRW50aXRpZXNVbnRvdWNoZWQg
PSBmYWxzZSk7Ci0KKyAgICAgICAgCisgICAgICAgIGJvb2wgaXNYU1NQcm90ZWN0aW9uSGVhZGVy
UHJlc2VudEFuZERpc2FibGVkKCkgY29uc3Q7CisgICAgICAgIAorICAgICAgICBib29sIGlzWFNT
UHJvdGVjdGlvbkhlYWRlclByZXNlbnRBbmREaXNhYmxlZChGcmFtZSopIGNvbnN0OworICAgICAg
ICAKICAgICAgICAgYm9vbCBmaW5kSW5SZXF1ZXN0KGNvbnN0IFN0cmluZyYsIGJvb2wgbWF0Y2hO
dWxsQ2hhcmFjdGVycyA9IHRydWUsIGJvb2wgbWF0Y2hOb25OdWxsQ29udHJvbENoYXJhY3RlcnMg
PSB0cnVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBkZWNvZGVIVE1MZW50aXRp
ZXMgPSB0cnVlLCBib29sIGxlYXZlVW5kZWNvZGFibGVIVE1MRW50aXRpZXNVbnRvdWNoZWQgPSBm
YWxzZSkgY29uc3Q7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDQ1OTY0KQorKysgTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNTAgQEAKKzIwMDktMDctMTUgIERh
bmllbCBCYXRlcyAgPGRiYXRlc0BpbnR1ZGF0YS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisgICAgICAgIAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjczMTIKKworICAgICAgICBUZXN0cyB0aGF0IHRoZSBoZWFkZXIg
WC1YU1MtUHJvdGVjdGlvbiBkaXNhYmxlcyB0aGUgWFNTQXVkaXRvci4KKworICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYteHNzLWRpc2FibGVkLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L2Jhc2UtaHJlZi14c3MtZGlzYWJsZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9zZWN1cml0eS94c3NBdWRpdG9yL2VtYmVkLXRhZy14c3MtZGlzYWJsZWQtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZW1iZWQt
dGFnLXhzcy1kaXNhYmxlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvZ2V0LWZyb20taWZyYW1lLXhzcy1kaXNhYmxlZC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9nZXQtZnJv
bS1pZnJhbWUteHNzLWRpc2FibGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9pZnJhbWUtamF2YXNjcmlwdC11cmwteHNzLWRpc2FibGVkLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRp
dG9yL2lmcmFtZS1qYXZhc2NyaXB0LXVybC14c3MtZGlzYWJsZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2lmcmFtZS1uby1pbmhlcml0LXhz
cy1kaXNhYmxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9pZnJhbWUtbm8taW5oZXJpdC14c3MtZGlzYWJsZWQuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2lubGluZS1ldmVu
dC14c3MtZGlzYWJsZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzc0F1ZGl0b3IvaW5saW5lLWV2ZW50LXhzcy1kaXNhYmxlZC5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvamF2YXNjcmlwdC1s
aW5rLXhzcy1kaXNhYmxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9qYXZhc2NyaXB0LWxpbmsteHNzLWRpc2FibGVkLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9vYmplY3Qt
ZW1iZWQtdGFnLXhzcy1kaXNhYmxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9vYmplY3QtZW1iZWQtdGFnLXhzcy1kaXNhYmxl
ZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
b2JqZWN0LXRhZy14c3MtZGlzYWJsZWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivb2JqZWN0LXRhZy14c3MtZGlzYWJsZWQuaHRt
bDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Bvc3Qt
ZnJvbS1pZnJhbWUteHNzLWRpc2FibGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Bvc3QtZnJvbS1pZnJhbWUteHNzLWRpc2Fi
bGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9wcm9wZXJ0eS1lc2NhcGUteHNzLWRpc2FibGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Byb3BlcnR5LWVzY2FwZS14c3Mt
ZGlzYWJsZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL3Jlc291cmNlcy9lY2hvLWhlYWQtYW5kLWludGVydGFnLnBsOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taGVhZC1i
YXNlLWhyZWYteHNzLWRpc2FibGVkLnBsOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWctY2xpY2stYW5kLW5vdGlm
eS14c3MtZGlzYWJsZWQucGw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy1wb3N0LWFuZC1ub3RpZnkteHNzLWRp
c2FibGVkLnBsOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWcteHNzLWRpc2FibGVkLnBsOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8tcHJvcGVy
dHkteHNzLWRpc2FibGVkLnBsOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3hzc0F1ZGl0b3Ivc2NyaXB0LXRhZy1mYXV4LXhzcy1kaXNhYmxlZC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9zY3JpcHQtdGFn
LWZhdXgteHNzLWRpc2FibGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9zY3JpcHQtdGFnLWluamVjdC14c3MtZGlzYWJsZWQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivc2Ny
aXB0LXRhZy1pbmplY3QteHNzLWRpc2FibGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9zY3JpcHQtdGFnLXBvc3QteHNzLWRpc2FibGVkLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRp
dG9yL3NjcmlwdC10YWctcG9zdC14c3MtZGlzYWJsZWQuaHRtbDogQWRkZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3NjcmlwdC10YWctd2l0aC1zb3VyY2UteHNz
LWRpc2FibGVkLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS94c3NBdWRpdG9yL3NjcmlwdC10YWctd2l0aC1zb3VyY2UteHNzLWRpc2FibGVkLmh0bWw6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9zY3JpcHQt
dGFnLXhzcy1kaXNhYmxlZC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9zY3JpcHQtdGFnLXhzcy1kaXNhYmxlZC5odG1sOiBBZGRl
ZC4KKwogMjAwOS0wNy0xNSAgRGF2aWQgTGV2aW4gIDxsZXZpbkBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgTGF5b3V0IHRlc3QgZml4LCByZXZlcnRpbmcgcHJldmlvdXMgY2hhbmdlLgpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Jhc2UtaHJlZi14c3Mt
ZGlzYWJsZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9iYXNlLWhyZWYteHNzLWRpc2FibGVkLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9iYXNlLWhyZWYteHNzLWRpc2FibGVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwyIEBACitBTEVSVDogVGhpcyBpcyBhIHNhZmUgc2NyaXB0LgorCkluZGV4OiBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXhzcy1kaXNh
YmxlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9iYXNlLWhyZWYteHNzLWRpc2FibGVkLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvYmFzZS1ocmVmLXhzcy1k
aXNhYmxlZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgIGxheW91dFRl
c3RDb250cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJp
dHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1oZWFkLWJhc2UtaHJlZi14c3MtZGlzYWJsZWQu
cGw/cT08YmFzZSBocmVmPSdodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkveHNzQXVkaXRv
ci9yZXNvdXJjZXMvJz4iPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZW1iZWQtdGFnLXhzcy1kaXNh
YmxlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL2VtYmVkLXRhZy14c3MtZGlzYWJsZWQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L2VtYmVkLXRhZy14c3MtZGlzYWJsZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxIEBACisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9lbWJlZC10YWcteHNzLWRpc2FibGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2VtYmVkLXRhZy14c3MtZGlzYWJsZWQuaHRt
bAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9lbWJlZC10YWcteHNzLWRpc2FibGVkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1
ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFn
LXhzcy1kaXNhYmxlZC5wbD9xPTxlbWJlZCBuYW1lPSdwbHVnaW4nIHR5cGU9J2FwcGxpY2F0aW9u
L3gtd2Via2l0LXRlc3QtbmV0c2NhcGUnIHNyYz0naHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2R1bW15LnN3Zic+PC9lbWJlZD4iPgorPC9pZnJhbWU+
Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3hzc0F1ZGl0b3IvZ2V0LWZyb20taWZyYW1lLXhzcy1kaXNhYmxlZC1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2dl
dC1mcm9tLWlmcmFtZS14c3MtZGlzYWJsZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2dldC1mcm9tLWlmcmFt
ZS14c3MtZGlzYWJsZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIgQEAK
K0FMRVJUOiAvVGhpcyBpcyBhbiBhbGxvd2VkIHNjcmlwdCBpbmplY3Rpb24vCisKSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9nZXQtZnJvbS1pZnJhbWUt
eHNzLWRpc2FibGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL2dldC1mcm9tLWlmcmFtZS14c3MtZGlzYWJsZWQuaHRtbAkocmV2
aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9n
ZXQtZnJvbS1pZnJhbWUteHNzLWRpc2FibGVkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MjUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvdXRpbGl0aWVz
LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5z
ZXRYU1NBdWRpdG9yRW5hYmxlZCh0cnVlKTsKK30KK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigp
Cit7CisgICAgc2VuZFJlcXVlc3RGcm9tSUZyYW1lKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2Vj
dXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy14c3MtZGlzYWJsZWQucGwi
LCJxPTxzY3JpcHQ+YWxlcnQoL1RoaXMgaXMgYW4gYWxsb3dlZCBzY3JpcHQgaW5qZWN0aW9uLyk8
XC9zY3JpcHQ+IiwiR0VUIik7CisgICAgd2luZG93LnNldFRpbWVvdXQoZG9uZSwgMTAwKTsKK307
CitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2lmcmFtZS1qYXZhc2NyaXB0LXVybC14c3Mt
ZGlzYWJsZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9pZnJhbWUtamF2YXNjcmlwdC11cmwteHNzLWRpc2FibGVk
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9pZnJhbWUtamF2YXNjcmlwdC11cmwteHNzLWRpc2FibGVkLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyIEBACitBTEVSVDogbG9jYWxob3N0CisK
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9pZnJhbWUt
amF2YXNjcmlwdC11cmwteHNzLWRpc2FibGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2lmcmFtZS1qYXZhc2NyaXB0LXVybC14
c3MtZGlzYWJsZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9pZnJhbWUtamF2YXNjcmlwdC11cmwteHNzLWRpc2FibGVkLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSdodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkveHNz
QXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy14c3MtZGlzYWJsZWQucGw/cT0lM0NpZnJh
bWUlMjBzcmM9amF2YXNjcmlwdDphbGVydChkb2N1bWVudC5kb21haW4pJTNFJz4KKzwvaWZyYW1l
PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS94c3NBdWRpdG9yL2lmcmFtZS1uby1pbmhlcml0LXhzcy1kaXNhYmxlZC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L2lmcmFtZS1uby1pbmhlcml0LXhzcy1kaXNhYmxlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvaWZyYW1lLW5v
LWluaGVyaXQteHNzLWRpc2FibGVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCAr
MSwzIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2
YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVz
dC4KKworCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
aWZyYW1lLW5vLWluaGVyaXQteHNzLWRpc2FibGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2lmcmFtZS1uby1pbmhlcml0LXhz
cy1kaXNhYmxlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL2lmcmFtZS1uby1pbmhlcml0LXhzcy1kaXNhYmxlZC5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5zZXRYU1NBdWRpdG9yRW5hYmxlZCh0cnVlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8aWZyYW1lIHNyYz0naHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWcteHNzLWRpc2FibGVkLnBsP3E9JTNDaWZyYW1lJTIw
c3JjPSUyMmh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNl
cy9lY2hvLWludGVydGFnLnBsP3E9JTNDc2NyaXB0JTNFYWxlcnQlMjgvWFNTLyUyOSUzQy9zY3Jp
cHQlM0UlMjIlM0UnPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvaW5saW5lLWV2ZW50LXhzcy1kaXNh
YmxlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL2lubGluZS1ldmVudC14c3MtZGlzYWJsZWQtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRp
dG9yL2lubGluZS1ldmVudC14c3MtZGlzYWJsZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDIgQEAKK0FMRVJUOiAvU2FmZS8KKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2lubGluZS1ldmVudC14c3MtZGlzYWJsZWQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
aW5saW5lLWV2ZW50LXhzcy1kaXNhYmxlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2lubGluZS1ldmVudC14c3MtZGlzYWJs
ZWQuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9J2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0
eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLXhzcy1kaXNhYmxlZC5wbD9xPSUz
Q2ltZyUyMHNyYz0xJTIwb25lcnJvcj1hbGVydCUyOC9TYWZlLyUyOSUzRSc+Cis8L2lmcmFtZT4K
KzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9qYXZhc2NyaXB0LWxpbmsteHNzLWRpc2FibGVkLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvamF2
YXNjcmlwdC1saW5rLXhzcy1kaXNhYmxlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvamF2YXNjcmlwdC1saW5r
LXhzcy1kaXNhYmxlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMiBAQAor
QUxFUlQ6IC9TYWZlLworCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvamF2YXNjcmlwdC1saW5rLXhzcy1kaXNhYmxlZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9qYXZhc2NyaXB0LWxp
bmsteHNzLWRpc2FibGVkLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvamF2YXNjcmlwdC1saW5rLXhzcy1kaXNhYmxlZC5odG1s
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVk
aXRvckVuYWJsZWQodHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFt
ZSBzcmM9J2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNl
cy9lY2hvLWludGVydGFnLWNsaWNrLWFuZC1ub3RpZnkteHNzLWRpc2FibGVkLnBsP2VsbWlkPWFu
Y2hvckxpbmsmcT0lM0NhK2lkJTNEYW5jaG9yTGluaytocmVmJTNEamF2YXNjcmlwdCUzQWFsZXJ0
JTI4L1NhZmUvJTI5JTNFdGVzdCUzQy9hJTNFJz4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL29iamVj
dC1lbWJlZC10YWcteHNzLWRpc2FibGVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivb2JqZWN0LWVtYmVkLXRhZy14
c3MtZGlzYWJsZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL29iamVjdC1lbWJlZC10YWcteHNzLWRpc2FibGVk
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorCkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivb2JqZWN0LWVtYmVkLXRhZy14c3Mt
ZGlzYWJsZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzc0F1ZGl0b3Ivb2JqZWN0LWVtYmVkLXRhZy14c3MtZGlzYWJsZWQuaHRtbAkocmV2aXNp
b24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9vYmpl
Y3QtZW1iZWQtdGFnLXhzcy1kaXNhYmxlZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUp
OworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9j
YWxob3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy14
c3MtZGlzYWJsZWQucGw/cT08b2JqZWN0IG5hbWU9J3BsdWdpbicgdHlwZT0nYXBwbGljYXRpb24v
eC13ZWJraXQtdGVzdC1uZXRzY2FwZSc+PHBhcmFtIG5hbWU9J21vdmllJyB2YWx1ZT0naHR0cDov
LzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2R1bW15LnN3Zicg
Lz48ZW1iZWQgbmFtZT0ncGx1Z2luJyB0eXBlPSdhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5l
dHNjYXBlJyBzcmM9J2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jl
c291cmNlcy9kdW1teS5zd2YnIC8+PC9vYmplY3Q+Ij4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9o
dG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL29i
amVjdC10YWcteHNzLWRpc2FibGVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivb2JqZWN0LXRhZy14c3MtZGlzYWJs
ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL29iamVjdC10YWcteHNzLWRpc2FibGVkLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSBAQAorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzc0F1ZGl0b3Ivb2JqZWN0LXRhZy14c3MtZGlzYWJsZWQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivb2JqZWN0
LXRhZy14c3MtZGlzYWJsZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9vYmplY3QtdGFnLXhzcy1kaXNhYmxlZC5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9y
ZXNvdXJjZXMvZWNoby1pbnRlcnRhZy14c3MtZGlzYWJsZWQucGw/cT08b2JqZWN0IG5hbWU9J3Bs
dWdpbicgdHlwZT0nYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZSc+PHBhcmFtIG5h
bWU9J21vdmllJyB2YWx1ZT0naHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvcmVzb3VyY2VzL2R1bW15LnN3ZicgLz48L29iamVjdD4iPgorPC9pZnJhbWU+Cis8L2JvZHk+
Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvcG9zdC1mcm9tLWlmcmFtZS14c3MtZGlzYWJsZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9wb3N0LWZyb20t
aWZyYW1lLXhzcy1kaXNhYmxlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcG9zdC1mcm9tLWlmcmFtZS14c3Mt
ZGlzYWJsZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIgQEAKK0FMRVJU
OiAvVGhpcyBpcyBhbiBhbGxvd2VkIHNjcmlwdCBpbmplY3Rpb24vCisKSW5kZXg6IExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9wb3N0LWZyb20taWZyYW1lLXhzcy1k
aXNhYmxlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkveHNzQXVkaXRvci9wb3N0LWZyb20taWZyYW1lLXhzcy1kaXNhYmxlZC5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Bvc3Qt
ZnJvbS1pZnJhbWUteHNzLWRpc2FibGVkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjUg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJodHRwOi8v
bG9jYWxob3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvdXRpbGl0aWVzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRY
U1NBdWRpdG9yRW5hYmxlZCh0cnVlKTsKK30KK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpCit7
CisgICAgc2VuZFJlcXVlc3RGcm9tSUZyYW1lKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJp
dHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy14c3MtZGlzYWJsZWQucGwiLCJx
PTxzY3JpcHQ+YWxlcnQoL1RoaXMgaXMgYW4gYWxsb3dlZCBzY3JpcHQgaW5qZWN0aW9uLyk8XC9z
Y3JpcHQ+IiwiUE9TVCIpOworICAgIHdpbmRvdy5zZXRUaW1lb3V0KGRvbmUsIDEwMCk7Cit9Owor
ZnVuY3Rpb24gZG9uZSgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9wcm9wZXJ0eS1lc2NhcGUteHNzLWRpc2FibGVk
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvcHJvcGVydHktZXNjYXBlLXhzcy1kaXNhYmxlZC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvcHJvcGVydHktZXNjYXBlLXhzcy1kaXNhYmxlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMiBAQAorQUxFUlQ6IC9UaGlzIGlzIGFuIGFsbG93ZWQgc2NyaXB0IGluamVj
dGlvbi8KKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L3Byb3BlcnR5LWVzY2FwZS14c3MtZGlzYWJsZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcHJvcGVydHktZXNjYXBlLXhzcy1k
aXNhYmxlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS94c3NBdWRpdG9yL3Byb3BlcnR5LWVzY2FwZS14c3MtZGlzYWJsZWQuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRYU1NB
dWRpdG9yRW5hYmxlZCh0cnVlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aWZy
YW1lIHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3Vy
Y2VzL2VjaG8tcHJvcGVydHkteHNzLWRpc2FibGVkLnBsP3E9JTIyJTIwb25sb2FkPSUyMmFsZXJ0
KC9UaGlzIGlzIGFuIGFsbG93ZWQgc2NyaXB0IGluamVjdGlvbi8pIj4KKzwvaWZyYW1lPgorPC9i
b2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL3NjcmlwdC10YWctZmF1eC14c3MtZGlzYWJsZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9zY3JpcHQt
dGFnLWZhdXgteHNzLWRpc2FibGVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9zY3JpcHQtdGFnLWZhdXgteHNz
LWRpc2FibGVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwzIEBACitDT05T
T0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3Jp
cHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdC4KKworCkluZGV4
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivc2NyaXB0LXRhZy1m
YXV4LXhzcy1kaXNhYmxlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9zY3JpcHQtdGFnLWZhdXgteHNzLWRpc2FibGVkLmh0bWwJ
KHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0
b3Ivc2NyaXB0LXRhZy1mYXV4LXhzcy1kaXNhYmxlZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDE1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVk
KHRydWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRw
Oi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRl
cnRhZy14c3MtZGlzYWJsZWQucGw/cT08c2NyaXB0PmFsZXJ0KCdYLVhTUy1Qcm90ZWN0aW9uOiAw
Jyk8L3NjcmlwdD4iPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivc2NyaXB0LXRhZy1pbmplY3QteHNz
LWRpc2FibGVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivc2NyaXB0LXRhZy1pbmplY3QteHNzLWRpc2FibGVkLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkveHNzQXVkaXRvci9zY3JpcHQtdGFnLWluamVjdC14c3MtZGlzYWJsZWQtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBS
ZWZ1c2VkIHRvIGV4ZWN1dGUgYSBKYXZhU2NyaXB0IHNjcmlwdC4gU291cmNlIGNvZGUgb2Ygc2Ny
aXB0IGZvdW5kIHdpdGhpbiByZXF1ZXN0LgorCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9zY3JpcHQtdGFnLWluamVjdC14c3MtZGlzYWJsZWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0
b3Ivc2NyaXB0LXRhZy1pbmplY3QteHNzLWRpc2FibGVkLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivc2NyaXB0LXRhZy1pbmpl
Y3QteHNzLWRpc2FibGVkLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7Cit9Cis8L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWhlYWQtYW5kLWludGVydGFnLnBs
P2g9WC1YU1MtUHJvdGVjdGlvbiUzQSswJTBBJnE9PHNjcmlwdD5hbGVydCgvWFNTLyk8L3Njcmlw
dD4iPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivc2NyaXB0LXRhZy1wb3N0LXhzcy1kaXNhYmxlZC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS94c3NBdWRpdG9yL3NjcmlwdC10YWctcG9zdC14c3MtZGlzYWJsZWQtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L3NjcmlwdC10YWctcG9zdC14c3MtZGlzYWJsZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpA
QCAtMCwwICsxLDMgQEAKK0FMRVJUOiAvVGhpcyBpcyBhbiBhbGxvd2VkIHNjcmlwdCBpbmplY3Rp
b24vCisKKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L3NjcmlwdC10YWctcG9zdC14c3MtZGlzYWJsZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivc2NyaXB0LXRhZy1wb3N0LXhzcy1k
aXNhYmxlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS94c3NBdWRpdG9yL3NjcmlwdC10YWctcG9zdC14c3MtZGlzYWJsZWQuaHRtbAkocmV2aXNp
b24gMCkKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgor
PHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRy
dWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgbmFtZT0idGciIHNy
Yz0iYWJvdXQ6YmxhbmsiPjwvaWZyYW1lPgorPGZvcm0gdGFyZ2V0PSJ0ZyIgbWV0aG9kPSJQT1NU
IiBpZD0idGhlRm9ybSIKKyAgYWN0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkv
eHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy1wb3N0LWFuZC1ub3RpZnkteHNzLWRp
c2FibGVkLnBsIj4KKzxpbnB1dCB0eXBlPSJ0ZXh0IiBuYW1lPSJxIiB2YWx1ZT0iPHNjcmlwdD5h
bGVydCgvVGhpcyBpcyBhbiBhbGxvd2VkIHNjcmlwdCBpbmplY3Rpb24vKTwvc2NyaXB0PiI+Cis8
L2Zvcm0+Cis8c2NyaXB0PgorZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RoZUZvcm0nKS5zdWJt
aXQoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3NjcmlwdC10YWctd2l0aC1zb3VyY2UteHNzLWRp
c2FibGVkLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzc0F1ZGl0b3Ivc2NyaXB0LXRhZy13aXRoLXNvdXJjZS14c3MtZGlzYWJsZWQt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS94c3NBdWRpdG9yL3NjcmlwdC10YWctd2l0aC1zb3VyY2UteHNzLWRpc2FibGVkLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyIEBACitBTEVSVDogVGhpcyBpcyBhIHNh
ZmUgc2NyaXB0LgorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1
ZGl0b3Ivc2NyaXB0LXRhZy13aXRoLXNvdXJjZS14c3MtZGlzYWJsZWQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivc2NyaXB0LXRh
Zy13aXRoLXNvdXJjZS14c3MtZGlzYWJsZWQuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9zY3JpcHQtdGFnLXdpdGgtc291cmNl
LXhzcy1kaXNhYmxlZC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgeworICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgIGxh
eW91dFRlc3RDb250cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQorPC9zY3Jp
cHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxpZnJhbWUgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAv
c2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy14c3MtZGlzYWJsZWQu
cGw/cT08c2NyaXB0IHNyYz0naHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvcmVzb3VyY2VzL3NhZmUtc2NyaXB0LmpzJz48L3NjcmlwdD4iPgorPC9pZnJhbWU+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1
ZGl0b3Ivc2NyaXB0LXRhZy14c3MtZGlzYWJsZWQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9zY3JpcHQtdGFnLXhz
cy1kaXNhYmxlZC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Ivc2NyaXB0LXRhZy14c3MtZGlzYWJsZWQtZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDIgQEAKK0FMRVJUOiAvVGhpcyBpcyBhbiBh
bGxvd2VkIHNjcmlwdCBpbmplY3Rpb24vCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9zY3JpcHQtdGFnLXhzcy1kaXNhYmxlZC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9zY3JpcHQt
dGFnLXhzcy1kaXNhYmxlZC5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3NjcmlwdC10YWcteHNzLWRpc2FibGVkLmh0bWwJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jl
c291cmNlcy9lY2hvLWludGVydGFnLXhzcy1kaXNhYmxlZC5wbD9xPTxzY3JpcHQ+YWxlcnQoL1Ro
aXMgaXMgYW4gYWxsb3dlZCBzY3JpcHQgaW5qZWN0aW9uLyk8L3NjcmlwdD4iPgorPC9pZnJhbWU+
Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taGVhZC1hbmQtaW50ZXJ0YWcucGwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNl
cy9lY2hvLWhlYWQtYW5kLWludGVydGFnLnBsCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWhlYWQtYW5kLWlu
dGVydGFnLnBsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE1IEBACisjIS91c3IvYmluL3Blcmwg
LXdUCit1c2Ugc3RyaWN0OwordXNlIENHSTsKKworbXkgJGNnaSA9IG5ldyBDR0k7CisKK3ByaW50
ICRjZ2ktPnBhcmFtKCdoJyk7CitwcmludCAiQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLThcblxuIjsKKworcHJpbnQgIjwhRE9DVFlQRSBodG1sPlxuIjsKK3ByaW50ICI8aHRt
bD5cbiI7CitwcmludCAiPGJvZHk+XG4iOworcHJpbnQgJGNnaS0+cGFyYW0oJ3EnKTsKK3ByaW50
ICI8L2JvZHk+XG4iOworcHJpbnQgIjwvaHRtbD5cbiI7CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8t
aGVhZC1hbmQtaW50ZXJ0YWcucGwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpOYW1lOiBzdm46ZXhlY3V0YWJsZQogICAr
ICoKCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVz
b3VyY2VzL2VjaG8taGVhZC1iYXNlLWhyZWYteHNzLWRpc2FibGVkLnBsCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNo
by1oZWFkLWJhc2UtaHJlZi14c3MtZGlzYWJsZWQucGwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taGVhZC1i
YXNlLWhyZWYteHNzLWRpc2FibGVkLnBsCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE4IEBACisj
IS91c3IvYmluL3BlcmwgLXdUCit1c2Ugc3RyaWN0OwordXNlIENHSTsKKworbXkgJGNnaSA9IG5l
dyBDR0k7CisKK3ByaW50ICJYLVhTUy1Qcm90ZWN0aW9uOiAwXG4iOworcHJpbnQgIkNvbnRlbnQt
VHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVVURi04XG5cbiI7CisKK3ByaW50ICI8IURPQ1RZUEUg
aHRtbD5cbiI7CitwcmludCAiPGh0bWw+XG4iOworcHJpbnQgIjxoZWFkPlxuIjsKK3ByaW50ICRj
Z2ktPnBhcmFtKCdxJyk7CitwcmludCAiPC9oZWFkPlxuIjsKK3ByaW50ICI8Ym9keT5cbiI7Citw
cmludCAiPHNjcmlwdCBzcmM9J3NhZmUtc2NyaXB0LmpzJz48L3NjcmlwdD5cbiI7CitwcmludCAi
PC9ib2R5PlxuIjsKK3ByaW50ICI8L2h0bWw+XG4iOwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWhl
YWQtYmFzZS1ocmVmLXhzcy1kaXNhYmxlZC5wbApfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjpleGVjdXRh
YmxlCiAgICsgKgoKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy1jbGljay1hbmQtbm90aWZ5LXhzcy1kaXNhYmxl
ZC5wbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1
ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWctY2xpY2stYW5kLW5vdGlmeS14c3MtZGlzYWJs
ZWQucGwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWctY2xpY2stYW5kLW5vdGlmeS14c3MtZGlz
YWJsZWQucGwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjkgQEAKKyMhL3Vzci9iaW4vcGVybCAt
d1QKK3VzZSBzdHJpY3Q7Cit1c2UgQ0dJOworCitteSAkY2dpID0gbmV3IENHSTsKKworcHJpbnQg
IlgtWFNTLVByb3RlY3Rpb246IDBcbiI7CitwcmludCAiQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7
IGNoYXJzZXQ9VVRGLThcblxuIjsKKworcHJpbnQgIjwhRE9DVFlQRSBodG1sPlxuIjsKK3ByaW50
ICI8aHRtbD5cbiI7CitwcmludCAiPGhlYWQ+XG4iOworcHJpbnQgIjxzY3JpcHQ+XG4iOworcHJp
bnQgIndpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpXG4iOworcHJpbnQgIntcbiI7CitwcmludCAi
ICAgIHZhciBldmVudCA9IGRvY3VtZW50LmNyZWF0ZUV2ZW50KCdNb3VzZUV2ZW50Jyk7XG4iOwor
cHJpbnQgIiAgICBldmVudC5pbml0RXZlbnQoJ2NsaWNrJywgdHJ1ZSwgdHJ1ZSk7XG4iOworcHJp
bnQgIiAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnIi4kY2dpLT5wYXJhbSgnZWxtaWQnKS4i
JykuZGlzcGF0Y2hFdmVudChldmVudCk7XG4iOworcHJpbnQgIn1cbiI7CitwcmludCAiPC9zY3Jp
cHQ+XG4iOworcHJpbnQgIjwvaGVhZD5cbiI7CitwcmludCAiPGJvZHk+XG4iOworcHJpbnQgJGNn
aS0+cGFyYW0oJ3EnKTsKK3ByaW50ICI8c2NyaXB0PlxuIjsKK3ByaW50ICJpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKVxuIjsKK3ByaW50ICIgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpO1xuIjsKK3ByaW50ICI8L3NjcmlwdD5cbiI7CitwcmludCAiPC9ib2R5Plxu
IjsKK3ByaW50ICI8L2h0bWw+XG4iOwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLWNs
aWNrLWFuZC1ub3RpZnkteHNzLWRpc2FibGVkLnBsCl9fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmV4ZWN1
dGFibGUKICAgKyAqCgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLXBvc3QtYW5kLW5vdGlmeS14c3MtZGlzYWJs
ZWQucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLXBvc3QtYW5kLW5vdGlmeS14c3MtZGlzYWJs
ZWQucGwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWctcG9zdC1hbmQtbm90aWZ5LXhzcy1kaXNh
YmxlZC5wbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorIyEvdXNyL2Jpbi9wZXJsIC13
VAordXNlIHN0cmljdDsKK3VzZSBDR0k7CisKK215ICRjZ2kgPSBuZXcgQ0dJOworCitwcmludCAi
WC1YU1MtUHJvdGVjdGlvbjogMFxuIjsKK3ByaW50ICJDb250ZW50LVR5cGU6IHRleHQvaHRtbDsg
Y2hhcnNldD1VVEYtOFxuXG4iOworCitwcmludCAiPCFET0NUWVBFIGh0bWw+XG4iOworcHJpbnQg
IjxodG1sPlxuIjsKK3ByaW50ICI8Ym9keT5cbiI7CitwcmludCAkY2dpLT5wYXJhbSgncScpOwor
cHJpbnQgIjxzY3JpcHQ+XG4iOworcHJpbnQgImlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpXG4iOworcHJpbnQgIiAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7XG4i
OworcHJpbnQgIjwvc2NyaXB0PlxuIjsKK3ByaW50ICI8L2JvZHk+XG4iOworcHJpbnQgIjwvaHRt
bD5cbiI7CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWctcG9zdC1hbmQtbm90aWZ5LXhz
cy1kaXNhYmxlZC5wbApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fCk5hbWU6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoKSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMv
ZWNoby1pbnRlcnRhZy14c3MtZGlzYWJsZWQucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLXhz
cy1kaXNhYmxlZC5wbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy14c3MtZGlzYWJsZWQucGwJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKKyMhL3Vzci9iaW4vcGVybCAtd1QKK3VzZSBz
dHJpY3Q7Cit1c2UgQ0dJOworCitteSAkY2dpID0gbmV3IENHSTsKKworcHJpbnQgIlgtWFNTLVBy
b3RlY3Rpb246IDBcbiI7CitwcmludCAiQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9
VVRGLThcblxuIjsKKworcHJpbnQgIjwhRE9DVFlQRSBodG1sPlxuIjsKK3ByaW50ICI8aHRtbD5c
biI7CitwcmludCAiPGJvZHk+XG4iOworcHJpbnQgJGNnaS0+cGFyYW0oJ3EnKTsKK3ByaW50ICI8
L2JvZHk+XG4iOworcHJpbnQgIjwvaHRtbD5cbiI7CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50
ZXJ0YWcteHNzLWRpc2FibGVkLnBsCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KTmFtZTogc3ZuOmV4ZWN1dGFibGUKICAg
KyAqCgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jl
c291cmNlcy9lY2hvLXByb3BlcnR5LXhzcy1kaXNhYmxlZC5wbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8tcHJv
cGVydHkteHNzLWRpc2FibGVkLnBsCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLXByb3BlcnR5LXhzcy1kaXNh
YmxlZC5wbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxNiBAQAorIyEvdXNyL2Jpbi9wZXJsIC13
VAordXNlIHN0cmljdDsKK3VzZSBDR0k7CisKK215ICRjZ2kgPSBuZXcgQ0dJOworCitwcmludCAi
WC1YU1MtUHJvdGVjdGlvbjogMFxuIjsKK3ByaW50ICJDb250ZW50LVR5cGU6IHRleHQvaHRtbDsg
Y2hhcnNldD1VVEYtOFxuXG4iOworCitwcmludCAiPCFET0NUWVBFIGh0bWw+XG4iOworcHJpbnQg
IjxodG1sPlxuIjsKK3ByaW50ICI8Ym9keSBmb289XCIiOworcHJpbnQgJGNnaS0+cGFyYW0oJ3En
KTsKK3ByaW50ICJcIj5cbiI7CitwcmludCAiPC9ib2R5PlxuIjsKK3ByaW50ICI8L2h0bWw+XG4i
OwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94
c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLXByb3BlcnR5LXhzcy1kaXNhYmxlZC5wbApfX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fCk5hbWU6IHN2bjpleGVjdXRhYmxlCiAgICsgKgoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46334</attachid>
            <date>2010-01-11 21:53:38 -0800</date>
            <delta_ts>2010-01-24 23:15:08 -0800</delta_ts>
            <desc>Path (Work in progress)</desc>
            <filename>XSSAuditorHeaderFullBlock_1.diff</filename>
            <type>text/plain</type>
            <size>19706</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3Jl
L3BhZ2UvWFNTQXVkaXRvci5jcHAJKHJldmlzaW9uIDUyNjg1KQorKysgV2ViQ29yZS9wYWdlL1hT
U0F1ZGl0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODksNiArMjg5LDE3IEBAIGJvb2wgWFNT
QXVkaXRvcjo6aXNTYW1lT3JpZ2luUmVzb3VyY2UoY28KICAgICByZXR1cm4gKG1fZnJhbWUtPmRv
Y3VtZW50KCktPnVybCgpLmhvc3QoKSA9PSByZXNvdXJjZVVSTC5ob3N0KCkgJiYgcmVzb3VyY2VV
UkwucXVlcnkoKS5pc0VtcHR5KCkpOwogfQogCitib29sIFhTU0F1ZGl0b3I6OnNob3VsZEZ1bGxQ
YWdlQmxvY2tGb3JYU1NQcm90ZWN0aW9uSGVhZGVyKCkgY29uc3QKK3sKKyAgICAvLyBJZiB3ZSBo
YXZlIGRldGVjdGVkIGEgWFNTIGF0dGFjayBhbmQgd2UgZmluZCB0aGUgSFRUUCBoZWFkZXIKKyAg
ICAvLyAiWC1YU1MtUHJvdGVjdGlvbjogZnVsbC1wYWdlLWJsb2NrIiB0aGVuIHdlIHdpbGwgc3Rv
cCBsb2FkaW5nCisgICAgLy8gdGhlIHBhZ2UgYXMgb3Bwb3NlZCB0byBzZWxlY3RpdmVseSBpZ25v
cmluZyBzY3JpcHRzLgorICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBYU1NQcm90ZWN0
aW9uSGVhZGVyLCAoIlgtWFNTLVByb3RlY3Rpb24iKSk7CisgICAgREVGSU5FX1NUQVRJQ19MT0NB
TChTdHJpbmcsIFhTU0Z1bGxCbG9jaywgKCJmdWxsYmxvY2siKSk7CisgICAgU3RyaW5nIHhzc1By
b3RlY3Rpb25WYWx1ZSA9IG1fZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLT5yZXNw
b25zZSgpLmh0dHBIZWFkZXJGaWVsZChYU1NQcm90ZWN0aW9uSGVhZGVyKTsKKyAgICByZXR1cm4g
KCF4c3NQcm90ZWN0aW9uVmFsdWUuaXNOdWxsKCkgJiYgZXF1YWxJZ25vcmluZ0Nhc2UoeHNzUHJv
dGVjdGlvblZhbHVlLCBYU1NGdWxsQmxvY2spKTsKK30KKwogYm9vbCBYU1NBdWRpdG9yOjpmaW5k
SW5SZXF1ZXN0KGNvbnN0IEZpbmRUYXNrJiB0YXNrKSBjb25zdAogewogICAgIGJvb2wgcmVzdWx0
ID0gZmFsc2U7CkBAIC0yOTcsNiArMzA4LDEwIEBAIGJvb2wgWFNTQXVkaXRvcjo6ZmluZEluUmVx
dWVzdChjb25zdCBGaW4KICAgICAgICAgcmVzdWx0ID0gZmluZEluUmVxdWVzdChwYXJlbnRGcmFt
ZSwgdGFzayk7CiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IGZpbmRJblJlcXVl
c3QobV9mcmFtZSwgdGFzayk7CisgICAgaWYgKHJlc3VsdCAmJiBzaG91bGRGdWxsUGFnZUJsb2Nr
Rm9yWFNTUHJvdGVjdGlvbkhlYWRlcigpKSB7CisgICAgICAgIG1fZnJhbWUtPmxvYWRlcigpLT5z
dG9wQWxsTG9hZGVycygpOworICAgICAgICBtX2ZyYW1lLT5yZWRpcmVjdFNjaGVkdWxlcigpLT5z
Y2hlZHVsZUxvY2F0aW9uQ2hhbmdlKGJsYW5rVVJMKCksIFN0cmluZygpKTsKKyAgICB9CiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIApJbmRleDogV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5oCShyZXZpc2lvbiA1MjY4NSkKKysr
IFdlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTE0NCw2ICsxNDQs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgZmluZEluUmVxdWVzdChjb25z
dCBGaW5kVGFzayYpIGNvbnN0OwogICAgICAgICBib29sIGZpbmRJblJlcXVlc3QoRnJhbWUqLCBj
b25zdCBGaW5kVGFzayYpIGNvbnN0OwogCisgICAgICAgIGJvb2wgc2hvdWxkRnVsbFBhZ2VCbG9j
a0ZvclhTU1Byb3RlY3Rpb25IZWFkZXIoKSBjb25zdDsKKwogICAgICAgICAvLyBUaGUgZnJhbWUg
dG8gYXVkaXQuCiAgICAgICAgIEZyYW1lKiBtX2ZyYW1lOwogCkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1iYXNlLWhyZWYtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9mdWxsLWJsb2NrLWJhc2UtaHJlZi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1i
YXNlLWhyZWYtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDggQEAKK1RoZXJl
IHNob3VsZCBiZSBubyBjb250ZW50IGluIHRoZSBpZnJhbWUgYmVsb3c6CisKKworCistLS0tLS0t
LQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCisK
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJs
b2NrLWJhc2UtaHJlZi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWJhc2UtaHJlZi5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxv
Y2stYmFzZS1ocmVmLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTcgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgIGxheW91dFRlc3RD
b250cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQorPC9zY3JpcHQ+Cis8L2hl
YWQ+Cis8Ym9keT4KKzxwPlRoZXJlIHNob3VsZCBiZSBubyBjb250ZW50IGluIHRoZSBpZnJhbWUg
YmVsb3c6PC9wPgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94
c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWhlYWQtYmFzZS1ocmVmLnBsP2VuYWJsZS1mdWxsLWJs
b2NrPTEmcT08YmFzZSBocmVmPSdodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkveHNzQXVk
aXRvci9yZXNvdXJjZXMvYmFzZS1ocmVmLyc+Ij4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1s
PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwt
YmxvY2stZ2V0LWZyb20taWZyYW1lLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1nZXQtZnJvbS1p
ZnJhbWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stZ2V0LWZyb20taWZyYW1lLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDE6IFJlZnVzZWQgdG8gbG9hZCBmcm9tIGRvY3VtZW50IGJhc2UgVVJMLiBVUkwgZm91bmQgd2l0
aGluIHJlcXVlc3QuCisKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBSZWZ1c2VkIHRvIGV4ZWN1
dGUgYSBKYXZhU2NyaXB0IHNjcmlwdC4gU291cmNlIGNvZGUgb2Ygc2NyaXB0IGZvdW5kIHdpdGhp
biByZXF1ZXN0LgorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnZnJhbWUnCistLS0tLS0tLQorCklu
ZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9j
ay1nZXQtZnJvbS1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1nZXQtZnJvbS1pZnJhbWUuaHRtbAko
cmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9mdWxsLWJsb2NrLWdldC1mcm9tLWlmcmFtZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsx
LDI2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL3V0aWxpdGll
cy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNT
QXVkaXRvckVuYWJsZWQodHJ1ZSk7Cit9Cit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKQorewor
ICAgIHNlbmRSZXF1ZXN0RnJvbUlGcmFtZSgiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5
L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWcucGwiLCJlbmFibGUtZnVsbC1ibG9j
az0xJnE9PHNjcmlwdD5hbGVydCgvWFNTLyk8XC9zY3JpcHQ+IiwiR0VUIik7CisgICAgd2luZG93
LnNldFRpbWVvdXQoZG9uZSwgMTAwKTsKK307CitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5Pgor
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWlmcmFtZS1qYXZhc2NyaXB0
LXVybC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2staWZyYW1lLWphdmFzY3JpcHQtdXJsLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9mdWxsLWJsb2NrLWlmcmFtZS1qYXZhc2NyaXB0LXVybC1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTUgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBS
ZWZ1c2VkIHRvIGV4ZWN1dGUgYSBKYXZhU2NyaXB0IHNjcmlwdC4gU291cmNlIGNvZGUgb2Ygc2Ny
aXB0IGZvdW5kIHdpdGhpbiByZXF1ZXN0LgorCitUaGVyZSBzaG91bGQgYmUgbm8gY29udGVudCBp
biB0aGUgaWZyYW1lIGJlbG93OgorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0
aCAvLzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorCisKKy0tLS0tLS0tCitGcmFtZTogJzwh
LS1mcmFtZVBhdGggLy88IS0tZnJhbWUwLS0+LzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQor
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1i
bG9jay1pZnJhbWUtamF2YXNjcmlwdC11cmwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1pZnJhbWUtamF2YXNj
cmlwdC11cmwuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWlmcmFtZS1qYXZhc2NyaXB0LXVybC5odG1sCShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE3IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRY
U1NBdWRpdG9yRW5hYmxlZCh0cnVlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8
cD5UaGVyZSBzaG91bGQgYmUgbm8gY29udGVudCBpbiB0aGUgaWZyYW1lIGJlbG93OjwvcD4KKzxp
ZnJhbWUgc3JjPSdodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNv
dXJjZXMvZWNoby1pbnRlcnRhZy5wbD9lbmFibGUtZnVsbC1ibG9jaz0xJnE9JTNDaWZyYW1lJTIw
c3JjPWphdmFzY3JpcHQ6YWxlcnQoZG9jdW1lbnQuZG9tYWluKSUzRSc+Cis8L2lmcmFtZT4KKzwv
Ym9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1qYXZhc2NyaXB0
LWxpbmstZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWphdmFzY3JpcHQtbGluay1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1
ZGl0b3IvZnVsbC1ibG9jay1qYXZhc2NyaXB0LWxpbmstZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDEwIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBl
eGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3
aXRoaW4gcmVxdWVzdC4KKworVGhlcmUgc2hvdWxkIGJlIG5vIGNvbnRlbnQgaW4gdGhlIGlmcmFt
ZSBiZWxvdzoKKworCisKKy0tLS0tLS0tCitGcmFtZTogJ2ZyYW1lJworLS0tLS0tLS0KKwpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2st
amF2YXNjcmlwdC1saW5rLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stamF2YXNjcmlwdC1saW5rLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
ZnVsbC1ibG9jay1qYXZhc2NyaXB0LWxpbmsuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwz
MyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0
KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQorZnVuY3Rpb24g
ZG9uZSgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorZnVuY3Rpb24gd2FpdFNvbWVU
aW1lQmVmb3JlQ2FsbGluZ0RvbmUoKQoreworICAgIC8vIFdlIG5lZWQgdG8gd2FpdCBmb3IgdGhl
IGlmcmFtZSB0byBiZSByZWRpcmVjdGVkIHRvIGFib3V0OmJsYW5rCisgICAgLy8gYmVmb3JlIGNh
bGxpbmcgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpLgorICAgIHdpbmRvdy5zZXRU
aW1lb3V0KGRvbmUsIDIwMCk7Cit9Cit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKQoreworICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmcmFtZSIpLm9ubG9hZCA9IHdhaXRTb21lVGltZUJl
Zm9yZUNhbGxpbmdEb25lOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoZXJl
IHNob3VsZCBiZSBubyBjb250ZW50IGluIHRoZSBpZnJhbWUgYmVsb3c6PC9wPgorPGlmcmFtZSBp
ZD0iZnJhbWUiIHNyYz0naHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
cmVzb3VyY2VzL2VjaG8taW50ZXJ0YWctY2xpY2stYW5kLW5vdGlmeS5wbD9lbmFibGUtZnVsbC1i
bG9jaz0xJmVsbWlkPWFuY2hvckxpbmsmcT0lM0NhK2lkJTNEYW5jaG9yTGluaytocmVmJTNEamF2
YXNjcmlwdCUzQWFsZXJ0JTI4L1hTUy8lMjklM0V0ZXN0JTNDL2ElM0UnPgorPC9pZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvZnVsbC1ibG9jay1saW5rLW9uY2xpY2stZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2Nr
LWxpbmstb25jbGljay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1saW5rLW9uY2xpY2stZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDggQEAKK1RoZXJlIHNob3VsZCBiZSBu
byBjb250ZW50IGluIHRoZSBpZnJhbWUgYmVsb3c6CisKKworCistLS0tLS0tLQorRnJhbWU6ICc8
IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCisKSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWxpbmstb25j
bGljay5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9mdWxsLWJsb2NrLWxpbmstb25jbGljay5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stbGlu
ay1vbmNsaWNrLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMzMgQEAKKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVk
aXRvckVuYWJsZWQodHJ1ZSk7Cit9CitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7Cit9CitmdW5jdGlvbiB3YWl0U29tZVRpbWVCZWZvcmVDYWxsaW5nRG9uZSgpCit7
CisgICAgLy8gV2UgbmVlZCB0byB3YWl0IGZvciB0aGUgaWZyYW1lIHRvIGJlIHJlZGlyZWN0ZWQg
dG8gYWJvdXQ6YmxhbmsKKyAgICAvLyBiZWZvcmUgY2FsbGluZyBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCkuCisgICAgd2luZG93LnNldFRpbWVvdXQoZG9uZSwgNTApOworfQord2lu
ZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
ZnJhbWUiKS5vbmxvYWQgPSB3YWl0U29tZVRpbWVCZWZvcmVDYWxsaW5nRG9uZTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGVyZSBzaG91bGQgYmUgbm8gY29udGVudCBpbiB0
aGUgaWZyYW1lIGJlbG93OjwvcD4KKzxpZnJhbWUgaWQ9ImZyYW1lIiBzcmM9Imh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLnBs
P2VuYWJsZS1mdWxsLWJsb2NrPTEmcT08YSUyMG9uY2xpY2s9J2FsZXJ0KC9YU1MvKSc+Q2xpY2s8
L2E+Ij4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stb2JqZWN0LXRhZy1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL2Z1bGwtYmxvY2stb2JqZWN0LXRhZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1v
YmplY3QtdGFnLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorQ09O
U09MRSBNRVNTQUdFOiBsaW5lIDE6IFJlZnVzZWQgdG8gbG9hZCBhbiBvYmplY3QuIFVSTCBmb3Vu
ZCB3aXRoaW4gcmVxdWVzdDogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3NBdWRp
dG9yL3Jlc291cmNlcy9kdW1teS5zd2YiLgorCitUaGVyZSBzaG91bGQgYmUgbm8gY29udGVudCBp
biB0aGUgaWZyYW1lIGJlbG93OgorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnZnJhbWUnCistLS0t
LS0tLQorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
ZnVsbC1ibG9jay1vYmplY3QtdGFnLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stb2JqZWN0LXRhZy5odG1sCShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L2Z1bGwtYmxvY2stb2JqZWN0LXRhZy5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDMzIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQorZnVuY3Rpb24gZG9uZSgpCit7Cisg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorZnVuY3Rpb24gd2FpdFNvbWVUaW1lQmVmb3JlQ2Fs
bGluZ0RvbmUoKQoreworICAgIC8vIFdlIG5lZWQgdG8gd2FpdCBmb3IgdGhlIGlmcmFtZSB0byBi
ZSByZWRpcmVjdGVkIHRvIGFib3V0OmJsYW5rCisgICAgLy8gYmVmb3JlIGNhbGxpbmcgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpLgorICAgIHdpbmRvdy5zZXRUaW1lb3V0KGRvbmUs
IDIwMCk7Cit9Cit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKQoreworICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJmcmFtZSIpLm9ubG9hZCA9IHdhaXRTb21lVGltZUJlZm9yZUNhbGxpbmdE
b25lOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoZXJlIHNob3VsZCBiZSBu
byBjb250ZW50IGluIHRoZSBpZnJhbWUgYmVsb3c6PC9wPgorPGlmcmFtZSBpZD0iZnJhbWUiIHNy
Yz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2Vj
aG8taW50ZXJ0YWcucGw/ZW5hYmxlLWZ1bGwtYmxvY2s9MSZxPTxvYmplY3QgbmFtZT0ncGx1Z2lu
JyB0eXBlPSdhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlJz48cGFyYW0gbmFtZT0n
bW92aWUnIHZhbHVlPSdodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9y
ZXNvdXJjZXMvZHVtbXkuc3dmJyAvPjwvb2JqZWN0PiI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9m
dWxsLWJsb2NrLXBvc3QtZnJvbS1pZnJhbWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXBvc3Qt
ZnJvbS1pZnJhbWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stcG9zdC1mcm9tLWlmcmFtZS1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOCBAQAorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE6IFJlZnVzZWQgdG8gZXhlY3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBTb3VyY2Ug
Y29kZSBvZiBzY3JpcHQgZm91bmQgd2l0aGluIHJlcXVlc3QuCisKKworCistLS0tLS0tLQorRnJh
bWU6ICdmcmFtZScKKy0tLS0tLS0tCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXBvc3QtZnJvbS1pZnJhbWUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1i
bG9jay1wb3N0LWZyb20taWZyYW1lLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1wb3N0LWZyb20taWZyYW1l
Lmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkv
eHNzQXVkaXRvci9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1l
c0FzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRYU1NBdWRpdG9yRW5hYmxlZCh0cnVlKTsKK30KK3dp
bmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpCit7CisgICAgc2VuZFJlcXVlc3RGcm9tSUZyYW1lKCJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1p
bnRlcnRhZy5wbCIsImVuYWJsZS1mdWxsLWJsb2NrPTEmcT08c2NyaXB0PmFsZXJ0KC9YU1MvKTxc
L3NjcmlwdD4iLCJQT1NUIik7CisgICAgd2luZG93LnNldFRpbWVvdXQoZG9uZSwgMTAwKTsKK307
CitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9mdWxsLWJsb2NrLXNjcmlwdC10YWctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXNjcmlwdC10
YWctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stc2NyaXB0LXRhZy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBSZWZ1
c2VkIHRvIGV4ZWN1dGUgYSBKYXZhU2NyaXB0IHNjcmlwdC4gU291cmNlIGNvZGUgb2Ygc2NyaXB0
IGZvdW5kIHdpdGhpbiByZXF1ZXN0LgorCitUaGVyZSBzaG91bGQgYmUgbm8gY29udGVudCBpbiB0
aGUgaWZyYW1lIGJlbG93OgorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAv
LzwhLS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1zY3JpcHQtdGFnLXdpdGgtc291cmNl
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1zY3JpcHQtdGFnLXdpdGgtc291cmNlLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9mdWxsLWJsb2NrLXNjcmlwdC10YWctd2l0aC1zb3VyY2UtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQpAQCAtMCwwICsxLDggQEAKK1RoZXJlIHNob3VsZCBiZSBubyBjb250ZW50IGlu
IHRoZSBpZnJhbWUgYmVsb3c6CisKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRo
IC8vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXNjcmlwdC10YWctd2l0aC1zb3Vy
Y2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvZnVsbC1ibG9jay1zY3JpcHQtdGFnLXdpdGgtc291cmNlLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1i
bG9jay1zY3JpcHQtdGFnLXdpdGgtc291cmNlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEs
MTcgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7
CisgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoZXJlIHNob3VsZCBiZSBubyBjb250ZW50
IGluIHRoZSBpZnJhbWUgYmVsb3c6PC9wPgorPGlmcmFtZSBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLnBsP2VuYWJs
ZS1mdWxsLWJsb2NrPTEmcT08c2NyaXB0IHNyYz0naHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL3hzcy5qcyc+PC9zY3JpcHQ+Ij4KKzwvaWZyYW1lPgor
PC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94
c3NBdWRpdG9yL2Z1bGwtYmxvY2stc2NyaXB0LXRhZy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXNjcmlwdC10
YWcuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9mdWxsLWJsb2NrLXNjcmlwdC10YWcuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1Rl
eHQoKTsKKyAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhlcmUgc2hvdWxkIGJlIG5vIGNv
bnRlbnQgaW4gdGhlIGlmcmFtZSBiZWxvdzo8L3A+Cis8aWZyYW1lIHNyYz0iaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWcucGw/
ZW5hYmxlLWZ1bGwtYmxvY2s9MSZxPTxzY3JpcHQ+YWxlcnQoL1hTUy8pPC9zY3JpcHQ+Ij4KKzwv
aWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWhlYWQtYmFzZS1ocmVmLnBsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNv
dXJjZXMvZWNoby1oZWFkLWJhc2UtaHJlZi5wbAkocmV2aXNpb24gNTI2ODUpCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taGVhZC1i
YXNlLWhyZWYucGwJKHdvcmtpbmcgY29weSkKQEAgLTQsNiArNCw5IEBAIHVzZSBDR0k7CiAKIG15
ICRjZ2kgPSBuZXcgQ0dJOwogCitpZiAoJGNnaS0+cGFyYW0oJ2VuYWJsZS1mdWxsLWJsb2NrJykp
IHsKKyAgICBwcmludCAiWC1YU1MtUHJvdGVjdGlvbjogZnVsbGJsb2NrXG4iOworfQogcHJpbnQg
IkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVVURi04XG5cbiI7CiAKIHByaW50ICI8
IURPQ1RZUEUgaHRtbD5cbiI7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWctY2xpY2stYW5kLW5vdGlmeS5wbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
cmVzb3VyY2VzL2VjaG8taW50ZXJ0YWctY2xpY2stYW5kLW5vdGlmeS5wbAkocmV2aXNpb24gNTI2
ODUpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3Vy
Y2VzL2VjaG8taW50ZXJ0YWctY2xpY2stYW5kLW5vdGlmeS5wbAkod29ya2luZyBjb3B5KQpAQCAt
NCw2ICs0LDkgQEAgdXNlIENHSTsKIAogbXkgJGNnaSA9IG5ldyBDR0k7CiAKK2lmICgkY2dpLT5w
YXJhbSgnZW5hYmxlLWZ1bGwtYmxvY2snKSkgeworICAgIHByaW50ICJYLVhTUy1Qcm90ZWN0aW9u
OiBmdWxsYmxvY2tcbiI7Cit9CiBwcmludCAiQ29udGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJz
ZXQ9VVRGLThcblxuIjsKIAogcHJpbnQgIjwhRE9DVFlQRSBodG1sPlxuIjsKQEAgLTIwLDkgKzIz
LDE3IEBAIHByaW50ICI8L3NjcmlwdD5cbiI7CiBwcmludCAiPC9oZWFkPlxuIjsKIHByaW50ICI8
Ym9keT5cbiI7CiBwcmludCAkY2dpLT5wYXJhbSgncScpOwotcHJpbnQgIjxzY3JpcHQ+XG4iOwot
cHJpbnQgImlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpXG4iOwotcHJpbnQgIiAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7XG4iOwotcHJpbnQgIjwvc2NyaXB0Plxu
IjsKK2lmICgkY2dpLT5wYXJhbSgnZW5hYmxlLWZ1bGwtYmxvY2snKSkgeworICAgICMgTm90ZSwg
d2hlbiB0ZXN0aW5nIGEgZnVsbC1wYWdlLWJsb2NrLCB3ZSBjYW4ndCBjYWxsIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKQorICAgICMgb24gdGhlIGdlbmVyYXRlZCBwYWdlIGJlY2F1
c2UgaXQgdGFrZXMgc29tZSB0aW1lIGZvciB0aGUgZnJhbWUgdG8gYmUgcmVkaXJlY3RlZCB0bwor
ICAgICMgYWJvdXQ6YmxhbmsuIEhlbmNlLCB0aGUgY2FsbGVyIG9mIHRoaXMgUGVybCBzY3JpcHQg
bXVzdCBjYWxsIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKQorICAgICMgYWZ0ZXIg
dGhlIHJlZGlyZWN0IGhhcyBvY2N1cnJlZC4KKyAgICBwcmludCAiPHA+SWYgeW91IHNlZSB0aGlz
IG1lc3NhZ2UgdGhlbiB0aGUgdGVzdCBGQUlMRUQuPC9wPlxuIjsKK30gZWxzZSB7CisgICAgcHJp
bnQgIjxzY3JpcHQ+XG4iOworICAgIHByaW50ICJpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKVxuIjsKKyAgICBwcmludCAiICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTtcbiI7CisgICAgcHJpbnQgIjwvc2NyaXB0PlxuIjsKK30KIHByaW50ICI8L2JvZHk+XG4iOwog
cHJpbnQgIjwvaHRtbD5cbiI7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWcucGwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWlu
dGVydGFnLnBsCShyZXZpc2lvbiA1MjY4NSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy5wbAkod29ya2luZyBjb3B5
KQpAQCAtNCwxMSArNCwxNyBAQCB1c2UgQ0dJOwogCiBteSAkY2dpID0gbmV3IENHSTsKIAoraWYg
KCRjZ2ktPnBhcmFtKCdlbmFibGUtZnVsbC1ibG9jaycpKSB7CisgICAgcHJpbnQgIlgtWFNTLVBy
b3RlY3Rpb246IGZ1bGxibG9ja1xuIjsKK30KIHByaW50ICJDb250ZW50LVR5cGU6IHRleHQvaHRt
bDsgY2hhcnNldD1VVEYtOFxuXG4iOwogCiBwcmludCAiPCFET0NUWVBFIGh0bWw+XG4iOwogcHJp
bnQgIjxodG1sPlxuIjsKIHByaW50ICI8Ym9keT5cbiI7CiBwcmludCAkY2dpLT5wYXJhbSgncScp
OworaWYgKCRjZ2ktPnBhcmFtKCdlbmFibGUtZnVsbC1ibG9jaycpKSB7CisgICAgcHJpbnQgIjxw
PklmIHlvdSBzZWUgdGhpcyBtZXNzYWdlIHRoZW4gdGhlIHRlc3QgRkFJTEVELjwvcD5cbiI7Cit9
CiBwcmludCAiPC9ib2R5PlxuIjsKIHByaW50ICI8L2h0bWw+XG4iOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47316</attachid>
            <date>2010-01-24 23:15:08 -0800</date>
            <delta_ts>2010-01-26 22:45:18 -0800</delta_ts>
            <desc>Patch with test cases</desc>
            <filename>Bug27312.patch</filename>
            <type>text/plain</type>
            <size>27638</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1Mzc4MCkKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjggQEAKKzIwMTAtMDEtMjQgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzMxMgorCisgICAgICAgIElt
cGxlbWVudHMgc3VwcG9ydCBmb3IgZnVsbCBwYWdlIGJsb2NraW5nIHZpYSB0aGUgWC1YU1MtUHJv
dGVjdGlvbiBoZWFkZXIuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9mdWxsLWJsb2NrLWJhc2UtaHJlZi5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1nZXQtZnJvbS1pZnJhbWUuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2st
aWZyYW1lLWphdmFzY3JpcHQtdXJsLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWlmcmFtZS1uby1pbmhlcml0LnBocAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stamF2YXNj
cmlwdC1saW5rLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9mdWxsLWJsb2NrLWxpbmstb25jbGljay5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1vYmplY3QtdGFnLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXBvc3Qt
ZnJvbS1pZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL2Z1bGwtYmxvY2stc2NyaXB0LXRhZy13aXRoLXNvdXJjZS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1zY3JpcHQtdGFn
Lmh0bWwKKworICAgICAgICAqIHBhZ2UvWFNTQXVkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpYU1NBdWRpdG9yOjpzaG91bGRGdWxsUGFnZUJsb2NrRm9yWFNTUHJvdGVjdGlvbkhlYWRlcik6
CisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjpmaW5kSW5SZXF1ZXN0KToKKyAgICAgICAg
KiBwYWdlL1hTU0F1ZGl0b3IuaDogRGVmaW5lZCBtZXRob2Qgc2hvdWxkRnVsbFBhZ2VCbG9ja0Zv
clhTU1Byb3RlY3Rpb25IZWFkZXIKKyAgICAgICAgYW5kIGZpeGVkIG1pc3NwZWxsZWQgd29yZHMg
aW4gbGFyZ2UgY29tbWVudCBibG9jay4KKwogMjAxMC0wMS0yNCAgRXJpYyBDYXJsc29uICA8ZXJp
Yy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIu
CkluZGV4OiBXZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViQ29y
ZS9wYWdlL1hTU0F1ZGl0b3IuY3BwCShyZXZpc2lvbiA1Mzc1MSkKKysrIFdlYkNvcmUvcGFnZS9Y
U1NBdWRpdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg5LDYgKzI4OSwxNyBAQCBib29sIFhT
U0F1ZGl0b3I6OmlzU2FtZU9yaWdpblJlc291cmNlKGNvCiAgICAgcmV0dXJuIChtX2ZyYW1lLT5k
b2N1bWVudCgpLT51cmwoKS5ob3N0KCkgPT0gcmVzb3VyY2VVUkwuaG9zdCgpICYmIHJlc291cmNl
VVJMLnF1ZXJ5KCkuaXNFbXB0eSgpKTsKIH0KIAorYm9vbCBYU1NBdWRpdG9yOjpzaG91bGRGdWxs
UGFnZUJsb2NrRm9yWFNTUHJvdGVjdGlvbkhlYWRlcigpIGNvbnN0Cit7CisgICAgLy8gSWYgd2Ug
ZGV0ZWN0IGFuIFhTUyBhdHRhY2sgYW5kIGZpbmQgdGhlIEhUVFAgaGVhZGVyCisgICAgLy8gIlgt
WFNTLVByb3RlY3Rpb246IGZ1bGwtYmxvY2siIHRoZW4gd2Ugd2lsbCBzdG9wIGxvYWRpbmcKKyAg
ICAvLyB0aGUgcGFnZSBhcyBvcHBvc2VkIHRvIGlnbm9yaW5nIHRoZSBzY3JpcHQuCisgICAgREVG
SU5FX1NUQVRJQ19MT0NBTChTdHJpbmcsIFhTU1Byb3RlY3Rpb25IZWFkZXIsICgiWC1YU1MtUHJv
dGVjdGlvbiIpKTsKKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmluZywgWFNTRnVsbEJsb2Nr
LCAoImZ1bGwtYmxvY2siKSk7CisgICAgU3RyaW5nIHhzc1Byb3RlY3Rpb25WYWx1ZSA9IG1fZnJh
bWUtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVs
ZChYU1NQcm90ZWN0aW9uSGVhZGVyKTsKKyAgICByZXR1cm4gKCF4c3NQcm90ZWN0aW9uVmFsdWUu
aXNOdWxsKCkgJiYgZXF1YWxJZ25vcmluZ0Nhc2UoeHNzUHJvdGVjdGlvblZhbHVlLCBYU1NGdWxs
QmxvY2spKTsKK30KKwogYm9vbCBYU1NBdWRpdG9yOjpmaW5kSW5SZXF1ZXN0KGNvbnN0IEZpbmRU
YXNrJiB0YXNrKSBjb25zdAogewogICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CkBAIC0yOTcsNiAr
MzA4LDEwIEBAIGJvb2wgWFNTQXVkaXRvcjo6ZmluZEluUmVxdWVzdChjb25zdCBGaW4KICAgICAg
ICAgcmVzdWx0ID0gZmluZEluUmVxdWVzdChwYXJlbnRGcmFtZSwgdGFzayk7CiAgICAgaWYgKCFy
ZXN1bHQpCiAgICAgICAgIHJlc3VsdCA9IGZpbmRJblJlcXVlc3QobV9mcmFtZSwgdGFzayk7Cisg
ICAgaWYgKHJlc3VsdCAmJiBzaG91bGRGdWxsUGFnZUJsb2NrRm9yWFNTUHJvdGVjdGlvbkhlYWRl
cigpKSB7CisgICAgICAgIG1fZnJhbWUtPmxvYWRlcigpLT5zdG9wQWxsTG9hZGVycygpOworICAg
ICAgICBtX2ZyYW1lLT5yZWRpcmVjdFNjaGVkdWxlcigpLT5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdl
KGJsYW5rVVJMKCksIFN0cmluZygpKTsKKyAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApJ
bmRleDogV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3Bh
Z2UvWFNTQXVkaXRvci5oCShyZXZpc2lvbiA1Mzc1MSkKKysrIFdlYkNvcmUvcGFnZS9YU1NBdWRp
dG9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIGNsYXNzIFNjcmlwdFNvdXJjZUNvZGU7CiAKICAgICAvLyBUaGUgWFNTQXVkaXRvciBj
bGFzcyBpcyB1c2VkIHRvIHByZXZlbnQgdHlwZSAxIGNyb3NzLXNpdGUgc2NyaXB0aW5nCi0gICAg
Ly8gdnVsbmVyYWJpbGl0ZXMgKGFsc28ga25vd24gYXMgcmVmbGVjdGVkIHZ1bG5lcmFiaWxpdGll
cykuCisgICAgLy8gdnVsbmVyYWJpbGl0aWVzIChhbHNvIGtub3duIGFzIHJlZmxlY3RlZCB2dWxu
ZXJhYmlsaXRpZXMpLgogICAgIC8vCiAgICAgLy8gTW9yZSBzcGVjaWZpY2FsbHksIHRoZSBYU1NB
dWRpdG9yIGNsYXNzIGRlY2lkZXMgd2hldGhlciB0aGUgZXhlY3V0aW9uIG9mCiAgICAgLy8gYSBz
Y3JpcHQgaXMgdG8gYmUgYWxsb3dlZCBvciBkZW5pZWQgYmFzZWQgb24gdGhlIGNvbnRlbnQgb2Yg
YW55CkBAIC01Myw3ICs1Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAvLwogICAgIC8v
IEJpbmRpbmdzCiAgICAgLy8KLSAgICAvLyBBbiBYU1NBdWRpdG9yIGlzIGluc3RhbnRpYXRlZCB3
aXRoaW4gdGhlIGNvbnRydWN0b3Igb2YgYQorICAgIC8vIEFuIFhTU0F1ZGl0b3IgaXMgaW5zdGFu
dGlhdGVkIHdpdGhpbiB0aGUgY29uc3RydWN0b3Igb2YgYQogICAgIC8vIFNjcmlwdENvbnRyb2xs
ZXIgb2JqZWN0IGFuZCBwYXNzZWQgdGhlIEZyYW1lIHRoZSBzY3JpcHQgb3JpZ2luYXRlZC4gVGhl
CiAgICAgLy8gU2NyaXB0Q29udHJvbGxlciBjYWxscyBiYWNrIHRvIHRoZSBYU1NBdWRpdG9yIHRv
IGRldGVybWluZSB3aGV0aGVyIGEKICAgICAvLyBKYXZhU2NyaXB0IHNjcmlwdCBpcyBzYWZlIHRv
IGV4ZWN1dGUgYmVmb3JlIGV4ZWN1dGluZyBpdC4gVGhlIGZvbGxvd2luZwpAQCAtMTQ0LDYgKzE0
NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBmaW5kSW5SZXF1ZXN0KGNv
bnN0IEZpbmRUYXNrJikgY29uc3Q7CiAgICAgICAgIGJvb2wgZmluZEluUmVxdWVzdChGcmFtZSos
IGNvbnN0IEZpbmRUYXNrJikgY29uc3Q7CiAKKyAgICAgICAgYm9vbCBzaG91bGRGdWxsUGFnZUJs
b2NrRm9yWFNTUHJvdGVjdGlvbkhlYWRlcigpIGNvbnN0OworCiAgICAgICAgIC8vIFRoZSBmcmFt
ZSB0byBhdWRpdC4KICAgICAgICAgRnJhbWUqIG1fZnJhbWU7CiAKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDUzNzgwKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsNDEgQEAKKzIwMTAtMDEtMjQgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQub3JnPgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzMxMgorCisgICAgICAgIFRlc3RzIHRo
YXQgdGhlIGhlYWRlciAiWC1YU1MtUHJvdGVjdGlvbjogZnVsbC1ibG9jayIgbGVhZHMgdG8gYSBm
dWxsIHBhZ2UgYmxvY2sKKyAgICAgICAgd2hlbiBhbiBYU1MgYXR0YWNrIGlzIGRldGVjdGVkLgor
CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stYmFz
ZS1ocmVmLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stYmFzZS1ocmVmLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWdldC1mcm9tLWlmcmFt
ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9mdWxsLWJsb2NrLWdldC1mcm9tLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1pZnJhbWUtamF2YXNj
cmlwdC11cmwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1pZnJhbWUtamF2YXNjcmlwdC11cmwuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2st
aWZyYW1lLW5vLWluaGVyaXQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1pZnJhbWUtbm8taW5oZXJpdC5waHA6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJs
b2NrLWphdmFzY3JpcHQtbGluay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWphdmFzY3JpcHQtbGluay5odG1s
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1i
bG9jay1saW5rLW9uY2xpY2stZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1saW5rLW9uY2xpY2suaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2st
b2JqZWN0LXRhZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLW9iamVjdC10YWcuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stcG9zdC1mcm9t
LWlmcmFtZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXBvc3QtZnJvbS1pZnJhbWUuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stc2NyaXB0
LXRhZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9mdWxsLWJsb2NrLXNjcmlwdC10YWctd2l0aC1zb3VyY2UtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1i
bG9jay1zY3JpcHQtdGFnLXdpdGgtc291cmNlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXNjcmlwdC10YWcuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9l
Y2hvLWhlYWQtYmFzZS1ocmVmLnBsOiBNb2RpZmllZCB0byBvcHRpb25hbGx5CisgICAgICAgIGVu
YWJsZSBmdWxsIHBhZ2UgYmxvY2tpbmcuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94
c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLWNsaWNrLWFuZC1ub3RpZnkucGw6IERp
dHRvLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMv
ZWNoby1pbnRlcnRhZy5wbDogRGl0dG8uCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94
c3NBdWRpdG9yL3Jlc291cmNlcy91dGlsaXRpZXMuanM6IEFkZGVkIGhlbHBlciByb3V0aW5lcyBm
b3IKKyAgICAgICAgdXNlZCBieSB0aGUgZnVsbC1ibG9jay0qLmh0bWwgdGVzdHMuCisgICAgICAg
IChkb25lKToKKyAgICAgICAgKHdhaXRTb21lVGltZUJlZm9yZUNhbGxpbmdEb25lKToKKwogMjAx
MC0wMS0yNCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1iYXNlLWhyZWYtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9m
dWxsLWJsb2NrLWJhc2UtaHJlZi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1iYXNlLWhyZWYt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACitDT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTogUmVmdXNlZCB0byBsb2FkIGZyb20gZG9jdW1lbnQgYmFzZSBVUkwuIFVSTCBm
b3VuZCB3aXRoaW4gcmVxdWVzdC4KKworVGhlcmUgc2hvdWxkIGJlIG5vIGNvbnRlbnQgaW4gdGhl
IGlmcmFtZSBiZWxvdzoKKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88
IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stYmFzZS1ocmVmLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxv
Y2stYmFzZS1ocmVmLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1iYXNlLWhyZWYuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwyMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291
cmNlcy91dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwPlRoZXJlIHNob3VsZCBiZSBubyBjb250ZW50IGluIHRoZSBpZnJhbWUgYmVs
b3c6PC9wPgorPGlmcmFtZSBvbmxvYWQ9IndhaXRTb21lVGltZUJlZm9yZUNhbGxpbmdEb25lKCki
IHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2Vz
L2VjaG8taGVhZC1iYXNlLWhyZWYucGw/ZW5hYmxlLWZ1bGwtYmxvY2s9MSZxPTxiYXNlIGhyZWY9
J2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9iYXNl
LWhyZWYvJz4iPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CisKSW5kZXg6IExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWdldC1mcm9tLWlm
cmFtZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stZ2V0LWZyb20taWZyYW1lLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9mdWxsLWJsb2NrLWdldC1mcm9tLWlmcmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsOCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFJlZnVzZWQgdG8gZXhl
Y3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBTb3VyY2UgY29kZSBvZiBzY3JpcHQgZm91bmQgd2l0
aGluIHJlcXVlc3QuCisKKworCistLS0tLS0tLQorRnJhbWU6ICdmcmFtZScKKy0tLS0tLS0tCisK
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJs
b2NrLWdldC1mcm9tLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWdldC1mcm9tLWlmcmFtZS5odG1s
CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRp
dG9yL2Z1bGwtYmxvY2stZ2V0LWZyb20taWZyYW1lLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAg
KzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJo
dHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvdXRpbGl0
aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRY
U1NBdWRpdG9yRW5hYmxlZCh0cnVlKTsKK30KK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpCit7
CisgICAgc2VuZFJlcXVlc3RGcm9tSUZyYW1lKCJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJp
dHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy5wbCIsImVuYWJsZS1mdWxsLWJs
b2NrPTEmcT08c2NyaXB0PmFsZXJ0KC9YU1MvKTxcL3NjcmlwdD4iLCJHRVQiKTsKKyAgICB3YWl0
U29tZVRpbWVCZWZvcmVDYWxsaW5nRG9uZSgxMDApOworfTsKKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1pZnJhbWUtamF2YXNjcmlwdC11cmwtZXhwZWN0
ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9mdWxsLWJsb2NrLWlmcmFtZS1qYXZhc2NyaXB0LXVybC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
ZnVsbC1ibG9jay1pZnJhbWUtamF2YXNjcmlwdC11cmwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDE1IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBl
eGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3
aXRoaW4gcmVxdWVzdC4KKworVGhlcmUgc2hvdWxkIGJlIG5vIGNvbnRlbnQgaW4gdGhlIGlmcmFt
ZSBiZWxvdzoKKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJh
bWUwLS0+LS0+JworLS0tLS0tLS0KKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRo
IC8vPCEtLWZyYW1lMC0tPi88IS0tZnJhbWUwLS0+LS0+JworLS0tLS0tLS0KKwpJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2staWZyYW1l
LWphdmFzY3JpcHQtdXJsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2staWZyYW1lLWphdmFzY3JpcHQtdXJsLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1
ZGl0b3IvZnVsbC1ibG9jay1pZnJhbWUtamF2YXNjcmlwdC11cmwuaHRtbAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNl
cy91dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8
Ym9keT4KKzxwPlRoZXJlIHNob3VsZCBiZSBubyBjb250ZW50IGluIHRoZSBpZnJhbWUgYmVsb3c6
PC9wPgorPGlmcmFtZSBvbmxvYWQ9IndhaXRTb21lVGltZUJlZm9yZUNhbGxpbmdEb25lKCkiIHNy
Yz0naHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2Vj
aG8taW50ZXJ0YWcucGw/ZW5hYmxlLWZ1bGwtYmxvY2s9MSZxPSUzQ2lmcmFtZSUyMHNyYz1qYXZh
c2NyaXB0OmFsZXJ0KGRvY3VtZW50LmRvbWFpbiklM0UnPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
ZnVsbC1ibG9jay1pZnJhbWUtbm8taW5oZXJpdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2staWZy
YW1lLW5vLWluaGVyaXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2staWZyYW1lLW5vLWluaGVy
aXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNv
dXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdC4KKworVGhpcyB0ZXN0cyB0
aGF0IHRoZSBoZWFkZXIgWC1YU1MtUHJvdGVjdGlvbiBpcyBub3QgaW5oZXJpdGVkIGJ5IHRoZSBp
ZnJhbWUgYmVsb3c6CisKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEt
LWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCitJZiB5b3Ugc2VlIHRoaXMgbWVzc2FnZSBhbmQgbm8g
SmF2YVNjcmlwdCBhbGVydCgpIHRoZW4gdGhlIHRlc3QgUEFTU0VELgpJbmRleDogTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2staWZyYW1lLW5vLWlu
aGVyaXQucGhwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9mdWxsLWJsb2NrLWlmcmFtZS1uby1pbmhlcml0LnBocAkocmV2aXNpb24gMCkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2Nr
LWlmcmFtZS1uby1pbmhlcml0LnBocAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMiBAQAorPD9w
aHAKK2hlYWRlcigiWC1YU1MtUHJvdGVjdGlvbjogZnVsbC1ibG9jayIpOworPz4KKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJodHRwOi8vbG9jYWxob3N0Ojgw
MDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRYU1NBdWRpdG9yRW5hYmxlZCh0
cnVlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGlzIHRlc3RzIHRoYXQg
dGhlIGhlYWRlciBYLVhTUy1Qcm90ZWN0aW9uIGlzIG5vdCBpbmhlcml0ZWQgYnkgdGhlIGlmcmFt
ZSBiZWxvdzo8L3A+Cis8aWZyYW1lIG9ubG9hZD0id2FpdFNvbWVUaW1lQmVmb3JlQ2FsbGluZ0Rv
bmUoKSIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNv
dXJjZXMvZWNoby1pbnRlcnRhZy5wbD9xPTxzY3JpcHQ+YWxlcnQoL1hTUy8pPC9zY3JpcHQ+PHA+
SWYgeW91IHNlZSB0aGlzIG1lc3NhZ2UgYW5kIG5vIEphdmFTY3JpcHQgYWxlcnQoKSB0aGVuIHRo
ZSB0ZXN0IFBBU1NFRC48L3A+Ij4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stamF2
YXNjcmlwdC1saW5rLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1qYXZhc2NyaXB0LWxpbmstZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stamF2YXNjcmlwdC1saW5rLWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFJlZnVz
ZWQgdG8gZXhlY3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBTb3VyY2UgY29kZSBvZiBzY3JpcHQg
Zm91bmQgd2l0aGluIHJlcXVlc3QuCisKK1RoZXJlIHNob3VsZCBiZSBubyBjb250ZW50IGluIHRo
ZSBpZnJhbWUgYmVsb3c6CisKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8v
PCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWphdmFzY3JpcHQtbGluay5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9m
dWxsLWJsb2NrLWphdmFzY3JpcHQtbGluay5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stamF2YXNjcmlwdC1s
aW5rLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJp
dHkveHNzQXVkaXRvci9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZy
YW1lc0FzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRYU1NBdWRpdG9yRW5hYmxlZCh0cnVlKTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGVyZSBzaG91bGQgYmUgbm8gY29udGVu
dCBpbiB0aGUgaWZyYW1lIGJlbG93OjwvcD4KKzxpZnJhbWUgb25sb2FkPSJ3YWl0U29tZVRpbWVC
ZWZvcmVDYWxsaW5nRG9uZSgpIiBzcmM9J2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94
c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLWNsaWNrLWFuZC1ub3RpZnkucGw/ZW5h
YmxlLWZ1bGwtYmxvY2s9MSZlbG1pZD1hbmNob3JMaW5rJnE9JTNDYStpZCUzRGFuY2hvckxpbmsr
aHJlZiUzRGphdmFzY3JpcHQlM0FhbGVydCUyOC9YU1MvJTI5JTNFdGVzdCUzQy9hJTNFJz4KKzwv
aWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stbGluay1vbmNsaWNrLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
ZnVsbC1ibG9jay1saW5rLW9uY2xpY2stZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stbGluay1v
bmNsaWNrLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE6IFJlZnVzZWQgdG8gZXhlY3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0
LiBTb3VyY2UgY29kZSBvZiBzY3JpcHQgZm91bmQgd2l0aGluIHJlcXVlc3QuCisKK1RoZXJlIHNo
b3VsZCBiZSBubyBjb250ZW50IGluIHRoZSBpZnJhbWUgYmVsb3c6CisKKworCistLS0tLS0tLQor
RnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPicKKy0tLS0tLS0tCisKSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2Nr
LWxpbmstb25jbGljay5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWxpbmstb25jbGljay5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwt
YmxvY2stbGluay1vbmNsaWNrLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRYU1NBdWRpdG9yRW5h
YmxlZCh0cnVlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGVyZSBzaG91
bGQgYmUgbm8gY29udGVudCBpbiB0aGUgaWZyYW1lIGJlbG93OjwvcD4KKzxpZnJhbWUgb25sb2Fk
PSJ3YWl0U29tZVRpbWVCZWZvcmVDYWxsaW5nRG9uZSgpIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLnBsP2VuYWJs
ZS1mdWxsLWJsb2NrPTEmcT08YSUyMG9uY2xpY2s9J2FsZXJ0KC9YU1MvKSc+Q2xpY2s8L2E+Ij4K
KzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stb2JqZWN0LXRhZy1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L2Z1bGwtYmxvY2stb2JqZWN0LXRhZy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1vYmplY3Qt
dGFnLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorQ09OU09MRSBN
RVNTQUdFOiBsaW5lIDE6IFJlZnVzZWQgdG8gbG9hZCBhbiBvYmplY3QuIFVSTCBmb3VuZCB3aXRo
aW4gcmVxdWVzdDogImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jl
c291cmNlcy9kdW1teS5zd2YiLgorCitUaGVyZSBzaG91bGQgYmUgbm8gY29udGVudCBpbiB0aGUg
aWZyYW1lIGJlbG93OgorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnPCEtLWZyYW1lUGF0aCAvLzwh
LS1mcmFtZTAtLT4tLT4nCistLS0tLS0tLQorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1vYmplY3QtdGFnLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxv
Y2stb2JqZWN0LXRhZy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stb2JqZWN0LXRhZy5odG1sCShyZXZpc2lv
biAwKQpAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c2NyaXB0IHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVz
b3VyY2VzL3V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+VGhlcmUgc2hvdWxkIGJlIG5vIGNvbnRlbnQgaW4gdGhlIGlmcmFtZSBi
ZWxvdzo8L3A+Cis8aWZyYW1lIG9ubG9hZD0id2FpdFNvbWVUaW1lQmVmb3JlQ2FsbGluZ0RvbmUo
KSIgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJj
ZXMvZWNoby1pbnRlcnRhZy5wbD9lbmFibGUtZnVsbC1ibG9jaz0xJnE9PG9iamVjdCBuYW1lPSdw
bHVnaW4nIHR5cGU9J2FwcGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUnPjxwYXJhbSBu
YW1lPSdtb3ZpZScgdmFsdWU9J2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3NBdWRp
dG9yL3Jlc291cmNlcy9kdW1teS5zd2YnIC8+PC9vYmplY3Q+Ij4KKzwvaWZyYW1lPgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRp
dG9yL2Z1bGwtYmxvY2stcG9zdC1mcm9tLWlmcmFtZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2st
cG9zdC1mcm9tLWlmcmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1wb3N0LWZyb20taWZy
YW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4IEBACitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNv
dXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdC4KKworCisKKy0tLS0tLS0t
CitGcmFtZTogJ2ZyYW1lJworLS0tLS0tLS0KKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stcG9zdC1mcm9tLWlmcmFtZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9m
dWxsLWJsb2NrLXBvc3QtZnJvbS1pZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXBvc3QtZnJvbS1p
ZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyMSBAQAorPCFET0NUWVBFIGh0bWw+
Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1
cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy91dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlw
dD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxk
RnJhbWVzQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOwor
fQord2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBzZW5kUmVxdWVzdEZyb21JRnJh
bWUoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9l
Y2hvLWludGVydGFnLnBsIiwiZW5hYmxlLWZ1bGwtYmxvY2s9MSZxPTxzY3JpcHQ+YWxlcnQoL1hT
Uy8pPFwvc2NyaXB0PiIsIlBPU1QiKTsKKyAgICB3YWl0U29tZVRpbWVCZWZvcmVDYWxsaW5nRG9u
ZSgxMDApOworfTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1i
bG9jay1zY3JpcHQtdGFnLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1zY3JpcHQtdGFnLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9mdWxsLWJsb2NrLXNjcmlwdC10YWctZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDEwIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBl
eGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3
aXRoaW4gcmVxdWVzdC4KKworVGhlcmUgc2hvdWxkIGJlIG5vIGNvbnRlbnQgaW4gdGhlIGlmcmFt
ZSBiZWxvdzoKKworCisKKy0tLS0tLS0tCitGcmFtZTogJzwhLS1mcmFtZVBhdGggLy88IS0tZnJh
bWUwLS0+LS0+JworLS0tLS0tLS0KKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stc2NyaXB0LXRhZy13aXRoLXNvdXJjZS1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL2Z1bGwtYmxvY2stc2NyaXB0LXRhZy13aXRoLXNvdXJjZS1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
ZnVsbC1ibG9jay1zY3JpcHQtdGFnLXdpdGgtc291cmNlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxMCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFJlZnVzZWQgdG8g
ZXhlY3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBTb3VyY2UgY29kZSBvZiBzY3JpcHQgZm91bmQg
d2l0aGluIHJlcXVlc3QuCisKK1RoZXJlIHNob3VsZCBiZSBubyBjb250ZW50IGluIHRoZSBpZnJh
bWUgYmVsb3c6CisKKworCistLS0tLS0tLQorRnJhbWU6ICc8IS0tZnJhbWVQYXRoIC8vPCEtLWZy
YW1lMC0tPi0tPicKKy0tLS0tLS0tCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXNjcmlwdC10YWctd2l0aC1zb3VyY2UuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
ZnVsbC1ibG9jay1zY3JpcHQtdGFnLXdpdGgtc291cmNlLmh0bWwJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1zY3Jp
cHQtdGFnLXdpdGgtc291cmNlLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJodHRwOi8vbG9jYWxo
b3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRYU1NBdWRpdG9yRW5h
YmxlZCh0cnVlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGVyZSBzaG91
bGQgYmUgbm8gY29udGVudCBpbiB0aGUgaWZyYW1lIGJlbG93OjwvcD4KKzxpZnJhbWUgb25sb2Fk
PSJ3YWl0U29tZVRpbWVCZWZvcmVDYWxsaW5nRG9uZSgpIiBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLnBsP2VuYWJs
ZS1mdWxsLWJsb2NrPTEmcT08c2NyaXB0IHNyYz0naHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL3hzcy5qcyc+PC9zY3JpcHQ+Ij4KKzwvaWZyYW1lPgor
PC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94
c3NBdWRpdG9yL2Z1bGwtYmxvY2stc2NyaXB0LXRhZy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXNjcmlwdC10
YWcuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9mdWxsLWJsb2NrLXNjcmlwdC10YWcuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy91dGls
aXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNl
dFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KzxwPlRoZXJlIHNob3VsZCBiZSBubyBjb250ZW50IGluIHRoZSBpZnJhbWUgYmVsb3c6PC9wPgor
PGlmcmFtZSBvbmxvYWQ9IndhaXRTb21lVGltZUJlZm9yZUNhbGxpbmdEb25lKCkiIHNyYz0iaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50
ZXJ0YWcucGw/ZW5hYmxlLWZ1bGwtYmxvY2s9MSZxPTxzY3JpcHQ+YWxlcnQoL1hTUy8pPC9zY3Jp
cHQ+Ij4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWhlYWQtYmFzZS1ocmVm
LnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9yZXNvdXJjZXMvZWNoby1oZWFkLWJhc2UtaHJlZi5wbAkocmV2aXNpb24gNTM3NTEpCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2Vj
aG8taGVhZC1iYXNlLWhyZWYucGwJKHdvcmtpbmcgY29weSkKQEAgLTQsNiArNCw5IEBAIHVzZSBD
R0k7CiAKIG15ICRjZ2kgPSBuZXcgQ0dJOwogCitpZiAoJGNnaS0+cGFyYW0oJ2VuYWJsZS1mdWxs
LWJsb2NrJykpIHsKKyAgICBwcmludCAiWC1YU1MtUHJvdGVjdGlvbjogZnVsbC1ibG9ja1xuIjsK
K30KIHByaW50ICJDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1VVEYtOFxuXG4iOwog
CiBwcmludCAiPCFET0NUWVBFIGh0bWw+XG4iOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLWNsaWNrLWFuZC1u
b3RpZnkucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94
c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLWNsaWNrLWFuZC1ub3RpZnkucGwJKHJl
dmlzaW9uIDUzNzUxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRp
dG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLWNsaWNrLWFuZC1ub3RpZnkucGwJKHdvcmtpbmcg
Y29weSkKQEAgLTQsNiArNCw5IEBAIHVzZSBDR0k7CiAKIG15ICRjZ2kgPSBuZXcgQ0dJOwogCitp
ZiAoJGNnaS0+cGFyYW0oJ2VuYWJsZS1mdWxsLWJsb2NrJykpIHsKKyAgICBwcmludCAiWC1YU1Mt
UHJvdGVjdGlvbjogZnVsbC1ibG9ja1xuIjsKK30KIHByaW50ICJDb250ZW50LVR5cGU6IHRleHQv
aHRtbDsgY2hhcnNldD1VVEYtOFxuXG4iOwogCiBwcmludCAiPCFET0NUWVBFIGh0bWw+XG4iOwpA
QCAtMjAsOSArMjMsMTcgQEAgcHJpbnQgIjwvc2NyaXB0PlxuIjsKIHByaW50ICI8L2hlYWQ+XG4i
OwogcHJpbnQgIjxib2R5PlxuIjsKIHByaW50ICRjZ2ktPnBhcmFtKCdxJyk7Ci1wcmludCAiPHNj
cmlwdD5cbiI7Ci1wcmludCAiaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcilcbiI7Ci1w
cmludCAiICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTtcbiI7Ci1wcmludCAi
PC9zY3JpcHQ+XG4iOworaWYgKCRjZ2ktPnBhcmFtKCdlbmFibGUtZnVsbC1ibG9jaycpKSB7Cisg
ICAgIyBOb3RlLCB3aGVuIHRlc3RpbmcgYSBmdWxsLXBhZ2UtYmxvY2ssIHdlIGNhbid0IGNhbGwg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpCisgICAgIyBvbiB0aGUgZ2VuZXJhdGVk
IHBhZ2UgYmVjYXVzZSBpdCB0YWtlcyBzb21lIHRpbWUgZm9yIHRoZSBmcmFtZSB0byBiZSByZWRp
cmVjdGVkIHRvCisgICAgIyBhYm91dDpibGFuay4gSGVuY2UsIHRoZSBjYWxsZXIgb2YgdGhpcyBQ
ZXJsIHNjcmlwdCBtdXN0IGNhbGwgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpCisg
ICAgIyBhZnRlciB0aGUgcmVkaXJlY3QgaGFzIG9jY3VycmVkLgorICAgIHByaW50ICI8cD5JZiB5
b3Ugc2VlIHRoaXMgbWVzc2FnZSB0aGVuIHRoZSB0ZXN0IEZBSUxFRC48L3A+XG4iOworfSBlbHNl
IHsKKyAgICBwcmludCAiPHNjcmlwdD5cbiI7CisgICAgcHJpbnQgImlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpXG4iOworICAgIHByaW50ICIgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpO1xuIjsKKyAgICBwcmludCAiPC9zY3JpcHQ+XG4iOworfQogcHJpbnQgIjwv
Ym9keT5cbiI7CiBwcmludCAiPC9odG1sPlxuIjsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy5wbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3Vy
Y2VzL2VjaG8taW50ZXJ0YWcucGwJKHJldmlzaW9uIDUzNzUxKQorKysgTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLnBsCSh3
b3JraW5nIGNvcHkpCkBAIC00LDYgKzQsOSBAQCB1c2UgQ0dJOwogCiBteSAkY2dpID0gbmV3IENH
STsKIAoraWYgKCRjZ2ktPnBhcmFtKCdlbmFibGUtZnVsbC1ibG9jaycpKSB7CisgICAgcHJpbnQg
IlgtWFNTLVByb3RlY3Rpb246IGZ1bGwtYmxvY2tcbiI7Cit9CiBwcmludCAiQ29udGVudC1UeXBl
OiB0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLThcblxuIjsKIAogcHJpbnQgIjwhRE9DVFlQRSBodG1s
PlxuIjsKQEAgLTE2LDUgKzE5LDggQEAgaWYgKCRjZ2ktPnBhcmFtKCdub3RpZnlEb25lJykpIHsK
ICAgICBwcmludCAiICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTtcbiI7CiAg
ICAgcHJpbnQgIjwvc2NyaXB0PlxuIjsKIH0KK2lmICgkY2dpLT5wYXJhbSgnZW5hYmxlLWZ1bGwt
YmxvY2snKSkgeworICAgIHByaW50ICI8cD5JZiB5b3Ugc2VlIHRoaXMgbWVzc2FnZSB0aGVuIHRo
ZSB0ZXN0IEZBSUxFRC48L3A+XG4iOworfQogcHJpbnQgIjwvYm9keT5cbiI7CiBwcmludCAiPC9o
dG1sPlxuIjsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzCShyZXZpc2lv
biA1Mzc1MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9y
ZXNvdXJjZXMvdXRpbGl0aWVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKK2Z1
bmN0aW9uIGRvbmUoKQoreworICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24g
d2FpdFNvbWVUaW1lQmVmb3JlQ2FsbGluZ0RvbmUobWlsbGlzZWNvbmRzVG9XYWl0KQoreworICAg
IG1pbGxpc2Vjb25kc1RvV2FpdCA9IG1pbGxpc2Vjb25kc1RvV2FpdCB8fCA1MDsgLy8gRnJvbSBw
cmFjdGljZSwgNTAgbWlsbGlzZWNvbmRzIHdvcmtzLgorCisgICAgLy8gV2UgbWF5IG5lZWQgdG8g
d2FpdCBiZWZvcmUgY2FsbGluZyBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCkuCisg
ICAgLy8gRm9yIGluc3RhbmNlLCB3aGVuIGZ1bGwtYmxvY2tpbmcgaXMgZW5hYmxlZCwgd2UgbWF5
IGhhdmUgdG8gd2FpdCBhIGJpdCBmb3IKKyAgICAvLyB0aGUgcmVkaXJlY3QgdG8gYWJvdXQ6Ymxh
bmsgdG8gb2NjdXIuCisgICAgd2luZG93LnNldFRpbWVvdXQoZG9uZSwgbWlsbGlzZWNvbmRzVG9X
YWl0KTsKK30KKwogZnVuY3Rpb24gc2VuZFJlcXVlc3RGcm9tSUZyYW1lKHVybCwgcGFyYW1zLCBI
VFRQTWV0aG9kKQogewogICAgIGlmICghcGFyYW1zIHx8ICFwYXJhbXMubGVuZ3RoKQo=
</data>
<flag name="review"
          id="29730"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47497</attachid>
            <date>2010-01-26 22:45:18 -0800</date>
            <delta_ts>2010-01-31 15:31:00 -0800</delta_ts>
            <desc>Patch with test cases</desc>
            <filename>Bug27312_012610.patch</filename>
            <type>text/plain</type>
            <size>28548</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1MzkwMikKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMjkgQEAKKzIwMTAtMDEtMjYgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzMxMgorCisgICAgICAgIElt
cGxlbWVudHMgc3VwcG9ydCBmb3IgZnVsbCBwYWdlIGJsb2NraW5nIHZpYSB0aGUgWC1YU1MtUHJv
dGVjdGlvbiBoZWFkZXIuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9mdWxsLWJsb2NrLWJhc2UtaHJlZi5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1nZXQtZnJvbS1pZnJhbWUuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2st
aWZyYW1lLWphdmFzY3JpcHQtdXJsLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWlmcmFtZS1uby1pbmhlcml0LnBocAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stamF2YXNj
cmlwdC1saW5rLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9mdWxsLWJsb2NrLWxpbmstb25jbGljay5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1vYmplY3QtdGFnLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXBvc3Qt
ZnJvbS1pZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL2Z1bGwtYmxvY2stc2NyaXB0LXRhZy13aXRoLXNvdXJjZS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1zY3JpcHQtdGFn
Lmh0bWwKKworICAgICAgICAqIHBhZ2UvWFNTQXVkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpYU1NBdWRpdG9yOjpzaG91bGRGdWxsUGFnZUJsb2NrRm9yWFNTUHJvdGVjdGlvbkhlYWRlcik6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFNTQXVkaXRvcjo6ZmluZEluUmVxdWVzdCk6IE1v
ZGlmaWVkIHRvIGNhbGwgbWV0aG9kCisgICAgICAgIFhTU0F1ZGl0b3I6OnNob3VsZEZ1bGxQYWdl
QmxvY2tGb3JYU1NQcm90ZWN0aW9uSGVhZGVyLgorICAgICAgICAqIHBhZ2UvWFNTQXVkaXRvci5o
OiBEZWZpbmVkIG1ldGhvZCBzaG91bGRGdWxsUGFnZUJsb2NrRm9yWFNTUHJvdGVjdGlvbkhlYWRl
cgorICAgICAgICBhbmQgZml4ZWQgbWlzc3BlbGxlZCB3b3JkcyBpbiBsYXJnZSBjb21tZW50IGJs
b2NrLgorCiAyMDEwLTAxLTI2ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgog
CiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgpJbmRleDogV2ViQ29yZS9wYWdlL1hT
U0F1ZGl0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmNwcAko
cmV2aXNpb24gNTM4NDIpCisrKyBXZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTI4OSwxNCArMjg5LDM3IEBAIGJvb2wgWFNTQXVkaXRvcjo6aXNTYW1lT3JpZ2lu
UmVzb3VyY2UoY28KICAgICByZXR1cm4gKG1fZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLmhvc3Qo
KSA9PSByZXNvdXJjZVVSTC5ob3N0KCkgJiYgcmVzb3VyY2VVUkwucXVlcnkoKS5pc0VtcHR5KCkp
OwogfQogCitib29sIFhTU0F1ZGl0b3I6OnNob3VsZEZ1bGxQYWdlQmxvY2tGb3JYU1NQcm90ZWN0
aW9uSGVhZGVyKCkgY29uc3QKK3sKKyAgICAvLyBJZiB3ZSBkZXRlY3QgYW4gWFNTIGF0dGFjayBh
bmQgZmluZCB0aGUgSFRUUCBoZWFkZXIKKyAgICAvLyAiWC1YU1MtUHJvdGVjdGlvbjogZnVsbC1i
bG9jayIgdGhlbiB3ZSB3aWxsIHN0b3AgbG9hZGluZworICAgIC8vIHRoZSBwYWdlIGFzIG9wcG9z
ZWQgdG8gaWdub3JpbmcgdGhlIHNjcmlwdC4KKyAgICBERUZJTkVfU1RBVElDX0xPQ0FMKFN0cmlu
ZywgWFNTUHJvdGVjdGlvbkhlYWRlciwgKCJYLVhTUy1Qcm90ZWN0aW9uIikpOworICAgIERFRklO
RV9TVEFUSUNfTE9DQUwoU3RyaW5nLCBYU1NGdWxsQmxvY2ssICgiZnVsbC1ibG9jayIpKTsKKwor
ICAgIEZyYW1lKiBmcmFtZSA9IG1fZnJhbWU7CisgICAgaWYgKGZyYW1lLT5kb2N1bWVudCgpLT51
cmwoKSA9PSBibGFua1VSTCgpKQorICAgICAgICBmcmFtZSA9IG1fZnJhbWUtPnRyZWUoKS0+cGFy
ZW50KCk7CisKKyAgICBTdHJpbmcgeHNzUHJvdGVjdGlvblZhbHVlID0gZnJhbWUtPmxvYWRlcigp
LT5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZSgpLmh0dHBIZWFkZXJGaWVsZChYU1NQcm90ZWN0
aW9uSGVhZGVyKTsKKyAgICByZXR1cm4gKCF4c3NQcm90ZWN0aW9uVmFsdWUuaXNOdWxsKCkgJiYg
ZXF1YWxJZ25vcmluZ0Nhc2UoeHNzUHJvdGVjdGlvblZhbHVlLCBYU1NGdWxsQmxvY2spKTsKK30K
KwogYm9vbCBYU1NBdWRpdG9yOjpmaW5kSW5SZXF1ZXN0KGNvbnN0IEZpbmRUYXNrJiB0YXNrKSBj
b25zdAogewogICAgIGJvb2wgcmVzdWx0ID0gZmFsc2U7CiAgICAgRnJhbWUqIHBhcmVudEZyYW1l
ID0gbV9mcmFtZS0+dHJlZSgpLT5wYXJlbnQoKTsKKyAgICBGcmFtZSogYmxvY2tGcmFtZSA9IHBh
cmVudEZyYW1lOwogICAgIGlmIChwYXJlbnRGcmFtZSAmJiBtX2ZyYW1lLT5kb2N1bWVudCgpLT51
cmwoKSA9PSBibGFua1VSTCgpKQogICAgICAgICByZXN1bHQgPSBmaW5kSW5SZXF1ZXN0KHBhcmVu
dEZyYW1lLCB0YXNrKTsKLSAgICBpZiAoIXJlc3VsdCkKKyAgICBpZiAoIXJlc3VsdCkgewogICAg
ICAgICByZXN1bHQgPSBmaW5kSW5SZXF1ZXN0KG1fZnJhbWUsIHRhc2spOworICAgICAgICBibG9j
a0ZyYW1lID0gbV9mcmFtZTsKKyAgICB9CisgICAgaWYgKHJlc3VsdCAmJiBibG9ja0ZyYW1lICYm
IHNob3VsZEZ1bGxQYWdlQmxvY2tGb3JYU1NQcm90ZWN0aW9uSGVhZGVyKCkpIHsKKyAgICAgICAg
YmxvY2tGcmFtZS0+bG9hZGVyKCktPnN0b3BBbGxMb2FkZXJzKCk7CisgICAgICAgIGJsb2NrRnJh
bWUtPnJlZGlyZWN0U2NoZWR1bGVyKCktPnNjaGVkdWxlTG9jYXRpb25DaGFuZ2UoYmxhbmtVUkwo
KSwgU3RyaW5nKCkpOworICAgIH0KICAgICByZXR1cm4gcmVzdWx0OwogfQogCkluZGV4OiBXZWJD
b3JlL3BhZ2UvWFNTQXVkaXRvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvcGFnZS9YU1NBdWRp
dG9yLmgJKHJldmlzaW9uIDUzODQyKQorKysgV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuaAkod29y
a2luZyBjb3B5KQpAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgY2xh
c3MgU2NyaXB0U291cmNlQ29kZTsKIAogICAgIC8vIFRoZSBYU1NBdWRpdG9yIGNsYXNzIGlzIHVz
ZWQgdG8gcHJldmVudCB0eXBlIDEgY3Jvc3Mtc2l0ZSBzY3JpcHRpbmcKLSAgICAvLyB2dWxuZXJh
YmlsaXRlcyAoYWxzbyBrbm93biBhcyByZWZsZWN0ZWQgdnVsbmVyYWJpbGl0aWVzKS4KKyAgICAv
LyB2dWxuZXJhYmlsaXRpZXMgKGFsc28ga25vd24gYXMgcmVmbGVjdGVkIHZ1bG5lcmFiaWxpdGll
cykuCiAgICAgLy8KICAgICAvLyBNb3JlIHNwZWNpZmljYWxseSwgdGhlIFhTU0F1ZGl0b3IgY2xh
c3MgZGVjaWRlcyB3aGV0aGVyIHRoZSBleGVjdXRpb24gb2YKICAgICAvLyBhIHNjcmlwdCBpcyB0
byBiZSBhbGxvd2VkIG9yIGRlbmllZCBiYXNlZCBvbiB0aGUgY29udGVudCBvZiBhbnkKQEAgLTUz
LDcgKzUzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIC8vCiAgICAgLy8gQmluZGluZ3MK
ICAgICAvLwotICAgIC8vIEFuIFhTU0F1ZGl0b3IgaXMgaW5zdGFudGlhdGVkIHdpdGhpbiB0aGUg
Y29udHJ1Y3RvciBvZiBhCisgICAgLy8gQW4gWFNTQXVkaXRvciBpcyBpbnN0YW50aWF0ZWQgd2l0
aGluIHRoZSBjb25zdHJ1Y3RvciBvZiBhCiAgICAgLy8gU2NyaXB0Q29udHJvbGxlciBvYmplY3Qg
YW5kIHBhc3NlZCB0aGUgRnJhbWUgdGhlIHNjcmlwdCBvcmlnaW5hdGVkLiBUaGUKICAgICAvLyBT
Y3JpcHRDb250cm9sbGVyIGNhbGxzIGJhY2sgdG8gdGhlIFhTU0F1ZGl0b3IgdG8gZGV0ZXJtaW5l
IHdoZXRoZXIgYQogICAgIC8vIEphdmFTY3JpcHQgc2NyaXB0IGlzIHNhZmUgdG8gZXhlY3V0ZSBi
ZWZvcmUgZXhlY3V0aW5nIGl0LiBUaGUgZm9sbG93aW5nCkBAIC0xNDQsNiArMTQ0LDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICBib29sIGZpbmRJblJlcXVlc3QoY29uc3QgRmluZFRh
c2smKSBjb25zdDsKICAgICAgICAgYm9vbCBmaW5kSW5SZXF1ZXN0KEZyYW1lKiwgY29uc3QgRmlu
ZFRhc2smKSBjb25zdDsKIAorICAgICAgICBib29sIHNob3VsZEZ1bGxQYWdlQmxvY2tGb3JYU1NQ
cm90ZWN0aW9uSGVhZGVyKCkgY29uc3Q7CisKICAgICAgICAgLy8gVGhlIGZyYW1lIHRvIGF1ZGl0
LgogICAgICAgICBGcmFtZSogbV9mcmFtZTsKIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gNTM5MDIpCisr
KyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MCBAQAor
MjAxMC0wMS0yNiAgRGFuaWVsIEJhdGVzICA8ZGJhdGVzQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTI3MzEyCisKKyAgICAgICAgVGVzdHMgdGhhdCB0aGUgaGVh
ZGVyICJYLVhTUy1Qcm90ZWN0aW9uOiBmdWxsLWJsb2NrIiBsZWFkcyB0byBhIGZ1bGwgcGFnZSBi
bG9jaworICAgICAgICB3aGVuIGFuIFhTUyBhdHRhY2sgaXMgZGV0ZWN0ZWQuCisKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1iYXNlLWhyZWYtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvZnVsbC1ibG9jay1iYXNlLWhyZWYuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stZ2V0LWZyb20taWZyYW1lLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1
bGwtYmxvY2stZ2V0LWZyb20taWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWlmcmFtZS1qYXZhc2NyaXB0LXVybC1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9mdWxsLWJsb2NrLWlmcmFtZS1qYXZhc2NyaXB0LXVybC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1pZnJhbWUtbm8t
aW5oZXJpdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWlmcmFtZS1uby1pbmhlcml0LnBocDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stamF2YXNj
cmlwdC1saW5rLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stamF2YXNjcmlwdC1saW5rLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWxpbmst
b25jbGljay1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWxpbmstb25jbGljay5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1vYmplY3QtdGFn
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL2Z1bGwtYmxvY2stb2JqZWN0LXRhZy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1wb3N0LWZyb20taWZyYW1lLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRp
dG9yL2Z1bGwtYmxvY2stcG9zdC1mcm9tLWlmcmFtZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1zY3JpcHQtdGFnLWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L2Z1bGwtYmxvY2stc2NyaXB0LXRhZy13aXRoLXNvdXJjZS1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXNjcmlw
dC10YWctd2l0aC1zb3VyY2UuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stc2NyaXB0LXRhZy5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taGVhZC1i
YXNlLWhyZWYucGw6IE1vZGlmaWVkIHRvIG9wdGlvbmFsbHkKKyAgICAgICAgZW5hYmxlIGZ1bGwg
cGFnZSBibG9ja2luZy4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
cmVzb3VyY2VzL2VjaG8taW50ZXJ0YWctY2xpY2stYW5kLW5vdGlmeS5wbDogRGl0dG8uCisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVy
dGFnLnBsOiBEaXR0by4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
cmVzb3VyY2VzL3V0aWxpdGllcy5qczoKKyAgICAgICAgKGNoZWNrSWZGcmFtZUxvY2F0aW9uTWF0
Y2hlc1VSTEFuZENhbGxEb25lKTogQWRkZWQuCisgICAgICAgIChzZW5kUmVxdWVzdEZyb21JRnJh
bWUpOiBNb2RpZmllZCB0byBvcHRpb25hbGx5IGNhbGwgY2FsbGJhY2sgZnVuY3Rpb24gd2hlbiBk
b25lLgorCiAyMDEwLTAxLTI2ICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLiBVcGRhdGVkIGV4cGVjdGVkIGZhaWxpbmcgcmVzdWx0cyBmb3Ig
dGFibGUtcGVyY2VudC1oZWlnaHQuaHRtbApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stYmFzZS1ocmVmLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVs
bC1ibG9jay1iYXNlLWhyZWYtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stYmFzZS1ocmVmLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAorQ09OU09MRSBNRVNTQUdF
OiBsaW5lIDE6IFJlZnVzZWQgdG8gbG9hZCBmcm9tIGRvY3VtZW50IGJhc2UgVVJMLiBVUkwgZm91
bmQgd2l0aGluIHJlcXVlc3QuCisKK1RoZXJlIHNob3VsZCBiZSBubyBjb250ZW50IGluIHRoZSBp
ZnJhbWUgYmVsb3c6CisKKworCistLS0tLS0tLQorRnJhbWU6ICdmcmFtZScKKy0tLS0tLS0tCisK
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJs
b2NrLWJhc2UtaHJlZi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWJhc2UtaHJlZi5odG1sCShyZXZpc2lvbiAw
KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxv
Y2stYmFzZS1ocmVmLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMjAgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJodHRwOi8vbG9jYWxob3N0Ojgw
MDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRYU1NBdWRpdG9yRW5hYmxlZCh0
cnVlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGVyZSBzaG91bGQgYmUg
bm8gY29udGVudCBpbiB0aGUgaWZyYW1lIGJlbG93OjwvcD4KKzxpZnJhbWUgaWQ9ImZyYW1lIiBv
bmxvYWQ9ImNoZWNrSWZGcmFtZUxvY2F0aW9uTWF0Y2hlc1VSTEFuZENhbGxEb25lKCdmcmFtZScs
ICdhYm91dDpibGFuaycpIiBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3NB
dWRpdG9yL3Jlc291cmNlcy9lY2hvLWhlYWQtYmFzZS1ocmVmLnBsP2VuYWJsZS1mdWxsLWJsb2Nr
PTEmcT08YmFzZSBocmVmPSdodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRv
ci9yZXNvdXJjZXMvYmFzZS1ocmVmLyc+Ij4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgor
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1i
bG9jay1nZXQtZnJvbS1pZnJhbWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWdldC1mcm9tLWlm
cmFtZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1nZXQtZnJvbS1pZnJhbWUtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDggQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAx
OiBSZWZ1c2VkIHRvIGV4ZWN1dGUgYSBKYXZhU2NyaXB0IHNjcmlwdC4gU291cmNlIGNvZGUgb2Yg
c2NyaXB0IGZvdW5kIHdpdGhpbiByZXF1ZXN0LgorCisKKworLS0tLS0tLS0KK0ZyYW1lOiAnZnJh
bWUnCistLS0tLS0tLQorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvZnVsbC1ibG9jay1nZXQtZnJvbS1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1nZXQt
ZnJvbS1pZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWdldC1mcm9tLWlmcmFtZS5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
cmVzb3VyY2VzL3V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7Cit9CitmdW5jdGlvbiBkb25l
KCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9Cit3aW5kb3cub25sb2FkID0gZnVuY3Rp
b24oKQoreworICAgIHNlbmRSZXF1ZXN0RnJvbUlGcmFtZSgiaHR0cDovL2xvY2FsaG9zdDo4MDAw
L3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWcucGwiLCJlbmFibGUt
ZnVsbC1ibG9jaz0xJnE9PHNjcmlwdD5hbGVydCgvWFNTLyk8XC9zY3JpcHQ+IiwiR0VUIiwgZG9u
ZSk7Cit9OworPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzwvYm9keT4KKzwvaHRtbD4KSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2Nr
LWlmcmFtZS1qYXZhc2NyaXB0LXVybC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2staWZyYW1lLWph
dmFzY3JpcHQtdXJsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWlmcmFtZS1qYXZhc2NyaXB0
LXVybC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAxOiBSZWZ1c2VkIHRvIGV4ZWN1dGUgYSBKYXZhU2NyaXB0IHNjcmlwdC4g
U291cmNlIGNvZGUgb2Ygc2NyaXB0IGZvdW5kIHdpdGhpbiByZXF1ZXN0LgorCitUaGVyZSBzaG91
bGQgYmUgbm8gY29udGVudCBpbiB0aGUgaWZyYW1lIGJlbG93OgorCisKKworLS0tLS0tLS0KK0Zy
YW1lOiAnZnJhbWUnCistLS0tLS0tLQorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1pZnJhbWUtamF2YXNjcmlwdC11cmwuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
ZnVsbC1ibG9jay1pZnJhbWUtamF2YXNjcmlwdC11cmwuaHRtbAkocmV2aXNpb24gMCkKKysrIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWlmcmFt
ZS1qYXZhc2NyaXB0LXVybC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL3V0aWxpdGllcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJs
ZWQodHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhlcmUgc2hvdWxk
IGJlIG5vIGNvbnRlbnQgaW4gdGhlIGlmcmFtZSBiZWxvdzo8L3A+Cis8aWZyYW1lIGlkPSJmcmFt
ZSIgb25sb2FkPSJjaGVja0lmRnJhbWVMb2NhdGlvbk1hdGNoZXNVUkxBbmRDYWxsRG9uZSgnZnJh
bWUnLCAnYWJvdXQ6YmxhbmsnKSIgc3JjPSdodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkv
eHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy5wbD9lbmFibGUtZnVsbC1ibG9jaz0x
JnE9JTNDaWZyYW1lJTIwc3JjPWphdmFzY3JpcHQ6YWxlcnQoZG9jdW1lbnQuZG9tYWluKSUzRSc+
Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWlmcmFtZS1uby1pbmhlcml0LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvZnVsbC1ibG9jay1pZnJhbWUtbm8taW5oZXJpdC1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVs
bC1ibG9jay1pZnJhbWUtbm8taW5oZXJpdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTAgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBSZWZ1c2VkIHRvIGV4ZWN1dGUg
YSBKYXZhU2NyaXB0IHNjcmlwdC4gU291cmNlIGNvZGUgb2Ygc2NyaXB0IGZvdW5kIHdpdGhpbiBy
ZXF1ZXN0LgorCitUaGlzIHRlc3RzIHRoYXQgdGhlIGhlYWRlciBYLVhTUy1Qcm90ZWN0aW9uIGlz
IG5vdCBpbmhlcml0ZWQgYnkgdGhlIGlmcmFtZSBiZWxvdzoKKworCisKKy0tLS0tLS0tCitGcmFt
ZTogJ2ZyYW1lJworLS0tLS0tLS0KK0lmIHlvdSBzZWUgdGhpcyBtZXNzYWdlIGFuZCBubyBKYXZh
U2NyaXB0IGFsZXJ0KCkgdGhlbiB0aGUgdGVzdCBQQVNTRUQuCkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1pZnJhbWUtbm8taW5oZXJp
dC5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL2Z1bGwtYmxvY2staWZyYW1lLW5vLWluaGVyaXQucGhwCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2staWZy
YW1lLW5vLWluaGVyaXQucGhwCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI3IEBACis8P3BocAor
aGVhZGVyKCJYLVhTUy1Qcm90ZWN0aW9uOiBmdWxsLWJsb2NrIik7Cis/PgorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9z
ZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy91dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNj
cmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENo
aWxkRnJhbWVzQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUp
OworfQorZnVuY3Rpb24gY2hlY2tJZkRvbmUoKQoreworICAgIC8vIEZJWE1FOiBDYW4gd2UgZG8g
bm90IHdpdGhvdXQgdXNpbmcgZW5jb3JlVVJJPworICAgIGNoZWNrSWZGcmFtZUxvY2F0aW9uTWF0
Y2hlc1VSTEFuZENhbGxEb25lKCdmcmFtZScsIGVuY29kZVVSSShkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZnJhbWUnKS5zcmMpKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5U
aGlzIHRlc3RzIHRoYXQgdGhlIGhlYWRlciBYLVhTUy1Qcm90ZWN0aW9uIGlzIG5vdCBpbmhlcml0
ZWQgYnkgdGhlIGlmcmFtZSBiZWxvdzo8L3A+Cis8aWZyYW1lIGlkPSJmcmFtZSIgb25sb2FkPSJj
aGVja0lmRG9uZSgpIiBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3NBdWRp
dG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLnBsP3E9PHNjcmlwdD5hbGVydCgvWFNTLyk8L3Nj
cmlwdD48cD5JZiB5b3Ugc2VlIHRoaXMgbWVzc2FnZSBhbmQgbm8gSmF2YVNjcmlwdCBhbGVydCgp
IHRoZW4gdGhlIHRlc3QgUEFTU0VELjwvcD4iPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1i
bG9jay1qYXZhc2NyaXB0LWxpbmstZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWphdmFzY3JpcHQt
bGluay1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1qYXZhc2NyaXB0LWxpbmstZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTogUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9m
IHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdC4KKworVGhlcmUgc2hvdWxkIGJlIG5vIGNvbnRl
bnQgaW4gdGhlIGlmcmFtZSBiZWxvdzoKKworCisKKy0tLS0tLS0tCitGcmFtZTogJ2ZyYW1lJwor
LS0tLS0tLS0KKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRp
dG9yL2Z1bGwtYmxvY2stamF2YXNjcmlwdC1saW5rLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stamF2YXNjcmlw
dC1saW5rLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1qYXZhc2NyaXB0LWxpbmsuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291
cmNlcy91dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwPlRoZXJlIHNob3VsZCBiZSBubyBjb250ZW50IGluIHRoZSBpZnJhbWUgYmVs
b3c6PC9wPgorPGlmcmFtZSBpZD0iZnJhbWUiIG9ubG9hZD0iY2hlY2tJZkZyYW1lTG9jYXRpb25N
YXRjaGVzVVJMQW5kQ2FsbERvbmUoJ2ZyYW1lJywgJ2Fib3V0OmJsYW5rJykiIHNyYz0naHR0cDov
LzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0
YWctY2xpY2stYW5kLW5vdGlmeS5wbD9lbmFibGUtZnVsbC1ibG9jaz0xJmVsbWlkPWFuY2hvckxp
bmsmcT0lM0NhK2lkJTNEYW5jaG9yTGluaytocmVmJTNEamF2YXNjcmlwdCUzQWFsZXJ0JTI4L1hT
Uy8lMjklM0V0ZXN0JTNDL2ElM0UnPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1s
aW5rLW9uY2xpY2stZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWxpbmstb25jbGljay1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvZnVsbC1ibG9jay1saW5rLW9uY2xpY2stZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDEwIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBl
eGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3
aXRoaW4gcmVxdWVzdC4KKworVGhlcmUgc2hvdWxkIGJlIG5vIGNvbnRlbnQgaW4gdGhlIGlmcmFt
ZSBiZWxvdzoKKworCisKKy0tLS0tLS0tCitGcmFtZTogJ2ZyYW1lJworLS0tLS0tLS0KKwpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2st
bGluay1vbmNsaWNrLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stbGluay1vbmNsaWNrLmh0bWwJKHJldmlzaW9u
IDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1i
bG9jay1saW5rLW9uY2xpY2suaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Imh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy91dGlsaXRpZXMuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFi
bGVkKHRydWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoZXJlIHNob3Vs
ZCBiZSBubyBjb250ZW50IGluIHRoZSBpZnJhbWUgYmVsb3c6PC9wPgorPGlmcmFtZSBpZD0iZnJh
bWUiIG9ubG9hZD0iY2hlY2tJZkZyYW1lTG9jYXRpb25NYXRjaGVzVVJMQW5kQ2FsbERvbmUoJ2Zy
YW1lJywgJ2Fib3V0OmJsYW5rJykiIHNyYz0iaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5
L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWcucGw/ZW5hYmxlLWZ1bGwtYmxvY2s9
MSZxPTxhJTIwb25jbGljaz0nYWxlcnQoL1hTUy8pJz5DbGljazwvYT4iPgorPC9pZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvZnVsbC1ibG9jay1vYmplY3QtdGFnLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1v
YmplY3QtdGFnLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLW9iamVjdC10YWctZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTogUmVmdXNlZCB0byBsb2FkIGFuIG9iamVjdC4gVVJMIGZvdW5kIHdpdGhpbiByZXF1ZXN0OiAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2R1bW15
LnN3ZiIuCisKK1RoZXJlIHNob3VsZCBiZSBubyBjb250ZW50IGluIHRoZSBpZnJhbWUgYmVsb3c6
CisKKworCistLS0tLS0tLQorRnJhbWU6ICdmcmFtZScKKy0tLS0tLS0tCisKSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLW9iamVjdC10
YWcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvZnVsbC1ibG9jay1vYmplY3QtdGFnLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1vYmplY3Qt
dGFnLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJp
dHkveHNzQXVkaXRvci9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZy
YW1lc0FzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRYU1NBdWRpdG9yRW5hYmxlZCh0cnVlKTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGVyZSBzaG91bGQgYmUgbm8gY29udGVu
dCBpbiB0aGUgaWZyYW1lIGJlbG93OjwvcD4KKzxpZnJhbWUgaWQ9ImZyYW1lIiBvbmxvYWQ9ImNo
ZWNrSWZGcmFtZUxvY2F0aW9uTWF0Y2hlc1VSTEFuZENhbGxEb25lKCdmcmFtZScsICdhYm91dDpi
bGFuaycpIiBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jl
c291cmNlcy9lY2hvLWludGVydGFnLnBsP2VuYWJsZS1mdWxsLWJsb2NrPTEmcT08b2JqZWN0IG5h
bWU9J3BsdWdpbicgdHlwZT0nYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2FwZSc+PHBh
cmFtIG5hbWU9J21vdmllJyB2YWx1ZT0naHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvcmVzb3VyY2VzL2R1bW15LnN3ZicgLz48L29iamVjdD4iPgorPC9pZnJhbWU+Cis8
L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvZnVsbC1ibG9jay1wb3N0LWZyb20taWZyYW1lLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1i
bG9jay1wb3N0LWZyb20taWZyYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXBvc3QtZnJv
bS1pZnJhbWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDggQEAKK0NPTlNP
TEUgTUVTU0FHRTogbGluZSAxOiBSZWZ1c2VkIHRvIGV4ZWN1dGUgYSBKYXZhU2NyaXB0IHNjcmlw
dC4gU291cmNlIGNvZGUgb2Ygc2NyaXB0IGZvdW5kIHdpdGhpbiByZXF1ZXN0LgorCisKKworLS0t
LS0tLS0KK0ZyYW1lOiAnZnJhbWUnCistLS0tLS0tLQorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1wb3N0LWZyb20taWZyYW1lLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRp
dG9yL2Z1bGwtYmxvY2stcG9zdC1mcm9tLWlmcmFtZS5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stcG9zdC1m
cm9tLWlmcmFtZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAw
L3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL3V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8
c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
Q2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1
ZSk7Cit9CitmdW5jdGlvbiBkb25lKCkKK3sKKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cit9Cit3
aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKQoreworICAgIHNlbmRSZXF1ZXN0RnJvbUlGcmFtZSgi
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8t
aW50ZXJ0YWcucGwiLCJlbmFibGUtZnVsbC1ibG9jaz0xJnE9PHNjcmlwdD5hbGVydCgvWFNTLyk8
XC9zY3JpcHQ+IiwiUE9TVCIsIGRvbmUpOworfTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1zY3JpcHQtdGFnLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9j
ay1zY3JpcHQtdGFnLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXNjcmlwdC10YWctZXhwZWN0
ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACitDT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTogUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2Rl
IG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdC4KKworVGhlcmUgc2hvdWxkIGJlIG5vIGNv
bnRlbnQgaW4gdGhlIGlmcmFtZSBiZWxvdzoKKworCisKKy0tLS0tLS0tCitGcmFtZTogJ2ZyYW1l
JworLS0tLS0tLS0KKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL2Z1bGwtYmxvY2stc2NyaXB0LXRhZy13aXRoLXNvdXJjZS1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1
bGwtYmxvY2stc2NyaXB0LXRhZy13aXRoLXNvdXJjZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9j
ay1zY3JpcHQtdGFnLXdpdGgtc291cmNlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSwxMCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFJlZnVzZWQgdG8gZXhlY3V0ZSBh
IEphdmFTY3JpcHQgc2NyaXB0LiBTb3VyY2UgY29kZSBvZiBzY3JpcHQgZm91bmQgd2l0aGluIHJl
cXVlc3QuCisKK1RoZXJlIHNob3VsZCBiZSBubyBjb250ZW50IGluIHRoZSBpZnJhbWUgYmVsb3c6
CisKKworCistLS0tLS0tLQorRnJhbWU6ICdmcmFtZScKKy0tLS0tLS0tCisKSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXNjcmlwdC10
YWctd2l0aC1zb3VyY2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1zY3JpcHQtdGFnLXdpdGgtc291cmNlLmh0
bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1
ZGl0b3IvZnVsbC1ibG9jay1zY3JpcHQtdGFnLXdpdGgtc291cmNlLmh0bWwJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3Jp
cHQgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJj
ZXMvdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRYU1NBdWRpdG9yRW5hYmxlZCh0cnVlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5UaGVyZSBzaG91bGQgYmUgbm8gY29udGVudCBpbiB0aGUgaWZyYW1lIGJlbG93
OjwvcD4KKzxpZnJhbWUgaWQ9ImZyYW1lIiBvbmxvYWQ9ImNoZWNrSWZGcmFtZUxvY2F0aW9uTWF0
Y2hlc1VSTEFuZENhbGxEb25lKCdmcmFtZScsICdhYm91dDpibGFuaycpIiBzcmM9Imh0dHA6Ly8x
MjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFn
LnBsP2VuYWJsZS1mdWxsLWJsb2NrPTEmcT08c2NyaXB0IHNyYz0naHR0cDovL2xvY2FsaG9zdDo4
MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL3hzcy5qcyc+PC9zY3JpcHQ+Ij4KKzwv
aWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stc2NyaXB0LXRhZy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2Nr
LXNjcmlwdC10YWcuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXNjcmlwdC10YWcuaHRtbAkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291
cmNlcy91dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxwPlRoZXJlIHNob3VsZCBiZSBubyBjb250ZW50IGluIHRoZSBpZnJhbWUgYmVs
b3c6PC9wPgorPGlmcmFtZSBpZD0iZnJhbWUiIG9ubG9hZD0iY2hlY2tJZkZyYW1lTG9jYXRpb25N
YXRjaGVzVVJMQW5kQ2FsbERvbmUoJ2ZyYW1lJywgJ2Fib3V0OmJsYW5rJykiIHNyYz0iaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0
YWcucGw/ZW5hYmxlLWZ1bGwtYmxvY2s9MSZxPTxzY3JpcHQ+YWxlcnQoL1hTUy8pPC9zY3JpcHQ+
Ij4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWhlYWQtYmFzZS1ocmVmLnBs
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9yZXNvdXJjZXMvZWNoby1oZWFkLWJhc2UtaHJlZi5wbAkocmV2aXNpb24gNTM4NDIpCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8t
aGVhZC1iYXNlLWhyZWYucGwJKHdvcmtpbmcgY29weSkKQEAgLTQsNiArNCw5IEBAIHVzZSBDR0k7
CiAKIG15ICRjZ2kgPSBuZXcgQ0dJOwogCitpZiAoJGNnaS0+cGFyYW0oJ2VuYWJsZS1mdWxsLWJs
b2NrJykpIHsKKyAgICBwcmludCAiWC1YU1MtUHJvdGVjdGlvbjogZnVsbC1ibG9ja1xuIjsKK30K
IHByaW50ICJDb250ZW50LVR5cGU6IHRleHQvaHRtbDsgY2hhcnNldD1VVEYtOFxuXG4iOwogCiBw
cmludCAiPCFET0NUWVBFIGh0bWw+XG4iOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLWNsaWNrLWFuZC1ub3Rp
ZnkucGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLWNsaWNrLWFuZC1ub3RpZnkucGwJKHJldmlz
aW9uIDUzODQyKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L3Jlc291cmNlcy9lY2hvLWludGVydGFnLWNsaWNrLWFuZC1ub3RpZnkucGwJKHdvcmtpbmcgY29w
eSkKQEAgLTQsNiArNCw5IEBAIHVzZSBDR0k7CiAKIG15ICRjZ2kgPSBuZXcgQ0dJOwogCitpZiAo
JGNnaS0+cGFyYW0oJ2VuYWJsZS1mdWxsLWJsb2NrJykpIHsKKyAgICBwcmludCAiWC1YU1MtUHJv
dGVjdGlvbjogZnVsbC1ibG9ja1xuIjsKK30KIHByaW50ICJDb250ZW50LVR5cGU6IHRleHQvaHRt
bDsgY2hhcnNldD1VVEYtOFxuXG4iOwogCiBwcmludCAiPCFET0NUWVBFIGh0bWw+XG4iOwpAQCAt
MjAsOSArMjMsMTcgQEAgcHJpbnQgIjwvc2NyaXB0PlxuIjsKIHByaW50ICI8L2hlYWQ+XG4iOwog
cHJpbnQgIjxib2R5PlxuIjsKIHByaW50ICRjZ2ktPnBhcmFtKCdxJyk7Ci1wcmludCAiPHNjcmlw
dD5cbiI7Ci1wcmludCAiaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcilcbiI7Ci1wcmlu
dCAiICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTtcbiI7Ci1wcmludCAiPC9z
Y3JpcHQ+XG4iOworaWYgKCRjZ2ktPnBhcmFtKCdlbmFibGUtZnVsbC1ibG9jaycpKSB7CisgICAg
IyBOb3RlLCB3aGVuIHRlc3RpbmcgYSBmdWxsLXBhZ2UtYmxvY2ssIHdlIGNhbid0IGNhbGwgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpCisgICAgIyBvbiB0aGUgZ2VuZXJhdGVkIHBh
Z2UgYmVjYXVzZSBpdCB0YWtlcyBzb21lIHRpbWUgZm9yIHRoZSBmcmFtZSB0byBiZSByZWRpcmVj
dGVkIHRvCisgICAgIyBhYm91dDpibGFuay4gSGVuY2UsIHRoZSBjYWxsZXIgb2YgdGhpcyBQZXJs
IHNjcmlwdCBtdXN0IGNhbGwgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpCisgICAg
IyBhZnRlciB0aGUgcmVkaXJlY3QgaGFzIG9jY3VycmVkLgorICAgIHByaW50ICI8cD5JZiB5b3Ug
c2VlIHRoaXMgbWVzc2FnZSB0aGVuIHRoZSB0ZXN0IEZBSUxFRC48L3A+XG4iOworfSBlbHNlIHsK
KyAgICBwcmludCAiPHNjcmlwdD5cbiI7CisgICAgcHJpbnQgImlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpXG4iOworICAgIHByaW50ICIgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpO1xuIjsKKyAgICBwcmludCAiPC9zY3JpcHQ+XG4iOworfQogcHJpbnQgIjwvYm9k
eT5cbiI7CiBwcmludCAiPC9odG1sPlxuIjsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy5wbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2Vz
L2VjaG8taW50ZXJ0YWcucGwJKHJldmlzaW9uIDUzODQyKQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLnBsCSh3b3Jr
aW5nIGNvcHkpCkBAIC00LDYgKzQsOSBAQCB1c2UgQ0dJOwogCiBteSAkY2dpID0gbmV3IENHSTsK
IAoraWYgKCRjZ2ktPnBhcmFtKCdlbmFibGUtZnVsbC1ibG9jaycpKSB7CisgICAgcHJpbnQgIlgt
WFNTLVByb3RlY3Rpb246IGZ1bGwtYmxvY2tcbiI7Cit9CiBwcmludCAiQ29udGVudC1UeXBlOiB0
ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLThcblxuIjsKIAogcHJpbnQgIjwhRE9DVFlQRSBodG1sPlxu
IjsKQEAgLTE2LDUgKzE5LDggQEAgaWYgKCRjZ2ktPnBhcmFtKCdub3RpZnlEb25lJykpIHsKICAg
ICBwcmludCAiICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTtcbiI7CiAgICAg
cHJpbnQgIjwvc2NyaXB0PlxuIjsKIH0KK2lmICgkY2dpLT5wYXJhbSgnZW5hYmxlLWZ1bGwtYmxv
Y2snKSkgeworICAgIHByaW50ICI8cD5JZiB5b3Ugc2VlIHRoaXMgbWVzc2FnZSB0aGVuIHRoZSB0
ZXN0IEZBSUxFRC48L3A+XG4iOworfQogcHJpbnQgIjwvYm9keT5cbiI7CiBwcmludCAiPC9odG1s
PlxuIjsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9y
ZXNvdXJjZXMvdXRpbGl0aWVzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzCShyZXZpc2lvbiA1
Mzg0MikKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNv
dXJjZXMvdXRpbGl0aWVzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsMTIgQEAKLWZ1bmN0
aW9uIHNlbmRSZXF1ZXN0RnJvbUlGcmFtZSh1cmwsIHBhcmFtcywgSFRUUE1ldGhvZCkKK2Z1bmN0
aW9uIGNoZWNrSWZGcmFtZUxvY2F0aW9uTWF0Y2hlc1VSTEFuZENhbGxEb25lKGZyYW1lSWQsIGV4
cGVjdGVkVVJMKQoreworICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgICByZXR1cm47CisgICAgaWYgKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGZyYW1lSWQpLmNv
bnRlbnRXaW5kb3cubG9jYXRpb24gPT0gZXhwZWN0ZWRVUkwpCisgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKK30KKworZnVuY3Rpb24gc2VuZFJlcXVlc3RGcm9tSUZy
YW1lKHVybCwgcGFyYW1zLCBIVFRQTWV0aG9kLCBjYWxsYmFja1doZW5Eb25lKQogewogICAgIGlm
ICghcGFyYW1zIHx8ICFwYXJhbXMubGVuZ3RoKQogICAgICAgICByZXR1cm47CkBAIC0yMyw1ICsz
MSw3IEBAIGZ1bmN0aW9uIHNlbmRSZXF1ZXN0RnJvbUlGcmFtZSh1cmwsIHBhcmEKICAgICB9CiAg
ICAgZnJhbWVDb250ZW50LndyaXRlKCc8L2Zvcm0+Jyk7CiAgICAgZnJhbWVDb250ZW50LmNsb3Nl
KCk7CisgICAgaWYgKGNhbGxiYWNrV2hlbkRvbmUpCisgICAgICAgIGlGcmFtZU9iai5vbmxvYWQg
PSBjYWxsYmFja1doZW5Eb25lOwogICAgIGZyYW1lQ29udGVudC5nZXRFbGVtZW50QnlJZCgnZm9y
bScpLnN1Ym1pdCgpOwotfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK30K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47803</attachid>
            <date>2010-01-31 15:31:00 -0800</date>
            <delta_ts>2010-01-31 17:46:52 -0800</delta_ts>
            <desc>Patch with test cases</desc>
            <filename>Bug27312_013110.patch</filename>
            <type>text/plain</type>
            <size>30890</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYkNvcmUvQ2hhbmdlTG9n
CShyZXZpc2lvbiA1NDEwMykKKysrIFdlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDMgKzEsMzAgQEAKKzIwMTAtMDEtMzEgIERhbmllbCBCYXRlcyAgPGRiYXRlc0B3ZWJraXQu
b3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzMxMgorCisgICAgICAgIElt
cGxlbWVudHMgc3VwcG9ydCBmb3IgZnVsbCBwYWdlIGJsb2NraW5nIHZpYSB0aGUgWC1YU1MtUHJv
dGVjdGlvbiBoZWFkZXIuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9mdWxsLWJsb2NrLWJhc2UtaHJlZi5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1nZXQtZnJvbS1pZnJhbWUuaHRtbAor
ICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2st
aWZyYW1lLWphdmFzY3JpcHQtdXJsLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWlmcmFtZS1uby1pbmhlcml0LnBocAorICAgICAg
ICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stamF2YXNj
cmlwdC1saW5rLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9mdWxsLWJsb2NrLWxpbmstb25jbGljay5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1vYmplY3QtdGFnLmh0bWwKKyAgICAg
ICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXBvc3Qt
ZnJvbS1pZnJhbWUuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL2Z1bGwtYmxvY2stc2NyaXB0LXRhZy13aXRoLXNvdXJjZS5odG1sCisgICAgICAgICAg
ICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1zY3JpcHQtdGFn
Lmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9tYWxm
b3JtZWQteHNzLXByb3RlY3Rpb24taGVhZGVyLmh0bWwKKworICAgICAgICAqIHBhZ2UvWFNTQXVk
aXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpYU1NBdWRpdG9yOjpzaG91bGRGdWxsUGFnZUJs
b2NrRm9yWFNTUHJvdGVjdGlvbkhlYWRlcik6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6WFNT
QXVkaXRvcjo6ZmluZEluUmVxdWVzdCk6IE1vZGlmaWVkIHRvIGNhbGwgbWV0aG9kCisgICAgICAg
IFhTU0F1ZGl0b3I6OnNob3VsZEZ1bGxQYWdlQmxvY2tGb3JYU1NQcm90ZWN0aW9uSGVhZGVyLgor
ICAgICAgICAqIHBhZ2UvWFNTQXVkaXRvci5oOiBEZWZpbmVkIG1ldGhvZCBzaG91bGRGdWxsUGFn
ZUJsb2NrRm9yWFNTUHJvdGVjdGlvbkhlYWRlcgorICAgICAgICBhbmQgZml4ZWQgbWlzc3BlbGxl
ZCB3b3JkcyBpbiBsYXJnZSBjb21tZW50IGJsb2NrLgorCiAyMDEwLTAxLTI5ICBNYXJrIFJvd2Ug
IDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgU3RvcCBjb3B5aW5nIGFuIElETCBmaWxlIGlu
IHRvIHRoZSBmcmFtZXdvcmsgd3JhcHBlci4KSW5kZXg6IFdlYkNvcmUvcGFnZS9YU1NBdWRpdG9y
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvWFNTQXVkaXRvci5jcHAJKHJldmlzaW9u
IDU0MTAzKQorKysgV2ViQ29yZS9wYWdlL1hTU0F1ZGl0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yOTAsMTQgKzI5MCwzOCBAQCBib29sIFhTU0F1ZGl0b3I6OmlzU2FtZU9yaWdpblJlc291cmNl
KGNvCiAgICAgcmV0dXJuIChtX2ZyYW1lLT5kb2N1bWVudCgpLT51cmwoKS5ob3N0KCkgPT0gcmVz
b3VyY2VVUkwuaG9zdCgpICYmIHJlc291cmNlVVJMLnF1ZXJ5KCkuaXNFbXB0eSgpKTsKIH0KIAor
Ym9vbCBYU1NBdWRpdG9yOjpzaG91bGRGdWxsUGFnZUJsb2NrRm9yWFNTUHJvdGVjdGlvbkhlYWRl
cigpIGNvbnN0Cit7CisgICAgLy8gSWYgd2UgZGV0ZWN0IGFuIFhTUyBhdHRhY2sgYW5kIGZpbmQg
dGhlIEhUVFAgaGVhZGVyICJYLVhTUy1Qcm90ZWN0aW9uOiAxMiIgdGhlbgorICAgIC8vIHdlIHdp
bGwgc3RvcCBsb2FkaW5nIHRoZSBwYWdlIGFzIG9wcG9zZWQgdG8gaWdub3JpbmcgdGhlIHNjcmlw
dC4gVGhlIHZhbHVlICIxMiIKKyAgICAvLyBjYW1lIGZyb20gYSBwZXJzb25hbCBjb21tdW5pY2F0
aW9uLCBzZWUgPGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yNzMxMj4K
KyAgICAvLyBmb3IgbW9yZSBkZXRhaWxzLgorICAgIERFRklORV9TVEFUSUNfTE9DQUwoU3RyaW5n
LCBYU1NQcm90ZWN0aW9uSGVhZGVyLCAoIlgtWFNTLVByb3RlY3Rpb24iKSk7CisKKyAgICBGcmFt
ZSogZnJhbWUgPSBtX2ZyYW1lOworICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKS0+dXJsKCkgPT0g
YmxhbmtVUkwoKSkKKyAgICAgICAgZnJhbWUgPSBtX2ZyYW1lLT50cmVlKCktPnBhcmVudCgpOwor
CisgICAgLy8gV2Ugc3RyaXAgYW55IHdoaXRlc3BhY2UgY2hhcmFjdGVycyB0byBjb25mb3JtIHRv
IHRoZSBiZWhhdmlvciBpbiBJbnRlcm5ldCBFeHBsb3Jlci4KKyAgICBTdHJpbmcgeHNzUHJvdGVj
dGlvblZhbHVlID0gZnJhbWUtPmxvYWRlcigpLT5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZSgp
Lmh0dHBIZWFkZXJGaWVsZChYU1NQcm90ZWN0aW9uSGVhZGVyKS5zdHJpcFdoaXRlU3BhY2UoKTsK
KyAgICByZXR1cm4gKHhzc1Byb3RlY3Rpb25WYWx1ZS5sZW5ndGgoKSA+PSAyICYmIHhzc1Byb3Rl
Y3Rpb25WYWx1ZVswXSA9PSAnMScgJiYgeHNzUHJvdGVjdGlvblZhbHVlWzFdID09ICcyJyk7Cit9
CisKIGJvb2wgWFNTQXVkaXRvcjo6ZmluZEluUmVxdWVzdChjb25zdCBGaW5kVGFzayYgdGFzaykg
Y29uc3QKIHsKICAgICBib29sIHJlc3VsdCA9IGZhbHNlOwogICAgIEZyYW1lKiBwYXJlbnRGcmFt
ZSA9IG1fZnJhbWUtPnRyZWUoKS0+cGFyZW50KCk7CisgICAgRnJhbWUqIGJsb2NrRnJhbWUgPSBw
YXJlbnRGcmFtZTsKICAgICBpZiAocGFyZW50RnJhbWUgJiYgbV9mcmFtZS0+ZG9jdW1lbnQoKS0+
dXJsKCkgPT0gYmxhbmtVUkwoKSkKICAgICAgICAgcmVzdWx0ID0gZmluZEluUmVxdWVzdChwYXJl
bnRGcmFtZSwgdGFzayk7Ci0gICAgaWYgKCFyZXN1bHQpCisgICAgaWYgKCFyZXN1bHQpIHsKICAg
ICAgICAgcmVzdWx0ID0gZmluZEluUmVxdWVzdChtX2ZyYW1lLCB0YXNrKTsKKyAgICAgICAgYmxv
Y2tGcmFtZSA9IG1fZnJhbWU7CisgICAgfQorICAgIGlmIChyZXN1bHQgJiYgYmxvY2tGcmFtZSAm
JiBzaG91bGRGdWxsUGFnZUJsb2NrRm9yWFNTUHJvdGVjdGlvbkhlYWRlcigpKSB7CisgICAgICAg
IGJsb2NrRnJhbWUtPmxvYWRlcigpLT5zdG9wQWxsTG9hZGVycygpOworICAgICAgICBibG9ja0Zy
YW1lLT5yZWRpcmVjdFNjaGVkdWxlcigpLT5zY2hlZHVsZUxvY2F0aW9uQ2hhbmdlKGJsYW5rVVJM
KCksIFN0cmluZygpKTsKKyAgICB9CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApJbmRleDogV2Vi
Q29yZS9wYWdlL1hTU0F1ZGl0b3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJDb3JlL3BhZ2UvWFNTQXVk
aXRvci5oCShyZXZpc2lvbiA1NDEwMykKKysrIFdlYkNvcmUvcGFnZS9YU1NBdWRpdG9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIGNs
YXNzIFNjcmlwdFNvdXJjZUNvZGU7CiAKICAgICAvLyBUaGUgWFNTQXVkaXRvciBjbGFzcyBpcyB1
c2VkIHRvIHByZXZlbnQgdHlwZSAxIGNyb3NzLXNpdGUgc2NyaXB0aW5nCi0gICAgLy8gdnVsbmVy
YWJpbGl0ZXMgKGFsc28ga25vd24gYXMgcmVmbGVjdGVkIHZ1bG5lcmFiaWxpdGllcykuCisgICAg
Ly8gdnVsbmVyYWJpbGl0aWVzIChhbHNvIGtub3duIGFzIHJlZmxlY3RlZCB2dWxuZXJhYmlsaXRp
ZXMpLgogICAgIC8vCiAgICAgLy8gTW9yZSBzcGVjaWZpY2FsbHksIHRoZSBYU1NBdWRpdG9yIGNs
YXNzIGRlY2lkZXMgd2hldGhlciB0aGUgZXhlY3V0aW9uIG9mCiAgICAgLy8gYSBzY3JpcHQgaXMg
dG8gYmUgYWxsb3dlZCBvciBkZW5pZWQgYmFzZWQgb24gdGhlIGNvbnRlbnQgb2YgYW55CkBAIC01
Myw3ICs1Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAvLwogICAgIC8vIEJpbmRpbmdz
CiAgICAgLy8KLSAgICAvLyBBbiBYU1NBdWRpdG9yIGlzIGluc3RhbnRpYXRlZCB3aXRoaW4gdGhl
IGNvbnRydWN0b3Igb2YgYQorICAgIC8vIEFuIFhTU0F1ZGl0b3IgaXMgaW5zdGFudGlhdGVkIHdp
dGhpbiB0aGUgY29uc3RydWN0b3Igb2YgYQogICAgIC8vIFNjcmlwdENvbnRyb2xsZXIgb2JqZWN0
IGFuZCBwYXNzZWQgdGhlIEZyYW1lIHRoZSBzY3JpcHQgb3JpZ2luYXRlZC4gVGhlCiAgICAgLy8g
U2NyaXB0Q29udHJvbGxlciBjYWxscyBiYWNrIHRvIHRoZSBYU1NBdWRpdG9yIHRvIGRldGVybWlu
ZSB3aGV0aGVyIGEKICAgICAvLyBKYXZhU2NyaXB0IHNjcmlwdCBpcyBzYWZlIHRvIGV4ZWN1dGUg
YmVmb3JlIGV4ZWN1dGluZyBpdC4gVGhlIGZvbGxvd2luZwpAQCAtMTQ0LDYgKzE0NCw4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBmaW5kSW5SZXF1ZXN0KGNvbnN0IEZpbmRU
YXNrJikgY29uc3Q7CiAgICAgICAgIGJvb2wgZmluZEluUmVxdWVzdChGcmFtZSosIGNvbnN0IEZp
bmRUYXNrJikgY29uc3Q7CiAKKyAgICAgICAgYm9vbCBzaG91bGRGdWxsUGFnZUJsb2NrRm9yWFNT
UHJvdGVjdGlvbkhlYWRlcigpIGNvbnN0OworCiAgICAgICAgIC8vIFRoZSBmcmFtZSB0byBhdWRp
dC4KICAgICAgICAgRnJhbWUqIG1fZnJhbWU7CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDU0MTAzKQor
KysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xICsxLDQwIEBACisy
MDEwLTAxLTMxICBEYW5pZWwgQmF0ZXMgIDxkYmF0ZXNAd2Via2l0Lm9yZz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjczMTIKKworICAgICAgICBUZXN0cyB0aGF0IHRoZSBoZWFk
ZXIgIlgtWFNTLVByb3RlY3Rpb246IGZ1bGwtYmxvY2siIGxlYWRzIHRvIGEgZnVsbCBwYWdlIGJs
b2NrCisgICAgICAgIHdoZW4gYW4gWFNTIGF0dGFjayBpcyBkZXRlY3RlZC4KKworICAgICAgICAq
IGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWJhc2UtaHJlZi1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRv
ci9mdWxsLWJsb2NrLWJhc2UtaHJlZi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1nZXQtZnJvbS1pZnJhbWUtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVs
bC1ibG9jay1nZXQtZnJvbS1pZnJhbWUuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0
cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2staWZyYW1lLWphdmFzY3JpcHQtdXJsLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRp
dG9yL2Z1bGwtYmxvY2staWZyYW1lLWphdmFzY3JpcHQtdXJsLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWlmcmFtZS1uby1p
bmhlcml0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2staWZyYW1lLW5vLWluaGVyaXQucGhwOiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1qYXZhc2Ny
aXB0LWxpbmstZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1qYXZhc2NyaXB0LWxpbmsuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stbGluay1v
bmNsaWNrLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stbGluay1vbmNsaWNrLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLW9iamVjdC10YWct
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1
ZGl0b3IvZnVsbC1ibG9jay1vYmplY3QtdGFnLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXBvc3QtZnJvbS1pZnJhbWUtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0
b3IvZnVsbC1ibG9jay1wb3N0LWZyb20taWZyYW1lLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXNjcmlwdC10YWctZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
ZnVsbC1ibG9jay1zY3JpcHQtdGFnLXdpdGgtc291cmNlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stc2NyaXB0
LXRhZy13aXRoLXNvdXJjZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1zY3JpcHQtdGFnLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9tYWxmb3JtZWQteHNzLXByb3RlY3Rp
b24taGVhZGVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS94c3NBdWRpdG9yL21hbGZvcm1lZC14c3MtcHJvdGVjdGlvbi1oZWFkZXIuaHRtbDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9l
Y2hvLWhlYWQtYmFzZS1ocmVmLnBsOiBNb2RpZmllZCB0byBvcHRpb25hbGx5CisgICAgICAgIGVu
YWJsZSBmdWxsIHBhZ2UgYmxvY2tpbmcuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94
c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLWNsaWNrLWFuZC1ub3RpZnkucGw6IERp
dHRvLgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMv
ZWNoby1pbnRlcnRhZy5wbDogRGl0dG8uCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS94
c3NBdWRpdG9yL3Jlc291cmNlcy91dGlsaXRpZXMuanM6CisgICAgICAgIChjaGVja0lmRnJhbWVM
b2NhdGlvbk1hdGNoZXNVUkxBbmRDYWxsRG9uZSk6IEFkZGVkLgorICAgICAgICAoc2VuZFJlcXVl
c3RGcm9tSUZyYW1lKTogTW9kaWZpZWQgdG8gb3B0aW9uYWxseSBjYWxsIGNhbGxiYWNrIGZ1bmN0
aW9uIHdoZW4gZG9uZS4KKwogPT0gUm9sbGVkIG92ZXIgdG8gQ2hhbmdlTG9nLTIwMTAtMDEtMjkg
PT0KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxs
LWJsb2NrLWJhc2UtaHJlZi1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stYmFzZS1ocmVmLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
eHNzQXVkaXRvci9mdWxsLWJsb2NrLWJhc2UtaHJlZi1leHBlY3RlZC50eHQJKHJldmlzaW9uIDAp
CkBAIC0wLDAgKzEsMTAgQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBSZWZ1c2VkIHRvIGxv
YWQgZnJvbSBkb2N1bWVudCBiYXNlIFVSTC4gVVJMIGZvdW5kIHdpdGhpbiByZXF1ZXN0LgorCitU
aGVyZSBzaG91bGQgYmUgbm8gY29udGVudCBpbiB0aGUgaWZyYW1lIGJlbG93OgorCisKKworLS0t
LS0tLS0KK0ZyYW1lOiAnZnJhbWUnCistLS0tLS0tLQorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1iYXNlLWhyZWYuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVs
bC1ibG9jay1iYXNlLWhyZWYuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWJhc2UtaHJlZi5odG1sCShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDIwIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
cmVzb3VyY2VzL3V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorPHA+VGhlcmUgc2hvdWxkIGJlIG5vIGNvbnRlbnQgaW4gdGhlIGlmcmFt
ZSBiZWxvdzo8L3A+Cis8aWZyYW1lIGlkPSJmcmFtZSIgb25sb2FkPSJjaGVja0lmRnJhbWVMb2Nh
dGlvbk1hdGNoZXNVUkxBbmRDYWxsRG9uZSgnZnJhbWUnLCAnYWJvdXQ6YmxhbmsnKSIgc3JjPSJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1o
ZWFkLWJhc2UtaHJlZi5wbD9lbmFibGUtZnVsbC1ibG9jaz0xJnE9PGJhc2UgaHJlZj0naHR0cDov
L2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2Jhc2UtaHJlZi8n
PiI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwvaHRtbD4KKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stZ2V0LWZyb20taWZyYW1lLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5
L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1nZXQtZnJvbS1pZnJhbWUtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1
bGwtYmxvY2stZ2V0LWZyb20taWZyYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAs
MCArMSw4IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBleGVjdXRlIGEg
SmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVx
dWVzdC4KKworCisKKy0tLS0tLS0tCitGcmFtZTogJ2ZyYW1lJworLS0tLS0tLS0KKwpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stZ2V0
LWZyb20taWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stZ2V0LWZyb20taWZyYW1lLmh0bWwJKHJldmlz
aW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVs
bC1ibG9jay1nZXQtZnJvbS1pZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwyNSBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Imh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy91dGlsaXRpZXMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFhTU0F1ZGl0
b3JFbmFibGVkKHRydWUpOworfQorZnVuY3Rpb24gZG9uZSgpCit7CisgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworfQord2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBzZW5kUmVxdWVz
dEZyb21JRnJhbWUoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jl
c291cmNlcy9lY2hvLWludGVydGFnLnBsIiwiZW5hYmxlLWZ1bGwtYmxvY2s9MSZxPTxzY3JpcHQ+
YWxlcnQoL1hTUy8pPFwvc2NyaXB0PiIsIkdFVCIsIGRvbmUpOworfTsKKzwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1pZnJhbWUtamF2YXNjcmlwdC11cmwt
ZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJp
dHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWlmcmFtZS1qYXZhc2NyaXB0LXVybC1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1
ZGl0b3IvZnVsbC1ibG9jay1pZnJhbWUtamF2YXNjcmlwdC11cmwtZXhwZWN0ZWQudHh0CShyZXZp
c2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTogUmVmdXNl
ZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNjcmlwdCBm
b3VuZCB3aXRoaW4gcmVxdWVzdC4KKworVGhlcmUgc2hvdWxkIGJlIG5vIGNvbnRlbnQgaW4gdGhl
IGlmcmFtZSBiZWxvdzoKKworCisKKy0tLS0tLS0tCitGcmFtZTogJ2ZyYW1lJworLS0tLS0tLS0K
KwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwt
YmxvY2staWZyYW1lLWphdmFzY3JpcHQtdXJsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2staWZyYW1lLWphdmFz
Y3JpcHQtdXJsLmh0bWwJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1pZnJhbWUtamF2YXNjcmlwdC11cmwuaHRtbAko
cmV2aXNpb24gMCkKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRp
dG9yL3Jlc291cmNlcy91dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0
KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQorPC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRoZXJlIHNob3VsZCBiZSBubyBjb250ZW50IGluIHRoZSBp
ZnJhbWUgYmVsb3c6PC9wPgorPGlmcmFtZSBpZD0iZnJhbWUiIG9ubG9hZD0iY2hlY2tJZkZyYW1l
TG9jYXRpb25NYXRjaGVzVVJMQW5kQ2FsbERvbmUoJ2ZyYW1lJywgJ2Fib3V0OmJsYW5rJykiIHNy
Yz0naHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2Vj
aG8taW50ZXJ0YWcucGw/ZW5hYmxlLWZ1bGwtYmxvY2s9MSZxPSUzQ2lmcmFtZSUyMHNyYz1qYXZh
c2NyaXB0OmFsZXJ0KGRvY3VtZW50LmRvbWFpbiklM0UnPgorPC9pZnJhbWU+Cis8L2JvZHk+Cis8
L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
ZnVsbC1ibG9jay1pZnJhbWUtbm8taW5oZXJpdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2staWZy
YW1lLW5vLWluaGVyaXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2staWZyYW1lLW5vLWluaGVy
aXQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEwIEBACitDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTogUmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNv
dXJjZSBjb2RlIG9mIHNjcmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdC4KKworVGhpcyB0ZXN0cyB0
aGF0IHRoZSBoZWFkZXIgWC1YU1MtUHJvdGVjdGlvbiBpcyBub3QgaW5oZXJpdGVkIGJ5IHRoZSBp
ZnJhbWUgYmVsb3c6CisKKworCistLS0tLS0tLQorRnJhbWU6ICdmcmFtZScKKy0tLS0tLS0tCitJ
ZiB5b3Ugc2VlIHRoaXMgbWVzc2FnZSBhbmQgbm8gSmF2YVNjcmlwdCBhbGVydCgpIHRoZW4gdGhl
IHRlc3QgUEFTU0VELgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL2Z1bGwtYmxvY2staWZyYW1lLW5vLWluaGVyaXQucGhwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWlmcmFt
ZS1uby1pbmhlcml0LnBocAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWlmcmFtZS1uby1pbmhlcml0LnBocAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwyNiBAQAorPD9waHAKK2hlYWRlcigiWC1YU1MtUHJvdGVjdGlv
bjogZnVsbC1ibG9jayIpOworPz4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNv
dXJjZXMvdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRYU1NBdWRpdG9yRW5hYmxlZCh0cnVlKTsKK30KK2Z1bmN0aW9uIGNoZWNrSWZE
b25lKCkKK3sKKyAgICBjaGVja0lmRnJhbWVMb2NhdGlvbk1hdGNoZXNVUkxBbmRDYWxsRG9uZSgn
ZnJhbWUnLCBlbmNvZGVVUkkoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyYW1lJykuc3JjKSk7
Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhpcyB0ZXN0cyB0aGF0IHRoZSBo
ZWFkZXIgWC1YU1MtUHJvdGVjdGlvbiBpcyBub3QgaW5oZXJpdGVkIGJ5IHRoZSBpZnJhbWUgYmVs
b3c6PC9wPgorPGlmcmFtZSBpZD0iZnJhbWUiIG9ubG9hZD0iY2hlY2tJZkRvbmUoKSIgc3JjPSJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1p
bnRlcnRhZy5wbD9xPTxzY3JpcHQ+YWxlcnQoL1hTUy8pPC9zY3JpcHQ+PHA+SWYgeW91IHNlZSB0
aGlzIG1lc3NhZ2UgYW5kIG5vIEphdmFTY3JpcHQgYWxlcnQoKSB0aGVuIHRoZSB0ZXN0IFBBU1NF
RC48L3A+Ij4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stamF2YXNjcmlwdC1saW5r
LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1qYXZhc2NyaXB0LWxpbmstZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L2Z1bGwtYmxvY2stamF2YXNjcmlwdC1saW5rLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxMCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFJlZnVzZWQgdG8gZXhlY3V0
ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBTb3VyY2UgY29kZSBvZiBzY3JpcHQgZm91bmQgd2l0aGlu
IHJlcXVlc3QuCisKK1RoZXJlIHNob3VsZCBiZSBubyBjb250ZW50IGluIHRoZSBpZnJhbWUgYmVs
b3c6CisKKworCistLS0tLS0tLQorRnJhbWU6ICdmcmFtZScKKy0tLS0tLS0tCisKSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWphdmFz
Y3JpcHQtbGluay5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWphdmFzY3JpcHQtbGluay5odG1sCShyZXZpc2lv
biAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwt
YmxvY2stamF2YXNjcmlwdC1saW5rLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJodHRwOi8vbG9j
YWxob3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRYU1NBdWRpdG9y
RW5hYmxlZCh0cnVlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGVyZSBz
aG91bGQgYmUgbm8gY29udGVudCBpbiB0aGUgaWZyYW1lIGJlbG93OjwvcD4KKzxpZnJhbWUgaWQ9
ImZyYW1lIiBvbmxvYWQ9ImNoZWNrSWZGcmFtZUxvY2F0aW9uTWF0Y2hlc1VSTEFuZENhbGxEb25l
KCdmcmFtZScsICdhYm91dDpibGFuaycpIiBzcmM9J2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1
cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLWNsaWNrLWFuZC1ub3RpZnku
cGw/ZW5hYmxlLWZ1bGwtYmxvY2s9MSZlbG1pZD1hbmNob3JMaW5rJnE9JTNDYStpZCUzRGFuY2hv
ckxpbmsraHJlZiUzRGphdmFzY3JpcHQlM0FhbGVydCUyOC9YU1MvJTI5JTNFdGVzdCUzQy9hJTNF
Jz4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stbGluay1vbmNsaWNrLWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1
ZGl0b3IvZnVsbC1ibG9jay1saW5rLW9uY2xpY2stZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2st
bGluay1vbmNsaWNrLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMCBAQAor
Q09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFJlZnVzZWQgdG8gZXhlY3V0ZSBhIEphdmFTY3JpcHQg
c2NyaXB0LiBTb3VyY2UgY29kZSBvZiBzY3JpcHQgZm91bmQgd2l0aGluIHJlcXVlc3QuCisKK1Ro
ZXJlIHNob3VsZCBiZSBubyBjb250ZW50IGluIHRoZSBpZnJhbWUgYmVsb3c6CisKKworCistLS0t
LS0tLQorRnJhbWU6ICdmcmFtZScKKy0tLS0tLS0tCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLWxpbmstb25jbGljay5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9m
dWxsLWJsb2NrLWxpbmstb25jbGljay5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stbGluay1vbmNsaWNrLmh0
bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvc2VjdXJpdHkveHNz
QXVkaXRvci9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0Fz
VGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5zZXRYU1NBdWRpdG9yRW5hYmxlZCh0cnVlKTsKK30KKzwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGVyZSBzaG91bGQgYmUgbm8gY29udGVudCBpbiB0
aGUgaWZyYW1lIGJlbG93OjwvcD4KKzxpZnJhbWUgaWQ9ImZyYW1lIiBvbmxvYWQ9ImNoZWNrSWZG
cmFtZUxvY2F0aW9uTWF0Y2hlc1VSTEFuZENhbGxEb25lKCdmcmFtZScsICdhYm91dDpibGFuaycp
IiBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNl
cy9lY2hvLWludGVydGFnLnBsP2VuYWJsZS1mdWxsLWJsb2NrPTEmcT08YSUyMG9uY2xpY2s9J2Fs
ZXJ0KC9YU1MvKSc+Q2xpY2s8L2E+Ij4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2st
b2JqZWN0LXRhZy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stb2JqZWN0LXRhZy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1
ZGl0b3IvZnVsbC1ibG9jay1vYmplY3QtdGFnLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkKQEAg
LTAsMCArMSwxMCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFJlZnVzZWQgdG8gbG9hZCBh
biBvYmplY3QuIFVSTCBmb3VuZCB3aXRoaW4gcmVxdWVzdDogImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9kdW1teS5zd2YiLgorCitUaGVyZSBzaG91
bGQgYmUgbm8gY29udGVudCBpbiB0aGUgaWZyYW1lIGJlbG93OgorCisKKworLS0tLS0tLS0KK0Zy
YW1lOiAnZnJhbWUnCistLS0tLS0tLQorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1vYmplY3QtdGFnLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2st
b2JqZWN0LXRhZy5odG1sCShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stb2JqZWN0LXRhZy5odG1sCShyZXZpc2lvbiAw
KQpAQCAtMCwwICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0IHNyYz0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3Vy
Y2VzL3V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4K
Kzxib2R5PgorPHA+VGhlcmUgc2hvdWxkIGJlIG5vIGNvbnRlbnQgaW4gdGhlIGlmcmFtZSBiZWxv
dzo8L3A+Cis8aWZyYW1lIGlkPSJmcmFtZSIgb25sb2FkPSJjaGVja0lmRnJhbWVMb2NhdGlvbk1h
dGNoZXNVUkxBbmRDYWxsRG9uZSgnZnJhbWUnLCAnYWJvdXQ6YmxhbmsnKSIgc3JjPSJodHRwOi8v
MTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRh
Zy5wbD9lbmFibGUtZnVsbC1ibG9jaz0xJnE9PG9iamVjdCBuYW1lPSdwbHVnaW4nIHR5cGU9J2Fw
cGxpY2F0aW9uL3gtd2Via2l0LXRlc3QtbmV0c2NhcGUnPjxwYXJhbSBuYW1lPSdtb3ZpZScgdmFs
dWU9J2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9k
dW1teS5zd2YnIC8+PC9vYmplY3Q+Ij4KKzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2st
cG9zdC1mcm9tLWlmcmFtZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stcG9zdC1mcm9tLWlmcmFt
ZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1wb3N0LWZyb20taWZyYW1lLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw4IEBACitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMTog
UmVmdXNlZCB0byBleGVjdXRlIGEgSmF2YVNjcmlwdCBzY3JpcHQuIFNvdXJjZSBjb2RlIG9mIHNj
cmlwdCBmb3VuZCB3aXRoaW4gcmVxdWVzdC4KKworCisKKy0tLS0tLS0tCitGcmFtZTogJ2ZyYW1l
JworLS0tLS0tLS0KKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NB
dWRpdG9yL2Z1bGwtYmxvY2stcG9zdC1mcm9tLWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXBvc3Qt
ZnJvbS1pZnJhbWUuaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXBvc3QtZnJvbS1pZnJhbWUuaHRtbAkocmV2
aXNpb24gMCkKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRpdG9y
L3Jlc291cmNlcy91dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7
CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGxheW91dFRl
c3RDb250cm9sbGVyLnNldFhTU0F1ZGl0b3JFbmFibGVkKHRydWUpOworfQorZnVuY3Rpb24gZG9u
ZSgpCit7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQord2luZG93Lm9ubG9hZCA9IGZ1bmN0
aW9uKCkKK3sKKyAgICBzZW5kUmVxdWVzdEZyb21JRnJhbWUoImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLnBsIiwiZW5hYmxl
LWZ1bGwtYmxvY2s9MSZxPTxzY3JpcHQ+YWxlcnQoL1hTUy8pPFwvc2NyaXB0PiIsIlBPU1QiLCBk
b25lKTsKK307Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxv
Y2stc2NyaXB0LXRhZy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stc2NyaXB0LXRhZy1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hz
c0F1ZGl0b3IvZnVsbC1ibG9jay1zY3JpcHQtdGFnLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMCkK
QEAgLTAsMCArMSwxMCBAQAorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFJlZnVzZWQgdG8gZXhl
Y3V0ZSBhIEphdmFTY3JpcHQgc2NyaXB0LiBTb3VyY2UgY29kZSBvZiBzY3JpcHQgZm91bmQgd2l0
aGluIHJlcXVlc3QuCisKK1RoZXJlIHNob3VsZCBiZSBubyBjb250ZW50IGluIHRoZSBpZnJhbWUg
YmVsb3c6CisKKworCistLS0tLS0tLQorRnJhbWU6ICdmcmFtZScKKy0tLS0tLS0tCisKSW5kZXg6
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXNj
cmlwdC10YWctd2l0aC1zb3VyY2UtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9mdWxsLWJsb2NrLXNjcmlwdC10YWct
d2l0aC1zb3VyY2UtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stc2NyaXB0LXRhZy13aXRoLXNv
dXJjZS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAgQEAKK0NPTlNPTEUg
TUVTU0FHRTogbGluZSAxOiBSZWZ1c2VkIHRvIGV4ZWN1dGUgYSBKYXZhU2NyaXB0IHNjcmlwdC4g
U291cmNlIGNvZGUgb2Ygc2NyaXB0IGZvdW5kIHdpdGhpbiByZXF1ZXN0LgorCitUaGVyZSBzaG91
bGQgYmUgbm8gY29udGVudCBpbiB0aGUgaWZyYW1lIGJlbG93OgorCisKKworLS0tLS0tLS0KK0Zy
YW1lOiAnZnJhbWUnCistLS0tLS0tLQorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1zY3JpcHQtdGFnLXdpdGgtc291cmNlLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L2Z1bGwtYmxvY2stc2NyaXB0LXRhZy13aXRoLXNvdXJjZS5odG1sCShyZXZpc2lvbiAwKQorKysg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL2Z1bGwtYmxvY2stc2Ny
aXB0LXRhZy13aXRoLXNvdXJjZS5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDE5IEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL3V0aWxpdGllcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0WFNTQXVkaXRvckVu
YWJsZWQodHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGhlcmUgc2hv
dWxkIGJlIG5vIGNvbnRlbnQgaW4gdGhlIGlmcmFtZSBiZWxvdzo8L3A+Cis8aWZyYW1lIGlkPSJm
cmFtZSIgb25sb2FkPSJjaGVja0lmRnJhbWVMb2NhdGlvbk1hdGNoZXNVUkxBbmRDYWxsRG9uZSgn
ZnJhbWUnLCAnYWJvdXQ6YmxhbmsnKSIgc3JjPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJp
dHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy5wbD9lbmFibGUtZnVsbC1ibG9j
az0xJnE9PHNjcmlwdCBzcmM9J2h0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9zZWN1cml0eS94c3NBdWRp
dG9yL3Jlc291cmNlcy94c3MuanMnPjwvc2NyaXB0PiI+Cis8L2lmcmFtZT4KKzwvYm9keT4KKzwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9m
dWxsLWJsb2NrLXNjcmlwdC10YWcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvZnVsbC1ibG9jay1zY3JpcHQtdGFnLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
ZnVsbC1ibG9jay1zY3JpcHQtdGFnLmh0bWwJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTkgQEAK
KzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSJodHRwOi8vbG9j
YWxob3N0OjgwMDAvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Cisg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRYU1NBdWRpdG9y
RW5hYmxlZCh0cnVlKTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UaGVyZSBz
aG91bGQgYmUgbm8gY29udGVudCBpbiB0aGUgaWZyYW1lIGJlbG93OjwvcD4KKzxpZnJhbWUgaWQ9
ImZyYW1lIiBvbmxvYWQ9ImNoZWNrSWZGcmFtZUxvY2F0aW9uTWF0Y2hlc1VSTEFuZENhbGxEb25l
KCdmcmFtZScsICdhYm91dDpibGFuaycpIiBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1
cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWludGVydGFnLnBsP2VuYWJsZS1mdWxsLWJs
b2NrPTEmcT08c2NyaXB0PmFsZXJ0KC9YU1MvKTwvc2NyaXB0PiI+Cis8L2lmcmFtZT4KKzwvYm9k
eT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVk
aXRvci9tYWxmb3JtZWQteHNzLXByb3RlY3Rpb24taGVhZGVyLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvbWFsZm9y
bWVkLXhzcy1wcm90ZWN0aW9uLWhlYWRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvbWFsZm9ybWVkLXhzcy1w
cm90ZWN0aW9uLWhlYWRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsMTAg
QEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBSZWZ1c2VkIHRvIGV4ZWN1dGUgYSBKYXZhU2Ny
aXB0IHNjcmlwdC4gU291cmNlIGNvZGUgb2Ygc2NyaXB0IGZvdW5kIHdpdGhpbiByZXF1ZXN0Lgor
CitUaGlzIHRlc3RzIHRoYXQgdGhlIFgtWFNTLVByb3RlY3Rpb24gaGVhZGVyIGlzIG5vdCBpZ25v
cmVkIHdoZW4gdGhlIGxlbmd0aCBvZiBpdHMgdmFsdWUgZXhjZWVkcyAxNiBjaGFyYWN0ZXJzLgor
CisKKworLS0tLS0tLS0KK0ZyYW1lOiAnZnJhbWUnCistLS0tLS0tLQorCkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvbWFsZm9ybWVkLXhzcy1wcm90ZWN0
aW9uLWhlYWRlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkveHNzQXVkaXRvci9tYWxmb3JtZWQteHNzLXByb3RlY3Rpb24taGVhZGVyLmh0bWwJKHJl
dmlzaW9uIDApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3Iv
bWFsZm9ybWVkLXhzcy1wcm90ZWN0aW9uLWhlYWRlci5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCww
ICsxLDE5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0i
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL3V0aWxp
dGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
WFNTQXVkaXRvckVuYWJsZWQodHJ1ZSk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+VGhpcyB0ZXN0cyB0aGF0IHRoZSBYLVhTUy1Qcm90ZWN0aW9uIGhlYWRlciBpcyBub3QgaWdu
b3JlZCB3aGVuIHRoZSBsZW5ndGggb2YgaXRzIHZhbHVlIGV4Y2VlZHMgPGEgaHJlZj0iaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTI3MzEyI2MxMyI+MTYgY2hhcmFjdGVy
cy48L2E+PC9wPgorPGlmcmFtZSBpZD0iZnJhbWUiIG9ubG9hZD0iY2hlY2tJZkZyYW1lTG9jYXRp
b25NYXRjaGVzVVJMQW5kQ2FsbERvbmUoJ2ZyYW1lJywgJ2Fib3V0OmJsYW5rJykiIHNyYz0iaHR0
cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50
ZXJ0YWcucGw/Y3VzdG9tLWhlYWRlcj1YLVhTUy1Qcm90ZWN0aW9uOiAxMjM0NTY3ODkwMTIzNDU2
NyZxPTxzY3JpcHQ+YWxlcnQoL1hTUy8pPC9zY3JpcHQ+PHA+SWYgeW91IHNlZSB0aGlzIG1lc3Nh
Z2UgYW5kIG5vIEphdmFTY3JpcHQgYWxlcnQoKSB0aGVuIHRoZSB0ZXN0IFBBU1NFRC48L3A+Ij4K
KzwvaWZyYW1lPgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy9lY2hvLWhlYWQtYmFzZS1ocmVmLnBsCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9y
ZXNvdXJjZXMvZWNoby1oZWFkLWJhc2UtaHJlZi5wbAkocmV2aXNpb24gNTQxMDMpCisrKyBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1ZGl0b3IvcmVzb3VyY2VzL2VjaG8taGVh
ZC1iYXNlLWhyZWYucGwJKHdvcmtpbmcgY29weSkKQEAgLTQsNiArNCw5IEBAIHVzZSBDR0k7CiAK
IG15ICRjZ2kgPSBuZXcgQ0dJOwogCitpZiAoJGNnaS0+cGFyYW0oJ2VuYWJsZS1mdWxsLWJsb2Nr
JykpIHsKKyAgICBwcmludCAiWC1YU1MtUHJvdGVjdGlvbjogMTJcbiI7Cit9CiBwcmludCAiQ29u
dGVudC1UeXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLThcblxuIjsKIAogcHJpbnQgIjwhRE9D
VFlQRSBodG1sPlxuIjsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNz
QXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy1jbGljay1hbmQtbm90aWZ5LnBsCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNv
dXJjZXMvZWNoby1pbnRlcnRhZy1jbGljay1hbmQtbm90aWZ5LnBsCShyZXZpc2lvbiA1NDEwMykK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMv
ZWNoby1pbnRlcnRhZy1jbGljay1hbmQtbm90aWZ5LnBsCSh3b3JraW5nIGNvcHkpCkBAIC00LDYg
KzQsOSBAQCB1c2UgQ0dJOwogCiBteSAkY2dpID0gbmV3IENHSTsKIAoraWYgKCRjZ2ktPnBhcmFt
KCdlbmFibGUtZnVsbC1ibG9jaycpKSB7CisgICAgcHJpbnQgIlgtWFNTLVByb3RlY3Rpb246IDEy
XG4iOworfQogcHJpbnQgIkNvbnRlbnQtVHlwZTogdGV4dC9odG1sOyBjaGFyc2V0PVVURi04XG5c
biI7CiAKIHByaW50ICI8IURPQ1RZUEUgaHRtbD5cbiI7CkBAIC0yMCw5ICsyMywxNyBAQCBwcmlu
dCAiPC9zY3JpcHQ+XG4iOwogcHJpbnQgIjwvaGVhZD5cbiI7CiBwcmludCAiPGJvZHk+XG4iOwog
cHJpbnQgJGNnaS0+cGFyYW0oJ3EnKTsKLXByaW50ICI8c2NyaXB0PlxuIjsKLXByaW50ICJpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKVxuIjsKLXByaW50ICIgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpO1xuIjsKLXByaW50ICI8L3NjcmlwdD5cbiI7CitpZiAoJGNn
aS0+cGFyYW0oJ2VuYWJsZS1mdWxsLWJsb2NrJykpIHsKKyAgICAjIE5vdGUsIHdoZW4gdGVzdGlu
ZyBhIGZ1bGwtcGFnZS1ibG9jaywgd2UgY2FuJ3QgY2FsbCBsYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCkKKyAgICAjIG9uIHRoZSBnZW5lcmF0ZWQgcGFnZSBiZWNhdXNlIGl0IHRha2Vz
IHNvbWUgdGltZSBmb3IgdGhlIGZyYW1lIHRvIGJlIHJlZGlyZWN0ZWQgdG8KKyAgICAjIGFib3V0
OmJsYW5rLiBIZW5jZSwgdGhlIGNhbGxlciBvZiB0aGlzIFBlcmwgc2NyaXB0IG11c3QgY2FsbCBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCkKKyAgICAjIGFmdGVyIHRoZSByZWRpcmVj
dCBoYXMgb2NjdXJyZWQuCisgICAgcHJpbnQgIjxwPklmIHlvdSBzZWUgdGhpcyBtZXNzYWdlIHRo
ZW4gdGhlIHRlc3QgRkFJTEVELjwvcD5cbiI7Cit9IGVsc2UgeworICAgIHByaW50ICI8c2NyaXB0
PlxuIjsKKyAgICBwcmludCAiaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcilcbiI7Cisg
ICAgcHJpbnQgIiAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7XG4iOworICAg
IHByaW50ICI8L3NjcmlwdD5cbiI7Cit9CiBwcmludCAiPC9ib2R5PlxuIjsKIHByaW50ICI8L2h0
bWw+XG4iOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L3Jlc291cmNlcy9lY2hvLWludGVydGFnLnBsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkveHNzQXVkaXRvci9yZXNvdXJjZXMvZWNoby1pbnRlcnRhZy5wbAko
cmV2aXNpb24gNTQxMDMpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3hzc0F1
ZGl0b3IvcmVzb3VyY2VzL2VjaG8taW50ZXJ0YWcucGwJKHdvcmtpbmcgY29weSkKQEAgLTQsNiAr
NCwxMiBAQCB1c2UgQ0dJOwogCiBteSAkY2dpID0gbmV3IENHSTsKIAoraWYgKCRjZ2ktPnBhcmFt
KCdlbmFibGUtZnVsbC1ibG9jaycpKSB7CisgICAgcHJpbnQgIlgtWFNTLVByb3RlY3Rpb246IDEy
XG4iOworfQoraWYgKCRjZ2ktPnBhcmFtKCdjdXN0b20taGVhZGVyJykpIHsKKyAgICBwcmludCAk
Y2dpLT5wYXJhbSgnY3VzdG9tLWhlYWRlcicpIC4gIlxuIjsKK30KIHByaW50ICJDb250ZW50LVR5
cGU6IHRleHQvaHRtbDsgY2hhcnNldD1VVEYtOFxuXG4iOwogCiBwcmludCAiPCFET0NUWVBFIGh0
bWw+XG4iOwpAQCAtMTYsNSArMjIsOCBAQCBpZiAoJGNnaS0+cGFyYW0oJ25vdGlmeURvbmUnKSkg
ewogICAgIHByaW50ICIgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpO1xuIjsK
ICAgICBwcmludCAiPC9zY3JpcHQ+XG4iOwogfQoraWYgKCRjZ2ktPnBhcmFtKCdlbmFibGUtZnVs
bC1ibG9jaycpKSB7CisgICAgcHJpbnQgIjxwPklmIHlvdSBzZWUgdGhpcyBtZXNzYWdlIHRoZW4g
dGhlIHRlc3QgRkFJTEVELjwvcD5cbiI7Cit9CiBwcmludCAiPC9ib2R5PlxuIjsKIHByaW50ICI8
L2h0bWw+XG4iOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRp
dG9yL3Jlc291cmNlcy91dGlsaXRpZXMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9yL3Jlc291cmNlcy91dGlsaXRpZXMuanMJKHJldmlz
aW9uIDU0MTAzKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS94c3NBdWRpdG9y
L3Jlc291cmNlcy91dGlsaXRpZXMuanMJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSwxMiBAQAot
ZnVuY3Rpb24gc2VuZFJlcXVlc3RGcm9tSUZyYW1lKHVybCwgcGFyYW1zLCBIVFRQTWV0aG9kKQor
ZnVuY3Rpb24gY2hlY2tJZkZyYW1lTG9jYXRpb25NYXRjaGVzVVJMQW5kQ2FsbERvbmUoZnJhbWVJ
ZCwgZXhwZWN0ZWRVUkwpCit7CisgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICAgIHJldHVybjsKKyAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoZnJhbWVJ
ZCkuY29udGVudFdpbmRvdy5sb2NhdGlvbiA9PSBleHBlY3RlZFVSTCkKKyAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQorCitmdW5jdGlvbiBzZW5kUmVxdWVzdEZy
b21JRnJhbWUodXJsLCBwYXJhbXMsIEhUVFBNZXRob2QsIGNhbGxiYWNrV2hlbkRvbmUpCiB7CiAg
ICAgaWYgKCFwYXJhbXMgfHwgIXBhcmFtcy5sZW5ndGgpCiAgICAgICAgIHJldHVybjsKQEAgLTIz
LDUgKzMxLDcgQEAgZnVuY3Rpb24gc2VuZFJlcXVlc3RGcm9tSUZyYW1lKHVybCwgcGFyYQogICAg
IH0KICAgICBmcmFtZUNvbnRlbnQud3JpdGUoJzwvZm9ybT4nKTsKICAgICBmcmFtZUNvbnRlbnQu
Y2xvc2UoKTsKKyAgICBpZiAoY2FsbGJhY2tXaGVuRG9uZSkKKyAgICAgICAgaUZyYW1lT2JqLm9u
bG9hZCA9IGNhbGxiYWNrV2hlbkRvbmU7CiAgICAgZnJhbWVDb250ZW50LmdldEVsZW1lbnRCeUlk
KCdmb3JtJykuc3VibWl0KCk7Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorfQo=
</data>
<flag name="review"
          id="30341"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>