<?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>220468</bug_id>
          
          <creation_ts>2021-01-08 10:40:06 -0800</creation_ts>
          <short_desc>[webkitcorepy] Add standard mechanism for packaging pip packages</short_desc>
          <delta_ts>2021-05-03 13:55:11 -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>REOPENED</bug_status>
          <resolution></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>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1718338</commentid>
    <comment_count>0</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-01-08 10:40:06 -0800</bug_when>
    <thetext>All of our pip packages based on webkitcorepy share some key pieces in common. Most notably, we&apos;ve attempted to de-duplicate the version of a pip package from setup.py and the __init__.py of the package. This means that we attempt to import from a package before we&apos;ve actually installed it&apos;s dependencies, which can be a problem. The right solution to this is probably to edit the contents of setup.py to replace the imported version with a it&apos;s value before deploying the package, but that means having a script to do the package deployment.

In the mean time, we need to duplicate the version for our pip packages to make them easier to independently install.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718339</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-01-08 10:40:41 -0800</bug_when>
    <thetext>&lt;rdar://problem/72935720&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718346</commentid>
    <comment_count>2</comment_count>
      <attachid>417277</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-01-08 10:53:49 -0800</bug_when>
    <thetext>Created attachment 417277
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718359</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-01-08 11:34:41 -0800</bug_when>
    <thetext>Committed r271306: &lt;https://trac.webkit.org/changeset/271306&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 417277.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1718360</commentid>
    <comment_count>4</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-01-08 11:35:27 -0800</bug_when>
    <thetext>The change landed in this patch just works-around the problem, it doesn&apos;t resolve it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756312</commentid>
    <comment_count>5</comment_count>
      <attachid>427599</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-05-03 13:49:54 -0700</bug_when>
    <thetext>Created attachment 427599
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1756315</commentid>
    <comment_count>6</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2021-05-03 13:55:11 -0700</bug_when>
    <thetext>Still some work to do to make this compatible with Artifactory, but this lays out the mechanics I had in mind for standardizing our packaging mechanics</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>417277</attachid>
            <date>2021-01-08 10:53:49 -0800</date>
            <delta_ts>2021-05-03 13:49:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220468-20210108105348.patch</filename>
            <type>text/plain</type>
            <size>6725</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3MTMwNCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDIyIEBACisyMDIxLTAxLTA4ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBBZGQgc3RhbmRhcmQgbWVjaGFuaXNtIGZvciBw
