<?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>232288</bug_id>
          
          <creation_ts>2021-10-25 17:28:55 -0700</creation_ts>
          <short_desc>Don&apos;t run ImageDiff a second time to generate diff images</short_desc>
          <delta_ts>2021-10-26 08:05:21 -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>Tools / Tests</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>232225</dependson>
          <blocked>232294</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gsnedders</cc>
    
    <cc>jbedard</cc>
    
    <cc>mrobinson</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1808697</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-25 17:28:55 -0700</bug_when>
    <thetext>Don&apos;t run ImageDiff a second time to generate diff images</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808698</commentid>
    <comment_count>1</comment_count>
      <attachid>442441</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-25 17:32:09 -0700</bug_when>
    <thetext>Created attachment 442441
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808738</commentid>
    <comment_count>2</comment_count>
      <attachid>442456</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-25 19:51:16 -0700</bug_when>
    <thetext>Created attachment 442456
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808746</commentid>
    <comment_count>3</comment_count>
      <attachid>442459</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-10-25 20:21:34 -0700</bug_when>
    <thetext>Created attachment 442459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808793</commentid>
    <comment_count>4</comment_count>
      <attachid>442459</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-10-26 01:38:56 -0700</bug_when>
    <thetext>Comment on attachment 442459
Patch

This is great and hopefully it speeds up tests a bit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808850</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-26 08:04:20 -0700</bug_when>
    <thetext>Committed r284866 (243543@main): &lt;https://commits.webkit.org/243543@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442459.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808851</commentid>
    <comment_count>6</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-26 08:05:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/84663717&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442441</attachid>
            <date>2021-10-25 17:32:09 -0700</date>
            <delta_ts>2021-10-25 19:51:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232288-20211025173208.patch</filename>
            <type>text/plain</type>
            <size>18056</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0ODAwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmNkZjllNGIzMmU2ZjlhNDFjM2IyMGYyNzc5ZDJjNDVh
