<?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>33570</bug_id>
          
          <creation_ts>2010-01-12 19:48:36 -0800</creation_ts>
          <short_desc>[BREWMP] Map FastMalloc to BREW memory allocator</short_desc>
          <delta_ts>2010-02-22 11:03:02 -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>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Other</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>
          
          <blocked>33564</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Kwang Yul Seo">skyul</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>eric</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>zoltan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>180079</commentid>
    <comment_count>0</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-01-12 19:48:36 -0800</bug_when>
    <thetext>FastMalloc can&apos;t be ported to BREW. Map fastMalloc/fastFree/fastRealloc to BREW&apos;s MALLOC/FREE/REALLOC macros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180080</commentid>
    <comment_count>1</comment_count>
      <attachid>46422</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-01-12 19:51:57 -0800</bug_when>
    <thetext>Created attachment 46422
FastMalloc for BREW</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180081</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-12 19:54:22 -0800</bug_when>
    <thetext>Attachment 46422 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
JavaScriptCore/wtf/brew/FastMallocBrew.cpp:36:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
JavaScriptCore/wtf/brew/FastMallocBrew.cpp:44:  n_elements is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/brew/FastMallocBrew.cpp:44:  element_size is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/brew/FastMallocBrew.cpp:83:  n_elements is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
JavaScriptCore/wtf/brew/FastMallocBrew.cpp:83:  element_size is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180082</commentid>
    <comment_count>3</comment_count>
      <attachid>46423</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-01-12 20:00:28 -0800</bug_when>
    <thetext>Created attachment 46423
FastMalloc for BREW

Fix style errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>183949</commentid>
    <comment_count>4</comment_count>
      <attachid>47266</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-01-22 21:58:55 -0800</bug_when>
    <thetext>Created attachment 47266
FastMalloc</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>184761</commentid>
    <comment_count>5</comment_count>
      <attachid>47266</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-01-26 14:46:25 -0800</bug_when>
    <thetext>Comment on attachment 47266
FastMalloc

This seems totally wrong.  You should implement the system malloc versions if you want to use system malloc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>187625</commentid>
    <comment_count>6</comment_count>
      <attachid>48099</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-02-03 21:28:17 -0800</bug_when>
    <thetext>Created attachment 48099
FastMalloc

Okay. This is another try. Replace the system malloc in FastMalloc with BREW&apos;s MALLOC/CALLOC/REALLOC/FREE macros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188012</commentid>
    <comment_count>7</comment_count>
      <attachid>48099</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-04 16:56:48 -0800</bug_when>
    <thetext>Comment on attachment 48099
FastMalloc

Hmmm.

Why use a #define instead of  just naming the functions malloc, calloc, etc?

Maybe this code should go in its own header, which FastMalloc.cpp should include.  Something like SystemMallocBrew.h?

How do other codebases which port to BREW deal with this strange lack of malloc()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188064</commentid>
    <comment_count>8</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-02-04 21:23:39 -0800</bug_when>
    <thetext>BREW uses RVCT or GCC for target. So malloc, calloc, realloc and free are provided by these two compilers. However, because BREW runtime does not initialize the heap for application, calling malloc crashes the system. To share system heap, BREW applications must use MALLOC, CALLOC, REALLOC and FREE.