YWNrYWdpbmcgcGlwIHBhY2thZ2VzICh3b3JrLWFyb3VuZCkKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMDQ2OAorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vNzI5MzU3MjA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGVtcG9yYXJ5IGNoYW5nZSB0byBtYWtlIHRoZXNlIHBhY2thZ2VzIGVhc2llciB0byBw
aXAgaW5zdGFsbC4KKworICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jl
c3VsdHNkYnB5L19faW5pdF9fLnB5OiBCdW1wIHZlcnNpb24uCisgICAgICAgICogU2NyaXB0cy9s
aWJyYXJpZXMvcmVzdWx0c2RicHkvc2V0dXAucHk6IFVzZSBzdHJpbmcgaW5zdGVhZCBvZiB2ZXJz
aW9uIG9iamVjdC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvc2V0
dXAucHk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93
ZWJraXRjb3JlcHkvX19pbml0X18ucHk6IEJ1bXAgdmVyc2lvbi4KKyAgICAgICAgKiBTY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRmbGFza3B5L3NldHVwLnB5OiBVc2Ugc3RyaW5nIGluc3RlYWQgb2Yg
dmVyc2lvbiBvYmplY3QuCisgICAgICAgICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tw
eS93ZWJraXRmbGFza3B5L19faW5pdF9fLnB5OiBCdW1wIHZlcnNpb24uCisgICAgICAgICogU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvc2V0dXAucHk6IFVzZSBzdHJpbmcgaW5zdGVhZCBv
ZiB2ZXJzaW9uIG9iamVjdC4KKyAgICAgICAgKiBTY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21w
eS93ZWJraXRzY21weS9fX2luaXRfXy5weTogQnVtcCB2ZXJzaW9uLgorCiAyMDIxLTAxLTA4ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSBpdCBzYWZlIHRv
IHJlLWVudGVyIEhhc2hNYXA6OmNsZWFyKCkKSW5kZXg6IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVz
L3Jlc3VsdHNkYnB5L3NldHVwLnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFy
aWVzL3Jlc3VsdHNkYnB5L3NldHVwLnB5CShyZXZpc2lvbiAyNzEzMDMpCisrKyBUb29scy9TY3Jp
cHRzL2xpYnJhcmllcy9yZXN1bHRzZGJweS9zZXR1cC5weQkod29ya2luZyBjb3B5KQpAQCAtMjAs
NyArMjAsNiBAQAogIyBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogIyBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCi1mcm9t
IHJlc3VsdHNkYnB5IGltcG9ydCB2ZXJzaW9uCiBmcm9tIHNldHVwdG9vbHMgaW1wb3J0IHNldHVw
CiAKIApAQCAtMzEsNyArMzAsNyBAQCBkZWYgcmVhZG1lKCk6CiAKIHNldHVwKAogICAgIG5hbWU9
J3Jlc3VsdHNkYnB5JywKLSAgICB2ZXJzaW9uPXN0cih2ZXJzaW9uKSwKKyAgICB2ZXJzaW9uPScx
LjEuMScsCiAgICAgZGVzY3JpcHRpb249J0xpYnJhcnkgZm9yIHZpc3VhbGl6aW5nLCBwcm9jZXNz
aW5nIGFuZCBzdG9yaW5nIHRlc3QgcmVzdWx0cy4nLAogICAgIGxvbmdfZGVzY3JpcHRpb249cmVh
ZG1lKCksCiAgICAgY2xhc3NpZmllcnM9WwpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMv
cmVzdWx0c2RicHkvcmVzdWx0c2RicHkvX19pbml0X18ucHkKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
U2NyaXB0cy9saWJyYXJpZXMvcmVzdWx0c2RicHkvcmVzdWx0c2RicHkvX19pbml0X18ucHkJKHJl
dmlzaW9uIDI3MTMwMykKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3Jlc3VsdHNkYnB5L3Jl
c3VsdHNkYnB5L19faW5pdF9fLnB5CSh3b3JraW5nIGNvcHkpCkBAIC00NCw2ICs0NCw2IEBAIGV4
Y2VwdCBJbXBvcnRFcnJvcjoKICAgICAgICAgIlBsZWFzZSBpbnN0YWxsIHdlYmtpdGNvcmVweSB3
aXRoIGBwaXAgaW5zdGFsbCB3ZWJraXRjb3JlcHkgLS1leHRyYS1pbmRleC11cmwgPHBhY2thZ2Ug
aW5kZXggVVJMPmAiCiAgICAgKQogCi12ZXJzaW9uID0gVmVyc2lvbigxLCAxLCAwKQordmVyc2lv
biA9IFZlcnNpb24oMSwgMSwgMSkKIAogbmFtZSA9ICdyZXN1bHRzZGJweScKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS9zZXR1cC5weQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvc2V0dXAucHkJKHJldmlzaW9uIDI3
MTMwMykKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS9zZXR1cC5weQko
d29ya2luZyBjb3B5KQpAQCAtMjAsNyArMjAsNiBAQAogIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUwog
IyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KIAotZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IHZlcnNpb24KIGZyb20gc2V0dXB0b29s
cyBpbXBvcnQgc2V0dXAKIAogCkBAIC0zMSw3ICszMCw3IEBAIGRlZiByZWFkbWUoKToKIAogc2V0
dXAoCiAgICAgbmFtZT0nd2Via2l0Y29yZXB5JywKLSAgICB2ZXJzaW9uPXN0cih2ZXJzaW9uKSwK
KyAgICB2ZXJzaW9uPScwLjQuMjYnLAogICAgIGRlc2NyaXB0aW9uPSdMaWJyYXJ5IGNvbnRhaW5p
bmcgdmFyaW91cyBQeXRob24gc3VwcG9ydCBjbGFzc2VzIGFuZCBmdW5jdGlvbnMuJywKICAgICBs
b25nX2Rlc2NyaXB0aW9uPXJlYWRtZSgpLAogICAgIGNsYXNzaWZpZXJzPVsKSW5kZXg6IFRvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18ucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtp
dGNvcmVweS9fX2luaXRfXy5weQkocmV2aXNpb24gMjcxMzAzKQorKysgVG9vbHMvU2NyaXB0cy9s
aWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9fX2luaXRfXy5weQkod29ya2luZyBj
b3B5KQpAQCAtMzUsNyArMzUsNyBAQCBmcm9tIHdlYmtpdGNvcmVweS50aW1lb3V0IGltcG9ydCBU
aW1lb3V0CiBmcm9tIHdlYmtpdGNvcmVweS5zdWJwcm9jZXNzX3V0aWxzIGltcG9ydCBUaW1lb3V0
RXhwaXJlZCwgQ29tcGxldGVkUHJvY2VzcywgcnVuCiBmcm9tIHdlYmtpdGNvcmVweS5vdXRwdXRf
Y2FwdHVyZSBpbXBvcnQgTG9nZ2VyQ2FwdHVyZSwgT3V0cHV0Q2FwdHVyZSwgT3V0cHV0RHVwbGlj
YXRlCiAKLXZlcnNpb24gPSBWZXJzaW9uKDAsIDQsIDI1KQordmVyc2lvbiA9IFZlcnNpb24oMCwg
NCwgMjYpCiAKIGZyb20gd2Via2l0Y29yZXB5LmF1dG9pbnN0YWxsIGltcG9ydCBQYWNrYWdlLCBB
dXRvSW5zdGFsbAogaWYgc3lzLnZlcnNpb25faW5mbyA+ICgzLCAwKToKSW5kZXg6IFRvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdGZsYXNrcHkvc2V0dXAucHkKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tweS9zZXR1cC5weQkocmV2aXNpb24gMjcx
MzAzKQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Zmxhc2tweS9zZXR1cC5weQko
d29ya2luZyBjb3B5KQpAQCAtMjAsNyArMjAsNiBAQAogIyBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQog
IyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgogCi1mcm9tIHdlYmtpdGZsYXNrcHkgaW1wb3J0IHZlcnNpb24KIGZyb20g
c2V0dXB0b29scyBpbXBvcnQgc2V0dXAKIAogCkBAIC0zMSw3ICszMCw3IEBAIGRlZiByZWFkbWUo
KToKIAogc2V0dXAoCiAgICAgbmFtZT0nd2Via2l0Zmxhc2tweScsCi0gICAgdmVyc2lvbj1zdHIo
dmVyc2lvbiksCisgICAgdmVyc2lvbj0nMC4xLjEnLAogICAgIGRlc2NyaXB0aW9uPSdMaWJyYXJ5
IGZvciB2aXN1YWxpemluZywgcHJvY2Vzc2luZyBhbmQgc3RvcmluZyB0ZXN0IHJlc3VsdHMuJywK
ICAgICBsb25nX2Rlc2NyaXB0aW9uPXJlYWRtZSgpLAogICAgIGNsYXNzaWZpZXJzPVsKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGZsYXNrcHkvd2Via2l0Zmxhc2tweS9fX2lu
aXRfXy5weQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRmbGFz
a3B5L3dlYmtpdGZsYXNrcHkvX19pbml0X18ucHkJKHJldmlzaW9uIDI3MTMwMykKKysrIFRvb2xz
L1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGZsYXNrcHkvd2Via2l0Zmxhc2tweS9fX2luaXRfXy5w
eQkod29ya2luZyBjb3B5KQpAQCAtNDMsNyArNDMsNyBAQCBleGNlcHQgSW1wb3J0RXJyb3I6CiAg
ICAgICAgICJQbGVhc2UgaW5zdGFsbCB3ZWJraXRjb3JlcHkgd2l0aCBgcGlwIGluc3RhbGwgd2Vi
a2l0Y29yZXB5IC0tZXh0cmEtaW5kZXgtdXJsIDxwYWNrYWdlIGluZGV4IFVSTD5gIgogICAgICkK
IAotdmVyc2lvbiA9IFZlcnNpb24oMCwgMSwgMCkKK3ZlcnNpb24gPSBWZXJzaW9uKDAsIDEsIDEp
CiAKIEF1dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ2NsaWNrJyksIFZlcnNpb24oNywgMSwg
MikpCiBBdXRvSW5zdGFsbC5yZWdpc3RlcihQYWNrYWdlKCdmbGFzaycpLCBWZXJzaW9uKDEsIDEs
IDIpKQpJbmRleDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvc2V0dXAucHkK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0c2NtcHkvc2V0dXAu
cHkJKHJldmlzaW9uIDI3MTMwMykKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNj
bXB5L3NldHVwLnB5CSh3b3JraW5nIGNvcHkpCkBAIC0yMCw3ICsyMCw2IEBACiAjIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTCiAjIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogCi1mcm9tIHdlYmtpdHNjbXB5IGltcG9ydCB2ZXJzaW9uCiBm
cm9tIHNldHVwdG9vbHMgaW1wb3J0IHNldHVwCiAKIApAQCAtMzEsNyArMzAsNyBAQCBkZWYgcmVh
ZG1lKCk6CiAKIHNldHVwKAogICAgIG5hbWU9J3dlYmtpdHNjbXB5JywKLSAgICB2ZXJzaW9uPXN0
cih2ZXJzaW9uKSwKKyAgICB2ZXJzaW9uPScwLjcuNCcsCiAgICAgZGVzY3JpcHRpb249J0xpYnJh
cnkgZGVzaWduZWQgdG8gaW50ZXJhY3Qgd2l0aCBnaXQgYW5kIHN2biByZXBvc2l0b3JpZXMuJywK
ICAgICBsb25nX2Rlc2NyaXB0aW9uPXJlYWRtZSgpLAogICAgIGNsYXNzaWZpZXJzPVsKSW5kZXg6
IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dlYmtpdHNjbXB5L19faW5pdF9f
LnB5Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdHNjbXB5L3dl
YmtpdHNjbXB5L19faW5pdF9fLnB5CShyZXZpc2lvbiAyNzEzMDMpCisrKyBUb29scy9TY3JpcHRz
L2xpYnJhcmllcy93ZWJraXRzY21weS93ZWJraXRzY21weS9fX2luaXRfXy5weQkod29ya2luZyBj
b3B5KQpAQCAtNDYsNyArNDYsNyBAQCBleGNlcHQgSW1wb3J0RXJyb3I6CiAgICAgICAgICJQbGVh
c2UgaW5zdGFsbCB3ZWJraXRjb3JlcHkgd2l0aCBgcGlwIGluc3RhbGwgd2Via2l0Y29yZXB5IC0t
ZXh0cmEtaW5kZXgtdXJsIDxwYWNrYWdlIGluZGV4IFVSTD5gIgogICAgICkKIAotdmVyc2lvbiA9
IFZlcnNpb24oMCwgNywgMykKK3ZlcnNpb24gPSBWZXJzaW9uKDAsIDcsIDQpCiAKIEF1dG9JbnN0
YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ2Zhc3RlbmVycycsIFZlcnNpb24oMCwgMTUsIDApKSkKIEF1
dG9JbnN0YWxsLnJlZ2lzdGVyKFBhY2thZ2UoJ21vbm90b25pYycsIFZlcnNpb24oMSwgNSkpKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427599</attachid>
            <date>2021-05-03 13:49:54 -0700</date>
            <delta_ts>2021-05-03 13:49:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-220468-20210503134953.patch</filename>
            <type>text/plain</type>
            <size>17305</size>
            <attacher name="Jonathan Bedard">jbedard</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI3NjkyMSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI0IEBACisyMDIxLTA1LTAzICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNv
