<?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>89263</bug_id>
          
          <creation_ts>2012-06-15 18:49:44 -0700</creation_ts>
          <short_desc>Use testRunner instead of layoutTestController in storage, tables, touchadjustments, and transforms tests</short_desc>
          <delta_ts>2012-06-15 19:16:09 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>88210</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>darin</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tkent</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>650679</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-15 18:49:44 -0700</bug_when>
    <thetext>Use testRunner instead of layoutTestController in storage, tables, touchadjustments, and transforms tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650681</commentid>
    <comment_count>1</comment_count>
      <attachid>147936</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-15 18:51:24 -0700</bug_when>
    <thetext>Created attachment 147936
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650682</commentid>
    <comment_count>2</comment_count>
      <attachid>147937</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-15 18:54:06 -0700</bug_when>
    <thetext>Created attachment 147937
Reverted unrelated newline changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>650690</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-06-15 19:16:09 -0700</bug_when>
    <thetext>Committed r120516: &lt;http://trac.webkit.org/changeset/120516&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147936</attachid>
            <date>2012-06-15 18:51:24 -0700</date>
            <delta_ts>2012-06-15 18:54:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-89263-20120615185124.patch</filename>
            <type>text/plain</type>
            <size>102079</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEzMCBAQAorMjAxMi0wNi0xNSAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgdGVzdFJ1bm5lciBpbnN0ZWFkIG9mIGxh
