<?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>93177</bug_id>
          
          <creation_ts>2012-08-03 23:48:50 -0700</creation_ts>
          <short_desc>Use testRunner instead of layoutTestController in tests still found to be using layoutTestController by grep</short_desc>
          <delta_ts>2012-08-04 19:07:25 -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>
          <blocked>93190</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>abarth</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>feature-media-reviews</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>687401</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-03 23:48:50 -0700</bug_when>
    <thetext>Use testRunner instead of layoutTestController in tests still found to be using layoutTestController by grep</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687402</commentid>
    <comment_count>1</comment_count>
      <attachid>156519</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-03 23:50:54 -0700</bug_when>
    <thetext>Created attachment 156519
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>687409</commentid>
    <comment_count>2</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-08-04 00:22:20 -0700</bug_when>
    <thetext>Committed r124692: &lt;http://trac.webkit.org/changeset/124692&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>156519</attachid>
            <date>2012-08-03 23:50:54 -0700</date>
            <delta_ts>2012-08-04 00:00:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-93177-20120803235033.patch</filename>
            <type>text/plain</type>
            <size>217056</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEyNDY5MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE3MCBAQAorMjAxMi0wOC0wMyAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgdGVzdFJ1bm5lciBpbnN0ZWFkIG9mIGxh
eW91dFRlc3RDb250cm9sbGVyIGluIHRlc3RzIHN0aWxsIGZvdW5kIHRvIGJlIHVzaW5nIGxheW91
dFRlc3RDb250cm9sbGVyIGJ5IGdyZXAKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTkzMTc3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWZ0ZXIgdGhpcyBwYXRjaCwgbmVpdGhlciBncmVwIG5vciBzcG90IGxp
Z2h0IGZpbmRzIGFueSB0ZXN0cyB0aGF0IHVzZSBsYXlvdXRUZXN0Q29udHJvbGxlcgorICAgICAg
ICBhbmQgd2UgY2FuIHNhZmVseSBsYW5kIHRoZSBwYXRjaCBvbiB0aGUgYnVnIDkzMTczLgorCisg
ICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2lucHV0LXdpdGgtdmlzaWJpbGl0eS1oaWRkZW4u
aHRtbDoKKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3Jlc291cmNlcy8lMjUldTA0MzUgMCAleHgl
JSV1bGlrZS5odG1sOgorICAgICAgICAqIGZhc3QvZW5jb2Rpbmcvc2NyaXB0LWluLWhlYWQuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2VuY29kaW5nL3RhZy1pbi10aXRsZS5odG1sOgorICAgICAgICAq
IGZhc3QvZW5jb2RpbmcvdGFnLW5hbWUtZGlnaXQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2VuY29k
aW5nL3VybC1ob3N0LW5hbWUtbm9uLWFzY2lpLmh0bWw6CisgICAgICAgICogZmFzdC9lbmNvZGlu
Zy94bWwtY2hhcnNldC11dGYxNi5odG1sOgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcveG1sLXV0
Zi04LWRlZmF1bHQueG1sOgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcveWFob28tbWFpbC5odG1s
OgorICAgICAgICAqIGZhc3QvZW5jb2RpbmcveWVudGVzdC5odG1sOgorICAgICAgICAqIGZhc3Qv
ZW5jb2RpbmcveWVudGVzdDIuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2RhdGFsaXN0L2lu
cHV0LWFwcGVhcmFuY2UtcmFuZ2Utd2l0aC1kYXRhbGlzdC16b29tZWQuaHRtbDoKKyAgICAgICAg
KiBmYXN0L2Zvcm1zL2RhdGFsaXN0L2lucHV0LWFwcGVhcmFuY2UtcmFuZ2Utd2l0aC1kYXRhbGlz
dC5odG1sOgorICAgICAgICAqIGZhc3QvZm9ybXMvZGF0YWxpc3QvdXBkYXRlLXJhbmdlLXdpdGgt
ZGF0YWxpc3QuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lucHV0LXNldC1jb21wb3NpdGlv
bi1zY3JvbGwuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hhcm5lc3MvaW50ZXJuYWxzLW9iamVjdC5o
dG1sOgorICAgICAgICAqIGZhc3QvaGFybmVzcy9wYWdlLWNhY2hlLWNyYXNoLW9uLWRhdGEtdXJs
cy5odG1sOgorICAgICAgICAqIGZhc3QvaGFybmVzcy9wZXJmdGVzdHMvcGVyZi1ydW5uZXItY29t
cHV0ZS1zdGF0aXN0aWNzLmh0bWw6CisgICAgICAgICogZmFzdC9oYXJuZXNzL3Jlc291cmNlcy9t
b2RhbC1kaWFsb2cuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hhcm5lc3Mvc2hvdy1tb2RhbC1kaWFs
b2cuaHRtbDoKKyAgICAgICAgKiBmYXN0L2hhcm5lc3MvdXNlci1wcmVmZXJyZWQtbGFuZ3VhZ2Uu
aHRtbDoKKyAgICAgICAgKiBmYXN0L211bHRpY29sL2hpdC10ZXN0LWVuZC1vZi1jb2x1bW4uaHRt
bDoKKyAgICAgICAgKiBmYXN0L211bHRpY29sL2hpdC10ZXN0LWdhcC1iZXR3ZWVuLXBhZ2VzLWZs
aXBwZWQuaHRtbDoKKyAgICAgICAgKiBmYXN0L211bHRpY29sL2hpdC10ZXN0LWdhcC1iZXR3ZWVu
LXBhZ2VzLmh0bWw6CisgICAgICAgICogZmFzdC9tdWx0aWNvbC9oaXQtdGVzdC1nYXAtYmxvY2st
YXhpcy5odG1sOgorICAgICAgICAqIGZhc3Qvbm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWV2
ZW50LWxpc3RlbmVyLWNyYXNoLmh0bWw6CisgICAgICAgICogZmFzdC9wYXJzZXIvZm9zdGVyLXBh
cmVudC5odG1sOgorICAgICAgICAqIGZhc3QvcnVieS9hZnRlci1kb2VzbnQtY3Jhc2guaHRtbDoK
KyAgICAgICAgKiBmYXN0L3J1YnkvYmVmb3JlLWJsb2NrLWRvZXNudC1jcmFzaC5odG1sOgorICAg
ICAgICAqIGZhc3QvcnVieS9iZWZvcmUtZG9lc250LWNyYXNoLmh0bWw6CisgICAgICAgICogZmFz
dC9ydWJ5L2JlZm9yZS10YWJsZS1kb2VzbnQtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBmYXN0L3J1
YnkvZ2VuZXJhdGVkLWJlZm9yZS1jb3VudGVyLWRvZXNudC1jcmFzaC5odG1sOgorICAgICAgICAq
IGZhc3QvcnVieS9tb2RpZnktcG9zaXRpb25lZC1ydWJ5LXRleHQtY3Jhc2guaHRtbDoKKyAgICAg
ICAgKiBmYXN0L3J1YnkvcGFyc2UtcnAuaHRtbDoKKyAgICAgICAgKiBmYXN0L3J1YnkvcnVieS1p
bGxlZ2FsLTEuaHRtbDoKKyAgICAgICAgKiBmYXN0L3J1YnkvcnVieS1pbGxlZ2FsLTIuaHRtbDoK
KyAgICAgICAgKiBmYXN0L3J1YnkvcnVieS1pbGxlZ2FsLTMuaHRtbDoKKyAgICAgICAgKiBmYXN0
L3J1YnkvcnVieS1pbGxlZ2FsLTQuaHRtbDoKKyAgICAgICAgKiBmYXN0L3J1YnkvcnVieS1pbGxl
Z2FsLTUuaHRtbDoKKyAgICAgICAgKiBmYXN0L3J1YnkvcnVieS1pbGxlZ2FsLTYuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L3J1YnkvcnVieS1pbGxlZ2FsLTcuaHRtbDoKKyAgICAgICAgKiBmYXN0L3J1
YnkvcnVieS1pbGxlZ2FsLWNvbWJpbmVkLmh0bWw6CisgICAgICAgICogZmFzdC9ydWJ5L3J1Ynkt
b3ZlcmhhbmctY3Jhc2guaHRtbDoKKyAgICAgICAgKiBmYXN0L3J1YnkvcnVieS1yZW1vdmUtbm8t
YmFzZS5odG1sOgorICAgICAgICAqIGZhc3QvcnVieS9ydWJ5LXJlbW92ZS5odG1sOgorICAgICAg
ICAqIGZhc3QvcnVieS9ydWJ5LXRleHQtaW5kZW50Lmh0bWw6CisgICAgICAgICogZmFzdC9ydWJ5
L3J1YnlET00taW5zZXJ0LXJ0LWJsb2NrLTEuaHRtbDoKKyAgICAgICAgKiBmYXN0L3J1YnkvcnVi
eURPTS1pbnNlcnQtcnQtYmxvY2stMi5odG1sOgorICAgICAgICAqIGZhc3QvcnVieS9ydWJ5RE9N
LWluc2VydC1ydC1ibG9jay0zLmh0bWw6CisgICAgICAgICogZmFzdC9ydWJ5L3J1YnlET00tcmVt
b3ZlLXJ0LWJsb2NrLTEuaHRtbDoKKyAgICAgICAgKiBmYXN0L3J1YnkvcnVieURPTS1yZW1vdmUt
cnQtYmxvY2stMi5odG1sOgorICAgICAgICAqIGZhc3QvcnVieS9ydWJ5RE9NLXJlbW92ZS1ydC1i
bG9jay0zLmh0bWw6CisgICAgICAgICogZmFzdC9ydW5pbi9jcmFzaC13aGVuLXJlcGFyZW50LXNp
YmxpbmcuaHRtbDoKKyAgICAgICAgKiBmYXN0L3J1bmluL25vbmJsb2NrLXJ1bmluLmh0bWw6Cisg
ICAgICAgICogZmFzdC9ydW5pbi9wcm9ncmVzcy1ydW4taW4tY3Jhc2guaHRtbDoKKyAgICAgICAg
KiBmYXN0L3J1bmluL3J1bi1pbi1sYXllci1ub3QtcmVtb3ZlZC1jcmFzaC5odG1sOgorICAgICAg
ICAqIGZhc3QvcnVuaW4vcnVuaW4tY29udGludWF0aW9ucy1jcmFzaC5odG1sOgorICAgICAgICAq
IGZhc3QvcnVuaW4vcnVuaW4tcmVwYXJlbnQtY3Jhc2guaHRtbDoKKyAgICAgICAgKiBmYXN0L3J1
bmluL3NlbGVjdC1ydW5pbi5odG1sOgorICAgICAgICAqIGZ1bGxzY3JlZW4vZW1wdHktYW5vbnlt
b3VzLWJsb2NrLWNvbnRpbnVhdGlvbi1jcmFzaC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
bWlzYy9TVkdGb250LWRlbGF5ZWQtbG9hZC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlz
Yy9yZXNvdXJjZXMvYSBzdWNjZXNzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9taXNjL3Jl
c291cmNlcy9jb250ZW50LWlmcmFtZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9y
ZXNvdXJjZXMvaWZyYW1lLXBvbGljeS0xLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9taXNj
L3Jlc291cmNlcy9pZnJhbWUtcG9saWN5LTIuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL21p
c2MvcmVzb3VyY2VzL2lzaW5kZXgtd2l0aC1uby1mb3JtLWJhc2UtaHJlZi1zdWJtaXQuaHRtbDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2lzaW5kZXgtd2l0aC1uby1mb3Jt
LWJhc2UtaHJlZi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvcmVk
aXJlY3QtdG8tZXh0ZXJuYWwtdXJsLWlmcmFtZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
bWlzYy9yZXNvdXJjZXMvc2xvdy1wcmVsb2FkLWNhbmNlbC0xLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9taXNjL3Jlc291cmNlcy9zdWNjZXNzLW5vdGlmeS1kb25lLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLWFuZC1i
YWNrMS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9zY3JpcHQtNTAwLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1uby1zdG9yZS5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMvbWlzYy9zZXQtd2luZG93LW9wZW5lci10by1udWxsLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy9taXNjL3NpbmdsZS1jaGFyYWN0ZXItcGktc3R5bGVzaGVldC54aHRtbDoK
KyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2Mvc2xvdy1sb2FkaW5nLWltYWdlLWluLXBhdHRlcm4u
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2Mvc2xvdy1wcmVsb2FkLWNhbmNlbC5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy9zdWJtaXQtcG9zdC1rZXlnZW4uaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL21pc2Mvc3ZnLWltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91
dC1jcmFzaGluZy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy90ZXh0LXJlZnJlc2gu
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvdGltZXItdnMtbG9hZGluZy5odG1sOgor
ICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy91bmNhY2hlYWJsZS1zY3JpcHQtcmVwZWF0ZWQuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL21pc2MvdW5sb2FkYWJsZS1zY3JpcHQuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL21pc2MvdmlkZW8tcG9zdGVyLWltYWdlLWxvYWQtb3V0bGl2ZXMt
Z2Mtd2l0aG91dC1jcmFzaGluZy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy93ZWJ0
aW1pbmctb3JpZ2lucy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvbWlzYy93aWxsLXNlbmQt
cmVxdWVzdC1yZXR1cm5zLW51bGwtb24tcmVkaXJlY3QuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL21pc2Mvd2lsbENhY2hlUmVzcG9uc2UtZGVsZWdhdGUtY2FsbGJhY2suaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL21pc2Mvd2luZG93LWRvdC1zdG9wLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9taXNjL3dpbmRvdy1vcGVuLXRoZW4td3JpdGUuaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL21pc2Mvd3JpdGUtZnJvbS1kb20tc2NyaXB0Lmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy9taXNjL3dyaXRlLXdoaWxlLXdhaXRpbmcuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L21pc2MveHNsdC1iYWQtaW1wb3J0Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9tdWx0aXBh
cnQvaW52YWxpZC1pbWFnZS1kYXRhLXN0YW5kYWxvbmUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL211bHRpcGFydC9pbnZhbGlkLWltYWdlLWRhdGEuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL211bHRpcGFydC9tdWx0aXBhcnQtd2FpdC1iZWZvcmUtYm91bmRhcnkuaHRtbDoKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL211bHRpcGFydC9zdG9wLWNyYXNoLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uLzoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3BsdWdpbnMvY3JlYXRl
LXY4LXNjcmlwdC1vYmplY3RzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9wbHVnaW5zL2Ny
b3NzLWZyYW1lLW9iamVjdC1hY2Nlc3MuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3BsdWdp
bnMvZ2V0LXVybC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcGx1Z2lucy9nZXR1cmxub3Rp
ZnktZnJvbS1ucHAtZGVzdHJveXN0cmVhbS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvcGx1
Z2lucy9pbnRlcnJ1cHRlZC1nZXQtdXJsLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9wbHVn
aW5zL2xvY2FsLWdldHVybC1mcm9tLXJlbW90ZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
cGx1Z2lucy9ucGFwaS1yZXNwb25zZS1oZWFkZXJzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy9wbHVnaW5zL3BsdWdpbi1kb2N1bWVudC1oYXMtZm9jdXMuaHRtbDoKKyAgICAgICAgKiBodHRw
L3Rlc3RzL3BsdWdpbnMvcG9zdC11cmwtZmlsZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMv
cGx1Z2lucy9yZXNvdXJjZXMvaW50ZXJydXB0ZWQtZ2V0LXVybC1zdWNjZXNzLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9wbHVnaW5zL3Jlc291cmNlcy90aGlyZC1wYXJ0eS1jb29raWUtYWNj
ZXB0LXBvbGljeS1pZnJhbWUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3BsdWdpbnMvdGhp
cmQtcGFydHktY29va2llLWFjY2VwdC1wb2xpY3kuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3Jlc291cmNlcy9ub3RpZnktZG9uZS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1hbGxvd2VkLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4xL3Nj
cmlwdG5vbmNlLWJsb2NrZWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NzbC9yZWZlcmVy
LTMwMS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc3NsL3JlZmVyZXItMzAzLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy9zdG9yYWdlL2NhbGxiYWNrcy1hcmUtY2FsbGVkLWluLWNvcnJl
Y3QtY29udGV4dC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc3RvcmFnZS9yZXNvdXJjZXMv
Y2FsbGJhY2tzLWFyZS1jYWxsZWQtaW4tY29ycmVjdC1jb250ZXh0LXNlY29uZC1mcmFtZS5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvc3ZnL2NoYW5nZS1pZC13aXRoLXBlbmRpbmctcmVzb3Vy
Y2VzLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zdmcvdHJlZi1hZG9wdE5vZGUtY3Jhc2gu
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3VyaS9hc3NpZ24tcGF0aC13aXRoLWxlYWRpbmct
c2xhc2guaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3VyaS9hc3NpZ24tcGF0aC13aXRob3V0
LWxlYWRpbmctc2xhc2guaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3VyaS9lc2NhcGVkLWVu
dGl0eS5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvdXJpL3Jlc29sdmUtZW5jb2RpbmctcmVs
YXRpdmUuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3VyaS9yZXNvdXJjZXMvYXNzaWduLXBh
dGgtbGFuZGluZy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvdXJpL3V0ZjgtcGF0aC5odG1s
OgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViYXJjaGl2ZS9jcm9zcy1vcmlnaW4tc3R5bGVzaGVl
dC1jcmFzaC1leHBlY3RlZC53ZWJhcmNoaXZlOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViYXJj
aGl2ZS9jcm9zcy1vcmlnaW4tc3R5bGVzaGVldC1jcmFzaC5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWNzcy11cmwtZW5jb2RpbmctZXhwZWN0ZWQud2ViYXJjaGl2
ZToKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmFyY2hpdmUvdGVzdC1jc3MtdXJsLWVuY29kaW5n
LXNoaWZ0LWppcy1leHBlY3RlZC53ZWJhcmNoaXZlOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2Vi
YXJjaGl2ZS90ZXN0LWNzcy11cmwtZW5jb2Rpbmctc2hpZnQtamlzLmh0bWw6CisgICAgICAgICog
aHR0cC90ZXN0cy93ZWJhcmNoaXZlL3Rlc3QtY3NzLXVybC1lbmNvZGluZy11dGYtOC1leHBlY3Rl
ZC53ZWJhcmNoaXZlOgorICAgICAgICAqIGh0dHAvdGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWNzcy11
cmwtZW5jb2RpbmctdXRmLTguaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYmFyY2hpdmUv
dGVzdC1jc3MtdXJsLWVuY29kaW5nLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy93ZWJhcmNo
aXZlL3Rlc3QtcHJlbG9hZC1yZXNvdXJjZXMtZXhwZWN0ZWQud2ViYXJjaGl2ZToKKyAgICAgICAg
KiBodHRwL3Rlc3RzL3dlYmFyY2hpdmUvdGVzdC1wcmVsb2FkLXJlc291cmNlcy5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvd2ViZm9udC9mYWxsYmFjay1mb250LXdoaWxlLWxvYWRpbmcuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3dlYnNvY2tldC9yZXNvdXJjZXMvc2VydmVyLWZhaWxl
ZC10by1zdGFydC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvcmVl
bnRyYW50LWNhbmNlbC5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZXZpY2Utb3JpZW50YXRp
b24tc3VjY2Vzcy5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3Rh
dGlvbnM6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vcGVybWlzc2lvbmNsaWVudC9pbWFn
ZS1wZXJtaXNzaW9ucy5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Blcm1pc3Np
b25jbGllbnQvcGx1Z2luLXBlcm1pc3Npb24uaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS9wZXJtaXNzaW9uY2xpZW50L3NjcmlwdC1wZXJtaXNzaW9ucy5odG1sOgorICAgICAgICAq
IHBsYXRmb3JtL2Nocm9taXVtL3Blcm1pc3Npb25jbGllbnQvc3RvcmFnZS1wZXJtaXNzaW9uLmh0
bWw6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
cGxhdGZvcm0vbWFjL2VkaXRpbmcvaW5wdXQvZWRpdC1kaWN0YXRlZC10ZXh0LXdpdGgtYWx0ZXJu
YXRpdmUuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvZWRpdGluZy9pbnB1dC9pbnNlcnQt
ZGljdGF0ZWQtdGV4dC5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L0FwcGxlU2Ny
aXB0LzAwMS5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L0FwcGxlU2NyaXB0L2Fy
cmF5Lmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3QvQXBwbGVTY3JpcHQvZGF0ZS5o
dG1sOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L29iamMvZG9tLWh0bWwtc2VsZWN0LWFj
dGl2YXRlLmh0bWw6CisgICAgICAgICogcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9sb25nbG9uZ1Rl
c3QuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC92aWV3L2ZpeGVkLWxheW91dC1zaXplLmh0
bWw6CisgICAgICAgICogcGxhdGZvcm0vd2luL2ludmVydGVkLWNvbG9ycy9ub24tY29tcG9zaXRl
ZC5odG1sOgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9zdmcvVzNDLVNWRy0xLjEvcmVzb3VyY2Vz
L3J1bi13ZWJraXQtdGVzdHMtZXBpbG9ndWUuaHRtbDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4v
c3ZnL1czQy1TVkctMS4xL3Jlc291cmNlcy9ydW4td2Via2l0LXRlc3RzLXByb2xvZ3VlLmh0bWw6
CisgICAgICAgICogd2ViYXJjaGl2ZS9sb2FkaW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0LXVybC1p
ZnJhbWUtY3Jhc2gud2ViYXJjaGl2ZToKKwogMjAxMi0wOC0wMyAgUnlvc3VrZSBOaXdhICA8cm5p
d2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBTb21lIHRlc3RzIHN0aWxsIHJlZmVyIHRvIGxheW91
dFRlc3RDb250cm9sbGVyIGluc3RlYWQgb2YgdGVzdFJ1bm5lcgpJbmRleDogTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL2lucHV0LXdpdGgtdmlzaWJpbGl0eS1oaWRkZW4uaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvaW5wdXQtd2l0aC12aXNp
YmlsaXR5LWhpZGRlbi5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9lZGl0
aW5nL3Bhc3RlYm9hcmQvaW5wdXQtd2l0aC12aXNpYmlsaXR5LWhpZGRlbi5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC03LDggKzcsOCBAQCBZb3Ugc2hvdWxkIHNlZSBQQVNTIGJlbG93LjwvcD4KIDxp
bnB1dCB0eXBlPSJ0ZXh0IiB2YWx1ZT0iRkFJTCI+CiA8cD48c2NyaXB0PgogCi1pZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKIAogdmFyIGlucHV0ID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKTsKIGlucHV0
LmZvY3VzKCk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3NjcmlwdC1pbi1oZWFk
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9zY3JpcHQtaW4t
aGVhZC5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L3NjcmlwdC1pbi1oZWFkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8IS0t
IHRlbXAgLS0+PHNjcmlwdCBsYW5ndWFnZT0iSmF2YVNjcmlwdCIgdHlwZT0idGV4dC9KYXZhU2Ny
aXB0Ij4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiB9CiBkb2N1bWVudC53
cml0ZSAoJzxTQ1InICsgJ0lQVD4nICsKIApAQCAtOSw4ICs5LDggQEAgZG9jdW1lbnQud3JpdGUg
KCc8U0NSJyArICdJUFQ+JyArCiAgICAgICAgIDwhLS0gVGhlIGxldHRlcnMgQ0NFIGJlbG93IGFy
ZSBDeXJpbGxpYywgc28gd2UgZG8gdGVzdCB0aGF0IHRoZSBlbmNvZGluZyBpcyBjb3JyZWN0LiAt
LT4KICAgICAgICAgPCEtLSBXZSBhbHNvIHRha2UgYW4gb3Bwb3J0dW5pdHkgdG8gdGVzdCB0aGF0
IHRoaXMgd2VpcmRseSBsb2NhdGVkIHNjcmlwdCBhY3R1YWxseSBleGVjdXRlcy4gLS0+CiAgICAg
ICAgICdkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJIVE1MPSJTVfPz5VNT
IjsnICsKLSAgICAgICAgJ2lmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpJyArCi0gICAg
ICAgICAgICAnbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOycgKworICAgICAgICAn
aWYgKHdpbmRvdy50ZXN0UnVubmVyKScgKworICAgICAgICAgICAgJ3Rlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOycgKwogICAgICd9LCAwKTsnICsKICc8L1NDUicgKyAnSVBUPicpO2RvY3VtZW50LmNs
b3NlKCk7IDwvc2NyaXB0PgogPCEtLSAvdGVtcCAtLT48IS0tSEVBREVSLS0+CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2VuY29kaW5nL3RhZy1pbi10aXRsZS5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvdGFnLWluLXRpdGxlLmh0bWwJKHJldmlzaW9uIDEyNDY5
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvdGFnLWluLXRpdGxlLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTQsOCArNCw4IEBACiAgPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVm
PS9mYXZpY29uLmljbyB0eXBlPWltYWdlL3gtaWNvbj4KICA8bWV0YSBodHRwLWVxdWl2PSJDb250
ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1LT0k4LVIiPgogIDxzY3JpcHQ+
Ci0gICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICA8L3NjcmlwdD4KICA8L2hlYWQ+CiAKSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvdGFnLW5hbWUtZGlnaXQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3RhZy1uYW1lLWRpZ2l0Lmh0bWwJKHJldmlz
aW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvdGFnLW5hbWUtZGlnaXQu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTMsOCArMTMsOCBAQCBmdW5jdGlvbiBsb2cobWVzc2Fn
ZSkKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibG9nIikuaW5uZXJUZXh0ICs9IG1lc3Nh
Z2UgKyAiXG4iOwogfQogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogaWYgKGRvY3VtZW50LmlucHV0RW5jb2Rp
bmcgPT0gIndpbmRvd3MtMTI1NSIpCiAgICAgbG9nKCJQQVNTOiAiICsgZG9jdW1lbnQuaW5wdXRF
bmNvZGluZyk7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3VybC1ob3N0LW5hbWUt
bm9uLWFzY2lpLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy91
cmwtaG9zdC1uYW1lLW5vbi1hc2NpaS5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRU
ZXN0cy9mYXN0L2VuY29kaW5nL3VybC1ob3N0LW5hbWUtbm9uLWFzY2lpLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTUsOCArNSw4IEBACiA8YSBpZD0iYW5jaG9yIiBocmVmPSJodHRwOi8vdyYjeGU5
O2JraXQub3JnLyI+PC9hPgogPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KIDxzY3JpcHQ+Ci0gICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICB2YXIgZW5jb2RlZFVSTCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJhbmNob3IiKS5ocmVmOwogICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJyZXN1bHQiKS5pbm5lclRleHQgPSBlbmNvZGVkVVJMID09ICJodHRwOi8veG4tLXdia2l0
LWJzYS5vcmcvIiA/ICJQQVNTIiA6ICJGQUlMOiBUaGUgZW5jb2RlZCBVUkwgd2FzICciICsgZW5j
b2RlZFVSTCArICInLiI7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3htbC1jaGFy
c2V0LXV0ZjE2Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy94
bWwtY2hhcnNldC11dGYxNi5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9m
YXN0L2VuY29kaW5nL3htbC1jaGFyc2V0LXV0ZjE2Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYs
NiArNiw2IEBACiA8L2hlYWQ+CiA8Ym9keT4KIFRoaXMgc2hvdWxkIGxvb2sgbGlrZSBhIFJvbWFu
IJFCkjogkcKSLgotPHNjcmlwdD5pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7PC9zY3JpcHQ+Cis8c2NyaXB0PmlmICh3aW5k
b3cudGVzdFJ1bm5lcikgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7PC9zY3JpcHQ+CiA8L2JvZHk+
CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3htbC11dGYtOC1kZWZh
dWx0LnhtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3htbC11dGYt
OC1kZWZhdWx0LnhtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNv
ZGluZy94bWwtdXRmLTgtZGVmYXVsdC54bWwJKHdvcmtpbmcgY29weSkKQEAgLTUsNiArNSw2IEBA
CiA8cD5XaGVuIGR1bXBlZCBpbnRvIGEgdGV4dCBmaWxlIGJ5IHRoZSB0ZXN0IGNvbnRyb2xsZXIs
IHRoaXMgbmVlZHMgdG8gYmUgdmlld2VkIGFzIFVURi04OjwvcD4KIDxwPlRoaXMgaXMgYW4gZW0g
ZGFzaCwg4oCULCB0aGlzIGlzIGlzIGEgZGVsdGEgc3ltYm9sLCDiiIYsIHRoaXMgaXMgYW4gdXBw
ZXJjYXNlIHBpLCDiiI8sIGFuZCB0aGlzIGlzIGEgbG93ZXJjYXNlIHBpLCDPgC48L3A+CiA8cD5D
aGFyYWN0ZXJzIGZyb20gdW5pY29kZSBwbGFuZSAxLCBsaWtlIG1hdGhlbWF0aWNhbCBib2xkIHNj
cmlwdCBjYXBpdGFsIGEsIPCdk5AsIGFuZCBtYXRoZW1hdGljYWwgYm9sZCBmcmFrdHVyIHNtYWxs
IHUsIPCdlposIHdvcmsgdG9vLjwvcD4KLTxzY3JpcHQ+aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOzwvc2NyaXB0PgorPHNj
cmlwdD5pZiAod2luZG93LnRlc3RSdW5uZXIpIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOzwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy95
YWhvby1tYWlsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy95
YWhvby1tYWlsLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZW5j
b2RpbmcveWFob28tbWFpbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw4ICsxMiw4IEBAIFlh
aG9vISBNYWlsIC0gc29tZW9uZUB5YWhvby5jb208L3RpdGxlPgogCiA8cD5UZXN0IGEgcGFydGlj
dWxhciBleGFtcGxlIG9mIGJyb2tlbiBtYXJrdXAgdGhhdCB3YXMgbWFraW5nIHVzIGlnbm9yZSBh
IGNoYXJzZXQgZGVjbGFyYXRpb24uPC9wPgogPHNjcmlwdD4KLSAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAog
ICB2YXIgY2hhcnNldCA9IGRvY3VtZW50LmNoYXJhY3RlclNldDsKICAgaWYgKCFjaGFyc2V0KQpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy95ZW50ZXN0Mi5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcveWVudGVzdDIuaHRtbAkocmV2aXNpb24gMTI0
NjkwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy95ZW50ZXN0Mi5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC01LDggKzUsOCBAQAogPC9IRUFEPgogPEJPRFk+CiA8c2NyaXB0PgotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CiAKIHdyaXRlWWVuRXh0ZXJuYWwoKTsKIGRvY3VtZW50LndyaXRlKCJ0d28gYmFja3Ns
YXNoZXMgaW5saW5lOiBcXCA8YnI+Iik7CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5n
L3llbnRlc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2VuY29kaW5nL3ll
bnRlc3QuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGlu
Zy95ZW50ZXN0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUsOCArNSw4IEBACiA8L0hFQUQ+CiA8
Qk9EWT4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogd3JpdGVZZW5FeHRlcm5hbCgpOwogZG9j
dW1lbnQud3JpdGUoInR3byBiYWNrc2xhc2hlcyBpbmxpbmU6ICIgKyAiXFwiICsgIjxicj4iKTsK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZW5jb2RpbmcvcmVzb3VyY2VzLyUyNSV1MDQzNSAwICV4
eCUlJXVsaWtlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9y
ZXNvdXJjZXMvJTI1JXUwNDM1IDAgJXh4JSUldWxpa2UuaHRtbAkocmV2aXNpb24gMTI0NjkwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9lbmNvZGluZy9yZXNvdXJjZXMvJTI1JXUwNDM1IDAgJXh4JSUl
dWxpa2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNSw3ICs1LDcgQEAKICAgICAgIGRvY3VtZW50
LlVSTC5tYXRjaCgnJTI1LipodG1sJykgPT0gJyUyNSV1MDQzNSAwICV4eCUlJXVsaWtlLmh0bWwn
KQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0JykuZmlyc3RDaGlsZC5ub2Rl
VmFsdWUgPSAnU1VDQ0VTUyc7CiAKLSAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICI+CiA8cD5UZXN0IGZvciA8YSBocmVmPSJo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1MiI+YnVnIDY0NTI8L2E+
IC0gCiBLVVJMOjphcHBlbmRFc2NhcGluZ0JhZENoYXJzKCkgc2hvdWxkIG5ldmVyIGVzY2FwZSBw
ZXJjZW50IGNoYXJhY3RlcnMuPC9wPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pbnB1
dC1zZXQtY29tcG9zaXRpb24tc2Nyb2xsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9pbnB1dC1zZXQtY29tcG9zaXRpb24tc2Nyb2xsLmh0bWwJKHJldmlzaW9uIDEy
NDY5MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW5wdXQtc2V0LWNvbXBvc2l0aW9uLXNj
cm9sbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDggKzgsOCBAQCBmdW5jdGlvbiBsb2cocykg
ewogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKS5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZShzICsgIlxuIikpOwogfQogCi1pZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwogCiB2YXIgaW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpOwogaW5w
dXQuZm9jdXMoKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0YWxpc3QvaW5wdXQt
YXBwZWFyYW5jZS1yYW5nZS13aXRoLWRhdGFsaXN0LXpvb21lZC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvZGF0YWxpc3QvaW5wdXQtYXBwZWFyYW5jZS1yYW5nZS13
aXRoLWRhdGFsaXN0LXpvb21lZC5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2RhdGFsaXN0L2lucHV0LWFwcGVhcmFuY2UtcmFuZ2Utd2l0aC1kYXRhbGlz
dC16b29tZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIDxzY3JpcHQ+Ci1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQodHJ1ZSk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KHRydWUpOwogPC9zY3JpcHQ+CiAKIDxkaXYgc3R5bGU9Inpvb206IDAuNzsi
PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9kYXRhbGlzdC9pbnB1dC1hcHBlYXJhbmNl
LXJhbmdlLXdpdGgtZGF0YWxpc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2RhdGFsaXN0L2lucHV0LWFwcGVhcmFuY2UtcmFuZ2Utd2l0aC1kYXRhbGlzdC5odG1s
CShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGFsaXN0L2lu
cHV0LWFwcGVhcmFuY2UtcmFuZ2Utd2l0aC1kYXRhbGlzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xLDYgKzEsNiBAQAogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKK2lmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CiA8L3NjcmlwdD4K
IAogPGlucHV0IHR5cGU9cmFuZ2UgbGlzdD1mb28gdmFsdWU9MTAgLz4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvZm9ybXMvZGF0YWxpc3QvdXBkYXRlLXJhbmdlLXdpdGgtZGF0YWxpc3QuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2RhdGFsaXN0L3VwZGF0ZS1yYW5n
ZS13aXRoLWRhdGFsaXN0Lmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2Zh
c3QvZm9ybXMvZGF0YWxpc3QvdXBkYXRlLXJhbmdlLXdpdGgtZGF0YWxpc3QuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMTg2LDggKzE4Niw4IEBACiA8YnV0dG9uIGlkPSJidXR0b24iPlJ1biB0ZXN0
cy48L2J1dHRvbj4KIAogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKK2lmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1ZSk7CiAKIGZ1bmN0aW9u
IGNsaWNrT24oZWxlbWVudCkKIHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9pbnRl
cm5hbHMtb2JqZWN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNz
L2ludGVybmFscy1vYmplY3QuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9oYXJuZXNzL2ludGVybmFscy1vYmplY3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw4
ICsyLDggQEAKIDxoZWFkPgogPHNjcmlwdD4KIAotaWYgKGxheW91dFRlc3RDb250cm9sbGVyKQot
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh0ZXN0UnVubmVyKQor
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9wYWdlLWNhY2hlLWNyYXNoLW9uLWRhdGEtdXJs
cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9wYWdlLWNhY2hl
LWNyYXNoLW9uLWRhdGEtdXJscy5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2hhcm5lc3MvcGFnZS1jYWNoZS1jcmFzaC1vbi1kYXRhLXVybHMuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAKIDxzY3JpcHQ+CiB3aW5kb3cuZmluaXNoID0gZnVuY3Rp
b24oKQogewotICAgIGlmIChsYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh0ZXN0UnVubmVyKQorICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogd2luZG93LmxvZyA9IGZ1bmN0aW9uKG1lc3Nh
Z2UpIHsKQEAgLTE3LDExICsxNywxMSBAQCB3aW5kb3cuZmFpbHVyZSA9IGZ1bmN0aW9uKG1lc3Nh
Z2UpIHsKIAogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0g
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKLSAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRVc2VzUGFnZUNhY2hlUHJlZmVy
ZW5jZUtleSIsIDEpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFVzZXNQYWdlQ2FjaGVQcmVmZXJlbmNlS2V5
IiwgMSk7CiAgICAgfQogICAgIGxvZygib3BlbiBwYWdlIHdpdGggZGF0YSB1cmxzIik7CiAgICAg
d2luZG93Lm9wZW4oInJlc291cmNlcy9jYWNoZWQtcGFnZS13aXRoLWRhdGEtdXJscy5odG1sIik7
CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3Mvc2hvdy1tb2RhbC1kaWFsb2cuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2hhcm5lc3Mvc2hvdy1tb2RhbC1kaWFsb2cu
aHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Nob3ct
bW9kYWwtZGlhbG9nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsMTAgKzMsMTAgQEAKIDxzY3Jp
cHQ+CiAgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgIHsKLSAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3Bl
bldpbmRvd3MoKTsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3Blbldp
bmRvd3MoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAg
ICB9CiAgICAgICAgIHNob3dNb2RhbERpYWxvZygicmVzb3VyY2VzL21vZGFsLWRpYWxvZy5odG1s
Iik7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3VzZXItcHJlZmVycmVk
LWxhbmd1YWdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Vz
ZXItcHJlZmVycmVkLWxhbmd1YWdlLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRl
c3RzL2Zhc3QvaGFybmVzcy91c2VyLXByZWZlcnJlZC1sYW5ndWFnZS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0yLDggKzIsOCBAQAogICAgIDxoZWFkPgogICAgICAgICA8c2NyaXB0PgogICAgICAg
ICAgICAgCi0gICAgICAgICAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgaWYg
KHRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAg
ICAgICAgICAgICAKICAgICAgICAgICAgIGZ1bmN0aW9uIHRlc3QobWVzc2FnZSwgc3VjY2VzcykK
ICAgICAgICAgICAgIHsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvaGFybmVzcy9wZXJmdGVzdHMv
cGVyZi1ydW5uZXItY29tcHV0ZS1zdGF0aXN0aWNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9oYXJuZXNzL3BlcmZ0ZXN0cy9wZXJmLXJ1bm5lci1jb21wdXRlLXN0YXRpc3Rp
Y3MuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Bl
cmZ0ZXN0cy9wZXJmLXJ1bm5lci1jb21wdXRlLXN0YXRpc3RpY3MuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMTQ0LDggKzE0NCw4IEBAIHNob3VsZEV2YWx1YXRlVG8oInN0YXRzLm1lZGlhbiIsIGFs
dGVybmEKIGRlYnVnKCIiKTsKIAogLy8gcnVubmVyLmpzIG1hcmtzIHRoaXMgYXMgYW4gYXN5bmMg
dGVzdCBzbyB3ZSBuZWVkIHRvIGNhbGwgbm90aWZ5RG9uZS4KLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogPC9zY3Jp
cHQ+CiAKIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBv
c3QuanMiPjwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9oYXJuZXNzL3Jlc291cmNl
cy9tb2RhbC1kaWFsb2cuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2hhcm5l
c3MvcmVzb3VyY2VzL21vZGFsLWRpYWxvZy5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2hhcm5lc3MvcmVzb3VyY2VzL21vZGFsLWRpYWxvZy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0zLDEyICszLDEyIEBACiA8c2NyaXB0PgogICAgIGZ1bmN0aW9uIGNsb3NlV2lu
ZG93KCkKICAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
LSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKICAgICAgICAgfQogICAgICAgICBvcGVuZXIubG9nKCJNb2RhbCBkaWFsb2cgY2xvc2lu
Zy4iKTsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuYWJvcnRNb2RhbCgpOworICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuYWJvcnRNb2RhbCgpOwog
ICAgICAgICB9CiAgICAgICAgIGNsb3NlKCk7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9tdWx0aWNvbC9oaXQtdGVzdC1lbmQtb2YtY29sdW1uLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9oaXQtdGVzdC1lbmQtb2YtY29sdW1uLmh0bWwJKHJldmlz
aW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvaGl0LXRlc3QtZW5kLW9m
LWNvbHVtbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMSw4ICsxMSw4IEBACiAgICAgRkFJTDog
VGVzdCBkaWQgbm90IHJ1bi4KIDwvcD4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CiAKICAgICAvLyBDbGlja2luZyBiZWxvdyB0aGUgbGFzdCBsaW5lIGluIHRoZSBmaXJz
dCBjb2x1bW4gc2hvdWxkIG5vdCBzZWxlY3QgYW55dGhpbmcgZnJvbSB0aGUgZmlyc3QKICAgICAv
LyBsaW5lIG9uIHRoZSBzZWNvbmQgY29sdW1uLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9tdWx0
aWNvbC9oaXQtdGVzdC1nYXAtYmV0d2Vlbi1wYWdlcy1mbGlwcGVkLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9tdWx0aWNvbC9oaXQtdGVzdC1nYXAtYmV0d2Vlbi1wYWdlcy1m
bGlwcGVkLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2Zhc3QvbXVsdGlj
b2wvaGl0LXRlc3QtZ2FwLWJldHdlZW4tcGFnZXMtZmxpcHBlZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC02LDggKzYsOCBAQAogICAgICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDUwJTsiPjwvZGl2
PgogICAgICAgICA8ZGl2IGlkPSJyZXN1bHQiPkZBSUw6IFRlc3QgZGlkIG5vdCBydW4gKER1bXBS
ZW5kZXJUcmVlIG9yIFdlYktpdFRlc3RSdW5uZXIgbmVlZGVkKTwvZGl2PgogICAgICAgICA8c2Ny
aXB0PgotICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAg
ICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAg
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgICAgIGludGVybmFscy5zZXRQYWdpbmF0aW9uKGRv
Y3VtZW50LCAiTGVmdFRvUmlnaHRQYWdpbmF0ZWQiLCAyMCwgMTAwKTsKICAgICAgICAgICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuaW5uZXJUZXh0ID0gZG9jdW1lbnQu
Y2FyZXRSYW5nZUZyb21Qb2ludCgxMTUsIDU1MCkuc3RhcnRDb250YWluZXIgPT09IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKQogICAgICAgICAgICAgICAgICAgICA/ICJQQVNTIiA6
ICJGQUlMIjsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvaGl0LXRlc3QtZ2FwLWJl
dHdlZW4tcGFnZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L211bHRpY29s
L2hpdC10ZXN0LWdhcC1iZXR3ZWVuLXBhZ2VzLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExh
eW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvaGl0LXRlc3QtZ2FwLWJldHdlZW4tcGFnZXMuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtNiw4ICs2LDggQEAKICAgICAgICAgPGRpdiBzdHlsZT0iaGVpZ2h0
OiA1MCU7Ij48L2Rpdj4KICAgICAgICAgPGRpdiBpZD0icmVzdWx0Ij5GQUlMOiBUZXN0IGRpZCBu
b3QgcnVuIChEdW1wUmVuZGVyVHJlZSBvciBXZWJLaXRUZXN0UnVubmVyIG5lZWRlZCk8L2Rpdj4K
ICAgICAgICAgPHNjcmlwdD4KLSAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKLSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0
UGFnaW5hdGlvbihkb2N1bWVudCwgIkxlZnRUb1JpZ2h0UGFnaW5hdGVkIiwgMjAsIDEwMCk7CiAg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlubmVyVGV4
dCA9IGRvY3VtZW50LmNhcmV0UmFuZ2VGcm9tUG9pbnQoMTE1LCA1MCkuc3RhcnRDb250YWluZXIg
PT09IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKQogICAgICAgICAgICAgICAgICAg
ICA/ICJQQVNTIiA6ICJGQUlMIjsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvaGl0
LXRlc3QtZ2FwLWJsb2NrLWF4aXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L211bHRpY29sL2hpdC10ZXN0LWdhcC1ibG9jay1heGlzLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkK
KysrIExheW91dFRlc3RzL2Zhc3QvbXVsdGljb2wvaGl0LXRlc3QtZ2FwLWJsb2NrLWF4aXMuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMTIsOCArMTIsOCBAQAogICAgIGNvbG9yOiByZ2JhKDAsIDAs
IDAsIDAuNSk7CiAiPkxvcmVtIGlwc3VtIGRvbG9yIHNpdCBhbWV0IGNvbnNlY3RldHVyIGVsaXQu
PC9kaXY+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0g
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgLy8g
Q2xpY2tpbmcgaW4gdGhlIGdhcCBhZnRlciB0aGUgZmlyc3QgY29sdW1uIHNob3VsZCBub3Qgc2Vs
ZWN0IGFueXRoaW5nIGZyb20gdGhlIHNlY29uZCBjb2x1bW4uCiAgICAgdmFyIHRhcmdldCA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXQiKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
bm90aWZpY2F0aW9ucy9ub3RpZmljYXRpb25zLWV2ZW50LWxpc3RlbmVyLWNyYXNoLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMt
ZXZlbnQtbGlzdGVuZXItY3Jhc2guaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9ub3RpZmljYXRpb25zL25vdGlmaWNhdGlvbnMtZXZlbnQtbGlzdGVuZXItY3Jhc2gu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNywxMSArNywxMSBAQAogPHAgaWQ9ImRlc2NyaXB0aW9u
Ij48L3A+CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIDxzY3JpcHQ+Ci1pZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7Ci0JbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisJdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CiAJc2V0VGltZW91dChmdW5jdGlvbigpIHsKIAkJdGVzdFBhc3NlZCgnTm8gY3Jhc2guJyk7
Ci0JCWxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKwkJdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CiAJfSwgMCk7CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcGFyc2VyL2Zv
c3Rlci1wYXJlbnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3BhcnNlci9m
b3N0ZXItcGFyZW50Lmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
cGFyc2VyL2Zvc3Rlci1wYXJlbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDggQEAK
IDxodG1sPgogPGJvZHk+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiA8L3NjcmlwdD4KIAogPGRp
diBpZD0iZGl2Ij4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcnVieS9hZnRlci1kb2VzbnQtY3Jh
c2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3J1YnkvYWZ0ZXItZG9lc250
LWNyYXNoLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2Zhc3QvcnVieS9h
ZnRlci1kb2VzbnQtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTQsOCArMTQsOCBAQAog
ICAgICAgPHJ0PjwvcnQ+CiAgICAgPC9ydWJ5PgogICAgIDxzY3JpcHQ+Ci0gICAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LmR1bXBBc1RleHQoKTsKKyAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICA8L3NjcmlwdD4KICAgICBUaGlzIHRlc3QgcGFz
c2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2guCiAgIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zh
c3QvcnVieS9iZWZvcmUtYmxvY2stZG9lc250LWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9ydWJ5L2JlZm9yZS1ibG9jay1kb2VzbnQtY3Jhc2guaHRtbAkocmV2aXNp
b24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2JlZm9yZS1ibG9jay1kb2VzbnQt
Y3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTcsNyArMTcsNyBAQAogICAgIDwvcnVieT4K
IDwvcnVieT4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiA8L3Njcmlw
dD4KIFRoaXMgdGVzdCBwYXNzZXMgaWYgaXQgZG9lc24ndCBjcmFzaC4KSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvcnVieS9iZWZvcmUtZG9lc250LWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9ydWJ5L2JlZm9yZS1kb2VzbnQtY3Jhc2guaHRtbAkocmV2aXNpb24gMTI0
NjkwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2JlZm9yZS1kb2VzbnQtY3Jhc2guaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMTQsOCArMTQsOCBAQAogICAgICAgPHJ0PjwvcnQ+CiAgICAgPC9y
dWJ5PgogICAgIDxzY3JpcHQ+Ci0gICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
ICAgICA8L3NjcmlwdD4KICAgICBUaGlzIHRlc3QgcGFzc2VzIGlmIGl0IGRvZXNuJ3QgY3Jhc2gu
CiAgIDwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcnVieS9iZWZvcmUtdGFibGUtZG9l
c250LWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2JlZm9y
ZS10YWJsZS1kb2VzbnQtY3Jhc2guaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVz
dHMvZmFzdC9ydWJ5L2JlZm9yZS10YWJsZS1kb2VzbnQtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMTcsNyArMTcsNyBAQAogICAgIDwvcnVieT4KIDwvcnVieT4KIDxzY3JpcHQ+Ci0gICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiA8L3NjcmlwdD4KIFRoaXMgdGVzdCBwYXNzZXMgaWYg
aXQgZG9lc24ndCBjcmFzaC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcnVieS9nZW5lcmF0ZWQt
YmVmb3JlLWNvdW50ZXItZG9lc250LWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9ydWJ5L2dlbmVyYXRlZC1iZWZvcmUtY291bnRlci1kb2VzbnQtY3Jhc2guaHRtbAko
cmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L2dlbmVyYXRlZC1iZWZv
cmUtY291bnRlci1kb2VzbnQtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcg
QEAKIDxodG1sPgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIDwvc2Ny
aXB0PgogPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KIApJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9y
dWJ5L21vZGlmeS1wb3NpdGlvbmVkLXJ1YnktdGV4dC1jcmFzaC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvcnVieS9tb2RpZnktcG9zaXRpb25lZC1ydWJ5LXRleHQtY3Jhc2gu
aHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L21vZGlmeS1w
b3NpdGlvbmVkLXJ1YnktdGV4dC1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDggKzcs
OCBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAKICAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdQQVNTLCBpZiBubyBhc3NlcnQgb3Ig
Y3Jhc2ggaW4gZGVidWcnKSk7CiAKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIH0KIDwv
c2NyaXB0PgogPHN0eWxlPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3BhcnNlLXJwLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3BhcnNlLXJwLmh0bWwJKHJl
dmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2Zhc3QvcnVieS9wYXJzZS1ycC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0zLDggKzMsOCBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHRlc3QoKQog
ewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIHZhciBtYXJrdXAgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgicnVieSIpLm91dGVySFRNTDsKICAgICBpZiAobWFya3VwID09ICc8
cnVieSBpZD0icnVieSI+YmFzZS88cnA+PHNwYW4+bGVmdDwvc3Bhbj4gcnAvPC9ycD48cnQ+dGV4
dC88L3J0PjxycD5yaWdodCA8c3Bhbj5ycDwvc3Bhbj48L3JwPjwvcnVieT4nKQogICAgICAgICBy
ZXN1bHQgPSAiVEVTVCBQQVNTRUQ6IE1hcmt1cCB3YXMgY29ycmVjdCI7CkluZGV4OiBMYXlvdXRU
ZXN0cy9mYXN0L3J1YnkvcnVieS1pbGxlZ2FsLTEuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L3J1YnkvcnVieS1pbGxlZ2FsLTEuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnktaWxsZWdhbC0xLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTMsOCArMyw4IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIp
LmZpcnN0Q2hpbGQuZGF0YSA9ICdTVUNDRVNTISc7CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LWlsbGVnYWwtMi5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LWlsbGVnYWwtMi5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L3J1YnkvcnVieS1pbGxlZ2FsLTIuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMyw4ICszLDggQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0
IikuZmlyc3RDaGlsZC5kYXRhID0gJ1NVQ0NFU1MhJzsKIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnktaWxsZWdhbC0zLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnktaWxsZWdhbC0zLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkK
KysrIExheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LWlsbGVnYWwtMy5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0zLDggKzMsOCBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHRlc3QoKQogewotICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1
bHQiKS5maXJzdENoaWxkLmRhdGEgPSAnU1VDQ0VTUyEnOwogfQogPC9zY3JpcHQ+CkluZGV4OiBM
YXlvdXRUZXN0cy9mYXN0L3J1YnkvcnVieS1pbGxlZ2FsLTQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9mYXN0L3J1YnkvcnVieS1pbGxlZ2FsLTQuaHRtbAkocmV2aXNpb24gMTI0Njkw
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnktaWxsZWdhbC00Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTMsOCArMyw4IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJl
c3VsdCIpLmZpcnN0Q2hpbGQuZGF0YSA9ICdTVUNDRVNTISc7CiB9CiA8L3NjcmlwdD4KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LWlsbGVnYWwtNS5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LWlsbGVnYWwtNS5odG1sCShyZXZpc2lvbiAxMjQ2
OTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3J1YnkvcnVieS1pbGxlZ2FsLTUuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMyw4ICszLDggQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
cmVzdWx0IikuZmlyc3RDaGlsZC5kYXRhID0gJ1NVQ0NFU1MhJzsKIH0KIDwvc2NyaXB0PgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnktaWxsZWdhbC02Lmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnktaWxsZWdhbC02Lmh0bWwJKHJldmlzaW9uIDEy
NDY5MCkKKysrIExheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LWlsbGVnYWwtNi5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zLDggKzMsOCBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHRlc3QoKQogewot
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJyZXN1bHQiKS5maXJzdENoaWxkLmRhdGEgPSAnU1VDQ0VTUyEnOwogfQogPC9zY3JpcHQ+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3J1YnkvcnVieS1pbGxlZ2FsLTcuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3J1YnkvcnVieS1pbGxlZ2FsLTcuaHRtbAkocmV2aXNpb24g
MTI0NjkwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnktaWxsZWdhbC03Lmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTMsOCArMyw4IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gdGVzdCgpCiB7
Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJlc3VsdCIpLmZpcnN0Q2hpbGQuZGF0YSA9ICdTVUNDRVNTISc7CiB9CiA8L3NjcmlwdD4K
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LWlsbGVnYWwtY29tYmluZWQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3J1YnkvcnVieS1pbGxlZ2FsLWNvbWJpbmVk
Lmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LWls
bGVnYWwtY29tYmluZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMyw4ICszLDggQEAKIDxzY3Jp
cHQ+CiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuZmlyc3RDaGlsZC5kYXRhID0gJ1NV
Q0NFU1MhJzsKIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1Ynkt
b3ZlcmhhbmctY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L3J1Ynkv
cnVieS1vdmVyaGFuZy1jcmFzaC5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0
cy9mYXN0L3J1YnkvcnVieS1vdmVyaGFuZy1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC04
LDEzICs4LDEzIEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQ0KICAgICB2YXIgY2hpbGQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndGVzdCcpOw0KICAgICBjaGlsZC5wYXJlbnROb2RlLnJlbW92ZUNo
aWxkKGNoaWxkKTsNCiAgICAgDQotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
DQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7DQorICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikNCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOw0KIH0N
CiANCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7DQotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsNCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOw0KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgew0KKyAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsNCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7DQogfQ0KIA0KIHNl
dFRpbWVvdXQoInJ1blRlc3QoKSIsIDApOw0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcnVieS9y
dWJ5LXJlbW92ZS1uby1iYXNlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9y
dWJ5L3J1YnktcmVtb3ZlLW5vLWJhc2UuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0
VGVzdHMvZmFzdC9ydWJ5L3J1YnktcmVtb3ZlLW5vLWJhc2UuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSwxMCArMSwxMCBAQAogPGh0bWw+DQogICAgIDxoZWFkPg0KICAgICAgICAgPHNjcmlwdD4g
DQotICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikNCisgICAgICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpDQogICAgICAgICAgICAgew0KLSAgICAgICAgICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7DQotICAgICAgICAgICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsNCisgICAgICAgICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7DQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOw0KICAgICAgICAgICAgIH0NCiAgICAgICAgICAgICANCiAgICAgICAgICAg
ICBmdW5jdGlvbiBydW5UZXN0KCkNCkBAIC0xMiw4ICsxMiw4IEBACiAgICAgICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIp
KTsNCiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpLmlu
bmVySFRNTCA9ICJQQVNTIjsNCiAgICAgICAgICAgICAgICAgDQotICAgICAgICAgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpDQotICAgICAgICAgICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7DQorICAgICAgICAgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikNCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOw0KICAgICAgICAgICAgIH0NCiAgICAgICAgIDwvc2NyaXB0Pg0KICAgICA8L2hlYWQ+DQpJ
bmRleDogTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnktcmVtb3ZlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnktcmVtb3ZlLmh0bWwJKHJldmlzaW9uIDEyNDY5
MCkKKysrIExheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LXJlbW92ZS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0zLDggKzMsOCBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHRlc3QoKQogewotICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIHZhciBydWJ5ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInQiKTsKICAgICBydWJ5LmlubmVySFRNTCA9ICcnOyAvLyBUaGlzIGxpbmUgbXVzdG4n
dCBjcmFzaCAKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuZmlyc3RDaGls
ZC5kYXRhID0gJ1NVQ0NFU1MhJzsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5LXRl
eHQtaW5kZW50Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1Ynkt
dGV4dC1pbmRlbnQuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9y
dWJ5L3J1YnktdGV4dC1pbmRlbnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAK
IDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Cisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKICAgICB2YXIgdGVzdHAgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicCIpOwogICAgIHZh
ciB0ZXN0ciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyIik7CiAgICAgdmFyIHRlc3R0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInQiKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcnVi
eS9ydWJ5RE9NLWluc2VydC1ydC1ibG9jay0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9ydWJ5L3J1YnlET00taW5zZXJ0LXJ0LWJsb2NrLTEuaHRtbAkocmV2aXNpb24gMTI0
NjkwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnlET00taW5zZXJ0LXJ0LWJsb2NrLTEu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw4ICs0LDggQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiB0
ZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicmVzdWx0IikuZmlyc3RDaGlsZC5kYXRhID0gJ1NVQ0NFU1MhJzsKIAogICAg
IHZhciBydWJ5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1InKTsKSW5kZXg6IExheW91dFRl
c3RzL2Zhc3QvcnVieS9ydWJ5RE9NLWluc2VydC1ydC1ibG9jay0yLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnlET00taW5zZXJ0LXJ0LWJsb2NrLTIuaHRtbAko
cmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnlET00taW5zZXJ0
LXJ0LWJsb2NrLTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw4ICs0LDggQEAKIDxzY3JpcHQ+
CiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuZmlyc3RDaGlsZC5kYXRhID0gJ1NVQ0NF
U1MhJzsKIAogICAgIHZhciBydWJ5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1InKTsKSW5k
ZXg6IExheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5RE9NLWluc2VydC1ydC1ibG9jay0zLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnlET00taW5zZXJ0LXJ0LWJs
b2NrLTMuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1
YnlET00taW5zZXJ0LXJ0LWJsb2NrLTMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw4ICs0LDgg
QEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0IikuZmlyc3RDaGlsZC5k
YXRhID0gJ1NVQ0NFU1MhJzsKIAogICAgIHZhciBydWJ5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ1InKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5RE9NLXJlbW92ZS1ydC1i
bG9jay0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnlET00t
cmVtb3ZlLXJ0LWJsb2NrLTEuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMv
ZmFzdC9ydWJ5L3J1YnlET00tcmVtb3ZlLXJ0LWJsb2NrLTEuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNCw4ICs0LDggQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0KCkKIHsKLSAgICBpZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iiku
Zmlyc3RDaGlsZC5kYXRhID0gJ1NVQ0NFU1MhJzsKIAogICAgIHZhciBydWJ5ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ1InKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcnVieS9ydWJ5RE9N
LXJlbW92ZS1ydC1ibG9jay0yLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9y
dWJ5L3J1YnlET00tcmVtb3ZlLXJ0LWJsb2NrLTIuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnlET00tcmVtb3ZlLXJ0LWJsb2NrLTIuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtNCw4ICs0LDggQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0KCkKIHsK
LSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgicmVzdWx0IikuZmlyc3RDaGlsZC5kYXRhID0gJ1NVQ0NFU1MhJzsKIAogICAgIHZhciBydWJ5
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1InKTsKSW5kZXg6IExheW91dFRlc3RzL2Zhc3Qv
cnVieS9ydWJ5RE9NLXJlbW92ZS1ydC1ibG9jay0zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9ydWJ5L3J1YnlET00tcmVtb3ZlLXJ0LWJsb2NrLTMuaHRtbAkocmV2aXNpb24g
MTI0NjkwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ydWJ5L3J1YnlET00tcmVtb3ZlLXJ0LWJsb2Nr
LTMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw4ICs0LDggQEAKIDxzY3JpcHQ+CiBmdW5jdGlv
biB0ZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgicmVzdWx0IikuZmlyc3RDaGlsZC5kYXRhID0gJ1NVQ0NFU1MhJzsKIAog
ICAgIHZhciBydWJ5ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ1InKTsKSW5kZXg6IExheW91
dFRlc3RzL2Zhc3QvcnVuaW4vY3Jhc2gtd2hlbi1yZXBhcmVudC1zaWJsaW5nLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ydW5pbi9jcmFzaC13aGVuLXJlcGFyZW50LXNpYmxp
bmcuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9ydW5pbi9jcmFz
aC13aGVuLXJlcGFyZW50LXNpYmxpbmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMyw4ICszLDgg
QEAKICAgICAgICAgPHNjcmlwdD4KICAgICAgICAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgICAg
IHsKLSAgICAgICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogCiAgICAgICAgICAgICAvLyBDcmVhdGUgYSBydW4taW4uCiAgICAgICAgICAgICB2
YXIgZWxlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwpJbmRleDogTGF5b3V0VGVz
dHMvZmFzdC9ydW5pbi9ub25ibG9jay1ydW5pbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvcnVuaW4vbm9uYmxvY2stcnVuaW4uaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9ydW5pbi9ub25ibG9jay1ydW5pbi5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xMyw2ICsxMyw2IEBACiA8L2Rpdj4KIAogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogPC9z
Y3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3J1bmluL3Byb2dyZXNzLXJ1bi1pbi1jcmFz
aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvcnVuaW4vcHJvZ3Jlc3MtcnVu
LWluLWNyYXNoLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2Zhc3QvcnVu
aW4vcHJvZ3Jlc3MtcnVuLWluLWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUsOCArNSw4
IEBAIFRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLjxiciAvPg0KIDxib2R5Pg0KIDxw
cm9ncmVzcyBpZD0icHJvZ3Jlc3MxIiBzdHlsZT0iLXdlYmtpdC1hcHBlYXJhbmNlOiBub25lIj48
L3Byb2dyZXNzPjxkaXY+PC9kaXY+DQogPHNjcmlwdD4NCi1pZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQ0KLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7DQoraWYg
KHdpbmRvdy50ZXN0UnVubmVyKQ0KKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsNCiANCiBk
b2N1bWVudC5ib2R5Lm9mZnNldFRvcDsNCiBwcm9ncmVzczEuc3R5bGUuZGlzcGxheSA9ICdydW4t
aW4nOw0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcnVuaW4vcnVuLWluLWxheWVyLW5vdC1yZW1v
dmVkLWNyYXNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ydW5pbi9ydW4t
aW4tbGF5ZXItbm90LXJlbW92ZWQtY3Jhc2guaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9ydW5pbi9ydW4taW4tbGF5ZXItbm90LXJlbW92ZWQtY3Jhc2guaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMTksOCArMTksOCBAQCBUZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5v
dCBjcmFzaC4NCiB9DQogPC9zdHlsZT4NCiA8c2NyaXB0Pg0KLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpDQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsNCitp
ZiAod2luZG93LnRlc3RSdW5uZXIpDQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOw0KIA0K
IG9ubG9hZCA9IGZ1bmN0aW9uKCkgDQogew0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvcnVuaW4v
cnVuaW4tY29udGludWF0aW9ucy1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2Zhc3QvcnVuaW4vcnVuaW4tY29udGludWF0aW9ucy1jcmFzaC5odG1sCShyZXZpc2lvbiAxMjQ2
OTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3J1bmluL3J1bmluLWNvbnRpbnVhdGlvbnMtY3Jhc2gu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw4ICs2LDggQEAgVGVzdCBwYXNzZXMgaWYgaXQgZG9l
cyBub3QgY3Jhc2guPGJyIC8+CiAucnVuSW4geyBkaXNwbGF5OiBydW4taW47IH0KIDwvc3R5bGU+
CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKIGRvY3VtZW50LmJvZHkub2Zmc2V0VG9wOwogCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L3J1bmluL3J1bmluLXJlcGFyZW50LWNyYXNoLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9ydW5pbi9ydW5pbi1yZXBhcmVudC1jcmFzaC5o
dG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9mYXN0L3J1bmluL3J1bmluLXJl
cGFyZW50LWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOCArNCw4IEBACiAgICAgICAg
IDxwIHN0eWxlPSJkaXNwbGF5OiBydW4taW47ICI+PC9wPg0KICAgICAgICAgPGRldGFpbHMgaWQ9
InRlc3QiPjwvZGV0YWlscz4NCiAgICAgICAgIDxzY3JpcHQ+DQotICAgICAgICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikNCi0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOw0KKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikNCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7DQogDQogICAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7DQogICAgICAgICAgICAgDQpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9ydW5pbi9zZWxlY3QtcnVuaW4uaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L3J1bmluL3NlbGVjdC1ydW5pbi5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisr
KyBMYXlvdXRUZXN0cy9mYXN0L3J1bmluL3NlbGVjdC1ydW5pbi5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC02LDggKzYsOCBAQCBUZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5vdCBjcmFzaC4NCiA8L3Nl
bGVjdD4NCiA8ZGl2PjwvZGl2Pg0KIDxzY3JpcHQ+DQotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikNCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOw0KK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikNCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7DQogDQogZG9j
dW1lbnQuYm9keS5vZmZzZXRUb3A7DQogZG9jdW1lbnQuZXhlY0NvbW1hbmQoIlNlbGVjdEFsbCIp
Ow0KSW5kZXg6IExheW91dFRlc3RzL2Z1bGxzY3JlZW4vZW1wdHktYW5vbnltb3VzLWJsb2NrLWNv
bnRpbnVhdGlvbi1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Z1bGxzY3Jl
ZW4vZW1wdHktYW5vbnltb3VzLWJsb2NrLWNvbnRpbnVhdGlvbi1jcmFzaC5odG1sCShyZXZpc2lv
biAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9mdWxsc2NyZWVuL2VtcHR5LWFub255bW91cy1ibG9j
ay1jb250aW51YXRpb24tY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTEsOCArMTEsOCBA
QCBUZXN0IHBhc3NlcyBpZiBpdCBkb2VzIG5vdCBjcmFzaC4KIDwvaT4KIDwvc3VtbWFyeT4KIDxz
Y3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKIAogaWYgKCJ3ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbiIgaW4g
RWxlbWVudC5wcm90b3R5cGUpIHsKIAl2YXIgc3BhbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCd0ZXN0Jyk7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvU1ZHRm9udC1kZWxh
eWVkLWxvYWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mv
U1ZHRm9udC1kZWxheWVkLWxvYWQuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9taXNjL1NWR0ZvbnQtZGVsYXllZC1sb2FkLmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTEsOCArMSw4IEBACiA8cD5UaGlzIHRlc3RzIHRoYXQgdGhlIG9ubG9hZCBoYW5kbGVy
IGZvciBhbiBpZnJhbWUgaXMgZGVsYXllZCBieSBhIHBlbmRpbmcgU1ZHRm9udCBsb2FkLjwvcD4K
IDxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKIAogICAgIGZ1bmN0aW9uIGxvZyhtc2cpCiAgICAgewpJbmRleDogTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9taXNjL3NjcmlwdC01MDAuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LTUwMC5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2NyaXB0LTUwMC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0zLDggKzMsOCBAQAogPGRpdj5UZXN0IHRoYXQgb25lcnJvciBmaXJlcyBmb3IgYSBz
Y3JpcHQgd2l0aCBIVFRQIHN0YXR1cyA1MDAuPC9kaXY+CiA8ZGl2IGlkPXJlc3VsdD5UZXN0aW5n
Li4uPC9kaXY+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiA8L3NjcmlwdD4KIDxzY3JpcHQgb25l
cnJvcj0iZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jlc3VsdCcpLmlubmVySFRNTCA9ICdQQVNT
JzsiIHNyYz0icmVzb3VyY2VzL3NjcmlwdC01MDAucGhwIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
Pjwvc2NyaXB0PgogPC9ib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Nj
cmlwdC1uby1zdG9yZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWlzYy9zY3JpcHQtbm8tc3RvcmUuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9taXNjL3NjcmlwdC1uby1zdG9yZS5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0yLDkgKzIsOSBAQAogPHNjcmlwdD4KIHZhciBjb3VudCA9IDA7CiAKLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIGFkZFJhbmRvbSgpCkBAIC0yMyw4
ICsyMyw4IEBAIHNldEludGVydmFsKGZ1bmN0aW9uKCkgewogICAgIH0gZWxzZSBpZiAoZG9jdW1l
bnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInAiKS5sZW5ndGggPT0gMikgewogICAgICAgICBkb2N1
bWVudC53cml0ZShkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgicCIpWzBdLmlubmVySFRN
TCA9PSBkb2N1bWVudC5nZXRFbGVtZW50c0J5VGFnTmFtZSgicCIpWzFdLmlubmVySFRNTCA/IAog
ICAgICAgICAgICAgIkZBSUw8YnI+IiA6ICJQQVNTPGJyPiIpOwotICAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiB9LCAxMCk7CiA8L3NjcmlwdD4KSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zZXQtd2luZG93LW9wZW5lci10by1udWxs
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3NldC13aW5k
b3ctb3BlbmVyLXRvLW51bGwuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9taXNjL3NldC13aW5kb3ctb3BlbmVyLXRvLW51bGwuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSwxMCArMSwxMCBAQAogPGh0bWw+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewotICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRDYW5PcGVuV2lu
ZG93cygpOwotICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZ2xv
YmFsRmxhZyA9IGZhbHNlOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIu
c2V0Q2FuT3BlbldpbmRvd3MoKTsKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICB0ZXN0UnVubmVyLmdsb2JhbEZsYWcgPSBmYWxzZTsK
IH0KIAogdmFyIHcgPSB3aW5kb3cub3BlbigiaHR0cDovLzEyNy4wLjAuMTo4MDAwL21pc2MvcmVz
b3VyY2VzL2NvbnRlbnQtaWZyYW1lLmh0bWwiKTsKQEAgLTEzLDkgKzEzLDkgQEAgdy5vcGVuZXIg
PSBudWxsOwogZnVuY3Rpb24gd2FpdF90b19zdGFydCgpIHsKICAgdmFyIGNoaWxkX3dpbmRvd19v
cGVuZWQ7CiAKLSAgLy8gcG9sbGluZyBsYXlvdXRUZXN0Q29udHJvbGxlci5nbG9iYWxGbGFnIG9y
IHcuZG9jdW1lbnQKLSAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGNo
aWxkX3dpbmRvd19vcGVuZWQgPSBsYXlvdXRUZXN0Q29udHJvbGxlci5nbG9iYWxGbGFnOworICAv
LyBwb2xsaW5nIHRlc3RSdW5uZXIuZ2xvYmFsRmxhZyBvciB3LmRvY3VtZW50CisgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgIGNoaWxkX3dpbmRvd19vcGVuZWQgPSB0ZXN0UnVubmVyLmds
b2JhbEZsYWc7CiAgIH0gZWxzZSB7CiAgICAgLy8gcG9sbGluZyB3LmRvY3VtZW50IGlzIG5vdCB2
ZXJ5IHJlbGlhYmxlIGNyb3NzIGJyb3dzZXJzLAogICAgIC8vIGl0IHdvcmtzIGluIGNocm9tZSBm
b3IgbWFudWFsIHRlc3RzaW5nLgpAQCAtMzQsOCArMzQsOCBAQCBmdW5jdGlvbiB3YWl0X3RvX3N0
YXJ0KCkgewogCiAgIHcuY2xvc2UoKTsKIAotICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCiB3aW5kb3cu
b25sb2FkID0gd2FpdF90b19zdGFydDsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlz
Yy9zaW5nbGUtY2hhcmFjdGVyLXBpLXN0eWxlc2hlZXQueGh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3NpbmdsZS1jaGFyYWN0ZXItcGktc3R5bGVzaGVldC54
aHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Np
bmdsZS1jaGFyYWN0ZXItcGktc3R5bGVzaGVldC54aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw4
ICs3LDggQEAKIFRoaXMgdGV4dCBzaG91bGQgYmUgc3R5bGVkIGdyZWVuLg0KIDwvcD4NCiA8c2Ny
aXB0Pg0KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpDQotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsNCitpZiAod2luZG93LnRlc3RSdW5uZXIpDQorICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOw0KIA0KIGlmICghZG9jdW1lbnQuZmlyc3RDaGlsZC5kYXRh
Lm1hdGNoKC9ocmVmPSJhIi8pKQ0KICAgICBhbGVydCgiUGxlYXNlIGRvbid0IHJlbmFtZSB0aGUg
c3R5bGVzaGVldCAtIHRoZSB0ZXN0IG5lZWRzIGl0cyBVUkwgdG8gYmUgc2luZ2xlIGNoYXJhY3Rl
ciIpOw0KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9zbG93LWxvYWRpbmctaW1h
Z2UtaW4tcGF0dGVybi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWlzYy9zbG93LWxvYWRpbmctaW1hZ2UtaW4tcGF0dGVybi5odG1sCShyZXZpc2lvbiAxMjQ2OTAp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2xvdy1sb2FkaW5nLWltYWdlLWluLXBh
dHRlcm4uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTcsOCArMTcsOCBAQCBZb3Ugc2hvdWxkIHNl
ZSBhIDQwMHgzMDAgcmVjdCBjb250YWluaW5nCiBkb2N1bWVudC5ib2R5Lm9mZnNldFdpZHRoOwog
CiAvLyBSZXBhaW50IGltbWVkaWF0ZWx5IGJlZm9yZSBpbWFnZSBhcnJpdmVkCi1pZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmRpc3BsYXko
KTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmRpc3BsYXkoKTsKIDwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
aXNjL3Nsb3ctcHJlbG9hZC1jYW5jZWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21pc2Mvc2xvdy1wcmVsb2FkLWNhbmNlbC5odG1sCShyZXZpc2lvbiAxMjQ2OTAp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc2xvdy1wcmVsb2FkLWNhbmNlbC5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0yLDEwICsyLDEwIEBACiA8cD5JZiB0ZXN0aW5nIG1hbnVhbGx5
LCBpZiB5b3VyIGJyb3dzZXIgZG9lc24ndCBjcmFzaCB0aGVuIHRoaXMgd2FzIGEgc3VjY2Vzcy48
L3A+CiA8YnV0dG9uIHR5cGU9ImJ1dHRvbiIgb25jbGljaz0nd2luZG93Lm9wZW4oInJlc291cmNl
cy9zbG93LXByZWxvYWQtY2FuY2VsLmh0bWwiKTsnPlRlc3Q8L2J1dHRvbj4KIDxzY3JpcHQ+Ci1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOwor
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwogfQogCiB3aW5kb3cub3BlbigicmVzb3VyY2VzL3Nsb3ctcHJlbG9hZC1jYW5jZWwtMS5o
dG1sIik7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc3VibWl0LXBvc3Qta2V5
Z2VuLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3N1Ym1p
dC1wb3N0LWtleWdlbi5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2Mvc3VibWl0LXBvc3Qta2V5Z2VuLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEs
OSArMSw5IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiB9CiBmdW5jdGlvbiBjbGlja2YoKQogewpJbmRleDogTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9taXNjL3N2Zy1pbWFnZS1sb2FkLW91dGxpdmVzLWdjLXdpdGhvdXQtY3Jh
c2hpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc3Zn
LWltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1sCShyZXZpc2lvbiAx
MjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvc3ZnLWltYWdlLWxvYWQtb3V0
bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDE2ICsx
LDE2IEBACiA8c2NyaXB0PgogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0J
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotCWxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworCXRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOworCXRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogfQogCiBmdW5jdGlv
biBsb2FkZWQoKSB7CiAJLy8gSWYgdGhlIGdhcmJhZ2UgY29sbGVjdGlvbiBjYXVzZXMgdGhlIGlt
YWdlIGxvYWQgdG8gc3RvcCBhbmQgdGhlcmVmb3JlIGNhdXNlcyB0aGUgbG9hZCBldmVudCB0byBm
aXJlIG9uIHRoZSBtYWluIGZyYW1lLCB3ZSBmYWlsZWQuCiAJYWxlcnQoIkZBSUw6IFRoZSBsb2Fk
IGV2ZW50IGZpcmVkIik7CiAJCi0JaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLQkJ
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworCWlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKwkJdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIDwvc2NyaXB0PgpAQCAtMjcsOCAr
MjcsOCBAQCBUaGlzIGhhcyBhbiBzdmcgZWxlbWVudCB0aGF0IGNvbnRhaW5zIGFuCiAKIGZ1bmN0
aW9uIGZpbmlzaGVkKCkgewogCXdpbmRvdy5zdG9wKCkKLQlpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotCQlsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisJaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorCQl0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rp
b24gZm9yY2VHQygpIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy90ZXh0LXJl
ZnJlc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvdGV4
dC1yZWZyZXNoLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy90ZXh0LXJlZnJlc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDggQEAK
IDxoZWFkPgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiB9
CiA8L3NjcmlwdD4KIDxtZXRhIGh0dHAtZXF1aXY9InJlZnJlc2giIGNvbnRlbnQ9IjA7IFVSTD1y
ZXNvdXJjZXMvdGV4dC1yZWZyZXNoLnBsIj4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWlzYy90aW1lci12cy1sb2FkaW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9taXNjL3RpbWVyLXZzLWxvYWRpbmcuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3RpbWVyLXZzLWxvYWRpbmcuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw5ICsxLDkgQEAKIDxodG1sPjxoZWFkPgogPHNjcmlwdCBsYW5ndWFnZT0i
amF2YXNjcmlwdCIgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij48IS0tCiAKLSAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAg
ICAgZnVuY3Rpb24gdXBkYXRlQ2xvY2soKQpAQCAtMTQsOCArMTQsOCBAQAogICAgIGZ1bmN0aW9u
IHN1Y2Nlc3MoKQogICAgIHsKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIlJFU1VM
VCIpLmlubmVySFRNTCA9ICJTVUNDRVNTIjsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbiA9ICJkYXRhOnRleHQvaHRt
bCxTVUNDRVNTPHNjcmlwdD5sYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk8L3NjciIg
KyAiaXB0PiI7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHdp
bmRvdy5sb2NhdGlvbiA9ICJkYXRhOnRleHQvaHRtbCxTVUNDRVNTPHNjcmlwdD50ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTwvc2NyIiArICJpcHQ+IjsKICAgICB9CiAKIC0tPjwvc2NyaXB0PgpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3VuY2FjaGVhYmxlLXNjcmlwdC1yZXBlYXRl
ZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy91bmNhY2hl
YWJsZS1zY3JpcHQtcmVwZWF0ZWQuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9taXNjL3VuY2FjaGVhYmxlLXNjcmlwdC1yZXBlYXRlZC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotPHNjcmlwdD5pZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7PC9zY3JpcHQ+Cis8
c2NyaXB0PmlmICh3aW5kb3cudGVzdFJ1bm5lcikgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7PC9z
Y3JpcHQ+CiA8cD5UZXN0IGZvciBidWcgMTc4NjIuIFRyeSB0byBsb2FkIHVuY2FjaGVhYmxlIHNj
cmlwdCB0d2ljZS4gVGhpcyBzaG91bGQgbm90IGNyYXNoLiA8L3A+CiA8c2NyaXB0IHNyYz1yZXNv
dXJjZXMvdW5jYWNoZWFibGUtc2NyaXB0LmNnaT48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPXJlc291
cmNlcy91bmNhY2hlYWJsZS1zY3JpcHQuY2dpPjwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9taXNjL3VubG9hZGFibGUtc2NyaXB0Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3VubG9hZGFibGUtc2NyaXB0Lmh0bWwJKHJldmlzaW9u
IDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy91bmxvYWRhYmxlLXNjcmlw
dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMyw4ICsyMyw4IEBAIGZ1bmN0aW9uIGhhbmRsZVNj
cmlwdE9uRXJyb3IoKQogICAgIDxzY3JpcHQgb25lcnJvcj0iaGFuZGxlU2NyaXB0T25FcnJvcigp
IiBpZD10ZXN0X3NjcmlwdD48L3NjcmlwdD4KIAogICAgIDxzY3JpcHQ+Ci0gICAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAgICAgIDwhLS0gd2UgYXJlIGFu
IEhUVFAgdGVzdCBzbyB0aGUgc2VjdXJpdHkgb3JpZ2luIHdpbGwgZmFpbCB0aGUgZmlsZSBtZXRo
b2QgLS0+CiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0X3NjcmlwdCcpLnNy
YyA9ICJmaWxlOi8vL2Zvb2JhciI7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mv
dmlkZW8tcG9zdGVyLWltYWdlLWxvYWQtb3V0bGl2ZXMtZ2Mtd2l0aG91dC1jcmFzaGluZy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy92aWRlby1wb3N0ZXIt
aW1hZ2UtbG9hZC1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWwJKHJldmlzaW9uIDEy
NDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy92aWRlby1wb3N0ZXItaW1hZ2Ut
bG9hZC1vdXRsaXZlcy1nYy13aXRob3V0LWNyYXNoaW5nLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsMTYgKzEsMTYgQEAKIDxzY3JpcHQ+CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKLQlsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0JbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisJdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisJdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiB9CiAK
IGZ1bmN0aW9uIGxvYWRlZCgpIHsKIAkvLyBJZiB0aGUgZ2FyYmFnZSBjb2xsZWN0aW9uIGNhdXNl
cyB0aGUgaW1hZ2UgbG9hZCB0byBzdG9wIGFuZCB0aGVyZWZvcmUgY2F1c2VzIHRoZSBsb2FkIGV2
ZW50IHRvIGZpcmUgb24gdGhlIG1haW4gZnJhbWUsIHdlIGZhaWxlZC4KIAlhbGVydCgiRkFJTDog
VGhlIGxvYWQgZXZlbnQgZmlyZWQiKTsKIAkKLQlpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQotCQlsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisJaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorCQl0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogPC9zY3JpcHQ+CkBA
IC0yNiw4ICsyNiw4IEBAIFRoaXMgaGFzIGEgdmlkZW8gZWxlbWVudCB3aXRoIGFuIGltYWdlIGYK
IAogZnVuY3Rpb24gZmluaXNoZWQoKSB7CiAJd2luZG93LnN0b3AoKQotCWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0JCWxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsK
KwlpZiAod2luZG93LnRlc3RSdW5uZXIpCisJCXRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQog
CiBmdW5jdGlvbiBmb3JjZUdDKCkgewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNj
L3dlYnRpbWluZy1vcmlnaW5zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9taXNjL3dlYnRpbWluZy1vcmlnaW5zLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93ZWJ0aW1pbmctb3JpZ2lucy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0yLDggKzIsOCBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cENoaWxkRnJhbWVzQXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0
UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvd2lsbC1zZW5kLXJlcXVlc3QtcmV0dXJu
cy1udWxsLW9uLXJlZGlyZWN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9taXNjL3dpbGwtc2VuZC1yZXF1ZXN0LXJldHVybnMtbnVsbC1vbi1yZWRpcmVjdC5odG1s
CShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvd2lsbC1z
ZW5kLXJlcXVlc3QtcmV0dXJucy1udWxsLW9uLXJlZGlyZWN0Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTIsMTAgKzIsMTAgQEAKIDxoZWFkPg0KIDxzY3JpcHQ+DQogDQotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgew0KLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7DQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3Mo
dHJ1ZSk7DQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFdpbGxTZW5kUmVxdWVzdFJldHVy
bnNOdWxsT25SZWRpcmVjdCh0cnVlKTsNCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsNCisgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7DQorICAgIHRlc3RSdW5uZXIuZHVtcFJlc291cmNlTG9h
ZENhbGxiYWNrcyh0cnVlKTsNCisgICAgdGVzdFJ1bm5lci5zZXRXaWxsU2VuZFJlcXVlc3RSZXR1
cm5zTnVsbE9uUmVkaXJlY3QodHJ1ZSk7DQogfQ0KIA0KIDwvc2NyaXB0Pg0KSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93aWxsQ2FjaGVSZXNwb25zZS1kZWxlZ2F0ZS1jYWxsYmFj
ay5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93aWxsQ2Fj
aGVSZXNwb25zZS1kZWxlZ2F0ZS1jYWxsYmFjay5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvd2lsbENhY2hlUmVzcG9uc2UtZGVsZWdhdGUtY2Fs
bGJhY2suaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxNyArMSwxNyBAQAogPGh0bWw+CiA8c2Ny
aXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wUmVzb3VyY2VMb2FkQ2FsbGJhY2tzKCk7Ci0gICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBXaWxsQ2FjaGVSZXNwb25zZSgpOworICAgICAgICB0ZXN0
UnVubmVyLmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5k
dW1wV2lsbENhY2hlUmVzcG9uc2UoKTsKIAogICAgICAgICB2YXIgZiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2lmcmFtZScpOwogICAgICAgICBmLnNyYyA9ICJyZXNvdXJjZXMvd2lsbENhY2hl
UmVzcG9uc2Utc3VjY2Vzcy5odG1sIjsKLSAgICAgICAgZi5vbmxvYWQgPSBmdW5jdGlvbigpIHsg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOyB9CisgICAgICAgIGYub25sb2FkID0gZnVuY3Rpb24oKSB7IGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7IH0KICAgICAgICAgZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChmKTsgICAgCiAgICAgfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL21pc2Mvd2luZG93LWRvdC1zdG9wLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3dpbmRvdy1kb3Qtc3RvcC5odG1sCShyZXZpc2lv
biAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvd2luZG93LWRvdC1zdG9w
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzEsMTcgQEAKIDxodG1sPgogPHNjcmlwdD4K
LSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKTsKLSAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBSZXNvdXJjZUxvYWRDYWxsYmFja3MoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogPC9zY3JpcHQ+CiA8Ym9k
eT4KIFRoaXMgdGVzdHMgZm9yIHRoZSBzdWNjZXNzZnVsIHVzZSBvZiB3aW5kb3cuc3RvcCgpPGJy
PgogPGlmcmFtZSBzcmM9Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9pbmNyZW1lbnRhbC9zbG93LXV0
ZjgtdGV4dC5wbCI+PC9pZnJhbWU+PGJyPgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0g
ICAgc2V0VGltZW91dCgibGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpIiwgMCk7IAor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgc2V0VGltZW91dCgidGVzdFJ1bm5lci5ub3RpZnlEb25lKCkiLCAwKTsgCiB9CiB3aW5kb3cu
c3RvcCgpOwogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2Mvd2lu
ZG93LW9wZW4tdGhlbi13cml0ZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWlzYy93aW5kb3ctb3Blbi10aGVuLXdyaXRlLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93aW5kb3ctb3Blbi10aGVuLXdyaXRlLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTQgKzEsMTQgQEAKIDxodG1sPgogPHNjcmlwdD4KLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3Blbldp
bmRvd3MoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0
ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CiB9CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgdmFyIHcgPSB3aW5kb3cub3Blbign
d2luZG93LW9wZW4tdGhlbi13cml0ZS5odG1sJyk7Ci0gICAgdy5kb2N1bWVudC53cml0ZSgnPGlt
ZyBzcmM9InJlc291cmNlcy9jb21wYXNzLmpwZyIgb25sb2FkPSJpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSBzZXRUaW1lb3V0KFwnbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpXCcsIDEwMCk7Ij4nKTsKKyAgICB3LmRvY3VtZW50LndyaXRlKCc8aW1nIHNyYz0icmVzb3Vy
Y2VzL2NvbXBhc3MuanBnIiBvbmxvYWQ9ImlmICh3aW5kb3cudGVzdFJ1bm5lcikgc2V0VGltZW91
dChcJ3Rlc3RSdW5uZXIubm90aWZ5RG9uZSgpXCcsIDEwMCk7Ij4nKTsKICAgICB3LmRvY3VtZW50
LmNsb3NlKCk7CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlz
Yy93cml0ZS1mcm9tLWRvbS1zY3JpcHQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL21pc2Mvd3JpdGUtZnJvbS1kb20tc2NyaXB0Lmh0bWwJKHJldmlzaW9uIDEyNDY5
MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93cml0ZS1mcm9tLWRvbS1zY3JpcHQu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAKIDxib2R5PgogUEFTUwogPHNjcmlw
dD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwogCiB3aW5kb3cuc2NyaXB0RGlkUmVhbGx5UnVuID0gZmFsc2U7CiAK
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy93cml0ZS13aGlsZS13YWl0aW5nLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3dyaXRlLXdoaWxl
LXdhaXRpbmcuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9taXNjL3dyaXRlLXdoaWxlLXdhaXRpbmcuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsy
LDggQEAKIDxib2R5PgogRkFJTAogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiBzZXRUaW1lb3V0
KCJkb2N1bWVudC53cml0ZSgnUEFTUycpO2RvY3VtZW50LmNsb3NlKCk7IiwgMTAwKTsKIDwvc2Ny
aXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3hzbHQtYmFkLWltcG9ydC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy94c2x0LWJhZC1p
bXBvcnQuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
aXNjL3hzbHQtYmFkLWltcG9ydC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsOCBAQAog
PGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIHdpbmRvdy5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZCcpLmlubmVySFRNTD0n
JwogfQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9hIHN1Y2Nl
c3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3Vy
Y2VzL2Egc3VjY2Vzcy5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL21pc2MvcmVzb3VyY2VzL2Egc3VjY2Vzcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogPGRpdj5TVUNDRVNTPC9kaXY+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIDwvc2Ny
aXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9jb250ZW50
LWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9y
ZXNvdXJjZXMvY29udGVudC1pZnJhbWUuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9jb250ZW50LWlmcmFtZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gIGxheW91dFRlc3RDb250cm9sbGVyLmdsb2JhbEZsYWcgPSB0cnVlOwor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICB0ZXN0UnVubmVyLmdsb2JhbEZsYWcgPSB0cnVlOwog
PC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL2lm
cmFtZS1wb2xpY3ktMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bWlzYy9yZXNvdXJjZXMvaWZyYW1lLXBvbGljeS0xLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvaWZyYW1lLXBvbGljeS0xLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsOCArMiw4IEBACiA8aGVhZD4KIDxzY3JpcHQ+CiAKLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUodHJ1ZSwgdHJ1ZSk7CitpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgdGVzdFJ1bm5lci5zZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSh0cnVlLCB0cnVlKTsK
IAogZnVuY3Rpb24gcnVuVGVzdCgpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21p
c2MvcmVzb3VyY2VzL2lmcmFtZS1wb2xpY3ktMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvaWZyYW1lLXBvbGljeS0yLmh0bWwJKHJldmlz
aW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvaWZy
YW1lLXBvbGljeS0yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOCArNCw4IEBACiAKIGZ1bmN0
aW9uIGxvYWRlZCgpCiB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIDwvc2Ny
aXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9pc2luZGV4
LXdpdGgtbm8tZm9ybS1iYXNlLWhyZWYtc3VibWl0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9pc2luZGV4LXdpdGgtbm8tZm9ybS1iYXNl
LWhyZWYtc3VibWl0Lmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbWlzYy9yZXNvdXJjZXMvaXNpbmRleC13aXRoLW5vLWZvcm0tYmFzZS1ocmVmLXN1Ym1p
dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw4ICsyMSw4IEBAIHdpbmRvdy5vbmxvYWQgPSB0
ZXN0OwogPGJvZHk+CiA8cHJlIGlkPSJsb2ciPjwvcHJlPgogPHNjcmlwdD4KLWlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pc2MvcmVzb3VyY2VzL2lzaW5kZXgtd2l0aC1uby1mb3JtLWJhc2UtaHJlZi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvaXNpbmRl
eC13aXRoLW5vLWZvcm0tYmFzZS1ocmVmLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvaXNpbmRleC13aXRoLW5vLWZvcm0tYmFz
ZS1ocmVmLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEyLDggKzEyLDggQEAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgdmFyIGZvcm1zID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2Zvcm0n
KTsKICAgICBpZiAoZm9ybXMubGVuZ3RoICE9IDEgfHwgZm9ybXNbMF0uYWN0aW9uICE9ICdodHRw
Oi8vbG9jYWxob3N0OjgwMDAvbWlzYy9yZXNvdXJjZXMvaXNpbmRleC13aXRoLW5vLWZvcm0tYmFz
ZS1ocmVmLXN1Ym1pdC5odG1sJykgewogICAgICAgICBsb2coJ0NvdWxkIG5vdCBmaW5kIGZvcm0g
d2l0aCBleHBlY3RlZCBhY3Rpb24nKTsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CiAgICAgfQogCiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlz
Yy9yZXNvdXJjZXMvcmVkaXJlY3QtdG8tZXh0ZXJuYWwtdXJsLWlmcmFtZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNvdXJjZXMvcmVkaXJlY3QtdG8t
ZXh0ZXJuYWwtdXJsLWlmcmFtZS5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3JlZGlyZWN0LXRvLWV4dGVybmFsLXVybC1pZnJh
bWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAKIDxoZWFkPgogPHNjcmlwdD4K
IAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5zZXRDdXN0b21Qb2xpY3lEZWxlZ2F0ZSh0cnVlLCB0cnVlKTsKK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNldEN1c3RvbVBvbGljeURlbGVnYXRlKHRydWUsIHRy
dWUpOwogCiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKQEAgLTEyLDggKzEyLDggQEAgZnVuY3Rpb24g
cnVuVGVzdCgpCiAgICAgY2xpY2tFdmVudC5pbml0RXZlbnQoJ2NsaWNrJywgZmFsc2UsIHRydWUp
OwogICAgIGxpbmsuZGlzcGF0Y2hFdmVudChjbGlja0V2ZW50KTsKIAotICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwogfQogCiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbWlzYy9yZXNvdXJjZXMvc2xvdy1wcmVsb2FkLWNhbmNlbC0xLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9zbG93LXByZWxvYWQtY2Fu
Y2VsLTEuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9t
aXNjL3Jlc291cmNlcy9zbG93LXByZWxvYWQtY2FuY2VsLTEuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMSw5ICsxLDkgQEAKIDxodG1sPgogPGhlYWQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKIH0KIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9InJlc291cmNl
cy9zY3JpcHQtc2xvdzEucGwiPjwvc2NyaXB0PiA8IS0tIHRoaXMgY2F1c2UgdGhlIHByZWxvYWQg
c2Nhbm5lciB0byBraWNrIGluIC0tPgpAQCAtMTIsOCArMTIsOCBAQCBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKSB7CiA8aW1nIHNyYz0icmVzb3VyY2VzL2ltYWdlLXNsb3cucGwiPiA8
IS0tIHRoaXMgY2F1c2VzIGEgcGVuZGluZyBwcmVsb2FkIHRvIGhhcHBlbiAtLT4KIDxzY3JpcHQ+
CiB3aW5kb3cuY2xvc2UoKTsgLy90aGlzIGNhdXNlZCB0aGUgY3Jhc2ggYXMgdGhlIHByZWxvYWQg
d291bGQgc3RhcnQgYXQgdGhpcyBwb2ludAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKK2lmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogPC9zY3JpcHQ+
CiA8L2JvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21pc2MvcmVzb3VyY2VzL3N1
Y2Nlc3Mtbm90aWZ5LWRvbmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL21pc2MvcmVzb3VyY2VzL3N1Y2Nlc3Mtbm90aWZ5LWRvbmUuaHRtbAkocmV2aXNpb24gMTI0
NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy9zdWNjZXNzLW5v
dGlmeS1kb25lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2IEBACiA8c2NyaXB0Pgot
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CiA8L3NjcmlwdD4KIDxib2R5PgogU1VDQ0VTUwpJbmRleDogTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy93ZWJ0aW1pbmctY3Jvc3Mtb3JpZ2luLWFuZC1i
YWNrMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbWlzYy9yZXNv
dXJjZXMvd2VidGltaW5nLWNyb3NzLW9yaWdpbi1hbmQtYmFjazEuaHRtbAkocmV2aXNpb24gMTI0
NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9taXNjL3Jlc291cmNlcy93ZWJ0aW1pbmct
Y3Jvc3Mtb3JpZ2luLWFuZC1iYWNrMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsOCBA
QAogPGhlYWQ+CiA8c2NyaXB0IHNyYz0iLi4vLi4vanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogZnVuY3Rpb24g
ZG9SZWRpcmVjdCgpIHsKICAgICB3aW5kb3cubG9jYXRpb24gPSAiaHR0cDovLzEyNy4wLjAuMTo4
MDAwL21pc2MvcmVzb3VyY2VzL3dlYnRpbWluZy1jcm9zcy1vcmlnaW4tYW5kLWJhY2stcmVkaXJl
Y3QxLnBocCI7CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL211bHRpcGFydC9pbnZh
bGlkLWltYWdlLWRhdGEtc3RhbmRhbG9uZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbXVsdGlwYXJ0L2ludmFsaWQtaW1hZ2UtZGF0YS1zdGFuZGFsb25lLmh0bWwJ
KHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbXVsdGlwYXJ0L2lu
dmFsaWQtaW1hZ2UtZGF0YS1zdGFuZGFsb25lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTMg
KzEsMTMgQEAKIDxodG1sPgogPGhlYWQ+CiAgICAgPHNjcmlwdD4KLSAgICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAKICAgICAgICAgZnVuY3Rpb24gbG9h
ZGVkRmlyc3RQYXJ0KCkKICAgICAgICAgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCJzdG9wKCk7IGxheW91
dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKSIsIDIwMCk7CisgICAgICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgic3RvcCgpOyB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKSIsIDIwMCk7CiAgICAgICAgIH0KICAgICA8L3NjcmlwdD4KIDwv
aGVhZD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbXVsdGlwYXJ0L2ludmFsaWQtaW1h
Z2UtZGF0YS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbXVsdGlw
YXJ0L2ludmFsaWQtaW1hZ2UtZGF0YS5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL211bHRpcGFydC9pbnZhbGlkLWltYWdlLWRhdGEuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSwxMyArMSwxMyBAQAogPGh0bWw+CiA8aGVhZD4KICAgICA8c2NyaXB0Pgot
ICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIAogICAg
ICAgICBmdW5jdGlvbiBsb2FkZWRGaXJzdFBhcnQoKQogICAgICAgICB7Ci0gICAgICAgICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgICAgIHNldFRpbWVv
dXQoImxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKSIsIDIwMCk7CisgICAgICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgc2V0VGltZW91dCgidGVz
dFJ1bm5lci5ub3RpZnlEb25lKCkiLCAyMDApOwogICAgICAgICB9CiAgICAgPC9zY3JpcHQ+CiA8
L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL211bHRpcGFydC9tdWx0aXBhcnQt
d2FpdC1iZWZvcmUtYm91bmRhcnkuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL211bHRpcGFydC9tdWx0aXBhcnQtd2FpdC1iZWZvcmUtYm91bmRhcnkuaHRtbAkocmV2
aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tdWx0aXBhcnQvbXVsdGlw
YXJ0LXdhaXQtYmVmb3JlLWJvdW5kYXJ5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzEs
MTcgQEAKIDxodG1sPgogPGhlYWQ+CiAgICAgPHNjcmlwdD4KLSAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CiAgICAgICAgIH0KICAgICAgICAgZnVuY3Rpb24gY2hpbGRMb2FkZWQoKSB7CiAgICAg
ICAgICAgICBzZXRUaW1lb3V0KCJ3aW5kb3cuZnJhbWVzWydpZnJhbWUnXS5sb2NhdGlvbiA9ICdy
ZXNvdXJjZXMvbXVsdGlwYXJ0LXdhaXQtYmVmb3JlLWJvdW5kYXJ5LnBocD9kb25lPTEnIiwgMCk7
CiAgICAgICAgIH0KICAgICAgICAgZnVuY3Rpb24gc3VjY2VzcygpIHsKLSAgICAgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewogICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdz
dGF0dXMnKS5pbm5lckhUTUwgPSAnU1VDQ0VTUyc7Ci0gICAgICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgPC9zY3JpcHQ+CkluZGV4
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL211bHRpcGFydC9zdG9wLWNyYXNoLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tdWx0aXBhcnQvc3RvcC1jcmFzaC5odG1s
CShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL211bHRpcGFydC9z
dG9wLWNyYXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTcgKzEsMTcgQEAKIDxodG1sPgog
PGhlYWQ+CiAgICAgPHNjcmlwdD4KLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgewotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwot
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAg
IH0KIAogICAgICAgICBmdW5jdGlvbiBmaXJzdFBhcnRMb2FkZWQoKQogICAgICAgICB7CiAgICAg
ICAgICAgICB3aW5kb3cuc3RvcCgpOwogICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoInJlc3VsdHMiKS5pbm5lckhUTUwgPSAiUEFTUyI7Ci0gICAgICAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfQogICAgIDwv
c2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L2FuY2hvci1iYXNpYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9hbmNob3ItYmFzaWMuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2FuY2hvci1iYXNpYy5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDcgKzEsNyBAQAogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0i
cmVzb3VyY2VzL3Rlc3Rjb2RlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAgICAgcnVuQmFzaWNUZXN0KCJyZXNvdXJjZXMvc3VjY2VzczIwMC5o
dG1sI2FuY2hvcjEiLCAibm9uZSIpOwogPC9zY3JpcHQ+CiBUaGlzIHBhZ2UganVzdCBraWNrcyBv
ZmYgYSB0ZXN0LCBhbmQgc2hvdWxkIG5vdCBhcHBlYXIgaW4gdGhlIGV4cGVjdGVkIHRlc3Qgb3V0
cHV0LgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2FuY2hvci1mcmFt
ZXMtY3Jvc3Mtb3JpZ2luLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL2FuY2hvci1mcmFtZXMtY3Jvc3Mtb3JpZ2luLmh0bWwJKHJldmlzaW9uIDEy
NDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9hbmNob3ItZnJhbWVz
LWNyb3NzLW9yaWdpbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkgKzEsOSBAQAogPGh0bWw+
CiAgIDwhLS0gU2VlIHJlc291cmNlcy9mcmFtZS13aXRoLWFuY2hvci1jcm9zcy1vcmlnaW4uaHRt
bCBmb3IgZGVzY3JpcHRpb24gb2YgdGVzdCAtLT4KICAgPHNjcmlwdD4KLSAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJh
bWVzQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1l
c0FzVGV4dCgpOwogICAgIH0KICAgPC9zY3JpcHQ+CiAgIDwhLS0gc21hbGwgc2FtZS1vcmlnaW4g
Y2hpbGQgZnJhbWUgbG9hZGluZyBsYXJnZSBjcm9zcy1vcmdpbiBncmFuZGNoaWxkIGZyYW1lIC0t
PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2FuY2hvci1mcmFtZXMt
Z2JrLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L2FuY2hvci1mcmFtZXMtZ2JrLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9hbmNob3ItZnJhbWVzLWdiay5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC00LDggKzQsOCBAQAogICA8IS0tIFNlZSByZXNvdXJjZXMvZnJhbWUtd2l0aC1hbmNo
b3ItZ2JrLmh0bWwgZm9yIGRlc2NyaXB0aW9uIG9mIHRlc3QgLS0+CiAgIDwhLS0gU2VlIGFsc28g
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMzE2IC0tPgogICA8c2Ny
aXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsK
ICAgPC9zY3JpcHQ+CiAgIDxmcmFtZXNldCByb3dzPSI5MCUsMTAlIj4KICAgICA8ZnJhbWUgc3Jj
PSJyZXNvdXJjZXMvZnJhbWUtd2l0aC1hbmNob3ItZ2JrLmh0bWwjJTg5ZyIgbmFtZT0ibWFpbiI+
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vYW5jaG9yLWZyYW1lcy1z
YW1lLW9yaWdpbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2
aWdhdGlvbi9hbmNob3ItZnJhbWVzLXNhbWUtb3JpZ2luLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9hbmNob3ItZnJhbWVzLXNhbWUt
b3JpZ2luLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsOSArMiw5IEBACiA8aHRtbD4KICAgPCEt
LSBTZWUgcmVzb3VyY2VzL2ZyYW1lLXdpdGgtYW5jaG9yLXNhbWUtb3JpZ2luLmh0bWwgZm9yIGRl
c2NyaXB0aW9uIG9mIHRlc3QgLS0+CiAgIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4
dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQo
KTsKICAgICB9CiAgIDwvc2NyaXB0PgogICA8IS0tIHNtYWxsIHNhbWUtb3JpZ2luIGNoaWxkIGZy
YW1lIGxvYWRpbmcgbGFyZ2Ugc2FtZS1vcmdpbiBncmFuZGNoaWxkIGZyYW1lIC0tPgpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2FuY2hvci1mcmFtZXMuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vYW5jaG9yLWZyYW1l
cy5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmln
YXRpb24vYW5jaG9yLWZyYW1lcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsOCBAQAog
PGh0bWw+CiAgIDwhLS0gU2VlIHJlc291cmNlcy9mcmFtZS13aXRoLWFuY2hvci5odG1sIGZvciBk
ZXNjcmlwdGlvbiBvZiB0ZXN0IC0tPgogICA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZy
YW1lc0FzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKICAgPC9zY3JpcHQ+CiAgIDxmcmFtZXNldCBy
b3dzPSI5MCUsMTAlIj4KICAgICA8ZnJhbWUgc3JjPSJyZXNvdXJjZXMvZnJhbWUtd2l0aC1hbmNo
b3IuaHRtbCNhbmNob3IxIiBuYW1lPSJtYWluIj4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9hbmNob3ItZ29iYWNrLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2FuY2hvci1nb2JhY2suaHRtbAkocmV2aXNpb24gMTI0
NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2FuY2hvci1nb2JhY2su
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0IiBzcmM9InJlc291cmNlcy90ZXN0Y29kZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0
PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIHJ1bkJhY2tUZXN0KCJyZXNvdXJj
ZXMvc3VjY2VzczIwMC5odG1sI2FuY2hvcjEiLCAxLCAibm9uZSIpOwogPC9zY3JpcHQ+CiBUaGlz
IHBhZ2UganVzdCBraWNrcyBvZmYgYSB0ZXN0LCBhbmQgc2hvdWxkIG5vdCBhcHBlYXIgaW4gdGhl
IGV4cGVjdGVkIHRlc3Qgb3V0cHV0LgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL2FuY2hvci1zdWJmcmFtZWxvYWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vYW5jaG9yLXN1YmZyYW1lbG9hZC5odG1sCShyZXZpc2lv
biAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vYW5jaG9yLXN1
YmZyYW1lbG9hZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDggKzEsOCBAQAogPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL3Rlc3Rjb2RlLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQ+Ci0gICAgaWYod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7IAotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZVNjcm9sbFBvc2l0aW9ucygp
OwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYod2lu
ZG93LnRlc3RSdW5uZXIpIHsgCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVTY3Jv
bGxQb3NpdGlvbnMoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgfQog
ICAgIHJ1bkxvYWRDaGlsZEZyYW1lVGVzdCgicmVzb3VyY2VzL3N1Y2Nlc3MyMDAuaHRtbCNhbmNo
b3IxIik7CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlv
bi9iYWNrLXNlbmQtcmVmZXJyZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vYmFjay1zZW5kLXJlZmVycmVyLmh0bWwJKHJldmlzaW9uIDEyNDY5
MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9iYWNrLXNlbmQtcmVmZXJy
ZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDxzY3JpcHQ+Ci0gICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAg
IH0KIAogICAgIHdpbmRvdy5uYW1lID0gIjAiOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL2JhY2stdG8tc2xvdy1mcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9iYWNrLXRvLXNsb3ctZnJhbWUuaHRtbAkocmV2
aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2JhY2st
dG8tc2xvdy1mcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICsxLDEwIEBACiA8c2Ny
aXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBCYWNrRm9yd2FyZExpc3QoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVMb2FkKCJyZXNv
dXJjZXMvYmFjay10by1zbG93LWZyYW1lLTIuaHRtbCIpOwotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLnF1ZXVlTG9hZCgicmVzb3VyY2VzL2JhY2stdG8tc2xvdy1mcmFtZS0zLmh0bWwiKTsKLSAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZUJhY2tOYXZpZ2F0aW9uKDEpOworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQmFja0ZvcndhcmRMaXN0KCk7Cisg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5xdWV1ZUxvYWQoInJl
c291cmNlcy9iYWNrLXRvLXNsb3ctZnJhbWUtMi5odG1sIik7CisgICAgdGVzdFJ1bm5lci5xdWV1
ZUxvYWQoInJlc291cmNlcy9iYWNrLXRvLXNsb3ctZnJhbWUtMy5odG1sIik7CisgICAgdGVzdFJ1
bm5lci5xdWV1ZUJhY2tOYXZpZ2F0aW9uKDEpOwogfQogPC9zY3JpcHQ+CiA8cD5UaGlzIHRlc3Qg
Y2hlY2tzIHRoYXQgZ29pbmcgYmFjayBhbmQgZm9ydGggYWNyb3NzIGEgc2xvdy1sb2FkaW5nIGZy
YW1lIGRvZXNuJ3QgY3Jhc2guCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vYmFjay10d2ljZS13aXRob3V0LWNvbW1pdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9iYWNrLXR3aWNlLXdpdGhvdXQtY29tbWl0Lmh0bWwJ
KHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9i
YWNrLXR3aWNlLXdpdGhvdXQtY29tbWl0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTkgKzEs
MTkgQEAKIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CitpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKICAgICBpZiAoIXdpbmRvdy5sb2NhbFN0b3JhZ2UucGFnZTFT
dGFydGVkKSB7CiAgICAgICAgIC8vIE9uIHRoZSBmaXJzdCB2aXNpdCwgY2xlYXIgdGhlIGJhY2sg
Zm9yd2FyZCBsaXN0IHRvIHN0YXJ0IGZyZXNoLAogICAgICAgICAvLyB0aGVuIHNldCB1cCB0aGUg
dGVzdC4KICAgICAgICAgd2luZG93LmxvY2FsU3RvcmFnZS5wYWdlMVN0YXJ0ZWQgPSB0cnVlOwot
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5jbGVhckJhY2tGb3J3YXJkTGlzdCgpOwotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQmFja0ZvcndhcmRMaXN0KCk7Ci0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5j
bGVhckJhY2tGb3J3YXJkTGlzdCgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBCYWNrRm9yd2Fy
ZExpc3QoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKICAgICAgICAgLy8g
VmlzaXQgdHdvIHBhZ2VzLCB0aGVuIGdvIGJhY2sgdG8gcGFnZSAyLCB3aGljaCBoYXMgYSBzbG93
IGZyYW1lIHRoZSAKICAgICAgICAgLy8gc2Vjb25kIHRpbWUsIGFuZCB0aGVuIGJhY2sgdG8gcGFn
ZSAxIGJlZm9yZSBwYWdlIDIgY29tbWl0cy4KLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
cXVldWVMb2FkKCJyZXNvdXJjZXMvYmFjay10d2ljZS1wYWdlLTIuaHRtbCIpOwotICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZUxvYWQoInJlc291cmNlcy9iYWNrLXR3aWNlLXBhZ2Ut
My5odG1sIik7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlQmFja05hdmlnYXRp
b24oMSk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlQmFja05hdmlnYXRpb24o
MSk7CisgICAgICAgIHRlc3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvYmFjay10d2ljZS1w
YWdlLTIuaHRtbCIpOworICAgICAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCgicmVzb3VyY2VzL2Jh
Y2stdHdpY2UtcGFnZS0zLmh0bWwiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5xdWV1ZUJhY2tOYXZp
Z2F0aW9uKDEpOworICAgICAgICB0ZXN0UnVubmVyLnF1ZXVlQmFja05hdmlnYXRpb24oMSk7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgZGVsZXRlIHdpbmRvdy5sb2NhbFN0b3JhZ2UucGFnZTFTdGFy
dGVkOwogICAgIH0KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9jaGFu
Z2luZy1mcmFtZS1oaWVyYXJjaHktaW4tb25sb2FkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2NoYW5naW5nLWZyYW1lLWhpZXJhcmNoeS1pbi1v
bmxvYWQuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL2NoYW5naW5nLWZyYW1lLWhpZXJhcmNoeS1pbi1vbmxvYWQuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDxodG1sPgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwog
CiAKIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vZG9jdW1lbnQtbG9jYXRpb24tc2NyaXB0Lmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2RvY3VtZW50LWxvY2F0aW9u
LXNjcmlwdC5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vZG9jdW1lbnQtbG9jYXRpb24tc2NyaXB0Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTQsMTQgKzQsMTQgQEAKICAgICB2YXIgbiA9IGRvY3VtZW50LmxvY2F0aW9uLnNlYXJjaC5z
dWJzdHJpbmcoMSk7CiAgICAgaWYgKCFuKSB7CiAgICAgICAvLyBwYWdlIGp1c3Qgb3BlbmVkCi0g
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQmFja0ZvcndhcmRMaXN0KCk7Ci0gICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICB0ZXN0UnVubmVyLmR1bXBCYWNrRm9yd2FyZExp
c3QoKTsKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CiAKICAgICAgIGRvY3VtZW50LmxvY2F0aW9uID0gIj8xIgogICAgIH0g
ZWxzZSB7CiAgICAgICAvLyBsb2FkZWQgdGhlID8xIG5hdmlnYXRpb24KLSAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwogICB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9keW5hbWljLWlmcmFtZS1keW5hbWljLWZvcm0tYmFjay1lbnRyeS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9keW5hbWljLWlm
cmFtZS1keW5hbWljLWZvcm0tYmFjay1lbnRyeS5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vZHluYW1pYy1pZnJhbWUtZHluYW1pYy1m
b3JtLWJhY2stZW50cnkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMSwxMCBAQAogPGh0
bWw+CiA8c2NyaXB0PgogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBCYWNrRm9yd2FyZExpc3QoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBCYWNrRm9yd2FyZExpc3QoKTsKKyAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIH0KIAogZnVuY3Rpb24gcnVuVGVzdCgpCkluZGV4
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vZXJyb3I0MDQtZnJhbWVzLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2Vycm9yNDA0
LWZyYW1lcy5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vZXJyb3I0MDQtZnJhbWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsMTEg
KzEsMTEgQEAKIDxodG1sPgogICA8IS0tIFRlc3RzIHRoYXQgNDA0cyBpbiBmcmFtZXMgYXJlIGhh
bmRsZWQgY29ycmVjdGx5IC0tPgogICA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsK
LSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY2xlYXJCYWNrRm9yd2FyZExpc3QoKTsKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgpOyAgICAgICAg
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAg
ICAgICB0ZXN0UnVubmVyLmNsZWFyQmFja0ZvcndhcmRMaXN0KCk7CisgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgpOyAgICAgICAgCiAgICAgfQogICA8L3NjcmlwdD4KICAg
PGZyYW1lc2V0IHJvd3M9IjkwJSwxMCUiPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL2ZhbGxiYWNrLWFuY2hvci1yZWxvYWQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vZmFsbGJhY2stYW5jaG9yLXJlbG9hZC5odG1s
CShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24v
ZmFsbGJhY2stYW5jaG9yLXJlbG9hZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDkgKzMsOSBA
QAogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgogZnVuY3Rpb24gc3RhcnRUZXN0KCkK
IHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAgICAgbG9jYXRpb24uaGFzaCA9ICdhbmNob3InOwotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnF1ZXVlUmVsb2FkKCk7CisgICAgdGVzdFJ1bm5lci5xdWV1ZVJlbG9h
ZCgpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vZm9yd2FyZC1hbmQtY2FuY2VsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ZvcndhcmQtYW5kLWNhbmNlbC5odG1sCShyZXZp
c2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vZm9yd2Fy
ZC1hbmQtY2FuY2VsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTksMjQgKzksMjQgQEAKIC8vICAg
IEltcG9ydGFudCB0byBjYW5jZWwgdGhlIGxvYWQgYW5kIGVuc3VyZSB0aGUgaGlzdG9yeSBpcyBu
b3QgY29ycnVwdGVkLgogLy8gNi4gR28gZm9yd2FyZCBhbmQgbGV0IHNsb3cgVVJMIGxvYWQuCiAv
LyAgICBJbXBvcnRhbnQgZm9yIHRlc3RpbmcgdGhhdCBuYXZpZ2F0aW9uIHN0YXRlIGlzIHJlc2V0
IGFmdGVyIHN0b3BwaW5nLgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmNsZWFyQmFja0ZvcndhcmRMaXN0KCk7Ci0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgpOwotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZUxvYWQo
InJlc291cmNlcy9mb3J3YXJkLWFuZC1jYW5jZWwtZnJhbWVzLWNvbnRhaW5lci5odG1sIik7Ci0g
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVMb2FkaW5nU2NyaXB0KCJmcmFtZXNbMF0uY2xp
Y2tMaW5rKCk7Iik7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVCYWNrTmF2aWdhdGlv
bigxKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuY2xlYXJCYWNr
Rm9yd2FyZExpc3QoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBCYWNrRm9yd2FyZExpc3QoKTsKKyAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCgicmVz
b3VyY2VzL2ZvcndhcmQtYW5kLWNhbmNlbC1mcmFtZXMtY29udGFpbmVyLmh0bWwiKTsKKyAgICB0
ZXN0UnVubmVyLnF1ZXVlTG9hZGluZ1NjcmlwdCgiZnJhbWVzWzBdLmNsaWNrTGluaygpOyIpOwor
ICAgIHRlc3RSdW5uZXIucXVldWVCYWNrTmF2aWdhdGlvbigxKTsKIAogICAgIC8vIEdvIGZvcndh
cmQgdG8gc2xvdyBVUkwgaW4gY2hpbGQgZnJhbWUsIGJ1dCBzdG9wIHJpZ2h0IGF3YXkuICBUaGlz
IHNob3VsZAogICAgIC8vIHJlc2V0IHRoZSBiYWNrRm9yd2FyZCBsaXN0IHRvIHRoZSBwcmV2aW91
cyBlbnRyeS4KLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZU5vbkxvYWRpbmdTY3JpcHQo
InNldFRpbWVvdXQoJ2hpc3RvcnkuZm9yd2FyZCgpOycsMCk7IHNldFRpbWVvdXQoJ3dpbmRvdy5z
dG9wKCk7JywxMCk7Iik7CisgICAgdGVzdFJ1bm5lci5xdWV1ZU5vbkxvYWRpbmdTY3JpcHQoInNl
dFRpbWVvdXQoJ2hpc3RvcnkuZm9yd2FyZCgpOycsMCk7IHNldFRpbWVvdXQoJ3dpbmRvdy5zdG9w
KCk7JywxMCk7Iik7CiAKICAgICAvLyBOb3cgZ28gYmFjayB0byBtYWtlIHN1cmUgdGhlIGJhY2tG
b3J3YXJkTGlzdCBpcyBub3QgY29ycnVwdGVkLgotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnF1
ZXVlTm9uTG9hZGluZ1NjcmlwdCgic2V0VGltZW91dCgnaGlzdG9yeS5mb3J3YXJkKCk7Jyw1MCk7
Iik7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVOb25Mb2FkaW5nU2NyaXB0KCJzZXRU
aW1lb3V0KCdsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7JywxMDApOyIpOworICAg
IHRlc3RSdW5uZXIucXVldWVOb25Mb2FkaW5nU2NyaXB0KCJzZXRUaW1lb3V0KCdoaXN0b3J5LmZv
cndhcmQoKTsnLDUwKTsiKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTm9uTG9hZGluZ1NjcmlwdCgi
c2V0VGltZW91dCgndGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7JywxMDApOyIpOwogCiAgICAgLy8g
V2FpdCB1bnRpbCB3ZSBnZXQgYmFjayB0byB0aGlzIHBhZ2UuCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIucXVldWVMb2FkaW5nU2NyaXB0KCJsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7Iik7CisgICAgdGVzdFJ1bm5lci5xdWV1ZUxvYWRpbmdTY3JpcHQoInRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOyIpOwogfQogPC9zY3JpcHQ+CiA8cD5UaGlzIHRlc3QgY2hlY2tzIHRo
YXQgdGhlIGJhY2tGb3J3YXJkIGxpc3QgaXMgbm90IGNvcnJ1cHRlZCB3aGVuIGEgZnJhbWUgbG9h
ZCBpcyBjYW5jZWxlZC4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9n
by1iYWNrLXRvLWVycm9yLXBhZ2UuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vZ28tYmFjay10by1lcnJvci1wYWdlLmh0bWwJKHJldmlzaW9uIDEy
NDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9nby1iYWNrLXRvLWVy
cm9yLXBhZ2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMSwxMCBAQAogPHNjcmlwdD4K
LWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdFVzZXNQYWdlQ2FjaGVQcmVmZXJlbmNlS2V5
IiwgMSk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnF1ZXVlTG9hZEhUTUxTdHJpbmcoIjxzY3JpcHQ+ZG9jdW1lbnQud3Jp
dGUoJzxkaXYgaWQ9cmVzdWx0PkZBSUw6IFRoZSBhbHRlcm5hdGUgSFRNTCBzdHJpbmcgd2FzIGNh
Y2hlZCwgYnV0IHNob3VsZCBub3QgaGF2ZSBiZWVuIGNhY2hlZCBmb3IgYW4gZXJyb3IgcGFnZTwv
ZGl2PicpOzxcL3NjcmlwdD4iLCAicmVzb3VyY2VzIiwgImh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9u
YXZpZ2F0aW9uL3Jlc291cmNlcy9wYWdlLXRyZWF0ZWQtYXMtdW5yZWFjaGFibGUuaHRtbCIpOwot
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlTG9hZCgicmVzb3VyY2VzL3BhZ2UtdG8tZ28t
YmFjay1mcm9tLmh0bWwiKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZUJhY2tOYXZp
Z2F0aW9uKDEpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5vdmVy
cmlkZVByZWZlcmVuY2UoIldlYktpdFVzZXNQYWdlQ2FjaGVQcmVmZXJlbmNlS2V5IiwgMSk7Cisg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5xdWV1ZUxvYWRIVE1M
U3RyaW5nKCI8c2NyaXB0PmRvY3VtZW50LndyaXRlKCc8ZGl2IGlkPXJlc3VsdD5GQUlMOiBUaGUg
YWx0ZXJuYXRlIEhUTUwgc3RyaW5nIHdhcyBjYWNoZWQsIGJ1dCBzaG91bGQgbm90IGhhdmUgYmVl
biBjYWNoZWQgZm9yIGFuIGVycm9yIHBhZ2U8L2Rpdj4nKTs8XC9zY3JpcHQ+IiwgInJlc291cmNl
cyIsICJodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcGFnZS10cmVh
dGVkLWFzLXVucmVhY2hhYmxlLmh0bWwiKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVlTG9hZCgicmVz
b3VyY2VzL3BhZ2UtdG8tZ28tYmFjay1mcm9tLmh0bWwiKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVl
QmFja05hdmlnYXRpb24oMSk7CiB9IGVsc2UKICAgICBkb2N1bWVudC53cml0ZSgnVGhpcyB0ZXN0
IG11c3QgYmUgcnVuIGJ5IER1bXBSZW5kZXJUcmVlIScpCiA8L3NjcmlwdD4KSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9oaXN0b3J5LWJhY2stYWNyb3NzLWZvcm0tc3Vi
bWlzc2lvbi10by1mcmFnbWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9oaXN0b3J5LWJhY2stYWNyb3NzLWZvcm0tc3VibWlzc2lvbi10by1m
cmFnbWVudC5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vaGlzdG9yeS1iYWNrLWFjcm9zcy1mb3JtLXN1Ym1pc3Npb24tdG8tZnJhZ21l
bnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDggQEAKIDxib2R5PgogPHNjcmlwdD4K
LWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwotICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogLy8gVGhpcyB0ZXN0IGNvbmZpcm1zIHRo
YXQgd2hlbiB3ZSBzdWJtaXQgYSBmb3JtIHRvIGEgcmVmZXJlbmNlIGZyYWdtZW50LCB0aGF0CiAv
LyBuYXZpZ2F0aW5nIGJhY2ssIGNhdXNlcyB0aGUgcGFnZSB0byBsb2FkIGFnYWluLiAgV2Ugd2Fu
dCB0byBlbnN1cmUgdGhhdCB0aGUKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9odHRwcy1pbi1wYWdlLWNhY2hlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2h0dHBzLWluLXBhZ2UtY2FjaGUuaHRtbAkocmV2aXNpb24g
MTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2h0dHBzLWluLXBh
Z2UtY2FjaGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICsxLDkgQEAKIDxzY3JpcHQ+CiAK
LWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0
VXNlc1BhZ2VDYWNoZVByZWZlcmVuY2VLZXkiLCAxKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOworICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCJXZWJLaXRVc2VzUGFn
ZUNhY2hlUHJlZmVyZW5jZUtleSIsIDEpOwogfQogCiBpZiAobG9jYXRpb24ucHJvdG9jb2wgIT0g
Imh0dHBzOiIpCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaW1hZ2Ut
bG9hZC1pbi1zdWJmcmFtZS11bmxvYWQtaGFuZGxlci5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9pbWFnZS1sb2FkLWluLXN1YmZyYW1lLXVubG9h
ZC1oYW5kbGVyLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9pbWFnZS1sb2FkLWluLXN1YmZyYW1lLXVubG9hZC1oYW5kbGVyLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSw5IEBACiA8aHRtbD4KIDxib2R5PgogPHNjcmlwdD4K
LSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
d2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CiAgICAgfQogICAgIAogICAgIGZ1bmN0aW9uIHRlc3QoKSB7CkBAIC0xMiw4ICsxMiw4IEBA
CiAgICAgCiAgICAgZnVuY3Rpb24gZmluaXNoKCkgewogICAgICAgICBzZXRUaW1lb3V0KGZ1bmN0
aW9uKCkgewotICAgICAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CiAgICAgICAgIH0sIDMwMCk7CiAgICAgfQogPC9zY3JpcHQ+CkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vaW1hZ2UtbG9hZC1pbi11bmxvYWQtaGFu
ZGxlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlv
bi9pbWFnZS1sb2FkLWluLXVubG9hZC1oYW5kbGVyLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9pbWFnZS1sb2FkLWluLXVubG9hZC1o
YW5kbGVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsOSArNiw5IEBAIHZhciB0ZXN0Q2FsbGVk
ID0gZmFsc2U7CiAKIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgaWYgKCF0ZXN0Q2FsbGVkKSB7Ci0g
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICB9CiAgICAgICAgIHRlc3RDYWxsZWQg
PSB0cnVlOwogICAgICAgICByZXR1cm47CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vamF2YXNjcmlwdGxpbmstYmFzaWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vamF2YXNjcmlwdGxpbmstYmFzaWMuaHRtbAkocmV2
aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2phdmFz
Y3JpcHRsaW5rLWJhc2ljLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvdGVzdGNvZGUuanMiPjwv
c2NyaXB0PgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQot
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICBydW5C
YXNpY1Rlc3QoInJlc291cmNlcy9qYXZhc2NyaXB0bGluay5odG1sIiwgIm5vbmUiKTsKIDwvc2Ny
aXB0PgogVGhpcyBwYWdlIGp1c3Qga2lja3Mgb2ZmIGEgdGVzdCwgYW5kIHNob3VsZCBub3QgYXBw
ZWFyIGluIHRoZSBleHBlY3RlZCB0ZXN0IG91dHB1dC4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9qYXZhc2NyaXB0bGluay1nb2JhY2suaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vamF2YXNjcmlwdGxpbmstZ29iYWNr
Lmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9qYXZhc2NyaXB0bGluay1nb2JhY2suaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsx
LDcgQEAKIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc291cmNlcy90ZXN0
Y29kZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwogICAgIHJ1bkJhY2tUZXN0KCJyZXNvdXJjZXMvamF2YXNjcmlwdGxpbmsuaHRtbCIsIDEsICJu
b25lIik7CiA8L3NjcmlwdD4KIFRoaXMgcGFnZSBqdXN0IGtpY2tzIG9mZiBhIHRlc3QsIGFuZCBz
aG91bGQgbm90IGFwcGVhciBpbiB0aGUgZXhwZWN0ZWQgdGVzdCBvdXRwdXQuCkluZGV4OiBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vamF2YXNjcmlwdGxpbmstc3ViZnJhbWVsb2Fk
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2ph
dmFzY3JpcHRsaW5rLXN1YmZyYW1lbG9hZC5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vamF2YXNjcmlwdGxpbmstc3ViZnJhbWVsb2Fk
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvdGVzdGNvZGUuanMiPjwvc2NyaXB0PgogPHNjcmlw
dD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICBydW5Mb2FkQ2hpbGRGcmFtZVRl
c3QoInJlc291cmNlcy9qYXZhc2NyaXB0bGluay5odG1sIik7CiA8L3NjcmlwdD4KIFRoaXMgcGFn
ZSBqdXN0IGtpY2tzIG9mZiBhIHRlc3QsIGFuZCBzaG91bGQgbm90IGFwcGVhciBpbiB0aGUgZXhw
ZWN0ZWQgdGVzdCBvdXRwdXQuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vbG9ja2VkaGlzdG9yeS1pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25hdmlnYXRpb24vbG9ja2VkaGlzdG9yeS1pZnJhbWUuaHRtbAkocmV2aXNpb24g
MTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL2xvY2tlZGhpc3Rv
cnktaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsOCArMiw4IEBACiA8aGVhZD4KIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvZG9jdW1lbnQtbG9jYXRpb24uanMiPjwvc2NyaXB0PgogPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEJh
Y2tGb3J3YXJkTGlzdCgpOwotbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwordGVz
dFJ1bm5lci5kdW1wQmFja0ZvcndhcmRMaXN0KCk7Cit0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
IAogdmFyIG15RnJhbWU7CiBmdW5jdGlvbiBteUNhbGxiYWNrRnVuY3Rpb24oKSB7CkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vbWV0YXJlZGlyZWN0LWJhc2ljLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL21ldGFyZWRp
cmVjdC1iYXNpYy5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vbWV0YXJlZGlyZWN0LWJhc2ljLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsNyArMSw3IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJj
ZXMvdGVzdGNvZGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKICAgICBydW5CYXNpY1Rlc3QoInJlc291cmNlcy9tZXRhcmVkaXJlY3QuaHRtbCIs
ICJub25lIik7CiA8L3NjcmlwdD4KIFRoaXMgcGFnZSBqdXN0IGtpY2tzIG9mZiBhIHRlc3QsIGFu
ZCBzaG91bGQgbm90IGFwcGVhciBpbiB0aGUgZXhwZWN0ZWQgdGVzdCBvdXRwdXQuCkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vbWV0YXJlZGlyZWN0LWZyYW1lcy5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9tZXRhcmVk
aXJlY3QtZnJhbWVzLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9tZXRhcmVkaXJlY3QtZnJhbWVzLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsNyArMSw3IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNv
dXJjZXMvdGVzdGNvZGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKICAgICBydW5CYXNpY1Rlc3QoInJlc291cmNlcy9mcmFtZXNldC5wbD9mcmFt
ZVVSTD1tZXRhcmVkaXJlY3QuaHRtbCIsICJub25lIik7CiA8L3NjcmlwdD4KIFRoaXMgcGFnZSBq
dXN0IGtpY2tzIG9mZiBhIHRlc3QsIGFuZCBzaG91bGQgbm90IGFwcGVhciBpbiB0aGUgZXhwZWN0
ZWQgdGVzdCBvdXRwdXQuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24v
bWV0YXJlZGlyZWN0LWdvYmFjay5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9tZXRhcmVkaXJlY3QtZ29iYWNrLmh0bWwJKHJldmlzaW9uIDEyNDY5
MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9tZXRhcmVkaXJlY3QtZ29i
YWNrLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvdGVzdGNvZGUuanMiPjwvc2NyaXB0PgogPHNj
cmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICBydW5CYWNrVGVzdCgicmVz
b3VyY2VzL21ldGFyZWRpcmVjdC5odG1sIiwgMSwgIm5vbmUiKTsKIDwvc2NyaXB0PgogVGhpcyBw
YWdlIGp1c3Qga2lja3Mgb2ZmIGEgdGVzdCwgYW5kIHNob3VsZCBub3QgYXBwZWFyIGluIHRoZSBl
eHBlY3RlZCB0ZXN0IG91dHB1dC4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9tZXRhcmVkaXJlY3Qtc3ViZnJhbWVsb2FkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL21ldGFyZWRpcmVjdC1zdWJmcmFtZWxvYWQuaHRt
bAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L21ldGFyZWRpcmVjdC1zdWJmcmFtZWxvYWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsx
LDcgQEAKIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc291cmNlcy90ZXN0
Y29kZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwogICAgIHJ1bkxvYWRDaGlsZEZyYW1lVGVzdCgicmVzb3VyY2VzL21ldGFyZWRpcmVjdC5odG1s
Iik7CiA8L3NjcmlwdD4KIFRoaXMgcGFnZSBqdXN0IGtpY2tzIG9mZiBhIHRlc3QsIGFuZCBzaG91
bGQgbm90IGFwcGVhciBpbiB0aGUgZXhwZWN0ZWQgdGVzdCBvdXRwdXQuCkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vbXVsdGlwbGUtYmFjay1mb3J3YXJkLWVudHJpZXMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vbXVs
dGlwbGUtYmFjay1mb3J3YXJkLWVudHJpZXMuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL211bHRpcGxlLWJhY2stZm9yd2FyZC1lbnRy
aWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsMTQgKzIsMTQgQEAKIDxoZWFkPgogPHRpdGxl
Pk11bHRpcGxlIEJhY2svRm9yd2FyZCBFbnRyaWVzPC90aXRsZT4KIDxzY3JpcHQ+Ci0gICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBCYWNr
Rm9yd2FyZExpc3QoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQmFja0ZvcndhcmRMaXN0KCk7Cisg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KICAgICBmdW5jdGlvbiBs
b2FkRG9uZSgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CiAgICAgfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vbmF2aWdhdGlvbi1pbnRlcnJ1cHRlZC1ieS1mcmFnbWVudC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLWlu
dGVycnVwdGVkLWJ5LWZyYWdtZW50Lmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLWludGVycnVwdGVkLWJ5LWZyYWdt
ZW50Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw4IEBACiA8c2NyaXB0PgotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBCYWNrRm9yd2FyZExpc3QoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQmFja0ZvcndhcmRMaXN0KCk7Cisg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CiB9CiBvbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICB3aW5kb3cubG9jYXRpb24gPSAncmVz
b3VyY2VzL3Nsb3ctcmVzb3VyY2UucGw/ZGVsYXk9MTAwJzsKQEAgLTE1LDggKzE1LDggQEAgb25o
YXNoY2hhbmdlID0gZnVuY3Rpb24oKSB7CiAKIGZ1bmN0aW9uIGRvbmUoKSB7CiAgICAgY29uc29s
ZS5sb2coJ1Zpc2l0ZWQgZnJhZ21lbnQgYW5kIHdhaXRlZC4nKTsKLSAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CiAgICAgfQogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vbmF2aWdhdGlvbi1yZWRpcmVjdC1zY2hlZHVsZS1jcmFzaC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLXJl
ZGlyZWN0LXNjaGVkdWxlLWNyYXNoLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9uYXZpZ2F0aW9uLXJlZGlyZWN0LXNjaGVkdWxlLWNy
YXNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBACiBzdW1tYXJ5IHsgZm9udC1m
YW1pbHk6IEE7IH0KIDwvc3R5bGU+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKIH0KIAogZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyAKQEAgLTE3LDggKzE3
LDggQEAgZnVuY3Rpb24gbG9hZENvbXBsZXRlKCkgeyAKIH0KIAogZnVuY3Rpb24gZmluaXNoKCkg
ewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogPC9zY3JpcHQ+CiA8Ym9keSBvbmxv
YWQ9ImxvYWRDb21wbGV0ZSgpIj4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9uZXctd2luZG93LXJlZGlyZWN0LWhpc3RvcnkuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vbmV3LXdpbmRvdy1yZWRpcmVjdC1oaXN0b3J5
Lmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9uZXctd2luZG93LXJlZGlyZWN0LWhpc3RvcnkuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSwxMCArMSwxMCBAQAogPGh0bWw+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldENhbk9wZW5XaW5kb3dzKCk7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgpOwotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVu
bmVyLnNldENhbk9wZW5XaW5kb3dzKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQmFja0ZvcndhcmRM
aXN0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIGNyZWF0ZU5ld1dpbmRvdygpIHsKSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9uby1yZWZlcnJlci1yZXNldC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9uby1yZWZlcnJl
ci1yZXNldC5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vbm8tcmVmZXJyZXItcmVzZXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCwx
MCArOCwxMCBAQCBUaGlzIHRlc3RzIHdoZXRoZXIgcmVmZXJyZXIgaW5mb3JtYXRpb24gCiA8c2Ny
aXB0PgogICAgIHdpbmRvdy5uYW1lID0gImNvbnNvbGVXaW5kb3ciOwogICAgIHdpbmRvdy5ub3Jl
ZmVycmVyU3RlcERvbmUgPSBmYWxzZTsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0Q2FuT3BlbldpbmRvd3ModHJ1ZSk7Ci0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRl
c3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3ModHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwogICAgIH0KIAogICAgIHZhciB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgibGluayIpOw0KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlv
bi9uby1yZWZlcnJlci1zYW1lLXdpbmRvdy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9uby1yZWZlcnJlci1zYW1lLXdpbmRvdy5odG1sCShyZXZp
c2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vbm8tcmVm
ZXJyZXItc2FtZS13aW5kb3cuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiw5ICs2LDkgQEAgb2Yg
dGhlIHJlZmVycmVyIGFuZCB3aW5kb3cub3BlbmVyIHNob3VsZAogPGEgaWQ9ImxpbmsiIGhyZWY9
InJlc291cmNlcy9uby1yZWZlcnJlci1zYW1lLXdpbmRvdy1oZWxwZXIucGhwIiByZWw9Im5vcmVm
ZXJyZXIiPlN0YXJ0IG5vIHJlZmVycmVyIHRlc3Q8L2E+CiA8c2NyaXB0PgogICAgIHdpbmRvdy5u
YW1lID0gImNvbnNvbGVXaW5kb3ciOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICB2YXIgdGFyZ2V0ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxpbmsiKTsNCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vbm8tcmVmZXJyZXItc3ViZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vbm8tcmVmZXJyZXItc3ViZnJhbWUuaHRt
bAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L25vLXJlZmVycmVyLXN1YmZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBA
IFRoaXMgdGVzdHMgYmVoYXZpb3Igb2YgIm5vcmVmZXJyZXIiIGxpbmsKIDxpZnJhbWUgaWQ9InN1
YmZyYW1lIiBzcmM9ImFib3V0OmJsYW5rIj48L2lmcmFtZT4KIDxzY3JpcHQ+CiAgICAgd2luZG93
Lm5hbWUgPSAiY29uc29sZVdpbmRvdyI7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAogICAgIHZhciB0YXJnZXQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGluayIpOw0KSW5kZXg6IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9uby1yZWZlcnJlci10YXJnZXQtYmxhbmsuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vbm8tcmVmZXJyZXItdGFyZ2V0
LWJsYW5rLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9uby1yZWZlcnJlci10YXJnZXQtYmxhbmsuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNSwxMCArNSwxMCBAQCBvZiB0aGUgcmVmZXJyZXIgYW5kIHdpbmRvdy5vcGVuZXIgc2hvdWxk
CiA8YSBpZD0ibGluayIgaHJlZj0icmVzb3VyY2VzL25vLXJlZmVycmVyLWhlbHBlci5waHAiIHJl
bD0ibm9yZWZlcnJlciIgdGFyZ2V0PSJfYmxhbmsiPlN0YXJ0IG5vIHJlZmVycmVyIHRlc3Q8L2E+
CiA8c2NyaXB0PgogICAgIHdpbmRvdy5uYW1lID0gImNvbnNvbGVXaW5kb3ciOwotICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRDYW5PcGVu
V2luZG93cyh0cnVlKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cyh0cnVlKTsK
KyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAgdmFyIHRh
cmdldCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsaW5rIik7DQpJbmRleDogTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL29ubG9hZC1uYXZpZ2F0aW9uLWlmcmFtZS0yLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL29ubG9hZC1u
YXZpZ2F0aW9uLWlmcmFtZS0yLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9vbmxvYWQtbmF2aWdhdGlvbi1pZnJhbWUtMi5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC00LDEwICs0LDEwIEBACiAKIGZ1bmN0aW9uIHJ1blRlc3QoKQogewot
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQmFja0ZvcndhcmRMaXN0KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgibXlGb3JtIikuc3VibWl0KCk7CkBAIC0xNyw4ICsxNyw4
IEBAIGZ1bmN0aW9uIGZyYW1lTG9hZGVkKCkKIHsKICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoIm15RnJhbWUiKS5jb250ZW50RG9jdW1lbnQuVVJMID09PSAiYWJvdXQ6YmxhbmsiKQog
ICAgICAgICByZXR1cm47Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIDwvc2Ny
aXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL29ubG9hZC1uYXZp
Z2F0aW9uLWlmcmFtZS10aW1lb3V0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL29ubG9hZC1uYXZpZ2F0aW9uLWlmcmFtZS10aW1lb3V0Lmh0bWwJ
KHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9v
bmxvYWQtbmF2aWdhdGlvbi1pZnJhbWUtdGltZW91dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00
LDEwICs0LDEwIEBACiAKIGZ1bmN0aW9uIHJ1blRlc3QoKQogewotICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEJh
Y2tGb3J3YXJkTGlzdCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQmFja0Zvcndh
cmRMaXN0KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICB2YXIgZGl2RWxtID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CkBAIC0zMSw4ICszMSw4IEBAIGZ1bmN0aW9uIGZyYW1l
TG9hZGVkKCkKIHsKICAgICBpZiAoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm15RnJhbWUiKS5j
b250ZW50RG9jdW1lbnQuVVJMID09PSAiYWJvdXQ6YmxhbmsiKQogICAgICAgICByZXR1cm47Ci0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL29ubG9hZC1uYXZpZ2F0aW9uLWlmcmFtZS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9vbmxvYWQt
bmF2aWdhdGlvbi1pZnJhbWUuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL29ubG9hZC1uYXZpZ2F0aW9uLWlmcmFtZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC00LDEwICs0LDEwIEBACiAKIGZ1bmN0aW9uIHJ1blRlc3QoKQogewotICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRp
bERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQmFja0ZvcndhcmRMaXN0KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICB2YXIg
Zm9ybSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJteUZvcm0iKTsKQEAgLTI4LDggKzI4LDgg
QEAgZnVuY3Rpb24gZnJhbWVMb2FkZWQoKQogewogICAgIGlmIChkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgibXlGcmFtZSIpLmNvbnRlbnREb2N1bWVudC5VUkwgPT09ICJhYm91dDpibGFuayIpCiAg
ICAgICAgIHJldHVybjsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGFyc2VkLWlmcmFt
ZS1keW5hbWljLWZvcm0tYmFjay1lbnRyeS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wYXJzZWQtaWZyYW1lLWR5bmFtaWMtZm9ybS1iYWNrLWVu
dHJ5Lmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2
aWdhdGlvbi9wYXJzZWQtaWZyYW1lLWR5bmFtaWMtZm9ybS1iYWNrLWVudHJ5Lmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsMTAgKzEsMTAgQEAKIDxodG1sPgogPHNjcmlwdD4KIAotaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQmFja0ZvcndhcmRMaXN0
KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1
bm5lci5kdW1wQmFja0ZvcndhcmRMaXN0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CiB9CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3BpbmctY29va2llLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3BpbmctY29va2llLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9waW5nLWNvb2tpZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC02LDEwICs2LDEwIEBAIHZhciB0ZXN0Q2FsbGVkID0gZmFsc2U7CiAKIGZ1
bmN0aW9uIHRlc3QoKSB7CiAgICAgaWYgKCF0ZXN0Q2FsbGVkKSB7Ci0gICAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJy
aWRlUHJlZmVyZW5jZSgiV2ViS2l0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkIiwgMSk7Ci0gICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SHlw
ZXJsaW5rQXVkaXRpbmdFbmFibGVkIiwgMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKICAgICAgICAgfQogICAgICAgICB0ZXN0Q2FsbGVkID0gdHJ1ZTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtMjEsMTMgKzIxLDEzIEBAIGZ1bmN0aW9uIHRlc3QoKSB7CiAgICAgICAg
IHhoci5zZW5kKG51bGwpOwogICAgICAgICBpZiAoeGhyLnN0YXR1cyAhPSAyMDApIHsKICAgICAg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJib2R5IilbMF0uYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoIkZBSUxFRDogY29va2llIG5vdCBzZXQiKSk7Ci0g
ICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKICAgICAgICAgfQogICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudHNCeVRhZ05hbWUoImJvZHkiKVswXS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZSgiRkFJTEVEOiBjb29raWUgbm90IHNldCIpKTsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgfQogCiAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRl
cikgewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BpbmctY3Jvc3Mt
b3JpZ2luLWZyb20taHR0cHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vcGluZy1jcm9zcy1vcmlnaW4tZnJvbS1odHRwcy5odG1sCShyZXZpc2lv
biAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGluZy1jcm9z
cy1vcmlnaW4tZnJvbS1odHRwcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDkgKzIsOSBAQAog
PHRpdGxlPlBpbmc8L3RpdGxlPgogPHNjcmlwdD4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKIH0KIAogaWYgKGxvY2F0aW9uLnByb3RvY29sICE9ICJodHRwczoiKQpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3BpbmctY3Jvc3Mtb3JpZ2luLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bpbmct
Y3Jvc3Mtb3JpZ2luLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9waW5nLWNyb3NzLW9yaWdpbi5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC02LDEwICs2LDEwIEBAIHZhciB0ZXN0Q2FsbGVkID0gZmFsc2U7CiAKIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgaWYgKCF0ZXN0Q2FsbGVkKSB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5j
ZSgiV2ViS2l0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkIiwgMSk7Ci0gICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SHlwZXJsaW5rQXVkaXRp
bmdFbmFibGVkIiwgMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
ICAgICAgICAgfQogICAgICAgICB0ZXN0Q2FsbGVkID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOwpJ
bmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bpbmctc2FtZS1vcmlnaW4u
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcGlu
Zy1zYW1lLW9yaWdpbi5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vcGluZy1zYW1lLW9yaWdpbi5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC02LDEwICs2LDEwIEBAIHZhciB0ZXN0Q2FsbGVkID0gZmFsc2U7CiAKIGZ1bmN0aW9uIHRlc3Qo
KSB7CiAgICAgaWYgKCF0ZXN0Q2FsbGVkKSB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5j
ZSgiV2ViS2l0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkIiwgMSk7Ci0gICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAg
ICAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0SHlwZXJsaW5rQXVkaXRp
bmdFbmFibGVkIiwgMSk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
ICAgICAgICAgfQogICAgICAgICB0ZXN0Q2FsbGVkID0gdHJ1ZTsKICAgICAgICAgcmV0dXJuOwpJ
bmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3QtMzAxLXJlc3BvbnNl
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bv
c3QtMzAxLXJlc3BvbnNlLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0LTMwMS1yZXNwb25zZS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0yLDkgKzIsOSBAQAogPGhlYWQ+CiA8c2NyaXB0PgogdmFyIGRvVGVzdCA9IGZ1bmN0aW9u
ICgpIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZm9ybTEiKS5zdWJtaXQoKTsKIH07CkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdC0zMDItcmVzcG9uc2UuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdC0zMDItcmVzcG9uc2Uu
aHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3Bvc3QtMzAyLXJlc3BvbnNlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsOSArMiw5IEBA
CiA8aGVhZD4KIDxzY3JpcHQ+CiB2YXIgZG9UZXN0ID0gZnVuY3Rpb24gKCkgewotICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAg
ICAgd2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB3aW5kb3cudGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCJmb3JtMSIpLnN1Ym1pdCgpOwogfTsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2
aWdhdGlvbi9wb3N0LTMwMy1yZXNwb25zZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0LTMwMy1yZXNwb25zZS5odG1sCShyZXZpc2lvbiAx
MjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdC0zMDMtcmVz
cG9uc2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw5ICsyLDkgQEAKIDxoZWFkPgogPHNjcmlw
dD4KIHZhciBkb1Rlc3QgPSBmdW5jdGlvbiAoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewotICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB3aW5kb3cudGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKICAgICB9CiAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZvcm0xIikuc3VibWl0
KCk7CiB9OwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3QtMzA3
LXJlc3BvbnNlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3Bvc3QtMzA3LXJlc3BvbnNlLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0LTMwNy1yZXNwb25zZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yLDkgKzIsOSBAQAogPGhlYWQ+CiA8c2NyaXB0PgogdmFyIGRvVGVzdCA9
IGZ1bmN0aW9uICgpIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0g
ICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAg
IHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZm9ybTEiKS5zdWJtaXQoKTsKIH07CkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdC1iYXNpYy5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0LWJhc2ljLmh0bWwJ
KHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9w
b3N0LWJhc2ljLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSw5IEBACiA8c2NyaXB0Pgot
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5jbGVhckJhY2tGb3J3YXJkTGlz
dCgpOwotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgpOwor
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICB0ZXN0UnVubmVyLmNs
ZWFyQmFja0ZvcndhcmRMaXN0KCk7CisgICAgICB0ZXN0UnVubmVyLmR1bXBCYWNrRm9yd2FyZExp
c3QoKTsKICAgIH0KICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gJ3Jlc291cmNlcy9wYWdlLXRo
YXQtcG9zdHMuaHRtbCc7CiA8L3NjcmlwdD4gIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3Bvc3QtZnJhbWVzLWdvYmFjazEuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdC1mcmFtZXMtZ29iYWNrMS5odG1sCShy
ZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcG9z
dC1mcmFtZXMtZ29iYWNrMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDExICsyLDExIEBACiA8
aHRtbD4KIDxib2R5PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIud2FpdFVudGlsRG9uZSgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBCYWNr
Rm9yd2FyZExpc3QoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Cisg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQmFja0Zv
cndhcmRMaXN0KCk7CiB9CiAgICAKIG9ubG9hZCA9IGZ1bmN0aW9uKCkKQEAgLTE0LDggKzE0LDgg
QEAgb25sb2FkID0gZnVuY3Rpb24oKQogICAgIGlmIChzZXNzaW9uU3RvcmFnZS5kaWROYXYpIHsK
ICAgICAgICAgZGVsZXRlIHNlc3Npb25TdG9yYWdlLmRpZE5hdjsKICAgICAgICAgZGVsZXRlIHNl
c3Npb25TdG9yYWdlLnRvcFNob3VsZE5hdkFuZEdvQmFjazsKLSAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgfSBlbHNlIHsKICAgICAgICAgc2Vzc2lvblN0
b3JhZ2UudG9wU2hvdWxkTmF2QW5kR29CYWNrID0gdHJ1ZTsKICAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ3RoZS1mb3JtJykuc3VibWl0KCk7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vcG9zdC1mcmFtZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdC1mcmFtZXMuaHRtbAkocmV2aXNpb24gMTI0
NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3QtZnJhbWVzLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSw5IEBACiA8c2NyaXB0PgotICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1Rl
eHQoKTsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBCYWNrRm9yd2FyZExpc3QoKTsKKyAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgIHRl
c3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgpOwogICAg
fQogPC9zY3JpcHQ+ICAKIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L3Bvc3QtZ29iYWNrMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9wb3N0LWdvYmFjazEuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3QtZ29iYWNrMS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDEwICsxLDEwIEBACiA8c2NyaXB0PgogICBzZXNzaW9uU3RvcmFnZS5mb3JtVGFy
Z2V0U2hvdWxkTmF2QW5kR29CYWNrID0gdHJ1ZTsKLSAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuY2xlYXJCYWNrRm9yd2FyZExpc3QoKTsKLSAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBCYWNrRm9yd2FyZExpc3QoKTsKKyAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworICAgICAgdGVzdFJ1bm5lci5jbGVhckJhY2tGb3J3YXJkTGlzdCgpOworICAg
ICAgdGVzdFJ1bm5lci5kdW1wQmFja0ZvcndhcmRMaXN0KCk7CiAgIH0KICAgd2luZG93LmxvY2F0
aW9uLmhyZWYgPSAncmVzb3VyY2VzL3BhZ2UtdGhhdC1wb3N0cy5odG1sJzsKIDwvc2NyaXB0PiAg
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdC1nb2JhY2syLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3Qt
Z29iYWNrMi5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vcG9zdC1nb2JhY2syLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3
IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvdGVzdGNv
ZGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
ICAgICBydW5CYWNrVGVzdCgicmVzb3VyY2VzL3N1Y2Nlc3MyMDAuaHRtbCIsIDIsICJwb3N0Iik7
CiA8L3NjcmlwdD4KIFRoaXMgcGFnZSBqdXN0IGtpY2tzIG9mZiBhIHRlc3QsIGFuZCBzaG91bGQg
bm90IGFwcGVhciBpbiB0aGUgZXhwZWN0ZWQgdGVzdCBvdXRwdXQuCkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdC1nb2JhY2stc2FtZS11cmwuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdC1nb2JhY2stc2Ft
ZS11cmwuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3Bvc3QtZ29iYWNrLXNhbWUtdXJsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIs
MTIgKzIsMTIgQEAKIDxoZWFkPgogPHNjcmlwdD4KICAgICAKLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQmFja0ZvcndhcmRM
aXN0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91
dFRlc3RDb250cm9sbGVyLnF1ZXVlTG9hZCgicmVzb3VyY2VzL3Bvc3QtZ29iYWNrLXNhbWUtdXJs
LnBocCIpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlTG9hZGluZ1NjcmlwdCgic3Vi
bWl0Rm9ybSgpIik7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVCYWNrTmF2aWdhdGlv
bigxKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEJhY2tG
b3J3YXJkTGlzdCgpOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5u
ZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvcG9zdC1nb2JhY2stc2FtZS11cmwucGhwIik7CisgICAg
dGVzdFJ1bm5lci5xdWV1ZUxvYWRpbmdTY3JpcHQoInN1Ym1pdEZvcm0oKSIpOworICAgIHRlc3RS
dW5uZXIucXVldWVCYWNrTmF2aWdhdGlvbigxKTsKIH0KICAgICAKIDwvc2NyaXB0PgpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3RyZWRpcmVjdC1mcmFtZXMtZ29i
YWNrMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlv
bi9wb3N0cmVkaXJlY3QtZnJhbWVzLWdvYmFjazEuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bvc3RyZWRpcmVjdC1mcmFtZXMtZ29i
YWNrMS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDE5ICsyLDE5IEBACiA8aHRtbD4KIDxib2R5
PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVu
dGlsRG9uZSgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBCYWNrRm9yd2FyZExpc3Qo
KTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQmFja0ZvcndhcmRMaXN0KCk7
CiAgfQogICAgCiBvbmxvYWQgPSBmdW5jdGlvbigpCiB7CiAgICAgaWYgKHNlc3Npb25TdG9yYWdl
LmRpZE5hdikgewogICAgICAgICBkZWxldGUgc2Vzc2lvblN0b3JhZ2UuZGlkTmF2OwotICAgICAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9IGVsc2UgewogICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGhlLWZvcm0nKS5zdWJtaXQoKTsKICAgICB9
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdHJlZGlyZWN0LWZy
YW1lcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlv
bi9wb3N0cmVkaXJlY3QtZnJhbWVzLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0cmVkaXJlY3QtZnJhbWVzLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTEsOCArMSw4IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
c3JjPSJyZXNvdXJjZXMvdGVzdGNvZGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLSAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxk
RnJhbWVzQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1l
c0FzVGV4dCgpOwogICAgIH0KICAgICBydW5CYXNpY1Rlc3QoInJlc291cmNlcy9mcmFtZXNldC5w
bD9mcmFtZVVSTD1zdWNjZXNzMjAwLmh0bWwiLCAicG9zdHJlZGlyZWN0Iik7CiA8L3NjcmlwdD4K
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wb3N0cmVkaXJlY3QtZ29i
YWNrMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlv
bi9wb3N0cmVkaXJlY3QtZ29iYWNrMi5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdHJlZGlyZWN0LWdvYmFjazIuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
IiBzcmM9InJlc291cmNlcy90ZXN0Y29kZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIHJ1bkJhY2tUZXN0KCJyZXNvdXJjZXMvc3VjY2Vz
czIwMC5odG1sIiwgMiwgInBvc3RyZWRpcmVjdCIpOwogPC9zY3JpcHQ+CiBUaGlzIHBhZ2UganVz
dCBraWNrcyBvZmYgYSB0ZXN0LCBhbmQgc2hvdWxkIG5vdCBhcHBlYXIgaW4gdGhlIGV4cGVjdGVk
IHRlc3Qgb3V0cHV0LgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Bv
c3RyZWRpcmVjdC1yZWxvYWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vcG9zdHJlZGlyZWN0LXJlbG9hZC5odG1sCShyZXZpc2lvbiAxMjQ2OTAp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcG9zdHJlZGlyZWN0LXJlbG9h
ZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPHNjcmlwdCB0eXBlPSJ0ZXh0
L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL3Rlc3Rjb2RlLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgcnVuUmVkaXJlY3RSZWxvYWRU
ZXN0KCJyZXNvdXJjZXMvcmVkaXJlY3QtcmVsb2FkLmh0bWwiKTsKIDwvc2NyaXB0PgogVGhpcyBw
YWdlIGp1c3Qga2lja3Mgb2ZmIGEgdGVzdCwgYW5kIHNob3VsZCBub3QgYXBwZWFyIGluIHRoZSBl
eHBlY3RlZCB0ZXN0IG91dHB1dC4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9wdXNoc3RhdGUtdXBkYXRlcy1yZWZlcnJlci5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9wdXNoc3RhdGUtdXBkYXRlcy1yZWZlcnJlci5o
dG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vcHVzaHN0YXRlLXVwZGF0ZXMtcmVmZXJyZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3
ICsxLDcgQEAKIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0g
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAogb25s
b2FkID0gZnVuY3Rpb24oKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vcmVkaXJlY3QzMDItYmFzaWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vcmVkaXJlY3QzMDItYmFzaWMuaHRtbAkocmV2aXNpb24gMTI0Njkw
KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlZGlyZWN0MzAyLWJhc2lj
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvdGVzdGNvZGUuanMiPjwvc2NyaXB0PgogPHNjcmlw
dD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICBydW5CYXNpY1Rlc3QoInJlc291
cmNlcy9yZWRpcmVjdDMwMi5wbCIsICJub25lIik7CiA8L3NjcmlwdD4KIFRoaXMgcGFnZSBqdXN0
IGtpY2tzIG9mZiBhIHRlc3QsIGFuZCBzaG91bGQgbm90IGFwcGVhciBpbiB0aGUgZXhwZWN0ZWQg
dGVzdCBvdXRwdXQuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVk
aXJlY3QzMDItZnJhbWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3JlZGlyZWN0MzAyLWZyYW1lcy5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVkaXJlY3QzMDItZnJhbWVzLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvdGVzdGNvZGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4K
LSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICBydW5CYXNpY1Rlc3QoInJlc291cmNl
cy9mcmFtZXNldC5wbD9mcmFtZVVSTD1yZWRpcmVjdDMwMi5wbCIsICJub25lIik7CiA8L3Njcmlw
dD4KIFRoaXMgcGFnZSBqdXN0IGtpY2tzIG9mZiBhIHRlc3QsIGFuZCBzaG91bGQgbm90IGFwcGVh
ciBpbiB0aGUgZXhwZWN0ZWQgdGVzdCBvdXRwdXQuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vcmVkaXJlY3QzMDItZ29iYWNrLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlZGlyZWN0MzAyLWdvYmFjay5odG1sCShy
ZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVk
aXJlY3QzMDItZ29iYWNrLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvdGVzdGNvZGUuanMiPjwv
c2NyaXB0PgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQot
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICBydW5C
YWNrVGVzdCgicmVzb3VyY2VzL3JlZGlyZWN0MzAyLnBsIiwgMSwgIm5vbmUiKTsKIDwvc2NyaXB0
PgogVGhpcyBwYWdlIGp1c3Qga2lja3Mgb2ZmIGEgdGVzdCwgYW5kIHNob3VsZCBub3QgYXBwZWFy
IGluIHRoZSBleHBlY3RlZCB0ZXN0IG91dHB1dC4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9yZWRpcmVjdDMwMi1tZXRhcmVkaXJlY3QuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVkaXJlY3QzMDItbWV0YXJlZGly
ZWN0Lmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2
aWdhdGlvbi9yZWRpcmVjdDMwMi1tZXRhcmVkaXJlY3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSw3ICsxLDcgQEAKIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc291cmNl
cy90ZXN0Y29kZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogICAgIHJ1bkJhc2ljVGVzdCgicmVzb3VyY2VzL3JlZGlyZWN0MzAyLW1ldGFyZWRp
cmVjdC5wbCIsICJub25lIik7CiA8L3NjcmlwdD4KIFRoaXMgcGFnZSBqdXN0IGtpY2tzIG9mZiBh
IHRlc3QsIGFuZCBzaG91bGQgbm90IGFwcGVhciBpbiB0aGUgZXhwZWN0ZWQgdGVzdCBvdXRwdXQu
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVkaXJlY3QzMDItc3Vi
ZnJhbWVsb2FkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3JlZGlyZWN0MzAyLXN1YmZyYW1lbG9hZC5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVkaXJlY3QzMDItc3ViZnJhbWVs
b2FkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8c2NyaXB0IHR5cGU9InRl
eHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvdGVzdGNvZGUuanMiPjwvc2NyaXB0PgogPHNj
cmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICBydW5Mb2FkQ2hpbGRGcmFt
ZVRlc3QoInJlc291cmNlcy9yZWRpcmVjdDMwMi5wbCIpOwogPC9zY3JpcHQ+CiBUaGlzIHBhZ2Ug
anVzdCBraWNrcyBvZmYgYSB0ZXN0LCBhbmQgc2hvdWxkIG5vdCBhcHBlYXIgaW4gdGhlIGV4cGVj
dGVkIHRlc3Qgb3V0cHV0LgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L3JlZGlyZWN0LWN5Y2xlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3JlZGlyZWN0LWN5Y2xlLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWRpcmVjdC1jeWNsZS5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zLDggKzMsOCBAQAogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
PgogZnVuY3Rpb24gc3RhcnRUZXN0KCkKIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIucXVldWVMb2FkKCJyZXNvdXJjZXMv
cmVkaXJlY3QtY3ljbGUtMS5wbCIpOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAg
IHRlc3RSdW5uZXIucXVldWVMb2FkKCJyZXNvdXJjZXMvcmVkaXJlY3QtY3ljbGUtMS5wbCIpOwog
fQogPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmln
YXRpb24vcmVkaXJlY3QtbG9hZC1uby1mb3JtLXJlc3RvcmF0aW9uLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlZGlyZWN0LWxvYWQtbm8tZm9y
bS1yZXN0b3JhdGlvbi5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vcmVkaXJlY3QtbG9hZC1uby1mb3JtLXJlc3RvcmF0aW9uLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTgsMTAgKzgsMTAgQEAKICAgICAgICAgCiAgICAgICAgIGZ1bmN0
aW9uIHRlc3QoKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7Ci0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBCYWNrRm9y
d2FyZExpc3QoKTsKLSAgICAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBCYWNrRm9yd2FyZExpc3QoKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHNldFRpbWVvdXQodGVz
dDIsIDApOwogICAgICAgICB9CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vcmVkaXJlY3Qtb24tYmFjay11cGRhdGVzLWhpc3RvcnktaXRlbS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWRpcmVjdC1vbi1iYWNrLXVw
ZGF0ZXMtaGlzdG9yeS1pdGVtLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWRpcmVjdC1vbi1iYWNrLXVwZGF0ZXMtaGlzdG9yeS1p
dGVtLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsMTAgKzcsMTAgQEAKIC8vIGRvY3VtZW50IGlu
IGhpc3RvcnkuICBTZWUgcmVkaXJlY3Qtb24tYmFjay11cGRhdGVzLWhpc3RvcnktaXRlbS5waHAg
Zm9yIG1vcmUKIC8vIGRldGFpbHMuCiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgpOwotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuZHVtcEJhY2tGb3J3YXJkTGlzdCgp
OworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogb25sb2FkID0gZnVuY3Rpb24o
KSB7CiAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9yZWRpcmVjdC1vbi1yZWxvYWQtdXBkYXRlcy1oaXN0b3J5LWl0ZW0u
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVk
aXJlY3Qtb24tcmVsb2FkLXVwZGF0ZXMtaGlzdG9yeS1pdGVtLmh0bWwJKHJldmlzaW9uIDEyNDY5
MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWRpcmVjdC1vbi1yZWxv
YWQtdXBkYXRlcy1oaXN0b3J5LWl0ZW0uaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNiwxMCArNiwx
MCBAQAogLy8gZG9jdW1lbnQgaXMgbm90IHRyZWF0ZWQgYXMgdGhlIHNhbWUgZG9jdW1lbnQgYXMg
dGhlIG9yaWdpbmFsIGRvY3VtZW50IGluCiAvLyBoaXN0b3J5LiAgU2VlIHJlZGlyZWN0LW9uLXJl
bG9hZC11cGRhdGVzLWhpc3RvcnktaXRlbS5waHAgZm9yIG1vcmUgZGV0YWlscy4KIAotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQmFja0ZvcndhcmRMaXN0
KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1
bm5lci5kdW1wQmFja0ZvcndhcmRMaXN0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CiB9CiBvbmxvYWQgPSBmdW5jdGlvbigpIHsKICAgICBzZXRUaW1lb3V0KGZ1bmN0aW9uKCkg
ewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlZGlyZWN0LXByZXNl
cnZlcy1yZWZlcnJlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9yZWRpcmVjdC1wcmVzZXJ2ZXMtcmVmZXJyZXIuaHRtbAkocmV2aXNpb24gMTI0
NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlZGlyZWN0LXByZXNl
cnZlcy1yZWZlcnJlci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDkgKzIsOSBAQAogPGhlYWQ+
CiA8c2NyaXB0PgogZnVuY3Rpb24gc3RhcnQoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICB2YXIgbGluayA9IGRv
Y3VtZW50LmdldEVsZW1lbnRCeUlkKCJsaW5rIik7CiAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
TW92ZVRvKGxpbmsub2Zmc2V0TGVmdCArIDIsIGxpbmsub2Zmc2V0VG9wICsgMik7CiAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3JlbGF0aXZlYW5jaG9yLWJhc2ljLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlbGF0aXZlYW5jaG9yLWJhc2ljLmh0bWwJKHJl
dmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWxh
dGl2ZWFuY2hvci1iYXNpYy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL3Rlc3Rjb2RlLmpzIj48
L3NjcmlwdD4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
LSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgcnVu
QmFzaWNUZXN0KCJyZXNvdXJjZXMvc3VjY2VzczIwMC5odG1sIiwgInJlbGF0aXZlYW5jaG9yIik7
CiA8L3NjcmlwdD4KIFRoaXMgcGFnZSBqdXN0IGtpY2tzIG9mZiBhIHRlc3QsIGFuZCBzaG91bGQg
bm90IGFwcGVhciBpbiB0aGUgZXhwZWN0ZWQgdGVzdCBvdXRwdXQuCkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVsYXRpdmVhbmNob3ItZnJhbWVzLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlbGF0aXZlYW5jaG9y
LWZyYW1lcy5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vcmVsYXRpdmVhbmNob3ItZnJhbWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEsOSArMSw5IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJyZXNvdXJj
ZXMvdGVzdGNvZGUuanMiPjwvc2NyaXB0PgogPCEtLSAlMjMgYmVsb3cgaXMgYSAjLCB3aGljaCBp
cyBlc2NhcGVkIHNvIHRoZSBhbmNob3IgYXBwbGllcyB0byB0aGUgc3ViZnJhbWUgaW5zdGVhZCBv
ZiB0aGUgZnJhbWVzZXQuIC0tPgogPHNjcmlwdD4KLSAgICBpZih3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVT
Y3JvbGxQb3NpdGlvbnMoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOworICAgIGlmKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVt
cENoaWxkRnJhbWVTY3JvbGxQb3NpdGlvbnMoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CiAgICAgfQogICAgIHJ1bkJhc2ljVGVzdCgicmVzb3VyY2VzL2ZyYW1lc2V0LnBsP2Zy
YW1lVVJMPXN1Y2Nlc3MyMDAuaHRtbCIsICJyZWxhdGl2ZWFuY2hvciIpOwogPC9zY3JpcHQ+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVsYXRpdmVhbmNob3ItZ29i
YWNrLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L3JlbGF0aXZlYW5jaG9yLWdvYmFjay5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVsYXRpdmVhbmNob3ItZ29iYWNrLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJyZXNvdXJjZXMvdGVzdGNvZGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLSAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICBydW5CYWNrVGVzdCgicmVzb3VyY2VzL3N1Y2Nl
c3MyMDAuaHRtbCIsIDEsICJyZWxhdGl2ZWFuY2hvciIpOwogPC9zY3JpcHQ+CiBUaGlzIHBhZ2Ug
anVzdCBraWNrcyBvZmYgYSB0ZXN0LCBhbmQgc2hvdWxkIG5vdCBhcHBlYXIgaW4gdGhlIGV4cGVj
dGVkIHRlc3Qgb3V0cHV0LgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9u
L3JlbG9hZC1zdWJmcmFtZS1mcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWxvYWQtc3ViZnJhbWUtZnJhbWUuaHRtbAkocmV2aXNpb24g
MTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlbG9hZC1zdWJm
cmFtZS1mcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDEwICszLDEwIEBACiA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1
ZUxvYWQoInJlc291cmNlcy9yZWxvYWQtc3ViZnJhbWUucGw/dHlwZT1mcmFtZSIpOwotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLnF1ZXVlUmVsb2FkKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICB0ZXN0
UnVubmVyLnF1ZXVlTG9hZCgicmVzb3VyY2VzL3JlbG9hZC1zdWJmcmFtZS5wbD90eXBlPWZyYW1l
Iik7CisgICAgdGVzdFJ1bm5lci5xdWV1ZVJlbG9hZCgpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVsb2FkLXN1YmZyYW1l
LWlmcmFtZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9yZWxvYWQtc3ViZnJhbWUtaWZyYW1lLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZWxvYWQtc3ViZnJhbWUtaWZyYW1lLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsMTAgKzMsMTAgQEAKIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiB7Ci0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZy
YW1lc0FzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnF1ZXVlTG9hZCgicmVzb3Vy
Y2VzL3JlbG9hZC1zdWJmcmFtZS5wbD90eXBlPWlmcmFtZSIpOwotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLnF1ZXVlUmVsb2FkKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
dGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLnF1ZXVl
TG9hZCgicmVzb3VyY2VzL3JlbG9hZC1zdWJmcmFtZS5wbD90eXBlPWlmcmFtZSIpOworICAgIHRl
c3RSdW5uZXIucXVldWVSZWxvYWQoKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlbG9hZC1zdWJmcmFtZS1vYmplY3QuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVsb2Fk
LXN1YmZyYW1lLW9iamVjdC5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25hdmlnYXRpb24vcmVsb2FkLXN1YmZyYW1lLW9iamVjdC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0zLDEwICszLDEwIEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
CiBmdW5jdGlvbiBzdGFydFRlc3QoKQogewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQo
KTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1ZUxvYWQoInJlc291cmNlcy9yZWxvYWQt
c3ViZnJhbWUucGw/dHlwZT1vYmplY3QiKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5xdWV1
ZVJlbG9hZCgpOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIu
ZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5xdWV1ZUxvYWQoInJlc291
cmNlcy9yZWxvYWQtc3ViZnJhbWUucGw/dHlwZT1vYmplY3QiKTsKKyAgICB0ZXN0UnVubmVyLnF1
ZXVlUmVsb2FkKCk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL2h0
dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXBsYWNlc3RhdGUtYmFzZS1pbGxlZ2FsLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3JlcGxhY2VzdGF0ZS1i
YXNlLWlsbGVnYWwuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3JlcGxhY2VzdGF0ZS1iYXNlLWlsbGVnYWwuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMiw4ICsyLDggQEAKIDxoZWFkPgogPGJhc2UgaHJlZj0iaHR0cHM6Ly93d3cudGVz
dC5jb20vIj4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogd2luZG93Lm9ubG9hZCA9IGZ1bmN0
aW9uKCl7CiAgICAgdmFyIG1zZzsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9yZXBsYWNlc3RhdGUtYmFzZS1sZWdhbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXBsYWNlc3RhdGUtYmFzZS1sZWdhbC5odG1sCShy
ZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVw
bGFjZXN0YXRlLWJhc2UtbGVnYWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw5ICsyLDkgQEAK
IDxoZWFkPgogPGJhc2UgaWQ9ImJhc2UiPgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0g
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53
YWl0VW50aWxEb25lKCk7CiB9CiAKIHZhciB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZjsKSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXBsYWNlc3RhdGUtdXBkYXRl
cy1yZWZlcnJlci5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2
aWdhdGlvbi9yZXBsYWNlc3RhdGUtdXBkYXRlcy1yZWZlcnJlci5odG1sCShyZXZpc2lvbiAxMjQ2
OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVwbGFjZXN0YXRlLXVw
ZGF0ZXMtcmVmZXJyZXIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDxzY3Jp
cHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAogb25sb2FkID0gZnVuY3Rpb24o
KSB7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzcG9uc2UyMDQu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVz
cG9uc2UyMDQuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3Jlc3BvbnNlMjA0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3
IEBACiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQmFja0ZvcndhcmRMaXN0KCk7Ci0gICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLnF1ZXVlTG9hZCgicmVzb3VyY2VzL3Jlc3BvbnNlMjA0LnBsIik7CisgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBCYWNrRm9yd2FyZExpc3QoKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5xdWV1ZUxvYWQoInJlc291cmNlcy9yZXNwb25zZTIwNC5wbCIpOwogICAgIH0KIDwvc2Ny
aXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc3RvcmUtZm9y
bS1zdGF0ZS1odHRwcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9yZXN0b3JlLWZvcm0tc3RhdGUtaHR0cHMuaHRtbAkocmV2aXNpb24gMTI0Njkw
KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc3RvcmUtZm9ybS1zdGF0
ZS1odHRwcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL3Rlc3Rjb2RlLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgcnVuQmFja1Rlc3Qo
InJlc291cmNlcy9yZXN0b3JlLWZvcm0tc3RhdGUtaHR0cHMtMS5odG1sIiwgMSwgIiIpOwogPC9z
Y3JpcHQ+CiBUaGlzIHBhZ2UganVzdCBraWNrcyBvZmYgYSB0ZXN0LCBhbmQgc2hvdWxkIG5vdCBh
cHBlYXIgaW4gdGhlIGV4cGVjdGVkIHRlc3Qgb3V0cHV0LgpJbmRleDogTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9uYXZpZ2F0aW9uL3Njcm9sbHN0YXRlLWFmdGVyLWh0dHAtZXF1aXYtcmVmcmVzaC1m
cmFnbWVudC1pZGVudGlmaWVyLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vc2Nyb2xsc3RhdGUtYWZ0ZXItaHR0cC1lcXVpdi1yZWZyZXNoLWZy
YWdtZW50LWlkZW50aWZpZXItMi5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc2Nyb2xsc3RhdGUtYWZ0ZXItaHR0cC1lcXVpdi1yZWZy
ZXNoLWZyYWdtZW50LWlkZW50aWZpZXItMi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDE2ICsy
LDE2IEBACiA8bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSIyIj4KIDxzY3JpcHQ+
CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiB9CiAKIGZ1bmN0aW9uIHRl
c3RTY3JvbGwoKSB7CiAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAgICBp
ZiAod2luZG93LnBhZ2VZT2Zmc2V0ICE9IDApIHsKICAgICAgICAgICBkb2N1bWVudC5ib2R5Lmlu
bmVySFRNTCA9ICJTVUNDRVNTIjsKLSAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0g
ZWxzZQogICAgICAgICAgIGxvY2F0aW9uLmFzc2lnbignc2Nyb2xsc3RhdGUtYWZ0ZXItaHR0cC1l
cXVpdi1yZWZyZXNoLWZyYWdtZW50LWlkZW50aWZpZXItMi5odG1sIzEnKTsKICAgICB9LCAwKTsK
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9zY3JvbGxzdGF0ZS1hZnRl
ci1odHRwLWVxdWl2LXJlZnJlc2gtZnJhZ21lbnQtaWRlbnRpZmllci5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9zY3JvbGxzdGF0ZS1hZnRlci1o
dHRwLWVxdWl2LXJlZnJlc2gtZnJhZ21lbnQtaWRlbnRpZmllci5odG1sCShyZXZpc2lvbiAxMjQ2
OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc2Nyb2xsc3RhdGUtYWZ0
ZXItaHR0cC1lcXVpdi1yZWZyZXNoLWZyYWdtZW50LWlkZW50aWZpZXIuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMiw5ICsyLDkgQEAKIDxtZXRhIGh0dHAtZXF1aXY9InJlZnJlc2giIGNvbnRlbnQ9
IjIiPgogPHNjcmlwdD4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIH0K
IGZ1bmN0aW9uIGRvY3VtZW50VVJMSGFzaCgpCiB7CkBAIC0yNCw3ICsyNCw3IEBAIGZ1bmN0aW9u
IHRlc3RTY3JvbGwoKSB7CiAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewogICAgICAg
ICBpZiAod2luZG93LnBhZ2VZT2Zmc2V0ID09IDEwMCkgewogICAgICAgICAgIGRvY3VtZW50LmJv
ZHkuaW5uZXJIVE1MID0gIlNVQ0NFU1MiOwotICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAg
ICAgfSBlbHNlCiAgICAgICAgICAgbG9jYXRpb24uYXNzaWduKCdzY3JvbGxzdGF0ZS1hZnRlci1o
dHRwLWVxdWl2LXJlZnJlc2gtZnJhZ21lbnQtaWRlbnRpZmllci5odG1sIzEnKTsKICAgICB9LCAw
KTsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9zY3JvbGxzdGF0ZS1h
ZnRlci1odHRwLWVxdWl2LXJlZnJlc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25hdmlnYXRpb24vc2Nyb2xsc3RhdGUtYWZ0ZXItaHR0cC1lcXVpdi1yZWZyZXNo
Lmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9zY3JvbGxzdGF0ZS1hZnRlci1odHRwLWVxdWl2LXJlZnJlc2guaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMSwxNSArMSwxNSBAQAogPGh0bWw+CiA8bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNo
IiBjb250ZW50PSIyIj4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0g
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIH0KICAgICBmdW5jdGlvbiB0ZXN0U2Ny
b2xsKCkgewogICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7CiAgICAgICAgICAg
aWYgKHdpbmRvdy5wYWdlWU9mZnNldCA9PSAyMCkgewogICAgICAgICAgICAgZG9jdW1lbnQuYm9k
eS5pbm5lckhUTUwgPSAiU1VDQ0VTUyI7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAg
ICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHdpbmRvdy5zY3JvbGwoMCwyMCk7CiAgICAgICAg
IH0sIDApOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Njcm9sbHN0
YXRlLWFmdGVyLWxvY2F0aW9uLXJlbG9hZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9zY3JvbGxzdGF0ZS1hZnRlci1sb2NhdGlvbi1yZWxvYWQu
aHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0
aW9uL3Njcm9sbHN0YXRlLWFmdGVyLWxvY2F0aW9uLXJlbG9hZC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xLDE0ICsxLDE0IEBACiA8aHRtbD4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIH0KICAgICBmdW5j
dGlvbiB0ZXN0U2Nyb2xsKCkgewogICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CiAgICAgICAgICAgaWYgKHdpbmRvdy5wYWdlWU9mZnNldCA9PSAyMCkgewogICAgICAgICAgICAg
ZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPSAiU1VDQ0VTUyI7Ci0gICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgd2luZG93LnNjcm9sbCgw
LDIwKTsKICAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KGZ1bmN0aW9uKCkgewpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Nsb3dtZXRhcmVkaXJlY3QtYmFzaWMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc2xv
d21ldGFyZWRpcmVjdC1iYXNpYy5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc2xvd21ldGFyZWRpcmVjdC1iYXNpYy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IHNyYz0icmVzb3VyY2VzL3Rlc3Rjb2RlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci0gICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgcnVuQmFzaWNUZXN0KCJyZXNvdXJjZXMvc2xvd21l
dGFyZWRpcmVjdC5odG1sIiwgIm5vbmUiKTsKIDwvc2NyaXB0PgogVGhpcyBwYWdlIGp1c3Qga2lj
a3Mgb2ZmIGEgdGVzdCwgYW5kIHNob3VsZCBub3QgYXBwZWFyIGluIHRoZSBleHBlY3RlZCB0ZXN0
IG91dHB1dC4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9zbG93dGlt
ZXJyZWRpcmVjdC1iYXNpYy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9zbG93dGltZXJyZWRpcmVjdC1iYXNpYy5odG1sCShyZXZpc2lvbiAxMjQ2
OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc2xvd3RpbWVycmVkaXJl
Y3QtYmFzaWMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc291cmNlcy90ZXN0Y29kZS5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIHJ1bkJhc2ljVGVz
dCgicmVzb3VyY2VzL3Nsb3d0aW1lcnJlZGlyZWN0Lmh0bWwiLCAibm9uZSIpOwogPC9zY3JpcHQ+
CiBUaGlzIHBhZ2UganVzdCBraWNrcyBvZmYgYSB0ZXN0LCBhbmQgc2hvdWxkIG5vdCBhcHBlYXIg
aW4gdGhlIGV4cGVjdGVkIHRlc3Qgb3V0cHV0LgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3N1Y2Nlc3MyMDAtYmFzaWMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc3VjY2VzczIwMC1iYXNpYy5odG1sCShyZXZpc2lv
biAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc3VjY2VzczIw
MC1iYXNpYy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL3Rlc3Rjb2RlLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgcnVuQmFzaWNUZXN0
KCJyZXNvdXJjZXMvc3VjY2VzczIwMC5odG1sIiwgIm5vbmUiKTsKIDwvc2NyaXB0PgogVGhpcyBw
YWdlIGp1c3Qga2lja3Mgb2ZmIGEgdGVzdCwgYW5kIHNob3VsZCBub3QgYXBwZWFyIGluIHRoZSBl
eHBlY3RlZCB0ZXN0IG91dHB1dC4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9zdWNjZXNzMjAwLWZyYW1lcy1sb2Fkc2FtZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9zdWNjZXNzMjAwLWZyYW1lcy1sb2Fkc2FtZS5o
dG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRp
b24vc3VjY2VzczIwMC1mcmFtZXMtbG9hZHNhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3
ICsxLDcgQEAKIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc291cmNlcy90
ZXN0Y29kZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwogICAgIHJ1bkxvYWRTYW1lVGVzdCgicmVzb3VyY2VzL2ZyYW1lc2V0LnBsP2ZyYW1lVVJM
PXN1Y2Nlc3MyMDAuaHRtbCIsICJub25lIik7CiA8L3NjcmlwdD4KIFRoaXMgcGFnZSBqdXN0IGtp
Y2tzIG9mZiBhIHRlc3QsIGFuZCBzaG91bGQgbm90IGFwcGVhciBpbiB0aGUgZXhwZWN0ZWQgdGVz
dCBvdXRwdXQuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc3VjY2Vz
czIwMC1mcmFtZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vc3VjY2VzczIwMC1mcmFtZXMuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3N1Y2Nlc3MyMDAtZnJhbWVzLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCIgc3JjPSJyZXNvdXJjZXMvdGVzdGNvZGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KLSAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICBydW5CYXNpY1Rlc3QoInJlc291cmNlcy9mcmFt
ZXNldC5wbD9mcmFtZVVSTD1zdWNjZXNzMjAwLmh0bWwiLCAibm9uZSIpOwogPC9zY3JpcHQ+CiBU
aGlzIHBhZ2UganVzdCBraWNrcyBvZmYgYSB0ZXN0LCBhbmQgc2hvdWxkIG5vdCBhcHBlYXIgaW4g
dGhlIGV4cGVjdGVkIHRlc3Qgb3V0cHV0LgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3N1Y2Nlc3MyMDAtZ29iYWNrLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3N1Y2Nlc3MyMDAtZ29iYWNrLmh0bWwJKHJldmlzaW9u
IDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9zdWNjZXNzMjAw
LWdvYmFjay5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPHNjcmlwdCB0eXBl
PSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL3Rlc3Rjb2RlLmpzIj48L3NjcmlwdD4K
IDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgcnVuQmFja1Rlc3Qo
InJlc291cmNlcy9zdWNjZXNzMjAwLmh0bWwiLCAxLCAibm9uZSIpOwogPC9zY3JpcHQ+CiBUaGlz
IHBhZ2UganVzdCBraWNrcyBvZmYgYSB0ZXN0LCBhbmQgc2hvdWxkIG5vdCBhcHBlYXIgaW4gdGhl
IGV4cGVjdGVkIHRlc3Qgb3V0cHV0LgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3N1Y2Nlc3MyMDAtbG9hZHNhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc3VjY2VzczIwMC1sb2Fkc2FtZS5odG1sCShyZXZpc2lv
biAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc3VjY2VzczIw
MC1sb2Fkc2FtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL3Rlc3Rjb2RlLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgcnVuTG9hZFNh
bWVUZXN0KCJyZXNvdXJjZXMvc3VjY2VzczIwMC5odG1sIiwgIm5vbmUiKTsKIDwvc2NyaXB0Pgog
VGhpcyBwYWdlIGp1c3Qga2lja3Mgb2ZmIGEgdGVzdCwgYW5kIHNob3VsZCBub3QgYXBwZWFyIGlu
IHRoZSBleHBlY3RlZCB0ZXN0IG91dHB1dC4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9zdWNjZXNzMjAwLXJlbG9hZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9zdWNjZXNzMjAwLXJlbG9hZC5odG1sCShyZXZpc2lv
biAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vc3VjY2VzczIw
MC1yZWxvYWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InJlc291cmNlcy90ZXN0Y29kZS5qcyI+PC9zY3JpcHQ+
CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIHJ1blJlbG9hZFRl
c3QoInJlc291cmNlcy9zdWNjZXNzMjAwLmh0bWwiLCAibm9uZSIpOwogPC9zY3JpcHQ+CiBUaGlz
IHBhZ2UganVzdCBraWNrcyBvZmYgYSB0ZXN0LCBhbmQgc2hvdWxkIG5vdCBhcHBlYXIgaW4gdGhl
IGV4cGVjdGVkIHRlc3Qgb3V0cHV0LgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3N1Y2Nlc3MyMDAtc3ViZnJhbWVsb2FkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3N1Y2Nlc3MyMDAtc3ViZnJhbWVsb2FkLmh0bWwJ
KHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9z
dWNjZXNzMjAwLXN1YmZyYW1lbG9hZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBA
QAogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL3Rlc3Rjb2Rl
LmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAg
ICAgcnVuTG9hZENoaWxkRnJhbWVUZXN0KCJyZXNvdXJjZXMvc3VjY2VzczIwMC5odG1sIik7CiA8
L3NjcmlwdD4KIFRoaXMgcGFnZSBqdXN0IGtpY2tzIG9mZiBhIHRlc3QsIGFuZCBzaG91bGQgbm90
IGFwcGVhciBpbiB0aGUgZXhwZWN0ZWQgdGVzdCBvdXRwdXQuCkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25hdmlnYXRpb24vdGFyZ2V0LWZyYW1lLWZyb20td2luZG93Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3RhcmdldC1mcmFtZS1m
cm9tLXdpbmRvdy5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vdGFyZ2V0LWZyYW1lLWZyb20td2luZG93Lmh0bWwJKHdvcmtpbmcgY29w
eSkKQEAgLTMsMTEgKzMsMTEgQEAKIDx0aXRsZT5UZXN0IEJ1Z3ppbGxhIEJ1ZyAxMTc1NiAtIFJF
R1JFU1NJT046IGxpbmsgdGFyZ2V0aW5nIGEgZnJhbWUgaW4gYW5vdGhlciB3aW5kb3cgZG9lcyBu
b3Qgd29yazwvdGl0bGU+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiA8IS0tCi1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7
Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOworICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNU
ZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiB9CiAKIHZhciBydW5PbmNl
ID0gMDsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi90aW1lcnJlZGly
ZWN0LWJhc2ljLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3RpbWVycmVkaXJlY3QtYmFzaWMuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3RpbWVycmVkaXJlY3QtYmFzaWMuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBzcmM9InJlc291cmNlcy90ZXN0Y29kZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgotICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIHJ1bkJhc2ljVGVzdCgicmVzb3VyY2VzL3Rp
bWVycmVkaXJlY3QuaHRtbCIsICJub25lIik7CiA8L3NjcmlwdD4KIFRoaXMgcGFnZSBqdXN0IGtp
Y2tzIG9mZiBhIHRlc3QsIGFuZCBzaG91bGQgbm90IGFwcGVhciBpbiB0aGUgZXhwZWN0ZWQgdGVz
dCBvdXRwdXQuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vdGltZXJy
ZWRpcmVjdC1mcmFtZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vdGltZXJyZWRpcmVjdC1mcmFtZXMuaHRtbAkocmV2aXNpb24gMTI0NjkwKQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3RpbWVycmVkaXJlY3QtZnJhbWVz
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw3IEBACiA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgc3JjPSJyZXNvdXJjZXMvdGVzdGNvZGUuanMiPjwvc2NyaXB0PgogPHNjcmlw
dD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICBydW5CYXNpY1Rlc3QoInJlc291
cmNlcy9mcmFtZXNldC5wbD9mcmFtZVVSTD10aW1lcnJlZGlyZWN0Lmh0bWwiLCAibm9uZSIpOwog
PC9zY3JpcHQ+CiBUaGlzIHBhZ2UganVzdCBraWNrcyBvZmYgYSB0ZXN0LCBhbmQgc2hvdWxkIG5v
dCBhcHBlYXIgaW4gdGhlIGV4cGVjdGVkIHRlc3Qgb3V0cHV0LgpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3RpbWVycmVkaXJlY3QtZ29iYWNrLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3RpbWVycmVkaXJlY3QtZ29i
YWNrLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2
aWdhdGlvbi90aW1lcnJlZGlyZWN0LWdvYmFjay5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcg
KzEsNyBAQAogPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL3Rl
c3Rjb2RlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CiAgICAgcnVuQmFja1Rlc3QoInJlc291cmNlcy90aW1lcnJlZGlyZWN0Lmh0bWwiLCAxLCAi
bm9uZSIpOwogPC9zY3JpcHQ+CiBUaGlzIHBhZ2UganVzdCBraWNrcyBvZmYgYSB0ZXN0LCBhbmQg
c2hvdWxkIG5vdCBhcHBlYXIgaW4gdGhlIGV4cGVjdGVkIHRlc3Qgb3V0cHV0LgpJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3RpbWVycmVkaXJlY3Qtc3ViZnJhbWVsb2Fk
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Rp
bWVycmVkaXJlY3Qtc3ViZnJhbWVsb2FkLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi90aW1lcnJlZGlyZWN0LXN1YmZyYW1lbG9hZC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0icmVzb3VyY2VzL3Rlc3Rjb2RlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+
Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgcnVuTG9hZENoaWxkRnJhbWVUZXN0
KCJyZXNvdXJjZXMvdGltZXJyZWRpcmVjdC5odG1sIik7CiA8L3NjcmlwdD4KIFRoaXMgcGFnZSBq
dXN0IGtpY2tzIG9mZiBhIHRlc3QsIGFuZCBzaG91bGQgbm90IGFwcGVhciBpbiB0aGUgZXhwZWN0
ZWQgdGVzdCBvdXRwdXQuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24v
cmVzb3VyY2VzL2NoZWNrLXJlZmVycmVyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVjay1yZWZlcnJlci5odG1sCShyZXZp
c2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3Vy
Y2VzL2NoZWNrLXJlZmVycmVyLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUsNyArNSw3IEBAIG9u
bG9hZCA9IGZ1bmN0aW9uKCkgewogICB9IGVsc2UgewogICAgIGRvY3VtZW50LmJvZHkuaW5uZXJU
ZXh0ID0gIkZBSUw6IGRvY3VtZW50LnJlZmVycmVyIGlzIFwnIiArIGRvY3VtZW50LnJlZmVycmVy
ICsgIlwnIjsKICAgfQotICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2h0dHBzLWluLXBhZ2UtY2Fj
aGUtMy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlv
bi9yZXNvdXJjZXMvaHR0cHMtaW4tcGFnZS1jYWNoZS0zLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvaHR0cHMtaW4t
cGFnZS1jYWNoZS0zLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsOCArNiw4IEBAIHdpbmRvdy5v
bnBhZ2VzaG93ID0gZnVuY3Rpb24oZXZ0KSB7CiAKIAlhbGVydCgiVGhlIHBhZ2Ugd2FzIHJlc3Rv
cmVkIGZyb20gdGhlIHBhZ2UgY2FjaGUuIEdvb2Qgam9iISIpOwogCi0JaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLQkJbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
CWlmICh3aW5kb3cudGVzdFJ1bm5lcikKKwkJdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAK
IHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvamF2YXNjcmlwdGxpbmsuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2phdmFzY3JpcHRs
aW5rLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2
aWdhdGlvbi9yZXNvdXJjZXMvamF2YXNjcmlwdGxpbmsuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSw3ICsxLDcgQEAKIDxodG1sPgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKIAogICAgIGZ1bmN0aW9uIHBlcmZvcm1Vc2VyRXZlbnRzKCkgewogICAgICAgICBp
ZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcmVzb3VyY2VzL21ldGFyZWRpcmVjdC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvbWV0YXJlZGlyZWN0Lmh0bWwJ
KHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9y
ZXNvdXJjZXMvbWV0YXJlZGlyZWN0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOCArMSw4IEBA
CiA8aHRtbD4KIDxtZXRhIGh0dHAtZXF1aXY9InJlZnJlc2giIGNvbnRlbnQ9IjA7VVJMPXN1Y2Nl
c3MyMDAuaHRtbCI+CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OwogPC9zY3JpcHQ+CiAKIDxib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3Jlc291cmNlcy9yZWRpcmVjdDMwMi1tZXRhcmVkaXJlY3QuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0
MzAyLW1ldGFyZWRpcmVjdC5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0MzAyLW1ldGFyZWRpcmVjdC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsOCBAQAogPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIHNyYz0idGVzdGNvZGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KICAgICAvLyBu
ZWVkZWQgaW4gY2FzZSB3ZSBhcnJpdmUgaGVyZSB2aWEgYSBjbGllbnQgcmVkaXJlY3QKLSAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIDwvc2NyaXB0PgogCiA8Ym9keT4KSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtMi5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMv
cmVkaXJlY3QtMi5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0LTIuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMiw4ICsyLDggQEAKIDxzY3JpcHQ+CiAKIGZ1bmN0aW9uIGxvYWRlZCgpIHsKLSAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgfQogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3JlZGlyZWN0LWxvYWQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3JlZGly
ZWN0LWxvYWQuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9yZWRpcmVjdC1sb2FkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTUsOCArNSw4IEBACiAgICAgICAgIHsKICAgICAgICAgICAgIHZhciBjID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKTsKICAgICAgICAgICAgIGMuaW5uZXJIVE1MID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RmJykudmFsdWU7Ci0gICAgICAgICAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgICAgICB9
CiAgICAgICAgIH0KICAgICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVkaXJlY3QtdXBkYXRlcy1oaXN0b3J5LWl0ZW0tZG9uZS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNv
dXJjZXMvcmVkaXJlY3QtdXBkYXRlcy1oaXN0b3J5LWl0ZW0tZG9uZS5odG1sCShyZXZpc2lvbiAx
MjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3Jl
ZGlyZWN0LXVwZGF0ZXMtaGlzdG9yeS1pdGVtLWRvbmUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MSw4ICsxLDggQEAKIDxzY3JpcHQgc3JjPSJyZWRpcmVjdC11cGRhdGVzLWhpc3RvcnktaXRlbS5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0Pgogb25sb2FkID0gZnVuY3Rpb24oKSB7Ci0gICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CiB9CiA8L3NjcmlwdD4KIDxib2R5PlBBU1M8L2JvZHk+CkluZGV4
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3JlZmVycmVyLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291
cmNlcy9yZWZlcnJlci5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3JlZmVycmVyLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTEsNyArMSw3IEBACiA8aHRtbD48Ym9keT4KIDxzY3JpcHQ+CiAgICAgZG9jdW1lbnQud3Jp
dGUoZG9jdW1lbnQucmVmZXJyZXIpOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogPC9z
Y3JpcHQ+CiA8L2JvZHk+PC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3Jlc291cmNlcy9yZXBsYWNlc3RhdGUtYmFzZS1wYXNzLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9yZXBsYWNlc3Rh
dGUtYmFzZS1wYXNzLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvcmVwbGFjZXN0YXRlLWJhc2UtcGFzcy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDkgKzEsOSBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwotICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHtsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7fTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlv
bigpIHt0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTt9OwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3Jlc3RvcmUt
Zm9ybS1zdGF0ZS1odHRwcy0xLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9yZXN0b3JlLWZvcm0tc3RhdGUtaHR0cHMtMS5odG1s
CShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24v
cmVzb3VyY2VzL3Jlc3RvcmUtZm9ybS1zdGF0ZS1odHRwcy0xLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTIsOCArMiw4IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgc3JjPSJ0ZXN0
Y29kZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogICAgIC8vIG5lZWRlZCBpbiBjYXNlIHdlIGFy
cml2ZSBoZXJlIHZpYSBhIGNsaWVudCByZWRpcmVjdAotICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOwogPC9zY3JpcHQ+CiA8Ym9keSBpZD0idGVzdGJvZHkiIHN0eWxlPSJmb250LXNpemU6IDMy
Ij4KIFRoaXMgaXMgdGVzdCBwYWdlIHRoYXQgaGFzIGEgc2VjdXJlIGZvcm0uICBJdCBpcyBwYXJ0
IG9mIGEgdGVzdCB0byBzaG93IHRoYXQgZm9ybSBzdGF0ZSBpcyByZXN0b3JlZCBkdXJpbmcgYmFj
ay9mb3J3YXJkIG5hdmlnYXRpb25zLgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZp
Z2F0aW9uL3Jlc291cmNlcy9zbG93bWV0YXJlZGlyZWN0Lmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9zbG93bWV0YXJlZGlyZWN0
Lmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9yZXNvdXJjZXMvc2xvd21ldGFyZWRpcmVjdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDggKzEsOCBAQAogPGh0bWw+CiA8bWV0YSBodHRwLWVxdWl2PSJyZWZyZXNoIiBjb250ZW50PSI1
O1VSTD1zdWNjZXNzMjAwLmh0bWwiPgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKIDwvc2NyaXB0PgogCiA8Ym9keT4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvc2xvd3RpbWVycmVkaXJlY3QuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3Nsb3d0
aW1lcnJlZGlyZWN0Lmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvc2xvd3RpbWVycmVkaXJlY3QuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDxodG1sPgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKICAgICBzZXRUaW1lb3V0KCJ3aW5kb3cubG9jYXRpb24ucmVw
bGFjZSgnc3VjY2VzczIwMC5odG1sJykiLCA1MDAwKQogPC9zY3JpcHQ+CiAKSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvc3VjY2VzczIwMC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMv
c3VjY2VzczIwMC5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3N1Y2Nlc3MyMDAuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtMiw4ICsyLDggQEAKIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9InRlc3Rj
b2RlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAgICAgLy8gbmVlZGVkIGluIGNhc2Ugd2UgYXJy
aXZlIGhlcmUgdmlhIGEgY2xpZW50IHJlZGlyZWN0Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CiA8L3NjcmlwdD4KIAogPGJvZHkgaWQ9InRlc3Rib2R5IiBzdHlsZT0iZm9udC1zaXplOiAz
MiI+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3Rh
cmdldC1mcmFtZS1mcm9tLXdpbmRvdy1lbmQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL3RhcmdldC1mcmFtZS1mcm9tLXdpbmRv
dy1lbmQuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9u
YXZpZ2F0aW9uL3Jlc291cmNlcy90YXJnZXQtZnJhbWUtZnJvbS13aW5kb3ctZW5kLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTMsOSArMyw5IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlw
dCI+CiBmdW5jdGlvbiBkb25lKCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIC8vIEFsbG93IGNo
aWxkIHdpbmRvdyB0byBjbG9zZSB0byBwcmV2ZW50IGhhbmdzIGR1cmluZyB0ZXN0aW5nCi0gICAg
ICAgIHNldFRpbWVvdXQoImxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKSIsIDEwMCk7
CisgICAgICAgIHNldFRpbWVvdXQoInRlc3RSdW5uZXIubm90aWZ5RG9uZSgpIiwgMTAwKTsKICAg
ICB9CiB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlv
bi9yZXNvdXJjZXMvdGltZXJyZWRpcmVjdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvdGltZXJyZWRpcmVjdC5odG1sCShyZXZp
c2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3Vy
Y2VzL3RpbWVycmVkaXJlY3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIDxo
dG1sPgogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICBz
ZXRUaW1lb3V0KCJ3aW5kb3cubG9jYXRpb24ucmVwbGFjZSgnc3VjY2VzczIwMC5odG1sJykiLCAw
KQogPC9zY3JpcHQ+CiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvcGx1Z2lucy9jcmVh
dGUtdjgtc2NyaXB0LW9iamVjdHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3BsdWdpbnMvY3JlYXRlLXY4LXNjcmlwdC1vYmplY3RzLmh0bWwJKHJldmlzaW9uIDEy
NDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvcGx1Z2lucy9jcmVhdGUtdjgtc2NyaXB0
LW9iamVjdHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICsxLDkgQEAKIDxodG1sPgogPGhl
YWQ+CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci1pZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwot
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwogfQogCiBmdW5jdGlvbiBvblN1YmZyYW1lTG9hZGVkKCkgewpAQCAt
MTEsOCArMTEsOCBAQCBmdW5jdGlvbiBvblN1YmZyYW1lTG9hZGVkKCkgewogICAgICAgICAnPGVt
YmVkIG5hbWU9InBsdWdpbiIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQtdGVzdC1uZXRzY2Fw
ZSI+PC9lbWJlZD4nOwogICAgIGRvY3VtZW50LnBsdWdpbi50ZXN0RXZhbHVhdGUoJ291dHB1dFJl
c3VsdCgpJyk7CiAKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rpb24g
b3V0cHV0UmVzdWx0KCkgewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wbHVnaW5zL2Ny
b3NzLWZyYW1lLW9iamVjdC1hY2Nlc3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3BsdWdpbnMvY3Jvc3MtZnJhbWUtb2JqZWN0LWFjY2Vzcy5odG1sCShyZXZpc2lv
biAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BsdWdpbnMvY3Jvc3MtZnJhbWUt
b2JqZWN0LWFjY2Vzcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkgKzEsOSBAQAogPGh0bWw+
CiA8aGVhZD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0g
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRG
cmFtZXNBc1RleHQoKTsKIH0KIDwvc2NyaXB0PgogPGlmcmFtZSBuYW1lPSJjaGlsZEZyYW1lIiBz
cmM9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wbHVnaW5zL3Jlc291cmNlcy9jcm9zcy1mcmFtZS1v
YmplY3QtYWNjZXNzLmh0bWwiPjwvaWZyYW1lPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wbHVnaW5zL2dldC11cmwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3BsdWdpbnMvZ2V0LXVybC5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3BsdWdpbnMvZ2V0LXVybC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01LDEy
ICs1LDEyIEBAIFRoaXMgdGVzdHMgdGhhdCBOUE5fR2V0VVJMTm90aWZ5IHdvcmtzIGEKIDxzY3Jp
cHQ+CiAgICAgZnVuY3Rpb24gbm90aWZ5KCkKICAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
LSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAgcGxnLmdldFVS
TE5vdGlmeSgicmVzb3VyY2VzL2xvYWQtbWUtMS50eHQiLCBudWxsLCAibm90aWZ5Iik7CkluZGV4
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BsdWdpbnMvZ2V0dXJsbm90aWZ5LWZyb20tbnBwLWRl
c3Ryb3lzdHJlYW0uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Bs
dWdpbnMvZ2V0dXJsbm90aWZ5LWZyb20tbnBwLWRlc3Ryb3lzdHJlYW0uaHRtbAkocmV2aXNpb24g
MTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wbHVnaW5zL2dldHVybG5vdGlmeS1m
cm9tLW5wcC1kZXN0cm95c3RyZWFtLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsMTIgKzgsMTIg
QEAgZnVuY3Rpb24gc3RyZWFtRGVzdHJveWVkKCkKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAg
cGxnLmdldFVSTCgiL3BsdWdpbnMvcmVzb3VyY2VzL3Nsb3ctcmVzb3VyY2UucGwiKTsKIAotICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
ICAgICB9CiAKLSAgICB2YXIgdXJsID0gJ2RhdGE6dGV4dC9odG1sLDxzY3JpJyArICdwdD5pZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7PC9zY3JpJyArICdwdD4nOworICAgIHZhciB1cmwgPSAnZGF0YTp0ZXh0L2h0bWwsPHNj
cmknICsgJ3B0PmlmICh3aW5kb3cudGVzdFJ1bm5lcikgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
PC9zY3JpJyArICdwdD4nOwogICAgIHVybCArPSAnPGRpdj5UaGlzIHRlc3RzIHRoYXQgYSBwbHVn
LWluIHRoYXQgY2FsbHMgTlBQX0dldFVSTE5vdGlmeSBmcm9tIGl0cyBOUFBfRGVzdHJveVN0cmVh
bSBkdXJpbmcgdGVhcmRvd24gJwogICAgIHVybCArPSAnd2lsbCBub3QgY2F1c2UgYSBjcmFzaC48
L2Rpdj48ZGl2PlNVQ0NFU1MhIERpZCBub3QgY3Jhc2ghPC9kaXY+JzsKIApJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wbHVnaW5zL2ludGVycnVwdGVkLWdldC11cmwuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BsdWdpbnMvaW50ZXJydXB0ZWQtZ2V0LXVy
bC5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BsdWdp
bnMvaW50ZXJydXB0ZWQtZ2V0LXVybC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDkgKzMsOSBA
QAogRkFJTFVSRQogPGVtYmVkIG5hbWU9InBsZyIgdHlwZT0iYXBwbGljYXRpb24veC13ZWJraXQt
dGVzdC1uZXRzY2FwZSI+PC9lbWJlZD4KIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAogICAgIHBsZy5n
ZXRVUkwoInJlc291cmNlcy9zbG93LXJlc291cmNlLnBsIik7CkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3BsdWdpbnMvbG9jYWwtZ2V0dXJsLWZyb20tcmVtb3RlLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wbHVnaW5zL2xvY2FsLWdldHVybC1mcm9tLXJl
bW90ZS5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Bs
dWdpbnMvbG9jYWwtZ2V0dXJsLWZyb20tcmVtb3RlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMs
OCArMyw4IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gcnVuVGVzdCgpCiB7Ci0gICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiAgICAgICAgIAogICAgIC8vIE5vIG5lZWQgdG8gbGV0IHRoaXMgcG9p
bnQgdG8gYSByZWFsIGZpbGUuCiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvcGx1Z2lu
cy9ucGFwaS1yZXNwb25zZS1oZWFkZXJzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9wbHVnaW5zL25wYXBpLXJlc3BvbnNlLWhlYWRlcnMuaHRtbAkocmV2aXNpb24g
MTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wbHVnaW5zL25wYXBpLXJlc3BvbnNl
LWhlYWRlcnMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw5ICsxLDkgQEAKIDxodG1sPgogPGhl
YWQ+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAog
bG9hZGVkRmlyc3RVUkwgPSBmYWxzZTsKQEAgLTE3LDggKzE3LDggQEAgZnVuY3Rpb24gdGVzdCgp
CiAgICAgICAgIHJlczIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0MiIpOwogICAg
IH0gY2F0Y2ggKGV4KSB7CiAgICAgICAgIHNob3dFcnIoIkV4Y2VwdGlvbjogIiArIGV4LmRlc2Ny
aXB0aW9uKTsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAg
ICAgfQogfQogCkBAIC00MSw4ICs0MSw4IEBAIGZ1bmN0aW9uIGNhbGxiYWNrKGVyckNvZGUsIHN0
cmVhbUR1bXApCiAgICAgICAgIHJlczIuaW5uZXJIVE1MID0gbmV3bGluZXNUb0hUTUwocGFyc2Uu
cmVzMik7CiAgICAgfQogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIC8vIEZv
cm1hdCBwYXNzZWQgYnkgcGx1Z2luOiBmb3VyIGZpZWxkcyBzZXBhcmF0ZWQgYnkgXG5cbjoKSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvcGx1Z2lucy9wbHVnaW4tZG9jdW1lbnQtaGFzLWZv
Y3VzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wbHVnaW5zL3Bs
dWdpbi1kb2N1bWVudC1oYXMtZm9jdXMuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wbHVnaW5zL3BsdWdpbi1kb2N1bWVudC1oYXMtZm9jdXMuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMSwxMCArMSwxMCBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+
Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRDYW5PcGVuV2luZG93cygpOwotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRDYW5PcGVuV2luZG93cygpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAgd2lu
ZG93Lm9wZW4oInJlc291cmNlcy9wbHVnaW4tZG9jdW1lbnQtaGFzLWZvY3VzLnBsIiwgImJsYWgi
KQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wbHVnaW5zL3Bvc3QtdXJsLWZpbGUuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BsdWdpbnMvcG9zdC11cmwt
ZmlsZS5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Bs
dWdpbnMvcG9zdC11cmwtZmlsZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDE3ICs0LDE3IEBA
CiAgICAgfQogCiAgICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcENoaWxkRnJh
bWVzQXNUZXh0KCk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICAgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZy
YW1lc0FzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAg
ICAgICAgIH0KIAotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iikub25s
b2FkID0gZnVuY3Rpb24oKSB7IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsgfQor
ICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iikub25sb2FkID0gZnVuY3Rp
b24oKSB7IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOyB9CiAKLSAgICAgICAgaWYgKCFwbGcudGVz
dFBvc3RVUkxGaWxlKCJyZXNvdXJjZXMvZHVtcC1wb3N0LnBsIiwgInJlc3VsdCIsIGxheW91dFRl
c3RDb250cm9sbGVyLnBhdGhUb0xvY2FsUmVzb3VyY2UoIi90bXAvcG9zdC11cmwtZmlsZS50eHQi
KSwgIlNVQ0NFU1MiKSkgeworICAgICAgICBpZiAoIXBsZy50ZXN0UG9zdFVSTEZpbGUoInJlc291
cmNlcy9kdW1wLXBvc3QucGwiLCAicmVzdWx0IiwgdGVzdFJ1bm5lci5wYXRoVG9Mb2NhbFJlc291
cmNlKCIvdG1wL3Bvc3QtdXJsLWZpbGUudHh0IiksICJTVUNDRVNTIikpIHsKICAgICAgICAgICAg
IGxvZygiRkFJTDogdGVzdFBvc3RVUkxGaWxlIHJldHVybmVkIGZhbHNlIik7Ci0gICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfQogICAgIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9wbHVnaW5zL3RoaXJkLXBhcnR5LWNvb2tpZS1hY2NlcHQtcG9s
aWN5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wbHVnaW5zL3Ro
aXJkLXBhcnR5LWNvb2tpZS1hY2NlcHQtcG9saWN5Lmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvcGx1Z2lucy90aGlyZC1wYXJ0eS1jb29raWUtYWNjZXB0
LXBvbGljeS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdD4KIHJl
c2V0Q29va2llcygpOwogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQog
CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvcGx1Z2lucy9yZXNvdXJj
ZXMvaW50ZXJydXB0ZWQtZ2V0LXVybC1zdWNjZXNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9wbHVnaW5zL3Jlc291cmNlcy9pbnRlcnJ1cHRlZC1nZXQtdXJsLXN1
Y2Nlc3MuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
bHVnaW5zL3Jlc291cmNlcy9pbnRlcnJ1cHRlZC1nZXQtdXJsLXN1Y2Nlc3MuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMSw2ICsxLDYgQEAKIFNVQ0NFU1MKIDxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CiA8L3NjcmlwdD4KIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9wbHVnaW5zL3Jlc291cmNlcy90aGlyZC1wYXJ0eS1jb29raWUtYWNjZXB0LXBvbGljeS1pZnJh
bWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BsdWdpbnMvcmVz
b3VyY2VzL3RoaXJkLXBhcnR5LWNvb2tpZS1hY2NlcHQtcG9saWN5LWlmcmFtZS5odG1sCShyZXZp
c2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3BsdWdpbnMvcmVzb3VyY2Vz
L3RoaXJkLXBhcnR5LWNvb2tpZS1hY2NlcHQtcG9saWN5LWlmcmFtZS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC00LDkgKzQsOSBAQAogPHNjcmlwdD4KIHJlc2V0Q29va2llcygpOwogCi1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogCiA8L3NjcmlwdD4KQEAgLTE2LDE2ICsx
NiwxNiBAQCBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CiAKIHZhciBwbHVnaW4g
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicGx1Z2luIik7CiAKLWlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0QWx3YXlzQWNjZXB0
Q29va2llcyh0cnVlKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNl
dEFsd2F5c0FjY2VwdENvb2tpZXModHJ1ZSk7CiBwbHVnaW4uZ2V0VVJMTm90aWZ5KCJodHRwOi8v
bG9jYWxob3N0OjgwMDAvY29va2llcy9yZXNvdXJjZXMvY29va2llLXV0aWxpdHkucGhwP3F1ZXJ5
ZnVuY3Rpb249ZGVsZXRlQ29va2llcyIsIG51bGwsICJ0cnlTZXRDb29raWUiKTsKIAogZnVuY3Rp
b24gdHJ5U2V0Q29va2llKCkKIHsKICAgIGFsZXJ0KCJDb29raWVzIHNob3VsZCBiZSBjbGVhciwg
YW5kIGFyZTogJyIgKyBkb2N1bWVudC5jb29raWUgKyAiJyIpOwogICAgYWxlcnQoIkFib3V0IHRv
IHNldCBhIGNvb2tpZSwgYnV0IG9uIGxvY2FsaG9zdCBpbnN0ZWFkIG9mIDEyNy4wLjAuMSwgd2hp
Y2ggaXMgb3VyIG1haW4gZG9jdW1lbnQgZG9tYWluIC0gVGhpcyBzaG91bGQgZmFpbC4iKTsKLSAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRBbHdheXNBY2NlcHRDb29raWVzKGZhbHNlKTsKKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuc2V0QWx3YXlzQWNjZXB0Q29va2llcyhmYWxz
ZSk7CiAgICBwbHVnaW4uZ2V0VVJMTm90aWZ5KCJodHRwOi8vbG9jYWxob3N0OjgwMDAvY29va2ll
cy9yZXNvdXJjZXMvY29va2llLXV0aWxpdHkucGhwP3F1ZXJ5ZnVuY3Rpb249c2V0Rm9vQ29va2ll
IiwgbnVsbCwgImNvbXBsZXRlVGVzdCIpOwogfQogCkBAIC0zMyw4ICszMyw4IEBAIGZ1bmN0aW9u
IGNvbXBsZXRlVGVzdCgpCiB7CiAgICBhbGVydCgiQ29va2llcyBzaG91bGQgc3RpbGwgYmUgY2xl
YXIsIGFuZCBhcmU6ICciICsgZG9jdW1lbnQuY29va2llICsgIiciKTsKICAgIHJlc2V0Q29va2ll
cygpOwotICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIDwvc2NyaXB0PgpJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9yZXNvdXJjZXMvbm90aWZ5LWRvbmUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9ub3RpZnktZG9uZS5odG1sCShy
ZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Jlc291cmNlcy9ub3Rp
ZnktZG9uZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBAQAogPHNjcmlwdD4KIGZ1
bmN0aW9uIGxvYWRlZCgpIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQot
ICAgICAgICBzZXRUaW1lb3V0KCJsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Iiwg
MCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICBzZXRUaW1lb3V0KCJ0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsiLCAwKTsKIH0KIDwvc2NyaXB0PgogPGJvZHkgb25sb2FkPSJs
b2FkZWQoKTsiPjwvYm9keT4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1hbGxvd2VkLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQ
b2xpY3kvMS4xL3NjcmlwdG5vbmNlLWFsbG93ZWQuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvMS4x
L3NjcmlwdG5vbmNlLWFsbG93ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMyw4ICszLDggQEAK
ICAgICA8aGVhZD4KICAgICAgICAgPG1ldGEgaHR0cC1lcXVpdj0iWC1XZWJLaXQtQ1NQIiBjb250
ZW50PSJzY3JpcHQtbm9uY2Ugbm9uY3lub25jZTsiPgogICAgICAgICA8c2NyaXB0IG5vbmNlPSJu
b25jeW5vbmNlIj4KLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CiAgICAgICAgIDwvc2NyaXB0PgogICAgICAgICA8c2NyaXB0IG5vbmNlPSJub25jeW5vbmNlIj4K
ICAgICAgICAgICAgIGFsZXJ0KCdQQVNTICgxLzEpJyk7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS8xLjEvc2NyaXB0bm9uY2UtYmxv
Y2tlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1ibG9ja2VkLmh0bWwJKHJldmlz
aW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5LzEuMS9zY3JpcHRub25jZS1ibG9ja2VkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTMsOCArMyw4IEBACiAgICAgPGhlYWQ+CiAgICAgICAgIDxtZXRhIGh0dHAtZXF1aXY9Ilgt
V2ViS2l0LUNTUCIgY29udGVudD0ic2NyaXB0LW5vbmNlIG5vbmN5bm9uY2U7Ij4KICAgICAgICAg
PHNjcmlwdCBub25jZT0ibm9uY3lub25jZSI+Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICBhbGVydCgnUEFTUyAoMS8yKScpOwogICAgICAgICA8
L3NjcmlwdD4KICAgICAgICAgPHNjcmlwdCBub25jZT0iICAgbm9uY3lub25jZSAgICAiPgpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zc2wvcmVmZXJlci0zMDEuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NzbC9yZWZlcmVyLTMwMS5odG1sCShyZXZpc2lv
biAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NzbC9yZWZlcmVyLTMwMS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDkgKzEsOSBAQAogPGJvZHk+CiA8YSBocmVmPSJyZWRpci5w
aHAiPkNsaWNrIG1lLjxhLz4gVGhlIHJlc3VsdGluZyByZXF1ZXN0IChhcyBkdW1wZWQgb24gc2Ny
ZWVuKSBzaG91bGQgbm90IGhhdmUgYSBSZWZlcmVyIGhlYWRlci4KIDxzY3JpcHQ+Ci1pZiAod2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogCiBpZiAobG9jYXRpb24ucHJvdG9jb2wg
IT0gImh0dHBzOiIpCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NzbC9yZWZlcmVyLTMw
My5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc3NsL3JlZmVyZXIt
MzAzLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc3Ns
L3JlZmVyZXItMzAzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSw5IEBACiA8Ym9keT4K
IDxhIGhyZWY9InJlZGlyLnBocCI+Q2xpY2sgbWUuPGEvPiBUaGUgcmVzdWx0aW5nIHJlcXVlc3Qg
KGFzIGR1bXBlZCBvbiBzY3JlZW4pIHNob3VsZCBub3QgaGF2ZSBhIFJlZmVyZXIgaGVhZGVyLgog
PHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiB9CiAKIGlmIChs
b2NhdGlvbi5wcm90b2NvbCAhPSAiaHR0cHM6IikKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc3RvcmFnZS9jYWxsYmFja3MtYXJlLWNhbGxlZC1pbi1jb3JyZWN0LWNvbnRleHQuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N0b3JhZ2UvY2FsbGJhY2tzLWFy
ZS1jYWxsZWQtaW4tY29ycmVjdC1jb250ZXh0Lmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc3RvcmFnZS9jYWxsYmFja3MtYXJlLWNhbGxlZC1pbi1jb3Jy
ZWN0LWNvbnRleHQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMywxMCArMywxMCBAQAogPHNjcmlw
dD4KIGZ1bmN0aW9uIHNldHVwQW5kUnVuRnJhbWVzVGVzdCgpCiB7Ci0gICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBDaGlsZEZyYW1lc0Fz
VGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cisg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOworICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAgICAgdG9wLmZyYW1lc1swXS5k
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmlubmVyVGV4dCA9ICIiOwogICAgIHRv
cC5mcmFtZXNbMV0ucnVuVGVzdCgpOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9y
YWdlL3Jlc291cmNlcy9jYWxsYmFja3MtYXJlLWNhbGxlZC1pbi1jb3JyZWN0LWNvbnRleHQtc2Vj
b25kLWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdG9y
YWdlL3Jlc291cmNlcy9jYWxsYmFja3MtYXJlLWNhbGxlZC1pbi1jb3JyZWN0LWNvbnRleHQtc2Vj
b25kLWZyYW1lLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc3RvcmFnZS9yZXNvdXJjZXMvY2FsbGJhY2tzLWFyZS1jYWxsZWQtaW4tY29ycmVjdC1jb250
ZXh0LXNlY29uZC1mcmFtZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01Miw4ICs1Miw4IEBAIGZ1
bmN0aW9uIHN1Y2Nlc3NUcmFuc2FjdGlvbkNhbGxiYWNrKCkKICAgICAgICAgICAgIHRvcC5mcmFt
ZXNbM10ucnVuVGVzdEluVGhpcmRGcmFtZSgpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICBjYXNlIDQ6Ci0gICAgICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQot
ICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgZGVmYXVsdDoKICAg
ICAgICAgICAgIHRocm93ICJCYWQgJ2ZyYW1lJyB2YWx1ZTogIiArIGZyYW1lOwpJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zdmcvY2hhbmdlLWlkLXdpdGgtcGVuZGluZy1yZXNvdXJjZXMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3N2Zy9jaGFuZ2UtaWQt
d2l0aC1wZW5kaW5nLXJlc291cmNlcy5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3N2Zy9jaGFuZ2UtaWQtd2l0aC1wZW5kaW5nLXJlc291cmNlcy5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0yLDkgKzIsOSBAQAogLy8gVGVzdCBwYXNzZXMgaWYgaXQgZG9l
cyBub3QgY3Jhc2guCiAvLyBOb3RlOiB0aGlzIHRlc3QgaXMgbG9jYXRlZCB1bmRlciBMYXlvdXR0
ZXN0cy9odHRwIGluIG9yZGVyIHRvIGxvYWQgYW4gZXh0ZXJuYWwKIC8vICAgICAgIGRvY3VtZW50
IGFuZCBtb2RpZnkgaXQgd2l0aG91dCBoaXR0aW5nIHNlY3VyaXR5IHJlc3RyaWN0aW9ucy4KLSAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CiAgICAgfQogCiAgICAgZnVuY3Rpb24gY3Jhc2goKSB7CkBAIC0xMiw4ICsxMiw4IEBACiAgICAg
ICAgIGRvY3VtZW50LndyaXRlKCIiKTsKICAgICAgICAgcS5nZXRFbGVtZW50QnlJZCgnZCcpLmlk
ID0gIm1hc2tlZEdyYWRpZW50IjsKICAgICAgICAgZG9jdW1lbnQud3JpdGUoIklmIHRoaXMgdGV4
dCBpcyB2aXNpYmxlIGFuZCB0aGUgdGVzdCBkaWQgbm90IGNyYXNoLCB0aGlzIHRlc3QgcGFzc2Vz
Iik7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0K
IDwvc2NyaXB0PgogPG9iamVjdCBkYXRhPSJodHRwOi8vMTI3LjAuMC4xOjgwMDAvc3ZnL3Jlc291
cmNlcy9zdmctdXNlLWRlZnMtcmVjdC5zdmciIGlkPSJyb290IiBvbmxvYWQ9ImNyYXNoKCkiLz4K
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc3ZnL3RyZWYtYWRvcHROb2RlLWNyYXNoLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zdmcvdHJlZi1hZG9wdE5v
ZGUtY3Jhc2guaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zdmcvdHJlZi1hZG9wdE5vZGUtY3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw5ICsy
LDkgQEAKIC8vIFRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLgogLy8gTm90ZTogdGhp
cyB0ZXN0IGlzIGxvY2F0ZWQgdW5kZXIgTGF5b3V0dGVzdHMvaHR0cCBpbiBvcmRlciB0byBsb2Fk
IGFuIGV4dGVybmFsCiAvLyAgICAgICBkb2N1bWVudCAoc3ZnLXRyZWYuc3ZnKSBhbmQgbW9kaWZ5
IGl0IHdpdGhvdXQgaGl0dGluZyBzZWN1cml0eSByZXN0cmljdGlvbnMuCi0gICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgIH0KIAog
ICAgIGZ1bmN0aW9uIGNyYXNoKCkgewpAQCAtMTcsOCArMTcsOCBAQAogICAgICAgICByLnN1cnJv
dW5kQ29udGVudHMoIGUgKTsKICAgICAgICAgZS5pZCA9ICdzJzsKICAgICAgICAgZG9jdW1lbnQu
d3JpdGUoIklmIHRoaXMgdGV4dCBpcyB2aXNpYmxlIGFuZCB0aGUgdGVzdCBkaWQgbm90IGNyYXNo
LCB0aGlzIHRlc3QgcGFzc2VzIik7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cisg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOwogICAgIH0KIDwvc2NyaXB0PgogPG9iamVjdCBkYXRhPSJodHRwOi8vMTI3LjAu
MC4xOjgwMDAvc3ZnL3Jlc291cmNlcy9zdmctdHJlZi5zdmciIGlkPSJyb290IiBvbmxvYWQ9ImNy
YXNoKCkiLz4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvdXJpL2Fzc2lnbi1wYXRoLXdp
dGgtbGVhZGluZy1zbGFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvdXJpL2Fzc2lnbi1wYXRoLXdpdGgtbGVhZGluZy1zbGFzaC5odG1sCShyZXZpc2lvbiAxMjQ2
OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3VyaS9hc3NpZ24tcGF0aC13aXRoLWxlYWRp
bmctc2xhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMyw5ICszLDkgQEAKIFRoaXMgdGVzdCBz
aG91bGQgcmVkaXJlY3QgdG8gYSBsYW5kaW5nIHBhZ2Ugd2l0aCBubyBkb3VibGVkIHNsYXNoZXMg
aW4gdGhlIHBhdGguCiAKIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwogfQogPC9zY3JpcHQ+CiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvdXJpL2Fz
c2lnbi1wYXRoLXdpdGhvdXQtbGVhZGluZy1zbGFzaC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvdXJpL2Fzc2lnbi1wYXRoLXdpdGhvdXQtbGVhZGluZy1zbGFzaC5o
dG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3VyaS9hc3Np
Z24tcGF0aC13aXRob3V0LWxlYWRpbmctc2xhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw5
ICs0LDkgQEAgVGhpcyB0ZXN0IHNob3VsZCByZWRpcmVjdCB0byBhIGxhbmRpbmcgcAogaXQgZmFp
bHMgdG8gcmVkaXJlY3QsIG9yIHJlZGlyZWN0cyB0byBhbiBlcnJvciBwYWdlLCB0aGVuIHRoZXJl
IGlzIGEgYnVnLgogCiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
ewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKIH0KIDwvc2NyaXB0PgogCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3VyaS9lc2Nh
cGVkLWVudGl0eS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvdXJp
L2VzY2FwZWQtZW50aXR5Lmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvdXJpL2VzY2FwZWQtZW50aXR5Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUsOCAr
NSw4IEBACiA8Ym9keT4KIAogPHNjcmlwdD4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
IDwvc2NyaXB0PgogCiA8cD5UZXN0IGZvciA8YSBocmVmPSdodHRwOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0xNTExOSc+YnVnIDE1MTE5PC9hPjoKSW5kZXg6IExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvdXJpL3Jlc29sdmUtZW5jb2RpbmctcmVsYXRpdmUuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3VyaS9yZXNvbHZlLWVuY29kaW5nLXJlbGF0aXZl
Lmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvdXJpL3Jl
c29sdmUtZW5jb2RpbmctcmVsYXRpdmUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCw4ICs4LDgg
QEAKIDxhIGhyZWY9Ii/v8/L8P+fg7/Du8SP08ODj7OXt8iI+NTwvYT4KIDxwcmUgaWQ9cmVzdWx0
PjwvcHJlPgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiBmdW5jdGlvbiBsb2cobWVzc2FnZSkK
IHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvdXJpL3V0ZjgtcGF0aC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvdXJpL3V0ZjgtcGF0aC5odG1sCShyZXZp
c2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3VyaS91dGY4LXBhdGguaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNSw4ICs1LDggQEAKIDxib2R5PgogCiA8c2NyaXB0PgotICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogPC9zY3JpcHQ+CiAKIDxwPlRlc3QgZm9yIDxhIGhy
ZWY9J2h0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03NDYxJz5idWcgNzQ2
MTwvYT46IApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy91cmkvcmVzb3VyY2VzL2Fzc2ln
bi1wYXRoLWxhbmRpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3VyaS9yZXNvdXJjZXMvYXNzaWduLXBhdGgtbGFuZGluZy5odG1sCShyZXZpc2lvbiAxMjQ2OTAp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3VyaS9yZXNvdXJjZXMvYXNzaWduLXBhdGgtbGFu
ZGluZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw3ICsxNiw3IEBAIHNob3VsZEJlKCJsb2Nh
dGlvbi5wYXRobmFtZSIsICInL3VyaS9yZXMKIDwvc2NyaXB0PgogCiA8c2NyaXB0PgotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CiA8L3NjcmlwdD4KIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhcmNo
aXZlL2Nyb3NzLW9yaWdpbi1zdHlsZXNoZWV0LWNyYXNoLWV4cGVjdGVkLndlYmFyY2hpdmUKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhcmNoaXZlL2Nyb3NzLW9yaWdp
bi1zdHlsZXNoZWV0LWNyYXNoLWV4cGVjdGVkLndlYmFyY2hpdmUJKHJldmlzaW9uIDEyNDY5MCkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXJjaGl2ZS9jcm9zcy1vcmlnaW4tc3R5bGVz
aGVldC1jcmFzaC1leHBlY3RlZC53ZWJhcmNoaXZlCSh3b3JraW5nIGNvcHkpCkBAIC03LDggKzcs
OCBAQAogCQk8a2V5PldlYlJlc291cmNlRGF0YTwva2V5PgogCQk8c3RyaW5nPiZsdDtodG1sJmd0
OyZsdDtoZWFkJmd0OwogJmx0O3NjcmlwdCZndDsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOwor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcERPTUFzV2ViQXJjaGl2
ZSgpOwogJmx0Oy9zY3JpcHQmZ3Q7CiAmbHQ7bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC93ZWJhcmNoaXZlL3Jlc291cmNlcy9sb2NhbGhvc3Qtc3R5bGVz
aGVldC5jc3MiIHR5cGU9InRleHQvY3NzIiZndDsKICZsdDsvaGVhZCZndDsKSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXJjaGl2ZS9jcm9zcy1vcmlnaW4tc3R5bGVzaGVldC1jcmFz
aC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXJjaGl2ZS9j
cm9zcy1vcmlnaW4tc3R5bGVzaGVldC1jcmFzaC5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmFyY2hpdmUvY3Jvc3Mtb3JpZ2luLXN0eWxlc2hlZXQt
Y3Jhc2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw4ICsxLDggQEAKIDxodG1sPgogPGhlYWQ+
CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CitpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CiA8L3NjcmlwdD4KIDxs
aW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3dlYmFyY2hp
dmUvcmVzb3VyY2VzL2xvY2FsaG9zdC1zdHlsZXNoZWV0LmNzcyIgdHlwZT0idGV4dC9jc3MiPgog
PC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhcmNoaXZlL3Rlc3QtY3Nz
LXVybC1lbmNvZGluZy1leHBlY3RlZC53ZWJhcmNoaXZlCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWNzcy11cmwtZW5jb2RpbmctZXhwZWN0ZWQu
d2ViYXJjaGl2ZQkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJhcmNoaXZlL3Rlc3QtY3NzLXVybC1lbmNvZGluZy1leHBlY3RlZC53ZWJhcmNoaXZlCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMCw4ICsxMCw4IEBACiAmbHQ7bGluayByZWw9InN0eWxlc2hlZXQiIHR5
cGU9InRleHQvY3NzIiBocmVmPSJyZXNvdXJjZXMvdGVzdC1zaGlmdC1qaXMuY3NzIiZndDsKICZs
dDtsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InJlc291cmNlcy90
ZXN0LXV0Zi04LmNzcyImZ3Q7CiAmbHQ7c2NyaXB0Jmd0OwotaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wRE9NQXNXZWJBcmNoaXZl
KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wRE9NQXNXZWJB
cmNoaXZlKCk7CiAmbHQ7L3NjcmlwdCZndDsKICZsdDsvaGVhZCZndDsKICZsdDtib2R5Jmd0OwpJ
bmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhcmNoaXZlL3Rlc3QtY3NzLXVybC1lbmNv
ZGluZy1zaGlmdC1qaXMtZXhwZWN0ZWQud2ViYXJjaGl2ZQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3dlYmFyY2hpdmUvdGVzdC1jc3MtdXJsLWVuY29kaW5nLXNoaWZ0LWpp
cy1leHBlY3RlZC53ZWJhcmNoaXZlCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3dlYmFyY2hpdmUvdGVzdC1jc3MtdXJsLWVuY29kaW5nLXNoaWZ0LWppcy1leHBl
Y3RlZC53ZWJhcmNoaXZlCSh3b3JraW5nIGNvcHkpCkBAIC0xMiw4ICsxMiw4IEBACiAmbHQ7bGlu
ayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJyZXNvdXJjZXMvdGVzdC1z
aGlmdC1qaXMuY3NzIiZndDsKICZsdDtsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9j
c3MiIGhyZWY9InJlc291cmNlcy90ZXN0LXV0Zi04LmNzcyImZ3Q7CiAmbHQ7c2NyaXB0Jmd0Owot
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVz
dFJ1bm5lci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CiAmbHQ7L3NjcmlwdCZndDsKICZsdDsvaGVh
ZCZndDsKICZsdDtib2R5Jmd0OwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhcmNo
aXZlL3Rlc3QtY3NzLXVybC1lbmNvZGluZy1zaGlmdC1qaXMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmFyY2hpdmUvdGVzdC1jc3MtdXJsLWVuY29kaW5nLXNo
aWZ0LWppcy5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3dlYmFyY2hpdmUvdGVzdC1jc3MtdXJsLWVuY29kaW5nLXNoaWZ0LWppcy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC02LDggKzYsOCBAQAogPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0
L2NzcyIgaHJlZj0icmVzb3VyY2VzL3Rlc3Qtc2hpZnQtamlzLmNzcyI+CiA8bGluayByZWw9InN0
eWxlc2hlZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJyZXNvdXJjZXMvdGVzdC11dGYtOC5jc3Mi
PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOworaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOwogPC9zY3JpcHQ+CiA8
L2hlYWQ+CiA8Ym9keT4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXJjaGl2ZS90
ZXN0LWNzcy11cmwtZW5jb2RpbmctdXRmLTgtZXhwZWN0ZWQud2ViYXJjaGl2ZQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmFyY2hpdmUvdGVzdC1jc3MtdXJsLWVuY29k
aW5nLXV0Zi04LWV4cGVjdGVkLndlYmFyY2hpdmUJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViYXJjaGl2ZS90ZXN0LWNzcy11cmwtZW5jb2RpbmctdXRmLTgt
ZXhwZWN0ZWQud2ViYXJjaGl2ZQkod29ya2luZyBjb3B5KQpAQCAtMTIsOCArMTIsOCBAQAogJmx0
O2xpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0icmVzb3VyY2VzL3Rl
c3Qtc2hpZnQtamlzLmNzcyImZ3Q7CiAmbHQ7bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9InRl
eHQvY3NzIiBocmVmPSJyZXNvdXJjZXMvdGVzdC11dGYtOC5jc3MiJmd0OwogJmx0O3NjcmlwdCZn
dDsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
IHRlc3RSdW5uZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOwogJmx0Oy9zY3JpcHQmZ3Q7CiAmbHQ7
L2hlYWQmZ3Q7CiAmbHQ7Ym9keSZndDsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
YXJjaGl2ZS90ZXN0LWNzcy11cmwtZW5jb2RpbmctdXRmLTguaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmFyY2hpdmUvdGVzdC1jc3MtdXJsLWVuY29kaW5nLXV0
Zi04Lmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvd2Vi
YXJjaGl2ZS90ZXN0LWNzcy11cmwtZW5jb2RpbmctdXRmLTguaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNiw4ICs2LDggQEAKIDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhy
ZWY9InJlc291cmNlcy90ZXN0LXNoaWZ0LWppcy5jc3MiPgogPGxpbmsgcmVsPSJzdHlsZXNoZWV0
IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0icmVzb3VyY2VzL3Rlc3QtdXRmLTguY3NzIj4KIDxzY3Jp
cHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAg
ICB0ZXN0UnVubmVyLmR1bXBET01Bc1dlYkFyY2hpdmUoKTsKIDwvc2NyaXB0PgogPC9oZWFkPgog
PGJvZHk+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmFyY2hpdmUvdGVzdC1jc3Mt
dXJsLWVuY29kaW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJhcmNoaXZlL3Rlc3QtY3NzLXVybC1lbmNvZGluZy5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmFyY2hpdmUvdGVzdC1jc3MtdXJsLWVuY29kaW5n
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsOCArNCw4IEBACiA8bGluayByZWw9InN0eWxlc2hl
ZXQiIHR5cGU9InRleHQvY3NzIiBocmVmPSJyZXNvdXJjZXMvdGVzdC1zaGlmdC1qaXMuY3NzIj4K
IDxsaW5rIHJlbD0ic3R5bGVzaGVldCIgdHlwZT0idGV4dC9jc3MiIGhyZWY9InJlc291cmNlcy90
ZXN0LXV0Zi04LmNzcyI+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CitpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7
CiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJhcmNoaXZlL3Rlc3QtcHJlbG9hZC1yZXNvdXJjZXMtZXhwZWN0ZWQud2ViYXJjaGl2ZQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmFyY2hpdmUvdGVzdC1wcmVs
b2FkLXJlc291cmNlcy1leHBlY3RlZC53ZWJhcmNoaXZlCShyZXZpc2lvbiAxMjQ2OTApCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYmFyY2hpdmUvdGVzdC1wcmVsb2FkLXJlc291cmNlcy1l
eHBlY3RlZC53ZWJhcmNoaXZlCSh3b3JraW5nIGNvcHkpCkBAIC0xNiw4ICsxNiw4IEBACiAmbHQ7
bGluayByZWw9ImFsdGVybmF0ZSBzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0icmVz
b3VyY2VzL3Rlc3QtcHJlbG9hZC1yZXNvdXJjZXMuY3NzPzYiIHRpdGxlPSJncmF5IiZndDsKIAog
Jmx0O3NjcmlwdCZndDsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOworaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcERPTUFzV2ViQXJjaGl2ZSgpOwogJmx0Oy9zY3Jp
cHQmZ3Q7CiAKICZsdDsvaGVhZCZndDsmbHQ7Ym9keSZndDsKSW5kZXg6IExheW91dFRlc3RzL2h0
dHAvdGVzdHMvd2ViYXJjaGl2ZS90ZXN0LXByZWxvYWQtcmVzb3VyY2VzLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJhcmNoaXZlL3Rlc3QtcHJlbG9hZC1yZXNv
dXJjZXMuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93
ZWJhcmNoaXZlL3Rlc3QtcHJlbG9hZC1yZXNvdXJjZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
OSw4ICs5LDggQEAKIDxsaW5rIHJlbD0iYWx0ZXJuYXRlIHN0eWxlc2hlZXQiIHR5cGU9InRleHQv
Y3NzIiBocmVmPSJyZXNvdXJjZXMvdGVzdC1wcmVsb2FkLXJlc291cmNlcy5jc3M/NiIgdGl0bGU9
ImdyYXkiPgogCiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CitpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wRE9NQXNXZWJBcmNoaXZlKCk7CiA8L3Nj
cmlwdD4KIAogPC9oZWFkPjxib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJm
b250L2ZhbGxiYWNrLWZvbnQtd2hpbGUtbG9hZGluZy5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2ViZm9udC9mYWxsYmFjay1mb250LXdoaWxlLWxvYWRpbmcuaHRt
bAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJmb250L2Zh
bGxiYWNrLWZvbnQtd2hpbGUtbG9hZGluZy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xOCw4ICsx
OCw4IEBAIFJlZmVyZW5jZToKIDxkaXYgaWQ9InJlc3VsdCI+PC9kaXY+CiAKIDxzY3JpcHQ+Ci1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CiB9CiAKIGZ1bmN0aW9uIGNoZWNrU2l6ZSgpIHsKSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvd2Vic29ja2V0L3Jlc291cmNlcy9zZXJ2ZXItZmFpbGVkLXRvLXN0
YXJ0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQv
cmVzb3VyY2VzL3NlcnZlci1mYWlsZWQtdG8tc3RhcnQuaHRtbAkocmV2aXNpb24gMTI0NjkwKQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy93ZWJzb2NrZXQvcmVzb3VyY2VzL3NlcnZlci1mYWls
ZWQtdG8tc3RhcnQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIDxzY3JpcHQ+
Ci1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKIDwvc2NyaXB0PgogPHA+RkFJTEVEOiBUaGUgV2ViU29ja2V0IHNlcnZl
ciBmYWlsZWQgdG8gc3RhcnQgc28gdGhlIHRlc3QgY291bGQgbm90IGJlIHJ1bi48L3A+CkluZGV4
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L3JlZW50cmFudC1jYW5jZWwu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L3JlZW50cmFudC1jYW5jZWwuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9yZWVudHJhbnQtY2FuY2VsLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNiArMSw2IEBACiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKIGZ1bmN0aW9u
IGFkZEVsZW1lbnQoKSB7CiAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKCdYJykpOwpJbmRleDogTGF5b3V0VGVzdHMvaW5zcGVj
dG9yL2RldmljZS1vcmllbnRhdGlvbi1zdWNjZXNzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RldmljZS1vcmllbnRhdGlvbi1zdWNjZXNzLmh0bWwJKHJldmlzaW9u
IDEyNDY5MCkKKysrIExheW91dFRlc3RzL2luc3BlY3Rvci9kZXZpY2Utb3JpZW50YXRpb24tc3Vj
Y2Vzcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDggKzcsOCBAQCB2YXIgbW9ja0FscGhhID0g
MS4xOwogdmFyIG1vY2tCZXRhID0gMi4yOwogdmFyIG1vY2tHYW1tYSA9IDMuMzsKIAotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRN
b2NrRGV2aWNlT3JpZW50YXRpb24odHJ1ZSwgbW9ja0FscGhhLCB0cnVlLCBtb2NrQmV0YSwgdHJ1
ZSwgbW9ja0dhbW1hKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLnNl
dE1vY2tEZXZpY2VPcmllbnRhdGlvbih0cnVlLCBtb2NrQWxwaGEsIHRydWUsIG1vY2tCZXRhLCB0
cnVlLCBtb2NrR2FtbWEpOwogZWxzZQogICAgIGRlYnVnKCdUaGlzIHRlc3QgY2FuIG5vdCBiZSBy
dW4gd2l0aG91dCB0aGUgTGF5b3V0VGVzdENvbnRyb2xsZXInKTsKIApJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMjQ2
OTApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCSh3
b3JraW5nIGNvcHkpCkBAIC00MzUsNyArNDM1LDcgQEAgV09OVEZJWCBTS0lQIDogZG9tL3hodG1s
L2xldmVsMy9jb3JlL3VzZQogV09OVEZJWCBTS0lQIDogZG9tL3hodG1sL2xldmVsMy9jb3JlL3Vz
ZXJkYXRhaGFuZGxlcjAzLnhodG1sID0gVEVYVAogV09OVEZJWCBTS0lQIDogZG9tL3hodG1sL2xl
dmVsMy9jb3JlL3VzZXJkYXRhaGFuZGxlcjA0LnhodG1sID0gVEVYVAogLy8gVGhlIElNQUdFK1RF
WFQgZmFpbHVyZXMgYmVsb3cgYXJlIGR1ZSB0byBlcnJvbmVvdXMgdGVzdHMgdGhhdCBmYWlsIHRv
IGFjdHVhbGx5IGxvYWQKLS8vIHRoZSBKUyBtZWFudCB0byB0ZXN0IHRoZW0gKGFuZCB0aHVzIGZh
aWwgdG8gdHJpZ2dlciBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCkpLgorLy8gdGhl
IEpTIG1lYW50IHRvIHRlc3QgdGhlbSAoYW5kIHRodXMgZmFpbCB0byB0cmlnZ2VyIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpKS4KIFdPTlRGSVggU0tJUCA6IGRvbS94aHRtbC9sZXZlbDMvY29yZS9k
b2N1bWVudGdldGlucHV0ZW5jb2RpbmcwMy54aHRtbCA9IElNQUdFK1RFWFQKIFdPTlRGSVggU0tJ
UCA6IGRvbS94aHRtbC9sZXZlbDMvY29yZS9lbnRpdHlnZXRpbnB1dGVuY29kaW5nMDIueGh0bWwg
PSBJTUFHRStURVhUCiBXT05URklYIFNLSVAgOiBkb20veGh0bWwvbGV2ZWwzL2NvcmUvZW50aXR5
Z2V0eG1sdmVyc2lvbjAyLnhodG1sID0gSU1BR0UrVEVYVApAQCAtODg0LDcgKzg4NCw3IEBAIEJV
R1dLNjYzNzcgOiBmYXN0L2RvbS9TdHlsZVNoZWV0L2djLXJ1bGUKIEJVR0NSMjQxOTUgTElOVVgg
V0lOIDogZmFzdC9yZXBhaW50L2J1Z3ppbGxhLTY0NzMuaHRtbCA9IElNQUdFK1RFWFQKIEJVR0NS
MjQxOTUgTUFDIDogZmFzdC9yZXBhaW50L2J1Z3ppbGxhLTY0NzMuaHRtbCA9IElNQUdFCiAKLS8v
IEltcGxlbWVudCBsYXlvdXRUZXN0Q29udHJvbGxlci5kaXNwbGF5KCkKKy8vIEltcGxlbWVudCB0
ZXN0UnVubmVyLmRpc3BsYXkoKQogQlVHQ1I4NjMwIExJTlVYIFdJTiA6IGZhc3QvcmVwYWludC9i
b2R5LWJhY2tncm91bmQtaW1hZ2UuaHRtbCA9IElNQUdFIElNQUdFK1RFWFQKIAogLy8gUmVsaWVz
IG9uIHRleHQgbWV0cmljcyB0byBwYXNzLiBSZXdvcmsgdG8gYmUgbWVhbmluZ2Z1bCBmb3IgcG9y
dHMgb3RoZXIgdGhhbiBwbGF0Zm9ybS9tYWMuCkBAIC04OTUsNyArODk1LDcgQEAgQlVHQ1I4NjMw
IExJTlVYIFdJTiBERUJVRyA6IGZhc3QvcmVmbGVjdAogQlVHQ1I4NjMwIExJTlVYIFdJTiA6IGZh
c3QvdGV4dC9mb250LWluaXRpYWwuaHRtbCA9IElNQUdFIElNQUdFK1RFWFQKIAogLy8gTmVlZCBh
IHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkIG1ldGhvZCBpbgotLy8gbGF5b3V0VGVzdENv
bnRyb2xsZXIuIE5vdyB3ZSBoYXZlIHByZWZlcmVuY2UgdG8gZW5hYmxlL2Rpc2FibGUgdXNlcgor
Ly8gdGVzdFJ1bm5lci4gTm93IHdlIGhhdmUgcHJlZmVyZW5jZSB0byBlbmFibGUvZGlzYWJsZSB1
c2VyCiAvLyBzdHlsZXMobm90IHdvcmsgbm93KSwgd2Ugc3RpbGwgbmVlZCB0byBhZGQgYSBwcmVm
ZXJlbmNlIHRvIGVuYWJsZS9kaXNhYmxlCiAvLyBzdHlsZXMgb2YgYm90aCBhdXRob3IgYW5kIHVz
ZXIuCiAvLyBTS0lQIGJlY2F1c2UgaXQgY2F1c2VzIGFuIGFkZGl0aW9uYWwgZXJyb3IgbWVzc2Fn
ZSBpbjoKQEAgLTEwODIsNyArMTA4Miw3IEBAIEJVR0NSMzgzNTMgOiBodHRwL3Rlc3RzL3BsdWdp
bnMvcGx1Z2luLWQKIEJVR0NSMTA4ODMzIFdJTiA6IHBsdWdpbnMvZ2V0dXJsbm90aWZ5LWR1cmlu
Zy1kb2N1bWVudC10ZWFyZG93bi5odG1sID0gQ1JBU0gKIEJVR1dLNDg2NTUgOiBwbHVnaW5zL2pz
LWZyb20tZGVzdHJveS5odG1sID0gUEFTUyBDUkFTSAogCi0vLyBSZXF1aXJlcyBsYXlvdXRUZXN0
Q29udHJvbGxlci5kaXNwYXRjaFBlbmRpbmdMb2FkUmVxdWVzdHMKKy8vIFJlcXVpcmVzIHRlc3RS
dW5uZXIuZGlzcGF0Y2hQZW5kaW5nTG9hZFJlcXVlc3RzCiBCVUdDUjMzMjExIFdJTiBSRUxFQVNF
IDogaHR0cC90ZXN0cy9sb2FkaW5nL2RlbGV0ZWQtaG9zdC1pbi1yZXNvdXJjZS1sb2FkLWRlbGVn
YXRlLWNhbGxiYWNrLmh0bWwgPSBUSU1FT1VUCiBCVUdDUjMzMjExIFdJTiBERUJVRyA6IGh0dHAv
dGVzdHMvbG9hZGluZy9kZWxldGVkLWhvc3QtaW4tcmVzb3VyY2UtbG9hZC1kZWxlZ2F0ZS1jYWxs
YmFjay5odG1sID0gVElNRU9VVAogQlVHQ1IzMzIxMSBMSU5VWCBNQUMgOiBodHRwL3Rlc3RzL2xv
YWRpbmcvZGVsZXRlZC1ob3N0LWluLXJlc291cmNlLWxvYWQtZGVsZWdhdGUtY2FsbGJhY2suaHRt
bCA9IFRJTUVPVVQKQEAgLTE3NTcsMTAgKzE3NTcsMTAgQEAgQlVHQ1IzNjk2NiA6IGZhc3QvbG9h
ZGVyL2Fib3V0LWJsYW5rLWhhcwogQlVHQ1IzNzg5NiBMSU5VWCBXSU4gOiBmYXN0L211bHRpY29s
L2hpdC10ZXN0LWFib3ZlLW9yLWJlbG93Lmh0bWwgPSBURVhUCiAKIC8vIFdlYktpdCByb2xsIDU2
MTk3OjU2MjM5LgotLy8gTmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0TWVkaWFUeXBlKCkg
KGltcGxlbWVudGVkIG9uIFF0IG9ubHkpCisvLyBOZWVkcyB0ZXN0UnVubmVyLnNldE1lZGlhVHlw
ZSgpIChpbXBsZW1lbnRlZCBvbiBRdCBvbmx5KQogQlVHQ1IzODY1NiA6IGZhc3QvbWVkaWEvcHJp
bnQtcmVzdG9yZXMtcHJldmlvdXMtbWVkaWF0eXBlLmh0bWwgPSBURVhUCiAKLS8vIE5lZWRzIGxh
eW91dFRlc3RDb250cm9sbGVyLnNldFZpZXdNb2RlTWVkaWFGZWF0dXJlKCkKKy8vIE5lZWRzIHRl
c3RSdW5uZXIuc2V0Vmlld01vZGVNZWRpYUZlYXR1cmUoKQogQlVHQ1I0MDY4MCBTS0lQIDogZmFz
dC9tZWRpYS92aWV3LW1vZGUtbWVkaWEtZmVhdHVyZS5odG1sID0gUEFTUwogQlVHQ1I0MDY4MCBT
S0lQIDogZmFzdC9tZWRpYS9tZWRpYS1xdWVyeS1saXN0LTAyLmh0bWwgPSBQQVNTCiBCVUdDUjQw
NjgwIFNLSVAgOiBmYXN0L21lZGlhL21lZGlhLXF1ZXJ5LWxpc3QtMDMuaHRtbCA9IFBBU1MKQEAg
LTE4MDAsNyArMTgwMCw3IEBAIEJVR1dLNzE3NTggOiBmYXN0L3VybC9wb3J0Lmh0bWwgPSBURVhU
IFAKIC8vIC8vIFN0YXJ0ZWQgZmFpbGluZyBhdCByNTgxNTIKIC8vIEJVR1dLMzgwMzggOiBmYXN0
L3VybC9maWxlLWh0dHAtYmFzZS5odG1sID0gVEVYVAogCi0vLyBOZXcgbGF5b3V0VGVzdENvbnRy
b2xsZXIgZnVuY3Rpb24gYWRkZWQgYXQgcjU3OTkzCisvLyBOZXcgdGVzdFJ1bm5lciBmdW5jdGlv
biBhZGRlZCBhdCByNTc5OTMKIEJVR0NSNDI2OTYgOiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L2Nyb3NzLW9yaWdpbi1hdXRob3JpemF0aW9uLXdpdGgtZW1iZWRkZXIuaHRtbCA9IFRJTUVPVVQK
IAogLy8gV2ViS2l0IHJvbGwgNTgzMDQ6NTg0MDAKQEAgLTIzNTUsNyArMjM1NSw3IEBAIEJVR1dL
NjAwOTQgREVCVUcgOiBmYXN0L2VuY29kaW5nL3BhcnNlci0KIEJVR1dLNjAwOTQgREVCVUcgOiBm
YXN0L2VuY29kaW5nL3BhcnNlci10ZXN0cy0xMTAuaHRtbCA9IFBBU1MgVElNRU9VVAogQlVHV0s2
MDA5NCBERUJVRyA6IGZhc3QvZW5jb2RpbmcvcGFyc2VyLXRlc3RzLTEyMC5odG1sID0gUEFTUyBU
SU1FT1VUCiAKLS8vIEZsYWt5IHNpbmNlIGNyZWF0aW9uIGJlY2F1c2Ugd2UgbGFjayBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRTZXJpYWxpemVIVFRQTG9hZHMKKy8vIEZsYWt5IHNpbmNlIGNyZWF0
aW9uIGJlY2F1c2Ugd2UgbGFjayB0ZXN0UnVubmVyLnNldFNlcmlhbGl6ZUhUVFBMb2FkcwogQlVH
V0s1NzU5MyA6IGZhc3QvcHJlbG9hZGVyL2RvY3VtZW50LXdyaXRlLTIuaHRtbCA9IFRFWFQKIEJV
R1dLNTc1OTMgOiBmYXN0L3ByZWxvYWRlci9kb2N1bWVudC13cml0ZS5odG1sID0gVEVYVAogCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wZXJtaXNzaW9uY2xpZW50L2ltYWdl
LXBlcm1pc3Npb25zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vcGVybWlzc2lvbmNsaWVudC9pbWFnZS1wZXJtaXNzaW9ucy5odG1sCShyZXZpc2lvbiAx
MjQ2OTApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9wZXJtaXNzaW9uY2xpZW50
L2ltYWdlLXBlcm1pc3Npb25zLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSw5IEBACiA8
aHRtbD4KIDxoZWFkPgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcFBlcm1pc3Npb25DbGllbnRDYWxsYmFja3MoKTsKK2lmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5u
ZXIuZHVtcFBlcm1pc3Npb25DbGllbnRDYWxsYmFja3MoKTsKIH0KIAogZnVuY3Rpb24gbG9nKGEp
CkBAIC0xNCwxMCArMTQsMTAgQEAgZnVuY3Rpb24gbG9nKGEpCiBmdW5jdGlvbiBsb2FkZWQoKQog
ewogICAgIGxvZygiUEFTUzogZmlyc3QgaW1hZ2UgbG9hZGVkIik7Ci0gICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlciAmJiBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRJbWFnZXNBbGxv
d2VkKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRJbWFnZXNBbGxvd2VkKGZhbHNl
KTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgdGVzdFJ1bm5lci5zZXRJbWFnZXNBbGxv
d2VkKQorICAgICAgICB0ZXN0UnVubmVyLnNldEltYWdlc0FsbG93ZWQoZmFsc2UpOwogICAgIGVs
c2UKLSAgICAgICAgbG9nKCJUaGlzIHRlc3QgcmVxdWlyZXMgbGF5b3V0VGVzdENvbnRyb2xsZXIu
c2V0SW1hZ2VzQWxsb3dlZCwgc28gaXQgYmUgY2FuJ3QgcnVuIGluIGEgYnJvd3Nlci4iKTsKKyAg
ICAgICAgbG9nKCJUaGlzIHRlc3QgcmVxdWlyZXMgdGVzdFJ1bm5lci5zZXRJbWFnZXNBbGxvd2Vk
LCBzbyBpdCBiZSBjYW4ndCBydW4gaW4gYSBicm93c2VyLiIpOwogCiAgICAgLy8gTG9hZCBhbiBp
bWFnZSBub3QgaW4gY2FjaGUuCiAgICAgdmFyIGltZyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
J2ltZycpOwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vcGVybWlzc2lvbmNs
aWVudC9wbHVnaW4tcGVybWlzc2lvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL3Blcm1pc3Npb25jbGllbnQvcGx1Z2luLXBlcm1pc3Npb24uaHRtbAko
cmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vcGVybWlz
c2lvbmNsaWVudC9wbHVnaW4tcGVybWlzc2lvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDkg
KzEsOSBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwogfQogCiBmdW5jdGlvbiBsb2coYSkgCkBAIC0yMSwxNyArMjEsMTcgQEAg
ZnVuY3Rpb24gdGVzdCgpCiAKIGZ1bmN0aW9uIGRvbmUoKQogewotICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOwogfQogCiBmdW5jdGlvbiBsb2FkZWRGaXJzdCgpCiB7CiAgICAgbG9nKCJQQVNT
OiBmaXJzdCBwbHVnaW4gbG9hZGVkIik7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlciAmJiBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQbHVnaW5zQWxsb3dlZCkKLSAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UGx1Z2luc0FsbG93ZWQoZmFsc2UpOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lciAmJiB0ZXN0UnVubmVyLnNldFBsdWdpbnNBbGxvd2VkKQorICAgICAg
ICB0ZXN0UnVubmVyLnNldFBsdWdpbnNBbGxvd2VkKGZhbHNlKTsKICAgICBlbHNlCi0gICAgICAg
IGxvZygiVGhpcyB0ZXN0IHJlcXVpcmVzIGxheW91dFRlc3RDb250cm9sbGVyLnNldFBsdWdpbnNB
bGxvd2VkLCBzbyBpdCBiZSBjYW4ndCBydW4gaW4gYSBicm93c2VyLiIpOworICAgICAgICBsb2co
IlRoaXMgdGVzdCByZXF1aXJlcyB0ZXN0UnVubmVyLnNldFBsdWdpbnNBbGxvd2VkLCBzbyBpdCBi
ZSBjYW4ndCBydW4gaW4gYSBicm93c2VyLiIpOwogCiAgICAgdmFyIHBsdWdpbiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoJ2VtYmVkJyk7CiAgICAgcGx1Z2luLnNldEF0dHJpYnV0ZSgidHlwZSIs
ICJhcHBsaWNhdGlvbi94LXdlYmtpdC10ZXN0LW5ldHNjYXBlIik7CkluZGV4OiBMYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9wZXJtaXNzaW9uY2xpZW50L3NjcmlwdC1wZXJtaXNzaW9ucy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Blcm1pc3Np
b25jbGllbnQvc2NyaXB0LXBlcm1pc3Npb25zLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Blcm1pc3Npb25jbGllbnQvc2NyaXB0LXBlcm1p
c3Npb25zLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEsOSArMSw5IEBACiA8aHRtbD4KIDxoZWFk
PgogPHNjcmlwdD4KLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcFBlcm1pc3Npb25DbGllbnRDYWxsYmFja3MoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuZHVtcFBlcm1p
c3Npb25DbGllbnRDYWxsYmFja3MoKTsKIH0KIAogZnVuY3Rpb24gbG9nKGEpCkBAIC0xMywxMCAr
MTMsMTAgQEAgZnVuY3Rpb24gbG9nKGEpCiAKIGZ1bmN0aW9uIHRlc3QoKQogewotICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0U2Ny
aXB0c0FsbG93ZWQpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldFNjcmlwdHNBbGxv
d2VkKGZhbHNlKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgdGVzdFJ1bm5lci5zZXRT
Y3JpcHRzQWxsb3dlZCkKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRTY3JpcHRzQWxsb3dlZChmYWxz
ZSk7CiAgICAgZWxzZQotICAgICAgICBsb2coIlRoaXMgdGVzdCByZXF1aXJlcyBsYXlvdXRUZXN0
Q29udHJvbGxlci5zZXRTY3JpcHRzQWxsb3dlZCwgc28gaXQgYmUgY2FuJ3QgcnVuIGluIGEgYnJv
d3Nlci4iKTsKKyAgICAgICAgbG9nKCJUaGlzIHRlc3QgcmVxdWlyZXMgdGVzdFJ1bm5lci5zZXRT
Y3JpcHRzQWxsb3dlZCwgc28gaXQgYmUgY2FuJ3QgcnVuIGluIGEgYnJvd3Nlci4iKTsKIAogICAg
IC8vIFRyeSB0byBsb2FkIGFuIGV4dGVybmFsIHNjcmlwdC4KICAgICB2YXIgc2NyaXB0ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7CkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS9wZXJtaXNzaW9uY2xpZW50L3N0b3JhZ2UtcGVybWlzc2lvbi5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Blcm1pc3Npb25jbGllbnQv
c3RvcmFnZS1wZXJtaXNzaW9uLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3Rz
L3BsYXRmb3JtL2Nocm9taXVtL3Blcm1pc3Npb25jbGllbnQvc3RvcmFnZS1wZXJtaXNzaW9uLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsOCArMiw4IEBACiA8aGVhZD4KIDxzY3JpcHQ+CiAKLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOwogCiBmdW5jdGlvbiBsb2coYSkKIHsKQEAgLTE5LDEwICsxOSwxMCBAQCBmdW5j
dGlvbiBydW5UZXN0KCkKIAogICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpOwogCi0gICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciAmJiBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTdG9y
YWdlQWxsb3dlZCkKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0U3RvcmFnZUFsbG93
ZWQodHJ1ZSk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHRlc3RSdW5uZXIuc2V0U3Rv
cmFnZUFsbG93ZWQpCisgICAgICAgIHRlc3RSdW5uZXIuc2V0U3RvcmFnZUFsbG93ZWQodHJ1ZSk7
CiAgICAgZWxzZQotICAgICAgICBsb2coIlRoaXMgdGVzdCByZXF1aXJlcyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRTdG9yYWdlQWxsb3dlZCwgc28gaXQgYmUgY2FuJ3QgcnVuIGluIGEgYnJvd3Nl
ci4iKTsKKyAgICAgICAgbG9nKCJUaGlzIHRlc3QgcmVxdWlyZXMgdGVzdFJ1bm5lci5zZXRTdG9y
YWdlQWxsb3dlZCwgc28gaXQgYmUgY2FuJ3QgcnVuIGluIGEgYnJvd3Nlci4iKTsKICAgICAKICAg
ICBsb2coIkxlbmd0aCBpcyAiICsgbG9jYWxTdG9yYWdlLmxlbmd0aCk7CiAgICAgbG9nKCJWYWx1
ZSBmb3IgRk9PIGlzICIgKyBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgiRk9PIikpOwpAQCAtMzQsOCAr
MzQsOCBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICBsb2coIktleSBmb3IgaW5kZXggMCBpcyAi
ICsgbG9jYWxTdG9yYWdlLmtleSgwKSk7CiAgICAgCiAgICAgbG9nKCJEaXNhYmxpbmcgbG9jYWxT
dG9yYWdlIGFjY2Vzcy4iKTsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyICYm
IGxheW91dFRlc3RDb250cm9sbGVyLnNldFN0b3JhZ2VBbGxvd2VkKQotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRTdG9yYWdlQWxsb3dlZChmYWxzZSk7CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyICYmIHRlc3RSdW5uZXIuc2V0U3RvcmFnZUFsbG93ZWQpCisgICAgICAgIHRlc3RS
dW5uZXIuc2V0U3RvcmFnZUFsbG93ZWQoZmFsc2UpOwogCiAgICAgbG9nKCJMZW5ndGggaXMgIiAr
IGxvY2FsU3RvcmFnZS5sZW5ndGgpOwogICAgIGxvZygiVmFsdWUgZm9yIEZPTyBpcyAiICsgbG9j
YWxTdG9yYWdlLmdldEl0ZW0oIkZPTyIpKTsKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2d0
ay9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMjkwLDcgKzI5MCw3
IEBAIEJVR1dLR1RLIFNLSVAgOiBmYXN0L2Nzcy9pbWFnZS1zZXQtcGFyc2kKIC8vIEZvciBub3cs
IFdlYiBBdWRpbyBBUEkgaXMgZGlzYWJsZWQKIEJVR1dLR1RLIFNLSVAgOiB3ZWJhdWRpbyA9IFRF
WFQKIAotLy8gTmVlZHMgbGF5b3V0VGVzdENvbnRyb2xsZXIuZW5hYmxlQXV0b1Jlc2l6ZU1vZGUo
KQorLy8gTmVlZHMgdGVzdFJ1bm5lci5lbmFibGVBdXRvUmVzaXplTW9kZSgpCiBCVUdXS0dUSyBT
S0lQIDogZmFzdC9hdXRvcmVzaXplID0gVEVYVAogCiAvLyBUaGUgR1RLKyBidWlsZCBib3RzIGRv
bid0IHlldCBoYXZlIHRoZSBtdXNjbGUgdG8gcnVuIFdlYkdMIHRlc3RzLgpAQCAtOTg5LDcgKzk4
OSw3IEBAIEJVR1dLNTA3NDAgOiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2sKIEJVR1dLNTA3
NDAgOiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stc2VxdWVuY2VudW0uaHRtbCA9IFRFWFQK
IEJVR1dLNTA3NDAgOiBlZGl0aW5nL3NwZWxsaW5nL3NwZWxsY2hlY2stYXN5bmMtbXV0YXRpb24u
aHRtbCA9IFRFWFQKIAotLy8gRFJUIGRvZXMgbm90IG9iZXkgbGF5b3V0VGVzdENvbnRyb2xsZXIu
YWRkVVJMVG9SZWRpcmVjdCgpCisvLyBEUlQgZG9lcyBub3Qgb2JleSB0ZXN0UnVubmVyLmFkZFVS
TFRvUmVkaXJlY3QoKQogQlVHV0tHVEsgOiBodHRwL3Rlc3RzL2xvYWRpbmcvY3Jvc3Mtb3JpZ2lu
LVhIUi13aWxsTG9hZFJlcXVlc3QuaHRtbCA9IFRFWFQKIAogQlVHV0s0MDI3MiA6IGNhbnZhcy9w
aGlsaXAvdGVzdHMvMmQuaW1hZ2VEYXRhLm9iamVjdC5yb3VuZC5odG1sID0gVEVYVApAQCAtMTAw
MywxMCArMTAwMywxMCBAQCBCVUdXSzUzNzA3IDogaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVO
CiBCVUdXS0dUSyA6IGVkaXRpbmcvc3BlbGxpbmcvZ3JhbW1hci5odG1sID0gVEVYVAogQlVHV0tH
VEsgOiBlZGl0aW5nL3NwZWxsaW5nL2dyYW1tYXItcGFzdGUuaHRtbCA9IFRFWFQKIAotLy8gbGF5
b3V0VGVzdENvbnRyb2xsZXI6OnNldFRleHREaXJlY3Rpb24oKSBpcyBub3QgaW1wbGVtZW50ZWQu
CisvLyB0ZXN0UnVubmVyOjpzZXRUZXh0RGlyZWN0aW9uKCkgaXMgbm90IGltcGxlbWVudGVkLgog
QlVHV0tHVEsgOiBmYXN0L2h0bWwvc2V0LXRleHQtZGlyZWN0aW9uLmh0bWwgPSBURVhUCiAKLS8v
IGxheW91dFRlc3RDb250cm9sbGVyLm92ZXJyaWRlUHJlZmVyZW5jZSgiV2ViS2l0RGVmYXVsdEZv
bnRTaXplIi4uLikgZG9lcyBub3QgdGFrZSBpbnRvIGFjY291bnQgc2NyZWVuIERQSQorLy8gdGVz
dFJ1bm5lci5vdmVycmlkZVByZWZlcmVuY2UoIldlYktpdERlZmF1bHRGb250U2l6ZSIuLi4pIGRv
ZXMgbm90IHRha2UgaW50byBhY2NvdW50IHNjcmVlbiBEUEkKIEJVR1dLNTcxNjAgOiBmYXN0L2hh
cm5lc3Mvb3ZlcnJpZGUtcHJlZmVyZW5jZXMtMi5odG1sID0gVEVYVAogCiBCVUdXSzU4MzA5IDog
ZmFzdC9jYW52YXMvRHJhd0ltYWdlU2luZ2xlUGl4ZWxTdHJldGNoLmh0bWwgPSBURVhUCkBAIC0x
MDI2LDcgKzEwMjYsNyBAQCBCVUdXSzYxMTE4IDogZnVsbHNjcmVlbi9mdWxsLXNjcmVlbi1yZXN0
CiAKIEJVR1dLNjE2MzAgOiBmYXN0L2V2ZW50cy9kcm9wem9uZS0wMDUuaHRtbCA9IFRFWFQKIAot
Ly8gTmVlZCBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRTaG91bGRTdGF5T25QYWdlQWZ0ZXJIYW5k
bGluZ0JlZm9yZVVubG9hZAorLy8gTmVlZCB0ZXN0UnVubmVyLnNldFNob3VsZFN0YXlPblBhZ2VB
ZnRlckhhbmRsaW5nQmVmb3JlVW5sb2FkCiBCVUdXSzY3MDE0IDogZmFzdC9sb2FkZXIvZm9ybS1z
dWJtaXNzaW9uLWFmdGVyLWJlZm9yZXVubG9hZC1jYW5jZWwuaHRtbCA9IFRFWFQKIAogQlVHV0s2
NzcxMyA6IGFjY2Vzc2liaWxpdHkvdGV4dGJveC1yb2xlLXJlcG9ydHMtc2VsZWN0aW9uLmh0bWwg
PSBURVhUCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9pbnB1dC9lZGl0
LWRpY3RhdGVkLXRleHQtd2l0aC1hbHRlcm5hdGl2ZS5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9lZGl0aW5nL2lucHV0L2VkaXQtZGljdGF0ZWQtdGV4dC13aXRo
LWFsdGVybmF0aXZlLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9lZGl0aW5nL2lucHV0L2VkaXQtZGljdGF0ZWQtdGV4dC13aXRoLWFsdGVybmF0aXZl
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIxLDExICsyMSwxMSBAQCBib2R5IHsgbWFyZ2luOiAw
OyBwYWRkaW5nOiAwIH0KICAgICAgICAgY29uc29sZV9tZXNzYWdlcy5hcHBlbmRDaGlsZChpdGVt
KTsKICAgICB9CiAgICAgCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICAKICAgICAgICAgdHJ5IHsKIAot
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICB2YXIgdGVzdEFyZWEgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdCIpOwogICAgICAgICAgICAgdGVzdEFyZWEuZm9j
dXMoKTsKIApJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2VkaXRpbmcvaW5wdXQvaW5z
ZXJ0LWRpY3RhdGVkLXRleHQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvZWRpdGluZy9pbnB1dC9pbnNlcnQtZGljdGF0ZWQtdGV4dC5odG1sCShyZXZpc2lvbiAx
MjQ2OTApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZWRpdGluZy9pbnB1dC9pbnNlcnQt
ZGljdGF0ZWQtdGV4dC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMSwxMSArMjEsMTEgQEAgYm9k
eSB7IG1hcmdpbjogMDsgcGFkZGluZzogMCB9CiAgICAgICAgIGNvbnNvbGVfbWVzc2FnZXMuYXBw
ZW5kQ2hpbGQoaXRlbSk7CiAgICAgfQogICAgIAotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgCiAgICAg
ICAgIHRyeSB7CiAKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAgICAgICAgICAgdmFy
IHRlc3RBcmVhID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3QiKTsKICAgICAgICAgICAg
IHRlc3RBcmVhLmZvY3VzKCk7CiAKSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL21hYy9mYXN0
L0FwcGxlU2NyaXB0LzAwMS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L0FwcGxlU2NyaXB0LzAwMS5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9BcHBsZVNjcmlwdC8wMDEuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTQsMTEgKzE0LDExIEBAIEFuIGF1dG9tYXRlZCB0ZXN0IGZvciBiYXNpYyBBcHBs
ZVNjcmlwdCAKICAgICAgICAgaXRlbS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZShtZXNzYWdlKSk7CiAgICAgICAgIGNvbnNvbGVfbWVzc2FnZXMuYXBwZW5kQ2hpbGQoaXRlbSk7
CiAgICAgfQotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKICAgICAgICAgCiAgICAgICAgIHRyeSB7CiAgICAgICAgIAot
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgICAgICAgICBkb2N1bWVudC5leGVjQ29t
bWFuZCgiU2VsZWN0QWxsIik7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGxvZyhhcHBsZVNj
cmlwdENvbnRyb2xsZXIuZG9KYXZhU2NyaXB0KCIyKjI7IikpOwpJbmRleDogTGF5b3V0VGVzdHMv
cGxhdGZvcm0vbWFjL2Zhc3QvQXBwbGVTY3JpcHQvYXJyYXkuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9BcHBsZVNjcmlwdC9hcnJheS5odG1sCShyZXZp
c2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9BcHBsZVNjcmlw
dC9hcnJheS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMywxMSArMTMsMTEgQEAKICAgICAgICAg
aXRlbS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlKSk7CiAgICAg
ICAgIGNvbnNvbGVfbWVzc2FnZXMuYXBwZW5kQ2hpbGQoaXRlbSk7CiAgICAgfQotICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKICAgICAgICAgCiAgICAgICAgIHRyeSB7CiAgICAgICAgIAotICAgICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGxvZyhhcHBsZVNjcmlwdENvbnRy
b2xsZXIuZG9KYXZhU2NyaXB0KCJuZXcgQXJyYXkoMSwgMiwgJ3RocmVlJyk7IikpOwogICAgICAg
ICAgICAgbG9nKGFwcGxlU2NyaXB0Q29udHJvbGxlci5kb0phdmFTY3JpcHQoImFyciA9IG5ldyBB
cnJheTsgYXJyWydhJ10gPSAnYSc7IGFyclsyXSA9IDI7IGFycjsiKSk7CkluZGV4OiBMYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9BcHBsZVNjcmlwdC9kYXRlLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3QvQXBwbGVTY3JpcHQvZGF0ZS5odG1sCShy
ZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9BcHBsZVNj
cmlwdC9kYXRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEzLDExICsxMywxMSBAQAogICAgICAg
ICBpdGVtLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UpKTsKICAg
ICAgICAgY29uc29sZV9tZXNzYWdlcy5hcHBlbmRDaGlsZChpdGVtKTsKICAgICB9Ci0gICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgeworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgewogICAgICAgICAKICAgICAgICAgdHJ5IHsKICAgICAgICAgCi0gICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKIAogICAgICAgICAgICAgLy8gMHhjMDBkNmJlNSA9PSBNb24gRmViIDA2IDIw
MDYgMjE6MTE6MDEKICAgICAgICAgICAgIGxvZyhhcHBsZVNjcmlwdENvbnRyb2xsZXIuZG9KYXZh
U2NyaXB0KCJuZXcgRGF0ZSgyMDA2LDEsNiwyMSwxMSwxKSIpKTsKSW5kZXg6IExheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9mYXN0L29iamMvZG9tLWh0bWwtc2VsZWN0LWFjdGl2YXRlLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRtbC1z
ZWxlY3QtYWN0aXZhdGUuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvcGxh
dGZvcm0vbWFjL2Zhc3Qvb2JqYy9kb20taHRtbC1zZWxlY3QtYWN0aXZhdGUuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtNjksMTIgKzY5LDEyIEBACiAgICAgLy8gLS0tLS0tLS0tLS0tCiAKICAgICBm
dW5jdGlvbiB0ZXN0KCkgewotICAgICAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgeworICAgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICBsb2co
IlRoaXMgdGVzdCBjYW4gb25seSBiZSBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIik7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiAgICAg
ICAgIGxvZygiVGhpcyB0ZXN0cyB0aGUgUHJpdmF0ZSBPYmplY3RpdmUtQyBET00gSFRNTCBCaW5k
aW5ncyBBUEkgZm9yIHNlbGVjdGluZyBpbmRleGVzIG9mIGEgPHNlbGVjdD4gdGhhdCBhbHNvIGFj
dGl2YXRlIHRoZSBcImNoYW5nZVwiIGV2ZW50LiIpOwogICAgICAgICB3cmFwcGVyKCJTZWxlY3Qg
YSBzaW5nbGUgaW5kZXggaW4gYSBub3JtYWwgPHNlbGVjdD4uIiwgInNpbmdsZSIsIHRlc3RTaW5n
bGUpOwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL2Zhc3Qvb2JqYy9sb25nbG9uZ1Rl
c3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFzdC9vYmpj
L2xvbmdsb25nVGVzdC5odG1sCShyZXZpc2lvbiAxMjQ2OTApCisrKyBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvZmFzdC9vYmpjL2xvbmdsb25nVGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0y
NywxMiArMjcsMTIgQEAKIAogICAgICAgICAgICAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
KyAgICAgICAgICAgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgICAgICAg
ICAgICAgIGxvZygiVGhpcyB0ZXN0IGNhbiBvbmx5IGJlIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJl
ZS4iKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KIAot
ICAgICAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAKICAgICAgICAgICAgICAg
ICB0ZXN0TG9uZ0xvbmcoMCwgMCk7CiAgICAgICAgICAgICAgICAgdGVzdExvbmdMb25nKDEsIDEp
OwpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvdmlldy9maXhlZC1sYXlvdXQtc2l6ZS5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL3F0L3ZpZXcvZml4ZWQtbGF5
b3V0LXNpemUuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvdmlldy9maXhlZC1sYXlvdXQtc2l6ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEs
MyBAQAogPHNjcmlwdD4KLWxheW91dFRlc3RDb250cm9sbGVyLnNldEZpeGVkQ29udGVudHNTaXpl
KDEwMjQsIDc2OCk7Cit0ZXN0UnVubmVyLnNldEZpeGVkQ29udGVudHNTaXplKDEwMjQsIDc2OCk7
CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9pbnZlcnRlZC1jb2xv
cnMvbm9uLWNvbXBvc2l0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9y
bS93aW4vaW52ZXJ0ZWQtY29sb3JzL25vbi1jb21wb3NpdGVkLmh0bWwJKHJldmlzaW9uIDEyNDY5
MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9pbnZlcnRlZC1jb2xvcnMvbm9uLWNvbXBv
c2l0ZWQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTUsOCArMTUsOCBAQAogICAgICAgICB9CiAg
ICAgPC9zdHlsZT4KICAgICA8c2NyaXB0PgotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub3ZlcnJpZGVQcmVm
ZXJlbmNlKCJXZWJLaXRTaG91bGRJbnZlcnRDb2xvcnMiLCAiMSIpOworICAgICAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5j
ZSgiV2ViS2l0U2hvdWxkSW52ZXJ0Q29sb3JzIiwgIjEiKTsKICAgICA8L3NjcmlwdD4KIDwvaGVh
ZD4KIDxib2R5PgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL3N2Zy9XM0MtU1ZHLTEu
MS9yZXNvdXJjZXMvcnVuLXdlYmtpdC10ZXN0cy1lcGlsb2d1ZS5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9zdmcvVzNDLVNWRy0xLjEvcmVzb3VyY2VzL3J1bi13
ZWJraXQtdGVzdHMtZXBpbG9ndWUuaHRtbAkocmV2aXNpb24gMTI0NjkwKQorKysgTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL3N2Zy9XM0MtU1ZHLTEuMS9yZXNvdXJjZXMvcnVuLXdlYmtpdC10ZXN0
cy1lcGlsb2d1ZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMyBAQAogPHNjcmlwdD4K
LWxheW91dFRlc3RDb250cm9sbGVyLmNsZWFyUGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0KCk7Cit0
ZXN0UnVubmVyLmNsZWFyUGVyc2lzdGVudFVzZXJTdHlsZVNoZWV0KCk7CiA8L3NjcmlwdD4KSW5k
ZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9zdmcvVzNDLVNWRy0xLjEvcmVzb3VyY2VzL3J1
bi13ZWJraXQtdGVzdHMtcHJvbG9ndWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vc3ZnL1czQy1TVkctMS4xL3Jlc291cmNlcy9ydW4td2Via2l0LXRlc3RzLXBy
b2xvZ3VlLmh0bWwJKHJldmlzaW9uIDEyNDY5MCkKKysrIExheW91dFRlc3RzL3BsYXRmb3JtL3dp
bi9zdmcvVzNDLVNWRy0xLjEvcmVzb3VyY2VzL3J1bi13ZWJraXQtdGVzdHMtcHJvbG9ndWUuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMgQEAKIDxzY3JpcHQ+Ci1sYXlvdXRUZXN0Q29u
dHJvbGxlci5zZXRQZXJzaXN0ZW50VXNlclN0eWxlU2hlZXRMb2NhdGlvbihkb2N1bWVudC5kb2N1
bWVudFVSSS5yZXBsYWNlKC9bXi9dKiQvZywgIiIpICsgIk1hYy1jb21wYXRpYmxlLWZvbnQtZmFs
bGJhY2suY3NzIik7Cit0ZXN0UnVubmVyLnNldFBlcnNpc3RlbnRVc2VyU3R5bGVTaGVldExvY2F0
aW9uKGRvY3VtZW50LmRvY3VtZW50VVJJLnJlcGxhY2UoL1teL10qJC9nLCAiIikgKyAiTWFjLWNv
bXBhdGlibGUtZm9udC1mYWxsYmFjay5jc3MiKTsKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVz
dHMvd2ViYXJjaGl2ZS9sb2FkaW5nL3Jlc291cmNlcy9qYXZhc2NyaXB0LXVybC1pZnJhbWUtY3Jh
c2gud2ViYXJjaGl2ZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09CkNhbm5vdCBkaXNwbGF5OiBmaWxlIG1hcmtlZCBhcyBh
IGJpbmFyeSB0eXBlLgpzdm46bWltZS10eXBlID0gYXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtCgpZ
bkJzYVhOME1ERFNBUUlERGw4UUQxZGxZazFoYVc1U1pYTnZkWEpqWlY4UUUxZGxZbE4xWW1aeVlX
MWxRWEpqYUdsMlpYUFZCQVVHCkJ3Z0pDZ3NNRFY4UUcxZGxZbEpsYzI5MWNtTmxWR1Y0ZEVWdVky
OWthVzVuVG1GdFpWOFFGRmRsWWxKbGMyOTFjbU5sUm5KaGJXVk8KWVcxbFhsZGxZbEpsYzI5MWNt
TmxWVkpNWHhBUFYyVmlVbVZ6YjNWeVkyVkVZWFJoWHhBVFYyVmlVbVZ6YjNWeVkyVk5TVTFGVkhs
dwpaVlZWVkVZdE9GQmZFRzVtYVd4bE9pOHZMMVp2YkhWdFpYTXZSR0YwWVM5emRtNHZUM0JsYmxO
dmRYSmpaUzlNWVhsdmRYUlVaWE4wCmN5OTNaV0poY21Ob2FYWmxMMnh2WVdScGJtY3ZhbUYyWVhO
amNtbHdkQzExY213dGFXWnlZVzFsTFdOeVlYTm9MWGRsWW1GeVkyaHAKZG1VdWFIUnRiRThSQVJr
OGFIUnRiRDQ4YUdWaFpENDhMMmhsWVdRK1BHSnZaSGsrQ2t4dllXUnBibWNnZEdocGN5QjNaV0po
Y21ObwphWFpsSUhkcGRHZ2dZU0FpYm05dUxXVnRjSFI1SUdwaGRtRnpZM0pwY0hRZ1ZWSk1JR2xt
Y21GdFpTSWdjMmh2ZFd4a0lHNXZkQ0JqCmNtRnphQzQ4WW5JK0NqeHBabkpoYldVZ2MzSmpQU0px
WVhaaGMyTnlhWEIwT2ljbklqNDhMMmxtY21GdFpUNEtQSE5qY21sd2RENEsKYVdZZ0tIZHBibVJ2
ZHk1MFpYTjBVblZ1Ym1WeUtRb2dJQ0FnYzJWMFZHbHRaVzkxZENnaWRHVnpkRkoxYm01bGNpNXVi
M1JwWm5sRQpiMjVsS0NrN0lpd2dNQ2s3Q2p3dmMyTnlhWEIwUGdvOEwySnZaSGsrUEM5b2RHMXNQ
bGwwWlhoMEwyaDBiV3loRDlFQkVOVUVCUVlICkNCRVNFeFFWVlZWVVJpMDRYeEFnUENFdExXWnlZ
VzFsVUdGMGFDQXZMendoTFMxbWNtRnRaVEF0TFQ0dExUNWJZV0p2ZFhRNllteGgKYm10UEVDYzhh
SFJ0YkQ0OGFHVmhaRDQ4TDJobFlXUStQR0p2WkhrK1BDOWliMlI1UGp3dmFIUnRiRDVaZEdWNGRD
OW9kRzFzQUFnQQpEUUFmQURVQVFBQmVBSFVBaEFDV0FLd0FzZ0N6QVNRQ1FRSkxBazBDVUFKYkFt
RUNoQUtRQXJvQUFBQUFBQUFDQVFBQUFBQUFBQUFXCkFBQUFBQUFBQUFBQUFBQUFBQUFDeEE9PQoK
</data>
<flag name="review"
          id="166221"
          type_id="1"
          status="+"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>