bT4KKworICAgICAgICBbd2Via2l0Y29yZXB5XSBBZGQgc3RhbmRhcmQgbWVjaGFuaXNtIGZvciBw
YWNrYWdpbmcgcGlwIHBhY2thZ2VzIChQYXJ0IDEpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjA0NjgKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzcy
OTM1NzIwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L21vZHVsZS11dGlsczogQWRkIHNjcmlw
dCB0byBwYWNrYWdlIGFuZCBpbnN0YWxsIFB5dGhvbiBtb2R1bGUuCisgICAgICAgICogU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L21vZHVsZS5qc29uOiBBZGQgbW9kdWxlIGluZm9ybWF0
aW9uLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS9zZXR1cC5weTog
QnVtcCB2ZXJzaW9uLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93
ZWJraXRjb3JlcHkvX19pbml0X18ucHk6IERpdHRvLgorICAgICAgICAqIFNjcmlwdHMvbGlicmFy
aWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvbW9kdWxlLnB5OiBBZGRlZC4KKyAgICAgICAg
KE1vZHVsZSk6IFJlcHJlc2VudGF0aW9uIG9mIFB5dGhvbiBtb2R1bGUuCisgICAgICAgIChNb2R1
bGUuRXhjZXB0aW9uKToKKyAgICAgICAgKE1vZHVsZS5lcnJvcik6IFJhaXNlIEV4Y2VwdGlvbi4K
KyAgICAgICAgKE1vZHVsZS5fX2luaXRfXyk6IEZpbmQgbW9kdWxlIGFuZCBwb3B1bGF0ZSBtZXRh
ZGF0YS4KKyAgICAgICAgKE1vZHVsZS5zZXR1cF9weSk6IEdlbmVyYXRlZCBzZXR1cC5weSBjb250
ZW50cy4KKyAgICAgICAgKE1vZHVsZS5wYWNrYWdlKTogUGFja2FnZSBtb2R1bGUuCisgICAgICAg
IChNb2R1bGUuaW5zdGFsbCk6IEluc3RhbGwgbW9kdWxlIHRvIGN1cnJlbnQgc3lzdGVtLgorCiAy
MDIxLTA1LTAzICBUaW0gTmd1eWVuICA8bnRpbUBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGNv
bW1pdHRlciBzdGF0dXMgZm9yICJUaW0gTmd1eWVuIiBpbiBjb250cmlidXRvcnMuanNvbgpJbmRl
eDogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L21vZHVsZS11dGlscwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvbW9kdWxlLXV0
aWxzCShub25leGlzdGVudCkKKysrIFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVw
eS9tb2R1bGUtdXRpbHMJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxNDUgQEAKKyMhL3Vzci9i
aW4vZW52IHB5dGhvbjMKKworIyBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6Cisj
IDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisj
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OCisjIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitp
bXBvcnQgYXJncGFyc2UKK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKwor
ZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IGFyZ3VtZW50cywgTW9kdWxlCisKKworY2xhc3MgQ29t
bWFuZChvYmplY3QpOgorICAgIG5hbWUgPSBOb25lCisgICAgaGVscCA9IE5vbmUKKworICAgIEBj
bGFzc21ldGhvZAorICAgIGRlZiBwYXJzZXIoY2xzLCBwYXJzZXIpOgorICAgICAgICBwYXJzZXIu
YWRkX2FyZ3VtZW50KAorICAgICAgICAgICAgJ21vZHVsZScsIG5hcmdzPTEsCisgICAgICAgICAg
ICB0eXBlPXN0ciwgZGVmYXVsdD1Ob25lLAorICAgICAgICAgICAgaGVscD0nUGF0aCB0byBtb2R1
bGUgdG8gYmUgbWFuaXB1bGF0ZWQnLAorICAgICAgICApCisgICAgICAgIGFyZ3VtZW50cy5Mb2dn
aW5nR3JvdXAocGFyc2VyKQorCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIG1vZHVsZShjbHMs
IGFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcmV0dXJuIE1vZHVs
ZShhcmdzLm1vZHVsZVswXSkKKyAgICAgICAgZXhjZXB0IE9TRXJyb3IgYXMgZToKKyAgICAgICAg
ICAgIHN5cy5zdGRlcnIud3JpdGUoJ0ZhaWxlZCB0byByZXNvbHZlIG1vZHVsZVxuICAgIHt9XG4n
LmZvcm1hdChlKSkKKyAgICAgICAgICAgIHJldHVybiBOb25lCisKKyAgICBAY2xhc3NtZXRob2QK
KyAgICBkZWYgbWFpbihjbHMsIGFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgc3lzLnN0ZGVyci53
cml0ZSgnTm8gY29tbWFuZCBzcGVjaWZpZWRcbicpCisgICAgICAgIHJldHVybiAtMQorCisKK2Ns
YXNzIEluZm8oQ29tbWFuZCk6CisgICAgbmFtZSA9ICdpbmZvJworICAgIGhlbHAgPSAnUHJpbnQg
aW5mb3JtYXRpb24gZm9yIG1vZHVsZScKKworICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBtYWlu
KGNscywgYXJncywgKiprd2FyZ3MpOgorICAgICAgICBtb2R1bGUgPSBjbHMubW9kdWxlKGFyZ3Ms
ICoqa3dhcmdzKQorICAgICAgICBpZiBub3QgbW9kdWxlOgorICAgICAgICAgICAgcmV0dXJuIC0x
CisgICAgICAgIHByaW50KCdOYW1lOiAgICAgICAgICB7fScuZm9ybWF0KG1vZHVsZS5uYW1lKSkK
KyAgICAgICAgcHJpbnQoJ1ZlcnNpb246ICAgICAgIHt9Jy5mb3JtYXQobW9kdWxlLnZlcnNpb24p
KQorICAgICAgICBwcmludCgnRGVzY3JpcHRpb246ICAge30nLmZvcm1hdChtb2R1bGUuZGVzY3Jp
cHRpb24pKQorICAgICAgICBwcmludCgnQXV0aG9yOiAgICAgICAge30gPHt9PicuZm9ybWF0KG1v
ZHVsZS5hdXRob3IsIG1vZHVsZS5hdXRob3JfZW1haWwpKQorICAgICAgICBwcmludCgnTGljZW5z
ZTogICAgICAge30nLmZvcm1hdChtb2R1bGUubGljZW5zZSkpCisgICAgICAgIHJldHVybiAwCisK
KworY2xhc3MgUGFja2FnZShDb21tYW5kKToKKyAgICBuYW1lID0gJ3BhY2thZ2UnCisgICAgaGVs
cCA9ICdQYWNrYWdlIG1vZHVsZSB3aXRoIGdlbmVyYXRlZCBzZXR1cC5weScKKworICAgIEBjbGFz
c21ldGhvZAorICAgIGRlZiBwYXJzZXIoY2xzLCBwYXJzZXIpOgorICAgICAgICBDb21tYW5kLnBh
cnNlcihwYXJzZXIpCisgICAgICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCisgICAgICAgICAgICAn
LS1vdXRwdXQnLCAnLW8nLAorICAgICAgICAgICAgZGVzdD0nb3V0cHV0JywgZGVmYXVsdD0nYnVp
bGQnLAorICAgICAgICAgICAgaGVscD0nU2V0IHRoZSBwYXRoIHRvIG91dHB1dCB0aGUgJywKKyAg
ICAgICAgICAgIGFjdGlvbj0nc3RvcmUnLAorICAgICAgICApCisKKyAgICBAY2xhc3NtZXRob2QK
KyAgICBkZWYgbWFpbihjbHMsIGFyZ3MsICoqa3dhcmdzKToKKyAgICAgICAgbW9kdWxlID0gY2xz
Lm1vZHVsZShhcmdzLCAqKmt3YXJncykKKyAgICAgICAgaWYgbm90IG1vZHVsZToKKyAgICAgICAg
ICAgIHJldHVybiAtMQorCisgICAgICAgIHRyeToKKyAgICAgICAgICAgIHJlc3VsdCA9IG1vZHVs
ZS5wYWNrYWdlKHBhdGg9YXJncy5vdXRwdXQpCisgICAgICAgICAgICBwcmludCgnUGFja2FnZWQg
e30gYXQge30nLmZvcm1hdChtb2R1bGUubmFtZSwgcmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVy
biAwCisgICAgICAgIGV4Y2VwdCAoT1NFcnJvciwgTW9kdWxlLkV4Y2VwdGlvbikgYXMgZToKKyAg
ICAgICAgICAgIHN5cy5zdGRlcnIud3JpdGUoJ0ZhaWxlZCB0byBwYWNrYWdlIHt9XG4gICAge31c
bicuZm9ybWF0KG1vZHVsZS5uYW1lLCBlKSkKKyAgICAgICAgICAgIHJldHVybiAxCisKKworY2xh
c3MgSW5zdGFsbChDb21tYW5kKToKKyAgICBuYW1lID0gJ2luc3RhbGwnCisgICAgaGVscCA9ICdJ
bnN0YWxsIG1vZHVsZSB3aXRoIGdlbmVyYXRlZCBzZXR1cC5weScKKworICAgIEBjbGFzc21ldGhv
ZAorICAgIGRlZiBtYWluKGNscywgYXJncywgKiprd2FyZ3MpOgorICAgICAgICBtb2R1bGUgPSBj
bHMubW9kdWxlKGFyZ3MsICoqa3dhcmdzKQorICAgICAgICBpZiBub3QgbW9kdWxlOgorICAgICAg
ICAgICAgcmV0dXJuIC0xCisKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbW9kdWxlLmluc3Rh
bGwoKQorICAgICAgICAgICAgcHJpbnQoJ0luc3RhbGxlZCB7fSEnLmZvcm1hdChtb2R1bGUubmFt
ZSkpCisgICAgICAgICAgICByZXR1cm4gMAorICAgICAgICBleGNlcHQgKE9TRXJyb3IsIE1vZHVs
ZS5FeGNlcHRpb24pIGFzIGU6CisgICAgICAgICAgICBzeXMuc3RkZXJyLndyaXRlKCdGYWlsZWQg
dG8gaW5zdGFsbCB7fVxuICAgIHt9XG4nLmZvcm1hdChtb2R1bGUubmFtZSwgZSkpCisgICAgICAg
ICAgICByZXR1cm4gMQorCisKK2RlZiBtYWluKGFyZ3M9Tm9uZSk6CisgICAgbG9nZ2luZy5iYXNp
Y0NvbmZpZyhsZXZlbD1sb2dnaW5nLldBUk5JTkcpCisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJn
dW1lbnRQYXJzZXIoCisgICAgICAgIGRlc2NyaXB0aW9uPSdUb29sIHN1cHBvcnRpbmcgdGhlIHBh
Y2thZ2luZyBhbmQgdXBsb2FkaW5nIG9mIHBpcCBtb2R1bGVzIGJhc2VkIG9uIHdlYmtpdGNvcmVw
eScsCisgICAgKQorICAgIGFyZ3VtZW50cy5Mb2dnaW5nR3JvdXAocGFyc2VyLCBkZWZhdWx0PWxv
Z2dpbmcuV0FSTklORykKKworICAgIHN1YnBhcnNlcnMgPSBwYXJzZXIuYWRkX3N1YnBhcnNlcnMo
aGVscD0nc3ViLWNvbW1hbmQgaGVscCcpCisgICAgZm9yIHByb2dyYW0gaW4gW1BhY2thZ2UsIElu
Zm8sIEluc3RhbGxdOgorICAgICAgICBzdWJwYXJzZXIgPSBzdWJwYXJzZXJzLmFkZF9wYXJzZXIo
cHJvZ3JhbS5uYW1lLCBoZWxwPXByb2dyYW0uaGVscCkKKyAgICAgICAgc3VicGFyc2VyLnNldF9k
ZWZhdWx0cyhtYWluPXByb2dyYW0ubWFpbikKKyAgICAgICAgcHJvZ3JhbS5wYXJzZXIoc3VicGFy
c2VyKQorCisgICAgcGFyc2VkID0gcGFyc2VyLnBhcnNlX2FyZ3MoYXJncz1hcmdzKQorICAgIGlm
IG5vdCBnZXRhdHRyKHBhcnNlZCwgJ21haW4nLCBOb25lKToKKyAgICAgICAgcGFyc2VyLnByaW50
X2hlbHAoKQorICAgICAgICByZXR1cm4gLTEKKyAgICByZXR1cm4gcGFyc2VkLm1haW4oYXJncz1w
YXJzZWQpCisKK2lmICdfX21haW5fXycgPT0gX19uYW1lX186CisgICAgc3lzLmV4aXQobWFpbigp
KQoKUHJvcGVydHkgY2hhbmdlcyBvbjogVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29y
ZXB5L21vZHVsZS11dGlscwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCkFkZGVkOiBzdm46ZXhlY3V0YWJsZQojIyAtMCww
ICsxICMjCisqClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFRvb2xzL1Nj
cmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS9tb2R1bGUuanNvbgo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvbW9kdWxlLmpzb24JKG5vbmV4aXN0
ZW50KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L21vZHVsZS5qc29u
CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjMgQEAKK3sKKyAgICAiZGVzY3JpcHRpb24iOiAi
TGlicmFyeSBkZXNpZ25lZCB0byBpbnRlcmFjdCB3aXRoIGdpdCBhbmQgc3ZuIHJlcG9zaXRvcmll
cy4iLAorICAgICJjbGFzc2lmaWVycyI6IFsKKyAgICAgICAgIkRldmVsb3BtZW50IFN0YXR1cyA6
OiA1IC0gUHJvZHVjdGlvbi9TdGFibGUiLAorICAgICAgICAiSW50ZW5kZWQgQXVkaWVuY2UgOjog
RGV2ZWxvcGVycyIsCisgICAgICAgICJMaWNlbnNlIDo6IE9TSSBBcHByb3ZlZCA6OiBCU0QgTGlj
ZW5zZSIsCisgICAgICAgICJPcGVyYXRpbmcgU3lzdGVtIDo6IE1hY09TIiwKKyAgICAgICAgIk5h
dHVyYWwgTGFuZ3VhZ2UgOjogRW5nbGlzaCIsCisgICAgICAgICJQcm9ncmFtbWluZyBMYW5ndWFn
ZSA6OiBQeXRob24gOjogMyIsCisgICAgICAgICJUb3BpYyA6OiBTb2Z0d2FyZSBEZXZlbG9wbWVu
dCA6OiBMaWJyYXJpZXMgOjogUHl0aG9uIE1vZHVsZXMiCisgICAgXSwKKyAgICAia2V5d29yZHMi
OiAicHl0aG9uIHVuaWNvZGUiLAorICAgICJ1cmwiOiAiaHR0cHM6Ly9zdm4ud2Via2l0Lm9yZy9y
ZXBvc2l0b3J5L3dlYmtpdC90cnVuay9Ub29scy9TY3JpcHRzL2xpYnJhcmllcy93ZWJraXRzY21w
eSIsCisgICAgImF1dGhvciI6ICJKb25hdGhhbiBCZWRhcmQiLAorICAgICJhdXRob3JfZW1haWwi
OiAiamJlZGFyZEBhcHBsZS5jb20iLAorICAgICJsaWNlbnNlIjogIk1vZGlmaWVkIEJTRCIsCisg
ICAgInNjcmlwdHMiOiBbIm1vZHVsZS11dGlscyJdLAorICAgICJpbnN0YWxsX3JlcXVpcmVzIjog
WworICAgICAgICAibW9jayIsCisgICAgICAgICJyZXF1ZXN0cyIsCisgICAgICAgICJzaXgiCisg
ICAgXQorfQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IFRvb2xzL1NjcmlwdHMv
bGlicmFyaWVzL3dlYmtpdGNvcmVweS9zZXR1cC5weQo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3Jp
cHRzL2xpYnJhcmllcy93ZWJraXRjb3JlcHkvc2V0dXAucHkJKHJldmlzaW9uIDI3NjkxNSkKKysr
IFRvb2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS9zZXR1cC5weQkod29ya2luZyBj
b3B5KQpAQCAtMzAsNyArMzAsNyBAQCBkZWYgcmVhZG1lKCk6CiAKIHNldHVwKAogICAgIG5hbWU9
J3dlYmtpdGNvcmVweScsCi0gICAgdmVyc2lvbj0nMC41LjEyJywKKyAgICB2ZXJzaW9uPScwLjYu
MCcsCiAgICAgZGVzY3JpcHRpb249J0xpYnJhcnkgY29udGFpbmluZyB2YXJpb3VzIFB5dGhvbiBz
dXBwb3J0IGNsYXNzZXMgYW5kIGZ1bmN0aW9ucy4nLAogICAgIGxvbmdfZGVzY3JpcHRpb249cmVh
ZG1lKCksCiAgICAgY2xhc3NpZmllcnM9WwpAQCAtNTksNSArNTksNiBAQCBzZXR1cCgKICAgICAg
ICAgJ3NpeCcsCiAgICAgXSwKICAgICBpbmNsdWRlX3BhY2thZ2VfZGF0YT1UcnVlLAorICAgIHNj
cmlwdHM9Wydtb2R1bGUtdXRpbHMnXSwKICAgICB6aXBfc2FmZT1GYWxzZSwKICkKSW5kZXg6IFRv
b2xzL1NjcmlwdHMvbGlicmFyaWVzL3dlYmtpdGNvcmVweS93ZWJraXRjb3JlcHkvX19pbml0X18u
cHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dl
YmtpdGNvcmVweS9fX2luaXRfXy5weQkocmV2aXNpb24gMjc2OTE1KQorKysgVG9vbHMvU2NyaXB0
cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9fX2luaXRfXy5weQkod29ya2lu
ZyBjb3B5KQpAQCAtMzYsOCArMzYsOSBAQCBmcm9tIHdlYmtpdGNvcmVweS5zdWJwcm9jZXNzX3V0
aWxzIGltcG9yCiBmcm9tIHdlYmtpdGNvcmVweS5vdXRwdXRfY2FwdHVyZSBpbXBvcnQgTG9nZ2Vy
Q2FwdHVyZSwgT3V0cHV0Q2FwdHVyZSwgT3V0cHV0RHVwbGljYXRlCiBmcm9tIHdlYmtpdGNvcmVw
eS50YXNrX3Bvb2wgaW1wb3J0IFRhc2tQb29sCiBmcm9tIHdlYmtpdGNvcmVweS5jcmVkZW50aWFs
cyBpbXBvcnQgY3JlZGVudGlhbHMKK2Zyb20gd2Via2l0Y29yZXB5Lm1vZHVsZSBpbXBvcnQgTW9k
dWxlCiAKLXZlcnNpb24gPSBWZXJzaW9uKDAsIDUsIDEyKQordmVyc2lvbiA9IFZlcnNpb24oMCwg
NiwgMCkKIAogZnJvbSB3ZWJraXRjb3JlcHkuYXV0b2luc3RhbGwgaW1wb3J0IFBhY2thZ2UsIEF1
dG9JbnN0YWxsCiBpZiBzeXMudmVyc2lvbl9pbmZvID4gKDMsIDApOgpJbmRleDogVG9vbHMvU2Ny
aXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVweS9tb2R1bGUucHkKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Via2l0Y29yZXB5L3dlYmtpdGNvcmVw
eS9tb2R1bGUucHkJKG5vbmV4aXN0ZW50KQorKysgVG9vbHMvU2NyaXB0cy9saWJyYXJpZXMvd2Vi
a2l0Y29yZXB5L3dlYmtpdGNvcmVweS9tb2R1bGUucHkJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwxOTEgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMKKyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAor
IyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworIyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorIyBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAorIyAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworIyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGpz
b24KK2ltcG9ydCBsb2dnaW5nCitpbXBvcnQgb3MKK2ltcG9ydCBzaHV0aWwKK2ltcG9ydCBzeXMK
KworZnJvbSB3ZWJraXRjb3JlcHkgaW1wb3J0IGxvZywgcnVuCisKKworY2xhc3MgTW9kdWxlKG9i
amVjdCk6CisgICAgY2xhc3MgRXhjZXB0aW9uKE9TRXJyb3IpOgorICAgICAgICBwYXNzCisKKyAg
ICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZXJyb3IoY2xzLCBzdHJpbmcpOgorICAgICAgICBkZWYg
Y2FsbGJhY2soKToKKyAgICAgICAgICAgIHJhaXNlIGNscy5FeGNlcHRpb24oc3RyaW5nKQorICAg
ICAgICByZXR1cm4gY2FsbGJhY2sKKworICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwYXRoKToKKyAg
ICAgICAgc2VsZi5jb250YWluZXIgPSBOb25lCisKKyAgICAgICAgcGF0aCA9IG9zLnBhdGguYWJz
cGF0aChwYXRoKQorICAgICAgICBmb3IgY2FuZGlkYXRlIGluIFtwYXRoLCBvcy5wYXRoLmpvaW4o
cGF0aCwgb3MucGF0aC5iYXNlbmFtZShwYXRoKSldOgorICAgICAgICAgICAgaWYgbm90IG9zLnBh
dGguaXNkaXIoY2FuZGlkYXRlKToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAg
ICAgaWYgbm90IG9zLnBhdGguaXNmaWxlKG9zLnBhdGguam9pbihjYW5kaWRhdGUsICdfX2luaXRf
Xy5weScpKToKKyAgICAgICAgICAgICAgICBjb250aW51ZQorICAgICAgICAgICAgcGF0aCA9IGNh
bmRpZGF0ZQorICAgICAgICAgICAgc2VsZi5jb250YWluZXIgPSBvcy5wYXRoLmRpcm5hbWUoY2Fu
ZGlkYXRlKQorICAgICAgICAgICAgYnJlYWsKKworICAgICAgICBpZiBub3Qgc2VsZi5jb250YWlu
ZXI6CisgICAgICAgICAgICByYWlzZSBzZWxmLkV4Y2VwdGlvbigiJ3t9JyBpcyBub3QgYSBtb2R1
bGUiLmZvcm1hdChwYXRoKSkKKyAgICAgICAgaWYgc2VsZi5jb250YWluZXIgbm90IGluIHN5cy5w
YXRoOgorICAgICAgICAgICAgc3lzLnBhdGguYXBwZW5kKHNlbGYuY29udGFpbmVyKQorCisgICAg
ICAgIG5hbWUgPSBvcy5wYXRoLmJhc2VuYW1lKHBhdGgpCisgICAgICAgIHNlbGYubW9kdWxlID0g
X19pbXBvcnRfXyhuYW1lKQorCisgICAgICAgICMgbW9kdWxlLmpzb24gaXMgYSBqc29uIHJlcHJl
c2VudGF0aW9uIG9mIHNldHVwLnB5LCBhbGxvd2luZyB1cyB0byBhdXRvbWF0aWNhbGx5CisgICAg
ICAgICMgZ2VuZXJhdGUgcGFydHMgb2Ygc2V0dXAucHkKKyAgICAgICAgd2l0aCBvcGVuKG9zLnBh
dGguam9pbihzZWxmLmNvbnRhaW5lciwgJ21vZHVsZS5qc29uJykpIGFzIGZpbGU6CisgICAgICAg
ICAgICBtZXRhZGF0YSA9IGpzb24ubG9hZChmaWxlKQorCisgICAgICAgIHNlbGYubmFtZSA9IG1l
dGFkYXRhLmdldCgnbmFtZScsIG5hbWUpCisgICAgICAgIHNlbGYudmVyc2lvbiA9IG1ldGFkYXRh
LmdldCgndmVyc2lvbicsIHNlbGYubW9kdWxlLnZlcnNpb24pCisKKyAgICAgICAgIyBNYW5kYXRv
cnkga2V5cworICAgICAgICBmb3Iga2V5IGluIFsnZGVzY3JpcHRpb24nLCAndXJsJywgJ2F1dGhv
cicsICdhdXRob3JfZW1haWwnLCAnbGljZW5zZSddOgorICAgICAgICAgICAgdmFsdWUgPSBtZXRh
ZGF0YS5nZXQoa2V5KQorICAgICAgICAgICAgaWYgbm90IHZhbHVlOgorICAgICAgICAgICAgICAg
IHJhaXNlIHNlbGYuRXhjZXB0aW9uKCdObyBwYWNrYWdlIHt9IGZvdW5kJy5mb3JtYXQoa2V5KSkK
KyAgICAgICAgICAgIHNldGF0dHIoc2VsZiwga2V5LCB2YWx1ZSkKKworICAgICAgICAjIE9wdGlv
bmFsIGtleXMKKyAgICAgICAgZm9yIGtleSBpbiBbJ2NsYXNzaWZpZXJzJywgJ2tleXdvcmRzJywg
J3NjcmlwdHMnLCAncGFja2FnZXMnLCAnaW5zdGFsbF9yZXF1aXJlcyddOgorICAgICAgICAgICAg
c2V0YXR0cihzZWxmLCBrZXksIG1ldGFkYXRhLmdldChrZXkpKQorCisgICAgICAgIHNlbGYucmVh
ZG1lID0gbWV0YWRhdGEuZ2V0KCdyZWFkbWUnLCAnUkVBRE1FLm1kJykKKyAgICAgICAgaWYgbm90
IG9zLnBhdGguaXNmaWxlKG9zLnBhdGguam9pbihzZWxmLmNvbnRhaW5lciwgc2VsZi5yZWFkbWUp
KToKKyAgICAgICAgICAgIHJhaXNlIHNlbGYuRXhjZXB0aW9uKCdGYWlsZWQgdG8gZmluZCB7fScu
Zm9ybWF0KHNlbGYucmVhZG1lKSkKKworICAgICAgICBpZiBub3Qgc2VsZi5wYWNrYWdlczoKKyAg
ICAgICAgICAgIHNlbGYucGFja2FnZXMgPSBbXQorICAgICAgICAgICAgZm9yIGRpcmVjdG9yeSwg
XywgXyBpbiBvcy53YWxrKG9zLnBhdGguam9pbihzZWxmLmNvbnRhaW5lciwgc2VsZi5uYW1lKSk6
CisgICAgICAgICAgICAgICAgcGFja2FnZSA9IGRpcmVjdG9yeVtsZW4oc2VsZi5jb250YWluZXIp
ICsgMTpdLnJlcGxhY2UoJy8nLCAnLicpCisgICAgICAgICAgICAgICAgaWYgcGFja2FnZS5zcGxp
dCgnLicpWy0xXSA9PSAnX19weWNhY2hlX18nOgorICAgICAgICAgICAgICAgICAgICBjb250aW51
ZQorICAgICAgICAgICAgICAgIHNlbGYucGFja2FnZXMuYXBwZW5kKHBhY2thZ2UpCisKKyAgICBA
cHJvcGVydHkKKyAgICBkZWYgc2V0dXBfcHkoc2VsZik6CisgICAgICAgIHJldHVybiAnJycjIEF1
dG8tZ2VuZXJhdGVkIHNldHVwLnB5IGZvciB7bmFtZX0KK2Zyb20gc2V0dXB0b29scyBpbXBvcnQg
c2V0dXAKKworZGVmIHJlYWRtZSgpOgorICAgIHdpdGggb3Blbigne3JlYWRtZX0nKSBhcyBmOgor
ICAgICAgICByZXR1cm4gZi5yZWFkKCkKKworCitzZXR1cCgKKyAgICBuYW1lPSd7bmFtZX0nLAor
ICAgIHZlcnNpb249J3t2ZXJzaW9ufScsCisgICAgZGVzY3JpcHRpb249J3tkZXNjcmlwdGlvbn0n
LAorICAgIGxvbmdfZGVzY3JpcHRpb249cmVhZG1lKCkse2NsYXNzaWZpZXJzfXtrZXl3b3Jkc30K
KyAgICB1cmw9J3t1cmx9JywKKyAgICBhdXRob3I9J3thdXRob3J9JywKKyAgICBhdXRob3JfZW1h
aWw9J3thdXRob3JfZW1haWx9JywKKyAgICBsaWNlbnNlPSd7bGljZW5zZX0nLHtzY3JpcHRzfQor
ICAgIHBhY2thZ2VzPVsKKyAgICAgICAge3BhY2thZ2VzfSwKKyAgICBdLAorICAgIHtpbnN0YWxs
X3JlcXVpcmVzfWluY2x1ZGVfcGFja2FnZV9kYXRhPVRydWUsCisgICAgemlwX3NhZmU9RmFsc2Us
CispCisnJycuZm9ybWF0KAorICAgICAgICAgICAgbmFtZT1zZWxmLm5hbWUsCisgICAgICAgICAg
ICB2ZXJzaW9uPXNlbGYudmVyc2lvbiwKKyAgICAgICAgICAgIGRlc2NyaXB0aW9uPXNlbGYuZGVz
Y3JpcHRpb24sCisgICAgICAgICAgICByZWFkbWU9c2VsZi5yZWFkbWUsCisgICAgICAgICAgICBj
bGFzc2lmaWVycz0iXG4gICAgY2xhc3NpZmllcnM9W1xuICAgICAgICB7fVxuICAgIF0sIi5mb3Jt
YXQoCisgICAgICAgICAgICAgICAgJyxcbiAgICAgICAgJy5qb2luKCIne30nIi5mb3JtYXQoY2xh
c3NpZmllcikgZm9yIGNsYXNzaWZpZXIgaW4gc2VsZi5jbGFzc2lmaWVycyksCisgICAgICAgICAg
ICApIGlmIHNlbGYuY2xhc3NpZmllcnMgZWxzZSAnJywKKyAgICAgICAgICAgIGtleXdvcmRzPSJc
biAgICBrZXl3b3Jkcz0ne30nLCIuZm9ybWF0KHNlbGYua2V5d29yZHMpIGlmIHNlbGYua2V5d29y
ZHMgZWxzZSAnJywKKyAgICAgICAgICAgIHVybD1zZWxmLnVybCwKKyAgICAgICAgICAgIGF1dGhv
cj1zZWxmLmF1dGhvciwKKyAgICAgICAgICAgIGF1dGhvcl9lbWFpbD1zZWxmLmF1dGhvcl9lbWFp
bCwKKyAgICAgICAgICAgIGxpY2Vuc2U9c2VsZi5saWNlbnNlLAorICAgICAgICAgICAgc2NyaXB0
cz0nXG4gICAgc2NyaXB0cz1be31dLCcuZm9ybWF0KAorICAgICAgICAgICAgICAgICcsICcuam9p
bihbIid7fSciLmZvcm1hdChzY3JpcHQpIGZvciBzY3JpcHQgaW4gc2VsZi5zY3JpcHRzXSkKKyAg
ICAgICAgICAgICkgaWYgc2VsZi5zY3JpcHRzIGVsc2UgJycsCisgICAgICAgICAgICBwYWNrYWdl
cz0nLFxuICAgICAgICAnLmpvaW4oWyIne30nIi5mb3JtYXQocGFja2FnZSkgZm9yIHBhY2thZ2Ug
aW4gc2VsZi5wYWNrYWdlc10pLAorICAgICAgICAgICAgaW5zdGFsbF9yZXF1aXJlcz0iaW5zdGFs
bF9yZXF1aXJlcz1bXG4gICAgICAgIHt9LFxuICAgIF0sXG4gICAgIi5mb3JtYXQoCisgICAgICAg
ICAgICAgICAgJyxcbiAgICAgICAgJy5qb2luKCcie30iJy5mb3JtYXQocGtnKSBmb3IgcGtnIGlu
IHNlbGYuaW5zdGFsbF9yZXF1aXJlcykKKyAgICAgICAgICAgICkgaWYgc2VsZi5pbnN0YWxsX3Jl
cXVpcmVzIGVsc2UgJycKKyAgICAgICAgKQorCisgICAgZGVmIHBhY2thZ2Uoc2VsZiwgcGF0aD1O
b25lKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgcGF0aCA9IG9zLnBhdGguYWJzcGF0aChw
YXRoIG9yICdidWlsZCcpCisgICAgICAgICAgICBidWlsZCA9IG9zLnBhdGguam9pbihzZWxmLmNv
bnRhaW5lciwgJ2J1aWxkJykKKyAgICAgICAgICAgIGZvciBkIGluIFtwYXRoLCBidWlsZF06Cisg
ICAgICAgICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGQpOgorICAgICAgICAgICAgICAg
ICAgICBjb250aW51ZQorICAgICAgICAgICAgICAgIGxvZy5pbmZvKCdDbGVhbmluZyB1cCB7fS4u
LicuZm9ybWF0KGQpKQorICAgICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZCwgb25lcnJvcj1z
ZWxmLmVycm9yKCdGYWlsZWQgdG8gcmVtb3ZlIHt9Jy5mb3JtYXQoZCkpKQorICAgICAgICAgICAg
ICAgIGxvZy5pbmZvKCdDbGVhbmVkIHVwIHt9IScuZm9ybWF0KGQpKQorCisgICAgICAgICAgICBs
b2cuaW5mbygnUGFja2FnaW5nIHt9Li4uJy5mb3JtYXQoc2VsZi5uYW1lKSkKKyAgICAgICAgICAg
IHJlc3VsdCA9IHJ1bigKKyAgICAgICAgICAgICAgICBbc3lzLmV4ZWN1dGFibGUsICctJywgJ2J1
aWxkJ10sCisgICAgICAgICAgICAgICAgY3dkPXNlbGYuY29udGFpbmVyLCBpbnB1dD1zZWxmLnNl
dHVwX3B5LCBlbmNvZGluZz0ndXRmLTgnLAorICAgICAgICAgICAgICAgIGNhcHR1cmVfb3V0cHV0
PWxvZy5nZXRFZmZlY3RpdmVMZXZlbCgpID49IGxvZ2dpbmcuSU5GTywKKyAgICAgICAgICAgICkK
KyAgICAgICAgICAgIGlmIHJlc3VsdC5yZXR1cm5jb2RlOgorICAgICAgICAgICAgICAgIHJhaXNl
IHNlbGYuRXhjZXB0aW9uKCdGYWlsZWQgdG8gYnVpbGQge30hJy5mb3JtYXQoc2VsZi5uYW1lKSkK
KyAgICAgICAgICAgIGxvZy5pbmZvKCdQYWNrYWdlZCB7fSEnLmZvcm1hdChzZWxmLm5hbWUpKQor
CisgICAgICAgICAgICBpZiBwYXRoID09IGJ1aWxkOgorICAgICAgICAgICAgICAgIHJldHVybiBi
dWlsZAorCisgICAgICAgICAgICBsb2cuaW5mbygnTW92aW5nIHt9IHRvIHt9Li4uJy5mb3JtYXQo
c2VsZi5uYW1lLCBwYXRoKSkKKyAgICAgICAgICAgIHNodXRpbC5tb3ZlKGJ1aWxkLCBwYXRoKQor
ICAgICAgICAgICAgbG9nLmluZm8oJ01vdmVkIHt9IHRvIHt9IScuZm9ybWF0KHNlbGYubmFtZSwg
cGF0aCkpCisgICAgICAgICAgICByZXR1cm4gcGF0aAorCisgICAgICAgIGZpbmFsbHk6CisgICAg
ICAgICAgICBlZ2dfaW5mbyA9IG9zLnBhdGguam9pbihzZWxmLmNvbnRhaW5lciwgJ3t9LmVnZy1p
bmZvJy5mb3JtYXQoc2VsZi5uYW1lKSkKKyAgICAgICAgICAgIGlmIG9zLnBhdGguaXNkaXIoZWdn
X2luZm8pOgorICAgICAgICAgICAgICAgIHNodXRpbC5ybXRyZWUoZWdnX2luZm8sIG9uZXJyb3I9
c2VsZi5lcnJvcignRmFpbGVkIHRvIHJlbW92ZSB7fScuZm9ybWF0KGVnZ19pbmZvKSkpCisKKyAg
ICBkZWYgaW5zdGFsbChzZWxmKToKKyAgICAgICAgdHJ5OgorICAgICAgICAgICAgbG9nLmluZm8o
J0luc3RhbGxpbmcge30uLi4nLmZvcm1hdChzZWxmLm5hbWUpKQorICAgICAgICAgICAgcmVzdWx0
ID0gcnVuKAorICAgICAgICAgICAgICAgIFtzeXMuZXhlY3V0YWJsZSwgJy0nLCAnaW5zdGFsbCcs
ICctLXVzZXInXSwKKyAgICAgICAgICAgICAgICBjd2Q9c2VsZi5jb250YWluZXIsIGlucHV0PXNl
bGYuc2V0dXBfcHksIGVuY29kaW5nPSd1dGYtOCcsCisgICAgICAgICAgICAgICAgY2FwdHVyZV9v
dXRwdXQ9bG9nLmdldEVmZmVjdGl2ZUxldmVsKCkgPj0gbG9nZ2luZy5JTkZPLAorICAgICAgICAg
ICAgKQorICAgICAgICAgICAgaWYgcmVzdWx0LnJldHVybmNvZGU6CisgICAgICAgICAgICAgICAg
cmFpc2Ugc2VsZi5FeGNlcHRpb24oJ0ZhaWxlZCB0byBpbnN0YWxsIHt9IScuZm9ybWF0KHNlbGYu
bmFtZSkpCisgICAgICAgICAgICBsb2cuaW5mbygnSW5zdGFsbGVkIHt9IScuZm9ybWF0KHNlbGYu
bmFtZSkpCisKKyAgICAgICAgZmluYWxseToKKyAgICAgICAgICAgIGZvciB0b19kZWxldGUgaW4g
WydidWlsZCcsICdkaXN0JywgJ3t9LmVnZy1pbmZvJy5mb3JtYXQoc2VsZi5uYW1lKV06CisgICAg
ICAgICAgICAgICAgdGFyZ2V0ID0gb3MucGF0aC5qb2luKHNlbGYuY29udGFpbmVyLCB0b19kZWxl
dGUpCisgICAgICAgICAgICAgICAgaWYgb3MucGF0aC5pc2Rpcih0YXJnZXQpOgorICAgICAgICAg
ICAgICAgICAgICBzaHV0aWwucm10cmVlKHRhcmdldCwgb25lcnJvcj1zZWxmLmVycm9yKCdGYWls
ZWQgdG8gcmVtb3ZlIHt9Jy5mb3JtYXQodGFyZ2V0KSkpCg==
</data>
<flag name="review"
          id="448253"
          type_id="1"
          status="?"
          setter="jbedard"
    />
          </attachment>
      

    </bug>

</bugzilla>