<?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>152549</bug_id>
          
          <creation_ts>2015-12-24 12:50:14 -0800</creation_ts>
          <short_desc>Add validation of JSC options to catch typos.</short_desc>
          <delta_ts>2016-01-05 14:06:06 -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>JavaScriptCore</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>152751</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>ossy</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1151288</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-12-24 12:50:14 -0800</bug_when>
    <thetext>Patch coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151291</commentid>
    <comment_count>1</comment_count>
      <attachid>267904</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2015-12-24 12:59:17 -0800</bug_when>
    <thetext>Created attachment 267904
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152387</commentid>
    <comment_count>2</comment_count>
      <attachid>267904</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-01-04 10:58:04 -0800</bug_when>
    <thetext>Comment on attachment 267904
proposed patch.

Let&apos;s make validation the default behavior rather than an option. Having to  type in an option in order to validate your options begs the original question of typing options correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152403</commentid>
    <comment_count>3</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-01-04 11:16:20 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 267904 [details]
&gt; proposed patch.
&gt; 
&gt; Let&apos;s make validation the default behavior rather than an option. Having to 
&gt; type in an option in order to validate your options begs the original
&gt; question of typing options correctly.

There were arguments against doing this when we discussed this last.

I said that I didn&apos;t want this because I was worried about end users seeing crashes just because &quot;JSC_&quot; ended up at the start of some environment variable.

