<?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>189088</bug_id>
          
          <creation_ts>2018-08-29 10:25:48 -0700</creation_ts>
          <short_desc>Make it possible to mark tests as leaks in TestExpectations</short_desc>
          <delta_ts>2018-08-31 13:04:18 -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>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>
          
          <blocked>186214</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Simon Fraser (smfr)">simon.fraser</assigned_to>
          <cc>ap</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jbedard</cc>
    
    <cc>jonlee</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1454827</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-29 10:25:48 -0700</bug_when>
    <thetext>Make it possible to mark tests as leaks in TestExpectations</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454828</commentid>
    <comment_count>1</comment_count>
      <attachid>348411</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-29 10:28:41 -0700</bug_when>
    <thetext>Created attachment 348411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454830</commentid>
    <comment_count>2</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-29 10:29:34 -0700</bug_when>
    <thetext>Needs the patch from bug 189067.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454889</commentid>
    <comment_count>3</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2018-08-29 12:42:51 -0700</bug_when>
    <thetext>Is the intention to have this enabled by default or to have a queue explicitly testing it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454896</commentid>
    <comment_count>4</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-29 12:59:36 -0700</bug_when>
    <thetext>Enabled by default on some platforms.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454898</commentid>
    <comment_count>5</comment_count>
      <attachid>348424</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-29 13:02:29 -0700</bug_when>
    <thetext>Created attachment 348424
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454914</commentid>
    <comment_count>6</comment_count>
      <attachid>348424</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-08-29 13:55:53 -0700</bug_when>
    <thetext>Comment on attachment 348424
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:75
&gt; +Bug(test) failures/expected/leaky-reftest.html [ ImageOnlyFailure Leak ]

I still think that &quot;Leak&quot; is a confusing name for this - I definitely wouldn&apos;t think that it has any relationship to document leaks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454940</commentid>
    <comment_count>7</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-29 14:51:50 -0700</bug_when>
    <thetext>I went with &quot;leak&quot; because &quot;abandoned document&quot; is too long, we may want to track other types of leaked objects (e.g. Frames) later, and it&apos;s consistent with the &quot;world leak&quot; term that WebKit has used historically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1454946</commentid>
    <comment_count>8</comment_count>
      <attachid>348435</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-29 15:11:57 -0700</bug_when>
    <thetext>Created attachment 348435
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455243</commentid>
    <comment_count>9</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-30 09:32:14 -0700</bug_when>
    <thetext>Review ping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455252</commentid>
    <comment_count>10</comment_count>
      <attachid>348435</attachid>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2018-08-30 09:53:41 -0700</bug_when>
    <thetext>Comment on attachment 348435
Patch

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

&gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:-248
&gt; -        &apos;Leak&apos;: &apos;LEAK&apos;,

There are enough here that maybe the list should just be alphabetized...?

&gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:868
&gt;              expected_results.add(PASS)

Not part of your patch, but it seems like this is wrong.

&gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations_unittest.py:136
&gt;          self.assertEqual(TestExpectations.remove_pixel_failures(set([PASS, IMAGE, CRASH])), set([PASS, CRASH]))

Maybe add some test cases with LEAK here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455822</commentid>
    <comment_count>11</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2018-08-31 13:03:32 -0700</bug_when>
    <thetext>https://trac.webkit.org/r235564</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1455823</commentid>
    <comment_count>12</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-08-31 13:04:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/43952197&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348411</attachid>
            <date>2018-08-29 10:28:41 -0700</date>
            <delta_ts>2018-08-29 13:02:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189088-20180829102840.patch</filename>
            <type>text/plain</type>
            <size>18242</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDUzCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjFiNmM3ODg5MjNmY2FjNDZiNzg0YWQ1ODAwNjdjZjli
