<?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>215419</bug_id>
          
          <creation_ts>2020-08-12 11:34:36 -0700</creation_ts>
          <short_desc>[webkitpy] Use webkitcorepy&apos;s auto installer for coverage</short_desc>
          <delta_ts>2020-08-13 15:14:20 -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=214950</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>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>1679778</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-12 11:34:36 -0700</bug_when>
    <thetext>Part of removing webkitpy&apos;s autoinstaller in favor of webkitcorepy&apos;s.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679780</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-12 11:35:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/66922400&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679786</commentid>
    <comment_count>2</comment_count>
      <attachid>406467</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-12 11:42:17 -0700</bug_when>
    <thetext>Created attachment 406467
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679808</commentid>
    <comment_count>3</comment_count>
      <attachid>406472</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-12 13:40:10 -0700</bug_when>
    <thetext>Created attachment 406472
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679814</commentid>
    <comment_count>4</comment_count>
      <attachid>406474</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-12 13:54:41 -0700</bug_when>
    <thetext>Created attachment 406474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679817</commentid>
    <comment_count>5</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-12 14:10:26 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #4)
&gt; Created attachment 406474 [details]
&gt; Patch

Didn&apos;t realize we had toml in the autoinstall list, then didn&apos;t realize that flatpack was using it directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679860</commentid>
    <comment_count>6</comment_count>
      <attachid>406474</attachid>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2020-08-12 15:50:55 -0700</bug_when>
    <thetext>Comment on attachment 406474
Patch

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

&gt; Tools/Scripts/webkitpy/__init__.py:31
&gt; +AutoInstall.register(Package(&apos;toml&apos;, Version(0, 10, 1)))