Michael said that he didn&apos;t want this because it would break his lldb workflow.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152416</commentid>
    <comment_count>4</comment_count>
    <who name="Keith Miller">keith_miller</who>
    <bug_when>2016-01-04 11:29:25 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (In reply to comment #2)
&gt; &gt; Comment on attachment 267904 [details]
&gt; &gt; proposed patch.
&gt; &gt; 
&gt; &gt; Let&apos;s make validation the default behavior rather than an option. Having to 
&gt; &gt; type in an option in order to validate your options begs the original
&gt; &gt; question of typing options correctly.
&gt; 
&gt; There were arguments against doing this when we discussed this last.
&gt; 
&gt; I said that I didn&apos;t want this because I was worried about end users seeing
&gt; crashes just because &quot;JSC_&quot; ended up at the start of some environment
&gt; variable.
&gt; 
&gt; Michael said that he didn&apos;t want this because it would break his lldb
&gt; workflow.

I disagree that Michael&apos;s issue is a valid argument against setting validate as the default as it&apos;s trivial to export JSC_validateOptions=false. It&apos;s also trivial to export JSC_validateOptions=true, however, so I&apos;m not sure it&apos;s necessary to have validation as the default either.

I agree with the first argument, although I think it should be noted that the crashes only really realistically be an issue with command line users of JSC. However, I still think that any frustration for end users is enough of an issue that we should not make validation the default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152523</commentid>
    <comment_count>5</comment_count>
      <attachid>267904</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2016-01-04 14:49:22 -0800</bug_when>
    <thetext>Comment on attachment 267904
proposed patch.

I just now read the email discussion of this feature. It wasn&apos;t mentioned in this patch, so I didn&apos;t think to look. I guess I have to remove my review since it was based on incomplete information.

Based on the email discussion, it seems like there&apos;s consensus that it&apos;s valuable to log incorrect options as a warning, and also consensus that it is harmful to crash. Also, as I said above, adding an option to validate options begs the original question.

So, now I think we should always log, and never crash.

What&apos;s the affirmative reason to crash?

A portion of the email discussion revealed that we have caused problems by just letting folks do what they feel in this area of code, without strict review, so I am applying stricter review now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152539</commentid>
    <comment_count>6</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-01-04 15:20:11 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Comment on attachment 267904 [details]
&gt; proposed patch.
&gt; 
&gt; I just now read the email discussion of this feature. It wasn&apos;t mentioned in
&gt; this patch, so I didn&apos;t think to look. I guess I have to remove my review
&gt; since it was based on incomplete information.
&gt; 
&gt; Based on the email discussion, it seems like there&apos;s consensus that it&apos;s
&gt; valuable to log incorrect options as a warning, and also consensus that it
&gt; is harmful to crash. Also, as I said above, adding an option to validate
&gt; options begs the original question.
&gt; 
&gt; So, now I think we should always log, and never crash.
&gt; 
&gt; What&apos;s the affirmative reason to crash?
&gt; 
&gt; A portion of the email discussion revealed that we have caused problems by
&gt; just letting folks do what they feel in this area of code, without strict
&gt; review, so I am applying stricter review now.

This patch already always logs the bad options.  The reason for wanting a mode that allows crashing is because logging will not always get one&apos;s attention.  Logging is not always readily available either.  For example, on iOS, I will have to remember to redirect dataLog and read the dataLog file for the error message in order to notice this.

Granted, there&apos;s is still a chance that one can have a typo when setting JSC_validateOptions, but it is much easier to get that right then to have to get all the other options right, especially when those options are the ones we will change from time to time depending on benchmarking / debugging needs.

Here&apos;s a use case scenario that will save me from losing a day&apos;s work (or more) due to potential typo in options that I need to set and change in the course of debugging hard bugs:

1. In my .profile file, I add an environment var JSC_validateOptions=true.
2. I do debugging like normal.

Note that I only need to check that there&apos;s no typo in my .profile change just once.  Once I&apos;ve set it correctly in my shell profile, I never have to worry about typos in options again.

For those whose workflows prefer checking their typing every time, they can look for the logging output.  For my type of workflow where I prefer to have change options depending on what the data tells me in the course of debugging, it&apos;s better to have a hard failure when I&apos;m not using the options I expected.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152742</commentid>
    <comment_count>7</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2016-01-05 09:49:28 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #5)
&gt; &gt; Comment on attachment 267904 [details]
&gt; &gt; proposed patch.
&gt; &gt; 
&gt; &gt; I just now read the email discussion of this feature. It wasn&apos;t mentioned in
&gt; &gt; this patch, so I didn&apos;t think to look. I guess I have to remove my review
&gt; &gt; since it was based on incomplete information.
&gt; &gt; 
&gt; &gt; Based on the email discussion, it seems like there&apos;s consensus that it&apos;s
&gt; &gt; valuable to log incorrect options as a warning, and also consensus that it
&gt; &gt; is harmful to crash. Also, as I said above, adding an option to validate
&gt; &gt; options begs the original question.
&gt; &gt; 
&gt; &gt; So, now I think we should always log, and never crash.
&gt; &gt; 
&gt; &gt; What&apos;s the affirmative reason to crash?
&gt; &gt; 
&gt; &gt; A portion of the email discussion revealed that we have caused problems by
&gt; &gt; just letting folks do what they feel in this area of code, without strict
&gt; &gt; review, so I am applying stricter review now.
&gt; 
&gt; This patch already always logs the bad options.  The reason for wanting a
&gt; mode that allows crashing is because logging will not always get one&apos;s
&gt; attention.  Logging is not always readily available either.  For example, on
&gt; iOS, I will have to remember to redirect dataLog and read the dataLog file
&gt; for the error message in order to notice this.
&gt; 
&gt; Granted, there&apos;s is still a chance that one can have a typo when setting
&gt; JSC_validateOptions, but it is much easier to get that right then to have to
&gt; get all the other options right, especially when those options are the ones
&gt; we will change from time to time depending on benchmarking / debugging needs.
&gt; 
&gt; Here&apos;s a use case scenario that will save me from losing a day&apos;s work (or
&gt; more) due to potential typo in options that I need to set and change in the
&gt; course of debugging hard bugs:
&gt; 
&gt; 1. In my .profile file, I add an environment var JSC_validateOptions=true.
&gt; 2. I do debugging like normal.
&gt; 
&gt; Note that I only need to check that there&apos;s no typo in my .profile change
&gt; just once.  Once I&apos;ve set it correctly in my shell profile, I never have to
&gt; worry about typos in options again.
&gt; 
&gt; For those whose workflows prefer checking their typing every time, they can
&gt; look for the logging output.  For my type of workflow where I prefer to have
&gt; change options depending on what the data tells me in the course of
&gt; debugging, it&apos;s better to have a hard failure when I&apos;m not using the options
&gt; I expected.

I agree with this argument. When I&apos;m debugging JSC, I always want a crash if I mistype
an option. I think it&apos;s also totally fine to have this behavior with the option being
off by default. Or, if we really want to get fancy, we could log mistyped options by
default and only crash when another option is set (maybe JSC_validateOptionsWithCrash)
that is off by default.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152763</commentid>
    <comment_count>8</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-01-05 11:04:07 -0800</bug_when>
    <thetext>Thanks for the review.  Landed in r194590: &lt;http://trac.webkit.org/r194590&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152826</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-01-05 12:36:39 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 152751</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152874</commentid>
    <comment_count>10</comment_count>
      <attachid>268320</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-01-05 13:50:51 -0800</bug_when>
    <thetext>Created attachment 268320
proposed patch for re-landing: no longer restricting where we put -- options on the command line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1152879</commentid>
    <comment_count>11</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2016-01-05 14:06:06 -0800</bug_when>
    <thetext>Thanks for the review.  The revised patch has been landed in r194606: &lt;http://trac.webkit.org/r194606&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267904</attachid>
            <date>2015-12-24 12:59:17 -0800</date>
            <delta_ts>2016-01-05 13:50:51 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-152549.patch</filename>
            <type>text/plain</type>
            <size>8663</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0NDE2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBA
CisyMDE1LTEyLTI0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBB
ZGQgdmFsaWRhdGlvbiBvZiBKU0Mgb3B0aW9ucyB0byBjYXRjaCB0eXBvcy4KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjU0OQorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDEuIElmIGEgSlNDX3h4eCBvcHRp
b24gaXMgZm91bmQgYW5kIHh4eCBpcyBub3QgYSB2YWxpZCBvcHRpb24sIHdlIHdpbGwgbm93IGxv
ZworICAgICAgICAgICBhbiBlcnJvciBtZXNzYWdlLgorICAgICAgICAyLiBUaGUganNjIGFwcCBp
cyBjb21tb25seSB1c2VkIGFzIGZvbGxvd3M6CisKKyAgICAgICAgICAgICAgICQganNjIFtqc2Mg
b3B0aW9uc10gW3NjcmlwdHNdCisgICAgIAorICAgICAgICAgICBQcmV2aW91c2x5LCB3ZSdsbCBj
b250aW51ZSB0byBwYXJzZSBmb3IgW2pzYyBvcHRpb25zXSBhZnRlciBbc2NyaXB0c10gaXMgc2Vl
bi4KKyAgICAgICAgICAgV2Ugd29uJ3QgZG8gdGhpcyBhbnltb3JlLiAgQW55IC0teHh4IGpzYyBv
cHRpb25zIG11c3QgcHJlY2VkZSB0aGUgW3NjcmlwdHNdCisgICAgICAgICAgIGFyZ3VtZW50cy4K
KworICAgICAgICAzLiBJZiBhIC0teHh4IGpzYyBvcHRpb24gaXMgc3BlY2lmaWVkLCBidXQgeHh4
IGlzIG5vdCBhIHZhbGlkIG9wdGlvbiwgd2Ugd2lsbAorICAgICAgICAgICBub3cgbG9nIGFuIGVy
cm9yIG1lc3NhZ2UuCisKKyAgICAgICAgNC4gQWRkZWQgSlNDX3ZhbGlkYXRlT3B0aW9ucywgd2hp
Y2ggaWYgc2V0IHRvIHRydWUgd2lsbCBjYXVzZSB0aGUgVk0gdG8gY3Jhc2ggaWYKKyAgICAgICAg
ICAgYW4gaW52YWxpZCBvcHRpb24gd2FzIHNlZW4gZHVyaW5nIG9wdGlvbnMgcGFyc2luZy4KKwor
ICAgICAgICAqIGpzYy5jcHA6CisgICAgICAgIChDb21tYW5kTGluZTo6cGFyc2VBcmd1bWVudHMp
OgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Ok9wdGlvbnM6
OmluaXRpYWxpemUpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9ucy5oOgorCiAyMDE1LTEyLTIz
ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBqc2MgQ0xJIHRv
b2wgY3Jhc2hlcyBvbiBFT0YuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkocmV2aXNpb24gMTk0
NDE1KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE4ODksODAgKzE4ODksOTQgQEAgdm9pZCBDb21tYW5kTGluZTo6cGFyc2VBcmd1bWVudHMoaW50
IGFyZwogICAgIGJvb2wgbmVlZFRvRHVtcE9wdGlvbnMgPSBmYWxzZTsKICAgICBib29sIG5lZWRU
b0V4aXQgPSBmYWxzZTsKIAorICAgIGJvb2wgZG9uZVdpdGhKU0NPcHRpb25zID0gZmFsc2U7Cisg
ICAgYm9vbCBoYXNCYWRKU0NPcHRpb25zID0gZmFsc2U7CiAgICAgZm9yICg7IGkgPCBhcmdjOyAr
K2kpIHsKICAgICAgICAgY29uc3QgY2hhciogYXJnID0gYXJndltpXTsKLSAgICAgICAgaWYgKCFz
dHJjbXAoYXJnLCAiLWYiKSkgewotICAgICAgICAgICAgaWYgKCsraSA9PSBhcmdjKQotICAgICAg
ICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoKTsKLSAgICAgICAgICAgIG1fc2NyaXB0cy5h
cHBlbmQoU2NyaXB0KHRydWUsIGFyZ3ZbaV0pKTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAg
ICAgICB9Ci0gICAgICAgIGlmICghc3RyY21wKGFyZywgIi1lIikpIHsKLSAgICAgICAgICAgIGlm
ICgrK2kgPT0gYXJnYykKLSAgICAgICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KCk7Ci0g
ICAgICAgICAgICBtX3NjcmlwdHMuYXBwZW5kKFNjcmlwdChmYWxzZSwgYXJndltpXSkpOwotICAg
ICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKCFzdHJjbXAoYXJnLCAi
LWkiKSkgewotICAgICAgICAgICAgbV9pbnRlcmFjdGl2ZSA9IHRydWU7Ci0gICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXN0cmNtcChhcmcsICItZCIpKSB7Ci0g
ICAgICAgICAgICBtX2R1bXAgPSB0cnVlOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
IH0KLSAgICAgICAgaWYgKCFzdHJjbXAoYXJnLCAiLXAiKSkgewotICAgICAgICAgICAgaWYgKCsr
aSA9PSBhcmdjKQotICAgICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoKTsKLSAgICAg
ICAgICAgIG1fcHJvZmlsZSA9IHRydWU7Ci0gICAgICAgICAgICBtX3Byb2ZpbGVyT3V0cHV0ID0g
YXJndltpXTsKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGlmICgh
c3RyY21wKGFyZywgIi1tIikpIHsKLSAgICAgICAgICAgIG1fbW9kdWxlID0gdHJ1ZTsKLSAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICB9Ci0gICAgICAgIGlmICghc3RyY21wKGFyZywgIi1z
IikpIHsKKworICAgICAgICBpZiAoIWRvbmVXaXRoSlNDT3B0aW9ucykgeworICAgICAgICAgICAg
aWYgKCFzdHJjbXAoYXJnLCAiLWYiKSkgeworICAgICAgICAgICAgICAgIGlmICgrK2kgPT0gYXJn
YykKKyAgICAgICAgICAgICAgICAgICAgcHJpbnRVc2FnZVN0YXRlbWVudCgpOworICAgICAgICAg
ICAgICAgIG1fc2NyaXB0cy5hcHBlbmQoU2NyaXB0KHRydWUsIGFyZ3ZbaV0pKTsKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghc3RyY21w
KGFyZywgIi1lIikpIHsKKyAgICAgICAgICAgICAgICBpZiAoKytpID09IGFyZ2MpCisgICAgICAg
ICAgICAgICAgICAgIHByaW50VXNhZ2VTdGF0ZW1lbnQoKTsKKyAgICAgICAgICAgICAgICBtX3Nj
cmlwdHMuYXBwZW5kKFNjcmlwdChmYWxzZSwgYXJndltpXSkpOworICAgICAgICAgICAgICAgIGNv
bnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFzdHJjbXAoYXJnLCAiLWki
KSkgeworICAgICAgICAgICAgICAgIG1faW50ZXJhY3RpdmUgPSB0cnVlOworICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFzdHJjbXAoYXJn
LCAiLWQiKSkgeworICAgICAgICAgICAgICAgIG1fZHVtcCA9IHRydWU7CisgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXN0cmNtcChhcmcs
ICItcCIpKSB7CisgICAgICAgICAgICAgICAgaWYgKCsraSA9PSBhcmdjKQorICAgICAgICAgICAg
ICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KCk7CisgICAgICAgICAgICAgICAgbV9wcm9maWxl
ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBtX3Byb2ZpbGVyT3V0cHV0ID0gYXJndltpXTsKKyAg
ICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICgh
c3RyY21wKGFyZywgIi1tIikpIHsKKyAgICAgICAgICAgICAgICBtX21vZHVsZSA9IHRydWU7Cisg
ICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAo
IXN0cmNtcChhcmcsICItcyIpKSB7CiAjaWYgSEFWRShTSUdOQUxfSCkKLSAgICAgICAgICAgIHNp
Z25hbChTSUdJTEwsIF9leGl0KTsKLSAgICAgICAgICAgIHNpZ25hbChTSUdGUEUsIF9leGl0KTsK
LSAgICAgICAgICAgIHNpZ25hbChTSUdCVVMsIF9leGl0KTsKLSAgICAgICAgICAgIHNpZ25hbChT
SUdTRUdWLCBfZXhpdCk7CisgICAgICAgICAgICAgICAgc2lnbmFsKFNJR0lMTCwgX2V4aXQpOwor
ICAgICAgICAgICAgICAgIHNpZ25hbChTSUdGUEUsIF9leGl0KTsKKyAgICAgICAgICAgICAgICBz
aWduYWwoU0lHQlVTLCBfZXhpdCk7CisgICAgICAgICAgICAgICAgc2lnbmFsKFNJR1NFR1YsIF9l
eGl0KTsKICNlbmRpZgotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKCFzdHJjbXAoYXJnLCAiLXgiKSkgewotICAgICAgICAgICAgbV9leGl0Q29kZSA9IHRydWU7
Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoIXN0cmNtcChh
cmcsICItLSIpKSB7Ci0gICAgICAgICAgICArK2k7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAg
ICAgfQotICAgICAgICBpZiAoIXN0cmNtcChhcmcsICItaCIpIHx8ICFzdHJjbXAoYXJnLCAiLS1o
ZWxwIikpCi0gICAgICAgICAgICBwcmludFVzYWdlU3RhdGVtZW50KHRydWUpOworICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFzdHJjbXAo
YXJnLCAiLXgiKSkgeworICAgICAgICAgICAgICAgIG1fZXhpdENvZGUgPSB0cnVlOworICAgICAg
ICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKCFzdHJj
bXAoYXJnLCAiLS0iKSkgeworICAgICAgICAgICAgICAgICsraTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghc3RyY21wKGFyZywgIi1oIikg
fHwgIXN0cmNtcChhcmcsICItLWhlbHAiKSkKKyAgICAgICAgICAgICAgICBwcmludFVzYWdlU3Rh
dGVtZW50KHRydWUpOworCisgICAgICAgICAgICBpZiAoIXN0cmNtcChhcmcsICItLW9wdGlvbnMi
KSkgeworICAgICAgICAgICAgICAgIG5lZWRUb0R1bXBPcHRpb25zID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICBuZWVkVG9FeGl0ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghc3RyY21wKGFyZywgIi0tZHVtcE9wdGlvbnMi
KSkgeworICAgICAgICAgICAgICAgIG5lZWRUb0R1bXBPcHRpb25zID0gdHJ1ZTsKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLy8gU2VlIGlm
IHRoZSAtLSBvcHRpb24gaXMgYSBKU0MgVk0gb3B0aW9uLgorICAgICAgICAgICAgaWYgKHN0cnN0
cihhcmcsICItLSIpID09IGFyZykgeworICAgICAgICAgICAgICAgIGlmICghSlNDOjpPcHRpb25z
OjpzZXRPcHRpb24oJmFyZ1syXSkpIHsKKyAgICAgICAgICAgICAgICAgICAgaGFzQmFkSlNDT3B0
aW9ucyA9IHRydWU7CisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2coIkVSUk9SOiBpbnZhbGlk
IG9wdGlvbjogIiwgYXJnLCAiXG4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAg
ICAgY29udGludWU7CisgICAgICAgICAgICB9CiAKLSAgICAgICAgaWYgKCFzdHJjbXAoYXJnLCAi
LS1vcHRpb25zIikpIHsKLSAgICAgICAgICAgIG5lZWRUb0R1bXBPcHRpb25zID0gdHJ1ZTsKLSAg
ICAgICAgICAgIG5lZWRUb0V4aXQgPSB0cnVlOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKCFzdHJjbXAoYXJnLCAiLS1kdW1wT3B0aW9ucyIpKSB7Ci0gICAg
ICAgICAgICBuZWVkVG9EdW1wT3B0aW9ucyA9IHRydWU7Ci0gICAgICAgICAgICBjb250aW51ZTsK
LSAgICAgICAgfQorICAgICAgICAgICAgZG9uZVdpdGhKU0NPcHRpb25zID0gdHJ1ZTsKIAotICAg
ICAgICAvLyBTZWUgaWYgdGhlIC0tIG9wdGlvbiBpcyBhIEpTQyBWTSBvcHRpb24uCi0gICAgICAg
IGlmIChzdHJzdHIoYXJnLCAiLS0iKSA9PSBhcmcgJiYgSlNDOjpPcHRpb25zOjpzZXRPcHRpb24o
JmFyZ1syXSkpIHsKLSAgICAgICAgICAgIC8vIFRoZSBhcmcgd2FzIHJlY29nbml6ZWQgYXMgYSBW
TSBvcHRpb24gYW5kIGhhcyBiZWVuIHBhcnNlZC4KLSAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBK
dXN0IGNvbnRpbnVlIHdpdGggdGhlIG5leHQgYXJnLiAKLSAgICAgICAgfQorICAgICAgICB9IC8v
ICFkb25lV2l0aEpTQ09wdGlvbnMKIAogICAgICAgICAvLyBUaGlzIGFyZyBpcyBub3QgcmVjb2du
aXplZCBieSB0aGUgVk0gbm9yIGJ5IGpzYy4gUGFzcyBpdCBvbiB0byB0aGUKICAgICAgICAgLy8g
c2NyaXB0LgogICAgICAgICBtX3NjcmlwdHMuYXBwZW5kKFNjcmlwdCh0cnVlLCBhcmd2W2ldKSk7
CiAgICAgfQogCisgICAgaWYgKGhhc0JhZEpTQ09wdGlvbnMgJiYgSlNDOjpPcHRpb25zOjp2YWxp
ZGF0ZU9wdGlvbnMoKSkKKyAgICAgICAgQ1JBU0goKTsKKwogICAgIGlmIChtX3NjcmlwdHMuaXNF
bXB0eSgpKQogICAgICAgICBtX2ludGVyYWN0aXZlID0gdHJ1ZTsKIApJbmRleDogU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0ph
dmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAJKHJldmlzaW9uIDE5NDQxNSkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0zOSw2ICszOSwxMCBAQAogI2luY2x1ZGUgPHd0Zi9TdHJpbmdFeHRyYXMuaD4KICNpbmNsdWRl
IDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNpbmNs
dWRlIDxjcnRfZXh0ZXJucy5oPgorI2VuZGlmCisKICNpZiBPUyhXSU5ET1dTKQogI2luY2x1ZGUg
Ik1hY3JvQXNzZW1ibGVyWDg2LmgiCiAjZW5kaWYKQEAgLTM2MSwxMCArMzY1LDI1IEBAIHZvaWQg
T3B0aW9uczo6aW5pdGlhbGl6ZSgpCiAgICAgICAgICAgICAvLyBBbGxvdyBlbnZpcm9ubWVudCB2
YXJzIHRvIG92ZXJyaWRlIG9wdGlvbnMgaWYgYXBwbGljYWJsZS4KICAgICAgICAgICAgIC8vIFRo
ZSBldm4gdmFyIHNob3VsZCBiZSB0aGUgbmFtZSBvZiB0aGUgb3B0aW9uIHByZWZpeGVkIHdpdGgK
ICAgICAgICAgICAgIC8vICJKU0NfIi4KKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICAgICAgICAg
IGJvb2wgaGFzQmFkT3B0aW9ucyA9IGZhbHNlOworICAgICAgICAgICAgZm9yIChjaGFyKiogZW52
cCA9ICpfTlNHZXRFbnZpcm9uKCk7ICplbnZwOyBlbnZwKyspIHsKKyAgICAgICAgICAgICAgICBj
b25zdCBjaGFyKiBlbnYgPSAqZW52cDsKKyAgICAgICAgICAgICAgICBpZiAoIXN0cm5jbXAoIkpT
Q18iLCBlbnYsIDQpKSB7CisgICAgICAgICAgICAgICAgICAgIGlmICghT3B0aW9uczo6c2V0T3B0
aW9uKCZlbnZbNF0pKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBkYXRhTG9nKCJFUlJPUjog
aW52YWxpZCBvcHRpb246ICIsICplbnZwLCAiXG4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGhhc0JhZE9wdGlvbnMgPSB0cnVlOworICAgICAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYgKGhhc0JhZE9wdGlvbnMgJiYg
T3B0aW9uczo6dmFsaWRhdGVPcHRpb25zKCkpCisgICAgICAgICAgICAgICAgQ1JBU0goKTsKKyNl
bHNlIC8vIFBMQVRGT1JNKENPQ09BKQogI2RlZmluZSBGT1JfRUFDSF9PUFRJT04odHlwZV8sIG5h
bWVfLCBkZWZhdWx0VmFsdWVfLCBkZXNjcmlwdGlvbl8pICAgICAgXAogICAgICAgICAgICAgb3Zl
cnJpZGVPcHRpb25XaXRoSGV1cmlzdGljKG5hbWVfKCksICJKU0NfIiAjbmFtZV8pOwogICAgICAg
ICAgICAgSlNDX09QVElPTlMoRk9SX0VBQ0hfT1BUSU9OKQogI3VuZGVmIEZPUl9FQUNIX09QVElP
TgorI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiAjaWYgMAogICAgICAgICAgICAgICAgIDsg
Ly8gRGVjb25mdXNlIGVkaXRvcnMgdGhhdCBkbyBhdXRvIGluZGVudGF0aW9uCkluZGV4OiBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCShyZXZpc2lvbiAxOTQ0MTUpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgJKHdvcmtpbmcgY29weSkKQEAg
LTEwMiw2ICsxMDIsNyBAQCB0eXBlZGVmIE9wdGlvblJhbmdlIG9wdGlvblJhbmdlOwogdHlwZWRl
ZiBjb25zdCBjaGFyKiBvcHRpb25TdHJpbmc7CiAKICNkZWZpbmUgSlNDX09QVElPTlModikgXAor
ICAgIHYoYm9vbCwgdmFsaWRhdGVPcHRpb25zLCBmYWxzZSwgImNyYXNoZXMgaWYgbWlzLXR5cGVk
IEpTQyBvcHRpb25zIHdlcmUgcGFzc2VkIHRvIHRoZSBWTSIpIFwKICAgICB2KHVuc2lnbmVkLCBk
dW1wT3B0aW9ucywgMCwgImR1bXBzIEpTQyBvcHRpb25zICgwID0gTm9uZSwgMSA9IE92ZXJyaWRk
ZW4gb25seSwgMiA9IEFsbCwgMyA9IFZlcmJvc2UpIikgXAogICAgIFwKICAgICB2KGJvb2wsIHVz
ZUxMSW50LCAgdHJ1ZSwgImFsbG93cyB0aGUgTExJTlQgdG8gYmUgdXNlZCBpZiB0cnVlIikgXAo=
</data>
<flag name="review"
          id="292884"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>268320</attachid>
            <date>2016-01-05 13:50:51 -0800</date>
            <delta_ts>2016-01-05 13:56:16 -0800</delta_ts>
            <desc>proposed patch for re-landing: no longer restricting where we put -- options on the command line.</desc>
            <filename>bug-152549b.patch</filename>
            <type>text/plain</type>
            <size>4989</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTk0NjAxKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI3IEBA
CisyMDE1LTEyLTI0ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBS
ZS1sYW5kaW5nOiBBZGQgdmFsaWRhdGlvbiBvZiBKU0Mgb3B0aW9ucyB0byBjYXRjaCB0eXBvcy4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MjU0OQor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIDEuIElmIGEg
SlNDX3h4eCBvcHRpb24gaXMgZm91bmQgYW5kIHh4eCBpcyBub3QgYSB2YWxpZCBvcHRpb24sIHdl
IHdpbGwgbm93IGxvZworICAgICAgICAgICBhbiBlcnJvciBtZXNzYWdlLgorICAgICAgICAyLiBJ
ZiBhIC0teHh4IGpzYyBvcHRpb24gaXMgc3BlY2lmaWVkLCBidXQgeHh4IGlzIG5vdCBhIHZhbGlk
IG9wdGlvbiwgd2Ugd2lsbAorICAgICAgICAgICBub3cgbG9nIGFuIGVycm9yIG1lc3NhZ2UuCisg
ICAgICAgIDMuIEFkZGVkIEpTQ192YWxpZGF0ZU9wdGlvbnMsIHdoaWNoIGlmIHNldCB0byB0cnVl
IHdpbGwgY2F1c2UgdGhlIFZNIHRvIGNyYXNoIGlmCisgICAgICAgICAgIGFuIGludmFsaWQgb3B0
aW9uIHdhcyBzZWVuIGR1cmluZyBvcHRpb25zIHBhcnNpbmcuCisKKyAgICAgICAgSW4gdGhpcyB2
ZXJzaW9uIGZvciByZS1sYW5kaW5nLCBJIHJlbW92ZWQgdGhlIGNoYW5nZSB3aGVyZSBJIGRpc2Fs
bG93ZWQgLS0gb3B0aW9ucworICAgICAgICBhZnRlciB0aGUgc2NyaXB0IG5hbWUuICBBcHBhcmVu
dGx5LCB3ZSBoYXZlIHNvbWUgdGVzdCBoYXJuZXNzZXMgdGhhdCBkbyBhcHBlbmQgdGhlCisgICAg
ICAgIC0tIG9wdGlvbnMgYWZ0ZXIgdGhlIHNjcmlwdCBuYW1lLgorCisgICAgICAgICoganNjLmNw
cDoKKyAgICAgICAgKENvbW1hbmRMaW5lOjpwYXJzZUFyZ3VtZW50cyk6CisgICAgICAgICogcnVu
dGltZS9PcHRpb25zLmNwcDoKKyAgICAgICAgKEpTQzo6T3B0aW9uczo6aW5pdGlhbGl6ZSk6Cisg
ICAgICAgICogcnVudGltZS9PcHRpb25zLmg6CisKIDIwMTYtMDEtMDUgIENvbW1pdCBRdWV1ZSAg
PGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHIxOTQ1OTAuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvanNjLmNwcAkocmV2aXNpb24gMTk0NjAxKQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pzYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4ODks
NiArMTg4OSw3IEBAIHZvaWQgQ29tbWFuZExpbmU6OnBhcnNlQXJndW1lbnRzKGludCBhcmcKICAg
ICBib29sIG5lZWRUb0R1bXBPcHRpb25zID0gZmFsc2U7CiAgICAgYm9vbCBuZWVkVG9FeGl0ID0g
ZmFsc2U7CiAKKyAgICBib29sIGhhc0JhZEpTQ09wdGlvbnMgPSBmYWxzZTsKICAgICBmb3IgKDsg
aSA8IGFyZ2M7ICsraSkgewogICAgICAgICBjb25zdCBjaGFyKiBhcmcgPSBhcmd2W2ldOwogICAg
ICAgICBpZiAoIXN0cmNtcChhcmcsICItZiIpKSB7CkBAIC0xOTUzLDkgKzE5NTQsMTIgQEAgdm9p
ZCBDb21tYW5kTGluZTo6cGFyc2VBcmd1bWVudHMoaW50IGFyZwogICAgICAgICB9CiAKICAgICAg
ICAgLy8gU2VlIGlmIHRoZSAtLSBvcHRpb24gaXMgYSBKU0MgVk0gb3B0aW9uLgotICAgICAgICBp
ZiAoc3Ryc3RyKGFyZywgIi0tIikgPT0gYXJnICYmIEpTQzo6T3B0aW9uczo6c2V0T3B0aW9uKCZh
cmdbMl0pKSB7Ci0gICAgICAgICAgICAvLyBUaGUgYXJnIHdhcyByZWNvZ25pemVkIGFzIGEgVk0g
b3B0aW9uIGFuZCBoYXMgYmVlbiBwYXJzZWQuCi0gICAgICAgICAgICBjb250aW51ZTsgLy8gSnVz
dCBjb250aW51ZSB3aXRoIHRoZSBuZXh0IGFyZy4gCisgICAgICAgIGlmIChzdHJzdHIoYXJnLCAi
LS0iKSA9PSBhcmcpIHsKKyAgICAgICAgICAgIGlmICghSlNDOjpPcHRpb25zOjpzZXRPcHRpb24o
JmFyZ1syXSkpIHsKKyAgICAgICAgICAgICAgICBoYXNCYWRKU0NPcHRpb25zID0gdHJ1ZTsKKyAg
ICAgICAgICAgICAgICBkYXRhTG9nKCJFUlJPUjogaW52YWxpZCBvcHRpb246ICIsIGFyZywgIlxu
Iik7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQogCiAg
ICAgICAgIC8vIFRoaXMgYXJnIGlzIG5vdCByZWNvZ25pemVkIGJ5IHRoZSBWTSBub3IgYnkganNj
LiBQYXNzIGl0IG9uIHRvIHRoZQpAQCAtMTk2Myw2ICsxOTY3LDkgQEAgdm9pZCBDb21tYW5kTGlu
ZTo6cGFyc2VBcmd1bWVudHMoaW50IGFyZwogICAgICAgICBtX3NjcmlwdHMuYXBwZW5kKFNjcmlw
dCh0cnVlLCBhcmd2W2ldKSk7CiAgICAgfQogCisgICAgaWYgKGhhc0JhZEpTQ09wdGlvbnMgJiYg
SlNDOjpPcHRpb25zOjp2YWxpZGF0ZU9wdGlvbnMoKSkKKyAgICAgICAgQ1JBU0goKTsKKwogICAg
IGlmIChtX3NjcmlwdHMuaXNFbXB0eSgpKQogICAgICAgICBtX2ludGVyYWN0aXZlID0gdHJ1ZTsK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5jcHAJKHJldmlz
aW9uIDE5NDYwMSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0zOSw2ICszOSwxMCBAQAogI2luY2x1ZGUgPHd0Zi9TdHJpbmdF
eHRyYXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdCdWlsZGVyLmg+CiAKKyNpZiBQTEFU
Rk9STShDT0NPQSkKKyNpbmNsdWRlIDxjcnRfZXh0ZXJucy5oPgorI2VuZGlmCisKICNpZiBPUyhX
SU5ET1dTKQogI2luY2x1ZGUgIk1hY3JvQXNzZW1ibGVyWDg2LmgiCiAjZW5kaWYKQEAgLTM3Niwx
MCArMzgwLDI1IEBAIHZvaWQgT3B0aW9uczo6aW5pdGlhbGl6ZSgpCiAgICAgICAgICAgICAvLyBB
bGxvdyBlbnZpcm9ubWVudCB2YXJzIHRvIG92ZXJyaWRlIG9wdGlvbnMgaWYgYXBwbGljYWJsZS4K
ICAgICAgICAgICAgIC8vIFRoZSBldm4gdmFyIHNob3VsZCBiZSB0aGUgbmFtZSBvZiB0aGUgb3B0
aW9uIHByZWZpeGVkIHdpdGgKICAgICAgICAgICAgIC8vICJKU0NfIi4KKyNpZiBQTEFURk9STShD
T0NPQSkKKyAgICAgICAgICAgIGJvb2wgaGFzQmFkT3B0aW9ucyA9IGZhbHNlOworICAgICAgICAg
ICAgZm9yIChjaGFyKiogZW52cCA9ICpfTlNHZXRFbnZpcm9uKCk7ICplbnZwOyBlbnZwKyspIHsK
KyAgICAgICAgICAgICAgICBjb25zdCBjaGFyKiBlbnYgPSAqZW52cDsKKyAgICAgICAgICAgICAg
ICBpZiAoIXN0cm5jbXAoIkpTQ18iLCBlbnYsIDQpKSB7CisgICAgICAgICAgICAgICAgICAgIGlm
ICghT3B0aW9uczo6c2V0T3B0aW9uKCZlbnZbNF0pKSB7CisgICAgICAgICAgICAgICAgICAgICAg
ICBkYXRhTG9nKCJFUlJPUjogaW52YWxpZCBvcHRpb246ICIsICplbnZwLCAiXG4iKTsKKyAgICAg
ICAgICAgICAgICAgICAgICAgIGhhc0JhZE9wdGlvbnMgPSB0cnVlOworICAgICAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorICAgICAgICAgICAgaWYg
KGhhc0JhZE9wdGlvbnMgJiYgT3B0aW9uczo6dmFsaWRhdGVPcHRpb25zKCkpCisgICAgICAgICAg
ICAgICAgQ1JBU0goKTsKKyNlbHNlIC8vIFBMQVRGT1JNKENPQ09BKQogI2RlZmluZSBGT1JfRUFD
SF9PUFRJT04odHlwZV8sIG5hbWVfLCBkZWZhdWx0VmFsdWVfLCBkZXNjcmlwdGlvbl8pICAgICAg
XAogICAgICAgICAgICAgb3ZlcnJpZGVPcHRpb25XaXRoSGV1cmlzdGljKG5hbWVfKCksICJKU0Nf
IiAjbmFtZV8pOwogICAgICAgICAgICAgSlNDX09QVElPTlMoRk9SX0VBQ0hfT1BUSU9OKQogI3Vu
ZGVmIEZPUl9FQUNIX09QVElPTgorI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQogCiAjZGVmaW5l
IEZPUl9FQUNIX09QVElPTihhbGlhc2VkTmFtZV8sIHVuYWxpYXNlZE5hbWVfLCBlcXVpdmFsZW5j
ZV8pIFwKICAgICAgICAgICAgIG92ZXJyaWRlQWxpYXNlZE9wdGlvbldpdGhIZXVyaXN0aWMoIkpT
Q18iICNhbGlhc2VkTmFtZV8pOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
T3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09w
dGlvbnMuaAkocmV2aXNpb24gMTk0NjAxKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDIsNiArMTAyLDcgQEAgdHlwZWRlZiBP
cHRpb25SYW5nZSBvcHRpb25SYW5nZTsKIHR5cGVkZWYgY29uc3QgY2hhciogb3B0aW9uU3RyaW5n
OwogCiAjZGVmaW5lIEpTQ19PUFRJT05TKHYpIFwKKyAgICB2KGJvb2wsIHZhbGlkYXRlT3B0aW9u
cywgZmFsc2UsICJjcmFzaGVzIGlmIG1pcy10eXBlZCBKU0Mgb3B0aW9ucyB3ZXJlIHBhc3NlZCB0
byB0aGUgVk0iKSBcCiAgICAgdih1bnNpZ25lZCwgZHVtcE9wdGlvbnMsIDAsICJkdW1wcyBKU0Mg
b3B0aW9ucyAoMCA9IE5vbmUsIDEgPSBPdmVycmlkZGVuIG9ubHksIDIgPSBBbGwsIDMgPSBWZXJi
b3NlKSIpIFwKICAgICBcCiAgICAgdihib29sLCB1c2VMTEludCwgIHRydWUsICJhbGxvd3MgdGhl
IExMSU5UIHRvIGJlIHVzZWQgaWYgdHJ1ZSIpIFwK
</data>
<flag name="review"
          id="293261"
          type_id="1"
          status="+"
          setter="benjamin"
    />
          </attachment>
      

    </bug>

</bugzilla>