<?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>197107</bug_id>
          
          <creation_ts>2019-04-19 10:52:14 -0700</creation_ts>
          <short_desc>Add script to merge run_benchmark jsons</short_desc>
          <delta_ts>2019-04-19 14:36:16 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Keith Miller">keith_miller</reporter>
          <assigned_to name="Keith Miller">keith_miller</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dean_johnson</cc>
    
    <cc>dewei_zhu</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>slewis</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1528789</commentid>
    <comment_count>0</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-04-19 10:52:14 -0700</bug_when>
    <thetext>Add script to merge run_benchmark jsons</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528790</commentid>
    <comment_count>1</comment_count>
      <attachid>367806</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-04-19 10:54:29 -0700</bug_when>
    <thetext>Created attachment 367806
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528801</commentid>
    <comment_count>2</comment_count>
      <attachid>367807</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-04-19 11:23:24 -0700</bug_when>
    <thetext>Created attachment 367807
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528809</commentid>
    <comment_count>3</comment_count>
      <attachid>367807</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2019-04-19 11:46:21 -0700</bug_when>
    <thetext>Comment on attachment 367807
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528841</commentid>
    <comment_count>4</comment_count>
      <attachid>367807</attachid>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2019-04-19 13:36:34 -0700</bug_when>
    <thetext>Comment on attachment 367807
Patch

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

Code looks good; small nits on Python coding style.

&gt; Tools/Scripts/merge-result-jsons:31
&gt; +

Nit: PEP8 asks that there is 2 lines in-between imports and function definitions (and 1 for methods).

&gt; Tools/Scripts/merge-result-jsons:34
&gt; +        return json.loads(contents.read())

Nit: You can just use `return json.load(contents)`.

&gt; Tools/Scripts/merge-result-jsons:40
&gt; +    if type(value1) is list:

Nit: Python recommends using `isinstance` rather than comparing types directly:
`if isinstance(value1, list):`

&gt; Tools/Scripts/merge-result-jsons:44
&gt; +    for key in list(value1.keys()) + list(value2.keys()):

value1.keys() and value2.keys() already return lists. This can be written a bit more concisely as:
`for key in (value1.keys() + value2.keys()):`

&gt; Tools/Scripts/merge-result-jsons:62
&gt; +        help=&quot;File to put the merged json into prints to standard out if nothing is passed&quot;)

Nit: You&apos;re missing positional arguments for the list of json files. I guess you can just use the remaining args instead, but it&apos;d be more clear to use argparse.
https://docs.python.org/2/library/argparse.html

This should be able to be implemented pretty easily. I think it would look something like:
parser.add_argument(&apos;json_files&apos;, metavar=&apos;N&apos;, default=[], nargs=&apos;+&apos;,
                    help=&apos;json files to merge&apos;)

&gt; Tools/Scripts/merge-result-jsons:72
&gt; +            f.write(json.dumps(result))

This can be written more concisely:
with open(opts.o, &apos;w&apos;) as f:
     json.dump(result, f)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528846</commentid>
    <comment_count>5</comment_count>
      <attachid>367807</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-04-19 13:40:19 -0700</bug_when>
    <thetext>Comment on attachment 367807
Patch

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

&gt; Tools/ChangeLog:11
&gt; +        This patch also adds +x bits to the compare-results script so it

Nice. I thought I did this but have also been annoyed by +x not being there. I must&apos;ve landed through commit queue or something.

&gt; Tools/Scripts/compare-results:236
&gt; +

revert</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528860</commentid>
    <comment_count>6</comment_count>
      <attachid>367824</attachid>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2019-04-19 14:06:03 -0700</bug_when>
    <thetext>Created attachment 367824
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528871</commentid>
    <comment_count>7</comment_count>
      <attachid>367824</attachid>
    <who name="Dean Johnson">dean_johnson</who>
    <bug_when>2019-04-19 14:31:41 -0700</bug_when>
    <thetext>Comment on attachment 367824