eW91dFRlc3RDb250cm9sbGVyIGluIHN0b3JhZ2UsIHRhYmxlcywgdG91Y2hhZGp1c3RtZW50cywg
YW5kIHRyYW5zZm9ybXMgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg5MjYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3Jlc291cmNlcy9ldmVudFRl
c3RIYXJuZXNzLmpzOgorICAgICAgICAodGVzdFN0b3JhZ2VzLmFsbERvbmUpOgorICAgICAgICAq
IHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvZGVsZXRlLXJlbW92YWwuaHRtbDoKKyAg
ICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2VudW1lcmF0ZS1zdG9yYWdl
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9lbnVtZXJh
dGUtd2l0aC1sZW5ndGgtYW5kLWtleS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFn
ZS9sb2NhbHN0b3JhZ2UvaW5kZXgtZ2V0LWFuZC1zZXQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3ByaXZhdGUtYnJvd3NpbmctYWZmZWN0cy1zdG9yYWdl
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9yZXNvdXJj
ZXMvd2luZG93LW9wZW4tc2Vjb25kLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdl
L2xvY2Fsc3RvcmFnZS9zaW1wbGUtdXNhZ2UuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0
b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci0xLXByZXBh
cmUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3Jh
Z2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci0yLWNyZWF0ZS5odG1sOgorICAgICAgICAqIHN0b3Jh
Z2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIvc3RvcmFnZS10cmFja2Vy
LTMtZGVsZXRlLWFsbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdl
L2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItMy1kZWxldGUtYWxs
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdl
dHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNC1jcmVhdGUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci01
LWRlbGV0ZS1vbmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9s
b2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIvc3RvcmFnZS10cmFja2VyLTUtZGVsZXRlLW9uZS5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRy
YWNrZXIvc3RvcmFnZS10cmFja2VyLTYtY3JlYXRlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9k
b21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNy11
c2FnZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3Rv
cmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNy11c2FnZS5odG1sOgorICAgICAg
ICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RyaW5nLWNvbnZlcnNpb24uaHRt
bDoKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3dpbmRvdy1vcGVu
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3NjcmlwdC10ZXN0cy9zdG9yYWdl
LWZ1bmN0aW9ucy1ub3Qtb3ZlcndyaXR0ZW4uanM6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9y
YWdlL3Nlc3Npb25zdG9yYWdlL2RlbGV0ZS1yZW1vdmFsLmh0bWw6CisgICAgICAgICogc3RvcmFn
ZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2VudW1lcmF0ZS1zdG9yYWdlLmh0bWw6CisgICAg
ICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2VudW1lcmF0ZS13aXRoLWxl
bmd0aC1hbmQta2V5Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25z
dG9yYWdlL2luZGV4LWdldC1hbmQtc2V0Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9y
YWdlL3Nlc3Npb25zdG9yYWdlL3ByaXZhdGUtYnJvd3NpbmctYWZmZWN0cy1zdG9yYWdlLmh0bWw6
CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3Jlc291cmNlcy93
aW5kb3ctb3Blbi1zZWNvbmQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vz
c2lvbnN0b3JhZ2Uvc2ltcGxlLXVzYWdlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9y
YWdlL3Nlc3Npb25zdG9yYWdlL3N0cmluZy1jb252ZXJzaW9uLmh0bWw6CisgICAgICAgICogc3Rv
cmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3dpbmRvdy1vcGVuLmh0bWw6CisgICAgICAg
ICogc3RvcmFnZS9kb21zdG9yYWdlL3dpbmRvdy1hdHRyaWJ1dGVzLWV4aXN0Lmh0bWw6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9pbmRleC1wcmV2LW5vLWR1cGxpY2F0ZS5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3R1dG9yaWFsLmh0bWw6CisgICAgICAg
ICogc3RvcmFnZS93ZWJzcWwvY2hhbmdlLXZlcnNpb24taGFuZGxlLXJldXNlLmpzOgorICAgICAg
ICAoZmluaXNoVGVzdCk6CisgICAgICAgICogc3RvcmFnZS93ZWJzcWwvY2hhbmdlLXZlcnNpb24t
bm8tY3Jhc2gtb24tcHJlZmxpZ2h0LWZhaWx1cmUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL3dl
YnNxbC9jaGFuZ2UtdmVyc2lvbi5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL2Nsb3Nl
LWR1cmluZy1zdHJlc3MtdGVzdC5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL2RhdGFi
YXNlLWxvY2stYWZ0ZXItcmVsb2FkLmh0bWw6CisgICAgICAgICogc3RvcmFnZS93ZWJzcWwvZW1w
dHktc3RhdGVtZW50Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZS1zcWwt
YXJncy5qczoKKyAgICAgICAgKHJ1blRyYW5zYWN0aW9uVGVzdHMpOgorICAgICAgICAqIHN0b3Jh
Z2Uvd2Vic3FsL2V4ZWN1dGVzcWwtYWNjZXB0cy1vbmx5LW9uZS1zdGF0ZW1lbnQuaHRtbDoKKyAg
ICAgICAgKiBzdG9yYWdlL3dlYnNxbC9oYXNoLWNoYW5nZS13aXRoLXhoci5qczoKKyAgICAgICAg
KHN0b3BUZXN0KToKKyAgICAgICAgKiBzdG9yYWdlL3dlYnNxbC9tdWx0aXBsZS1kYXRhYmFzZXMt
Z2FyYmFnZS1jb2xsZWN0aW9uLmpzOgorICAgICAgICAoY2hlY2tDb21wbGV0aW9uKToKKyAgICAg
ICAgKiBzdG9yYWdlL3dlYnNxbC9tdWx0aXBsZS10cmFuc2FjdGlvbnMtb24tZGlmZmVyZW50LWhh
bmRsZXMuanM6CisgICAgICAgIChjaGVja0NvbXBsZXRpb24pOgorICAgICAgICAqIHN0b3JhZ2Uv
d2Vic3FsL211bHRpcGxlLXRyYW5zYWN0aW9ucy5qczoKKyAgICAgICAgKGNoZWNrQ29tcGxldGlv
bik6CisgICAgICAgICogc3RvcmFnZS93ZWJzcWwvbnVsbC1jYWxsYmFja3MuaHRtbDoKKyAgICAg
ICAgKiBzdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNrLWlzb2xh
dGVkLXdvcmxkLmh0bWw6CisgICAgICAgICogc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS1j
cmVhdGlvbi1jYWxsYmFjay5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0
YWJhc2UtZW1wdHktdmVyc2lvbi5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL29wZW4t
ZGF0YWJhc2Utb3Zlci1xdW90YS5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL29wZW4t
ZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24uaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL3dlYnNx
bC9vcGVuLWRhdGFiYXNlLXdoaWxlLXRyYW5zYWN0aW9uLWluLXByb2dyZXNzLmpzOgorICAgICAg
ICAocnVuVGVzdCk6CisgICAgICAgICogc3RvcmFnZS93ZWJzcWwvcHJpdmF0ZS1icm93c2luZy1u
b3JlYWQtbm93cml0ZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL3F1b3RhLXRyYWNr
aW5nLmh0bWw6CisgICAgICAgICogc3RvcmFnZS93ZWJzcWwvcmVhZC1hbmQtd3JpdGUtdHJhbnNh
Y3Rpb25zLWRvbnQtcnVuLXRvZ2V0aGVyLmpzOgorICAgICAgICAodGVybWluYXRlVGVzdCk6Cisg
ICAgICAgICogc3RvcmFnZS93ZWJzcWwvcmVhZC10cmFuc2FjdGlvbnMtcnVubmluZy1jb25jdXJy
ZW50bHkuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL3dlYnNxbC9yZXNvdXJjZXMvZGF0YWJhc2Ut
Y29tbW9uLmpzOgorICAgICAgICAoc2V0dXBBbmRSdW5UZXN0KToKKyAgICAgICAgKiBzdG9yYWdl
L3dlYnNxbC9yZXNvdXJjZXMvZGF0YWJhc2UtbG9jay1hZnRlci1yZWxvYWQtMi5odG1sOgorICAg
ICAgICAqIHN0b3JhZ2Uvd2Vic3FsL3NxbC1kYXRhLXR5cGVzLmpzOgorICAgICAgICAobm90aWZ5
RG9uZSk6CisgICAgICAgIChydW5UZXN0KToKKyAgICAgICAgKiBzdG9yYWdlL3dlYnNxbC9zcWwt
ZXJyb3ItY29kZXMuanM6CisgICAgICAgIChmaW5pc2hUZXN0KToKKyAgICAgICAgKHJ1blRlc3Qp
OgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1lcnJvci1jYWxsYmFjay1pc29s
YXRlZC13b3JsZC5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1lcnJv
ci1jYWxsYmFjay5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1zdWNj
ZXNzLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxkLmh0bWw6CisgICAgICAgICogc3RvcmFnZS93ZWJz
cWwvc3VjY2Vzcy1jYWxsYmFjay5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL3Rlc3Qt
YXV0aG9yaXplci5qczoKKyAgICAgICAgKHRlcm1pbmF0ZVRlc3QpOgorICAgICAgICAqIHN0b3Jh
Z2Uvd2Vic3FsL3RyYW5zYWN0aW9uLWNhbGxiYWNrLWV4Y2VwdGlvbi1jcmFzaC5odG1sOgorICAg
ICAgICAqIHN0b3JhZ2Uvd2Vic3FsL3RyYW5zYWN0aW9uLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxk
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tZXJyb3ItY2FsbGJh
Y2staXNvbGF0ZWQtd29ybGQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL3dlYnNxbC90cmFuc2Fj
dGlvbi1lcnJvci1jYWxsYmFjay5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL3RyYW5z
YWN0aW9uLXN1Y2Nlc3MtY2FsbGJhY2staXNvbGF0ZWQtd29ybGQuaHRtbDoKKyAgICAgICAgKiB0
YWJsZXMvaGl0dGVzdGluZy9maWxsdGFibGUtZW1wdHljZWxscy5odG1sOgorICAgICAgICAqIHRh
Ymxlcy9oaXR0ZXN0aW5nL2ZpbGx0YWJsZS1sZXZlbHMuaHRtbDoKKyAgICAgICAgKiB0YWJsZXMv
aGl0dGVzdGluZy9maWxsdGFibGUtb3V0bGluZS5odG1sOgorICAgICAgICAqIHRhYmxlcy9oaXR0
ZXN0aW5nL2ZpbGx0YWJsZS1ydGwuaHRtbDoKKyAgICAgICAgKiB0YWJsZXMvaGl0dGVzdGluZy9m
aWxsdGFibGUtc3RyZXNzLmh0bWw6CisgICAgICAgICogdGFibGVzL2xheWVyaW5nL3BhaW50LXRl
c3QtbGF5ZXJpbmctMS5odG1sOgorICAgICAgICAqIHRhYmxlcy9sYXllcmluZy9wYWludC10ZXN0
LWxheWVyaW5nLTIuaHRtbDoKKyAgICAgICAgKiB0YWJsZXMvdGFibGUtc2VjdGlvbi1vdmVyZmxv
dy1jbGlwLWNyYXNoLmh0bWw6CisgICAgICAgICogdG91Y2hhZGp1c3RtZW50L2Jsb2NrLXRlc3Rp
bmcuaHRtbDoKKyAgICAgICAgKiB0b3VjaGFkanVzdG1lbnQvZXZlbnQtdHJpZ2dlcmVkLXdpZGdl
dHMuaHRtbDoKKyAgICAgICAgKiB0b3VjaGFkanVzdG1lbnQvaHRtbC1sYWJlbC5odG1sOgorICAg
ICAgICAqIHRvdWNoYWRqdXN0bWVudC9pZnJhbWUuaHRtbDoKKyAgICAgICAgKiB0b3VjaGFkanVz
dG1lbnQvbmVzdGVkLXRvdWNoLmh0bWw6CisgICAgICAgICogdG91Y2hhZGp1c3RtZW50L3Njcm9s
bC1kZWxlZ2F0aW9uL2lmcmFtZS13aXRoLW1haW5mcmFtZS1zY3JvbGwtb2Zmc2V0Lmh0bWw6Cisg
ICAgICAgICogdG91Y2hhZGp1c3RtZW50L3Njcm9sbC1vZmZzZXQuaHRtbDoKKyAgICAgICAgKiB0
b3VjaGFkanVzdG1lbnQvdG91Y2gtaW5saW5lcy5odG1sOgorICAgICAgICAqIHRvdWNoYWRqdXN0
bWVudC96b29tLWJhc2ljLmh0bWw6CisgICAgICAgICogdG91Y2hhZGp1c3RtZW50L3pvb20tZmF0
ZmluZ2VyLmh0bWw6CisgICAgICAgICogdHJhbnNmb3Jtcy8yZC9jb21wb3VuZC0yZC10cmFuc2Zv
cm1zLmh0bWw6CisgICAgICAgICogdHJhbnNmb3Jtcy8yZC9jc3NtYXRyaXgtMmQtem9vbS5odG1s
OgorICAgICAgICAqIHRyYW5zZm9ybXMvMmQvc2V0LXRyYW5zZm9ybS1hbmQtdG9wLmh0bWw6Cisg
ICAgICAgICogdHJhbnNmb3Jtcy8yZC90cmFuc2Zvcm0tMmQuaHRtbDoKKyAgICAgICAgKiB0cmFu
c2Zvcm1zLzJkL3RyYW5zZm9ybS1hY2N1cmFjeS5odG1sOgorICAgICAgICAqIHRyYW5zZm9ybXMv
M2QvZ2VuZXJhbC8zZHRyYW5zZm9ybS12YWx1ZXMuaHRtbDoKKyAgICAgICAgKiB0cmFuc2Zvcm1z
LzNkL2dlbmVyYWwvY3NzbWF0cml4LTNkLXpvb20uaHRtbDoKKyAgICAgICAgKiB0cmFuc2Zvcm1z
LzNkL2dlbmVyYWwvbWF0cml4LXdpdGgtem9vbS0zZC5odG1sOgorICAgICAgICAqIHRyYW5zZm9y
bXMvM2QvZ2VuZXJhbC90cmFuc2Zvcm0tb3JpZ2luLXotY2hhbmdlLmh0bWw6CisgICAgICAgICog
dHJhbnNmb3Jtcy8zZC9oaXQtdGVzdGluZy9oaXQtcHJlc2VydmVzLTNkLmh0bWw6CisgICAgICAg
ICogdHJhbnNmb3Jtcy8zZC9wb2ludC1tYXBwaW5nLzNkLXBvaW50LW1hcHBpbmctMi5odG1sOgor
ICAgICAgICAqIHRyYW5zZm9ybXMvM2QvcG9pbnQtbWFwcGluZy8zZC1wb2ludC1tYXBwaW5nLTMu
aHRtbDoKKyAgICAgICAgKiB0cmFuc2Zvcm1zLzNkL3BvaW50LW1hcHBpbmcvM2QtcG9pbnQtbWFw
cGluZy1kZWVwLmh0bWw6CisgICAgICAgICogdHJhbnNmb3Jtcy8zZC9wb2ludC1tYXBwaW5nLzNk
LXBvaW50LW1hcHBpbmctb3JpZ2lucy5odG1sOgorICAgICAgICAqIHRyYW5zZm9ybXMvM2QvcG9p
bnQtbWFwcGluZy8zZC1wb2ludC1tYXBwaW5nLXByZXNlcnZlLTNkLmh0bWw6CisgICAgICAgICog
dHJhbnNmb3Jtcy9ub190cmFuc2Zvcm1faGl0X3Rlc3RpbmcuaHRtbDoKKwogMjAxMi0wNi0xNSAg
QW5kcmV3IFdpbHNvbiAgPGF0d2lsc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkIGJhc2VsaW5lcyBmb3IgY2hyb21pdW0gZHVlIHRvIGNvbG9yIG1hbmFnZW1lbnQgY2hhbmdl
cy4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS93aW5kb3ctYXR0cmlidXRl
cy1leGlzdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS93aW5kb3ctYXR0cmlidXRlcy1leGlzdC5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvd2luZG93LWF0dHJpYnV0ZXMtZXhpc3QuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAKIDxoZWFkPgogPHNjcmlwdD4KIAotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CiAKIGZ1bmN0aW9uIGxvZyhhKQogewpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2V2ZW50cy9yZXNvdXJjZXMvZXZlbnRUZXN0SGFybmVzcy5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3Jlc291cmNlcy9ldmVu
dFRlc3RIYXJuZXNzLmpzCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2UvZXZlbnRzL3Jlc291cmNlcy9ldmVudFRlc3RIYXJuZXNzLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDYgKzEsNiBAQAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
ewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKIH0KIAogaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSUZSQU1FIik7CkBAIC00
OSw4ICs0OSw4IEBAIGZ1bmN0aW9uIHRlc3RTdG9yYWdlcyh0ZXN0Q2FsbGJhY2spCiAgICAgICAg
IGRlYnVnKCIiKTsKICAgICAgICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7CiAgICAgICAgIHNlc3Np
b25TdG9yYWdlLmNsZWFyKCk7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCkKKyAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCkKICAgICB9CiAKICAgICAvLyBXaGVuIHdlJ3JlIGRvbmUgdGVzdGluZyB3aXRoIFNlc3Np
b25TdG9yYWdlLCB0aGlzIGlzIHJ1bi4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3Rv
cmFnZS9sb2NhbHN0b3JhZ2UvZGVsZXRlLXJlbW92YWwuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2RlbGV0ZS1yZW1vdmFsLmh0
bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9s
b2NhbHN0b3JhZ2UvZGVsZXRlLXJlbW92YWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsy
LDggQEAKIDxoZWFkPgogPHNjcmlwdD4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKIGZ1bmN0aW9uIGxvZyhh
KQogewpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9l
bnVtZXJhdGUtc3RvcmFnZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2Uv
ZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvZW51bWVyYXRlLXN0b3JhZ2UuaHRtbAkocmV2aXNpb24g
MTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9l
bnVtZXJhdGUtc3RvcmFnZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsOCBAQAogPGhl
YWQ+CiA8c2NyaXB0PgogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogZnVuY3Rpb24gbG9nKGEpCiB7CkluZGV4
OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2VudW1lcmF0ZS13
aXRoLWxlbmd0aC1hbmQta2V5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9lbnVtZXJhdGUtd2l0aC1sZW5ndGgtYW5kLWtleS5o
dG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
bG9jYWxzdG9yYWdlL2VudW1lcmF0ZS13aXRoLWxlbmd0aC1hbmQta2V5Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTIsOCArMiw4IEBACiA8aGVhZD4KIDxzY3JpcHQ+CiAKLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwog
CiBmdW5jdGlvbiBsb2coYSkKIHsKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9sb2NhbHN0b3JhZ2UvaW5kZXgtZ2V0LWFuZC1zZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2luZGV4LWdldC1hbmQtc2V0
Lmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9sb2NhbHN0b3JhZ2UvaW5kZXgtZ2V0LWFuZC1zZXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
Miw5ICsyLDkgQEAKIDxoZWFkPgogPHNjcmlwdD4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKIH0KIAogZnVuY3Rpb24gbG9nKGEpCkBAIC0xNCw4ICsxNCw4IEBAIGZ1bmN0
aW9uIGxvZyhhKQogCiBmdW5jdGlvbiBmaW5pc2goKQogewotICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCkKIH0KIAogZnVuY3Rpb24gcnVuVGVzdCgpCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3ByaXZhdGUtYnJvd3NpbmctYWZmZWN0cy1zdG9yYWdl
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fs
c3RvcmFnZS9wcml2YXRlLWJyb3dzaW5nLWFmZmVjdHMtc3RvcmFnZS5odG1sCShyZXZpc2lvbiAx
MjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3By
aXZhdGUtYnJvd3NpbmctYWZmZWN0cy1zdG9yYWdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIs
OCArMiw4IEBACiA8aGVhZD4KIDxzY3JpcHQ+CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiBmdW5jdGlvbiBs
b2coYSkKIHsKQEAgLTE2LDE0ICsxNiwxNCBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAgICAg
bG9nKCJ3aW5kb3cubG9jYWxTdG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9Ci0gICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBp
ZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIGxvZygiVGVzdCBvbmx5IGRlc2lnbmVk
IHRvIGJlIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZSIpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpOwogICAgIAogICAgIGxvY2FsU3RvcmFnZS5zZXRJ
dGVtKCJ0ZXN0SXRlbSIsICJJbml0aWFsVmFsdWUiKTsgICAgCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKKyAgICB0ZXN0UnVubmVyLnNl
dFByaXZhdGVCcm93c2luZ0VuYWJsZWQodHJ1ZSk7CiAgICAgbG9nKCJJbml0aWFsIHZhbHVlIG9m
IHRlc3RJdGVtIGlzOiAiICsgbG9jYWxTdG9yYWdlLmdldEl0ZW0oInRlc3RJdGVtIikpOwogCiAg
ICAgdHJ5IHsKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3Jh
Z2Uvc2ltcGxlLXVzYWdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zaW1wbGUtdXNhZ2UuaHRtbAkocmV2aXNpb24gMTIwNTE0
KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zaW1wbGUt
dXNhZ2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAKIDxoZWFkPgogPHNjcmlw
dD4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CiAKIGZ1bmN0aW9uIGxvZyhhKQogewpJbmRleDogTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdHJpbmctY29udmVyc2lvbi5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3Jh
Z2Uvc3RyaW5nLWNvbnZlcnNpb24uaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdHJpbmctY29udmVyc2lvbi5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsOCBAQAogPGhlYWQ+CiA8c2NyaXB0PgogCi1pZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKIAogZnVuY3Rpb24gbG9nKGEpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3dpbmRvdy1vcGVuLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS93aW5kb3ctb3Blbi5o
dG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
bG9jYWxzdG9yYWdlL3dpbmRvdy1vcGVuLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsMTAgKzIs
MTAgQEAKIDxoZWFkPgogPHNjcmlwdD4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRDYW5PcGVuV2luZG93cygpOwotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsK
KyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAogZnVuY3Rpb24gbG9nKGEpCklu
ZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3Jlc291cmNl
cy93aW5kb3ctb3Blbi1zZWNvbmQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9y
YWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3Jlc291cmNlcy93aW5kb3ctb3Blbi1zZWNvbmQu
aHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdl
L2xvY2Fsc3RvcmFnZS9yZXNvdXJjZXMvd2luZG93LW9wZW4tc2Vjb25kLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDggKzI0LDggQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgCiAgICAgd2lu
ZG93Lm9wZW5lci5sb2coc2Vjb25kV2luZG93TG9nKTsKICAgICAKLSAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKIH0KIAogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci0xLXBy
ZXBhcmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
bG9jYWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci0xLXByZXBhcmUuaHRt
bAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItMS1wcmVwYXJlLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTgsMTIgKzgsMTIgQEAKIDxzY3JpcHQ+CiBkZXNjcmlwdGlvbigi
UHJlcGFyZSBmb3IgU3RvcmFnZVRyYWNrZXIgdGVzdHMgYnkgZW5zdXJpbmcgdGhhdCBldmVyeSBv
cmlnaW4gd2l0aCBsb2NhbCBzdG9yYWdlIGlzIGRlbGV0ZWQuIik7CiAKLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwogICAgIAogZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKLSAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKIH0KIAogZnVuY3Rpb24gdGVzdCgpCkBAIC0yNSw5ICsyNSw5IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgIAogICAgIGRlYnVnKCJUaGlzIHRlc3Qgc2hvdWxkIGhhdmUgbm8gdmlzaWJs
ZSBvdXRwdXQgb24gc3VjY2Vzcy4iKTsKIAotICAgIGlmIChsYXlvdXRUZXN0Q29udHJvbGxlci5v
cmlnaW5zV2l0aExvY2FsU3RvcmFnZSgpLmxlbmd0aCA+IDApIHsKLSAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIub2JzZXJ2ZVN0b3JhZ2VUcmFja2VyTm90aWZpY2F0aW9ucygxKTsKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZGVsZXRlQWxsTG9jYWxTdG9yYWdlKCk7CisgICAgaWYg
KHRlc3RSdW5uZXIub3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS5sZW5ndGggPiAwKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIub2JzZXJ2ZVN0b3JhZ2VUcmFja2VyTm90aWZpY2F0aW9ucygxKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kZWxldGVBbGxMb2NhbFN0b3JhZ2UoKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICBmaW5pc2hUZXN0KCk7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItMi1j
cmVhdGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
bG9jYWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci0yLWNyZWF0ZS5odG1s
CShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9j
YWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci0yLWNyZWF0ZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC04LDEyICs4LDEyIEBACiA8c2NyaXB0PgogZGVzY3JpcHRpb24oIlN0
b3JhZ2VUcmFja2VyIHRlc3QgLSB3cml0ZSBsb2NhbCBzdG9yYWdlIGZvciB0aGlzIG9yaWdpbi4g
U2hvdWxkIGJlIGNhbGxlZCBhZnRlciBvcmlnaW5zLXByZXBhcmUuaHRtbC4iKTsKIAotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CiAgICAgCiBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewotICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOwogfQogCiBmdW5jdGlvbiB0ZXN0KCkKQEAgLTIzLDE2ICsyMywxNiBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBpZiAo
bGF5b3V0VGVzdENvbnRyb2xsZXIub3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS5sZW5ndGggPiAw
KSB7CisgICAgaWYgKHRlc3RSdW5uZXIub3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS5sZW5ndGgg
PiAwKSB7CiAgICAgICAgIC8vIEFuIG9yaWdpbiBhbHJlYWR5IGV4aXN0cyBzbyB3ZSBjYW4gZXhp
dC4KICAgICAgICAgdGVzdEZhaWxlZCgiQW4gb3JpZ2luIGFscmVhZHkgZXhpc3RlZCB3aXRoIGxv
Y2FsIHN0b3JhZ2UuIik7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgfSBlbHNlIHsKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc3luY0xvY2FsU3RvcmFnZSgpOworICAgICAgICB0ZXN0
UnVubmVyLnN5bmNMb2NhbFN0b3JhZ2UoKTsKICAgICAgICAgCiAgICAgICAgIGxvY2FsU3RvcmFn
ZS5zb21lRGF0YSA9ICd3cml0ZW1lJzsKICAgICAgICAgLy8gTGF5b3V0VGVzdENvbnRyb2xsZXIn
cyBub3RpZnlEb25lIHdpbGwgYmUgY2FsbGVkIGFmdGVyIHRoZSBvcmlnaW4gY2hhbmdlIG5vdGlm
aWNhdGlvbiBjb21lcyBpbi4KLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub2JzZXJ2ZVN0
b3JhZ2VUcmFja2VyTm90aWZpY2F0aW9ucygxKTsKKyAgICAgICAgdGVzdFJ1bm5lci5vYnNlcnZl
U3RvcmFnZVRyYWNrZXJOb3RpZmljYXRpb25zKDEpOwogICAgIH0KIH0KIApJbmRleDogTGF5b3V0
VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9y
YWdlLXRyYWNrZXItMy1kZWxldGUtYWxsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0
b3JhZ2UtdHJhY2tlci0zLWRlbGV0ZS1hbGwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMjA1MTQp
CisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3JhZ2V0
cmFja2VyL3N0b3JhZ2UtdHJhY2tlci0zLWRlbGV0ZS1hbGwtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0zLDcgKzMsNyBAQCBUZXN0IEFQSSB0byB2aWV3IG9yaWdpbnMgdGhhdCBoYXZl
IGxvY2FsCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5vcmlnaW5zV2l0aExvY2FsU3RvcmFnZSgpLnRvU3RyaW5nKCkgaXMgImZpbGVfXzAi
CitQQVNTIHRlc3RSdW5uZXIub3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS50b1N0cmluZygpIGlz
ICJmaWxlX18wIgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0
b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci0zLWRlbGV0ZS1hbGwuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3JhZ2V0
cmFja2VyL3N0b3JhZ2UtdHJhY2tlci0zLWRlbGV0ZS1hbGwuaHRtbAkocmV2aXNpb24gMTIwNTE0
KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdl
dHJhY2tlci9zdG9yYWdlLXRyYWNrZXItMy1kZWxldGUtYWxsLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTgsMTIgKzgsMTIgQEAKIDxzY3JpcHQ+CiBkZXNjcmlwdGlvbigiVGVzdCBBUEkgdG8gdmll
dyBvcmlnaW5zIHRoYXQgaGF2ZSBsb2NhbCBzdG9yYWdlIGFuZCB0byBkZWxldGUgbG9jYWwgc3Rv
cmFnZSBieSBvcmlnaW4uIik7CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0g
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIAogZnVuY3Rpb24g
ZmluaXNoVGVzdCgpIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rp
b24gdGVzdCgpCkBAIC0yMywxMyArMjMsMTMgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIub3JpZ2luc1dpdGhM
b2NhbFN0b3JhZ2UoKS5sZW5ndGggPiAwKSB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygibGF5b3V0VGVzdENvbnRyb2xsZXIub3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS50b1N0cmlu
ZygpIiwgImZpbGVfXzAiKTsKKyAgICBpZiAodGVzdFJ1bm5lci5vcmlnaW5zV2l0aExvY2FsU3Rv
cmFnZSgpLmxlbmd0aCA+IDApIHsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0
UnVubmVyLm9yaWdpbnNXaXRoTG9jYWxTdG9yYWdlKCkudG9TdHJpbmcoKSIsICJmaWxlX18wIik7
CiAgICAgICAgIC8vIFdlJ3JlIGp1c3QgZ29pbmcgdG8gZGVsZXRlIHRoZSBleGlzdGluZyBvcmln
aW4sIHNvIHdlJ2xsIGdldCBvbmUgb3JpZ2luIGNoYW5nZSBub3RpZmljYXRpb24uCi0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm9ic2VydmVTdG9yYWdlVHJhY2tlck5vdGlmaWNhdGlvbnMo
MSk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmRlbGV0ZUFsbExvY2FsU3RvcmFnZSgp
OworICAgICAgICB0ZXN0UnVubmVyLm9ic2VydmVTdG9yYWdlVHJhY2tlck5vdGlmaWNhdGlvbnMo
MSk7CisgICAgICAgIHRlc3RSdW5uZXIuZGVsZXRlQWxsTG9jYWxTdG9yYWdlKCk7CiAgICAgfSBl
bHNlIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgdGVzdEZhaWxlZCgiUmFuIHdpdGgg
bm8gb3JpZ2lucyB3aXRoIGxvY2FsIHN0b3JhZ2UiKTsKICAgICB9CiAKSW5kZXg6IExheW91dFRl
c3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIvc3RvcmFn
ZS10cmFja2VyLTQtY3JlYXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXIt
NC1jcmVhdGUuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNC1j
cmVhdGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCwxMiArOCwxMiBAQAogPHNjcmlwdD4KIGRl
c2NyaXB0aW9uKCJTdG9yYWdlVHJhY2tlciB0ZXN0IC0gd3JpdGUgbG9jYWwgc3RvcmFnZSBmb3Ig
dGhpcyBvcmlnaW4uIFNob3VsZCBiZSBjYWxsZWQgYWZ0ZXIgc3RvcmFnZS10cmFja2VyLTMtZGVs
ZXRlLWFsbC5odG1sLiIpOwogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAKIGZ1bmN0aW9uIGZp
bmlzaFRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9u
IHRlc3QoKQpAQCAtMjUsMTQgKzI1LDE0IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIAogICAgIGRl
YnVnKCJUaGlzIHRlc3Qgc2hvdWxkIGhhdmUgbm8gdmlzaWJsZSBvdXRwdXQgb24gc3VjY2Vzcy4i
KTsKIAotICAgIGlmIChsYXlvdXRUZXN0Q29udHJvbGxlci5vcmlnaW5zV2l0aExvY2FsU3RvcmFn
ZSgpLmxlbmd0aCA+IDApIHsKKyAgICBpZiAodGVzdFJ1bm5lci5vcmlnaW5zV2l0aExvY2FsU3Rv
cmFnZSgpLmxlbmd0aCA+IDApIHsKICAgICAgICAgLy8gQW4gb3JpZ2luIGFscmVhZHkgZXhpc3Rz
IHNvIHdlIGNhbiBleGl0LgogICAgICAgICB0ZXN0RmFpbGVkKCJBbiBvcmlnaW4gYWxyZWFkeSBl
eGlzdGVkIHdpdGggbG9jYWwgc3RvcmFnZS4iKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9
IGVsc2UgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zeW5jTG9jYWxTdG9yYWdlKCk7
CisgICAgICAgIHRlc3RSdW5uZXIuc3luY0xvY2FsU3RvcmFnZSgpOwogICAgICAgICBsb2NhbFN0
b3JhZ2Uuc29tZU90aGVyRGF0YSA9ICd3cml0ZW1lTW9yZSc7Ci0gICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm9ic2VydmVTdG9yYWdlVHJhY2tlck5vdGlmaWNhdGlvbnMoMSk7CisgICAgICAg
IHRlc3RSdW5uZXIub2JzZXJ2ZVN0b3JhZ2VUcmFja2VyTm90aWZpY2F0aW9ucygxKTsKICAgICB9
CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uv
c3RvcmFnZXRyYWNrZXIvc3RvcmFnZS10cmFja2VyLTUtZGVsZXRlLW9uZS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFn
ZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNS1kZWxldGUtb25lLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNS1kZWxldGUtb25lLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMyw3ICszLDcgQEAgVGVzdCBBUEkgdG8gdmll
dyBvcmlnaW5zIHRoYXQgaGF2ZSBsb2NhbAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAK
LVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIub3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS50b1N0
cmluZygpIGlzICJmaWxlX18wIgorUEFTUyB0ZXN0UnVubmVyLm9yaWdpbnNXaXRoTG9jYWxTdG9y
YWdlKCkudG9TdHJpbmcoKSBpcyAiZmlsZV9fMCIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9y
YWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNS1kZWxldGUt
b25lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNS1kZWxldGUtb25lLmh0
bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9s
b2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIvc3RvcmFnZS10cmFja2VyLTUtZGVsZXRlLW9uZS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDEyICs4LDEyIEBACiA8c2NyaXB0PgogZGVzY3JpcHRp
b24oIlRlc3QgQVBJIHRvIHZpZXcgb3JpZ2lucyB0aGF0IGhhdmUgbG9jYWwgc3RvcmFnZSBhbmQg
dG8gZGVsZXRlIGxvY2FsIHN0b3JhZ2UgYnkgb3JpZ2luLiIpOwogCi1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKICAgICAKIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CiB9CiAKIGZ1bmN0aW9uIHRlc3QoKQpAQCAtMjMsMTUgKzIzLDE1IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGxheW91dFRlc3RDb250
cm9sbGVyLm9yaWdpbnNXaXRoTG9jYWxTdG9yYWdlKCkubGVuZ3RoID4gMCkgewotICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImxheW91dFRlc3RDb250cm9sbGVyLm9yaWdpbnNXaXRoTG9j
YWxTdG9yYWdlKCkudG9TdHJpbmcoKSIsICJmaWxlX18wIik7CisgICAgaWYgKHRlc3RSdW5uZXIu
b3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS5sZW5ndGggPiAwKSB7CisgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygidGVzdFJ1bm5lci5vcmlnaW5zV2l0aExvY2FsU3RvcmFnZSgpLnRvU3Ry
aW5nKCkiLCAiZmlsZV9fMCIpOwogICAgICAgICAvLyBXZSdyZSBqdXN0IGdvaW5nIHRvIGRlbGV0
ZSB0aGUgZXhpc3Rpbmcgb3JpZ2luLCBzbyB3ZSdsbCBnZXQgb25lIG9yaWdpbiBjaGFuZ2Ugbm90
aWZpY2F0aW9uLgotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vYnNlcnZlU3RvcmFnZVRy
YWNrZXJOb3RpZmljYXRpb25zKDEpOworICAgICAgICB0ZXN0UnVubmVyLm9ic2VydmVTdG9yYWdl
VHJhY2tlck5vdGlmaWNhdGlvbnMoMSk7CiAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIHdlJ3Jl
IGd1YXJhbnRlZWQgdG8gaGF2ZSBvbmUgb3JpZ2luIHdpdGggbG9jYWwgc3RvcmFnZS4KLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZGVsZXRlTG9jYWxTdG9yYWdlRm9yT3JpZ2luKCJmaWxl
Oi8vIik7CisgICAgICAgIHRlc3RSdW5uZXIuZGVsZXRlTG9jYWxTdG9yYWdlRm9yT3JpZ2luKCJm
aWxlOi8vIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgdGVzdEZhaWxlZCgiUmFuIHdpdGggbm8g
b3JpZ2lucyB3aXRoIGxvY2FsIHN0b3JhZ2UuIik7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAg
fQogCiB9CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdl
L3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci02LWNyZWF0ZS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRy
YWNrZXIvc3RvcmFnZS10cmFja2VyLTYtY3JlYXRlLmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysr
IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNr
ZXIvc3RvcmFnZS10cmFja2VyLTYtY3JlYXRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsMTIg
KzgsMTIgQEAKIDxzY3JpcHQ+CiBkZXNjcmlwdGlvbigiU3RvcmFnZVRyYWNrZXIgdGVzdCAtIHdy
aXRlIGxvY2FsIHN0b3JhZ2UgZm9yIHRoaXMgb3JpZ2luLiBTaG91bGQgYmUgY2FsbGVkIGFmdGVy
IHN0b3JhZ2UtdHJhY2tlci01LWRlbGV0ZS1vbmUuaHRtbC4iKTsKIAotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CiAgICAgCiBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewotICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOwogfQogCiBmdW5jdGlvbiB0ZXN0KCkKQEAgLTI1LDE0ICsyNSwxNCBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICAKICAgICBkZWJ1ZygiVGhpcyB0ZXN0IHNob3VsZCBoYXZlIG5vIHZpc2li
bGUgb3V0cHV0IG9uIHN1Y2Nlc3MuIik7CiAKLSAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIu
b3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS5sZW5ndGggPiAwKSB7CisgICAgaWYgKHRlc3RSdW5u
ZXIub3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS5sZW5ndGggPiAwKSB7CiAgICAgICAgIC8vIEFu
IG9yaWdpbiBhbHJlYWR5IGV4aXN0cyBzbyB3ZSBjYW4gZXhpdC4KICAgICAgICAgdGVzdEZhaWxl
ZCgiQW4gb3JpZ2luIGFscmVhZHkgZXhpc3RlZCB3aXRoIGxvY2FsIHN0b3JhZ2UuIik7Ci0gICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc3luY0xvY2FsU3RvcmFnZSgpOworICAgICAgICB0ZXN0UnVubmVyLnN5bmNMb2NhbFN0b3Jh
Z2UoKTsKICAgICAgICAgbG9jYWxTdG9yYWdlLnNvbWVPdGhlckRhdGEgPSAnd3JpdGVtZU1vcmUn
OwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vYnNlcnZlU3RvcmFnZVRyYWNrZXJOb3Rp
ZmljYXRpb25zKDEpOworICAgICAgICB0ZXN0UnVubmVyLm9ic2VydmVTdG9yYWdlVHJhY2tlck5v
dGlmaWNhdGlvbnMoMSk7CiAgICAgfQogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci03LXVz
YWdlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0
b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci03LXVzYWdl
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNy11
c2FnZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMsOCArMyw4IEBAIFRlc3QgQVBJ
IHRoYXQgcmVwb3J0cyBsb2NhbCBzdG9yYWdlIGRpc2sKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KIAogCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLm9yaWdpbnNXaXRoTG9jYWxTdG9yYWdl
KCkudG9TdHJpbmcoKSBpcyAiZmlsZV9fMCIKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIubG9j
YWxTdG9yYWdlRGlza1VzYWdlRm9yT3JpZ2luKCdmaWxlOi8vJykgPiA2MTAwIGlzIHRydWUKK1BB
U1MgdGVzdFJ1bm5lci5vcmlnaW5zV2l0aExvY2FsU3RvcmFnZSgpLnRvU3RyaW5nKCkgaXMgImZp
bGVfXzAiCitQQVNTIHRlc3RSdW5uZXIubG9jYWxTdG9yYWdlRGlza1VzYWdlRm9yT3JpZ2luKCdm
aWxlOi8vJykgPiA2MTAwIGlzIHRydWUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNy11c2FnZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uv
c3RvcmFnZXRyYWNrZXIvc3RvcmFnZS10cmFja2VyLTctdXNhZ2UuaHRtbAkocmV2aXNpb24gMTIw
NTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9y
YWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNy11c2FnZS5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xNSw5ICsxNSw5IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyLm9yaWdpbnNXaXRoTG9jYWxTdG9yYWdlKCku
bGVuZ3RoID4gMCkgewotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxheW91dFRlc3RD
b250cm9sbGVyLm9yaWdpbnNXaXRoTG9jYWxTdG9yYWdlKCkudG9TdHJpbmcoKSIsICJmaWxlX18w
Iik7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIubG9jYWxTdG9y
YWdlRGlza1VzYWdlRm9yT3JpZ2luKCdmaWxlOi8vJykgPiA2MTAwIik7CisgICAgaWYgKHRlc3RS
dW5uZXIub3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS5sZW5ndGggPiAwKSB7CisgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygidGVzdFJ1bm5lci5vcmlnaW5zV2l0aExvY2FsU3RvcmFnZSgp
LnRvU3RyaW5nKCkiLCAiZmlsZV9fMCIpOworICAgICAgICBzaG91bGRCZVRydWUoInRlc3RSdW5u
ZXIubG9jYWxTdG9yYWdlRGlza1VzYWdlRm9yT3JpZ2luKCdmaWxlOi8vJykgPiA2MTAwIik7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgdGVzdEZhaWxlZCgiUmFuIHdpdGggbm8gb3JpZ2lucyB3aXRo
IGxvY2FsIHN0b3JhZ2UuIik7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21z
dG9yYWdlL3NjcmlwdC10ZXN0cy9zdG9yYWdlLWZ1bmN0aW9ucy1ub3Qtb3ZlcndyaXR0ZW4uanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3NjcmlwdC10ZXN0
cy9zdG9yYWdlLWZ1bmN0aW9ucy1ub3Qtb3ZlcndyaXR0ZW4uanMJKHJldmlzaW9uIDEyMDUxNCkK
KysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zY3JpcHQtdGVzdHMvc3RvcmFnZS1m
dW5jdGlvbnMtbm90LW92ZXJ3cml0dGVuLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBA
QAogZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdG8gZW5zdXJlIHRoYXQgd2luZG93Lmxv
Y2FsU3RvcmFnZSBhbmQgd2luZG93LnNlc3Npb25TdG9yYWdlIGFyZSBub3QgcmVuZGVyZWQgdW51
c2FibGUgYnkgc2V0dGluZyBhIGtleSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgYSBzdG9yYWdlIGZ1
bmN0aW9uIHN1Y2ggdGhhdCB0aGUgZnVuY3Rpb24gaXMgaGlkZGVuLiIpOwogCi1pZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKIAogZnVuY3Rpb24gZG9XZWRnZVRoeVNlbGYoc3RvcmFnZSkgewogICAgIHN0b3JhZ2Uuc2V0
SXRlbSgiY2xlYXIiLCAiYWxtb3N0Iik7CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0
b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvZGVsZXRlLXJlbW92YWwuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvZGVsZXRlLXJlbW92
YWwuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9y
YWdlL3Nlc3Npb25zdG9yYWdlL2RlbGV0ZS1yZW1vdmFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTMsOCArMyw4IEBACiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NsZWFyU2Vzc2lvblN0b3JhZ2Uu
anMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKIGZ1bmN0aW9uIGxvZyhh
KQogewpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdl
L2VudW1lcmF0ZS1zdG9yYWdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2VudW1lcmF0ZS1zdG9yYWdlLmh0bWwJKHJldmlz
aW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3Rv
cmFnZS9lbnVtZXJhdGUtc3RvcmFnZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDggKzMsOCBA
QAogPHNjcmlwdCBzcmM9InJlc291cmNlcy9jbGVhclNlc3Npb25TdG9yYWdlLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQ+CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiBmdW5jdGlvbiBsb2coYSkKIHsKSW5kZXg6
IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9lbnVtZXJhdGUt
d2l0aC1sZW5ndGgtYW5kLWtleS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3Jh
Z2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9lbnVtZXJhdGUtd2l0aC1sZW5ndGgtYW5kLWtl
eS5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2Uvc2Vzc2lvbnN0b3JhZ2UvZW51bWVyYXRlLXdpdGgtbGVuZ3RoLWFuZC1rZXkuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMyw4ICszLDggQEAKIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2xlYXJT
ZXNzaW9uU3RvcmFnZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCi1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAog
ZnVuY3Rpb24gbG9nKGEpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
c2Vzc2lvbnN0b3JhZ2UvaW5kZXgtZ2V0LWFuZC1zZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvaW5kZXgtZ2V0LWFuZC1z
ZXQuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9y
YWdlL3Nlc3Npb25zdG9yYWdlL2luZGV4LWdldC1hbmQtc2V0Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTMsOSArMyw5IEBACiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NsZWFyU2Vzc2lvblN0b3Jh
Z2UuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKIH0KIAogZnVuY3Rpb24gbG9nKGEpCkBAIC0xNSw4ICsxNSw4IEBAIGZ1bmN0aW9u
IGxvZyhhKQogCiBmdW5jdGlvbiBmaW5pc2goKQogewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKQor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCkKIH0KIAogZnVuY3Rpb24gcnVuVGVzdCgpCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1hZmZlY3RzLXN0b3JhZ2Uu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lv
bnN0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1hZmZlY3RzLXN0b3JhZ2UuaHRtbAkocmV2aXNpb24g
MTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdl
L3ByaXZhdGUtYnJvd3NpbmctYWZmZWN0cy1zdG9yYWdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTMsOCArMyw4IEBACiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NsZWFyU2Vzc2lvblN0b3JhZ2Uu
anMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKIGZ1bmN0aW9uIGxvZyhh
KQogewpAQCAtMTcsMTMgKzE3LDEzIEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgICAgICBsb2co
IndpbmRvdy5zZXNzaW9uU3RvcmFnZSBET0VTIE5PVCBleGlzdCIpOwogICAgICAgICByZXR1cm47
CiAgICAgfQotICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgaWYg
KCF3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICBsb2coIlRlc3Qgb25seSBkZXNpZ25lZCB0
byBiZSBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICAKICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJ0ZXN0SXRlbSIsICJJbml0aWFsVmFs
dWUiKTsgICAgCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZCh0cnVlKTsKKyAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQodHJ1
ZSk7CiAgICAgbG9nKCJJbml0aWFsIHZhbHVlIG9mIHRlc3RJdGVtIGlzOiAiICsgc2Vzc2lvblN0
b3JhZ2UuZ2V0SXRlbSgidGVzdEl0ZW0iKSk7CiAKICAgICB0cnkgewpJbmRleDogTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3NpbXBsZS11c2FnZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFn
ZS9zaW1wbGUtdXNhZ2UuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3Rv
cmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3NpbXBsZS11c2FnZS5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0zLDggKzMsOCBAQAogPHNjcmlwdCBzcmM9InJlc291cmNlcy9jbGVhclNlc3Np
b25TdG9yYWdlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiBmdW5j
dGlvbiBsb2coYSkKIHsKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNz
aW9uc3RvcmFnZS9zdHJpbmctY29udmVyc2lvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9zdHJpbmctY29udmVyc2lvbi5o
dG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
c2Vzc2lvbnN0b3JhZ2Uvc3RyaW5nLWNvbnZlcnNpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
Myw4ICszLDggQEAKIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2xlYXJTZXNzaW9uU3RvcmFnZS5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogZnVuY3Rpb24gbG9nKGEp
CiB7CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uv
d2luZG93LW9wZW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0
b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvd2luZG93LW9wZW4uaHRtbAkocmV2aXNpb24gMTIwNTE0KQor
KysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3dpbmRvdy1v
cGVuLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsMTAgKzMsMTAgQEAKIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvY2xlYXJTZXNzaW9uU3RvcmFnZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCi1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldENhbk9wZW5XaW5k
b3dzKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVz
dFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwogfQogCiBmdW5jdGlvbiBsb2coYSkKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9t
c3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9yZXNvdXJjZXMvd2luZG93LW9wZW4tc2Vjb25kLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9y
YWdlL3Jlc291cmNlcy93aW5kb3ctb3Blbi1zZWNvbmQuaHRtbAkocmV2aXNpb24gMTIwNTE0KQor
KysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3Jlc291cmNl
cy93aW5kb3ctb3Blbi1zZWNvbmQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjQsOCArMjQsOCBA
QCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAKICAgICB3aW5kb3cub3BlbmVyLmxvZyhzZWNvbmRX
aW5kb3dMb2cpOwogICAgIAotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0g
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCiA8L3Nj
cmlwdD4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3R1dG9yaWFsLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHV0b3JpYWwuaHRt
bAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHV0
b3JpYWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjQsOSArMjQsOSBAQAogLy8gZ29hbCBvZiB0
ZWFjaGluZyBwZW9wbGUgSW5kZXhlZERCLiBUaGF0IHNhaWQsIGl0IGRvZXMgaGF2ZSBhIGdvb2Qg
YW1vdW50IG9mIGNvdmVyYWdlIGFuZAogLy8gc2VydmVzIGFzIGEgbGl2aW5nIGRvY3VtZW50IGRl
c2NyaWJpbmcgd2hhdCdzIGV4cGVjdGVkIHRvIHdvcmsgYW5kIGhvdyB3aXRoaW4gV2ViS2l0IHNv
IGl0CiAvLyBzZWVtcyB3ZWxsIHdvcnRoIGhhdmluZyBjaGVja2VkIGluLgotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAogCkBAIC00MDQsOCArNDA0LDggQEAgZnVuY3Rp
b24gb25JbmRleEdldFN1Y2Nlc3MoKQogZnVuY3Rpb24gb25BbGxEb25lKCkKIHsKICAgICBsb2co
IkV2ZXJ5dGhpbmcgd29ya2VkISIpOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQog
CiAvLyBUaGUgd2F5IHNldFZlcnNpb24gaXMgc3VwcG9zZWQgdG8gd29yazoKSW5kZXg6IExheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvaW5kZXgtcHJldi1uby1kdXBsaWNhdGUu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L2luZGV4LXByZXYtbm8tZHVwbGljYXRlLmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvaW5kZXgtcHJldi1uby1kdXBsaWNhdGUu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTcsOCArMTcsOCBAQAogPHNjcmlwdD4KIAogZGVzY3Jp
cHRpb24oIlRlc3QgSW5kZXhlZERCOiBpdGVyYXRpbmcgYmFja3dhcmRzIHRocm91Z2ggYW4gaW5k
ZXgsIHNraXBwaW5nIGR1cGxpY2F0ZXMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlv
biB0ZXN0KCkKIHsKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJz
aW9uLWhhbmRsZS1yZXVzZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dl
YnNxbC9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUtcmV1c2UuanMJKHJldmlzaW9uIDEyMDUxNCkKKysr
IExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS5q
cwkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAgZnVuY3Rpb24gZmluaXNoVGVzdCgpCiB7
CiAgICAgbG9nKCJURVNUIENPTVBMRVRFLiIpOwogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CiB9CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS93
ZWJzcWwvY2hhbmdlLXZlcnNpb24tbm8tY3Jhc2gtb24tcHJlZmxpZ2h0LWZhaWx1cmUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9jaGFuZ2UtdmVyc2lvbi1u
by1jcmFzaC1vbi1wcmVmbGlnaHQtZmFpbHVyZS5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBM
YXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9jaGFuZ2UtdmVyc2lvbi1uby1jcmFzaC1vbi1wcmVm
bGlnaHQtZmFpbHVyZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDggKzMsOCBAQAogPHNjcmlw
dD4KIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKQogewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwogfQogCiBmdW5jdGlvbiBsb2cobWVzc2FnZSkKQEAgLTEzLDkgKzEzLDkgQEAgZnVuY3Rpb24g
bG9nKG1lc3NhZ2UpCiB9CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAogICAg
IHZhciBkYiA9IHdpbmRvdy5vcGVuRGF0YWJhc2UoIkNoYW5nZVZlcnNpb25GYWlsdXJlVGVzdCIs
ICIxIiwgIlRlc3QgdGhlIHByZWZsaWdodCBzdGVwIiwgMTAyNCk7CkluZGV4OiBMYXlvdXRUZXN0
cy9zdG9yYWdlL3dlYnNxbC9jaGFuZ2UtdmVyc2lvbi5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJzaW9uLmh0bWwJKHJldmlzaW9uIDEyMDUx
NCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJzaW9uLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDggQEAgZnVuY3Rpb24gY2hhbmdlVmVyc2lvbkVycm9y
KGVycm9yKQogCiBmdW5jdGlvbiBmaW5pc2hUZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKICAgICBsb2coIlRFU1QgQ09NUExFVEUiKTsKIH0KIApAQCAtNTQsMTAgKzU0LDEw
IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogfQogCiBmdW5jdGlvbiB0ZXN0UGFydDEoKSB7Ci0gICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jbGVhckFsbERhdGFiYXNlcygpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5j
bGVhckFsbERhdGFiYXNlcygpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAgZGIxID0gd2lu
ZG93Lm9wZW5EYXRhYmFzZSgiY2hhbmdldmVyc2lvbi10ZXN0IiwgIjEiLCAiVGVzdCBmb3IgdGhl
IGRhdGFiYXNlLmNoYW5nZVZlcnNpb24oKSBmdW5jdGlvbiIsIDEwMjQpOwpJbmRleDogTGF5b3V0
VGVzdHMvc3RvcmFnZS93ZWJzcWwvY2xvc2UtZHVyaW5nLXN0cmVzcy10ZXN0Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvY2xvc2UtZHVyaW5nLXN0cmVzcy10
ZXN0Lmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3Fs
L2Nsb3NlLWR1cmluZy1zdHJlc3MtdGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDE2ICsz
LDE2IEBACiA8cD5BIEphdmFTY3JpcHQgZmFpbHVyZSBvbiB0aGUgY29uc29sZSBpcyBleHBlY3Rl
ZCwgaG93ZXZlciwgYXMgdGhlIGdsb2JhbCBvYmplY3QgaXMgY2xlYXJlZCB3aGVuIGNsb3Npbmcg
YSBmcmFtZS4KIEl0IGFjdHVhbGx5IGhlbHBzIHRvIGNhdXNlIGRhdGFiYXNlIGFjdGl2aXR5IGJ5
IHRocm93aW5nIGFuIGV4Y2VwdGlvbiBmcm9tIGEgY2FsbGJhY2suPC9wPgogPHNjcmlwdD4KLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiB9CiAKIGZ1bmN0aW9uIHN0YXJ0VGVz
dCgpCiB7CiAgICAgc2V0VGltZW91dCgiZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lm
cmFtZScpWzBdLnNyYyA9ICdhYm91dDpibGFuayciLCAxMDApOwotICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIHNldFRpbWVvdXQoImxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKSIsIDUwMCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICBzZXRUaW1lb3V0KCJ0ZXN0UnVubmVyLm5vdGlmeURvbmUoKSIsIDUwMCk7CiB9CiA8L3Nj
cmlwdD4KIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvc3RyZXNzLWZyYW1lLmh0bWwiIG9ubG9hZD0i
c3RhcnRUZXN0KCkiPjwvaWZyYW1lPgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwv
ZGF0YWJhc2UtbG9jay1hZnRlci1yZWxvYWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdG9yYWdlL3dlYnNxbC9kYXRhYmFzZS1sb2NrLWFmdGVyLXJlbG9hZC5odG1sCShyZXZpc2lv
biAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9kYXRhYmFzZS1sb2NrLWFm
dGVyLXJlbG9hZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05LDggKzksOCBAQCBmdW5jdGlvbiBs
b2cobWVzc2FnZSkKIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKQogewogICAgIGxvZygiVGVzdCBwYXJ0
IDEgQ29tcGxldGUiKTsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rp
b24gZXJyb3JGdW5jdGlvbihlcnJvcikKQEAgLTM1LDEwICszNSwxMCBAQCBmdW5jdGlvbiBhZGRE
YXRhKGRiKQogCiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNsZWFyQWxsRGF0
YWJhc2VzKCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmNsZWFyQWxsRGF0YWJhc2VzKCk7
CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICB2YXIgZGF0YWJhc2U7CkluZGV4OiBMYXlvdXRU
ZXN0cy9zdG9yYWdlL3dlYnNxbC9lbXB0eS1zdGF0ZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9lbXB0eS1zdGF0ZW1lbnQuaHRtbAkocmV2aXNpb24g
MTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvZW1wdHktc3RhdGVtZW50Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEyLDE1ICsxMiwxNSBAQCBmdW5jdGlvbiBleGVjdXRlRW1w
dHlTdGF0ZW1lbnQodHJhbnNhY3RpCiB7CiAgICAgdHJhbnNhY3Rpb24uZXhlY3V0ZVNxbCgiIik7
CiAgICAgd3JpdGVNZXNzYWdlVG9Mb2coIkV4ZWN1dGVkIGFuIGVtcHR5IHN0YXRlbWVudC4gSWYg
eW91IGRpZG4ndCBzZWUgYSBjcmFzaCBvciBhc3NlcnRpb24sIHRoZSB0ZXN0IHBhc3NlZC4iKTsK
LSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rpb24gcnVuVGVzdCgpCiB7
Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwogICAgIH0KICAgICB2YXIgZGIgPSBvcGVuRGF0YWJhc2UoIkVtcHR5U3RhdGVtZW50VGVz
dCIsICIxLjAiLCAiRGF0YWJhc2UgZm9yIGFuIGVtcHR5IHN0YXRlbWVudCB0ZXN0IiwgMSk7CiAg
ICAgZGIudHJhbnNhY3Rpb24oZXhlY3V0ZUVtcHR5U3RhdGVtZW50KTsKSW5kZXg6IExheW91dFRl
c3RzL3N0b3JhZ2Uvd2Vic3FsL2V4ZWN1dGUtc3FsLWFyZ3MuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZS1zcWwtYXJncy5qcwkocmV2aXNpb24gMTIw
NTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZS1zcWwtYXJncy5qcwko
d29ya2luZyBjb3B5KQpAQCAtNzQsOCArNzQsOCBAQCBmdW5jdGlvbiBydW5UcmFuc2FjdGlvblRl
c3RzKHRyYW5zYWN0aW9uCiAgICAgZm9yIChpIGluIGV4cGVjdEV4Y2VwdGlvbikKICAgICAgICAg
cnVuVHJhbnNhY3Rpb25UZXN0KHRyYW5zYWN0aW9uLCBleHBlY3RFeGNlcHRpb25baV0sIHRydWUp
OwogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIHJ1blRlc3Qo
KQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZXNxbC1hY2NlcHRzLW9u
bHktb25lLXN0YXRlbWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2Uv
d2Vic3FsL2V4ZWN1dGVzcWwtYWNjZXB0cy1vbmx5LW9uZS1zdGF0ZW1lbnQuaHRtbAkocmV2aXNp
b24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZXNxbC1hY2Nl
cHRzLW9ubHktb25lLXN0YXRlbWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw4ICsxMyw4
IEBAIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogCiBmdW5jdGlvbiB0ZXJtaW5hdGVUZXN0KCkKIHsK
LSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rpb24gZXhlY3V0ZVN0YXRl
bWVudChleHBlY3RlZFRvUGFzcywgc3RhdGVtZW50KQpAQCAtNDUsMTAgKzQ1LDEwIEBAIGZ1bmN0
aW9uIGV4ZWN1dGVTdGF0ZW1lbnQoZXhwZWN0ZWRUb1Bhc3MKIAogZnVuY3Rpb24gcnVuVGVzdCgp
CiB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5jbGVhckFsbERhdGFiYXNlcygpOwotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5jbGVhckFsbERhdGFiYXNlcygpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAg
ZGIgPSBvcGVuRGF0YWJhc2UoIkV4ZWN1dGVTUUxBY2NlcHRzT25seU9uZVN0YXRlbWVudFRlc3Qi
LCAiMS4wIiwgIiIsIDEpOwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvaGFzaC1j
aGFuZ2Utd2l0aC14aHIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJz
cWwvaGFzaC1jaGFuZ2Utd2l0aC14aHIuanMJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRl
c3RzL3N0b3JhZ2Uvd2Vic3FsL2hhc2gtY2hhbmdlLXdpdGgteGhyLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw4ICsyOSw4IEBAIGZ1bmN0aW9uIHN0b3BUZXN0KG1lc3NhZ2UpCiAKICAgICBsb2co
bWVzc2FnZSk7CiAKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KICAgICAKIGZ1bmN0
aW9uIHVwZGF0ZURhdGFiYXNlKCkKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL211
bHRpcGxlLWRhdGFiYXNlcy1nYXJiYWdlLWNvbGxlY3Rpb24uanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvbXVsdGlwbGUtZGF0YWJhc2VzLWdhcmJhZ2UtY29sbGVj
dGlvbi5qcwkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwv
bXVsdGlwbGUtZGF0YWJhc2VzLWdhcmJhZ2UtY29sbGVjdGlvbi5qcwkod29ya2luZyBjb3B5KQpA
QCAtMTgsOCArMTgsOCBAQCB2YXIgZm9yZ290dGVuREIgPSAwOwogdmFyIGNvbXBsZXRlZCA9IDA7
CiBmdW5jdGlvbiBjaGVja0NvbXBsZXRpb24oKQogewotICAgIGlmICgrK2NvbXBsZXRlZCA9PSAy
ICYmIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICgrK2NvbXBsZXRlZCA9PSAyICYmIHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rp
b24gcnVuVGVzdCgpCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9tdWx0aXBsZS10
cmFuc2FjdGlvbnMtb24tZGlmZmVyZW50LWhhbmRsZXMuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3RvcmFnZS93ZWJzcWwvbXVsdGlwbGUtdHJhbnNhY3Rpb25zLW9uLWRpZmZlcmVudC1o
YW5kbGVzLmpzCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNx
bC9tdWx0aXBsZS10cmFuc2FjdGlvbnMtb24tZGlmZmVyZW50LWhhbmRsZXMuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTMsOCArMyw4IEBAIHZhciBjb21wbGV0ZSA9IDA7CiBmdW5jdGlvbiBjaGVja0Nv
bXBsZXRpb24oKQogewogICAgIC8vIFRoZSB0ZXN0IHNob3VsZCBlbmQgYWZ0ZXIgdHdvIHRyYW5z
YWN0aW9ucwotICAgIGlmICgrK2NvbXBsZXRlID09IDIgJiYgd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAg
aWYgKCsrY29tcGxldGUgPT0gMiAmJiB3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIC8vIE9wZW5zIHRoZSBkYXRhYmFzZSB1c2VkIGluIHRo
aXMgdGVzdCBjYXNlCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9tdWx0aXBsZS10
cmFuc2FjdGlvbnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwv
bXVsdGlwbGUtdHJhbnNhY3Rpb25zLmpzCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0
cy9zdG9yYWdlL3dlYnNxbC9tdWx0aXBsZS10cmFuc2FjdGlvbnMuanMJKHdvcmtpbmcgY29weSkK
QEAgLTIsOCArMiw4IEBAIHZhciBjb21wbGV0ZSA9IDA7CiAKIGZ1bmN0aW9uIGNoZWNrQ29tcGxl
dGlvbigpCiB7Ci0gICAgaWYgKCsrY29tcGxldGUgPT0gMiAmJiB3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICBpZiAoKytjb21wbGV0ZSA9PSAyICYmIHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rpb24gcnVuVGVzdCgpCkluZGV4OiBMYXlv
dXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9udWxsLWNhbGxiYWNrcy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL251bGwtY2FsbGJhY2tzLmh0bWwJKHJldmlzaW9u
IDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL251bGwtY2FsbGJhY2tzLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsMTYgKzMsMTYgQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiBm
aW5pc2hUZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rp
b24gcnVuVGVzdCgpCiB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewot
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5jbGVhckFsbERhdGFiYXNlcygpOwotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5jbGVhckFsbERhdGFiYXNlcygpOworICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAg
ICAgfQogCiAgICAgdHJ5IHsKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL29wZW4t
ZGF0YWJhc2UtY3JlYXRpb24tY2FsbGJhY2staXNvbGF0ZWQtd29ybGQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLWNyZWF0aW9uLWNh
bGxiYWNrLWlzb2xhdGVkLXdvcmxkLmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRl
c3RzL3N0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2UtY3JlYXRpb24tY2FsbGJhY2staXNvbGF0
ZWQtd29ybGQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw4ICs3LDggQEAgVGhpcyB0ZXN0IHRl
c3RzIHRoYXQgdGhlIG9wZW5EYXRhYmFzZSgpIAogdmFyIGNyZWF0aW9uQ2FsbGJhY2tzRXhlY3V0
ZWQgPSAwOwogZnVuY3Rpb24gZG9uZSgpCiB7Ci0gICAgaWYgKCgrK2NyZWF0aW9uQ2FsbGJhY2tz
RXhlY3V0ZWQgPT0gMikgJiYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikpCi0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAoKCsrY3JlYXRpb25D
YWxsYmFja3NFeGVjdXRlZCA9PSAyKSAmJiAod2luZG93LnRlc3RSdW5uZXIpKQorICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rpb24gY3JlYXRpb25DYWxsYmFjazEo
ZGIpCkBAIC0yNiwxMSArMjYsMTEgQEAgZnVuY3Rpb24gY3JlYXRpb25DYWxsYmFjazIoZGIpCiBk
b2N1bWVudC5ib2R5LmZvbyA9ICJGQUlMOiBkb2N1bWVudC5ib2R5LmZvbyB2aXNpYmxlIGluIGlz
b2xhdGVkIHdvcmxkLiI7CiBkb2N1bWVudC5ib2R5LmJhciA9ICJQQVNTOiBkb2N1bWVudC5ib2R5
LmJhciB2aXNpYmxlIGluIGEgY2FsbGJhY2sgY3JlYXRlZCBpbiB0aGlzIHdvcmxkLiI7CiAKLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jbGVhckFsbERhdGFiYXNlcygpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQoCitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmNsZWFyQWxsRGF0YWJhc2VzKCk7Cisg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgdGVzdFJ1bm5lci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKICAgICAg
ICAgMCwKICAgICAgICAgImZ1bmN0aW9uIGNyZWF0aW9uQ2FsbGJhY2sxKGRiKVxuIiArCiAgICAg
ICAgICJ7XG4iICsKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJh
c2UtY3JlYXRpb24tY2FsbGJhY2suaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9y
YWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNrLmh0bWwJKHJldmlzaW9u
IDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2UtY3Jl
YXRpb24tY2FsbGJhY2suaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCwxOCArOCwxOCBAQCBmdW5j
dGlvbiBsb2cobWVzc2FnZSkKIAogZnVuY3Rpb24gZmluaXNoVGVzdCgpCiB7Ci0gICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKQogewotICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
RGF0YWJhc2VRdW90YSgzMjc2OCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBE
YXRhYmFzZUNhbGxiYWNrcygpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5jbGVhckFsbERh
dGFiYXNlcygpOworICAgICAgICB0ZXN0UnVubmVyLnNldERhdGFiYXNlUXVvdGEoMzI3NjgpOwor
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBEYXRhYmFzZUNhbGxiYWNrcygpOworICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CiAgICAgfQogCiAgICAgdmFyIHRyYW5zYWN0aW9uc1J1biA9IDA7CkluZGV4OiBMYXlvdXRUZXN0
cy9zdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLWVtcHR5LXZlcnNpb24uaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLWVtcHR5LXZl
cnNpb24uaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJz
cWwvb3Blbi1kYXRhYmFzZS1lbXB0eS12ZXJzaW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIs
OCArMiw4IEBACiA8aGVhZD4KIDxzY3JpcHQ+CiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIAotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSAKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgCiAgICAgdHJ5IHsgICAgCiAgICAgICAgIHZh
ciBkYiA9IG9wZW5EYXRhYmFzZSgnNTU2MjQ3MFRlc3QnLCAnJywgJ1Rlc3QgZm9yIDxyZGFyOi8v
cHJvYmxlbS81NTYyNDcwPiBvcGVuRGF0YWJhc2UgZG9lcyBub3Qgd29yayB3aGVuIHRoZSB2ZXJz
aW9uIHN0cmluZyBpcyBlbXB0eScsIDEpOwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJz
cWwvb3Blbi1kYXRhYmFzZS1vdmVyLXF1b3RhLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS1vdmVyLXF1b3RhLmh0bWwJKHJldmlzaW9u
IDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2Utb3Zl
ci1xdW90YS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDkgKzIsOSBAQAogPGhlYWQ+CiA8c2Ny
aXB0PgogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgICAgIHRlc3RSdW5uZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKICAgICB9CiAKICAgICB0cnkg
ewpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS1zZXQtZW1w
dHktdmVyc2lvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3Fs
L29wZW4tZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24uaHRtbAkocmV2aXNpb24gMTIwNTE0KQor
KysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS1zZXQtZW1wdHktdmVy
c2lvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDkgKzIsOSBAQAogPGhlYWQ+CiA8c2NyaXB0
PgogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKKyAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
ICAgIHRlc3RSdW5uZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKICAgICB9CiAgICAgCiAgICAgdHJ5
IHsgICAgCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLXdo
aWxlLXRyYW5zYWN0aW9uLWluLXByb2dyZXNzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2Utd2hpbGUtdHJhbnNhY3Rpb24taW4tcHJvZ3Jl
c3MuanMJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL29w
ZW4tZGF0YWJhc2Utd2hpbGUtdHJhbnNhY3Rpb24taW4tcHJvZ3Jlc3MuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTM1LDcgKzM1LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgfSwgZnVuY3Rpb24o
ZXJyb3IpIHsKICAgICAgICAgbG9nKCJUcmFuc2FjdGlvbiBmYWlsZWQ6ICIgKyBlcnJvci5tZXNz
YWdlKTsKICAgICB9LCBmdW5jdGlvbigpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CiAgICAgfSk7CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3dl
YnNxbC9wcml2YXRlLWJyb3dzaW5nLW5vcmVhZC1ub3dyaXRlLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvcHJpdmF0ZS1icm93c2luZy1ub3JlYWQtbm93cml0
ZS5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9w
cml2YXRlLWJyb3dzaW5nLW5vcmVhZC1ub3dyaXRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTY3
LDggKzY3LDggQEAgZnVuY3Rpb24gcnVuUHJpdmF0ZUJyb3dzaW5nVGVzdHMoKQogewogICAgIGNv
bXBsZXRlZCA9IDA7CiAKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHRydWUp
OworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2
YXRlQnJvd3NpbmdFbmFibGVkKHRydWUpOwogICAgIAogICAgIGZvciAoaSBpbiBwcml2YXRlQnJv
d3NpbmdTdGF0ZW1lbnRzKQogICAgICAgICB0aGVUcmFuc2FjdGlvbi5leGVjdXRlU3FsKHByaXZh
dGVCcm93c2luZ1N0YXRlbWVudHNbaV0sIFtdLCBwcml2YXRlQnJvd3NpbmdTdWNjZXNzRnVuY3Rp
b24sIHByaXZhdGVCcm93c2luZ0Vycm9yRnVuY3Rpb24pOwpAQCAtNzgsMTUgKzc4LDE1IEBAIGZ1
bmN0aW9uIGVuZFRlc3QoKQogewogICAgIHdyaXRlTWVzc2FnZVRvTG9nKCJUZXN0IGVuZGVkIik7
CiAgICAgCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIHJ1blRl
c3QoKQogewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKICAgICB9CiAKICAgICB2YXIgZGF0YWJhc2UgPSBvcGVuRGF0YWJhc2UoIlBy
aXZhdGVCcm93c2luZ05vUmVhZE5vV3JpdGVUZXN0IiwgIjEuMCIsICJUZXN0IHByaXZhdGUgYnJv
d3Npbmcgbm8gcmVhZC93cml0ZSBzYWZldHkiLCAxKTsKSW5kZXg6IExheW91dFRlc3RzL3N0b3Jh
Z2Uvd2Vic3FsL3F1b3RhLXRyYWNraW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3RvcmFnZS93ZWJzcWwvcXVvdGEtdHJhY2tpbmcuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysg
TGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvcXVvdGEtdHJhY2tpbmcuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTMsOCArMTMsOCBAQCBmdW5jdGlvbiBsb2cobWVzc2FnZSkKIGZ1bmN0aW9uIGZp
bmlzaFRlc3QoKQogewogICAgIGxvZygiVGVzdCBDb21wbGV0ZSIpOwotICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwogfQogCiBmdW5jdGlvbiBzdGF0ZW1lbnRFcnJvckZ1bmN0aW9uKHR4LCBl
cnJvcikKQEAgLTg4LDEyICs4OCwxMiBAQCBmdW5jdGlvbiB0ZXN0RGF0YWJhc2UoZGIpCiAKIGZ1
bmN0aW9uIHJ1blRlc3QoKQogewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERhdGFiYXNlQ2FsbGJhY2tzKCk7Ci0gICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldERhdGFiYXNlUXVvdGEoNDA5NjApOwotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5jbGVhckFsbERhdGFiYXNlcygpOworICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBEYXRhYmFzZUNhbGxiYWNrcygpOworICAgICAgICB0ZXN0UnVubmVyLnNldERhdGFi
YXNlUXVvdGEoNDA5NjApOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAgZGF0YWJhc2UxID0g
b3BlbkRhdGFiYXNlKCJRdW90YU1hbmFnZW1lbnREYXRhYmFzZTEiLCAiMS4wIiwgIlRlc3QgZm9y
IHF1b3RhIG1hbmFnZW1lbnQgPHJkYXI6Ly81NjI4NDY4PiIsIDEpOwpJbmRleDogTGF5b3V0VGVz
dHMvc3RvcmFnZS93ZWJzcWwvcmVhZC1hbmQtd3JpdGUtdHJhbnNhY3Rpb25zLWRvbnQtcnVuLXRv
Z2V0aGVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL3JlYWQt
YW5kLXdyaXRlLXRyYW5zYWN0aW9ucy1kb250LXJ1bi10b2dldGhlci5qcwkocmV2aXNpb24gMTIw
NTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvcmVhZC1hbmQtd3JpdGUtdHJhbnNh
Y3Rpb25zLWRvbnQtcnVuLXRvZ2V0aGVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBA
QAogZnVuY3Rpb24gdGVybWluYXRlVGVzdCgpCiB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CiB9CiAKIGZ1bmN0aW9uIG9wZW5UZXN0RGF0YWJhc2UoKQpJbmRleDogTGF5b3V0VGVzdHMv
c3RvcmFnZS93ZWJzcWwvcmVhZC10cmFuc2FjdGlvbnMtcnVubmluZy1jb25jdXJyZW50bHkuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9yZWFkLXRyYW5zYWN0
aW9ucy1ydW5uaW5nLWNvbmN1cnJlbnRseS5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlv
dXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9yZWFkLXRyYW5zYWN0aW9ucy1ydW5uaW5nLWNvbmN1cnJl
bnRseS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05LDggKzksOCBAQCBmdW5jdGlvbiBsb2cobWVz
c2FnZSkKIAogZnVuY3Rpb24gdGVybWluYXRlVGVzdCgpCiB7Ci0gICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIG9wZW5UZXN0RGF0YWJhc2UoKQpAQCAtNDAsOSArNDAs
OSBAQCBmdW5jdGlvbiBydW5SZWFkVHJhbnNhY3Rpb24oZGIpCiB9CiAKIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwogICAgIH0KIAogICAgIHRyeSB7CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdl
L3dlYnNxbC9zcWwtZGF0YS10eXBlcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9y
YWdlL3dlYnNxbC9zcWwtZGF0YS10eXBlcy5qcwkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0
VGVzdHMvc3RvcmFnZS93ZWJzcWwvc3FsLWRhdGEtdHlwZXMuanMJKHdvcmtpbmcgY29weSkKQEAg
LTcsOCArNyw4IEBAIGZ1bmN0aW9uIHdyaXRlTWVzc2FnZVRvTG9nKG1lc3NhZ2UpCiAKIGZ1bmN0
aW9uIG5vdGlmeURvbmUoc3RyKSB7CiAgICAgd3JpdGVNZXNzYWdlVG9Mb2coc3RyKTsKLSAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogdmFyIHRlc3RWYWx1ZXMgPSB7CkBAIC03NSw5
ICs3NSw5IEBAIGZ1bmN0aW9uIGNyZWF0ZVRlc3REQlN0bXQodHgpCiB9CiAKIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwogICAgIH0KICAgICB2YXIgZGIgPSBvcGVuRGF0YWJhc2UoIkRhdGFUeXBl
VGVzdCIsICIxLjAiLCAiRGF0YWJhc2UgZm9yIHNxbCBkYXRhIHR5cGUgdGVzdCIsIDEpOwogICAg
IGlmIChkYikKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL3NxbC1lcnJvci1jb2Rl
cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9zcWwtZXJyb3It
Y29kZXMuanMJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3Fs
L3NxbC1lcnJvci1jb2Rlcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKQogewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCiB2
YXIgVE9UQUxfVEVTVFMgPSA3OwpAQCAtMTAwLDggKzEwMCw4IEBAIGZ1bmN0aW9uIHRlc3RWZXJz
aW9uTWlzbWF0Y2goZGIpCiAKIGZ1bmN0aW9uIHJ1blRlc3QoKQogewotICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNsZWFy
QWxsRGF0YWJhc2VzKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0
UnVubmVyLmNsZWFyQWxsRGF0YWJhc2VzKCk7CiAKICAgICB2YXIgZGIgPSBvcGVuRGF0YWJhc2VX
aXRoU3VmZml4KCJTUUxFcnJvckNvZGVzVGVzdCIsICIxLjAiLCAiVGVzdHMgdGhlIGVycm9yIGNv
ZGVzLiIsIDEpOwogICAgIHRlc3RUcmFuc2FjdGlvblRocm93c0V4Y2VwdGlvbihkYik7CkluZGV4
OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9zdGF0ZW1lbnQtZXJyb3ItY2FsbGJhY2staXNv
bGF0ZWQtd29ybGQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNx
bC9zdGF0ZW1lbnQtZXJyb3ItY2FsbGJhY2staXNvbGF0ZWQtd29ybGQuaHRtbAkocmV2aXNpb24g
MTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvc3RhdGVtZW50LWVycm9yLWNh
bGxiYWNrLWlzb2xhdGVkLXdvcmxkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsOCArNyw4IEBA
IFRoaXMgdGVzdCB0ZXN0cyB0aGF0IHRoZSBzdGF0ZW1lbnQgZXJyb3IKIHZhciBzdGF0ZW1lbnRF
cnJvckNhbGxiYWNrc0ludm9rZWQgPSAwOwogZnVuY3Rpb24gZG9uZSgpCiB7Ci0gICAgaWYgKCgr
K3N0YXRlbWVudEVycm9yQ2FsbGJhY2tzSW52b2tlZCA9PSAyKSAmJiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSkKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworICAgIGlmICgoKytzdGF0ZW1lbnRFcnJvckNhbGxiYWNrc0ludm9rZWQgPT0gMikgJiYgKHdp
bmRvdy50ZXN0UnVubmVyKSkKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAK
IGZ1bmN0aW9uIHN0YXRlbWVudEVycm9yQ2FsbGJhY2sxKHR4LCBlcnJvcikKQEAgLTI2LDExICsy
NiwxMSBAQCBmdW5jdGlvbiBzdGF0ZW1lbnRFcnJvckNhbGxiYWNrMih0eCwgZXJyCiBkb2N1bWVu
dC5ib2R5LmZvbyA9ICJGQUlMOiBkb2N1bWVudC5ib2R5LmZvbyB2aXNpYmxlIGluIGlzb2xhdGVk
IHdvcmxkLiI7CiBkb2N1bWVudC5ib2R5LmJhciA9ICJQQVNTOiBkb2N1bWVudC5ib2R5LmJhciB2
aXNpYmxlIGluIGEgY2FsbGJhY2sgY3JlYXRlZCBpbiB0aGlzIHdvcmxkLiI7CiAKLWlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5jbGVh
ckFsbERhdGFiYXNlcygpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQoCitpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmNsZWFyQWxsRGF0YWJhc2VzKCk7CisgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cisg
ICAgdGVzdFJ1bm5lci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKICAgICAgICAgMCwK
ICAgICAgICAgImZ1bmN0aW9uIHN0YXRlbWVudEVycm9yQ2FsbGJhY2sxKHR4LCBlcnJvcilcbiIg
KwogICAgICAgICAie1xuIiArCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9zdGF0
ZW1lbnQtZXJyb3ItY2FsbGJhY2suaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9y
YWdlL3dlYnNxbC9zdGF0ZW1lbnQtZXJyb3ItY2FsbGJhY2suaHRtbAkocmV2aXNpb24gMTIwNTE0
KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvc3RhdGVtZW50LWVycm9yLWNhbGxiYWNr
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDggKzEwLDggQEAgZnVuY3Rpb24gbG9nKG1lc3Nh
Z2UpCiBmdW5jdGlvbiBmaW5pc2hUZXN0KCkKIHsKICAgICBsb2coIlRlc3QgQ29tcGxldGUiKTsK
LSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogdmFyIHR4Q2FsbGJhY2tDb3VudCA9
IDA7CkBAIC01NSwxMCArNTUsMTAgQEAgZnVuY3Rpb24gcnVuVHJhbnNhY3Rpb24oZXhwZWN0ZWRU
b0ZhaWwsIAogCiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNsZWFyQWxsRGF0
YWJhc2VzKCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmNsZWFyQWxsRGF0YWJhc2VzKCk7
CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICBkYXRhYmFzZSA9IG9wZW5EYXRhYmFzZSgiU3Rh
dGVtZW50RXJyb3JDYWxsYmFja1Rlc3QiLCAiMS4wIiwgInN0YXRlbWVudCBlcnJvciBjYWxsYmFj
ayB0ZXN0IiwgMTAyNCk7CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9zdGF0ZW1l
bnQtc3VjY2Vzcy1jYWxsYmFjay1pc29sYXRlZC13b3JsZC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1zdWNjZXNzLWNhbGxiYWNrLWlzb2xh
dGVkLXdvcmxkLmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uv
d2Vic3FsL3N0YXRlbWVudC1zdWNjZXNzLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxkLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTcsOCArNyw4IEBAIFRoaXMgdGVzdCB0ZXN0cyB0aGF0IHRoZSBzdGF0
ZW1lbnQgc3VjY2UKIHZhciBzdGF0ZW1lbnRTdWNjZXNzQ2FsbGJhY2tzSW52b2tlZCA9IDA7CiBm
dW5jdGlvbiBkb25lKCkKIHsKLSAgICBpZiAoKCsrc3RhdGVtZW50U3VjY2Vzc0NhbGxiYWNrc0lu
dm9rZWQgPT0gMikgJiYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikpCi0gICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAoKCsrc3RhdGVtZW50U3Vj
Y2Vzc0NhbGxiYWNrc0ludm9rZWQgPT0gMikgJiYgKHdpbmRvdy50ZXN0UnVubmVyKSkKKyAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIHN0YXRlbWVudFN1Y2Nl
c3NDYWxsYmFjazEodHgsIGRhdGEpCkBAIC0yNiwxMSArMjYsMTEgQEAgZnVuY3Rpb24gc3RhdGVt
ZW50U3VjY2Vzc0NhbGxiYWNrMih0eCwgZAogZG9jdW1lbnQuYm9keS5mb28gPSAiRkFJTDogZG9j
dW1lbnQuYm9keS5mb28gdmlzaWJsZSBpbiBpc29sYXRlZCB3b3JsZC4iOwogZG9jdW1lbnQuYm9k
eS5iYXIgPSAiUEFTUzogZG9jdW1lbnQuYm9keS5iYXIgdmlzaWJsZSBpbiBhIGNhbGxiYWNrIGNy
ZWF0ZWQgaW4gdGhpcyB3b3JsZC4iOwogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmV2YWx1YXRlU2Ny
aXB0SW5Jc29sYXRlZFdvcmxkKAoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1
bm5lci5jbGVhckFsbERhdGFiYXNlcygpOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuZXZhbHVhdGVT
Y3JpcHRJbklzb2xhdGVkV29ybGQoCiAgICAgICAgIDAsCiAgICAgICAgICJmdW5jdGlvbiBzdGF0
ZW1lbnRTdWNjZXNzQ2FsbGJhY2sxKHR4LCBkYXRhKVxuIiArCiAgICAgICAgICJ7XG4iICsKSW5k
ZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL3N1Y2Nlc3MtY2FsbGJhY2suaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9zdWNjZXNzLWNhbGxiYWNrLmh0
bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL3N1Y2Nl
c3MtY2FsbGJhY2suaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsOCArMTAsOCBAQCBmdW5jdGlv
biBsb2cobWVzc2FnZSkKIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKQogewogICAgIGxvZygiVGVzdCBD
b21wbGV0ZSIpOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCiBmdW5jdGlvbiBl
cnJvckZ1bmN0aW9uKGVycm9yKQpAQCAtMzEsMTAgKzMxLDEwIEBAIGZ1bmN0aW9uIHN1Y2Nlc3NG
dW5jdGlvbihtZXNzYWdlKQogCiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKLSAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNs
ZWFyQWxsRGF0YWJhc2VzKCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmNsZWFyQWxsRGF0
YWJhc2VzKCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAgICAgCiAgICAgdmFyIGRhdGFiYXNlID0g
b3BlbkRhdGFiYXNlKCJTdWNjZXNzQ2FsbGJhY2tEYXRhYmFzZSIsICIxLjAiLCAiVGVzdCBmb3Ig
c3VjY2VzcyBjYWxsYmFjayA8cmRhcjovLzU3Mzc2OTI+IiwgMSk7CkluZGV4OiBMYXlvdXRUZXN0
cy9zdG9yYWdlL3dlYnNxbC90ZXN0LWF1dGhvcml6ZXIuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3RvcmFnZS93ZWJzcWwvdGVzdC1hdXRob3JpemVyLmpzCShyZXZpc2lvbiAxMjA1MTQp
CisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC90ZXN0LWF1dGhvcml6ZXIuanMJKHdvcmtp
bmcgY29weSkKQEAgLTEsNyArMSw3IEBACiBmdW5jdGlvbiB0ZXJtaW5hdGVUZXN0KCkKIHsKLSAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rpb24gbG9nQW5kVGVybWluYXRl
VGVzdChtZXNzYWdlLCBlcnJvcikKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL3Ry
YW5zYWN0aW9uLWNhbGxiYWNrLWV4Y2VwdGlvbi1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL3RyYW5zYWN0aW9uLWNhbGxiYWNrLWV4Y2VwdGlvbi1j
cmFzaC5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNx
bC90cmFuc2FjdGlvbi1jYWxsYmFjay1leGNlcHRpb24tY3Jhc2guaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSwxNSArMSwxNSBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogCiB2YXIgZGIgPSBvcGVuRGF0YWJhc2UoIjE1
OTc2VGVzdCIsICIxLjAiLCAiVGVzdCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU5NzYiLCAxKTsKIGRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uKHR4KSB7Ci0gICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeyBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCkgfSwgMCk7Cisg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpIH0sIDApOwogICAgdGhyb3cgIlRyYW5zYWN0
aW9uQ2FsbGJhY2tFcnJvciI7CiB9KTsKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvc3Rv
cmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tY2FsbGJhY2staXNvbGF0ZWQtd29ybGQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC90cmFuc2FjdGlvbi1jYWxsYmFj
ay1pc29sYXRlZC13b3JsZC5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9z
dG9yYWdlL3dlYnNxbC90cmFuc2FjdGlvbi1jYWxsYmFjay1pc29sYXRlZC13b3JsZC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC03LDggKzcsOCBAQCBUaGlzIHRlc3QgdGVzdHMgdGhhdCB0aGUgdHJh
bnNhY3Rpb24gY2FsCiB2YXIgdHJhbnNhY3Rpb25DYWxsYmFja3NJbnZva2VkID0gMDsKIGZ1bmN0
aW9uIGRvbmUoKQogewotICAgIGlmICgoKyt0cmFuc2FjdGlvbkNhbGxiYWNrc0ludm9rZWQgPT0g
MikgJiYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikpCi0gICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAoKCsrdHJhbnNhY3Rpb25DYWxsYmFja3NJ
bnZva2VkID09IDIpICYmICh3aW5kb3cudGVzdFJ1bm5lcikpCisgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwogfQogCiBmdW5jdGlvbiB0cmFuc2FjdGlvbkNhbGxiYWNrMSh0eCkKQEAg
LTI2LDExICsyNiwxMSBAQCBmdW5jdGlvbiB0cmFuc2FjdGlvbkNhbGxiYWNrMih0eCkKIGRvY3Vt
ZW50LmJvZHkuZm9vID0gIkZBSUw6IGRvY3VtZW50LmJvZHkuZm9vIHZpc2libGUgaW4gaXNvbGF0
ZWQgd29ybGQuIjsKIGRvY3VtZW50LmJvZHkuYmFyID0gIlBBU1M6IGRvY3VtZW50LmJvZHkuYmFy
IHZpc2libGUgaW4gYSBjYWxsYmFjayBjcmVhdGVkIGluIHRoaXMgd29ybGQuIjsKIAotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNs
ZWFyQWxsRGF0YWJhc2VzKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKK2lmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKKyAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICB0ZXN0UnVubmVyLmV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKAogICAgICAgICAw
LAogICAgICAgICAiZnVuY3Rpb24gdHJhbnNhY3Rpb25DYWxsYmFjazEodHgpXG4iICsKICAgICAg
ICAgIntcbiIgKwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24t
ZXJyb3ItY2FsbGJhY2staXNvbGF0ZWQtd29ybGQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdG9yYWdlL3dlYnNxbC90cmFuc2FjdGlvbi1lcnJvci1jYWxsYmFjay1pc29sYXRlZC13
b3JsZC5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNx
bC90cmFuc2FjdGlvbi1lcnJvci1jYWxsYmFjay1pc29sYXRlZC13b3JsZC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC03LDggKzcsOCBAQCBUaGlzIHRlc3QgdGVzdHMgdGhhdCB0aGUgdHJhbnNhY3Rp
b24gZXJyCiB2YXIgdHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrc0ludm9rZWQgPSAwOwogZnVuY3Rp
b24gZG9uZSgpCiB7Ci0gICAgaWYgKCgrK3RyYW5zYWN0aW9uRXJyb3JDYWxsYmFja3NJbnZva2Vk
ID09IDIpICYmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpKQotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKCgrK3RyYW5zYWN0aW9uRXJyb3JD
YWxsYmFja3NJbnZva2VkID09IDIpICYmICh3aW5kb3cudGVzdFJ1bm5lcikpCisgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCiBmdW5jdGlvbiB0cmFuc2FjdGlvbkVycm9yQ2Fs
bGJhY2sxKHR4KQpAQCAtMjYsMTEgKzI2LDExIEBAIGZ1bmN0aW9uIHRyYW5zYWN0aW9uRXJyb3JD
YWxsYmFjazIodHgpCiBkb2N1bWVudC5ib2R5LmZvbyA9ICJGQUlMOiBkb2N1bWVudC5ib2R5LmZv
byB2aXNpYmxlIGluIGlzb2xhdGVkIHdvcmxkLiI7CiBkb2N1bWVudC5ib2R5LmJhciA9ICJQQVNT
OiBkb2N1bWVudC5ib2R5LmJhciB2aXNpYmxlIGluIGEgY2FsbGJhY2sgY3JlYXRlZCBpbiB0aGlz
IHdvcmxkLiI7CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5jbGVhckFsbERhdGFiYXNlcygpOwotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVk
V29ybGQoCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmNsZWFyQWxs
RGF0YWJhc2VzKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0
ZWRXb3JsZCgKICAgICAgICAgMCwKICAgICAgICAgImZ1bmN0aW9uIHRyYW5zYWN0aW9uRXJyb3JD
YWxsYmFjazEodHgpXG4iICsKICAgICAgICAgIntcbiIgKwpJbmRleDogTGF5b3V0VGVzdHMvc3Rv
cmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tZXJyb3ItY2FsbGJhY2suaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC90cmFuc2FjdGlvbi1lcnJvci1jYWxsYmFjay5o
dG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC90cmFu
c2FjdGlvbi1lcnJvci1jYWxsYmFjay5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBA
QCBmdW5jdGlvbiBsb2cobWVzc2FnZSkKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpLmlubmVySFRNTCArPSBtZXNzYWdlICsgIjxicj4iOwogfQogCi0vLyBzaWduYWwgdG8g
bGF5b3V0VGVzdENvbnRyb2xsZXIgd2hlbiB0aGlzIHJlYWNoZXMgemVyby4KKy8vIHNpZ25hbCB0
byB0ZXN0UnVubmVyIHdoZW4gdGhpcyByZWFjaGVzIHplcm8uCiB2YXIgdGVzdENvdW50ID0gNDsK
IC8vIHdlIGZpcnN0IHJldHJpZXZlIGFuZCBzdG9yZSB0aGUgbnVtYmVyIG9mIHJvd3MgYWxyZWFk
eSBpbiBvdXIgdGVzdCBkYXRhYmFzZS4KIC8vIG91ciBnb2FsIGlzIHRvIGtlZXAgdGhlIG51bWJl
ciB1bmNoYW5nZWQgdGhyb3VnaCB0aGUgdGVzdHMuCkBAIC0yMiw4ICsyMiw4IEBAIGZ1bmN0aW9u
IGZpbmlzaFRlc3QoKQogCiAgICAgbG9nKCJBbGwgVGVzdHMgYXJlIGNvbXBsZXRlLiIpOwogCi0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIHN1Y2Nlc3NDYWxsYmFj
aygpCkBAIC02NywxMCArNjcsMTAgQEAgZnVuY3Rpb24gc3RhdGVtZW50Q2FsbGJhY2tUaHJvd3NF
eGNlcHRpbwogCiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNsZWFyQWxsRGF0
YWJhc2VzKCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmNsZWFyQWxsRGF0YWJhc2VzKCk7
CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICBkYXRhYmFzZSA9IG9wZW5EYXRhYmFzZSgiRXJy
b3JDYWxsYmFja0RhdGFiYXNlIiwgIjEuMCIsICJUZXN0IGZvciBlcnJvciBjYWxsYmFjayIsIDEp
OwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tc3VjY2Vzcy1j
YWxsYmFjay1pc29sYXRlZC13b3JsZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0
b3JhZ2Uvd2Vic3FsL3RyYW5zYWN0aW9uLXN1Y2Nlc3MtY2FsbGJhY2staXNvbGF0ZWQtd29ybGQu
aHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvdHJh
bnNhY3Rpb24tc3VjY2Vzcy1jYWxsYmFjay1pc29sYXRlZC13b3JsZC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC03LDggKzcsOCBAQCBUaGlzIHRlc3QgdGVzdHMgdGhhdCB0aGUgdHJhbnNhY3Rpb24g
c3VjCiB2YXIgdHJhbnNhY3Rpb25TdWNjZXNzQ2FsbGJhY2tzSW52b2tlZCA9IDA7CiBmdW5jdGlv
biBkb25lKCkKIHsKLSAgICBpZiAoKCsrdHJhbnNhY3Rpb25TdWNjZXNzQ2FsbGJhY2tzSW52b2tl
ZCA9PSAyKSAmJiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSkKLSAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICgoKyt0cmFuc2FjdGlvblN1Y2Nl
c3NDYWxsYmFja3NJbnZva2VkID09IDIpICYmICh3aW5kb3cudGVzdFJ1bm5lcikpCisgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCiBmdW5jdGlvbiB0cmFuc2FjdGlvblN1Y2Nl
c3NDYWxsYmFjazEodHgpCkBAIC0yNiwxMSArMjYsMTEgQEAgZnVuY3Rpb24gdHJhbnNhY3Rpb25T
dWNjZXNzQ2FsbGJhY2syKHR4KQogZG9jdW1lbnQuYm9keS5mb28gPSAiRkFJTDogZG9jdW1lbnQu
Ym9keS5mb28gdmlzaWJsZSBpbiBpc29sYXRlZCB3b3JsZC4iOwogZG9jdW1lbnQuYm9keS5iYXIg
PSAiUEFTUzogZG9jdW1lbnQuYm9keS5iYXIgdmlzaWJsZSBpbiBhIGNhbGxiYWNrIGNyZWF0ZWQg
aW4gdGhpcyB3b3JsZC4iOwogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0g
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmV2YWx1YXRlU2NyaXB0SW5J
c29sYXRlZFdvcmxkKAoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5j
bGVhckFsbERhdGFiYXNlcygpOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuZXZhbHVhdGVTY3JpcHRJ
bklzb2xhdGVkV29ybGQoCiAgICAgICAgIDAsCiAgICAgICAgICJmdW5jdGlvbiB0cmFuc2FjdGlv
blN1Y2Nlc3NDYWxsYmFjazEodHgpXG4iICsKICAgICAgICAgIntcbiIgKwpJbmRleDogTGF5b3V0
VGVzdHMvc3RvcmFnZS93ZWJzcWwvcmVzb3VyY2VzL2RhdGFiYXNlLWNvbW1vbi5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9yZXNvdXJjZXMvZGF0YWJhc2UtY29t
bW9uLmpzCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9y
ZXNvdXJjZXMvZGF0YWJhc2UtY29tbW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw5ICsyMCw5
IEBAIGZ1bmN0aW9uIHNldExvY2F0aW9uSGFzaChoYXNoKSB7CiAKIGZ1bmN0aW9uIHNldHVwQW5k
UnVuVGVzdCgpCiB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwogICAgIH0KICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpLmlubmVyVGV4dCA9ICIiOwogICAgIHJ1blRlc3QoKTsKSW5kZXg6IExheW91dFRlc3Rz
L3N0b3JhZ2Uvd2Vic3FsL3Jlc291cmNlcy9kYXRhYmFzZS1sb2NrLWFmdGVyLXJlbG9hZC0yLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvcmVzb3VyY2VzL2Rh
dGFiYXNlLWxvY2stYWZ0ZXItcmVsb2FkLTIuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5
b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvcmVzb3VyY2VzL2RhdGFiYXNlLWxvY2stYWZ0ZXItcmVs
b2FkLTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSw4ICs5LDggQEAgZnVuY3Rpb24gbG9nKG1l
c3NhZ2UpCiBmdW5jdGlvbiBmaW5pc2hUZXN0KCkKIHsKICAgICBsb2coIlRlc3QgcGFydCAyIENv
bXBsZXRlIik7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIGVy
cm9yRnVuY3Rpb24oZXJyb3IpCkBAIC0zMCw5ICszMCw5IEBAIGZ1bmN0aW9uIGFkZERhdGEoZGIp
CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKQogewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICB0cnkgewpJbmRleDog
TGF5b3V0VGVzdHMvdGFibGVzL3RhYmxlLXNlY3Rpb24tb3ZlcmZsb3ctY2xpcC1jcmFzaC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RhYmxlcy90YWJsZS1zZWN0aW9uLW92ZXJmbG93
LWNsaXAtY3Jhc2guaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvdGFibGVz
L3RhYmxlLXNlY3Rpb24tb3ZlcmZsb3ctY2xpcC1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0yNywxNSArMjcsMTUgQEAKIH0KIDwvc3R5bGU+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAogZnVuY3Rpb24gZmluaXNoKCkgewogICAgIGRvY3Vt
ZW50LmJvZHkuaW5uZXJIVE1MID0gIldlYktpdCBCdWcgODc0NDUgLSBSZW5kZXJUYWJsZVNlY3Rp
b246OnBhaW50Q2VsbC48YnIvPlRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLiI7Ci0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewpJ
bmRleDogTGF5b3V0VGVzdHMvdGFibGVzL2hpdHRlc3RpbmcvZmlsbHRhYmxlLWVtcHR5Y2VsbHMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90YWJsZXMvaGl0dGVzdGluZy9maWxsdGFi
bGUtZW1wdHljZWxscy5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90YWJs
ZXMvaGl0dGVzdGluZy9maWxsdGFibGUtZW1wdHljZWxscy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xMyw5ICsxMyw5IEBACiAgICAgdmFyIGxhc3RTdWNjZXNzID0gMDsKICAgICB2YXIgZmFpbGVk
ID0gZmFsc2U7CiAKLSAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB3aW5kb3cu
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gaXNFbXB0
eShyb3csIGNvbCkgewpAQCAtNDcsOCArNDcsOCBAQAogICAgICAgICB5cG9zICs9IGNlbGxIZWln
aHQ7CiAgICAgICB9CiAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IChmYWlsZWQgPyAi
RkFJTCEhITxici8+IiA6ICJTVUNDRVNTISEhPGJyLz4iKSArbG9nTXNnOwotICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICB9CiAgICAg
fQogICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL3RhYmxlcy9oaXR0ZXN0aW5nL2ZpbGx0
YWJsZS1sZXZlbHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90YWJsZXMvaGl0dGVz
dGluZy9maWxsdGFibGUtbGV2ZWxzLmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRl
c3RzL3RhYmxlcy9oaXR0ZXN0aW5nL2ZpbGx0YWJsZS1sZXZlbHMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMTcsOSArMTcsOSBAQAogICAgICAgICAgICAgICAgICAgICBbZmFsc2UsIGZhbHNlLCBm
YWxzZV1dOwogCiAKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAg
ICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAogICAg
IGZ1bmN0aW9uIGNsZWFySGl0QXJyYXkoKSB7CkBAIC04MSw4ICs4MSw4IEBACiAgICAgICAgIHlw
b3MgKz0gY2VsbEhlaWdodDsKICAgICAgIH0KICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1M
ID0oZmFpbGVkID8gIkZBSUwhISE8YnIvPiIgOiAiU1VDQ0VTUyEhITxici8+IikgK2xvZ01zZzsK
LSAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgICB3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwog
ICAgICAgfQogICAgIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvdGFibGVzL2hpdHRl
c3RpbmcvZmlsbHRhYmxlLW91dGxpbmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90
YWJsZXMvaGl0dGVzdGluZy9maWxsdGFibGUtb3V0bGluZS5odG1sCShyZXZpc2lvbiAxMjA1MTQp
CisrKyBMYXlvdXRUZXN0cy90YWJsZXMvaGl0dGVzdGluZy9maWxsdGFibGUtb3V0bGluZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xNyw5ICsxNyw5IEBACiAgICAgdmFyIGxvZ01zZyA9ICIiOwog
ICAgIHZhciBmYWlsZWQgPSBmYWxzZTsKIAotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKLSAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKLSAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CiAgICAgfQogCiAgICAgZm9yICh2YXIgcm93ID0gMDsgcm93IDwgMTA7ICsrcm93KSB7CkBAIC01
OSw4ICs1OSw4IEBACiAgICAgICAgIHZhciBvdXRsaW5lMiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJvdXRsaW5lMiIpOwogICAgICAgICBvdXRsaW5lMi5zdHlsZS5vdXRsaW5lID0gIm5vbmUi
OwogICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9KGZhaWxlZCA/ICJGQUlMISEhPGJy
Lz4iIDogIlNVQ0NFU1MhISE8YnIvPiIpICtsb2dNc2c7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CiAgICAg
fQogCkluZGV4OiBMYXlvdXRUZXN0cy90YWJsZXMvaGl0dGVzdGluZy9maWxsdGFibGUtcnRsLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdGFibGVzL2hpdHRlc3RpbmcvZmlsbHRhYmxl
LXJ0bC5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90YWJsZXMvaGl0dGVz
dGluZy9maWxsdGFibGUtcnRsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDkgKzE1LDkgQEAK
ICAgICAgICAgICAgICAgICAgICAgICBbZmFsc2UsIGZhbHNlLCBmYWxzZV0sCiAgICAgICAgICAg
ICAgICAgICAgICAgW2ZhbHNlLCBmYWxzZSwgZmFsc2VdXTsKIAotICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICB3aW5kb3cudGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICB9CiAKICAgICAgIGZ1bmN0aW9uIGNsZWFy
SGl0QXJyYXkoKSB7CkBAIC03MSw4ICs3MSw4IEBACiAgICAgICAgIHlwb3MgKz0gY2VsbEhlaWdo
dDsKICAgICAgIH0KICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0oZmFpbGVkID8gIkZB
SUwhISE8YnIvPiIgOiAiU1VDQ0VTUyEhITxici8+IikgK2xvZ01zZzsKLSAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgfQogICAgIH0K
IApJbmRleDogTGF5b3V0VGVzdHMvdGFibGVzL2hpdHRlc3RpbmcvZmlsbHRhYmxlLXN0cmVzcy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RhYmxlcy9oaXR0ZXN0aW5nL2ZpbGx0YWJs
ZS1zdHJlc3MuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvdGFibGVzL2hp
dHRlc3RpbmcvZmlsbHRhYmxlLXN0cmVzcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw5ICsx
NCw5IEBACiAgICAgdmFyIGxhc3RTdWNjZXNzID0gMDsKICAgICB2YXIgZmFpbGVkID0gZmFsc2U7
CiAKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHdpbmRvdy50ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBjZWxsSGl0KGNlbGwp
IHsKQEAgLTQxLDggKzQxLDggQEAKICAgICAgICAgeXBvcyArPSBjZWxsSGVpZ2h0OwogICAgICAg
fQogICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPShmYWlsZWQgPyAiRkFJTCEhITxici8+
IiA6ICJTVUNDRVNTISEhPGJyLz4iKSArbG9nTXNnOwotICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewotICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICB3
aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICB9CiAgICAgfQogCkluZGV4OiBM
YXlvdXRUZXN0cy90YWJsZXMvbGF5ZXJpbmcvcGFpbnQtdGVzdC1sYXllcmluZy0xLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdGFibGVzL2xheWVyaW5nL3BhaW50LXRlc3QtbGF5ZXJp
bmctMS5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90YWJsZXMvbGF5ZXJp
bmcvcGFpbnQtdGVzdC1sYXllcmluZy0xLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsMTQgKzcs
MTQgQEAKIDwhLS0NCiAgICAgZnVuY3Rpb24gU2V0dXAoKSB7IAogICAgICAgICBzZXRUaW1lb3V0
KCdSZXBhaW50QnVnKCknLCAxMCk7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwogICAgIH0KICAgICBmdW5jdGlvbiBSZXBhaW50QnVnKCkgew0KICAg
ICAgICAgdmFyIGRpdjEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYnVnMiIpOw0KICAgICAg
ICAgZGl2MS5zdHlsZS5jb2xvciA9ICdncmVlbic7DQotICAgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiAvLy0tPgogPC9zY3JpcHQ+CkluZGV4OiBMYXlv
dXRUZXN0cy90YWJsZXMvbGF5ZXJpbmcvcGFpbnQtdGVzdC1sYXllcmluZy0yLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvdGFibGVzL2xheWVyaW5nL3BhaW50LXRlc3QtbGF5ZXJpbmct
Mi5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90YWJsZXMvbGF5ZXJpbmcv
cGFpbnQtdGVzdC1sYXllcmluZy0yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsMTQgKzYsMTQg
QEAKIDwhLS0NCiAgICAgZnVuY3Rpb24gU2V0dXAoKSB7IAogICAgICAgICBzZXRUaW1lb3V0KCdS
ZXBhaW50QnVnKCknLCAxMCk7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cisg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwogICAgIH0KICAgICBmdW5jdGlvbiBSZXBhaW50QnVnKCkgew0KICAgICAg
ICAgdmFyIGRpdjIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYnVnMiIpOwogICAgICAgICBk
aXYyLnN0eWxlLmNvbG9yID0gJ2dyZWVuJzsNCi0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOwogICAgIH0NCiAvLy0tPg0KIDwvc2NyaXB0Pg0KSW5kZXg6IExheW91
dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9ibG9jay10ZXN0aW5nLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2Jsb2NrLXRlc3RpbmcuaHRtbAkocmV2aXNpb24g
MTIwNTE0KQorKysgTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2Jsb2NrLXRlc3RpbmcuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTUgKzQzLDE1IEBAIFNvbWUgdGV4dC4gPGEgaWQ9YTEg
aHJlZj0iIzEiPkEgbGluazwvYT4KICAgICB9CiAgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQogICAg
IHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciAmJiB3aW5kb3cuaW50
ZXJuYWxzICYmIGludGVybmFscy50b3VjaE5vZGVBZGp1c3RlZFRvQmVzdENsaWNrYWJsZU5vZGUp
IHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMgJiYg
aW50ZXJuYWxzLnRvdWNoTm9kZUFkanVzdGVkVG9CZXN0Q2xpY2thYmxlTm9kZSkgewogICAgICAg
ICAgICAgZGVzY3JpcHRpb24oJ1Rlc3QgdG91Y2gtYWRqdXN0bWVudCBvbiBhIGJsb2NrIHdoZXJl
IHdlIGFsc28gdG91Y2ggdGhlIGlubmVyIHRleHQgYW5kIG91dHNpZGUgbGluay4nKTsKLSAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CiAgICAgICAgICAgICB0ZXN0RGlyZWN0VG91Y2hlcygpOwogICAgICAgICAgICAgaXNTdWNjZXNz
ZnVsbHlQYXJzZWQoKTsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CiAg
ICAgfQogPC9zY3JpcHQ+CiA8L2JvZHk+Ci08L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
ZmlsZQorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2V2ZW50LXRy
aWdnZXJlZC13aWRnZXRzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdG91Y2hhZGp1
c3RtZW50L2V2ZW50LXRyaWdnZXJlZC13aWRnZXRzLmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysr
IExheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9ldmVudC10cmlnZ2VyZWQtd2lkZ2V0cy5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xMDksMTUgKzEwOSwxNSBAQAogCiAgICAgZnVuY3Rpb24gcnVu
VGVzdHMoKQogICAgIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciAm
JiB3aW5kb3cuaW50ZXJuYWxzICYmIGludGVybmFscy50b3VjaE5vZGVBZGp1c3RlZFRvQmVzdENs
aWNrYWJsZU5vZGUpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5p
bnRlcm5hbHMgJiYgaW50ZXJuYWxzLnRvdWNoTm9kZUFkanVzdGVkVG9CZXN0Q2xpY2thYmxlTm9k
ZSkgewogICAgICAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3QgdmFyaW91cyB3YXlzIHRvIHRyaWdn
ZXIgaW5wdXQtd2lkZ2V0cy4gT24gYSB0b3VjaCBpbnRlcmZhY2UsIGFsbCB0aGUgYWN0aW9ucyBz
aG91bGQgYmUgdHJpZ2dlcmFibGUgd2l0aCBlaXRoZXIgYSB0b3VjaCBkb3duIG9yIGEgdG91Y2gg
dGFwLicpOwotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwot
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKICAgICAgICAgICAgIHRlc3REaXJlY3RUb3VjaGVzKCk7CiAgICAgICAg
ICAgICB0ZXN0RGlyZWN0RmF0RmluZ2VycygpOwogICAgICAgICAgICAgdGVzdEluZGlyZWN0RmF0
RmluZ2VycygpOwogICAgICAgICAgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKLSAgICAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CiAgICAgfQogPC9zY3JpcHQ+CkluZGV4OiBM
YXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvaHRtbC1sYWJlbC5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9odG1sLWxhYmVsLmh0bWwJKHJldmlzaW9uIDEy
MDUxNCkKKysrIExheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9odG1sLWxhYmVsLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTkzLDE0ICs5MywxNCBAQAogCiAgICAgZnVuY3Rpb24gcnVuVGVzdHMo
KQogICAgIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciAmJiB3aW5k
b3cuaW50ZXJuYWxzICYmIGludGVybmFscy50b3VjaE5vZGVBZGp1c3RlZFRvQmVzdENsaWNrYWJs
ZU5vZGUpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5h
bHMgJiYgaW50ZXJuYWxzLnRvdWNoTm9kZUFkanVzdGVkVG9CZXN0Q2xpY2thYmxlTm9kZSkgewog
ICAgICAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3RzIGlmIGxhYmVscyBhcmUgdHJlYXRlZCBhcyBj
bGlja2FibGUgaWYgdGhlIGlucHV0IHRoZXkgY29udHJvbCBpcy4nKTsKLSAgICAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAg
ICAgICB0ZXN0RGlyZWN0VG91Y2hlcygpOwogICAgICAgICAgICAgdGVzdEluZGlyZWN0VG91Y2hl
cygpOwogICAgICAgICAgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKLSAgICAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwogICAgICAgICB9CiAgICAgfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRU
ZXN0cy90b3VjaGFkanVzdG1lbnQvaWZyYW1lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvdG91Y2hhZGp1c3RtZW50L2lmcmFtZS5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlv
dXRUZXN0cy90b3VjaGFkanVzdG1lbnQvaWZyYW1lLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTM3
LDE1ICszNywxNSBAQAogICAgIH0KICAgICBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAgewotICAg
ICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyICYmIHdpbmRvdy5pbnRlcm5hbHMg
JiYgaW50ZXJuYWxzLnRvdWNoTm9kZUFkanVzdGVkVG9CZXN0Q2xpY2thYmxlTm9kZSkgeworICAg
ICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscyAmJiBpbnRlcm5h
bHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RDbGlja2FibGVOb2RlKSB7CiAgICAgICAgICAgICBk
ZXNjcmlwdGlvbignVGVzdCB0b3VjaC1hZGp1c3RtZW50IG9uIGxpbmtzIGluIGFuIGlmcmFtZS4g
TWFraW5nIHN1cmUgd2UgaWZyYW1lIHBvc2l0aW9uIGlzIGNvcnJlY3RseSBhZGp1c3RlZCBmb3Iu
Jyk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwogICAgICAgICAgICAgdGVzdERpcmVjdFRvdWNoZXMoKTsKICAgICAgICAgICAg
IGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAg
ICAgICAgfQogICAgIH0KIDwvc2NyaXB0PgogPC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVu
dC9uZXN0ZWQtdG91Y2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90b3VjaGFkanVz
dG1lbnQvbmVzdGVkLXRvdWNoLmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3Rz
L3RvdWNoYWRqdXN0bWVudC9uZXN0ZWQtdG91Y2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTA1
LDE0ICsxMDUsMTQgQEAgQm94IHdpdGhvdXQgYSBsb2NhbCBjbGljayBoYW5kbGVyLgogCiAgICAg
ZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlciAmJiB3aW5kb3cuaW50ZXJuYWxzICYmIGludGVybmFscy50b3VjaE5vZGVBZGp1
c3RlZFRvQmVzdENsaWNrYWJsZU5vZGUpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy5pbnRlcm5hbHMgJiYgaW50ZXJuYWxzLnRvdWNoTm9kZUFkanVzdGVkVG9CZXN0
Q2xpY2thYmxlTm9kZSkgewogICAgICAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3QgdGhlIGNhc2Ug
d2hlcmUgYSBjbGlja2FibGUgdGFyZ2V0IGlzIG5lc3RlZCBpbnNpZGUgYSBkb2N1bWVudCB0aGF0
IGlzIG1vbml0b3JpbmcgY2xpY2tzLiBUaGUgdGFyZ2V0IHdpdGggdGhlIGxvY2FsIGV2ZW50LWhh
bmRsZXIgc2hvdWxkIGJlIGNob3NlbiBpZiBtdWx0aXBsZSB0YXJnZXRzIGFyZSB0b3VjaGVkLicp
OwotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKICAgICAgICAgICAgIHRlc3REaXJlY3RUb3VjaGVzKCk7CiAgICAgICAgICAgICB0
ZXN0UHJlZmVyZWRUb3VjaCgpOwogICAgICAgICAgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsK
LSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CiAgICAgfQogPC9zY3JpcHQ+
CkluZGV4OiBMYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvc2Nyb2xsLW9mZnNldC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9zY3JvbGwtb2Zmc2V0Lmh0
bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9zY3Jv
bGwtb2Zmc2V0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTc1LDE1ICs3NSwxNSBAQAogCiAgICAg
ZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlciAmJiB3aW5kb3cuaW50ZXJuYWxzICYmIGludGVybmFscy50b3VjaE5vZGVBZGp1
c3RlZFRvQmVzdENsaWNrYWJsZU5vZGUpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
ICYmIHdpbmRvdy5pbnRlcm5hbHMgJiYgaW50ZXJuYWxzLnRvdWNoTm9kZUFkanVzdGVkVG9CZXN0
Q2xpY2thYmxlTm9kZSkgewogICAgICAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3QgdG91Y2ggYWRq
dXN0bWVudCB3aGVuIG1haW4gZnJhbWUgaXMgc2Nyb2xsIG9mZnNldC4nKTsKICAgICAgICAgICAg
IHdpbmRvdy5zY3JvbGxCeSgwLDQwMCk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50
aWxEb25lKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICAgICAgdGVzdERpcmVjdFRv
dWNoZXMoKTsKICAgICAgICAgICAgIHRlc3RBZGp1c3RlZFRvdWNoZXMoKTsKICAgICAgICAgICAg
IGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAg
ICAgICAgfQogICAgIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3Rt
ZW50L3RvdWNoLWlubGluZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90b3VjaGFk
anVzdG1lbnQvdG91Y2gtaW5saW5lcy5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRU
ZXN0cy90b3VjaGFkanVzdG1lbnQvdG91Y2gtaW5saW5lcy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC05MCwxNSArOTAsMTUgQEAgaGkgdGhlcmUgPGEgaWQ9IjYiIGhyZWY9IiM2Ij5zb21lIGxpbmsg
dAogCiAgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQogICAgIHsKLSAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlciAmJiB3aW5kb3cuaW50ZXJuYWxzICYmIGludGVybmFscy50b3Vj
aE5vZGVBZGp1c3RlZFRvQmVzdENsaWNrYWJsZU5vZGUpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMgJiYgaW50ZXJuYWxzLnRvdWNoTm9kZUFkanVz
dGVkVG9CZXN0Q2xpY2thYmxlTm9kZSkgewogICAgICAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3Qg
dG91Y2gtYWRqdXN0bWVudCBvbiBpbmxpbmUgbGlua3MuIE1ha2luZyBzdXJlIHdlIGNhbiBoaXQg
b3ZlciBsaW5lLWJyZWFrcywgYW5kIGNhbiBtaXNzIHdoZW4gdGFwcGluZyBiZXR3ZWVuIHBhcnRz
IG9mIGEgbGluZS1icm9rZW4gbGluay4nKTsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRV
bnRpbERvbmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgICAgICB0ZXN0RGlyZWN0
VG91Y2hlcygpOwogICAgICAgICAgICAgdGVzdERpcmVjdE1pc3NlcygpOwogICAgICAgICAgICAg
dGVzdEluZGlyZWN0VG91Y2hlcygpOwogICAgICAgICAgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQo
KTsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CiAgICAgfQogPC9zY3Jp
cHQ+CkluZGV4OiBMYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvem9vbS1iYXNpYy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC96b29tLWJhc2ljLmh0bWwJ
KHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC96b29tLWJh
c2ljLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTU3LDEzICs1NywxMyBAQAogCiAgICAgZnVuY3Rp
b24gcnVuVGVzdHMoKQogICAgIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlciAmJiB3aW5kb3cuaW50ZXJuYWxzICYmIGludGVybmFscy5iZXN0Wm9vbWFibGVBcmVhRm9y
VG91Y2hQb2ludCkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93Lmlu
dGVybmFscyAmJiBpbnRlcm5hbHMuYmVzdFpvb21hYmxlQXJlYUZvclRvdWNoUG9pbnQpIHsKICAg
ICAgICAgICAgIGRlc2NyaXB0aW9uKCdUZXN0IGJhc2ljIGNhc2VzIG9mIHRhcC10by16b29tIG1l
Y2hhbmljcy4nKTsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CiAgICAgICAgICAgICB0ZXN0RGlyZWN0VG91Y2hlcygpOwogICAg
ICAgICAgICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKLSAgICAgICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOwogICAgICAgICB9CiAgICAgfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy90b3Vj
aGFkanVzdG1lbnQvem9vbS1mYXRmaW5nZXIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy90b3VjaGFkanVzdG1lbnQvem9vbS1mYXRmaW5nZXIuaHRtbAkocmV2aXNpb24gMTIwNTE0KQor
KysgTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3pvb20tZmF0ZmluZ2VyLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTM2LDEzICszNiwxMyBAQCBweDsgd2lkdGg6IDIwMHB4OyBoZWlnaHQ6IDIw
cHg7IH0KIAogICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKICAgICB7Ci0gICAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmludGVybmFscyAmJiBpbnRlcm5hbHMu
YmVzdFpvb21hYmxlQXJlYUZvclRvdWNoUG9pbnQpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMgJiYgaW50ZXJuYWxzLmJlc3Rab29tYWJsZUFyZWFG
b3JUb3VjaFBvaW50KSB7CiAgICAgICAgICAgICBkZXNjcmlwdGlvbignVGVzdCB0aGF0IHRhcmdl
dHRlZCBhcmVhIGlzIHBpY2tlZCBldmVuIGlmIHRoZSB0b3VjaCBhcmVhIGlzIG5vdCBmdWxseSBj
b250YWluZWQuJyk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICAgICAgdGVzdERpcmVjdFRvdWNoZXMoKTsKICAg
ICAgICAgICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKICAgICAgICAgfQogICAgIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvdG91
Y2hhZGp1c3RtZW50L3Njcm9sbC1kZWxlZ2F0aW9uL2lmcmFtZS13aXRoLW1haW5mcmFtZS1zY3Jv
bGwtb2Zmc2V0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50
L3Njcm9sbC1kZWxlZ2F0aW9uL2lmcmFtZS13aXRoLW1haW5mcmFtZS1zY3JvbGwtb2Zmc2V0Lmh0
bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9zY3Jv
bGwtZGVsZWdhdGlvbi9pZnJhbWUtd2l0aC1tYWluZnJhbWUtc2Nyb2xsLW9mZnNldC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC01NiwxNSArNTYsMTUgQEAKIAogICAgIGZ1bmN0aW9uIHJ1blRlc3Rz
KCkKICAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2lu
ZG93LmludGVybmFscyAmJiBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RDbGlja2Fi
bGVOb2RlICYmIGludGVybmFscy5zZXREZWxlZ2F0ZXNTY3JvbGxpbmcpIHsKKyAgICAgICAgaWYg
KHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMgJiYgaW50ZXJuYWxzLnRvdWNo
Tm9kZUFkanVzdGVkVG9CZXN0Q2xpY2thYmxlTm9kZSAmJiBpbnRlcm5hbHMuc2V0RGVsZWdhdGVz
U2Nyb2xsaW5nKSB7CiAgICAgICAgICAgICBkZXNjcmlwdGlvbignVGVzdCBpZnJhbWUgd2l0aCBt
YWluIGZyYW1lIHNjcm9sbCBvZmZzZXQgY2FzZSBvZiB0YXAtdG8tem9vbSBtZWNoYW5pY3MuJyk7
CiAgICAgICAgICAgICB3aW5kb3cuc2Nyb2xsQnkoMCw1MDApOwogICAgICAgICAgICAgaW50ZXJu
YWxzLnNldERlbGVnYXRlc1Njcm9sbGluZyh0cnVlLCBkb2N1bWVudCk7Ci0gICAgICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAg
ICAgICAgdGVzdERpcmVjdFRvdWNoZXMoKTsKICAgICAgICAgICAgIGlzU3VjY2Vzc2Z1bGx5UGFy
c2VkKCk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfQogICAgIH0KIDwv
c2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy9ub190cmFuc2Zvcm1faGl0X3Rl
c3RpbmcuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zL25vX3RyYW5z
Zm9ybV9oaXRfdGVzdGluZy5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90
cmFuc2Zvcm1zL25vX3RyYW5zZm9ybV9oaXRfdGVzdGluZy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0zMiw4ICszMiw4IEBACiAgICAgICAgICByZXN1bHRzLmlubmVyVGV4dCA9ICJQYXNzLiI7CiAg
ICAgICAgfQogCi0gICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKICAgICAgfQog
CiAgIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC9jb21wb3VuZC0y
ZC10cmFuc2Zvcm1zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8y
ZC9jb21wb3VuZC0yZC10cmFuc2Zvcm1zLmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91
dFRlc3RzL3RyYW5zZm9ybXMvMmQvY29tcG91bmQtMmQtdHJhbnNmb3Jtcy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0yNCw5ICsyNCw5IEBACiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvdHJhbnNmb3JtLXRlc3QtdXRpbHMuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hh
cnNldD0idXRmLTgiPjwvc2NyaXB0PgogICA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIg
Y2hhcnNldD0idXRmLTgiPgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsK
LSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAgdmFyIGdUZXN0cyA9IFsKQEAgLTcwLDggKzcwLDgg
QEAKICAgICB7CiAgICAgICB0ZXN0VHJhbnNmb3JtcygpOwogCi0gICAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwogICAgIH0KICAgPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRU
ZXN0cy90cmFuc2Zvcm1zLzJkL2Nzc21hdHJpeC0yZC16b29tLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC9jc3NtYXRyaXgtMmQtem9vbS5odG1sCShyZXZpc2lv
biAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL2Nzc21hdHJpeC0yZC16b29t
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI5LDcgKzI5LDcgQEAgYm9keSB7CiAKIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7CiAKLSAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewor
ICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKIAogICAgICAgICB2YXIgaWQxID0gImEiOwog
ICAgICAgICB2YXIgaWQyID0gImIiOwpJbmRleDogTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC9z
ZXQtdHJhbnNmb3JtLWFuZC10b3AuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFu
c2Zvcm1zLzJkL3NldC10cmFuc2Zvcm0tYW5kLXRvcC5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisr
KyBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL3NldC10cmFuc2Zvcm0tYW5kLXRvcC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0zMyw5ICszMyw5IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAg
Y2hlY2tQb3NpdGlvbigiYSIpOwogICAgIGNoZWNrUG9zaXRpb24oImIiKTsKIAotICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
d2luZG93LnRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB3aW5kb3cudGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CiAgICAgfQogfQogPC9zY3JpcHQ+CkBAIC00Niw4ICs0Niw4IEBAIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CiA8ZGl2IGNsYXNzPSJib3giIGlkPSJiIj5CPC9kaXY+CiAKIDxz
Y3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgd2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
IAogICAgIHNldFRpbWVvdXQobW92ZSwgMTApOwogICAgIGZ1bmN0aW9uIG1vdmUoKSB7CkluZGV4
OiBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL3RyYW5zZm9ybS0yZC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3RyYW5zZm9ybXMvMmQvdHJhbnNmb3JtLTJkLmh0bWwJKHJldmlzaW9u
IDEyMDUxNCkKKysrIExheW91dFRlc3RzL3RyYW5zZm9ybXMvMmQvdHJhbnNmb3JtLTJkLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTI0LDkgKzI0LDkgQEAKICAgPC9zdHlsZT4KICAgPHNjcmlwdCBz
cmM9InJlc291cmNlcy90cmFuc2Zvcm0tdGVzdC11dGlscy5qcyIgdHlwZT0idGV4dC9qYXZhc2Ny
aXB0IiBjaGFyc2V0PSJ1dGYtOCI+PC9zY3JpcHQ+CiAgIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgewotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICB2YXIgZ1Rlc3RzID0gWwpAQCAtMTQz
LDggKzE0Myw4IEBACiAgICAgewogICAgICAgdGVzdFRyYW5zZm9ybXMoKTsKIAotICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOworICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiAgIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRl
eDogTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC90cmFuc2Zvcm0tYWNjdXJhY3kuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL3RyYW5zZm9ybS1hY2N1cmFjeS5o
dG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL3RyYW5z
Zm9ybS1hY2N1cmFjeS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw5ICsyNCw5IEBACiAgIDwv
c3R5bGU+CiAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdHJhbnNmb3JtLXRlc3QtdXRpbHMuanMi
IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PgogICA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgotICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAgdmFy
IGdUZXN0cyA9IFsKQEAgLTM5LDggKzM5LDggQEAKICAgICB7CiAgICAgICB0ZXN0VHJhbnNmb3Jt
cygpOwogCi0gICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0KICAgPC9zY3Jp
cHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzNkL2dlbmVyYWwvM2R0
cmFuc2Zvcm0tdmFsdWVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNmb3Jt
cy8zZC9nZW5lcmFsLzNkdHJhbnNmb3JtLXZhbHVlcy5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisr
KyBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzNkL2dlbmVyYWwvM2R0cmFuc2Zvcm0tdmFsdWVzLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTIwLDkgKzIwLDkgQEAKICAgPC9zdHlsZT4KICAgPHNjcmlw
dCBzcmM9Ii4uLy4uLzJkL3Jlc291cmNlcy90cmFuc2Zvcm0tdGVzdC11dGlscy5qcyIgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+PC9zY3JpcHQ+CiAgIDxzY3JpcHQgdHlw
ZT0idGV4dC9qYXZhc2NyaXB0Ij4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAogICAgIHZhciBnVGVzdHMgPSBbCkBAIC01MSw4ICs1
MSw4IEBACiAgICAgewogICAgICAgdGVzdFRyYW5zZm9ybXMoKTsKIAotICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiAgIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5
b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9nZW5lcmFsL2Nzc21hdHJpeC0zZC16b29tLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9nZW5lcmFsL2Nzc21hdHJpeC0z
ZC16b29tLmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3RyYW5zZm9ybXMv
M2QvZ2VuZXJhbC9jc3NtYXRyaXgtM2Qtem9vbS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3
ICsyOSw3IEBAIGJvZHkgewogCiBmdW5jdGlvbiBydW5UZXN0KCkgewogCi0gICAgaWYgKCF3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7
CiAKICAgICAgICAgdmFyIGlkMSA9ICJhIjsKICAgICAgICAgdmFyIGlkMiA9ICJiIjsKSW5kZXg6
IExheW91dFRlc3RzL3RyYW5zZm9ybXMvM2QvZ2VuZXJhbC9tYXRyaXgtd2l0aC16b29tLTNkLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9nZW5lcmFsL21hdHJp
eC13aXRoLXpvb20tM2QuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvdHJh
bnNmb3Jtcy8zZC9nZW5lcmFsL21hdHJpeC13aXRoLXpvb20tM2QuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMzEsNyArMzEsNyBAQCBib2R5IHsKIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0
Ij4KIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgeworICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKIAogICAgICAgICB2YXIg
aWQxID0gImEiOwogICAgICAgICB2YXIgaWQyID0gImIiOwpJbmRleDogTGF5b3V0VGVzdHMvdHJh
bnNmb3Jtcy8zZC9nZW5lcmFsL3RyYW5zZm9ybS1vcmlnaW4tei1jaGFuZ2UuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzNkL2dlbmVyYWwvdHJhbnNmb3JtLW9yaWdp
bi16LWNoYW5nZS5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90cmFuc2Zv
cm1zLzNkL2dlbmVyYWwvdHJhbnNmb3JtLW9yaWdpbi16LWNoYW5nZS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0zNywxNyArMzcsMTcgQEAKICAgfQogICA8L3N0eWxlPgogICA8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgotICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
dHJ1ZSk7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAg
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQodHJ1
ZSk7CisgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAgICAgCiAgICAg
ZnVuY3Rpb24gZG9UZXN0KCkKICAgICB7CiAgICAgICB3aW5kb3cuc2V0VGltZW91dChmdW5jdGlv
bigpIHsKICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpLnN0eWxlLndl
YmtpdFRyYW5zZm9ybU9yaWdpblogPSAnMTAwcHgnOwotICAgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOwogICAgICAgfSwgMCk7CiAgICAgfQogCkluZGV4OiBMYXlvdXRUZXN0
cy90cmFuc2Zvcm1zLzNkL2hpdC10ZXN0aW5nL2hpdC1wcmVzZXJ2ZXMtM2QuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzNkL2hpdC10ZXN0aW5nL2hpdC1wcmVzZXJ2
ZXMtM2QuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8z
ZC9oaXQtdGVzdGluZy9oaXQtcHJlc2VydmVzLTNkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTI3
LDggKzI3LDggQEAKICAgICAgIH0KICAgPC9zdHlsZT4KICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2ph
dmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogICAg
IGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgIHsKICAgICAgIHZhciBoaXQgPSBkb2N1bWVudC5lbGVt
ZW50RnJvbVBvaW50KDEwMCwgMTAwKTsKSW5kZXg6IExheW91dFRlc3RzL3RyYW5zZm9ybXMvM2Qv
cG9pbnQtbWFwcGluZy8zZC1wb2ludC1tYXBwaW5nLTIuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy90cmFuc2Zvcm1zLzNkL3BvaW50LW1hcHBpbmcvM2QtcG9pbnQtbWFwcGluZy0yLmh0
bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3RyYW5zZm9ybXMvM2QvcG9pbnQt
bWFwcGluZy8zZC1wb2ludC1tYXBwaW5nLTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTMsNyAr
MTMsNyBAQAogICAgICAgLy8gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ292ZXJmbG93Jykuc2Ny
b2xsVG9wID0gNjA7CiAgICAgICAKICAgICAgIC8vIEluIG5vbi10ZXN0IG1vZGUsIHNob3cgdGhl
IG1vdXNlIGNvb3JkcyBmb3IgdGVzdGluZwotICAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICBkb2N1bWVu
dC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG1vdXNlbW92ZWQsIGZhbHNlKTsK
IAogICAgICAgZGlzcGF0Y2hFdmVudCgxMjAsIDEyOCwgJ2JveDQnLCAyLCAyKTsKSW5kZXg6IExh
eW91dFRlc3RzL3RyYW5zZm9ybXMvM2QvcG9pbnQtbWFwcGluZy8zZC1wb2ludC1tYXBwaW5nLTMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzNkL3BvaW50LW1hcHBp
bmcvM2QtcG9pbnQtbWFwcGluZy0zLmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRl
c3RzL3RyYW5zZm9ybXMvM2QvcG9pbnQtbWFwcGluZy8zZC1wb2ludC1tYXBwaW5nLTMuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAKICAgICBmdW5jdGlvbiB0ZXN0KCkKICAgICB7
CiAgICAgICAvLyBJbiBub24tdGVzdCBtb2RlLCBzaG93IHRoZSBtb3VzZSBjb29yZHMgZm9yIHRl
c3RpbmcKLSAgICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgaWYg
KCF3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3Rl
bmVyKCdtb3VzZW1vdmUnLCBtb3VzZW1vdmVkLCBmYWxzZSk7CiAKICAgICAgIGRpc3BhdGNoRXZl
bnQoMTU4LCA4MywgJ2NhcmQnLCAyLCAyKTsKSW5kZXg6IExheW91dFRlc3RzL3RyYW5zZm9ybXMv
M2QvcG9pbnQtbWFwcGluZy8zZC1wb2ludC1tYXBwaW5nLWRlZXAuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzNkL3BvaW50LW1hcHBpbmcvM2QtcG9pbnQtbWFwcGlu
Zy1kZWVwLmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3RyYW5zZm9ybXMv
M2QvcG9pbnQtbWFwcGluZy8zZC1wb2ludC1tYXBwaW5nLWRlZXAuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMTMsNyArMTMsNyBAQAogICAgICAgLy8gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ292
ZXJmbG93Jykuc2Nyb2xsVG9wID0gNjA7CiAgICAgICAKICAgICAgIC8vIEluIG5vbi10ZXN0IG1v
ZGUsIHNob3cgdGhlIG1vdXNlIGNvb3JkcyBmb3IgdGVzdGluZwotICAgICAgaWYgKCF3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQogICAg
ICAgICBkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG1vdXNlbW92
ZWQsIGZhbHNlKTsKIAogICAgICAgZGlzcGF0Y2hFdmVudCg0NSwgNDUsICdib3gxJywgMywgMyk7
CkluZGV4OiBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzNkL3BvaW50LW1hcHBpbmcvM2QtcG9pbnQt
bWFwcGluZy1vcmlnaW5zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNmb3Jt
cy8zZC9wb2ludC1tYXBwaW5nLzNkLXBvaW50LW1hcHBpbmctb3JpZ2lucy5odG1sCShyZXZpc2lv
biAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzNkL3BvaW50LW1hcHBpbmcvM2Qt
cG9pbnQtbWFwcGluZy1vcmlnaW5zLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE0LDcgKzE0LDcg
QEAKICAgICAgIC8vIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdmVyZmxvdycpLnNjcm9sbFRv
cCA9IDYwOwogICAgICAgCiAgICAgICAvLyBJbiBub24tdGVzdCBtb2RlLCBzaG93IHRoZSBtb3Vz
ZSBjb29yZHMgZm9yIHRlc3RpbmcKLSAgICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgZG9jdW1lbnQuYm9k
eS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBtb3VzZW1vdmVkLCBmYWxzZSk7CiAKICAg
ICAgIGRpc3BhdGNoRXZlbnQoNDgsIDQ4LCAnYm94MScsIDYsIDYpOwpJbmRleDogTGF5b3V0VGVz
dHMvdHJhbnNmb3Jtcy8zZC9wb2ludC1tYXBwaW5nLzNkLXBvaW50LW1hcHBpbmctcHJlc2VydmUt
M2QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzNkL3BvaW50LW1h
cHBpbmcvM2QtcG9pbnQtbWFwcGluZy1wcmVzZXJ2ZS0zZC5odG1sCShyZXZpc2lvbiAxMjA1MTQp
CisrKyBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzNkL3BvaW50LW1hcHBpbmcvM2QtcG9pbnQtbWFw
cGluZy1wcmVzZXJ2ZS0zZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQAogICAg
IGZ1bmN0aW9uIHRlc3QoKQogICAgIHsKICAgICAgIC8vIEluIG5vbi10ZXN0IG1vZGUsIHNob3cg
dGhlIG1vdXNlIGNvb3JkcyBmb3IgdGVzdGluZwotICAgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKQogICAgICAgICBkb2N1
bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIG1vdXNlbW92ZWQsIGZhbHNl
KTsKIAogICAgICAgZGlzcGF0Y2hFdmVudCg0NCwgNDQsICdib3gxJywgMiwgMik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>147937</attachid>
            <date>2012-06-15 18:54:06 -0700</date>
            <delta_ts>2012-06-15 19:13:57 -0700</delta_ts>
            <desc>Reverted unrelated newline changes</desc>
            <filename>bug-89263-20120615185406.patch</filename>
            <type>text/plain</type>
            <size>101969</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDEzMCBAQAorMjAxMi0wNi0xNSAgUnlvc3VrZSBOaXdhICA8
