<?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>105280</bug_id>
          
          <creation_ts>2012-12-18 04:57:34 -0800</creation_ts>
          <short_desc>Console log sometimes prefixed with line number</short_desc>
          <delta_ts>2015-04-15 23:51:15 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk, LayoutTestFailure</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jussi Kukkonen (jku)">jussi.kukkonen</reporter>
          <assigned_to name="Alexey Proskuryakov">ap</assigned_to>
          <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>clopez</cc>
    
    <cc>darin</cc>
    
    <cc>d-r</cc>
    
    <cc>jussi.kukkonen</cc>
    
    <cc>llango.u-szeged</cc>
    
    <cc>mario</cc>
    
    <cc>mkwst</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>793555</commentid>
    <comment_count>0</comment_count>
    <who name="Jussi Kukkonen (jku)">jussi.kukkonen</who>
    <bug_when>2012-12-18 04:57:34 -0800</bug_when>
    <thetext>Several XHR tests have started doing this randomly (~10% of the time) after http://trac.webkit.org/changeset/136657 on at least the EFL WK2 bot:

-CONSOLE MESSAGE: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/get.txt. Origin http://127.0.0.1:8000 is not allowed by Access-Control-Allow-Origin.
+CONSOLE MESSAGE: line 58: XMLHttpRequest cannot load http://localhost:8000/xmlhttprequest/resources/get.txt. Origin http://127.0.0.1:8000 is not allowed by Access-Control-Allow-Origin.

I can reproduce this locally. Line 58 of the test in question (http/tests/xmlhttprequest/origin-whitelisting-https.html) is end of file.


I believe this code in WebCore::Console::addMessage is relevant:
  unsigned line = 0;
  if (document &amp;&amp; document-&gt;parsing() &amp;&amp; !document-&gt;isInDocumentWrite() &amp;&amp; document-&gt;scriptableDocumentParser()) {
      ScriptableDocumentParser* parser = document-&gt;scriptableDocumentParser();
      if (!parser-&gt;isWaitingForScripts() &amp;&amp; !parser-&gt;isExecutingScript())
          line = parser-&gt;lineNumber().oneBasedInt();
  }
  addMessage(source, level, message, url, line, 0, 0, requestIdentifier);