Patch for landing

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

&gt; Tools/Scripts/merge-result-jsons:49
&gt; +

Nit: Missing newlines between each function definition.

&gt; Tools/Scripts/merge-result-jsons:72
&gt; +    result = mergeJSONs(list(map(readJSONFile, args.jsons)))

Nit: `map` already returns a list. No need for an extra conversion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528876</commentid>
    <comment_count>8</comment_count>
      <attachid>367824</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-19 14:35:14 -0700</bug_when>
    <thetext>Comment on attachment 367824
Patch for landing

Clearing flags on attachment: 367824

Committed r244469: &lt;https://trac.webkit.org/changeset/244469&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528877</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-04-19 14:35:16 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528879</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-04-19 14:36:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/50059839&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367806</attachid>
            <date>2019-04-19 10:54:29 -0700</date>
            <delta_ts>2019-04-19 11:23:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197107-20190419135416.patch</filename>
            <type>text/plain</type>
            <size>4428</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NDMxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDk1Zjc0YTRmZTZlMTRmOWY0ZmFjMjRmNzYzYWNmYzEy
Zjk4MWJmMy4uOGUwOTJkY2YwNWM3OWFmMjU5YjMyNTMyNmRkNzRhZGJmMDBjMmY1OCAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIz
IEBACisyMDE5LTA0LTE5ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBzY3JpcHQgdG8gbWVyZ2UgcnVuX2JlbmNobWFyayBqc29ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3MTA3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHNjcmlwdCBiYXNp
Y2FsbHkgcmVjdXJzaXZlbHkgZGVjZW5kcyB0aHJvdWdoIGFsbCBqc29uIG9iamVjdHMgdW50aWwg
aXQgZ2V0cworICAgICAgICB0byBhbiBhcnJheSBvciBKU09OIHByaW1pdGl2ZSBhbmQgY29uY2F0
cyBvciB0YWtlcyB0aGUgZmlyc3QgdmFsdWUsIHJlc3BlY3RpdmVseS4KKworICAgICAgICBUaGlz
IHBhdGNoIGFsc28gYWRkcyAreCBiaXRzIHRvIHRoZSBjb21wYXJlLXJlc3VsdHMgc2NyaXB0IHNv
IGl0CisgICAgICAgIGNhbiBiZSBydW4gZGlyZWN0bHkgZnJvbSB0aGUgY29tbWFuZCBsaW5lLgor
CisgICAgICAgICogU2NyaXB0cy9jb21wYXJlLXJlc3VsdHM6CisgICAgICAgICogU2NyaXB0cy9t
ZXJnZS1yZXN1bHQtanNvbnM6IEFkZGVkLgorICAgICAgICAocmVhZEpTT05GaWxlKToKKyAgICAg
ICAgKGRlZXBBcHBlbmQpOgorICAgICAgICAobWVyZ2VKU09Ocyk6CisgICAgICAgIChtYWluKToK
KwogMjAxOS0wNC0xOCAgUnlhbiBIYWRkYWQgIDxyeWFuaGFkZGFkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMjQ0Mjk5LgpkaWZmIC0tZ2l0IGEvVG9vbHMv
U2NyaXB0cy9jb21wYXJlLXJlc3VsdHMgYi9Ub29scy9TY3JpcHRzL2NvbXBhcmUtcmVzdWx0cwpv
bGQgbW9kZSAxMDA2NDQKbmV3IG1vZGUgMTAwNzU1CmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRz
L21lcmdlLXJlc3VsdC1qc29ucyBiL1Rvb2xzL1NjcmlwdHMvbWVyZ2UtcmVzdWx0LWpzb25zCm5l
dyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjFjOTMyOTMwZTk0ZjAxYjMwOGE1ZjM4N2RlMjhiZDI2NDJlM2VhMDAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Ub29scy9TY3JpcHRzL21lcmdlLXJlc3VsdC1qc29ucwpAQCAtMCwwICsx
LDc4IEBACisjIS91c3IvYmluL2VudiBweXRob24gLXUKKworIyBDb3B5cmlnaHQgKEMpIDIwMTkg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisjIGFyZSBtZXQ6CisjCisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiAgUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyMgICAgIGl0
cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3Rz
IGRlcml2ZWQKKyMgICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9y
IHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMKKyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyMgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1Q
TElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyMgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMKKyMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworIyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyMgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQKKyMgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisjIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKK2ltcG9ydCBh
cmdwYXJzZQoraW1wb3J0IGpzb24KKworZGVmIHJlYWRKU09ORmlsZShwYXRoKToKKyAgICB3aXRo
IG9wZW4ocGF0aCwgJ3InKSBhcyBjb250ZW50czoKKyAgICAgICAgcmV0dXJuIGpzb24ubG9hZHMo
Y29udGVudHMucmVhZCgpKQorCisKK2RlZiBkZWVwQXBwZW5kKHZhbHVlMSwgdmFsdWUyLCBjdXJy
ZW50S2V5PU5vbmUpOgorICAgIGlmIHR5cGUodmFsdWUxKSAhPSB0eXBlKHZhbHVlMik6CisgICAg
ICAgIHJhaXNlIFR5cGVFcnJvcigidmFsdWVzIGhhdmUgZGlmZmVyZW50IHR5cGVzIGZvciBrZXk6
IHt9LCB7fSBhbmQge30iLmZvcm1hdChjdXJyZW50S2V5LCB0eXBlKHZhbHVlMSksIHR5cGUodmFs
dWUyKSkpCisgICAgaWYgdHlwZSh2YWx1ZTEpIGlzIGxpc3Q6CisgICAgICAgIHJldHVybiB2YWx1
ZTEgKyB2YWx1ZTIKKworICAgIHJlc3VsdCA9IHt9OworICAgIGZvciBrZXkgaW4gbGlzdCh2YWx1
ZTEua2V5cygpKSArIGxpc3QodmFsdWUyLmtleXMoKSk6CisgICAgICAgIGlmIGtleSBub3QgaW4g
cmVzdWx0OgorICAgICAgICAgICAgcmVzdWx0W2tleV0gPSBkZWVwQXBwZW5kKHZhbHVlMVtrZXld
LCB2YWx1ZTJba2V5XSwga2V5KQorICAgIHJldHVybiByZXN1bHQKKworZGVmIG1lcmdlSlNPTnMo
anNvbnMpOgorICAgIGlmIGxlbihqc29ucykgPT0gMDoKKyAgICAgICAgcmFpc2UgVHlwZUVycm9y
KCJubyBqc29ucyB0byBtZXJnZSIpCisKKyAgICBsYXN0ID0ganNvbnMucG9wKCkKKyAgICByZXR1
cm4gcmVkdWNlKGRlZXBBcHBlbmQsIGpzb25zLCBsYXN0KQorCitkZWYgbWFpbigpOgorICAgIHBh
cnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPSJNZXJnZSB0aGUgcmVz
dWx0aW5nIGpzb24gZmlsZXMgZnJvbSBtdWx0aXBsZSBpbnZvY2F0aW9ucyBvZiB0aGUgcnVuX2Jl
bmNobWFyayBzY3JpcHQuIikKKworICAgIHBhcnNlci5hZGRfYXJndW1lbnQoIi1vIiwKKyAgICAg
ICAgdHlwZT1zdHIsCisgICAgICAgIHJlcXVpcmVkPUZhbHNlLAorICAgICAgICBoZWxwPSJGaWxl
IHRvIHB1dCB0aGUgbWVyZ2VkIGpzb24gaW50byBwcmludHMgdG8gc3RhbmRhcmQgb3V0IGlmIG5v
dGhpbmcgaXMgcGFzc2VkIikKKworCisgICAgIyBwYXJzZV9hcmdzIHdpbGwgZXJyb3Igb24gb3Vy
IGxpc3Qgb2YgaW5jb21taW5nIEpTT04gZmlsZXMuLi4KKyAgICAob3B0cywgYXJncykgPSBwYXJz
ZXIucGFyc2Vfa25vd25fYXJncygpCisKKyAgICByZXN1bHQgPSBtZXJnZUpTT05zKGxpc3QobWFw
KHJlYWRKU09ORmlsZSwgYXJncykpKQorCisgICAgaWYgb3B0cy5vOgorICAgICAgICB3aXRoIG9w
ZW4ob3B0cy5vLCAndycpIGFzIGY6CisgICAgICAgICAgICBmLndyaXRlKGpzb24uZHVtcHMocmVz
dWx0KSkKKyAgICBlbHNlOgorICAgICAgICBwcmludChqc29uLmR1bXBzKHJlc3VsdCkpCisKKwor
aWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKKyAgICBtYWluKCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367807</attachid>
            <date>2019-04-19 11:23:24 -0700</date>
            <delta_ts>2019-04-19 14:06:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-197107-20190419142311.patch</filename>
            <type>text/plain</type>
            <size>4808</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NDMxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDk1Zjc0YTRmZTZlMTRmOWY0ZmFjMjRmNzYzYWNmYzEy