ZDE4YTY3NS4uMzI1YWZkNmMyNzgzMTMwM2IxZTM1YzdmNWZjZjExZjc1ZDdmYWRjZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDE4LTA4LTI5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgaXQgcG9zc2libGUgdG8gbWFyayB0ZXN0cyBhcyBsZWFrcyBpbiBUZXN0
RXhwZWN0YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODkwODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAg
ICAgCisgICAgICAgIEhhdmUgd2Via2l0cHkgcGFyc2Ugb3V0ICJMZWFrIiBleHBlY3RhdGlvbnMg
aW4gVGVzdEV4cGVjdGF0aW9ucywgYW5kIGRvIHRoZSByaWdodAorICAgICAgICB0aGluZyBpZiB0
aGUgdGVzdCBydW4gZGlkIG5vdCB1c2UgLS13b3JsZC1sZWFrcy4gQWRkIHVuaXQgdGVzdHMgZm9y
IGxlYWtzIGNvbWJpbmVkCisgICAgICAgIHdpdGggdmFyaW91cyBvdGhlciByZXN1bHQgY29tYmlu
YXRpb25zLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJv
bGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5OgorICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lci5f
dXBkYXRlX3N1bW1hcnlfd2l0aF9yZXN1bHQpOgorICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lci5f
YW5ub3RhdGVfcmVzdWx0c193aXRoX2FkZGl0aW9uYWxfZmFpbHVyZXMpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weToK
KyAgICAgICAgKFRlc3RFeHBlY3RhdGlvblBhcnNlcik6CisgICAgICAgIChUZXN0RXhwZWN0YXRp
b25zKTogVGhlICdMZWFrJyBsaW5lIHdhcyBkdXBsaWNhdGVkIGhlcmUsIHNvIHJlbW92ZSBhIGNv
cHkuCisgICAgICAgIChUZXN0RXhwZWN0YXRpb25zLnJlbW92ZV9sZWFrX2ZhaWx1cmVzKToKKyAg
ICAgICAgKFRlc3RFeHBlY3RhdGlvbnMubWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQpOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0
aW9uc191bml0dGVzdC5weToKKyAgICAgICAgKEJhc2UuZ2V0X2Jhc2ljX3Rlc3RzKToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvdGVzdC5weToKKyAgICAgICAgKFRlc3RMaXN0LmFk
ZF9yZWZ0ZXN0KToKKyAgICAgICAgKHVuaXRfdGVzdF9saXN0KToKKwogMjAxOC0wOC0yOCAgU2lt
b24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBUZWFjaCB3ZWJr
aXRweSBob3cgdG8gY2hlY2sgbGVha3MgYW5kIHRyZWF0IGxlYWtzIGFzIHRlc3QgZmFpbHVyZXMK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xs
ZXJzL2xheW91dF90ZXN0X3J1bm5lci5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5lci5weQppbmRleCAwNzY1NDdkNGVk
Nzg1NTBhODAwNjhhZmNkODM4YjVhYzBmOGIxYjY0Li40YjE5OTc0ZDk4NzRkZDgyNmQzYWI1ZDZk
YjJiODBlZWQ5OWQxNDEyIDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkKKysrIGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVy
LnB5CkBAIC0xODIsNyArMTgyLDcgQEAgY2xhc3MgTGF5b3V0VGVzdFJ1bm5lcihvYmplY3QpOgog
ICAgICAgICAgICAgZXhwX3N0ciA9IGdvdF9zdHIgPSAnU0tJUCcKICAgICAgICAgICAgIGV4cGVj
dGVkID0gVHJ1ZQogICAgICAgICBlbHNlOgotICAgICAgICAgICAgZXhwZWN0ZWQgPSBzZWxmLl9l
eHBlY3RhdGlvbnMubWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQocmVzdWx0LnRlc3RfbmFtZSwg
cmVzdWx0LnR5cGUsIHNlbGYuX29wdGlvbnMucGl4ZWxfdGVzdHMgb3IgcmVzdWx0LnJlZnRlc3Rf
dHlwZSkKKyAgICAgICAgICAgIGV4cGVjdGVkID0gc2VsZi5fZXhwZWN0YXRpb25zLm1hdGNoZXNf
YW5fZXhwZWN0ZWRfcmVzdWx0KHJlc3VsdC50ZXN0X25hbWUsIHJlc3VsdC50eXBlLCBzZWxmLl9v
cHRpb25zLnBpeGVsX3Rlc3RzIG9yIHJlc3VsdC5yZWZ0ZXN0X3R5cGUsIHNlbGYuX29wdGlvbnMu
d29ybGRfbGVha3MpCiAgICAgICAgICAgICBleHBfc3RyID0gc2VsZi5fZXhwZWN0YXRpb25zLm1v
ZGVsKCkuZ2V0X2V4cGVjdGF0aW9uc19zdHJpbmcocmVzdWx0LnRlc3RfbmFtZSkKICAgICAgICAg
ICAgIGdvdF9zdHIgPSBzZWxmLl9leHBlY3RhdGlvbnMubW9kZWwoKS5leHBlY3RhdGlvbl90b19z
dHJpbmcocmVzdWx0LnR5cGUpCiAKQEAgLTE5OCw4ICsxOTgsOCBAQCBjbGFzcyBMYXlvdXRUZXN0
UnVubmVyKG9iamVjdCk6CiAgICAgICAgICAgICAjIFdoZW4gcnVubmluZyBhIGNodW5rICgtLXJ1
bi1jaHVuayksIHJlc3VsdHNfYnlfbmFtZSBjb250YWlucyBhbGwgdGhlIHRlc3RzLCBidXQgKGNv
bmZ1c2luZ2x5KSBhbGxfdGVzdHMgb25seSBjb250YWlucyB0aG9zZSBpbiB0aGUgY2h1bmsgdGhh
dCB3YXMgcnVuLAogICAgICAgICAgICAgIyBhbmQgd2UgZG9uJ3Qgd2FudCB0byBtb2RpZnkgdGhl
IHJlc3VsdHMgb2YgYSB0ZXN0IHRoYXQgZGlkbid0IHJ1bi4gZXhpc3RpbmdfcmVzdWx0LnRlc3Rf
bnVtYmVyIGlzIG9ubHkgbm9uLU5vbmUgZm9yIHRlc3RzIHRoYXQgcmFuLgogICAgICAgICAgICAg
aWYgZXhpc3RpbmdfcmVzdWx0IGFuZCBleGlzdGluZ19yZXN1bHQudGVzdF9udW1iZXIgaXMgbm90
IE5vbmU6Ci0gICAgICAgICAgICAgICAgd2FzX2V4cGVjdGVkID0gc2VsZi5fZXhwZWN0YXRpb25z
Lm1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KG5ld19yZXN1bHQudGVzdF9uYW1lLCBleGlzdGlu
Z19yZXN1bHQudHlwZSwgc2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0cyBvciBleGlzdGluZ19yZXN1
bHQucmVmdGVzdF90eXBlKQotICAgICAgICAgICAgICAgIG5vd19leHBlY3RlZCA9IHNlbGYuX2V4
cGVjdGF0aW9ucy5tYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3VsdChuZXdfcmVzdWx0LnRlc3RfbmFt
ZSwgbmV3X3Jlc3VsdC50eXBlLCBzZWxmLl9vcHRpb25zLnBpeGVsX3Rlc3RzIG9yIG5ld19yZXN1
bHQucmVmdGVzdF90eXBlKQorICAgICAgICAgICAgICAgIHdhc19leHBlY3RlZCA9IHNlbGYuX2V4
cGVjdGF0aW9ucy5tYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3VsdChuZXdfcmVzdWx0LnRlc3RfbmFt
ZSwgZXhpc3RpbmdfcmVzdWx0LnR5cGUsIHNlbGYuX29wdGlvbnMucGl4ZWxfdGVzdHMgb3IgZXhp
c3RpbmdfcmVzdWx0LnJlZnRlc3RfdHlwZSwgc2VsZi5fb3B0aW9ucy53b3JsZF9sZWFrcykKKyAg
ICAgICAgICAgICAgICBub3dfZXhwZWN0ZWQgPSBzZWxmLl9leHBlY3RhdGlvbnMubWF0Y2hlc19h
bl9leHBlY3RlZF9yZXN1bHQobmV3X3Jlc3VsdC50ZXN0X25hbWUsIG5ld19yZXN1bHQudHlwZSwg
c2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0cyBvciBuZXdfcmVzdWx0LnJlZnRlc3RfdHlwZSwgc2Vs
Zi5fb3B0aW9ucy53b3JsZF9sZWFrcykKICAgICAgICAgICAgICAgICBydW5fcmVzdWx0cy5jaGFu
Z2VfcmVzdWx0X3RvX2ZhaWx1cmUoZXhpc3RpbmdfcmVzdWx0LCBuZXdfcmVzdWx0LCB3YXNfZXhw
ZWN0ZWQsIG5vd19leHBlY3RlZCkKIAogICAgIGRlZiBzdGFydF9zZXJ2ZXJzKHNlbGYpOgpkaWZm
IC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3Rf
ZXhwZWN0YXRpb25zLnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9k
ZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CmluZGV4IGFmNGQxYmU3ZjUwYzgxMWE5OTkxMzNmMWNm
Yjg3MGFmMjA1ZDc5MDEuLmM1OTJhNWU5YmUwMjM3ZWFkNjUzOTBmZDNmNDUwMzAzMDUwNzU1NmYg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90
ZXN0X2V4cGVjdGF0aW9ucy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90
ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkKQEAgLTI0NSw3ICsyNDUsNiBAQCBjbGFz
cyBUZXN0RXhwZWN0YXRpb25QYXJzZXIob2JqZWN0KToKICAgICAgICAgJ0ZhaWx1cmUnOiAnRkFJ
TCcsCiAgICAgICAgICdJbWFnZU9ubHlGYWlsdXJlJzogJ0lNQUdFJywKICAgICAgICAgJ01pc3Np
bmcnOiAnTUlTU0lORycsCi0gICAgICAgICdMZWFrJzogJ0xFQUsnLAogICAgICAgICAnUGFzcyc6
ICdQQVNTJywKICAgICAgICAgJ1JlYmFzZWxpbmUnOiAnUkVCQVNFTElORScsCiAgICAgICAgICdT
a2lwJzogJ1NLSVAnLApAQCAtODY2LDYgKzg2NSwxOSBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25z
KG9iamVjdCk6CiAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHRzLmFkZChQQVNTKQogICAgICAg
ICByZXR1cm4gZXhwZWN0ZWRfcmVzdWx0cwogCisgICAgQHN0YXRpY21ldGhvZAorICAgIGRlZiBy
ZW1vdmVfbGVha19mYWlsdXJlcyhleHBlY3RlZF9yZXN1bHRzKToKKyAgICAgICAgIiIiUmV0dXJu
cyBhIGNvcHkgb2YgdGhlIGV4cGVjdGVkIHJlc3VsdHMgZm9yIGEgdGVzdCwgZXhjZXB0IHRoYXQg
d2UKKyAgICAgICAgZHJvcCBhbnkgbGVhayBmYWlsdXJlcyBhbmQgcmV0dXJuIHRoZSByZW1haW5p
bmcgZXhwZWN0YXRpb25zLiBGb3IgZXhhbXBsZSwKKyAgICAgICAgaWYgd2UncmUgbm90IHJ1bm5p
bmcgd2l0aCAtLXdvcmxkLWxlYWtzLCB0aGVuIHRlc3RzIGV4cGVjdGVkIHRvIGZhaWwgYXMgTEVB
SworICAgICAgICB3aWxsIFBBU1MuIiIiCisgICAgICAgIGV4cGVjdGVkX3Jlc3VsdHMgPSBleHBl
Y3RlZF9yZXN1bHRzLmNvcHkoKQorICAgICAgICBpZiBMRUFLIGluIGV4cGVjdGVkX3Jlc3VsdHM6
CisgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHRzLnJlbW92ZShMRUFLKQorICAgICAgICAgICAg
aWYgbm90IGV4cGVjdGVkX3Jlc3VsdHM6CisgICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0
cy5hZGQoUEFTUykKKyAgICAgICAgcmV0dXJuIGV4cGVjdGVkX3Jlc3VsdHMKKwogICAgIEBzdGF0
aWNtZXRob2QKICAgICBkZWYgaGFzX3BpeGVsX2ZhaWx1cmVzKGFjdHVhbF9yZXN1bHRzKToKICAg
ICAgICAgcmV0dXJuIElNQUdFIGluIGFjdHVhbF9yZXN1bHRzIG9yIEZBSUwgaW4gYWN0dWFsX3Jl
c3VsdHMKQEAgLTk1MCwxMCArOTYyLDE0IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvbnMob2JqZWN0
KToKICAgICBkZWYgZ2V0X3JlYmFzZWxpbmluZ19mYWlsdXJlcyhzZWxmKToKICAgICAgICAgcmV0
dXJuIHNlbGYuX21vZGVsLmdldF90ZXN0X3NldChSRUJBU0VMSU5FKQogCi0gICAgZGVmIG1hdGNo
ZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KHNlbGYsIHRlc3QsIHJlc3VsdCwgcGl4ZWxfdGVzdHNfYXJl
X2VuYWJsZWQpOgorICAgIGRlZiBtYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3VsdChzZWxmLCB0ZXN0
LCByZXN1bHQsIHBpeGVsX3Rlc3RzX2FyZV9lbmFibGVkLCB3b3JsZF9sZWFrc19hcmVfZW5hYmxl
ZCk6CiAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdHMgPSBzZWxmLl9tb2RlbC5nZXRfZXhwZWN0YXRp
b25zKHRlc3QpCiAgICAgICAgIGlmIG5vdCBwaXhlbF90ZXN0c19hcmVfZW5hYmxlZDoKICAgICAg
ICAgICAgIGV4cGVjdGVkX3Jlc3VsdHMgPSBzZWxmLnJlbW92ZV9waXhlbF9mYWlsdXJlcyhleHBl
Y3RlZF9yZXN1bHRzKQorCisgICAgICAgIGlmIG5vdCB3b3JsZF9sZWFrc19hcmVfZW5hYmxlZDoK
KyAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3VsdHMgPSBzZWxmLnJlbW92ZV9sZWFrX2ZhaWx1cmVz
KGV4cGVjdGVkX3Jlc3VsdHMpCisKICAgICAgICAgcmV0dXJuIHNlbGYucmVzdWx0X3dhc19leHBl
Y3RlZChyZXN1bHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGVjdGVk
X3Jlc3VsdHMsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGYuaXNfcmVi
YXNlbGluaW5nKHRlc3QpLApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0
ZXN0LnB5CmluZGV4IDZiZGE5NzMyY2Q4OTcyODdiYWQwZGZkM2FhMWVhMWE4YTkyZTI3ODAuLjdi
ZmJhMWU4YWIxNDk0ZTEwZGRkMGZhMmQ0ZTgwMmVhMzRhODM1NTYgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191
bml0dGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2Rl
bHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKQEAgLTU0LDE4ICs1NCwyNiBAQCBjbGFz
cyBCYXNlKHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhw
ZWN0ZWQvaW1hZ2VfY2hlY2tzdW0uaHRtbCcsCiAgICAgICAgICAgICAgICAgJ2ZhaWx1cmVzL2V4
cGVjdGVkL2NyYXNoLmh0bWwnLAogICAgICAgICAgICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC9s
ZWFrLmh0bWwnLAorICAgICAgICAgICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC9mbGFreS1sZWFr
Lmh0bWwnLAogICAgICAgICAgICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC9taXNzaW5nX3RleHQu
aHRtbCcsCiAgICAgICAgICAgICAgICAgJ2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlLmh0bWwnLAor
ICAgICAgICAgICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC9yZWZ0ZXN0Lmh0bWwnLAorICAgICAg
ICAgICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC9sZWFreS1yZWZ0ZXN0Lmh0bWwnLAorICAgICAg
ICAgICAgICAgICdwYXNzZXMvZmxha3ktbGVhay5odG1sJywKICAgICAgICAgICAgICAgICAncGFz
c2VzL3RleHQuaHRtbCddCiAKICAgICBkZWYgZ2V0X2Jhc2ljX2V4cGVjdGF0aW9ucyhzZWxmKToK
ICAgICAgICAgcmV0dXJuICIiIgogQnVnKHRlc3QpIGZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRt
bCBbIEZhaWx1cmUgXQogQnVnKHRlc3QpIGZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwgWyBX
b250Rml4IF0KLUJ1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sIFsgTGVhayBd
CitCdWcodGVzdCkgZmFpbHVyZXMvZXhwZWN0ZWQvbGVhay5odG1sIFsgTGVhayBdCitCdWcodGVz
dCkgZmFpbHVyZXMvZXhwZWN0ZWQvZmxha3ktbGVhay5odG1sIFsgRmFpbHVyZSBMZWFrIF0KIEJ1
Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9taXNzaW5nX2ltYWdlLmh0bWwgWyBSZWJhc2VsaW5l
IE1pc3NpbmcgXQogQnVnKHRlc3QpIGZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNrc3VtLmh0
bWwgWyBXb250Rml4IF0KIEJ1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sIFsg
V29udEZpeCBNYWMgXQorQnVnKHRlc3QpIGZhaWx1cmVzL2V4cGVjdGVkL3JlZnRlc3QuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQorQnVnKHRlc3QpIGZhaWx1cmVzL2V4cGVjdGVkL2xlYWt5LXJl
ZnRlc3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgTGVhayBdCitCdWcodGVzdCkgcGFzc2VzL2Zs
YWt5LWxlYWsuaHRtbCBbIFBhc3MgTGVhayBdCiAiIiIKIAogICAgIGRlZiBwYXJzZV9leHAoc2Vs
ZiwgZXhwZWN0YXRpb25zLCBvdmVycmlkZXM9Tm9uZSwgaXNfbGludF9tb2RlPUZhbHNlKToKQEAg
LTc5LDggKzg3LDEwIEBAIEJ1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sIFsg
V29udEZpeCBNYWMgXQogICAgICAgICBzZWxmLl9leHAucGFyc2VfYWxsX2V4cGVjdGF0aW9ucygp
CiAKICAgICBkZWYgYXNzZXJ0X2V4cChzZWxmLCB0ZXN0LCByZXN1bHQpOgotICAgICAgICBzZWxm
LmFzc2VydEVxdWFsKHNlbGYuX2V4cC5tb2RlbCgpLmdldF9leHBlY3RhdGlvbnModGVzdCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgIHNldChbcmVzdWx0XSkpCisgICAgICAgIHNlbGYuYXNz
ZXJ0RXF1YWwoc2VsZi5fZXhwLm1vZGVsKCkuZ2V0X2V4cGVjdGF0aW9ucyh0ZXN0KSwgc2V0KFty
ZXN1bHRdKSkKKworICAgIGRlZiBhc3NlcnRfZXhwX3NldChzZWxmLCB0ZXN0LCByZXN1bHRfc2V0
KToKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLl9leHAubW9kZWwoKS5nZXRfZXhwZWN0
YXRpb25zKHRlc3QpLCByZXN1bHRfc2V0KQogCiAgICAgZGVmIGFzc2VydF9iYWRfZXhwZWN0YXRp
b25zKHNlbGYsIGV4cGVjdGF0aW9ucywgb3ZlcnJpZGVzPU5vbmUpOgogICAgICAgICBzZWxmLmFz
c2VydFJhaXNlcyhQYXJzZUVycm9yLCBzZWxmLnBhcnNlX2V4cCwgZXhwZWN0YXRpb25zLCBpc19s
aW50X21vZGU9VHJ1ZSwgb3ZlcnJpZGVzPW92ZXJyaWRlcykKQEAgLTkxLDggKzEwMSwxMiBAQCBj
bGFzcyBCYXNpY1Rlc3RzKEJhc2UpOgogICAgICAgICBzZWxmLnBhcnNlX2V4cChzZWxmLmdldF9i
YXNpY19leHBlY3RhdGlvbnMoKSkKICAgICAgICAgc2VsZi5hc3NlcnRfZXhwKCdmYWlsdXJlcy9l
eHBlY3RlZC90ZXh0Lmh0bWwnLCBGQUlMKQogICAgICAgICBzZWxmLmFzc2VydF9leHAoJ2ZhaWx1
cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNrc3VtLmh0bWwnLCBQQVNTKQotICAgICAgICBzZWxmLmFz
c2VydF9leHAoJ2ZhaWx1cmVzL2V4cGVjdGVkL2xlYWsuaHRtbCcsIFBBU1MpCisgICAgICAgIHNl
bGYuYXNzZXJ0X2V4cCgnZmFpbHVyZXMvZXhwZWN0ZWQvcmVmdGVzdC5odG1sJywgSU1BR0UpCisg
ICAgICAgIHNlbGYuYXNzZXJ0X2V4cF9zZXQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2xlYWt5LXJlZnRl
c3QuaHRtbCcsIHNldChbSU1BR0UsIExFQUtdKSkKKyAgICAgICAgc2VsZi5hc3NlcnRfZXhwKCdm
YWlsdXJlcy9leHBlY3RlZC9sZWFrLmh0bWwnLCBMRUFLKQorICAgICAgICBzZWxmLmFzc2VydF9l
eHBfc2V0KCdmYWlsdXJlcy9leHBlY3RlZC9mbGFreS1sZWFrLmh0bWwnLCBzZXQoW0ZBSUwsIExF
QUtdKSkKICAgICAgICAgc2VsZi5hc3NlcnRfZXhwKCdwYXNzZXMvdGV4dC5odG1sJywgUEFTUykK
KyAgICAgICAgc2VsZi5hc3NlcnRfZXhwX3NldCgncGFzc2VzL2ZsYWt5LWxlYWsuaHRtbCcsIHNl
dChbUEFTUywgTEVBS10pKQogICAgICAgICBzZWxmLmFzc2VydF9leHAoJ2ZhaWx1cmVzL2V4cGVj
dGVkL2ltYWdlLmh0bWwnLCBQQVNTKQogCiAKQEAgLTEyMyw2ICsxMzcsMTQgQEAgY2xhc3MgTWlz
Y1Rlc3RzKEJhc2UpOgogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRlc3RFeHBlY3RhdGlvbnMu
cmVtb3ZlX3BpeGVsX2ZhaWx1cmVzKHNldChbRkFJTF0pKSwgc2V0KFtGQUlMXSkpCiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoVGVzdEV4cGVjdGF0aW9ucy5yZW1vdmVfcGl4ZWxfZmFpbHVyZXMo
c2V0KFtQQVNTLCBJTUFHRSwgQ1JBU0hdKSksIHNldChbUEFTUywgQ1JBU0hdKSkKIAorICAgIGRl
ZiB0ZXN0X3JlbW92ZV9sZWFrX2ZhaWx1cmVzKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKFRlc3RFeHBlY3RhdGlvbnMucmVtb3ZlX2xlYWtfZmFpbHVyZXMoc2V0KFtGQUlMXSkpLCBz
ZXQoW0ZBSUxdKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUZXN0RXhwZWN0YXRpb25zLnJl
bW92ZV9sZWFrX2ZhaWx1cmVzKHNldChbUEFTU10pKSwgc2V0KFtQQVNTXSkpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoVGVzdEV4cGVjdGF0aW9ucy5yZW1vdmVfbGVha19mYWlsdXJlcyhzZXQo
W0xFQUtdKSksIHNldChbUEFTU10pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRlc3RFeHBl
Y3RhdGlvbnMucmVtb3ZlX2xlYWtfZmFpbHVyZXMoc2V0KFtQQVNTLCBMRUFLXSkpLCBzZXQoW1BB
U1NdKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUZXN0RXhwZWN0YXRpb25zLnJlbW92ZV9s
ZWFrX2ZhaWx1cmVzKHNldChbRkFJTCwgTEVBS10pKSwgc2V0KFtGQUlMXSkpCisgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoVGVzdEV4cGVjdGF0aW9ucy5yZW1vdmVfbGVha19mYWlsdXJlcyhzZXQo
W1BBU1MsIElNQUdFLCBMRUFLLCBDUkFTSF0pKSwgc2V0KFtQQVNTLCBJTUFHRSwgQ1JBU0hdKSkK
KwogICAgIGRlZiB0ZXN0X3N1ZmZpeGVzX2Zvcl9leHBlY3RhdGlvbnMoc2VsZik6CiAgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoVGVzdEV4cGVjdGF0aW9ucy5zdWZmaXhlc19mb3JfZXhwZWN0YXRp
b25zKHNldChbRkFJTF0pKSwgc2V0KFsndHh0JywgJ3BuZycsICd3YXYnXSkpCiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoVGVzdEV4cGVjdGF0aW9ucy5zdWZmaXhlc19mb3JfZXhwZWN0YXRpb25z
KHNldChbSU1BR0VdKSksIHNldChbJ3BuZyddKSkKQEAgLTE1Miw4ICsxNzQsNyBAQCBjbGFzcyBN
aXNjVGVzdHMoQmFzZSk6CiAgICAgZGVmIHRlc3RfZXhwZWN0YXRpb25fdG9fc3RyaW5nKHNlbGYp
OgogICAgICAgICAjIE5vcm1hbCBjYXNlcyBhcmUgaGFuZGxlZCBieSBvdGhlciB0ZXN0cy4KICAg
ICAgICAgc2VsZi5wYXJzZV9leHAoc2VsZi5nZXRfYmFzaWNfZXhwZWN0YXRpb25zKCkpCi0gICAg
ICAgIHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNlbGYuX2V4cC5tb2RlbCgpLmV4cGVj
dGF0aW9uX3RvX3N0cmluZywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgLTEpCisgICAgICAg
IHNlbGYuYXNzZXJ0UmFpc2VzKFZhbHVlRXJyb3IsIHNlbGYuX2V4cC5tb2RlbCgpLmV4cGVjdGF0
aW9uX3RvX3N0cmluZywgLTEpCiAKICAgICBkZWYgdGVzdF9nZXRfdGVzdF9zZXQoc2VsZik6CiAg
ICAgICAgICMgSGFuZGxlIHNvbWUgY29ybmVyIGNhc2VzIGZvciB0aGlzIHJvdXRpbmUgbm90IGNv
dmVyZWQgYnkgb3RoZXIgdGVzdHMuCkBAIC0yMTUsMjAgKzIzNiw0NCBAQCBjbGFzcyBNaXNjVGVz
dHMoQmFzZSk6CiAKICAgICBkZWYgdGVzdF9waXhlbF90ZXN0c19mbGFnKHNlbGYpOgogICAgICAg
ICBkZWYgbWF0Y2godGVzdCwgcmVzdWx0LCBwaXhlbF90ZXN0c19lbmFibGVkKToKLSAgICAgICAg
ICAgIHJldHVybiBzZWxmLl9leHAubWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQoCi0gICAgICAg
ICAgICAgICAgdGVzdCwgcmVzdWx0LCBwaXhlbF90ZXN0c19lbmFibGVkKQorICAgICAgICAgICAg
cmV0dXJuIHNlbGYuX2V4cC5tYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3VsdCh0ZXN0LCByZXN1bHQs
IHBpeGVsX3Rlc3RzX2VuYWJsZWQsIEZhbHNlKQorCisgICAgICAgIHNlbGYucGFyc2VfZXhwKHNl
bGYuZ2V0X2Jhc2ljX2V4cGVjdGF0aW9ucygpKQorICAgICAgICBwaXhlbF90ZXN0c19lbmFibGVk
ID0gVHJ1ZQorICAgICAgICBwaXhlbF90ZXN0c19kaXNhYmxlZCA9IEZhbHNlCisgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShtYXRjaCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJywgRkFJTCwg
cGl4ZWxfdGVzdHNfZW5hYmxlZCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYXRjaCgnZmFp
bHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJywgRkFJTCwgcGl4ZWxfdGVzdHNfZGlzYWJsZWQpKQor
ICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG1hdGNoKCdmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0
bWwnLCBDUkFTSCwgcGl4ZWxfdGVzdHNfZW5hYmxlZCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFs
c2UobWF0Y2goJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCcsIENSQVNILCBwaXhlbF90ZXN0
c19kaXNhYmxlZCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYXRjaCgnZmFpbHVyZXMvZXhw
ZWN0ZWQvaW1hZ2VfY2hlY2tzdW0uaHRtbCcsIFBBU1MsIHBpeGVsX3Rlc3RzX2VuYWJsZWQpKQor
ICAgICAgICBzZWxmLmFzc2VydFRydWUobWF0Y2goJ2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2No
ZWNrc3VtLmh0bWwnLCBQQVNTLCBwaXhlbF90ZXN0c19kaXNhYmxlZCkpCisgICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShtYXRjaCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcsIFBBU1MsIHBp
eGVsX3Rlc3RzX2Rpc2FibGVkKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hdGNoKCdwYXNz
ZXMvdGV4dC5odG1sJywgUEFTUywgcGl4ZWxfdGVzdHNfZGlzYWJsZWQpKQorCisgICAgZGVmIHRl
c3Rfd29ybGRfbGVha3NfZmxhZyhzZWxmKToKKyAgICAgICAgZGVmIG1hdGNoKHRlc3QsIHJlc3Vs
dCwgcGl4ZWxfdGVzdHNfZW5hYmxlZCwgd29ybGRfbGVha3NfZW5hYmxlZCk6CisgICAgICAgICAg
ICByZXR1cm4gc2VsZi5fZXhwLm1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KHRlc3QsIHJlc3Vs
dCwgcGl4ZWxfdGVzdHNfZW5hYmxlZCwgd29ybGRfbGVha3NfZW5hYmxlZCkKKworICAgICAgICBw
aXhlbF90ZXN0c19lbmFibGVkID0gVHJ1ZQorICAgICAgICBwaXhlbF90ZXN0c19kaXNhYmxlZCA9
IEZhbHNlCisgICAgICAgIHdvcmxkX2xlYWtzX2VuYWJsZWQgPSBUcnVlCisgICAgICAgIHdvcmxk
X2xlYWtzX2Rpc2FibGVkID0gRmFsc2UKIAogICAgICAgICBzZWxmLnBhcnNlX2V4cChzZWxmLmdl
dF9iYXNpY19leHBlY3RhdGlvbnMoKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hdGNoKCdm
YWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnLCBGQUlMLCBUcnVlKSkKLSAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKG1hdGNoKCdmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnLCBGQUlMLCBGYWxz
ZSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobWF0Y2goJ2ZhaWx1cmVzL2V4cGVjdGVkL3Rl
eHQuaHRtbCcsIENSQVNILCBUcnVlKSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtYXRjaCgn
ZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJywgQ1JBU0gsIEZhbHNlKSkKLSAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKG1hdGNoKCdmYWlsdXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS5odG1s
JywgUEFTUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRydWUpKQotICAgICAgICBz
ZWxmLmFzc2VydFRydWUobWF0Y2goJ2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNrc3VtLmh0
bWwnLCBQQVNTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRmFsc2UpKQotICAgICAg
ICBzZWxmLmFzc2VydFRydWUobWF0Y2goJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnLCBQ
QVNTLCBGYWxzZSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYXRjaCgncGFzc2VzL3RleHQu
aHRtbCcsIFBBU1MsIEZhbHNlKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hdGNoKCdmYWls
dXJlcy9leHBlY3RlZC9sZWFrLmh0bWwnLCBMRUFLLCBwaXhlbF90ZXN0c19lbmFibGVkLCB3b3Js
ZF9sZWFrc19lbmFibGVkKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hdGNoKCdmYWlsdXJl
cy9leHBlY3RlZC9sZWFrLmh0bWwnLCBQQVNTLCBwaXhlbF90ZXN0c19lbmFibGVkLCB3b3JsZF9s
ZWFrc19kaXNhYmxlZCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYXRjaCgnZmFpbHVyZXMv
ZXhwZWN0ZWQvZmxha3ktbGVhay5odG1sJywgRkFJTCwgcGl4ZWxfdGVzdHNfZW5hYmxlZCwgd29y
bGRfbGVha3NfZGlzYWJsZWQpKQorCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYXRjaCgnZmFp
bHVyZXMvZXhwZWN0ZWQvbGVha3ktcmVmdGVzdC5odG1sJywgTEVBSywgcGl4ZWxfdGVzdHNfZGlz
YWJsZWQsIHdvcmxkX2xlYWtzX2VuYWJsZWQpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobWF0
Y2goJ2ZhaWx1cmVzL2V4cGVjdGVkL2xlYWt5LXJlZnRlc3QuaHRtbCcsIFBBU1MsIHBpeGVsX3Rl
c3RzX2Rpc2FibGVkLCB3b3JsZF9sZWFrc19kaXNhYmxlZCkpCisKKyAgICAgICAgc2VsZi5hc3Nl
cnRUcnVlKG1hdGNoKCdmYWlsdXJlcy9leHBlY3RlZC9sZWFreS1yZWZ0ZXN0Lmh0bWwnLCBJTUFH
RSwgcGl4ZWxfdGVzdHNfZW5hYmxlZCwgd29ybGRfbGVha3NfZW5hYmxlZCkpCisgICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShtYXRjaCgnZmFpbHVyZXMvZXhwZWN0ZWQvbGVha3ktcmVmdGVzdC5odG1s
JywgTEVBSywgcGl4ZWxfdGVzdHNfZW5hYmxlZCwgd29ybGRfbGVha3NfZW5hYmxlZCkpCisgICAg
ICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYXRjaCgnZmFpbHVyZXMvZXhwZWN0ZWQvbGVha3ktcmVmdGVz
dC5odG1sJywgSU1BR0UsIHBpeGVsX3Rlc3RzX2VuYWJsZWQsIHdvcmxkX2xlYWtzX2Rpc2FibGVk
KSkKKworICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG1hdGNoKCdmYWlsdXJlcy9leHBlY3RlZC90
ZXh0Lmh0bWwnLCBQQVNTLCBwaXhlbF90ZXN0c19lbmFibGVkLCB3b3JsZF9sZWFrc19lbmFibGVk
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtYXRjaCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4
dC5odG1sJywgQ1JBU0gsIHBpeGVsX3Rlc3RzX2VuYWJsZWQsIHdvcmxkX2xlYWtzX2Rpc2FibGVk
KSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hdGNoKCdwYXNzZXMvdGV4dC5odG1sJywgUEFT
UywgcGl4ZWxfdGVzdHNfZW5hYmxlZCwgd29ybGRfbGVha3NfZGlzYWJsZWQpKQogCiAgICAgZGVm
IHRlc3RfbW9yZV9zcGVjaWZpY19vdmVycmlkZV9yZXNldHNfc2tpcChzZWxmKToKICAgICAgICAg
c2VsZi5wYXJzZV9leHAoIkJ1Zyh4KSBmYWlsdXJlcy9leHBlY3RlZCBbIFNraXAgXVxuIgpAQCAt
MzQ4LDYgKzM5Myw5IEBAIGNsYXNzIEV4cGVjdGF0aW9uU3ludGF4VGVzdHMoQmFzZSk6CiAgICAg
ZGVmIHRlc3Rfc2xvdyhzZWxmKToKICAgICAgICAgc2VsZi5hc3NlcnRfdG9rZW5pemVfZXhwKCdm
b28uaHRtbCBbIFNsb3cgXScsIG1vZGlmaWVycz1bJ1NMT1cnXSwgZXhwZWN0YXRpb25zPVsnUEFT
UyddKQogCisgICAgZGVmIHRlc3RfbGVhayhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRfdG9r
ZW5pemVfZXhwKCdmb28uaHRtbCBbIExlYWsgXScsIG1vZGlmaWVycz1bXSwgZXhwZWN0YXRpb25z
PVsnTEVBSyddKQorCiAgICAgZGVmIHRlc3Rfd29udGZpeChzZWxmKToKICAgICAgICAgc2VsZi5h
c3NlcnRfdG9rZW5pemVfZXhwKCdmb28uaHRtbCBbIFdvbnRGaXggXScsIG1vZGlmaWVycz1bJ1dP
TlRGSVgnLCAnU0tJUCddLCBleHBlY3RhdGlvbnM9WydQQVNTJ10pCiAgICAgICAgIHNlbGYuYXNz
ZXJ0X3Rva2VuaXplX2V4cCgnZm9vLmh0bWwgWyBXb250Rml4IEltYWdlT25seUZhaWx1cmUgXScs
IG1vZGlmaWVycz1bJ1dPTlRGSVgnXSwgZXhwZWN0YXRpb25zPVsnSU1BR0UnXSkKZGlmZiAtLWdp
dCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC90ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L3Rlc3QucHkKaW5kZXggZjJkNmM2ZmZjYzM0MzE5YzQ0YjA0ZTY4NjEzNjI5
N2RhMjZjMGNmNi4uYTViZDI2ZGFmMDZkMWJmNTM3NWFjNDU5MzkxZmZhNWI3MmYxZmE2NyAxMDA2
NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L3Rlc3QucHkKKysrIGIvVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L3Rlc3QucHkKQEAgLTc4LDEzICs3OCwxOCBAQCBjbGFzcyBU
ZXN0TGlzdChvYmplY3QpOgogICAgICAgICAgICAgdGVzdC5fX2RpY3RfX1trZXldID0gdmFsdWUK
ICAgICAgICAgc2VsZi50ZXN0c1tuYW1lXSA9IHRlc3QKIAotICAgIGRlZiBhZGRfcmVmdGVzdChz
ZWxmLCBuYW1lLCByZWZlcmVuY2VfbmFtZSwgc2FtZV9pbWFnZSk6CisgICAgZGVmIGFkZF9yZWZ0
ZXN0KHNlbGYsIG5hbWUsIHJlZmVyZW5jZV9uYW1lLCBzYW1lX2ltYWdlLCAqKmt3YXJncyk6CiAg
ICAgICAgIHNlbGYuYWRkKG5hbWUsIGFjdHVhbF9jaGVja3N1bT0neHh4JywgYWN0dWFsX2ltYWdl
PSdYWFgnLCBpc19yZWZ0ZXN0PVRydWUpCiAgICAgICAgIGlmIHNhbWVfaW1hZ2U6CiAgICAgICAg
ICAgICBzZWxmLmFkZChyZWZlcmVuY2VfbmFtZSwgYWN0dWFsX2NoZWNrc3VtPSd4eHgnLCBhY3R1
YWxfaW1hZ2U9J1hYWCcsIGlzX3JlZnRlc3Q9VHJ1ZSkKICAgICAgICAgZWxzZToKICAgICAgICAg
ICAgIHNlbGYuYWRkKHJlZmVyZW5jZV9uYW1lLCBhY3R1YWxfY2hlY2tzdW09J3l5eScsIGFjdHVh
bF9pbWFnZT0nWVlZJywgaXNfcmVmdGVzdD1UcnVlKQogCisgICAgICAgIGlmIGt3YXJnczoKKyAg
ICAgICAgICAgIHRlc3QgPSBzZWxmLnRlc3RzW25hbWVdCisgICAgICAgICAgICBmb3Iga2V5LCB2
YWx1ZSBpbiBrd2FyZ3MuaXRlbXMoKToKKyAgICAgICAgICAgICAgICB0ZXN0Ll9fZGljdF9fW2tl
eV0gPSB2YWx1ZQorCiAgICAgZGVmIGtleXMoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLnRl
c3RzLmtleXMoKQogCkBAIC0xMTYsNiArMTIxLDcgQEAgZGVmIHVuaXRfdGVzdF9saXN0KCk6CiAg
ICAgdGVzdHMuYWRkKCdmYWlsdXJlcy9leHBlY3RlZC9oYW5nLmh0bWwnLCBoYW5nPVRydWUpCiAg
ICAgdGVzdHMuYWRkKCdmYWlsdXJlcy9leHBlY3RlZC9taXNzaW5nX3RleHQuaHRtbCcsIGV4cGVj
dGVkX3RleHQ9Tm9uZSkKICAgICB0ZXN0cy5hZGQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2xlYWsuaHRt
bCcsIGxlYWs9VHJ1ZSkKKyAgICB0ZXN0cy5hZGQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2ZsYWt5LWxl
YWsuaHRtbCcsIGxlYWs9VHJ1ZSkKICAgICB0ZXN0cy5hZGQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2lt
YWdlLmh0bWwnLAogICAgICAgICAgICAgICBhY3R1YWxfaW1hZ2U9J2ltYWdlX2ZhaWwtcG5ndEVY
dGNoZWNrc3VtXHgwMGNoZWNrc3VtX2ZhaWwnLAogICAgICAgICAgICAgICBleHBlY3RlZF9pbWFn
ZT0naW1hZ2UtcG5ndEVYdGNoZWNrc3VtXHgwMGNoZWNrc3VtLXBuZycpCkBAIC0xOTgsNiArMjA0
LDcgQEAgbGF5ZXIgYXQgKDAsMCkgc2l6ZSA4MDB4MzQKICAgICB0ZXN0cy5hZGQoJ3Bhc3Nlcy9j
aGVja3N1bV9pbl9pbWFnZS5odG1sJywKICAgICAgICAgICAgICAgZXhwZWN0ZWRfaW1hZ2U9J3RF
WHRjaGVja3N1bVx4MDBjaGVja3N1bV9pbl9pbWFnZS1jaGVja3N1bScpCiAgICAgdGVzdHMuYWRk
KCdwYXNzZXMvc2tpcHBlZC9za2lwLmh0bWwnKQorICAgIHRlc3RzLmFkZCgncGFzc2VzL2ZsYWt5
LWxlYWsuaHRtbCcsIGxlYWs9VHJ1ZSkKIAogICAgICMgTm90ZSB0aGF0IGhlcmUgdGhlIGNoZWNr
c3VtcyBkb24ndCBtYXRjaCBidXQgdGhlIGltYWdlcyBkbywgc28gdGhpcyB0ZXN0IHBhc3NlcyAi
dW5leHBlY3RlZGx5Ii4KICAgICAjIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9Njk0NDQgLgpAQCAtMjE1LDYgKzIyMiw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUg
ODAweDM0CiAgICAgdGVzdHMuYWRkX3JlZnRlc3QoJ3Bhc3Nlcy94aHRyZWZ0ZXN0LnhodCcsICdw
YXNzZXMveGh0cmVmdGVzdC1leHBlY3RlZC5odG1sJywgc2FtZV9pbWFnZT1UcnVlKQogICAgIHRl
c3RzLmFkZF9yZWZ0ZXN0KCdwYXNzZXMvcGhwcmVmdGVzdC5waHAnLCAncGFzc2VzL3BocHJlZnRl
c3QtZXhwZWN0ZWQtbWlzbWF0Y2guc3ZnJywgc2FtZV9pbWFnZT1GYWxzZSkKICAgICB0ZXN0cy5h
ZGRfcmVmdGVzdCgnZmFpbHVyZXMvZXhwZWN0ZWQvcmVmdGVzdC5odG1sJywgJ2ZhaWx1cmVzL2V4
cGVjdGVkL3JlZnRlc3QtZXhwZWN0ZWQuaHRtbCcsIHNhbWVfaW1hZ2U9RmFsc2UpCisgICAgdGVz
dHMuYWRkX3JlZnRlc3QoJ2ZhaWx1cmVzL2V4cGVjdGVkL2xlYWt5LXJlZnRlc3QuaHRtbCcsICdm
YWlsdXJlcy9leHBlY3RlZC9sZWFreS1yZWZ0ZXN0LWV4cGVjdGVkLmh0bWwnLCBzYW1lX2ltYWdl
PUZhbHNlLCBsZWFrPVRydWUpCiAgICAgdGVzdHMuYWRkX3JlZnRlc3QoJ2ZhaWx1cmVzL2V4cGVj
dGVkL21pc21hdGNoLmh0bWwnLCAnZmFpbHVyZXMvZXhwZWN0ZWQvbWlzbWF0Y2gtZXhwZWN0ZWQt
bWlzbWF0Y2guaHRtbCcsIHNhbWVfaW1hZ2U9VHJ1ZSkKICAgICB0ZXN0cy5hZGRfcmVmdGVzdCgn
ZmFpbHVyZXMvdW5leHBlY3RlZC9yZWZ0ZXN0Lmh0bWwnLCAnZmFpbHVyZXMvdW5leHBlY3RlZC9y
ZWZ0ZXN0LWV4cGVjdGVkLmh0bWwnLCBzYW1lX2ltYWdlPUZhbHNlKQogICAgIHRlc3RzLmFkZF9y
ZWZ0ZXN0KCdmYWlsdXJlcy91bmV4cGVjdGVkL21pc21hdGNoLmh0bWwnLCAnZmFpbHVyZXMvdW5l
eHBlY3RlZC9taXNtYXRjaC1leHBlY3RlZC1taXNtYXRjaC5odG1sJywgc2FtZV9pbWFnZT1UcnVl
KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348424</attachid>
            <date>2018-08-29 13:02:29 -0700</date>
            <delta_ts>2018-08-29 15:11:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189088-20180829130228.patch</filename>
            <type>text/plain</type>
            <size>18243</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDc1CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDcyYmMzZTlkNmQ0ZjhjMGMwYjIwOTJjNDI3Yzc5MzFl
