1 <?xml version="1.0" encoding="iso-2022-jp"?>
2 <!DOCTYPE modulesynopsis SYSTEM "../style/modulesynopsis.dtd">
3 <?xml-stylesheet type="text/xsl" href="../style/manual.ja.xsl"?>
4 <!-- English Revision: 1.24 -->
7 Copyright 2002-2004 The Apache Software Foundation
9 Licensed under the Apache License, Version 2.0 (the "License");
10 you may not use this file except in compliance with the License.
11 You may obtain a copy of the License at
13 http://www.apache.org/licenses/LICENSE-2.0
15 Unless required by applicable law or agreed to in writing, software
16 distributed under the License is distributed on an "AS IS" BASIS,
17 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18 See the License for the specific language governing permissions and
19 limitations under the License.
22 <modulesynopsis metafile="mod_deflate.xml.meta">
24 <name>mod_deflate</name>
25 <description>
\e$B%/%i%$%"%s%H$XAw$i$l$kA0$K%3%s%F%s%D$r05=L$9$k
\e(B</description>
26 <status>Extension</status>
27 <sourcefile>mod_deflate.c</sourcefile>
28 <identifier>deflate_module</identifier>
31 <p><module>mod_deflate</module>
\e$B%b%8%e!<%k$O
\e(B <code>DEFLATE</code>
32 \e$B=PNO%U%#%k%?$rDs6!$7$^$9!#$3$l$O%5!<%P$+$i$N=PNO$r!"%M%C%H%o!<%/$r
\e(B
33 \e$BDL$7$F%/%i%$%"%s%H$KAw$kA0$K05=L$9$k$3$H$r2DG=$K$7$^$9!#
\e(B</p>
35 <seealso><a href="../filter.html">Filters</a></seealso>
37 <section id="recommended"><title>
\e$B%5%s%W%k@_Dj
\e(B</title>
38 <p>
\e$B2<$K$;$C$+$A$J?M8~$1$N4JC1$J@_DjNc$r<($7$^$9!#
\e(B</p>
40 <example><title>
\e$B?t%?%$%W$N$_05=L$9$k
\e(B</title>
41 AddOutputFilterByType DEFLATE text/html text/plain text/xml
44 <p>
\e$B0J2<$N@_Dj$O%3%s%F%s%D$r$h$j05=L$7$^$9$,!"$:$C$HJ#;($J@_Dj$K$J$j$^$9!#
\e(B
45 \e$B@_Dj$N6y!9$^$G$h$/M}2r$7$J$$$G;H$o$J$$$G$/$@$5$$!#
\e(B</p>
47 <example><title>
\e$B2hA|0J30A4$F05=L$9$k
\e(B</title>
48 <Location /><br />
51 SetOutputFilter DEFLATE<br />
53 # Netscape 4.x has some problems...<br />
54 BrowserMatch ^Mozilla/4 gzip-only-text/html<br />
56 # Netscape 4.06-4.08 have some more problems<br />
57 BrowserMatch ^Mozilla/4\.0[678] no-gzip<br />
59 # MSIE masquerades as Netscape, but it is fine<br />
60 # BrowserMatch \bMSIE !no-gzip !gzip-only-text/html<br />
62 # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48<br />
63 # the above regex won't work. You can use the following<br />
64 # workaround to get the desired effect:<br />
65 BrowserMatch \bMSI[E] !no-gzip !gzip-only-text/html<br />
67 # Don't compress images<br />
68 SetEnvIfNoCase Request_URI \<br />
70 \.(?:gif|jpe?g|png)$ no-gzip dont-vary<br />
73 # Make sure proxies don't deliver the wrong content<br />
74 Header append Vary User-Agent env=!dont-vary<br />
81 <section id="enable"><title>
\e$B05=L$rM-8z$K$9$k
\e(B</title>
83 <section id="output"><title>Output Compression</title>
84 <p>
\e$B05=L5!G=$O
\e(B <code>DEFLATE</code> <a href="../filter.html">
\e$B%U%#%k%?
\e(B</a>
85 \e$B$K$h$j<BAu$5$l$F$$$^$9!#0J2<$N%G%#%l%/%F%#%V$O$=$N%G%#%l%/%F%#%V$N$"$k
\e(B
86 \e$B%3%s%F%JCf$N%I%-%e%a%s%H$r05=L$9$k$h$&$K$7$^$9
\e(B:</p>
89 SetOutputFilter DEFLATE
92 <p>
\e$B$h$/;H$o$l$F$$$k%V%i%&%6$G$O!"$9$Y$F$N%3%s%F%s%D$KBP$9$k
\e(B
93 \e$B05=L$r07$($k$o$1$G$O$"$j$^$;$s!#$G$9$+$i!"
\e(B<code>gzip-only-text/html</code>
94 \e$B%N!<%H$r
\e(B <code>1</code>
\e$B$K$7$F!"
\e(Bhtml
\e$B%U%!%$%k$KBP$7$F$N$_
\e(B
95 \e$B05=L$,F/$/$h$&$K$7$?J}$,$h$$$+$b$7$l$^$;$s
\e(B (
\e$B0J2<;2>H
\e(B)
96 \e$B$3$NCM$r
\e(B <em><code>1</code>
\e$B0J30$NCM
\e(B</em>
\e$B$K@_Dj$7$?>l9g$OL5;k$5$l$^$9!#
\e(B</p>
98 <p>
\e$BDL>o!"FCDj$N
\e(BMIME
\e$B%?%$%W$K$D$$$F$N$_05=L$7$?$$$N$G$"$l$P!"
\e(B
99 <directive module="core">AddOutputFilterByType</directive>
100 \e$B%G%#%l%/%F%#%V$r;HMQ$7$^$9!#<!$K
\e(B Apache
\e$B$N%I%-%e%a%s%H$N
\e(B html
101 \e$B%U%!%$%k$N$_$N05=L$rM-8z$K$9$kNc$r<($7$^$9!#
\e(B</p>
104 <Directory "/your-server-root/manual"><br />
106 AddOutputFilterByType DEFLATE text/html<br />
111 <p>
\e$BA4$F$N%U%!%$%k%?%$%W$G$N05=L$KLdBj$rJz$($F$$$k%V%i%&%6$KBP$7$F$O!"
\e(B
112 <directive module="mod_setenvif">BrowserMatch</directive>
113 \e$B%G%#%l%/%F%#%V$r;HMQ$7$F!"FCDj$N%V%i%&%6$K
\e(B <code>no-gzip</code>
114 \e$B%N!<%H$r%;%C%H$7!"05=L$,9T$J$o$l$J$$$h$&$K$7$^$9!#
\e(B
115 <code>no-gzip</code>
\e$B$H
\e(B <code>gzip-only-text/html</code>
116 \e$B$rAH$_9g$o$;$k$3$H$G>e<j$/BP=h$G$-$^$9!#
\e(B
117 \e$B$3$N>l9g!"A0<T$,8e<T$r%*!<%P!<%i%$%I$7$^$9!#
\e(B
118 \e$B>e5-$N
\e(B<a href="#recommended">
\e$B@_DjNc
\e(B</a>
\e$B$NH4?h$r
\e(B
119 \e$B<!$K<($7$^$9$N$G$4Mw2<$5$$!#
\e(B</p>
122 BrowserMatch ^Mozilla/4 gzip-only-text/html<br />
123 BrowserMatch ^Mozilla/4\.0[678] no-gzip<br />
124 BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
127 <p>
\e$B$^$:;O$a$K
\e(B <code>User-Agent</code>
\e$BJ8;zNs$+$i
\e(B Netscape Navigator
128 4.x
\e$B$G$"$k$+$I$&$+$rD4$Y$^$9!#$3$l$i$N%P!<%8%g%s$G$O!"
\e(B
129 <code>text/html</code>
\e$B0J30$N%?%$%W$N05=L$r07$&$3$H$,$G$-$^$;$s!#
\e(B
130 4.06, 4.07, 4.08
\e$B$O
\e(B html
\e$B%U%!%$%k$N?-D%$K$bLdBj$rJz$($F$$$^$9!#
\e(B
131 \e$B$G$9$+$i$3$l$i$KBP$7$F$O!"40A4$K
\e(B deflate
\e$B%U%#%k%?$r%*%U$K$7$^$9!#
\e(B</p>
133 <p>3
\e$BHVL\$N
\e(B <directive module="mod_setenvif">BrowserMatch</directive>
134 \e$B%G%#%l%/%F%#%V$G!"?dB,$7$?%f!<%6!<%(!<%8%'%s%H$r=$@5$7$^$9!#
\e(B
135 \e$B$J$<$J$i
\e(B Microsoft Internet Explorer
\e$B$b
\e(B "Mozilla/4"
\e$B$HFCDj$5$l$^$9$,!"
\e(B
136 \e$B$3$l$i$O<B:]$K$O05=L$r07$&$3$H$,$G$-$k$+$i$G$9!#
\e(B
137 <code>User-Agent</code>
\e$B%X%C%@$r
\e(B "MSIE"
138 (<code>\b</code>
\e$B$O!VC18l$N6-3&!W$r0UL#$7$^$9
\e(B)
\e$B$NDI2CJ8;z$G8!::$7$F!"
\e(B
139 \e$B$3$l0JA0$K@_Dj$7$?@)8B$r:F$S2r=|$7$^$9!#
\e(B</p>
141 <note><title>
\e$BCm
\e(B</title>
142 <code>DEFLATE</code>
\e$B%U%#%k%?$OI,$:!"
\e(BPHP
\e$B$d
\e(B SSI
\e$B$H$$$C$?
\e(B RESOURCE
143 \e$B%U%#%k%?$N8e$K$J$j$^$9!#
\e(B
144 DEFLATE
\e$B%U%#%k%?$OFbItE*$J%5%V%j%/%(%9%H$r4XCN$7$^$;$s!#
\e(B
146 <note><title>
\e$BCm
\e(B</title>
147 <directive module="core">SetEnv</directive>
\e$B$G@_Dj$5$l$k
\e(B
148 <code>force-gzip</code>
\e$B4D6-JQ?t$,$"$j$^$9$,!"$3$l$O
\e(B
149 \e$B%V%i%&%6$N
\e(B accept-encoding
\e$B@_Dj$rL5;k$7!"05=L$7$?=PNO$r$7$^$9!#
\e(B
153 <section id="inflate"><title>
\e$B=PNO$N?-D9
\e(B</title>
154 <p><module>mod_defulate</module>
\e$B%b%8%e!<%k$O!"
\e(Bgzip
\e$B05=L$5$l$?%l%9%]%s%9
\e(B
155 \e$BK\J8$r
\e(B inflate/uncompress
\e$B$9$k%U%#%k%?$bDs6!$7$F$$$^$9!#
\e(B
156 \e$B$3$N5!G=$rM-8z$K$9$k$K$O!"
\e(B<directive module="core">SetOutputFilter</directive>
157 \e$B$d
\e(B <directive module="mod_mime">AddOutputFilter</directive>
\e$B$r;H$C$F!"
\e(B
158 <code>INFLATE</code>
\e$B%U%#%k%?$r=PNO%U%#%k%?%A%'%$%s$KA^F~$7$^$9!#
\e(B
159 \e$BNc$($P<!$N$h$&$K$7$^$9!#
\e(B</p>
162 <Location /dav-area><br />
164 ProxyPass http://example.com/<br />
165 SetOutputFilter INFLATE<br />
170 <p>
\e$B$3$NNc$G$O!"
\e(Bexample.com
\e$B$+$i$N
\e(B gzip
\e$B05=L$5$l$?=PNO$r?-D9$7!"
\e(B
171 \e$B$=$NB>$N%U%#%k%?$,$5$i$K$=$N=PNO$r=hM}$G$-$k$h$&$K$7$^$9!#
\e(B
175 <section id="input"><title>
\e$BF~NO$N?-D%
\e(B</title>
176 <p><module>mod_deflate</module>
\e$B%b%8%e!<%k$O!"
\e(Bgzip
177 \e$B$G05=L$5$l$?%j%/%(%9%HK\BN$r?-D%$9$k%U%#%k%?$bDs6!$7$F$$$^$9!#
\e(B
178 \e$B$3$N5!G=$rM-8z$K$9$k$K$O!"
\e(B<directive module="core">SetInputFilter</directive>
179 \e$B$+
\e(B <directive module="mod_mime">AddInputFilter</directive>
\e$B$r;HMQ$7$F!"
\e(B
180 <code>DEFLATE</code>
\e$B%U%#%k%?$rF~NO%U%#%k%?%A%'%$%s$KAH$_9~$_$^$9!#
\e(B
181 \e$BNc$($P<!$N$h$&$K$J$j$^$9!#
\e(B</p>
184 <Location /dav-area><br />
186 SetInputFilter DEFLATE<br />
191 <p>
\e$B$3$N@_Dj$G$"$l$P!"
\e(B<code>Content-Encoding: gzip</code>
192 \e$B%X%C%@$r4^$`%j%/%(%9%H$,Mh$k$H!"K\BN$O<+F0E*$K?-D%$5$l$^$9!#
\e(B
193 gzip
\e$B%j%/%(%9%HK\BN$rAw?.$9$k%V%i%&%6$O$"$^$j$"$j$^$;$s!#
\e(B
194 \e$B$7$+$7!"Nc$($P
\e(B <a href="http://www.webdav.org">WebDAV</a>
195 \e$B%/%i%$%"%s%H$N4v$D$+$J$I!"FCJL$J%"%W%j%1!<%7%g%s$G%j%/%(%9%H$N
\e(B
196 \e$B05=L$r<B:]$K%5%]!<%H$7$F$$$k$b$N$b$"$j$^$9!#
\e(B</p>
198 <note type="warning"><title>Content-Length
\e$B$K4X$9$kCm0U
\e(B</title>
199 <p>
\e$B%j%/%(%9%HK\BN$=$l<+BN$rI>2A$9$k>l9g$O!"
\e(B<em><code>Content-Length</code>
200 \e$B%X%C%@$r?.MQ$7$J$$$G$/$@$5$$
\e(B</em>
\e$B!#
\e(BContent-Length
\e$B%X%C%@$O!"
\e(B
201 \e$B%/%i%$%"%s%H$+$iAw?.$5$l$k%G!<%?$ND9$5$rH?1G$7$F$$$k$N$G$"$C$F!"
\e(B
202 \e$B?-D%$5$l$?%G!<%?%9%H%j!<%`$N
\e(B<em>
\e$B%P%$%H%+%&%s%H$G$O$"$j$^$;$s
\e(B</em>
\e$B!#
\e(B</p>
207 <section id="proxies"><title>Proxy
\e$B%5!<%P$G$N07$$
\e(B</title>
209 <p><module>mod_deflate</module>
\e$B%b%8%e!<%k$O
\e(B <code>Vary: Accept-Encoding</code>
210 HTTP
\e$B1~Ez%X%C%@$rAw?.$7$F!"E,@Z$J
\e(B <code>Accept-Encoding</code>
211 \e$B%j%/%(%9%H%X%C%@$rAw?.$9$k%/%i%$%"%s%H$KBP$7$F$N$_!"
\e(B
212 \e$B%W%m%/%7%5!<%P$,%-%c%C%7%e$7$?1~Ez$rAw?.$9$k$h$&$KCm0U$r4-5/$7$^$9!#
\e(B
213 \e$B$3$N$h$&$K$7$F!"05=L$r07$&$3$H$N$G$-$J$$%/%i%$%"%s%H$K
\e(B
214 \e$B05=L$5$l$?FbMF$,Aw$i$l$k$3$H$N$J$$$h$&$K$7$^$9!#
\e(B</p>
216 <p>
\e$B$b$7FCJL$K2?$+$K0MB8$7$F=|30$7$?$$>l9g!"Nc$($P
\e(B <code>User-Agent</code>
217 \e$B%X%C%@$J$I$K0MB8$7$F$$$k>l9g!"<jF0$G
\e(B <code>Vary</code>
\e$B%X%C%@$r@_Dj$7$F!"
\e(B
218 \e$BDI2C$N@)8B$K$D$$$F%W%m%/%7%5!<%P$KCm0U$r9T$J$&I,MW$,$"$j$^$9!#
\e(B
219 \e$BNc$($P
\e(B <code>User-Agent</code>
\e$B$K0MB8$7$F
\e(B <code>DEFLATE</code>
220 \e$B$rDI2C$9$kE57?E*$J@_Dj$G$O!"<!$N$h$&$KDI2C$9$k$3$H$K$J$j$^$9!#
\e(B</p>
223 Header append Vary User-Agent
226 <p>
\e$B%j%/%(%9%H%X%C%@0J30$N>pJs
\e(B (<em>
\e$BNc$($P
\e(B</em> HTTP
\e$B%P!<%8%g%s
\e(B)
227 \e$B$K0MB8$7$F05=L$9$k$+$I$&$+7h$a$k>l9g!"
\e(B
228 <code>Vary</code>
\e$B%X%C%@$r
\e(B <code>*</code>
\e$B$K@_Dj$9$kI,MW$,$"$j$^$9!#
\e(B
229 \e$B$3$N$h$&$K$9$k$H!";EMM$K=`5r$7$?%W%m%/%7$O%-%c%C%7%e$rA4$/9T$J$o$J$/$J$j$^$9!#
\e(B</p>
231 <example><title>
\e$BNc
\e(B</title>
237 <name>DeflateFilterNote</name>
238 <description>
\e$B%m%.%s%0MQ$K05=LHf$r%a%b$KDI2C
\e(B</description>
239 <syntax>DeflateFilterNote [<var>type</var>] <var>notename</var></syntax>
240 <contextlist><context>server config</context>
241 <context>virtual host</context></contextlist>
242 <compatibility><var>type</var> is available since Apache 2.0.45</compatibility>
245 <p><directive>DeflateFilterNote</directive>
\e$B%G%#%l%/%F%#%V$O
\e(B
246 \e$B05=LHf$K4X$9$k%a%b$,%j%/%(%9%H$KIU2C$5$l$k$3$H$r;XDj$7$^$9!#
\e(B
247 \e$B%a%b
\e(B (note)
\e$B$NL>A0$O%G%#%l%/%F%#%V$K;XDj$5$l$?CM$G$9!#
\e(B
248 \e$B%a%b$O
\e(B<a href="../logs.html#accesslog">
\e$B%"%/%;%9%m%0
\e(B</a>
\e$B$K
\e(B
249 \e$BCM$r5-O?$7!"E}7W$r<h$kL\E*$K$b;H$($^$9!#
\e(B</p>
251 <example><title>
\e$BNc
\e(B</title>
252 DeflateFilterNote ratio<br />
254 LogFormat '"%r" %b (%{ratio}n) "%{User-agent}i"' deflate<br />
255 CustomLog logs/deflate_log deflate
258 <p>
\e$B%m%0$+$i$b$C$H@:L)$JCM$rCj=P$7$?$$>l9g$O!"
\e(B<var>type</var>
259 \e$B0z?t$r;HMQ$7$F!"%G!<%?%?%$%W$r%m%0$N%a%b$H$7$F;D$9$h$&$K;XDj$G$-$^$9!#
\e(B
260 <var>type</var>
\e$B$O<!$N$&$A$N0l$D$G$9!#
\e(B</p>
263 <dt><code>Input</code></dt>
264 <dd>
\e$B%U%#%k%?$NF~NO%9%H%j!<%`$N%P%$%H%+%&%s%H$r%a%b$KJ]B8$9$k!#
\e(B</dd>
266 <dt><code>Output</code></dt>
267 <dd>
\e$B%U%#%k%?$N=PNO%9%H%j!<%`$N%P%$%H%+%&%s%H$r%a%b$KJ]B8$9$k!#
\e(B</dd>
269 <dt><code>Ratio</code></dt>
270 <dd>
\e$B05=LN(
\e(B (<code>
\e$B=PNO
\e(B /
\e$BF~NO
\e(B * 100</code>)
\e$B$r%a%b$KJ]B8$9$k!#
\e(B
271 <var>type</var>
\e$B0z?t$r>JN,$7$?>l9g$O!"$3$l$,%G%U%)%k%H$H$J$j$^$9!#
\e(B</dd>
274 <p>
\e$B$^$H$a$k$H!"<!$N$h$&$K%m%0$r<h$k$3$H$K$J$k$G$7$g$&!#
\e(B</p>
276 <example><title>
\e$B@:L)$J%m%0:N<h
\e(B</title>
277 DeflateFilterNote Input instream<br />
278 DeflateFilterNote Output outstream<br />
279 DeflateFilterNote Ratio ratio<br />
281 LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate<br />
282 CustomLog logs/deflate_log deflate
285 <seealso><module>mod_log_config</module></seealso>
289 <name>DeflateBufferSize</name>
290 <description>zlib
\e$B$,0lEY$K05=L$9$k2t$NBg$-$5
\e(B</description>
291 <syntax>DeflateBufferSize <var>value</var></syntax>
292 <default>DeflateBufferSize 8096</default>
293 <contextlist><context>server config</context>
294 <context>virtual host</context></contextlist>
297 <p><directive>DeflateBufferSize</directive>
\e$B%G%#%l%/%F%#%V$O
\e(B
298 zlib
\e$B$,0lEY$K05=L$9$k2t$NBg$-$5$r%P%$%HC10L$G;XDj$7$^$9!#
\e(B</p>
303 <name>DeflateWindowSize</name>
304 <description>Zlib
\e$B$N05=LMQ%&%#%s%I%&$NBg$-$5
\e(B</description>
305 <syntax>DeflateWindowSize <var>value</var></syntax>
306 <default>DeflateWindowSize 15</default>
307 <contextlist><context>server config</context>
308 <context>virtual host</context></contextlist>
311 <p><directive>DeflateWindowSize</directive>
\e$B%G%#%l%/%F%#%V$O
\e(B
312 zlib
\e$B$N05=LMQ%&%#%s%I%&
\e(B (
\e$BLuCm
\e(B: zlib
\e$B$G;HMQ$5$l$kMzNr%P%C%U%!
\e(B)
313 \e$B$NBg$-$5$r;XDj$7$^$9
\e(B (1
\e$B$+$i
\e(B 15
\e$B$N4V$NCM
\e(B)
\e$B!#
\e(B
314 \e$B0lHLE*$KBg$-$J%&%#%s%I%&%5%$%:$r;HMQ$9$k$H05=LN($,8~>e$7$^$9!#
\e(B
315 (
\e$BLuCm
\e(B: 2
\e$B$rDl$H$9$kBP?t$NCM$K$J$j$^$9!#
\e(B
316 8
\e$B$+$i
\e(B 15
\e$B$K$9$k$N$,NI$$$G$7$g$&!#
\e(B)</p>
321 <name>DeflateMemLevel</name>
322 <description>zlib
\e$B$,05=L$K;H$&%a%b%j$N%l%Y%k$r;XDj
\e(B</description>
323 <syntax>DeflateMemLevel <var>value</var></syntax>
324 <default>DeflateMemLevel 9</default>
325 <contextlist><context>server config</context>
326 <context>virtual host</context></contextlist>
329 <p><directive>DeflateMemLevel</directive>
\e$B%G%#%l%/%F%#%V$O
\e(B
330 zlib
\e$B$,05=L$K;H$&%a%b%j$N%l%Y%k$r@_Dj$7$^$9
\e(B (1
\e$B$+$i
\e(B 9
\e$B$N4V$NCM
\e(B)
\e$B!#
\e(B
331 (
\e$BLuCm
\e(B: 2
\e$B$rDl$H$9$kBP?t$NCM$K$J$j$^$9!#
\e(B
332 8
\e$BDxEY$,NI$$$G$7$g$&!#
\e(B)</p>
337 <name>DeflateCompressionLevel</name>
338 <description>
\e$B=PNO$KBP$7$F9T$J$&05=L$NDxEY
\e(B</description>
339 <syntax>DeflateCompressionLevel <var>value</var></syntax>
340 <default>Zlib
\e$B$N%G%U%)%k%H
\e(B</default>
341 <contextlist><context>server config</context><context>virtual host</context>
343 <compatibility>This directive is available since Apache 2.0.45</compatibility>
346 <p><directive>DeflateCompressionLevel</directive>
\e$B%G%#%l%/%F%#%V$O
\e(B
347 \e$B05=L$NDxEY$r@_Dj$7$^$9!#Bg$-$JCM$G$O!"$h$j05=L$,9T$J$o$l$^$9$,!"
\e(B
348 CPU
\e$B;q8;$r>CHq$7$^$9!#
\e(B</p>
349 <p>
\e$BCM$O
\e(B 1 (
\e$BDc05=L
\e(B)
\e$B$+$i
\e(B 9 (
\e$B9b05=L
\e(B)
\e$B$G$9!#
\e(B</p>