<?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>205787</bug_id>
          
          <creation_ts>2020-01-05 23:40:42 -0800</creation_ts>
          <short_desc>Add --force-optimization-level option to Tools/Scripts/set-webkit-configuration.</short_desc>
          <delta_ts>2022-02-18 13:03:44 -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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>236859</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>ap</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>jbedard</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1602955</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-01-05 23:40:42 -0800</bug_when>
    <thetext>Usage:
    --forceOpt=&lt;opt&gt;        Force optimization: O3, O2, O1, O0, Os, Ofast, or none

This can be used to force debug builds to be built with a higher level optimization so that tests can run to completion faster.

It can also be useful as a simple way to force release builds to be built with different optimization levels for performance comparison.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1602956</commentid>
    <comment_count>1</comment_count>
      <attachid>386817</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-01-05 23:48:54 -0800</bug_when>
    <thetext>Created attachment 386817
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603092</commentid>
    <comment_count>2</comment_count>
      <attachid>386817</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2020-01-06 09:37:12 -0800</bug_when>
    <thetext>Comment on attachment 386817
proposed patch.

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

&gt; Tools/ChangeLog:9
&gt; +            --forceOpt=&lt;opt&gt;    Force optimization: O3, O2, O1, O0, Os, Ofast, or none

I don&apos;t see a reason to abbreviate &quot;optimization level&quot;.

&gt; Tools/ChangeLog:12
&gt; +        This can be used to force debug builds to be built with a higher level optimization
&gt; +        so that tests can run to completion faster.

This should just be -Og by default, anywhere where it&apos;s supported. I think that we have a bug about this somewhere, but can&apos;t find it now.

&gt; Tools/ChangeLog:15
&gt; +        It can also be useful as a simple way to force release builds to be built with
&gt; +        different optimization levels for performance comparison.

Not sure if this is useful enough to have a feature. Modifying multiple xcconfigs is annoying, but seems OK if we do that once in a decade or so.

&gt; Tools/Scripts/webkitdirs.pm:885
&gt; +    push @options, (&quot;-xcconfig&quot;, baseProductDir() . &quot;/force-opt.xcconfig&quot;) if $forceOptIsEnabled;

Would it be enough to have the option on command line, like WK_LTO_MODE below?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603118</commentid>
    <comment_count>3</comment_count>
      <attachid>386817</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-01-06 10:33:18 -0800</bug_when>
    <thetext>Comment on attachment 386817
proposed patch.

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

&gt;&gt; Tools/ChangeLog:9
&gt;&gt; +            --forceOpt=&lt;opt&gt;    Force optimization: O3, O2, O1, O0, Os, Ofast, or none
&gt; 
&gt; I don&apos;t see a reason to abbreviate &quot;optimization level&quot;.