ODVhMzA4OC4uMjhhNDc0YjQzYzMwMzAwNmUzMjY0ZDNjNGQ5YmNiMzBmOTA0M2Y5MyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDE4LTA4LTI5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgaXQgcG9zc2libGUgdG8gbWFyayB0ZXN0cyBhcyBsZWFrcyBpbiBUZXN0
RXhwZWN0YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODkwODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAg
ICAgCisgICAgICAgIEhhdmUgd2Via2l0cHkgcGFyc2Ugb3V0ICJMZWFrIiBleHBlY3RhdGlvbnMg
aW4gVGVzdEV4cGVjdGF0aW9ucywgYW5kIGRvIHRoZSByaWdodAorICAgICAgICB0aGluZyBpZiB0
aGUgdGVzdCBydW4gZGlkIG5vdCB1c2UgLS13b3JsZC1sZWFrcy4gQWRkIHVuaXQgdGVzdHMgZm9y
IGxlYWtzIGNvbWJpbmVkCisgICAgICAgIHdpdGggdmFyaW91cyBvdGhlciByZXN1bHQgY29tYmlu
YXRpb25zLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJv
bGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5OgorICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lci5f
dXBkYXRlX3N1bW1hcnlfd2l0aF9yZXN1bHQpOgorICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lci5f
YW5ub3RhdGVfcmVzdWx0c193aXRoX2FkZGl0aW9uYWxfZmFpbHVyZXMpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weToK
KyAgICAgICAgKFRlc3RFeHBlY3RhdGlvblBhcnNlcik6CisgICAgICAgIChUZXN0RXhwZWN0YXRp
b25zKTogVGhlICdMZWFrJyBsaW5lIHdhcyBkdXBsaWNhdGVkIGhlcmUsIHNvIHJlbW92ZSBhIGNv
cHkuCisgICAgICAgIChUZXN0RXhwZWN0YXRpb25zLnJlbW92ZV9sZWFrX2ZhaWx1cmVzKToKKyAg
ICAgICAgKFRlc3RFeHBlY3RhdGlvbnMubWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQpOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0
aW9uc191bml0dGVzdC5weToKKyAgICAgICAgKEJhc2UuZ2V0X2Jhc2ljX3Rlc3RzKToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvdGVzdC5weToKKyAgICAgICAgKFRlc3RMaXN0LmFk
ZF9yZWZ0ZXN0KToKKyAgICAgICAgKHVuaXRfdGVzdF9saXN0KToKKwogMjAxOC0wOC0yOSAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBNdXRlZCBlbGVtZW50cyBk
byBub3QgaGF2ZSB0aGVpciBOb3cgUGxheWluZyBzdGF0dXMgdXBkYXRlZCB3aGVuIHVubXV0ZWQu
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9s
bGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkKaW5kZXggMDc2NTQ3ZDRl
ZDc4NTUwYTgwMDY4YWZjZDgzOGI1YWMwZjhiMWI2NC4uNGIxOTk3NGQ5ODc0ZGQ4MjZkM2FiNWQ2
ZGIyYjgwZWVkOTlkMTQxMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5l
ci5weQpAQCAtMTgyLDcgKzE4Miw3IEBAIGNsYXNzIExheW91dFRlc3RSdW5uZXIob2JqZWN0KToK
ICAgICAgICAgICAgIGV4cF9zdHIgPSBnb3Rfc3RyID0gJ1NLSVAnCiAgICAgICAgICAgICBleHBl
Y3RlZCA9IFRydWUKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGV4cGVjdGVkID0gc2VsZi5f
ZXhwZWN0YXRpb25zLm1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KHJlc3VsdC50ZXN0X25hbWUs
IHJlc3VsdC50eXBlLCBzZWxmLl9vcHRpb25zLnBpeGVsX3Rlc3RzIG9yIHJlc3VsdC5yZWZ0ZXN0
X3R5cGUpCisgICAgICAgICAgICBleHBlY3RlZCA9IHNlbGYuX2V4cGVjdGF0aW9ucy5tYXRjaGVz
X2FuX2V4cGVjdGVkX3Jlc3VsdChyZXN1bHQudGVzdF9uYW1lLCByZXN1bHQudHlwZSwgc2VsZi5f
b3B0aW9ucy5waXhlbF90ZXN0cyBvciByZXN1bHQucmVmdGVzdF90eXBlLCBzZWxmLl9vcHRpb25z
LndvcmxkX2xlYWtzKQogICAgICAgICAgICAgZXhwX3N0ciA9IHNlbGYuX2V4cGVjdGF0aW9ucy5t
b2RlbCgpLmdldF9leHBlY3RhdGlvbnNfc3RyaW5nKHJlc3VsdC50ZXN0X25hbWUpCiAgICAgICAg
ICAgICBnb3Rfc3RyID0gc2VsZi5fZXhwZWN0YXRpb25zLm1vZGVsKCkuZXhwZWN0YXRpb25fdG9f
c3RyaW5nKHJlc3VsdC50eXBlKQogCkBAIC0xOTgsOCArMTk4LDggQEAgY2xhc3MgTGF5b3V0VGVz
dFJ1bm5lcihvYmplY3QpOgogICAgICAgICAgICAgIyBXaGVuIHJ1bm5pbmcgYSBjaHVuayAoLS1y
dW4tY2h1bmspLCByZXN1bHRzX2J5X25hbWUgY29udGFpbnMgYWxsIHRoZSB0ZXN0cywgYnV0IChj
b25mdXNpbmdseSkgYWxsX3Rlc3RzIG9ubHkgY29udGFpbnMgdGhvc2UgaW4gdGhlIGNodW5rIHRo
YXQgd2FzIHJ1biwKICAgICAgICAgICAgICMgYW5kIHdlIGRvbid0IHdhbnQgdG8gbW9kaWZ5IHRo
ZSByZXN1bHRzIG9mIGEgdGVzdCB0aGF0IGRpZG4ndCBydW4uIGV4aXN0aW5nX3Jlc3VsdC50ZXN0
X251bWJlciBpcyBvbmx5IG5vbi1Ob25lIGZvciB0ZXN0cyB0aGF0IHJhbi4KICAgICAgICAgICAg
IGlmIGV4aXN0aW5nX3Jlc3VsdCBhbmQgZXhpc3RpbmdfcmVzdWx0LnRlc3RfbnVtYmVyIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgICAgIHdhc19leHBlY3RlZCA9IHNlbGYuX2V4cGVjdGF0aW9u
cy5tYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3VsdChuZXdfcmVzdWx0LnRlc3RfbmFtZSwgZXhpc3Rp
bmdfcmVzdWx0LnR5cGUsIHNlbGYuX29wdGlvbnMucGl4ZWxfdGVzdHMgb3IgZXhpc3RpbmdfcmVz
dWx0LnJlZnRlc3RfdHlwZSkKLSAgICAgICAgICAgICAgICBub3dfZXhwZWN0ZWQgPSBzZWxmLl9l
eHBlY3RhdGlvbnMubWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQobmV3X3Jlc3VsdC50ZXN0X25h
bWUsIG5ld19yZXN1bHQudHlwZSwgc2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0cyBvciBuZXdfcmVz
dWx0LnJlZnRlc3RfdHlwZSkKKyAgICAgICAgICAgICAgICB3YXNfZXhwZWN0ZWQgPSBzZWxmLl9l
eHBlY3RhdGlvbnMubWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQobmV3X3Jlc3VsdC50ZXN0X25h
bWUsIGV4aXN0aW5nX3Jlc3VsdC50eXBlLCBzZWxmLl9vcHRpb25zLnBpeGVsX3Rlc3RzIG9yIGV4
aXN0aW5nX3Jlc3VsdC5yZWZ0ZXN0X3R5cGUsIHNlbGYuX29wdGlvbnMud29ybGRfbGVha3MpCisg
ICAgICAgICAgICAgICAgbm93X2V4cGVjdGVkID0gc2VsZi5fZXhwZWN0YXRpb25zLm1hdGNoZXNf
YW5fZXhwZWN0ZWRfcmVzdWx0KG5ld19yZXN1bHQudGVzdF9uYW1lLCBuZXdfcmVzdWx0LnR5cGUs
IHNlbGYuX29wdGlvbnMucGl4ZWxfdGVzdHMgb3IgbmV3X3Jlc3VsdC5yZWZ0ZXN0X3R5cGUsIHNl
bGYuX29wdGlvbnMud29ybGRfbGVha3MpCiAgICAgICAgICAgICAgICAgcnVuX3Jlc3VsdHMuY2hh
bmdlX3Jlc3VsdF90b19mYWlsdXJlKGV4aXN0aW5nX3Jlc3VsdCwgbmV3X3Jlc3VsdCwgd2FzX2V4
cGVjdGVkLCBub3dfZXhwZWN0ZWQpCiAKICAgICBkZWYgc3RhcnRfc2VydmVycyhzZWxmKToKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0
X2V4cGVjdGF0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21v
ZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weQppbmRleCBhZjRkMWJlN2Y1MGM4MTFhOTk5MTMzZjFj
ZmI4NzBhZjIwNWQ3OTAxLi5jNTkyYTVlOWJlMDIzN2VhZDY1MzkwZmQzZjQ1MDMwMzA1MDc1NTZm
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMv
dGVzdF9leHBlY3RhdGlvbnMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CkBAIC0yNDUsNyArMjQ1LDYgQEAgY2xh
c3MgVGVzdEV4cGVjdGF0aW9uUGFyc2VyKG9iamVjdCk6CiAgICAgICAgICdGYWlsdXJlJzogJ0ZB
SUwnLAogICAgICAgICAnSW1hZ2VPbmx5RmFpbHVyZSc6ICdJTUFHRScsCiAgICAgICAgICdNaXNz
aW5nJzogJ01JU1NJTkcnLAotICAgICAgICAnTGVhayc6ICdMRUFLJywKICAgICAgICAgJ1Bhc3Mn
OiAnUEFTUycsCiAgICAgICAgICdSZWJhc2VsaW5lJzogJ1JFQkFTRUxJTkUnLAogICAgICAgICAn
U2tpcCc6ICdTS0lQJywKQEAgLTg2Niw2ICs4NjUsMTkgQEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9u
cyhvYmplY3QpOgogICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0cy5hZGQoUEFTUykKICAgICAg
ICAgcmV0dXJuIGV4cGVjdGVkX3Jlc3VsdHMKIAorICAgIEBzdGF0aWNtZXRob2QKKyAgICBkZWYg
cmVtb3ZlX2xlYWtfZmFpbHVyZXMoZXhwZWN0ZWRfcmVzdWx0cyk6CisgICAgICAgICIiIlJldHVy
bnMgYSBjb3B5IG9mIHRoZSBleHBlY3RlZCByZXN1bHRzIGZvciBhIHRlc3QsIGV4Y2VwdCB0aGF0
IHdlCisgICAgICAgIGRyb3AgYW55IGxlYWsgZmFpbHVyZXMgYW5kIHJldHVybiB0aGUgcmVtYWlu
aW5nIGV4cGVjdGF0aW9ucy4gRm9yIGV4YW1wbGUsCisgICAgICAgIGlmIHdlJ3JlIG5vdCBydW5u
aW5nIHdpdGggLS13b3JsZC1sZWFrcywgdGhlbiB0ZXN0cyBleHBlY3RlZCB0byBmYWlsIGFzIExF
QUsKKyAgICAgICAgd2lsbCBQQVNTLiIiIgorICAgICAgICBleHBlY3RlZF9yZXN1bHRzID0gZXhw
ZWN0ZWRfcmVzdWx0cy5jb3B5KCkKKyAgICAgICAgaWYgTEVBSyBpbiBleHBlY3RlZF9yZXN1bHRz
OgorICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0cy5yZW1vdmUoTEVBSykKKyAgICAgICAgICAg
IGlmIG5vdCBleHBlY3RlZF9yZXN1bHRzOgorICAgICAgICAgICAgICAgIGV4cGVjdGVkX3Jlc3Vs
dHMuYWRkKFBBU1MpCisgICAgICAgIHJldHVybiBleHBlY3RlZF9yZXN1bHRzCisKICAgICBAc3Rh
dGljbWV0aG9kCiAgICAgZGVmIGhhc19waXhlbF9mYWlsdXJlcyhhY3R1YWxfcmVzdWx0cyk6CiAg
ICAgICAgIHJldHVybiBJTUFHRSBpbiBhY3R1YWxfcmVzdWx0cyBvciBGQUlMIGluIGFjdHVhbF9y
ZXN1bHRzCkBAIC05NTAsMTAgKzk2MiwxNCBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zKG9iamVj
dCk6CiAgICAgZGVmIGdldF9yZWJhc2VsaW5pbmdfZmFpbHVyZXMoc2VsZik6CiAgICAgICAgIHJl
dHVybiBzZWxmLl9tb2RlbC5nZXRfdGVzdF9zZXQoUkVCQVNFTElORSkKIAotICAgIGRlZiBtYXRj
aGVzX2FuX2V4cGVjdGVkX3Jlc3VsdChzZWxmLCB0ZXN0LCByZXN1bHQsIHBpeGVsX3Rlc3RzX2Fy
ZV9lbmFibGVkKToKKyAgICBkZWYgbWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQoc2VsZiwgdGVz
dCwgcmVzdWx0LCBwaXhlbF90ZXN0c19hcmVfZW5hYmxlZCwgd29ybGRfbGVha3NfYXJlX2VuYWJs
ZWQpOgogICAgICAgICBleHBlY3RlZF9yZXN1bHRzID0gc2VsZi5fbW9kZWwuZ2V0X2V4cGVjdGF0
aW9ucyh0ZXN0KQogICAgICAgICBpZiBub3QgcGl4ZWxfdGVzdHNfYXJlX2VuYWJsZWQ6CiAgICAg
ICAgICAgICBleHBlY3RlZF9yZXN1bHRzID0gc2VsZi5yZW1vdmVfcGl4ZWxfZmFpbHVyZXMoZXhw
ZWN0ZWRfcmVzdWx0cykKKworICAgICAgICBpZiBub3Qgd29ybGRfbGVha3NfYXJlX2VuYWJsZWQ6
CisgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHRzID0gc2VsZi5yZW1vdmVfbGVha19mYWlsdXJl
cyhleHBlY3RlZF9yZXN1bHRzKQorCiAgICAgICAgIHJldHVybiBzZWxmLnJlc3VsdF93YXNfZXhw
ZWN0ZWQocmVzdWx0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBlY3Rl
ZF9yZXN1bHRzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxmLmlzX3Jl
YmFzZWxpbmluZyh0ZXN0KSwKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0dGVzdC5weSBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0
dGVzdC5weQppbmRleCA2YmRhOTczMmNkODk3Mjg3YmFkMGRmZDNhYTFlYTFhOGE5MmUyNzgwLi43
YmZiYTFlOGFiMTQ5NGUxMGRkZDBmYTJkNGU4MDJlYTM0YTgzNTU2IDEwMDY0NAotLS0gYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnNf
dW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9k
ZWxzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CkBAIC01NCwxOCArNTQsMjYgQEAgY2xh
c3MgQmFzZSh1bml0dGVzdC5UZXN0Q2FzZSk6CiAgICAgICAgICAgICAgICAgJ2ZhaWx1cmVzL2V4
cGVjdGVkL2ltYWdlX2NoZWNrc3VtLmh0bWwnLAogICAgICAgICAgICAgICAgICdmYWlsdXJlcy9l
eHBlY3RlZC9jcmFzaC5odG1sJywKICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQv
bGVhay5odG1sJywKKyAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvZmxha3ktbGVh
ay5odG1sJywKICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvbWlzc2luZ190ZXh0
Lmh0bWwnLAogICAgICAgICAgICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC9pbWFnZS5odG1sJywK
KyAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvcmVmdGVzdC5odG1sJywKKyAgICAg
ICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvbGVha3ktcmVmdGVzdC5odG1sJywKKyAgICAg
ICAgICAgICAgICAncGFzc2VzL2ZsYWt5LWxlYWsuaHRtbCcsCiAgICAgICAgICAgICAgICAgJ3Bh
c3Nlcy90ZXh0Lmh0bWwnXQogCiAgICAgZGVmIGdldF9iYXNpY19leHBlY3RhdGlvbnMoc2VsZik6
CiAgICAgICAgIHJldHVybiAiIiIKIEJ1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0
bWwgWyBGYWlsdXJlIF0KIEJ1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sIFsg
V29udEZpeCBdCi1CdWcodGVzdCkgZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCBbIExlYWsg
XQorQnVnKHRlc3QpIGZhaWx1cmVzL2V4cGVjdGVkL2xlYWsuaHRtbCBbIExlYWsgXQorQnVnKHRl
c3QpIGZhaWx1cmVzL2V4cGVjdGVkL2ZsYWt5LWxlYWsuaHRtbCBbIEZhaWx1cmUgTGVhayBdCiBC
dWcodGVzdCkgZmFpbHVyZXMvZXhwZWN0ZWQvbWlzc2luZ19pbWFnZS5odG1sIFsgUmViYXNlbGlu
ZSBNaXNzaW5nIF0KIEJ1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS5o
dG1sIFsgV29udEZpeCBdCiBCdWcodGVzdCkgZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCBb
IFdvbnRGaXggTWFjIF0KK0J1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9yZWZ0ZXN0Lmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KK0J1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9sZWFreS1y
ZWZ0ZXN0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIExlYWsgXQorQnVnKHRlc3QpIHBhc3Nlcy9m
bGFreS1sZWFrLmh0bWwgWyBQYXNzIExlYWsgXQogIiIiCiAKICAgICBkZWYgcGFyc2VfZXhwKHNl
bGYsIGV4cGVjdGF0aW9ucywgb3ZlcnJpZGVzPU5vbmUsIGlzX2xpbnRfbW9kZT1GYWxzZSk6CkBA
IC03OSw4ICs4NywxMCBAQCBCdWcodGVzdCkgZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCBb
IFdvbnRGaXggTWFjIF0KICAgICAgICAgc2VsZi5fZXhwLnBhcnNlX2FsbF9leHBlY3RhdGlvbnMo
KQogCiAgICAgZGVmIGFzc2VydF9leHAoc2VsZiwgdGVzdCwgcmVzdWx0KToKLSAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChzZWxmLl9leHAubW9kZWwoKS5nZXRfZXhwZWN0YXRpb25zKHRlc3QpLAot
ICAgICAgICAgICAgICAgICAgICAgICAgICBzZXQoW3Jlc3VsdF0pKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHNlbGYuX2V4cC5tb2RlbCgpLmdldF9leHBlY3RhdGlvbnModGVzdCksIHNldChb
cmVzdWx0XSkpCisKKyAgICBkZWYgYXNzZXJ0X2V4cF9zZXQoc2VsZiwgdGVzdCwgcmVzdWx0X3Nl
dCk6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fZXhwLm1vZGVsKCkuZ2V0X2V4cGVj
dGF0aW9ucyh0ZXN0KSwgcmVzdWx0X3NldCkKIAogICAgIGRlZiBhc3NlcnRfYmFkX2V4cGVjdGF0
aW9ucyhzZWxmLCBleHBlY3RhdGlvbnMsIG92ZXJyaWRlcz1Ob25lKToKICAgICAgICAgc2VsZi5h
c3NlcnRSYWlzZXMoUGFyc2VFcnJvciwgc2VsZi5wYXJzZV9leHAsIGV4cGVjdGF0aW9ucywgaXNf
bGludF9tb2RlPVRydWUsIG92ZXJyaWRlcz1vdmVycmlkZXMpCkBAIC05MSw4ICsxMDEsMTIgQEAg
Y2xhc3MgQmFzaWNUZXN0cyhCYXNlKToKICAgICAgICAgc2VsZi5wYXJzZV9leHAoc2VsZi5nZXRf
YmFzaWNfZXhwZWN0YXRpb25zKCkpCiAgICAgICAgIHNlbGYuYXNzZXJ0X2V4cCgnZmFpbHVyZXMv
ZXhwZWN0ZWQvdGV4dC5odG1sJywgRkFJTCkKICAgICAgICAgc2VsZi5hc3NlcnRfZXhwKCdmYWls
dXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS5odG1sJywgUEFTUykKLSAgICAgICAgc2VsZi5h
c3NlcnRfZXhwKCdmYWlsdXJlcy9leHBlY3RlZC9sZWFrLmh0bWwnLCBQQVNTKQorICAgICAgICBz
ZWxmLmFzc2VydF9leHAoJ2ZhaWx1cmVzL2V4cGVjdGVkL3JlZnRlc3QuaHRtbCcsIElNQUdFKQor
ICAgICAgICBzZWxmLmFzc2VydF9leHBfc2V0KCdmYWlsdXJlcy9leHBlY3RlZC9sZWFreS1yZWZ0
ZXN0Lmh0bWwnLCBzZXQoW0lNQUdFLCBMRUFLXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0X2V4cCgn
ZmFpbHVyZXMvZXhwZWN0ZWQvbGVhay5odG1sJywgTEVBSykKKyAgICAgICAgc2VsZi5hc3NlcnRf
ZXhwX3NldCgnZmFpbHVyZXMvZXhwZWN0ZWQvZmxha3ktbGVhay5odG1sJywgc2V0KFtGQUlMLCBM
RUFLXSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0X2V4cCgncGFzc2VzL3RleHQuaHRtbCcsIFBBU1Mp
CisgICAgICAgIHNlbGYuYXNzZXJ0X2V4cF9zZXQoJ3Bhc3Nlcy9mbGFreS1sZWFrLmh0bWwnLCBz
ZXQoW1BBU1MsIExFQUtdKSkKICAgICAgICAgc2VsZi5hc3NlcnRfZXhwKCdmYWlsdXJlcy9leHBl
Y3RlZC9pbWFnZS5odG1sJywgUEFTUykKIAogCkBAIC0xMjMsNiArMTM3LDE0IEBAIGNsYXNzIE1p
c2NUZXN0cyhCYXNlKToKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUZXN0RXhwZWN0YXRpb25z
LnJlbW92ZV9waXhlbF9mYWlsdXJlcyhzZXQoW0ZBSUxdKSksIHNldChbRkFJTF0pKQogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKFRlc3RFeHBlY3RhdGlvbnMucmVtb3ZlX3BpeGVsX2ZhaWx1cmVz
KHNldChbUEFTUywgSU1BR0UsIENSQVNIXSkpLCBzZXQoW1BBU1MsIENSQVNIXSkpCiAKKyAgICBk
ZWYgdGVzdF9yZW1vdmVfbGVha19mYWlsdXJlcyhzZWxmKToKKyAgICAgICAgc2VsZi5hc3NlcnRF
cXVhbChUZXN0RXhwZWN0YXRpb25zLnJlbW92ZV9sZWFrX2ZhaWx1cmVzKHNldChbRkFJTF0pKSwg
c2V0KFtGQUlMXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVGVzdEV4cGVjdGF0aW9ucy5y
ZW1vdmVfbGVha19mYWlsdXJlcyhzZXQoW1BBU1NdKSksIHNldChbUEFTU10pKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKFRlc3RFeHBlY3RhdGlvbnMucmVtb3ZlX2xlYWtfZmFpbHVyZXMoc2V0
KFtMRUFLXSkpLCBzZXQoW1BBU1NdKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChUZXN0RXhw
ZWN0YXRpb25zLnJlbW92ZV9sZWFrX2ZhaWx1cmVzKHNldChbUEFTUywgTEVBS10pKSwgc2V0KFtQ
QVNTXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVGVzdEV4cGVjdGF0aW9ucy5yZW1vdmVf
bGVha19mYWlsdXJlcyhzZXQoW0ZBSUwsIExFQUtdKSksIHNldChbRkFJTF0pKQorICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKFRlc3RFeHBlY3RhdGlvbnMucmVtb3ZlX2xlYWtfZmFpbHVyZXMoc2V0
KFtQQVNTLCBJTUFHRSwgTEVBSywgQ1JBU0hdKSksIHNldChbUEFTUywgSU1BR0UsIENSQVNIXSkp
CisKICAgICBkZWYgdGVzdF9zdWZmaXhlc19mb3JfZXhwZWN0YXRpb25zKHNlbGYpOgogICAgICAg
ICBzZWxmLmFzc2VydEVxdWFsKFRlc3RFeHBlY3RhdGlvbnMuc3VmZml4ZXNfZm9yX2V4cGVjdGF0
aW9ucyhzZXQoW0ZBSUxdKSksIHNldChbJ3R4dCcsICdwbmcnLCAnd2F2J10pKQogICAgICAgICBz
ZWxmLmFzc2VydEVxdWFsKFRlc3RFeHBlY3RhdGlvbnMuc3VmZml4ZXNfZm9yX2V4cGVjdGF0aW9u
cyhzZXQoW0lNQUdFXSkpLCBzZXQoWydwbmcnXSkpCkBAIC0xNTIsOCArMTc0LDcgQEAgY2xhc3Mg
TWlzY1Rlc3RzKEJhc2UpOgogICAgIGRlZiB0ZXN0X2V4cGVjdGF0aW9uX3RvX3N0cmluZyhzZWxm
KToKICAgICAgICAgIyBOb3JtYWwgY2FzZXMgYXJlIGhhbmRsZWQgYnkgb3RoZXIgdGVzdHMuCiAg
ICAgICAgIHNlbGYucGFyc2VfZXhwKHNlbGYuZ2V0X2Jhc2ljX2V4cGVjdGF0aW9ucygpKQotICAg
ICAgICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZWxmLl9leHAubW9kZWwoKS5leHBl
Y3RhdGlvbl90b19zdHJpbmcsCi0gICAgICAgICAgICAgICAgICAgICAgICAgIC0xKQorICAgICAg
ICBzZWxmLmFzc2VydFJhaXNlcyhWYWx1ZUVycm9yLCBzZWxmLl9leHAubW9kZWwoKS5leHBlY3Rh
dGlvbl90b19zdHJpbmcsIC0xKQogCiAgICAgZGVmIHRlc3RfZ2V0X3Rlc3Rfc2V0KHNlbGYpOgog
ICAgICAgICAjIEhhbmRsZSBzb21lIGNvcm5lciBjYXNlcyBmb3IgdGhpcyByb3V0aW5lIG5vdCBj
b3ZlcmVkIGJ5IG90aGVyIHRlc3RzLgpAQCAtMjE1LDIwICsyMzYsNDQgQEAgY2xhc3MgTWlzY1Rl
c3RzKEJhc2UpOgogCiAgICAgZGVmIHRlc3RfcGl4ZWxfdGVzdHNfZmxhZyhzZWxmKToKICAgICAg
ICAgZGVmIG1hdGNoKHRlc3QsIHJlc3VsdCwgcGl4ZWxfdGVzdHNfZW5hYmxlZCk6Ci0gICAgICAg
ICAgICByZXR1cm4gc2VsZi5fZXhwLm1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KAotICAgICAg
ICAgICAgICAgIHRlc3QsIHJlc3VsdCwgcGl4ZWxfdGVzdHNfZW5hYmxlZCkKKyAgICAgICAgICAg
IHJldHVybiBzZWxmLl9leHAubWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQodGVzdCwgcmVzdWx0
LCBwaXhlbF90ZXN0c19lbmFibGVkLCBGYWxzZSkKKworICAgICAgICBzZWxmLnBhcnNlX2V4cChz
ZWxmLmdldF9iYXNpY19leHBlY3RhdGlvbnMoKSkKKyAgICAgICAgcGl4ZWxfdGVzdHNfZW5hYmxl
ZCA9IFRydWUKKyAgICAgICAgcGl4ZWxfdGVzdHNfZGlzYWJsZWQgPSBGYWxzZQorICAgICAgICBz
ZWxmLmFzc2VydFRydWUobWF0Y2goJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCcsIEZBSUws
IHBpeGVsX3Rlc3RzX2VuYWJsZWQpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobWF0Y2goJ2Zh
aWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCcsIEZBSUwsIHBpeGVsX3Rlc3RzX2Rpc2FibGVkKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtYXRjaCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5o
dG1sJywgQ1JBU0gsIHBpeGVsX3Rlc3RzX2VuYWJsZWQpKQorICAgICAgICBzZWxmLmFzc2VydEZh
bHNlKG1hdGNoKCdmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnLCBDUkFTSCwgcGl4ZWxfdGVz
dHNfZGlzYWJsZWQpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobWF0Y2goJ2ZhaWx1cmVzL2V4
cGVjdGVkL2ltYWdlX2NoZWNrc3VtLmh0bWwnLCBQQVNTLCBwaXhlbF90ZXN0c19lbmFibGVkKSkK
KyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hdGNoKCdmYWlsdXJlcy9leHBlY3RlZC9pbWFnZV9j
aGVja3N1bS5odG1sJywgUEFTUywgcGl4ZWxfdGVzdHNfZGlzYWJsZWQpKQorICAgICAgICBzZWxm
LmFzc2VydFRydWUobWF0Y2goJ2ZhaWx1cmVzL2V4cGVjdGVkL2NyYXNoLmh0bWwnLCBQQVNTLCBw
aXhlbF90ZXN0c19kaXNhYmxlZCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYXRjaCgncGFz
c2VzL3RleHQuaHRtbCcsIFBBU1MsIHBpeGVsX3Rlc3RzX2Rpc2FibGVkKSkKKworICAgIGRlZiB0
ZXN0X3dvcmxkX2xlYWtzX2ZsYWcoc2VsZik6CisgICAgICAgIGRlZiBtYXRjaCh0ZXN0LCByZXN1
bHQsIHBpeGVsX3Rlc3RzX2VuYWJsZWQsIHdvcmxkX2xlYWtzX2VuYWJsZWQpOgorICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuX2V4cC5tYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3VsdCh0ZXN0LCByZXN1
bHQsIHBpeGVsX3Rlc3RzX2VuYWJsZWQsIHdvcmxkX2xlYWtzX2VuYWJsZWQpCisKKyAgICAgICAg
cGl4ZWxfdGVzdHNfZW5hYmxlZCA9IFRydWUKKyAgICAgICAgcGl4ZWxfdGVzdHNfZGlzYWJsZWQg
PSBGYWxzZQorICAgICAgICB3b3JsZF9sZWFrc19lbmFibGVkID0gVHJ1ZQorICAgICAgICB3b3Js
ZF9sZWFrc19kaXNhYmxlZCA9IEZhbHNlCiAKICAgICAgICAgc2VsZi5wYXJzZV9leHAoc2VsZi5n
ZXRfYmFzaWNfZXhwZWN0YXRpb25zKCkpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYXRjaCgn
ZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJywgRkFJTCwgVHJ1ZSkpCi0gICAgICAgIHNlbGYu
YXNzZXJ0VHJ1ZShtYXRjaCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJywgRkFJTCwgRmFs
c2UpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG1hdGNoKCdmYWlsdXJlcy9leHBlY3RlZC90
ZXh0Lmh0bWwnLCBDUkFTSCwgVHJ1ZSkpCi0gICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobWF0Y2go
J2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCcsIENSQVNILCBGYWxzZSkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShtYXRjaCgnZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0uaHRt
bCcsIFBBU1MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcnVlKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKG1hdGNoKCdmYWlsdXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS5o
dG1sJywgUEFTUywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZhbHNlKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKG1hdGNoKCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywg
UEFTUywgRmFsc2UpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUobWF0Y2goJ3Bhc3Nlcy90ZXh0
Lmh0bWwnLCBQQVNTLCBGYWxzZSkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYXRjaCgnZmFp
bHVyZXMvZXhwZWN0ZWQvbGVhay5odG1sJywgTEVBSywgcGl4ZWxfdGVzdHNfZW5hYmxlZCwgd29y
bGRfbGVha3NfZW5hYmxlZCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYXRjaCgnZmFpbHVy
ZXMvZXhwZWN0ZWQvbGVhay5odG1sJywgUEFTUywgcGl4ZWxfdGVzdHNfZW5hYmxlZCwgd29ybGRf
bGVha3NfZGlzYWJsZWQpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobWF0Y2goJ2ZhaWx1cmVz
L2V4cGVjdGVkL2ZsYWt5LWxlYWsuaHRtbCcsIEZBSUwsIHBpeGVsX3Rlc3RzX2VuYWJsZWQsIHdv
cmxkX2xlYWtzX2Rpc2FibGVkKSkKKworICAgICAgICBzZWxmLmFzc2VydFRydWUobWF0Y2goJ2Zh
aWx1cmVzL2V4cGVjdGVkL2xlYWt5LXJlZnRlc3QuaHRtbCcsIExFQUssIHBpeGVsX3Rlc3RzX2Rp
c2FibGVkLCB3b3JsZF9sZWFrc19lbmFibGVkKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1h
dGNoKCdmYWlsdXJlcy9leHBlY3RlZC9sZWFreS1yZWZ0ZXN0Lmh0bWwnLCBQQVNTLCBwaXhlbF90
ZXN0c19kaXNhYmxlZCwgd29ybGRfbGVha3NfZGlzYWJsZWQpKQorCisgICAgICAgIHNlbGYuYXNz
ZXJ0VHJ1ZShtYXRjaCgnZmFpbHVyZXMvZXhwZWN0ZWQvbGVha3ktcmVmdGVzdC5odG1sJywgSU1B
R0UsIHBpeGVsX3Rlc3RzX2VuYWJsZWQsIHdvcmxkX2xlYWtzX2VuYWJsZWQpKQorICAgICAgICBz
ZWxmLmFzc2VydFRydWUobWF0Y2goJ2ZhaWx1cmVzL2V4cGVjdGVkL2xlYWt5LXJlZnRlc3QuaHRt
bCcsIExFQUssIHBpeGVsX3Rlc3RzX2VuYWJsZWQsIHdvcmxkX2xlYWtzX2VuYWJsZWQpKQorICAg
ICAgICBzZWxmLmFzc2VydFRydWUobWF0Y2goJ2ZhaWx1cmVzL2V4cGVjdGVkL2xlYWt5LXJlZnRl
c3QuaHRtbCcsIElNQUdFLCBwaXhlbF90ZXN0c19lbmFibGVkLCB3b3JsZF9sZWFrc19kaXNhYmxl
ZCkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtYXRjaCgnZmFpbHVyZXMvZXhwZWN0ZWQv
dGV4dC5odG1sJywgUEFTUywgcGl4ZWxfdGVzdHNfZW5hYmxlZCwgd29ybGRfbGVha3NfZW5hYmxl
ZCkpCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobWF0Y2goJ2ZhaWx1cmVzL2V4cGVjdGVkL3Rl
eHQuaHRtbCcsIENSQVNILCBwaXhlbF90ZXN0c19lbmFibGVkLCB3b3JsZF9sZWFrc19kaXNhYmxl
ZCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYXRjaCgncGFzc2VzL3RleHQuaHRtbCcsIFBB
U1MsIHBpeGVsX3Rlc3RzX2VuYWJsZWQsIHdvcmxkX2xlYWtzX2Rpc2FibGVkKSkKIAogICAgIGRl
ZiB0ZXN0X21vcmVfc3BlY2lmaWNfb3ZlcnJpZGVfcmVzZXRzX3NraXAoc2VsZik6CiAgICAgICAg
IHNlbGYucGFyc2VfZXhwKCJCdWcoeCkgZmFpbHVyZXMvZXhwZWN0ZWQgWyBTa2lwIF1cbiIKQEAg
LTM0OCw2ICszOTMsOSBAQCBjbGFzcyBFeHBlY3RhdGlvblN5bnRheFRlc3RzKEJhc2UpOgogICAg
IGRlZiB0ZXN0X3Nsb3coc2VsZik6CiAgICAgICAgIHNlbGYuYXNzZXJ0X3Rva2VuaXplX2V4cCgn
Zm9vLmh0bWwgWyBTbG93IF0nLCBtb2RpZmllcnM9WydTTE9XJ10sIGV4cGVjdGF0aW9ucz1bJ1BB
U1MnXSkKIAorICAgIGRlZiB0ZXN0X2xlYWsoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0X3Rv
a2VuaXplX2V4cCgnZm9vLmh0bWwgWyBMZWFrIF0nLCBtb2RpZmllcnM9W10sIGV4cGVjdGF0aW9u
cz1bJ0xFQUsnXSkKKwogICAgIGRlZiB0ZXN0X3dvbnRmaXgoc2VsZik6CiAgICAgICAgIHNlbGYu
YXNzZXJ0X3Rva2VuaXplX2V4cCgnZm9vLmh0bWwgWyBXb250Rml4IF0nLCBtb2RpZmllcnM9WydX
T05URklYJywgJ1NLSVAnXSwgZXhwZWN0YXRpb25zPVsnUEFTUyddKQogICAgICAgICBzZWxmLmFz
c2VydF90b2tlbml6ZV9leHAoJ2Zvby5odG1sIFsgV29udEZpeCBJbWFnZU9ubHlGYWlsdXJlIF0n
LCBtb2RpZmllcnM9WydXT05URklYJ10sIGV4cGVjdGF0aW9ucz1bJ0lNQUdFJ10pCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvdGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC90ZXN0LnB5CmluZGV4IGYyZDZjNmZmY2MzNDMxOWM0NGIwNGU2ODYxMzYy
OTdkYTI2YzBjZjYuLmE1YmQyNmRhZjA2ZDFiZjUzNzVhYzQ1OTM5MWZmYTViNzJmMWZhNjcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC90ZXN0LnB5CisrKyBiL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvcG9ydC90ZXN0LnB5CkBAIC03OCwxMyArNzgsMTggQEAgY2xhc3Mg
VGVzdExpc3Qob2JqZWN0KToKICAgICAgICAgICAgIHRlc3QuX19kaWN0X19ba2V5XSA9IHZhbHVl
CiAgICAgICAgIHNlbGYudGVzdHNbbmFtZV0gPSB0ZXN0CiAKLSAgICBkZWYgYWRkX3JlZnRlc3Qo
c2VsZiwgbmFtZSwgcmVmZXJlbmNlX25hbWUsIHNhbWVfaW1hZ2UpOgorICAgIGRlZiBhZGRfcmVm
dGVzdChzZWxmLCBuYW1lLCByZWZlcmVuY2VfbmFtZSwgc2FtZV9pbWFnZSwgKiprd2FyZ3MpOgog
ICAgICAgICBzZWxmLmFkZChuYW1lLCBhY3R1YWxfY2hlY2tzdW09J3h4eCcsIGFjdHVhbF9pbWFn
ZT0nWFhYJywgaXNfcmVmdGVzdD1UcnVlKQogICAgICAgICBpZiBzYW1lX2ltYWdlOgogICAgICAg
ICAgICAgc2VsZi5hZGQocmVmZXJlbmNlX25hbWUsIGFjdHVhbF9jaGVja3N1bT0neHh4JywgYWN0
dWFsX2ltYWdlPSdYWFgnLCBpc19yZWZ0ZXN0PVRydWUpCiAgICAgICAgIGVsc2U6CiAgICAgICAg
ICAgICBzZWxmLmFkZChyZWZlcmVuY2VfbmFtZSwgYWN0dWFsX2NoZWNrc3VtPSd5eXknLCBhY3R1
YWxfaW1hZ2U9J1lZWScsIGlzX3JlZnRlc3Q9VHJ1ZSkKIAorICAgICAgICBpZiBrd2FyZ3M6Cisg
ICAgICAgICAgICB0ZXN0ID0gc2VsZi50ZXN0c1tuYW1lXQorICAgICAgICAgICAgZm9yIGtleSwg
dmFsdWUgaW4ga3dhcmdzLml0ZW1zKCk6CisgICAgICAgICAgICAgICAgdGVzdC5fX2RpY3RfX1tr
ZXldID0gdmFsdWUKKwogICAgIGRlZiBrZXlzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi50
ZXN0cy5rZXlzKCkKIApAQCAtMTE2LDYgKzEyMSw3IEBAIGRlZiB1bml0X3Rlc3RfbGlzdCgpOgog
ICAgIHRlc3RzLmFkZCgnZmFpbHVyZXMvZXhwZWN0ZWQvaGFuZy5odG1sJywgaGFuZz1UcnVlKQog
ICAgIHRlc3RzLmFkZCgnZmFpbHVyZXMvZXhwZWN0ZWQvbWlzc2luZ190ZXh0Lmh0bWwnLCBleHBl
Y3RlZF90ZXh0PU5vbmUpCiAgICAgdGVzdHMuYWRkKCdmYWlsdXJlcy9leHBlY3RlZC9sZWFrLmh0
bWwnLCBsZWFrPVRydWUpCisgICAgdGVzdHMuYWRkKCdmYWlsdXJlcy9leHBlY3RlZC9mbGFreS1s
ZWFrLmh0bWwnLCBsZWFrPVRydWUpCiAgICAgdGVzdHMuYWRkKCdmYWlsdXJlcy9leHBlY3RlZC9p
bWFnZS5odG1sJywKICAgICAgICAgICAgICAgYWN0dWFsX2ltYWdlPSdpbWFnZV9mYWlsLXBuZ3RF
WHRjaGVja3N1bVx4MDBjaGVja3N1bV9mYWlsJywKICAgICAgICAgICAgICAgZXhwZWN0ZWRfaW1h
Z2U9J2ltYWdlLXBuZ3RFWHRjaGVja3N1bVx4MDBjaGVja3N1bS1wbmcnKQpAQCAtMTk4LDYgKzIw
NCw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDM0CiAgICAgdGVzdHMuYWRkKCdwYXNzZXMv
Y2hlY2tzdW1faW5faW1hZ2UuaHRtbCcsCiAgICAgICAgICAgICAgIGV4cGVjdGVkX2ltYWdlPSd0
RVh0Y2hlY2tzdW1ceDAwY2hlY2tzdW1faW5faW1hZ2UtY2hlY2tzdW0nKQogICAgIHRlc3RzLmFk
ZCgncGFzc2VzL3NraXBwZWQvc2tpcC5odG1sJykKKyAgICB0ZXN0cy5hZGQoJ3Bhc3Nlcy9mbGFr
eS1sZWFrLmh0bWwnLCBsZWFrPVRydWUpCiAKICAgICAjIE5vdGUgdGhhdCBoZXJlIHRoZSBjaGVj
a3N1bXMgZG9uJ3QgbWF0Y2ggYnV0IHRoZSBpbWFnZXMgZG8sIHNvIHRoaXMgdGVzdCBwYXNzZXMg
InVuZXhwZWN0ZWRseSIuCiAgICAgIyBTZWUgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY5NDQ0IC4KQEAgLTIxNSw2ICsyMjIsNyBAQCBsYXllciBhdCAoMCwwKSBzaXpl
IDgwMHgzNAogICAgIHRlc3RzLmFkZF9yZWZ0ZXN0KCdwYXNzZXMveGh0cmVmdGVzdC54aHQnLCAn
cGFzc2VzL3hodHJlZnRlc3QtZXhwZWN0ZWQuaHRtbCcsIHNhbWVfaW1hZ2U9VHJ1ZSkKICAgICB0
ZXN0cy5hZGRfcmVmdGVzdCgncGFzc2VzL3BocHJlZnRlc3QucGhwJywgJ3Bhc3Nlcy9waHByZWZ0
ZXN0LWV4cGVjdGVkLW1pc21hdGNoLnN2ZycsIHNhbWVfaW1hZ2U9RmFsc2UpCiAgICAgdGVzdHMu
YWRkX3JlZnRlc3QoJ2ZhaWx1cmVzL2V4cGVjdGVkL3JlZnRlc3QuaHRtbCcsICdmYWlsdXJlcy9l
eHBlY3RlZC9yZWZ0ZXN0LWV4cGVjdGVkLmh0bWwnLCBzYW1lX2ltYWdlPUZhbHNlKQorICAgIHRl
c3RzLmFkZF9yZWZ0ZXN0KCdmYWlsdXJlcy9leHBlY3RlZC9sZWFreS1yZWZ0ZXN0Lmh0bWwnLCAn
ZmFpbHVyZXMvZXhwZWN0ZWQvbGVha3ktcmVmdGVzdC1leHBlY3RlZC5odG1sJywgc2FtZV9pbWFn
ZT1GYWxzZSwgbGVhaz1UcnVlKQogICAgIHRlc3RzLmFkZF9yZWZ0ZXN0KCdmYWlsdXJlcy9leHBl
Y3RlZC9taXNtYXRjaC5odG1sJywgJ2ZhaWx1cmVzL2V4cGVjdGVkL21pc21hdGNoLWV4cGVjdGVk
LW1pc21hdGNoLmh0bWwnLCBzYW1lX2ltYWdlPVRydWUpCiAgICAgdGVzdHMuYWRkX3JlZnRlc3Qo
J2ZhaWx1cmVzL3VuZXhwZWN0ZWQvcmVmdGVzdC5odG1sJywgJ2ZhaWx1cmVzL3VuZXhwZWN0ZWQv
cmVmdGVzdC1leHBlY3RlZC5odG1sJywgc2FtZV9pbWFnZT1GYWxzZSkKICAgICB0ZXN0cy5hZGRf
cmVmdGVzdCgnZmFpbHVyZXMvdW5leHBlY3RlZC9taXNtYXRjaC5odG1sJywgJ2ZhaWx1cmVzL3Vu
ZXhwZWN0ZWQvbWlzbWF0Y2gtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCcsIHNhbWVfaW1hZ2U9VHJ1
ZSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>348435</attachid>
            <date>2018-08-29 15:11:57 -0700</date>
            <delta_ts>2018-08-30 09:53:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189088-20180829151156.patch</filename>
            <type>text/plain</type>
            <size>21902</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM1NDc1CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDcyYmMzZTlkNmQ0ZjhjMGMwYjIwOTJjNDI3Yzc5MzFl
