<?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>206774</bug_id>
          
          <creation_ts>2020-01-24 15:41:00 -0800</creation_ts>
          <short_desc>[ews] Add method to fetch cq+ patches from Bugzilla</short_desc>
          <delta_ts>2020-01-27 17:47:18 -0800</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>Other</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>
          
          <blocked>206534</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Aakash Jain">aakash_jain</reporter>
          <assigned_to name="Aakash Jain">aakash_jain</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>jbedard</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1610886</commentid>
    <comment_count>0</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-01-24 15:41:00 -0800</bug_when>
    <thetext>Add method to fetch cq+ patches from Bugzilla in the EWS django app. This is needed for Bug 206534 &apos;EWS django app should send cq+ patches to commit-queue&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610887</commentid>
    <comment_count>1</comment_count>
      <attachid>388733</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-01-24 15:49:16 -0800</bug_when>
    <thetext>Created attachment 388733
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1610912</commentid>
    <comment_count>2</comment_count>
      <attachid>388733</attachid>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-24 16:43:41 -0800</bug_when>
    <thetext>Comment on attachment 388733
Patch

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

&gt; Tools/BuildSlaveSupport/ews-app/ews/common/bugzilla.py:82
&gt; +        commit_queue_patches = []

Seems like this should be moved down so it&apos;s near the loop that&apos;s populating it

&gt; Tools/BuildSlaveSupport/ews-app/ews/common/bugzilla.py:84
&gt; +        api_key = os.getenv(&apos;BUGZILLA_API_KEY&apos;, None)

Is this for security bugs? What happens if it&apos;s undefined?

&gt; Tools/BuildSlaveSupport/ews-app/ews/common/bugzilla.py:95
&gt; +            if Bugzilla._is_patch_cq_plus(attachment_json):

Shouldn&apos;t this be Bugzilla._is_patch_cq_plus(attachment_json) == 1? It would be true for -1 too.

Also, I think this should be &apos;cls._is_patch_cq_plus&apos;

&gt; Tools/BuildSlaveSupport/ews-app/ews/common/bugzilla.py:106
&gt; +            if flag.get(&apos;name&apos;) == &apos;commit-queue&apos; and flag.get(&apos;status&apos;) == &apos;+&apos;:

Is the patch data unicode or not? On line 94, you&apos;re treating it like unicode, here, you&apos;re treating it like a string.

&gt; Tools/BuildSlaveSupport/ews-app/ews/common/bugzilla.py:188
&gt; +    def fetch_bug_ids_for_commit_queue(self):

Confused why we have two different functions here. Seems like they should be the same.