=(

&gt;&gt; Tools/ChangeLog:12
&gt;&gt; +        so that tests can run to completion faster.
&gt; 
&gt; This should just be -Og by default, anywhere where it&apos;s supported. I think that we have a bug about this somewhere, but can&apos;t find it now.

Debug builds are currently built with -O0 by default.  This patch does not affect that.

&gt;&gt; Tools/ChangeLog:15
&gt;&gt; +        different optimization levels for performance comparison.
&gt; 
&gt; Not sure if this is useful enough to have a feature. Modifying multiple xcconfigs is annoying, but seems OK if we do that once in a decade or so.

I don&apos;t expect it to be commonly used.  This is just a side benefit of having this facility.  With this, we can now do a quick perf comparison test without having to jump through the hoops of modifying al the xcconfigs.  If it does turn out to be profitable, we can then justify invest in modifying the xcconfigs.

&gt;&gt; Tools/Scripts/webkitdirs.pm:885
&gt;&gt; +    push @options, (&quot;-xcconfig&quot;, baseProductDir() . &quot;/force-opt.xcconfig&quot;) if $forceOptIsEnabled;
&gt; 
&gt; Would it be enough to have the option on command line, like WK_LTO_MODE below?

yes, that appears to work.  I&apos;ll redo the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603154</commentid>
    <comment_count>4</comment_count>
      <attachid>386866</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-01-06 11:15:18 -0800</bug_when>
    <thetext>Created attachment 386866
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603191</commentid>
    <comment_count>5</comment_count>
      <attachid>386817</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-01-06 12:00:28 -0800</bug_when>
    <thetext>Comment on attachment 386817
proposed patch.

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

&gt;&gt;&gt; Tools/ChangeLog:12
&gt;&gt;&gt; +        so that tests can run to completion faster.
&gt;&gt; 
&gt;&gt; This should just be -Og by default, anywhere where it&apos;s supported. I think that we have a bug about this somewhere, but can&apos;t find it now.
&gt; 
&gt; Debug builds are currently built with -O0 by default.  This patch does not affect that.

Out of curiosity, what&apos;s &quot;Og&quot;?

&gt;&gt;&gt; Tools/ChangeLog:15
&gt;&gt;&gt; +        different optimization levels for performance comparison.
&gt;&gt; 
&gt;&gt; Not sure if this is useful enough to have a feature. Modifying multiple xcconfigs is annoying, but seems OK if we do that once in a decade or so.
&gt; 
&gt; I don&apos;t expect it to be commonly used.  This is just a side benefit of having this facility.  With this, we can now do a quick perf comparison test without having to jump through the hoops of modifying al the xcconfigs.  If it does turn out to be profitable, we can then justify invest in modifying the xcconfigs.

This actually seems like the perfect option for EWS to use on debug builds to make debug testing go faster. EWS doesn&apos;t need O0 for stepping through with a debugger.

&gt; Tools/ChangeLog:18
&gt; +        Setting --forceOpt=none restores the default optimization levels.  Of course,
&gt; +        the build targets need to be rebuilt for this to take effect.

why not --no-forceOpt for consistency with other options?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603192</commentid>
    <comment_count>6</comment_count>
      <attachid>386817</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-01-06 12:01:20 -0800</bug_when>
    <thetext>Comment on attachment 386817
proposed patch.

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

&gt;&gt; Tools/ChangeLog:18
&gt;&gt; +        the build targets need to be rebuilt for this to take effect.
&gt; 
&gt; why not --no-forceOpt for consistency with other options?

I see that this is consistent with LTO options.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603195</commentid>
    <comment_count>7</comment_count>
      <attachid>386866</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-01-06 12:08:01 -0800</bug_when>
    <thetext>Comment on attachment 386866
proposed patch.

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

&gt; Tools/Scripts/set-webkit-configuration:41
&gt; +  --forceOptimizationLevel=&lt;level&gt;   Optimization level: O3, O2, O1, O0, Os, Ofast, Og, or none

why is this camel case? shouldn&apos;t this be &quot;--force-optimization-level&quot; to be consistent with other options?

&gt; Tools/Scripts/webkitdirs.pm:429
&gt; +    return if defined $forceOptimizationLevel;

would this ever actually be defined in memory? What if it were &quot;none&quot; here? Shouldn&apos;t we just always do below?

&gt; Tools/Scripts/webkitdirs.pm:435
&gt; +        chomp $forceOptimizationLevel;

small nit: why write the newline to the file and then do this? Why not just omit &quot;\n&quot; from the file?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603203</commentid>
    <comment_count>8</comment_count>
      <attachid>386866</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-01-06 12:17:41 -0800</bug_when>
    <thetext>Comment on attachment 386866
proposed patch.

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

&gt; Tools/ChangeLog:3
&gt; +        Add --forceOpt option to Tools/Scripts/set-webkit-configuration.

you should also update the name of this bug to be consistent with the option</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603216</commentid>
    <comment_count>9</comment_count>
      <attachid>386866</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-01-06 12:44:52 -0800</bug_when>
    <thetext>Comment on attachment 386866
proposed patch.

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

&gt;&gt; Tools/Scripts/set-webkit-configuration:41
&gt;&gt; +  --forceOptimizationLevel=&lt;level&gt;   Optimization level: O3, O2, O1, O0, Os, Ofast, Og, or none
&gt; 
&gt; why is this camel case? shouldn&apos;t this be &quot;--force-optimization-level&quot; to be consistent with other options?

:( even more characters.  I&apos;ll change it.

&gt;&gt; Tools/Scripts/webkitdirs.pm:429
&gt;&gt; +    return if defined $forceOptimizationLevel;
&gt; 
&gt; would this ever actually be defined in memory? What if it were &quot;none&quot; here? Shouldn&apos;t we just always do below?

My understanding is that this is equivalent to init_once.  If $forceOptimizationLevel is already computed, we don&apos;t have to compute it again.  For the &quot;none&quot; case, I guess it will always redo this computation (same bug as the LTO case).  But since determineForceOptimizationLevel() isn&apos;t called that often (my estimate is that it&apos;s only called once), I&apos;m going to just leave this as is.

&gt;&gt; Tools/Scripts/webkitdirs.pm:435
&gt;&gt; +        chomp $forceOptimizationLevel;
&gt; 
&gt; small nit: why write the newline to the file and then do this? Why not just omit &quot;\n&quot; from the file?

Because &quot;cat ForceOptimizationLevel&quot; can print a weird character after the optimization level if I don&apos;t terminate it with &apos;\n&apos;.  I think this is a small price to pay to have it behave nicer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603228</commentid>
    <comment_count>10</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2020-01-06 12:59:39 -0800</bug_when>
    <thetext>Thanks for the review.  Landed in r254080: &lt;http://trac.webkit.org/r254080&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1603232</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-01-06 13:02:03 -0800</bug_when>
    <thetext>&lt;rdar://problem/58351407&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386817</attachid>
            <date>2020-01-05 23:48:54 -0800</date>
            <delta_ts>2020-01-06 11:15:18 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-205787.patch</filename>
            <type>text/plain</type>
            <size>6247</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1NDA0OCkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI4IEBACisyMDIwLTAxLTA1ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgLS1mb3JjZU9wdCBvcHRpb24gdG8gVG9vbHMvU2NyaXB0cy9zZXQtd2Via2l0
LWNvbmZpZ3VyYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDU3ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVc2FnZToKKyAgICAgICAgICAgIC0tZm9yY2VPcHQ9PG9wdD4gICAgRm9yY2Ugb3B0
aW1pemF0aW9uOiBPMywgTzIsIE8xLCBPMCwgT3MsIE9mYXN0LCBvciBub25lCisKKyAgICAgICAg
VGhpcyBjYW4gYmUgdXNlZCB0byBmb3JjZSBkZWJ1ZyBidWlsZHMgdG8gYmUgYnVpbHQgd2l0aCBh
IGhpZ2hlciBsZXZlbCBvcHRpbWl6YXRpb24KKyAgICAgICAgc28gdGhhdCB0ZXN0cyBjYW4gcnVu
IHRvIGNvbXBsZXRpb24gZmFzdGVyLgorCisgICAgICAgIEl0IGNhbiBhbHNvIGJlIHVzZWZ1bCBh
cyBhIHNpbXBsZSB3YXkgdG8gZm9yY2UgcmVsZWFzZSBidWlsZHMgdG8gYmUgYnVpbHQgd2l0aAor
ICAgICAgICBkaWZmZXJlbnQgb3B0aW1pemF0aW9uIGxldmVscyBmb3IgcGVyZm9ybWFuY2UgY29t
cGFyaXNvbi4KKworICAgICAgICBTZXR0aW5nIC0tZm9yY2VPcHQ9bm9uZSByZXN0b3JlcyB0aGUg
ZGVmYXVsdCBvcHRpbWl6YXRpb24gbGV2ZWxzLiAgT2YgY291cnNlLAorICAgICAgICB0aGUgYnVp
bGQgdGFyZ2V0cyBuZWVkIHRvIGJlIHJlYnVpbHQgZm9yIHRoaXMgdG8gdGFrZSBlZmZlY3QuCisK
KyAgICAgICAgKiBTY3JpcHRzL3NldC13ZWJraXQtY29uZmlndXJhdGlvbjoKKyAgICAgICAgKiBT
Y3JpcHRzL3dlYmtpdGRpcnMucG06CisgICAgICAgIChkZXRlcm1pbmVGb3JjZU9wdElzRW5hYmxl
ZCk6CisgICAgICAgIChmb3JjZU9wdElzRW5hYmxlZCk6CisgICAgICAgIChYY29kZU9wdGlvbnMp
OgorCiAyMDIwLTAxLTA1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAg
ICBGdXJ0aGVyIHNpbXBsaWZ5IFN0cmluZ0J1aWxkZXIgdXNhZ2UgYnkgc3RhbmRhcmRpemluZyBo
ZXggZm9ybWF0aW5nIHRvIGEgc2luZ2xlIGhleCgpIGZ1bmN0aW9uCkluZGV4OiBUb29scy9TY3Jp
cHRzL3NldC13ZWJraXQtY29uZmlndXJhdGlvbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9TY3JpcHRz
L3NldC13ZWJraXQtY29uZmlndXJhdGlvbgkocmV2aXNpb24gMjU0MDQ2KQorKysgVG9vbHMvU2Ny
aXB0cy9zZXQtd2Via2l0LWNvbmZpZ3VyYXRpb24JKHdvcmtpbmcgY29weSkKQEAgLTEsNiArMSw2
IEBACiAjIS91c3IvYmluL2VudiBwZXJsCiAKLSMgQ29weXJpZ2h0IChDKSAyMDA1IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjIENvcHlyaWdodCAoQykgMjAwNS0yMDE5IEFwcGxl
IEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjCiAjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogIyBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
QEAgLTM4LDYgKzM4LDcgQEAgVXNhZ2U6ICRwcm9ncmFtTmFtZSBbb3B0aW9uc10KICAgLS0zMi1i
aXQgICAgICAgICAgICAgICAgU2V0IHRoZSBkZWZhdWx0IGFyY2hpdGVjdHVyZSB0byAzMi1iaXQK
ICAgLS02NC1iaXQgICAgICAgICAgICAgICAgU2V0IHRoZSBkZWZhdWx0IGFyY2hpdGVjdHVyZSB0
byA2NC1iaXQKICAgLS1bbm8tXWFzYW4gICAgICAgICAgICAgRW5hYmxlIG9yIGRpc2FibGUgY2xh
bmcgYWRkcmVzcyBzYW5pdGl6ZXIKKyAgLS1mb3JjZU9wdD08b3B0PiAgICAgICAgRm9yY2Ugb3B0
aW1pemF0aW9uOiBPMywgTzIsIE8xLCBPMCwgT3MsIE9mYXN0LCBvciBub25lCiAgIC0tbHRvLW1v
ZGU9PG1vZGU+ICAgICAgIFNldCBMVE8gbW9kZTogZnVsbCwgdGhpbiwgb3Igbm9uZQogICAtLWRl
YnVnICAgICAgICAgICAgICAgICBTZXQgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiB0byBkZWJ1
ZwogICAtLXJlbGVhc2UgICAgICAgICAgICAgICBTZXQgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlv
biB0byByZWxlYXNlCkBAIC01Miw2ICs1MywxMCBAQCBteSAkbHRvTW9kZTsKIGlmICghY2hlY2tG
b3JBcmd1bWVudEFuZFJlbW92ZUZyb21BUkdWR2V0dGluZ1ZhbHVlKCItLWx0by1tb2RlIiwgXCRs
dG9Nb2RlKSkgewogICAgICRsdG9Nb2RlPSIiOwogfQorbXkgJGZvcmNlT3B0OworaWYgKCFjaGVj
a0ZvckFyZ3VtZW50QW5kUmVtb3ZlRnJvbUFSR1ZHZXR0aW5nVmFsdWUoIi0tZm9yY2VPcHQiLCBc
JGZvcmNlT3B0KSkgeworICAgICRmb3JjZU9wdD0iIjsKK30KIAogaWYgKCEkYXJjaGl0ZWN0dXJl
KSB7CiAgICAgIyBIYW5kbGUgLS02NC1iaXQgZXhwbGljaXRseSBoZXJlLCBhcyB3ZSBkb24ndCB3
YW50IG91ciBvdGhlciBzY3JpcHRzIHRvIGFjY2VwdCBpdApAQCAtNzEsMTEgKzc2LDEyIEBAIGlm
IChjaGVja0ZvckFyZ3VtZW50QW5kUmVtb3ZlRnJvbUFSR1YoIi0KICAgICB1bmxpbmsgIiRiYXNl
UHJvZHVjdERpci9Db25maWd1cmF0aW9uIjsKICAgICB1bmxpbmsgIiRiYXNlUHJvZHVjdERpci9B
cmNoaXRlY3R1cmUiOwogICAgIHVubGluayAiJGJhc2VQcm9kdWN0RGlyL0FTYW4iOworICAgIHVu
bGluayAiJGJhc2VQcm9kdWN0RGlyL2ZvcmNlLW9wdC54Y2NvbmZpZyI7CiAgICAgdW5saW5rICIk
YmFzZVByb2R1Y3REaXIvTFRPIjsKICAgICBleGl0IDA7CiB9CiAKLWlmICgoISRjb25maWd1cmF0
aW9uICYmICEkYXJjaGl0ZWN0dXJlICYmICEkZW5hYmxlQVNBTiAmJiAhJGRpc2FibGVBU0FOICYm
ICEkbHRvTW9kZSkgfHwgKCRlbmFibGVBU0FOICYmICRkaXNhYmxlQVNBTikpIHsKK2lmICgoISRj
b25maWd1cmF0aW9uICYmICEkYXJjaGl0ZWN0dXJlICYmICEkZW5hYmxlQVNBTiAmJiAhJGRpc2Fi
bGVBU0FOICYmICEkbHRvTW9kZSAmJiAhJGZvcmNlT3B0KSB8fCAoJGVuYWJsZUFTQU4gJiYgJGRp
c2FibGVBU0FOKSkgewogICAgIHByaW50IFNUREVSUiAkdXNhZ2U7CiAgICAgZXhpdCAxOwogfQpA
QCAtODUsNiArOTEsMTEgQEAgaWYgKCRsdG9Nb2RlICYmICRsdG9Nb2RlIG5lICJmdWxsIiAmJiAk
bAogICAgIGV4aXQgMTsKIH0KIAoraWYgKCRmb3JjZU9wdCAmJiAkZm9yY2VPcHQgbmUgIm5vbmUi
ICYmICRmb3JjZU9wdCBuZSAiTzAiICYmICRmb3JjZU9wdCBuZSAiTzEiICYmICRmb3JjZU9wdCBu
ZSAiTzIiICYmICRmb3JjZU9wdCBuZSAiTzMiICYmICRmb3JjZU9wdCBuZSAiT3MiICYmICRmb3Jj
ZU9wdCBuZSAiT2Zhc3QiKSB7CisgICAgcHJpbnQgU1RERVJSICR1c2FnZTsKKyAgICBleGl0IDE7
Cit9CisKIGlmICgkY29uZmlndXJhdGlvbikgewogICAgIG9wZW4gQ09ORklHVVJBVElPTiwgIj4i
LCAiJGJhc2VQcm9kdWN0RGlyL0NvbmZpZ3VyYXRpb24iIG9yIGRpZTsKICAgICBwcmludCBDT05G
SUdVUkFUSU9OICRjb25maWd1cmF0aW9uOwpAQCAtMTA5LDYgKzEyMCwxNCBAQCBpZiAoJGVuYWJs
ZUFTQU4pIHsKICAgICB1bmxpbmsgIiRiYXNlUHJvZHVjdERpci9BU2FuIjsKIH0KIAoraWYgKCRm
b3JjZU9wdCAmJiAkZm9yY2VPcHQgZXEgIm5vbmUiKSB7CisgICAgdW5saW5rICIkYmFzZVByb2R1
Y3REaXIvZm9yY2Utb3B0LnhjY29uZmlnIjsKK30gZWxzaWYgKCRmb3JjZU9wdCkgeworICAgIG9w
ZW4gRm9yY2VPcHQsICI+IiwgIiRiYXNlUHJvZHVjdERpci9mb3JjZS1vcHQueGNjb25maWciIG9y
IGRpZTsKKyAgICBwcmludCBGb3JjZU9wdCAiR0NDX09QVElNSVpBVElPTl9MRVZFTCA9ICIgLiBz
dWJzdHIoJGZvcmNlT3B0LCAxKSAuICJcbiI7CisgICAgY2xvc2UgRm9yY2VPcHQ7Cit9CisKIGlm
ICgkbHRvTW9kZSkgewogICAgIG9wZW4gTFRPLCAiPiIsICIkYmFzZVByb2R1Y3REaXIvTFRPIiBv
ciBkaWU7CiAgICAgcHJpbnQgTFRPICIkbHRvTW9kZSI7CkluZGV4OiBUb29scy9TY3JpcHRzL3dl
YmtpdGRpcnMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCShy
ZXZpc2lvbiAyNTQwNDYpCisrKyBUb29scy9TY3JpcHRzL3dlYmtpdGRpcnMucG0JKHdvcmtpbmcg
Y29weSkKQEAgLTEsNCArMSw0IEBACi0jIENvcHlyaWdodCAoQykgMjAwNS0yMDA3LCAyMDEwLTIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDUt
MjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHlyaWdodCAoQykgMjAw
OSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMpIDIwMTEg
UmVzZWFyY2ggSW4gTW90aW9uIExpbWl0ZWQuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAjIENvcHly
aWdodCAoQykgMjAxMyBOb2tpYSBDb3Jwb3JhdGlvbiBhbmQvb3IgaXRzIHN1YnNpZGlhcnkoLWll
cykuCkBAIC0xMzIsNiArMTMyLDcgQEAgb3VyIEBFWFBPUlRfT0s7CiAKIG15ICRhcmNoaXRlY3R1
cmU7CiBteSAkYXNhbklzRW5hYmxlZDsKK215ICRmb3JjZU9wdElzRW5hYmxlZDsKIG15ICRsdG9N
b2RlOwogbXkgJG51bWJlck9mQ1BVczsKIG15ICRtYXhDUFVMb2FkOwpAQCAtNDIzLDYgKzQyNCwx
NyBAQCBzdWIgZGV0ZXJtaW5lQVNhbklzRW5hYmxlZAogICAgIH0KIH0KIAorc3ViIGRldGVybWlu
ZUZvcmNlT3B0SXNFbmFibGVkCit7CisgICAgcmV0dXJuIGlmIGRlZmluZWQgJGZvcmNlT3B0SXNF
bmFibGVkOworICAgIGRldGVybWluZUJhc2VQcm9kdWN0RGlyKCk7CisKKyAgICAkZm9yY2VPcHRJ
c0VuYWJsZWQgPSAwOworICAgIGlmICgtZSAiJGJhc2VQcm9kdWN0RGlyL2ZvcmNlLW9wdC54Y2Nv
bmZpZyIpIHsKKyAgICAgICAgJGZvcmNlT3B0SXNFbmFibGVkID0gMTsKKyAgICB9Cit9CisKIHN1
YiBkZXRlcm1pbmVMVE9Nb2RlCiB7CiAgICAgcmV0dXJuIGlmIGRlZmluZWQgJGx0b01vZGU7CkBA
IC04MDcsNiArODE5LDEyIEBAIHN1YiBhc2FuSXNFbmFibGVkKCkKICAgICByZXR1cm4gJGFzYW5J
c0VuYWJsZWQ7CiB9CiAKK3N1YiBmb3JjZU9wdElzRW5hYmxlZCgpCit7CisgICAgZGV0ZXJtaW5l
Rm9yY2VPcHRJc0VuYWJsZWQoKTsKKyAgICByZXR1cm4gJGZvcmNlT3B0SXNFbmFibGVkOworfQor
CiBzdWIgbHRvTW9kZSgpCiB7CiAgICAgZGV0ZXJtaW5lTFRPTW9kZSgpOwpAQCAtODU1LDYgKzg3
Myw3IEBAIHN1YiBYY29kZU9wdGlvbnMKICAgICBkZXRlcm1pbmVDb25maWd1cmF0aW9uKCk7CiAg
ICAgZGV0ZXJtaW5lQXJjaGl0ZWN0dXJlKCk7CiAgICAgZGV0ZXJtaW5lQVNhbklzRW5hYmxlZCgp
OworICAgIGRldGVybWluZUZvcmNlT3B0SXNFbmFibGVkKCk7CiAgICAgZGV0ZXJtaW5lTFRPTW9k
ZSgpOwogICAgIGRldGVybWluZVhjb2RlU0RLKCk7CiAKQEAgLTg2Myw2ICs4ODIsNyBAQCBzdWIg
WGNvZGVPcHRpb25zCiAgICAgcHVzaCBAb3B0aW9ucywgIi1TaG93QnVpbGRPcGVyYXRpb25EdXJh
dGlvbj1ZRVMiOwogICAgIHB1c2ggQG9wdGlvbnMsICgiLWNvbmZpZ3VyYXRpb24iLCAkY29uZmln
dXJhdGlvbik7CiAgICAgcHVzaCBAb3B0aW9ucywgKCIteGNjb25maWciLCBzb3VyY2VEaXIoKSAu
ICIvVG9vbHMvYXNhbi9hc2FuLnhjY29uZmlnIiwgIkFTQU5fSUdOT1JFPSIgLiBzb3VyY2VEaXIo
KSAuICIvVG9vbHMvYXNhbi93ZWJraXQtYXNhbi1pZ25vcmUudHh0IikgaWYgJGFzYW5Jc0VuYWJs
ZWQ7CisgICAgcHVzaCBAb3B0aW9ucywgKCIteGNjb25maWciLCBiYXNlUHJvZHVjdERpcigpIC4g
Ii9mb3JjZS1vcHQueGNjb25maWciKSBpZiAkZm9yY2VPcHRJc0VuYWJsZWQ7CiAgICAgcHVzaCBA
b3B0aW9ucywgIldLX0xUT19NT0RFPSRsdG9Nb2RlIiBpZiAkbHRvTW9kZTsKICAgICBwdXNoIEBv
cHRpb25zLCBAYmFzZVByb2R1Y3REaXJPcHRpb247CiAgICAgcHVzaCBAb3B0aW9ucywgIkFSQ0hT
PSRhcmNoaXRlY3R1cmUiIGlmICRhcmNoaXRlY3R1cmU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>386866</attachid>
            <date>2020-01-06 11:15:18 -0800</date>
            <delta_ts>2020-01-06 12:08:01 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-205787.patch</filename>
            <type>text/plain</type>
            <size>7420</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDI1NDA2NikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDI4IEBACisyMDIwLTAxLTA2ICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKwor
ICAgICAgICBBZGQgLS1mb3JjZU9wdCBvcHRpb24gdG8gVG9vbHMvU2NyaXB0cy9zZXQtd2Via2l0
LWNvbmZpZ3VyYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDU3ODcKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVc2FnZToKKyAgICAgICAgICAgIC0tZm9yY2VPcHRpbWF0aW9uTGV2ZWw9PG9wdD4g
IEZvcmNlIG9wdGltaXphdGlvbjogTzMsIE8yLCBPMSwgTzAsIE9zLCBPZmFzdCwgT2csIG9yIG5v
bmUKKworICAgICAgICBUaGlzIGNhbiBiZSB1c2VkIHRvIGZvcmNlIGRlYnVnIGJ1aWxkcyB0byBi
ZSBidWlsdCB3aXRoIGEgaGlnaGVyIGxldmVsIG9wdGltaXphdGlvbgorICAgICAgICBzbyB0aGF0
IHRlc3RzIGNhbiBydW4gdG8gY29tcGxldGlvbiBmYXN0ZXIuCisKKyAgICAgICAgSXQgY2FuIGFs
c28gYmUgdXNlZnVsIGFzIGEgc2ltcGxlIHdheSB0byBmb3JjZSByZWxlYXNlIGJ1aWxkcyB0byBi
ZSBidWlsdCB3aXRoCisgICAgICAgIGRpZmZlcmVudCBvcHRpbWl6YXRpb24gbGV2ZWxzIGZvciBw
ZXJmb3JtYW5jZSBjb21wYXJpc29uLgorCisgICAgICAgIFNldHRpbmcgLS1mb3JjZU9wdGltYXRp
b25MZXZlbD1ub25lIHJlc3RvcmVzIHRoZSBkZWZhdWx0IG9wdGltaXphdGlvbiBsZXZlbHMuCisg
ICAgICAgIE9mIGNvdXJzZSwgdGhlIGJ1aWxkIHRhcmdldHMgbmVlZCB0byBiZSByZWJ1aWx0IGZv
ciB0aGlzIHRvIHRha2UgZWZmZWN0LgorCisgICAgICAgICogU2NyaXB0cy9zZXQtd2Via2l0LWNv
bmZpZ3VyYXRpb246CisgICAgICAgICogU2NyaXB0cy93ZWJraXRkaXJzLnBtOgorICAgICAgICAo
ZGV0ZXJtaW5lRm9yY2VPcHRpbWl6YXRpb25MZXZlbCk6CisgICAgICAgIChmb3JjZU9wdGltaXph
dGlvbkxldmVsKToKKyAgICAgICAgKFhjb2RlT3B0aW9ucyk6CisKIDIwMjAtMDEtMDUgIERlYW4g
SmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIFJlbmFtZSBHcmFwaGljc0NvbnRl
eHQzRCB0byBHcmFwaGljc0NvbnRleHRHTApJbmRleDogVG9vbHMvU2NyaXB0cy9zZXQtd2Via2l0
LWNvbmZpZ3VyYXRpb24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvU2NyaXB0cy9zZXQtd2Via2l0LWNv
bmZpZ3VyYXRpb24JKHJldmlzaW9uIDI1NDA1NSkKKysrIFRvb2xzL1NjcmlwdHMvc2V0LXdlYmtp
dC1jb25maWd1cmF0aW9uCSh3b3JraW5nIGNvcHkpCkBAIC0xLDYgKzEsNiBAQAogIyEvdXNyL2Jp
bi9lbnYgcGVybAogCi0jIENvcHlyaWdodCAoQykgMjAwNSBBcHBsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorIyBDb3B5cmlnaHQgKEMpIDIwMDUtMjAxOSBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgogIwogIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNSwxMyArMzUs
MTQgQEAgdXNlIHdlYmtpdGRpcnM7CiBteSAkcHJvZ3JhbU5hbWUgPSBiYXNlbmFtZSgkMCk7CiBt
eSAkdXNhZ2UgPSA8PEVPRjsKIFVzYWdlOiAkcHJvZ3JhbU5hbWUgW29wdGlvbnNdCi0gIC0tMzIt
Yml0ICAgICAgICAgICAgICAgIFNldCB0aGUgZGVmYXVsdCBhcmNoaXRlY3R1cmUgdG8gMzItYml0
Ci0gIC0tNjQtYml0ICAgICAgICAgICAgICAgIFNldCB0aGUgZGVmYXVsdCBhcmNoaXRlY3R1cmUg
dG8gNjQtYml0Ci0gIC0tW25vLV1hc2FuICAgICAgICAgICAgIEVuYWJsZSBvciBkaXNhYmxlIGNs
YW5nIGFkZHJlc3Mgc2FuaXRpemVyCi0gIC0tbHRvLW1vZGU9PG1vZGU+ICAgICAgIFNldCBMVE8g
bW9kZTogZnVsbCwgdGhpbiwgb3Igbm9uZQotICAtLWRlYnVnICAgICAgICAgICAgICAgICBTZXQg
dGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiB0byBkZWJ1ZwotICAtLXJlbGVhc2UgICAgICAgICAg
ICAgICBTZXQgdGhlIGRlZmF1bHQgY29uZmlndXJhdGlvbiB0byByZWxlYXNlCi0gIC0tcmVzZXQg
ICAgICAgICAgICAgICAgIFJlc2V0IGNvbmZpZ3VyYXRpb25zCisgIC0tMzItYml0ICAgICAgICAg
ICAgICAgICAgICAgICAgICAgU2V0IHRoZSBkZWZhdWx0IGFyY2hpdGVjdHVyZSB0byAzMi1iaXQK
KyAgLS02NC1iaXQgICAgICAgICAgICAgICAgICAgICAgICAgICBTZXQgdGhlIGRlZmF1bHQgYXJj
aGl0ZWN0dXJlIHRvIDY0LWJpdAorICAtLVtuby1dYXNhbiAgICAgICAgICAgICAgICAgICAgICAg
IEVuYWJsZSBvciBkaXNhYmxlIGNsYW5nIGFkZHJlc3Mgc2FuaXRpemVyCisgIC0tZm9yY2VPcHRp
bWl6YXRpb25MZXZlbD08bGV2ZWw+ICAgT3B0aW1pemF0aW9uIGxldmVsOiBPMywgTzIsIE8xLCBP
MCwgT3MsIE9mYXN0LCBPZywgb3Igbm9uZQorICAtLWx0by1tb2RlPTxtb2RlPiAgICAgICAgICAg
ICAgICAgIFNldCBMVE8gbW9kZTogZnVsbCwgdGhpbiwgb3Igbm9uZQorICAtLWRlYnVnICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFNldCB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uIHRvIGRl
YnVnCisgIC0tcmVsZWFzZSAgICAgICAgICAgICAgICAgICAgICAgICAgU2V0IHRoZSBkZWZhdWx0
IGNvbmZpZ3VyYXRpb24gdG8gcmVsZWFzZQorICAtLXJlc2V0ICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIFJlc2V0IGNvbmZpZ3VyYXRpb25zCiBFT0YKIAogbXkgJGNvbmZpZ3VyYXRpb24gPSBw
YXNzZWRDb25maWd1cmF0aW9uKCk7CkBAIC01Miw2ICs1MywxMCBAQCBteSAkbHRvTW9kZTsKIGlm
ICghY2hlY2tGb3JBcmd1bWVudEFuZFJlbW92ZUZyb21BUkdWR2V0dGluZ1ZhbHVlKCItLWx0by1t
b2RlIiwgXCRsdG9Nb2RlKSkgewogICAgICRsdG9Nb2RlPSIiOwogfQorbXkgJGZvcmNlT3B0aW1p
emF0aW9uTGV2ZWw7CitpZiAoIWNoZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJHVkdldHRp
bmdWYWx1ZSgiLS1mb3JjZU9wdGltaXphdGlvbkxldmVsIiwgXCRmb3JjZU9wdGltaXphdGlvbkxl
dmVsKSkgeworICAgICRmb3JjZU9wdGltaXphdGlvbkxldmVsPSIiOworfQogCiBpZiAoISRhcmNo
aXRlY3R1cmUpIHsKICAgICAjIEhhbmRsZSAtLTY0LWJpdCBleHBsaWNpdGx5IGhlcmUsIGFzIHdl
IGRvbid0IHdhbnQgb3VyIG90aGVyIHNjcmlwdHMgdG8gYWNjZXB0IGl0CkBAIC03MSwxMSArNzYs
MTIgQEAgaWYgKGNoZWNrRm9yQXJndW1lbnRBbmRSZW1vdmVGcm9tQVJHVigiLQogICAgIHVubGlu
ayAiJGJhc2VQcm9kdWN0RGlyL0NvbmZpZ3VyYXRpb24iOwogICAgIHVubGluayAiJGJhc2VQcm9k
dWN0RGlyL0FyY2hpdGVjdHVyZSI7CiAgICAgdW5saW5rICIkYmFzZVByb2R1Y3REaXIvQVNhbiI7
CisgICAgdW5saW5rICIkYmFzZVByb2R1Y3REaXIvRm9yY2VPcHRpbWl6YXRpb25MZXZlbCI7CiAg
ICAgdW5saW5rICIkYmFzZVByb2R1Y3REaXIvTFRPIjsKICAgICBleGl0IDA7CiB9CiAKLWlmICgo
ISRjb25maWd1cmF0aW9uICYmICEkYXJjaGl0ZWN0dXJlICYmICEkZW5hYmxlQVNBTiAmJiAhJGRp
c2FibGVBU0FOICYmICEkbHRvTW9kZSkgfHwgKCRlbmFibGVBU0FOICYmICRkaXNhYmxlQVNBTikp
IHsKK2lmICgoISRjb25maWd1cmF0aW9uICYmICEkYXJjaGl0ZWN0dXJlICYmICEkZW5hYmxlQVNB
TiAmJiAhJGRpc2FibGVBU0FOICYmICEkbHRvTW9kZSAmJiAhJGZvcmNlT3B0aW1pemF0aW9uTGV2
ZWwpIHx8ICgkZW5hYmxlQVNBTiAmJiAkZGlzYWJsZUFTQU4pKSB7CiAgICAgcHJpbnQgU1RERVJS
ICR1c2FnZTsKICAgICBleGl0IDE7CiB9CkBAIC04NSw2ICs5MSwxOSBAQCBpZiAoJGx0b01vZGUg
JiYgJGx0b01vZGUgbmUgImZ1bGwiICYmICRsCiAgICAgZXhpdCAxOwogfQogCitpZiAoJGZvcmNl
T3B0aW1pemF0aW9uTGV2ZWwKKyAgICAmJiAkZm9yY2VPcHRpbWl6YXRpb25MZXZlbCBuZSAibm9u
ZSIKKyAgICAmJiAkZm9yY2VPcHRpbWl6YXRpb25MZXZlbCBuZSAiTzAiCisgICAgJiYgJGZvcmNl
T3B0aW1pemF0aW9uTGV2ZWwgbmUgIk8xIgorICAgICYmICRmb3JjZU9wdGltaXphdGlvbkxldmVs
IG5lICJPMiIKKyAgICAmJiAkZm9yY2VPcHRpbWl6YXRpb25MZXZlbCBuZSAiTzMiCisgICAgJiYg
JGZvcmNlT3B0aW1pemF0aW9uTGV2ZWwgbmUgIk9zIgorICAgICYmICRmb3JjZU9wdGltaXphdGlv
bkxldmVsIG5lICJPZmFzdCIKKyAgICAmJiAkZm9yY2VPcHRpbWl6YXRpb25MZXZlbCBuZSAiT2ci
KSB7CisgICAgcHJpbnQgU1RERVJSICR1c2FnZTsKKyAgICBleGl0IDE7Cit9CisKIGlmICgkY29u
ZmlndXJhdGlvbikgewogICAgIG9wZW4gQ09ORklHVVJBVElPTiwgIj4iLCAiJGJhc2VQcm9kdWN0
RGlyL0NvbmZpZ3VyYXRpb24iIG9yIGRpZTsKICAgICBwcmludCBDT05GSUdVUkFUSU9OICRjb25m
aWd1cmF0aW9uOwpAQCAtMTA5LDYgKzEyOCwxNCBAQCBpZiAoJGVuYWJsZUFTQU4pIHsKICAgICB1
bmxpbmsgIiRiYXNlUHJvZHVjdERpci9BU2FuIjsKIH0KIAoraWYgKCRmb3JjZU9wdGltaXphdGlv
bkxldmVsICYmICRmb3JjZU9wdGltaXphdGlvbkxldmVsIGVxICJub25lIikgeworICAgIHVubGlu
ayAiJGJhc2VQcm9kdWN0RGlyL0ZvcmNlT3B0aW1pemF0aW9uTGV2ZWwiOworfSBlbHNpZiAoJGZv
cmNlT3B0aW1pemF0aW9uTGV2ZWwpIHsKKyAgICBvcGVuIEZvcmNlT3B0aW1pemF0aW9uTGV2ZWws
ICI+IiwgIiRiYXNlUHJvZHVjdERpci9Gb3JjZU9wdGltaXphdGlvbkxldmVsIiBvciBkaWU7Cisg
ICAgcHJpbnQgRm9yY2VPcHRpbWl6YXRpb25MZXZlbCBzdWJzdHIoJGZvcmNlT3B0aW1pemF0aW9u
TGV2ZWwsIDEpIC4gIlxuIjsKKyAgICBjbG9zZSBGb3JjZU9wdGltaXphdGlvbkxldmVsOworfQor
CiBpZiAoJGx0b01vZGUpIHsKICAgICBvcGVuIExUTywgIj4iLCAiJGJhc2VQcm9kdWN0RGlyL0xU
TyIgb3IgZGllOwogICAgIHByaW50IExUTyAiJGx0b01vZGUiOwpJbmRleDogVG9vbHMvU2NyaXB0
cy93ZWJraXRkaXJzLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1NjcmlwdHMvd2Via2l0ZGlycy5w
bQkocmV2aXNpb24gMjU0MDU1KQorKysgVG9vbHMvU2NyaXB0cy93ZWJraXRkaXJzLnBtCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDQgKzEsNCBAQAotIyBDb3B5cmlnaHQgKEMpIDIwMDUtMjAwNywgMjAx
MC0yMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMgQ29weXJpZ2h0IChDKSAy
MDA1LTIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBDb3B5cmlnaHQgKEMp
IDIwMDkgR29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICMgQ29weXJpZ2h0IChDKSAy
MDExIFJlc2VhcmNoIEluIE1vdGlvbiBMaW1pdGVkLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogIyBD
b3B5cmlnaHQgKEMpIDIwMTMgTm9raWEgQ29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5
KC1pZXMpLgpAQCAtMTMyLDYgKzEzMiw3IEBAIG91ciBARVhQT1JUX09LOwogCiBteSAkYXJjaGl0
ZWN0dXJlOwogbXkgJGFzYW5Jc0VuYWJsZWQ7CitteSAkZm9yY2VPcHRpbWl6YXRpb25MZXZlbDsK
IG15ICRsdG9Nb2RlOwogbXkgJG51bWJlck9mQ1BVczsKIG15ICRtYXhDUFVMb2FkOwpAQCAtNDIz
LDYgKzQyNCwxOCBAQCBzdWIgZGV0ZXJtaW5lQVNhbklzRW5hYmxlZAogICAgIH0KIH0KIAorc3Vi
IGRldGVybWluZUZvcmNlT3B0aW1pemF0aW9uTGV2ZWwKK3sKKyAgICByZXR1cm4gaWYgZGVmaW5l
ZCAkZm9yY2VPcHRpbWl6YXRpb25MZXZlbDsKKyAgICBkZXRlcm1pbmVCYXNlUHJvZHVjdERpcigp
OworCisgICAgaWYgKG9wZW4gRm9yY2VPcHRpbWl6YXRpb25MZXZlbCwgIiRiYXNlUHJvZHVjdERp
ci9Gb3JjZU9wdGltaXphdGlvbkxldmVsIikgeworICAgICAgICAkZm9yY2VPcHRpbWl6YXRpb25M
ZXZlbCA9IDxGb3JjZU9wdGltaXphdGlvbkxldmVsPjsKKyAgICAgICAgY2xvc2UgRm9yY2VPcHRp
bWl6YXRpb25MZXZlbDsKKyAgICAgICAgY2hvbXAgJGZvcmNlT3B0aW1pemF0aW9uTGV2ZWw7Cisg
ICAgfQorfQorCiBzdWIgZGV0ZXJtaW5lTFRPTW9kZQogewogICAgIHJldHVybiBpZiBkZWZpbmVk
ICRsdG9Nb2RlOwpAQCAtODA3LDYgKzgyMCwxMiBAQCBzdWIgYXNhbklzRW5hYmxlZCgpCiAgICAg
cmV0dXJuICRhc2FuSXNFbmFibGVkOwogfQogCitzdWIgZm9yY2VPcHRpbWl6YXRpb25MZXZlbCgp
Cit7CisgICAgZGV0ZXJtaW5lRm9yY2VPcHRpbWl6YXRpb25MZXZlbCgpOworICAgIHJldHVybiAk
Zm9yY2VPcHRpbWl6YXRpb25MZXZlbDsKK30KKwogc3ViIGx0b01vZGUoKQogewogICAgIGRldGVy
bWluZUxUT01vZGUoKTsKQEAgLTg1NSw2ICs4NzQsNyBAQCBzdWIgWGNvZGVPcHRpb25zCiAgICAg
ZGV0ZXJtaW5lQ29uZmlndXJhdGlvbigpOwogICAgIGRldGVybWluZUFyY2hpdGVjdHVyZSgpOwog
ICAgIGRldGVybWluZUFTYW5Jc0VuYWJsZWQoKTsKKyAgICBkZXRlcm1pbmVGb3JjZU9wdGltaXph
dGlvbkxldmVsKCk7CiAgICAgZGV0ZXJtaW5lTFRPTW9kZSgpOwogICAgIGRldGVybWluZVhjb2Rl
U0RLKCk7CiAKQEAgLTg2Myw2ICs4ODMsNyBAQCBzdWIgWGNvZGVPcHRpb25zCiAgICAgcHVzaCBA
b3B0aW9ucywgIi1TaG93QnVpbGRPcGVyYXRpb25EdXJhdGlvbj1ZRVMiOwogICAgIHB1c2ggQG9w
dGlvbnMsICgiLWNvbmZpZ3VyYXRpb24iLCAkY29uZmlndXJhdGlvbik7CiAgICAgcHVzaCBAb3B0
aW9ucywgKCIteGNjb25maWciLCBzb3VyY2VEaXIoKSAuICIvVG9vbHMvYXNhbi9hc2FuLnhjY29u
ZmlnIiwgIkFTQU5fSUdOT1JFPSIgLiBzb3VyY2VEaXIoKSAuICIvVG9vbHMvYXNhbi93ZWJraXQt
YXNhbi1pZ25vcmUudHh0IikgaWYgJGFzYW5Jc0VuYWJsZWQ7CisgICAgcHVzaCBAb3B0aW9ucywg
KCJHQ0NfT1BUSU1JWkFUSU9OX0xFVkVMPSRmb3JjZU9wdGltaXphdGlvbkxldmVsIikgaWYgJGZv
cmNlT3B0aW1pemF0aW9uTGV2ZWw7CiAgICAgcHVzaCBAb3B0aW9ucywgIldLX0xUT19NT0RFPSRs
dG9Nb2RlIiBpZiAkbHRvTW9kZTsKICAgICBwdXNoIEBvcHRpb25zLCBAYmFzZVByb2R1Y3REaXJP
cHRpb247CiAgICAgcHVzaCBAb3B0aW9ucywgIkFSQ0hTPSRhcmNoaXRlY3R1cmUiIGlmICRhcmNo
aXRlY3R1cmU7Cg==
</data>
<flag name="review"
          id="402621"
          type_id="1"
          status="+"
          setter="saam"
    />
          </attachment>
      

    </bug>

</bugzilla>