ODVhMzA4OC4uMjhhNDc0YjQzYzMwMzAwNmUzMjY0ZDNjNGQ5YmNiMzBmOTA0M2Y5MyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4
IEBACisyMDE4LTA4LTI5ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgor
CisgICAgICAgIE1ha2UgaXQgcG9zc2libGUgdG8gbWFyayB0ZXN0cyBhcyBsZWFrcyBpbiBUZXN0
RXhwZWN0YXRpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xODkwODgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAg
ICAgCisgICAgICAgIEhhdmUgd2Via2l0cHkgcGFyc2Ugb3V0ICJMZWFrIiBleHBlY3RhdGlvbnMg
aW4gVGVzdEV4cGVjdGF0aW9ucywgYW5kIGRvIHRoZSByaWdodAorICAgICAgICB0aGluZyBpZiB0
aGUgdGVzdCBydW4gZGlkIG5vdCB1c2UgLS13b3JsZC1sZWFrcy4gQWRkIHVuaXQgdGVzdHMgZm9y
IGxlYWtzIGNvbWJpbmVkCisgICAgICAgIHdpdGggdmFyaW91cyBvdGhlciByZXN1bHQgY29tYmlu
YXRpb25zLgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvY29udHJv
bGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5OgorICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lci5f
dXBkYXRlX3N1bW1hcnlfd2l0aF9yZXN1bHQpOgorICAgICAgICAoTGF5b3V0VGVzdFJ1bm5lci5f
YW5ub3RhdGVfcmVzdWx0c193aXRoX2FkZGl0aW9uYWxfZmFpbHVyZXMpOgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weToK
KyAgICAgICAgKFRlc3RFeHBlY3RhdGlvblBhcnNlcik6CisgICAgICAgIChUZXN0RXhwZWN0YXRp
b25zKTogVGhlICdMZWFrJyBsaW5lIHdhcyBkdXBsaWNhdGVkIGhlcmUsIHNvIHJlbW92ZSBhIGNv
cHkuCisgICAgICAgIChUZXN0RXhwZWN0YXRpb25zLnJlbW92ZV9sZWFrX2ZhaWx1cmVzKToKKyAg
ICAgICAgKFRlc3RFeHBlY3RhdGlvbnMubWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQpOgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0
aW9uc191bml0dGVzdC5weToKKyAgICAgICAgKEJhc2UuZ2V0X2Jhc2ljX3Rlc3RzKToKKyAgICAg
ICAgKiBTY3JpcHRzL3dlYmtpdHB5L3BvcnQvdGVzdC5weToKKyAgICAgICAgKFRlc3RMaXN0LmFk
ZF9yZWZ0ZXN0KToKKyAgICAgICAgKHVuaXRfdGVzdF9saXN0KToKKwogMjAxOC0wOC0yOSAgSmVy
IE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBNdXRlZCBlbGVtZW50cyBk
byBub3QgaGF2ZSB0aGVpciBOb3cgUGxheWluZyBzdGF0dXMgdXBkYXRlZCB3aGVuIHVubXV0ZWQu
CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9jb250cm9s
bGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91
dF90ZXN0cy9jb250cm9sbGVycy9sYXlvdXRfdGVzdF9ydW5uZXIucHkKaW5kZXggMDc2NTQ3ZDRl
ZDc4NTUwYTgwMDY4YWZjZDgzOGI1YWMwZjhiMWI2NC4uNGIxOTk3NGQ5ODc0ZGQ4MjZkM2FiNWQ2
ZGIyYjgwZWVkOTlkMTQxMiAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlv
dXRfdGVzdHMvY29udHJvbGxlcnMvbGF5b3V0X3Rlc3RfcnVubmVyLnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL2NvbnRyb2xsZXJzL2xheW91dF90ZXN0X3J1bm5l
ci5weQpAQCAtMTgyLDcgKzE4Miw3IEBAIGNsYXNzIExheW91dFRlc3RSdW5uZXIob2JqZWN0KToK
ICAgICAgICAgICAgIGV4cF9zdHIgPSBnb3Rfc3RyID0gJ1NLSVAnCiAgICAgICAgICAgICBleHBl
Y3RlZCA9IFRydWUKICAgICAgICAgZWxzZToKLSAgICAgICAgICAgIGV4cGVjdGVkID0gc2VsZi5f
ZXhwZWN0YXRpb25zLm1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KHJlc3VsdC50ZXN0X25hbWUs
IHJlc3VsdC50eXBlLCBzZWxmLl9vcHRpb25zLnBpeGVsX3Rlc3RzIG9yIHJlc3VsdC5yZWZ0ZXN0
X3R5cGUpCisgICAgICAgICAgICBleHBlY3RlZCA9IHNlbGYuX2V4cGVjdGF0aW9ucy5tYXRjaGVz
X2FuX2V4cGVjdGVkX3Jlc3VsdChyZXN1bHQudGVzdF9uYW1lLCByZXN1bHQudHlwZSwgc2VsZi5f
b3B0aW9ucy5waXhlbF90ZXN0cyBvciByZXN1bHQucmVmdGVzdF90eXBlLCBzZWxmLl9vcHRpb25z
LndvcmxkX2xlYWtzKQogICAgICAgICAgICAgZXhwX3N0ciA9IHNlbGYuX2V4cGVjdGF0aW9ucy5t
b2RlbCgpLmdldF9leHBlY3RhdGlvbnNfc3RyaW5nKHJlc3VsdC50ZXN0X25hbWUpCiAgICAgICAg
ICAgICBnb3Rfc3RyID0gc2VsZi5fZXhwZWN0YXRpb25zLm1vZGVsKCkuZXhwZWN0YXRpb25fdG9f
c3RyaW5nKHJlc3VsdC50eXBlKQogCkBAIC0xOTgsOCArMTk4LDggQEAgY2xhc3MgTGF5b3V0VGVz
dFJ1bm5lcihvYmplY3QpOgogICAgICAgICAgICAgIyBXaGVuIHJ1bm5pbmcgYSBjaHVuayAoLS1y
dW4tY2h1bmspLCByZXN1bHRzX2J5X25hbWUgY29udGFpbnMgYWxsIHRoZSB0ZXN0cywgYnV0IChj
b25mdXNpbmdseSkgYWxsX3Rlc3RzIG9ubHkgY29udGFpbnMgdGhvc2UgaW4gdGhlIGNodW5rIHRo
YXQgd2FzIHJ1biwKICAgICAgICAgICAgICMgYW5kIHdlIGRvbid0IHdhbnQgdG8gbW9kaWZ5IHRo
ZSByZXN1bHRzIG9mIGEgdGVzdCB0aGF0IGRpZG4ndCBydW4uIGV4aXN0aW5nX3Jlc3VsdC50ZXN0
X251bWJlciBpcyBvbmx5IG5vbi1Ob25lIGZvciB0ZXN0cyB0aGF0IHJhbi4KICAgICAgICAgICAg
IGlmIGV4aXN0aW5nX3Jlc3VsdCBhbmQgZXhpc3RpbmdfcmVzdWx0LnRlc3RfbnVtYmVyIGlzIG5v
dCBOb25lOgotICAgICAgICAgICAgICAgIHdhc19leHBlY3RlZCA9IHNlbGYuX2V4cGVjdGF0aW9u
cy5tYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3VsdChuZXdfcmVzdWx0LnRlc3RfbmFtZSwgZXhpc3Rp
bmdfcmVzdWx0LnR5cGUsIHNlbGYuX29wdGlvbnMucGl4ZWxfdGVzdHMgb3IgZXhpc3RpbmdfcmVz
dWx0LnJlZnRlc3RfdHlwZSkKLSAgICAgICAgICAgICAgICBub3dfZXhwZWN0ZWQgPSBzZWxmLl9l
eHBlY3RhdGlvbnMubWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQobmV3X3Jlc3VsdC50ZXN0X25h
bWUsIG5ld19yZXN1bHQudHlwZSwgc2VsZi5fb3B0aW9ucy5waXhlbF90ZXN0cyBvciBuZXdfcmVz
dWx0LnJlZnRlc3RfdHlwZSkKKyAgICAgICAgICAgICAgICB3YXNfZXhwZWN0ZWQgPSBzZWxmLl9l
eHBlY3RhdGlvbnMubWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQobmV3X3Jlc3VsdC50ZXN0X25h
bWUsIGV4aXN0aW5nX3Jlc3VsdC50eXBlLCBzZWxmLl9vcHRpb25zLnBpeGVsX3Rlc3RzIG9yIGV4
aXN0aW5nX3Jlc3VsdC5yZWZ0ZXN0X3R5cGUsIHNlbGYuX29wdGlvbnMud29ybGRfbGVha3MpCisg
ICAgICAgICAgICAgICAgbm93X2V4cGVjdGVkID0gc2VsZi5fZXhwZWN0YXRpb25zLm1hdGNoZXNf
YW5fZXhwZWN0ZWRfcmVzdWx0KG5ld19yZXN1bHQudGVzdF9uYW1lLCBuZXdfcmVzdWx0LnR5cGUs
IHNlbGYuX29wdGlvbnMucGl4ZWxfdGVzdHMgb3IgbmV3X3Jlc3VsdC5yZWZ0ZXN0X3R5cGUsIHNl
bGYuX29wdGlvbnMud29ybGRfbGVha3MpCiAgICAgICAgICAgICAgICAgcnVuX3Jlc3VsdHMuY2hh
bmdlX3Jlc3VsdF90b19mYWlsdXJlKGV4aXN0aW5nX3Jlc3VsdCwgbmV3X3Jlc3VsdCwgd2FzX2V4
cGVjdGVkLCBub3dfZXhwZWN0ZWQpCiAKICAgICBkZWYgc3RhcnRfc2VydmVycyhzZWxmKToKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0
X2V4cGVjdGF0aW9ucy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21v
ZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weQppbmRleCBhZjRkMWJlN2Y1MGM4MTFhOTk5MTMzZjFj
ZmI4NzBhZjIwNWQ3OTAxLi5mOGNkN2QwMDlmYzQyMTgxNjM2MDUxZTFkNTY3MDQ0N2RlZTQxOTZj
IDEwMDY0NAotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMv
dGVzdF9leHBlY3RhdGlvbnMucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zLnB5CkBAIC0yNDUsNyArMjQ1LDYgQEAgY2xh
c3MgVGVzdEV4cGVjdGF0aW9uUGFyc2VyKG9iamVjdCk6CiAgICAgICAgICdGYWlsdXJlJzogJ0ZB
SUwnLAogICAgICAgICAnSW1hZ2VPbmx5RmFpbHVyZSc6ICdJTUFHRScsCiAgICAgICAgICdNaXNz
aW5nJzogJ01JU1NJTkcnLAotICAgICAgICAnTGVhayc6ICdMRUFLJywKICAgICAgICAgJ1Bhc3Mn
OiAnUEFTUycsCiAgICAgICAgICdSZWJhc2VsaW5lJzogJ1JFQkFTRUxJTkUnLAogICAgICAgICAn
U2tpcCc6ICdTS0lQJywKQEAgLTQwNCw2ICs0MDMsOSBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25M
aW5lKG9iamVjdCk6CiAgICAgICAgIHNlbGYucmVsYXRlZF9maWxlcyA9IHt9ICAjIERpY3Rpb25h
cnkgb2YgZmlsZXMgdG8gbGluZXMgbnVtYmVyIGluIHRoYXQgZmlsZSB3aGljaCBtYXkgaGF2ZSBj
YXVzZWQgdGhlIGxpc3Qgb2Ygd2FybmluZ3MuCiAgICAgICAgIHNlbGYubm90X2FwcGxpY2FibGVf
dG9fY3VycmVudF9wbGF0Zm9ybSA9IEZhbHNlCiAKKyAgICBkZWYgX19zdHJfXyhzZWxmKToKKyAg
ICAgICAgcmV0dXJuIHNlbGYudG9fc3RyaW5nKE5vbmUpCisKICAgICBkZWYgaXNfaW52YWxpZChz
ZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYud2FybmluZ3MgYW5kIHNlbGYud2FybmluZ3MgIT0g
W1Rlc3RFeHBlY3RhdGlvblBhcnNlci5NSVNTSU5HX0JVR19XQVJOSU5HXQogCkBAIC04NjYsNiAr
ODY4LDE5IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlvbnMob2JqZWN0KToKICAgICAgICAgICAgIGV4
cGVjdGVkX3Jlc3VsdHMuYWRkKFBBU1MpCiAgICAgICAgIHJldHVybiBleHBlY3RlZF9yZXN1bHRz
CiAKKyAgICBAc3RhdGljbWV0aG9kCisgICAgZGVmIHJlbW92ZV9sZWFrX2ZhaWx1cmVzKGV4cGVj
dGVkX3Jlc3VsdHMpOgorICAgICAgICAiIiJSZXR1cm5zIGEgY29weSBvZiB0aGUgZXhwZWN0ZWQg
cmVzdWx0cyBmb3IgYSB0ZXN0LCBleGNlcHQgdGhhdCB3ZQorICAgICAgICBkcm9wIGFueSBsZWFr
IGZhaWx1cmVzIGFuZCByZXR1cm4gdGhlIHJlbWFpbmluZyBleHBlY3RhdGlvbnMuIEZvciBleGFt
cGxlLAorICAgICAgICBpZiB3ZSdyZSBub3QgcnVubmluZyB3aXRoIC0td29ybGQtbGVha3MsIHRo
ZW4gdGVzdHMgZXhwZWN0ZWQgdG8gZmFpbCBhcyBMRUFLCisgICAgICAgIHdpbGwgUEFTUy4iIiIK
KyAgICAgICAgZXhwZWN0ZWRfcmVzdWx0cyA9IGV4cGVjdGVkX3Jlc3VsdHMuY29weSgpCisgICAg
ICAgIGlmIExFQUsgaW4gZXhwZWN0ZWRfcmVzdWx0czoKKyAgICAgICAgICAgIGV4cGVjdGVkX3Jl
c3VsdHMucmVtb3ZlKExFQUspCisgICAgICAgICAgICBpZiBub3QgZXhwZWN0ZWRfcmVzdWx0czoK
KyAgICAgICAgICAgICAgICBleHBlY3RlZF9yZXN1bHRzLmFkZChQQVNTKQorICAgICAgICByZXR1
cm4gZXhwZWN0ZWRfcmVzdWx0cworCiAgICAgQHN0YXRpY21ldGhvZAogICAgIGRlZiBoYXNfcGl4
ZWxfZmFpbHVyZXMoYWN0dWFsX3Jlc3VsdHMpOgogICAgICAgICByZXR1cm4gSU1BR0UgaW4gYWN0
dWFsX3Jlc3VsdHMgb3IgRkFJTCBpbiBhY3R1YWxfcmVzdWx0cwpAQCAtOTUwLDEwICs5NjUsMTQg
QEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9ucyhvYmplY3QpOgogICAgIGRlZiBnZXRfcmViYXNlbGlu
aW5nX2ZhaWx1cmVzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fbW9kZWwuZ2V0X3Rlc3Rf
c2V0KFJFQkFTRUxJTkUpCiAKLSAgICBkZWYgbWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQoc2Vs
ZiwgdGVzdCwgcmVzdWx0LCBwaXhlbF90ZXN0c19hcmVfZW5hYmxlZCk6CisgICAgZGVmIG1hdGNo
ZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KHNlbGYsIHRlc3QsIHJlc3VsdCwgcGl4ZWxfdGVzdHNfYXJl
X2VuYWJsZWQsIHdvcmxkX2xlYWtzX2FyZV9lbmFibGVkKToKICAgICAgICAgZXhwZWN0ZWRfcmVz
dWx0cyA9IHNlbGYuX21vZGVsLmdldF9leHBlY3RhdGlvbnModGVzdCkKICAgICAgICAgaWYgbm90
IHBpeGVsX3Rlc3RzX2FyZV9lbmFibGVkOgogICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0cyA9
IHNlbGYucmVtb3ZlX3BpeGVsX2ZhaWx1cmVzKGV4cGVjdGVkX3Jlc3VsdHMpCisKKyAgICAgICAg
aWYgbm90IHdvcmxkX2xlYWtzX2FyZV9lbmFibGVkOgorICAgICAgICAgICAgZXhwZWN0ZWRfcmVz
dWx0cyA9IHNlbGYucmVtb3ZlX2xlYWtfZmFpbHVyZXMoZXhwZWN0ZWRfcmVzdWx0cykKKwogICAg
ICAgICByZXR1cm4gc2VsZi5yZXN1bHRfd2FzX2V4cGVjdGVkKHJlc3VsdCwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXhwZWN0ZWRfcmVzdWx0cywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgc2VsZi5pc19yZWJhc2VsaW5pbmcodGVzdCksCmRpZmYgLS1n
aXQgYS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBl
Y3RhdGlvbnNfdW5pdHRlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0
cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnNfdW5pdHRlc3QucHkKaW5kZXggNmJkYTk3MzJjZDg5
NzI4N2JhZDBkZmQzYWExZWExYThhOTJlMjc4MC4uNGQzZjBiNjY3NmJhMzAzMzZkMmYzM2RkMmMz
MTBkODk4N2U0ZGNlZSAxMDA2NDQKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRpb25zX3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9uc191bml0
dGVzdC5weQpAQCAtNTQsMTggKzU0LDI0IEBAIGNsYXNzIEJhc2UodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICAgICAgICAgICdmYWlsdXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS5odG1s
JywKICAgICAgICAgICAgICAgICAnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcsCiAgICAg
ICAgICAgICAgICAgJ2ZhaWx1cmVzL2V4cGVjdGVkL2xlYWsuaHRtbCcsCisgICAgICAgICAgICAg
ICAgJ2ZhaWx1cmVzL2V4cGVjdGVkL2ZsYWt5LWxlYWsuaHRtbCcsCiAgICAgICAgICAgICAgICAg
J2ZhaWx1cmVzL2V4cGVjdGVkL21pc3NpbmdfdGV4dC5odG1sJywKICAgICAgICAgICAgICAgICAn
ZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCcsCisgICAgICAgICAgICAgICAgJ2ZhaWx1cmVz
L2V4cGVjdGVkL3JlZnRlc3QuaHRtbCcsCisgICAgICAgICAgICAgICAgJ2ZhaWx1cmVzL2V4cGVj
dGVkL2xlYWt5LXJlZnRlc3QuaHRtbCcsCiAgICAgICAgICAgICAgICAgJ3Bhc3Nlcy90ZXh0Lmh0
bWwnXQogCiAgICAgZGVmIGdldF9iYXNpY19leHBlY3RhdGlvbnMoc2VsZik6CiAgICAgICAgIHJl
dHVybiAiIiIKIEJ1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwgWyBGYWlsdXJl
IF0KIEJ1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sIFsgV29udEZpeCBdCi1C
dWcodGVzdCkgZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCBbIExlYWsgXQorQnVnKHRlc3Qp
IGZhaWx1cmVzL2V4cGVjdGVkL2xlYWsuaHRtbCBbIExlYWsgXQorQnVnKHRlc3QpIGZhaWx1cmVz
L2V4cGVjdGVkL2ZsYWt5LWxlYWsuaHRtbCBbIEZhaWx1cmUgTGVhayBdCiBCdWcodGVzdCkgZmFp
bHVyZXMvZXhwZWN0ZWQvbWlzc2luZ19pbWFnZS5odG1sIFsgUmViYXNlbGluZSBNaXNzaW5nIF0K
IEJ1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9pbWFnZV9jaGVja3N1bS5odG1sIFsgV29udEZp
eCBdCiBCdWcodGVzdCkgZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCBbIFdvbnRGaXggTWFj
IF0KK0J1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9yZWZ0ZXN0Lmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KK0J1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9sZWFreS1yZWZ0ZXN0Lmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIExlYWsgXQogIiIiCiAKICAgICBkZWYgcGFyc2VfZXhwKHNlbGYs
IGV4cGVjdGF0aW9ucywgb3ZlcnJpZGVzPU5vbmUsIGlzX2xpbnRfbW9kZT1GYWxzZSk6CkBAIC03
OSw4ICs4NSwxMCBAQCBCdWcodGVzdCkgZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2UuaHRtbCBbIFdv
bnRGaXggTWFjIF0KICAgICAgICAgc2VsZi5fZXhwLnBhcnNlX2FsbF9leHBlY3RhdGlvbnMoKQog
CiAgICAgZGVmIGFzc2VydF9leHAoc2VsZiwgdGVzdCwgcmVzdWx0KToKLSAgICAgICAgc2VsZi5h
c3NlcnRFcXVhbChzZWxmLl9leHAubW9kZWwoKS5nZXRfZXhwZWN0YXRpb25zKHRlc3QpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgICBzZXQoW3Jlc3VsdF0pKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHNlbGYuX2V4cC5tb2RlbCgpLmdldF9leHBlY3RhdGlvbnModGVzdCksIHNldChbcmVz
dWx0XSkpCisKKyAgICBkZWYgYXNzZXJ0X2V4cF9zZXQoc2VsZiwgdGVzdCwgcmVzdWx0X3NldCk6
CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5fZXhwLm1vZGVsKCkuZ2V0X2V4cGVjdGF0
aW9ucyh0ZXN0KSwgcmVzdWx0X3NldCkKIAogICAgIGRlZiBhc3NlcnRfYmFkX2V4cGVjdGF0aW9u
cyhzZWxmLCBleHBlY3RhdGlvbnMsIG92ZXJyaWRlcz1Ob25lKToKICAgICAgICAgc2VsZi5hc3Nl
cnRSYWlzZXMoUGFyc2VFcnJvciwgc2VsZi5wYXJzZV9leHAsIGV4cGVjdGF0aW9ucywgaXNfbGlu
dF9tb2RlPVRydWUsIG92ZXJyaWRlcz1vdmVycmlkZXMpCkBAIC05MSw4ICs5OSwxMiBAQCBjbGFz
cyBCYXNpY1Rlc3RzKEJhc2UpOgogICAgICAgICBzZWxmLnBhcnNlX2V4cChzZWxmLmdldF9iYXNp
Y19leHBlY3RhdGlvbnMoKSkKICAgICAgICAgc2VsZi5hc3NlcnRfZXhwKCdmYWlsdXJlcy9leHBl
Y3RlZC90ZXh0Lmh0bWwnLCBGQUlMKQogICAgICAgICBzZWxmLmFzc2VydF9leHAoJ2ZhaWx1cmVz
L2V4cGVjdGVkL2ltYWdlX2NoZWNrc3VtLmh0bWwnLCBQQVNTKQotICAgICAgICBzZWxmLmFzc2Vy
dF9leHAoJ2ZhaWx1cmVzL2V4cGVjdGVkL2xlYWsuaHRtbCcsIFBBU1MpCisgICAgICAgIHNlbGYu
YXNzZXJ0X2V4cCgnZmFpbHVyZXMvZXhwZWN0ZWQvcmVmdGVzdC5odG1sJywgSU1BR0UpCisgICAg
ICAgIHNlbGYuYXNzZXJ0X2V4cF9zZXQoJ2ZhaWx1cmVzL2V4cGVjdGVkL2xlYWt5LXJlZnRlc3Qu
aHRtbCcsIHNldChbSU1BR0UsIExFQUtdKSkKKyAgICAgICAgc2VsZi5hc3NlcnRfZXhwKCdmYWls
dXJlcy9leHBlY3RlZC9sZWFrLmh0bWwnLCBMRUFLKQorICAgICAgICBzZWxmLmFzc2VydF9leHBf
c2V0KCdmYWlsdXJlcy9leHBlY3RlZC9mbGFreS1sZWFrLmh0bWwnLCBzZXQoW0ZBSUwsIExFQUtd
KSkKICAgICAgICAgc2VsZi5hc3NlcnRfZXhwKCdwYXNzZXMvdGV4dC5odG1sJywgUEFTUykKKyAg
ICAgICAgIyBzZWxmLmFzc2VydF9leHBfc2V0KCdwYXNzZXMvZmxha3ktbGVhay5odG1sJywgc2V0
KFtQQVNTLCBMRUFLXSkpCiAgICAgICAgIHNlbGYuYXNzZXJ0X2V4cCgnZmFpbHVyZXMvZXhwZWN0
ZWQvaW1hZ2UuaHRtbCcsIFBBU1MpCiAKIApAQCAtMTIzLDYgKzEzNSwxNCBAQCBjbGFzcyBNaXNj
VGVzdHMoQmFzZSk6CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVGVzdEV4cGVjdGF0aW9ucy5y
ZW1vdmVfcGl4ZWxfZmFpbHVyZXMoc2V0KFtGQUlMXSkpLCBzZXQoW0ZBSUxdKSkKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChUZXN0RXhwZWN0YXRpb25zLnJlbW92ZV9waXhlbF9mYWlsdXJlcyhz
ZXQoW1BBU1MsIElNQUdFLCBDUkFTSF0pKSwgc2V0KFtQQVNTLCBDUkFTSF0pKQogCisgICAgZGVm
IHRlc3RfcmVtb3ZlX2xlYWtfZmFpbHVyZXMoc2VsZik6CisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoVGVzdEV4cGVjdGF0aW9ucy5yZW1vdmVfbGVha19mYWlsdXJlcyhzZXQoW0ZBSUxdKSksIHNl
dChbRkFJTF0pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRlc3RFeHBlY3RhdGlvbnMucmVt
b3ZlX2xlYWtfZmFpbHVyZXMoc2V0KFtQQVNTXSkpLCBzZXQoW1BBU1NdKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChUZXN0RXhwZWN0YXRpb25zLnJlbW92ZV9sZWFrX2ZhaWx1cmVzKHNldChb
TEVBS10pKSwgc2V0KFtQQVNTXSkpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoVGVzdEV4cGVj
dGF0aW9ucy5yZW1vdmVfbGVha19mYWlsdXJlcyhzZXQoW1BBU1MsIExFQUtdKSksIHNldChbUEFT
U10pKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKFRlc3RFeHBlY3RhdGlvbnMucmVtb3ZlX2xl
YWtfZmFpbHVyZXMoc2V0KFtGQUlMLCBMRUFLXSkpLCBzZXQoW0ZBSUxdKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChUZXN0RXhwZWN0YXRpb25zLnJlbW92ZV9sZWFrX2ZhaWx1cmVzKHNldChb
UEFTUywgSU1BR0UsIExFQUssIENSQVNIXSkpLCBzZXQoW1BBU1MsIElNQUdFLCBDUkFTSF0pKQor
CiAgICAgZGVmIHRlc3Rfc3VmZml4ZXNfZm9yX2V4cGVjdGF0aW9ucyhzZWxmKToKICAgICAgICAg
c2VsZi5hc3NlcnRFcXVhbChUZXN0RXhwZWN0YXRpb25zLnN1ZmZpeGVzX2Zvcl9leHBlY3RhdGlv
bnMoc2V0KFtGQUlMXSkpLCBzZXQoWyd0eHQnLCAncG5nJywgJ3dhdiddKSkKICAgICAgICAgc2Vs
Zi5hc3NlcnRFcXVhbChUZXN0RXhwZWN0YXRpb25zLnN1ZmZpeGVzX2Zvcl9leHBlY3RhdGlvbnMo
c2V0KFtJTUFHRV0pKSwgc2V0KFsncG5nJ10pKQpAQCAtMTUyLDggKzE3Miw3IEBAIGNsYXNzIE1p
c2NUZXN0cyhCYXNlKToKICAgICBkZWYgdGVzdF9leHBlY3RhdGlvbl90b19zdHJpbmcoc2VsZik6
CiAgICAgICAgICMgTm9ybWFsIGNhc2VzIGFyZSBoYW5kbGVkIGJ5IG90aGVyIHRlc3RzLgogICAg
ICAgICBzZWxmLnBhcnNlX2V4cChzZWxmLmdldF9iYXNpY19leHBlY3RhdGlvbnMoKSkKLSAgICAg
ICAgc2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgc2VsZi5fZXhwLm1vZGVsKCkuZXhwZWN0
YXRpb25fdG9fc3RyaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAtMSkKKyAgICAgICAg
c2VsZi5hc3NlcnRSYWlzZXMoVmFsdWVFcnJvciwgc2VsZi5fZXhwLm1vZGVsKCkuZXhwZWN0YXRp
b25fdG9fc3RyaW5nLCAtMSkKIAogICAgIGRlZiB0ZXN0X2dldF90ZXN0X3NldChzZWxmKToKICAg
ICAgICAgIyBIYW5kbGUgc29tZSBjb3JuZXIgY2FzZXMgZm9yIHRoaXMgcm91dGluZSBub3QgY292
ZXJlZCBieSBvdGhlciB0ZXN0cy4KQEAgLTIxNSwyMCArMjM0LDQ0IEBAIGNsYXNzIE1pc2NUZXN0
cyhCYXNlKToKIAogICAgIGRlZiB0ZXN0X3BpeGVsX3Rlc3RzX2ZsYWcoc2VsZik6CiAgICAgICAg
IGRlZiBtYXRjaCh0ZXN0LCByZXN1bHQsIHBpeGVsX3Rlc3RzX2VuYWJsZWQpOgotICAgICAgICAg
ICAgcmV0dXJuIHNlbGYuX2V4cC5tYXRjaGVzX2FuX2V4cGVjdGVkX3Jlc3VsdCgKLSAgICAgICAg
ICAgICAgICB0ZXN0LCByZXN1bHQsIHBpeGVsX3Rlc3RzX2VuYWJsZWQpCisgICAgICAgICAgICBy
ZXR1cm4gc2VsZi5fZXhwLm1hdGNoZXNfYW5fZXhwZWN0ZWRfcmVzdWx0KHRlc3QsIHJlc3VsdCwg
cGl4ZWxfdGVzdHNfZW5hYmxlZCwgRmFsc2UpCisKKyAgICAgICAgc2VsZi5wYXJzZV9leHAoc2Vs
Zi5nZXRfYmFzaWNfZXhwZWN0YXRpb25zKCkpCisgICAgICAgIHBpeGVsX3Rlc3RzX2VuYWJsZWQg
PSBUcnVlCisgICAgICAgIHBpeGVsX3Rlc3RzX2Rpc2FibGVkID0gRmFsc2UKKyAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKG1hdGNoKCdmYWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnLCBGQUlMLCBw
aXhlbF90ZXN0c19lbmFibGVkKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hdGNoKCdmYWls
dXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnLCBGQUlMLCBwaXhlbF90ZXN0c19kaXNhYmxlZCkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobWF0Y2goJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRt
bCcsIENSQVNILCBwaXhlbF90ZXN0c19lbmFibGVkKSkKKyAgICAgICAgc2VsZi5hc3NlcnRGYWxz
ZShtYXRjaCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4dC5odG1sJywgQ1JBU0gsIHBpeGVsX3Rlc3Rz
X2Rpc2FibGVkKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hdGNoKCdmYWlsdXJlcy9leHBl
Y3RlZC9pbWFnZV9jaGVja3N1bS5odG1sJywgUEFTUywgcGl4ZWxfdGVzdHNfZW5hYmxlZCkpCisg
ICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYXRjaCgnZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hl
Y2tzdW0uaHRtbCcsIFBBU1MsIHBpeGVsX3Rlc3RzX2Rpc2FibGVkKSkKKyAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKG1hdGNoKCdmYWlsdXJlcy9leHBlY3RlZC9jcmFzaC5odG1sJywgUEFTUywgcGl4
ZWxfdGVzdHNfZGlzYWJsZWQpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobWF0Y2goJ3Bhc3Nl
cy90ZXh0Lmh0bWwnLCBQQVNTLCBwaXhlbF90ZXN0c19kaXNhYmxlZCkpCisKKyAgICBkZWYgdGVz
dF93b3JsZF9sZWFrc19mbGFnKHNlbGYpOgorICAgICAgICBkZWYgbWF0Y2godGVzdCwgcmVzdWx0
LCBwaXhlbF90ZXN0c19lbmFibGVkLCB3b3JsZF9sZWFrc19lbmFibGVkKToKKyAgICAgICAgICAg
IHJldHVybiBzZWxmLl9leHAubWF0Y2hlc19hbl9leHBlY3RlZF9yZXN1bHQodGVzdCwgcmVzdWx0
LCBwaXhlbF90ZXN0c19lbmFibGVkLCB3b3JsZF9sZWFrc19lbmFibGVkKQorCisgICAgICAgIHBp
eGVsX3Rlc3RzX2VuYWJsZWQgPSBUcnVlCisgICAgICAgIHBpeGVsX3Rlc3RzX2Rpc2FibGVkID0g
RmFsc2UKKyAgICAgICAgd29ybGRfbGVha3NfZW5hYmxlZCA9IFRydWUKKyAgICAgICAgd29ybGRf
bGVha3NfZGlzYWJsZWQgPSBGYWxzZQogCiAgICAgICAgIHNlbGYucGFyc2VfZXhwKHNlbGYuZ2V0
X2Jhc2ljX2V4cGVjdGF0aW9ucygpKQotICAgICAgICBzZWxmLmFzc2VydFRydWUobWF0Y2goJ2Zh
aWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCcsIEZBSUwsIFRydWUpKQotICAgICAgICBzZWxmLmFz
c2VydFRydWUobWF0Y2goJ2ZhaWx1cmVzL2V4cGVjdGVkL3RleHQuaHRtbCcsIEZBSUwsIEZhbHNl
KSkKLSAgICAgICAgc2VsZi5hc3NlcnRGYWxzZShtYXRjaCgnZmFpbHVyZXMvZXhwZWN0ZWQvdGV4
dC5odG1sJywgQ1JBU0gsIFRydWUpKQotICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG1hdGNoKCdm
YWlsdXJlcy9leHBlY3RlZC90ZXh0Lmh0bWwnLCBDUkFTSCwgRmFsc2UpKQotICAgICAgICBzZWxm
LmFzc2VydFRydWUobWF0Y2goJ2ZhaWx1cmVzL2V4cGVjdGVkL2ltYWdlX2NoZWNrc3VtLmh0bWwn
LCBQQVNTLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVHJ1ZSkpCi0gICAgICAgIHNl
bGYuYXNzZXJ0VHJ1ZShtYXRjaCgnZmFpbHVyZXMvZXhwZWN0ZWQvaW1hZ2VfY2hlY2tzdW0uaHRt
bCcsIFBBU1MsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGYWxzZSkpCi0gICAgICAg
IHNlbGYuYXNzZXJ0VHJ1ZShtYXRjaCgnZmFpbHVyZXMvZXhwZWN0ZWQvY3Jhc2guaHRtbCcsIFBB
U1MsIEZhbHNlKSkKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hdGNoKCdwYXNzZXMvdGV4dC5o
dG1sJywgUEFTUywgRmFsc2UpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobWF0Y2goJ2ZhaWx1
cmVzL2V4cGVjdGVkL2xlYWsuaHRtbCcsIExFQUssIHBpeGVsX3Rlc3RzX2VuYWJsZWQsIHdvcmxk
X2xlYWtzX2VuYWJsZWQpKQorICAgICAgICBzZWxmLmFzc2VydFRydWUobWF0Y2goJ2ZhaWx1cmVz
L2V4cGVjdGVkL2xlYWsuaHRtbCcsIFBBU1MsIHBpeGVsX3Rlc3RzX2VuYWJsZWQsIHdvcmxkX2xl
YWtzX2Rpc2FibGVkKSkKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hdGNoKCdmYWlsdXJlcy9l
eHBlY3RlZC9mbGFreS1sZWFrLmh0bWwnLCBGQUlMLCBwaXhlbF90ZXN0c19lbmFibGVkLCB3b3Js
ZF9sZWFrc19kaXNhYmxlZCkpCisKKyAgICAgICAgc2VsZi5hc3NlcnRUcnVlKG1hdGNoKCdmYWls
dXJlcy9leHBlY3RlZC9sZWFreS1yZWZ0ZXN0Lmh0bWwnLCBMRUFLLCBwaXhlbF90ZXN0c19kaXNh
YmxlZCwgd29ybGRfbGVha3NfZW5hYmxlZCkpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShtYXRj
aCgnZmFpbHVyZXMvZXhwZWN0ZWQvbGVha3ktcmVmdGVzdC5odG1sJywgUEFTUywgcGl4ZWxfdGVz
dHNfZGlzYWJsZWQsIHdvcmxkX2xlYWtzX2Rpc2FibGVkKSkKKworICAgICAgICBzZWxmLmFzc2Vy
dFRydWUobWF0Y2goJ2ZhaWx1cmVzL2V4cGVjdGVkL2xlYWt5LXJlZnRlc3QuaHRtbCcsIElNQUdF
LCBwaXhlbF90ZXN0c19lbmFibGVkLCB3b3JsZF9sZWFrc19lbmFibGVkKSkKKyAgICAgICAgc2Vs
Zi5hc3NlcnRUcnVlKG1hdGNoKCdmYWlsdXJlcy9leHBlY3RlZC9sZWFreS1yZWZ0ZXN0Lmh0bWwn
LCBMRUFLLCBwaXhlbF90ZXN0c19lbmFibGVkLCB3b3JsZF9sZWFrc19lbmFibGVkKSkKKyAgICAg
ICAgc2VsZi5hc3NlcnRUcnVlKG1hdGNoKCdmYWlsdXJlcy9leHBlY3RlZC9sZWFreS1yZWZ0ZXN0
Lmh0bWwnLCBJTUFHRSwgcGl4ZWxfdGVzdHNfZW5hYmxlZCwgd29ybGRfbGVha3NfZGlzYWJsZWQp
KQorCisgICAgICAgIHNlbGYuYXNzZXJ0RmFsc2UobWF0Y2goJ2ZhaWx1cmVzL2V4cGVjdGVkL3Rl
eHQuaHRtbCcsIFBBU1MsIHBpeGVsX3Rlc3RzX2VuYWJsZWQsIHdvcmxkX2xlYWtzX2VuYWJsZWQp
KQorICAgICAgICBzZWxmLmFzc2VydEZhbHNlKG1hdGNoKCdmYWlsdXJlcy9leHBlY3RlZC90ZXh0
Lmh0bWwnLCBDUkFTSCwgcGl4ZWxfdGVzdHNfZW5hYmxlZCwgd29ybGRfbGVha3NfZGlzYWJsZWQp
KQorICAgICAgICBzZWxmLmFzc2VydFRydWUobWF0Y2goJ3Bhc3Nlcy90ZXh0Lmh0bWwnLCBQQVNT
LCBwaXhlbF90ZXN0c19lbmFibGVkLCB3b3JsZF9sZWFrc19kaXNhYmxlZCkpCiAKICAgICBkZWYg
dGVzdF9tb3JlX3NwZWNpZmljX292ZXJyaWRlX3Jlc2V0c19za2lwKHNlbGYpOgogICAgICAgICBz
ZWxmLnBhcnNlX2V4cCgiQnVnKHgpIGZhaWx1cmVzL2V4cGVjdGVkIFsgU2tpcCBdXG4iCkBAIC0z
NDgsNiArMzkxLDkgQEAgY2xhc3MgRXhwZWN0YXRpb25TeW50YXhUZXN0cyhCYXNlKToKICAgICBk
ZWYgdGVzdF9zbG93KHNlbGYpOgogICAgICAgICBzZWxmLmFzc2VydF90b2tlbml6ZV9leHAoJ2Zv
by5odG1sIFsgU2xvdyBdJywgbW9kaWZpZXJzPVsnU0xPVyddLCBleHBlY3RhdGlvbnM9WydQQVNT
J10pCiAKKyAgICBkZWYgdGVzdF9sZWFrKHNlbGYpOgorICAgICAgICBzZWxmLmFzc2VydF90b2tl
bml6ZV9leHAoJ2Zvby5odG1sIFsgTGVhayBdJywgbW9kaWZpZXJzPVtdLCBleHBlY3RhdGlvbnM9
WydMRUFLJ10pCisKICAgICBkZWYgdGVzdF93b250Zml4KHNlbGYpOgogICAgICAgICBzZWxmLmFz
c2VydF90b2tlbml6ZV9leHAoJ2Zvby5odG1sIFsgV29udEZpeCBdJywgbW9kaWZpZXJzPVsnV09O
VEZJWCcsICdTS0lQJ10sIGV4cGVjdGF0aW9ucz1bJ1BBU1MnXSkKICAgICAgICAgc2VsZi5hc3Nl
cnRfdG9rZW5pemVfZXhwKCdmb28uaHRtbCBbIFdvbnRGaXggSW1hZ2VPbmx5RmFpbHVyZSBdJywg
bW9kaWZpZXJzPVsnV09OVEZJWCddLCBleHBlY3RhdGlvbnM9WydJTUFHRSddKQpkaWZmIC0tZ2l0
IGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcmVzdWx0
cy5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3Jl
c3VsdHMucHkKaW5kZXggOTIyYTk2ZTMzZGE4NDJhNjljMGMzMjg5ZGU2MjAwMjEyMWJlMGI0ZS4u
OTQ3ZjcwN2Q2NTZlNzliYmRkOGRmMzU2YzZkMjNiMmUzNDZiZDBjZCAxMDA2NDQKLS0tIGEvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcmVzdWx0cy5weQor
KysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9yZXN1
bHRzLnB5CkBAIC02OCw2ICs2OCwxNCBAQCBjbGFzcyBUZXN0UmVzdWx0KG9iamVjdCk6CiAgICAg
ZGVmIF9faGFzaF9fKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi50ZXN0X25hbWUuX19oYXNo
X18oKQogCisgICAgZGVmIF9fc3RyX18oc2VsZik6CisgICAgICAgIHJlc3VsdCA9IHNlbGYudGVz
dF9uYW1lCisgICAgICAgIGlmIGxlbihzZWxmLmZhaWx1cmVzKToKKyAgICAgICAgICAgIHJlc3Vs
dCArPSAnIGZhaWx1cmVzOiAnICsgJywnLmpvaW4oW2ZhaWx1cmUubWVzc2FnZSgpIGZvciBmYWls
dXJlIGluIHNlbGYuZmFpbHVyZXNdKQorICAgICAgICBpZiBsZW4oc2VsZi5yZWZ0ZXN0X3R5cGUp
OgorICAgICAgICAgICAgcmVzdWx0ICs9ICcgcmVmdGVzdF90eXBlOiAnICsgJywnLmpvaW4oc2Vs
Zi5yZWZ0ZXN0X3R5cGUpCisgICAgICAgIHJldHVybiByZXN1bHQKKwogICAgIGRlZiBjb252ZXJ0
X3RvX2ZhaWx1cmUoc2VsZiwgZmFpbHVyZV9yZXN1bHQpOgogICAgICAgICBpZiBzZWxmLnR5cGUg
aXMgZmFpbHVyZV9yZXN1bHQudHlwZToKICAgICAgICAgICAgIHJldHVybgpkaWZmIC0tZ2l0IGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3Vs
dHMucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9y
dW5fcmVzdWx0cy5weQppbmRleCAxOTc1MjBkMDMxZjg5NzZiM2ZlNDIwYzUxNDk1ZTdiMDc0ODk4
ZTE5Li40MzcwZmRkYzY3MDljOWNmMTRiZTk3YmExODc5MmU2NjgxYjFkMDBlIDEwMDY0NAotLS0g
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVz
dWx0cy5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMv
dGVzdF9ydW5fcmVzdWx0cy5weQpAQCAtMTE4LDcgKzExOCw3IEBAIGNsYXNzIFRlc3RSdW5SZXN1
bHRzKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLnVuZXhwZWN0ZWQgLT0gMQogICAgICAgICAg
ICAgaWYgaGFkX2ZhaWx1cmVzOgogICAgICAgICAgICAgICAgIHNlbGYudW5leHBlY3RlZF9mYWls
dXJlcyAtPSAxCi0gICAgICAgIGVsc2U6CisgICAgICAgIGVsaWYgZXhpc3RpbmdfZXhwZWN0ZWQg
YW5kIG5vdCBuZXdfZXhwZWN0ZWQ6CiAgICAgICAgICAgICAjIHRlc3QgY2hhbmdlZCBmcm9tIGV4
cGVjdGVkIHRvIHVuZXhwZWN0ZWQKICAgICAgICAgICAgIHNlbGYuZXhwZWN0ZWQgLT0gMQogICAg
ICAgICAgICAgc2VsZi51bmV4cGVjdGVkX3Jlc3VsdHNfYnlfbmFtZVtleGlzdGluZ19yZXN1bHQu
dGVzdF9uYW1lXSA9IGV4aXN0aW5nX3Jlc3VsdApkaWZmIC0tZ2l0IGEvVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L3Rlc3QucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvdGVzdC5w
eQppbmRleCBmMmQ2YzZmZmNjMzQzMTljNDRiMDRlNjg2MTM2Mjk3ZGEyNmMwY2Y2Li45NmQ3MmRk
ZjQ3Y2NiNDc5ZjhkZDViZGU3NjEwNjIxYWJkOTU0ZmJjIDEwMDY0NAotLS0gYS9Ub29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvdGVzdC5weQorKysgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvdGVzdC5weQpAQCAtNzgsMTMgKzc4LDE4IEBAIGNsYXNzIFRlc3RMaXN0KG9iamVjdCk6CiAg
ICAgICAgICAgICB0ZXN0Ll9fZGljdF9fW2tleV0gPSB2YWx1ZQogICAgICAgICBzZWxmLnRlc3Rz
W25hbWVdID0gdGVzdAogCi0gICAgZGVmIGFkZF9yZWZ0ZXN0KHNlbGYsIG5hbWUsIHJlZmVyZW5j
ZV9uYW1lLCBzYW1lX2ltYWdlKToKKyAgICBkZWYgYWRkX3JlZnRlc3Qoc2VsZiwgbmFtZSwgcmVm
ZXJlbmNlX25hbWUsIHNhbWVfaW1hZ2UsICoqa3dhcmdzKToKICAgICAgICAgc2VsZi5hZGQobmFt
ZSwgYWN0dWFsX2NoZWNrc3VtPSd4eHgnLCBhY3R1YWxfaW1hZ2U9J1hYWCcsIGlzX3JlZnRlc3Q9
VHJ1ZSkKICAgICAgICAgaWYgc2FtZV9pbWFnZToKICAgICAgICAgICAgIHNlbGYuYWRkKHJlZmVy
ZW5jZV9uYW1lLCBhY3R1YWxfY2hlY2tzdW09J3h4eCcsIGFjdHVhbF9pbWFnZT0nWFhYJywgaXNf
cmVmdGVzdD1UcnVlKQogICAgICAgICBlbHNlOgogICAgICAgICAgICAgc2VsZi5hZGQocmVmZXJl
bmNlX25hbWUsIGFjdHVhbF9jaGVja3N1bT0neXl5JywgYWN0dWFsX2ltYWdlPSdZWVknLCBpc19y
ZWZ0ZXN0PVRydWUpCiAKKyAgICAgICAgaWYga3dhcmdzOgorICAgICAgICAgICAgdGVzdCA9IHNl
bGYudGVzdHNbbmFtZV0KKyAgICAgICAgICAgIGZvciBrZXksIHZhbHVlIGluIGt3YXJncy5pdGVt
cygpOgorICAgICAgICAgICAgICAgIHRlc3QuX19kaWN0X19ba2V5XSA9IHZhbHVlCisKICAgICBk
ZWYga2V5cyhzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYudGVzdHMua2V5cygpCiAKQEAgLTk3
LDcgKzEwMiw3IEBAIGNsYXNzIFRlc3RMaXN0KG9iamVjdCk6CiAjCiAjIFRoZXNlIG51bWJlcnMg
bWF5IG5lZWQgdG8gYmUgdXBkYXRlZCB3aGVuZXZlciB3ZSBhZGQgb3IgZGVsZXRlIHRlc3RzLgog
IwotVE9UQUxfVEVTVFMgPSA3NAorVE9UQUxfVEVTVFMgPSA3NgogVE9UQUxfU0tJUFMgPSA5CiBU
T1RBTF9SRVRSSUVTID0gMTUKIApAQCAtMTE2LDYgKzEyMSw3IEBAIGRlZiB1bml0X3Rlc3RfbGlz
dCgpOgogICAgIHRlc3RzLmFkZCgnZmFpbHVyZXMvZXhwZWN0ZWQvaGFuZy5odG1sJywgaGFuZz1U
cnVlKQogICAgIHRlc3RzLmFkZCgnZmFpbHVyZXMvZXhwZWN0ZWQvbWlzc2luZ190ZXh0Lmh0bWwn
LCBleHBlY3RlZF90ZXh0PU5vbmUpCiAgICAgdGVzdHMuYWRkKCdmYWlsdXJlcy9leHBlY3RlZC9s
ZWFrLmh0bWwnLCBsZWFrPVRydWUpCisgICAgdGVzdHMuYWRkKCdmYWlsdXJlcy9leHBlY3RlZC9m
bGFreS1sZWFrLmh0bWwnLCBsZWFrPVRydWUpCiAgICAgdGVzdHMuYWRkKCdmYWlsdXJlcy9leHBl
Y3RlZC9pbWFnZS5odG1sJywKICAgICAgICAgICAgICAgYWN0dWFsX2ltYWdlPSdpbWFnZV9mYWls
LXBuZ3RFWHRjaGVja3N1bVx4MDBjaGVja3N1bV9mYWlsJywKICAgICAgICAgICAgICAgZXhwZWN0
ZWRfaW1hZ2U9J2ltYWdlLXBuZ3RFWHRjaGVja3N1bVx4MDBjaGVja3N1bS1wbmcnKQpAQCAtMjE1
LDYgKzIyMSw3IEBAIGxheWVyIGF0ICgwLDApIHNpemUgODAweDM0CiAgICAgdGVzdHMuYWRkX3Jl
ZnRlc3QoJ3Bhc3Nlcy94aHRyZWZ0ZXN0LnhodCcsICdwYXNzZXMveGh0cmVmdGVzdC1leHBlY3Rl
ZC5odG1sJywgc2FtZV9pbWFnZT1UcnVlKQogICAgIHRlc3RzLmFkZF9yZWZ0ZXN0KCdwYXNzZXMv
cGhwcmVmdGVzdC5waHAnLCAncGFzc2VzL3BocHJlZnRlc3QtZXhwZWN0ZWQtbWlzbWF0Y2guc3Zn
Jywgc2FtZV9pbWFnZT1GYWxzZSkKICAgICB0ZXN0cy5hZGRfcmVmdGVzdCgnZmFpbHVyZXMvZXhw
ZWN0ZWQvcmVmdGVzdC5odG1sJywgJ2ZhaWx1cmVzL2V4cGVjdGVkL3JlZnRlc3QtZXhwZWN0ZWQu
aHRtbCcsIHNhbWVfaW1hZ2U9RmFsc2UpCisgICAgdGVzdHMuYWRkX3JlZnRlc3QoJ2ZhaWx1cmVz
L2V4cGVjdGVkL2xlYWt5LXJlZnRlc3QuaHRtbCcsICdmYWlsdXJlcy9leHBlY3RlZC9sZWFreS1y
ZWZ0ZXN0LWV4cGVjdGVkLmh0bWwnLCBzYW1lX2ltYWdlPUZhbHNlLCBsZWFrPVRydWUpCiAgICAg
dGVzdHMuYWRkX3JlZnRlc3QoJ2ZhaWx1cmVzL2V4cGVjdGVkL21pc21hdGNoLmh0bWwnLCAnZmFp
bHVyZXMvZXhwZWN0ZWQvbWlzbWF0Y2gtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCcsIHNhbWVfaW1h
Z2U9VHJ1ZSkKICAgICB0ZXN0cy5hZGRfcmVmdGVzdCgnZmFpbHVyZXMvdW5leHBlY3RlZC9yZWZ0
ZXN0Lmh0bWwnLCAnZmFpbHVyZXMvdW5leHBlY3RlZC9yZWZ0ZXN0LWV4cGVjdGVkLmh0bWwnLCBz
YW1lX2ltYWdlPUZhbHNlKQogICAgIHRlc3RzLmFkZF9yZWZ0ZXN0KCdmYWlsdXJlcy91bmV4cGVj
dGVkL21pc21hdGNoLmh0bWwnLCAnZmFpbHVyZXMvdW5leHBlY3RlZC9taXNtYXRjaC1leHBlY3Rl
ZC1taXNtYXRjaC5odG1sJywgc2FtZV9pbWFnZT1UcnVlKQpAQCAtMjgzLDYgKzI5MCw4IEBAIGRl
ZiBhZGRfdW5pdF90ZXN0c190b19tb2NrX2ZpbGVzeXN0ZW0oZmlsZXN5c3RlbSk6CiAgICAgICAg
IGZpbGVzeXN0ZW0ud3JpdGVfdGV4dF9maWxlKExBWU9VVF9URVNUX0RJUiArICcvcGxhdGZvcm0v
dGVzdC9UZXN0RXhwZWN0YXRpb25zJywgIiIiCiBCdWcodGVzdCkgZmFpbHVyZXMvZXhwZWN0ZWQv
Y3Jhc2guaHRtbCBbIENyYXNoIF0KIEJ1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9sZWFrLmh0
bWwgWyBMZWFrIF0KK0J1Zyh0ZXN0KSBmYWlsdXJlcy9leHBlY3RlZC9mbGFreS1sZWFrLmh0bWwg
WyBGYWlsdXJlIExlYWsgXQorQnVnKHRlc3QpIGZhaWx1cmVzL2V4cGVjdGVkL2xlYWt5LXJlZnRl
c3QuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgTGVhayBdCiBCdWcodGVzdCkgZmFpbHVyZXMvZXhw
ZWN0ZWQvaW1hZ2UuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogQnVnKHRlc3QpIGZhaWx1cmVz
L2V4cGVjdGVkL2F1ZGlvLmh0bWwgWyBGYWlsdXJlIF0KIEJ1Zyh0ZXN0KSBmYWlsdXJlcy9leHBl
Y3RlZC9pbWFnZV9jaGVja3N1bS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCkBAIC01OTksMTEg
KzYwOCwxNSBAQCBjbGFzcyBUZXN0RHJpdmVyKERyaXZlcik6CiAgICAgICAgICAgICByZXR1cm4g
Tm9uZQogCiAgICAgICAgIHRlc3Rfd29ybGRfbGVha3Nfb3V0cHV0ID0gIiIiVEVTVDogZmlsZTov
Ly90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL2ZhaWx1cmVzL2V4cGVjdGVkL2xlYWsuaHRtbAot
QUJBTkRPTkVEIERPQ1VNRU5UOiBmaWxlOi8vL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvL2Zh
aWx1cmVzL2V4cGVjdGVkL2xlYWsuaHRtbAorQUJBTkRPTkVEIERPQ1VNRU5UOiBmaWxlOi8vL3Rl
c3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvZmFpbHVyZXMvZXhwZWN0ZWQvbGVhay5odG1sCiBURVNU
OiBmaWxlOi8vL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvZmFpbHVyZXMvdW5leHBlY3RlZC9s
ZWFrLmh0bWwKLUFCQU5ET05FRCBET0NVTUVOVDogZmlsZTovLy90ZXN0LmNoZWNrb3V0L0xheW91
dFRlc3RzLy9mYWlsdXJlcy9leHBlY3RlZC9sZWFrLmh0bWwKK0FCQU5ET05FRCBET0NVTUVOVDog
ZmlsZTovLy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL2ZhaWx1cmVzL2V4cGVjdGVkL2ZsYWt5
LWxlYWsuaHRtbAorVEVTVDogZmlsZTovLy90ZXN0LmNoZWNrb3V0L0xheW91dFRlc3RzL2ZhaWx1
cmVzL3VuZXhwZWN0ZWQvZmxha3ktbGVhay5odG1sCitBQkFORE9ORUQgRE9DVU1FTlQ6IGZpbGU6
Ly8vdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9mYWlsdXJlcy9leHBlY3RlZC9sZWFrLmh0bWwK
IFRFU1Q6IGZpbGU6Ly8vdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9mYWlsdXJlcy91bmV4cGVj
dGVkL2xlYWsuaHRtbAotQUJBTkRPTkVEIERPQ1VNRU5UOiBmaWxlOi8vL3Rlc3QuY2hlY2tvdXQv
TGF5b3V0VGVzdHMvL2ZhaWx1cmVzL2V4cGVjdGVkL2xlYWstc3ViZnJhbWUuaHRtbCIiIgorQUJB
TkRPTkVEIERPQ1VNRU5UOiBmaWxlOi8vL3Rlc3QuY2hlY2tvdXQvTGF5b3V0VGVzdHMvZmFpbHVy
ZXMvZXhwZWN0ZWQvbGVhay1zdWJmcmFtZS5odG1sCitURVNUOiBmaWxlOi8vL3Rlc3QuY2hlY2tv
dXQvTGF5b3V0VGVzdHMvZmFpbHVyZXMvZXhwZWN0ZWQvbGVha3ktcmVmdGVzdC5odG1sCitBQkFO
RE9ORUQgRE9DVU1FTlQ6IGZpbGU6Ly8vdGVzdC5jaGVja291dC9MYXlvdXRUZXN0cy9mYWlsdXJl
cy9leHBlY3RlZC9sZWFreS1yZWZ0ZXN0Lmh0bWwiIiIKICAgICAgICAgcmV0dXJuIHNlbGYuX3Bh
cnNlX3dvcmxkX2xlYWtzX291dHB1dCh0ZXN0X3dvcmxkX2xlYWtzX291dHB1dCkKIAogICAgIGRl
ZiBzdG9wKHNlbGYpOgo=
</data>
<flag name="review"
          id="366083"
          type_id="1"
          status="+"
          setter="jonlee"
    />
          </attachment>
      

    </bug>

</bugzilla>