NjczMDE5Ny4uZDAyMzUyOTcxYmMxZDBjYTZmOGE1YTA1Y2MwOWNlYjFjZWJhZDJkMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDIxLTEwLTI1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIERvbid0IHJ1biBJbWFnZURpZmYgYSBzZWNvbmQgdGltZSB0byBnZW5lcmF0ZSBk
aWZmIGltYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMyMjg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ3VycmVudGx5LCBmb3IgYSByZWYgdGVzdCBmYWlsdXJlICh3aGljaCBpcyBhbHdheXMgcnVu
IHdpdGggdG9sZXJhbmNlPTApLCB3ZSBydW4gSW1hZ2VEaWZmIGEKKyAgICAgICAgc2Vjb25kIHRp
bWUgaW4gRmFpbHVyZVJlZnRlc3RNaXNtYXRjaC53cml0ZV9mYWlsdXJlKCkgd2l0aCB0aGUgaW50
ZW50IG9mIGdlbmVyYXRpbmcgYSBkaWZmCisgICAgICAgIGltYWdlIHdpdGggemVybyB0b2xlcmFu
Y2UuCisKKyAgICAgICAgRml4IGJ5IHN0b3JpbmcgdGhlIEltYWdlRGlmZlJlc3VsdCBpbiBGYWls
dXJlUmVmdGVzdE1pc21hdGNoIGFuZCBGYWlsdXJlSW1hZ2VIYXNoTWlzbWF0Y2ggc28KKyAgICAg
ICAgd2UgYWxyZWFkeSBoYXZlIHRoZSBkaWZmIGltYWdlLiBXZSBvbmx5IHJlZ2VuZXJhdGUgaXQg
d2hlbiB0aGUgZmlyc3QgZGlmZiB3YXMgcnVuIHdpdGggYQorICAgICAgICBub24temVybyB0b2xl
cmFuY2UgKG9ubHkgcmVsZXZhbnQgZm9yIHBpeGVsIHRlc3RzKS4gVG8gZmFjaWxpYXRlIHRoaXMs
IHN0b3JlIHRoZSB0b2xlcmFuY2UKKyAgICAgICAgdGhhdCB3YXMgdXNlZCBpbnNpZGUgSW1hZ2VE
aWZmUmVzdWx0IHRvby4KKworICAgICAgICAqIEltYWdlRGlmZi9JbWFnZURpZmYuY3BwOgorICAg
ICAgICAobWFpbik6IFNob3cgdG9sZXJhbmNlIGluIHZlcmJvc2UgbG9nZ2luZy4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9y
dW5uZXIucHk6CisgICAgICAgIChTaW5nbGVUZXN0UnVubmVyLl9jb21wYXJlX2ltYWdlKToKKyAg
ICAgICAgKFNpbmdsZVRlc3RSdW5uZXIuX2NvbXBhcmVfb3V0cHV0X3dpdGhfcmVmZXJlbmNlKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy90ZXN0
X3Jlc3VsdF93cml0ZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0UmVzdWx0V3JpdGVyVGVz
dC50ZXN0X3JlZnRlc3RfZGlmZl9pbWFnZS5JbWFnZURpZmZUZXN0UG9ydC5kaWZmX2ltYWdlKToK
KyAgICAgICAgKFRlc3RSZXN1bHRXcml0ZXJUZXN0KToKKyAgICAgICAgKFRlc3RSZXN1bHRXcml0
ZXJUZXN0LnRlc3RfcmVmdGVzdF9kaWZmX2ltYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9mYWlsdXJlcy5weToKKyAgICAgICAgKEZhaWx1
cmVJbWFnZUhhc2hNaXNtYXRjaC5fX2luaXRfXyk6CisgICAgICAgIChGYWlsdXJlUmVmdGVzdE1p
c21hdGNoLl9faW5pdF9fKToKKyAgICAgICAgKEZhaWx1cmVSZWZ0ZXN0TWlzbWF0Y2gud3JpdGVf
ZmFpbHVyZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxz
L3Rlc3RfcnVuX3Jlc3VsdHMucHk6CisgICAgICAgIChfaW50ZXJwcmV0X3Rlc3RfZmFpbHVyZXMp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1
bl9yZXN1bHRzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoSW50ZXJwcmV0VGVzdEZhaWx1cmVzVGVz
dC50ZXN0X2ludGVycHJldF90ZXN0X2ZhaWx1cmVzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weToKKyAg
ICAgICAgKFJ1blRlc3QudGVzdF90b2xlcmFuY2UuSW1hZ2VEaWZmVGVzdFBvcnQuZGlmZl9pbWFn
ZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2ltYWdlX2RpZmYucHk6CisgICAg
ICAgIChJbWFnZURpZmZSZXN1bHQuX19pbml0X18pOgorICAgICAgICAoSW1hZ2VEaWZmUmVzdWx0
Ll9fcmVwcl9fKToKKyAgICAgICAgKEltYWdlRGlmZmVyLl9yZWFkKToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvcG9ydF90ZXN0Y2FzZS5weToKKyAgICAgICAgKFBvcnRUZXN0Q2Fz
ZS50ZXN0X2RpZmZfaW1hZ2UpOgorCiAyMDIxLTEwLTI1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIHdlYmtpdHB5OiBBZGQgYW4gZXhwbGljaXQgSW1h
Z2VEaWZmUmVzdWx0LnBhc3NlZCByYXRoZXIgdGhhbiByZWx5aW5nIG9uIGRpZmZfaW1hZ2UgYmVp
bmcgbm9uLU5vbmUKZGlmZiAtLWdpdCBhL1Rvb2xzL0ltYWdlRGlmZi9JbWFnZURpZmYuY3BwIGIv
VG9vbHMvSW1hZ2VEaWZmL0ltYWdlRGlmZi5jcHAKaW5kZXggM2UwNzAwMjZlNWZkMDdiYjU3Mzli
ODBlYzNlMmUzNzdjY2Y3YWZjZC4uNzRhMjA1NjQxOTU3ZDNmYmIyYjJjZTgwN2JhOWMwZDM5ZWJh
ZjEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvSW1hZ2VEaWZmL0ltYWdlRGlmZi5jcHAKKysrIGIvVG9v
bHMvSW1hZ2VEaWZmL0ltYWdlRGlmZi5jcHAKQEAgLTIxNyw3ICsyMTcsNyBAQCBpbnQgbWFpbihp
bnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogCiAgICAgICAgIGlmIChhY3R1YWxJbWFnZSAm
JiBiYXNlbGluZUltYWdlKSB7CiAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAg
ICAgICBmcHJpbnRmKHN0ZGVyciwgIkltYWdlRGlmZjogcHJvY2Vzc2luZyBpbWFnZXNcbiIpOwor
ICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiSW1hZ2VEaWZmOiBwcm9jZXNzaW5nIGlt
YWdlcyB3aXRoIHRvbGVyYW5jZSAlMDEuMmYlJVxuIiwgdG9sZXJhbmNlKTsKICAgICAgICAgICAg
IGF1dG8gcmVzdWx0ID0gcHJvY2Vzc0ltYWdlcyhzdGQ6OmV4Y2hhbmdlKGFjdHVhbEltYWdlLCB7
IH0pLCBzdGQ6OmV4Y2hhbmdlKGJhc2VsaW5lSW1hZ2UsIHsgfSksIHRvbGVyYW5jZSwgcHJpbnRE
aWZmZXJlbmNlKTsKICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gRVhJVF9TVUNDRVNTKQogICAg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVz
dF9ydW5uZXIucHkKaW5kZXggNDM3OGI0YzFlMjg3ZGI1MTg5MzVjMzE4MWE4M2QyN2JlMjUzYWYx
Zi4uMzEwZTQyYmI3ZDg4MTk4MDIzNDY2ZGEzNjRmZDM1NTNjZTU1MDEzNyAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rl
c3RfcnVubmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2Nv
bnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weQpAQCAtMjk1LDcgKzI5NSw3IEBAIGNsYXNz
IFNpbmdsZVRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgZWxpZiBkcml2ZXJfb3V0cHV0Lmlt
YWdlX2hhc2ggIT0gZXhwZWN0ZWRfZHJpdmVyX291dHB1dC5pbWFnZV9oYXNoOgogICAgICAgICAg
ICAgZGlmZl9yZXN1bHQgPSBzZWxmLl9wb3J0LmRpZmZfaW1hZ2UoZXhwZWN0ZWRfZHJpdmVyX291
dHB1dC5pbWFnZSwgZHJpdmVyX291dHB1dC5pbWFnZSkKICAgICAgICAgICAgIGlmIG5vdCBkaWZm
X3Jlc3VsdC5wYXNzZWQ6Ci0gICAgICAgICAgICAgICAgZmFpbHVyZXMuYXBwZW5kKHRlc3RfZmFp
bHVyZXMuRmFpbHVyZUltYWdlSGFzaE1pc21hdGNoKGRpZmZfcmVzdWx0LmRpZmZfcGVyY2VudCkp
CisgICAgICAgICAgICAgICAgZmFpbHVyZXMuYXBwZW5kKHRlc3RfZmFpbHVyZXMuRmFpbHVyZUlt
YWdlSGFzaE1pc21hdGNoKGRpZmZfcmVzdWx0KSkKICAgICAgICAgICAgICAgICBpZiBkaWZmX3Jl
c3VsdC5lcnJvcl9zdHJpbmc6CiAgICAgICAgICAgICAgICAgICAgIF9sb2cud2FybmluZygnICAl
cyA6ICVzJyAlIChzZWxmLl90ZXN0X25hbWUsIGRpZmZfcmVzdWx0LmVycm9yX3N0cmluZykpCiAg
ICAgICAgICAgICAgICAgICAgIGRyaXZlcl9vdXRwdXQuZXJyb3IgPSAoZHJpdmVyX291dHB1dC5l
cnJvciBvciAnJykgKyBkaWZmX3Jlc3VsdC5lcnJvcl9zdHJpbmcKQEAgLTM1Niw3ICszNTYsNyBA
QCBjbGFzcyBTaW5nbGVUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAgICAgICAjIEltYWdlRGlm
ZiBoYXMgYSBoYXJkIGNvZGVkIGNvbG9yIGRpc3RhbmNlIHRocmVzaG9sZCBldmVuIHRob3VnaCB0
b2xlcmFuY2U9MCBpcyBzcGVjaWZpZWQuCiAgICAgICAgICAgICBkaWZmX3Jlc3VsdCA9IHNlbGYu
X3BvcnQuZGlmZl9pbWFnZShyZWZlcmVuY2VfZHJpdmVyX291dHB1dC5pbWFnZSwgYWN0dWFsX2Ry
aXZlcl9vdXRwdXQuaW1hZ2UsIHRvbGVyYW5jZT0wKQogICAgICAgICAgICAgaWYgbm90IGRpZmZf
cmVzdWx0LnBhc3NlZDoKLSAgICAgICAgICAgICAgICBmYWlsdXJlcy5hcHBlbmQodGVzdF9mYWls
dXJlcy5GYWlsdXJlUmVmdGVzdE1pc21hdGNoKHJlZmVyZW5jZV9maWxlbmFtZSkpCisgICAgICAg
ICAgICAgICAgZmFpbHVyZXMuYXBwZW5kKHRlc3RfZmFpbHVyZXMuRmFpbHVyZVJlZnRlc3RNaXNt
YXRjaChyZWZlcmVuY2VfZmlsZW5hbWUsIGRpZmZfcmVzdWx0KSkKICAgICAgICAgICAgICAgICBp
ZiBkaWZmX3Jlc3VsdC5lcnJvcl9zdHJpbmc6CiAgICAgICAgICAgICAgICAgICAgIF9sb2cud2Fy
bmluZygnICAlcyA6ICVzJyAlIChzZWxmLl90ZXN0X25hbWUsIGRpZmZfcmVzdWx0LmVycm9yX3N0
cmluZykpCiAgICAgICAgICAgICAgICAgICAgIGFjdHVhbF9kcml2ZXJfb3V0cHV0LmVycm9yID0g
KGFjdHVhbF9kcml2ZXJfb3V0cHV0LmVycm9yIG9yICcnKSArIGRpZmZfcmVzdWx0LmVycm9yX3N0
cmluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvdGVzdF9yZXN1bHRfd3JpdGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvdGVzdF9yZXN1bHRfd3JpdGVyX3VuaXR0
ZXN0LnB5CmluZGV4IDhiMmFlMjM5NTY2N2E4YWRiZTMyNWM1Njc4Mjg0MzhhMTI0ZDMyNDYuLmQ5
MDkyMDhmOGNlZjlhYWQ0NTg3NmJhOWU1NDc5MmE1NGMwMzMyYTYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3Rlc3RfcmVzdWx0X3dy
aXRlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9jb250cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXJfdW5pdHRlc3QucHkKQEAgLTQwLDkgKzQw
LDkgQEAgY2xhc3MgVGVzdFJlc3VsdFdyaXRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICB1c2VkX3RvbGVyYW5jZV92YWx1ZXMgPSBbXQogCiAgICAgICAgIGNsYXNzIEltYWdlRGlm
ZlRlc3RQb3J0KFRlc3RQb3J0KToKLSAgICAgICAgICAgIGRlZiBkaWZmX2ltYWdlKHNlbGYsIGV4
cGVjdGVkX2NvbnRlbnRzLCBhY3R1YWxfY29udGVudHMsIHRvbGVyYW5jZT1Ob25lKToKKyAgICAg
ICAgICAgIGRlZiBkaWZmX2ltYWdlKHNlbGYsIGV4cGVjdGVkX2NvbnRlbnRzLCBhY3R1YWxfY29u
dGVudHMsIHRvbGVyYW5jZSk6CiAgICAgICAgICAgICAgICAgdXNlZF90b2xlcmFuY2VfdmFsdWVz
LmFwcGVuZCh0b2xlcmFuY2UpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEltYWdlRGlmZlJlc3Vs
dChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9Yicn
LCBkaWZmZXJlbmNlPTEsIHRvbGVyYW5jZT10b2xlcmFuY2UpCiAKICAgICAgICAgaG9zdCA9IE1v
Y2tIb3N0KCkKICAgICAgICAgcG9ydCA9IEltYWdlRGlmZlRlc3RQb3J0KGhvc3QpCkBAIC01MCw3
ICs1MCw3IEBAIGNsYXNzIFRlc3RSZXN1bHRXcml0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICAgICAgdGVzdF9yZWZlcmVuY2VfZmlsZSA9IGhvc3QuZmlsZXN5c3RlbS5qb2luKHBvcnQu
bGF5b3V0X3Rlc3RzX2RpcigpLCAnZmFpbHVyZXMvdW5leHBlY3RlZC9yZWZ0ZXN0LWV4cGVjdGVk
Lmh0bWwnKQogICAgICAgICBkcml2ZXJfb3V0cHV0MSA9IERyaXZlck91dHB1dCgndGV4dDEnLCAn
aW1hZ2UxJywgJ2ltYWdlaGFzaDEnLCAnYXVkaW8xJykKICAgICAgICAgZHJpdmVyX291dHB1dDIg
PSBEcml2ZXJPdXRwdXQoJ3RleHQyJywgJ2ltYWdlMicsICdpbWFnZWhhc2gyJywgJ2F1ZGlvMicp
Ci0gICAgICAgIGZhaWx1cmVzID0gW3Rlc3RfZmFpbHVyZXMuRmFpbHVyZVJlZnRlc3RNaXNtYXRj
aCh0ZXN0X3JlZmVyZW5jZV9maWxlKV0KKyAgICAgICAgZmFpbHVyZXMgPSBbdGVzdF9mYWlsdXJl
cy5GYWlsdXJlUmVmdGVzdE1pc21hdGNoKHRlc3RfcmVmZXJlbmNlX2ZpbGUsIEltYWdlRGlmZlJl
c3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEsIHRvbGVyYW5j
ZT0xKSldCiAgICAgICAgIHRlc3RfcmVzdWx0X3dyaXRlci53cml0ZV90ZXN0X3Jlc3VsdChob3N0
LmZpbGVzeXN0ZW0sIEltYWdlRGlmZlRlc3RQb3J0KGhvc3QpLCBwb3J0LnJlc3VsdHNfZGlyZWN0
b3J5KCksIHRlc3RfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRyaXZlcl9vdXRwdXQxLCBkcml2ZXJfb3V0cHV0MiwgZmFpbHVyZXMpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoWzBdLCB1c2VkX3RvbGVyYW5jZV92YWx1ZXMpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9mYWlsdXJl
cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2Zh
aWx1cmVzLnB5CmluZGV4IDRmNjExZDAxMDg3MTBhM2ZmMGM1Yzg0MmQ2MzI1YWM3NDY3M2ZjOTQu
LmVmNTdmOWIyMzM1MWY4YzdhNzkzZTNkZmQyYWZlNTZhNjgyNzQ3NWEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2ZhaWx1cmVzLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2Zh
aWx1cmVzLnB5CkBAIC0yMDEsOSArMjAxLDkgQEAgY2xhc3MgRmFpbHVyZU1pc3NpbmdJbWFnZShU
ZXN0RmFpbHVyZSk6CiAKIAogY2xhc3MgRmFpbHVyZUltYWdlSGFzaE1pc21hdGNoKFRlc3RGYWls
dXJlKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZGlmZl9wZXJjZW50PTApOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBpbWFnZV9kaWZmX3Jlc3VsdD1Ob25lKToKICAgICAgICAgc3VwZXIoRmFp
bHVyZUltYWdlSGFzaE1pc21hdGNoLCBzZWxmKS5fX2luaXRfXygpCi0gICAgICAgIHNlbGYuZGlm
Zl9wZXJjZW50ID0gZGlmZl9wZXJjZW50CisgICAgICAgIHNlbGYuaW1hZ2VfZGlmZl9yZXN1bHQg
PSBpbWFnZV9kaWZmX3Jlc3VsdAogCiAgICAgZGVmIG1lc3NhZ2Uoc2VsZik6CiAgICAgICAgIHJl
dHVybiAiaW1hZ2UgZGlmZiIKQEAgLTIxOSwyNSArMjE5LDI2IEBAIGNsYXNzIEZhaWx1cmVJbWFn
ZUhhc2hJbmNvcnJlY3QoVGVzdEZhaWx1cmUpOgogCiAKIGNsYXNzIEZhaWx1cmVSZWZ0ZXN0TWlz
bWF0Y2goVGVzdEZhaWx1cmUpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZWZlcmVuY2VfZmls
ZW5hbWU9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlZmVyZW5jZV9maWxlbmFtZT1O
b25lLCBpbWFnZV9kaWZmX3Jlc3VsdD1Ob25lKToKICAgICAgICAgc3VwZXIoRmFpbHVyZVJlZnRl
c3RNaXNtYXRjaCwgc2VsZikuX19pbml0X18oKQogICAgICAgICBzZWxmLnJlZmVyZW5jZV9maWxl
bmFtZSA9IHJlZmVyZW5jZV9maWxlbmFtZQotICAgICAgICBzZWxmLmRpZmZfcGVyY2VudCA9IE5v
bmUKKyAgICAgICAgc2VsZi5pbWFnZV9kaWZmX3Jlc3VsdCA9IGltYWdlX2RpZmZfcmVzdWx0CiAK
ICAgICBkZWYgbWVzc2FnZShzZWxmKToKICAgICAgICAgcmV0dXJuICJyZWZlcmVuY2UgbWlzbWF0
Y2giCiAKICAgICBkZWYgd3JpdGVfZmFpbHVyZShzZWxmLCB3cml0ZXIsIGRyaXZlcl9vdXRwdXQs
IGV4cGVjdGVkX2RyaXZlcl9vdXRwdXQsIHBvcnQpOgogICAgICAgICB3cml0ZXIud3JpdGVfaW1h
Z2VfZmlsZXMoZHJpdmVyX291dHB1dC5pbWFnZSwgZXhwZWN0ZWRfZHJpdmVyX291dHB1dC5pbWFn
ZSkKLSAgICAgICAgIyBGSVhNRTogVGhpcyB3b3JrIHNob3VsZCBiZSBkb25lIGVhcmxpZXIgaW4g
dGhlIHBpcGVsaW5lIChlLmcuLCB3aGVuIHdlIGNvbXBhcmUgaW1hZ2VzIGZvciBub24tcmVmIHRl
c3RzKS4KLSAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIGFsd2F5cyBoYXZlIDIgaW1hZ2VzIGhl
cmUuCi0gICAgICAgIGlmIGRyaXZlcl9vdXRwdXQuaW1hZ2UgYW5kIGV4cGVjdGVkX2RyaXZlcl9v
dXRwdXQuaW1hZ2U6Ci0gICAgICAgICAgICBkaWZmX3Jlc3VsdCA9IHBvcnQuZGlmZl9pbWFnZShl
eHBlY3RlZF9kcml2ZXJfb3V0cHV0LmltYWdlLCBkcml2ZXJfb3V0cHV0LmltYWdlLCB0b2xlcmFu
Y2U9MCkKLSAgICAgICAgICAgIGlmIGRpZmZfcmVzdWx0LmRpZmZfaW1hZ2U6Ci0gICAgICAgICAg
ICAgICAgd3JpdGVyLndyaXRlX2ltYWdlX2RpZmZfZmlsZXMoZGlmZl9yZXN1bHQuZGlmZl9pbWFn
ZSkKLSAgICAgICAgICAgICAgICBzZWxmLmRpZmZfcGVyY2VudCA9IGRpZmZfcmVzdWx0LmRpZmZf
cGVyY2VudAorICAgICAgICBpZiBzZWxmLmltYWdlX2RpZmZfcmVzdWx0OgorICAgICAgICAgICAg
IyBJZiB0aGUgcmVmIHRlc3Qgd2FzIHJ1biB3aXRoIG5vbi16ZXJvIHRvbGVyYW5jZSwgZ2VuZXJh
dGUgdGhlIGltYWdlIGRpZmYgYWdhaW4gd2l0aCB6ZXJvIHRvbGVyYW5jZS4KKyAgICAgICAgICAg
IGlmIHNlbGYuaW1hZ2VfZGlmZl9yZXN1bHQudG9sZXJhbmNlICE9IDA6CisgICAgICAgICAgICAg
ICAgZGlmZl9pbWFnZSA9IHBvcnQuZGlmZl9pbWFnZShleHBlY3RlZF9kcml2ZXJfb3V0cHV0Lmlt
YWdlLCBkcml2ZXJfb3V0cHV0LmltYWdlLCB0b2xlcmFuY2U9MCkuZGlmZl9pbWFnZQogICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBfbG9nLndhcm4oJ3JlZiB0ZXN0IG1pc21hdGNo
IGRpZCBub3QgcHJvZHVjZSBhbiBpbWFnZSBkaWZmLicpCisgICAgICAgICAgICAgICAgZGlmZl9p
bWFnZSA9IHNlbGYuaW1hZ2VfZGlmZl9yZXN1bHQuZGlmZl9pbWFnZQorCisgICAgICAgICAgICB3
cml0ZXIud3JpdGVfaW1hZ2VfZGlmZl9maWxlcyhkaWZmX2ltYWdlKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgX2xvZy53YXJuKCdyZWYgdGVzdCBtaXNtYXRjaCBkaWQgbm90IHByb2R1Y2Ug
YW4gaW1hZ2UgZGlmZi4nKQogICAgICAgICB3cml0ZXIud3JpdGVfcmVmdGVzdChzZWxmLnJlZmVy
ZW5jZV9maWxlbmFtZSkKIAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzLnB5CmluZGV4IGQ4YTg5
ZmQyMzcwMzZjNGMyM2U3MzFiYmI5ODNhZWI5N2YzNjJiMWYuLjJhOTM4OWNhNWFhZTM0NmNkNmM5
NGNkMWU0MDdkYWQ5MmZmNGE1ZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzLnB5CkBAIC0y
MTMsNyArMjEzLDcgQEAgZGVmIF9pbnRlcnByZXRfdGVzdF9mYWlsdXJlcyhmYWlsdXJlcyk6CiAg
ICAgaWYgJ2ltYWdlX2RpZmZfcGVyY2VudCcgbm90IGluIHRlc3RfZGljdDoKICAgICAgICAgZm9y
IGZhaWx1cmUgaW4gZmFpbHVyZXM6CiAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGZhaWx1cmUs
IHRlc3RfZmFpbHVyZXMuRmFpbHVyZUltYWdlSGFzaE1pc21hdGNoKSBvciBpc2luc3RhbmNlKGZh
aWx1cmUsIHRlc3RfZmFpbHVyZXMuRmFpbHVyZVJlZnRlc3RNaXNtYXRjaCk6Ci0gICAgICAgICAg
ICAgICAgdGVzdF9kaWN0WydpbWFnZV9kaWZmX3BlcmNlbnQnXSA9IGZhaWx1cmUuZGlmZl9wZXJj
ZW50CisgICAgICAgICAgICAgICAgdGVzdF9kaWN0WydpbWFnZV9kaWZmX3BlcmNlbnQnXSA9IGZh
aWx1cmUuaW1hZ2VfZGlmZl9yZXN1bHQuZGlmZl9wZXJjZW50CiAKICAgICByZXR1cm4gdGVzdF9k
aWN0CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21v
ZGVscy90ZXN0X3J1bl9yZXN1bHRzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHNfdW5pdHRlc3QucHkKaW5kZXgg
MDEwNTY2MDEyZGIyMGQ3ZmFmYWE4M2Q0YjEwM2FjZGVhMjA2MWFlYi4uZGIyNDE2MTNjODNiYjNi
ZmZkNjgzYTVmYjliZjc5ODIyMjgxMTY0NSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHNfdW5pdHRlc3QucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jl
c3VsdHNfdW5pdHRlc3QucHkKQEAgLTMzLDYgKzMzLDcgQEAgZnJvbSB3ZWJraXRweS5sYXlvdXRf
dGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwogZnJvbSB3ZWJraXRweS5sYXlv
dXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2ZhaWx1cmVzCiBmcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfcmVzdWx0cwogZnJvbSB3ZWJraXRweS5sYXlvdXRf
dGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X3J1bl9yZXN1bHRzCitmcm9tIHdlYmtpdHB5LnBvcnQu
aW1hZ2VfZGlmZiBpbXBvcnQgSW1hZ2VEaWZmUmVzdWx0CiBmcm9tIHdlYmtpdHB5LnRvb2wubW9j
a3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zCiAKIGZyb20gd2Via2l0Y29yZXB5IGltcG9ydCBPdXRw
dXRDYXB0dXJlCkBAIC0xMjQsMTAgKzEyNSwxMCBAQCBjbGFzcyBJbnRlcnByZXRUZXN0RmFpbHVy
ZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5wb3J0ID0gaG9zdC5wb3J0
X2ZhY3RvcnkuZ2V0KHBvcnRfbmFtZT0ndGVzdCcpCiAKICAgICBkZWYgdGVzdF9pbnRlcnByZXRf
dGVzdF9mYWlsdXJlcyhzZWxmKToKLSAgICAgICAgdGVzdF9kaWN0ID0gdGVzdF9ydW5fcmVzdWx0
cy5faW50ZXJwcmV0X3Rlc3RfZmFpbHVyZXMoW3Rlc3RfZmFpbHVyZXMuRmFpbHVyZUltYWdlSGFz
aE1pc21hdGNoKGRpZmZfcGVyY2VudD0wLjQyKV0pCisgICAgICAgIHRlc3RfZGljdCA9IHRlc3Rf
cnVuX3Jlc3VsdHMuX2ludGVycHJldF90ZXN0X2ZhaWx1cmVzKFt0ZXN0X2ZhaWx1cmVzLkZhaWx1
cmVJbWFnZUhhc2hNaXNtYXRjaChJbWFnZURpZmZSZXN1bHQocGFzc2VkPUZhbHNlLCBkaWZmX2lt
YWdlPWInJywgZGlmZmVyZW5jZT0wLjQyKSldKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRl
c3RfZGljdFsnaW1hZ2VfZGlmZl9wZXJjZW50J10sIDAuNDIpCiAKLSAgICAgICAgdGVzdF9kaWN0
ID0gdGVzdF9ydW5fcmVzdWx0cy5faW50ZXJwcmV0X3Rlc3RfZmFpbHVyZXMoW3Rlc3RfZmFpbHVy
ZXMuRmFpbHVyZVJlZnRlc3RNaXNtYXRjaChzZWxmLnBvcnQuYWJzcGF0aF9mb3JfdGVzdCgnZm9v
L3JlZnRlc3QtZXhwZWN0ZWQuaHRtbCcpKV0pCisgICAgICAgIHRlc3RfZGljdCA9IHRlc3RfcnVu
X3Jlc3VsdHMuX2ludGVycHJldF90ZXN0X2ZhaWx1cmVzKFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVS
ZWZ0ZXN0TWlzbWF0Y2goc2VsZi5wb3J0LmFic3BhdGhfZm9yX3Rlc3QoJ2Zvby9yZWZ0ZXN0LWV4
cGVjdGVkLmh0bWwnKSwgSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1GYWxzZSwgZGlmZl9pbWFnZT1i
JycsIGRpZmZlcmVuY2U9MTAwLjApKV0pCiAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2ltYWdlX2Rp
ZmZfcGVyY2VudCcsIHRlc3RfZGljdCkKIAogICAgICAgICB0ZXN0X2RpY3QgPSB0ZXN0X3J1bl9y
ZXN1bHRzLl9pbnRlcnByZXRfdGVzdF9mYWlsdXJlcyhbdGVzdF9mYWlsdXJlcy5GYWlsdXJlUmVm
dGVzdE1pc21hdGNoRGlkTm90T2NjdXIoc2VsZi5wb3J0LmFic3BhdGhfZm9yX3Rlc3QoJ2Zvby9y
ZWZ0ZXN0LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwnKSldKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rl
c3RzX2ludGVncmF0aW9udGVzdC5weQppbmRleCBjODcwZDRlNTBkNWZjY2E4YTE5NzBiMjZkY2Q2
YWU3NGY2NzYxODExLi5hNWY4NTRkOTNjOTkzYTQyZTc1ODc1ZGE4N2VjMjQ3YmNmNTlmMTI0IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0
X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQpAQCAtNzUyLDcg
Kzc1Miw3IEBAIGNsYXNzIFJ1blRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdN
aXhpbik6CiAgICAgICAgIGNsYXNzIEltYWdlRGlmZlRlc3RQb3J0KHRlc3QuVGVzdFBvcnQpOgog
ICAgICAgICAgICAgZGVmIGRpZmZfaW1hZ2Uoc2VsZiwgZXhwZWN0ZWRfY29udGVudHMsIGFjdHVh
bF9jb250ZW50cywgdG9sZXJhbmNlPU5vbmUpOgogICAgICAgICAgICAgICAgIHNlbGYudG9sZXJh
bmNlX3VzZWRfZm9yX2RpZmZfaW1hZ2UgPSBzZWxmLl9vcHRpb25zLnRvbGVyYW5jZQotICAgICAg
ICAgICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1bHQocGFzc2VkPUZhbHNlLCBkaWZmX2ltYWdl
PWInJywgZGlmZmVyZW5jZT0xKQorICAgICAgICAgICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1
bHQocGFzc2VkPUZhbHNlLCBkaWZmX2ltYWdlPWInJywgZGlmZmVyZW5jZT0xLCB0b2xlcmFuY2U9
c2VsZi5fb3B0aW9ucy50b2xlcmFuY2Ugb3IgMCkKIAogICAgICAgICBkZWYgZ2V0X3BvcnRfZm9y
X3J1bihhcmdzKToKICAgICAgICAgICAgIG9wdGlvbnMsIHBhcnNlZF9hcmdzID0gcnVuX3dlYmtp
dF90ZXN0cy5wYXJzZV9hcmdzKGFyZ3MpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvaW1hZ2VfZGlmZi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pbWFn
ZV9kaWZmLnB5CmluZGV4IGNiOGIzZjA0ZWEzN2Y5ZjlmOTJjMGUzMDQ1Mzc0ODYxZmE3OGFmYjUu
LmFmYWMwNDg2ZGZmN2I5YWEyYjcyNmE2NjQ3MWJhYzJhMzFmYTljNmUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pbWFnZV9kaWZmLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9pbWFnZV9kaWZmLnB5CkBAIC00MCwxMCArNDAsMTEgQEAgX2xvZyA9
IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAKIGNsYXNzIEltYWdlRGlmZlJlc3VsdChv
YmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXNzZWQsIGRpZmZfaW1hZ2UsIGRpZmZl
cmVuY2UsIGVycm9yX3N0cmluZz1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGFzc2Vk
LCBkaWZmX2ltYWdlLCBkaWZmZXJlbmNlLCB0b2xlcmFuY2U9MCwgZXJyb3Jfc3RyaW5nPU5vbmUp
OgogICAgICAgICBzZWxmLnBhc3NlZCA9IHBhc3NlZAogICAgICAgICBzZWxmLmRpZmZfaW1hZ2Ug
PSBkaWZmX2ltYWdlCiAgICAgICAgIHNlbGYuZGlmZl9wZXJjZW50ID0gZGlmZmVyZW5jZQorICAg
ICAgICBzZWxmLnRvbGVyYW5jZSA9IHRvbGVyYW5jZQogICAgICAgICBzZWxmLmVycm9yX3N0cmlu
ZyA9IGVycm9yX3N0cmluZwogCiAgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CkBAIC01OSw3
ICs2MCw3IEBAIGNsYXNzIEltYWdlRGlmZlJlc3VsdChvYmplY3QpOgogICAgICAgICByZXR1cm4g
bm90IHNlbGYuX19lcV9fKG90aGVyKQogCiAgICAgZGVmIF9fcmVwcl9fKHNlbGYpOgotICAgICAg
ICByZXR1cm4gJ0ltYWdlRGlmZlJlc3VsdChQYXNzZWQge30ge30ge30ge30pJy5mb3JtYXQoc2Vs
Zi5wYXNzZWQsIHNlbGYuZGlmZl9pbWFnZSwgc2VsZi5kaWZmX3BlcmNlbnQsIHNlbGYuZXJyb3Jf
c3RyaW5nKQorICAgICAgICByZXR1cm4gJ0ltYWdlRGlmZlJlc3VsdChQYXNzZWQge30ge30gZGlm
ZiB7fSB0b2xlcmFuY2Uge30ge30pJy5mb3JtYXQoc2VsZi5wYXNzZWQsIHNlbGYuZGlmZl9pbWFn
ZSwgc2VsZi5kaWZmX3BlcmNlbnQsIHNlbGYudG9sZXJhbmNlLCBzZWxmLmVycm9yX3N0cmluZykK
IAogY2xhc3MgSW1hZ2VEaWZmZXIob2JqZWN0KToKICAgICBkZWYgX19pbml0X18oc2VsZiwgcG9y
dCk6CkBAIC0xMzMsNyArMTM0LDcgQEAgY2xhc3MgSW1hZ2VEaWZmZXIob2JqZWN0KToKICAgICAg
ICAgICAgICAgICByZXR1cm4gSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1UcnVlLCBkaWZmX2ltYWdl
PU5vbmUsIGRpZmZlcmVuY2U9MCkKICAgICAgICAgICAgIGRpZmZfcGVyY2VudCA9IGZsb2F0KHN0
cmluZ191dGlscy5kZWNvZGUobS5ncm91cCgxKSwgdGFyZ2V0X3R5cGU9c3RyKSkKIAotICAgICAg
ICByZXR1cm4gSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1GYWxzZSwgZGlmZl9pbWFnZT1vdXRwdXRf
aW1hZ2UsIGRpZmZlcmVuY2U9ZGlmZl9wZXJjZW50LCBlcnJvcl9zdHJpbmc9ZXJyX3N0ciBvciBO
b25lKQorICAgICAgICByZXR1cm4gSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1GYWxzZSwgZGlmZl9p
bWFnZT1vdXRwdXRfaW1hZ2UsIGRpZmZlcmVuY2U9ZGlmZl9wZXJjZW50LCB0b2xlcmFuY2U9c2Vs
Zi5fdG9sZXJhbmNlLCBlcnJvcl9zdHJpbmc9ZXJyX3N0ciBvciBOb25lKQogCiAgICAgZGVmIHN0
b3Aoc2VsZik6CiAgICAgICAgIGlmIHNlbGYuX3Byb2Nlc3M6CmRpZmYgLS1naXQgYS9Ub29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvcG9ydF90ZXN0Y2FzZS5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CmluZGV4IGJmMzFmYTY5OTBlMjI1OGU3ZTdkOTRm
Yjk3ZDAxY2Y5NTk1OWU5ZTMuLjEyODYyN2NhYTU0MmY4N2FiNzM4MTVjNmYxOGQ1MTk0ZjBiMDFi
M2IgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNl
LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9wb3J0X3Rlc3RjYXNlLnB5CkBA
IC0yOTcsOSArMjk3LDkgQEAgY2xhc3MgUG9ydFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICAgICAgIyBGaXJzdCB0ZXN0IHRoZSBjYXNlIG9mIG5vdCB1c2luZyB0aGUgSkhCdWlsZCB3
cmFwcGVyLgogICAgICAgICBzZWxmLmFzc2VydEZhbHNlKHBvcnQuX3Nob3VsZF91c2VfamhidWls
ZCgpKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5kaWZmX2ltYWdlKGInZm9vJywg
YidiYXInKSwgSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1GYWxzZSwgZGlmZl9pbWFnZT1iJycsIGRp
ZmZlcmVuY2U9MTAwLjApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFn
ZShiJ2ZvbycsIGInYmFyJyksIEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1h
Z2U9YicnLCBkaWZmZXJlbmNlPTEwMC4wLCB0b2xlcmFuY2U9MC4xKSkKICAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzZWxmLnByb2MuY21kLCBbcG9ydC5fcGF0aF90b19pbWFnZV9kaWZmKCksICIt
LXRvbGVyYW5jZSIsICIwLjEiXSkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmRpZmZf
aW1hZ2UoYidmb28nLCBiJ2JhcicsIE5vbmUpLCBJbWFnZURpZmZSZXN1bHQocGFzc2VkPUZhbHNl
LCBkaWZmX2ltYWdlPWInJywgZGlmZmVyZW5jZT0xMDAuMCkpCisgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocG9ydC5kaWZmX2ltYWdlKGInZm9vJywgYidiYXInLCBOb25lKSwgSW1hZ2VEaWZmUmVz
dWx0KHBhc3NlZD1GYWxzZSwgZGlmZl9pbWFnZT1iJycsIGRpZmZlcmVuY2U9MTAwLjAsIHRvbGVy
YW5jZT0wLjEpKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYucHJvYy5jbWQsIFtwb3J0
Ll9wYXRoX3RvX2ltYWdlX2RpZmYoKSwgIi0tdG9sZXJhbmNlIiwgIjAuMSJdKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFyJywgMCksIEltYWdl
RGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEwMC4w
KSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnByb2MuY21kLCBbcG9ydC5fcGF0aF90
b19pbWFnZV9kaWZmKCksICItLXRvbGVyYW5jZSIsICIwIl0pCkBAIC0zMDgsOSArMzA4LDkgQEAg
Y2xhc3MgUG9ydFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcG9ydC5fZmls
ZXN5c3RlbS5tYXliZV9tYWtlX2RpcmVjdG9yeShwb3J0LnBhdGhfZnJvbV93ZWJraXRfYmFzZSgn
V2ViS2l0QnVpbGQnLCAnRGVwZW5kZW5jaWVzJXMnICUgcG9ydC5wb3J0X25hbWUudXBwZXIoKSkp
CiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0Ll9zaG91bGRfdXNlX2poYnVpbGQoKSkKIAot
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFyJyks
IEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNl
PTEwMC4wKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmRpZmZfaW1hZ2UoYidmb28n
LCBiJ2JhcicpLCBJbWFnZURpZmZSZXN1bHQocGFzc2VkPUZhbHNlLCBkaWZmX2ltYWdlPWInJywg
ZGlmZmVyZW5jZT0xMDAuMCwgdG9sZXJhbmNlPTAuMSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc2VsZi5wcm9jLmNtZCwgcG9ydC5famhidWlsZF93cmFwcGVyICsgW3BvcnQuX3BhdGhfdG9f
aW1hZ2VfZGlmZigpLCAiLS10b2xlcmFuY2UiLCAiMC4xIl0pCi0gICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwocG9ydC5kaWZmX2ltYWdlKGInZm9vJywgYidiYXInLCBOb25lKSwgSW1hZ2VEaWZmUmVz
dWx0KHBhc3NlZD1GYWxzZSwgZGlmZl9pbWFnZT1iJycsIGRpZmZlcmVuY2U9MTAwLjApKQorICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFyJywgTm9u
ZSksIEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJl
bmNlPTEwMC4wLCB0b2xlcmFuY2U9MC4xKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxm
LnByb2MuY21kLCBwb3J0Ll9qaGJ1aWxkX3dyYXBwZXIgKyBbcG9ydC5fcGF0aF90b19pbWFnZV9k
aWZmKCksICItLXRvbGVyYW5jZSIsICIwLjEiXSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChw
b3J0LmRpZmZfaW1hZ2UoYidmb28nLCBiJ2JhcicsIDApLCBJbWFnZURpZmZSZXN1bHQocGFzc2Vk
PUZhbHNlLCBkaWZmX2ltYWdlPWInJywgZGlmZmVyZW5jZT0xMDAuMCkpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc2VsZi5wcm9jLmNtZCwgcG9ydC5famhidWlsZF93cmFwcGVyICsgW3BvcnQu
X3BhdGhfdG9faW1hZ2VfZGlmZigpLCAiLS10b2xlcmFuY2UiLCAiMCJdKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442456</attachid>
            <date>2021-10-25 19:51:16 -0700</date>
            <delta_ts>2021-10-25 20:21:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232288-20211025195115.patch</filename>
            <type>text/plain</type>
            <size>20467</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0ODAwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmNkZjllNGIzMmU2ZjlhNDFjM2IyMGYyNzc5ZDJjNDVh
