<?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>212105</bug_id>
          
          <creation_ts>2020-05-19 13:48:05 -0700</creation_ts>
          <short_desc>[Wasm] Limit the size of Wasm function we optimize in OMG mode</short_desc>
          <delta_ts>2020-05-20 11:22:31 -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>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1654168</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2020-05-19 13:48:05 -0700</bug_when>
    <thetext>The OMG compilation path for Wasm functions has phases where memory can grow O(N^2) based on the function size.  Long term we should reduce that memory usage.  In the near term we should fallback to the BBQ compilation settings for such large functions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654208</commentid>
    <comment_count>1</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-19 15:37:36 -0700</bug_when>
    <thetext>(In reply to Michael Saboff from comment #0)
&gt; The OMG compilation path for Wasm functions has phases where memory can grow
&gt; O(N^2) based on the function size.  Long term we should reduce that memory
&gt; usage.  In the near term we should fallback to the BBQ compilation settings
&gt; for such large functions.

We already compiled code with BBQ if we are trying to OMG compile. So are we just going to skip the OMG compile? Or should we compile with B3-O1?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654277</commentid>
    <comment_count>2</comment_count>
      <attachid>399798</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2020-05-19 18:31:11 -0700</bug_when>
    <thetext>Created attachment 399798
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654278</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2020-05-19 18:32:09 -0700</bug_when>
    <thetext>&lt;rdar://problem/63117419&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654281</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2020-05-19 18:43:18 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #1)
&gt; (In reply to Michael Saboff from comment #0)
&gt; &gt; The OMG compilation path for Wasm functions has phases where memory can grow
&gt; &gt; O(N^2) based on the function size.  Long term we should reduce that memory
&gt; &gt; usage.  In the near term we should fallback to the BBQ compilation settings
&gt; &gt; for such large functions.
&gt; 
&gt; We already compiled code with BBQ if we are trying to OMG compile. So are we
&gt; just going to skip the OMG compile? Or should we compile with B3-O1?

We skip the OMG compile.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654286</commentid>
    <comment_count>5</comment_count>
      <attachid>399798</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2020-05-19 19:07:04 -0700</bug_when>
    <thetext>Comment on attachment 399798
Patch

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

&gt; Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:540
&gt; +    if (m_info.functions[m_functionIndex].data.size() &lt; Options::webAssemblyBBQFallbackSize())

Can we abstract this inequality, so it’s if (functionCall) here and the other places you do this less than check?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654287</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2020-05-19 19:08:12 -0700</bug_when>
    <thetext>(In reply to Filip Pizlo from comment #5)
&gt; Comment on attachment 399798 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=399798&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:540
&gt; &gt; +    if (m_info.functions[m_functionIndex].data.size() &lt; Options::webAssemblyBBQFallbackSize())
&gt; 
&gt; Can we abstract this inequality, so it’s if (functionCall) here and the
&gt; other places you do this less than check?

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654516</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2020-05-20 10:48:24 -0700</bug_when>
    <thetext>Committed r261930: &lt;https://trac.webkit.org/changeset/261930&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1654542</commentid>
    <comment_count>8</comment_count>
      <attachid>399798</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2020-05-20 11:22:31 -0700</bug_when>
    <thetext>Comment on attachment 399798
Patch

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

LGTM too.

&gt; Source/JavaScriptCore/ChangeLog:17
&gt; +        Also for Wasm functions at or above  the threashold, we don&apos;t tier up to an

threashold =&gt; threshold

&gt; Source/JavaScriptCore/runtime/OptionsList.h:456
&gt; +    v(Unsigned, webAssemblyBBQFallbackSize, 50000, Normal, &quot;Limit of Wasm function size above which we fallback to BBQ compilation mode.&quot;) \

This feels a bit small? What was the size of the function in your test page?

&gt; Source/JavaScriptCore/wasm/WasmB3IRGenerator.cpp:1977
&gt; +    procedure.setOptLevel(compilationMode == CompilationMode::BBQMode || function.data.size() &gt;= Options::webAssemblyBBQFallbackSize()

this should only happen for OSR entry, right?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399798</attachid>
            <date>2020-05-19 18:31:11 -0700</date>
            <delta_ts>2020-05-19 19:07:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>212105.patch</filename>
            <type>text/plain</type>
            <size>5902</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjYxODk5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMzIEBA
CisyMDIwLTA1LTE5ICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIFtXYXNtXSBMaW1pdCB0aGUgc2l6ZSBvZiBXYXNtIGZ1bmN0aW9uIHdlIG9wdGltaXplIGlu
IE9NRyBtb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTIxMDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBHaXZlbiB0aGF0IG1lbW9yeSBncm93cyBPKE5eMikgY29tcGlsaW5nIFdhc20gY29kZSB0aHJv
dWdoIHRoZSBPTUcgcGF0aCwKKyAgICAgICAgd2UgY2FuIHJ1biBvdXQgb2YgbWVtb3J5IHdoZW4g
Y29tcGlsaW5nIGxhcmdlIFdhc20gZnVuY3Rpb25zLiAgVGhpcyBjaGFuZ2UgYWRkcworICAgICAg
ICBhIGxpbWl0IG9wdGlvbiwgd2ViQXNzZW1ibHlCQlFGYWxsYmFja1NpemUsICBXaGVuIHRoZSBX
YXNtIGZ1bmN0aW9uIHNpemUgaXMKKyAgICAgICAgZXF1YWwgdG8gb3IgZ3JlYXRlciB0aGFuIHRo
aXMgbGltaXQgd2UgYWx3YXlzIGNvbXBpbGUgdXNpbmcgQkJRIG9wdGltaXphdGlvbgorICAgICAg
ICBwYXJhbWV0ZXJzLgorCisgICAgICAgIEFzIHBhcnQgb2YgdGhpcyBjaGFuZ2UsIHdlIHN0aWxs
IGdvIHRocm91Z2ggdGhlIE9NRyBsb29wIGVudHJ5IE9TUiBjb2RlCisgICAgICAgIGdlbmVyYXRp
b24gcGF0aCBmb3IgZnVuY3Rpb25zIHRoYXQgYXJlIGF0IG9yIGFib3ZlIHRoZSB0aHJlc2hvbGQs
IGJ1dCB3ZQorICAgICAgICBjb21waWxlIHN1Y2ggZnVuY3Rpb25zIHdpdGggQkJRIGNvbXBpbGF0
aW9uIG9wdGltaXphdGlvbiBsZXZlbHMuCisgICAgICAgIEFsc28gZm9yIFdhc20gZnVuY3Rpb25z
IGF0IG9yIGFib3ZlICB0aGUgdGhyZWFzaG9sZCwgd2UgZG9uJ3QgdGllciB1cCB0byBhbgorICAg
ICAgICBPTUcgY29tcGlsZWQgbm9ybWFsIGVudHJ5IGZ1bmN0aW9uLiAgSW5zdGVhZCB3ZSBzdGF5
IHdpdGggdGhlIEJCUSBjb21waWxlZCB2ZXJzaW9uLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogcnVudGltZS9PcHRpb25zTGlzdC5oOgorICAgICAg
ICAqIHdhc20vV2FzbUFpcklSR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6QWly
SVJHZW5lcmF0b3I6OkFpcklSR2VuZXJhdG9yKToKKyAgICAgICAgKiB3YXNtL1dhc21CM0lSR2Vu
ZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6V2FzbTo6QjNJUkdlbmVyYXRvcjo6QjNJUkdlbmVy
YXRvcik6CisgICAgICAgIChKU0M6Oldhc206OnBhcnNlQW5kQ29tcGlsZSk6CisgICAgICAgICog
d2FzbS9XYXNtT3BlcmF0aW9ucy5jcHA6CisgICAgICAgIChKU0M6Oldhc206Om9wZXJhdGlvbldh
c21UcmlnZ2VyT1NSRW50cnlOb3cpOgorCiAyMDIwLTA1LTE5ICBSb3NzIEtpcnNsaW5nICA8cm9z
cy5raXJzbGluZ0Bzb255LmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyNjE3NTUpOiBXaW4v
TGludXggbm9uLXVuaWZpZWQgYnVpbGRzIGhhdmUgaHVuZHJlZHMgb2YgbGluayBmYWlsdXJlcwpJ
bmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT3B0aW9uc0xpc3QuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlzdC5oCShyZXZp
c2lvbiAyNjE4OTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zTGlz
dC5oCSh3b3JraW5nIGNvcHkpCkBAIC00NTMsNiArNDUzLDcgQEAgY29uc3RleHByIGJvb2wgZW5h
YmxlV2ViQXNzZW1ibHlTdHJlYW1pbgogICAgIHYoVW5zaWduZWQsIHdlYkFzc2VtYmx5QkJRQWly
T3B0aW1pemF0aW9uTGV2ZWwsIDAsIE5vcm1hbCwgIkFpciBPcHRpbWl6YXRpb24gbGV2ZWwgZm9y
IEJCUSBXZWIgQXNzZW1ibHkgbW9kdWxlIGNvbXBpbGF0aW9ucy4iKSBcCiAgICAgdihVbnNpZ25l
ZCwgd2ViQXNzZW1ibHlCQlFCM09wdGltaXphdGlvbkxldmVsLCAxLCBOb3JtYWwsICJCMyBPcHRp
bWl6YXRpb24gbGV2ZWwgZm9yIEJCUSBXZWIgQXNzZW1ibHkgbW9kdWxlIGNvbXBpbGF0aW9ucy4i
KSBcCiAgICAgdihVbnNpZ25lZCwgd2ViQXNzZW1ibHlPTUdPcHRpbWl6YXRpb25MZXZlbCwgT3B0
aW9uczo6ZGVmYXVsdEIzT3B0TGV2ZWwoKSwgTm9ybWFsLCAiQjMgT3B0aW1pemF0aW9uIGxldmVs
IGZvciBPTUcgV2ViIEFzc2VtYmx5IG1vZHVsZSBjb21waWxhdGlvbnMuIikgXAorICAgIHYoVW5z
aWduZWQsIHdlYkFzc2VtYmx5QkJRRmFsbGJhY2tTaXplLCA1MDAwMCwgTm9ybWFsLCAiTGltaXQg
b2YgV2FzbSBmdW5jdGlvbiBzaXplIGFib3ZlIHdoaWNoIHdlIGZhbGxiYWNrIHRvIEJCUSBjb21w
aWxhdGlvbiBtb2RlLiIpIFwKICAgICBcCiAgICAgdihCb29sLCB1c2VCQlFUaWVyVXBDaGVja3Ms
IHRydWUsIE5vcm1hbCwgIkVuYWJsZXMgdGllciB1cCBjaGVja3MgZm9yIG91ciBCQlEgY29kZS4i
KSBcCiAgICAgdihCb29sLCB1c2VXZWJBc3NlbWJseU9TUiwgdHJ1ZSwgTm9ybWFsLCBudWxscHRy
KSBcCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNtQWlySVJHZW5lcmF0b3Iu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21BaXJJUkdl
bmVyYXRvci5jcHAJKHJldmlzaW9uIDI2MTg5OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93
YXNtL1dhc21BaXJJUkdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTg5Myw3ICs4OTMs
OCBAQCBBaXJJUkdlbmVyYXRvcjo6QWlySVJHZW5lcmF0b3IoY29uc3QgTW9kCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICBlbWl0RW50cnlUaWVyVXBDaGVjaygpOworICAgIGlmIChtX2luZm8uZnVu
Y3Rpb25zW21fZnVuY3Rpb25JbmRleF0uZGF0YS5zaXplKCkgPCBPcHRpb25zOjp3ZWJBc3NlbWJs
eUJCUUZhbGxiYWNrU2l6ZSgpKQorICAgICAgICBlbWl0RW50cnlUaWVyVXBDaGVjaygpOwogfQog
CiBCMzo6VHlwZSBBaXJJUkdlbmVyYXRvcjo6dG9CM1Jlc3VsdFR5cGUoQmxvY2tTaWduYXR1cmUg
cmV0dXJuVHlwZSkKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21CM0lSR2Vu
ZXJhdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvd2FzbS9XYXNt
QjNJUkdlbmVyYXRvci5jcHAJKHJldmlzaW9uIDI2MTg5OSkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS93YXNtL1dhc21CM0lSR2VuZXJhdG9yLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTM3LDcg
KzUzNyw4IEBAIEIzSVJHZW5lcmF0b3I6OkIzSVJHZW5lcmF0b3IoY29uc3QgTW9kdWwKICAgICAg
ICAgfSk7CiAgICAgfQogCi0gICAgZW1pdEVudHJ5VGllclVwQ2hlY2soKTsKKyAgICBpZiAobV9p
bmZvLmZ1bmN0aW9uc1ttX2Z1bmN0aW9uSW5kZXhdLmRhdGEuc2l6ZSgpIDwgT3B0aW9uczo6d2Vi
QXNzZW1ibHlCQlFGYWxsYmFja1NpemUoKSkKKyAgICAgICAgZW1pdEVudHJ5VGllclVwQ2hlY2so
KTsKIAogICAgIGlmIChtX2NvbXBpbGF0aW9uTW9kZSA9PSBDb21waWxhdGlvbk1vZGU6Ok9NR0Zv
ck9TUkVudHJ5TW9kZSkKICAgICAgICAgbV9jdXJyZW50QmxvY2sgPSBtX3Byb2MuYWRkQmxvY2so
KTsKQEAgLTE5NzMsNyArMTk3NCw3IEBAIEV4cGVjdGVkPHN0ZDo6dW5pcXVlX3B0cjxJbnRlcm5h
bEZ1bmN0aW8KICAgICAvLyBvcHRMZXZlbD0xLgogICAgIHByb2NlZHVyZS5zZXROZWVkc1VzZWRS
ZWdpc3RlcnMoZmFsc2UpOwogICAgIAotICAgIHByb2NlZHVyZS5zZXRPcHRMZXZlbChjb21waWxh
dGlvbk1vZGUgPT0gQ29tcGlsYXRpb25Nb2RlOjpCQlFNb2RlCisgICAgcHJvY2VkdXJlLnNldE9w
dExldmVsKGNvbXBpbGF0aW9uTW9kZSA9PSBDb21waWxhdGlvbk1vZGU6OkJCUU1vZGUgfHwgZnVu
Y3Rpb24uZGF0YS5zaXplKCkgPj0gT3B0aW9uczo6d2ViQXNzZW1ibHlCQlFGYWxsYmFja1NpemUo
KQogICAgICAgICA/IE9wdGlvbnM6OndlYkFzc2VtYmx5QkJRQjNPcHRpbWl6YXRpb25MZXZlbCgp
CiAgICAgICAgIDogT3B0aW9uczo6d2ViQXNzZW1ibHlPTUdPcHRpbWl6YXRpb25MZXZlbCgpKTsK
IApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9wZXJhdGlvbnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS93YXNtL1dhc21PcGVyYXRpb25zLmNw
cAkocmV2aXNpb24gMjYxODk5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3dhc20vV2FzbU9w
ZXJhdGlvbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNzAsNiArMjcwLDExIEBAIHZvaWQgSklU
X09QRVJBVElPTiBvcGVyYXRpb25XYXNtVHJpZ2dlck8KICAgICBkYXRhTG9nTG5JZihPcHRpb25z
Ojp2ZXJib3NlT1NSKCksICJDb25zaWRlciBPTUdGb3JPU1JFbnRyeVBsYW4gZm9yIFsiLCBmdW5j
dGlvbkluZGV4LCAiXSBsb29wSW5kZXgjIiwgbG9vcEluZGV4LCAiIHdpdGggZXhlY3V0ZUNvdW50
ZXIgPSAiLCB0aWVyVXAsICIgIiwgUmF3UG9pbnRlcihjYWxsZWUucmVwbGFjZW1lbnQoKSkpOwog
CiAgICAgaWYgKCFPcHRpb25zOjp1c2VXZWJBc3NlbWJseU9TUigpKSB7CisgICAgICAgIGlmIChp
bnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS5mdW5jdGlvbnNbZnVuY3Rpb25J
bmRleF0uZGF0YS5zaXplKCkgPj0gT3B0aW9uczo6d2ViQXNzZW1ibHlCQlFGYWxsYmFja1NpemUo
KSkgeworICAgICAgICAgICAgdGllclVwLmRlZmVySW5kZWZpbml0ZWx5KCk7CisgICAgICAgICAg
ICByZXR1cm4gcmV0dXJuV2l0aG91dE9TUkVudHJ5KCk7CisgICAgICAgIH0KKwogICAgICAgICBp
ZiAoc2hvdWxkVHJpZ2dlck9NR0NvbXBpbGUodGllclVwLCBjYWxsZWUucmVwbGFjZW1lbnQoKSwg
ZnVuY3Rpb25JbmRleCkpCiAgICAgICAgICAgICB0cmlnZ2VyT01HUmVwbGFjZW1lbnRDb21waWxl
KHRpZXJVcCwgY2FsbGVlLnJlcGxhY2VtZW50KCksIGluc3RhbmNlLCBjb2RlQmxvY2ssIGZ1bmN0
aW9uSW5kZXgpOwogCkBAIC0zMzYsNiArMzQxLDkgQEAgdm9pZCBKSVRfT1BFUkFUSU9OIG9wZXJh
dGlvbldhc21UcmlnZ2VyTwogICAgICAgICByZXR1cm4gcmV0dXJuV2l0aG91dE9TUkVudHJ5KCk7
CiAKICAgICBpZiAoIXRyaWdnZXJlZFNsb3dQYXRoVG9TdGFydENvbXBpbGF0aW9uKSB7CisgICAg
ICAgIGlmIChpbnN0YW5jZS0+bW9kdWxlKCkubW9kdWxlSW5mb3JtYXRpb24oKS5mdW5jdGlvbnNb
ZnVuY3Rpb25JbmRleF0uZGF0YS5zaXplKCkgPj0gT3B0aW9uczo6d2ViQXNzZW1ibHlCQlFGYWxs
YmFja1NpemUoKSkKKyAgICAgICAgICAgIHJldHVybiByZXR1cm5XaXRob3V0T1NSRW50cnkoKTsK
KwogICAgICAgICB0cmlnZ2VyT01HUmVwbGFjZW1lbnRDb21waWxlKHRpZXJVcCwgY2FsbGVlLnJl
cGxhY2VtZW50KCksIGluc3RhbmNlLCBjb2RlQmxvY2ssIGZ1bmN0aW9uSW5kZXgpOwogCiAgICAg
ICAgIGlmICghY2FsbGVlLnJlcGxhY2VtZW50KCkpCg==
</data>
<flag name="review"
          id="415211"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>