cm5pd2FAd2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgdGVzdFJ1bm5lciBpbnN0ZWFkIG9mIGxh
eW91dFRlc3RDb250cm9sbGVyIGluIHN0b3JhZ2UsIHRhYmxlcywgdG91Y2hhZGp1c3RtZW50cywg
YW5kIHRyYW5zZm9ybXMgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTg5MjYzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3Jlc291cmNlcy9ldmVudFRl
c3RIYXJuZXNzLmpzOgorICAgICAgICAodGVzdFN0b3JhZ2VzLmFsbERvbmUpOgorICAgICAgICAq
IHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvZGVsZXRlLXJlbW92YWwuaHRtbDoKKyAg
ICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2VudW1lcmF0ZS1zdG9yYWdl
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9lbnVtZXJh
dGUtd2l0aC1sZW5ndGgtYW5kLWtleS5odG1sOgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFn
ZS9sb2NhbHN0b3JhZ2UvaW5kZXgtZ2V0LWFuZC1zZXQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3ByaXZhdGUtYnJvd3NpbmctYWZmZWN0cy1zdG9yYWdl
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9yZXNvdXJj
ZXMvd2luZG93LW9wZW4tc2Vjb25kLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdl
L2xvY2Fsc3RvcmFnZS9zaW1wbGUtdXNhZ2UuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0
b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci0xLXByZXBh
cmUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3Jh
Z2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci0yLWNyZWF0ZS5odG1sOgorICAgICAgICAqIHN0b3Jh
Z2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIvc3RvcmFnZS10cmFja2Vy
LTMtZGVsZXRlLWFsbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdl
L2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItMy1kZWxldGUtYWxs
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdl
dHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNC1jcmVhdGUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdl
L2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci01
LWRlbGV0ZS1vbmUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9s
b2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIvc3RvcmFnZS10cmFja2VyLTUtZGVsZXRlLW9uZS5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRy
YWNrZXIvc3RvcmFnZS10cmFja2VyLTYtY3JlYXRlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9k
b21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNy11
c2FnZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3Rv
cmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNy11c2FnZS5odG1sOgorICAgICAg
ICAqIHN0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RyaW5nLWNvbnZlcnNpb24uaHRt
bDoKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3dpbmRvdy1vcGVu
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3NjcmlwdC10ZXN0cy9zdG9yYWdl
LWZ1bmN0aW9ucy1ub3Qtb3ZlcndyaXR0ZW4uanM6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9y
YWdlL3Nlc3Npb25zdG9yYWdlL2RlbGV0ZS1yZW1vdmFsLmh0bWw6CisgICAgICAgICogc3RvcmFn
ZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2VudW1lcmF0ZS1zdG9yYWdlLmh0bWw6CisgICAg
ICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2VudW1lcmF0ZS13aXRoLWxl
bmd0aC1hbmQta2V5Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25z
dG9yYWdlL2luZGV4LWdldC1hbmQtc2V0Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9y
YWdlL3Nlc3Npb25zdG9yYWdlL3ByaXZhdGUtYnJvd3NpbmctYWZmZWN0cy1zdG9yYWdlLmh0bWw6
CisgICAgICAgICogc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3Jlc291cmNlcy93
aW5kb3ctb3Blbi1zZWNvbmQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vz
c2lvbnN0b3JhZ2Uvc2ltcGxlLXVzYWdlLmh0bWw6CisgICAgICAgICogc3RvcmFnZS9kb21zdG9y
YWdlL3Nlc3Npb25zdG9yYWdlL3N0cmluZy1jb252ZXJzaW9uLmh0bWw6CisgICAgICAgICogc3Rv
cmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3dpbmRvdy1vcGVuLmh0bWw6CisgICAgICAg
ICogc3RvcmFnZS9kb21zdG9yYWdlL3dpbmRvdy1hdHRyaWJ1dGVzLWV4aXN0Lmh0bWw6CisgICAg
ICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW96aWxsYS9pbmRleC1wcmV2LW5vLWR1cGxpY2F0ZS5o
dG1sOgorICAgICAgICAqIHN0b3JhZ2UvaW5kZXhlZGRiL3R1dG9yaWFsLmh0bWw6CisgICAgICAg
ICogc3RvcmFnZS93ZWJzcWwvY2hhbmdlLXZlcnNpb24taGFuZGxlLXJldXNlLmpzOgorICAgICAg
ICAoZmluaXNoVGVzdCk6CisgICAgICAgICogc3RvcmFnZS93ZWJzcWwvY2hhbmdlLXZlcnNpb24t
bm8tY3Jhc2gtb24tcHJlZmxpZ2h0LWZhaWx1cmUuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL3dl
YnNxbC9jaGFuZ2UtdmVyc2lvbi5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL2Nsb3Nl
LWR1cmluZy1zdHJlc3MtdGVzdC5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL2RhdGFi
YXNlLWxvY2stYWZ0ZXItcmVsb2FkLmh0bWw6CisgICAgICAgICogc3RvcmFnZS93ZWJzcWwvZW1w
dHktc3RhdGVtZW50Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZS1zcWwt
YXJncy5qczoKKyAgICAgICAgKHJ1blRyYW5zYWN0aW9uVGVzdHMpOgorICAgICAgICAqIHN0b3Jh
Z2Uvd2Vic3FsL2V4ZWN1dGVzcWwtYWNjZXB0cy1vbmx5LW9uZS1zdGF0ZW1lbnQuaHRtbDoKKyAg
ICAgICAgKiBzdG9yYWdlL3dlYnNxbC9oYXNoLWNoYW5nZS13aXRoLXhoci5qczoKKyAgICAgICAg
KHN0b3BUZXN0KToKKyAgICAgICAgKiBzdG9yYWdlL3dlYnNxbC9tdWx0aXBsZS1kYXRhYmFzZXMt
Z2FyYmFnZS1jb2xsZWN0aW9uLmpzOgorICAgICAgICAoY2hlY2tDb21wbGV0aW9uKToKKyAgICAg
ICAgKiBzdG9yYWdlL3dlYnNxbC9tdWx0aXBsZS10cmFuc2FjdGlvbnMtb24tZGlmZmVyZW50LWhh
bmRsZXMuanM6CisgICAgICAgIChjaGVja0NvbXBsZXRpb24pOgorICAgICAgICAqIHN0b3JhZ2Uv
d2Vic3FsL211bHRpcGxlLXRyYW5zYWN0aW9ucy5qczoKKyAgICAgICAgKGNoZWNrQ29tcGxldGlv
bik6CisgICAgICAgICogc3RvcmFnZS93ZWJzcWwvbnVsbC1jYWxsYmFja3MuaHRtbDoKKyAgICAg
ICAgKiBzdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNrLWlzb2xh
dGVkLXdvcmxkLmh0bWw6CisgICAgICAgICogc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS1j
cmVhdGlvbi1jYWxsYmFjay5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0
YWJhc2UtZW1wdHktdmVyc2lvbi5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL29wZW4t
ZGF0YWJhc2Utb3Zlci1xdW90YS5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL29wZW4t
ZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24uaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL3dlYnNx
bC9vcGVuLWRhdGFiYXNlLXdoaWxlLXRyYW5zYWN0aW9uLWluLXByb2dyZXNzLmpzOgorICAgICAg
ICAocnVuVGVzdCk6CisgICAgICAgICogc3RvcmFnZS93ZWJzcWwvcHJpdmF0ZS1icm93c2luZy1u
b3JlYWQtbm93cml0ZS5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL3F1b3RhLXRyYWNr
aW5nLmh0bWw6CisgICAgICAgICogc3RvcmFnZS93ZWJzcWwvcmVhZC1hbmQtd3JpdGUtdHJhbnNh
Y3Rpb25zLWRvbnQtcnVuLXRvZ2V0aGVyLmpzOgorICAgICAgICAodGVybWluYXRlVGVzdCk6Cisg
ICAgICAgICogc3RvcmFnZS93ZWJzcWwvcmVhZC10cmFuc2FjdGlvbnMtcnVubmluZy1jb25jdXJy
ZW50bHkuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL3dlYnNxbC9yZXNvdXJjZXMvZGF0YWJhc2Ut
Y29tbW9uLmpzOgorICAgICAgICAoc2V0dXBBbmRSdW5UZXN0KToKKyAgICAgICAgKiBzdG9yYWdl
L3dlYnNxbC9yZXNvdXJjZXMvZGF0YWJhc2UtbG9jay1hZnRlci1yZWxvYWQtMi5odG1sOgorICAg
ICAgICAqIHN0b3JhZ2Uvd2Vic3FsL3NxbC1kYXRhLXR5cGVzLmpzOgorICAgICAgICAobm90aWZ5
RG9uZSk6CisgICAgICAgIChydW5UZXN0KToKKyAgICAgICAgKiBzdG9yYWdlL3dlYnNxbC9zcWwt
ZXJyb3ItY29kZXMuanM6CisgICAgICAgIChmaW5pc2hUZXN0KToKKyAgICAgICAgKHJ1blRlc3Qp
OgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1lcnJvci1jYWxsYmFjay1pc29s
YXRlZC13b3JsZC5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1lcnJv
ci1jYWxsYmFjay5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1zdWNj
ZXNzLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxkLmh0bWw6CisgICAgICAgICogc3RvcmFnZS93ZWJz
cWwvc3VjY2Vzcy1jYWxsYmFjay5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL3Rlc3Qt
YXV0aG9yaXplci5qczoKKyAgICAgICAgKHRlcm1pbmF0ZVRlc3QpOgorICAgICAgICAqIHN0b3Jh
Z2Uvd2Vic3FsL3RyYW5zYWN0aW9uLWNhbGxiYWNrLWV4Y2VwdGlvbi1jcmFzaC5odG1sOgorICAg
ICAgICAqIHN0b3JhZ2Uvd2Vic3FsL3RyYW5zYWN0aW9uLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxk
Lmh0bWw6CisgICAgICAgICogc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tZXJyb3ItY2FsbGJh
Y2staXNvbGF0ZWQtd29ybGQuaHRtbDoKKyAgICAgICAgKiBzdG9yYWdlL3dlYnNxbC90cmFuc2Fj
dGlvbi1lcnJvci1jYWxsYmFjay5odG1sOgorICAgICAgICAqIHN0b3JhZ2Uvd2Vic3FsL3RyYW5z
YWN0aW9uLXN1Y2Nlc3MtY2FsbGJhY2staXNvbGF0ZWQtd29ybGQuaHRtbDoKKyAgICAgICAgKiB0
YWJsZXMvaGl0dGVzdGluZy9maWxsdGFibGUtZW1wdHljZWxscy5odG1sOgorICAgICAgICAqIHRh
Ymxlcy9oaXR0ZXN0aW5nL2ZpbGx0YWJsZS1sZXZlbHMuaHRtbDoKKyAgICAgICAgKiB0YWJsZXMv
aGl0dGVzdGluZy9maWxsdGFibGUtb3V0bGluZS5odG1sOgorICAgICAgICAqIHRhYmxlcy9oaXR0
ZXN0aW5nL2ZpbGx0YWJsZS1ydGwuaHRtbDoKKyAgICAgICAgKiB0YWJsZXMvaGl0dGVzdGluZy9m
aWxsdGFibGUtc3RyZXNzLmh0bWw6CisgICAgICAgICogdGFibGVzL2xheWVyaW5nL3BhaW50LXRl
c3QtbGF5ZXJpbmctMS5odG1sOgorICAgICAgICAqIHRhYmxlcy9sYXllcmluZy9wYWludC10ZXN0
LWxheWVyaW5nLTIuaHRtbDoKKyAgICAgICAgKiB0YWJsZXMvdGFibGUtc2VjdGlvbi1vdmVyZmxv
dy1jbGlwLWNyYXNoLmh0bWw6CisgICAgICAgICogdG91Y2hhZGp1c3RtZW50L2Jsb2NrLXRlc3Rp
bmcuaHRtbDoKKyAgICAgICAgKiB0b3VjaGFkanVzdG1lbnQvZXZlbnQtdHJpZ2dlcmVkLXdpZGdl
dHMuaHRtbDoKKyAgICAgICAgKiB0b3VjaGFkanVzdG1lbnQvaHRtbC1sYWJlbC5odG1sOgorICAg
ICAgICAqIHRvdWNoYWRqdXN0bWVudC9pZnJhbWUuaHRtbDoKKyAgICAgICAgKiB0b3VjaGFkanVz
dG1lbnQvbmVzdGVkLXRvdWNoLmh0bWw6CisgICAgICAgICogdG91Y2hhZGp1c3RtZW50L3Njcm9s
bC1kZWxlZ2F0aW9uL2lmcmFtZS13aXRoLW1haW5mcmFtZS1zY3JvbGwtb2Zmc2V0Lmh0bWw6Cisg
ICAgICAgICogdG91Y2hhZGp1c3RtZW50L3Njcm9sbC1vZmZzZXQuaHRtbDoKKyAgICAgICAgKiB0
b3VjaGFkanVzdG1lbnQvdG91Y2gtaW5saW5lcy5odG1sOgorICAgICAgICAqIHRvdWNoYWRqdXN0
bWVudC96b29tLWJhc2ljLmh0bWw6CisgICAgICAgICogdG91Y2hhZGp1c3RtZW50L3pvb20tZmF0
ZmluZ2VyLmh0bWw6CisgICAgICAgICogdHJhbnNmb3Jtcy8yZC9jb21wb3VuZC0yZC10cmFuc2Zv
cm1zLmh0bWw6CisgICAgICAgICogdHJhbnNmb3Jtcy8yZC9jc3NtYXRyaXgtMmQtem9vbS5odG1s
OgorICAgICAgICAqIHRyYW5zZm9ybXMvMmQvc2V0LXRyYW5zZm9ybS1hbmQtdG9wLmh0bWw6Cisg
ICAgICAgICogdHJhbnNmb3Jtcy8yZC90cmFuc2Zvcm0tMmQuaHRtbDoKKyAgICAgICAgKiB0cmFu
c2Zvcm1zLzJkL3RyYW5zZm9ybS1hY2N1cmFjeS5odG1sOgorICAgICAgICAqIHRyYW5zZm9ybXMv
M2QvZ2VuZXJhbC8zZHRyYW5zZm9ybS12YWx1ZXMuaHRtbDoKKyAgICAgICAgKiB0cmFuc2Zvcm1z
LzNkL2dlbmVyYWwvY3NzbWF0cml4LTNkLXpvb20uaHRtbDoKKyAgICAgICAgKiB0cmFuc2Zvcm1z
LzNkL2dlbmVyYWwvbWF0cml4LXdpdGgtem9vbS0zZC5odG1sOgorICAgICAgICAqIHRyYW5zZm9y
bXMvM2QvZ2VuZXJhbC90cmFuc2Zvcm0tb3JpZ2luLXotY2hhbmdlLmh0bWw6CisgICAgICAgICog
dHJhbnNmb3Jtcy8zZC9oaXQtdGVzdGluZy9oaXQtcHJlc2VydmVzLTNkLmh0bWw6CisgICAgICAg
ICogdHJhbnNmb3Jtcy8zZC9wb2ludC1tYXBwaW5nLzNkLXBvaW50LW1hcHBpbmctMi5odG1sOgor
ICAgICAgICAqIHRyYW5zZm9ybXMvM2QvcG9pbnQtbWFwcGluZy8zZC1wb2ludC1tYXBwaW5nLTMu
aHRtbDoKKyAgICAgICAgKiB0cmFuc2Zvcm1zLzNkL3BvaW50LW1hcHBpbmcvM2QtcG9pbnQtbWFw
cGluZy1kZWVwLmh0bWw6CisgICAgICAgICogdHJhbnNmb3Jtcy8zZC9wb2ludC1tYXBwaW5nLzNk
LXBvaW50LW1hcHBpbmctb3JpZ2lucy5odG1sOgorICAgICAgICAqIHRyYW5zZm9ybXMvM2QvcG9p
bnQtbWFwcGluZy8zZC1wb2ludC1tYXBwaW5nLXByZXNlcnZlLTNkLmh0bWw6CisgICAgICAgICog
dHJhbnNmb3Jtcy9ub190cmFuc2Zvcm1faGl0X3Rlc3RpbmcuaHRtbDoKKwogMjAxMi0wNi0xNSAg
QW5kcmV3IFdpbHNvbiAgPGF0d2lsc29uQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmll
d2VkIGJhc2VsaW5lcyBmb3IgY2hyb21pdW0gZHVlIHRvIGNvbG9yIG1hbmFnZW1lbnQgY2hhbmdl
cy4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS93aW5kb3ctYXR0cmlidXRl
cy1leGlzdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS93aW5kb3ctYXR0cmlidXRlcy1leGlzdC5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvd2luZG93LWF0dHJpYnV0ZXMtZXhpc3QuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAKIDxoZWFkPgogPHNjcmlwdD4KIAotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CiAKIGZ1bmN0aW9uIGxvZyhhKQogewpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2V2ZW50cy9yZXNvdXJjZXMvZXZlbnRUZXN0SGFybmVzcy5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvZXZlbnRzL3Jlc291cmNlcy9ldmVu
dFRlc3RIYXJuZXNzLmpzCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2UvZXZlbnRzL3Jlc291cmNlcy9ldmVudFRlc3RIYXJuZXNzLmpzCSh3b3JraW5n
IGNvcHkpCkBAIC0xLDYgKzEsNiBAQAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikg
ewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKIH0KIAogaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiSUZSQU1FIik7CkBAIC00
OSw4ICs0OSw4IEBAIGZ1bmN0aW9uIHRlc3RTdG9yYWdlcyh0ZXN0Q2FsbGJhY2spCiAgICAgICAg
IGRlYnVnKCIiKTsKICAgICAgICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7CiAgICAgICAgIHNlc3Np
b25TdG9yYWdlLmNsZWFyKCk7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCkKKyAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCkKICAgICB9CiAKICAgICAvLyBXaGVuIHdlJ3JlIGRvbmUgdGVzdGluZyB3aXRoIFNlc3Np
b25TdG9yYWdlLCB0aGlzIGlzIHJ1bi4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3Rv
cmFnZS9sb2NhbHN0b3JhZ2UvZGVsZXRlLXJlbW92YWwuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2RlbGV0ZS1yZW1vdmFsLmh0
bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9s
b2NhbHN0b3JhZ2UvZGVsZXRlLXJlbW92YWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsy
LDggQEAKIDxoZWFkPgogPHNjcmlwdD4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKIGZ1bmN0aW9uIGxvZyhh
KQogewpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9l
bnVtZXJhdGUtc3RvcmFnZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2Uv
ZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2UvZW51bWVyYXRlLXN0b3JhZ2UuaHRtbAkocmV2aXNpb24g
MTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9l
bnVtZXJhdGUtc3RvcmFnZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsOCBAQAogPGhl
YWQ+CiA8c2NyaXB0PgogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogZnVuY3Rpb24gbG9nKGEpCiB7CkluZGV4
OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2VudW1lcmF0ZS13
aXRoLWxlbmd0aC1hbmQta2V5Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9lbnVtZXJhdGUtd2l0aC1sZW5ndGgtYW5kLWtleS5o
dG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
bG9jYWxzdG9yYWdlL2VudW1lcmF0ZS13aXRoLWxlbmd0aC1hbmQta2V5Lmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTIsOCArMiw4IEBACiA8aGVhZD4KIDxzY3JpcHQ+CiAKLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwog
CiBmdW5jdGlvbiBsb2coYSkKIHsKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9sb2NhbHN0b3JhZ2UvaW5kZXgtZ2V0LWFuZC1zZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL2luZGV4LWdldC1hbmQtc2V0
Lmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFn
ZS9sb2NhbHN0b3JhZ2UvaW5kZXgtZ2V0LWFuZC1zZXQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
Miw5ICsyLDkgQEAKIDxoZWFkPgogPHNjcmlwdD4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKIH0KIAogZnVuY3Rpb24gbG9nKGEpCkBAIC0xNCw4ICsxNCw4IEBAIGZ1bmN0
aW9uIGxvZyhhKQogCiBmdW5jdGlvbiBmaW5pc2goKQogewotICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KQorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCkKIH0KIAogZnVuY3Rpb24gcnVuVGVzdCgpCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3ByaXZhdGUtYnJvd3NpbmctYWZmZWN0cy1zdG9yYWdl
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fs
c3RvcmFnZS9wcml2YXRlLWJyb3dzaW5nLWFmZmVjdHMtc3RvcmFnZS5odG1sCShyZXZpc2lvbiAx
MjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3By
aXZhdGUtYnJvd3NpbmctYWZmZWN0cy1zdG9yYWdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIs
OCArMiw4IEBACiA8aGVhZD4KIDxzY3JpcHQ+CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiBmdW5jdGlvbiBs
b2coYSkKIHsKQEAgLTE2LDE0ICsxNiwxNCBAQCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAgICAg
bG9nKCJ3aW5kb3cubG9jYWxTdG9yYWdlIERPRVMgTk9UIGV4aXN0Iik7CiAgICAgICAgIHJldHVy
bjsKICAgICB9Ci0gICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICBp
ZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgICAgIGxvZygiVGVzdCBvbmx5IGRlc2lnbmVk
IHRvIGJlIHJ1biB1bmRlciBEdW1wUmVuZGVyVHJlZSIpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIGxvY2FsU3RvcmFnZS5jbGVhcigpOwogICAgIAogICAgIGxvY2FsU3RvcmFnZS5zZXRJ
dGVtKCJ0ZXN0SXRlbSIsICJJbml0aWFsVmFsdWUiKTsgICAgCi0gICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5hYmxlZCh0cnVlKTsKKyAgICB0ZXN0UnVubmVyLnNl
dFByaXZhdGVCcm93c2luZ0VuYWJsZWQodHJ1ZSk7CiAgICAgbG9nKCJJbml0aWFsIHZhbHVlIG9m
IHRlc3RJdGVtIGlzOiAiICsgbG9jYWxTdG9yYWdlLmdldEl0ZW0oInRlc3RJdGVtIikpOwogCiAg
ICAgdHJ5IHsKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3Jh
Z2Uvc2ltcGxlLXVzYWdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zaW1wbGUtdXNhZ2UuaHRtbAkocmV2aXNpb24gMTIwNTE0
KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zaW1wbGUt
dXNhZ2UuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAKIDxoZWFkPgogPHNjcmlw
dD4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CiAKIGZ1bmN0aW9uIGxvZyhhKQogewpJbmRleDogTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdHJpbmctY29udmVyc2lvbi5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3Jh
Z2Uvc3RyaW5nLWNvbnZlcnNpb24uaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdHJpbmctY29udmVyc2lvbi5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0yLDggKzIsOCBAQAogPGhlYWQ+CiA8c2NyaXB0PgogCi1pZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKIAogZnVuY3Rpb24gbG9nKGEpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdl
L2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3dpbmRvdy1vcGVuLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS93aW5kb3ctb3Blbi5o
dG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
bG9jYWxzdG9yYWdlL3dpbmRvdy1vcGVuLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIsMTAgKzIs
MTAgQEAKIDxoZWFkPgogPHNjcmlwdD4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5zZXRDYW5PcGVuV2luZG93cygpOwotICAgIGxheW91dFRlc3RDb250cm9s
bGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3MoKTsK
KyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAogZnVuY3Rpb24gbG9nKGEpCklu
ZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3Jlc291cmNl
cy93aW5kb3ctb3Blbi1zZWNvbmQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9y
YWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3Jlc291cmNlcy93aW5kb3ctb3Blbi1zZWNvbmQu
aHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdl
L2xvY2Fsc3RvcmFnZS9yZXNvdXJjZXMvd2luZG93LW9wZW4tc2Vjb25kLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTI0LDggKzI0LDggQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgCiAgICAgd2lu
ZG93Lm9wZW5lci5sb2coc2Vjb25kV2luZG93TG9nKTsKICAgICAKLSAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlE
b25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKIH0KIAogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci0xLXBy
ZXBhcmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
bG9jYWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci0xLXByZXBhcmUuaHRt
bAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItMS1wcmVwYXJlLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTgsMTIgKzgsMTIgQEAKIDxzY3JpcHQ+CiBkZXNjcmlwdGlvbigi
UHJlcGFyZSBmb3IgU3RvcmFnZVRyYWNrZXIgdGVzdHMgYnkgZW5zdXJpbmcgdGhhdCBldmVyeSBv
cmlnaW4gd2l0aCBsb2NhbCBzdG9yYWdlIGlzIGRlbGV0ZWQuIik7CiAKLWlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9u
ZSgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwogICAgIAogZnVuY3Rpb24gZmluaXNoVGVzdCgpIHsKLSAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKIH0KIAogZnVuY3Rpb24gdGVzdCgpCkBAIC0yNSw5ICsyNSw5IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgIAogICAgIGRlYnVnKCJUaGlzIHRlc3Qgc2hvdWxkIGhhdmUgbm8gdmlzaWJs
ZSBvdXRwdXQgb24gc3VjY2Vzcy4iKTsKIAotICAgIGlmIChsYXlvdXRUZXN0Q29udHJvbGxlci5v
cmlnaW5zV2l0aExvY2FsU3RvcmFnZSgpLmxlbmd0aCA+IDApIHsKLSAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIub2JzZXJ2ZVN0b3JhZ2VUcmFja2VyTm90aWZpY2F0aW9ucygxKTsKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZGVsZXRlQWxsTG9jYWxTdG9yYWdlKCk7CisgICAgaWYg
KHRlc3RSdW5uZXIub3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS5sZW5ndGggPiAwKSB7CisgICAg
ICAgIHRlc3RSdW5uZXIub2JzZXJ2ZVN0b3JhZ2VUcmFja2VyTm90aWZpY2F0aW9ucygxKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kZWxldGVBbGxMb2NhbFN0b3JhZ2UoKTsKICAgICB9IGVsc2Ugewog
ICAgICAgICBmaW5pc2hUZXN0KCk7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItMi1j
cmVhdGUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
bG9jYWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci0yLWNyZWF0ZS5odG1s
CShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9j
YWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci0yLWNyZWF0ZS5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC04LDEyICs4LDEyIEBACiA8c2NyaXB0PgogZGVzY3JpcHRpb24oIlN0
b3JhZ2VUcmFja2VyIHRlc3QgLSB3cml0ZSBsb2NhbCBzdG9yYWdlIGZvciB0aGlzIG9yaWdpbi4g
U2hvdWxkIGJlIGNhbGxlZCBhZnRlciBvcmlnaW5zLXByZXBhcmUuaHRtbC4iKTsKIAotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0
VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CiAgICAgCiBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewotICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5v
dGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOwogfQogCiBmdW5jdGlvbiB0ZXN0KCkKQEAgLTIzLDE2ICsyMywxNiBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBpZiAo
bGF5b3V0VGVzdENvbnRyb2xsZXIub3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS5sZW5ndGggPiAw
KSB7CisgICAgaWYgKHRlc3RSdW5uZXIub3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS5sZW5ndGgg
PiAwKSB7CiAgICAgICAgIC8vIEFuIG9yaWdpbiBhbHJlYWR5IGV4aXN0cyBzbyB3ZSBjYW4gZXhp
dC4KICAgICAgICAgdGVzdEZhaWxlZCgiQW4gb3JpZ2luIGFscmVhZHkgZXhpc3RlZCB3aXRoIGxv
Y2FsIHN0b3JhZ2UuIik7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgfSBlbHNlIHsKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc3luY0xvY2FsU3RvcmFnZSgpOworICAgICAgICB0ZXN0
UnVubmVyLnN5bmNMb2NhbFN0b3JhZ2UoKTsKICAgICAgICAgCiAgICAgICAgIGxvY2FsU3RvcmFn
ZS5zb21lRGF0YSA9ICd3cml0ZW1lJzsKICAgICAgICAgLy8gTGF5b3V0VGVzdENvbnRyb2xsZXIn
cyBub3RpZnlEb25lIHdpbGwgYmUgY2FsbGVkIGFmdGVyIHRoZSBvcmlnaW4gY2hhbmdlIG5vdGlm
aWNhdGlvbiBjb21lcyBpbi4KLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIub2JzZXJ2ZVN0
b3JhZ2VUcmFja2VyTm90aWZpY2F0aW9ucygxKTsKKyAgICAgICAgdGVzdFJ1bm5lci5vYnNlcnZl
U3RvcmFnZVRyYWNrZXJOb3RpZmljYXRpb25zKDEpOwogICAgIH0KIH0KIApJbmRleDogTGF5b3V0
VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9y
YWdlLXRyYWNrZXItMy1kZWxldGUtYWxsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0
b3JhZ2UtdHJhY2tlci0zLWRlbGV0ZS1hbGwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAxMjA1MTQp
CisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3JhZ2V0
cmFja2VyL3N0b3JhZ2UtdHJhY2tlci0zLWRlbGV0ZS1hbGwtZXhwZWN0ZWQudHh0CSh3b3JraW5n
IGNvcHkpCkBAIC0zLDcgKzMsNyBAQCBUZXN0IEFQSSB0byB2aWV3IG9yaWdpbnMgdGhhdCBoYXZl
IGxvY2FsCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3Nh
Z2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBsYXlvdXRUZXN0Q29u
dHJvbGxlci5vcmlnaW5zV2l0aExvY2FsU3RvcmFnZSgpLnRvU3RyaW5nKCkgaXMgImZpbGVfXzAi
CitQQVNTIHRlc3RSdW5uZXIub3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS50b1N0cmluZygpIGlz
ICJmaWxlX18wIgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0
b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci0zLWRlbGV0ZS1hbGwuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3JhZ2V0
cmFja2VyL3N0b3JhZ2UtdHJhY2tlci0zLWRlbGV0ZS1hbGwuaHRtbAkocmV2aXNpb24gMTIwNTE0
KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdl
dHJhY2tlci9zdG9yYWdlLXRyYWNrZXItMy1kZWxldGUtYWxsLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTgsMTIgKzgsMTIgQEAKIDxzY3JpcHQ+CiBkZXNjcmlwdGlvbigiVGVzdCBBUEkgdG8gdmll
dyBvcmlnaW5zIHRoYXQgaGF2ZSBsb2NhbCBzdG9yYWdlIGFuZCB0byBkZWxldGUgbG9jYWwgc3Rv
cmFnZSBieSBvcmlnaW4uIik7CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0g
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIAogZnVuY3Rpb24g
ZmluaXNoVGVzdCgpIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rp
b24gdGVzdCgpCkBAIC0yMywxMyArMjMsMTMgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIub3JpZ2luc1dpdGhM
b2NhbFN0b3JhZ2UoKS5sZW5ndGggPiAwKSB7Ci0gICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmlu
ZygibGF5b3V0VGVzdENvbnRyb2xsZXIub3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS50b1N0cmlu
ZygpIiwgImZpbGVfXzAiKTsKKyAgICBpZiAodGVzdFJ1bm5lci5vcmlnaW5zV2l0aExvY2FsU3Rv
cmFnZSgpLmxlbmd0aCA+IDApIHsKKyAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ0ZXN0
UnVubmVyLm9yaWdpbnNXaXRoTG9jYWxTdG9yYWdlKCkudG9TdHJpbmcoKSIsICJmaWxlX18wIik7
CiAgICAgICAgIC8vIFdlJ3JlIGp1c3QgZ29pbmcgdG8gZGVsZXRlIHRoZSBleGlzdGluZyBvcmln
aW4sIHNvIHdlJ2xsIGdldCBvbmUgb3JpZ2luIGNoYW5nZSBub3RpZmljYXRpb24uCi0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm9ic2VydmVTdG9yYWdlVHJhY2tlck5vdGlmaWNhdGlvbnMo
MSk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmRlbGV0ZUFsbExvY2FsU3RvcmFnZSgp
OworICAgICAgICB0ZXN0UnVubmVyLm9ic2VydmVTdG9yYWdlVHJhY2tlck5vdGlmaWNhdGlvbnMo
MSk7CisgICAgICAgIHRlc3RSdW5uZXIuZGVsZXRlQWxsTG9jYWxTdG9yYWdlKCk7CiAgICAgfSBl
bHNlIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgdGVzdEZhaWxlZCgiUmFuIHdpdGgg
bm8gb3JpZ2lucyB3aXRoIGxvY2FsIHN0b3JhZ2UiKTsKICAgICB9CiAKSW5kZXg6IExheW91dFRl
c3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIvc3RvcmFn
ZS10cmFja2VyLTQtY3JlYXRlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXIt
NC1jcmVhdGUuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNC1j
cmVhdGUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCwxMiArOCwxMiBAQAogPHNjcmlwdD4KIGRl
c2NyaXB0aW9uKCJTdG9yYWdlVHJhY2tlciB0ZXN0IC0gd3JpdGUgbG9jYWwgc3RvcmFnZSBmb3Ig
dGhpcyBvcmlnaW4uIFNob3VsZCBiZSBjYWxsZWQgYWZ0ZXIgc3RvcmFnZS10cmFja2VyLTMtZGVs
ZXRlLWFsbC5odG1sLiIpOwogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
IGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAKIGZ1bmN0aW9uIGZp
bmlzaFRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9u
IHRlc3QoKQpAQCAtMjUsMTQgKzI1LDE0IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIAogICAgIGRl
YnVnKCJUaGlzIHRlc3Qgc2hvdWxkIGhhdmUgbm8gdmlzaWJsZSBvdXRwdXQgb24gc3VjY2Vzcy4i
KTsKIAotICAgIGlmIChsYXlvdXRUZXN0Q29udHJvbGxlci5vcmlnaW5zV2l0aExvY2FsU3RvcmFn
ZSgpLmxlbmd0aCA+IDApIHsKKyAgICBpZiAodGVzdFJ1bm5lci5vcmlnaW5zV2l0aExvY2FsU3Rv
cmFnZSgpLmxlbmd0aCA+IDApIHsKICAgICAgICAgLy8gQW4gb3JpZ2luIGFscmVhZHkgZXhpc3Rz
IHNvIHdlIGNhbiBleGl0LgogICAgICAgICB0ZXN0RmFpbGVkKCJBbiBvcmlnaW4gYWxyZWFkeSBl
eGlzdGVkIHdpdGggbG9jYWwgc3RvcmFnZS4iKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9
IGVsc2UgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zeW5jTG9jYWxTdG9yYWdlKCk7
CisgICAgICAgIHRlc3RSdW5uZXIuc3luY0xvY2FsU3RvcmFnZSgpOwogICAgICAgICBsb2NhbFN0
b3JhZ2Uuc29tZU90aGVyRGF0YSA9ICd3cml0ZW1lTW9yZSc7Ci0gICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm9ic2VydmVTdG9yYWdlVHJhY2tlck5vdGlmaWNhdGlvbnMoMSk7CisgICAgICAg
IHRlc3RSdW5uZXIub2JzZXJ2ZVN0b3JhZ2VUcmFja2VyTm90aWZpY2F0aW9ucygxKTsKICAgICB9
CiB9CiAKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uv
c3RvcmFnZXRyYWNrZXIvc3RvcmFnZS10cmFja2VyLTUtZGVsZXRlLW9uZS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFn
ZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNS1kZWxldGUtb25lLWV4cGVjdGVkLnR4
dAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNS1kZWxldGUtb25lLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMyw3ICszLDcgQEAgVGVzdCBBUEkgdG8gdmll
dyBvcmlnaW5zIHRoYXQgaGF2ZSBsb2NhbAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAK
LVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIub3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS50b1N0
cmluZygpIGlzICJmaWxlX18wIgorUEFTUyB0ZXN0UnVubmVyLm9yaWdpbnNXaXRoTG9jYWxTdG9y
YWdlKCkudG9TdHJpbmcoKSBpcyAiZmlsZV9fMCIKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9y
YWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNS1kZWxldGUt
b25lLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNS1kZWxldGUtb25lLmh0
bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9s
b2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNrZXIvc3RvcmFnZS10cmFja2VyLTUtZGVsZXRlLW9uZS5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC04LDEyICs4LDEyIEBACiA8c2NyaXB0PgogZGVzY3JpcHRp
b24oIlRlc3QgQVBJIHRvIHZpZXcgb3JpZ2lucyB0aGF0IGhhdmUgbG9jYWwgc3RvcmFnZSBhbmQg
dG8gZGVsZXRlIGxvY2FsIHN0b3JhZ2UgYnkgb3JpZ2luLiIpOwogCi1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUo
KTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKICAgICAKIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CiB9CiAKIGZ1bmN0aW9uIHRlc3QoKQpAQCAtMjMsMTUgKzIzLDE1IEBAIGZ1bmN0aW9u
IHRlc3QoKQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKGxheW91dFRlc3RDb250
cm9sbGVyLm9yaWdpbnNXaXRoTG9jYWxTdG9yYWdlKCkubGVuZ3RoID4gMCkgewotICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImxheW91dFRlc3RDb250cm9sbGVyLm9yaWdpbnNXaXRoTG9j
YWxTdG9yYWdlKCkudG9TdHJpbmcoKSIsICJmaWxlX18wIik7CisgICAgaWYgKHRlc3RSdW5uZXIu
b3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS5sZW5ndGggPiAwKSB7CisgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygidGVzdFJ1bm5lci5vcmlnaW5zV2l0aExvY2FsU3RvcmFnZSgpLnRvU3Ry
aW5nKCkiLCAiZmlsZV9fMCIpOwogICAgICAgICAvLyBXZSdyZSBqdXN0IGdvaW5nIHRvIGRlbGV0
ZSB0aGUgZXhpc3Rpbmcgb3JpZ2luLCBzbyB3ZSdsbCBnZXQgb25lIG9yaWdpbiBjaGFuZ2Ugbm90
aWZpY2F0aW9uLgotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vYnNlcnZlU3RvcmFnZVRy
YWNrZXJOb3RpZmljYXRpb25zKDEpOworICAgICAgICB0ZXN0UnVubmVyLm9ic2VydmVTdG9yYWdl
VHJhY2tlck5vdGlmaWNhdGlvbnMoMSk7CiAgICAgICAgIC8vIEF0IHRoaXMgcG9pbnQsIHdlJ3Jl
IGd1YXJhbnRlZWQgdG8gaGF2ZSBvbmUgb3JpZ2luIHdpdGggbG9jYWwgc3RvcmFnZS4KLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZGVsZXRlTG9jYWxTdG9yYWdlRm9yT3JpZ2luKCJmaWxl
Oi8vIik7CisgICAgICAgIHRlc3RSdW5uZXIuZGVsZXRlTG9jYWxTdG9yYWdlRm9yT3JpZ2luKCJm
aWxlOi8vIik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgdGVzdEZhaWxlZCgiUmFuIHdpdGggbm8g
b3JpZ2lucyB3aXRoIGxvY2FsIHN0b3JhZ2UuIik7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAg
fQogCiB9CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2UvbG9jYWxzdG9yYWdl
L3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci02LWNyZWF0ZS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRy
YWNrZXIvc3RvcmFnZS10cmFja2VyLTYtY3JlYXRlLmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysr
IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uvc3RvcmFnZXRyYWNr
ZXIvc3RvcmFnZS10cmFja2VyLTYtY3JlYXRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsMTIg
KzgsMTIgQEAKIDxzY3JpcHQ+CiBkZXNjcmlwdGlvbigiU3RvcmFnZVRyYWNrZXIgdGVzdCAtIHdy
aXRlIGxvY2FsIHN0b3JhZ2UgZm9yIHRoaXMgb3JpZ2luLiBTaG91bGQgYmUgY2FsbGVkIGFmdGVy
IHN0b3JhZ2UtdHJhY2tlci01LWRlbGV0ZS1vbmUuaHRtbC4iKTsKIAotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CiAgICAgCiBmdW5jdGlvbiBmaW5pc2hUZXN0KCkgewotICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOwogfQogCiBmdW5jdGlvbiB0ZXN0KCkKQEAgLTI1LDE0ICsyNSwxNCBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICAKICAgICBkZWJ1ZygiVGhpcyB0ZXN0IHNob3VsZCBoYXZlIG5vIHZpc2li
bGUgb3V0cHV0IG9uIHN1Y2Nlc3MuIik7CiAKLSAgICBpZiAobGF5b3V0VGVzdENvbnRyb2xsZXIu
b3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS5sZW5ndGggPiAwKSB7CisgICAgaWYgKHRlc3RSdW5u
ZXIub3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS5sZW5ndGggPiAwKSB7CiAgICAgICAgIC8vIEFu
IG9yaWdpbiBhbHJlYWR5IGV4aXN0cyBzbyB3ZSBjYW4gZXhpdC4KICAgICAgICAgdGVzdEZhaWxl
ZCgiQW4gb3JpZ2luIGFscmVhZHkgZXhpc3RlZCB3aXRoIGxvY2FsIHN0b3JhZ2UuIik7Ci0gICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuc3luY0xvY2FsU3RvcmFnZSgpOworICAgICAgICB0ZXN0UnVubmVyLnN5bmNMb2NhbFN0b3Jh
Z2UoKTsKICAgICAgICAgbG9jYWxTdG9yYWdlLnNvbWVPdGhlckRhdGEgPSAnd3JpdGVtZU1vcmUn
OwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5vYnNlcnZlU3RvcmFnZVRyYWNrZXJOb3Rp
ZmljYXRpb25zKDEpOworICAgICAgICB0ZXN0UnVubmVyLm9ic2VydmVTdG9yYWdlVHJhY2tlck5v
dGlmaWNhdGlvbnMoMSk7CiAgICAgfQogfQogCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci03LXVz
YWdlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0
b3JhZ2UvbG9jYWxzdG9yYWdlL3N0b3JhZ2V0cmFja2VyL3N0b3JhZ2UtdHJhY2tlci03LXVzYWdl
LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9k
b21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNy11
c2FnZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMsOCArMyw4IEBAIFRlc3QgQVBJ
IHRoYXQgcmVwb3J0cyBsb2NhbCBzdG9yYWdlIGRpc2sKIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KIAogCi1QQVNTIGxheW91dFRlc3RDb250cm9sbGVyLm9yaWdpbnNXaXRoTG9jYWxTdG9yYWdl
KCkudG9TdHJpbmcoKSBpcyAiZmlsZV9fMCIKLVBBU1MgbGF5b3V0VGVzdENvbnRyb2xsZXIubG9j
YWxTdG9yYWdlRGlza1VzYWdlRm9yT3JpZ2luKCdmaWxlOi8vJykgPiA2MTAwIGlzIHRydWUKK1BB
U1MgdGVzdFJ1bm5lci5vcmlnaW5zV2l0aExvY2FsU3RvcmFnZSgpLnRvU3RyaW5nKCkgaXMgImZp
bGVfXzAiCitQQVNTIHRlc3RSdW5uZXIubG9jYWxTdG9yYWdlRGlza1VzYWdlRm9yT3JpZ2luKCdm
aWxlOi8vJykgPiA2MTAwIGlzIHRydWUKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xv
Y2Fsc3RvcmFnZS9zdG9yYWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNy11c2FnZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9sb2NhbHN0b3JhZ2Uv
c3RvcmFnZXRyYWNrZXIvc3RvcmFnZS10cmFja2VyLTctdXNhZ2UuaHRtbAkocmV2aXNpb24gMTIw
NTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL2xvY2Fsc3RvcmFnZS9zdG9y
YWdldHJhY2tlci9zdG9yYWdlLXRyYWNrZXItNy11c2FnZS5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xNSw5ICsxNSw5IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgaWYgKGxheW91dFRlc3RDb250cm9sbGVyLm9yaWdpbnNXaXRoTG9jYWxTdG9yYWdlKCku
bGVuZ3RoID4gMCkgewotICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImxheW91dFRlc3RD
b250cm9sbGVyLm9yaWdpbnNXaXRoTG9jYWxTdG9yYWdlKCkudG9TdHJpbmcoKSIsICJmaWxlX18w
Iik7Ci0gICAgICAgIHNob3VsZEJlVHJ1ZSgibGF5b3V0VGVzdENvbnRyb2xsZXIubG9jYWxTdG9y
YWdlRGlza1VzYWdlRm9yT3JpZ2luKCdmaWxlOi8vJykgPiA2MTAwIik7CisgICAgaWYgKHRlc3RS
dW5uZXIub3JpZ2luc1dpdGhMb2NhbFN0b3JhZ2UoKS5sZW5ndGggPiAwKSB7CisgICAgICAgIHNo
b3VsZEJlRXF1YWxUb1N0cmluZygidGVzdFJ1bm5lci5vcmlnaW5zV2l0aExvY2FsU3RvcmFnZSgp
LnRvU3RyaW5nKCkiLCAiZmlsZV9fMCIpOworICAgICAgICBzaG91bGRCZVRydWUoInRlc3RSdW5u
ZXIubG9jYWxTdG9yYWdlRGlza1VzYWdlRm9yT3JpZ2luKCdmaWxlOi8vJykgPiA2MTAwIik7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgdGVzdEZhaWxlZCgiUmFuIHdpdGggbm8gb3JpZ2lucyB3aXRo
IGxvY2FsIHN0b3JhZ2UuIik7CiAgICAgfQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21z
dG9yYWdlL3NjcmlwdC10ZXN0cy9zdG9yYWdlLWZ1bmN0aW9ucy1ub3Qtb3ZlcndyaXR0ZW4uanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3NjcmlwdC10ZXN0
cy9zdG9yYWdlLWZ1bmN0aW9ucy1ub3Qtb3ZlcndyaXR0ZW4uanMJKHJldmlzaW9uIDEyMDUxNCkK
KysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zY3JpcHQtdGVzdHMvc3RvcmFnZS1m
dW5jdGlvbnMtbm90LW92ZXJ3cml0dGVuLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBA
QAogZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgdG8gZW5zdXJlIHRoYXQgd2luZG93Lmxv
Y2FsU3RvcmFnZSBhbmQgd2luZG93LnNlc3Npb25TdG9yYWdlIGFyZSBub3QgcmVuZGVyZWQgdW51
c2FibGUgYnkgc2V0dGluZyBhIGtleSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgYSBzdG9yYWdlIGZ1
bmN0aW9uIHN1Y2ggdGhhdCB0aGUgZnVuY3Rpb24gaXMgaGlkZGVuLiIpOwogCi1pZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKK2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKIAogZnVuY3Rpb24gZG9XZWRnZVRoeVNlbGYoc3RvcmFnZSkgewogICAgIHN0b3JhZ2Uuc2V0
SXRlbSgiY2xlYXIiLCAiYWxtb3N0Iik7CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0
b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvZGVsZXRlLXJlbW92YWwuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvZGVsZXRlLXJlbW92
YWwuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9y
YWdlL3Nlc3Npb25zdG9yYWdlL2RlbGV0ZS1yZW1vdmFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTMsOCArMyw4IEBACiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NsZWFyU2Vzc2lvblN0b3JhZ2Uu
anMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKIGZ1bmN0aW9uIGxvZyhh
KQogewpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdl
L2VudW1lcmF0ZS1zdG9yYWdlLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFn
ZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL2VudW1lcmF0ZS1zdG9yYWdlLmh0bWwJKHJldmlz
aW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3Rv
cmFnZS9lbnVtZXJhdGUtc3RvcmFnZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDggKzMsOCBA
QAogPHNjcmlwdCBzcmM9InJlc291cmNlcy9jbGVhclNlc3Npb25TdG9yYWdlLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQ+CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiBmdW5jdGlvbiBsb2coYSkKIHsKSW5kZXg6
IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9lbnVtZXJhdGUt
d2l0aC1sZW5ndGgtYW5kLWtleS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3Jh
Z2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9lbnVtZXJhdGUtd2l0aC1sZW5ndGgtYW5kLWtl
eS5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3Jh
Z2Uvc2Vzc2lvbnN0b3JhZ2UvZW51bWVyYXRlLXdpdGgtbGVuZ3RoLWFuZC1rZXkuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMyw4ICszLDggQEAKIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2xlYXJT
ZXNzaW9uU3RvcmFnZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCi1pZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
K2lmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAog
ZnVuY3Rpb24gbG9nKGEpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
c2Vzc2lvbnN0b3JhZ2UvaW5kZXgtZ2V0LWFuZC1zZXQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvaW5kZXgtZ2V0LWFuZC1z
ZXQuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9y
YWdlL3Nlc3Npb25zdG9yYWdlL2luZGV4LWdldC1hbmQtc2V0Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTMsOSArMyw5IEBACiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NsZWFyU2Vzc2lvblN0b3Jh
Z2UuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKIH0KIAogZnVuY3Rpb24gbG9nKGEpCkBAIC0xNSw4ICsxNSw4IEBAIGZ1bmN0aW9u
IGxvZyhhKQogCiBmdW5jdGlvbiBmaW5pc2goKQogewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKQor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCkKIH0KIAogZnVuY3Rpb24gcnVuVGVzdCgpCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2Rv
bXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1hZmZlY3RzLXN0b3JhZ2Uu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lv
bnN0b3JhZ2UvcHJpdmF0ZS1icm93c2luZy1hZmZlY3RzLXN0b3JhZ2UuaHRtbAkocmV2aXNpb24g
MTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdl
L3ByaXZhdGUtYnJvd3NpbmctYWZmZWN0cy1zdG9yYWdlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTMsOCArMyw4IEBACiA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2NsZWFyU2Vzc2lvblN0b3JhZ2Uu
anMiPjwvc2NyaXB0PgogPHNjcmlwdD4KIAotaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CitpZiAod2luZG93LnRl
c3RSdW5uZXIpCisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAKIGZ1bmN0aW9uIGxvZyhh
KQogewpAQCAtMTcsMTMgKzE3LDEzIEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogICAgICAgICBsb2co
IndpbmRvdy5zZXNzaW9uU3RvcmFnZSBET0VTIE5PVCBleGlzdCIpOwogICAgICAgICByZXR1cm47
CiAgICAgfQotICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgaWYg
KCF3aW5kb3cudGVzdFJ1bm5lcikgewogICAgICAgICBsb2coIlRlc3Qgb25seSBkZXNpZ25lZCB0
byBiZSBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICAKICAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKCJ0ZXN0SXRlbSIsICJJbml0aWFsVmFs
dWUiKTsgICAgCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0UHJpdmF0ZUJyb3dzaW5nRW5h
YmxlZCh0cnVlKTsKKyAgICB0ZXN0UnVubmVyLnNldFByaXZhdGVCcm93c2luZ0VuYWJsZWQodHJ1
ZSk7CiAgICAgbG9nKCJJbml0aWFsIHZhbHVlIG9mIHRlc3RJdGVtIGlzOiAiICsgc2Vzc2lvblN0
b3JhZ2UuZ2V0SXRlbSgidGVzdEl0ZW0iKSk7CiAKICAgICB0cnkgewpJbmRleDogTGF5b3V0VGVz
dHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3NpbXBsZS11c2FnZS5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFn
ZS9zaW1wbGUtdXNhZ2UuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3Rv
cmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3NpbXBsZS11c2FnZS5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0zLDggKzMsOCBAQAogPHNjcmlwdCBzcmM9InJlc291cmNlcy9jbGVhclNlc3Np
b25TdG9yYWdlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAKLWlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworaWYg
KHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogCiBmdW5j
dGlvbiBsb2coYSkKIHsKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNz
aW9uc3RvcmFnZS9zdHJpbmctY29udmVyc2lvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL3N0b3JhZ2UvZG9tc3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9zdHJpbmctY29udmVyc2lvbi5o
dG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uv
c2Vzc2lvbnN0b3JhZ2Uvc3RyaW5nLWNvbnZlcnNpb24uaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
Myw4ICszLDggQEAKIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvY2xlYXJTZXNzaW9uU3RvcmFnZS5q
cyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKK2lmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIAogZnVuY3Rpb24gbG9nKGEp
CiB7CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uv
d2luZG93LW9wZW4uaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2RvbXN0
b3JhZ2Uvc2Vzc2lvbnN0b3JhZ2Uvd2luZG93LW9wZW4uaHRtbAkocmV2aXNpb24gMTIwNTE0KQor
KysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3dpbmRvdy1v
cGVuLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsMTAgKzMsMTAgQEAKIDxzY3JpcHQgc3JjPSJy
ZXNvdXJjZXMvY2xlYXJTZXNzaW9uU3RvcmFnZS5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogCi1p
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldENhbk9wZW5XaW5k
b3dzKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdp
bmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVz
dFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cygpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwogfQogCiBmdW5jdGlvbiBsb2coYSkKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvZG9t
c3RvcmFnZS9zZXNzaW9uc3RvcmFnZS9yZXNvdXJjZXMvd2luZG93LW9wZW4tc2Vjb25kLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9y
YWdlL3Jlc291cmNlcy93aW5kb3ctb3Blbi1zZWNvbmQuaHRtbAkocmV2aXNpb24gMTIwNTE0KQor
KysgTGF5b3V0VGVzdHMvc3RvcmFnZS9kb21zdG9yYWdlL3Nlc3Npb25zdG9yYWdlL3Jlc291cmNl
cy93aW5kb3ctb3Blbi1zZWNvbmQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjQsOCArMjQsOCBA
QCBmdW5jdGlvbiBydW5UZXN0KCkKICAgICAKICAgICB3aW5kb3cub3BlbmVyLmxvZyhzZWNvbmRX
aW5kb3dMb2cpOwogICAgIAotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0g
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCiA8L3Nj
cmlwdD4KSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3R1dG9yaWFsLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHV0b3JpYWwuaHRt
bAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHV0
b3JpYWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjQsOSArMjQsOSBAQAogLy8gZ29hbCBvZiB0
ZWFjaGluZyBwZW9wbGUgSW5kZXhlZERCLiBUaGF0IHNhaWQsIGl0IGRvZXMgaGF2ZSBhIGdvb2Qg
YW1vdW50IG9mIGNvdmVyYWdlIGFuZAogLy8gc2VydmVzIGFzIGEgbGl2aW5nIGRvY3VtZW50IGRl
c2NyaWJpbmcgd2hhdCdzIGV4cGVjdGVkIHRvIHdvcmsgYW5kIGhvdyB3aXRoaW4gV2ViS2l0IHNv
IGl0CiAvLyBzZWVtcyB3ZWxsIHdvcnRoIGhhdmluZyBjaGVja2VkIGluLgotaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAogCkBAIC00MDQsOCArNDA0LDggQEAgZnVuY3Rp
b24gb25JbmRleEdldFN1Y2Nlc3MoKQogZnVuY3Rpb24gb25BbGxEb25lKCkKIHsKICAgICBsb2co
IkV2ZXJ5dGhpbmcgd29ya2VkISIpOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQog
CiAvLyBUaGUgd2F5IHNldFZlcnNpb24gaXMgc3VwcG9zZWQgdG8gd29yazoKSW5kZXg6IExheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvaW5kZXgtcHJldi1uby1kdXBsaWNhdGUu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb3ppbGxh
L2luZGV4LXByZXYtbm8tZHVwbGljYXRlLmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91
dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vemlsbGEvaW5kZXgtcHJldi1uby1kdXBsaWNhdGUu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTcsOCArMTcsOCBAQAogPHNjcmlwdD4KIAogZGVzY3Jp
cHRpb24oIlRlc3QgSW5kZXhlZERCOiBpdGVyYXRpbmcgYmFja3dhcmRzIHRocm91Z2ggYW4gaW5k
ZXgsIHNraXBwaW5nIGR1cGxpY2F0ZXMiKTsKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogCiBmdW5jdGlv
biB0ZXN0KCkKIHsKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJz
aW9uLWhhbmRsZS1yZXVzZS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dl
YnNxbC9jaGFuZ2UtdmVyc2lvbi1oYW5kbGUtcmV1c2UuanMJKHJldmlzaW9uIDEyMDUxNCkKKysr
IExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJzaW9uLWhhbmRsZS1yZXVzZS5q
cwkod29ya2luZyBjb3B5KQpAQCAtMiw4ICsyLDggQEAgZnVuY3Rpb24gZmluaXNoVGVzdCgpCiB7
CiAgICAgbG9nKCJURVNUIENPTVBMRVRFLiIpOwogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CiB9CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS93
ZWJzcWwvY2hhbmdlLXZlcnNpb24tbm8tY3Jhc2gtb24tcHJlZmxpZ2h0LWZhaWx1cmUuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9jaGFuZ2UtdmVyc2lvbi1u
by1jcmFzaC1vbi1wcmVmbGlnaHQtZmFpbHVyZS5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBM
YXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9jaGFuZ2UtdmVyc2lvbi1uby1jcmFzaC1vbi1wcmVm
bGlnaHQtZmFpbHVyZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDggKzMsOCBAQAogPHNjcmlw
dD4KIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKQogewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwogfQogCiBmdW5jdGlvbiBsb2cobWVzc2FnZSkKQEAgLTEzLDkgKzEzLDkgQEAgZnVuY3Rpb24g
bG9nKG1lc3NhZ2UpCiB9CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAogICAg
IHZhciBkYiA9IHdpbmRvdy5vcGVuRGF0YWJhc2UoIkNoYW5nZVZlcnNpb25GYWlsdXJlVGVzdCIs
ICIxIiwgIlRlc3QgdGhlIHByZWZsaWdodCBzdGVwIiwgMTAyNCk7CkluZGV4OiBMYXlvdXRUZXN0
cy9zdG9yYWdlL3dlYnNxbC9jaGFuZ2UtdmVyc2lvbi5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJzaW9uLmh0bWwJKHJldmlzaW9uIDEyMDUx
NCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL2NoYW5nZS12ZXJzaW9uLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTI5LDggKzI5LDggQEAgZnVuY3Rpb24gY2hhbmdlVmVyc2lvbkVycm9y
KGVycm9yKQogCiBmdW5jdGlvbiBmaW5pc2hUZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKICAgICBsb2coIlRFU1QgQ09NUExFVEUiKTsKIH0KIApAQCAtNTQsMTAgKzU0LDEw
IEBAIGZ1bmN0aW9uIHJ1blRlc3QoKQogfQogCiBmdW5jdGlvbiB0ZXN0UGFydDEoKSB7Ci0gICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5jbGVhckFsbERhdGFiYXNlcygpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERv
bmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5j
bGVhckFsbERhdGFiYXNlcygpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAgZGIxID0gd2lu
ZG93Lm9wZW5EYXRhYmFzZSgiY2hhbmdldmVyc2lvbi10ZXN0IiwgIjEiLCAiVGVzdCBmb3IgdGhl
IGRhdGFiYXNlLmNoYW5nZVZlcnNpb24oKSBmdW5jdGlvbiIsIDEwMjQpOwpJbmRleDogTGF5b3V0
VGVzdHMvc3RvcmFnZS93ZWJzcWwvY2xvc2UtZHVyaW5nLXN0cmVzcy10ZXN0Lmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvY2xvc2UtZHVyaW5nLXN0cmVzcy10
ZXN0Lmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3Fs
L2Nsb3NlLWR1cmluZy1zdHJlc3MtdGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDE2ICsz
LDE2IEBACiA8cD5BIEphdmFTY3JpcHQgZmFpbHVyZSBvbiB0aGUgY29uc29sZSBpcyBleHBlY3Rl
ZCwgaG93ZXZlciwgYXMgdGhlIGdsb2JhbCBvYmplY3QgaXMgY2xlYXJlZCB3aGVuIGNsb3Npbmcg
YSBmcmFtZS4KIEl0IGFjdHVhbGx5IGhlbHBzIHRvIGNhdXNlIGRhdGFiYXNlIGFjdGl2aXR5IGJ5
IHRocm93aW5nIGFuIGV4Y2VwdGlvbiBmcm9tIGEgY2FsbGJhY2suPC9wPgogPHNjcmlwdD4KLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci53YWl0VW50aWxEb25lKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiB9CiAKIGZ1bmN0aW9uIHN0YXJ0VGVz
dCgpCiB7CiAgICAgc2V0VGltZW91dCgiZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoJ2lm
cmFtZScpWzBdLnNyYyA9ICdhYm91dDpibGFuayciLCAxMDApOwotICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIHNldFRpbWVvdXQoImxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKSIsIDUwMCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICBzZXRUaW1lb3V0KCJ0ZXN0UnVubmVyLm5vdGlmeURvbmUoKSIsIDUwMCk7CiB9CiA8L3Nj
cmlwdD4KIDxpZnJhbWUgc3JjPSJyZXNvdXJjZXMvc3RyZXNzLWZyYW1lLmh0bWwiIG9ubG9hZD0i
c3RhcnRUZXN0KCkiPjwvaWZyYW1lPgpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwv
ZGF0YWJhc2UtbG9jay1hZnRlci1yZWxvYWQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9zdG9yYWdlL3dlYnNxbC9kYXRhYmFzZS1sb2NrLWFmdGVyLXJlbG9hZC5odG1sCShyZXZpc2lv
biAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9kYXRhYmFzZS1sb2NrLWFm
dGVyLXJlbG9hZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05LDggKzksOCBAQCBmdW5jdGlvbiBs
b2cobWVzc2FnZSkKIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKQogewogICAgIGxvZygiVGVzdCBwYXJ0
IDEgQ29tcGxldGUiKTsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rp
b24gZXJyb3JGdW5jdGlvbihlcnJvcikKQEAgLTM1LDEwICszNSwxMCBAQCBmdW5jdGlvbiBhZGRE
YXRhKGRiKQogCiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNsZWFyQWxsRGF0
YWJhc2VzKCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmNsZWFyQWxsRGF0YWJhc2VzKCk7
CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICB2YXIgZGF0YWJhc2U7CkluZGV4OiBMYXlvdXRU
ZXN0cy9zdG9yYWdlL3dlYnNxbC9lbXB0eS1zdGF0ZW1lbnQuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9lbXB0eS1zdGF0ZW1lbnQuaHRtbAkocmV2aXNpb24g
MTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvZW1wdHktc3RhdGVtZW50Lmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEyLDE1ICsxMiwxNSBAQCBmdW5jdGlvbiBleGVjdXRlRW1w
dHlTdGF0ZW1lbnQodHJhbnNhY3RpCiB7CiAgICAgdHJhbnNhY3Rpb24uZXhlY3V0ZVNxbCgiIik7
CiAgICAgd3JpdGVNZXNzYWdlVG9Mb2coIkV4ZWN1dGVkIGFuIGVtcHR5IHN0YXRlbWVudC4gSWYg
eW91IGRpZG4ndCBzZWUgYSBjcmFzaCBvciBhc3NlcnRpb24sIHRoZSB0ZXN0IHBhc3NlZC4iKTsK
LSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rpb24gcnVuVGVzdCgpCiB7
Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOwogICAgIH0KICAgICB2YXIgZGIgPSBvcGVuRGF0YWJhc2UoIkVtcHR5U3RhdGVtZW50VGVz
dCIsICIxLjAiLCAiRGF0YWJhc2UgZm9yIGFuIGVtcHR5IHN0YXRlbWVudCB0ZXN0IiwgMSk7CiAg
ICAgZGIudHJhbnNhY3Rpb24oZXhlY3V0ZUVtcHR5U3RhdGVtZW50KTsKSW5kZXg6IExheW91dFRl
c3RzL3N0b3JhZ2Uvd2Vic3FsL2V4ZWN1dGUtc3FsLWFyZ3MuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZS1zcWwtYXJncy5qcwkocmV2aXNpb24gMTIw
NTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZS1zcWwtYXJncy5qcwko
d29ya2luZyBjb3B5KQpAQCAtNzQsOCArNzQsOCBAQCBmdW5jdGlvbiBydW5UcmFuc2FjdGlvblRl
c3RzKHRyYW5zYWN0aW9uCiAgICAgZm9yIChpIGluIGV4cGVjdEV4Y2VwdGlvbikKICAgICAgICAg
cnVuVHJhbnNhY3Rpb25UZXN0KHRyYW5zYWN0aW9uLCBleHBlY3RFeGNlcHRpb25baV0sIHRydWUp
OwogCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
KyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIHJ1blRlc3Qo
KQpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZXNxbC1hY2NlcHRzLW9u
bHktb25lLXN0YXRlbWVudC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2Uv
d2Vic3FsL2V4ZWN1dGVzcWwtYWNjZXB0cy1vbmx5LW9uZS1zdGF0ZW1lbnQuaHRtbAkocmV2aXNp
b24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvZXhlY3V0ZXNxbC1hY2Nl
cHRzLW9ubHktb25lLXN0YXRlbWVudC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xMyw4ICsxMyw4
IEBAIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogCiBmdW5jdGlvbiB0ZXJtaW5hdGVUZXN0KCkKIHsK
LSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rpb24gZXhlY3V0ZVN0YXRl
bWVudChleHBlY3RlZFRvUGFzcywgc3RhdGVtZW50KQpAQCAtNDUsMTAgKzQ1LDEwIEBAIGZ1bmN0
aW9uIGV4ZWN1dGVTdGF0ZW1lbnQoZXhwZWN0ZWRUb1Bhc3MKIAogZnVuY3Rpb24gcnVuVGVzdCgp
CiB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5jbGVhckFsbERhdGFiYXNlcygpOwotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndh
aXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVz
dFJ1bm5lci5jbGVhckFsbERhdGFiYXNlcygpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAg
ZGIgPSBvcGVuRGF0YWJhc2UoIkV4ZWN1dGVTUUxBY2NlcHRzT25seU9uZVN0YXRlbWVudFRlc3Qi
LCAiMS4wIiwgIiIsIDEpOwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvaGFzaC1j
aGFuZ2Utd2l0aC14aHIuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJz
cWwvaGFzaC1jaGFuZ2Utd2l0aC14aHIuanMJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRl
c3RzL3N0b3JhZ2Uvd2Vic3FsL2hhc2gtY2hhbmdlLXdpdGgteGhyLmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0yOSw4ICsyOSw4IEBAIGZ1bmN0aW9uIHN0b3BUZXN0KG1lc3NhZ2UpCiAKICAgICBsb2co
bWVzc2FnZSk7CiAKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KICAgICAKIGZ1bmN0
aW9uIHVwZGF0ZURhdGFiYXNlKCkKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL211
bHRpcGxlLWRhdGFiYXNlcy1nYXJiYWdlLWNvbGxlY3Rpb24uanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvbXVsdGlwbGUtZGF0YWJhc2VzLWdhcmJhZ2UtY29sbGVj
dGlvbi5qcwkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwv
bXVsdGlwbGUtZGF0YWJhc2VzLWdhcmJhZ2UtY29sbGVjdGlvbi5qcwkod29ya2luZyBjb3B5KQpA
QCAtMTgsOCArMTgsOCBAQCB2YXIgZm9yZ290dGVuREIgPSAwOwogdmFyIGNvbXBsZXRlZCA9IDA7
CiBmdW5jdGlvbiBjaGVja0NvbXBsZXRpb24oKQogewotICAgIGlmICgrK2NvbXBsZXRlZCA9PSAy
ICYmIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICgrK2NvbXBsZXRlZCA9PSAyICYmIHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rp
b24gcnVuVGVzdCgpCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9tdWx0aXBsZS10
cmFuc2FjdGlvbnMtb24tZGlmZmVyZW50LWhhbmRsZXMuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3RvcmFnZS93ZWJzcWwvbXVsdGlwbGUtdHJhbnNhY3Rpb25zLW9uLWRpZmZlcmVudC1o
YW5kbGVzLmpzCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNx
bC9tdWx0aXBsZS10cmFuc2FjdGlvbnMtb24tZGlmZmVyZW50LWhhbmRsZXMuanMJKHdvcmtpbmcg
Y29weSkKQEAgLTMsOCArMyw4IEBAIHZhciBjb21wbGV0ZSA9IDA7CiBmdW5jdGlvbiBjaGVja0Nv
bXBsZXRpb24oKQogewogICAgIC8vIFRoZSB0ZXN0IHNob3VsZCBlbmQgYWZ0ZXIgdHdvIHRyYW5z
YWN0aW9ucwotICAgIGlmICgrK2NvbXBsZXRlID09IDIgJiYgd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAg
aWYgKCsrY29tcGxldGUgPT0gMiAmJiB3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIC8vIE9wZW5zIHRoZSBkYXRhYmFzZSB1c2VkIGluIHRo
aXMgdGVzdCBjYXNlCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9tdWx0aXBsZS10
cmFuc2FjdGlvbnMuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwv
bXVsdGlwbGUtdHJhbnNhY3Rpb25zLmpzCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0
cy9zdG9yYWdlL3dlYnNxbC9tdWx0aXBsZS10cmFuc2FjdGlvbnMuanMJKHdvcmtpbmcgY29weSkK
QEAgLTIsOCArMiw4IEBAIHZhciBjb21wbGV0ZSA9IDA7CiAKIGZ1bmN0aW9uIGNoZWNrQ29tcGxl
dGlvbigpCiB7Ci0gICAgaWYgKCsrY29tcGxldGUgPT0gMiAmJiB3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAg
ICBpZiAoKytjb21wbGV0ZSA9PSAyICYmIHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rpb24gcnVuVGVzdCgpCkluZGV4OiBMYXlv
dXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9udWxsLWNhbGxiYWNrcy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL251bGwtY2FsbGJhY2tzLmh0bWwJKHJldmlzaW9u
IDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL251bGwtY2FsbGJhY2tzLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsMTYgKzMsMTYgQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiBm
aW5pc2hUZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rp
b24gcnVuVGVzdCgpCiB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewot
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5jbGVhckFsbERhdGFiYXNlcygpOwotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5jbGVhckFsbERhdGFiYXNlcygpOworICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAg
ICAgfQogCiAgICAgdHJ5IHsKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL29wZW4t
ZGF0YWJhc2UtY3JlYXRpb24tY2FsbGJhY2staXNvbGF0ZWQtd29ybGQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLWNyZWF0aW9uLWNh
bGxiYWNrLWlzb2xhdGVkLXdvcmxkLmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRl
c3RzL3N0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2UtY3JlYXRpb24tY2FsbGJhY2staXNvbGF0
ZWQtd29ybGQuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw4ICs3LDggQEAgVGhpcyB0ZXN0IHRl
c3RzIHRoYXQgdGhlIG9wZW5EYXRhYmFzZSgpIAogdmFyIGNyZWF0aW9uQ2FsbGJhY2tzRXhlY3V0
ZWQgPSAwOwogZnVuY3Rpb24gZG9uZSgpCiB7Ci0gICAgaWYgKCgrK2NyZWF0aW9uQ2FsbGJhY2tz
RXhlY3V0ZWQgPT0gMikgJiYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikpCi0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAoKCsrY3JlYXRpb25D
YWxsYmFja3NFeGVjdXRlZCA9PSAyKSAmJiAod2luZG93LnRlc3RSdW5uZXIpKQorICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rpb24gY3JlYXRpb25DYWxsYmFjazEo
ZGIpCkBAIC0yNiwxMSArMjYsMTEgQEAgZnVuY3Rpb24gY3JlYXRpb25DYWxsYmFjazIoZGIpCiBk
b2N1bWVudC5ib2R5LmZvbyA9ICJGQUlMOiBkb2N1bWVudC5ib2R5LmZvbyB2aXNpYmxlIGluIGlz
b2xhdGVkIHdvcmxkLiI7CiBkb2N1bWVudC5ib2R5LmJhciA9ICJQQVNTOiBkb2N1bWVudC5ib2R5
LmJhciB2aXNpYmxlIGluIGEgY2FsbGJhY2sgY3JlYXRlZCBpbiB0aGlzIHdvcmxkLiI7CiAKLWlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5jbGVhckFsbERhdGFiYXNlcygpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQoCitpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmNsZWFyQWxsRGF0YWJhc2VzKCk7Cisg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CisgICAgdGVzdFJ1bm5lci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKICAgICAg
ICAgMCwKICAgICAgICAgImZ1bmN0aW9uIGNyZWF0aW9uQ2FsbGJhY2sxKGRiKVxuIiArCiAgICAg
ICAgICJ7XG4iICsKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJh
c2UtY3JlYXRpb24tY2FsbGJhY2suaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9y
YWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLWNyZWF0aW9uLWNhbGxiYWNrLmh0bWwJKHJldmlzaW9u
IDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2UtY3Jl
YXRpb24tY2FsbGJhY2suaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOCwxOCArOCwxOCBAQCBmdW5j
dGlvbiBsb2cobWVzc2FnZSkKIAogZnVuY3Rpb24gZmluaXNoVGVzdCgpCiB7Ci0gICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
bm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKQogewotICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuc2V0
RGF0YWJhc2VRdW90YSgzMjc2OCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBE
YXRhYmFzZUNhbGxiYWNrcygpOwotICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5jbGVhckFsbERh
dGFiYXNlcygpOworICAgICAgICB0ZXN0UnVubmVyLnNldERhdGFiYXNlUXVvdGEoMzI3NjgpOwor
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBEYXRhYmFzZUNhbGxiYWNrcygpOworICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CiAgICAgfQogCiAgICAgdmFyIHRyYW5zYWN0aW9uc1J1biA9IDA7CkluZGV4OiBMYXlvdXRUZXN0
cy9zdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLWVtcHR5LXZlcnNpb24uaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLWVtcHR5LXZl
cnNpb24uaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJz
cWwvb3Blbi1kYXRhYmFzZS1lbXB0eS12ZXJzaW9uLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTIs
OCArMiw4IEBACiA8aGVhZD4KIDxzY3JpcHQ+CiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIAotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSAKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAgCiAgICAgdHJ5IHsgICAgCiAgICAgICAgIHZh
ciBkYiA9IG9wZW5EYXRhYmFzZSgnNTU2MjQ3MFRlc3QnLCAnJywgJ1Rlc3QgZm9yIDxyZGFyOi8v
cHJvYmxlbS81NTYyNDcwPiBvcGVuRGF0YWJhc2UgZG9lcyBub3Qgd29yayB3aGVuIHRoZSB2ZXJz
aW9uIHN0cmluZyBpcyBlbXB0eScsIDEpOwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJz
cWwvb3Blbi1kYXRhYmFzZS1vdmVyLXF1b3RhLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS1vdmVyLXF1b3RhLmh0bWwJKHJldmlzaW9u
IDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2Utb3Zl
ci1xdW90YS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDkgKzIsOSBAQAogPGhlYWQ+CiA8c2Ny
aXB0PgogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKKyAgICBpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgICAgIHRlc3RSdW5uZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKICAgICB9CiAKICAgICB0cnkg
ewpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS1zZXQtZW1w
dHktdmVyc2lvbi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3Fs
L29wZW4tZGF0YWJhc2Utc2V0LWVtcHR5LXZlcnNpb24uaHRtbAkocmV2aXNpb24gMTIwNTE0KQor
KysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvb3Blbi1kYXRhYmFzZS1zZXQtZW1wdHktdmVy
c2lvbi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yLDkgKzIsOSBAQAogPGhlYWQ+CiA8c2NyaXB0
PgogZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKKyAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
ICAgIHRlc3RSdW5uZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKICAgICB9CiAgICAgCiAgICAgdHJ5
IHsgICAgCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9vcGVuLWRhdGFiYXNlLXdo
aWxlLXRyYW5zYWN0aW9uLWluLXByb2dyZXNzLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L3N0b3JhZ2Uvd2Vic3FsL29wZW4tZGF0YWJhc2Utd2hpbGUtdHJhbnNhY3Rpb24taW4tcHJvZ3Jl
c3MuanMJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL29w
ZW4tZGF0YWJhc2Utd2hpbGUtdHJhbnNhY3Rpb24taW4tcHJvZ3Jlc3MuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTM1LDcgKzM1LDcgQEAgZnVuY3Rpb24gcnVuVGVzdCgpCiAgICAgfSwgZnVuY3Rpb24o
ZXJyb3IpIHsKICAgICAgICAgbG9nKCJUcmFuc2FjdGlvbiBmYWlsZWQ6ICIgKyBlcnJvci5tZXNz
YWdlKTsKICAgICB9LCBmdW5jdGlvbigpIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CiAgICAgfSk7CiB9CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3dl
YnNxbC9wcml2YXRlLWJyb3dzaW5nLW5vcmVhZC1ub3dyaXRlLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvcHJpdmF0ZS1icm93c2luZy1ub3JlYWQtbm93cml0
ZS5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9w
cml2YXRlLWJyb3dzaW5nLW5vcmVhZC1ub3dyaXRlLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTY3
LDggKzY3LDggQEAgZnVuY3Rpb24gcnVuUHJpdmF0ZUJyb3dzaW5nVGVzdHMoKQogewogICAgIGNv
bXBsZXRlZCA9IDA7CiAKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5zZXRQcml2YXRlQnJvd3NpbmdFbmFibGVkKHRydWUp
OworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2
YXRlQnJvd3NpbmdFbmFibGVkKHRydWUpOwogICAgIAogICAgIGZvciAoaSBpbiBwcml2YXRlQnJv
d3NpbmdTdGF0ZW1lbnRzKQogICAgICAgICB0aGVUcmFuc2FjdGlvbi5leGVjdXRlU3FsKHByaXZh
dGVCcm93c2luZ1N0YXRlbWVudHNbaV0sIFtdLCBwcml2YXRlQnJvd3NpbmdTdWNjZXNzRnVuY3Rp
b24sIHByaXZhdGVCcm93c2luZ0Vycm9yRnVuY3Rpb24pOwpAQCAtNzgsMTUgKzc4LDE1IEBAIGZ1
bmN0aW9uIGVuZFRlc3QoKQogewogICAgIHdyaXRlTWVzc2FnZVRvTG9nKCJUZXN0IGVuZGVkIik7
CiAgICAgCi0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIHJ1blRl
c3QoKQogewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKICAgICB9CiAKICAgICB2YXIgZGF0YWJhc2UgPSBvcGVuRGF0YWJhc2UoIlBy
aXZhdGVCcm93c2luZ05vUmVhZE5vV3JpdGVUZXN0IiwgIjEuMCIsICJUZXN0IHByaXZhdGUgYnJv
d3Npbmcgbm8gcmVhZC93cml0ZSBzYWZldHkiLCAxKTsKSW5kZXg6IExheW91dFRlc3RzL3N0b3Jh
Z2Uvd2Vic3FsL3F1b3RhLXRyYWNraW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
c3RvcmFnZS93ZWJzcWwvcXVvdGEtdHJhY2tpbmcuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysg
TGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvcXVvdGEtdHJhY2tpbmcuaHRtbAkod29ya2luZyBj
b3B5KQpAQCAtMTMsOCArMTMsOCBAQCBmdW5jdGlvbiBsb2cobWVzc2FnZSkKIGZ1bmN0aW9uIGZp
bmlzaFRlc3QoKQogewogICAgIGxvZygiVGVzdCBDb21wbGV0ZSIpOwotICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlm
eURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwogfQogCiBmdW5jdGlvbiBzdGF0ZW1lbnRFcnJvckZ1bmN0aW9uKHR4LCBl
cnJvcikKQEAgLTg4LDEyICs4OCwxMiBAQCBmdW5jdGlvbiB0ZXN0RGF0YWJhc2UoZGIpCiAKIGZ1
bmN0aW9uIHJ1blRlc3QoKQogewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcERhdGFiYXNlQ2FsbGJhY2tzKCk7Ci0gICAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLnNldERhdGFiYXNlUXVvdGEoNDA5NjApOwotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5jbGVhckFsbERhdGFiYXNlcygpOworICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBEYXRhYmFzZUNhbGxiYWNrcygpOworICAgICAgICB0ZXN0UnVubmVyLnNldERhdGFi
YXNlUXVvdGEoNDA5NjApOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAgZGF0YWJhc2UxID0g
b3BlbkRhdGFiYXNlKCJRdW90YU1hbmFnZW1lbnREYXRhYmFzZTEiLCAiMS4wIiwgIlRlc3QgZm9y
IHF1b3RhIG1hbmFnZW1lbnQgPHJkYXI6Ly81NjI4NDY4PiIsIDEpOwpJbmRleDogTGF5b3V0VGVz
dHMvc3RvcmFnZS93ZWJzcWwvcmVhZC1hbmQtd3JpdGUtdHJhbnNhY3Rpb25zLWRvbnQtcnVuLXRv
Z2V0aGVyLmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL3JlYWQt
YW5kLXdyaXRlLXRyYW5zYWN0aW9ucy1kb250LXJ1bi10b2dldGhlci5qcwkocmV2aXNpb24gMTIw
NTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvcmVhZC1hbmQtd3JpdGUtdHJhbnNh
Y3Rpb25zLWRvbnQtcnVuLXRvZ2V0aGVyLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsNyBA
QAogZnVuY3Rpb24gdGVybWluYXRlVGVzdCgpCiB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CiB9CiAKIGZ1bmN0aW9uIG9wZW5UZXN0RGF0YWJhc2UoKQpJbmRleDogTGF5b3V0VGVzdHMv
c3RvcmFnZS93ZWJzcWwvcmVhZC10cmFuc2FjdGlvbnMtcnVubmluZy1jb25jdXJyZW50bHkuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9yZWFkLXRyYW5zYWN0
aW9ucy1ydW5uaW5nLWNvbmN1cnJlbnRseS5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlv
dXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9yZWFkLXRyYW5zYWN0aW9ucy1ydW5uaW5nLWNvbmN1cnJl
bnRseS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC05LDggKzksOCBAQCBmdW5jdGlvbiBsb2cobWVz
c2FnZSkKIAogZnVuY3Rpb24gdGVybWluYXRlVGVzdCgpCiB7Ci0gICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9u
ZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIG9wZW5UZXN0RGF0YWJhc2UoKQpAQCAtNDAsOSArNDAs
OSBAQCBmdW5jdGlvbiBydW5SZWFkVHJhbnNhY3Rpb24oZGIpCiB9CiAKIGZ1bmN0aW9uIHJ1blRl
c3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwogICAgIH0KIAogICAgIHRyeSB7CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdl
L3dlYnNxbC9zcWwtZGF0YS10eXBlcy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9y
YWdlL3dlYnNxbC9zcWwtZGF0YS10eXBlcy5qcwkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0
VGVzdHMvc3RvcmFnZS93ZWJzcWwvc3FsLWRhdGEtdHlwZXMuanMJKHdvcmtpbmcgY29weSkKQEAg
LTcsOCArNyw4IEBAIGZ1bmN0aW9uIHdyaXRlTWVzc2FnZVRvTG9nKG1lc3NhZ2UpCiAKIGZ1bmN0
aW9uIG5vdGlmeURvbmUoc3RyKSB7CiAgICAgd3JpdGVNZXNzYWdlVG9Mb2coc3RyKTsKLSAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogdmFyIHRlc3RWYWx1ZXMgPSB7CkBAIC03NSw5
ICs3NSw5IEBAIGZ1bmN0aW9uIGNyZWF0ZVRlc3REQlN0bXQodHgpCiB9CiAKIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwogICAgIH0KICAgICB2YXIgZGIgPSBvcGVuRGF0YWJhc2UoIkRhdGFUeXBl
VGVzdCIsICIxLjAiLCAiRGF0YWJhc2UgZm9yIHNxbCBkYXRhIHR5cGUgdGVzdCIsIDEpOwogICAg
IGlmIChkYikKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL3NxbC1lcnJvci1jb2Rl
cy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9zcWwtZXJyb3It
Y29kZXMuanMJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3Fs
L3NxbC1lcnJvci1jb2Rlcy5qcwkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDcgQEAKIGZ1bmN0
aW9uIGZpbmlzaFRlc3QoKQogewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCiB2
YXIgVE9UQUxfVEVTVFMgPSA3OwpAQCAtMTAwLDggKzEwMCw4IEBAIGZ1bmN0aW9uIHRlc3RWZXJz
aW9uTWlzbWF0Y2goZGIpCiAKIGZ1bmN0aW9uIHJ1blRlc3QoKQogewotICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNsZWFy
QWxsRGF0YWJhc2VzKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0
UnVubmVyLmNsZWFyQWxsRGF0YWJhc2VzKCk7CiAKICAgICB2YXIgZGIgPSBvcGVuRGF0YWJhc2VX
aXRoU3VmZml4KCJTUUxFcnJvckNvZGVzVGVzdCIsICIxLjAiLCAiVGVzdHMgdGhlIGVycm9yIGNv
ZGVzLiIsIDEpOwogICAgIHRlc3RUcmFuc2FjdGlvblRocm93c0V4Y2VwdGlvbihkYik7CkluZGV4
OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9zdGF0ZW1lbnQtZXJyb3ItY2FsbGJhY2staXNv
bGF0ZWQtd29ybGQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNx
bC9zdGF0ZW1lbnQtZXJyb3ItY2FsbGJhY2staXNvbGF0ZWQtd29ybGQuaHRtbAkocmV2aXNpb24g
MTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvc3RhdGVtZW50LWVycm9yLWNh
bGxiYWNrLWlzb2xhdGVkLXdvcmxkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsOCArNyw4IEBA
IFRoaXMgdGVzdCB0ZXN0cyB0aGF0IHRoZSBzdGF0ZW1lbnQgZXJyb3IKIHZhciBzdGF0ZW1lbnRF
cnJvckNhbGxiYWNrc0ludm9rZWQgPSAwOwogZnVuY3Rpb24gZG9uZSgpCiB7Ci0gICAgaWYgKCgr
K3N0YXRlbWVudEVycm9yQ2FsbGJhY2tzSW52b2tlZCA9PSAyKSAmJiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSkKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworICAgIGlmICgoKytzdGF0ZW1lbnRFcnJvckNhbGxiYWNrc0ludm9rZWQgPT0gMikgJiYgKHdp
bmRvdy50ZXN0UnVubmVyKSkKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAK
IGZ1bmN0aW9uIHN0YXRlbWVudEVycm9yQ2FsbGJhY2sxKHR4LCBlcnJvcikKQEAgLTI2LDExICsy
NiwxMSBAQCBmdW5jdGlvbiBzdGF0ZW1lbnRFcnJvckNhbGxiYWNrMih0eCwgZXJyCiBkb2N1bWVu
dC5ib2R5LmZvbyA9ICJGQUlMOiBkb2N1bWVudC5ib2R5LmZvbyB2aXNpYmxlIGluIGlzb2xhdGVk
IHdvcmxkLiI7CiBkb2N1bWVudC5ib2R5LmJhciA9ICJQQVNTOiBkb2N1bWVudC5ib2R5LmJhciB2
aXNpYmxlIGluIGEgY2FsbGJhY2sgY3JlYXRlZCBpbiB0aGlzIHdvcmxkLiI7CiAKLWlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5jbGVh
ckFsbERhdGFiYXNlcygpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
LSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Ci0gICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVkV29ybGQoCitpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmNsZWFyQWxsRGF0YWJhc2VzKCk7CisgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cisg
ICAgdGVzdFJ1bm5lci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKICAgICAgICAgMCwK
ICAgICAgICAgImZ1bmN0aW9uIHN0YXRlbWVudEVycm9yQ2FsbGJhY2sxKHR4LCBlcnJvcilcbiIg
KwogICAgICAgICAie1xuIiArCkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9zdGF0
ZW1lbnQtZXJyb3ItY2FsbGJhY2suaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9y
YWdlL3dlYnNxbC9zdGF0ZW1lbnQtZXJyb3ItY2FsbGJhY2suaHRtbAkocmV2aXNpb24gMTIwNTE0
KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvc3RhdGVtZW50LWVycm9yLWNhbGxiYWNr
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwLDggKzEwLDggQEAgZnVuY3Rpb24gbG9nKG1lc3Nh
Z2UpCiBmdW5jdGlvbiBmaW5pc2hUZXN0KCkKIHsKICAgICBsb2coIlRlc3QgQ29tcGxldGUiKTsK
LSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogdmFyIHR4Q2FsbGJhY2tDb3VudCA9
IDA7CkBAIC01NSwxMCArNTUsMTAgQEAgZnVuY3Rpb24gcnVuVHJhbnNhY3Rpb24oZXhwZWN0ZWRU
b0ZhaWwsIAogCiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNsZWFyQWxsRGF0
YWJhc2VzKCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmNsZWFyQWxsRGF0YWJhc2VzKCk7
CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICBkYXRhYmFzZSA9IG9wZW5EYXRhYmFzZSgiU3Rh
dGVtZW50RXJyb3JDYWxsYmFja1Rlc3QiLCAiMS4wIiwgInN0YXRlbWVudCBlcnJvciBjYWxsYmFj
ayB0ZXN0IiwgMTAyNCk7CkluZGV4OiBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9zdGF0ZW1l
bnQtc3VjY2Vzcy1jYWxsYmFjay1pc29sYXRlZC13b3JsZC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL3N0YXRlbWVudC1zdWNjZXNzLWNhbGxiYWNrLWlzb2xh
dGVkLXdvcmxkLmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uv
d2Vic3FsL3N0YXRlbWVudC1zdWNjZXNzLWNhbGxiYWNrLWlzb2xhdGVkLXdvcmxkLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTcsOCArNyw4IEBAIFRoaXMgdGVzdCB0ZXN0cyB0aGF0IHRoZSBzdGF0
ZW1lbnQgc3VjY2UKIHZhciBzdGF0ZW1lbnRTdWNjZXNzQ2FsbGJhY2tzSW52b2tlZCA9IDA7CiBm
dW5jdGlvbiBkb25lKCkKIHsKLSAgICBpZiAoKCsrc3RhdGVtZW50U3VjY2Vzc0NhbGxiYWNrc0lu
dm9rZWQgPT0gMikgJiYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikpCi0gICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAoKCsrc3RhdGVtZW50U3Vj
Y2Vzc0NhbGxiYWNrc0ludm9rZWQgPT0gMikgJiYgKHdpbmRvdy50ZXN0UnVubmVyKSkKKyAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIHN0YXRlbWVudFN1Y2Nl
c3NDYWxsYmFjazEodHgsIGRhdGEpCkBAIC0yNiwxMSArMjYsMTEgQEAgZnVuY3Rpb24gc3RhdGVt
ZW50U3VjY2Vzc0NhbGxiYWNrMih0eCwgZAogZG9jdW1lbnQuYm9keS5mb28gPSAiRkFJTDogZG9j
dW1lbnQuYm9keS5mb28gdmlzaWJsZSBpbiBpc29sYXRlZCB3b3JsZC4iOwogZG9jdW1lbnQuYm9k
eS5iYXIgPSAiUEFTUzogZG9jdW1lbnQuYm9keS5iYXIgdmlzaWJsZSBpbiBhIGNhbGxiYWNrIGNy
ZWF0ZWQgaW4gdGhpcyB3b3JsZC4iOwogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKLSAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIud2FpdFVudGlsRG9uZSgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmV2YWx1YXRlU2Ny
aXB0SW5Jc29sYXRlZFdvcmxkKAoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1
bm5lci5jbGVhckFsbERhdGFiYXNlcygpOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwor
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuZXZhbHVhdGVT
Y3JpcHRJbklzb2xhdGVkV29ybGQoCiAgICAgICAgIDAsCiAgICAgICAgICJmdW5jdGlvbiBzdGF0
ZW1lbnRTdWNjZXNzQ2FsbGJhY2sxKHR4LCBkYXRhKVxuIiArCiAgICAgICAgICJ7XG4iICsKSW5k
ZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL3N1Y2Nlc3MtY2FsbGJhY2suaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9zdWNjZXNzLWNhbGxiYWNrLmh0
bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL3N1Y2Nl
c3MtY2FsbGJhY2suaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTAsOCArMTAsOCBAQCBmdW5jdGlv
biBsb2cobWVzc2FnZSkKIGZ1bmN0aW9uIGZpbmlzaFRlc3QoKQogewogICAgIGxvZygiVGVzdCBD
b21wbGV0ZSIpOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAg
IGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCiBmdW5jdGlvbiBl
cnJvckZ1bmN0aW9uKGVycm9yKQpAQCAtMzEsMTAgKzMxLDEwIEBAIGZ1bmN0aW9uIHN1Y2Nlc3NG
dW5jdGlvbihtZXNzYWdlKQogCiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKLSAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNs
ZWFyQWxsRGF0YWJhc2VzKCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQoKTsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmNsZWFyQWxsRGF0
YWJhc2VzKCk7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAgICAgCiAgICAgdmFyIGRhdGFiYXNlID0g
b3BlbkRhdGFiYXNlKCJTdWNjZXNzQ2FsbGJhY2tEYXRhYmFzZSIsICIxLjAiLCAiVGVzdCBmb3Ig
c3VjY2VzcyBjYWxsYmFjayA8cmRhcjovLzU3Mzc2OTI+IiwgMSk7CkluZGV4OiBMYXlvdXRUZXN0
cy9zdG9yYWdlL3dlYnNxbC90ZXN0LWF1dGhvcml6ZXIuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvc3RvcmFnZS93ZWJzcWwvdGVzdC1hdXRob3JpemVyLmpzCShyZXZpc2lvbiAxMjA1MTQp
CisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC90ZXN0LWF1dGhvcml6ZXIuanMJKHdvcmtp
bmcgY29weSkKQEAgLTEsNyArMSw3IEBACiBmdW5jdGlvbiB0ZXJtaW5hdGVUZXN0KCkKIHsKLSAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKIH0KIAogZnVuY3Rpb24gbG9nQW5kVGVybWluYXRl
VGVzdChtZXNzYWdlLCBlcnJvcikKSW5kZXg6IExheW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL3Ry
YW5zYWN0aW9uLWNhbGxiYWNrLWV4Y2VwdGlvbi1jcmFzaC5odG1sCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL3N0b3JhZ2Uvd2Vic3FsL3RyYW5zYWN0aW9uLWNhbGxiYWNrLWV4Y2VwdGlvbi1j
cmFzaC5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNx
bC90cmFuc2FjdGlvbi1jYWxsYmFjay1leGNlcHRpb24tY3Jhc2guaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMSwxNSArMSwxNSBAQAogPGh0bWw+CiA8aGVhZD4KIDxzY3JpcHQ+Ci1pZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKK2lmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogfQogCiB2YXIgZGIgPSBvcGVuRGF0YWJhc2UoIjE1
OTc2VGVzdCIsICIxLjAiLCAiVGVzdCBmb3IgaHR0cDovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTU5NzYiLCAxKTsKIGRiLnRyYW5zYWN0aW9uKGZ1bmN0aW9uKHR4KSB7Ci0gICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0
KGZ1bmN0aW9uKCkgeyBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCkgfSwgMCk7Cisg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVuY3Rp
b24oKSB7IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpIH0sIDApOwogICAgdGhyb3cgIlRyYW5zYWN0
aW9uQ2FsbGJhY2tFcnJvciI7CiB9KTsKIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvc3Rv
cmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tY2FsbGJhY2staXNvbGF0ZWQtd29ybGQuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC90cmFuc2FjdGlvbi1jYWxsYmFj
ay1pc29sYXRlZC13b3JsZC5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9z
dG9yYWdlL3dlYnNxbC90cmFuc2FjdGlvbi1jYWxsYmFjay1pc29sYXRlZC13b3JsZC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC03LDggKzcsOCBAQCBUaGlzIHRlc3QgdGVzdHMgdGhhdCB0aGUgdHJh
bnNhY3Rpb24gY2FsCiB2YXIgdHJhbnNhY3Rpb25DYWxsYmFja3NJbnZva2VkID0gMDsKIGZ1bmN0
aW9uIGRvbmUoKQogewotICAgIGlmICgoKyt0cmFuc2FjdGlvbkNhbGxiYWNrc0ludm9rZWQgPT0g
MikgJiYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikpCi0gICAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICBpZiAoKCsrdHJhbnNhY3Rpb25DYWxsYmFja3NJ
bnZva2VkID09IDIpICYmICh3aW5kb3cudGVzdFJ1bm5lcikpCisgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwogfQogCiBmdW5jdGlvbiB0cmFuc2FjdGlvbkNhbGxiYWNrMSh0eCkKQEAg
LTI2LDExICsyNiwxMSBAQCBmdW5jdGlvbiB0cmFuc2FjdGlvbkNhbGxiYWNrMih0eCkKIGRvY3Vt
ZW50LmJvZHkuZm9vID0gIkZBSUw6IGRvY3VtZW50LmJvZHkuZm9vIHZpc2libGUgaW4gaXNvbGF0
ZWQgd29ybGQuIjsKIGRvY3VtZW50LmJvZHkuYmFyID0gIlBBU1M6IGRvY3VtZW50LmJvZHkuYmFy
IHZpc2libGUgaW4gYSBjYWxsYmFjayBjcmVhdGVkIGluIHRoaXMgd29ybGQuIjsKIAotaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNs
ZWFyQWxsRGF0YWJhc2VzKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0ZWRXb3JsZCgKK2lmICh3aW5kb3cu
dGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKKyAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICB0ZXN0UnVubmVyLmV2YWx1YXRlU2NyaXB0SW5Jc29sYXRlZFdvcmxkKAogICAgICAgICAw
LAogICAgICAgICAiZnVuY3Rpb24gdHJhbnNhY3Rpb25DYWxsYmFjazEodHgpXG4iICsKICAgICAg
ICAgIntcbiIgKwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24t
ZXJyb3ItY2FsbGJhY2staXNvbGF0ZWQtd29ybGQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9zdG9yYWdlL3dlYnNxbC90cmFuc2FjdGlvbi1lcnJvci1jYWxsYmFjay1pc29sYXRlZC13
b3JsZC5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNx
bC90cmFuc2FjdGlvbi1lcnJvci1jYWxsYmFjay1pc29sYXRlZC13b3JsZC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC03LDggKzcsOCBAQCBUaGlzIHRlc3QgdGVzdHMgdGhhdCB0aGUgdHJhbnNhY3Rp
b24gZXJyCiB2YXIgdHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrc0ludm9rZWQgPSAwOwogZnVuY3Rp
b24gZG9uZSgpCiB7Ci0gICAgaWYgKCgrK3RyYW5zYWN0aW9uRXJyb3JDYWxsYmFja3NJbnZva2Vk
ID09IDIpICYmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpKQotICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKCgrK3RyYW5zYWN0aW9uRXJyb3JD
YWxsYmFja3NJbnZva2VkID09IDIpICYmICh3aW5kb3cudGVzdFJ1bm5lcikpCisgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCiBmdW5jdGlvbiB0cmFuc2FjdGlvbkVycm9yQ2Fs
bGJhY2sxKHR4KQpAQCAtMjYsMTEgKzI2LDExIEBAIGZ1bmN0aW9uIHRyYW5zYWN0aW9uRXJyb3JD
YWxsYmFjazIodHgpCiBkb2N1bWVudC5ib2R5LmZvbyA9ICJGQUlMOiBkb2N1bWVudC5ib2R5LmZv
byB2aXNpYmxlIGluIGlzb2xhdGVkIHdvcmxkLiI7CiBkb2N1bWVudC5ib2R5LmJhciA9ICJQQVNT
OiBkb2N1bWVudC5ib2R5LmJhciB2aXNpYmxlIGluIGEgY2FsbGJhY2sgY3JlYXRlZCBpbiB0aGlz
IHdvcmxkLiI7CiAKLWlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5jbGVhckFsbERhdGFiYXNlcygpOwotICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxE
b25lKCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZXZhbHVhdGVTY3JpcHRJbklzb2xhdGVk
V29ybGQoCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmNsZWFyQWxs
RGF0YWJhc2VzKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5l
ci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5ldmFsdWF0ZVNjcmlwdEluSXNvbGF0
ZWRXb3JsZCgKICAgICAgICAgMCwKICAgICAgICAgImZ1bmN0aW9uIHRyYW5zYWN0aW9uRXJyb3JD
YWxsYmFjazEodHgpXG4iICsKICAgICAgICAgIntcbiIgKwpJbmRleDogTGF5b3V0VGVzdHMvc3Rv
cmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tZXJyb3ItY2FsbGJhY2suaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC90cmFuc2FjdGlvbi1lcnJvci1jYWxsYmFjay5o
dG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC90cmFu
c2FjdGlvbi1lcnJvci1jYWxsYmFjay5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBA
QCBmdW5jdGlvbiBsb2cobWVzc2FnZSkKICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpLmlubmVySFRNTCArPSBtZXNzYWdlICsgIjxicj4iOwogfQogCi0vLyBzaWduYWwgdG8g
bGF5b3V0VGVzdENvbnRyb2xsZXIgd2hlbiB0aGlzIHJlYWNoZXMgemVyby4KKy8vIHNpZ25hbCB0
byB0ZXN0UnVubmVyIHdoZW4gdGhpcyByZWFjaGVzIHplcm8uCiB2YXIgdGVzdENvdW50ID0gNDsK
IC8vIHdlIGZpcnN0IHJldHJpZXZlIGFuZCBzdG9yZSB0aGUgbnVtYmVyIG9mIHJvd3MgYWxyZWFk
eSBpbiBvdXIgdGVzdCBkYXRhYmFzZS4KIC8vIG91ciBnb2FsIGlzIHRvIGtlZXAgdGhlIG51bWJl
ciB1bmNoYW5nZWQgdGhyb3VnaCB0aGUgdGVzdHMuCkBAIC0yMiw4ICsyMiw4IEBAIGZ1bmN0aW9u
IGZpbmlzaFRlc3QoKQogCiAgICAgbG9nKCJBbGwgVGVzdHMgYXJlIGNvbXBsZXRlLiIpOwogCi0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIHN1Y2Nlc3NDYWxsYmFj
aygpCkBAIC02NywxMCArNjcsMTAgQEAgZnVuY3Rpb24gc3RhdGVtZW50Q2FsbGJhY2tUaHJvd3NF
eGNlcHRpbwogCiBmdW5jdGlvbiBydW5UZXN0KCkKIHsKLSAgICBpZiAod2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmNsZWFyQWxsRGF0
YWJhc2VzKCk7Ci0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmNsZWFyQWxsRGF0YWJhc2VzKCk7
CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICBkYXRhYmFzZSA9IG9wZW5EYXRhYmFzZSgiRXJy
b3JDYWxsYmFja0RhdGFiYXNlIiwgIjEuMCIsICJUZXN0IGZvciBlcnJvciBjYWxsYmFjayIsIDEp
OwpJbmRleDogTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvdHJhbnNhY3Rpb24tc3VjY2Vzcy1j
YWxsYmFjay1pc29sYXRlZC13b3JsZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3N0
b3JhZ2Uvd2Vic3FsL3RyYW5zYWN0aW9uLXN1Y2Nlc3MtY2FsbGJhY2staXNvbGF0ZWQtd29ybGQu
aHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvdHJh
bnNhY3Rpb24tc3VjY2Vzcy1jYWxsYmFjay1pc29sYXRlZC13b3JsZC5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC03LDggKzcsOCBAQCBUaGlzIHRlc3QgdGVzdHMgdGhhdCB0aGUgdHJhbnNhY3Rpb24g
c3VjCiB2YXIgdHJhbnNhY3Rpb25TdWNjZXNzQ2FsbGJhY2tzSW52b2tlZCA9IDA7CiBmdW5jdGlv
biBkb25lKCkKIHsKLSAgICBpZiAoKCsrdHJhbnNhY3Rpb25TdWNjZXNzQ2FsbGJhY2tzSW52b2tl
ZCA9PSAyKSAmJiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSkKLSAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICgoKyt0cmFuc2FjdGlvblN1Y2Nl
c3NDYWxsYmFja3NJbnZva2VkID09IDIpICYmICh3aW5kb3cudGVzdFJ1bm5lcikpCisgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogfQogCiBmdW5jdGlvbiB0cmFuc2FjdGlvblN1Y2Nl
c3NDYWxsYmFjazEodHgpCkBAIC0yNiwxMSArMjYsMTEgQEAgZnVuY3Rpb24gdHJhbnNhY3Rpb25T
dWNjZXNzQ2FsbGJhY2syKHR4KQogZG9jdW1lbnQuYm9keS5mb28gPSAiRkFJTDogZG9jdW1lbnQu
Ym9keS5mb28gdmlzaWJsZSBpbiBpc29sYXRlZCB3b3JsZC4iOwogZG9jdW1lbnQuYm9keS5iYXIg
PSAiUEFTUzogZG9jdW1lbnQuYm9keS5iYXIgdmlzaWJsZSBpbiBhIGNhbGxiYWNrIGNyZWF0ZWQg
aW4gdGhpcyB3b3JsZC4iOwogCi1pZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0g
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuY2xlYXJBbGxEYXRhYmFzZXMoKTsKLSAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOwotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmV2YWx1YXRlU2NyaXB0SW5J
c29sYXRlZFdvcmxkKAoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5j
bGVhckFsbERhdGFiYXNlcygpOworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuZXZhbHVhdGVTY3JpcHRJ
bklzb2xhdGVkV29ybGQoCiAgICAgICAgIDAsCiAgICAgICAgICJmdW5jdGlvbiB0cmFuc2FjdGlv
blN1Y2Nlc3NDYWxsYmFjazEodHgpXG4iICsKICAgICAgICAgIntcbiIgKwpJbmRleDogTGF5b3V0
VGVzdHMvc3RvcmFnZS93ZWJzcWwvcmVzb3VyY2VzL2RhdGFiYXNlLWNvbW1vbi5qcwo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9yZXNvdXJjZXMvZGF0YWJhc2UtY29t
bW9uLmpzCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy9zdG9yYWdlL3dlYnNxbC9y
ZXNvdXJjZXMvZGF0YWJhc2UtY29tbW9uLmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw5ICsyMCw5
IEBAIGZ1bmN0aW9uIHNldExvY2F0aW9uSGFzaChoYXNoKSB7CiAKIGZ1bmN0aW9uIHNldHVwQW5k
UnVuVGVzdCgpCiB7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIp
IHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwogICAgIH0KICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
c29sZSIpLmlubmVyVGV4dCA9ICIiOwogICAgIHJ1blRlc3QoKTsKSW5kZXg6IExheW91dFRlc3Rz
L3N0b3JhZ2Uvd2Vic3FsL3Jlc291cmNlcy9kYXRhYmFzZS1sb2NrLWFmdGVyLXJlbG9hZC0yLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvcmVzb3VyY2VzL2Rh
dGFiYXNlLWxvY2stYWZ0ZXItcmVsb2FkLTIuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5
b3V0VGVzdHMvc3RvcmFnZS93ZWJzcWwvcmVzb3VyY2VzL2RhdGFiYXNlLWxvY2stYWZ0ZXItcmVs
b2FkLTIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtOSw4ICs5LDggQEAgZnVuY3Rpb24gbG9nKG1l
c3NhZ2UpCiBmdW5jdGlvbiBmaW5pc2hUZXN0KCkKIHsKICAgICBsb2coIlRlc3QgcGFydCAyIENv
bXBsZXRlIik7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIGZ1bmN0aW9uIGVy
cm9yRnVuY3Rpb24oZXJyb3IpCkBAIC0zMCw5ICszMCw5IEBAIGZ1bmN0aW9uIGFkZERhdGEoZGIp
CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKQogewotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAg
ICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICB0cnkgewpJbmRleDog
TGF5b3V0VGVzdHMvdGFibGVzL3RhYmxlLXNlY3Rpb24tb3ZlcmZsb3ctY2xpcC1jcmFzaC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RhYmxlcy90YWJsZS1zZWN0aW9uLW92ZXJmbG93
LWNsaXAtY3Jhc2guaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvdGFibGVz
L3RhYmxlLXNlY3Rpb24tb3ZlcmZsb3ctY2xpcC1jcmFzaC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0yNywxNSArMjcsMTUgQEAKIH0KIDwvc3R5bGU+CiA8c2NyaXB0PgotaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikgewotICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKLSAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CitpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKIH0KIAogZnVuY3Rpb24gZmluaXNoKCkgewogICAgIGRvY3Vt
ZW50LmJvZHkuaW5uZXJIVE1MID0gIldlYktpdCBCdWcgODc0NDUgLSBSZW5kZXJUYWJsZVNlY3Rp
b246OnBhaW50Q2VsbC48YnIvPlRlc3QgcGFzc2VzIGlmIGl0IGRvZXMgbm90IGNyYXNoLiI7Ci0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiB9CiAKIG9ubG9hZCA9IGZ1bmN0aW9uKCkgewpJ
bmRleDogTGF5b3V0VGVzdHMvdGFibGVzL2hpdHRlc3RpbmcvZmlsbHRhYmxlLWVtcHR5Y2VsbHMu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90YWJsZXMvaGl0dGVzdGluZy9maWxsdGFi
bGUtZW1wdHljZWxscy5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90YWJs
ZXMvaGl0dGVzdGluZy9maWxsdGFibGUtZW1wdHljZWxscy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0xMyw5ICsxMyw5IEBACiAgICAgdmFyIGxhc3RTdWNjZXNzID0gMDsKICAgICB2YXIgZmFpbGVk
ID0gZmFsc2U7CiAKLSAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICB3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICB3aW5kb3cu
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAgZnVuY3Rpb24gaXNFbXB0
eShyb3csIGNvbCkgewpAQCAtNDcsOCArNDcsOCBAQAogICAgICAgICB5cG9zICs9IGNlbGxIZWln
aHQ7CiAgICAgICB9CiAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9IChmYWlsZWQgPyAi
RkFJTCEhITxici8+IiA6ICJTVUNDRVNTISEhPGJyLz4iKSArbG9nTXNnOwotICAgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICB9CiAgICAg
fQogICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL3RhYmxlcy9oaXR0ZXN0aW5nL2ZpbGx0
YWJsZS1sZXZlbHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90YWJsZXMvaGl0dGVz
dGluZy9maWxsdGFibGUtbGV2ZWxzLmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRl
c3RzL3RhYmxlcy9oaXR0ZXN0aW5nL2ZpbGx0YWJsZS1sZXZlbHMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMTcsOSArMTcsOSBAQAogICAgICAgICAgICAgICAgICAgICBbZmFsc2UsIGZhbHNlLCBm
YWxzZV1dOwogCiAKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAg
ICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7CisgICAgICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAogICAg
IGZ1bmN0aW9uIGNsZWFySGl0QXJyYXkoKSB7CkBAIC04MSw4ICs4MSw4IEBACiAgICAgICAgIHlw
b3MgKz0gY2VsbEhlaWdodDsKICAgICAgIH0KICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1M
ID0oZmFpbGVkID8gIkZBSUwhISE8YnIvPiIgOiAiU1VDQ0VTUyEhITxici8+IikgK2xvZ01zZzsK
LSAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgICB3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwog
ICAgICAgfQogICAgIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvdGFibGVzL2hpdHRl
c3RpbmcvZmlsbHRhYmxlLW91dGxpbmUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90
YWJsZXMvaGl0dGVzdGluZy9maWxsdGFibGUtb3V0bGluZS5odG1sCShyZXZpc2lvbiAxMjA1MTQp
CisrKyBMYXlvdXRUZXN0cy90YWJsZXMvaGl0dGVzdGluZy9maWxsdGFibGUtb3V0bGluZS5odG1s
CSh3b3JraW5nIGNvcHkpCkBAIC0xNyw5ICsxNyw5IEBACiAgICAgdmFyIGxvZ01zZyA9ICIiOwog
ICAgIHZhciBmYWlsZWQgPSBmYWxzZTsKIAotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpIHsKLSAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
KTsKLSAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgd2luZG93LnRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CiAgICAgfQogCiAgICAgZm9yICh2YXIgcm93ID0gMDsgcm93IDwgMTA7ICsrcm93KSB7CkBAIC01
OSw4ICs1OSw4IEBACiAgICAgICAgIHZhciBvdXRsaW5lMiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJvdXRsaW5lMiIpOwogICAgICAgICBvdXRsaW5lMi5zdHlsZS5vdXRsaW5lID0gIm5vbmUi
OwogICAgICAgICBkb2N1bWVudC5ib2R5LmlubmVySFRNTCA9KGZhaWxlZCA/ICJGQUlMISEhPGJy
Lz4iIDogIlNVQ0NFU1MhISE8YnIvPiIpICtsb2dNc2c7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CiAgICAg
fQogCkluZGV4OiBMYXlvdXRUZXN0cy90YWJsZXMvaGl0dGVzdGluZy9maWxsdGFibGUtcnRsLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdGFibGVzL2hpdHRlc3RpbmcvZmlsbHRhYmxl
LXJ0bC5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90YWJsZXMvaGl0dGVz
dGluZy9maWxsdGFibGUtcnRsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDkgKzE1LDkgQEAK
ICAgICAgICAgICAgICAgICAgICAgICBbZmFsc2UsIGZhbHNlLCBmYWxzZV0sCiAgICAgICAgICAg
ICAgICAgICAgICAgW2ZhbHNlLCBmYWxzZSwgZmFsc2VdXTsKIAotICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAgd2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAg
ICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICB3aW5kb3cudGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgICB9CiAKICAgICAgIGZ1bmN0aW9uIGNsZWFy
SGl0QXJyYXkoKSB7CkBAIC03MSw4ICs3MSw4IEBACiAgICAgICAgIHlwb3MgKz0gY2VsbEhlaWdo
dDsKICAgICAgIH0KICAgICAgIGRvY3VtZW50LmJvZHkuaW5uZXJIVE1MID0oZmFpbGVkID8gIkZB
SUwhISE8YnIvPiIgOiAiU1VDQ0VTUyEhITxici8+IikgK2xvZ01zZzsKLSAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgICAgICB3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgICAgICAgd2luZG93LnRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgfQogICAgIH0K
IApJbmRleDogTGF5b3V0VGVzdHMvdGFibGVzL2hpdHRlc3RpbmcvZmlsbHRhYmxlLXN0cmVzcy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RhYmxlcy9oaXR0ZXN0aW5nL2ZpbGx0YWJs
ZS1zdHJlc3MuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvdGFibGVzL2hp
dHRlc3RpbmcvZmlsbHRhYmxlLXN0cmVzcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw5ICsx
NCw5IEBACiAgICAgdmFyIGxhc3RTdWNjZXNzID0gMDsKICAgICB2YXIgZmFpbGVkID0gZmFsc2U7
CiAKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHdpbmRvdy50ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICBmdW5jdGlvbiBjZWxsSGl0KGNlbGwp
IHsKQEAgLTQxLDggKzQxLDggQEAKICAgICAgICAgeXBvcyArPSBjZWxsSGVpZ2h0OwogICAgICAg
fQogICAgICAgZG9jdW1lbnQuYm9keS5pbm5lckhUTUwgPShmYWlsZWQgPyAiRkFJTCEhITxici8+
IiA6ICJTVUNDRVNTISEhPGJyLz4iKSArbG9nTXNnOwotICAgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewotICAgICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci5u
b3RpZnlEb25lKCk7CisgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgICB3
aW5kb3cudGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICB9CiAgICAgfQogCkluZGV4OiBM
YXlvdXRUZXN0cy90YWJsZXMvbGF5ZXJpbmcvcGFpbnQtdGVzdC1sYXllcmluZy0xLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdGFibGVzL2xheWVyaW5nL3BhaW50LXRlc3QtbGF5ZXJp
bmctMS5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90YWJsZXMvbGF5ZXJp
bmcvcGFpbnQtdGVzdC1sYXllcmluZy0xLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsMTQgKzcs
MTQgQEAKIDwhLS0NCiAgICAgZnVuY3Rpb24gU2V0dXAoKSB7IAogICAgICAgICBzZXRUaW1lb3V0
KCdSZXBhaW50QnVnKCknLCAxMCk7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwogICAgIH0KICAgICBmdW5jdGlvbiBSZXBhaW50QnVnKCkgew0KICAg
ICAgICAgdmFyIGRpdjEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYnVnMiIpOw0KICAgICAg
ICAgZGl2MS5zdHlsZS5jb2xvciA9ICdncmVlbic7DQotICAgICAgICBpZiAod2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5
RG9uZSgpOworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiAvLy0tPgogPC9zY3JpcHQ+CkluZGV4OiBMYXlv
dXRUZXN0cy90YWJsZXMvbGF5ZXJpbmcvcGFpbnQtdGVzdC1sYXllcmluZy0yLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvdGFibGVzL2xheWVyaW5nL3BhaW50LXRlc3QtbGF5ZXJpbmct
Mi5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90YWJsZXMvbGF5ZXJpbmcv
cGFpbnQtdGVzdC1sYXllcmluZy0yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsMTQgKzYsMTQg
QEAKIDwhLS0NCiAgICAgZnVuY3Rpb24gU2V0dXAoKSB7IAogICAgICAgICBzZXRUaW1lb3V0KCdS
ZXBhaW50QnVnKCknLCAxMCk7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xs
ZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7Cisg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwogICAgIH0KICAgICBmdW5jdGlvbiBSZXBhaW50QnVnKCkgew0KICAgICAg
ICAgdmFyIGRpdjIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiYnVnMiIpOwogICAgICAgICBk
aXYyLnN0eWxlLmNvbG9yID0gJ2dyZWVuJzsNCi0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCi0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25l
KCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOwogICAgIH0NCiAvLy0tPg0KIDwvc2NyaXB0Pg0KSW5kZXg6IExheW91
dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9ibG9jay10ZXN0aW5nLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2Jsb2NrLXRlc3RpbmcuaHRtbAkocmV2aXNpb24g
MTIwNTE0KQorKysgTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2Jsb2NrLXRlc3RpbmcuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNDMsMTMgKzQzLDEzIEBAIFNvbWUgdGV4dC4gPGEgaWQ9YTEg
aHJlZj0iIzEiPkEgbGluazwvYT4KICAgICB9CiAgICAgZnVuY3Rpb24gcnVuVGVzdHMoKQogICAg
IHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciAmJiB3aW5kb3cuaW50
ZXJuYWxzICYmIGludGVybmFscy50b3VjaE5vZGVBZGp1c3RlZFRvQmVzdENsaWNrYWJsZU5vZGUp
IHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMgJiYg
aW50ZXJuYWxzLnRvdWNoTm9kZUFkanVzdGVkVG9CZXN0Q2xpY2thYmxlTm9kZSkgewogICAgICAg
ICAgICAgZGVzY3JpcHRpb24oJ1Rlc3QgdG91Y2gtYWRqdXN0bWVudCBvbiBhIGJsb2NrIHdoZXJl
IHdlIGFsc28gdG91Y2ggdGhlIGlubmVyIHRleHQgYW5kIG91dHNpZGUgbGluay4nKTsKLSAgICAg
ICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAgICAgICAgICAgIGxh
eW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CiAgICAgICAgICAgICB0ZXN0RGlyZWN0VG91Y2hlcygpOwogICAgICAgICAgICAgaXNTdWNjZXNz
ZnVsbHlQYXJzZWQoKTsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwogICAgICAgICB9CiAg
ICAgfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvZXZlbnQt
dHJpZ2dlcmVkLXdpZGdldHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90b3VjaGFk
anVzdG1lbnQvZXZlbnQtdHJpZ2dlcmVkLXdpZGdldHMuaHRtbAkocmV2aXNpb24gMTIwNTE0KQor
KysgTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2V2ZW50LXRyaWdnZXJlZC13aWRnZXRzLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTEwOSwxNSArMTA5LDE1IEBACiAKICAgICBmdW5jdGlvbiBy
dW5UZXN0cygpCiAgICAgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
ICYmIHdpbmRvdy5pbnRlcm5hbHMgJiYgaW50ZXJuYWxzLnRvdWNoTm9kZUFkanVzdGVkVG9CZXN0
Q2xpY2thYmxlTm9kZSkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93
LmludGVybmFscyAmJiBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RDbGlja2FibGVO
b2RlKSB7CiAgICAgICAgICAgICBkZXNjcmlwdGlvbignVGVzdCB2YXJpb3VzIHdheXMgdG8gdHJp
Z2dlciBpbnB1dC13aWRnZXRzLiBPbiBhIHRvdWNoIGludGVyZmFjZSwgYWxsIHRoZSBhY3Rpb25z
IHNob3VsZCBiZSB0cmlnZ2VyYWJsZSB3aXRoIGVpdGhlciBhIHRvdWNoIGRvd24gb3IgYSB0b3Vj
aCB0YXAuJyk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwogICAgICAgICAgICAgdGVzdERpcmVjdFRvdWNoZXMoKTsKICAgICAg
ICAgICAgIHRlc3REaXJlY3RGYXRGaW5nZXJzKCk7CiAgICAgICAgICAgICB0ZXN0SW5kaXJlY3RG
YXRGaW5nZXJzKCk7CiAgICAgICAgICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwotICAgICAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KICAgICB9CiA8L3NjcmlwdD4KSW5kZXg6
IExheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9odG1sLWxhYmVsLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2h0bWwtbGFiZWwuaHRtbAkocmV2aXNpb24g
MTIwNTE0KQorKysgTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2h0bWwtbGFiZWwuaHRtbAko
d29ya2luZyBjb3B5KQpAQCAtOTMsMTQgKzkzLDE0IEBACiAKICAgICBmdW5jdGlvbiBydW5UZXN0
cygpCiAgICAgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyICYmIHdp
bmRvdy5pbnRlcm5hbHMgJiYgaW50ZXJuYWxzLnRvdWNoTm9kZUFkanVzdGVkVG9CZXN0Q2xpY2th
YmxlTm9kZSkgeworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVy
bmFscyAmJiBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RDbGlja2FibGVOb2RlKSB7
CiAgICAgICAgICAgICBkZXNjcmlwdGlvbignVGVzdHMgaWYgbGFiZWxzIGFyZSB0cmVhdGVkIGFz
IGNsaWNrYWJsZSBpZiB0aGUgaW5wdXQgdGhleSBjb250cm9sIGlzLicpOwotICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAg
ICAgICAgIHRlc3REaXJlY3RUb3VjaGVzKCk7CiAgICAgICAgICAgICB0ZXN0SW5kaXJlY3RUb3Vj
aGVzKCk7CiAgICAgICAgICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwotICAgICAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KICAgICB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91
dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9pZnJhbWUuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy90b3VjaGFkanVzdG1lbnQvaWZyYW1lLmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExh
eW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9pZnJhbWUuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MzcsMTMgKzM3LDEzIEBACiAgICAgfQogICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKICAgICB7Ci0g
ICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmludGVybmFs
cyAmJiBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RDbGlja2FibGVOb2RlKSB7Cisg
ICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzICYmIGludGVy
bmFscy50b3VjaE5vZGVBZGp1c3RlZFRvQmVzdENsaWNrYWJsZU5vZGUpIHsKICAgICAgICAgICAg
IGRlc2NyaXB0aW9uKCdUZXN0IHRvdWNoLWFkanVzdG1lbnQgb24gbGlua3MgaW4gYW4gaWZyYW1l
LiBNYWtpbmcgc3VyZSB3ZSBpZnJhbWUgcG9zaXRpb24gaXMgY29ycmVjdGx5IGFkanVzdGVkIGZv
ci4nKTsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CiAgICAgICAgICAgICB0ZXN0RGlyZWN0VG91Y2hlcygpOwogICAgICAgICAg
ICAgaXNTdWNjZXNzZnVsbHlQYXJzZWQoKTsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwog
ICAgICAgICB9CiAgICAgfQogPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy90b3VjaGFkanVz
dG1lbnQvbmVzdGVkLXRvdWNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdG91Y2hh
ZGp1c3RtZW50L25lc3RlZC10b3VjaC5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRU
ZXN0cy90b3VjaGFkanVzdG1lbnQvbmVzdGVkLXRvdWNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAg
LTEwNSwxNCArMTA1LDE0IEBAIEJveCB3aXRob3V0IGEgbG9jYWwgY2xpY2sgaGFuZGxlci4KIAog
ICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKICAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmludGVybmFscyAmJiBpbnRlcm5hbHMudG91Y2hOb2Rl
QWRqdXN0ZWRUb0Jlc3RDbGlja2FibGVOb2RlKSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzICYmIGludGVybmFscy50b3VjaE5vZGVBZGp1c3RlZFRv
QmVzdENsaWNrYWJsZU5vZGUpIHsKICAgICAgICAgICAgIGRlc2NyaXB0aW9uKCdUZXN0IHRoZSBj
YXNlIHdoZXJlIGEgY2xpY2thYmxlIHRhcmdldCBpcyBuZXN0ZWQgaW5zaWRlIGEgZG9jdW1lbnQg
dGhhdCBpcyBtb25pdG9yaW5nIGNsaWNrcy4gVGhlIHRhcmdldCB3aXRoIHRoZSBsb2NhbCBldmVu
dC1oYW5kbGVyIHNob3VsZCBiZSBjaG9zZW4gaWYgbXVsdGlwbGUgdGFyZ2V0cyBhcmUgdG91Y2hl
ZC4nKTsKLSAgICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICAgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7CiAgICAgICAgICAgICB0ZXN0RGlyZWN0VG91Y2hlcygpOwogICAgICAgICAg
ICAgdGVzdFByZWZlcmVkVG91Y2goKTsKICAgICAgICAgICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2Vk
KCk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfQogICAgIH0KIDwvc2Ny
aXB0PgpJbmRleDogTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3Njcm9sbC1vZmZzZXQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvc2Nyb2xsLW9mZnNl
dC5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQv
c2Nyb2xsLW9mZnNldC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03NSwxNSArNzUsMTUgQEAKIAog
ICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKICAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmludGVybmFscyAmJiBpbnRlcm5hbHMudG91Y2hOb2Rl
QWRqdXN0ZWRUb0Jlc3RDbGlja2FibGVOb2RlKSB7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzICYmIGludGVybmFscy50b3VjaE5vZGVBZGp1c3RlZFRv
QmVzdENsaWNrYWJsZU5vZGUpIHsKICAgICAgICAgICAgIGRlc2NyaXB0aW9uKCdUZXN0IHRvdWNo
IGFkanVzdG1lbnQgd2hlbiBtYWluIGZyYW1lIGlzIHNjcm9sbCBvZmZzZXQuJyk7CiAgICAgICAg
ICAgICB3aW5kb3cuc2Nyb2xsQnkoMCw0MDApOwotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2Fp
dFVudGlsRG9uZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgICAgICAgIHRlc3REaXJl
Y3RUb3VjaGVzKCk7CiAgICAgICAgICAgICB0ZXN0QWRqdXN0ZWRUb3VjaGVzKCk7CiAgICAgICAg
ICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CiAgICAgICAgIH0KICAgICB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL3RvdWNoYWRq
dXN0bWVudC90b3VjaC1pbmxpbmVzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdG91
Y2hhZGp1c3RtZW50L3RvdWNoLWlubGluZXMuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5
b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3RvdWNoLWlubGluZXMuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtOTAsMTUgKzkwLDE1IEBAIGhpIHRoZXJlIDxhIGlkPSI2IiBocmVmPSIjNiI+c29tZSBs
aW5rIHQKIAogICAgIGZ1bmN0aW9uIHJ1blRlc3RzKCkKICAgICB7Ci0gICAgICAgIGlmICh3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmludGVybmFscyAmJiBpbnRlcm5hbHMu
dG91Y2hOb2RlQWRqdXN0ZWRUb0Jlc3RDbGlja2FibGVOb2RlKSB7CisgICAgICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzICYmIGludGVybmFscy50b3VjaE5vZGVB
ZGp1c3RlZFRvQmVzdENsaWNrYWJsZU5vZGUpIHsKICAgICAgICAgICAgIGRlc2NyaXB0aW9uKCdU
ZXN0IHRvdWNoLWFkanVzdG1lbnQgb24gaW5saW5lIGxpbmtzLiBNYWtpbmcgc3VyZSB3ZSBjYW4g
aGl0IG92ZXIgbGluZS1icmVha3MsIGFuZCBjYW4gbWlzcyB3aGVuIHRhcHBpbmcgYmV0d2VlbiBw
YXJ0cyBvZiBhIGxpbmUtYnJva2VuIGxpbmsuJyk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53
YWl0VW50aWxEb25lKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICAgICAgdGVzdERp
cmVjdFRvdWNoZXMoKTsKICAgICAgICAgICAgIHRlc3REaXJlY3RNaXNzZXMoKTsKICAgICAgICAg
ICAgIHRlc3RJbmRpcmVjdFRvdWNoZXMoKTsKICAgICAgICAgICAgIGlzU3VjY2Vzc2Z1bGx5UGFy
c2VkKCk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7Cisg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgICAgfQogICAgIH0KIDwv
c2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L3pvb20tYmFzaWMuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvem9vbS1iYXNpYy5o
dG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvem9v
bS1iYXNpYy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01NywxMyArNTcsMTMgQEAKIAogICAgIGZ1
bmN0aW9uIHJ1blRlc3RzKCkKICAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIgJiYgd2luZG93LmludGVybmFscyAmJiBpbnRlcm5hbHMuYmVzdFpvb21hYmxlQXJl
YUZvclRvdWNoUG9pbnQpIHsKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRv
dy5pbnRlcm5hbHMgJiYgaW50ZXJuYWxzLmJlc3Rab29tYWJsZUFyZWFGb3JUb3VjaFBvaW50KSB7
CiAgICAgICAgICAgICBkZXNjcmlwdGlvbignVGVzdCBiYXNpYyBjYXNlcyBvZiB0YXAtdG8tem9v
bSBtZWNoYW5pY3MuJyk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KCk7Ci0gICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgICAgICAgICAgdGVzdERpcmVjdFRvdWNoZXMoKTsK
ICAgICAgICAgICAgIGlzU3VjY2Vzc2Z1bGx5UGFyc2VkKCk7Ci0gICAgICAgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKICAgICAgICAgfQogICAgIH0KIDwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMv
dG91Y2hhZGp1c3RtZW50L3pvb20tZmF0ZmluZ2VyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvdG91Y2hhZGp1c3RtZW50L3pvb20tZmF0ZmluZ2VyLmh0bWwJKHJldmlzaW9uIDEyMDUx
NCkKKysrIExheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC96b29tLWZhdGZpbmdlci5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0zNiwxMyArMzYsMTMgQEAgcHg7IHdpZHRoOiAyMDBweDsgaGVpZ2h0
OiAyMHB4OyB9CiAKICAgICBmdW5jdGlvbiBydW5UZXN0cygpCiAgICAgewotICAgICAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyICYmIHdpbmRvdy5pbnRlcm5hbHMgJiYgaW50ZXJu
YWxzLmJlc3Rab29tYWJsZUFyZWFGb3JUb3VjaFBvaW50KSB7CisgICAgICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzICYmIGludGVybmFscy5iZXN0Wm9vbWFibGVB
cmVhRm9yVG91Y2hQb2ludCkgewogICAgICAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3QgdGhhdCB0
YXJnZXR0ZWQgYXJlYSBpcyBwaWNrZWQgZXZlbiBpZiB0aGUgdG91Y2ggYXJlYSBpcyBub3QgZnVs
bHkgY29udGFpbmVkLicpOwotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCgpOwotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAgICAgICAgICAgIHRlc3REaXJlY3RUb3VjaGVzKCk7
CiAgICAgICAgICAgICBpc1N1Y2Nlc3NmdWxseVBhcnNlZCgpOwotICAgICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CiAgICAgICAgIH0KICAgICB9CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3Rz
L3RvdWNoYWRqdXN0bWVudC9zY3JvbGwtZGVsZWdhdGlvbi9pZnJhbWUtd2l0aC1tYWluZnJhbWUt
c2Nyb2xsLW9mZnNldC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RvdWNoYWRqdXN0
bWVudC9zY3JvbGwtZGVsZWdhdGlvbi9pZnJhbWUtd2l0aC1tYWluZnJhbWUtc2Nyb2xsLW9mZnNl
dC5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQv
c2Nyb2xsLWRlbGVnYXRpb24vaWZyYW1lLXdpdGgtbWFpbmZyYW1lLXNjcm9sbC1vZmZzZXQuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNTYsMTUgKzU2LDE1IEBACiAKICAgICBmdW5jdGlvbiBydW5U
ZXN0cygpCiAgICAgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyICYm
IHdpbmRvdy5pbnRlcm5hbHMgJiYgaW50ZXJuYWxzLnRvdWNoTm9kZUFkanVzdGVkVG9CZXN0Q2xp
Y2thYmxlTm9kZSAmJiBpbnRlcm5hbHMuc2V0RGVsZWdhdGVzU2Nyb2xsaW5nKSB7CisgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzICYmIGludGVybmFscy50
b3VjaE5vZGVBZGp1c3RlZFRvQmVzdENsaWNrYWJsZU5vZGUgJiYgaW50ZXJuYWxzLnNldERlbGVn
YXRlc1Njcm9sbGluZykgewogICAgICAgICAgICAgZGVzY3JpcHRpb24oJ1Rlc3QgaWZyYW1lIHdp
dGggbWFpbiBmcmFtZSBzY3JvbGwgb2Zmc2V0IGNhc2Ugb2YgdGFwLXRvLXpvb20gbWVjaGFuaWNz
LicpOwogICAgICAgICAgICAgd2luZG93LnNjcm9sbEJ5KDAsNTAwKTsKICAgICAgICAgICAgIGlu
dGVybmFscy5zZXREZWxlZ2F0ZXNTY3JvbGxpbmcodHJ1ZSwgZG9jdW1lbnQpOwotICAgICAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAgICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKICAg
ICAgICAgICAgIHRlc3REaXJlY3RUb3VjaGVzKCk7CiAgICAgICAgICAgICBpc1N1Y2Nlc3NmdWxs
eVBhcnNlZCgpOwotICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgp
OworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgICAgIH0KICAgICB9
CiA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL3RyYW5zZm9ybXMvbm9fdHJhbnNmb3JtX2hp
dF90ZXN0aW5nLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy9ub190
cmFuc2Zvcm1faGl0X3Rlc3RpbmcuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVz
dHMvdHJhbnNmb3Jtcy9ub190cmFuc2Zvcm1faGl0X3Rlc3RpbmcuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMzIsOCArMzIsOCBAQAogICAgICAgICAgcmVzdWx0cy5pbm5lclRleHQgPSAiUGFzcy4i
OwogICAgICAgIH0KIAotICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0g
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiAgICAg
IH0KIAogICA8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL3RyYW5zZm9ybXMvMmQvY29tcG91
bmQtMmQtdHJhbnNmb3Jtcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYW5zZm9y
bXMvMmQvY29tcG91bmQtMmQtdHJhbnNmb3Jtcy5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBM
YXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL2NvbXBvdW5kLTJkLXRyYW5zZm9ybXMuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMjQsOSArMjQsOSBAQAogICA8L3N0eWxlPgogICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3RyYW5zZm9ybS10ZXN0LXV0aWxzLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQi
IGNoYXJzZXQ9InV0Zi04Ij48L3NjcmlwdD4KICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp
cHQiIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KSB7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgIHRlc3RSdW5uZXIu
d2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAogICAgIHZhciBnVGVzdHMgPSBbCkBAIC03MCw4ICs3
MCw4IEBACiAgICAgewogICAgICAgdGVzdFRyYW5zZm9ybXMoKTsKIAotICAgICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90
aWZ5RG9uZSgpOworICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiAgIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5
b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC9jc3NtYXRyaXgtMmQtem9vbS5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL3RyYW5zZm9ybXMvMmQvY3NzbWF0cml4LTJkLXpvb20uaHRtbAkocmV2
aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC9jc3NtYXRyaXgtMmQt
em9vbS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yOSw3ICsyOSw3IEBAIGJvZHkgewogCiBmdW5j
dGlvbiBydW5UZXN0KCkgewogCi0gICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7CiAKICAgICAgICAgdmFyIGlkMSA9ICJh
IjsKICAgICAgICAgdmFyIGlkMiA9ICJiIjsKSW5kZXg6IExheW91dFRlc3RzL3RyYW5zZm9ybXMv
MmQvc2V0LXRyYW5zZm9ybS1hbmQtdG9wLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
dHJhbnNmb3Jtcy8yZC9zZXQtdHJhbnNmb3JtLWFuZC10b3AuaHRtbAkocmV2aXNpb24gMTIwNTE0
KQorKysgTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC9zZXQtdHJhbnNmb3JtLWFuZC10b3AuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMzMsOSArMzMsOSBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewog
ICAgIGNoZWNrUG9zaXRpb24oImEiKTsKICAgICBjaGVja1Bvc2l0aW9uKCJiIik7CiAKLSAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICAgIHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0gICAgICAgIHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlci5ub3RpZnlEb25lKCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
ICAgIHdpbmRvdy50ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgd2luZG93LnRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOwogICAgIH0KIH0KIDwvc2NyaXB0PgpAQCAtNDYsOCArNDYsOCBA
QCBmdW5jdGlvbiBydW5UZXN0KCkgewogPGRpdiBjbGFzcz0iYm94IiBpZD0iYiI+QjwvZGl2Pgog
CiA8c2NyaXB0PgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAg
IHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICB3aW5kb3cudGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7CiAKICAgICBzZXRUaW1lb3V0KG1vdmUsIDEwKTsKICAgICBmdW5jdGlvbiBtb3ZlKCkgewpJ
bmRleDogTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC90cmFuc2Zvcm0tMmQuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL3RyYW5zZm9ybS0yZC5odG1sCShyZXZp
c2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzJkL3RyYW5zZm9ybS0yZC5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw5ICsyNCw5IEBACiAgIDwvc3R5bGU+CiAgIDxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvdHJhbnNmb3JtLXRlc3QtdXRpbHMuanMiIHR5cGU9InRleHQvamF2
YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PgogICA8c2NyaXB0IHR5cGU9InRleHQv
amF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPgotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKLSAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLndhaXRVbnRpbERvbmUoKTsKKyAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKKyAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogCiAgICAgdmFyIGdUZXN0cyA9IFsKQEAg
LTE0Myw4ICsxNDMsOCBAQAogICAgIHsKICAgICAgIHRlc3RUcmFuc2Zvcm1zKCk7CiAKLSAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLm5vdGlmeURvbmUoKTsKKyAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgfQogICA8L3NjcmlwdD4KIDwvaGVhZD4K
SW5kZXg6IExheW91dFRlc3RzL3RyYW5zZm9ybXMvMmQvdHJhbnNmb3JtLWFjY3VyYWN5Lmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC90cmFuc2Zvcm0tYWNjdXJh
Y3kuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8yZC90
cmFuc2Zvcm0tYWNjdXJhY3kuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjQsOSArMjQsOSBAQAog
ICA8L3N0eWxlPgogICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RyYW5zZm9ybS10ZXN0LXV0aWxz
LmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij48L3NjcmlwdD4KICAg
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICBpZiAo
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25l
KCk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKyAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwogICAgIH0KIAogICAg
IHZhciBnVGVzdHMgPSBbCkBAIC0zOSw4ICszOSw4IEBACiAgICAgewogICAgICAgdGVzdFRyYW5z
Zm9ybXMoKTsKIAotICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworICAgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICB9CiAgIDwv
c2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9nZW5lcmFs
LzNkdHJhbnNmb3JtLXZhbHVlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYW5z
Zm9ybXMvM2QvZ2VuZXJhbC8zZHRyYW5zZm9ybS12YWx1ZXMuaHRtbAkocmV2aXNpb24gMTIwNTE0
KQorKysgTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9nZW5lcmFsLzNkdHJhbnNmb3JtLXZhbHVl
cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw5ICsyMCw5IEBACiAgIDwvc3R5bGU+CiAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi8yZC9yZXNvdXJjZXMvdHJhbnNmb3JtLXRlc3QtdXRpbHMuanMiIHR5
cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0PgogICA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikgewotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICB0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKICAgICB9CiAKICAgICB2YXIgZ1Rlc3RzID0gWwpAQCAtNTEs
OCArNTEsOCBAQAogICAgIHsKICAgICAgIHRlc3RUcmFuc2Zvcm1zKCk7CiAKLSAgICAgIGlmICh3
aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAgICAgIGxheW91dFRlc3RDb250cm9sbGVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CiAgICAgfQogICA8L3NjcmlwdD4KIDwvaGVhZD4KSW5kZXg6
IExheW91dFRlc3RzL3RyYW5zZm9ybXMvM2QvZ2VuZXJhbC9jc3NtYXRyaXgtM2Qtem9vbS5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYW5zZm9ybXMvM2QvZ2VuZXJhbC9jc3NtYXRy
aXgtM2Qtem9vbS5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90cmFuc2Zv
cm1zLzNkL2dlbmVyYWwvY3NzbWF0cml4LTNkLXpvb20uaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MjksNyArMjksNyBAQCBib2R5IHsKIAogZnVuY3Rpb24gcnVuVGVzdCgpIHsKIAotICAgIGlmICgh
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5l
cikgewogCiAgICAgICAgIHZhciBpZDEgPSAiYSI7CiAgICAgICAgIHZhciBpZDIgPSAiYiI7Cklu
ZGV4OiBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzNkL2dlbmVyYWwvbWF0cml4LXdpdGgtem9vbS0z
ZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYW5zZm9ybXMvM2QvZ2VuZXJhbC9t
YXRyaXgtd2l0aC16b29tLTNkLmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3Rz
L3RyYW5zZm9ybXMvM2QvZ2VuZXJhbC9tYXRyaXgtd2l0aC16b29tLTNkLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTMxLDcgKzMxLDcgQEAgYm9keSB7CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj
cmlwdCI+CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKCF3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKKyAgICBpZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7CiAKICAgICAgICAg
dmFyIGlkMSA9ICJhIjsKICAgICAgICAgdmFyIGlkMiA9ICJiIjsKSW5kZXg6IExheW91dFRlc3Rz
L3RyYW5zZm9ybXMvM2QvZ2VuZXJhbC90cmFuc2Zvcm0tb3JpZ2luLXotY2hhbmdlLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9nZW5lcmFsL3RyYW5zZm9ybS1v
cmlnaW4tei1jaGFuZ2UuaHRtbAkocmV2aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvdHJh
bnNmb3Jtcy8zZC9nZW5lcmFsL3RyYW5zZm9ybS1vcmlnaW4tei1jaGFuZ2UuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMzcsMTcgKzM3LDE3IEBACiAgIH0KICAgPC9zdHlsZT4KICAgPHNjcmlwdCB0
eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij4KLSAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KHRydWUpOwotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KHRydWUpOworICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CiAgICAgfQogICAgIAog
ICAgIGZ1bmN0aW9uIGRvVGVzdCgpCiAgICAgewogICAgICAgd2luZG93LnNldFRpbWVvdXQoZnVu
Y3Rpb24oKSB7CiAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0YXJnZXQnKS5zdHls
ZS53ZWJraXRUcmFuc2Zvcm1PcmlnaW5aID0gJzEwMHB4JzsKLSAgICAgICAgaWYgKHdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKICAgICAgIH0sIDApOwogICAgIH0KIApJbmRleDogTGF5b3V0
VGVzdHMvdHJhbnNmb3Jtcy8zZC9oaXQtdGVzdGluZy9oaXQtcHJlc2VydmVzLTNkLmh0bWwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9oaXQtdGVzdGluZy9oaXQtcHJl
c2VydmVzLTNkLmh0bWwJKHJldmlzaW9uIDEyMDUxNCkKKysrIExheW91dFRlc3RzL3RyYW5zZm9y
bXMvM2QvaGl0LXRlc3RpbmcvaGl0LXByZXNlcnZlcy0zZC5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0yNyw4ICsyNyw4IEBACiAgICAgICB9CiAgIDwvc3R5bGU+CiAgIDxzY3JpcHQgdHlwZT0idGV4
dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
ICAgICBmdW5jdGlvbiBydW5UZXN0KCkKICAgICB7CiAgICAgICB2YXIgaGl0ID0gZG9jdW1lbnQu
ZWxlbWVudEZyb21Qb2ludCgxMDAsIDEwMCk7CkluZGV4OiBMYXlvdXRUZXN0cy90cmFuc2Zvcm1z
LzNkL3BvaW50LW1hcHBpbmcvM2QtcG9pbnQtbWFwcGluZy0yLmh0bWwKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9wb2ludC1tYXBwaW5nLzNkLXBvaW50LW1hcHBpbmct
Mi5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzNkL3Bv
aW50LW1hcHBpbmcvM2QtcG9pbnQtbWFwcGluZy0yLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTEz
LDcgKzEzLDcgQEAKICAgICAgIC8vIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdvdmVyZmxvdycp
LnNjcm9sbFRvcCA9IDYwOwogICAgICAgCiAgICAgICAvLyBJbiBub24tdGVzdCBtb2RlLCBzaG93
IHRoZSBtb3VzZSBjb29yZHMgZm9yIHRlc3RpbmcKLSAgICAgIGlmICghd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAgZG9j
dW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBtb3VzZW1vdmVkLCBmYWxz
ZSk7CiAKICAgICAgIGRpc3BhdGNoRXZlbnQoMTIwLCAxMjgsICdib3g0JywgMiwgMik7CkluZGV4
OiBMYXlvdXRUZXN0cy90cmFuc2Zvcm1zLzNkL3BvaW50LW1hcHBpbmcvM2QtcG9pbnQtbWFwcGlu
Zy0zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9wb2ludC1t
YXBwaW5nLzNkLXBvaW50LW1hcHBpbmctMy5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlv
dXRUZXN0cy90cmFuc2Zvcm1zLzNkL3BvaW50LW1hcHBpbmcvM2QtcG9pbnQtbWFwcGluZy0zLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBACiAgICAgZnVuY3Rpb24gdGVzdCgpCiAg
ICAgewogICAgICAgLy8gSW4gbm9uLXRlc3QgbW9kZSwgc2hvdyB0aGUgbW91c2UgY29vcmRzIGZv
ciB0ZXN0aW5nCi0gICAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
IGlmICghd2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgIGRvY3VtZW50LmJvZHkuYWRkRXZlbnRM
aXN0ZW5lcignbW91c2Vtb3ZlJywgbW91c2Vtb3ZlZCwgZmFsc2UpOwogCiAgICAgICBkaXNwYXRj
aEV2ZW50KDE1OCwgODMsICdjYXJkJywgMiwgMik7CkluZGV4OiBMYXlvdXRUZXN0cy90cmFuc2Zv
cm1zLzNkL3BvaW50LW1hcHBpbmcvM2QtcG9pbnQtbWFwcGluZy1kZWVwLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9wb2ludC1tYXBwaW5nLzNkLXBvaW50LW1h
cHBpbmctZGVlcC5odG1sCShyZXZpc2lvbiAxMjA1MTQpCisrKyBMYXlvdXRUZXN0cy90cmFuc2Zv
cm1zLzNkL3BvaW50LW1hcHBpbmcvM2QtcG9pbnQtbWFwcGluZy1kZWVwLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTEzLDcgKzEzLDcgQEAKICAgICAgIC8vIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdvdmVyZmxvdycpLnNjcm9sbFRvcCA9IDYwOwogICAgICAgCiAgICAgICAvLyBJbiBub24tdGVz
dCBtb2RlLCBzaG93IHRoZSBtb3VzZSBjb29yZHMgZm9yIHRlc3RpbmcKLSAgICAgIGlmICghd2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikK
ICAgICAgICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBtb3Vz
ZW1vdmVkLCBmYWxzZSk7CiAKICAgICAgIGRpc3BhdGNoRXZlbnQoNDUsIDQ1LCAnYm94MScsIDMs
IDMpOwpJbmRleDogTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9wb2ludC1tYXBwaW5nLzNkLXBv
aW50LW1hcHBpbmctb3JpZ2lucy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3RyYW5z
Zm9ybXMvM2QvcG9pbnQtbWFwcGluZy8zZC1wb2ludC1tYXBwaW5nLW9yaWdpbnMuaHRtbAkocmV2
aXNpb24gMTIwNTE0KQorKysgTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9wb2ludC1tYXBwaW5n
LzNkLXBvaW50LW1hcHBpbmctb3JpZ2lucy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw3ICsx
NCw3IEBACiAgICAgICAvLyBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnb3ZlcmZsb3cnKS5zY3Jv
bGxUb3AgPSA2MDsKICAgICAgIAogICAgICAgLy8gSW4gbm9uLXRlc3QgbW9kZSwgc2hvdyB0aGUg
bW91c2UgY29vcmRzIGZvciB0ZXN0aW5nCi0gICAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCiAgICAgICAgIGRvY3VtZW50
LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgbW91c2Vtb3ZlZCwgZmFsc2UpOwog
CiAgICAgICBkaXNwYXRjaEV2ZW50KDQ4LCA0OCwgJ2JveDEnLCA2LCA2KTsKSW5kZXg6IExheW91
dFRlc3RzL3RyYW5zZm9ybXMvM2QvcG9pbnQtbWFwcGluZy8zZC1wb2ludC1tYXBwaW5nLXByZXNl
cnZlLTNkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9wb2lu
dC1tYXBwaW5nLzNkLXBvaW50LW1hcHBpbmctcHJlc2VydmUtM2QuaHRtbAkocmV2aXNpb24gMTIw
NTE0KQorKysgTGF5b3V0VGVzdHMvdHJhbnNmb3Jtcy8zZC9wb2ludC1tYXBwaW5nLzNkLXBvaW50
LW1hcHBpbmctcHJlc2VydmUtM2QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAK
ICAgICBmdW5jdGlvbiB0ZXN0KCkKICAgICB7CiAgICAgICAvLyBJbiBub24tdGVzdCBtb2RlLCBz
aG93IHRoZSBtb3VzZSBjb29yZHMgZm9yIHRlc3RpbmcKLSAgICAgIGlmICghd2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKICAgICAgICAg
ZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZW1vdmUnLCBtb3VzZW1vdmVkLCBm
YWxzZSk7CiAKICAgICAgIGRpc3BhdGNoRXZlbnQoNDQsIDQ0LCAnYm94MScsIDIsIDIpOwo=
</data>
<flag name="review"
          id="155532"
          type_id="1"
          status="+"
          setter="koivisto"
    />
    <flag name="commit-queue"
          id="155533"
          type_id="3"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>