Zjk4MWJmMy4uODA4ZmU5MjBkYjcwZjJiM2ExNTNhY2M0ZWUyN2I3OTZkYTQ4MjZjMyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDE5LTA0LTE5ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBzY3JpcHQgdG8gbWVyZ2UgcnVuX2JlbmNobWFyayBqc29ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3MTA3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlIHNjcmlwdCBiYXNp
Y2FsbHkgcmVjdXJzaXZlbHkgZGVjZW5kcyB0aHJvdWdoIGFsbCBqc29uIG9iamVjdHMgdW50aWwg
aXQgZ2V0cworICAgICAgICB0byBhbiBhcnJheSBvciBKU09OIHByaW1pdGl2ZSBhbmQgY29uY2F0
cyBvciB0YWtlcyB0aGUgZmlyc3QgdmFsdWUsIHJlc3BlY3RpdmVseS4KKworICAgICAgICBUaGlz
IHBhdGNoIGFsc28gYWRkcyAreCBiaXRzIHRvIHRoZSBjb21wYXJlLXJlc3VsdHMgc2NyaXB0IHNv
IGl0CisgICAgICAgIGNhbiBiZSBydW4gZGlyZWN0bHkgZnJvbSB0aGUgY29tbWFuZCBsaW5lLiBJ
IGhhZCB0byBhZGQgYSBuZXcgbGluZSBzbyB0aGF0IHN2bgorICAgICAgICB3aWxsIGFjY2VwdCB0
aGUgY2hhbmdlLi4uIHlheSBzdm4hCisKKyAgICAgICAgKiBTY3JpcHRzL2NvbXBhcmUtcmVzdWx0
czoKKyAgICAgICAgKiBTY3JpcHRzL21lcmdlLXJlc3VsdC1qc29uczogQWRkZWQuCisgICAgICAg
IChyZWFkSlNPTkZpbGUpOgorICAgICAgICAoZGVlcEFwcGVuZCk6CisgICAgICAgIChtZXJnZUpT
T05zKToKKyAgICAgICAgKG1haW4pOgorCiAyMDE5LTA0LTE4ICBSeWFuIEhhZGRhZCAgPHJ5YW5o
YWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDQy
OTkuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2NvbXBhcmUtcmVzdWx0cyBiL1Rvb2xzL1Nj
cmlwdHMvY29tcGFyZS1yZXN1bHRzCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5k
ZXggMTViNTAxNzM2Mzk1ZGU0NTc5ZDE5ZmZkYjQyYzc1NTlhOWFmNTUzYy4uN2Y0M2I1M2M1ZDFi
Y2M1MGUxOTQ1ODRmZDBjMDMxYzZhYWI0NTc4NwotLS0gYS9Ub29scy9TY3JpcHRzL2NvbXBhcmUt
cmVzdWx0cworKysgYi9Ub29scy9TY3JpcHRzL2NvbXBhcmUtcmVzdWx0cwpAQCAtMjMzLDYgKzIz
Myw3IEBAIGRlZiBtYWluKCk6CiAgICAgICAgIHByaW50ICJVbmtub3duIGJlbmNobWFyayB0eXBl
IgogICAgICAgICBzeXMuZXhpdCgxKQogCisKIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAg
ICAgbWFpbigpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbWVyZ2UtcmVzdWx0LWpzb25z
IGIvVG9vbHMvU2NyaXB0cy9tZXJnZS1yZXN1bHQtanNvbnMKbmV3IGZpbGUgbW9kZSAxMDA3NTUK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWM5MzI5MzBl
OTRmMDFiMzA4YTVmMzg3ZGUyOGJkMjY0MmUzZWEwMAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1NjcmlwdHMvbWVyZ2UtcmVzdWx0LWpzb25zCkBAIC0wLDAgKzEsNzggQEAKKyMhL3Vzci9iaW4v
ZW52IHB5dGhvbiAtdQorCisjIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMK
KyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMgMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5j
LiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorIyAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorIyAgICAgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorIyBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQganNv
bgorCitkZWYgcmVhZEpTT05GaWxlKHBhdGgpOgorICAgIHdpdGggb3BlbihwYXRoLCAncicpIGFz
IGNvbnRlbnRzOgorICAgICAgICByZXR1cm4ganNvbi5sb2Fkcyhjb250ZW50cy5yZWFkKCkpCisK
KworZGVmIGRlZXBBcHBlbmQodmFsdWUxLCB2YWx1ZTIsIGN1cnJlbnRLZXk9Tm9uZSk6CisgICAg
aWYgdHlwZSh2YWx1ZTEpICE9IHR5cGUodmFsdWUyKToKKyAgICAgICAgcmFpc2UgVHlwZUVycm9y
KCJ2YWx1ZXMgaGF2ZSBkaWZmZXJlbnQgdHlwZXMgZm9yIGtleToge30sIHt9IGFuZCB7fSIuZm9y
bWF0KGN1cnJlbnRLZXksIHR5cGUodmFsdWUxKSwgdHlwZSh2YWx1ZTIpKSkKKyAgICBpZiB0eXBl
KHZhbHVlMSkgaXMgbGlzdDoKKyAgICAgICAgcmV0dXJuIHZhbHVlMSArIHZhbHVlMgorCisgICAg
cmVzdWx0ID0ge307CisgICAgZm9yIGtleSBpbiBsaXN0KHZhbHVlMS5rZXlzKCkpICsgbGlzdCh2
YWx1ZTIua2V5cygpKToKKyAgICAgICAgaWYga2V5IG5vdCBpbiByZXN1bHQ6CisgICAgICAgICAg
ICByZXN1bHRba2V5XSA9IGRlZXBBcHBlbmQodmFsdWUxW2tleV0sIHZhbHVlMltrZXldLCBrZXkp
CisgICAgcmV0dXJuIHJlc3VsdAorCitkZWYgbWVyZ2VKU09Ocyhqc29ucyk6CisgICAgaWYgbGVu
KGpzb25zKSA9PSAwOgorICAgICAgICByYWlzZSBUeXBlRXJyb3IoIm5vIGpzb25zIHRvIG1lcmdl
IikKKworICAgIGxhc3QgPSBqc29ucy5wb3AoKQorICAgIHJldHVybiByZWR1Y2UoZGVlcEFwcGVu
ZCwganNvbnMsIGxhc3QpCisKK2RlZiBtYWluKCk6CisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJn
dW1lbnRQYXJzZXIoZGVzY3JpcHRpb249Ik1lcmdlIHRoZSByZXN1bHRpbmcganNvbiBmaWxlcyBm
cm9tIG11bHRpcGxlIGludm9jYXRpb25zIG9mIHRoZSBydW5fYmVuY2htYXJrIHNjcmlwdC4iKQor
CisgICAgcGFyc2VyLmFkZF9hcmd1bWVudCgiLW8iLAorICAgICAgICB0eXBlPXN0ciwKKyAgICAg
ICAgcmVxdWlyZWQ9RmFsc2UsCisgICAgICAgIGhlbHA9IkZpbGUgdG8gcHV0IHRoZSBtZXJnZWQg
anNvbiBpbnRvIHByaW50cyB0byBzdGFuZGFyZCBvdXQgaWYgbm90aGluZyBpcyBwYXNzZWQiKQor
CisKKyAgICAjIHBhcnNlX2FyZ3Mgd2lsbCBlcnJvciBvbiBvdXIgbGlzdCBvZiBpbmNvbW1pbmcg
SlNPTiBmaWxlcy4uLgorICAgIChvcHRzLCBhcmdzKSA9IHBhcnNlci5wYXJzZV9rbm93bl9hcmdz
KCkKKworICAgIHJlc3VsdCA9IG1lcmdlSlNPTnMobGlzdChtYXAocmVhZEpTT05GaWxlLCBhcmdz
KSkpCisKKyAgICBpZiBvcHRzLm86CisgICAgICAgIHdpdGggb3BlbihvcHRzLm8sICd3JykgYXMg
ZjoKKyAgICAgICAgICAgIGYud3JpdGUoanNvbi5kdW1wcyhyZXN1bHQpKQorICAgIGVsc2U6Cisg
ICAgICAgIHByaW50KGpzb24uZHVtcHMocmVzdWx0KSkKKworCitpZiBfX25hbWVfXyA9PSAiX19t
YWluX18iOgorICAgIG1haW4oKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>367824</attachid>
            <date>2019-04-19 14:06:03 -0700</date>
            <delta_ts>2019-04-19 14:35:14 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-197107-20190419170551.patch</filename>
            <type>text/plain</type>
            <size>4898</size>
            <attacher name="Keith Miller">keith_miller</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ0NDMxCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDk1Zjc0YTRmZTZlMTRmOWY0ZmFjMjRmNzYzYWNmYzEy
