<?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>185931</bug_id>
          
          <creation_ts>2018-05-23 19:56:05 -0700</creation_ts>
          <short_desc>Make JSC have a mini mode that kicks in when the JIT is disabled</short_desc>
          <delta_ts>2019-03-19 11:21:32 -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>
          <dependson>185932</dependson>
          <blocked>185987</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>basuke</cc>
    
    <cc>benjamin</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>jfbastien</cc>
    
    <cc>joepeck</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1426831</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-05-23 19:56:05 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427441</commentid>
    <comment_count>1</comment_count>
      <attachid>341322</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-05-25 13:56:54 -0700</bug_when>
    <thetext>Created attachment 341322
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427444</commentid>
    <comment_count>2</comment_count>
      <attachid>341322</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2018-05-25 14:00:13 -0700</bug_when>
    <thetext>Comment on attachment 341322
patch

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

r=me

&gt; Source/JavaScriptCore/ChangeLog:11
&gt; +        - We always sweep synchronously.

You should also add &quot;disable generational GC&quot; because that&apos;s what the code below does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427503</commentid>
    <comment_count>3</comment_count>
      <attachid>341322</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-05-25 15:26:44 -0700</bug_when>
    <thetext>Comment on attachment 341322
patch

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

&gt;&gt; Source/JavaScriptCore/ChangeLog:11
&gt;&gt; +        - We always sweep synchronously.
&gt; 
&gt; You should also add &quot;disable generational GC&quot; because that&apos;s what the code below does.

Will do</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427511</commentid>
    <comment_count>4</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2018-05-25 15:48:32 -0700</bug_when>
    <thetext>landed in:
https://trac.webkit.org/changeset/232210/webkit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1427513</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-05-25 15:49:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/40568609&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1517961</commentid>
    <comment_count>6</comment_count>
      <attachid>341322</attachid>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2019-03-18 15:37:09 -0700</bug_when>
    <thetext>Comment on attachment 341322
patch

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

&gt; Source/JavaScriptCore/heap/Heap.cpp:131
&gt; +        return Options::miniVMHeapGrowthFactor() * heapSize;

