1 include $(SUBDIR)../config.mak
26 OBJS-$(CONFIG_ACOMPRESSOR_FILTER) += af_sidechaincompress.o
27 OBJS-$(CONFIG_ACROSSFADE_FILTER) += af_afade.o
28 OBJS-$(CONFIG_ADELAY_FILTER) += af_adelay.o
29 OBJS-$(CONFIG_AECHO_FILTER) += af_aecho.o
30 OBJS-$(CONFIG_AEMPHASIS_FILTER) += af_aemphasis.o
31 OBJS-$(CONFIG_AEVAL_FILTER) += aeval.o
32 OBJS-$(CONFIG_AFADE_FILTER) += af_afade.o
33 OBJS-$(CONFIG_AFORMAT_FILTER) += af_aformat.o
34 OBJS-$(CONFIG_AGATE_FILTER) += af_agate.o
35 OBJS-$(CONFIG_AINTERLEAVE_FILTER) += f_interleave.o
36 OBJS-$(CONFIG_ALIMITER_FILTER) += af_alimiter.o
37 OBJS-$(CONFIG_ALLPASS_FILTER) += af_biquads.o
38 OBJS-$(CONFIG_AMERGE_FILTER) += af_amerge.o
39 OBJS-$(CONFIG_AMIX_FILTER) += af_amix.o
40 OBJS-$(CONFIG_ANULL_FILTER) += af_anull.o
41 OBJS-$(CONFIG_APAD_FILTER) += af_apad.o
42 OBJS-$(CONFIG_APERMS_FILTER) += f_perms.o
43 OBJS-$(CONFIG_APHASER_FILTER) += af_aphaser.o generate_wave_table.o
44 OBJS-$(CONFIG_APULSATOR_FILTER) += af_apulsator.o
45 OBJS-$(CONFIG_AREALTIME_FILTER) += f_realtime.o
46 OBJS-$(CONFIG_ARESAMPLE_FILTER) += af_aresample.o
47 OBJS-$(CONFIG_AREVERSE_FILTER) += f_reverse.o
48 OBJS-$(CONFIG_ASELECT_FILTER) += f_select.o
49 OBJS-$(CONFIG_ASENDCMD_FILTER) += f_sendcmd.o
50 OBJS-$(CONFIG_ASETNSAMPLES_FILTER) += af_asetnsamples.o
51 OBJS-$(CONFIG_ASETPTS_FILTER) += setpts.o
52 OBJS-$(CONFIG_ASETRATE_FILTER) += af_asetrate.o
53 OBJS-$(CONFIG_ASETTB_FILTER) += settb.o
54 OBJS-$(CONFIG_ASHOWINFO_FILTER) += af_ashowinfo.o
55 OBJS-$(CONFIG_ASPLIT_FILTER) += split.o
56 OBJS-$(CONFIG_ASTATS_FILTER) += af_astats.o
57 OBJS-$(CONFIG_ASYNCTS_FILTER) += af_asyncts.o
58 OBJS-$(CONFIG_ATEMPO_FILTER) += af_atempo.o
59 OBJS-$(CONFIG_ATRIM_FILTER) += trim.o
60 OBJS-$(CONFIG_AZMQ_FILTER) += f_zmq.o
61 OBJS-$(CONFIG_BANDPASS_FILTER) += af_biquads.o
62 OBJS-$(CONFIG_BANDREJECT_FILTER) += af_biquads.o
63 OBJS-$(CONFIG_BASS_FILTER) += af_biquads.o
64 OBJS-$(CONFIG_BIQUAD_FILTER) += af_biquads.o
65 OBJS-$(CONFIG_BS2B_FILTER) += af_bs2b.o
66 OBJS-$(CONFIG_CHANNELMAP_FILTER) += af_channelmap.o
67 OBJS-$(CONFIG_CHANNELSPLIT_FILTER) += af_channelsplit.o
68 OBJS-$(CONFIG_CHORUS_FILTER) += af_chorus.o generate_wave_table.o
69 OBJS-$(CONFIG_COMPAND_FILTER) += af_compand.o
70 OBJS-$(CONFIG_COMPENSATIONDELAY_FILTER) += af_compensationdelay.o
71 OBJS-$(CONFIG_DCSHIFT_FILTER) += af_dcshift.o
72 OBJS-$(CONFIG_DYNAUDNORM_FILTER) += af_dynaudnorm.o
73 OBJS-$(CONFIG_EARWAX_FILTER) += af_earwax.o
74 OBJS-$(CONFIG_EBUR128_FILTER) += f_ebur128.o
75 OBJS-$(CONFIG_EQUALIZER_FILTER) += af_biquads.o
76 OBJS-$(CONFIG_EXTRASTEREO_FILTER) += af_extrastereo.o
77 OBJS-$(CONFIG_FLANGER_FILTER) += af_flanger.o generate_wave_table.o
78 OBJS-$(CONFIG_HIGHPASS_FILTER) += af_biquads.o
79 OBJS-$(CONFIG_JOIN_FILTER) += af_join.o
80 OBJS-$(CONFIG_LADSPA_FILTER) += af_ladspa.o
81 OBJS-$(CONFIG_LOWPASS_FILTER) += af_biquads.o
82 OBJS-$(CONFIG_PAN_FILTER) += af_pan.o
83 OBJS-$(CONFIG_REPLAYGAIN_FILTER) += af_replaygain.o
84 OBJS-$(CONFIG_RESAMPLE_FILTER) += af_resample.o
85 OBJS-$(CONFIG_RUBBERBAND_FILTER) += af_rubberband.o
86 OBJS-$(CONFIG_SIDECHAINCOMPRESS_FILTER) += af_sidechaincompress.o
87 OBJS-$(CONFIG_SIDECHAINGATE_FILTER) += af_agate.o
88 OBJS-$(CONFIG_SILENCEDETECT_FILTER) += af_silencedetect.o
89 OBJS-$(CONFIG_SILENCEREMOVE_FILTER) += af_silenceremove.o
90 OBJS-$(CONFIG_STEREOTOOLS_FILTER) += af_stereotools.o
91 OBJS-$(CONFIG_STEREOWIDEN_FILTER) += af_stereowiden.o
92 OBJS-$(CONFIG_TREBLE_FILTER) += af_biquads.o
93 OBJS-$(CONFIG_TREMOLO_FILTER) += af_tremolo.o
94 OBJS-$(CONFIG_VIBRATO_FILTER) += af_vibrato.o generate_wave_table.o
95 OBJS-$(CONFIG_VOLUME_FILTER) += af_volume.o
96 OBJS-$(CONFIG_VOLUMEDETECT_FILTER) += af_volumedetect.o
98 OBJS-$(CONFIG_AEVALSRC_FILTER) += aeval.o
99 OBJS-$(CONFIG_ANOISESRC_FILTER) += asrc_anoisesrc.o
100 OBJS-$(CONFIG_ANULLSRC_FILTER) += asrc_anullsrc.o
101 OBJS-$(CONFIG_FLITE_FILTER) += asrc_flite.o
102 OBJS-$(CONFIG_SINE_FILTER) += asrc_sine.o
104 OBJS-$(CONFIG_ANULLSINK_FILTER) += asink_anullsink.o
106 OBJS-$(CONFIG_ASS_FILTER) += vf_subtitles.o
107 OBJS-$(CONFIG_ALPHAEXTRACT_FILTER) += vf_extractplanes.o
108 OBJS-$(CONFIG_ALPHAMERGE_FILTER) += vf_alphamerge.o
109 OBJS-$(CONFIG_ATADENOISE_FILTER) += vf_atadenoise.o
110 OBJS-$(CONFIG_BBOX_FILTER) += bbox.o vf_bbox.o
111 OBJS-$(CONFIG_BLACKDETECT_FILTER) += vf_blackdetect.o
112 OBJS-$(CONFIG_BLACKFRAME_FILTER) += vf_blackframe.o
113 OBJS-$(CONFIG_BLEND_FILTER) += vf_blend.o dualinput.o framesync.o
114 OBJS-$(CONFIG_BOXBLUR_FILTER) += vf_boxblur.o
115 OBJS-$(CONFIG_CHROMAKEY_FILTER) += vf_chromakey.o
116 OBJS-$(CONFIG_CODECVIEW_FILTER) += vf_codecview.o
117 OBJS-$(CONFIG_COLORBALANCE_FILTER) += vf_colorbalance.o
118 OBJS-$(CONFIG_COLORCHANNELMIXER_FILTER) += vf_colorchannelmixer.o
119 OBJS-$(CONFIG_COLORKEY_FILTER) += vf_colorkey.o
120 OBJS-$(CONFIG_COLORLEVELS_FILTER) += vf_colorlevels.o
121 OBJS-$(CONFIG_COLORMATRIX_FILTER) += vf_colormatrix.o
122 OBJS-$(CONFIG_COPY_FILTER) += vf_copy.o
123 OBJS-$(CONFIG_COVER_RECT_FILTER) += vf_cover_rect.o lavfutils.o
124 OBJS-$(CONFIG_CROP_FILTER) += vf_crop.o
125 OBJS-$(CONFIG_CROPDETECT_FILTER) += vf_cropdetect.o
126 OBJS-$(CONFIG_CURVES_FILTER) += vf_curves.o
127 OBJS-$(CONFIG_DCTDNOIZ_FILTER) += vf_dctdnoiz.o
128 OBJS-$(CONFIG_DEBAND_FILTER) += vf_deband.o
129 OBJS-$(CONFIG_DECIMATE_FILTER) += vf_decimate.o
130 OBJS-$(CONFIG_DEFLATE_FILTER) += vf_neighbor.o
131 OBJS-$(CONFIG_DEJUDDER_FILTER) += vf_dejudder.o
132 OBJS-$(CONFIG_DELOGO_FILTER) += vf_delogo.o
133 OBJS-$(CONFIG_DESHAKE_FILTER) += vf_deshake.o
134 OBJS-$(CONFIG_DETELECINE_FILTER) += vf_detelecine.o
135 OBJS-$(CONFIG_DILATION_FILTER) += vf_neighbor.o
136 OBJS-$(CONFIG_DISPLACE_FILTER) += vf_displace.o framesync.o
137 OBJS-$(CONFIG_DRAWBOX_FILTER) += vf_drawbox.o
138 OBJS-$(CONFIG_DRAWGRAPH_FILTER) += f_drawgraph.o
139 OBJS-$(CONFIG_DRAWGRID_FILTER) += vf_drawbox.o
140 OBJS-$(CONFIG_DRAWTEXT_FILTER) += vf_drawtext.o
141 OBJS-$(CONFIG_ELBG_FILTER) += vf_elbg.o
142 OBJS-$(CONFIG_EDGEDETECT_FILTER) += vf_edgedetect.o
143 OBJS-$(CONFIG_EQ_FILTER) += vf_eq.o
144 OBJS-$(CONFIG_EROSION_FILTER) += vf_neighbor.o
145 OBJS-$(CONFIG_EXTRACTPLANES_FILTER) += vf_extractplanes.o
146 OBJS-$(CONFIG_FADE_FILTER) += vf_fade.o
147 OBJS-$(CONFIG_FFTFILT_FILTER) += vf_fftfilt.o
148 OBJS-$(CONFIG_FIELD_FILTER) += vf_field.o
149 OBJS-$(CONFIG_FIELDMATCH_FILTER) += vf_fieldmatch.o
150 OBJS-$(CONFIG_FIELDORDER_FILTER) += vf_fieldorder.o
151 OBJS-$(CONFIG_FIND_RECT_FILTER) += vf_find_rect.o lavfutils.o
152 OBJS-$(CONFIG_FORMAT_FILTER) += vf_format.o
153 OBJS-$(CONFIG_FPS_FILTER) += vf_fps.o
154 OBJS-$(CONFIG_FRAMEPACK_FILTER) += vf_framepack.o
155 OBJS-$(CONFIG_FRAMERATE_FILTER) += vf_framerate.o
156 OBJS-$(CONFIG_FRAMESTEP_FILTER) += vf_framestep.o
157 OBJS-$(CONFIG_FREI0R_FILTER) += vf_frei0r.o
158 OBJS-$(CONFIG_FSPP_FILTER) += vf_fspp.o
159 OBJS-$(CONFIG_GEQ_FILTER) += vf_geq.o
160 OBJS-$(CONFIG_GRADFUN_FILTER) += vf_gradfun.o
161 OBJS-$(CONFIG_HALDCLUT_FILTER) += vf_lut3d.o dualinput.o framesync.o
162 OBJS-$(CONFIG_HFLIP_FILTER) += vf_hflip.o
163 OBJS-$(CONFIG_HISTEQ_FILTER) += vf_histeq.o
164 OBJS-$(CONFIG_HISTOGRAM_FILTER) += vf_histogram.o
165 OBJS-$(CONFIG_HQDN3D_FILTER) += vf_hqdn3d.o
166 OBJS-$(CONFIG_HQX_FILTER) += vf_hqx.o
167 OBJS-$(CONFIG_HSTACK_FILTER) += vf_stack.o framesync.o
168 OBJS-$(CONFIG_HUE_FILTER) += vf_hue.o
169 OBJS-$(CONFIG_IDET_FILTER) += vf_idet.o
170 OBJS-$(CONFIG_IL_FILTER) += vf_il.o
171 OBJS-$(CONFIG_INFLATE_FILTER) += vf_neighbor.o
172 OBJS-$(CONFIG_INTERLACE_FILTER) += vf_interlace.o
173 OBJS-$(CONFIG_INTERLEAVE_FILTER) += f_interleave.o
174 OBJS-$(CONFIG_KERNDEINT_FILTER) += vf_kerndeint.o
175 OBJS-$(CONFIG_LENSCORRECTION_FILTER) += vf_lenscorrection.o
176 OBJS-$(CONFIG_LUT3D_FILTER) += vf_lut3d.o
177 OBJS-$(CONFIG_LUT_FILTER) += vf_lut.o
178 OBJS-$(CONFIG_LUTRGB_FILTER) += vf_lut.o
179 OBJS-$(CONFIG_LUTYUV_FILTER) += vf_lut.o
180 OBJS-$(CONFIG_MASKEDMERGE_FILTER) += vf_maskedmerge.o framesync.o
181 OBJS-$(CONFIG_MCDEINT_FILTER) += vf_mcdeint.o
182 OBJS-$(CONFIG_MERGEPLANES_FILTER) += vf_mergeplanes.o framesync.o
183 OBJS-$(CONFIG_MPDECIMATE_FILTER) += vf_mpdecimate.o
184 OBJS-$(CONFIG_NEGATE_FILTER) += vf_lut.o
185 OBJS-$(CONFIG_NOFORMAT_FILTER) += vf_format.o
186 OBJS-$(CONFIG_NOISE_FILTER) += vf_noise.o
187 OBJS-$(CONFIG_NULL_FILTER) += vf_null.o
188 OBJS-$(CONFIG_OCR_FILTER) += vf_ocr.o
189 OBJS-$(CONFIG_OCV_FILTER) += vf_libopencv.o
190 OBJS-$(CONFIG_OPENCL) += deshake_opencl.o unsharp_opencl.o
191 OBJS-$(CONFIG_OVERLAY_FILTER) += vf_overlay.o dualinput.o framesync.o
192 OBJS-$(CONFIG_OWDENOISE_FILTER) += vf_owdenoise.o
193 OBJS-$(CONFIG_PAD_FILTER) += vf_pad.o
194 OBJS-$(CONFIG_PALETTEGEN_FILTER) += vf_palettegen.o
195 OBJS-$(CONFIG_PALETTEUSE_FILTER) += vf_paletteuse.o dualinput.o framesync.o
196 OBJS-$(CONFIG_PERMS_FILTER) += f_perms.o
197 OBJS-$(CONFIG_PERSPECTIVE_FILTER) += vf_perspective.o
198 OBJS-$(CONFIG_PHASE_FILTER) += vf_phase.o
199 OBJS-$(CONFIG_PIXDESCTEST_FILTER) += vf_pixdesctest.o
200 OBJS-$(CONFIG_PP_FILTER) += vf_pp.o
201 OBJS-$(CONFIG_PP7_FILTER) += vf_pp7.o
202 OBJS-$(CONFIG_PSNR_FILTER) += vf_psnr.o dualinput.o framesync.o
203 OBJS-$(CONFIG_PULLUP_FILTER) += vf_pullup.o
204 OBJS-$(CONFIG_QP_FILTER) += vf_qp.o
205 OBJS-$(CONFIG_RANDOM_FILTER) += vf_random.o
206 OBJS-$(CONFIG_REALTIME_FILTER) += f_realtime.o
207 OBJS-$(CONFIG_REMOVEGRAIN_FILTER) += vf_removegrain.o
208 OBJS-$(CONFIG_REMOVELOGO_FILTER) += bbox.o lswsutils.o lavfutils.o vf_removelogo.o
209 OBJS-$(CONFIG_REPEATFIELDS_FILTER) += vf_repeatfields.o
210 OBJS-$(CONFIG_REVERSE_FILTER) += f_reverse.o
211 OBJS-$(CONFIG_ROTATE_FILTER) += vf_rotate.o
212 OBJS-$(CONFIG_SEPARATEFIELDS_FILTER) += vf_separatefields.o
213 OBJS-$(CONFIG_SAB_FILTER) += vf_sab.o
214 OBJS-$(CONFIG_SCALE_FILTER) += vf_scale.o
215 OBJS-$(CONFIG_SCALE2REF_FILTER) += vf_scale.o
216 OBJS-$(CONFIG_SELECT_FILTER) += f_select.o
217 OBJS-$(CONFIG_SELECTIVECOLOR_FILTER) += vf_selectivecolor.o
218 OBJS-$(CONFIG_SENDCMD_FILTER) += f_sendcmd.o
219 OBJS-$(CONFIG_SETDAR_FILTER) += vf_aspect.o
220 OBJS-$(CONFIG_SETFIELD_FILTER) += vf_setfield.o
221 OBJS-$(CONFIG_SETPTS_FILTER) += setpts.o
222 OBJS-$(CONFIG_SETSAR_FILTER) += vf_aspect.o
223 OBJS-$(CONFIG_SETTB_FILTER) += settb.o
224 OBJS-$(CONFIG_SHOWINFO_FILTER) += vf_showinfo.o
225 OBJS-$(CONFIG_SHOWPALETTE_FILTER) += vf_showpalette.o
226 OBJS-$(CONFIG_SHUFFLEFRAMES_FILTER) += vf_shuffleframes.o
227 OBJS-$(CONFIG_SHUFFLEPLANES_FILTER) += vf_shuffleplanes.o
228 OBJS-$(CONFIG_SIGNALSTATS_FILTER) += vf_signalstats.o
229 OBJS-$(CONFIG_SMARTBLUR_FILTER) += vf_smartblur.o
230 OBJS-$(CONFIG_SPLIT_FILTER) += split.o
231 OBJS-$(CONFIG_SPP_FILTER) += vf_spp.o
232 OBJS-$(CONFIG_SSIM_FILTER) += vf_ssim.o dualinput.o framesync.o
233 OBJS-$(CONFIG_STEREO3D_FILTER) += vf_stereo3d.o
234 OBJS-$(CONFIG_SUBTITLES_FILTER) += vf_subtitles.o
235 OBJS-$(CONFIG_SUPER2XSAI_FILTER) += vf_super2xsai.o
236 OBJS-$(CONFIG_SWAPUV_FILTER) += vf_swapuv.o
237 OBJS-$(CONFIG_TBLEND_FILTER) += vf_blend.o dualinput.o framesync.o
238 OBJS-$(CONFIG_TELECINE_FILTER) += vf_telecine.o
239 OBJS-$(CONFIG_THUMBNAIL_FILTER) += vf_thumbnail.o
240 OBJS-$(CONFIG_TILE_FILTER) += vf_tile.o
241 OBJS-$(CONFIG_TINTERLACE_FILTER) += vf_tinterlace.o
242 OBJS-$(CONFIG_TRANSPOSE_FILTER) += vf_transpose.o
243 OBJS-$(CONFIG_TRIM_FILTER) += trim.o
244 OBJS-$(CONFIG_UNSHARP_FILTER) += vf_unsharp.o
245 OBJS-$(CONFIG_USPP_FILTER) += vf_uspp.o
246 OBJS-$(CONFIG_VECTORSCOPE_FILTER) += vf_vectorscope.o
247 OBJS-$(CONFIG_VFLIP_FILTER) += vf_vflip.o
248 OBJS-$(CONFIG_VIDSTABDETECT_FILTER) += vidstabutils.o vf_vidstabdetect.o
249 OBJS-$(CONFIG_VIDSTABTRANSFORM_FILTER) += vidstabutils.o vf_vidstabtransform.o
250 OBJS-$(CONFIG_VIGNETTE_FILTER) += vf_vignette.o
251 OBJS-$(CONFIG_VSTACK_FILTER) += vf_stack.o framesync.o
252 OBJS-$(CONFIG_W3FDIF_FILTER) += vf_w3fdif.o
253 OBJS-$(CONFIG_WAVEFORM_FILTER) += vf_waveform.o
254 OBJS-$(CONFIG_XBR_FILTER) += vf_xbr.o
255 OBJS-$(CONFIG_YADIF_FILTER) += vf_yadif.o
256 OBJS-$(CONFIG_ZMQ_FILTER) += f_zmq.o
257 OBJS-$(CONFIG_ZOOMPAN_FILTER) += vf_zoompan.o
258 OBJS-$(CONFIG_ZSCALE_FILTER) += vf_zscale.o
260 OBJS-$(CONFIG_ALLRGB_FILTER) += vsrc_testsrc.o
261 OBJS-$(CONFIG_ALLYUV_FILTER) += vsrc_testsrc.o
262 OBJS-$(CONFIG_CELLAUTO_FILTER) += vsrc_cellauto.o
263 OBJS-$(CONFIG_COLOR_FILTER) += vsrc_testsrc.o
264 OBJS-$(CONFIG_FREI0R_SRC_FILTER) += vf_frei0r.o
265 OBJS-$(CONFIG_HALDCLUTSRC_FILTER) += vsrc_testsrc.o
266 OBJS-$(CONFIG_LIFE_FILTER) += vsrc_life.o
267 OBJS-$(CONFIG_MANDELBROT_FILTER) += vsrc_mandelbrot.o
268 OBJS-$(CONFIG_MPTESTSRC_FILTER) += vsrc_mptestsrc.o
269 OBJS-$(CONFIG_NULLSRC_FILTER) += vsrc_testsrc.o
270 OBJS-$(CONFIG_RGBTESTSRC_FILTER) += vsrc_testsrc.o
271 OBJS-$(CONFIG_SMPTEBARS_FILTER) += vsrc_testsrc.o
272 OBJS-$(CONFIG_SMPTEHDBARS_FILTER) += vsrc_testsrc.o
273 OBJS-$(CONFIG_TESTSRC_FILTER) += vsrc_testsrc.o
274 OBJS-$(CONFIG_TESTSRC2_FILTER) += vsrc_testsrc.o
276 OBJS-$(CONFIG_NULLSINK_FILTER) += vsink_nullsink.o
279 OBJS-$(CONFIG_ADRAWGRAPH_FILTER) += f_drawgraph.o
280 OBJS-$(CONFIG_APHASEMETER_FILTER) += avf_aphasemeter.o
281 OBJS-$(CONFIG_AVECTORSCOPE_FILTER) += avf_avectorscope.o
282 OBJS-$(CONFIG_CONCAT_FILTER) += avf_concat.o
283 OBJS-$(CONFIG_SHOWCQT_FILTER) += avf_showcqt.o lswsutils.o lavfutils.o
284 OBJS-$(CONFIG_SHOWFREQS_FILTER) += avf_showfreqs.o
285 OBJS-$(CONFIG_SHOWSPECTRUM_FILTER) += avf_showspectrum.o
286 OBJS-$(CONFIG_SHOWVOLUME_FILTER) += avf_showvolume.o
287 OBJS-$(CONFIG_SHOWWAVES_FILTER) += avf_showwaves.o
288 OBJS-$(CONFIG_SHOWWAVESPIC_FILTER) += avf_showwaves.o
291 OBJS-$(CONFIG_AMOVIE_FILTER) += src_movie.o
292 OBJS-$(CONFIG_MOVIE_FILTER) += src_movie.o
294 # Windows resource file
295 SLIBOBJS-$(HAVE_GNU_WINDRES) += avfilterres.o
297 SKIPHEADERS-$(CONFIG_LIBVIDSTAB) += vidstabutils.h
298 SKIPHEADERS-$(CONFIG_OPENCL) += opencl_internal.h deshake_opencl_kernel.h unsharp_opencl_kernel.h
300 OBJS-$(HAVE_THREADS) += pthread.o
301 OBJS-$(CONFIG_SHARED) += log2_tab.o
304 TESTPROGS = drawutils filtfmts formats
306 TOOLS-$(CONFIG_LIBZMQ) += zmqsend
309 $(RM) $(CLEANSUFFIXES:%=libavfilter/libmpcodecs/%)