(In reply to comment #7)
&gt; (From update of attachment 48099 [details])
&gt; Hmmm.
&gt; 
&gt; Why use a #define instead of  just naming the functions malloc, calloc, etc?
&gt; 

Naming the function malloc causes a compile error if stdlib.h is included.

void* malloc(size_t)&apos; was declared `extern&apos; and later `static&apos; error.


&gt; Maybe this code should go in its own header, which FastMalloc.cpp should
&gt; include.  Something like SystemMallocBrew.h?
&gt; 

I think it is a good idea.


&gt; How do other codebases which port to BREW deal with this strange lack of
&gt; malloc()?

One simple approach is to replace malloc, calloc, realloc and free with their corresponding counterparts MALLOC, CALLOC, REALLOC and FREE using macros.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188066</commentid>
    <comment_count>9</comment_count>
      <attachid>48198</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-02-04 21:35:21 -0800</bug_when>
    <thetext>Created attachment 48198
FastMalloc

Move the code to SystemMallocBrew.h and include it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188866</commentid>
    <comment_count>10</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-08 19:21:37 -0800</bug_when>
    <thetext>So BREW has a stdlib.h which defines malloc?  But it just doesn&apos;t have a malloc() implementation?

In which case, why aren&apos;t we just providing a malloc implementation?  Why doesn&apos;t BREW?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>188868</commentid>
    <comment_count>11</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-02-08 19:41:04 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; So BREW has a stdlib.h which defines malloc?  But it just doesn&apos;t have a
&gt; malloc() implementation?
&gt; 
&gt; In which case, why aren&apos;t we just providing a malloc implementation?  Why
&gt; doesn&apos;t BREW?

The situation is a bit complicated here. BREW does have malloc() implementation as compilers provide it. However, malloc() does not work correctly because the BREW loader does not initialize the heap base address and size properly. BREW applications must use macros like MALLOC and FREE to access the system heap.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>191250</commentid>
    <comment_count>12</comment_count>
      <attachid>48198</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-17 15:17:52 -0800</bug_when>
    <thetext>Comment on attachment 48198
FastMalloc

Please add a comment before the #defines explaining why they&apos;re the right thing to do. Similar perhaps to how you explained things in teh bug.  That although BREW defines &quot;malloc()&quot; you can&apos;t use it because the loader does not initialize the base address properly.  (Is this a bug in brew?  If so, is there a bug url tracking it?  If so, you should include it.)

Once we have enough justification in the code, we can land this kind of hack.  As is I think this code would just confuse future folks trying to read it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192408</commentid>
    <comment_count>13</comment_count>
      <attachid>49196</attachid>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-02-22 03:46:15 -0800</bug_when>
    <thetext>Created attachment 49196
FastMalloc

Add a comment explaining why we need this kind of hack for malloc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192411</commentid>
    <comment_count>14</comment_count>
    <who name="Kwang Yul Seo">skyul</who>
    <bug_when>2010-02-22 03:49:10 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (From update of attachment 48198 [details])
&gt; Please add a comment before the #defines explaining why they&apos;re the right thing
&gt; to do. Similar perhaps to how you explained things in teh bug.  That although
&gt; BREW defines &quot;malloc()&quot; you can&apos;t use it because the loader does not initialize
&gt; the base address properly.  (Is this a bug in brew?  If so, is there a bug url
&gt; tracking it?  If so, you should include it.)
&gt; 
&gt; Once we have enough justification in the code, we can land this kind of hack. 
&gt; As is I think this code would just confuse future folks trying to read it.

Thank you for your comment, Eric. I added a comment as you suggested. I don&apos;t think it is a bug in BREW. In BREW, many C functions are prohibited just to make the loader simple.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192520</commentid>
    <comment_count>15</comment_count>
      <attachid>49196</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-02-22 10:46:34 -0800</bug_when>
    <thetext>Comment on attachment 49196
FastMalloc

OK.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192532</commentid>
    <comment_count>16</comment_count>
      <attachid>49196</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-22 11:02:57 -0800</bug_when>
    <thetext>Comment on attachment 49196
FastMalloc

Clearing flags on attachment: 49196

Committed r55091: &lt;http://trac.webkit.org/changeset/55091&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>192533</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-02-22 11:03:02 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46422</attachid>
            <date>2010-01-12 19:51:57 -0800</date>
            <delta_ts>2010-01-12 20:00:28 -0800</delta_ts>
            <desc>FastMalloc for BREW</desc>
            <filename>FastMalloc.patch</filename>
            <type>text/plain</type>
            <size>4051</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDUzMTc4KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTAtMDEtMTIgIEt3YW5nIFl1
bCBTZW8gIDxza3l1bEBjb21wYW55MTAwLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYXAgRmFzdE1hbGxvYyB0byBCUkVXIG1lbW9yeSBhbGxv
Y2F0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMz
NTcwCisKKyAgICAgICAgRmFzdE1hbGxvYyBjYW4ndCBiZSBwb3J0ZWQgdG8gQlJFVy4gTWFwIGZh
c3RNYWxsb2MvZmFzdEZyZWUvZmFzdFJlYWxsb2MKKyAgICAgICAgdG8gQlJFVydzIE1BTExPQy9G
UkVFL1JFQUxMT0MgbWFjcm9zLgorCisgICAgICAgICogd3RmL2JyZXc6IEFkZGVkLgorICAgICAg
ICAqIHd0Zi9icmV3L0Zhc3RNYWxsb2NCcmV3LmNwcDogQWRkZWQuCisgICAgICAgIChXVEY6OmZh
c3RNYWxsb2MpOgorICAgICAgICAoV1RGOjpmYXN0Q2FsbG9jKToKKyAgICAgICAgKFdURjo6ZmFz
dEZyZWUpOgorICAgICAgICAoV1RGOjpmYXN0UmVhbGxvYyk6CisgICAgICAgIChXVEY6OmZhc3RN
YWxsb2NGb3JiaWQpOgorICAgICAgICAoV1RGOjpmYXN0TWFsbG9jQWxsb3cpOgorICAgICAgICAo
V1RGOjpmYXN0WmVyb2VkTWFsbG9jKToKKyAgICAgICAgKFdURjo6dHJ5RmFzdE1hbGxvYyk6Cisg
ICAgICAgIChXVEY6OnRyeUZhc3RaZXJvZWRNYWxsb2MpOgorICAgICAgICAoV1RGOjp0cnlGYXN0
Q2FsbG9jKToKKyAgICAgICAgKFdURjo6dHJ5RmFzdFJlYWxsb2MpOgorCiAyMDEwLTAxLTEyICBL
ZW50IEhhbnNlbiAgPGtlbnQuaGFuc2VuQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBHZW9mZnJleSBHYXJlbi4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9icmV3L0Zhc3RNYWxs
b2NCcmV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvYnJldy9GYXN0TWFs
bG9jQnJldy5jcHAJKHJldmlzaW9uIDApCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvYnJldy9GYXN0
TWFsbG9jQnJldy5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDkgQ29tcGFueSAxMDAsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lu
Y2x1ZGUgIkZhc3RNYWxsb2MuaCIKKworI3VuZGVmIENPTVBJTEVfQVNTRVJUCisjaW5jbHVkZSA8
QUVFU3RkTGliLmg+CisKK25hbWVzcGFjZSBXVEYgeworCisjaWYgZGVmaW5lZChVU0VfU1lTVEVN
X01BTExPQykgJiYgVVNFX1NZU1RFTV9NQUxMT0MKKyNlcnJvciBVU0VfU1lTVEVNX01BTExPQyBp
cyBub3Qgc3VwcG9ydGVkIGluIEJSRVcKKyNlbHNlCisgICAgdm9pZCogZmFzdE1hbGxvYyhzaXpl
X3QgbikKKyAgICB7CisgICAgICAgIC8vIEJ5IGRlZmF1bHQsIG1lbW9yeSBhbGxvY2F0ZWQgdXNp
bmcgTUFMTE9DKCkgaXMgaW5pdGlhbGl6ZWQKKyAgICAgICAgLy8gdG8gemVyby4gVGhpcyBiZWhh
dmlvciBjYW4gYmUgZGlzYWJsZWQgYnkgcGVyZm9ybWluZyBhIGJpdHdpc2UKKyAgICAgICAgLy8g
T1Igb2YgdGhlIGZsYWcgQUxMT0NfTk9fWk1FTSB3aXRoIHRoZSBkd1NpemUgcGFyYW1ldGVyLgor
ICAgICAgICByZXR1cm4gTUFMTE9DKG4gfCBBTExPQ19OT19aTUVNKTsKKyAgICB9CisKKyAgICB2
b2lkKiBmYXN0Q2FsbG9jKHNpemVfdCBuX2VsZW1lbnRzLCBzaXplX3QgZWxlbWVudF9zaXplKQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIE1BTExPQyhuX2VsZW1lbnRzICogZWxlbWVudF9zaXplKTsK
KyAgICB9CisKKyAgICB2b2lkIGZhc3RGcmVlKHZvaWQqIHApCisgICAgeworICAgICAgICByZXR1
cm4gRlJFRShwKTsKKyAgICB9CisKKyAgICB2b2lkKiBmYXN0UmVhbGxvYyh2b2lkKiBwLCBzaXpl
X3QgbikKKyAgICB7CisgICAgICAgIHJldHVybiBSRUFMTE9DKHAsIG4gfCBBTExPQ19OT19aTUVN
KTsKKyAgICB9CisjZW5kaWYgLy8gZGVmaW5lZChVU0VfU1lTVEVNX01BTExPQykgJiYgVVNFX1NZ
U1RFTV9NQUxMT0MKKworI2lmbmRlZiBOREVCVUcKKyAgICB2b2lkIGZhc3RNYWxsb2NGb3JiaWQo
KSB7fQorICAgIHZvaWQgZmFzdE1hbGxvY0FsbG93KCkge30KKyNlbmRpZgorCisgICAgdm9pZCog
ZmFzdFplcm9lZE1hbGxvYyhzaXplX3QgbikKKyAgICB7CisgICAgICAgIHZvaWQqIHAgPSBmYXN0
TWFsbG9jKG4pOworICAgICAgICBpZiAocCkKKyAgICAgICAgICAgIE1FTVNFVChwLCAwLCBuKTsK
KyAgICAgICAgcmV0dXJuIHA7CisgICAgfQorCisgICAgVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5
RmFzdE1hbGxvYyhzaXplX3QgbikKKyAgICB7CisgICAgICAgIHJldHVybiBmYXN0TWFsbG9jKG4p
OworICAgIH0KKworICAgIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RaZXJvZWRNYWxsb2Mo
c2l6ZV90IG4pCisgICAgeworICAgICAgICByZXR1cm4gZmFzdFplcm9lZE1hbGxvYyhuKTsKKyAg
ICB9CisKKyAgICBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0cnlGYXN0Q2FsbG9jKHNpemVfdCBuX2Vs
ZW1lbnRzLCBzaXplX3QgZWxlbWVudF9zaXplKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGZhc3RD
YWxsb2Mobl9lbGVtZW50cywgZWxlbWVudF9zaXplKTsKKyAgICB9CisKKyAgICBUcnlNYWxsb2NS
ZXR1cm5WYWx1ZSB0cnlGYXN0UmVhbGxvYyh2b2lkKiBwLCBzaXplX3QgbikKKyAgICB7CisgICAg
ICAgIHJldHVybiBmYXN0UmVhbGxvYyhwLCBuKTsKKyAgICB9CisKK30gLy8gbmFtZXNwYWNlIFdU
RgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46423</attachid>
            <date>2010-01-12 20:00:28 -0800</date>
            <delta_ts>2010-01-22 21:58:55 -0800</delta_ts>
            <desc>FastMalloc for BREW</desc>
            <filename>FastMalloc.patch</filename>
            <type>text/plain</type>
            <size>3875</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDUzMTc4KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTAtMDEtMTIgIEt3YW5nIFl1
bCBTZW8gIDxza3l1bEBjb21wYW55MTAwLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNYXAgRmFzdE1hbGxvYyB0byBCUkVXIG1lbW9yeSBhbGxv
Y2F0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTMz
NTcwCisKKyAgICAgICAgRmFzdE1hbGxvYyBjYW4ndCBiZSBwb3J0ZWQgdG8gQlJFVy4gTWFwIGZh
c3RNYWxsb2MvZmFzdEZyZWUvZmFzdFJlYWxsb2MKKyAgICAgICAgdG8gQlJFVydzIE1BTExPQy9G
UkVFL1JFQUxMT0MgbWFjcm9zLgorCisgICAgICAgICogd3RmL2JyZXc6IEFkZGVkLgorICAgICAg
ICAqIHd0Zi9icmV3L0Zhc3RNYWxsb2NCcmV3LmNwcDogQWRkZWQuCisgICAgICAgIChXVEY6OmZh
c3RNYWxsb2MpOgorICAgICAgICAoV1RGOjpmYXN0Q2FsbG9jKToKKyAgICAgICAgKFdURjo6ZmFz
dEZyZWUpOgorICAgICAgICAoV1RGOjpmYXN0UmVhbGxvYyk6CisgICAgICAgIChXVEY6OmZhc3RN
YWxsb2NGb3JiaWQpOgorICAgICAgICAoV1RGOjpmYXN0TWFsbG9jQWxsb3cpOgorICAgICAgICAo
V1RGOjpmYXN0WmVyb2VkTWFsbG9jKToKKyAgICAgICAgKFdURjo6dHJ5RmFzdE1hbGxvYyk6Cisg
ICAgICAgIChXVEY6OnRyeUZhc3RaZXJvZWRNYWxsb2MpOgorICAgICAgICAoV1RGOjp0cnlGYXN0
Q2FsbG9jKToKKyAgICAgICAgKFdURjo6dHJ5RmFzdFJlYWxsb2MpOgorCiAyMDEwLTAxLTEyICBL
ZW50IEhhbnNlbiAgPGtlbnQuaGFuc2VuQG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBi
eSBHZW9mZnJleSBHYXJlbi4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9icmV3L0Zhc3RNYWxs
b2NCcmV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvYnJldy9GYXN0TWFs
bG9jQnJldy5jcHAJKHJldmlzaW9uIDApCisrKyBKYXZhU2NyaXB0Q29yZS93dGYvYnJldy9GYXN0
TWFsbG9jQnJldy5jcHAJKHJldmlzaW9uIDApCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMDkgQ29tcGFueSAxMDAsIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRo
YXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRo
b3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAqICBNRVJDSEFOVEFCSUxJVFkgb3Ig
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqICBZb3Ug
c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1
YmxpYyBMaWNlbnNlCisgKiAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBD
T1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KKyAqICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3Vu
ZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogIEJvc3Rv
biwgTUEgMDIxMTAtMTMwMSwgVVNBLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2lu
Y2x1ZGUgIkZhc3RNYWxsb2MuaCIKKworI3VuZGVmIENPTVBJTEVfQVNTRVJUCisjaW5jbHVkZSA8
QUVFU3RkTGliLmg+CisKK25hbWVzcGFjZSBXVEYgeworCisjaWYgZGVmaW5lZChVU0VfU1lTVEVN
X01BTExPQykgJiYgVVNFX1NZU1RFTV9NQUxMT0MKKyNlcnJvciBVU0VfU1lTVEVNX01BTExPQyBp
cyBub3Qgc3VwcG9ydGVkIGluIEJSRVcKKyNlbHNlCit2b2lkKiBmYXN0TWFsbG9jKHNpemVfdCBu
KQoreworICAgIC8vIEJ5IGRlZmF1bHQsIG1lbW9yeSBhbGxvY2F0ZWQgdXNpbmcgTUFMTE9DKCkg
aXMgaW5pdGlhbGl6ZWQKKyAgICAvLyB0byB6ZXJvLiBUaGlzIGJlaGF2aW9yIGNhbiBiZSBkaXNh
YmxlZCBieSBwZXJmb3JtaW5nIGEgYml0d2lzZQorICAgIC8vIE9SIG9mIHRoZSBmbGFnIEFMTE9D
X05PX1pNRU0gd2l0aCB0aGUgZHdTaXplIHBhcmFtZXRlci4KKyAgICByZXR1cm4gTUFMTE9DKG4g
fCBBTExPQ19OT19aTUVNKTsKK30KKwordm9pZCogZmFzdENhbGxvYyhzaXplX3QgbnVtRWxlbWVu
dHMsIHNpemVfdCBlbGVtZW50U2l6ZSkKK3sKKyAgICByZXR1cm4gTUFMTE9DKG51bUVsZW1lbnRz
ICogZWxlbWVudFNpemUpOworfQorCit2b2lkIGZhc3RGcmVlKHZvaWQqIHApCit7CisgICAgcmV0
dXJuIEZSRUUocCk7Cit9CisKK3ZvaWQqIGZhc3RSZWFsbG9jKHZvaWQqIHAsIHNpemVfdCBuKQor
eworICAgIHJldHVybiBSRUFMTE9DKHAsIG4gfCBBTExPQ19OT19aTUVNKTsKK30KKyNlbmRpZiAv
LyBkZWZpbmVkKFVTRV9TWVNURU1fTUFMTE9DKSAmJiBVU0VfU1lTVEVNX01BTExPQworCisjaWZu
ZGVmIE5ERUJVRwordm9pZCBmYXN0TWFsbG9jRm9yYmlkKCkge30KK3ZvaWQgZmFzdE1hbGxvY0Fs
bG93KCkge30KKyNlbmRpZgorCit2b2lkKiBmYXN0WmVyb2VkTWFsbG9jKHNpemVfdCBuKQorewor
ICAgIHZvaWQqIHAgPSBmYXN0TWFsbG9jKG4pOworICAgIGlmIChwKQorICAgICAgICBNRU1TRVQo
cCwgMCwgbik7CisgICAgcmV0dXJuIHA7Cit9CisKK1RyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZh
c3RNYWxsb2Moc2l6ZV90IG4pCit7CisgICAgcmV0dXJuIGZhc3RNYWxsb2Mobik7Cit9CisKK1Ry
eU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RaZXJvZWRNYWxsb2Moc2l6ZV90IG4pCit7CisgICAg
cmV0dXJuIGZhc3RaZXJvZWRNYWxsb2Mobik7Cit9CisKK1RyeU1hbGxvY1JldHVyblZhbHVlIHRy
eUZhc3RDYWxsb2Moc2l6ZV90IG51bUVsZW1lbnRzLCBzaXplX3QgZWxlbWVudFNpemUpCit7Cisg
ICAgcmV0dXJuIGZhc3RDYWxsb2MobnVtRWxlbWVudHMsIGVsZW1lbnRTaXplKTsKK30KKworVHJ5
TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdFJlYWxsb2Modm9pZCogcCwgc2l6ZV90IG4pCit7Cisg
ICAgcmV0dXJuIGZhc3RSZWFsbG9jKHAsIG4pOworfQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>47266</attachid>
            <date>2010-01-22 21:58:55 -0800</date>
            <delta_ts>2010-02-03 21:28:17 -0800</delta_ts>
            <desc>FastMalloc</desc>
            <filename>FastMalloc.patch</filename>
            <type>text/plain</type>
            <size>4039</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDUzNzYwKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTAtMDEtMjIgIEt3YW5nIFl1
bCBTZW8gIDxza3l1bEBjb21wYW55MTAwLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbQlJFV01QXSBNYXAgRmFzdE1hbGxvYyB0byBCUkVXIG1l
bW9yeSBhbGxvY2F0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTMzNTcwCisKKyAgICAgICAgTWFwIGZhc3RNYWxsb2MvZmFzdEZyZWUvZmFzdFJlYWxs
b2MgdG8gQlJFVydzIE1BTExPQy9GUkVFL1JFQUxMT0MgbWFjcm9zLgorCisgICAgICAgICogd3Rm
L2JyZXcvRmFzdE1hbGxvY0JyZXcuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURjo6ZmFzdE1hbGxv
Yyk6CisgICAgICAgIChXVEY6OmZhc3RDYWxsb2MpOgorICAgICAgICAoV1RGOjpmYXN0RnJlZSk6
CisgICAgICAgIChXVEY6OmZhc3RSZWFsbG9jKToKKyAgICAgICAgKFdURjo6ZmFzdE1hbGxvY0Zv
cmJpZCk6CisgICAgICAgIChXVEY6OmZhc3RNYWxsb2NBbGxvdyk6CisgICAgICAgIChXVEY6OmZh
c3RaZXJvZWRNYWxsb2MpOgorICAgICAgICAoV1RGOjpmYXN0U3RyRHVwKToKKyAgICAgICAgKFdU
Rjo6dHJ5RmFzdE1hbGxvYyk6CisgICAgICAgIChXVEY6OnRyeUZhc3RaZXJvZWRNYWxsb2MpOgor
ICAgICAgICAoV1RGOjp0cnlGYXN0Q2FsbG9jKToKKyAgICAgICAgKFdURjo6dHJ5RmFzdFJlYWxs
b2MpOgorCiAyMDEwLTAxLTIyICBLZXZpbiBXYXR0ZXJzICA8a2V2aW53YXR0ZXJzQGdtYWlsLmNv
bT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZXZpbiBPbGxpdmllci4KSW5kZXg6IEphdmFTY3Jp
cHRDb3JlL3d0Zi9icmV3L0Zhc3RNYWxsb2NCcmV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS93dGYvYnJldy9GYXN0TWFsbG9jQnJldy5jcHAJKHJldmlzaW9uIDApCisrKyBKYXZh
U2NyaXB0Q29yZS93dGYvYnJldy9GYXN0TWFsbG9jQnJldy5jcHAJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsMTA1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDA5IENvbXBhbnkgMTAwLCBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogIFRoaXMgbGlicmFyeSBpcyBk
aXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAorICogIGJ1dCBX
SVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9m
CisgKiAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
LiAgU2VlIHRoZSBHTlUKKyAqICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1v
cmUgZGV0YWlscy4KKyAqCisgKiAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0
aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQorICogIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0
LCBGaWZ0aCBGbG9vciwKKyAqICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KKyAqLworCisj
aW5jbHVkZSAiY29uZmlnLmgiCisKKyNpbmNsdWRlICJGYXN0TWFsbG9jLmgiCisKKyN1bmRlZiBD
T01QSUxFX0FTU0VSVAorI2luY2x1ZGUgPEFFRVN0ZExpYi5oPgorCituYW1lc3BhY2UgV1RGIHsK
KworI2lmIGRlZmluZWQoVVNFX1NZU1RFTV9NQUxMT0MpICYmIFVTRV9TWVNURU1fTUFMTE9DCisj
ZXJyb3IgVVNFX1NZU1RFTV9NQUxMT0MgaXMgbm90IHN1cHBvcnRlZCBpbiBCUkVXCisjZWxzZQor
dm9pZCogZmFzdE1hbGxvYyhzaXplX3QgbikKK3sKKyAgICAvLyBCeSBkZWZhdWx0LCBtZW1vcnkg
YWxsb2NhdGVkIHVzaW5nIE1BTExPQygpIGlzIGluaXRpYWxpemVkCisgICAgLy8gdG8gemVyby4g
VGhpcyBiZWhhdmlvciBjYW4gYmUgZGlzYWJsZWQgYnkgcGVyZm9ybWluZyBhIGJpdHdpc2UKKyAg
ICAvLyBPUiBvZiB0aGUgZmxhZyBBTExPQ19OT19aTUVNIHdpdGggdGhlIGR3U2l6ZSBwYXJhbWV0
ZXIuCisgICAgcmV0dXJuIE1BTExPQyhuIHwgQUxMT0NfTk9fWk1FTSk7Cit9CisKK3ZvaWQqIGZh
c3RDYWxsb2Moc2l6ZV90IG51bUVsZW1lbnRzLCBzaXplX3QgZWxlbWVudFNpemUpCit7CisgICAg
cmV0dXJuIE1BTExPQyhudW1FbGVtZW50cyAqIGVsZW1lbnRTaXplKTsKK30KKwordm9pZCBmYXN0
RnJlZSh2b2lkKiBwKQoreworICAgIHJldHVybiBGUkVFKHApOworfQorCit2b2lkKiBmYXN0UmVh
bGxvYyh2b2lkKiBwLCBzaXplX3QgbikKK3sKKyAgICByZXR1cm4gUkVBTExPQyhwLCBuIHwgQUxM
T0NfTk9fWk1FTSk7Cit9CisjZW5kaWYgLy8gZGVmaW5lZChVU0VfU1lTVEVNX01BTExPQykgJiYg
VVNFX1NZU1RFTV9NQUxMT0MKKworI2lmbmRlZiBOREVCVUcKK3ZvaWQgZmFzdE1hbGxvY0ZvcmJp
ZCgpIHt9Cit2b2lkIGZhc3RNYWxsb2NBbGxvdygpIHt9CisjZW5kaWYKKwordm9pZCogZmFzdFpl
cm9lZE1hbGxvYyhzaXplX3QgbikKK3sKKyAgICB2b2lkKiBwID0gZmFzdE1hbGxvYyhuKTsKKyAg
ICBpZiAocCkKKyAgICAgICAgbWVtc2V0KHAsIDAsIG4pOworICAgIHJldHVybiBwOworfQorCitj
aGFyKiBmYXN0U3RyRHVwKGNvbnN0IGNoYXIqIHNyYykKK3sKKyAgICBpbnQgbGVuID0gc3RybGVu
KHNyYykgKyAxOworICAgIGNoYXIqIGR1cCA9IHN0YXRpY19jYXN0PGNoYXIqPihmYXN0TWFsbG9j
KGxlbikpOworCisgICAgaWYgKGR1cCkKKyAgICAgICAgbWVtY3B5KGR1cCwgc3JjLCBsZW4pOwor
CisgICAgcmV0dXJuIGR1cDsKK30KKworVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdE1hbGxv
YyhzaXplX3QgbikKK3sKKyAgICByZXR1cm4gZmFzdE1hbGxvYyhuKTsKK30KKworVHJ5TWFsbG9j
UmV0dXJuVmFsdWUgdHJ5RmFzdFplcm9lZE1hbGxvYyhzaXplX3QgbikKK3sKKyAgICByZXR1cm4g
ZmFzdFplcm9lZE1hbGxvYyhuKTsKK30KKworVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdENh
bGxvYyhzaXplX3QgbnVtRWxlbWVudHMsIHNpemVfdCBlbGVtZW50U2l6ZSkKK3sKKyAgICByZXR1
cm4gZmFzdENhbGxvYyhudW1FbGVtZW50cywgZWxlbWVudFNpemUpOworfQorCitUcnlNYWxsb2NS
ZXR1cm5WYWx1ZSB0cnlGYXN0UmVhbGxvYyh2b2lkKiBwLCBzaXplX3QgbikKK3sKKyAgICByZXR1
cm4gZmFzdFJlYWxsb2MocCwgbik7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgorCg==
</data>
<flag name="review"
          id="29674"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48099</attachid>
            <date>2010-02-03 21:28:17 -0800</date>
            <delta_ts>2010-02-04 21:35:21 -0800</delta_ts>
            <desc>FastMalloc</desc>
            <filename>FastMalloc.patch</filename>
            <type>text/plain</type>
            <size>1988</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU0MzIyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDItMDMgIEt3YW5nIFl1
bCBTZW8gIDxza3l1bEBjb21wYW55MTAwLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbQlJFV01QXSBNYXAgRmFzdE1hbGxvYyB0byBCUkVXIG1l
bW9yeSBhbGxvY2F0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTMzNTcwCisKKyAgICAgICAgUmVwbGFjZSB0aGUgc3lzdGVtIG1hbGxvYyB3aXRoIEJS
RVcncyBNQUxMT0MvQ0FMTE9DL1JFQUxMT0MvRlJFRQorICAgICAgICBtYWNyb3MuIEFzIHN0YW5k
YXJkIEMgbWFsbG9jIGZ1bmN0aW9ucyBhcmUgbm90IGF2YWlsYWJsZSBpbgorICAgICAgICBCUkVX
LgorCisgICAgICAgICogd3RmL0Zhc3RNYWxsb2MuY3BwOgorICAgICAgICAobWFsbG9jQnJldyk6
CisgICAgICAgIChjYWxsb2NCcmV3KToKKyAgICAgICAgKGZyZWVCcmV3KToKKyAgICAgICAgKHJl
YWxsb2NCcmV3KToKKwogMjAxMC0wMi0wMyAgS3dhbmcgWXVsIFNlbyAgPHNreXVsQGNvbXBhbnkx
MDAubmV0PgogCiAgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpJbmRleDogSmF2YVNj
cmlwdENvcmUvd3RmL0Zhc3RNYWxsb2MuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3Jl
L3d0Zi9GYXN0TWFsbG9jLmNwcAkocmV2aXNpb24gNTQzMjIpCisrKyBKYXZhU2NyaXB0Q29yZS93
dGYvRmFzdE1hbGxvYy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNCw2ICsyMDQsNDIgQEAgVHJ5
TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdFplcm9lZE1hbGxvYwogCiAjaWYgRk9SQ0VfU1lTVEVN
X01BTExPQwogCisjaWYgUExBVEZPUk0oQlJFV01QKQorCisjaW5jbHVkZSA8QUVFU3RkTGliLmg+
CisKKy8vIEluIEJSRVdNUCwgTUFMTE9DL0NBTExPQy9SRUFMTE9DL0ZSRUUgYXJlIHN5c3RlbS1t
YWxsb2MgZnVuY3Rpb25zLgorCitzdGF0aWMgaW5saW5lIHZvaWQqIG1hbGxvY0JyZXcoc2l6ZV90
IG4pCit7CisgICAgLy8gQnkgZGVmYXVsdCwgbWVtb3J5IGFsbG9jYXRlZCB1c2luZyBNQUxMT0Mo
KSBpcyBpbml0aWFsaXplZAorICAgIC8vIHRvIHplcm8uIFRoaXMgYmVoYXZpb3IgY2FuIGJlIGRp
c2FibGVkIGJ5IHBlcmZvcm1pbmcgYSBiaXR3aXNlCisgICAgLy8gT1Igb2YgdGhlIGZsYWcgQUxM
T0NfTk9fWk1FTSB3aXRoIHRoZSBkd1NpemUgcGFyYW1ldGVyLgorICAgIHJldHVybiBNQUxMT0Mo
biB8IEFMTE9DX05PX1pNRU0pOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQqIGNhbGxvY0JyZXco
c2l6ZV90IG51bUVsZW1lbnRzLCBzaXplX3QgZWxlbWVudFNpemUpCit7CisgICAgcmV0dXJuIE1B
TExPQyhudW1FbGVtZW50cyAqIGVsZW1lbnRTaXplKTsKK30KKworc3RhdGljIGlubGluZSB2b2lk
IGZyZWVCcmV3KHZvaWQqIHApCit7CisgICAgcmV0dXJuIEZSRUUocCk7Cit9CisKK3N0YXRpYyBp
bmxpbmUgdm9pZCogcmVhbGxvY0JyZXcodm9pZCogcCwgc2l6ZV90IG4pCit7CisgICAgcmV0dXJu
IFJFQUxMT0MocCwgbiB8IEFMTE9DX05PX1pNRU0pOworfQorCisjZGVmaW5lIG1hbGxvYyBtYWxs
b2NCcmV3CisjZGVmaW5lIGNhbGxvYyBjYWxsb2NCcmV3CisjZGVmaW5lIHJlYWxsb2MgcmVhbGxv
Y0JyZXcKKyNkZWZpbmUgZnJlZSBmcmVlQnJldworCisjZW5kaWYKKwogbmFtZXNwYWNlIFdURiB7
CiAKIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RNYWxsb2Moc2l6ZV90IG4pIAo=
</data>
<flag name="review"
          id="30720"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>48198</attachid>
            <date>2010-02-04 21:35:21 -0800</date>
            <delta_ts>2010-02-22 03:46:15 -0800</delta_ts>
            <desc>FastMalloc</desc>
            <filename>SystemMallocBrew.patch</filename>
            <type>text/plain</type>
            <size>4024</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU0NDAyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTAtMDItMDQgIEt3YW5nIFl1
bCBTZW8gIDxza3l1bEBjb21wYW55MTAwLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbQlJFV01QXSBNYXAgRmFzdE1hbGxvYyB0byBCUkVXIG1l
bW9yeSBhbGxvY2F0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTMzNTcwCisKKyAgICAgICAgUmVwbGFjZSB0aGUgc3lzdGVtIG1hbGxvYyB3aXRoIEJS
RVcncyBNQUxMT0MvQ0FMTE9DL1JFQUxMT0MvRlJFRQorICAgICAgICBtYWNyb3MuIEFzIHN0YW5k
YXJkIEMgbWFsbG9jIGZ1bmN0aW9ucyBzaG91bGRuJ3QgYmUgdXNlZCBpbiBCUkVXLgorCisgICAg
ICAgICogd3RmL0Zhc3RNYWxsb2MuY3BwOgorICAgICAgICAqIHd0Zi9icmV3L1N5c3RlbU1hbGxv
Y0JyZXcuaDogQWRkZWQuCisgICAgICAgIChtYWxsb2NCcmV3KToKKyAgICAgICAgKGNhbGxvY0Jy
ZXcpOgorICAgICAgICAoZnJlZUJyZXcpOgorICAgICAgICAocmVhbGxvY0JyZXcpOgorCiAyMDEw
LTAyLTA0ICBHZW9mZnJleSBHYXJlbiAgPGdnYXJlbkBhcHBsZS5jb20+CiAKICAgICAgICAgQnVp
bGQgZml4OiBleHBvcnQgYSBoZWFkZXIuCkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvRmFzdE1h
bGxvYy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL0Zhc3RNYWxsb2MuY3Bw
CShyZXZpc2lvbiA1NDQwMikKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9GYXN0TWFsbG9jLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMjA0LDYgKzIwNCwxMCBAQCBUcnlNYWxsb2NSZXR1cm5WYWx1ZSB0
cnlGYXN0WmVyb2VkTWFsbG9jCiAKICNpZiBGT1JDRV9TWVNURU1fTUFMTE9DCiAKKyNpZiBQTEFU
Rk9STShCUkVXTVApCisjaW5jbHVkZSAiYnJldy9TeXN0ZW1NYWxsb2NCcmV3LmgiCisjZW5kaWYK
KwogbmFtZXNwYWNlIFdURiB7CiAKIFRyeU1hbGxvY1JldHVyblZhbHVlIHRyeUZhc3RNYWxsb2Mo
c2l6ZV90IG4pIApJbmRleDogSmF2YVNjcmlwdENvcmUvd3RmL2JyZXcvU3lzdGVtTWFsbG9jQnJl
dy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL3d0Zi9icmV3L1N5c3RlbU1hbGxvY0Jy
ZXcuaAkocmV2aXNpb24gMCkKKysrIEphdmFTY3JpcHRDb3JlL3d0Zi9icmV3L1N5c3RlbU1hbGxv
Y0JyZXcuaAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxMCBDb21wYW55IDEwMCwgSW5jLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4gCisgKiAyLiAgUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4gCisgKiAzLiAgTmVp
dGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBu
YW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uIAorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBB
TkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwor
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgU3lzdGVtTWFsbG9jQnJld19oCisj
ZGVmaW5lIFN5c3RlbU1hbGxvY0JyZXdfaAorCisjaW5jbHVkZSA8QUVFU3RkTGliLmg+CisKKy8v
IEluIEJSRVdNUCwgTUFMTE9DL0NBTExPQy9SRUFMTE9DL0ZSRUUgYXJlIHN5c3RlbS1tYWxsb2Mg
ZnVuY3Rpb25zLgorCitzdGF0aWMgaW5saW5lIHZvaWQqIG1hbGxvY0JyZXcoc2l6ZV90IG4pCit7
CisgICAgLy8gQnkgZGVmYXVsdCwgbWVtb3J5IGFsbG9jYXRlZCB1c2luZyBNQUxMT0MoKSBpcyBp
bml0aWFsaXplZAorICAgIC8vIHRvIHplcm8uIFRoaXMgYmVoYXZpb3IgY2FuIGJlIGRpc2FibGVk
IGJ5IHBlcmZvcm1pbmcgYSBiaXR3aXNlCisgICAgLy8gT1Igb2YgdGhlIGZsYWcgQUxMT0NfTk9f
Wk1FTSB3aXRoIHRoZSBkd1NpemUgcGFyYW1ldGVyLgorICAgIHJldHVybiBNQUxMT0MobiB8IEFM
TE9DX05PX1pNRU0pOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQqIGNhbGxvY0JyZXcoc2l6ZV90
IG51bUVsZW1lbnRzLCBzaXplX3QgZWxlbWVudFNpemUpCit7CisgICAgcmV0dXJuIE1BTExPQyhu
dW1FbGVtZW50cyAqIGVsZW1lbnRTaXplKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkIGZyZWVC
cmV3KHZvaWQqIHApCit7CisgICAgcmV0dXJuIEZSRUUocCk7Cit9CisKK3N0YXRpYyBpbmxpbmUg
dm9pZCogcmVhbGxvY0JyZXcodm9pZCogcCwgc2l6ZV90IG4pCit7CisgICAgcmV0dXJuIFJFQUxM
T0MocCwgbiB8IEFMTE9DX05PX1pNRU0pOworfQorCisjZGVmaW5lIG1hbGxvYyhuKSBtYWxsb2NC
cmV3KG4pCisjZGVmaW5lIGNhbGxvYyhuLCBzKSBjYWxsb2NCcmV3KG4sIHMpCisjZGVmaW5lIHJl
YWxsb2MocCwgbikgcmVhbGxvY0JyZXcocCwgbikKKyNkZWZpbmUgZnJlZShwKSBmcmVlQnJldyhw
KQorCisjZW5kaWYgLy8gU3lzdGVtTWFsbG9jQnJld19oCg==
</data>
<flag name="review"
          id="30837"
          type_id="1"
          status="-"
          setter="eric"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>49196</attachid>
            <date>2010-02-22 03:46:15 -0800</date>
            <delta_ts>2010-02-22 11:02:57 -0800</delta_ts>
            <desc>FastMalloc</desc>
            <filename>SystemMallocBrew.patch</filename>
            <type>text/plain</type>
            <size>4204</size>
            <attacher name="Kwang Yul Seo">skyul</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDU1MDc2KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTAtMDItMjIgIEt3YW5nIFl1
bCBTZW8gIDxza3l1bEBjb21wYW55MTAwLm5ldD4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBbQlJFV01QXSBNYXAgRmFzdE1hbGxvYyB0byBCUkVXIG1l
bW9yeSBhbGxvY2F0b3IKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTMzNTcwCisKKyAgICAgICAgVXNlIE1BTExPQyBtYWNybyBpbnN0ZWFkIG9mIHRoZSBz
dGFuZGFyZCBtYWxsb2MgZnVuY3Rpb24uCisgICAgICAgIEFsdGhvdWdoIFJWQ1QgcHJvdmlkZXMg
bWFsbG9jLCB3ZSBjYW4ndCB1c2UgaXQgaW4gQlJFVworICAgICAgICBiZWNhdXNlIHRoZSBsb2Fk
ZXIgZG9lcyBub3QgaW5pdGlhbGl6ZSB0aGUgYmFzZSBhZGRyZXNzIHByb3Blcmx5LgorCisgICAg
ICAgICogd3RmL0Zhc3RNYWxsb2MuY3BwOgorICAgICAgICAqIHd0Zi9icmV3L1N5c3RlbU1hbGxv
Y0JyZXcuaDogQWRkZWQuCisgICAgICAgIChtYWxsb2NCcmV3KToKKyAgICAgICAgKGNhbGxvY0Jy
ZXcpOgorICAgICAgICAoZnJlZUJyZXcpOgorICAgICAgICAocmVhbGxvY0JyZXcpOgorCiAyMDEw
LTAyLTIxICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL3d0Zi9G
YXN0TWFsbG9jLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS93dGYvRmFzdE1hbGxv
Yy5jcHAJKHJldmlzaW9uIDU1MDY3KQorKysgSmF2YVNjcmlwdENvcmUvd3RmL0Zhc3RNYWxsb2Mu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDQsNiArMjA0LDEwIEBAIFRyeU1hbGxvY1JldHVyblZh
bHVlIHRyeUZhc3RaZXJvZWRNYWxsb2MKIAogI2lmIEZPUkNFX1NZU1RFTV9NQUxMT0MKIAorI2lm
IFBMQVRGT1JNKEJSRVdNUCkKKyNpbmNsdWRlICJicmV3L1N5c3RlbU1hbGxvY0JyZXcuaCIKKyNl
bmRpZgorCiBuYW1lc3BhY2UgV1RGIHsKIAogVHJ5TWFsbG9jUmV0dXJuVmFsdWUgdHJ5RmFzdE1h
bGxvYyhzaXplX3QgbikgCkluZGV4OiBKYXZhU2NyaXB0Q29yZS93dGYvYnJldy9TeXN0ZW1NYWxs
b2NCcmV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvd3RmL2JyZXcvU3lzdGVtTWFs
bG9jQnJldy5oCShyZXZpc2lvbiAwKQorKysgSmF2YVNjcmlwdENvcmUvd3RmL2JyZXcvU3lzdGVt
TWFsbG9jQnJldy5oCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDY1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIENvbXBhbnkgMTAwLCBJbmMuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLiAKKyAqIDIu
ICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLiAKKyAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIENvbXB1dGVyLCBJbmMuICgiQXBwbGUiKSBub3Ig
dGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRv
cnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2Fy
ZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4gCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBTeXN0ZW1NYWxsb2NCcmV3
X2gKKyNkZWZpbmUgU3lzdGVtTWFsbG9jQnJld19oCisKKyNpbmNsdWRlIDxBRUVTdGRMaWIuaD4K
Kworc3RhdGljIGlubGluZSB2b2lkKiBtYWxsb2NCcmV3KHNpemVfdCBuKQoreworICAgIC8vIEJ5
IGRlZmF1bHQsIG1lbW9yeSBhbGxvY2F0ZWQgdXNpbmcgTUFMTE9DKCkgaXMgaW5pdGlhbGl6ZWQK
KyAgICAvLyB0byB6ZXJvLiBUaGlzIGJlaGF2aW9yIGNhbiBiZSBkaXNhYmxlZCBieSBwZXJmb3Jt
aW5nIGEgYml0d2lzZQorICAgIC8vIE9SIG9mIHRoZSBmbGFnIEFMTE9DX05PX1pNRU0gd2l0aCB0
aGUgZHdTaXplIHBhcmFtZXRlci4KKyAgICByZXR1cm4gTUFMTE9DKG4gfCBBTExPQ19OT19aTUVN
KTsKK30KKworc3RhdGljIGlubGluZSB2b2lkKiBjYWxsb2NCcmV3KHNpemVfdCBudW1FbGVtZW50
cywgc2l6ZV90IGVsZW1lbnRTaXplKQoreworICAgIHJldHVybiBNQUxMT0MobnVtRWxlbWVudHMg
KiBlbGVtZW50U2l6ZSk7Cit9CisKK3N0YXRpYyBpbmxpbmUgdm9pZCBmcmVlQnJldyh2b2lkKiBw
KQoreworICAgIHJldHVybiBGUkVFKHApOworfQorCitzdGF0aWMgaW5saW5lIHZvaWQqIHJlYWxs
b2NCcmV3KHZvaWQqIHAsIHNpemVfdCBuKQoreworICAgIHJldHVybiBSRUFMTE9DKHAsIG4gfCBB
TExPQ19OT19aTUVNKTsKK30KKworLy8gVXNlIE1BTExPQyBtYWNybyBpbnN0ZWFkIG9mIHRoZSBz
dGFuZGFyZCBtYWxsb2MgZnVuY3Rpb24uCisvLyBBbHRob3VnaCBSVkNUIHByb3ZpZGVzIG1hbGxv
Yywgd2UgY2FuJ3QgdXNlIGl0IGluIEJSRVcKKy8vIGJlY2F1c2UgdGhlIGxvYWRlciBkb2VzIG5v
dCBpbml0aWFsaXplIHRoZSBiYXNlIGFkZHJlc3MgcHJvcGVybHkuCisjZGVmaW5lIG1hbGxvYyhu
KSBtYWxsb2NCcmV3KG4pCisjZGVmaW5lIGNhbGxvYyhuLCBzKSBjYWxsb2NCcmV3KG4sIHMpCisj
ZGVmaW5lIHJlYWxsb2MocCwgbikgcmVhbGxvY0JyZXcocCwgbikKKyNkZWZpbmUgZnJlZShwKSBm
cmVlQnJldyhwKQorCisjZW5kaWYgLy8gU3lzdGVtTWFsbG9jQnJld19oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>