<?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>203702</bug_id>
          
          <creation_ts>2019-10-31 16:18:34 -0700</creation_ts>
          <short_desc>Python 3: Add support in webkitpy.layout_tests.model</short_desc>
          <delta_ts>2019-11-01 18:18:15 -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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=203701</see_also>
          <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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1586126</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-10-31 16:18:34 -0700</bug_when>
    <thetext>Note that in this directory, occasionally, we need to opt into using iterators in both Python 2 and 3 because we have 60,000+ tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586131</commentid>
    <comment_count>1</comment_count>
      <attachid>382516</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-10-31 16:27:59 -0700</bug_when>
    <thetext>Created attachment 382516
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586136</commentid>
    <comment_count>2</comment_count>
      <attachid>382516</attachid>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2019-10-31 16:31:24 -0700</bug_when>
    <thetext>Comment on attachment 382516
Patch

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

otherwise good

&gt; Tools/Scripts/webkitpy/layout_tests/models/test_expectations.py:-569
&gt; -        for test, modifiers in self._test_to_modifiers.iteritems():

can we make a compatibility function here as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586184</commentid>
    <comment_count>3</comment_count>
      <attachid>382530</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-10-31 17:54:47 -0700</bug_when>
    <thetext>Created attachment 382530
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586213</commentid>
    <comment_count>4</comment_count>
      <attachid>382530</attachid>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2019-10-31 19:22:47 -0700</bug_when>
    <thetext>Comment on attachment 382530
Patch