&gt; Tools/BuildSlaveSupport/ews-app/ews/common/bugzilla.py:196
&gt; +        return [int(bug_link_cell.find(&quot;a&quot;).string)

If you event hit something that isn&apos;t an integer, this is going to blow up.

Do you have a good example of what this output actually looks like?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611713</commentid>
    <comment_count>3</comment_count>
      <attachid>388943</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-01-27 17:04:33 -0800</bug_when>
    <thetext>Created attachment 388943
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611714</commentid>
    <comment_count>4</comment_count>
      <attachid>388733</attachid>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-01-27 17:06:29 -0800</bug_when>
    <thetext>Comment on attachment 388733
Patch

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

&gt;&gt; Tools/BuildSlaveSupport/ews-app/ews/common/bugzilla.py:82
&gt;&gt; +        commit_queue_patches = []
&gt; 
&gt; Seems like this should be moved down so it&apos;s near the loop that&apos;s populating it

Done in updated patch.

&gt;&gt; Tools/BuildSlaveSupport/ews-app/ews/common/bugzilla.py:84
&gt;&gt; +        api_key = os.getenv(&apos;BUGZILLA_API_KEY&apos;, None)
&gt; 
&gt; Is this for security bugs? What happens if it&apos;s undefined?

Yes. If api_key is undefined, it wouldn&apos;t fetch security patches (would fetch just the regular patches).

&gt;&gt; Tools/BuildSlaveSupport/ews-app/ews/common/bugzilla.py:95
&gt;&gt; +            if Bugzilla._is_patch_cq_plus(attachment_json):
&gt; 
&gt; Shouldn&apos;t this be Bugzilla._is_patch_cq_plus(attachment_json) == 1? It would be true for -1 too.
&gt; 
&gt; Also, I think this should be &apos;cls._is_patch_cq_plus&apos;

good catch. fixed in updated patch.

&gt;&gt; Tools/BuildSlaveSupport/ews-app/ews/common/bugzilla.py:106
&gt;&gt; +            if flag.get(&apos;name&apos;) == &apos;commit-queue&apos; and flag.get(&apos;status&apos;) == &apos;+&apos;:
&gt; 
&gt; Is the patch data unicode or not? On line 94, you&apos;re treating it like unicode, here, you&apos;re treating it like a string.

changed line 94 from unicode to str. Was basically converting from int to str/unicode.

&gt;&gt; Tools/BuildSlaveSupport/ews-app/ews/common/bugzilla.py:188
&gt;&gt; +    def fetch_bug_ids_for_commit_queue(self):
&gt; 
&gt; Confused why we have two different functions here. Seems like they should be the same.

Copied from webkitpy. Merged into one function in updated patch.

&gt;&gt; Tools/BuildSlaveSupport/ews-app/ews/common/bugzilla.py:196
&gt;&gt; +        return [int(bug_link_cell.find(&quot;a&quot;).string)
&gt; 
&gt; If you event hit something that isn&apos;t an integer, this is going to blow up.
&gt; 
&gt; Do you have a good example of what this output actually looks like?

bug_link_cell:

&lt;td class=&quot;first-child bz_id_column&quot;&gt;
&lt;a href=&quot;show_bug.cgi?id=201737&quot;&gt;201737&lt;/a&gt;
&lt;span class=&quot;bz_default_hidden&quot;&gt;&lt;/span&gt;
&lt;/td&gt;

bug_link_cell.find(&quot;a&quot;):
&lt;a href=&quot;show_bug.cgi?id=201737&quot;&gt;201737&lt;/a&gt;

bug_link_cell.find(&quot;a&quot;).string:
201737

Also, this code is simply copied from webkitpy where it has been working fine for years. Until we change bugzilla version (and newer bugzilla version changes this), I don&apos;t see any reason for this format to change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611738</commentid>
    <comment_count>5</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-01-27 17:34:45 -0800</bug_when>
    <thetext>(In reply to Aakash Jain from comment #4)
&gt; ...
&gt; 
&gt; Also, this code is simply copied from webkitpy where it has been working
&gt; fine for years. Until we change bugzilla version (and newer bugzilla version
&gt; changes this), I don&apos;t see any reason for this format to change.

The fact that it&apos;s been this way in webkitpy for years means it clearly won&apos;t be blowing up, so I&apos;m good with it as is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611750</commentid>
    <comment_count>6</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2020-01-27 17:46:50 -0800</bug_when>
    <thetext>Committed r255218: &lt;https://trac.webkit.org/changeset/255218&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1611752</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-27 17:47:18 -0800</bug_when>
    <thetext>&lt;rdar://problem/58941855&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388733</attachid>
            <date>2020-01-24 15:49:16 -0800</date>
            <delta_ts>2020-01-27 17:04:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206774-20200124184915.patch</filename>
            <type>text/plain</type>
            <size>4356</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1NTEwMikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDIwLTAxLTI0ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBbZXdzXSBBZGQgbWV0aG9kIHRvIGZldGNoIGNxKyBwYXRjaGVzIGZyb20g
QnVnemlsbGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNjc3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3MvY29tbW9uL2J1Z3ppbGxhLnB5OgorICAg
ICAgICAoQnVnemlsbGEuX2dldF9jb21taXRfcXVldWVfcGF0Y2hlc19mcm9tX2J1Zyk6IE1ldGhv
ZCB0byBnZXQgY3ErIHBhdGNoZXMgZm9yIGEgZ2l2ZW4gYnVnLgorICAgICAgICAoQnVnemlsbGEu
X2lzX3BhdGNoX2NxX3BsdXMpOiBNZXRob2QgdG8gY2hlY2sgaWYgcGF0Y2ggaGFzIGNxKyBmbGFn
IHNldC4KKyAgICAgICAgKEJ1Z3ppbGxhLmdldF9saXN0X29mX3BhdGNoZXNfZm9yX2NvbW1pdF9x
dWV1ZSk6IE1ldGhvZCB0byBmZXRjaCBsaXN0IG9mIGNxKyBwYXRjaGVzIGZyb20gQnVnemlsbGEu
IAorICAgICAgICAoQnVnemlsbGFCZWF1dGlmdWxTb3VwLmZldGNoX2J1Z19pZHNfZm9yX2NvbW1p
dF9xdWV1ZSk6CisgICAgICAgIChCdWd6aWxsYUJlYXV0aWZ1bFNvdXAuX2ZldGNoX2J1Z19pZHNf
YWR2YW5jZWRfcXVlcnkpOgorCiAyMDIwLTAxLTIzICBNYXR0IExld2lzICA8amxld2lzM0BhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIEFwcGxlIHdpbmRvd3MgNyBxdWV1ZXMuCkluZGV4OiBU
b29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBwL2V3cy9jb21tb24vYnVnemlsbGEucHkKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3MvY29tbW9uL2J1
Z3ppbGxhLnB5CShyZXZpc2lvbiAyNTUwOTUpCisrKyBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9l
d3MtYXBwL2V3cy9jb21tb24vYnVnemlsbGEucHkJKHdvcmtpbmcgY29weSkKQEAgLTc0LDYgKzc0
LDQwIEBAIGNsYXNzIEJ1Z3ppbGxhKCk6CiAgICAgICAgIHJldHVybiBhdHRhY2htZW50X2pzb24u
Z2V0KHN0cihhdHRhY2htZW50X2lkKSkKIAogICAgIEBjbGFzc21ldGhvZAorICAgIGRlZiBfZ2V0
X2NvbW1pdF9xdWV1ZV9wYXRjaGVzX2Zyb21fYnVnKGNscywgYnVnX2lkKToKKyAgICAgICAgaWYg
bm90IHV0aWwuaXNfdmFsaWRfaWQoYnVnX2lkKToKKyAgICAgICAgICAgIF9sb2cud2FybignSW52
YWxpZCBidWcgaWQ6ICJ7fSIuJy5mb3JtYXQoYnVnX2lkKSkKKyAgICAgICAgICAgIHJldHVybiBb
XQorCisgICAgICAgIGNvbW1pdF9xdWV1ZV9wYXRjaGVzID0gW10KKyAgICAgICAgYnVnX3VybCA9
ICd7fXJlc3QvYnVnL3t9L2F0dGFjaG1lbnQnLmZvcm1hdChjb25maWcuQlVHX1NFUlZFUl9VUkws
IGJ1Z19pZCkKKyAgICAgICAgYXBpX2tleSA9IG9zLmdldGVudignQlVHWklMTEFfQVBJX0tFWScs
IE5vbmUpCisgICAgICAgIGlmIGFwaV9rZXk6CisgICAgICAgICAgICBidWdfdXJsICs9ICc/YXBp
X2tleT17fScuZm9ybWF0KGFwaV9rZXkpCisgICAgICAgIGJ1ZyA9IHV0aWwuZmV0Y2hfZGF0YV9m
cm9tX3VybChidWdfdXJsKQorICAgICAgICBpZiBub3QgYnVnOgorICAgICAgICAgICAgcmV0dXJu
IFtdCisgICAgICAgIGJ1Z19qc29uID0gYnVnLmpzb24oKS5nZXQoJ2J1Z3MnKQorICAgICAgICBp
ZiBub3QgYnVnX2pzb24gb3IgbGVuKGJ1Z19qc29uKSA9PSAwOgorICAgICAgICAgICAgcmV0dXJu
IFtdCisKKyAgICAgICAgZm9yIGF0dGFjaG1lbnRfanNvbiBpbiBidWdfanNvbi5nZXQodW5pY29k
ZShidWdfaWQpKToKKyAgICAgICAgICAgIGlmIEJ1Z3ppbGxhLl9pc19wYXRjaF9jcV9wbHVzKGF0
dGFjaG1lbnRfanNvbik6CisgICAgICAgICAgICAgICAgY29tbWl0X3F1ZXVlX3BhdGNoZXMuYXBw
ZW5kKGF0dGFjaG1lbnRfanNvbi5nZXQoJ2lkJykpCisKKyAgICAgICAgcmV0dXJuIGNvbW1pdF9x
dWV1ZV9wYXRjaGVzCisKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgX2lzX3BhdGNoX2NxX3Bs
dXMoY2xzLCBwYXRjaF9qc29uKToKKyAgICAgICAgaWYgbm90IHBhdGNoX2pzb246CisgICAgICAg
ICAgICByZXR1cm4gLTEKKworICAgICAgICBmb3IgZmxhZyBpbiBwYXRjaF9qc29uLmdldCgnZmxh
Z3MnLCBbXSk6CisgICAgICAgICAgICBpZiBmbGFnLmdldCgnbmFtZScpID09ICdjb21taXQtcXVl
dWUnIGFuZCBmbGFnLmdldCgnc3RhdHVzJykgPT0gJysnOgorICAgICAgICAgICAgICAgIHJldHVy
biAxCisgICAgICAgIHJldHVybiAwCisKKyAgICBAY2xhc3NtZXRob2QKICAgICBkZWYgZmlsZV9w
YXRoX2Zvcl9wYXRjaChjbHMsIHBhdGNoX2lkKToKICAgICAgICAgaWYgbm90IG9zLnBhdGguZXhp
c3RzKGNvbmZpZy5QQVRDSF9GT0xERVIpOgogICAgICAgICAgICAgb3MubWtkaXIoY29uZmlnLlBB
VENIX0ZPTERFUikKQEAgLTg2LDYgKzEyMCwxNCBAQCBjbGFzcyBCdWd6aWxsYSgpOgogICAgICAg
ICAjVE9ETzogYWRkIHNlY3VyaXR5IGJ1Z3Mgc3VwcG9ydCBoZXJlLgogICAgICAgICByZXR1cm4g
aWRzX25lZWRpbmdfcmV2aWV3CiAKKyAgICBAY2xhc3NtZXRob2QKKyAgICBkZWYgZ2V0X2xpc3Rf
b2ZfcGF0Y2hlc19mb3JfY29tbWl0X3F1ZXVlKGNscyk6CisgICAgICAgIGJ1Z19pZHNfZm9yX2Nv
bW1pdF9xdWV1ZSA9IHNldChCdWd6aWxsYUJlYXV0aWZ1bFNvdXAoKS5mZXRjaF9idWdfaWRzX2Zv
cl9jb21taXRfcXVldWUoKSkKKyAgICAgICAgaWRzX2Zvcl9jb21taXRfcXVldWUgPSBbXQorICAg
ICAgICBmb3IgYnVnX2lkIGluIGJ1Z19pZHNfZm9yX2NvbW1pdF9xdWV1ZToKKyAgICAgICAgICAg
IGlkc19mb3JfY29tbWl0X3F1ZXVlLmV4dGVuZChCdWd6aWxsYS5fZ2V0X2NvbW1pdF9xdWV1ZV9w
YXRjaGVzX2Zyb21fYnVnKGJ1Z19pZCkpCisgICAgICAgIHJldHVybiBpZHNfZm9yX2NvbW1pdF9x
dWV1ZQorCiAKIGNsYXNzIEJ1Z3ppbGxhQmVhdXRpZnVsU291cCgpOgogICAgICMgRklYTUU6IERl
cHJlY2F0ZSB0aGlzIGNsYXNzIHdoZW4gaHR0cHM6Ly9idWd6aWxsYS5tb3ppbGxhLm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTUwODUzMSBpcyBmaXhlZC4KQEAgLTE0Myw2ICsxODUsMTcgQEAgY2xhc3Mg
QnVnemlsbGFCZWF1dGlmdWxTb3VwKCk6CiAgICAgICAgICAgICByZXZpZXdfcXVldWVfdXJsICs9
ICcmcHJvZHVjdD1TZWN1cml0eScKICAgICAgICAgcmV0dXJuIHNlbGYuX3BhcnNlX2F0dGFjaG1l
bnRfaWRzX3JlcXVlc3RfcXVlcnkoc2VsZi5fbG9hZF9xdWVyeShyZXZpZXdfcXVldWVfdXJsKSwg
c2luY2UpCiAKKyAgICBkZWYgZmV0Y2hfYnVnX2lkc19mb3JfY29tbWl0X3F1ZXVlKHNlbGYpOgor
ICAgICAgICBjb21taXRfcXVldWVfdXJsID0gImJ1Z2xpc3QuY2dpP3F1ZXJ5X2Zvcm1hdD1hZHZh
bmNlZCZidWdfc3RhdHVzPVVOQ09ORklSTUVEJmJ1Z19zdGF0dXM9TkVXJmJ1Z19zdGF0dXM9QVNT
SUdORUQmYnVnX3N0YXR1cz1SRU9QRU5FRCZmaWVsZDAtMC0wPWZsYWd0eXBlcy5uYW1lJnR5cGUw
LTAtMD1lcXVhbHMmdmFsdWUwLTAtMD1jb21taXQtcXVldWUlMkImb3JkZXI9TGFzdCtDaGFuZ2Vk
IgorICAgICAgICByZXR1cm4gc2VsZi5fZmV0Y2hfYnVnX2lkc19hZHZhbmNlZF9xdWVyeShjb21t
aXRfcXVldWVfdXJsKQorCisgICAgZGVmIF9mZXRjaF9idWdfaWRzX2FkdmFuY2VkX3F1ZXJ5KHNl
bGYsIHF1ZXJ5KToKKyAgICAgICAgc291cCA9IEJlYXV0aWZ1bFNvdXAoc2VsZi5fbG9hZF9xdWVy
eShxdWVyeSkpCisgICAgICAgICMgVGhlIGNvbnRlbnRzIG9mIHRoZSA8YT4gaW5zaWRlIHRoZSBj
ZWxscyBpbiB0aGUgZmlyc3QgY29sdW1uIGhhcHBlbgorICAgICAgICAjIHRvIGJlIHRoZSBidWcg
aWQuCisgICAgICAgIHJldHVybiBbaW50KGJ1Z19saW5rX2NlbGwuZmluZCgiYSIpLnN0cmluZykK
KyAgICAgICAgICAgICAgICBmb3IgYnVnX2xpbmtfY2VsbCBpbiBzb3VwKCd0ZCcsICJmaXJzdC1j
aGlsZCIpXQorCiAgICAgZGVmIF9sb2FkX3F1ZXJ5KHNlbGYsIHF1ZXJ5KToKICAgICAgICAgc2Vs
Zi5hdXRoZW50aWNhdGUoKQogICAgICAgICBmdWxsX3VybCA9ICd7fXt9Jy5mb3JtYXQoY29uZmln
LkJVR19TRVJWRVJfVVJMLCBxdWVyeSkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>388943</attachid>
            <date>2020-01-27 17:04:33 -0800</date>
            <delta_ts>2020-01-27 17:33:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-206774-20200127200432.patch</filename>
            <type>text/plain</type>
            <size>4170</size>
            <attacher name="Aakash Jain">aakash_jain</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1NTIxMikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE2IEBACisyMDIwLTAxLTI3ICBBYWthc2ggSmFpbiAgPGFha2FzaF9qYWluQGFwcGxlLmNv
bT4KKworICAgICAgICBbZXdzXSBBZGQgbWV0aG9kIHRvIGZldGNoIGNxKyBwYXRjaGVzIGZyb20g
QnVnemlsbGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIwNjc3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3MvY29tbW9uL2J1Z3ppbGxhLnB5OgorICAg
ICAgICAoQnVnemlsbGEuX2dldF9jb21taXRfcXVldWVfcGF0Y2hlc19mcm9tX2J1Zyk6IE1ldGhv
ZCB0byBnZXQgY3ErIHBhdGNoZXMgZm9yIGEgZ2l2ZW4gYnVnLgorICAgICAgICAoQnVnemlsbGEu
X2lzX3BhdGNoX2NxX3BsdXMpOiBNZXRob2QgdG8gY2hlY2sgaWYgcGF0Y2ggaGFzIGNxKyBmbGFn
IHNldC4KKyAgICAgICAgKEJ1Z3ppbGxhLmdldF9saXN0X29mX3BhdGNoZXNfZm9yX2NvbW1pdF9x
dWV1ZSk6IE1ldGhvZCB0byBmZXRjaCBsaXN0IG9mIGNxKyBwYXRjaGVzIGZyb20gQnVnemlsbGEu
CisgICAgICAgIChCdWd6aWxsYUJlYXV0aWZ1bFNvdXAuZmV0Y2hfYnVnX2lkc19mb3JfY29tbWl0
X3F1ZXVlKToKKwogMjAyMC0wMS0yNyAgTm9hbSBSb3NlbnRoYWwgIDxub2FtQHdlYmtpdC5vcmc+
CiAKICAgICAgICAgVW5yZXZpZXdlZC4gQWRkaW5nIG15c2VsZiBiYWNrIGFzIGEgcmV2aWV3ZXIu
CkluZGV4OiBUb29scy9CdWlsZFNsYXZlU3VwcG9ydC9ld3MtYXBwL2V3cy9jb21tb24vYnVnemls
bGEucHkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvQnVpbGRTbGF2ZVN1cHBvcnQvZXdzLWFwcC9ld3Mv
Y29tbW9uL2J1Z3ppbGxhLnB5CShyZXZpc2lvbiAyNTUyMTIpCisrKyBUb29scy9CdWlsZFNsYXZl
U3VwcG9ydC9ld3MtYXBwL2V3cy9jb21tb24vYnVnemlsbGEucHkJKHdvcmtpbmcgY29weSkKQEAg
LTc0LDYgKzc0LDQwIEBAIGNsYXNzIEJ1Z3ppbGxhKCk6CiAgICAgICAgIHJldHVybiBhdHRhY2ht
ZW50X2pzb24uZ2V0KHN0cihhdHRhY2htZW50X2lkKSkKIAogICAgIEBjbGFzc21ldGhvZAorICAg
IGRlZiBfZ2V0X2NvbW1pdF9xdWV1ZV9wYXRjaGVzX2Zyb21fYnVnKGNscywgYnVnX2lkKToKKyAg
ICAgICAgaWYgbm90IHV0aWwuaXNfdmFsaWRfaWQoYnVnX2lkKToKKyAgICAgICAgICAgIF9sb2cu
d2FybignSW52YWxpZCBidWcgaWQ6ICJ7fSInLmZvcm1hdChidWdfaWQpKQorICAgICAgICAgICAg
cmV0dXJuIFtdCisKKyAgICAgICAgYnVnX3VybCA9ICd7fXJlc3QvYnVnL3t9L2F0dGFjaG1lbnQn
LmZvcm1hdChjb25maWcuQlVHX1NFUlZFUl9VUkwsIGJ1Z19pZCkKKyAgICAgICAgYXBpX2tleSA9
IG9zLmdldGVudignQlVHWklMTEFfQVBJX0tFWScsIE5vbmUpCisgICAgICAgIGlmIGFwaV9rZXk6
CisgICAgICAgICAgICBidWdfdXJsICs9ICc/YXBpX2tleT17fScuZm9ybWF0KGFwaV9rZXkpCisg
ICAgICAgIGJ1ZyA9IHV0aWwuZmV0Y2hfZGF0YV9mcm9tX3VybChidWdfdXJsKQorICAgICAgICBp
ZiBub3QgYnVnOgorICAgICAgICAgICAgcmV0dXJuIFtdCisgICAgICAgIGJ1Z19qc29uID0gYnVn
Lmpzb24oKS5nZXQoJ2J1Z3MnKQorICAgICAgICBpZiBub3QgYnVnX2pzb24gb3IgbGVuKGJ1Z19q
c29uKSA9PSAwOgorICAgICAgICAgICAgcmV0dXJuIFtdCisKKyAgICAgICAgY29tbWl0X3F1ZXVl
X3BhdGNoZXMgPSBbXQorICAgICAgICBmb3IgcGF0Y2hfanNvbiBpbiBidWdfanNvbi5nZXQoc3Ry
KGJ1Z19pZCkpOgorICAgICAgICAgICAgaWYgY2xzLl9pc19wYXRjaF9jcV9wbHVzKHBhdGNoX2pz
b24pID09IDE6CisgICAgICAgICAgICAgICAgY29tbWl0X3F1ZXVlX3BhdGNoZXMuYXBwZW5kKHBh
dGNoX2pzb24uZ2V0KCdpZCcpKQorCisgICAgICAgIHJldHVybiBjb21taXRfcXVldWVfcGF0Y2hl
cworCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIF9pc19wYXRjaF9jcV9wbHVzKGNscywgcGF0
Y2hfanNvbik6CisgICAgICAgIGlmIG5vdCBwYXRjaF9qc29uOgorICAgICAgICAgICAgcmV0dXJu
IC0xCisKKyAgICAgICAgZm9yIGZsYWcgaW4gcGF0Y2hfanNvbi5nZXQoJ2ZsYWdzJywgW10pOgor
ICAgICAgICAgICAgaWYgZmxhZy5nZXQoJ25hbWUnKSA9PSAnY29tbWl0LXF1ZXVlJyBhbmQgZmxh
Zy5nZXQoJ3N0YXR1cycpID09ICcrJzoKKyAgICAgICAgICAgICAgICByZXR1cm4gMQorICAgICAg
ICByZXR1cm4gMAorCisgICAgQGNsYXNzbWV0aG9kCiAgICAgZGVmIGZpbGVfcGF0aF9mb3JfcGF0
Y2goY2xzLCBwYXRjaF9pZCk6CiAgICAgICAgIGlmIG5vdCBvcy5wYXRoLmV4aXN0cyhjb25maWcu
UEFUQ0hfRk9MREVSKToKICAgICAgICAgICAgIG9zLm1rZGlyKGNvbmZpZy5QQVRDSF9GT0xERVIp
CkBAIC04Niw2ICsxMjAsMTQgQEAgY2xhc3MgQnVnemlsbGEoKToKICAgICAgICAgI1RPRE86IGFk
ZCBzZWN1cml0eSBidWdzIHN1cHBvcnQgaGVyZS4KICAgICAgICAgcmV0dXJuIGlkc19uZWVkaW5n
X3JldmlldwogCisgICAgQGNsYXNzbWV0aG9kCisgICAgZGVmIGdldF9saXN0X29mX3BhdGNoZXNf
Zm9yX2NvbW1pdF9xdWV1ZShjbHMpOgorICAgICAgICBidWdfaWRzX2Zvcl9jb21taXRfcXVldWUg
PSBzZXQoQnVnemlsbGFCZWF1dGlmdWxTb3VwKCkuZmV0Y2hfYnVnX2lkc19mb3JfY29tbWl0X3F1
ZXVlKCkpCisgICAgICAgIGlkc19mb3JfY29tbWl0X3F1ZXVlID0gW10KKyAgICAgICAgZm9yIGJ1
Z19pZCBpbiBidWdfaWRzX2Zvcl9jb21taXRfcXVldWU6CisgICAgICAgICAgICBpZHNfZm9yX2Nv
bW1pdF9xdWV1ZS5leHRlbmQoY2xzLl9nZXRfY29tbWl0X3F1ZXVlX3BhdGNoZXNfZnJvbV9idWco
YnVnX2lkKSkKKyAgICAgICAgcmV0dXJuIGlkc19mb3JfY29tbWl0X3F1ZXVlCisKIAogY2xhc3Mg
QnVnemlsbGFCZWF1dGlmdWxTb3VwKCk6CiAgICAgIyBGSVhNRTogRGVwcmVjYXRlIHRoaXMgY2xh
c3Mgd2hlbiBodHRwczovL2J1Z3ppbGxhLm1vemlsbGEub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTA4
NTMxIGlzIGZpeGVkLgpAQCAtMTQzLDYgKzE4NSwxNCBAQCBjbGFzcyBCdWd6aWxsYUJlYXV0aWZ1
bFNvdXAoKToKICAgICAgICAgICAgIHJldmlld19xdWV1ZV91cmwgKz0gJyZwcm9kdWN0PVNlY3Vy
aXR5JwogICAgICAgICByZXR1cm4gc2VsZi5fcGFyc2VfYXR0YWNobWVudF9pZHNfcmVxdWVzdF9x
dWVyeShzZWxmLl9sb2FkX3F1ZXJ5KHJldmlld19xdWV1ZV91cmwpLCBzaW5jZSkKIAorICAgIGRl
ZiBmZXRjaF9idWdfaWRzX2Zvcl9jb21taXRfcXVldWUoc2VsZik6CisgICAgICAgIGNvbW1pdF9x
dWV1ZV91cmwgPSAiYnVnbGlzdC5jZ2k/cXVlcnlfZm9ybWF0PWFkdmFuY2VkJmJ1Z19zdGF0dXM9
VU5DT05GSVJNRUQmYnVnX3N0YXR1cz1ORVcmYnVnX3N0YXR1cz1BU1NJR05FRCZidWdfc3RhdHVz
PVJFT1BFTkVEJmZpZWxkMC0wLTA9ZmxhZ3R5cGVzLm5hbWUmdHlwZTAtMC0wPWVxdWFscyZ2YWx1
ZTAtMC0wPWNvbW1pdC1xdWV1ZSUyQiZvcmRlcj1MYXN0K0NoYW5nZWQiCisgICAgICAgIHNvdXAg
PSBCZWF1dGlmdWxTb3VwKHNlbGYuX2xvYWRfcXVlcnkoY29tbWl0X3F1ZXVlX3VybCkpCisgICAg
ICAgICMgVGhlIGNvbnRlbnRzIG9mIHRoZSA8YT4gaW5zaWRlIHRoZSBjZWxscyBpbiB0aGUgZmly
c3QgY29sdW1uIGhhcHBlbgorICAgICAgICAjIHRvIGJlIHRoZSBidWcgaWQuCisgICAgICAgIHJl
dHVybiBbaW50KGJ1Z19saW5rX2NlbGwuZmluZCgiYSIpLnN0cmluZykKKyAgICAgICAgICAgICAg
ICBmb3IgYnVnX2xpbmtfY2VsbCBpbiBzb3VwKCd0ZCcsICJmaXJzdC1jaGlsZCIpXQorCiAgICAg
ZGVmIF9sb2FkX3F1ZXJ5KHNlbGYsIHF1ZXJ5KToKICAgICAgICAgc2VsZi5hdXRoZW50aWNhdGUo
KQogICAgICAgICBmdWxsX3VybCA9ICd7fXt9Jy5mb3JtYXQoY29uZmlnLkJVR19TRVJWRVJfVVJM
LCBxdWVyeSkK
</data>
<flag name="review"
          id="404647"
          type_id="1"
          status="+"
          setter="jbedard"
    />
          </attachment>
      

    </bug>

</bugzilla>