<?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>226506</bug_id>
          
          <creation_ts>2021-06-01 11:35:43 -0700</creation_ts>
          <short_desc>[webkitcorepy] TaskPool shouldn&apos;t fork when 1 process is needed</short_desc>
          <delta_ts>2021-06-02 16:10:17 -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=226234</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Jonathan Bedard">jbedard</reporter>
          <assigned_to name="Jonathan Bedard">jbedard</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1765690</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-01 11:35:43 -0700</bug_when>
    <thetext>If we only need a single process, the TaskPool object should not fork. This is important for certain integration tests which use mocking structures that don&apos;t function across process boundaries.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765691</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-01 11:36:10 -0700</bug_when>
    <thetext>&lt;rdar://problem/78724554&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765692</commentid>
    <comment_count>2</comment_count>
      <attachid>430279</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-01 11:38:17 -0700</bug_when>
    <thetext>Created attachment 430279
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766166</commentid>
    <comment_count>3</comment_count>
      <attachid>430409</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-02 14:42:43 -0700</bug_when>
    <thetext>Created attachment 430409
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766193</commentid>
    <comment_count>4</comment_count>
      <attachid>430409</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2021-06-02 15:58:48 -0700</bug_when>
    <thetext>Comment on attachment 430409
Patch

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

r=me with comment.

&gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py:373
&gt;          from mock import patch

