<?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>89422</bug_id>
          
          <creation_ts>2012-06-18 22:49:20 -0700</creation_ts>
          <short_desc>Use testRunner instead of layoutTestController in fast/animation, autoresize, backgrounds, block, body-propagation, borders, and box-* tests</short_desc>
          <delta_ts>2012-06-18 23:50: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>New Bugs</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>88210</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>abarth</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>652049</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-18 22:49:20 -0700</bug_when>
    <thetext>Use testRunner instead of layoutTestController in fast/animation, autoresize, backgrounds, block, body-propagation, borders, and box-* tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652055</commentid>
    <comment_count>1</comment_count>
      <attachid>148251</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-18 22:58:08 -0700</bug_when>
    <thetext>Created attachment 148251
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652077</commentid>
    <comment_count>2</comment_count>
      <attachid>148251</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2012-06-18 23:16:37 -0700</bug_when>
    <thetext>Comment on attachment 148251
Patch

ok</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>652094</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-18 23:35:22 -0700</bug_when>
    <thetext>Committed r120681: &lt;http://trac.webkit.org/changeset/120681&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>148251</attachid>
            <date>2012-06-18 22:58:08 -0700</date>
            <delta_ts>2012-06-18 23:16:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89422-20120618225807.patch</filename>
            <type>text/plain</type>
            <size>69132</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEyMDY3NSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDUxIEBACisyMDEyLTA2LTE4ICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSB0ZXN0UnVubmVyIGluc3RlYWQgb2YgbGF5
