diff options
author | Roy Marples <uberlord@gentoo.org> | 2006-03-08 19:29:47 +0000 |
---|---|---|
committer | Roy Marples <uberlord@gentoo.org> | 2006-03-08 19:29:47 +0000 |
commit | ac23208427df506057d018fd295bf154f865eb32 (patch) | |
tree | 8c4efa5f691763534310da3cf60d5b765b1fc52b /games-rpg | |
parent | Fix dependency to depend only on xmms, unzip is already depended on by xmms, ... (diff) | |
download | historical-ac23208427df506057d018fd295bf154f865eb32.tar.gz historical-ac23208427df506057d018fd295bf154f865eb32.tar.bz2 historical-ac23208427df506057d018fd295bf154f865eb32.zip |
Added a patch written by me that enables the use of compiled vertex arrays
as an in-game toggle. Some cards - appears to be IGP style chipsets using
the xorg driver - don't display in-game graphics correctly and this patch
is an interim fix until EL or X works 100%.
This patch has been approved by 'Entropy' for use on the EL main server.
Package-Manager: portage-2.1_pre5-r4
Diffstat (limited to 'games-rpg')
-rw-r--r-- | games-rpg/eternal-lands/ChangeLog | 14 | ||||
-rw-r--r-- | games-rpg/eternal-lands/Manifest | 25 | ||||
-rw-r--r-- | games-rpg/eternal-lands/eternal-lands-1.2.0_p1-r1.ebuild | 103 | ||||
-rw-r--r-- | games-rpg/eternal-lands/files/digest-eternal-lands-1.2.0_p1-r1 | 6 | ||||
-rw-r--r-- | games-rpg/eternal-lands/files/eternal-lands-1.2.0-vertex-array.patch | 217 |
5 files changed, 361 insertions, 4 deletions
diff --git a/games-rpg/eternal-lands/ChangeLog b/games-rpg/eternal-lands/ChangeLog index 6ae47988fd11..1249c9b571b6 100644 --- a/games-rpg/eternal-lands/ChangeLog +++ b/games-rpg/eternal-lands/ChangeLog @@ -1,6 +1,18 @@ # ChangeLog for games-rpg/eternal-lands # Copyright 1999-2006 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/games-rpg/eternal-lands/ChangeLog,v 1.10 2006/02/15 08:02:20 uberlord Exp $ +# $Header: /var/cvsroot/gentoo-x86/games-rpg/eternal-lands/ChangeLog,v 1.11 2006/03/08 19:29:47 uberlord Exp $ + +*eternal-lands-1.2.0_p1-r1 (08 Mar 2006) + + 08 Mar 2006; Roy Marples <uberlord@gentoo.org> + +files/eternal-lands-1.2.0-vertex-array.patch, + +eternal-lands-1.2.0_p1-r1.ebuild: + Added a patch written by me that enables the use of compiled vertex arrays + as an in-game toggle. Some cards - appears to be IGP style chipsets using + the xorg driver - don't display in-game graphics correctly and this patch + is an interim fix until EL or X works 100%. + + This patch has been approved by 'Entropy' for use on the EL main server. 15 Feb 2006; Roy Marples <uberlord@gentoo.org> eternal-lands-1.2.0_p1.ebuild: diff --git a/games-rpg/eternal-lands/Manifest b/games-rpg/eternal-lands/Manifest index f5e397a589db..81c5c4c1287b 100644 --- a/games-rpg/eternal-lands/Manifest +++ b/games-rpg/eternal-lands/Manifest @@ -1,12 +1,31 @@ -MD5 894596addf82c454c06e91737a5d1ba6 ChangeLog 1902 -RMD160 d5f6f7e3ee41caaf0fd18ae1742018864d56a6e9 ChangeLog 1902 -SHA256 0a6961d292f871ca68cd56683c038811115d0a0920bf8811c3cd837947516843 ChangeLog 1902 +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA1 + +MD5 2e98f21211beda91c7cbf52fb8d6fdef ChangeLog 2433 +RMD160 e7157e628545d29da280efd9e455e821aeb30ea0 ChangeLog 2433 +SHA256 25d26814cfa5b8198aab8412175db371c1cd381cad8e06cbb2a4a7802d0322af ChangeLog 2433 +MD5 fcc6498cd90000593afb0db8c7f04fcf eternal-lands-1.2.0_p1-r1.ebuild 2767 +RMD160 60055f28dd80ac621f2e76ed18b4019a54891bc8 eternal-lands-1.2.0_p1-r1.ebuild 2767 +SHA256 b944ea48f860014b0773062eab0351915f8f3f37b7402d61be8c403886e38793 eternal-lands-1.2.0_p1-r1.ebuild 2767 MD5 80a737ef2550f2350f72d8a6fe367541 eternal-lands-1.2.0_p1.ebuild 2594 RMD160 5ec18ce80a8343a33a2df27b826b42f890f55590 eternal-lands-1.2.0_p1.ebuild 2594 SHA256 bfdd5448dec1b84544bff02847b478def4b8e2edfcc6b3933b786ef9b53acf86 eternal-lands-1.2.0_p1.ebuild 2594 MD5 942fb2903df55d0f4b9de1d5d9930aa5 files/digest-eternal-lands-1.2.0_p1 446 RMD160 8d98b22fce1c8c96488485778fcb0c433503c265 files/digest-eternal-lands-1.2.0_p1 446 SHA256 3ab6bd6c860bbada97e4e1512e85437d05b978a961b8534b16129a9f15fe3b63 files/digest-eternal-lands-1.2.0_p1 446 +MD5 942fb2903df55d0f4b9de1d5d9930aa5 files/digest-eternal-lands-1.2.0_p1-r1 446 +RMD160 8d98b22fce1c8c96488485778fcb0c433503c265 files/digest-eternal-lands-1.2.0_p1-r1 446 +SHA256 3ab6bd6c860bbada97e4e1512e85437d05b978a961b8534b16129a9f15fe3b63 files/digest-eternal-lands-1.2.0_p1-r1 446 +MD5 abb3e62b8f7cda5c1314c7a6f6ae3477 files/eternal-lands-1.2.0-vertex-array.patch 9710 +RMD160 93b497fd303732a8316a84f46f941da731a28f06 files/eternal-lands-1.2.0-vertex-array.patch 9710 +SHA256 35ae774363b0c8888953190f5c35e06d696279712a0fa14600516cb43ee79f73 files/eternal-lands-1.2.0-vertex-array.patch 9710 MD5 a20195e09a3313e5b377c3c4ecc29e26 metadata.xml 365 RMD160 c06f3d4bff68a5e0f8ab2da3dc62c3d0cc570a20 metadata.xml 365 SHA256 0a477bd6a9085aca7e4538f81c3b9d7710cead2395d222f9903c898df57b3e63 metadata.xml 365 +-----BEGIN PGP SIGNATURE----- +Version: GnuPG v1.4.2.1 (GNU/Linux) + +iD8DBQFEDzC8EbVyYKaZ/NERAuCCAJ4hyrV0EpiNAKiWPSTRa90fIANC7QCdEtzB +Ryggsm39tpdHWb/+VaQcF8g= +=VZDb +-----END PGP SIGNATURE----- diff --git a/games-rpg/eternal-lands/eternal-lands-1.2.0_p1-r1.ebuild b/games-rpg/eternal-lands/eternal-lands-1.2.0_p1-r1.ebuild new file mode 100644 index 000000000000..a7555041084e --- /dev/null +++ b/games-rpg/eternal-lands/eternal-lands-1.2.0_p1-r1.ebuild @@ -0,0 +1,103 @@ +# Copyright 1999-2006 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/games-rpg/eternal-lands/eternal-lands-1.2.0_p1-r1.ebuild,v 1.1 2006/03/08 19:29:47 uberlord Exp $ + +inherit games + +MY_PV="${PV//_/}" +MY_PV="${MY_PV//./}" +S="${WORKDIR}/elc" +DESCRIPTION="An online MMORPG written in C and SDL" +HOMEPAGE="http://www.eternal-lands.com" +SRC_URI="mirror://gentoo/elc_${MY_PV}.tgz + mirror://gentoo/eternal-lands.png" + +# NOTE: Sometimes you'll have to roll your own elc tarball from their CVS +# tree as they don't always release one. +# If they do then use this in SRC_URI instead +# ftp://ftp.berlios.de/pub/elc/elc_${MY_PV}.tgz + +LICENSE="eternal_lands" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="doc" + +RDEPEND=" + || ( ( + x11-libs/libX11 + x11-libs/libXau + x11-libs/libXdmcp + x11-libs/libXext ) + virtual/x11 ) + virtual/opengl + >=media-libs/libsdl-1.2.5 + >=media-libs/sdl-net-1.2.5 + <media-libs/openal-20051024 + !>=media-libs/openal-20051024 + !media-libs/alut + media-libs/libvorbis + >=dev-libs/libxml2-2.6.7 + =media-libs/cal3d-0.10.0 + >=media-libs/libpng-1.2.8 + ~games-rpg/${PN}-data-${PV}" + +DEPEND="${RDEPEND} + app-arch/unzip + sys-apps/findutils + doc? ( >=app-doc/doxygen-1.3.8 + >=media-gfx/graphviz-1.10 )" + +src_unpack() { + OPTIONS="OPTIONS=-DDATA_DIR="\\\\\"${GAMES_DATADIR}/${PN}/\\\\\""" + S_CLIENT="${WORKDIR}/elc" + BROWSER="konqueror" + + unpack ${A} + cd "${S}" + + # Allow compiled vertex arrays to be togglable as they don't seem to work + # with xorg drivers on IGP style cards. + epatch "${FILESDIR}/${PN}-1.2.0-vertex-array.patch" + + # Remove CVS entries + find . -type d -name CVS -exec rm -rf {} \; 2>/dev/null + + use amd64 && OPTIONS="${OPTIONS} -DX86_64" + sed \ + -e "s@CFLAGS=\$(PLATFORM) \$(CWARN) -O -ggdb -pipe@CFLAGS=${CFLAGS} @g"\ + -e "s@CXXFLAGS=\$(PLATFORM) \$(CXXWARN) -O -ggdb -pipe@CXXFLAGS=${CXXFLAGS} @g"\ + -e "s@OPTIONS=@${OPTIONS} @g" \ + -e 's/ -DAUTO_UPDATE//' \ + Makefile.linux > Makefile \ + || die "sed failed" + sed -i \ + -e 's/#browser/browser/g' \ + -e "s/browser = mozilla/#browser = ${BROWSER}/g" \ + -e "s@#data_dir = /usr/local/games/el/@#data_dir = ${GAMES_DATADIR}/${PN}/@g" \ + el.ini || die "sed failed" +} + +src_compile() { + emake || die "emake failed" + if use doc; then + emake docs || die "Failed to create documentation, try with USE=-doc" + mv ./docs/html/ ../client || die "Failed to move documentation directory" + fi +} + +src_install() { + newgamesbin el.x86.linux.bin el || die "newgamesbin failed" + doicon "${DISTDIR}/eternal-lands.png" + make_desktop_entry el "Eternal Lands" + + insinto "${GAMES_DATADIR}/${PN}" + doins -r *.ini *.txt *.lst \ + actor_defs books languages \ + || die "doins failed" + + if use doc ; then + dohtml -r client/* + fi + + prepgamesdirs +} diff --git a/games-rpg/eternal-lands/files/digest-eternal-lands-1.2.0_p1-r1 b/games-rpg/eternal-lands/files/digest-eternal-lands-1.2.0_p1-r1 new file mode 100644 index 000000000000..ec8e42ae0a6d --- /dev/null +++ b/games-rpg/eternal-lands/files/digest-eternal-lands-1.2.0_p1-r1 @@ -0,0 +1,6 @@ +MD5 15492252c997253a90e6eec4f9edfeae elc_120p1.tgz 731594 +RMD160 a06be332015a8db57c3455f9918e3b58cfe92a41 elc_120p1.tgz 731594 +SHA256 a610102e92e91c6c69c4ceef906ae5010280267a1b9f55ec71f172e3691f0674 elc_120p1.tgz 731594 +MD5 059df8128b11b19a76b54e9907072f00 eternal-lands.png 9955 +RMD160 2f9c8acd96214577cf8b8027f0d20fb1fe7574ff eternal-lands.png 9955 +SHA256 dd7d45cd9948fe7875ebd0bfcd1925d9b34e7606a223faf61d37a6dd2cd433fb eternal-lands.png 9955 diff --git a/games-rpg/eternal-lands/files/eternal-lands-1.2.0-vertex-array.patch b/games-rpg/eternal-lands/files/eternal-lands-1.2.0-vertex-array.patch new file mode 100644 index 000000000000..0bb9f3465b9f --- /dev/null +++ b/games-rpg/eternal-lands/files/eternal-lands-1.2.0-vertex-array.patch @@ -0,0 +1,217 @@ +--- elc/3d_objects.c 2006-01-27 18:18:30.000000000 +0000 ++++ elc/3d_objects.c 2006-02-15 17:15:05.000000000 +0000 +@@ -125,7 +125,7 @@ + // watch for a change + if(object_id->e3d_data != cur_e3d){ + if(cur_e3d != NULL){ +- if(have_compiled_vertex_array)ELglUnlockArraysEXT(); ++ if(use_compiled_vertex_array)ELglUnlockArraysEXT(); + } + + if(have_vertex_buffers && vbo[0] && vbo[2]) { +@@ -149,7 +149,7 @@ + CHECK_GL_ERRORS(); + + // lock this new one +- if(have_compiled_vertex_array)ELglLockArraysEXT(0, object_id->e3d_data->face_no); ++ if(use_compiled_vertex_array)ELglLockArraysEXT(0, object_id->e3d_data->face_no); + // gather statistics + if(object_id->e3d_data != cur_e3d){ + #ifdef DEBUG +@@ -274,7 +274,7 @@ + // call the low level routine we share + draw_3d_object_detail(object_id); + +- if(have_compiled_vertex_array)ELglUnlockArraysEXT(); ++ if(use_compiled_vertex_array)ELglUnlockArraysEXT(); + cur_e3d= NULL; + + if(object_id->self_lit && (!is_day || dungeon))glEnable(GL_LIGHTING); +@@ -363,7 +363,7 @@ + } + } + +- if(have_compiled_vertex_array && (cur_e3d != NULL))ELglUnlockArraysEXT(); ++ if(use_compiled_vertex_array && (cur_e3d != NULL))ELglUnlockArraysEXT(); + if(have_multitexture && !dungeon && (clouds_shadows||use_shadow_mapping)){ + ELglClientActiveTextureARB(detail_unit); + glDisableClientState(GL_TEXTURE_COORD_ARRAY); +--- elc/elconfig.c 2006-01-27 18:20:00.000000000 +0000 ++++ elc/elconfig.c 2006-02-15 18:05:10.000000000 +0000 +@@ -180,6 +180,22 @@ + } + #endif + ++ ++void change_compiled_vertex_array(int *value) ++{ ++ if (*value) ++ { ++ *value = 0; ++ } ++ else if (!gl_extensions_loaded || have_compiled_vertex_array) ++ { ++ // don't check if we have hardware support when OpenGL ++ // extensions are not initialized yet. ++ *value = 1; ++ } ++ else LOG_TO_CONSOLE(c_green2,disabled_compiled_vertex_arrays); ++} ++ + void change_point_particles(int *value) + { + if (*value) +@@ -981,6 +997,7 @@ + add_var(BOOL,"clouds_shadows","cshad",&clouds_shadows,change_var,1,"Cloud Shadows","The clouds shadows are projected on the ground, and the game looks nicer with them on.",SPECIALVID); + add_var(BOOL,"show_fps","fps",&show_fps,change_var,1,"Show FPS","Show the current frames per second in the corner of the window",HUD); + add_var(BOOL,"use_mipmaps","mm",&use_mipmaps,change_var,1,"Mipmaps","Mipmaps is a texture effect that blurs the texture a bit - it may look smoother and better, or it may look worse depending on your graphics driver settings and the like.",SPECIALVID); ++ add_var(BOOL,"use_compiled_vertex_array","cva",&use_compiled_vertex_array,change_compiled_vertex_array,1,"Compiled Vertex Array","Some systems will not support the new compiled vertex array in EL. Disable this if some 3D objects do not display correctly.",SPECIALVID); + add_var(BOOL,"use_point_particles","upp",&use_point_particles,change_point_particles,1,"Point Particles","Some systems will not support the new point based particles in EL. Disable this if your client complains about not having the point based particles extension.",SPECIALVID); + add_var(INT,"particles_percentage","pp",&particles_percentage,change_particles_percentage,100,"Particle Percentage","If you experience a significant slowdown when particles are nearby, you should consider lowering this number.",SPECIALVID,0,100); + #ifdef TERRAIN +--- elc/el.ini 2006-02-15 18:12:36.000000000 +0000 ++++ elc/el.ini 2006-02-15 17:31:01.000000000 +0000 +@@ -117,6 +117,8 @@ + + #use_mipmaps = 1 + ++#use_compiled_vertex_array = 1 ++ + Some systems will not support the new point based particles in EL. If your client complaints + about not having the point based particles extension, set the following to 0: + +--- elc/gl_init.c 2006-01-17 00:27:41.000000000 +0000 ++++ elc/gl_init.c 2006-02-15 18:09:25.000000000 +0000 +@@ -24,6 +24,7 @@ + int use_vertex_buffers=0; + int vertex_arrays_built=0; + int have_compiled_vertex_array=0; ++int use_compiled_vertex_array=0; + int have_point_sprite=0; + int have_arb_compression=0; + int have_s3_compression=0; +@@ -573,8 +574,12 @@ + have_compiled_vertex_array=get_string_occurance("GL_EXT_compiled_vertex_array",extensions,ext_str_len,0); + if(have_compiled_vertex_array < 0) { + have_compiled_vertex_array=0; ++ use_compiled_vertex_array=0; + snprintf(str,sizeof(str),gl_ext_not_found,"GL_EXT_compiled_vertex_array"); + LOG_TO_CONSOLE(c_red1,str); ++ } else if (!use_compiled_vertex_array) { ++ snprintf(str,sizeof(str),gl_ext_found_not_used,"GL_EXT_compiled_vertex_array"); ++ LOG_TO_CONSOLE(c_green2,str); + } else { + snprintf(str,sizeof(str),gl_ext_found,"GL_EXT_compiled_vertex_array"); + LOG_TO_CONSOLE(c_green2,str); +--- elc/gl_init.h 2006-01-07 16:46:23.000000000 +0000 ++++ elc/gl_init.h 2006-02-15 17:24:55.000000000 +0000 +@@ -27,6 +27,7 @@ + extern int use_vertex_buffers; /*!< specifies if we use vertex buffer objects or not */ + extern int vertex_arrays_built; /*!< flag that indicates whether the vertex array was already initialized or not */ + extern int have_compiled_vertex_array; /*!< indicates whether we have the compiled vertex array extension or not */ ++extern int use_compiled_vertex_array; /*!< specified if we use compiled vertex array or not */ + extern int have_point_sprite; /*!< indicates whether we have point sprites or not */ + extern int have_arb_compression; /*!< flag that indicates whether we have the ARB compression extension or not */ + extern int have_s3_compression; /*!< flag that indicates whether we have the S3 compression extension or not */ +@@ -35,6 +36,7 @@ + extern int have_shaders; + + extern int use_mipmaps; /*!< indicates whether we use mipmaps or not */ ++extern int use_compiled_vertex_array; + + extern int have_arb_shadow; + extern int have_ogsl_pixel_shader; +--- elc/reflection.c 2006-01-17 00:27:42.000000000 +0000 ++++ elc/reflection.c 2006-02-15 17:15:29.000000000 +0000 +@@ -209,14 +209,14 @@ + glNormalPointer(GL_FLOAT,0,array_normal); + } + +- if(have_compiled_vertex_array)ELglLockArraysEXT(0, object_id->e3d_data->face_no); ++ if(use_compiled_vertex_array)ELglLockArraysEXT(0, object_id->e3d_data->face_no); + for(i=0;i<materials_no;i++) + if(array_order[i].count>0) + { + get_and_set_texture_id(array_order[i].texture_id); + glDrawArrays(GL_TRIANGLES,array_order[i].start,array_order[i].count); + } +- if(have_compiled_vertex_array)ELglUnlockArraysEXT(); ++ if(use_compiled_vertex_array)ELglUnlockArraysEXT(); + CHECK_GL_ERRORS(); + glPopMatrix();//restore the scene + CHECK_GL_ERRORS(); +--- elc/shadows.c 2006-01-17 00:27:42.000000000 +0000 ++++ elc/shadows.c 2006-02-15 17:16:11.000000000 +0000 +@@ -240,7 +240,7 @@ + // watch for a change + if(object_id->e3d_data != cur_e3d){ + if(cur_e3d != NULL){ +- if(have_compiled_vertex_array)ELglUnlockArraysEXT(); ++ if(use_compiled_vertex_array)ELglUnlockArraysEXT(); + } + if(have_vertex_buffers && object_id->e3d_data->vbo[2]){ + ELglBindBufferARB(GL_ARRAY_BUFFER_ARB, object_id->e3d_data->vbo[2]); +@@ -257,7 +257,7 @@ + } + CHECK_GL_ERRORS(); + // lock this new one +- if(have_compiled_vertex_array)ELglLockArraysEXT(0,object_id->e3d_data->face_no); ++ if(use_compiled_vertex_array)ELglLockArraysEXT(0,object_id->e3d_data->face_no); + // gather statistics + if(object_id->e3d_data != cur_e3d){ + #ifdef DEBUG +@@ -284,7 +284,7 @@ + glDrawArrays(GL_TRIANGLES,array_order[i].start,array_order[i].count); + } + } +- //if(have_compiled_vertex_array)ELglUnlockArraysEXT(); ++ //if(use_compiled_vertex_array)ELglUnlockArraysEXT(); + glPopMatrix();//restore the scene + } + +@@ -338,7 +338,7 @@ + draw_3d_object_shadow_detail(objects_list[l]); + } + +- if(have_compiled_vertex_array && (cur_e3d != NULL))ELglUnlockArraysEXT(); ++ if(use_compiled_vertex_array && (cur_e3d != NULL))ELglUnlockArraysEXT(); + if(have_vertex_buffers){ + ELglBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); + } +@@ -382,7 +382,7 @@ + + draw_3d_object_shadow_detail(object_id); + +- if(have_compiled_vertex_array)ELglUnlockArraysEXT(); ++ if(use_compiled_vertex_array)ELglUnlockArraysEXT(); + cur_e3d= NULL; + if(have_vertex_buffers){ + ELglBindBufferARB(GL_ARRAY_BUFFER_ARB, 0); +--- elc/translate.c 2006-01-19 21:01:40.000000000 +0000 ++++ elc/translate.c 2006-02-15 17:58:49.000000000 +0000 +@@ -351,6 +351,7 @@ + fatal_error_str[10], + no_e3d_list[50], + enabled_vertex_arrays[50], ++ disabled_compiled_vertex_arrays[50], + disabled_point_particles[50], + disabled_particles_str[50], + invalid_video_mode[75], +@@ -848,6 +849,7 @@ + add_xml_identifier(misc,"multimat",multiple_material_same_texture,"Two or more materials with the same texture name!",sizeof(multiple_material_same_texture)); + add_xml_identifier(misc,"resync",resync_server,"Resync with the server...",sizeof(resync_server)); + add_xml_identifier(misc,"vertex",enabled_vertex_arrays,"Vertex Arrays enabled (memory hog on!)...",sizeof(enabled_vertex_arrays)); ++ add_xml_identifier(misc,"compiled",disabled_compiled_vertex_arrays,"Compiled Vertex Arrays disabled.",sizeof(disabled_compiled_vertex_arrays)); + add_xml_identifier(misc,"point",disabled_point_particles,"Point Particles disabled.",sizeof(disabled_point_particles)); + add_xml_identifier(misc,"particles",disabled_particles_str,"Particles completely disabled!",sizeof(disabled_particles_str)); + add_xml_identifier(misc,"net",failed_sdl_net_init,"Couldn't initialize net",sizeof(failed_sdl_net_init)); +--- elc/translate.h 2006-01-19 21:01:40.000000000 +0000 ++++ elc/translate.h 2006-02-15 17:52:09.000000000 +0000 +@@ -451,6 +451,7 @@ + fatal_error_str[10], + no_e3d_list[50], + enabled_vertex_arrays[50], ++ disabled_compiled_vertex_arrays[50], + disabled_point_particles[50], + disabled_particles_str[50], + invalid_video_mode[75], |