diff options
author | Reiner Herrmann <reiner@reiner-h.de> | 2020-12-29 23:55:53 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-12-29 23:55:53 +0100 |
commit | 14c9b3199bd986d09793d0347aad9289b934cef8 (patch) | |
tree | 2d6fcbb27d7f5ac7fa92ac3fd01313edceaa5590 | |
parent | On Debian/Ubunbtu microsoft-edge redirects to dev-channel right now (diff) | |
parent | Merge pull request #3847 from bbhtt/small_fixes (diff) | |
download | firejail-14c9b3199bd986d09793d0347aad9289b934cef8.tar.gz firejail-14c9b3199bd986d09793d0347aad9289b934cef8.tar.zst firejail-14c9b3199bd986d09793d0347aad9289b934cef8.zip |
Merge branch 'master' into browsers
-rw-r--r-- | etc/inc/disable-programs.inc | 5 | ||||
-rw-r--r-- | etc/profile-a-l/alacarte.profile | 2 | ||||
-rw-r--r-- | etc/profile-a-l/element-desktop.profile | 5 | ||||
-rw-r--r-- | etc/profile-a-l/feh.profile | 1 | ||||
-rw-r--r-- | etc/profile-a-l/keepassxc.profile | 7 | ||||
-rw-r--r-- | etc/profile-a-l/links.profile | 1 | ||||
-rw-r--r-- | etc/profile-a-l/lynx.profile | 1 | ||||
-rw-r--r-- | etc/profile-m-z/matrix-mirage.profile | 24 | ||||
-rw-r--r-- | etc/profile-m-z/mirage.profile | 3 | ||||
-rw-r--r-- | etc/profile-m-z/nheko.profile | 18 | ||||
-rw-r--r-- | etc/profile-m-z/spectral.profile | 4 | ||||
-rw-r--r-- | src/firecfg/firecfg.config | 1 | ||||
-rw-r--r-- | src/firejail/no_sandbox.c | 11 | ||||
-rw-r--r-- | src/man/firejail.txt | 10 |
14 files changed, 74 insertions, 19 deletions
diff --git a/etc/inc/disable-programs.inc b/etc/inc/disable-programs.inc index fe0f96857..7ab11e620 100644 --- a/etc/inc/disable-programs.inc +++ b/etc/inc/disable-programs.inc | |||
@@ -303,6 +303,7 @@ blacklist ${HOME}/.config/mana | |||
303 | blacklist ${HOME}/.config/mate-calc | 303 | blacklist ${HOME}/.config/mate-calc |
304 | blacklist ${HOME}/.config/mate/eom | 304 | blacklist ${HOME}/.config/mate/eom |
305 | blacklist ${HOME}/.config/mate/mate-dictionary | 305 | blacklist ${HOME}/.config/mate/mate-dictionary |
306 | blacklist ${HOME}/.config/matrix-mirage | ||
306 | blacklist ${HOME}/.config/meld | 307 | blacklist ${HOME}/.config/meld |
307 | blacklist ${HOME}/.config/meteo-qt | 308 | blacklist ${HOME}/.config/meteo-qt |
308 | blacklist ${HOME}/.config/menulibre.cfg | 309 | blacklist ${HOME}/.config/menulibre.cfg |
@@ -673,6 +674,7 @@ blacklist ${HOME}/.local/share/lugaru | |||
673 | blacklist ${HOME}/.local/share/lutris | 674 | blacklist ${HOME}/.local/share/lutris |
674 | blacklist ${HOME}/.local/share/mana | 675 | blacklist ${HOME}/.local/share/mana |
675 | blacklist ${HOME}/.local/share/maps-places.json | 676 | blacklist ${HOME}/.local/share/maps-places.json |
677 | blacklist ${HOME}/.local/share/matrix-mirage | ||
676 | blacklist ${HOME}/.local/share/meld | 678 | blacklist ${HOME}/.local/share/meld |
677 | blacklist ${HOME}/.local/share/midori | 679 | blacklist ${HOME}/.local/share/midori |
678 | blacklist ${HOME}/.local/share/mirage | 680 | blacklist ${HOME}/.local/share/mirage |
@@ -946,6 +948,7 @@ blacklist ${HOME}/.cache/librewolf | |||
946 | blacklist ${HOME}/.cache/liferea | 948 | blacklist ${HOME}/.cache/liferea |
947 | blacklist ${HOME}/.cache/lutris | 949 | blacklist ${HOME}/.cache/lutris |
948 | blacklist ${HOME}/.cache/Mendeley Ltd. | 950 | blacklist ${HOME}/.cache/Mendeley Ltd. |
951 | blacklist ${HOME}/.cache/matrix-mirage | ||
949 | blacklist ${HOME}/.cache/microsoft-edge-dev | 952 | blacklist ${HOME}/.cache/microsoft-edge-dev |
950 | blacklist ${HOME}/.cache/midori | 953 | blacklist ${HOME}/.cache/midori |
951 | blacklist ${HOME}/.cache/minetest | 954 | blacklist ${HOME}/.cache/minetest |
@@ -962,7 +965,7 @@ blacklist ${HOME}/.cache/ms-skype-online | |||
962 | blacklist ${HOME}/.cache/ms-word-online | 965 | blacklist ${HOME}/.cache/ms-word-online |
963 | blacklist ${HOME}/.cache/mutt | 966 | blacklist ${HOME}/.cache/mutt |
964 | blacklist ${HOME}/.cache/mypaint | 967 | blacklist ${HOME}/.cache/mypaint |
965 | blacklist ${HOME}/.cache/nheko/nheko | 968 | blacklist ${HOME}/.cache/nheko |
966 | blacklist ${HOME}/.cache/netsurf | 969 | blacklist ${HOME}/.cache/netsurf |
967 | blacklist ${HOME}/.cache/okular | 970 | blacklist ${HOME}/.cache/okular |
968 | blacklist ${HOME}/.cache/opera | 971 | blacklist ${HOME}/.cache/opera |
diff --git a/etc/profile-a-l/alacarte.profile b/etc/profile-a-l/alacarte.profile index 8f7640ffe..98188d2a7 100644 --- a/etc/profile-a-l/alacarte.profile +++ b/etc/profile-a-l/alacarte.profile | |||
@@ -49,7 +49,7 @@ shell none | |||
49 | tracelog | 49 | tracelog |
50 | 50 | ||
51 | disable-mnt | 51 | disable-mnt |
52 | private-bin alacarte,bash,python*,sh | 52 | # private-bin alacarte,bash,python*,sh |
53 | private-cache | 53 | private-cache |
54 | private-dev | 54 | private-dev |
55 | private-etc alternatives,dconf,fonts,gtk-3.0,locale.alias,locale.conf,login.defs,mime.types,nsswitch.conf,passwd,pki,X11,xdg | 55 | private-etc alternatives,dconf,fonts,gtk-3.0,locale.alias,locale.conf,login.defs,mime.types,nsswitch.conf,passwd,pki,X11,xdg |
diff --git a/etc/profile-a-l/element-desktop.profile b/etc/profile-a-l/element-desktop.profile index 2d56369cd..48a826f2e 100644 --- a/etc/profile-a-l/element-desktop.profile +++ b/etc/profile-a-l/element-desktop.profile | |||
@@ -7,6 +7,8 @@ include element-desktop.local | |||
7 | # added by included profile | 7 | # added by included profile |
8 | #include globals.local | 8 | #include globals.local |
9 | 9 | ||
10 | ignore dbus-user none | ||
11 | |||
10 | noblacklist ${HOME}/.config/Element | 12 | noblacklist ${HOME}/.config/Element |
11 | 13 | ||
12 | mkdir ${HOME}/.config/Element | 14 | mkdir ${HOME}/.config/Element |
@@ -15,5 +17,8 @@ whitelist /opt/Element | |||
15 | 17 | ||
16 | private-opt Element | 18 | private-opt Element |
17 | 19 | ||
20 | dbus-user filter | ||
21 | dbus-user.talk org.freedesktop.secrets | ||
22 | |||
18 | # Redirect | 23 | # Redirect |
19 | include riot-desktop.profile | 24 | include riot-desktop.profile |
diff --git a/etc/profile-a-l/feh.profile b/etc/profile-a-l/feh.profile index 3ee07e559..8ac7755de 100644 --- a/etc/profile-a-l/feh.profile +++ b/etc/profile-a-l/feh.profile | |||
@@ -1,6 +1,7 @@ | |||
1 | # Firejail profile for feh | 1 | # Firejail profile for feh |
2 | # Description: imlib2 based image viewer | 2 | # Description: imlib2 based image viewer |
3 | # This file is overwritten after every install/update | 3 | # This file is overwritten after every install/update |
4 | quiet | ||
4 | # Persistent local customizations | 5 | # Persistent local customizations |
5 | include feh.local | 6 | include feh.local |
6 | # Persistent global definitions | 7 | # Persistent global definitions |
diff --git a/etc/profile-a-l/keepassxc.profile b/etc/profile-a-l/keepassxc.profile index 58db056b2..456f1820d 100644 --- a/etc/profile-a-l/keepassxc.profile +++ b/etc/profile-a-l/keepassxc.profile | |||
@@ -73,12 +73,11 @@ dbus-user.talk org.freedesktop.login1.Session | |||
73 | dbus-user.talk org.gnome.ScreenSaver | 73 | dbus-user.talk org.gnome.ScreenSaver |
74 | dbus-user.talk org.gnome.SessionManager | 74 | dbus-user.talk org.gnome.SessionManager |
75 | dbus-user.talk org.gnome.SessionManager.Presence | 75 | dbus-user.talk org.gnome.SessionManager.Presence |
76 | # Uncomment or add to your keepassxc.local to allow Notifications/Tray. | 76 | # Uncomment or add to your keepassxc.local to allow Notifications. |
77 | #dbus-user.talk org.freedesktop.Notifications | 77 | #dbus-user.talk org.freedesktop.Notifications |
78 | # Uncomment or add to your keepassxc.local to allow Tray. | ||
78 | #dbus-user.talk org.kde.StatusNotifierWatcher | 79 | #dbus-user.talk org.kde.StatusNotifierWatcher |
79 | # These numbers seems to be not stable, see #3713. Play around with them. | 80 | #dbus-user.own org.kde.* |
80 | #dbus-user.own org.kde.StatusNotifierItem-2-2 | ||
81 | #dbus-user.own org.kde.StatusNotifierItem-10-2 | ||
82 | dbus-system none | 81 | dbus-system none |
83 | 82 | ||
84 | # Mutex is stored in /tmp by default, which is broken by private-tmp | 83 | # Mutex is stored in /tmp by default, which is broken by private-tmp |
diff --git a/etc/profile-a-l/links.profile b/etc/profile-a-l/links.profile index b2f94d3cf..ccc77f274 100644 --- a/etc/profile-a-l/links.profile +++ b/etc/profile-a-l/links.profile | |||
@@ -1,6 +1,7 @@ | |||
1 | # Firejail profile for links | 1 | # Firejail profile for links |
2 | # Description: Text WWW browser | 2 | # Description: Text WWW browser |
3 | # This file is overwritten after every install/update | 3 | # This file is overwritten after every install/update |
4 | quiet | ||
4 | # Persistent local customizations | 5 | # Persistent local customizations |
5 | include links.local | 6 | include links.local |
6 | # Persistent global definitions | 7 | # Persistent global definitions |
diff --git a/etc/profile-a-l/lynx.profile b/etc/profile-a-l/lynx.profile index dbd0a61e5..76a0e7ed0 100644 --- a/etc/profile-a-l/lynx.profile +++ b/etc/profile-a-l/lynx.profile | |||
@@ -1,6 +1,7 @@ | |||
1 | # Firejail profile for lynx | 1 | # Firejail profile for lynx |
2 | # Description: Classic non-graphical (text-mode) web browser | 2 | # Description: Classic non-graphical (text-mode) web browser |
3 | # This file is overwritten after every install/update | 3 | # This file is overwritten after every install/update |
4 | quiet | ||
4 | # Persistent local customizations | 5 | # Persistent local customizations |
5 | include lynx.local | 6 | include lynx.local |
6 | # Persistent global definitions | 7 | # Persistent global definitions |
diff --git a/etc/profile-m-z/matrix-mirage.profile b/etc/profile-m-z/matrix-mirage.profile new file mode 100644 index 000000000..b3080df88 --- /dev/null +++ b/etc/profile-m-z/matrix-mirage.profile | |||
@@ -0,0 +1,24 @@ | |||
1 | # Firejail profile for matrix-mirage | ||
2 | # Description: Debian name for mirage binary/package | ||
3 | # This file is overwritten after every install/update | ||
4 | # Persistent local customizations | ||
5 | include matrix-mirage.local | ||
6 | # Persistent global definitions | ||
7 | # added by included profile | ||
8 | #include globals.local | ||
9 | |||
10 | noblacklist ${HOME}/.cache/matrix-mirage | ||
11 | noblacklist ${HOME}/.config/matrix-mirage | ||
12 | noblacklist ${HOME}/.local/share/matrix-mirage | ||
13 | |||
14 | mkdir ${HOME}/.cache/matrix-mirage | ||
15 | mkdir ${HOME}/.config/matrix-mirage | ||
16 | mkdir ${HOME}/.local/share/matrix-mirage | ||
17 | whitelist ${HOME}/.cache/matrix-mirage | ||
18 | whitelist ${HOME}/.config/matrix-mirage | ||
19 | whitelist ${HOME}/.local/share/matrix-mirage | ||
20 | |||
21 | private-bin matrix-mirage | ||
22 | |||
23 | # Redirect | ||
24 | include mirage.profile | ||
diff --git a/etc/profile-m-z/mirage.profile b/etc/profile-m-z/mirage.profile index 55c11be29..7130267e8 100644 --- a/etc/profile-m-z/mirage.profile +++ b/etc/profile-m-z/mirage.profile | |||
@@ -9,6 +9,7 @@ include globals.local | |||
9 | noblacklist ${HOME}/.cache/mirage | 9 | noblacklist ${HOME}/.cache/mirage |
10 | noblacklist ${HOME}/.config/mirage | 10 | noblacklist ${HOME}/.config/mirage |
11 | noblacklist ${HOME}/.local/share/mirage | 11 | noblacklist ${HOME}/.local/share/mirage |
12 | noblacklist /sbin | ||
12 | 13 | ||
13 | include allow-python2.inc | 14 | include allow-python2.inc |
14 | include allow-python3.inc | 15 | include allow-python3.inc |
@@ -49,7 +50,7 @@ shell none | |||
49 | tracelog | 50 | tracelog |
50 | 51 | ||
51 | disable-mnt | 52 | disable-mnt |
52 | private-bin mirage | 53 | private-bin ldconfig,mirage |
53 | private-cache | 54 | private-cache |
54 | private-dev | 55 | private-dev |
55 | private-etc alsa,alternatives,asound.conf,ca-certificates,crypto-policies,fonts,gtk-2.0,gtk-3.0,host.conf,hostname,hosts,ld.so.cache,ld.so.conf,ld.so.conf.d,ld.so.preload,locale,locale.alias,locale.conf,mime.types,nsswitch.conf,pki,pulse,resolv.conf,selinux,ssl,X11,xdg | 56 | private-etc alsa,alternatives,asound.conf,ca-certificates,crypto-policies,fonts,gtk-2.0,gtk-3.0,host.conf,hostname,hosts,ld.so.cache,ld.so.conf,ld.so.conf.d,ld.so.preload,locale,locale.alias,locale.conf,mime.types,nsswitch.conf,pki,pulse,resolv.conf,selinux,ssl,X11,xdg |
diff --git a/etc/profile-m-z/nheko.profile b/etc/profile-m-z/nheko.profile index 701098f4b..42e7e92fc 100644 --- a/etc/profile-m-z/nheko.profile +++ b/etc/profile-m-z/nheko.profile | |||
@@ -7,7 +7,7 @@ include nheko.local | |||
7 | include globals.local | 7 | include globals.local |
8 | 8 | ||
9 | noblacklist ${HOME}/.config/nheko | 9 | noblacklist ${HOME}/.config/nheko |
10 | noblacklist ${HOME}/.cache/nheko/nheko | 10 | noblacklist ${HOME}/.cache/nheko |
11 | 11 | ||
12 | include disable-common.inc | 12 | include disable-common.inc |
13 | include disable-devel.inc | 13 | include disable-devel.inc |
@@ -16,14 +16,19 @@ include disable-interpreters.inc | |||
16 | include disable-passwdmgr.inc | 16 | include disable-passwdmgr.inc |
17 | include disable-programs.inc | 17 | include disable-programs.inc |
18 | include disable-shell.inc | 18 | include disable-shell.inc |
19 | include disable-xdg.inc | ||
19 | 20 | ||
20 | mkdir ${HOME}/.config/nheko | 21 | mkdir ${HOME}/.config/nheko |
21 | mkdir ${HOME}/.cache/nheko/nheko | 22 | mkdir ${HOME}/.cache/nheko/nheko |
22 | whitelist ${HOME}/.config/nheko | 23 | whitelist ${HOME}/.config/nheko |
23 | whitelist ${HOME}/.cache/nheko/nheko | 24 | whitelist ${HOME}/.cache/nheko |
24 | whitelist ${DOWNLOADS} | 25 | whitelist ${DOWNLOADS} |
25 | include whitelist-common.inc | 26 | include whitelist-common.inc |
27 | include whitelist-runuser-common.inc | ||
28 | include whitelist-usr-share-common.inc | ||
29 | include whitelist-var-common.inc | ||
26 | 30 | ||
31 | apparmor | ||
27 | caps.drop all | 32 | caps.drop all |
28 | netfilter | 33 | netfilter |
29 | nodvd | 34 | nodvd |
@@ -38,5 +43,14 @@ tracelog | |||
38 | 43 | ||
39 | disable-mnt | 44 | disable-mnt |
40 | private-bin nheko | 45 | private-bin nheko |
46 | private-cache | ||
47 | private-dev | ||
48 | private-etc alsa,alternatives,asound.conf,ca-certificates,crypto-policies,fonts,gtk-2.0,gtk-3.0,host.conf,hostname,hosts,ld.so.cache,ld.so.conf,ld.so.conf.d,ld.so.preload,locale,locale.alias,locale.conf,mime.types,nsswitch.conf,pki,pulse,resolv.conf,selinux,ssl,X11,xdg | ||
41 | private-tmp | 49 | private-tmp |
42 | 50 | ||
51 | dbus-user none | ||
52 | # Comment the above line and uncomment below lines for notification popups | ||
53 | # dbus-user filter | ||
54 | # dbus-user.talk org.freedesktop.Notifications | ||
55 | # dbus-user.talk org.kde.StatusNotifierWatcher | ||
56 | dbus-system none | ||
diff --git a/etc/profile-m-z/spectral.profile b/etc/profile-m-z/spectral.profile index 66e917432..093661d8c 100644 --- a/etc/profile-m-z/spectral.profile +++ b/etc/profile-m-z/spectral.profile | |||
@@ -50,4 +50,8 @@ private-etc alsa,alternatives,asound.conf,ca-certificates,crypto-policies,fonts, | |||
50 | private-tmp | 50 | private-tmp |
51 | 51 | ||
52 | dbus-user none | 52 | dbus-user none |
53 | # Comment the above line and uncomment below lines for notification popups | ||
54 | # dbus-user filter | ||
55 | # dbus-user.talk org.freedesktop.Notifications | ||
56 | # dbus-user.talk org.kde.StatusNotifierWatcher | ||
53 | dbus-system none | 57 | dbus-system none |
diff --git a/src/firecfg/firecfg.config b/src/firecfg/firecfg.config index 9cec07e57..23b1e364a 100644 --- a/src/firecfg/firecfg.config +++ b/src/firecfg/firecfg.config | |||
@@ -463,6 +463,7 @@ mate-calculator | |||
463 | mate-color-select | 463 | mate-color-select |
464 | mate-dictionary | 464 | mate-dictionary |
465 | mathematica | 465 | mathematica |
466 | matrix-mirage | ||
466 | mattermost-desktop | 467 | mattermost-desktop |
467 | mcabber | 468 | mcabber |
468 | mediainfo | 469 | mediainfo |
diff --git a/src/firejail/no_sandbox.c b/src/firejail/no_sandbox.c index 01df77ee6..d7426f6ae 100644 --- a/src/firejail/no_sandbox.c +++ b/src/firejail/no_sandbox.c | |||
@@ -204,11 +204,12 @@ void run_no_sandbox(int argc, char **argv) { | |||
204 | break; | 204 | break; |
205 | } | 205 | } |
206 | } | 206 | } |
207 | // if shell is /usr/bin/firejail, replace it with /bin/bash | 207 | |
208 | if (strcmp(cfg.shell, PATH_FIREJAIL) == 0) { | 208 | // if shell is /usr/bin/firejail, replace it with /bin/bash |
209 | cfg.shell = "/bin/bash"; | 209 | // if (strcmp(cfg.shell, PATH_FIREJAIL) == 0) { |
210 | prog_index = 0; | 210 | // cfg.shell = "/bin/bash"; |
211 | } | 211 | // prog_index = 0; |
212 | // } | ||
212 | 213 | ||
213 | if (prog_index == 0) { | 214 | if (prog_index == 0) { |
214 | cfg.command_line = cfg.shell; | 215 | cfg.command_line = cfg.shell; |
diff --git a/src/man/firejail.txt b/src/man/firejail.txt index 562b3eda3..347e2b31b 100644 --- a/src/man/firejail.txt +++ b/src/man/firejail.txt | |||
@@ -76,10 +76,10 @@ If an appropriate profile is not found, Firejail will use a default profile. | |||
76 | The default profile is quite restrictive. In case the application doesn't work, use --noprofile option | 76 | The default profile is quite restrictive. In case the application doesn't work, use --noprofile option |
77 | to disable it. For more information, please see \fBSECURITY PROFILES\fR section below. | 77 | to disable it. For more information, please see \fBSECURITY PROFILES\fR section below. |
78 | .PP | 78 | .PP |
79 | If a program argument is not specified, Firejail starts /bin/bash shell. | 79 | If a program argument is not specified, Firejail starts the user's preferred shell. |
80 | Examples: | 80 | Examples: |
81 | .PP | 81 | .PP |
82 | $ firejail [OPTIONS] # starting a /bin/bash shell | 82 | $ firejail [OPTIONS] # starting the program specified in $SHELL, usually /bin/bash |
83 | .PP | 83 | .PP |
84 | $ firejail [OPTIONS] firefox # starting Mozilla Firefox | 84 | $ firejail [OPTIONS] firefox # starting Mozilla Firefox |
85 | .PP | 85 | .PP |
@@ -2476,7 +2476,7 @@ $ firejail \-\-shell=none script.sh | |||
2476 | \fB\-\-shell=program | 2476 | \fB\-\-shell=program |
2477 | Set default user shell. Use this shell to run the application using \-c shell option. | 2477 | Set default user shell. Use this shell to run the application using \-c shell option. |
2478 | For example "firejail \-\-shell=/bin/dash firefox" will start Mozilla Firefox as "/bin/dash \-c firefox". | 2478 | For example "firejail \-\-shell=/bin/dash firefox" will start Mozilla Firefox as "/bin/dash \-c firefox". |
2479 | By default Bash shell (/bin/bash) is used. | 2479 | By default the user's preferred shell is used. |
2480 | .br | 2480 | .br |
2481 | 2481 | ||
2482 | .br | 2482 | .br |
@@ -3023,7 +3023,7 @@ We provide a tool that automates all this integration, please see \&\flfirecfg\f | |||
3023 | .SH EXAMPLES | 3023 | .SH EXAMPLES |
3024 | .TP | 3024 | .TP |
3025 | \f\firejail | 3025 | \f\firejail |
3026 | Sandbox a regular /bin/bash session. | 3026 | Sandbox a regular shell session. |
3027 | .TP | 3027 | .TP |
3028 | \f\firejail firefox | 3028 | \f\firejail firefox |
3029 | Start Mozilla Firefox. | 3029 | Start Mozilla Firefox. |
@@ -3043,7 +3043,7 @@ Start Firefox in a new network namespace. An IP address is | |||
3043 | assigned automatically. | 3043 | assigned automatically. |
3044 | .TP | 3044 | .TP |
3045 | \f\firejail \-\-net=br0 \-\-ip=10.10.20.5 \-\-net=br1 \-\-net=br2 | 3045 | \f\firejail \-\-net=br0 \-\-ip=10.10.20.5 \-\-net=br1 \-\-net=br2 |
3046 | Start a /bin/bash session in a new network namespace and connect it | 3046 | Start a shell session in a new network namespace and connect it |
3047 | to br0, br1, and br2 host bridge devices. IP addresses are assigned | 3047 | to br0, br1, and br2 host bridge devices. IP addresses are assigned |
3048 | automatically for the interfaces connected to br1 and b2 | 3048 | automatically for the interfaces connected to br1 and b2 |
3049 | #endif | 3049 | #endif |