NjczMDE5Ny4uZDAyMzUyOTcxYmMxZDBjYTZmOGE1YTA1Y2MwOWNlYjFjZWJhZDJkMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDIxLTEwLTI1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIERvbid0IHJ1biBJbWFnZURpZmYgYSBzZWNvbmQgdGltZSB0byBnZW5lcmF0ZSBk
aWZmIGltYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMyMjg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ3VycmVudGx5LCBmb3IgYSByZWYgdGVzdCBmYWlsdXJlICh3aGljaCBpcyBhbHdheXMgcnVu
IHdpdGggdG9sZXJhbmNlPTApLCB3ZSBydW4gSW1hZ2VEaWZmIGEKKyAgICAgICAgc2Vjb25kIHRp
bWUgaW4gRmFpbHVyZVJlZnRlc3RNaXNtYXRjaC53cml0ZV9mYWlsdXJlKCkgd2l0aCB0aGUgaW50
ZW50IG9mIGdlbmVyYXRpbmcgYSBkaWZmCisgICAgICAgIGltYWdlIHdpdGggemVybyB0b2xlcmFu
Y2UuCisKKyAgICAgICAgRml4IGJ5IHN0b3JpbmcgdGhlIEltYWdlRGlmZlJlc3VsdCBpbiBGYWls
dXJlUmVmdGVzdE1pc21hdGNoIGFuZCBGYWlsdXJlSW1hZ2VIYXNoTWlzbWF0Y2ggc28KKyAgICAg
ICAgd2UgYWxyZWFkeSBoYXZlIHRoZSBkaWZmIGltYWdlLiBXZSBvbmx5IHJlZ2VuZXJhdGUgaXQg
d2hlbiB0aGUgZmlyc3QgZGlmZiB3YXMgcnVuIHdpdGggYQorICAgICAgICBub24temVybyB0b2xl
cmFuY2UgKG9ubHkgcmVsZXZhbnQgZm9yIHBpeGVsIHRlc3RzKS4gVG8gZmFjaWxpYXRlIHRoaXMs
IHN0b3JlIHRoZSB0b2xlcmFuY2UKKyAgICAgICAgdGhhdCB3YXMgdXNlZCBpbnNpZGUgSW1hZ2VE
aWZmUmVzdWx0IHRvby4KKworICAgICAgICAqIEltYWdlRGlmZi9JbWFnZURpZmYuY3BwOgorICAg
ICAgICAobWFpbik6IFNob3cgdG9sZXJhbmNlIGluIHZlcmJvc2UgbG9nZ2luZy4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9y
dW5uZXIucHk6CisgICAgICAgIChTaW5nbGVUZXN0UnVubmVyLl9jb21wYXJlX2ltYWdlKToKKyAg
ICAgICAgKFNpbmdsZVRlc3RSdW5uZXIuX2NvbXBhcmVfb3V0cHV0X3dpdGhfcmVmZXJlbmNlKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy90ZXN0
X3Jlc3VsdF93cml0ZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0UmVzdWx0V3JpdGVyVGVz
dC50ZXN0X3JlZnRlc3RfZGlmZl9pbWFnZS5JbWFnZURpZmZUZXN0UG9ydC5kaWZmX2ltYWdlKToK
KyAgICAgICAgKFRlc3RSZXN1bHRXcml0ZXJUZXN0KToKKyAgICAgICAgKFRlc3RSZXN1bHRXcml0
ZXJUZXN0LnRlc3RfcmVmdGVzdF9kaWZmX2ltYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9mYWlsdXJlcy5weToKKyAgICAgICAgKEZhaWx1
cmVJbWFnZUhhc2hNaXNtYXRjaC5fX2luaXRfXyk6CisgICAgICAgIChGYWlsdXJlUmVmdGVzdE1p
c21hdGNoLl9faW5pdF9fKToKKyAgICAgICAgKEZhaWx1cmVSZWZ0ZXN0TWlzbWF0Y2gud3JpdGVf
ZmFpbHVyZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxz
L3Rlc3RfcnVuX3Jlc3VsdHMucHk6CisgICAgICAgIChfaW50ZXJwcmV0X3Rlc3RfZmFpbHVyZXMp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1
bl9yZXN1bHRzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoSW50ZXJwcmV0VGVzdEZhaWx1cmVzVGVz
dC50ZXN0X2ludGVycHJldF90ZXN0X2ZhaWx1cmVzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weToKKyAg
ICAgICAgKFJ1blRlc3QudGVzdF90b2xlcmFuY2UuSW1hZ2VEaWZmVGVzdFBvcnQuZGlmZl9pbWFn
ZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2ltYWdlX2RpZmYucHk6CisgICAg
ICAgIChJbWFnZURpZmZSZXN1bHQuX19pbml0X18pOgorICAgICAgICAoSW1hZ2VEaWZmUmVzdWx0
Ll9fcmVwcl9fKToKKyAgICAgICAgKEltYWdlRGlmZmVyLl9yZWFkKToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvcG9ydF90ZXN0Y2FzZS5weToKKyAgICAgICAgKFBvcnRUZXN0Q2Fz
ZS50ZXN0X2RpZmZfaW1hZ2UpOgorCiAyMDIxLTEwLTI1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIHdlYmtpdHB5OiBBZGQgYW4gZXhwbGljaXQgSW1h
Z2VEaWZmUmVzdWx0LnBhc3NlZCByYXRoZXIgdGhhbiByZWx5aW5nIG9uIGRpZmZfaW1hZ2UgYmVp
bmcgbm9uLU5vbmUKZGlmZiAtLWdpdCBhL1Rvb2xzL0ltYWdlRGlmZi9JbWFnZURpZmYuY3BwIGIv
VG9vbHMvSW1hZ2VEaWZmL0ltYWdlRGlmZi5jcHAKaW5kZXggM2UwNzAwMjZlNWZkMDdiYjU3Mzli
ODBlYzNlMmUzNzdjY2Y3YWZjZC4uNzRhMjA1NjQxOTU3ZDNmYmIyYjJjZTgwN2JhOWMwZDM5ZWJh
ZjEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvSW1hZ2VEaWZmL0ltYWdlRGlmZi5jcHAKKysrIGIvVG9v
bHMvSW1hZ2VEaWZmL0ltYWdlRGlmZi5jcHAKQEAgLTIxNyw3ICsyMTcsNyBAQCBpbnQgbWFpbihp
bnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogCiAgICAgICAgIGlmIChhY3R1YWxJbWFnZSAm
JiBiYXNlbGluZUltYWdlKSB7CiAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAg
ICAgICBmcHJpbnRmKHN0ZGVyciwgIkltYWdlRGlmZjogcHJvY2Vzc2luZyBpbWFnZXNcbiIpOwor
ICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiSW1hZ2VEaWZmOiBwcm9jZXNzaW5nIGlt
YWdlcyB3aXRoIHRvbGVyYW5jZSAlMDEuMmYlJVxuIiwgdG9sZXJhbmNlKTsKICAgICAgICAgICAg
IGF1dG8gcmVzdWx0ID0gcHJvY2Vzc0ltYWdlcyhzdGQ6OmV4Y2hhbmdlKGFjdHVhbEltYWdlLCB7
IH0pLCBzdGQ6OmV4Y2hhbmdlKGJhc2VsaW5lSW1hZ2UsIHsgfSksIHRvbGVyYW5jZSwgcHJpbnRE
aWZmZXJlbmNlKTsKICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gRVhJVF9TVUNDRVNTKQogICAg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVz
dF9ydW5uZXIucHkKaW5kZXggNDM3OGI0YzFlMjg3ZGI1MTg5MzVjMzE4MWE4M2QyN2JlMjUzYWYx
Zi4uMzEwZTQyYmI3ZDg4MTk4MDIzNDY2ZGEzNjRmZDM1NTNjZTU1MDEzNyAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rl
c3RfcnVubmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2Nv
bnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weQpAQCAtMjk1LDcgKzI5NSw3IEBAIGNsYXNz
IFNpbmdsZVRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgZWxpZiBkcml2ZXJfb3V0cHV0Lmlt
YWdlX2hhc2ggIT0gZXhwZWN0ZWRfZHJpdmVyX291dHB1dC5pbWFnZV9oYXNoOgogICAgICAgICAg
ICAgZGlmZl9yZXN1bHQgPSBzZWxmLl9wb3J0LmRpZmZfaW1hZ2UoZXhwZWN0ZWRfZHJpdmVyX291
dHB1dC5pbWFnZSwgZHJpdmVyX291dHB1dC5pbWFnZSkKICAgICAgICAgICAgIGlmIG5vdCBkaWZm
X3Jlc3VsdC5wYXNzZWQ6Ci0gICAgICAgICAgICAgICAgZmFpbHVyZXMuYXBwZW5kKHRlc3RfZmFp
bHVyZXMuRmFpbHVyZUltYWdlSGFzaE1pc21hdGNoKGRpZmZfcmVzdWx0LmRpZmZfcGVyY2VudCkp
CisgICAgICAgICAgICAgICAgZmFpbHVyZXMuYXBwZW5kKHRlc3RfZmFpbHVyZXMuRmFpbHVyZUlt
YWdlSGFzaE1pc21hdGNoKGRpZmZfcmVzdWx0KSkKICAgICAgICAgICAgICAgICBpZiBkaWZmX3Jl
c3VsdC5lcnJvcl9zdHJpbmc6CiAgICAgICAgICAgICAgICAgICAgIF9sb2cud2FybmluZygnICAl
cyA6ICVzJyAlIChzZWxmLl90ZXN0X25hbWUsIGRpZmZfcmVzdWx0LmVycm9yX3N0cmluZykpCiAg
ICAgICAgICAgICAgICAgICAgIGRyaXZlcl9vdXRwdXQuZXJyb3IgPSAoZHJpdmVyX291dHB1dC5l
cnJvciBvciAnJykgKyBkaWZmX3Jlc3VsdC5lcnJvcl9zdHJpbmcKQEAgLTM1Niw3ICszNTYsNyBA
QCBjbGFzcyBTaW5nbGVUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAgICAgICAjIEltYWdlRGlm
ZiBoYXMgYSBoYXJkIGNvZGVkIGNvbG9yIGRpc3RhbmNlIHRocmVzaG9sZCBldmVuIHRob3VnaCB0
b2xlcmFuY2U9MCBpcyBzcGVjaWZpZWQuCiAgICAgICAgICAgICBkaWZmX3Jlc3VsdCA9IHNlbGYu
X3BvcnQuZGlmZl9pbWFnZShyZWZlcmVuY2VfZHJpdmVyX291dHB1dC5pbWFnZSwgYWN0dWFsX2Ry
aXZlcl9vdXRwdXQuaW1hZ2UsIHRvbGVyYW5jZT0wKQogICAgICAgICAgICAgaWYgbm90IGRpZmZf
cmVzdWx0LnBhc3NlZDoKLSAgICAgICAgICAgICAgICBmYWlsdXJlcy5hcHBlbmQodGVzdF9mYWls
dXJlcy5GYWlsdXJlUmVmdGVzdE1pc21hdGNoKHJlZmVyZW5jZV9maWxlbmFtZSkpCisgICAgICAg
ICAgICAgICAgZmFpbHVyZXMuYXBwZW5kKHRlc3RfZmFpbHVyZXMuRmFpbHVyZVJlZnRlc3RNaXNt
YXRjaChyZWZlcmVuY2VfZmlsZW5hbWUsIGRpZmZfcmVzdWx0KSkKICAgICAgICAgICAgICAgICBp
ZiBkaWZmX3Jlc3VsdC5lcnJvcl9zdHJpbmc6CiAgICAgICAgICAgICAgICAgICAgIF9sb2cud2Fy
bmluZygnICAlcyA6ICVzJyAlIChzZWxmLl90ZXN0X25hbWUsIGRpZmZfcmVzdWx0LmVycm9yX3N0
cmluZykpCiAgICAgICAgICAgICAgICAgICAgIGFjdHVhbF9kcml2ZXJfb3V0cHV0LmVycm9yID0g
KGFjdHVhbF9kcml2ZXJfb3V0cHV0LmVycm9yIG9yICcnKSArIGRpZmZfcmVzdWx0LmVycm9yX3N0
cmluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvdGVzdF9yZXN1bHRfd3JpdGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvdGVzdF9yZXN1bHRfd3JpdGVyX3VuaXR0
ZXN0LnB5CmluZGV4IDhiMmFlMjM5NTY2N2E4YWRiZTMyNWM1Njc4Mjg0MzhhMTI0ZDMyNDYuLmQ5
MDkyMDhmOGNlZjlhYWQ0NTg3NmJhOWU1NDc5MmE1NGMwMzMyYTYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3Rlc3RfcmVzdWx0X3dy
aXRlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9jb250cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXJfdW5pdHRlc3QucHkKQEAgLTQwLDkgKzQw
LDkgQEAgY2xhc3MgVGVzdFJlc3VsdFdyaXRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICB1c2VkX3RvbGVyYW5jZV92YWx1ZXMgPSBbXQogCiAgICAgICAgIGNsYXNzIEltYWdlRGlm
ZlRlc3RQb3J0KFRlc3RQb3J0KToKLSAgICAgICAgICAgIGRlZiBkaWZmX2ltYWdlKHNlbGYsIGV4
cGVjdGVkX2NvbnRlbnRzLCBhY3R1YWxfY29udGVudHMsIHRvbGVyYW5jZT1Ob25lKToKKyAgICAg
ICAgICAgIGRlZiBkaWZmX2ltYWdlKHNlbGYsIGV4cGVjdGVkX2NvbnRlbnRzLCBhY3R1YWxfY29u
dGVudHMsIHRvbGVyYW5jZSk6CiAgICAgICAgICAgICAgICAgdXNlZF90b2xlcmFuY2VfdmFsdWVz
LmFwcGVuZCh0b2xlcmFuY2UpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEltYWdlRGlmZlJlc3Vs
dChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9Yicn
LCBkaWZmZXJlbmNlPTEsIHRvbGVyYW5jZT10b2xlcmFuY2UpCiAKICAgICAgICAgaG9zdCA9IE1v
Y2tIb3N0KCkKICAgICAgICAgcG9ydCA9IEltYWdlRGlmZlRlc3RQb3J0KGhvc3QpCkBAIC01MCw3
ICs1MCw3IEBAIGNsYXNzIFRlc3RSZXN1bHRXcml0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICAgICAgdGVzdF9yZWZlcmVuY2VfZmlsZSA9IGhvc3QuZmlsZXN5c3RlbS5qb2luKHBvcnQu
bGF5b3V0X3Rlc3RzX2RpcigpLCAnZmFpbHVyZXMvdW5leHBlY3RlZC9yZWZ0ZXN0LWV4cGVjdGVk
Lmh0bWwnKQogICAgICAgICBkcml2ZXJfb3V0cHV0MSA9IERyaXZlck91dHB1dCgndGV4dDEnLCAn
aW1hZ2UxJywgJ2ltYWdlaGFzaDEnLCAnYXVkaW8xJykKICAgICAgICAgZHJpdmVyX291dHB1dDIg
PSBEcml2ZXJPdXRwdXQoJ3RleHQyJywgJ2ltYWdlMicsICdpbWFnZWhhc2gyJywgJ2F1ZGlvMicp
Ci0gICAgICAgIGZhaWx1cmVzID0gW3Rlc3RfZmFpbHVyZXMuRmFpbHVyZVJlZnRlc3RNaXNtYXRj
aCh0ZXN0X3JlZmVyZW5jZV9maWxlKV0KKyAgICAgICAgZmFpbHVyZXMgPSBbdGVzdF9mYWlsdXJl
cy5GYWlsdXJlUmVmdGVzdE1pc21hdGNoKHRlc3RfcmVmZXJlbmNlX2ZpbGUsIEltYWdlRGlmZlJl
c3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEsIHRvbGVyYW5j
ZT0xKSldCiAgICAgICAgIHRlc3RfcmVzdWx0X3dyaXRlci53cml0ZV90ZXN0X3Jlc3VsdChob3N0
LmZpbGVzeXN0ZW0sIEltYWdlRGlmZlRlc3RQb3J0KGhvc3QpLCBwb3J0LnJlc3VsdHNfZGlyZWN0
b3J5KCksIHRlc3RfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRyaXZlcl9vdXRwdXQxLCBkcml2ZXJfb3V0cHV0MiwgZmFpbHVyZXMpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoWzBdLCB1c2VkX3RvbGVyYW5jZV92YWx1ZXMpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9mYWlsdXJl
cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2Zh
aWx1cmVzLnB5CmluZGV4IDRmNjExZDAxMDg3MTBhM2ZmMGM1Yzg0MmQ2MzI1YWM3NDY3M2ZjOTQu
LmVmNTdmOWIyMzM1MWY4YzdhNzkzZTNkZmQyYWZlNTZhNjgyNzQ3NWEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2ZhaWx1cmVzLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2Zh
aWx1cmVzLnB5CkBAIC0yMDEsOSArMjAxLDkgQEAgY2xhc3MgRmFpbHVyZU1pc3NpbmdJbWFnZShU
ZXN0RmFpbHVyZSk6CiAKIAogY2xhc3MgRmFpbHVyZUltYWdlSGFzaE1pc21hdGNoKFRlc3RGYWls
dXJlKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZGlmZl9wZXJjZW50PTApOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBpbWFnZV9kaWZmX3Jlc3VsdD1Ob25lKToKICAgICAgICAgc3VwZXIoRmFp
bHVyZUltYWdlSGFzaE1pc21hdGNoLCBzZWxmKS5fX2luaXRfXygpCi0gICAgICAgIHNlbGYuZGlm
Zl9wZXJjZW50ID0gZGlmZl9wZXJjZW50CisgICAgICAgIHNlbGYuaW1hZ2VfZGlmZl9yZXN1bHQg
PSBpbWFnZV9kaWZmX3Jlc3VsdAogCiAgICAgZGVmIG1lc3NhZ2Uoc2VsZik6CiAgICAgICAgIHJl
dHVybiAiaW1hZ2UgZGlmZiIKQEAgLTIxOSwyNSArMjE5LDI2IEBAIGNsYXNzIEZhaWx1cmVJbWFn
ZUhhc2hJbmNvcnJlY3QoVGVzdEZhaWx1cmUpOgogCiAKIGNsYXNzIEZhaWx1cmVSZWZ0ZXN0TWlz
bWF0Y2goVGVzdEZhaWx1cmUpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZWZlcmVuY2VfZmls
ZW5hbWU9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlZmVyZW5jZV9maWxlbmFtZT1O
b25lLCBpbWFnZV9kaWZmX3Jlc3VsdD1Ob25lKToKICAgICAgICAgc3VwZXIoRmFpbHVyZVJlZnRl
c3RNaXNtYXRjaCwgc2VsZikuX19pbml0X18oKQogICAgICAgICBzZWxmLnJlZmVyZW5jZV9maWxl
bmFtZSA9IHJlZmVyZW5jZV9maWxlbmFtZQotICAgICAgICBzZWxmLmRpZmZfcGVyY2VudCA9IE5v
bmUKKyAgICAgICAgc2VsZi5pbWFnZV9kaWZmX3Jlc3VsdCA9IGltYWdlX2RpZmZfcmVzdWx0CiAK
ICAgICBkZWYgbWVzc2FnZShzZWxmKToKICAgICAgICAgcmV0dXJuICJyZWZlcmVuY2UgbWlzbWF0
Y2giCiAKICAgICBkZWYgd3JpdGVfZmFpbHVyZShzZWxmLCB3cml0ZXIsIGRyaXZlcl9vdXRwdXQs
IGV4cGVjdGVkX2RyaXZlcl9vdXRwdXQsIHBvcnQpOgogICAgICAgICB3cml0ZXIud3JpdGVfaW1h
Z2VfZmlsZXMoZHJpdmVyX291dHB1dC5pbWFnZSwgZXhwZWN0ZWRfZHJpdmVyX291dHB1dC5pbWFn
ZSkKLSAgICAgICAgIyBGSVhNRTogVGhpcyB3b3JrIHNob3VsZCBiZSBkb25lIGVhcmxpZXIgaW4g
dGhlIHBpcGVsaW5lIChlLmcuLCB3aGVuIHdlIGNvbXBhcmUgaW1hZ2VzIGZvciBub24tcmVmIHRl
c3RzKS4KLSAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIGFsd2F5cyBoYXZlIDIgaW1hZ2VzIGhl
cmUuCi0gICAgICAgIGlmIGRyaXZlcl9vdXRwdXQuaW1hZ2UgYW5kIGV4cGVjdGVkX2RyaXZlcl9v
dXRwdXQuaW1hZ2U6Ci0gICAgICAgICAgICBkaWZmX3Jlc3VsdCA9IHBvcnQuZGlmZl9pbWFnZShl
eHBlY3RlZF9kcml2ZXJfb3V0cHV0LmltYWdlLCBkcml2ZXJfb3V0cHV0LmltYWdlLCB0b2xlcmFu
Y2U9MCkKLSAgICAgICAgICAgIGlmIGRpZmZfcmVzdWx0LmRpZmZfaW1hZ2U6Ci0gICAgICAgICAg
ICAgICAgd3JpdGVyLndyaXRlX2ltYWdlX2RpZmZfZmlsZXMoZGlmZl9yZXN1bHQuZGlmZl9pbWFn
ZSkKLSAgICAgICAgICAgICAgICBzZWxmLmRpZmZfcGVyY2VudCA9IGRpZmZfcmVzdWx0LmRpZmZf
cGVyY2VudAorICAgICAgICBpZiBzZWxmLmltYWdlX2RpZmZfcmVzdWx0OgorICAgICAgICAgICAg
IyBJZiB0aGUgcmVmIHRlc3Qgd2FzIHJ1biB3aXRoIG5vbi16ZXJvIHRvbGVyYW5jZSwgZ2VuZXJh
dGUgdGhlIGltYWdlIGRpZmYgYWdhaW4gd2l0aCB6ZXJvIHRvbGVyYW5jZS4KKyAgICAgICAgICAg
IGlmIHNlbGYuaW1hZ2VfZGlmZl9yZXN1bHQudG9sZXJhbmNlICE9IDA6CisgICAgICAgICAgICAg
ICAgZGlmZl9pbWFnZSA9IHBvcnQuZGlmZl9pbWFnZShleHBlY3RlZF9kcml2ZXJfb3V0cHV0Lmlt
YWdlLCBkcml2ZXJfb3V0cHV0LmltYWdlLCB0b2xlcmFuY2U9MCkuZGlmZl9pbWFnZQogICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBfbG9nLndhcm4oJ3JlZiB0ZXN0IG1pc21hdGNo
IGRpZCBub3QgcHJvZHVjZSBhbiBpbWFnZSBkaWZmLicpCisgICAgICAgICAgICAgICAgZGlmZl9p
bWFnZSA9IHNlbGYuaW1hZ2VfZGlmZl9yZXN1bHQuZGlmZl9pbWFnZQorCisgICAgICAgICAgICB3
cml0ZXIud3JpdGVfaW1hZ2VfZGlmZl9maWxlcyhkaWZmX2ltYWdlKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgX2xvZy53YXJuKCdyZWYgdGVzdCBtaXNtYXRjaCBkaWQgbm90IHByb2R1Y2Ug
YW4gaW1hZ2UgZGlmZi4nKQogICAgICAgICB3cml0ZXIud3JpdGVfcmVmdGVzdChzZWxmLnJlZmVy
ZW5jZV9maWxlbmFtZSkKIAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzLnB5CmluZGV4IGQ4YTg5
ZmQyMzcwMzZjNGMyM2U3MzFiYmI5ODNhZWI5N2YzNjJiMWYuLjJhOTM4OWNhNWFhZTM0NmNkNmM5
NGNkMWU0MDdkYWQ5MmZmNGE1ZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzLnB5CkBAIC0y
MTMsNyArMjEzLDcgQEAgZGVmIF9pbnRlcnByZXRfdGVzdF9mYWlsdXJlcyhmYWlsdXJlcyk6CiAg
ICAgaWYgJ2ltYWdlX2RpZmZfcGVyY2VudCcgbm90IGluIHRlc3RfZGljdDoKICAgICAgICAgZm9y
IGZhaWx1cmUgaW4gZmFpbHVyZXM6CiAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGZhaWx1cmUs
IHRlc3RfZmFpbHVyZXMuRmFpbHVyZUltYWdlSGFzaE1pc21hdGNoKSBvciBpc2luc3RhbmNlKGZh
aWx1cmUsIHRlc3RfZmFpbHVyZXMuRmFpbHVyZVJlZnRlc3RNaXNtYXRjaCk6Ci0gICAgICAgICAg
ICAgICAgdGVzdF9kaWN0WydpbWFnZV9kaWZmX3BlcmNlbnQnXSA9IGZhaWx1cmUuZGlmZl9wZXJj
ZW50CisgICAgICAgICAgICAgICAgdGVzdF9kaWN0WydpbWFnZV9kaWZmX3BlcmNlbnQnXSA9IGZh
aWx1cmUuaW1hZ2VfZGlmZl9yZXN1bHQuZGlmZl9wZXJjZW50CiAKICAgICByZXR1cm4gdGVzdF9k
aWN0CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21v
ZGVscy90ZXN0X3J1bl9yZXN1bHRzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHNfdW5pdHRlc3QucHkKaW5kZXgg
MDEwNTY2MDEyZGIyMGQ3ZmFmYWE4M2Q0YjEwM2FjZGVhMjA2MWFlYi4uZGIyNDE2MTNjODNiYjNi
ZmZkNjgzYTVmYjliZjc5ODIyMjgxMTY0NSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHNfdW5pdHRlc3QucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jl
c3VsdHNfdW5pdHRlc3QucHkKQEAgLTMzLDYgKzMzLDcgQEAgZnJvbSB3ZWJraXRweS5sYXlvdXRf
dGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwogZnJvbSB3ZWJraXRweS5sYXlv
dXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2ZhaWx1cmVzCiBmcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfcmVzdWx0cwogZnJvbSB3ZWJraXRweS5sYXlvdXRf
dGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X3J1bl9yZXN1bHRzCitmcm9tIHdlYmtpdHB5LnBvcnQu
aW1hZ2VfZGlmZiBpbXBvcnQgSW1hZ2VEaWZmUmVzdWx0CiBmcm9tIHdlYmtpdHB5LnRvb2wubW9j
a3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zCiAKIGZyb20gd2Via2l0Y29yZXB5IGltcG9ydCBPdXRw
dXRDYXB0dXJlCkBAIC0xMjQsMTAgKzEyNSwxMCBAQCBjbGFzcyBJbnRlcnByZXRUZXN0RmFpbHVy
ZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5wb3J0ID0gaG9zdC5wb3J0
X2ZhY3RvcnkuZ2V0KHBvcnRfbmFtZT0ndGVzdCcpCiAKICAgICBkZWYgdGVzdF9pbnRlcnByZXRf
dGVzdF9mYWlsdXJlcyhzZWxmKToKLSAgICAgICAgdGVzdF9kaWN0ID0gdGVzdF9ydW5fcmVzdWx0
cy5faW50ZXJwcmV0X3Rlc3RfZmFpbHVyZXMoW3Rlc3RfZmFpbHVyZXMuRmFpbHVyZUltYWdlSGFz
aE1pc21hdGNoKGRpZmZfcGVyY2VudD0wLjQyKV0pCisgICAgICAgIHRlc3RfZGljdCA9IHRlc3Rf
cnVuX3Jlc3VsdHMuX2ludGVycHJldF90ZXN0X2ZhaWx1cmVzKFt0ZXN0X2ZhaWx1cmVzLkZhaWx1
cmVJbWFnZUhhc2hNaXNtYXRjaChJbWFnZURpZmZSZXN1bHQocGFzc2VkPUZhbHNlLCBkaWZmX2lt
YWdlPWInJywgZGlmZmVyZW5jZT0wLjQyKSldKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRl
c3RfZGljdFsnaW1hZ2VfZGlmZl9wZXJjZW50J10sIDAuNDIpCiAKLSAgICAgICAgdGVzdF9kaWN0
ID0gdGVzdF9ydW5fcmVzdWx0cy5faW50ZXJwcmV0X3Rlc3RfZmFpbHVyZXMoW3Rlc3RfZmFpbHVy
ZXMuRmFpbHVyZVJlZnRlc3RNaXNtYXRjaChzZWxmLnBvcnQuYWJzcGF0aF9mb3JfdGVzdCgnZm9v
L3JlZnRlc3QtZXhwZWN0ZWQuaHRtbCcpKV0pCisgICAgICAgIHRlc3RfZGljdCA9IHRlc3RfcnVu
X3Jlc3VsdHMuX2ludGVycHJldF90ZXN0X2ZhaWx1cmVzKFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVS
ZWZ0ZXN0TWlzbWF0Y2goc2VsZi5wb3J0LmFic3BhdGhfZm9yX3Rlc3QoJ2Zvby9yZWZ0ZXN0LWV4
cGVjdGVkLmh0bWwnKSwgSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1GYWxzZSwgZGlmZl9pbWFnZT1i
JycsIGRpZmZlcmVuY2U9MTAwLjApKV0pCiAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2ltYWdlX2Rp
ZmZfcGVyY2VudCcsIHRlc3RfZGljdCkKIAogICAgICAgICB0ZXN0X2RpY3QgPSB0ZXN0X3J1bl9y
ZXN1bHRzLl9pbnRlcnByZXRfdGVzdF9mYWlsdXJlcyhbdGVzdF9mYWlsdXJlcy5GYWlsdXJlUmVm
dGVzdE1pc21hdGNoRGlkTm90T2NjdXIoc2VsZi5wb3J0LmFic3BhdGhfZm9yX3Rlc3QoJ2Zvby9y
ZWZ0ZXN0LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwnKSldKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rl
c3RzX2ludGVncmF0aW9udGVzdC5weQppbmRleCBjODcwZDRlNTBkNWZjY2E4YTE5NzBiMjZkY2Q2
YWU3NGY2NzYxODExLi5hNWY4NTRkOTNjOTkzYTQyZTc1ODc1ZGE4N2VjMjQ3YmNmNTlmMTI0IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0
X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQpAQCAtNzUyLDcg
Kzc1Miw3IEBAIGNsYXNzIFJ1blRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdN
aXhpbik6CiAgICAgICAgIGNsYXNzIEltYWdlRGlmZlRlc3RQb3J0KHRlc3QuVGVzdFBvcnQpOgog
ICAgICAgICAgICAgZGVmIGRpZmZfaW1hZ2Uoc2VsZiwgZXhwZWN0ZWRfY29udGVudHMsIGFjdHVh
bF9jb250ZW50cywgdG9sZXJhbmNlPU5vbmUpOgogICAgICAgICAgICAgICAgIHNlbGYudG9sZXJh
bmNlX3VzZWRfZm9yX2RpZmZfaW1hZ2UgPSBzZWxmLl9vcHRpb25zLnRvbGVyYW5jZQotICAgICAg
ICAgICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1bHQocGFzc2VkPUZhbHNlLCBkaWZmX2ltYWdl
PWInJywgZGlmZmVyZW5jZT0xKQorICAgICAgICAgICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1
bHQocGFzc2VkPUZhbHNlLCBkaWZmX2ltYWdlPWInJywgZGlmZmVyZW5jZT0xLCB0b2xlcmFuY2U9
c2VsZi5fb3B0aW9ucy50b2xlcmFuY2Ugb3IgMCkKIAogICAgICAgICBkZWYgZ2V0X3BvcnRfZm9y
X3J1bihhcmdzKToKICAgICAgICAgICAgIG9wdGlvbnMsIHBhcnNlZF9hcmdzID0gcnVuX3dlYmtp
dF90ZXN0cy5wYXJzZV9hcmdzKGFyZ3MpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvaW1hZ2VfZGlmZi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pbWFn
ZV9kaWZmLnB5CmluZGV4IGNiOGIzZjA0ZWEzN2Y5ZjlmOTJjMGUzMDQ1Mzc0ODYxZmE3OGFmYjUu
LmRlYTZmMDc1NjJmMDFkMDI4ZGFlNmFjOGE5MWQ3ZDNlODcxMWZiMTYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pbWFnZV9kaWZmLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9pbWFnZV9kaWZmLnB5CkBAIC00MCwxMCArNDAsMTEgQEAgX2xvZyA9
IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAKIGNsYXNzIEltYWdlRGlmZlJlc3VsdChv
YmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXNzZWQsIGRpZmZfaW1hZ2UsIGRpZmZl
cmVuY2UsIGVycm9yX3N0cmluZz1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGFzc2Vk
LCBkaWZmX2ltYWdlLCBkaWZmZXJlbmNlLCB0b2xlcmFuY2U9MCwgZXJyb3Jfc3RyaW5nPU5vbmUp
OgogICAgICAgICBzZWxmLnBhc3NlZCA9IHBhc3NlZAogICAgICAgICBzZWxmLmRpZmZfaW1hZ2Ug
PSBkaWZmX2ltYWdlCiAgICAgICAgIHNlbGYuZGlmZl9wZXJjZW50ID0gZGlmZmVyZW5jZQorICAg
ICAgICBzZWxmLnRvbGVyYW5jZSA9IHRvbGVyYW5jZQogICAgICAgICBzZWxmLmVycm9yX3N0cmlu
ZyA9IGVycm9yX3N0cmluZwogCiAgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CkBAIC01MSw2
ICs1Miw3IEBAIGNsYXNzIEltYWdlRGlmZlJlc3VsdChvYmplY3QpOgogICAgICAgICAgICAgcmV0
dXJuIChzZWxmLnBhc3NlZCA9PSBvdGhlci5wYXNzZWQgYW5kCiAgICAgICAgICAgICAgICAgICAg
IHNlbGYuZGlmZl9pbWFnZSA9PSBvdGhlci5kaWZmX2ltYWdlIGFuZAogICAgICAgICAgICAgICAg
ICAgICBzZWxmLmRpZmZfcGVyY2VudCA9PSBvdGhlci5kaWZmX3BlcmNlbnQgYW5kCisgICAgICAg
ICAgICAgICAgICAgIHNlbGYudG9sZXJhbmNlID09IG90aGVyLnRvbGVyYW5jZSBhbmQKICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5lcnJvcl9zdHJpbmcgPT0gb3RoZXIuZXJyb3Jfc3RyaW5nKQog
CiAgICAgICAgIHJldHVybiBGYWxzZQpAQCAtNTksNyArNjEsNyBAQCBjbGFzcyBJbWFnZURpZmZS
ZXN1bHQob2JqZWN0KToKICAgICAgICAgcmV0dXJuIG5vdCBzZWxmLl9fZXFfXyhvdGhlcikKIAog
ICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICdJbWFnZURpZmZSZXN1bHQo
UGFzc2VkIHt9IHt9IHt9IHt9KScuZm9ybWF0KHNlbGYucGFzc2VkLCBzZWxmLmRpZmZfaW1hZ2Us
IHNlbGYuZGlmZl9wZXJjZW50LCBzZWxmLmVycm9yX3N0cmluZykKKyAgICAgICAgcmV0dXJuICdJ
bWFnZURpZmZSZXN1bHQoUGFzc2VkIHt9IHt9IGRpZmYge30gdG9sZXJhbmNlIHt9IHt9KScuZm9y
bWF0KHNlbGYucGFzc2VkLCBzZWxmLmRpZmZfaW1hZ2UsIHNlbGYuZGlmZl9wZXJjZW50LCBzZWxm
LnRvbGVyYW5jZSwgc2VsZi5lcnJvcl9zdHJpbmcpCiAKIGNsYXNzIEltYWdlRGlmZmVyKG9iamVj
dCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQpOgpAQCAtMTMzLDcgKzEzNSw3IEBAIGNs
YXNzIEltYWdlRGlmZmVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIEltYWdlRGlm
ZlJlc3VsdChwYXNzZWQ9VHJ1ZSwgZGlmZl9pbWFnZT1Ob25lLCBkaWZmZXJlbmNlPTApCiAgICAg
ICAgICAgICBkaWZmX3BlcmNlbnQgPSBmbG9hdChzdHJpbmdfdXRpbHMuZGVjb2RlKG0uZ3JvdXAo
MSksIHRhcmdldF90eXBlPXN0cikpCiAKLSAgICAgICAgcmV0dXJuIEltYWdlRGlmZlJlc3VsdChw
YXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9b3V0cHV0X2ltYWdlLCBkaWZmZXJlbmNlPWRpZmZfcGVy
Y2VudCwgZXJyb3Jfc3RyaW5nPWVycl9zdHIgb3IgTm9uZSkKKyAgICAgICAgcmV0dXJuIEltYWdl
RGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9b3V0cHV0X2ltYWdlLCBkaWZmZXJl
bmNlPWRpZmZfcGVyY2VudCwgdG9sZXJhbmNlPXNlbGYuX3RvbGVyYW5jZSwgZXJyb3Jfc3RyaW5n
PWVycl9zdHIgb3IgTm9uZSkKIAogICAgIGRlZiBzdG9wKHNlbGYpOgogICAgICAgICBpZiBzZWxm
Ll9wcm9jZXNzOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3BvcnRf
dGVzdGNhc2UucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvcG9ydF90ZXN0Y2FzZS5w
eQppbmRleCBiZjMxZmE2OTkwZTIyNThlN2U3ZDk0ZmI5N2QwMWNmOTU5NTllOWUzLi5kM2UxYjk1
Yjc0OWRjMzliMjU2NjdhNTFkYTA3YjdkZWIxZTljNWMxIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvcG9ydF90ZXN0Y2FzZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvcG9ydF90ZXN0Y2FzZS5weQpAQCAtMjk3LDIyICsyOTcsMjYgQEAgY2xhc3Mg
UG9ydFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIyBGaXJzdCB0ZXN0IHRo
ZSBjYXNlIG9mIG5vdCB1c2luZyB0aGUgSkhCdWlsZCB3cmFwcGVyLgogICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKHBvcnQuX3Nob3VsZF91c2VfamhidWlsZCgpKQogCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocG9ydC5kaWZmX2ltYWdlKGInZm9vJywgYidiYXInKSwgSW1hZ2VEaWZmUmVzdWx0
KHBhc3NlZD1GYWxzZSwgZGlmZl9pbWFnZT1iJycsIGRpZmZlcmVuY2U9MTAwLjApKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFyJyksIEltYWdl
RGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEwMC4w
LCB0b2xlcmFuY2U9MC4xKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnByb2MuY21k
LCBbcG9ydC5fcGF0aF90b19pbWFnZV9kaWZmKCksICItLXRvbGVyYW5jZSIsICIwLjEiXSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmRpZmZfaW1hZ2UoYidmb28nLCBiJ2JhcicsIE5v
bmUpLCBJbWFnZURpZmZSZXN1bHQocGFzc2VkPUZhbHNlLCBkaWZmX2ltYWdlPWInJywgZGlmZmVy
ZW5jZT0xMDAuMCkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmRpZmZfaW1hZ2Uo
Yidmb28nLCBiJ2JhcicsIHRvbGVyYW5jZT1Ob25lKSwgSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1G
YWxzZSwgZGlmZl9pbWFnZT1iJycsIGRpZmZlcmVuY2U9MTAwLjAsIHRvbGVyYW5jZT0wLjEpKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYucHJvYy5jbWQsIFtwb3J0Ll9wYXRoX3RvX2lt
YWdlX2RpZmYoKSwgIi0tdG9sZXJhbmNlIiwgIjAuMSJdKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHBvcnQuZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFyJywgMCksIEltYWdlRGlmZlJlc3VsdChw
YXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEwMC4wKSkKKworICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFyJywgdG9sZXJh
bmNlPTApLCBJbWFnZURpZmZSZXN1bHQocGFzc2VkPUZhbHNlLCBkaWZmX2ltYWdlPWInJywgZGlm
ZmVyZW5jZT0xMDAuMCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5wcm9jLmNtZCwg
W3BvcnQuX3BhdGhfdG9faW1hZ2VfZGlmZigpLCAiLS10b2xlcmFuY2UiLCAiMCJdKQogCiAgICAg
ICAgICMgTm93IHRlc3QgdGhlIGNhc2Ugb2YgdXNpbmcgSkhCdWlsZCB3cmFwcGVyLgogICAgICAg
ICBwb3J0Ll9maWxlc3lzdGVtLm1heWJlX21ha2VfZGlyZWN0b3J5KHBvcnQucGF0aF9mcm9tX3dl
YmtpdF9iYXNlKCdXZWJLaXRCdWlsZCcsICdEZXBlbmRlbmNpZXMlcycgJSBwb3J0LnBvcnRfbmFt
ZS51cHBlcigpKSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQuX3Nob3VsZF91c2Vfamhi
dWlsZCgpKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5kaWZmX2ltYWdlKGInZm9v
JywgYidiYXInKSwgSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1GYWxzZSwgZGlmZl9pbWFnZT1iJycs
IGRpZmZlcmVuY2U9MTAwLjApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9p
bWFnZShiJ2ZvbycsIGInYmFyJyksIEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZf
aW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEwMC4wLCB0b2xlcmFuY2U9MC4xKSkKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzZWxmLnByb2MuY21kLCBwb3J0Ll9qaGJ1aWxkX3dyYXBwZXIgKyBbcG9y
dC5fcGF0aF90b19pbWFnZV9kaWZmKCksICItLXRvbGVyYW5jZSIsICIwLjEiXSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwb3J0LmRpZmZfaW1hZ2UoYidmb28nLCBiJ2JhcicsIE5vbmUpLCBJ
bWFnZURpZmZSZXN1bHQocGFzc2VkPUZhbHNlLCBkaWZmX2ltYWdlPWInJywgZGlmZmVyZW5jZT0x
MDAuMCkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmRpZmZfaW1hZ2UoYidmb28n
LCBiJ2JhcicsIHRvbGVyYW5jZT1Ob25lKSwgSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1GYWxzZSwg
ZGlmZl9pbWFnZT1iJycsIGRpZmZlcmVuY2U9MTAwLjAsIHRvbGVyYW5jZT0wLjEpKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNlbGYucHJvYy5jbWQsIHBvcnQuX2poYnVpbGRfd3JhcHBlciAr
IFtwb3J0Ll9wYXRoX3RvX2ltYWdlX2RpZmYoKSwgIi0tdG9sZXJhbmNlIiwgIjAuMSJdKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFyJywgMCks
IEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNl
PTEwMC4wKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShiJ2Zv
bycsIGInYmFyJywgdG9sZXJhbmNlPTApLCBJbWFnZURpZmZSZXN1bHQocGFzc2VkPUZhbHNlLCBk
aWZmX2ltYWdlPWInJywgZGlmZmVyZW5jZT0xMDAuMCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc2VsZi5wcm9jLmNtZCwgcG9ydC5famhidWlsZF93cmFwcGVyICsgW3BvcnQuX3BhdGhfdG9f
aW1hZ2VfZGlmZigpLCAiLS10b2xlcmFuY2UiLCAiMCJdKQogCiAgICAgICAgIHBvcnQuY2xlYW5f
dXBfdGVzdF9ydW4oKQpAQCAtMzIzLDEzICszMjcsMTMgQEAgY2xhc3MgUG9ydFRlc3RDYXNlKHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKICAgICAg
ICAgcG9ydC5fc2VydmVyX3Byb2Nlc3NfY29uc3RydWN0b3IgPSBsYW1iZGEgcG9ydCwgbm0sIGNt
ZCwgZW52LCBjcmFzaF9tZXNzYWdlPU5vbmU6IE1vY2tTZXJ2ZXJQcm9jZXNzKGxpbmVzPVsnZGlm
ZjogMCUgcGFzc2VkXG4nXSkKICAgICAgICAgaW1hZ2VfZGlmZmVyID0gSW1hZ2VEaWZmZXIocG9y
dCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbWFnZV9kaWZmZXIuZGlmZl9pbWFnZShiJ2Zv
bycsIGInYmFyJywgMC4xKSwgSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1UcnVlLCBkaWZmX2ltYWdl
PU5vbmUsIGRpZmZlcmVuY2U9MCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW1hZ2VfZGlm
ZmVyLmRpZmZfaW1hZ2UoYidmb28nLCBiJ2JhcicsIHRvbGVyYW5jZT0wLjEpLCBJbWFnZURpZmZS
ZXN1bHQocGFzc2VkPVRydWUsIGRpZmZfaW1hZ2U9Tm9uZSwgZGlmZmVyZW5jZT0wKSkKIAogICAg
IGRlZiB0ZXN0X2RpZmZfaW1hZ2VfZmFpbGVkKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2VsZi5t
YWtlX3BvcnQoKQogICAgICAgICBwb3J0Ll9zZXJ2ZXJfcHJvY2Vzc19jb25zdHJ1Y3RvciA9IGxh
bWJkYSBwb3J0LCBubSwgY21kLCBlbnYsIGNyYXNoX21lc3NhZ2U9Tm9uZTogTW9ja1NlcnZlclBy
b2Nlc3MobGluZXM9WydkaWZmOiAxMDAlIGZhaWxlZFxuJ10pCiAgICAgICAgIGltYWdlX2RpZmZl
ciA9IEltYWdlRGlmZmVyKHBvcnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW1hZ2VfZGlm
ZmVyLmRpZmZfaW1hZ2UoYidmb28nLCBiJ2JhcicsIDAuMSksIEltYWdlRGlmZlJlc3VsdChwYXNz
ZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEwMC4wKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChpbWFnZV9kaWZmZXIuZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFyJywgdG9s
ZXJhbmNlPTAuMSksIEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9Yicn
LCBkaWZmZXJlbmNlPTEwMC4wLCB0b2xlcmFuY2U9MC4xKSkKIAogICAgIGRlZiB0ZXN0X2RpZmZf
aW1hZ2VfY3Jhc2hlZChzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKQEAg
LTM0NSw3ICszNDksNyBAQCBjbGFzcyBQb3J0VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgog
CiAgICAgICAgIHBvcnQuX3NlcnZlcl9wcm9jZXNzX2NvbnN0cnVjdG9yID0gbWFrZV9wcm9jCiAg
ICAgICAgIHBvcnQuc2V0dXBfdGVzdF9ydW4oKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBv
cnQuZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFyJyksIEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFs
c2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTAsIGVycm9yX3N0cmluZz0nSW1hZ2VEaWZm
IGNyYXNoZWRcbicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShi
J2ZvbycsIGInYmFyJyksIEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9
YicnLCBkaWZmZXJlbmNlPTAsIHRvbGVyYW5jZT0wLjEsIGVycm9yX3N0cmluZz0nSW1hZ2VEaWZm
IGNyYXNoZWRcbicpKQogICAgICAgICBwb3J0LmNsZWFuX3VwX3Rlc3RfcnVuKCkKIAogICAgIEBz
bG93Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442459</attachid>
            <date>2021-10-25 20:21:34 -0700</date>
            <delta_ts>2021-10-26 08:04:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232288-20211025202133.patch</filename>
            <type>text/plain</type>
            <size>22035</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0ODAwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYmNkZjllNGIzMmU2ZjlhNDFjM2IyMGYyNzc5ZDJjNDVh
