<?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>156727</bug_id>
          
          <creation_ts>2016-04-18 20:44:33 -0700</creation_ts>
          <short_desc>Remove remaining bits of dynamic &lt;link&gt; rel=&apos;icon&apos; loading</short_desc>
          <delta_ts>2016-04-19 23:26:36 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=112705</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=153151</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>56424</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>aestes</cc>
    
    <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
    
    <cc>yoav</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1184886</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-04-18 20:44:33 -0700</bug_when>
    <thetext>WebKit emits an &quot;onbeforeload&quot; event when various link operations are conducted. In Bug 153151 I stopped the old (unused) behavior of notifying clients of new favicon updates. However, I retained the code that emitted an &apos;onbeforeload&apos; event.

We should not emit this non-standard event for these dynamic favicon loads, since we do not support this feature, and should not advertise that we are performing a load that we are actually ignoring.

This breaks one test:

    webarchive/test-link-rel-icon-beforeload.html

To keep things working properly, I intend to switch the link to a &apos;subresource&apos; (which still emits the event) to keep the test functioning properly.

I will rename it to

    webarchive/test-link-rel-subresource-beforeload.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184888</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-04-18 20:48:04 -0700</bug_when>
    <thetext>Note: This test was added 5 year ago:

http://trac.webkit.org/browser/trunk/LayoutTests/webarchive/test-link-rel-icon-beforeload.html?rev=82342

Nothing in the related bug or comments indicate that &quot;&lt;link rel=&apos;icon&apos;&gt;&quot; was the critical part of this test. Rather, it was made to ensure that &apos;onbeforeload&apos; was being emitted for various rel types (specifically &apos;icon&apos; and &apos;prefetch&apos; links).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1184899</commentid>
    <comment_count>2</comment_count>
      <attachid>276688</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-04-18 21:30:44 -0700</bug_when>
    <thetext>Created attachment 276688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185067</commentid>
    <comment_count>3</comment_count>
      <attachid>276688</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-04-19 10:28:31 -0700</bug_when>
    <thetext>Comment on attachment 276688
Patch

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

We should also remove TestRunner.setDumpIconChanges(), TestRunner.dumpIconChanges() and the only test that made use of this functionality LayoutTests/fast/dom/icon-url-property.html. Take care to remove all references to and expected test results for LayoutTests/fast/dom/icon-url-property.html and &quot;dumpIconChanges&quot;. From briefly using find and grep, this test is referenced in file LayoutTests/platform/{gtk, ios-simulator}/TestExpectations and has expected results LayoutTests/platform/{efl, mac, win}/fast/dom/icon-url-property-expected.txt. We should also close bug #112705 as invalid since we are removing the test LayoutTests/fast/dom/icon-url-property.html.

&gt; Source/WebCore/ChangeLog:10
&gt; +        Don&apos;t call &apos;shouldLoadLink&apos; for &apos;icon&apos; link types. It performs no
&gt; +        useful checks for &apos;icon&apos; types, and emits the non-standard
&gt; +        &apos;onbeforeload&apos; event.