Question. What is the reason to use fixed growth factor here for mini mode? I guess that is because mini mode returns memory to the system more than other environment. Are there any other reason for specific platform? i.e. WatchOS?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518013</commentid>
    <comment_count>7</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-03-18 16:52:49 -0700</bug_when>
    <thetext>(In reply to Basuke Suzuki from comment #6)
&gt; Comment on attachment 341322 [details]
&gt; patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=341322&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/heap/Heap.cpp:131
&gt; &gt; +        return Options::miniVMHeapGrowthFactor() * heapSize;
&gt; 
&gt; Question. What is the reason to use fixed growth factor here for mini mode?
&gt; I guess that is because mini mode returns memory to the system more than
&gt; other environment. Are there any other reason for specific platform? i.e.
&gt; WatchOS?

We currently only tie this to running with the JIT or not.

You could imagine implementing this in other ways. The main idea here is that when you run without the JIT, your rate of allocation is smaller. So you can afford to be more aggressive about collecting.

IIRC, the main idea was to have:
GC % = (time running GC) / (time running code)

to be more or less the constant irrespective of using the JIT or not. If we kept the non-mini mode growth factors, we&apos;d have decreased our GC%.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1518385</commentid>
    <comment_count>8</comment_count>
    <who name="Basuke Suzuki">basuke</who>
    <bug_when>2019-03-19 11:21:32 -0700</bug_when>
    <thetext>Saam,

&gt; We currently only tie this to running with the JIT or not.
&gt; 
&gt; You could imagine implementing this in other ways. The main idea here is
&gt; that when you run without the JIT, your rate of allocation is smaller. So
&gt; you can afford to be more aggressive about collecting.

Make sense.

&gt; IIRC, the main idea was to have:
&gt; GC % = (time running GC) / (time running code)
&gt; 
&gt; to be more or less the constant irrespective of using the JIT or not. If we
&gt; kept the non-mini mode growth factors, we&apos;d have decreased our GC%.

Thanks. The idea above is very reasonable. We start with this rate and if we find a better number for our platform, we&apos;ll think about that.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>341322</attachid>
            <date>2018-05-25 13:56:54 -0700</date>
            <delta_ts>2018-05-25 14:00:13 -0700</delta_ts>
            <desc>patch</desc>
            <filename>a-backup.diff</filename>
            <type>text/plain</type>
            <size>8033</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjMyMTk3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMyIEBA
CisyMDE4LTA1LTI1ICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IE1ha2UgSlNDIGhhdmUgYSBtaW5pIG1vZGUgdGhhdCBraWNrcyBpbiB3aGVuIHRoZSBKSVQgaXMg
ZGlzYWJsZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE4NTkzMQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFRoaXMgcGF0Y2ggbWFrZXMgSlNDIGhhdmUgYSBtaW5pIFZNIG1vZGUuIFRoaXMgY3VycmVudGx5
IG9ubHkga2lja3MgaW4KKyAgICAgICAgd2hlbiB0aGUgcHJvY2VzcyBjYW4ndCBKSVQuIE1pbmkg
Vk0gbm93IG1lYW5zIHR3byB0aGluZzoKKyAgICAgICAgLSBXZSBhbHdheXMgdXNlIGEgMS4yN3gg
aGVhcCBncm93dGggZmFjdG9yLgorICAgICAgICAtIFdlIGFsd2F5cyBzd2VlcCBzeW5jaHJvbm91
c2x5LgorICAgICAgICAKKyAgICAgICAgSSdtIGdvaW5nIHRvIGNvbnRpbnVlIHRvIGV4dGVuZCB3
aGF0IG1pbmkgVk0gbW9kZSBtZWFucy4KKyAgICAgICAgCisgICAgICAgIFRoaXMgcGF0Y2ggaXMg
YSA1MCUgbWVtb3J5IHByb2dyZXNzaW9uIG9uIGFuZCBhIH44LTklIHRpbWUgcmVncmVzc2lvbgor
ICAgICAgICBvbiBydW4tdGVzdG1lbSB3aGVuIHJ1bm5pbmcgaW4gbWluaSBWTSBtb2RlLgorCisg
ICAgICAgICogaGVhcC9IZWFwLmNwcDoKKyAgICAgICAgKEpTQzo6SGVhcDo6Y29sbGVjdE5vdyk6
CisgICAgICAgIChKU0M6OkhlYXA6OmZpbmFsaXplKToKKyAgICAgICAgKEpTQzo6SGVhcDo6dXNl
R2VuZXJhdGlvbmFsR0MpOgorICAgICAgICAoSlNDOjpIZWFwOjpzaG91bGRTd2VlcFN5bmNocm9u
b3VzbHkpOgorICAgICAgICAoSlNDOjpIZWFwOjpzaG91bGREb0Z1bGxDb2xsZWN0aW9uKToKKyAg
ICAgICAgKiBoZWFwL0hlYXAuaDoKKyAgICAgICAgKiBydW50aW1lL09wdGlvbnMuaDoKKyAgICAg
ICAgKiBydW50aW1lL1ZNLmNwcDoKKyAgICAgICAgKEpTQzo6Vk06OmlzSW5NaW5pTW9kZSk6Cisg
ICAgICAgICogcnVudGltZS9WTS5oOgorCiAyMDE4LTA1LTI1ICBTYWFtIEJhcmF0aSAgPHNiYXJh
dGlAYXBwbGUuY29tPgogCiAgICAgICAgIEhhdmUgYSBtZW1vcnkgdGVzdCB3aGVyZSB3ZSBjYW4g
dmFsaWRhdGUgSlNDcyBtaW5pIG1lbW9yeSBtb2RlCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENv
cmUvaGVhcC9IZWFwLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVh
cC9IZWFwLmNwcAkocmV2aXNpb24gMjMyMTk3KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyNyw2ICsxMjcsOSBAQCBzaXplX3QgbWlu
SGVhcFNpemUoSGVhcFR5cGUgaGVhcFR5cGUsIHNpCiAKIHNpemVfdCBwcm9wb3J0aW9uYWxIZWFw
U2l6ZShzaXplX3QgaGVhcFNpemUsIHNpemVfdCByYW1TaXplKQogeworICAgIGlmIChWTTo6aXNJ
bk1pbmlNb2RlKCkpCisgICAgICAgIHJldHVybiBPcHRpb25zOjptaW5pVk1IZWFwR3Jvd3RoRmFj
dG9yKCkgKiBoZWFwU2l6ZTsKKwogI2lmIFBMQVRGT1JNKElPUykKICAgICBzaXplX3QgbWVtb3J5
Rm9vdHByaW50ID0gYm1hbGxvYzo6YXBpOjptZW1vcnlGb290cHJpbnQoKTsKICAgICBpZiAobWVt
b3J5Rm9vdHByaW50IDwgcmFtU2l6ZSAqIE9wdGlvbnM6OnNtYWxsSGVhcFJBTUZyYWN0aW9uKCkp
CkBAIC0xMDQ5LDcgKzEwNTIsNyBAQCB2b2lkIEhlYXA6OmNvbGxlY3ROb3coU3luY2hyb25vdXNu
ZXNzIHN5CiAgICAgICAgIGlmIChVTkxJS0VMWShPcHRpb25zOjp1c2VJbW1vcnRhbE9iamVjdHMo
KSkpCiAgICAgICAgICAgICBzd2VlcGVyKCkuc3RvcFN3ZWVwaW5nKCk7CiAgICAgICAgIAotICAg
ICAgICBib29sIGFscmVhZHlTd2VwdEluQ29sbGVjdFN5bmMgPSBPcHRpb25zOjpzd2VlcFN5bmNo
cm9ub3VzbHkoKTsKKyAgICAgICAgYm9vbCBhbHJlYWR5U3dlcHRJbkNvbGxlY3RTeW5jID0gc2hv
dWxkU3dlZXBTeW5jaHJvbm91c2x5KCk7CiAgICAgICAgIGlmICghYWxyZWFkeVN3ZXB0SW5Db2xs
ZWN0U3luYykgewogICAgICAgICAgICAgaWYgKE9wdGlvbnM6OmxvZ0dDKCkpCiAgICAgICAgICAg
ICAgICAgZGF0YUxvZygiW0dDPCIsIFJhd1BvaW50ZXIodGhpcyksICI+OiAiKTsKQEAgLTIwNDMs
NyArMjA0Niw3IEBAIHZvaWQgSGVhcDo6ZmluYWxpemUoKQogICAgIGZvciAoY29uc3QgSGVhcEZp
bmFsaXplckNhbGxiYWNrJiBjYWxsYmFjayA6IG1faGVhcEZpbmFsaXplckNhbGxiYWNrcykKICAg
ICAgICAgY2FsbGJhY2sucnVuKCp2bSgpKTsKICAgICAKLSAgICBpZiAoT3B0aW9uczo6c3dlZXBT
eW5jaHJvbm91c2x5KCkpCisgICAgaWYgKHNob3VsZFN3ZWVwU3luY2hyb25vdXNseSgpKQogICAg
ICAgICBzd2VlcFN5bmNocm9ub3VzbHkoKTsKIAogICAgIGlmIChPcHRpb25zOjpsb2dHQygpKSB7
CkBAIC0yMzk2LDkgKzIzOTksMTkgQEAgdm9pZCBIZWFwOjpjb2xsZWN0Tm93RnVsbElmTm90RG9u
ZVJlY2VudAogICAgIGNvbGxlY3ROb3coc3luY2hyb25vdXNuZXNzLCBDb2xsZWN0aW9uU2NvcGU6
OkZ1bGwpOwogfQogCitib29sIEhlYXA6OnVzZUdlbmVyYXRpb25hbEdDKCkKK3sKKyAgICByZXR1
cm4gT3B0aW9uczo6dXNlR2VuZXJhdGlvbmFsR0MoKSAmJiAhVk06OmlzSW5NaW5pTW9kZSgpOwor
fQorCitib29sIEhlYXA6OnNob3VsZFN3ZWVwU3luY2hyb25vdXNseSgpCit7CisgICAgcmV0dXJu
IE9wdGlvbnM6OnN3ZWVwU3luY2hyb25vdXNseSgpIHx8IFZNOjppc0luTWluaU1vZGUoKTsKK30K
KwogYm9vbCBIZWFwOjpzaG91bGREb0Z1bGxDb2xsZWN0aW9uKCkKIHsKLSAgICBpZiAoIU9wdGlv
bnM6OnVzZUdlbmVyYXRpb25hbEdDKCkpCisgICAgaWYgKCF1c2VHZW5lcmF0aW9uYWxHQygpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGlmICghbV9jdXJyZW50UmVxdWVzdC5zY29wZSkK
SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFwLmgJKHJldmlzaW9uIDIzMjE5NykKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuaAkod29ya2luZyBjb3B5KQpAQCAtNTU2LDYg
KzU1Niw5IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhc3NlcnRNYXJrU3RhY2tzRW1wdHkoKTsKIAog
ICAgIHZvaWQgc2V0Qm9udXNWaXNpdG9yVGFzayhSZWZQdHI8U2hhcmVkVGFzazx2b2lkKFNsb3RW
aXNpdG9yJik+Pik7CisKKyAgICBzdGF0aWMgYm9vbCB1c2VHZW5lcmF0aW9uYWxHQygpOworICAg
IHN0YXRpYyBib29sIHNob3VsZFN3ZWVwU3luY2hyb25vdXNseSgpOwogICAgIAogICAgIGNvbnN0
IEhlYXBUeXBlIG1faGVhcFR5cGU7CiAgICAgY29uc3Qgc2l6ZV90IG1fcmFtU2l6ZTsKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9PcHRpb25zLmgJKHJldmlzaW9uIDIzMjE5NykK
KysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL09wdGlvbnMuaAkod29ya2luZyBjb3B5
KQpAQCAtMjM3LDYgKzIzNyw3IEBAIGNvbnN0ZXhwciBib29sIGVuYWJsZVdlYkFzc2VtYmx5U3Ry
ZWFtaW4KICAgICB2KGRvdWJsZSwgbWVkaXVtSGVhcFJBTUZyYWN0aW9uLCAwLjUsIE5vcm1hbCwg
bnVsbHB0cikgXAogICAgIHYoZG91YmxlLCBtZWRpdW1IZWFwR3Jvd3RoRmFjdG9yLCAxLjUsIE5v
cm1hbCwgbnVsbHB0cikgXAogICAgIHYoZG91YmxlLCBsYXJnZUhlYXBHcm93dGhGYWN0b3IsIDEu
MjQsIE5vcm1hbCwgbnVsbHB0cikgXAorICAgIHYoZG91YmxlLCBtaW5pVk1IZWFwR3Jvd3RoRmFj
dG9yLCAxLjI3LCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGRvdWJsZSwgY3JpdGljYWxHQ01l
bW9yeVRocmVzaG9sZCwgMC44MCwgTm9ybWFsLCAicGVyY2VudCBtZW1vcnkgaW4gdXNlIHRoZSBH
QyBjb25zaWRlcnMgY3JpdGljYWwuICBUaGUgY29sbGVjdG9yIGlzIG11Y2ggbW9yZSBhZ2dyZXNz
aXZlIGFib3ZlIHRoaXMgdGhyZXNob2xkIikgXAogICAgIHYoZG91YmxlLCBtaW5pbXVtTXV0YXRv
clV0aWxpemF0aW9uLCAwLCBOb3JtYWwsIG51bGxwdHIpIFwKICAgICB2KGRvdWJsZSwgbWF4aW11
bU11dGF0b3JVdGlsaXphdGlvbiwgMC43LCBOb3JtYWwsIG51bGxwdHIpIFwKQEAgLTUwOSw4ICs1
MTAsOSBAQCBjb25zdGV4cHIgYm9vbCBlbmFibGVXZWJBc3NlbWJseVN0cmVhbWluCiAgICAgdihi
b29sLCB1c2VCaWdJbnQsIGZhbHNlLCBOb3JtYWwsICJJZiB0cnVlLCB3ZSB3aWxsIGVuYWJsZSBC
aWdJbnQgc3VwcG9ydC4iKSBcCiAgICAgdihib29sLCB1c2VJbnRsTnVtYmVyRm9ybWF0VG9QYXJ0
cywgZW5hYmxlSW50bE51bWJlckZvcm1hdFRvUGFydHMsIE5vcm1hbCwgIklmIHRydWUsIHdlIHdp
bGwgZW5hYmxlIEludGwuTnVtYmVyRm9ybWF0LnByb3RvdHlwZS5mb3JtYXRUb1BhcnRzIikgXAog
ICAgIHYoYm9vbCwgdXNlSW50bFBsdXJhbFJ1bGVzLCBlbmFibGVJbnRsUGx1cmFsUnVsZXMsIE5v
cm1hbCwgIklmIHRydWUsIHdlIHdpbGwgZW5hYmxlIEludGwuUGx1cmFsUnVsZXMuIikgXAotICAg
IHYoYm9vbCwgdXNlQXJyYXlBbGxvY2F0aW9uUHJvZmlsaW5nLCB0cnVlLCBOb3JtYWwsICJJZiB0
cnVlLCB3ZSB3aWxsIHVzZSBvdXIgbm9ybWFsIGFycmF5IGFsbG9jYXRpb24gcHJvZmlsaW5nLiBJ
ZiBmYWxzZSwgdGhlIGFsbG9jYXRpb24gcHJvZmlsZSB3aWxsIGFsd2F5cyBjbGFpbSB0byBiZSB1
bmRlY2lkZWQuIilcCi0gICAgdihib29sLCBmb3JjZVBvbHlQcm90bywgZmFsc2UsIE5vcm1hbCwg
IklmIHRydWUsIGNyZWF0ZV90aGlzIHdpbGwgYWx3YXlzIGNyZWF0ZSBhbiBvYmplY3Qgd2l0aCBh
IHBvbHkgcHJvdG8gc3RydWN0dXJlLiIpCisgICAgdihib29sLCB1c2VBcnJheUFsbG9jYXRpb25Q
cm9maWxpbmcsIHRydWUsIE5vcm1hbCwgIklmIHRydWUsIHdlIHdpbGwgdXNlIG91ciBub3JtYWwg
YXJyYXkgYWxsb2NhdGlvbiBwcm9maWxpbmcuIElmIGZhbHNlLCB0aGUgYWxsb2NhdGlvbiBwcm9m
aWxlIHdpbGwgYWx3YXlzIGNsYWltIHRvIGJlIHVuZGVjaWRlZC4iKSBcCisgICAgdihib29sLCBm
b3JjZVBvbHlQcm90bywgZmFsc2UsIE5vcm1hbCwgIklmIHRydWUsIGNyZWF0ZV90aGlzIHdpbGwg
YWx3YXlzIGNyZWF0ZSBhbiBvYmplY3Qgd2l0aCBhIHBvbHkgcHJvdG8gc3RydWN0dXJlLiIpIFwK
KyAgICB2KGJvb2wsIGZvcmNlTWluaVZNTW9kZSwgZmFsc2UsIE5vcm1hbCwgIklmIHRydWUsIGl0
IHdpbGwgZm9yY2UgbWluaSBWTSBtb2RlIG9uLiIpCiAKIAogZW51bSBPcHRpb25FcXVpdmFsZW5j
ZSB7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVk0uY3BwCShyZXZpc2lvbiAyMzIx
OTcpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9WTS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIzOCw2ICsyMzgsMTEgQEAgYm9vbCBWTTo6Y2FuVXNlUmVnRXhwSklUKCkKICNlbmRp
ZgogfQogCitib29sIFZNOjppc0luTWluaU1vZGUoKQoreworICAgIHJldHVybiAhY2FuVXNlSklU
KCkgfHwgT3B0aW9uczo6Zm9yY2VNaW5pVk1Nb2RlKCk7Cit9CisKIFZNOjpWTShWTVR5cGUgdm1U
eXBlLCBIZWFwVHlwZSBoZWFwVHlwZSkKICAgICA6IG1fYXBpTG9jayhhZG9wdFJlZihuZXcgSlNM
b2NrKHRoaXMpKSkKICNpZiBVU0UoQ0YpCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVu
dGltZS9WTS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
LmgJKHJldmlzaW9uIDIzMjE5NykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1ZN
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU1OCw2ICs1NTgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGlj
IEpTX0VYUE9SVF9QUklWQVRFIGJvb2wgY2FuVXNlQXNzZW1ibGVyKCk7CiAgICAgc3RhdGljIEpT
X0VYUE9SVF9QUklWQVRFIGJvb2wgY2FuVXNlSklUKCk7CiAgICAgc3RhdGljIEpTX0VYUE9SVF9Q
UklWQVRFIGJvb2wgY2FuVXNlUmVnRXhwSklUKCk7CisgICAgc3RhdGljIEpTX0VYUE9SVF9QUklW
QVRFIGJvb2wgaXNJbk1pbmlNb2RlKCk7CiAKICAgICBTb3VyY2VQcm92aWRlckNhY2hlKiBhZGRT
b3VyY2VQcm92aWRlckNhY2hlKFNvdXJjZVByb3ZpZGVyKik7CiAgICAgdm9pZCBjbGVhclNvdXJj
ZVByb3ZpZGVyQ2FjaGVzKCk7CkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMzIxOTgpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxOC0wNS0yNSAgU2FhbSBCYXJhdGkgIDxz
YmFyYXRpQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIEpTQyBoYXZlIGEgbWluaSBtb2RlIHRo
YXQga2lja3MgaW4gd2hlbiB0aGUgSklUIGlzIGRpc2FibGVkCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODU5MzEKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIHJlbmFtZXMgYSB2YXJpYWJsZSBmb3Ig
Y2xhcml0eS4KKworICAgICAgICAqIFNjcmlwdHMvcnVuLXRlc3RtZW06CisKIDIwMTgtMDUtMjUg
IEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBV
Ukw6Omhvc3Qgc2hvdWxkIHJldHVybiBhIFN0cmluZ1ZpZXcgdG8gcmVkdWNlIGFsbG9jYXRpb25z
CkluZGV4OiBUb29scy9TY3JpcHRzL3J1bi10ZXN0bWVtCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Nj
cmlwdHMvcnVuLXRlc3RtZW0JKHJldmlzaW9uIDIzMjE5NykKKysrIFRvb2xzL1NjcmlwdHMvcnVu
LXRlc3RtZW0JKHdvcmtpbmcgY29weSkKQEAgLTEyMSwxNCArMTIxLDE0IEBAIGRlZiBnZXRUZXN0
cwogICAgIGZpbGVzLnNvcnRfYnkgeyB8IChwYXRoKSB8IEZpbGUuYmFzZW5hbWUocGF0aCkgfQog
ZW5kCiAKLWRlZiBnZW9tZWFuKHgpCi0gICAgc2NvcmUgPSB4LmluamVjdCgxLjAsIDoqKQotICAg
IHNjb3JlICoqICgxLjAgLyB4Lmxlbmd0aCkKK2RlZiBnZW9tZWFuKGFycikKKyAgICBzY29yZSA9
IGFyci5pbmplY3QoMS4wLCA6KikKKyAgICBzY29yZSAqKiAoMS4wIC8gYXJyLmxlbmd0aCkKIGVu
ZAogCi1kZWYgbWVhbih4KQotICAgIHN1bSA9IHguaW5qZWN0KDAuMCwgOispCi0gICAgc3VtIC8g
eC5sZW5ndGgKK2RlZiBtZWFuKGFycikKKyAgICBzdW0gPSBhcnIuaW5qZWN0KDAuMCwgOispCisg
ICAgc3VtIC8gYXJyLmxlbmd0aAogZW5kCiAKIGRlZiBydW5UZXN0KHBhdGgsIGl0ZXJzKQo=
</data>
<flag name="review"
          id="359515"
          type_id="1"
          status="+"
          setter="mark.lam"
    />
          </attachment>
      

    </bug>

</bugzilla>