&apos;line&apos; sometimes ends up being set to a value other than zero.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793559</commentid>
    <comment_count>1</comment_count>
    <who name="Jussi Kukkonen (jku)">jussi.kukkonen</who>
    <bug_when>2012-12-18 04:59:50 -0800</bug_when>
    <thetext>(In reply to comment #0)
&gt; &apos;line&apos; sometimes ends up being set to a value other than zero.

That should be: _Apparently_ &apos;line&apos; sometimes ends up being set to a value other than zero -- I have not been able to catch this in gdb.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>793582</commentid>
    <comment_count>2</comment_count>
    <who name="Mike West">mkwst</who>
    <bug_when>2012-12-18 06:08:50 -0800</bug_when>
    <thetext>Interesting. There must be some case when the XHR callback comes through in which the ScriptableDocumentParser thinks it&apos;s active. I&apos;ll try to reproduce this locally, but it looks like it&apos;s only failing on GTK and EFL (see http://test-results.appspot.com/dashboards/flakiness_dashboard.html#group=%40ToT%20-%20webkit.org&amp;tests=http%2Ftests%2Fxmlhttprequest%2Forigin-whitelisting-https.html).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>798324</commentid>
    <comment_count>3</comment_count>
    <who name="Jussi Kukkonen (jku)">jussi.kukkonen</who>
    <bug_when>2012-12-31 04:20:26 -0800</bug_when>
    <thetext>It&apos;s not just XHR:
http/tests/security/canvas-remote-read-remote-image-redirect.html also does this:
-CONSOLE MESSAGE: Unable to get image data from canvas because the canvas has been tainted by cross-origin data.
-CONSOLE MESSAGE: Unable to get image data from canvas because the canvas has been tainted by cross-origin data.
-CONSOLE MESSAGE: Unable to get image data from canvas because the canvas has been tainted by cross-origin data.
-CONSOLE MESSAGE: Unable to get image data from canvas because the canvas has been tainted by cross-origin data.
+CONSOLE MESSAGE: line 108: Unable to get image data from canvas because the canvas has been tainted by cross-origin data.
+CONSOLE MESSAGE: line 108: Unable to get image data from canvas because the canvas has been tainted by cross-origin data.
+CONSOLE MESSAGE: line 108: Unable to get image data from canvas because the canvas has been tainted by cross-origin data.
+CONSOLE MESSAGE: line 108: Unable to get image data from canvas because the canvas has been tainted by cross-origin data.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911012</commentid>
    <comment_count>4</comment_count>
    <who name="Mario Sanchez Prada">mario</who>
    <bug_when>2013-07-23 06:21:01 -0700</bug_when>
    <thetext>This very same issue happens every now and then (flaky) in the GTK Debug bot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>929979</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-09-16 16:49:59 -0700</bug_when>
    <thetext>&gt; http/tests/security/canvas-remote-read-remote-image-redirect.html also does this:

Filed bug 121458 before finding this one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1020028</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2014-07-02 14:08:17 -0700</bug_when>
    <thetext>This happens on the GTK release bot/build at randomly intervals. At least the following tests are affected:

http/tests/xmlhttprequest/access-control-preflight-async-method-denied.html
http/tests/xmlhttprequest/access-control-preflight-async-not-supported.html
http/tests/xmlhttprequest/cross-site-denied-response.html
http/tests/xmlhttprequest/origin-whitelisting-https.html
http/tests/xmlhttprequest/simple-cross-origin-denied-events.html
http/tests/xmlhttprequest/simple-cross-origin-denied-events-post.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1060169</commentid>
    <comment_count>7</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-09 10:23:40 -0800</bug_when>
    <thetext>Also on Mac debug bots:

http/tests/websocket/tests/hybi/reserved-bits.html
http/tests/websocket/tests/hybi/deflate-frame-invalid-parameter.html
http/tests/websocket/tests/hybi/handshake-fail-by-more-protocol-header.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062040</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-16 16:48:36 -0800</bug_when>
    <thetext>*** Bug 125340 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062048</commentid>
    <comment_count>9</comment_count>
      <attachid>244821</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-16 16:59:16 -0800</bug_when>
    <thetext>Created attachment 244821
proposed fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062105</commentid>
    <comment_count>10</comment_count>
      <attachid>244821</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-01-17 08:15:59 -0800</bug_when>
    <thetext>Comment on attachment 244821
proposed fix

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

&gt; Source/WebCore/dom/ScriptableDocumentParser.h:51
&gt; +    virtual bool consoleMessagesShouldBeAssociatedToParser() const = 0;

I don’t think “associated to” is good grammar. Should be “associated with” like the comment. Also, since this is a parser function, I suggest “associated with text position” rather than “associated to parser”. Maybe:

    virtual bool shouldAssociateConsoleMessagesWithTextPosition() const = 0;

&gt; Source/WebCore/html/parser/HTMLDocumentParser.h:64
&gt; +    virtual bool consoleMessagesShouldBeAssociatedToParser() const override final;

I suggest making this private since there is no need to call it on HTMLDocumentParser. Could always make it public later.

&gt; Source/WebCore/page/PageConsoleClient.cpp:91
&gt; +    // We definitely cannot associate the message to a location being parsed if we are not even parsing.

“with a location” rather than “to a location”.

&gt; Source/WebCore/page/PageConsoleClient.cpp:95
&gt; +    ScriptableDocumentParser* parser = document-&gt;scriptableDocumentParser();

What guarantees this is never null? If it’s guaranteed not to be null, why are we putting it in a pointer rather than a reference?

&gt; Source/WebCore/page/PageConsoleClient.cpp:111
&gt;      unsigned line = 0;
&gt;      unsigned column = 0;

I suggest putting the initialization to 0 inside the getParserLocationForConsoleMessage function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062369</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-19 09:10:57 -0800</bug_when>
    <thetext>&gt; What guarantees this is never null? If it’s guaranteed not to be null, why are we putting it in a pointer rather than a reference?

I do not have a complete guarantee, however we check for parsing() before doing this, and perhaps more importantly, all regression tests pass. I didn&apos;t want to add a null check just in case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062370</commentid>
    <comment_count>12</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-19 09:14:57 -0800</bug_when>
    <thetext>&gt; I suggest putting the initialization to 0 inside the getParserLocationForConsoleMessage function.

I don&apos;t think that I agree. The 0/0 is not a parser location, so a &quot;get parser location&quot; function is not the right place to set that.

To be more generally useful, the function could return true/false, not an in-band failure signal. But we don&apos;t need it to be more generally useful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062372</commentid>
    <comment_count>13</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-19 09:25:33 -0800</bug_when>
    <thetext>Committed &lt;http://trac.webkit.org/r178648&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062487</commentid>
    <comment_count>14</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-01-19 13:34:41 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; &gt; I suggest putting the initialization to 0 inside the getParserLocationForConsoleMessage function.
&gt; 
&gt; I don&apos;t think that I agree. The 0/0 is not a parser location, so a &quot;get
&gt; parser location&quot; function is not the right place to set that.

Sure, but a function that conditionally leaves out arguments untouched is not a good design pattern either. I think the function should set the values to something well defined. And setting them to 0/0 would be good for all current clients.

As you say, if we wanted to generalize it for more clients later we could do something even fancier, but I don’t think it’s good to have a function with a contract that says “only sometimes set the values of these out arguments” unless there is some compelling advantage to doing so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062488</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-01-19 13:35:15 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; &gt; What guarantees this is never null? If it’s guaranteed not to be null, why are we putting it in a pointer rather than a reference?
&gt; 
&gt; I do not have a complete guarantee, however we check for parsing() before
&gt; doing this, and perhaps more importantly, all regression tests pass. I
&gt; didn&apos;t want to add a null check just in case.

That’s a fine answer to my first question.

What’s the answer to my second question?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062531</commentid>
    <comment_count>16</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2015-01-19 15:51:15 -0800</bug_when>
    <thetext>&gt; I don’t think it’s good to have a function with a contract that says “only sometimes set the values of these out arguments” unless there is some compelling advantage to doing so.

I thought that most &quot;get&quot; functions in WebKit did this, leaving the output untouched when failing. And even when there is a boolean result returned, it&apos;s still up to the caller to not accidentally use the uninitialized output arguments.

See e.g. ApplicationCacheHost::getApplicationCacheFallbackResource() or JSObject::getOwnPropertySlot().

This hasn&apos;t been a major source of problems in WebKit historically. I don&apos;t see this case as being substantially different.

&gt; What’s the answer to my second question?

I assume that you meant changing that line to:

ScriptableDocumentParser&amp; parser = *document-&gt;scriptableDocumentParser();

(or possibly auto&amp;, which in my opinion makes it hard to see what types we are working on).

Transforming the result type would increase cognitive load on the reader here. Suddenly, they would have to jump between pointers and references, all just to make a couple member function calls.

To me, making a reference on the fly is not a convincing way of saying &quot;this is really non-null, shouldn&apos;t raise red flags when reading&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1062762</commentid>
    <comment_count>17</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-01-20 09:09:48 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; I assume that you meant changing that line to:
&gt; 
&gt; ScriptableDocumentParser&amp; parser = *document-&gt;scriptableDocumentParser();
&gt; 
&gt; (or possibly auto&amp;, which in my opinion makes it hard to see what types we
&gt; are working on).
&gt; 
&gt; Transforming the result type would increase cognitive load on the reader
&gt; here. Suddenly, they would have to jump between pointers and references, all
&gt; just to make a couple member function calls.
&gt; 
&gt; To me, making a reference on the fly is not a convincing way of saying &quot;this
&gt; is really non-null, shouldn&apos;t raise red flags when reading&quot;.

I think what you might be missing is that we are transitioning to making these functions return references. So the local reference variable today is a “jump” between pointers and references, only until we change the function to return a reference, since it’s a function that is not going to return null.

Code processing something that can’t be null should change to references, and in some cases during the transition, the function it’s calling might still be a pointer. I was hoping to recruit you to help in this transition whenever you modify code or write new code.

If the thing really isn’t guaranteed to be non-null, it’s a whole different problem, and not part of the transition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085851</commentid>
    <comment_count>18</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-04-15 23:50:43 -0700</bug_when>
    <thetext>Reopening due to flaky tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1085852</commentid>
    <comment_count>19</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-04-15 23:51:15 -0700</bug_when>
    <thetext>Wrong bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>244821</attachid>
            <date>2015-01-16 16:59:16 -0800</date>
            <delta_ts>2015-01-17 08:15:59 -0800</delta_ts>
            <desc>proposed fix</desc>
            <filename>LineFlakiness.txt</filename>
            <type>text/plain</type>
            <size>33897</size>
            <attacher name="Alexey Proskuryakov">ap</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3ODYxNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI2IEBACisyMDE1LTAxLTE2ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIENvbnNvbGUgbG9nIHNvbWV0
aW1lcyBwcmVmaXhlZCB3aXRoIGxpbmUgbnVtYmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDUyODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBJbXByb3ZlIHRoZSBsb2dpYyBmb3IgZGV0ZXJtaW5pbmcg
d2hldGhlciBhIGNvbnNvbGUgbWVzc2FnZSBzaG91bGQgYmUgYXNzb2NpYXRlZAorICAgICAgICB3
aXRoIGEgc291cmNlIGNvZGUgbG9jYXRpb24uCisKKyAgICAgICAgKiBkb20vU2NyaXB0YWJsZURv
Y3VtZW50UGFyc2VyLmg6CisgICAgICAgICogaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudFBhcnNlcjo6Y29uc29sZU1lc3Nh
Z2VzU2hvdWxkQmVBc3NvY2lhdGVkVG9QYXJzZXIpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hU
TUxEb2N1bWVudFBhcnNlci5oOgorICAgICAgICAqIHBhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Z2V0UGFyc2VyTG9jYXRpb25Gb3JDb25zb2xlTWVzc2FnZSk6
CisgICAgICAgIChXZWJDb3JlOjpQYWdlQ29uc29sZUNsaWVudDo6YWRkTWVzc2FnZSk6CisgICAg
ICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpYTUxEb2N1bWVudFBhcnNlcjo6cGF1c2VQYXJzaW5nKToKKyAgICAgICAgKiB4bWwvcGFyc2Vy
L1hNTERvY3VtZW50UGFyc2VyLmg6CisgICAgICAgICogeG1sL3BhcnNlci9YTUxEb2N1bWVudFBh
cnNlckxpYnhtbDIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WE1MRG9jdW1lbnRQYXJzZXI6OmNv
bnNvbGVNZXNzYWdlc1Nob3VsZEJlQXNzb2NpYXRlZFRvUGFyc2VyKToKKwogMjAxNS0wMS0xNiAg
WmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFdoZW4gYm9yZGVyLXJh
ZGl1cyBpcyBwcmVzZW50LCBpbnNldC9vdXRzZXQvZ3Jvb3ZlL3JpZGdlIGJvcmRlciBjb2xvciBj
aGFuZ2VzLgpJbmRleDogU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGFibGVEb2N1bWVudFBhcnNl
ci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2RvbS9TY3JpcHRhYmxlRG9jdW1lbnRQ
YXJzZXIuaAkocmV2aXNpb24gMTc4NjA0KQorKysgU291cmNlL1dlYkNvcmUvZG9tL1NjcmlwdGFi
bGVEb2N1bWVudFBhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC00Niw2ICs0NiwxMCBAQCBwdWJs
aWM6CiAKICAgICB2aXJ0dWFsIFRleHRQb3NpdGlvbiB0ZXh0UG9zaXRpb24oKSBjb25zdCA9IDA7
CiAKKyAgICAvLyBSZXR1cm5zIHRydWUgaWYgdGhlIHBhcnNlciBkaWRuJ3QgeWllbGQgb3IgcGF1
c2Ugb3Igc3luY2hyb25vdXNseSBleGVjdXRlIGEgc2NyaXB0LAorICAgIC8vIHNvIGNhbGxzIHRv
IFBhZ2VDb25zb2xlQ2xpZW50IHNob3VsZCBiZSBhc3NvY2lhdGVkIHdpdGggdGhlIHBhcnNlcidz
IHRleHQgcG9zaXRpb24uCisgICAgdmlydHVhbCBib29sIGNvbnNvbGVNZXNzYWdlc1Nob3VsZEJl
QXNzb2NpYXRlZFRvUGFyc2VyKCkgY29uc3QgPSAwOworCiAgICAgdm9pZCBzZXRXYXNDcmVhdGVk
QnlTY3JpcHQoYm9vbCB3YXNDcmVhdGVkQnlTY3JpcHQpIHsgbV93YXNDcmVhdGVkQnlTY3JpcHQg
PSB3YXNDcmVhdGVkQnlTY3JpcHQ7IH0KICAgICBib29sIHdhc0NyZWF0ZWRCeVNjcmlwdCgpIGNv
bnN0IHsgcmV0dXJuIG1fd2FzQ3JlYXRlZEJ5U2NyaXB0OyB9CiAKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmNwcAkocmV2aXNpb24g
MTc4NjA0KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2Vy
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDYyLDYgKzQ2MiwxMSBAQCBUZXh0UG9zaXRpb24gSFRN
TERvY3VtZW50UGFyc2VyOjp0ZXh0UG9zCiAgICAgcmV0dXJuIFRleHRQb3NpdGlvbihjdXJyZW50
U3RyaW5nLmN1cnJlbnRMaW5lKCksIGN1cnJlbnRTdHJpbmcuY3VycmVudENvbHVtbigpKTsKIH0K
IAorYm9vbCBIVE1MRG9jdW1lbnRQYXJzZXI6OmNvbnNvbGVNZXNzYWdlc1Nob3VsZEJlQXNzb2Np
YXRlZFRvUGFyc2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4gaW5QdW1wU2Vzc2lvbigpICYmICFp
c0V4ZWN1dGluZ1NjcmlwdCgpOworfQorCiBib29sIEhUTUxEb2N1bWVudFBhcnNlcjo6aXNXYWl0
aW5nRm9yU2NyaXB0cygpIGNvbnN0CiB7CiAgICAgLy8gV2hlbiB0aGUgVHJlZUJ1aWxkZXIgZW5j
b3VudGVycyBhIDwvc2NyaXB0PiB0YWcsIGl0IHJldHVybnMgdG8gdGhlIEhUTUxEb2N1bWVudFBh
cnNlcgpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2Vy
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50
UGFyc2VyLmgJKHJldmlzaW9uIDE3ODYwNCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L0hUTUxEb2N1bWVudFBhcnNlci5oCSh3b3JraW5nIGNvcHkpCkBAIC02MSw2ICs2MSw3IEBAIHB1
YmxpYzoKICAgICAvLyBGb3IgSFRNTFRyZWVCdWlsZGVyLgogICAgIEhUTUxUb2tlbml6ZXImIHRv
a2VuaXplcigpOwogICAgIHZpcnR1YWwgVGV4dFBvc2l0aW9uIHRleHRQb3NpdGlvbigpIGNvbnN0
IG92ZXJyaWRlIGZpbmFsOworICAgIHZpcnR1YWwgYm9vbCBjb25zb2xlTWVzc2FnZXNTaG91bGRC
ZUFzc29jaWF0ZWRUb1BhcnNlcigpIGNvbnN0IG92ZXJyaWRlIGZpbmFsOwogCiBwcm90ZWN0ZWQ6
CiAgICAgZXhwbGljaXQgSFRNTERvY3VtZW50UGFyc2VyKEhUTUxEb2N1bWVudCYpOwpJbmRleDog
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvcGFnZS9QYWdlQ29uc29sZUNsaWVudC5jcHAJKHJldmlzaW9uIDE3ODYw
NCkKKysrIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUGFnZUNvbnNvbGVDbGllbnQuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04MywyNyArODMsMzQgQEAgdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6dW5tdXRl
KCkKICAgICBtdXRlQ291bnQtLTsKIH0KIAorc3RhdGljIHZvaWQgZ2V0UGFyc2VyTG9jYXRpb25G
b3JDb25zb2xlTWVzc2FnZShEb2N1bWVudCogZG9jdW1lbnQsIFN0cmluZyYgdXJsLCB1bnNpZ25l
ZCYgbGluZSwgdW5zaWduZWQmIGNvbHVtbikKK3sKKyAgICBpZiAoIWRvY3VtZW50KQorICAgICAg
ICByZXR1cm47CisKKyAgICAvLyBXZSBkZWZpbml0ZWx5IGNhbm5vdCBhc3NvY2lhdGUgdGhlIG1l
c3NhZ2UgdG8gYSBsb2NhdGlvbiBiZWluZyBwYXJzZWQgaWYgd2UgYXJlIG5vdCBldmVuIHBhcnNp
bmcuCisgICAgaWYgKCFkb2N1bWVudC0+cGFyc2luZygpKQorICAgICAgICByZXR1cm47CisKKyAg
ICBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIqIHBhcnNlciA9IGRvY3VtZW50LT5zY3JpcHRhYmxl
RG9jdW1lbnRQYXJzZXIoKTsKKworICAgIC8vIFdoZW4gdGhlIHBhcnNlciB3YWl0cyBmb3Igc2Ny
aXB0cywgYW55IG1lc3NhZ2VzIG11c3QgYmUgY29taW5nIGZyb20gc29tZSBvdGhlciBzb3VyY2Us
IGFuZCBhcmUgbm90IHJlbGF0ZWQgdG8gdGhlIGxvY2F0aW9uIG9mIHRoZSBzY3JpcHQgZWxlbWVu
dCB0aGF0IG1hZGUgdGhlIHBhcnNlciB3YWl0LgorICAgIGlmICghcGFyc2VyLT5jb25zb2xlTWVz
c2FnZXNTaG91bGRCZUFzc29jaWF0ZWRUb1BhcnNlcigpKQorICAgICAgICByZXR1cm47CisKKyAg
ICB1cmwgPSBkb2N1bWVudC0+dXJsKCkuc3RyaW5nKCk7CisgICAgVGV4dFBvc2l0aW9uIHBvc2l0
aW9uID0gcGFyc2VyLT50ZXh0UG9zaXRpb24oKTsKKyAgICBsaW5lID0gcG9zaXRpb24ubV9saW5l
Lm9uZUJhc2VkSW50KCk7CisgICAgY29sdW1uID0gcG9zaXRpb24ubV9jb2x1bW4ub25lQmFzZWRJ
bnQoKTsKK30KKwogdm9pZCBQYWdlQ29uc29sZUNsaWVudDo6YWRkTWVzc2FnZShNZXNzYWdlU291
cmNlIHNvdXJjZSwgTWVzc2FnZUxldmVsIGxldmVsLCBjb25zdCBTdHJpbmcmIG1lc3NhZ2UsIHVu
c2lnbmVkIGxvbmcgcmVxdWVzdElkZW50aWZpZXIsIERvY3VtZW50KiBkb2N1bWVudCkKIHsKICAg
ICBTdHJpbmcgdXJsOwotICAgIGlmIChkb2N1bWVudCkKLSAgICAgICAgdXJsID0gZG9jdW1lbnQt
PnVybCgpLnN0cmluZygpOwotCi0gICAgLy8gRklYTUU6IFRoZSBiZWxvdyBjb2RlIGF0dGVtcHRz
IHRvIGRldGVybWluZSBsaW5lIG51bWJlcnMgZm9yIHBhcnNlciBnZW5lcmF0ZWQgZXJyb3JzLCBi
dXQgdGhpcyBpcyBub3QgdGhlIG9ubHkgcmVhc29uIHdoeSB3ZSBjYW4gZ2V0IGhlcmUuCi0gICAg
Ly8gRm9yIGV4YW1wbGUsIGlmIHdlIGFyZSBzdGlsbCBwYXJzaW5nIGFuZCBnZXQgYSBXZWJTb2Nr
ZXQgbmV0d29yayBlcnJvciwgaXQgd2lsbCBiZSBlcnJvbmVvdXNseSBhdHRyaWJ1dGVkIHRvIGEg
bGluZSB3aGVyZSBwYXJzaW5nIHdhcyBwYXVzZWQuCi0gICAgLy8gQWxzbywgd2Ugc2hvdWxkIGRl
dGVybWluZSBsaW5lIG51bWJlcnMgZm9yIHNjcmlwdCBnZW5lcmF0ZWQgbWVzc2FnZXMgKGUuZy4g
Y2FsbGluZyBnZXRJbWFnZURhdGEgb24gYSBjYW52YXMpLgotICAgIC8vIFdlIHByb2JhYmx5IG5l
ZWQgdG8gc3BsaXQgdGhpcyBmdW5jdGlvbiBpbnRvIG11bHRpcGxlIG9uZXMsIGFzIGFwcHJvcHJp
YXRlIGZvciBkaWZmZXJlbnQgY2FsbCBzaXRlcy4gT3IgbWF5YmUgZGVjaWRlIGJhc2VkIG9uIE1l
c3NhZ2VTb3VyY2UuCi0gICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTEyNTM0MAogICAgIHVuc2lnbmVkIGxpbmUgPSAwOwogICAgIHVuc2lnbmVkIGNvbHVtbiA9
IDA7Ci0gICAgaWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LT5wYXJzaW5nKCkgJiYgIWRvY3VtZW50
LT5pc0luRG9jdW1lbnRXcml0ZSgpICYmIGRvY3VtZW50LT5zY3JpcHRhYmxlRG9jdW1lbnRQYXJz
ZXIoKSkgewotICAgICAgICBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIqIHBhcnNlciA9IGRvY3Vt
ZW50LT5zY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIoKTsKLSAgICAgICAgaWYgKCFwYXJzZXItPmlz
V2FpdGluZ0ZvclNjcmlwdHMoKSAmJiAhSlNNYWluVGhyZWFkRXhlY1N0YXRlOjpjdXJyZW50U3Rh
dGUoKSkgewotICAgICAgICAgICAgVGV4dFBvc2l0aW9uIHBvc2l0aW9uID0gcGFyc2VyLT50ZXh0
UG9zaXRpb24oKTsKLSAgICAgICAgICAgIGxpbmUgPSBwb3NpdGlvbi5tX2xpbmUub25lQmFzZWRJ
bnQoKTsKLSAgICAgICAgICAgIGNvbHVtbiA9IHBvc2l0aW9uLm1fY29sdW1uLm9uZUJhc2VkSW50
KCk7Ci0gICAgICAgIH0KLSAgICB9CisgICAgZ2V0UGFyc2VyTG9jYXRpb25Gb3JDb25zb2xlTWVz
c2FnZShkb2N1bWVudCwgdXJsLCBsaW5lLCBjb2x1bW4pOworCiAgICAgYWRkTWVzc2FnZShzb3Vy
Y2UsIGxldmVsLCBtZXNzYWdlLCB1cmwsIGxpbmUsIGNvbHVtbiwgMCwgSlNNYWluVGhyZWFkRXhl
Y1N0YXRlOjpjdXJyZW50U3RhdGUoKSwgcmVxdWVzdElkZW50aWZpZXIpOwogfQogCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2VyLmNwcAkocmV2
aXNpb24gMTc4NjA0KQorKysgU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBh
cnNlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2MSw2ICsyNjEsOCBAQCBib29sIFhNTERvY3Vt
ZW50UGFyc2VyOjppc1dhaXRpbmdGb3JTY3JpCiAKIHZvaWQgWE1MRG9jdW1lbnRQYXJzZXI6OnBh
dXNlUGFyc2luZygpCiB7CisgICAgQVNTRVJUKCFtX3BhcnNlclBhdXNlZCk7CisKICAgICBpZiAo
bV9wYXJzaW5nRnJhZ21lbnQpCiAgICAgICAgIHJldHVybjsKIApJbmRleDogU291cmNlL1dlYkNv
cmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXIuaAkocmV2aXNpb24gMTc4NjA0KQor
KysgU291cmNlL1dlYkNvcmUveG1sL3BhcnNlci9YTUxEb2N1bWVudFBhcnNlci5oCSh3b3JraW5n
IGNvcHkpCkBAIC02NSw3ICs2NSw3IEBAIGNsYXNzIFRleHQ7CiAgICAgICAgIHhtbFBhcnNlckN0
eHRQdHIgbV9jb250ZXh0OwogICAgIH07CiAKLSAgICBjbGFzcyBYTUxEb2N1bWVudFBhcnNlciA6
IHB1YmxpYyBTY3JpcHRhYmxlRG9jdW1lbnRQYXJzZXIsIHB1YmxpYyBDYWNoZWRSZXNvdXJjZUNs
aWVudCB7CisgICAgY2xhc3MgWE1MRG9jdW1lbnRQYXJzZXIgZmluYWwgOiBwdWJsaWMgU2NyaXB0
YWJsZURvY3VtZW50UGFyc2VyLCBwdWJsaWMgQ2FjaGVkUmVzb3VyY2VDbGllbnQgewogICAgICAg
ICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKICAgICBwdWJsaWM6CiAgICAgICAgIHN0YXRpYyBS
ZWY8WE1MRG9jdW1lbnRQYXJzZXI+IGNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIEZyYW1lVmll
dyogdmlldykKQEAgLTkwLDggKzkwLDYgQEAgY2xhc3MgVGV4dDsKICAgICAgICAgLy8gVXNlZCBi
eSB0aGUgWE1MSHR0cFJlcXVlc3QgdG8gY2hlY2sgaWYgdGhlIHJlc3BvbnNlWE1MIHdhcyB3ZWxs
IGZvcm1lZC4KICAgICAgICAgdmlydHVhbCBib29sIHdlbGxGb3JtZWQoKSBjb25zdCB7IHJldHVy
biAhbV9zYXdFcnJvcjsgfQogCi0gICAgICAgIFRleHRQb3NpdGlvbiB0ZXh0UG9zaXRpb24oKSBj
b25zdDsKLQogICAgICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c1hNTFZlcnNpb24oY29uc3QgU3Ry
aW5nJik7CiAKICAgICBwcml2YXRlOgpAQCAtMTA2LDYgKzEwNCw5IEBAIGNsYXNzIFRleHQ7CiAg
ICAgICAgIHZpcnR1YWwgdm9pZCBzdG9wUGFyc2luZygpIG92ZXJyaWRlOwogICAgICAgICB2aXJ0
dWFsIHZvaWQgZGV0YWNoKCkgb3ZlcnJpZGU7CiAKKyAgICAgICAgdmlydHVhbCBUZXh0UG9zaXRp
b24gdGV4dFBvc2l0aW9uKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgICAgIHZpcnR1YWwgYm9vbCBj
b25zb2xlTWVzc2FnZXNTaG91bGRCZUFzc29jaWF0ZWRUb1BhcnNlcigpIGNvbnN0IG92ZXJyaWRl
OworCiAgICAgICAgIC8vIGZyb20gQ2FjaGVkUmVzb3VyY2VDbGllbnQKICAgICAgICAgdmlydHVh
bCB2b2lkIG5vdGlmeUZpbmlzaGVkKENhY2hlZFJlc291cmNlKikgb3ZlcnJpZGU7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3htbC9wYXJzZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS94bWwvcGFyc2VyL1hNTERvY3VtZW50UGFyc2Vy
TGlieG1sMi5jcHAJKHJldmlzaW9uIDE3ODYwNCkKKysrIFNvdXJjZS9XZWJDb3JlL3htbC9wYXJz
ZXIvWE1MRG9jdW1lbnRQYXJzZXJMaWJ4bWwyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQzNCw2
ICsxNDM0LDExIEBAIFRleHRQb3NpdGlvbiBYTUxEb2N1bWVudFBhcnNlcjo6dGV4dFBvc2kKICAg
ICAgICAgICAgICAgICAgICAgICAgIE9yZGluYWxOdW1iZXI6OmZyb21PbmVCYXNlZEludChjb250
ZXh0LT5pbnB1dC0+Y29sKSk7CiB9CiAKK2Jvb2wgWE1MRG9jdW1lbnRQYXJzZXI6OmNvbnNvbGVN
ZXNzYWdlc1Nob3VsZEJlQXNzb2NpYXRlZFRvUGFyc2VyKCkgY29uc3QKK3sKKyAgICByZXR1cm4g
IW1fcGFyc2VyUGF1c2VkICYmICFtX3JlcXVlc3RpbmdTY3JpcHQ7Cit9CisKIHZvaWQgWE1MRG9j
dW1lbnRQYXJzZXI6OnN0b3BQYXJzaW5nKCkKIHsKICAgICBEb2N1bWVudFBhcnNlcjo6c3RvcFBh
cnNpbmcoKTsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDE3ODYxNSkKKysrIExheW91dFRlc3RzL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE1LTAxLTE2ICBBbGV4ZXkg
UHJvc2t1cnlha292ICA8YXBAYXBwbGUuY29tPgorCisgICAgICAgIENvbnNvbGUgbG9nIHNvbWV0
aW1lcyBwcmVmaXhlZCB3aXRoIGxpbmUgbnVtYmVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDUyODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTb21lIG1lc3NhZ2VzIGxvc3QgbGluZSBudW1iZXJzIG5v
dy4gU29tZSBvZiB0aGVzZSB3ZXJlIGRlZmluaXRlbHkgd3JvbmcsIG90aGVycworICAgICAgICB3
ZXJlIHJvdWdobHkgcmlnaHQuIFVuZm9ydHVuYXRlbHksIGl0IGlzIG5vdCBjdXJyZW50bHkgcG9z
c2libGUgdG8gZmlndXJlIG91dCB3aGV0aGVyCisgICAgICAgIFNjcmlwdENvbnRyb2xsZXIgYWN0
dWFsbHkgZXhlY3V0ZXMgYSBzY3JpcHQgYWZ0ZXIgcGFzc2luZyBjb250cm9sIHRvIGl0LiBTbyB0
aGUgY2FzZXMKKyAgICAgICAgd2hlcmUgaXQgcmVmdXNlcyB0byBleGVjdXRlIHRoZSBzY3JpcHQg
YW5kIGxvZ3MgYSBtZXNzYWdlIGFyZSBoYW5kbGVkIGxpa2UgdGhvc2UKKyAgICAgICAgd2hlcmUg
aXQgZG9lcy4KKworICAgICAgICBJIHRoaW5rIHRoYXQgaXQgc2hvdWxkbid0IGJlIGEgYmlnIG9i
c3RhY2xlIGluIHByYWN0aWNlLCBpdCBpcyBlYXN5IGVub3VnaCB0byBmaW5kCisgICAgICAgIGEg
c2NyaXB0IGluIGEgcGFnZSB3aGVuIFdlYiBJbnNwZWN0b3IgdGVsbHMgeW91IHRoYXQgc2NyaXB0
cyB3ZXJlIG5vdCBhbGxvd2VkLgorCisgICAgICAgICogZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlm
cmFtZS1hdHRyaWJ1dGUtcGFyc2luZy0wNi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9m
cmFtZXMvc2FuZGJveGVkLWlmcmFtZS1hdHRyaWJ1dGUtcGFyc2luZy0wNy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1hdHRyaWJ1dGUtcGFyc2lu
Zy0wOC1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFt
ZS1hdHRyaWJ1dGUtcGFyc2luZy0wOS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9mcmFt
ZXMvc2FuZGJveGVkLWlmcmFtZS1hdHRyaWJ1dGUtcGFyc2luZy0xMC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1hdHRyaWJ1dGUtcGFyc2luZy0x
MS1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1h
dHRyaWJ1dGUtcGFyc2luZy0xMi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9mcmFtZXMv
c2FuZGJveGVkLWlmcmFtZS1hdHRyaWJ1dGUtcGFyc2luZy0xMy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICogZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1hdHRyaWJ1dGUtcGFyc2luZy0xNC1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1wYXJz
aW5nLXNwYWNlLWNoYXJhY3RlcnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvZnJhbWVz
L3NhbmRib3hlZC1pZnJhbWUtc2NyaXB0aW5nLTA0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zYW5kYm94LWVtcHR5LWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9zYW5kYm94LWVtcHR5LXN1YmZyYW1lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zYW5kYm94LWluLWh0dHAt
aGVhZGVyLWNvbnRyb2wtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NhbmRib3gtaW4taHR0cC1oZWFkZXItZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3NhbmRib3gtaW52YWxpZC1oZWFkZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVz
dHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9zYW5kYm94ZWQtaWZyYW1lLWV4cGVjdGVkLnR4dDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1zY3Jp
cHQtaW4taWZyYW1lLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L21peGVkQ29udGVudC9yZWRpcmVjdC1odHRwLXRvLWh0dHBzLXNjcmlwdC1pbi1pZnJhbWUtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvbm8tamF2YXNjcmlwdC1y
ZWZyZXNoLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L25vLWph
dmFzY3JpcHQtcmVmcmVzaC1zcGFjZXMtZXhwZWN0ZWQudHh0OgorCisgICAgICAgICogcGxhdGZv
cm0vZWZsL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBl
Y3RhdGlvbnM6CisgICAgICAgIFVubWFyayB0ZXN0cyB0aGF0IHdlcmUgYnJva2VuIGJ5IHRoaXMu
CisKIDIwMTUtMDEtMTYgIE1pY2hhZWwgU2Fib2ZmICA8bXNhYm9mZkBhcHBsZS5jb20+CiAKICAg
ICAgICAgUkVHUkVTU0lPTigxNzg1OTEpOiBqcy9zbG93LXN0cmVzcy9jYWxsLXNwcmVhZC5odG1s
ICYganMvc2xvdy1zdHJlc3MvbmV3LXNwcmVhZC5odG1sCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLWF0dHJpYnV0ZS1wYXJzaW5nLTA2LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1l
LWF0dHJpYnV0ZS1wYXJzaW5nLTA2LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTc4NjA0KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1hdHRyaWJ1dGUtcGFyc2lu
Zy0wNi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiBDT05TT0xF
IE1FU1NBR0U6IGxpbmUgOTogRXJyb3Igd2hpbGUgcGFyc2luZyB0aGUgJ3NhbmRib3gnIGF0dHJp
YnV0ZTogJ2FsbG93c2NyaXB0cycgaXMgYW4gaW52YWxpZCBzYW5kYm94IGZsYWcuCi1DT05TT0xF
IE1FU1NBR0U6IGxpbmUgNDogQmxvY2tlZCBzY3JpcHQgZXhlY3V0aW9uIGluICdzYW5kYm94ZWQt
aWZyYW1lLWF0dHJpYnV0ZS1wYXJzaW5nLWRpc2FsbG93ZWQuaHRtbCcgYmVjYXVzZSB0aGUgZG9j
dW1lbnQncyBmcmFtZSBpcyBzYW5kYm94ZWQgYW5kIHRoZSAnYWxsb3ctc2NyaXB0cycgcGVybWlz
c2lvbiBpcyBub3Qgc2V0LgorQ09OU09MRSBNRVNTQUdFOiBCbG9ja2VkIHNjcmlwdCBleGVjdXRp
b24gaW4gJ3NhbmRib3hlZC1pZnJhbWUtYXR0cmlidXRlLXBhcnNpbmctZGlzYWxsb3dlZC5odG1s
JyBiZWNhdXNlIHRoZSBkb2N1bWVudCdzIGZyYW1lIGlzIHNhbmRib3hlZCBhbmQgdGhlICdhbGxv
dy1zY3JpcHRzJyBwZXJtaXNzaW9uIGlzIG5vdCBzZXQuCiBNaXNzcGVsbGluZy4KIAogCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLWF0dHJpYnV0ZS1wYXJz
aW5nLTA3LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1l
cy9zYW5kYm94ZWQtaWZyYW1lLWF0dHJpYnV0ZS1wYXJzaW5nLTA3LWV4cGVjdGVkLnR4dAkocmV2
aXNpb24gMTc4NjA0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFt
ZS1hdHRyaWJ1dGUtcGFyc2luZy0wNy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgOTogRXJyb3Igd2hpbGUgcGFyc2luZyB0
aGUgJ3NhbmRib3gnIGF0dHJpYnV0ZTogJ2FsbG93cy1jcmlwdHMnIGlzIGFuIGludmFsaWQgc2Fu
ZGJveCBmbGFnLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ6IEJsb2NrZWQgc2NyaXB0IGV4ZWN1
dGlvbiBpbiAnc2FuZGJveGVkLWlmcmFtZS1hdHRyaWJ1dGUtcGFyc2luZy1kaXNhbGxvd2VkLmh0
bWwnIGJlY2F1c2UgdGhlIGRvY3VtZW50J3MgZnJhbWUgaXMgc2FuZGJveGVkIGFuZCB0aGUgJ2Fs
bG93LXNjcmlwdHMnIHBlcm1pc3Npb24gaXMgbm90IHNldC4KK0NPTlNPTEUgTUVTU0FHRTogQmxv
Y2tlZCBzY3JpcHQgZXhlY3V0aW9uIGluICdzYW5kYm94ZWQtaWZyYW1lLWF0dHJpYnV0ZS1wYXJz
aW5nLWRpc2FsbG93ZWQuaHRtbCcgYmVjYXVzZSB0aGUgZG9jdW1lbnQncyBmcmFtZSBpcyBzYW5k
Ym94ZWQgYW5kIHRoZSAnYWxsb3ctc2NyaXB0cycgcGVybWlzc2lvbiBpcyBub3Qgc2V0LgogTWlz
c3BlbGxpbmcuCiAKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlm
cmFtZS1hdHRyaWJ1dGUtcGFyc2luZy0wOC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1hdHRyaWJ1dGUtcGFyc2luZy0w
OC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE3ODYwNCkKKysrIExheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL3NhbmRib3hlZC1pZnJhbWUtYXR0cmlidXRlLXBhcnNpbmctMDgtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDk6IEVy
cm9yIHdoaWxlIHBhcnNpbmcgdGhlICdzYW5kYm94JyBhdHRyaWJ1dGU6ICctYWxsb3ctc2NyaXB0
cycgaXMgYW4gaW52YWxpZCBzYW5kYm94IGZsYWcuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDog
QmxvY2tlZCBzY3JpcHQgZXhlY3V0aW9uIGluICdzYW5kYm94ZWQtaWZyYW1lLWF0dHJpYnV0ZS1w
YXJzaW5nLWRpc2FsbG93ZWQuaHRtbCcgYmVjYXVzZSB0aGUgZG9jdW1lbnQncyBmcmFtZSBpcyBz
YW5kYm94ZWQgYW5kIHRoZSAnYWxsb3ctc2NyaXB0cycgcGVybWlzc2lvbiBpcyBub3Qgc2V0Lgor
Q09OU09MRSBNRVNTQUdFOiBCbG9ja2VkIHNjcmlwdCBleGVjdXRpb24gaW4gJ3NhbmRib3hlZC1p
ZnJhbWUtYXR0cmlidXRlLXBhcnNpbmctZGlzYWxsb3dlZC5odG1sJyBiZWNhdXNlIHRoZSBkb2N1
bWVudCdzIGZyYW1lIGlzIHNhbmRib3hlZCBhbmQgdGhlICdhbGxvdy1zY3JpcHRzJyBwZXJtaXNz
aW9uIGlzIG5vdCBzZXQuCiBNaXNzcGVsbGluZy4KIAogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLWF0dHJpYnV0ZS1wYXJzaW5nLTA5LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1l
LWF0dHJpYnV0ZS1wYXJzaW5nLTA5LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTc4NjA0KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1hdHRyaWJ1dGUtcGFyc2lu
Zy0wOS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiBDT05TT0xF
IE1FU1NBR0U6IGxpbmUgOTogRXJyb3Igd2hpbGUgcGFyc2luZyB0aGUgJ3NhbmRib3gnIGF0dHJp
YnV0ZTogJ2FsbG93X3NjcmlwdHMnIGlzIGFuIGludmFsaWQgc2FuZGJveCBmbGFnLgotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDQ6IEJsb2NrZWQgc2NyaXB0IGV4ZWN1dGlvbiBpbiAnc2FuZGJveGVk
LWlmcmFtZS1hdHRyaWJ1dGUtcGFyc2luZy1kaXNhbGxvd2VkLmh0bWwnIGJlY2F1c2UgdGhlIGRv
Y3VtZW50J3MgZnJhbWUgaXMgc2FuZGJveGVkIGFuZCB0aGUgJ2FsbG93LXNjcmlwdHMnIHBlcm1p
c3Npb24gaXMgbm90IHNldC4KK0NPTlNPTEUgTUVTU0FHRTogQmxvY2tlZCBzY3JpcHQgZXhlY3V0
aW9uIGluICdzYW5kYm94ZWQtaWZyYW1lLWF0dHJpYnV0ZS1wYXJzaW5nLWRpc2FsbG93ZWQuaHRt
bCcgYmVjYXVzZSB0aGUgZG9jdW1lbnQncyBmcmFtZSBpcyBzYW5kYm94ZWQgYW5kIHRoZSAnYWxs
b3ctc2NyaXB0cycgcGVybWlzc2lvbiBpcyBub3Qgc2V0LgogTWlzc3BlbGxpbmcuCiAKIApJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1hdHRyaWJ1dGUtcGFy
c2luZy0xMC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mcmFt
ZXMvc2FuZGJveGVkLWlmcmFtZS1hdHRyaWJ1dGUtcGFyc2luZy0xMC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDE3ODYwNCkKKysrIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NhbmRib3hlZC1pZnJh
bWUtYXR0cmlidXRlLXBhcnNpbmctMTAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDk6IEVycm9yIHdoaWxlIHBhcnNpbmcg
dGhlICdzYW5kYm94JyBhdHRyaWJ1dGU6ICdhbGxvd1NjcmlwdHMnIGlzIGFuIGludmFsaWQgc2Fu
ZGJveCBmbGFnLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDQ6IEJsb2NrZWQgc2NyaXB0IGV4ZWN1
dGlvbiBpbiAnc2FuZGJveGVkLWlmcmFtZS1hdHRyaWJ1dGUtcGFyc2luZy1kaXNhbGxvd2VkLmh0
bWwnIGJlY2F1c2UgdGhlIGRvY3VtZW50J3MgZnJhbWUgaXMgc2FuZGJveGVkIGFuZCB0aGUgJ2Fs
bG93LXNjcmlwdHMnIHBlcm1pc3Npb24gaXMgbm90IHNldC4KK0NPTlNPTEUgTUVTU0FHRTogQmxv
Y2tlZCBzY3JpcHQgZXhlY3V0aW9uIGluICdzYW5kYm94ZWQtaWZyYW1lLWF0dHJpYnV0ZS1wYXJz
aW5nLWRpc2FsbG93ZWQuaHRtbCcgYmVjYXVzZSB0aGUgZG9jdW1lbnQncyBmcmFtZSBpcyBzYW5k
Ym94ZWQgYW5kIHRoZSAnYWxsb3ctc2NyaXB0cycgcGVybWlzc2lvbiBpcyBub3Qgc2V0LgogTWlz
c3BlbGxpbmcuCiAKIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlm
cmFtZS1hdHRyaWJ1dGUtcGFyc2luZy0xMS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1hdHRyaWJ1dGUtcGFyc2luZy0x
MS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE3ODYwNCkKKysrIExheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL3NhbmRib3hlZC1pZnJhbWUtYXR0cmlidXRlLXBhcnNpbmctMTEtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogQ09OU09MRSBNRVNTQUdFOiBsaW5lIDk6IEVy
cm9yIHdoaWxlIHBhcnNpbmcgdGhlICdzYW5kYm94JyBhdHRyaWJ1dGU6ICdhYWxsb3ctc2NyaXB0
cycgaXMgYW4gaW52YWxpZCBzYW5kYm94IGZsYWcuCi1DT05TT0xFIE1FU1NBR0U6IGxpbmUgNDog
QmxvY2tlZCBzY3JpcHQgZXhlY3V0aW9uIGluICdzYW5kYm94ZWQtaWZyYW1lLWF0dHJpYnV0ZS1w
YXJzaW5nLWRpc2FsbG93ZWQuaHRtbCcgYmVjYXVzZSB0aGUgZG9jdW1lbnQncyBmcmFtZSBpcyBz
YW5kYm94ZWQgYW5kIHRoZSAnYWxsb3ctc2NyaXB0cycgcGVybWlzc2lvbiBpcyBub3Qgc2V0Lgor
Q09OU09MRSBNRVNTQUdFOiBCbG9ja2VkIHNjcmlwdCBleGVjdXRpb24gaW4gJ3NhbmRib3hlZC1p
ZnJhbWUtYXR0cmlidXRlLXBhcnNpbmctZGlzYWxsb3dlZC5odG1sJyBiZWNhdXNlIHRoZSBkb2N1
bWVudCdzIGZyYW1lIGlzIHNhbmRib3hlZCBhbmQgdGhlICdhbGxvdy1zY3JpcHRzJyBwZXJtaXNz
aW9uIGlzIG5vdCBzZXQuCiBNaXNzcGVsbGluZy4KIAogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLWF0dHJpYnV0ZS1wYXJzaW5nLTEyLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1l
LWF0dHJpYnV0ZS1wYXJzaW5nLTEyLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTc4NjA0KQorKysg
TGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFtZS1hdHRyaWJ1dGUtcGFyc2lu
Zy0xMi1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNSArMSw1IEBACiBDT05TT0xF
IE1FU1NBR0U6IGxpbmUgOTogRXJyb3Igd2hpbGUgcGFyc2luZyB0aGUgJ3NhbmRib3gnIGF0dHJp
YnV0ZTogJ2FsbG93LXNjcmlwdHNzJyBpcyBhbiBpbnZhbGlkIHNhbmRib3ggZmxhZy4KLUNPTlNP
TEUgTUVTU0FHRTogbGluZSA0OiBCbG9ja2VkIHNjcmlwdCBleGVjdXRpb24gaW4gJ3NhbmRib3hl
ZC1pZnJhbWUtYXR0cmlidXRlLXBhcnNpbmctZGlzYWxsb3dlZC5odG1sJyBiZWNhdXNlIHRoZSBk
b2N1bWVudCdzIGZyYW1lIGlzIHNhbmRib3hlZCBhbmQgdGhlICdhbGxvdy1zY3JpcHRzJyBwZXJt
aXNzaW9uIGlzIG5vdCBzZXQuCitDT05TT0xFIE1FU1NBR0U6IEJsb2NrZWQgc2NyaXB0IGV4ZWN1
dGlvbiBpbiAnc2FuZGJveGVkLWlmcmFtZS1hdHRyaWJ1dGUtcGFyc2luZy1kaXNhbGxvd2VkLmh0
bWwnIGJlY2F1c2UgdGhlIGRvY3VtZW50J3MgZnJhbWUgaXMgc2FuZGJveGVkIGFuZCB0aGUgJ2Fs
bG93LXNjcmlwdHMnIHBlcm1pc3Npb24gaXMgbm90IHNldC4KIE1pc3NwZWxsaW5nLgogCiAKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NhbmRib3hlZC1pZnJhbWUtYXR0cmlidXRlLXBh
cnNpbmctMTMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL3NhbmRib3hlZC1pZnJhbWUtYXR0cmlidXRlLXBhcnNpbmctMTMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAxNzg2MDQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZy
YW1lLWF0dHJpYnV0ZS1wYXJzaW5nLTEzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MSw1ICsxLDUgQEAKIENPTlNPTEUgTUVTU0FHRTogbGluZSA5OiBFcnJvciB3aGlsZSBwYXJzaW5n
IHRoZSAnc2FuZGJveCcgYXR0cmlidXRlOiAnYWxsb3ctc2NyaXB0JyBpcyBhbiBpbnZhbGlkIHNh
bmRib3ggZmxhZy4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0OiBCbG9ja2VkIHNjcmlwdCBleGVj
dXRpb24gaW4gJ3NhbmRib3hlZC1pZnJhbWUtYXR0cmlidXRlLXBhcnNpbmctZGlzYWxsb3dlZC5o
dG1sJyBiZWNhdXNlIHRoZSBkb2N1bWVudCdzIGZyYW1lIGlzIHNhbmRib3hlZCBhbmQgdGhlICdh
bGxvdy1zY3JpcHRzJyBwZXJtaXNzaW9uIGlzIG5vdCBzZXQuCitDT05TT0xFIE1FU1NBR0U6IEJs
b2NrZWQgc2NyaXB0IGV4ZWN1dGlvbiBpbiAnc2FuZGJveGVkLWlmcmFtZS1hdHRyaWJ1dGUtcGFy
c2luZy1kaXNhbGxvd2VkLmh0bWwnIGJlY2F1c2UgdGhlIGRvY3VtZW50J3MgZnJhbWUgaXMgc2Fu
ZGJveGVkIGFuZCB0aGUgJ2FsbG93LXNjcmlwdHMnIHBlcm1pc3Npb24gaXMgbm90IHNldC4KIE1p
c3NwZWxsaW5nLgogCiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NhbmRib3hlZC1p
ZnJhbWUtYXR0cmlidXRlLXBhcnNpbmctMTQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZnJhbWVzL3NhbmRib3hlZC1pZnJhbWUtYXR0cmlidXRlLXBhcnNpbmct
MTQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNzg2MDQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9zYW5kYm94ZWQtaWZyYW1lLWF0dHJpYnV0ZS1wYXJzaW5nLTE0LWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLUNPTlNPTEUgTUVTU0FHRTogbGluZSA0OiBC
bG9ja2VkIHNjcmlwdCBleGVjdXRpb24gaW4gJ3NhbmRib3hlZC1pZnJhbWUtYXR0cmlidXRlLXBh
cnNpbmctZGlzYWxsb3dlZC5odG1sJyBiZWNhdXNlIHRoZSBkb2N1bWVudCdzIGZyYW1lIGlzIHNh
bmRib3hlZCBhbmQgdGhlICdhbGxvdy1zY3JpcHRzJyBwZXJtaXNzaW9uIGlzIG5vdCBzZXQuCitD
T05TT0xFIE1FU1NBR0U6IEJsb2NrZWQgc2NyaXB0IGV4ZWN1dGlvbiBpbiAnc2FuZGJveGVkLWlm
cmFtZS1hdHRyaWJ1dGUtcGFyc2luZy1kaXNhbGxvd2VkLmh0bWwnIGJlY2F1c2UgdGhlIGRvY3Vt
ZW50J3MgZnJhbWUgaXMgc2FuZGJveGVkIGFuZCB0aGUgJ2FsbG93LXNjcmlwdHMnIHBlcm1pc3Np
b24gaXMgbm90IHNldC4KIEZ1bGwgc2FuZGJveC4KIAogCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLXBhcnNpbmctc3BhY2UtY2hhcmFjdGVycy1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlm
cmFtZS1wYXJzaW5nLXNwYWNlLWNoYXJhY3RlcnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNzg2
MDQpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLXBhcnNpbmct
c3BhY2UtY2hhcmFjdGVycy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzEs
MTAgQEAKIEFMRVJUOiBQQVNTOiBGb3JtIGZlZWQgaXMgYSBkZWxpbWl0ZXIuCiBDT05TT0xFIE1F
U1NBR0U6IGxpbmUgMTY6IEVycm9yIHdoaWxlIHBhcnNpbmcgdGhlICdzYW5kYm94JyBhdHRyaWJ1
dGU6ICdhbGxvdy1zY3JpcHRzC2FsbG93LWZvcm1zJyBpcyBhbiBpbnZhbGlkIHNhbmRib3ggZmxh
Zy4KLUNPTlNPTEUgTUVTU0FHRTogbGluZSAxOiBCbG9ja2VkIHNjcmlwdCBleGVjdXRpb24gaW4g
J2RhdGE6dGV4dC9odG1sLDxzY3JpcHQ+YWxlcnQoJ0ZBSUw6IFZlcnRpY2FsIHRhYiBpcyBub3Qg
YSBkZWxpbWl0ZXIuJyk7PC9zY3JpcHQ+JyBiZWNhdXNlIHRoZSBkb2N1bWVudCdzIGZyYW1lIGlz
IHNhbmRib3hlZCBhbmQgdGhlICdhbGxvdy1zY3JpcHRzJyBwZXJtaXNzaW9uIGlzIG5vdCBzZXQu
CitDT05TT0xFIE1FU1NBR0U6IEJsb2NrZWQgc2NyaXB0IGV4ZWN1dGlvbiBpbiAnZGF0YTp0ZXh0
L2h0bWwsPHNjcmlwdD5hbGVydCgnRkFJTDogVmVydGljYWwgdGFiIGlzIG5vdCBhIGRlbGltaXRl
ci4nKTs8L3NjcmlwdD4nIGJlY2F1c2UgdGhlIGRvY3VtZW50J3MgZnJhbWUgaXMgc2FuZGJveGVk
IGFuZCB0aGUgJ2FsbG93LXNjcmlwdHMnIHBlcm1pc3Npb24gaXMgbm90IHNldC4KIEFMRVJUOiBQ
QVNTOiBOZXdsaW5lIGlzIGEgZGVsaW1pdGVyLgogQUxFUlQ6IFBBU1M6IFJldHVybiBpcyBhIGRl
bGltaXRlci4KIENPTlNPTEUgTUVTU0FHRTogbGluZSAxNjogRXJyb3Igd2hpbGUgcGFyc2luZyB0
aGUgJ3NhbmRib3gnIGF0dHJpYnV0ZTogJ2FsbG93LXNjcmlwdHN4YWxsb3ctZm9ybXMnIGlzIGFu
IGludmFsaWQgc2FuZGJveCBmbGFnLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IEJsb2NrZWQg
c2NyaXB0IGV4ZWN1dGlvbiBpbiAnZGF0YTp0ZXh0L2h0bWwsPHNjcmlwdD5hbGVydCgnRkFJTDog
eCBpcyBub3QgYSBkZWxpbWl0ZXIuJyk7PC9zY3JpcHQ+JyBiZWNhdXNlIHRoZSBkb2N1bWVudCdz
IGZyYW1lIGlzIHNhbmRib3hlZCBhbmQgdGhlICdhbGxvdy1zY3JpcHRzJyBwZXJtaXNzaW9uIGlz
IG5vdCBzZXQuCitDT05TT0xFIE1FU1NBR0U6IEJsb2NrZWQgc2NyaXB0IGV4ZWN1dGlvbiBpbiAn
ZGF0YTp0ZXh0L2h0bWwsPHNjcmlwdD5hbGVydCgnRkFJTDogeCBpcyBub3QgYSBkZWxpbWl0ZXIu
Jyk7PC9zY3JpcHQ+JyBiZWNhdXNlIHRoZSBkb2N1bWVudCdzIGZyYW1lIGlzIHNhbmRib3hlZCBh
bmQgdGhlICdhbGxvdy1zY3JpcHRzJyBwZXJtaXNzaW9uIGlzIG5vdCBzZXQuCiBBTEVSVDogUEFT
UzogVGFiIGlzIGEgZGVsaW1pdGVyLgogQUxFUlQ6IFBBU1M6IFNwYWNlIGlzIGEgZGVsaW1pdGVy
IGNoYXJhY3Rlci4KIFRoaXMgdGVzdHMgd2hldGhlciB3ZSBjb3JyZWN0IHBhcnNlIHZhcmlvdXMg
c3BhY2UgY2hhcmFjdGVycyBpbiB0aGUgc2FuZGJveCBhdHRyaWJ1dGUuCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLXNjcmlwdGluZy0wNC1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvc2FuZGJveGVkLWlmcmFt
ZS1zY3JpcHRpbmctMDQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNzg2MDQpCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2ZyYW1lcy9zYW5kYm94ZWQtaWZyYW1lLXNjcmlwdGluZy0wNC1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0IEBACi1DT05TT0xFIE1FU1NBR0U6IGxpbmUg
MTogQmxvY2tlZCBzY3JpcHQgZXhlY3V0aW9uIGluICdkYXRhOnRleHQvaHRtbCw8c2NyaXB0PmFs
ZXJ0KCdGQUlMOiBFeGVjdXRlZCBzY3JpcHQgd2l0aG91dCBhbGxvdy1zY3JpcHRzIGluIGRhdGEg
VVJMJyk7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7J2ZhaWwnOiB0cnVlfSwgJyonKTs8L3Nj
cmlwdD4nIGJlY2F1c2UgdGhlIGRvY3VtZW50J3MgZnJhbWUgaXMgc2FuZGJveGVkIGFuZCB0aGUg
J2FsbG93LXNjcmlwdHMnIHBlcm1pc3Npb24gaXMgbm90IHNldC4KK0NPTlNPTEUgTUVTU0FHRTog
QmxvY2tlZCBzY3JpcHQgZXhlY3V0aW9uIGluICdkYXRhOnRleHQvaHRtbCw8c2NyaXB0PmFsZXJ0
KCdGQUlMOiBFeGVjdXRlZCBzY3JpcHQgd2l0aG91dCBhbGxvdy1zY3JpcHRzIGluIGRhdGEgVVJM
Jyk7d2luZG93LnBhcmVudC5wb3N0TWVzc2FnZSh7J2ZhaWwnOiB0cnVlfSwgJyonKTs8L3Njcmlw
dD4nIGJlY2F1c2UgdGhlIGRvY3VtZW50J3MgZnJhbWUgaXMgc2FuZGJveGVkIGFuZCB0aGUgJ2Fs
bG93LXNjcmlwdHMnIHBlcm1pc3Npb24gaXMgbm90IHNldC4KIFZlcmlmeSB0aGF0IHNhbmRib3hl
ZCBmcmFtZXMgd2l0aG91dCBzYW5kYm94PSdhbGxvdy1zY3JpcHRzJyBjYW5ub3QgZXhlY3V0ZSBz
Y3JpcHQgZnJvbSBkYXRhOiBVUkxzLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCkluZGV4
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25vLWphdmFzY3JpcHQtcmVmcmVzaC1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9uby1qYXZhc2NyaXB0LXJlZnJlc2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNzg2MDQpCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25vLWphdmFzY3JpcHQtcmVmcmVzaC1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMiArMSwyIEBACi1DT05TT0xFIE1FU1NB
R0U6IGxpbmUgMTogUmVmdXNlZCB0byByZWZyZXNoIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1
cml0eS9uby1qYXZhc2NyaXB0LXJlZnJlc2gucGhwIHRvIGEgamF2YXNjcmlwdDogVVJMCitDT05T
T0xFIE1FU1NBR0U6IFJlZnVzZWQgdG8gcmVmcmVzaCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2Vj
dXJpdHkvbm8tamF2YXNjcmlwdC1yZWZyZXNoLnBocCB0byBhIGphdmFzY3JpcHQ6IFVSTAogUEFT
UzogVGhpcyBpcyB0aGUgY29udGVudCB0aGF0IGFwcGVhcnMgaW4gcGxhY2Ugb2YgYSByZWZyZXNo
LgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9uby1qYXZhc2NyaXB0LXJl
ZnJlc2gtc3BhY2VzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L25vLWphdmFzY3JpcHQtcmVmcmVzaC1zcGFjZXMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAxNzg2MDQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L25v
LWphdmFzY3JpcHQtcmVmcmVzaC1zcGFjZXMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0xLDIgKzEsMiBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDE6IFJlZnVzZWQgdG8gcmVmcmVz
aCBodHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvbm8tamF2YXNjcmlwdC1yZWZyZXNoLXNw
YWNlcy5waHAgdG8gYSBqYXZhc2NyaXB0OiBVUkwKK0NPTlNPTEUgTUVTU0FHRTogUmVmdXNlZCB0
byByZWZyZXNoIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9uby1qYXZhc2NyaXB0LXJl
ZnJlc2gtc3BhY2VzLnBocCB0byBhIGphdmFzY3JpcHQ6IFVSTAogUEFTUzogVGhpcyBpcyB0aGUg
Y29udGVudCB0aGF0IGFwcGVhcnMgaW4gcGxhY2Ugb2YgYSByZWZyZXNoLgpJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc2FuZGJveC1l
bXB0eS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc2FuZGJveC1lbXB0eS1leHBlY3RlZC50eHQJ
KHJldmlzaW9uIDE3ODYwNCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29u
dGVudFNlY3VyaXR5UG9saWN5L3NhbmRib3gtZW1wdHktZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0xLDIgKzEsMiBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDk6IEJsb2NrZWQgc2Ny
aXB0IGV4ZWN1dGlvbiBpbiAnaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS9zYW5kYm94LWVtcHR5Lmh0bWwnIGJlY2F1c2UgdGhlIGRvY3VtZW50J3Mg
ZnJhbWUgaXMgc2FuZGJveGVkIGFuZCB0aGUgJ2FsbG93LXNjcmlwdHMnIHBlcm1pc3Npb24gaXMg
bm90IHNldC4KK0NPTlNPTEUgTUVTU0FHRTogQmxvY2tlZCBzY3JpcHQgZXhlY3V0aW9uIGluICdo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NhbmRi
b3gtZW1wdHkuaHRtbCcgYmVjYXVzZSB0aGUgZG9jdW1lbnQncyBmcmFtZSBpcyBzYW5kYm94ZWQg
YW5kIHRoZSAnYWxsb3ctc2NyaXB0cycgcGVybWlzc2lvbiBpcyBub3Qgc2V0LgogVGhpcyB0ZXN0
IHBhc3NlcyBpZiBpdCBkb2Vzbid0IGFsZXJ0IGZhaWwuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zYW5kYm94LWVtcHR5LXN1YmZy
YW1lLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zYW5kYm94LWVtcHR5LXN1YmZyYW1lLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMTc4NjA0KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvc2FuZGJveC1lbXB0eS1zdWJmcmFtZS1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMiArMSwyIEBACi1DT05TT0xFIE1FU1NBR0U6IGxp
bmUgMTogQmxvY2tlZCBzY3JpcHQgZXhlY3V0aW9uIGluICdkYXRhOnRleHQvaHRtbCw8c2NyaXB0
PmFsZXJ0KCdGQUlMJyk7PC9zY3JpcHQ+JyBiZWNhdXNlIHRoZSBkb2N1bWVudCdzIGZyYW1lIGlz
IHNhbmRib3hlZCBhbmQgdGhlICdhbGxvdy1zY3JpcHRzJyBwZXJtaXNzaW9uIGlzIG5vdCBzZXQu
CitDT05TT0xFIE1FU1NBR0U6IEJsb2NrZWQgc2NyaXB0IGV4ZWN1dGlvbiBpbiAnZGF0YTp0ZXh0
L2h0bWwsPHNjcmlwdD5hbGVydCgnRkFJTCcpOzwvc2NyaXB0PicgYmVjYXVzZSB0aGUgZG9jdW1l
bnQncyBmcmFtZSBpcyBzYW5kYm94ZWQgYW5kIHRoZSAnYWxsb3ctc2NyaXB0cycgcGVybWlzc2lv
biBpcyBub3Qgc2V0LgogVGhpcyB0ZXN0IHBhc3NlcyBpZiBpdCBkb2Vzbid0IGFsZXJ0IGZhaWwu
IApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvc2FuZGJveC1pbi1odHRwLWhlYWRlci1jb250cm9sLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9zYW5kYm94LWluLWh0dHAtaGVhZGVyLWNvbnRyb2wtZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxNzg2MDQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1
cml0eVBvbGljeS9zYW5kYm94LWluLWh0dHAtaGVhZGVyLWNvbnRyb2wtZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMyBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY6IEJs
b2NrZWQgc2NyaXB0IGV4ZWN1dGlvbiBpbiAnaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvc2FuZGJveC5waHA/c2FuZGJveD1hbGxv
dy10b3AtbmF2aWdhdGlvbiUyMGFsbG93LXNhbWUtb3JpZ2luJyBiZWNhdXNlIHRoZSBkb2N1bWVu
dCdzIGZyYW1lIGlzIHNhbmRib3hlZCBhbmQgdGhlICdhbGxvdy1zY3JpcHRzJyBwZXJtaXNzaW9u
IGlzIG5vdCBzZXQuCitDT05TT0xFIE1FU1NBR0U6IEJsb2NrZWQgc2NyaXB0IGV4ZWN1dGlvbiBp
biAnaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9y
ZXNvdXJjZXMvc2FuZGJveC5waHA/c2FuZGJveD1hbGxvdy10b3AtbmF2aWdhdGlvbiUyMGFsbG93
LXNhbWUtb3JpZ2luJyBiZWNhdXNlIHRoZSBkb2N1bWVudCdzIGZyYW1lIGlzIHNhbmRib3hlZCBh
bmQgdGhlICdhbGxvdy1zY3JpcHRzJyBwZXJtaXNzaW9uIGlzIG5vdCBzZXQuCiBBTEVSVDogUEFT
UzogSWZyYW1lIHdhcyBub3QgaW4gYSB1bmlxdWUgb3JpZ2luCiAKSW5kZXg6IExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NhbmRib3gtaW4taHR0
cC1oZWFkZXItZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3NhbmRib3gtaW4taHR0cC1oZWFkZXIt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNzg2MDQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9zYW5kYm94LWluLWh0dHAtaGVhZGVyLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSA2OiBCbG9ja2VkIHNjcmlwdCBleGVjdXRpb24gaW4gJ2h0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3NhbmRib3gucGhw
P3NhbmRib3g9YWxsb3ctdG9wLW5hdmlnYXRpb24nIGJlY2F1c2UgdGhlIGRvY3VtZW50J3MgZnJh
bWUgaXMgc2FuZGJveGVkIGFuZCB0aGUgJ2FsbG93LXNjcmlwdHMnIHBlcm1pc3Npb24gaXMgbm90
IHNldC4KK0NPTlNPTEUgTUVTU0FHRTogQmxvY2tlZCBzY3JpcHQgZXhlY3V0aW9uIGluICdodHRw
Oi8vMTI3LjAuMC4xOjgwMDAvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Jlc291cmNl
cy9zYW5kYm94LnBocD9zYW5kYm94PWFsbG93LXRvcC1uYXZpZ2F0aW9uJyBiZWNhdXNlIHRoZSBk
b2N1bWVudCdzIGZyYW1lIGlzIHNhbmRib3hlZCBhbmQgdGhlICdhbGxvdy1zY3JpcHRzJyBwZXJt
aXNzaW9uIGlzIG5vdCBzZXQuCiBDT05TT0xFIE1FU1NBR0U6IGxpbmUgOTogU2FuZGJveCBhY2Nl
c3MgdmlvbGF0aW9uOiBCbG9ja2VkIGEgZnJhbWUgYXQgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIg
ZnJvbSBhY2Nlc3NpbmcgYSBmcmFtZSBhdCAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIi4gIFRoZSBm
cmFtZSBiZWluZyBhY2Nlc3NlZCBpcyBzYW5kYm94ZWQgYW5kIGxhY2tzIHRoZSAiYWxsb3ctc2Ft
ZS1vcmlnaW4iIGZsYWcuCiBBTEVSVDogUEFTUzogSWZyYW1lIHdhcyBpbiBhIHVuaXF1ZSBvcmln
aW4KIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJp
dHlQb2xpY3kvc2FuZGJveC1pbnZhbGlkLWhlYWRlci1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
c2FuZGJveC1pbnZhbGlkLWhlYWRlci1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE3ODYwNCkKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3Nh
bmRib3gtaW52YWxpZC1oZWFkZXItZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMg
KzEsMyBAQAogQ09OU09MRSBNRVNTQUdFOiBFcnJvciB3aGlsZSBwYXJzaW5nIHRoZSAnc2FuZGJv
eCcgQ29udGVudCBTZWN1cml0eSBQb2xpY3kgZGlyZWN0aXZlOiAnYWxsb3dTY3JpcHQnIGlzIGFu
IGludmFsaWQgc2FuZGJveCBmbGFnLgotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDY6IEJsb2NrZWQg
c2NyaXB0IGV4ZWN1dGlvbiBpbiAnaHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9yZXNvdXJjZXMvc2FuZGJveC5waHA/c2FuZGJveD1hbGxvd1Njcmlw
dCcgYmVjYXVzZSB0aGUgZG9jdW1lbnQncyBmcmFtZSBpcyBzYW5kYm94ZWQgYW5kIHRoZSAnYWxs
b3ctc2NyaXB0cycgcGVybWlzc2lvbiBpcyBub3Qgc2V0LgorQ09OU09MRSBNRVNTQUdFOiBCbG9j
a2VkIHNjcmlwdCBleGVjdXRpb24gaW4gJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kvcmVzb3VyY2VzL3NhbmRib3gucGhwP3NhbmRib3g9YWxsb3dT
Y3JpcHQnIGJlY2F1c2UgdGhlIGRvY3VtZW50J3MgZnJhbWUgaXMgc2FuZGJveGVkIGFuZCB0aGUg
J2FsbG93LXNjcmlwdHMnIHBlcm1pc3Npb24gaXMgbm90IHNldC4KIApJbmRleDogTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3NhbmRib3hlZC1pZnJhbWUtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
aXNvbGF0ZWRXb3JsZC9zYW5kYm94ZWQtaWZyYW1lLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTc4
NjA0KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL3Nh
bmRib3hlZC1pZnJhbWUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBA
QAotQ09OU09MRSBNRVNTQUdFOiBsaW5lIDM6IEJsb2NrZWQgc2NyaXB0IGV4ZWN1dGlvbiBpbiAn
aHR0cDovLzEyNy4wLjAuMTo4MDAwL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvcmVzb3VyY2VzL2Zh
aWwuaHRtbCcgYmVjYXVzZSB0aGUgZG9jdW1lbnQncyBmcmFtZSBpcyBzYW5kYm94ZWQgYW5kIHRo
ZSAnYWxsb3ctc2NyaXB0cycgcGVybWlzc2lvbiBpcyBub3Qgc2V0LgorQ09OU09MRSBNRVNTQUdF
OiBCbG9ja2VkIHNjcmlwdCBleGVjdXRpb24gaW4gJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMC9zZWN1
cml0eS9pc29sYXRlZFdvcmxkL3Jlc291cmNlcy9mYWlsLmh0bWwnIGJlY2F1c2UgdGhlIGRvY3Vt
ZW50J3MgZnJhbWUgaXMgc2FuZGJveGVkIGFuZCB0aGUgJ2FsbG93LXNjcmlwdHMnIHBlcm1pc3Np
b24gaXMgbm90IHNldC4KIEFMRVJUOiBQQVNTCiBUZXN0IHRoYXQgZXhlY3V0aW5nIHNjcmlwdHMg
aW4gYW4gaXNvbGF0ZWQgd29ybGQgd29ya3MgZXZlbiBpbnNpZGUgc2FuZGJveGVkIGlmcmFtZXMu
IFRoZSB0ZXN0IHBhc3NlcywgaWYgYW4gYWxlcnQgd2l0aCB0aGUgdGV4dCAiUEFTUyIgaXMgc2hv
d24uCiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50
L2luc2VjdXJlLXNjcmlwdC1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXNjcmlw
dC1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxNzg2MDQpCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1zY3JpcHQtaW4taWZy
YW1lLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKLUNPTlNPTEUg
TUVTU0FHRTogbGluZSAxOiBUaGUgcGFnZSBhdCBodHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3Vy
aXR5L21peGVkQ29udGVudC9yZXNvdXJjZXMvZnJhbWUtd2l0aC1pbnNlY3VyZS1zY3JpcHQuaHRt
bCByYW4gaW5zZWN1cmUgY29udGVudCBmcm9tIGh0dHA6Ly8xMjcuMC4wLjE6ODA4MC9zZWN1cml0
eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL3NjcmlwdC5qcy4KK0NPTlNPTEUgTUVTU0FHRTogVGhl
IHBhZ2UgYXQgaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVz
b3VyY2VzL2ZyYW1lLXdpdGgtaW5zZWN1cmUtc2NyaXB0Lmh0bWwgcmFuIGluc2VjdXJlIGNvbnRl
bnQgZnJvbSBodHRwOi8vMTI3LjAuMC4xOjgwODAvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3Jlc291
cmNlcy9zY3JpcHQuanMuCiAKIFRoaXMgdGVzdCBsb2FkcyBhIHNlY3VyZSBpZnJhbWUgdGhhdCBs
b2FkcyBhbiBpbnNlY3VyZSBzY3JpcHQuIFdlIHNob3VsZCB0cmlnZ2VyIGEgbWl4ZWQgY29udGVu
dCBjYWxsYmFjayBldmVuIHRob3VnaCB0aGUgbWFpbiBmcmFtZSBpcyBIVFRQIGJlY2F1c2UgdGhl
IEhUVFBTIGZyYW1lJ3Mgb3JpZ2luIGlzIGNvbnRhbWluYXRlZCB3aXRoIGFuIGluc2VjdXJlIHNj
cmlwdC4KIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRl
bnQvcmVkaXJlY3QtaHR0cC10by1odHRwcy1zY3JpcHQtaW4taWZyYW1lLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVu
dC9yZWRpcmVjdC1odHRwLXRvLWh0dHBzLXNjcmlwdC1pbi1pZnJhbWUtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAxNzg2MDQpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVk
Q29udGVudC9yZWRpcmVjdC1odHRwLXRvLWh0dHBzLXNjcmlwdC1pbi1pZnJhbWUtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogZnJhbWUgIjwhLS1mcmFtZVBhdGgg
Ly88IS0tZnJhbWUwLS0+LS0+IiAtIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWUKIG1h
aW4gZnJhbWUgLSBkaWRGaW5pc2hEb2N1bWVudExvYWRGb3JGcmFtZQogZnJhbWUgIjwhLS1mcmFt
ZVBhdGggLy88IS0tZnJhbWUwLS0+LS0+IiAtIGRpZENvbW1pdExvYWRGb3JGcmFtZQotQ09OU09M
RSBNRVNTQUdFOiBsaW5lIDE6IFRoZSBwYWdlIGF0IGh0dHBzOi8vMTI3LjAuMC4xOjg0NDMvc2Vj
dXJpdHkvbWl4ZWRDb250ZW50L3Jlc291cmNlcy9mcmFtZS13aXRoLXJlZGlyZWN0LWh0dHAtdG8t
aHR0cHMtc2NyaXB0Lmh0bWwgcmFuIGluc2VjdXJlIGNvbnRlbnQgZnJvbSBodHRwOi8vMTI3LjAu
MC4xOjgwODAvcmVzb3VyY2VzL3JlZGlyZWN0LnBocD91cmw9aHR0cHM6Ly8xMjcuMC4wLjE6ODQ0
My9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVzb3VyY2VzL3NjcmlwdC5qcy4KK0NPTlNPTEUgTUVT
U0FHRTogVGhlIHBhZ2UgYXQgaHR0cHM6Ly8xMjcuMC4wLjE6ODQ0My9zZWN1cml0eS9taXhlZENv
bnRlbnQvcmVzb3VyY2VzL2ZyYW1lLXdpdGgtcmVkaXJlY3QtaHR0cC10by1odHRwcy1zY3JpcHQu
aHRtbCByYW4gaW5zZWN1cmUgY29udGVudCBmcm9tIGh0dHA6Ly8xMjcuMC4wLjE6ODA4MC9yZXNv
dXJjZXMvcmVkaXJlY3QucGhwP3VybD1odHRwczovLzEyNy4wLjAuMTo4NDQzL3NlY3VyaXR5L21p
eGVkQ29udGVudC9yZXNvdXJjZXMvc2NyaXB0LmpzLgogCiBkaWRSdW5JbnNlY3VyZUNvbnRlbnQK
IGZyYW1lICI8IS0tZnJhbWVQYXRoIC8vPCEtLWZyYW1lMC0tPi0tPiIgLSBkaWRGaW5pc2hEb2N1
bWVudExvYWRGb3JGcmFtZQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBl
Y3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1Rlc3RFeHBl
Y3RhdGlvbnMJKHJldmlzaW9uIDE3ODYwNCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9U
ZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC02OTAsMTMgKzY5MCw2IEBAIHdlYmtp
dC5vcmcvYi80OTE4MiBhbmltYXRpb25zL3N0b3AtYW5pbWEKIAogd2Via2l0Lm9yZy9iLzEwMzM4
MyBmYXN0L2Nzcy9jb3VudGVycy9lbGVtZW50LXJlbW92YWwtY3Jhc2gueGh0bWwgWyBGYWlsdXJl
IFBhc3MgXQogCi0jIGZsYWt5IGNvbnNvbGUgb3V0cHV0IHByb2JsZW0KLXdlYmtpdC5vcmcvYi8x
MDUyODAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWh0dHBz
Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotd2Via2l0Lm9yZy9iLzEwNTI4MCBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLXByZWZsaWdodC1hc3luYy1oZWFkZXItZGVuaWVk
Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotd2Via2l0Lm9yZy9iLzEwNTI4MCBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLXByZWZsaWdodC1hc3luYy1tZXRob2QtZGVuaWVk
Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQotd2Via2l0Lm9yZy9iLzEwNTI4MCBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L2Nyb3NzLXNpdGUtZGVuaWVkLXJlc3BvbnNlLmh0bWwgWyBGYWlsdXJlIFBh
c3MgXQotd2Via2l0Lm9yZy9iLzEwNTI4MCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vz
cy1jb250cm9sLXByZWZsaWdodC1hc3luYy1ub3Qtc3VwcG9ydGVkLmh0bWwgWyBGYWlsdXJlIFBh
c3MgXQotCiB3ZWJraXQub3JnL2IvMTA1Mjk2IHdlYmF1ZGlvL2RlbGF5bm9kZS1tYXhkZWxheS5o
dG1sIFsgRmFpbHVyZSBQYXNzIF0KIHdlYmtpdC5vcmcvYi8xMDUyOTYgd2ViYXVkaW8vZGVsYXlu
b2RlLW1heC1ub25kZWZhdWx0LWRlbGF5Lmh0bWwgWyBGYWlsdXJlIFBhc3MgXQogd2Via2l0Lm9y
Zy9iLzEwNTI5NiB3ZWJhdWRpby9kZWxheW5vZGUtc2NoZWR1bGluZy5odG1sIFsgRmFpbHVyZSBQ
YXNzIF0KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCShy
ZXZpc2lvbiAxNzg2MDQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0
aW9ucwkod29ya2luZyBjb3B5KQpAQCAtNzYxLDE0ICs3NjEsNiBAQCB3ZWJraXQub3JnL2IvMTAz
NDQzIGZhc3QvcGFyc2VyL3BhcnNlci15CiAKIHdlYmtpdC5vcmcvYi8xMDUxOTEgbWVkaWEvdmlk
ZW8tcGxheWluZy1hbmQtcGF1c2UuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiAKLXdlYmtpdC5vcmcv
Yi8xMDUyODAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1wcmVmbGln
aHQtYXN5bmMtaGVhZGVyLWRlbmllZC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KLXdlYmtpdC5vcmcv
Yi8xMDUyODAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1wcmVmbGln
aHQtYXN5bmMtbWV0aG9kLWRlbmllZC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KLXdlYmtpdC5vcmcv
Yi8xMDUyODAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1wcmVmbGln
aHQtYXN5bmMtbm90LXN1cHBvcnRlZC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KLXdlYmtpdC5vcmcv
Yi8xMDUyODAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9jcm9zcy1zaXRlLWRlbmllZC1yZXNw
b25zZS5odG1sIFsgRmFpbHVyZSBQYXNzIF0KLXdlYmtpdC5vcmcvYi8xMDUyODAgaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWh0dHBzLmh0bWwgWyBGYWlsdXJl
IFBhc3MgXQotd2Via2l0Lm9yZy9iLzEwNTI4MCBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3Np
bXBsZS1jcm9zcy1vcmlnaW4tZGVuaWVkLWV2ZW50cy5odG1sIFsgRmFpbHVyZSBQYXNzIF0KLXdl
YmtpdC5vcmcvYi8xMDUyODAgaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9zaW1wbGUtY3Jvc3Mt
b3JpZ2luLWRlbmllZC1ldmVudHMtcG9zdC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KLQogd2Via2l0
Lm9yZy9iLzExODQ2MCBtZWRpYS9tZWRpYS1lbGVtZW50LXBsYXktYWZ0ZXItZW9zLmh0bWwgWyBU
aW1lb3V0IFBhc3MgXQogd2Via2l0Lm9yZy9iLzExODQ2MCBtZWRpYS92aWRlby1kdXJhdGlvbi1r
bm93bi1hZnRlci1lb3MuaHRtbCBbIFRpbWVvdXQgUGFzcyBdCiAK
</data>
<flag name="review"
          id="269752"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>