NjczMDE5Ny4uZDAyMzUyOTcxYmMxZDBjYTZmOGE1YTA1Y2MwOWNlYjFjZWJhZDJkMCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1
IEBACisyMDIxLTEwLTI1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIERvbid0IHJ1biBJbWFnZURpZmYgYSBzZWNvbmQgdGltZSB0byBnZW5lcmF0ZSBk
aWZmIGltYWdlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMyMjg4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQ3VycmVudGx5LCBmb3IgYSByZWYgdGVzdCBmYWlsdXJlICh3aGljaCBpcyBhbHdheXMgcnVu
IHdpdGggdG9sZXJhbmNlPTApLCB3ZSBydW4gSW1hZ2VEaWZmIGEKKyAgICAgICAgc2Vjb25kIHRp
bWUgaW4gRmFpbHVyZVJlZnRlc3RNaXNtYXRjaC53cml0ZV9mYWlsdXJlKCkgd2l0aCB0aGUgaW50
ZW50IG9mIGdlbmVyYXRpbmcgYSBkaWZmCisgICAgICAgIGltYWdlIHdpdGggemVybyB0b2xlcmFu
Y2UuCisKKyAgICAgICAgRml4IGJ5IHN0b3JpbmcgdGhlIEltYWdlRGlmZlJlc3VsdCBpbiBGYWls
dXJlUmVmdGVzdE1pc21hdGNoIGFuZCBGYWlsdXJlSW1hZ2VIYXNoTWlzbWF0Y2ggc28KKyAgICAg
ICAgd2UgYWxyZWFkeSBoYXZlIHRoZSBkaWZmIGltYWdlLiBXZSBvbmx5IHJlZ2VuZXJhdGUgaXQg
d2hlbiB0aGUgZmlyc3QgZGlmZiB3YXMgcnVuIHdpdGggYQorICAgICAgICBub24temVybyB0b2xl
cmFuY2UgKG9ubHkgcmVsZXZhbnQgZm9yIHBpeGVsIHRlc3RzKS4gVG8gZmFjaWxpYXRlIHRoaXMs
IHN0b3JlIHRoZSB0b2xlcmFuY2UKKyAgICAgICAgdGhhdCB3YXMgdXNlZCBpbnNpZGUgSW1hZ2VE
aWZmUmVzdWx0IHRvby4KKworICAgICAgICAqIEltYWdlRGlmZi9JbWFnZURpZmYuY3BwOgorICAg
ICAgICAobWFpbik6IFNob3cgdG9sZXJhbmNlIGluIHZlcmJvc2UgbG9nZ2luZy4KKyAgICAgICAg
KiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9y
dW5uZXIucHk6CisgICAgICAgIChTaW5nbGVUZXN0UnVubmVyLl9jb21wYXJlX2ltYWdlKToKKyAg
ICAgICAgKFNpbmdsZVRlc3RSdW5uZXIuX2NvbXBhcmVfb3V0cHV0X3dpdGhfcmVmZXJlbmNlKToK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy90ZXN0
X3Jlc3VsdF93cml0ZXJfdW5pdHRlc3QucHk6CisgICAgICAgIChUZXN0UmVzdWx0V3JpdGVyVGVz
dC50ZXN0X3JlZnRlc3RfZGlmZl9pbWFnZS5JbWFnZURpZmZUZXN0UG9ydC5kaWZmX2ltYWdlKToK
KyAgICAgICAgKFRlc3RSZXN1bHRXcml0ZXJUZXN0KToKKyAgICAgICAgKFRlc3RSZXN1bHRXcml0
ZXJUZXN0LnRlc3RfcmVmdGVzdF9kaWZmX2ltYWdlKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9mYWlsdXJlcy5weToKKyAgICAgICAgKEZhaWx1
cmVJbWFnZUhhc2hNaXNtYXRjaC5fX2luaXRfXyk6CisgICAgICAgIChGYWlsdXJlUmVmdGVzdE1p
c21hdGNoLl9faW5pdF9fKToKKyAgICAgICAgKEZhaWx1cmVSZWZ0ZXN0TWlzbWF0Y2gud3JpdGVf
ZmFpbHVyZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxz
L3Rlc3RfcnVuX3Jlc3VsdHMucHk6CisgICAgICAgIChfaW50ZXJwcmV0X3Rlc3RfZmFpbHVyZXMp
OgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1
bl9yZXN1bHRzX3VuaXR0ZXN0LnB5OgorICAgICAgICAoSW50ZXJwcmV0VGVzdEZhaWx1cmVzVGVz
dC50ZXN0X2ludGVycHJldF90ZXN0X2ZhaWx1cmVzKToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weToKKyAg
ICAgICAgKFJ1blRlc3QudGVzdF90b2xlcmFuY2UuSW1hZ2VEaWZmVGVzdFBvcnQuZGlmZl9pbWFn
ZSk6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2ltYWdlX2RpZmYucHk6CisgICAg
ICAgIChJbWFnZURpZmZSZXN1bHQuX19pbml0X18pOgorICAgICAgICAoSW1hZ2VEaWZmUmVzdWx0
Ll9fcmVwcl9fKToKKyAgICAgICAgKEltYWdlRGlmZmVyLl9yZWFkKToKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvcG9ydF90ZXN0Y2FzZS5weToKKyAgICAgICAgKFBvcnRUZXN0Q2Fz
ZS50ZXN0X2RpZmZfaW1hZ2UpOgorCiAyMDIxLTEwLTI1ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIHdlYmtpdHB5OiBBZGQgYW4gZXhwbGljaXQgSW1h
Z2VEaWZmUmVzdWx0LnBhc3NlZCByYXRoZXIgdGhhbiByZWx5aW5nIG9uIGRpZmZfaW1hZ2UgYmVp
bmcgbm9uLU5vbmUKZGlmZiAtLWdpdCBhL1Rvb2xzL0ltYWdlRGlmZi9JbWFnZURpZmYuY3BwIGIv
VG9vbHMvSW1hZ2VEaWZmL0ltYWdlRGlmZi5jcHAKaW5kZXggM2UwNzAwMjZlNWZkMDdiYjU3Mzli
ODBlYzNlMmUzNzdjY2Y3YWZjZC4uNzRhMjA1NjQxOTU3ZDNmYmIyYjJjZTgwN2JhOWMwZDM5ZWJh
ZjEwMyAxMDA2NDQKLS0tIGEvVG9vbHMvSW1hZ2VEaWZmL0ltYWdlRGlmZi5jcHAKKysrIGIvVG9v
bHMvSW1hZ2VEaWZmL0ltYWdlRGlmZi5jcHAKQEAgLTIxNyw3ICsyMTcsNyBAQCBpbnQgbWFpbihp
bnQgYXJnYywgY29uc3QgY2hhciogYXJndltdKQogCiAgICAgICAgIGlmIChhY3R1YWxJbWFnZSAm
JiBiYXNlbGluZUltYWdlKSB7CiAgICAgICAgICAgICBpZiAodmVyYm9zZSkKLSAgICAgICAgICAg
ICAgICBmcHJpbnRmKHN0ZGVyciwgIkltYWdlRGlmZjogcHJvY2Vzc2luZyBpbWFnZXNcbiIpOwor
ICAgICAgICAgICAgICAgIGZwcmludGYoc3RkZXJyLCAiSW1hZ2VEaWZmOiBwcm9jZXNzaW5nIGlt
YWdlcyB3aXRoIHRvbGVyYW5jZSAlMDEuMmYlJVxuIiwgdG9sZXJhbmNlKTsKICAgICAgICAgICAg
IGF1dG8gcmVzdWx0ID0gcHJvY2Vzc0ltYWdlcyhzdGQ6OmV4Y2hhbmdlKGFjdHVhbEltYWdlLCB7
IH0pLCBzdGQ6OmV4Y2hhbmdlKGJhc2VsaW5lSW1hZ2UsIHsgfSksIHRvbGVyYW5jZSwgcHJpbnRE
aWZmZXJlbmNlKTsKICAgICAgICAgICAgIGlmIChyZXN1bHQgIT0gRVhJVF9TVUNDRVNTKQogICAg
ICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVzdF9ydW5uZXIucHkgYi9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9sbGVycy9zaW5nbGVfdGVz
dF9ydW5uZXIucHkKaW5kZXggNDM3OGI0YzFlMjg3ZGI1MTg5MzVjMzE4MWE4M2QyN2JlMjUzYWYx
Zi4uMzEwZTQyYmI3ZDg4MTk4MDIzNDY2ZGEzNjRmZDM1NTNjZTU1MDEzNyAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvc2luZ2xlX3Rl
c3RfcnVubmVyLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2Nv
bnRyb2xsZXJzL3NpbmdsZV90ZXN0X3J1bm5lci5weQpAQCAtMjk1LDcgKzI5NSw3IEBAIGNsYXNz
IFNpbmdsZVRlc3RSdW5uZXIob2JqZWN0KToKICAgICAgICAgZWxpZiBkcml2ZXJfb3V0cHV0Lmlt
YWdlX2hhc2ggIT0gZXhwZWN0ZWRfZHJpdmVyX291dHB1dC5pbWFnZV9oYXNoOgogICAgICAgICAg
ICAgZGlmZl9yZXN1bHQgPSBzZWxmLl9wb3J0LmRpZmZfaW1hZ2UoZXhwZWN0ZWRfZHJpdmVyX291
dHB1dC5pbWFnZSwgZHJpdmVyX291dHB1dC5pbWFnZSkKICAgICAgICAgICAgIGlmIG5vdCBkaWZm
X3Jlc3VsdC5wYXNzZWQ6Ci0gICAgICAgICAgICAgICAgZmFpbHVyZXMuYXBwZW5kKHRlc3RfZmFp
bHVyZXMuRmFpbHVyZUltYWdlSGFzaE1pc21hdGNoKGRpZmZfcmVzdWx0LmRpZmZfcGVyY2VudCkp
CisgICAgICAgICAgICAgICAgZmFpbHVyZXMuYXBwZW5kKHRlc3RfZmFpbHVyZXMuRmFpbHVyZUlt
YWdlSGFzaE1pc21hdGNoKGRpZmZfcmVzdWx0KSkKICAgICAgICAgICAgICAgICBpZiBkaWZmX3Jl
c3VsdC5lcnJvcl9zdHJpbmc6CiAgICAgICAgICAgICAgICAgICAgIF9sb2cud2FybmluZygnICAl
cyA6ICVzJyAlIChzZWxmLl90ZXN0X25hbWUsIGRpZmZfcmVzdWx0LmVycm9yX3N0cmluZykpCiAg
ICAgICAgICAgICAgICAgICAgIGRyaXZlcl9vdXRwdXQuZXJyb3IgPSAoZHJpdmVyX291dHB1dC5l
cnJvciBvciAnJykgKyBkaWZmX3Jlc3VsdC5lcnJvcl9zdHJpbmcKQEAgLTM1Niw3ICszNTYsNyBA
QCBjbGFzcyBTaW5nbGVUZXN0UnVubmVyKG9iamVjdCk6CiAgICAgICAgICAgICAjIEltYWdlRGlm
ZiBoYXMgYSBoYXJkIGNvZGVkIGNvbG9yIGRpc3RhbmNlIHRocmVzaG9sZCBldmVuIHRob3VnaCB0
b2xlcmFuY2U9MCBpcyBzcGVjaWZpZWQuCiAgICAgICAgICAgICBkaWZmX3Jlc3VsdCA9IHNlbGYu
X3BvcnQuZGlmZl9pbWFnZShyZWZlcmVuY2VfZHJpdmVyX291dHB1dC5pbWFnZSwgYWN0dWFsX2Ry
aXZlcl9vdXRwdXQuaW1hZ2UsIHRvbGVyYW5jZT0wKQogICAgICAgICAgICAgaWYgbm90IGRpZmZf
cmVzdWx0LnBhc3NlZDoKLSAgICAgICAgICAgICAgICBmYWlsdXJlcy5hcHBlbmQodGVzdF9mYWls
dXJlcy5GYWlsdXJlUmVmdGVzdE1pc21hdGNoKHJlZmVyZW5jZV9maWxlbmFtZSkpCisgICAgICAg
ICAgICAgICAgZmFpbHVyZXMuYXBwZW5kKHRlc3RfZmFpbHVyZXMuRmFpbHVyZVJlZnRlc3RNaXNt
YXRjaChyZWZlcmVuY2VfZmlsZW5hbWUsIGRpZmZfcmVzdWx0KSkKICAgICAgICAgICAgICAgICBp
ZiBkaWZmX3Jlc3VsdC5lcnJvcl9zdHJpbmc6CiAgICAgICAgICAgICAgICAgICAgIF9sb2cud2Fy
bmluZygnICAlcyA6ICVzJyAlIChzZWxmLl90ZXN0X25hbWUsIGRpZmZfcmVzdWx0LmVycm9yX3N0
cmluZykpCiAgICAgICAgICAgICAgICAgICAgIGFjdHVhbF9kcml2ZXJfb3V0cHV0LmVycm9yID0g
KGFjdHVhbF9kcml2ZXJfb3V0cHV0LmVycm9yIG9yICcnKSArIGRpZmZfcmVzdWx0LmVycm9yX3N0
cmluZwpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29u
dHJvbGxlcnMvdGVzdF9yZXN1bHRfd3JpdGVyX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvdGVzdF9yZXN1bHRfd3JpdGVyX3VuaXR0
ZXN0LnB5CmluZGV4IDhiMmFlMjM5NTY2N2E4YWRiZTMyNWM1Njc4Mjg0MzhhMTI0ZDMyNDYuLmQ5
MDkyMDhmOGNlZjlhYWQ0NTg3NmJhOWU1NDc5MmE1NGMwMzMyYTYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL3Rlc3RfcmVzdWx0X3dy
aXRlcl91bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9jb250cm9sbGVycy90ZXN0X3Jlc3VsdF93cml0ZXJfdW5pdHRlc3QucHkKQEAgLTQwLDkgKzQw
LDkgQEAgY2xhc3MgVGVzdFJlc3VsdFdyaXRlclRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICB1c2VkX3RvbGVyYW5jZV92YWx1ZXMgPSBbXQogCiAgICAgICAgIGNsYXNzIEltYWdlRGlm
ZlRlc3RQb3J0KFRlc3RQb3J0KToKLSAgICAgICAgICAgIGRlZiBkaWZmX2ltYWdlKHNlbGYsIGV4
cGVjdGVkX2NvbnRlbnRzLCBhY3R1YWxfY29udGVudHMsIHRvbGVyYW5jZT1Ob25lKToKKyAgICAg
ICAgICAgIGRlZiBkaWZmX2ltYWdlKHNlbGYsIGV4cGVjdGVkX2NvbnRlbnRzLCBhY3R1YWxfY29u
dGVudHMsIHRvbGVyYW5jZSk6CiAgICAgICAgICAgICAgICAgdXNlZF90b2xlcmFuY2VfdmFsdWVz
LmFwcGVuZCh0b2xlcmFuY2UpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEltYWdlRGlmZlJlc3Vs
dChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9Yicn
LCBkaWZmZXJlbmNlPTEsIHRvbGVyYW5jZT10b2xlcmFuY2UpCiAKICAgICAgICAgaG9zdCA9IE1v
Y2tIb3N0KCkKICAgICAgICAgcG9ydCA9IEltYWdlRGlmZlRlc3RQb3J0KGhvc3QpCkBAIC01MCw3
ICs1MCw3IEBAIGNsYXNzIFRlc3RSZXN1bHRXcml0ZXJUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToK
ICAgICAgICAgdGVzdF9yZWZlcmVuY2VfZmlsZSA9IGhvc3QuZmlsZXN5c3RlbS5qb2luKHBvcnQu
bGF5b3V0X3Rlc3RzX2RpcigpLCAnZmFpbHVyZXMvdW5leHBlY3RlZC9yZWZ0ZXN0LWV4cGVjdGVk
Lmh0bWwnKQogICAgICAgICBkcml2ZXJfb3V0cHV0MSA9IERyaXZlck91dHB1dCgndGV4dDEnLCAn
aW1hZ2UxJywgJ2ltYWdlaGFzaDEnLCAnYXVkaW8xJykKICAgICAgICAgZHJpdmVyX291dHB1dDIg
PSBEcml2ZXJPdXRwdXQoJ3RleHQyJywgJ2ltYWdlMicsICdpbWFnZWhhc2gyJywgJ2F1ZGlvMicp
Ci0gICAgICAgIGZhaWx1cmVzID0gW3Rlc3RfZmFpbHVyZXMuRmFpbHVyZVJlZnRlc3RNaXNtYXRj
aCh0ZXN0X3JlZmVyZW5jZV9maWxlKV0KKyAgICAgICAgZmFpbHVyZXMgPSBbdGVzdF9mYWlsdXJl
cy5GYWlsdXJlUmVmdGVzdE1pc21hdGNoKHRlc3RfcmVmZXJlbmNlX2ZpbGUsIEltYWdlRGlmZlJl
c3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEsIHRvbGVyYW5j
ZT0xKSldCiAgICAgICAgIHRlc3RfcmVzdWx0X3dyaXRlci53cml0ZV90ZXN0X3Jlc3VsdChob3N0
LmZpbGVzeXN0ZW0sIEltYWdlRGlmZlRlc3RQb3J0KGhvc3QpLCBwb3J0LnJlc3VsdHNfZGlyZWN0
b3J5KCksIHRlc3RfbmFtZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRyaXZlcl9vdXRwdXQxLCBkcml2ZXJfb3V0cHV0MiwgZmFpbHVyZXMpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoWzBdLCB1c2VkX3RvbGVyYW5jZV92YWx1ZXMpCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9mYWlsdXJl
cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2Zh
aWx1cmVzLnB5CmluZGV4IDRmNjExZDAxMDg3MTBhM2ZmMGM1Yzg0MmQ2MzI1YWM3NDY3M2ZjOTQu
LmVmNTdmOWIyMzM1MWY4YzdhNzkzZTNkZmQyYWZlNTZhNjgyNzQ3NWEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2ZhaWx1cmVzLnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2Zh
aWx1cmVzLnB5CkBAIC0yMDEsOSArMjAxLDkgQEAgY2xhc3MgRmFpbHVyZU1pc3NpbmdJbWFnZShU
ZXN0RmFpbHVyZSk6CiAKIAogY2xhc3MgRmFpbHVyZUltYWdlSGFzaE1pc21hdGNoKFRlc3RGYWls
dXJlKToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgZGlmZl9wZXJjZW50PTApOgorICAgIGRlZiBf
X2luaXRfXyhzZWxmLCBpbWFnZV9kaWZmX3Jlc3VsdD1Ob25lKToKICAgICAgICAgc3VwZXIoRmFp
bHVyZUltYWdlSGFzaE1pc21hdGNoLCBzZWxmKS5fX2luaXRfXygpCi0gICAgICAgIHNlbGYuZGlm
Zl9wZXJjZW50ID0gZGlmZl9wZXJjZW50CisgICAgICAgIHNlbGYuaW1hZ2VfZGlmZl9yZXN1bHQg
PSBpbWFnZV9kaWZmX3Jlc3VsdAogCiAgICAgZGVmIG1lc3NhZ2Uoc2VsZik6CiAgICAgICAgIHJl
dHVybiAiaW1hZ2UgZGlmZiIKQEAgLTIxOSwyNSArMjE5LDI2IEBAIGNsYXNzIEZhaWx1cmVJbWFn
ZUhhc2hJbmNvcnJlY3QoVGVzdEZhaWx1cmUpOgogCiAKIGNsYXNzIEZhaWx1cmVSZWZ0ZXN0TWlz
bWF0Y2goVGVzdEZhaWx1cmUpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCByZWZlcmVuY2VfZmls
ZW5hbWU9Tm9uZSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIHJlZmVyZW5jZV9maWxlbmFtZT1O
b25lLCBpbWFnZV9kaWZmX3Jlc3VsdD1Ob25lKToKICAgICAgICAgc3VwZXIoRmFpbHVyZVJlZnRl
c3RNaXNtYXRjaCwgc2VsZikuX19pbml0X18oKQogICAgICAgICBzZWxmLnJlZmVyZW5jZV9maWxl
bmFtZSA9IHJlZmVyZW5jZV9maWxlbmFtZQotICAgICAgICBzZWxmLmRpZmZfcGVyY2VudCA9IE5v
bmUKKyAgICAgICAgc2VsZi5pbWFnZV9kaWZmX3Jlc3VsdCA9IGltYWdlX2RpZmZfcmVzdWx0CiAK
ICAgICBkZWYgbWVzc2FnZShzZWxmKToKICAgICAgICAgcmV0dXJuICJyZWZlcmVuY2UgbWlzbWF0
Y2giCiAKICAgICBkZWYgd3JpdGVfZmFpbHVyZShzZWxmLCB3cml0ZXIsIGRyaXZlcl9vdXRwdXQs
IGV4cGVjdGVkX2RyaXZlcl9vdXRwdXQsIHBvcnQpOgogICAgICAgICB3cml0ZXIud3JpdGVfaW1h
Z2VfZmlsZXMoZHJpdmVyX291dHB1dC5pbWFnZSwgZXhwZWN0ZWRfZHJpdmVyX291dHB1dC5pbWFn
ZSkKLSAgICAgICAgIyBGSVhNRTogVGhpcyB3b3JrIHNob3VsZCBiZSBkb25lIGVhcmxpZXIgaW4g
dGhlIHBpcGVsaW5lIChlLmcuLCB3aGVuIHdlIGNvbXBhcmUgaW1hZ2VzIGZvciBub24tcmVmIHRl
c3RzKS4KLSAgICAgICAgIyBGSVhNRTogV2Ugc2hvdWxkIGFsd2F5cyBoYXZlIDIgaW1hZ2VzIGhl
cmUuCi0gICAgICAgIGlmIGRyaXZlcl9vdXRwdXQuaW1hZ2UgYW5kIGV4cGVjdGVkX2RyaXZlcl9v
dXRwdXQuaW1hZ2U6Ci0gICAgICAgICAgICBkaWZmX3Jlc3VsdCA9IHBvcnQuZGlmZl9pbWFnZShl
eHBlY3RlZF9kcml2ZXJfb3V0cHV0LmltYWdlLCBkcml2ZXJfb3V0cHV0LmltYWdlLCB0b2xlcmFu
Y2U9MCkKLSAgICAgICAgICAgIGlmIGRpZmZfcmVzdWx0LmRpZmZfaW1hZ2U6Ci0gICAgICAgICAg
ICAgICAgd3JpdGVyLndyaXRlX2ltYWdlX2RpZmZfZmlsZXMoZGlmZl9yZXN1bHQuZGlmZl9pbWFn
ZSkKLSAgICAgICAgICAgICAgICBzZWxmLmRpZmZfcGVyY2VudCA9IGRpZmZfcmVzdWx0LmRpZmZf
cGVyY2VudAorICAgICAgICBpZiBzZWxmLmltYWdlX2RpZmZfcmVzdWx0OgorICAgICAgICAgICAg
IyBJZiB0aGUgcmVmIHRlc3Qgd2FzIHJ1biB3aXRoIG5vbi16ZXJvIHRvbGVyYW5jZSwgZ2VuZXJh
dGUgdGhlIGltYWdlIGRpZmYgYWdhaW4gd2l0aCB6ZXJvIHRvbGVyYW5jZS4KKyAgICAgICAgICAg
IGlmIHNlbGYuaW1hZ2VfZGlmZl9yZXN1bHQudG9sZXJhbmNlICE9IDA6CisgICAgICAgICAgICAg
ICAgZGlmZl9pbWFnZSA9IHBvcnQuZGlmZl9pbWFnZShleHBlY3RlZF9kcml2ZXJfb3V0cHV0Lmlt
YWdlLCBkcml2ZXJfb3V0cHV0LmltYWdlLCB0b2xlcmFuY2U9MCkuZGlmZl9pbWFnZQogICAgICAg
ICAgICAgZWxzZToKLSAgICAgICAgICAgICAgICBfbG9nLndhcm4oJ3JlZiB0ZXN0IG1pc21hdGNo
IGRpZCBub3QgcHJvZHVjZSBhbiBpbWFnZSBkaWZmLicpCisgICAgICAgICAgICAgICAgZGlmZl9p
bWFnZSA9IHNlbGYuaW1hZ2VfZGlmZl9yZXN1bHQuZGlmZl9pbWFnZQorCisgICAgICAgICAgICB3
cml0ZXIud3JpdGVfaW1hZ2VfZGlmZl9maWxlcyhkaWZmX2ltYWdlKQorICAgICAgICBlbHNlOgor
ICAgICAgICAgICAgX2xvZy53YXJuKCdyZWYgdGVzdCBtaXNtYXRjaCBkaWQgbm90IHByb2R1Y2Ug
YW4gaW1hZ2UgZGlmZi4nKQogICAgICAgICB3cml0ZXIud3JpdGVfcmVmdGVzdChzZWxmLnJlZmVy
ZW5jZV9maWxlbmFtZSkKIAogCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzLnB5CmluZGV4IGQ4YTg5
ZmQyMzcwMzZjNGMyM2U3MzFiYmI5ODNhZWI5N2YzNjJiMWYuLjJhOTM4OWNhNWFhZTM0NmNkNmM5
NGNkMWU0MDdkYWQ5MmZmNGE1ZGQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkv
bGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzLnB5CkBAIC0y
MTMsNyArMjEzLDcgQEAgZGVmIF9pbnRlcnByZXRfdGVzdF9mYWlsdXJlcyhmYWlsdXJlcyk6CiAg
ICAgaWYgJ2ltYWdlX2RpZmZfcGVyY2VudCcgbm90IGluIHRlc3RfZGljdDoKICAgICAgICAgZm9y
IGZhaWx1cmUgaW4gZmFpbHVyZXM6CiAgICAgICAgICAgICBpZiBpc2luc3RhbmNlKGZhaWx1cmUs
IHRlc3RfZmFpbHVyZXMuRmFpbHVyZUltYWdlSGFzaE1pc21hdGNoKSBvciBpc2luc3RhbmNlKGZh
aWx1cmUsIHRlc3RfZmFpbHVyZXMuRmFpbHVyZVJlZnRlc3RNaXNtYXRjaCk6Ci0gICAgICAgICAg
ICAgICAgdGVzdF9kaWN0WydpbWFnZV9kaWZmX3BlcmNlbnQnXSA9IGZhaWx1cmUuZGlmZl9wZXJj
ZW50CisgICAgICAgICAgICAgICAgdGVzdF9kaWN0WydpbWFnZV9kaWZmX3BlcmNlbnQnXSA9IGZh
aWx1cmUuaW1hZ2VfZGlmZl9yZXN1bHQuZGlmZl9wZXJjZW50CiAKICAgICByZXR1cm4gdGVzdF9k
aWN0CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21v
ZGVscy90ZXN0X3J1bl9yZXN1bHRzX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHNfdW5pdHRlc3QucHkKaW5kZXgg
MDEwNTY2MDEyZGIyMGQ3ZmFmYWE4M2Q0YjEwM2FjZGVhMjA2MWFlYi4uZGIyNDE2MTNjODNiYjNi
ZmZkNjgzYTVmYjliZjc5ODIyMjgxMTY0NSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHNfdW5pdHRlc3QucHkKKysr
IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jl
c3VsdHNfdW5pdHRlc3QucHkKQEAgLTMzLDYgKzMzLDcgQEAgZnJvbSB3ZWJraXRweS5sYXlvdXRf
dGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwogZnJvbSB3ZWJraXRweS5sYXlv
dXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2ZhaWx1cmVzCiBmcm9tIHdlYmtpdHB5LmxheW91
dF90ZXN0cy5tb2RlbHMgaW1wb3J0IHRlc3RfcmVzdWx0cwogZnJvbSB3ZWJraXRweS5sYXlvdXRf
dGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X3J1bl9yZXN1bHRzCitmcm9tIHdlYmtpdHB5LnBvcnQu
aW1hZ2VfZGlmZiBpbXBvcnQgSW1hZ2VEaWZmUmVzdWx0CiBmcm9tIHdlYmtpdHB5LnRvb2wubW9j
a3Rvb2wgaW1wb3J0IE1vY2tPcHRpb25zCiAKIGZyb20gd2Via2l0Y29yZXB5IGltcG9ydCBPdXRw
dXRDYXB0dXJlCkBAIC0xMjQsMTAgKzEyNSwxMCBAQCBjbGFzcyBJbnRlcnByZXRUZXN0RmFpbHVy
ZXNUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgc2VsZi5wb3J0ID0gaG9zdC5wb3J0
X2ZhY3RvcnkuZ2V0KHBvcnRfbmFtZT0ndGVzdCcpCiAKICAgICBkZWYgdGVzdF9pbnRlcnByZXRf
dGVzdF9mYWlsdXJlcyhzZWxmKToKLSAgICAgICAgdGVzdF9kaWN0ID0gdGVzdF9ydW5fcmVzdWx0
cy5faW50ZXJwcmV0X3Rlc3RfZmFpbHVyZXMoW3Rlc3RfZmFpbHVyZXMuRmFpbHVyZUltYWdlSGFz
aE1pc21hdGNoKGRpZmZfcGVyY2VudD0wLjQyKV0pCisgICAgICAgIHRlc3RfZGljdCA9IHRlc3Rf
cnVuX3Jlc3VsdHMuX2ludGVycHJldF90ZXN0X2ZhaWx1cmVzKFt0ZXN0X2ZhaWx1cmVzLkZhaWx1
cmVJbWFnZUhhc2hNaXNtYXRjaChJbWFnZURpZmZSZXN1bHQocGFzc2VkPUZhbHNlLCBkaWZmX2lt
YWdlPWInJywgZGlmZmVyZW5jZT0wLjQyKSldKQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHRl
c3RfZGljdFsnaW1hZ2VfZGlmZl9wZXJjZW50J10sIDAuNDIpCiAKLSAgICAgICAgdGVzdF9kaWN0
ID0gdGVzdF9ydW5fcmVzdWx0cy5faW50ZXJwcmV0X3Rlc3RfZmFpbHVyZXMoW3Rlc3RfZmFpbHVy
ZXMuRmFpbHVyZVJlZnRlc3RNaXNtYXRjaChzZWxmLnBvcnQuYWJzcGF0aF9mb3JfdGVzdCgnZm9v
L3JlZnRlc3QtZXhwZWN0ZWQuaHRtbCcpKV0pCisgICAgICAgIHRlc3RfZGljdCA9IHRlc3RfcnVu
X3Jlc3VsdHMuX2ludGVycHJldF90ZXN0X2ZhaWx1cmVzKFt0ZXN0X2ZhaWx1cmVzLkZhaWx1cmVS
ZWZ0ZXN0TWlzbWF0Y2goc2VsZi5wb3J0LmFic3BhdGhfZm9yX3Rlc3QoJ2Zvby9yZWZ0ZXN0LWV4
cGVjdGVkLmh0bWwnKSwgSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1GYWxzZSwgZGlmZl9pbWFnZT1i
JycsIGRpZmZlcmVuY2U9MTAwLjApKV0pCiAgICAgICAgIHNlbGYuYXNzZXJ0SW4oJ2ltYWdlX2Rp
ZmZfcGVyY2VudCcsIHRlc3RfZGljdCkKIAogICAgICAgICB0ZXN0X2RpY3QgPSB0ZXN0X3J1bl9y
ZXN1bHRzLl9pbnRlcnByZXRfdGVzdF9mYWlsdXJlcyhbdGVzdF9mYWlsdXJlcy5GYWlsdXJlUmVm
dGVzdE1pc21hdGNoRGlkTm90T2NjdXIoc2VsZi5wb3J0LmFic3BhdGhfZm9yX3Rlc3QoJ2Zvby9y
ZWZ0ZXN0LWV4cGVjdGVkLW1pc21hdGNoLmh0bWwnKSldKQpkaWZmIC0tZ2l0IGEvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcnVuX3dlYmtpdF90ZXN0c19pbnRlZ3JhdGlvbnRl
c3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0X3Rl
c3RzX2ludGVncmF0aW9udGVzdC5weQppbmRleCBjODcwZDRlNTBkNWZjY2E4YTE5NzBiMjZkY2Q2
YWU3NGY2NzYxODExLi5hNWY4NTRkOTNjOTkzYTQyZTc1ODc1ZGE4N2VjMjQ3YmNmNTlmMTI0IDEw
MDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9ydW5fd2Via2l0
X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9ydW5fd2Via2l0X3Rlc3RzX2ludGVncmF0aW9udGVzdC5weQpAQCAtNzUyLDcg
Kzc1Miw3IEBAIGNsYXNzIFJ1blRlc3QodW5pdHRlc3QuVGVzdENhc2UsIFN0cmVhbVRlc3RpbmdN
aXhpbik6CiAgICAgICAgIGNsYXNzIEltYWdlRGlmZlRlc3RQb3J0KHRlc3QuVGVzdFBvcnQpOgog
ICAgICAgICAgICAgZGVmIGRpZmZfaW1hZ2Uoc2VsZiwgZXhwZWN0ZWRfY29udGVudHMsIGFjdHVh
bF9jb250ZW50cywgdG9sZXJhbmNlPU5vbmUpOgogICAgICAgICAgICAgICAgIHNlbGYudG9sZXJh
bmNlX3VzZWRfZm9yX2RpZmZfaW1hZ2UgPSBzZWxmLl9vcHRpb25zLnRvbGVyYW5jZQotICAgICAg
ICAgICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1bHQocGFzc2VkPUZhbHNlLCBkaWZmX2ltYWdl
PWInJywgZGlmZmVyZW5jZT0xKQorICAgICAgICAgICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1
bHQocGFzc2VkPUZhbHNlLCBkaWZmX2ltYWdlPWInJywgZGlmZmVyZW5jZT0xLCB0b2xlcmFuY2U9
c2VsZi5fb3B0aW9ucy50b2xlcmFuY2Ugb3IgMCkKIAogICAgICAgICBkZWYgZ2V0X3BvcnRfZm9y
X3J1bihhcmdzKToKICAgICAgICAgICAgIG9wdGlvbnMsIHBhcnNlZF9hcmdzID0gcnVuX3dlYmtp
dF90ZXN0cy5wYXJzZV9hcmdzKGFyZ3MpCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L3BvcnQvaW1hZ2VfZGlmZi5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pbWFn
ZV9kaWZmLnB5CmluZGV4IGNiOGIzZjA0ZWEzN2Y5ZjlmOTJjMGUzMDQ1Mzc0ODYxZmE3OGFmYjUu
LmRlYTZmMDc1NjJmMDFkMDI4ZGFlNmFjOGE5MWQ3ZDNlODcxMWZiMTYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9pbWFnZV9kaWZmLnB5CisrKyBiL1Rvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9pbWFnZV9kaWZmLnB5CkBAIC00MCwxMCArNDAsMTEgQEAgX2xvZyA9
IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9fbmFtZV9fKQogCiAKIGNsYXNzIEltYWdlRGlmZlJlc3VsdChv
YmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXNzZWQsIGRpZmZfaW1hZ2UsIGRpZmZl
cmVuY2UsIGVycm9yX3N0cmluZz1Ob25lKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgcGFzc2Vk
LCBkaWZmX2ltYWdlLCBkaWZmZXJlbmNlLCB0b2xlcmFuY2U9MCwgZXJyb3Jfc3RyaW5nPU5vbmUp
OgogICAgICAgICBzZWxmLnBhc3NlZCA9IHBhc3NlZAogICAgICAgICBzZWxmLmRpZmZfaW1hZ2Ug
PSBkaWZmX2ltYWdlCiAgICAgICAgIHNlbGYuZGlmZl9wZXJjZW50ID0gZGlmZmVyZW5jZQorICAg
ICAgICBzZWxmLnRvbGVyYW5jZSA9IHRvbGVyYW5jZQogICAgICAgICBzZWxmLmVycm9yX3N0cmlu
ZyA9IGVycm9yX3N0cmluZwogCiAgICAgZGVmIF9fZXFfXyhzZWxmLCBvdGhlcik6CkBAIC01MSw2
ICs1Miw3IEBAIGNsYXNzIEltYWdlRGlmZlJlc3VsdChvYmplY3QpOgogICAgICAgICAgICAgcmV0
dXJuIChzZWxmLnBhc3NlZCA9PSBvdGhlci5wYXNzZWQgYW5kCiAgICAgICAgICAgICAgICAgICAg
IHNlbGYuZGlmZl9pbWFnZSA9PSBvdGhlci5kaWZmX2ltYWdlIGFuZAogICAgICAgICAgICAgICAg
ICAgICBzZWxmLmRpZmZfcGVyY2VudCA9PSBvdGhlci5kaWZmX3BlcmNlbnQgYW5kCisgICAgICAg
ICAgICAgICAgICAgIHNlbGYudG9sZXJhbmNlID09IG90aGVyLnRvbGVyYW5jZSBhbmQKICAgICAg
ICAgICAgICAgICAgICAgc2VsZi5lcnJvcl9zdHJpbmcgPT0gb3RoZXIuZXJyb3Jfc3RyaW5nKQog
CiAgICAgICAgIHJldHVybiBGYWxzZQpAQCAtNTksNyArNjEsNyBAQCBjbGFzcyBJbWFnZURpZmZS
ZXN1bHQob2JqZWN0KToKICAgICAgICAgcmV0dXJuIG5vdCBzZWxmLl9fZXFfXyhvdGhlcikKIAog
ICAgIGRlZiBfX3JlcHJfXyhzZWxmKToKLSAgICAgICAgcmV0dXJuICdJbWFnZURpZmZSZXN1bHQo
UGFzc2VkIHt9IHt9IHt9IHt9KScuZm9ybWF0KHNlbGYucGFzc2VkLCBzZWxmLmRpZmZfaW1hZ2Us
IHNlbGYuZGlmZl9wZXJjZW50LCBzZWxmLmVycm9yX3N0cmluZykKKyAgICAgICAgcmV0dXJuICdJ
bWFnZURpZmZSZXN1bHQoUGFzc2VkIHt9IHt9IGRpZmYge30gdG9sZXJhbmNlIHt9IHt9KScuZm9y
bWF0KHNlbGYucGFzc2VkLCBzZWxmLmRpZmZfaW1hZ2UsIHNlbGYuZGlmZl9wZXJjZW50LCBzZWxm
LnRvbGVyYW5jZSwgc2VsZi5lcnJvcl9zdHJpbmcpCiAKIGNsYXNzIEltYWdlRGlmZmVyKG9iamVj
dCk6CiAgICAgZGVmIF9faW5pdF9fKHNlbGYsIHBvcnQpOgpAQCAtMTMzLDcgKzEzNSw3IEBAIGNs
YXNzIEltYWdlRGlmZmVyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgcmV0dXJuIEltYWdlRGlm
ZlJlc3VsdChwYXNzZWQ9VHJ1ZSwgZGlmZl9pbWFnZT1Ob25lLCBkaWZmZXJlbmNlPTApCiAgICAg
ICAgICAgICBkaWZmX3BlcmNlbnQgPSBmbG9hdChzdHJpbmdfdXRpbHMuZGVjb2RlKG0uZ3JvdXAo
MSksIHRhcmdldF90eXBlPXN0cikpCiAKLSAgICAgICAgcmV0dXJuIEltYWdlRGlmZlJlc3VsdChw
YXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9b3V0cHV0X2ltYWdlLCBkaWZmZXJlbmNlPWRpZmZfcGVy
Y2VudCwgZXJyb3Jfc3RyaW5nPWVycl9zdHIgb3IgTm9uZSkKKyAgICAgICAgcmV0dXJuIEltYWdl
RGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9b3V0cHV0X2ltYWdlLCBkaWZmZXJl
bmNlPWRpZmZfcGVyY2VudCwgdG9sZXJhbmNlPXNlbGYuX3RvbGVyYW5jZSwgZXJyb3Jfc3RyaW5n
PWVycl9zdHIgb3IgTm9uZSkKIAogICAgIGRlZiBzdG9wKHNlbGYpOgogICAgICAgICBpZiBzZWxm
Ll9wcm9jZXNzOgpkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3BvcnRf
dGVzdGNhc2UucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvcG9ydF90ZXN0Y2FzZS5w
eQppbmRleCBiZjMxZmE2OTkwZTIyNThlN2U3ZDk0ZmI5N2QwMWNmOTU5NTllOWUzLi5kM2UxYjk1
Yjc0OWRjMzliMjU2NjdhNTFkYTA3YjdkZWIxZTljNWMxIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvcG9ydF90ZXN0Y2FzZS5weQorKysgYi9Ub29scy9TY3JpcHRzL3dl
YmtpdHB5L3BvcnQvcG9ydF90ZXN0Y2FzZS5weQpAQCAtMjk3LDIyICsyOTcsMjYgQEAgY2xhc3Mg
UG9ydFRlc3RDYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIyBGaXJzdCB0ZXN0IHRo
ZSBjYXNlIG9mIG5vdCB1c2luZyB0aGUgSkhCdWlsZCB3cmFwcGVyLgogICAgICAgICBzZWxmLmFz
c2VydEZhbHNlKHBvcnQuX3Nob3VsZF91c2VfamhidWlsZCgpKQogCi0gICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwocG9ydC5kaWZmX2ltYWdlKGInZm9vJywgYidiYXInKSwgSW1hZ2VEaWZmUmVzdWx0
KHBhc3NlZD1GYWxzZSwgZGlmZl9pbWFnZT1iJycsIGRpZmZlcmVuY2U9MTAwLjApKQorICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFyJyksIEltYWdl
RGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEwMC4w
LCB0b2xlcmFuY2U9MC4xKSkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLnByb2MuY21k
LCBbcG9ydC5fcGF0aF90b19pbWFnZV9kaWZmKCksICItLXRvbGVyYW5jZSIsICIwLjEiXSkKLSAg
ICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmRpZmZfaW1hZ2UoYidmb28nLCBiJ2JhcicsIE5v
bmUpLCBJbWFnZURpZmZSZXN1bHQocGFzc2VkPUZhbHNlLCBkaWZmX2ltYWdlPWInJywgZGlmZmVy
ZW5jZT0xMDAuMCkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmRpZmZfaW1hZ2Uo
Yidmb28nLCBiJ2JhcicsIHRvbGVyYW5jZT1Ob25lKSwgSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1G
YWxzZSwgZGlmZl9pbWFnZT1iJycsIGRpZmZlcmVuY2U9MTAwLjAsIHRvbGVyYW5jZT0wLjEpKQog
ICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHNlbGYucHJvYy5jbWQsIFtwb3J0Ll9wYXRoX3RvX2lt
YWdlX2RpZmYoKSwgIi0tdG9sZXJhbmNlIiwgIjAuMSJdKQotICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKHBvcnQuZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFyJywgMCksIEltYWdlRGlmZlJlc3VsdChw
YXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEwMC4wKSkKKworICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFyJywgdG9sZXJh
bmNlPTApLCBJbWFnZURpZmZSZXN1bHQocGFzc2VkPUZhbHNlLCBkaWZmX2ltYWdlPWInJywgZGlm
ZmVyZW5jZT0xMDAuMCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5wcm9jLmNtZCwg
W3BvcnQuX3BhdGhfdG9faW1hZ2VfZGlmZigpLCAiLS10b2xlcmFuY2UiLCAiMCJdKQogCiAgICAg
ICAgICMgTm93IHRlc3QgdGhlIGNhc2Ugb2YgdXNpbmcgSkhCdWlsZCB3cmFwcGVyLgogICAgICAg
ICBwb3J0Ll9maWxlc3lzdGVtLm1heWJlX21ha2VfZGlyZWN0b3J5KHBvcnQucGF0aF9mcm9tX3dl
YmtpdF9iYXNlKCdXZWJLaXRCdWlsZCcsICdEZXBlbmRlbmNpZXMlcycgJSBwb3J0LnBvcnRfbmFt
ZS51cHBlcigpKSkKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQuX3Nob3VsZF91c2Vfamhi
dWlsZCgpKQogCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5kaWZmX2ltYWdlKGInZm9v
JywgYidiYXInKSwgSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1GYWxzZSwgZGlmZl9pbWFnZT1iJycs
IGRpZmZlcmVuY2U9MTAwLjApKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9p
bWFnZShiJ2ZvbycsIGInYmFyJyksIEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZf
aW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEwMC4wLCB0b2xlcmFuY2U9MC4xKSkKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzZWxmLnByb2MuY21kLCBwb3J0Ll9qaGJ1aWxkX3dyYXBwZXIgKyBbcG9y
dC5fcGF0aF90b19pbWFnZV9kaWZmKCksICItLXRvbGVyYW5jZSIsICIwLjEiXSkKLSAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChwb3J0LmRpZmZfaW1hZ2UoYidmb28nLCBiJ2JhcicsIE5vbmUpLCBJ
bWFnZURpZmZSZXN1bHQocGFzc2VkPUZhbHNlLCBkaWZmX2ltYWdlPWInJywgZGlmZmVyZW5jZT0x
MDAuMCkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0LmRpZmZfaW1hZ2UoYidmb28n
LCBiJ2JhcicsIHRvbGVyYW5jZT1Ob25lKSwgSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1GYWxzZSwg
ZGlmZl9pbWFnZT1iJycsIGRpZmZlcmVuY2U9MTAwLjAsIHRvbGVyYW5jZT0wLjEpKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKHNlbGYucHJvYy5jbWQsIHBvcnQuX2poYnVpbGRfd3JhcHBlciAr
IFtwb3J0Ll9wYXRoX3RvX2ltYWdlX2RpZmYoKSwgIi0tdG9sZXJhbmNlIiwgIjAuMSJdKQotICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFyJywgMCks
IEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNl
PTEwMC4wKSkKKworICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShiJ2Zv
bycsIGInYmFyJywgdG9sZXJhbmNlPTApLCBJbWFnZURpZmZSZXN1bHQocGFzc2VkPUZhbHNlLCBk
aWZmX2ltYWdlPWInJywgZGlmZmVyZW5jZT0xMDAuMCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc2VsZi5wcm9jLmNtZCwgcG9ydC5famhidWlsZF93cmFwcGVyICsgW3BvcnQuX3BhdGhfdG9f
aW1hZ2VfZGlmZigpLCAiLS10b2xlcmFuY2UiLCAiMCJdKQogCiAgICAgICAgIHBvcnQuY2xlYW5f
dXBfdGVzdF9ydW4oKQpAQCAtMzIzLDEzICszMjcsMTMgQEAgY2xhc3MgUG9ydFRlc3RDYXNlKHVu
aXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKICAgICAg
ICAgcG9ydC5fc2VydmVyX3Byb2Nlc3NfY29uc3RydWN0b3IgPSBsYW1iZGEgcG9ydCwgbm0sIGNt
ZCwgZW52LCBjcmFzaF9tZXNzYWdlPU5vbmU6IE1vY2tTZXJ2ZXJQcm9jZXNzKGxpbmVzPVsnZGlm
ZjogMCUgcGFzc2VkXG4nXSkKICAgICAgICAgaW1hZ2VfZGlmZmVyID0gSW1hZ2VEaWZmZXIocG9y
dCkKLSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChpbWFnZV9kaWZmZXIuZGlmZl9pbWFnZShiJ2Zv
bycsIGInYmFyJywgMC4xKSwgSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1UcnVlLCBkaWZmX2ltYWdl
PU5vbmUsIGRpZmZlcmVuY2U9MCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW1hZ2VfZGlm
ZmVyLmRpZmZfaW1hZ2UoYidmb28nLCBiJ2JhcicsIHRvbGVyYW5jZT0wLjEpLCBJbWFnZURpZmZS
ZXN1bHQocGFzc2VkPVRydWUsIGRpZmZfaW1hZ2U9Tm9uZSwgZGlmZmVyZW5jZT0wKSkKIAogICAg
IGRlZiB0ZXN0X2RpZmZfaW1hZ2VfZmFpbGVkKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2VsZi5t
YWtlX3BvcnQoKQogICAgICAgICBwb3J0Ll9zZXJ2ZXJfcHJvY2Vzc19jb25zdHJ1Y3RvciA9IGxh
bWJkYSBwb3J0LCBubSwgY21kLCBlbnYsIGNyYXNoX21lc3NhZ2U9Tm9uZTogTW9ja1NlcnZlclBy
b2Nlc3MobGluZXM9WydkaWZmOiAxMDAlIGZhaWxlZFxuJ10pCiAgICAgICAgIGltYWdlX2RpZmZl
ciA9IEltYWdlRGlmZmVyKHBvcnQpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoaW1hZ2VfZGlm
ZmVyLmRpZmZfaW1hZ2UoYidmb28nLCBiJ2JhcicsIDAuMSksIEltYWdlRGlmZlJlc3VsdChwYXNz
ZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTEwMC4wKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChpbWFnZV9kaWZmZXIuZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFyJywgdG9s
ZXJhbmNlPTAuMSksIEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9Yicn
LCBkaWZmZXJlbmNlPTEwMC4wLCB0b2xlcmFuY2U9MC4xKSkKIAogICAgIGRlZiB0ZXN0X2RpZmZf
aW1hZ2VfY3Jhc2hlZChzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKQEAg
LTM0NSw3ICszNDksNyBAQCBjbGFzcyBQb3J0VGVzdENhc2UodW5pdHRlc3QuVGVzdENhc2UpOgog
CiAgICAgICAgIHBvcnQuX3NlcnZlcl9wcm9jZXNzX2NvbnN0cnVjdG9yID0gbWFrZV9wcm9jCiAg
ICAgICAgIHBvcnQuc2V0dXBfdGVzdF9ydW4oKQotICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBv
cnQuZGlmZl9pbWFnZShiJ2ZvbycsIGInYmFyJyksIEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFs
c2UsIGRpZmZfaW1hZ2U9YicnLCBkaWZmZXJlbmNlPTAsIGVycm9yX3N0cmluZz0nSW1hZ2VEaWZm
IGNyYXNoZWRcbicpKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuZGlmZl9pbWFnZShi
J2ZvbycsIGInYmFyJyksIEltYWdlRGlmZlJlc3VsdChwYXNzZWQ9RmFsc2UsIGRpZmZfaW1hZ2U9
YicnLCBkaWZmZXJlbmNlPTAsIHRvbGVyYW5jZT0wLjEsIGVycm9yX3N0cmluZz0nSW1hZ2VEaWZm
IGNyYXNoZWRcbicpKQogICAgICAgICBwb3J0LmNsZWFuX3VwX3Rlc3RfcnVuKCkKIAogICAgIEBz
bG93CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvdGVzdC5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC90ZXN0LnB5CmluZGV4IDEyMTY3MzgxMzVhNzhhMWRm
MTM4NzY4ZTc3ZDg4Yjc2ZTA3Y2QwYWYuLjMxOGE3YWZhZGQzZjI0MzgzMTVhZTQ3MTZlZDRhZTBj
ZGI4MjZjYmQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC90ZXN0LnB5
CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC90ZXN0LnB5CkBAIC00MDgsMTAgKzQw
OCwxMCBAQCBjbGFzcyBUZXN0UG9ydChQb3J0KToKICAgICAgICAgYWN0dWFsX2NvbnRlbnRzID0g
c3RyaW5nX3V0aWxzLmVuY29kZShhY3R1YWxfY29udGVudHMpCiAgICAgICAgIGRpZmZlZCA9IGFj
dHVhbF9jb250ZW50cyAhPSBleHBlY3RlZF9jb250ZW50cwogICAgICAgICBpZiBub3QgYWN0dWFs
X2NvbnRlbnRzIGFuZCBub3QgZXhwZWN0ZWRfY29udGVudHM6Ci0gICAgICAgICAgICByZXR1cm4g
SW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1UcnVlLCBkaWZmX2ltYWdlPU5vbmUsIGRpZmZlcmVuY2U9
MCkKKyAgICAgICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1bHQocGFzc2VkPVRydWUsIGRpZmZf
aW1hZ2U9Tm9uZSwgZGlmZmVyZW5jZT0wLCB0b2xlcmFuY2U9dG9sZXJhbmNlIG9yIDApCiAKICAg
ICAgICAgaWYgbm90IGFjdHVhbF9jb250ZW50cyBvciBub3QgZXhwZWN0ZWRfY29udGVudHM6Ci0g
ICAgICAgICAgICByZXR1cm4gSW1hZ2VEaWZmUmVzdWx0KHBhc3NlZD1GYWxzZSwgZGlmZl9pbWFn
ZT1iJycsIGRpZmZlcmVuY2U9MCkKKyAgICAgICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1bHQo
cGFzc2VkPUZhbHNlLCBkaWZmX2ltYWdlPWInJywgZGlmZmVyZW5jZT0wLCB0b2xlcmFuY2U9dG9s
ZXJhbmNlIG9yIDApCiAKICAgICAgICAgaWYgYidyZWYnIGluIGV4cGVjdGVkX2NvbnRlbnRzOgog
ICAgICAgICAgICAgYXNzZXJ0IHRvbGVyYW5jZSA9PSAwCkBAIC00MjIsOSArNDIyLDEwIEBAIGNs
YXNzIFRlc3RQb3J0KFBvcnQpOgogICAgICAgICAgICAgICAgICAgICBzdHJpbmdfdXRpbHMuZGVj
b2RlKGV4cGVjdGVkX2NvbnRlbnRzLCB0YXJnZXRfdHlwZT1zdHIpLAogICAgICAgICAgICAgICAg
ICAgICBzdHJpbmdfdXRpbHMuZGVjb2RlKGFjdHVhbF9jb250ZW50cywgdGFyZ2V0X3R5cGU9c3Ry
KSwKICAgICAgICAgICAgICAgICApLAotICAgICAgICAgICAgICAgIGRpZmZlcmVuY2U9MSkKKyAg
ICAgICAgICAgICAgICBkaWZmZXJlbmNlPTEsCisgICAgICAgICAgICAgICAgdG9sZXJhbmNlPXRv
bGVyYW5jZSBvciAwKQogCi0gICAgICAgIHJldHVybiBJbWFnZURpZmZSZXN1bHQocGFzc2VkPVRy
dWUsIGRpZmZfaW1hZ2U9Tm9uZSwgZGlmZmVyZW5jZT0wKQorICAgICAgICByZXR1cm4gSW1hZ2VE
aWZmUmVzdWx0KHBhc3NlZD1UcnVlLCBkaWZmX2ltYWdlPU5vbmUsIGRpZmZlcmVuY2U9MCwgdG9s
ZXJhbmNlPXRvbGVyYW5jZSBvciAwKQogCiAgICAgZGVmIGxheW91dF90ZXN0c19kaXIoc2VsZik6
CiAgICAgICAgIHJldHVybiBMQVlPVVRfVEVTVF9ESVIK
</data>

          </attachment>
      

    </bug>

</bugzilla>