b3V0VGVzdENvbnRyb2xsZXIgaW4gZmFzdC9hbmltYXRpb24sIGF1dG9yZXNpemUsIGJhY2tncm91
bmRzLCBibG9jaywgYm9keS1wcm9wYWdhdGlvbiwgYm9yZGVycywgYW5kIGJveC0qIHRlc3RzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04OTQyMgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9hbmlt
YXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNoLWVsZW1lbnQuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVu
dDIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFt
ZS1kaXNhYmxlZC5odG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0
aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9uL3Jl
cXVlc3QtYW5pbWF0aW9uLWZyYW1lLWlmcmFtZS5odG1sOgorICAgICAgICAqIGZhc3QvYW5pbWF0
aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwuanM6CisgICAg
ICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LWNhbmNlbDIuanM6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVl
c3QtYW5pbWF0aW9uLWZyYW1lLWRpc2FibGVkLmpzOgorICAgICAgICAqIGZhc3QvYW5pbWF0aW9u
L3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLWFkdmFuY2Uu
anM6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0
aW9uLWZyYW1lLXRpbWVzdGFtcHMuanM6CisgICAgICAgICogZmFzdC9hbmltYXRpb24vc2NyaXB0
LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFjay5qczoKKyAgICAg
ICAgKiBmYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUu
anM6CisgICAgICAgICogZmFzdC9hdXRvcmVzaXplL2F1dG9yZXNpemUtd2l0aC1pZnJhbWUuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2F1dG9yZXNpemUvYmFzaWMuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2F1dG9yZXNpemUvdHVybi1vZmYtYXV0b3Jlc2l6ZS5odG1sOgorICAgICAgICAqIGZhc3QvYmFj
a2dyb3VuZHMvYW5pbWF0ZWQtZ2lmLWFzLWJhY2tncm91bmQuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2JhY2tncm91bmRzL2FuaW1hdGVkLXN2Zy1hcy1tYXNrLmh0bWw6CisgICAgICAgICogZmFzdC9i
YWNrZ3JvdW5kcy9iYWNrZ3JvdW5kLWZhc3QtcGF0aC1zaW1wbGUtY29sb3IuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2JhY2tncm91bmRzL2JhY2tncm91bmQtZmlsbC16ZXJvLWFyZWEtY3Jhc2guaHRt
bDoKKyAgICAgICAgKiBmYXN0L2JhY2tncm91bmRzL2JhY2tncm91bmQtcmVwZWF0LWNvbXB1dGVk
LXN0eWxlLmh0bWw6CisgICAgICAgICogZmFzdC9iYWNrZ3JvdW5kcy9tdWx0aXBsZS1iYWNrZ3Jv
dW5kcy1hc3NlcnQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2JhY2tncm91bmRzL3Jvb3QtYmFja2dy
b3VuZC1wcm9wYWdhdGlvbi5odG1sOgorICAgICAgICAqIGZhc3QvYmFja2dyb3VuZHMvcm9vdC1i
YWNrZ3JvdW5kLXByb3BhZ2F0aW9uMi5odG1sOgorICAgICAgICAqIGZhc3QvYmFja2dyb3VuZHMv
c2l6ZS9jb250YWluLWFuZC1jb3Zlci16b29tZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2JhY2tn
cm91bmRzL3NvbGlkLWNvbG9yLWNvbnRleHQtcmVzdG9yZS5odG1sOgorICAgICAgICAqIGZhc3Qv
YmxvY2svOgorICAgICAgICAqIGZhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2UtcmVzZXQtYnktYm9y
ZGVyLXNob3J0aGFuZC5odG1sOgorICAgICAgICAqIGZhc3QvYm9yZGVycy9ib3JkZXItaW1hZ2Ut
c2xpY2Utb21pc3Npb24uaHRtbDoKKyAgICAgICAgKiBmYXN0L2JvcmRlcnMvYm9yZGVyLW1peGVk
LWFscGhhLmh0bWw6CisgICAgICAgICogZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtY29tcGxl
eC1pbm5lci5odG1sOgorICAgICAgICAqIGZhc3QvYm9yZGVycy9ib3JkZXItcmFkaXVzLXBhcnNp
bmcuaHRtbDoKKyAgICAgICAgKiBmYXN0L2JvcmRlcnMvbmVnYXRpdmUtYm9yZGVyLXdpZHRoLmh0
bWw6CisgICAgICAgICogZmFzdC9ib3JkZXJzL291dGxpbmUtYWxwaGEtYmxvY2suaHRtbDoKKyAg
ICAgICAgKiBmYXN0L2JvcmRlcnMvb3V0bGluZS1hbHBoYS1pbmxpbmUuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2JveC1zaGFkb3cvYm94LXNoYWRvdy1jbGlwcGVkLXNsaWNlcy5odG1sOgorICAgICAg
ICAqIGZhc3QvYm94LXNoYWRvdy9ib3gtc2hhZG93LWN1cnJlbnRjb2xvci5odG1sOgorICAgICAg
ICAqIGZhc3QvYm94LXNoYWRvdy9uby1ibHVyLW11bHRpcGxlLW9mZnNldHMuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2JveC1zaGFkb3cvcmVzb3VyY2VzL2JveC1zaGFkb3ctb3ZlcmZsb3ctc2Nyb2xs
LmpzOgorICAgICAgICAqIGZhc3QvYm94LXNoYWRvdy9zcHJlYWQtbXVsdGlwbGUtaW5zZXQuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2JveC1zaGFkb3cvc3ByZWFkLW11bHRpcGxlLW5vcm1hbC5odG1s
OgorCiAyMDEyLTA2LTE4ICBLaW51a28gWWFzdWRhICA8a2ludWtvQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkIHRlc3QgZml4IChvbmUgbW9yZSkgZm9yIHIxMjA2Njc6IHNraXAg
Jy5zdm4nIGRpcmVjdG9yeSBmcm9tIHRoZSB0ZXN0IHJlc3VsdHMuCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudDIu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFu
aW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudDIuaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGV0YWNo
LWVsZW1lbnQyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw4IEBACiA8IURPQ1RZUEUg
aHRtbD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQog
d2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRzQnlUYWdOYW1lKCJpZnJhbWUiKVswXTsKQEAgLTEwLDEwICsxMCwxMCBAQCB3aW5kb3cu
b25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIGVsLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQo
ZWwpOwogICAgIH0pOwogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICB3aW5kb3cuc2V0VGltZW91dChm
dW5jdGlvbigpIHsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmRpc3BsYXkoKTsK
LSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CiAgICAgICAgIH0sIDUwKTsKICAgICB9CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kZXRhY2gtZWxlbWVudC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9u
LWZyYW1lLWRldGFjaC1lbGVtZW50Lmh0bWwJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRl
c3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRldGFjaC1lbGVtZW50
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw4IEBACiA8IURPQ1RZUEUgaHRtbD4KIDxz
Y3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogd2luZG93Lm9u
bG9hZCA9IGZ1bmN0aW9uKCkgewogICAgIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlU
YWdOYW1lKCJpZnJhbWUiKVswXTsKQEAgLTEyLDEwICsxMiwxMCBAQCB3aW5kb3cub25sb2FkID0g
ZnVuY3Rpb24oKSB7CiAgICAgd2luZG93LmZyYW1lc1sxXS53ZWJraXRSZXF1ZXN0QW5pbWF0aW9u
RnJhbWUoZnVuY3Rpb24oKSB7CiAgICAgfSk7CiAKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIHdpbmRv
dy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZGlzcGxheSgpOwotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfSwgNTApOwogICAgIH0KIH0KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWRpc2FibGVk
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1h
bmltYXRpb24tZnJhbWUtZGlzYWJsZWQuaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtZGlzYWJsZWQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0
PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICB3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRSZXF1ZXN0QW5pbWF0aW9uRnJh
bWVFbmFibGVkIiwgIjAiKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB3aW5kb3cudGVz
dFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFJlcXVlc3RBbmltYXRpb25GcmFtZUVu
YWJsZWQiLCAiMCIpOwogPC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iLi4vanMvcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
YW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLWR1cmluZy1tb2RhbC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3JlcXVlc3QtYW5pbWF0aW9uLWZy
YW1lLWR1cmluZy1tb2RhbC5odG1sCShyZXZpc2lvbiAxMjA2NzIpCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kdXJpbmctbW9kYWwuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtNCw4ICs0LDggQEAKIDxib2R5PgogCiA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCI+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLnNldENhbk9wZW5XaW5kb3dzKCk7CitpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOwogCiBkZXNjcmlwdGlv
bignVGVzdHMgdGhhdCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgY2FsbGJhY2tzIGFyZSBub3QgaW52
b2tlZCB3aGlsZSBtb2RhbCBkaWFsb2dzIGFyZSBkaXNwbGF5ZWQuJyk7CiAKQEAgLTE0LDI2ICsx
NCwyNiBAQCBvbmxvYWQgPSBmdW5jdGlvbigpCiAgICAgZGVidWcoJ1NldHRpbmcgY2FsbGJhY2sn
KTsKICAgICB3aW5kb3cud2Via2l0UmVxdWVzdEFuaW1hdGlvbkZyYW1lKGZ1bmN0aW9uKCkgeyBk
ZWJ1ZygnQ2FsbGJhY2sgZmlyZWQnKTsgfSwgZG9jdW1lbnQuYm9keSk7CiAgICAgZGVidWcoJ1No
b3dpbmcgbW9kYWwgZGlhbG9nJyk7Ci0gICAgdmFyIHNyYyA9ICdpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7JyArCi0gICAgICAgICAgICAgICcgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZGlzcGxheSgpOycgKworICAgIHZhciBzcmMgPSAnaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
JyArCisgICAgICAgICAgICAgICcgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7JyArCiAgICAgICAg
ICAgICAgICcgICAgd2luZG93LmNsb3NlKCk7JyArCiAgICAgICAgICAgICAgICd9IGVsc2Ugeycr
CiAgICAgICAgICAgICAgICcgICAgd2luZG93LnNldFRpbWVvdXQod2luZG93LmNsb3NlLCAxMCk7
JysKICAgICAgICAgICAgICAgJ30nOwogICAgIHNob3dNb2RhbERpYWxvZygnZGF0YTp0ZXh0L2h0
bWwsPHNjcmlwdD4nICsgc3JjICsgJzwvJyArICdzY3JpcHQ+Jyk7CiAgICAgZGVidWcoJ1JldHVy
bmVkIGZyb20gbW9kYWwgZGlhbG9nJyk7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgezsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZGlzcGxheSgpOworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgezsKKyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CiAg
ICAgfQogfQogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsK
ICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwogfSwgMjAwKTsKIAogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlv
bi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1pZnJhbWUuaHRt
bAkocmV2aXNpb24gMTIwNjcyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDE2ICsx
MCwxNiBAQAogCiAgICAgICAgIHZhciBjYWxsYmFja0ludm9rZWQgPSBmYWxzZTsKICAgICAKLSAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBDYWxsZWQg
ZnJvbSBzdWJmcmFtZS4KICAgICAgICAgZnVuY3Rpb24gZG9EaXNwbGF5KCkKICAgICAgICAgewot
ICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kaXNwbGF5KCk7CisgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CiAg
ICAgICAgIH0KICAgICAKICAgICAgICAgZnVuY3Rpb24gZG9DaGVja1Jlc3VsdCgpCkBAIC0zMCw4
ICszMCw4IEBACiAgICAgICAgIGZ1bmN0aW9uIGRvVGVzdERvbmUoKQogICAgICAgICB7CiAgICAg
ICAgICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwotICAgICAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KICAgICA8L3Nj
cmlwdD4KIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10
ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwyLmpzCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1m
cmFtZS1jYW5jZWwyLmpzCShyZXZpc2lvbiAxMjA2NzIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Fu
aW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtY2FuY2VsMi5qcwko
d29ya2luZyBjb3B5KQpAQCAtMTQsMTkgKzE0LDE5IEBAIHNlY29uZENhbGxiYWNrSWQgPSB3aW5k
b3cud2Via2l0UmVxdWVzdEEKICAgICBjYWxsYmFja0ZpcmVkID0gdHJ1ZTsKIH0sIGUpOwogCi1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmRpc3BsYXkoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmRpc3Bs
YXkoKTsKIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICBzaG91bGRCZUZhbHNlKCJjYWxs
YmFja0ZpcmVkIik7CiAgICAgc2hvdWxkQmVUcnVlKCJjYW5jZWxGaXJlZCIpOwogfSwgMTAwKTsK
IAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgaXNT
dWNjZXNzZnVsbHlQYXJzZWQoKTsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0sIDIw
MCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVz
dC1hbmltYXRpb24tZnJhbWUtY2FuY2VsLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwu
anMJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1jYW5jZWwuanMJKHdvcmtpbmcgY29weSkK
QEAgLTcsMTggKzcsMTggQEAgdmFyIGlkID0gd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25G
cgogCiB3aW5kb3cud2Via2l0Q2FuY2VsQW5pbWF0aW9uRnJhbWUoaWQpOwogCi1pZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmRpc3BsYXko
KTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKIAog
c2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICBzaG91bGRCZUZhbHNlKCJjYWxsYmFja0ZpcmVk
Iik7CiB9LCAxMDApOwogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAogc2V0VGltZW91dChmdW5jdGlv
bigpIHsKICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwotICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOwogfSwgMjAwKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Njcmlw
dC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxlZC5qcwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRp
b24tZnJhbWUtZGlzYWJsZWQuanMJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zh
c3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS1kaXNhYmxl
ZC5qcwkod29ya2luZyBjb3B5KQpAQCAtNSwxOCArNSwxOCBAQCB3aW5kb3cud2Via2l0UmVxdWVz
dEFuaW1hdGlvbkZyYW1lKGZ1bmN0CiAgICAgY2FsbGJhY2tJbnZva2VkID0gdHJ1ZTsKIH0pOwog
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmRpc3BsYXkoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICBzaG91bGRCZUZhbHNlKCJj
YWxsYmFja0ludm9rZWQiKTsKIH0sIDEwMCk7CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogCiBzZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgewogICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7Ci0gICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9LCAyMDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9h
bmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMt
YWR2YW5jZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3Jp
cHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy1hZHZhbmNlLmpzCShy
ZXZpc2lvbiAxMjA2NzIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVz
dHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtdGltZXN0YW1wcy1hZHZhbmNlLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0yMCwxMiArMjAsMTIgQEAgd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25G
cmFtZShmdW5jdAogICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKICAgICB9KTsKICAgICBidXN5V2Fp
dCgxMCk7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZGlzcGxheSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CiB9KTsKIAogCi1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQogICAgIHdpbmRvdy5zZXRU
aW1lb3V0KGZ1bmN0aW9uKCkgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kaXNwbGF5
KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZGlzcGxheSgpOwogICAgIH0pOwpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1l
LXRpbWVzdGFtcHMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24v
c2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0aW9uLWZyYW1lLXRpbWVzdGFtcHMuanMJKHJldmlz
aW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3NjcmlwdC10ZXN0cy9y
ZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS10aW1lc3RhbXBzLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0y
MCwxMSArMjAsMTEgQEAgd2luZG93LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdAog
ICAgIHNob3VsZEJlKCJmaXJzdFRpbWVzdGFtcCIsICJzZWNvbmRUaW1lc3RhbXAiKTsKIH0pOwog
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmRpc3BsYXkoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmRp
c3BsYXkoKTsKIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CiAgICAgc2hvdWxkQmVEZWZpbmVkKCJmaXJzdFRpbWVzdGFtcCIpOwpAQCAtMzIsNiArMzIsNiBA
QCBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogCiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAg
IGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9
LCAyMDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3Jl
cXVlc3QtYW5pbWF0aW9uLWZyYW1lLXdpdGhpbi1jYWxsYmFjay5qcwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24t
ZnJhbWUtd2l0aGluLWNhbGxiYWNrLmpzCShyZXZpc2lvbiAxMjA2NzIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2FuaW1hdGlvbi9zY3JpcHQtdGVzdHMvcmVxdWVzdC1hbmltYXRpb24tZnJhbWUtd2l0
aGluLWNhbGxiYWNrLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xNSwxNyArMTUsMTcgQEAgd2luZG93
LndlYmtpdFJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdAogfSwgZSk7CiAKIC8vIFRoaXMgc2hv
dWxkIGZpcmUgdGhlIHRocmVlIGFscmVhZHkgcmVnaXN0ZXJlZCBjYWxsYmFja3MsIGJ1dCBub3Qg
dGhlIG9uZSBkeW5hbWljYWxseSByZWdpc3RlcmVkLgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kaXNwbGF5KCk7CitpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CiAvLyBUaGlzIHNob3VsZCBm
aXJlIHRoZSBkeW5hbWljYWxseSByZWdpc3RlcmVkIGNhbGxiYWNrLgotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kaXNwbGF5KCk7Citp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kaXNwbGF5KCk7CiAKLWlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwogCiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgIGlzU3VjY2Vzc2Z1
bGx5UGFyc2VkKCk7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9LCAyMDApOwpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0
aW9uLWZyYW1lLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYW5pbWF0aW9uL3Nj
cmlwdC10ZXN0cy9yZXF1ZXN0LWFuaW1hdGlvbi1mcmFtZS5qcwkocmV2aXNpb24gMTIwNjcyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9hbmltYXRpb24vc2NyaXB0LXRlc3RzL3JlcXVlc3QtYW5pbWF0
aW9uLWZyYW1lLmpzCSh3b3JraW5nIGNvcHkpCkBAIC02LDE4ICs2LDE4IEBAIHdpbmRvdy53ZWJr
aXRSZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZnVuY3QKICAgICBjYWxsYmFja0ludm9rZWQgPSB0cnVl
OwogfSwgZSk7CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZGlzcGxheSgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRl
c3RSdW5uZXIuZGlzcGxheSgpOwogCiBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgIHNob3Vs
ZEJlVHJ1ZSgiY2FsbGJhY2tJbnZva2VkIik7CiB9LCAxMDApOwogCi1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKIAogc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgp
OwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfSwgMjAwKTsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvYXV0b3Jlc2l6ZS9hdXRvcmVzaXplLXdpdGgtaWZyYW1lLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hdXRvcmVzaXplL2F1dG9yZXNpemUtd2l0aC1pZnJhbWUu
aHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9hdXRvcmVzaXplL2F1
dG9yZXNpemUtd2l0aC1pZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiwxMSArMiwxMSBA
QAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZW5hYmxlQXV0b1Jlc2l6ZU1vZGUoMTAs
IDEwLCAxMDAwLCAxMDAwKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Ci0gICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgdGVzdFJ1bm5lci5lbmFibGVBdXRvUmVzaXplTW9kZSgxMCwgMTAsIDEwMDAs
IDEwMDApOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuZHVt
cENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiB9
CiAKIGZ1bmN0aW9uIHJ1bigpCkBAIC0xNCw3ICsxNCw3IEBAIGZ1bmN0aW9uIHJ1bigpCiAgICAg
dmFyIGZyYW1lV2luZG93ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZyYW1lIikuY29udGVu
dFdpbmRvdzsKICAgICBmcmFtZVdpbmRvdy5wb3N0TWVzc2FnZSgic2hvdWxkQmUoJ2RvY3VtZW50
LmJvZHkuc2Nyb2xsV2lkdGgnLCA0MDApIiwgIioiKTsKICAgICBmcmFtZVdpbmRvdy5wb3N0TWVz
c2FnZSgic2hvdWxkQmUoJ2RvY3VtZW50LmJvZHkuc2Nyb2xsSGVpZ2h0JywgMjAwKSIsICIqIik7
Ci0gICAgZnJhbWVXaW5kb3cucG9zdE1lc3NhZ2UoImxvZygnRE9ORScpOyBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Iiwg
IioiKTsKKyAgICBmcmFtZVdpbmRvdy5wb3N0TWVzc2FnZSgibG9nKCdET05FJyk7IGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7IiwgIioiKTsKIH0KIDwvc2Ny
aXB0PgogPC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9hdXRvcmVzaXplL2Jhc2ljLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9hdXRvcmVzaXplL2Jhc2ljLmh0bWwJ
KHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYXV0b3Jlc2l6ZS9iYXNpYy5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHJ1
blRlc3QoKQogewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZW5hYmxlQXV0b1Jlc2l6ZU1vZGUoMTAsIDEwLCAxMDAw
LCAxMDAwKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmVuYWJsZUF1dG9S
ZXNpemVNb2RlKDEwLCAxMCwgMTAwMCwgMTAwMCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogICAgIH0KICAgICBzaG91bGRCZSgnZG9jdW1lbnQuYm9keS5jbGllbnRXaWR0aCcs
ICd3aW5kb3cuaW5uZXJXaWR0aCcpOwogICAgIHNob3VsZEJlKCdkb2N1bWVudC5ib2R5LmNsaWVu
dEhlaWdodCcsICd3aW5kb3cuaW5uZXJIZWlnaHQnKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
YXV0b3Jlc2l6ZS90dXJuLW9mZi1hdXRvcmVzaXplLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9hdXRvcmVzaXplL3R1cm4tb2ZmLWF1dG9yZXNpemUuaHRtbAkocmV2aXNpb24g
MTIwNjcyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9hdXRvcmVzaXplL3R1cm4tb2ZmLWF1dG9yZXNp
emUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5ICs0LDkgQEAKIDxzY3JpcHQ+CiBmdW5jdGlv
biBydW5UZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0g
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmVuYWJsZUF1dG9SZXNpemVNb2RlKDEwLCAxMCwg
MTAwMCwgMTAwMCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5lbmFibGVB
dXRvUmVzaXplTW9kZSgxMCwgMTAsIDEwMDAsIDEwMDApOworICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKICAgICB9CiAgICAgc2hvdWxkQmUoJ2RvY3VtZW50LmJvZHkuY2xpZW50V2lk
dGgnLCAnd2luZG93LmlubmVyV2lkdGgnKTsKICAgICBzaG91bGRCZSgnZG9jdW1lbnQuYm9keS5j
bGllbnRIZWlnaHQnLCAnd2luZG93LmlubmVySGVpZ2h0Jyk7CkBAIC0xNCw4ICsxNCw4IEBAIGZ1
bmN0aW9uIHJ1blRlc3QoKQogICAgIHNob3VsZEJlKCdkb2N1bWVudC5ib2R5LnNjcm9sbEhlaWdo
dCcsICd3aW5kb3cuaW5uZXJIZWlnaHQnKTsKICAgICBzaG91bGRCZSgnd2luZG93LmlubmVyV2lk
dGgnLCAnd2luZG93Lm91dGVyV2lkdGgnKTsKICAgICBzaG91bGRCZSgnd2luZG93LmlubmVySGVp
Z2h0JywgJ3dpbmRvdy5vdXRlckhlaWdodCcpOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmRpc2FibGVBdXRvUmVzaXpl
TW9kZSgyMDAsIDIwMCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0
UnVubmVyLmRpc2FibGVBdXRvUmVzaXplTW9kZSgyMDAsIDIwMCk7CiAKICAgICBzaG91bGRCZSgn
d2luZG93Lm91dGVyV2lkdGgnLCAyMDApOwogICAgIHNob3VsZEJlKCd3aW5kb3cub3V0ZXJIZWln
aHQnLCAyMDApOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9hbmltYXRlZC1n
aWYtYXMtYmFja2dyb3VuZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmFj
a2dyb3VuZHMvYW5pbWF0ZWQtZ2lmLWFzLWJhY2tncm91bmQuaHRtbAkocmV2aXNpb24gMTIwNjcy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9hbmltYXRlZC1naWYtYXMtYmFja2dy
b3VuZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05LDE0ICs5LDE0IEBACiAgICAgfQogICA8L3N0
eWxlPgogICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgot
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgCiAgICAgZnVuY3Rpb24gcGFnZUxv
YWRlZCgpIAogICAgIHsKICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewotICAg
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgfSwgMjAwKTsgICAg
Ly8gUmVkIGZyYW1lIG9mIEdJRiBoYXMgMTAwbXMgZHVyYXRpb24KICAgICB9CiAKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvYW5pbWF0ZWQtc3ZnLWFzLW1hc2suaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL2FuaW1hdGVkLXN2Zy1hcy1t
YXNrLmh0bWwJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3Vu
ZHMvYW5pbWF0ZWQtc3ZnLWFzLW1hc2suaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsMTQgKzEw
LDE0IEBACiAgIH0KICAgPC9zdHlsZT4KICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IGNoYXJzZXQ9InV0Zi04Ij4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQot
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIAog
ICAgIGZ1bmN0aW9uIHBhZ2VMb2FkZWQoKSAKICAgICB7CiAgICAgICB3aW5kb3cuc2V0VGltZW91
dChmdW5jdGlvbigpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
ICAgICAgIH0sIDQwMCk7ICAgIC8vIGVtcGlyaWNhbGx5IGRldGVybWluZWQgZGVsYXkuIFNWRyBh
bmltYXRpb24gaGFzIDEwMG1zIGR1cmF0aW9uLgogICAgIH0KIApJbmRleDogTGF5b3V0VGVzdHMv
ZmFzdC9iYWNrZ3JvdW5kcy9iYWNrZ3JvdW5kLWZhc3QtcGF0aC1zaW1wbGUtY29sb3IuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL2JhY2tncm91bmQtZmFz
dC1wYXRoLXNpbXBsZS1jb2xvci5odG1sCShyZXZpc2lvbiAxMjA2NzIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2JhY2tncm91bmRzL2JhY2tncm91bmQtZmFzdC1wYXRoLXNpbXBsZS1jb2xvci5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0yMCw4ICsyMCw4IEBAIFRoZSB0ZXN0IHBhc3NlcyBpZiB5b3Ug
c2VlIGEgZ3JlZW4gcmVjdGEKICAgICB9CiA8L3N0eWxlPgogPHNjcmlwdD4KLSAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KHRydWUpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwogPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvYmFja2dyb3VuZC1maWxsLXplcm8tYXJl
YS1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMv
YmFja2dyb3VuZC1maWxsLXplcm8tYXJlYS1jcmFzaC5odG1sCShyZXZpc2lvbiAxMjA2NzIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL2JhY2tncm91bmQtZmlsbC16ZXJvLWFyZWEt
Y3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAKIDxodG1sPgogICAgIDxo
ZWFkPgogICAgICAgICA8c2NyaXB0PgotICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICA8L3NjcmlwdD4KICAgICAgICAgPHN0eWxlPgog
ICAgICAgICAgICAgI2EgewpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9iYWNr
Z3JvdW5kLXJlcGVhdC1jb21wdXRlZC1zdHlsZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvYmFja2dyb3VuZHMvYmFja2dyb3VuZC1yZXBlYXQtY29tcHV0ZWQtc3R5bGUuaHRt
bAkocmV2aXNpb24gMTIwNjcyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9iYWNr
Z3JvdW5kLXJlcGVhdC1jb21wdXRlZC1zdHlsZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw4
ICsxMSw4IEBACiAgICAgICAgIH0NCiAgICAgPC9zdHlsZT4NCiAgICAgPHNjcmlwdD4NCi0gICAg
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpDQotICAgICAgICAgICAgd2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsNCisgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikNCisgICAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
DQogICAgIDwvc2NyaXB0Pg0KIDwvaGVhZD4NCiA8Ym9keT4NCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2JhY2tncm91bmRzL211bHRpcGxlLWJhY2tncm91bmRzLWFzc2VydC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvbXVsdGlwbGUtYmFja2dyb3VuZHMt
YXNzZXJ0Lmh0bWwJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYmFja2dy
b3VuZHMvbXVsdGlwbGUtYmFja2dyb3VuZHMtYXNzZXJ0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTI1LDkgKzI1LDkgQEAKIAogICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNl
dD0idXRmLTgiPgogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBydW5UZXN0KCkKQEAgLTM1LDggKzM1LDgg
QEAKICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdib3gnKS5jbGFzc05hbWUgPSAnYm94
IGZpbmFsJzsKICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYm94Jykuc3R5bGUuZGlzcGxheSA9ICdub25lJzsKLSAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgIH0sIDApOwogICAg
IH0KICAgCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL3Jvb3QtYmFja2dyb3Vu
ZC1wcm9wYWdhdGlvbjIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JhY2tn
cm91bmRzL3Jvb3QtYmFja2dyb3VuZC1wcm9wYWdhdGlvbjIuaHRtbAkocmV2aXNpb24gMTIwNjcy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9yb290LWJhY2tncm91bmQtcHJvcGFn
YXRpb24yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE0LDggKzE0LDggQEAKICAgICAgICAgfQog
ICAgIDwvc3R5bGU+CiAgICAgPHNjcmlwdD4KLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
dHJ1ZSk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9yb290LWJhY2tncm91bmQtcHJvcGFn
YXRpb24uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL3Jv
b3QtYmFja2dyb3VuZC1wcm9wYWdhdGlvbi5odG1sCShyZXZpc2lvbiAxMjA2NzIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL3Jvb3QtYmFja2dyb3VuZC1wcm9wYWdhdGlvbi5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xMSw4ICsxMSw4IEBACiAgICAgICAgIH0KICAgICA8L3N0eWxl
PgogICAgIDxzY3JpcHQ+Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOworICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQodHJ1ZSk7CiAgICAgPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvYmFja2dyb3VuZHMvc29saWQtY29sb3ItY29udGV4dC1yZXN0b3JlLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9iYWNrZ3JvdW5kcy9zb2xpZC1jb2xvci1j
b250ZXh0LXJlc3RvcmUuaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9iYWNrZ3JvdW5kcy9zb2xpZC1jb2xvci1jb250ZXh0LXJlc3RvcmUuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTQsOCArMTQsOCBAQAogICAgICAgICBmb28KICAgICA8L2Rpdj4KICAgICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kaXNwbGF5KCk7
CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZGlzcGxheSgpOwogICAgICAgICB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGFy
Z2V0Jyk7CiAgICAgICAgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5zZXRCYXNlQW5kRXh0ZW50KHRh
cmdldCwgMCwgdGFyZ2V0LCAxKTsKICAgICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvYmFja2dyb3VuZHMvc2l6ZS9jb250YWluLWFuZC1jb3Zlci16b29tZWQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JhY2tncm91bmRzL3NpemUvY29udGFpbi1hbmQtY292
ZXItem9vbWVkLmh0bWwJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYmFj
a2dyb3VuZHMvc2l6ZS9jb250YWluLWFuZC1jb3Zlci16b29tZWQuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNTUsNyArNTUsNyBAQAogPGRpdiBjbGFzcz0icG9ydHJhaXQgY292ZXItY29udGFpbiI+
PC9kaXY+CiAKIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
eworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICBmb3IgKHZhciBpID0gMDsg
aSA8IDM7ICsraSkgewogICAgICAgICAgICAgZXZlbnRTZW5kZXIuem9vbVBhZ2VPdXQoKTsKICAg
ICAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9ibG9jay1hZGQtY2hpbGQtY3Jh
c2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Jsb2NrLWFkZC1j
aGlsZC1jcmFzaC5odG1sCShyZXZpc2lvbiAxMjA2NzIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Js
b2NrL2Jsb2NrLWFkZC1jaGlsZC1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw4ICsx
NCw4IEBAIFRoZSB0ZXN0IHBhc3NlcyBpZiBpdCBkb2Vzbid0IENSQVNIIG5vciAKIDx0ZXh0YXJl
YT48L3RleHRhcmVhPgogPC9saT4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogZG9jdW1lbnQu
Ym9keS5vZmZzZXRUb3A7CiB2YXIgdGVzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0
Iik7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Jsb2NrLW5vdC1yZW1vdmVkLWZyb20t
cGFyZW50LWxpbmVib3hlcy1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvYmxvY2svYmxvY2stbm90LXJlbW92ZWQtZnJvbS1wYXJlbnQtbGluZWJveGVzLWNyYXNoLmh0
bWwJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYmxvY2svYmxvY2stbm90
LXJlbW92ZWQtZnJvbS1wYXJlbnQtbGluZWJveGVzLWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTMsOCArMyw4IEBACiA8ZGl2IHN0eWxlPSJ3aWR0aDogMjVweCI+CiA8aW1nIHN0eWxlPSJ3
aWR0aDogMjBweCI+PGltZyBpZD0idGVzdDEiIHN0eWxlPSJ3aWR0aDogNTBweDsgZGlzcGxheTog
bm9uZTsiPjxzcGFuIGlkPSJ0ZXN0MiIgc3R5bGU9ImZsb2F0OiBsZWZ0OyI+QUI8L3NwYW4+Q0Q8
L2Rpdj4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAKIGRvY3VtZW50LmJvZHkub2Zmc2V0
VG9wOwogdGVzdDEuc3R5bGUuZGlzcGxheSA9ICIiOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9i
bG9jay9ibG9jay1yZW1vdmUtY2hpbGQtZGVsZXRlLWxpbmUtYm94LWNyYXNoLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9ibG9jay1yZW1vdmUtY2hpbGQtZGVsZXRl
LWxpbmUtYm94LWNyYXNoLmh0bWwJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zh
c3QvYmxvY2svYmxvY2stcmVtb3ZlLWNoaWxkLWRlbGV0ZS1saW5lLWJveC1jcmFzaC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xMCw4ICsxMCw4IEBAIEJlZm9yZVRleHQ8c3BhbiBpZD0ic3BhbjEi
PlNwYW5UZXh0PC9zcGEKIDxwPlBhcmFUZXh0PC9wPg0KIDwvZGl2Pg0KIDxzY3JpcHQ+DQotaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikNCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOw0KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikNCisgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7DQogDQogZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7DQogdmFyIGgxID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnaDEnKTsNCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Jsb2Nr
L2Jsb2NrLXNpemUtaW50ZWdlci1vdmVyZmxvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvYmxvY2svYmxvY2stc2l6ZS1pbnRlZ2VyLW92ZXJmbG93Lmh0bWwJKHJldmlzaW9u
IDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYmxvY2svYmxvY2stc2l6ZS1pbnRlZ2VyLW92
ZXJmbG93Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTExLDggKzExLDggQEAKIDwvc3R5bGU+CiA8
c2NyaXB0Pgogd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewotICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB3aW5kb3cudGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CiAKICAgdmFyIHNwYWNlciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJz
cGFjZXIiKTsKICAgaWYgKHNwYWNlci5vZmZzZXRXaWR0aCA+IDApIHsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvYmxvY2svY2hpbGQtbm90LXJlbW92ZWQtZnJvbS1wYXJlbnQtbGluZWJveGVzLWNy
YXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9jaGlsZC1ub3Qt
cmVtb3ZlZC1mcm9tLXBhcmVudC1saW5lYm94ZXMtY3Jhc2guaHRtbAkocmV2aXNpb24gMTIwNjcy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9jaGlsZC1ub3QtcmVtb3ZlZC1mcm9tLXBhcmVu
dC1saW5lYm94ZXMtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAKIDxi
b2R5PgogPC9ib2R5PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiB2YXIgdGFncyA9IFsnYScs
ICdhYmJyJywgJ2Fjcm9ueW0nLCAnYWRkcmVzcycsICdhcHBsZXQnLCAnYXJlYScsICdhcnRpY2xl
JywgJ2FzaWRlJywgJ2F1ZGlvJywgJ2InLCAnYmFzZScsICdiYXNlZm9udCcsICdiZG8nLCAnYmdz
b3VuZCcsICdiaWcnLCAnYmxvY2txdW90ZScsICdib2R5JywgJ2JyJywgJ2J1dHRvbicsICdjYW52
YXMnLCAnY2FwdGlvbicsICdjZW50ZXInLCAnY2l0ZScsICdjb2RlJywgJ2NvbCcsICdjb2xncm91
cCcsICdjb21tYW5kJywgJ2RhdGFncmlkJywgJ2RhdGFsaXN0JywgJ2RjZWxsJywgJ2Rjb2wnLCAn
ZHJvdycsICdkZCcsICdkZWwnLCAnZGV0YWlscycsICdkZm4nLCAnZGlyJywgJ2RpdicsICdkbCcs
ICdkdCcsICdlbScsICdlbWJlZCcsICdmaWVsZHNldCcsICdmaWdjYXB0aW9uJywgJ2ZpZ3VyZScs
ICdmb250JywgJ2Zvb3RlcicsICdmb3JtJywgJ2ZyYW1lJywgJ2ZyYW1lc2V0JywgJ2gxJywgJ2gy
JywgJ2gzJywgJ2g0JywgJ2g1JywgJ2g2JywgJ2hlYWQnLCAnaGVhZGVyJywgJ2hncm91cCcsICdo
cicsICdodG1sJywgJ2knLCAnY2hpbGQnLCAnaW1hZ2UnLCAnaW1nJywgJ2lucHV0JywgJ2lucycs
ICdpc2luZGV4JywgJ2tiZCcsICdrZXlnZW4nLCAnbGFiZWwnLCAnbGF5ZXInLCAnbGVnZW5kJywg
J2xpJywgJ2xpbmsnLCAnbGlzdGluZycsICdtYXAnLCAnbWFyaycsICdtYXJxdWVlJywgJ21lbnUn
LCAnbWV0YScsICdtZXRlcicsICduYXYnLCAnbm9icicsICdub2VtYmVkJywgJ25vZnJhbWVzJywg
J25vbGF5ZXInLCAnb2JqZWN0JywgJ29sJywgJ29wdGdyb3VwJywgJ29wdGlvbicsICdvdXRwdXQn
LCAncCcsICdwYXJhbScsICdwbGFpbnRleHQnLCAncHJlJywgJ3Byb2dyZXNzJywgJ3EnLCAncnAn
LCAncnQnLCAncnVieScsICdzJywgJ3NhbXAnLCAnc2NyaXB0JywgJ3NlY3Rpb24nLCAnc2VsZWN0
JywgJ3NtYWxsJywgJ3NvdXJjZScsICdzcGFuJywgJ3N0cmlrZScsICdzdHJvbmcnLCAnc3R5bGUn
LCAnc3ViJywgJ3N1bW1hcnknLCAnc3VwJywgJ3RhYmxlJywgJ3Rib2R5JywgJ3RkJywgJ3RleHRh
cmVhJywgJ3Rmb290JywgJ3RoJywgJ3RoZWFkJywgJ3RpdGxlJywgJ3RyJywgJ3RyYWNrJywgJ3R0
JywgJ3UnLCAndWwnLCAndmFyJywgJ3ZpZGVvJywgJ3dicicsICd4bXAnLCAnbm9zY3JpcHQnLCAn
bm9zY3JpcHQnLCAnbWF0aCcsICdtZnJhYycsICdtZmVuY2VkJywgJ21zdWJzdXAnLCAnbXJvdycs
ICdtb3ZlcicsICdtdW5kZXInLCAnbXVuZGVyb3ZlcicsICdtc3FydCcsICdtcm9vdCcsICdtaScs
ICdtbicsICdtbycsICdtdGV4dCcsICdtc3ViJywgJ21zdXAnLCAnbXMnLCAnbWdseXBoJywgJ21h
bGlnbm1hcmsnLCAnYW5ub3RhdGlvbi14bWwnLCAnYScsICdhY2Nlc3MnLCAnYW5jaG9yJywgJ2Jy
JywgJ2NhcmQnLCAnZG8nLCAnZmllbGRzZXQnLCAnZ28nLCAnaGVhZCcsICdpbWcnLCAnaW5wdXQn
LCAnaW5zZXJ0ZWRMZWdlbmQnLCAnbWV0YScsICdub29wJywgJ29uZXZlbnQnLCAnb3B0Z3JvdXAn
LCAnb3B0aW9uJywgJ3AnLCAncG9zdGZpZWxkJywgJ3ByZXYnLCAncmVmcmVzaCcsICdzZWxlY3Qn
LCAnc2V0dmFyJywgJ3RhYmxlJywgJ3RkJywgJ3RlbXBsYXRlJywgJ3RpbWVyJywgJ3RyJywgJ2En
LCAnYWx0R2x5cGgnLCAnYWx0R2x5cGhEZWYnLCAnYWx0R2x5cGhJdGVtJywgJ2FuaW1hdGUnLCAn
YW5pbWF0ZUNvbG9yJywgJ2FuaW1hdGVNb3Rpb24nLCAnYW5pbWF0ZVRyYW5zZm9ybScsICdzZXQn
LCAnY2lyY2xlJywgJ2NsaXBQYXRoJywgJ2NvbG9yX3Byb2ZpbGUnLCAnY3Vyc29yJywgJ2RlZnMn
LCAnZGVzYycsICdlbGxpcHNlJywgJ2ZlQmxlbmQnLCAnZmVDb2xvck1hdHJpeCcsICdmZUNvbXBv
bmVudFRyYW5zZmVyJywgJ2ZlQ29tcG9zaXRlJywgJ2ZlQ29udm9sdmVNYXRyaXgnLCAnZmVEaWZm
dXNlTGlnaHRpbmcnLCAnZmVEaXNwbGFjZW1lbnRNYXAnLCAnZmVEaXN0YW50TGlnaHQnLCAnZmVG
bG9vZCcsICdmZUZ1bmNBJywgJ2ZlRnVuY0InLCAnZmVGdW5jRycsICdmZUZ1bmNSJywgJ2ZlR2F1
c3NpYW5CbHVyJywgJ2ZlSW1hZ2UnLCAnZmVNZXJnZScsICdmZU1lcmdlTm9kZScsICdmZU1vcnBo
b2xvZ3knLCAnZmVPZmZzZXQnLCAnZmVQb2ludExpZ2h0JywgJ2ZlU3BlY3VsYXJMaWdodGluZycs
ICdmZVNwb3RMaWdodCcsICdmZVRpbGUnLCAnZmVUdXJidWxlbmNlJywgJ2ZpbHRlcicsICdmb250
JywgJ2ZvbnRfZmFjZScsICdmb250X2ZhY2VfZm9ybWF0JywgJ2ZvbnRfZmFjZV9uYW1lJywgJ2Zv
bnRfZmFjZV9zcmMnLCAnZm9udF9mYWNlX3VyaScsICdmb3JlaWduT2JqZWN0JywgJ2cnLCAnZ2x5
cGgnLCAnZ2x5cGhSZWYnLCAnaGtlcm4nLCAnaW1hZ2UnLCAnbGluZScsICdsaW5lYXJHcmFkaWVu
dCcsICdtYXJrZXInLCAnbWFzaycsICdtZXRhZGF0YScsICdtaXNzaW5nX2dseXBoJywgJ21wYXRo
JywgJ3BhdGgnLCAncGF0dGVybicsICdwb2x5Z29uJywgJ3BvbHlsaW5lJywgJ3JhZGlhbEdyYWRp
ZW50JywgJ3JlY3QnLCAnc2NyaXB0JywgJ3N0b3AnLCAnc3R5bGUnLCAnc3ZnJywgJ3N3aXRjaCcs
ICdzeW1ib2wnLCAndGV4dCcsICd0ZXh0UGF0aCcsICd0aXRsZScsICd0cmVmJywgJ3RzcGFuJywg
J3VzZScsICd2aWV3JywgJ3ZrZXJuJ10KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9p
bmxpbmUtY2hpbGRyZW4tcm9vdC1saW5lYm94LWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9ibG9jay9pbmxpbmUtY2hpbGRyZW4tcm9vdC1saW5lYm94LWNyYXNoLmh0
bWwJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYmxvY2svaW5saW5lLWNo
aWxkcmVuLXJvb3QtbGluZWJveC1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw3ICsx
MSw3IEBAIFRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLgogPGJvZHkgZGlyPXJ0bD4K
IDwvYm9keT4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIDwvc2NyaXB0PgogPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tZXJnZS1hbm9ueW1vdXMtYmxvY2stcmVtb3ZlLWNo
aWxkLWNyYXNoMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmxvY2svbWVy
Z2UtYW5vbnltb3VzLWJsb2NrLXJlbW92ZS1jaGlsZC1jcmFzaDIuaHRtbAkocmV2aXNpb24gMTIw
NjcyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tZXJnZS1hbm9ueW1vdXMtYmxvY2stcmVt
b3ZlLWNoaWxkLWNyYXNoMi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC02LDEwICs2LDEwIEBACiA8
L3NwYW4+DQogPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4NCiA8c2NyaXB0Pg0KLWlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpDQoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQ0KIHsNCi0gICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOw0KLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7DQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOw0KKyAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsNCiB9DQogDQogZnVuY3Rpb24gcnVuVGVzdCgp
DQpAQCAtMzEsOCArMzEsOCBAQCBmdW5jdGlvbiBydW5UZXN0KCkNCiAgICAgZG9jdW1lbnQuYm9k
eS5yZW1vdmVDaGlsZChsaXN0SXRlbSk7DQogDQogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdyZXN1bHQnKS5pbm5lckhUTUwgPSAiUEFTUyI7DQotICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpDQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7
DQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikNCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOw0KIH0NCiA8L3NjcmlwdD4NCiA8L2JvZHk+DQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9ibG9jay9tZXJnZS1hbm9ueW1vdXMtYmxvY2stcmVtb3ZlLWNoaWxkLWNyYXNoLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9tZXJnZS1hbm9ueW1vdXMtYmxvY2st
cmVtb3ZlLWNoaWxkLWNyYXNoLmh0bWwJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3Rz
L2Zhc3QvYmxvY2svbWVyZ2UtYW5vbnltb3VzLWJsb2NrLXJlbW92ZS1jaGlsZC1jcmFzaC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC02LDEwICs2LDEwIEBACiA8L3NwYW4+DQogPGRpdiBpZD0icmVz
dWx0Ij48L2Rpdj4NCiA8c2NyaXB0Pg0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
DQoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQ0KIHsNCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOw0KLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
DQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOw0KKyAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsNCiB9DQogDQogZnVuY3Rpb24gcnVuVGVzdCgpDQpAQCAtMzAsOCArMzAsOCBAQCBm
dW5jdGlvbiBydW5UZXN0KCkNCiAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaXN0SXRl
bSk7DQogDQogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKS5pbm5lckhUTUwg
PSAiUEFTUyI7DQotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpDQotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7DQorICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikNCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOw0KIH0NCiA8L3Njcmlw
dD4NCiA8L2JvZHk+DQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9wZXJjZW50LWhlaWdo
dC1kZXNjZW5kYW50LW5vdC1yZW1vdmVkLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9ibG9jay9wZXJjZW50LWhlaWdodC1kZXNjZW5kYW50LW5vdC1yZW1vdmVkLWNy
YXNoLmh0bWwJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYmxvY2svcGVy
Y2VudC1oZWlnaHQtZGVzY2VuZGFudC1ub3QtcmVtb3ZlZC1jcmFzaC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDggKzEsOCBAQAogPGh0bWw+DQogICAgIDxoZWFkPg0KICAgICAgICAgPHNjcmlw
dD4NCi0gICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQ0KLSAgICAg
ICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7DQorICAgICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQ0KKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsNCiAgICAgICAgICAgICAgDQogICAgICAgICAgICAgZnVuY3Rpb24gcnVuVGVz
dCgpDQogICAgICAgICAgICAgew0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYmxvY2svdXBkYXRl
LW1pZHBvaW50cy1mb3ItdHJhaWxpbmctYm94ZXMtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L2Jsb2NrL3VwZGF0ZS1taWRwb2ludHMtZm9yLXRyYWlsaW5nLWJveGVz
LWNyYXNoLmh0bWwJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYmxvY2sv
dXBkYXRlLW1pZHBvaW50cy1mb3ItdHJhaWxpbmctYm94ZXMtY3Jhc2guaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTIsOCArMTIsOCBAQAogfQogPC9zdHlsZT4KIDxzY3JpcHQ+Ci1pZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKIDwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Js
b2NrL2Jhc2ljL2VtcHR5LWFub255bW91cy1ibG9jay1yZW1vdmUtY3Jhc2guaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Jhc2ljL2VtcHR5LWFub255bW91cy1ibG9j
ay1yZW1vdmUtY3Jhc2guaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysgTGF5b3V0VGVzdHMvZmFz
dC9ibG9jay9iYXNpYy9lbXB0eS1hbm9ueW1vdXMtYmxvY2stcmVtb3ZlLWNyYXNoLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsMTAgKzEsMTAgQEAKIDxodG1sPg0KICAgICA8aGVhZD4NCiAgICAg
ICAgIDxzY3JpcHQ+DQotICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikNCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpDQogICAgICAgICAgICAgew0K
LSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7DQotICAg
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsNCisgICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7DQorICAgICAgICAgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOw0KICAgICAgICAgICAgIH0NCiAgICAgICAgIA0KICAg
ICAgICAgICAgIGZ1bmN0aW9uIHJ1blRlc3QoKQ0KQEAgLTE3LDggKzE3LDggQEAKICAgICAgICAg
ICAgICAgICB2YXIgcmVzdWx0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7DQogICAg
ICAgICAgICAgICAgIHJlc3VsdC5pbm5lckhUTUwgPSAiUEFTUyI7DQogICAgICAgICAgICAgICAg
IGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQocmVzdWx0KTsNCi0gICAgICAgICAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikNCi0gICAgICAgICAgICAgICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsNCisgICAgICAgICAgICAgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQ0KKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7DQogICAgICAgICAgICAgfQ0KICAgICAgICAgPC9zY3JpcHQ+DQogICAgIDwvaGVhZD4NCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2NyYXNoLW9uLWFic29sdXRlLXBvc2l0
aW9uaW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9j
cmFzaC1vbi1hYnNvbHV0ZS1wb3NpdGlvbmluZy5odG1sCShyZXZpc2lvbiAxMjA2NzIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2NyYXNoLW9uLWFic29sdXRlLXBvc2l0aW9uaW5n
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSw5IEBACiA8aHRtbD4KIDxzY3JpcHQ+Ci1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQog
ewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIHJlbW92ZUZs
b2F0KCkKQEAgLTE5LDkgKzE5LDkgQEAgZnVuY3Rpb24gY3Jhc2goKQogICAgIHZhciBmbG9hdDEg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZmxvYXQxJyk7CiAgICAgYmxvY2sxLnN0eWxlLnBv
c2l0aW9uID0gJ2Fic29sdXRlJzsKICAgICBmbG9hdDEuc3R5bGUuZGlzcGxheSA9ICdub25lJzsK
LSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKICAgICB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgfQogfQogPC9zY3JpcHQ+
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2NyYXNoLXJlcGxhY2VkLWRpc3Bs
YXktYmxvY2suaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0
L2NyYXNoLXJlcGxhY2VkLWRpc3BsYXktYmxvY2suaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9jcmFzaC1yZXBsYWNlZC1kaXNwbGF5LWJsb2Nr
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw4IEBACiA8cD5UaGlzIHRlc3RzIHJkYXI6
Ly9wcm9ibGVtLzY1NDUwOTUgQVNTRVJUSU9OIEZBSUxFRDogUmVuZGVyQmxvY2suaDo1MTk6ICFv
IHx8IG8tPmlzUmVuZGVyQmxvY2soKTwvcD4KIAogPHNjcmlwdD4KLSAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKIDwvc2NyaXB0PgogCiA8ZGl2IHN0eWxlPSJmbG9hdDogbGVmdDsgaGVpZ2h0
OiAxMDAwcHg7IHdpZHRoOiAyMHB4OyI+PC9kaXY+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Js
b2NrL2Zsb2F0L2Zsb2F0LWluLWZsb2F0LWhpdC10ZXN0aW5nLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9hdC1pbi1mbG9hdC1oaXQtdGVzdGluZy5o
dG1sCShyZXZpc2lvbiAxMjA2NzIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2Zs
b2F0LWluLWZsb2F0LWhpdC10ZXN0aW5nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2
IEBACiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKIGZ1bmN0aW9uIHRlc3QoKQogewpA
QCAtMTYsOCArMTYsOCBAQCBmdW5jdGlvbiByZWxlYXNlKCkKIHsKICAgICBpZiAod2luZG93LmV2
ZW50U2VuZGVyKQogICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7Ci0gICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLQlzZXRUaW1lb3V0KCJsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCkiLCAwKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisJc2V0VGlt
ZW91dCgidGVzdFJ1bm5lci5ub3RpZnlEb25lKCkiLCAwKTsKIH0KIAogPC9zY3JpcHQ+CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LW5vdC1yZW1vdmVkLWNyYXNoLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9hdC1ub3Qt
cmVtb3ZlZC1jcmFzaC5odG1sCShyZXZpc2lvbiAxMjA2NzIpCisrKyBMYXlvdXRUZXN0cy9mYXN0
L2Jsb2NrL2Zsb2F0L2Zsb2F0LW5vdC1yZW1vdmVkLWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTksOCArOSw4IEBACiAgICAgICAgICAgICA8c3BhbiBpZD0ic3BhbjIiIHN0eWxlPSJkaXNw
bGF5OiBsaXN0LWl0ZW0iPjwvc3Bhbj4NCiAgICAgICAgIDwvZGl2Pg0KICAgICAgICAgPHNjcmlw
dCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KLSAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpDQotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsNCisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpDQorICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOw0KIA0KICAgICAgICAgICAgIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7DQogICAgICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9w
Ow0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxvYXQtbm90LXJlbW92ZWQt
ZnJvbS1maXJzdC1sZXR0ZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Js
b2NrL2Zsb2F0L2Zsb2F0LW5vdC1yZW1vdmVkLWZyb20tZmlyc3QtbGV0dGVyLmh0bWwJKHJldmlz
aW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxvYXQtbm90LXJl
bW92ZWQtZnJvbS1maXJzdC1sZXR0ZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw4ICs3LDgg
QEAgV2Via2l0IEJ1ZyA4NjAxOSAtIENyYXNoIGR1ZSB0byBmbG9hdHMgbgogLmxpMjpmaXJzdC1v
Zi10eXBlIHsgZGlzcGxheTogLXdlYmtpdC1pbmxpbmUtZmxleGJveDsgfQogPC9zdHlsZT4KIDxz
Y3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAKIGZ1bmN0aW9uIGNyYXNoKCkgewogICAgIGxpMSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2xpJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Js
b2NrL2Zsb2F0L2Zsb2F0LW5vdC1yZW1vdmVkLWZyb20tbmV4dC1zaWJsaW5nNS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxvYXQtbm90LXJlbW92ZWQt
ZnJvbS1uZXh0LXNpYmxpbmc1Lmh0bWwJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3Rz
L2Zhc3QvYmxvY2svZmxvYXQvZmxvYXQtbm90LXJlbW92ZWQtZnJvbS1uZXh0LXNpYmxpbmc1Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEzLDggKzEzLDggQEAgVGVzdCBwYXNzZXMgaWYgaXQgZG9l
cyBub3QgY3Jhc2guCiAgICAgPC9kaXY+CiA8L2Rpdj4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAKICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKICAgICB0ZXN0
My5zdHlsZS5wb3NpdGlvbiA9ICdhYnNvbHV0ZSc7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Js
b2NrL2Zsb2F0L2Zsb2F0LW5vdC1yZW1vdmVkLWZyb20tbmV4dC1zaWJsaW5nLWNyYXNoLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9hdC1ub3QtcmVt
b3ZlZC1mcm9tLW5leHQtc2libGluZy1jcmFzaC5odG1sCShyZXZpc2lvbiAxMjA2NzIpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LW5vdC1yZW1vdmVkLWZyb20tbmV4dC1z
aWJsaW5nLWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsOCArMyw4IEBACiAgICAgICAg
IFRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLg0KICAgICAgICAgPGRpdiBzdHlsZT0i
d2lkdGg6IDE1cHg7Ij4NCiAgICAgICAgICAgICA8c2NyaXB0Pg0KLSAgICAgICAgICAgICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQ0KLSAgICAgICAgICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOw0KKyAgICAgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpDQorICAgICAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsNCiANCiAgICAgICAgICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpDQogICAgICAgICAg
ICAgICAgIHsNCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0LW9yaWdp
bmF0aW5nLWxpbmUtZGVsZXRlZC1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvYmxvY2svZmxvYXQvZmxvYXQtb3JpZ2luYXRpbmctbGluZS1kZWxldGVkLWNyYXNoLmh0
bWwJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxv
YXQtb3JpZ2luYXRpbmctbGluZS1kZWxldGVkLWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsOSArMSw5IEBACiA8aHRtbD4NCiBUZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5vdCBjcmFzaC4N
CiA8c2NyaXB0Pg0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsNCi0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOw0KLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7DQoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7DQorICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOw0KKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsNCiB9
DQogDQogZnVuY3Rpb24gcnVuVGVzdCgpDQpAQCAtMTMsOCArMTMsOCBAQCBmdW5jdGlvbiBydW5U
ZXN0KCkNCiANCiAJZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7DQogICAgIA0KLSAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQ0KLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOw0KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpDQorICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsNCiB9DQogDQogc2V0VGltZW91dCgicnVuVGVzdCgpOyIsIDAp
Ow0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxvYXRzLW5vdC1jbGVhcmVk
LWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9m
bG9hdHMtbm90LWNsZWFyZWQtY3Jhc2guaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9hdHMtbm90LWNsZWFyZWQtY3Jhc2guaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSw5ICsxLDkgQEAKIDxodG1sPg0KIDxzY3JpcHQ+DQotaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikNCitpZiAod2luZG93LnRlc3RSdW5uZXIpDQogew0KLSAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7DQotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsNCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7DQor
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOw0KIH0gICANCiB3aW5kb3cuc2V0VGltZW91
dCgnY3Jhc2goKTsnLCAwKTsNCiBmdW5jdGlvbiBjcmFzaCgpDQpAQCAtMTUsOCArMTUsOCBAQCBm
dW5jdGlvbiBjcmFzaCgpDQogDQogICAgIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOw0KICAgICBi
bG9jazEuaW5uZXJIVE1MID0gIlBBU1MiOw0KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQ0KLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOw0KKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpDQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsNCiB9DQogPC9zY3JpcHQ+DQogPGRpdiBpZD0iYmxvY2sxIj4NCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0cy1ub3QtY2xlYXJlZC1mcm9tLWdyYW5kLXBhcmVudHMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2Zsb2F0cy1u
b3QtY2xlYXJlZC1mcm9tLWdyYW5kLXBhcmVudHMuaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9hdHMtbm90LWNsZWFyZWQtZnJvbS1ncmFu
ZC1wYXJlbnRzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsOCArMiw4IEBACiA8Ym9keSBvbmxv
YWQ9InJ1blRlc3QoKTsiPg0KIFRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLg0KIDxz
Y3JpcHQ+DQotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpDQotICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7DQorICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikNCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOw0KIA0KICAgICBmdW5jdGlv
biBydW5UZXN0KCkgew0KICAgICAgICAgc3BhbjAgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdz
cGFuJyk7DQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9mbG9hdHMtd2l0aC1t
YXJnaW4tc2hvdWxkLW5vdC13cmFwLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9ibG9jay9mbG9hdC9mbG9hdHMtd2l0aC1tYXJnaW4tc2hvdWxkLW5vdC13cmFwLmh0bWwJKHJl
dmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvZmxvYXRzLXdp
dGgtbWFyZ2luLXNob3VsZC1ub3Qtd3JhcC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xOSw4ICsx
OSw4IEBACiA8ZGl2IGlkPSJib3R0b20iPlRoZSB0aHJlZSBibG9ja3MgYWJvdmUgc2hvdWxkIGFs
bCBiZSBvbiB0aGUgc2FtZSBsaW5lLjwvZGl2PgogCiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwogCiAgICAgdmFyIHJlY3QgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Y29udGFpbmVyJykuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAgICAgdmFyIGhlaWdodCA9IHJl
Y3QuYm90dG9tIC0gcmVjdC50b3A7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0
L2ludHJ1ZGluZy1mbG9hdC1ub3QtcmVtb3ZlZC1mcm9tLWRlc2NlbmRhbnQtY3Jhc2guaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L2ludHJ1ZGluZy1mbG9h
dC1ub3QtcmVtb3ZlZC1mcm9tLWRlc2NlbmRhbnQtY3Jhc2guaHRtbAkocmV2aXNpb24gMTIwNjcy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9mbG9hdC9pbnRydWRpbmctZmxvYXQtbm90LXJl
bW92ZWQtZnJvbS1kZXNjZW5kYW50LWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsOCAr
Nyw4IEBAIFRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLgogLnRkMSB7IGhlaWdodDog
MTAwcHg7IH0KIDwvc3R5bGU+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CiBzcGFuMSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NwYW4nKTsKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvaW50cnVkaW5nLWZsb2F0LW5vdC1yZW1vdmVk
LWZyb20tbmV4dC1zaWJsaW5nLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9ibG9jay9mbG9hdC9pbnRydWRpbmctZmxvYXQtbm90LXJlbW92ZWQtZnJvbS1uZXh0LXNp
YmxpbmctY3Jhc2guaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9i
bG9jay9mbG9hdC9pbnRydWRpbmctZmxvYXQtbm90LXJlbW92ZWQtZnJvbS1uZXh0LXNpYmxpbmct
Y3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTMsOCArMTMsOCBAQAogfQogPC9zdHlsZT4K
IDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogb25sb2FkID0gZnVuY3Rpb24oKSB7CiBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NlbGVjdCcpKTsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvbm8tb3ZlcmhhbmdpbmctZmxvYXQtY3Jh
c2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L25vLW92
ZXJoYW5naW5nLWZsb2F0LWNyYXNoLmh0bWwJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRl
c3RzL2Zhc3QvYmxvY2svZmxvYXQvbm8tb3ZlcmhhbmdpbmctZmxvYXQtY3Jhc2guaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSw4ICsxLDggQEAKIDxodG1sPgogPGJvZHkgb25sb2FkPSJydW5UZXN0
KCkiPgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgCiAg
ICAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgeyAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYmxv
Y2svZmxvYXQvcG9zaXRpb25lZC1mbG9hdC1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvcG9zaXRpb25lZC1mbG9hdC1jcmFzaC5odG1sCShyZXZp
c2lvbiAxMjA2NzIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L3Bvc2l0aW9uZWQt
ZmxvYXQtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMyw4ICszLDggQEAKIDxib2R5IHN0
eWxlPSJwb3NpdGlvbjogZml4ZWQ7Ij4KIDxkaXYgc3R5bGU9InBvc2l0aW9uOiBmaXhlZDsgZmxv
YXQ6IC13ZWJraXQtcG9zaXRpb25lZDsiPjwvZGl2PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwog
CiBkb2N1bWVudC5ib2R5Lm9mZnNldFRvcDsKIGRvY3VtZW50LmJvZHkucGFyZW50Tm9kZS5yZW1v
dmVDaGlsZChkb2N1bWVudC5ib2R5KTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxv
YXQvcmVsYXRpdmUtcGFpbnRlZC10d2ljZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvYmxvY2svZmxvYXQvcmVsYXRpdmUtcGFpbnRlZC10d2ljZS5odG1sCShyZXZpc2lvbiAx
MjA2NzIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L3JlbGF0aXZlLXBhaW50ZWQt
dHdpY2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTIsNyArMTIsNyBAQAogICAgICAgICAgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRhcmdldCIpLnN0eWxlLmJhY2tncm91bmRDb2xvciA9
ICJyZWQiOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDI1LCAyNSk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5t
b3VzZURvd24oKTsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvc2VsZWN0aW9uLWdhcC1jbGlwLW91dC10aWdlci1j
cmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmxvY2svZmxvYXQvc2Vs
ZWN0aW9uLWdhcC1jbGlwLW91dC10aWdlci1jcmFzaC5odG1sCShyZXZpc2lvbiAxMjA2NzIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2Zsb2F0L3NlbGVjdGlvbi1nYXAtY2xpcC1vdXQtdGln
ZXItY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTE3LDggKzExNyw4IEBACiAgICAgPC9k
aXY+CiAgICAgPHNjcmlwdD4KICAgICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlNlbGVj
dEFsbCIpOwotICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0g
ICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CiAgICAgICAgICAgIH0KICAgICA8L3NjcmlwdD4KIDwvYm9keT4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvYmxvY2svbGluZS1sYXlvdXQvY3Jhc2gtaW4taXNvbGF0ZS13aXRo
LXBvc2l0aW9uZWQtY2hpbGQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Js
b2NrL2xpbmUtbGF5b3V0L2NyYXNoLWluLWlzb2xhdGUtd2l0aC1wb3NpdGlvbmVkLWNoaWxkLmh0
bWwJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYmxvY2svbGluZS1sYXlv
dXQvY3Jhc2gtaW4taXNvbGF0ZS13aXRoLXBvc2l0aW9uZWQtY2hpbGQuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtNSw3ICs1LDcgQEAgVGhpcyB0ZXN0cyB0aGF0IGEgcG9zaXRpb25lZCBvYmplY3Qg
YXMgdAogPHNwYW4gc3R5bGU9InVuaWNvZGUtYmlkaTotd2Via2l0LWlzb2xhdGU7Ij48ZGl2IHN0
eWxlPSJwb3NpdGlvbjphYnNvbHV0ZTsiPjwvZGl2Pjwvc3Bhbj4KIDwvYm9keT4KIDxzY3JpcHQ+
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKIDwvc2NyaXB0PgogPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYmxvY2svbGluZS1sYXlvdXQvaW5saW5lLWJv
eC13cmFwcGVyLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ibG9j
ay9saW5lLWxheW91dC9pbmxpbmUtYm94LXdyYXBwZXItY3Jhc2guaHRtbAkocmV2aXNpb24gMTIw
NjcyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9saW5lLWxheW91dC9pbmxpbmUtYm94LXdy
YXBwZXItY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxNiArMywxNiBAQAogICAgIGJv
ZHkgeyBkaXJlY3Rpb246IHJ0bDsgcGFkZGluZy1sZWZ0OiAxMDAlOyB9DQogPC9zdHlsZT4NCiA8
c2NyaXB0Pg0KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7DQotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7DQotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7DQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
ew0KKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7DQorICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsNCiAgICAgfQ0KIA0KICAgICBmdW5jdGlvbiBydW5UZXN0KCkgew0K
ICAgICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAiUEFTUyI7DQogDQotICAgICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQ0KLSAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsNCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikN
CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsNCiAgICAgfQ0KIA0KICAgICBz
ZXRUaW1lb3V0KCJydW5UZXN0KCkiLCAwKTsNCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Jsb2Nr
L2xpbmUtbGF5b3V0L2xpbmUtYnJlYWstb2JqLXJlbW92YWwtY3Jhc2guaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2xpbmUtbGF5b3V0L2xpbmUtYnJlYWstb2JqLXJl
bW92YWwtY3Jhc2guaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9i
bG9jay9saW5lLWxheW91dC9saW5lLWJyZWFrLW9iai1yZW1vdmFsLWNyYXNoLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTI0LDggKzI0LDggQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewog
CiAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKCdQQVNTLCBpZiBubyBjcmFzaCBvciBhc3NlcnQgaW4gZGVidWcnKSk7CiAKLSAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIH0KIDwvc2NyaXB0PgogPC9odG1sPgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9ibG9jay9saW5lLWxheW91dC9saW5lLWJyZWFrLXJlbW92YWwtbmVh
ci10ZXh0YXJlYS1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmxv
Y2svbGluZS1sYXlvdXQvbGluZS1icmVhay1yZW1vdmFsLW5lYXItdGV4dGFyZWEtY3Jhc2guaHRt
bAkocmV2aXNpb24gMTIwNjcyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9saW5lLWxheW91
dC9saW5lLWJyZWFrLXJlbW92YWwtbmVhci10ZXh0YXJlYS1jcmFzaC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0zNyw4ICszNyw4IEBAIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsNCiAgICAg
ZGl2MS5zZXRBdHRyaWJ1dGUoJ2NsYXNzJywgJ3N0eWxlMycpOw0KICAgICBzcGFuRWxlbTIucmVt
b3ZlQ2hpbGQocGFyYWdyYXBoRWxlbSk7DQogDQotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpDQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7DQor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikNCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOw0KIH0NCiA8L3NjcmlwdD4NCiA8Ym9keT4NCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Js
b2NrL2xpbmUtbGF5b3V0L3NlbGVjdGlvbi1oaWdobGlnaHQtY3Jhc2guaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL2xpbmUtbGF5b3V0L3NlbGVjdGlvbi1oaWdobGln
aHQtY3Jhc2guaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ibG9j
ay9saW5lLWxheW91dC9zZWxlY3Rpb24taGlnaGxpZ2h0LWNyYXNoLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTQsOCArNCw4IEBACiBUZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5vdCBjcmFzaC48YnIv
Pg0KIGE8cnVieT5iPHJ0PmM8L3J0PjwvcnVieT5kDQogPHNjcmlwdD4NCi1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQ0KLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7DQoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQ0KKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsNCiANCiBkb2N1bWVudC5leGVjQ29tbWFuZCgiU2VsZWN0QWxsIik7DQogPC9zY3JpcHQ+DQpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9wb3NpdGlvbmluZy9hYnNvbHV0ZS1hcHBlbmRl
ZC10by1pbmxpbmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL3Bv
c2l0aW9uaW5nL2Fic29sdXRlLWFwcGVuZGVkLXRvLWlubGluZS5odG1sCShyZXZpc2lvbiAxMjA2
NzIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL3Bvc2l0aW9uaW5nL2Fic29sdXRlLWFwcGVu
ZGVkLXRvLWlubGluZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE1ICsxLDE1IEBACiA8aHRt
bD4KIDxoZWFkPgogICAgIDxzY3JpcHQ+Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAg
ICAgICB9CiAKICAgICAgICAgZnVuY3Rpb24gbWVhc3VyZUJsb2NrUG9zaXRpb24oKSB7CiAgICAg
ICAgICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImJsb2NrIikub2Zmc2V0VG9wID4g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvdmVyIikub2Zmc2V0SGVpZ2h0KQogICAgICAgICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVySFRNTCA9ICJTVUND
RVNTIjsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CiAKICAgICAgICAg
ZnVuY3Rpb24gdXBkYXRlQmxvY2soKSB7CkBAIC0xOSw3ICsxOSw3IEBACiAKICAgICAgICAgZnVu
Y3Rpb24gdGVzdCgpewogICAgICAgICAgICAgdmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnaG92ZXInKTsKLSAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGVsZW1lbnQub2Zmc2V0TGVmdCArIDUsIGVs
ZW1lbnQub2Zmc2V0VG9wICsgNSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvYmxvY2svcG9zaXRpb25pbmcvYWJzb2x1dGUtaW4taW5saW5lLXJ0bC00
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9wb3NpdGlvbmluZy9h
YnNvbHV0ZS1pbi1pbmxpbmUtcnRsLTQuaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9ibG9jay9wb3NpdGlvbmluZy9hYnNvbHV0ZS1pbi1pbmxpbmUtcnRsLTQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDggQEAKIDxodG1sIGRpcj0icnRsIj4KIDxib2R5
PgogPHNjcmlwdD4KLSAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCkKKyAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpCiA8L3NjcmlwdD4KIDxidXR0b24gc3R5bGU9InBv
c2l0aW9uOiByZWxhdGl2ZSIgdHlwZT0ic3VibWl0Ij4KIDxzcGFuIHN0eWxlPSJwb3NpdGlvbjog
YWJzb2x1dGUiPlRoaXMgdGVzdCBjaGVja3MgdGhhdCBhbiBhYnNvbHV0ZSBlbGVtZW50CkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL3Bvc2l0aW9uaW5nL2Fic29sdXRlLWxheW91dC1hZnRl
ci1pbWFnZS1sb2FkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9w
b3NpdGlvbmluZy9hYnNvbHV0ZS1sYXlvdXQtYWZ0ZXItaW1hZ2UtbG9hZC5odG1sCShyZXZpc2lv
biAxMjA2NzIpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL3Bvc2l0aW9uaW5nL2Fic29sdXRl
LWxheW91dC1hZnRlci1pbWFnZS1sb2FkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSw5
IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
LSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgIH0KIAogICAgIC8vICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NjExCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2Jsb2NrL3Bvc2l0aW9uaW5nL2NvbXBsZXgtcGVyY2VudGFnZS1oZWlnaHQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL3Bvc2l0aW9uaW5nL2NvbXBs
ZXgtcGVyY2VudGFnZS1oZWlnaHQuaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9ibG9jay9wb3NpdGlvbmluZy9jb21wbGV4LXBlcmNlbnRhZ2UtaGVpZ2h0Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTE0OCw4ICsxNDgsOCBAQAogICAgICAgICAgICAgZWxzZQogICAg
ICAgICAgICAgICAgIGFkZFJlc3VsdCgicmVkIiwgIkZBSUxFRDogcmVkSGVpZ2h0ICgiICsgcmVk
SGVpZ2h0ICsgIikgIT0gYmx1ZUhlaWdodCAoIiArIGJsdWVIZWlnaHQgKyAiKSIpOwogCi0gICAg
ICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
ICAgICAgICAgPC9zY3JpcHQ+CiAKICAgICA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0
L2Jsb2NrL3Bvc2l0aW9uaW5nL2ZpeGVkLXBvc2l0aW9uLWRldGFjaGVkLWZyYW1lLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9wb3NpdGlvbmluZy9maXhlZC1wb3Np
dGlvbi1kZXRhY2hlZC1mcmFtZS5odG1sCShyZXZpc2lvbiAxMjA2NzIpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2Jsb2NrL3Bvc2l0aW9uaW5nL2ZpeGVkLXBvc2l0aW9uLWRldGFjaGVkLWZyYW1lLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTUsNiArNSw2IEBAIGZyYW1lZG9jID0gZnJhbWVzWzBdLmRv
Y3VtZW50LmRvY3VtZW50RWwKIGRvY3VtZW50LmJvZHkuaW5uZXJUZXh0ID0gJ1BBU1MnOwogZnJh
bWVkb2MuaW5uZXJIVE1MID0gJzx0aXRsZSBzdHlsZT0icG9zaXRpb246Zml4ZWQiPic7CiBmcmFt
ZWRvYy5nZXRFbGVtZW50c0J5VGFnTmFtZSgndGl0bGUnKVswXS5pbm5lclRleHQgPSAnYSc7Ci1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKQoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpCiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYmxvY2svcG9zaXRp
b25pbmcvaGl0dGVzdC1vbi1yZWxhdGl2ZS1wb3NpdGlvbmVkLWNoaWxkcmVuLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9wb3NpdGlvbmluZy9oaXR0ZXN0LW9uLXJl
bGF0aXZlLXBvc2l0aW9uZWQtY2hpbGRyZW4uaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9ibG9jay9wb3NpdGlvbmluZy9oaXR0ZXN0LW9uLXJlbGF0aXZlLXBvc2l0
aW9uZWQtY2hpbGRyZW4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBmdW5j
dGlvbiBydW5UZXN0KGJveE5hbWUsIHRlc3REaXYpIHsKICAgICB9CiB9CiAKLWlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHZh
ciB0ZXN0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0cycpLmdldEVsZW1lbnRzQnlU
YWdOYW1lKCdkaXYnKTsKICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRlc3RzLmxlbmd0aDsgaSsr
KQogICAgICAgICBydW5UZXN0KCJib3ggIiArIChpICsgMSksIHRlc3RzW2ldKTsKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvYmxvY2svcG9zaXRpb25pbmcvb2Zmc2V0TGVmdC1vZmZzZXRUb3AtYm9y
ZGVycy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYmxvY2svcG9zaXRpb25p
bmcvb2Zmc2V0TGVmdC1vZmZzZXRUb3AtYm9yZGVycy5odG1sCShyZXZpc2lvbiAxMjA2NzIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL3Bvc2l0aW9uaW5nL29mZnNldExlZnQtb2Zmc2V0VG9w
LWJvcmRlcnMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSw4ICs5LDggQEAgamVlCiA8L2Rpdj4K
IDwvZGl2PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKIHZhciBlbCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCd4Jyk7CiB3aGlsZSAoZWwpIHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYmxvY2sv
cG9zaXRpb25pbmcvb2Zmc2V0TGVmdC1yZWxhdGl2ZS1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL3Bvc2l0aW9uaW5nL29mZnNldExlZnQtcmVsYXRpdmUt
aWZyYW1lLmh0bWwJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYmxvY2sv
cG9zaXRpb25pbmcvb2Zmc2V0TGVmdC1yZWxhdGl2ZS1pZnJhbWUuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMiw4ICsyLDggQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAog
ZnVuY3Rpb24gbG9nKHN0cikgewogICB2YXIgbGkgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJs
aSIpOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9wb3NpdGlvbmluZy9vZmZzZXRMZWZ0
LXJlbGF0aXZlLXRkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9w
b3NpdGlvbmluZy9vZmZzZXRMZWZ0LXJlbGF0aXZlLXRkLmh0bWwJKHJldmlzaW9uIDEyMDY3MikK
KysrIExheW91dFRlc3RzL2Zhc3QvYmxvY2svcG9zaXRpb25pbmcvb2Zmc2V0TGVmdC1yZWxhdGl2
ZS10ZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsOCBAQAogPGh0bWw+CiA8aGVhZD4K
IDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOwogCiBmdW5jdGlvbiBsb2coc3RyKSB7CiAgIHZhciBsaSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImxpIik7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Jsb2Nr
L3Bvc2l0aW9uaW5nL3Bvc2l0aW9uZWQtZmxvYXQtbGF5b3V0LWFmdGVyLWltYWdlLWxvYWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL3Bvc2l0aW9uaW5nL3Bvc2l0
aW9uZWQtZmxvYXQtbGF5b3V0LWFmdGVyLWltYWdlLWxvYWQuaHRtbAkocmV2aXNpb24gMTIwNjcy
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9wb3NpdGlvbmluZy9wb3NpdGlvbmVkLWZsb2F0
LWxheW91dC1hZnRlci1pbWFnZS1sb2FkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSw5
IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
LSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgIH0KIAogICAgIC8vICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU0NjExCkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L2Jsb2NrL3Bvc2l0aW9uaW5nL3Bvc2l0aW9uZWQtb2JqZWN0LXVuZGVyLXNwbGl0
LWJsb2NrLXBhcmVudC1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
YmxvY2svcG9zaXRpb25pbmcvcG9zaXRpb25lZC1vYmplY3QtdW5kZXItc3BsaXQtYmxvY2stcGFy
ZW50LWNyYXNoLmh0bWwJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYmxv
Y2svcG9zaXRpb25pbmcvcG9zaXRpb25lZC1vYmplY3QtdW5kZXItc3BsaXQtYmxvY2stcGFyZW50
LWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQyLDggKzQyLDggQEAgd2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uKCkgewogCiAgICAgc3BsaXRCbG9ja1BhcmVudC5yZW1vdmVDaGlsZChzcGxp
dEZsb3dEdCk7IC8vIEVuc3VyZSB0aGUgbm9kZSB3aXRoIHRoZSBiYWQgcG9zaXRpb25lZCBvYmpl
Y3QgbGlzdCBnZXRzIGxheW91dC4KIAotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogfQog
PC9zY3JpcHQ+CiA8Ym9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYmxvY2svcG9zaXRpb25p
bmcvcmVtb3ZpbmctaW5zaWRlLXJlbHBvc2l0aW9uZWQtaW5saW5lLWNyYXNoLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9wb3NpdGlvbmluZy9yZW1vdmluZy1pbnNp
ZGUtcmVscG9zaXRpb25lZC1pbmxpbmUtY3Jhc2guaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9ibG9jay9wb3NpdGlvbmluZy9yZW1vdmluZy1pbnNpZGUtcmVscG9z
aXRpb25lZC1pbmxpbmUtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNSw4ICs1LDggQEAK
ICAgICAgICAgICAgIHNwYW4geyBwb3NpdGlvbjogYWJzb2x1dGU7IH0KICAgICAgICAgPC9zdHls
ZT4KICAgICAgICAgPHNjcmlwdD4KLSAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgICAgICAgICBmdW5jdGlvbiBydW5UZXN0
KCkKICAgICAgICAgICAgIHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYmxvY2svcG9zaXRpb25p
bmcvcmVzb3VyY2VzL2Fic29sdXRlLWxheW91dC1hZnRlci1pbWFnZS1sb2FkLTIuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Jsb2NrL3Bvc2l0aW9uaW5nL3Jlc291cmNlcy9h
YnNvbHV0ZS1sYXlvdXQtYWZ0ZXItaW1hZ2UtbG9hZC0yLmh0bWwJKHJldmlzaW9uIDEyMDY3MikK
KysrIExheW91dFRlc3RzL2Zhc3QvYmxvY2svcG9zaXRpb25pbmcvcmVzb3VyY2VzL2Fic29sdXRl
LWxheW91dC1hZnRlci1pbWFnZS1sb2FkLTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjAsNyAr
MjAsNyBAQAogICAgICAgICB2YXIgZm9vdG5vdGVQb3NpdGlvbiA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJzcGFudGV4dCIpLm9mZnNldFRvcDsKICAgICAgICAgaWYgKGZvb3Rub3RlUG9zaXRp
b24gPj0gYm90dG9tT2ZJbWFnZSkKICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
Y29uc29sZSIpLmlubmVySFRNTCA9ICJTVUNDRVNTIjsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAg
ICB9CiA8L3NjcmlwdD4KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9wb3NpdGlvbmlu
Zy9yZXNvdXJjZXMvcG9zaXRpb25lZC1mbG9hdC1sYXlvdXQtYWZ0ZXItaW1hZ2UtbG9hZC0yLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ibG9jay9wb3NpdGlvbmluZy9yZXNv
dXJjZXMvcG9zaXRpb25lZC1mbG9hdC1sYXlvdXQtYWZ0ZXItaW1hZ2UtbG9hZC0yLmh0bWwJKHJl
dmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYmxvY2svcG9zaXRpb25pbmcvcmVz
b3VyY2VzL3Bvc2l0aW9uZWQtZmxvYXQtbGF5b3V0LWFmdGVyLWltYWdlLWxvYWQtMi5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xOSw3ICsxOSw3IEBACiAgICAgICAgIHZhciBmb290bm90ZVBvc2l0
aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInNwYW50ZXh0Iikub2Zmc2V0VG9wOwogICAg
ICAgICBpZiAoZm9vdG5vdGVQb3NpdGlvbiA+PSBib3R0b21PZkltYWdlKQogICAgICAgICAgIGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb25zb2xlIikuaW5uZXJIVE1MID0gIlNVQ0NFU1MiOwot
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0KIDwvc2NyaXB0PgogCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2JvcmRlcnMvYm9yZGVyLWltYWdlLXJlc2V0LWJ5LWJvcmRlci1zaG9ydGhhbmQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvYm9yZGVyLWltYWdlLXJl
c2V0LWJ5LWJvcmRlci1zaG9ydGhhbmQuaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1pbWFnZS1yZXNldC1ieS1ib3JkZXItc2hvcnRoYW5k
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTExLDggKzExLDggQEAKICAgICB9CiAgIDwvc3R5bGU+
CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICB3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogZnVuY3Rpb24gcnVuVGVz
dCgpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvYm9yZGVyLWltYWdlLXNsaWNl
LW9taXNzaW9uLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2Jv
cmRlci1pbWFnZS1zbGljZS1vbWlzc2lvbi5odG1sCShyZXZpc2lvbiAxMjA2NzIpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2JvcmRlcnMvYm9yZGVyLWltYWdlLXNsaWNlLW9taXNzaW9uLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsOCArMSw4IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdD4KLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKQoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHdpbmRvdy50
ZXN0UnVubmVyLmR1bXBBc1RleHQoKQogCiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKSW5kZXg6IExh
eW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItbWl4ZWQtYWxwaGEuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2JvcmRlcnMvYm9yZGVyLW1peGVkLWFscGhhLmh0bWwJKHJl
dmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItbWl4ZWQt
YWxwaGEuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNiBAQAogPGRpdiBjbGFzcz0i
aW5zZXQiPjwvZGl2PgogPGRpdiBjbGFzcz0ib3V0c2V0Ij48L2Rpdj4KIDxzY3JpcHQ+Ci0gICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0
VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtY29tcGxleC1pbm5lci5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9ib3JkZXItcmFkaXVzLWNvbXBsZXgt
aW5uZXIuaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJz
L2JvcmRlci1yYWRpdXMtY29tcGxleC1pbm5lci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw3
ICszNSw3IEBAIGRpdi5iciB7CiA8ZGl2IGNsYXNzPSJ0bCBiciI+PC9kaXY+CiA8ZGl2IGNsYXNz
PSJ0ciBibCI+PC9kaXY+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7Cisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
dHJ1ZSk7CiA8L3NjcmlwdD4KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRl
ci1yYWRpdXMtcGFyc2luZy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm9y
ZGVycy9ib3JkZXItcmFkaXVzLXBhcnNpbmcuaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9ib3JkZXJzL2JvcmRlci1yYWRpdXMtcGFyc2luZy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0yOSw4ICsyOSw4IEBACiAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hp
bGQoZWxlbWVudCk7CiAgICAgfQogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAg
ICB0ZXN0Qm9yZGVyUmFkaXVzVmFsdWUoImJvcmRlci1yYWRpdXMiLCAiMTBweCIsIFsiMTBweCIs
ICIxMHB4IiwgIjEwcHgiLCAiMTBweCJdKTsKICAgICB0ZXN0Qm9yZGVyUmFkaXVzVmFsdWUoImJv
cmRlci1yYWRpdXMiLCAiMTBweCAyMHB4IiwgWyIxMHB4IiwgIjIwcHgiLCAiMTBweCIsICIyMHB4
Il0pOwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL25lZ2F0aXZlLWJvcmRlci13aWR0
aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9uZWdhdGl2ZS1i
b3JkZXItd2lkdGguaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9i
b3JkZXJzL25lZ2F0aXZlLWJvcmRlci13aWR0aC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMCw4
ICsxMCw4IEBACiAgICAgICAgIH0NCiAgICAgPC9zdHlsZT4NCiAgICAgPHNjcmlwdD4NCi0gICAg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikNCi0gICAgICAgIHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7DQorICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikNCisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsNCiAgICAgPC9z
Y3JpcHQ+DQogPC9oZWFkPg0KIDxib2R5Pg0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm9yZGVy
cy9vdXRsaW5lLWFscGhhLWJsb2NrLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFz
dC9ib3JkZXJzL291dGxpbmUtYWxwaGEtYmxvY2suaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL291dGxpbmUtYWxwaGEtYmxvY2suaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTI4LDYgKzEyOCw2IEBAIGluc2V0PGJyPjxicj4KIG91dHNldAogCiA8c2Ny
aXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKIDwvc2NyaXB0PgpJbmRleDog
TGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL291dGxpbmUtYWxwaGEtaW5saW5lLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ib3JkZXJzL291dGxpbmUtYWxwaGEtaW5saW5lLmh0
bWwJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYm9yZGVycy9vdXRsaW5l
LWFscGhhLWlubGluZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05MSw2ICs5MSw2IEBAIGluc2V0
CiBvdXRzZXQKIAogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CiA8
L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm94LXNoYWRvdy9ib3gtc2hhZG93LWNs
aXBwZWQtc2xpY2VzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ib3gtc2hh
ZG93L2JveC1zaGFkb3ctY2xpcHBlZC1zbGljZXMuaHRtbAkocmV2aXNpb24gMTIwNjcyKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9ib3gtc2hhZG93L2JveC1zaGFkb3ctY2xpcHBlZC1zbGljZXMuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDxodG1sPjxoZWFkPgogPHNjcmlwdCB0
eXBlPXRleHQvamF2YXNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0g
ICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsK
IDwvc2NyaXB0PgogPHN0eWxlIHR5cGU9dGV4dC9jc3M+CiAucm91bmRlZCB7IGJvcmRlcjogMnB4
IHNvbGlkIGJsYWNrOyBib3JkZXItcmFkaXVzOiA1cHggLyAxMHB4OyBib3gtc2hhZG93OiAtMTUw
cHggMCAzMHB4IDIwMHB4ICM5OTk7IHdpZHRoOiA0MDBweDsgaGVpZ2h0OiAyMDBweDsgcG9zaXRp
b246IHJlbGF0aXZlIH0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm94LXNoYWRvdy9ib3gtc2hh
ZG93LWN1cnJlbnRjb2xvci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm94
LXNoYWRvdy9ib3gtc2hhZG93LWN1cnJlbnRjb2xvci5odG1sCShyZXZpc2lvbiAxMjA2NzIpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2JveC1zaGFkb3cvYm94LXNoYWRvdy1jdXJyZW50Y29sb3IuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMTIsOCArMTIsOCBAQAogICAgIH0KICAgPC9zdHlsZT4KIDxz
Y3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOworaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CiA8L3NjcmlwdD4KIDwv
aGVhZD4KIDxib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ib3gtc2hhZG93L25vLWJsdXIt
bXVsdGlwbGUtb2Zmc2V0cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm94
LXNoYWRvdy9uby1ibHVyLW11bHRpcGxlLW9mZnNldHMuaHRtbAkocmV2aXNpb24gMTIwNjcyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9ib3gtc2hhZG93L25vLWJsdXItbXVsdGlwbGUtb2Zmc2V0cy5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw4ICsxNiw4IEBACiAgICAgICAgIH0KICAgICA8L3N0
eWxlPgogICAgIDxzY3JpcHQ+Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0
cnVlKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgd2luZG93
LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgICA8L3NjcmlwdD4KICAgICBEaXZzIHdp
dGggZ3JlZW4gbm8tYmx1ciBzaGFkb3dzIGFuZCBvZmZzZXRzICh4LHkpIGxpc3RlZC4KICAgICA8
ZGl2IGlkPSJjb250YWluZXIiPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ib3gtc2hhZG93L3Nw
cmVhZC1tdWx0aXBsZS1pbnNldC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
Ym94LXNoYWRvdy9zcHJlYWQtbXVsdGlwbGUtaW5zZXQuaHRtbAkocmV2aXNpb24gMTIwNjcyKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9ib3gtc2hhZG93L3NwcmVhZC1tdWx0aXBsZS1pbnNldC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC01NSw4ICs1NSw4IEBACiAKIDwvc3R5bGU+CiA8c2NyaXB0Pgot
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KHRydWUpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCh0cnVlKTsKIDwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHk+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L2JveC1zaGFkb3cvc3ByZWFkLW11bHRpcGxlLW5vcm1hbC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvYm94LXNoYWRvdy9zcHJlYWQtbXVsdGlwbGUt
bm9ybWFsLmh0bWwJKHJldmlzaW9uIDEyMDY3MikKKysrIExheW91dFRlc3RzL2Zhc3QvYm94LXNo
YWRvdy9zcHJlYWQtbXVsdGlwbGUtbm9ybWFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMyLDgg
KzMyLDggQEAKIAogPC9zdHlsZT4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CitpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KHRydWUpOwogPC9z
Y3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvYm94LXNoYWRv
dy9yZXNvdXJjZXMvYm94LXNoYWRvdy1vdmVyZmxvdy1zY3JvbGwuanMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvZmFzdC9ib3gtc2hhZG93L3Jlc291cmNlcy9ib3gtc2hhZG93LW92ZXJmbG93
LXNjcm9sbC5qcwkocmV2aXNpb24gMTIwNjcyKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ib3gtc2hh
ZG93L3Jlc291cmNlcy9ib3gtc2hhZG93LW92ZXJmbG93LXNjcm9sbC5qcwkod29ya2luZyBjb3B5
KQpAQCAtMjksNiArMjksNiBAQCBlbGVtZW50LnNjcm9sbFRvcCA9IDUwMDsKIHNob3VsZEJlKCJl
bGVtZW50LnNjcm9sbFRvcCIsICI0MCs1MCs2MCIpOwogCiAvLyBJZiB3ZSBhcmUgaW4gRFRSLCB3
ZSBkb24ndCBuZWVkIG1lYW5pbmdsZXNzIHRyYWlsaW5nIG1lc3NhZ2VzLgotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgeworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm1haW4iKS5pbm5lckhUTUwgPSAiIjsKIH0K
</data>
<flag name="review"
          id="155913"
          type_id="1"
          status="+"
          setter="tkent"
    />
          </attachment>
      

    </bug>

</bugzilla>