Either I&apos;m blind or you forgot to include the iteration_compatibility file</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586391</commentid>
    <comment_count>5</comment_count>
      <attachid>382586</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-01 09:24:22 -0700</bug_when>
    <thetext>Created attachment 382586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586395</commentid>
    <comment_count>6</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-01 09:27:27 -0700</bug_when>
    <thetext>(In reply to Stephanie Lewis from comment #4)
&gt; Comment on attachment 382530 [details]
&gt; Patch
&gt; 
&gt; Either I&apos;m blind or you forgot to include the iteration_compatibility file

Definitely forgot to include the iteration_compatibility.py file. Let&apos;s try this again...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586673</commentid>
    <comment_count>7</comment_count>
      <attachid>382658</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2019-11-01 17:08:13 -0700</bug_when>
    <thetext>Created attachment 382658
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586702</commentid>
    <comment_count>8</comment_count>
      <attachid>382658</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-01 18:17:17 -0700</bug_when>
    <thetext>Comment on attachment 382658
Patch for landing

Clearing flags on attachment: 382658

Committed r251961: &lt;https://trac.webkit.org/changeset/251961&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586703</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-11-01 18:17:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1586704</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-11-01 18:18:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/56834640&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382516</attachid>
            <date>2019-10-31 16:27:59 -0700</date>
            <delta_ts>2019-10-31 17:54:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203702-20191031162758.patch</filename>
            <type>text/plain</type>
            <size>10622</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MTg5MCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI3IEBACisyMDE5LTEwLTMxICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBQeXRob24gMzogQWRkIHN1cHBvcnQgaW4gd2Via2l0cHkubGF5b3V0X3Rl
c3RzLm1vZGVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDM3MDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFNjcmlwdHMvdGVzdC13ZWJraXRweS1weXRob24zOiBBZGQgd2Via2l0cHkubGF5b3V0X3Rl
c3RzLm1vZGVsLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVs
cy90ZXN0X2NvbmZpZ3VyYXRpb24ucHk6CisgICAgICAgIChTcGVjaWZpZXJTb3J0ZXIuc29ydF9z
cGVjaWZpZXJzKTogQ29udmVydCBpdGVyYXRvciB0byBsaXN0LgorICAgICAgICAoVGVzdENvbmZp
Z3VyYXRpb25Db252ZXJ0ZXIudG9fY29uZmlnX3NldCk6IFVzZSByZWR1Y2UgZnJvbSBmdW5jdG9y
cy4KKyAgICAgICAgKFRlc3RDb25maWd1cmF0aW9uQ29udmVydGVyLmludGVyc2VjdF9jb21iaW5h
dGlvbik6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21v
ZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvbnNNb2Rl
bC5nZXRfdGVzdF9zZXRfZm9yX2tleXdvcmQpOiBVc2UgaXRlcmF0b3JzIGluIGJvdGggUHl0aG9u
IDIKKyAgICAgICAgYW5kIFB5dGhvbiAzLgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9uc01vZGVs
Ll9yZW1vdmVfZnJvbV9zZXRzKTogRGl0dG8uCisgICAgICAgIChUZXN0RXhwZWN0YXRpb25zLnBh
cnNlX2dlbmVyaWNfZXhwZWN0YXRpb25zKTogQ292ZXJ0IGl0ZXJhdG9ycyB0byBsaXN0cyBmb3Ig
aW5kZXhpbmcuCisgICAgICAgIChUZXN0RXhwZWN0YXRpb25zLnBhcnNlX2RlZmF1bHRfcG9ydF9l
eHBlY3RhdGlvbnMpOiBEaXR0by4KKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvbnMucGFyc2Vfb3Zl
cnJpZGVfZXhwZWN0YXRpb25zKTogRGl0dG8uCisgICAgICAgIChUZXN0RXhwZWN0YXRpb25zLnJl
bW92ZV9jb25maWd1cmF0aW9uX2Zyb21fdGVzdCk6IFVzZSBhbnkgaW5zdGVhZCBvZiBqdXN0IGNo
ZWNraW5nIHRoZQorICAgICAgICBmaXJzdCBlbGVtZW50IGluIHRoZSBzZXQuCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHMucHk6
CisgICAgICAgIChzdW1tYXJpemVfcmVzdWx0cyk6IFVzZSBpdGVtcyBpbnN0ZWFkIG9mIGl0ZXJp
dGVtcy4KKwogMjAxOS0xMC0zMSAgVGFkZXUgWmFnYWxsbyAgPHR6YWdhbGxvQGFwcGxlLmNvbT4K
IAogICAgICAgICBbV2ViQXNzZW1ibHldIENyZWF0ZSBhIFdhc20gaW50ZXJwcmV0ZXIKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweS1weXRob24zCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1NjcmlwdHMvdGVzdC13ZWJraXRweS1weXRob24zCShyZXZpc2lvbiAyNTE4ODgpCisrKyBUb29s
cy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHktcHl0aG9uMwkod29ya2luZyBjb3B5KQpAQCAtNDAsNiAr
NDAsNyBAQCBQWVRIT04zX0NPTVBBVElCTEVfRElSRUNUT1JJRVMgPSBbCiAgICd3ZWJraXRweS5j
b21tb24udGhyZWFkJywKICAgJ3dlYmtpdHB5LmNvbW1vbi5uZXQnLAogICAnd2Via2l0cHkuY29t
bW9uLndhdGNobGlzdCcsCisgICd3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzJywKICAgJ3dl
YmtpdHB5LnBvcnQnLAogICAnd2Via2l0cHkucmVzdWx0cycsCiAgICd3ZWJraXRweS54Y29kZScs
CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9j
b25maWd1cmF0aW9uLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5
b3V0X3Rlc3RzL21vZGVscy90ZXN0X2NvbmZpZ3VyYXRpb24ucHkJKHJldmlzaW9uIDI1MTg4OCkK
KysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2NvbmZp
Z3VyYXRpb24ucHkJKHdvcmtpbmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICMgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCiAKK2ltcG9ydCBmdW5jdG9vbHMKIGltcG9ydCBpdGVydG9vbHMK
IAogCkBAIC05Nyw3ICs5OCw3IEBAIGNsYXNzIFNwZWNpZmllclNvcnRlcihvYmplY3QpOgogICAg
ICAgICByZXR1cm4gc2VsZi5fc3BlY2lmaWVyX3RvX2NhdGVnb3J5LmdldChzcGVjaWZpZXIpCiAK
ICAgICBkZWYgc29ydF9zcGVjaWZpZXJzKHNlbGYsIHNwZWNpZmllcnMpOgotICAgICAgICBjYXRl
Z29yeV9zbG90cyA9IG1hcChsYW1iZGEgeDogW10sIFRlc3RDb25maWd1cmF0aW9uLmNhdGVnb3J5
X29yZGVyKCkpCisgICAgICAgIGNhdGVnb3J5X3Nsb3RzID0gbGlzdChtYXAobGFtYmRhIHg6IFtd
LCBUZXN0Q29uZmlndXJhdGlvbi5jYXRlZ29yeV9vcmRlcigpKSkKICAgICAgICAgZm9yIHNwZWNp
ZmllciBpbiBzcGVjaWZpZXJzOgogICAgICAgICAgICAgY2F0ZWdvcnlfc2xvdHNbc2VsZi5zcGVj
aWZpZXJfcHJpb3JpdHkoc3BlY2lmaWVyKV0uYXBwZW5kKHNwZWNpZmllcikKIApAQCAtMTA1LDcg
KzEwNiw3IEBAIGNsYXNzIFNwZWNpZmllclNvcnRlcihvYmplY3QpOgogICAgICAgICAgICAgc3Bl
Y2lmaWVyX2xpc3Quc29ydCgpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgc3BlY2lmaWVy
X2xpc3QKIAotICAgICAgICByZXR1cm4gcmVkdWNlKHNvcnRfYW5kX3JldHVybiwgY2F0ZWdvcnlf
c2xvdHMsIFtdKQorICAgICAgICByZXR1cm4gZnVuY3Rvb2xzLnJlZHVjZShzb3J0X2FuZF9yZXR1
cm4sIGNhdGVnb3J5X3Nsb3RzLCBbXSkKIAogCiBjbGFzcyBUZXN0Q29uZmlndXJhdGlvbkNvbnZl
cnRlcihvYmplY3QpOgpAQCAtMTYyLDcgKzE2Myw3IEBAIGNsYXNzIFRlc3RDb25maWd1cmF0aW9u
Q29udmVydGVyKG9iamVjdCkKICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9IHNlbGYuX3NwZWNp
Zmllcl9zb3J0ZXIuY2F0ZWdvcnlfZm9yX3NwZWNpZmllcihleHBhbmRlZF9zcGVjaWZpZXIpCiAg
ICAgICAgICAgICAgICAgbWF0Y2hpbmdfc2V0cy5zZXRkZWZhdWx0KGNhdGVnb3J5LCBzZXQoKSku
dXBkYXRlKGNvbmZpZ3VyYXRpb25zKQogCi0gICAgICAgIHJldHVybiByZWR1Y2Uoc2V0LmludGVy
c2VjdGlvbiwgbWF0Y2hpbmdfc2V0cy52YWx1ZXMoKSkKKyAgICAgICAgcmV0dXJuIGZ1bmN0b29s
cy5yZWR1Y2Uoc2V0LmludGVyc2VjdGlvbiwgbWF0Y2hpbmdfc2V0cy52YWx1ZXMoKSkKIAogICAg
IEBjbGFzc21ldGhvZAogICAgIGRlZiBjb2xsYXBzZV9tYWNyb3MoY2xzLCBtYWNyb3NfZGljdCwg
c3BlY2lmaWVyc19saXN0KToKQEAgLTE5Niw3ICsxOTcsNyBAQCBjbGFzcyBUZXN0Q29uZmlndXJh
dGlvbkNvbnZlcnRlcihvYmplY3QpCiAKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgaW50ZXJz
ZWN0X2NvbWJpbmF0aW9uKGNscywgY29tYmluYXRpb24pOgotICAgICAgICByZXR1cm4gcmVkdWNl
KHNldC5pbnRlcnNlY3Rpb24sIFtzZXQoc3BlY2lmaWVycykgZm9yIHNwZWNpZmllcnMgaW4gY29t
YmluYXRpb25dKQorICAgICAgICByZXR1cm4gZnVuY3Rvb2xzLnJlZHVjZShzZXQuaW50ZXJzZWN0
aW9uLCBbc2V0KHNwZWNpZmllcnMpIGZvciBzcGVjaWZpZXJzIGluIGNvbWJpbmF0aW9uXSkKIAog
ICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBzeW1tZXRyaWNfZGlmZmVyZW5jZShjbHMsIGl0ZXJh
YmxlKToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90
ZXN0X2V4cGVjdGF0aW9ucy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHkJKHJldmlzaW9uIDI1MTg4
OCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4
cGVjdGF0aW9ucy5weQkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsNyBAQCBmb3IgbGF5b3V0
IHRlc3RzLgogCiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IHJlCitpbXBvcnQgc3lzCiAKIGZyb20g
d2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0IFRl
c3RDb25maWd1cmF0aW9uQ29udmVydGVyCiAKQEAgLTU2Niw3ICs1NjcsNyBAQCBjbGFzcyBUZXN0
RXhwZWN0YXRpb25zTW9kZWwob2JqZWN0KToKIAogICAgICAgICAjIFdlIG11c3Qgbm90IGhhdmUg
YW4gaW5kZXggb24gdGhpcyBtb2RpZmllci4KICAgICAgICAgbWF0Y2hpbmdfdGVzdHMgPSBzZXQo
KQotICAgICAgICBmb3IgdGVzdCwgbW9kaWZpZXJzIGluIHNlbGYuX3Rlc3RfdG9fbW9kaWZpZXJz
Lml0ZXJpdGVtcygpOgorICAgICAgICBmb3IgdGVzdCwgbW9kaWZpZXJzIGluIHNlbGYuX3Rlc3Rf
dG9fbW9kaWZpZXJzLml0ZW1zKCkgaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKSBlbHNlIHNl
bGYuX3Rlc3RfdG9fbW9kaWZpZXJzLml0ZXJpdGVtcygpOgogICAgICAgICAgICAgaWYga2V5d29y
ZC5sb3dlcigpIGluIG1vZGlmaWVyczoKICAgICAgICAgICAgICAgICBtYXRjaGluZ190ZXN0cy5h
ZGQodGVzdCkKICAgICAgICAgcmV0dXJuIG1hdGNoaW5nX3Rlc3RzCkBAIC02OTQsNyArNjk1LDcg
QEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9uc01vZGVsKG9iamVjdCk6CiAgICAgICAgIEFyZ3M6CiAg
ICAgICAgICAgdGVzdDogdGVzdCB0byBsb29rIGZvcgogICAgICAgICAgIGRpY3Q6IGRpY3Qgb2Yg
c2V0cyBvZiBmaWxlcyIiIgotICAgICAgICBmb3Igc2V0X29mX3Rlc3RzIGluIGRpY3Rfb2Zfc2V0
c19vZl90ZXN0cy5pdGVydmFsdWVzKCk6CisgICAgICAgIGZvciBzZXRfb2ZfdGVzdHMgaW4gZGlj
dF9vZl9zZXRzX29mX3Rlc3RzLnZhbHVlcygpIGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCkg
ZWxzZSBkaWN0X29mX3NldHNfb2ZfdGVzdHMuaXRlcnZhbHVlcygpOgogICAgICAgICAgICAgaWYg
dGVzdCBpbiBzZXRfb2ZfdGVzdHM6CiAgICAgICAgICAgICAgICAgc2V0X29mX3Rlc3RzLnJlbW92
ZSh0ZXN0KQogCkBAIC05NDksMjEgKzk1MCwyMSBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zKG9i
amVjdCk6CiAgICAgZGVmIHBhcnNlX2dlbmVyaWNfZXhwZWN0YXRpb25zKHNlbGYpOgogICAgICAg
ICBpZiBzZWxmLl9wb3J0LnBhdGhfdG9fZ2VuZXJpY190ZXN0X2V4cGVjdGF0aW9uc19maWxlKCkg
aW4gc2VsZi5fZXhwZWN0YXRpb25zX2RpY3Q6CiAgICAgICAgICAgICBpZiBzZWxmLl9pbmNsdWRl
X2dlbmVyaWM6Ci0gICAgICAgICAgICAgICAgZXhwZWN0YXRpb25zID0gc2VsZi5fcGFyc2VyLnBh
cnNlKHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0LmtleXMoKVtzZWxmLl9leHBlY3RhdGlvbnNfZGlj
dF9pbmRleF0sIHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0LnZhbHVlcygpW3NlbGYuX2V4cGVjdGF0
aW9uc19kaWN0X2luZGV4XSkKKyAgICAgICAgICAgICAgICBleHBlY3RhdGlvbnMgPSBzZWxmLl9w
YXJzZXIucGFyc2UobGlzdChzZWxmLl9leHBlY3RhdGlvbnNfZGljdC5rZXlzKCkpW3NlbGYuX2V4
cGVjdGF0aW9uc19kaWN0X2luZGV4XSwgbGlzdChzZWxmLl9leHBlY3RhdGlvbnNfZGljdC52YWx1
ZXMoKSlbc2VsZi5fZXhwZWN0YXRpb25zX2RpY3RfaW5kZXhdKQogICAgICAgICAgICAgICAgIHNl
bGYuX2FkZF9leHBlY3RhdGlvbnMoZXhwZWN0YXRpb25zKQogICAgICAgICAgICAgICAgIHNlbGYu
X2V4cGVjdGF0aW9ucyArPSBleHBlY3RhdGlvbnMKICAgICAgICAgICAgIHNlbGYuX2V4cGVjdGF0
aW9uc19kaWN0X2luZGV4ICs9IDEKIAogICAgIGRlZiBwYXJzZV9kZWZhdWx0X3BvcnRfZXhwZWN0
YXRpb25zKHNlbGYpOgogICAgICAgICBpZiBsZW4oc2VsZi5fZXhwZWN0YXRpb25zX2RpY3QpID4g
c2VsZi5fZXhwZWN0YXRpb25zX2RpY3RfaW5kZXg6Ci0gICAgICAgICAgICBleHBlY3RhdGlvbnMg
PSBzZWxmLl9wYXJzZXIucGFyc2Uoc2VsZi5fZXhwZWN0YXRpb25zX2RpY3Qua2V5cygpW3NlbGYu
X2V4cGVjdGF0aW9uc19kaWN0X2luZGV4XSwgc2VsZi5fZXhwZWN0YXRpb25zX2RpY3QudmFsdWVz
KClbc2VsZi5fZXhwZWN0YXRpb25zX2RpY3RfaW5kZXhdKQorICAgICAgICAgICAgZXhwZWN0YXRp
b25zID0gc2VsZi5fcGFyc2VyLnBhcnNlKGxpc3Qoc2VsZi5fZXhwZWN0YXRpb25zX2RpY3Qua2V5
cygpKVtzZWxmLl9leHBlY3RhdGlvbnNfZGljdF9pbmRleF0sIGxpc3Qoc2VsZi5fZXhwZWN0YXRp
b25zX2RpY3QudmFsdWVzKCkpW3NlbGYuX2V4cGVjdGF0aW9uc19kaWN0X2luZGV4XSkKICAgICAg
ICAgICAgIHNlbGYuX2FkZF9leHBlY3RhdGlvbnMoZXhwZWN0YXRpb25zKQogICAgICAgICAgICAg
c2VsZi5fZXhwZWN0YXRpb25zICs9IGV4cGVjdGF0aW9ucwogICAgICAgICAgICAgc2VsZi5fZXhw
ZWN0YXRpb25zX2RpY3RfaW5kZXggKz0gMQogCiAgICAgZGVmIHBhcnNlX292ZXJyaWRlX2V4cGVj
dGF0aW9ucyhzZWxmKToKICAgICAgICAgd2hpbGUgbGVuKHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0
KSA+IHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0X2luZGV4IGFuZCBzZWxmLl9pbmNsdWRlX292ZXJy
aWRlczoKLSAgICAgICAgICAgIGV4cGVjdGF0aW9ucyA9IHNlbGYuX3BhcnNlci5wYXJzZShzZWxm
Ll9leHBlY3RhdGlvbnNfZGljdC5rZXlzKClbc2VsZi5fZXhwZWN0YXRpb25zX2RpY3RfaW5kZXhd
LCBzZWxmLl9leHBlY3RhdGlvbnNfZGljdC52YWx1ZXMoKVtzZWxmLl9leHBlY3RhdGlvbnNfZGlj
dF9pbmRleF0pCisgICAgICAgICAgICBleHBlY3RhdGlvbnMgPSBzZWxmLl9wYXJzZXIucGFyc2Uo
bGlzdChzZWxmLl9leHBlY3RhdGlvbnNfZGljdC5rZXlzKCkpW3NlbGYuX2V4cGVjdGF0aW9uc19k
aWN0X2luZGV4XSwgbGlzdChzZWxmLl9leHBlY3RhdGlvbnNfZGljdC52YWx1ZXMoKSlbc2VsZi5f
ZXhwZWN0YXRpb25zX2RpY3RfaW5kZXhdKQogICAgICAgICAgICAgc2VsZi5fYWRkX2V4cGVjdGF0
aW9ucyhleHBlY3RhdGlvbnMpCiAgICAgICAgICAgICBzZWxmLl9leHBlY3RhdGlvbnMgKz0gZXhw
ZWN0YXRpb25zCiAgICAgICAgICAgICBzZWxmLl9leHBlY3RhdGlvbnNfZGljdF9pbmRleCArPSAx
CkBAIC0xMDUwLDcgKzEwNTEsNyBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zKG9iamVjdCk6CiAg
ICAgICAgIGZvciBleHBlY3RhdGlvbiBpbiBzZWxmLl9leHBlY3RhdGlvbnM6CiAgICAgICAgICAg
ICBpZiBleHBlY3RhdGlvbi5uYW1lICE9IHRlc3Qgb3IgZXhwZWN0YXRpb24uaXNfZmxha3koKSBv
ciBub3QgZXhwZWN0YXRpb24ucGFyc2VkX2V4cGVjdGF0aW9uczoKICAgICAgICAgICAgICAgICBj
b250aW51ZQotICAgICAgICAgICAgaWYgaXRlcihleHBlY3RhdGlvbi5wYXJzZWRfZXhwZWN0YXRp
b25zKS5uZXh0KCkgbm90IGluIChGQUlMLCBJTUFHRSk6CisgICAgICAgICAgICBpZiBub3QgYW55
KFt2YWx1ZSBpbiAoRkFJTCwgSU1BR0UpIGZvciB2YWx1ZSBpbiBleHBlY3RhdGlvbi5wYXJzZWRf
ZXhwZWN0YXRpb25zXSk6CiAgICAgICAgICAgICAgICAgY29udGludWUKICAgICAgICAgICAgIGlm
IHRlc3RfY29uZmlndXJhdGlvbiBub3QgaW4gZXhwZWN0YXRpb24ubWF0Y2hpbmdfY29uZmlndXJh
dGlvbnM6CiAgICAgICAgICAgICAgICAgY29udGludWUKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzLnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9y
ZXN1bHRzLnB5CShyZXZpc2lvbiAyNTE4ODgpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0cy5weQkod29ya2luZyBjb3B5KQpAQCAt
MzAsNiArMzAsNyBAQAogaW1wb3J0IGRhdGV0aW1lCiBpbXBvcnQgbG9nZ2luZwogaW1wb3J0IHNp
Z25hbAoraW1wb3J0IHN5cwogCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMgaW1w
b3J0IHRlc3RfZXhwZWN0YXRpb25zCiBmcm9tIHdlYmtpdHB5LmxheW91dF90ZXN0cy5tb2RlbHMg
aW1wb3J0IHRlc3RfZmFpbHVyZXMKQEAgLTIyMCwxNiArMjIxLDE2IEBAIGRlZiBzdW1tYXJpemVf
cmVzdWx0cyhwb3J0X29iaiwgZXhwZWN0YXQKICAgICBudW1fbWlzc2luZyA9IDAKICAgICBudW1f
cmVncmVzc2lvbnMgPSAwCiAgICAga2V5d29yZHMgPSB7fQotICAgIGZvciBleHBlY3RhdGlvbl9z
dHJpbmcsIGV4cGVjdGF0aW9uX2VudW0gaW4gdGVzdF9leHBlY3RhdGlvbnMuVGVzdEV4cGVjdGF0
aW9ucy5FWFBFQ1RBVElPTlMuaXRlcml0ZW1zKCk6CisgICAgZm9yIGV4cGVjdGF0aW9uX3N0cmlu
ZywgZXhwZWN0YXRpb25fZW51bSBpbiB0ZXN0X2V4cGVjdGF0aW9ucy5UZXN0RXhwZWN0YXRpb25z
LkVYUEVDVEFUSU9OUy5pdGVtcygpOgogICAgICAgICBrZXl3b3Jkc1tleHBlY3RhdGlvbl9lbnVt
XSA9IGV4cGVjdGF0aW9uX3N0cmluZy51cHBlcigpCiAKLSAgICBmb3IgbW9kaWZpZXJfc3RyaW5n
LCBtb2RpZmllcl9lbnVtIGluIHRlc3RfZXhwZWN0YXRpb25zLlRlc3RFeHBlY3RhdGlvbnMuTU9E
SUZJRVJTLml0ZXJpdGVtcygpOgorICAgIGZvciBtb2RpZmllcl9zdHJpbmcsIG1vZGlmaWVyX2Vu
dW0gaW4gdGVzdF9leHBlY3RhdGlvbnMuVGVzdEV4cGVjdGF0aW9ucy5NT0RJRklFUlMuaXRlbXMo
KToKICAgICAgICAga2V5d29yZHNbbW9kaWZpZXJfZW51bV0gPSBtb2RpZmllcl9zdHJpbmcudXBw
ZXIoKQogCiAgICAgdGVzdHMgPSB7fQogICAgIG90aGVyX2NyYXNoZXNfZGljdCA9IHt9CiAKLSAg
ICBmb3IgdGVzdF9uYW1lLCByZXN1bHQgaW4gaW5pdGlhbF9yZXN1bHRzLnJlc3VsdHNfYnlfbmFt
ZS5pdGVyaXRlbXMoKToKKyAgICBmb3IgdGVzdF9uYW1lLCByZXN1bHQgaW4gaW5pdGlhbF9yZXN1
bHRzLnJlc3VsdHNfYnlfbmFtZS5pdGVtcygpIGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywgMCkg
ZWxzZSBpbml0aWFsX3Jlc3VsdHMucmVzdWx0c19ieV9uYW1lLml0ZXJpdGVtcygpOgogICAgICAg
ICAjIE5vdGUgdGhhdCBpZiBhIHRlc3QgY3Jhc2hlZCBpbiB0aGUgb3JpZ2luYWwgcnVuLCB3ZSBp
Z25vcmUKICAgICAgICAgIyB3aGV0aGVyIG9yIG5vdCBpdCBjcmFzaGVkIHdoZW4gd2UgcmV0cmll
ZCBpdCAoaWYgd2UgcmV0cmllZCBpdCksCiAgICAgICAgICMgYW5kIGFsd2F5cyBjb25zaWRlciB0
aGUgcmVzdWx0IG5vdCBmbGFreS4KQEAgLTIzOCw4ICsyMzksOCBAQCBkZWYgc3VtbWFyaXplX3Jl
c3VsdHMocG9ydF9vYmosIGV4cGVjdGF0CiAgICAgICAgICMgV2UncmUgYmFzaWNhbGx5IHRyeWlu
ZyB0byBmaW5kIHRoZSBmaXJzdCBub24tc2tpcCBleHBlY3RhdGlvbiwgYW5kIHVzZSB0aGF0IGV4
cGVjdGF0aW9uIG9iamVjdCBmb3IgdGhlIHJlbWFpbmRlciBvZiB0aGUgbG9vcC4KICAgICAgICAg
IyBUaGlzIHdvcmtzIGJlY2F1c2UgdGVzdHMgYXJlIHJ1biBvbiB0aGUgZmlyc3QgZGV2aWNlIHR5
cGUgd2hpY2ggd29uJ3Qgc2tpcCB0aGVtLCByZWdhcmRsZXNzIG9mIG90aGVyIGV4cGVjdGF0aW9u
cywgYW5kIG5ldmVyIHJlLXJ1bi4KICAgICAgICAgZXhwZWN0ZWQgPSAnU0tJUCcKLSAgICAgICAg
ZXhwZWN0YXRpb25zID0gZXhwZWN0YXRpb25zX2J5X3R5cGUudmFsdWVzKClbMF0KLSAgICAgICAg
Zm9yIGVsZW1lbnQgaW4gZXhwZWN0YXRpb25zX2J5X3R5cGUuaXRlcnZhbHVlcygpOgorICAgICAg
ICBleHBlY3RhdGlvbnMgPSBsaXN0KGV4cGVjdGF0aW9uc19ieV90eXBlLnZhbHVlcygpKVswXQor
ICAgICAgICBmb3IgZWxlbWVudCBpbiBleHBlY3RhdGlvbnNfYnlfdHlwZS52YWx1ZXMoKToKICAg
ICAgICAgICAgIHRlc3RfZXhwZWN0YXRpb24gPSBlbGVtZW50LmZpbHRlcmVkX2V4cGVjdGF0aW9u
c19mb3JfdGVzdCh0ZXN0X25hbWUsIHBpeGVsX3Rlc3RzX2VuYWJsZWQsIHBvcnRfb2JqLl9vcHRp
b25zLndvcmxkX2xlYWtzKQogICAgICAgICAgICAgZXhwZWN0ZWQgPSBlbGVtZW50Lm1vZGVsKCku
ZXhwZWN0YXRpb25zX3RvX3N0cmluZyh0ZXN0X2V4cGVjdGF0aW9uKQogICAgICAgICAgICAgaWYg
ZXhwZWN0ZWQgIT0gJ1NLSVAnOgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382530</attachid>
            <date>2019-10-31 17:54:47 -0700</date>
            <delta_ts>2019-11-01 09:24:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203702-20191031175447.patch</filename>
            <type>text/plain</type>
            <size>10572</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MTg5OSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI3IEBACisyMDE5LTEwLTMxICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBQeXRob24gMzogQWRkIHN1cHBvcnQgaW4gd2Via2l0cHkubGF5b3V0X3Rl
c3RzLm1vZGVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDM3MDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFNjcmlwdHMvdGVzdC13ZWJraXRweS1weXRob24zOiBBZGQgd2Via2l0cHkubGF5b3V0X3Rl
c3RzLm1vZGVsLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVs
cy90ZXN0X2NvbmZpZ3VyYXRpb24ucHk6CisgICAgICAgIChTcGVjaWZpZXJTb3J0ZXIuc29ydF9z
cGVjaWZpZXJzKTogQ29udmVydCBpdGVyYXRvciB0byBsaXN0LgorICAgICAgICAoVGVzdENvbmZp
Z3VyYXRpb25Db252ZXJ0ZXIudG9fY29uZmlnX3NldCk6IFVzZSByZWR1Y2UgZnJvbSBmdW5jdG9y
cy4KKyAgICAgICAgKFRlc3RDb25maWd1cmF0aW9uQ29udmVydGVyLmludGVyc2VjdF9jb21iaW5h
dGlvbik6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21v
ZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvbnNNb2Rl
bC5nZXRfdGVzdF9zZXRfZm9yX2tleXdvcmQpOiBVc2UgaXRlcmF0b3JzIGluIGJvdGggUHl0aG9u
IDIKKyAgICAgICAgYW5kIFB5dGhvbiAzLgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9uc01vZGVs
Ll9yZW1vdmVfZnJvbV9zZXRzKTogRGl0dG8uCisgICAgICAgIChUZXN0RXhwZWN0YXRpb25zLnBh
cnNlX2dlbmVyaWNfZXhwZWN0YXRpb25zKTogQ292ZXJ0IGl0ZXJhdG9ycyB0byBsaXN0cyBmb3Ig
aW5kZXhpbmcuCisgICAgICAgIChUZXN0RXhwZWN0YXRpb25zLnBhcnNlX2RlZmF1bHRfcG9ydF9l
eHBlY3RhdGlvbnMpOiBEaXR0by4KKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvbnMucGFyc2Vfb3Zl
cnJpZGVfZXhwZWN0YXRpb25zKTogRGl0dG8uCisgICAgICAgIChUZXN0RXhwZWN0YXRpb25zLnJl
bW92ZV9jb25maWd1cmF0aW9uX2Zyb21fdGVzdCk6IFVzZSBhbnkgaW5zdGVhZCBvZiBqdXN0IGNo
ZWNraW5nIHRoZQorICAgICAgICBmaXJzdCBlbGVtZW50IGluIHRoZSBzZXQuCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHMucHk6
CisgICAgICAgIChzdW1tYXJpemVfcmVzdWx0cyk6IFVzZSBpdGVtcyBpbnN0ZWFkIG9mIGl0ZXJp
dGVtcy4KKwogMjAxOS0xMC0zMSAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ2hhbmdlZCBteSBlbWFpbHMgbGlzdC4KSW5kZXg6IFRvb2xzL1NjcmlwdHMvdGVz
dC13ZWJraXRweS1weXRob24zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvdGVzdC13ZWJr
aXRweS1weXRob24zCShyZXZpc2lvbiAyNTE4OTkpCisrKyBUb29scy9TY3JpcHRzL3Rlc3Qtd2Vi
a2l0cHktcHl0aG9uMwkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQCBQWVRIT04zX0NP
TVBBVElCTEVfRElSRUNUT1JJRVMgPSBbCiAgICd3ZWJraXRweS5jb21tb24udGhyZWFkJywKICAg
J3dlYmtpdHB5LmNvbW1vbi5uZXQnLAogICAnd2Via2l0cHkuY29tbW9uLndhdGNobGlzdCcsCisg
ICd3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzJywKICAgJ3dlYmtpdHB5LnBvcnQnLAogICAn
d2Via2l0cHkucmVzdWx0cycsCiAgICd3ZWJraXRweS54Y29kZScsCkluZGV4OiBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVzdF9jb25maWd1cmF0aW9uLnB5Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90
ZXN0X2NvbmZpZ3VyYXRpb24ucHkJKHJldmlzaW9uIDI1MTg5OSkKKysrIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2NvbmZpZ3VyYXRpb24ucHkJKHdvcmtp
bmcgY29weSkKQEAgLTI2LDYgKzI2LDcgQEAKICMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAjIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAKK2ltcG9ydCBmdW5jdG9vbHMKIGltcG9ydCBpdGVydG9vbHMKIAogCkBAIC05Nyw3ICs5OCw3
IEBAIGNsYXNzIFNwZWNpZmllclNvcnRlcihvYmplY3QpOgogICAgICAgICByZXR1cm4gc2VsZi5f
c3BlY2lmaWVyX3RvX2NhdGVnb3J5LmdldChzcGVjaWZpZXIpCiAKICAgICBkZWYgc29ydF9zcGVj
aWZpZXJzKHNlbGYsIHNwZWNpZmllcnMpOgotICAgICAgICBjYXRlZ29yeV9zbG90cyA9IG1hcChs
YW1iZGEgeDogW10sIFRlc3RDb25maWd1cmF0aW9uLmNhdGVnb3J5X29yZGVyKCkpCisgICAgICAg
IGNhdGVnb3J5X3Nsb3RzID0gbGlzdChtYXAobGFtYmRhIHg6IFtdLCBUZXN0Q29uZmlndXJhdGlv
bi5jYXRlZ29yeV9vcmRlcigpKSkKICAgICAgICAgZm9yIHNwZWNpZmllciBpbiBzcGVjaWZpZXJz
OgogICAgICAgICAgICAgY2F0ZWdvcnlfc2xvdHNbc2VsZi5zcGVjaWZpZXJfcHJpb3JpdHkoc3Bl
Y2lmaWVyKV0uYXBwZW5kKHNwZWNpZmllcikKIApAQCAtMTA1LDcgKzEwNiw3IEBAIGNsYXNzIFNw
ZWNpZmllclNvcnRlcihvYmplY3QpOgogICAgICAgICAgICAgc3BlY2lmaWVyX2xpc3Quc29ydCgp
CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0ICsgc3BlY2lmaWVyX2xpc3QKIAotICAgICAgICBy
ZXR1cm4gcmVkdWNlKHNvcnRfYW5kX3JldHVybiwgY2F0ZWdvcnlfc2xvdHMsIFtdKQorICAgICAg
ICByZXR1cm4gZnVuY3Rvb2xzLnJlZHVjZShzb3J0X2FuZF9yZXR1cm4sIGNhdGVnb3J5X3Nsb3Rz
LCBbXSkKIAogCiBjbGFzcyBUZXN0Q29uZmlndXJhdGlvbkNvbnZlcnRlcihvYmplY3QpOgpAQCAt
MTYyLDcgKzE2Myw3IEBAIGNsYXNzIFRlc3RDb25maWd1cmF0aW9uQ29udmVydGVyKG9iamVjdCkK
ICAgICAgICAgICAgICAgICBjYXRlZ29yeSA9IHNlbGYuX3NwZWNpZmllcl9zb3J0ZXIuY2F0ZWdv
cnlfZm9yX3NwZWNpZmllcihleHBhbmRlZF9zcGVjaWZpZXIpCiAgICAgICAgICAgICAgICAgbWF0
Y2hpbmdfc2V0cy5zZXRkZWZhdWx0KGNhdGVnb3J5LCBzZXQoKSkudXBkYXRlKGNvbmZpZ3VyYXRp
b25zKQogCi0gICAgICAgIHJldHVybiByZWR1Y2Uoc2V0LmludGVyc2VjdGlvbiwgbWF0Y2hpbmdf
c2V0cy52YWx1ZXMoKSkKKyAgICAgICAgcmV0dXJuIGZ1bmN0b29scy5yZWR1Y2Uoc2V0LmludGVy
c2VjdGlvbiwgbWF0Y2hpbmdfc2V0cy52YWx1ZXMoKSkKIAogICAgIEBjbGFzc21ldGhvZAogICAg
IGRlZiBjb2xsYXBzZV9tYWNyb3MoY2xzLCBtYWNyb3NfZGljdCwgc3BlY2lmaWVyc19saXN0KToK
QEAgLTE5Niw3ICsxOTcsNyBAQCBjbGFzcyBUZXN0Q29uZmlndXJhdGlvbkNvbnZlcnRlcihvYmpl
Y3QpCiAKICAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgaW50ZXJzZWN0X2NvbWJpbmF0aW9uKGNs
cywgY29tYmluYXRpb24pOgotICAgICAgICByZXR1cm4gcmVkdWNlKHNldC5pbnRlcnNlY3Rpb24s
IFtzZXQoc3BlY2lmaWVycykgZm9yIHNwZWNpZmllcnMgaW4gY29tYmluYXRpb25dKQorICAgICAg
ICByZXR1cm4gZnVuY3Rvb2xzLnJlZHVjZShzZXQuaW50ZXJzZWN0aW9uLCBbc2V0KHNwZWNpZmll
cnMpIGZvciBzcGVjaWZpZXJzIGluIGNvbWJpbmF0aW9uXSkKIAogICAgIEBjbGFzc21ldGhvZAog
ICAgIGRlZiBzeW1tZXRyaWNfZGlmZmVyZW5jZShjbHMsIGl0ZXJhYmxlKToKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2Rl
bHMvdGVzdF9leHBlY3RhdGlvbnMucHkJKHJldmlzaW9uIDI1MTg5OSkKKysrIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weQkod29y
a2luZyBjb3B5KQpAQCAtMzIsNyArMzIsOSBAQCBmb3IgbGF5b3V0IHRlc3RzLgogCiBpbXBvcnQg
bG9nZ2luZwogaW1wb3J0IHJlCitpbXBvcnQgc3lzCiAKK2Zyb20gd2Via2l0cHkuY29tbW9uLml0
ZXJhdGlvbl9jb21wYXRpYmlsaXR5IGltcG9ydCBpdGVyaXRlbXMsIGl0ZXJ2YWx1ZXMKIGZyb20g
d2Via2l0cHkubGF5b3V0X3Rlc3RzLm1vZGVscy50ZXN0X2NvbmZpZ3VyYXRpb24gaW1wb3J0IFRl
c3RDb25maWd1cmF0aW9uQ29udmVydGVyCiAKIF9sb2cgPSBsb2dnaW5nLmdldExvZ2dlcihfX25h
bWVfXykKQEAgLTU2Niw3ICs1NjgsNyBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zTW9kZWwob2Jq
ZWN0KToKIAogICAgICAgICAjIFdlIG11c3Qgbm90IGhhdmUgYW4gaW5kZXggb24gdGhpcyBtb2Rp
Zmllci4KICAgICAgICAgbWF0Y2hpbmdfdGVzdHMgPSBzZXQoKQotICAgICAgICBmb3IgdGVzdCwg
bW9kaWZpZXJzIGluIHNlbGYuX3Rlc3RfdG9fbW9kaWZpZXJzLml0ZXJpdGVtcygpOgorICAgICAg
ICBmb3IgdGVzdCwgbW9kaWZpZXJzIGluIGl0ZXJpdGVtcyhzZWxmLl90ZXN0X3RvX21vZGlmaWVy
cyk6CiAgICAgICAgICAgICBpZiBrZXl3b3JkLmxvd2VyKCkgaW4gbW9kaWZpZXJzOgogICAgICAg
ICAgICAgICAgIG1hdGNoaW5nX3Rlc3RzLmFkZCh0ZXN0KQogICAgICAgICByZXR1cm4gbWF0Y2hp
bmdfdGVzdHMKQEAgLTY5NCw3ICs2OTYsNyBAQCBjbGFzcyBUZXN0RXhwZWN0YXRpb25zTW9kZWwo
b2JqZWN0KToKICAgICAgICAgQXJnczoKICAgICAgICAgICB0ZXN0OiB0ZXN0IHRvIGxvb2sgZm9y
CiAgICAgICAgICAgZGljdDogZGljdCBvZiBzZXRzIG9mIGZpbGVzIiIiCi0gICAgICAgIGZvciBz
ZXRfb2ZfdGVzdHMgaW4gZGljdF9vZl9zZXRzX29mX3Rlc3RzLml0ZXJ2YWx1ZXMoKToKKyAgICAg
ICAgZm9yIHNldF9vZl90ZXN0cyBpbiBpdGVydmFsdWVzKGRpY3Rfb2Zfc2V0c19vZl90ZXN0cyk6
CiAgICAgICAgICAgICBpZiB0ZXN0IGluIHNldF9vZl90ZXN0czoKICAgICAgICAgICAgICAgICBz
ZXRfb2ZfdGVzdHMucmVtb3ZlKHRlc3QpCiAKQEAgLTk0OSwyMSArOTUxLDIxIEBAIGNsYXNzIFRl
c3RFeHBlY3RhdGlvbnMob2JqZWN0KToKICAgICBkZWYgcGFyc2VfZ2VuZXJpY19leHBlY3RhdGlv
bnMoc2VsZik6CiAgICAgICAgIGlmIHNlbGYuX3BvcnQucGF0aF90b19nZW5lcmljX3Rlc3RfZXhw
ZWN0YXRpb25zX2ZpbGUoKSBpbiBzZWxmLl9leHBlY3RhdGlvbnNfZGljdDoKICAgICAgICAgICAg
IGlmIHNlbGYuX2luY2x1ZGVfZ2VuZXJpYzoKLSAgICAgICAgICAgICAgICBleHBlY3RhdGlvbnMg
PSBzZWxmLl9wYXJzZXIucGFyc2Uoc2VsZi5fZXhwZWN0YXRpb25zX2RpY3Qua2V5cygpW3NlbGYu
X2V4cGVjdGF0aW9uc19kaWN0X2luZGV4XSwgc2VsZi5fZXhwZWN0YXRpb25zX2RpY3QudmFsdWVz
KClbc2VsZi5fZXhwZWN0YXRpb25zX2RpY3RfaW5kZXhdKQorICAgICAgICAgICAgICAgIGV4cGVj
dGF0aW9ucyA9IHNlbGYuX3BhcnNlci5wYXJzZShsaXN0KHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0
LmtleXMoKSlbc2VsZi5fZXhwZWN0YXRpb25zX2RpY3RfaW5kZXhdLCBsaXN0KHNlbGYuX2V4cGVj
dGF0aW9uc19kaWN0LnZhbHVlcygpKVtzZWxmLl9leHBlY3RhdGlvbnNfZGljdF9pbmRleF0pCiAg
ICAgICAgICAgICAgICAgc2VsZi5fYWRkX2V4cGVjdGF0aW9ucyhleHBlY3RhdGlvbnMpCiAgICAg
ICAgICAgICAgICAgc2VsZi5fZXhwZWN0YXRpb25zICs9IGV4cGVjdGF0aW9ucwogICAgICAgICAg
ICAgc2VsZi5fZXhwZWN0YXRpb25zX2RpY3RfaW5kZXggKz0gMQogCiAgICAgZGVmIHBhcnNlX2Rl
ZmF1bHRfcG9ydF9leHBlY3RhdGlvbnMoc2VsZik6CiAgICAgICAgIGlmIGxlbihzZWxmLl9leHBl
Y3RhdGlvbnNfZGljdCkgPiBzZWxmLl9leHBlY3RhdGlvbnNfZGljdF9pbmRleDoKLSAgICAgICAg
ICAgIGV4cGVjdGF0aW9ucyA9IHNlbGYuX3BhcnNlci5wYXJzZShzZWxmLl9leHBlY3RhdGlvbnNf
ZGljdC5rZXlzKClbc2VsZi5fZXhwZWN0YXRpb25zX2RpY3RfaW5kZXhdLCBzZWxmLl9leHBlY3Rh
dGlvbnNfZGljdC52YWx1ZXMoKVtzZWxmLl9leHBlY3RhdGlvbnNfZGljdF9pbmRleF0pCisgICAg
ICAgICAgICBleHBlY3RhdGlvbnMgPSBzZWxmLl9wYXJzZXIucGFyc2UobGlzdChzZWxmLl9leHBl
Y3RhdGlvbnNfZGljdC5rZXlzKCkpW3NlbGYuX2V4cGVjdGF0aW9uc19kaWN0X2luZGV4XSwgbGlz
dChzZWxmLl9leHBlY3RhdGlvbnNfZGljdC52YWx1ZXMoKSlbc2VsZi5fZXhwZWN0YXRpb25zX2Rp
Y3RfaW5kZXhdKQogICAgICAgICAgICAgc2VsZi5fYWRkX2V4cGVjdGF0aW9ucyhleHBlY3RhdGlv
bnMpCiAgICAgICAgICAgICBzZWxmLl9leHBlY3RhdGlvbnMgKz0gZXhwZWN0YXRpb25zCiAgICAg
ICAgICAgICBzZWxmLl9leHBlY3RhdGlvbnNfZGljdF9pbmRleCArPSAxCiAKICAgICBkZWYgcGFy
c2Vfb3ZlcnJpZGVfZXhwZWN0YXRpb25zKHNlbGYpOgogICAgICAgICB3aGlsZSBsZW4oc2VsZi5f
ZXhwZWN0YXRpb25zX2RpY3QpID4gc2VsZi5fZXhwZWN0YXRpb25zX2RpY3RfaW5kZXggYW5kIHNl
bGYuX2luY2x1ZGVfb3ZlcnJpZGVzOgotICAgICAgICAgICAgZXhwZWN0YXRpb25zID0gc2VsZi5f
cGFyc2VyLnBhcnNlKHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0LmtleXMoKVtzZWxmLl9leHBlY3Rh
dGlvbnNfZGljdF9pbmRleF0sIHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0LnZhbHVlcygpW3NlbGYu
X2V4cGVjdGF0aW9uc19kaWN0X2luZGV4XSkKKyAgICAgICAgICAgIGV4cGVjdGF0aW9ucyA9IHNl
bGYuX3BhcnNlci5wYXJzZShsaXN0KHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0LmtleXMoKSlbc2Vs
Zi5fZXhwZWN0YXRpb25zX2RpY3RfaW5kZXhdLCBsaXN0KHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0
LnZhbHVlcygpKVtzZWxmLl9leHBlY3RhdGlvbnNfZGljdF9pbmRleF0pCiAgICAgICAgICAgICBz
ZWxmLl9hZGRfZXhwZWN0YXRpb25zKGV4cGVjdGF0aW9ucykKICAgICAgICAgICAgIHNlbGYuX2V4
cGVjdGF0aW9ucyArPSBleHBlY3RhdGlvbnMKICAgICAgICAgICAgIHNlbGYuX2V4cGVjdGF0aW9u
c19kaWN0X2luZGV4ICs9IDEKQEAgLTEwNTAsNyArMTA1Miw3IEBAIGNsYXNzIFRlc3RFeHBlY3Rh
dGlvbnMob2JqZWN0KToKICAgICAgICAgZm9yIGV4cGVjdGF0aW9uIGluIHNlbGYuX2V4cGVjdGF0
aW9uczoKICAgICAgICAgICAgIGlmIGV4cGVjdGF0aW9uLm5hbWUgIT0gdGVzdCBvciBleHBlY3Rh
dGlvbi5pc19mbGFreSgpIG9yIG5vdCBleHBlY3RhdGlvbi5wYXJzZWRfZXhwZWN0YXRpb25zOgog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBpZiBpdGVyKGV4cGVjdGF0aW9u
LnBhcnNlZF9leHBlY3RhdGlvbnMpLm5leHQoKSBub3QgaW4gKEZBSUwsIElNQUdFKToKKyAgICAg
ICAgICAgIGlmIG5vdCBhbnkoW3ZhbHVlIGluIChGQUlMLCBJTUFHRSkgZm9yIHZhbHVlIGluIGV4
cGVjdGF0aW9uLnBhcnNlZF9leHBlY3RhdGlvbnNdKToKICAgICAgICAgICAgICAgICBjb250aW51
ZQogICAgICAgICAgICAgaWYgdGVzdF9jb25maWd1cmF0aW9uIG5vdCBpbiBleHBlY3RhdGlvbi5t
YXRjaGluZ19jb25maWd1cmF0aW9uczoKICAgICAgICAgICAgICAgICBjb250aW51ZQpJbmRleDog
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3Vs
dHMucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMv
bW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHMucHkJKHJldmlzaW9uIDI1MTg5OSkKKysrIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzLnB5CSh3
b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw5IEBACiBpbXBvcnQgZGF0ZXRpbWUKIGltcG9ydCBs
b2dnaW5nCiBpbXBvcnQgc2lnbmFsCitpbXBvcnQgc3lzCiAKK2Zyb20gd2Via2l0cHkuY29tbW9u
Lml0ZXJhdGlvbl9jb21wYXRpYmlsaXR5IGltcG9ydCBpdGVyaXRlbXMKIGZyb20gd2Via2l0cHku
bGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9leHBlY3RhdGlvbnMKIGZyb20gd2Via2l0
cHkubGF5b3V0X3Rlc3RzLm1vZGVscyBpbXBvcnQgdGVzdF9mYWlsdXJlcwogCkBAIC0yMjAsMTYg
KzIyMiwxNiBAQCBkZWYgc3VtbWFyaXplX3Jlc3VsdHMocG9ydF9vYmosIGV4cGVjdGF0CiAgICAg
bnVtX21pc3NpbmcgPSAwCiAgICAgbnVtX3JlZ3Jlc3Npb25zID0gMAogICAgIGtleXdvcmRzID0g
e30KLSAgICBmb3IgZXhwZWN0YXRpb25fc3RyaW5nLCBleHBlY3RhdGlvbl9lbnVtIGluIHRlc3Rf
ZXhwZWN0YXRpb25zLlRlc3RFeHBlY3RhdGlvbnMuRVhQRUNUQVRJT05TLml0ZXJpdGVtcygpOgor
ICAgIGZvciBleHBlY3RhdGlvbl9zdHJpbmcsIGV4cGVjdGF0aW9uX2VudW0gaW4gdGVzdF9leHBl
Y3RhdGlvbnMuVGVzdEV4cGVjdGF0aW9ucy5FWFBFQ1RBVElPTlMuaXRlbXMoKToKICAgICAgICAg
a2V5d29yZHNbZXhwZWN0YXRpb25fZW51bV0gPSBleHBlY3RhdGlvbl9zdHJpbmcudXBwZXIoKQog
Ci0gICAgZm9yIG1vZGlmaWVyX3N0cmluZywgbW9kaWZpZXJfZW51bSBpbiB0ZXN0X2V4cGVjdGF0
aW9ucy5UZXN0RXhwZWN0YXRpb25zLk1PRElGSUVSUy5pdGVyaXRlbXMoKToKKyAgICBmb3IgbW9k
aWZpZXJfc3RyaW5nLCBtb2RpZmllcl9lbnVtIGluIHRlc3RfZXhwZWN0YXRpb25zLlRlc3RFeHBl
Y3RhdGlvbnMuTU9ESUZJRVJTLml0ZW1zKCk6CiAgICAgICAgIGtleXdvcmRzW21vZGlmaWVyX2Vu
dW1dID0gbW9kaWZpZXJfc3RyaW5nLnVwcGVyKCkKIAogICAgIHRlc3RzID0ge30KICAgICBvdGhl
cl9jcmFzaGVzX2RpY3QgPSB7fQogCi0gICAgZm9yIHRlc3RfbmFtZSwgcmVzdWx0IGluIGluaXRp
YWxfcmVzdWx0cy5yZXN1bHRzX2J5X25hbWUuaXRlcml0ZW1zKCk6CisgICAgZm9yIHRlc3RfbmFt
ZSwgcmVzdWx0IGluIGl0ZXJpdGVtcyhpbml0aWFsX3Jlc3VsdHMucmVzdWx0c19ieV9uYW1lKToK
ICAgICAgICAgIyBOb3RlIHRoYXQgaWYgYSB0ZXN0IGNyYXNoZWQgaW4gdGhlIG9yaWdpbmFsIHJ1
biwgd2UgaWdub3JlCiAgICAgICAgICMgd2hldGhlciBvciBub3QgaXQgY3Jhc2hlZCB3aGVuIHdl
IHJldHJpZWQgaXQgKGlmIHdlIHJldHJpZWQgaXQpLAogICAgICAgICAjIGFuZCBhbHdheXMgY29u
c2lkZXIgdGhlIHJlc3VsdCBub3QgZmxha3kuCkBAIC0yMzgsOCArMjQwLDggQEAgZGVmIHN1bW1h
cml6ZV9yZXN1bHRzKHBvcnRfb2JqLCBleHBlY3RhdAogICAgICAgICAjIFdlJ3JlIGJhc2ljYWxs
eSB0cnlpbmcgdG8gZmluZCB0aGUgZmlyc3Qgbm9uLXNraXAgZXhwZWN0YXRpb24sIGFuZCB1c2Ug
dGhhdCBleHBlY3RhdGlvbiBvYmplY3QgZm9yIHRoZSByZW1haW5kZXIgb2YgdGhlIGxvb3AuCiAg
ICAgICAgICMgVGhpcyB3b3JrcyBiZWNhdXNlIHRlc3RzIGFyZSBydW4gb24gdGhlIGZpcnN0IGRl
dmljZSB0eXBlIHdoaWNoIHdvbid0IHNraXAgdGhlbSwgcmVnYXJkbGVzcyBvZiBvdGhlciBleHBl
Y3RhdGlvbnMsIGFuZCBuZXZlciByZS1ydW4uCiAgICAgICAgIGV4cGVjdGVkID0gJ1NLSVAnCi0g
ICAgICAgIGV4cGVjdGF0aW9ucyA9IGV4cGVjdGF0aW9uc19ieV90eXBlLnZhbHVlcygpWzBdCi0g
ICAgICAgIGZvciBlbGVtZW50IGluIGV4cGVjdGF0aW9uc19ieV90eXBlLml0ZXJ2YWx1ZXMoKToK
KyAgICAgICAgZXhwZWN0YXRpb25zID0gbGlzdChleHBlY3RhdGlvbnNfYnlfdHlwZS52YWx1ZXMo
KSlbMF0KKyAgICAgICAgZm9yIGVsZW1lbnQgaW4gZXhwZWN0YXRpb25zX2J5X3R5cGUudmFsdWVz
KCk6CiAgICAgICAgICAgICB0ZXN0X2V4cGVjdGF0aW9uID0gZWxlbWVudC5maWx0ZXJlZF9leHBl
Y3RhdGlvbnNfZm9yX3Rlc3QodGVzdF9uYW1lLCBwaXhlbF90ZXN0c19lbmFibGVkLCBwb3J0X29i
ai5fb3B0aW9ucy53b3JsZF9sZWFrcykKICAgICAgICAgICAgIGV4cGVjdGVkID0gZWxlbWVudC5t
b2RlbCgpLmV4cGVjdGF0aW9uc190b19zdHJpbmcodGVzdF9leHBlY3RhdGlvbikKICAgICAgICAg
ICAgIGlmIGV4cGVjdGVkICE9ICdTS0lQJzoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382586</attachid>
            <date>2019-11-01 09:24:22 -0700</date>
            <delta_ts>2019-11-01 17:08:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-203702-20191101092421.patch</filename>
            <type>text/plain</type>
            <size>12692</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MTg5OSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI3IEBACisyMDE5LTEwLTMxICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBQeXRob24gMzogQWRkIHN1cHBvcnQgaW4gd2Via2l0cHkubGF5b3V0X3Rl
c3RzLm1vZGVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDM3MDIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICAqIFNjcmlwdHMvdGVzdC13ZWJraXRweS1weXRob24zOiBBZGQgd2Via2l0cHkubGF5b3V0X3Rl
c3RzLm1vZGVsLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVs
cy90ZXN0X2NvbmZpZ3VyYXRpb24ucHk6CisgICAgICAgIChTcGVjaWZpZXJTb3J0ZXIuc29ydF9z
cGVjaWZpZXJzKTogQ29udmVydCBpdGVyYXRvciB0byBsaXN0LgorICAgICAgICAoVGVzdENvbmZp
Z3VyYXRpb25Db252ZXJ0ZXIudG9fY29uZmlnX3NldCk6IFVzZSByZWR1Y2UgZnJvbSBmdW5jdG9y
cy4KKyAgICAgICAgKFRlc3RDb25maWd1cmF0aW9uQ29udmVydGVyLmludGVyc2VjdF9jb21iaW5h
dGlvbik6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21v
ZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weToKKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvbnNNb2Rl
bC5nZXRfdGVzdF9zZXRfZm9yX2tleXdvcmQpOiBVc2UgaXRlcmF0b3JzIGluIGJvdGggUHl0aG9u
IDIKKyAgICAgICAgYW5kIFB5dGhvbiAzLgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9uc01vZGVs
Ll9yZW1vdmVfZnJvbV9zZXRzKTogRGl0dG8uCisgICAgICAgIChUZXN0RXhwZWN0YXRpb25zLnBh
cnNlX2dlbmVyaWNfZXhwZWN0YXRpb25zKTogQ292ZXJ0IGl0ZXJhdG9ycyB0byBsaXN0cyBmb3Ig
aW5kZXhpbmcuCisgICAgICAgIChUZXN0RXhwZWN0YXRpb25zLnBhcnNlX2RlZmF1bHRfcG9ydF9l
eHBlY3RhdGlvbnMpOiBEaXR0by4KKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvbnMucGFyc2Vfb3Zl
cnJpZGVfZXhwZWN0YXRpb25zKTogRGl0dG8uCisgICAgICAgIChUZXN0RXhwZWN0YXRpb25zLnJl
bW92ZV9jb25maWd1cmF0aW9uX2Zyb21fdGVzdCk6IFVzZSBhbnkgaW5zdGVhZCBvZiBqdXN0IGNo
ZWNraW5nIHRoZQorICAgICAgICBmaXJzdCBlbGVtZW50IGluIHRoZSBzZXQuCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jlc3VsdHMucHk6
CisgICAgICAgIChzdW1tYXJpemVfcmVzdWx0cyk6IFVzZSBpdGVtcyBpbnN0ZWFkIG9mIGl0ZXJp
dGVtcy4KKwogMjAxOS0xMC0zMSAgTWF0dCBCYWtlciAgPG1hdHRiYWtlckBhcHBsZS5jb20+CiAK
ICAgICAgICAgQ2hhbmdlZCBteSBlbWFpbHMgbGlzdC4KSW5kZXg6IFRvb2xzL1NjcmlwdHMvdGVz
dC13ZWJraXRweS1weXRob24zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvdGVzdC13ZWJr
aXRweS1weXRob24zCShyZXZpc2lvbiAyNTE4OTkpCisrKyBUb29scy9TY3JpcHRzL3Rlc3Qtd2Vi
a2l0cHktcHl0aG9uMwkod29ya2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQCBQWVRIT04zX0NP
TVBBVElCTEVfRElSRUNUT1JJRVMgPSBbCiAgICd3ZWJraXRweS5jb21tb24udGhyZWFkJywKICAg
J3dlYmtpdHB5LmNvbW1vbi5uZXQnLAogICAnd2Via2l0cHkuY29tbW9uLndhdGNobGlzdCcsCisg
ICd3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzJywKICAgJ3dlYmtpdHB5LnBvcnQnLAogICAn
d2Via2l0cHkucmVzdWx0cycsCiAgICd3ZWJraXRweS54Y29kZScsCkluZGV4OiBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9pdGVyYXRpb25fY29tcGF0aWJpbGl0eS5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9pdGVyYXRpb25fY29tcGF0aWJpbGl0
eS5weQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9pdGVy
YXRpb25fY29tcGF0aWJpbGl0eS5weQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ0IEBACisj
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisj
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBzeXMKKworCitk
ZWYgaXRlcml0ZW1zKGRpY3Rpb25hcnkpOgorICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywg
MCk6CisgICAgICAgIHJldHVybiBkaWN0aW9uYXJ5Lml0ZW1zKCkKKyAgICBlbHNlOgorICAgICAg
ICByZXR1cm4gZGljdGlvbmFyeS5pdGVyaXRlbXMoKQorCisKK2RlZiBpdGVya2V5cyhkaWN0aW9u
YXJ5KToKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsIDApOgorICAgICAgICByZXR1cm4g
ZGljdGlvbmFyeS5rZXlzKCkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gZGljdGlvbmFyeS5p
dGVya2V5cygpCisKKworZGVmIGl0ZXJ2YWx1ZXMoZGljdGlvbmFyeSk6CisgICAgaWYgc3lzLnZl
cnNpb25faW5mbyA+ICgzLCAwKToKKyAgICAgICAgcmV0dXJuIGRpY3Rpb25hcnkudmFsdWVzKCkK
KyAgICBlbHNlOgorICAgICAgICByZXR1cm4gZGljdGlvbmFyeS5pdGVydmFsdWVzKCkKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2NvbmZpZ3Vy
YXRpb24ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbW9kZWxzL3Rlc3RfY29uZmlndXJhdGlvbi5weQkocmV2aXNpb24gMjUxODk5KQorKysgVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfY29uZmlndXJhdGlv
bi5weQkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAoraW1wb3J0IGZ1bmN0b29scwogaW1wb3J0IGl0ZXJ0b29scwogCiAKQEAg
LTk3LDcgKzk4LDcgQEAgY2xhc3MgU3BlY2lmaWVyU29ydGVyKG9iamVjdCk6CiAgICAgICAgIHJl
dHVybiBzZWxmLl9zcGVjaWZpZXJfdG9fY2F0ZWdvcnkuZ2V0KHNwZWNpZmllcikKIAogICAgIGRl
ZiBzb3J0X3NwZWNpZmllcnMoc2VsZiwgc3BlY2lmaWVycyk6Ci0gICAgICAgIGNhdGVnb3J5X3Ns
b3RzID0gbWFwKGxhbWJkYSB4OiBbXSwgVGVzdENvbmZpZ3VyYXRpb24uY2F0ZWdvcnlfb3JkZXIo
KSkKKyAgICAgICAgY2F0ZWdvcnlfc2xvdHMgPSBsaXN0KG1hcChsYW1iZGEgeDogW10sIFRlc3RD
b25maWd1cmF0aW9uLmNhdGVnb3J5X29yZGVyKCkpKQogICAgICAgICBmb3Igc3BlY2lmaWVyIGlu
IHNwZWNpZmllcnM6CiAgICAgICAgICAgICBjYXRlZ29yeV9zbG90c1tzZWxmLnNwZWNpZmllcl9w
cmlvcml0eShzcGVjaWZpZXIpXS5hcHBlbmQoc3BlY2lmaWVyKQogCkBAIC0xMDUsNyArMTA2LDcg
QEAgY2xhc3MgU3BlY2lmaWVyU29ydGVyKG9iamVjdCk6CiAgICAgICAgICAgICBzcGVjaWZpZXJf
bGlzdC5zb3J0KCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyBzcGVjaWZpZXJfbGlzdAog
Ci0gICAgICAgIHJldHVybiByZWR1Y2Uoc29ydF9hbmRfcmV0dXJuLCBjYXRlZ29yeV9zbG90cywg
W10pCisgICAgICAgIHJldHVybiBmdW5jdG9vbHMucmVkdWNlKHNvcnRfYW5kX3JldHVybiwgY2F0
ZWdvcnlfc2xvdHMsIFtdKQogCiAKIGNsYXNzIFRlc3RDb25maWd1cmF0aW9uQ29udmVydGVyKG9i
amVjdCk6CkBAIC0xNjIsNyArMTYzLDcgQEAgY2xhc3MgVGVzdENvbmZpZ3VyYXRpb25Db252ZXJ0
ZXIob2JqZWN0KQogICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gc2VsZi5fc3BlY2lmaWVyX3Nv
cnRlci5jYXRlZ29yeV9mb3Jfc3BlY2lmaWVyKGV4cGFuZGVkX3NwZWNpZmllcikKICAgICAgICAg
ICAgICAgICBtYXRjaGluZ19zZXRzLnNldGRlZmF1bHQoY2F0ZWdvcnksIHNldCgpKS51cGRhdGUo
Y29uZmlndXJhdGlvbnMpCiAKLSAgICAgICAgcmV0dXJuIHJlZHVjZShzZXQuaW50ZXJzZWN0aW9u
LCBtYXRjaGluZ19zZXRzLnZhbHVlcygpKQorICAgICAgICByZXR1cm4gZnVuY3Rvb2xzLnJlZHVj
ZShzZXQuaW50ZXJzZWN0aW9uLCBtYXRjaGluZ19zZXRzLnZhbHVlcygpKQogCiAgICAgQGNsYXNz
bWV0aG9kCiAgICAgZGVmIGNvbGxhcHNlX21hY3JvcyhjbHMsIG1hY3Jvc19kaWN0LCBzcGVjaWZp
ZXJzX2xpc3QpOgpAQCAtMTk2LDcgKzE5Nyw3IEBAIGNsYXNzIFRlc3RDb25maWd1cmF0aW9uQ29u
dmVydGVyKG9iamVjdCkKIAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBpbnRlcnNlY3RfY29t
YmluYXRpb24oY2xzLCBjb21iaW5hdGlvbik6Ci0gICAgICAgIHJldHVybiByZWR1Y2Uoc2V0Lmlu
dGVyc2VjdGlvbiwgW3NldChzcGVjaWZpZXJzKSBmb3Igc3BlY2lmaWVycyBpbiBjb21iaW5hdGlv
bl0pCisgICAgICAgIHJldHVybiBmdW5jdG9vbHMucmVkdWNlKHNldC5pbnRlcnNlY3Rpb24sIFtz
ZXQoc3BlY2lmaWVycykgZm9yIHNwZWNpZmllcnMgaW4gY29tYmluYXRpb25dKQogCiAgICAgQGNs
YXNzbWV0aG9kCiAgICAgZGVmIHN5bW1ldHJpY19kaWZmZXJlbmNlKGNscywgaXRlcmFibGUpOgpJ
bmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhw
ZWN0YXRpb25zLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weQkocmV2aXNpb24gMjUxODk5KQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRp
b25zLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw5IEBAIGZvciBsYXlvdXQgdGVzdHMu
CiAKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgcmUKK2ltcG9ydCBzeXMKIAorZnJvbSB3ZWJraXRw
eS5jb21tb24uaXRlcmF0aW9uX2NvbXBhdGliaWxpdHkgaW1wb3J0IGl0ZXJpdGVtcywgaXRlcnZh
bHVlcwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzLnRlc3RfY29uZmlndXJhdGlv
biBpbXBvcnQgVGVzdENvbmZpZ3VyYXRpb25Db252ZXJ0ZXIKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0
TG9nZ2VyKF9fbmFtZV9fKQpAQCAtNTY2LDcgKzU2OCw3IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlv
bnNNb2RlbChvYmplY3QpOgogCiAgICAgICAgICMgV2UgbXVzdCBub3QgaGF2ZSBhbiBpbmRleCBv
biB0aGlzIG1vZGlmaWVyLgogICAgICAgICBtYXRjaGluZ190ZXN0cyA9IHNldCgpCi0gICAgICAg
IGZvciB0ZXN0LCBtb2RpZmllcnMgaW4gc2VsZi5fdGVzdF90b19tb2RpZmllcnMuaXRlcml0ZW1z
KCk6CisgICAgICAgIGZvciB0ZXN0LCBtb2RpZmllcnMgaW4gaXRlcml0ZW1zKHNlbGYuX3Rlc3Rf
dG9fbW9kaWZpZXJzKToKICAgICAgICAgICAgIGlmIGtleXdvcmQubG93ZXIoKSBpbiBtb2RpZmll
cnM6CiAgICAgICAgICAgICAgICAgbWF0Y2hpbmdfdGVzdHMuYWRkKHRlc3QpCiAgICAgICAgIHJl
dHVybiBtYXRjaGluZ190ZXN0cwpAQCAtNjk0LDcgKzY5Niw3IEBAIGNsYXNzIFRlc3RFeHBlY3Rh
dGlvbnNNb2RlbChvYmplY3QpOgogICAgICAgICBBcmdzOgogICAgICAgICAgIHRlc3Q6IHRlc3Qg
dG8gbG9vayBmb3IKICAgICAgICAgICBkaWN0OiBkaWN0IG9mIHNldHMgb2YgZmlsZXMiIiIKLSAg
ICAgICAgZm9yIHNldF9vZl90ZXN0cyBpbiBkaWN0X29mX3NldHNfb2ZfdGVzdHMuaXRlcnZhbHVl
cygpOgorICAgICAgICBmb3Igc2V0X29mX3Rlc3RzIGluIGl0ZXJ2YWx1ZXMoZGljdF9vZl9zZXRz
X29mX3Rlc3RzKToKICAgICAgICAgICAgIGlmIHRlc3QgaW4gc2V0X29mX3Rlc3RzOgogICAgICAg
ICAgICAgICAgIHNldF9vZl90ZXN0cy5yZW1vdmUodGVzdCkKIApAQCAtOTQ5LDIxICs5NTEsMjEg
QEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9ucyhvYmplY3QpOgogICAgIGRlZiBwYXJzZV9nZW5lcmlj
X2V4cGVjdGF0aW9ucyhzZWxmKToKICAgICAgICAgaWYgc2VsZi5fcG9ydC5wYXRoX3RvX2dlbmVy
aWNfdGVzdF9leHBlY3RhdGlvbnNfZmlsZSgpIGluIHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0Ogog
ICAgICAgICAgICAgaWYgc2VsZi5faW5jbHVkZV9nZW5lcmljOgotICAgICAgICAgICAgICAgIGV4
cGVjdGF0aW9ucyA9IHNlbGYuX3BhcnNlci5wYXJzZShzZWxmLl9leHBlY3RhdGlvbnNfZGljdC5r
ZXlzKClbc2VsZi5fZXhwZWN0YXRpb25zX2RpY3RfaW5kZXhdLCBzZWxmLl9leHBlY3RhdGlvbnNf
ZGljdC52YWx1ZXMoKVtzZWxmLl9leHBlY3RhdGlvbnNfZGljdF9pbmRleF0pCisgICAgICAgICAg
ICAgICAgZXhwZWN0YXRpb25zID0gc2VsZi5fcGFyc2VyLnBhcnNlKGxpc3Qoc2VsZi5fZXhwZWN0
YXRpb25zX2RpY3Qua2V5cygpKVtzZWxmLl9leHBlY3RhdGlvbnNfZGljdF9pbmRleF0sIGxpc3Qo
c2VsZi5fZXhwZWN0YXRpb25zX2RpY3QudmFsdWVzKCkpW3NlbGYuX2V4cGVjdGF0aW9uc19kaWN0
X2luZGV4XSkKICAgICAgICAgICAgICAgICBzZWxmLl9hZGRfZXhwZWN0YXRpb25zKGV4cGVjdGF0
aW9ucykKICAgICAgICAgICAgICAgICBzZWxmLl9leHBlY3RhdGlvbnMgKz0gZXhwZWN0YXRpb25z
CiAgICAgICAgICAgICBzZWxmLl9leHBlY3RhdGlvbnNfZGljdF9pbmRleCArPSAxCiAKICAgICBk
ZWYgcGFyc2VfZGVmYXVsdF9wb3J0X2V4cGVjdGF0aW9ucyhzZWxmKToKICAgICAgICAgaWYgbGVu
KHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0KSA+IHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0X2luZGV4
OgotICAgICAgICAgICAgZXhwZWN0YXRpb25zID0gc2VsZi5fcGFyc2VyLnBhcnNlKHNlbGYuX2V4
cGVjdGF0aW9uc19kaWN0LmtleXMoKVtzZWxmLl9leHBlY3RhdGlvbnNfZGljdF9pbmRleF0sIHNl
bGYuX2V4cGVjdGF0aW9uc19kaWN0LnZhbHVlcygpW3NlbGYuX2V4cGVjdGF0aW9uc19kaWN0X2lu
ZGV4XSkKKyAgICAgICAgICAgIGV4cGVjdGF0aW9ucyA9IHNlbGYuX3BhcnNlci5wYXJzZShsaXN0
KHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0LmtleXMoKSlbc2VsZi5fZXhwZWN0YXRpb25zX2RpY3Rf
aW5kZXhdLCBsaXN0KHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0LnZhbHVlcygpKVtzZWxmLl9leHBl
Y3RhdGlvbnNfZGljdF9pbmRleF0pCiAgICAgICAgICAgICBzZWxmLl9hZGRfZXhwZWN0YXRpb25z
KGV4cGVjdGF0aW9ucykKICAgICAgICAgICAgIHNlbGYuX2V4cGVjdGF0aW9ucyArPSBleHBlY3Rh
dGlvbnMKICAgICAgICAgICAgIHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0X2luZGV4ICs9IDEKIAog
ICAgIGRlZiBwYXJzZV9vdmVycmlkZV9leHBlY3RhdGlvbnMoc2VsZik6CiAgICAgICAgIHdoaWxl
IGxlbihzZWxmLl9leHBlY3RhdGlvbnNfZGljdCkgPiBzZWxmLl9leHBlY3RhdGlvbnNfZGljdF9p
bmRleCBhbmQgc2VsZi5faW5jbHVkZV9vdmVycmlkZXM6Ci0gICAgICAgICAgICBleHBlY3RhdGlv
bnMgPSBzZWxmLl9wYXJzZXIucGFyc2Uoc2VsZi5fZXhwZWN0YXRpb25zX2RpY3Qua2V5cygpW3Nl
bGYuX2V4cGVjdGF0aW9uc19kaWN0X2luZGV4XSwgc2VsZi5fZXhwZWN0YXRpb25zX2RpY3QudmFs
dWVzKClbc2VsZi5fZXhwZWN0YXRpb25zX2RpY3RfaW5kZXhdKQorICAgICAgICAgICAgZXhwZWN0
YXRpb25zID0gc2VsZi5fcGFyc2VyLnBhcnNlKGxpc3Qoc2VsZi5fZXhwZWN0YXRpb25zX2RpY3Qu
a2V5cygpKVtzZWxmLl9leHBlY3RhdGlvbnNfZGljdF9pbmRleF0sIGxpc3Qoc2VsZi5fZXhwZWN0
YXRpb25zX2RpY3QudmFsdWVzKCkpW3NlbGYuX2V4cGVjdGF0aW9uc19kaWN0X2luZGV4XSkKICAg
ICAgICAgICAgIHNlbGYuX2FkZF9leHBlY3RhdGlvbnMoZXhwZWN0YXRpb25zKQogICAgICAgICAg
ICAgc2VsZi5fZXhwZWN0YXRpb25zICs9IGV4cGVjdGF0aW9ucwogICAgICAgICAgICAgc2VsZi5f
ZXhwZWN0YXRpb25zX2RpY3RfaW5kZXggKz0gMQpAQCAtMTA1MCw3ICsxMDUyLDcgQEAgY2xhc3Mg
VGVzdEV4cGVjdGF0aW9ucyhvYmplY3QpOgogICAgICAgICBmb3IgZXhwZWN0YXRpb24gaW4gc2Vs
Zi5fZXhwZWN0YXRpb25zOgogICAgICAgICAgICAgaWYgZXhwZWN0YXRpb24ubmFtZSAhPSB0ZXN0
IG9yIGV4cGVjdGF0aW9uLmlzX2ZsYWt5KCkgb3Igbm90IGV4cGVjdGF0aW9uLnBhcnNlZF9leHBl
Y3RhdGlvbnM6CiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGlmIGl0ZXIo
ZXhwZWN0YXRpb24ucGFyc2VkX2V4cGVjdGF0aW9ucykubmV4dCgpIG5vdCBpbiAoRkFJTCwgSU1B
R0UpOgorICAgICAgICAgICAgaWYgbm90IGFueShbdmFsdWUgaW4gKEZBSUwsIElNQUdFKSBmb3Ig
dmFsdWUgaW4gZXhwZWN0YXRpb24ucGFyc2VkX2V4cGVjdGF0aW9uc10pOgogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBpZiB0ZXN0X2NvbmZpZ3VyYXRpb24gbm90IGluIGV4
cGVjdGF0aW9uLm1hdGNoaW5nX2NvbmZpZ3VyYXRpb25zOgogICAgICAgICAgICAgICAgIGNvbnRp
bnVlCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVz
dF9ydW5fcmVzdWx0cy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0cy5weQkocmV2aXNpb24gMjUxODk5KQor
KysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jl
c3VsdHMucHkJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDkgQEAKIGltcG9ydCBkYXRldGlt
ZQogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBzaWduYWwKK2ltcG9ydCBzeXMKIAorZnJvbSB3ZWJr
aXRweS5jb21tb24uaXRlcmF0aW9uX2NvbXBhdGliaWxpdHkgaW1wb3J0IGl0ZXJpdGVtcwogZnJv
bSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwog
ZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2ZhaWx1cmVzCiAK
QEAgLTIyMCwxNiArMjIyLDE2IEBAIGRlZiBzdW1tYXJpemVfcmVzdWx0cyhwb3J0X29iaiwgZXhw
ZWN0YXQKICAgICBudW1fbWlzc2luZyA9IDAKICAgICBudW1fcmVncmVzc2lvbnMgPSAwCiAgICAg
a2V5d29yZHMgPSB7fQotICAgIGZvciBleHBlY3RhdGlvbl9zdHJpbmcsIGV4cGVjdGF0aW9uX2Vu
dW0gaW4gdGVzdF9leHBlY3RhdGlvbnMuVGVzdEV4cGVjdGF0aW9ucy5FWFBFQ1RBVElPTlMuaXRl
cml0ZW1zKCk6CisgICAgZm9yIGV4cGVjdGF0aW9uX3N0cmluZywgZXhwZWN0YXRpb25fZW51bSBp
biB0ZXN0X2V4cGVjdGF0aW9ucy5UZXN0RXhwZWN0YXRpb25zLkVYUEVDVEFUSU9OUy5pdGVtcygp
OgogICAgICAgICBrZXl3b3Jkc1tleHBlY3RhdGlvbl9lbnVtXSA9IGV4cGVjdGF0aW9uX3N0cmlu
Zy51cHBlcigpCiAKLSAgICBmb3IgbW9kaWZpZXJfc3RyaW5nLCBtb2RpZmllcl9lbnVtIGluIHRl
c3RfZXhwZWN0YXRpb25zLlRlc3RFeHBlY3RhdGlvbnMuTU9ESUZJRVJTLml0ZXJpdGVtcygpOgor
ICAgIGZvciBtb2RpZmllcl9zdHJpbmcsIG1vZGlmaWVyX2VudW0gaW4gdGVzdF9leHBlY3RhdGlv
bnMuVGVzdEV4cGVjdGF0aW9ucy5NT0RJRklFUlMuaXRlbXMoKToKICAgICAgICAga2V5d29yZHNb
bW9kaWZpZXJfZW51bV0gPSBtb2RpZmllcl9zdHJpbmcudXBwZXIoKQogCiAgICAgdGVzdHMgPSB7
fQogICAgIG90aGVyX2NyYXNoZXNfZGljdCA9IHt9CiAKLSAgICBmb3IgdGVzdF9uYW1lLCByZXN1
bHQgaW4gaW5pdGlhbF9yZXN1bHRzLnJlc3VsdHNfYnlfbmFtZS5pdGVyaXRlbXMoKToKKyAgICBm
b3IgdGVzdF9uYW1lLCByZXN1bHQgaW4gaXRlcml0ZW1zKGluaXRpYWxfcmVzdWx0cy5yZXN1bHRz
X2J5X25hbWUpOgogICAgICAgICAjIE5vdGUgdGhhdCBpZiBhIHRlc3QgY3Jhc2hlZCBpbiB0aGUg
b3JpZ2luYWwgcnVuLCB3ZSBpZ25vcmUKICAgICAgICAgIyB3aGV0aGVyIG9yIG5vdCBpdCBjcmFz
aGVkIHdoZW4gd2UgcmV0cmllZCBpdCAoaWYgd2UgcmV0cmllZCBpdCksCiAgICAgICAgICMgYW5k
IGFsd2F5cyBjb25zaWRlciB0aGUgcmVzdWx0IG5vdCBmbGFreS4KQEAgLTIzOCw4ICsyNDAsOCBA
QCBkZWYgc3VtbWFyaXplX3Jlc3VsdHMocG9ydF9vYmosIGV4cGVjdGF0CiAgICAgICAgICMgV2Un
cmUgYmFzaWNhbGx5IHRyeWluZyB0byBmaW5kIHRoZSBmaXJzdCBub24tc2tpcCBleHBlY3RhdGlv
biwgYW5kIHVzZSB0aGF0IGV4cGVjdGF0aW9uIG9iamVjdCBmb3IgdGhlIHJlbWFpbmRlciBvZiB0
aGUgbG9vcC4KICAgICAgICAgIyBUaGlzIHdvcmtzIGJlY2F1c2UgdGVzdHMgYXJlIHJ1biBvbiB0
aGUgZmlyc3QgZGV2aWNlIHR5cGUgd2hpY2ggd29uJ3Qgc2tpcCB0aGVtLCByZWdhcmRsZXNzIG9m
IG90aGVyIGV4cGVjdGF0aW9ucywgYW5kIG5ldmVyIHJlLXJ1bi4KICAgICAgICAgZXhwZWN0ZWQg
PSAnU0tJUCcKLSAgICAgICAgZXhwZWN0YXRpb25zID0gZXhwZWN0YXRpb25zX2J5X3R5cGUudmFs
dWVzKClbMF0KLSAgICAgICAgZm9yIGVsZW1lbnQgaW4gZXhwZWN0YXRpb25zX2J5X3R5cGUuaXRl
cnZhbHVlcygpOgorICAgICAgICBleHBlY3RhdGlvbnMgPSBsaXN0KGV4cGVjdGF0aW9uc19ieV90
eXBlLnZhbHVlcygpKVswXQorICAgICAgICBmb3IgZWxlbWVudCBpbiBleHBlY3RhdGlvbnNfYnlf
dHlwZS52YWx1ZXMoKToKICAgICAgICAgICAgIHRlc3RfZXhwZWN0YXRpb24gPSBlbGVtZW50LmZp
bHRlcmVkX2V4cGVjdGF0aW9uc19mb3JfdGVzdCh0ZXN0X25hbWUsIHBpeGVsX3Rlc3RzX2VuYWJs
ZWQsIHBvcnRfb2JqLl9vcHRpb25zLndvcmxkX2xlYWtzKQogICAgICAgICAgICAgZXhwZWN0ZWQg
PSBlbGVtZW50Lm1vZGVsKCkuZXhwZWN0YXRpb25zX3RvX3N0cmluZyh0ZXN0X2V4cGVjdGF0aW9u
KQogICAgICAgICAgICAgaWYgZXhwZWN0ZWQgIT0gJ1NLSVAnOgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>382658</attachid>
            <date>2019-11-01 17:08:13 -0700</date>
            <delta_ts>2019-11-01 18:17:17 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-203702-20191101170812.patch</filename>
            <type>text/plain</type>
            <size>12692</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1MTk1NSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI3IEBACisyMDE5LTExLTAxICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBQeXRob24gMzogQWRkIHN1cHBvcnQgaW4gd2Via2l0cHkubGF5b3V0X3Rl
c3RzLm1vZGVsCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDM3MDIKKworICAgICAgICBSZXZpZXdlZCBieSBTdGVwaGFuaWUgTGV3aXMuCisKKyAgICAg
ICAgKiBTY3JpcHRzL3Rlc3Qtd2Via2l0cHktcHl0aG9uMzogQWRkIHdlYmtpdHB5LmxheW91dF90
ZXN0cy5tb2RlbC4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2Rl
bHMvdGVzdF9jb25maWd1cmF0aW9uLnB5OgorICAgICAgICAoU3BlY2lmaWVyU29ydGVyLnNvcnRf
c3BlY2lmaWVycyk6IENvbnZlcnQgaXRlcmF0b3IgdG8gbGlzdC4KKyAgICAgICAgKFRlc3RDb25m
aWd1cmF0aW9uQ29udmVydGVyLnRvX2NvbmZpZ19zZXQpOiBVc2UgcmVkdWNlIGZyb20gZnVuY3Rv
cnMuCisgICAgICAgIChUZXN0Q29uZmlndXJhdGlvbkNvbnZlcnRlci5pbnRlcnNlY3RfY29tYmlu
YXRpb24pOiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9t
b2RlbHMvdGVzdF9leHBlY3RhdGlvbnMucHk6CisgICAgICAgIChUZXN0RXhwZWN0YXRpb25zTW9k
ZWwuZ2V0X3Rlc3Rfc2V0X2Zvcl9rZXl3b3JkKTogVXNlIGl0ZXJhdG9ycyBpbiBib3RoIFB5dGhv
biAyCisgICAgICAgIGFuZCBQeXRob24gMy4KKyAgICAgICAgKFRlc3RFeHBlY3RhdGlvbnNNb2Rl
bC5fcmVtb3ZlX2Zyb21fc2V0cyk6IERpdHRvLgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9ucy5w
YXJzZV9nZW5lcmljX2V4cGVjdGF0aW9ucyk6IENvdmVydCBpdGVyYXRvcnMgdG8gbGlzdHMgZm9y
IGluZGV4aW5nLgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9ucy5wYXJzZV9kZWZhdWx0X3BvcnRf
ZXhwZWN0YXRpb25zKTogRGl0dG8uCisgICAgICAgIChUZXN0RXhwZWN0YXRpb25zLnBhcnNlX292
ZXJyaWRlX2V4cGVjdGF0aW9ucyk6IERpdHRvLgorICAgICAgICAoVGVzdEV4cGVjdGF0aW9ucy5y
ZW1vdmVfY29uZmlndXJhdGlvbl9mcm9tX3Rlc3QpOiBVc2UgYW55IGluc3RlYWQgb2YganVzdCBj
aGVja2luZyB0aGUKKyAgICAgICAgZmlyc3QgZWxlbWVudCBpbiB0aGUgc2V0LgorICAgICAgICAq
IFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X3J1bl9yZXN1bHRzLnB5
OgorICAgICAgICAoc3VtbWFyaXplX3Jlc3VsdHMpOiBVc2UgaXRlbXMgaW5zdGVhZCBvZiBpdGVy
aXRlbXMuCisKIDIwMTktMTEtMDEgIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29t
PgogCiAgICAgICAgIFB5dGhvbiAzOiBBZGQgc3VwcG9ydCBpbiB3ZWJraXRweS5jb21tb24KSW5k
ZXg6IFRvb2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweS1weXRob24zCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1NjcmlwdHMvdGVzdC13ZWJraXRweS1weXRob24zCShyZXZpc2lvbiAyNTE5NTUpCisrKyBU
b29scy9TY3JpcHRzL3Rlc3Qtd2Via2l0cHktcHl0aG9uMwkod29ya2luZyBjb3B5KQpAQCAtMzUs
NiArMzUsNyBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi5jaGVja291dC5zY20uc2NtX3VuCiAKIFBZ
VEhPTjNfQ09NUEFUSUJMRV9ESVJFQ1RPUklFUyA9IFsKICAgJ3dlYmtpdHB5LmNvbW1vbicsCisg
ICd3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzJywKICAgJ3dlYmtpdHB5LnBvcnQnLAogICAn
d2Via2l0cHkucmVzdWx0cycsCiAgICd3ZWJraXRweS54Y29kZScsCkluZGV4OiBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L2NvbW1vbi9pdGVyYXRpb25fY29tcGF0aWJpbGl0eS5weQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9pdGVyYXRpb25fY29tcGF0aWJpbGl0
eS5weQkobm9uZXhpc3RlbnQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9pdGVy
YXRpb25fY29tcGF0aWJpbGl0eS5weQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ0IEBACisj
IENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisj
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFIEFSRQorIyBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRF
IEdPT0RTIE9SCisjIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisj
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBzeXMKKworCitk
ZWYgaXRlcml0ZW1zKGRpY3Rpb25hcnkpOgorICAgIGlmIHN5cy52ZXJzaW9uX2luZm8gPiAoMywg
MCk6CisgICAgICAgIHJldHVybiBkaWN0aW9uYXJ5Lml0ZW1zKCkKKyAgICBlbHNlOgorICAgICAg
ICByZXR1cm4gZGljdGlvbmFyeS5pdGVyaXRlbXMoKQorCisKK2RlZiBpdGVya2V5cyhkaWN0aW9u
YXJ5KToKKyAgICBpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsIDApOgorICAgICAgICByZXR1cm4g
ZGljdGlvbmFyeS5rZXlzKCkKKyAgICBlbHNlOgorICAgICAgICByZXR1cm4gZGljdGlvbmFyeS5p
dGVya2V5cygpCisKKworZGVmIGl0ZXJ2YWx1ZXMoZGljdGlvbmFyeSk6CisgICAgaWYgc3lzLnZl
cnNpb25faW5mbyA+ICgzLCAwKToKKyAgICAgICAgcmV0dXJuIGRpY3Rpb25hcnkudmFsdWVzKCkK
KyAgICBlbHNlOgorICAgICAgICByZXR1cm4gZGljdGlvbmFyeS5pdGVydmFsdWVzKCkKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL21vZGVscy90ZXN0X2NvbmZpZ3Vy
YXRpb24ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvbW9kZWxzL3Rlc3RfY29uZmlndXJhdGlvbi5weQkocmV2aXNpb24gMjUxOTU1KQorKysgVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfY29uZmlndXJhdGlv
bi5weQkod29ya2luZyBjb3B5KQpAQCAtMjYsNiArMjYsNyBAQAogIyAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKICMg
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KIAoraW1wb3J0IGZ1bmN0b29scwogaW1wb3J0IGl0ZXJ0b29scwogCiAKQEAg
LTk3LDcgKzk4LDcgQEAgY2xhc3MgU3BlY2lmaWVyU29ydGVyKG9iamVjdCk6CiAgICAgICAgIHJl
dHVybiBzZWxmLl9zcGVjaWZpZXJfdG9fY2F0ZWdvcnkuZ2V0KHNwZWNpZmllcikKIAogICAgIGRl
ZiBzb3J0X3NwZWNpZmllcnMoc2VsZiwgc3BlY2lmaWVycyk6Ci0gICAgICAgIGNhdGVnb3J5X3Ns
b3RzID0gbWFwKGxhbWJkYSB4OiBbXSwgVGVzdENvbmZpZ3VyYXRpb24uY2F0ZWdvcnlfb3JkZXIo
KSkKKyAgICAgICAgY2F0ZWdvcnlfc2xvdHMgPSBsaXN0KG1hcChsYW1iZGEgeDogW10sIFRlc3RD
b25maWd1cmF0aW9uLmNhdGVnb3J5X29yZGVyKCkpKQogICAgICAgICBmb3Igc3BlY2lmaWVyIGlu
IHNwZWNpZmllcnM6CiAgICAgICAgICAgICBjYXRlZ29yeV9zbG90c1tzZWxmLnNwZWNpZmllcl9w
cmlvcml0eShzcGVjaWZpZXIpXS5hcHBlbmQoc3BlY2lmaWVyKQogCkBAIC0xMDUsNyArMTA2LDcg
QEAgY2xhc3MgU3BlY2lmaWVyU29ydGVyKG9iamVjdCk6CiAgICAgICAgICAgICBzcGVjaWZpZXJf
bGlzdC5zb3J0KCkKICAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyBzcGVjaWZpZXJfbGlzdAog
Ci0gICAgICAgIHJldHVybiByZWR1Y2Uoc29ydF9hbmRfcmV0dXJuLCBjYXRlZ29yeV9zbG90cywg
W10pCisgICAgICAgIHJldHVybiBmdW5jdG9vbHMucmVkdWNlKHNvcnRfYW5kX3JldHVybiwgY2F0
ZWdvcnlfc2xvdHMsIFtdKQogCiAKIGNsYXNzIFRlc3RDb25maWd1cmF0aW9uQ29udmVydGVyKG9i
amVjdCk6CkBAIC0xNjIsNyArMTYzLDcgQEAgY2xhc3MgVGVzdENvbmZpZ3VyYXRpb25Db252ZXJ0
ZXIob2JqZWN0KQogICAgICAgICAgICAgICAgIGNhdGVnb3J5ID0gc2VsZi5fc3BlY2lmaWVyX3Nv
cnRlci5jYXRlZ29yeV9mb3Jfc3BlY2lmaWVyKGV4cGFuZGVkX3NwZWNpZmllcikKICAgICAgICAg
ICAgICAgICBtYXRjaGluZ19zZXRzLnNldGRlZmF1bHQoY2F0ZWdvcnksIHNldCgpKS51cGRhdGUo
Y29uZmlndXJhdGlvbnMpCiAKLSAgICAgICAgcmV0dXJuIHJlZHVjZShzZXQuaW50ZXJzZWN0aW9u
LCBtYXRjaGluZ19zZXRzLnZhbHVlcygpKQorICAgICAgICByZXR1cm4gZnVuY3Rvb2xzLnJlZHVj
ZShzZXQuaW50ZXJzZWN0aW9uLCBtYXRjaGluZ19zZXRzLnZhbHVlcygpKQogCiAgICAgQGNsYXNz
bWV0aG9kCiAgICAgZGVmIGNvbGxhcHNlX21hY3JvcyhjbHMsIG1hY3Jvc19kaWN0LCBzcGVjaWZp
ZXJzX2xpc3QpOgpAQCAtMTk2LDcgKzE5Nyw3IEBAIGNsYXNzIFRlc3RDb25maWd1cmF0aW9uQ29u
dmVydGVyKG9iamVjdCkKIAogICAgIEBjbGFzc21ldGhvZAogICAgIGRlZiBpbnRlcnNlY3RfY29t
YmluYXRpb24oY2xzLCBjb21iaW5hdGlvbik6Ci0gICAgICAgIHJldHVybiByZWR1Y2Uoc2V0Lmlu
dGVyc2VjdGlvbiwgW3NldChzcGVjaWZpZXJzKSBmb3Igc3BlY2lmaWVycyBpbiBjb21iaW5hdGlv
bl0pCisgICAgICAgIHJldHVybiBmdW5jdG9vbHMucmVkdWNlKHNldC5pbnRlcnNlY3Rpb24sIFtz
ZXQoc3BlY2lmaWVycykgZm9yIHNwZWNpZmllcnMgaW4gY29tYmluYXRpb25dKQogCiAgICAgQGNs
YXNzbWV0aG9kCiAgICAgZGVmIHN5bW1ldHJpY19kaWZmZXJlbmNlKGNscywgaXRlcmFibGUpOgpJ
bmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhw
ZWN0YXRpb25zLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0
X3Rlc3RzL21vZGVscy90ZXN0X2V4cGVjdGF0aW9ucy5weQkocmV2aXNpb24gMjUxOTU1KQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfZXhwZWN0YXRp
b25zLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw5IEBAIGZvciBsYXlvdXQgdGVzdHMu
CiAKIGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgcmUKK2ltcG9ydCBzeXMKIAorZnJvbSB3ZWJraXRw
eS5jb21tb24uaXRlcmF0aW9uX2NvbXBhdGliaWxpdHkgaW1wb3J0IGl0ZXJpdGVtcywgaXRlcnZh
bHVlcwogZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzLnRlc3RfY29uZmlndXJhdGlv
biBpbXBvcnQgVGVzdENvbmZpZ3VyYXRpb25Db252ZXJ0ZXIKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0
TG9nZ2VyKF9fbmFtZV9fKQpAQCAtNTY2LDcgKzU2OCw3IEBAIGNsYXNzIFRlc3RFeHBlY3RhdGlv
bnNNb2RlbChvYmplY3QpOgogCiAgICAgICAgICMgV2UgbXVzdCBub3QgaGF2ZSBhbiBpbmRleCBv
biB0aGlzIG1vZGlmaWVyLgogICAgICAgICBtYXRjaGluZ190ZXN0cyA9IHNldCgpCi0gICAgICAg
IGZvciB0ZXN0LCBtb2RpZmllcnMgaW4gc2VsZi5fdGVzdF90b19tb2RpZmllcnMuaXRlcml0ZW1z
KCk6CisgICAgICAgIGZvciB0ZXN0LCBtb2RpZmllcnMgaW4gaXRlcml0ZW1zKHNlbGYuX3Rlc3Rf
dG9fbW9kaWZpZXJzKToKICAgICAgICAgICAgIGlmIGtleXdvcmQubG93ZXIoKSBpbiBtb2RpZmll
cnM6CiAgICAgICAgICAgICAgICAgbWF0Y2hpbmdfdGVzdHMuYWRkKHRlc3QpCiAgICAgICAgIHJl
dHVybiBtYXRjaGluZ190ZXN0cwpAQCAtNjk0LDcgKzY5Niw3IEBAIGNsYXNzIFRlc3RFeHBlY3Rh
dGlvbnNNb2RlbChvYmplY3QpOgogICAgICAgICBBcmdzOgogICAgICAgICAgIHRlc3Q6IHRlc3Qg
dG8gbG9vayBmb3IKICAgICAgICAgICBkaWN0OiBkaWN0IG9mIHNldHMgb2YgZmlsZXMiIiIKLSAg
ICAgICAgZm9yIHNldF9vZl90ZXN0cyBpbiBkaWN0X29mX3NldHNfb2ZfdGVzdHMuaXRlcnZhbHVl
cygpOgorICAgICAgICBmb3Igc2V0X29mX3Rlc3RzIGluIGl0ZXJ2YWx1ZXMoZGljdF9vZl9zZXRz
X29mX3Rlc3RzKToKICAgICAgICAgICAgIGlmIHRlc3QgaW4gc2V0X29mX3Rlc3RzOgogICAgICAg
ICAgICAgICAgIHNldF9vZl90ZXN0cy5yZW1vdmUodGVzdCkKIApAQCAtOTQ5LDIxICs5NTEsMjEg
QEAgY2xhc3MgVGVzdEV4cGVjdGF0aW9ucyhvYmplY3QpOgogICAgIGRlZiBwYXJzZV9nZW5lcmlj
X2V4cGVjdGF0aW9ucyhzZWxmKToKICAgICAgICAgaWYgc2VsZi5fcG9ydC5wYXRoX3RvX2dlbmVy
aWNfdGVzdF9leHBlY3RhdGlvbnNfZmlsZSgpIGluIHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0Ogog
ICAgICAgICAgICAgaWYgc2VsZi5faW5jbHVkZV9nZW5lcmljOgotICAgICAgICAgICAgICAgIGV4
cGVjdGF0aW9ucyA9IHNlbGYuX3BhcnNlci5wYXJzZShzZWxmLl9leHBlY3RhdGlvbnNfZGljdC5r
ZXlzKClbc2VsZi5fZXhwZWN0YXRpb25zX2RpY3RfaW5kZXhdLCBzZWxmLl9leHBlY3RhdGlvbnNf
ZGljdC52YWx1ZXMoKVtzZWxmLl9leHBlY3RhdGlvbnNfZGljdF9pbmRleF0pCisgICAgICAgICAg
ICAgICAgZXhwZWN0YXRpb25zID0gc2VsZi5fcGFyc2VyLnBhcnNlKGxpc3Qoc2VsZi5fZXhwZWN0
YXRpb25zX2RpY3Qua2V5cygpKVtzZWxmLl9leHBlY3RhdGlvbnNfZGljdF9pbmRleF0sIGxpc3Qo
c2VsZi5fZXhwZWN0YXRpb25zX2RpY3QudmFsdWVzKCkpW3NlbGYuX2V4cGVjdGF0aW9uc19kaWN0
X2luZGV4XSkKICAgICAgICAgICAgICAgICBzZWxmLl9hZGRfZXhwZWN0YXRpb25zKGV4cGVjdGF0
aW9ucykKICAgICAgICAgICAgICAgICBzZWxmLl9leHBlY3RhdGlvbnMgKz0gZXhwZWN0YXRpb25z
CiAgICAgICAgICAgICBzZWxmLl9leHBlY3RhdGlvbnNfZGljdF9pbmRleCArPSAxCiAKICAgICBk
ZWYgcGFyc2VfZGVmYXVsdF9wb3J0X2V4cGVjdGF0aW9ucyhzZWxmKToKICAgICAgICAgaWYgbGVu
KHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0KSA+IHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0X2luZGV4
OgotICAgICAgICAgICAgZXhwZWN0YXRpb25zID0gc2VsZi5fcGFyc2VyLnBhcnNlKHNlbGYuX2V4
cGVjdGF0aW9uc19kaWN0LmtleXMoKVtzZWxmLl9leHBlY3RhdGlvbnNfZGljdF9pbmRleF0sIHNl
bGYuX2V4cGVjdGF0aW9uc19kaWN0LnZhbHVlcygpW3NlbGYuX2V4cGVjdGF0aW9uc19kaWN0X2lu
ZGV4XSkKKyAgICAgICAgICAgIGV4cGVjdGF0aW9ucyA9IHNlbGYuX3BhcnNlci5wYXJzZShsaXN0
KHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0LmtleXMoKSlbc2VsZi5fZXhwZWN0YXRpb25zX2RpY3Rf
aW5kZXhdLCBsaXN0KHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0LnZhbHVlcygpKVtzZWxmLl9leHBl
Y3RhdGlvbnNfZGljdF9pbmRleF0pCiAgICAgICAgICAgICBzZWxmLl9hZGRfZXhwZWN0YXRpb25z
KGV4cGVjdGF0aW9ucykKICAgICAgICAgICAgIHNlbGYuX2V4cGVjdGF0aW9ucyArPSBleHBlY3Rh
dGlvbnMKICAgICAgICAgICAgIHNlbGYuX2V4cGVjdGF0aW9uc19kaWN0X2luZGV4ICs9IDEKIAog
ICAgIGRlZiBwYXJzZV9vdmVycmlkZV9leHBlY3RhdGlvbnMoc2VsZik6CiAgICAgICAgIHdoaWxl
IGxlbihzZWxmLl9leHBlY3RhdGlvbnNfZGljdCkgPiBzZWxmLl9leHBlY3RhdGlvbnNfZGljdF9p
bmRleCBhbmQgc2VsZi5faW5jbHVkZV9vdmVycmlkZXM6Ci0gICAgICAgICAgICBleHBlY3RhdGlv
bnMgPSBzZWxmLl9wYXJzZXIucGFyc2Uoc2VsZi5fZXhwZWN0YXRpb25zX2RpY3Qua2V5cygpW3Nl
bGYuX2V4cGVjdGF0aW9uc19kaWN0X2luZGV4XSwgc2VsZi5fZXhwZWN0YXRpb25zX2RpY3QudmFs
dWVzKClbc2VsZi5fZXhwZWN0YXRpb25zX2RpY3RfaW5kZXhdKQorICAgICAgICAgICAgZXhwZWN0
YXRpb25zID0gc2VsZi5fcGFyc2VyLnBhcnNlKGxpc3Qoc2VsZi5fZXhwZWN0YXRpb25zX2RpY3Qu
a2V5cygpKVtzZWxmLl9leHBlY3RhdGlvbnNfZGljdF9pbmRleF0sIGxpc3Qoc2VsZi5fZXhwZWN0
YXRpb25zX2RpY3QudmFsdWVzKCkpW3NlbGYuX2V4cGVjdGF0aW9uc19kaWN0X2luZGV4XSkKICAg
ICAgICAgICAgIHNlbGYuX2FkZF9leHBlY3RhdGlvbnMoZXhwZWN0YXRpb25zKQogICAgICAgICAg
ICAgc2VsZi5fZXhwZWN0YXRpb25zICs9IGV4cGVjdGF0aW9ucwogICAgICAgICAgICAgc2VsZi5f
ZXhwZWN0YXRpb25zX2RpY3RfaW5kZXggKz0gMQpAQCAtMTA1MCw3ICsxMDUyLDcgQEAgY2xhc3Mg
VGVzdEV4cGVjdGF0aW9ucyhvYmplY3QpOgogICAgICAgICBmb3IgZXhwZWN0YXRpb24gaW4gc2Vs
Zi5fZXhwZWN0YXRpb25zOgogICAgICAgICAgICAgaWYgZXhwZWN0YXRpb24ubmFtZSAhPSB0ZXN0
IG9yIGV4cGVjdGF0aW9uLmlzX2ZsYWt5KCkgb3Igbm90IGV4cGVjdGF0aW9uLnBhcnNlZF9leHBl
Y3RhdGlvbnM6CiAgICAgICAgICAgICAgICAgY29udGludWUKLSAgICAgICAgICAgIGlmIGl0ZXIo
ZXhwZWN0YXRpb24ucGFyc2VkX2V4cGVjdGF0aW9ucykubmV4dCgpIG5vdCBpbiAoRkFJTCwgSU1B
R0UpOgorICAgICAgICAgICAgaWYgbm90IGFueShbdmFsdWUgaW4gKEZBSUwsIElNQUdFKSBmb3Ig
dmFsdWUgaW4gZXhwZWN0YXRpb24ucGFyc2VkX2V4cGVjdGF0aW9uc10pOgogICAgICAgICAgICAg
ICAgIGNvbnRpbnVlCiAgICAgICAgICAgICBpZiB0ZXN0X2NvbmZpZ3VyYXRpb24gbm90IGluIGV4
cGVjdGF0aW9uLm1hdGNoaW5nX2NvbmZpZ3VyYXRpb25zOgogICAgICAgICAgICAgICAgIGNvbnRp
bnVlCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9tb2RlbHMvdGVz
dF9ydW5fcmVzdWx0cy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2xh
eW91dF90ZXN0cy9tb2RlbHMvdGVzdF9ydW5fcmVzdWx0cy5weQkocmV2aXNpb24gMjUxOTU1KQor
KysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvbW9kZWxzL3Rlc3RfcnVuX3Jl
c3VsdHMucHkJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDkgQEAKIGltcG9ydCBkYXRldGlt
ZQogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCBzaWduYWwKK2ltcG9ydCBzeXMKIAorZnJvbSB3ZWJr
aXRweS5jb21tb24uaXRlcmF0aW9uX2NvbXBhdGliaWxpdHkgaW1wb3J0IGl0ZXJpdGVtcwogZnJv
bSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2V4cGVjdGF0aW9ucwog
ZnJvbSB3ZWJraXRweS5sYXlvdXRfdGVzdHMubW9kZWxzIGltcG9ydCB0ZXN0X2ZhaWx1cmVzCiAK
QEAgLTIyMCwxNiArMjIyLDE2IEBAIGRlZiBzdW1tYXJpemVfcmVzdWx0cyhwb3J0X29iaiwgZXhw
ZWN0YXQKICAgICBudW1fbWlzc2luZyA9IDAKICAgICBudW1fcmVncmVzc2lvbnMgPSAwCiAgICAg
a2V5d29yZHMgPSB7fQotICAgIGZvciBleHBlY3RhdGlvbl9zdHJpbmcsIGV4cGVjdGF0aW9uX2Vu
dW0gaW4gdGVzdF9leHBlY3RhdGlvbnMuVGVzdEV4cGVjdGF0aW9ucy5FWFBFQ1RBVElPTlMuaXRl
cml0ZW1zKCk6CisgICAgZm9yIGV4cGVjdGF0aW9uX3N0cmluZywgZXhwZWN0YXRpb25fZW51bSBp
biB0ZXN0X2V4cGVjdGF0aW9ucy5UZXN0RXhwZWN0YXRpb25zLkVYUEVDVEFUSU9OUy5pdGVtcygp
OgogICAgICAgICBrZXl3b3Jkc1tleHBlY3RhdGlvbl9lbnVtXSA9IGV4cGVjdGF0aW9uX3N0cmlu
Zy51cHBlcigpCiAKLSAgICBmb3IgbW9kaWZpZXJfc3RyaW5nLCBtb2RpZmllcl9lbnVtIGluIHRl
c3RfZXhwZWN0YXRpb25zLlRlc3RFeHBlY3RhdGlvbnMuTU9ESUZJRVJTLml0ZXJpdGVtcygpOgor
ICAgIGZvciBtb2RpZmllcl9zdHJpbmcsIG1vZGlmaWVyX2VudW0gaW4gdGVzdF9leHBlY3RhdGlv
bnMuVGVzdEV4cGVjdGF0aW9ucy5NT0RJRklFUlMuaXRlbXMoKToKICAgICAgICAga2V5d29yZHNb
bW9kaWZpZXJfZW51bV0gPSBtb2RpZmllcl9zdHJpbmcudXBwZXIoKQogCiAgICAgdGVzdHMgPSB7
fQogICAgIG90aGVyX2NyYXNoZXNfZGljdCA9IHt9CiAKLSAgICBmb3IgdGVzdF9uYW1lLCByZXN1
bHQgaW4gaW5pdGlhbF9yZXN1bHRzLnJlc3VsdHNfYnlfbmFtZS5pdGVyaXRlbXMoKToKKyAgICBm
b3IgdGVzdF9uYW1lLCByZXN1bHQgaW4gaXRlcml0ZW1zKGluaXRpYWxfcmVzdWx0cy5yZXN1bHRz
X2J5X25hbWUpOgogICAgICAgICAjIE5vdGUgdGhhdCBpZiBhIHRlc3QgY3Jhc2hlZCBpbiB0aGUg
b3JpZ2luYWwgcnVuLCB3ZSBpZ25vcmUKICAgICAgICAgIyB3aGV0aGVyIG9yIG5vdCBpdCBjcmFz
aGVkIHdoZW4gd2UgcmV0cmllZCBpdCAoaWYgd2UgcmV0cmllZCBpdCksCiAgICAgICAgICMgYW5k
IGFsd2F5cyBjb25zaWRlciB0aGUgcmVzdWx0IG5vdCBmbGFreS4KQEAgLTIzOCw4ICsyNDAsOCBA
QCBkZWYgc3VtbWFyaXplX3Jlc3VsdHMocG9ydF9vYmosIGV4cGVjdGF0CiAgICAgICAgICMgV2Un
cmUgYmFzaWNhbGx5IHRyeWluZyB0byBmaW5kIHRoZSBmaXJzdCBub24tc2tpcCBleHBlY3RhdGlv
biwgYW5kIHVzZSB0aGF0IGV4cGVjdGF0aW9uIG9iamVjdCBmb3IgdGhlIHJlbWFpbmRlciBvZiB0
aGUgbG9vcC4KICAgICAgICAgIyBUaGlzIHdvcmtzIGJlY2F1c2UgdGVzdHMgYXJlIHJ1biBvbiB0
aGUgZmlyc3QgZGV2aWNlIHR5cGUgd2hpY2ggd29uJ3Qgc2tpcCB0aGVtLCByZWdhcmRsZXNzIG9m
IG90aGVyIGV4cGVjdGF0aW9ucywgYW5kIG5ldmVyIHJlLXJ1bi4KICAgICAgICAgZXhwZWN0ZWQg
PSAnU0tJUCcKLSAgICAgICAgZXhwZWN0YXRpb25zID0gZXhwZWN0YXRpb25zX2J5X3R5cGUudmFs
dWVzKClbMF0KLSAgICAgICAgZm9yIGVsZW1lbnQgaW4gZXhwZWN0YXRpb25zX2J5X3R5cGUuaXRl
cnZhbHVlcygpOgorICAgICAgICBleHBlY3RhdGlvbnMgPSBsaXN0KGV4cGVjdGF0aW9uc19ieV90
eXBlLnZhbHVlcygpKVswXQorICAgICAgICBmb3IgZWxlbWVudCBpbiBleHBlY3RhdGlvbnNfYnlf
dHlwZS52YWx1ZXMoKToKICAgICAgICAgICAgIHRlc3RfZXhwZWN0YXRpb24gPSBlbGVtZW50LmZp
bHRlcmVkX2V4cGVjdGF0aW9uc19mb3JfdGVzdCh0ZXN0X25hbWUsIHBpeGVsX3Rlc3RzX2VuYWJs
ZWQsIHBvcnRfb2JqLl9vcHRpb25zLndvcmxkX2xlYWtzKQogICAgICAgICAgICAgZXhwZWN0ZWQg
PSBlbGVtZW50Lm1vZGVsKCkuZXhwZWN0YXRpb25zX3RvX3N0cmluZyh0ZXN0X2V4cGVjdGF0aW9u
KQogICAgICAgICAgICAgaWYgZXhwZWN0ZWQgIT0gJ1NLSVAnOgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>