Still don&apos;t like not finding dependencies automatically.  Going to add a lot of extraneous code.  Why are we not using requires files?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679867</commentid>
    <comment_count>7</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-12 16:11:19 -0700</bug_when>
    <thetext>(In reply to Stephanie Lewis from comment #6)
&gt; Comment on attachment 406474 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=406474&amp;action=review
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/__init__.py:31
&gt; &gt; +AutoInstall.register(Package(&apos;toml&apos;, Version(0, 10, 1)))
&gt; 
&gt; Still don&apos;t like not finding dependencies automatically.  Going to add a lot
&gt; of extraneous code.  Why are we not using requires files?

The biggest issue with parsing requires files is that older bots will have different library versions installed than newer ones.

This isn&apos;t totally theoretical. We had an issue a few months back with certifi (a dependency of requests), where newer bots didn&apos;t have the issue, but older ones did (because they had an older version of certifi). The solution to this is to version lock the dependencies, which leaves us back at listing out dependencies and their versions. We could pick and choose the dependencies we version lock, but the issue with this is that we won&apos;t know which dependencies we need to version lock until we encounter a bug, and I feel like we&apos;d spend more time investigating such bugs then just version locking everything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679868</commentid>
    <comment_count>8</comment_count>
      <attachid>406474</attachid>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2020-08-12 16:12:48 -0700</bug_when>
    <thetext>Comment on attachment 406474
Patch

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

&gt;&gt;&gt; Tools/Scripts/webkitpy/__init__.py:31
&gt;&gt;&gt; +AutoInstall.register(Package(&apos;toml&apos;, Version(0, 10, 1)))
&gt;&gt; 
&gt;&gt; Still don&apos;t like not finding dependencies automatically.  Going to add a lot of extraneous code.  Why are we not using requires files?
&gt; 
&gt; The biggest issue with parsing requires files is that older bots will have different library versions installed than newer ones.
&gt; 
&gt; This isn&apos;t totally theoretical. We had an issue a few months back with certifi (a dependency of requests), where newer bots didn&apos;t have the issue, but older ones did (because they had an older version of certifi). The solution to this is to version lock the dependencies, which leaves us back at listing out dependencies and their versions. We could pick and choose the dependencies we version lock, but the issue with this is that we won&apos;t know which dependencies we need to version lock until we encounter a bug, and I feel like we&apos;d spend more time investigating such bugs then just version locking everything.

I thought requires files had version info?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679871</commentid>
    <comment_count>9</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-12 16:22:11 -0700</bug_when>
    <thetext>(In reply to Stephanie Lewis from comment #8)
&gt; Comment on attachment 406474 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=406474&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Tools/Scripts/webkitpy/__init__.py:31
&gt; &gt;&gt;&gt; +AutoInstall.register(Package(&apos;toml&apos;, Version(0, 10, 1)))
&gt; &gt;&gt; 
&gt; &gt;&gt; Still don&apos;t like not finding dependencies automatically.  Going to add a lot of extraneous code.  Why are we not using requires files?
&gt; &gt; 
&gt; &gt; The biggest issue with parsing requires files is that older bots will have different library versions installed than newer ones.
&gt; &gt; 
&gt; &gt; This isn&apos;t totally theoretical. We had an issue a few months back with certifi (a dependency of requests), where newer bots didn&apos;t have the issue, but older ones did (because they had an older version of certifi). The solution to this is to version lock the dependencies, which leaves us back at listing out dependencies and their versions. We could pick and choose the dependencies we version lock, but the issue with this is that we won&apos;t know which dependencies we need to version lock until we encounter a bug, and I feel like we&apos;d spend more time investigating such bugs then just version locking everything.
&gt; 
&gt; I thought requires files had version info?

They do, but most packages don&apos;t version lock their dependencies in requires files unless they need to. For example, requests specifies that certifi&gt;=2017.4.17.  Most package installers (including the AutoInstaller) will attempt to use the newest version of certifi that meets this requirement. Meaning that when a new version of certifi is released, older machines will continue to use the old version, while newer machines will install the latest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679878</commentid>
    <comment_count>10</comment_count>
      <attachid>406474</attachid>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2020-08-12 16:46:04 -0700</bug_when>
    <thetext>Comment on attachment 406474
Patch

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

&gt;&gt;&gt;&gt;&gt; Tools/Scripts/webkitpy/__init__.py:31
&gt;&gt;&gt;&gt;&gt; +AutoInstall.register(Package(&apos;toml&apos;, Version(0, 10, 1)))
&gt;&gt;&gt;&gt; 
&gt;&gt;&gt;&gt; Still don&apos;t like not finding dependencies automatically.  Going to add a lot of extraneous code.  Why are we not using requires files?
&gt;&gt;&gt; 
&gt;&gt;&gt; The biggest issue with parsing requires files is that older bots will have different library versions installed than newer ones.
&gt;&gt;&gt; 
&gt;&gt;&gt; This isn&apos;t totally theoretical. We had an issue a few months back with certifi (a dependency of requests), where newer bots didn&apos;t have the issue, but older ones did (because they had an older version of certifi). The solution to this is to version lock the dependencies, which leaves us back at listing out dependencies and their versions. We could pick and choose the dependencies we version lock, but the issue with this is that we won&apos;t know which dependencies we need to version lock until we encounter a bug, and I feel like we&apos;d spend more time investigating such bugs then just version locking everything.
&gt;&gt; 
&gt;&gt; I thought requires files had version info?
&gt; 
&gt; They do, but most packages don&apos;t version lock their dependencies in requires files unless they need to. For example, requests specifies that certifi&gt;=2017.4.17.  Most package installers (including the AutoInstaller) will attempt to use the newest version of certifi that meets this requirement. Meaning that when a new version of certifi is released, older machines will continue to use the old version, while newer machines will install the latest.

I&apos;m still not seeing the problem. If we require a newer recertifi then we should specify that in our requirements file.  I don&apos;t think we should be recreating our own version of it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679983</commentid>
    <comment_count>11</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-13 08:34:43 -0700</bug_when>
    <thetext>(In reply to Stephanie Lewis from comment #10)
&gt; ...
&gt; 
&gt; I&apos;m still not seeing the problem. If we require a newer recertifi then we
&gt; should specify that in our requirements file.  I don&apos;t think we should be
&gt; recreating our own version of it.

That&apos;s essentially what we&apos;re doing, but recall, webkitpy doesn&apos;t actually have a requirements.txt file, that job has always been handled by the autoinstaller.

My point with bringing up certifi is that regardless of how we&apos;re version locking libraries, I am of the opinion that we should be version locking every single dependency, meaning that (to bring up the original point) we should not make an attempt to automatically parse the requirements files of the libraries we&apos;re using, since we should be version locking all of those dependencies.

Kocsen also had an idea where we would create a script which would dump the current versions for every dependency a particular library. That wouldn&apos;t be hard to do, and might be the right solution to the &quot;we don&apos;t like figuring out what dependencies are&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679988</commentid>
    <comment_count>12</comment_count>
      <attachid>406474</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-13 08:40:25 -0700</bug_when>
    <thetext>Comment on attachment 406474
Patch

Bots were all happy with &lt;https://trac.webkit.org/changeset/265574/webkit&gt;, so landing this one too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1679989</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-13 08:42:43 -0700</bug_when>
    <thetext>Committed r265607: &lt;https://trac.webkit.org/changeset/265607&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406474.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680011</commentid>
    <comment_count>14</comment_count>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2020-08-13 10:15:49 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #11)
&gt; (In reply to Stephanie Lewis from comment #10)
&gt; &gt; ...
&gt; &gt; 
&gt; &gt; I&apos;m still not seeing the problem. If we require a newer recertifi then we
&gt; &gt; should specify that in our requirements file.  I don&apos;t think we should be
&gt; &gt; recreating our own version of it.
&gt; 
&gt; That&apos;s essentially what we&apos;re doing, but recall, webkitpy doesn&apos;t actually
&gt; have a requirements.txt file, that job has always been handled by the
&gt; autoinstaller.
&gt; 
&gt; My point with bringing up certifi is that regardless of how we&apos;re version
&gt; locking libraries, I am of the opinion that we should be version locking
&gt; every single dependency, meaning that (to bring up the original point) we
&gt; should not make an attempt to automatically parse the requirements files of
&gt; the libraries we&apos;re using, since we should be version locking all of those
&gt; dependencies.
&gt; 
&gt; Kocsen also had an idea where we would create a script which would dump the
&gt; current versions for every dependency a particular library. That wouldn&apos;t be
&gt; hard to do, and might be the right solution to the &quot;we don&apos;t like figuring
&gt; out what dependencies are&quot;

My point was that webkit should have a requirements.txt. We&apos;re creating our own syntax for specifying versions in a place that no one would look for with a syntax that would be custom to webkit.  I&apos;m still not sure we shouldn&apos;t just be using pip and in this case I don&apos;t see any benefit to having our own custom requirements syntax.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680075</commentid>
    <comment_count>15</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-13 14:28:29 -0700</bug_when>
    <thetext>(In reply to Stephanie Lewis from comment #14)
&gt; (In reply to Jonathan Bedard from comment #11)
&gt; &gt; ...
&gt; 
&gt; My point was that webkit should have a requirements.txt. We&apos;re creating our
&gt; own syntax for specifying versions in a place that no one would look for
&gt; with a syntax that would be custom to webkit.  I&apos;m still not sure we
&gt; shouldn&apos;t just be using pip and in this case I don&apos;t see any benefit to
&gt; having our own custom requirements syntax.

The issue with a raw requirements file (and pip) is that we would need some sort of setup script to configure one&apos;s development environment, and it&apos;s not even obvious where such a requirements script would live. Our python scripts wouldn&apos;t &quot;just work&quot;, the user would need to pre-install our dependencies.

It&apos;s also worth mentioning that pip itself may be broken on the platform being tested (as it is now on Big Sur). Even when pip isn&apos;t broken, we would have manage the version of pip we&apos;re using a different way than all our other packages, since pip is managing every other package&apos;s version.

Ultimately, I think the desire for a &quot;simpler&quot; approach using pip and requirements files ends up with a system that has many more moving parts than an autoinstaller, where every python dependency that isn&apos;t checked in is managed the same way and everything &quot;just works&quot; for our developers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680082</commentid>
    <comment_count>16</comment_count>
    <who name="Stephanie Lewis">slewis</who>
    <bug_when>2020-08-13 14:43:12 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #15)
&gt; (In reply to Stephanie Lewis from comment #14)
&gt; &gt; (In reply to Jonathan Bedard from comment #11)
&gt; &gt; &gt; ...
&gt; &gt; 
&gt; &gt; My point was that webkit should have a requirements.txt. We&apos;re creating our
&gt; &gt; own syntax for specifying versions in a place that no one would look for
&gt; &gt; with a syntax that would be custom to webkit.  I&apos;m still not sure we
&gt; &gt; shouldn&apos;t just be using pip and in this case I don&apos;t see any benefit to
&gt; &gt; having our own custom requirements syntax.
&gt; 
&gt; The issue with a raw requirements file (and pip) is that we would need some
&gt; sort of setup script to configure one&apos;s development environment, and it&apos;s
&gt; not even obvious where such a requirements script would live. Our python
&gt; scripts wouldn&apos;t &quot;just work&quot;, the user would need to pre-install our
&gt; dependencies.
&gt; 
&gt; It&apos;s also worth mentioning that pip itself may be broken on the platform
&gt; being tested (as it is now on Big Sur). Even when pip isn&apos;t broken, we would
&gt; have manage the version of pip we&apos;re using a different way than all our
&gt; other packages, since pip is managing every other package&apos;s version.
&gt; 
&gt; Ultimately, I think the desire for a &quot;simpler&quot; approach using pip and
&gt; requirements files ends up with a system that has many more moving parts
&gt; than an autoinstaller, where every python dependency that isn&apos;t checked in
&gt; is managed the same way and everything &quot;just works&quot; for our developers

Thank you for being patient to explain all this. That description seems to me like a reasonable reason not to use pip but it&apos;s still not clear to me why we wouldn&apos;t specify our dependencies in a requirement file and have the autoinstaller consume that rather than come up with our workflow for specifying dependencies</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680097</commentid>
    <comment_count>17</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-13 15:14:20 -0700</bug_when>
    <thetext>(In reply to Stephanie Lewis from comment #16)
&gt; (In reply to Jonathan Bedard from comment #15)
&gt; &gt; ...
&gt; 
&gt; Thank you for being patient to explain all this. That description seems to
&gt; me like a reasonable reason not to use pip but it&apos;s still not clear to me
&gt; why we wouldn&apos;t specify our dependencies in a requirement file and have the
&gt; autoinstaller consume that rather than come up with our workflow for
&gt; specifying dependencies

Would be fine with that, although I need to familiarize myself with the syntax of requirement files when we have complicated things to say (for example, &quot;if I&apos;m on Windows, I want x, version, otherwise I want y version). I know this is possible, at least to some extent, I just don&apos;t know the syntax.

Although they&apos;re non-standard, I figured that whenever anyone reads Autoinstall declarations, they can pretty easily figure out what is happening, although we are definitely sacrificing some of the &quot;why&quot;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406467</attachid>
            <date>2020-08-12 11:42:17 -0700</date>
            <delta_ts>2020-08-12 13:40:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215419-20200812114216.patch</filename>
            <type>text/plain</type>
            <size>4422</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NTU1NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIwIEBACisyMDIwLTA4LTEyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0cHldIFVzZSB3ZWJraXRjb3JlcHkncyBhdXRvIGluc3RhbGxl
ciBmb3IgY292ZXJhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNTQxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjY5MjI0MDA+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L19faW5pdF9fLnB5OiBBZGQgY292ZXJhZ2UgYW5kIGl0J3MgZGVwZW5kZW5jaWVzLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5OgorICAgICAgICAoVGVzdGVyLl9y
dW5fdGVzdHMpOiBTdG9wIHJlbHlpbmcgb24gd2Via2l0cHkncyBhdXRvaW5zdGFsbGVyLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2luaXRfXy5weToKKyAgICAgICAg
KEF1dG9pbnN0YWxsSW1wb3J0SG9vay5maW5kX21vZHVsZSk6IFJlbW92ZSBfaW5zdGFsbF9jb3Zl
cmFnZS4KKyAgICAgICAgKEF1dG9pbnN0YWxsSW1wb3J0SG9vay5faW5zdGFsbF9jb3ZlcmFnZSk6
IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9f
X3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGhpcmRwYXJ0eVRlc3QudGVzdF9pbXBvcnRzKTogUmVt
b3ZlIGNvdmVyYWdlLgorCiAyMDIwLTA4LTEwICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFw
cGxlLmNvbT4KIAogICAgICAgICBbZXdzXSBlbWFpbHMgZm9yIHRlc3QgZmFpbHVyZXMgc2hvdWxk
IGluY2x1ZGUgbGluayB0byB0ZXN0IGhpc3RvcnkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvX19pbml0X18ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9fX2lu
aXRfXy5weQkocmV2aXNpb24gMjY1NTU2KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9fX2lu
aXRfXy5weQkod29ya2luZyBjb3B5KQpAQCAtMjQsNSArMjQsOCBAQCBpZiBzeXMucGxhdGZvcm0g
PT0gJ2Rhcndpbic6CiAgICAgaWYgKGlzX3Jvb3Qgb3Igbm90IGRvZXNfb3duX2xpYnJhcmllcyk6
CiAgICAgICAgIGxpYnJhcmllcyA9IG9zLnBhdGguZXhwYW5kdXNlcignfi9MaWJyYXJ5L3dlYmtp
dHB5JykKIAotZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IEF1dG9JbnN0YWxsCitmcm9tIHdlYmtp
dGNvcmVweSBpbXBvcnQgQXV0b0luc3RhbGwsIFBhY2thZ2UsIFZlcnNpb24KIEF1dG9JbnN0YWxs
LnNldF9kaXJlY3Rvcnkob3MucGF0aC5qb2luKGxpYnJhcmllcywgJ2F1dG9pbnN0YWxsZWQnLCAn
cHl0aG9uLXt9Jy5mb3JtYXQoc3lzLnZlcnNpb25faW5mb1swXSkpKQorCitBdXRvSW5zdGFsbC5y
ZWdpc3RlcihQYWNrYWdlKCdjb3ZlcmFnZScsIFZlcnNpb24oNSwgMiwgMSkpKQorQXV0b0luc3Rh
bGwucmVnaXN0ZXIoUGFja2FnZSgndG9tbCcsIFZlcnNpb24oMCwgMTAsIDEpKSkKSW5kZXg6IFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5CShyZXZpc2lvbiAyNjU1NTYpCisrKyBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFpbi5weQkod29ya2luZyBjb3B5KQpAQCAtMTY1LDcgKzE2
NSw3IEBAIGNsYXNzIFRlc3RlcihvYmplY3QpOgogICAgICAgICAgICAgX2xvZy53YXJuaW5nKCJD
aGVja2luZyBjb2RlIGNvdmVyYWdlLCBzbyBydW5uaW5nIHRoaW5ncyBzZXJpYWxseSIpCiAgICAg
ICAgICAgICBzZWxmLl9vcHRpb25zLmNoaWxkX3Byb2Nlc3NlcyA9IDEKIAotICAgICAgICAgICAg
aW1wb3J0IHdlYmtpdHB5LnRoaXJkcGFydHkuYXV0b2luc3RhbGxlZC5jb3ZlcmFnZSBhcyBjb3Zl
cmFnZQorICAgICAgICAgICAgaW1wb3J0IGNvdmVyYWdlCiAgICAgICAgICAgICBjb3YgPSBjb3Zl
cmFnZS5jb3ZlcmFnZShvbWl0PVsKICAgICAgICAgICAgICAgICAiL3Vzci8qIiwKICAgICAgICAg
ICAgICAgICAiKi93ZWJraXRweS90aGlyZHBhcnR5L2F1dG9pbnN0YWxsZWQvKiIsCkluZGV4OiBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X18ucHkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9fLnB5CShyZXZpc2lv
biAyNjU1NTYpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X18u
cHkJKHdvcmtpbmcgY29weSkKQEAgLTk4LDggKzk4LDYgQEAgY2xhc3MgQXV0b2luc3RhbGxJbXBv
cnRIb29rKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLl9pbnN0YWxsX3B5Y29kZXN0eWxlKCkK
ICAgICAgICAgZWxpZiAnLnB5bGludCcgaW4gZnVsbG5hbWU6CiAgICAgICAgICAgICBzZWxmLl9p
bnN0YWxsX3B5bGludCgpCi0gICAgICAgIGVsaWYgJy5jb3ZlcmFnZScgaW4gZnVsbG5hbWU6Ci0g
ICAgICAgICAgICBzZWxmLl9pbnN0YWxsX2NvdmVyYWdlKCkKICAgICAgICAgZWxpZiAnLmJ1aWxk
Ym90JyBpbiBmdWxsbmFtZToKICAgICAgICAgICAgIHNlbGYuX2luc3RhbGxfYnVpbGRib3QoKQog
ICAgICAgICBlbGlmICcua2V5cmluZycgaW4gZnVsbG5hbWU6CkBAIC0yNjQsMTAgKzI2Miw2IEBA
IGNsYXNzIEF1dG9pbnN0YWxsSW1wb3J0SG9vayhvYmplY3QpOgogCiAgICAgICAgIHNlbGYuX2lu
c3RhbGwoImh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9zb3VyY2UvYi9i
dWlsZGJvdC9idWlsZGJvdC0wLjguNnAxLnRhci5neiIsICJidWlsZGJvdC0wLjguNnAxL2J1aWxk
Ym90IikKIAotICAgIGRlZiBfaW5zdGFsbF9jb3ZlcmFnZShzZWxmKToKLSAgICAgICAgc2VsZi5f
ZW5zdXJlX2F1dG9pbnN0YWxsZWRfZGlyX2lzX2luX3N5c19wYXRoKCkKLSAgICAgICAgc2VsZi5f
aW5zdGFsbCh1cmw9Imh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy84NS9k
NS84MThkMGU2MDM2ODVjNGE2MTNkNTZmMDY1YTcyMTAxM2U5NDIwODgwNDdmZjEwMjdhNjMyOTQ4
YmRhZTYvY292ZXJhZ2UtNC41LjQudGFyLmd6IiwgdXJsX3N1YnBhdGg9ImNvdmVyYWdlLTQuNS40
L2NvdmVyYWdlIikKLQogICAgIGRlZiBfaW5zdGFsbF90d2lzdGVkXzE1XzVfMChzZWxmKToKICAg
ICAgICAgdHdpc3RlZF9kaXIgPSBzZWxmLl9mcy5qb2luKF9BVVRPSU5TVEFMTEVEX0RJUiwgInR3
aXN0ZWRfMTVfNV8wIikKICAgICAgICAgaW5zdGFsbGVyID0gQXV0b0luc3RhbGxlcihwcmVwZW5k
X3RvX3NlYXJjaF9wYXRoPVRydWUsIHRhcmdldF9kaXI9dHdpc3RlZF9kaXIpCkluZGV4OiBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJkcGFydHkvX19pbml0X19fdW5pdHRlc3QucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9fX3VuaXR0
ZXN0LnB5CShyZXZpc2lvbiAyNjU1NTYpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3RoaXJk
cGFydHkvX19pbml0X19fdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDUg
QEAgY2xhc3MgVGhpcmRwYXJ0eVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAgICAgICAjIFRo
aXMgbWV0aG9kIHRlc3RzIHRoYXQgd2UgY2FuIGFjdHVhbGx5IGltcG9ydCBldmVyeXRoaW5nLgog
ICAgICAgICAjIHVudXNlZC12YXJpYWJsZSwgaW1wb3J0IGZhaWx1cmVzIC0gcHlsaW50OiBkaXNh
YmxlLW1zZz1XMDYxMixFMDYxMSxGMDQwMQogICAgICAgICBpbXBvcnQgd2Via2l0cHkudGhpcmRw
YXJ0eS5hdXRvaW5zdGFsbGVkLmJ1aWxkYm90Ci0gICAgICAgIGltcG9ydCB3ZWJraXRweS50aGly
ZHBhcnR5LmF1dG9pbnN0YWxsZWQuY292ZXJhZ2UKICAgICAgICAgaW1wb3J0IHdlYmtpdHB5LnRo
aXJkcGFydHkuYXV0b2luc3RhbGxlZC5tZWNoYW5pemUKICAgICAgICAgaW1wb3J0IHdlYmtpdHB5
LnRoaXJkcGFydHkuYXV0b2luc3RhbGxlZC5weWxpbnQK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406472</attachid>
            <date>2020-08-12 13:40:10 -0700</date>
            <delta_ts>2020-08-12 13:54:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215419-20200812134009.patch</filename>
            <type>text/plain</type>
            <size>5770</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NTU2MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIxIEBACisyMDIwLTA4LTEyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0cHldIFVzZSB3ZWJraXRjb3JlcHkncyBhdXRvIGluc3RhbGxl
ciBmb3IgY292ZXJhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNTQxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjY5MjI0MDA+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L19faW5pdF9fLnB5OiBBZGQgY292ZXJhZ2UgYW5kIGl0J3MgZGVwZW5kZW5jaWVzLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5OgorICAgICAgICAoVGVzdGVyLl9y
dW5fdGVzdHMpOiBTdG9wIHJlbHlpbmcgb24gd2Via2l0cHkncyBhdXRvaW5zdGFsbGVyLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2luaXRfXy5weToKKyAgICAgICAg
KEF1dG9pbnN0YWxsSW1wb3J0SG9vay5maW5kX21vZHVsZSk6IFJlbW92ZSBfaW5zdGFsbF9jb3Zl
cmFnZSwgX2luc3RhbGxfdG9tbC4KKyAgICAgICAgKEF1dG9pbnN0YWxsSW1wb3J0SG9vay5faW5z
dGFsbF9jb3ZlcmFnZSk6IERlbGV0ZWQuCisgICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2su
X2luc3RhbGxfdG9tbCk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90aGly
ZHBhcnR5L19faW5pdF9fX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGhpcmRwYXJ0eVRlc3QudGVz
dF9pbXBvcnRzKTogUmVtb3ZlIGNvdmVyYWdlLgorCiAyMDIwLTA4LTEyICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIEJyb2tlbiBmb3JtYXR0aW5nIGlu
IHByaWNlIHRhYmxlIG9uIHlhbmRleC5ydSBhZnRlciB0cmFuc2xhdGluZyB0byBFbmdsaXNoCklu
ZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvX19pbml0X18ucHkJKHJldmlzaW9uIDI2NTU1NikKKysrIFRv
b2xzL1NjcmlwdHMvd2Via2l0cHkvX19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTI0LDUg
KzI0LDggQEAgaWYgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4nOgogICAgIGlmIChpc19yb290IG9y
IG5vdCBkb2VzX293bl9saWJyYXJpZXMpOgogICAgICAgICBsaWJyYXJpZXMgPSBvcy5wYXRoLmV4
cGFuZHVzZXIoJ34vTGlicmFyeS93ZWJraXRweScpCiAKLWZyb20gd2Via2l0Y29yZXB5IGltcG9y
dCBBdXRvSW5zdGFsbAorZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IEF1dG9JbnN0YWxsLCBQYWNr
YWdlLCBWZXJzaW9uCiBBdXRvSW5zdGFsbC5zZXRfZGlyZWN0b3J5KG9zLnBhdGguam9pbihsaWJy
YXJpZXMsICdhdXRvaW5zdGFsbGVkJywgJ3B5dGhvbi17fScuZm9ybWF0KHN5cy52ZXJzaW9uX2lu
Zm9bMF0pKSkKKworQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFja2FnZSgnY292ZXJhZ2UnLCBWZXJz
aW9uKDUsIDIsIDEpKSkKK0F1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ3RvbWwnLCBWZXJz
aW9uKDAsIDEwLCAxKSkpCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFpbi5w
eQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rlc3QvbWFpbi5weQkocmV2
aXNpb24gMjY1NTU2KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90ZXN0L21haW4ucHkJKHdv
cmtpbmcgY29weSkKQEAgLTE2NSw3ICsxNjUsNyBAQCBjbGFzcyBUZXN0ZXIob2JqZWN0KToKICAg
ICAgICAgICAgIF9sb2cud2FybmluZygiQ2hlY2tpbmcgY29kZSBjb3ZlcmFnZSwgc28gcnVubmlu
ZyB0aGluZ3Mgc2VyaWFsbHkiKQogICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy5jaGlsZF9wcm9j
ZXNzZXMgPSAxCiAKLSAgICAgICAgICAgIGltcG9ydCB3ZWJraXRweS50aGlyZHBhcnR5LmF1dG9p
bnN0YWxsZWQuY292ZXJhZ2UgYXMgY292ZXJhZ2UKKyAgICAgICAgICAgIGltcG9ydCBjb3ZlcmFn
ZQogICAgICAgICAgICAgY292ID0gY292ZXJhZ2UuY292ZXJhZ2Uob21pdD1bCiAgICAgICAgICAg
ICAgICAgIi91c3IvKiIsCiAgICAgICAgICAgICAgICAgIiovd2Via2l0cHkvdGhpcmRwYXJ0eS9h
dXRvaW5zdGFsbGVkLyoiLApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5
L19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRw
YXJ0eS9fX2luaXRfXy5weQkocmV2aXNpb24gMjY1NTU2KQorKysgVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90aGlyZHBhcnR5L19faW5pdF9fLnB5CSh3b3JraW5nIGNvcHkpCkBAIC05OCw4ICs5OCw2
IEBAIGNsYXNzIEF1dG9pbnN0YWxsSW1wb3J0SG9vayhvYmplY3QpOgogICAgICAgICAgICAgc2Vs
Zi5faW5zdGFsbF9weWNvZGVzdHlsZSgpCiAgICAgICAgIGVsaWYgJy5weWxpbnQnIGluIGZ1bGxu
YW1lOgogICAgICAgICAgICAgc2VsZi5faW5zdGFsbF9weWxpbnQoKQotICAgICAgICBlbGlmICcu
Y292ZXJhZ2UnIGluIGZ1bGxuYW1lOgotICAgICAgICAgICAgc2VsZi5faW5zdGFsbF9jb3ZlcmFn
ZSgpCiAgICAgICAgIGVsaWYgJy5idWlsZGJvdCcgaW4gZnVsbG5hbWU6CiAgICAgICAgICAgICBz
ZWxmLl9pbnN0YWxsX2J1aWxkYm90KCkKICAgICAgICAgZWxpZiAnLmtleXJpbmcnIGluIGZ1bGxu
YW1lOgpAQCAtMTI2LDggKzEyNCw2IEBAIGNsYXNzIEF1dG9pbnN0YWxsSW1wb3J0SG9vayhvYmpl
Y3QpOgogICAgICAgICAgICAgc2VsZi5faW5zdGFsbF9iZWF1dGlmdWxzb3VwKCkKICAgICAgICAg
ZWxpZiAnLmh0bWw1bGliJyBpbiBmdWxsbmFtZToKICAgICAgICAgICAgIHNlbGYuX2luc3RhbGxf
aHRtbDVsaWIoKQotICAgICAgICBlbGlmICcudG9tbCcgaW4gZnVsbG5hbWU6Ci0gICAgICAgICAg
ICBzZWxmLl9pbnN0YWxsX3RvbWwoKQogCiAgICAgZGVmIF9pbnN0YWxsX3NpeChzZWxmKToKICAg
ICAgICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9maWxlcy5weXRob25ob3N0ZWQub3JnL3BhY2th
Z2VzLzE2L2Q4L2JjNjMxNmNmOTg0MTk3MTliZDU5YzkxNzQyMTk0YzExMWI2ZjJlODVhYmFjODhl
NDk2YWRlZmFmN2FmZS9zaXgtMS4xMS4wLnRhci5neiIsCkBAIC0yNjQsMTAgKzI2MCw2IEBAIGNs
YXNzIEF1dG9pbnN0YWxsSW1wb3J0SG9vayhvYmplY3QpOgogCiAgICAgICAgIHNlbGYuX2luc3Rh
bGwoImh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy9zb3VyY2UvYi9idWls
ZGJvdC9idWlsZGJvdC0wLjguNnAxLnRhci5neiIsICJidWlsZGJvdC0wLjguNnAxL2J1aWxkYm90
IikKIAotICAgIGRlZiBfaW5zdGFsbF9jb3ZlcmFnZShzZWxmKToKLSAgICAgICAgc2VsZi5fZW5z
dXJlX2F1dG9pbnN0YWxsZWRfZGlyX2lzX2luX3N5c19wYXRoKCkKLSAgICAgICAgc2VsZi5faW5z
dGFsbCh1cmw9Imh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9wYWNrYWdlcy84NS9kNS84
MThkMGU2MDM2ODVjNGE2MTNkNTZmMDY1YTcyMTAxM2U5NDIwODgwNDdmZjEwMjdhNjMyOTQ4YmRh
ZTYvY292ZXJhZ2UtNC41LjQudGFyLmd6IiwgdXJsX3N1YnBhdGg9ImNvdmVyYWdlLTQuNS40L2Nv
dmVyYWdlIikKLQogICAgIGRlZiBfaW5zdGFsbF90d2lzdGVkXzE1XzVfMChzZWxmKToKICAgICAg
ICAgdHdpc3RlZF9kaXIgPSBzZWxmLl9mcy5qb2luKF9BVVRPSU5TVEFMTEVEX0RJUiwgInR3aXN0
ZWRfMTVfNV8wIikKICAgICAgICAgaW5zdGFsbGVyID0gQXV0b0luc3RhbGxlcihwcmVwZW5kX3Rv
X3NlYXJjaF9wYXRoPVRydWUsIHRhcmdldF9kaXI9dHdpc3RlZF9kaXIpCkBAIC0zMjAsMTEgKzMx
Miw2IEBAIGNsYXNzIEF1dG9pbnN0YWxsSW1wb3J0SG9vayhvYmplY3QpOgogICAgICAgICAgICAg
ZnVsbF9maXJlZm94X3VybCA9IHJlLmZpbmRhbGwocicuKiVzLionICUgZmlsZW5hbWVfcG9zdGZp
eCwgYWxsX2ZpcmVmb3hfcmVsZWFzZV91cmxzKVswXS5zcGxpdCgnIicpWzNdCiAgICAgICAgICAg
ICBzZWxmLmluc3RhbGxfYmluYXJ5KGZ1bGxfZmlyZWZveF91cmwsICdnZWNrb2RyaXZlcicpCiAK
LSAgICBkZWYgX2luc3RhbGxfdG9tbChzZWxmKToKLSAgICAgICAgdG9tbF9kaXIgPSBzZWxmLl9m
cy5qb2luKF9BVVRPSU5TVEFMTEVEX0RJUiwgInRvbWwiKQotICAgICAgICBpbnN0YWxsZXIgPSBB
dXRvSW5zdGFsbGVyKHByZXBlbmRfdG9fc2VhcmNoX3BhdGg9VHJ1ZSwgdGFyZ2V0X2Rpcj10b21s
X2RpcikKLSAgICAgICAgaW5zdGFsbGVyLmluc3RhbGwodXJsPSJodHRwczovL2ZpbGVzLnB5dGhv
bmhvc3RlZC5vcmcvcGFja2FnZXMvYjkvMTkvNWNiZDc4ZWFjOGIxNzgzNjcxYzQwZTM0YmIwZmE4
MzEzM2EwNmQzNDBhMzhiNTVjNjQ1MDc2ZDQwMDk0L3RvbWwtMC4xMC4wLnRhci5neiIsIHVybF9z
dWJwYXRoPSJ0b21sLTAuMTAuMC90b21sIikKLQogICAgIGRlZiBfaW5zdGFsbChzZWxmLCB1cmws
IHVybF9zdWJwYXRoPU5vbmUsIHRhcmdldF9uYW1lPU5vbmUpOgogICAgICAgICBpbnN0YWxsZXIg
PSBBdXRvSW5zdGFsbGVyKHRhcmdldF9kaXI9X0FVVE9JTlNUQUxMRURfRElSKQogICAgICAgICBy
ZXR1cm4gaW5zdGFsbGVyLmluc3RhbGwodXJsPXVybCwgdXJsX3N1YnBhdGg9dXJsX3N1YnBhdGgs
IHRhcmdldF9uYW1lPXRhcmdldF9uYW1lKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90
aGlyZHBhcnR5L19faW5pdF9fX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2luaXRfX191bml0dGVzdC5weQkocmV2aXNpb24gMjY1
NTU2KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9fX3VuaXR0
ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw1IEBAIGNsYXNzIFRoaXJkcGFydHlU
ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIyBUaGlzIG1ldGhvZCB0ZXN0cyB0aGF0
IHdlIGNhbiBhY3R1YWxseSBpbXBvcnQgZXZlcnl0aGluZy4KICAgICAgICAgIyB1bnVzZWQtdmFy
aWFibGUsIGltcG9ydCBmYWlsdXJlcyAtIHB5bGludDogZGlzYWJsZS1tc2c9VzA2MTIsRTA2MTEs
RjA0MDEKICAgICAgICAgaW1wb3J0IHdlYmtpdHB5LnRoaXJkcGFydHkuYXV0b2luc3RhbGxlZC5i
dWlsZGJvdAotICAgICAgICBpbXBvcnQgd2Via2l0cHkudGhpcmRwYXJ0eS5hdXRvaW5zdGFsbGVk
LmNvdmVyYWdlCiAgICAgICAgIGltcG9ydCB3ZWJraXRweS50aGlyZHBhcnR5LmF1dG9pbnN0YWxs
ZWQubWVjaGFuaXplCiAgICAgICAgIGltcG9ydCB3ZWJraXRweS50aGlyZHBhcnR5LmF1dG9pbnN0
YWxsZWQucHlsaW50Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406474</attachid>
            <date>2020-08-12 13:54:41 -0700</date>
            <delta_ts>2020-08-13 08:42:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215419-20200812135440.patch</filename>
            <type>text/plain</type>
            <size>6232</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2NTU2MSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIyIEBACisyMDIwLTA4LTEyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0cHldIFVzZSB3ZWJraXRjb3JlcHkncyBhdXRvIGluc3RhbGxl
ciBmb3IgY292ZXJhZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNTQxOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjY5MjI0MDA+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L19faW5pdF9fLnB5OiBBZGQgY292ZXJhZ2UgYW5kIGl0J3MgZGVwZW5kZW5jaWVzLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGVzdC9tYWluLnB5OgorICAgICAgICAoVGVzdGVyLl9y
dW5fdGVzdHMpOiBTdG9wIHJlbHlpbmcgb24gd2Via2l0cHkncyBhdXRvaW5zdGFsbGVyLgorICAg
ICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2luaXRfXy5weToKKyAgICAgICAg
KEF1dG9pbnN0YWxsSW1wb3J0SG9vay5maW5kX21vZHVsZSk6IFJlbW92ZSBfaW5zdGFsbF9jb3Zl
cmFnZSwgX2luc3RhbGxfdG9tbC4KKyAgICAgICAgKEF1dG9pbnN0YWxsSW1wb3J0SG9vay5faW5z
dGFsbF9jb3ZlcmFnZSk6IERlbGV0ZWQuCisgICAgICAgIChBdXRvaW5zdGFsbEltcG9ydEhvb2su
X2luc3RhbGxfdG9tbCk6IERlbGV0ZWQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS90aGly
ZHBhcnR5L19faW5pdF9fX3VuaXR0ZXN0LnB5OgorICAgICAgICAoVGhpcmRwYXJ0eVRlc3QudGVz
dF9pbXBvcnRzKTogUmVtb3ZlIGNvdmVyYWdlLgorICAgICAgICAqIGZsYXRwYWsvZmxhdHBha3V0
aWxzLnB5OiBTdG9wIHJlbHlpbmcgb24gd2Via2l0cHkncyBhdXRvaW5zdGFsbGVyLgorCiAyMDIw
LTA4LTEyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IEJyb2tlbiBmb3JtYXR0aW5nIGluIHByaWNlIHRhYmxlIG9uIHlhbmRleC5ydSBhZnRlciB0cmFu
c2xhdGluZyB0byBFbmdsaXNoCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L19faW5pdF9f
LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvX19pbml0X18ucHkJKHJl
dmlzaW9uIDI2NTU1NikKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvX19pbml0X18ucHkJKHdv
cmtpbmcgY29weSkKQEAgLTI0LDUgKzI0LDggQEAgaWYgc3lzLnBsYXRmb3JtID09ICdkYXJ3aW4n
OgogICAgIGlmIChpc19yb290IG9yIG5vdCBkb2VzX293bl9saWJyYXJpZXMpOgogICAgICAgICBs
aWJyYXJpZXMgPSBvcy5wYXRoLmV4cGFuZHVzZXIoJ34vTGlicmFyeS93ZWJraXRweScpCiAKLWZy
b20gd2Via2l0Y29yZXB5IGltcG9ydCBBdXRvSW5zdGFsbAorZnJvbSB3ZWJraXRjb3JlcHkgaW1w
b3J0IEF1dG9JbnN0YWxsLCBQYWNrYWdlLCBWZXJzaW9uCiBBdXRvSW5zdGFsbC5zZXRfZGlyZWN0
b3J5KG9zLnBhdGguam9pbihsaWJyYXJpZXMsICdhdXRvaW5zdGFsbGVkJywgJ3B5dGhvbi17fScu
Zm9ybWF0KHN5cy52ZXJzaW9uX2luZm9bMF0pKSkKKworQXV0b0luc3RhbGwucmVnaXN0ZXIoUGFj
a2FnZSgnY292ZXJhZ2UnLCBWZXJzaW9uKDUsIDIsIDEpKSkKK0F1dG9JbnN0YWxsLnJlZ2lzdGVy
KFBhY2thZ2UoJ3RvbWwnLCBWZXJzaW9uKDAsIDEwLCAxKSkpCkluZGV4OiBUb29scy9TY3JpcHRz
L3dlYmtpdHB5L3Rlc3QvbWFpbi5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rlc3QvbWFpbi5weQkocmV2aXNpb24gMjY1NTU2KQorKysgVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS90ZXN0L21haW4ucHkJKHdvcmtpbmcgY29weSkKQEAgLTE2NSw3ICsxNjUsNyBAQCBjbGFz
cyBUZXN0ZXIob2JqZWN0KToKICAgICAgICAgICAgIF9sb2cud2FybmluZygiQ2hlY2tpbmcgY29k
ZSBjb3ZlcmFnZSwgc28gcnVubmluZyB0aGluZ3Mgc2VyaWFsbHkiKQogICAgICAgICAgICAgc2Vs
Zi5fb3B0aW9ucy5jaGlsZF9wcm9jZXNzZXMgPSAxCiAKLSAgICAgICAgICAgIGltcG9ydCB3ZWJr
aXRweS50aGlyZHBhcnR5LmF1dG9pbnN0YWxsZWQuY292ZXJhZ2UgYXMgY292ZXJhZ2UKKyAgICAg
ICAgICAgIGltcG9ydCBjb3ZlcmFnZQogICAgICAgICAgICAgY292ID0gY292ZXJhZ2UuY292ZXJh
Z2Uob21pdD1bCiAgICAgICAgICAgICAgICAgIi91c3IvKiIsCiAgICAgICAgICAgICAgICAgIiov
d2Via2l0cHkvdGhpcmRwYXJ0eS9hdXRvaW5zdGFsbGVkLyoiLApJbmRleDogVG9vbHMvU2NyaXB0
cy93ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2luaXRfXy5weQkocmV2aXNpb24gMjY1NTU2KQor
KysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9fLnB5CSh3b3JraW5n
IGNvcHkpCkBAIC05OCw4ICs5OCw2IEBAIGNsYXNzIEF1dG9pbnN0YWxsSW1wb3J0SG9vayhvYmpl
Y3QpOgogICAgICAgICAgICAgc2VsZi5faW5zdGFsbF9weWNvZGVzdHlsZSgpCiAgICAgICAgIGVs
aWYgJy5weWxpbnQnIGluIGZ1bGxuYW1lOgogICAgICAgICAgICAgc2VsZi5faW5zdGFsbF9weWxp
bnQoKQotICAgICAgICBlbGlmICcuY292ZXJhZ2UnIGluIGZ1bGxuYW1lOgotICAgICAgICAgICAg
c2VsZi5faW5zdGFsbF9jb3ZlcmFnZSgpCiAgICAgICAgIGVsaWYgJy5idWlsZGJvdCcgaW4gZnVs
bG5hbWU6CiAgICAgICAgICAgICBzZWxmLl9pbnN0YWxsX2J1aWxkYm90KCkKICAgICAgICAgZWxp
ZiAnLmtleXJpbmcnIGluIGZ1bGxuYW1lOgpAQCAtMTI2LDggKzEyNCw2IEBAIGNsYXNzIEF1dG9p
bnN0YWxsSW1wb3J0SG9vayhvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5faW5zdGFsbF9iZWF1
dGlmdWxzb3VwKCkKICAgICAgICAgZWxpZiAnLmh0bWw1bGliJyBpbiBmdWxsbmFtZToKICAgICAg
ICAgICAgIHNlbGYuX2luc3RhbGxfaHRtbDVsaWIoKQotICAgICAgICBlbGlmICcudG9tbCcgaW4g
ZnVsbG5hbWU6Ci0gICAgICAgICAgICBzZWxmLl9pbnN0YWxsX3RvbWwoKQogCiAgICAgZGVmIF9p
bnN0YWxsX3NpeChzZWxmKToKICAgICAgICAgc2VsZi5faW5zdGFsbCgiaHR0cHM6Ly9maWxlcy5w
eXRob25ob3N0ZWQub3JnL3BhY2thZ2VzLzE2L2Q4L2JjNjMxNmNmOTg0MTk3MTliZDU5YzkxNzQy
MTk0YzExMWI2ZjJlODVhYmFjODhlNDk2YWRlZmFmN2FmZS9zaXgtMS4xMS4wLnRhci5neiIsCkBA
IC0yNjQsMTAgKzI2MCw2IEBAIGNsYXNzIEF1dG9pbnN0YWxsSW1wb3J0SG9vayhvYmplY3QpOgog
CiAgICAgICAgIHNlbGYuX2luc3RhbGwoImh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVkLm9yZy9w
YWNrYWdlcy9zb3VyY2UvYi9idWlsZGJvdC9idWlsZGJvdC0wLjguNnAxLnRhci5neiIsICJidWls
ZGJvdC0wLjguNnAxL2J1aWxkYm90IikKIAotICAgIGRlZiBfaW5zdGFsbF9jb3ZlcmFnZShzZWxm
KToKLSAgICAgICAgc2VsZi5fZW5zdXJlX2F1dG9pbnN0YWxsZWRfZGlyX2lzX2luX3N5c19wYXRo
KCkKLSAgICAgICAgc2VsZi5faW5zdGFsbCh1cmw9Imh0dHBzOi8vZmlsZXMucHl0aG9uaG9zdGVk
Lm9yZy9wYWNrYWdlcy84NS9kNS84MThkMGU2MDM2ODVjNGE2MTNkNTZmMDY1YTcyMTAxM2U5NDIw
ODgwNDdmZjEwMjdhNjMyOTQ4YmRhZTYvY292ZXJhZ2UtNC41LjQudGFyLmd6IiwgdXJsX3N1YnBh
dGg9ImNvdmVyYWdlLTQuNS40L2NvdmVyYWdlIikKLQogICAgIGRlZiBfaW5zdGFsbF90d2lzdGVk
XzE1XzVfMChzZWxmKToKICAgICAgICAgdHdpc3RlZF9kaXIgPSBzZWxmLl9mcy5qb2luKF9BVVRP
SU5TVEFMTEVEX0RJUiwgInR3aXN0ZWRfMTVfNV8wIikKICAgICAgICAgaW5zdGFsbGVyID0gQXV0
b0luc3RhbGxlcihwcmVwZW5kX3RvX3NlYXJjaF9wYXRoPVRydWUsIHRhcmdldF9kaXI9dHdpc3Rl
ZF9kaXIpCkBAIC0zMjAsMTEgKzMxMiw2IEBAIGNsYXNzIEF1dG9pbnN0YWxsSW1wb3J0SG9vayhv
YmplY3QpOgogICAgICAgICAgICAgZnVsbF9maXJlZm94X3VybCA9IHJlLmZpbmRhbGwocicuKiVz
LionICUgZmlsZW5hbWVfcG9zdGZpeCwgYWxsX2ZpcmVmb3hfcmVsZWFzZV91cmxzKVswXS5zcGxp
dCgnIicpWzNdCiAgICAgICAgICAgICBzZWxmLmluc3RhbGxfYmluYXJ5KGZ1bGxfZmlyZWZveF91
cmwsICdnZWNrb2RyaXZlcicpCiAKLSAgICBkZWYgX2luc3RhbGxfdG9tbChzZWxmKToKLSAgICAg
ICAgdG9tbF9kaXIgPSBzZWxmLl9mcy5qb2luKF9BVVRPSU5TVEFMTEVEX0RJUiwgInRvbWwiKQot
ICAgICAgICBpbnN0YWxsZXIgPSBBdXRvSW5zdGFsbGVyKHByZXBlbmRfdG9fc2VhcmNoX3BhdGg9
VHJ1ZSwgdGFyZ2V0X2Rpcj10b21sX2RpcikKLSAgICAgICAgaW5zdGFsbGVyLmluc3RhbGwodXJs
PSJodHRwczovL2ZpbGVzLnB5dGhvbmhvc3RlZC5vcmcvcGFja2FnZXMvYjkvMTkvNWNiZDc4ZWFj
OGIxNzgzNjcxYzQwZTM0YmIwZmE4MzEzM2EwNmQzNDBhMzhiNTVjNjQ1MDc2ZDQwMDk0L3RvbWwt
MC4xMC4wLnRhci5neiIsIHVybF9zdWJwYXRoPSJ0b21sLTAuMTAuMC90b21sIikKLQogICAgIGRl
ZiBfaW5zdGFsbChzZWxmLCB1cmwsIHVybF9zdWJwYXRoPU5vbmUsIHRhcmdldF9uYW1lPU5vbmUp
OgogICAgICAgICBpbnN0YWxsZXIgPSBBdXRvSW5zdGFsbGVyKHRhcmdldF9kaXI9X0FVVE9JTlNU
QUxMRURfRElSKQogICAgICAgICByZXR1cm4gaW5zdGFsbGVyLmluc3RhbGwodXJsPXVybCwgdXJs
X3N1YnBhdGg9dXJsX3N1YnBhdGgsIHRhcmdldF9uYW1lPXRhcmdldF9uYW1lKQpJbmRleDogVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90aGlyZHBhcnR5L19faW5pdF9fX3VuaXR0ZXN0LnB5Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdGhpcmRwYXJ0eS9fX2luaXRfX191bml0
dGVzdC5weQkocmV2aXNpb24gMjY1NTU2KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90aGly
ZHBhcnR5L19faW5pdF9fX3VuaXR0ZXN0LnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zNyw2ICszNyw1
IEBAIGNsYXNzIFRoaXJkcGFydHlUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgIyBU
aGlzIG1ldGhvZCB0ZXN0cyB0aGF0IHdlIGNhbiBhY3R1YWxseSBpbXBvcnQgZXZlcnl0aGluZy4K
ICAgICAgICAgIyB1bnVzZWQtdmFyaWFibGUsIGltcG9ydCBmYWlsdXJlcyAtIHB5bGludDogZGlz
YWJsZS1tc2c9VzA2MTIsRTA2MTEsRjA0MDEKICAgICAgICAgaW1wb3J0IHdlYmtpdHB5LnRoaXJk
cGFydHkuYXV0b2luc3RhbGxlZC5idWlsZGJvdAotICAgICAgICBpbXBvcnQgd2Via2l0cHkudGhp
cmRwYXJ0eS5hdXRvaW5zdGFsbGVkLmNvdmVyYWdlCiAgICAgICAgIGltcG9ydCB3ZWJraXRweS50
aGlyZHBhcnR5LmF1dG9pbnN0YWxsZWQubWVjaGFuaXplCiAgICAgICAgIGltcG9ydCB3ZWJraXRw
eS50aGlyZHBhcnR5LmF1dG9pbnN0YWxsZWQucHlsaW50CkluZGV4OiBUb29scy9mbGF0cGFrL2Zs
YXRwYWt1dGlscy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9mbGF0cGFrL2ZsYXRwYWt1dGlscy5w
eQkocmV2aXNpb24gMjY1NTU2KQorKysgVG9vbHMvZmxhdHBhay9mbGF0cGFrdXRpbHMucHkJKHdv
cmtpbmcgY29weSkKQEAgLTM1LDcgKzM1LDYgQEAgaW1wb3J0IHRlbXBmaWxlCiBpbXBvcnQgcmUK
IAogZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmxvZ3V0aWxzIGltcG9ydCBjb25maWd1cmVf
bG9nZ2luZwotaW1wb3J0IHdlYmtpdHB5LnRoaXJkcGFydHkuYXV0b2luc3RhbGxlZC50b21sCiBp
bXBvcnQgdG9tbAogCiB0cnk6Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>