<?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>213653</bug_id>
          
          <creation_ts>2020-06-26 12:36:16 -0700</creation_ts>
          <short_desc>[webkitpy] Automatically detect hw architecture for supporting Apple Silicon</short_desc>
          <delta_ts>2020-06-27 18:07:10 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Tools / Tests</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fujii</cc>
    
    <cc>glenn</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1666550</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-06-26 12:36:16 -0700</bug_when>
    <thetext>webkitpy needs to support Macs with an arm64 architecture and needs some testing support for Rosetta.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666551</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-26 12:36:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/64817656&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666556</commentid>
    <comment_count>2</comment_count>
      <attachid>402888</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-06-26 12:47:52 -0700</bug_when>
    <thetext>Created attachment 402888
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666559</commentid>
    <comment_count>3</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-06-26 12:50:01 -0700</bug_when>
    <thetext>(In reply to Jonathan Bedard from comment #2)
&gt; Created attachment 402888 [details]
&gt; Patch

This doesn&apos;t handle Rosetta yet, but it means that machines running on Apple Silicon with native WebKit will report correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666605</commentid>
    <comment_count>4</comment_count>
      <attachid>402888</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-06-26 14:12:08 -0700</bug_when>
    <thetext>Comment on attachment 402888
Patch

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

&gt; Tools/Scripts/webkitpy/common/system/platforminfo.py:117
&gt; +                if output == &apos;arm64e&apos;:

This will never be true since output is assigned to arm64 in above line when it&apos;s arm64e.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666608</commentid>
    <comment_count>5</comment_count>
      <attachid>402901</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-06-26 14:21:02 -0700</bug_when>
    <thetext>Created attachment 402901
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666610</commentid>
    <comment_count>6</comment_count>
      <attachid>402901</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-06-26 14:23:55 -0700</bug_when>
    <thetext>Comment on attachment 402901
Patch

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

&gt; Tools/ChangeLog:3
&gt; +        [webkitpy] Support Apple Silicon (Part 1)

Bug title can be little more descriptive. Like: [webkitpy] Automatically detect hw architecture for supporting Apple Silicon

&gt; Tools/Scripts/webkitpy/common/system/platforminfo.py:111
&gt; +        try:

can we avoid running &apos;uname -m&apos; command when is_mac() is false and have an early return instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666613</commentid>
    <comment_count>7</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-06-26 14:28:23 -0700</bug_when>
    <thetext>(In reply to Aakash Jain from comment #6)
&gt; Comment on attachment 402901 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=402901&amp;action=review
&gt; 
&gt; &gt; Tools/ChangeLog:3
&gt; &gt; +        [webkitpy] Support Apple Silicon (Part 1)
&gt; 
&gt; Bug title can be little more descriptive. Like: [webkitpy] Automatically
&gt; detect hw architecture for supporting Apple Silicon
&gt; 
&gt; &gt; Tools/Scripts/webkitpy/common/system/platforminfo.py:111
&gt; &gt; +        try:
&gt; 
&gt; can we avoid running &apos;uname -m&apos; command when is_mac() is false and have an
&gt; early return instead?

I don&apos;t think we should.

We have multiple watchOS architectures, the same logic should apply. That&apos;s actually the whole reason I didn&apos;t use the os version of that function in the first place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666614</commentid>
    <comment_count>8</comment_count>
      <attachid>402903</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-06-26 14:32:04 -0700</bug_when>
    <thetext>Created attachment 402903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666617</commentid>
    <comment_count>9</comment_count>
      <attachid>402901</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-06-26 14:35:18 -0700</bug_when>
    <thetext>Comment on attachment 402901
Patch

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

&gt; Tools/Scripts/webkitpy/common/system/platforminfo_mock.py:43
&gt; +        ).get(self.os_name, &apos;x86&apos;)

should the default be x86 or x86_64?

&gt; Tools/Scripts/webkitpy/port/mac.py:72
&gt; +            return &apos;arm64&apos;

might be worth adding a comment here for the reason of doing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666618</commentid>
    <comment_count>10</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-06-26 14:35:33 -0700</bug_when>
    <thetext>rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666619</commentid>
    <comment_count>11</comment_count>
      <attachid>402905</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-06-26 14:38:06 -0700</bug_when>
    <thetext>Created attachment 402905
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666636</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-26 15:10:03 -0700</bug_when>
    <thetext>Committed r263592: &lt;https://trac.webkit.org/changeset/263592&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402905.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666828</commentid>
    <comment_count>13</comment_count>
      <attachid>402905</attachid>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2020-06-27 18:07:10 -0700</bug_when>
    <thetext>Comment on attachment 402905
Patch for landing

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

&gt; Tools/Scripts/webkitpy/port/base.py:-116
&gt; -            self.set_option(&apos;architecture&apos;, self.DEFAULT_ARCHITECTURE)

Removing this code causes a trouble for Windows ports.
Filed : Bug 213688 – [Win] run-webkit-tests is failing to run DRT and WTR without --architecture x86_64</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402888</attachid>
            <date>2020-06-26 12:47:52 -0700</date>
            <delta_ts>2020-06-26 14:21:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213653-20200626124751.patch</filename>
            <type>text/plain</type>
            <size>11685</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2MzU3NSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM2IEBACisyMDIwLTA2LTI2ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0cHldIFN1cHBvcnQgQXBwbGUgU2lsaWNvbiAoUGFydCAxKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNjUzCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NDgxNzY1Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZp
Zy9ld3MuanNvbjogaU9TIGhhcyB0aGUgY29ycmVjdCBkZWZhdWx0cywgbm8gbmVlZCB0byBvdmVy
cmlkZSB0aGVtLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0
Zm9ybWluZm8ucHk6CisgICAgICAgIChQbGF0Zm9ybUluZm8pOgorICAgICAgICAoUGxhdGZvcm1J
bmZvLmFyY2hpdGVjdHVyZSk6IFJldHJpZXZlIHRoZSBjdXJyZW50IHN5c3RlbSdzIGFyY2hpdGVj
dHVyZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1p
bmZvX21vY2sucHk6CisgICAgICAgIChNb2NrUGxhdGZvcm1JbmZvLl9faW5pdF9fKToKKyAgICAg
ICAgKE1vY2tQbGF0Zm9ybUluZm8uYXJjaGl0ZWN0dXJlKToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3BvcnQvYmFzZS5weToKKyAgICAgICAgKFBvcnQuX19pbml0X18pOiBSZW1vdmUgJ2Rp
ZF9vdmVycmlkZV9hcmNoaXRlY3R1cmUnLCBzaG91bGQgYmUgaW1wbGllZCBieSBhcmNoaXRlY3R1
cmUgY29tcGFyZWQgd2l0aCBERUZBVUxUX0FSQ0hJVEVDVFVSRS4KKyAgICAgICAgKFBvcnQuYXJj
aGl0ZWN0dXJlKTogUmV0dXJuIHRoZSBhcmNoaXRlY3R1cmUgc3BlY2lmaWVkIGJ5IHRoZSB1c2Vy
LCBpZiBpdCBleGlzdHMuCisgICAgICAgIChQb3J0LnNldF9hcmNoaXRlY3R1cmUpOiBSZW1vdmUg
J2RpZF9vdmVycmlkZV9hcmNoaXRlY3R1cmUnLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
cG9ydC9mYWN0b3J5LnB5OgorICAgICAgICAoY29uZmlndXJhdGlvbl9vcHRpb25zKTogQWRkIC0t
YXJtIGFuZCAtLWFyY2hpdGVjdHVyZSBmbGFncy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3BvcnQvbWFjLnB5OgorICAgICAgICAoTWFjUG9ydCk6IEFkZCBhcm02NCB0byBzdXBwb3J0ZWQg
YXJjaGl0ZWN0dXJlcy4KKyAgICAgICAgKE1hY1BvcnQuYXJjaGl0ZWN0dXJlKTogQ29udmVydCBh
cm02NGUgdG8gYXJtNjQsIGNoZWNrIHRoZSBob3N0J3MgYXJjaGl0ZWN0dXJlLgorICAgICAgICAo
TWFjUG9ydC5fYnVpbGRfZHJpdmVyX2ZsYWdzKTogQWx3YXlzIHNwZWNpZnkgdGhlIGJ1aWxkIGFy
Y2hpdGVjdHVyZSBzaW5jZSBpdCBtYXkgYmUgeDg2XzY0IG9yIGFybTY0LgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvcG9ydC9tYWNfdW5pdHRlc3QucHk6CisgICAgICAgIChNYWNUZXN0LnRl
c3RfNjRiaXQpOgorICAgICAgICAoTWFjVGVzdCk6CisgICAgICAgIChNYWNUZXN0LnRlc3RfYXJt
KToKKyAgICAgICAgKE1hY1Rlc3QudGVzdF9kZWZhdWx0KToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5OgorICAgICAgICAoQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ucnVuX2NvbW1hbmQpOiBSZW1vdmUgZGlkX292ZXJyaWRl
X2FyY2hpdGVjdHVyZS4KKwogMjAyMC0wNi0yNiAgR2VvZmZyZXkgR2FyZW4gIDxnZ2FyZW5AYXBw
bGUuY29tPgogCiAgICAgICAgIEluaXRpYWxpemluZyB0aGUgbWFpbiB0aHJlYWQgc2hvdWxkIGlu
aXRpYWxpemUgdGhlIG1haW4gcnVuIGxvb3AKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL2NvbmZpZy9ld3MuanNvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9jb25maWcvZXdzLmpzb24JKHJldmlzaW9uIDI2MzU3MCkKKysrIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgkod29ya2luZyBjb3B5KQpAQCAt
MTQsOCArMTQsNyBAQAogICAgIH0sCiAgICAgImlPUyBFV1MiOiB7CiAgICAgICAgICJwb3J0Ijog
Imlvcy1kZXZpY2UiLAotICAgICAgICAibmFtZSI6ICJpb3MtZXdzIiwKLSAgICAgICAgImFyY2hp
dGVjdHVyZSI6ICJhcm02NCIKKyAgICAgICAgIm5hbWUiOiAiaW9zLWV3cyIKICAgICB9LAogICAg
ICJpT1MgU2ltdWxhdG9yIEVXUyI6IHsKICAgICAgICAgInBvcnQiOiAiaW9zLXNpbXVsYXRvci13
azIiLApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3Jt
aW5mby5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0
ZW0vcGxhdGZvcm1pbmZvLnB5CShyZXZpc2lvbiAyNjM1NzApCisrKyBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0y
Nyw2ICsyNyw3IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCitpbXBvcnQgb3MK
IGltcG9ydCBsb2dnaW5nCiBpbXBvcnQgcmUKIGltcG9ydCBzeXMKQEAgLTM0LDcgKzM1LDcgQEAg
aW1wb3J0IHN5cwogZnJvbSB3ZWJraXRweS5jb21tb24ubWVtb2l6ZWQgaW1wb3J0IG1lbW9pemVk
CiBmcm9tIHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uIGltcG9ydCBWZXJzaW9uCiBmcm9tIHdlYmtp
dHB5LmNvbW1vbi52ZXJzaW9uX25hbWVfbWFwIGltcG9ydCBQVUJMSUNfVEFCTEUsIElOVEVSTkFM
X1RBQkxFLCBWZXJzaW9uTmFtZU1hcAotZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1
dGl2ZSBpbXBvcnQgRXhlY3V0aXZlCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0
aXZlIGltcG9ydCBFeGVjdXRpdmUsIFNjcmlwdEVycm9yCiAKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0
TG9nZ2VyKF9fbmFtZV9fKQpAQCAtMTA1LDYgKzEwNiwyMSBAQCBjbGFzcyBQbGF0Zm9ybUluZm8o
b2JqZWN0KToKICAgICBkZWYgaXNfbmV0YnNkKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5v
c19uYW1lID09ICduZXRic2QnCiAKKyAgICBAbWVtb2l6ZWQKKyAgICBkZWYgYXJjaGl0ZWN0dXJl
KHNlbGYpOgorICAgICAgICB0cnk6CisgICAgICAgICAgICAjIG9zLnVuYW1lKCkgd29uJ3Qgd29y
ayBvbiBlbWJlZGRlZCBkZXZpY2VzCisgICAgICAgICAgICBvdXRwdXQgPSBzZWxmLl9leGVjdXRp
dmUucnVuX2NvbW1hbmQoWyd1bmFtZScsICctbSddKS5yc3RyaXAoKQorICAgICAgICAgICAgaWYg
b3V0cHV0OgorICAgICAgICAgICAgICAgIGlmIHNlbGYuaXNfbWFjKCkgYW5kIG91dHB1dCAhPSAn
eDg2XzY0JzoKKyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ2FybTY0JworICAgICAgICAg
ICAgICAgIGlmIG91dHB1dCA9PSAnYXJtNjRlJzoKKyAgICAgICAgICAgICAgICAgICAgcmFpc2Ug
QXNzZXJ0aW9uRXJyb3IoIid7fScgaXMgYW4gaW52YWxpZCBhcmNoaXRlY3R1cmUiLmZvcm1hdChv
dXRwdXQpKQorICAgICAgICAgICAgICAgIHJldHVybiBvdXRwdXQKKyAgICAgICAgZXhjZXB0IFNj
cmlwdEVycm9yOgorICAgICAgICAgICAgcGFzcworICAgICAgICByZXR1cm4gb3MudW5hbWUoKVs0
XQorCiAgICAgZGVmIGRpc3BsYXlfbmFtZShzZWxmKToKICAgICAgICAgIyBwbGF0Zm9ybS5wbGF0
Zm9ybSgpIHJldHVybnMgRGFyd2luIGluZm9ybWF0aW9uIGZvciBNYWMsIHdoaWNoIGlzIGp1c3Qg
Y29uZnVzaW5nLgogICAgICAgICBpZiBzZWxmLmlzX21hYygpOgpJbmRleDogVG9vbHMvU2NyaXB0
cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mb19tb2NrLnB5Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fbW9j
ay5weQkocmV2aXNpb24gMjYzNTcwKQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24v
c3lzdGVtL3BsYXRmb3JtaW5mb19tb2NrLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMSArMzIs
MTUgQEAgZnJvbSB3ZWJraXRweS5jb21tb24udmVyc2lvbl9uYW1lX21hcCBpbQogCiAKIGNsYXNz
IE1vY2tQbGF0Zm9ybUluZm8ob2JqZWN0KToKLSAgICBkZWYgX19pbml0X18oc2VsZiwgb3NfbmFt
ZT0nbWFjJywgb3NfdmVyc2lvbj1WZXJzaW9uLmZyb21fbmFtZSgnSGlnaCBTaWVycmEnKSk6Cisg
ICAgZGVmIF9faW5pdF9fKHNlbGYsIG9zX25hbWU9J21hYycsIG9zX3ZlcnNpb249VmVyc2lvbi5m
cm9tX25hbWUoJ0hpZ2ggU2llcnJhJyksIGFyY2hpdGVjdHVyZT1Ob25lKToKICAgICAgICAgYXNz
ZXJ0IGlzaW5zdGFuY2Uob3NfdmVyc2lvbiwgVmVyc2lvbikKICAgICAgICAgc2VsZi5vc19uYW1l
ID0gb3NfbmFtZQogICAgICAgICBzZWxmLm9zX3ZlcnNpb24gPSBvc192ZXJzaW9uCiAgICAgICAg
IHNlbGYuZXhwZWN0ZWRfeGNvZGVfc2ltY3RsX2xpc3QgPSBOb25lCisgICAgICAgIHNlbGYuX2Fy
Y2hpdGVjdHVyZSA9IGFyY2hpdGVjdHVyZSBvciBkaWN0KAorICAgICAgICAgICAgbWFjPSd4ODZf
NjQnLAorICAgICAgICAgICAgaW9zPSdhcm02NCcsCisgICAgICAgICkuZ2V0KHNlbGYub3NfbmFt
ZSwgJ3g4NicpCiAKICAgICBkZWYgaXNfbWFjKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5v
c19uYW1lID09ICdtYWMnCkBAIC01OSw2ICs2Myw5IEBAIGNsYXNzIE1vY2tQbGF0Zm9ybUluZm8o
b2JqZWN0KToKICAgICBkZWYgaXNfZnJlZWJzZChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYu
b3NfbmFtZSA9PSAnZnJlZWJzZCcKIAorICAgIGRlZiBhcmNoaXRlY3R1cmUoc2VsZik6CisgICAg
ICAgIHJldHVybiBzZWxmLl9hcmNoaXRlY3R1cmUKKwogICAgIGRlZiBkaXNwbGF5X25hbWUoc2Vs
Zik6CiAgICAgICAgIHJldHVybiAiTW9ja1BsYXRmb3JtIDEuMCIKIApJbmRleDogVG9vbHMvU2Ny
aXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9wb3J0L2Jhc2UucHkJKHJldmlzaW9uIDI2MzU3MCkKKysrIFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvcG9ydC9iYXNlLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsMTkgKzEwMiwxMSBA
QCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgICMgVGhlc2UgYXJlIGRlZmF1bHQgdmFsdWVz
IHRoYXQgc2hvdWxkIGJlIG92ZXJyaWRkZW4gaW4gYSBzdWJjbGFzc2VzLgogICAgICAgICBzZWxm
Ll9vc192ZXJzaW9uID0gTm9uZQogCi0gICAgICAgICMgRklYTUU6IFRoaXMgY2FuIGJlIHJlbW92
ZWQgb25jZSBkZWZhdWx0IGFyY2hpdGVjdHVyZXMgZm9yIEdUSyBhbmQgRUZMIEVXUyBib3RzIGFy
ZSBzZXQuCi0gICAgICAgIHNlbGYuZGlkX292ZXJyaWRlX2FyY2hpdGVjdHVyZSA9IEZhbHNlCi0K
ICAgICAgICAgIyBGSVhNRTogSWRlYWxseSB3ZSdkIGhhdmUgYSBwYWNrYWdlLXdpZGUgd2F5IHRv
IGdldCBhCiAgICAgICAgICMgd2VsbC1mb3JtZWQgb3B0aW9ucyBvYmplY3QgdGhhdCBoYWQgYWxs
IG9mIHRoZSBuZWNlc3NhcnkKICAgICAgICAgIyBvcHRpb25zIGRlZmluZWQgb24gaXQuCiAgICAg
ICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zIG9yIG9wdHBhcnNlLlZhbHVlcygpCiAKLSAgICAg
ICAgaWYgc2VsZi5nZXRfb3B0aW9uKCdhcmNoaXRlY3R1cmUnKToKLSAgICAgICAgICAgIHNlbGYu
ZGlkX292ZXJyaWRlX2FyY2hpdGVjdHVyZSA9IFRydWUKLSAgICAgICAgZWxzZToKLSAgICAgICAg
ICAgIHNlbGYuc2V0X29wdGlvbignYXJjaGl0ZWN0dXJlJywgc2VsZi5ERUZBVUxUX0FSQ0hJVEVD
VFVSRSkKLQogICAgICAgICBpZiBzZWxmLl9uYW1lIGFuZCAnLXdrMicgaW4gc2VsZi5fbmFtZToK
ICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMud2Via2l0X3Rlc3RfcnVubmVyID0gVHJ1ZQogCkBA
IC0xNDksMTAgKzE0MSw5IEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHNl
bGYuaG9zdAogCiAgICAgZGVmIGFyY2hpdGVjdHVyZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNl
bGYuZ2V0X29wdGlvbignYXJjaGl0ZWN0dXJlJykKKyAgICAgICAgcmV0dXJuIHNlbGYuZ2V0X29w
dGlvbignYXJjaGl0ZWN0dXJlJykgb3Igc2VsZi5ERUZBVUxUX0FSQ0hJVEVDVFVSRQogCiAgICAg
ZGVmIHNldF9hcmNoaXRlY3R1cmUoc2VsZiwgYXJjaCk6Ci0gICAgICAgIHNlbGYuZGlkX292ZXJy
aWRlX2FyY2hpdGVjdHVyZSA9IFRydWUKICAgICAgICAgc2VsZi5zZXRfb3B0aW9uKCdhcmNoaXRl
Y3R1cmUnLCBhcmNoKQogCiAgICAgZGVmIGFkZGl0aW9uYWxfZHJ0X2ZsYWcoc2VsZik6CkluZGV4
OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQkocmV2aXNpb24gMjYzNTcwKQor
KysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHkJKHdvcmtpbmcgY29weSkK
QEAgLTg0LDggKzg0LDEyIEBAIGRlZiBjb25maWd1cmF0aW9uX29wdGlvbnMoKToKICAgICAgICAg
b3B0cGFyc2UubWFrZV9vcHRpb24oJy0tNjQtYml0JywgYWN0aW9uPSdzdG9yZV9jb25zdCcsIGNv
bnN0PSd4ODZfNjQnLCBkZWZhdWx0PU5vbmUsIGRlc3Q9ImFyY2hpdGVjdHVyZSIsCiAgICAgICAg
ICAgICBoZWxwPSd1c2UgNjQtYml0IGJpbmFyaWVzIGJ5IGRlZmF1bHQgKHg4Nl82NCBpbnN0ZWFk
IG9mIHg4NiknKSwKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tMzItYml0JywgYWN0
aW9uPSdzdG9yZV9jb25zdCcsIGNvbnN0PSd4ODYnLCBkZWZhdWx0PU5vbmUsIGRlc3Q9ImFyY2hp
dGVjdHVyZSIsCi0gICAgICAgICAgICBoZWxwPSd1c2UgMzItYml0IGJpbmFyaWVzIGJ5IGRlZmF1
bHQgKHg4NiBpbnN0ZWFkIG9mIHg4Nl82NCknKSwKLSAgICAgICAgXQorICAgICAgICAgICAgIGhl
bHA9J3VzZSAzMi1iaXQgYmluYXJpZXMgYnkgZGVmYXVsdCAoeDg2IGluc3RlYWQgb2YgeDg2XzY0
KScpLAorICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS1hcm0nLCBhY3Rpb249J3N0b3Jl
X2NvbnN0JywgY29uc3Q9J2FybTY0ZScsIGRlZmF1bHQ9Tm9uZSwgZGVzdD0iYXJjaGl0ZWN0dXJl
IiwKKyAgICAgICAgICAgICBoZWxwPSdVc2UgYXJtNjRlIGJpbmFyaWVzIGJ5IGRlZmF1bHQnKSwK
KyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tYXJjaGl0ZWN0dXJlJywgYWN0aW9uPSdz
dG9yZV9jb25zdCcsIGNvbnN0PSd4ODYnLCBkZWZhdWx0PU5vbmUsIGRlc3Q9ImFyY2hpdGVjdHVy
ZSIsCisgICAgICAgICAgICAgaGVscD0nVXNlIGJpbmFyaWVzIG9mIHRoZSBzcGVjaWZpZWQgYXJj
aGl0ZWN0dXJlIGJ5IGRlZmF1bHQuJyksCisgICAgXQogCiAKIGRlZiBfYnVpbGRlcl9vcHRpb25z
KGJ1aWxkZXJfbmFtZSk6CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbWFjLnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWMucHkJKHJldmlz
aW9uIDI2MzU3MCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWMucHkJKHdvcmtp
bmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3MgTWFjUG9ydChEYXJ3aW5Qb3J0KToKIAog
ICAgIFNESyA9ICdtYWNvc3gnCiAKLSAgICBBUkNISVRFQ1RVUkVTID0gWyd4ODZfNjQnLCAneDg2
J10KKyAgICBBUkNISVRFQ1RVUkVTID0gWyd4ODZfNjQnLCAneDg2JywgJ2FybTY0J10KIAogICAg
IERFRkFVTFRfQVJDSElURUNUVVJFID0gJ3g4Nl82NCcKIApAQCAtNjYsOCArNjYsMTQgQEAgY2xh
c3MgTWFjUG9ydChEYXJ3aW5Qb3J0KToKICAgICAgICAgaWYgbm90IHNlbGYuX29zX3ZlcnNpb246
CiAgICAgICAgICAgICBzZWxmLl9vc192ZXJzaW9uID0gTWFjUG9ydC5DVVJSRU5UX1ZFUlNJT04K
IAorICAgIGRlZiBhcmNoaXRlY3R1cmUoc2VsZik6CisgICAgICAgIHJlc3VsdCA9IHNlbGYuZ2V0
X29wdGlvbignYXJjaGl0ZWN0dXJlJykgb3Igc2VsZi5ob3N0LnBsYXRmb3JtLmFyY2hpdGVjdHVy
ZSgpCisgICAgICAgIGlmIHJlc3VsdCA9PSAnYXJtNjRlJzoKKyAgICAgICAgICAgIHJldHVybiAn
YXJtNjQnCisgICAgICAgIHJldHVybiByZXN1bHQKKwogICAgIGRlZiBfYnVpbGRfZHJpdmVyX2Zs
YWdzKHNlbGYpOgotICAgICAgICByZXR1cm4gWydBUkNIUz1pMzg2J10gaWYgc2VsZi5hcmNoaXRl
Y3R1cmUoKSA9PSAneDg2JyBlbHNlIFtdCisgICAgICAgIHJldHVybiBbJ0FSQ0hTPWkzODYnXSBp
ZiBzZWxmLmFyY2hpdGVjdHVyZSgpID09ICd4ODYnIGVsc2UgWydBUkNIUz17fScuZm9ybWF0KHNl
bGYuYXJjaGl0ZWN0dXJlKCkpXQogCiAgICAgZGVmIGRlZmF1bHRfYmFzZWxpbmVfc2VhcmNoX3Bh
dGgoc2VsZiwgKiprd2FyZ3MpOgogICAgICAgICB2ZXJzaW9uc190b19mYWxsYmFjayA9IFtdCklu
ZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbWFjX3VuaXR0ZXN0LnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWNfdW5pdHRlc3QucHkJKHJldmlz
aW9uIDI2MzU3MCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWNfdW5pdHRlc3Qu
cHkJKHdvcmtpbmcgY29weSkKQEAgLTEyNSw4ICsxMjUsNyBAQCBjbGFzcyBNYWNUZXN0KGRhcndp
bl90ZXN0Y2FzZS5EYXJ3aW5UZXN0CiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5hcmdz
LCBbJ0FSQ0hTPWkzODYnXSkKIAogICAgIGRlZiB0ZXN0XzY0Yml0KHNlbGYpOgotICAgICAgICAj
IEFwcGxlIE1hYyBwb3J0IGlzIDY0LWJpdCBieSBkZWZhdWx0Ci0gICAgICAgIHBvcnQgPSBzZWxm
Lm1ha2VfcG9ydCgpCisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydChvcHRpb25zPU1vY2tP
cHRpb25zKGFyY2hpdGVjdHVyZT0neDg2XzY0JykpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwo
cG9ydC5hcmNoaXRlY3R1cmUoKSwgJ3g4Nl82NCcpCiAKICAgICAgICAgZGVmIHJ1bl9zY3JpcHQo
c2NyaXB0LCBhcmdzPU5vbmUsIGVudj1Ob25lKToKQEAgLTEzNCw3ICsxMzMsMjkgQEAgY2xhc3Mg
TWFjVGVzdChkYXJ3aW5fdGVzdGNhc2UuRGFyd2luVGVzdAogCiAgICAgICAgIHBvcnQuX3J1bl9z
Y3JpcHQgPSBydW5fc2NyaXB0CiAgICAgICAgIHBvcnQuX2J1aWxkX2RyaXZlcigpCi0gICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5hcmdzLCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVh
bChzZWxmLmFyZ3MsIFsnQVJDSFM9eDg2XzY0J10pCisKKyAgICBkZWYgdGVzdF9hcm0oc2VsZik6
CisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydChvcHRpb25zPU1vY2tPcHRpb25zKGFyY2hp
dGVjdHVyZT0nYXJtNjRlJykpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5hcmNoaXRl
Y3R1cmUoKSwgJ2FybTY0JykKKworICAgICAgICBkZWYgcnVuX3NjcmlwdChzY3JpcHQsIGFyZ3M9
Tm9uZSwgZW52PU5vbmUpOgorICAgICAgICAgICAgc2VsZi5hcmdzID0gYXJncworCisgICAgICAg
IHBvcnQuX3J1bl9zY3JpcHQgPSBydW5fc2NyaXB0CisgICAgICAgIHBvcnQuX2J1aWxkX2RyaXZl
cigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5hcmdzLCBbJ0FSQ0hTPWFybTY0J10p
CisKKyAgICBkZWYgdGVzdF9kZWZhdWx0KHNlbGYpOgorICAgICAgICBwb3J0ID0gc2VsZi5tYWtl
X3BvcnQoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuYXJjaGl0ZWN0dXJlKCksIHBv
cnQuaG9zdC5wbGF0Zm9ybS5hcmNoaXRlY3R1cmUoKSkKKworICAgICAgICBkZWYgcnVuX3Njcmlw
dChzY3JpcHQsIGFyZ3M9Tm9uZSwgZW52PU5vbmUpOgorICAgICAgICAgICAgc2VsZi5hcmdzID0g
YXJncworCisgICAgICAgIHBvcnQuX3J1bl9zY3JpcHQgPSBydW5fc2NyaXB0CisgICAgICAgIHBv
cnQuX2J1aWxkX2RyaXZlcigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5hcmdzLCBb
J0FSQ0hTPXt9Jy5mb3JtYXQocG9ydC5ob3N0LnBsYXRmb3JtLmFyY2hpdGVjdHVyZSgpKV0pCiAK
ICAgICBkZWYgdGVzdF9zZGtfbmFtZShzZWxmKToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9w
b3J0KCkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdh
cm5pbmdzeXN0ZW0ucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29s
L2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQkocmV2aXNpb24gMjYzNTcwKQorKysgVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQko
d29ya2luZyBjb3B5KQpAQCAtMTE3LDcgKzExNyw3IEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJu
aW5nU3lzdGVtKEFic3RyYWMKICAgICAgICAgcmV0dXJuIHNlbGYubmFtZQogCiAgICAgZGVmIHJ1
bl9jb21tYW5kKHNlbGYsIGNvbW1hbmQpOgotICAgICAgICBzZWxmLnJ1bl93ZWJraXRfcGF0Y2go
Y29tbWFuZCArIFtzZWxmLl9kZXByZWNhdGVkX3BvcnQuZmxhZygpXSArIChbJy0tYXJjaGl0ZWN0
dXJlPSVzJyAlIHNlbGYuX3BvcnQuYXJjaGl0ZWN0dXJlKCldIGlmIHNlbGYuX3BvcnQuYXJjaGl0
ZWN0dXJlKCkgYW5kIHNlbGYuX3BvcnQuZGlkX292ZXJyaWRlX2FyY2hpdGVjdHVyZSBlbHNlIFtd
KSkKKyAgICAgICAgc2VsZi5ydW5fd2Via2l0X3BhdGNoKGNvbW1hbmQgKyBbc2VsZi5fZGVwcmVj
YXRlZF9wb3J0LmZsYWcoKV0gKyAoWyctLWFyY2hpdGVjdHVyZT0lcycgJSBzZWxmLl9wb3J0LmFy
Y2hpdGVjdHVyZSgpXSBpZiBzZWxmLl9wb3J0LmFyY2hpdGVjdHVyZSgpICE9IHNlbGYuX3BvcnQu
REVGQVVMVF9BUkNISVRFQ1RVUkUgZWxzZSBbXSkpCiAKICAgICBkZWYgdGVzdF9yZXN1bHRzKHNl
bGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9yZXN1bHRzX3JlYWRlci5yZXN1bHRzKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402901</attachid>
            <date>2020-06-26 14:21:02 -0700</date>
            <delta_ts>2020-06-26 14:32:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213653-20200626142101.patch</filename>
            <type>text/plain</type>
            <size>11544</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2MzU4NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM2IEBACisyMDIwLTA2LTI2ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0cHldIFN1cHBvcnQgQXBwbGUgU2lsaWNvbiAoUGFydCAxKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNjUzCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS82NDgxNzY1Nj4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZp
Zy9ld3MuanNvbjogaU9TIGhhcyB0aGUgY29ycmVjdCBkZWZhdWx0cywgbm8gbmVlZCB0byBvdmVy
cmlkZSB0aGVtLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0
Zm9ybWluZm8ucHk6CisgICAgICAgIChQbGF0Zm9ybUluZm8pOgorICAgICAgICAoUGxhdGZvcm1J
bmZvLmFyY2hpdGVjdHVyZSk6IFJldHJpZXZlIHRoZSBjdXJyZW50IHN5c3RlbSdzIGFyY2hpdGVj
dHVyZS4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1p
bmZvX21vY2sucHk6CisgICAgICAgIChNb2NrUGxhdGZvcm1JbmZvLl9faW5pdF9fKToKKyAgICAg
ICAgKE1vY2tQbGF0Zm9ybUluZm8uYXJjaGl0ZWN0dXJlKToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3BvcnQvYmFzZS5weToKKyAgICAgICAgKFBvcnQuX19pbml0X18pOiBSZW1vdmUgJ2Rp
ZF9vdmVycmlkZV9hcmNoaXRlY3R1cmUnLCBzaG91bGQgYmUgaW1wbGllZCBieSBhcmNoaXRlY3R1
cmUgY29tcGFyZWQgd2l0aCBERUZBVUxUX0FSQ0hJVEVDVFVSRS4KKyAgICAgICAgKFBvcnQuYXJj
aGl0ZWN0dXJlKTogUmV0dXJuIHRoZSBhcmNoaXRlY3R1cmUgc3BlY2lmaWVkIGJ5IHRoZSB1c2Vy
LCBpZiBpdCBleGlzdHMuCisgICAgICAgIChQb3J0LnNldF9hcmNoaXRlY3R1cmUpOiBSZW1vdmUg
J2RpZF9vdmVycmlkZV9hcmNoaXRlY3R1cmUnLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkv
cG9ydC9mYWN0b3J5LnB5OgorICAgICAgICAoY29uZmlndXJhdGlvbl9vcHRpb25zKTogQWRkIC0t
YXJtIGFuZCAtLWFyY2hpdGVjdHVyZSBmbGFncy4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5
L3BvcnQvbWFjLnB5OgorICAgICAgICAoTWFjUG9ydCk6IEFkZCBhcm02NCB0byBzdXBwb3J0ZWQg
YXJjaGl0ZWN0dXJlcy4KKyAgICAgICAgKE1hY1BvcnQuYXJjaGl0ZWN0dXJlKTogQ29udmVydCBh
cm02NGUgdG8gYXJtNjQsIGNoZWNrIHRoZSBob3N0J3MgYXJjaGl0ZWN0dXJlLgorICAgICAgICAo
TWFjUG9ydC5fYnVpbGRfZHJpdmVyX2ZsYWdzKTogQWx3YXlzIHNwZWNpZnkgdGhlIGJ1aWxkIGFy
Y2hpdGVjdHVyZSBzaW5jZSBpdCBtYXkgYmUgeDg2XzY0IG9yIGFybTY0LgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvcG9ydC9tYWNfdW5pdHRlc3QucHk6CisgICAgICAgIChNYWNUZXN0LnRl
c3RfNjRiaXQpOgorICAgICAgICAoTWFjVGVzdCk6CisgICAgICAgIChNYWNUZXN0LnRlc3RfYXJt
KToKKyAgICAgICAgKE1hY1Rlc3QudGVzdF9kZWZhdWx0KToKKyAgICAgICAgKiBTY3JpcHRzL3dl
YmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5OgorICAgICAgICAoQWJz
dHJhY3RFYXJseVdhcm5pbmdTeXN0ZW0ucnVuX2NvbW1hbmQpOiBSZW1vdmUgZGlkX292ZXJyaWRl
X2FyY2hpdGVjdHVyZS4KKwogMjAyMC0wNi0yNiAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBh
cHBsZS5jb20+CiAKICAgICAgICAgW0JpZyBTdXJdIEhhbmRsZSBiYXNlbGluZSBzZWFyY2ggcGF0
aCAoRm9sbG93LXVwIGZpeCkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2Nv
bmZpZy9ld3MuanNvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1v
bi9jb25maWcvZXdzLmpzb24JKHJldmlzaW9uIDI2MzU4NCkKKysrIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgkod29ya2luZyBjb3B5KQpAQCAtMTQsOCArMTQs
NyBAQAogICAgIH0sCiAgICAgImlPUyBFV1MiOiB7CiAgICAgICAgICJwb3J0IjogImlvcy1kZXZp
Y2UiLAotICAgICAgICAibmFtZSI6ICJpb3MtZXdzIiwKLSAgICAgICAgImFyY2hpdGVjdHVyZSI6
ICJhcm02NCIKKyAgICAgICAgIm5hbWUiOiAiaW9zLWV3cyIKICAgICB9LAogICAgICJpT1MgU2lt
dWxhdG9yIEVXUyI6IHsKICAgICAgICAgInBvcnQiOiAiaW9zLXNpbXVsYXRvci13azIiLApJbmRl
eDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weQo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZv
cm1pbmZvLnB5CShyZXZpc2lvbiAyNjM1ODQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L2Nv
bW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yNyw2ICsyNyw3
IEBACiAjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCitpbXBvcnQgb3MKIGltcG9ydCBs
b2dnaW5nCiBpbXBvcnQgcmUKIGltcG9ydCBzeXMKQEAgLTM0LDcgKzM1LDcgQEAgaW1wb3J0IHN5
cwogZnJvbSB3ZWJraXRweS5jb21tb24ubWVtb2l6ZWQgaW1wb3J0IG1lbW9pemVkCiBmcm9tIHdl
YmtpdHB5LmNvbW1vbi52ZXJzaW9uIGltcG9ydCBWZXJzaW9uCiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi52ZXJzaW9uX25hbWVfbWFwIGltcG9ydCBQVUJMSUNfVEFCTEUsIElOVEVSTkFMX1RBQkxFLCBW
ZXJzaW9uTmFtZU1hcAotZnJvbSB3ZWJraXRweS5jb21tb24uc3lzdGVtLmV4ZWN1dGl2ZSBpbXBv
cnQgRXhlY3V0aXZlCitmcm9tIHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9y
dCBFeGVjdXRpdmUsIFNjcmlwdEVycm9yCiAKIAogX2xvZyA9IGxvZ2dpbmcuZ2V0TG9nZ2VyKF9f
bmFtZV9fKQpAQCAtMTA1LDYgKzEwNiwxOSBAQCBjbGFzcyBQbGF0Zm9ybUluZm8ob2JqZWN0KToK
ICAgICBkZWYgaXNfbmV0YnNkKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5vc19uYW1lID09
ICduZXRic2QnCiAKKyAgICBAbWVtb2l6ZWQKKyAgICBkZWYgYXJjaGl0ZWN0dXJlKHNlbGYpOgor
ICAgICAgICB0cnk6CisgICAgICAgICAgICAjIG9zLnVuYW1lKCkgd29uJ3Qgd29yayBvbiBlbWJl
ZGRlZCBkZXZpY2VzCisgICAgICAgICAgICBvdXRwdXQgPSBzZWxmLl9leGVjdXRpdmUucnVuX2Nv
bW1hbmQoWyd1bmFtZScsICctbSddKS5yc3RyaXAoKQorICAgICAgICAgICAgaWYgb3V0cHV0Ogor
ICAgICAgICAgICAgICAgIGlmIHNlbGYuaXNfbWFjKCkgYW5kIG91dHB1dCAhPSAneDg2XzY0JzoK
KyAgICAgICAgICAgICAgICAgICAgb3V0cHV0ID0gJ2FybTY0JworICAgICAgICAgICAgICAgIHJl
dHVybiBvdXRwdXQKKyAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yOgorICAgICAgICAgICAgcGFz
cworICAgICAgICByZXR1cm4gb3MudW5hbWUoKVs0XQorCiAgICAgZGVmIGRpc3BsYXlfbmFtZShz
ZWxmKToKICAgICAgICAgIyBwbGF0Zm9ybS5wbGF0Zm9ybSgpIHJldHVybnMgRGFyd2luIGluZm9y
bWF0aW9uIGZvciBNYWMsIHdoaWNoIGlzIGp1c3QgY29uZnVzaW5nLgogICAgICAgICBpZiBzZWxm
LmlzX21hYygpOgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3Bs
YXRmb3JtaW5mb19tb2NrLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
Y29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fbW9jay5weQkocmV2aXNpb24gMjYzNTg0KQorKysg
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mb19tb2NrLnB5
CSh3b3JraW5nIGNvcHkpCkBAIC0zMiwxMSArMzIsMTUgQEAgZnJvbSB3ZWJraXRweS5jb21tb24u
dmVyc2lvbl9uYW1lX21hcCBpbQogCiAKIGNsYXNzIE1vY2tQbGF0Zm9ybUluZm8ob2JqZWN0KToK
LSAgICBkZWYgX19pbml0X18oc2VsZiwgb3NfbmFtZT0nbWFjJywgb3NfdmVyc2lvbj1WZXJzaW9u
LmZyb21fbmFtZSgnSGlnaCBTaWVycmEnKSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9zX25h
bWU9J21hYycsIG9zX3ZlcnNpb249VmVyc2lvbi5mcm9tX25hbWUoJ0hpZ2ggU2llcnJhJyksIGFy
Y2hpdGVjdHVyZT1Ob25lKToKICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uob3NfdmVyc2lvbiwg
VmVyc2lvbikKICAgICAgICAgc2VsZi5vc19uYW1lID0gb3NfbmFtZQogICAgICAgICBzZWxmLm9z
X3ZlcnNpb24gPSBvc192ZXJzaW9uCiAgICAgICAgIHNlbGYuZXhwZWN0ZWRfeGNvZGVfc2ltY3Rs
X2xpc3QgPSBOb25lCisgICAgICAgIHNlbGYuX2FyY2hpdGVjdHVyZSA9IGFyY2hpdGVjdHVyZSBv
ciBkaWN0KAorICAgICAgICAgICAgbWFjPSd4ODZfNjQnLAorICAgICAgICAgICAgaW9zPSdhcm02
NCcsCisgICAgICAgICkuZ2V0KHNlbGYub3NfbmFtZSwgJ3g4NicpCiAKICAgICBkZWYgaXNfbWFj
KHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5vc19uYW1lID09ICdtYWMnCkBAIC01OSw2ICs2
Myw5IEBAIGNsYXNzIE1vY2tQbGF0Zm9ybUluZm8ob2JqZWN0KToKICAgICBkZWYgaXNfZnJlZWJz
ZChzZWxmKToKICAgICAgICAgcmV0dXJuIHNlbGYub3NfbmFtZSA9PSAnZnJlZWJzZCcKIAorICAg
IGRlZiBhcmNoaXRlY3R1cmUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9hcmNoaXRlY3R1
cmUKKwogICAgIGRlZiBkaXNwbGF5X25hbWUoc2VsZik6CiAgICAgICAgIHJldHVybiAiTW9ja1Bs
YXRmb3JtIDEuMCIKIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkJKHJldmlz
aW9uIDI2MzU4NCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDIsMTkgKzEwMiwxMSBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAg
ICAgICMgVGhlc2UgYXJlIGRlZmF1bHQgdmFsdWVzIHRoYXQgc2hvdWxkIGJlIG92ZXJyaWRkZW4g
aW4gYSBzdWJjbGFzc2VzLgogICAgICAgICBzZWxmLl9vc192ZXJzaW9uID0gTm9uZQogCi0gICAg
ICAgICMgRklYTUU6IFRoaXMgY2FuIGJlIHJlbW92ZWQgb25jZSBkZWZhdWx0IGFyY2hpdGVjdHVy
ZXMgZm9yIEdUSyBhbmQgRUZMIEVXUyBib3RzIGFyZSBzZXQuCi0gICAgICAgIHNlbGYuZGlkX292
ZXJyaWRlX2FyY2hpdGVjdHVyZSA9IEZhbHNlCi0KICAgICAgICAgIyBGSVhNRTogSWRlYWxseSB3
ZSdkIGhhdmUgYSBwYWNrYWdlLXdpZGUgd2F5IHRvIGdldCBhCiAgICAgICAgICMgd2VsbC1mb3Jt
ZWQgb3B0aW9ucyBvYmplY3QgdGhhdCBoYWQgYWxsIG9mIHRoZSBuZWNlc3NhcnkKICAgICAgICAg
IyBvcHRpb25zIGRlZmluZWQgb24gaXQuCiAgICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25z
IG9yIG9wdHBhcnNlLlZhbHVlcygpCiAKLSAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCdhcmNo
aXRlY3R1cmUnKToKLSAgICAgICAgICAgIHNlbGYuZGlkX292ZXJyaWRlX2FyY2hpdGVjdHVyZSA9
IFRydWUKLSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuc2V0X29wdGlvbignYXJjaGl0
ZWN0dXJlJywgc2VsZi5ERUZBVUxUX0FSQ0hJVEVDVFVSRSkKLQogICAgICAgICBpZiBzZWxmLl9u
YW1lIGFuZCAnLXdrMicgaW4gc2VsZi5fbmFtZToKICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMu
d2Via2l0X3Rlc3RfcnVubmVyID0gVHJ1ZQogCkBAIC0xNDksMTAgKzE0MSw5IEBAIGNsYXNzIFBv
cnQob2JqZWN0KToKICAgICAgICAgcmV0dXJuIHNlbGYuaG9zdAogCiAgICAgZGVmIGFyY2hpdGVj
dHVyZShzZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuZ2V0X29wdGlvbignYXJjaGl0ZWN0dXJl
JykKKyAgICAgICAgcmV0dXJuIHNlbGYuZ2V0X29wdGlvbignYXJjaGl0ZWN0dXJlJykgb3Igc2Vs
Zi5ERUZBVUxUX0FSQ0hJVEVDVFVSRQogCiAgICAgZGVmIHNldF9hcmNoaXRlY3R1cmUoc2VsZiwg
YXJjaCk6Ci0gICAgICAgIHNlbGYuZGlkX292ZXJyaWRlX2FyY2hpdGVjdHVyZSA9IFRydWUKICAg
ICAgICAgc2VsZi5zZXRfb3B0aW9uKCdhcmNoaXRlY3R1cmUnLCBhcmNoKQogCiAgICAgZGVmIGFk
ZGl0aW9uYWxfZHJ0X2ZsYWcoc2VsZik6CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Bv
cnQvZmFjdG9yeS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQv
ZmFjdG9yeS5weQkocmV2aXNpb24gMjYzNTg0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9w
b3J0L2ZhY3RvcnkucHkJKHdvcmtpbmcgY29weSkKQEAgLTg0LDggKzg0LDEyIEBAIGRlZiBjb25m
aWd1cmF0aW9uX29wdGlvbnMoKToKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tNjQt
Yml0JywgYWN0aW9uPSdzdG9yZV9jb25zdCcsIGNvbnN0PSd4ODZfNjQnLCBkZWZhdWx0PU5vbmUs
IGRlc3Q9ImFyY2hpdGVjdHVyZSIsCiAgICAgICAgICAgICBoZWxwPSd1c2UgNjQtYml0IGJpbmFy
aWVzIGJ5IGRlZmF1bHQgKHg4Nl82NCBpbnN0ZWFkIG9mIHg4NiknKSwKICAgICAgICAgb3B0cGFy
c2UubWFrZV9vcHRpb24oJy0tMzItYml0JywgYWN0aW9uPSdzdG9yZV9jb25zdCcsIGNvbnN0PSd4
ODYnLCBkZWZhdWx0PU5vbmUsIGRlc3Q9ImFyY2hpdGVjdHVyZSIsCi0gICAgICAgICAgICBoZWxw
PSd1c2UgMzItYml0IGJpbmFyaWVzIGJ5IGRlZmF1bHQgKHg4NiBpbnN0ZWFkIG9mIHg4Nl82NCkn
KSwKLSAgICAgICAgXQorICAgICAgICAgICAgIGhlbHA9J3VzZSAzMi1iaXQgYmluYXJpZXMgYnkg
ZGVmYXVsdCAoeDg2IGluc3RlYWQgb2YgeDg2XzY0KScpLAorICAgICAgICBvcHRwYXJzZS5tYWtl
X29wdGlvbignLS1hcm0nLCBhY3Rpb249J3N0b3JlX2NvbnN0JywgY29uc3Q9J2FybTY0ZScsIGRl
ZmF1bHQ9Tm9uZSwgZGVzdD0iYXJjaGl0ZWN0dXJlIiwKKyAgICAgICAgICAgICBoZWxwPSdVc2Ug
YXJtNjRlIGJpbmFyaWVzIGJ5IGRlZmF1bHQnKSwKKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRp
b24oJy0tYXJjaGl0ZWN0dXJlJywgYWN0aW9uPSdzdG9yZV9jb25zdCcsIGNvbnN0PSd4ODYnLCBk
ZWZhdWx0PU5vbmUsIGRlc3Q9ImFyY2hpdGVjdHVyZSIsCisgICAgICAgICAgICAgaGVscD0nVXNl
IGJpbmFyaWVzIG9mIHRoZSBzcGVjaWZpZWQgYXJjaGl0ZWN0dXJlIGJ5IGRlZmF1bHQuJyksCisg
ICAgXQogCiAKIGRlZiBfYnVpbGRlcl9vcHRpb25zKGJ1aWxkZXJfbmFtZSk6CkluZGV4OiBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvbWFjLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9tYWMucHkJKHJldmlzaW9uIDI2MzU4NCkKKysrIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9tYWMucHkJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAg
Y2xhc3MgTWFjUG9ydChEYXJ3aW5Qb3J0KToKIAogICAgIFNESyA9ICdtYWNvc3gnCiAKLSAgICBB
UkNISVRFQ1RVUkVTID0gWyd4ODZfNjQnLCAneDg2J10KKyAgICBBUkNISVRFQ1RVUkVTID0gWyd4
ODZfNjQnLCAneDg2JywgJ2FybTY0J10KIAogICAgIERFRkFVTFRfQVJDSElURUNUVVJFID0gJ3g4
Nl82NCcKIApAQCAtNjYsOCArNjYsMTQgQEAgY2xhc3MgTWFjUG9ydChEYXJ3aW5Qb3J0KToKICAg
ICAgICAgaWYgbm90IHNlbGYuX29zX3ZlcnNpb246CiAgICAgICAgICAgICBzZWxmLl9vc192ZXJz
aW9uID0gTWFjUG9ydC5DVVJSRU5UX1ZFUlNJT04KIAorICAgIGRlZiBhcmNoaXRlY3R1cmUoc2Vs
Zik6CisgICAgICAgIHJlc3VsdCA9IHNlbGYuZ2V0X29wdGlvbignYXJjaGl0ZWN0dXJlJykgb3Ig
c2VsZi5ob3N0LnBsYXRmb3JtLmFyY2hpdGVjdHVyZSgpCisgICAgICAgIGlmIHJlc3VsdCA9PSAn
YXJtNjRlJzoKKyAgICAgICAgICAgIHJldHVybiAnYXJtNjQnCisgICAgICAgIHJldHVybiByZXN1
bHQKKwogICAgIGRlZiBfYnVpbGRfZHJpdmVyX2ZsYWdzKHNlbGYpOgotICAgICAgICByZXR1cm4g
WydBUkNIUz1pMzg2J10gaWYgc2VsZi5hcmNoaXRlY3R1cmUoKSA9PSAneDg2JyBlbHNlIFtdCisg
ICAgICAgIHJldHVybiBbJ0FSQ0hTPWkzODYnXSBpZiBzZWxmLmFyY2hpdGVjdHVyZSgpID09ICd4
ODYnIGVsc2UgWydBUkNIUz17fScuZm9ybWF0KHNlbGYuYXJjaGl0ZWN0dXJlKCkpXQogCiAgICAg
ZGVmIGRlZmF1bHRfYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZiwgKiprd2FyZ3MpOgogICAgICAg
ICB2ZXJzaW9uc190b19mYWxsYmFjayA9IFtdCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L3BvcnQvbWFjX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvcG9ydC9tYWNfdW5pdHRlc3QucHkJKHJldmlzaW9uIDI2MzU4NCkKKysrIFRvb2xzL1Njcmlw
dHMvd2Via2l0cHkvcG9ydC9tYWNfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTEyNSw4
ICsxMjUsNyBAQCBjbGFzcyBNYWNUZXN0KGRhcndpbl90ZXN0Y2FzZS5EYXJ3aW5UZXN0CiAgICAg
ICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5hcmdzLCBbJ0FSQ0hTPWkzODYnXSkKIAogICAgIGRl
ZiB0ZXN0XzY0Yml0KHNlbGYpOgotICAgICAgICAjIEFwcGxlIE1hYyBwb3J0IGlzIDY0LWJpdCBi
eSBkZWZhdWx0Ci0gICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCisgICAgICAgIHBvcnQg
PSBzZWxmLm1ha2VfcG9ydChvcHRpb25zPU1vY2tPcHRpb25zKGFyY2hpdGVjdHVyZT0neDg2XzY0
JykpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5hcmNoaXRlY3R1cmUoKSwgJ3g4Nl82
NCcpCiAKICAgICAgICAgZGVmIHJ1bl9zY3JpcHQoc2NyaXB0LCBhcmdzPU5vbmUsIGVudj1Ob25l
KToKQEAgLTEzNCw3ICsxMzMsMjkgQEAgY2xhc3MgTWFjVGVzdChkYXJ3aW5fdGVzdGNhc2UuRGFy
d2luVGVzdAogCiAgICAgICAgIHBvcnQuX3J1bl9zY3JpcHQgPSBydW5fc2NyaXB0CiAgICAgICAg
IHBvcnQuX2J1aWxkX2RyaXZlcigpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5hcmdz
LCBbXSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmFyZ3MsIFsnQVJDSFM9eDg2XzY0
J10pCisKKyAgICBkZWYgdGVzdF9hcm0oc2VsZik6CisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2Vf
cG9ydChvcHRpb25zPU1vY2tPcHRpb25zKGFyY2hpdGVjdHVyZT0nYXJtNjRlJykpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5hcmNoaXRlY3R1cmUoKSwgJ2FybTY0JykKKworICAgICAg
ICBkZWYgcnVuX3NjcmlwdChzY3JpcHQsIGFyZ3M9Tm9uZSwgZW52PU5vbmUpOgorICAgICAgICAg
ICAgc2VsZi5hcmdzID0gYXJncworCisgICAgICAgIHBvcnQuX3J1bl9zY3JpcHQgPSBydW5fc2Ny
aXB0CisgICAgICAgIHBvcnQuX2J1aWxkX2RyaXZlcigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1
YWwoc2VsZi5hcmdzLCBbJ0FSQ0hTPWFybTY0J10pCisKKyAgICBkZWYgdGVzdF9kZWZhdWx0KHNl
bGYpOgorICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQorICAgICAgICBzZWxmLmFzc2Vy
dEVxdWFsKHBvcnQuYXJjaGl0ZWN0dXJlKCksIHBvcnQuaG9zdC5wbGF0Zm9ybS5hcmNoaXRlY3R1
cmUoKSkKKworICAgICAgICBkZWYgcnVuX3NjcmlwdChzY3JpcHQsIGFyZ3M9Tm9uZSwgZW52PU5v
bmUpOgorICAgICAgICAgICAgc2VsZi5hcmdzID0gYXJncworCisgICAgICAgIHBvcnQuX3J1bl9z
Y3JpcHQgPSBydW5fc2NyaXB0CisgICAgICAgIHBvcnQuX2J1aWxkX2RyaXZlcigpCisgICAgICAg
IHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5hcmdzLCBbJ0FSQ0hTPXt9Jy5mb3JtYXQocG9ydC5ob3N0
LnBsYXRmb3JtLmFyY2hpdGVjdHVyZSgpKV0pCiAKICAgICBkZWYgdGVzdF9zZGtfbmFtZShzZWxm
KToKICAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKSW5kZXg6IFRvb2xzL1NjcmlwdHMv
d2Via2l0cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3Rl
bS5weQkocmV2aXNpb24gMjYzNTg0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2Nv
bW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQkod29ya2luZyBjb3B5KQpAQCAtMTE3LDcgKzEx
Nyw3IEBAIGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWMKICAgICAgICAg
cmV0dXJuIHNlbGYubmFtZQogCiAgICAgZGVmIHJ1bl9jb21tYW5kKHNlbGYsIGNvbW1hbmQpOgot
ICAgICAgICBzZWxmLnJ1bl93ZWJraXRfcGF0Y2goY29tbWFuZCArIFtzZWxmLl9kZXByZWNhdGVk
X3BvcnQuZmxhZygpXSArIChbJy0tYXJjaGl0ZWN0dXJlPSVzJyAlIHNlbGYuX3BvcnQuYXJjaGl0
ZWN0dXJlKCldIGlmIHNlbGYuX3BvcnQuYXJjaGl0ZWN0dXJlKCkgYW5kIHNlbGYuX3BvcnQuZGlk
X292ZXJyaWRlX2FyY2hpdGVjdHVyZSBlbHNlIFtdKSkKKyAgICAgICAgc2VsZi5ydW5fd2Via2l0
X3BhdGNoKGNvbW1hbmQgKyBbc2VsZi5fZGVwcmVjYXRlZF9wb3J0LmZsYWcoKV0gKyAoWyctLWFy
Y2hpdGVjdHVyZT0lcycgJSBzZWxmLl9wb3J0LmFyY2hpdGVjdHVyZSgpXSBpZiBzZWxmLl9wb3J0
LmFyY2hpdGVjdHVyZSgpICE9IHNlbGYuX3BvcnQuREVGQVVMVF9BUkNISVRFQ1RVUkUgZWxzZSBb
XSkpCiAKICAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5f
dGVzdF9yZXN1bHRzX3JlYWRlci5yZXN1bHRzKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402903</attachid>
            <date>2020-06-26 14:32:04 -0700</date>
            <delta_ts>2020-06-26 14:38:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213653-20200626143203.patch</filename>
            <type>text/plain</type>
            <size>11579</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2MzU4NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM2IEBACisyMDIwLTA2LTI2ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0cHldIEF1dG9tYXRpY2FsbHkgZGV0ZWN0IGh3IGFyY2hpdGVj
dHVyZSBmb3Igc3VwcG9ydGluZyBBcHBsZSBTaWxpY29uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM2NTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzY0ODE3NjU2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uOiBpT1MgaGFzIHRo
ZSBjb3JyZWN0IGRlZmF1bHRzLCBubyBuZWVkIHRvIG92ZXJyaWRlIHRoZW0uCisgICAgICAgICog
U2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weToKKyAgICAgICAg
KFBsYXRmb3JtSW5mbyk6CisgICAgICAgIChQbGF0Zm9ybUluZm8uYXJjaGl0ZWN0dXJlKTogUmV0
cmlldmUgdGhlIGN1cnJlbnQgc3lzdGVtJ3MgYXJjaGl0ZWN0dXJlLgorICAgICAgICAqIFNjcmlw
dHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fbW9jay5weToKKyAgICAgICAg
KE1vY2tQbGF0Zm9ybUluZm8uX19pbml0X18pOgorICAgICAgICAoTW9ja1BsYXRmb3JtSW5mby5h
cmNoaXRlY3R1cmUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5Ogor
ICAgICAgICAoUG9ydC5fX2luaXRfXyk6IFJlbW92ZSAnZGlkX292ZXJyaWRlX2FyY2hpdGVjdHVy
ZScsIHNob3VsZCBiZSBpbXBsaWVkIGJ5IGFyY2hpdGVjdHVyZSBjb21wYXJlZCB3aXRoIERFRkFV
TFRfQVJDSElURUNUVVJFLgorICAgICAgICAoUG9ydC5hcmNoaXRlY3R1cmUpOiBSZXR1cm4gdGhl
IGFyY2hpdGVjdHVyZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIsIGlmIGl0IGV4aXN0cy4KKyAgICAg
ICAgKFBvcnQuc2V0X2FyY2hpdGVjdHVyZSk6IFJlbW92ZSAnZGlkX292ZXJyaWRlX2FyY2hpdGVj
dHVyZScuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHk6CisgICAg
ICAgIChjb25maWd1cmF0aW9uX29wdGlvbnMpOiBBZGQgLS1hcm0gYW5kIC0tYXJjaGl0ZWN0dXJl
IGZsYWdzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWMucHk6CisgICAgICAg
IChNYWNQb3J0KTogQWRkIGFybTY0IHRvIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmVzLgorICAgICAg
ICAoTWFjUG9ydC5hcmNoaXRlY3R1cmUpOiBDb252ZXJ0IGFybTY0ZSB0byBhcm02NCwgY2hlY2sg
dGhlIGhvc3QncyBhcmNoaXRlY3R1cmUuCisgICAgICAgIChNYWNQb3J0Ll9idWlsZF9kcml2ZXJf
ZmxhZ3MpOiBBbHdheXMgc3BlY2lmeSB0aGUgYnVpbGQgYXJjaGl0ZWN0dXJlIHNpbmNlIGl0IG1h
eSBiZSB4ODZfNjQgb3IgYXJtNjQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L21h
Y191bml0dGVzdC5weToKKyAgICAgICAgKE1hY1Rlc3QudGVzdF82NGJpdCk6CisgICAgICAgIChN
YWNUZXN0KToKKyAgICAgICAgKE1hY1Rlc3QudGVzdF9hcm0pOgorICAgICAgICAoTWFjVGVzdC50
ZXN0X2RlZmF1bHQpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5kcy9l
YXJseXdhcm5pbmdzeXN0ZW0ucHk6CisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5c3Rl
bS5ydW5fY29tbWFuZCk6IFJlbW92ZSBkaWRfb3ZlcnJpZGVfYXJjaGl0ZWN0dXJlLgorCiAyMDIw
LTA2LTI2ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBb
QmlnIFN1cl0gSGFuZGxlIGJhc2VsaW5lIHNlYXJjaCBwYXRoIChGb2xsb3ctdXAgZml4KQpJbmRl
eDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgkocmV2
aXNpb24gMjYzNTg0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3
cy5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw4ICsxNCw3IEBACiAgICAgfSwKICAgICAiaU9T
IEVXUyI6IHsKICAgICAgICAgInBvcnQiOiAiaW9zLWRldmljZSIsCi0gICAgICAgICJuYW1lIjog
Imlvcy1ld3MiLAotICAgICAgICAiYXJjaGl0ZWN0dXJlIjogImFybTY0IgorICAgICAgICAibmFt
ZSI6ICJpb3MtZXdzIgogICAgIH0sCiAgICAgImlPUyBTaW11bGF0b3IgRVdTIjogewogICAgICAg
ICAicG9ydCI6ICJpb3Mtc2ltdWxhdG9yLXdrMiIsCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvLnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm8ucHkJKHJldmlzaW9uIDI2
MzU4NCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWlu
Zm8ucHkJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICMgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCiAj
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAKK2ltcG9ydCBvcwogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCByZQogaW1w
b3J0IHN5cwpAQCAtMzQsNyArMzUsNyBAQCBpbXBvcnQgc3lzCiBmcm9tIHdlYmtpdHB5LmNvbW1v
bi5tZW1vaXplZCBpbXBvcnQgbWVtb2l6ZWQKIGZyb20gd2Via2l0cHkuY29tbW9uLnZlcnNpb24g
aW1wb3J0IFZlcnNpb24KIGZyb20gd2Via2l0cHkuY29tbW9uLnZlcnNpb25fbmFtZV9tYXAgaW1w
b3J0IFBVQkxJQ19UQUJMRSwgSU5URVJOQUxfVEFCTEUsIFZlcnNpb25OYW1lTWFwCi1mcm9tIHdl
YmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBFeGVjdXRpdmUKK2Zyb20gd2Vi
a2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZSwgU2NyaXB0RXJy
b3IKIAogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCkBAIC0xMDUsNiArMTA2
LDE5IEBAIGNsYXNzIFBsYXRmb3JtSW5mbyhvYmplY3QpOgogICAgIGRlZiBpc19uZXRic2Qoc2Vs
Zik6CiAgICAgICAgIHJldHVybiBzZWxmLm9zX25hbWUgPT0gJ25ldGJzZCcKIAorICAgIEBtZW1v
aXplZAorICAgIGRlZiBhcmNoaXRlY3R1cmUoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAgICAg
ICAgICMgb3MudW5hbWUoKSB3b24ndCB3b3JrIG9uIGVtYmVkZGVkIGRldmljZXMKKyAgICAgICAg
ICAgIG91dHB1dCA9IHNlbGYuX2V4ZWN1dGl2ZS5ydW5fY29tbWFuZChbJ3VuYW1lJywgJy1tJ10p
LnJzdHJpcCgpCisgICAgICAgICAgICBpZiBvdXRwdXQ6CisgICAgICAgICAgICAgICAgaWYgc2Vs
Zi5pc19tYWMoKSBhbmQgb3V0cHV0ICE9ICd4ODZfNjQnOgorICAgICAgICAgICAgICAgICAgICBv
dXRwdXQgPSAnYXJtNjQnCisgICAgICAgICAgICAgICAgcmV0dXJuIG91dHB1dAorICAgICAgICBl
eGNlcHQgU2NyaXB0RXJyb3I6CisgICAgICAgICAgICBwYXNzCisgICAgICAgIHJldHVybiBvcy51
bmFtZSgpWzRdCisKICAgICBkZWYgZGlzcGxheV9uYW1lKHNlbGYpOgogICAgICAgICAjIHBsYXRm
b3JtLnBsYXRmb3JtKCkgcmV0dXJucyBEYXJ3aW4gaW5mb3JtYXRpb24gZm9yIE1hYywgd2hpY2gg
aXMganVzdCBjb25mdXNpbmcuCiAgICAgICAgIGlmIHNlbGYuaXNfbWFjKCk6CkluZGV4OiBUb29s
cy9TY3JpcHRzL3dlYmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvX21vY2sucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3Jt
aW5mb19tb2NrLnB5CShyZXZpc2lvbiAyNjM1ODQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5
L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvX21vY2sucHkJKHdvcmtpbmcgY29weSkKQEAgLTMy
LDExICszMiwxNSBAQCBmcm9tIHdlYmtpdHB5LmNvbW1vbi52ZXJzaW9uX25hbWVfbWFwIGltCiAK
IAogY2xhc3MgTW9ja1BsYXRmb3JtSW5mbyhvYmplY3QpOgotICAgIGRlZiBfX2luaXRfXyhzZWxm
LCBvc19uYW1lPSdtYWMnLCBvc192ZXJzaW9uPVZlcnNpb24uZnJvbV9uYW1lKCdIaWdoIFNpZXJy
YScpKToKKyAgICBkZWYgX19pbml0X18oc2VsZiwgb3NfbmFtZT0nbWFjJywgb3NfdmVyc2lvbj1W
ZXJzaW9uLmZyb21fbmFtZSgnSGlnaCBTaWVycmEnKSwgYXJjaGl0ZWN0dXJlPU5vbmUpOgogICAg
ICAgICBhc3NlcnQgaXNpbnN0YW5jZShvc192ZXJzaW9uLCBWZXJzaW9uKQogICAgICAgICBzZWxm
Lm9zX25hbWUgPSBvc19uYW1lCiAgICAgICAgIHNlbGYub3NfdmVyc2lvbiA9IG9zX3ZlcnNpb24K
ICAgICAgICAgc2VsZi5leHBlY3RlZF94Y29kZV9zaW1jdGxfbGlzdCA9IE5vbmUKKyAgICAgICAg
c2VsZi5fYXJjaGl0ZWN0dXJlID0gYXJjaGl0ZWN0dXJlIG9yIGRpY3QoCisgICAgICAgICAgICBt
YWM9J3g4Nl82NCcsCisgICAgICAgICAgICBpb3M9J2FybTY0JywKKyAgICAgICAgKS5nZXQoc2Vs
Zi5vc19uYW1lLCAneDg2JykKIAogICAgIGRlZiBpc19tYWMoc2VsZik6CiAgICAgICAgIHJldHVy
biBzZWxmLm9zX25hbWUgPT0gJ21hYycKQEAgLTU5LDYgKzYzLDkgQEAgY2xhc3MgTW9ja1BsYXRm
b3JtSW5mbyhvYmplY3QpOgogICAgIGRlZiBpc19mcmVlYnNkKHNlbGYpOgogICAgICAgICByZXR1
cm4gc2VsZi5vc19uYW1lID09ICdmcmVlYnNkJwogCisgICAgZGVmIGFyY2hpdGVjdHVyZShzZWxm
KToKKyAgICAgICAgcmV0dXJuIHNlbGYuX2FyY2hpdGVjdHVyZQorCiAgICAgZGVmIGRpc3BsYXlf
bmFtZShzZWxmKToKICAgICAgICAgcmV0dXJuICJNb2NrUGxhdGZvcm0gMS4wIgogCkluZGV4OiBU
b29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9T
Y3JpcHRzL3dlYmtpdHB5L3BvcnQvYmFzZS5weQkocmV2aXNpb24gMjYzNTg0KQorKysgVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkJKHdvcmtpbmcgY29weSkKQEAgLTEwMiwxOSAr
MTAyLDExIEBAIGNsYXNzIFBvcnQob2JqZWN0KToKICAgICAgICAgIyBUaGVzZSBhcmUgZGVmYXVs
dCB2YWx1ZXMgdGhhdCBzaG91bGQgYmUgb3ZlcnJpZGRlbiBpbiBhIHN1YmNsYXNzZXMuCiAgICAg
ICAgIHNlbGYuX29zX3ZlcnNpb24gPSBOb25lCiAKLSAgICAgICAgIyBGSVhNRTogVGhpcyBjYW4g
YmUgcmVtb3ZlZCBvbmNlIGRlZmF1bHQgYXJjaGl0ZWN0dXJlcyBmb3IgR1RLIGFuZCBFRkwgRVdT
IGJvdHMgYXJlIHNldC4KLSAgICAgICAgc2VsZi5kaWRfb3ZlcnJpZGVfYXJjaGl0ZWN0dXJlID0g
RmFsc2UKLQogICAgICAgICAjIEZJWE1FOiBJZGVhbGx5IHdlJ2QgaGF2ZSBhIHBhY2thZ2Utd2lk
ZSB3YXkgdG8gZ2V0IGEKICAgICAgICAgIyB3ZWxsLWZvcm1lZCBvcHRpb25zIG9iamVjdCB0aGF0
IGhhZCBhbGwgb2YgdGhlIG5lY2Vzc2FyeQogICAgICAgICAjIG9wdGlvbnMgZGVmaW5lZCBvbiBp
dC4KICAgICAgICAgc2VsZi5fb3B0aW9ucyA9IG9wdGlvbnMgb3Igb3B0cGFyc2UuVmFsdWVzKCkK
IAotICAgICAgICBpZiBzZWxmLmdldF9vcHRpb24oJ2FyY2hpdGVjdHVyZScpOgotICAgICAgICAg
ICAgc2VsZi5kaWRfb3ZlcnJpZGVfYXJjaGl0ZWN0dXJlID0gVHJ1ZQotICAgICAgICBlbHNlOgot
ICAgICAgICAgICAgc2VsZi5zZXRfb3B0aW9uKCdhcmNoaXRlY3R1cmUnLCBzZWxmLkRFRkFVTFRf
QVJDSElURUNUVVJFKQotCiAgICAgICAgIGlmIHNlbGYuX25hbWUgYW5kICctd2syJyBpbiBzZWxm
Ll9uYW1lOgogICAgICAgICAgICAgc2VsZi5fb3B0aW9ucy53ZWJraXRfdGVzdF9ydW5uZXIgPSBU
cnVlCiAKQEAgLTE0OSwxMCArMTQxLDkgQEAgY2xhc3MgUG9ydChvYmplY3QpOgogICAgICAgICBy
ZXR1cm4gc2VsZi5ob3N0CiAKICAgICBkZWYgYXJjaGl0ZWN0dXJlKHNlbGYpOgotICAgICAgICBy
ZXR1cm4gc2VsZi5nZXRfb3B0aW9uKCdhcmNoaXRlY3R1cmUnKQorICAgICAgICByZXR1cm4gc2Vs
Zi5nZXRfb3B0aW9uKCdhcmNoaXRlY3R1cmUnKSBvciBzZWxmLkRFRkFVTFRfQVJDSElURUNUVVJF
CiAKICAgICBkZWYgc2V0X2FyY2hpdGVjdHVyZShzZWxmLCBhcmNoKToKLSAgICAgICAgc2VsZi5k
aWRfb3ZlcnJpZGVfYXJjaGl0ZWN0dXJlID0gVHJ1ZQogICAgICAgICBzZWxmLnNldF9vcHRpb24o
J2FyY2hpdGVjdHVyZScsIGFyY2gpCiAKICAgICBkZWYgYWRkaXRpb25hbF9kcnRfZmxhZyhzZWxm
KToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5Cj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9mYWN0b3J5LnB5CShyZXZpc2lvbiAy
NjM1ODQpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9yeS5weQkod29ya2lu
ZyBjb3B5KQpAQCAtODQsOCArODQsMTIgQEAgZGVmIGNvbmZpZ3VyYXRpb25fb3B0aW9ucygpOgog
ICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS02NC1iaXQnLCBhY3Rpb249J3N0b3JlX2Nv
bnN0JywgY29uc3Q9J3g4Nl82NCcsIGRlZmF1bHQ9Tm9uZSwgZGVzdD0iYXJjaGl0ZWN0dXJlIiwK
ICAgICAgICAgICAgIGhlbHA9J3VzZSA2NC1iaXQgYmluYXJpZXMgYnkgZGVmYXVsdCAoeDg2XzY0
IGluc3RlYWQgb2YgeDg2KScpLAogICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS0zMi1i
aXQnLCBhY3Rpb249J3N0b3JlX2NvbnN0JywgY29uc3Q9J3g4NicsIGRlZmF1bHQ9Tm9uZSwgZGVz
dD0iYXJjaGl0ZWN0dXJlIiwKLSAgICAgICAgICAgIGhlbHA9J3VzZSAzMi1iaXQgYmluYXJpZXMg
YnkgZGVmYXVsdCAoeDg2IGluc3RlYWQgb2YgeDg2XzY0KScpLAotICAgICAgICBdCisgICAgICAg
ICAgICAgaGVscD0ndXNlIDMyLWJpdCBiaW5hcmllcyBieSBkZWZhdWx0ICh4ODYgaW5zdGVhZCBv
ZiB4ODZfNjQpJyksCisgICAgICAgIG9wdHBhcnNlLm1ha2Vfb3B0aW9uKCctLWFybScsIGFjdGlv
bj0nc3RvcmVfY29uc3QnLCBjb25zdD0nYXJtNjRlJywgZGVmYXVsdD1Ob25lLCBkZXN0PSJhcmNo
aXRlY3R1cmUiLAorICAgICAgICAgICAgIGhlbHA9J1VzZSBhcm02NGUgYmluYXJpZXMgYnkgZGVm
YXVsdCcpLAorICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlvbignLS1hcmNoaXRlY3R1cmUnLCBh
Y3Rpb249J3N0b3JlX2NvbnN0JywgY29uc3Q9J3g4NicsIGRlZmF1bHQ9Tm9uZSwgZGVzdD0iYXJj
aGl0ZWN0dXJlIiwKKyAgICAgICAgICAgICBoZWxwPSdVc2UgYmluYXJpZXMgb2YgdGhlIHNwZWNp
ZmllZCBhcmNoaXRlY3R1cmUgYnkgZGVmYXVsdC4nKSwKKyAgICBdCiAKIAogZGVmIF9idWlsZGVy
X29wdGlvbnMoYnVpbGRlcl9uYW1lKToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC9tYWMucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L21hYy5w
eQkocmV2aXNpb24gMjYzNTg0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L21hYy5w
eQkod29ya2luZyBjb3B5KQpAQCAtNTAsNyArNTAsNyBAQCBjbGFzcyBNYWNQb3J0KERhcndpblBv
cnQpOgogCiAgICAgU0RLID0gJ21hY29zeCcKIAotICAgIEFSQ0hJVEVDVFVSRVMgPSBbJ3g4Nl82
NCcsICd4ODYnXQorICAgIEFSQ0hJVEVDVFVSRVMgPSBbJ3g4Nl82NCcsICd4ODYnLCAnYXJtNjQn
XQogCiAgICAgREVGQVVMVF9BUkNISVRFQ1RVUkUgPSAneDg2XzY0JwogCkBAIC02Niw4ICs2Niwx
NCBAQCBjbGFzcyBNYWNQb3J0KERhcndpblBvcnQpOgogICAgICAgICBpZiBub3Qgc2VsZi5fb3Nf
dmVyc2lvbjoKICAgICAgICAgICAgIHNlbGYuX29zX3ZlcnNpb24gPSBNYWNQb3J0LkNVUlJFTlRf
VkVSU0lPTgogCisgICAgZGVmIGFyY2hpdGVjdHVyZShzZWxmKToKKyAgICAgICAgcmVzdWx0ID0g
c2VsZi5nZXRfb3B0aW9uKCdhcmNoaXRlY3R1cmUnKSBvciBzZWxmLmhvc3QucGxhdGZvcm0uYXJj
aGl0ZWN0dXJlKCkKKyAgICAgICAgaWYgcmVzdWx0ID09ICdhcm02NGUnOgorICAgICAgICAgICAg
cmV0dXJuICdhcm02NCcKKyAgICAgICAgcmV0dXJuIHJlc3VsdAorCiAgICAgZGVmIF9idWlsZF9k
cml2ZXJfZmxhZ3Moc2VsZik6Ci0gICAgICAgIHJldHVybiBbJ0FSQ0hTPWkzODYnXSBpZiBzZWxm
LmFyY2hpdGVjdHVyZSgpID09ICd4ODYnIGVsc2UgW10KKyAgICAgICAgcmV0dXJuIFsnQVJDSFM9
aTM4NiddIGlmIHNlbGYuYXJjaGl0ZWN0dXJlKCkgPT0gJ3g4NicgZWxzZSBbJ0FSQ0hTPXt9Jy5m
b3JtYXQoc2VsZi5hcmNoaXRlY3R1cmUoKSldCiAKICAgICBkZWYgZGVmYXVsdF9iYXNlbGluZV9z
ZWFyY2hfcGF0aChzZWxmLCAqKmt3YXJncyk6CiAgICAgICAgIHZlcnNpb25zX3RvX2ZhbGxiYWNr
ID0gW10KSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWNfdW5pdHRlc3QucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L21hY191bml0dGVzdC5w
eQkocmV2aXNpb24gMjYzNTg0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L21hY191
bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtMTI1LDggKzEyNSw3IEBAIGNsYXNzIE1hY1Rl
c3QoZGFyd2luX3Rlc3RjYXNlLkRhcndpblRlc3QKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChz
ZWxmLmFyZ3MsIFsnQVJDSFM9aTM4NiddKQogCiAgICAgZGVmIHRlc3RfNjRiaXQoc2VsZik6Ci0g
ICAgICAgICMgQXBwbGUgTWFjIHBvcnQgaXMgNjQtYml0IGJ5IGRlZmF1bHQKLSAgICAgICAgcG9y
dCA9IHNlbGYubWFrZV9wb3J0KCkKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KG9wdGlv
bnM9TW9ja09wdGlvbnMoYXJjaGl0ZWN0dXJlPSd4ODZfNjQnKSkKICAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChwb3J0LmFyY2hpdGVjdHVyZSgpLCAneDg2XzY0JykKIAogICAgICAgICBkZWYgcnVu
X3NjcmlwdChzY3JpcHQsIGFyZ3M9Tm9uZSwgZW52PU5vbmUpOgpAQCAtMTM0LDcgKzEzMywyOSBA
QCBjbGFzcyBNYWNUZXN0KGRhcndpbl90ZXN0Y2FzZS5EYXJ3aW5UZXN0CiAKICAgICAgICAgcG9y
dC5fcnVuX3NjcmlwdCA9IHJ1bl9zY3JpcHQKICAgICAgICAgcG9ydC5fYnVpbGRfZHJpdmVyKCkK
LSAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmFyZ3MsIFtdKQorICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKHNlbGYuYXJncywgWydBUkNIUz14ODZfNjQnXSkKKworICAgIGRlZiB0ZXN0X2Fy
bShzZWxmKToKKyAgICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KG9wdGlvbnM9TW9ja09wdGlv
bnMoYXJjaGl0ZWN0dXJlPSdhcm02NGUnKSkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChwb3J0
LmFyY2hpdGVjdHVyZSgpLCAnYXJtNjQnKQorCisgICAgICAgIGRlZiBydW5fc2NyaXB0KHNjcmlw
dCwgYXJncz1Ob25lLCBlbnY9Tm9uZSk6CisgICAgICAgICAgICBzZWxmLmFyZ3MgPSBhcmdzCisK
KyAgICAgICAgcG9ydC5fcnVuX3NjcmlwdCA9IHJ1bl9zY3JpcHQKKyAgICAgICAgcG9ydC5fYnVp
bGRfZHJpdmVyKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmFyZ3MsIFsnQVJDSFM9
YXJtNjQnXSkKKworICAgIGRlZiB0ZXN0X2RlZmF1bHQoc2VsZik6CisgICAgICAgIHBvcnQgPSBz
ZWxmLm1ha2VfcG9ydCgpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5hcmNoaXRlY3R1
cmUoKSwgcG9ydC5ob3N0LnBsYXRmb3JtLmFyY2hpdGVjdHVyZSgpKQorCisgICAgICAgIGRlZiBy
dW5fc2NyaXB0KHNjcmlwdCwgYXJncz1Ob25lLCBlbnY9Tm9uZSk6CisgICAgICAgICAgICBzZWxm
LmFyZ3MgPSBhcmdzCisKKyAgICAgICAgcG9ydC5fcnVuX3NjcmlwdCA9IHJ1bl9zY3JpcHQKKyAg
ICAgICAgcG9ydC5fYnVpbGRfZHJpdmVyKCkKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxm
LmFyZ3MsIFsnQVJDSFM9e30nLmZvcm1hdChwb3J0Lmhvc3QucGxhdGZvcm0uYXJjaGl0ZWN0dXJl
KCkpXSkKIAogICAgIGRlZiB0ZXN0X3Nka19uYW1lKHNlbGYpOgogICAgICAgICBwb3J0ID0gc2Vs
Zi5tYWtlX3BvcnQoKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L2Vhcmx5d2FybmluZ3N5c3RlbS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtp
dHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lzdGVtLnB5CShyZXZpc2lvbiAyNjM1ODQp
CisrKyBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3Rvb2wvY29tbWFuZHMvZWFybHl3YXJuaW5nc3lz
dGVtLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0xMTcsNyArMTE3LDcgQEAgY2xhc3MgQWJzdHJhY3RF
YXJseVdhcm5pbmdTeXN0ZW0oQWJzdHJhYwogICAgICAgICByZXR1cm4gc2VsZi5uYW1lCiAKICAg
ICBkZWYgcnVuX2NvbW1hbmQoc2VsZiwgY29tbWFuZCk6Ci0gICAgICAgIHNlbGYucnVuX3dlYmtp
dF9wYXRjaChjb21tYW5kICsgW3NlbGYuX2RlcHJlY2F0ZWRfcG9ydC5mbGFnKCldICsgKFsnLS1h
cmNoaXRlY3R1cmU9JXMnICUgc2VsZi5fcG9ydC5hcmNoaXRlY3R1cmUoKV0gaWYgc2VsZi5fcG9y
dC5hcmNoaXRlY3R1cmUoKSBhbmQgc2VsZi5fcG9ydC5kaWRfb3ZlcnJpZGVfYXJjaGl0ZWN0dXJl
IGVsc2UgW10pKQorICAgICAgICBzZWxmLnJ1bl93ZWJraXRfcGF0Y2goY29tbWFuZCArIFtzZWxm
Ll9kZXByZWNhdGVkX3BvcnQuZmxhZygpXSArIChbJy0tYXJjaGl0ZWN0dXJlPSVzJyAlIHNlbGYu
X3BvcnQuYXJjaGl0ZWN0dXJlKCldIGlmIHNlbGYuX3BvcnQuYXJjaGl0ZWN0dXJlKCkgIT0gc2Vs
Zi5fcG9ydC5ERUZBVUxUX0FSQ0hJVEVDVFVSRSBlbHNlIFtdKSkKIAogICAgIGRlZiB0ZXN0X3Jl
c3VsdHMoc2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLl90ZXN0X3Jlc3VsdHNfcmVhZGVyLnJl
c3VsdHMoKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402905</attachid>
            <date>2020-06-26 14:38:06 -0700</date>
            <delta_ts>2020-06-26 15:10:04 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-213653-20200626143805.patch</filename>
            <type>text/plain</type>
            <size>11652</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI2MzU4NCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDM2IEBACisyMDIwLTA2LTI2ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0cHldIEF1dG9tYXRpY2FsbHkgZGV0ZWN0IGh3IGFyY2hpdGVj
dHVyZSBmb3Igc3VwcG9ydGluZyBBcHBsZSBTaWxpY29uCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM2NTMKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzY0ODE3NjU2PgorCisgICAgICAgIFJ1YmJlci1zdGFtcGVkIGJ5IEFha2FzaCBKYWluLgorCisg
ICAgICAgICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uOiBpT1MgaGFz
IHRoZSBjb3JyZWN0IGRlZmF1bHRzLCBubyBuZWVkIHRvIG92ZXJyaWRlIHRoZW0uCisgICAgICAg
ICogU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mby5weToKKyAgICAg
ICAgKFBsYXRmb3JtSW5mbyk6CisgICAgICAgIChQbGF0Zm9ybUluZm8uYXJjaGl0ZWN0dXJlKTog
UmV0cmlldmUgdGhlIGN1cnJlbnQgc3lzdGVtJ3MgYXJjaGl0ZWN0dXJlLgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm9fbW9jay5weToKKyAgICAg
ICAgKE1vY2tQbGF0Zm9ybUluZm8uX19pbml0X18pOgorICAgICAgICAoTW9ja1BsYXRmb3JtSW5m
by5hcmNoaXRlY3R1cmUpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5
OgorICAgICAgICAoUG9ydC5fX2luaXRfXyk6IFJlbW92ZSAnZGlkX292ZXJyaWRlX2FyY2hpdGVj
dHVyZScsIHNob3VsZCBiZSBpbXBsaWVkIGJ5IGFyY2hpdGVjdHVyZSBjb21wYXJlZCB3aXRoIERF
RkFVTFRfQVJDSElURUNUVVJFLgorICAgICAgICAoUG9ydC5hcmNoaXRlY3R1cmUpOiBSZXR1cm4g
dGhlIGFyY2hpdGVjdHVyZSBzcGVjaWZpZWQgYnkgdGhlIHVzZXIsIGlmIGl0IGV4aXN0cy4KKyAg
ICAgICAgKFBvcnQuc2V0X2FyY2hpdGVjdHVyZSk6IFJlbW92ZSAnZGlkX292ZXJyaWRlX2FyY2hp
dGVjdHVyZScuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0L2ZhY3RvcnkucHk6Cisg
ICAgICAgIChjb25maWd1cmF0aW9uX29wdGlvbnMpOiBBZGQgLS1hcm0gYW5kIC0tYXJjaGl0ZWN0
dXJlIGZsYWdzLgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvcG9ydC9tYWMucHk6CisgICAg
ICAgIChNYWNQb3J0KTogQWRkIGFybTY0IHRvIHN1cHBvcnRlZCBhcmNoaXRlY3R1cmVzLgorICAg
ICAgICAoTWFjUG9ydC5hcmNoaXRlY3R1cmUpOiBDb252ZXJ0IGFybTY0ZSB0byBhcm02NCwgY2hl
Y2sgdGhlIGhvc3QncyBhcmNoaXRlY3R1cmUuCisgICAgICAgIChNYWNQb3J0Ll9idWlsZF9kcml2
ZXJfZmxhZ3MpOiBBbHdheXMgc3BlY2lmeSB0aGUgYnVpbGQgYXJjaGl0ZWN0dXJlIHNpbmNlIGl0
IG1heSBiZSB4ODZfNjQgb3IgYXJtNjQuCisgICAgICAgICogU2NyaXB0cy93ZWJraXRweS9wb3J0
L21hY191bml0dGVzdC5weToKKyAgICAgICAgKE1hY1Rlc3QudGVzdF82NGJpdCk6CisgICAgICAg
IChNYWNUZXN0KToKKyAgICAgICAgKE1hY1Rlc3QudGVzdF9hcm0pOgorICAgICAgICAoTWFjVGVz
dC50ZXN0X2RlZmF1bHQpOgorICAgICAgICAqIFNjcmlwdHMvd2Via2l0cHkvdG9vbC9jb21tYW5k
cy9lYXJseXdhcm5pbmdzeXN0ZW0ucHk6CisgICAgICAgIChBYnN0cmFjdEVhcmx5V2FybmluZ1N5
c3RlbS5ydW5fY29tbWFuZCk6IFJlbW92ZSBkaWRfb3ZlcnJpZGVfYXJjaGl0ZWN0dXJlLgorCiAy
MDIwLTA2LTI2ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbQmlnIFN1cl0gSGFuZGxlIGJhc2VsaW5lIHNlYXJjaCBwYXRoIChGb2xsb3ctdXAgZml4KQpJ
bmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmlnL2V3cy5qc29uCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL2NvbmZpZy9ld3MuanNvbgko
cmV2aXNpb24gMjYzNTg0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vY29uZmln
L2V3cy5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC0xNCw4ICsxNCw3IEBACiAgICAgfSwKICAgICAi
aU9TIEVXUyI6IHsKICAgICAgICAgInBvcnQiOiAiaW9zLWRldmljZSIsCi0gICAgICAgICJuYW1l
IjogImlvcy1ld3MiLAotICAgICAgICAiYXJjaGl0ZWN0dXJlIjogImFybTY0IgorICAgICAgICAi
bmFtZSI6ICJpb3MtZXdzIgogICAgIH0sCiAgICAgImlPUyBTaW11bGF0b3IgRVdTIjogewogICAg
ICAgICAicG9ydCI6ICJpb3Mtc2ltdWxhdG9yLXdrMiIsCkluZGV4OiBUb29scy9TY3JpcHRzL3dl
YmtpdHB5L2NvbW1vbi9zeXN0ZW0vcGxhdGZvcm1pbmZvLnB5Cj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xz
L1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9ybWluZm8ucHkJKHJldmlzaW9u
IDI2MzU4NCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9uL3N5c3RlbS9wbGF0Zm9y
bWluZm8ucHkJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICMgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CiAjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAKK2ltcG9ydCBvcwogaW1wb3J0IGxvZ2dpbmcKIGltcG9ydCByZQog
aW1wb3J0IHN5cwpAQCAtMzQsNyArMzUsNyBAQCBpbXBvcnQgc3lzCiBmcm9tIHdlYmtpdHB5LmNv
bW1vbi5tZW1vaXplZCBpbXBvcnQgbWVtb2l6ZWQKIGZyb20gd2Via2l0cHkuY29tbW9uLnZlcnNp
b24gaW1wb3J0IFZlcnNpb24KIGZyb20gd2Via2l0cHkuY29tbW9uLnZlcnNpb25fbmFtZV9tYXAg
aW1wb3J0IFBVQkxJQ19UQUJMRSwgSU5URVJOQUxfVEFCTEUsIFZlcnNpb25OYW1lTWFwCi1mcm9t
IHdlYmtpdHB5LmNvbW1vbi5zeXN0ZW0uZXhlY3V0aXZlIGltcG9ydCBFeGVjdXRpdmUKK2Zyb20g
d2Via2l0cHkuY29tbW9uLnN5c3RlbS5leGVjdXRpdmUgaW1wb3J0IEV4ZWN1dGl2ZSwgU2NyaXB0
RXJyb3IKIAogCiBfbG9nID0gbG9nZ2luZy5nZXRMb2dnZXIoX19uYW1lX18pCkBAIC0xMDUsNiAr
MTA2LDE5IEBAIGNsYXNzIFBsYXRmb3JtSW5mbyhvYmplY3QpOgogICAgIGRlZiBpc19uZXRic2Qo
c2VsZik6CiAgICAgICAgIHJldHVybiBzZWxmLm9zX25hbWUgPT0gJ25ldGJzZCcKIAorICAgIEBt
ZW1vaXplZAorICAgIGRlZiBhcmNoaXRlY3R1cmUoc2VsZik6CisgICAgICAgIHRyeToKKyAgICAg
ICAgICAgICMgb3MudW5hbWUoKSB3b24ndCB3b3JrIG9uIGVtYmVkZGVkIGRldmljZXMsIHdlIG1h
eSBzdXBwb3J0IG11bHRpcGxlIGFyY2hpdGVjdHVyZXMgZm9yIGEgc2luZ2xlIGVtYmVkZGVkIHBs
YXRmb3JtCisgICAgICAgICAgICBvdXRwdXQgPSBzZWxmLl9leGVjdXRpdmUucnVuX2NvbW1hbmQo
Wyd1bmFtZScsICctbSddKS5yc3RyaXAoKQorICAgICAgICAgICAgaWYgb3V0cHV0OgorICAgICAg
ICAgICAgICAgIGlmIHNlbGYuaXNfbWFjKCkgYW5kIG91dHB1dCAhPSAneDg2XzY0JzoKKyAgICAg
ICAgICAgICAgICAgICAgb3V0cHV0ID0gJ2FybTY0JworICAgICAgICAgICAgICAgIHJldHVybiBv
dXRwdXQKKyAgICAgICAgZXhjZXB0IFNjcmlwdEVycm9yOgorICAgICAgICAgICAgcGFzcworICAg
ICAgICByZXR1cm4gb3MudW5hbWUoKVs0XQorCiAgICAgZGVmIGRpc3BsYXlfbmFtZShzZWxmKToK
ICAgICAgICAgIyBwbGF0Zm9ybS5wbGF0Zm9ybSgpIHJldHVybnMgRGFyd2luIGluZm9ybWF0aW9u
IGZvciBNYWMsIHdoaWNoIGlzIGp1c3QgY29uZnVzaW5nLgogICAgICAgICBpZiBzZWxmLmlzX21h
YygpOgpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3Jt
aW5mb19tb2NrLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvY29tbW9u
L3N5c3RlbS9wbGF0Zm9ybWluZm9fbW9jay5weQkocmV2aXNpb24gMjYzNTg0KQorKysgVG9vbHMv
U2NyaXB0cy93ZWJraXRweS9jb21tb24vc3lzdGVtL3BsYXRmb3JtaW5mb19tb2NrLnB5CSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiwxMSArMzIsMTUgQEAgZnJvbSB3ZWJraXRweS5jb21tb24udmVyc2lv
bl9uYW1lX21hcCBpbQogCiAKIGNsYXNzIE1vY2tQbGF0Zm9ybUluZm8ob2JqZWN0KToKLSAgICBk
ZWYgX19pbml0X18oc2VsZiwgb3NfbmFtZT0nbWFjJywgb3NfdmVyc2lvbj1WZXJzaW9uLmZyb21f
bmFtZSgnSGlnaCBTaWVycmEnKSk6CisgICAgZGVmIF9faW5pdF9fKHNlbGYsIG9zX25hbWU9J21h
YycsIG9zX3ZlcnNpb249VmVyc2lvbi5mcm9tX25hbWUoJ0hpZ2ggU2llcnJhJyksIGFyY2hpdGVj
dHVyZT1Ob25lKToKICAgICAgICAgYXNzZXJ0IGlzaW5zdGFuY2Uob3NfdmVyc2lvbiwgVmVyc2lv
bikKICAgICAgICAgc2VsZi5vc19uYW1lID0gb3NfbmFtZQogICAgICAgICBzZWxmLm9zX3ZlcnNp
b24gPSBvc192ZXJzaW9uCiAgICAgICAgIHNlbGYuZXhwZWN0ZWRfeGNvZGVfc2ltY3RsX2xpc3Qg
PSBOb25lCisgICAgICAgIHNlbGYuX2FyY2hpdGVjdHVyZSA9IGFyY2hpdGVjdHVyZSBvciBkaWN0
KAorICAgICAgICAgICAgbWFjPSd4ODZfNjQnLAorICAgICAgICAgICAgaW9zPSdhcm02NCcsCisg
ICAgICAgICkuZ2V0KHNlbGYub3NfbmFtZSwgJ3g4NicpCiAKICAgICBkZWYgaXNfbWFjKHNlbGYp
OgogICAgICAgICByZXR1cm4gc2VsZi5vc19uYW1lID09ICdtYWMnCkBAIC01OSw2ICs2Myw5IEBA
IGNsYXNzIE1vY2tQbGF0Zm9ybUluZm8ob2JqZWN0KToKICAgICBkZWYgaXNfZnJlZWJzZChzZWxm
KToKICAgICAgICAgcmV0dXJuIHNlbGYub3NfbmFtZSA9PSAnZnJlZWJzZCcKIAorICAgIGRlZiBh
cmNoaXRlY3R1cmUoc2VsZik6CisgICAgICAgIHJldHVybiBzZWxmLl9hcmNoaXRlY3R1cmUKKwog
ICAgIGRlZiBkaXNwbGF5X25hbWUoc2VsZik6CiAgICAgICAgIHJldHVybiAiTW9ja1BsYXRmb3Jt
IDEuMCIKIApJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Jhc2UucHkJKHJldmlzaW9uIDI2
MzU4NCkKKysrIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9ydC9iYXNlLnB5CSh3b3JraW5nIGNv
cHkpCkBAIC0xMDIsMTkgKzEwMiwxMSBAQCBjbGFzcyBQb3J0KG9iamVjdCk6CiAgICAgICAgICMg
VGhlc2UgYXJlIGRlZmF1bHQgdmFsdWVzIHRoYXQgc2hvdWxkIGJlIG92ZXJyaWRkZW4gaW4gYSBz
dWJjbGFzc2VzLgogICAgICAgICBzZWxmLl9vc192ZXJzaW9uID0gTm9uZQogCi0gICAgICAgICMg
RklYTUU6IFRoaXMgY2FuIGJlIHJlbW92ZWQgb25jZSBkZWZhdWx0IGFyY2hpdGVjdHVyZXMgZm9y
IEdUSyBhbmQgRUZMIEVXUyBib3RzIGFyZSBzZXQuCi0gICAgICAgIHNlbGYuZGlkX292ZXJyaWRl
X2FyY2hpdGVjdHVyZSA9IEZhbHNlCi0KICAgICAgICAgIyBGSVhNRTogSWRlYWxseSB3ZSdkIGhh
dmUgYSBwYWNrYWdlLXdpZGUgd2F5IHRvIGdldCBhCiAgICAgICAgICMgd2VsbC1mb3JtZWQgb3B0
aW9ucyBvYmplY3QgdGhhdCBoYWQgYWxsIG9mIHRoZSBuZWNlc3NhcnkKICAgICAgICAgIyBvcHRp
b25zIGRlZmluZWQgb24gaXQuCiAgICAgICAgIHNlbGYuX29wdGlvbnMgPSBvcHRpb25zIG9yIG9w
dHBhcnNlLlZhbHVlcygpCiAKLSAgICAgICAgaWYgc2VsZi5nZXRfb3B0aW9uKCdhcmNoaXRlY3R1
cmUnKToKLSAgICAgICAgICAgIHNlbGYuZGlkX292ZXJyaWRlX2FyY2hpdGVjdHVyZSA9IFRydWUK
LSAgICAgICAgZWxzZToKLSAgICAgICAgICAgIHNlbGYuc2V0X29wdGlvbignYXJjaGl0ZWN0dXJl
Jywgc2VsZi5ERUZBVUxUX0FSQ0hJVEVDVFVSRSkKLQogICAgICAgICBpZiBzZWxmLl9uYW1lIGFu
ZCAnLXdrMicgaW4gc2VsZi5fbmFtZToKICAgICAgICAgICAgIHNlbGYuX29wdGlvbnMud2Via2l0
X3Rlc3RfcnVubmVyID0gVHJ1ZQogCkBAIC0xNDksMTAgKzE0MSw5IEBAIGNsYXNzIFBvcnQob2Jq
ZWN0KToKICAgICAgICAgcmV0dXJuIHNlbGYuaG9zdAogCiAgICAgZGVmIGFyY2hpdGVjdHVyZShz
ZWxmKToKLSAgICAgICAgcmV0dXJuIHNlbGYuZ2V0X29wdGlvbignYXJjaGl0ZWN0dXJlJykKKyAg
ICAgICAgcmV0dXJuIHNlbGYuZ2V0X29wdGlvbignYXJjaGl0ZWN0dXJlJykgb3Igc2VsZi5ERUZB
VUxUX0FSQ0hJVEVDVFVSRQogCiAgICAgZGVmIHNldF9hcmNoaXRlY3R1cmUoc2VsZiwgYXJjaCk6
Ci0gICAgICAgIHNlbGYuZGlkX292ZXJyaWRlX2FyY2hpdGVjdHVyZSA9IFRydWUKICAgICAgICAg
c2VsZi5zZXRfb3B0aW9uKCdhcmNoaXRlY3R1cmUnLCBhcmNoKQogCiAgICAgZGVmIGFkZGl0aW9u
YWxfZHJ0X2ZsYWcoc2VsZik6CkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFj
dG9yeS5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQvZmFjdG9y
eS5weQkocmV2aXNpb24gMjYzNTg0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS9wb3J0L2Zh
Y3RvcnkucHkJKHdvcmtpbmcgY29weSkKQEAgLTg0LDggKzg0LDEyIEBAIGRlZiBjb25maWd1cmF0
aW9uX29wdGlvbnMoKToKICAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0tNjQtYml0Jywg
YWN0aW9uPSdzdG9yZV9jb25zdCcsIGNvbnN0PSd4ODZfNjQnLCBkZWZhdWx0PU5vbmUsIGRlc3Q9
ImFyY2hpdGVjdHVyZSIsCiAgICAgICAgICAgICBoZWxwPSd1c2UgNjQtYml0IGJpbmFyaWVzIGJ5
IGRlZmF1bHQgKHg4Nl82NCBpbnN0ZWFkIG9mIHg4NiknKSwKICAgICAgICAgb3B0cGFyc2UubWFr
ZV9vcHRpb24oJy0tMzItYml0JywgYWN0aW9uPSdzdG9yZV9jb25zdCcsIGNvbnN0PSd4ODYnLCBk
ZWZhdWx0PU5vbmUsIGRlc3Q9ImFyY2hpdGVjdHVyZSIsCi0gICAgICAgICAgICBoZWxwPSd1c2Ug
MzItYml0IGJpbmFyaWVzIGJ5IGRlZmF1bHQgKHg4NiBpbnN0ZWFkIG9mIHg4Nl82NCknKSwKLSAg
ICAgICAgXQorICAgICAgICAgICAgIGhlbHA9J3VzZSAzMi1iaXQgYmluYXJpZXMgYnkgZGVmYXVs
dCAoeDg2IGluc3RlYWQgb2YgeDg2XzY0KScpLAorICAgICAgICBvcHRwYXJzZS5tYWtlX29wdGlv
bignLS1hcm0nLCBhY3Rpb249J3N0b3JlX2NvbnN0JywgY29uc3Q9J2FybTY0ZScsIGRlZmF1bHQ9
Tm9uZSwgZGVzdD0iYXJjaGl0ZWN0dXJlIiwKKyAgICAgICAgICAgICBoZWxwPSdVc2UgYXJtNjRl
IGJpbmFyaWVzIGJ5IGRlZmF1bHQnKSwKKyAgICAgICAgb3B0cGFyc2UubWFrZV9vcHRpb24oJy0t
YXJjaGl0ZWN0dXJlJywgYWN0aW9uPSdzdG9yZV9jb25zdCcsIGNvbnN0PSd4ODYnLCBkZWZhdWx0
PU5vbmUsIGRlc3Q9ImFyY2hpdGVjdHVyZSIsCisgICAgICAgICAgICAgaGVscD0nVXNlIGJpbmFy
aWVzIG9mIHRoZSBzcGVjaWZpZWQgYXJjaGl0ZWN0dXJlIGJ5IGRlZmF1bHQuJyksCisgICAgXQog
CiAKIGRlZiBfYnVpbGRlcl9vcHRpb25zKGJ1aWxkZXJfbmFtZSk6CkluZGV4OiBUb29scy9TY3Jp
cHRzL3dlYmtpdHB5L3BvcnQvbWFjLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9tYWMucHkJKHJldmlzaW9uIDI2MzU4NCkKKysrIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9tYWMucHkJKHdvcmtpbmcgY29weSkKQEAgLTUwLDcgKzUwLDcgQEAgY2xhc3Mg
TWFjUG9ydChEYXJ3aW5Qb3J0KToKIAogICAgIFNESyA9ICdtYWNvc3gnCiAKLSAgICBBUkNISVRF
Q1RVUkVTID0gWyd4ODZfNjQnLCAneDg2J10KKyAgICBBUkNISVRFQ1RVUkVTID0gWyd4ODZfNjQn
LCAneDg2JywgJ2FybTY0J10KIAogICAgIERFRkFVTFRfQVJDSElURUNUVVJFID0gJ3g4Nl82NCcK
IApAQCAtNjYsOCArNjYsMTQgQEAgY2xhc3MgTWFjUG9ydChEYXJ3aW5Qb3J0KToKICAgICAgICAg
aWYgbm90IHNlbGYuX29zX3ZlcnNpb246CiAgICAgICAgICAgICBzZWxmLl9vc192ZXJzaW9uID0g
TWFjUG9ydC5DVVJSRU5UX1ZFUlNJT04KIAorICAgIGRlZiBhcmNoaXRlY3R1cmUoc2VsZik6Cisg
ICAgICAgIHJlc3VsdCA9IHNlbGYuZ2V0X29wdGlvbignYXJjaGl0ZWN0dXJlJykgb3Igc2VsZi5o
b3N0LnBsYXRmb3JtLmFyY2hpdGVjdHVyZSgpCisgICAgICAgIGlmIHJlc3VsdCA9PSAnYXJtNjRl
JzoKKyAgICAgICAgICAgIHJldHVybiAnYXJtNjQnCisgICAgICAgIHJldHVybiByZXN1bHQKKwog
ICAgIGRlZiBfYnVpbGRfZHJpdmVyX2ZsYWdzKHNlbGYpOgotICAgICAgICByZXR1cm4gWydBUkNI
Uz1pMzg2J10gaWYgc2VsZi5hcmNoaXRlY3R1cmUoKSA9PSAneDg2JyBlbHNlIFtdCisgICAgICAg
IHJldHVybiBbJ0FSQ0hTPWkzODYnXSBpZiBzZWxmLmFyY2hpdGVjdHVyZSgpID09ICd4ODYnIGVs
c2UgWydBUkNIUz17fScuZm9ybWF0KHNlbGYuYXJjaGl0ZWN0dXJlKCkpXQogCiAgICAgZGVmIGRl
ZmF1bHRfYmFzZWxpbmVfc2VhcmNoX3BhdGgoc2VsZiwgKiprd2FyZ3MpOgogICAgICAgICB2ZXJz
aW9uc190b19mYWxsYmFjayA9IFtdCkluZGV4OiBUb29scy9TY3JpcHRzL3dlYmtpdHB5L3BvcnQv
bWFjX3VuaXR0ZXN0LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkvcG9y
dC9tYWNfdW5pdHRlc3QucHkJKHJldmlzaW9uIDI2MzU4NCkKKysrIFRvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvcG9ydC9tYWNfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTEyNSw4ICsxMjUs
NyBAQCBjbGFzcyBNYWNUZXN0KGRhcndpbl90ZXN0Y2FzZS5EYXJ3aW5UZXN0CiAgICAgICAgIHNl
bGYuYXNzZXJ0RXF1YWwoc2VsZi5hcmdzLCBbJ0FSQ0hTPWkzODYnXSkKIAogICAgIGRlZiB0ZXN0
XzY0Yml0KHNlbGYpOgotICAgICAgICAjIEFwcGxlIE1hYyBwb3J0IGlzIDY0LWJpdCBieSBkZWZh
dWx0Ci0gICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydCgpCisgICAgICAgIHBvcnQgPSBzZWxm
Lm1ha2VfcG9ydChvcHRpb25zPU1vY2tPcHRpb25zKGFyY2hpdGVjdHVyZT0neDg2XzY0JykpCiAg
ICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwocG9ydC5hcmNoaXRlY3R1cmUoKSwgJ3g4Nl82NCcpCiAK
ICAgICAgICAgZGVmIHJ1bl9zY3JpcHQoc2NyaXB0LCBhcmdzPU5vbmUsIGVudj1Ob25lKToKQEAg
LTEzNCw3ICsxMzMsMjkgQEAgY2xhc3MgTWFjVGVzdChkYXJ3aW5fdGVzdGNhc2UuRGFyd2luVGVz
dAogCiAgICAgICAgIHBvcnQuX3J1bl9zY3JpcHQgPSBydW5fc2NyaXB0CiAgICAgICAgIHBvcnQu
X2J1aWxkX2RyaXZlcigpCi0gICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2VsZi5hcmdzLCBbXSkK
KyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChzZWxmLmFyZ3MsIFsnQVJDSFM9eDg2XzY0J10pCisK
KyAgICBkZWYgdGVzdF9hcm0oc2VsZik6CisgICAgICAgIHBvcnQgPSBzZWxmLm1ha2VfcG9ydChv
cHRpb25zPU1vY2tPcHRpb25zKGFyY2hpdGVjdHVyZT0nYXJtNjRlJykpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocG9ydC5hcmNoaXRlY3R1cmUoKSwgJ2FybTY0JykKKworICAgICAgICBkZWYg
cnVuX3NjcmlwdChzY3JpcHQsIGFyZ3M9Tm9uZSwgZW52PU5vbmUpOgorICAgICAgICAgICAgc2Vs
Zi5hcmdzID0gYXJncworCisgICAgICAgIHBvcnQuX3J1bl9zY3JpcHQgPSBydW5fc2NyaXB0Cisg
ICAgICAgIHBvcnQuX2J1aWxkX2RyaXZlcigpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoc2Vs
Zi5hcmdzLCBbJ0FSQ0hTPWFybTY0J10pCisKKyAgICBkZWYgdGVzdF9kZWZhdWx0KHNlbGYpOgor
ICAgICAgICBwb3J0ID0gc2VsZi5tYWtlX3BvcnQoKQorICAgICAgICBzZWxmLmFzc2VydEVxdWFs
KHBvcnQuYXJjaGl0ZWN0dXJlKCksIHBvcnQuaG9zdC5wbGF0Zm9ybS5hcmNoaXRlY3R1cmUoKSkK
KworICAgICAgICBkZWYgcnVuX3NjcmlwdChzY3JpcHQsIGFyZ3M9Tm9uZSwgZW52PU5vbmUpOgor
ICAgICAgICAgICAgc2VsZi5hcmdzID0gYXJncworCisgICAgICAgIHBvcnQuX3J1bl9zY3JpcHQg
PSBydW5fc2NyaXB0CisgICAgICAgIHBvcnQuX2J1aWxkX2RyaXZlcigpCisgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwoc2VsZi5hcmdzLCBbJ0FSQ0hTPXt9Jy5mb3JtYXQocG9ydC5ob3N0LnBsYXRm
b3JtLmFyY2hpdGVjdHVyZSgpKV0pCiAKICAgICBkZWYgdGVzdF9zZGtfbmFtZShzZWxmKToKICAg
ICAgICAgcG9ydCA9IHNlbGYubWFrZV9wb3J0KCkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvd2Via2l0
cHkvdG9vbC9jb21tYW5kcy9lYXJseXdhcm5pbmdzeXN0ZW0ucHkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRzL2Vhcmx5d2FybmluZ3N5c3RlbS5weQko
cmV2aXNpb24gMjYzNTg0KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRweS90b29sL2NvbW1hbmRz
L2Vhcmx5d2FybmluZ3N5c3RlbS5weQkod29ya2luZyBjb3B5KQpAQCAtMTE3LDcgKzExNyw3IEBA
IGNsYXNzIEFic3RyYWN0RWFybHlXYXJuaW5nU3lzdGVtKEFic3RyYWMKICAgICAgICAgcmV0dXJu
IHNlbGYubmFtZQogCiAgICAgZGVmIHJ1bl9jb21tYW5kKHNlbGYsIGNvbW1hbmQpOgotICAgICAg
ICBzZWxmLnJ1bl93ZWJraXRfcGF0Y2goY29tbWFuZCArIFtzZWxmLl9kZXByZWNhdGVkX3BvcnQu
ZmxhZygpXSArIChbJy0tYXJjaGl0ZWN0dXJlPSVzJyAlIHNlbGYuX3BvcnQuYXJjaGl0ZWN0dXJl
KCldIGlmIHNlbGYuX3BvcnQuYXJjaGl0ZWN0dXJlKCkgYW5kIHNlbGYuX3BvcnQuZGlkX292ZXJy
aWRlX2FyY2hpdGVjdHVyZSBlbHNlIFtdKSkKKyAgICAgICAgc2VsZi5ydW5fd2Via2l0X3BhdGNo
KGNvbW1hbmQgKyBbc2VsZi5fZGVwcmVjYXRlZF9wb3J0LmZsYWcoKV0gKyAoWyctLWFyY2hpdGVj
dHVyZT0lcycgJSBzZWxmLl9wb3J0LmFyY2hpdGVjdHVyZSgpXSBpZiBzZWxmLl9wb3J0LmFyY2hp
dGVjdHVyZSgpICE9IHNlbGYuX3BvcnQuREVGQVVMVF9BUkNISVRFQ1RVUkUgZWxzZSBbXSkpCiAK
ICAgICBkZWYgdGVzdF9yZXN1bHRzKHNlbGYpOgogICAgICAgICByZXR1cm4gc2VsZi5fdGVzdF9y
ZXN1bHRzX3JlYWRlci5yZXN1bHRzKCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>