Zjk4MWJmMy4uYTkxZGM0ZDkyNTJlZWQ4ZTA2MTNmZGRiZmRjODhmY2I3OTU2NGZkNyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0
IEBACisyMDE5LTA0LTE5ICBLZWl0aCBNaWxsZXIgIDxrZWl0aF9taWxsZXJAYXBwbGUuY29tPgor
CisgICAgICAgIEFkZCBzY3JpcHQgdG8gbWVyZ2UgcnVuX2JlbmNobWFyayBqc29ucworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk3MTA3CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTWljaGFlbCBTYWJvZmYuCisKKyAgICAgICAgVGhlIHNjcmlwdCBiYXNp
Y2FsbHkgcmVjdXJzaXZlbHkgZGVjZW5kcyB0aHJvdWdoIGFsbCBqc29uIG9iamVjdHMgdW50aWwg
aXQgZ2V0cworICAgICAgICB0byBhbiBhcnJheSBvciBKU09OIHByaW1pdGl2ZSBhbmQgY29uY2F0
cyBvciB0YWtlcyB0aGUgZmlyc3QgdmFsdWUsIHJlc3BlY3RpdmVseS4KKworICAgICAgICBUaGlz
IHBhdGNoIGFsc28gYWRkcyAreCBiaXRzIHRvIHRoZSBjb21wYXJlLXJlc3VsdHMgc2NyaXB0IHNv
IGl0CisgICAgICAgIGNhbiBiZSBydW4gZGlyZWN0bHkgZnJvbSB0aGUgY29tbWFuZCBsaW5lLiBJ
IGhhZCB0byBhZGQgYSBuZXcgbGluZSBzbyB0aGF0IHN2bgorICAgICAgICB3aWxsIGFjY2VwdCB0
aGUgY2hhbmdlLi4uIHlheSBzdm4hCisKKyAgICAgICAgKiBTY3JpcHRzL2NvbXBhcmUtcmVzdWx0
czoKKyAgICAgICAgKiBTY3JpcHRzL21lcmdlLXJlc3VsdC1qc29uczogQWRkZWQuCisgICAgICAg
IChyZWFkSlNPTkZpbGUpOgorICAgICAgICAoZGVlcEFwcGVuZCk6CisgICAgICAgIChtZXJnZUpT
T05zKToKKyAgICAgICAgKG1haW4pOgorCiAyMDE5LTA0LTE4ICBSeWFuIEhhZGRhZCAgPHJ5YW5o
YWRkYWRAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyNDQy
OTkuCmRpZmYgLS1naXQgYS9Ub29scy9TY3JpcHRzL2NvbXBhcmUtcmVzdWx0cyBiL1Rvb2xzL1Nj
cmlwdHMvY29tcGFyZS1yZXN1bHRzCm9sZCBtb2RlIDEwMDY0NApuZXcgbW9kZSAxMDA3NTUKaW5k
ZXggMTViNTAxNzM2Mzk1ZGU0NTc5ZDE5ZmZkYjQyYzc1NTlhOWFmNTUzYy4uN2Y0M2I1M2M1ZDFi
Y2M1MGUxOTQ1ODRmZDBjMDMxYzZhYWI0NTc4NwotLS0gYS9Ub29scy9TY3JpcHRzL2NvbXBhcmUt
cmVzdWx0cworKysgYi9Ub29scy9TY3JpcHRzL2NvbXBhcmUtcmVzdWx0cwpAQCAtMjMzLDYgKzIz
Myw3IEBAIGRlZiBtYWluKCk6CiAgICAgICAgIHByaW50ICJVbmtub3duIGJlbmNobWFyayB0eXBl
IgogICAgICAgICBzeXMuZXhpdCgxKQogCisKIGlmIF9fbmFtZV9fID09ICJfX21haW5fXyI6CiAg
ICAgbWFpbigpCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvbWVyZ2UtcmVzdWx0LWpzb25z
IGIvVG9vbHMvU2NyaXB0cy9tZXJnZS1yZXN1bHQtanNvbnMKbmV3IGZpbGUgbW9kZSAxMDA3NTUK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjIyNTVkYzVi
Y2Q0M2JhMTI2ZTBmNWIwMWE3ZTQzM2IxMGMyZWM1NQotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xz
L1NjcmlwdHMvbWVyZ2UtcmVzdWx0LWpzb25zCkBAIC0wLDAgKzEsODIgQEAKKyMhL3Vzci9iaW4v
ZW52IHB5dGhvbiAtdQorCisjIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMK
KyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMgMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5j
LiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorIyAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkg
YmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorIyAgICAgZnJv
bSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJV
VE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorIyBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YKKyMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IGFyZ3BhcnNlCitpbXBvcnQganNv
bgorCisKK2RlZiByZWFkSlNPTkZpbGUocGF0aCk6CisgICAgd2l0aCBvcGVuKHBhdGgsICdyJykg
YXMgY29udGVudHM6CisgICAgICAgIHJldHVybiBqc29uLmxvYWQoY29udGVudHMpCisKKworZGVm
IGRlZXBBcHBlbmQodmFsdWUxLCB2YWx1ZTIsIGN1cnJlbnRLZXk9Tm9uZSk6CisgICAgaWYgdHlw
ZSh2YWx1ZTEpICE9IHR5cGUodmFsdWUyKToKKyAgICAgICAgcmFpc2UgVHlwZUVycm9yKCJ2YWx1
ZXMgaGF2ZSBkaWZmZXJlbnQgdHlwZXMgZm9yIGtleToge30sIHt9IGFuZCB7fSIuZm9ybWF0KGN1
cnJlbnRLZXksIHR5cGUodmFsdWUxKSwgdHlwZSh2YWx1ZTIpKSkKKyAgICBpZiBpc2luc3RhbmNl
KHZhbHVlMSwgbGlzdCk6CisgICAgICAgIHJldHVybiB2YWx1ZTEgKyB2YWx1ZTIKKworICAgIHJl
c3VsdCA9IHt9OworICAgIGZvciBrZXkgaW4gKHZhbHVlMS5rZXlzKCkgKyB2YWx1ZTIua2V5cygp
KToKKyAgICAgICAgaWYga2V5IG5vdCBpbiByZXN1bHQ6CisgICAgICAgICAgICByZXN1bHRba2V5
XSA9IGRlZXBBcHBlbmQodmFsdWUxW2tleV0sIHZhbHVlMltrZXldLCBrZXkpCisgICAgcmV0dXJu
IHJlc3VsdAorCitkZWYgbWVyZ2VKU09Ocyhqc29ucyk6CisgICAgaWYgbGVuKGpzb25zKSA9PSAw
OgorICAgICAgICByYWlzZSBUeXBlRXJyb3IoIm5vIGpzb25zIHRvIG1lcmdlIikKKworICAgIGxh
c3QgPSBqc29ucy5wb3AoKQorICAgIHJldHVybiByZWR1Y2UoZGVlcEFwcGVuZCwganNvbnMsIGxh
c3QpCisKK2RlZiBtYWluKCk6CisgICAgcGFyc2VyID0gYXJncGFyc2UuQXJndW1lbnRQYXJzZXIo
ZGVzY3JpcHRpb249Ik1lcmdlIHRoZSByZXN1bHRpbmcganNvbiBmaWxlcyBmcm9tIG11bHRpcGxl
IGludm9jYXRpb25zIG9mIHRoZSBydW5fYmVuY2htYXJrIHNjcmlwdC4iKQorCisgICAgcGFyc2Vy
LmFkZF9hcmd1bWVudCgiLW8iLAorICAgICAgICB0eXBlPXN0ciwKKyAgICAgICAgcmVxdWlyZWQ9
RmFsc2UsCisgICAgICAgIGhlbHA9IkZpbGUgdG8gcHV0IHRoZSBtZXJnZWQganNvbiBpbnRvIHBy
aW50cyB0byBzdGFuZGFyZCBvdXQgaWYgbm90aGluZyBpcyBwYXNzZWQiKQorICAgIHBhcnNlci5h
ZGRfYXJndW1lbnQoImpzb25zIiwKKyAgICAgICAgdHlwZT1zdHIsCisgICAgICAgIG5hcmdzPScr
JywKKyAgICAgICAgaGVscD0iVGhlIGpzb24gZmlsZXMgdG8gYmUgbWVyZ2VkLiIpCisKKyAgICAj
IHBhcnNlX2FyZ3Mgd2lsbCBlcnJvciBvbiBvdXIgbGlzdCBvZiBpbmNvbW1pbmcgSlNPTiBmaWxl
cy4uLgorICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCisKKyAgICByZXN1bHQgPSBtZXJn
ZUpTT05zKGxpc3QobWFwKHJlYWRKU09ORmlsZSwgYXJncy5qc29ucykpKQorCisgICAgaWYgYXJn
cy5vOgorICAgICAgICB3aXRoIG9wZW4oYXJncy5vLCAndycpIGFzIGY6CisgICAgICAgICAgICBq
c29uLmR1bXAocmVzdWx0LCBmKQorICAgIGVsc2U6CisgICAgICAgIHByaW50KGpzb24uZHVtcHMo
cmVzdWx0KSkKKworCitpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgorICAgIG1haW4oKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>