Should we ensure we always import this or it&apos;s not needed in the case of no-fork?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766194</commentid>
    <comment_count>5</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-06-02 16:01:16 -0700</bug_when>
    <thetext>(In reply to dewei_zhu from comment #4)
&gt; Comment on attachment 430409 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=430409&amp;action=review
&gt; 
&gt; r=me with comment.
&gt; 
&gt; &gt; Tools/Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py:373
&gt; &gt;          from mock import patch
&gt; 
&gt; Should we ensure we always import this or it&apos;s not needed in the case of
&gt; no-fork?

Not needed in the case of no-fork.

The reason for including it in the fork case, for those who are curious, is that autoinstalling a package on a child process is racey. This is something we should consider resolving with a file lock (because independently running Python processes have a similar problem), but it hasn&apos;t been much of a problem in practice, so we haven&apos;t done anything to fix it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766198</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-02 16:10:16 -0700</bug_when>
    <thetext>Committed r278380 (238407@main): &lt;https://commits.webkit.org/238407@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430409.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430279</attachid>
            <date>2021-06-01 11:38:17 -0700</date>
            <delta_ts>2021-06-02 14:42:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226506-20210601113814.patch</filename>
            <type>text/plain</type>
            <size>12954</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3ODMxNSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDMxIEBACisyMDIxLTA2LTAxICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBUYXNrUG9vbCBzaG91bGRuJ3QgZm9yayB3aGVu
IDEgcHJvY2VzcyBpcyBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNjUwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzg3MjQ1NTQ+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRjb3JlcHkvc2V0dXAucHk6IEJ1bXAgdmVyc2lvbi4KKyAgICAgICAg
KiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5
OiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0
Y29yZXB5L3Rhc2tfcG9vbC5weToKKyAgICAgICAgKFRhc2tQb29sLl9faW5pdF9fKTogQWxsb3cg
dXNlciB0byBmb3JjZSBmb3JrLCBldmVuIHdpdGggYSBzaW5nbGUgcHJvY2Vzcy4KKyAgICAgICAg
KFRhc2tQb29sLl9fZW50ZXJfXyk6IElmIG9ubHkgYSBzaW5nbGUgd29ya2VyIGlzIG5lZWRlZCBh
bmQgdGhlIGNhbGxlciBpcyBub3QgZm9yY2luZworICAgICAgICBhIGZvcmssIHJ1biB0aGUgc2V0
dXAgZnVuY3Rpb24gaW4gdGhlIHBhcmVudCBwcm9jZXNzLgorICAgICAgICAoVGFza1Bvb2wuZG8p
OiBJZiBubyBxdWV1ZSBoYXMgYmVlbiBjb25zdHJ1Y3RlZCwgd2UncmUgcnVubmluZyBpbiB0aGUg
cGFyZW50IHByb2Nlc3MuCisgICAgICAgIChUYXNrUG9vbC53YWl0KTogTm90aGluZyB0byB3YWl0
IGZvciBpZiB3ZSdyZSBydW5uaW5nIGluIHRoZSBwYXJlbnQgcHJvY2Vzcy4KKyAgICAgICAgKFRh
c2tQb29sLl9fZXhpdF9fKTogSWYgbm8gcXVldWUgaGFzIGJlZW4gY29uc3RydWN0ZWQsIHdlJ3Jl
IHJ1bm5pbmcgaW4gdGhlIHBhcmVudCBwcm9jZXNzLAorICAgICAgICBzbyBydW4gdGhlIHRlYXJk
b3duIGluIHRoaXMgcHJvY2VzcyBhbmQgcmVzZXQgdGhlIHByb2Nlc3MgbmFtZS4KKyAgICAgICAg
KiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL3Rhc2tf
cG9vbF91bml0dGVzdC5weToKKyAgICAgICAgKFRhc2tQb29sVW5pdHRlc3QudGVzdF9zaW5nbGUp
OiBGb3JjZSBmb3JrLgorICAgICAgICAoVGFza1Bvb2xVbml0dGVzdC50ZXN0X3NpbmdsZV9ub19m
b3JrKToKKyAgICAgICAgKFRhc2tQb29sVW5pdHRlc3QudGVzdF9leGNlcHRpb24pOiBGb3JjZSBm
b3JrLgorICAgICAgICAoVGFza1Bvb2xVbml0dGVzdC50ZXN0X2V4Y2VwdGlvbl9ub19mb3JrKToK
KyAgICAgICAgKFRhc2tQb29sVW5pdHRlc3QudGVzdF9pbnZhbGlkX3NodXRkb3duKTogRm9yY2Ug
Zm9yay4KKyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdHB5L2FwaV90ZXN0cy9ydW5uZXIucHk6Cisg
ICAgICAgIChfV29ya2VyLl9ydW5fc2luZ2xlX3Rlc3QpOiBSdW4gZnVuY3Rpb25zIGRpcmVjdGx5
IGlmIG5vIHF1ZXVlIGlzIGF2YWlsYWJsZS4KKyAgICAgICAgKF9Xb3JrZXIucnVuKTogRGl0dG8u
CisKIDIwMjEtMDYtMDEgIEFha2FzaCBKYWluICA8YWFrYXNoX2phaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIFByaW50IGJvdCBjb25maWd1cmF0aW9uIGluIGJ1aWxkLndlYmtpdC5vcmcgYnVpbGRz
CkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvc2V0dXAucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3NldHVwLnB5
CShyZXZpc2lvbiAyNzgzMTQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3Jl
cHkvc2V0dXAucHkJKHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDcgQEAgZGVmIHJlYWRtZSgp
OgogCiBzZXR1cCgKICAgICBuYW1lPSd3ZWJraXRjb3JlcHknLAotICAgIHZlcnNpb249JzAuNS4x
NScsCisgICAgdmVyc2lvbj0nMC41LjE2JywKICAgICBkZXNjcmlwdGlvbj0nTGlicmFyeSBjb250
YWluaW5nIHZhcmlvdXMgUHl0aG9uIHN1cHBvcnQgY2xhc3NlcyBhbmQgZnVuY3Rpb25zLicsCiAg
ICAgbG9uZ19kZXNjcmlwdGlvbj1yZWFkbWUoKSwKICAgICBjbGFzc2lmaWVycz1bCkluZGV4OiBU
b29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9f
LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93
ZWJraXRjb3JlcHkvX19pbml0X18ucHkJKHJldmlzaW9uIDI3ODMxNCkKKysrIFRvb2xzL1Njcmlw
dHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHkJKHdvcmtp
bmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAgZnJvbSB3ZWJraXRjb3JlcHkub3V0cHV0X2NhcHR1
cmUgaW1wb3J0IAogZnJvbSB3ZWJraXRjb3JlcHkudGFza19wb29sIGltcG9ydCBUYXNrUG9vbAog
ZnJvbSB3ZWJraXRjb3JlcHkuY3JlZGVudGlhbHMgaW1wb3J0IGNyZWRlbnRpYWxzCiAKLXZlcnNp
b24gPSBWZXJzaW9uKDAsIDUsIDE1KQordmVyc2lvbiA9IFZlcnNpb24oMCwgNSwgMTYpCiAKIGZy
b20gd2Via2l0Y29yZXB5LmF1dG9pbnN0YWxsIGltcG9ydCBQYWNrYWdlLCBBdXRvSW5zdGFsbAog
aWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGFza19wb29sLnB5Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGFza19w
b29sLnB5CShyZXZpc2lvbiAyNzgzMTQpCisrKyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rhc2tfcG9vbC5weQkod29ya2luZyBjb3B5KQpAQCAtMzE3
LDYgKzMxNyw3IEBAIGNsYXNzIFRhc2tQb29sKG9iamVjdCk6CiAgICAgICAgIHNlbGYsIHdvcmtl
cnM9MSwgbmFtZT1Ob25lLCBzZXR1cD1Ob25lLCB0ZWFyZG93bj1Ob25lLCBncmFjZV9wZXJpb2Q9
NSwgYmxvY2tfc2l6ZT0xMDAwLAogICAgICAgICBzZXR1cGFyZ3M9Tm9uZSwgc2V0dXBrd2FyZ3M9
Tm9uZSwKICAgICAgICAgdGVhcmRvd25hcmdzPU5vbmUsIHRlYXJkb3dua3dhcmdzPU5vbmUsCisg
ICAgICAgIGZvcmNlX2Zvcms9RmFsc2UsCiAgICAgKToKICAgICAgICAgIyBFbnN1cmUgdGJsaWIg
aXMgaW5zdGFsbGVkIGJlZm9yZSBjcmVhdGluZyBjaGlsZCBwcm9jZXNzZXMKICAgICAgICAgaW1w
b3J0IHRibGliCkBAIC0zMzIsOCArMzMzLDggQEAgY2xhc3MgVGFza1Bvb2wob2JqZWN0KToKICAg
ICAgICAgc2VsZi5xdWV1ZSA9IE5vbmUKICAgICAgICAgc2VsZi53b3JrZXJzID0gW10KIAotICAg
ICAgICBzZWxmLl9zZXR1cF9hcmdzID0gKHNldHVwLCBzZXR1cGFyZ3MsIHNldHVwa3dhcmdzKQot
ICAgICAgICBzZWxmLl90ZWFyZG93bl9hcmdzID0gKHRlYXJkb3duLCB0ZWFyZG93bmFyZ3MsIHRl
YXJkb3dua3dhcmdzKQorICAgICAgICBzZWxmLl9zZXR1cF9hcmdzID0gKHNldHVwLCBzZXR1cGFy
Z3Mgb3IgW10sIHNldHVwa3dhcmdzIG9yIHt9KQorICAgICAgICBzZWxmLl90ZWFyZG93bl9hcmdz
ID0gKHRlYXJkb3duLCB0ZWFyZG93bmFyZ3Mgb3IgW10sIHRlYXJkb3dua3dhcmdzIG9yIHt9KQog
ICAgICAgICBzZWxmLl9udW1fd29ya2VycyA9IGludCh3b3JrZXJzKQogCiAgICAgICAgIHNlbGYu
X3N0YXJ0ZWQgPSAwCkBAIC0zNDIsOCArMzQzLDE2IEBAIGNsYXNzIFRhc2tQb29sKG9iamVjdCk6
CiAgICAgICAgIHNlbGYuX2lkX2NvdW50ID0gMAogICAgICAgICBzZWxmLmdyYWNlX3BlcmlvZCA9
IGdyYWNlX3BlcmlvZAogICAgICAgICBzZWxmLmJsb2NrX3NpemUgPSBibG9ja19zaXplCisgICAg
ICAgIHNlbGYuZm9yY2VfZm9yayA9IGZvcmNlX2ZvcmsKIAogICAgIGRlZiBfX2VudGVyX18oc2Vs
Zik6CisgICAgICAgIGlmIG5vdCBzZWxmLmZvcmNlX2ZvcmsgYW5kIHNlbGYuX251bV93b3JrZXJz
ID09IDE6CisgICAgICAgICAgICBUYXNrUG9vbC5Qcm9jZXNzLm5hbWUgPSBUYXNrUG9vbC5Qcm9j
ZXNzLm5hbWUgb3IgJ3t9LzAnLmZvcm1hdChzZWxmLm5hbWUpCisgICAgICAgICAgICBpZiBzZWxm
Ll9zZXR1cF9hcmdzWzBdOgorICAgICAgICAgICAgICAgIHNlbGYuX3NldHVwX2FyZ3NbMF0oKnNl
bGYuX3NldHVwX2FyZ3NbMV0sICoqc2VsZi5fc2V0dXBfYXJnc1syXSkKKyAgICAgICAgICAgIFRh
c2tQb29sLlByb2Nlc3Mud29ya2luZyA9IFRydWUKKyAgICAgICAgICAgIHJldHVybiBzZWxmCisK
ICAgICAgICAgZnJvbSBtb2NrIGltcG9ydCBwYXRjaAogCiAgICAgICAgIHNlbGYucXVldWUgPSBz
ZWxmLkJpRGlyZWN0aW9uYWxRdWV1ZSgpCkBAIC0zNjIsMTAgKzM3MSwxNyBAQCBjbGFzcyBUYXNr
UG9vbChvYmplY3QpOgogICAgICAgICAgICAgICAgIHdvcmtlci5zdGFydCgpCiAgICAgICAgICAg
ICB3aGlsZSBzZWxmLl9zdGFydGVkIDwgbGVuKHNlbGYud29ya2Vycyk6CiAgICAgICAgICAgICAg
ICAgc2VsZi5xdWV1ZS5yZWNlaXZlKCkoc2VsZikKKwogICAgICAgICByZXR1cm4gc2VsZgogCiAg
ICAgZGVmIGRvKHNlbGYsIGZ1bmN0aW9uLCAqYXJncywgKiprd2FyZ3MpOgogICAgICAgICBjYWxs
YmFjayA9IGt3YXJncy5wb3AoJ2NhbGxiYWNrJywgTm9uZSkKKyAgICAgICAgaWYgbm90IHNlbGYu
cXVldWU6CisgICAgICAgICAgICByZXN1bHQgPSBmdW5jdGlvbigqYXJncywgKiprd2FyZ3MpCisg
ICAgICAgICAgICBpZiBjYWxsYmFjazoKKyAgICAgICAgICAgICAgICBjYWxsYmFjayhyZXN1bHQp
CisgICAgICAgICAgICByZXR1cm4KKwogICAgICAgICBpZiBjYWxsYmFjazoKICAgICAgICAgICAg
IHNlbGYuY2FsbGJhY2tzW3NlbGYuX2lkX2NvdW50XSA9IGNhbGxiYWNrCiAgICAgICAgIHNlbGYu
cXVldWUuc2VuZChzZWxmLlRhc2soZnVuY3Rpb24sIHNlbGYuX2lkX2NvdW50LCAqYXJncywgKipr
d2FyZ3MpKQpAQCAtMzgwLDYgKzM5Niw5IEBAIGNsYXNzIFRhc2tQb29sKG9iamVjdCk6CiAgICAg
ICAgICAgICAgICAgICAgIGJyZWFrCiAKICAgICBkZWYgd2FpdChzZWxmKToKKyAgICAgICAgaWYg
bm90IHNlbGYucXVldWU6CisgICAgICAgICAgICByZXR1cm4KKwogICAgICAgICBmb3IgXyBpbiBz
ZWxmLndvcmtlcnM6CiAgICAgICAgICAgICBzZWxmLnF1ZXVlLnNlbmQoTm9uZSkKIApAQCAtMzg3
LDYgKzQwNiwxNiBAQCBjbGFzcyBUYXNrUG9vbChvYmplY3QpOgogICAgICAgICAgICAgc2VsZi5x
dWV1ZS5yZWNlaXZlKCkoc2VsZikKIAogICAgIGRlZiBfX2V4aXRfXyhzZWxmLCAqYXJncywgKipr
d2FyZ3MpOgorICAgICAgICBpZiBub3Qgc2VsZi5xdWV1ZToKKyAgICAgICAgICAgIFRhc2tQb29s
LlByb2Nlc3Mud29ya2luZyA9IEZhbHNlCisgICAgICAgICAgICB0cnk6CisgICAgICAgICAgICAg
ICAgaWYgc2VsZi5fdGVhcmRvd25fYXJnc1swXToKKyAgICAgICAgICAgICAgICAgICAgc2VsZi5f
dGVhcmRvd25fYXJnc1swXSgqc2VsZi5fdGVhcmRvd25fYXJnc1sxXSwgKipzZWxmLl90ZWFyZG93
bl9hcmdzWzJdKQorICAgICAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgICAgICBpZiAne30v
MCcuZm9ybWF0KHNlbGYubmFtZSkgPT0gVGFza1Bvb2wuUHJvY2Vzcy5uYW1lOgorICAgICAgICAg
ICAgICAgICAgICBUYXNrUG9vbC5Qcm9jZXNzLm5hbWUgPSBOb25lCisgICAgICAgICAgICByZXR1
cm4KKwogICAgICAgICBmcm9tIHNpeCBpbXBvcnQgcmVyYWlzZQogICAgICAgICB0cnk6CiAgICAg
ICAgICAgICBpbmZsaWdodCA9IHN5cy5leGNfaW5mbygpCkluZGV4OiBUb29scy9TY3JpcHRzL2xp
YnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL3Rhc2tfcG9vbF91bml0dGVz
dC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkv
d2Via2l0Y29yZXB5L3Rlc3RzL3Rhc2tfcG9vbF91bml0dGVzdC5weQkocmV2aXNpb24gMjc4MzE0
KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS90
ZXN0cy90YXNrX3Bvb2xfdW5pdHRlc3QucHkJKHdvcmtpbmcgY29weSkKQEAgLTYxLDcgKzYxLDcg
QEAgY2xhc3MgVGFza1Bvb2xVbml0dGVzdCh1bml0dGVzdC5UZXN0Q2FzZQogCiAgICAgZGVmIHRl
c3Rfc2luZ2xlKHNlbGYpOgogICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUobGV2ZWw9bG9nZ2lu
Zy5XQVJOSU5HKSBhcyBjYXB0dXJlZDoKLSAgICAgICAgICAgIHdpdGggVGFza1Bvb2wod29ya2Vy
cz0xKSBhcyBwb29sOgorICAgICAgICAgICAgd2l0aCBUYXNrUG9vbCh3b3JrZXJzPTEsIGZvcmNl
X2Zvcms9VHJ1ZSkgYXMgcG9vbDoKICAgICAgICAgICAgICAgICBwb29sLmRvKGFjdGlvbiwgJ2En
KQogICAgICAgICAgICAgICAgIHBvb2wuZG8obG9nLCBsb2dnaW5nLldBUk5JTkcsICcxJykKICAg
ICAgICAgICAgICAgICBwb29sLndhaXQoKQpAQCAtNjksNiArNjksMTYgQEAgY2xhc3MgVGFza1Bv
b2xVbml0dGVzdCh1bml0dGVzdC5UZXN0Q2FzZQogICAgICAgICBzZWxmLmFzc2VydEVxdWFsKGNh
cHR1cmVkLnN0ZG91dC5nZXR2YWx1ZSgpLCAnYWN0aW9uKGEpXG4nKQogICAgICAgICBzZWxmLmFz
c2VydEVxdWFsKGNhcHR1cmVkLndlYmtpdGNvcmVweS5sb2cuZ2V0dmFsdWUoKSwgJ3dvcmtlci8w
IDFcbicpCiAKKyAgICBkZWYgdGVzdF9zaW5nbGVfbm9fZm9yayhzZWxmKToKKyAgICAgICAgd2l0
aCBPdXRwdXRDYXB0dXJlKGxldmVsPWxvZ2dpbmcuV0FSTklORykgYXMgY2FwdHVyZWQ6CisgICAg
ICAgICAgICB3aXRoIFRhc2tQb29sKHdvcmtlcnM9MSwgZm9yY2VfZm9yaz1GYWxzZSkgYXMgcG9v
bDoKKyAgICAgICAgICAgICAgICBwb29sLmRvKGFjdGlvbiwgJ2EnKQorICAgICAgICAgICAgICAg
IHBvb2wuZG8obG9nLCBsb2dnaW5nLldBUk5JTkcsICcxJykKKyAgICAgICAgICAgICAgICBwb29s
LndhaXQoKQorCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZWQuc3Rkb3V0LmdldHZh
bHVlKCksICdhY3Rpb24oYSlcbicpCisgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVyZWQu
d2Via2l0Y29yZXB5LmxvZy5nZXR2YWx1ZSgpLCAnMVxuJykKKwogICAgIGRlZiB0ZXN0X211bHRp
cGxlKHNlbGYpOgogICAgICAgICB3aXRoIE91dHB1dENhcHR1cmUobGV2ZWw9bG9nZ2luZy5JTkZP
KSBhcyBjYXB0dXJlZDoKICAgICAgICAgICAgIHdpdGggVGFza1Bvb2wod29ya2Vycz00KSBhcyBw
b29sOgpAQCAtOTksNyArMTA5LDcgQEAgY2xhc3MgVGFza1Bvb2xVbml0dGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZQogICAgIGRlZiB0ZXN0X2V4Y2VwdGlvbihzZWxmKToKICAgICAgICAgd2l0aCBPdXRw
dXRDYXB0dXJlKGxldmVsPWxvZ2dpbmcuSU5GTykgYXMgY2FwdHVyZWQ6CiAgICAgICAgICAgICB3
aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvcik6Ci0gICAgICAgICAgICAgICAgd2l0
aCBUYXNrUG9vbCh3b3JrZXJzPTEpIGFzIHBvb2w6CisgICAgICAgICAgICAgICAgd2l0aCBUYXNr
UG9vbCh3b3JrZXJzPTEsIGZvcmNlX2Zvcms9VHJ1ZSkgYXMgcG9vbDoKICAgICAgICAgICAgICAg
ICAgICAgcG9vbC5kbyhleGNlcHRpb24sICdUZXN0aW5nIGV4Y2VwdGlvbicpCiAgICAgICAgICAg
ICAgICAgICAgIHBvb2wud2FpdCgpCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoCkBAIC0xMDcs
NiArMTE3LDE0IEBAIGNsYXNzIFRhc2tQb29sVW5pdHRlc3QodW5pdHRlc3QuVGVzdENhc2UKICAg
ICAgICAgICAgIFsnd29ya2VyLzAgc3RhcnRpbmcnLCAnd29ya2VyLzAgc3RvcHBpbmcnXSwKICAg
ICAgICAgKQogCisgICAgZGVmIHRlc3RfZXhjZXB0aW9uX25vX2Zvcmsoc2VsZik6CisgICAgICAg
IHdpdGggT3V0cHV0Q2FwdHVyZShsZXZlbD1sb2dnaW5nLklORk8pIGFzIGNhcHR1cmVkOgorICAg
ICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNlcyhSdW50aW1lRXJyb3IpOgorICAgICAgICAg
ICAgICAgIHdpdGggVGFza1Bvb2wod29ya2Vycz0xLCBmb3JjZV9mb3JrPUZhbHNlKSBhcyBwb29s
OgorICAgICAgICAgICAgICAgICAgICBwb29sLmRvKGV4Y2VwdGlvbiwgJ1Rlc3RpbmcgZXhjZXB0
aW9uJykKKyAgICAgICAgICAgICAgICAgICAgcG9vbC53YWl0KCkKKyAgICAgICAgc2VsZi5hc3Nl
cnRFcXVhbChjYXB0dXJlZC53ZWJraXRjb3JlcHkubG9nLmdldHZhbHVlKCksICcnKQorCiAgICAg
ZGVmIHRlc3Rfc2V0dXAoc2VsZik6CiAgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZSgpIGFzIGNh
cHR1cmVkOgogICAgICAgICAgICAgd2l0aCBUYXNrUG9vbCh3b3JrZXJzPTQsIHNldHVwPXNldHVw
KSBhcyBwb29sOgpAQCAtMTU0LDUgKzE3Miw1IEBAIGNsYXNzIFRhc2tQb29sVW5pdHRlc3QodW5p
dHRlc3QuVGVzdENhc2UKICAgICBkZWYgdGVzdF9pbnZhbGlkX3NodXRkb3duKHNlbGYpOgogICAg
ICAgICB3aXRoIE91dHB1dENhcHR1cmUoKToKICAgICAgICAgICAgIHdpdGggc2VsZi5hc3NlcnRS
YWlzZXMoVGFza1Bvb2wuRXhjZXB0aW9uKToKLSAgICAgICAgICAgICAgICB3aXRoIFRhc2tQb29s
KHdvcmtlcnM9MSwgdGVhcmRvd249dGVhcmRvd24sIGdyYWNlX3BlcmlvZD0xKSBhcyBwb29sOgor
ICAgICAgICAgICAgICAgIHdpdGggVGFza1Bvb2wod29ya2Vycz0xLCB0ZWFyZG93bj10ZWFyZG93
biwgZ3JhY2VfcGVyaW9kPTEsIGZvcmNlX2Zvcms9VHJ1ZSkgYXMgcG9vbDoKICAgICAgICAgICAg
ICAgICAgICAgcG9vbC5kbyh3YWl0LCAyKQpJbmRleDogVG9vbHMvU2NyaXB0cy93ZWJraXRweS9h
cGlfdGVzdHMvcnVubmVyLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0cHkv
YXBpX3Rlc3RzL3J1bm5lci5weQkocmV2aXNpb24gMjc4MzE0KQorKysgVG9vbHMvU2NyaXB0cy93
ZWJraXRweS9hcGlfdGVzdHMvcnVubmVyLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMzEsMTIgKzIz
MSwxOCBAQCBjbGFzcyBfV29ya2VyKG9iamVjdCk6CiAgICAgICAgICAgICBvdXRwdXRfYnVmZmVy
ID0gc3RkZXJyX2J1ZmZlciArIHN0ZG91dF9idWZmZXIgKyByZW1haW5pbmdfc3RkZXJyICsgcmVt
YWluaW5nX3N0ZG91dAogICAgICAgICAgICAgc2VydmVyX3Byb2Nlc3Muc3RvcCgpCiAKLSAgICAg
ICAgVGFza1Bvb2wuUHJvY2Vzcy5xdWV1ZS5zZW5kKFRhc2tQb29sLlRhc2soCi0gICAgICAgICAg
ICByZXBvcnRfcmVzdWx0LCBOb25lLCBUYXNrUG9vbC5Qcm9jZXNzLm5hbWUsCi0gICAgICAgICAg
ICAne30ue30nLmZvcm1hdChiaW5hcnlfbmFtZSwgdGVzdCksCi0gICAgICAgICAgICBzdGF0dXMs
Ci0gICAgICAgICAgICBzZWxmLl9maWx0ZXJfbm9pc3lfb3V0cHV0KG91dHB1dF9idWZmZXIpLAot
ICAgICAgICApKQorICAgICAgICBpZiBUYXNrUG9vbC5Qcm9jZXNzLnF1ZXVlOgorICAgICAgICAg
ICAgVGFza1Bvb2wuUHJvY2Vzcy5xdWV1ZS5zZW5kKFRhc2tQb29sLlRhc2soCisgICAgICAgICAg
ICAgICAgcmVwb3J0X3Jlc3VsdCwgTm9uZSwgVGFza1Bvb2wuUHJvY2Vzcy5uYW1lLAorICAgICAg
ICAgICAgICAgICd7fS57fScuZm9ybWF0KGJpbmFyeV9uYW1lLCB0ZXN0KSwKKyAgICAgICAgICAg
ICAgICBzdGF0dXMsCisgICAgICAgICAgICAgICAgc2VsZi5fZmlsdGVyX25vaXN5X291dHB1dChv
dXRwdXRfYnVmZmVyKSwKKyAgICAgICAgICAgICkpCisgICAgICAgIGVsc2U6CisgICAgICAgICAg
ICByZXBvcnRfcmVzdWx0KAorICAgICAgICAgICAgICAgIFRhc2tQb29sLlByb2Nlc3MubmFtZSwg
J3t9Lnt9Jy5mb3JtYXQoYmluYXJ5X25hbWUsIHRlc3QpLAorICAgICAgICAgICAgICAgIHN0YXR1
cywgc2VsZi5fZmlsdGVyX25vaXN5X291dHB1dChvdXRwdXRfYnVmZmVyKSwKKyAgICAgICAgICAg
ICkKIAogICAgIGRlZiBydW4oc2VsZiwgbmFtZSwgKnRlc3RzKToKICAgICAgICAgYmluYXJ5X25h
bWUgPSBuYW1lLnNwbGl0KCcuJylbMF0KQEAgLTI4MywxMSArMjg5LDE3IEBAIGNsYXNzIF9Xb3Jr
ZXIob2JqZWN0KToKIAogICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGxpbmUgaW4gc3Rkb3V0
X2J1ZmZlci5zcGxpdGxpbmVzKEZhbHNlKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBf
bG9nLmVycm9yKGxpbmUpCi0gICAgICAgICAgICAgICAgICAgICAgICBUYXNrUG9vbC5Qcm9jZXNz
LnF1ZXVlLnNlbmQoVGFza1Bvb2wuVGFzaygKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
ZXBvcnRfcmVzdWx0LCBOb25lLCBUYXNrUG9vbC5Qcm9jZXNzLm5hbWUsCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgJ3t9Lnt9Jy5mb3JtYXQoYmluYXJ5X25hbWUsIGxhc3RfdGVzdCksCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9zdGF0dXMsIHN0ZG91dF9idWZmZXIsCi0g
ICAgICAgICAgICAgICAgICAgICAgICApKQorICAgICAgICAgICAgICAgICAgICAgICAgaWYgVGFz
a1Bvb2wuUHJvY2Vzcy5xdWV1ZToKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYXNrUG9v
bC5Qcm9jZXNzLnF1ZXVlLnNlbmQoVGFza1Bvb2wuVGFzaygKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmVwb3J0X3Jlc3VsdCwgTm9uZSwgVGFza1Bvb2wuUHJvY2Vzcy5uYW1lLAor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAne30ue30nLmZvcm1hdChiaW5hcnlfbmFt
ZSwgbGFzdF90ZXN0KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9zdGF0
dXMsIHN0ZG91dF9idWZmZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGVsc2U6CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVw
b3J0X3Jlc3VsdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVGFza1Bvb2wuUHJv
Y2Vzcy5uYW1lLCAne30ue30nLmZvcm1hdChiaW5hcnlfbmFtZSwgbGFzdF90ZXN0KSwKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9zdGF0dXMsIHN0ZG91dF9idWZmZXIsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgICAgICAgICAgZGVh
ZGxpbmUgPSB0aW1lLnRpbWUoKSArIHNlbGYuX3RpbWVvdXQKICAgICAgICAgICAgICAgICAgICAg
ICAgIHN0ZG91dF9idWZmZXIgPSAnJwogCkBAIC0zMDUsMTIgKzMxNywxOCBAQCBjbGFzcyBfV29y
a2VyKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIGZvciBsaW5lIGluIChzdGRvdXRfYnVm
ZmVyICsgc3RkZXJyX2J1ZmZlcikuc3BsaXRsaW5lcyhrZWVwZW5kcz1GYWxzZSk6CiAgICAgICAg
ICAgICAgICAgICAgICAgICBfbG9nLmVycm9yKGxpbmUpCiAKLSAgICAgICAgICAgICAgICAgICAg
VGFza1Bvb2wuUHJvY2Vzcy5xdWV1ZS5zZW5kKFRhc2tQb29sLlRhc2soCi0gICAgICAgICAgICAg
ICAgICAgICAgICByZXBvcnRfcmVzdWx0LCBOb25lLCBUYXNrUG9vbC5Qcm9jZXNzLm5hbWUsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAne30ue30nLmZvcm1hdChiaW5hcnlfbmFtZSwgbGFzdF90
ZXN0KSwKLSAgICAgICAgICAgICAgICAgICAgICAgIGxhc3Rfc3RhdHVzLAotICAgICAgICAgICAg
ICAgICAgICAgICAgc2VsZi5fZmlsdGVyX25vaXN5X291dHB1dChzdGRvdXRfYnVmZmVyICsgc3Rk
ZXJyX2J1ZmZlciksCi0gICAgICAgICAgICAgICAgICAgICkpCisgICAgICAgICAgICAgICAgICAg
IGlmIFRhc2tQb29sLlByb2Nlc3MucXVldWU6CisgICAgICAgICAgICAgICAgICAgICAgICBUYXNr
UG9vbC5Qcm9jZXNzLnF1ZXVlLnNlbmQoVGFza1Bvb2wuVGFzaygKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICByZXBvcnRfcmVzdWx0LCBOb25lLCBUYXNrUG9vbC5Qcm9jZXNzLm5hbWUsCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgJ3t9Lnt9Jy5mb3JtYXQoYmluYXJ5X25hbWUsIGxh
c3RfdGVzdCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFzdF9zdGF0dXMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgc2VsZi5fZmlsdGVyX25vaXN5X291dHB1dChzdGRvdXRf
YnVmZmVyICsgc3RkZXJyX2J1ZmZlciksCisgICAgICAgICAgICAgICAgICAgICAgICApKQorICAg
ICAgICAgICAgICAgICAgICBlbHNlOgorICAgICAgICAgICAgICAgICAgICAgICAgcmVwb3J0X3Jl
c3VsdCgKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYXNrUG9vbC5Qcm9jZXNzLm5hbWUs
ICd7fS57fScuZm9ybWF0KGJpbmFyeV9uYW1lLCBsYXN0X3Rlc3QpLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIGxhc3Rfc3RhdHVzLCBzZWxmLl9maWx0ZXJfbm9pc3lfb3V0cHV0KHN0ZG91
dF9idWZmZXIgKyBzdGRlcnJfYnVmZmVyKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICkKIAog
ICAgICAgICAgICAgICAgIGlmIHNlcnZlcl9wcm9jZXNzLnRpbWVkX291dDoKICAgICAgICAgICAg
ICAgICAgICAgYnJlYWsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430409</attachid>
            <date>2021-06-02 14:42:43 -0700</date>
            <delta_ts>2021-06-02 16:10:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226506-20210602144242.patch</filename>
            <type>text/plain</type>
            <size>9598</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3ODM3MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI4IEBACisyMDIxLTA2LTAyICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBUYXNrUG9vbCBzaG91bGRuJ3QgZm9yayB3aGVu
IDEgcHJvY2VzcyBpcyBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNjUwNgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNzg3MjQ1NTQ+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBTY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRjb3JlcHkvc2V0dXAucHk6IEJ1bXAgdmVyc2lvbi4KKyAgICAgICAg
KiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5
OiBEaXR0by4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0
Y29yZXB5L3Rhc2tfcG9vbC5weToKKyAgICAgICAgKFRhc2tQb29sLl9faW5pdF9fKTogQWxsb3cg
dXNlciB0byBmb3JjZSBmb3JrLCBldmVuIHdpdGggYSBzaW5nbGUgcHJvY2Vzcy4KKyAgICAgICAg
KFRhc2tQb29sLl9fZW50ZXJfXyk6IElmIG9ubHkgYSBzaW5nbGUgd29ya2VyIGlzIG5lZWRlZCBh
bmQgdGhlIGNhbGxlciBpcyBub3QgZm9yY2luZworICAgICAgICBhIGZvcmssIHJ1biB0aGUgc2V0
dXAgZnVuY3Rpb24gaW4gdGhlIHBhcmVudCBwcm9jZXNzLgorICAgICAgICAoVGFza1Bvb2wuZG8p
OiBJZiBubyBxdWV1ZSBoYXMgYmVlbiBjb25zdHJ1Y3RlZCwgd2UncmUgcnVubmluZyBpbiB0aGUg
cGFyZW50IHByb2Nlc3MuCisgICAgICAgIChUYXNrUG9vbC53YWl0KTogTm90aGluZyB0byB3YWl0
IGZvciBpZiB3ZSdyZSBydW5uaW5nIGluIHRoZSBwYXJlbnQgcHJvY2Vzcy4KKyAgICAgICAgKFRh
c2tQb29sLl9fZXhpdF9fKTogSWYgbm8gcXVldWUgaGFzIGJlZW4gY29uc3RydWN0ZWQsIHdlJ3Jl
IHJ1bm5pbmcgaW4gdGhlIHBhcmVudCBwcm9jZXNzLAorICAgICAgICBzbyBydW4gdGhlIHRlYXJk
b3duIGluIHRoaXMgcHJvY2VzcyBhbmQgcmVzZXQgdGhlIHByb2Nlc3MgbmFtZS4KKyAgICAgICAg
KiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3RzL3Rhc2tf
cG9vbF91bml0dGVzdC5weToKKyAgICAgICAgKFRhc2tQb29sVW5pdHRlc3QudGVzdF9zaW5nbGUp
OiBGb3JjZSBmb3JrLgorICAgICAgICAoVGFza1Bvb2xVbml0dGVzdC50ZXN0X3NpbmdsZV9ub19m
b3JrKToKKyAgICAgICAgKFRhc2tQb29sVW5pdHRlc3QudGVzdF9leGNlcHRpb24pOiBGb3JjZSBm
b3JrLgorICAgICAgICAoVGFza1Bvb2xVbml0dGVzdC50ZXN0X2V4Y2VwdGlvbl9ub19mb3JrKToK
KyAgICAgICAgKFRhc2tQb29sVW5pdHRlc3QudGVzdF9pbnZhbGlkX3NodXRkb3duKTogRm9yY2Ug
Zm9yay4KKwogMjAyMS0wNi0wMiAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAg
ICAgICAgIERyb3AgQ2hlY2tlZDo6c2FmZUdldCgpCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJh
cmllcy93ZWJraXRjb3JlcHkvc2V0dXAucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0Y29yZXB5L3NldHVwLnB5CShyZXZpc2lvbiAyNzgzNzIpCisrKyBUb29s
cy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvc2V0dXAucHkJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDcgKzMwLDcgQEAgZGVmIHJlYWRtZSgpOgogCiBzZXR1cCgKICAgICBuYW1lPSd3ZWJr
aXRjb3JlcHknLAotICAgIHZlcnNpb249JzAuNS4xNScsCisgICAgdmVyc2lvbj0nMC41LjE2JywK
ICAgICBkZXNjcmlwdGlvbj0nTGlicmFyeSBjb250YWluaW5nIHZhcmlvdXMgUHl0aG9uIHN1cHBv
cnQgY2xhc3NlcyBhbmQgZnVuY3Rpb25zLicsCiAgICAgbG9uZ19kZXNjcmlwdGlvbj1yZWFkbWUo
KSwKICAgICBjbGFzc2lmaWVycz1bCkluZGV4OiBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJr
aXRjb3JlcHkvd2Via2l0Y29yZXB5L19faW5pdF9fLnB5Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHkJKHJl
dmlzaW9uIDI3ODM3MikKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93
ZWJraXRjb3JlcHkvX19pbml0X18ucHkJKHdvcmtpbmcgY29weSkKQEAgLTM3LDcgKzM3LDcgQEAg
ZnJvbSB3ZWJraXRjb3JlcHkub3V0cHV0X2NhcHR1cmUgaW1wb3J0IAogZnJvbSB3ZWJraXRjb3Jl
cHkudGFza19wb29sIGltcG9ydCBUYXNrUG9vbAogZnJvbSB3ZWJraXRjb3JlcHkuY3JlZGVudGlh
bHMgaW1wb3J0IGNyZWRlbnRpYWxzCiAKLXZlcnNpb24gPSBWZXJzaW9uKDAsIDUsIDE1KQordmVy
c2lvbiA9IFZlcnNpb24oMCwgNSwgMTYpCiAKIGZyb20gd2Via2l0Y29yZXB5LmF1dG9pbnN0YWxs
IGltcG9ydCBQYWNrYWdlLCBBdXRvSW5zdGFsbAogaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAw
KToKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3Jl
cHkvdGFza19wb29sLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dl
YmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGFza19wb29sLnB5CShyZXZpc2lvbiAyNzgzNzIpCisr
KyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rhc2tf
cG9vbC5weQkod29ya2luZyBjb3B5KQpAQCAtMTU5LDYgKzE1OSwxOSBAQCBjbGFzcyBfQmlEaXJl
Y3Rpb25hbFF1ZXVlKG9iamVjdCk6CiAgICAgICAgICAgICBzZWxmLmluY29taW5nLmpvaW5fdGhy
ZWFkKCkKIAogCitjbGFzcyBfRHVtbXlRdWV1ZShvYmplY3QpOgorICAgIGRlZiBzZW5kKHNlbGYs
IG9iamVjdCk6CisgICAgICAgIGlmIGlzaW5zdGFuY2Uob2JqZWN0LCBfTWVzc2FnZSk6CisgICAg
ICAgICAgICBvYmplY3QoTm9uZSkKKyAgICAgICAgcmV0dXJuIFRydWUKKworICAgIGRlZiByZWNl
aXZlKHNlbGYsIGJsb2NraW5nPVRydWUpOgorICAgICAgICBwYXNzCisKKyAgICBkZWYgY2xvc2Uo
c2VsZik6CisgICAgICAgIHBhc3MKKworCiBjbGFzcyBfUHJvY2VzcyhvYmplY3QpOgogICAgIG5h
bWUgPSBOb25lCiAgICAgd29ya2luZyA9IEZhbHNlCkBAIC0zMTcsNiArMzMwLDcgQEAgY2xhc3Mg
VGFza1Bvb2wob2JqZWN0KToKICAgICAgICAgc2VsZiwgd29ya2Vycz0xLCBuYW1lPU5vbmUsIHNl
dHVwPU5vbmUsIHRlYXJkb3duPU5vbmUsIGdyYWNlX3BlcmlvZD01LCBibG9ja19zaXplPTEwMDAs
CiAgICAgICAgIHNldHVwYXJncz1Ob25lLCBzZXR1cGt3YXJncz1Ob25lLAogICAgICAgICB0ZWFy
ZG93bmFyZ3M9Tm9uZSwgdGVhcmRvd25rd2FyZ3M9Tm9uZSwKKyAgICAgICAgZm9yY2VfZm9yaz1G
YWxzZSwKICAgICApOgogICAgICAgICAjIEVuc3VyZSB0YmxpYiBpcyBpbnN0YWxsZWQgYmVmb3Jl
IGNyZWF0aW5nIGNoaWxkIHByb2Nlc3NlcwogICAgICAgICBpbXBvcnQgdGJsaWIKQEAgLTMzMiw4
ICszNDYsOCBAQCBjbGFzcyBUYXNrUG9vbChvYmplY3QpOgogICAgICAgICBzZWxmLnF1ZXVlID0g
Tm9uZQogICAgICAgICBzZWxmLndvcmtlcnMgPSBbXQogCi0gICAgICAgIHNlbGYuX3NldHVwX2Fy
Z3MgPSAoc2V0dXAsIHNldHVwYXJncywgc2V0dXBrd2FyZ3MpCi0gICAgICAgIHNlbGYuX3RlYXJk
b3duX2FyZ3MgPSAodGVhcmRvd24sIHRlYXJkb3duYXJncywgdGVhcmRvd25rd2FyZ3MpCisgICAg
ICAgIHNlbGYuX3NldHVwX2FyZ3MgPSAoc2V0dXAsIHNldHVwYXJncyBvciBbXSwgc2V0dXBrd2Fy
Z3Mgb3Ige30pCisgICAgICAgIHNlbGYuX3RlYXJkb3duX2FyZ3MgPSAodGVhcmRvd24sIHRlYXJk
b3duYXJncyBvciBbXSwgdGVhcmRvd25rd2FyZ3Mgb3Ige30pCiAgICAgICAgIHNlbGYuX251bV93
b3JrZXJzID0gaW50KHdvcmtlcnMpCiAKICAgICAgICAgc2VsZi5fc3RhcnRlZCA9IDAKQEAgLTM0
Miw4ICszNTYsMjAgQEAgY2xhc3MgVGFza1Bvb2wob2JqZWN0KToKICAgICAgICAgc2VsZi5faWRf
Y291bnQgPSAwCiAgICAgICAgIHNlbGYuZ3JhY2VfcGVyaW9kID0gZ3JhY2VfcGVyaW9kCiAgICAg
ICAgIHNlbGYuYmxvY2tfc2l6ZSA9IGJsb2NrX3NpemUKKyAgICAgICAgc2VsZi5mb3JjZV9mb3Jr
ID0gZm9yY2VfZm9yaworCisgICAgICAgIGlmIG5vdCBzZWxmLmZvcmNlX2ZvcmsgYW5kIHNlbGYu
X251bV93b3JrZXJzID09IDEgYW5kIFRhc2tQb29sLlByb2Nlc3MucXVldWU6CisgICAgICAgICAg
ICByYWlzZSBWYWx1ZUVycm9yKCdJbGxlZ2FsIHNpbmdsZS1wcm9jZXNzIFRhc2tQb29sIG5lc3Rp
bmcnKQogCiAgICAgZGVmIF9fZW50ZXJfXyhzZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYuZm9y
Y2VfZm9yayBhbmQgc2VsZi5fbnVtX3dvcmtlcnMgPT0gMToKKyAgICAgICAgICAgIFRhc2tQb29s
LlByb2Nlc3MucXVldWUgPSBfRHVtbXlRdWV1ZSgpCisgICAgICAgICAgICBUYXNrUG9vbC5Qcm9j
ZXNzLm5hbWUgPSBUYXNrUG9vbC5Qcm9jZXNzLm5hbWUgb3IgJ3t9LzAnLmZvcm1hdChzZWxmLm5h
bWUpCisgICAgICAgICAgICBpZiBzZWxmLl9zZXR1cF9hcmdzWzBdOgorICAgICAgICAgICAgICAg
IHNlbGYuX3NldHVwX2FyZ3NbMF0oKnNlbGYuX3NldHVwX2FyZ3NbMV0sICoqc2VsZi5fc2V0dXBf
YXJnc1syXSkKKyAgICAgICAgICAgIFRhc2tQb29sLlByb2Nlc3Mud29ya2luZyA9IFRydWUKKyAg
ICAgICAgICAgIHJldHVybiBzZWxmCisKICAgICAgICAgZnJvbSBtb2NrIGltcG9ydCBwYXRjaAog
CiAgICAgICAgIHNlbGYucXVldWUgPSBzZWxmLkJpRGlyZWN0aW9uYWxRdWV1ZSgpCkBAIC0zNjIs
MTAgKzM4OCwxNyBAQCBjbGFzcyBUYXNrUG9vbChvYmplY3QpOgogICAgICAgICAgICAgICAgIHdv
cmtlci5zdGFydCgpCiAgICAgICAgICAgICB3aGlsZSBzZWxmLl9zdGFydGVkIDwgbGVuKHNlbGYu
d29ya2Vycyk6CiAgICAgICAgICAgICAgICAgc2VsZi5xdWV1ZS5yZWNlaXZlKCkoc2VsZikKKwog
ICAgICAgICByZXR1cm4gc2VsZgogCiAgICAgZGVmIGRvKHNlbGYsIGZ1bmN0aW9uLCAqYXJncywg
Kiprd2FyZ3MpOgogICAgICAgICBjYWxsYmFjayA9IGt3YXJncy5wb3AoJ2NhbGxiYWNrJywgTm9u
ZSkKKyAgICAgICAgaWYgbm90IHNlbGYucXVldWU6CisgICAgICAgICAgICByZXN1bHQgPSBmdW5j
dGlvbigqYXJncywgKiprd2FyZ3MpCisgICAgICAgICAgICBpZiBjYWxsYmFjazoKKyAgICAgICAg
ICAgICAgICBjYWxsYmFjayhyZXN1bHQpCisgICAgICAgICAgICByZXR1cm4KKwogICAgICAgICBp
ZiBjYWxsYmFjazoKICAgICAgICAgICAgIHNlbGYuY2FsbGJhY2tzW3NlbGYuX2lkX2NvdW50XSA9
IGNhbGxiYWNrCiAgICAgICAgIHNlbGYucXVldWUuc2VuZChzZWxmLlRhc2soZnVuY3Rpb24sIHNl
bGYuX2lkX2NvdW50LCAqYXJncywgKiprd2FyZ3MpKQpAQCAtMzgwLDYgKzQxMyw5IEBAIGNsYXNz
IFRhc2tQb29sKG9iamVjdCk6CiAgICAgICAgICAgICAgICAgICAgIGJyZWFrCiAKICAgICBkZWYg
d2FpdChzZWxmKToKKyAgICAgICAgaWYgbm90IHNlbGYucXVldWU6CisgICAgICAgICAgICByZXR1
cm4KKwogICAgICAgICBmb3IgXyBpbiBzZWxmLndvcmtlcnM6CiAgICAgICAgICAgICBzZWxmLnF1
ZXVlLnNlbmQoTm9uZSkKIApAQCAtMzg3LDYgKzQyMywxNiBAQCBjbGFzcyBUYXNrUG9vbChvYmpl
Y3QpOgogICAgICAgICAgICAgc2VsZi5xdWV1ZS5yZWNlaXZlKCkoc2VsZikKIAogICAgIGRlZiBf
X2V4aXRfXyhzZWxmLCAqYXJncywgKiprd2FyZ3MpOgorICAgICAgICBpZiBub3Qgc2VsZi5xdWV1
ZToKKyAgICAgICAgICAgIFRhc2tQb29sLlByb2Nlc3Mud29ya2luZyA9IEZhbHNlCisgICAgICAg
ICAgICB0cnk6CisgICAgICAgICAgICAgICAgaWYgc2VsZi5fdGVhcmRvd25fYXJnc1swXToKKyAg
ICAgICAgICAgICAgICAgICAgc2VsZi5fdGVhcmRvd25fYXJnc1swXSgqc2VsZi5fdGVhcmRvd25f
YXJnc1sxXSwgKipzZWxmLl90ZWFyZG93bl9hcmdzWzJdKQorICAgICAgICAgICAgZmluYWxseToK
KyAgICAgICAgICAgICAgICBUYXNrUG9vbC5Qcm9jZXNzLnF1ZXVlID0gTm9uZQorICAgICAgICAg
ICAgICAgIFRhc2tQb29sLlByb2Nlc3MubmFtZSA9IE5vbmUKKyAgICAgICAgICAgIHJldHVybgor
CiAgICAgICAgIGZyb20gc2l4IGltcG9ydCByZXJhaXNlCiAgICAgICAgIHRyeToKICAgICAgICAg
ICAgIGluZmxpZ2h0ID0gc3lzLmV4Y19pbmZvKCkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvdGVzdHMvdGFza19wb29sX3VuaXR0ZXN0LnB5
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJr
aXRjb3JlcHkvdGVzdHMvdGFza19wb29sX3VuaXR0ZXN0LnB5CShyZXZpc2lvbiAyNzgzNzIpCisr
KyBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvd2Via2l0Y29yZXB5L3Rlc3Rz
L3Rhc2tfcG9vbF91bml0dGVzdC5weQkod29ya2luZyBjb3B5KQpAQCAtNjEsNyArNjEsNyBAQCBj
bGFzcyBUYXNrUG9vbFVuaXR0ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlCiAKICAgICBkZWYgdGVzdF9z
aW5nbGUoc2VsZik6CiAgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZShsZXZlbD1sb2dnaW5nLldB
Uk5JTkcpIGFzIGNhcHR1cmVkOgotICAgICAgICAgICAgd2l0aCBUYXNrUG9vbCh3b3JrZXJzPTEp
IGFzIHBvb2w6CisgICAgICAgICAgICB3aXRoIFRhc2tQb29sKHdvcmtlcnM9MSwgZm9yY2VfZm9y
az1UcnVlKSBhcyBwb29sOgogICAgICAgICAgICAgICAgIHBvb2wuZG8oYWN0aW9uLCAnYScpCiAg
ICAgICAgICAgICAgICAgcG9vbC5kbyhsb2csIGxvZ2dpbmcuV0FSTklORywgJzEnKQogICAgICAg
ICAgICAgICAgIHBvb2wud2FpdCgpCkBAIC02OSw2ICs2OSwxNiBAQCBjbGFzcyBUYXNrUG9vbFVu
aXR0ZXN0KHVuaXR0ZXN0LlRlc3RDYXNlCiAgICAgICAgIHNlbGYuYXNzZXJ0RXF1YWwoY2FwdHVy
ZWQuc3Rkb3V0LmdldHZhbHVlKCksICdhY3Rpb24oYSlcbicpCiAgICAgICAgIHNlbGYuYXNzZXJ0
RXF1YWwoY2FwdHVyZWQud2Via2l0Y29yZXB5LmxvZy5nZXR2YWx1ZSgpLCAnd29ya2VyLzAgMVxu
JykKIAorICAgIGRlZiB0ZXN0X3NpbmdsZV9ub19mb3JrKHNlbGYpOgorICAgICAgICB3aXRoIE91
dHB1dENhcHR1cmUobGV2ZWw9bG9nZ2luZy5XQVJOSU5HKSBhcyBjYXB0dXJlZDoKKyAgICAgICAg
ICAgIHdpdGggVGFza1Bvb2wod29ya2Vycz0xLCBmb3JjZV9mb3JrPUZhbHNlKSBhcyBwb29sOgor
ICAgICAgICAgICAgICAgIHBvb2wuZG8oYWN0aW9uLCAnYScpCisgICAgICAgICAgICAgICAgcG9v
bC5kbyhsb2csIGxvZ2dpbmcuV0FSTklORywgJzEnKQorICAgICAgICAgICAgICAgIHBvb2wud2Fp
dCgpCisKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYXB0dXJlZC5zdGRvdXQuZ2V0dmFsdWUo
KSwgJ2FjdGlvbihhKVxuJykKKyAgICAgICAgc2VsZi5hc3NlcnRFcXVhbChjYXB0dXJlZC53ZWJr
aXRjb3JlcHkubG9nLmdldHZhbHVlKCksICcxXG4nKQorCiAgICAgZGVmIHRlc3RfbXVsdGlwbGUo
c2VsZik6CiAgICAgICAgIHdpdGggT3V0cHV0Q2FwdHVyZShsZXZlbD1sb2dnaW5nLklORk8pIGFz
IGNhcHR1cmVkOgogICAgICAgICAgICAgd2l0aCBUYXNrUG9vbCh3b3JrZXJzPTQpIGFzIHBvb2w6
CkBAIC05OSw3ICsxMDksNyBAQCBjbGFzcyBUYXNrUG9vbFVuaXR0ZXN0KHVuaXR0ZXN0LlRlc3RD
YXNlCiAgICAgZGVmIHRlc3RfZXhjZXB0aW9uKHNlbGYpOgogICAgICAgICB3aXRoIE91dHB1dENh
cHR1cmUobGV2ZWw9bG9nZ2luZy5JTkZPKSBhcyBjYXB0dXJlZDoKICAgICAgICAgICAgIHdpdGgg
c2VsZi5hc3NlcnRSYWlzZXMoUnVudGltZUVycm9yKToKLSAgICAgICAgICAgICAgICB3aXRoIFRh
c2tQb29sKHdvcmtlcnM9MSkgYXMgcG9vbDoKKyAgICAgICAgICAgICAgICB3aXRoIFRhc2tQb29s
KHdvcmtlcnM9MSwgZm9yY2VfZm9yaz1UcnVlKSBhcyBwb29sOgogICAgICAgICAgICAgICAgICAg
ICBwb29sLmRvKGV4Y2VwdGlvbiwgJ1Rlc3RpbmcgZXhjZXB0aW9uJykKICAgICAgICAgICAgICAg
ICAgICAgcG9vbC53YWl0KCkKICAgICAgICAgc2VsZi5hc3NlcnRFcXVhbCgKQEAgLTEwNyw2ICsx
MTcsMTQgQEAgY2xhc3MgVGFza1Bvb2xVbml0dGVzdCh1bml0dGVzdC5UZXN0Q2FzZQogICAgICAg
ICAgICAgWyd3b3JrZXIvMCBzdGFydGluZycsICd3b3JrZXIvMCBzdG9wcGluZyddLAogICAgICAg
ICApCiAKKyAgICBkZWYgdGVzdF9leGNlcHRpb25fbm9fZm9yayhzZWxmKToKKyAgICAgICAgd2l0
aCBPdXRwdXRDYXB0dXJlKGxldmVsPWxvZ2dpbmcuSU5GTykgYXMgY2FwdHVyZWQ6CisgICAgICAg
ICAgICB3aXRoIHNlbGYuYXNzZXJ0UmFpc2VzKFJ1bnRpbWVFcnJvcik6CisgICAgICAgICAgICAg
ICAgd2l0aCBUYXNrUG9vbCh3b3JrZXJzPTEsIGZvcmNlX2Zvcms9RmFsc2UpIGFzIHBvb2w6Cisg
ICAgICAgICAgICAgICAgICAgIHBvb2wuZG8oZXhjZXB0aW9uLCAnVGVzdGluZyBleGNlcHRpb24n
KQorICAgICAgICAgICAgICAgICAgICBwb29sLndhaXQoKQorICAgICAgICBzZWxmLmFzc2VydEVx
dWFsKGNhcHR1cmVkLndlYmtpdGNvcmVweS5sb2cuZ2V0dmFsdWUoKSwgJycpCisKICAgICBkZWYg
dGVzdF9zZXR1cChzZWxmKToKICAgICAgICAgd2l0aCBPdXRwdXRDYXB0dXJlKCkgYXMgY2FwdHVy
ZWQ6CiAgICAgICAgICAgICB3aXRoIFRhc2tQb29sKHdvcmtlcnM9NCwgc2V0dXA9c2V0dXApIGFz
IHBvb2w6CkBAIC0xNTQsNSArMTcyLDUgQEAgY2xhc3MgVGFza1Bvb2xVbml0dGVzdCh1bml0dGVz
dC5UZXN0Q2FzZQogICAgIGRlZiB0ZXN0X2ludmFsaWRfc2h1dGRvd24oc2VsZik6CiAgICAgICAg
IHdpdGggT3V0cHV0Q2FwdHVyZSgpOgogICAgICAgICAgICAgd2l0aCBzZWxmLmFzc2VydFJhaXNl
cyhUYXNrUG9vbC5FeGNlcHRpb24pOgotICAgICAgICAgICAgICAgIHdpdGggVGFza1Bvb2wod29y
a2Vycz0xLCB0ZWFyZG93bj10ZWFyZG93biwgZ3JhY2VfcGVyaW9kPTEpIGFzIHBvb2w6CisgICAg
ICAgICAgICAgICAgd2l0aCBUYXNrUG9vbCh3b3JrZXJzPTEsIHRlYXJkb3duPXRlYXJkb3duLCBn
cmFjZV9wZXJpb2Q9MSwgZm9yY2VfZm9yaz1UcnVlKSBhcyBwb29sOgogICAgICAgICAgICAgICAg
ICAgICBwb29sLmRvKHdhaXQsIDIpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>