For your consideration, I suggest that we add a remark to this description that mentions that we removed FrameLoaderClient::dispatchDidChangeIcons(), the mechanism for notifying an embedding client of dynamic icon changes, in r199673 (bug #153151).

&gt; LayoutTests/platform/wk2/TestExpectations:72
&gt; +webkit.org/b/115809 webarchive/test-link-rel-subresource-beforeload.html [ Skip ]

Notice that you removed the call to setIconDatabaseEnabled() from the test. And &lt;https://webkit.org/b/115809&gt; is about implementing testRunner.setIconDatabaseEnabled() in WebKitTestRunner. So, this test should now run in WebKitTestRunner assuming the port is built with ENABLE(LINK_PREFETCH). We should remove this entry from this test expectation and add an entry for this test to the TestExpectations files for ports that do not enable ENABLE(LINK_PREFETCH).

&gt; LayoutTests/webarchive/test-link-rel-subresource-beforeload.html:27
&gt; +&lt;link rel=&quot;subresource&quot; onbeforeload=&quot;print(&apos;PASS&apos;,&apos;green&apos;);return false&quot; href=&quot;resources/favicon.ico&quot; type=&quot;image/x-icon&quot;&gt;

OK, this test is acceptable. Notice that link type subresource is a non-standard just as event handler onbeforeload. Should we decide to support link prefetching/resource hints then we will update this test as appropriate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185071</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2016-04-19 10:35:48 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; &gt; LayoutTests/webarchive/test-link-rel-subresource-beforeload.html:27
&gt; &gt; +&lt;link rel=&quot;subresource&quot; onbeforeload=&quot;print(&apos;PASS&apos;,&apos;green&apos;);return false&quot; href=&quot;resources/favicon.ico&quot; type=&quot;image/x-icon&quot;&gt;
&gt; 
&gt; OK, this test is acceptable. Notice that link type subresource is a
&gt; non-standard just as event handler onbeforeload. Should we decide to support
&gt; link prefetching/resource hints then we will update this test as appropriate.

Following the landing of the patch of bug #156334, we may want to consider updating the test to use &lt;link rel=&quot;preload&quot;&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185183</commentid>
    <comment_count>5</comment_count>
      <attachid>276688</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-04-19 15:17:50 -0700</bug_when>
    <thetext>Comment on attachment 276688
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:10
&gt;&gt; +        &apos;onbeforeload&apos; event.
&gt; 
&gt; For your consideration, I suggest that we add a remark to this description that mentions that we removed FrameLoaderClient::dispatchDidChangeIcons(), the mechanism for notifying an embedding client of dynamic icon changes, in r199673 (bug #153151).

Good idea! I will do so.

&gt;&gt; LayoutTests/platform/wk2/TestExpectations:72
&gt;&gt; +webkit.org/b/115809 webarchive/test-link-rel-subresource-beforeload.html [ Skip ]
&gt; 
&gt; Notice that you removed the call to setIconDatabaseEnabled() from the test. And &lt;https://webkit.org/b/115809&gt; is about implementing testRunner.setIconDatabaseEnabled() in WebKitTestRunner. So, this test should now run in WebKitTestRunner assuming the port is built with ENABLE(LINK_PREFETCH). We should remove this entry from this test expectation and add an entry for this test to the TestExpectations files for ports that do not enable ENABLE(LINK_PREFETCH).

An excellent point. I&apos;ll make these changes.

&gt;&gt; LayoutTests/webarchive/test-link-rel-subresource-beforeload.html:27
&gt;&gt; +&lt;link rel=&quot;subresource&quot; onbeforeload=&quot;print(&apos;PASS&apos;,&apos;green&apos;);return false&quot; href=&quot;resources/favicon.ico&quot; type=&quot;image/x-icon&quot;&gt;
&gt; 
&gt; OK, this test is acceptable. Notice that link type subresource is a non-standard just as event handler onbeforeload. Should we decide to support link prefetching/resource hints then we will update this test as appropriate.

Sounds good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185185</commentid>
    <comment_count>6</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-04-19 15:19:50 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 276688 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=276688&amp;action=review
&gt; 
&gt; We should also remove TestRunner.setDumpIconChanges(),
&gt; TestRunner.dumpIconChanges() and the only test that made use of this
&gt; functionality LayoutTests/fast/dom/icon-url-property.html. Take care to
&gt; remove all references to and expected test results for
&gt; LayoutTests/fast/dom/icon-url-property.html and &quot;dumpIconChanges&quot;.

Will do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185246</commentid>
    <comment_count>7</comment_count>
      <attachid>276780</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-04-19 17:19:12 -0700</bug_when>
    <thetext>Created attachment 276780
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185247</commentid>
    <comment_count>8</comment_count>
      <attachid>276780</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-04-19 17:19:58 -0700</bug_when>
    <thetext>Comment on attachment 276780
Patch v2

Incorporated Dan&apos;s suggestions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185271</commentid>
    <comment_count>9</comment_count>
      <attachid>276780</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-19 18:33:17 -0700</bug_when>
    <thetext>Comment on attachment 276780
Patch v2

Clearing flags on attachment: 276780

Committed r199752: &lt;http://trac.webkit.org/changeset/199752&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185272</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-04-19 18:33:24 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185354</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2016-04-19 23:10:17 -0700</bug_when>
    <thetext>This broke Windows build:

  PixelDumpSupportWin.cpp
C:\cygwin\home\buildbot\slave\win-release\build\Tools\DumpRenderTree\win\FrameLoadDelegate.cpp(187): error C2039: &apos;dumpIconChanges&apos;: is not a member of &apos;TestRunner&apos; [C:\cygwin\home\buildbot\slave\win-release\build\WebKitBuild\Release\Tools\DumpRenderTree\DumpRenderTreeLib.vcxproj]
  C:\cygwin\home\buildbot\slave\win-release\build\Tools\DumpRenderTree\TestRunner.h(40): note: see declaration of &apos;TestRunner&apos;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185355</commentid>
    <comment_count>12</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-04-19 23:20:36 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; This broke Windows build:
&gt; 
&gt;   PixelDumpSupportWin.cpp
&gt; C:\cygwin\home\buildbot\slave\win-
&gt; release\build\Tools\DumpRenderTree\win\FrameLoadDelegate.cpp(187): error
&gt; C2039: &apos;dumpIconChanges&apos;: is not a member of &apos;TestRunner&apos;
&gt; [C:\cygwin\home\buildbot\slave\win-
&gt; release\build\WebKitBuild\Release\Tools\DumpRenderTree\DumpRenderTreeLib.
&gt; vcxproj]
&gt;  
&gt; C:\cygwin\home\buildbot\slave\win-
&gt; release\build\Tools\DumpRenderTree\TestRunner.h(40): note: see declaration
&gt; of &apos;TestRunner&apos;

Bah! I&apos;ll fix right now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1185356</commentid>
    <comment_count>13</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2016-04-19 23:26:36 -0700</bug_when>
    <thetext>Build fix landed in r199765: &lt;http://trac.webkit.org/changeset/199765&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276688</attachid>
            <date>2016-04-18 21:30:44 -0700</date>
            <delta_ts>2016-04-19 17:19:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-156727-20160418213103.patch</filename>
            <type>text/plain</type>
            <size>13159</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5OTcwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5IEBACisyMDE2LTA0LTE4ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSByZW1haW5pbmcg
Yml0cyBvZiBkeW5hbWljIDxsaW5rPiByZWw9J2ljb24nIGxvYWRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjcyNworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERvbid0IGNhbGwgJ3Nob3VsZExvYWRM
aW5rJyBmb3IgJ2ljb24nIGxpbmsgdHlwZXMuIEl0IHBlcmZvcm1zIG5vCisgICAgICAgIHVzZWZ1
bCBjaGVja3MgZm9yICdpY29uJyB0eXBlcywgYW5kIGVtaXRzIHRoZSBub24tc3RhbmRhcmQKKyAg
ICAgICAgJ29uYmVmb3JlbG9hZCcgZXZlbnQuCisKKyAgICAgICAgVGVzdDogd2ViYXJjaGl2ZS90
ZXN0LWxpbmstcmVsLXN1YnJlc291cmNlLWJlZm9yZWxvYWQuaHRtbAorCisgICAgICAgICogbG9h
ZGVyL0xpbmtMb2FkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TGlua0xvYWRlcjo6bG9hZExp
bmspOiBSZW1vdmUgdW5uZWVkZWQgY2FsbCB0byAnc2hvdWxkTG9hZExpbmsnLgorCiAyMDE2LTA0
LTE4ICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgYWxs
IHVzZSBvZiBEZXByZWNhdGVkOjpTY3JpcHRWYWx1ZSBpbiBnZW5lcmF0ZWQgYmluZGluZ3MKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9sb2FkZXIvTGlua0xvYWRlci5jcHAJKHJldmlzaW9uIDE5OTcwNCkKKysr
IFNvdXJjZS9XZWJDb3JlL2xvYWRlci9MaW5rTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MTM3LDEyICsxMzcsNiBAQCBzdGF0aWMgdm9pZCBwcmVsb2FkSWZOZWVkZWQoY29uc3QgTGlua1Jl
CiAKIGJvb2wgTGlua0xvYWRlcjo6bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVs
QXR0cmlidXRlLCBjb25zdCBVUkwmIGhyZWYsIGNvbnN0IFN0cmluZyYgYXMsIGNvbnN0IFN0cmlu
ZyYgY3Jvc3NPcmlnaW4sIERvY3VtZW50JiBkb2N1bWVudCkKIHsKLSAgICAvLyBXZSdsbCByZWNv
cmQgdGhpcyBVUkwgcGVyIGRvY3VtZW50LCBldmVuIGlmIHdlIGxhdGVyIG9ubHkgdXNlIGl0IGlu
IHRvcCBsZXZlbCBmcmFtZXMKLSAgICBpZiAocmVsQXR0cmlidXRlLmljb25UeXBlICE9IEludmFs
aWRJY29uICYmIGhyZWYuaXNWYWxpZCgpICYmICFocmVmLmlzRW1wdHkoKSkgewotICAgICAgICBp
ZiAoIW1fY2xpZW50LnNob3VsZExvYWRMaW5rKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7
Ci0gICAgfQotCiAgICAgaWYgKHJlbEF0dHJpYnV0ZS5pc0ROU1ByZWZldGNoKSB7CiAgICAgICAg
IFNldHRpbmdzKiBzZXR0aW5ncyA9IGRvY3VtZW50LnNldHRpbmdzKCk7CiAgICAgICAgIC8vIEZJ
WE1FOiBUaGUgaHJlZiBhdHRyaWJ1dGUgb2YgdGhlIGxpbmsgZWxlbWVudCBjYW4gYmUgaW4gIi8v
aG9zdG5hbWUiIGZvcm0sIGFuZCB3ZSBzaG91bGRuJ3QgYXR0ZW1wdApJbmRleDogTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNp
b24gMTk5NzA0KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTYtMDQtMTggIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5j
b20+CisKKyAgICAgICAgUmVtb3ZlIHJlbWFpbmluZyBiaXRzIG9mIGR5bmFtaWMgPGxpbms+IHJl
bD0naWNvbicgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU2NzI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVuYW1lICd0ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9hZC5odG1sJyB0byAn
dGVzdC1saW5rLXJlbC1zdWJyZXNvdXJjZS1iZWZvcmVsb2FkLmh0bWwnLgorCisgICAgICAgICog
cGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnM6IFJlbW92ZSByZWZlcmVuY2VzIHRvIGRlbGV0
ZWQgdGVzdHMuCisgICAgICAgICogd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLWljb24tYmVmb3Jl
bG9hZC1leHBlY3RlZC53ZWJhcmNoaXZlOiBSZW1vdmVkLgorICAgICAgICAqIHdlYmFyY2hpdmUv
dGVzdC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB3
ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtc3VicmVzb3VyY2UtYmVmb3JlbG9hZC1leHBlY3RlZC53
ZWJhcmNoaXZlOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1y
ZWwtaWNvbi1iZWZvcmVsb2FkLWV4cGVjdGVkLndlYmFyY2hpdmUuCisgICAgICAgICogd2ViYXJj
aGl2ZS90ZXN0LWxpbmstcmVsLXN1YnJlc291cmNlLWJlZm9yZWxvYWQuaHRtbDogQ29waWVkIGZy
b20gTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9hZC5o
dG1sLgorCiAyMDE2LTA0LTE4ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNv
bT4KIAogICAgICAgICBbR1RLXSBQb3NzaWJsZSBvZmYtYnktb25lIGluIGh5cGhlbmF0aW9uIGNv
ZGUKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3drMi9UZXN0RXhwZWN0YXRpb25zCShyZXZp
c2lvbiAxOTk3MDQpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9u
cwkod29ya2luZyBjb3B5KQpAQCAtNDUsMTAgKzQ1LDYgQEAKIHdlYmtpdC5vcmcvYi8xNTY2MTIg
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvZW1iZWQtcmVkaXJlY3Qt
YmxvY2tlZDMuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzE1NjYxMiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9vYmplY3QtcmVkaXJlY3QtYmxvY2tlZDMu
aHRtbCBbIEZhaWx1cmUgXQogCi0jIFdlYktpdFRlc3RSdW5uZXIgbmVlZHMgdG8gaW1wbGVtZW50
IHRlc3RSdW5uZXIuZHVtcEljb25DaGFuZ2VzKCkuCi13ZWJraXQub3JnL2IvNDQwNDYgaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvaWNvbi1hbGxvd2VkLmh0bWwKLXdl
YmtpdC5vcmcvYi80NDA0NiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS9pY29uLWJsb2NrZWQuaHRtbAotCiAjIEFYIHRlc3RzIHRoYXQgcmVxdWlyZSBoaXQgdGVzdGlu
ZyBkbyBub3Qgd29yayBpbiBXSzIuCiB3ZWJraXQub3JnL2IvNzEyOTggYWNjZXNzaWJpbGl0eS9s
b2FkaW5nLWlmcmFtZS11cGRhdGVzLWF4dHJlZS5odG1sCiB3ZWJraXQub3JnL2IvNzEyOTggYWNj
ZXNzaWJpbGl0eS9tYWMvaHRtbC1zbGlkZXItaW5kaWNhdG9yLmh0bWwKQEAgLTczLDcgKzY5LDcg
QEAgd2Via2l0Lm9yZy9iLzQyMTk3IGZhc3QvaGFybmVzcy9vdmVycmlkZQogd2Via2l0Lm9yZy9i
LzQyMTk3IGZhc3QvdGV4dC96ZXJvLWZvbnQtc2l6ZS5odG1sIFsgUGFzcyBdCiAKICMgc2V0SWNv
bkRhdGFiYXNlRW5hYmxlZCBub3QgaW1wbGVtZW50ZWQgaW4gV2ViS2l0VGVzdFJ1bm5lci4KLXdl
YmtpdC5vcmcvYi8xMTU4MDkgd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9h
ZC5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMTE1ODA5IHdlYmFyY2hpdmUvdGVzdC1saW5r
LXJlbC1zdWJyZXNvdXJjZS1iZWZvcmVsb2FkLmh0bWwgWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9i
LzgyNjY1IGh0dHAvdGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWNzcy11cmwtZW5jb2RpbmcuaHRtbCBb
IFNraXAgXQogd2Via2l0Lm9yZy9iLzgyNjY1IGh0dHAvdGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWNz
cy11cmwtZW5jb2Rpbmctc2hpZnQtamlzLmh0bWwgWyBTa2lwIF0KSW5kZXg6IExheW91dFRlc3Rz
L3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQtZXhwZWN0ZWQud2ViYXJj
aGl2ZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwt
aWNvbi1iZWZvcmVsb2FkLWV4cGVjdGVkLndlYmFyY2hpdmUJKHJldmlzaW9uIDE5OTcwNCkKKysr
IExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQtZXhw
ZWN0ZWQud2ViYXJjaGl2ZQkod29ya2luZyBjb3B5KQpAQCAtMSw0OCArMCwwIEBACi08P3htbCB2
ZXJzaW9uPSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/PgotPCFET0NUWVBFIHBsaXN0IFBVQkxJQyAi
LS8vQXBwbGUvL0RURCBQTElTVCAxLjAvL0VOIiAiaHR0cDovL3d3dy5hcHBsZS5jb20vRFREcy9Q
cm9wZXJ0eUxpc3QtMS4wLmR0ZCI+Ci08cGxpc3QgdmVyc2lvbj0iMS4wIj4KLTxkaWN0PgotCTxr
ZXk+V2ViTWFpblJlc291cmNlPC9rZXk+Ci0JPGRpY3Q+Ci0JCTxrZXk+V2ViUmVzb3VyY2VEYXRh
PC9rZXk+Ci0JCTxzdHJpbmc+Jmx0O2h0bWwmZ3Q7Jmx0O2hlYWQmZ3Q7Ci0mbHQ7c2NyaXB0Jmd0
OwotZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0g
ICAgICAgIHRlc3RSdW5uZXIuc2V0SWNvbkRhdGFiYXNlRW5hYmxlZCh0cnVlKTsKLSAgICAgICAg
dGVzdFJ1bm5lci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7Ci0gICAgICAgIHRlc3RSdW5uZXIucXVl
dWVSZWxvYWQoKTsKLSAgICB9Ci19Ci0mbHQ7L3NjcmlwdCZndDsKLSZsdDsvaGVhZCZndDsKLSZs
dDtib2R5IG9ubG9hZD0icnVuVGVzdCgpIiZndDsKLSZsdDtkaXYgaWQ9ImNvbnNvbGUiJmd0OyZs
dDtkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OiBtb25vc3BhY2U7IGNvbG9yOiBncmVlbjsiJmd0O1BB
U1MmbHQ7L2RpdiZndDsmbHQ7L2RpdiZndDsKLSZsdDtzY3JpcHQmZ3Q7Ci1mdW5jdGlvbiBwcmlu
dChtZXNzYWdlLCBjb2xvcikgCi17Ci0gICAgdmFyIHBhcmFncmFwaCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwotICAgIHBhcmFncmFwaC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZShtZXNzYWdlKSk7Ci0gICAgcGFyYWdyYXBoLnN0eWxlLmZvbnRGYW1pbHkgPSAi
bW9ub3NwYWNlIjsKLSAgICBpZiAoY29sb3IpCi0gICAgICAgIHBhcmFncmFwaC5zdHlsZS5jb2xv
ciA9IGNvbG9yOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5k
Q2hpbGQocGFyYWdyYXBoKTsKLX0KLSZsdDsvc2NyaXB0Jmd0OwotJmx0O3AmZ3Q7VGhpcyB0ZXN0
IHNob3VsZCBoYXZlIGEgZ3JlZW4gJ1BBU1MnIGp1c3QgYWJvdmUgdGhpcyBsaW5lLiAgSWYgaXQg
ZG9lc24ndCwgeW91IGZhaWxlZC4KLSZsdDtsaW5rIHJlbD0iaWNvbiIgb25iZWZvcmVsb2FkPSJw
cmludCgnUEFTUycsJ2dyZWVuJyk7cmV0dXJuIGZhbHNlIiBocmVmPSJyZXNvdXJjZXMvZmF2aWNv
bi5pY28iIHR5cGU9ImltYWdlL3gtaWNvbiImZ3Q7Ci0KLQotJmx0Oy9wJmd0OyZsdDsvYm9keSZn
dDsmbHQ7L2h0bWwmZ3Q7PC9zdHJpbmc+Ci0JCTxrZXk+V2ViUmVzb3VyY2VGcmFtZU5hbWU8L2tl
eT4KLQkJPHN0cmluZz48L3N0cmluZz4KLQkJPGtleT5XZWJSZXNvdXJjZU1JTUVUeXBlPC9rZXk+
Ci0JCTxzdHJpbmc+dGV4dC9odG1sPC9zdHJpbmc+Ci0JCTxrZXk+V2ViUmVzb3VyY2VUZXh0RW5j
b2RpbmdOYW1lPC9rZXk+Ci0JCTxzdHJpbmc+VVRGLTg8L3N0cmluZz4KLQkJPGtleT5XZWJSZXNv
dXJjZVVSTDwva2V5PgotCQk8c3RyaW5nPmZpbGU6Ly8vTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90
ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9hZC5odG1sPC9zdHJpbmc+Ci0JPC9kaWN0PgotPC9k
aWN0PgotPC9wbGlzdD4KSW5kZXg6IExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJl
bC1pY29uLWJlZm9yZWxvYWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhcmNo
aXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwJKHJldmlzaW9uIDE5OTcwNCkK
KysrIExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwzMCArMCwwIEBACi08aHRtbD4KLTxoZWFkPgotPHNj
cmlwdD4KLWZ1bmN0aW9uIHJ1blRlc3QoKQotewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ewotICAgICAgICB0ZXN0UnVubmVyLnNldEljb25EYXRhYmFzZUVuYWJsZWQodHJ1ZSk7Ci0gICAg
ICAgIHRlc3RSdW5uZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOwotICAgICAgICB0ZXN0UnVubmVy
LnF1ZXVlUmVsb2FkKCk7Ci0gICAgfQotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKSI+Ci08ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLTxzY3JpcHQ+Ci1mdW5j
dGlvbiBwcmludChtZXNzYWdlLCBjb2xvcikgCi17Ci0gICAgdmFyIHBhcmFncmFwaCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwotICAgIHBhcmFncmFwaC5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7Ci0gICAgcGFyYWdyYXBoLnN0eWxlLmZvbnRG
YW1pbHkgPSAibW9ub3NwYWNlIjsKLSAgICBpZiAoY29sb3IpCi0gICAgICAgIHBhcmFncmFwaC5z
dHlsZS5jb2xvciA9IGNvbG9yOwotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xl
IikuYXBwZW5kQ2hpbGQocGFyYWdyYXBoKTsKLX0KLTwvc2NyaXB0PgotPHA+VGhpcyB0ZXN0IHNo
b3VsZCBoYXZlIGEgZ3JlZW4gJ1BBU1MnIGp1c3QgYWJvdmUgdGhpcyBsaW5lLiAgSWYgaXQgZG9l
c24ndCwgeW91IGZhaWxlZC4KLTxsaW5rIHJlbD0iaWNvbiIgb25iZWZvcmVsb2FkPSJwcmludCgn
UEFTUycsJ2dyZWVuJyk7cmV0dXJuIGZhbHNlIiBocmVmPSJyZXNvdXJjZXMvZmF2aWNvbi5pY28i
IHR5cGU9ImltYWdlL3gtaWNvbiI+Ci08L2JvZHk+Ci08L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtc3VicmVzb3VyY2UtYmVmb3JlbG9hZC1leHBlY3Rl
ZC53ZWJhcmNoaXZlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1s
aW5rLXJlbC1zdWJyZXNvdXJjZS1iZWZvcmVsb2FkLWV4cGVjdGVkLndlYmFyY2hpdmUJKHJldmlz
aW9uIDE5OTcwNCkJKGZyb20gTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLWlj
b24tYmVmb3JlbG9hZC1leHBlY3RlZC53ZWJhcmNoaXZlOjE5OTcwNCkKKysrIExheW91dFRlc3Rz
L3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1zdWJyZXNvdXJjZS1iZWZvcmVsb2FkLWV4cGVjdGVk
LndlYmFyY2hpdmUJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0OCBAQAorPD94bWwgdmVyc2lv
bj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KKzwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0Fw
cGxlLy9EVEQgUExJU1QgMS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVy
dHlMaXN0LTEuMC5kdGQiPgorPHBsaXN0IHZlcnNpb249IjEuMCI+Cis8ZGljdD4KKwk8a2V5Pldl
Yk1haW5SZXNvdXJjZTwva2V5PgorCTxkaWN0PgorCQk8a2V5PldlYlJlc291cmNlRGF0YTwva2V5
PgorCQk8c3RyaW5nPiZsdDtodG1sJmd0OyZsdDtoZWFkJmd0OworJmx0O3NjcmlwdCZndDsKK2Z1
bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICB0ZXN0UnVubmVyLnNldEljb25EYXRhYmFzZUVuYWJsZWQodHJ1ZSk7CisgICAgICAgIHRlc3RS
dW5uZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOworICAgICAgICB0ZXN0UnVubmVyLnF1ZXVlUmVs
b2FkKCk7CisgICAgfQorfQorJmx0Oy9zY3JpcHQmZ3Q7CismbHQ7L2hlYWQmZ3Q7CismbHQ7Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSImZ3Q7CismbHQ7ZGl2IGlkPSJjb25zb2xlIiZndDsmbHQ7ZGl2
IHN0eWxlPSJmb250LWZhbWlseTogbW9ub3NwYWNlOyBjb2xvcjogZ3JlZW47IiZndDtQQVNTJmx0
Oy9kaXYmZ3Q7Jmx0Oy9kaXYmZ3Q7CismbHQ7c2NyaXB0Jmd0OworZnVuY3Rpb24gcHJpbnQobWVz
c2FnZSwgY29sb3IpIAoreworICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVt
ZW50KCJkaXYiKTsKKyAgICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUobWVzc2FnZSkpOworICAgIHBhcmFncmFwaC5zdHlsZS5mb250RmFtaWx5ID0gIm1vbm9z
cGFjZSI7CisgICAgaWYgKGNvbG9yKQorICAgICAgICBwYXJhZ3JhcGguc3R5bGUuY29sb3IgPSBj
b2xvcjsKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxk
KHBhcmFncmFwaCk7Cit9CismbHQ7L3NjcmlwdCZndDsKKyZsdDtwJmd0O1RoaXMgdGVzdCBzaG91
bGQgaGF2ZSBhIGdyZWVuICdQQVNTJyBqdXN0IGFib3ZlIHRoaXMgbGluZS4gIElmIGl0IGRvZXNu
J3QsIHlvdSBmYWlsZWQuCismbHQ7bGluayByZWw9Imljb24iIG9uYmVmb3JlbG9hZD0icHJpbnQo
J1BBU1MnLCdncmVlbicpO3JldHVybiBmYWxzZSIgaHJlZj0icmVzb3VyY2VzL2Zhdmljb24uaWNv
IiB0eXBlPSJpbWFnZS94LWljb24iJmd0OworCisKKyZsdDsvcCZndDsmbHQ7L2JvZHkmZ3Q7Jmx0
Oy9odG1sJmd0Ozwvc3RyaW5nPgorCQk8a2V5PldlYlJlc291cmNlRnJhbWVOYW1lPC9rZXk+CisJ
CTxzdHJpbmc+PC9zdHJpbmc+CisJCTxrZXk+V2ViUmVzb3VyY2VNSU1FVHlwZTwva2V5PgorCQk8
c3RyaW5nPnRleHQvaHRtbDwvc3RyaW5nPgorCQk8a2V5PldlYlJlc291cmNlVGV4dEVuY29kaW5n
TmFtZTwva2V5PgorCQk8c3RyaW5nPlVURi04PC9zdHJpbmc+CisJCTxrZXk+V2ViUmVzb3VyY2VV
Ukw8L2tleT4KKwkJPHN0cmluZz5maWxlOi8vL0xheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1s
aW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbDwvc3RyaW5nPgorCTwvZGljdD4KKzwvZGljdD4K
KzwvcGxpc3Q+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtc3Vi
cmVzb3VyY2UtYmVmb3JlbG9hZC1leHBlY3RlZC53ZWJhcmNoaXZlCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1zdWJyZXNvdXJjZS1iZWZvcmVsb2Fk
LWV4cGVjdGVkLndlYmFyY2hpdmUJKHdvcmtpbmcgY29weSkKKysrIExheW91dFRlc3RzL3dlYmFy
Y2hpdmUvdGVzdC1saW5rLXJlbC1zdWJyZXNvdXJjZS1iZWZvcmVsb2FkLWV4cGVjdGVkLndlYmFy
Y2hpdmUJKHdvcmtpbmcgY29weSkKQEAgLTEwLDcgKzEwLDYgQEAKIGZ1bmN0aW9uIHJ1blRlc3Qo
KQogewogICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLnNl
dEljb25EYXRhYmFzZUVuYWJsZWQodHJ1ZSk7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcERPTUFz
V2ViQXJjaGl2ZSgpOwogICAgICAgICB0ZXN0UnVubmVyLnF1ZXVlUmVsb2FkKCk7CiAgICAgfQpA
QCAtMzEsNyArMzAsNyBAQCBmdW5jdGlvbiBwcmludChtZXNzYWdlLCBjb2xvcikgCiB9CiAmbHQ7
L3NjcmlwdCZndDsKICZsdDtwJmd0O1RoaXMgdGVzdCBzaG91bGQgaGF2ZSBhIGdyZWVuICdQQVNT
JyBqdXN0IGFib3ZlIHRoaXMgbGluZS4gIElmIGl0IGRvZXNuJ3QsIHlvdSBmYWlsZWQuCi0mbHQ7
bGluayByZWw9Imljb24iIG9uYmVmb3JlbG9hZD0icHJpbnQoJ1BBU1MnLCdncmVlbicpO3JldHVy
biBmYWxzZSIgaHJlZj0icmVzb3VyY2VzL2Zhdmljb24uaWNvIiB0eXBlPSJpbWFnZS94LWljb24i
Jmd0OworJmx0O2xpbmsgcmVsPSJzdWJyZXNvdXJjZSIgb25iZWZvcmVsb2FkPSJwcmludCgnUEFT
UycsJ2dyZWVuJyk7cmV0dXJuIGZhbHNlIiBocmVmPSJyZXNvdXJjZXMvZmF2aWNvbi5pY28iIHR5
cGU9ImltYWdlL3gtaWNvbiImZ3Q7CiAKIAogJmx0Oy9wJmd0OyZsdDsvYm9keSZndDsmbHQ7L2h0
bWwmZ3Q7PC9zdHJpbmc+CkBAIC00Miw3ICs0MSw3IEBAIGZ1bmN0aW9uIHByaW50KG1lc3NhZ2Us
IGNvbG9yKSAKIAkJPGtleT5XZWJSZXNvdXJjZVRleHRFbmNvZGluZ05hbWU8L2tleT4KIAkJPHN0
cmluZz5VVEYtODwvc3RyaW5nPgogCQk8a2V5PldlYlJlc291cmNlVVJMPC9rZXk+Ci0JCTxzdHJp
bmc+ZmlsZTovLy9MYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZv
cmVsb2FkLmh0bWw8L3N0cmluZz4KKwkJPHN0cmluZz5maWxlOi8vL0xheW91dFRlc3RzL3dlYmFy
Y2hpdmUvdGVzdC1saW5rLXJlbC1zdWJyZXNvdXJjZS1iZWZvcmVsb2FkLmh0bWw8L3N0cmluZz4K
IAk8L2RpY3Q+CiA8L2RpY3Q+CiA8L3BsaXN0PgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXJjaGl2
ZS90ZXN0LWxpbmstcmVsLXN1YnJlc291cmNlLWJlZm9yZWxvYWQuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtc3VicmVzb3VyY2UtYmVmb3Jl
bG9hZC5odG1sCShyZXZpc2lvbiAxOTk3MDQpCShmcm9tIExheW91dFRlc3RzL3dlYmFyY2hpdmUv
dGVzdC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbDoxOTk3MDQpCisrKyBMYXlvdXRUZXN0
cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtc3VicmVzb3VyY2UtYmVmb3JlbG9hZC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0Pgor
ZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0SWNvbkRhdGFiYXNlRW5hYmxlZCh0cnVlKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CisgICAgICAgIHRlc3RSdW5uZXIucXVldWVS
ZWxvYWQoKTsKKyAgICB9Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorPHNjcmlwdD4KK2Z1bmN0aW9uIHBy
aW50KG1lc3NhZ2UsIGNvbG9yKSAKK3sKKyAgICB2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgiZGl2Iik7CisgICAgcGFyYWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNy
ZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAgICBwYXJhZ3JhcGguc3R5bGUuZm9udEZhbWlseSA9
ICJtb25vc3BhY2UiOworICAgIGlmIChjb2xvcikKKyAgICAgICAgcGFyYWdyYXBoLnN0eWxlLmNv
bG9yID0gY29sb3I7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBl
bmRDaGlsZChwYXJhZ3JhcGgpOworfQorPC9zY3JpcHQ+Cis8cD5UaGlzIHRlc3Qgc2hvdWxkIGhh
dmUgYSBncmVlbiAnUEFTUycganVzdCBhYm92ZSB0aGlzIGxpbmUuICBJZiBpdCBkb2Vzbid0LCB5
b3UgZmFpbGVkLgorPGxpbmsgcmVsPSJpY29uIiBvbmJlZm9yZWxvYWQ9InByaW50KCdQQVNTJywn
Z3JlZW4nKTtyZXR1cm4gZmFsc2UiIGhyZWY9InJlc291cmNlcy9mYXZpY29uLmljbyIgdHlwZT0i
aW1hZ2UveC1pY29uIj4KKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3dlYmFy
Y2hpdmUvdGVzdC1saW5rLXJlbC1zdWJyZXNvdXJjZS1iZWZvcmVsb2FkLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLXN1YnJlc291cmNlLWJl
Zm9yZWxvYWQuaHRtbAkod29ya2luZyBjb3B5KQorKysgTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90
ZXN0LWxpbmstcmVsLXN1YnJlc291cmNlLWJlZm9yZWxvYWQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNCw3ICs0LDYgQEAKIGZ1bmN0aW9uIHJ1blRlc3QoKQogewogICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLnNldEljb25EYXRhYmFzZUVuYWJsZWQodHJ1
ZSk7CiAgICAgICAgIHRlc3RSdW5uZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOwogICAgICAgICB0
ZXN0UnVubmVyLnF1ZXVlUmVsb2FkKCk7CiAgICAgfQpAQCAtMjUsNiArMjQsNiBAQCBmdW5jdGlv
biBwcmludChtZXNzYWdlLCBjb2xvcikgCiB9CiA8L3NjcmlwdD4KIDxwPlRoaXMgdGVzdCBzaG91
bGQgaGF2ZSBhIGdyZWVuICdQQVNTJyBqdXN0IGFib3ZlIHRoaXMgbGluZS4gIElmIGl0IGRvZXNu
J3QsIHlvdSBmYWlsZWQuCi08bGluayByZWw9Imljb24iIG9uYmVmb3JlbG9hZD0icHJpbnQoJ1BB
U1MnLCdncmVlbicpO3JldHVybiBmYWxzZSIgaHJlZj0icmVzb3VyY2VzL2Zhdmljb24uaWNvIiB0
eXBlPSJpbWFnZS94LWljb24iPgorPGxpbmsgcmVsPSJzdWJyZXNvdXJjZSIgb25iZWZvcmVsb2Fk
PSJwcmludCgnUEFTUycsJ2dyZWVuJyk7cmV0dXJuIGZhbHNlIiBocmVmPSJyZXNvdXJjZXMvZmF2
aWNvbi5pY28iIHR5cGU9ImltYWdlL3gtaWNvbiI+CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>276780</attachid>
            <date>2016-04-19 17:19:12 -0700</date>
            <delta_ts>2016-04-19 18:33:17 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-156727-20160419171931.patch</filename>
            <type>text/plain</type>
            <size>22544</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE5OTcwNSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIyIEBACisyMDE2LTA0LTE4ICBCcmVudCBG
dWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSByZW1haW5pbmcg
Yml0cyBvZiBkeW5hbWljIDxsaW5rPiByZWw9J2ljb24nIGxvYWRpbmcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NjcyNworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIERvbid0IGNhbGwgJ3Nob3VsZExvYWRM
aW5rJyBmb3IgJ2ljb24nIGxpbmsgdHlwZXMuIEl0IHBlcmZvcm1zIG5vCisgICAgICAgIHVzZWZ1
bCBjaGVja3MgZm9yICdpY29uJyB0eXBlcywgYW5kIGVtaXRzIHRoZSBub24tc3RhbmRhcmQKKyAg
ICAgICAgJ29uYmVmb3JlbG9hZCcgZXZlbnQuCisKKyAgICAgICAgVGhpcyB3b3JrIGZpbmlzaGVz
IHVwIGh0dHBzOi8vd2Via2l0Lm9yZy9iLzE1MzE1MSwgd2hlcmUgd2UgcmVtb3ZlZAorICAgICAg
ICBGcmFtZUxvYWRlckNsaWVudDo6ZGlzcGF0Y2hEaWRDaGFuZ2VJY29ucygpIGFuZCByZWxhdGVk
IGNvZGUuCisKKyAgICAgICAgVGVzdDogd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLXN1YnJlc291
cmNlLWJlZm9yZWxvYWQuaHRtbAorCisgICAgICAgICogbG9hZGVyL0xpbmtMb2FkZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6TGlua0xvYWRlcjo6bG9hZExpbmspOiBSZW1vdmUgdW5uZWVkZWQg
Y2FsbCB0byAnc2hvdWxkTG9hZExpbmsnLgorCiAyMDE2LTA0LTE4ICBEYXJpbiBBZGxlciAgPGRh
cmluQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgYWxsIHVzZSBvZiBEZXByZWNhdGVkOjpT
Y3JpcHRWYWx1ZSBpbiBnZW5lcmF0ZWQgYmluZGluZ3MKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2xv
YWRlci9MaW5rTG9hZGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9sb2FkZXIv
TGlua0xvYWRlci5jcHAJKHJldmlzaW9uIDE5OTcwNCkKKysrIFNvdXJjZS9XZWJDb3JlL2xvYWRl
ci9MaW5rTG9hZGVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM3LDEyICsxMzcsNiBAQCBzdGF0
aWMgdm9pZCBwcmVsb2FkSWZOZWVkZWQoY29uc3QgTGlua1JlCiAKIGJvb2wgTGlua0xvYWRlcjo6
bG9hZExpbmsoY29uc3QgTGlua1JlbEF0dHJpYnV0ZSYgcmVsQXR0cmlidXRlLCBjb25zdCBVUkwm
IGhyZWYsIGNvbnN0IFN0cmluZyYgYXMsIGNvbnN0IFN0cmluZyYgY3Jvc3NPcmlnaW4sIERvY3Vt
ZW50JiBkb2N1bWVudCkKIHsKLSAgICAvLyBXZSdsbCByZWNvcmQgdGhpcyBVUkwgcGVyIGRvY3Vt
ZW50LCBldmVuIGlmIHdlIGxhdGVyIG9ubHkgdXNlIGl0IGluIHRvcCBsZXZlbCBmcmFtZXMKLSAg
ICBpZiAocmVsQXR0cmlidXRlLmljb25UeXBlICE9IEludmFsaWRJY29uICYmIGhyZWYuaXNWYWxp
ZCgpICYmICFocmVmLmlzRW1wdHkoKSkgewotICAgICAgICBpZiAoIW1fY2xpZW50LnNob3VsZExv
YWRMaW5rKCkpCi0gICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotCiAgICAgaWYgKHJl
bEF0dHJpYnV0ZS5pc0ROU1ByZWZldGNoKSB7CiAgICAgICAgIFNldHRpbmdzKiBzZXR0aW5ncyA9
IGRvY3VtZW50LnNldHRpbmdzKCk7CiAgICAgICAgIC8vIEZJWE1FOiBUaGUgaHJlZiBhdHRyaWJ1
dGUgb2YgdGhlIGxpbmsgZWxlbWVudCBjYW4gYmUgaW4gIi8vaG9zdG5hbWUiIGZvcm0sIGFuZCB3
ZSBzaG91bGRuJ3QgYXR0ZW1wdApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL0NoYW5nZUxvZwkocmV2aXNpb24gMTk5NzQ4KQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTkgQEAKKzIwMTYtMDQtMTkgIEJyZW50IEZ1bGdoYW0g
IDxiZnVsZ2hhbUBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHJlbWFpbmluZyBiaXRzIG9m
IGR5bmFtaWMgPGxpbms+IHJlbD0naWNvbicgbG9hZGluZworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU2NzI3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVtb3ZlIHVudXNlZCB0ZXN0IGluZnJhc3RydWN0
dXJlLiBUaGlzIGNvZGUgbmV2ZXIgZXhpc3RlZCBpbiBXZWJLaXQyCisgICAgICAgIHRlc3Rpbmcg
c2luY2Ugd2FzIG9ubHkgdXNlZCBvbiBXaW5kb3dzLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChkdW1wSWNvbkNoYW5nZXNDYWxsYmFjayk6IERl
bGV0ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgorICAgICAgICAo
VGVzdFJ1bm5lcjo6ZHVtcEljb25DaGFuZ2VzKTogRGVsZXRlZC4KKyAgICAgICAgKFRlc3RSdW5u
ZXI6OnNldER1bXBJY29uQ2hhbmdlcyk6IERlbGV0ZWQuCisKIDIwMTYtMDQtMTkgIEtlaXRoIE1p
bGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5jb20+CiAKICAgICAgICAgT2JqY0luc3RhbmNlOjpz
dHJpbmdWYWx1ZSBzaG91bGQgbm90IGNhbGwgTlNPYmplY3QncyBkZXNjcmlwdGlvbiBtZXRob2QK
SW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwCShyZXZpc2lvbiAxOTk3MDQpCisr
KyBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
ODEsNyArODEsNiBAQCBUZXN0UnVubmVyOjpUZXN0UnVubmVyKGNvbnN0IHN0ZDo6c3RyaW5nCiAg
ICAgLCBtX2R1bXBTb3VyY2VBc1dlYkFyY2hpdmUoZmFsc2UpCiAgICAgLCBtX2R1bXBTdGF0dXND
YWxsYmFja3MoZmFsc2UpCiAgICAgLCBtX2R1bXBUaXRsZUNoYW5nZXMoZmFsc2UpCi0gICAgLCBt
X2R1bXBJY29uQ2hhbmdlcyhmYWxzZSkKICAgICAsIG1fZHVtcFZpc2l0ZWRMaW5rc0NhbGxiYWNr
KGZhbHNlKQogICAgICwgbV9kdW1wV2lsbENhY2hlUmVzcG9uc2UoZmFsc2UpCiAgICAgLCBtX2dl
bmVyYXRlUGl4ZWxSZXN1bHRzKHRydWUpCkBAIC0yNjMsMTMgKzI2Miw2IEBAIHN0YXRpYyBKU1Zh
bHVlUmVmIGR1bXBUaXRsZUNoYW5nZXNDYWxsYmEKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRl
ZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIGR1bXBJY29uQ2hhbmdlc0Nh
bGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiBmdW5jdGlvbiwgSlNPYmpl
Y3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYg
YXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKLXsKLSAgICBUZXN0UnVubmVyKiBj
b250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0
aGlzT2JqZWN0KSk7Ci0gICAgY29udHJvbGxlci0+c2V0RHVtcEljb25DaGFuZ2VzKHRydWUpOwot
ICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKLX0KLQogc3RhdGljIEpT
VmFsdWVSZWYgZHVtcFdpbGxDYWNoZVJlc3BvbnNlQ2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZWN0UmVmIGZ1bmN0aW9uLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3Qg
YXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiog
ZXhjZXB0aW9uKQogewogICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxU
ZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKQEAgLTIwNjQsNyAr
MjA1Niw2IEBAIEpTU3RhdGljRnVuY3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmMKICAgICAg
ICAgeyAiZHVtcFNvdXJjZUFzV2ViQXJjaGl2ZSIsIGR1bXBTb3VyY2VBc1dlYkFyY2hpdmVDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJkdW1wU3RhdHVzQ2FsbGJhY2tzIiwgZHVtcFN0YXR1
c0NhbGxiYWNrc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJv
cGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgImR1bXBUaXRsZUNoYW5nZXMi
LCBkdW1wVGl0bGVDaGFuZ2VzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAiZHVtcEljb25D
aGFuZ2VzIiwgZHVtcEljb25DaGFuZ2VzQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAiZHVt
cFdpbGxDYWNoZVJlc3BvbnNlIiwgZHVtcFdpbGxDYWNoZVJlc3BvbnNlQ2FsbGJhY2ssIGtKU1By
b3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUg
fSwKICAgICAgICAgeyAiZW5jb2RlSG9zdE5hbWUiLCBlbmNvZGVIb3N0TmFtZUNhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCiAgICAgICAgIHsgImV2YWx1YXRlSW5XZWJJbnNwZWN0b3IiLCBldmFsdWF0ZUluV2Vi
SW5zcGVjdG9yQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RSdW5uZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVy
LmgJKHJldmlzaW9uIDE5OTcwNCkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIu
aAkod29ya2luZyBjb3B5KQpAQCAtMjEwLDkgKzIxMCw2IEBAIHB1YmxpYzoKICAgICBib29sIGR1
bXBUaXRsZUNoYW5nZXMoKSBjb25zdCB7IHJldHVybiBtX2R1bXBUaXRsZUNoYW5nZXM7IH0KICAg
ICB2b2lkIHNldER1bXBUaXRsZUNoYW5nZXMoYm9vbCBkdW1wVGl0bGVDaGFuZ2VzKSB7IG1fZHVt
cFRpdGxlQ2hhbmdlcyA9IGR1bXBUaXRsZUNoYW5nZXM7IH0KIAotICAgIGJvb2wgZHVtcEljb25D
aGFuZ2VzKCkgY29uc3QgeyByZXR1cm4gbV9kdW1wSWNvbkNoYW5nZXM7IH0KLSAgICB2b2lkIHNl
dER1bXBJY29uQ2hhbmdlcyhib29sIGR1bXBJY29uQ2hhbmdlcykgeyBtX2R1bXBJY29uQ2hhbmdl
cyA9IGR1bXBJY29uQ2hhbmdlczsgfQotCiAgICAgYm9vbCBkdW1wVmlzaXRlZExpbmtzQ2FsbGJh
Y2soKSBjb25zdCB7IHJldHVybiBtX2R1bXBWaXNpdGVkTGlua3NDYWxsYmFjazsgfQogICAgIHZv
aWQgc2V0RHVtcFZpc2l0ZWRMaW5rc0NhbGxiYWNrKGJvb2wgZHVtcFZpc2l0ZWRMaW5rc0NhbGxi
YWNrKSB7IG1fZHVtcFZpc2l0ZWRMaW5rc0NhbGxiYWNrID0gZHVtcFZpc2l0ZWRMaW5rc0NhbGxi
YWNrOyB9CiAgICAgCkBAIC0zODYsNyArMzgzLDYgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZHVt
cFNvdXJjZUFzV2ViQXJjaGl2ZTsKICAgICBib29sIG1fZHVtcFN0YXR1c0NhbGxiYWNrczsKICAg
ICBib29sIG1fZHVtcFRpdGxlQ2hhbmdlczsKLSAgICBib29sIG1fZHVtcEljb25DaGFuZ2VzOwog
ICAgIGJvb2wgbV9kdW1wVmlzaXRlZExpbmtzQ2FsbGJhY2s7CiAgICAgYm9vbCBtX2R1bXBXaWxs
Q2FjaGVSZXNwb25zZTsKICAgICBib29sIG1fZ2VuZXJhdGVQaXhlbFJlc3VsdHM7CkluZGV4OiBM
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CShyZXZpc2lvbiAxOTk3MDQpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29w
eSkKQEAgLTEsMyArMSwyMiBAQAorMjAxNi0wNC0xOSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFt
QGFwcGxlLmNvbT4KKworICAgICAgICBSZW1vdmUgcmVtYWluaW5nIGJpdHMgb2YgZHluYW1pYyA8
bGluaz4gcmVsPSdpY29uJyBsb2FkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTY3MjcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBSZW5hbWUgJ3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0
bWwnIHRvICd0ZXN0LWxpbmstcmVsLXN1YnJlc291cmNlLWJlZm9yZWxvYWQuaHRtbCcuCisKKyAg
ICAgICAgKiBmYXN0L2RvbS9pY29uLXVybC1wcm9wZXJ0eS1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogZmFzdC9kb20vaWNvbi11cmwtcHJvcGVydHkuaHRtbDogUmVtb3ZlZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczogUmVtb3ZlIHJlZmVyZW5jZXMg
dG8gZGVsZXRlZCB0ZXN0cy4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RF
eHBlY3RhdGlvbnM6IERpdHRvLiAKKyAgICAgICAgKiBwbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0
aW9uczogRGl0dG8uCisgICAgICAgICogd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLWljb24tYmVm
b3JlbG9hZC1leHBlY3RlZC53ZWJhcmNoaXZlOiBSZW1vdmVkLgorICAgICAgICAqIHdlYmFyY2hp
dmUvdGVzdC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAg
KiB3ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtc3VicmVzb3VyY2UtYmVmb3JlbG9hZC1leHBlY3Rl
ZC53ZWJhcmNoaXZlOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGlu
ay1yZWwtaWNvbi1iZWZvcmVsb2FkLWV4cGVjdGVkLndlYmFyY2hpdmUuCisgICAgICAgICogd2Vi
YXJjaGl2ZS90ZXN0LWxpbmstcmVsLXN1YnJlc291cmNlLWJlZm9yZWxvYWQuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9h
ZC5odG1sLgorCiAyMDE2LTA0LTE4ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlh
LmNvbT4KIAogICAgICAgICBbR1RLXSBQb3NzaWJsZSBvZmYtYnktb25lIGluIGh5cGhlbmF0aW9u
IGNvZGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLXByb3BlcnR5LWV4cGVj
dGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9pY29uLXVybC1wcm9w
ZXJ0eS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDE5OTcwNCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL2ljb24tdXJsLXByb3BlcnR5LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw3
ICswLDAgQEAKLW1haW4gZnJhbWUgLSBkaWRDaGFuZ2VJY29ucwotbWFpbiBmcmFtZSAtIGRpZENo
YW5nZUljb25zCi1tYWluIGZyYW1lIC0gZGlkQ2hhbmdlSWNvbnMKLU9yaWdpbmFsIGljb25VUkwg
aXM6IGh0dHA6Ly90ZXN0LmNvbS9vbGRmYXZpY29uLmljbwotU2V0dGluZyBuZXcgaWNvbiBVUkwg
dG86IGh0dHA6Ly90ZXN0LmNvbS9uZXdmYXZpY29uLmljbwotTmV3IGljb25VUkwgaXM6IGh0dHA6
Ly90ZXN0LmNvbS9uZXdmYXZpY29uLmljbwotUEFTUyAtIFVSTCBsaXN0IG1hdGNoZXMgZXhwZWN0
ZWQKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL2ljb24tdXJsLXByb3BlcnR5Lmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtcHJvcGVydHkuaHRtbAko
cmV2aXNpb24gMTk5NzA0KQorKysgTGF5b3V0VGVzdHMvZmFzdC9kb20vaWNvbi11cmwtcHJvcGVy
dHkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3NSArMCwwIEBACi08aHRtbD4KLTxoZWFkPgot
PHRpdGxlPk9yaWdpbmFsIFRpdGxlPC90aXRsZT4KLTxsaW5rIHJlbD0ic2hvcnRjdXQgaWNvbiIg
dHlwZT0iaW1hZ2UveC1pY29uIiBocmVmPSJodHRwOi8vdGVzdC5jb20vb2xkZmF2aWNvbi5pY28i
Lz4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBkZWJ1Z091dHB1dChzdHIpIHsKLSAgICB0ZXh0ID0gZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUoc3RyKTsKLSAgICBkZWJ1Z0RpdiA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdkZWJ1Z0RpdicpOwotICAgIGRpdiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQg
KCdkaXYnKTsKLSAgICBkaXYuYXBwZW5kQ2hpbGQodGV4dCk7Ci0gICAgZGVidWdEaXYuYXBwZW5k
Q2hpbGQoZGl2KTsKLX0KLQotZnVuY3Rpb24gY3JlYXRlRmF2SWNvbkVsZW1lbnQoaWNvblVSTCkg
ewotICAgIHZhciBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgibGluayIpOwotICAgIGxp
bmsudHlwZSA9ICJpbWFnZS94LWljb24iOwotICAgIGxpbmsucmVsID0gInNob3J0Y3V0IGljb24i
OwotICAgIGxpbmsuaHJlZiA9IGljb25VUkw7Ci0gICAgcmV0dXJuIGxpbms7Ci19Ci0KLWZ1bmN0
aW9uIGdldEhlYWRFbGVtZW50KCkgewotICAgIHJldHVybiBkb2N1bWVudC5nZXRFbGVtZW50c0J5
VGFnTmFtZSgiaGVhZCIpWzBdOwotfQotCi1mdW5jdGlvbiBzZXRGYXZJY29uKGljb25VUkwpIHsK
LSAgICB2YXIgZG9jSGVhZCA9IGdldEhlYWRFbGVtZW50KCk7Ci0gICAgdmFyIGxpbmtzID0gZG9j
SGVhZC5nZXRFbGVtZW50c0J5VGFnTmFtZSgibGluayIpOwotICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgbGlua3MubGVuZ3RoOyArK2kpIHsKLSAgICAgIHZhciBsaW5rID0gbGlua3NbaV07Ci0gICAg
ICBpZiAobGluay50eXBlPT0iaW1hZ2UveC1pY29uIiAmJiBsaW5rLnJlbD09InNob3J0Y3V0IGlj
b24iKSB7Ci0gICAgICAgIGRvY0hlYWQucmVtb3ZlQ2hpbGQobGluayk7Ci0gICAgICAgIGJyZWFr
OyAvLyBBc3N1bWluZyBvbmx5IG9uZSBtYXRjaCBhdCBtb3N0LgotICAgICAgfQotICAgIH0KLSAg
ICBkb2NIZWFkLmFwcGVuZENoaWxkKGNyZWF0ZUZhdkljb25FbGVtZW50KGljb25VUkwpKTsKLX0K
LQotZnVuY3Rpb24gcnVuVGVzdHMoKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0g
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBpZiAodGVzdFJ1bm5lci5k
dW1wSWNvbkNoYW5nZXMpCi0gICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBJY29uQ2hhbmdlcygp
OwotICAgIH0KLQotICAgIGljb25VUkwgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgi
aGVhZCIpWzBdLmdldEVsZW1lbnRzQnlUYWdOYW1lKCJsaW5rIilbMF0uaHJlZjsKLSAgICBkZWJ1
Z091dHB1dCAoJ09yaWdpbmFsIGljb25VUkwgaXM6ICcgKyBpY29uVVJMKTsKLSAgICBuZXdVUkwg
PSAnaHR0cDovL3Rlc3QuY29tL25ld2Zhdmljb24uaWNvJzsKLSAgICBkZWJ1Z091dHB1dCAoJ1Nl
dHRpbmcgbmV3IGljb24gVVJMIHRvOiAnICsgbmV3VVJMKTsKLSAgICBzZXRGYXZJY29uKG5ld1VS
TCk7Ci0gICAgaWNvblVSTCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilb
MF0uZ2V0RWxlbWVudHNCeVRhZ05hbWUoImxpbmsiKVswXS5ocmVmOwotCi0gICAgZGVidWdPdXRw
dXQgKCdOZXcgaWNvblVSTCBpczogJyArIGljb25VUkwpOwotCi0gICAgLy8gY2hlY2sgdGhhdCB0
aGUgVVJMIGxpc3QgaW4gdGhlIGRvY3VtZW50IGlzIGFzIHdlIGV4cGVjdAotICAgIHZhciBleHBl
Y3RlZFVSTHMgPSAiaHR0cDovL3Rlc3QuY29tL25ld2Zhdmljb24uaWNvIjsKLSAgICB2YXIgaWNv
blVSTHMgPSB3aW5kb3cuaW50ZXJuYWxzLnNob3J0Y3V0SWNvblVSTHMoKTsKLSAgICBpZiAoZXhw
ZWN0ZWRVUkxzID09IGljb25VUkxzWzBdKQotICAgICAgICBkZWJ1Z091dHB1dCgnUEFTUyAtIFVS
TCBsaXN0IG1hdGNoZXMgZXhwZWN0ZWQnKTsKLSAgICBlbHNlCi0gICAgICAgIGRlYnVnT3V0cHV0
KCdGQUlMIC0gVVJMIGxpc3QgZG9lcyBub3QgbWF0Y2ggZXhwZWN0ZWQnKTsKLQotICAgIC8vIEFk
ZCBzb21lIG1vcmUgZmF2IGljb25zIHRvIHZlcmlmeSB0aGF0IGRpZENoYW5nZUljb25zIGdldHMg
Y2FsbGVkLgotICAgIHZhciBkb2NIZWFkID0gZ2V0SGVhZEVsZW1lbnQoKTsKLSAgICBkb2NIZWFk
Lmluc2VydEJlZm9yZShjcmVhdGVGYXZJY29uRWxlbWVudCgiaHR0cDovL2V4YW1wbGUub3JnL2lj
b24xLmljbyIpLCBkb2NIZWFkLmZpcnN0Q2hpbGQpOwotICAgIGRvY0hlYWQuYXBwZW5kQ2hpbGQo
Y3JlYXRlRmF2SWNvbkVsZW1lbnQoImh0dHA6Ly9leGFtcGxlLm9yZy9pY29uMi5pY28iKSk7Ci19
Ci0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSdydW5UZXN0cygpOyc+Ci08ZGl2
IGlkPSdkZWJ1Z0Rpdic+Ci08L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxOTk3MDQpCisrKyBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpA
QCAtMjA3Niw4ICsyMDc2LDYgQEAgd2Via2l0Lm9yZy9iLzExMjIyOCBzdmcvY3VzdG9tL3Jlc291
cmNlcwogCiB3ZWJraXQub3JnL2IvOTk4OTMgc3ZnL2FuaW1hdGlvbnMvbW96aWxsYS9hbmltYXRl
TW90aW9uLW1wYXRoLXRhcmdldENoYW5nZS0xLnN2ZyBbIEltYWdlT25seUZhaWx1cmUgUGFzcyBd
CiAKLXdlYmtpdC5vcmcvYi8xMTI3MDUgZmFzdC9kb20vaWNvbi11cmwtcHJvcGVydHkuaHRtbCBb
IEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMTEzNzcyIGh0dHAvdGVzdHMvdzNjL3dlYnBlcmYv
c3VibWlzc2lvbi9Hb29nbGUvcmVzb3VyY2UtdGltaW5nL2h0bWwvdGVzdF9yZXNvdXJjZV9pZnJh
bWVfc2VsZl9uYXZpZ2F0aW9uLmh0bWwgWyBGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8xMTM3NzIg
aHR0cC90ZXN0cy93M2Mvd2VicGVyZi9zdWJtaXNzaW9uL0dvb2dsZS9yZXNvdXJjZS10aW1pbmcv
aHRtbC90ZXN0X3Jlc291cmNlX2NhY2hlZC5odG1sIFsgRmFpbHVyZSBdCiAKSW5kZXg6IExheW91
dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL1Rlc3RFeHBlY3RhdGlvbnMJ
KHJldmlzaW9uIDE5OTcwNCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3Iv
VGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMTU2NCw3ICsxNTY0LDYgQEAgZmFz
dC9kb20vY3VzdG9tL2xpZmVjeWNsZS1yZWFkeS1wYXJzZXItbwogZmFzdC9kb20vY3VzdG9tL2xp
ZmVjeWNsZS1yZWFkeS1wYXJzZXItc2NyaXB0Lmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvZG9tL2hv
cml6b250YWwtc2Nyb2xsYmFyLWluLXJ0bC5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L2RvbS9ob3Jp
em9udGFsLXNjcm9sbGJhci13aGVuLWRpci1jaGFuZ2UuaHRtbCBbIEZhaWx1cmUgXQotZmFzdC9k
b20vaWNvbi11cmwtcHJvcGVydHkuaHRtbCBbIEZhaWx1cmUgXQogZmFzdC9kb20vanNEZXZpY2VQ
aXhlbFJhdGlvLmh0bWwgWyBGYWlsdXJlIF0KIGZhc3QvZG9tL25hdmlnYXRvci1kZXRhY2hlZC1u
by1jcmFzaC5odG1sIFsgRmFpbHVyZSBdCiBmYXN0L2RvbS9zY3JvbGwtcmV2ZWFsLWxlZnQtb3Zl
cmZsb3cuaHRtbCBbIEZhaWx1cmUgXQpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rl
c3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rl
c3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDE5OTcwNCkKKysrIExheW91dFRlc3RzL3BsYXRmb3Jt
L3drMi9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC00NSwxMCArNDUsNiBAQAog
d2Via2l0Lm9yZy9iLzE1NjYxMiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9lbWJlZC1yZWRpcmVjdC1ibG9ja2VkMy5odG1sIFsgRmFpbHVyZSBdCiB3ZWJraXQub3Jn
L2IvMTU2NjEyIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L29iamVj
dC1yZWRpcmVjdC1ibG9ja2VkMy5odG1sIFsgRmFpbHVyZSBdCiAKLSMgV2ViS2l0VGVzdFJ1bm5l
ciBuZWVkcyB0byBpbXBsZW1lbnQgdGVzdFJ1bm5lci5kdW1wSWNvbkNoYW5nZXMoKS4KLXdlYmtp
dC5vcmcvYi80NDA0NiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9p
Y29uLWFsbG93ZWQuaHRtbAotd2Via2l0Lm9yZy9iLzQ0MDQ2IGh0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L2ljb24tYmxvY2tlZC5odG1sCi0KICMgQVggdGVzdHMgdGhh
dCByZXF1aXJlIGhpdCB0ZXN0aW5nIGRvIG5vdCB3b3JrIGluIFdLMi4KIHdlYmtpdC5vcmcvYi83
MTI5OCBhY2Nlc3NpYmlsaXR5L2xvYWRpbmctaWZyYW1lLXVwZGF0ZXMtYXh0cmVlLmh0bWwKIHdl
YmtpdC5vcmcvYi83MTI5OCBhY2Nlc3NpYmlsaXR5L21hYy9odG1sLXNsaWRlci1pbmRpY2F0b3Iu
aHRtbApAQCAtNzIsOSArNjgsNiBAQCB3ZWJraXQub3JnL2IvNjA2NDggZmFzdC9mcmFtZXMvZmxh
dHRlbmluCiB3ZWJraXQub3JnL2IvNDIxOTcgZmFzdC9oYXJuZXNzL292ZXJyaWRlLXByZWZlcmVu
Y2VzLTIuaHRtbCBbIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzQyMTk3IGZhc3QvdGV4dC96ZXJv
LWZvbnQtc2l6ZS5odG1sIFsgUGFzcyBdCiAKLSMgc2V0SWNvbkRhdGFiYXNlRW5hYmxlZCBub3Qg
aW1wbGVtZW50ZWQgaW4gV2ViS2l0VGVzdFJ1bm5lci4KLXdlYmtpdC5vcmcvYi8xMTU4MDkgd2Vi
YXJjaGl2ZS90ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9hZC5odG1sIFsgU2tpcCBdCi0KIHdl
YmtpdC5vcmcvYi84MjY2NSBodHRwL3Rlc3RzL3dlYmFyY2hpdmUvdGVzdC1jc3MtdXJsLWVuY29k
aW5nLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi84MjY2NSBodHRwL3Rlc3RzL3dlYmFyY2hp
dmUvdGVzdC1jc3MtdXJsLWVuY29kaW5nLXNoaWZ0LWppcy5odG1sIFsgU2tpcCBdCiB3ZWJraXQu
b3JnL2IvODI2NjUgaHR0cC90ZXN0cy93ZWJhcmNoaXZlL3Rlc3QtY3NzLXVybC1lbmNvZGluZy11
dGYtOC5odG1sIFsgU2tpcCBdCkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGlu
ay1yZWwtaWNvbi1iZWZvcmVsb2FkLWV4cGVjdGVkLndlYmFyY2hpdmUKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9hZC1leHBl
Y3RlZC53ZWJhcmNoaXZlCShyZXZpc2lvbiAxOTk3MDQpCisrKyBMYXlvdXRUZXN0cy93ZWJhcmNo
aXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLWV4cGVjdGVkLndlYmFyY2hpdmUJKHdv
cmtpbmcgY29weSkKQEAgLTEsNDggKzAsMCBAQAotPD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGlu
Zz0iVVRGLTgiPz4KLTwhRE9DVFlQRSBwbGlzdCBQVUJMSUMgIi0vL0FwcGxlLy9EVEQgUExJU1Qg
MS4wLy9FTiIgImh0dHA6Ly93d3cuYXBwbGUuY29tL0RURHMvUHJvcGVydHlMaXN0LTEuMC5kdGQi
PgotPHBsaXN0IHZlcnNpb249IjEuMCI+Ci08ZGljdD4KLQk8a2V5PldlYk1haW5SZXNvdXJjZTwv
a2V5PgotCTxkaWN0PgotCQk8a2V5PldlYlJlc291cmNlRGF0YTwva2V5PgotCQk8c3RyaW5nPiZs
dDtodG1sJmd0OyZsdDtoZWFkJmd0OwotJmx0O3NjcmlwdCZndDsKLWZ1bmN0aW9uIHJ1blRlc3Qo
KQotewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLnNl
dEljb25EYXRhYmFzZUVuYWJsZWQodHJ1ZSk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcERPTUFz
V2ViQXJjaGl2ZSgpOwotICAgICAgICB0ZXN0UnVubmVyLnF1ZXVlUmVsb2FkKCk7Ci0gICAgfQot
fQotJmx0Oy9zY3JpcHQmZ3Q7Ci0mbHQ7L2hlYWQmZ3Q7Ci0mbHQ7Ym9keSBvbmxvYWQ9InJ1blRl
c3QoKSImZ3Q7Ci0mbHQ7ZGl2IGlkPSJjb25zb2xlIiZndDsmbHQ7ZGl2IHN0eWxlPSJmb250LWZh
bWlseTogbW9ub3NwYWNlOyBjb2xvcjogZ3JlZW47IiZndDtQQVNTJmx0Oy9kaXYmZ3Q7Jmx0Oy9k
aXYmZ3Q7Ci0mbHQ7c2NyaXB0Jmd0OwotZnVuY3Rpb24gcHJpbnQobWVzc2FnZSwgY29sb3IpIAot
ewotICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAg
ICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSkp
OwotICAgIHBhcmFncmFwaC5zdHlsZS5mb250RmFtaWx5ID0gIm1vbm9zcGFjZSI7Ci0gICAgaWYg
KGNvbG9yKQotICAgICAgICBwYXJhZ3JhcGguc3R5bGUuY29sb3IgPSBjb2xvcjsKLSAgICBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHBhcmFncmFwaCk7Ci19
Ci0mbHQ7L3NjcmlwdCZndDsKLSZsdDtwJmd0O1RoaXMgdGVzdCBzaG91bGQgaGF2ZSBhIGdyZWVu
ICdQQVNTJyBqdXN0IGFib3ZlIHRoaXMgbGluZS4gIElmIGl0IGRvZXNuJ3QsIHlvdSBmYWlsZWQu
Ci0mbHQ7bGluayByZWw9Imljb24iIG9uYmVmb3JlbG9hZD0icHJpbnQoJ1BBU1MnLCdncmVlbicp
O3JldHVybiBmYWxzZSIgaHJlZj0icmVzb3VyY2VzL2Zhdmljb24uaWNvIiB0eXBlPSJpbWFnZS94
LWljb24iJmd0OwotCi0KLSZsdDsvcCZndDsmbHQ7L2JvZHkmZ3Q7Jmx0Oy9odG1sJmd0Ozwvc3Ry
aW5nPgotCQk8a2V5PldlYlJlc291cmNlRnJhbWVOYW1lPC9rZXk+Ci0JCTxzdHJpbmc+PC9zdHJp
bmc+Ci0JCTxrZXk+V2ViUmVzb3VyY2VNSU1FVHlwZTwva2V5PgotCQk8c3RyaW5nPnRleHQvaHRt
bDwvc3RyaW5nPgotCQk8a2V5PldlYlJlc291cmNlVGV4dEVuY29kaW5nTmFtZTwva2V5PgotCQk8
c3RyaW5nPlVURi04PC9zdHJpbmc+Ci0JCTxrZXk+V2ViUmVzb3VyY2VVUkw8L2tleT4KLQkJPHN0
cmluZz5maWxlOi8vL0xheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWJl
Zm9yZWxvYWQuaHRtbDwvc3RyaW5nPgotCTwvZGljdD4KLTwvZGljdD4KLTwvcGxpc3Q+CkluZGV4
OiBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLWlj
b24tYmVmb3JlbG9hZC5odG1sCShyZXZpc2lvbiAxOTk3MDQpCisrKyBMYXlvdXRUZXN0cy93ZWJh
cmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVsb2FkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsMzAgKzAsMCBAQAotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQ+Ci1mdW5jdGlvbiBydW5U
ZXN0KCkKLXsKLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5l
ci5zZXRJY29uRGF0YWJhc2VFbmFibGVkKHRydWUpOwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBE
T01Bc1dlYkFyY2hpdmUoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5xdWV1ZVJlbG9hZCgpOwotICAg
IH0KLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJydW5UZXN0KCkiPgotPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+Ci08c2NyaXB0PgotZnVuY3Rpb24gcHJpbnQobWVzc2FnZSwg
Y29sb3IpIAotewotICAgIHZhciBwYXJhZ3JhcGggPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJk
aXYiKTsKLSAgICBwYXJhZ3JhcGguYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
bWVzc2FnZSkpOwotICAgIHBhcmFncmFwaC5zdHlsZS5mb250RmFtaWx5ID0gIm1vbm9zcGFjZSI7
Ci0gICAgaWYgKGNvbG9yKQotICAgICAgICBwYXJhZ3JhcGguc3R5bGUuY29sb3IgPSBjb2xvcjsK
LSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKHBhcmFn
cmFwaCk7Ci19Ci08L3NjcmlwdD4KLTxwPlRoaXMgdGVzdCBzaG91bGQgaGF2ZSBhIGdyZWVuICdQ
QVNTJyBqdXN0IGFib3ZlIHRoaXMgbGluZS4gIElmIGl0IGRvZXNuJ3QsIHlvdSBmYWlsZWQuCi08
bGluayByZWw9Imljb24iIG9uYmVmb3JlbG9hZD0icHJpbnQoJ1BBU1MnLCdncmVlbicpO3JldHVy
biBmYWxzZSIgaHJlZj0icmVzb3VyY2VzL2Zhdmljb24uaWNvIiB0eXBlPSJpbWFnZS94LWljb24i
PgotPC9ib2R5PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWxp
bmstcmVsLXN1YnJlc291cmNlLWJlZm9yZWxvYWQtZXhwZWN0ZWQud2ViYXJjaGl2ZQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtc3VicmVzb3VyY2Ut
YmVmb3JlbG9hZC1leHBlY3RlZC53ZWJhcmNoaXZlCShyZXZpc2lvbiAxOTk3MDQpCShmcm9tIExh
eW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1pY29uLWJlZm9yZWxvYWQtZXhwZWN0
ZWQud2ViYXJjaGl2ZToxOTk3MDQpCisrKyBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGlu
ay1yZWwtc3VicmVzb3VyY2UtYmVmb3JlbG9hZC1leHBlY3RlZC53ZWJhcmNoaXZlCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNDggQEAKKzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVU
Ri04Ij8+Cis8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8v
RU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KKzxw
bGlzdCB2ZXJzaW9uPSIxLjAiPgorPGRpY3Q+CisJPGtleT5XZWJNYWluUmVzb3VyY2U8L2tleT4K
Kwk8ZGljdD4KKwkJPGtleT5XZWJSZXNvdXJjZURhdGE8L2tleT4KKwkJPHN0cmluZz4mbHQ7aHRt
bCZndDsmbHQ7aGVhZCZndDsKKyZsdDtzY3JpcHQmZ3Q7CitmdW5jdGlvbiBydW5UZXN0KCkKK3sK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRJY29u
RGF0YWJhc2VFbmFibGVkKHRydWUpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBET01Bc1dlYkFy
Y2hpdmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5xdWV1ZVJlbG9hZCgpOworICAgIH0KK30KKyZs
dDsvc2NyaXB0Jmd0OworJmx0Oy9oZWFkJmd0OworJmx0O2JvZHkgb25sb2FkPSJydW5UZXN0KCki
Jmd0OworJmx0O2RpdiBpZD0iY29uc29sZSImZ3Q7Jmx0O2RpdiBzdHlsZT0iZm9udC1mYW1pbHk6
IG1vbm9zcGFjZTsgY29sb3I6IGdyZWVuOyImZ3Q7UEFTUyZsdDsvZGl2Jmd0OyZsdDsvZGl2Jmd0
OworJmx0O3NjcmlwdCZndDsKK2Z1bmN0aW9uIHByaW50KG1lc3NhZ2UsIGNvbG9yKSAKK3sKKyAg
ICB2YXIgcGFyYWdyYXBoID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgcGFy
YWdyYXBoLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKKyAg
ICBwYXJhZ3JhcGguc3R5bGUuZm9udEZhbWlseSA9ICJtb25vc3BhY2UiOworICAgIGlmIChjb2xv
cikKKyAgICAgICAgcGFyYWdyYXBoLnN0eWxlLmNvbG9yID0gY29sb3I7CisgICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnNvbGUiKS5hcHBlbmRDaGlsZChwYXJhZ3JhcGgpOworfQorJmx0
Oy9zY3JpcHQmZ3Q7CismbHQ7cCZndDtUaGlzIHRlc3Qgc2hvdWxkIGhhdmUgYSBncmVlbiAnUEFT
UycganVzdCBhYm92ZSB0aGlzIGxpbmUuICBJZiBpdCBkb2Vzbid0LCB5b3UgZmFpbGVkLgorJmx0
O2xpbmsgcmVsPSJpY29uIiBvbmJlZm9yZWxvYWQ9InByaW50KCdQQVNTJywnZ3JlZW4nKTtyZXR1
cm4gZmFsc2UiIGhyZWY9InJlc291cmNlcy9mYXZpY29uLmljbyIgdHlwZT0iaW1hZ2UveC1pY29u
IiZndDsKKworCismbHQ7L3AmZ3Q7Jmx0Oy9ib2R5Jmd0OyZsdDsvaHRtbCZndDs8L3N0cmluZz4K
KwkJPGtleT5XZWJSZXNvdXJjZUZyYW1lTmFtZTwva2V5PgorCQk8c3RyaW5nPjwvc3RyaW5nPgor
CQk8a2V5PldlYlJlc291cmNlTUlNRVR5cGU8L2tleT4KKwkJPHN0cmluZz50ZXh0L2h0bWw8L3N0
cmluZz4KKwkJPGtleT5XZWJSZXNvdXJjZVRleHRFbmNvZGluZ05hbWU8L2tleT4KKwkJPHN0cmlu
Zz5VVEYtODwvc3RyaW5nPgorCQk8a2V5PldlYlJlc291cmNlVVJMPC9rZXk+CisJCTxzdHJpbmc+
ZmlsZTovLy9MYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi1iZWZvcmVs
b2FkLmh0bWw8L3N0cmluZz4KKwk8L2RpY3Q+Cis8L2RpY3Q+Cis8L3BsaXN0PgpJbmRleDogTGF5
b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLXN1YnJlc291cmNlLWJlZm9yZWxvYWQt
ZXhwZWN0ZWQud2ViYXJjaGl2ZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy93ZWJhcmNoaXZl
L3Rlc3QtbGluay1yZWwtc3VicmVzb3VyY2UtYmVmb3JlbG9hZC1leHBlY3RlZC53ZWJhcmNoaXZl
CSh3b3JraW5nIGNvcHkpCisrKyBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwt
c3VicmVzb3VyY2UtYmVmb3JlbG9hZC1leHBlY3RlZC53ZWJhcmNoaXZlCSh3b3JraW5nIGNvcHkp
CkBAIC0xMCw3ICsxMCw2IEBACiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRJY29uRGF0YWJhc2VFbmFibGVk
KHRydWUpOwogICAgICAgICB0ZXN0UnVubmVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKICAgICAg
ICAgdGVzdFJ1bm5lci5xdWV1ZVJlbG9hZCgpOwogICAgIH0KQEAgLTMxLDcgKzMwLDcgQEAgZnVu
Y3Rpb24gcHJpbnQobWVzc2FnZSwgY29sb3IpIAogfQogJmx0Oy9zY3JpcHQmZ3Q7CiAmbHQ7cCZn
dDtUaGlzIHRlc3Qgc2hvdWxkIGhhdmUgYSBncmVlbiAnUEFTUycganVzdCBhYm92ZSB0aGlzIGxp
bmUuICBJZiBpdCBkb2Vzbid0LCB5b3UgZmFpbGVkLgotJmx0O2xpbmsgcmVsPSJpY29uIiBvbmJl
Zm9yZWxvYWQ9InByaW50KCdQQVNTJywnZ3JlZW4nKTtyZXR1cm4gZmFsc2UiIGhyZWY9InJlc291
cmNlcy9mYXZpY29uLmljbyIgdHlwZT0iaW1hZ2UveC1pY29uIiZndDsKKyZsdDtsaW5rIHJlbD0i
c3VicmVzb3VyY2UiIG9uYmVmb3JlbG9hZD0icHJpbnQoJ1BBU1MnLCdncmVlbicpO3JldHVybiBm
YWxzZSIgaHJlZj0icmVzb3VyY2VzL2Zhdmljb24uaWNvIiB0eXBlPSJpbWFnZS94LWljb24iJmd0
OwogCiAKICZsdDsvcCZndDsmbHQ7L2JvZHkmZ3Q7Jmx0Oy9odG1sJmd0Ozwvc3RyaW5nPgpAQCAt
NDIsNyArNDEsNyBAQCBmdW5jdGlvbiBwcmludChtZXNzYWdlLCBjb2xvcikgCiAJCTxrZXk+V2Vi
UmVzb3VyY2VUZXh0RW5jb2RpbmdOYW1lPC9rZXk+CiAJCTxzdHJpbmc+VVRGLTg8L3N0cmluZz4K
IAkJPGtleT5XZWJSZXNvdXJjZVVSTDwva2V5PgotCQk8c3RyaW5nPmZpbGU6Ly8vTGF5b3V0VGVz
dHMvd2ViYXJjaGl2ZS90ZXN0LWxpbmstcmVsLWljb24tYmVmb3JlbG9hZC5odG1sPC9zdHJpbmc+
CisJCTxzdHJpbmc+ZmlsZTovLy9MYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwt
c3VicmVzb3VyY2UtYmVmb3JlbG9hZC5odG1sPC9zdHJpbmc+CiAJPC9kaWN0PgogPC9kaWN0Pgog
PC9wbGlzdD4KSW5kZXg6IExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1zdWJy
ZXNvdXJjZS1iZWZvcmVsb2FkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvd2ViYXJj
aGl2ZS90ZXN0LWxpbmstcmVsLXN1YnJlc291cmNlLWJlZm9yZWxvYWQuaHRtbAkocmV2aXNpb24g
MTk5NzA0KQkoZnJvbSBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtaWNvbi1i
ZWZvcmVsb2FkLmh0bWw6MTk5NzA0KQorKysgTGF5b3V0VGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWxp
bmstcmVsLXN1YnJlc291cmNlLWJlZm9yZWxvYWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCww
ICsxLDMwIEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2Z1bmN0aW9uIHJ1blRlc3QoKQor
eworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldElj
b25EYXRhYmFzZUVuYWJsZWQodHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcERPTUFzV2Vi
QXJjaGl2ZSgpOworICAgICAgICB0ZXN0UnVubmVyLnF1ZXVlUmVsb2FkKCk7CisgICAgfQorfQor
PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJj
b25zb2xlIj48L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiBwcmludChtZXNzYWdlLCBjb2xvcikg
Cit7CisgICAgdmFyIHBhcmFncmFwaCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwor
ICAgIHBhcmFncmFwaC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdl
KSk7CisgICAgcGFyYWdyYXBoLnN0eWxlLmZvbnRGYW1pbHkgPSAibW9ub3NwYWNlIjsKKyAgICBp
ZiAoY29sb3IpCisgICAgICAgIHBhcmFncmFwaC5zdHlsZS5jb2xvciA9IGNvbG9yOworICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuYXBwZW5kQ2hpbGQocGFyYWdyYXBoKTsK
K30KKzwvc2NyaXB0PgorPHA+VGhpcyB0ZXN0IHNob3VsZCBoYXZlIGEgZ3JlZW4gJ1BBU1MnIGp1
c3QgYWJvdmUgdGhpcyBsaW5lLiAgSWYgaXQgZG9lc24ndCwgeW91IGZhaWxlZC4KKzxsaW5rIHJl
bD0iaWNvbiIgb25iZWZvcmVsb2FkPSJwcmludCgnUEFTUycsJ2dyZWVuJyk7cmV0dXJuIGZhbHNl
IiBocmVmPSJyZXNvdXJjZXMvZmF2aWNvbi5pY28iIHR5cGU9ImltYWdlL3gtaWNvbiI+Cis8L2Jv
ZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy93ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwt
c3VicmVzb3VyY2UtYmVmb3JlbG9hZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3dl
YmFyY2hpdmUvdGVzdC1saW5rLXJlbC1zdWJyZXNvdXJjZS1iZWZvcmVsb2FkLmh0bWwJKHdvcmtp
bmcgY29weSkKKysrIExheW91dFRlc3RzL3dlYmFyY2hpdmUvdGVzdC1saW5rLXJlbC1zdWJyZXNv
dXJjZS1iZWZvcmVsb2FkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsNyArNCw2IEBACiBmdW5j
dGlvbiBydW5UZXN0KCkKIHsKICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAg
dGVzdFJ1bm5lci5zZXRJY29uRGF0YWJhc2VFbmFibGVkKHRydWUpOwogICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKICAgICAgICAgdGVzdFJ1bm5lci5xdWV1ZVJlbG9h
ZCgpOwogICAgIH0KQEAgLTI1LDYgKzI0LDYgQEAgZnVuY3Rpb24gcHJpbnQobWVzc2FnZSwgY29s
b3IpIAogfQogPC9zY3JpcHQ+CiA8cD5UaGlzIHRlc3Qgc2hvdWxkIGhhdmUgYSBncmVlbiAnUEFT
UycganVzdCBhYm92ZSB0aGlzIGxpbmUuICBJZiBpdCBkb2Vzbid0LCB5b3UgZmFpbGVkLgotPGxp
bmsgcmVsPSJpY29uIiBvbmJlZm9yZWxvYWQ9InByaW50KCdQQVNTJywnZ3JlZW4nKTtyZXR1cm4g
ZmFsc2UiIGhyZWY9InJlc291cmNlcy9mYXZpY29uLmljbyIgdHlwZT0iaW1hZ2UveC1pY29uIj4K
KzxsaW5rIHJlbD0ic3VicmVzb3VyY2UiIG9uYmVmb3JlbG9hZD0icHJpbnQoJ1BBU1MnLCdncmVl
bicpO3JldHVybiBmYWxzZSIgaHJlZj0icmVzb3VyY2VzL2Zhdmljb24uaWNvIiB0eXBlPSJpbWFn
ZS94LWljb24iPgogPC9ib2R5PgogPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>